//@ known-bug: #121134 trait Output<'a> { type Type; } struct Wrapper; impl Wrapper { fn do_something_wrapper(&mut self, do_something_wrapper: F) where FnOnce:, F: for<'a> FnOnce(>::Type), { } } fn main() { let mut wrapper = Wrapper; wrapper.do_something_wrapper::(|value| ()); }