Module Core_kernel.Unique_id.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

Signature

type t = private Core_kernel__.Import.int

The sexps and strings look like integers.

include sig ... end
val typerep_of_t : t Typerep_lib.Std.Typerep.t
val typename_of_t : t Typerep_lib.Std.Typename.t
val t_of_sexp : Sexplib.Sexp.t ‑> t
val sexp_of_t : t ‑> Sexplib.Sexp.t
val bin_read_t : t Bin_prot.Read.reader
val __bin_read_t__ : (Core_kernel__.Import.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
val bin_shape_t : Bin_prot.Shape.t

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

include Comparable.S_binable with type t := t
include Core_kernel__.Comparable_intf.S_common
include Base.Comparable_intf.S
include Base.Comparable_intf.Polymorphic_compare
include Base.Polymorphic_compare_intf.Infix
type t
val (>=) : t ‑> t ‑> bool
val (<=) : t ‑> t ‑> bool
val (=) : t ‑> t ‑> bool
val (>) : t ‑> t ‑> bool
val (<) : t ‑> t ‑> bool
val (<>) : t ‑> t ‑> bool
val equal : t ‑> t ‑> bool
val compare : t ‑> t ‑> int

-1 means "less than", 0 means "equal", 1 means "greater than", and other values should not be returned

val min : t ‑> t ‑> t
val max : t ‑> t ‑> t
val ascending : t ‑> t ‑> int

ascending is identical to compare. descending x y = ascending y x. These are intended to be mnemonic when used like List.sort ~cmp:ascending and List.sort ~cmp:descending, since they cause the list to be sorted in ascending or descending order, respectively.

val descending : t ‑> t ‑> int
val between : t ‑> low:t ‑> high:t ‑> bool
val clamp_exn : t ‑> min:t ‑> max:t ‑> t

clamp_exn t ~min ~max returns t', the closest value to t such that between t' ~low:min ~high:max is true.

Raises if not (min <= max).

val clamp : t ‑> min:t ‑> max:t ‑> t Base.Or_error.t
include Base.Comparator.S with type t := t
type t
type comparator_witness
include Base.Comparable_intf.Validate with type t := t
type t
val validate_lbound : min:t Base.Maybe_bound.t ‑> t Base.Validate.check
val validate_ubound : max:t Base.Maybe_bound.t ‑> t Base.Validate.check
val validate_bound : min:t Base.Maybe_bound.t ‑> max:t Base.Maybe_bound.t ‑> t Base.Validate.check
include Core_kernel__.Std_internal.Hashable with type t := t
include Hashable.Common
type t
val hash : t ‑> Core_kernel__.Import.int
val compare : t ‑> t ‑> Core_kernel__.Import.int
module Table : Hashable.Hashtbl.S with type key = t
module Hash_set : Hash_set.S with type elt = t
module Hash_queue : Hash_queue.S with type Key.t = t
include Core_kernel__.Std_internal.Intable with type t := t
type t
val of_int_exn : int ‑> t
val to_int_exn : t ‑> int
include Core_kernel__.Std_internal.Stringable with type t := t
type t
val of_string : string ‑> t
val to_string : t ‑> string
val create : Core_kernel__.Import.unit ‑> t

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