// FILE: 1.kt package test interface Foo { fun call(): String } inline fun f(crossinline g: () -> String) = object: Foo { fun foo() = g() fun bar() = "K" override fun call(): String = foo() + bar() } // FILE: 2.kt import test.* val x = f { "O" } fun box() : String { return x.call() }