// WITH_STDLIB
// FILE: 1.kt
class Foo {
    var bar = ""

    inline fun ifNotBusyPerform(action: (complete: () -> Unit) -> Unit) {
        action {
            bar += "K"
        }
    }

    fun ifNotBusySayHello() {
        ifNotBusyPerform {
            bar += "O"
            it()
        }
    }

    inline fun inlineFun(s: () -> Unit) {
        s()
    }

    fun start() {
        inlineFun {
            {
                ifNotBusyPerform {
                    ifNotBusySayHello()
                }
            }.let { it() }
        }
    }
}

// FILE: 2.kt

fun box(): String {
    val foo = Foo()
    foo.start()

    return foo.bar
}
