A newtype for
ShellError is a proximate error and a possible cause, which could have its own cause,
creating a cause chain.
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.