TagAttribute
`TagAttribute`s are implemented on top of the low level Attribute API, and `PersistentEnvExtension`. This is just the first attribute on a series of attributes we are going to implement using Lean itself.
SyntaxNodeKind
Substring
We can use `SyntaxNodeKind.id : Nat` to implement maps from kind to values using arrays.