Currently the map of visited rule nonterminals and sequence of states are stored as tunnel parameters; their values need to be calculated with extra recursions, which I would prefer to avoid for performance and scalability reasons.
The string remaining to be parsed is also stored in the parse tree: this seems a waste of memory.
I'd like to look into alternatives - the last time I considered accumulators, it looked like they wouldn't work because of co-dependencies, but I'd like someone else to confirm - or at least suggest some alternative options!