rewrite rules: desugar: generate variable names +
refactor traversals into new file