Can't use 'instance' keyword in associated type family instance
The manual on type families says:
When an associated data or type synonym family instance is declared within a type class instance, we (optionally) may drop the instance keyword in the family instance"
But that doesn't work for me.
Using
class Myclass a where
type family MyFamily a :: *
then the code
instance Myclass Mytype where
type instance MyFamily Mytype = Int
doesn't compile but
instance Myclass Mytype where
type MyFamily Mytype = Int
I'd expect to be able to use the instance keyword here.
I'd prefer this to be treated as an implementation bug instead of a doc bug, because I think it can be useful to be explicit for the ease of reading (and it work works the same way for class declaration, as the example also demonstrates).
Trac metadata
| Trac field | Value |
|---|---|
| Version | 8.0.2 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Compiler |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | nh2 |
| Operating system | |
| Architecture |