Provide copy constructor for rules, which generates a reference to the original rule.
Add a trace expression for observing parser behaviour.
Add debug logging for AST building operations.
Track the parent source range when constructing children so we don’t pop anything off the AST stack that we aren’t meant to.