Module C2.Set
type elt = C2.tval empty : C2.Set.tval is_empty : C2.Set.t -> boolval mem : C2.Set.elt -> C2.Set.t -> boolval add : C2.Set.elt -> C2.Set.t -> C2.Set.tval singleton : C2.Set.elt -> C2.Set.tval remove : C2.Set.elt -> C2.Set.t -> C2.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 : (C2.Set.elt -> unit) -> C2.Set.t -> unitval map : (C2.Set.elt -> C2.Set.elt) -> C2.Set.t -> C2.Set.tval fold : (C2.Set.elt -> 'a -> 'a) -> C2.Set.t -> 'a -> 'aval for_all : (C2.Set.elt -> bool) -> C2.Set.t -> boolval exists : (C2.Set.elt -> bool) -> C2.Set.t -> boolval filter : (C2.Set.elt -> bool) -> C2.Set.t -> C2.Set.tval filter_map : (C2.Set.elt -> C2.Set.elt option) -> C2.Set.t -> C2.Set.tval partition : (C2.Set.elt -> bool) -> C2.Set.t -> C2.Set.t * C2.Set.tval cardinal : C2.Set.t -> intval elements : C2.Set.t -> C2.Set.elt listval min_elt : C2.Set.t -> C2.Set.eltval min_elt_opt : C2.Set.t -> C2.Set.elt optionval max_elt : C2.Set.t -> C2.Set.eltval max_elt_opt : C2.Set.t -> C2.Set.elt optionval choose : C2.Set.t -> C2.Set.eltval choose_opt : C2.Set.t -> C2.Set.elt optionval split : C2.Set.elt -> C2.Set.t -> C2.Set.t * bool * C2.Set.tval find : C2.Set.elt -> C2.Set.t -> C2.Set.eltval of_list : C2.Set.elt list -> C2.Set.tval to_seq : C2.Set.t -> C2.Set.elt Stdlib.Seq.tval print : Stdlib.Format.formatter -> C2.Set.t -> unitval to_string : C2.Set.t -> stringval get_singleton : C2.Set.t -> C2.Set.elt option