The FnMut trait is automatically applied to any function or closure that uses mutable or immutable borrows to access data outside its own scope.
This is a moderate requirement, but some functions and closures fail that test, so FnMut is more common than Fn.