Может кто-нибудь объяснить мне, почему пример 1 компилируется, но пример 2 не работает?
Пример 1:
trait Foo[+A]
trait Bar[A] extends Foo[A]
Пример 2:
trait Foo[A[+_]]
trait Bar[A[_]] extends Foo[A]
Пример 2 не компилируется со следующим сообщением об ошибке: "Типы аргументов типа (A) не соответствуют ожидаемым типам параметров типа (тип A) в признаке Foo. Параметры типа не соответствуют типу A ожидаемые параметры: тип _ (в trait Bar) является инвариантным, но тип _ (в признаке Foo) объявляется ковариантным "