Koen Claessen wrote:

> The reason we removed the monads was that circuits with
> feedback (loops) in them became very tedious to define. One
> had to use monadic fixpoint operators (or "softer" variants
> on them), which were really unnatural to use. Also, the
> monadic style enforces an ordering on the components that
> you are using, while in a circuit, there is no such ordering
> (everything works in parallel).

I always thought that monads (or just more concretely: CPS) *help*
to sequentialize the processing of streams, but that one is
never obliged to put them where unneeded.

Loops ("short" loops which in Matlab are called "algebraic")
either must be sequentialized anyway, or - as in Matlab - they
generate some equations which must be solved globally; one gets
into something like constraint programming.

I wonder what is the Lava approach to those loops then. OK, I will
read the cited paper. For the moment Koen mentioned that the system
"detect" loops. And the real fun *begins* here...

Jerzy Karczmarczuk
Caen, France

Reply via email to