See e.g. https://adaic.org/resources/add_content/docs/craft/html/ch05...
See e.g. https://adaic.org/resources/add_content/docs/craft/html/ch05...
I'm not aware of a good online presentation focused exclusively on Ada's enumeration types and their various uses. It's not even singled out in the Rationale documents for the design of the language and the (3?) design revisions since the 1980 launch; maybe the AARM (Annotated Ada Reference Manual) has more focused discussions? I'm not sure, I haven't looked at these since ~20y ago.
It allows to set discriminants explicitly and it allows unit-only enums (enums with only discriminants and no structures associated with them). You can control the underlying type of the discriminant too.
With a little bit of derive macro sugar you can even iterate through all the values of enum.