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

        public final operator fun invoke(): R|kotlin/Unit| {
        }

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

        public final val bar: R|() -> kotlin/Unit| = fun <anonymous>(): R|kotlin/Unit| <inline=Unknown>  {
            ^ Unit
        }

            public get(): R|() -> kotlin/Unit|

        public final val foo: R|A| = R|/A.A|()
            public get(): R|A|

    }
    public final fun main(b: R|B?|): R|kotlin/Unit| {
        R|<local>/b|?.{ $subj$.R|/B.bar|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|() }
        R|<local>/b|?.{ $subj$.R|/B.foo|.R|/A.invoke|() }
    }
