Looking at the pre-RFC and at the meeting minutes, I fail to see lots of examples that show the advantages of a lifetime shorthand. It would be helpful just to make it crystal clear what the proposal is about
I see lots of examples discussing the new syntax and I see examples that are deprecated.
The examples I hoped for are like the one from the first post here:
// Before:
struct Foo<'a> {
t: &'a i32,
}
// After:
struct Foo<'> {
t: &i32,
}
Is that the whole proposal? If so, it seems one saves 3-4 keystrokes in exchange for inconsistencies. Inconsistencies since a disappeared in the struct Foo<'a> line, but the whole 'a part disappeared in the struct body.
Also, as I understand it, this is only for the case where you have a single lifetime? So the following struct would remain unchanged?
struct Foo<'a, 'b> {
t: &'a i32,
s: &'b str,
}
This makes me feel that the syntax doesn’t generalize.
Has it been discussed to simply elide the lifetime completely? That is, allow
// Before:
struct Foo<'a> {
t: &'a i32,
}
// After:
struct Foo {
t: &i32,
}
and also
// Before:
struct Foo<'a, 'b> {
t: &'a i32,
s: &'b str,
r: &'b Vec<i32>,
}
// After:
struct Foo<'a> {
t: &'a i32,
s: &str,
r: &Vec<i32>,
}
That is, allow the user to remove a single lifetime? Fields that have no explicit lifetime all get the same lifetime.
Given my limited knowledge of all this, I believe this would mean that you end up with much fewer lifetimes and in particular, you end up with something where the “default” or “obvious” choice is the choice the compiler makes.
But perhaps it was seen as important to signal in the struct Foo<'a> line that the type contains references? If yes, I suppose that is because of nested structs? With the proposal above, you could write:
struct Bar {
a: Foo,
}
Now Bar would also have an elided lifetime because of the inner Foo. You can only know this if you go look at the definition of Foo. I’m not sure if that’s a good of a bad thing 
As a new user, it seems obvious that Bar values will have a lifetime associated with them – expect all values to have a lifetime. Since Bar contains a Foo, I would expect the lifetime to be determined by Foo. So the nested struct above would give me the same kind of mental image as the more explicit:
struct Bar<'a> {
a: Foo<'a>,
}
That is, the <'a> parts above don’t seem to tell me anything.
The above is probably terribly naive, so I look forward to hearing where I missed things 