sig
  exception Missing_argument of (string * string)
  exception Missing_cookie of (string * string)
  exception Read_errors of exn list
  type spec =
      Unit of (unit -> unit)
    | Set of bool Pervasives.ref
    | Clear of bool Pervasives.ref
    | String of (string -> unit)
    | Int of (int -> unit)
    | Float of (float -> unit)
    | Mail_address of (string -> unit)
    | Regexp of Str.regexp * (string -> unit)
    | Set_string of string Pervasives.ref
    | Set_int of int Pervasives.ref
    | Set_float of float Pervasives.ref
    | Set_mail_address of string Pervasives.ref
    | Set_regexp of Str.regexp * string Pervasives.ref
  type spec_option = Mandatory of string
  val parse :
    Env.cgi_env -> (string * Args.spec * Args.spec_option list) list -> unit
  val raw_mandatory :
    Env.cgi_env -> err:string -> string -> Env.argument_value
  val raw_optional : Env.cgi_env -> string -> Env.argument_value option
  val mandatory : Env.cgi_env -> err:string -> string -> string
  val optional_f : Env.cgi_env -> (string -> 'a) -> string -> 'a option
  val optional : Env.cgi_env -> string -> string option
  val mandatory_cookie : Env.cgi_env -> err:string -> string -> string
  val optional_f_cookie :
    Env.cgi_env -> (string -> 'a) -> string -> 'a option
  val optional_cookie : Env.cgi_env -> string -> string option
  val int_arg : Env.cgi_env -> ?default:int -> ?err:string -> string -> int
  val float_arg :
    Env.cgi_env -> ?default:float -> ?err:string -> string -> float
  val mail_arg :
    Env.cgi_env -> ?default:string -> ?err:string -> string -> string
  val string_arg :
    Env.cgi_env -> ?default:string -> ?err:string -> string -> string
  val arg :
    Env.cgi_env ->
    (string -> 'a) -> ?default:'-> ?err:string -> string -> 'a
  val check_mail : string -> string
end