The type of a node within the document.
It is bound by the lifetime
'a, which corresponds to the
Arena nodes are allocated in.
AstNodes are almost handled as a reference itself bound by
Asts are wrapped in
RefCell for interior mutability.
You can construct a new
AstNode from a
NodeValue using the
let root = AstNode::from(NodeValue::Document);