<div dir="ltr"><div class="gmail_default" style="font-family:tahoma,sans-serif">I trust Richard (again). Happy to support this. Thank you Vlad for this attention to detail.</div><div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif">Simon<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, 17 Dec 2021 at 22:39, Richard Eisenberg <<a href="mailto:lists@richarde.dev">lists@richarde.dev</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">Hi all,<br>
<br>
I am shepherding Proposal #460, an amendment to accepted proposal #371.<br>
<br>
#371 proposed making the ~ operator completely non-magical in parsing, behaving syntactically like any other operator. It would have to be imported (though it would be exported from the Prelude, so most users get it for free), -XTypeOperators would have to be enabled, and its appearance is unaffected by -XGADTs or -XTypeFamilies. This proposal was approved, but only very weakly: I gave a soft recommendation to accept, which Simon PJ trusted (but without much independent confirmation, it seems), Joachim gave a weak accept, and Alejandro and Arnaud said things mildly against (but did not quite vote for rejection).<br>
<br>
Text for accepted proposal #371: <a href="https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0371-non-magical-eq.md" rel="noreferrer" target="_blank">https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0371-non-magical-eq.md</a><br>
<br>
This current #460 is a small amendment to #371 that makes the migration story gentler. All current programs would continue to be accepted for 8 releases. If ~ is used in a file without TypeOperators, a warning (enabled by default) triggers, saying that the user should enable TypeOperators. This fix is backward compatible. If ~ is used when it is out of scope (say, because a module does not import the Prelude), a warning (in -Wcompat) triggers. The fix is not backward compatible, because (~) is not currently exported from the Prelude. This warning gets moved from -Wcompat to the default warning set after 2 releases.<br>
<br>
The previous migration story had no warning for a missing -XTypeOperators, meaning that some code would break immediately (although the fix is easy and backward compatible).<br>
<br>
Text for amended proposal: <a href="https://github.com/int-index/ghc-proposals/blob/eqtycon-migration/proposals/0371-non-magical-eq.md" rel="noreferrer" target="_blank">https://github.com/int-index/ghc-proposals/blob/eqtycon-migration/proposals/0371-non-magical-eq.md</a><br>
Amendment diff: <a href="https://github.com/ghc-proposals/ghc-proposals/pull/460/files" rel="noreferrer" target="_blank">https://github.com/ghc-proposals/ghc-proposals/pull/460/files</a><br>
<br>
---<br>
<br>
I recommend acceptance, because immediate breakage of code is bad: it causes kinks in the update cycle after a GHC release. This new migration story should be gentler, and poses little implementation burden.<br>
<br>
Given the minor nature of this proposal, I will accept in one week if there is not dissent.<br>
<br>
Thanks,<br>
Richard<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>