loopCompSP :: SP ((a1 ⊕ b1) ⊕ (a2 ⊕ b2)) ((a2 ⊕ a3) ⊕ (a1 ⊕ b3)) -> SP (b1 ⊕ b2) (a3 ⊕ b3) loopThroughBothSP :: SP (a1 ⊕ b1) (a2 ⊕ a3) -> SP (a2 ⊕ b2) (a1 ⊕ b3) -> SP (b1 ⊕ b2) (a3 ⊕ b3)
loopCompSPis a symmetric version of loopCompThroughRightSP. When applied to a parallel composition of two fudgets it allows the fudgets to communicate both with the outside world and with each other.
loopThroughBothSP sp1 sp2 = loopCompSP (sp1 -+- sp2)
The corresponding fudget combinator: loopCompF.
Parallel composition of stream processors: -+-