#5051: Typechecker behaviour change
---------------------------------------------+------------------------------
Reporter: igloo | Owner:
Type: bug | Status: new
Priority: high | Milestone: 7.2.1
Component: Compiler | Version: 7.0.2
Resolution: | Keywords:
Os: Unknown/Multiple | Architecture: Unknown/Multiple
Failure: None/Unknown | Difficulty: Unknown
Testcase: typecheck/should_compile/T5051 | Blockedby:
Blocking: | Related:
---------------------------------------------+------------------------------
Changes (by simonpj):
* owner: simonpj =>
* difficulty: => Unknown
* status: closed => new
* resolution: fixed =>
Comment:
I think we have to re-introduce silent superclass paramters (see #5751).
And indeed, looking at the example above, arguably it ''should'' complain
about overlap. Just suppose that the `Ord` instance for lists was
declared like this:
{{{
instance Ord a => Ord [a] where
x >= y == x>y || x==y
}}}
With this implementation, at type `Ord [T]` we really should be using the
`Eq [T]` instance, so the overlap complaint for `foo` is absolutely right.
'''Serge:''' how bad would it be if we re-introduced the behaviour you
reported in http://www.haskell.org/pipermail/glasgow-haskell-
users/2011-March/020116.html? I now think (a) it's the right behaviour
(b) it's necessary to cure #5751.
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/5051#comment:5>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs