@@ -52,6 +52,7 @@ import Language.PureScript.Errors
5252import Language.PureScript.Kinds
5353import Language.PureScript.Names
5454import Language.PureScript.Pretty
55+import Language.PureScript.Traversals
5556import Language.PureScript.TypeChecker.Entailment
5657import Language.PureScript.TypeChecker.Kinds
5758import Language.PureScript.TypeChecker.Monad
@@ -271,8 +272,8 @@ infer' v@(Constructor c) = do
271272 env <- getEnv
272273 case M.lookup c (dataConstructors env) of
273274 Nothing -> throwError . strMsg $ "Constructor " ++ show c ++ " is undefined"
274− Just (_, _, ty) -> do ty' <- introduceSkolemScope <=< replaceAllTypeSynonyms $ ty
275− return $ TypedValue True v ty'
275+ Just (_, _, ty) -> do (v', ty') <- sndM (introduceSkolemScope <=< replaceAllTypeSynonyms) <=< instantiatePolyTypeWithUnknowns v $ ty
276+ return $ TypedValue True v' ty'
276277infer' (Case vals binders) = do
277278 ts <- mapM infer vals
278279 ret <- fresh