# Functor Unique_id.Int

    module Int: functor (* : sigend) -> Id  with type t = private int

An abstract unique identifier based on ordinary OCaml integers. Be careful, this may easily overflow on 32-bit platforms! `Int63` is a safer choice for portability.

`Int` is useful when one is passing unique ids to C and needs a guarantee as to their representation. `Int` is always represented as an integer, while `Int63` is either an integer (on 64-bit machines) or a pointer (on 32-bit machines).

The generated ids will therefore be fast to generate and not use much memory. If you do not have very stringent requirements on the size, speed, and ordering of your IDs then you should use the UUIDM library instead, which will give you a truly unique id, even amongst different runs and different machines.

Parameters:

`*` | : | `()`

    type t

The sexps and strings look like integers.

    include Comparable.S_binable

CAVEAT: Values created with of_float, of_sexp, or of_string may be equal to previously created values.

    include Hashable

    include Intable

    include Stringable

    val create : unit -> t

Always returns a value that is not equal to any other value created with `create`.

    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.writer

CAVEAT: Values created with of_float, of_sexp, or of_string may be equal to previously created values.
Always returns a value that is not equal to any other value created with `create`.