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