1 2 3 4 5 6 7 8 9 10 11 12 13
class Value[+T](x: T) { def value = x } trait PlusOne extends Value[Int] { override def value = super.value + 1 } object Test extends App { object boom extends Value[java.lang.String]("foo") with PlusOne println(boom.value) // class cast exception! }