On Thu, Aug 06, 2009 at 03:33:40PM +0100, Malcolm Wallace wrote: > >What semantics would you like Haskell to have, in which (x `seq` y > >`seq` e) and (y `seq` x `seq` e) are not equal? > > I can easily imagine that (x `seq` y `seq` e) might have *two* > semantic denotations: bottom (Exception: stack overflow), and e. > And I would like to be able to choose which one I get (please). > This is the declared purpose of seq, namely "to improve performance > by avoiding unneeded laziness".
There is no stack overflow in the denotational semantics. Either you would get an answer with a bigger stack (and that's the denotation), or you wouldn't (in which case the value is bottom). As Simon said, the denotational semantics of seq is very limited for specifying performance. _______________________________________________ Haskell-prime mailing list Haskell-prime@haskell.org http://www.haskell.org/mailman/listinfo/haskell-prime