Module NS.Multiset

Multiset - Set with multiplicity for each element

module type MULTIPLICITY = sig ... end
module type S = sig ... end
type ('elt, 'mul, 'compare_elt) t
include Ppx_compare_lib.Comparable.S3 with type ('elt, 'mul, 'compare_elt) t := ('elt, 'mul, 'compare_elt) t
val compare : 'a Base__Ppx_compare_lib.compare -> 'b Base__Ppx_compare_lib.compare -> 'c Base__Ppx_compare_lib.compare -> ('a, 'b, 'c) t Base__Ppx_compare_lib.compare
include Ppx_compare_lib.Equal.S3 with type ('elt, 'mul, 'compare_elt) t := ('elt, 'mul, 'compare_elt) t
val equal : 'a Base__Ppx_compare_lib.equal -> 'b Base__Ppx_compare_lib.equal -> 'c Base__Ppx_compare_lib.equal -> ('a, 'b, 'c) t Base__Ppx_compare_lib.equal
include Sexplib0.Sexpable.S3 with type ('elt, 'mul, 'compare_elt) t := ('elt, 'mul, 'compare_elt) t
val t_of_sexp : (Sexplib0__.Sexp.t -> 'a) -> (Sexplib0__.Sexp.t -> 'b) -> (Sexplib0__.Sexp.t -> 'c) -> Sexplib0__.Sexp.t -> ('a, 'b, 'c) t
val sexp_of_t : ('a -> Sexplib0__.Sexp.t) -> ('b -> Sexplib0__.Sexp.t) -> ('c -> Sexplib0__.Sexp.t) -> ('a, 'b, 'c) t -> Sexplib0__.Sexp.t
type ('compare_elt, 'compare_mul) compare
val compare_compare : ('compare_elt -> 'compare_elt -> int) -> ('compare_mul -> 'compare_mul -> int) -> ('compare_elt, 'compare_mul) compare -> ('compare_elt, 'compare_mul) compare -> int
val equal_compare : ('compare_elt -> 'compare_elt -> bool) -> ('compare_mul -> 'compare_mul -> bool) -> ('compare_elt, 'compare_mul) compare -> ('compare_elt, 'compare_mul) compare -> bool
val sexp_of_compare : ('compare_elt -> Sexplib0.Sexp.t) -> ('compare_mul -> Sexplib0.Sexp.t) -> ('compare_elt, 'compare_mul) compare -> Sexplib0.Sexp.t
val compare_of_sexp : (Sexplib0.Sexp.t -> 'compare_elt) -> (Sexplib0.Sexp.t -> 'compare_mul) -> Sexplib0.Sexp.t -> ('compare_elt, 'compare_mul) compare
module Make (Elt : sig ... end) (Mul : MULTIPLICITY) : S with type mul = Mul.t with type elt = Elt.t with type compare = (Elt.compare, Mul.compare) compare with type t = (Elt.t, Mul.t, Elt.compare) t