[Haskell-cafe] How is laziness defined?
haskell at brecknell.org
Tue Feb 6 01:04:15 EST 2007
> Although it covers irrefutable (lazy) pattern matching in the second
> section, it does appear to miss the point that let bindings are always
> Thus, there is no difference between these two:
> let (x,y) = foo in ...
> let ~(x,y) = foo in ...
Andrew Bromage said:
> let (x,()) = (1,undefined) in x
> let (x,~()) = (1,undefined) in x
In other words, the irrefutability of a pattern match does not
distribute inside the top-level data constructor of the pattern. See
also the second rule in section 3.17.2 of the Revised Haskell 98 Report
(Informal Semantics of Pattern Matching).
More information about the Haskell-Cafe