Add ".merlin" file
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
Utils(printer): fix printing precedence of datavalparams
Utils(IL): add "private" types
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
Utils(IL): add support for parametrized exceptions
TableBackend: CLEAN ME, fix wrong projections with --typed-values
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, and misc functions
Implement --feed-nonterminal