// TARGET_BACKEND: JVM // MODULE: lib // FILE: A.kt typealias ProcessOverriddenWithBaseScope = String.(D, (D, String) -> Boolean) -> Boolean // MODULE: main(lib) // FILE: B.kt private data class NumberWithString(val n: N, val s: String) private fun use(ns: NumberWithString, process: ProcessOverriddenWithBaseScope): String { val (n, s) = ns val result = s.process(n) { _, s -> s == "OK" } return if (result) "OK" else "FAIL" } fun box(): String { return use(NumberWithString(42, "OK")) { n, process -> process(n, "OK") } }