@@ -753,12 +753,14 @@ pClause syn
753 return ([], [])]
753 return ([], [])]
754 let capp = PApp fc (PRef fc n)
754 let capp = PApp fc (PRef fc n)
755 (iargs ++ cargs ++ map pexp args)
755 (iargs ++ cargs ++ map pexp args)
757+ setState (ist { lastParse = Just n })
756 return $ PClause n capp wargs rhs wheres)
758 return $ PClause n capp wargs rhs wheres)
757 <|> try (do wargs <- many1 (pWExpr syn)
759 <|> try (do wargs <- many1 (pWExpr syn)
758 ist <- getState
760 ist <- getState
759− (n, capp, owargs) <- case lastParse ist of
761+ n <- case lastParse ist of
760− Just t -> return t
762+ Just t -> return t
761− Nothing -> fail "Invalid clause"
763+ Nothing -> fail "Invalid clause"
762 rhs <- pRHS syn n
764 rhs <- pRHS syn n
763 let ctxt = tt_ctxt ist
765 let ctxt = tt_ctxt ist
764 let wsyn = syn { syn_namespace = [] }
766 let wsyn = syn { syn_namespace = [] }
@@ -781,6 +783,8 @@ pClause syn
781 ds <- many1 $ pFunDecl syn
783 ds <- many1 $ pFunDecl syn
782 let withs = map (fillLHSD n capp wargs) $ concat ds
784 let withs = map (fillLHSD n capp wargs) $ concat ds
783 lchar '}'
785 lchar '}'
787+ setState (ist { lastParse = Just n })
784 return $ PWith n capp wargs wval withs)
788 return $ PWith n capp wargs wval withs)
786 <|> try (do wargs <- many1 (pWExpr syn)
790 <|> try (do wargs <- many1 (pWExpr syn)
@@ -805,7 +809,7 @@ pClause syn
805 return ([], [])]
809 return ([], [])]
806 ist <- getState
810 ist <- getState
807 let capp = PApp fc (PRef fc n) [pexp l, pexp r]
811 let capp = PApp fc (PRef fc n) [pexp l, pexp r]
808− setState (ist { lastParse = Just (n, capp, wargs) })
812+ setState (ist { lastParse = Just n })
809 return $ PClause n capp wargs rhs wheres
813 return $ PClause n capp wargs rhs wheres
811 <|> do l <- pArgExpr syn
815 <|> do l <- pArgExpr syn
@@ -822,6 +826,7 @@ pClause syn
822 ist <- getState
826 ist <- getState
823 let capp = PApp fc (PRef fc n) [pexp l, pexp r]
827 let capp = PApp fc (PRef fc n) [pexp l, pexp r]
824 let withs = map (fillLHSD n capp wargs) $ concat ds
828 let withs = map (fillLHSD n capp wargs) $ concat ds
829+ setState (ist { lastParse = Just n })
825 return $ PWith n capp wargs wval withs
830 return $ PWith n capp wargs wval withs
827 fillLHS n capp owargs (PClauseR wargs v ws)
832 fillLHS n capp owargs (PClauseR wargs v ws)