- don't evaluate AST after procedural assignment collection - don't use State monad during rewrite - use Writer rather than State for procedural assignment collection - use Scoper access generation shortcut utility - cleanup as-patterns and legacy logic