
While going through the latest and greatest Red Book (8th ed., for OpenGL 4.3), I've come to the conclusion that the current shader API (http://lambda.haskell.org/platform/doc/current/packages/OpenGL-2.8.0.0/doc/h...) is fundamentally broken. It was designed at a time when shaders were very new, so I had very little experience with them and how to expose them to Haskell nicely, and the underlying C API has been vastly extended over the last few years. As I see it, there is no good backwards-compatible way of improving the API, even though I would prefer that: I would really like to change Shader from a type class into a normal algebraic data type, changing quite a few signatures because of that on the way. This would make things much easier and straightforward, and it would be much more in the spirit of the OpenGL C API, where all shader types are treated more or less the same. Corollary: http://www.haskell.org/haskellwiki/Package_versioning_policy implies that the major version of the OpenGL package has to change, and because re-exports the GLUT package version number has to change, too, correct? Any thoughts, opinions and proposals are appreciated. Cheers, S.