def element(self, inp=None):
        """Create a new element.

        First tries calling the first set, then the second, etc.

        For more specific control, use ``set[i].element()`` to pick which
        subset to use.
        """
        for set in self.sets:
            try:
                return set.element(inp)
            except NotImplementedError:
                pass
        raise NotImplementedError('`element` not implemented for any of the '
                                  'subsets')