# Class type Netcgi1_compat.Netcgi_types.cgi_argument

    class type cgi_argument = object .. end

Portage: In addition to defining a type, the following `cgi_argument` also defines a conversion function that allows to connect old scripts to the new infrastructure. Finalizing `cgi_argument a` will also finalize `a`.

    method name : string

    method value : string

    method open_value_rd : unit -> Netchannels.in_obj_channel

    method ro : bool

Irrelevant: there are no methods to mutate an argument.

    method store : store

    method content_type : string

    method content_type_params : (string * Mimestring.s_param) list

Method `content_type : unit -> string * (string * Mimestring.s_param) list` defined instead of `content_type` and `content_type_params` to be coherent with `Netmime.mime_header_ro` -- yet as easy to use.

    method charset : string

    method filename : string option

    method representation : representation

    method finalize : unit -> unit

    method set_value : string -> unit

Dealing with the arguments is the task of an higher order library. In fact, it is generally misleading to think arguments as mutable because one must accomodate the back button -- so cache, history,... will use the "initial args". Moreover, the only place where mutability is interesting is the `#url` method which -- as already remarked -- can be dealt with in a purely functional way.

The new interface contains commodity functions to update lists of arguments (see `Netcgi.Argument`).

    method open_value_wr : unit -> Netchannels.out_obj_channel

See `#set_value`.