// FILE: lib.kt fun interface Foo { fun invoke(): String } // FILE: f1.kt fun foo1(f: Foo) = f.invoke() inline fun bar1(): String { val f: () -> String = { "O" } return foo1(Foo(f)) } // FILE: f2.kt fun foo2(f: Foo) = f.invoke() inline fun bar2(): String { val f: () -> String = { "K" } return foo2(Foo(f)) } // FILE: main.kt fun box(): String = bar1() + bar2()