public function arrayCompatibleIterator(\Traversable $iterator) { $iterator = $this->adapter($iterator); if ($iterator->isArrayCompatible()) { return $iterator; } return new ArrayCompatibleIterator($this->adapter($iterator)); }