sig
  type elt = MT.t
  type t = Libzipperposition.Multiset.Make(MT).t
  val size : t -> int
  val cardinal : t -> Z.t
  val empty : t
  val is_empty : t -> bool
  val mem : t -> elt -> bool
  val find : t -> elt -> Z.t
  val singleton : elt -> t
  val doubleton : elt -> elt -> t
  val add : t -> elt -> t
  val add_coeff : t -> elt -> Z.t -> t
  val union : t -> t -> t
  val intersection : t -> t -> t
  val sum : t -> t -> t
  val difference : t -> t -> t
  val product : Z.t -> t -> t
  val filter : (elt -> Z.t -> bool) -> t -> t
  val map : (elt -> elt) -> t -> t
  val map_coeff : (elt -> Z.t -> Z.t) -> t -> t
  val filter_map : (elt -> Z.t -> (elt * Z.t) option) -> t -> t
  val flat_map : (elt -> t) -> t -> t
  module Seq :
    sig
      val of_seq : t -> elt Sequence.t -> t
      val to_seq : t -> elt Sequence.t
      val of_coeffs : t -> (elt * Z.t) Sequence.t -> t
      val to_coeffs : t -> (elt * Z.t) Sequence.t
    end
  val iter : (elt -> unit) -> t -> unit
  val fold : ('-> elt -> 'a) -> '-> t -> 'a
  val iter_coeffs : (elt -> Z.t -> unit) -> t -> unit
  val fold_coeffs : ('-> elt -> Z.t -> 'a) -> '-> t -> 'a
  val for_all : (elt -> bool) -> t -> bool
  val exists : (elt -> bool) -> t -> bool
  val choose : t -> elt
  val of_list : elt list -> t
  val of_coeffs : (elt * Z.t) list -> t
  val of_iarray : elt Libzipperposition.IArray.t -> t
  val of_array : elt array -> t
  val to_list : t -> (elt * Z.t) list
  val eq : t -> t -> bool
  val cancel : t -> t -> t * t
  val compare : t -> t -> int
  val compare_partial :
    (elt -> elt -> Libzipperposition.Comparison.t) ->
    t -> t -> Libzipperposition.Comparison.t
  val is_max :
    (elt -> elt -> Libzipperposition.Comparison.t) -> elt -> t -> bool
  val max : (elt -> elt -> Libzipperposition.Comparison.t) -> t -> t
  val max_seq :
    (elt -> elt -> Libzipperposition.Comparison.t) ->
    t -> (elt, Z.t) Sequence.t2
  val max_l :
    (elt -> elt -> Libzipperposition.Comparison.t) -> elt list -> elt list
  val compare_partial_l :
    (elt -> elt -> Libzipperposition.Comparison.t) ->
    elt list -> elt list -> Libzipperposition.Comparison.t
  val pp : elt CCFormat.printer -> t CCFormat.printer
end