@@ -452,7 +452,7 @@ infer' (Var var) = do
452452 ConstrainedType constraints _ -> do
453453 env <- getEnv
454454 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'
456456 _ -> return $ TypedValue True (Var var) ty'
457457infer' (Block ss) = do
458458 ret <- fresh
@@ -952,7 +952,7 @@ checkFunctionApplication' fn (ConstrainedType constraints fnTy) arg ret = do
952952 env <- getEnv
953953 dicts <- getTypeClassDictionaries
954954 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
956956checkFunctionApplication' _ fnTy arg ret = throwError $ "Applying a function of type "
957957 ++ prettyPrintType fnTy
958958 ++ " to argument(s) " ++ prettyPrintValue arg
@@ -986,7 +986,7 @@ subsumes' (Just val) (ConstrainedType constraints ty1) ty2 = do
986986 dicts <- getTypeClassDictionaries
987987 Just moduleName <- checkCurrentModule <$> get
988988 _ <- 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))
990990subsumes' val ty1 ty2 = do
991991 ty1 ?= ty2
992992 return val