public function splice(int $offset, ?int $length = null, array $replacement = []): ArrayCollection
    {
        if ($length === null && empty($replacement)) {
            return new static(array_splice($this->items, $offset));
        }

        if ($length === null) {
            $length = $this->count();
        }

        return new static(array_splice($this->items, $offset, $length, $replacement));
    }