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

        public final fun foo(i: R|A|): R|kotlin/Unit| {
        }

        public final fun baz(i: R|A|): R|kotlin/Unit| {
        }

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

        public final fun foo(s: R|B|): R|kotlin/Unit| {
        }

        public final fun foo(c: R|kotlin/Char|): R|kotlin/Unit| {
        }

        public final fun baz(s: R|B|): R|kotlin/Unit| {
        }

    }
    public final fun <T> bar(f: R|(T) -> kotlin/Unit|): R|T| {
        ^bar R|kotlin/TODO|()
    }
    public final fun test(): R|kotlin/Unit| {
        R|/myWith|<R|A|, R|kotlin/Nothing|>(R|/A.A|(), <L> = myWith@fun R|A|.<anonymous>(): R|kotlin/Nothing| <kind=UNKNOWN>  {
            lval t1: R|A| = R|/bar|<R|A|>(::R|/A.foo|)
            lval t2: R|A| = R|/bar|<R|A|>(::R|/A.baz|)
            ^ R|/myWith|<R|B|, R|kotlin/Nothing|>(R|/B.B|(), <L> = myWith@fun R|B|.<anonymous>(): R|kotlin/Nothing| <kind=UNKNOWN>  {
                lval a: R|A| = R|/bar|<R|A|>(::R|/A.foo|)
                lval b: R|B| = R|/bar|<R|B|>(::R|/B.foo|)
                lval t3: R|B| = R|/bar|<R|B|>(::R|/B.baz|)
                ^ R|/bar|<R|kotlin/Nothing|>(::<Unresolved reference: foo>#)
            }
            )
        }
        )
    }
    public final inline fun <T, R> myWith(receiver: R|T|, block: R|T.() -> R|): R|R| {
        ^myWith R|kotlin/TODO|()
    }
