Como iterar todos os tipos de produtos em um coproduto usando informe?

Digamos que eu tenho umcoproduto (uma característica selada), como

sealed trait Traity
case object Foo extends Traity
case class Bar() extends Traity
case class Baz() extends Traity

Usando a forma informe, posso aplicar funções polimórficas a instâncias específicas, mas o que eu gostaria de fazer é aplicar uma função polimórfica de parâmetro zero (sem instância) a todos os produtos (ou seja, classes de caso e objetos de caso). Não tenho idéia de como seria a sintaxe, mas algo como:

object mypoly extends Poly1 {
  implicit def traity[T <: Traity] = when[T]( getClass[T].toString )
}

iterate[Traity](mypoly) // gives List("Foo", "Bar", "Baz")

atenderia aos meus propósitos.

questionAnswers(1)

yourAnswerToTheQuestion