interface A {
fun foo() {}
}
interface B : A, E {}
interface C : B {}
interface D : B {}
interface E : F {}
interface F : D, C {}
interface G : F {}
interface H : F {}
val a : A? = null
val b : B? = null
val c : C? = null
val d : D? = null
val e : E? = null
val f : F? = null
val g : G? = null
val h : H? = null
fun test() {
a?.foo()
b?.foo()
c?.foo()
d?.foo()
e?.foo()
f?.foo()
g?.foo()
h?.foo()
}