Simon Peyton-Jones said:<br><br>&gt;&nbsp; But since the read may block, it matters *when* you perform it.<br>&gt;&nbsp; For example if you print &quot;Hello&quot; and then read the IVar, you&#39;ll<br>&gt;&nbsp; block after printing; but if you read the IVar and then print, the
<br>&gt;&nbsp; print won&#39;t come out.&nbsp; If the operation was pure (no IO) then you&#39;d<br>&gt;&nbsp; have a lot less control over when it happened.<br><br>But this is true of any expression in a non-strict language.<br><br>Why the special treatment of IVars?
<br><br>Nikhil<br><br>