o =< p ===> o.l =< p.lを採用した理由を少し説明しましょう。
継承の定義を、上記のようなものではなく、 o =< p かつ p/[l=a] ===> o/[l=a] (*) という定義も考えられます。(こっちの方が、直観的ですよね。) しかし、Quixote では、多重継承 o =< p かつ o =< q ===> o には、p と q の性質が継承される も実現したくて、しかし、継承の定義が (*) だと、 「多重継承の場合、どのように o の性質を決定すればいいか はっきりしない」 ことに気づきました。 それに対して、Quixote の採用している、 o =< p ===> o.l =< p.l (**) という制約を用いた定義だと、 o =< p, o =< q ===> o.l =< p.l, o.l =< q.l となり、右辺を制約解消することによって、o の性質が決定されます。 「はっきりしないよりは決定される方がいい」ということで、 我々は (**) の定義を採用した訳ですが、少し気になるのが、応用からの 意見です。 (**) の規則がまずいかどうか、応用からの意見はとても興味があります。 御意見を頂けると嬉しいです。