Say that I have the following pseudo-code:

```
for i in 1:length(array)-1
array[i+1] = some_function(array[i])
end
```

Now I want to rewrite the loop using `eachindex`

instead of `1:length`

(because it is simpler, and because that array might need to be 0-indexed at some point). Is there a function operating on `OneTo`

, or on `UnitRange`

, which changes the interval `[a:b]`

to `[a+δa:b+δb]`

? (I rapidly looked at `"range.jl"`

and saw no such function.)

(I would be tempted to define `Base.:-(r::OneTo, d::Int) = OneTo(r.stop-d)`

, so that `1:length(array)`

could be replaced by `eachindex(array)`

*even when followed by an offset*. But that addresses only one end of the problem.)