Feature request: Polymorphic kinds in Data.Functor.Classes
The classes in Data.Functor.Classes have a somewhat restrictive kind signature:
*Data.Functor.Classes> :k Eq1
Eq1 :: (* -> *) -> Constraint
As a result, we redefine [1] many of them in the parameterized-utils library. It would be quite easy to make more polymorphic (have kind "(k -> *) -> Constraint"). If everyone thinks this is a good idea, I'm happy to submit a pull request.
[1]: To be precise, there are actually a few axes along which the classes in parameterized-utils vary from those in base. Some, like OrdF, require more type-level evidence. Others, like EqF, don't require their type parameter to have the corresponding instance. There are a lot of points in the design space here.
Trac metadata
| Trac field | Value |
|---|---|
| Version | 8.6.3 |
| Type | FeatureRequest |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Compiler |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture |