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) -> MultiSetList.S.t -> '-> 'a
  val fold_right :
    (MultiSetList.S.elt * int -> '-> 'a) -> MultiSetList.S.t -> '-> 'a
  val fold_left :
    ('-> MultiSetList.S.elt * int -> '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