scala> case class K(s: String) defined class K scala> class C { implicit val k: K = K("OK?"); override def toString = s"C($k)" } defined class C scala> val c = new C c: C = C(K(OK?)) scala> import c.k import c.k scala> implicitly[K] res0: K = K(OK?) scala> val k = 42 k: Int = 42 scala> k // was K(OK?) res1: Int = 42 scala> :quit