これは本当に基本的な感じです。ごめんなさい。
検討
trait Foo[+T] { def t : T }
trait Bar[+S,+T] extends Foo[T] { def s : S }
trait Baz[+S,T] extends Foo[T] { def s : S }
BazのTが共分散としてマークされていなくても、FooのTの共分散は自動的にBazに適用されますか?BarとBazの動作には意味のある違いがありますか?
(遊んでみると、2つの形式を区別するのは難しいようです。同じである場合、Bazだけを見ると、Tが異形ではないと予想されるため、Baz形式が警告またはエラーを通知しないのはどういうわけか汚い感じがします。)