class cache : (A.key -> A.value Lwt.t) -> ?timer:float -> int -> object..end
new cache finder ?timer size creates a cache object where finder is the function responsible for retrieving non-cached data, timer (if any) is the life span of cached values (in seconds) (values in the cache are removed after their time is up) and size is the upper bound to the number of simultaneoulsy cached elements.
Whenever a value is found (using find method), it's lifespan is set to timer (or not if the cache is not time bounded). If the value was already cached, it's lifespan is reset to timer.
Using timer allow one to create a cache bounded both in space and time. It is to be noted that real lifespan of values is always slightly greater than timer.
method find : A.key -> A.value Lwt.t
Find the cached value associated to the key, or binds this value in the cache using the function finder passed as argument to create, and returns this value
method find_in_cache : A.key -> A.value
Find the cached value associated to the key. Raises Not_found if the key is not present in the cache
method remove : A.key -> unit
method add : A.key -> A.value -> unit
method clear : unit -> unit
method size : int