title: Curried case class constructor on companion
body: <p>When defining a case class, the default companion object has nice <code>curried</code> method to get a curried version of the case class constructor:</p>
  
  <pre><code>scala&gt; case class Foo(a: String, b: Int)
  defined class Foo
  
  scala&gt; Foo.curried
  res4: String =&gt; (Int =&gt; Foo) = &lt;function1&gt;
  </code></pre>
  
  <p>However, as soon as I define an explicit companion object, this method disappears:</p>
  
  <pre><code>scala&gt; :paste
  // Entering paste mode (ctrl-D to finish)
  
  case class Foo(a: String, b: Int)
  object Foo {}
  
  // Exiting paste mode, now interpreting.
  
  defined class Foo
  defined module Foo
  
  scala&gt; Foo.curried
  &lt;console&gt;:9: error: value curried is not a member of object Foo
                Foo.curried
  </code></pre>
  
  <p>I can get it back like so:</p>
  
  <pre><code>scala&gt; :paste
  // Entering paste mode (ctrl-D to finish)
  
  case class Foo(a: String, b: Int)
  object Foo { def curried = (Foo.apply _).curried }
  
  // Exiting paste mode, now interpreting.
  
  defined class Foo
  defined module Foo
  
  scala&gt; Foo.curried
  res5: String =&gt; (Int =&gt; Foo) = &lt;function1&gt;
  </code></pre>
  
  <p>However, I'd like to know why it disappears when defining an explicit companion (eg. in contrast to <code>apply</code>)?</p>
  
  <p>(Scala 2.9.2)</p>