1. The effect data type admits an instance of monad, like arrays or option or result. Not sure why would you put those in competition, an effect is a supercharged ReaderResult. The only differences are in naming choices, traverse being called foreach, flat map being called "and then", etc.
2. There is a much more popular and robust implementation of effects for Typescript: https://effect.website/
> The only differences are in naming choices
Naming choices matter, as does syntax.