sig   type arg = {     name : string;     opt : bool;     def : string option;     desc : string option;     validate : Valid.t option;     hide : bool;   }   val string_of_arg : Kwapp.Argv.arg -> string   type argv = { argv : Kwapp.Argv.arg list; rep : Kwapp.Argv.arg option; }   val string_of_argv : Kwapp.Argv.argv -> string   val empty : Kwapp.Argv.argv   val any : Kwapp.Argv.argv   val validate : Kwapp.Argv.argv -> unit   val ( +> ) : '-> ('-> 'b) -> 'b   val arg : string -> Kwapp.Argv.argv -> Kwapp.Argv.argv   val optional : Kwapp.Argv.argv -> Kwapp.Argv.argv   val desc : string -> Kwapp.Argv.argv -> Kwapp.Argv.argv   val def : string -> Kwapp.Argv.argv -> Kwapp.Argv.argv   val valid : Valid.t -> Kwapp.Argv.argv -> Kwapp.Argv.argv   val rep : Kwapp.Argv.argv -> Kwapp.Argv.argv   val hide : Kwapp.Argv.argv -> Kwapp.Argv.argv   val check : Kwapp.Argv.argv -> Kwapp.parsedopts * string list -> unit   val checktests : (Kwapp.Argv.argv * int list * bool) list   val runchecktests : unit -> (int * bool * int) list   val sanshidden : Kwapp.Argv.argv -> Kwapp.Argv.argv end