У меня есть трейт и реализация, выглядящая например:
trait Foo[A] {
def bar[B >: A: Ordering]: Foo[B]
}
class FooImpl[A]( val a: A, val values: List[Foo[A]] ) extends Foo[A] {
def bar[B >: A] = { /* concrete implementation */}
}
Я хотел бы использовать аннотацию @specialized
для A
и B
, чтобы избежать автоупаковки. Нужно ли использовать его и в трейте, и в реализации, только в реализации или только в трейте?