functor (H1 : Cacheable) -> functor (H2 : Cacheable) -> functor (R : Result) -> sig val clear : unit -> unit val merge : (unit -> R.t) -> H1.t -> H2.t -> R.t end