sig
  type t = Tags.Elt.t * Sl_pred.t
  val compare : t -> t -> int
  val equal : t -> t -> bool
  val hash : t -> int
  val pp : Format.formatter -> t -> unit
  val equal_upto_tags : t -> t -> bool
  val subst : Sl_subst.t -> t -> t
  val subst_tag : Tagpairs.t -> t -> t
  val predsym : t -> Sl_predsym.t
  val arity : t -> int
  val args : t -> Sl_term.t list
  val tag : t -> Tags.Elt.t
  val tags : t -> Tags.t
  val terms : t -> Sl_term.Set.t
  val vars : t -> Sl_term.Set.t
  val is_tagged : t -> bool
  val tag_is_free : t -> bool
  val tag_is_exist : t -> bool
  val to_string : t -> string
  val to_melt : t -> Latex.t
  val parse : ?allow_tags:bool -> (t, 'a) MParser.parser
  val of_string : string -> t
  val unify :
    ?tagpairs:bool ->
    ?update_check:Sl_unify.Unidirectional.update_check ->
    t Sl_unify.Unidirectional.unifier
  val biunify :
    ?tagpairs:bool ->
    ?update_check:Sl_unify.Bidirectional.update_check ->
    t Sl_unify.Bidirectional.unifier
  val norm : Sl_uf.t -> t -> t
end