sig   type opt = {     arg : string option;     def : string list;     desc : string;     req : bool;     validate : Valid.t option;     mex : int;     rep : bool;     hide : bool;     nyi : string option option;   }   val string_of_opt : Kwapp.Option.opt -> string   type switch = string list * Kwapp.Option.opt   val string_of_switch : string list * Kwapp.Option.opt -> string   type switchset = Kwapp.Option.switch list   val string_of_switchset : Kwapp.Option.switchset -> string   val req : Kwapp.Option.opt   val opt : Kwapp.Option.opt   val validate : string list * Kwapp.Option.opt -> unit   val ( +> ) : '-> ('-> 'b) -> 'b   val sw : string -> string list * Kwapp.Option.opt   val sws : string list -> string list * Kwapp.Option.opt   val alias : string -> string list * '-> string list * 'a   val optional : 'a * Kwapp.Option.opt -> 'a * Kwapp.Option.opt   val required : 'a * Kwapp.Option.opt -> 'a * Kwapp.Option.opt   val rep : 'a * Kwapp.Option.opt -> 'a * Kwapp.Option.opt   val arg : string -> 'a * Kwapp.Option.opt -> 'a * Kwapp.Option.opt   val def : string list -> 'a * Kwapp.Option.opt -> 'a * Kwapp.Option.opt   val mex : int -> 'a * Kwapp.Option.opt -> 'a * Kwapp.Option.opt   val desc : string -> 'a * Kwapp.Option.opt -> 'a * Kwapp.Option.opt   val valid : Valid.t -> 'a * Kwapp.Option.opt -> 'a * Kwapp.Option.opt   val hide : 'a * Kwapp.Option.opt -> 'a * Kwapp.Option.opt   val nyi : ?because:string -> 'a * Kwapp.Option.opt -> 'a * Kwapp.Option.opt   val withhelp :     ?sws:string list ->     (string list * Kwapp.Option.opt) list ->     (string list * Kwapp.Option.opt) list   val classes :     ('a list * Kwapp.Option.opt) list ->     (int * ('a list * Kwapp.Option.opt) list) list *     ('a list * Kwapp.Option.opt) list   val mutually :     Kwapp.Parsedopt.key list list -> 'Kwapp.Parsedopt.t * '-> int   val mexify :     (int * (string list * Kwapp.Option.opt) list) list -> string list list   val check :     (Kwapp.Parsedopt.key list * Kwapp.Option.opt) list ->     Kwapp.parsedopts * string list -> Kwapp.parsedopts * string list   val sanshidden :     ('a * Kwapp.Option.opt) list -> ('a * Kwapp.Option.opt) list end