in reply to GHC shuffle more efficient than Perl5.in thread Why is the execution order of subexpressions undefined?
http://haskell.org/hawiki/ImperativeHaskell