package

public val test1: Hr<kotlin.Int, kotlin.String, Foo<kotlin.Int>, Bar<kotlin.String>>
public val test2: [ERROR : Type for Test(1, 2)]
public val test3: [ERROR : Type for Bas(1, 1)]

public final class Bar</*0*/ B : kotlin.CharSequence> {
    public constructor Bar</*0*/ B : kotlin.CharSequence>()
    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 Foo</*0*/ A : kotlin.Number> {
    public constructor Foo</*0*/ A : kotlin.Number>()
    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 Hr</*0*/ A, /*1*/ B, /*2*/ C, /*3*/ D> {
    public constructor Hr</*0*/ A, /*1*/ B, /*2*/ C, /*3*/ D>(/*0*/ a: A, /*1*/ b: B)
    public final val a: A
    public final val b: B
    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 typealias Bas</*0*/ T>  = Hr<T, T, Foo<T>, Bar<T>>
public typealias Test</*0*/ A, /*1*/ B>  = Hr<A, B, Foo<A>, Bar<B>>
