<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
I am sorry for having mixed-up arguments (but who throws the first
stone?...)<br>
<br>
<blockquote type="cite">
<pre wrap="">Jerzy seemed to suggest that the "impurity" of IO was somehow related to it
not supporting very many operations.</pre>
</blockquote>
No, not really. I added <br>
<br>
<blockquote type="cite"> First, it is not true that you can do
with, say, (printStr "Ho!" ) whatever you want. In fact, you can
do almost nothing with it. You can transport it "as such", and you
can use it as the argument of (>>=). </blockquote>
<br>
after the message of Jake McA.<br>
<br>
<blockquote type="cite"><i>You can do whatever you want with them</i>
with no harmful effects in any Haskell expression. </blockquote>
<br>
This was an additional layer of bikeshedding, not exactly about
purity.<br>
Or, just a bit: the ONLY "real" operation on an action, i.e.
(>>=) produces side-effects... Other don't, but --<br>
<br>
Again, here my point is that calling "pure" an entity which is
opaque and inert, is meaningless (or "redundant" if you wish...),
this was all.<br>
<br>
Jerzy K.<br>
<br>
PS. Tom Ellis:<br>
<br>
<blockquote type="cite">
<pre wrap="">One could simply implement IO as a free monad</pre>
</blockquote>
Interesting. I wonder how.<br>
<br>
</body>
</html>