[Haskell-cafe] Asynchronous Arrows need Type Specialization - Help!

Scott Turner 2haskell at pkturner.org
Sat Apr 2 04:39:34 CEST 2011


On 2011-03-21 01:18, David Barbour wrote:
> I was giving Control.Arrow a try for a reactive programming system.
> The arrows are agents that communicate by sending and returning
> time-varying state. Different agents may live in different 'vats'
> (event-driven threads) to roughly model distributed computing. For the
> most part, the state varies asynchronously - i.e. a file updates at a
> different rate than the mouse position. Anyhow, I ran into a problem:
> The (***) and (&&&) operations, as specified in Control.Arrow, are
> inherently synchronization points.

Hughes's remark in his original paper may be relevant:
"In a deep sense, then, the Either type behaves more like a product than
the pair type does, when we work with stream processors.  And indeed, a
channel carrying a sum type corresponds much more closely to a pair of
channels than does a channel carrying pairs."



More information about the Haskell-Cafe mailing list