I'd say that having related values grouped and defined in this enum-manner is a good design choice. Reduces bugs, makes code more readable and passing those values more efficient. Wins in every category. A bunch of uncoupled constants is more of a "lack of design" and just begs for accidental mishaps. Something like that is common due to lack of decent enums in other programming languages. But I'm a Nim noobie (started learning barely a month ago), so maybe somebody else that has some good experience could verify my opinion?