A library for easily manipulating trees of operators. Operators that extend TreeNode are
granted the following interface:
Scala collection like methods (foreach, map, flatMap, collect, etc)

transform  accepts a partial function that is used to generate a new tree. When the
partial function can be applied to a given tree segment, that segment is replaced with the
result. After attempting to apply the partial function to a given node, the transform
function recursively attempts to apply the function to that node's children.
debugging support  pretty printing, easy splicing of trees, etc.
A library for easily manipulating trees of operators. Operators that extend TreeNode are granted the following interface:
 transform  accepts a partial function that is used to generate a new tree. When the partial function can be applied to a given tree segment, that segment is replaced with the result. After attempting to apply the partial function to a given node, the transform function recursively attempts to apply the function to that node's children.