for learning OpenGL in Haskell