sig
module type S =
sig
type elt
type t
val empty : Ptset.S.t
val is_empty : Ptset.S.t -> bool
val mem : Ptset.S.elt -> Ptset.S.t -> bool
val add : Ptset.S.elt -> Ptset.S.t -> Ptset.S.t
val singleton : Ptset.S.elt -> Ptset.S.t
val remove : Ptset.S.elt -> Ptset.S.t -> Ptset.S.t
val union : Ptset.S.t -> Ptset.S.t -> Ptset.S.t
val inter : Ptset.S.t -> Ptset.S.t -> Ptset.S.t
val diff : Ptset.S.t -> Ptset.S.t -> Ptset.S.t
val equal : Ptset.S.t -> Ptset.S.t -> bool
val subset : Ptset.S.t -> Ptset.S.t -> bool
val iter : (Ptset.S.elt -> unit) -> Ptset.S.t -> unit
val fold : (Ptset.S.elt -> 'a -> 'a) -> Ptset.S.t -> 'a -> 'a
val exists : (Ptset.S.elt -> bool) -> Ptset.S.t -> bool
val filter : (Ptset.S.elt -> bool) -> Ptset.S.t -> Ptset.S.t
val cardinal : Ptset.S.t -> int
end
module Make :
functor
(X : sig
type t
val id : Ptset.Make.t -> int
val name : string
val pretty : Format.formatter -> Ptset.Make.t -> unit
end) ->
sig
type elt = X.t
type t
val empty : t
val is_empty : t -> bool
val mem : elt -> t -> bool
val add : elt -> t -> t
val singleton : elt -> t
val remove : elt -> t -> t
val union : t -> t -> t
val inter : t -> t -> t
val diff : t -> t -> t
val equal : t -> t -> bool
val subset : t -> t -> bool
val iter : (elt -> unit) -> t -> unit
val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
val exists : (elt -> bool) -> t -> bool
val filter : (elt -> bool) -> t -> t
val cardinal : t -> int
end
end