package

public fun main(): kotlin.Unit

public open class Boo</*0*/ P2 : kotlin.Any!, /*1*/ P3 : kotlin.Any!, /*2*/ P4 : kotlin.Any!> {
    public constructor Boo</*0*/ P2 : kotlin.Any!, /*1*/ P3 : kotlin.Any!, /*2*/ P4 : kotlin.Any!>()
    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

    // Static members
    public/*package*/ open fun test1(): (Foo<(raw) Boo<Boo<*, Boo<*, *, Boo<*, *, *>>, Boo<*, *, *>>, Boo<*, *, Boo<*, *, *>>, Boo<*, *, *>>, (raw) Boo<*, Boo<*, *, Boo<*, *, *>>, Boo<*, *, *>>, (raw) Boo<*, *, Boo<*, *, *>>, (raw) Boo<*, *, *>>..Foo<out Boo<out Boo<*, out Boo<*, *, out Boo<*, *, *>>, out Boo<*, *, *>>, out Boo<*, *, out Boo<*, *, *>>, out Boo<*, *, *>>, out Boo<*, out Boo<*, *, out Boo<*, *, *>>, out Boo<*, *, *>>, out Boo<*, *, out Boo<*, *, *>>, out Boo<*, *, *>>?)
}

public final class Foo</*0*/ P1 : Boo<P2, P3, P4>, /*1*/ P2 : Boo<P1, P3, P4>, /*2*/ P3 : Boo<P1, P2, P4>, /*3*/ P4 : Boo<P1, P2, P3>> {
    public constructor Foo</*0*/ P1 : Boo<P2, P3, P4>, /*1*/ P2 : Boo<P1, P3, P4>, /*2*/ P3 : Boo<P1, P2, P4>, /*3*/ P4 : Boo<P1, P2, P3>>()
    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
}
