On Sun, Oct 23, 2016 at 4:15 PM, Jeffrey Brown <jeffbrown.the@gmail.com> wrote:
      [ [ InfixN # symbol "#" *> pure (Pair) ]
      , [ InfixN # symbol "##" *> pure (Pair) ]
      ]

Combinator parsers can't rearrange themselves to do longest token matching. So the ## operator will take the first case, match against `symbol "#"` and aOperator will succeed; the the next token match will hit the unconsumed "#" and fail. If you place "##" first then it will match "##" but not "#", which would the match the second rule.

--
brandon s allbery kf8nh                               sine nomine associates
allbery.b@gmail.com                                  ballbery@sinenomine.net
unix, openafs, kerberos, infrastructure, xmonad        http://sinenomine.net