Enums exist in various modern languages and you may have already met them. But there are some chances that you didn't meet enums as they are in haXe.
in most languages and you'll use them when you want to choose a value in a determined list of possibilities. For example, you may have something like this:
enum BasicColor { red; blue; green; yellow; black; white; }
When expecting a BasicColor
you will have to pick a color in the list of choices.
This is what you certainly are used to doing with enums. But haXe has more to offer.
What may surprise you if you are used to enums in some other languages is that in haXe, an enums values are not constants, they are real objects (and we will see later that they can even have some properties). In fact, each choice in your list of values is a constructor.
So, an enum has several constructors and limits you to the construction of values defined by these constructors.