> I suspect it can be done with no change to the core pcase code by > rewriting > > (pcase-defmacro \` (qpat) > > so it does the recursion on its own (e.g. instead of expanding `(A . B) > to a pattern which contains `A and `B). Then at any level if it notices > that no `,` was found during the recursion it can just use `equal`. The patch below does that. For that ERC test, the resulting code is still very heavily nested, of course, but ... less so. Stefan