sig
  type term = FOTerm.t
  type t = subst
  val find_exn : t -> var Scoped.t -> term Scoped.t
  val get_var : t -> var Scoped.t -> term Scoped.t option
  val deref : t -> term Scoped.t -> term Scoped.t
  val apply : t -> renaming:Renaming.t -> term Scoped.t -> term
  val apply_no_renaming : t -> term Scoped.t -> term
  val bind : t -> var Scoped.t -> term Scoped.t -> t
end