Fruit is a purely functional user interface toolkit for Haskell based on the Functional Reactive Programming (FRP) model. FRP is an executable model of reactive systems based on functions of continous time.
Fruit was first described in the paper Genuinely Functional User Interfaces by Antony Courtney and Conal Elliott.
Caveat (PLEASE READ): This is a snapshot of a research prototype, not a production toolkit. There are many places where the implementation is akward, incomplete (or both), and many things we would rewrite if we were developing a toolkit for production use. Our research work involves exploring the how well the FRP model can account for advanced interaction techniques, not the nitty gritty details of building a production GUI library (although we hope to get there eventually).
We are making this snapshot available to enable others to explore the ideas behind fruit. We welcome contributions in any form (questions, comments, new example programs, beer, etc.).
We have tested fruit using both hugs and ghc under both Linux and Windows. We have tried to make it easy to configure, compile and install from sources on any platform.
N.B.: The above distributions contain the same files, but use line-termination conventions in text files appropriate to the given platform.
The release includes complete source code, and detailed instructions on how to configure, build and install fruit with either ghc or hugs98 on either Linux or Windows.
We are very interested in hearing from users. Please contact us to let us know of your experiences with fruit.