sig
  type t = Sl_term.t * Sl_term.FList.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 subst : Sl_subst.t -> t -> t
  val to_melt : t -> Latex.t
  val terms : t -> Sl_term.Set.t
  val vars : t -> Sl_term.Set.t
  val parse : (t, 'a) MParser.parser
  val unify :
    ?update_check:Sl_unify.Unidirectional.update_check ->
    t Sl_unify.Unidirectional.unifier
  val biunify :
    ?update_check:Sl_unify.Bidirectional.update_check ->
    t Sl_unify.Bidirectional.unifier
  val norm : Sl_uf.t -> t -> t
  val record_type : t -> Sl_term.t * int
end