title: Case classes, pattern matching and curried constructors in Scala
body: <p>They don't seem to mix that well:</p>
  
  <pre><code>abstract class A
  case class B (var a: Int)(var b: String) extends A
  case class C extends A
  </code></pre>
  
  <p>The following will not work:</p>
  
  <pre><code>B(1)("1") match {
    case B(a)(b) =&gt; print("B")
    case C() =&gt; print("C")
  }
  </code></pre>
  
  <p>The problem is that pattern matching and curried arguments do not seem to work. Is there a work-around for this?</p>