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

Richard Eisenberg rae at cs.brynmawr.edu
Tue Mar 5 03:16:18 UTC 2019


I recall a discussion in another proposal about the Lift class and removing the lift function. This was for a good reason (I think it stopped silent, terrible breakage). Does anyone remember where that conversation took place? A quick search didn't find an accepted proposal about the Lift class.

Thanks,
Richard

> On Mar 2, 2019, at 4:41 PM, Eric Seidel <eric at seidel.io> wrote:
> 
> 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
> _______________________________________________
> ghc-steering-committee mailing list
> ghc-steering-committee at haskell.org
> https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee



More information about the ghc-steering-committee mailing list