sig
  module type S =
    sig
      type key
      module Table :
        sig
          type 'a t =
              (Stable_containers.Hashable.V1.S.key, 'a)
              Std_internal.Hashtbl.t
          val bin_t :
            'Bin_prot.Type_class.t ->
            'Stable_containers.Hashable.V1.S.Table.t Bin_prot.Type_class.t
          val bin_read_t :
            'Bin_prot.Read.reader ->
            'Stable_containers.Hashable.V1.S.Table.t Bin_prot.Read.reader
          val __bin_read_t__ :
            'Bin_prot.Read.reader ->
            (int -> 'Stable_containers.Hashable.V1.S.Table.t)
            Bin_prot.Read.reader
          val bin_reader_t :
            'Bin_prot.Type_class.reader ->
            'Stable_containers.Hashable.V1.S.Table.t
            Bin_prot.Type_class.reader
          val bin_size_t :
            'Bin_prot.Size.sizer ->
            'Stable_containers.Hashable.V1.S.Table.t Bin_prot.Size.sizer
          val bin_write_t :
            'Bin_prot.Write.writer ->
            'Stable_containers.Hashable.V1.S.Table.t Bin_prot.Write.writer
          val bin_writer_t :
            'Bin_prot.Type_class.writer ->
            'Stable_containers.Hashable.V1.S.Table.t
            Bin_prot.Type_class.writer
          val t_of_sexp :
            (Sexplib.Sexp.t -> 'a) ->
            Sexplib.Sexp.t -> 'Stable_containers.Hashable.V1.S.Table.t
          val sexp_of_t :
            ('-> Sexplib.Sexp.t) ->
            'Stable_containers.Hashable.V1.S.Table.t -> Sexplib.Sexp.t
        end
      module Hash_set :
        sig
          type t = Stable_containers.Hashable.V1.S.key Hash_set.t
          val bin_t :
            Stable_containers.Hashable.V1.S.Hash_set.t Bin_prot.Type_class.t
          val bin_read_t :
            Stable_containers.Hashable.V1.S.Hash_set.t Bin_prot.Read.reader
          val __bin_read_t__ :
            (int -> Stable_containers.Hashable.V1.S.Hash_set.t)
            Bin_prot.Read.reader
          val bin_reader_t :
            Stable_containers.Hashable.V1.S.Hash_set.t
            Bin_prot.Type_class.reader
          val bin_size_t :
            Stable_containers.Hashable.V1.S.Hash_set.t Bin_prot.Size.sizer
          val bin_write_t :
            Stable_containers.Hashable.V1.S.Hash_set.t Bin_prot.Write.writer
          val bin_writer_t :
            Stable_containers.Hashable.V1.S.Hash_set.t
            Bin_prot.Type_class.writer
          val t_of_sexp :
            Sexplib.Sexp.t -> Stable_containers.Hashable.V1.S.Hash_set.t
          val sexp_of_t :
            Stable_containers.Hashable.V1.S.Hash_set.t -> Sexplib.Sexp.t
        end
    end
  module Make :
    functor (Key : Std_internal.Hashtbl.Key_binable->
      sig
        module Table :
          sig
            type 'a t = (Key.t, 'a) Std_internal.Hashtbl.t
            val bin_t :
              'Bin_prot.Type_class.t -> 'a t Bin_prot.Type_class.t
            val bin_read_t :
              'Bin_prot.Read.reader -> 'a t Bin_prot.Read.reader
            val __bin_read_t__ :
              'Bin_prot.Read.reader -> (int -> 'a t) Bin_prot.Read.reader
            val bin_reader_t :
              'Bin_prot.Type_class.reader ->
              'a t Bin_prot.Type_class.reader
            val bin_size_t :
              'Bin_prot.Size.sizer -> 'a t Bin_prot.Size.sizer
            val bin_write_t :
              'Bin_prot.Write.writer -> 'a t Bin_prot.Write.writer
            val bin_writer_t :
              'Bin_prot.Type_class.writer ->
              'a t Bin_prot.Type_class.writer
            val t_of_sexp : (Sexplib.Sexp.t -> 'a) -> Sexplib.Sexp.t -> 'a t
            val sexp_of_t : ('-> Sexplib.Sexp.t) -> 'a t -> Sexplib.Sexp.t
          end
        module Hash_set :
          sig
            type t = Key.t Hash_set.t
            val bin_t : t Bin_prot.Type_class.t
            val bin_read_t : t Bin_prot.Read.reader
            val __bin_read_t__ : (int -> t) Bin_prot.Read.reader
            val bin_reader_t : t Bin_prot.Type_class.reader
            val bin_size_t : t Bin_prot.Size.sizer
            val bin_write_t : t Bin_prot.Write.writer
            val bin_writer_t : t Bin_prot.Type_class.writer
            val t_of_sexp : Sexplib.Sexp.t -> t
            val sexp_of_t : t -> Sexplib.Sexp.t
          end
      end
end