type 'x set val empty : 'a1 set val is_empty: 'a1 set -> bool val mem : 'a1 -> 'a1 set -> bool val add : 'a1 -> 'a1 set -> 'a1 set val remove: 'a1 -> 'a1 set -> 'a1 set val cardinal: 'a1 set -> int val fold: ('a1 -> 'a -> 'a) -> 'a1 set -> 'a -> 'a val iter: ('a1 -> unit) -> 'a1 set -> unit val equal : 'a1 set -> 'a1 set -> bool val diff : 'a1 set -> 'a1 set -> 'a1 set val singleton : 'a1 -> 'a1 set val subset : 'a1 set -> 'a1 set -> bool val union : 'a1 set -> 'a1 set -> 'a1 set