On Mon, Feb 9, 2009 at 10:17 PM, Richard O&#39;Keefe <span dir="ltr">&lt;<a href="mailto:ok@cs.otago.ac.nz">ok@cs.otago.ac.nz</a>&gt;</span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="Ih2E3d"><br>
On 10 Feb 2009, at 5:07 pm, Gregg Reynolds wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Thanks. &nbsp;I see the error of my ways. &nbsp;So, IO expressions must be evaluated if they are in the chain leading to main.<br>
</blockquote>
<br>
<br></div>
We need some standard terminology to distinguish<br>
between *evaluating* an expression and *performing*<br>
the result of an expression of type IO something.<br>
</blockquote><div><br>Indeed.&nbsp; Wrote a blog article about this proposing a semiotic approach:&nbsp; <a href="http://syntax.wikidot.com/blog:4">http://syntax.wikidot.com/blog:4</a> <br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
An IO expression that is passed to a function at a<br>
strict position must be evaluated whether the result<br>
is performed or not.<br>
<br>
An IO expression whose result will be performed must<br>
be evaluated before that performance can take place.<br>
</blockquote><div><br>Is the result of evaluation a thunk/suspension/closer?<br>&nbsp;</div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>

(Dash it, this really is getting us into White Knight land.)<br>
</blockquote><div><br>What&#39;s White Knight land? <br></div></div><br>