error[E0582]: binding for associated type `Output` references lifetime `'a`, which does not appear in the trait input types --> $DIR/E0582.rs:28:30 | LL | where F: for<'a> Fn() -> Option<&'a i32> | ^^^^^^^^^^^^^^^ error[E0582]: binding for associated type `Item` references lifetime `'a`, which does not appear in the trait input types --> $DIR/E0582.rs:36:31 | LL | where F: for<'a> Iterator | ^^^^^^^^^^^^ error[E0308]: mismatched types --> $DIR/E0582.rs:22:5 | LL | bar(mk_unexpected_char_err) | ^^^ one type is more general than the other | = note: expected enum `Option<&_>` found enum `Option<&'a _>` note: the lifetime requirement is introduced here --> $DIR/E0582.rs:28:30 | LL | where F: for<'a> Fn() -> Option<&'a i32> | ^^^^^^^^^^^^^^^ error: aborting due to 3 previous errors Some errors have detailed explanations: E0308, E0582. For more information about an error, try `rustc --explain E0308`.