fun interface A { fun invoke(s: String) private fun privateFun() {} private var privateProperty: String get() = "" set(value) {} companion object { fun s(a: A) { a.invoke("OK") } } } fun test(f: (String) -> Unit) { A.s(f) } fun box(): String { var result = "Fail" test { result = it } return result }