loopF, loopLeftF, et al

Plumbing: circular connections


loopF :: F a a -> F a a
loopLeftF :: F (Either a b) (Either a c) -> F b c
loopRightF :: F (Either a b) (Either c b) -> F a c
loopThroughRightF :: F (Either a b) (Either 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

See Also

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 loopCompThroughRightF.