I have just completed a MAJOR revision of the code: the "Dao.Evaluator" no longer interprets the abstract syntax tree directly. Now there is an intermediate data structure, which maps nearly one-to-one with the abstract syntax tree, and the "Dao.Evaluator" evaluates this intermediate data structure. The original abstract syntax tree has been renamed and moved into the new "Dao.Object.AST" module, which provides a class 'Dao.Object.AST.Intermediate' with methods for converting the abstract syntax tree to and from the intermediate data structure. The file "pats.sed" in the root directory of this source tree contains the regular expression rules I used to refactor the code.