Folding and rewriting of ASTs
Replace fixed rewriteTopDown/BottomUp methods with Rewriter objects