[ghc-steering-committee] Proposal #209: Levity polymorphic lift. Recommendation: accept

Eric Seidel eric at seidel.io
Sat Mar 2 21:41:56 UTC 2019


Hi everyone,

This proposal[1] makes the `lift` and `liftTyped` methods of the `Lift` class levity-polymorphic, which allows us to write proper `Lift` instances for unlifted types. It would also allow GHC to remove the special logic that currently supports lifting records with unlifted fields.

The main downside is the potential for breakage since `lift @Foo` would now fix the RuntimeRep parameter rather than the `a`. This is unfortunate, but I doubt it will show up much. It also unfortunately requires making both `lift` and `liftTyped` methods, when we had just decided to extract `lift` from the class. 

I recommend accepting the proposal.

Thanks!
Eric

[1]: https://github.com/harpocrates/ghc-proposals/blob/levity-polymorphic-lift/proposals/0000-levity-polymorphic-lift.rst


More information about the ghc-steering-committee mailing list