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<SomeEnum>| {
        private constructor(x: R|Some|): R|SomeEnum| {
            super<R|kotlin/Enum<SomeEnum>|>()
        }

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

        public final static enum entry FIRST: R|SomeEnum| = object : R|SomeEnum| {
            private constructor(): R|<anonymous>| {
                super<R|SomeEnum|>(Q|O1|)
            }

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

        }

        public final static enum entry SECOND: R|SomeEnum| = object : R|SomeEnum| {
            private constructor(): R|<anonymous>| {
                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|

        public final static fun values(): R|kotlin/Array<SomeEnum>| {
        }

        public final static fun valueOf(value: R|kotlin/String|): R|SomeEnum| {
        }

    }
    public final enum class E : R|kotlin/Enum<E>| {
        public final static enum entry A: R|E|
        private constructor(): R|E| {
            super<R|kotlin/Enum<E>|>()
        }

        public final static fun values(): R|kotlin/Array<E>| {
        }

        public final static fun valueOf(value: R|kotlin/String|): R|E| {
        }

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

        public final static enum entry E1: R|EnumClass| = object : R|EnumClass| {
            private constructor(): R|<anonymous>| {
                super<R|EnumClass|>()
            }

            public final override fun foo(): R|kotlin/Int| {
                ^foo Int(1)
            }

            public final override val bar: R|kotlin/String| = String(a)
                public get(): R|kotlin/String|

        }

        public final static enum entry E2: R|EnumClass| = object : R|EnumClass| {
            private constructor(): R|<anonymous>| {
                super<R|EnumClass|>()
            }

        }

        public final static enum entry E3: R|EnumClass| = object : R|EnumClass| {
            private constructor(): R|<anonymous>| {
                super<R|EnumClass|>()
            }

        }

        public abstract fun foo(): R|kotlin/Int|

        public abstract val bar: R|kotlin/String|
            public get(): R|kotlin/String|

        public final static fun values(): R|kotlin/Array<EnumClass>| {
        }

        public final static fun valueOf(value: R|kotlin/String|): R|EnumClass| {
        }

    }
