Combinators for drawing 2D shapes and images in Haskell (using OpenGL)