# Functor Bounded_int_table.With_key

    module With_key: functor (Key : sig
    type t

    val to_int : t -> int
    val t_of_sexp : Sexplib.Sexp.t -> t
    val sexp_of_t : t -> Sexplib.Sexp.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.writerend) -> sig .. end

Parameters:

`Key` | : | `sig type t with bin_io, sexp val to_int : t -> int end`

    type 'data t = (Key.t, 'data) Bounded_int_table.table

Serialization of a bounded int table using `bin_io` or `sexp` preserves `num_keys`, but only takes space proportional to the `length` of the table.

    val create : num_keys:int -> 'data t

    val of_alist : (Key.t * 'data) list -> 'data t Or_error.t

`of_alist` returns a table whose maximum allowed key is the maximum key in the input list.

    val of_alist_exn : (Key.t * 'data) list -> 'data t

    val t_of_sexp : (Sexplib.Sexp.t -> 'data) ->
           Sexplib.Sexp.t -> 'data t

    val sexp_of_t : ('data -> Sexplib.Sexp.t) ->
           'data t -> Sexplib.Sexp.t

    val bin_t : 'data Bin_prot.Type_class.t ->
           'data t Bin_prot.Type_class.t

    val bin_read_t : 'data Bin_prot.Read.reader ->
           'data t Bin_prot.Read.reader

    val __bin_read_t__ : 'data Bin_prot.Read.reader ->
           (int -> 'data t) Bin_prot.Read.reader

    val bin_reader_t : 'data Bin_prot.Type_class.reader ->
           'data t Bin_prot.Type_class.reader

    val bin_size_t : 'data Bin_prot.Size.sizer ->
           'data t Bin_prot.Size.sizer

    val bin_write_t : 'data Bin_prot.Write.writer ->
           'data t Bin_prot.Write.writer

    val bin_writer_t : 'data Bin_prot.Type_class.writer ->
           'data t Bin_prot.Type_class.writer

`of_alist` returns a table whose maximum allowed key is the maximum key in the input list.