|
|
|
|
|
by superlucky84
164 days ago
|
|
One more practical point is that a full monad doesn’t fit very naturally into a pipe-first interface. Once you commit to a real monad, you need map/flatMap, lifting, unwrapping, and rules about staying inside the context across the whole pipeline.
At that point, the pipe abstraction stops being the primary mental model — the monad does. SideEffect deliberately avoids that.
It keeps the pipe interface intact and only adds a single, explicit signal: “stop here”.
That’s why it’s less powerful than a monad, but also much simpler to integrate into existing pipe-based code. |
|