Up

Module Int () : 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

Signature

type t = private int

The sexps and strings look like integers.

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__ : (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
include Core_kernel.Comparable.S_binable with type t := t
include Comparable_intf.S_common
include Comparable_intf.Polymorphic_compare
include 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
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 Or_error.t
include Comparator.S with type t := t
type t
type comparator_witness
include Comparable_intf.Validate with type t := t
type t
val validate_lbound : min:t Maybe_bound.t -> t Validate.check
val validate_ubound : max:t Maybe_bound.t -> t Validate.check
val validate_bound : min:t Maybe_bound.t -> max:t Maybe_bound.t -> t Validate.check
include Comparable_intf.Map_and_set_binable with type t := t with type comparator_witness := comparator_witness
type t
include Comparator.S with type t := t
type t
type comparator_witness
include Core_kernel.Std_internal.Hashable with type t := t
type t
val hash : t -> int
val compare : t -> t -> int
module Table : Hashable.Hashtbl.S with type key = t
module Hash_set : Core_kernel.Hash_set.S with type elt = 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 : unit -> t

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