cvs commit: fptools/ghc/compiler/hsSyn HsExpr.lhs fptools/ghc/compiler/typecheck TcExpr.lhs TcMType.lhs TcMatches.lhs TcUnify.lhs

Simon Peyton Jones simonpj at haskell.org
Mon Jul 11 05:54:44 EDT 2005


simonpj     2005/07/11 02:54:44 PDT

  Modified files:
    ghc/compiler/hsSyn   HsExpr.lhs 
    ghc/compiler/typecheck TcExpr.lhs TcMType.lhs TcMatches.lhs 
                           TcUnify.lhs 
  Log:
  Improve the error message from unifyFunTys.  Previously we got a really
  horrible message from this:
  	  t = ((\Just x -> x) :: Maybe a -> a) (Just 1)
      
  Try.hs:1:6:
      Couldn't match the rigid variable `a' against `t -> t1'
        Expected type: a
        Inferred type: t -> t1
  
  Now it's much better:
  
  Try.hs:14:6:
      The lambda expression `\ Just x -> ...' has two arguments,
      but its type `Maybe a -> a' has only one
      In the expression: (\ Just x -> x) :: Maybe a -> a
  
  
  tcfail140 tests some cases
  
  Revision  Changes    Path
  1.100     +3 -3      fptools/ghc/compiler/hsSyn/HsExpr.lhs
  1.186     +26 -8     fptools/ghc/compiler/typecheck/TcExpr.lhs
  1.71      +1 -1      fptools/ghc/compiler/typecheck/TcMType.lhs
  1.89      +4 -4      fptools/ghc/compiler/typecheck/TcMatches.lhs
  1.68      +95 -28    fptools/ghc/compiler/typecheck/TcUnify.lhs


More information about the Cvs-ghc mailing list