Things you can’t do in Rust: implied quantifiers

I love Rust and want it to be better. The dev teams know about all issues presented. I just want to generate discussion and enthusiasm for making a good language better.

fn f(x: &'a i32) {}
fn main() {
let x = 5;
f(&x)
}

Result (compile time error):

error[E0261]: use of undeclared lifetime name `’a`
|
1
| fn f(x: &’a i32) {
| ^^ undeclared lifetime
error: aborting due to previous error(s)

Type and lifetime variables need to be explicitly quantified ahead of function definitions like so: “f<’a>”. It is obvious that a variable is meant to be quantified by its presence, so it would be nice to drop the extra syntax. This is mostly covered by RFC 2115.