@@ -797,13 +797,11 @@ Pi ::=
800+pi :: SyntaxInfo -> IdrisParser PTerm
800pi :: SyntaxInfo -> IdrisParser PTerm
801pi :: SyntaxInfo -> IdrisParser PTerm
802− do opts <- -- if implicitAllowed syn -- laziness is top level only
803+ do opts <- piOpts syn
803− -- then option [] (do lchar '|'; return [Lazy])
806− st <- static
804+ st <- static
807 (do try (lchar '('); xt <- typeDeclList syn; lchar ')'
805 (do try (lchar '('); xt <- typeDeclList syn; lchar ')'
808 symbol "->"
806 symbol "->"
809 sc <- expr syn
807 sc <- expr syn
@@ -835,6 +833,12 @@ pi syn =
835 else do fail "no implicit arguments allowed here"))
833 else do fail "no implicit arguments allowed here"))
836 <?> "dependent type signature"
834 <?> "dependent type signature"
836+piOpts :: SyntaxInfo -> IdrisParser [ArgOpt]
837+piOpts syn | implicitAllowed syn =
838+ lchar '.' *> return [ErasedArg]
840+piOpts syn = return []
838{- | Parses a type constraint list
842{- | Parses a type constraint list