interface T { val foo: String } open class A : T { override val foo: String = "" } class B : A(), T class C : T, A() interface 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" }