Rust's early vs. late lifetime binding

Lifetime in many ways are similar to types but also different. The goal of this post is to explain my mental model of rust's lifetime binding works, when it takes place, and a trick to force late lifetime binding when needed. Here's a motivating example that I will use throughout…