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