package

public fun </*0*/ T : kotlin.String> foo(): T
public fun main(): kotlin.Unit

public open class A</*0*/ T1, /*1*/ T2> {
    public constructor A</*0*/ T1, /*1*/ T2>()
    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 {
    public constructor B()
    public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public final fun </*0*/ T1 : kotlin.Number, /*1*/ T2 : A<kotlin.Float, T1>> foo(/*0*/ x1: T2, /*1*/ x2: T1): kotlin.Unit
    public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
    public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}

public final class C</*0*/ T : D, /*1*/ T2> {
    public constructor C</*0*/ T : D, /*1*/ T2>(/*0*/ x: T, /*1*/ y: T2)
    public final val x: T
    public final val y: T2
    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 final fun test(): kotlin.Unit
    public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}

public open class D : A<kotlin.Float, kotlin.Number> {
    public constructor D()
    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
}
