Missing parameter type in overloaded generic method taking a function argument <p>I am having a problem in my DSL with overloaded generic methods resulting in the compiler wanting me to add explicit parameter types:</p> <pre><code>def alpha[T](fun: Int =&gt; T): String = fun(33).toString def beta [T](fun: Int =&gt; T): String = fun(66).toString def beta [T](thunk: =&gt; T): String = thunk.toString alpha { _ + 11 } // ok beta { _ + 22 } // "error: missing parameter type for expanded function" beta { _: Int =&gt; _ + 22 } // ok... ouch. </code></pre> <p>Any chance I can get rid of the the clutter in the last line?</p> <p><strong>EDIT:</strong></p> <p>To demonstrate that the overloading is not an ambiguity problem to scalac per se, here is a version without type parameter which works perfectly fine:</p> <pre><code>def beta(fun: Int =&gt; String): String = fun(66).reverse def beta(thunk: =&gt; String): String = thunk.reverse beta(_.toString) // ok beta("gaga") // ok </code></pre>