直交と完備は違う

なんでもかんでもfirst class object、というか、「あれがxxxできるのに、これがxxxできないのはダサい」というのは、直交とは違う。
相互依存性が排除されたとき、直交と呼べる。
あるオブジェクト(クラス)の集まりが群(環でも体でもいいが)を成すことを期待されていて、それが便利であるとき、完備であることに意味がある。継承関係でsiblingだとか、同じmoduleをmix-inしてるとか。
逆に言えば、module同志は直交してて、どのモジュールも自由にmix-inできれば便利だというか、わかりやすいというか、鶏と卵というか。