sig   type ('a, 'b) manual_cache = {     get : 'a -> 'b;     del : 'a -> unit;     enum : unit -> ('a * 'b) BatEnum.t;   }   val make_ht :     gen:('a -> 'b) -> init_size:int -> ('a, 'b) BatCache.manual_cache   val make_map : gen:('a -> 'b) -> ('a, 'b) BatCache.manual_cache   type ('a, 'b) auto_cache = 'a -> 'b   val lru_cache : gen:('a -> 'b) -> cap:int -> ('a, 'b) BatCache.auto_cache end