Im assuming [RGBAMode, WithAlphaComponent]
is just to set the bit depth
I'm not sure how it's done in Haskell, but you have to call glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
and glEnable( GL_BLEND );
. You will also have to draw your transparent faces back to front.
More on that here: http://www.opengl.org/wiki/Transparency_Sorting