>>462
delayとforceはSchemeにあるよ。

>>464
まあそう。IOは、最初はST(State Transformer)と呼ばれてた。
getCharはIO Char型だよ。
do
 c <- getChar
 putChar c
は、実はsyntax sugarで、getChar >>= \c.(putChar c)のこと。
(>>=)はIO a->(a->IO b)->IO b型の演算子。

システムは、まずWorldを引数にgetCharを呼び出す。
返ってきたIO Char型の構造体からCharを取りだし、
\c.(putChar c)を呼び出すと、IO ()が返ってくる。
それをWorldを引数に呼び出す。