
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_r91741681... 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/p...
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@joachim-breitner.de http://www.joachim-breitner.de/
_______________________________________________ ghc-steering-committee mailing list ghc-steering-committee@haskell.org https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee