GeneralizedNewtypeDeriving: "deriving ALL"
I've found I've wanted to do:
newtype X1 = X1 ( X ) deriving ( ALL ); newtype X2 = X2 ( X ) deriving ( ALL );
When I want X1, X2 to behave like X, but I might later want to add them to different instances, i.e.
class Silly a
double :: a -> a
instance Silly X1 where
double x = 2 * x
instance Silly X2 where
double x = 3 * x -- Silly double
Currently, it seems to be the only way to do this is to dig into the source of X and find every instance it has. It would be nice to be able to simply to "deriving ALL" to make XN in "newtype XN = XN X" behave exactly the same as X.
Trac metadata
| Trac field | Value |
|---|---|
| Version | 7.4.1 |
| Type | FeatureRequest |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Compiler |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture |