@classmethod
def from_iterable(cls, iterable):
    """
        Alternative constructor which takes an `iterable` yielding iterators,
        this can be used to chain an infinite number of iterators.
        """
    rv = object.__new__(cls)
    rv._init(iterable)
    return rv
