FILE: eagerAndPostponedCallableReferences.kt
    public abstract interface A : R|kotlin/Any| {
    }
    public abstract interface B : R|kotlin/Any| {
    }
    public final fun multiple(a: R|A|): R|kotlin/Unit| {
    }
    public final fun multiple(b: R|B|): R|kotlin/Unit| {
    }
    public final fun singleA(a: R|A|): R|kotlin/Unit| {
    }
    public final fun singleB(a: R|B|): R|kotlin/Unit| {
    }
    public final fun <T> foo(f: R|(T) -> kotlin/Unit|, g: R|(T) -> kotlin/Unit|): R|T| {
        ^foo R|kotlin/TODO|()
    }
    public final fun test(): R|kotlin/Unit| {
        lval a1: R|A| = R|/foo|<R|A|>(::R|/singleA|, ::R|/multiple|)
        lval a2: R|B| = R|/foo|<R|B|>(::R|/singleB|, ::R|/multiple|)
        lval a3: R|A| = R|/foo|<R|A|>(::R|/multiple|, ::R|/singleA|)
        lval a4: R|B| = R|/foo|<R|B|>(::R|/multiple|, ::R|/singleB|)
        lval a5: R|A| = R|/foo|<R|A|>(::R|/singleA|, ::R|/singleA|)
        lval a6: R|it(A & B)| = R|/foo|<R|it(A & B)|>(::R|/singleA|, ::R|/singleB|)
        <CS errors: /foo>#<R|ERROR CLASS: Cannot infer argument for type parameter T|>(::<Ambiguity: multiple, [/multiple, /multiple]>#, ::<Ambiguity: multiple, [/multiple, /multiple]>#)
    }
