sig
type t
val compare : t -> t -> int
val equal : t -> t -> bool
val hash : t -> int
val to_string : t -> string
val pp : Format.formatter -> t -> unit
val mk : Sl_heap.t -> Sl_pred.t -> t
val dest : t -> Sl_heap.t * Sl_pred.t
val vars : t -> Sl_term.Set.t
val predsym : t -> Sl_predsym.t
val arity : t -> int
val formals : t -> Sl_term.t list
val body : t -> Sl_heap.t
val freshen : Sl_term.Set.t -> t -> t
val subst : Sl_subst.t -> t -> t
val parse : (t, 'a) MParser.t
val unfold :
?gen_tags:bool -> Sl_term.Set.t * Tags.t -> Sl_tpred.t -> t -> Sl_heap.t
val fold : t -> Sl_heap.t -> (Sl_subst.t * Sl_heap.t) list
val memory_consuming : t -> bool
val constructively_valued : t -> bool
end