the type of a command line argument
An argument type includes information about how to parse values of that type from
the command line, and (optionally) how to auto-complete partial arguments of that
type via bash's programmable TAB-completion. In addition to the argument prefix,
autocompletion also has access to any previously parsed arguments in the form of a
heterogeneous map into which previously parsed arguments may register themselves by
providing a Univ_map.Key using the ~key argument to create.
If the of_string function raises an exception, command line parsing will be
aborted and the exception propagated up to top-level and printed along with
command-line help.
an auto-completing Arg_type over a finite set of values
file defines an Arg_type.t that completes in the same way as
Command.Spec.file, but perhaps with a different type than string or with an
autocompletion key.