This has significant benefits, in that it covers off Text and ByteString
readers for free (and without dependencies) and works pretty seamlessly
with Attoparsec parsers.
May cause breakages if people are using str for type inference.
In that case, adding type signatures should fix the problem.
We can push the option name supplied into the construction of the
error message. This cleans up the `ExpectsArgError` type, while
keeping essentially all English text in one place, and allows
a user to customise this message better.
We can keep the builder API the same though using const.
Uses a Levenshtein distance to see if there's a suitable
candidate for suggestions.
Also fixes a subtle bug in bash completions, where argument
completers from deeper into the parser would have their
possibilities added to the completion.
noInterpserse was not allowing any options to occur
before arguments, and wasn't behaving as its namesake
in other parsing libraries.
Add a new policy (which is potentially useful for
applications wrapping other cli tools) allowing the
command (or subcommand) to collect all unknown options
and arguments as positionals to be passed to the
command line.
We're actually turning off redundant-constraints warnings, as we
use these so the user don't turn on metavars or use hasValue when
it doesn't make sense to do so.