Вы не говорите, что должно происходить между B(1)
и A(1)
. Предположим, они равны
object A {
implicit def orderingOfA[T : Ordering] : Ordering[A[T]] = Ordering.by(_.value)
}
Подтип B
в основном не имеет значения, упорядочение имеет значение A
, и оно также должно упорядочивать экземпляры B
, поскольку они являются экземплярами A
. Даже если вы решите, что значение B
изменит сравнение (возможно, оно нарушит связь), вынудите вас написать собственный заказ, но все же в том же месте, с той же подписью.
Конечно, порядок определяется только тогда, когда заказ доступен на T
(следовательно, [T : Ordering]
). И лучше всего определить его в компаньоне object A
, который сделает его доступным постоянно, без импорта.