Вот упрощение того, с чем я столкнулся.Это компилирует:
trait A { implicit val x = 1 }
trait B extends A { val y = implicitly[Int] }
Хотя это не (не удалось найти неявное значение):
trait B extends A { val y = implicitly[Int] }
trait A { implicit val x = 1 }
Я попытался прояснить свои намерения, указав собственный тип: trait A { this: B => ... }
, но безрезультатно.
Как мне справиться с такого рода зависимостями, не беспокоясь о том, как выложен мой код?