signature HASHTABLE = sig type 'a t exception Full and Exists val createLog: int -> 'a t val insert: 'a t -> string -> 'a -> unit val lookup: 'a t -> string -> 'a option val lookup2: 'a t -> string -> ('a -> 'a option * 'b) -> (unit -> 'b) -> 'b end