sig type 'a key val key : ?preprocess:('a -> 'a) -> unit -> 'a key val find : t -> 'a key -> 'a option val set : t -> 'a key -> 'a -> unit val unset : t -> 'a key -> unit type accessor = { accessor : 'a. 'a key -> 'a option; } end