A command-line option parser.
It has a default implementation in terms of the other methods. You may
want to override it in some cases (e.g. add a short flag) and
flagCLParser,
mkFlagCLParser and
mkOptionCLParser
might come in handy.
Even if you override this, you still should implement all the methods
above, to allow alternative interfaces.
Do not supply a default value (e.g., with the
value function)
here for this parser! This is because if no value was provided on the
command line we may lookup the option e.g. in the environment. But if
the parser always succeeds, we have no way to tell whether the user
really provided the option on the command line.
Similarly, do not use
showDefaultWith here, as it will be
ignored. Use the
showDefaultValue method of
IsOption
instead.