Emitter.Make_tableTable indexing: key -> emitter (or equivalent data) -> value. Quick access + handle cleaning in the right way (only remove relevant bindings when required.
module H : Datatype.Hashtblmodule E : sig ... endmodule D : Datatype.Smodule _ : sig ... endtype internal_tbl = D.t E.Hashtbl.tval self : State.tval add : H.key -> internal_tbl -> unitval find : H.key -> internal_tblval mem : H.key -> boolval iter : (H.key -> internal_tbl -> unit) -> unitval fold : (H.key -> internal_tbl -> 'a -> 'a) -> 'a -> 'aval to_seq : unit -> (H.key * internal_tbl) Seq.tval iter_sorted :
cmp:(H.key -> H.key -> int) ->
(H.key -> internal_tbl -> unit) ->
unitval fold_sorted :
cmp:(H.key -> H.key -> int) ->
(H.key -> internal_tbl -> 'a -> 'a) ->
'a ->
'aval remove : H.key -> unitRegister a hook to be applied whenever a binding is removed from the table.