title: case class overloading in Scala
body: <p>I have a legacy message in my system, and I would like to be able to map it new version the message in my system.</p>
  
  <p>Why can't I overload my case class?</p>
  
  <pre><code>case class Message(a:Int, b:Int)
  case class NewMessage(a:Int, b:Int, c:Int) {
    def this(msg : Message) = this(a = msg.a, b = msg.b, c = 0)
  }
  val msg = Message(1,2)
  val converted = NewMessage(msg)
  </code></pre>
  
  <p>This code doesn't seem to compile. :(</p>