From d2b27dcd73c7d3aa21059e2a26ee7923fd7bca0a Mon Sep 17 00:00:00 2001 From: "simonpj@microsoft.com" Date: Tue, 8 Aug 2006 08:02:55 +0000 Subject: [PATCH] Improve error message Improve a little-used error message. Given f :: a -> a f x y = e the error says The equations for f have two arguments but its type `a -> a' has only one (Before, it said "its type `a' has only one" which is bogus. --- compiler/typecheck/TcUnify.lhs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/compiler/typecheck/TcUnify.lhs b/compiler/typecheck/TcUnify.lhs index c13da2c..f9936e7 100644 --- a/compiler/typecheck/TcUnify.lhs +++ b/compiler/typecheck/TcUnify.lhs @@ -168,7 +168,7 @@ subFunTys error_herald n_pats res_ty thing_inside loop n args_so_far res_ty@(AppTy _ _) = do { [arg_ty',res_ty'] <- newBoxyTyVarTys [argTypeKind, openTypeKind] ; (_, mb_unit) <- tryTcErrs $ boxyUnify res_ty (FunTy arg_ty' res_ty') - ; if isNothing mb_unit then bale_out args_so_far res_ty + ; if isNothing mb_unit then bale_out args_so_far else loop n args_so_far (FunTy arg_ty' res_ty') } loop n args_so_far (TyVarTy tv) @@ -185,9 +185,9 @@ subFunTys error_herald n_pats res_ty thing_inside -- Note argTypeKind: the args can have an unboxed type, -- but not an unboxed tuple. - loop n args_so_far res_ty = bale_out args_so_far res_ty + loop n args_so_far res_ty = bale_out args_so_far - bale_out args_so_far res_ty + bale_out args_so_far = do { env0 <- tcInitTidyEnv ; res_ty' <- zonkTcType res_ty ; let (env1, res_ty'') = tidyOpenType env0 res_ty' -- 1.7.10.4