Simon Marlow writes:
> All known Haskell compilers implement the IO type as a function type,
> something like (World -> (World, a)). 

Mark Jones replies:
> In Hugs, I did actually use a different implementation of the IO
> monad, based on continuation passing
>     IO a  =  (a -> Ans) -> (IOError -> Ans) -> Ans

Lennart replies:
> And HBC does something very similar.  In fact the real implementation of
> I/O in HBC is still the old streams of request responses.

And in nhc, the IO monad was originally something like Mark's
continuation-passing style, but later changed to Simon's state
transformer.

So all generalisations are false, Simon.  :-)

Regards,
    Malcolm

Reply via email to