[Haskell-cafe] Unambiguous choice implementation

Heinrich Apfelmus apfelmus at quantentunnel.de
Mon Jun 25 10:30:27 CEST 2012

Bartosz Milewski wrote:
> I'm trying to understand Reactive Banana, but there isn't much 
> documentation to go about.

I haven't written any beginner documentation yet because the API is 
still in flux. The homepage


and Stackoverflow


are great resources, though. Feel free to drop me a line if you have 
questions as well.

> 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).

The semantics from Elliott (double 't', 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's examples 
to reactive-banana, except for those involving the  switcher  combinator.

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 

> Do you have a toy applet that 
> demonstrates the use of Reactive Banana, something like Elliotts Bezier 
> editor,  http://research.microsoft.com/pubs/69665/deop-tr.pdf  ? 

Reactive-banana comes with a lot of examples, mentioned here:


By the way, Conal's Bezier editor doesn't make much use of the  switcher 
  combinator, so you can directly translate it into reactive-banana.

Best regards,
Heinrich Apfelmus


More information about the Haskell-Cafe mailing list