In my current project, I am considering to use Haskell for an interactive diagram plotter. Before that, the usage and implementation quality of the Cairo/GTK binding has to be checked. For this purpose, I wrote a small game with Cairo/GTK using Haskell.
I have already expected that the IO of a UI or canvas is not quite straightforward with the Haskell language. It turned out to be even worse than I thought. Nevertheless, the graphics API works with sufficient features.
The rules of the demo game can be simply explained as follows. The player controls a "celestial object", which casts certain gravity forces on the other objects. The goal is to avoid any collision of "celestial objects" within a given time.
A binary demo program can be found in the external link.