コンパイラは、「反変の型 A は、型 >: A <: 型 B のいずれかの共変の位置で発生します。」警告は、compose メソッドの型パラメーターにあります。論理的には、型定義は私にとって理にかなっています。コンパイラが andThen に問題がない場合、なぜ逆の問題が生じるのでしょうか?
trait Foo[-A]{
def compose[B >: A](t: Foo[B]): Foo[A] = t andThen this
def andThen[B <: A](t: Foo[B]): Foo[B]
}
私が必要とするのは、それが壊れる例です。それから私は幸せです。