module Call: sig .. end
Abstract API calls
  A call of type 'a t is an abstract object to model interaction with a
  MediaWiki site. Basically, it embeds all the burden related to low-level
  management of HTTP calls and XML parsing.
type call 
type +'a t 
type 'a request 
type error = 
| | 
Network_Error of string | 
| | 
API_Error of string | 
| | 
Other_Error of exn | 
type 'a result = 
| | 
Unserved | 
| | 
Failed of error | 
| | 
Successful of 'a | 
exception API of string
Exception to be used by the API parsing functions.
Monadic handling of calls
val return : 'a -> 'a t
return x returns the constant call
val bind : 'a t -> ('a -> 'b t) -> 'b t
bind m f is the monadic bind, i.e. it extracts the result from m and 
  applies f to it.
val map : ('a -> 'b) -> 'a t -> 'b t
map f m applies f to the underlying object of m.
val http : call -> Xml.elt t
http c embeds a low-level HTTP call. It returns the XML parsed from the 
  reply of the server. The call is copied, so this is purely functional.
val parallel : 'a t -> 'b t -> ('a * 'b) t
parallel m n processes m and n concurrently.
val join : 'a t list -> 'a list t
join l processes all the calls from the list l concurrently.
Casting HTTP calls into abstract calls
val cast : Http_client.http_call -> (Nethttp.cookie -> unit) -> call
cast call f permits to deal with Set-Cookies headers of answers: f will 
  be fed with such cookies when call is processed.
Request manipulation and creation
val instantiate : 'a t -> 'a request
Instantiate any abstract call into an effective object that can be submitted
  to the server. Any exception occuring during the bind chaining or from any
  network error will be caught and can be analyzed through result.
val enqueue : 'a request -> Http_client.pipeline -> unit
Push the request on the pipeline, waiting to be processed.
val result : 'a request -> 'a result
Gives back the result of the API call.