sig
type 'a lru
val create : int -> ('a -> unit) -> 'a Lru.lru
val touch : 'a Lru.lru -> 'a -> unit
val clear : 'a Lru.lru -> unit
val size : 'a Lru.lru -> int
val change_size : 'a Lru.lru -> int -> unit
val in_cache : 'a -> 'a Lru.lru -> bool
val memoize :
?destruct:('a -> unit) -> int -> ('b -> 'a) -> 'b Lru.lru * ('b -> 'a)
end