public ISimpleSet <T> Union(ISimpleSet <T> other)
        {
            var set = new SimpleHashSet <T>();

            foreach (var item in this.Concat(other))
            {
                set.Add(item);
            }
            return(set);
        }
        public ISimpleSet <T> Diff(ISimpleSet <T> other)
        {
            var set = new SimpleHashSet <T>();

            foreach (var item in this)
            {
                if (!other.Contains(item))
                {
                    set.Add(item);
                }
            }
            return(set);
        }