package

public interface In</*0*/ in 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 interface Inv</*0*/ 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 interface Out</*0*/ out 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 interface Pair</*0*/ out X, /*1*/ out Y> {
    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 interface Test</*0*/ in I, /*1*/ out O, /*2*/ P> {
    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 abstract fun neOk1(): I
    public abstract fun neOk10(): Inv<in O>
    public abstract fun neOk11(): Inv<out I>
    public abstract fun neOk2(): In<O>
    public abstract fun neOk3(): In<In<I>>
    public abstract fun neOk30(): Pair<I, [ERROR : No type element]>
    public abstract fun neOk31(): Pair<I, [ERROR : Inv]>
    public abstract fun neOk32(): [ERROR : Inv]
    public abstract fun neOk33(): Inv<[ERROR : No type element]>
    public abstract fun neOk34(): Inv<[ERROR : C]>
    public abstract fun neOk35(): [ERROR : Inv]<P, P>
    public abstract fun neOk4(): Inv<I>
    public abstract fun neOk5(): Inv<O>
    public abstract fun neOk6(): Pair<In<O>, I>
    public abstract fun neOk7(): Inv<in O>
    public abstract fun neOk8(): Out<in I>
    public abstract fun ok1(): O
    public abstract fun ok10(): Inv<in I>
    public abstract fun ok11(): Inv<out O>
    public abstract fun ok12(): Inv<in P>
    public abstract fun ok13(): Inv<out P>
    public abstract fun ok2(): In<I>
    public abstract fun ok3(): In<In<O>>
    public abstract fun ok4(): Inv<P>
    public abstract fun ok5(): P
    public abstract fun ok6(): Out<O>
    public abstract fun ok7(): Out<P>
    public abstract fun ok8(): Out<In<P>>
    public abstract fun ok9(): Pair<In<I>, O>
    public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
