<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">
Hi Arnaud,
<div class=""><br class="">
</div>
<div class="">My understanding is we’re past phase 1, en route to phase 2, and may be here for quite a while. For reference, phase 1:</div>
<div class=""><br class="">
</div>
<div class="">
<blockquote type="cite" class="">Implement new warning in GHC which gets triggered when
<tt class="">Monad</tt> instances explicitly override the default <tt class="">return</tt> and
<tt class="">(>>)</tt> method implementations with non-lawful definitions (see compatible instance definition example in previous section).
<p data-sourcepos="310:1-310:256" class="">The warning was implemented in GHC 8.0 and is called
<b class=""><tt class="">-Wnoncanonical-monad-instances</tt></b> (there are variants of this warning flag for
<tt class="">Monoid</tt> and <tt class="">Fail</tt>) but it is <i class="">not</i> included in either
<tt class="">-Wall</tt> or <tt class="">-Wcompat</tt>.</p>
</blockquote>
With that completed, phase 2 will be:</div>
<div class=""><br class="">
</div>
<div class="">
<blockquote type="cite" class="">When we're confident that the majority of Hackage has reacted to the warning (with the help of Stackage actively purs</blockquote>
<blockquote type="cite" class="">uing maintainers to update their packages) we turn the
<tt class="">return</tt> and <tt class="">(>>)</tt> methods into a top-level binding and let GHC ignore lawful method definitions of
<tt class="">return</tt> and <tt class="">(>>)</tt>.</blockquote>
</div>
<div class=""><br class="">
</div>
<div class=""><a href="https://gitlab.haskell.org/ghc/ghc/-/wikis/proposal/monad-of-no-return" class="">https://gitlab.haskell.org/ghc/ghc/-/wikis/proposal/monad-of-no-return</a></div>
<div class=""><br class="">
</div>
<div class="">As Ben was the last to edit the page (albeit a year ago), perhaps he has some further insight?</div>
<div class="">I’ve CC’d him, just in case.</div>
<div class=""><br class="">
</div>
<div class="">Thanks,</div>
<div class="">Tom<br class="">
<div><br class="">
<blockquote type="cite" class="">
<div class="">On 1 Apr 2020, at 12:48, Spiwack, Arnaud <<a href="mailto:arnaud.spiwack@tweag.io" class="">arnaud.spiwack@tweag.io</a>> wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<div dir="ltr" class="">
<div class="">Dear all,</div>
<div class=""><br class="">
</div>
<div class="">Can someone enlighten me as to the current status of the Monad-of-no-return proposal? Which is the motivation for this proposal.</div>
<div class=""><br class="">
</div>
<div class="">Best,</div>
<div class="">Arnaud<br class="">
</div>
</div>
<br class="">
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Wed, Apr 1, 2020 at 12:50 AM Tom Harding <<a href="mailto:tomjharding@live.co.uk" class="">tomjharding@live.co.uk</a>> wrote:<br class="">
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Friends,<br class="">
<br class="">
This proposal seems very reasonable to me, and the ramifications are minimal. Consequently, I recommend that we accept.<br class="">
<br class="">
I’d now like to open the proposal up to committee discussion. My belief is that the issue be fairly uncontentious (particularly as prior behaviour can be fully restored by explicitly passing the relevant `-Wno-...` flags to the compiler), but I welcome any
thoughts either way.<br class="">
<br class="">
Thanks,<br class="">
Tom<br class="">
_______________________________________________<br class="">
ghc-steering-committee mailing list<br class="">
<a href="mailto:ghc-steering-committee@haskell.org" target="_blank" class="">ghc-steering-committee@haskell.org</a><br class="">
<a href="https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee" rel="noreferrer" target="_blank" class="">https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee</a><br class="">
</blockquote>
</div>
</div>
</blockquote>
</div>
<br class="">
</div>
</body>
</html>