+/// Note: `move` closures may still implement [`Fn`] or [`FnMut`], even though
+/// they capture variables by `move`. This is because the traits implemented by
+/// a closure type are determined by *what* the closure does with captured
+/// values, not *how* it captures them:
+///
+/// ```rust
+/// fn create_fn() -> impl Fn() {
+/// let text = "Fn".to_owned();
+///
+/// move || println!("This is a: {}", text)
+/// }
+///
+/// let fn_plain = create_fn();
+///
+/// fn_plain();
+/// ```
+///