sig
type t = Domain.t
val empty : SetDomain.S.t
val is_empty : SetDomain.S.t -> bool
val mem : int -> SetDomain.S.t -> bool
val add : int -> SetDomain.S.t -> SetDomain.S.t
val singleton : int -> SetDomain.S.t
val remove : int -> SetDomain.S.t -> SetDomain.S.t
val union : SetDomain.S.t -> SetDomain.S.t -> SetDomain.S.t
val inter : SetDomain.S.t -> SetDomain.S.t -> SetDomain.S.t
val diff : SetDomain.S.t -> SetDomain.S.t -> SetDomain.S.t
val compare : SetDomain.S.t -> SetDomain.S.t -> int
val equal : SetDomain.S.t -> SetDomain.S.t -> bool
val subset : SetDomain.S.t -> SetDomain.S.t -> bool
val iter : (int -> unit) -> SetDomain.S.t -> unit
val cardinal : SetDomain.S.t -> int
val elements : SetDomain.S.t -> int list
val min_elt : SetDomain.S.t -> int
val max_elt : SetDomain.S.t -> int
val choose : SetDomain.S.t -> int
val remove_up : int -> SetDomain.S.t -> SetDomain.S.t
val remove_low : int -> SetDomain.S.t -> SetDomain.S.t
end