Tagged union of types for nonterminals. Used internally by the parser. The tree creator can also choose a custom implementation.
See Implementation