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