FILE: doubleGenericDiamond.kt public abstract interface Left : R|kotlin/Any| { } public abstract interface Right : R|kotlin/Any| { } public final class Bottom : R|Left|, R|Right| { public constructor(): R|Bottom| { super() } } public abstract interface A : R|kotlin/Any| { public open fun f(): R|T?| { ^f Null(null) } } public abstract interface B : R|A| { public open override fun f(): R|T?| { ^f Null(null) } } public abstract class C : R|A| { public constructor(): R|C| { super() } } public abstract class D : R|C| { public constructor(): R|D| { super|>() } } public final class Z : R|D|, R|B| { public constructor(): R|Z| { super|>() } }