sig
  type address = NetTcp.Address.t
  type result = NoReply | Reply of Bencode.t | Error of string
  type method_ = RPCServer.address -> Bencode.t -> RPCServer.result Lwt.t
  type t
  val port : RPCServer.t -> int
  val wait : RPCServer.t -> unit Lwt.t
  val of_server : NetTcp.Server.t -> RPCServer.t
  val create : ?port:int -> ?retry:int -> unit -> RPCServer.t option
  val stop : RPCServer.t -> unit
  val register : RPCServer.t -> string -> RPCServer.method_ -> unit
  val fmt : Format.formatter -> RPCServer.t -> unit
  val reply : Bencode.t -> RPCServer.result Lwt.t
  val no_reply : RPCServer.result Lwt.t
  val error : String.t -> RPCServer.result Lwt.t
end