> I propose a simple program which pops up a window saying
> 'Hello World' with a button saying 'Bye' which you click and it changes
> the message to 'Goodbye'. if you click the button again the program
> exits.
I have been thinkering with the wxWindows library
and made a small Haskell binding to it that just supports this
example. It was an interesting exercise since the wxWindows library
is a large object-oriented C++ library. (but very portable, well supported,
efficient and with lots of super widgets, like an openGL canvas and a HTML
renderer)
 
Anyhow, I think it comes out rather nicely and I am quite surprised how
well the wxWindows library lends itself to Haskell access.
 
-- Daan.
 
 
-----------------------------------------------------------------
main 
  = wxRun $
    do w <- wxCreateFrame wxFRAME_DEFAULT_STYLE
       wxSetWindowBackgroundColor w white
       wxSetWindowSize w (Size 100 80)
       wxSetFrameTitle w "Bye!"
       l <- wxCreateLabel w "Hello World"
       wxSetWindowPosition l (Point 10 5)
       b <- wxCreateButton w "Bye"
       wxSetWindowPosition b (Point 10 25)
       wxSetButtonOnCommand b (bye w b l)
       wxShowWindow w
  where
    bye w b l
      = do wxSetControlLabel l "Goodbye"
           wxSetButtonOnCommand b (wxWindowClose w False)