fun myRun(computable: () -> T): T = TODO() interface Inv interface MyMap { val k: K val v: V } val w: Inv = TODO() public fun Inv.associateBy1(keySelector: (X) -> K): MyMap = TODO() val x = myRun { w.associateBy1 { f -> f.length } } fun foo(m: MyMap) {} fun main() { foo(x) }