
On Tue, Apr 26, 2011 at 11:44 PM, Heinrich Apfelmus < apfelmus@quantentunnel.de> wrote:
However, even in a demand-driven implementation, there is one optimization that I would like make: when there are multiple external events, say e1 and e2, the network splits into subnetworks that react only to one of the inputs. For instance, your example would split into two graphs
e1 e2 | \ | \ e3 e4 and e3 e4 | | | | e5 e5 e5 e5
that are independent of each other. Unlike successful filters, these subnetworks are known *statically* and it's worth splitting them out.
Yeah, I realize that as well, although you can get the same problem with a single source, it just makes the network a bit more complicated: e0 = source e1 = fromLeft <$> filter isLeft e1 e2 = fromRight <$> filter isRight e1 -- rest of network the same Anyways, the problem I was getting at is that lets say that e1 and e2 are both Event Bool, and e1 has a True event at the same time that e2 has a False event. Then a behavior derived from e3 is False for that time (assuming behaviors take the 'last' event in the list?), and a behavior from e4 is True for that time. -- ryan