Namespaces can be indexed by string.
Ranges use invariants to detect when they've been invalidated by a change to their tag.