trait Foo<T> {
    fn bar(&self, t: &mut T);
}

fn baz<'a, T>(foo: impl Foo<T> + 'a) {}

Does the baz function here imply a lifetime constraint of T: 'a?

If so, how can I change Foo or baz to avoid (or relax) this constraint as it isn't a type that's stored or dropped when Foo is dropped?

Source: View source