1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
trait OuterTrait { trait InnerTrait { type Element type Collection <: Iterable[Inner.Element] } val Inner: InnerTrait } object OuterObject extends OuterTrait { object Inner extends InnerTrait { type Element = String override type Collection = Seq[Inner.Element] } }