on master help sign in
Change implicit bind notation to a postfix !
20c71b0Edwin Brady
effects/Effects.idr+1−1
@@ -130,7 +130,7 @@ data EffM : (m : Type -> Type) ->
130 EffM m xs xs' a
130 EffM m xs xs' a
131 (:-) : (l : ty) -> EffM m [x] [y] t -> EffM m [l ::: x] [l ::: y] t
131 (:-) : (l : ty) -> EffM m [x] [y] t -> EffM m [l ::: x] [l ::: y] t
132
132
133−syntax [tag] ":!" [val] = !(tag :- val)
133+syntax [tag] ":!" [val] = (tag :- val)!
134
134
135-- Eff : List (EFFECT m) -> Type -> Type
135-- Eff : List (EFFECT m) -> Type -> Type
136
136
src/Idris/ParseExpr.hs+7−2
@@ -186,7 +186,12 @@ internalExpr syn =
186 <|> rewriteTerm syn
186 <|> rewriteTerm syn
187 <|> try(pi syn)
187 <|> try(pi syn)
188 <|> doBlock syn
188 <|> doBlock syn
189− <|> do simpleExpr syn
189+ <|> do s <- simpleExpr syn
190+ fc <- getFC
191+ bang <- option False (do lchar '!'; return True)
192+ if bang then return (PAppBind fc s [])
193+ else return s
194+
190 <?> "expression"
195 <?> "expression"
191
196
192{- | Parses a case expression
197{- | Parses a case expression
@@ -269,8 +274,8 @@ simpleExpr syn =
269 <|> caseExpr syn
274 <|> caseExpr syn
270 <|> do reserved "Type"; return PType
275 <|> do reserved "Type"; return PType
271 <|> do fc <- getFC
276 <|> do fc <- getFC
272− bang <- option False (do lchar '!'; return True)
273 x <- fnName
277 x <- fnName
278+ bang <- option False (do lchar '!'; return True)
274 if bang then return (PAppBind fc (PRef fc x) [])
279 if bang then return (PAppBind fc (PRef fc x) [])
275 else return (PRef fc x)
280 else return (PRef fc x)
276 <|> try (listExpr syn)
281 <|> try (listExpr syn)