sig
  type kind =
      Int
    | Float
    | String
    | Set_true
    | Set_false
    | Custom of string
    | StringAcc
  type p = Default of string | Defaults of string list | Required | Optional
  type spec = string * UtilsLib.Args.p * UtilsLib.Args.kind * string
  type args = string list
  type cmd
  val parse :
    UtilsLib.Args.spec list -> UtilsLib.Args.args -> UtilsLib.Args.cmd
  val usage : UtilsLib.Args.spec list -> unit
  val get_int : UtilsLib.Args.cmd -> string -> int
  val get_float : UtilsLib.Args.cmd -> string -> float
  val get_bool : UtilsLib.Args.cmd -> string -> bool
  val get_string : UtilsLib.Args.cmd -> string -> string
  val get_custom : (string -> 'a) -> UtilsLib.Args.cmd -> string -> 'a
  val get_string_list : UtilsLib.Args.cmd -> string -> string list
  val get_int_opt : UtilsLib.Args.cmd -> string -> int option
  val get_float_opt : UtilsLib.Args.cmd -> string -> float option
  val get_bool_opt : UtilsLib.Args.cmd -> string -> bool option
  val get_string_opt : UtilsLib.Args.cmd -> string -> string option
  val get_custom_opt :
    (string -> 'a) -> UtilsLib.Args.cmd -> string -> 'a option
end