An old problem popped up in the uu-parsinglib. When combining two parsers with <|>, it is checked to see which alternative  accepts the shortest input; this is done in order to prevent infinite insertions, which may occur as a result of choosing a recursive alternative  when inserting of some recursive non-terminal is needed. In such a case we want to choose a non-recursive alternative.

This approach however does not combine well with the permuting parsers: here all the alternatives have the same length and we do not want to compute all those lengths, since this defeats the whole purpose of building these permutations lazily. So I added a non-length-checking version of <|> to ExtApplicative with is used in pPerms.

If you are using the permuting parsers you are strongly advised to upgrade.

Have a nice Christmas and a happy new year,

  Doaitse