package

public fun priority(/*0*/ op: Operation): kotlin.Int

public sealed class Operation {
    private constructor Operation(/*0*/ left: kotlin.Int, /*1*/ right: kotlin.Int)
    public final val left: kotlin.Int
    public final val right: kotlin.Int
    public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public abstract fun exec(): kotlin.Int
    public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
    public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String

    public final class Minus : Operation {
        public constructor Minus(/*0*/ left: kotlin.Int, /*1*/ right: kotlin.Int)
        public final override /*1*/ /*fake_override*/ val left: kotlin.Int
        public final override /*1*/ /*fake_override*/ val right: kotlin.Int
        public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
        public open override /*1*/ fun exec(): kotlin.Int
        public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
        public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
    }

    public final class Plus : Operation {
        public constructor Plus(/*0*/ left: kotlin.Int, /*1*/ right: kotlin.Int)
        public final override /*1*/ /*fake_override*/ val left: kotlin.Int
        public final override /*1*/ /*fake_override*/ val right: kotlin.Int
        public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
        public open override /*1*/ fun exec(): kotlin.Int
        public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
        public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
    }

    public final class Slash : Operation {
        public constructor Slash(/*0*/ left: kotlin.Int, /*1*/ right: kotlin.Int)
        public final override /*1*/ /*fake_override*/ val left: kotlin.Int
        public final override /*1*/ /*fake_override*/ val right: kotlin.Int
        public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
        public open override /*1*/ fun exec(): kotlin.Int
        public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
        public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
    }

    public final class Times : Operation {
        public constructor Times(/*0*/ left: kotlin.Int, /*1*/ right: kotlin.Int)
        public final override /*1*/ /*fake_override*/ val left: kotlin.Int
        public final override /*1*/ /*fake_override*/ val right: kotlin.Int
        public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
        public open override /*1*/ fun exec(): kotlin.Int
        public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
        public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
    }
}
