Как перебрать все виды продуктов в побочном продукте с использованием бесформенного?

Допустим, у меня естькопроизведение (запечатанная черта), такие как

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

Используя бесформенное, я могу применять полиморфные функции к определенным экземплярам, ​​но я хотел бы применить полиморфную функцию с нулевым параметром (без экземпляра) ко всем продуктам (то есть классам case и объектам case). Я понятия не имею, как будет выглядеть синтаксис, но что-то вроде:

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

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

будет соответствовать моим целям.

Ответы на вопрос(1)

Ваш ответ на вопрос