# Module type Command.Param.S

    module type S = sig .. end

    include Applicative.S

## various internal values

    val help : string Core_kernel.Std.Lazy.t t

the help text for the command

    val path : string list t

the subcommand path of the command

    val args : string list t

the arguments passed to the command

    val flag : ?aliases:string list ->
           ?full_flag_required:unit -> string -> 'a Command.Flag.t -> doc:string -> 'a t

`flag name spec ~doc` specifies a command that, among other things, takes a flag named `name` on its command line. `doc` indicates the meaning of the flag.

All flags must have a dash at the beginning of the name. If `name` is not prefixed by "-", it will be normalized to `"-" ^ name`.

Unless `full_flag_required` is used, one doesn't have to pass `name` exactly on the command line, but only an unambiguous prefix of `name` (i.e., a prefix which is not a prefix of any other flag's name).

NOTE: the `doc` for a flag which takes an argument should be of the form `arg_name ^ " " ^ description` where `arg_name` describes the argument and `description` describes the meaning of the flag.

NOTE: flag names (including aliases) containing underscores will be rejected. Use dashes instead.

NOTE: "-" by itself is an invalid flag name and will be rejected.

    val anon : 'a Command.Anons.t -> 'a t

`anon spec` specifies a command that, among other things, takes the anonymous arguments specified by `spec`.