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.