A symbol identifies a constant provided by either:
- another compilation unit; or
- a top-level module.
sym_unit is the compilation unit containing the value. *
sym_label is the linkage name of the variable.
The label must be globally unique: two compilation units linked in the same program must not share labels.
include Identifiable.Thing with type t := T.t
include Hashtbl.HashedType with type t := T.t
val hash : T.t -> int
A hashing function on keys. It must be such that if two keys are equal according to
equal, then they have identical hash values as computed by
hash. Examples: suitable (
hash) pairs for arbitrary key types include
Hashtbl.hash) for comparing objects by structure (provided objects do not contain floats)
(fun x y -> compare x y = 0),
Hashtbl.hash) for comparing objects by structure and handling
Hashtbl.hash) for comparing objects by physical equality (e.g. for mutable or cyclic objects).
include Map.OrderedType with type t := T.t
A total ordering function over the keys. This is a two-argument function
f such that
f e1 e2 is zero if the keys
e2 are equal,
f e1 e2 is strictly negative if
e1 is smaller than
f e1 e2 is strictly positive if
e1 is greater than
e2. Example: a suitable ordering function is the generic structural comparison function