Lift the "Illegal polymorphic type" restriction on type families
Currently, I can do this:
type Foo = forall a. Maybe a
But if I try to refactor this to an equivalent type family:
type family Foo where
Foo = forall a. Maybe a
Then GHC complains:
• Illegal polymorphic type: forall a. Maybe a
• In the equations for closed type family ‘Foo’
In the type family declaration for ‘Foo’
We should lift this restriction. This would be necessary, for instance, to implement #11962.
Trac metadata
Trac field | Value |
---|---|
Version | 8.0.1 |
Type | FeatureRequest |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler (Type checker) |
Test case | |
Differential revisions | |
BlockedBy | |
Related | #11962 |
Blocking | |
CC | |
Operating system | |
Architecture |