
On Mon, Feb 9, 2009 at 10:17 PM, Richard O'Keefe
On 10 Feb 2009, at 5:07 pm, Gregg Reynolds wrote:
Thanks. I see the error of my ways. So, IO expressions must be evaluated if they are in the chain leading to main.
We need some standard terminology to distinguish between *evaluating* an expression and *performing* the result of an expression of type IO something.
Indeed. Wrote a blog article about this proposing a semiotic approach: http://syntax.wikidot.com/blog:4
An IO expression that is passed to a function at a strict position must be evaluated whether the result is performed or not.
An IO expression whose result will be performed must be evaluated before that performance can take place.
Is the result of evaluation a thunk/suspension/closer?
(Dash it, this really is getting us into White Knight land.)
What's White Knight land?