functor (K : Key->
  functor (V : Value->
    sig
      type t
      val empty : t
      val of_alist : (K.t * V.t) list -> t
      val to_alist : t -> (K.t * V.t) list
      val of_aarray : (K.t * V.t) array -> t
      val of_sorted_aarray : (K.t * V.t) array -> t
      val of_hashtbl : (K.t, V.t) Core.Std.Hashtbl.t -> t
      val find : t -> K.t -> V.t option
      val mem : t -> K.t -> bool
      val iter : t -> f:(key:K.t -> data:V.t -> unit) -> unit
      val bin_t : t Core.Std.Bin_prot.Type_class.t
      val bin_read_t : t Core.Std.Bin_prot.Read_ml.reader
      val bin_read_t_ : t Core.Std.Bin_prot.Unsafe_read_c.reader
      val bin_read_t__ : (int -> t) Core.Std.Bin_prot.Unsafe_read_c.reader
      val bin_reader_t : t Core.Std.Bin_prot.Type_class.reader
      val bin_size_t : t Core.Std.Bin_prot.Size.sizer
      val bin_write_t : t Core.Std.Bin_prot.Write_ml.writer
      val bin_write_t_ : t Core.Std.Bin_prot.Unsafe_write_c.writer
      val bin_writer_t : t Core.Std.Bin_prot.Type_class.writer
      val t_of_sexp : Sexplib.Sexp.t -> t
      val sexp_of_t : t -> Sexplib.Sexp.t
      val bin_key : K.t Core.Std.Bin_prot.Type_class.t
      val bin_read_key : K.t Core.Std.Bin_prot.Read_ml.reader
      val bin_read_key_ : K.t Core.Std.Bin_prot.Unsafe_read_c.reader
      val bin_read_key__ :
        (int -> K.t) Core.Std.Bin_prot.Unsafe_read_c.reader
      val bin_reader_key : K.t Core.Std.Bin_prot.Type_class.reader
      val bin_size_key : K.t Core.Std.Bin_prot.Size.sizer
      val bin_write_key : K.t Core.Std.Bin_prot.Write_ml.writer
      val bin_write_key_ : K.t Core.Std.Bin_prot.Unsafe_write_c.writer
      val bin_writer_key : K.t Core.Std.Bin_prot.Type_class.writer
      val key_of_sexp : Sexplib.Sexp.t -> K.t
      val sexp_of_key : K.t -> Sexplib.Sexp.t
      val bin_value : V.t Core.Std.Bin_prot.Type_class.t
      val bin_read_value : V.t Core.Std.Bin_prot.Read_ml.reader
      val bin_read_value_ : V.t Core.Std.Bin_prot.Unsafe_read_c.reader
      val bin_read_value__ :
        (int -> V.t) Core.Std.Bin_prot.Unsafe_read_c.reader
      val bin_reader_value : V.t Core.Std.Bin_prot.Type_class.reader
      val bin_size_value : V.t Core.Std.Bin_prot.Size.sizer
      val bin_write_value : V.t Core.Std.Bin_prot.Write_ml.writer
      val bin_write_value_ : V.t Core.Std.Bin_prot.Unsafe_write_c.writer
      val bin_writer_value : V.t Core.Std.Bin_prot.Type_class.writer
      val value_of_sexp : Sexplib.Sexp.t -> V.t
      val sexp_of_value : V.t -> Sexplib.Sexp.t
    end