#### Note: this error code is no longer emitted by the compiler. The type does not fulfill the required lifetime. Erroneous code example: ```compile_fail use std::sync::Mutex; struct MyString<'a> { data: &'a str, } fn i_want_static_closure(a: F) where F: Fn() + 'static {} fn print_string<'a>(s: Mutex>) { i_want_static_closure(move || { // error: this closure has lifetime 'a // rather than 'static println!("{}", s.lock().unwrap().data); }); } ``` In this example, the closure does not satisfy the `'static` lifetime constraint. To fix this error, you need to double check the lifetime of the type. Here, we can fix this problem by giving `s` a static lifetime: ``` use std::sync::Mutex; struct MyString<'a> { data: &'a str, } fn i_want_static_closure(a: F) where F: Fn() + 'static {} fn print_string(s: Mutex>) { i_want_static_closure(move || { // ok! println!("{}", s.lock().unwrap().data); }); } ```