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