sig   type 'a sequence = ('-> unit) -> unit   module type S =     sig       type elt       type t       val empty : CCMultiSet.S.t       val is_empty : CCMultiSet.S.t -> bool       val mem : CCMultiSet.S.t -> CCMultiSet.S.elt -> bool       val count : CCMultiSet.S.t -> CCMultiSet.S.elt -> int       val singleton : CCMultiSet.S.elt -> CCMultiSet.S.t       val add : CCMultiSet.S.t -> CCMultiSet.S.elt -> CCMultiSet.S.t       val remove : CCMultiSet.S.t -> CCMultiSet.S.elt -> CCMultiSet.S.t       val add_mult :         CCMultiSet.S.t -> CCMultiSet.S.elt -> int -> CCMultiSet.S.t       val remove_mult :         CCMultiSet.S.t -> CCMultiSet.S.elt -> int -> CCMultiSet.S.t       val remove_all : CCMultiSet.S.t -> CCMultiSet.S.elt -> CCMultiSet.S.t       val update :         CCMultiSet.S.t -> CCMultiSet.S.elt -> (int -> int) -> CCMultiSet.S.t       val min : CCMultiSet.S.t -> CCMultiSet.S.elt       val max : CCMultiSet.S.t -> CCMultiSet.S.elt       val union : CCMultiSet.S.t -> CCMultiSet.S.t -> CCMultiSet.S.t       val meet : CCMultiSet.S.t -> CCMultiSet.S.t -> CCMultiSet.S.t       val intersection : CCMultiSet.S.t -> CCMultiSet.S.t -> CCMultiSet.S.t       val diff : CCMultiSet.S.t -> CCMultiSet.S.t -> CCMultiSet.S.t       val contains : CCMultiSet.S.t -> CCMultiSet.S.t -> bool       val compare : CCMultiSet.S.t -> CCMultiSet.S.t -> int       val equal : CCMultiSet.S.t -> CCMultiSet.S.t -> bool       val cardinal : CCMultiSet.S.t -> int       val iter : CCMultiSet.S.t -> (int -> CCMultiSet.S.elt -> unit) -> unit       val fold :         CCMultiSet.S.t -> '-> ('-> int -> CCMultiSet.S.elt -> 'b) -> 'b       val of_list : CCMultiSet.S.elt list -> CCMultiSet.S.t       val to_list : CCMultiSet.S.t -> CCMultiSet.S.elt list       val to_seq : CCMultiSet.S.t -> CCMultiSet.S.elt CCMultiSet.sequence       val of_seq : CCMultiSet.S.elt CCMultiSet.sequence -> CCMultiSet.S.t       val of_list_mult : (CCMultiSet.S.elt * int) list -> CCMultiSet.S.t       val to_list_mult : CCMultiSet.S.t -> (CCMultiSet.S.elt * int) list       val to_seq_mult :         CCMultiSet.S.t -> (CCMultiSet.S.elt * int) CCMultiSet.sequence       val of_seq_mult :         (CCMultiSet.S.elt * int) CCMultiSet.sequence -> CCMultiSet.S.t     end   module Make :     functor (O : Set.OrderedType->       sig         type elt = O.t         type t         val empty : t         val is_empty : t -> bool         val mem : t -> elt -> bool         val count : t -> elt -> int         val singleton : elt -> t         val add : t -> elt -> t         val remove : t -> elt -> t         val add_mult : t -> elt -> int -> t         val remove_mult : t -> elt -> int -> t         val remove_all : t -> elt -> t         val update : t -> elt -> (int -> int) -> t         val min : t -> elt         val max : t -> elt         val union : t -> t -> t         val meet : t -> t -> t         val intersection : t -> t -> t         val diff : t -> t -> t         val contains : t -> t -> bool         val compare : t -> t -> int         val equal : t -> t -> bool         val cardinal : t -> int         val iter : t -> (int -> elt -> unit) -> unit         val fold : t -> '-> ('-> int -> elt -> 'b) -> 'b         val of_list : elt list -> t         val to_list : t -> elt list         val to_seq : t -> elt sequence         val of_seq : elt sequence -> t         val of_list_mult : (elt * int) list -> t         val to_list_mult : t -> (elt * int) list         val to_seq_mult : t -> (elt * int) sequence         val of_seq_mult : (elt * int) sequence -> t       end end