Comp Language Tags
Comp allows defining a hierarchy of named values that can be used anywhere in the namespace. These are called tags and have several useful properties. Comp uses tags almost like keywords throughout...

Source: DEV Community
Comp allows defining a hierarchy of named values that can be used anywhere in the namespace. These are called tags and have several useful properties. Comp uses tags almost like keywords throughout the language. The builtin boolean types true are and false are just regular tags. Even flow control statements like skip and stop (known as continue and break in many other languages) are just tags. Tags are defined in a module as a simple hierarchy. Hierarchies from other modules can be extended within an internal module. !tag severity {high medium low} !tag comp.bool {maybe} Comp namespaces work in that any definition can be referenced by its fully qualified name or as just the leaf portion of the name that is non ambiguous. So maybe works just as well as bool.maybe inside of our namespace. In this case we've extended bool with our own crazy value. But the original module has no knowledge of our extensions. This allows us to extend but not pollute tag hierarchies. There's a mountain of oth