loopSP :: SP a a -> SP a a loopLeftSP :: SP (Either a b) (Either a c) -> SP b c
The loop combinators construct circular connections between stream processors.
loopSP sp and loopLeftSP sp can be illustrated as:
loopSP is an untagged loop combinator. Output from sp
is propagated both to the output and to the loop.
loopLeftSP is a tagged loop combinator. Output from sp is
sent to the output of the composition if it is tagged Right and to
the loop if it is tagged Left. Similarly, input to sp is
is tagged Right if it comes from the input of the composition and
tagged Left if it comes from the loop.
loopSP (sp1 `serCompSP` sp2)This shows a way to obtain bidirectional communication between two stream processors.