fun f(a: Int) { run2(fun () { f(a - 1) }) } fun ff(a: Int) { run1 { ff(a - 1) } } inline fun run1(noinline f: () -> T): T { } inline fun run2(f: () -> T): T { }