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.