Room: BBL room 471
Title: Genuinely Functional User Interfaces
Programming in Haskell has many advantages over programming in impure
and imperative languages. Among these advantages are a clear formal
basis, a strong type-system, and powerful methods of abstraction.
Yet, the two major graphical user interface libraries for Haskell,
wxHaskell and gtk2hs, are based on an imperative model of programming.
Pretty much everything has to be done in the IO monad again. Even in
Haskell, GUI code is often a tightly interwoven knot of call-back
functions. This kind of code is hard to read, difficult to reason
about, and almost impossible to reuse.
In this talk I will give an introduction to the high-level GUI library
Fruit. Fruit is an experimental library based on arrows and Functional
Reactive Programming, which intends to finally give GUI programming in
Haskell a formal basis and powerful methods of abstraction. In addition,
I will present my own variation on Fruit, which adds some experimental