Given:
case class FirstCC { def name: String = ... // something that will give \"FirstCC\" } case class SecondCC extends FirstCC val one = FirstCC() val two =
class Example { private def className[A](a: A)(implicit m: Manifest[A]) = m.toString override def toString = className(this) }