A newtype for ParseErrorReason

A 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.