A note of caution: Using Gtk2Hs together with the -threaded ghc is currently not supported. The reason is that GHC’s garbage collector might free Xlib or Win32 objects using an OS thread different to the one that is used to execute all other Gtk+ functions. The result will be a program that occasionally fails with an Xlib error or a crash on Windows. We are working on fixing this.
Note: this is all now fixed in the current darcs repository.