@@ -97,15 +97,12 @@ constrain env (L _ _ expr) tipe =
9797 ce <- constrain env e tipe
9898 return (cb /\ ce)
9999
100− Case e branches ->
100+ Case exp branches ->
101101 exists $ \t -> do
102− ce <- constrain env e t
102+ ce <- constrain env exp t
103103 let branch (p,e) = do
104104 fragment <- Pattern.constrain env p t
105− c <- constrain env e tipe
106− return $ ex (vars fragment)
107− (CLet [monoscheme (typeEnv fragment)]
108− (typeConstraint fragment /\ c))
105+ CLet [toScheme fragment] <$> constrain env e tipe
109106 CAnd . (:) ce <$> mapM branch branches
110107
111108 Data name exprs ->