<div dir="ltr">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. <br></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Sep 29, 2016 at 7:23 AM, Alan & Kim Zimmerman <span dir="ltr"><<a href="mailto:alan.zimm@gmail.com" target="_blank">alan.zimm@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote"><span class=""><br><blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex" class="gmail_quote"><div dir="ltr">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?<br><div class="gmail_extra"><br></div></div></blockquote></span>Machines? <a href="https://hackage.haskell.org/package/machines" target="_blank">https://hackage.haskell.org/<wbr>package/machines</a><span class="HOEnZb"><font color="#888888"><br><br></font></span></div><span class="HOEnZb"><font color="#888888"><div class="gmail_quote">Alan<br></div></font></span></div></div>
</blockquote></div><br></div>