[ghc-steering-committee] Please review #518: Type vs Constraint proposal, Shepherd: Eric

Eric Seidel eric at seidel.io
Wed Jul 13 00:50:34 UTC 2022


Hi all,

Richard and Simon PJ have proposed tightening up the distinction between Type and Constraint in the type system. This proposal is primarily motivated by eliminating a long-standing class of compiler bugs, but it introduces a number of new (user-facing) types at the core of GHC's type system. And it does bring with it some additional capabilities like unboxed and unlifted implicit parameters, and a greater ability to abstract over arrows.

I recommend acceptance of the proposal, but there is one question that I would like the broader committee to engage on. 

Simon and Richard have proposed introducing another arrow type as part of this proposal.

type (==>) :: forall (r1 :: RuntimeRep) (r2 :: RuntimeRep).
              CONSTRAINT r1 -> CONSTRAINT r2 -> Constraint

I am a bit wary of introducing this arrow as a stable API at this point. It does not seem strictly necessary to make this part of the public API to implement this proposal, but doing so would commit us to a particular point in the design space. I've started a thread to discuss this on GitHub, please take a look and chime in if you have thoughts.

https://github.com/ghc-proposals/ghc-proposals/pull/518#discussion_r917416818

Thanks!
Eric 

On Wed, Jul 6, 2022, at 08:10, Joachim Breitner wrote:
> Dear Committee,
>
> The Type vs Constraint proposal
> has been submitted by Richard Eisenberg and Simon Peyton Jones
>
> https://github.com/ghc-proposals/ghc-proposals/pull/518
> https://github.com/ghc-proposals/ghc-proposals/blob/spj/type-vs-constraint/proposals/0000-type-vs-constraint.rst
>
> I suggest that Eric shepherds this proposal.
>
> Please guide us to a conclusion as outlined in 
> https://github.com/ghc-proposals/ghc-proposals#committee-process
>
> Thanks,
> Joachim
>
>
>
>
>
> -- 
> Joachim Breitner
>   mail at joachim-breitner.de
>   http://www.joachim-breitner.de/
>
> _______________________________________________
> 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