Arnaud, I agree that _we_ consider LinearTypes experimental. I hope we can get https://github.com/ghc-proposals/ghc-proposals/pull/617 agreed on soon, so that the compiler has
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!

On Thu, 25 Jan 2024 at 16:01, Arnaud Spiwack <arnaud.spiwack@tweag.io> wrote:
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.

On Thu, 25 Jan 2024 at 07:18, Moritz Angermann <moritz.angermann@gmail.com> wrote:
I'll have to recuse myself from this, as much of this is currently going above my head. My overall understanding is that
this mostly relaxes what we accept, and therefore won't break existing code?

Best,
 Moritz

On Thu, 25 Jan 2024 at 00:39, Arnaud Spiwack <arnaud.spiwack@tweag.io> wrote:
On Wed, 24 Jan 2024 at 16:39, Simon Peyton Jones <simon.peytonjones@gmail.com> wrote:
Do newtypes make a difference?  E.g      let N x = e in ...
where N is the data contructor of a newtype?

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.

I suspect that there's a possible refinement where we say that a happy pattern is either:
- A variable
- Strict
- A newtype constructor where the inner pattern is happy.

(then if pat is an unhappy pattern, `let pat` must be unrestricted).

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.
_______________________________________________
ghc-steering-committee mailing list
ghc-steering-committee@haskell.org
https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee


--
Arnaud Spiwack
Director, Research at https://moduscreate.com and https://tweag.io.