New GeneralizedNewtypeDeriving check still isn't permissive enough
Roman Cheplyaka writes:
I just tried compiling smallcheck with GHC HEAD, and it didn't work out:
Test/SmallCheck/SeriesMonad.hs:41:7:
Can't make a derived instance of ‛MonadLogic (Series m)’
(even with cunning newtype deriving):
it is not type-safe to use GeneralizedNewtypeDeriving on this class;
‛msplit’, at type ‛forall a.
m a -> m (Maybe (a, m a))’, cannot be converted safely
In the newtype declaration for ‛Series’
So GHC now looks at the methods, but the problem is still there.
I would agree that msplit
's type is problematic (due to the nested m
's),
but Simon and Richard previously said that it should work, so I'm
confused.
Trac metadata
Trac field | Value |
---|---|
Version | 7.7 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | |
Architecture |