1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
trait A1 { def f[T[+_]] = () } trait B1 extends A1 { override def f[T[_]] = () } trait A2 { def f[T[-_]] = () } trait B2 extends A2 { override def f[T[_]] = () } trait A3 { def f[T[X[_]]] = () } trait B3 extends A3 { override def f[T[X[+_]]] = () }