var.mli 814 Bytes
Newer Older
1

2 3
include Custom.T
type var = t
4

5
val pp : Format.formatter -> t -> unit
6
val mk : string -> t
7
val id : t -> string
8 9 10
val fresh : t -> t
val is_fresh : t -> bool
(*
11
val is_internal : t -> bool
12
*)
13 14

module Set : sig
15
  include Custom.T
16
  val dump : Format.formatter -> t -> unit
17
  val pp : Format.formatter -> t -> unit
18
  val printf : t -> unit
19
  val is_empty : t -> bool
20
  val empty : t
21 22 23 24 25 26 27 28 29
  val singleton : var -> t
  val union : t -> t -> t
  val diff : t -> t -> t
  val mem : var -> t -> bool
  val add : var -> t -> t
  val inter : t -> t -> t
  val subset : t -> t -> bool
  val cardinal : t -> int
  val from_list : var list -> t
30
  val fold : ('a -> var -> 'a) -> 'a -> t -> 'a
31
  val choose : t -> var
32 33
end

34 35 36
type 'a pairvar = [ `Atm of 'a | `Var of t ]

module Make (X : Custom.T) : Custom.T with type t = X.t pairvar