
Hans Höglund wrote:
My aim is to find the simplest possible implementation of the semantics you describe in Push-pull FRP, so the denotational semantics are already in place.
In reactive-banana, the Reactive.Banana.Model module implements / defines the denotational semantics. http://tinyurl.com/Reactive-Banana-Model It's very similar to Conal's semantics from the Push-Pull article.
I guess what I am looking for is a simple translation of a denotational program into an imperative one. My intuition tells me that such a translation is possible, maybe even trivial, but I am not sure how to reason about correctness.
In my experience, the main problem with imperative implementations is that they have a hard time with the union combinator and with preserving sharing. Reactive-banana is the best I could come up with. Best regards, Heinrich Apfelmus -- http://apfelmus.nfshost.com