Difference between `fn()` and `fn() -> ()`

Box<dyn Fn() -> T> have same problem.
P.S. I'm implementing callback system with enum with 2 options: pointer and boxed closure.