If you look in the official Rust doc, you see that the trait Fn is derived from FnMut, or, to implement Fn, you have to implement FnMut (and after that FnOnce since FnMut also derives from it).
Why is that so? I simply can't comprehend that. Is it because you can call every Fn as a FnOnce or FnMut?