// one more implicit example ... // http://scala.sygneca.com/patterns/pimp-my-library class ListExtensions[A](xs : List[A]) { def headOr(f : => A) : A = xs match { case h :: _ => h case Nil => f } } implicit def listExtensions[A](xs : List[A]) = new ListExtensions(xs) // println(List(1,2,3).headOr(0)) ==> 1 // println(Nil.headOr(0)) ==> 0