A better way to constrain case class construction in Scala

A better way to constrain case class construction in Scala