#### Note: this error code is no longer emitted by the compiler. A lifetime cannot be determined in the given situation. Erroneous code example: ```compile_fail fn transmute_lifetime<'a, 'b, T>(t: &'a (T,)) -> &'b T { match (&t,) { // error! ((u,),) => u, } } let y = Box::new((42,)); let x = transmute_lifetime(&y); ``` In this code, you have two ways to solve this issue: 1. Enforce that `'a` lives at least as long as `'b`. 2. Use the same lifetime requirement for both input and output values. So for the first solution, you can do it by replacing `'a` with `'a: 'b`: ``` fn transmute_lifetime<'a: 'b, 'b, T>(t: &'a (T,)) -> &'b T { match (&t,) { // ok! ((u,),) => u, } } ``` In the second you can do it by simply removing `'b` so they both use `'a`: ``` fn transmute_lifetime<'a, T>(t: &'a (T,)) -> &'a T { match (&t,) { // ok! ((u,),) => u, } } ```