Rust did a lot of things nice, but it is over cluttered with all these particularities everywhere, which could be hidden by better default conventions.
For example, everything should be a reference by default, and use of explicit & is stylistically bad.
Or why in
let mut iter = a.iter();
iter is mut? It should be a simple closure which follows a protocol. In what sense it is mutable?
And such small warts are literally everywhere, together resulting in a clutter.
A functional language uniform defaults (everything is an expression, everything is a binding which implies everything s reference) are much better.