<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def sieve(cache, segment=None):
 """Filter the cache to find those entries that overlap ``segment`` Parameters cache : `list` Input list of file paths segment : `~gwpy.segments.Segment` The ``[start, stop)`` interval to match against. """

    return type(cache)(e for e in cache if segment.intersects(file_segment(e)))