How can the lifetime be checked at compile time? Magic? The only thing I can think of is working with worst case scenario lifetimes by using the declaration scopes.