Brief Intro to Monads in JavaScript
github.com
github.com
And I think I kinda-sorta understand now why Promise isn’t a monad, but I still really think it’s hair-splitting.
If you want to give it another look, I’d start with Deno. TypeScript is supported at runtime with no noticeable cost, it’s standards-based so documentation is accurate, there isn’t a shit ton of legacy stuff to wade through. And the types for stuff you’re likely to interact with are probably reasonably coherent, you probably won’t be interacting with interfaces that accept variadic maybe strings or numbers or callbacks or complex unspecified objects.