var.mli 867 Bytes
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
module V : sig
  type t
  val make_id : ?fresh:bool -> string -> t
  val dump : Format.formatter -> t -> unit
  val compare : t -> t -> int
  val equal : t -> t -> bool
  val hash : t -> int
end

type var = [ `Var of V.t ]

val dump : Format.formatter -> var -> unit
val print : Format.formatter -> var -> unit
val compare : var -> var -> int
val equal : var -> var -> bool
val hash : var -> int

val mk : ?fresh:bool -> string -> var
val fresh : ?pre:string -> unit -> var
val id : var -> string
val is_fresh : var -> bool

module Set : sig
  include Set.S with type elt = var
  val dump : Format.formatter -> t -> unit
  val print : Format.formatter -> t -> unit
  val is_empty : t -> bool
  val from_list : elt list -> t
end

type 'a pairvar = [ `Atm of 'a | var ]
module type MAKE = functor (X : Custom.T) -> Custom.T with type t = X.t pairvar
module Make : MAKE