The Haskell package SDL is a binding to the C library libSDL
Simple DirectMedia Layer (SDL) is a cross-platform, free and open source software multimedia library written in C, that presents a simple interface to various platforms' graphics, sound, and input devices. Software developers use it to write computer games or other multimedia applications that can run on many operating systems including Windows, Mac OS X, OS 9, Linux, the PSP, Google Android, AmigaOS, AmigaOS 4, Haiku/BeOS, MorphOS, OpenVMS, Syllable, and WebOS. It manages video, events, digital audio, CD-ROM, sound, threads, shared object loading, networking and timers.
For installation of SDL on Windows, see Haskell SDL on Windows, check! (hacking required)
Haskell-SDL with Mac OS X
There are some issues with the Haskell SDL bindings and Mac OS X, notably linking problems that result in an error such as:
Linking test ...
"_SDL_main", referenced from: -[SDLMain applicationDidFinishLaunching:] in libSDLmain.a(SDLMain.o)
ld: symbol(s) not found
collect2: ld returned 1 exit status
In the SDL bindings' MACOSX file, there is some mention of a code example that shows how to solve this. Unfortunately, the Darcs repository where this code resides is down. After asking Nick Alexander, who was mentioned in the MACOSX file, he referred to the following work by Audrey Tang, where the Main-file trick for making this compile can still be found: 
- HSDL, an alternative binding to libSDL.
- Using HSDL, an automatic translation from Japanese.