Rust sometimes needs manual type annotation
    (Jin Qing's Column, Apr., 2022)
    This code compiles error:
    
      trait MyCallback: FnMut(&u32) -> () { }
impl<F: FnMut(&u32) -> ()> MyCallback for F { }
fn process_data(mut f: impl MyCallback) -> () {
    f(&0)
}
fn process_data_2(mut f: impl FnMut(&u32) -> ()) -> () {
    f(&0)
}
fn main() {
    // Doesn't compile
    process_data(|_| ());
    // Compiles
    process_data_2(|_| ());
}
    
    
      expected type `for<'r> FnMut<(&'r u32,)>`
              found type `FnMut<(&u32,)>`
    
    Fix:
    
          process_data(|_: &_| ());
    
    See: https://stackoverflow.com/questions/61671460/rust-type-mismatch-resolving-forr-with-closure-trait-alias-argument
    Also see: https://github.com/rust-lang/rust/issues/58639
    Sometimes, Rust needs a type annotation in closure.