Implemented by treating the parser cfg as a cache that can be recreated from the elaborator state after e.g. a scope has ended
And other refactorings along the way
rec_t
trie