@@ -368,12 +368,15 @@ inferBinder val (ConstructorBinder ctor binders) = do
368368 fn' <- introduceSkolemScope <=< replaceAllTypeSynonyms $ fn
369369 go binders fn'
370370 where
371− go [] ty' = do
372− _ <- subsumes Nothing val ty'
373− return M.empty
371+ go [] ty' = case (val, ty') of
372+ (TypeConstructor _, TypeApp _ _) -> throwIncorrectArity
373+ _ -> do
374+ _ <- subsumes Nothing val ty'
375+ return M.empty
374376 go (binder : binders') (TypeApp (TypeApp t obj) ret) | t == tyFunction =
375377 M.union <$> inferBinder obj binder <*> go binders' ret
376− go _ _ = throwError . errorMessage $ IncorrectConstructorArity ctor
378+ go _ _ = throwIncorrectArity
379+ throwIncorrectArity = throwError . errorMessage $ IncorrectConstructorArity ctor
377380 _ -> throwError . errorMessage $ UnknownDataConstructor ctor Nothing
378381inferBinder val (ObjectBinder props) = do
379382 row <- fresh