var.mli 869 Bytes
Newer Older
1
module V : sig
2
  include Custom.T
3
  val make_id : ?repr:string -> string -> t
4 5 6 7
end

type var = [ `Var of V.t ]

8
include Custom.T with type t = var
9

10
val pp : Format.formatter -> var -> unit
11
val mk : ?repr:string -> string -> var
12 13 14 15
val fresh : ?pre:string -> unit -> var
val id : var -> string

module Set : sig
16
  include Custom.T
17
  val dump : Format.formatter -> t -> unit
18
  val pp : Format.formatter -> t -> unit
19
  val printf : t -> unit
20
  val is_empty : t -> bool
21 22 23 24 25 26 27 28 29 30
  val empty : t 
  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
31 32 33 34 35
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