@@ -226,12 +226,14 @@ ifHelp branches =
227lambdaExpr :: IParser Source.Expr
227lambdaExpr :: IParser Source.Expr
228lambdaExpr =
228lambdaExpr =
229+ do start <- getMyPosition
229− do char '\\' <|> char '\x03BB' <?> "an anonymous function"
230+ char '\\' <|> char '\x03BB' <?> "an anonymous function"
230 whitespace
231 whitespace
231 args <- spaceSep1 Pattern.term
232 args <- spaceSep1 Pattern.term
232 padded rightArrow
233 padded rightArrow
233 body <- expr
234 body <- expr
234− return (makeFunction args body)
235+ end <- getMyPosition
236+ return (foldr (\a b -> A.at start end $ E.Lambda a b) body args)
237caseExpr :: IParser Source.Expr'
239caseExpr :: IParser Source.Expr'