@@ -31,9 +31,6 @@ constrain env annotatedExpr@(A.A region expression) tipe =
33 Env.getType env "List" <| t
33 Env.getType env "List" <| t
38 case expression of
35 case expression of
39 E.Literal lit ->
36 E.Literal lit ->
@@ -68,7 +65,7 @@ constrain env annotatedExpr@(A.A region expression) tipe =
69 V.toString var
66 V.toString var
71− return (if name == E.saveEnvName then CSaveEnv else name <? tipe)
68+ return (if name == E.saveEnvName then CSaveEnv else CInstance region name tipe)
73 E.Range lowExpr highExpr ->
70 E.Range lowExpr highExpr ->
74 existsNumber $ \n ->
71 existsNumber $ \n ->
@@ -114,7 +111,7 @@ constrain env annotatedExpr@(A.A region expression) tipe =
114 do vars <- Monad.forM exprs $ \_ -> mkVar Nothing
111 do vars <- Monad.forM exprs $ \_ -> mkVar Nothing
115 let pairs = zip exprs (map VarN vars)
112 let pairs = zip exprs (map VarN vars)
116 (ctipe, cs) <- Monad.foldM step (tipe, CTrue) (reverse pairs)
113 (ctipe, cs) <- Monad.foldM step (tipe, CTrue) (reverse pairs)
117− return $ ex vars (cs /\ name <? ctipe)
114+ return $ ex vars (cs /\ CInstance region name ctipe)
119 step (t,c) (e,x) =
116 step (t,c) (e,x) =
120 do c' <- constrain env e x
117 do c' <- constrain env e x