And let's not start an argument, that an enum always starts at 0.
I can let it start wherever i like
Again the question: does it
really matter for the function what the original boundaries were? It's not supposed to access outside of the boundaries anyway (after all it might not be a slice, but a whole array and thus out of boundary acceses would lead to access violations) and thus whether it accesses -2 to 1 or 0 to 3 doesn't really matter in the end as long as the length is correct.
In addition to that the open array function does not even know that it had been called with an array that has an enum type as its index type.