sig
  val add :
    Term.constr -> Term.constr -> Term.constr -> Term.constr -> Term.constr
  val empty : Term.constr -> Term.constr
  val of_list :
    Term.constr -> Term.constr -> (int * Term.constr) list -> Term.constr
  val to_fun : Term.constr -> Term.constr -> Term.constr -> Term.constr
end