FunDep error message regression
This code (provided by Cale Gibbard)
{-# LANGUAGE FunctionalDependencies, FlexibleContexts #-}
class C a b | a -> b where
foo :: a -> b
instance C Integer Integer where
foo = id
f :: Integer -> String
f = foo
produced this error message in GHC 7.6:
fundep.hs:10:5:
Couldn't match type `Integer' with `String'
When using functional dependencies to combine
C Integer Integer,
arising from the dependency `a -> b'
in the instance declaration at fundep.hs:6:10
C Integer String, arising from a use of `foo' at fundep.hs:10:5-7
In the expression: foo
In an equation for `f': f = foo
but this one with GHC HEAD
FunDepError.hs:11:5:
No instance for (C Integer String) arising from a use of ‛foo’
In the expression: foo
In an equation for ‛f’: f = foo
which seems to be a regression.
It may be that either message is fine (it seems to be in this case), In that case, this bug is about the test suite not having a test case for where we do want to see the When using functional dependencies to combine
message.
Trac metadata
Trac field | Value |
---|---|
Version | 7.7 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler (Type checker) |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | |
Architecture |