The following works: ```scala trait T[_] sealed trait A sealed trait C object A { implicit object AA extends T[A] } object C { implicit object CC extends T[C] } object B { implicitly[T[A]] implicitly[T[C]] } ``` While the the following can not find the implicit T[C] instance: ```scala trait T[_] sealed trait A sealed trait C object A { implicit object AA extends T[A] } object B { implicitly[T[A]] implicitly[T[C]] } object C { implicit object CC extends T[C] } ``` The only difference is the order of appearance for the B and C objects.