sig
module Flag :
sig
module Type :
sig
type 'a t = 'a Command.Flag.Type.t
val create : (string -> 'a) -> 'a t
val bool : bool t
val int : int t
val float : float t
end
module Action :
sig
type 'a t = 'a Command.Flag.Action.t
val noarg : ('a -> unit) -> 'a t
val arg : ('a -> string -> unit) -> 'a t
val rest : ('a -> string list -> unit) -> 'a t
val of_type : 'a Type.t -> ('b -> 'a -> unit) -> 'b t
end
type 'a t =
'a Command.Flag.t = {
name : string;
spec : 'a Action.t;
doc : string;
}
end
type t = Command.t
val create :
summary:string ->
usage_arg:string ->
init:(unit -> 'a) ->
flags:'a Flag.t list ->
anon:('a -> string list -> unit) ->
final:('a -> (unit -> string) -> 'b) -> main:('b -> int) -> t
val group : summary:string -> (string * t) list -> t
val run : ?argv:string list -> t -> hash_bang_expand:bool -> int
module Tab_completion :
sig val write_script : t -> argv0:string -> dest:string -> unit end
module Version :
sig val command : version:string -> build_info:string -> t end
end