namespace System.Collections.Generic;
/// Items each there once, combined and compared as sets.
[Intrinsic]
public interface ISet<T> : ICollection<T> {
/// `item` added; whether it was (it wasn't there).
new bool Add(T item);
void UnionWith(in IEnumerable<T> other);
void IntersectWith(in IEnumerable<T> other);
void ExceptWith(in IEnumerable<T> other);
void SymmetricExceptWith(in IEnumerable<T> other);
readonly bool IsSubsetOf(in IEnumerable<T> other);
readonly bool IsSupersetOf(in IEnumerable<T> other);
readonly bool IsProperSubsetOf(in IEnumerable<T> other);
readonly bool IsProperSupersetOf(in IEnumerable<T> other);
readonly bool Overlaps(in IEnumerable<T> other);
readonly bool SetEquals(in IEnumerable<T> other);
}