FILE: enum.kt
    public abstract interface Some : R|kotlin/Any| {
    }
    public final object O1 : R|Some| {
        private constructor(): R|O1| {
            super<R|kotlin/Any|>()
        }

    }
    public final object O2 : R|Some| {
        private constructor(): R|O2| {
            super<R|kotlin/Any|>()
        }

    }
    public final enum class SomeEnum : R|kotlin/Enum| {
        private constructor(x: R|Some|): R|SomeEnum| {
            super<R|kotlin/Enum|>()
        }

        public final val x: R|Some| = R|<local>/x|
            public get(): R|Some|

        public final enum entry FIRST : R|SomeEnum| {
            public constructor(): R|SomeEnum.FIRST| {
                super<R|SomeEnum|>(Q|O1|)
            }

            public final override fun check(y: R|Some|): R|kotlin/Boolean| {
                ^check Boolean(true)
            }

        }

        public final enum entry SECOND : R|SomeEnum| {
            public constructor(): R|SomeEnum.SECOND| {
                super<R|SomeEnum|>(Q|O2|)
            }

            public final override fun check(y: R|Some|): R|kotlin/Boolean| {
                ^check ==(R|<local>/y|, Q|O2|)
            }

        }

        public abstract fun check(y: R|Some|): R|kotlin/Boolean|

    }
