# Constants
AnyOption indicates that the last element must be new option, short or long.
Argument indicates that the last element is a non-option argument.
Config to replicate the behavior of BSD's getopt_long.
ChainShortOption indicates that a new short option may be chained.
Config to replicate the behavior of GNU's getopt_long.
Allow long options to start with "-", and disallow short options.
LongOption indicates that the last element is a long option (but not its argument).
The option takes no argument.
The option takes an optional argument.
OptionArgument indicates that the last element list must be an argument to an option.
OptionOrArgument indicates that the last element may be either a new option or a new argument.
The option requires an argument.
Stop parsing options after "--".
Stop parsing options before the first non-option argument.
# Structs
Context describes the context of the last argument.
Option represents a parsed option.
OptionSpec is a command-line option.
# Type aliases
Arity indicates whether an option takes an argument, and whether it is required.
Config configurates the parsing behavior.
ContextType encodes how the last argument can be completed.