// compile-pass
pub trait Handler {
    fn handle(&self, _: &mut String);
}

impl<F> Handler for F where F: for<'a, 'b> Fn(&'a mut String) {
    fn handle(&self, st: &mut String) {
        self(st)
    }
}

fn main() {}
