Eta reduce type synonyms when possible
If you can eta reduce a type synonym, it is always better:
-- Bad
type F a = Maybe a
instance Functor F -- illegal, partially applied type synonym!
-- Good
type F = Maybe
instance Functor F -- ok with type synonym instances
So... GHC should do this automatically for users. Ordinarily this is not terribly important (thus the priority); in the context of #12680 it is a modestly helpful affordance which allows a user to implement data Map a
using type Map a = HashMap a
(signature matching requires the type synonym to be nullary.)
Trac metadata
Trac field | Value |
---|---|
Version | 8.1 |
Type | FeatureRequest |
TypeOfFailure | OtherFailure |
Priority | lowest |
Resolution | Unresolved |
Component | Compiler (Type checker) |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | goldfire |
Operating system | |
Architecture |