1 2 3 4 5 6 7 8 9 10
object subtypcycle { trait Y { type A <: { type T >: B } type B >: { type T >: A } } val y: Y = ??? val a: y.A = ??? val b: y.B = a }