Concurrent Clean : オブジェクト指向

相変わらずオブジェクト指向。それにしても、この言葉の使いにくさ。意味範囲が広すぎて、焦点としている概念にうまく焦点をあてられない。それとも、私の語彙が少ないからなのか?
今回考えるのは、カプセル化(あるいはモジュール化というほうが一般的なのか?)についてだ。これについて、Cleanで表現するのは、それほど難しくない。多分、レコード型と抽象データ型とモジュールシステムの組み合わせできれいに表現できるに違いない。モジュールシステムの名前空間の問題をもう少し調査したら、もっとはっきりすると思う。(Haskellのモジュールシステムは、柔軟で便利そうに見えるのだけれど、詳しいことを知らないので、本当のところはどうなのか?)
で、その場合、一意性を使うかどうかは、ほとんどの場合、効率性に関する観点だけで決定するのではないかと思う。また、最近まで、データ構造に対する一意性の効果について誤解していたところがあったので、そこのところを整理して、どういうときに一意性が有効なのかをはっきりさせよう。