This is not always elidable, since it's possible to be &'a Trait + 'a too. Neither cases allow elision consistently, AFAICT.
fn foo<'a>(&'a self) -> &'a Trait {
}
walk_tying and searching for anything wrapping a trait except for a Box (TyUniq) should work.