sig
type 'a equal = 'a -> 'a -> bool
type 'a hash = 'a -> int
type ('a, 'b) t
val clear : ('a, 'b) CCCache.t -> unit
type ('a, 'b) callback = in_cache:bool -> 'a -> 'b -> unit
val with_cache :
?cb:('a, 'b) CCCache.callback ->
('a, 'b) CCCache.t -> ('a -> 'b) -> 'a -> 'b
val with_cache_rec :
?cb:('a, 'b) CCCache.callback ->
('a, 'b) CCCache.t -> (('a -> 'b) -> 'a -> 'b) -> 'a -> 'b
val size : ('a, 'b) CCCache.t -> int
val iter : ('a, 'b) CCCache.t -> ('a -> 'b -> unit) -> unit
val dummy : ('a, 'b) CCCache.t
val linear : ?eq:'a CCCache.equal -> int -> ('a, 'b) CCCache.t
val replacing :
?eq:'a CCCache.equal ->
?hash:'a CCCache.hash -> int -> ('a, 'b) CCCache.t
val lru :
?eq:'a CCCache.equal ->
?hash:'a CCCache.hash -> int -> ('a, 'b) CCCache.t
val unbounded :
?eq:'a CCCache.equal ->
?hash:'a CCCache.hash -> int -> ('a, 'b) CCCache.t
end