(* * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. *) (** Multiset - Set with multiplicity for each element *) include module type of Multiset_intf type ('elt, 'mul, 'compare_elt) t [@@deriving compare, equal, sexp] type ('compare_elt, 'compare_mul) compare [@@deriving compare, equal, sexp] module Make (Elt : sig type t [@@deriving equal, sexp_of] include Comparer.S with type t := t 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