A helper for traversing a phrase tree without recursion.
Visit all phrases in the tree, in bottom-up order, invoking aBlock for each, and also passing the phrase's optional parent.
What to execute with each phrase in the tree and its optional (only for the top phrase) parent.
A function that takes a phrase and a function that accepts a phrase, and evaluates the passed function with each child of the phrase.