fun async(f: () -> Unit) { f() } infix fun Any.async(f: () -> Unit) = f() fun test(foo: Any) { async { } `async` { } async /**/ { } foo async { } async() { } async({ }) foo async ({ }) foo async fun () {} foo `async` fun () {} foo async (fun () {}) async (fun () {}) } object async { operator fun plus(f: () -> Unit) = f() operator fun minus(f: () -> Unit) = f() operator fun times(f: () -> Unit) = f() operator fun div(f: () -> Unit) = f() operator fun mod(f: () -> Unit) = f() } fun test() { async+ {} async- {} async* {} async/ {} async% {} async + {} async - {} async * {} async / {} async % {} }