豊福です。

shelarcyさん
> (unit -> unit) => unit になりませんか?

  (unit -> 'a) は 'a と同一視できるからという意味ですか。

>>   「>>=」の次には ('a -> 'b io) (ここでは 'a が char、'b
>> が unit なので (char -> (unit -> unit)))がこなくてはいけない

  echo では 'b が unit でしたが 'b が unit ではないときはどう
なるのでしょう。

実際のところ ML で
  fun echo () = getc >>= (fn c =>
               if (c = #"\n") then
                 done ()
               else
                 putc c >>
                 echo ()))
は通るんでしょうか。通るとして実行させたらどうなるんでしょう。
  自分でも余裕ができたら ML処理系入れて試してみます。
---
                        豊福
                        nobu_toyofuku / nifty.com


--
ML: haskell-jp / quickml.com
使い方: http://QuickML.com/