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