module StringTbl: sig
.. end
Heterogeneous tables indexed by string
type 'a
ty = 'a Type.t
type
t
Type of heterogeneous (hash)tables indexed by string.
Type values ensure type safety.
val create : int -> t
create n
creates a new table of initial size n
.
val add : t -> string -> 'a ty -> 'a -> 'a
add tbl s ty v
binds s
to the value v
in the table tbl
.
If the returned value is a closure whose the type of one of its
argument was dynamically registered, then it may raise
Incompatible_Type
.
Raises AlreadyExists
if s
is already bound in tbl
.
Returns the exact value stored in the table which is observationally
equal to v
but it deals better with dynamic types.
exception Unbound_value of string
exception Incompatible_type of string
val find : t -> string -> 'a ty -> 'a
find tbl s ty
returns the binding of
s
in the table
tbl
.
RaisesUnbound_value
if s
is not bound in tbl
.
Incompatible_Type
if ty
was not the type value used to add
the binding of s
in tbl
.