FILE: main.kt
    public abstract interface KI1 : R|kotlin/Any| {
    }
    public abstract interface KI2 : R|kotlin/Any| {
    }
    public abstract interface KI12 : R|KI1|, R|KI2| {
    }
    public open class KBase : R|kotlin/Any| {
        public constructor(): R|KBase| {
            super<R|kotlin/Any|>()
        }

        public open fun <P : R|KI1|, R|KI2|> foo(): R|kotlin/Unit| {
        }

    }
    public final class KDerived : R|KBase| {
        public constructor(): R|KDerived| {
            super<R|KBase|>()
        }

        public final override fun <P : R|KI2|, R|KI1|> foo(): R|kotlin/Unit| {
        }

    }
    public final fun callJava(derived: R|Test.Derived|, derivedRaw: R|Test.DerivedRaw|, v: R|Test.I123|): R|kotlin/Unit| {
        R|<local>/derived|.R|/Test.Derived.foo|<R|ft<Test.I123, Test.I123?>|>(R|<local>/v|)
        R|<local>/derivedRaw|.R|/Test.DerivedRaw.foo|(R|<local>/v|)
    }
    public final fun callKotlin(derived: R|KDerived|): R|kotlin/Unit| {
        R|<local>/derived|.R|/KDerived.foo|<R|KI12|>()
    }
