I understand why a reference passed to a function must come with minimal required lifetime: to be sure that object behind is not destroyed while function is still operating. What puzzles me is the following:
fn a_function<'a, 'b, T>(arg: &'b T)
where
T: 'a,
{
// ...
}
The only reference that comes into the function has the lifetime 'b
.