sig
  module Monad :
    sig
      type 'a t = 'a
      val return : '-> 'a t
      val fail : exn -> 'a t
      val bind : 'a t -> ('-> 'b t) -> 'b t
      val catch : (unit -> 'a t) -> (exn -> 'a t) -> 'a t
    end
  val post_string :
    headers:(string * string) list ->
    inet_addr:Unix.inet_addr ->
    host:string -> port:int -> uri:string -> string -> string Monad.t
end