> Think of the following though experiment. What if I would have a function 
> "unparse:IO a->String" which gives the textual representation of the 
> specification of the object of type IO a? Clearly, IO is not a monad 
> anymore. Moreover, I don't think it would break the purity of Haskell. And 
> surely, in case of the IO monad, we can think of better manners to break a 
> program down.

Why would such a function cause IO to cease being a monad?

There's no reason such a function couldn't be written, given an
appropriate implementation of IO, and an implementation that is able
to print a representation of a function (not too difficult for an
interpreter).  Imagine adding "deriving Show" to the data types IO and
SysCall suggested by Ross Paterson in
<[EMAIL PROTECTED]>.

--KW 8-)

_______________________________________________
Haskell-Cafe mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to