More flexible type signatures for data constructors
See http://article.gmane.org/gmane.comp.lang.haskell.cafe/29409, and the rest of the thread. The idea is to allow data constructor declarations to have things like this:
type Foo = Int -> Bool -> T
data T where
C :: Foo
This is a silly example, but the idea is not to require the arrows to be all visible at top level, and to allow the result type to be something other than visibly T itself.
I'm recording this as a feature request, since it came up on Haskell Cafe, but I'm not sure that I like it. The type signatures in data type declarations are pretty special: notably, they allow record syntax, and support strictness annotations.
Trac metadata
| Trac field | Value |
|---|---|
| Version | 6.6.1 |
| Type | FeatureRequest |
| TypeOfFailure | OtherFailure |
| Priority | low |
| Resolution | Unresolved |
| Component | Compiler |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | Unknown |
| Architecture | Unknown |