Blog Post: Lifetime Parameters in Rust

I didn't mean to disagree with your post, just to point out a subtle distinction that is often overlooked (which can lead to confusion) between elision and inference. I agree that if you find you are using named lifetimes, it does indicate that you may be doing something a bit more complex, though I wouldn't go so far as to call it odd or a code smell. For example, a signature like this:

fn foo<'b>(&self, foo: &'b Bar) -> &'b Baz

doesn't set off any alarm bells for me, it just indicates that the return value is going to be some value borrowed from foo.