How is this not a monad? It might be trying really hard not to reify the core concept of a monad, but it seems to me like it ends up being essentially a complicated monad.
show comments
superlucky84
One thing I’d especially like feedback on is the SideEffect approach.
It’s intentionally not a monad, and I’m curious how others feel about this trade-off compared to Option/Either in real-world TypeScript codebases.
show comments
eterps
While I like the concept, the side-effect pattern might be difficult for the average developer to understand (without fp-pack knowledge) in a shared codebase:
How is this not a monad? It might be trying really hard not to reify the core concept of a monad, but it seems to me like it ends up being essentially a complicated monad.
One thing I’d especially like feedback on is the SideEffect approach.
It’s intentionally not a monad, and I’m curious how others feel about this trade-off compared to Option/Either in real-world TypeScript codebases.
While I like the concept, the side-effect pattern might be difficult for the average developer to understand (without fp-pack knowledge) in a shared codebase:
https://github.com/superlucky84/fp-pack?tab=readme-ov-file#s...
Still, this approach is very useful for most business logic, too bad most programming languages don't provide a nice syntax for this.
The default any return type from pipelines is kind of brutal. Seems like a real footgun. Is that fixable?
Every time I introduce something like this teams complain. RX is a brain antipattern
Haskell does not have nulls. Java 8 introduced Options, and now there are nulls and Options.
Please tell me you didn't just add SideEffects to a language full of side-effects.