3 ms·
do you mean the: foo x | trace (show x) False = undefined | otherwise = ... x ... ? That's not comparing anything to undefined, now is it a patt
by axman6 13y ago
do you mean the:
foo x | trace (show x) False = undefined
| otherwise = ... x ...
? That's not comparing anything to undefined, now is it a pattern guard, it's executing the trace function which then returns False leading to the next guard being evaluated and the actual computation being performed. The undefined is just there because it always type checks, and will never execute.