gelisam/frp-zoo

Double-check that netwire really does support scenario 10

Closed this issue · 2 comments

Since it's the only library which claims to support scenario 10, it would make sense to verify that this isn't a mistake. A truly dynamic implementation of scenario 10 implies that all the events are recorded and replayed on the new parts of the graph, a strategy which, because of the obvious memory and replay delay costs, has been avoided by all the other FRP libraries we've examined.

Still, Evan's presentation does mention that scenario 10 is the typical behaviour in Haskell implementation and that this behaviour is required for proper equational reasoning, so it would be surprising if there were no libraries which made this choice. But based on the design of the libraries I have seen so far, I expect that this choice is mostly going to be taken by early FRP libraries, not modern ones like netwire.

The scenario 10 implementation of netwire depends strongly on the inhibithion feature. http://hub.darcs.net/ertes/netwire/browse/README.md
The inhibition feature is actually a unique feature of netwire, so it would be unclear that whether it's truly network switching, or it's just a event filtering.

Oh, if it demonstrates a unique feature of netwire, then we should definitely keep it in! For the dynamic section, I think it's more important for those examples to demonstrate how the different libraries distinguish themselves from each other than to make sure that all the examples implement similar-enough features.