OpenGL once used a plain integer for texture targets. But now it uses
different types for different targets. So the Texture is changed to be
existential datatype, which aims to hold any BindableTextureTarget type.
Texture is
Update its compatibility with latest GHC 7.8.3 and all dependant libraries