iterator allows to implement AST inspection using open recursion. A typical mapper would be based on default_iterator, a trivial iterator, and will fall back on it for handling the syntax it does not modify.
type iterator = {}A iterator record implements one "method" per syntactic category,
using an open recursion style: each method takes as its first
argument the iterator to be applied to children in the syntax
tree.