protected function cycle()
    {
        if (!$this->moved) {
            $this->curr->clear();
            $this->curr->merge($this->next);
            $this->next->clear();
            $this->moved = true;
        }
    }