A
не является абстрактным. Если бы это было абстрактно, то это выглядело бы так:
abstract class A {
type R
}
или
trait A {
type R
}
Так вот, я не могу найти это в спецификации (в последнее время мне не очень повезло с поиском чего-то там), но я видел это раньше. Если тип не используется, то он выглядит так, как будто он не оценен, что означает, что отсутствие его полноты не является проблемой.
Если вы действительно хотите, чтобы A
был абстрактным, сделайте так, используя вместо этого одно из приведенных выше определений.