Oh, I should have been more explicit:<p>The decoupling of function calling and IO actions can work in non-statically typed languages, too.<p>Your question concerns a different topic.  To give something like an answer: that problem can only occur with `functions&#x27; of zero arguments.  Haskell sidesteps the issue by requiring all functions to have exactly one argument.