<div dir="ltr">I also agree that _if_ we do the changes that the proposal wants, then the revised timeline/steps sound better than the original.<br></div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Sat, 12 Apr 2025 at 05:39, Matthías Páll Gissurarson via ghc-steering-committee <<a href="mailto:ghc-steering-committee@haskell.org">ghc-steering-committee@haskell.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">I agree, we should wait for the CLC before voting on this proposal.<br><br>To summarize:</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><br>10 years ago, the CLC voted on the "Monad of No Return" proposal, which removes `return` and `(>>)` from `Monad`, to be replaced by `pure` and `(*>)` from `Applicative`, with `return` and `(>>)` being replaced with top-level bindings. The implementation of this was to proceed in multiple phases:</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">+ Phase 1 (implemented in 8.2, default in 9.2) that warns when `return` and `(>>)` are overwritten with non-canonical implementations (something other than `pure` and `(*>)`)</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">+ Phase 2: `return` and `(>>)` become top-level bindings and GHC ignores canonical implementation of these</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">+ Phase 3: Warn about all `return` and `(>>)` overwrites<br>+ Phase 4: Disallow overwrites of `return` and `(>>)`, removing them from Monad.<br><br>This proposal proposes merging these into 2 phases:<br>+ Phase 2: Make non-canonical implementations of `(>>)` and `return` a compilation error, and add a warning for canonical ones</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">+ Phase 3: Move `return` and `(>>)` to the top-level and remove them from Monad.<br><br>I'm in favor of *this specific change*, i.e. reducing the phases and easing migration.<br><br>However, there are multiple concerns raised with the original MoNR proposal, as compiled by Julian:<br>+ `(*>)` is not as performant as `(>>)` in some cases, which affects a large portion of the ecosystem, as this is an "unseen default".<br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">+ The impact assessment is stale, and the original motivation outdated<br>+ There are some corner cases that mean that behavior might potentially change, which is worrying<br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><br>So there's a question of whether we should keep going with the "Monad of No Return" proposal at all (of which this proposal is a modification), and if so, in what form we should do so.<br><br>As Simon points out, the CLC is discussing this, and I agree that the time is not right for a vote at the moment. We should think about the original proposal, and I encourage you to weigh in on the [CLC discussion](<a href="https://github.com/haskell/core-libraries-committee/issues/325" target="_blank">https://github.com/haskell/core-libraries-committee/issues/325</a>) (it's "internal", but multiple observers have already chimed in) <br><br>Unless anyone disagrees in the next 2 days (i.e. by Monday), I will inform the authors of this proposal of this, and suggest that we move the proposal back to "under revision" until we've gotten feedback from the CLC.</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, 11 Apr 2025 at 10:01, Simon Peyton Jones <<a href="mailto:simon.peytonjones@gmail.com" target="_blank">simon.peytonjones@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div style="font-family:tahoma,sans-serif">Can I draw your attention to <a href="https://github.com/haskell/core-libraries-committee/issues/325#issuecomment-2796062617" target="_blank">https://github.com/haskell/core-libraries-committee/issues/325#issuecomment-2796062617</a> ?</div><div style="font-family:tahoma,sans-serif"><br></div><div style="font-family:tahoma,sans-serif">The CLC plan to revisit the proposal, and while continued discussion here is fine, I don't think we could act until the CLC concludes.  My thought: let's move this back to "under revision" rather than shepherd it to a conclusion.</div><div style="font-family:tahoma,sans-serif"><br></div><div style="font-family:tahoma,sans-serif">We (maybe Adam or Matthias?) should write to the authors to explain this.  In a sympathetic and supportive way -- I think we all want to see Haskell progress towards beauty and not just keep bad warts; but it's just a tricky one.</div><div style="font-family:tahoma,sans-serif"><br></div><div style="font-family:tahoma,sans-serif">Simon</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, 11 Apr 2025 at 08:50, Matthías Páll Gissurarson via ghc-steering-committee <<a href="mailto:ghc-steering-committee@haskell.org" target="_blank">ghc-steering-committee@haskell.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto">Thank you all! This is a slightly nuanced one, so I’ll write a summary today for us to vote on.<br clear="all"><br clear="all"><div><div dir="ltr" class="gmail_signature">/Matti Palli</div></div></div><div><br></div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Apr 8, 2025 at 09:39 Adam Gundry via ghc-steering-committee <<a href="mailto:ghc-steering-committee@haskell.org" target="_blank">ghc-steering-committee@haskell.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Dear Committee,<br>
<br>
Benjamin proposes to revive and move forward the Monad of No Return <br>
proposal:<br>
<br>
<a href="https://github.com/ghc-proposals/ghc-proposals/pull/687" rel="noreferrer" target="_blank">https://github.com/ghc-proposals/ghc-proposals/pull/687</a><br>
<a href="https://github.com/L0neGamer/ghc-proposals/blob/amending-mrp/proposals/0000-amending-mrp.rst" rel="noreferrer" target="_blank">https://github.com/L0neGamer/ghc-proposals/blob/amending-mrp/proposals/0000-amending-mrp.rst</a><br>
<br>
I'd like to nominate Matthías as the shepherd.<br>
<br>
Please guide us to a conclusion as outlined in<br>
<a href="https://github.com/ghc-proposals/ghc-proposals#committee-process" rel="noreferrer" target="_blank">https://github.com/ghc-proposals/ghc-proposals#committee-process</a><br>
<br>
Cheers,<br>
<br>
Adam<br>
<br>
-- <br>
Adam Gundry, Haskell Consultant<br>
Well-Typed LLP, <a href="https://www.well-typed.com/" rel="noreferrer" target="_blank">https://www.well-typed.com/</a><br>
<br>
Registered in England & Wales, OC335890<br>
<a href="https://www.google.com/maps/search/27+Old+Gloucester+Street,+London+WC1N+3AX,+England?entry=gmail&source=g" target="_blank">27 Old Gloucester Street, London WC1N 3AX, England</a><br>
_______________________________________________<br>
ghc-steering-committee mailing list<br>
<a href="mailto:ghc-steering-committee@haskell.org" target="_blank">ghc-steering-committee@haskell.org</a><br>
<a href="https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee" rel="noreferrer" target="_blank">https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee</a><br>
</blockquote></div></div>
_______________________________________________<br>
ghc-steering-committee mailing list<br>
<a href="mailto:ghc-steering-committee@haskell.org" target="_blank">ghc-steering-committee@haskell.org</a><br>
<a href="https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee" rel="noreferrer" target="_blank">https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee</a><br>
</blockquote></div>
</blockquote></div><div><br clear="all"></div><div><br></div><span class="gmail_signature_prefix">-- </span><br><div dir="ltr" class="gmail_signature"><div dir="ltr"><span style="font-family:arial,helvetica,sans-serif;font-size:small">--  </span><a href="http://mpg.is/" style="font-family:arial,helvetica,sans-serif;font-size:small" target="_blank">Matthías Páll Gissurarson</a><br></div></div></div>
_______________________________________________<br>
ghc-steering-committee mailing list<br>
<a href="mailto:ghc-steering-committee@haskell.org" target="_blank">ghc-steering-committee@haskell.org</a><br>
<a href="https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee" rel="noreferrer" target="_blank">https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee</a><br>
</blockquote></div><div><br clear="all"></div><br><span class="gmail_signature_prefix">-- </span><br><div dir="ltr" class="gmail_signature"><div dir="ltr">Arnaud Spiwack<br>Director, Research at <a href="https://moduscreate.com" rel="noopener noreferrer" target="_blank">https://moduscreate.com</a> and <a href="https://tweag.io" rel="noopener noreferrer" target="_blank">https://tweag.io</a>.</div></div>