Least recently used caching
val find : ('k, 'v) t ‑> 'k ‑> 'v optionval add : ('k, 'v) t ‑> key:'k ‑> data:'v ‑> unitval remove : ('k, _) t ‑> 'k ‑> unitval clear : (_, _) t ‑> unitval create : destruct:('v ‑> unit) option ‑> int ‑> ('k, 'v) tval call_with_cache : cache:('a, 'b) memo ‑> ('a ‑> 'b) ‑> 'a ‑> 'bval memoize : ?destruct:('b ‑> unit) ‑> ('a ‑> 'b) ‑> int ‑> ('a, 'b) memo * ('a ‑> 'b)