public function squash() : Collection
    {
        if (count($this->stack) || !($this->array instanceof \ArrayObject)) {
            $this->array = new \ArrayObject(iterator_to_array($this));
            $this->stack = [];
            $this->iterator = $this->array->getIterator();
        }
        return $this;
    }