ArgumentError describes various ways that the parser could fail because of unexpected arguments.
Nu commands are like a combination of functions and macros, and these errors correspond to
problems that could be identified during expansion based on the syntactic signature of a
command.
ExpectedRange describes a range of values that was expected by a command. In addition
to typical ranges, this enum allows an error to specify that the range of allowed values
corresponds to a particular numeric type (which is a dominant use-case for the
RangeError error type).
A structured reason for a ParseError. Note that parsing in nu is more like macro expansion in
other languages, so the kinds of errors that can occur during parsing are more contextual than
you might expect.