scala/ScalaBook/chapter-03/traits.scala

import scala.collection.mutable._

trait LowerCaseSet extends HashSet[String] {
 
  override def +=(e: String) = {
    super.+=(e.toLowerCase)
  }

  override def contains(e: String) = {
    super.contains(e.toLowerCase)
  }
 
  override def -=(e: String) = {
    super.-=(e.toLowerCase)
  }
}

val lcSet = new HashSet[String] with LowerCaseSet

lcSet += "Scala"
lcSet += "Java"
println(lcSet)