Something like that. Normally after agreeing over an interface in implementation the compiler should not compile if something not complies with the interface like it does in other languages. I would preffer the reversed behaviour of C/C++ everything is const until explicit specified otherwise feels more natural and short.
Or something like this:
function foo(a!, b) #or foo(mut a, b), whatever
a[1] = 1
end