sig
  type 'connection_state t
  module Description :
    sig
      type t = { name : string; version : int; }
      val t_of_sexp : Sexplib.Sexp.t -> Rpc.Implementation.Description.t
      val sexp_of_t : Rpc.Implementation.Description.t -> Sexplib.Sexp.t
    end
  val description :
    'a Rpc.Implementation.t -> Rpc.Implementation.Description.t
  val lift :
    'a Rpc.Implementation.t -> f:('b -> 'a) -> 'b Rpc.Implementation.t
end