title: Are these two curry function implementations equal?
body: <pre><code>  def curry[A,B,C](f: (A, B) =&gt; C): A =&gt; (B =&gt; C) =
      (a: A) =&gt; f(a, _)
  
  
  
  
    def curry[A,B,C](f: (A, B) =&gt; C): A =&gt; (B =&gt; C) =
      (a: A) =&gt; (b: B) =&gt; f(a, b) 
  </code></pre>
  
  <p>What I was thinking was that in the first implementation I would take the function f and pass in an A and an anything (but the compiler will type check that the second param is a B) to get a C out. </p>