How about the following rule: unlifted patterns are always strict (i.e., you desugar them as if they had an explicit `!`). A pattern is "unlifted" if the type it examines is unlifted. Seems simple enough and, I think, it would do what most folks would expect.
I guess a more explicit option would be to make it an error to use a lazy pattern on an unlifted type, and require programmers to manually add the `!` but I am not sure that gains much, and is more work in the compiler. -Iavor On Thu, Sep 3, 2020 at 10:38 AM Richard Eisenberg <r...@richarde.dev> wrote: > > > On Sep 3, 2020, at 12:10 PM, Spiwack, Arnaud <arnaud.spiw...@tweag.io> > wrote: > > This is all a tad tricky, I must say. > > > ... which is one of the reasons I originally wanted one simple rule. I'm > not now saying I was in the right, but it is an attractive resting point > for this discussion. > > To be clear, I don't think there's going to be any concrete action here > without a proposal, so perhaps once this thread finds a resting point > different than the status quo, someone will have to write it up. > > Richard > _______________________________________________ > ghc-devs mailing list > ghc-devs@haskell.org > http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs >
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs