[...]
I think the query originally assumed a sequencing ambiguity in the IO monad... but in my experiance (all be it limited) the IO monad is there to ensure strict sequencing.
You're right, this was my main question. I read the paper "Tackling the Awkwar Squad: monadic input / output, concurrency, exceptions, and foreign-language calls in Haskell", Simon Peyton Jones, available at http://research.microsoft.com/users/simonpj There is an operational semantic given for the IO system, and I think this semantic ensures strict sequencing of IO actions. In this paper the echoTwice-example is given, and I was a little bit confused about the abnormal behavior of the program when I executed it. I didn't think at the buffering, but now it seem to be clear... Thanks for your comments ------------------- David Sabel JWGU Frankfurt