Module type Congruence.TERM

module type TERM = sig .. end

type t 
val equal : t -> t -> bool
Syntactic equality on terms
val hash : t -> int
Hash function on terms
val subterms : t -> t list
Subterms of the term (possibly empty list)
val update_subterms : t -> t list -> t
Replace immediate subterms by the given list. This is used to test for equality