Most Rust code compiles without a single lifetime annotation. That is not luck – it is lifetime elision, a set of deterministic rules the compiler applies automatically. Understanding those rules tells you exactly when you need to write annotations and why some errors catch you off guard.