Is it not possible to add an alternative (no pun intended) to <|> that supports the semantics Evan wants?
I would agree that what attoparsec does for <|> of Alternative and mplus for MonadPlus is correct since e.g. the mplus laws say that a failure must be identity and therefore the following alternatives must be considered. I also find it very convenient that attoparsec works this way, and prefer it to what parsec does by default. However, I do not see why attoparsec cannot have a function <||> that on failure with consumed input does not evaluate the remaining alternatives. On 16/03/13 01:54, Erik de Castro Lopo wrote: > Evan Laforge wrote: >> However, which error msg shows up depends on the order of the (<|>) >> alternatives, and in general the global structure of the entire >> parser, because I think it just backtracks and then picks the last >> failing backtrack. > > I'm not sure if what I've offered will help, but its worth a try. _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe