Covariant persistent multiset
= Covariant persistent multiset
An immutable <multiset> can expose a <covariant type parameter> because reading an element only produces that type. Addition accepts a new type parameter with a <lower type bound>, `add[U >: T](x: U)`, and returns a new `ISet[U]`. The old `ISet[T]` retains its contents and original element guarantee. Deletion returns both the removed value and a new remaining multiset; it does not mutate the old one. Duplicate occurrences are preserved.