
I admit author's bias, but I suggest graphics-drawingcombinators. It is a 2D drawing library based on OpenGL with a pure interface (no IO, except to finally render your drawing), and supports all the stuff you want except clipping.
It uses the SDL bindings, which I have heard are not easy to install on windows, but go smooth as a baby's bottom on ubuntu.
Luke
I'll second this. I started using graphics-drawingcombinators about a month ago so I could easily convert SDL Surfaces into 2D sprites within OpenGL. The entire haddock synopsis fits on a single browser page, making it extremely easily to start using and build off of. You might also want to take a look at Conrad Barski's picnic tutorial at http://www.lisperati.com/haskell/, where he does some work with 2D graphics by generating .svg files. -- Michael Steele.