enum
sealed trait Foo object Foo { case object Bar extends Foo case object Baz extends Foo } Values.derived[Foo].values == Set(Foo.Bar, Foo.Baz)
All the possible values of A
A