Thanks, Heinrich. I looked at the examples and at the references you provided. I understand the semantic model, so I guess I&#39;m mostly trying to understand the implementation. Conal&#39;s paper was mostly about refining data structures in order to provide better implementation. It&#39;s all beautiful up to the point where he introduces the unamb hack. How did you manage to work around this problem and implement event merging efficiently?<div>
--Bartosz<br><br><div class="gmail_quote">On Mon, Jun 25, 2012 at 1:30 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">Bartosz Milewski wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I&#39;m trying to understand Reactive Banana, but there isn&#39;t much documentation to go about.<br>
</blockquote>
<br></div>
I haven&#39;t written any beginner documentation yet because the API is still in flux. The homepage<br>
<br>
  <a href="http://www.haskell.org/haskellwiki/Reactive-banana" target="_blank">http://www.haskell.org/<u></u>haskellwiki/Reactive-banana</a><br>
<br>
and Stackoverflow<br>
<br>
  <a href="http://stackoverflow.com/questions/tagged/frp" target="_blank">http://stackoverflow.com/<u></u>questions/tagged/frp</a><br>
<br>
are great resources, though. Feel free to drop me a line if you have questions as well.<div class="im"><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
How is RB positioned vis a vis Elliott (and then there is the earlier Elliot and Hudak, and the later Elliot with the push implementation and type classes).<br>
</blockquote>
<br></div>
The semantics from Elliott (double &#39;t&#39;, by the way) and reactive-banana are essentially the same, but I have taken the liberty to modernize many function names. You can pretty much directly translate Conal&#39;s examples to reactive-banana, except for those involving the  switcher  combinator.<br>

<br>
The approaches to implementation are very different, though. Functional reactive programming is one of the cases where you have to learn the API without understanding its implementation. (But have a look at the Reactive.Banana.Model module, which provides a simplified model implementation.)<div class="im">
<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Do you have a toy applet that demonstrates the use of Reactive Banana, something like Elliotts Bezier editor,  <a href="http://research.microsoft.com/pubs/69665/deop-tr.pdf" target="_blank">http://research.microsoft.com/<u></u>pubs/69665/deop-tr.pdf</a>  ? <br>

</blockquote>
<br></div>
Reactive-banana comes with a lot of examples, mentioned here:<br>
<br>
  <a href="http://www.haskell.org/haskellwiki/Reactive-banana#documentation" target="_blank">http://www.haskell.org/<u></u>haskellwiki/Reactive-banana#<u></u>documentation</a><br>
<br>
<br>
By the way, Conal&#39;s Bezier editor doesn&#39;t make much use of the  switcher  combinator, so you can directly translate it into reactive-banana.<div class="HOEnZb"><div class="h5"><br>
<br>
<br>
Best regards,<br>
Heinrich Apfelmus<br>
<br>
--<br>
<a href="http://apfelmus.nfshost.com" target="_blank">http://apfelmus.nfshost.com</a><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>
<br></div></div><span class="HOEnZb"><font color="#888888">
-- <br>
You received this message because you are subscribed to the Google Groups &quot;Haskell-cafe&quot; group.<br>
To post to this group, send email to <a href="mailto:haskell-cafe@googlegroups.com" target="_blank">haskell-cafe@googlegroups.com</a>.<br>
To unsubscribe from this group, send email to <a href="mailto:haskell-cafe%2Bunsubscribe@googlegroups.com" target="_blank">haskell-cafe+unsubscribe@<u></u>googlegroups.com</a>.<br>
For more options, visit this group at <a href="http://groups.google.com/group/haskell-cafe?hl=en" target="_blank">http://groups.google.com/<u></u>group/haskell-cafe?hl=en</a>.<br>
<br>
</font></span></blockquote></div><br><br clear="all"><div><br></div>-- <br>[:Bartosz:]<br>
</div>