trait T { fun foo(): Unit } open class A : T { override fun foo(): Unit {} } class B : A(), T class C : T, A() trait U : T class D : U, A() class E : A(), U class F : U, T, A() class G : T, U, A() class H : U, A(), T class I : T, A(), U class J : A(), U, T class K : A(), T, U fun box(): String { B().foo() C().foo() D().foo() E().foo() F().foo() G().foo() H().foo() I().foo() J().foo() K().foo() return "OK" }