119ですが、もうひとつ質問です。

下のような 関数 flat の定義は定義できるのでしょうか?

「リストのリストの・・・リストというように,入れ子になっているリストを,
入れ子になっていないリストに変換する関数を定義せよ. 」
http://a414s1.it.nanzan-u.ac.jp/smlbook/smlwww/node39.html

以下のページの方も悩んでいたようですが、
結局うやむやになってるようです。
www5a.biglobe.ne.jp/~sasagawa/MLEdit/study/index.html

よろしくお願いします。