
A lot of the Pipes trickery is making a branch without the abstraction of
state. It's easy to remember the last stream value and send it elsewhere.
If state is easy (doesn't stuff up streaming), then Moore and Mealy are
good places to start tinkering. The whole machines abstraction (branch of
DFA etc, not the kmett library) is a bit clunky but. A Mealy machine's
output is independent of its input - it can fire anytime, not just when a
new stream value arrives. If you have a linear pull request line, like
pipes does so well, there is full coupling of the input and output - this
is a Moore not a Mealy machine. The stream machine is created by linking
up all the states of a Moore and making them fire every stream value.
Contrary to much of the DFA narrative, we have a wire hanging out of state
as well. The importance of distinguishing between a wire connected to
state and what is an output wire that exists within state machines seems a
touch artificial.
On Thu, Sep 29, 2016 at 7:23 AM, Alan & Kim Zimmerman
For flavour, the computation involves hoisting and lifting back and forth
over several layers, as the various meta-physical wires cross. That was years ago, but I haven't seen anything since. It looks like Pipes is the wrong abstraction point to stream with branching. I wonder what is?
Alan