My Rust rule of thumb: if there are no lifetimes in your return type, you probably don't need to specify the lifetimes in your arguments.
(I know clippy will point out simple cases of unnecessary lifetimes, but plenty other cases occur IME.)
miniblog.
Related Posts
NLL (non-lexical lifetimes) now landing in Rust!
Really interesting post on optimising the Rust compiler: https://blog.mozilla.org/nnethercote/2018/06/05/how-to-speed-up-the-rust-compiler-some-more-in-2018/
I love that the author comments that he still finds lifetimes somewhat scary. You can even work on the compiler without needing to master advanced Rust techniques!
Cyclic graphs are hard in Rust. A lovely post demonstrating how to use arenas in Rust to build mutable graphs whilst managing lifetimes correctly: