$ scalac test.scala test.scala:16: error: type mismatch; found : T required: java.lang.Object Note that implicit conversions are not applicable because they are ambiguous: both method any2stringadd in object Predef of type (Any)scala.runtime.StringAdd and method any2ArrowAssoc in object Predef of type [A](A)ArrowAssoc[A] are possible conversion functions from T to java.lang.Object override def initialValue = init; ^ one error found ricky@ricky-PB ~/deleteme $ scalac -Ygenerics test.scala test.scala:16: error: type mismatch; found : T required: Nothing override def initialValue = init; ^ test.scala:20: error: type mismatch; found : T required: Nothing def := (t : T) = value.set(t); ^ two errors found ricky@ricky-PB ~/deleteme $ scalac -version Scala compiler version 2.6.0-final -- (c) 2002-2007 LAMP/EPFL