MessageBox: safe import

The call to MessageBox must be 'safe' as window messages will still be sent to the calling application's window procedure (if it has one) while in the call to MessageBox.  This may trigger Haskell code to be called before the foreign function returns.

In addition, if the call is 'unsafe' this will block all other Haskell threads in the system (when using the -threaded runtime in GHC) until the user interacts with the message box.  This precludes any multi-threaded programming.
CheckDlgButton, CheckRadioButton, IsDlgButtonChecked: safe import

The calls to CheckDlgButton, CheckRadioButton, and IsDlgButtonChecked must be 'safe' as they send messages to the controls, which will be handled by the calling application's window procedure (if it has one) while in the call to the function.  This may trigger Haskell code to be called before the foreign function returns.
EnableWindow: safe import

The call to EnableWindow must be 'safe' as it sends a WM_CANCELMODE and/or a WM_ENABLE message before it returns.  These will be handled by the calling application's window procedure (if it has one) while in the call to EnableWindow.  This may trigger Haskell code to be called before the foreign function returns.
Merge pull request #3 from m37/safe-imports-1

Safe imports 1