`sig
type spec =
Unit of (unit -> unit)
| Bool of (bool -> unit)
| Set of bool Stdlib.ref
| Clear of bool Stdlib.ref
| String of (string -> unit)
| Set_string of string Stdlib.ref
| Int of (int -> unit)
| Set_int of int Stdlib.ref
| Float of (float -> unit)
| Set_float of float Stdlib.ref
| Tuple of Arg.spec list
| Symbol of string list * (string -> unit)
| Rest of (string -> unit)
| Expand of (string -> string array)
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 Stdlib.ref ->
Arg.anon_fun -> Arg.usage_msg -> unit
val parse_argv :
?current:int Stdlib.ref ->
string array ->
(Arg.key * Arg.spec * Arg.doc) list ->
Arg.anon_fun -> Arg.usage_msg -> unit
val parse_argv_dynamic :
?current:int Stdlib.ref ->
string array ->
(Arg.key * Arg.spec * Arg.doc) list Stdlib.ref ->
Arg.anon_fun -> string -> unit
val parse_and_expand_argv_dynamic :
int Stdlib.ref ->
string array Stdlib.ref ->
(Arg.key * Arg.spec * Arg.doc) list Stdlib.ref ->
Arg.anon_fun -> string -> unit
val parse_expand :
(Arg.key * Arg.spec * Arg.doc) list ->
Arg.anon_fun -> Arg.usage_msg -> 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 Stdlib.ref
val read_arg : string -> string array
val read_arg0 : string -> string array
val write_arg : string -> string array -> unit
val write_arg0 : string -> string array -> unit
end`