`sig type spec = Unit of (unit -> unit) | Bool of (bool -> unit) | Set of bool Pervasives.ref | Clear of bool Pervasives.ref | String of (string -> unit) | Set_string of string Pervasives.ref | Int of (int -> unit) | Set_int of int Pervasives.ref | Float of (float -> unit) | Set_float of float Pervasives.ref | Tuple of Arg.spec list | Symbol of string list * (string -> unit) | Rest of (string -> unit) type key = string type doc = string type usage_msg = string type anon_fun = string -> unit val parse : (Arg.key * Arg.spec * Arg.doc) list -> Arg.anon_fun -> Arg.usage_msg -> unit val parse_dynamic : (Arg.key * Arg.spec * Arg.doc) list Pervasives.ref -> Arg.anon_fun -> Arg.usage_msg -> unit val parse_argv : ?current:int Pervasives.ref -> string array -> (Arg.key * Arg.spec * Arg.doc) list -> Arg.anon_fun -> Arg.usage_msg -> unit val parse_argv_dynamic : ?current:int Pervasives.ref -> string array -> (Arg.key * Arg.spec * Arg.doc) list Pervasives.ref -> Arg.anon_fun -> string -> unit exception Help of string exception Bad of string val usage : (Arg.key * Arg.spec * Arg.doc) list -> Arg.usage_msg -> unit val usage_string : (Arg.key * Arg.spec * Arg.doc) list -> Arg.usage_msg -> string val align : ?limit:int -> (Arg.key * Arg.spec * Arg.doc) list -> (Arg.key * Arg.spec * Arg.doc) list val current : int Pervasives.ref end`