An Enum symbol with a symbol name that can be explicitly set and which may be different than its corresponding Scala case object's name.
Both a IndexedEnumSymbol and a AliasedEnumSymbol.
Provides a convenient way to define "ADT" based Scala enumerations (enumerations defined with case objects extending a sealed trait) while still retaining the ability to:
An Enum symbol.
An extension of Enum supporting IndexedEnumSymbol symbols.
An IndexedEnum symbol indexed by an Int 'id'.