[Haskell-cafe] Surprising interaction between @-patterns and nested patterns
Henning Thielemann
lemming at henning-thielemann.de
Tue Jan 3 07:22:08 UTC 2023
On Mon, 2 Jan 2023, David Feuer wrote:
> My opinion, for several years, has been that the Haskell designers erred in making outermost patterns
> lazy by default in let and where, and at the top level. I believe they should have gone with
> something much simpler:
> 1. Patterns are strict by default.
> 2. Variables are lazy by default.
> 3. Patterns at the top level must be marked lazy.
> 4. (With bang patterns) Variables at the top level may not be marked strict.
>
> That would harmonize the way patterns are handled in let and where with the way they're handled in
> function arguments and case expressions, as well as removing the outermost-pattern special case which
> makes the *strictness* of inner patterns surprising.
me too
> Unfortunately, I don't think there's much chance of any of these
> changing in Haskell.
Could start as a nice GHC extension like Strict Haskell.
More information about the Haskell-Cafe
mailing list