Module CoreAlgebra.RowLabel (.ml)

module RowLabel: sig .. end
The universe of row labels. This is an ordered, printable abstract type t. The ordering is used during unification, see Unifier. The ability to print row labels is used during pretty printing.

type t 
A row label is an object of type t, that is, an integer.
val compare : t -> t -> int
compare x y is a total ordering. It returns a negative integer if x is less than y, 0 if x and y are equal, and a positive integer if x is greater than y.
val export : t -> CoreAlgebra.lname
export i provides access to the inverse of the global mapping, that is, associates a unique identifier with every label. The identifier associated with a label is the one originally supplied to import.
val import : CoreAlgebra.lname -> t
import s associates a unique label with the identifier s, possibly extending the global mapping if s was never encountered so far. Thus, if s and t are equal strings, possibly allocated in different memory locations, import s and import t return the same label. The identifier s is recorded and may be later recovered via export.