sig
  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 Call.error | Successful of 'a
  exception API of string
  val return : '-> 'Call.t
  val bind : 'Call.t -> ('-> 'Call.t) -> 'Call.t
  val map : ('-> 'b) -> 'Call.t -> 'Call.t
  val http : Call.call -> Xml.elt Call.t
  val parallel : 'Call.t -> 'Call.t -> ('a * 'b) Call.t
  val join : 'Call.t list -> 'a list Call.t
  val cast : Http_client.http_call -> (Nethttp.cookie -> unit) -> Call.call
  val instantiate : 'Call.t -> 'Call.request
  val enqueue : 'Call.request -> Http_client.pipeline -> unit
  val result : 'Call.request -> 'Call.result
end