FILE: main.kt
    public abstract interface KB<F> : R|kotlin/Any| {
        public abstract override fun getFoo(): R|F|

        public abstract override fun getBar(): R|F|

    }
    public abstract interface D1 : R|JA<kotlin/String>|, R|KB<kotlin/String>| {
    }
    public abstract interface E1 : R|D1| {
        public abstract override fun getFoo(): R|kotlin/String|

        public abstract override fun getBar(): R|kotlin/String|

    }
    public abstract interface D2 : R|KB<kotlin/String>|, R|JA<kotlin/String>| {
    }
    public abstract interface E2 : R|D2| {
        public abstract override fun getFoo(): R|kotlin/String|

        public abstract override fun getBar(): R|kotlin/String|

    }
    public final fun main(d1: R|D1|, e1: R|E1|, d2: R|D2|, e2: R|E2|): R|kotlin/Unit| {
        R|<local>/d1|.R|/KB.foo|
        R|<local>/d1|.<Unresolved name: bar>#
        R|<local>/e1|.R|/E1.foo|
        R|<local>/e1|.<Unresolved name: bar>#
        R|<local>/d2|.R|/KB.foo|
        R|<local>/d2|.<Unresolved name: bar>#
        R|<local>/e2|.R|/E2.foo|
        R|<local>/e2|.<Unresolved name: bar>#
    }
