class cgi : ?post_max:int -> Request.t -> object .. end
new cgi ?post_max r creates a cgi object for the request r.
      Note that you are advised not to create more than one cgi per
      request unless you know what you are doing.
post_max : set the maximum size for POSTed requests in
      bytes. This is a security feature to prevent clients from
      overrunning the server with data. The default is
      Sys.max_string_length, meaning no limit (besides OCaml ones).
method header : ?content_type:string ->
       ?cookie:Cookie.cookie ->
       ?cookies:Cookie.cookie list -> ?cookie_cache:bool -> unit -> unit
Emit the header. The default content type is "text/html".
method template : 'a.
         ?content_type:string ->
         ?cookie:Cookie.cookie ->
         ?cookies:Cookie.cookie list ->
         ?cookie_cache:bool -> (#template as 'a) -> unit
Emit the header (unless #header was issued before) followed by
	  the given template.
Raises Failure if the output is not
	  successful.
method exit : 'b. unit -> 'b
Exit the current cgi script.  (You need not to call this at
	the end of your code, just if you want to exit earlier.)
method redirect : 'c.
         ?cookie:Cookie.cookie ->
         ?cookies:Cookie.cookie list -> ?cookie_cache:bool -> string -> 'c
#redirect ?cookie ?cookies url quits the current cgi
	  script and send to the client a redirection header to url.
method url : unit -> string
Return the URL of the script.
method param : string -> string
#param name returns the "first" value of the parameter
	name.
Raises Not_found if name does not designate a valid
	parameter.
method param_all : string -> string list
#param_all name returns all the values of the parameter
	  name.
Raises Not_found if name does not designate a
	  valid parameter.
method param_exists : string -> bool
Return true iff the named parameter exists.
method param_true : string -> bool
This method returns false if the named parameter is missing,
	is an empty string, or is the string "0". Otherwise it
	returns true. Thus the intent of this is to return true in the
	Perl sense of the word.  If a parameter appears multiple
	times, then this uses the first definition and ignores the
	others.
method params : (string * string) list
Return an assoc-list mapping name -> value for all parameters.
	  Note that CGI scripts may have multiple values for a single name.
method is_multipart : bool
Returns true iff the request was a multipart/form-data
	  POST request.  Such requests are used when you need to
	  upload files to a CGI script.
method upload : string -> upload_data
For multipart forms only.  Returns the full upload data passed
	  by the browser for a particular parameter.
Raises Not_found is no such parameter exists.
method upload_all : string -> upload_data list
For multipart forms only.  As for #upload, but returns all
	  uploads.
method cookie : string -> Cookie.cookie
Return the named cookie, or throw Not_found.
method cookies : Cookie.cookie list
Return a list of all cookies passed to the script.
method log : string -> unit
log s Log the message s into the webserver log.
method request : Request.t
Returns the original request object (passed in the constructor).