class Function1Impl : (String) -> Unit { override fun invoke(myParamName: String) {} } fun test1(f: Function1Impl) { f("") f(p0 = "") f(myParamName = "") f.invoke("") f.invoke(p0 = "") f.invoke(myParamName = "") } fun test2(f: (String) -> Unit) { f("") f(p0 = "") f(myParamName = "") f.invoke("") f.invoke(p0 = "") f.invoke(myParamName = "") } fun test3(f: String.(String) -> Unit) { "".f("") "".f(p0 = "") "".f(zzz = "") }