LabelledGeneric para obtener el nombre de la clase

Soy bastante nuevo en Shapeless, como se deducirá de mi pregunta. Dada una instancia deLabelledGeneric, ¿cómo obtengo el nombre de la clase que representa? Puedo obtener la información del nombre del campo deKeysasí que supongo que necesito otro tipo deWitness eso encapsula el tipo en sí, pero no puedo entender cuál.

Por ejemplo, si tengo una clase de caso llamada Foo en el paquete com.bar, quiero obtener la cadena "com.bar.Foo" (o por separado está bien).

implicit def example[T, Repr <: HList](implicit label: LabelledGeneric.Aux[T, Repr],
                                         kk: Keys[Repr]): Bibble[T] = new Bibble[T] {
  override def typeName(value: T): String = ???
}

Respuestas a la pregunta(1)

Su respuesta a la pregunta