Agree. What I linked provides core type support for that library. The pipe one is just a bunch of overloads to support a specific way of handling function composition to appease the TypeScript type checker.
There are a lot of typing hacks in that library to simulate higher kinded types.
Creating basic functionality for the language always leads to unreadable code.
The C++ version would be much, much worse, and the Lisp version is Lisp.
Agree. What I linked provides core type support for that library. The pipe one is just a bunch of overloads to support a specific way of handling function composition to appease the TypeScript type checker.
There are a lot of typing hacks in that library to simulate higher kinded types.