package

internal final enum class EnumImplementingTraitWithFun : kotlin.Enum<EnumImplementingTraitWithFun>, T1 {
    public enum entry E1 : EnumImplementingTraitWithFun {
        private constructor E1()
        public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: EnumImplementingTraitWithFun): kotlin.Int
        public final override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
        internal open override /*1*/ fun foo(): kotlin.Unit
        public final override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
        public final override /*1*/ /*fake_override*/ fun name(): kotlin.String
        public final override /*1*/ /*fake_override*/ fun ordinal(): kotlin.Int
        public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
    }

    public enum entry E2 : EnumImplementingTraitWithFun {
        private constructor E2()
        public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: EnumImplementingTraitWithFun): kotlin.Int
        public final override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
        internal abstract override /*1*/ /*fake_override*/ fun foo(): kotlin.Unit
        public final override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
        public final override /*1*/ /*fake_override*/ fun name(): kotlin.String
        public final override /*1*/ /*fake_override*/ fun ordinal(): kotlin.Int
        public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
    }

    private constructor EnumImplementingTraitWithFun()
    public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: EnumImplementingTraitWithFun): kotlin.Int
    public final override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    internal abstract override /*1*/ /*fake_override*/ fun foo(): kotlin.Unit
    public final override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int
    public final override /*1*/ /*fake_override*/ fun name(): kotlin.String
    public final override /*1*/ /*fake_override*/ fun ordinal(): kotlin.Int
    public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String

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

internal final enum class EnumImplementingTraitWithVal : kotlin.Enum<EnumImplementingTraitWithVal>, T2 {
    public enum entry E1 : EnumImplementingTraitWithVal {
        private constructor E1()
        internal open override /*1*/ val bar: kotlin.Int = 1
        public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: EnumImplementingTraitWithVal): kotlin.Int
        public final override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
        public final override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
        public final override /*1*/ /*fake_override*/ fun name(): kotlin.String
        public final override /*1*/ /*fake_override*/ fun ordinal(): kotlin.Int
        public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
    }

    public enum entry E2 : EnumImplementingTraitWithVal {
        private constructor E2()
        internal abstract override /*1*/ /*fake_override*/ val bar: kotlin.Int
        public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: EnumImplementingTraitWithVal): kotlin.Int
        public final override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
        public final override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
        public final override /*1*/ /*fake_override*/ fun name(): kotlin.String
        public final override /*1*/ /*fake_override*/ fun ordinal(): kotlin.Int
        public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
    }

    private constructor EnumImplementingTraitWithVal()
    internal abstract override /*1*/ /*fake_override*/ val bar: kotlin.Int
    public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: EnumImplementingTraitWithVal): kotlin.Int
    public final override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public final override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int
    public final override /*1*/ /*fake_override*/ fun name(): kotlin.String
    public final override /*1*/ /*fake_override*/ fun ordinal(): kotlin.Int
    public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String

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

internal interface T1 {
    public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    internal 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
}

internal interface T2 {
    internal abstract val bar: kotlin.Int
    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
}
