package public fun foo1(/*0*/ e1: E1, /*1*/ e2: E2): kotlin.Unit public fun foo2(/*0*/ e1: E1, /*1*/ e2: E2): kotlin.Unit public fun foo3(/*0*/ e1: kotlin.Enum, /*1*/ e2: kotlin.Enum, /*2*/ e: kotlin.Enum<*>): kotlin.Unit public final enum class E1 : kotlin.Enum, I { enum entry A enum entry B private constructor E1() 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: E1): 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 abstract override /*1*/ /*fake_override*/ fun foo(): kotlin.Unit public final override /*1*/ /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun getDeclaringClass(): java.lang.Class! 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): E1 public final /*synthesized*/ fun values(): kotlin.Array } public final enum class E2 : kotlin.Enum, I { enum entry A enum entry B private constructor E2() 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: E2): 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 abstract override /*1*/ /*fake_override*/ fun foo(): kotlin.Unit public final override /*1*/ /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun getDeclaringClass(): java.lang.Class! 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): E2 public final /*synthesized*/ fun values(): kotlin.Array } public interface I { public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public abstract fun foo(): kotlin.Unit public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String }