usual wxHaskell program looks like main = do run gui gui = do .... .... gui must have type IO a, run has type IO a -> IO (), also there is some initialization routines in run.