@lexplt Hmm, I see. Well, in that case I suppose it does make sense for (slice alphabet 0 10 -1) to return jihgfedcba because it sounds like there's no other combination of parameters that would produce that output, I just have a feeling a lot of developers would find that unintuitive. Partly because, as I said, it seems natural (to me and, I'm guessing, a lot of others) that the first element out should be at the start index; but even setting that aside, there's the confusion surrounding whether the end bound should remain exclusive even if that's where the iteration starts. The behavior I'm used to in pretty much every other slice-like iterator I've worked with is that it begins with an inclusive bound and finishes with an exclusive one (like rbegin() and rend() in C++ collections), and deviating from that feels even more out-of-place to me than having the result not start with the start element.