public function drop($amount, $in_place = false)
    {
        if (!is_int($amount) || $amount < 0) {
            throw new \InvalidArgumentException('ItemList::drop() expects a positive integer argument.');
        }

        $remaining = array_slice($this->list, $amount);

        if ($in_place) {
            $this->list = $remaining;

            return $this;
        }

        return new ItemList($remaining);
    }