title: Thunk vs Function overload
body: <p>I want to define an overloaded method, one that accepts a function0, and one that accepts a function1, viz:</p>
  
  <pre><code>def produces(f: Context =&gt; Any): Processor = ...
  
  def produces(thunk: =&gt; Any): Processor = ...
  </code></pre>
  
  <p>This compiles fine because the first is compiled to use a Function1 and the second to use a Function0, however the issue arises when I want to invoke, thus:</p>
  
  <pre><code>produces {
   ctx =&gt; "hello"
  }
  </code></pre>
  
  <p>Gives me an </p>
  
  <blockquote>
    <p>missing parameter type</p>
  </blockquote>
  
  <p>There's only one parameter that accepts an input, so why can't it infer.</p>
  
  <p>Any tips on what I can do to get around this (other than rename one of the methods :))</p>