sig
  type t
  val equal : Congruence.TERM.t -> Congruence.TERM.t -> bool
  val hash : Congruence.TERM.t -> int
  val subterms : Congruence.TERM.t -> Congruence.TERM.t list
  val update_subterms :
    Congruence.TERM.t -> Congruence.TERM.t list -> Congruence.TERM.t
end