sig
  module type S =
    sig
      type key
      type t
      val create : rate:int -> max:int -> n:int -> Uwt_throttle.S.t
      val wait : Uwt_throttle.S.t -> Uwt_throttle.S.key -> bool Lwt.t
    end
  module Make :
    functor (H : Hashtbl.HashedType->
      sig
        type key = H.t
        type t
        val create : rate:int -> max:int -> n:int -> t
        val wait : t -> key -> bool Lwt.t
      end
end