Module C3.Set
type elt = C3.tval empty : C3.Set.tval is_empty : C3.Set.t -> boolval mem : C3.Set.elt -> C3.Set.t -> boolval add : C3.Set.elt -> C3.Set.t -> C3.Set.tval singleton : C3.Set.elt -> C3.Set.tval remove : C3.Set.elt -> C3.Set.t -> C3.Set.tunion_sharing s1 s2 is union s1 s2, with maximal sharing of the result with s1.
union_shared s1 s2 is union_sharing s1 s2, with a fast path for shared subsets of s1 and s2.
diff_sharing s1 s2 is diff s1 s2, with maximal sharing of the result with s1.
diff_shared s1 s2 is diff_sharing s1 s2, with a fast path for shared subsets of s1 and s2.
val iter : (C3.Set.elt -> unit) -> C3.Set.t -> unitval map : (C3.Set.elt -> C3.Set.elt) -> C3.Set.t -> C3.Set.tval fold : (C3.Set.elt -> 'a -> 'a) -> C3.Set.t -> 'a -> 'aval for_all : (C3.Set.elt -> bool) -> C3.Set.t -> boolval exists : (C3.Set.elt -> bool) -> C3.Set.t -> boolval filter : (C3.Set.elt -> bool) -> C3.Set.t -> C3.Set.tval filter_map : (C3.Set.elt -> C3.Set.elt option) -> C3.Set.t -> C3.Set.tval partition : (C3.Set.elt -> bool) -> C3.Set.t -> C3.Set.t * C3.Set.tval cardinal : C3.Set.t -> intval elements : C3.Set.t -> C3.Set.elt listval min_elt : C3.Set.t -> C3.Set.eltval min_elt_opt : C3.Set.t -> C3.Set.elt optionval max_elt : C3.Set.t -> C3.Set.eltval max_elt_opt : C3.Set.t -> C3.Set.elt optionval choose : C3.Set.t -> C3.Set.eltval choose_opt : C3.Set.t -> C3.Set.elt optionval split : C3.Set.elt -> C3.Set.t -> C3.Set.t * bool * C3.Set.tval find : C3.Set.elt -> C3.Set.t -> C3.Set.eltval of_list : C3.Set.elt list -> C3.Set.tval to_seq : C3.Set.t -> C3.Set.elt Stdlib.Seq.tval print : Stdlib.Format.formatter -> C3.Set.t -> unitval to_string : C3.Set.t -> stringval get_singleton : C3.Set.t -> C3.Set.elt option