АО
Условно, если нужно только length и get_index, то вполне можно этим и ограничиться и не думать о том, что полная версия массива должна быть намного больше/сложнее. Разумеется всё задачей определяется.
У меня в своё время это было, когда я со строками работал. Закончилось просто тем, что я сделал тип что-то вроде
struct MyString <: AbstractString
data::String
l::Int
end
Base.::length(x::MyString) = x.l
Я упрощаю конечно, но суть была именно такая. Половина методов строк не работала, но в той конкретной задаче этого и не было нужно.

