include CCSet.S with type Set.elt = rule
type elt = ruletype t
val empty : tval is_empty : t -> boolval mem : elt -> t -> boolval add : elt -> t -> tval singleton : elt -> tval remove : elt -> t -> tval union : t -> t -> tval inter : t -> t -> tval diff : t -> t -> tval compare : t -> t -> intval equal : t -> t -> boolval subset : t -> t -> boolval iter : (elt -> unit) -> t -> unitval map : (elt -> elt) -> t -> tval fold : (elt -> 'a -> 'a) -> t -> 'a -> 'aval for_all : (elt -> bool) -> t -> boolval exists : (elt -> bool) -> t -> boolval filter : (elt -> bool) -> t -> tval partition : (elt -> bool) -> t -> t * tval cardinal : t -> intval elements : t -> elt listval min_elt : t -> eltval max_elt : t -> eltval choose : t -> eltval split : elt -> t -> t * bool * tval find : elt -> t -> eltval min_elt_opt : t -> elt optionval max_elt_opt : t -> elt optionval choose_opt : t -> elt optionval find_opt : elt -> t -> elt optionval find_first : (elt -> bool) -> t -> eltval find_first_opt : (elt -> bool) -> t -> elt optionval find_last : (elt -> bool) -> t -> eltval find_last_opt : (elt -> bool) -> t -> elt optionval of_seq : elt CCSet.sequence -> tval add_seq : t -> elt CCSet.sequence -> tval to_seq : t -> elt CCSet.sequenceval of_list : elt list -> tval add_list : t -> elt list -> tval to_list : t -> elt listval to_string : ?start:string -> ?stop:string -> ?sep:string -> (elt -> string) -> t -> stringval pp : ?start:string -> ?stop:string -> ?sep:string -> elt CCSet.printer -> t CCSet.printer
val pp : t CCFormat.printer