sig
  exception No_value
  exception Option_error of string * string
  exception Option_help
  type 'a t = {
    option_set : string -> string list -> unit;
    option_set_value : '-> unit;
    option_get : unit -> 'a option;
    option_metavars : string list;
    option_defhelp : string option;
  }
  val get : 'BatOptParse.Opt.t -> 'a
  val set : 'BatOptParse.Opt.t -> '-> unit
  val opt : 'BatOptParse.Opt.t -> 'a option
  val is_set : 'BatOptParse.Opt.t -> bool
  val value_option :
    string ->
    'a option ->
    (string -> 'a) -> (exn -> string -> string) -> 'BatOptParse.Opt.t
  val callback_option :
    string ->
    (string -> 'a) ->
    (exn -> string -> string) -> ('-> unit) -> unit BatOptParse.Opt.t
end