Utils: fix printing precedence of datavalparams
Utils: add "private" types
Utils: add patterns for int constants and expressions for lists
Utils: allow declaration of modules in interface
Utils: add definitions for (non-)terminal mangling and branching
Utils: add support for parametrized exceptions
Purify: remove side-effects from table-backend generated code
Purify: thread environment without mutations
Purify: env, stack and engine definitions are mutation-free
Engine: turn into a step-by-step interpreter
Purify: remove lexbuf from env
Add step-by-step execution interface
Settings: add --stepwise flag
EngineTypes: split definition of step-by-step ENGINE
Interface/TableBackend: generate stepwise engine
Interface: Generate type for semantic values and non-terminals

Split interface into preInterface (before infer) and interface to add
type for nonterminals.
Add --typed-values flag in Settings to control generation of semantic
values.
Expose new typedefs in backend-generated implementations
TableBackend: generate typed code
Introduce typed semantic values in engine

Expose definitions in generated interface and implementation.
Define semantic_value and Accept in TableFormat.
Generate entry points for stepwise engine.
Add --feed-nonterminal flag