ブロック:高階関数 ≒ オブジェクト:モジュール?

ブロックまわりの構文解析をいじるためにRubyをちょっとだけ勉強したのだが(普通と順番が反対かも)、

と同じように、もし

  • 「一個のモジュールが定義する抽象データ型は高々一個」
  • 「その抽象データ型tを実装する関数は、t型の引数を高々一個しかとらない(バイナリメソッドはない)」

としたら、モジュールシステムよりオブジェクト指向のほうが簡潔、という議論も可能かと思った。後者2つの仮定は最初の仮定ほど頻繁に成立しないかもしれないが、少なくとも成立する場合には当てはまる?(モジュールとオブジェクトの比較についてはhttp://d.hatena.ne.jp/sumii/20070104/p1も参照)