Latest snapshot
Interpreter now does a depth-first, recursive tree walk - previously we were doing 2 passes: once to define entities, and once to generate - previous impl was not capable of looking beyond 1-level deep - can change to iterative tree-walk if performance or stack-depth becomes problematic