@@ -452,7 +452,7 @@ infer' (Var var) = do
452 ConstrainedType constraints _ -> do
452 ConstrainedType constraints _ -> do
453 env <- getEnv
453 env <- getEnv
454 dicts <- getTypeClassDictionaries
454 dicts <- getTypeClassDictionaries
455− return $ TypedValue True (foldr App (Var var) (map (flip TypeClassDictionary dicts) (qualifyAllUnqualifiedNames moduleName env constraints))) ty'
455+ return $ TypedValue True (foldl App (Var var) (map (flip TypeClassDictionary dicts) (qualifyAllUnqualifiedNames moduleName env constraints))) ty'
456 _ -> return $ TypedValue True (Var var) ty'
456 _ -> return $ TypedValue True (Var var) ty'
457infer' (Block ss) = do
457infer' (Block ss) = do
458 ret <- fresh
458 ret <- fresh
@@ -952,7 +952,7 @@ checkFunctionApplication' fn (ConstrainedType constraints fnTy) arg ret = do
952 env <- getEnv
952 env <- getEnv
953 dicts <- getTypeClassDictionaries
953 dicts <- getTypeClassDictionaries
954 Just moduleName <- checkCurrentModule <$> get
954 Just moduleName <- checkCurrentModule <$> get
955− checkFunctionApplication' (foldr App fn (map (flip TypeClassDictionary dicts) (qualifyAllUnqualifiedNames moduleName env constraints))) fnTy arg ret
955+ checkFunctionApplication' (foldl App fn (map (flip TypeClassDictionary dicts) (qualifyAllUnqualifiedNames moduleName env constraints))) fnTy arg ret
956checkFunctionApplication' _ fnTy arg ret = throwError $ "Applying a function of type "
956checkFunctionApplication' _ fnTy arg ret = throwError $ "Applying a function of type "
957 ++ prettyPrintType fnTy
957 ++ prettyPrintType fnTy
958 ++ " to argument(s) " ++ prettyPrintValue arg
958 ++ " to argument(s) " ++ prettyPrintValue arg
@@ -986,7 +986,7 @@ subsumes' (Just val) (ConstrainedType constraints ty1) ty2 = do
986 dicts <- getTypeClassDictionaries
986 dicts <- getTypeClassDictionaries
987 Just moduleName <- checkCurrentModule <$> get
987 Just moduleName <- checkCurrentModule <$> get
988 _ <- subsumes' Nothing ty1 ty2
988 _ <- subsumes' Nothing ty1 ty2
989− return . Just $ foldr App val (map (flip TypeClassDictionary dicts) (qualifyAllUnqualifiedNames moduleName env constraints))
989+ return . Just $ foldl App val (map (flip TypeClassDictionary dicts) (qualifyAllUnqualifiedNames moduleName env constraints))
990subsumes' val ty1 ty2 = do
990subsumes' val ty1 ty2 = do
991 ty1 ?= ty2
991 ty1 ?= ty2
992 return val
992 return val