unrequested generalized newtype deriving?
Consider the two type definitions:
newtype MaybeT m a = MaybeT { runMaybeT :: m (Maybe a) } deriving Eq
data MaybeT' m a = MaybeT' { runMaybeT' :: m (Maybe a) } deriving Eq
Why is it that the former compiles, with no flags of any kind, but the latter does not? It seems like generalized newtype deriving is happening when unrequested and undesired...
(I'm trying to figure out how Derive should derive Eq, and compiler bugs don't help much ;-)
Trac metadata
Trac field | Value |
---|---|
Version | 6.6 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | Unknown |
Architecture | Unknown |