shouldn't `size` be `end - first + 1`?
# random
k
shouldn't
size
be
end - first + 1
?