Enumerators should be mapped to ordered integer values and the types should convert out of the box.
Enum values could then be ordered specially and used with integer comparisons.
This would be useful for comparing the values of:
an enum to an integer: e.g. an enum defining rarity, and you want to know, if rarity > uncommon
2 enum instances, or comparing 2 enum types for their values:
1 enum instance holds progress level : completed, and one holds progress level: halted.
ProgressLevel : enum =
NotStarted
Started
Halted
Continued
Completed
Then we could compare the values of two different instances, e.g.
if(Player1.ProgressLevel < Player2.ProgressLevel):
Or the values of the enumerators to eachother, e.g.
if(ProgressLevel > Started):
etc. These could be compared for proper ordinance
We could also easily select a random enumerator, and do numbers if other useful things like assign enumerators from integers, etc.
Right now devs are having to write their own conversion functions and enums just aren’t as useful as they could be without being properly enumerated.