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.