Scala - define a trait with generic methods
<p>How do I define a trait with generic arguments in its methods and then override with the specific typed arguments?</p>

<p>An example:</p>

<pre><code>import shapeless._

case class UserA(name:String)
case class UserB(name:String)

trait User {
  def save(item:Option[T]): Option[T]
}
class UserAdmin extends User {
  def save(item:Option[UserA]): Option[UserA]
}
class UserSomethingElse extends User {
  def save(item:Option[UserB]): Option[UserB]
}
</code></pre>

<p>With this, I get the error <code>not found: type T</code> even though it is defined in shapeless</p>