package public fun main(): kotlin.Unit public fun A.foo(/*0*/ block: (T?) -> kotlin.Unit): kotlin.Unit public fun B.foo(/*0*/ block: (T) -> kotlin.Unit): kotlin.Unit public open class A { public constructor A(/*0*/ value: T) public final val value: T public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String } public final class B : A { public constructor B(/*0*/ value: T) public final override /*1*/ /*fake_override*/ val value: T public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String }