def multiunion(seq):
    """Return union of (zero or more) integer sets, as an integer set.

        seq is a sequence of objects each convertible to an integer set.
        These objects are convertible to an integer set:

        + An integer, which is added to the union.

        + A Set or TreeSet from the same module (for example, an
          :class:`BTrees.IIBTree.TreeSet` for :meth:`BTrees.IIBTree.multiunion`).  The elements of the
          set are added to the union.

        + A Bucket or BTree from the same module (for example, an
          :class:`BTrees.IOBTree.IOBTree` for :meth:`BTrees.IOBTree.multiunion`).  The keys of the
          mapping are added to the union.

        The union is returned as a Set from the same module (for example,
        :meth:`BTrees.IIBTree.multiunion` returns an :class:`BTrees.IIBTree.IISet`).

        The point to this method is that it can run much faster than
        doing a sequence of two-input :meth:`~BTrees.Interfaces.IMerge.union` calls.  Under the covers,
        all the integers in all the inputs are sorted via a single
        linear-time radix sort, then duplicates are removed in a second
        linear-time pass.
        """
