functor
  (Key : sig
           type t
           val to_int : Bounded_int_table.With_key.t -> int
           val t_of_sexp : Sexplib.Sexp.t -> Bounded_int_table.With_key.t
           val sexp_of_t : Bounded_int_table.With_key.t -> Sexplib.Sexp.t
           val bin_t : Bounded_int_table.With_key.t Bin_prot.Type_class.t
           val bin_read_t :
             Bounded_int_table.With_key.t Bin_prot.Read_ml.reader
           val bin_read_t_ :
             Bounded_int_table.With_key.t Bin_prot.Unsafe_read_c.reader
           val bin_read_t__ :
             (int -> Bounded_int_table.With_key.t)
             Bin_prot.Unsafe_read_c.reader
           val bin_reader_t :
             Bounded_int_table.With_key.t Bin_prot.Type_class.reader
           val bin_size_t : Bounded_int_table.With_key.t Bin_prot.Size.sizer
           val bin_write_t :
             Bounded_int_table.With_key.t Bin_prot.Write_ml.writer
           val bin_write_t_ :
             Bounded_int_table.With_key.t Bin_prot.Unsafe_write_c.writer
           val bin_writer_t :
             Bounded_int_table.With_key.t Bin_prot.Type_class.writer
         end->
  sig
    type 'data t = (Key.t, 'data) Bounded_int_table.table
    val create : num_keys:int -> 'data Bounded_int_table.With_key.t
    val of_alist :
      (Key.t * 'data) list -> 'data Bounded_int_table.With_key.t Or_error.t
    val of_alist_exn :
      (Key.t * 'data) list -> 'data Bounded_int_table.With_key.t
    val t_of_sexp :
      (Sexplib.Sexp.t -> 'data) ->
      Sexplib.Sexp.t -> 'data Bounded_int_table.With_key.t
    val sexp_of_t :
      ('data -> Sexplib.Sexp.t) ->
      'data Bounded_int_table.With_key.t -> Sexplib.Sexp.t
    val bin_t :
      'data Bin_prot.Type_class.t ->
      'data Bounded_int_table.With_key.t Bin_prot.Type_class.t
    val bin_read_t :
      'data Bin_prot.Unsafe_read_c.reader ->
      'data Bounded_int_table.With_key.t Bin_prot.Read_ml.reader
    val bin_read_t_ :
      'data Bin_prot.Unsafe_read_c.reader ->
      'data Bounded_int_table.With_key.t Bin_prot.Unsafe_read_c.reader
    val bin_read_t__ :
      'data Bin_prot.Unsafe_read_c.reader ->
      (int -> 'data Bounded_int_table.With_key.t)
      Bin_prot.Unsafe_read_c.reader
    val bin_reader_t :
      'data Bin_prot.Type_class.reader ->
      'data Bounded_int_table.With_key.t Bin_prot.Type_class.reader
    val bin_size_t :
      'data Bin_prot.Size.sizer ->
      'data Bounded_int_table.With_key.t Bin_prot.Size.sizer
    val bin_write_t :
      'data Bin_prot.Unsafe_write_c.writer ->
      'data Bounded_int_table.With_key.t Bin_prot.Write_ml.writer
    val bin_write_t_ :
      'data Bin_prot.Unsafe_write_c.writer ->
      'data Bounded_int_table.With_key.t Bin_prot.Unsafe_write_c.writer
    val bin_writer_t :
      'data Bin_prot.Type_class.writer ->
      'data Bounded_int_table.With_key.t Bin_prot.Type_class.writer
  end