protected function sanitizeOffset($offset): int
    {
        if (!is_numeric($offset)) {
            throw new \InvalidArgumentException(
                sprintf('`$index` must be an `int`, %s(%s) received', gettype($offset), var_export($offset, true))
            );
        }

        return intval($offset);
    }