functor (T : TERM->
  sig
    type term = T.t
    type t
    val create : ?size:int -> unit -> t
    val clear : t -> unit
    val push : t -> unit
    val pop : t -> unit
    val stack_size : t -> int
    val find : t -> term -> term
    val iter : t -> (mem:term -> repr:term -> unit) -> unit
    val iter_roots : t -> (term -> unit) -> unit
    val mk_eq : t -> term -> term -> unit
    val mk_less : t -> term -> term -> unit
    val is_eq : t -> term -> term -> bool
    val is_less : t -> term -> term -> bool
    val cycles : t -> bool
  end