sig
type t = int * Cis.t
val cardinal : 'a * 'b -> 'a
val empty : int * Cis.t
val mem : int -> 'a * Cis.t -> bool
val singleton : int -> int * Cis.t
val add : int -> int * Cis.t -> int * Cis.t
val remove : int -> int * Cis.t -> int * Cis.t
val union : 'a * Cis.t -> 'b * Cis.t -> int * Cis.t
val diff : 'a * Cis.t -> 'b * Cis.t -> int * Cis.t
val elements : 'a * Cis.t -> int list
end