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

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

        }

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

        public final typealias AInner = R|A.Inner|

        public final inner class Inner : R|kotlin/Any| {
            public constructor(): R|B.Inner| {
                super<R|kotlin/Any|>()
            }

        }

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

        public final typealias BInner = R|B.Inner|

    }
    public final typealias AInner0 = R|A.Inner|
    public final typealias BInner0 = R|B.Inner|
    private final typealias MyString = R|kotlin/String|
    public final fun foo(): R|MyString| {
        ^foo String()
    }
