Why I can't set what parameters are mutable explicitly?

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