sig
type 'a t
val of_set : 'a SetList.t -> 'a MultiSetList.t
val to_set : 'a MultiSetList.t -> 'a SetList.t
val empty : 'a MultiSetList.t
val is_empty : 'a MultiSetList.t -> bool
val mem : 'a -> 'a MultiSetList.t -> bool
val mult : 'a -> 'a MultiSetList.t -> int
val singleton : 'a * int -> 'a MultiSetList.t
val add : 'a * int -> 'a MultiSetList.t -> 'a MultiSetList.t
val remove : 'a * int -> 'a MultiSetList.t -> 'a MultiSetList.t
val union : 'a MultiSetList.t -> 'a MultiSetList.t -> 'a MultiSetList.t
val inter : 'a MultiSetList.t -> 'a MultiSetList.t -> 'a MultiSetList.t
val diff : 'a MultiSetList.t -> 'a MultiSetList.t -> 'a MultiSetList.t
val union_set : 'a MultiSetList.t -> 'a SetList.t -> 'a MultiSetList.t
val inter_set : 'a MultiSetList.t -> 'a SetList.t -> 'a MultiSetList.t
val diff_set : 'a MultiSetList.t -> 'a SetList.t -> 'a MultiSetList.t
val compare : 'a MultiSetList.t -> 'a MultiSetList.t -> int
val equal : 'a MultiSetList.t -> 'a MultiSetList.t -> bool
val subset : 'a MultiSetList.t -> 'a MultiSetList.t -> bool
val iter : ('a * int -> unit) -> 'a MultiSetList.t -> unit
val fold : ('a * int -> 'b -> 'b) -> 'a MultiSetList.t -> 'b -> 'b
val fold_right : ('a * int -> 'b -> 'b) -> 'a MultiSetList.t -> 'b -> 'b
val fold_left : ('a -> 'b * int -> 'a) -> 'a -> 'b MultiSetList.t -> 'a
val filter : ('a -> bool) -> 'a MultiSetList.t -> 'a MultiSetList.t
val partition :
('a -> bool) ->
'a MultiSetList.t -> 'a MultiSetList.t * 'a MultiSetList.t
val cardinal : 'a MultiSetList.t -> int
val elements : 'a MultiSetList.t -> 'a SetList.t
val min_elt : 'a MultiSetList.t -> 'a
val max_elt : 'a MultiSetList.t -> 'a
val min : 'a MultiSetList.t -> 'a * int
val max : 'a MultiSetList.t -> 'a * int
val mins : 'a MultiSetList.t -> 'a SetList.t * int
val maxs : 'a MultiSetList.t -> 'a SetList.t * int
val choose : 'a MultiSetList.t -> 'a
val print :
?first:(unit, Format.formatter, unit) Pervasives.format ->
?sep:(unit, Format.formatter, unit) Pervasives.format ->
?last:(unit, Format.formatter, unit) Pervasives.format ->
(Format.formatter -> 'a -> unit) ->
Format.formatter -> 'a MultiSetList.t -> unit
module type S =
sig
type elt
type t
val empty : MultiSetList.S.t
val is_empty : MultiSetList.S.t -> bool
val mem : MultiSetList.S.elt -> MultiSetList.S.t -> bool
val mult : MultiSetList.S.elt -> MultiSetList.S.t -> int
val singleton : MultiSetList.S.elt * int -> MultiSetList.S.t
val add :
MultiSetList.S.elt * int -> MultiSetList.S.t -> MultiSetList.S.t
val remove :
MultiSetList.S.elt * int -> MultiSetList.S.t -> MultiSetList.S.t
val union : MultiSetList.S.t -> MultiSetList.S.t -> MultiSetList.S.t
val inter : MultiSetList.S.t -> MultiSetList.S.t -> MultiSetList.S.t
val diff : MultiSetList.S.t -> MultiSetList.S.t -> MultiSetList.S.t
val union_set :
MultiSetList.S.t -> MultiSetList.S.elt SetList.t -> MultiSetList.S.t
val inter_set :
MultiSetList.S.t -> MultiSetList.S.elt SetList.t -> MultiSetList.S.t
val diff_set :
MultiSetList.S.t -> MultiSetList.S.elt SetList.t -> MultiSetList.S.t
val compare : MultiSetList.S.t -> MultiSetList.S.t -> int
val equal : MultiSetList.S.t -> MultiSetList.S.t -> bool
val subset : MultiSetList.S.t -> MultiSetList.S.t -> bool
val iter :
(MultiSetList.S.elt * int -> unit) -> MultiSetList.S.t -> unit
val fold :
(MultiSetList.S.elt * int -> 'a -> 'a) ->
MultiSetList.S.t -> 'a -> 'a
val fold_right :
(MultiSetList.S.elt * int -> 'a -> 'a) ->
MultiSetList.S.t -> 'a -> 'a
val fold_left :
('a -> MultiSetList.S.elt * int -> 'a) ->
'a -> MultiSetList.S.t -> 'a
val filter :
(MultiSetList.S.elt -> bool) -> MultiSetList.S.t -> MultiSetList.S.t
val partition :
(MultiSetList.S.elt -> bool) ->
MultiSetList.S.t -> MultiSetList.S.t * MultiSetList.S.t
val cardinal : MultiSetList.S.t -> int
val elements : MultiSetList.S.t -> MultiSetList.S.elt SetList.t
val min_elt : MultiSetList.S.t -> MultiSetList.S.elt
val max_elt : MultiSetList.S.t -> MultiSetList.S.elt
val min : MultiSetList.S.t -> MultiSetList.S.elt * int
val max : MultiSetList.S.t -> MultiSetList.S.elt * int
val mins : MultiSetList.S.t -> MultiSetList.S.elt SetList.t * int
val maxs : MultiSetList.S.t -> MultiSetList.S.elt SetList.t * int
val choose : MultiSetList.S.t -> MultiSetList.S.elt
val of_set : MultiSetList.S.elt SetList.t -> MultiSetList.S.t
val to_set : MultiSetList.S.t -> MultiSetList.S.elt SetList.t
val print :
?first:(unit, Format.formatter, unit) Pervasives.format ->
?sep:(unit, Format.formatter, unit) Pervasives.format ->
?last:(unit, Format.formatter, unit) Pervasives.format ->
(Format.formatter -> MultiSetList.S.elt -> unit) ->
Format.formatter -> MultiSetList.S.t -> unit
end
module Make :
functor (Ord : Set.OrderedType) ->
sig
type elt = Ord.t
type t
val empty : t
val is_empty : t -> bool
val mem : elt -> t -> bool
val mult : elt -> t -> int
val singleton : elt * int -> t
val add : elt * int -> t -> t
val remove : elt * int -> t -> t
val union : t -> t -> t
val inter : t -> t -> t
val diff : t -> t -> t
val union_set : t -> elt SetList.t -> t
val inter_set : t -> elt SetList.t -> t
val diff_set : t -> elt SetList.t -> t
val compare : t -> t -> int
val equal : t -> t -> bool
val subset : t -> t -> bool
val iter : (elt * int -> unit) -> t -> unit
val fold : (elt * int -> 'a -> 'a) -> t -> 'a -> 'a
val fold_right : (elt * int -> 'a -> 'a) -> t -> 'a -> 'a
val fold_left : ('a -> elt * int -> 'a) -> 'a -> t -> 'a
val filter : (elt -> bool) -> t -> t
val partition : (elt -> bool) -> t -> t * t
val cardinal : t -> int
val elements : t -> elt SetList.t
val min_elt : t -> elt
val max_elt : t -> elt
val min : t -> elt * int
val max : t -> elt * int
val mins : t -> elt SetList.t * int
val maxs : t -> elt SetList.t * int
val choose : t -> elt
val of_set : elt SetList.t -> t
val to_set : t -> elt SetList.t
val print :
?first:(unit, Format.formatter, unit) format ->
?sep:(unit, Format.formatter, unit) format ->
?last:(unit, Format.formatter, unit) format ->
(Format.formatter -> elt -> unit) -> Format.formatter -> t -> unit
end
end