var result = "fail" fun foo(vararg xs: Int, s1: String = "", s2: String = "OK") { if (xs[0] == 42 && s1 == "good") { result = s2 } } fun bar(vararg xs: Int, s: String = "") {} fun use(fn: (IntArray, String) -> Unit) { fn(intArrayOf(42), "good") } fun test() { use(::foo) use(::bar) } fun box(): String { test() return "OK" }