- this is a very impractical way of using functions in JS
- TS sucks at generics on function references, so a lot of intuition from Haskell just doesnt work here
back to your question, you have to provide names because TS syntax is such that requires you to do so, rational part is that a name of a parameter conveys additional meaning when the type alone fails to do so