title: Seemingly spurious "does not take arguments" error with case class constructor
body: <p>I have a case class that has a few parameters for its constructor, and I define an accompanying class object that defines an alternative constructor that takes a different set of arguments, like so:</p>
  
  <pre><code>case class MyClass (c: Char, mc: List[MyClass]) 
  
  object MyClass {
    def apply(c: Char, mc: MyClass): MyClass = {
      MyClass(c, List(mc))
    }
  }
  </code></pre>
  
  <p>I want to use the <em>original</em> case class constructor in a <code>foldRight</code>:</p>
  
  <pre><code>object SomeStuff {
    def problem (s: String) {
      assert(!s.isEmpty)
  
      val zero = MyClass('a', Nil)
  
      val mc2 = "Pillsy Pillsy Pillsy" foldRight(zero) {
        MyClass(_, List(_))
      }
    }
  }
  </code></pre>
  
  <p>When I do this, I get an error message from the compiler: "MyClass does not take parameters." If I comment out the section <code>val mc2 = ...</code> this problem goes away, but <code>MyClass</code> is clearly taking parameters in the definition of <code>zero</code>. I feel like I must be missing something really basic, but I have no idea what it is. I've tried a couple workarounds, like defining a helper method or a function value to use as the second argument of <code>foldRight</code>, but none of it helps, which is not too surprising since I'm basically fumbling around randomly.</p>