¤ loopF, loopLeftF, et al
Plumbing: circular connections
loopF :: F a a -> F a a
loopLeftF :: F (a ⊕ b) (a ⊕ c) -> F b c
loopRightF :: F (a ⊕ b) (c ⊕ b) -> F a c
loopThroughRightF :: F (a ⊕ b) (c ⊕ d) -> F c a -> F b d
loopOnlyF :: F a a -> F a b
These combinators are used to create circular connections between fudgets,
as illustrated in the diagram below.
loopOnlyF f = nullSP >^^=< loopF f
Serial and parallel composition: >==<, >+<.
The corresponding stream processor combinators: loopSP et al.
The names are wrong in the diagram. The diagram for
loopThroughRight actually illustrates