// FIR_IDENTICAL // TARGET_BACKEND: JVM // WITH_STDLIB // !OPT_IN: kotlin.experimental.ExperimentalTypeInference import kotlin.experimental.ExperimentalTypeInference fun produce(block: Derived.() -> Unit): E = null as E interface Derived : Base interface Base interface Receiver fun > Receiver.toChannel(destination: C): C = null as C fun foo(r: Receiver): R = produce { r.toChannel(this) } fun box() = "OK"