sig
  type ('a, 'b) t
  val make : ('-> 'b) -> ('a, 'b) Cache.t
  val get : ('a, 'b) Cache.t -> '-> 'b
  val size : ('a, 'b) Cache.t -> int
  val clear : ('a, 'b) Cache.t -> unit
end