On 06/08/2009 13:49, Thomas Davie wrote:
On 6 Aug 2009, at 14:37, Nils Anders Danielsson wrote:
On 2009-08-06 11:08, Malcolm Wallace wrote:
yet, because of the definition of $!, this applies the constructor to
its arguments right-to-left instead of the intuitive left-to-right.
I do not think that there is a bug: x `seq` y `seq` e has the same
denotation as y `seq` x `seq` e.
Not if one considers the "kind" of bottom one receives:
undefined `seq` error "it exploded" `seq` e will print "Prelude.undefined"
while
error "it exploded" `seq` undefined `seq` e will print "Error: it exploded"
There's only one kind of bottom in Haskell 98. And even with the
imprecise exceptions extension, both expressions still have the same
denotation - they denote the same set of exceptions, one of which is
non-deterministically picked when the program is run.
Cheers,
Simon
_______________________________________________
Haskell-prime mailing list
Haskell-prime@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-prime