[Haskell-cafe] Correct way to record state in OpenGL?