@@ -173,25 +173,27 @@ elab ist info pattern opts fn tm
173173 -- ++ "\n-----------\n") $
174174 --trace ("ELAB " ++ show t') $
175175 let fc = fileFC "Force"
176− handleError forceErr
176+ env <- get_env
177+ handleError (forceErr env)
177178 (elab' ina t')
178179 (elab' ina (PApp fc (PRef fc (sUN "Force"))
179− [pimp (sUN "a") Placeholder True,
180+ [pimp (sUN "t") Placeholder True,
181+ pimp (sUN "a") Placeholder True,
180182 pexp ct])) True
181183
182− forceErr (CantUnify _ t t' _ _ _)
183− | (P _ (UN ht) _, _) <- unApply t,
184− ht == txt "Lazy" = True
185− forceErr (CantUnify _ t t' _ _ _)
186− | (P _ (UN ht) _, _) <- unApply t',
187− ht == txt "Lazy" = True
188− forceErr (InfiniteUnify _ t _)
189− | (P _ (UN ht) _, _) <- unApply t,
190− ht == txt "Lazy" = True
191− forceErr (Elaborating _ _ t) = forceErr t
192− forceErr (ElaboratingArg _ _ t) = forceErr t
193− forceErr (At _ t) = forceErr t
194− forceErr t = False
184+ forceErr env (CantUnify _ t t' _ _ _)
185+ | (P _ (UN ht) _, _) <- unApply (normalise (tt_ctxt ist) env t),
186+ ht == txt "Lazy'" = True
187+ forceErr env (CantUnify _ t t' _ _ _)
188+ | (P _ (UN ht) _, _) <- unApply (normalise (tt_ctxt ist) env t'),
189+ ht == txt "Lazy'" = True
190+ forceErr env (InfiniteUnify _ t _)
191+ | (P _ (UN ht) _, _) <- unApply (normalise (tt_ctxt ist) env t),
192+ ht == txt "Lazy'" = True
193+ forceErr env (Elaborating _ _ t) = forceErr env t
194+ forceErr env (ElaboratingArg _ _ t) = forceErr env t
195+ forceErr env (At _ t) = forceErr env t
196+ forceErr env t = False
195197
196198 local f = do e <- get_env
197199 return (f `elem` map fst e)
@@ -688,13 +690,14 @@ elab ist info pattern opts fn tm
688690 let (tyh, _) = unApply (normalise (tt_ctxt ist) env ty)
689691 let tries = if pattern then [t, mkDelay t] else [mkDelay t, t]
690692 case tyh of
691− P _ (UN l) _ | l == txt "Lazy"
693+ P _ (UN l) _ | l == txt "Lazy'"
692694 -> return (PAlternative False tries)
693695 _ -> return t
694696 where
695697 mkDelay (PAlternative b xs) = PAlternative b (map mkDelay xs)
696698 mkDelay t = let fc = fileFC "Delay" in
697− addImpl ist (PApp fc (PRef fc (sUN "Delay")) [pexp t])
699+ addImpl ist (PApp fc (PRef fc (sUN "Delay"))
700+ [pexp t])
698701
699702 insertCoerce ina t =
700703 do ty <- goal