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.
Take a look at some typescript libraries and frameworks and you will see stuff like this. Completely unreadable mess.
Styled Components’ type system is one of the most impressive and most fucked up things I’ve ever had to dive into.
I have seen image recognition or text RPGs with type script types, but
const ok:true = true as Grid< 4, 9, 2
Wtfnote that it continues onto the next line
For example?
Not OP, and these examples are not unreadable, but they are a few steps up from your typical generics.
https://effect-ts.github.io/effect/effect/Unify.ts.html#unify
https://effect-ts.github.io/effect/effect/Pipeable.ts.html
Right to jail. Right now.
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.