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