FILE: exposedFunctionReturnType.kt
    public final class A : R|kotlin/Any| {
        public constructor(): R|A| {
            super<R|kotlin/Any|>()
        }

        private final class InnerA : R|kotlin/Any| {
            public constructor(): R|A.InnerA| {
                super<R|kotlin/Any|>()
            }

        }

    }
    public abstract class B : R|kotlin/Any| {
        public constructor(): R|B| {
            super<R|kotlin/Any|>()
        }

        public final fun foo(str: R|kotlin/String|): <ERROR TYPE REF: HIDDEN: A.InnerA is invisible>

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

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

            public final override fun foo(): R|Some| {
                ^foo R|/Some.FIRST|
            }

        }

        public abstract fun foo(): R|Some|

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

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

    }
