sig
  type var
  module VarTable :
    sig
      type key = var
      type 'a t
      val create : int -> 'a t
      val clear : 'a t -> unit
      val copy : 'a t -> 'a t
      val add : 'a t -> key -> '-> unit
      val remove : 'a t -> key -> unit
      val find : 'a t -> key -> 'a
      val find_all : 'a t -> key -> 'a list
      val replace : 'a t -> key -> '-> unit
      val mem : 'a t -> key -> bool
      val iter : (key -> '-> unit) -> 'a t -> unit
      val fold : (key -> '-> '-> 'b) -> 'a t -> '-> 'b
      val length : 'a t -> int
    end
  val create_universal : int -> Var.var
  val create_parametric : int -> Var.var
  val clone_renumbered : Var.var -> int -> Var.var
  val id_of_var : Var.var -> int
  val hash_of_var : Var.var -> int
  val is_universal : Var.var -> bool
  val is_parametric : Var.var -> bool
  val equal : Var.var -> Var.var -> bool
  val compare : Var.var -> Var.var -> int
  val to_string : Var.var -> string
end