<div dir="ltr"><div>I first tried an imperative push-based FRP in 1998, and I had exactly the same experience as Heinrich mentions. The toughest two aspects of imperative implementation were sharing and event merge/union/mappend.<br>

<br></div>-- Conal<br><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Apr 25, 2013 at 5:16 AM, Heinrich Apfelmus <span dir="ltr">&lt;<a href="mailto:apfelmus@quantentunnel.de" target="_blank">apfelmus@quantentunnel.de</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">Hans Höglund wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
My aim is to find the simplest possible implementation of the<br>
semantics you describe in Push-pull FRP, so the denotational<br>
semantics are already in place.<br>
</blockquote>
<br></div>
In reactive-banana, the Reactive.Banana.Model module implements /<br>
defines the denotational semantics.<br>
<br>
  <a href="http://tinyurl.com/Reactive-Banana-Model" target="_blank">http://tinyurl.com/Reactive-<u></u>Banana-Model</a><br>
<br>
It&#39;s very similar to Conal&#39;s semantics from the Push-Pull article.<div class="im"><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I guess what I am looking for is a<br>
simple translation of a denotational program into an imperative one.<br>
My intuition tells me that such a translation is possible, maybe even<br>
trivial, but I am not sure how to reason about correctness.<br>
</blockquote>
<br></div>
In my experience, the main problem with imperative implementations is<br>
that they have a hard time with the  union  combinator and with<br>
preserving sharing. Reactive-banana is the best I could come up with.<br>
<br>
<br>
Best regards,<br>
Heinrich Apfelmus<br>
<br>
--<br>
<a href="http://apfelmus.nfshost.com" target="_blank">http://apfelmus.nfshost.com</a><div class="HOEnZb"><div class="h5"><br>
<br>
<br>
<br>
______________________________<u></u>_________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org" target="_blank">Haskell-Cafe@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/<u></u>mailman/listinfo/haskell-cafe</a><br>
</div></div></blockquote></div><br></div></div>