Fix problems in the Haskell output.

The return types were frequently wrong. Now they seem to be correct.

None of the OpenGL types were exported. They are exported now.

Some functions were missing (such as glGetIntegerv). They are present now.

The code no longer throws any warnings even with -Wall.