sig
  type t = Term.t * Term.t * Jst.t
  val lhs_of : Fact.Equal.t -> Term.t
  val rhs_of : Fact.Equal.t -> Term.t
  val pp : Fact.Equal.t Pretty.printer
  val make : Term.t -> Term.t -> Jst.t -> Fact.Equal.t
  val both_sides : (Term.t -> bool) -> Fact.Equal.t -> bool
  val is_var : Fact.Equal.t -> bool
  val is_pure : Th.t -> Fact.Equal.t -> bool
  val status : Fact.Equal.t -> Term.status
  val map2 : Jst.Eqtrans.t * Jst.Eqtrans.t -> Fact.Equal.t -> Fact.Equal.t
  val map : Jst.Eqtrans.t -> Fact.Equal.t -> Fact.Equal.t
  val map_lhs : Jst.Eqtrans.t -> Fact.Equal.t -> Fact.Equal.t
  val map_rhs : Jst.Eqtrans.t -> Fact.Equal.t -> Fact.Equal.t
end