Type signature for Kotlin function with default parameters
<p>Let's say I have:</p>

<pre><code>fun addInvoker(adder: () -&gt; Int = ::add): Int{
    return adder()
}

fun add(num1:Int = 1, num2:Int = 1): Int{
    return num1 + num2
}
</code></pre>

<p>I get an error since ::add has two parameters, but the signature of addInvoker requires it to have zero parameters. However, if I change it to:</p>

<pre><code>fun addInvoker(adder: (Int, Int) -&gt; Int = ::add): Int{
    return adder()
}

fun add(num1:Int = 1, num2:Int = 1): Int{
    return num1 + num2
}
</code></pre>

<p>Then I can't invoke adder(), i.e. invoking add with its default arguments.</p>

<p>So, is there some way I can make ::add the default argument to invokeAdder but still invoke add with <code>adder()</code>, thus invoking it with the default args?</p>