The only time I got a problem so far is in Nim-Screeps. There I would need something like this: type StructureTypes = enum STRUCTURE_SPAWN STRUCTURE_TOWER Structure = object of RootObj structureType: StructureTypes StructueSpawn = object of Structure ... StructureTower = object of Structure ...
I solved such problems by naming the enum values "STRUCTURE_TYPE_xxx" which works but makes code different to the original examples. So no unsolvable problem here. I mostly think that there should be nothing like FooBar == FOOBAR or fooBar == foobar. I still don't like the whole concept and even if there is a point I would limit it to snake_case vs. camelCase equality and making underlines only optional in ALL_UPPERCASE or all_lower_case. Allowing leading and trailing _ would be very much appreciated too. But I think that will not be changed anymore and made my peace with it. I also don't like "type" being a keyword as this always comes up in my code. But then. I can still code when I use another word and it is again mostly while interfacing stuff.