FILE: kotlinSam.kt
    public abstract interface MyRunnable : R|kotlin/Any| {
        public abstract fun foo(x: R|kotlin/Int|): R|kotlin/Boolean|

    }
    public abstract interface WithProperty : R|kotlin/Any| {
        public abstract val x: R|kotlin/Int|
            public get(): R|kotlin/Int|

    }
    public abstract interface TwoAbstract : R|MyRunnable| {
        public abstract fun bar(): R|kotlin/Unit|

    }
    public abstract interface Super : R|kotlin/Any| {
        public abstract fun foo(x: R|kotlin/Int|): R|kotlin/Any|

    }
    public abstract interface Derived : R|Super| {
        public abstract override fun foo(x: R|kotlin/Int|): R|kotlin/Boolean|

    }
    public final fun foo1(m: R|MyRunnable|): R|kotlin/Unit| {
    }
    public final fun foo2(m: R|WithProperty|): R|kotlin/Unit| {
    }
    public final fun foo3(m: R|TwoAbstract|): R|kotlin/Unit| {
    }
    public final fun foo3(m: R|Derived|): R|kotlin/Unit| {
    }
    public final fun main(): R|kotlin/Unit| {
        lval f: R|kotlin/Function1<kotlin/Int, kotlin/Boolean>| = fun <anonymous>(t: R|kotlin/Int|): kotlin/Boolean {
            >(R|<local>/t|, Int(1))
        }

        R|/foo1|(<L> = foo1@fun <anonymous>(x: R|kotlin/Int|): R|kotlin/Boolean| <kind=EXACTLY_ONCE>  {
            >(R|<local>/x|, Int(1))
        }
        )
        R|/foo1|(R|<local>/f|)
        R|/foo2|(<L> = foo2@fun <anonymous>(x: R|kotlin/Nothing|): kotlin/Boolean <kind=EXACTLY_ONCE>  {
            >(R|<local>/x|, Int(1))
        }
        )
        <Inapplicable(INAPPLICABLE): [/foo2]>#(R|<local>/f|)
        <Ambiguity: foo3, [/foo3, /foo3]>#(<L> = foo3@fun <implicit>.<anonymous>(x: <implicit>): <implicit> <kind=EXACTLY_ONCE>  {
            >(x#, Int(1))
        }
        )
        R|/foo3|(R|<local>/f|)
        <Unresolved name: foo4>#(<L> = foo4@fun <implicit>.<anonymous>(x: <implicit>): <implicit> <kind=EXACTLY_ONCE>  {
            >(x#, Int(1))
        }
        )
        <Unresolved name: foo4>#(R|<local>/f|)
    }
