In reply to @enthus1ast. "Conceptually I get them": I mean I the `NifCursor` and `NifBuilder` or `Replacer` works Since they are essentially token streams, the cursor tells you where you are in the current tree. Each element is either a `TagLit` (able to contains node) or a `Leaf` (Symbol, DotToken) Each tag encode how many children it has, allowing an AST like traversal on a linear buffer Then the `NifBuilder` is just about building a new tree from the old one