丁寧な返答どうもです。
いや、作者さんじゃないしお詫びされる程じゃないっす。
確かに「世界」と言われても腑に落ちない人も居るかもしれない。

ところで評価順の話ですが、
私、評価順がどうなってるのかなんてよく分かってません(--;
do
 x <- return (f v)
 print $ g w
 print $ x
この場合、観測できるのはg wの印字とf vの印字だけど、
実際はどっちが先に評価されるんだっけ。
例えば、f vが head []を含んでいた場合、g wは印字されるか?

…やってみた。
Prelude> return (head []) >>= \x -> print "hoge" >>= \_ -> print x
"hoge"
*** Exception: Prelude.head: empty list

IOアクションに渡される引数の簡約が、評価順のトップになるという感じなのかな。
(わかりにくい説明でスマソ)