setr

Abstract domain library for sets
IN THIS PACKAGE

Parameters

module C : Comparable

Signature

type t
type elt = C.t
module ESet : sig ... end
module EMap : sig ... end
val empty : t
val is_empty : t -> bool
type rem =
| NoRepresentative
| SameRepresentative
| NewRepresentative of elt
val remove : elt -> t -> t * rem
val mem : elt -> t -> bool
val rep : elt -> t -> elt
val reps : t -> elt list
val elements : elt -> t -> ESet.t
val union : elt -> elt -> t -> t
val merge : t -> t -> t
val split : t -> t -> t
val diff : t -> t -> (elt * elt) list
val le : t -> t -> bool
val fold : ( elt -> elt -> 'a -> 'a ) -> t -> 'a -> 'a
val rename : elt SETr_Rename.t -> t -> t
val pairs : t -> (elt * elt) list