Superb deep dive into how the Rust compiler infers lifetimes: https://stackoverflow.com/a/42639814 (much like type checking)