>>= -package:basement -package:faktory -package:control-dsl

Sequentially compose two actions, passing any value produced by the first as an argument to the second. 'as >>= bs' can be understood as the do expression
do a <- as
bs a
An alternative name for this function is 'bind', but some people may refer to it as 'flatMap', which results from it being equivalent to
\x f -> join (fmap f x) :: Monad m => m a -> (a -> m b) -> m b
which can be seen as mapping a value with Monad m => m a -> m (m b) and then 'flattening' m (m b) to m b using join.
Module over monad operator for Code
Sequentially compose two actions, passing any value produced by the first as an argument to the second. 'as >>= bs' can be understood as the do expression
do a <- as
bs a
Sequentially compose two actions, passing any value produced by the first as an argument to the second. 'as >>= bs' can be understood as the do expression
do a <- as
bs a
An alternative name for this function is 'bind', but some people may refer to it as 'flatMap', which results from it being equivialent to
\x f -> join (fmap f x) :: Monad m => m a -> (a -> m b) -> m b
which can be seen as mapping a value with Monad m => m a -> m (m b) and then 'flattening' m (m b) to m b using join.
Sequentially compose two actions, passing any value produced by the first as an argument to the second.
Bind to actions.
Redefinition of >>=
Parallel (>>=) operation.
Sequentially compose two actions, passing any value produced by the first as an argument to the second.
p >>=! act = p >>= 'write' . act
Non-linear bind Notice the continuation has a non-linear arrow, i.e., (() -> RIO b). For simplicity, we don't use a more general type, like the following: (>>==) :: RIO (Ur a) %1-> (a -> RIO b) %1-> RIO b