code: public static function filter(IteratorAggregate $unfiltered, callable $predicate) : IteratorAggregate
      {
          return new CallableIterable(
              function () use ($unfiltered, $predicate) {
                  return Iterators::filter(Iterators::from($unfiltered->getIterator()), $predicate);
              }
          );
      }
docs: Returns the elements of unfiltered that satisfy a predicate.
  
  @param IteratorAggregate $unfiltered
  @param callable $predicate
  @return IteratorAggregate