functor (H0 : Cacheable) ->
  functor (H1 : Cacheable) ->
    sig
      val clear : unit -> unit
      val merge : (H0.t -> H1.t -> bool) -> H0.t -> H1.t -> bool
    end