[project @ 2001-05-03 09:32:48 by simonpj]
authorsimonpj <unknown>
Thu, 3 May 2001 09:32:49 +0000 (09:32 +0000)
committersimonpj <unknown>
Thu, 3 May 2001 09:32:49 +0000 (09:32 +0000)
commitb473b6c241cf54b5edc1e21553250739476c0cf9
tree7bb6495f45c52b57b6d16472bdd9dbdc88f5841c
parent0f7c4b885e64428f50e9fa943ecd42d3c5f39c35
[project @ 2001-05-03 09:32:48 by simonpj]
------------------------------------------------
Dramatically improve the error messages arising
from failed unifications triggered by 'improvement'
------------------------------------------------

A bit more plumbing in FunDeps, and consequential wibbles elsewhere

Changes this:

    Couldn't match `Int' against `[(String, Int)]'
Expected type: Int
Inferred type: [(String, Int)]

to this:

    Foo.hs:8:
Couldn't match `Int' against `[(String, Int)]'
    Expected type: Int
    Inferred type: [(String, Int)]
When using functional dependencies to combine
  ?env :: Int, arising from a type signature at Foo.hs:7
  ?env :: [(String, Int)],
    arising from use of implicit parameter `?env' at Foo.hs:8
When generalising the types for ident
ghc/compiler/typecheck/TcBinds.lhs
ghc/compiler/typecheck/TcSimplify.lhs
ghc/compiler/types/Class.lhs
ghc/compiler/types/FunDeps.lhs
ghc/compiler/types/Type.lhs