Great. I'm glad that -set! takes the value before the indices. Putting it at the end, as SRFI 25 does, is nothing but an irritation for both user and implementer: there is no reason why it should look like vector-set!, string-set!, etc. In this way, given a list of indices, (apply vector-set! a v indices) is very easy. This is also a good reason to have a function.
I'm going to add
(array-ref A i0 i1 ...)
and
(array-set! A v i0 i1 ...)
as functions to SRFI 179. (It was too hard to ensure precise, run-time
error checking with macros---some error occurred at compile-time or
load-time, some gave confusing messages, etc.)
Brad