sig
  module V1 :
    sig
      module type S =
        sig
          type key
          type comparator_witness
          module Map :
            sig
              type 'a t =
                  (Stable_containers.Comparable.V1.S.key, 'a,
                   Stable_containers.Comparable.V1.S.comparator_witness)
                  Std_internal.Map.t
              val map : 'a t -> f:('-> 'b) -> 'b t
              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
              val compare : ('-> '-> int) -> 'a t -> 'a t -> int
              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
            end
          module Set :
            sig
              type t =
                  (Stable_containers.Comparable.V1.S.key,
                   Stable_containers.Comparable.V1.S.comparator_witness)
                  Std_internal.Set.t
              val t_of_sexp : Sexplib.Sexp.t -> t
              val sexp_of_t : t -> Sexplib.Sexp.t
              val compare : t -> t -> int
              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
            end
        end
      module Make :
        functor
          (Key : sig
                   type t
                   type comparator_witness
                   val comparator :
                     (t, comparator_witness) Comparator.comparator
                   val t_of_sexp :
                     Sexplib.Sexp.t -> Stable_containers.Comparable.V1.Make.t
                   val sexp_of_t :
                     Stable_containers.Comparable.V1.Make.t -> Sexplib.Sexp.t
                   val bin_t :
                     Stable_containers.Comparable.V1.Make.t
                     Bin_prot.Type_class.t
                   val bin_read_t :
                     Stable_containers.Comparable.V1.Make.t
                     Bin_prot.Read.reader
                   val __bin_read_t__ :
                     (int -> Stable_containers.Comparable.V1.Make.t)
                     Bin_prot.Read.reader
                   val bin_reader_t :
                     Stable_containers.Comparable.V1.Make.t
                     Bin_prot.Type_class.reader
                   val bin_size_t :
                     Stable_containers.Comparable.V1.Make.t
                     Bin_prot.Size.sizer
                   val bin_write_t :
                     Stable_containers.Comparable.V1.Make.t
                     Bin_prot.Write.writer
                   val bin_writer_t :
                     Stable_containers.Comparable.V1.Make.t
                     Bin_prot.Type_class.writer
                 end->
          sig
            module Map :
              sig
                type 'a t =
                    (Key.t, 'a, Key.comparator_witness) Std_internal.Map.t
                val map : 'a t -> f:('-> 'b) -> 'b t
                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
                val compare : ('-> '-> int) -> 'a t -> 'a t -> int
                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
              end
            module Set :
              sig
                type t = (Key.t, Key.comparator_witness) Std_internal.Set.t
                val t_of_sexp : Sexplib.Sexp.t -> t
                val sexp_of_t : t -> Sexplib.Sexp.t
                val compare : t -> t -> int
                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
              end
          end
    end
end