A common use of higher-ranked trait bounds (HRTB) is to place bounds on reference types. For example:
fn run<V>(items: V) where for<'a> &'a V: IntoIterator<Item=&'a Foo>
Would it be possible to add elision rules where lifetimes in the type are “inputs” and lifetimes in the bound are “outputs” so this could be simplified to:
fn run<V>(items: V) where &V: IntoIterator<Item=&Foo>
(Currently this generates a “missing lifetime specifier” error.)
Note: The Fn traits already allow elided lifetimes in the bound, and these would need to retain their current meanings.