@@ -747,14 +747,16 @@ lambda :: SyntaxInfo -> IdrisParser PTerm
747747lambda syn = do lchar '\\' <?> "lambda expression"
748748 (do xt <- try $ tyOptDeclList syn
749749 fc <- getFC
750− symbol "=>"
751− sc <- expr syn
750+ sc <- PImpossible <$ reserved "impossible" <|> do
751+ symbol "=>"
752+ expr syn
752753 return (bindList (PLam fc) xt sc)) <|> do
753754 ps <- sepBy (do fc <- getFC
754755 e <- simpleExpr (syn { inPattern = True })
755756 return (fc, e)) (lchar ',')
756− symbol "=>"
757− sc <- expr syn
757+ sc <- PImpossible <$ reserved "impossible" <|> do
758+ symbol "=>"
759+ expr syn
758760 return (pmList (zip [0..] ps) sc)
759761 <?> "lambda expression"
760762 where pmList :: [(Int, (FC, PTerm))] -> PTerm -> PTerm