loopF, loopLeftF, et al

Plumbing: circular connections

Types

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

Description

These combinators are used to create circular connections between fudgets, as illustrated in the diagram below.

Equalities

  loopOnlyF f = nullSP >^^=< loopF f

See Also

Serial and parallel composition: >==<, >+<.

The corresponding stream processor combinators: loopSP et al.

Bugs

The names are wrong in the diagram. The diagram for loopThroughRight actually illustrates loopCompThroughRightF.