I have a class with `__iter__` defined like below:

```
class MyIterator:

    def __iter__(self):
        for value in self._iterator:
            if is_iterator(value):
                yield from value
            else:
                yield value

```

I want to do `next(my_iterator)` but I have to implement `__next__` to do so. But it would change this simple implementation to a fairly complicated one - or actually I don't know how to implement this instead of defining `__iter__` as a generator function.

Generally spealing, if `__iter__` is implemented as a generator fuction which might be difficult to be done without generator, how should I do if I want to use `__next__`?

Note: Apparently, `next(iter(my_iterator))` works, but I don't want to do it.