public static function transform(IteratorAggregate $fromIterable, callable $transformer) : IteratorAggregate
    {
        return new CallableIterable(
            function () use ($fromIterable, $transformer) {
                return Iterators::transform(Iterators::from($fromIterable->getIterator()), $transformer);
            }
        );
    }