def process_inner_i(inner_i, left=True, reverse=False):
    """Yield either left (tensile) or right (compressive) inners.

    Parameters
    ----------
    inner_i : list
        Converted inners; use _get_inner_i.
    left : bool
        Yields tensile layers; else yield compressive layers.
    reverse : bool
        Yield values in reverse order; useful for deque.extend.

    """
    if reverse:
        if left:
            for inner in reversed(inner_i):
                if isinstance(inner, tuple):
                    yield inner[0]
                else:
                    yield inner
        elif not left:
            for inner in inner_i:
                if isinstance(inner, tuple):
                    yield inner[1]
                else:
                    yield inner
    elif left:
        for inner in inner_i:
            if isinstance(inner, tuple):
                yield inner[0]
            else:
                yield inner
    elif not left:
        for inner in reversed(inner_i):
            if isinstance(inner, tuple):
                yield inner[1]
            else:
                yield inner
