sig val general : ?hashable:'a Std_internal.Hashtbl.Hashable.t -> ?cache_size_bound:int -> ('a -> 'b) -> 'a -> 'b val unit : (unit -> 'a) -> unit -> 'a end