title: Extending scala case class without constantly duplicating constructors vals?
body: <p>Is there a way to extend a case class without constantly picking up new vals along the way?</p>
  
  <p>For example this doesn't work:</p>
  
  <pre><code>case class Edge(a: Strl, b: Strl)
  case class EdgeQA(a: Strl, b: Strl, right: Int, asked: Int) extends Edge(a, b)
  </code></pre>
  
  <p><code>"a" conflicts with "a"</code>, so I'm forced to rename to <code>a1</code>. But I don't want all kinds of extra public copies of "a" so I made it private. </p>
  
  <pre><code>case class Edge(a: Strl, b: Strl)
  case class EdgeQA(private val a1: Strl, private val b1: Strl, right: Int, asked: Int) extends Edge(a, b)
  </code></pre>
  
  <p>This just doesn't seem clean to me... Am I missing something?</p>