public function insert($index, $element)
    {
        if (0 < $index && $this->count() < $index) {
            throw new \OutOfBoundsException();
        }

        array_splice($this->elements, $index, 0, $element);
        foreach ($this->subLists as $subList) {
            $subList->insert($index, $element, true);
        }

        return $this;
    }