4 ms·
Pipelines are function composition, not monads. For pipelines to be monadic, their structure must be able to change depending on the result on the part of pipe
by thesz 6y ago
Pipelines are function composition, not monads.
For pipelines to be monadic, their structure must be able to change depending on the result on the part of pipeline. The type of binding operator hints at it: (>>=) :: m a -> (a -> m b) -> m b.
The second argument receives result of first computation and computes the way overall result (m b) will be computed.
As for program composition, I would like to add gstreamer to the mix: it allows for DAG communication between programs.