This module implements a general parser class that you should
probably implement for any parsers using Parco - it encapsulates
features that cannot be expressed using other standard classes.
While some parser combinators (such as Text.Parco.Perm) can be
expressed solely through
may need to do backtracking, which not all parser implementations
can do automatically.
Before defining your own instance of the class, check if a package
is available that does it for you. For example,
defines an instance for Parsec.
Some parser combinators need special operations that are not captured in any of the standard typeclasses (backtracking, for example). For these, it is necessary to define an instance of this class.
try p fails, no input should be consumed. The default
expects p s fails, the error message should note that
(a descriptive string) was expected, but has otherwise no
semantic effect on the parser. The default method simply returns