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