// LANGUAGE: +ContextReceivers
// TARGET_BACKEND: JVM_IR
// WITH_STDLIB
// WITH_COROUTINES
// JVM_ABI_K1_K2_DIFF: different order of function annotations

interface Context

class Receiver

interface Action {
    context (Context)
    fun run()
}

fun execute(block: suspend context(Context) Receiver.(Action) -> Unit) = Unit

fun box(): String {
    execute { it.run() }
    return "OK"
}