Well you don't have to do what Maude did, that wasn't what I was claiming. I was claiming that Maude has a functional correctness that this lacks. I am willing to accept the idea that we don't want to change this for now because we just want to get this working, but it's /wrong/ now. Code that priorities should handle will not be handled, and the behavior will not be what users expected. The correct behavior is that priority applies on all nonterminals which are not surrounded on both sides by terminals.

This is starting to persuade me that we should just make the output of the parser kernel be concrete syntax trees. There are advantages to that approach regardless with respect to the documentation backend, and it would make it no longer necessary to modify every single parser filter (which you will have to do the way you are doing now).

As far as I can tell the only thing that would be needed to make that happen would be to replace the WrapLabelRule that exists currently with a WrapTermCons or something.

Thoughts on this?