class Value[+T](x: T) {
    def value = x
}

trait PlusOne extends Value[Int] {
    override def value = super.value + 1
}

object Test extends Application {
 object boom extends Value[java.lang.String]("foo") with PlusOne
       
 println(boom.value) // class cast exception!
}
