Is there a way to reference an arbitrary array-like object as 0-based array?

There is such a customized indexing array in Julia, but its type is different from the built-in array type.

It is annoying to handle different types so is it possible to (at least when writing a function argument list) to wrap any array-like object to behavior like a 0-based array?

can wrap your existing array.