module Name: sig end
Datatype of strings with constant equality
Author(s): Harald Ruess
type t
Representation of strings with constant time equality.
Notice that
Tools.do_at_reset
flushes internal structures
and therefor invalidates any use of names. In particular,
names should never be used in global variables.
val of_string : string -> t
of_string s
constructs a name with associated string s
.
val to_string : t -> string
to_string n
returns the string associated with n
.
val eq : t -> t -> bool
eq n m
holds if the strings associated with n
and m
are
equal. This test has constant runtime.
val compare : t -> t -> int
If s
(t
) is the string associated to n
(m
), then
compare n m
equals 0
iff eq n m
. Furthermore, if compare n m
equals i
, then compare m n
equals -i
.
val pp : t Pretty.printer
Pretty-printing of names.
Parameters: |
fmt |
: |
Format.formatter
|
(s,()) |
: |
string * 'a
|
|
val hash : t -> int
Return hash values for names n
. Not injective.
module Set: sig end
Sets of names.
module Map: sig end
Maps with names in the domain.
module Hash: sig end
Hash table with names as keys.