sig
  exception Option_conflict of string
  type t
  type group
  val make :
    ?usage:string ->
    ?description:string ->
    ?version:string ->
    ?suppress_usage:bool ->
    ?suppress_help:bool ->
    ?only_leading_opts:bool ->
    ?prog:string ->
    ?formatter:BatOptParse.Formatter.t -> unit -> BatOptParse.OptParser.t
  val add :
    BatOptParse.OptParser.t ->
    ?group:BatOptParse.OptParser.group ->
    ?help:string ->
    ?hide:bool ->
    ?short_name:char ->
    ?short_names:char list ->
    ?long_name:string ->
    ?long_names:string list -> 'BatOptParse.Opt.t -> unit
  val add_group :
    BatOptParse.OptParser.t ->
    ?parent:BatOptParse.OptParser.group ->
    ?description:string -> string -> BatOptParse.OptParser.group
  val error :
    BatOptParse.OptParser.t ->
    ?chn:Stdlib.out_channel -> ?status:int -> string -> unit
  val usage :
    BatOptParse.OptParser.t -> ?chn:Stdlib.out_channel -> unit -> unit
  val parse :
    BatOptParse.OptParser.t ->
    ?first:int -> ?last:int -> string array -> string list
  val parse_argv : BatOptParse.OptParser.t -> string list
end