sig
  type ('a, 'b) t
  val create : int -> ('a, 'b) Memo.t
  val get :
    ('a, 'b) Memo.t -> ('-> '-> bool) -> '-> int -> 'Lazy.t -> 'b
  val clear : ('a, 'b) Memo.t -> unit
end