Exists を継承する場合、Foo は type A について何も知る必要も、与える必要もありません。勿論、それが型であろうと、抽象メンバがあると instantiation はできないので、最終的には type A とは何か、を誰かが決めてやる必要があります。しかし、Exists を直接継承するクラスないしトレイトに、必ずしもその責務があるとは限りません。 Forall を継承する場合、Bar は Forall に型パラメタを与えてやる必要があります。Forall を継承するクラスないしトレイトが適切な型パラメタを知っているなら問題ないのですが、そうでない場合には型パラメタをたらいまわしする必要があります。おかげで Bar も型パラメタを持つ羽目になってしまいました。Bar が A にとって興味がない場合、これは大変だるい。Bar を利用する側もだるい。 結局のところ、abstract