sig
  type t = string * int option * Formula.tau * Cil_types.logic_type option
  val var_type : 'a * 'b * 'c * '-> 'c
  val var_name : string * int option * 'a * '-> string
  val basename : 'a * 'b * 'c * '-> 'a
  val kind_of_var :
    'a * 'b * Formula.tau * Cil_types.logic_type option -> Formula.kind
  val var_counter : int Pervasives.ref
  val check_cpt : int -> unit
  val fresh_named_var : '-> '-> 'a * int option * 'b * 'c option
  val fresh_var : 'a * 'b * 'c * '-> 'a * int option * 'c * 'e option
  val mk : '-> int option -> '-> '-> 'a * int option * 'b * 'c
  val ident_named_var : '-> int -> '-> 'a * int option * 'b * 'c option
  val equal : 'a * 'b * 'c * '-> 'a * 'b * 'e * '-> bool
  val compare :
    String.t * 'a option * 'b * '-> String.t * 'a option * 'd * '-> int
end