5 Oct
2005
5 Oct
'05
3:30 p.m.
On Wed, Oct 05, 2005 at 04:01:09PM +0100, Simon Marlow wrote:
No, of course I don't expect the monad laws to hold :)
But the intended meaning of
(do _|_; return () :: IO ()) `seq` True
is True, not _|_, right? This isn't made explicit in the report, but it's how we all understand the IO monad to work, and perhaps derives from the well-known implementation of (IO a) as (World -> (a,World)).
Actually, from a resumption-based semantics of IO, I was expecting _|_, but I see all the implementations get it wrong.