The Stable versions of Hashtbl, Hash_set, Map, and Set are defined here rather than in their respective modules because:

1. We guarantee their serializations independent of the implementation of those modules 2. Given 1. it is cleaner (and still okay) to separate the code into a separate file

module Set : sig .. end
module V1 : 
functor (Elt : sig .. end) -> sig .. end
type t = (Elt.t, Elt.comparator_witness) Std.Set.t
val compare : t -> t -> int
val bin_t : t Std.Bin_prot.Type_class.t
val bin_read_t : t Std.Bin_prot.Read.reader
val __bin_read_t__ : (int -> t) Std.Bin_prot.Read.reader
val bin_reader_t : t Std.Bin_prot.Type_class.reader
val bin_size_t : t Std.Bin_prot.Size.sizer
val bin_write_t : t Std.Bin_prot.Write.writer
val bin_writer_t : t Std.Bin_prot.Type_class.writer
val t_of_sexp : Sexplib.Sexp.t -> t
val sexp_of_t : t -> Sexplib.Sexp.t
module Hashtbl : sig .. end
module V1 : 
functor (Key : Std.Hashtbl.Key_binable) -> sig .. end
type 'a t = (Key.t, 'a) Std.Hashtbl.t
val bin_t : 'a Std.Bin_prot.Type_class.t -> 'a t Std.Bin_prot.Type_class.t
val bin_read_t : 'a Std.Bin_prot.Read.reader -> 'a t Std.Bin_prot.Read.reader
val __bin_read_t__ : 'a Std.Bin_prot.Read.reader -> (int -> 'a t) Std.Bin_prot.Read.reader
val bin_reader_t : 'a Std.Bin_prot.Type_class.reader -> 'a t Std.Bin_prot.Type_class.reader
val bin_size_t : 'a Std.Bin_prot.Size.sizer -> 'a t Std.Bin_prot.Size.sizer
val bin_write_t : 'a Std.Bin_prot.Write.writer -> 'a t Std.Bin_prot.Write.writer
val bin_writer_t : 'a Std.Bin_prot.Type_class.writer -> 'a t Std.Bin_prot.Type_class.writer
val t_of_sexp : (Sexplib.Sexp.t -> 'a) -> Sexplib.Sexp.t -> 'a t
val sexp_of_t : ('a -> Sexplib.Sexp.t) -> 'a t -> Sexplib.Sexp.t
module Hash_set : sig .. end
module V1 : 
functor (Elt : Std.Hash_set.Elt_binable) -> sig .. end
type t = Elt.t Std.Hash_set.t
val bin_t : t Std.Bin_prot.Type_class.t
val bin_read_t : t Std.Bin_prot.Read.reader
val __bin_read_t__ : (int -> t) Std.Bin_prot.Read.reader
val bin_reader_t : t Std.Bin_prot.Type_class.reader
val bin_size_t : t Std.Bin_prot.Size.sizer
val bin_write_t : t Std.Bin_prot.Write.writer
val bin_writer_t : t Std.Bin_prot.Type_class.writer
val t_of_sexp : Sexplib.Sexp.t -> t
val sexp_of_t : t -> Sexplib.Sexp.t
module Map : sig .. end
module V1 : 
functor (Key : sig .. end) -> sig .. end
type 'a t = (Key.t, 'a, Key.comparator_witness) Std.Map.t
val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
val bin_t : 'a Std.Bin_prot.Type_class.t -> 'a t Std.Bin_prot.Type_class.t
val bin_read_t : 'a Std.Bin_prot.Read.reader -> 'a t Std.Bin_prot.Read.reader
val __bin_read_t__ : 'a Std.Bin_prot.Read.reader -> (int -> 'a t) Std.Bin_prot.Read.reader
val bin_reader_t : 'a Std.Bin_prot.Type_class.reader -> 'a t Std.Bin_prot.Type_class.reader
val bin_size_t : 'a Std.Bin_prot.Size.sizer -> 'a t Std.Bin_prot.Size.sizer
val bin_write_t : 'a Std.Bin_prot.Write.writer -> 'a t Std.Bin_prot.Write.writer
val bin_writer_t : 'a Std.Bin_prot.Type_class.writer -> 'a t Std.Bin_prot.Type_class.writer
val t_of_sexp : (Sexplib.Sexp.t -> 'a) -> Sexplib.Sexp.t -> 'a t
val sexp_of_t : ('a -> Sexplib.Sexp.t) -> 'a t -> Sexplib.Sexp.t