"Haskell Applets" provides an event handler and a canvas for building simple GUI apps.
This package is provides the Happlets API that is common to all Happlet back-end provider libraries. Along with this package, it is necessary to install a back-end library such as 'happlets-lib-gtk'. Currently Gtk+ version 2 with a Cairo-based canvas is the only back-end available. Gtk+ version 3, Xlib, SDL2, GLUT, and (possibly) Wayland back-ends are all feasible and may be implemented in the future.
The goal of the Happlets project is to allow you to create very simple, thread-safe applications that contain nothing more than a single window with a drawing canvas that can respond to user input events, like mouse clicks, key-presses, or frame animation events. The intention is to create a minimal programming platform for small, single-purpose graphical applications which simply displays some interactive graphic, for example a plot of some data, or a simple game. Naturally, the Happlet program can be arbitrarily complex, but it may be better to consider other, FRP-based solutions if managing events becomes too difficult.
A happlet back-end provider may provide additional widget API functions, but using these APIs will result in your applet being dependent on the specific back-end and will thus not be as portable as programming for the "happlets" package alone. Happlets aims to achieve a balance between being as minimal as possible, but still provide enough graphics drawing primitives to be useful for the widest range of possible applications.
The Gtk+ v2 back-end provider can be downloaded from this link: