sig
  type t = { var_vid : int; var_base : string; var_tau : LogicTau.tau; }
  type pool = int Pervasives.ref
  val pool : unit -> int Pervasives.ref
  val basename : LogicRaw.VAR.t -> string
  val tau_of_var : LogicRaw.VAR.t -> LogicTau.tau
  val fresh : int Pervasives.ref -> string -> LogicTau.tau -> LogicRaw.VAR.t
  val freshen : int Pervasives.ref -> LogicRaw.VAR.t -> LogicRaw.VAR.t
  val different : LogicRaw.VAR.t -> LogicRaw.VAR.t -> bool
  val equal : LogicRaw.VAR.t -> LogicRaw.VAR.t -> bool
  val compare : LogicRaw.VAR.t -> LogicRaw.VAR.t -> int
  val hash : LogicRaw.VAR.t -> int
  val pretty : Format.formatter -> LogicRaw.VAR.t -> unit
end