
20 Aug
2009
20 Aug
'09
6:10 p.m.
On Thu, Aug 20, 2009 at 1:02 PM, Ketil Malde
David Leimbach
writes: I'm pretty certain that forcing a pattern match via case is what disallows the laziness to get out of hand. The case statement, when evaluated, must choose a matched pattern branch, even if it's the only possibility, which ends up boiling down to "seq" anyway doesn't it?
Prelude> case undefined of x -> () ()
So I think you are incorrect: the 'undefined' here isn't evaluated by the case.
It's doing a case on a pattern match that forces evaluation. Try:
case undefined of (x:xs) -> ()
Antoine