This works:
scala> Typeclass[ADT].adtName(One)
res1: String = hi
However, this doesn't:
scala> Typeclass[One.type]
<console>:12: error: could not find implicit value for parameter evidence: Typeclass[One.type]
Typeclass[One.type]
even though this does:
scala> implicit val typeclassForADT = Typeclass.typeclassFor[ADT]
scala> Typeclass[One.type]
res3: Typeclass[One.type] = Typeclass$$anon$1@3430e6a5