Learning OpenGL while designing a basic game engine in Haskell and C++