Wouldn't it be more efficient to use [AnyVal](http://www.scala-lang.org/api/current/index.html#scala.AnyVal) here? Putting the code as `val` and override toString to provide String version. More info [here](http://www.blog.project13.pl/index.php/coding/1769/scala-2-10-and-why-you-will-love-implicit-value-classes/).