package

public val ins: In<Bar<*>>
public val invs: Inv<Bar<*>>
public val outs: Out<Bar<*>>
public fun </*0*/ T> inOf(/*0*/ vararg t: T /*kotlin.Array<out T>*/): In<T>
public fun </*0*/ T> invOf(/*0*/ vararg t: T /*kotlin.Array<out T>*/): Inv<T>
public fun </*0*/ T> outOf(/*0*/ vararg t: T /*kotlin.Array<out T>*/): Out<T>

public object A : Bar<AFoo> {
    private constructor A()
    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 enum class AFoo : kotlin.Enum<AFoo>, Foo {
    private constructor AFoo()
    public final override /*1*/ /*fake_override*/ val name: kotlin.String
    public final override /*1*/ /*fake_override*/ val ordinal: kotlin.Int
    protected final override /*1*/ /*fake_override*/ fun clone(): kotlin.Any
    public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: AFoo): kotlin.Int
    public final override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    protected/*protected and package*/ final override /*1*/ /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun finalize(): kotlin.Unit
    public final override /*1*/ /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun getDeclaringClass(): java.lang.Class<AFoo!>!
    public final override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int
    public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String

    // Static members
    public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): AFoo
    public final /*synthesized*/ fun values(): kotlin.Array<AFoo>
}

public object B : Bar<BFoo> {
    private constructor 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 final enum class BFoo : kotlin.Enum<BFoo>, Foo {
    private constructor BFoo()
    public final override /*1*/ /*fake_override*/ val name: kotlin.String
    public final override /*1*/ /*fake_override*/ val ordinal: kotlin.Int
    protected final override /*1*/ /*fake_override*/ fun clone(): kotlin.Any
    public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: BFoo): kotlin.Int
    public final override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    protected/*protected and package*/ final override /*1*/ /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun finalize(): kotlin.Unit
    public final override /*1*/ /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun getDeclaringClass(): java.lang.Class<BFoo!>!
    public final override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int
    public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String

    // Static members
    public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): BFoo
    public final /*synthesized*/ fun values(): kotlin.Array<BFoo>
}

public abstract class Bar</*0*/ out TFoo : Foo> {
    public constructor Bar</*0*/ out TFoo : Foo>()
    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 Foo {
    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 In</*0*/ in T> {
    public constructor 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 final class Inv</*0*/ T> {
    public constructor 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 final class Out</*0*/ out T> {
    public constructor 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
}
