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