
On Fri, 2011-12-30 at 23:16 +0200, Artyom Kazak wrote:
Thus, your function âfâ is a function indeed, which generates a list of instructions to kernel, according to given number.
Not my function, but yes, f certainly appears to be a function. Conal's concern is that if there is no possible denotational meaning for values of IO types, then f can't be said to be a function, since its results are not well-defined, as values. This is a valid concern... assigning a meaning to values of IO types necessarily involves some very unsatisfying hand-waving about indeterminacy, since for example IO actions can distinguish between bottoms that are considered equivalent in the denotational semantics of pure values (you can catch a use of 'error', but you can't catch non-termination). Nevertheless, I'm satisfied that to the extent that any such meaning can be assigned, f will be a valid function on non-bottom values. Not perfect, but close. -- Chris Smith