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