sig
  type opt_spec =
      NoArg
    | String of (string -> unit)
    | Int of (int -> unit)
    | Float of (float -> unit)
  exception Missing_argument of string
  exception Unknown_option of string
  exception Needless_argument of string
  exception Incorrect_argument of string * string
  val print_help : unit -> unit
  val parse :
    ?argc:int ->
    ?argv:string array ->
    ?auto_help:bool ->
    ((char * string * string) * (unit -> unit) option * GetArg.opt_spec) list ->
    (string -> unit) -> string -> unit
end