sig
  type context
  type socket
  type buffer =
      (char, Bigarray.int8_unsigned_elt, Bigarray.c_layout) Bigarray.Array1.t
  type error = ECONNREFUSED | ECONNRESET | ETIMEDOUT
  val init : unit -> Utp.context
  val set_debug : Utp.context -> bool -> unit
  val create_socket : Utp.context -> Utp.socket
  val connect : Utp.socket -> Unix.sockaddr -> unit
  val write : Utp.socket -> Utp.buffer -> int -> int -> int
  val close : Utp.socket -> unit
  val process_udp :
    Utp.context -> Unix.sockaddr -> Utp.buffer -> int -> int -> bool
  val check_timeouts : Utp.context -> unit
  val issue_deferred_acks : Utp.context -> unit
  val get_context : Utp.socket -> Utp.context
  val destroy : Utp.context -> unit
end