Module Caches.CallCache

module Table : sig ... end
type slot = {
  1. mutable key : CallEntry.t;
  2. mutable ref : bool;
}
type !'a t = {
  1. table : ('a * int) Table.t;
  2. clock : slot array;
  3. occ : bool array;
  4. capacity : int;
  5. mutable count : int;
  6. mutable hand : int;
  7. mutable fill : int;
  8. mutable touched : int;
}
val create : size:int -> 'a t
val size : 'a t -> int
val empty : 'a t -> unit
val find : 'a t -> CallEntry.t -> 'a option
val evict : 'a t -> int
val add : 'a t -> CallEntry.t -> 'a -> unit