def skip_redundant(iterable, skip_set=None):
    """Redundant items are repeated items or items in the original skip_set."""
    if skip_set is None:
        skip_set = set()
    for item in iterable:
        if item not in skip_set:
            skip_set.add(item)
            yield item
