
7 May
2007
7 May
'07
10:13 a.m.
Isaac Dupree
The obvious "evaluate x = x `seq` return x" fails one of the following laws for evaluate:
evaluate x `seq` y ==> y
I'm not sure why anyone thinks this "law" should hold, since it completely changes the known semantics of `seq`. A more accurate law would be: evaluate x `seq` y ==> if x==_|_ then _|_ else y Where did you find the erroneous version? Regards, Malcolm