<div dir="ltr">Arnaud, I agree that _we_ consider LinearTypes experimental. I hope we can get <a href="https://github.com/ghc-proposals/ghc-proposals/pull/617">https://github.com/ghc-proposals/ghc-proposals/pull/617</a> agreed on soon, so that the compiler has<div>this knowledge as well. I am however not able to fully comprehend the technical details of this proposal right and therefore will defer to others on this!</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, 25 Jan 2024 at 16:01, Arnaud Spiwack <<a href="mailto:arnaud.spiwack@tweag.io">arnaud.spiwack@tweag.io</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr">Moritz: there's one breakage introduced (but only for users of LinearTypes, which is considered experimental), namely that LinearTypes is proposed to now imply MonoLocalBinds.<br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, 25 Jan 2024 at 07:18, Moritz Angermann <<a href="mailto:moritz.angermann@gmail.com" target="_blank">moritz.angermann@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr">I'll have to recuse myself from this, as much of this is currently going above my head. My overall understanding is that<div>this mostly relaxes what we accept, and therefore won't break existing code?</div><div><br></div><div>Best,</div><div> Moritz</div><div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, 25 Jan 2024 at 00:39, Arnaud Spiwack <<a href="mailto:arnaud.spiwack@tweag.io" target="_blank">arnaud.spiwack@tweag.io</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr">On Wed, 24 Jan 2024 at 16:39, Simon Peyton Jones <<a href="mailto:simon.peytonjones@gmail.com" target="_blank">simon.peytonjones@gmail.com</a>> wrote:</div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div style="font-family:tahoma,sans-serif"><div>Do newtypes make a difference?  E.g      let N x = e in ...</div><div>where N is the data contructor of a newtype?</div></div></div></blockquote><div><br></div>I don't think it has too. So for the moment, I vote to stick to the current proposal and consider this like all lazy non-variable patterns: must be unrestricted.</div><div class="gmail_quote"><br></div><div class="gmail_quote">I suspect that there's a possible refinement where we say that a happy pattern is either:</div><div class="gmail_quote">- A variable</div><div class="gmail_quote">- Strict</div><div class="gmail_quote">- A newtype constructor where the inner pattern is happy.</div><div class="gmail_quote"><br></div><div class="gmail_quote">(then if pat is an unhappy pattern, `let pat` must be unrestricted).</div><div class="gmail_quote"><br></div><div class="gmail_quote">But I don't think I'm quite ready to go there for the time being, and that'll be a backward compatible change if we change our mind.<br></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><br clear="all"><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>
</blockquote></div>