The Fn trait is automatically applied to any function or closure that uses only immutable borrows to access data outside its own scope.
This is a strict requirement, and many functions and closures fail that test, so Fn is the least common of the function traits.