diff --git a/CHANGELOG.markdown b/CHANGELOG.markdown
--- a/CHANGELOG.markdown
+++ b/CHANGELOG.markdown
@@ -1,3 +1,15 @@
+0.9.1 [2025.03.03]
+------------------
+* Drop support for pre-8.0 versions of GHC.
+
+0.9 [revision 1]
+---
+* Allow `fixed` 0.3
+
+0.9
+---
+* Moved to a staged build. Users no longer incur an 'hxt' dependency. Builds should also be faster. This was necessary for compatibility with `Cabal` 3
+
 0.8.0
 -----
 * Added support for cabal setup dependencies. This should ensure we build correctly in more environments going forward.
diff --git a/README.markdown b/README.markdown
--- a/README.markdown
+++ b/README.markdown
@@ -1,7 +1,7 @@
 gl
 ==
 
-[![Hackage](https://img.shields.io/hackage/v/gl.svg)](https://hackage.haskell.org/package/gl) [![Build Status](https://secure.travis-ci.org/ekmett/gl.png?branch=master)](http://travis-ci.org/ekmett/gl)
+[![Hackage](https://img.shields.io/hackage/v/gl.svg)](https://hackage.haskell.org/package/gl) [![Build Status](https://github.com/ekmett/gl/workflows/Haskell-CI/badge.svg)](https://github.com/ekmett/gl/actions?query=workflow%3AHaskell-CI)
 
 This package supplies low level bindings to all of the OpenGL specification for Haskell.
 
diff --git a/generated-src/Graphics/GL/Core32.hs b/generated-src/Graphics/GL/Core32.hs
--- a/generated-src/Graphics/GL/Core32.hs
+++ b/generated-src/Graphics/GL/Core32.hs
@@ -1124,10 +1124,18 @@
 
 import Graphics.GL.Internal.Shared
 
+pattern GL_CONTEXT_COMPATIBILITY_PROFILE_BIT  :: (Eq a, Num a) => a
+
 pattern GL_CONTEXT_COMPATIBILITY_PROFILE_BIT = 0x00000002
 
+pattern GL_CONTEXT_CORE_PROFILE_BIT  :: (Eq a, Num a) => a
+
 pattern GL_CONTEXT_CORE_PROFILE_BIT = 0x00000001
 
+pattern GL_CONTEXT_PROFILE_MASK  :: (Eq a, Num a) => a
+
 pattern GL_CONTEXT_PROFILE_MASK = 0x9126
+
+pattern GL_PROGRAM_POINT_SIZE  :: (Eq a, Num a) => a
 
 pattern GL_PROGRAM_POINT_SIZE = 0x8642
diff --git a/generated-src/Graphics/GL/Core40.hs b/generated-src/Graphics/GL/Core40.hs
--- a/generated-src/Graphics/GL/Core40.hs
+++ b/generated-src/Graphics/GL/Core40.hs
@@ -133,4 +133,6 @@
 
 import Graphics.GL.Core33
 
+pattern GL_PROXY_TEXTURE_CUBE_MAP_ARRAY  :: (Eq a, Num a) => a
+
 pattern GL_PROXY_TEXTURE_CUBE_MAP_ARRAY = 0x900B
diff --git a/generated-src/Graphics/GL/Core42.hs b/generated-src/Graphics/GL/Core42.hs
--- a/generated-src/Graphics/GL/Core42.hs
+++ b/generated-src/Graphics/GL/Core42.hs
@@ -133,10 +133,18 @@
 
 import Graphics.GL.Core41
 
+pattern GL_COMPRESSED_RGBA_BPTC_UNORM  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_RGBA_BPTC_UNORM = 0x8E8C
 
+pattern GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT = 0x8E8E
 
+pattern GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT = 0x8E8F
+
+pattern GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM  :: (Eq a, Num a) => a
 
 pattern GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM = 0x8E8D
diff --git a/generated-src/Graphics/GL/Core43.hs b/generated-src/Graphics/GL/Core43.hs
--- a/generated-src/Graphics/GL/Core43.hs
+++ b/generated-src/Graphics/GL/Core43.hs
@@ -314,6 +314,10 @@
 
 import Graphics.GL.Core42
 
+pattern GL_NUM_SHADING_LANGUAGE_VERSIONS  :: (Eq a, Num a) => a
+
 pattern GL_NUM_SHADING_LANGUAGE_VERSIONS = 0x82E9
+
+pattern GL_VERTEX_ATTRIB_ARRAY_LONG  :: (Eq a, Num a) => a
 
 pattern GL_VERTEX_ATTRIB_ARRAY_LONG = 0x874E
diff --git a/generated-src/Graphics/GL/Embedded32.hs b/generated-src/Graphics/GL/Embedded32.hs
--- a/generated-src/Graphics/GL/Embedded32.hs
+++ b/generated-src/Graphics/GL/Embedded32.hs
@@ -287,94 +287,186 @@
 
 {-# NOINLINE glPrimitiveBoundingBoxFunPtr #-}
 
+pattern GL_COLORBURN  :: (Eq a, Num a) => a
+
 pattern GL_COLORBURN = 0x929A
 
+pattern GL_COLORDODGE  :: (Eq a, Num a) => a
+
 pattern GL_COLORDODGE = 0x9299
 
+pattern GL_COMPRESSED_RGBA_ASTC_10x10  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_RGBA_ASTC_10x10 = 0x93BB
 
+pattern GL_COMPRESSED_RGBA_ASTC_10x5  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_RGBA_ASTC_10x5 = 0x93B8
 
+pattern GL_COMPRESSED_RGBA_ASTC_10x6  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_RGBA_ASTC_10x6 = 0x93B9
 
+pattern GL_COMPRESSED_RGBA_ASTC_10x8  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_RGBA_ASTC_10x8 = 0x93BA
 
+pattern GL_COMPRESSED_RGBA_ASTC_12x10  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_RGBA_ASTC_12x10 = 0x93BC
 
+pattern GL_COMPRESSED_RGBA_ASTC_12x12  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_RGBA_ASTC_12x12 = 0x93BD
 
+pattern GL_COMPRESSED_RGBA_ASTC_4x4  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_RGBA_ASTC_4x4 = 0x93B0
 
+pattern GL_COMPRESSED_RGBA_ASTC_5x4  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_RGBA_ASTC_5x4 = 0x93B1
 
+pattern GL_COMPRESSED_RGBA_ASTC_5x5  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_RGBA_ASTC_5x5 = 0x93B2
 
+pattern GL_COMPRESSED_RGBA_ASTC_6x5  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_RGBA_ASTC_6x5 = 0x93B3
 
+pattern GL_COMPRESSED_RGBA_ASTC_6x6  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_RGBA_ASTC_6x6 = 0x93B4
 
+pattern GL_COMPRESSED_RGBA_ASTC_8x5  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_RGBA_ASTC_8x5 = 0x93B5
 
+pattern GL_COMPRESSED_RGBA_ASTC_8x6  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_RGBA_ASTC_8x6 = 0x93B6
 
+pattern GL_COMPRESSED_RGBA_ASTC_8x8  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_RGBA_ASTC_8x8 = 0x93B7
 
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10 = 0x93DB
 
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5 = 0x93D8
 
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6 = 0x93D9
 
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8 = 0x93DA
 
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10 = 0x93DC
 
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12 = 0x93DD
 
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4 = 0x93D0
 
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4 = 0x93D1
 
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5 = 0x93D2
 
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5 = 0x93D3
 
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6 = 0x93D4
 
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5 = 0x93D5
 
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6 = 0x93D6
 
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8 = 0x93D7
 
+pattern GL_DARKEN  :: (Eq a, Num a) => a
+
 pattern GL_DARKEN = 0x9297
 
+pattern GL_DIFFERENCE  :: (Eq a, Num a) => a
+
 pattern GL_DIFFERENCE = 0x929E
 
+pattern GL_EXCLUSION  :: (Eq a, Num a) => a
+
 pattern GL_EXCLUSION = 0x92A0
 
+pattern GL_HARDLIGHT  :: (Eq a, Num a) => a
+
 pattern GL_HARDLIGHT = 0x929B
 
+pattern GL_HSL_COLOR  :: (Eq a, Num a) => a
+
 pattern GL_HSL_COLOR = 0x92AF
 
+pattern GL_HSL_HUE  :: (Eq a, Num a) => a
+
 pattern GL_HSL_HUE = 0x92AD
 
+pattern GL_HSL_LUMINOSITY  :: (Eq a, Num a) => a
+
 pattern GL_HSL_LUMINOSITY = 0x92B0
 
+pattern GL_HSL_SATURATION  :: (Eq a, Num a) => a
+
 pattern GL_HSL_SATURATION = 0x92AE
 
+pattern GL_LIGHTEN  :: (Eq a, Num a) => a
+
 pattern GL_LIGHTEN = 0x9298
 
+pattern GL_MULTIPLY  :: (Eq a, Num a) => a
+
 pattern GL_MULTIPLY = 0x9294
 
+pattern GL_MULTISAMPLE_LINE_WIDTH_GRANULARITY  :: (Eq a, Num a) => a
+
 pattern GL_MULTISAMPLE_LINE_WIDTH_GRANULARITY = 0x9382
 
+pattern GL_MULTISAMPLE_LINE_WIDTH_RANGE  :: (Eq a, Num a) => a
+
 pattern GL_MULTISAMPLE_LINE_WIDTH_RANGE = 0x9381
 
+pattern GL_OVERLAY  :: (Eq a, Num a) => a
+
 pattern GL_OVERLAY = 0x9296
 
+pattern GL_PRIMITIVE_BOUNDING_BOX  :: (Eq a, Num a) => a
+
 pattern GL_PRIMITIVE_BOUNDING_BOX = 0x92BE
 
+pattern GL_SCREEN  :: (Eq a, Num a) => a
+
 pattern GL_SCREEN = 0x9295
+
+pattern GL_SOFTLIGHT  :: (Eq a, Num a) => a
 
 pattern GL_SOFTLIGHT = 0x929C
diff --git a/generated-src/Graphics/GL/EmbeddedLite11.hs b/generated-src/Graphics/GL/EmbeddedLite11.hs
--- a/generated-src/Graphics/GL/EmbeddedLite11.hs
+++ b/generated-src/Graphics/GL/EmbeddedLite11.hs
@@ -910,8 +910,14 @@
 
 {-# NOINLINE glTranslatexFunPtr #-}
 
+pattern GL_VERSION_ES_CL_1_0  :: (Eq a, Num a) => a
+
 pattern GL_VERSION_ES_CL_1_0 = 1
 
+pattern GL_VERSION_ES_CL_1_1  :: (Eq a, Num a) => a
+
 pattern GL_VERSION_ES_CL_1_1 = 1
+
+pattern GL_VERSION_ES_CM_1_1  :: (Eq a, Num a) => a
 
 pattern GL_VERSION_ES_CM_1_1 = 1
diff --git a/generated-src/Graphics/GL/Ext/AMD/BlendMinmaxFactor.hs b/generated-src/Graphics/GL/Ext/AMD/BlendMinmaxFactor.hs
--- a/generated-src/Graphics/GL/Ext/AMD/BlendMinmaxFactor.hs
+++ b/generated-src/Graphics/GL/Ext/AMD/BlendMinmaxFactor.hs
@@ -18,6 +18,10 @@
 gl_AMD_blend_minmax_factor = member "GL_AMD_blend_minmax_factor" extensions
 {-# NOINLINE gl_AMD_blend_minmax_factor #-}
 
+pattern GL_FACTOR_MAX_AMD  :: (Eq a, Num a) => a
+
 pattern GL_FACTOR_MAX_AMD = 0x901D
+
+pattern GL_FACTOR_MIN_AMD  :: (Eq a, Num a) => a
 
 pattern GL_FACTOR_MIN_AMD = 0x901C
diff --git a/generated-src/Graphics/GL/Ext/AMD/Compressed3DCTexture.hs b/generated-src/Graphics/GL/Ext/AMD/Compressed3DCTexture.hs
--- a/generated-src/Graphics/GL/Ext/AMD/Compressed3DCTexture.hs
+++ b/generated-src/Graphics/GL/Ext/AMD/Compressed3DCTexture.hs
@@ -18,6 +18,10 @@
 gl_AMD_compressed_3DC_texture = member "GL_AMD_compressed_3DC_texture" extensions
 {-# NOINLINE gl_AMD_compressed_3DC_texture #-}
 
+pattern GL_3DC_XY_AMD  :: (Eq a, Num a) => a
+
 pattern GL_3DC_XY_AMD = 0x87FA
+
+pattern GL_3DC_X_AMD  :: (Eq a, Num a) => a
 
 pattern GL_3DC_X_AMD = 0x87F9
diff --git a/generated-src/Graphics/GL/Ext/AMD/CompressedATCTexture.hs b/generated-src/Graphics/GL/Ext/AMD/CompressedATCTexture.hs
--- a/generated-src/Graphics/GL/Ext/AMD/CompressedATCTexture.hs
+++ b/generated-src/Graphics/GL/Ext/AMD/CompressedATCTexture.hs
@@ -19,8 +19,14 @@
 gl_AMD_compressed_ATC_texture = member "GL_AMD_compressed_ATC_texture" extensions
 {-# NOINLINE gl_AMD_compressed_ATC_texture #-}
 
+pattern GL_ATC_RGBA_EXPLICIT_ALPHA_AMD  :: (Eq a, Num a) => a
+
 pattern GL_ATC_RGBA_EXPLICIT_ALPHA_AMD = 0x8C93
 
+pattern GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD  :: (Eq a, Num a) => a
+
 pattern GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD = 0x87EE
+
+pattern GL_ATC_RGB_AMD  :: (Eq a, Num a) => a
 
 pattern GL_ATC_RGB_AMD = 0x8C92
diff --git a/generated-src/Graphics/GL/Ext/AMD/DebugOutput.hs b/generated-src/Graphics/GL/Ext/AMD/DebugOutput.hs
--- a/generated-src/Graphics/GL/Ext/AMD/DebugOutput.hs
+++ b/generated-src/Graphics/GL/Ext/AMD/DebugOutput.hs
@@ -99,30 +99,58 @@
 
 {-# NOINLINE glGetDebugMessageLogAMDFunPtr #-}
 
+pattern GL_DEBUG_CATEGORY_API_ERROR_AMD  :: (Eq a, Num a) => a
+
 pattern GL_DEBUG_CATEGORY_API_ERROR_AMD = 0x9149
 
+pattern GL_DEBUG_CATEGORY_APPLICATION_AMD  :: (Eq a, Num a) => a
+
 pattern GL_DEBUG_CATEGORY_APPLICATION_AMD = 0x914F
 
+pattern GL_DEBUG_CATEGORY_DEPRECATION_AMD  :: (Eq a, Num a) => a
+
 pattern GL_DEBUG_CATEGORY_DEPRECATION_AMD = 0x914B
 
+pattern GL_DEBUG_CATEGORY_OTHER_AMD  :: (Eq a, Num a) => a
+
 pattern GL_DEBUG_CATEGORY_OTHER_AMD = 0x9150
 
+pattern GL_DEBUG_CATEGORY_PERFORMANCE_AMD  :: (Eq a, Num a) => a
+
 pattern GL_DEBUG_CATEGORY_PERFORMANCE_AMD = 0x914D
 
+pattern GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD  :: (Eq a, Num a) => a
+
 pattern GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD = 0x914E
 
+pattern GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD  :: (Eq a, Num a) => a
+
 pattern GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD = 0x914C
 
+pattern GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD  :: (Eq a, Num a) => a
+
 pattern GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD = 0x914A
 
+pattern GL_DEBUG_LOGGED_MESSAGES_AMD  :: (Eq a, Num a) => a
+
 pattern GL_DEBUG_LOGGED_MESSAGES_AMD = 0x9145
 
+pattern GL_DEBUG_SEVERITY_HIGH_AMD  :: (Eq a, Num a) => a
+
 pattern GL_DEBUG_SEVERITY_HIGH_AMD = 0x9146
 
+pattern GL_DEBUG_SEVERITY_LOW_AMD  :: (Eq a, Num a) => a
+
 pattern GL_DEBUG_SEVERITY_LOW_AMD = 0x9148
 
+pattern GL_DEBUG_SEVERITY_MEDIUM_AMD  :: (Eq a, Num a) => a
+
 pattern GL_DEBUG_SEVERITY_MEDIUM_AMD = 0x9147
 
+pattern GL_MAX_DEBUG_LOGGED_MESSAGES_AMD  :: (Eq a, Num a) => a
+
 pattern GL_MAX_DEBUG_LOGGED_MESSAGES_AMD = 0x9144
+
+pattern GL_MAX_DEBUG_MESSAGE_LENGTH_AMD  :: (Eq a, Num a) => a
 
 pattern GL_MAX_DEBUG_MESSAGE_LENGTH_AMD = 0x9143
diff --git a/generated-src/Graphics/GL/Ext/AMD/DepthClampSeparate.hs b/generated-src/Graphics/GL/Ext/AMD/DepthClampSeparate.hs
--- a/generated-src/Graphics/GL/Ext/AMD/DepthClampSeparate.hs
+++ b/generated-src/Graphics/GL/Ext/AMD/DepthClampSeparate.hs
@@ -18,6 +18,10 @@
 gl_AMD_depth_clamp_separate = member "GL_AMD_depth_clamp_separate" extensions
 {-# NOINLINE gl_AMD_depth_clamp_separate #-}
 
+pattern GL_DEPTH_CLAMP_FAR_AMD  :: (Eq a, Num a) => a
+
 pattern GL_DEPTH_CLAMP_FAR_AMD = 0x901F
+
+pattern GL_DEPTH_CLAMP_NEAR_AMD  :: (Eq a, Num a) => a
 
 pattern GL_DEPTH_CLAMP_NEAR_AMD = 0x901E
diff --git a/generated-src/Graphics/GL/Ext/AMD/FramebufferSamplePositions.hs b/generated-src/Graphics/GL/Ext/AMD/FramebufferSamplePositions.hs
--- a/generated-src/Graphics/GL/Ext/AMD/FramebufferSamplePositions.hs
+++ b/generated-src/Graphics/GL/Ext/AMD/FramebufferSamplePositions.hs
@@ -74,8 +74,14 @@
 
 {-# NOINLINE glNamedFramebufferSamplePositionsfvAMDFunPtr #-}
 
+pattern GL_ALL_PIXELS_AMD  :: (Eq a, Num a) => a
+
 pattern GL_ALL_PIXELS_AMD = 0xFFFFFFFF
 
+pattern GL_PIXELS_PER_SAMPLE_PATTERN_X_AMD  :: (Eq a, Num a) => a
+
 pattern GL_PIXELS_PER_SAMPLE_PATTERN_X_AMD = 0x91AE
+
+pattern GL_PIXELS_PER_SAMPLE_PATTERN_Y_AMD  :: (Eq a, Num a) => a
 
 pattern GL_PIXELS_PER_SAMPLE_PATTERN_Y_AMD = 0x91AF
diff --git a/generated-src/Graphics/GL/Ext/AMD/GpuShaderHalfFloat.hs b/generated-src/Graphics/GL/Ext/AMD/GpuShaderHalfFloat.hs
--- a/generated-src/Graphics/GL/Ext/AMD/GpuShaderHalfFloat.hs
+++ b/generated-src/Graphics/GL/Ext/AMD/GpuShaderHalfFloat.hs
@@ -30,20 +30,38 @@
 gl_AMD_gpu_shader_half_float = member "GL_AMD_gpu_shader_half_float" extensions
 {-# NOINLINE gl_AMD_gpu_shader_half_float #-}
 
+pattern GL_FLOAT16_MAT2_AMD  :: (Eq a, Num a) => a
+
 pattern GL_FLOAT16_MAT2_AMD = 0x91C5
 
+pattern GL_FLOAT16_MAT2x3_AMD  :: (Eq a, Num a) => a
+
 pattern GL_FLOAT16_MAT2x3_AMD = 0x91C8
 
+pattern GL_FLOAT16_MAT2x4_AMD  :: (Eq a, Num a) => a
+
 pattern GL_FLOAT16_MAT2x4_AMD = 0x91C9
 
+pattern GL_FLOAT16_MAT3_AMD  :: (Eq a, Num a) => a
+
 pattern GL_FLOAT16_MAT3_AMD = 0x91C6
 
+pattern GL_FLOAT16_MAT3x2_AMD  :: (Eq a, Num a) => a
+
 pattern GL_FLOAT16_MAT3x2_AMD = 0x91CA
 
+pattern GL_FLOAT16_MAT3x4_AMD  :: (Eq a, Num a) => a
+
 pattern GL_FLOAT16_MAT3x4_AMD = 0x91CB
 
+pattern GL_FLOAT16_MAT4_AMD  :: (Eq a, Num a) => a
+
 pattern GL_FLOAT16_MAT4_AMD = 0x91C7
 
+pattern GL_FLOAT16_MAT4x2_AMD  :: (Eq a, Num a) => a
+
 pattern GL_FLOAT16_MAT4x2_AMD = 0x91CC
+
+pattern GL_FLOAT16_MAT4x3_AMD  :: (Eq a, Num a) => a
 
 pattern GL_FLOAT16_MAT4x3_AMD = 0x91CD
diff --git a/generated-src/Graphics/GL/Ext/AMD/InterleavedElements.hs b/generated-src/Graphics/GL/Ext/AMD/InterleavedElements.hs
--- a/generated-src/Graphics/GL/Ext/AMD/InterleavedElements.hs
+++ b/generated-src/Graphics/GL/Ext/AMD/InterleavedElements.hs
@@ -43,6 +43,10 @@
 
 {-# NOINLINE glVertexAttribParameteriAMDFunPtr #-}
 
+pattern GL_VERTEX_ELEMENT_SWIZZLE_AMD  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_ELEMENT_SWIZZLE_AMD = 0x91A4
+
+pattern GL_VERTEX_ID_SWIZZLE_AMD  :: (Eq a, Num a) => a
 
 pattern GL_VERTEX_ID_SWIZZLE_AMD = 0x91A5
diff --git a/generated-src/Graphics/GL/Ext/AMD/NameGenDelete.hs b/generated-src/Graphics/GL/Ext/AMD/NameGenDelete.hs
--- a/generated-src/Graphics/GL/Ext/AMD/NameGenDelete.hs
+++ b/generated-src/Graphics/GL/Ext/AMD/NameGenDelete.hs
@@ -66,12 +66,22 @@
 
 {-# NOINLINE glIsNameAMDFunPtr #-}
 
+pattern GL_DATA_BUFFER_AMD  :: (Eq a, Num a) => a
+
 pattern GL_DATA_BUFFER_AMD = 0x9151
 
+pattern GL_PERFORMANCE_MONITOR_AMD  :: (Eq a, Num a) => a
+
 pattern GL_PERFORMANCE_MONITOR_AMD = 0x9152
 
+pattern GL_QUERY_OBJECT_AMD  :: (Eq a, Num a) => a
+
 pattern GL_QUERY_OBJECT_AMD = 0x9153
 
+pattern GL_SAMPLER_OBJECT_AMD  :: (Eq a, Num a) => a
+
 pattern GL_SAMPLER_OBJECT_AMD = 0x9155
+
+pattern GL_VERTEX_ARRAY_OBJECT_AMD  :: (Eq a, Num a) => a
 
 pattern GL_VERTEX_ARRAY_OBJECT_AMD = 0x9154
diff --git a/generated-src/Graphics/GL/Ext/AMD/OcclusionQueryEvent.hs b/generated-src/Graphics/GL/Ext/AMD/OcclusionQueryEvent.hs
--- a/generated-src/Graphics/GL/Ext/AMD/OcclusionQueryEvent.hs
+++ b/generated-src/Graphics/GL/Ext/AMD/OcclusionQueryEvent.hs
@@ -41,14 +41,26 @@
 
 {-# NOINLINE glQueryObjectParameteruiAMDFunPtr #-}
 
+pattern GL_OCCLUSION_QUERY_EVENT_MASK_AMD  :: (Eq a, Num a) => a
+
 pattern GL_OCCLUSION_QUERY_EVENT_MASK_AMD = 0x874F
 
+pattern GL_QUERY_ALL_EVENT_BITS_AMD  :: (Eq a, Num a) => a
+
 pattern GL_QUERY_ALL_EVENT_BITS_AMD = 0xFFFFFFFF
 
+pattern GL_QUERY_DEPTH_BOUNDS_FAIL_EVENT_BIT_AMD  :: (Eq a, Num a) => a
+
 pattern GL_QUERY_DEPTH_BOUNDS_FAIL_EVENT_BIT_AMD = 0x00000008
 
+pattern GL_QUERY_DEPTH_FAIL_EVENT_BIT_AMD  :: (Eq a, Num a) => a
+
 pattern GL_QUERY_DEPTH_FAIL_EVENT_BIT_AMD = 0x00000002
 
+pattern GL_QUERY_DEPTH_PASS_EVENT_BIT_AMD  :: (Eq a, Num a) => a
+
 pattern GL_QUERY_DEPTH_PASS_EVENT_BIT_AMD = 0x00000001
+
+pattern GL_QUERY_STENCIL_FAIL_EVENT_BIT_AMD  :: (Eq a, Num a) => a
 
 pattern GL_QUERY_STENCIL_FAIL_EVENT_BIT_AMD = 0x00000004
diff --git a/generated-src/Graphics/GL/Ext/AMD/PerformanceMonitor.hs b/generated-src/Graphics/GL/Ext/AMD/PerformanceMonitor.hs
--- a/generated-src/Graphics/GL/Ext/AMD/PerformanceMonitor.hs
+++ b/generated-src/Graphics/GL/Ext/AMD/PerformanceMonitor.hs
@@ -192,16 +192,30 @@
 
 {-# NOINLINE glSelectPerfMonitorCountersAMDFunPtr #-}
 
+pattern GL_COUNTER_RANGE_AMD  :: (Eq a, Num a) => a
+
 pattern GL_COUNTER_RANGE_AMD = 0x8BC1
 
+pattern GL_COUNTER_TYPE_AMD  :: (Eq a, Num a) => a
+
 pattern GL_COUNTER_TYPE_AMD = 0x8BC0
 
+pattern GL_PERCENTAGE_AMD  :: (Eq a, Num a) => a
+
 pattern GL_PERCENTAGE_AMD = 0x8BC3
 
+pattern GL_PERFMON_RESULT_AMD  :: (Eq a, Num a) => a
+
 pattern GL_PERFMON_RESULT_AMD = 0x8BC6
 
+pattern GL_PERFMON_RESULT_AVAILABLE_AMD  :: (Eq a, Num a) => a
+
 pattern GL_PERFMON_RESULT_AVAILABLE_AMD = 0x8BC4
 
+pattern GL_PERFMON_RESULT_SIZE_AMD  :: (Eq a, Num a) => a
+
 pattern GL_PERFMON_RESULT_SIZE_AMD = 0x8BC5
+
+pattern GL_UNSIGNED_INT64_AMD  :: (Eq a, Num a) => a
 
 pattern GL_UNSIGNED_INT64_AMD = 0x8BC2
diff --git a/generated-src/Graphics/GL/Ext/AMD/PinnedMemory.hs b/generated-src/Graphics/GL/Ext/AMD/PinnedMemory.hs
--- a/generated-src/Graphics/GL/Ext/AMD/PinnedMemory.hs
+++ b/generated-src/Graphics/GL/Ext/AMD/PinnedMemory.hs
@@ -17,4 +17,6 @@
 gl_AMD_pinned_memory = member "GL_AMD_pinned_memory" extensions
 {-# NOINLINE gl_AMD_pinned_memory #-}
 
+pattern GL_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD  :: (Eq a, Num a) => a
+
 pattern GL_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD = 0x9160
diff --git a/generated-src/Graphics/GL/Ext/AMD/ProgramBinaryZ400.hs b/generated-src/Graphics/GL/Ext/AMD/ProgramBinaryZ400.hs
--- a/generated-src/Graphics/GL/Ext/AMD/ProgramBinaryZ400.hs
+++ b/generated-src/Graphics/GL/Ext/AMD/ProgramBinaryZ400.hs
@@ -17,4 +17,6 @@
 gl_AMD_program_binary_Z400 = member "GL_AMD_program_binary_Z400" extensions
 {-# NOINLINE gl_AMD_program_binary_Z400 #-}
 
+pattern GL_Z400_BINARY_AMD  :: (Eq a, Num a) => a
+
 pattern GL_Z400_BINARY_AMD = 0x8740
diff --git a/generated-src/Graphics/GL/Ext/AMD/QueryBufferObject.hs b/generated-src/Graphics/GL/Ext/AMD/QueryBufferObject.hs
--- a/generated-src/Graphics/GL/Ext/AMD/QueryBufferObject.hs
+++ b/generated-src/Graphics/GL/Ext/AMD/QueryBufferObject.hs
@@ -19,8 +19,14 @@
 gl_AMD_query_buffer_object = member "GL_AMD_query_buffer_object" extensions
 {-# NOINLINE gl_AMD_query_buffer_object #-}
 
+pattern GL_QUERY_BUFFER_AMD  :: (Eq a, Num a) => a
+
 pattern GL_QUERY_BUFFER_AMD = 0x9192
 
+pattern GL_QUERY_BUFFER_BINDING_AMD  :: (Eq a, Num a) => a
+
 pattern GL_QUERY_BUFFER_BINDING_AMD = 0x9193
+
+pattern GL_QUERY_RESULT_NO_WAIT_AMD  :: (Eq a, Num a) => a
 
 pattern GL_QUERY_RESULT_NO_WAIT_AMD = 0x9194
diff --git a/generated-src/Graphics/GL/Ext/AMD/SparseTexture.hs b/generated-src/Graphics/GL/Ext/AMD/SparseTexture.hs
--- a/generated-src/Graphics/GL/Ext/AMD/SparseTexture.hs
+++ b/generated-src/Graphics/GL/Ext/AMD/SparseTexture.hs
@@ -54,20 +54,38 @@
 
 {-# NOINLINE glTextureStorageSparseAMDFunPtr #-}
 
+pattern GL_MAX_SPARSE_3D_TEXTURE_SIZE_AMD  :: (Eq a, Num a) => a
+
 pattern GL_MAX_SPARSE_3D_TEXTURE_SIZE_AMD = 0x9199
 
+pattern GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS  :: (Eq a, Num a) => a
+
 pattern GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS = 0x919A
 
+pattern GL_MAX_SPARSE_TEXTURE_SIZE_AMD  :: (Eq a, Num a) => a
+
 pattern GL_MAX_SPARSE_TEXTURE_SIZE_AMD = 0x9198
 
+pattern GL_MIN_LOD_WARNING_AMD  :: (Eq a, Num a) => a
+
 pattern GL_MIN_LOD_WARNING_AMD = 0x919C
 
+pattern GL_MIN_SPARSE_LEVEL_AMD  :: (Eq a, Num a) => a
+
 pattern GL_MIN_SPARSE_LEVEL_AMD = 0x919B
 
+pattern GL_TEXTURE_STORAGE_SPARSE_BIT_AMD  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_STORAGE_SPARSE_BIT_AMD = 0x00000001
 
+pattern GL_VIRTUAL_PAGE_SIZE_X_AMD  :: (Eq a, Num a) => a
+
 pattern GL_VIRTUAL_PAGE_SIZE_X_AMD = 0x9195
 
+pattern GL_VIRTUAL_PAGE_SIZE_Y_AMD  :: (Eq a, Num a) => a
+
 pattern GL_VIRTUAL_PAGE_SIZE_Y_AMD = 0x9196
+
+pattern GL_VIRTUAL_PAGE_SIZE_Z_AMD  :: (Eq a, Num a) => a
 
 pattern GL_VIRTUAL_PAGE_SIZE_Z_AMD = 0x9197
diff --git a/generated-src/Graphics/GL/Ext/AMD/StencilOperationExtended.hs b/generated-src/Graphics/GL/Ext/AMD/StencilOperationExtended.hs
--- a/generated-src/Graphics/GL/Ext/AMD/StencilOperationExtended.hs
+++ b/generated-src/Graphics/GL/Ext/AMD/StencilOperationExtended.hs
@@ -39,10 +39,18 @@
 
 {-# NOINLINE glStencilOpValueAMDFunPtr #-}
 
+pattern GL_REPLACE_VALUE_AMD  :: (Eq a, Num a) => a
+
 pattern GL_REPLACE_VALUE_AMD = 0x874B
 
+pattern GL_SET_AMD  :: (Eq a, Num a) => a
+
 pattern GL_SET_AMD = 0x874A
 
+pattern GL_STENCIL_BACK_OP_VALUE_AMD  :: (Eq a, Num a) => a
+
 pattern GL_STENCIL_BACK_OP_VALUE_AMD = 0x874D
+
+pattern GL_STENCIL_OP_VALUE_AMD  :: (Eq a, Num a) => a
 
 pattern GL_STENCIL_OP_VALUE_AMD = 0x874C
diff --git a/generated-src/Graphics/GL/Ext/AMD/TransformFeedback4.hs b/generated-src/Graphics/GL/Ext/AMD/TransformFeedback4.hs
--- a/generated-src/Graphics/GL/Ext/AMD/TransformFeedback4.hs
+++ b/generated-src/Graphics/GL/Ext/AMD/TransformFeedback4.hs
@@ -17,4 +17,6 @@
 gl_AMD_transform_feedback4 = member "GL_AMD_transform_feedback4" extensions
 {-# NOINLINE gl_AMD_transform_feedback4 #-}
 
+pattern GL_STREAM_RASTERIZATION_AMD  :: (Eq a, Num a) => a
+
 pattern GL_STREAM_RASTERIZATION_AMD = 0x91A0
diff --git a/generated-src/Graphics/GL/Ext/AMD/VertexShaderTessellator.hs b/generated-src/Graphics/GL/Ext/AMD/VertexShaderTessellator.hs
--- a/generated-src/Graphics/GL/Ext/AMD/VertexShaderTessellator.hs
+++ b/generated-src/Graphics/GL/Ext/AMD/VertexShaderTessellator.hs
@@ -52,16 +52,30 @@
 
 {-# NOINLINE glTessellationModeAMDFunPtr #-}
 
+pattern GL_CONTINUOUS_AMD  :: (Eq a, Num a) => a
+
 pattern GL_CONTINUOUS_AMD = 0x9007
 
+pattern GL_DISCRETE_AMD  :: (Eq a, Num a) => a
+
 pattern GL_DISCRETE_AMD = 0x9006
 
+pattern GL_INT_SAMPLER_BUFFER_AMD  :: (Eq a, Num a) => a
+
 pattern GL_INT_SAMPLER_BUFFER_AMD = 0x9002
 
+pattern GL_SAMPLER_BUFFER_AMD  :: (Eq a, Num a) => a
+
 pattern GL_SAMPLER_BUFFER_AMD = 0x9001
 
+pattern GL_TESSELLATION_FACTOR_AMD  :: (Eq a, Num a) => a
+
 pattern GL_TESSELLATION_FACTOR_AMD = 0x9005
 
+pattern GL_TESSELLATION_MODE_AMD  :: (Eq a, Num a) => a
+
 pattern GL_TESSELLATION_MODE_AMD = 0x9004
+
+pattern GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD  :: (Eq a, Num a) => a
 
 pattern GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD = 0x9003
diff --git a/generated-src/Graphics/GL/Ext/ANGLE/FramebufferBlit.hs b/generated-src/Graphics/GL/Ext/ANGLE/FramebufferBlit.hs
--- a/generated-src/Graphics/GL/Ext/ANGLE/FramebufferBlit.hs
+++ b/generated-src/Graphics/GL/Ext/ANGLE/FramebufferBlit.hs
@@ -37,10 +37,18 @@
 
 {-# NOINLINE glBlitFramebufferANGLEFunPtr #-}
 
+pattern GL_DRAW_FRAMEBUFFER_ANGLE  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_FRAMEBUFFER_ANGLE = 0x8CA9
 
+pattern GL_DRAW_FRAMEBUFFER_BINDING_ANGLE  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_FRAMEBUFFER_BINDING_ANGLE = 0x8CA6
 
+pattern GL_READ_FRAMEBUFFER_ANGLE  :: (Eq a, Num a) => a
+
 pattern GL_READ_FRAMEBUFFER_ANGLE = 0x8CA8
+
+pattern GL_READ_FRAMEBUFFER_BINDING_ANGLE  :: (Eq a, Num a) => a
 
 pattern GL_READ_FRAMEBUFFER_BINDING_ANGLE = 0x8CAA
diff --git a/generated-src/Graphics/GL/Ext/ANGLE/FramebufferMultisample.hs b/generated-src/Graphics/GL/Ext/ANGLE/FramebufferMultisample.hs
--- a/generated-src/Graphics/GL/Ext/ANGLE/FramebufferMultisample.hs
+++ b/generated-src/Graphics/GL/Ext/ANGLE/FramebufferMultisample.hs
@@ -36,8 +36,14 @@
 
 {-# NOINLINE glRenderbufferStorageMultisampleANGLEFunPtr #-}
 
+pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE  :: (Eq a, Num a) => a
+
 pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE = 0x8D56
 
+pattern GL_MAX_SAMPLES_ANGLE  :: (Eq a, Num a) => a
+
 pattern GL_MAX_SAMPLES_ANGLE = 0x8D57
+
+pattern GL_RENDERBUFFER_SAMPLES_ANGLE  :: (Eq a, Num a) => a
 
 pattern GL_RENDERBUFFER_SAMPLES_ANGLE = 0x8CAB
diff --git a/generated-src/Graphics/GL/Ext/ANGLE/InstancedArrays.hs b/generated-src/Graphics/GL/Ext/ANGLE/InstancedArrays.hs
--- a/generated-src/Graphics/GL/Ext/ANGLE/InstancedArrays.hs
+++ b/generated-src/Graphics/GL/Ext/ANGLE/InstancedArrays.hs
@@ -70,4 +70,6 @@
 
 {-# NOINLINE glVertexAttribDivisorANGLEFunPtr #-}
 
+pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE = 0x88FE
diff --git a/generated-src/Graphics/GL/Ext/ANGLE/PackReverseRowOrder.hs b/generated-src/Graphics/GL/Ext/ANGLE/PackReverseRowOrder.hs
--- a/generated-src/Graphics/GL/Ext/ANGLE/PackReverseRowOrder.hs
+++ b/generated-src/Graphics/GL/Ext/ANGLE/PackReverseRowOrder.hs
@@ -17,4 +17,6 @@
 gl_ANGLE_pack_reverse_row_order = member "GL_ANGLE_pack_reverse_row_order" extensions
 {-# NOINLINE gl_ANGLE_pack_reverse_row_order #-}
 
+pattern GL_PACK_REVERSE_ROW_ORDER_ANGLE  :: (Eq a, Num a) => a
+
 pattern GL_PACK_REVERSE_ROW_ORDER_ANGLE = 0x93A4
diff --git a/generated-src/Graphics/GL/Ext/ANGLE/ProgramBinary.hs b/generated-src/Graphics/GL/Ext/ANGLE/ProgramBinary.hs
--- a/generated-src/Graphics/GL/Ext/ANGLE/ProgramBinary.hs
+++ b/generated-src/Graphics/GL/Ext/ANGLE/ProgramBinary.hs
@@ -17,4 +17,6 @@
 gl_ANGLE_program_binary = member "GL_ANGLE_program_binary" extensions
 {-# NOINLINE gl_ANGLE_program_binary #-}
 
+pattern GL_PROGRAM_BINARY_ANGLE  :: (Eq a, Num a) => a
+
 pattern GL_PROGRAM_BINARY_ANGLE = 0x93A6
diff --git a/generated-src/Graphics/GL/Ext/ANGLE/TextureCompressionDxt3.hs b/generated-src/Graphics/GL/Ext/ANGLE/TextureCompressionDxt3.hs
--- a/generated-src/Graphics/GL/Ext/ANGLE/TextureCompressionDxt3.hs
+++ b/generated-src/Graphics/GL/Ext/ANGLE/TextureCompressionDxt3.hs
@@ -17,4 +17,6 @@
 gl_ANGLE_texture_compression_dxt3 = member "GL_ANGLE_texture_compression_dxt3" extensions
 {-# NOINLINE gl_ANGLE_texture_compression_dxt3 #-}
 
+pattern GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE = 0x83F2
diff --git a/generated-src/Graphics/GL/Ext/ANGLE/TextureCompressionDxt5.hs b/generated-src/Graphics/GL/Ext/ANGLE/TextureCompressionDxt5.hs
--- a/generated-src/Graphics/GL/Ext/ANGLE/TextureCompressionDxt5.hs
+++ b/generated-src/Graphics/GL/Ext/ANGLE/TextureCompressionDxt5.hs
@@ -17,4 +17,6 @@
 gl_ANGLE_texture_compression_dxt5 = member "GL_ANGLE_texture_compression_dxt5" extensions
 {-# NOINLINE gl_ANGLE_texture_compression_dxt5 #-}
 
+pattern GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE = 0x83F3
diff --git a/generated-src/Graphics/GL/Ext/ANGLE/TextureUsage.hs b/generated-src/Graphics/GL/Ext/ANGLE/TextureUsage.hs
--- a/generated-src/Graphics/GL/Ext/ANGLE/TextureUsage.hs
+++ b/generated-src/Graphics/GL/Ext/ANGLE/TextureUsage.hs
@@ -18,6 +18,10 @@
 gl_ANGLE_texture_usage = member "GL_ANGLE_texture_usage" extensions
 {-# NOINLINE gl_ANGLE_texture_usage #-}
 
+pattern GL_FRAMEBUFFER_ATTACHMENT_ANGLE  :: (Eq a, Num a) => a
+
 pattern GL_FRAMEBUFFER_ATTACHMENT_ANGLE = 0x93A3
+
+pattern GL_TEXTURE_USAGE_ANGLE  :: (Eq a, Num a) => a
 
 pattern GL_TEXTURE_USAGE_ANGLE = 0x93A2
diff --git a/generated-src/Graphics/GL/Ext/ANGLE/TranslatedShaderSource.hs b/generated-src/Graphics/GL/Ext/ANGLE/TranslatedShaderSource.hs
--- a/generated-src/Graphics/GL/Ext/ANGLE/TranslatedShaderSource.hs
+++ b/generated-src/Graphics/GL/Ext/ANGLE/TranslatedShaderSource.hs
@@ -36,4 +36,6 @@
 
 {-# NOINLINE glGetTranslatedShaderSourceANGLEFunPtr #-}
 
+pattern GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE  :: (Eq a, Num a) => a
+
 pattern GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE = 0x93A0
diff --git a/generated-src/Graphics/GL/Ext/APPLE/AuxDepthStencil.hs b/generated-src/Graphics/GL/Ext/APPLE/AuxDepthStencil.hs
--- a/generated-src/Graphics/GL/Ext/APPLE/AuxDepthStencil.hs
+++ b/generated-src/Graphics/GL/Ext/APPLE/AuxDepthStencil.hs
@@ -17,4 +17,6 @@
 gl_APPLE_aux_depth_stencil = member "GL_APPLE_aux_depth_stencil" extensions
 {-# NOINLINE gl_APPLE_aux_depth_stencil #-}
 
+pattern GL_AUX_DEPTH_STENCIL_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_AUX_DEPTH_STENCIL_APPLE = 0x8A14
diff --git a/generated-src/Graphics/GL/Ext/APPLE/ClientStorage.hs b/generated-src/Graphics/GL/Ext/APPLE/ClientStorage.hs
--- a/generated-src/Graphics/GL/Ext/APPLE/ClientStorage.hs
+++ b/generated-src/Graphics/GL/Ext/APPLE/ClientStorage.hs
@@ -17,4 +17,6 @@
 gl_APPLE_client_storage = member "GL_APPLE_client_storage" extensions
 {-# NOINLINE gl_APPLE_client_storage #-}
 
+pattern GL_UNPACK_CLIENT_STORAGE_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_UNPACK_CLIENT_STORAGE_APPLE = 0x85B2
diff --git a/generated-src/Graphics/GL/Ext/APPLE/ClipDistance.hs b/generated-src/Graphics/GL/Ext/APPLE/ClipDistance.hs
--- a/generated-src/Graphics/GL/Ext/APPLE/ClipDistance.hs
+++ b/generated-src/Graphics/GL/Ext/APPLE/ClipDistance.hs
@@ -25,20 +25,38 @@
 gl_APPLE_clip_distance = member "GL_APPLE_clip_distance" extensions
 {-# NOINLINE gl_APPLE_clip_distance #-}
 
+pattern GL_CLIP_DISTANCE0_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_CLIP_DISTANCE0_APPLE = 0x3000
 
+pattern GL_CLIP_DISTANCE1_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_CLIP_DISTANCE1_APPLE = 0x3001
 
+pattern GL_CLIP_DISTANCE2_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_CLIP_DISTANCE2_APPLE = 0x3002
 
+pattern GL_CLIP_DISTANCE3_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_CLIP_DISTANCE3_APPLE = 0x3003
 
+pattern GL_CLIP_DISTANCE4_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_CLIP_DISTANCE4_APPLE = 0x3004
 
+pattern GL_CLIP_DISTANCE5_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_CLIP_DISTANCE5_APPLE = 0x3005
 
+pattern GL_CLIP_DISTANCE6_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_CLIP_DISTANCE6_APPLE = 0x3006
 
+pattern GL_CLIP_DISTANCE7_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_CLIP_DISTANCE7_APPLE = 0x3007
+
+pattern GL_MAX_CLIP_DISTANCES_APPLE  :: (Eq a, Num a) => a
 
 pattern GL_MAX_CLIP_DISTANCES_APPLE = 0x0D32
diff --git a/generated-src/Graphics/GL/Ext/APPLE/ElementArray.hs b/generated-src/Graphics/GL/Ext/APPLE/ElementArray.hs
--- a/generated-src/Graphics/GL/Ext/APPLE/ElementArray.hs
+++ b/generated-src/Graphics/GL/Ext/APPLE/ElementArray.hs
@@ -104,8 +104,14 @@
 
 {-# NOINLINE glMultiDrawRangeElementArrayAPPLEFunPtr #-}
 
+pattern GL_ELEMENT_ARRAY_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_ELEMENT_ARRAY_APPLE = 0x8A0C
 
+pattern GL_ELEMENT_ARRAY_POINTER_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_ELEMENT_ARRAY_POINTER_APPLE = 0x8A0E
+
+pattern GL_ELEMENT_ARRAY_TYPE_APPLE  :: (Eq a, Num a) => a
 
 pattern GL_ELEMENT_ARRAY_TYPE_APPLE = 0x8A0D
diff --git a/generated-src/Graphics/GL/Ext/APPLE/Fence.hs b/generated-src/Graphics/GL/Ext/APPLE/Fence.hs
--- a/generated-src/Graphics/GL/Ext/APPLE/Fence.hs
+++ b/generated-src/Graphics/GL/Ext/APPLE/Fence.hs
@@ -139,6 +139,10 @@
 
 {-# NOINLINE glTestObjectAPPLEFunPtr #-}
 
+pattern GL_DRAW_PIXELS_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_PIXELS_APPLE = 0x8A0A
+
+pattern GL_FENCE_APPLE  :: (Eq a, Num a) => a
 
 pattern GL_FENCE_APPLE = 0x8A0B
diff --git a/generated-src/Graphics/GL/Ext/APPLE/FloatPixels.hs b/generated-src/Graphics/GL/Ext/APPLE/FloatPixels.hs
--- a/generated-src/Graphics/GL/Ext/APPLE/FloatPixels.hs
+++ b/generated-src/Graphics/GL/Ext/APPLE/FloatPixels.hs
@@ -30,30 +30,58 @@
 gl_APPLE_float_pixels = member "GL_APPLE_float_pixels" extensions
 {-# NOINLINE gl_APPLE_float_pixels #-}
 
+pattern GL_ALPHA_FLOAT16_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_ALPHA_FLOAT16_APPLE = 0x881C
 
+pattern GL_ALPHA_FLOAT32_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_ALPHA_FLOAT32_APPLE = 0x8816
 
+pattern GL_COLOR_FLOAT_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_COLOR_FLOAT_APPLE = 0x8A0F
 
+pattern GL_HALF_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_HALF_APPLE = 0x140B
 
+pattern GL_INTENSITY_FLOAT16_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_INTENSITY_FLOAT16_APPLE = 0x881D
 
+pattern GL_INTENSITY_FLOAT32_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_INTENSITY_FLOAT32_APPLE = 0x8817
 
+pattern GL_LUMINANCE_ALPHA_FLOAT16_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_LUMINANCE_ALPHA_FLOAT16_APPLE = 0x881F
 
+pattern GL_LUMINANCE_ALPHA_FLOAT32_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_LUMINANCE_ALPHA_FLOAT32_APPLE = 0x8819
 
+pattern GL_LUMINANCE_FLOAT16_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_LUMINANCE_FLOAT16_APPLE = 0x881E
 
+pattern GL_LUMINANCE_FLOAT32_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_LUMINANCE_FLOAT32_APPLE = 0x8818
 
+pattern GL_RGBA_FLOAT16_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_RGBA_FLOAT16_APPLE = 0x881A
 
+pattern GL_RGBA_FLOAT32_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_RGBA_FLOAT32_APPLE = 0x8814
 
+pattern GL_RGB_FLOAT16_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_RGB_FLOAT16_APPLE = 0x881B
+
+pattern GL_RGB_FLOAT32_APPLE  :: (Eq a, Num a) => a
 
 pattern GL_RGB_FLOAT32_APPLE = 0x8815
diff --git a/generated-src/Graphics/GL/Ext/APPLE/FlushBufferRange.hs b/generated-src/Graphics/GL/Ext/APPLE/FlushBufferRange.hs
--- a/generated-src/Graphics/GL/Ext/APPLE/FlushBufferRange.hs
+++ b/generated-src/Graphics/GL/Ext/APPLE/FlushBufferRange.hs
@@ -53,6 +53,10 @@
 
 {-# NOINLINE glFlushMappedBufferRangeAPPLEFunPtr #-}
 
+pattern GL_BUFFER_FLUSHING_UNMAP_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_BUFFER_FLUSHING_UNMAP_APPLE = 0x8A13
+
+pattern GL_BUFFER_SERIALIZED_MODIFY_APPLE  :: (Eq a, Num a) => a
 
 pattern GL_BUFFER_SERIALIZED_MODIFY_APPLE = 0x8A12
diff --git a/generated-src/Graphics/GL/Ext/APPLE/FramebufferMultisample.hs b/generated-src/Graphics/GL/Ext/APPLE/FramebufferMultisample.hs
--- a/generated-src/Graphics/GL/Ext/APPLE/FramebufferMultisample.hs
+++ b/generated-src/Graphics/GL/Ext/APPLE/FramebufferMultisample.hs
@@ -52,16 +52,30 @@
 
 {-# NOINLINE glResolveMultisampleFramebufferAPPLEFunPtr #-}
 
+pattern GL_DRAW_FRAMEBUFFER_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_FRAMEBUFFER_APPLE = 0x8CA9
 
+pattern GL_DRAW_FRAMEBUFFER_BINDING_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_FRAMEBUFFER_BINDING_APPLE = 0x8CA6
 
+pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE = 0x8D56
 
+pattern GL_MAX_SAMPLES_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_MAX_SAMPLES_APPLE = 0x8D57
 
+pattern GL_READ_FRAMEBUFFER_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_READ_FRAMEBUFFER_APPLE = 0x8CA8
 
+pattern GL_READ_FRAMEBUFFER_BINDING_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_READ_FRAMEBUFFER_BINDING_APPLE = 0x8CAA
+
+pattern GL_RENDERBUFFER_SAMPLES_APPLE  :: (Eq a, Num a) => a
 
 pattern GL_RENDERBUFFER_SAMPLES_APPLE = 0x8CAB
diff --git a/generated-src/Graphics/GL/Ext/APPLE/ObjectPurgeable.hs b/generated-src/Graphics/GL/Ext/APPLE/ObjectPurgeable.hs
--- a/generated-src/Graphics/GL/Ext/APPLE/ObjectPurgeable.hs
+++ b/generated-src/Graphics/GL/Ext/APPLE/ObjectPurgeable.hs
@@ -65,14 +65,26 @@
 
 {-# NOINLINE glObjectUnpurgeableAPPLEFunPtr #-}
 
+pattern GL_BUFFER_OBJECT_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_BUFFER_OBJECT_APPLE = 0x85B3
 
+pattern GL_PURGEABLE_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_PURGEABLE_APPLE = 0x8A1D
 
+pattern GL_RELEASED_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_RELEASED_APPLE = 0x8A19
 
+pattern GL_RETAINED_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_RETAINED_APPLE = 0x8A1B
 
+pattern GL_UNDEFINED_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_UNDEFINED_APPLE = 0x8A1C
+
+pattern GL_VOLATILE_APPLE  :: (Eq a, Num a) => a
 
 pattern GL_VOLATILE_APPLE = 0x8A1A
diff --git a/generated-src/Graphics/GL/Ext/APPLE/Rgb422.hs b/generated-src/Graphics/GL/Ext/APPLE/Rgb422.hs
--- a/generated-src/Graphics/GL/Ext/APPLE/Rgb422.hs
+++ b/generated-src/Graphics/GL/Ext/APPLE/Rgb422.hs
@@ -21,6 +21,10 @@
 gl_APPLE_rgb_422 = member "GL_APPLE_rgb_422" extensions
 {-# NOINLINE gl_APPLE_rgb_422 #-}
 
+pattern GL_RGB_422_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_RGB_422_APPLE = 0x8A1F
+
+pattern GL_RGB_RAW_422_APPLE  :: (Eq a, Num a) => a
 
 pattern GL_RGB_RAW_422_APPLE = 0x8A51
diff --git a/generated-src/Graphics/GL/Ext/APPLE/RowBytes.hs b/generated-src/Graphics/GL/Ext/APPLE/RowBytes.hs
--- a/generated-src/Graphics/GL/Ext/APPLE/RowBytes.hs
+++ b/generated-src/Graphics/GL/Ext/APPLE/RowBytes.hs
@@ -18,6 +18,10 @@
 gl_APPLE_row_bytes = member "GL_APPLE_row_bytes" extensions
 {-# NOINLINE gl_APPLE_row_bytes #-}
 
+pattern GL_PACK_ROW_BYTES_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_PACK_ROW_BYTES_APPLE = 0x8A15
+
+pattern GL_UNPACK_ROW_BYTES_APPLE  :: (Eq a, Num a) => a
 
 pattern GL_UNPACK_ROW_BYTES_APPLE = 0x8A16
diff --git a/generated-src/Graphics/GL/Ext/APPLE/SpecularVector.hs b/generated-src/Graphics/GL/Ext/APPLE/SpecularVector.hs
--- a/generated-src/Graphics/GL/Ext/APPLE/SpecularVector.hs
+++ b/generated-src/Graphics/GL/Ext/APPLE/SpecularVector.hs
@@ -17,4 +17,6 @@
 gl_APPLE_specular_vector = member "GL_APPLE_specular_vector" extensions
 {-# NOINLINE gl_APPLE_specular_vector #-}
 
+pattern GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE = 0x85B0
diff --git a/generated-src/Graphics/GL/Ext/APPLE/Sync.hs b/generated-src/Graphics/GL/Ext/APPLE/Sync.hs
--- a/generated-src/Graphics/GL/Ext/APPLE/Sync.hs
+++ b/generated-src/Graphics/GL/Ext/APPLE/Sync.hs
@@ -137,34 +137,66 @@
 
 {-# NOINLINE glWaitSyncAPPLEFunPtr #-}
 
+pattern GL_ALREADY_SIGNALED_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_ALREADY_SIGNALED_APPLE = 0x911A
 
+pattern GL_CONDITION_SATISFIED_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_CONDITION_SATISFIED_APPLE = 0x911C
 
+pattern GL_MAX_SERVER_WAIT_TIMEOUT_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_MAX_SERVER_WAIT_TIMEOUT_APPLE = 0x9111
 
+pattern GL_OBJECT_TYPE_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_OBJECT_TYPE_APPLE = 0x9112
 
+pattern GL_SIGNALED_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_SIGNALED_APPLE = 0x9119
 
+pattern GL_SYNC_CONDITION_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_SYNC_CONDITION_APPLE = 0x9113
 
+pattern GL_SYNC_FENCE_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_SYNC_FENCE_APPLE = 0x9116
 
+pattern GL_SYNC_FLAGS_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_SYNC_FLAGS_APPLE = 0x9115
 
+pattern GL_SYNC_FLUSH_COMMANDS_BIT_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_SYNC_FLUSH_COMMANDS_BIT_APPLE = 0x00000001
 
+pattern GL_SYNC_GPU_COMMANDS_COMPLETE_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_SYNC_GPU_COMMANDS_COMPLETE_APPLE = 0x9117
 
+pattern GL_SYNC_OBJECT_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_SYNC_OBJECT_APPLE = 0x8A53
 
+pattern GL_SYNC_STATUS_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_SYNC_STATUS_APPLE = 0x9114
 
+pattern GL_TIMEOUT_EXPIRED_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_TIMEOUT_EXPIRED_APPLE = 0x911B
 
+pattern GL_TIMEOUT_IGNORED_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_TIMEOUT_IGNORED_APPLE = 0xFFFFFFFFFFFFFFFF
 
+pattern GL_UNSIGNALED_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_UNSIGNALED_APPLE = 0x9118
+
+pattern GL_WAIT_FAILED_APPLE  :: (Eq a, Num a) => a
 
 pattern GL_WAIT_FAILED_APPLE = 0x911D
diff --git a/generated-src/Graphics/GL/Ext/APPLE/TextureMaxLevel.hs b/generated-src/Graphics/GL/Ext/APPLE/TextureMaxLevel.hs
--- a/generated-src/Graphics/GL/Ext/APPLE/TextureMaxLevel.hs
+++ b/generated-src/Graphics/GL/Ext/APPLE/TextureMaxLevel.hs
@@ -17,4 +17,6 @@
 gl_APPLE_texture_max_level = member "GL_APPLE_texture_max_level" extensions
 {-# NOINLINE gl_APPLE_texture_max_level #-}
 
+pattern GL_TEXTURE_MAX_LEVEL_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_MAX_LEVEL_APPLE = 0x813D
diff --git a/generated-src/Graphics/GL/Ext/APPLE/TexturePackedFloat.hs b/generated-src/Graphics/GL/Ext/APPLE/TexturePackedFloat.hs
--- a/generated-src/Graphics/GL/Ext/APPLE/TexturePackedFloat.hs
+++ b/generated-src/Graphics/GL/Ext/APPLE/TexturePackedFloat.hs
@@ -20,10 +20,18 @@
 gl_APPLE_texture_packed_float = member "GL_APPLE_texture_packed_float" extensions
 {-# NOINLINE gl_APPLE_texture_packed_float #-}
 
+pattern GL_R11F_G11F_B10F_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_R11F_G11F_B10F_APPLE = 0x8C3A
 
+pattern GL_RGB9_E5_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_RGB9_E5_APPLE = 0x8C3D
 
+pattern GL_UNSIGNED_INT_10F_11F_11F_REV_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_UNSIGNED_INT_10F_11F_11F_REV_APPLE = 0x8C3B
+
+pattern GL_UNSIGNED_INT_5_9_9_9_REV_APPLE  :: (Eq a, Num a) => a
 
 pattern GL_UNSIGNED_INT_5_9_9_9_REV_APPLE = 0x8C3E
diff --git a/generated-src/Graphics/GL/Ext/APPLE/TextureRange.hs b/generated-src/Graphics/GL/Ext/APPLE/TextureRange.hs
--- a/generated-src/Graphics/GL/Ext/APPLE/TextureRange.hs
+++ b/generated-src/Graphics/GL/Ext/APPLE/TextureRange.hs
@@ -56,10 +56,18 @@
 
 {-# NOINLINE glTextureRangeAPPLEFunPtr #-}
 
+pattern GL_STORAGE_PRIVATE_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_STORAGE_PRIVATE_APPLE = 0x85BD
 
+pattern GL_TEXTURE_RANGE_LENGTH_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_RANGE_LENGTH_APPLE = 0x85B7
 
+pattern GL_TEXTURE_RANGE_POINTER_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_RANGE_POINTER_APPLE = 0x85B8
+
+pattern GL_TEXTURE_STORAGE_HINT_APPLE  :: (Eq a, Num a) => a
 
 pattern GL_TEXTURE_STORAGE_HINT_APPLE = 0x85BC
diff --git a/generated-src/Graphics/GL/Ext/APPLE/TransformHint.hs b/generated-src/Graphics/GL/Ext/APPLE/TransformHint.hs
--- a/generated-src/Graphics/GL/Ext/APPLE/TransformHint.hs
+++ b/generated-src/Graphics/GL/Ext/APPLE/TransformHint.hs
@@ -17,4 +17,6 @@
 gl_APPLE_transform_hint = member "GL_APPLE_transform_hint" extensions
 {-# NOINLINE gl_APPLE_transform_hint #-}
 
+pattern GL_TRANSFORM_HINT_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_TRANSFORM_HINT_APPLE = 0x85B1
diff --git a/generated-src/Graphics/GL/Ext/APPLE/VertexArrayObject.hs b/generated-src/Graphics/GL/Ext/APPLE/VertexArrayObject.hs
--- a/generated-src/Graphics/GL/Ext/APPLE/VertexArrayObject.hs
+++ b/generated-src/Graphics/GL/Ext/APPLE/VertexArrayObject.hs
@@ -80,4 +80,6 @@
 
 {-# NOINLINE glIsVertexArrayAPPLEFunPtr #-}
 
+pattern GL_VERTEX_ARRAY_BINDING_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_ARRAY_BINDING_APPLE = 0x85B5
diff --git a/generated-src/Graphics/GL/Ext/APPLE/VertexArrayRange.hs b/generated-src/Graphics/GL/Ext/APPLE/VertexArrayRange.hs
--- a/generated-src/Graphics/GL/Ext/APPLE/VertexArrayRange.hs
+++ b/generated-src/Graphics/GL/Ext/APPLE/VertexArrayRange.hs
@@ -71,12 +71,22 @@
 
 {-# NOINLINE glVertexArrayRangeAPPLEFunPtr #-}
 
+pattern GL_STORAGE_CLIENT_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_STORAGE_CLIENT_APPLE = 0x85B4
 
+pattern GL_VERTEX_ARRAY_RANGE_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_ARRAY_RANGE_APPLE = 0x851D
 
+pattern GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE = 0x851E
 
+pattern GL_VERTEX_ARRAY_RANGE_POINTER_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_ARRAY_RANGE_POINTER_APPLE = 0x8521
+
+pattern GL_VERTEX_ARRAY_STORAGE_HINT_APPLE  :: (Eq a, Num a) => a
 
 pattern GL_VERTEX_ARRAY_STORAGE_HINT_APPLE = 0x851F
diff --git a/generated-src/Graphics/GL/Ext/APPLE/VertexProgramEvaluators.hs b/generated-src/Graphics/GL/Ext/APPLE/VertexProgramEvaluators.hs
--- a/generated-src/Graphics/GL/Ext/APPLE/VertexProgramEvaluators.hs
+++ b/generated-src/Graphics/GL/Ext/APPLE/VertexProgramEvaluators.hs
@@ -167,22 +167,42 @@
 
 {-# NOINLINE glMapVertexAttrib2fAPPLEFunPtr #-}
 
+pattern GL_VERTEX_ATTRIB_MAP1_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_ATTRIB_MAP1_APPLE = 0x8A00
 
+pattern GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE = 0x8A03
 
+pattern GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE = 0x8A05
 
+pattern GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE = 0x8A04
 
+pattern GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE = 0x8A02
 
+pattern GL_VERTEX_ATTRIB_MAP2_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_ATTRIB_MAP2_APPLE = 0x8A01
 
+pattern GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE = 0x8A07
 
+pattern GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE = 0x8A09
 
+pattern GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE = 0x8A08
+
+pattern GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE  :: (Eq a, Num a) => a
 
 pattern GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE = 0x8A06
diff --git a/generated-src/Graphics/GL/Ext/APPLE/Ycbcr422.hs b/generated-src/Graphics/GL/Ext/APPLE/Ycbcr422.hs
--- a/generated-src/Graphics/GL/Ext/APPLE/Ycbcr422.hs
+++ b/generated-src/Graphics/GL/Ext/APPLE/Ycbcr422.hs
@@ -20,4 +20,6 @@
 gl_APPLE_ycbcr_422 = member "GL_APPLE_ycbcr_422" extensions
 {-# NOINLINE gl_APPLE_ycbcr_422 #-}
 
+pattern GL_YCBCR_422_APPLE  :: (Eq a, Num a) => a
+
 pattern GL_YCBCR_422_APPLE = 0x85B9
diff --git a/generated-src/Graphics/GL/Ext/ARB/ClEvent.hs b/generated-src/Graphics/GL/Ext/ARB/ClEvent.hs
--- a/generated-src/Graphics/GL/Ext/ARB/ClEvent.hs
+++ b/generated-src/Graphics/GL/Ext/ARB/ClEvent.hs
@@ -39,6 +39,10 @@
 
 {-# NOINLINE glCreateSyncFromCLeventARBFunPtr #-}
 
+pattern GL_SYNC_CL_EVENT_ARB  :: (Eq a, Num a) => a
+
 pattern GL_SYNC_CL_EVENT_ARB = 0x8240
+
+pattern GL_SYNC_CL_EVENT_COMPLETE_ARB  :: (Eq a, Num a) => a
 
 pattern GL_SYNC_CL_EVENT_COMPLETE_ARB = 0x8241
diff --git a/generated-src/Graphics/GL/Ext/ARB/ColorBufferFloat.hs b/generated-src/Graphics/GL/Ext/ARB/ColorBufferFloat.hs
--- a/generated-src/Graphics/GL/Ext/ARB/ColorBufferFloat.hs
+++ b/generated-src/Graphics/GL/Ext/ARB/ColorBufferFloat.hs
@@ -44,12 +44,22 @@
 
 {-# NOINLINE glClampColorARBFunPtr #-}
 
+pattern GL_CLAMP_FRAGMENT_COLOR_ARB  :: (Eq a, Num a) => a
+
 pattern GL_CLAMP_FRAGMENT_COLOR_ARB = 0x891B
 
+pattern GL_CLAMP_READ_COLOR_ARB  :: (Eq a, Num a) => a
+
 pattern GL_CLAMP_READ_COLOR_ARB = 0x891C
 
+pattern GL_CLAMP_VERTEX_COLOR_ARB  :: (Eq a, Num a) => a
+
 pattern GL_CLAMP_VERTEX_COLOR_ARB = 0x891A
 
+pattern GL_FIXED_ONLY_ARB  :: (Eq a, Num a) => a
+
 pattern GL_FIXED_ONLY_ARB = 0x891D
+
+pattern GL_RGBA_FLOAT_MODE_ARB  :: (Eq a, Num a) => a
 
 pattern GL_RGBA_FLOAT_MODE_ARB = 0x8820
diff --git a/generated-src/Graphics/GL/Ext/ARB/ComputeVariableGroupSize.hs b/generated-src/Graphics/GL/Ext/ARB/ComputeVariableGroupSize.hs
--- a/generated-src/Graphics/GL/Ext/ARB/ComputeVariableGroupSize.hs
+++ b/generated-src/Graphics/GL/Ext/ARB/ComputeVariableGroupSize.hs
@@ -37,10 +37,18 @@
 
 {-# NOINLINE glDispatchComputeGroupSizeARBFunPtr #-}
 
+pattern GL_MAX_COMPUTE_FIXED_GROUP_INVOCATIONS_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MAX_COMPUTE_FIXED_GROUP_INVOCATIONS_ARB = 0x90EB
 
+pattern GL_MAX_COMPUTE_FIXED_GROUP_SIZE_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MAX_COMPUTE_FIXED_GROUP_SIZE_ARB = 0x91BF
 
+pattern GL_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB = 0x9344
+
+pattern GL_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB  :: (Eq a, Num a) => a
 
 pattern GL_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB = 0x9345
diff --git a/generated-src/Graphics/GL/Ext/ARB/DebugOutput.hs b/generated-src/Graphics/GL/Ext/ARB/DebugOutput.hs
--- a/generated-src/Graphics/GL/Ext/ARB/DebugOutput.hs
+++ b/generated-src/Graphics/GL/Ext/ARB/DebugOutput.hs
@@ -119,46 +119,90 @@
 
 {-# NOINLINE glGetDebugMessageLogARBFunPtr #-}
 
+pattern GL_DEBUG_CALLBACK_FUNCTION_ARB  :: (Eq a, Num a) => a
+
 pattern GL_DEBUG_CALLBACK_FUNCTION_ARB = 0x8244
 
+pattern GL_DEBUG_CALLBACK_USER_PARAM_ARB  :: (Eq a, Num a) => a
+
 pattern GL_DEBUG_CALLBACK_USER_PARAM_ARB = 0x8245
 
+pattern GL_DEBUG_LOGGED_MESSAGES_ARB  :: (Eq a, Num a) => a
+
 pattern GL_DEBUG_LOGGED_MESSAGES_ARB = 0x9145
 
+pattern GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB  :: (Eq a, Num a) => a
+
 pattern GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB = 0x8243
 
+pattern GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB  :: (Eq a, Num a) => a
+
 pattern GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB = 0x8242
 
+pattern GL_DEBUG_SEVERITY_HIGH_ARB  :: (Eq a, Num a) => a
+
 pattern GL_DEBUG_SEVERITY_HIGH_ARB = 0x9146
 
+pattern GL_DEBUG_SEVERITY_LOW_ARB  :: (Eq a, Num a) => a
+
 pattern GL_DEBUG_SEVERITY_LOW_ARB = 0x9148
 
+pattern GL_DEBUG_SEVERITY_MEDIUM_ARB  :: (Eq a, Num a) => a
+
 pattern GL_DEBUG_SEVERITY_MEDIUM_ARB = 0x9147
 
+pattern GL_DEBUG_SOURCE_API_ARB  :: (Eq a, Num a) => a
+
 pattern GL_DEBUG_SOURCE_API_ARB = 0x8246
 
+pattern GL_DEBUG_SOURCE_APPLICATION_ARB  :: (Eq a, Num a) => a
+
 pattern GL_DEBUG_SOURCE_APPLICATION_ARB = 0x824A
 
+pattern GL_DEBUG_SOURCE_OTHER_ARB  :: (Eq a, Num a) => a
+
 pattern GL_DEBUG_SOURCE_OTHER_ARB = 0x824B
 
+pattern GL_DEBUG_SOURCE_SHADER_COMPILER_ARB  :: (Eq a, Num a) => a
+
 pattern GL_DEBUG_SOURCE_SHADER_COMPILER_ARB = 0x8248
 
+pattern GL_DEBUG_SOURCE_THIRD_PARTY_ARB  :: (Eq a, Num a) => a
+
 pattern GL_DEBUG_SOURCE_THIRD_PARTY_ARB = 0x8249
 
+pattern GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB  :: (Eq a, Num a) => a
+
 pattern GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB = 0x8247
 
+pattern GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB  :: (Eq a, Num a) => a
+
 pattern GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB = 0x824D
 
+pattern GL_DEBUG_TYPE_ERROR_ARB  :: (Eq a, Num a) => a
+
 pattern GL_DEBUG_TYPE_ERROR_ARB = 0x824C
 
+pattern GL_DEBUG_TYPE_OTHER_ARB  :: (Eq a, Num a) => a
+
 pattern GL_DEBUG_TYPE_OTHER_ARB = 0x8251
 
+pattern GL_DEBUG_TYPE_PERFORMANCE_ARB  :: (Eq a, Num a) => a
+
 pattern GL_DEBUG_TYPE_PERFORMANCE_ARB = 0x8250
 
+pattern GL_DEBUG_TYPE_PORTABILITY_ARB  :: (Eq a, Num a) => a
+
 pattern GL_DEBUG_TYPE_PORTABILITY_ARB = 0x824F
 
+pattern GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB  :: (Eq a, Num a) => a
+
 pattern GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB = 0x824E
 
+pattern GL_MAX_DEBUG_LOGGED_MESSAGES_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MAX_DEBUG_LOGGED_MESSAGES_ARB = 0x9144
+
+pattern GL_MAX_DEBUG_MESSAGE_LENGTH_ARB  :: (Eq a, Num a) => a
 
 pattern GL_MAX_DEBUG_MESSAGE_LENGTH_ARB = 0x9143
diff --git a/generated-src/Graphics/GL/Ext/ARB/DepthTexture.hs b/generated-src/Graphics/GL/Ext/ARB/DepthTexture.hs
--- a/generated-src/Graphics/GL/Ext/ARB/DepthTexture.hs
+++ b/generated-src/Graphics/GL/Ext/ARB/DepthTexture.hs
@@ -21,12 +21,22 @@
 gl_ARB_depth_texture = member "GL_ARB_depth_texture" extensions
 {-# NOINLINE gl_ARB_depth_texture #-}
 
+pattern GL_DEPTH_COMPONENT16_ARB  :: (Eq a, Num a) => a
+
 pattern GL_DEPTH_COMPONENT16_ARB = 0x81A5
 
+pattern GL_DEPTH_COMPONENT24_ARB  :: (Eq a, Num a) => a
+
 pattern GL_DEPTH_COMPONENT24_ARB = 0x81A6
 
+pattern GL_DEPTH_COMPONENT32_ARB  :: (Eq a, Num a) => a
+
 pattern GL_DEPTH_COMPONENT32_ARB = 0x81A7
 
+pattern GL_DEPTH_TEXTURE_MODE_ARB  :: (Eq a, Num a) => a
+
 pattern GL_DEPTH_TEXTURE_MODE_ARB = 0x884B
+
+pattern GL_TEXTURE_DEPTH_SIZE_ARB  :: (Eq a, Num a) => a
 
 pattern GL_TEXTURE_DEPTH_SIZE_ARB = 0x884A
diff --git a/generated-src/Graphics/GL/Ext/ARB/DrawBuffers.hs b/generated-src/Graphics/GL/Ext/ARB/DrawBuffers.hs
--- a/generated-src/Graphics/GL/Ext/ARB/DrawBuffers.hs
+++ b/generated-src/Graphics/GL/Ext/ARB/DrawBuffers.hs
@@ -56,36 +56,70 @@
 
 {-# NOINLINE glDrawBuffersARBFunPtr #-}
 
+pattern GL_DRAW_BUFFER0_ARB  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER0_ARB = 0x8825
 
+pattern GL_DRAW_BUFFER10_ARB  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER10_ARB = 0x882F
 
+pattern GL_DRAW_BUFFER11_ARB  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER11_ARB = 0x8830
 
+pattern GL_DRAW_BUFFER12_ARB  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER12_ARB = 0x8831
 
+pattern GL_DRAW_BUFFER13_ARB  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER13_ARB = 0x8832
 
+pattern GL_DRAW_BUFFER14_ARB  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER14_ARB = 0x8833
 
+pattern GL_DRAW_BUFFER15_ARB  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER15_ARB = 0x8834
 
+pattern GL_DRAW_BUFFER1_ARB  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER1_ARB = 0x8826
 
+pattern GL_DRAW_BUFFER2_ARB  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER2_ARB = 0x8827
 
+pattern GL_DRAW_BUFFER3_ARB  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER3_ARB = 0x8828
 
+pattern GL_DRAW_BUFFER4_ARB  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER4_ARB = 0x8829
 
+pattern GL_DRAW_BUFFER5_ARB  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER5_ARB = 0x882A
 
+pattern GL_DRAW_BUFFER6_ARB  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER6_ARB = 0x882B
 
+pattern GL_DRAW_BUFFER7_ARB  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER7_ARB = 0x882C
 
+pattern GL_DRAW_BUFFER8_ARB  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER8_ARB = 0x882D
 
+pattern GL_DRAW_BUFFER9_ARB  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER9_ARB = 0x882E
+
+pattern GL_MAX_DRAW_BUFFERS_ARB  :: (Eq a, Num a) => a
 
 pattern GL_MAX_DRAW_BUFFERS_ARB = 0x8824
diff --git a/generated-src/Graphics/GL/Ext/ARB/ES32Compatibility.hs b/generated-src/Graphics/GL/Ext/ARB/ES32Compatibility.hs
--- a/generated-src/Graphics/GL/Ext/ARB/ES32Compatibility.hs
+++ b/generated-src/Graphics/GL/Ext/ARB/ES32Compatibility.hs
@@ -38,8 +38,14 @@
 
 {-# NOINLINE glPrimitiveBoundingBoxARBFunPtr #-}
 
+pattern GL_MULTISAMPLE_LINE_WIDTH_GRANULARITY_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MULTISAMPLE_LINE_WIDTH_GRANULARITY_ARB = 0x9382
 
+pattern GL_MULTISAMPLE_LINE_WIDTH_RANGE_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MULTISAMPLE_LINE_WIDTH_RANGE_ARB = 0x9381
+
+pattern GL_PRIMITIVE_BOUNDING_BOX_ARB  :: (Eq a, Num a) => a
 
 pattern GL_PRIMITIVE_BOUNDING_BOX_ARB = 0x92BE
diff --git a/generated-src/Graphics/GL/Ext/ARB/FragmentProgram.hs b/generated-src/Graphics/GL/Ext/ARB/FragmentProgram.hs
--- a/generated-src/Graphics/GL/Ext/ARB/FragmentProgram.hs
+++ b/generated-src/Graphics/GL/Ext/ARB/FragmentProgram.hs
@@ -114,28 +114,54 @@
 gl_ARB_fragment_program = member "GL_ARB_fragment_program" extensions
 {-# NOINLINE gl_ARB_fragment_program #-}
 
+pattern GL_FRAGMENT_PROGRAM_ARB  :: (Eq a, Num a) => a
+
 pattern GL_FRAGMENT_PROGRAM_ARB = 0x8804
 
+pattern GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB = 0x880B
 
+pattern GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB = 0x880E
 
+pattern GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB = 0x8810
 
+pattern GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB = 0x880F
 
+pattern GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB = 0x880D
 
+pattern GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB = 0x880C
 
+pattern GL_PROGRAM_ALU_INSTRUCTIONS_ARB  :: (Eq a, Num a) => a
+
 pattern GL_PROGRAM_ALU_INSTRUCTIONS_ARB = 0x8805
 
+pattern GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB  :: (Eq a, Num a) => a
+
 pattern GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB = 0x8808
 
+pattern GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB  :: (Eq a, Num a) => a
+
 pattern GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB = 0x880A
 
+pattern GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB  :: (Eq a, Num a) => a
+
 pattern GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB = 0x8809
 
+pattern GL_PROGRAM_TEX_INDIRECTIONS_ARB  :: (Eq a, Num a) => a
+
 pattern GL_PROGRAM_TEX_INDIRECTIONS_ARB = 0x8807
+
+pattern GL_PROGRAM_TEX_INSTRUCTIONS_ARB  :: (Eq a, Num a) => a
 
 pattern GL_PROGRAM_TEX_INSTRUCTIONS_ARB = 0x8806
diff --git a/generated-src/Graphics/GL/Ext/ARB/FragmentShader.hs b/generated-src/Graphics/GL/Ext/ARB/FragmentShader.hs
--- a/generated-src/Graphics/GL/Ext/ARB/FragmentShader.hs
+++ b/generated-src/Graphics/GL/Ext/ARB/FragmentShader.hs
@@ -19,8 +19,14 @@
 gl_ARB_fragment_shader = member "GL_ARB_fragment_shader" extensions
 {-# NOINLINE gl_ARB_fragment_shader #-}
 
+pattern GL_FRAGMENT_SHADER_ARB  :: (Eq a, Num a) => a
+
 pattern GL_FRAGMENT_SHADER_ARB = 0x8B30
 
+pattern GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB  :: (Eq a, Num a) => a
+
 pattern GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB = 0x8B8B
+
+pattern GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB  :: (Eq a, Num a) => a
 
 pattern GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB = 0x8B49
diff --git a/generated-src/Graphics/GL/Ext/ARB/GeometryShader4.hs b/generated-src/Graphics/GL/Ext/ARB/GeometryShader4.hs
--- a/generated-src/Graphics/GL/Ext/ARB/GeometryShader4.hs
+++ b/generated-src/Graphics/GL/Ext/ARB/GeometryShader4.hs
@@ -126,38 +126,74 @@
 
 {-# NOINLINE glProgramParameteriARBFunPtr #-}
 
+pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB  :: (Eq a, Num a) => a
+
 pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB = 0x8DA7
 
+pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB  :: (Eq a, Num a) => a
+
 pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB = 0x8DA9
 
+pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB  :: (Eq a, Num a) => a
+
 pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB = 0x8DA8
 
+pattern GL_GEOMETRY_INPUT_TYPE_ARB  :: (Eq a, Num a) => a
+
 pattern GL_GEOMETRY_INPUT_TYPE_ARB = 0x8DDB
 
+pattern GL_GEOMETRY_OUTPUT_TYPE_ARB  :: (Eq a, Num a) => a
+
 pattern GL_GEOMETRY_OUTPUT_TYPE_ARB = 0x8DDC
 
+pattern GL_GEOMETRY_SHADER_ARB  :: (Eq a, Num a) => a
+
 pattern GL_GEOMETRY_SHADER_ARB = 0x8DD9
 
+pattern GL_GEOMETRY_VERTICES_OUT_ARB  :: (Eq a, Num a) => a
+
 pattern GL_GEOMETRY_VERTICES_OUT_ARB = 0x8DDA
 
+pattern GL_LINES_ADJACENCY_ARB  :: (Eq a, Num a) => a
+
 pattern GL_LINES_ADJACENCY_ARB = 0x000A
 
+pattern GL_LINE_STRIP_ADJACENCY_ARB  :: (Eq a, Num a) => a
+
 pattern GL_LINE_STRIP_ADJACENCY_ARB = 0x000B
 
+pattern GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB = 0x8DE0
 
+pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB = 0x8C29
 
+pattern GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB = 0x8DE1
 
+pattern GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB = 0x8DDF
 
+pattern GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB = 0x8DDD
 
+pattern GL_MAX_VERTEX_VARYING_COMPONENTS_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MAX_VERTEX_VARYING_COMPONENTS_ARB = 0x8DDE
 
+pattern GL_PROGRAM_POINT_SIZE_ARB  :: (Eq a, Num a) => a
+
 pattern GL_PROGRAM_POINT_SIZE_ARB = 0x8642
 
+pattern GL_TRIANGLES_ADJACENCY_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TRIANGLES_ADJACENCY_ARB = 0x000C
+
+pattern GL_TRIANGLE_STRIP_ADJACENCY_ARB  :: (Eq a, Num a) => a
 
 pattern GL_TRIANGLE_STRIP_ADJACENCY_ARB = 0x000D
diff --git a/generated-src/Graphics/GL/Ext/ARB/GpuShaderInt64.hs b/generated-src/Graphics/GL/Ext/ARB/GpuShaderInt64.hs
--- a/generated-src/Graphics/GL/Ext/ARB/GpuShaderInt64.hs
+++ b/generated-src/Graphics/GL/Ext/ARB/GpuShaderInt64.hs
@@ -498,16 +498,30 @@
 
 {-# NOINLINE glUniform4ui64vARBFunPtr #-}
 
+pattern GL_INT64_ARB  :: (Eq a, Num a) => a
+
 pattern GL_INT64_ARB = 0x140E
 
+pattern GL_INT64_VEC2_ARB  :: (Eq a, Num a) => a
+
 pattern GL_INT64_VEC2_ARB = 0x8FE9
 
+pattern GL_INT64_VEC3_ARB  :: (Eq a, Num a) => a
+
 pattern GL_INT64_VEC3_ARB = 0x8FEA
 
+pattern GL_INT64_VEC4_ARB  :: (Eq a, Num a) => a
+
 pattern GL_INT64_VEC4_ARB = 0x8FEB
 
+pattern GL_UNSIGNED_INT64_VEC2_ARB  :: (Eq a, Num a) => a
+
 pattern GL_UNSIGNED_INT64_VEC2_ARB = 0x8FF5
 
+pattern GL_UNSIGNED_INT64_VEC3_ARB  :: (Eq a, Num a) => a
+
 pattern GL_UNSIGNED_INT64_VEC3_ARB = 0x8FF6
+
+pattern GL_UNSIGNED_INT64_VEC4_ARB  :: (Eq a, Num a) => a
 
 pattern GL_UNSIGNED_INT64_VEC4_ARB = 0x8FF7
diff --git a/generated-src/Graphics/GL/Ext/ARB/HalfFloatPixel.hs b/generated-src/Graphics/GL/Ext/ARB/HalfFloatPixel.hs
--- a/generated-src/Graphics/GL/Ext/ARB/HalfFloatPixel.hs
+++ b/generated-src/Graphics/GL/Ext/ARB/HalfFloatPixel.hs
@@ -17,4 +17,6 @@
 gl_ARB_half_float_pixel = member "GL_ARB_half_float_pixel" extensions
 {-# NOINLINE gl_ARB_half_float_pixel #-}
 
+pattern GL_HALF_FLOAT_ARB  :: (Eq a, Num a) => a
+
 pattern GL_HALF_FLOAT_ARB = 0x140B
diff --git a/generated-src/Graphics/GL/Ext/ARB/Imaging.hs b/generated-src/Graphics/GL/Ext/ARB/Imaging.hs
--- a/generated-src/Graphics/GL/Ext/ARB/Imaging.hs
+++ b/generated-src/Graphics/GL/Ext/ARB/Imaging.hs
@@ -719,130 +719,258 @@
 
 {-# NOINLINE glSeparableFilter2DFunPtr #-}
 
+pattern GL_COLOR_MATRIX  :: (Eq a, Num a) => a
+
 pattern GL_COLOR_MATRIX = 0x80B1
 
+pattern GL_COLOR_MATRIX_STACK_DEPTH  :: (Eq a, Num a) => a
+
 pattern GL_COLOR_MATRIX_STACK_DEPTH = 0x80B2
 
+pattern GL_COLOR_TABLE  :: (Eq a, Num a) => a
+
 pattern GL_COLOR_TABLE = 0x80D0
 
+pattern GL_COLOR_TABLE_ALPHA_SIZE  :: (Eq a, Num a) => a
+
 pattern GL_COLOR_TABLE_ALPHA_SIZE = 0x80DD
 
+pattern GL_COLOR_TABLE_BIAS  :: (Eq a, Num a) => a
+
 pattern GL_COLOR_TABLE_BIAS = 0x80D7
 
+pattern GL_COLOR_TABLE_BLUE_SIZE  :: (Eq a, Num a) => a
+
 pattern GL_COLOR_TABLE_BLUE_SIZE = 0x80DC
 
+pattern GL_COLOR_TABLE_FORMAT  :: (Eq a, Num a) => a
+
 pattern GL_COLOR_TABLE_FORMAT = 0x80D8
 
+pattern GL_COLOR_TABLE_GREEN_SIZE  :: (Eq a, Num a) => a
+
 pattern GL_COLOR_TABLE_GREEN_SIZE = 0x80DB
 
+pattern GL_COLOR_TABLE_INTENSITY_SIZE  :: (Eq a, Num a) => a
+
 pattern GL_COLOR_TABLE_INTENSITY_SIZE = 0x80DF
 
+pattern GL_COLOR_TABLE_LUMINANCE_SIZE  :: (Eq a, Num a) => a
+
 pattern GL_COLOR_TABLE_LUMINANCE_SIZE = 0x80DE
 
+pattern GL_COLOR_TABLE_RED_SIZE  :: (Eq a, Num a) => a
+
 pattern GL_COLOR_TABLE_RED_SIZE = 0x80DA
 
+pattern GL_COLOR_TABLE_SCALE  :: (Eq a, Num a) => a
+
 pattern GL_COLOR_TABLE_SCALE = 0x80D6
 
+pattern GL_COLOR_TABLE_WIDTH  :: (Eq a, Num a) => a
+
 pattern GL_COLOR_TABLE_WIDTH = 0x80D9
 
+pattern GL_CONSTANT_BORDER  :: (Eq a, Num a) => a
+
 pattern GL_CONSTANT_BORDER = 0x8151
 
+pattern GL_CONVOLUTION_1D  :: (Eq a, Num a) => a
+
 pattern GL_CONVOLUTION_1D = 0x8010
 
+pattern GL_CONVOLUTION_2D  :: (Eq a, Num a) => a
+
 pattern GL_CONVOLUTION_2D = 0x8011
 
+pattern GL_CONVOLUTION_BORDER_COLOR  :: (Eq a, Num a) => a
+
 pattern GL_CONVOLUTION_BORDER_COLOR = 0x8154
 
+pattern GL_CONVOLUTION_BORDER_MODE  :: (Eq a, Num a) => a
+
 pattern GL_CONVOLUTION_BORDER_MODE = 0x8013
 
+pattern GL_CONVOLUTION_FILTER_BIAS  :: (Eq a, Num a) => a
+
 pattern GL_CONVOLUTION_FILTER_BIAS = 0x8015
 
+pattern GL_CONVOLUTION_FILTER_SCALE  :: (Eq a, Num a) => a
+
 pattern GL_CONVOLUTION_FILTER_SCALE = 0x8014
 
+pattern GL_CONVOLUTION_FORMAT  :: (Eq a, Num a) => a
+
 pattern GL_CONVOLUTION_FORMAT = 0x8017
 
+pattern GL_CONVOLUTION_HEIGHT  :: (Eq a, Num a) => a
+
 pattern GL_CONVOLUTION_HEIGHT = 0x8019
 
+pattern GL_CONVOLUTION_WIDTH  :: (Eq a, Num a) => a
+
 pattern GL_CONVOLUTION_WIDTH = 0x8018
 
+pattern GL_HISTOGRAM  :: (Eq a, Num a) => a
+
 pattern GL_HISTOGRAM = 0x8024
 
+pattern GL_HISTOGRAM_ALPHA_SIZE  :: (Eq a, Num a) => a
+
 pattern GL_HISTOGRAM_ALPHA_SIZE = 0x802B
 
+pattern GL_HISTOGRAM_BLUE_SIZE  :: (Eq a, Num a) => a
+
 pattern GL_HISTOGRAM_BLUE_SIZE = 0x802A
 
+pattern GL_HISTOGRAM_FORMAT  :: (Eq a, Num a) => a
+
 pattern GL_HISTOGRAM_FORMAT = 0x8027
 
+pattern GL_HISTOGRAM_GREEN_SIZE  :: (Eq a, Num a) => a
+
 pattern GL_HISTOGRAM_GREEN_SIZE = 0x8029
 
+pattern GL_HISTOGRAM_LUMINANCE_SIZE  :: (Eq a, Num a) => a
+
 pattern GL_HISTOGRAM_LUMINANCE_SIZE = 0x802C
 
+pattern GL_HISTOGRAM_RED_SIZE  :: (Eq a, Num a) => a
+
 pattern GL_HISTOGRAM_RED_SIZE = 0x8028
 
+pattern GL_HISTOGRAM_SINK  :: (Eq a, Num a) => a
+
 pattern GL_HISTOGRAM_SINK = 0x802D
 
+pattern GL_HISTOGRAM_WIDTH  :: (Eq a, Num a) => a
+
 pattern GL_HISTOGRAM_WIDTH = 0x8026
 
+pattern GL_MAX_COLOR_MATRIX_STACK_DEPTH  :: (Eq a, Num a) => a
+
 pattern GL_MAX_COLOR_MATRIX_STACK_DEPTH = 0x80B3
 
+pattern GL_MAX_CONVOLUTION_HEIGHT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_CONVOLUTION_HEIGHT = 0x801B
 
+pattern GL_MAX_CONVOLUTION_WIDTH  :: (Eq a, Num a) => a
+
 pattern GL_MAX_CONVOLUTION_WIDTH = 0x801A
 
+pattern GL_MINMAX  :: (Eq a, Num a) => a
+
 pattern GL_MINMAX = 0x802E
 
+pattern GL_MINMAX_FORMAT  :: (Eq a, Num a) => a
+
 pattern GL_MINMAX_FORMAT = 0x802F
 
+pattern GL_MINMAX_SINK  :: (Eq a, Num a) => a
+
 pattern GL_MINMAX_SINK = 0x8030
 
+pattern GL_POST_COLOR_MATRIX_ALPHA_BIAS  :: (Eq a, Num a) => a
+
 pattern GL_POST_COLOR_MATRIX_ALPHA_BIAS = 0x80BB
 
+pattern GL_POST_COLOR_MATRIX_ALPHA_SCALE  :: (Eq a, Num a) => a
+
 pattern GL_POST_COLOR_MATRIX_ALPHA_SCALE = 0x80B7
 
+pattern GL_POST_COLOR_MATRIX_BLUE_BIAS  :: (Eq a, Num a) => a
+
 pattern GL_POST_COLOR_MATRIX_BLUE_BIAS = 0x80BA
 
+pattern GL_POST_COLOR_MATRIX_BLUE_SCALE  :: (Eq a, Num a) => a
+
 pattern GL_POST_COLOR_MATRIX_BLUE_SCALE = 0x80B6
 
+pattern GL_POST_COLOR_MATRIX_COLOR_TABLE  :: (Eq a, Num a) => a
+
 pattern GL_POST_COLOR_MATRIX_COLOR_TABLE = 0x80D2
 
+pattern GL_POST_COLOR_MATRIX_GREEN_BIAS  :: (Eq a, Num a) => a
+
 pattern GL_POST_COLOR_MATRIX_GREEN_BIAS = 0x80B9
 
+pattern GL_POST_COLOR_MATRIX_GREEN_SCALE  :: (Eq a, Num a) => a
+
 pattern GL_POST_COLOR_MATRIX_GREEN_SCALE = 0x80B5
 
+pattern GL_POST_COLOR_MATRIX_RED_BIAS  :: (Eq a, Num a) => a
+
 pattern GL_POST_COLOR_MATRIX_RED_BIAS = 0x80B8
 
+pattern GL_POST_COLOR_MATRIX_RED_SCALE  :: (Eq a, Num a) => a
+
 pattern GL_POST_COLOR_MATRIX_RED_SCALE = 0x80B4
 
+pattern GL_POST_CONVOLUTION_ALPHA_BIAS  :: (Eq a, Num a) => a
+
 pattern GL_POST_CONVOLUTION_ALPHA_BIAS = 0x8023
 
+pattern GL_POST_CONVOLUTION_ALPHA_SCALE  :: (Eq a, Num a) => a
+
 pattern GL_POST_CONVOLUTION_ALPHA_SCALE = 0x801F
 
+pattern GL_POST_CONVOLUTION_BLUE_BIAS  :: (Eq a, Num a) => a
+
 pattern GL_POST_CONVOLUTION_BLUE_BIAS = 0x8022
 
+pattern GL_POST_CONVOLUTION_BLUE_SCALE  :: (Eq a, Num a) => a
+
 pattern GL_POST_CONVOLUTION_BLUE_SCALE = 0x801E
 
+pattern GL_POST_CONVOLUTION_COLOR_TABLE  :: (Eq a, Num a) => a
+
 pattern GL_POST_CONVOLUTION_COLOR_TABLE = 0x80D1
 
+pattern GL_POST_CONVOLUTION_GREEN_BIAS  :: (Eq a, Num a) => a
+
 pattern GL_POST_CONVOLUTION_GREEN_BIAS = 0x8021
 
+pattern GL_POST_CONVOLUTION_GREEN_SCALE  :: (Eq a, Num a) => a
+
 pattern GL_POST_CONVOLUTION_GREEN_SCALE = 0x801D
 
+pattern GL_POST_CONVOLUTION_RED_BIAS  :: (Eq a, Num a) => a
+
 pattern GL_POST_CONVOLUTION_RED_BIAS = 0x8020
 
+pattern GL_POST_CONVOLUTION_RED_SCALE  :: (Eq a, Num a) => a
+
 pattern GL_POST_CONVOLUTION_RED_SCALE = 0x801C
 
+pattern GL_PROXY_COLOR_TABLE  :: (Eq a, Num a) => a
+
 pattern GL_PROXY_COLOR_TABLE = 0x80D3
 
+pattern GL_PROXY_HISTOGRAM  :: (Eq a, Num a) => a
+
 pattern GL_PROXY_HISTOGRAM = 0x8025
 
+pattern GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE  :: (Eq a, Num a) => a
+
 pattern GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE = 0x80D5
 
+pattern GL_PROXY_POST_CONVOLUTION_COLOR_TABLE  :: (Eq a, Num a) => a
+
 pattern GL_PROXY_POST_CONVOLUTION_COLOR_TABLE = 0x80D4
 
+pattern GL_REDUCE  :: (Eq a, Num a) => a
+
 pattern GL_REDUCE = 0x8016
 
+pattern GL_REPLICATE_BORDER  :: (Eq a, Num a) => a
+
 pattern GL_REPLICATE_BORDER = 0x8153
 
+pattern GL_SEPARABLE_2D  :: (Eq a, Num a) => a
+
 pattern GL_SEPARABLE_2D = 0x8012
+
+pattern GL_TABLE_TOO_LARGE  :: (Eq a, Num a) => a
 
 pattern GL_TABLE_TOO_LARGE = 0x8031
diff --git a/generated-src/Graphics/GL/Ext/ARB/IndirectParameters.hs b/generated-src/Graphics/GL/Ext/ARB/IndirectParameters.hs
--- a/generated-src/Graphics/GL/Ext/ARB/IndirectParameters.hs
+++ b/generated-src/Graphics/GL/Ext/ARB/IndirectParameters.hs
@@ -47,6 +47,10 @@
 
 {-# NOINLINE glMultiDrawElementsIndirectCountARBFunPtr #-}
 
+pattern GL_PARAMETER_BUFFER_ARB  :: (Eq a, Num a) => a
+
 pattern GL_PARAMETER_BUFFER_ARB = 0x80EE
+
+pattern GL_PARAMETER_BUFFER_BINDING_ARB  :: (Eq a, Num a) => a
 
 pattern GL_PARAMETER_BUFFER_BINDING_ARB = 0x80EF
diff --git a/generated-src/Graphics/GL/Ext/ARB/InstancedArrays.hs b/generated-src/Graphics/GL/Ext/ARB/InstancedArrays.hs
--- a/generated-src/Graphics/GL/Ext/ARB/InstancedArrays.hs
+++ b/generated-src/Graphics/GL/Ext/ARB/InstancedArrays.hs
@@ -36,4 +36,6 @@
 
 {-# NOINLINE glVertexAttribDivisorARBFunPtr #-}
 
+pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB = 0x88FE
diff --git a/generated-src/Graphics/GL/Ext/ARB/InternalformatQuery2.hs b/generated-src/Graphics/GL/Ext/ARB/InternalformatQuery2.hs
--- a/generated-src/Graphics/GL/Ext/ARB/InternalformatQuery2.hs
+++ b/generated-src/Graphics/GL/Ext/ARB/InternalformatQuery2.hs
@@ -133,4 +133,6 @@
 gl_ARB_internalformat_query2 = member "GL_ARB_internalformat_query2" extensions
 {-# NOINLINE gl_ARB_internalformat_query2 #-}
 
+pattern GL_SRGB_DECODE_ARB  :: (Eq a, Num a) => a
+
 pattern GL_SRGB_DECODE_ARB = 0x8299
diff --git a/generated-src/Graphics/GL/Ext/ARB/MatrixPalette.hs b/generated-src/Graphics/GL/Ext/ARB/MatrixPalette.hs
--- a/generated-src/Graphics/GL/Ext/ARB/MatrixPalette.hs
+++ b/generated-src/Graphics/GL/Ext/ARB/MatrixPalette.hs
@@ -101,22 +101,42 @@
 
 {-# NOINLINE glMatrixIndexusvARBFunPtr #-}
 
+pattern GL_CURRENT_MATRIX_INDEX_ARB  :: (Eq a, Num a) => a
+
 pattern GL_CURRENT_MATRIX_INDEX_ARB = 0x8845
 
+pattern GL_CURRENT_PALETTE_MATRIX_ARB  :: (Eq a, Num a) => a
+
 pattern GL_CURRENT_PALETTE_MATRIX_ARB = 0x8843
 
+pattern GL_MATRIX_INDEX_ARRAY_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MATRIX_INDEX_ARRAY_ARB = 0x8844
 
+pattern GL_MATRIX_INDEX_ARRAY_POINTER_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MATRIX_INDEX_ARRAY_POINTER_ARB = 0x8849
 
+pattern GL_MATRIX_INDEX_ARRAY_SIZE_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MATRIX_INDEX_ARRAY_SIZE_ARB = 0x8846
 
+pattern GL_MATRIX_INDEX_ARRAY_STRIDE_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MATRIX_INDEX_ARRAY_STRIDE_ARB = 0x8848
 
+pattern GL_MATRIX_INDEX_ARRAY_TYPE_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MATRIX_INDEX_ARRAY_TYPE_ARB = 0x8847
 
+pattern GL_MATRIX_PALETTE_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MATRIX_PALETTE_ARB = 0x8840
 
+pattern GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB = 0x8841
+
+pattern GL_MAX_PALETTE_MATRICES_ARB  :: (Eq a, Num a) => a
 
 pattern GL_MAX_PALETTE_MATRICES_ARB = 0x8842
diff --git a/generated-src/Graphics/GL/Ext/ARB/Multisample.hs b/generated-src/Graphics/GL/Ext/ARB/Multisample.hs
--- a/generated-src/Graphics/GL/Ext/ARB/Multisample.hs
+++ b/generated-src/Graphics/GL/Ext/ARB/Multisample.hs
@@ -47,18 +47,34 @@
 
 {-# NOINLINE glSampleCoverageARBFunPtr #-}
 
+pattern GL_MULTISAMPLE_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MULTISAMPLE_ARB = 0x809D
 
+pattern GL_MULTISAMPLE_BIT_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MULTISAMPLE_BIT_ARB = 0x20000000
 
+pattern GL_SAMPLE_ALPHA_TO_COVERAGE_ARB  :: (Eq a, Num a) => a
+
 pattern GL_SAMPLE_ALPHA_TO_COVERAGE_ARB = 0x809E
 
+pattern GL_SAMPLE_ALPHA_TO_ONE_ARB  :: (Eq a, Num a) => a
+
 pattern GL_SAMPLE_ALPHA_TO_ONE_ARB = 0x809F
 
+pattern GL_SAMPLE_BUFFERS_ARB  :: (Eq a, Num a) => a
+
 pattern GL_SAMPLE_BUFFERS_ARB = 0x80A8
 
+pattern GL_SAMPLE_COVERAGE_ARB  :: (Eq a, Num a) => a
+
 pattern GL_SAMPLE_COVERAGE_ARB = 0x80A0
 
+pattern GL_SAMPLE_COVERAGE_INVERT_ARB  :: (Eq a, Num a) => a
+
 pattern GL_SAMPLE_COVERAGE_INVERT_ARB = 0x80AB
+
+pattern GL_SAMPLE_COVERAGE_VALUE_ARB  :: (Eq a, Num a) => a
 
 pattern GL_SAMPLE_COVERAGE_VALUE_ARB = 0x80AA
diff --git a/generated-src/Graphics/GL/Ext/ARB/Multitexture.hs b/generated-src/Graphics/GL/Ext/ARB/Multitexture.hs
--- a/generated-src/Graphics/GL/Ext/ARB/Multitexture.hs
+++ b/generated-src/Graphics/GL/Ext/ARB/Multitexture.hs
@@ -777,68 +777,134 @@
 
 {-# NOINLINE glMultiTexCoord4svARBFunPtr #-}
 
+pattern GL_ACTIVE_TEXTURE_ARB  :: (Eq a, Num a) => a
+
 pattern GL_ACTIVE_TEXTURE_ARB = 0x84E0
 
+pattern GL_CLIENT_ACTIVE_TEXTURE_ARB  :: (Eq a, Num a) => a
+
 pattern GL_CLIENT_ACTIVE_TEXTURE_ARB = 0x84E1
 
+pattern GL_MAX_TEXTURE_UNITS_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MAX_TEXTURE_UNITS_ARB = 0x84E2
 
+pattern GL_TEXTURE10_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE10_ARB = 0x84CA
 
+pattern GL_TEXTURE11_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE11_ARB = 0x84CB
 
+pattern GL_TEXTURE12_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE12_ARB = 0x84CC
 
+pattern GL_TEXTURE13_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE13_ARB = 0x84CD
 
+pattern GL_TEXTURE14_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE14_ARB = 0x84CE
 
+pattern GL_TEXTURE15_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE15_ARB = 0x84CF
 
+pattern GL_TEXTURE16_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE16_ARB = 0x84D0
 
+pattern GL_TEXTURE17_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE17_ARB = 0x84D1
 
+pattern GL_TEXTURE18_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE18_ARB = 0x84D2
 
+pattern GL_TEXTURE19_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE19_ARB = 0x84D3
 
+pattern GL_TEXTURE20_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE20_ARB = 0x84D4
 
+pattern GL_TEXTURE21_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE21_ARB = 0x84D5
 
+pattern GL_TEXTURE22_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE22_ARB = 0x84D6
 
+pattern GL_TEXTURE23_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE23_ARB = 0x84D7
 
+pattern GL_TEXTURE24_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE24_ARB = 0x84D8
 
+pattern GL_TEXTURE25_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE25_ARB = 0x84D9
 
+pattern GL_TEXTURE26_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE26_ARB = 0x84DA
 
+pattern GL_TEXTURE27_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE27_ARB = 0x84DB
 
+pattern GL_TEXTURE28_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE28_ARB = 0x84DC
 
+pattern GL_TEXTURE29_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE29_ARB = 0x84DD
 
+pattern GL_TEXTURE2_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE2_ARB = 0x84C2
 
+pattern GL_TEXTURE30_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE30_ARB = 0x84DE
 
+pattern GL_TEXTURE31_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE31_ARB = 0x84DF
 
+pattern GL_TEXTURE3_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE3_ARB = 0x84C3
 
+pattern GL_TEXTURE4_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE4_ARB = 0x84C4
 
+pattern GL_TEXTURE5_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE5_ARB = 0x84C5
 
+pattern GL_TEXTURE6_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE6_ARB = 0x84C6
 
+pattern GL_TEXTURE7_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE7_ARB = 0x84C7
 
+pattern GL_TEXTURE8_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE8_ARB = 0x84C8
+
+pattern GL_TEXTURE9_ARB  :: (Eq a, Num a) => a
 
 pattern GL_TEXTURE9_ARB = 0x84C9
diff --git a/generated-src/Graphics/GL/Ext/ARB/OcclusionQuery.hs b/generated-src/Graphics/GL/Ext/ARB/OcclusionQuery.hs
--- a/generated-src/Graphics/GL/Ext/ARB/OcclusionQuery.hs
+++ b/generated-src/Graphics/GL/Ext/ARB/OcclusionQuery.hs
@@ -148,12 +148,22 @@
 
 {-# NOINLINE glIsQueryARBFunPtr #-}
 
+pattern GL_CURRENT_QUERY_ARB  :: (Eq a, Num a) => a
+
 pattern GL_CURRENT_QUERY_ARB = 0x8865
 
+pattern GL_QUERY_COUNTER_BITS_ARB  :: (Eq a, Num a) => a
+
 pattern GL_QUERY_COUNTER_BITS_ARB = 0x8864
 
+pattern GL_QUERY_RESULT_ARB  :: (Eq a, Num a) => a
+
 pattern GL_QUERY_RESULT_ARB = 0x8866
 
+pattern GL_QUERY_RESULT_AVAILABLE_ARB  :: (Eq a, Num a) => a
+
 pattern GL_QUERY_RESULT_AVAILABLE_ARB = 0x8867
+
+pattern GL_SAMPLES_PASSED_ARB  :: (Eq a, Num a) => a
 
 pattern GL_SAMPLES_PASSED_ARB = 0x8914
diff --git a/generated-src/Graphics/GL/Ext/ARB/ParallelShaderCompile.hs b/generated-src/Graphics/GL/Ext/ARB/ParallelShaderCompile.hs
--- a/generated-src/Graphics/GL/Ext/ARB/ParallelShaderCompile.hs
+++ b/generated-src/Graphics/GL/Ext/ARB/ParallelShaderCompile.hs
@@ -35,6 +35,10 @@
 
 {-# NOINLINE glMaxShaderCompilerThreadsARBFunPtr #-}
 
+pattern GL_COMPLETION_STATUS_ARB  :: (Eq a, Num a) => a
+
 pattern GL_COMPLETION_STATUS_ARB = 0x91B1
+
+pattern GL_MAX_SHADER_COMPILER_THREADS_ARB  :: (Eq a, Num a) => a
 
 pattern GL_MAX_SHADER_COMPILER_THREADS_ARB = 0x91B0
diff --git a/generated-src/Graphics/GL/Ext/ARB/PipelineStatisticsQuery.hs b/generated-src/Graphics/GL/Ext/ARB/PipelineStatisticsQuery.hs
--- a/generated-src/Graphics/GL/Ext/ARB/PipelineStatisticsQuery.hs
+++ b/generated-src/Graphics/GL/Ext/ARB/PipelineStatisticsQuery.hs
@@ -28,22 +28,42 @@
 gl_ARB_pipeline_statistics_query = member "GL_ARB_pipeline_statistics_query" extensions
 {-# NOINLINE gl_ARB_pipeline_statistics_query #-}
 
+pattern GL_CLIPPING_INPUT_PRIMITIVES_ARB  :: (Eq a, Num a) => a
+
 pattern GL_CLIPPING_INPUT_PRIMITIVES_ARB = 0x82F6
 
+pattern GL_CLIPPING_OUTPUT_PRIMITIVES_ARB  :: (Eq a, Num a) => a
+
 pattern GL_CLIPPING_OUTPUT_PRIMITIVES_ARB = 0x82F7
 
+pattern GL_COMPUTE_SHADER_INVOCATIONS_ARB  :: (Eq a, Num a) => a
+
 pattern GL_COMPUTE_SHADER_INVOCATIONS_ARB = 0x82F5
 
+pattern GL_FRAGMENT_SHADER_INVOCATIONS_ARB  :: (Eq a, Num a) => a
+
 pattern GL_FRAGMENT_SHADER_INVOCATIONS_ARB = 0x82F4
 
+pattern GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB  :: (Eq a, Num a) => a
+
 pattern GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB = 0x82F3
 
+pattern GL_PRIMITIVES_SUBMITTED_ARB  :: (Eq a, Num a) => a
+
 pattern GL_PRIMITIVES_SUBMITTED_ARB = 0x82EF
 
+pattern GL_TESS_CONTROL_SHADER_PATCHES_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TESS_CONTROL_SHADER_PATCHES_ARB = 0x82F1
 
+pattern GL_TESS_EVALUATION_SHADER_INVOCATIONS_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TESS_EVALUATION_SHADER_INVOCATIONS_ARB = 0x82F2
 
+pattern GL_VERTEX_SHADER_INVOCATIONS_ARB  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_SHADER_INVOCATIONS_ARB = 0x82F0
+
+pattern GL_VERTICES_SUBMITTED_ARB  :: (Eq a, Num a) => a
 
 pattern GL_VERTICES_SUBMITTED_ARB = 0x82EE
diff --git a/generated-src/Graphics/GL/Ext/ARB/PixelBufferObject.hs b/generated-src/Graphics/GL/Ext/ARB/PixelBufferObject.hs
--- a/generated-src/Graphics/GL/Ext/ARB/PixelBufferObject.hs
+++ b/generated-src/Graphics/GL/Ext/ARB/PixelBufferObject.hs
@@ -20,10 +20,18 @@
 gl_ARB_pixel_buffer_object = member "GL_ARB_pixel_buffer_object" extensions
 {-# NOINLINE gl_ARB_pixel_buffer_object #-}
 
+pattern GL_PIXEL_PACK_BUFFER_ARB  :: (Eq a, Num a) => a
+
 pattern GL_PIXEL_PACK_BUFFER_ARB = 0x88EB
 
+pattern GL_PIXEL_PACK_BUFFER_BINDING_ARB  :: (Eq a, Num a) => a
+
 pattern GL_PIXEL_PACK_BUFFER_BINDING_ARB = 0x88ED
 
+pattern GL_PIXEL_UNPACK_BUFFER_ARB  :: (Eq a, Num a) => a
+
 pattern GL_PIXEL_UNPACK_BUFFER_ARB = 0x88EC
+
+pattern GL_PIXEL_UNPACK_BUFFER_BINDING_ARB  :: (Eq a, Num a) => a
 
 pattern GL_PIXEL_UNPACK_BUFFER_BINDING_ARB = 0x88EF
diff --git a/generated-src/Graphics/GL/Ext/ARB/PointParameters.hs b/generated-src/Graphics/GL/Ext/ARB/PointParameters.hs
--- a/generated-src/Graphics/GL/Ext/ARB/PointParameters.hs
+++ b/generated-src/Graphics/GL/Ext/ARB/PointParameters.hs
@@ -63,10 +63,18 @@
 
 {-# NOINLINE glPointParameterfvARBFunPtr #-}
 
+pattern GL_POINT_DISTANCE_ATTENUATION_ARB  :: (Eq a, Num a) => a
+
 pattern GL_POINT_DISTANCE_ATTENUATION_ARB = 0x8129
 
+pattern GL_POINT_FADE_THRESHOLD_SIZE_ARB  :: (Eq a, Num a) => a
+
 pattern GL_POINT_FADE_THRESHOLD_SIZE_ARB = 0x8128
 
+pattern GL_POINT_SIZE_MAX_ARB  :: (Eq a, Num a) => a
+
 pattern GL_POINT_SIZE_MAX_ARB = 0x8127
+
+pattern GL_POINT_SIZE_MIN_ARB  :: (Eq a, Num a) => a
 
 pattern GL_POINT_SIZE_MIN_ARB = 0x8126
diff --git a/generated-src/Graphics/GL/Ext/ARB/PointSprite.hs b/generated-src/Graphics/GL/Ext/ARB/PointSprite.hs
--- a/generated-src/Graphics/GL/Ext/ARB/PointSprite.hs
+++ b/generated-src/Graphics/GL/Ext/ARB/PointSprite.hs
@@ -18,6 +18,10 @@
 gl_ARB_point_sprite = member "GL_ARB_point_sprite" extensions
 {-# NOINLINE gl_ARB_point_sprite #-}
 
+pattern GL_COORD_REPLACE_ARB  :: (Eq a, Num a) => a
+
 pattern GL_COORD_REPLACE_ARB = 0x8862
+
+pattern GL_POINT_SPRITE_ARB  :: (Eq a, Num a) => a
 
 pattern GL_POINT_SPRITE_ARB = 0x8861
diff --git a/generated-src/Graphics/GL/Ext/ARB/Robustness.hs b/generated-src/Graphics/GL/Ext/ARB/Robustness.hs
--- a/generated-src/Graphics/GL/Ext/ARB/Robustness.hs
+++ b/generated-src/Graphics/GL/Ext/ARB/Robustness.hs
@@ -318,16 +318,30 @@
 
 {-# NOINLINE glReadnPixelsARBFunPtr #-}
 
+pattern GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB  :: (Eq a, Num a) => a
+
 pattern GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB = 0x00000004
 
+pattern GL_GUILTY_CONTEXT_RESET_ARB  :: (Eq a, Num a) => a
+
 pattern GL_GUILTY_CONTEXT_RESET_ARB = 0x8253
 
+pattern GL_INNOCENT_CONTEXT_RESET_ARB  :: (Eq a, Num a) => a
+
 pattern GL_INNOCENT_CONTEXT_RESET_ARB = 0x8254
 
+pattern GL_LOSE_CONTEXT_ON_RESET_ARB  :: (Eq a, Num a) => a
+
 pattern GL_LOSE_CONTEXT_ON_RESET_ARB = 0x8252
 
+pattern GL_NO_RESET_NOTIFICATION_ARB  :: (Eq a, Num a) => a
+
 pattern GL_NO_RESET_NOTIFICATION_ARB = 0x8261
 
+pattern GL_RESET_NOTIFICATION_STRATEGY_ARB  :: (Eq a, Num a) => a
+
 pattern GL_RESET_NOTIFICATION_STRATEGY_ARB = 0x8256
+
+pattern GL_UNKNOWN_CONTEXT_RESET_ARB  :: (Eq a, Num a) => a
 
 pattern GL_UNKNOWN_CONTEXT_RESET_ARB = 0x8255
diff --git a/generated-src/Graphics/GL/Ext/ARB/SampleLocations.hs b/generated-src/Graphics/GL/Ext/ARB/SampleLocations.hs
--- a/generated-src/Graphics/GL/Ext/ARB/SampleLocations.hs
+++ b/generated-src/Graphics/GL/Ext/ARB/SampleLocations.hs
@@ -65,18 +65,34 @@
 
 {-# NOINLINE glNamedFramebufferSampleLocationsfvARBFunPtr #-}
 
+pattern GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_ARB  :: (Eq a, Num a) => a
+
 pattern GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_ARB = 0x9342
 
+pattern GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_ARB  :: (Eq a, Num a) => a
+
 pattern GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_ARB = 0x9343
 
+pattern GL_PROGRAMMABLE_SAMPLE_LOCATION_ARB  :: (Eq a, Num a) => a
+
 pattern GL_PROGRAMMABLE_SAMPLE_LOCATION_ARB = 0x9341
 
+pattern GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_ARB  :: (Eq a, Num a) => a
+
 pattern GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_ARB = 0x9340
 
+pattern GL_SAMPLE_LOCATION_ARB  :: (Eq a, Num a) => a
+
 pattern GL_SAMPLE_LOCATION_ARB = 0x8E50
 
+pattern GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_ARB  :: (Eq a, Num a) => a
+
 pattern GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_ARB = 0x933F
 
+pattern GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_ARB  :: (Eq a, Num a) => a
+
 pattern GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_ARB = 0x933E
+
+pattern GL_SAMPLE_LOCATION_SUBPIXEL_BITS_ARB  :: (Eq a, Num a) => a
 
 pattern GL_SAMPLE_LOCATION_SUBPIXEL_BITS_ARB = 0x933D
diff --git a/generated-src/Graphics/GL/Ext/ARB/SampleShading.hs b/generated-src/Graphics/GL/Ext/ARB/SampleShading.hs
--- a/generated-src/Graphics/GL/Ext/ARB/SampleShading.hs
+++ b/generated-src/Graphics/GL/Ext/ARB/SampleShading.hs
@@ -39,6 +39,10 @@
 
 {-# NOINLINE glMinSampleShadingARBFunPtr #-}
 
+pattern GL_MIN_SAMPLE_SHADING_VALUE_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MIN_SAMPLE_SHADING_VALUE_ARB = 0x8C37
+
+pattern GL_SAMPLE_SHADING_ARB  :: (Eq a, Num a) => a
 
 pattern GL_SAMPLE_SHADING_ARB = 0x8C36
diff --git a/generated-src/Graphics/GL/Ext/ARB/ShaderObjects.hs b/generated-src/Graphics/GL/Ext/ARB/ShaderObjects.hs
--- a/generated-src/Graphics/GL/Ext/ARB/ShaderObjects.hs
+++ b/generated-src/Graphics/GL/Ext/ARB/ShaderObjects.hs
@@ -690,58 +690,114 @@
 
 {-# NOINLINE glValidateProgramARBFunPtr #-}
 
+pattern GL_BOOL_ARB  :: (Eq a, Num a) => a
+
 pattern GL_BOOL_ARB = 0x8B56
 
+pattern GL_BOOL_VEC2_ARB  :: (Eq a, Num a) => a
+
 pattern GL_BOOL_VEC2_ARB = 0x8B57
 
+pattern GL_BOOL_VEC3_ARB  :: (Eq a, Num a) => a
+
 pattern GL_BOOL_VEC3_ARB = 0x8B58
 
+pattern GL_BOOL_VEC4_ARB  :: (Eq a, Num a) => a
+
 pattern GL_BOOL_VEC4_ARB = 0x8B59
 
+pattern GL_INT_VEC2_ARB  :: (Eq a, Num a) => a
+
 pattern GL_INT_VEC2_ARB = 0x8B53
 
+pattern GL_INT_VEC3_ARB  :: (Eq a, Num a) => a
+
 pattern GL_INT_VEC3_ARB = 0x8B54
 
+pattern GL_INT_VEC4_ARB  :: (Eq a, Num a) => a
+
 pattern GL_INT_VEC4_ARB = 0x8B55
 
+pattern GL_OBJECT_ACTIVE_UNIFORMS_ARB  :: (Eq a, Num a) => a
+
 pattern GL_OBJECT_ACTIVE_UNIFORMS_ARB = 0x8B86
 
+pattern GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB  :: (Eq a, Num a) => a
+
 pattern GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB = 0x8B87
 
+pattern GL_OBJECT_ATTACHED_OBJECTS_ARB  :: (Eq a, Num a) => a
+
 pattern GL_OBJECT_ATTACHED_OBJECTS_ARB = 0x8B85
 
+pattern GL_OBJECT_COMPILE_STATUS_ARB  :: (Eq a, Num a) => a
+
 pattern GL_OBJECT_COMPILE_STATUS_ARB = 0x8B81
 
+pattern GL_OBJECT_DELETE_STATUS_ARB  :: (Eq a, Num a) => a
+
 pattern GL_OBJECT_DELETE_STATUS_ARB = 0x8B80
 
+pattern GL_OBJECT_INFO_LOG_LENGTH_ARB  :: (Eq a, Num a) => a
+
 pattern GL_OBJECT_INFO_LOG_LENGTH_ARB = 0x8B84
 
+pattern GL_OBJECT_LINK_STATUS_ARB  :: (Eq a, Num a) => a
+
 pattern GL_OBJECT_LINK_STATUS_ARB = 0x8B82
 
+pattern GL_OBJECT_SHADER_SOURCE_LENGTH_ARB  :: (Eq a, Num a) => a
+
 pattern GL_OBJECT_SHADER_SOURCE_LENGTH_ARB = 0x8B88
 
+pattern GL_OBJECT_SUBTYPE_ARB  :: (Eq a, Num a) => a
+
 pattern GL_OBJECT_SUBTYPE_ARB = 0x8B4F
 
+pattern GL_OBJECT_TYPE_ARB  :: (Eq a, Num a) => a
+
 pattern GL_OBJECT_TYPE_ARB = 0x8B4E
 
+pattern GL_OBJECT_VALIDATE_STATUS_ARB  :: (Eq a, Num a) => a
+
 pattern GL_OBJECT_VALIDATE_STATUS_ARB = 0x8B83
 
+pattern GL_PROGRAM_OBJECT_ARB  :: (Eq a, Num a) => a
+
 pattern GL_PROGRAM_OBJECT_ARB = 0x8B40
 
+pattern GL_SAMPLER_1D_ARB  :: (Eq a, Num a) => a
+
 pattern GL_SAMPLER_1D_ARB = 0x8B5D
 
+pattern GL_SAMPLER_1D_SHADOW_ARB  :: (Eq a, Num a) => a
+
 pattern GL_SAMPLER_1D_SHADOW_ARB = 0x8B61
 
+pattern GL_SAMPLER_2D_ARB  :: (Eq a, Num a) => a
+
 pattern GL_SAMPLER_2D_ARB = 0x8B5E
 
+pattern GL_SAMPLER_2D_RECT_ARB  :: (Eq a, Num a) => a
+
 pattern GL_SAMPLER_2D_RECT_ARB = 0x8B63
 
+pattern GL_SAMPLER_2D_RECT_SHADOW_ARB  :: (Eq a, Num a) => a
+
 pattern GL_SAMPLER_2D_RECT_SHADOW_ARB = 0x8B64
 
+pattern GL_SAMPLER_2D_SHADOW_ARB  :: (Eq a, Num a) => a
+
 pattern GL_SAMPLER_2D_SHADOW_ARB = 0x8B62
 
+pattern GL_SAMPLER_3D_ARB  :: (Eq a, Num a) => a
+
 pattern GL_SAMPLER_3D_ARB = 0x8B5F
 
+pattern GL_SAMPLER_CUBE_ARB  :: (Eq a, Num a) => a
+
 pattern GL_SAMPLER_CUBE_ARB = 0x8B60
+
+pattern GL_SHADER_OBJECT_ARB  :: (Eq a, Num a) => a
 
 pattern GL_SHADER_OBJECT_ARB = 0x8B48
diff --git a/generated-src/Graphics/GL/Ext/ARB/ShadingLanguage100.hs b/generated-src/Graphics/GL/Ext/ARB/ShadingLanguage100.hs
--- a/generated-src/Graphics/GL/Ext/ARB/ShadingLanguage100.hs
+++ b/generated-src/Graphics/GL/Ext/ARB/ShadingLanguage100.hs
@@ -17,4 +17,6 @@
 gl_ARB_shading_language_100 = member "GL_ARB_shading_language_100" extensions
 {-# NOINLINE gl_ARB_shading_language_100 #-}
 
+pattern GL_SHADING_LANGUAGE_VERSION_ARB  :: (Eq a, Num a) => a
+
 pattern GL_SHADING_LANGUAGE_VERSION_ARB = 0x8B8C
diff --git a/generated-src/Graphics/GL/Ext/ARB/ShadingLanguageInclude.hs b/generated-src/Graphics/GL/Ext/ARB/ShadingLanguageInclude.hs
--- a/generated-src/Graphics/GL/Ext/ARB/ShadingLanguageInclude.hs
+++ b/generated-src/Graphics/GL/Ext/ARB/ShadingLanguageInclude.hs
@@ -118,8 +118,14 @@
 
 {-# NOINLINE glNamedStringARBFunPtr #-}
 
+pattern GL_NAMED_STRING_LENGTH_ARB  :: (Eq a, Num a) => a
+
 pattern GL_NAMED_STRING_LENGTH_ARB = 0x8DE9
 
+pattern GL_NAMED_STRING_TYPE_ARB  :: (Eq a, Num a) => a
+
 pattern GL_NAMED_STRING_TYPE_ARB = 0x8DEA
+
+pattern GL_SHADER_INCLUDE_ARB  :: (Eq a, Num a) => a
 
 pattern GL_SHADER_INCLUDE_ARB = 0x8DAE
diff --git a/generated-src/Graphics/GL/Ext/ARB/Shadow.hs b/generated-src/Graphics/GL/Ext/ARB/Shadow.hs
--- a/generated-src/Graphics/GL/Ext/ARB/Shadow.hs
+++ b/generated-src/Graphics/GL/Ext/ARB/Shadow.hs
@@ -19,8 +19,14 @@
 gl_ARB_shadow = member "GL_ARB_shadow" extensions
 {-# NOINLINE gl_ARB_shadow #-}
 
+pattern GL_COMPARE_R_TO_TEXTURE_ARB  :: (Eq a, Num a) => a
+
 pattern GL_COMPARE_R_TO_TEXTURE_ARB = 0x884E
 
+pattern GL_TEXTURE_COMPARE_FUNC_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_COMPARE_FUNC_ARB = 0x884D
+
+pattern GL_TEXTURE_COMPARE_MODE_ARB  :: (Eq a, Num a) => a
 
 pattern GL_TEXTURE_COMPARE_MODE_ARB = 0x884C
diff --git a/generated-src/Graphics/GL/Ext/ARB/ShadowAmbient.hs b/generated-src/Graphics/GL/Ext/ARB/ShadowAmbient.hs
--- a/generated-src/Graphics/GL/Ext/ARB/ShadowAmbient.hs
+++ b/generated-src/Graphics/GL/Ext/ARB/ShadowAmbient.hs
@@ -17,4 +17,6 @@
 gl_ARB_shadow_ambient = member "GL_ARB_shadow_ambient" extensions
 {-# NOINLINE gl_ARB_shadow_ambient #-}
 
+pattern GL_TEXTURE_COMPARE_FAIL_VALUE_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_COMPARE_FAIL_VALUE_ARB = 0x80BF
diff --git a/generated-src/Graphics/GL/Ext/ARB/SparseBuffer.hs b/generated-src/Graphics/GL/Ext/ARB/SparseBuffer.hs
--- a/generated-src/Graphics/GL/Ext/ARB/SparseBuffer.hs
+++ b/generated-src/Graphics/GL/Ext/ARB/SparseBuffer.hs
@@ -59,6 +59,10 @@
 
 {-# NOINLINE glNamedBufferPageCommitmentEXTFunPtr #-}
 
+pattern GL_SPARSE_BUFFER_PAGE_SIZE_ARB  :: (Eq a, Num a) => a
+
 pattern GL_SPARSE_BUFFER_PAGE_SIZE_ARB = 0x82F8
+
+pattern GL_SPARSE_STORAGE_BIT_ARB  :: (Eq a, Num a) => a
 
 pattern GL_SPARSE_STORAGE_BIT_ARB = 0x0400
diff --git a/generated-src/Graphics/GL/Ext/ARB/SparseTexture.hs b/generated-src/Graphics/GL/Ext/ARB/SparseTexture.hs
--- a/generated-src/Graphics/GL/Ext/ARB/SparseTexture.hs
+++ b/generated-src/Graphics/GL/Ext/ARB/SparseTexture.hs
@@ -44,24 +44,46 @@
 
 {-# NOINLINE glTexPageCommitmentARBFunPtr #-}
 
+pattern GL_MAX_SPARSE_3D_TEXTURE_SIZE_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MAX_SPARSE_3D_TEXTURE_SIZE_ARB = 0x9199
 
+pattern GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB = 0x919A
 
+pattern GL_MAX_SPARSE_TEXTURE_SIZE_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MAX_SPARSE_TEXTURE_SIZE_ARB = 0x9198
 
+pattern GL_NUM_SPARSE_LEVELS_ARB  :: (Eq a, Num a) => a
+
 pattern GL_NUM_SPARSE_LEVELS_ARB = 0x91AA
 
+pattern GL_NUM_VIRTUAL_PAGE_SIZES_ARB  :: (Eq a, Num a) => a
+
 pattern GL_NUM_VIRTUAL_PAGE_SIZES_ARB = 0x91A8
 
+pattern GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB  :: (Eq a, Num a) => a
+
 pattern GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB = 0x91A9
 
+pattern GL_TEXTURE_SPARSE_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_SPARSE_ARB = 0x91A6
 
+pattern GL_VIRTUAL_PAGE_SIZE_INDEX_ARB  :: (Eq a, Num a) => a
+
 pattern GL_VIRTUAL_PAGE_SIZE_INDEX_ARB = 0x91A7
 
+pattern GL_VIRTUAL_PAGE_SIZE_X_ARB  :: (Eq a, Num a) => a
+
 pattern GL_VIRTUAL_PAGE_SIZE_X_ARB = 0x9195
 
+pattern GL_VIRTUAL_PAGE_SIZE_Y_ARB  :: (Eq a, Num a) => a
+
 pattern GL_VIRTUAL_PAGE_SIZE_Y_ARB = 0x9196
+
+pattern GL_VIRTUAL_PAGE_SIZE_Z_ARB  :: (Eq a, Num a) => a
 
 pattern GL_VIRTUAL_PAGE_SIZE_Z_ARB = 0x9197
diff --git a/generated-src/Graphics/GL/Ext/ARB/TextureBorderClamp.hs b/generated-src/Graphics/GL/Ext/ARB/TextureBorderClamp.hs
--- a/generated-src/Graphics/GL/Ext/ARB/TextureBorderClamp.hs
+++ b/generated-src/Graphics/GL/Ext/ARB/TextureBorderClamp.hs
@@ -17,4 +17,6 @@
 gl_ARB_texture_border_clamp = member "GL_ARB_texture_border_clamp" extensions
 {-# NOINLINE gl_ARB_texture_border_clamp #-}
 
+pattern GL_CLAMP_TO_BORDER_ARB  :: (Eq a, Num a) => a
+
 pattern GL_CLAMP_TO_BORDER_ARB = 0x812D
diff --git a/generated-src/Graphics/GL/Ext/ARB/TextureBufferObject.hs b/generated-src/Graphics/GL/Ext/ARB/TextureBufferObject.hs
--- a/generated-src/Graphics/GL/Ext/ARB/TextureBufferObject.hs
+++ b/generated-src/Graphics/GL/Ext/ARB/TextureBufferObject.hs
@@ -42,12 +42,22 @@
 
 {-# NOINLINE glTexBufferARBFunPtr #-}
 
+pattern GL_MAX_TEXTURE_BUFFER_SIZE_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MAX_TEXTURE_BUFFER_SIZE_ARB = 0x8C2B
 
+pattern GL_TEXTURE_BINDING_BUFFER_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_BINDING_BUFFER_ARB = 0x8C2C
 
+pattern GL_TEXTURE_BUFFER_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_BUFFER_ARB = 0x8C2A
 
+pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB = 0x8C2D
+
+pattern GL_TEXTURE_BUFFER_FORMAT_ARB  :: (Eq a, Num a) => a
 
 pattern GL_TEXTURE_BUFFER_FORMAT_ARB = 0x8C2E
diff --git a/generated-src/Graphics/GL/Ext/ARB/TextureCompression.hs b/generated-src/Graphics/GL/Ext/ARB/TextureCompression.hs
--- a/generated-src/Graphics/GL/Ext/ARB/TextureCompression.hs
+++ b/generated-src/Graphics/GL/Ext/ARB/TextureCompression.hs
@@ -216,24 +216,46 @@
 
 {-# NOINLINE glGetCompressedTexImageARBFunPtr #-}
 
+pattern GL_COMPRESSED_ALPHA_ARB  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_ALPHA_ARB = 0x84E9
 
+pattern GL_COMPRESSED_INTENSITY_ARB  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_INTENSITY_ARB = 0x84EC
 
+pattern GL_COMPRESSED_LUMINANCE_ALPHA_ARB  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_LUMINANCE_ALPHA_ARB = 0x84EB
 
+pattern GL_COMPRESSED_LUMINANCE_ARB  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_LUMINANCE_ARB = 0x84EA
 
+pattern GL_COMPRESSED_RGBA_ARB  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_RGBA_ARB = 0x84EE
 
+pattern GL_COMPRESSED_RGB_ARB  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_RGB_ARB = 0x84ED
 
+pattern GL_COMPRESSED_TEXTURE_FORMATS_ARB  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_TEXTURE_FORMATS_ARB = 0x86A3
 
+pattern GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB  :: (Eq a, Num a) => a
+
 pattern GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB = 0x86A2
 
+pattern GL_TEXTURE_COMPRESSED_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_COMPRESSED_ARB = 0x86A1
 
+pattern GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB = 0x86A0
+
+pattern GL_TEXTURE_COMPRESSION_HINT_ARB  :: (Eq a, Num a) => a
 
 pattern GL_TEXTURE_COMPRESSION_HINT_ARB = 0x84EF
diff --git a/generated-src/Graphics/GL/Ext/ARB/TextureCompressionBptc.hs b/generated-src/Graphics/GL/Ext/ARB/TextureCompressionBptc.hs
--- a/generated-src/Graphics/GL/Ext/ARB/TextureCompressionBptc.hs
+++ b/generated-src/Graphics/GL/Ext/ARB/TextureCompressionBptc.hs
@@ -20,10 +20,18 @@
 gl_ARB_texture_compression_bptc = member "GL_ARB_texture_compression_bptc" extensions
 {-# NOINLINE gl_ARB_texture_compression_bptc #-}
 
+pattern GL_COMPRESSED_RGBA_BPTC_UNORM_ARB  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_RGBA_BPTC_UNORM_ARB = 0x8E8C
 
+pattern GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB = 0x8E8E
 
+pattern GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB = 0x8E8F
+
+pattern GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB  :: (Eq a, Num a) => a
 
 pattern GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB = 0x8E8D
diff --git a/generated-src/Graphics/GL/Ext/ARB/TextureCubeMap.hs b/generated-src/Graphics/GL/Ext/ARB/TextureCubeMap.hs
--- a/generated-src/Graphics/GL/Ext/ARB/TextureCubeMap.hs
+++ b/generated-src/Graphics/GL/Ext/ARB/TextureCubeMap.hs
@@ -28,26 +28,50 @@
 gl_ARB_texture_cube_map = member "GL_ARB_texture_cube_map" extensions
 {-# NOINLINE gl_ARB_texture_cube_map #-}
 
+pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB = 0x851C
 
+pattern GL_NORMAL_MAP_ARB  :: (Eq a, Num a) => a
+
 pattern GL_NORMAL_MAP_ARB = 0x8511
 
+pattern GL_PROXY_TEXTURE_CUBE_MAP_ARB  :: (Eq a, Num a) => a
+
 pattern GL_PROXY_TEXTURE_CUBE_MAP_ARB = 0x851B
 
+pattern GL_REFLECTION_MAP_ARB  :: (Eq a, Num a) => a
+
 pattern GL_REFLECTION_MAP_ARB = 0x8512
 
+pattern GL_TEXTURE_BINDING_CUBE_MAP_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_BINDING_CUBE_MAP_ARB = 0x8514
 
+pattern GL_TEXTURE_CUBE_MAP_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_CUBE_MAP_ARB = 0x8513
 
+pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB = 0x8516
 
+pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB = 0x8518
 
+pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB = 0x851A
 
+pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB = 0x8515
 
+pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB = 0x8517
+
+pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB  :: (Eq a, Num a) => a
 
 pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB = 0x8519
diff --git a/generated-src/Graphics/GL/Ext/ARB/TextureCubeMapArray.hs b/generated-src/Graphics/GL/Ext/ARB/TextureCubeMapArray.hs
--- a/generated-src/Graphics/GL/Ext/ARB/TextureCubeMapArray.hs
+++ b/generated-src/Graphics/GL/Ext/ARB/TextureCubeMapArray.hs
@@ -23,16 +23,30 @@
 gl_ARB_texture_cube_map_array = member "GL_ARB_texture_cube_map_array" extensions
 {-# NOINLINE gl_ARB_texture_cube_map_array #-}
 
+pattern GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB  :: (Eq a, Num a) => a
+
 pattern GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB = 0x900E
 
+pattern GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB  :: (Eq a, Num a) => a
+
 pattern GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB = 0x900B
 
+pattern GL_SAMPLER_CUBE_MAP_ARRAY_ARB  :: (Eq a, Num a) => a
+
 pattern GL_SAMPLER_CUBE_MAP_ARRAY_ARB = 0x900C
 
+pattern GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB  :: (Eq a, Num a) => a
+
 pattern GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB = 0x900D
 
+pattern GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB = 0x900A
 
+pattern GL_TEXTURE_CUBE_MAP_ARRAY_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_CUBE_MAP_ARRAY_ARB = 0x9009
+
+pattern GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB  :: (Eq a, Num a) => a
 
 pattern GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB = 0x900F
diff --git a/generated-src/Graphics/GL/Ext/ARB/TextureEnvCombine.hs b/generated-src/Graphics/GL/Ext/ARB/TextureEnvCombine.hs
--- a/generated-src/Graphics/GL/Ext/ARB/TextureEnvCombine.hs
+++ b/generated-src/Graphics/GL/Ext/ARB/TextureEnvCombine.hs
@@ -38,46 +38,90 @@
 gl_ARB_texture_env_combine = member "GL_ARB_texture_env_combine" extensions
 {-# NOINLINE gl_ARB_texture_env_combine #-}
 
+pattern GL_ADD_SIGNED_ARB  :: (Eq a, Num a) => a
+
 pattern GL_ADD_SIGNED_ARB = 0x8574
 
+pattern GL_COMBINE_ALPHA_ARB  :: (Eq a, Num a) => a
+
 pattern GL_COMBINE_ALPHA_ARB = 0x8572
 
+pattern GL_COMBINE_ARB  :: (Eq a, Num a) => a
+
 pattern GL_COMBINE_ARB = 0x8570
 
+pattern GL_COMBINE_RGB_ARB  :: (Eq a, Num a) => a
+
 pattern GL_COMBINE_RGB_ARB = 0x8571
 
+pattern GL_CONSTANT_ARB  :: (Eq a, Num a) => a
+
 pattern GL_CONSTANT_ARB = 0x8576
 
+pattern GL_INTERPOLATE_ARB  :: (Eq a, Num a) => a
+
 pattern GL_INTERPOLATE_ARB = 0x8575
 
+pattern GL_OPERAND0_ALPHA_ARB  :: (Eq a, Num a) => a
+
 pattern GL_OPERAND0_ALPHA_ARB = 0x8598
 
+pattern GL_OPERAND0_RGB_ARB  :: (Eq a, Num a) => a
+
 pattern GL_OPERAND0_RGB_ARB = 0x8590
 
+pattern GL_OPERAND1_ALPHA_ARB  :: (Eq a, Num a) => a
+
 pattern GL_OPERAND1_ALPHA_ARB = 0x8599
 
+pattern GL_OPERAND1_RGB_ARB  :: (Eq a, Num a) => a
+
 pattern GL_OPERAND1_RGB_ARB = 0x8591
 
+pattern GL_OPERAND2_ALPHA_ARB  :: (Eq a, Num a) => a
+
 pattern GL_OPERAND2_ALPHA_ARB = 0x859A
 
+pattern GL_OPERAND2_RGB_ARB  :: (Eq a, Num a) => a
+
 pattern GL_OPERAND2_RGB_ARB = 0x8592
 
+pattern GL_PREVIOUS_ARB  :: (Eq a, Num a) => a
+
 pattern GL_PREVIOUS_ARB = 0x8578
 
+pattern GL_PRIMARY_COLOR_ARB  :: (Eq a, Num a) => a
+
 pattern GL_PRIMARY_COLOR_ARB = 0x8577
 
+pattern GL_RGB_SCALE_ARB  :: (Eq a, Num a) => a
+
 pattern GL_RGB_SCALE_ARB = 0x8573
 
+pattern GL_SOURCE0_ALPHA_ARB  :: (Eq a, Num a) => a
+
 pattern GL_SOURCE0_ALPHA_ARB = 0x8588
 
+pattern GL_SOURCE0_RGB_ARB  :: (Eq a, Num a) => a
+
 pattern GL_SOURCE0_RGB_ARB = 0x8580
 
+pattern GL_SOURCE1_ALPHA_ARB  :: (Eq a, Num a) => a
+
 pattern GL_SOURCE1_ALPHA_ARB = 0x8589
 
+pattern GL_SOURCE1_RGB_ARB  :: (Eq a, Num a) => a
+
 pattern GL_SOURCE1_RGB_ARB = 0x8581
 
+pattern GL_SOURCE2_ALPHA_ARB  :: (Eq a, Num a) => a
+
 pattern GL_SOURCE2_ALPHA_ARB = 0x858A
 
+pattern GL_SOURCE2_RGB_ARB  :: (Eq a, Num a) => a
+
 pattern GL_SOURCE2_RGB_ARB = 0x8582
+
+pattern GL_SUBTRACT_ARB  :: (Eq a, Num a) => a
 
 pattern GL_SUBTRACT_ARB = 0x84E7
diff --git a/generated-src/Graphics/GL/Ext/ARB/TextureEnvDot3.hs b/generated-src/Graphics/GL/Ext/ARB/TextureEnvDot3.hs
--- a/generated-src/Graphics/GL/Ext/ARB/TextureEnvDot3.hs
+++ b/generated-src/Graphics/GL/Ext/ARB/TextureEnvDot3.hs
@@ -18,6 +18,10 @@
 gl_ARB_texture_env_dot3 = member "GL_ARB_texture_env_dot3" extensions
 {-# NOINLINE gl_ARB_texture_env_dot3 #-}
 
+pattern GL_DOT3_RGBA_ARB  :: (Eq a, Num a) => a
+
 pattern GL_DOT3_RGBA_ARB = 0x86AF
+
+pattern GL_DOT3_RGB_ARB  :: (Eq a, Num a) => a
 
 pattern GL_DOT3_RGB_ARB = 0x86AE
diff --git a/generated-src/Graphics/GL/Ext/ARB/TextureFilterMinmax.hs b/generated-src/Graphics/GL/Ext/ARB/TextureFilterMinmax.hs
--- a/generated-src/Graphics/GL/Ext/ARB/TextureFilterMinmax.hs
+++ b/generated-src/Graphics/GL/Ext/ARB/TextureFilterMinmax.hs
@@ -18,6 +18,10 @@
 gl_ARB_texture_filter_minmax = member "GL_ARB_texture_filter_minmax" extensions
 {-# NOINLINE gl_ARB_texture_filter_minmax #-}
 
+pattern GL_TEXTURE_REDUCTION_MODE_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_REDUCTION_MODE_ARB = 0x9366
+
+pattern GL_WEIGHTED_AVERAGE_ARB  :: (Eq a, Num a) => a
 
 pattern GL_WEIGHTED_AVERAGE_ARB = 0x9367
diff --git a/generated-src/Graphics/GL/Ext/ARB/TextureFloat.hs b/generated-src/Graphics/GL/Ext/ARB/TextureFloat.hs
--- a/generated-src/Graphics/GL/Ext/ARB/TextureFloat.hs
+++ b/generated-src/Graphics/GL/Ext/ARB/TextureFloat.hs
@@ -36,42 +36,82 @@
 gl_ARB_texture_float = member "GL_ARB_texture_float" extensions
 {-# NOINLINE gl_ARB_texture_float #-}
 
+pattern GL_ALPHA16F_ARB  :: (Eq a, Num a) => a
+
 pattern GL_ALPHA16F_ARB = 0x881C
 
+pattern GL_ALPHA32F_ARB  :: (Eq a, Num a) => a
+
 pattern GL_ALPHA32F_ARB = 0x8816
 
+pattern GL_INTENSITY16F_ARB  :: (Eq a, Num a) => a
+
 pattern GL_INTENSITY16F_ARB = 0x881D
 
+pattern GL_INTENSITY32F_ARB  :: (Eq a, Num a) => a
+
 pattern GL_INTENSITY32F_ARB = 0x8817
 
+pattern GL_LUMINANCE16F_ARB  :: (Eq a, Num a) => a
+
 pattern GL_LUMINANCE16F_ARB = 0x881E
 
+pattern GL_LUMINANCE32F_ARB  :: (Eq a, Num a) => a
+
 pattern GL_LUMINANCE32F_ARB = 0x8818
 
+pattern GL_LUMINANCE_ALPHA16F_ARB  :: (Eq a, Num a) => a
+
 pattern GL_LUMINANCE_ALPHA16F_ARB = 0x881F
 
+pattern GL_LUMINANCE_ALPHA32F_ARB  :: (Eq a, Num a) => a
+
 pattern GL_LUMINANCE_ALPHA32F_ARB = 0x8819
 
+pattern GL_RGB16F_ARB  :: (Eq a, Num a) => a
+
 pattern GL_RGB16F_ARB = 0x881B
 
+pattern GL_RGB32F_ARB  :: (Eq a, Num a) => a
+
 pattern GL_RGB32F_ARB = 0x8815
 
+pattern GL_RGBA16F_ARB  :: (Eq a, Num a) => a
+
 pattern GL_RGBA16F_ARB = 0x881A
 
+pattern GL_RGBA32F_ARB  :: (Eq a, Num a) => a
+
 pattern GL_RGBA32F_ARB = 0x8814
 
+pattern GL_TEXTURE_ALPHA_TYPE_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_ALPHA_TYPE_ARB = 0x8C13
 
+pattern GL_TEXTURE_BLUE_TYPE_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_BLUE_TYPE_ARB = 0x8C12
 
+pattern GL_TEXTURE_DEPTH_TYPE_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_DEPTH_TYPE_ARB = 0x8C16
 
+pattern GL_TEXTURE_GREEN_TYPE_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_GREEN_TYPE_ARB = 0x8C11
 
+pattern GL_TEXTURE_INTENSITY_TYPE_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_INTENSITY_TYPE_ARB = 0x8C15
 
+pattern GL_TEXTURE_LUMINANCE_TYPE_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_LUMINANCE_TYPE_ARB = 0x8C14
 
+pattern GL_TEXTURE_RED_TYPE_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_RED_TYPE_ARB = 0x8C10
+
+pattern GL_UNSIGNED_NORMALIZED_ARB  :: (Eq a, Num a) => a
 
 pattern GL_UNSIGNED_NORMALIZED_ARB = 0x8C17
diff --git a/generated-src/Graphics/GL/Ext/ARB/TextureGather.hs b/generated-src/Graphics/GL/Ext/ARB/TextureGather.hs
--- a/generated-src/Graphics/GL/Ext/ARB/TextureGather.hs
+++ b/generated-src/Graphics/GL/Ext/ARB/TextureGather.hs
@@ -19,8 +19,14 @@
 gl_ARB_texture_gather = member "GL_ARB_texture_gather" extensions
 {-# NOINLINE gl_ARB_texture_gather #-}
 
+pattern GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB = 0x8F9F
 
+pattern GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB = 0x8E5F
+
+pattern GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB  :: (Eq a, Num a) => a
 
 pattern GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB = 0x8E5E
diff --git a/generated-src/Graphics/GL/Ext/ARB/TextureMirroredRepeat.hs b/generated-src/Graphics/GL/Ext/ARB/TextureMirroredRepeat.hs
--- a/generated-src/Graphics/GL/Ext/ARB/TextureMirroredRepeat.hs
+++ b/generated-src/Graphics/GL/Ext/ARB/TextureMirroredRepeat.hs
@@ -17,4 +17,6 @@
 gl_ARB_texture_mirrored_repeat = member "GL_ARB_texture_mirrored_repeat" extensions
 {-# NOINLINE gl_ARB_texture_mirrored_repeat #-}
 
+pattern GL_MIRRORED_REPEAT_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MIRRORED_REPEAT_ARB = 0x8370
diff --git a/generated-src/Graphics/GL/Ext/ARB/TextureRectangle.hs b/generated-src/Graphics/GL/Ext/ARB/TextureRectangle.hs
--- a/generated-src/Graphics/GL/Ext/ARB/TextureRectangle.hs
+++ b/generated-src/Graphics/GL/Ext/ARB/TextureRectangle.hs
@@ -20,10 +20,18 @@
 gl_ARB_texture_rectangle = member "GL_ARB_texture_rectangle" extensions
 {-# NOINLINE gl_ARB_texture_rectangle #-}
 
+pattern GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB = 0x84F8
 
+pattern GL_PROXY_TEXTURE_RECTANGLE_ARB  :: (Eq a, Num a) => a
+
 pattern GL_PROXY_TEXTURE_RECTANGLE_ARB = 0x84F7
 
+pattern GL_TEXTURE_BINDING_RECTANGLE_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_BINDING_RECTANGLE_ARB = 0x84F6
+
+pattern GL_TEXTURE_RECTANGLE_ARB  :: (Eq a, Num a) => a
 
 pattern GL_TEXTURE_RECTANGLE_ARB = 0x84F5
diff --git a/generated-src/Graphics/GL/Ext/ARB/TransformFeedbackOverflowQuery.hs b/generated-src/Graphics/GL/Ext/ARB/TransformFeedbackOverflowQuery.hs
--- a/generated-src/Graphics/GL/Ext/ARB/TransformFeedbackOverflowQuery.hs
+++ b/generated-src/Graphics/GL/Ext/ARB/TransformFeedbackOverflowQuery.hs
@@ -18,6 +18,10 @@
 gl_ARB_transform_feedback_overflow_query = member "GL_ARB_transform_feedback_overflow_query" extensions
 {-# NOINLINE gl_ARB_transform_feedback_overflow_query #-}
 
+pattern GL_TRANSFORM_FEEDBACK_OVERFLOW_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TRANSFORM_FEEDBACK_OVERFLOW_ARB = 0x82EC
+
+pattern GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW_ARB  :: (Eq a, Num a) => a
 
 pattern GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW_ARB = 0x82ED
diff --git a/generated-src/Graphics/GL/Ext/ARB/TransposeMatrix.hs b/generated-src/Graphics/GL/Ext/ARB/TransposeMatrix.hs
--- a/generated-src/Graphics/GL/Ext/ARB/TransposeMatrix.hs
+++ b/generated-src/Graphics/GL/Ext/ARB/TransposeMatrix.hs
@@ -89,10 +89,18 @@
 
 {-# NOINLINE glMultTransposeMatrixfARBFunPtr #-}
 
+pattern GL_TRANSPOSE_COLOR_MATRIX_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TRANSPOSE_COLOR_MATRIX_ARB = 0x84E6
 
+pattern GL_TRANSPOSE_MODELVIEW_MATRIX_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TRANSPOSE_MODELVIEW_MATRIX_ARB = 0x84E3
 
+pattern GL_TRANSPOSE_PROJECTION_MATRIX_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TRANSPOSE_PROJECTION_MATRIX_ARB = 0x84E4
+
+pattern GL_TRANSPOSE_TEXTURE_MATRIX_ARB  :: (Eq a, Num a) => a
 
 pattern GL_TRANSPOSE_TEXTURE_MATRIX_ARB = 0x84E5
diff --git a/generated-src/Graphics/GL/Ext/ARB/VertexBlend.hs b/generated-src/Graphics/GL/Ext/ARB/VertexBlend.hs
--- a/generated-src/Graphics/GL/Ext/ARB/VertexBlend.hs
+++ b/generated-src/Graphics/GL/Ext/ARB/VertexBlend.hs
@@ -203,86 +203,170 @@
 
 {-# NOINLINE glWeightusvARBFunPtr #-}
 
+pattern GL_ACTIVE_VERTEX_UNITS_ARB  :: (Eq a, Num a) => a
+
 pattern GL_ACTIVE_VERTEX_UNITS_ARB = 0x86A5
 
+pattern GL_CURRENT_WEIGHT_ARB  :: (Eq a, Num a) => a
+
 pattern GL_CURRENT_WEIGHT_ARB = 0x86A8
 
+pattern GL_MAX_VERTEX_UNITS_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MAX_VERTEX_UNITS_ARB = 0x86A4
 
+pattern GL_MODELVIEW0_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MODELVIEW0_ARB = 0x1700
 
+pattern GL_MODELVIEW10_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MODELVIEW10_ARB = 0x872A
 
+pattern GL_MODELVIEW11_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MODELVIEW11_ARB = 0x872B
 
+pattern GL_MODELVIEW12_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MODELVIEW12_ARB = 0x872C
 
+pattern GL_MODELVIEW13_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MODELVIEW13_ARB = 0x872D
 
+pattern GL_MODELVIEW14_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MODELVIEW14_ARB = 0x872E
 
+pattern GL_MODELVIEW15_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MODELVIEW15_ARB = 0x872F
 
+pattern GL_MODELVIEW16_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MODELVIEW16_ARB = 0x8730
 
+pattern GL_MODELVIEW17_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MODELVIEW17_ARB = 0x8731
 
+pattern GL_MODELVIEW18_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MODELVIEW18_ARB = 0x8732
 
+pattern GL_MODELVIEW19_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MODELVIEW19_ARB = 0x8733
 
+pattern GL_MODELVIEW1_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MODELVIEW1_ARB = 0x850A
 
+pattern GL_MODELVIEW20_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MODELVIEW20_ARB = 0x8734
 
+pattern GL_MODELVIEW21_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MODELVIEW21_ARB = 0x8735
 
+pattern GL_MODELVIEW22_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MODELVIEW22_ARB = 0x8736
 
+pattern GL_MODELVIEW23_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MODELVIEW23_ARB = 0x8737
 
+pattern GL_MODELVIEW24_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MODELVIEW24_ARB = 0x8738
 
+pattern GL_MODELVIEW25_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MODELVIEW25_ARB = 0x8739
 
+pattern GL_MODELVIEW26_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MODELVIEW26_ARB = 0x873A
 
+pattern GL_MODELVIEW27_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MODELVIEW27_ARB = 0x873B
 
+pattern GL_MODELVIEW28_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MODELVIEW28_ARB = 0x873C
 
+pattern GL_MODELVIEW29_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MODELVIEW29_ARB = 0x873D
 
+pattern GL_MODELVIEW2_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MODELVIEW2_ARB = 0x8722
 
+pattern GL_MODELVIEW30_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MODELVIEW30_ARB = 0x873E
 
+pattern GL_MODELVIEW31_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MODELVIEW31_ARB = 0x873F
 
+pattern GL_MODELVIEW3_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MODELVIEW3_ARB = 0x8723
 
+pattern GL_MODELVIEW4_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MODELVIEW4_ARB = 0x8724
 
+pattern GL_MODELVIEW5_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MODELVIEW5_ARB = 0x8725
 
+pattern GL_MODELVIEW6_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MODELVIEW6_ARB = 0x8726
 
+pattern GL_MODELVIEW7_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MODELVIEW7_ARB = 0x8727
 
+pattern GL_MODELVIEW8_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MODELVIEW8_ARB = 0x8728
 
+pattern GL_MODELVIEW9_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MODELVIEW9_ARB = 0x8729
 
+pattern GL_VERTEX_BLEND_ARB  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_BLEND_ARB = 0x86A7
 
+pattern GL_WEIGHT_ARRAY_ARB  :: (Eq a, Num a) => a
+
 pattern GL_WEIGHT_ARRAY_ARB = 0x86AD
 
+pattern GL_WEIGHT_ARRAY_POINTER_ARB  :: (Eq a, Num a) => a
+
 pattern GL_WEIGHT_ARRAY_POINTER_ARB = 0x86AC
 
+pattern GL_WEIGHT_ARRAY_SIZE_ARB  :: (Eq a, Num a) => a
+
 pattern GL_WEIGHT_ARRAY_SIZE_ARB = 0x86AB
 
+pattern GL_WEIGHT_ARRAY_STRIDE_ARB  :: (Eq a, Num a) => a
+
 pattern GL_WEIGHT_ARRAY_STRIDE_ARB = 0x86AA
 
+pattern GL_WEIGHT_ARRAY_TYPE_ARB  :: (Eq a, Num a) => a
+
 pattern GL_WEIGHT_ARRAY_TYPE_ARB = 0x86A9
+
+pattern GL_WEIGHT_SUM_UNITY_ARB  :: (Eq a, Num a) => a
 
 pattern GL_WEIGHT_SUM_UNITY_ARB = 0x86A6
diff --git a/generated-src/Graphics/GL/Ext/ARB/VertexBufferObject.hs b/generated-src/Graphics/GL/Ext/ARB/VertexBufferObject.hs
--- a/generated-src/Graphics/GL/Ext/ARB/VertexBufferObject.hs
+++ b/generated-src/Graphics/GL/Ext/ARB/VertexBufferObject.hs
@@ -254,64 +254,126 @@
 
 {-# NOINLINE glUnmapBufferARBFunPtr #-}
 
+pattern GL_ARRAY_BUFFER_ARB  :: (Eq a, Num a) => a
+
 pattern GL_ARRAY_BUFFER_ARB = 0x8892
 
+pattern GL_ARRAY_BUFFER_BINDING_ARB  :: (Eq a, Num a) => a
+
 pattern GL_ARRAY_BUFFER_BINDING_ARB = 0x8894
 
+pattern GL_BUFFER_ACCESS_ARB  :: (Eq a, Num a) => a
+
 pattern GL_BUFFER_ACCESS_ARB = 0x88BB
 
+pattern GL_BUFFER_MAPPED_ARB  :: (Eq a, Num a) => a
+
 pattern GL_BUFFER_MAPPED_ARB = 0x88BC
 
+pattern GL_BUFFER_MAP_POINTER_ARB  :: (Eq a, Num a) => a
+
 pattern GL_BUFFER_MAP_POINTER_ARB = 0x88BD
 
+pattern GL_BUFFER_SIZE_ARB  :: (Eq a, Num a) => a
+
 pattern GL_BUFFER_SIZE_ARB = 0x8764
 
+pattern GL_BUFFER_USAGE_ARB  :: (Eq a, Num a) => a
+
 pattern GL_BUFFER_USAGE_ARB = 0x8765
 
+pattern GL_COLOR_ARRAY_BUFFER_BINDING_ARB  :: (Eq a, Num a) => a
+
 pattern GL_COLOR_ARRAY_BUFFER_BINDING_ARB = 0x8898
 
+pattern GL_DYNAMIC_COPY_ARB  :: (Eq a, Num a) => a
+
 pattern GL_DYNAMIC_COPY_ARB = 0x88EA
 
+pattern GL_DYNAMIC_DRAW_ARB  :: (Eq a, Num a) => a
+
 pattern GL_DYNAMIC_DRAW_ARB = 0x88E8
 
+pattern GL_DYNAMIC_READ_ARB  :: (Eq a, Num a) => a
+
 pattern GL_DYNAMIC_READ_ARB = 0x88E9
 
+pattern GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB  :: (Eq a, Num a) => a
+
 pattern GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB = 0x889B
 
+pattern GL_ELEMENT_ARRAY_BUFFER_ARB  :: (Eq a, Num a) => a
+
 pattern GL_ELEMENT_ARRAY_BUFFER_ARB = 0x8893
 
+pattern GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB  :: (Eq a, Num a) => a
+
 pattern GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB = 0x8895
 
+pattern GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB  :: (Eq a, Num a) => a
+
 pattern GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB = 0x889D
 
+pattern GL_INDEX_ARRAY_BUFFER_BINDING_ARB  :: (Eq a, Num a) => a
+
 pattern GL_INDEX_ARRAY_BUFFER_BINDING_ARB = 0x8899
 
+pattern GL_NORMAL_ARRAY_BUFFER_BINDING_ARB  :: (Eq a, Num a) => a
+
 pattern GL_NORMAL_ARRAY_BUFFER_BINDING_ARB = 0x8897
 
+pattern GL_READ_ONLY_ARB  :: (Eq a, Num a) => a
+
 pattern GL_READ_ONLY_ARB = 0x88B8
 
+pattern GL_READ_WRITE_ARB  :: (Eq a, Num a) => a
+
 pattern GL_READ_WRITE_ARB = 0x88BA
 
+pattern GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB  :: (Eq a, Num a) => a
+
 pattern GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB = 0x889C
 
+pattern GL_STATIC_COPY_ARB  :: (Eq a, Num a) => a
+
 pattern GL_STATIC_COPY_ARB = 0x88E6
 
+pattern GL_STATIC_DRAW_ARB  :: (Eq a, Num a) => a
+
 pattern GL_STATIC_DRAW_ARB = 0x88E4
 
+pattern GL_STATIC_READ_ARB  :: (Eq a, Num a) => a
+
 pattern GL_STATIC_READ_ARB = 0x88E5
 
+pattern GL_STREAM_COPY_ARB  :: (Eq a, Num a) => a
+
 pattern GL_STREAM_COPY_ARB = 0x88E2
 
+pattern GL_STREAM_DRAW_ARB  :: (Eq a, Num a) => a
+
 pattern GL_STREAM_DRAW_ARB = 0x88E0
 
+pattern GL_STREAM_READ_ARB  :: (Eq a, Num a) => a
+
 pattern GL_STREAM_READ_ARB = 0x88E1
 
+pattern GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB = 0x889A
 
+pattern GL_VERTEX_ARRAY_BUFFER_BINDING_ARB  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_ARRAY_BUFFER_BINDING_ARB = 0x8896
 
+pattern GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB = 0x889F
 
+pattern GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB  :: (Eq a, Num a) => a
+
 pattern GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB = 0x889E
+
+pattern GL_WRITE_ONLY_ARB  :: (Eq a, Num a) => a
 
 pattern GL_WRITE_ONLY_ARB = 0x88B9
diff --git a/generated-src/Graphics/GL/Ext/ARB/VertexProgram.hs b/generated-src/Graphics/GL/Ext/ARB/VertexProgram.hs
--- a/generated-src/Graphics/GL/Ext/ARB/VertexProgram.hs
+++ b/generated-src/Graphics/GL/Ext/ARB/VertexProgram.hs
@@ -158,14 +158,26 @@
 gl_ARB_vertex_program = member "GL_ARB_vertex_program" extensions
 {-# NOINLINE gl_ARB_vertex_program #-}
 
+pattern GL_COLOR_SUM_ARB  :: (Eq a, Num a) => a
+
 pattern GL_COLOR_SUM_ARB = 0x8458
 
+pattern GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB = 0x88B1
 
+pattern GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = 0x88B3
 
+pattern GL_PROGRAM_ADDRESS_REGISTERS_ARB  :: (Eq a, Num a) => a
+
 pattern GL_PROGRAM_ADDRESS_REGISTERS_ARB = 0x88B0
 
+pattern GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB  :: (Eq a, Num a) => a
+
 pattern GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = 0x88B2
+
+pattern GL_VERTEX_PROGRAM_ARB  :: (Eq a, Num a) => a
 
 pattern GL_VERTEX_PROGRAM_ARB = 0x8620
diff --git a/generated-src/Graphics/GL/Ext/ARB/VertexShader.hs b/generated-src/Graphics/GL/Ext/ARB/VertexShader.hs
--- a/generated-src/Graphics/GL/Ext/ARB/VertexShader.hs
+++ b/generated-src/Graphics/GL/Ext/ARB/VertexShader.hs
@@ -147,14 +147,26 @@
 
 {-# NOINLINE glGetAttribLocationARBFunPtr #-}
 
+pattern GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB = 0x8B4D
 
+pattern GL_MAX_VARYING_FLOATS_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MAX_VARYING_FLOATS_ARB = 0x8B4B
 
+pattern GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB  :: (Eq a, Num a) => a
+
 pattern GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB = 0x8B4A
 
+pattern GL_OBJECT_ACTIVE_ATTRIBUTES_ARB  :: (Eq a, Num a) => a
+
 pattern GL_OBJECT_ACTIVE_ATTRIBUTES_ARB = 0x8B89
 
+pattern GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB  :: (Eq a, Num a) => a
+
 pattern GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB = 0x8B8A
+
+pattern GL_VERTEX_SHADER_ARB  :: (Eq a, Num a) => a
 
 pattern GL_VERTEX_SHADER_ARB = 0x8B31
diff --git a/generated-src/Graphics/GL/Ext/ARM/MaliProgramBinary.hs b/generated-src/Graphics/GL/Ext/ARM/MaliProgramBinary.hs
--- a/generated-src/Graphics/GL/Ext/ARM/MaliProgramBinary.hs
+++ b/generated-src/Graphics/GL/Ext/ARM/MaliProgramBinary.hs
@@ -17,4 +17,6 @@
 gl_ARM_mali_program_binary = member "GL_ARM_mali_program_binary" extensions
 {-# NOINLINE gl_ARM_mali_program_binary #-}
 
+pattern GL_MALI_PROGRAM_BINARY_ARM  :: (Eq a, Num a) => a
+
 pattern GL_MALI_PROGRAM_BINARY_ARM = 0x8F61
diff --git a/generated-src/Graphics/GL/Ext/ARM/MaliShaderBinary.hs b/generated-src/Graphics/GL/Ext/ARM/MaliShaderBinary.hs
--- a/generated-src/Graphics/GL/Ext/ARM/MaliShaderBinary.hs
+++ b/generated-src/Graphics/GL/Ext/ARM/MaliShaderBinary.hs
@@ -17,4 +17,6 @@
 gl_ARM_mali_shader_binary = member "GL_ARM_mali_shader_binary" extensions
 {-# NOINLINE gl_ARM_mali_shader_binary #-}
 
+pattern GL_MALI_SHADER_BINARY_ARM  :: (Eq a, Num a) => a
+
 pattern GL_MALI_SHADER_BINARY_ARM = 0x8F60
diff --git a/generated-src/Graphics/GL/Ext/ARM/ShaderFramebufferFetch.hs b/generated-src/Graphics/GL/Ext/ARM/ShaderFramebufferFetch.hs
--- a/generated-src/Graphics/GL/Ext/ARM/ShaderFramebufferFetch.hs
+++ b/generated-src/Graphics/GL/Ext/ARM/ShaderFramebufferFetch.hs
@@ -18,6 +18,10 @@
 gl_ARM_shader_framebuffer_fetch = member "GL_ARM_shader_framebuffer_fetch" extensions
 {-# NOINLINE gl_ARM_shader_framebuffer_fetch #-}
 
+pattern GL_FETCH_PER_SAMPLE_ARM  :: (Eq a, Num a) => a
+
 pattern GL_FETCH_PER_SAMPLE_ARM = 0x8F65
+
+pattern GL_FRAGMENT_SHADER_FRAMEBUFFER_FETCH_MRT_ARM  :: (Eq a, Num a) => a
 
 pattern GL_FRAGMENT_SHADER_FRAMEBUFFER_FETCH_MRT_ARM = 0x8F66
diff --git a/generated-src/Graphics/GL/Ext/ATI/DrawBuffers.hs b/generated-src/Graphics/GL/Ext/ATI/DrawBuffers.hs
--- a/generated-src/Graphics/GL/Ext/ATI/DrawBuffers.hs
+++ b/generated-src/Graphics/GL/Ext/ATI/DrawBuffers.hs
@@ -56,36 +56,70 @@
 
 {-# NOINLINE glDrawBuffersATIFunPtr #-}
 
+pattern GL_DRAW_BUFFER0_ATI  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER0_ATI = 0x8825
 
+pattern GL_DRAW_BUFFER10_ATI  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER10_ATI = 0x882F
 
+pattern GL_DRAW_BUFFER11_ATI  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER11_ATI = 0x8830
 
+pattern GL_DRAW_BUFFER12_ATI  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER12_ATI = 0x8831
 
+pattern GL_DRAW_BUFFER13_ATI  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER13_ATI = 0x8832
 
+pattern GL_DRAW_BUFFER14_ATI  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER14_ATI = 0x8833
 
+pattern GL_DRAW_BUFFER15_ATI  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER15_ATI = 0x8834
 
+pattern GL_DRAW_BUFFER1_ATI  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER1_ATI = 0x8826
 
+pattern GL_DRAW_BUFFER2_ATI  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER2_ATI = 0x8827
 
+pattern GL_DRAW_BUFFER3_ATI  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER3_ATI = 0x8828
 
+pattern GL_DRAW_BUFFER4_ATI  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER4_ATI = 0x8829
 
+pattern GL_DRAW_BUFFER5_ATI  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER5_ATI = 0x882A
 
+pattern GL_DRAW_BUFFER6_ATI  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER6_ATI = 0x882B
 
+pattern GL_DRAW_BUFFER7_ATI  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER7_ATI = 0x882C
 
+pattern GL_DRAW_BUFFER8_ATI  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER8_ATI = 0x882D
 
+pattern GL_DRAW_BUFFER9_ATI  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER9_ATI = 0x882E
+
+pattern GL_MAX_DRAW_BUFFERS_ATI  :: (Eq a, Num a) => a
 
 pattern GL_MAX_DRAW_BUFFERS_ATI = 0x8824
diff --git a/generated-src/Graphics/GL/Ext/ATI/ElementArray.hs b/generated-src/Graphics/GL/Ext/ATI/ElementArray.hs
--- a/generated-src/Graphics/GL/Ext/ATI/ElementArray.hs
+++ b/generated-src/Graphics/GL/Ext/ATI/ElementArray.hs
@@ -68,8 +68,14 @@
 
 {-# NOINLINE glElementPointerATIFunPtr #-}
 
+pattern GL_ELEMENT_ARRAY_ATI  :: (Eq a, Num a) => a
+
 pattern GL_ELEMENT_ARRAY_ATI = 0x8768
 
+pattern GL_ELEMENT_ARRAY_POINTER_ATI  :: (Eq a, Num a) => a
+
 pattern GL_ELEMENT_ARRAY_POINTER_ATI = 0x876A
+
+pattern GL_ELEMENT_ARRAY_TYPE_ATI  :: (Eq a, Num a) => a
 
 pattern GL_ELEMENT_ARRAY_TYPE_ATI = 0x8769
diff --git a/generated-src/Graphics/GL/Ext/ATI/EnvmapBumpmap.hs b/generated-src/Graphics/GL/Ext/ATI/EnvmapBumpmap.hs
--- a/generated-src/Graphics/GL/Ext/ATI/EnvmapBumpmap.hs
+++ b/generated-src/Graphics/GL/Ext/ATI/EnvmapBumpmap.hs
@@ -93,18 +93,34 @@
 
 {-# NOINLINE glTexBumpParameterivATIFunPtr #-}
 
+pattern GL_BUMP_ENVMAP_ATI  :: (Eq a, Num a) => a
+
 pattern GL_BUMP_ENVMAP_ATI = 0x877B
 
+pattern GL_BUMP_NUM_TEX_UNITS_ATI  :: (Eq a, Num a) => a
+
 pattern GL_BUMP_NUM_TEX_UNITS_ATI = 0x8777
 
+pattern GL_BUMP_ROT_MATRIX_ATI  :: (Eq a, Num a) => a
+
 pattern GL_BUMP_ROT_MATRIX_ATI = 0x8775
 
+pattern GL_BUMP_ROT_MATRIX_SIZE_ATI  :: (Eq a, Num a) => a
+
 pattern GL_BUMP_ROT_MATRIX_SIZE_ATI = 0x8776
 
+pattern GL_BUMP_TARGET_ATI  :: (Eq a, Num a) => a
+
 pattern GL_BUMP_TARGET_ATI = 0x877C
 
+pattern GL_BUMP_TEX_UNITS_ATI  :: (Eq a, Num a) => a
+
 pattern GL_BUMP_TEX_UNITS_ATI = 0x8778
 
+pattern GL_DU8DV8_ATI  :: (Eq a, Num a) => a
+
 pattern GL_DU8DV8_ATI = 0x877A
+
+pattern GL_DUDV_ATI  :: (Eq a, Num a) => a
 
 pattern GL_DUDV_ATI = 0x8779
diff --git a/generated-src/Graphics/GL/Ext/ATI/FragmentShader.hs b/generated-src/Graphics/GL/Ext/ATI/FragmentShader.hs
--- a/generated-src/Graphics/GL/Ext/ATI/FragmentShader.hs
+++ b/generated-src/Graphics/GL/Ext/ATI/FragmentShader.hs
@@ -311,210 +311,418 @@
 
 {-# NOINLINE glSetFragmentShaderConstantATIFunPtr #-}
 
+pattern GL_2X_BIT_ATI  :: (Eq a, Num a) => a
+
 pattern GL_2X_BIT_ATI = 0x00000001
 
+pattern GL_4X_BIT_ATI  :: (Eq a, Num a) => a
+
 pattern GL_4X_BIT_ATI = 0x00000002
 
+pattern GL_8X_BIT_ATI  :: (Eq a, Num a) => a
+
 pattern GL_8X_BIT_ATI = 0x00000004
 
+pattern GL_ADD_ATI  :: (Eq a, Num a) => a
+
 pattern GL_ADD_ATI = 0x8963
 
+pattern GL_BIAS_BIT_ATI  :: (Eq a, Num a) => a
+
 pattern GL_BIAS_BIT_ATI = 0x00000008
 
+pattern GL_BLUE_BIT_ATI  :: (Eq a, Num a) => a
+
 pattern GL_BLUE_BIT_ATI = 0x00000004
 
+pattern GL_CND0_ATI  :: (Eq a, Num a) => a
+
 pattern GL_CND0_ATI = 0x896B
 
+pattern GL_CND_ATI  :: (Eq a, Num a) => a
+
 pattern GL_CND_ATI = 0x896A
 
+pattern GL_COLOR_ALPHA_PAIRING_ATI  :: (Eq a, Num a) => a
+
 pattern GL_COLOR_ALPHA_PAIRING_ATI = 0x8975
 
+pattern GL_COMP_BIT_ATI  :: (Eq a, Num a) => a
+
 pattern GL_COMP_BIT_ATI = 0x00000002
 
+pattern GL_CON_0_ATI  :: (Eq a, Num a) => a
+
 pattern GL_CON_0_ATI = 0x8941
 
+pattern GL_CON_10_ATI  :: (Eq a, Num a) => a
+
 pattern GL_CON_10_ATI = 0x894B
 
+pattern GL_CON_11_ATI  :: (Eq a, Num a) => a
+
 pattern GL_CON_11_ATI = 0x894C
 
+pattern GL_CON_12_ATI  :: (Eq a, Num a) => a
+
 pattern GL_CON_12_ATI = 0x894D
 
+pattern GL_CON_13_ATI  :: (Eq a, Num a) => a
+
 pattern GL_CON_13_ATI = 0x894E
 
+pattern GL_CON_14_ATI  :: (Eq a, Num a) => a
+
 pattern GL_CON_14_ATI = 0x894F
 
+pattern GL_CON_15_ATI  :: (Eq a, Num a) => a
+
 pattern GL_CON_15_ATI = 0x8950
 
+pattern GL_CON_16_ATI  :: (Eq a, Num a) => a
+
 pattern GL_CON_16_ATI = 0x8951
 
+pattern GL_CON_17_ATI  :: (Eq a, Num a) => a
+
 pattern GL_CON_17_ATI = 0x8952
 
+pattern GL_CON_18_ATI  :: (Eq a, Num a) => a
+
 pattern GL_CON_18_ATI = 0x8953
 
+pattern GL_CON_19_ATI  :: (Eq a, Num a) => a
+
 pattern GL_CON_19_ATI = 0x8954
 
+pattern GL_CON_1_ATI  :: (Eq a, Num a) => a
+
 pattern GL_CON_1_ATI = 0x8942
 
+pattern GL_CON_20_ATI  :: (Eq a, Num a) => a
+
 pattern GL_CON_20_ATI = 0x8955
 
+pattern GL_CON_21_ATI  :: (Eq a, Num a) => a
+
 pattern GL_CON_21_ATI = 0x8956
 
+pattern GL_CON_22_ATI  :: (Eq a, Num a) => a
+
 pattern GL_CON_22_ATI = 0x8957
 
+pattern GL_CON_23_ATI  :: (Eq a, Num a) => a
+
 pattern GL_CON_23_ATI = 0x8958
 
+pattern GL_CON_24_ATI  :: (Eq a, Num a) => a
+
 pattern GL_CON_24_ATI = 0x8959
 
+pattern GL_CON_25_ATI  :: (Eq a, Num a) => a
+
 pattern GL_CON_25_ATI = 0x895A
 
+pattern GL_CON_26_ATI  :: (Eq a, Num a) => a
+
 pattern GL_CON_26_ATI = 0x895B
 
+pattern GL_CON_27_ATI  :: (Eq a, Num a) => a
+
 pattern GL_CON_27_ATI = 0x895C
 
+pattern GL_CON_28_ATI  :: (Eq a, Num a) => a
+
 pattern GL_CON_28_ATI = 0x895D
 
+pattern GL_CON_29_ATI  :: (Eq a, Num a) => a
+
 pattern GL_CON_29_ATI = 0x895E
 
+pattern GL_CON_2_ATI  :: (Eq a, Num a) => a
+
 pattern GL_CON_2_ATI = 0x8943
 
+pattern GL_CON_30_ATI  :: (Eq a, Num a) => a
+
 pattern GL_CON_30_ATI = 0x895F
 
+pattern GL_CON_31_ATI  :: (Eq a, Num a) => a
+
 pattern GL_CON_31_ATI = 0x8960
 
+pattern GL_CON_3_ATI  :: (Eq a, Num a) => a
+
 pattern GL_CON_3_ATI = 0x8944
 
+pattern GL_CON_4_ATI  :: (Eq a, Num a) => a
+
 pattern GL_CON_4_ATI = 0x8945
 
+pattern GL_CON_5_ATI  :: (Eq a, Num a) => a
+
 pattern GL_CON_5_ATI = 0x8946
 
+pattern GL_CON_6_ATI  :: (Eq a, Num a) => a
+
 pattern GL_CON_6_ATI = 0x8947
 
+pattern GL_CON_7_ATI  :: (Eq a, Num a) => a
+
 pattern GL_CON_7_ATI = 0x8948
 
+pattern GL_CON_8_ATI  :: (Eq a, Num a) => a
+
 pattern GL_CON_8_ATI = 0x8949
 
+pattern GL_CON_9_ATI  :: (Eq a, Num a) => a
+
 pattern GL_CON_9_ATI = 0x894A
 
+pattern GL_DOT2_ADD_ATI  :: (Eq a, Num a) => a
+
 pattern GL_DOT2_ADD_ATI = 0x896C
 
+pattern GL_DOT3_ATI  :: (Eq a, Num a) => a
+
 pattern GL_DOT3_ATI = 0x8966
 
+pattern GL_DOT4_ATI  :: (Eq a, Num a) => a
+
 pattern GL_DOT4_ATI = 0x8967
 
+pattern GL_EIGHTH_BIT_ATI  :: (Eq a, Num a) => a
+
 pattern GL_EIGHTH_BIT_ATI = 0x00000020
 
+pattern GL_FRAGMENT_SHADER_ATI  :: (Eq a, Num a) => a
+
 pattern GL_FRAGMENT_SHADER_ATI = 0x8920
 
+pattern GL_GREEN_BIT_ATI  :: (Eq a, Num a) => a
+
 pattern GL_GREEN_BIT_ATI = 0x00000002
 
+pattern GL_HALF_BIT_ATI  :: (Eq a, Num a) => a
+
 pattern GL_HALF_BIT_ATI = 0x00000008
 
+pattern GL_LERP_ATI  :: (Eq a, Num a) => a
+
 pattern GL_LERP_ATI = 0x8969
 
+pattern GL_MAD_ATI  :: (Eq a, Num a) => a
+
 pattern GL_MAD_ATI = 0x8968
 
+pattern GL_MOV_ATI  :: (Eq a, Num a) => a
+
 pattern GL_MOV_ATI = 0x8961
 
+pattern GL_MUL_ATI  :: (Eq a, Num a) => a
+
 pattern GL_MUL_ATI = 0x8964
 
+pattern GL_NEGATE_BIT_ATI  :: (Eq a, Num a) => a
+
 pattern GL_NEGATE_BIT_ATI = 0x00000004
 
+pattern GL_NUM_FRAGMENT_CONSTANTS_ATI  :: (Eq a, Num a) => a
+
 pattern GL_NUM_FRAGMENT_CONSTANTS_ATI = 0x896F
 
+pattern GL_NUM_FRAGMENT_REGISTERS_ATI  :: (Eq a, Num a) => a
+
 pattern GL_NUM_FRAGMENT_REGISTERS_ATI = 0x896E
 
+pattern GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI  :: (Eq a, Num a) => a
+
 pattern GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI = 0x8973
 
+pattern GL_NUM_INSTRUCTIONS_PER_PASS_ATI  :: (Eq a, Num a) => a
+
 pattern GL_NUM_INSTRUCTIONS_PER_PASS_ATI = 0x8971
 
+pattern GL_NUM_INSTRUCTIONS_TOTAL_ATI  :: (Eq a, Num a) => a
+
 pattern GL_NUM_INSTRUCTIONS_TOTAL_ATI = 0x8972
 
+pattern GL_NUM_LOOPBACK_COMPONENTS_ATI  :: (Eq a, Num a) => a
+
 pattern GL_NUM_LOOPBACK_COMPONENTS_ATI = 0x8974
 
+pattern GL_NUM_PASSES_ATI  :: (Eq a, Num a) => a
+
 pattern GL_NUM_PASSES_ATI = 0x8970
 
+pattern GL_QUARTER_BIT_ATI  :: (Eq a, Num a) => a
+
 pattern GL_QUARTER_BIT_ATI = 0x00000010
 
+pattern GL_RED_BIT_ATI  :: (Eq a, Num a) => a
+
 pattern GL_RED_BIT_ATI = 0x00000001
 
+pattern GL_REG_0_ATI  :: (Eq a, Num a) => a
+
 pattern GL_REG_0_ATI = 0x8921
 
+pattern GL_REG_10_ATI  :: (Eq a, Num a) => a
+
 pattern GL_REG_10_ATI = 0x892B
 
+pattern GL_REG_11_ATI  :: (Eq a, Num a) => a
+
 pattern GL_REG_11_ATI = 0x892C
 
+pattern GL_REG_12_ATI  :: (Eq a, Num a) => a
+
 pattern GL_REG_12_ATI = 0x892D
 
+pattern GL_REG_13_ATI  :: (Eq a, Num a) => a
+
 pattern GL_REG_13_ATI = 0x892E
 
+pattern GL_REG_14_ATI  :: (Eq a, Num a) => a
+
 pattern GL_REG_14_ATI = 0x892F
 
+pattern GL_REG_15_ATI  :: (Eq a, Num a) => a
+
 pattern GL_REG_15_ATI = 0x8930
 
+pattern GL_REG_16_ATI  :: (Eq a, Num a) => a
+
 pattern GL_REG_16_ATI = 0x8931
 
+pattern GL_REG_17_ATI  :: (Eq a, Num a) => a
+
 pattern GL_REG_17_ATI = 0x8932
 
+pattern GL_REG_18_ATI  :: (Eq a, Num a) => a
+
 pattern GL_REG_18_ATI = 0x8933
 
+pattern GL_REG_19_ATI  :: (Eq a, Num a) => a
+
 pattern GL_REG_19_ATI = 0x8934
 
+pattern GL_REG_1_ATI  :: (Eq a, Num a) => a
+
 pattern GL_REG_1_ATI = 0x8922
 
+pattern GL_REG_20_ATI  :: (Eq a, Num a) => a
+
 pattern GL_REG_20_ATI = 0x8935
 
+pattern GL_REG_21_ATI  :: (Eq a, Num a) => a
+
 pattern GL_REG_21_ATI = 0x8936
 
+pattern GL_REG_22_ATI  :: (Eq a, Num a) => a
+
 pattern GL_REG_22_ATI = 0x8937
 
+pattern GL_REG_23_ATI  :: (Eq a, Num a) => a
+
 pattern GL_REG_23_ATI = 0x8938
 
+pattern GL_REG_24_ATI  :: (Eq a, Num a) => a
+
 pattern GL_REG_24_ATI = 0x8939
 
+pattern GL_REG_25_ATI  :: (Eq a, Num a) => a
+
 pattern GL_REG_25_ATI = 0x893A
 
+pattern GL_REG_26_ATI  :: (Eq a, Num a) => a
+
 pattern GL_REG_26_ATI = 0x893B
 
+pattern GL_REG_27_ATI  :: (Eq a, Num a) => a
+
 pattern GL_REG_27_ATI = 0x893C
 
+pattern GL_REG_28_ATI  :: (Eq a, Num a) => a
+
 pattern GL_REG_28_ATI = 0x893D
 
+pattern GL_REG_29_ATI  :: (Eq a, Num a) => a
+
 pattern GL_REG_29_ATI = 0x893E
 
+pattern GL_REG_2_ATI  :: (Eq a, Num a) => a
+
 pattern GL_REG_2_ATI = 0x8923
 
+pattern GL_REG_30_ATI  :: (Eq a, Num a) => a
+
 pattern GL_REG_30_ATI = 0x893F
 
+pattern GL_REG_31_ATI  :: (Eq a, Num a) => a
+
 pattern GL_REG_31_ATI = 0x8940
 
+pattern GL_REG_3_ATI  :: (Eq a, Num a) => a
+
 pattern GL_REG_3_ATI = 0x8924
 
+pattern GL_REG_4_ATI  :: (Eq a, Num a) => a
+
 pattern GL_REG_4_ATI = 0x8925
 
+pattern GL_REG_5_ATI  :: (Eq a, Num a) => a
+
 pattern GL_REG_5_ATI = 0x8926
 
+pattern GL_REG_6_ATI  :: (Eq a, Num a) => a
+
 pattern GL_REG_6_ATI = 0x8927
 
+pattern GL_REG_7_ATI  :: (Eq a, Num a) => a
+
 pattern GL_REG_7_ATI = 0x8928
 
+pattern GL_REG_8_ATI  :: (Eq a, Num a) => a
+
 pattern GL_REG_8_ATI = 0x8929
 
+pattern GL_REG_9_ATI  :: (Eq a, Num a) => a
+
 pattern GL_REG_9_ATI = 0x892A
 
+pattern GL_SATURATE_BIT_ATI  :: (Eq a, Num a) => a
+
 pattern GL_SATURATE_BIT_ATI = 0x00000040
 
+pattern GL_SECONDARY_INTERPOLATOR_ATI  :: (Eq a, Num a) => a
+
 pattern GL_SECONDARY_INTERPOLATOR_ATI = 0x896D
 
+pattern GL_SUB_ATI  :: (Eq a, Num a) => a
+
 pattern GL_SUB_ATI = 0x8965
 
+pattern GL_SWIZZLE_STQ_ATI  :: (Eq a, Num a) => a
+
 pattern GL_SWIZZLE_STQ_ATI = 0x8977
 
+pattern GL_SWIZZLE_STQ_DQ_ATI  :: (Eq a, Num a) => a
+
 pattern GL_SWIZZLE_STQ_DQ_ATI = 0x8979
 
+pattern GL_SWIZZLE_STRQ_ATI  :: (Eq a, Num a) => a
+
 pattern GL_SWIZZLE_STRQ_ATI = 0x897A
 
+pattern GL_SWIZZLE_STRQ_DQ_ATI  :: (Eq a, Num a) => a
+
 pattern GL_SWIZZLE_STRQ_DQ_ATI = 0x897B
 
+pattern GL_SWIZZLE_STR_ATI  :: (Eq a, Num a) => a
+
 pattern GL_SWIZZLE_STR_ATI = 0x8976
+
+pattern GL_SWIZZLE_STR_DR_ATI  :: (Eq a, Num a) => a
 
 pattern GL_SWIZZLE_STR_DR_ATI = 0x8978
diff --git a/generated-src/Graphics/GL/Ext/ATI/Meminfo.hs b/generated-src/Graphics/GL/Ext/ATI/Meminfo.hs
--- a/generated-src/Graphics/GL/Ext/ATI/Meminfo.hs
+++ b/generated-src/Graphics/GL/Ext/ATI/Meminfo.hs
@@ -19,8 +19,14 @@
 gl_ATI_meminfo = member "GL_ATI_meminfo" extensions
 {-# NOINLINE gl_ATI_meminfo #-}
 
+pattern GL_RENDERBUFFER_FREE_MEMORY_ATI  :: (Eq a, Num a) => a
+
 pattern GL_RENDERBUFFER_FREE_MEMORY_ATI = 0x87FD
 
+pattern GL_TEXTURE_FREE_MEMORY_ATI  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_FREE_MEMORY_ATI = 0x87FC
+
+pattern GL_VBO_FREE_MEMORY_ATI  :: (Eq a, Num a) => a
 
 pattern GL_VBO_FREE_MEMORY_ATI = 0x87FB
diff --git a/generated-src/Graphics/GL/Ext/ATI/PixelFormatFloat.hs b/generated-src/Graphics/GL/Ext/ATI/PixelFormatFloat.hs
--- a/generated-src/Graphics/GL/Ext/ATI/PixelFormatFloat.hs
+++ b/generated-src/Graphics/GL/Ext/ATI/PixelFormatFloat.hs
@@ -18,6 +18,10 @@
 gl_ATI_pixel_format_float = member "GL_ATI_pixel_format_float" extensions
 {-# NOINLINE gl_ATI_pixel_format_float #-}
 
+pattern GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI  :: (Eq a, Num a) => a
+
 pattern GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI = 0x8835
+
+pattern GL_RGBA_FLOAT_MODE_ATI  :: (Eq a, Num a) => a
 
 pattern GL_RGBA_FLOAT_MODE_ATI = 0x8820
diff --git a/generated-src/Graphics/GL/Ext/ATI/PnTriangles.hs b/generated-src/Graphics/GL/Ext/ATI/PnTriangles.hs
--- a/generated-src/Graphics/GL/Ext/ATI/PnTriangles.hs
+++ b/generated-src/Graphics/GL/Ext/ATI/PnTriangles.hs
@@ -58,20 +58,38 @@
 
 {-# NOINLINE glPNTrianglesiATIFunPtr #-}
 
+pattern GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI  :: (Eq a, Num a) => a
+
 pattern GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI = 0x87F1
 
+pattern GL_PN_TRIANGLES_ATI  :: (Eq a, Num a) => a
+
 pattern GL_PN_TRIANGLES_ATI = 0x87F0
 
+pattern GL_PN_TRIANGLES_NORMAL_MODE_ATI  :: (Eq a, Num a) => a
+
 pattern GL_PN_TRIANGLES_NORMAL_MODE_ATI = 0x87F3
 
+pattern GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI  :: (Eq a, Num a) => a
+
 pattern GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI = 0x87F7
 
+pattern GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI  :: (Eq a, Num a) => a
+
 pattern GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI = 0x87F8
 
+pattern GL_PN_TRIANGLES_POINT_MODE_ATI  :: (Eq a, Num a) => a
+
 pattern GL_PN_TRIANGLES_POINT_MODE_ATI = 0x87F2
 
+pattern GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI  :: (Eq a, Num a) => a
+
 pattern GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI = 0x87F6
 
+pattern GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI  :: (Eq a, Num a) => a
+
 pattern GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI = 0x87F5
+
+pattern GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI  :: (Eq a, Num a) => a
 
 pattern GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI = 0x87F4
diff --git a/generated-src/Graphics/GL/Ext/ATI/SeparateStencil.hs b/generated-src/Graphics/GL/Ext/ATI/SeparateStencil.hs
--- a/generated-src/Graphics/GL/Ext/ATI/SeparateStencil.hs
+++ b/generated-src/Graphics/GL/Ext/ATI/SeparateStencil.hs
@@ -67,10 +67,18 @@
 
 {-# NOINLINE glStencilOpSeparateATIFunPtr #-}
 
+pattern GL_STENCIL_BACK_FAIL_ATI  :: (Eq a, Num a) => a
+
 pattern GL_STENCIL_BACK_FAIL_ATI = 0x8801
 
+pattern GL_STENCIL_BACK_FUNC_ATI  :: (Eq a, Num a) => a
+
 pattern GL_STENCIL_BACK_FUNC_ATI = 0x8800
 
+pattern GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI  :: (Eq a, Num a) => a
+
 pattern GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI = 0x8802
+
+pattern GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI  :: (Eq a, Num a) => a
 
 pattern GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI = 0x8803
diff --git a/generated-src/Graphics/GL/Ext/ATI/TextFragmentShader.hs b/generated-src/Graphics/GL/Ext/ATI/TextFragmentShader.hs
--- a/generated-src/Graphics/GL/Ext/ATI/TextFragmentShader.hs
+++ b/generated-src/Graphics/GL/Ext/ATI/TextFragmentShader.hs
@@ -17,4 +17,6 @@
 gl_ATI_text_fragment_shader = member "GL_ATI_text_fragment_shader" extensions
 {-# NOINLINE gl_ATI_text_fragment_shader #-}
 
+pattern GL_TEXT_FRAGMENT_SHADER_ATI  :: (Eq a, Num a) => a
+
 pattern GL_TEXT_FRAGMENT_SHADER_ATI = 0x8200
diff --git a/generated-src/Graphics/GL/Ext/ATI/TextureEnvCombine3.hs b/generated-src/Graphics/GL/Ext/ATI/TextureEnvCombine3.hs
--- a/generated-src/Graphics/GL/Ext/ATI/TextureEnvCombine3.hs
+++ b/generated-src/Graphics/GL/Ext/ATI/TextureEnvCombine3.hs
@@ -19,8 +19,14 @@
 gl_ATI_texture_env_combine3 = member "GL_ATI_texture_env_combine3" extensions
 {-# NOINLINE gl_ATI_texture_env_combine3 #-}
 
+pattern GL_MODULATE_ADD_ATI  :: (Eq a, Num a) => a
+
 pattern GL_MODULATE_ADD_ATI = 0x8744
 
+pattern GL_MODULATE_SIGNED_ADD_ATI  :: (Eq a, Num a) => a
+
 pattern GL_MODULATE_SIGNED_ADD_ATI = 0x8745
+
+pattern GL_MODULATE_SUBTRACT_ATI  :: (Eq a, Num a) => a
 
 pattern GL_MODULATE_SUBTRACT_ATI = 0x8746
diff --git a/generated-src/Graphics/GL/Ext/ATI/TextureFloat.hs b/generated-src/Graphics/GL/Ext/ATI/TextureFloat.hs
--- a/generated-src/Graphics/GL/Ext/ATI/TextureFloat.hs
+++ b/generated-src/Graphics/GL/Ext/ATI/TextureFloat.hs
@@ -28,26 +28,50 @@
 gl_ATI_texture_float = member "GL_ATI_texture_float" extensions
 {-# NOINLINE gl_ATI_texture_float #-}
 
+pattern GL_ALPHA_FLOAT16_ATI  :: (Eq a, Num a) => a
+
 pattern GL_ALPHA_FLOAT16_ATI = 0x881C
 
+pattern GL_ALPHA_FLOAT32_ATI  :: (Eq a, Num a) => a
+
 pattern GL_ALPHA_FLOAT32_ATI = 0x8816
 
+pattern GL_INTENSITY_FLOAT16_ATI  :: (Eq a, Num a) => a
+
 pattern GL_INTENSITY_FLOAT16_ATI = 0x881D
 
+pattern GL_INTENSITY_FLOAT32_ATI  :: (Eq a, Num a) => a
+
 pattern GL_INTENSITY_FLOAT32_ATI = 0x8817
 
+pattern GL_LUMINANCE_ALPHA_FLOAT16_ATI  :: (Eq a, Num a) => a
+
 pattern GL_LUMINANCE_ALPHA_FLOAT16_ATI = 0x881F
 
+pattern GL_LUMINANCE_ALPHA_FLOAT32_ATI  :: (Eq a, Num a) => a
+
 pattern GL_LUMINANCE_ALPHA_FLOAT32_ATI = 0x8819
 
+pattern GL_LUMINANCE_FLOAT16_ATI  :: (Eq a, Num a) => a
+
 pattern GL_LUMINANCE_FLOAT16_ATI = 0x881E
 
+pattern GL_LUMINANCE_FLOAT32_ATI  :: (Eq a, Num a) => a
+
 pattern GL_LUMINANCE_FLOAT32_ATI = 0x8818
 
+pattern GL_RGBA_FLOAT16_ATI  :: (Eq a, Num a) => a
+
 pattern GL_RGBA_FLOAT16_ATI = 0x881A
 
+pattern GL_RGBA_FLOAT32_ATI  :: (Eq a, Num a) => a
+
 pattern GL_RGBA_FLOAT32_ATI = 0x8814
 
+pattern GL_RGB_FLOAT16_ATI  :: (Eq a, Num a) => a
+
 pattern GL_RGB_FLOAT16_ATI = 0x881B
+
+pattern GL_RGB_FLOAT32_ATI  :: (Eq a, Num a) => a
 
 pattern GL_RGB_FLOAT32_ATI = 0x8815
diff --git a/generated-src/Graphics/GL/Ext/ATI/TextureMirrorOnce.hs b/generated-src/Graphics/GL/Ext/ATI/TextureMirrorOnce.hs
--- a/generated-src/Graphics/GL/Ext/ATI/TextureMirrorOnce.hs
+++ b/generated-src/Graphics/GL/Ext/ATI/TextureMirrorOnce.hs
@@ -18,6 +18,10 @@
 gl_ATI_texture_mirror_once = member "GL_ATI_texture_mirror_once" extensions
 {-# NOINLINE gl_ATI_texture_mirror_once #-}
 
+pattern GL_MIRROR_CLAMP_ATI  :: (Eq a, Num a) => a
+
 pattern GL_MIRROR_CLAMP_ATI = 0x8742
+
+pattern GL_MIRROR_CLAMP_TO_EDGE_ATI  :: (Eq a, Num a) => a
 
 pattern GL_MIRROR_CLAMP_TO_EDGE_ATI = 0x8743
diff --git a/generated-src/Graphics/GL/Ext/ATI/VertexArrayObject.hs b/generated-src/Graphics/GL/Ext/ATI/VertexArrayObject.hs
--- a/generated-src/Graphics/GL/Ext/ATI/VertexArrayObject.hs
+++ b/generated-src/Graphics/GL/Ext/ATI/VertexArrayObject.hs
@@ -215,18 +215,34 @@
 
 {-# NOINLINE glVariantArrayObjectATIFunPtr #-}
 
+pattern GL_ARRAY_OBJECT_BUFFER_ATI  :: (Eq a, Num a) => a
+
 pattern GL_ARRAY_OBJECT_BUFFER_ATI = 0x8766
 
+pattern GL_ARRAY_OBJECT_OFFSET_ATI  :: (Eq a, Num a) => a
+
 pattern GL_ARRAY_OBJECT_OFFSET_ATI = 0x8767
 
+pattern GL_DISCARD_ATI  :: (Eq a, Num a) => a
+
 pattern GL_DISCARD_ATI = 0x8763
 
+pattern GL_DYNAMIC_ATI  :: (Eq a, Num a) => a
+
 pattern GL_DYNAMIC_ATI = 0x8761
 
+pattern GL_OBJECT_BUFFER_SIZE_ATI  :: (Eq a, Num a) => a
+
 pattern GL_OBJECT_BUFFER_SIZE_ATI = 0x8764
 
+pattern GL_OBJECT_BUFFER_USAGE_ATI  :: (Eq a, Num a) => a
+
 pattern GL_OBJECT_BUFFER_USAGE_ATI = 0x8765
 
+pattern GL_PRESERVE_ATI  :: (Eq a, Num a) => a
+
 pattern GL_PRESERVE_ATI = 0x8762
+
+pattern GL_STATIC_ATI  :: (Eq a, Num a) => a
 
 pattern GL_STATIC_ATI = 0x8760
diff --git a/generated-src/Graphics/GL/Ext/ATI/VertexStreams.hs b/generated-src/Graphics/GL/Ext/ATI/VertexStreams.hs
--- a/generated-src/Graphics/GL/Ext/ATI/VertexStreams.hs
+++ b/generated-src/Graphics/GL/Ext/ATI/VertexStreams.hs
@@ -703,22 +703,42 @@
 
 {-# NOINLINE glVertexStream4svATIFunPtr #-}
 
+pattern GL_MAX_VERTEX_STREAMS_ATI  :: (Eq a, Num a) => a
+
 pattern GL_MAX_VERTEX_STREAMS_ATI = 0x876B
 
+pattern GL_VERTEX_SOURCE_ATI  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_SOURCE_ATI = 0x8774
 
+pattern GL_VERTEX_STREAM0_ATI  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_STREAM0_ATI = 0x876C
 
+pattern GL_VERTEX_STREAM1_ATI  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_STREAM1_ATI = 0x876D
 
+pattern GL_VERTEX_STREAM2_ATI  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_STREAM2_ATI = 0x876E
 
+pattern GL_VERTEX_STREAM3_ATI  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_STREAM3_ATI = 0x876F
 
+pattern GL_VERTEX_STREAM4_ATI  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_STREAM4_ATI = 0x8770
 
+pattern GL_VERTEX_STREAM5_ATI  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_STREAM5_ATI = 0x8771
 
+pattern GL_VERTEX_STREAM6_ATI  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_STREAM6_ATI = 0x8772
+
+pattern GL_VERTEX_STREAM7_ATI  :: (Eq a, Num a) => a
 
 pattern GL_VERTEX_STREAM7_ATI = 0x8773
diff --git a/generated-src/Graphics/GL/Ext/DMP/ProgramBinary.hs b/generated-src/Graphics/GL/Ext/DMP/ProgramBinary.hs
--- a/generated-src/Graphics/GL/Ext/DMP/ProgramBinary.hs
+++ b/generated-src/Graphics/GL/Ext/DMP/ProgramBinary.hs
@@ -19,8 +19,14 @@
 gl_DMP_program_binary = member "GL_DMP_program_binary" extensions
 {-# NOINLINE gl_DMP_program_binary #-}
 
+pattern GL_DMP_PROGRAM_BINARY_DMP  :: (Eq a, Num a) => a
+
 pattern GL_DMP_PROGRAM_BINARY_DMP = 0x9253
 
+pattern GL_SMAPHS30_PROGRAM_BINARY_DMP  :: (Eq a, Num a) => a
+
 pattern GL_SMAPHS30_PROGRAM_BINARY_DMP = 0x9251
+
+pattern GL_SMAPHS_PROGRAM_BINARY_DMP  :: (Eq a, Num a) => a
 
 pattern GL_SMAPHS_PROGRAM_BINARY_DMP = 0x9252
diff --git a/generated-src/Graphics/GL/Ext/DMP/ShaderBinary.hs b/generated-src/Graphics/GL/Ext/DMP/ShaderBinary.hs
--- a/generated-src/Graphics/GL/Ext/DMP/ShaderBinary.hs
+++ b/generated-src/Graphics/GL/Ext/DMP/ShaderBinary.hs
@@ -17,4 +17,6 @@
 gl_DMP_shader_binary = member "GL_DMP_shader_binary" extensions
 {-# NOINLINE gl_DMP_shader_binary #-}
 
+pattern GL_SHADER_BINARY_DMP  :: (Eq a, Num a) => a
+
 pattern GL_SHADER_BINARY_DMP = 0x9250
diff --git a/generated-src/Graphics/GL/Ext/EXT/Abgr.hs b/generated-src/Graphics/GL/Ext/EXT/Abgr.hs
--- a/generated-src/Graphics/GL/Ext/EXT/Abgr.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/Abgr.hs
@@ -17,4 +17,6 @@
 gl_EXT_abgr = member "GL_EXT_abgr" extensions
 {-# NOINLINE gl_EXT_abgr #-}
 
+pattern GL_ABGR_EXT  :: (Eq a, Num a) => a
+
 pattern GL_ABGR_EXT = 0x8000
diff --git a/generated-src/Graphics/GL/Ext/EXT/Bgra.hs b/generated-src/Graphics/GL/Ext/EXT/Bgra.hs
--- a/generated-src/Graphics/GL/Ext/EXT/Bgra.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/Bgra.hs
@@ -19,4 +19,6 @@
 gl_EXT_bgra = member "GL_EXT_bgra" extensions
 {-# NOINLINE gl_EXT_bgra #-}
 
+pattern GL_BGR_EXT  :: (Eq a, Num a) => a
+
 pattern GL_BGR_EXT = 0x80E0
diff --git a/generated-src/Graphics/GL/Ext/EXT/BindableUniform.hs b/generated-src/Graphics/GL/Ext/EXT/BindableUniform.hs
--- a/generated-src/Graphics/GL/Ext/EXT/BindableUniform.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/BindableUniform.hs
@@ -63,14 +63,26 @@
 
 {-# NOINLINE glUniformBufferEXTFunPtr #-}
 
+pattern GL_MAX_BINDABLE_UNIFORM_SIZE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_BINDABLE_UNIFORM_SIZE_EXT = 0x8DED
 
+pattern GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT = 0x8DE3
 
+pattern GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT = 0x8DE4
 
+pattern GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT = 0x8DE2
 
+pattern GL_UNIFORM_BUFFER_BINDING_EXT  :: (Eq a, Num a) => a
+
 pattern GL_UNIFORM_BUFFER_BINDING_EXT = 0x8DEF
+
+pattern GL_UNIFORM_BUFFER_EXT  :: (Eq a, Num a) => a
 
 pattern GL_UNIFORM_BUFFER_EXT = 0x8DEE
diff --git a/generated-src/Graphics/GL/Ext/EXT/BlendColor.hs b/generated-src/Graphics/GL/Ext/EXT/BlendColor.hs
--- a/generated-src/Graphics/GL/Ext/EXT/BlendColor.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/BlendColor.hs
@@ -48,12 +48,22 @@
 
 {-# NOINLINE glBlendColorEXTFunPtr #-}
 
+pattern GL_BLEND_COLOR_EXT  :: (Eq a, Num a) => a
+
 pattern GL_BLEND_COLOR_EXT = 0x8005
 
+pattern GL_CONSTANT_ALPHA_EXT  :: (Eq a, Num a) => a
+
 pattern GL_CONSTANT_ALPHA_EXT = 0x8003
 
+pattern GL_CONSTANT_COLOR_EXT  :: (Eq a, Num a) => a
+
 pattern GL_CONSTANT_COLOR_EXT = 0x8001
 
+pattern GL_ONE_MINUS_CONSTANT_ALPHA_EXT  :: (Eq a, Num a) => a
+
 pattern GL_ONE_MINUS_CONSTANT_ALPHA_EXT = 0x8004
+
+pattern GL_ONE_MINUS_CONSTANT_COLOR_EXT  :: (Eq a, Num a) => a
 
 pattern GL_ONE_MINUS_CONSTANT_COLOR_EXT = 0x8002
diff --git a/generated-src/Graphics/GL/Ext/EXT/BlendEquationSeparate.hs b/generated-src/Graphics/GL/Ext/EXT/BlendEquationSeparate.hs
--- a/generated-src/Graphics/GL/Ext/EXT/BlendEquationSeparate.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/BlendEquationSeparate.hs
@@ -41,6 +41,10 @@
 
 {-# NOINLINE glBlendEquationSeparateEXTFunPtr #-}
 
+pattern GL_BLEND_EQUATION_ALPHA_EXT  :: (Eq a, Num a) => a
+
 pattern GL_BLEND_EQUATION_ALPHA_EXT = 0x883D
+
+pattern GL_BLEND_EQUATION_RGB_EXT  :: (Eq a, Num a) => a
 
 pattern GL_BLEND_EQUATION_RGB_EXT = 0x8009
diff --git a/generated-src/Graphics/GL/Ext/EXT/BlendFuncExtended.hs b/generated-src/Graphics/GL/Ext/EXT/BlendFuncExtended.hs
--- a/generated-src/Graphics/GL/Ext/EXT/BlendFuncExtended.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/BlendFuncExtended.hs
@@ -72,16 +72,30 @@
 
 {-# NOINLINE glGetProgramResourceLocationIndexEXTFunPtr #-}
 
+pattern GL_LOCATION_INDEX_EXT  :: (Eq a, Num a) => a
+
 pattern GL_LOCATION_INDEX_EXT = 0x930F
 
+pattern GL_MAX_DUAL_SOURCE_DRAW_BUFFERS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_DUAL_SOURCE_DRAW_BUFFERS_EXT = 0x88FC
 
+pattern GL_ONE_MINUS_SRC1_ALPHA_EXT  :: (Eq a, Num a) => a
+
 pattern GL_ONE_MINUS_SRC1_ALPHA_EXT = 0x88FB
 
+pattern GL_ONE_MINUS_SRC1_COLOR_EXT  :: (Eq a, Num a) => a
+
 pattern GL_ONE_MINUS_SRC1_COLOR_EXT = 0x88FA
 
+pattern GL_SRC1_ALPHA_EXT  :: (Eq a, Num a) => a
+
 pattern GL_SRC1_ALPHA_EXT = 0x8589
 
+pattern GL_SRC1_COLOR_EXT  :: (Eq a, Num a) => a
+
 pattern GL_SRC1_COLOR_EXT = 0x88F9
+
+pattern GL_SRC_ALPHA_SATURATE_EXT  :: (Eq a, Num a) => a
 
 pattern GL_SRC_ALPHA_SATURATE_EXT = 0x0308
diff --git a/generated-src/Graphics/GL/Ext/EXT/BlendFuncSeparate.hs b/generated-src/Graphics/GL/Ext/EXT/BlendFuncSeparate.hs
--- a/generated-src/Graphics/GL/Ext/EXT/BlendFuncSeparate.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/BlendFuncSeparate.hs
@@ -47,10 +47,18 @@
 
 {-# NOINLINE glBlendFuncSeparateEXTFunPtr #-}
 
+pattern GL_BLEND_DST_ALPHA_EXT  :: (Eq a, Num a) => a
+
 pattern GL_BLEND_DST_ALPHA_EXT = 0x80CA
 
+pattern GL_BLEND_DST_RGB_EXT  :: (Eq a, Num a) => a
+
 pattern GL_BLEND_DST_RGB_EXT = 0x80C8
 
+pattern GL_BLEND_SRC_ALPHA_EXT  :: (Eq a, Num a) => a
+
 pattern GL_BLEND_SRC_ALPHA_EXT = 0x80CB
+
+pattern GL_BLEND_SRC_RGB_EXT  :: (Eq a, Num a) => a
 
 pattern GL_BLEND_SRC_RGB_EXT = 0x80C9
diff --git a/generated-src/Graphics/GL/Ext/EXT/BlendMinmax.hs b/generated-src/Graphics/GL/Ext/EXT/BlendMinmax.hs
--- a/generated-src/Graphics/GL/Ext/EXT/BlendMinmax.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/BlendMinmax.hs
@@ -41,10 +41,18 @@
 
 {-# NOINLINE glBlendEquationEXTFunPtr #-}
 
+pattern GL_BLEND_EQUATION_EXT  :: (Eq a, Num a) => a
+
 pattern GL_BLEND_EQUATION_EXT = 0x8009
 
+pattern GL_FUNC_ADD_EXT  :: (Eq a, Num a) => a
+
 pattern GL_FUNC_ADD_EXT = 0x8006
 
+pattern GL_MAX_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_EXT = 0x8008
+
+pattern GL_MIN_EXT  :: (Eq a, Num a) => a
 
 pattern GL_MIN_EXT = 0x8007
diff --git a/generated-src/Graphics/GL/Ext/EXT/BlendSubtract.hs b/generated-src/Graphics/GL/Ext/EXT/BlendSubtract.hs
--- a/generated-src/Graphics/GL/Ext/EXT/BlendSubtract.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/BlendSubtract.hs
@@ -18,6 +18,10 @@
 gl_EXT_blend_subtract = member "GL_EXT_blend_subtract" extensions
 {-# NOINLINE gl_EXT_blend_subtract #-}
 
+pattern GL_FUNC_REVERSE_SUBTRACT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_FUNC_REVERSE_SUBTRACT_EXT = 0x800B
+
+pattern GL_FUNC_SUBTRACT_EXT  :: (Eq a, Num a) => a
 
 pattern GL_FUNC_SUBTRACT_EXT = 0x800A
diff --git a/generated-src/Graphics/GL/Ext/EXT/BufferStorage.hs b/generated-src/Graphics/GL/Ext/EXT/BufferStorage.hs
--- a/generated-src/Graphics/GL/Ext/EXT/BufferStorage.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/BufferStorage.hs
@@ -47,16 +47,30 @@
 
 {-# NOINLINE glBufferStorageEXTFunPtr #-}
 
+pattern GL_BUFFER_IMMUTABLE_STORAGE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_BUFFER_IMMUTABLE_STORAGE_EXT = 0x821F
 
+pattern GL_BUFFER_STORAGE_FLAGS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_BUFFER_STORAGE_FLAGS_EXT = 0x8220
 
+pattern GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT_EXT = 0x00004000
 
+pattern GL_CLIENT_STORAGE_BIT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_CLIENT_STORAGE_BIT_EXT = 0x0200
 
+pattern GL_DYNAMIC_STORAGE_BIT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_DYNAMIC_STORAGE_BIT_EXT = 0x0100
 
+pattern GL_MAP_COHERENT_BIT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAP_COHERENT_BIT_EXT = 0x0080
+
+pattern GL_MAP_PERSISTENT_BIT_EXT  :: (Eq a, Num a) => a
 
 pattern GL_MAP_PERSISTENT_BIT_EXT = 0x0040
diff --git a/generated-src/Graphics/GL/Ext/EXT/ClipCullDistance.hs b/generated-src/Graphics/GL/Ext/EXT/ClipCullDistance.hs
--- a/generated-src/Graphics/GL/Ext/EXT/ClipCullDistance.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/ClipCullDistance.hs
@@ -27,24 +27,46 @@
 gl_EXT_clip_cull_distance = member "GL_EXT_clip_cull_distance" extensions
 {-# NOINLINE gl_EXT_clip_cull_distance #-}
 
+pattern GL_CLIP_DISTANCE0_EXT  :: (Eq a, Num a) => a
+
 pattern GL_CLIP_DISTANCE0_EXT = 0x3000
 
+pattern GL_CLIP_DISTANCE1_EXT  :: (Eq a, Num a) => a
+
 pattern GL_CLIP_DISTANCE1_EXT = 0x3001
 
+pattern GL_CLIP_DISTANCE2_EXT  :: (Eq a, Num a) => a
+
 pattern GL_CLIP_DISTANCE2_EXT = 0x3002
 
+pattern GL_CLIP_DISTANCE3_EXT  :: (Eq a, Num a) => a
+
 pattern GL_CLIP_DISTANCE3_EXT = 0x3003
 
+pattern GL_CLIP_DISTANCE4_EXT  :: (Eq a, Num a) => a
+
 pattern GL_CLIP_DISTANCE4_EXT = 0x3004
 
+pattern GL_CLIP_DISTANCE5_EXT  :: (Eq a, Num a) => a
+
 pattern GL_CLIP_DISTANCE5_EXT = 0x3005
 
+pattern GL_CLIP_DISTANCE6_EXT  :: (Eq a, Num a) => a
+
 pattern GL_CLIP_DISTANCE6_EXT = 0x3006
 
+pattern GL_CLIP_DISTANCE7_EXT  :: (Eq a, Num a) => a
+
 pattern GL_CLIP_DISTANCE7_EXT = 0x3007
 
+pattern GL_MAX_CLIP_DISTANCES_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_CLIP_DISTANCES_EXT = 0x0D32
 
+pattern GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES_EXT = 0x82FA
+
+pattern GL_MAX_CULL_DISTANCES_EXT  :: (Eq a, Num a) => a
 
 pattern GL_MAX_CULL_DISTANCES_EXT = 0x82F9
diff --git a/generated-src/Graphics/GL/Ext/EXT/ClipVolumeHint.hs b/generated-src/Graphics/GL/Ext/EXT/ClipVolumeHint.hs
--- a/generated-src/Graphics/GL/Ext/EXT/ClipVolumeHint.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/ClipVolumeHint.hs
@@ -17,4 +17,6 @@
 gl_EXT_clip_volume_hint = member "GL_EXT_clip_volume_hint" extensions
 {-# NOINLINE gl_EXT_clip_volume_hint #-}
 
+pattern GL_CLIP_VOLUME_CLIPPING_HINT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_CLIP_VOLUME_CLIPPING_HINT_EXT = 0x80F0
diff --git a/generated-src/Graphics/GL/Ext/EXT/Cmyka.hs b/generated-src/Graphics/GL/Ext/EXT/Cmyka.hs
--- a/generated-src/Graphics/GL/Ext/EXT/Cmyka.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/Cmyka.hs
@@ -20,10 +20,18 @@
 gl_EXT_cmyka = member "GL_EXT_cmyka" extensions
 {-# NOINLINE gl_EXT_cmyka #-}
 
+pattern GL_CMYKA_EXT  :: (Eq a, Num a) => a
+
 pattern GL_CMYKA_EXT = 0x800D
 
+pattern GL_CMYK_EXT  :: (Eq a, Num a) => a
+
 pattern GL_CMYK_EXT = 0x800C
 
+pattern GL_PACK_CMYK_HINT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_PACK_CMYK_HINT_EXT = 0x800E
+
+pattern GL_UNPACK_CMYK_HINT_EXT  :: (Eq a, Num a) => a
 
 pattern GL_UNPACK_CMYK_HINT_EXT = 0x800F
diff --git a/generated-src/Graphics/GL/Ext/EXT/ColorBufferHalfFloat.hs b/generated-src/Graphics/GL/Ext/EXT/ColorBufferHalfFloat.hs
--- a/generated-src/Graphics/GL/Ext/EXT/ColorBufferHalfFloat.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/ColorBufferHalfFloat.hs
@@ -23,6 +23,10 @@
 gl_EXT_color_buffer_half_float = member "GL_EXT_color_buffer_half_float" extensions
 {-# NOINLINE gl_EXT_color_buffer_half_float #-}
 
+pattern GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT = 0x8211
+
+pattern GL_UNSIGNED_NORMALIZED_EXT  :: (Eq a, Num a) => a
 
 pattern GL_UNSIGNED_NORMALIZED_EXT = 0x8C17
diff --git a/generated-src/Graphics/GL/Ext/EXT/CompiledVertexArray.hs b/generated-src/Graphics/GL/Ext/EXT/CompiledVertexArray.hs
--- a/generated-src/Graphics/GL/Ext/EXT/CompiledVertexArray.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/CompiledVertexArray.hs
@@ -47,6 +47,10 @@
 
 {-# NOINLINE glUnlockArraysEXTFunPtr #-}
 
+pattern GL_ARRAY_ELEMENT_LOCK_COUNT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_ARRAY_ELEMENT_LOCK_COUNT_EXT = 0x81A9
+
+pattern GL_ARRAY_ELEMENT_LOCK_FIRST_EXT  :: (Eq a, Num a) => a
 
 pattern GL_ARRAY_ELEMENT_LOCK_FIRST_EXT = 0x81A8
diff --git a/generated-src/Graphics/GL/Ext/EXT/Convolution.hs b/generated-src/Graphics/GL/Ext/EXT/Convolution.hs
--- a/generated-src/Graphics/GL/Ext/EXT/Convolution.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/Convolution.hs
@@ -323,42 +323,82 @@
 
 {-# NOINLINE glSeparableFilter2DEXTFunPtr #-}
 
+pattern GL_CONVOLUTION_1D_EXT  :: (Eq a, Num a) => a
+
 pattern GL_CONVOLUTION_1D_EXT = 0x8010
 
+pattern GL_CONVOLUTION_2D_EXT  :: (Eq a, Num a) => a
+
 pattern GL_CONVOLUTION_2D_EXT = 0x8011
 
+pattern GL_CONVOLUTION_BORDER_MODE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_CONVOLUTION_BORDER_MODE_EXT = 0x8013
 
+pattern GL_CONVOLUTION_FILTER_BIAS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_CONVOLUTION_FILTER_BIAS_EXT = 0x8015
 
+pattern GL_CONVOLUTION_FILTER_SCALE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_CONVOLUTION_FILTER_SCALE_EXT = 0x8014
 
+pattern GL_CONVOLUTION_FORMAT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_CONVOLUTION_FORMAT_EXT = 0x8017
 
+pattern GL_CONVOLUTION_HEIGHT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_CONVOLUTION_HEIGHT_EXT = 0x8019
 
+pattern GL_CONVOLUTION_WIDTH_EXT  :: (Eq a, Num a) => a
+
 pattern GL_CONVOLUTION_WIDTH_EXT = 0x8018
 
+pattern GL_MAX_CONVOLUTION_HEIGHT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_CONVOLUTION_HEIGHT_EXT = 0x801B
 
+pattern GL_MAX_CONVOLUTION_WIDTH_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_CONVOLUTION_WIDTH_EXT = 0x801A
 
+pattern GL_POST_CONVOLUTION_ALPHA_BIAS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_POST_CONVOLUTION_ALPHA_BIAS_EXT = 0x8023
 
+pattern GL_POST_CONVOLUTION_ALPHA_SCALE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_POST_CONVOLUTION_ALPHA_SCALE_EXT = 0x801F
 
+pattern GL_POST_CONVOLUTION_BLUE_BIAS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_POST_CONVOLUTION_BLUE_BIAS_EXT = 0x8022
 
+pattern GL_POST_CONVOLUTION_BLUE_SCALE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_POST_CONVOLUTION_BLUE_SCALE_EXT = 0x801E
 
+pattern GL_POST_CONVOLUTION_GREEN_BIAS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_POST_CONVOLUTION_GREEN_BIAS_EXT = 0x8021
 
+pattern GL_POST_CONVOLUTION_GREEN_SCALE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_POST_CONVOLUTION_GREEN_SCALE_EXT = 0x801D
 
+pattern GL_POST_CONVOLUTION_RED_BIAS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_POST_CONVOLUTION_RED_BIAS_EXT = 0x8020
 
+pattern GL_POST_CONVOLUTION_RED_SCALE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_POST_CONVOLUTION_RED_SCALE_EXT = 0x801C
 
+pattern GL_REDUCE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_REDUCE_EXT = 0x8016
+
+pattern GL_SEPARABLE_2D_EXT  :: (Eq a, Num a) => a
 
 pattern GL_SEPARABLE_2D_EXT = 0x8012
diff --git a/generated-src/Graphics/GL/Ext/EXT/CoordinateFrame.hs b/generated-src/Graphics/GL/Ext/EXT/CoordinateFrame.hs
--- a/generated-src/Graphics/GL/Ext/EXT/CoordinateFrame.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/CoordinateFrame.hs
@@ -379,30 +379,58 @@
 
 {-# NOINLINE glTangentPointerEXTFunPtr #-}
 
+pattern GL_BINORMAL_ARRAY_EXT  :: (Eq a, Num a) => a
+
 pattern GL_BINORMAL_ARRAY_EXT = 0x843A
 
+pattern GL_BINORMAL_ARRAY_POINTER_EXT  :: (Eq a, Num a) => a
+
 pattern GL_BINORMAL_ARRAY_POINTER_EXT = 0x8443
 
+pattern GL_BINORMAL_ARRAY_STRIDE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_BINORMAL_ARRAY_STRIDE_EXT = 0x8441
 
+pattern GL_BINORMAL_ARRAY_TYPE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_BINORMAL_ARRAY_TYPE_EXT = 0x8440
 
+pattern GL_CURRENT_BINORMAL_EXT  :: (Eq a, Num a) => a
+
 pattern GL_CURRENT_BINORMAL_EXT = 0x843C
 
+pattern GL_CURRENT_TANGENT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_CURRENT_TANGENT_EXT = 0x843B
 
+pattern GL_MAP1_BINORMAL_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAP1_BINORMAL_EXT = 0x8446
 
+pattern GL_MAP1_TANGENT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAP1_TANGENT_EXT = 0x8444
 
+pattern GL_MAP2_BINORMAL_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAP2_BINORMAL_EXT = 0x8447
 
+pattern GL_MAP2_TANGENT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAP2_TANGENT_EXT = 0x8445
 
+pattern GL_TANGENT_ARRAY_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TANGENT_ARRAY_EXT = 0x8439
 
+pattern GL_TANGENT_ARRAY_POINTER_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TANGENT_ARRAY_POINTER_EXT = 0x8442
 
+pattern GL_TANGENT_ARRAY_STRIDE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TANGENT_ARRAY_STRIDE_EXT = 0x843F
+
+pattern GL_TANGENT_ARRAY_TYPE_EXT  :: (Eq a, Num a) => a
 
 pattern GL_TANGENT_ARRAY_TYPE_EXT = 0x843E
diff --git a/generated-src/Graphics/GL/Ext/EXT/CullVertex.hs b/generated-src/Graphics/GL/Ext/EXT/CullVertex.hs
--- a/generated-src/Graphics/GL/Ext/EXT/CullVertex.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/CullVertex.hs
@@ -56,8 +56,14 @@
 
 {-# NOINLINE glCullParameterfvEXTFunPtr #-}
 
+pattern GL_CULL_VERTEX_EXT  :: (Eq a, Num a) => a
+
 pattern GL_CULL_VERTEX_EXT = 0x81AA
 
+pattern GL_CULL_VERTEX_EYE_POSITION_EXT  :: (Eq a, Num a) => a
+
 pattern GL_CULL_VERTEX_EYE_POSITION_EXT = 0x81AB
+
+pattern GL_CULL_VERTEX_OBJECT_POSITION_EXT  :: (Eq a, Num a) => a
 
 pattern GL_CULL_VERTEX_OBJECT_POSITION_EXT = 0x81AC
diff --git a/generated-src/Graphics/GL/Ext/EXT/DebugLabel.hs b/generated-src/Graphics/GL/Ext/EXT/DebugLabel.hs
--- a/generated-src/Graphics/GL/Ext/EXT/DebugLabel.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/DebugLabel.hs
@@ -58,14 +58,26 @@
 
 {-# NOINLINE glLabelObjectEXTFunPtr #-}
 
+pattern GL_BUFFER_OBJECT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_BUFFER_OBJECT_EXT = 0x9151
 
+pattern GL_PROGRAM_OBJECT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_PROGRAM_OBJECT_EXT = 0x8B40
 
+pattern GL_PROGRAM_PIPELINE_OBJECT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_PROGRAM_PIPELINE_OBJECT_EXT = 0x8A4F
 
+pattern GL_QUERY_OBJECT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_QUERY_OBJECT_EXT = 0x9153
 
+pattern GL_SHADER_OBJECT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_SHADER_OBJECT_EXT = 0x8B48
+
+pattern GL_VERTEX_ARRAY_OBJECT_EXT  :: (Eq a, Num a) => a
 
 pattern GL_VERTEX_ARRAY_OBJECT_EXT = 0x9154
diff --git a/generated-src/Graphics/GL/Ext/EXT/DepthBoundsTest.hs b/generated-src/Graphics/GL/Ext/EXT/DepthBoundsTest.hs
--- a/generated-src/Graphics/GL/Ext/EXT/DepthBoundsTest.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/DepthBoundsTest.hs
@@ -39,6 +39,10 @@
 
 {-# NOINLINE glDepthBoundsEXTFunPtr #-}
 
+pattern GL_DEPTH_BOUNDS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_DEPTH_BOUNDS_EXT = 0x8891
+
+pattern GL_DEPTH_BOUNDS_TEST_EXT  :: (Eq a, Num a) => a
 
 pattern GL_DEPTH_BOUNDS_TEST_EXT = 0x8890
diff --git a/generated-src/Graphics/GL/Ext/EXT/DirectStateAccess.hs b/generated-src/Graphics/GL/Ext/EXT/DirectStateAccess.hs
--- a/generated-src/Graphics/GL/Ext/EXT/DirectStateAccess.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/DirectStateAccess.hs
@@ -4004,8 +4004,14 @@
 
 {-# NOINLINE glVertexArrayVertexOffsetEXTFunPtr #-}
 
+pattern GL_PROGRAM_MATRIX_EXT  :: (Eq a, Num a) => a
+
 pattern GL_PROGRAM_MATRIX_EXT = 0x8E2D
 
+pattern GL_PROGRAM_MATRIX_STACK_DEPTH_EXT  :: (Eq a, Num a) => a
+
 pattern GL_PROGRAM_MATRIX_STACK_DEPTH_EXT = 0x8E2F
+
+pattern GL_TRANSPOSE_PROGRAM_MATRIX_EXT  :: (Eq a, Num a) => a
 
 pattern GL_TRANSPOSE_PROGRAM_MATRIX_EXT = 0x8E2E
diff --git a/generated-src/Graphics/GL/Ext/EXT/DiscardFramebuffer.hs b/generated-src/Graphics/GL/Ext/EXT/DiscardFramebuffer.hs
--- a/generated-src/Graphics/GL/Ext/EXT/DiscardFramebuffer.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/DiscardFramebuffer.hs
@@ -38,8 +38,14 @@
 
 {-# NOINLINE glDiscardFramebufferEXTFunPtr #-}
 
+pattern GL_COLOR_EXT  :: (Eq a, Num a) => a
+
 pattern GL_COLOR_EXT = 0x1800
 
+pattern GL_DEPTH_EXT  :: (Eq a, Num a) => a
+
 pattern GL_DEPTH_EXT = 0x1801
+
+pattern GL_STENCIL_EXT  :: (Eq a, Num a) => a
 
 pattern GL_STENCIL_EXT = 0x1802
diff --git a/generated-src/Graphics/GL/Ext/EXT/DisjointTimerQuery.hs b/generated-src/Graphics/GL/Ext/EXT/DisjointTimerQuery.hs
--- a/generated-src/Graphics/GL/Ext/EXT/DisjointTimerQuery.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/DisjointTimerQuery.hs
@@ -66,8 +66,14 @@
 
 {-# NOINLINE glQueryCounterEXTFunPtr #-}
 
+pattern GL_GPU_DISJOINT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_GPU_DISJOINT_EXT = 0x8FBB
 
+pattern GL_QUERY_COUNTER_BITS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_QUERY_COUNTER_BITS_EXT = 0x8864
+
+pattern GL_TIMESTAMP_EXT  :: (Eq a, Num a) => a
 
 pattern GL_TIMESTAMP_EXT = 0x8E28
diff --git a/generated-src/Graphics/GL/Ext/EXT/DrawBuffers.hs b/generated-src/Graphics/GL/Ext/EXT/DrawBuffers.hs
--- a/generated-src/Graphics/GL/Ext/EXT/DrawBuffers.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/DrawBuffers.hs
@@ -70,36 +70,70 @@
 
 {-# NOINLINE glDrawBuffersEXTFunPtr #-}
 
+pattern GL_DRAW_BUFFER0_EXT  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER0_EXT = 0x8825
 
+pattern GL_DRAW_BUFFER10_EXT  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER10_EXT = 0x882F
 
+pattern GL_DRAW_BUFFER11_EXT  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER11_EXT = 0x8830
 
+pattern GL_DRAW_BUFFER12_EXT  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER12_EXT = 0x8831
 
+pattern GL_DRAW_BUFFER13_EXT  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER13_EXT = 0x8832
 
+pattern GL_DRAW_BUFFER14_EXT  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER14_EXT = 0x8833
 
+pattern GL_DRAW_BUFFER15_EXT  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER15_EXT = 0x8834
 
+pattern GL_DRAW_BUFFER1_EXT  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER1_EXT = 0x8826
 
+pattern GL_DRAW_BUFFER2_EXT  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER2_EXT = 0x8827
 
+pattern GL_DRAW_BUFFER3_EXT  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER3_EXT = 0x8828
 
+pattern GL_DRAW_BUFFER4_EXT  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER4_EXT = 0x8829
 
+pattern GL_DRAW_BUFFER5_EXT  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER5_EXT = 0x882A
 
+pattern GL_DRAW_BUFFER6_EXT  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER6_EXT = 0x882B
 
+pattern GL_DRAW_BUFFER7_EXT  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER7_EXT = 0x882C
 
+pattern GL_DRAW_BUFFER8_EXT  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER8_EXT = 0x882D
 
+pattern GL_DRAW_BUFFER9_EXT  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER9_EXT = 0x882E
+
+pattern GL_MAX_DRAW_BUFFERS_EXT  :: (Eq a, Num a) => a
 
 pattern GL_MAX_DRAW_BUFFERS_EXT = 0x8824
diff --git a/generated-src/Graphics/GL/Ext/EXT/DrawRangeElements.hs b/generated-src/Graphics/GL/Ext/EXT/DrawRangeElements.hs
--- a/generated-src/Graphics/GL/Ext/EXT/DrawRangeElements.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/DrawRangeElements.hs
@@ -43,6 +43,10 @@
 
 {-# NOINLINE glDrawRangeElementsEXTFunPtr #-}
 
+pattern GL_MAX_ELEMENTS_INDICES_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_ELEMENTS_INDICES_EXT = 0x80E9
+
+pattern GL_MAX_ELEMENTS_VERTICES_EXT  :: (Eq a, Num a) => a
 
 pattern GL_MAX_ELEMENTS_VERTICES_EXT = 0x80E8
diff --git a/generated-src/Graphics/GL/Ext/EXT/FogCoord.hs b/generated-src/Graphics/GL/Ext/EXT/FogCoord.hs
--- a/generated-src/Graphics/GL/Ext/EXT/FogCoord.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/FogCoord.hs
@@ -120,16 +120,30 @@
 
 {-# NOINLINE glFogCoordfvEXTFunPtr #-}
 
+pattern GL_CURRENT_FOG_COORDINATE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_CURRENT_FOG_COORDINATE_EXT = 0x8453
 
+pattern GL_FOG_COORDINATE_ARRAY_EXT  :: (Eq a, Num a) => a
+
 pattern GL_FOG_COORDINATE_ARRAY_EXT = 0x8457
 
+pattern GL_FOG_COORDINATE_ARRAY_POINTER_EXT  :: (Eq a, Num a) => a
+
 pattern GL_FOG_COORDINATE_ARRAY_POINTER_EXT = 0x8456
 
+pattern GL_FOG_COORDINATE_ARRAY_STRIDE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_FOG_COORDINATE_ARRAY_STRIDE_EXT = 0x8455
 
+pattern GL_FOG_COORDINATE_ARRAY_TYPE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_FOG_COORDINATE_ARRAY_TYPE_EXT = 0x8454
 
+pattern GL_FOG_COORDINATE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_FOG_COORDINATE_EXT = 0x8451
+
+pattern GL_FOG_COORDINATE_SOURCE_EXT  :: (Eq a, Num a) => a
 
 pattern GL_FOG_COORDINATE_SOURCE_EXT = 0x8450
diff --git a/generated-src/Graphics/GL/Ext/EXT/FourTwoTwoPixels.hs b/generated-src/Graphics/GL/Ext/EXT/FourTwoTwoPixels.hs
--- a/generated-src/Graphics/GL/Ext/EXT/FourTwoTwoPixels.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/FourTwoTwoPixels.hs
@@ -20,10 +20,18 @@
 gl_EXT_422_pixels = member "GL_EXT_422_pixels" extensions
 {-# NOINLINE gl_EXT_422_pixels #-}
 
+pattern GL_422_AVERAGE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_422_AVERAGE_EXT = 0x80CE
 
+pattern GL_422_EXT  :: (Eq a, Num a) => a
+
 pattern GL_422_EXT = 0x80CC
 
+pattern GL_422_REV_AVERAGE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_422_REV_AVERAGE_EXT = 0x80CF
+
+pattern GL_422_REV_EXT  :: (Eq a, Num a) => a
 
 pattern GL_422_REV_EXT = 0x80CD
diff --git a/generated-src/Graphics/GL/Ext/EXT/FramebufferBlit.hs b/generated-src/Graphics/GL/Ext/EXT/FramebufferBlit.hs
--- a/generated-src/Graphics/GL/Ext/EXT/FramebufferBlit.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/FramebufferBlit.hs
@@ -41,10 +41,18 @@
 
 {-# NOINLINE glBlitFramebufferEXTFunPtr #-}
 
+pattern GL_DRAW_FRAMEBUFFER_BINDING_EXT  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_FRAMEBUFFER_BINDING_EXT = 0x8CA6
 
+pattern GL_DRAW_FRAMEBUFFER_EXT  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_FRAMEBUFFER_EXT = 0x8CA9
 
+pattern GL_READ_FRAMEBUFFER_BINDING_EXT  :: (Eq a, Num a) => a
+
 pattern GL_READ_FRAMEBUFFER_BINDING_EXT = 0x8CAA
+
+pattern GL_READ_FRAMEBUFFER_EXT  :: (Eq a, Num a) => a
 
 pattern GL_READ_FRAMEBUFFER_EXT = 0x8CA8
diff --git a/generated-src/Graphics/GL/Ext/EXT/FramebufferMultisampleBlitScaled.hs b/generated-src/Graphics/GL/Ext/EXT/FramebufferMultisampleBlitScaled.hs
--- a/generated-src/Graphics/GL/Ext/EXT/FramebufferMultisampleBlitScaled.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/FramebufferMultisampleBlitScaled.hs
@@ -18,6 +18,10 @@
 gl_EXT_framebuffer_multisample_blit_scaled = member "GL_EXT_framebuffer_multisample_blit_scaled" extensions
 {-# NOINLINE gl_EXT_framebuffer_multisample_blit_scaled #-}
 
+pattern GL_SCALED_RESOLVE_FASTEST_EXT  :: (Eq a, Num a) => a
+
 pattern GL_SCALED_RESOLVE_FASTEST_EXT = 0x90BA
+
+pattern GL_SCALED_RESOLVE_NICEST_EXT  :: (Eq a, Num a) => a
 
 pattern GL_SCALED_RESOLVE_NICEST_EXT = 0x90BB
diff --git a/generated-src/Graphics/GL/Ext/EXT/FramebufferObject.hs b/generated-src/Graphics/GL/Ext/EXT/FramebufferObject.hs
--- a/generated-src/Graphics/GL/Ext/EXT/FramebufferObject.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/FramebufferObject.hs
@@ -351,70 +351,138 @@
 
 {-# NOINLINE glRenderbufferStorageEXTFunPtr #-}
 
+pattern GL_DEPTH_ATTACHMENT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_DEPTH_ATTACHMENT_EXT = 0x8D00
 
+pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT  :: (Eq a, Num a) => a
+
 pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT = 0x8CD1
 
+pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT = 0x8CD0
 
+pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT  :: (Eq a, Num a) => a
+
 pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT = 0x8CD4
 
+pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT = 0x8CD3
 
+pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT  :: (Eq a, Num a) => a
+
 pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT = 0x8CD2
 
+pattern GL_FRAMEBUFFER_BINDING_EXT  :: (Eq a, Num a) => a
+
 pattern GL_FRAMEBUFFER_BINDING_EXT = 0x8CA6
 
+pattern GL_FRAMEBUFFER_COMPLETE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_FRAMEBUFFER_COMPLETE_EXT = 0x8CD5
 
+pattern GL_FRAMEBUFFER_EXT  :: (Eq a, Num a) => a
+
 pattern GL_FRAMEBUFFER_EXT = 0x8D40
 
+pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT = 0x8CD6
 
+pattern GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT = 0x8CD9
 
+pattern GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT  :: (Eq a, Num a) => a
+
 pattern GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT = 0x8CDB
 
+pattern GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT = 0x8CDA
 
+pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT = 0x8CD7
 
+pattern GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT  :: (Eq a, Num a) => a
+
 pattern GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT = 0x8CDC
 
+pattern GL_FRAMEBUFFER_UNSUPPORTED_EXT  :: (Eq a, Num a) => a
+
 pattern GL_FRAMEBUFFER_UNSUPPORTED_EXT = 0x8CDD
 
+pattern GL_INVALID_FRAMEBUFFER_OPERATION_EXT  :: (Eq a, Num a) => a
+
 pattern GL_INVALID_FRAMEBUFFER_OPERATION_EXT = 0x0506
 
+pattern GL_MAX_RENDERBUFFER_SIZE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_RENDERBUFFER_SIZE_EXT = 0x84E8
 
+pattern GL_RENDERBUFFER_ALPHA_SIZE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_RENDERBUFFER_ALPHA_SIZE_EXT = 0x8D53
 
+pattern GL_RENDERBUFFER_BINDING_EXT  :: (Eq a, Num a) => a
+
 pattern GL_RENDERBUFFER_BINDING_EXT = 0x8CA7
 
+pattern GL_RENDERBUFFER_BLUE_SIZE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_RENDERBUFFER_BLUE_SIZE_EXT = 0x8D52
 
+pattern GL_RENDERBUFFER_DEPTH_SIZE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_RENDERBUFFER_DEPTH_SIZE_EXT = 0x8D54
 
+pattern GL_RENDERBUFFER_EXT  :: (Eq a, Num a) => a
+
 pattern GL_RENDERBUFFER_EXT = 0x8D41
 
+pattern GL_RENDERBUFFER_GREEN_SIZE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_RENDERBUFFER_GREEN_SIZE_EXT = 0x8D51
 
+pattern GL_RENDERBUFFER_HEIGHT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_RENDERBUFFER_HEIGHT_EXT = 0x8D43
 
+pattern GL_RENDERBUFFER_INTERNAL_FORMAT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_RENDERBUFFER_INTERNAL_FORMAT_EXT = 0x8D44
 
+pattern GL_RENDERBUFFER_RED_SIZE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_RENDERBUFFER_RED_SIZE_EXT = 0x8D50
 
+pattern GL_RENDERBUFFER_STENCIL_SIZE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_RENDERBUFFER_STENCIL_SIZE_EXT = 0x8D55
 
+pattern GL_RENDERBUFFER_WIDTH_EXT  :: (Eq a, Num a) => a
+
 pattern GL_RENDERBUFFER_WIDTH_EXT = 0x8D42
 
+pattern GL_STENCIL_ATTACHMENT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_STENCIL_ATTACHMENT_EXT = 0x8D20
 
+pattern GL_STENCIL_INDEX16_EXT  :: (Eq a, Num a) => a
+
 pattern GL_STENCIL_INDEX16_EXT = 0x8D49
 
+pattern GL_STENCIL_INDEX1_EXT  :: (Eq a, Num a) => a
+
 pattern GL_STENCIL_INDEX1_EXT = 0x8D46
 
+pattern GL_STENCIL_INDEX4_EXT  :: (Eq a, Num a) => a
+
 pattern GL_STENCIL_INDEX4_EXT = 0x8D47
+
+pattern GL_STENCIL_INDEX8_EXT  :: (Eq a, Num a) => a
 
 pattern GL_STENCIL_INDEX8_EXT = 0x8D48
diff --git a/generated-src/Graphics/GL/Ext/EXT/FramebufferSRGB.hs b/generated-src/Graphics/GL/Ext/EXT/FramebufferSRGB.hs
--- a/generated-src/Graphics/GL/Ext/EXT/FramebufferSRGB.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/FramebufferSRGB.hs
@@ -19,4 +19,6 @@
 gl_EXT_framebuffer_sRGB = member "GL_EXT_framebuffer_sRGB" extensions
 {-# NOINLINE gl_EXT_framebuffer_sRGB #-}
 
+pattern GL_FRAMEBUFFER_SRGB_CAPABLE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_FRAMEBUFFER_SRGB_CAPABLE_EXT = 0x8DBA
diff --git a/generated-src/Graphics/GL/Ext/EXT/GeometryShader.hs b/generated-src/Graphics/GL/Ext/EXT/GeometryShader.hs
--- a/generated-src/Graphics/GL/Ext/EXT/GeometryShader.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/GeometryShader.hs
@@ -51,40 +51,78 @@
 gl_EXT_geometry_shader = member "GL_EXT_geometry_shader" extensions
 {-# NOINLINE gl_EXT_geometry_shader #-}
 
+pattern GL_FRAMEBUFFER_DEFAULT_LAYERS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_FRAMEBUFFER_DEFAULT_LAYERS_EXT = 0x9312
 
+pattern GL_GEOMETRY_LINKED_INPUT_TYPE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_GEOMETRY_LINKED_INPUT_TYPE_EXT = 0x8917
 
+pattern GL_GEOMETRY_LINKED_OUTPUT_TYPE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_GEOMETRY_LINKED_OUTPUT_TYPE_EXT = 0x8918
 
+pattern GL_GEOMETRY_LINKED_VERTICES_OUT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_GEOMETRY_LINKED_VERTICES_OUT_EXT = 0x8916
 
+pattern GL_GEOMETRY_SHADER_BIT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_GEOMETRY_SHADER_BIT_EXT = 0x00000004
 
+pattern GL_GEOMETRY_SHADER_INVOCATIONS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_GEOMETRY_SHADER_INVOCATIONS_EXT = 0x887F
 
+pattern GL_LAYER_PROVOKING_VERTEX_EXT  :: (Eq a, Num a) => a
+
 pattern GL_LAYER_PROVOKING_VERTEX_EXT = 0x825E
 
+pattern GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_EXT = 0x8A32
 
+pattern GL_MAX_FRAMEBUFFER_LAYERS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_FRAMEBUFFER_LAYERS_EXT = 0x9317
 
+pattern GL_MAX_GEOMETRY_ATOMIC_COUNTERS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_GEOMETRY_ATOMIC_COUNTERS_EXT = 0x92D5
 
+pattern GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_EXT = 0x92CF
 
+pattern GL_MAX_GEOMETRY_IMAGE_UNIFORMS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_GEOMETRY_IMAGE_UNIFORMS_EXT = 0x90CD
 
+pattern GL_MAX_GEOMETRY_INPUT_COMPONENTS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_GEOMETRY_INPUT_COMPONENTS_EXT = 0x9123
 
+pattern GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_EXT = 0x9124
 
+pattern GL_MAX_GEOMETRY_SHADER_INVOCATIONS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_GEOMETRY_SHADER_INVOCATIONS_EXT = 0x8E5A
 
+pattern GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_EXT = 0x90D7
 
+pattern GL_MAX_GEOMETRY_UNIFORM_BLOCKS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_GEOMETRY_UNIFORM_BLOCKS_EXT = 0x8A2C
 
+pattern GL_REFERENCED_BY_GEOMETRY_SHADER_EXT  :: (Eq a, Num a) => a
+
 pattern GL_REFERENCED_BY_GEOMETRY_SHADER_EXT = 0x9309
+
+pattern GL_UNDEFINED_VERTEX_EXT  :: (Eq a, Num a) => a
 
 pattern GL_UNDEFINED_VERTEX_EXT = 0x8260
diff --git a/generated-src/Graphics/GL/Ext/EXT/GeometryShader4.hs b/generated-src/Graphics/GL/Ext/EXT/GeometryShader4.hs
--- a/generated-src/Graphics/GL/Ext/EXT/GeometryShader4.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/GeometryShader4.hs
@@ -38,8 +38,14 @@
 gl_EXT_geometry_shader4 = member "GL_EXT_geometry_shader4" extensions
 {-# NOINLINE gl_EXT_geometry_shader4 #-}
 
+pattern GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT = 0x8DDD
 
+pattern GL_MAX_VARYING_COMPONENTS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_VARYING_COMPONENTS_EXT = 0x8B4B
+
+pattern GL_MAX_VERTEX_VARYING_COMPONENTS_EXT  :: (Eq a, Num a) => a
 
 pattern GL_MAX_VERTEX_VARYING_COMPONENTS_EXT = 0x8DDE
diff --git a/generated-src/Graphics/GL/Ext/EXT/GpuShader4.hs b/generated-src/Graphics/GL/Ext/EXT/GpuShader4.hs
--- a/generated-src/Graphics/GL/Ext/EXT/GpuShader4.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/GpuShader4.hs
@@ -203,52 +203,102 @@
 
 {-# NOINLINE glUniform4uivEXTFunPtr #-}
 
+pattern GL_INT_SAMPLER_1D_ARRAY_EXT  :: (Eq a, Num a) => a
+
 pattern GL_INT_SAMPLER_1D_ARRAY_EXT = 0x8DCE
 
+pattern GL_INT_SAMPLER_1D_EXT  :: (Eq a, Num a) => a
+
 pattern GL_INT_SAMPLER_1D_EXT = 0x8DC9
 
+pattern GL_INT_SAMPLER_2D_ARRAY_EXT  :: (Eq a, Num a) => a
+
 pattern GL_INT_SAMPLER_2D_ARRAY_EXT = 0x8DCF
 
+pattern GL_INT_SAMPLER_2D_EXT  :: (Eq a, Num a) => a
+
 pattern GL_INT_SAMPLER_2D_EXT = 0x8DCA
 
+pattern GL_INT_SAMPLER_2D_RECT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_INT_SAMPLER_2D_RECT_EXT = 0x8DCD
 
+pattern GL_INT_SAMPLER_3D_EXT  :: (Eq a, Num a) => a
+
 pattern GL_INT_SAMPLER_3D_EXT = 0x8DCB
 
+pattern GL_INT_SAMPLER_CUBE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_INT_SAMPLER_CUBE_EXT = 0x8DCC
 
+pattern GL_MAX_PROGRAM_TEXEL_OFFSET_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_PROGRAM_TEXEL_OFFSET_EXT = 0x8905
 
+pattern GL_MIN_PROGRAM_TEXEL_OFFSET_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MIN_PROGRAM_TEXEL_OFFSET_EXT = 0x8904
 
+pattern GL_SAMPLER_1D_ARRAY_EXT  :: (Eq a, Num a) => a
+
 pattern GL_SAMPLER_1D_ARRAY_EXT = 0x8DC0
 
+pattern GL_SAMPLER_1D_ARRAY_SHADOW_EXT  :: (Eq a, Num a) => a
+
 pattern GL_SAMPLER_1D_ARRAY_SHADOW_EXT = 0x8DC3
 
+pattern GL_SAMPLER_2D_ARRAY_EXT  :: (Eq a, Num a) => a
+
 pattern GL_SAMPLER_2D_ARRAY_EXT = 0x8DC1
 
+pattern GL_SAMPLER_2D_ARRAY_SHADOW_EXT  :: (Eq a, Num a) => a
+
 pattern GL_SAMPLER_2D_ARRAY_SHADOW_EXT = 0x8DC4
 
+pattern GL_SAMPLER_CUBE_SHADOW_EXT  :: (Eq a, Num a) => a
+
 pattern GL_SAMPLER_CUBE_SHADOW_EXT = 0x8DC5
 
+pattern GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT  :: (Eq a, Num a) => a
+
 pattern GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT = 0x8DD6
 
+pattern GL_UNSIGNED_INT_SAMPLER_1D_EXT  :: (Eq a, Num a) => a
+
 pattern GL_UNSIGNED_INT_SAMPLER_1D_EXT = 0x8DD1
 
+pattern GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT  :: (Eq a, Num a) => a
+
 pattern GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT = 0x8DD7
 
+pattern GL_UNSIGNED_INT_SAMPLER_2D_EXT  :: (Eq a, Num a) => a
+
 pattern GL_UNSIGNED_INT_SAMPLER_2D_EXT = 0x8DD2
 
+pattern GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT = 0x8DD5
 
+pattern GL_UNSIGNED_INT_SAMPLER_3D_EXT  :: (Eq a, Num a) => a
+
 pattern GL_UNSIGNED_INT_SAMPLER_3D_EXT = 0x8DD3
 
+pattern GL_UNSIGNED_INT_SAMPLER_CUBE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_UNSIGNED_INT_SAMPLER_CUBE_EXT = 0x8DD4
 
+pattern GL_UNSIGNED_INT_VEC2_EXT  :: (Eq a, Num a) => a
+
 pattern GL_UNSIGNED_INT_VEC2_EXT = 0x8DC6
 
+pattern GL_UNSIGNED_INT_VEC3_EXT  :: (Eq a, Num a) => a
+
 pattern GL_UNSIGNED_INT_VEC3_EXT = 0x8DC7
 
+pattern GL_UNSIGNED_INT_VEC4_EXT  :: (Eq a, Num a) => a
+
 pattern GL_UNSIGNED_INT_VEC4_EXT = 0x8DC8
+
+pattern GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT  :: (Eq a, Num a) => a
 
 pattern GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT = 0x88FD
diff --git a/generated-src/Graphics/GL/Ext/EXT/Histogram.hs b/generated-src/Graphics/GL/Ext/EXT/Histogram.hs
--- a/generated-src/Graphics/GL/Ext/EXT/Histogram.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/Histogram.hs
@@ -223,30 +223,58 @@
 
 {-# NOINLINE glResetMinmaxEXTFunPtr #-}
 
+pattern GL_HISTOGRAM_ALPHA_SIZE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_HISTOGRAM_ALPHA_SIZE_EXT = 0x802B
 
+pattern GL_HISTOGRAM_BLUE_SIZE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_HISTOGRAM_BLUE_SIZE_EXT = 0x802A
 
+pattern GL_HISTOGRAM_EXT  :: (Eq a, Num a) => a
+
 pattern GL_HISTOGRAM_EXT = 0x8024
 
+pattern GL_HISTOGRAM_FORMAT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_HISTOGRAM_FORMAT_EXT = 0x8027
 
+pattern GL_HISTOGRAM_GREEN_SIZE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_HISTOGRAM_GREEN_SIZE_EXT = 0x8029
 
+pattern GL_HISTOGRAM_LUMINANCE_SIZE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_HISTOGRAM_LUMINANCE_SIZE_EXT = 0x802C
 
+pattern GL_HISTOGRAM_RED_SIZE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_HISTOGRAM_RED_SIZE_EXT = 0x8028
 
+pattern GL_HISTOGRAM_SINK_EXT  :: (Eq a, Num a) => a
+
 pattern GL_HISTOGRAM_SINK_EXT = 0x802D
 
+pattern GL_HISTOGRAM_WIDTH_EXT  :: (Eq a, Num a) => a
+
 pattern GL_HISTOGRAM_WIDTH_EXT = 0x8026
 
+pattern GL_MINMAX_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MINMAX_EXT = 0x802E
 
+pattern GL_MINMAX_FORMAT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MINMAX_FORMAT_EXT = 0x802F
 
+pattern GL_MINMAX_SINK_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MINMAX_SINK_EXT = 0x8030
 
+pattern GL_PROXY_HISTOGRAM_EXT  :: (Eq a, Num a) => a
+
 pattern GL_PROXY_HISTOGRAM_EXT = 0x8025
+
+pattern GL_TABLE_TOO_LARGE_EXT  :: (Eq a, Num a) => a
 
 pattern GL_TABLE_TOO_LARGE_EXT = 0x8031
diff --git a/generated-src/Graphics/GL/Ext/EXT/IndexArrayFormats.hs b/generated-src/Graphics/GL/Ext/EXT/IndexArrayFormats.hs
--- a/generated-src/Graphics/GL/Ext/EXT/IndexArrayFormats.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/IndexArrayFormats.hs
@@ -24,18 +24,34 @@
 gl_EXT_index_array_formats = member "GL_EXT_index_array_formats" extensions
 {-# NOINLINE gl_EXT_index_array_formats #-}
 
+pattern GL_IUI_N3F_V2F_EXT  :: (Eq a, Num a) => a
+
 pattern GL_IUI_N3F_V2F_EXT = 0x81AF
 
+pattern GL_IUI_N3F_V3F_EXT  :: (Eq a, Num a) => a
+
 pattern GL_IUI_N3F_V3F_EXT = 0x81B0
 
+pattern GL_IUI_V2F_EXT  :: (Eq a, Num a) => a
+
 pattern GL_IUI_V2F_EXT = 0x81AD
 
+pattern GL_IUI_V3F_EXT  :: (Eq a, Num a) => a
+
 pattern GL_IUI_V3F_EXT = 0x81AE
 
+pattern GL_T2F_IUI_N3F_V2F_EXT  :: (Eq a, Num a) => a
+
 pattern GL_T2F_IUI_N3F_V2F_EXT = 0x81B3
 
+pattern GL_T2F_IUI_N3F_V3F_EXT  :: (Eq a, Num a) => a
+
 pattern GL_T2F_IUI_N3F_V3F_EXT = 0x81B4
 
+pattern GL_T2F_IUI_V2F_EXT  :: (Eq a, Num a) => a
+
 pattern GL_T2F_IUI_V2F_EXT = 0x81B1
+
+pattern GL_T2F_IUI_V3F_EXT  :: (Eq a, Num a) => a
 
 pattern GL_T2F_IUI_V3F_EXT = 0x81B2
diff --git a/generated-src/Graphics/GL/Ext/EXT/IndexFunc.hs b/generated-src/Graphics/GL/Ext/EXT/IndexFunc.hs
--- a/generated-src/Graphics/GL/Ext/EXT/IndexFunc.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/IndexFunc.hs
@@ -40,8 +40,14 @@
 
 {-# NOINLINE glIndexFuncEXTFunPtr #-}
 
+pattern GL_INDEX_TEST_EXT  :: (Eq a, Num a) => a
+
 pattern GL_INDEX_TEST_EXT = 0x81B5
 
+pattern GL_INDEX_TEST_FUNC_EXT  :: (Eq a, Num a) => a
+
 pattern GL_INDEX_TEST_FUNC_EXT = 0x81B6
+
+pattern GL_INDEX_TEST_REF_EXT  :: (Eq a, Num a) => a
 
 pattern GL_INDEX_TEST_REF_EXT = 0x81B7
diff --git a/generated-src/Graphics/GL/Ext/EXT/IndexMaterial.hs b/generated-src/Graphics/GL/Ext/EXT/IndexMaterial.hs
--- a/generated-src/Graphics/GL/Ext/EXT/IndexMaterial.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/IndexMaterial.hs
@@ -40,8 +40,14 @@
 
 {-# NOINLINE glIndexMaterialEXTFunPtr #-}
 
+pattern GL_INDEX_MATERIAL_EXT  :: (Eq a, Num a) => a
+
 pattern GL_INDEX_MATERIAL_EXT = 0x81B8
 
+pattern GL_INDEX_MATERIAL_FACE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_INDEX_MATERIAL_FACE_EXT = 0x81BA
+
+pattern GL_INDEX_MATERIAL_PARAMETER_EXT  :: (Eq a, Num a) => a
 
 pattern GL_INDEX_MATERIAL_PARAMETER_EXT = 0x81B9
diff --git a/generated-src/Graphics/GL/Ext/EXT/InstancedArrays.hs b/generated-src/Graphics/GL/Ext/EXT/InstancedArrays.hs
--- a/generated-src/Graphics/GL/Ext/EXT/InstancedArrays.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/InstancedArrays.hs
@@ -39,4 +39,6 @@
 
 {-# NOINLINE glVertexAttribDivisorEXTFunPtr #-}
 
+pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR_EXT  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR_EXT = 0x88FE
diff --git a/generated-src/Graphics/GL/Ext/EXT/LightTexture.hs b/generated-src/Graphics/GL/Ext/EXT/LightTexture.hs
--- a/generated-src/Graphics/GL/Ext/EXT/LightTexture.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/LightTexture.hs
@@ -76,20 +76,38 @@
 
 {-# NOINLINE glTextureMaterialEXTFunPtr #-}
 
+pattern GL_ATTENUATION_EXT  :: (Eq a, Num a) => a
+
 pattern GL_ATTENUATION_EXT = 0x834D
 
+pattern GL_FRAGMENT_COLOR_EXT  :: (Eq a, Num a) => a
+
 pattern GL_FRAGMENT_COLOR_EXT = 0x834C
 
+pattern GL_FRAGMENT_MATERIAL_EXT  :: (Eq a, Num a) => a
+
 pattern GL_FRAGMENT_MATERIAL_EXT = 0x8349
 
+pattern GL_FRAGMENT_NORMAL_EXT  :: (Eq a, Num a) => a
+
 pattern GL_FRAGMENT_NORMAL_EXT = 0x834A
 
+pattern GL_SHADOW_ATTENUATION_EXT  :: (Eq a, Num a) => a
+
 pattern GL_SHADOW_ATTENUATION_EXT = 0x834E
 
+pattern GL_TEXTURE_APPLICATION_MODE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_APPLICATION_MODE_EXT = 0x834F
 
+pattern GL_TEXTURE_LIGHT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_LIGHT_EXT = 0x8350
 
+pattern GL_TEXTURE_MATERIAL_FACE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_MATERIAL_FACE_EXT = 0x8351
+
+pattern GL_TEXTURE_MATERIAL_PARAMETER_EXT  :: (Eq a, Num a) => a
 
 pattern GL_TEXTURE_MATERIAL_PARAMETER_EXT = 0x8352
diff --git a/generated-src/Graphics/GL/Ext/EXT/MapBufferRange.hs b/generated-src/Graphics/GL/Ext/EXT/MapBufferRange.hs
--- a/generated-src/Graphics/GL/Ext/EXT/MapBufferRange.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/MapBufferRange.hs
@@ -55,14 +55,26 @@
 
 {-# NOINLINE glMapBufferRangeEXTFunPtr #-}
 
+pattern GL_MAP_FLUSH_EXPLICIT_BIT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAP_FLUSH_EXPLICIT_BIT_EXT = 0x0010
 
+pattern GL_MAP_INVALIDATE_BUFFER_BIT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAP_INVALIDATE_BUFFER_BIT_EXT = 0x0008
 
+pattern GL_MAP_INVALIDATE_RANGE_BIT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAP_INVALIDATE_RANGE_BIT_EXT = 0x0004
 
+pattern GL_MAP_READ_BIT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAP_READ_BIT_EXT = 0x0001
 
+pattern GL_MAP_UNSYNCHRONIZED_BIT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAP_UNSYNCHRONIZED_BIT_EXT = 0x0020
+
+pattern GL_MAP_WRITE_BIT_EXT  :: (Eq a, Num a) => a
 
 pattern GL_MAP_WRITE_BIT_EXT = 0x0002
diff --git a/generated-src/Graphics/GL/Ext/EXT/Multisample.hs b/generated-src/Graphics/GL/Ext/EXT/Multisample.hs
--- a/generated-src/Graphics/GL/Ext/EXT/Multisample.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/Multisample.hs
@@ -69,32 +69,62 @@
 
 {-# NOINLINE glSamplePatternEXTFunPtr #-}
 
+pattern GL_1PASS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_1PASS_EXT = 0x80A1
 
+pattern GL_2PASS_0_EXT  :: (Eq a, Num a) => a
+
 pattern GL_2PASS_0_EXT = 0x80A2
 
+pattern GL_2PASS_1_EXT  :: (Eq a, Num a) => a
+
 pattern GL_2PASS_1_EXT = 0x80A3
 
+pattern GL_4PASS_0_EXT  :: (Eq a, Num a) => a
+
 pattern GL_4PASS_0_EXT = 0x80A4
 
+pattern GL_4PASS_1_EXT  :: (Eq a, Num a) => a
+
 pattern GL_4PASS_1_EXT = 0x80A5
 
+pattern GL_4PASS_2_EXT  :: (Eq a, Num a) => a
+
 pattern GL_4PASS_2_EXT = 0x80A6
 
+pattern GL_4PASS_3_EXT  :: (Eq a, Num a) => a
+
 pattern GL_4PASS_3_EXT = 0x80A7
 
+pattern GL_MULTISAMPLE_BIT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MULTISAMPLE_BIT_EXT = 0x20000000
 
+pattern GL_SAMPLES_EXT  :: (Eq a, Num a) => a
+
 pattern GL_SAMPLES_EXT = 0x80A9
 
+pattern GL_SAMPLE_ALPHA_TO_MASK_EXT  :: (Eq a, Num a) => a
+
 pattern GL_SAMPLE_ALPHA_TO_MASK_EXT = 0x809E
 
+pattern GL_SAMPLE_BUFFERS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_SAMPLE_BUFFERS_EXT = 0x80A8
 
+pattern GL_SAMPLE_MASK_EXT  :: (Eq a, Num a) => a
+
 pattern GL_SAMPLE_MASK_EXT = 0x80A0
 
+pattern GL_SAMPLE_MASK_INVERT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_SAMPLE_MASK_INVERT_EXT = 0x80AB
 
+pattern GL_SAMPLE_MASK_VALUE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_SAMPLE_MASK_VALUE_EXT = 0x80AA
+
+pattern GL_SAMPLE_PATTERN_EXT  :: (Eq a, Num a) => a
 
 pattern GL_SAMPLE_PATTERN_EXT = 0x80AC
diff --git a/generated-src/Graphics/GL/Ext/EXT/MultisampledRenderToTexture.hs b/generated-src/Graphics/GL/Ext/EXT/MultisampledRenderToTexture.hs
--- a/generated-src/Graphics/GL/Ext/EXT/MultisampledRenderToTexture.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/MultisampledRenderToTexture.hs
@@ -39,4 +39,6 @@
 
 {-# NOINLINE glFramebufferTexture2DMultisampleEXTFunPtr #-}
 
+pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT  :: (Eq a, Num a) => a
+
 pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT = 0x8D6C
diff --git a/generated-src/Graphics/GL/Ext/EXT/MultiviewDrawBuffers.hs b/generated-src/Graphics/GL/Ext/EXT/MultiviewDrawBuffers.hs
--- a/generated-src/Graphics/GL/Ext/EXT/MultiviewDrawBuffers.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/MultiviewDrawBuffers.hs
@@ -66,12 +66,22 @@
 
 {-# NOINLINE glReadBufferIndexedEXTFunPtr #-}
 
+pattern GL_COLOR_ATTACHMENT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_COLOR_ATTACHMENT_EXT = 0x90F0
 
+pattern GL_DRAW_BUFFER_EXT  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER_EXT = 0x0C01
 
+pattern GL_MAX_MULTIVIEW_BUFFERS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_MULTIVIEW_BUFFERS_EXT = 0x90F2
 
+pattern GL_MULTIVIEW_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MULTIVIEW_EXT = 0x90F1
+
+pattern GL_READ_BUFFER_EXT  :: (Eq a, Num a) => a
 
 pattern GL_READ_BUFFER_EXT = 0x0C02
diff --git a/generated-src/Graphics/GL/Ext/EXT/OcclusionQueryBoolean.hs b/generated-src/Graphics/GL/Ext/EXT/OcclusionQueryBoolean.hs
--- a/generated-src/Graphics/GL/Ext/EXT/OcclusionQueryBoolean.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/OcclusionQueryBoolean.hs
@@ -29,6 +29,10 @@
 gl_EXT_occlusion_query_boolean = member "GL_EXT_occlusion_query_boolean" extensions
 {-# NOINLINE gl_EXT_occlusion_query_boolean #-}
 
+pattern GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT = 0x8D6A
+
+pattern GL_ANY_SAMPLES_PASSED_EXT  :: (Eq a, Num a) => a
 
 pattern GL_ANY_SAMPLES_PASSED_EXT = 0x8C2F
diff --git a/generated-src/Graphics/GL/Ext/EXT/PackedDepthStencil.hs b/generated-src/Graphics/GL/Ext/EXT/PackedDepthStencil.hs
--- a/generated-src/Graphics/GL/Ext/EXT/PackedDepthStencil.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/PackedDepthStencil.hs
@@ -20,10 +20,18 @@
 gl_EXT_packed_depth_stencil = member "GL_EXT_packed_depth_stencil" extensions
 {-# NOINLINE gl_EXT_packed_depth_stencil #-}
 
+pattern GL_DEPTH24_STENCIL8_EXT  :: (Eq a, Num a) => a
+
 pattern GL_DEPTH24_STENCIL8_EXT = 0x88F0
 
+pattern GL_DEPTH_STENCIL_EXT  :: (Eq a, Num a) => a
+
 pattern GL_DEPTH_STENCIL_EXT = 0x84F9
 
+pattern GL_TEXTURE_STENCIL_SIZE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_STENCIL_SIZE_EXT = 0x88F1
+
+pattern GL_UNSIGNED_INT_24_8_EXT  :: (Eq a, Num a) => a
 
 pattern GL_UNSIGNED_INT_24_8_EXT = 0x84FA
diff --git a/generated-src/Graphics/GL/Ext/EXT/PackedFloat.hs b/generated-src/Graphics/GL/Ext/EXT/PackedFloat.hs
--- a/generated-src/Graphics/GL/Ext/EXT/PackedFloat.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/PackedFloat.hs
@@ -19,8 +19,14 @@
 gl_EXT_packed_float = member "GL_EXT_packed_float" extensions
 {-# NOINLINE gl_EXT_packed_float #-}
 
+pattern GL_R11F_G11F_B10F_EXT  :: (Eq a, Num a) => a
+
 pattern GL_R11F_G11F_B10F_EXT = 0x8C3A
 
+pattern GL_RGBA_SIGNED_COMPONENTS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_RGBA_SIGNED_COMPONENTS_EXT = 0x8C3C
+
+pattern GL_UNSIGNED_INT_10F_11F_11F_REV_EXT  :: (Eq a, Num a) => a
 
 pattern GL_UNSIGNED_INT_10F_11F_11F_REV_EXT = 0x8C3B
diff --git a/generated-src/Graphics/GL/Ext/EXT/PackedPixels.hs b/generated-src/Graphics/GL/Ext/EXT/PackedPixels.hs
--- a/generated-src/Graphics/GL/Ext/EXT/PackedPixels.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/PackedPixels.hs
@@ -21,12 +21,22 @@
 gl_EXT_packed_pixels = member "GL_EXT_packed_pixels" extensions
 {-# NOINLINE gl_EXT_packed_pixels #-}
 
+pattern GL_UNSIGNED_BYTE_3_3_2_EXT  :: (Eq a, Num a) => a
+
 pattern GL_UNSIGNED_BYTE_3_3_2_EXT = 0x8032
 
+pattern GL_UNSIGNED_INT_10_10_10_2_EXT  :: (Eq a, Num a) => a
+
 pattern GL_UNSIGNED_INT_10_10_10_2_EXT = 0x8036
 
+pattern GL_UNSIGNED_INT_8_8_8_8_EXT  :: (Eq a, Num a) => a
+
 pattern GL_UNSIGNED_INT_8_8_8_8_EXT = 0x8035
 
+pattern GL_UNSIGNED_SHORT_4_4_4_4_EXT  :: (Eq a, Num a) => a
+
 pattern GL_UNSIGNED_SHORT_4_4_4_4_EXT = 0x8033
+
+pattern GL_UNSIGNED_SHORT_5_5_5_1_EXT  :: (Eq a, Num a) => a
 
 pattern GL_UNSIGNED_SHORT_5_5_5_1_EXT = 0x8034
diff --git a/generated-src/Graphics/GL/Ext/EXT/PalettedTexture.hs b/generated-src/Graphics/GL/Ext/EXT/PalettedTexture.hs
--- a/generated-src/Graphics/GL/Ext/EXT/PalettedTexture.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/PalettedTexture.hs
@@ -114,16 +114,30 @@
 
 {-# NOINLINE glGetColorTableParameterivEXTFunPtr #-}
 
+pattern GL_COLOR_INDEX12_EXT  :: (Eq a, Num a) => a
+
 pattern GL_COLOR_INDEX12_EXT = 0x80E6
 
+pattern GL_COLOR_INDEX16_EXT  :: (Eq a, Num a) => a
+
 pattern GL_COLOR_INDEX16_EXT = 0x80E7
 
+pattern GL_COLOR_INDEX1_EXT  :: (Eq a, Num a) => a
+
 pattern GL_COLOR_INDEX1_EXT = 0x80E2
 
+pattern GL_COLOR_INDEX2_EXT  :: (Eq a, Num a) => a
+
 pattern GL_COLOR_INDEX2_EXT = 0x80E3
 
+pattern GL_COLOR_INDEX4_EXT  :: (Eq a, Num a) => a
+
 pattern GL_COLOR_INDEX4_EXT = 0x80E4
 
+pattern GL_COLOR_INDEX8_EXT  :: (Eq a, Num a) => a
+
 pattern GL_COLOR_INDEX8_EXT = 0x80E5
+
+pattern GL_TEXTURE_INDEX_SIZE_EXT  :: (Eq a, Num a) => a
 
 pattern GL_TEXTURE_INDEX_SIZE_EXT = 0x80ED
diff --git a/generated-src/Graphics/GL/Ext/EXT/PixelBufferObject.hs b/generated-src/Graphics/GL/Ext/EXT/PixelBufferObject.hs
--- a/generated-src/Graphics/GL/Ext/EXT/PixelBufferObject.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/PixelBufferObject.hs
@@ -20,10 +20,18 @@
 gl_EXT_pixel_buffer_object = member "GL_EXT_pixel_buffer_object" extensions
 {-# NOINLINE gl_EXT_pixel_buffer_object #-}
 
+pattern GL_PIXEL_PACK_BUFFER_BINDING_EXT  :: (Eq a, Num a) => a
+
 pattern GL_PIXEL_PACK_BUFFER_BINDING_EXT = 0x88ED
 
+pattern GL_PIXEL_PACK_BUFFER_EXT  :: (Eq a, Num a) => a
+
 pattern GL_PIXEL_PACK_BUFFER_EXT = 0x88EB
 
+pattern GL_PIXEL_UNPACK_BUFFER_BINDING_EXT  :: (Eq a, Num a) => a
+
 pattern GL_PIXEL_UNPACK_BUFFER_BINDING_EXT = 0x88EF
+
+pattern GL_PIXEL_UNPACK_BUFFER_EXT  :: (Eq a, Num a) => a
 
 pattern GL_PIXEL_UNPACK_BUFFER_EXT = 0x88EC
diff --git a/generated-src/Graphics/GL/Ext/EXT/PixelTransform.hs b/generated-src/Graphics/GL/Ext/EXT/PixelTransform.hs
--- a/generated-src/Graphics/GL/Ext/EXT/PixelTransform.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/PixelTransform.hs
@@ -126,20 +126,38 @@
 
 {-# NOINLINE glPixelTransformParameterivEXTFunPtr #-}
 
+pattern GL_AVERAGE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_AVERAGE_EXT = 0x8335
 
+pattern GL_CUBIC_EXT  :: (Eq a, Num a) => a
+
 pattern GL_CUBIC_EXT = 0x8334
 
+pattern GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT = 0x8337
 
+pattern GL_PIXEL_CUBIC_WEIGHT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_PIXEL_CUBIC_WEIGHT_EXT = 0x8333
 
+pattern GL_PIXEL_MAG_FILTER_EXT  :: (Eq a, Num a) => a
+
 pattern GL_PIXEL_MAG_FILTER_EXT = 0x8331
 
+pattern GL_PIXEL_MIN_FILTER_EXT  :: (Eq a, Num a) => a
+
 pattern GL_PIXEL_MIN_FILTER_EXT = 0x8332
 
+pattern GL_PIXEL_TRANSFORM_2D_EXT  :: (Eq a, Num a) => a
+
 pattern GL_PIXEL_TRANSFORM_2D_EXT = 0x8330
 
+pattern GL_PIXEL_TRANSFORM_2D_MATRIX_EXT  :: (Eq a, Num a) => a
+
 pattern GL_PIXEL_TRANSFORM_2D_MATRIX_EXT = 0x8338
+
+pattern GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT  :: (Eq a, Num a) => a
 
 pattern GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT = 0x8336
diff --git a/generated-src/Graphics/GL/Ext/EXT/PointParameters.hs b/generated-src/Graphics/GL/Ext/EXT/PointParameters.hs
--- a/generated-src/Graphics/GL/Ext/EXT/PointParameters.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/PointParameters.hs
@@ -63,10 +63,18 @@
 
 {-# NOINLINE glPointParameterfvEXTFunPtr #-}
 
+pattern GL_DISTANCE_ATTENUATION_EXT  :: (Eq a, Num a) => a
+
 pattern GL_DISTANCE_ATTENUATION_EXT = 0x8129
 
+pattern GL_POINT_FADE_THRESHOLD_SIZE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_POINT_FADE_THRESHOLD_SIZE_EXT = 0x8128
 
+pattern GL_POINT_SIZE_MAX_EXT  :: (Eq a, Num a) => a
+
 pattern GL_POINT_SIZE_MAX_EXT = 0x8127
+
+pattern GL_POINT_SIZE_MIN_EXT  :: (Eq a, Num a) => a
 
 pattern GL_POINT_SIZE_MIN_EXT = 0x8126
diff --git a/generated-src/Graphics/GL/Ext/EXT/PolygonOffset.hs b/generated-src/Graphics/GL/Ext/EXT/PolygonOffset.hs
--- a/generated-src/Graphics/GL/Ext/EXT/PolygonOffset.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/PolygonOffset.hs
@@ -36,8 +36,14 @@
 
 {-# NOINLINE glPolygonOffsetEXTFunPtr #-}
 
+pattern GL_POLYGON_OFFSET_BIAS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_POLYGON_OFFSET_BIAS_EXT = 0x8039
 
+pattern GL_POLYGON_OFFSET_EXT  :: (Eq a, Num a) => a
+
 pattern GL_POLYGON_OFFSET_EXT = 0x8037
+
+pattern GL_POLYGON_OFFSET_FACTOR_EXT  :: (Eq a, Num a) => a
 
 pattern GL_POLYGON_OFFSET_FACTOR_EXT = 0x8038
diff --git a/generated-src/Graphics/GL/Ext/EXT/PolygonOffsetClamp.hs b/generated-src/Graphics/GL/Ext/EXT/PolygonOffsetClamp.hs
--- a/generated-src/Graphics/GL/Ext/EXT/PolygonOffsetClamp.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/PolygonOffsetClamp.hs
@@ -34,4 +34,6 @@
 
 {-# NOINLINE glPolygonOffsetClampEXTFunPtr #-}
 
+pattern GL_POLYGON_OFFSET_CLAMP_EXT  :: (Eq a, Num a) => a
+
 pattern GL_POLYGON_OFFSET_CLAMP_EXT = 0x8E1B
diff --git a/generated-src/Graphics/GL/Ext/EXT/PrimitiveBoundingBox.hs b/generated-src/Graphics/GL/Ext/EXT/PrimitiveBoundingBox.hs
--- a/generated-src/Graphics/GL/Ext/EXT/PrimitiveBoundingBox.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/PrimitiveBoundingBox.hs
@@ -36,4 +36,6 @@
 
 {-# NOINLINE glPrimitiveBoundingBoxEXTFunPtr #-}
 
+pattern GL_PRIMITIVE_BOUNDING_BOX_EXT  :: (Eq a, Num a) => a
+
 pattern GL_PRIMITIVE_BOUNDING_BOX_EXT = 0x92BE
diff --git a/generated-src/Graphics/GL/Ext/EXT/ProtectedTextures.hs b/generated-src/Graphics/GL/Ext/EXT/ProtectedTextures.hs
--- a/generated-src/Graphics/GL/Ext/EXT/ProtectedTextures.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/ProtectedTextures.hs
@@ -18,6 +18,10 @@
 gl_EXT_protected_textures = member "GL_EXT_protected_textures" extensions
 {-# NOINLINE gl_EXT_protected_textures #-}
 
+pattern GL_CONTEXT_FLAG_PROTECTED_CONTENT_BIT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_CONTEXT_FLAG_PROTECTED_CONTENT_BIT_EXT = 0x00000010
+
+pattern GL_TEXTURE_PROTECTED_EXT  :: (Eq a, Num a) => a
 
 pattern GL_TEXTURE_PROTECTED_EXT = 0x8BFA
diff --git a/generated-src/Graphics/GL/Ext/EXT/ProvokingVertex.hs b/generated-src/Graphics/GL/Ext/EXT/ProvokingVertex.hs
--- a/generated-src/Graphics/GL/Ext/EXT/ProvokingVertex.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/ProvokingVertex.hs
@@ -40,6 +40,10 @@
 
 {-# NOINLINE glProvokingVertexEXTFunPtr #-}
 
+pattern GL_PROVOKING_VERTEX_EXT  :: (Eq a, Num a) => a
+
 pattern GL_PROVOKING_VERTEX_EXT = 0x8E4F
+
+pattern GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT  :: (Eq a, Num a) => a
 
 pattern GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT = 0x8E4C
diff --git a/generated-src/Graphics/GL/Ext/EXT/PvrtcSRGB.hs b/generated-src/Graphics/GL/Ext/EXT/PvrtcSRGB.hs
--- a/generated-src/Graphics/GL/Ext/EXT/PvrtcSRGB.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/PvrtcSRGB.hs
@@ -22,14 +22,26 @@
 gl_EXT_pvrtc_sRGB = member "GL_EXT_pvrtc_sRGB" extensions
 {-# NOINLINE gl_EXT_pvrtc_sRGB #-}
 
+pattern GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT = 0x8A56
 
+pattern GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV2_IMG  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV2_IMG = 0x93F0
 
+pattern GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT = 0x8A57
 
+pattern GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV2_IMG  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV2_IMG = 0x93F1
 
+pattern GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT = 0x8A54
+
+pattern GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT  :: (Eq a, Num a) => a
 
 pattern GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT = 0x8A55
diff --git a/generated-src/Graphics/GL/Ext/EXT/ReadFormatBgra.hs b/generated-src/Graphics/GL/Ext/EXT/ReadFormatBgra.hs
--- a/generated-src/Graphics/GL/Ext/EXT/ReadFormatBgra.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/ReadFormatBgra.hs
@@ -20,6 +20,10 @@
 gl_EXT_read_format_bgra = member "GL_EXT_read_format_bgra" extensions
 {-# NOINLINE gl_EXT_read_format_bgra #-}
 
+pattern GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT  :: (Eq a, Num a) => a
+
 pattern GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT = 0x8366
+
+pattern GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT  :: (Eq a, Num a) => a
 
 pattern GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT = 0x8365
diff --git a/generated-src/Graphics/GL/Ext/EXT/RescaleNormal.hs b/generated-src/Graphics/GL/Ext/EXT/RescaleNormal.hs
--- a/generated-src/Graphics/GL/Ext/EXT/RescaleNormal.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/RescaleNormal.hs
@@ -17,4 +17,6 @@
 gl_EXT_rescale_normal = member "GL_EXT_rescale_normal" extensions
 {-# NOINLINE gl_EXT_rescale_normal #-}
 
+pattern GL_RESCALE_NORMAL_EXT  :: (Eq a, Num a) => a
+
 pattern GL_RESCALE_NORMAL_EXT = 0x803A
diff --git a/generated-src/Graphics/GL/Ext/EXT/Robustness.hs b/generated-src/Graphics/GL/Ext/EXT/Robustness.hs
--- a/generated-src/Graphics/GL/Ext/EXT/Robustness.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/Robustness.hs
@@ -86,16 +86,30 @@
 
 {-# NOINLINE glReadnPixelsEXTFunPtr #-}
 
+pattern GL_CONTEXT_ROBUST_ACCESS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_CONTEXT_ROBUST_ACCESS_EXT = 0x90F3
 
+pattern GL_GUILTY_CONTEXT_RESET_EXT  :: (Eq a, Num a) => a
+
 pattern GL_GUILTY_CONTEXT_RESET_EXT = 0x8253
 
+pattern GL_INNOCENT_CONTEXT_RESET_EXT  :: (Eq a, Num a) => a
+
 pattern GL_INNOCENT_CONTEXT_RESET_EXT = 0x8254
 
+pattern GL_LOSE_CONTEXT_ON_RESET_EXT  :: (Eq a, Num a) => a
+
 pattern GL_LOSE_CONTEXT_ON_RESET_EXT = 0x8252
 
+pattern GL_NO_RESET_NOTIFICATION_EXT  :: (Eq a, Num a) => a
+
 pattern GL_NO_RESET_NOTIFICATION_EXT = 0x8261
 
+pattern GL_RESET_NOTIFICATION_STRATEGY_EXT  :: (Eq a, Num a) => a
+
 pattern GL_RESET_NOTIFICATION_STRATEGY_EXT = 0x8256
+
+pattern GL_UNKNOWN_CONTEXT_RESET_EXT  :: (Eq a, Num a) => a
 
 pattern GL_UNKNOWN_CONTEXT_RESET_EXT = 0x8255
diff --git a/generated-src/Graphics/GL/Ext/EXT/SRGB.hs b/generated-src/Graphics/GL/Ext/EXT/SRGB.hs
--- a/generated-src/Graphics/GL/Ext/EXT/SRGB.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/SRGB.hs
@@ -21,4 +21,6 @@
 gl_EXT_sRGB = member "GL_EXT_sRGB" extensions
 {-# NOINLINE gl_EXT_sRGB #-}
 
+pattern GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT  :: (Eq a, Num a) => a
+
 pattern GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT = 0x8210
diff --git a/generated-src/Graphics/GL/Ext/EXT/SecondaryColor.hs b/generated-src/Graphics/GL/Ext/EXT/SecondaryColor.hs
--- a/generated-src/Graphics/GL/Ext/EXT/SecondaryColor.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/SecondaryColor.hs
@@ -366,16 +366,30 @@
 
 {-# NOINLINE glSecondaryColorPointerEXTFunPtr #-}
 
+pattern GL_COLOR_SUM_EXT  :: (Eq a, Num a) => a
+
 pattern GL_COLOR_SUM_EXT = 0x8458
 
+pattern GL_CURRENT_SECONDARY_COLOR_EXT  :: (Eq a, Num a) => a
+
 pattern GL_CURRENT_SECONDARY_COLOR_EXT = 0x8459
 
+pattern GL_SECONDARY_COLOR_ARRAY_EXT  :: (Eq a, Num a) => a
+
 pattern GL_SECONDARY_COLOR_ARRAY_EXT = 0x845E
 
+pattern GL_SECONDARY_COLOR_ARRAY_POINTER_EXT  :: (Eq a, Num a) => a
+
 pattern GL_SECONDARY_COLOR_ARRAY_POINTER_EXT = 0x845D
 
+pattern GL_SECONDARY_COLOR_ARRAY_SIZE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_SECONDARY_COLOR_ARRAY_SIZE_EXT = 0x845A
 
+pattern GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT = 0x845C
+
+pattern GL_SECONDARY_COLOR_ARRAY_TYPE_EXT  :: (Eq a, Num a) => a
 
 pattern GL_SECONDARY_COLOR_ARRAY_TYPE_EXT = 0x845B
diff --git a/generated-src/Graphics/GL/Ext/EXT/SeparateShaderObjects.hs b/generated-src/Graphics/GL/Ext/EXT/SeparateShaderObjects.hs
--- a/generated-src/Graphics/GL/Ext/EXT/SeparateShaderObjects.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/SeparateShaderObjects.hs
@@ -228,14 +228,26 @@
 
 {-# NOINLINE glValidateProgramPipelineEXTFunPtr #-}
 
+pattern GL_ACTIVE_PROGRAM_EXT  :: (Eq a, Num a) => a
+
 pattern GL_ACTIVE_PROGRAM_EXT = 0x8B8D
 
+pattern GL_ALL_SHADER_BITS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_ALL_SHADER_BITS_EXT = 0xFFFFFFFF
 
+pattern GL_FRAGMENT_SHADER_BIT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_FRAGMENT_SHADER_BIT_EXT = 0x00000002
 
+pattern GL_PROGRAM_PIPELINE_BINDING_EXT  :: (Eq a, Num a) => a
+
 pattern GL_PROGRAM_PIPELINE_BINDING_EXT = 0x825A
 
+pattern GL_PROGRAM_SEPARABLE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_PROGRAM_SEPARABLE_EXT = 0x8258
+
+pattern GL_VERTEX_SHADER_BIT_EXT  :: (Eq a, Num a) => a
 
 pattern GL_VERTEX_SHADER_BIT_EXT = 0x00000001
diff --git a/generated-src/Graphics/GL/Ext/EXT/SeparateSpecularColor.hs b/generated-src/Graphics/GL/Ext/EXT/SeparateSpecularColor.hs
--- a/generated-src/Graphics/GL/Ext/EXT/SeparateSpecularColor.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/SeparateSpecularColor.hs
@@ -19,8 +19,14 @@
 gl_EXT_separate_specular_color = member "GL_EXT_separate_specular_color" extensions
 {-# NOINLINE gl_EXT_separate_specular_color #-}
 
+pattern GL_LIGHT_MODEL_COLOR_CONTROL_EXT  :: (Eq a, Num a) => a
+
 pattern GL_LIGHT_MODEL_COLOR_CONTROL_EXT = 0x81F8
 
+pattern GL_SEPARATE_SPECULAR_COLOR_EXT  :: (Eq a, Num a) => a
+
 pattern GL_SEPARATE_SPECULAR_COLOR_EXT = 0x81FA
+
+pattern GL_SINGLE_COLOR_EXT  :: (Eq a, Num a) => a
 
 pattern GL_SINGLE_COLOR_EXT = 0x81F9
diff --git a/generated-src/Graphics/GL/Ext/EXT/ShaderFramebufferFetch.hs b/generated-src/Graphics/GL/Ext/EXT/ShaderFramebufferFetch.hs
--- a/generated-src/Graphics/GL/Ext/EXT/ShaderFramebufferFetch.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/ShaderFramebufferFetch.hs
@@ -17,4 +17,6 @@
 gl_EXT_shader_framebuffer_fetch = member "GL_EXT_shader_framebuffer_fetch" extensions
 {-# NOINLINE gl_EXT_shader_framebuffer_fetch #-}
 
+pattern GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT  :: (Eq a, Num a) => a
+
 pattern GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT = 0x8A52
diff --git a/generated-src/Graphics/GL/Ext/EXT/ShaderImageLoadStore.hs b/generated-src/Graphics/GL/Ext/EXT/ShaderImageLoadStore.hs
--- a/generated-src/Graphics/GL/Ext/EXT/ShaderImageLoadStore.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/ShaderImageLoadStore.hs
@@ -105,100 +105,198 @@
 
 {-# NOINLINE glMemoryBarrierEXTFunPtr #-}
 
+pattern GL_ALL_BARRIER_BITS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_ALL_BARRIER_BITS_EXT = 0xFFFFFFFF
 
+pattern GL_ATOMIC_COUNTER_BARRIER_BIT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_ATOMIC_COUNTER_BARRIER_BIT_EXT = 0x00001000
 
+pattern GL_BUFFER_UPDATE_BARRIER_BIT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_BUFFER_UPDATE_BARRIER_BIT_EXT = 0x00000200
 
+pattern GL_COMMAND_BARRIER_BIT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_COMMAND_BARRIER_BIT_EXT = 0x00000040
 
+pattern GL_ELEMENT_ARRAY_BARRIER_BIT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_ELEMENT_ARRAY_BARRIER_BIT_EXT = 0x00000002
 
+pattern GL_FRAMEBUFFER_BARRIER_BIT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_FRAMEBUFFER_BARRIER_BIT_EXT = 0x00000400
 
+pattern GL_IMAGE_1D_ARRAY_EXT  :: (Eq a, Num a) => a
+
 pattern GL_IMAGE_1D_ARRAY_EXT = 0x9052
 
+pattern GL_IMAGE_1D_EXT  :: (Eq a, Num a) => a
+
 pattern GL_IMAGE_1D_EXT = 0x904C
 
+pattern GL_IMAGE_2D_ARRAY_EXT  :: (Eq a, Num a) => a
+
 pattern GL_IMAGE_2D_ARRAY_EXT = 0x9053
 
+pattern GL_IMAGE_2D_EXT  :: (Eq a, Num a) => a
+
 pattern GL_IMAGE_2D_EXT = 0x904D
 
+pattern GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXT  :: (Eq a, Num a) => a
+
 pattern GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXT = 0x9056
 
+pattern GL_IMAGE_2D_MULTISAMPLE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_IMAGE_2D_MULTISAMPLE_EXT = 0x9055
 
+pattern GL_IMAGE_2D_RECT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_IMAGE_2D_RECT_EXT = 0x904F
 
+pattern GL_IMAGE_3D_EXT  :: (Eq a, Num a) => a
+
 pattern GL_IMAGE_3D_EXT = 0x904E
 
+pattern GL_IMAGE_BINDING_ACCESS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_IMAGE_BINDING_ACCESS_EXT = 0x8F3E
 
+pattern GL_IMAGE_BINDING_FORMAT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_IMAGE_BINDING_FORMAT_EXT = 0x906E
 
+pattern GL_IMAGE_BINDING_LAYERED_EXT  :: (Eq a, Num a) => a
+
 pattern GL_IMAGE_BINDING_LAYERED_EXT = 0x8F3C
 
+pattern GL_IMAGE_BINDING_LAYER_EXT  :: (Eq a, Num a) => a
+
 pattern GL_IMAGE_BINDING_LAYER_EXT = 0x8F3D
 
+pattern GL_IMAGE_BINDING_LEVEL_EXT  :: (Eq a, Num a) => a
+
 pattern GL_IMAGE_BINDING_LEVEL_EXT = 0x8F3B
 
+pattern GL_IMAGE_BINDING_NAME_EXT  :: (Eq a, Num a) => a
+
 pattern GL_IMAGE_BINDING_NAME_EXT = 0x8F3A
 
+pattern GL_IMAGE_CUBE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_IMAGE_CUBE_EXT = 0x9050
 
+pattern GL_INT_IMAGE_1D_ARRAY_EXT  :: (Eq a, Num a) => a
+
 pattern GL_INT_IMAGE_1D_ARRAY_EXT = 0x905D
 
+pattern GL_INT_IMAGE_1D_EXT  :: (Eq a, Num a) => a
+
 pattern GL_INT_IMAGE_1D_EXT = 0x9057
 
+pattern GL_INT_IMAGE_2D_ARRAY_EXT  :: (Eq a, Num a) => a
+
 pattern GL_INT_IMAGE_2D_ARRAY_EXT = 0x905E
 
+pattern GL_INT_IMAGE_2D_EXT  :: (Eq a, Num a) => a
+
 pattern GL_INT_IMAGE_2D_EXT = 0x9058
 
+pattern GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT  :: (Eq a, Num a) => a
+
 pattern GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT = 0x9061
 
+pattern GL_INT_IMAGE_2D_MULTISAMPLE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_INT_IMAGE_2D_MULTISAMPLE_EXT = 0x9060
 
+pattern GL_INT_IMAGE_2D_RECT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_INT_IMAGE_2D_RECT_EXT = 0x905A
 
+pattern GL_INT_IMAGE_3D_EXT  :: (Eq a, Num a) => a
+
 pattern GL_INT_IMAGE_3D_EXT = 0x9059
 
+pattern GL_INT_IMAGE_CUBE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_INT_IMAGE_CUBE_EXT = 0x905B
 
+pattern GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT = 0x8F39
 
+pattern GL_MAX_IMAGE_SAMPLES_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_IMAGE_SAMPLES_EXT = 0x906D
 
+pattern GL_MAX_IMAGE_UNITS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_IMAGE_UNITS_EXT = 0x8F38
 
+pattern GL_PIXEL_BUFFER_BARRIER_BIT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_PIXEL_BUFFER_BARRIER_BIT_EXT = 0x00000080
 
+pattern GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT = 0x00000020
 
+pattern GL_TEXTURE_FETCH_BARRIER_BIT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_FETCH_BARRIER_BIT_EXT = 0x00000008
 
+pattern GL_TEXTURE_UPDATE_BARRIER_BIT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_UPDATE_BARRIER_BIT_EXT = 0x00000100
 
+pattern GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT = 0x00000800
 
+pattern GL_UNIFORM_BARRIER_BIT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_UNIFORM_BARRIER_BIT_EXT = 0x00000004
 
+pattern GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT  :: (Eq a, Num a) => a
+
 pattern GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT = 0x9068
 
+pattern GL_UNSIGNED_INT_IMAGE_1D_EXT  :: (Eq a, Num a) => a
+
 pattern GL_UNSIGNED_INT_IMAGE_1D_EXT = 0x9062
 
+pattern GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT  :: (Eq a, Num a) => a
+
 pattern GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT = 0x9069
 
+pattern GL_UNSIGNED_INT_IMAGE_2D_EXT  :: (Eq a, Num a) => a
+
 pattern GL_UNSIGNED_INT_IMAGE_2D_EXT = 0x9063
 
+pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT  :: (Eq a, Num a) => a
+
 pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT = 0x906C
 
+pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT = 0x906B
 
+pattern GL_UNSIGNED_INT_IMAGE_2D_RECT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_UNSIGNED_INT_IMAGE_2D_RECT_EXT = 0x9065
 
+pattern GL_UNSIGNED_INT_IMAGE_3D_EXT  :: (Eq a, Num a) => a
+
 pattern GL_UNSIGNED_INT_IMAGE_3D_EXT = 0x9064
 
+pattern GL_UNSIGNED_INT_IMAGE_CUBE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_UNSIGNED_INT_IMAGE_CUBE_EXT = 0x9066
+
+pattern GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT  :: (Eq a, Num a) => a
 
 pattern GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT = 0x00000001
diff --git a/generated-src/Graphics/GL/Ext/EXT/ShaderPixelLocalStorage.hs b/generated-src/Graphics/GL/Ext/EXT/ShaderPixelLocalStorage.hs
--- a/generated-src/Graphics/GL/Ext/EXT/ShaderPixelLocalStorage.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/ShaderPixelLocalStorage.hs
@@ -19,8 +19,14 @@
 gl_EXT_shader_pixel_local_storage = member "GL_EXT_shader_pixel_local_storage" extensions
 {-# NOINLINE gl_EXT_shader_pixel_local_storage #-}
 
+pattern GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_FAST_SIZE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_FAST_SIZE_EXT = 0x8F63
 
+pattern GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_SIZE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_SIZE_EXT = 0x8F67
+
+pattern GL_SHADER_PIXEL_LOCAL_STORAGE_EXT  :: (Eq a, Num a) => a
 
 pattern GL_SHADER_PIXEL_LOCAL_STORAGE_EXT = 0x8F64
diff --git a/generated-src/Graphics/GL/Ext/EXT/ShaderPixelLocalStorage2.hs b/generated-src/Graphics/GL/Ext/EXT/ShaderPixelLocalStorage2.hs
--- a/generated-src/Graphics/GL/Ext/EXT/ShaderPixelLocalStorage2.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/ShaderPixelLocalStorage2.hs
@@ -60,8 +60,14 @@
 
 {-# NOINLINE glGetFramebufferPixelLocalStorageSizeEXTFunPtr #-}
 
+pattern GL_FRAMEBUFFER_INCOMPLETE_INSUFFICIENT_SHADER_COMBINED_LOCAL_STORAGE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_FRAMEBUFFER_INCOMPLETE_INSUFFICIENT_SHADER_COMBINED_LOCAL_STORAGE_EXT = 0x9652
 
+pattern GL_MAX_SHADER_COMBINED_LOCAL_STORAGE_FAST_SIZE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_SHADER_COMBINED_LOCAL_STORAGE_FAST_SIZE_EXT = 0x9650
+
+pattern GL_MAX_SHADER_COMBINED_LOCAL_STORAGE_SIZE_EXT  :: (Eq a, Num a) => a
 
 pattern GL_MAX_SHADER_COMBINED_LOCAL_STORAGE_SIZE_EXT = 0x9651
diff --git a/generated-src/Graphics/GL/Ext/EXT/ShadowSamplers.hs b/generated-src/Graphics/GL/Ext/EXT/ShadowSamplers.hs
--- a/generated-src/Graphics/GL/Ext/EXT/ShadowSamplers.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/ShadowSamplers.hs
@@ -20,10 +20,18 @@
 gl_EXT_shadow_samplers = member "GL_EXT_shadow_samplers" extensions
 {-# NOINLINE gl_EXT_shadow_samplers #-}
 
+pattern GL_COMPARE_REF_TO_TEXTURE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_COMPARE_REF_TO_TEXTURE_EXT = 0x884E
 
+pattern GL_SAMPLER_2D_SHADOW_EXT  :: (Eq a, Num a) => a
+
 pattern GL_SAMPLER_2D_SHADOW_EXT = 0x8B62
 
+pattern GL_TEXTURE_COMPARE_FUNC_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_COMPARE_FUNC_EXT = 0x884D
+
+pattern GL_TEXTURE_COMPARE_MODE_EXT  :: (Eq a, Num a) => a
 
 pattern GL_TEXTURE_COMPARE_MODE_EXT = 0x884C
diff --git a/generated-src/Graphics/GL/Ext/EXT/SharedTexturePalette.hs b/generated-src/Graphics/GL/Ext/EXT/SharedTexturePalette.hs
--- a/generated-src/Graphics/GL/Ext/EXT/SharedTexturePalette.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/SharedTexturePalette.hs
@@ -17,4 +17,6 @@
 gl_EXT_shared_texture_palette = member "GL_EXT_shared_texture_palette" extensions
 {-# NOINLINE gl_EXT_shared_texture_palette #-}
 
+pattern GL_SHARED_TEXTURE_PALETTE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_SHARED_TEXTURE_PALETTE_EXT = 0x81FB
diff --git a/generated-src/Graphics/GL/Ext/EXT/SparseTexture.hs b/generated-src/Graphics/GL/Ext/EXT/SparseTexture.hs
--- a/generated-src/Graphics/GL/Ext/EXT/SparseTexture.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/SparseTexture.hs
@@ -52,24 +52,46 @@
 
 {-# NOINLINE glTexPageCommitmentEXTFunPtr #-}
 
+pattern GL_MAX_SPARSE_3D_TEXTURE_SIZE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_SPARSE_3D_TEXTURE_SIZE_EXT = 0x9199
 
+pattern GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_EXT = 0x919A
 
+pattern GL_MAX_SPARSE_TEXTURE_SIZE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_SPARSE_TEXTURE_SIZE_EXT = 0x9198
 
+pattern GL_NUM_SPARSE_LEVELS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_NUM_SPARSE_LEVELS_EXT = 0x91AA
 
+pattern GL_NUM_VIRTUAL_PAGE_SIZES_EXT  :: (Eq a, Num a) => a
+
 pattern GL_NUM_VIRTUAL_PAGE_SIZES_EXT = 0x91A8
 
+pattern GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_EXT = 0x91A9
 
+pattern GL_TEXTURE_SPARSE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_SPARSE_EXT = 0x91A6
 
+pattern GL_VIRTUAL_PAGE_SIZE_INDEX_EXT  :: (Eq a, Num a) => a
+
 pattern GL_VIRTUAL_PAGE_SIZE_INDEX_EXT = 0x91A7
 
+pattern GL_VIRTUAL_PAGE_SIZE_X_EXT  :: (Eq a, Num a) => a
+
 pattern GL_VIRTUAL_PAGE_SIZE_X_EXT = 0x9195
 
+pattern GL_VIRTUAL_PAGE_SIZE_Y_EXT  :: (Eq a, Num a) => a
+
 pattern GL_VIRTUAL_PAGE_SIZE_Y_EXT = 0x9196
+
+pattern GL_VIRTUAL_PAGE_SIZE_Z_EXT  :: (Eq a, Num a) => a
 
 pattern GL_VIRTUAL_PAGE_SIZE_Z_EXT = 0x9197
diff --git a/generated-src/Graphics/GL/Ext/EXT/StencilClearTag.hs b/generated-src/Graphics/GL/Ext/EXT/StencilClearTag.hs
--- a/generated-src/Graphics/GL/Ext/EXT/StencilClearTag.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/StencilClearTag.hs
@@ -35,6 +35,10 @@
 
 {-# NOINLINE glStencilClearTagEXTFunPtr #-}
 
+pattern GL_STENCIL_CLEAR_TAG_VALUE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_STENCIL_CLEAR_TAG_VALUE_EXT = 0x88F3
+
+pattern GL_STENCIL_TAG_BITS_EXT  :: (Eq a, Num a) => a
 
 pattern GL_STENCIL_TAG_BITS_EXT = 0x88F2
diff --git a/generated-src/Graphics/GL/Ext/EXT/StencilTwoSide.hs b/generated-src/Graphics/GL/Ext/EXT/StencilTwoSide.hs
--- a/generated-src/Graphics/GL/Ext/EXT/StencilTwoSide.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/StencilTwoSide.hs
@@ -37,6 +37,10 @@
 
 {-# NOINLINE glActiveStencilFaceEXTFunPtr #-}
 
+pattern GL_ACTIVE_STENCIL_FACE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_ACTIVE_STENCIL_FACE_EXT = 0x8911
+
+pattern GL_STENCIL_TEST_TWO_SIDE_EXT  :: (Eq a, Num a) => a
 
 pattern GL_STENCIL_TEST_TWO_SIDE_EXT = 0x8910
diff --git a/generated-src/Graphics/GL/Ext/EXT/StencilWrap.hs b/generated-src/Graphics/GL/Ext/EXT/StencilWrap.hs
--- a/generated-src/Graphics/GL/Ext/EXT/StencilWrap.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/StencilWrap.hs
@@ -18,6 +18,10 @@
 gl_EXT_stencil_wrap = member "GL_EXT_stencil_wrap" extensions
 {-# NOINLINE gl_EXT_stencil_wrap #-}
 
+pattern GL_DECR_WRAP_EXT  :: (Eq a, Num a) => a
+
 pattern GL_DECR_WRAP_EXT = 0x8508
+
+pattern GL_INCR_WRAP_EXT  :: (Eq a, Num a) => a
 
 pattern GL_INCR_WRAP_EXT = 0x8507
diff --git a/generated-src/Graphics/GL/Ext/EXT/TessellationShader.hs b/generated-src/Graphics/GL/Ext/EXT/TessellationShader.hs
--- a/generated-src/Graphics/GL/Ext/EXT/TessellationShader.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/TessellationShader.hs
@@ -83,86 +83,170 @@
 
 {-# NOINLINE glPatchParameteriEXTFunPtr #-}
 
+pattern GL_FRACTIONAL_EVEN_EXT  :: (Eq a, Num a) => a
+
 pattern GL_FRACTIONAL_EVEN_EXT = 0x8E7C
 
+pattern GL_FRACTIONAL_ODD_EXT  :: (Eq a, Num a) => a
+
 pattern GL_FRACTIONAL_ODD_EXT = 0x8E7B
 
+pattern GL_ISOLINES_EXT  :: (Eq a, Num a) => a
+
 pattern GL_ISOLINES_EXT = 0x8E7A
 
+pattern GL_IS_PER_PATCH_EXT  :: (Eq a, Num a) => a
+
 pattern GL_IS_PER_PATCH_EXT = 0x92E7
 
+pattern GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_EXT = 0x8E1E
 
+pattern GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT = 0x8E1F
 
+pattern GL_MAX_PATCH_VERTICES_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_PATCH_VERTICES_EXT = 0x8E7D
 
+pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_EXT = 0x92D3
 
+pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_EXT = 0x92CD
 
+pattern GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_EXT = 0x90CB
 
+pattern GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_EXT = 0x886C
 
+pattern GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_EXT = 0x8E83
 
+pattern GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_EXT = 0x90D8
 
+pattern GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_EXT = 0x8E81
 
+pattern GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_EXT = 0x8E85
 
+pattern GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_EXT = 0x8E89
 
+pattern GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_EXT = 0x8E7F
 
+pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_EXT = 0x92D4
 
+pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_EXT = 0x92CE
 
+pattern GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_EXT = 0x90CC
 
+pattern GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_EXT = 0x886D
 
+pattern GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_EXT = 0x8E86
 
+pattern GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_EXT = 0x90D9
 
+pattern GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_EXT = 0x8E82
 
+pattern GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_EXT = 0x8E8A
 
+pattern GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT = 0x8E80
 
+pattern GL_MAX_TESS_GEN_LEVEL_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_TESS_GEN_LEVEL_EXT = 0x8E7E
 
+pattern GL_MAX_TESS_PATCH_COMPONENTS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_TESS_PATCH_COMPONENTS_EXT = 0x8E84
 
+pattern GL_PATCHES_EXT  :: (Eq a, Num a) => a
+
 pattern GL_PATCHES_EXT = 0x000E
 
+pattern GL_PATCH_VERTICES_EXT  :: (Eq a, Num a) => a
+
 pattern GL_PATCH_VERTICES_EXT = 0x8E72
 
+pattern GL_QUADS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_QUADS_EXT = 0x0007
 
+pattern GL_REFERENCED_BY_TESS_CONTROL_SHADER_EXT  :: (Eq a, Num a) => a
+
 pattern GL_REFERENCED_BY_TESS_CONTROL_SHADER_EXT = 0x9307
 
+pattern GL_REFERENCED_BY_TESS_EVALUATION_SHADER_EXT  :: (Eq a, Num a) => a
+
 pattern GL_REFERENCED_BY_TESS_EVALUATION_SHADER_EXT = 0x9308
 
+pattern GL_TESS_CONTROL_OUTPUT_VERTICES_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TESS_CONTROL_OUTPUT_VERTICES_EXT = 0x8E75
 
+pattern GL_TESS_CONTROL_SHADER_BIT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TESS_CONTROL_SHADER_BIT_EXT = 0x00000008
 
+pattern GL_TESS_CONTROL_SHADER_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TESS_CONTROL_SHADER_EXT = 0x8E88
 
+pattern GL_TESS_EVALUATION_SHADER_BIT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TESS_EVALUATION_SHADER_BIT_EXT = 0x00000010
 
+pattern GL_TESS_EVALUATION_SHADER_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TESS_EVALUATION_SHADER_EXT = 0x8E87
 
+pattern GL_TESS_GEN_MODE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TESS_GEN_MODE_EXT = 0x8E76
 
+pattern GL_TESS_GEN_POINT_MODE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TESS_GEN_POINT_MODE_EXT = 0x8E79
 
+pattern GL_TESS_GEN_SPACING_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TESS_GEN_SPACING_EXT = 0x8E77
+
+pattern GL_TESS_GEN_VERTEX_ORDER_EXT  :: (Eq a, Num a) => a
 
 pattern GL_TESS_GEN_VERTEX_ORDER_EXT = 0x8E78
diff --git a/generated-src/Graphics/GL/Ext/EXT/Texture.hs b/generated-src/Graphics/GL/Ext/EXT/Texture.hs
--- a/generated-src/Graphics/GL/Ext/EXT/Texture.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/Texture.hs
@@ -60,74 +60,146 @@
 gl_EXT_texture = member "GL_EXT_texture" extensions
 {-# NOINLINE gl_EXT_texture #-}
 
+pattern GL_ALPHA12_EXT  :: (Eq a, Num a) => a
+
 pattern GL_ALPHA12_EXT = 0x803D
 
+pattern GL_ALPHA16_EXT  :: (Eq a, Num a) => a
+
 pattern GL_ALPHA16_EXT = 0x803E
 
+pattern GL_ALPHA4_EXT  :: (Eq a, Num a) => a
+
 pattern GL_ALPHA4_EXT = 0x803B
 
+pattern GL_INTENSITY12_EXT  :: (Eq a, Num a) => a
+
 pattern GL_INTENSITY12_EXT = 0x804C
 
+pattern GL_INTENSITY16_EXT  :: (Eq a, Num a) => a
+
 pattern GL_INTENSITY16_EXT = 0x804D
 
+pattern GL_INTENSITY4_EXT  :: (Eq a, Num a) => a
+
 pattern GL_INTENSITY4_EXT = 0x804A
 
+pattern GL_INTENSITY8_EXT  :: (Eq a, Num a) => a
+
 pattern GL_INTENSITY8_EXT = 0x804B
 
+pattern GL_INTENSITY_EXT  :: (Eq a, Num a) => a
+
 pattern GL_INTENSITY_EXT = 0x8049
 
+pattern GL_LUMINANCE12_ALPHA12_EXT  :: (Eq a, Num a) => a
+
 pattern GL_LUMINANCE12_ALPHA12_EXT = 0x8047
 
+pattern GL_LUMINANCE12_ALPHA4_EXT  :: (Eq a, Num a) => a
+
 pattern GL_LUMINANCE12_ALPHA4_EXT = 0x8046
 
+pattern GL_LUMINANCE12_EXT  :: (Eq a, Num a) => a
+
 pattern GL_LUMINANCE12_EXT = 0x8041
 
+pattern GL_LUMINANCE16_ALPHA16_EXT  :: (Eq a, Num a) => a
+
 pattern GL_LUMINANCE16_ALPHA16_EXT = 0x8048
 
+pattern GL_LUMINANCE16_EXT  :: (Eq a, Num a) => a
+
 pattern GL_LUMINANCE16_EXT = 0x8042
 
+pattern GL_LUMINANCE4_ALPHA4_EXT  :: (Eq a, Num a) => a
+
 pattern GL_LUMINANCE4_ALPHA4_EXT = 0x8043
 
+pattern GL_LUMINANCE4_EXT  :: (Eq a, Num a) => a
+
 pattern GL_LUMINANCE4_EXT = 0x803F
 
+pattern GL_LUMINANCE6_ALPHA2_EXT  :: (Eq a, Num a) => a
+
 pattern GL_LUMINANCE6_ALPHA2_EXT = 0x8044
 
+pattern GL_PROXY_TEXTURE_1D_EXT  :: (Eq a, Num a) => a
+
 pattern GL_PROXY_TEXTURE_1D_EXT = 0x8063
 
+pattern GL_PROXY_TEXTURE_2D_EXT  :: (Eq a, Num a) => a
+
 pattern GL_PROXY_TEXTURE_2D_EXT = 0x8064
 
+pattern GL_REPLACE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_REPLACE_EXT = 0x8062
 
+pattern GL_RGB12_EXT  :: (Eq a, Num a) => a
+
 pattern GL_RGB12_EXT = 0x8053
 
+pattern GL_RGB2_EXT  :: (Eq a, Num a) => a
+
 pattern GL_RGB2_EXT = 0x804E
 
+pattern GL_RGB4_EXT  :: (Eq a, Num a) => a
+
 pattern GL_RGB4_EXT = 0x804F
 
+pattern GL_RGB5_A1_EXT  :: (Eq a, Num a) => a
+
 pattern GL_RGB5_A1_EXT = 0x8057
 
+pattern GL_RGB5_EXT  :: (Eq a, Num a) => a
+
 pattern GL_RGB5_EXT = 0x8050
 
+pattern GL_RGB8_EXT  :: (Eq a, Num a) => a
+
 pattern GL_RGB8_EXT = 0x8051
 
+pattern GL_RGBA12_EXT  :: (Eq a, Num a) => a
+
 pattern GL_RGBA12_EXT = 0x805A
 
+pattern GL_RGBA2_EXT  :: (Eq a, Num a) => a
+
 pattern GL_RGBA2_EXT = 0x8055
 
+pattern GL_RGBA4_EXT  :: (Eq a, Num a) => a
+
 pattern GL_RGBA4_EXT = 0x8056
 
+pattern GL_RGBA8_EXT  :: (Eq a, Num a) => a
+
 pattern GL_RGBA8_EXT = 0x8058
 
+pattern GL_TEXTURE_ALPHA_SIZE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_ALPHA_SIZE_EXT = 0x805F
 
+pattern GL_TEXTURE_BLUE_SIZE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_BLUE_SIZE_EXT = 0x805E
 
+pattern GL_TEXTURE_GREEN_SIZE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_GREEN_SIZE_EXT = 0x805D
 
+pattern GL_TEXTURE_INTENSITY_SIZE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_INTENSITY_SIZE_EXT = 0x8061
 
+pattern GL_TEXTURE_LUMINANCE_SIZE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_LUMINANCE_SIZE_EXT = 0x8060
 
+pattern GL_TEXTURE_RED_SIZE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_RED_SIZE_EXT = 0x805C
+
+pattern GL_TEXTURE_TOO_LARGE_EXT  :: (Eq a, Num a) => a
 
 pattern GL_TEXTURE_TOO_LARGE_EXT = 0x8065
diff --git a/generated-src/Graphics/GL/Ext/EXT/Texture3D.hs b/generated-src/Graphics/GL/Ext/EXT/Texture3D.hs
--- a/generated-src/Graphics/GL/Ext/EXT/Texture3D.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/Texture3D.hs
@@ -88,20 +88,38 @@
 
 {-# NOINLINE glTexSubImage3DEXTFunPtr #-}
 
+pattern GL_MAX_3D_TEXTURE_SIZE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_3D_TEXTURE_SIZE_EXT = 0x8073
 
+pattern GL_PACK_IMAGE_HEIGHT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_PACK_IMAGE_HEIGHT_EXT = 0x806C
 
+pattern GL_PACK_SKIP_IMAGES_EXT  :: (Eq a, Num a) => a
+
 pattern GL_PACK_SKIP_IMAGES_EXT = 0x806B
 
+pattern GL_PROXY_TEXTURE_3D_EXT  :: (Eq a, Num a) => a
+
 pattern GL_PROXY_TEXTURE_3D_EXT = 0x8070
 
+pattern GL_TEXTURE_3D_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_3D_EXT = 0x806F
 
+pattern GL_TEXTURE_DEPTH_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_DEPTH_EXT = 0x8071
 
+pattern GL_TEXTURE_WRAP_R_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_WRAP_R_EXT = 0x8072
 
+pattern GL_UNPACK_IMAGE_HEIGHT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_UNPACK_IMAGE_HEIGHT_EXT = 0x806E
+
+pattern GL_UNPACK_SKIP_IMAGES_EXT  :: (Eq a, Num a) => a
 
 pattern GL_UNPACK_SKIP_IMAGES_EXT = 0x806D
diff --git a/generated-src/Graphics/GL/Ext/EXT/TextureArray.hs b/generated-src/Graphics/GL/Ext/EXT/TextureArray.hs
--- a/generated-src/Graphics/GL/Ext/EXT/TextureArray.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/TextureArray.hs
@@ -27,18 +27,34 @@
 gl_EXT_texture_array = member "GL_EXT_texture_array" extensions
 {-# NOINLINE gl_EXT_texture_array #-}
 
+pattern GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT = 0x884E
 
+pattern GL_MAX_ARRAY_TEXTURE_LAYERS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_ARRAY_TEXTURE_LAYERS_EXT = 0x88FF
 
+pattern GL_PROXY_TEXTURE_1D_ARRAY_EXT  :: (Eq a, Num a) => a
+
 pattern GL_PROXY_TEXTURE_1D_ARRAY_EXT = 0x8C19
 
+pattern GL_PROXY_TEXTURE_2D_ARRAY_EXT  :: (Eq a, Num a) => a
+
 pattern GL_PROXY_TEXTURE_2D_ARRAY_EXT = 0x8C1B
 
+pattern GL_TEXTURE_1D_ARRAY_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_1D_ARRAY_EXT = 0x8C18
 
+pattern GL_TEXTURE_2D_ARRAY_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_2D_ARRAY_EXT = 0x8C1A
 
+pattern GL_TEXTURE_BINDING_1D_ARRAY_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_BINDING_1D_ARRAY_EXT = 0x8C1C
+
+pattern GL_TEXTURE_BINDING_2D_ARRAY_EXT  :: (Eq a, Num a) => a
 
 pattern GL_TEXTURE_BINDING_2D_ARRAY_EXT = 0x8C1D
diff --git a/generated-src/Graphics/GL/Ext/EXT/TextureBorderClamp.hs b/generated-src/Graphics/GL/Ext/EXT/TextureBorderClamp.hs
--- a/generated-src/Graphics/GL/Ext/EXT/TextureBorderClamp.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/TextureBorderClamp.hs
@@ -92,6 +92,10 @@
 
 {-# NOINLINE glSamplerParameterIuivEXTFunPtr #-}
 
+pattern GL_CLAMP_TO_BORDER_EXT  :: (Eq a, Num a) => a
+
 pattern GL_CLAMP_TO_BORDER_EXT = 0x812D
+
+pattern GL_TEXTURE_BORDER_COLOR_EXT  :: (Eq a, Num a) => a
 
 pattern GL_TEXTURE_BORDER_COLOR_EXT = 0x1004
diff --git a/generated-src/Graphics/GL/Ext/EXT/TextureBuffer.hs b/generated-src/Graphics/GL/Ext/EXT/TextureBuffer.hs
--- a/generated-src/Graphics/GL/Ext/EXT/TextureBuffer.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/TextureBuffer.hs
@@ -55,10 +55,18 @@
 
 {-# NOINLINE glTexBufferRangeEXTFunPtr #-}
 
+pattern GL_TEXTURE_BUFFER_BINDING_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_BUFFER_BINDING_EXT = 0x8C2A
 
+pattern GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT_EXT = 0x919F
 
+pattern GL_TEXTURE_BUFFER_OFFSET_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_BUFFER_OFFSET_EXT = 0x919D
+
+pattern GL_TEXTURE_BUFFER_SIZE_EXT  :: (Eq a, Num a) => a
 
 pattern GL_TEXTURE_BUFFER_SIZE_EXT = 0x919E
diff --git a/generated-src/Graphics/GL/Ext/EXT/TextureBufferObject.hs b/generated-src/Graphics/GL/Ext/EXT/TextureBufferObject.hs
--- a/generated-src/Graphics/GL/Ext/EXT/TextureBufferObject.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/TextureBufferObject.hs
@@ -23,4 +23,6 @@
 gl_EXT_texture_buffer_object = member "GL_EXT_texture_buffer_object" extensions
 {-# NOINLINE gl_EXT_texture_buffer_object #-}
 
+pattern GL_TEXTURE_BUFFER_FORMAT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_BUFFER_FORMAT_EXT = 0x8C2E
diff --git a/generated-src/Graphics/GL/Ext/EXT/TextureCompressionLatc.hs b/generated-src/Graphics/GL/Ext/EXT/TextureCompressionLatc.hs
--- a/generated-src/Graphics/GL/Ext/EXT/TextureCompressionLatc.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/TextureCompressionLatc.hs
@@ -20,10 +20,18 @@
 gl_EXT_texture_compression_latc = member "GL_EXT_texture_compression_latc" extensions
 {-# NOINLINE gl_EXT_texture_compression_latc #-}
 
+pattern GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT = 0x8C72
 
+pattern GL_COMPRESSED_LUMINANCE_LATC1_EXT  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_LUMINANCE_LATC1_EXT = 0x8C70
 
+pattern GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT = 0x8C73
+
+pattern GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT  :: (Eq a, Num a) => a
 
 pattern GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT = 0x8C71
diff --git a/generated-src/Graphics/GL/Ext/EXT/TextureCompressionRgtc.hs b/generated-src/Graphics/GL/Ext/EXT/TextureCompressionRgtc.hs
--- a/generated-src/Graphics/GL/Ext/EXT/TextureCompressionRgtc.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/TextureCompressionRgtc.hs
@@ -20,10 +20,18 @@
 gl_EXT_texture_compression_rgtc = member "GL_EXT_texture_compression_rgtc" extensions
 {-# NOINLINE gl_EXT_texture_compression_rgtc #-}
 
+pattern GL_COMPRESSED_RED_GREEN_RGTC2_EXT  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_RED_GREEN_RGTC2_EXT = 0x8DBD
 
+pattern GL_COMPRESSED_RED_RGTC1_EXT  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_RED_RGTC1_EXT = 0x8DBB
 
+pattern GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT = 0x8DBE
+
+pattern GL_COMPRESSED_SIGNED_RED_RGTC1_EXT  :: (Eq a, Num a) => a
 
 pattern GL_COMPRESSED_SIGNED_RED_RGTC1_EXT = 0x8DBC
diff --git a/generated-src/Graphics/GL/Ext/EXT/TextureCompressionS3tc.hs b/generated-src/Graphics/GL/Ext/EXT/TextureCompressionS3tc.hs
--- a/generated-src/Graphics/GL/Ext/EXT/TextureCompressionS3tc.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/TextureCompressionS3tc.hs
@@ -21,6 +21,10 @@
 gl_EXT_texture_compression_s3tc = member "GL_EXT_texture_compression_s3tc" extensions
 {-# NOINLINE gl_EXT_texture_compression_s3tc #-}
 
+pattern GL_COMPRESSED_RGBA_S3TC_DXT3_EXT  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_RGBA_S3TC_DXT3_EXT = 0x83F2
+
+pattern GL_COMPRESSED_RGBA_S3TC_DXT5_EXT  :: (Eq a, Num a) => a
 
 pattern GL_COMPRESSED_RGBA_S3TC_DXT5_EXT = 0x83F3
diff --git a/generated-src/Graphics/GL/Ext/EXT/TextureCubeMap.hs b/generated-src/Graphics/GL/Ext/EXT/TextureCubeMap.hs
--- a/generated-src/Graphics/GL/Ext/EXT/TextureCubeMap.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/TextureCubeMap.hs
@@ -28,26 +28,50 @@
 gl_EXT_texture_cube_map = member "GL_EXT_texture_cube_map" extensions
 {-# NOINLINE gl_EXT_texture_cube_map #-}
 
+pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT = 0x851C
 
+pattern GL_NORMAL_MAP_EXT  :: (Eq a, Num a) => a
+
 pattern GL_NORMAL_MAP_EXT = 0x8511
 
+pattern GL_PROXY_TEXTURE_CUBE_MAP_EXT  :: (Eq a, Num a) => a
+
 pattern GL_PROXY_TEXTURE_CUBE_MAP_EXT = 0x851B
 
+pattern GL_REFLECTION_MAP_EXT  :: (Eq a, Num a) => a
+
 pattern GL_REFLECTION_MAP_EXT = 0x8512
 
+pattern GL_TEXTURE_BINDING_CUBE_MAP_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_BINDING_CUBE_MAP_EXT = 0x8514
 
+pattern GL_TEXTURE_CUBE_MAP_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_CUBE_MAP_EXT = 0x8513
 
+pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT = 0x8516
 
+pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT = 0x8518
 
+pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT = 0x851A
 
+pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT = 0x8515
 
+pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT = 0x8517
+
+pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT  :: (Eq a, Num a) => a
 
 pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT = 0x8519
diff --git a/generated-src/Graphics/GL/Ext/EXT/TextureCubeMapArray.hs b/generated-src/Graphics/GL/Ext/EXT/TextureCubeMapArray.hs
--- a/generated-src/Graphics/GL/Ext/EXT/TextureCubeMapArray.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/TextureCubeMapArray.hs
@@ -26,14 +26,26 @@
 gl_EXT_texture_cube_map_array = member "GL_EXT_texture_cube_map_array" extensions
 {-# NOINLINE gl_EXT_texture_cube_map_array #-}
 
+pattern GL_INT_SAMPLER_CUBE_MAP_ARRAY_EXT  :: (Eq a, Num a) => a
+
 pattern GL_INT_SAMPLER_CUBE_MAP_ARRAY_EXT = 0x900E
 
+pattern GL_SAMPLER_CUBE_MAP_ARRAY_EXT  :: (Eq a, Num a) => a
+
 pattern GL_SAMPLER_CUBE_MAP_ARRAY_EXT = 0x900C
 
+pattern GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_EXT  :: (Eq a, Num a) => a
+
 pattern GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_EXT = 0x900D
 
+pattern GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_EXT = 0x900A
 
+pattern GL_TEXTURE_CUBE_MAP_ARRAY_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_CUBE_MAP_ARRAY_EXT = 0x9009
+
+pattern GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_EXT  :: (Eq a, Num a) => a
 
 pattern GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_EXT = 0x900F
diff --git a/generated-src/Graphics/GL/Ext/EXT/TextureEnvCombine.hs b/generated-src/Graphics/GL/Ext/EXT/TextureEnvCombine.hs
--- a/generated-src/Graphics/GL/Ext/EXT/TextureEnvCombine.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/TextureEnvCombine.hs
@@ -37,44 +37,86 @@
 gl_EXT_texture_env_combine = member "GL_EXT_texture_env_combine" extensions
 {-# NOINLINE gl_EXT_texture_env_combine #-}
 
+pattern GL_ADD_SIGNED_EXT  :: (Eq a, Num a) => a
+
 pattern GL_ADD_SIGNED_EXT = 0x8574
 
+pattern GL_COMBINE_ALPHA_EXT  :: (Eq a, Num a) => a
+
 pattern GL_COMBINE_ALPHA_EXT = 0x8572
 
+pattern GL_COMBINE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_COMBINE_EXT = 0x8570
 
+pattern GL_COMBINE_RGB_EXT  :: (Eq a, Num a) => a
+
 pattern GL_COMBINE_RGB_EXT = 0x8571
 
+pattern GL_CONSTANT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_CONSTANT_EXT = 0x8576
 
+pattern GL_INTERPOLATE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_INTERPOLATE_EXT = 0x8575
 
+pattern GL_OPERAND0_ALPHA_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OPERAND0_ALPHA_EXT = 0x8598
 
+pattern GL_OPERAND0_RGB_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OPERAND0_RGB_EXT = 0x8590
 
+pattern GL_OPERAND1_ALPHA_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OPERAND1_ALPHA_EXT = 0x8599
 
+pattern GL_OPERAND1_RGB_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OPERAND1_RGB_EXT = 0x8591
 
+pattern GL_OPERAND2_ALPHA_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OPERAND2_ALPHA_EXT = 0x859A
 
+pattern GL_OPERAND2_RGB_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OPERAND2_RGB_EXT = 0x8592
 
+pattern GL_PREVIOUS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_PREVIOUS_EXT = 0x8578
 
+pattern GL_PRIMARY_COLOR_EXT  :: (Eq a, Num a) => a
+
 pattern GL_PRIMARY_COLOR_EXT = 0x8577
 
+pattern GL_RGB_SCALE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_RGB_SCALE_EXT = 0x8573
 
+pattern GL_SOURCE0_ALPHA_EXT  :: (Eq a, Num a) => a
+
 pattern GL_SOURCE0_ALPHA_EXT = 0x8588
 
+pattern GL_SOURCE0_RGB_EXT  :: (Eq a, Num a) => a
+
 pattern GL_SOURCE0_RGB_EXT = 0x8580
 
+pattern GL_SOURCE1_ALPHA_EXT  :: (Eq a, Num a) => a
+
 pattern GL_SOURCE1_ALPHA_EXT = 0x8589
 
+pattern GL_SOURCE1_RGB_EXT  :: (Eq a, Num a) => a
+
 pattern GL_SOURCE1_RGB_EXT = 0x8581
 
+pattern GL_SOURCE2_ALPHA_EXT  :: (Eq a, Num a) => a
+
 pattern GL_SOURCE2_ALPHA_EXT = 0x858A
+
+pattern GL_SOURCE2_RGB_EXT  :: (Eq a, Num a) => a
 
 pattern GL_SOURCE2_RGB_EXT = 0x8582
diff --git a/generated-src/Graphics/GL/Ext/EXT/TextureEnvDot3.hs b/generated-src/Graphics/GL/Ext/EXT/TextureEnvDot3.hs
--- a/generated-src/Graphics/GL/Ext/EXT/TextureEnvDot3.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/TextureEnvDot3.hs
@@ -18,6 +18,10 @@
 gl_EXT_texture_env_dot3 = member "GL_EXT_texture_env_dot3" extensions
 {-# NOINLINE gl_EXT_texture_env_dot3 #-}
 
+pattern GL_DOT3_RGBA_EXT  :: (Eq a, Num a) => a
+
 pattern GL_DOT3_RGBA_EXT = 0x8741
+
+pattern GL_DOT3_RGB_EXT  :: (Eq a, Num a) => a
 
 pattern GL_DOT3_RGB_EXT = 0x8740
diff --git a/generated-src/Graphics/GL/Ext/EXT/TextureFilterAnisotropic.hs b/generated-src/Graphics/GL/Ext/EXT/TextureFilterAnisotropic.hs
--- a/generated-src/Graphics/GL/Ext/EXT/TextureFilterAnisotropic.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/TextureFilterAnisotropic.hs
@@ -18,6 +18,10 @@
 gl_EXT_texture_filter_anisotropic = member "GL_EXT_texture_filter_anisotropic" extensions
 {-# NOINLINE gl_EXT_texture_filter_anisotropic #-}
 
+pattern GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT = 0x84FF
+
+pattern GL_TEXTURE_MAX_ANISOTROPY_EXT  :: (Eq a, Num a) => a
 
 pattern GL_TEXTURE_MAX_ANISOTROPY_EXT = 0x84FE
diff --git a/generated-src/Graphics/GL/Ext/EXT/TextureInteger.hs b/generated-src/Graphics/GL/Ext/EXT/TextureInteger.hs
--- a/generated-src/Graphics/GL/Ext/EXT/TextureInteger.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/TextureInteger.hs
@@ -97,96 +97,190 @@
 
 {-# NOINLINE glClearColorIuiEXTFunPtr #-}
 
+pattern GL_ALPHA16I_EXT  :: (Eq a, Num a) => a
+
 pattern GL_ALPHA16I_EXT = 0x8D8A
 
+pattern GL_ALPHA16UI_EXT  :: (Eq a, Num a) => a
+
 pattern GL_ALPHA16UI_EXT = 0x8D78
 
+pattern GL_ALPHA32I_EXT  :: (Eq a, Num a) => a
+
 pattern GL_ALPHA32I_EXT = 0x8D84
 
+pattern GL_ALPHA32UI_EXT  :: (Eq a, Num a) => a
+
 pattern GL_ALPHA32UI_EXT = 0x8D72
 
+pattern GL_ALPHA8I_EXT  :: (Eq a, Num a) => a
+
 pattern GL_ALPHA8I_EXT = 0x8D90
 
+pattern GL_ALPHA8UI_EXT  :: (Eq a, Num a) => a
+
 pattern GL_ALPHA8UI_EXT = 0x8D7E
 
+pattern GL_ALPHA_INTEGER_EXT  :: (Eq a, Num a) => a
+
 pattern GL_ALPHA_INTEGER_EXT = 0x8D97
 
+pattern GL_BGRA_INTEGER_EXT  :: (Eq a, Num a) => a
+
 pattern GL_BGRA_INTEGER_EXT = 0x8D9B
 
+pattern GL_BGR_INTEGER_EXT  :: (Eq a, Num a) => a
+
 pattern GL_BGR_INTEGER_EXT = 0x8D9A
 
+pattern GL_BLUE_INTEGER_EXT  :: (Eq a, Num a) => a
+
 pattern GL_BLUE_INTEGER_EXT = 0x8D96
 
+pattern GL_GREEN_INTEGER_EXT  :: (Eq a, Num a) => a
+
 pattern GL_GREEN_INTEGER_EXT = 0x8D95
 
+pattern GL_INTENSITY16I_EXT  :: (Eq a, Num a) => a
+
 pattern GL_INTENSITY16I_EXT = 0x8D8B
 
+pattern GL_INTENSITY16UI_EXT  :: (Eq a, Num a) => a
+
 pattern GL_INTENSITY16UI_EXT = 0x8D79
 
+pattern GL_INTENSITY32I_EXT  :: (Eq a, Num a) => a
+
 pattern GL_INTENSITY32I_EXT = 0x8D85
 
+pattern GL_INTENSITY32UI_EXT  :: (Eq a, Num a) => a
+
 pattern GL_INTENSITY32UI_EXT = 0x8D73
 
+pattern GL_INTENSITY8I_EXT  :: (Eq a, Num a) => a
+
 pattern GL_INTENSITY8I_EXT = 0x8D91
 
+pattern GL_INTENSITY8UI_EXT  :: (Eq a, Num a) => a
+
 pattern GL_INTENSITY8UI_EXT = 0x8D7F
 
+pattern GL_LUMINANCE16I_EXT  :: (Eq a, Num a) => a
+
 pattern GL_LUMINANCE16I_EXT = 0x8D8C
 
+pattern GL_LUMINANCE16UI_EXT  :: (Eq a, Num a) => a
+
 pattern GL_LUMINANCE16UI_EXT = 0x8D7A
 
+pattern GL_LUMINANCE32I_EXT  :: (Eq a, Num a) => a
+
 pattern GL_LUMINANCE32I_EXT = 0x8D86
 
+pattern GL_LUMINANCE32UI_EXT  :: (Eq a, Num a) => a
+
 pattern GL_LUMINANCE32UI_EXT = 0x8D74
 
+pattern GL_LUMINANCE8I_EXT  :: (Eq a, Num a) => a
+
 pattern GL_LUMINANCE8I_EXT = 0x8D92
 
+pattern GL_LUMINANCE8UI_EXT  :: (Eq a, Num a) => a
+
 pattern GL_LUMINANCE8UI_EXT = 0x8D80
 
+pattern GL_LUMINANCE_ALPHA16I_EXT  :: (Eq a, Num a) => a
+
 pattern GL_LUMINANCE_ALPHA16I_EXT = 0x8D8D
 
+pattern GL_LUMINANCE_ALPHA16UI_EXT  :: (Eq a, Num a) => a
+
 pattern GL_LUMINANCE_ALPHA16UI_EXT = 0x8D7B
 
+pattern GL_LUMINANCE_ALPHA32I_EXT  :: (Eq a, Num a) => a
+
 pattern GL_LUMINANCE_ALPHA32I_EXT = 0x8D87
 
+pattern GL_LUMINANCE_ALPHA32UI_EXT  :: (Eq a, Num a) => a
+
 pattern GL_LUMINANCE_ALPHA32UI_EXT = 0x8D75
 
+pattern GL_LUMINANCE_ALPHA8I_EXT  :: (Eq a, Num a) => a
+
 pattern GL_LUMINANCE_ALPHA8I_EXT = 0x8D93
 
+pattern GL_LUMINANCE_ALPHA8UI_EXT  :: (Eq a, Num a) => a
+
 pattern GL_LUMINANCE_ALPHA8UI_EXT = 0x8D81
 
+pattern GL_LUMINANCE_ALPHA_INTEGER_EXT  :: (Eq a, Num a) => a
+
 pattern GL_LUMINANCE_ALPHA_INTEGER_EXT = 0x8D9D
 
+pattern GL_LUMINANCE_INTEGER_EXT  :: (Eq a, Num a) => a
+
 pattern GL_LUMINANCE_INTEGER_EXT = 0x8D9C
 
+pattern GL_RED_INTEGER_EXT  :: (Eq a, Num a) => a
+
 pattern GL_RED_INTEGER_EXT = 0x8D94
 
+pattern GL_RGB16I_EXT  :: (Eq a, Num a) => a
+
 pattern GL_RGB16I_EXT = 0x8D89
 
+pattern GL_RGB16UI_EXT  :: (Eq a, Num a) => a
+
 pattern GL_RGB16UI_EXT = 0x8D77
 
+pattern GL_RGB32I_EXT  :: (Eq a, Num a) => a
+
 pattern GL_RGB32I_EXT = 0x8D83
 
+pattern GL_RGB32UI_EXT  :: (Eq a, Num a) => a
+
 pattern GL_RGB32UI_EXT = 0x8D71
 
+pattern GL_RGB8I_EXT  :: (Eq a, Num a) => a
+
 pattern GL_RGB8I_EXT = 0x8D8F
 
+pattern GL_RGB8UI_EXT  :: (Eq a, Num a) => a
+
 pattern GL_RGB8UI_EXT = 0x8D7D
 
+pattern GL_RGBA16I_EXT  :: (Eq a, Num a) => a
+
 pattern GL_RGBA16I_EXT = 0x8D88
 
+pattern GL_RGBA16UI_EXT  :: (Eq a, Num a) => a
+
 pattern GL_RGBA16UI_EXT = 0x8D76
 
+pattern GL_RGBA32I_EXT  :: (Eq a, Num a) => a
+
 pattern GL_RGBA32I_EXT = 0x8D82
 
+pattern GL_RGBA32UI_EXT  :: (Eq a, Num a) => a
+
 pattern GL_RGBA32UI_EXT = 0x8D70
 
+pattern GL_RGBA8I_EXT  :: (Eq a, Num a) => a
+
 pattern GL_RGBA8I_EXT = 0x8D8E
 
+pattern GL_RGBA8UI_EXT  :: (Eq a, Num a) => a
+
 pattern GL_RGBA8UI_EXT = 0x8D7C
 
+pattern GL_RGBA_INTEGER_EXT  :: (Eq a, Num a) => a
+
 pattern GL_RGBA_INTEGER_EXT = 0x8D99
 
+pattern GL_RGBA_INTEGER_MODE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_RGBA_INTEGER_MODE_EXT = 0x8D9E
+
+pattern GL_RGB_INTEGER_EXT  :: (Eq a, Num a) => a
 
 pattern GL_RGB_INTEGER_EXT = 0x8D98
diff --git a/generated-src/Graphics/GL/Ext/EXT/TextureLodBias.hs b/generated-src/Graphics/GL/Ext/EXT/TextureLodBias.hs
--- a/generated-src/Graphics/GL/Ext/EXT/TextureLodBias.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/TextureLodBias.hs
@@ -19,8 +19,14 @@
 gl_EXT_texture_lod_bias = member "GL_EXT_texture_lod_bias" extensions
 {-# NOINLINE gl_EXT_texture_lod_bias #-}
 
+pattern GL_MAX_TEXTURE_LOD_BIAS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_TEXTURE_LOD_BIAS_EXT = 0x84FD
 
+pattern GL_TEXTURE_FILTER_CONTROL_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_FILTER_CONTROL_EXT = 0x8500
+
+pattern GL_TEXTURE_LOD_BIAS_EXT  :: (Eq a, Num a) => a
 
 pattern GL_TEXTURE_LOD_BIAS_EXT = 0x8501
diff --git a/generated-src/Graphics/GL/Ext/EXT/TextureMirrorClamp.hs b/generated-src/Graphics/GL/Ext/EXT/TextureMirrorClamp.hs
--- a/generated-src/Graphics/GL/Ext/EXT/TextureMirrorClamp.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/TextureMirrorClamp.hs
@@ -19,8 +19,14 @@
 gl_EXT_texture_mirror_clamp = member "GL_EXT_texture_mirror_clamp" extensions
 {-# NOINLINE gl_EXT_texture_mirror_clamp #-}
 
+pattern GL_MIRROR_CLAMP_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MIRROR_CLAMP_EXT = 0x8742
 
+pattern GL_MIRROR_CLAMP_TO_BORDER_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MIRROR_CLAMP_TO_BORDER_EXT = 0x8912
+
+pattern GL_MIRROR_CLAMP_TO_EDGE_EXT  :: (Eq a, Num a) => a
 
 pattern GL_MIRROR_CLAMP_TO_EDGE_EXT = 0x8743
diff --git a/generated-src/Graphics/GL/Ext/EXT/TextureNorm16.hs b/generated-src/Graphics/GL/Ext/EXT/TextureNorm16.hs
--- a/generated-src/Graphics/GL/Ext/EXT/TextureNorm16.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/TextureNorm16.hs
@@ -25,8 +25,14 @@
 gl_EXT_texture_norm16 = member "GL_EXT_texture_norm16" extensions
 {-# NOINLINE gl_EXT_texture_norm16 #-}
 
+pattern GL_R16_EXT  :: (Eq a, Num a) => a
+
 pattern GL_R16_EXT = 0x822A
 
+pattern GL_RG16_EXT  :: (Eq a, Num a) => a
+
 pattern GL_RG16_EXT = 0x822C
+
+pattern GL_RGB16_SNORM_EXT  :: (Eq a, Num a) => a
 
 pattern GL_RGB16_SNORM_EXT = 0x8F9A
diff --git a/generated-src/Graphics/GL/Ext/EXT/TextureObject.hs b/generated-src/Graphics/GL/Ext/EXT/TextureObject.hs
--- a/generated-src/Graphics/GL/Ext/EXT/TextureObject.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/TextureObject.hs
@@ -132,12 +132,22 @@
 
 {-# NOINLINE glPrioritizeTexturesEXTFunPtr #-}
 
+pattern GL_TEXTURE_1D_BINDING_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_1D_BINDING_EXT = 0x8068
 
+pattern GL_TEXTURE_2D_BINDING_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_2D_BINDING_EXT = 0x8069
 
+pattern GL_TEXTURE_3D_BINDING_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_3D_BINDING_EXT = 0x806A
 
+pattern GL_TEXTURE_PRIORITY_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_PRIORITY_EXT = 0x8066
+
+pattern GL_TEXTURE_RESIDENT_EXT  :: (Eq a, Num a) => a
 
 pattern GL_TEXTURE_RESIDENT_EXT = 0x8067
diff --git a/generated-src/Graphics/GL/Ext/EXT/TexturePerturbNormal.hs b/generated-src/Graphics/GL/Ext/EXT/TexturePerturbNormal.hs
--- a/generated-src/Graphics/GL/Ext/EXT/TexturePerturbNormal.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/TexturePerturbNormal.hs
@@ -37,6 +37,10 @@
 
 {-# NOINLINE glTextureNormalEXTFunPtr #-}
 
+pattern GL_PERTURB_EXT  :: (Eq a, Num a) => a
+
 pattern GL_PERTURB_EXT = 0x85AE
+
+pattern GL_TEXTURE_NORMAL_EXT  :: (Eq a, Num a) => a
 
 pattern GL_TEXTURE_NORMAL_EXT = 0x85AF
diff --git a/generated-src/Graphics/GL/Ext/EXT/TextureRg.hs b/generated-src/Graphics/GL/Ext/EXT/TextureRg.hs
--- a/generated-src/Graphics/GL/Ext/EXT/TextureRg.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/TextureRg.hs
@@ -21,6 +21,10 @@
 gl_EXT_texture_rg = member "GL_EXT_texture_rg" extensions
 {-# NOINLINE gl_EXT_texture_rg #-}
 
+pattern GL_RED_EXT  :: (Eq a, Num a) => a
+
 pattern GL_RED_EXT = 0x1903
+
+pattern GL_RG_EXT  :: (Eq a, Num a) => a
 
 pattern GL_RG_EXT = 0x8227
diff --git a/generated-src/Graphics/GL/Ext/EXT/TextureSRGB.hs b/generated-src/Graphics/GL/Ext/EXT/TextureSRGB.hs
--- a/generated-src/Graphics/GL/Ext/EXT/TextureSRGB.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/TextureSRGB.hs
@@ -33,28 +33,54 @@
 gl_EXT_texture_sRGB = member "GL_EXT_texture_sRGB" extensions
 {-# NOINLINE gl_EXT_texture_sRGB #-}
 
+pattern GL_COMPRESSED_SLUMINANCE_ALPHA_EXT  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_SLUMINANCE_ALPHA_EXT = 0x8C4B
 
+pattern GL_COMPRESSED_SLUMINANCE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_SLUMINANCE_EXT = 0x8C4A
 
+pattern GL_COMPRESSED_SRGB_ALPHA_EXT  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_SRGB_ALPHA_EXT = 0x8C49
 
+pattern GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT = 0x8C4D
 
+pattern GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT = 0x8C4E
 
+pattern GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT = 0x8C4F
 
+pattern GL_COMPRESSED_SRGB_EXT  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_SRGB_EXT = 0x8C48
 
+pattern GL_COMPRESSED_SRGB_S3TC_DXT1_EXT  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_SRGB_S3TC_DXT1_EXT = 0x8C4C
 
+pattern GL_SLUMINANCE8_ALPHA8_EXT  :: (Eq a, Num a) => a
+
 pattern GL_SLUMINANCE8_ALPHA8_EXT = 0x8C45
 
+pattern GL_SLUMINANCE8_EXT  :: (Eq a, Num a) => a
+
 pattern GL_SLUMINANCE8_EXT = 0x8C47
 
+pattern GL_SLUMINANCE_ALPHA_EXT  :: (Eq a, Num a) => a
+
 pattern GL_SLUMINANCE_ALPHA_EXT = 0x8C44
 
+pattern GL_SLUMINANCE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_SLUMINANCE_EXT = 0x8C46
+
+pattern GL_SRGB8_EXT  :: (Eq a, Num a) => a
 
 pattern GL_SRGB8_EXT = 0x8C41
diff --git a/generated-src/Graphics/GL/Ext/EXT/TextureSRGBDecode.hs b/generated-src/Graphics/GL/Ext/EXT/TextureSRGBDecode.hs
--- a/generated-src/Graphics/GL/Ext/EXT/TextureSRGBDecode.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/TextureSRGBDecode.hs
@@ -19,8 +19,14 @@
 gl_EXT_texture_sRGB_decode = member "GL_EXT_texture_sRGB_decode" extensions
 {-# NOINLINE gl_EXT_texture_sRGB_decode #-}
 
+pattern GL_DECODE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_DECODE_EXT = 0x8A49
 
+pattern GL_SKIP_DECODE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_SKIP_DECODE_EXT = 0x8A4A
+
+pattern GL_TEXTURE_SRGB_DECODE_EXT  :: (Eq a, Num a) => a
 
 pattern GL_TEXTURE_SRGB_DECODE_EXT = 0x8A48
diff --git a/generated-src/Graphics/GL/Ext/EXT/TextureSRGBR8.hs b/generated-src/Graphics/GL/Ext/EXT/TextureSRGBR8.hs
--- a/generated-src/Graphics/GL/Ext/EXT/TextureSRGBR8.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/TextureSRGBR8.hs
@@ -17,4 +17,6 @@
 gl_EXT_texture_sRGB_R8 = member "GL_EXT_texture_sRGB_R8" extensions
 {-# NOINLINE gl_EXT_texture_sRGB_R8 #-}
 
+pattern GL_SR8_EXT  :: (Eq a, Num a) => a
+
 pattern GL_SR8_EXT = 0x8FBD
diff --git a/generated-src/Graphics/GL/Ext/EXT/TextureSRGBRG8.hs b/generated-src/Graphics/GL/Ext/EXT/TextureSRGBRG8.hs
--- a/generated-src/Graphics/GL/Ext/EXT/TextureSRGBRG8.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/TextureSRGBRG8.hs
@@ -17,4 +17,6 @@
 gl_EXT_texture_sRGB_RG8 = member "GL_EXT_texture_sRGB_RG8" extensions
 {-# NOINLINE gl_EXT_texture_sRGB_RG8 #-}
 
+pattern GL_SRG8_EXT  :: (Eq a, Num a) => a
+
 pattern GL_SRG8_EXT = 0x8FBE
diff --git a/generated-src/Graphics/GL/Ext/EXT/TextureSharedExponent.hs b/generated-src/Graphics/GL/Ext/EXT/TextureSharedExponent.hs
--- a/generated-src/Graphics/GL/Ext/EXT/TextureSharedExponent.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/TextureSharedExponent.hs
@@ -19,8 +19,14 @@
 gl_EXT_texture_shared_exponent = member "GL_EXT_texture_shared_exponent" extensions
 {-# NOINLINE gl_EXT_texture_shared_exponent #-}
 
+pattern GL_RGB9_E5_EXT  :: (Eq a, Num a) => a
+
 pattern GL_RGB9_E5_EXT = 0x8C3D
 
+pattern GL_TEXTURE_SHARED_SIZE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_SHARED_SIZE_EXT = 0x8C3F
+
+pattern GL_UNSIGNED_INT_5_9_9_9_REV_EXT  :: (Eq a, Num a) => a
 
 pattern GL_UNSIGNED_INT_5_9_9_9_REV_EXT = 0x8C3E
diff --git a/generated-src/Graphics/GL/Ext/EXT/TextureSnorm.hs b/generated-src/Graphics/GL/Ext/EXT/TextureSnorm.hs
--- a/generated-src/Graphics/GL/Ext/EXT/TextureSnorm.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/TextureSnorm.hs
@@ -42,34 +42,66 @@
 gl_EXT_texture_snorm = member "GL_EXT_texture_snorm" extensions
 {-# NOINLINE gl_EXT_texture_snorm #-}
 
+pattern GL_ALPHA16_SNORM  :: (Eq a, Num a) => a
+
 pattern GL_ALPHA16_SNORM = 0x9018
 
+pattern GL_ALPHA8_SNORM  :: (Eq a, Num a) => a
+
 pattern GL_ALPHA8_SNORM = 0x9014
 
+pattern GL_ALPHA_SNORM  :: (Eq a, Num a) => a
+
 pattern GL_ALPHA_SNORM = 0x9010
 
+pattern GL_INTENSITY16_SNORM  :: (Eq a, Num a) => a
+
 pattern GL_INTENSITY16_SNORM = 0x901B
 
+pattern GL_INTENSITY8_SNORM  :: (Eq a, Num a) => a
+
 pattern GL_INTENSITY8_SNORM = 0x9017
 
+pattern GL_INTENSITY_SNORM  :: (Eq a, Num a) => a
+
 pattern GL_INTENSITY_SNORM = 0x9013
 
+pattern GL_LUMINANCE16_ALPHA16_SNORM  :: (Eq a, Num a) => a
+
 pattern GL_LUMINANCE16_ALPHA16_SNORM = 0x901A
 
+pattern GL_LUMINANCE16_SNORM  :: (Eq a, Num a) => a
+
 pattern GL_LUMINANCE16_SNORM = 0x9019
 
+pattern GL_LUMINANCE8_ALPHA8_SNORM  :: (Eq a, Num a) => a
+
 pattern GL_LUMINANCE8_ALPHA8_SNORM = 0x9016
 
+pattern GL_LUMINANCE8_SNORM  :: (Eq a, Num a) => a
+
 pattern GL_LUMINANCE8_SNORM = 0x9015
 
+pattern GL_LUMINANCE_ALPHA_SNORM  :: (Eq a, Num a) => a
+
 pattern GL_LUMINANCE_ALPHA_SNORM = 0x9012
 
+pattern GL_LUMINANCE_SNORM  :: (Eq a, Num a) => a
+
 pattern GL_LUMINANCE_SNORM = 0x9011
 
+pattern GL_RED_SNORM  :: (Eq a, Num a) => a
+
 pattern GL_RED_SNORM = 0x8F90
 
+pattern GL_RGBA_SNORM  :: (Eq a, Num a) => a
+
 pattern GL_RGBA_SNORM = 0x8F93
 
+pattern GL_RGB_SNORM  :: (Eq a, Num a) => a
+
 pattern GL_RGB_SNORM = 0x8F92
+
+pattern GL_RG_SNORM  :: (Eq a, Num a) => a
 
 pattern GL_RG_SNORM = 0x8F91
diff --git a/generated-src/Graphics/GL/Ext/EXT/TextureStorage.hs b/generated-src/Graphics/GL/Ext/EXT/TextureStorage.hs
--- a/generated-src/Graphics/GL/Ext/EXT/TextureStorage.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/TextureStorage.hs
@@ -90,24 +90,46 @@
 
 {-# NOINLINE glTexStorage3DEXTFunPtr #-}
 
+pattern GL_ALPHA16F_EXT  :: (Eq a, Num a) => a
+
 pattern GL_ALPHA16F_EXT = 0x881C
 
+pattern GL_ALPHA32F_EXT  :: (Eq a, Num a) => a
+
 pattern GL_ALPHA32F_EXT = 0x8816
 
+pattern GL_LUMINANCE16F_EXT  :: (Eq a, Num a) => a
+
 pattern GL_LUMINANCE16F_EXT = 0x881E
 
+pattern GL_LUMINANCE32F_EXT  :: (Eq a, Num a) => a
+
 pattern GL_LUMINANCE32F_EXT = 0x8818
 
+pattern GL_LUMINANCE_ALPHA16F_EXT  :: (Eq a, Num a) => a
+
 pattern GL_LUMINANCE_ALPHA16F_EXT = 0x881F
 
+pattern GL_LUMINANCE_ALPHA32F_EXT  :: (Eq a, Num a) => a
+
 pattern GL_LUMINANCE_ALPHA32F_EXT = 0x8819
 
+pattern GL_R32F_EXT  :: (Eq a, Num a) => a
+
 pattern GL_R32F_EXT = 0x822E
 
+pattern GL_RG32F_EXT  :: (Eq a, Num a) => a
+
 pattern GL_RG32F_EXT = 0x8230
 
+pattern GL_RGB32F_EXT  :: (Eq a, Num a) => a
+
 pattern GL_RGB32F_EXT = 0x8815
 
+pattern GL_RGBA32F_EXT  :: (Eq a, Num a) => a
+
 pattern GL_RGBA32F_EXT = 0x8814
+
+pattern GL_TEXTURE_IMMUTABLE_FORMAT_EXT  :: (Eq a, Num a) => a
 
 pattern GL_TEXTURE_IMMUTABLE_FORMAT_EXT = 0x912F
diff --git a/generated-src/Graphics/GL/Ext/EXT/TextureSwizzle.hs b/generated-src/Graphics/GL/Ext/EXT/TextureSwizzle.hs
--- a/generated-src/Graphics/GL/Ext/EXT/TextureSwizzle.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/TextureSwizzle.hs
@@ -21,12 +21,22 @@
 gl_EXT_texture_swizzle = member "GL_EXT_texture_swizzle" extensions
 {-# NOINLINE gl_EXT_texture_swizzle #-}
 
+pattern GL_TEXTURE_SWIZZLE_A_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_SWIZZLE_A_EXT = 0x8E45
 
+pattern GL_TEXTURE_SWIZZLE_B_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_SWIZZLE_B_EXT = 0x8E44
 
+pattern GL_TEXTURE_SWIZZLE_G_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_SWIZZLE_G_EXT = 0x8E43
 
+pattern GL_TEXTURE_SWIZZLE_RGBA_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_SWIZZLE_RGBA_EXT = 0x8E46
+
+pattern GL_TEXTURE_SWIZZLE_R_EXT  :: (Eq a, Num a) => a
 
 pattern GL_TEXTURE_SWIZZLE_R_EXT = 0x8E42
diff --git a/generated-src/Graphics/GL/Ext/EXT/TextureType2101010REV.hs b/generated-src/Graphics/GL/Ext/EXT/TextureType2101010REV.hs
--- a/generated-src/Graphics/GL/Ext/EXT/TextureType2101010REV.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/TextureType2101010REV.hs
@@ -17,4 +17,6 @@
 gl_EXT_texture_type_2_10_10_10_REV = member "GL_EXT_texture_type_2_10_10_10_REV" extensions
 {-# NOINLINE gl_EXT_texture_type_2_10_10_10_REV #-}
 
+pattern GL_UNSIGNED_INT_2_10_10_10_REV_EXT  :: (Eq a, Num a) => a
+
 pattern GL_UNSIGNED_INT_2_10_10_10_REV_EXT = 0x8368
diff --git a/generated-src/Graphics/GL/Ext/EXT/TextureView.hs b/generated-src/Graphics/GL/Ext/EXT/TextureView.hs
--- a/generated-src/Graphics/GL/Ext/EXT/TextureView.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/TextureView.hs
@@ -41,10 +41,18 @@
 
 {-# NOINLINE glTextureViewEXTFunPtr #-}
 
+pattern GL_TEXTURE_VIEW_MIN_LAYER_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_VIEW_MIN_LAYER_EXT = 0x82DD
 
+pattern GL_TEXTURE_VIEW_MIN_LEVEL_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_VIEW_MIN_LEVEL_EXT = 0x82DB
 
+pattern GL_TEXTURE_VIEW_NUM_LAYERS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_VIEW_NUM_LAYERS_EXT = 0x82DE
+
+pattern GL_TEXTURE_VIEW_NUM_LEVELS_EXT  :: (Eq a, Num a) => a
 
 pattern GL_TEXTURE_VIEW_NUM_LEVELS_EXT = 0x82DC
diff --git a/generated-src/Graphics/GL/Ext/EXT/TransformFeedback.hs b/generated-src/Graphics/GL/Ext/EXT/TransformFeedback.hs
--- a/generated-src/Graphics/GL/Ext/EXT/TransformFeedback.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/TransformFeedback.hs
@@ -149,30 +149,58 @@
 
 {-# NOINLINE glTransformFeedbackVaryingsEXTFunPtr #-}
 
+pattern GL_INTERLEAVED_ATTRIBS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_INTERLEAVED_ATTRIBS_EXT = 0x8C8C
 
+pattern GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT = 0x8C8A
 
+pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT = 0x8C8B
 
+pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT = 0x8C80
 
+pattern GL_RASTERIZER_DISCARD_EXT  :: (Eq a, Num a) => a
+
 pattern GL_RASTERIZER_DISCARD_EXT = 0x8C89
 
+pattern GL_SEPARATE_ATTRIBS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_SEPARATE_ATTRIBS_EXT = 0x8C8D
 
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT = 0x8C8F
 
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TRANSFORM_FEEDBACK_BUFFER_EXT = 0x8C8E
 
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT = 0x8C7F
 
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT = 0x8C85
 
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT = 0x8C84
 
+pattern GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT = 0x8C88
 
+pattern GL_TRANSFORM_FEEDBACK_VARYINGS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TRANSFORM_FEEDBACK_VARYINGS_EXT = 0x8C83
+
+pattern GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT  :: (Eq a, Num a) => a
 
 pattern GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT = 0x8C76
diff --git a/generated-src/Graphics/GL/Ext/EXT/UnpackSubimage.hs b/generated-src/Graphics/GL/Ext/EXT/UnpackSubimage.hs
--- a/generated-src/Graphics/GL/Ext/EXT/UnpackSubimage.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/UnpackSubimage.hs
@@ -19,8 +19,14 @@
 gl_EXT_unpack_subimage = member "GL_EXT_unpack_subimage" extensions
 {-# NOINLINE gl_EXT_unpack_subimage #-}
 
+pattern GL_UNPACK_ROW_LENGTH_EXT  :: (Eq a, Num a) => a
+
 pattern GL_UNPACK_ROW_LENGTH_EXT = 0x0CF2
 
+pattern GL_UNPACK_SKIP_PIXELS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_UNPACK_SKIP_PIXELS_EXT = 0x0CF4
+
+pattern GL_UNPACK_SKIP_ROWS_EXT  :: (Eq a, Num a) => a
 
 pattern GL_UNPACK_SKIP_ROWS_EXT = 0x0CF3
diff --git a/generated-src/Graphics/GL/Ext/EXT/VertexArray.hs b/generated-src/Graphics/GL/Ext/EXT/VertexArray.hs
--- a/generated-src/Graphics/GL/Ext/EXT/VertexArray.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/VertexArray.hs
@@ -197,66 +197,130 @@
 
 {-# NOINLINE glVertexPointerEXTFunPtr #-}
 
+pattern GL_COLOR_ARRAY_COUNT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_COLOR_ARRAY_COUNT_EXT = 0x8084
 
+pattern GL_COLOR_ARRAY_EXT  :: (Eq a, Num a) => a
+
 pattern GL_COLOR_ARRAY_EXT = 0x8076
 
+pattern GL_COLOR_ARRAY_POINTER_EXT  :: (Eq a, Num a) => a
+
 pattern GL_COLOR_ARRAY_POINTER_EXT = 0x8090
 
+pattern GL_COLOR_ARRAY_SIZE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_COLOR_ARRAY_SIZE_EXT = 0x8081
 
+pattern GL_COLOR_ARRAY_STRIDE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_COLOR_ARRAY_STRIDE_EXT = 0x8083
 
+pattern GL_COLOR_ARRAY_TYPE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_COLOR_ARRAY_TYPE_EXT = 0x8082
 
+pattern GL_EDGE_FLAG_ARRAY_COUNT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_EDGE_FLAG_ARRAY_COUNT_EXT = 0x808D
 
+pattern GL_EDGE_FLAG_ARRAY_EXT  :: (Eq a, Num a) => a
+
 pattern GL_EDGE_FLAG_ARRAY_EXT = 0x8079
 
+pattern GL_EDGE_FLAG_ARRAY_POINTER_EXT  :: (Eq a, Num a) => a
+
 pattern GL_EDGE_FLAG_ARRAY_POINTER_EXT = 0x8093
 
+pattern GL_EDGE_FLAG_ARRAY_STRIDE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_EDGE_FLAG_ARRAY_STRIDE_EXT = 0x808C
 
+pattern GL_INDEX_ARRAY_COUNT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_INDEX_ARRAY_COUNT_EXT = 0x8087
 
+pattern GL_INDEX_ARRAY_EXT  :: (Eq a, Num a) => a
+
 pattern GL_INDEX_ARRAY_EXT = 0x8077
 
+pattern GL_INDEX_ARRAY_POINTER_EXT  :: (Eq a, Num a) => a
+
 pattern GL_INDEX_ARRAY_POINTER_EXT = 0x8091
 
+pattern GL_INDEX_ARRAY_STRIDE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_INDEX_ARRAY_STRIDE_EXT = 0x8086
 
+pattern GL_INDEX_ARRAY_TYPE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_INDEX_ARRAY_TYPE_EXT = 0x8085
 
+pattern GL_NORMAL_ARRAY_COUNT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_NORMAL_ARRAY_COUNT_EXT = 0x8080
 
+pattern GL_NORMAL_ARRAY_EXT  :: (Eq a, Num a) => a
+
 pattern GL_NORMAL_ARRAY_EXT = 0x8075
 
+pattern GL_NORMAL_ARRAY_POINTER_EXT  :: (Eq a, Num a) => a
+
 pattern GL_NORMAL_ARRAY_POINTER_EXT = 0x808F
 
+pattern GL_NORMAL_ARRAY_STRIDE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_NORMAL_ARRAY_STRIDE_EXT = 0x807F
 
+pattern GL_NORMAL_ARRAY_TYPE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_NORMAL_ARRAY_TYPE_EXT = 0x807E
 
+pattern GL_TEXTURE_COORD_ARRAY_COUNT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_COORD_ARRAY_COUNT_EXT = 0x808B
 
+pattern GL_TEXTURE_COORD_ARRAY_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_COORD_ARRAY_EXT = 0x8078
 
+pattern GL_TEXTURE_COORD_ARRAY_POINTER_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_COORD_ARRAY_POINTER_EXT = 0x8092
 
+pattern GL_TEXTURE_COORD_ARRAY_SIZE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_COORD_ARRAY_SIZE_EXT = 0x8088
 
+pattern GL_TEXTURE_COORD_ARRAY_STRIDE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_COORD_ARRAY_STRIDE_EXT = 0x808A
 
+pattern GL_TEXTURE_COORD_ARRAY_TYPE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_COORD_ARRAY_TYPE_EXT = 0x8089
 
+pattern GL_VERTEX_ARRAY_COUNT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_ARRAY_COUNT_EXT = 0x807D
 
+pattern GL_VERTEX_ARRAY_EXT  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_ARRAY_EXT = 0x8074
 
+pattern GL_VERTEX_ARRAY_POINTER_EXT  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_ARRAY_POINTER_EXT = 0x808E
 
+pattern GL_VERTEX_ARRAY_SIZE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_ARRAY_SIZE_EXT = 0x807A
 
+pattern GL_VERTEX_ARRAY_STRIDE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_ARRAY_STRIDE_EXT = 0x807C
+
+pattern GL_VERTEX_ARRAY_TYPE_EXT  :: (Eq a, Num a) => a
 
 pattern GL_VERTEX_ARRAY_TYPE_EXT = 0x807B
diff --git a/generated-src/Graphics/GL/Ext/EXT/VertexAttrib64bit.hs b/generated-src/Graphics/GL/Ext/EXT/VertexAttrib64bit.hs
--- a/generated-src/Graphics/GL/Ext/EXT/VertexAttrib64bit.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/VertexAttrib64bit.hs
@@ -187,26 +187,50 @@
 
 {-# NOINLINE glVertexAttribLPointerEXTFunPtr #-}
 
+pattern GL_DOUBLE_MAT2_EXT  :: (Eq a, Num a) => a
+
 pattern GL_DOUBLE_MAT2_EXT = 0x8F46
 
+pattern GL_DOUBLE_MAT2x3_EXT  :: (Eq a, Num a) => a
+
 pattern GL_DOUBLE_MAT2x3_EXT = 0x8F49
 
+pattern GL_DOUBLE_MAT2x4_EXT  :: (Eq a, Num a) => a
+
 pattern GL_DOUBLE_MAT2x4_EXT = 0x8F4A
 
+pattern GL_DOUBLE_MAT3_EXT  :: (Eq a, Num a) => a
+
 pattern GL_DOUBLE_MAT3_EXT = 0x8F47
 
+pattern GL_DOUBLE_MAT3x2_EXT  :: (Eq a, Num a) => a
+
 pattern GL_DOUBLE_MAT3x2_EXT = 0x8F4B
 
+pattern GL_DOUBLE_MAT3x4_EXT  :: (Eq a, Num a) => a
+
 pattern GL_DOUBLE_MAT3x4_EXT = 0x8F4C
 
+pattern GL_DOUBLE_MAT4_EXT  :: (Eq a, Num a) => a
+
 pattern GL_DOUBLE_MAT4_EXT = 0x8F48
 
+pattern GL_DOUBLE_MAT4x2_EXT  :: (Eq a, Num a) => a
+
 pattern GL_DOUBLE_MAT4x2_EXT = 0x8F4D
 
+pattern GL_DOUBLE_MAT4x3_EXT  :: (Eq a, Num a) => a
+
 pattern GL_DOUBLE_MAT4x3_EXT = 0x8F4E
 
+pattern GL_DOUBLE_VEC2_EXT  :: (Eq a, Num a) => a
+
 pattern GL_DOUBLE_VEC2_EXT = 0x8FFC
 
+pattern GL_DOUBLE_VEC3_EXT  :: (Eq a, Num a) => a
+
 pattern GL_DOUBLE_VEC3_EXT = 0x8FFD
+
+pattern GL_DOUBLE_VEC4_EXT  :: (Eq a, Num a) => a
 
 pattern GL_DOUBLE_VEC4_EXT = 0x8FFE
diff --git a/generated-src/Graphics/GL/Ext/EXT/VertexShader.hs b/generated-src/Graphics/GL/Ext/EXT/VertexShader.hs
--- a/generated-src/Graphics/GL/Ext/EXT/VertexShader.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/VertexShader.hs
@@ -759,222 +759,442 @@
 
 {-# NOINLINE glWriteMaskEXTFunPtr #-}
 
+pattern GL_CURRENT_VERTEX_EXT  :: (Eq a, Num a) => a
+
 pattern GL_CURRENT_VERTEX_EXT = 0x87E2
 
+pattern GL_FULL_RANGE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_FULL_RANGE_EXT = 0x87E1
 
+pattern GL_INVARIANT_DATATYPE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_INVARIANT_DATATYPE_EXT = 0x87EB
 
+pattern GL_INVARIANT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_INVARIANT_EXT = 0x87C2
 
+pattern GL_INVARIANT_VALUE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_INVARIANT_VALUE_EXT = 0x87EA
 
+pattern GL_LOCAL_CONSTANT_DATATYPE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_LOCAL_CONSTANT_DATATYPE_EXT = 0x87ED
 
+pattern GL_LOCAL_CONSTANT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_LOCAL_CONSTANT_EXT = 0x87C3
 
+pattern GL_LOCAL_CONSTANT_VALUE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_LOCAL_CONSTANT_VALUE_EXT = 0x87EC
 
+pattern GL_LOCAL_EXT  :: (Eq a, Num a) => a
+
 pattern GL_LOCAL_EXT = 0x87C4
 
+pattern GL_MATRIX_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MATRIX_EXT = 0x87C0
 
+pattern GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT = 0x87CA
 
+pattern GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT = 0x87CD
 
+pattern GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT = 0x87CE
 
+pattern GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = 0x87CC
 
+pattern GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT = 0x87CB
 
+pattern GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT = 0x87C5
 
+pattern GL_MAX_VERTEX_SHADER_INVARIANTS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_VERTEX_SHADER_INVARIANTS_EXT = 0x87C7
 
+pattern GL_MAX_VERTEX_SHADER_LOCALS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_VERTEX_SHADER_LOCALS_EXT = 0x87C9
 
+pattern GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = 0x87C8
 
+pattern GL_MAX_VERTEX_SHADER_VARIANTS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_VERTEX_SHADER_VARIANTS_EXT = 0x87C6
 
+pattern GL_MVP_MATRIX_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MVP_MATRIX_EXT = 0x87E3
 
+pattern GL_NEGATIVE_ONE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_NEGATIVE_ONE_EXT = 0x87DF
 
+pattern GL_NEGATIVE_W_EXT  :: (Eq a, Num a) => a
+
 pattern GL_NEGATIVE_W_EXT = 0x87DC
 
+pattern GL_NEGATIVE_X_EXT  :: (Eq a, Num a) => a
+
 pattern GL_NEGATIVE_X_EXT = 0x87D9
 
+pattern GL_NEGATIVE_Y_EXT  :: (Eq a, Num a) => a
+
 pattern GL_NEGATIVE_Y_EXT = 0x87DA
 
+pattern GL_NEGATIVE_Z_EXT  :: (Eq a, Num a) => a
+
 pattern GL_NEGATIVE_Z_EXT = 0x87DB
 
+pattern GL_NORMALIZED_RANGE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_NORMALIZED_RANGE_EXT = 0x87E0
 
+pattern GL_ONE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_ONE_EXT = 0x87DE
 
+pattern GL_OP_ADD_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OP_ADD_EXT = 0x8787
 
+pattern GL_OP_CLAMP_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OP_CLAMP_EXT = 0x878E
 
+pattern GL_OP_CROSS_PRODUCT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OP_CROSS_PRODUCT_EXT = 0x8797
 
+pattern GL_OP_DOT3_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OP_DOT3_EXT = 0x8784
 
+pattern GL_OP_DOT4_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OP_DOT4_EXT = 0x8785
 
+pattern GL_OP_EXP_BASE_2_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OP_EXP_BASE_2_EXT = 0x8791
 
+pattern GL_OP_FLOOR_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OP_FLOOR_EXT = 0x878F
 
+pattern GL_OP_FRAC_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OP_FRAC_EXT = 0x8789
 
+pattern GL_OP_INDEX_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OP_INDEX_EXT = 0x8782
 
+pattern GL_OP_LOG_BASE_2_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OP_LOG_BASE_2_EXT = 0x8792
 
+pattern GL_OP_MADD_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OP_MADD_EXT = 0x8788
 
+pattern GL_OP_MAX_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OP_MAX_EXT = 0x878A
 
+pattern GL_OP_MIN_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OP_MIN_EXT = 0x878B
 
+pattern GL_OP_MOV_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OP_MOV_EXT = 0x8799
 
+pattern GL_OP_MULTIPLY_MATRIX_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OP_MULTIPLY_MATRIX_EXT = 0x8798
 
+pattern GL_OP_MUL_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OP_MUL_EXT = 0x8786
 
+pattern GL_OP_NEGATE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OP_NEGATE_EXT = 0x8783
 
+pattern GL_OP_POWER_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OP_POWER_EXT = 0x8793
 
+pattern GL_OP_RECIP_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OP_RECIP_EXT = 0x8794
 
+pattern GL_OP_RECIP_SQRT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OP_RECIP_SQRT_EXT = 0x8795
 
+pattern GL_OP_ROUND_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OP_ROUND_EXT = 0x8790
 
+pattern GL_OP_SET_GE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OP_SET_GE_EXT = 0x878C
 
+pattern GL_OP_SET_LT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OP_SET_LT_EXT = 0x878D
 
+pattern GL_OP_SUB_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OP_SUB_EXT = 0x8796
 
+pattern GL_OUTPUT_COLOR0_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OUTPUT_COLOR0_EXT = 0x879B
 
+pattern GL_OUTPUT_COLOR1_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OUTPUT_COLOR1_EXT = 0x879C
 
+pattern GL_OUTPUT_FOG_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OUTPUT_FOG_EXT = 0x87BD
 
+pattern GL_OUTPUT_TEXTURE_COORD0_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OUTPUT_TEXTURE_COORD0_EXT = 0x879D
 
+pattern GL_OUTPUT_TEXTURE_COORD10_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OUTPUT_TEXTURE_COORD10_EXT = 0x87A7
 
+pattern GL_OUTPUT_TEXTURE_COORD11_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OUTPUT_TEXTURE_COORD11_EXT = 0x87A8
 
+pattern GL_OUTPUT_TEXTURE_COORD12_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OUTPUT_TEXTURE_COORD12_EXT = 0x87A9
 
+pattern GL_OUTPUT_TEXTURE_COORD13_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OUTPUT_TEXTURE_COORD13_EXT = 0x87AA
 
+pattern GL_OUTPUT_TEXTURE_COORD14_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OUTPUT_TEXTURE_COORD14_EXT = 0x87AB
 
+pattern GL_OUTPUT_TEXTURE_COORD15_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OUTPUT_TEXTURE_COORD15_EXT = 0x87AC
 
+pattern GL_OUTPUT_TEXTURE_COORD16_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OUTPUT_TEXTURE_COORD16_EXT = 0x87AD
 
+pattern GL_OUTPUT_TEXTURE_COORD17_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OUTPUT_TEXTURE_COORD17_EXT = 0x87AE
 
+pattern GL_OUTPUT_TEXTURE_COORD18_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OUTPUT_TEXTURE_COORD18_EXT = 0x87AF
 
+pattern GL_OUTPUT_TEXTURE_COORD19_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OUTPUT_TEXTURE_COORD19_EXT = 0x87B0
 
+pattern GL_OUTPUT_TEXTURE_COORD1_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OUTPUT_TEXTURE_COORD1_EXT = 0x879E
 
+pattern GL_OUTPUT_TEXTURE_COORD20_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OUTPUT_TEXTURE_COORD20_EXT = 0x87B1
 
+pattern GL_OUTPUT_TEXTURE_COORD21_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OUTPUT_TEXTURE_COORD21_EXT = 0x87B2
 
+pattern GL_OUTPUT_TEXTURE_COORD22_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OUTPUT_TEXTURE_COORD22_EXT = 0x87B3
 
+pattern GL_OUTPUT_TEXTURE_COORD23_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OUTPUT_TEXTURE_COORD23_EXT = 0x87B4
 
+pattern GL_OUTPUT_TEXTURE_COORD24_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OUTPUT_TEXTURE_COORD24_EXT = 0x87B5
 
+pattern GL_OUTPUT_TEXTURE_COORD25_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OUTPUT_TEXTURE_COORD25_EXT = 0x87B6
 
+pattern GL_OUTPUT_TEXTURE_COORD26_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OUTPUT_TEXTURE_COORD26_EXT = 0x87B7
 
+pattern GL_OUTPUT_TEXTURE_COORD27_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OUTPUT_TEXTURE_COORD27_EXT = 0x87B8
 
+pattern GL_OUTPUT_TEXTURE_COORD28_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OUTPUT_TEXTURE_COORD28_EXT = 0x87B9
 
+pattern GL_OUTPUT_TEXTURE_COORD29_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OUTPUT_TEXTURE_COORD29_EXT = 0x87BA
 
+pattern GL_OUTPUT_TEXTURE_COORD2_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OUTPUT_TEXTURE_COORD2_EXT = 0x879F
 
+pattern GL_OUTPUT_TEXTURE_COORD30_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OUTPUT_TEXTURE_COORD30_EXT = 0x87BB
 
+pattern GL_OUTPUT_TEXTURE_COORD31_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OUTPUT_TEXTURE_COORD31_EXT = 0x87BC
 
+pattern GL_OUTPUT_TEXTURE_COORD3_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OUTPUT_TEXTURE_COORD3_EXT = 0x87A0
 
+pattern GL_OUTPUT_TEXTURE_COORD4_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OUTPUT_TEXTURE_COORD4_EXT = 0x87A1
 
+pattern GL_OUTPUT_TEXTURE_COORD5_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OUTPUT_TEXTURE_COORD5_EXT = 0x87A2
 
+pattern GL_OUTPUT_TEXTURE_COORD6_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OUTPUT_TEXTURE_COORD6_EXT = 0x87A3
 
+pattern GL_OUTPUT_TEXTURE_COORD7_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OUTPUT_TEXTURE_COORD7_EXT = 0x87A4
 
+pattern GL_OUTPUT_TEXTURE_COORD8_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OUTPUT_TEXTURE_COORD8_EXT = 0x87A5
 
+pattern GL_OUTPUT_TEXTURE_COORD9_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OUTPUT_TEXTURE_COORD9_EXT = 0x87A6
 
+pattern GL_OUTPUT_VERTEX_EXT  :: (Eq a, Num a) => a
+
 pattern GL_OUTPUT_VERTEX_EXT = 0x879A
 
+pattern GL_SCALAR_EXT  :: (Eq a, Num a) => a
+
 pattern GL_SCALAR_EXT = 0x87BE
 
+pattern GL_VARIANT_ARRAY_EXT  :: (Eq a, Num a) => a
+
 pattern GL_VARIANT_ARRAY_EXT = 0x87E8
 
+pattern GL_VARIANT_ARRAY_POINTER_EXT  :: (Eq a, Num a) => a
+
 pattern GL_VARIANT_ARRAY_POINTER_EXT = 0x87E9
 
+pattern GL_VARIANT_ARRAY_STRIDE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_VARIANT_ARRAY_STRIDE_EXT = 0x87E6
 
+pattern GL_VARIANT_ARRAY_TYPE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_VARIANT_ARRAY_TYPE_EXT = 0x87E7
 
+pattern GL_VARIANT_DATATYPE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_VARIANT_DATATYPE_EXT = 0x87E5
 
+pattern GL_VARIANT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_VARIANT_EXT = 0x87C1
 
+pattern GL_VARIANT_VALUE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_VARIANT_VALUE_EXT = 0x87E4
 
+pattern GL_VECTOR_EXT  :: (Eq a, Num a) => a
+
 pattern GL_VECTOR_EXT = 0x87BF
 
+pattern GL_VERTEX_SHADER_BINDING_EXT  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_SHADER_BINDING_EXT = 0x8781
 
+pattern GL_VERTEX_SHADER_EXT  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_SHADER_EXT = 0x8780
 
+pattern GL_VERTEX_SHADER_INSTRUCTIONS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_SHADER_INSTRUCTIONS_EXT = 0x87CF
 
+pattern GL_VERTEX_SHADER_INVARIANTS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_SHADER_INVARIANTS_EXT = 0x87D1
 
+pattern GL_VERTEX_SHADER_LOCALS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_SHADER_LOCALS_EXT = 0x87D3
 
+pattern GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = 0x87D2
 
+pattern GL_VERTEX_SHADER_OPTIMIZED_EXT  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_SHADER_OPTIMIZED_EXT = 0x87D4
 
+pattern GL_VERTEX_SHADER_VARIANTS_EXT  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_SHADER_VARIANTS_EXT = 0x87D0
 
+pattern GL_W_EXT  :: (Eq a, Num a) => a
+
 pattern GL_W_EXT = 0x87D8
 
+pattern GL_X_EXT  :: (Eq a, Num a) => a
+
 pattern GL_X_EXT = 0x87D5
 
+pattern GL_Y_EXT  :: (Eq a, Num a) => a
+
 pattern GL_Y_EXT = 0x87D6
 
+pattern GL_ZERO_EXT  :: (Eq a, Num a) => a
+
 pattern GL_ZERO_EXT = 0x87DD
+
+pattern GL_Z_EXT  :: (Eq a, Num a) => a
 
 pattern GL_Z_EXT = 0x87D7
diff --git a/generated-src/Graphics/GL/Ext/EXT/VertexWeighting.hs b/generated-src/Graphics/GL/Ext/EXT/VertexWeighting.hs
--- a/generated-src/Graphics/GL/Ext/EXT/VertexWeighting.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/VertexWeighting.hs
@@ -78,28 +78,54 @@
 
 {-# NOINLINE glVertexWeightfvEXTFunPtr #-}
 
+pattern GL_CURRENT_VERTEX_WEIGHT_EXT  :: (Eq a, Num a) => a
+
 pattern GL_CURRENT_VERTEX_WEIGHT_EXT = 0x850B
 
+pattern GL_MODELVIEW0_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MODELVIEW0_EXT = 0x1700
 
+pattern GL_MODELVIEW0_MATRIX_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MODELVIEW0_MATRIX_EXT = 0x0BA6
 
+pattern GL_MODELVIEW0_STACK_DEPTH_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MODELVIEW0_STACK_DEPTH_EXT = 0x0BA3
 
+pattern GL_MODELVIEW1_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MODELVIEW1_EXT = 0x850A
 
+pattern GL_MODELVIEW1_MATRIX_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MODELVIEW1_MATRIX_EXT = 0x8506
 
+pattern GL_MODELVIEW1_STACK_DEPTH_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MODELVIEW1_STACK_DEPTH_EXT = 0x8502
 
+pattern GL_VERTEX_WEIGHTING_EXT  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_WEIGHTING_EXT = 0x8509
 
+pattern GL_VERTEX_WEIGHT_ARRAY_EXT  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_WEIGHT_ARRAY_EXT = 0x850C
 
+pattern GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT = 0x8510
 
+pattern GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT = 0x850D
 
+pattern GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT = 0x850F
+
+pattern GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT  :: (Eq a, Num a) => a
 
 pattern GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT = 0x850E
diff --git a/generated-src/Graphics/GL/Ext/EXT/WindowRectangles.hs b/generated-src/Graphics/GL/Ext/EXT/WindowRectangles.hs
--- a/generated-src/Graphics/GL/Ext/EXT/WindowRectangles.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/WindowRectangles.hs
@@ -41,14 +41,26 @@
 
 {-# NOINLINE glWindowRectanglesEXTFunPtr #-}
 
+pattern GL_EXCLUSIVE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_EXCLUSIVE_EXT = 0x8F11
 
+pattern GL_INCLUSIVE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_INCLUSIVE_EXT = 0x8F10
 
+pattern GL_MAX_WINDOW_RECTANGLES_EXT  :: (Eq a, Num a) => a
+
 pattern GL_MAX_WINDOW_RECTANGLES_EXT = 0x8F14
 
+pattern GL_NUM_WINDOW_RECTANGLES_EXT  :: (Eq a, Num a) => a
+
 pattern GL_NUM_WINDOW_RECTANGLES_EXT = 0x8F15
 
+pattern GL_WINDOW_RECTANGLE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_WINDOW_RECTANGLE_EXT = 0x8F12
+
+pattern GL_WINDOW_RECTANGLE_MODE_EXT  :: (Eq a, Num a) => a
 
 pattern GL_WINDOW_RECTANGLE_MODE_EXT = 0x8F13
diff --git a/generated-src/Graphics/GL/Ext/EXT/X11SyncObject.hs b/generated-src/Graphics/GL/Ext/EXT/X11SyncObject.hs
--- a/generated-src/Graphics/GL/Ext/EXT/X11SyncObject.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/X11SyncObject.hs
@@ -34,4 +34,6 @@
 
 {-# NOINLINE glImportSyncEXTFunPtr #-}
 
+pattern GL_SYNC_X11_FENCE_EXT  :: (Eq a, Num a) => a
+
 pattern GL_SYNC_X11_FENCE_EXT = 0x90E1
diff --git a/generated-src/Graphics/GL/Ext/EXT/YUVTarget.hs b/generated-src/Graphics/GL/Ext/EXT/YUVTarget.hs
--- a/generated-src/Graphics/GL/Ext/EXT/YUVTarget.hs
+++ b/generated-src/Graphics/GL/Ext/EXT/YUVTarget.hs
@@ -21,4 +21,6 @@
 gl_EXT_YUV_target = member "GL_EXT_YUV_target" extensions
 {-# NOINLINE gl_EXT_YUV_target #-}
 
+pattern GL_SAMPLER_EXTERNAL_2D_Y2Y_EXT  :: (Eq a, Num a) => a
+
 pattern GL_SAMPLER_EXTERNAL_2D_Y2Y_EXT = 0x8BE7
diff --git a/generated-src/Graphics/GL/Ext/FJ/ShaderBinaryGCCSO.hs b/generated-src/Graphics/GL/Ext/FJ/ShaderBinaryGCCSO.hs
--- a/generated-src/Graphics/GL/Ext/FJ/ShaderBinaryGCCSO.hs
+++ b/generated-src/Graphics/GL/Ext/FJ/ShaderBinaryGCCSO.hs
@@ -17,4 +17,6 @@
 gl_FJ_shader_binary_GCCSO = member "GL_FJ_shader_binary_GCCSO" extensions
 {-# NOINLINE gl_FJ_shader_binary_GCCSO #-}
 
+pattern GL_GCCSO_SHADER_BINARY_FJ  :: (Eq a, Num a) => a
+
 pattern GL_GCCSO_SHADER_BINARY_FJ = 0x9260
diff --git a/generated-src/Graphics/GL/Ext/HP/ConvolutionBorderModes.hs b/generated-src/Graphics/GL/Ext/HP/ConvolutionBorderModes.hs
--- a/generated-src/Graphics/GL/Ext/HP/ConvolutionBorderModes.hs
+++ b/generated-src/Graphics/GL/Ext/HP/ConvolutionBorderModes.hs
@@ -20,10 +20,18 @@
 gl_HP_convolution_border_modes = member "GL_HP_convolution_border_modes" extensions
 {-# NOINLINE gl_HP_convolution_border_modes #-}
 
+pattern GL_CONSTANT_BORDER_HP  :: (Eq a, Num a) => a
+
 pattern GL_CONSTANT_BORDER_HP = 0x8151
 
+pattern GL_CONVOLUTION_BORDER_COLOR_HP  :: (Eq a, Num a) => a
+
 pattern GL_CONVOLUTION_BORDER_COLOR_HP = 0x8154
 
+pattern GL_IGNORE_BORDER_HP  :: (Eq a, Num a) => a
+
 pattern GL_IGNORE_BORDER_HP = 0x8150
+
+pattern GL_REPLICATE_BORDER_HP  :: (Eq a, Num a) => a
 
 pattern GL_REPLICATE_BORDER_HP = 0x8153
diff --git a/generated-src/Graphics/GL/Ext/HP/ImageTransform.hs b/generated-src/Graphics/GL/Ext/HP/ImageTransform.hs
--- a/generated-src/Graphics/GL/Ext/HP/ImageTransform.hs
+++ b/generated-src/Graphics/GL/Ext/HP/ImageTransform.hs
@@ -140,32 +140,62 @@
 
 {-# NOINLINE glImageTransformParameterivHPFunPtr #-}
 
+pattern GL_AVERAGE_HP  :: (Eq a, Num a) => a
+
 pattern GL_AVERAGE_HP = 0x8160
 
+pattern GL_CUBIC_HP  :: (Eq a, Num a) => a
+
 pattern GL_CUBIC_HP = 0x815F
 
+pattern GL_IMAGE_CUBIC_WEIGHT_HP  :: (Eq a, Num a) => a
+
 pattern GL_IMAGE_CUBIC_WEIGHT_HP = 0x815E
 
+pattern GL_IMAGE_MAG_FILTER_HP  :: (Eq a, Num a) => a
+
 pattern GL_IMAGE_MAG_FILTER_HP = 0x815C
 
+pattern GL_IMAGE_MIN_FILTER_HP  :: (Eq a, Num a) => a
+
 pattern GL_IMAGE_MIN_FILTER_HP = 0x815D
 
+pattern GL_IMAGE_ROTATE_ANGLE_HP  :: (Eq a, Num a) => a
+
 pattern GL_IMAGE_ROTATE_ANGLE_HP = 0x8159
 
+pattern GL_IMAGE_ROTATE_ORIGIN_X_HP  :: (Eq a, Num a) => a
+
 pattern GL_IMAGE_ROTATE_ORIGIN_X_HP = 0x815A
 
+pattern GL_IMAGE_ROTATE_ORIGIN_Y_HP  :: (Eq a, Num a) => a
+
 pattern GL_IMAGE_ROTATE_ORIGIN_Y_HP = 0x815B
 
+pattern GL_IMAGE_SCALE_X_HP  :: (Eq a, Num a) => a
+
 pattern GL_IMAGE_SCALE_X_HP = 0x8155
 
+pattern GL_IMAGE_SCALE_Y_HP  :: (Eq a, Num a) => a
+
 pattern GL_IMAGE_SCALE_Y_HP = 0x8156
 
+pattern GL_IMAGE_TRANSFORM_2D_HP  :: (Eq a, Num a) => a
+
 pattern GL_IMAGE_TRANSFORM_2D_HP = 0x8161
 
+pattern GL_IMAGE_TRANSLATE_X_HP  :: (Eq a, Num a) => a
+
 pattern GL_IMAGE_TRANSLATE_X_HP = 0x8157
 
+pattern GL_IMAGE_TRANSLATE_Y_HP  :: (Eq a, Num a) => a
+
 pattern GL_IMAGE_TRANSLATE_Y_HP = 0x8158
 
+pattern GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP  :: (Eq a, Num a) => a
+
 pattern GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP = 0x8162
+
+pattern GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP  :: (Eq a, Num a) => a
 
 pattern GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP = 0x8163
diff --git a/generated-src/Graphics/GL/Ext/HP/OcclusionTest.hs b/generated-src/Graphics/GL/Ext/HP/OcclusionTest.hs
--- a/generated-src/Graphics/GL/Ext/HP/OcclusionTest.hs
+++ b/generated-src/Graphics/GL/Ext/HP/OcclusionTest.hs
@@ -18,6 +18,10 @@
 gl_HP_occlusion_test = member "GL_HP_occlusion_test" extensions
 {-# NOINLINE gl_HP_occlusion_test #-}
 
+pattern GL_OCCLUSION_TEST_HP  :: (Eq a, Num a) => a
+
 pattern GL_OCCLUSION_TEST_HP = 0x8165
+
+pattern GL_OCCLUSION_TEST_RESULT_HP  :: (Eq a, Num a) => a
 
 pattern GL_OCCLUSION_TEST_RESULT_HP = 0x8166
diff --git a/generated-src/Graphics/GL/Ext/HP/TextureLighting.hs b/generated-src/Graphics/GL/Ext/HP/TextureLighting.hs
--- a/generated-src/Graphics/GL/Ext/HP/TextureLighting.hs
+++ b/generated-src/Graphics/GL/Ext/HP/TextureLighting.hs
@@ -19,8 +19,14 @@
 gl_HP_texture_lighting = member "GL_HP_texture_lighting" extensions
 {-# NOINLINE gl_HP_texture_lighting #-}
 
+pattern GL_TEXTURE_LIGHTING_MODE_HP  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_LIGHTING_MODE_HP = 0x8167
 
+pattern GL_TEXTURE_POST_SPECULAR_HP  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_POST_SPECULAR_HP = 0x8168
+
+pattern GL_TEXTURE_PRE_SPECULAR_HP  :: (Eq a, Num a) => a
 
 pattern GL_TEXTURE_PRE_SPECULAR_HP = 0x8169
diff --git a/generated-src/Graphics/GL/Ext/IBM/CullVertex.hs b/generated-src/Graphics/GL/Ext/IBM/CullVertex.hs
--- a/generated-src/Graphics/GL/Ext/IBM/CullVertex.hs
+++ b/generated-src/Graphics/GL/Ext/IBM/CullVertex.hs
@@ -17,4 +17,6 @@
 gl_IBM_cull_vertex = member "GL_IBM_cull_vertex" extensions
 {-# NOINLINE gl_IBM_cull_vertex #-}
 
+pattern GL_CULL_VERTEX_IBM  :: (Eq a, Num a) => a
+
 pattern GL_CULL_VERTEX_IBM = 103050
diff --git a/generated-src/Graphics/GL/Ext/IBM/RasterposClip.hs b/generated-src/Graphics/GL/Ext/IBM/RasterposClip.hs
--- a/generated-src/Graphics/GL/Ext/IBM/RasterposClip.hs
+++ b/generated-src/Graphics/GL/Ext/IBM/RasterposClip.hs
@@ -17,4 +17,6 @@
 gl_IBM_rasterpos_clip = member "GL_IBM_rasterpos_clip" extensions
 {-# NOINLINE gl_IBM_rasterpos_clip #-}
 
+pattern GL_RASTER_POSITION_UNCLIPPED_IBM  :: (Eq a, Num a) => a
+
 pattern GL_RASTER_POSITION_UNCLIPPED_IBM = 0x19262
diff --git a/generated-src/Graphics/GL/Ext/IBM/StaticData.hs b/generated-src/Graphics/GL/Ext/IBM/StaticData.hs
--- a/generated-src/Graphics/GL/Ext/IBM/StaticData.hs
+++ b/generated-src/Graphics/GL/Ext/IBM/StaticData.hs
@@ -35,6 +35,10 @@
 
 {-# NOINLINE glFlushStaticDataIBMFunPtr #-}
 
+pattern GL_ALL_STATIC_DATA_IBM  :: (Eq a, Num a) => a
+
 pattern GL_ALL_STATIC_DATA_IBM = 103060
+
+pattern GL_STATIC_VERTEX_ARRAY_IBM  :: (Eq a, Num a) => a
 
 pattern GL_STATIC_VERTEX_ARRAY_IBM = 103061
diff --git a/generated-src/Graphics/GL/Ext/IBM/TextureMirroredRepeat.hs b/generated-src/Graphics/GL/Ext/IBM/TextureMirroredRepeat.hs
--- a/generated-src/Graphics/GL/Ext/IBM/TextureMirroredRepeat.hs
+++ b/generated-src/Graphics/GL/Ext/IBM/TextureMirroredRepeat.hs
@@ -17,4 +17,6 @@
 gl_IBM_texture_mirrored_repeat = member "GL_IBM_texture_mirrored_repeat" extensions
 {-# NOINLINE gl_IBM_texture_mirrored_repeat #-}
 
+pattern GL_MIRRORED_REPEAT_IBM  :: (Eq a, Num a) => a
+
 pattern GL_MIRRORED_REPEAT_IBM = 0x8370
diff --git a/generated-src/Graphics/GL/Ext/IBM/VertexArrayLists.hs b/generated-src/Graphics/GL/Ext/IBM/VertexArrayLists.hs
--- a/generated-src/Graphics/GL/Ext/IBM/VertexArrayLists.hs
+++ b/generated-src/Graphics/GL/Ext/IBM/VertexArrayLists.hs
@@ -165,34 +165,66 @@
 
 {-# NOINLINE glVertexPointerListIBMFunPtr #-}
 
+pattern GL_COLOR_ARRAY_LIST_IBM  :: (Eq a, Num a) => a
+
 pattern GL_COLOR_ARRAY_LIST_IBM = 103072
 
+pattern GL_COLOR_ARRAY_LIST_STRIDE_IBM  :: (Eq a, Num a) => a
+
 pattern GL_COLOR_ARRAY_LIST_STRIDE_IBM = 103082
 
+pattern GL_EDGE_FLAG_ARRAY_LIST_IBM  :: (Eq a, Num a) => a
+
 pattern GL_EDGE_FLAG_ARRAY_LIST_IBM = 103075
 
+pattern GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM  :: (Eq a, Num a) => a
+
 pattern GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM = 103085
 
+pattern GL_FOG_COORDINATE_ARRAY_LIST_IBM  :: (Eq a, Num a) => a
+
 pattern GL_FOG_COORDINATE_ARRAY_LIST_IBM = 103076
 
+pattern GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM  :: (Eq a, Num a) => a
+
 pattern GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM = 103086
 
+pattern GL_INDEX_ARRAY_LIST_IBM  :: (Eq a, Num a) => a
+
 pattern GL_INDEX_ARRAY_LIST_IBM = 103073
 
+pattern GL_INDEX_ARRAY_LIST_STRIDE_IBM  :: (Eq a, Num a) => a
+
 pattern GL_INDEX_ARRAY_LIST_STRIDE_IBM = 103083
 
+pattern GL_NORMAL_ARRAY_LIST_IBM  :: (Eq a, Num a) => a
+
 pattern GL_NORMAL_ARRAY_LIST_IBM = 103071
 
+pattern GL_NORMAL_ARRAY_LIST_STRIDE_IBM  :: (Eq a, Num a) => a
+
 pattern GL_NORMAL_ARRAY_LIST_STRIDE_IBM = 103081
 
+pattern GL_SECONDARY_COLOR_ARRAY_LIST_IBM  :: (Eq a, Num a) => a
+
 pattern GL_SECONDARY_COLOR_ARRAY_LIST_IBM = 103077
 
+pattern GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM  :: (Eq a, Num a) => a
+
 pattern GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM = 103087
 
+pattern GL_TEXTURE_COORD_ARRAY_LIST_IBM  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_COORD_ARRAY_LIST_IBM = 103074
 
+pattern GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM = 103084
 
+pattern GL_VERTEX_ARRAY_LIST_IBM  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_ARRAY_LIST_IBM = 103070
+
+pattern GL_VERTEX_ARRAY_LIST_STRIDE_IBM  :: (Eq a, Num a) => a
 
 pattern GL_VERTEX_ARRAY_LIST_STRIDE_IBM = 103080
diff --git a/generated-src/Graphics/GL/Ext/IMG/FramebufferDownsample.hs b/generated-src/Graphics/GL/Ext/IMG/FramebufferDownsample.hs
--- a/generated-src/Graphics/GL/Ext/IMG/FramebufferDownsample.hs
+++ b/generated-src/Graphics/GL/Ext/IMG/FramebufferDownsample.hs
@@ -59,10 +59,18 @@
 
 {-# NOINLINE glFramebufferTextureLayerDownsampleIMGFunPtr #-}
 
+pattern GL_DOWNSAMPLE_SCALES_IMG  :: (Eq a, Num a) => a
+
 pattern GL_DOWNSAMPLE_SCALES_IMG = 0x913E
 
+pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SCALE_IMG  :: (Eq a, Num a) => a
+
 pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SCALE_IMG = 0x913F
 
+pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_AND_DOWNSAMPLE_IMG  :: (Eq a, Num a) => a
+
 pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_AND_DOWNSAMPLE_IMG = 0x913C
+
+pattern GL_NUM_DOWNSAMPLE_SCALES_IMG  :: (Eq a, Num a) => a
 
 pattern GL_NUM_DOWNSAMPLE_SCALES_IMG = 0x913D
diff --git a/generated-src/Graphics/GL/Ext/IMG/MultisampledRenderToTexture.hs b/generated-src/Graphics/GL/Ext/IMG/MultisampledRenderToTexture.hs
--- a/generated-src/Graphics/GL/Ext/IMG/MultisampledRenderToTexture.hs
+++ b/generated-src/Graphics/GL/Ext/IMG/MultisampledRenderToTexture.hs
@@ -49,10 +49,18 @@
 
 {-# NOINLINE glRenderbufferStorageMultisampleIMGFunPtr #-}
 
+pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG  :: (Eq a, Num a) => a
+
 pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG = 0x9134
 
+pattern GL_MAX_SAMPLES_IMG  :: (Eq a, Num a) => a
+
 pattern GL_MAX_SAMPLES_IMG = 0x9135
 
+pattern GL_RENDERBUFFER_SAMPLES_IMG  :: (Eq a, Num a) => a
+
 pattern GL_RENDERBUFFER_SAMPLES_IMG = 0x9133
+
+pattern GL_TEXTURE_SAMPLES_IMG  :: (Eq a, Num a) => a
 
 pattern GL_TEXTURE_SAMPLES_IMG = 0x9136
diff --git a/generated-src/Graphics/GL/Ext/IMG/ProgramBinary.hs b/generated-src/Graphics/GL/Ext/IMG/ProgramBinary.hs
--- a/generated-src/Graphics/GL/Ext/IMG/ProgramBinary.hs
+++ b/generated-src/Graphics/GL/Ext/IMG/ProgramBinary.hs
@@ -17,4 +17,6 @@
 gl_IMG_program_binary = member "GL_IMG_program_binary" extensions
 {-# NOINLINE gl_IMG_program_binary #-}
 
+pattern GL_SGX_PROGRAM_BINARY_IMG  :: (Eq a, Num a) => a
+
 pattern GL_SGX_PROGRAM_BINARY_IMG = 0x9130
diff --git a/generated-src/Graphics/GL/Ext/IMG/ReadFormat.hs b/generated-src/Graphics/GL/Ext/IMG/ReadFormat.hs
--- a/generated-src/Graphics/GL/Ext/IMG/ReadFormat.hs
+++ b/generated-src/Graphics/GL/Ext/IMG/ReadFormat.hs
@@ -18,6 +18,10 @@
 gl_IMG_read_format = member "GL_IMG_read_format" extensions
 {-# NOINLINE gl_IMG_read_format #-}
 
+pattern GL_BGRA_IMG  :: (Eq a, Num a) => a
+
 pattern GL_BGRA_IMG = 0x80E1
+
+pattern GL_UNSIGNED_SHORT_4_4_4_4_REV_IMG  :: (Eq a, Num a) => a
 
 pattern GL_UNSIGNED_SHORT_4_4_4_4_REV_IMG = 0x8365
diff --git a/generated-src/Graphics/GL/Ext/IMG/ShaderBinary.hs b/generated-src/Graphics/GL/Ext/IMG/ShaderBinary.hs
--- a/generated-src/Graphics/GL/Ext/IMG/ShaderBinary.hs
+++ b/generated-src/Graphics/GL/Ext/IMG/ShaderBinary.hs
@@ -17,4 +17,6 @@
 gl_IMG_shader_binary = member "GL_IMG_shader_binary" extensions
 {-# NOINLINE gl_IMG_shader_binary #-}
 
+pattern GL_SGX_BINARY_IMG  :: (Eq a, Num a) => a
+
 pattern GL_SGX_BINARY_IMG = 0x8C0A
diff --git a/generated-src/Graphics/GL/Ext/IMG/TextureCompressionPvrtc.hs b/generated-src/Graphics/GL/Ext/IMG/TextureCompressionPvrtc.hs
--- a/generated-src/Graphics/GL/Ext/IMG/TextureCompressionPvrtc.hs
+++ b/generated-src/Graphics/GL/Ext/IMG/TextureCompressionPvrtc.hs
@@ -20,10 +20,18 @@
 gl_IMG_texture_compression_pvrtc = member "GL_IMG_texture_compression_pvrtc" extensions
 {-# NOINLINE gl_IMG_texture_compression_pvrtc #-}
 
+pattern GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG = 0x8C03
 
+pattern GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG = 0x8C02
 
+pattern GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG = 0x8C01
+
+pattern GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG  :: (Eq a, Num a) => a
 
 pattern GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG = 0x8C00
diff --git a/generated-src/Graphics/GL/Ext/IMG/TextureCompressionPvrtc2.hs b/generated-src/Graphics/GL/Ext/IMG/TextureCompressionPvrtc2.hs
--- a/generated-src/Graphics/GL/Ext/IMG/TextureCompressionPvrtc2.hs
+++ b/generated-src/Graphics/GL/Ext/IMG/TextureCompressionPvrtc2.hs
@@ -18,6 +18,10 @@
 gl_IMG_texture_compression_pvrtc2 = member "GL_IMG_texture_compression_pvrtc2" extensions
 {-# NOINLINE gl_IMG_texture_compression_pvrtc2 #-}
 
+pattern GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG = 0x9137
+
+pattern GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG  :: (Eq a, Num a) => a
 
 pattern GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG = 0x9138
diff --git a/generated-src/Graphics/GL/Ext/IMG/TextureEnvEnhancedFixedFunction.hs b/generated-src/Graphics/GL/Ext/IMG/TextureEnvEnhancedFixedFunction.hs
--- a/generated-src/Graphics/GL/Ext/IMG/TextureEnvEnhancedFixedFunction.hs
+++ b/generated-src/Graphics/GL/Ext/IMG/TextureEnvEnhancedFixedFunction.hs
@@ -23,16 +23,30 @@
 gl_IMG_texture_env_enhanced_fixed_function = member "GL_IMG_texture_env_enhanced_fixed_function" extensions
 {-# NOINLINE gl_IMG_texture_env_enhanced_fixed_function #-}
 
+pattern GL_ADD_BLEND_IMG  :: (Eq a, Num a) => a
+
 pattern GL_ADD_BLEND_IMG = 0x8C09
 
+pattern GL_DOT3_RGBA_IMG  :: (Eq a, Num a) => a
+
 pattern GL_DOT3_RGBA_IMG = 0x86AF
 
+pattern GL_FACTOR_ALPHA_MODULATE_IMG  :: (Eq a, Num a) => a
+
 pattern GL_FACTOR_ALPHA_MODULATE_IMG = 0x8C07
 
+pattern GL_FRAGMENT_ALPHA_MODULATE_IMG  :: (Eq a, Num a) => a
+
 pattern GL_FRAGMENT_ALPHA_MODULATE_IMG = 0x8C08
 
+pattern GL_MODULATE_COLOR_IMG  :: (Eq a, Num a) => a
+
 pattern GL_MODULATE_COLOR_IMG = 0x8C04
 
+pattern GL_RECIP_ADD_SIGNED_ALPHA_IMG  :: (Eq a, Num a) => a
+
 pattern GL_RECIP_ADD_SIGNED_ALPHA_IMG = 0x8C05
+
+pattern GL_TEXTURE_ALPHA_MODULATE_IMG  :: (Eq a, Num a) => a
 
 pattern GL_TEXTURE_ALPHA_MODULATE_IMG = 0x8C06
diff --git a/generated-src/Graphics/GL/Ext/IMG/TextureFilterCubic.hs b/generated-src/Graphics/GL/Ext/IMG/TextureFilterCubic.hs
--- a/generated-src/Graphics/GL/Ext/IMG/TextureFilterCubic.hs
+++ b/generated-src/Graphics/GL/Ext/IMG/TextureFilterCubic.hs
@@ -19,8 +19,14 @@
 gl_IMG_texture_filter_cubic = member "GL_IMG_texture_filter_cubic" extensions
 {-# NOINLINE gl_IMG_texture_filter_cubic #-}
 
+pattern GL_CUBIC_IMG  :: (Eq a, Num a) => a
+
 pattern GL_CUBIC_IMG = 0x9139
 
+pattern GL_CUBIC_MIPMAP_LINEAR_IMG  :: (Eq a, Num a) => a
+
 pattern GL_CUBIC_MIPMAP_LINEAR_IMG = 0x913B
+
+pattern GL_CUBIC_MIPMAP_NEAREST_IMG  :: (Eq a, Num a) => a
 
 pattern GL_CUBIC_MIPMAP_NEAREST_IMG = 0x913A
diff --git a/generated-src/Graphics/GL/Ext/IMG/UserClipPlane.hs b/generated-src/Graphics/GL/Ext/IMG/UserClipPlane.hs
--- a/generated-src/Graphics/GL/Ext/IMG/UserClipPlane.hs
+++ b/generated-src/Graphics/GL/Ext/IMG/UserClipPlane.hs
@@ -56,16 +56,30 @@
 
 {-# NOINLINE glClipPlanexIMGFunPtr #-}
 
+pattern GL_CLIP_PLANE0_IMG  :: (Eq a, Num a) => a
+
 pattern GL_CLIP_PLANE0_IMG = 0x3000
 
+pattern GL_CLIP_PLANE1_IMG  :: (Eq a, Num a) => a
+
 pattern GL_CLIP_PLANE1_IMG = 0x3001
 
+pattern GL_CLIP_PLANE2_IMG  :: (Eq a, Num a) => a
+
 pattern GL_CLIP_PLANE2_IMG = 0x3002
 
+pattern GL_CLIP_PLANE3_IMG  :: (Eq a, Num a) => a
+
 pattern GL_CLIP_PLANE3_IMG = 0x3003
 
+pattern GL_CLIP_PLANE4_IMG  :: (Eq a, Num a) => a
+
 pattern GL_CLIP_PLANE4_IMG = 0x3004
 
+pattern GL_CLIP_PLANE5_IMG  :: (Eq a, Num a) => a
+
 pattern GL_CLIP_PLANE5_IMG = 0x3005
+
+pattern GL_MAX_CLIP_PLANES_IMG  :: (Eq a, Num a) => a
 
 pattern GL_MAX_CLIP_PLANES_IMG = 0x0D32
diff --git a/generated-src/Graphics/GL/Ext/INGR/ColorClamp.hs b/generated-src/Graphics/GL/Ext/INGR/ColorClamp.hs
--- a/generated-src/Graphics/GL/Ext/INGR/ColorClamp.hs
+++ b/generated-src/Graphics/GL/Ext/INGR/ColorClamp.hs
@@ -24,18 +24,34 @@
 gl_INGR_color_clamp = member "GL_INGR_color_clamp" extensions
 {-# NOINLINE gl_INGR_color_clamp #-}
 
+pattern GL_ALPHA_MAX_CLAMP_INGR  :: (Eq a, Num a) => a
+
 pattern GL_ALPHA_MAX_CLAMP_INGR = 0x8567
 
+pattern GL_ALPHA_MIN_CLAMP_INGR  :: (Eq a, Num a) => a
+
 pattern GL_ALPHA_MIN_CLAMP_INGR = 0x8563
 
+pattern GL_BLUE_MAX_CLAMP_INGR  :: (Eq a, Num a) => a
+
 pattern GL_BLUE_MAX_CLAMP_INGR = 0x8566
 
+pattern GL_BLUE_MIN_CLAMP_INGR  :: (Eq a, Num a) => a
+
 pattern GL_BLUE_MIN_CLAMP_INGR = 0x8562
 
+pattern GL_GREEN_MAX_CLAMP_INGR  :: (Eq a, Num a) => a
+
 pattern GL_GREEN_MAX_CLAMP_INGR = 0x8565
 
+pattern GL_GREEN_MIN_CLAMP_INGR  :: (Eq a, Num a) => a
+
 pattern GL_GREEN_MIN_CLAMP_INGR = 0x8561
 
+pattern GL_RED_MAX_CLAMP_INGR  :: (Eq a, Num a) => a
+
 pattern GL_RED_MAX_CLAMP_INGR = 0x8564
+
+pattern GL_RED_MIN_CLAMP_INGR  :: (Eq a, Num a) => a
 
 pattern GL_RED_MIN_CLAMP_INGR = 0x8560
diff --git a/generated-src/Graphics/GL/Ext/INGR/InterlaceRead.hs b/generated-src/Graphics/GL/Ext/INGR/InterlaceRead.hs
--- a/generated-src/Graphics/GL/Ext/INGR/InterlaceRead.hs
+++ b/generated-src/Graphics/GL/Ext/INGR/InterlaceRead.hs
@@ -17,4 +17,6 @@
 gl_INGR_interlace_read = member "GL_INGR_interlace_read" extensions
 {-# NOINLINE gl_INGR_interlace_read #-}
 
+pattern GL_INTERLACE_READ_INGR  :: (Eq a, Num a) => a
+
 pattern GL_INTERLACE_READ_INGR = 0x8568
diff --git a/generated-src/Graphics/GL/Ext/INTEL/ConservativeRasterization.hs b/generated-src/Graphics/GL/Ext/INTEL/ConservativeRasterization.hs
--- a/generated-src/Graphics/GL/Ext/INTEL/ConservativeRasterization.hs
+++ b/generated-src/Graphics/GL/Ext/INTEL/ConservativeRasterization.hs
@@ -17,4 +17,6 @@
 gl_INTEL_conservative_rasterization = member "GL_INTEL_conservative_rasterization" extensions
 {-# NOINLINE gl_INTEL_conservative_rasterization #-}
 
+pattern GL_CONSERVATIVE_RASTERIZATION_INTEL  :: (Eq a, Num a) => a
+
 pattern GL_CONSERVATIVE_RASTERIZATION_INTEL = 0x83FE
diff --git a/generated-src/Graphics/GL/Ext/INTEL/MapTexture.hs b/generated-src/Graphics/GL/Ext/INTEL/MapTexture.hs
--- a/generated-src/Graphics/GL/Ext/INTEL/MapTexture.hs
+++ b/generated-src/Graphics/GL/Ext/INTEL/MapTexture.hs
@@ -65,10 +65,18 @@
 
 {-# NOINLINE glUnmapTexture2DINTELFunPtr #-}
 
+pattern GL_LAYOUT_DEFAULT_INTEL  :: (Eq a, Num a) => a
+
 pattern GL_LAYOUT_DEFAULT_INTEL = 0
 
+pattern GL_LAYOUT_LINEAR_CPU_CACHED_INTEL  :: (Eq a, Num a) => a
+
 pattern GL_LAYOUT_LINEAR_CPU_CACHED_INTEL = 2
 
+pattern GL_LAYOUT_LINEAR_INTEL  :: (Eq a, Num a) => a
+
 pattern GL_LAYOUT_LINEAR_INTEL = 1
+
+pattern GL_TEXTURE_MEMORY_LAYOUT_INTEL  :: (Eq a, Num a) => a
 
 pattern GL_TEXTURE_MEMORY_LAYOUT_INTEL = 0x83FF
diff --git a/generated-src/Graphics/GL/Ext/INTEL/ParallelArrays.hs b/generated-src/Graphics/GL/Ext/INTEL/ParallelArrays.hs
--- a/generated-src/Graphics/GL/Ext/INTEL/ParallelArrays.hs
+++ b/generated-src/Graphics/GL/Ext/INTEL/ParallelArrays.hs
@@ -90,12 +90,22 @@
 
 {-# NOINLINE glVertexPointervINTELFunPtr #-}
 
+pattern GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL  :: (Eq a, Num a) => a
+
 pattern GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F7
 
+pattern GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL  :: (Eq a, Num a) => a
+
 pattern GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F6
 
+pattern GL_PARALLEL_ARRAYS_INTEL  :: (Eq a, Num a) => a
+
 pattern GL_PARALLEL_ARRAYS_INTEL = 0x83F4
 
+pattern GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F8
+
+pattern GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL  :: (Eq a, Num a) => a
 
 pattern GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F5
diff --git a/generated-src/Graphics/GL/Ext/INTEL/PerformanceQuery.hs b/generated-src/Graphics/GL/Ext/INTEL/PerformanceQuery.hs
--- a/generated-src/Graphics/GL/Ext/INTEL/PerformanceQuery.hs
+++ b/generated-src/Graphics/GL/Ext/INTEL/PerformanceQuery.hs
@@ -161,42 +161,82 @@
 
 {-# NOINLINE glGetPerfQueryInfoINTELFunPtr #-}
 
+pattern GL_PERFQUERY_COUNTER_DATA_BOOL32_INTEL  :: (Eq a, Num a) => a
+
 pattern GL_PERFQUERY_COUNTER_DATA_BOOL32_INTEL = 0x94FC
 
+pattern GL_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL  :: (Eq a, Num a) => a
+
 pattern GL_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL = 0x94FB
 
+pattern GL_PERFQUERY_COUNTER_DATA_FLOAT_INTEL  :: (Eq a, Num a) => a
+
 pattern GL_PERFQUERY_COUNTER_DATA_FLOAT_INTEL = 0x94FA
 
+pattern GL_PERFQUERY_COUNTER_DATA_UINT32_INTEL  :: (Eq a, Num a) => a
+
 pattern GL_PERFQUERY_COUNTER_DATA_UINT32_INTEL = 0x94F8
 
+pattern GL_PERFQUERY_COUNTER_DATA_UINT64_INTEL  :: (Eq a, Num a) => a
+
 pattern GL_PERFQUERY_COUNTER_DATA_UINT64_INTEL = 0x94F9
 
+pattern GL_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL  :: (Eq a, Num a) => a
+
 pattern GL_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL = 0x94FF
 
+pattern GL_PERFQUERY_COUNTER_DURATION_NORM_INTEL  :: (Eq a, Num a) => a
+
 pattern GL_PERFQUERY_COUNTER_DURATION_NORM_INTEL = 0x94F1
 
+pattern GL_PERFQUERY_COUNTER_DURATION_RAW_INTEL  :: (Eq a, Num a) => a
+
 pattern GL_PERFQUERY_COUNTER_DURATION_RAW_INTEL = 0x94F2
 
+pattern GL_PERFQUERY_COUNTER_EVENT_INTEL  :: (Eq a, Num a) => a
+
 pattern GL_PERFQUERY_COUNTER_EVENT_INTEL = 0x94F0
 
+pattern GL_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL  :: (Eq a, Num a) => a
+
 pattern GL_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL = 0x94FE
 
+pattern GL_PERFQUERY_COUNTER_RAW_INTEL  :: (Eq a, Num a) => a
+
 pattern GL_PERFQUERY_COUNTER_RAW_INTEL = 0x94F4
 
+pattern GL_PERFQUERY_COUNTER_THROUGHPUT_INTEL  :: (Eq a, Num a) => a
+
 pattern GL_PERFQUERY_COUNTER_THROUGHPUT_INTEL = 0x94F3
 
+pattern GL_PERFQUERY_COUNTER_TIMESTAMP_INTEL  :: (Eq a, Num a) => a
+
 pattern GL_PERFQUERY_COUNTER_TIMESTAMP_INTEL = 0x94F5
 
+pattern GL_PERFQUERY_DONOT_FLUSH_INTEL  :: (Eq a, Num a) => a
+
 pattern GL_PERFQUERY_DONOT_FLUSH_INTEL = 0x83F9
 
+pattern GL_PERFQUERY_FLUSH_INTEL  :: (Eq a, Num a) => a
+
 pattern GL_PERFQUERY_FLUSH_INTEL = 0x83FA
 
+pattern GL_PERFQUERY_GLOBAL_CONTEXT_INTEL  :: (Eq a, Num a) => a
+
 pattern GL_PERFQUERY_GLOBAL_CONTEXT_INTEL = 0x00000001
 
+pattern GL_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL  :: (Eq a, Num a) => a
+
 pattern GL_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL = 0x9500
 
+pattern GL_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL  :: (Eq a, Num a) => a
+
 pattern GL_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL = 0x94FD
 
+pattern GL_PERFQUERY_SINGLE_CONTEXT_INTEL  :: (Eq a, Num a) => a
+
 pattern GL_PERFQUERY_SINGLE_CONTEXT_INTEL = 0x00000000
+
+pattern GL_PERFQUERY_WAIT_INTEL  :: (Eq a, Num a) => a
 
 pattern GL_PERFQUERY_WAIT_INTEL = 0x83FB
diff --git a/generated-src/Graphics/GL/Ext/KHR/BlendEquationAdvanced.hs b/generated-src/Graphics/GL/Ext/KHR/BlendEquationAdvanced.hs
--- a/generated-src/Graphics/GL/Ext/KHR/BlendEquationAdvanced.hs
+++ b/generated-src/Graphics/GL/Ext/KHR/BlendEquationAdvanced.hs
@@ -49,32 +49,62 @@
 
 {-# NOINLINE glBlendBarrierKHRFunPtr #-}
 
+pattern GL_COLORBURN_KHR  :: (Eq a, Num a) => a
+
 pattern GL_COLORBURN_KHR = 0x929A
 
+pattern GL_COLORDODGE_KHR  :: (Eq a, Num a) => a
+
 pattern GL_COLORDODGE_KHR = 0x9299
 
+pattern GL_DARKEN_KHR  :: (Eq a, Num a) => a
+
 pattern GL_DARKEN_KHR = 0x9297
 
+pattern GL_DIFFERENCE_KHR  :: (Eq a, Num a) => a
+
 pattern GL_DIFFERENCE_KHR = 0x929E
 
+pattern GL_EXCLUSION_KHR  :: (Eq a, Num a) => a
+
 pattern GL_EXCLUSION_KHR = 0x92A0
 
+pattern GL_HARDLIGHT_KHR  :: (Eq a, Num a) => a
+
 pattern GL_HARDLIGHT_KHR = 0x929B
 
+pattern GL_HSL_COLOR_KHR  :: (Eq a, Num a) => a
+
 pattern GL_HSL_COLOR_KHR = 0x92AF
 
+pattern GL_HSL_HUE_KHR  :: (Eq a, Num a) => a
+
 pattern GL_HSL_HUE_KHR = 0x92AD
 
+pattern GL_HSL_LUMINOSITY_KHR  :: (Eq a, Num a) => a
+
 pattern GL_HSL_LUMINOSITY_KHR = 0x92B0
 
+pattern GL_HSL_SATURATION_KHR  :: (Eq a, Num a) => a
+
 pattern GL_HSL_SATURATION_KHR = 0x92AE
 
+pattern GL_LIGHTEN_KHR  :: (Eq a, Num a) => a
+
 pattern GL_LIGHTEN_KHR = 0x9298
 
+pattern GL_MULTIPLY_KHR  :: (Eq a, Num a) => a
+
 pattern GL_MULTIPLY_KHR = 0x9294
 
+pattern GL_OVERLAY_KHR  :: (Eq a, Num a) => a
+
 pattern GL_OVERLAY_KHR = 0x9296
 
+pattern GL_SCREEN_KHR  :: (Eq a, Num a) => a
+
 pattern GL_SCREEN_KHR = 0x9295
+
+pattern GL_SOFTLIGHT_KHR  :: (Eq a, Num a) => a
 
 pattern GL_SOFTLIGHT_KHR = 0x929C
diff --git a/generated-src/Graphics/GL/Ext/KHR/BlendEquationAdvancedCoherent.hs b/generated-src/Graphics/GL/Ext/KHR/BlendEquationAdvancedCoherent.hs
--- a/generated-src/Graphics/GL/Ext/KHR/BlendEquationAdvancedCoherent.hs
+++ b/generated-src/Graphics/GL/Ext/KHR/BlendEquationAdvancedCoherent.hs
@@ -17,4 +17,6 @@
 gl_KHR_blend_equation_advanced_coherent = member "GL_KHR_blend_equation_advanced_coherent" extensions
 {-# NOINLINE gl_KHR_blend_equation_advanced_coherent #-}
 
+pattern GL_BLEND_ADVANCED_COHERENT_KHR  :: (Eq a, Num a) => a
+
 pattern GL_BLEND_ADVANCED_COHERENT_KHR = 0x9285
diff --git a/generated-src/Graphics/GL/Ext/KHR/ContextFlushControl.hs b/generated-src/Graphics/GL/Ext/KHR/ContextFlushControl.hs
--- a/generated-src/Graphics/GL/Ext/KHR/ContextFlushControl.hs
+++ b/generated-src/Graphics/GL/Ext/KHR/ContextFlushControl.hs
@@ -22,6 +22,10 @@
 gl_KHR_context_flush_control = member "GL_KHR_context_flush_control" extensions
 {-# NOINLINE gl_KHR_context_flush_control #-}
 
+pattern GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_KHR  :: (Eq a, Num a) => a
+
 pattern GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_KHR = 0x82FC
+
+pattern GL_CONTEXT_RELEASE_BEHAVIOR_KHR  :: (Eq a, Num a) => a
 
 pattern GL_CONTEXT_RELEASE_BEHAVIOR_KHR = 0x82FB
diff --git a/generated-src/Graphics/GL/Ext/KHR/Debug.hs b/generated-src/Graphics/GL/Ext/KHR/Debug.hs
--- a/generated-src/Graphics/GL/Ext/KHR/Debug.hs
+++ b/generated-src/Graphics/GL/Ext/KHR/Debug.hs
@@ -286,82 +286,162 @@
 
 {-# NOINLINE glPushDebugGroupKHRFunPtr #-}
 
+pattern GL_BUFFER_KHR  :: (Eq a, Num a) => a
+
 pattern GL_BUFFER_KHR = 0x82E0
 
+pattern GL_CONTEXT_FLAG_DEBUG_BIT_KHR  :: (Eq a, Num a) => a
+
 pattern GL_CONTEXT_FLAG_DEBUG_BIT_KHR = 0x00000002
 
+pattern GL_DEBUG_CALLBACK_FUNCTION_KHR  :: (Eq a, Num a) => a
+
 pattern GL_DEBUG_CALLBACK_FUNCTION_KHR = 0x8244
 
+pattern GL_DEBUG_CALLBACK_USER_PARAM_KHR  :: (Eq a, Num a) => a
+
 pattern GL_DEBUG_CALLBACK_USER_PARAM_KHR = 0x8245
 
+pattern GL_DEBUG_GROUP_STACK_DEPTH_KHR  :: (Eq a, Num a) => a
+
 pattern GL_DEBUG_GROUP_STACK_DEPTH_KHR = 0x826D
 
+pattern GL_DEBUG_LOGGED_MESSAGES_KHR  :: (Eq a, Num a) => a
+
 pattern GL_DEBUG_LOGGED_MESSAGES_KHR = 0x9145
 
+pattern GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR  :: (Eq a, Num a) => a
+
 pattern GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR = 0x8243
 
+pattern GL_DEBUG_OUTPUT_KHR  :: (Eq a, Num a) => a
+
 pattern GL_DEBUG_OUTPUT_KHR = 0x92E0
 
+pattern GL_DEBUG_OUTPUT_SYNCHRONOUS_KHR  :: (Eq a, Num a) => a
+
 pattern GL_DEBUG_OUTPUT_SYNCHRONOUS_KHR = 0x8242
 
+pattern GL_DEBUG_SEVERITY_HIGH_KHR  :: (Eq a, Num a) => a
+
 pattern GL_DEBUG_SEVERITY_HIGH_KHR = 0x9146
 
+pattern GL_DEBUG_SEVERITY_LOW_KHR  :: (Eq a, Num a) => a
+
 pattern GL_DEBUG_SEVERITY_LOW_KHR = 0x9148
 
+pattern GL_DEBUG_SEVERITY_MEDIUM_KHR  :: (Eq a, Num a) => a
+
 pattern GL_DEBUG_SEVERITY_MEDIUM_KHR = 0x9147
 
+pattern GL_DEBUG_SEVERITY_NOTIFICATION_KHR  :: (Eq a, Num a) => a
+
 pattern GL_DEBUG_SEVERITY_NOTIFICATION_KHR = 0x826B
 
+pattern GL_DEBUG_SOURCE_API_KHR  :: (Eq a, Num a) => a
+
 pattern GL_DEBUG_SOURCE_API_KHR = 0x8246
 
+pattern GL_DEBUG_SOURCE_APPLICATION_KHR  :: (Eq a, Num a) => a
+
 pattern GL_DEBUG_SOURCE_APPLICATION_KHR = 0x824A
 
+pattern GL_DEBUG_SOURCE_OTHER_KHR  :: (Eq a, Num a) => a
+
 pattern GL_DEBUG_SOURCE_OTHER_KHR = 0x824B
 
+pattern GL_DEBUG_SOURCE_SHADER_COMPILER_KHR  :: (Eq a, Num a) => a
+
 pattern GL_DEBUG_SOURCE_SHADER_COMPILER_KHR = 0x8248
 
+pattern GL_DEBUG_SOURCE_THIRD_PARTY_KHR  :: (Eq a, Num a) => a
+
 pattern GL_DEBUG_SOURCE_THIRD_PARTY_KHR = 0x8249
 
+pattern GL_DEBUG_SOURCE_WINDOW_SYSTEM_KHR  :: (Eq a, Num a) => a
+
 pattern GL_DEBUG_SOURCE_WINDOW_SYSTEM_KHR = 0x8247
 
+pattern GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR  :: (Eq a, Num a) => a
+
 pattern GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR = 0x824D
 
+pattern GL_DEBUG_TYPE_ERROR_KHR  :: (Eq a, Num a) => a
+
 pattern GL_DEBUG_TYPE_ERROR_KHR = 0x824C
 
+pattern GL_DEBUG_TYPE_MARKER_KHR  :: (Eq a, Num a) => a
+
 pattern GL_DEBUG_TYPE_MARKER_KHR = 0x8268
 
+pattern GL_DEBUG_TYPE_OTHER_KHR  :: (Eq a, Num a) => a
+
 pattern GL_DEBUG_TYPE_OTHER_KHR = 0x8251
 
+pattern GL_DEBUG_TYPE_PERFORMANCE_KHR  :: (Eq a, Num a) => a
+
 pattern GL_DEBUG_TYPE_PERFORMANCE_KHR = 0x8250
 
+pattern GL_DEBUG_TYPE_POP_GROUP_KHR  :: (Eq a, Num a) => a
+
 pattern GL_DEBUG_TYPE_POP_GROUP_KHR = 0x826A
 
+pattern GL_DEBUG_TYPE_PORTABILITY_KHR  :: (Eq a, Num a) => a
+
 pattern GL_DEBUG_TYPE_PORTABILITY_KHR = 0x824F
 
+pattern GL_DEBUG_TYPE_PUSH_GROUP_KHR  :: (Eq a, Num a) => a
+
 pattern GL_DEBUG_TYPE_PUSH_GROUP_KHR = 0x8269
 
+pattern GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR  :: (Eq a, Num a) => a
+
 pattern GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR = 0x824E
 
+pattern GL_MAX_DEBUG_GROUP_STACK_DEPTH_KHR  :: (Eq a, Num a) => a
+
 pattern GL_MAX_DEBUG_GROUP_STACK_DEPTH_KHR = 0x826C
 
+pattern GL_MAX_DEBUG_LOGGED_MESSAGES_KHR  :: (Eq a, Num a) => a
+
 pattern GL_MAX_DEBUG_LOGGED_MESSAGES_KHR = 0x9144
 
+pattern GL_MAX_DEBUG_MESSAGE_LENGTH_KHR  :: (Eq a, Num a) => a
+
 pattern GL_MAX_DEBUG_MESSAGE_LENGTH_KHR = 0x9143
 
+pattern GL_MAX_LABEL_LENGTH_KHR  :: (Eq a, Num a) => a
+
 pattern GL_MAX_LABEL_LENGTH_KHR = 0x82E8
 
+pattern GL_PROGRAM_KHR  :: (Eq a, Num a) => a
+
 pattern GL_PROGRAM_KHR = 0x82E2
 
+pattern GL_PROGRAM_PIPELINE_KHR  :: (Eq a, Num a) => a
+
 pattern GL_PROGRAM_PIPELINE_KHR = 0x82E4
 
+pattern GL_QUERY_KHR  :: (Eq a, Num a) => a
+
 pattern GL_QUERY_KHR = 0x82E3
 
+pattern GL_SAMPLER_KHR  :: (Eq a, Num a) => a
+
 pattern GL_SAMPLER_KHR = 0x82E6
 
+pattern GL_SHADER_KHR  :: (Eq a, Num a) => a
+
 pattern GL_SHADER_KHR = 0x82E1
 
+pattern GL_STACK_OVERFLOW_KHR  :: (Eq a, Num a) => a
+
 pattern GL_STACK_OVERFLOW_KHR = 0x0503
 
+pattern GL_STACK_UNDERFLOW_KHR  :: (Eq a, Num a) => a
+
 pattern GL_STACK_UNDERFLOW_KHR = 0x0504
+
+pattern GL_VERTEX_ARRAY_KHR  :: (Eq a, Num a) => a
 
 pattern GL_VERTEX_ARRAY_KHR = 0x8074
diff --git a/generated-src/Graphics/GL/Ext/KHR/NoError.hs b/generated-src/Graphics/GL/Ext/KHR/NoError.hs
--- a/generated-src/Graphics/GL/Ext/KHR/NoError.hs
+++ b/generated-src/Graphics/GL/Ext/KHR/NoError.hs
@@ -17,4 +17,6 @@
 gl_KHR_no_error = member "GL_KHR_no_error" extensions
 {-# NOINLINE gl_KHR_no_error #-}
 
+pattern GL_CONTEXT_FLAG_NO_ERROR_BIT_KHR  :: (Eq a, Num a) => a
+
 pattern GL_CONTEXT_FLAG_NO_ERROR_BIT_KHR = 0x00000008
diff --git a/generated-src/Graphics/GL/Ext/KHR/Robustness.hs b/generated-src/Graphics/GL/Ext/KHR/Robustness.hs
--- a/generated-src/Graphics/GL/Ext/KHR/Robustness.hs
+++ b/generated-src/Graphics/GL/Ext/KHR/Robustness.hs
@@ -124,18 +124,34 @@
 
 {-# NOINLINE glReadnPixelsKHRFunPtr #-}
 
+pattern GL_CONTEXT_LOST_KHR  :: (Eq a, Num a) => a
+
 pattern GL_CONTEXT_LOST_KHR = 0x0507
 
+pattern GL_CONTEXT_ROBUST_ACCESS_KHR  :: (Eq a, Num a) => a
+
 pattern GL_CONTEXT_ROBUST_ACCESS_KHR = 0x90F3
 
+pattern GL_GUILTY_CONTEXT_RESET_KHR  :: (Eq a, Num a) => a
+
 pattern GL_GUILTY_CONTEXT_RESET_KHR = 0x8253
 
+pattern GL_INNOCENT_CONTEXT_RESET_KHR  :: (Eq a, Num a) => a
+
 pattern GL_INNOCENT_CONTEXT_RESET_KHR = 0x8254
 
+pattern GL_LOSE_CONTEXT_ON_RESET_KHR  :: (Eq a, Num a) => a
+
 pattern GL_LOSE_CONTEXT_ON_RESET_KHR = 0x8252
 
+pattern GL_NO_RESET_NOTIFICATION_KHR  :: (Eq a, Num a) => a
+
 pattern GL_NO_RESET_NOTIFICATION_KHR = 0x8261
 
+pattern GL_RESET_NOTIFICATION_STRATEGY_KHR  :: (Eq a, Num a) => a
+
 pattern GL_RESET_NOTIFICATION_STRATEGY_KHR = 0x8256
+
+pattern GL_UNKNOWN_CONTEXT_RESET_KHR  :: (Eq a, Num a) => a
 
 pattern GL_UNKNOWN_CONTEXT_RESET_KHR = 0x8255
diff --git a/generated-src/Graphics/GL/Ext/MESA/PackInvert.hs b/generated-src/Graphics/GL/Ext/MESA/PackInvert.hs
--- a/generated-src/Graphics/GL/Ext/MESA/PackInvert.hs
+++ b/generated-src/Graphics/GL/Ext/MESA/PackInvert.hs
@@ -17,4 +17,6 @@
 gl_MESA_pack_invert = member "GL_MESA_pack_invert" extensions
 {-# NOINLINE gl_MESA_pack_invert #-}
 
+pattern GL_PACK_INVERT_MESA  :: (Eq a, Num a) => a
+
 pattern GL_PACK_INVERT_MESA = 0x8758
diff --git a/generated-src/Graphics/GL/Ext/MESA/YcbcrTexture.hs b/generated-src/Graphics/GL/Ext/MESA/YcbcrTexture.hs
--- a/generated-src/Graphics/GL/Ext/MESA/YcbcrTexture.hs
+++ b/generated-src/Graphics/GL/Ext/MESA/YcbcrTexture.hs
@@ -19,8 +19,14 @@
 gl_MESA_ycbcr_texture = member "GL_MESA_ycbcr_texture" extensions
 {-# NOINLINE gl_MESA_ycbcr_texture #-}
 
+pattern GL_UNSIGNED_SHORT_8_8_MESA  :: (Eq a, Num a) => a
+
 pattern GL_UNSIGNED_SHORT_8_8_MESA = 0x85BA
 
+pattern GL_UNSIGNED_SHORT_8_8_REV_MESA  :: (Eq a, Num a) => a
+
 pattern GL_UNSIGNED_SHORT_8_8_REV_MESA = 0x85BB
+
+pattern GL_YCBCR_MESA  :: (Eq a, Num a) => a
 
 pattern GL_YCBCR_MESA = 0x8757
diff --git a/generated-src/Graphics/GL/Ext/MESAX/TextureStack.hs b/generated-src/Graphics/GL/Ext/MESAX/TextureStack.hs
--- a/generated-src/Graphics/GL/Ext/MESAX/TextureStack.hs
+++ b/generated-src/Graphics/GL/Ext/MESAX/TextureStack.hs
@@ -22,14 +22,26 @@
 gl_MESAX_texture_stack = member "GL_MESAX_texture_stack" extensions
 {-# NOINLINE gl_MESAX_texture_stack #-}
 
+pattern GL_PROXY_TEXTURE_1D_STACK_MESAX  :: (Eq a, Num a) => a
+
 pattern GL_PROXY_TEXTURE_1D_STACK_MESAX = 0x875B
 
+pattern GL_PROXY_TEXTURE_2D_STACK_MESAX  :: (Eq a, Num a) => a
+
 pattern GL_PROXY_TEXTURE_2D_STACK_MESAX = 0x875C
 
+pattern GL_TEXTURE_1D_STACK_BINDING_MESAX  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_1D_STACK_BINDING_MESAX = 0x875D
 
+pattern GL_TEXTURE_1D_STACK_MESAX  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_1D_STACK_MESAX = 0x8759
 
+pattern GL_TEXTURE_2D_STACK_BINDING_MESAX  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_2D_STACK_BINDING_MESAX = 0x875E
+
+pattern GL_TEXTURE_2D_STACK_MESAX  :: (Eq a, Num a) => a
 
 pattern GL_TEXTURE_2D_STACK_MESAX = 0x875A
diff --git a/generated-src/Graphics/GL/Ext/NV/BlendEquationAdvanced.hs b/generated-src/Graphics/GL/Ext/NV/BlendEquationAdvanced.hs
--- a/generated-src/Graphics/GL/Ext/NV/BlendEquationAdvanced.hs
+++ b/generated-src/Graphics/GL/Ext/NV/BlendEquationAdvanced.hs
@@ -99,100 +99,198 @@
 
 {-# NOINLINE glBlendParameteriNVFunPtr #-}
 
+pattern GL_BLEND_OVERLAP_NV  :: (Eq a, Num a) => a
+
 pattern GL_BLEND_OVERLAP_NV = 0x9281
 
+pattern GL_BLEND_PREMULTIPLIED_SRC_NV  :: (Eq a, Num a) => a
+
 pattern GL_BLEND_PREMULTIPLIED_SRC_NV = 0x9280
 
+pattern GL_BLUE_NV  :: (Eq a, Num a) => a
+
 pattern GL_BLUE_NV = 0x1905
 
+pattern GL_COLORBURN_NV  :: (Eq a, Num a) => a
+
 pattern GL_COLORBURN_NV = 0x929A
 
+pattern GL_COLORDODGE_NV  :: (Eq a, Num a) => a
+
 pattern GL_COLORDODGE_NV = 0x9299
 
+pattern GL_CONJOINT_NV  :: (Eq a, Num a) => a
+
 pattern GL_CONJOINT_NV = 0x9284
 
+pattern GL_CONTRAST_NV  :: (Eq a, Num a) => a
+
 pattern GL_CONTRAST_NV = 0x92A1
 
+pattern GL_DARKEN_NV  :: (Eq a, Num a) => a
+
 pattern GL_DARKEN_NV = 0x9297
 
+pattern GL_DIFFERENCE_NV  :: (Eq a, Num a) => a
+
 pattern GL_DIFFERENCE_NV = 0x929E
 
+pattern GL_DISJOINT_NV  :: (Eq a, Num a) => a
+
 pattern GL_DISJOINT_NV = 0x9283
 
+pattern GL_DST_ATOP_NV  :: (Eq a, Num a) => a
+
 pattern GL_DST_ATOP_NV = 0x928F
 
+pattern GL_DST_IN_NV  :: (Eq a, Num a) => a
+
 pattern GL_DST_IN_NV = 0x928B
 
+pattern GL_DST_NV  :: (Eq a, Num a) => a
+
 pattern GL_DST_NV = 0x9287
 
+pattern GL_DST_OUT_NV  :: (Eq a, Num a) => a
+
 pattern GL_DST_OUT_NV = 0x928D
 
+pattern GL_DST_OVER_NV  :: (Eq a, Num a) => a
+
 pattern GL_DST_OVER_NV = 0x9289
 
+pattern GL_EXCLUSION_NV  :: (Eq a, Num a) => a
+
 pattern GL_EXCLUSION_NV = 0x92A0
 
+pattern GL_GREEN_NV  :: (Eq a, Num a) => a
+
 pattern GL_GREEN_NV = 0x1904
 
+pattern GL_HARDLIGHT_NV  :: (Eq a, Num a) => a
+
 pattern GL_HARDLIGHT_NV = 0x929B
 
+pattern GL_HARDMIX_NV  :: (Eq a, Num a) => a
+
 pattern GL_HARDMIX_NV = 0x92A9
 
+pattern GL_HSL_COLOR_NV  :: (Eq a, Num a) => a
+
 pattern GL_HSL_COLOR_NV = 0x92AF
 
+pattern GL_HSL_HUE_NV  :: (Eq a, Num a) => a
+
 pattern GL_HSL_HUE_NV = 0x92AD
 
+pattern GL_HSL_LUMINOSITY_NV  :: (Eq a, Num a) => a
+
 pattern GL_HSL_LUMINOSITY_NV = 0x92B0
 
+pattern GL_HSL_SATURATION_NV  :: (Eq a, Num a) => a
+
 pattern GL_HSL_SATURATION_NV = 0x92AE
 
+pattern GL_INVERT_OVG_NV  :: (Eq a, Num a) => a
+
 pattern GL_INVERT_OVG_NV = 0x92B4
 
+pattern GL_INVERT_RGB_NV  :: (Eq a, Num a) => a
+
 pattern GL_INVERT_RGB_NV = 0x92A3
 
+pattern GL_LIGHTEN_NV  :: (Eq a, Num a) => a
+
 pattern GL_LIGHTEN_NV = 0x9298
 
+pattern GL_LINEARBURN_NV  :: (Eq a, Num a) => a
+
 pattern GL_LINEARBURN_NV = 0x92A5
 
+pattern GL_LINEARDODGE_NV  :: (Eq a, Num a) => a
+
 pattern GL_LINEARDODGE_NV = 0x92A4
 
+pattern GL_LINEARLIGHT_NV  :: (Eq a, Num a) => a
+
 pattern GL_LINEARLIGHT_NV = 0x92A7
 
+pattern GL_MINUS_CLAMPED_NV  :: (Eq a, Num a) => a
+
 pattern GL_MINUS_CLAMPED_NV = 0x92B3
 
+pattern GL_MINUS_NV  :: (Eq a, Num a) => a
+
 pattern GL_MINUS_NV = 0x929F
 
+pattern GL_MULTIPLY_NV  :: (Eq a, Num a) => a
+
 pattern GL_MULTIPLY_NV = 0x9294
 
+pattern GL_OVERLAY_NV  :: (Eq a, Num a) => a
+
 pattern GL_OVERLAY_NV = 0x9296
 
+pattern GL_PINLIGHT_NV  :: (Eq a, Num a) => a
+
 pattern GL_PINLIGHT_NV = 0x92A8
 
+pattern GL_PLUS_CLAMPED_ALPHA_NV  :: (Eq a, Num a) => a
+
 pattern GL_PLUS_CLAMPED_ALPHA_NV = 0x92B2
 
+pattern GL_PLUS_CLAMPED_NV  :: (Eq a, Num a) => a
+
 pattern GL_PLUS_CLAMPED_NV = 0x92B1
 
+pattern GL_PLUS_DARKER_NV  :: (Eq a, Num a) => a
+
 pattern GL_PLUS_DARKER_NV = 0x9292
 
+pattern GL_PLUS_NV  :: (Eq a, Num a) => a
+
 pattern GL_PLUS_NV = 0x9291
 
+pattern GL_RED_NV  :: (Eq a, Num a) => a
+
 pattern GL_RED_NV = 0x1903
 
+pattern GL_SCREEN_NV  :: (Eq a, Num a) => a
+
 pattern GL_SCREEN_NV = 0x9295
 
+pattern GL_SOFTLIGHT_NV  :: (Eq a, Num a) => a
+
 pattern GL_SOFTLIGHT_NV = 0x929C
 
+pattern GL_SRC_ATOP_NV  :: (Eq a, Num a) => a
+
 pattern GL_SRC_ATOP_NV = 0x928E
 
+pattern GL_SRC_IN_NV  :: (Eq a, Num a) => a
+
 pattern GL_SRC_IN_NV = 0x928A
 
+pattern GL_SRC_NV  :: (Eq a, Num a) => a
+
 pattern GL_SRC_NV = 0x9286
 
+pattern GL_SRC_OUT_NV  :: (Eq a, Num a) => a
+
 pattern GL_SRC_OUT_NV = 0x928C
 
+pattern GL_SRC_OVER_NV  :: (Eq a, Num a) => a
+
 pattern GL_SRC_OVER_NV = 0x9288
 
+pattern GL_UNCORRELATED_NV  :: (Eq a, Num a) => a
+
 pattern GL_UNCORRELATED_NV = 0x9282
 
+pattern GL_VIVIDLIGHT_NV  :: (Eq a, Num a) => a
+
 pattern GL_VIVIDLIGHT_NV = 0x92A6
+
+pattern GL_XOR_NV  :: (Eq a, Num a) => a
 
 pattern GL_XOR_NV = 0x1506
diff --git a/generated-src/Graphics/GL/Ext/NV/BlendEquationAdvancedCoherent.hs b/generated-src/Graphics/GL/Ext/NV/BlendEquationAdvancedCoherent.hs
--- a/generated-src/Graphics/GL/Ext/NV/BlendEquationAdvancedCoherent.hs
+++ b/generated-src/Graphics/GL/Ext/NV/BlendEquationAdvancedCoherent.hs
@@ -17,4 +17,6 @@
 gl_NV_blend_equation_advanced_coherent = member "GL_NV_blend_equation_advanced_coherent" extensions
 {-# NOINLINE gl_NV_blend_equation_advanced_coherent #-}
 
+pattern GL_BLEND_ADVANCED_COHERENT_NV  :: (Eq a, Num a) => a
+
 pattern GL_BLEND_ADVANCED_COHERENT_NV = 0x9285
diff --git a/generated-src/Graphics/GL/Ext/NV/ClipSpaceWScaling.hs b/generated-src/Graphics/GL/Ext/NV/ClipSpaceWScaling.hs
--- a/generated-src/Graphics/GL/Ext/NV/ClipSpaceWScaling.hs
+++ b/generated-src/Graphics/GL/Ext/NV/ClipSpaceWScaling.hs
@@ -36,8 +36,14 @@
 
 {-# NOINLINE glViewportPositionWScaleNVFunPtr #-}
 
+pattern GL_VIEWPORT_POSITION_W_SCALE_NV  :: (Eq a, Num a) => a
+
 pattern GL_VIEWPORT_POSITION_W_SCALE_NV = 0x937C
 
+pattern GL_VIEWPORT_POSITION_W_SCALE_X_COEFF_NV  :: (Eq a, Num a) => a
+
 pattern GL_VIEWPORT_POSITION_W_SCALE_X_COEFF_NV = 0x937D
+
+pattern GL_VIEWPORT_POSITION_W_SCALE_Y_COEFF_NV  :: (Eq a, Num a) => a
 
 pattern GL_VIEWPORT_POSITION_W_SCALE_Y_COEFF_NV = 0x937E
diff --git a/generated-src/Graphics/GL/Ext/NV/CommandList.hs b/generated-src/Graphics/GL/Ext/NV/CommandList.hs
--- a/generated-src/Graphics/GL/Ext/NV/CommandList.hs
+++ b/generated-src/Graphics/GL/Ext/NV/CommandList.hs
@@ -244,40 +244,78 @@
 
 {-# NOINLINE glStateCaptureNVFunPtr #-}
 
+pattern GL_ALPHA_REF_COMMAND_NV  :: (Eq a, Num a) => a
+
 pattern GL_ALPHA_REF_COMMAND_NV = 0x000F
 
+pattern GL_ATTRIBUTE_ADDRESS_COMMAND_NV  :: (Eq a, Num a) => a
+
 pattern GL_ATTRIBUTE_ADDRESS_COMMAND_NV = 0x0009
 
+pattern GL_BLEND_COLOR_COMMAND_NV  :: (Eq a, Num a) => a
+
 pattern GL_BLEND_COLOR_COMMAND_NV = 0x000B
 
+pattern GL_DRAW_ARRAYS_COMMAND_NV  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_ARRAYS_COMMAND_NV = 0x0003
 
+pattern GL_DRAW_ARRAYS_INSTANCED_COMMAND_NV  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_ARRAYS_INSTANCED_COMMAND_NV = 0x0007
 
+pattern GL_DRAW_ARRAYS_STRIP_COMMAND_NV  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_ARRAYS_STRIP_COMMAND_NV = 0x0005
 
+pattern GL_DRAW_ELEMENTS_COMMAND_NV  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_ELEMENTS_COMMAND_NV = 0x0002
 
+pattern GL_DRAW_ELEMENTS_INSTANCED_COMMAND_NV  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_ELEMENTS_INSTANCED_COMMAND_NV = 0x0006
 
+pattern GL_DRAW_ELEMENTS_STRIP_COMMAND_NV  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_ELEMENTS_STRIP_COMMAND_NV = 0x0004
 
+pattern GL_ELEMENT_ADDRESS_COMMAND_NV  :: (Eq a, Num a) => a
+
 pattern GL_ELEMENT_ADDRESS_COMMAND_NV = 0x0008
 
+pattern GL_FRONT_FACE_COMMAND_NV  :: (Eq a, Num a) => a
+
 pattern GL_FRONT_FACE_COMMAND_NV = 0x0012
 
+pattern GL_LINE_WIDTH_COMMAND_NV  :: (Eq a, Num a) => a
+
 pattern GL_LINE_WIDTH_COMMAND_NV = 0x000D
 
+pattern GL_NOP_COMMAND_NV  :: (Eq a, Num a) => a
+
 pattern GL_NOP_COMMAND_NV = 0x0001
 
+pattern GL_POLYGON_OFFSET_COMMAND_NV  :: (Eq a, Num a) => a
+
 pattern GL_POLYGON_OFFSET_COMMAND_NV = 0x000E
 
+pattern GL_SCISSOR_COMMAND_NV  :: (Eq a, Num a) => a
+
 pattern GL_SCISSOR_COMMAND_NV = 0x0011
 
+pattern GL_STENCIL_REF_COMMAND_NV  :: (Eq a, Num a) => a
+
 pattern GL_STENCIL_REF_COMMAND_NV = 0x000C
 
+pattern GL_TERMINATE_SEQUENCE_COMMAND_NV  :: (Eq a, Num a) => a
+
 pattern GL_TERMINATE_SEQUENCE_COMMAND_NV = 0x0000
 
+pattern GL_UNIFORM_ADDRESS_COMMAND_NV  :: (Eq a, Num a) => a
+
 pattern GL_UNIFORM_ADDRESS_COMMAND_NV = 0x000A
+
+pattern GL_VIEWPORT_COMMAND_NV  :: (Eq a, Num a) => a
 
 pattern GL_VIEWPORT_COMMAND_NV = 0x0010
diff --git a/generated-src/Graphics/GL/Ext/NV/ComputeProgram5.hs b/generated-src/Graphics/GL/Ext/NV/ComputeProgram5.hs
--- a/generated-src/Graphics/GL/Ext/NV/ComputeProgram5.hs
+++ b/generated-src/Graphics/GL/Ext/NV/ComputeProgram5.hs
@@ -18,6 +18,10 @@
 gl_NV_compute_program5 = member "GL_NV_compute_program5" extensions
 {-# NOINLINE gl_NV_compute_program5 #-}
 
+pattern GL_COMPUTE_PROGRAM_NV  :: (Eq a, Num a) => a
+
 pattern GL_COMPUTE_PROGRAM_NV = 0x90FB
+
+pattern GL_COMPUTE_PROGRAM_PARAMETER_BUFFER_NV  :: (Eq a, Num a) => a
 
 pattern GL_COMPUTE_PROGRAM_PARAMETER_BUFFER_NV = 0x90FC
diff --git a/generated-src/Graphics/GL/Ext/NV/ConditionalRender.hs b/generated-src/Graphics/GL/Ext/NV/ConditionalRender.hs
--- a/generated-src/Graphics/GL/Ext/NV/ConditionalRender.hs
+++ b/generated-src/Graphics/GL/Ext/NV/ConditionalRender.hs
@@ -55,10 +55,18 @@
 
 {-# NOINLINE glEndConditionalRenderNVFunPtr #-}
 
+pattern GL_QUERY_BY_REGION_NO_WAIT_NV  :: (Eq a, Num a) => a
+
 pattern GL_QUERY_BY_REGION_NO_WAIT_NV = 0x8E16
 
+pattern GL_QUERY_BY_REGION_WAIT_NV  :: (Eq a, Num a) => a
+
 pattern GL_QUERY_BY_REGION_WAIT_NV = 0x8E15
 
+pattern GL_QUERY_NO_WAIT_NV  :: (Eq a, Num a) => a
+
 pattern GL_QUERY_NO_WAIT_NV = 0x8E14
+
+pattern GL_QUERY_WAIT_NV  :: (Eq a, Num a) => a
 
 pattern GL_QUERY_WAIT_NV = 0x8E13
diff --git a/generated-src/Graphics/GL/Ext/NV/ConservativeRaster.hs b/generated-src/Graphics/GL/Ext/NV/ConservativeRaster.hs
--- a/generated-src/Graphics/GL/Ext/NV/ConservativeRaster.hs
+++ b/generated-src/Graphics/GL/Ext/NV/ConservativeRaster.hs
@@ -37,10 +37,18 @@
 
 {-# NOINLINE glSubpixelPrecisionBiasNVFunPtr #-}
 
+pattern GL_CONSERVATIVE_RASTERIZATION_NV  :: (Eq a, Num a) => a
+
 pattern GL_CONSERVATIVE_RASTERIZATION_NV = 0x9346
 
+pattern GL_MAX_SUBPIXEL_PRECISION_BIAS_BITS_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAX_SUBPIXEL_PRECISION_BIAS_BITS_NV = 0x9349
 
+pattern GL_SUBPIXEL_PRECISION_BIAS_X_BITS_NV  :: (Eq a, Num a) => a
+
 pattern GL_SUBPIXEL_PRECISION_BIAS_X_BITS_NV = 0x9347
+
+pattern GL_SUBPIXEL_PRECISION_BIAS_Y_BITS_NV  :: (Eq a, Num a) => a
 
 pattern GL_SUBPIXEL_PRECISION_BIAS_Y_BITS_NV = 0x9348
diff --git a/generated-src/Graphics/GL/Ext/NV/ConservativeRasterDilate.hs b/generated-src/Graphics/GL/Ext/NV/ConservativeRasterDilate.hs
--- a/generated-src/Graphics/GL/Ext/NV/ConservativeRasterDilate.hs
+++ b/generated-src/Graphics/GL/Ext/NV/ConservativeRasterDilate.hs
@@ -36,8 +36,14 @@
 
 {-# NOINLINE glConservativeRasterParameterfNVFunPtr #-}
 
+pattern GL_CONSERVATIVE_RASTER_DILATE_GRANULARITY_NV  :: (Eq a, Num a) => a
+
 pattern GL_CONSERVATIVE_RASTER_DILATE_GRANULARITY_NV = 0x937B
 
+pattern GL_CONSERVATIVE_RASTER_DILATE_NV  :: (Eq a, Num a) => a
+
 pattern GL_CONSERVATIVE_RASTER_DILATE_NV = 0x9379
+
+pattern GL_CONSERVATIVE_RASTER_DILATE_RANGE_NV  :: (Eq a, Num a) => a
 
 pattern GL_CONSERVATIVE_RASTER_DILATE_RANGE_NV = 0x937A
diff --git a/generated-src/Graphics/GL/Ext/NV/ConservativeRasterPreSnapTriangles.hs b/generated-src/Graphics/GL/Ext/NV/ConservativeRasterPreSnapTriangles.hs
--- a/generated-src/Graphics/GL/Ext/NV/ConservativeRasterPreSnapTriangles.hs
+++ b/generated-src/Graphics/GL/Ext/NV/ConservativeRasterPreSnapTriangles.hs
@@ -36,8 +36,14 @@
 
 {-# NOINLINE glConservativeRasterParameteriNVFunPtr #-}
 
+pattern GL_CONSERVATIVE_RASTER_MODE_NV  :: (Eq a, Num a) => a
+
 pattern GL_CONSERVATIVE_RASTER_MODE_NV = 0x954D
 
+pattern GL_CONSERVATIVE_RASTER_MODE_POST_SNAP_NV  :: (Eq a, Num a) => a
+
 pattern GL_CONSERVATIVE_RASTER_MODE_POST_SNAP_NV = 0x954E
+
+pattern GL_CONSERVATIVE_RASTER_MODE_PRE_SNAP_TRIANGLES_NV  :: (Eq a, Num a) => a
 
 pattern GL_CONSERVATIVE_RASTER_MODE_PRE_SNAP_TRIANGLES_NV = 0x954F
diff --git a/generated-src/Graphics/GL/Ext/NV/CopyBuffer.hs b/generated-src/Graphics/GL/Ext/NV/CopyBuffer.hs
--- a/generated-src/Graphics/GL/Ext/NV/CopyBuffer.hs
+++ b/generated-src/Graphics/GL/Ext/NV/CopyBuffer.hs
@@ -43,6 +43,10 @@
 
 {-# NOINLINE glCopyBufferSubDataNVFunPtr #-}
 
+pattern GL_COPY_READ_BUFFER_NV  :: (Eq a, Num a) => a
+
 pattern GL_COPY_READ_BUFFER_NV = 0x8F36
+
+pattern GL_COPY_WRITE_BUFFER_NV  :: (Eq a, Num a) => a
 
 pattern GL_COPY_WRITE_BUFFER_NV = 0x8F37
diff --git a/generated-src/Graphics/GL/Ext/NV/CopyDepthToColor.hs b/generated-src/Graphics/GL/Ext/NV/CopyDepthToColor.hs
--- a/generated-src/Graphics/GL/Ext/NV/CopyDepthToColor.hs
+++ b/generated-src/Graphics/GL/Ext/NV/CopyDepthToColor.hs
@@ -18,6 +18,10 @@
 gl_NV_copy_depth_to_color = member "GL_NV_copy_depth_to_color" extensions
 {-# NOINLINE gl_NV_copy_depth_to_color #-}
 
+pattern GL_DEPTH_STENCIL_TO_BGRA_NV  :: (Eq a, Num a) => a
+
 pattern GL_DEPTH_STENCIL_TO_BGRA_NV = 0x886F
+
+pattern GL_DEPTH_STENCIL_TO_RGBA_NV  :: (Eq a, Num a) => a
 
 pattern GL_DEPTH_STENCIL_TO_RGBA_NV = 0x886E
diff --git a/generated-src/Graphics/GL/Ext/NV/CoverageSample.hs b/generated-src/Graphics/GL/Ext/NV/CoverageSample.hs
--- a/generated-src/Graphics/GL/Ext/NV/CoverageSample.hs
+++ b/generated-src/Graphics/GL/Ext/NV/CoverageSample.hs
@@ -54,20 +54,38 @@
 
 {-# NOINLINE glCoverageOperationNVFunPtr #-}
 
+pattern GL_COVERAGE_ALL_FRAGMENTS_NV  :: (Eq a, Num a) => a
+
 pattern GL_COVERAGE_ALL_FRAGMENTS_NV = 0x8ED5
 
+pattern GL_COVERAGE_ATTACHMENT_NV  :: (Eq a, Num a) => a
+
 pattern GL_COVERAGE_ATTACHMENT_NV = 0x8ED2
 
+pattern GL_COVERAGE_AUTOMATIC_NV  :: (Eq a, Num a) => a
+
 pattern GL_COVERAGE_AUTOMATIC_NV = 0x8ED7
 
+pattern GL_COVERAGE_BUFFERS_NV  :: (Eq a, Num a) => a
+
 pattern GL_COVERAGE_BUFFERS_NV = 0x8ED3
 
+pattern GL_COVERAGE_BUFFER_BIT_NV  :: (Eq a, Num a) => a
+
 pattern GL_COVERAGE_BUFFER_BIT_NV = 0x00008000
 
+pattern GL_COVERAGE_COMPONENT4_NV  :: (Eq a, Num a) => a
+
 pattern GL_COVERAGE_COMPONENT4_NV = 0x8ED1
 
+pattern GL_COVERAGE_COMPONENT_NV  :: (Eq a, Num a) => a
+
 pattern GL_COVERAGE_COMPONENT_NV = 0x8ED0
 
+pattern GL_COVERAGE_EDGE_FRAGMENTS_NV  :: (Eq a, Num a) => a
+
 pattern GL_COVERAGE_EDGE_FRAGMENTS_NV = 0x8ED6
+
+pattern GL_COVERAGE_SAMPLES_NV  :: (Eq a, Num a) => a
 
 pattern GL_COVERAGE_SAMPLES_NV = 0x8ED4
diff --git a/generated-src/Graphics/GL/Ext/NV/DeepTexture3D.hs b/generated-src/Graphics/GL/Ext/NV/DeepTexture3D.hs
--- a/generated-src/Graphics/GL/Ext/NV/DeepTexture3D.hs
+++ b/generated-src/Graphics/GL/Ext/NV/DeepTexture3D.hs
@@ -18,6 +18,10 @@
 gl_NV_deep_texture3D = member "GL_NV_deep_texture3D" extensions
 {-# NOINLINE gl_NV_deep_texture3D #-}
 
+pattern GL_MAX_DEEP_3D_TEXTURE_DEPTH_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAX_DEEP_3D_TEXTURE_DEPTH_NV = 0x90D1
+
+pattern GL_MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV  :: (Eq a, Num a) => a
 
 pattern GL_MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV = 0x90D0
diff --git a/generated-src/Graphics/GL/Ext/NV/DepthBufferFloat.hs b/generated-src/Graphics/GL/Ext/NV/DepthBufferFloat.hs
--- a/generated-src/Graphics/GL/Ext/NV/DepthBufferFloat.hs
+++ b/generated-src/Graphics/GL/Ext/NV/DepthBufferFloat.hs
@@ -61,10 +61,18 @@
 
 {-# NOINLINE glDepthRangedNVFunPtr #-}
 
+pattern GL_DEPTH32F_STENCIL8_NV  :: (Eq a, Num a) => a
+
 pattern GL_DEPTH32F_STENCIL8_NV = 0x8DAC
 
+pattern GL_DEPTH_BUFFER_FLOAT_MODE_NV  :: (Eq a, Num a) => a
+
 pattern GL_DEPTH_BUFFER_FLOAT_MODE_NV = 0x8DAF
 
+pattern GL_DEPTH_COMPONENT32F_NV  :: (Eq a, Num a) => a
+
 pattern GL_DEPTH_COMPONENT32F_NV = 0x8DAB
+
+pattern GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV  :: (Eq a, Num a) => a
 
 pattern GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV = 0x8DAD
diff --git a/generated-src/Graphics/GL/Ext/NV/DepthClamp.hs b/generated-src/Graphics/GL/Ext/NV/DepthClamp.hs
--- a/generated-src/Graphics/GL/Ext/NV/DepthClamp.hs
+++ b/generated-src/Graphics/GL/Ext/NV/DepthClamp.hs
@@ -17,4 +17,6 @@
 gl_NV_depth_clamp = member "GL_NV_depth_clamp" extensions
 {-# NOINLINE gl_NV_depth_clamp #-}
 
+pattern GL_DEPTH_CLAMP_NV  :: (Eq a, Num a) => a
+
 pattern GL_DEPTH_CLAMP_NV = 0x864F
diff --git a/generated-src/Graphics/GL/Ext/NV/DepthNonlinear.hs b/generated-src/Graphics/GL/Ext/NV/DepthNonlinear.hs
--- a/generated-src/Graphics/GL/Ext/NV/DepthNonlinear.hs
+++ b/generated-src/Graphics/GL/Ext/NV/DepthNonlinear.hs
@@ -17,4 +17,6 @@
 gl_NV_depth_nonlinear = member "GL_NV_depth_nonlinear" extensions
 {-# NOINLINE gl_NV_depth_nonlinear #-}
 
+pattern GL_DEPTH_COMPONENT16_NONLINEAR_NV  :: (Eq a, Num a) => a
+
 pattern GL_DEPTH_COMPONENT16_NONLINEAR_NV = 0x8E2C
diff --git a/generated-src/Graphics/GL/Ext/NV/DrawBuffers.hs b/generated-src/Graphics/GL/Ext/NV/DrawBuffers.hs
--- a/generated-src/Graphics/GL/Ext/NV/DrawBuffers.hs
+++ b/generated-src/Graphics/GL/Ext/NV/DrawBuffers.hs
@@ -69,36 +69,70 @@
 
 {-# NOINLINE glDrawBuffersNVFunPtr #-}
 
+pattern GL_DRAW_BUFFER0_NV  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER0_NV = 0x8825
 
+pattern GL_DRAW_BUFFER10_NV  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER10_NV = 0x882F
 
+pattern GL_DRAW_BUFFER11_NV  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER11_NV = 0x8830
 
+pattern GL_DRAW_BUFFER12_NV  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER12_NV = 0x8831
 
+pattern GL_DRAW_BUFFER13_NV  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER13_NV = 0x8832
 
+pattern GL_DRAW_BUFFER14_NV  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER14_NV = 0x8833
 
+pattern GL_DRAW_BUFFER15_NV  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER15_NV = 0x8834
 
+pattern GL_DRAW_BUFFER1_NV  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER1_NV = 0x8826
 
+pattern GL_DRAW_BUFFER2_NV  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER2_NV = 0x8827
 
+pattern GL_DRAW_BUFFER3_NV  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER3_NV = 0x8828
 
+pattern GL_DRAW_BUFFER4_NV  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER4_NV = 0x8829
 
+pattern GL_DRAW_BUFFER5_NV  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER5_NV = 0x882A
 
+pattern GL_DRAW_BUFFER6_NV  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER6_NV = 0x882B
 
+pattern GL_DRAW_BUFFER7_NV  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER7_NV = 0x882C
 
+pattern GL_DRAW_BUFFER8_NV  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER8_NV = 0x882D
 
+pattern GL_DRAW_BUFFER9_NV  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_BUFFER9_NV = 0x882E
+
+pattern GL_MAX_DRAW_BUFFERS_NV  :: (Eq a, Num a) => a
 
 pattern GL_MAX_DRAW_BUFFERS_NV = 0x8824
diff --git a/generated-src/Graphics/GL/Ext/NV/Evaluators.hs b/generated-src/Graphics/GL/Ext/NV/Evaluators.hs
--- a/generated-src/Graphics/GL/Ext/NV/Evaluators.hs
+++ b/generated-src/Graphics/GL/Ext/NV/Evaluators.hs
@@ -217,50 +217,98 @@
 
 {-# NOINLINE glMapParameterivNVFunPtr #-}
 
+pattern GL_EVAL_2D_NV  :: (Eq a, Num a) => a
+
 pattern GL_EVAL_2D_NV = 0x86C0
 
+pattern GL_EVAL_FRACTIONAL_TESSELLATION_NV  :: (Eq a, Num a) => a
+
 pattern GL_EVAL_FRACTIONAL_TESSELLATION_NV = 0x86C5
 
+pattern GL_EVAL_TRIANGULAR_2D_NV  :: (Eq a, Num a) => a
+
 pattern GL_EVAL_TRIANGULAR_2D_NV = 0x86C1
 
+pattern GL_EVAL_VERTEX_ATTRIB0_NV  :: (Eq a, Num a) => a
+
 pattern GL_EVAL_VERTEX_ATTRIB0_NV = 0x86C6
 
+pattern GL_EVAL_VERTEX_ATTRIB10_NV  :: (Eq a, Num a) => a
+
 pattern GL_EVAL_VERTEX_ATTRIB10_NV = 0x86D0
 
+pattern GL_EVAL_VERTEX_ATTRIB11_NV  :: (Eq a, Num a) => a
+
 pattern GL_EVAL_VERTEX_ATTRIB11_NV = 0x86D1
 
+pattern GL_EVAL_VERTEX_ATTRIB12_NV  :: (Eq a, Num a) => a
+
 pattern GL_EVAL_VERTEX_ATTRIB12_NV = 0x86D2
 
+pattern GL_EVAL_VERTEX_ATTRIB13_NV  :: (Eq a, Num a) => a
+
 pattern GL_EVAL_VERTEX_ATTRIB13_NV = 0x86D3
 
+pattern GL_EVAL_VERTEX_ATTRIB14_NV  :: (Eq a, Num a) => a
+
 pattern GL_EVAL_VERTEX_ATTRIB14_NV = 0x86D4
 
+pattern GL_EVAL_VERTEX_ATTRIB15_NV  :: (Eq a, Num a) => a
+
 pattern GL_EVAL_VERTEX_ATTRIB15_NV = 0x86D5
 
+pattern GL_EVAL_VERTEX_ATTRIB1_NV  :: (Eq a, Num a) => a
+
 pattern GL_EVAL_VERTEX_ATTRIB1_NV = 0x86C7
 
+pattern GL_EVAL_VERTEX_ATTRIB2_NV  :: (Eq a, Num a) => a
+
 pattern GL_EVAL_VERTEX_ATTRIB2_NV = 0x86C8
 
+pattern GL_EVAL_VERTEX_ATTRIB3_NV  :: (Eq a, Num a) => a
+
 pattern GL_EVAL_VERTEX_ATTRIB3_NV = 0x86C9
 
+pattern GL_EVAL_VERTEX_ATTRIB4_NV  :: (Eq a, Num a) => a
+
 pattern GL_EVAL_VERTEX_ATTRIB4_NV = 0x86CA
 
+pattern GL_EVAL_VERTEX_ATTRIB5_NV  :: (Eq a, Num a) => a
+
 pattern GL_EVAL_VERTEX_ATTRIB5_NV = 0x86CB
 
+pattern GL_EVAL_VERTEX_ATTRIB6_NV  :: (Eq a, Num a) => a
+
 pattern GL_EVAL_VERTEX_ATTRIB6_NV = 0x86CC
 
+pattern GL_EVAL_VERTEX_ATTRIB7_NV  :: (Eq a, Num a) => a
+
 pattern GL_EVAL_VERTEX_ATTRIB7_NV = 0x86CD
 
+pattern GL_EVAL_VERTEX_ATTRIB8_NV  :: (Eq a, Num a) => a
+
 pattern GL_EVAL_VERTEX_ATTRIB8_NV = 0x86CE
 
+pattern GL_EVAL_VERTEX_ATTRIB9_NV  :: (Eq a, Num a) => a
+
 pattern GL_EVAL_VERTEX_ATTRIB9_NV = 0x86CF
 
+pattern GL_MAP_ATTRIB_U_ORDER_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAP_ATTRIB_U_ORDER_NV = 0x86C3
 
+pattern GL_MAP_ATTRIB_V_ORDER_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAP_ATTRIB_V_ORDER_NV = 0x86C4
 
+pattern GL_MAP_TESSELLATION_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAP_TESSELLATION_NV = 0x86C2
 
+pattern GL_MAX_MAP_TESSELLATION_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAX_MAP_TESSELLATION_NV = 0x86D6
+
+pattern GL_MAX_RATIONAL_EVAL_ORDER_NV  :: (Eq a, Num a) => a
 
 pattern GL_MAX_RATIONAL_EVAL_ORDER_NV = 0x86D7
diff --git a/generated-src/Graphics/GL/Ext/NV/ExplicitMultisample.hs b/generated-src/Graphics/GL/Ext/NV/ExplicitMultisample.hs
--- a/generated-src/Graphics/GL/Ext/NV/ExplicitMultisample.hs
+++ b/generated-src/Graphics/GL/Ext/NV/ExplicitMultisample.hs
@@ -77,22 +77,42 @@
 
 {-# NOINLINE glTexRenderbufferNVFunPtr #-}
 
+pattern GL_INT_SAMPLER_RENDERBUFFER_NV  :: (Eq a, Num a) => a
+
 pattern GL_INT_SAMPLER_RENDERBUFFER_NV = 0x8E57
 
+pattern GL_MAX_SAMPLE_MASK_WORDS_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAX_SAMPLE_MASK_WORDS_NV = 0x8E59
 
+pattern GL_SAMPLER_RENDERBUFFER_NV  :: (Eq a, Num a) => a
+
 pattern GL_SAMPLER_RENDERBUFFER_NV = 0x8E56
 
+pattern GL_SAMPLE_MASK_NV  :: (Eq a, Num a) => a
+
 pattern GL_SAMPLE_MASK_NV = 0x8E51
 
+pattern GL_SAMPLE_MASK_VALUE_NV  :: (Eq a, Num a) => a
+
 pattern GL_SAMPLE_MASK_VALUE_NV = 0x8E52
 
+pattern GL_SAMPLE_POSITION_NV  :: (Eq a, Num a) => a
+
 pattern GL_SAMPLE_POSITION_NV = 0x8E50
 
+pattern GL_TEXTURE_BINDING_RENDERBUFFER_NV  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_BINDING_RENDERBUFFER_NV = 0x8E53
 
+pattern GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV = 0x8E54
 
+pattern GL_TEXTURE_RENDERBUFFER_NV  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_RENDERBUFFER_NV = 0x8E55
+
+pattern GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV  :: (Eq a, Num a) => a
 
 pattern GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV = 0x8E58
diff --git a/generated-src/Graphics/GL/Ext/NV/FboColorAttachments.hs b/generated-src/Graphics/GL/Ext/NV/FboColorAttachments.hs
--- a/generated-src/Graphics/GL/Ext/NV/FboColorAttachments.hs
+++ b/generated-src/Graphics/GL/Ext/NV/FboColorAttachments.hs
@@ -34,4 +34,6 @@
 gl_NV_fbo_color_attachments = member "GL_NV_fbo_color_attachments" extensions
 {-# NOINLINE gl_NV_fbo_color_attachments #-}
 
+pattern GL_MAX_COLOR_ATTACHMENTS_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAX_COLOR_ATTACHMENTS_NV = 0x8CDF
diff --git a/generated-src/Graphics/GL/Ext/NV/Fence.hs b/generated-src/Graphics/GL/Ext/NV/Fence.hs
--- a/generated-src/Graphics/GL/Ext/NV/Fence.hs
+++ b/generated-src/Graphics/GL/Ext/NV/Fence.hs
@@ -132,8 +132,14 @@
 
 {-# NOINLINE glTestFenceNVFunPtr #-}
 
+pattern GL_ALL_COMPLETED_NV  :: (Eq a, Num a) => a
+
 pattern GL_ALL_COMPLETED_NV = 0x84F2
 
+pattern GL_FENCE_CONDITION_NV  :: (Eq a, Num a) => a
+
 pattern GL_FENCE_CONDITION_NV = 0x84F4
+
+pattern GL_FENCE_STATUS_NV  :: (Eq a, Num a) => a
 
 pattern GL_FENCE_STATUS_NV = 0x84F3
diff --git a/generated-src/Graphics/GL/Ext/NV/FillRectangle.hs b/generated-src/Graphics/GL/Ext/NV/FillRectangle.hs
--- a/generated-src/Graphics/GL/Ext/NV/FillRectangle.hs
+++ b/generated-src/Graphics/GL/Ext/NV/FillRectangle.hs
@@ -17,4 +17,6 @@
 gl_NV_fill_rectangle = member "GL_NV_fill_rectangle" extensions
 {-# NOINLINE gl_NV_fill_rectangle #-}
 
+pattern GL_FILL_RECTANGLE_NV  :: (Eq a, Num a) => a
+
 pattern GL_FILL_RECTANGLE_NV = 0x933C
diff --git a/generated-src/Graphics/GL/Ext/NV/FloatBuffer.hs b/generated-src/Graphics/GL/Ext/NV/FloatBuffer.hs
--- a/generated-src/Graphics/GL/Ext/NV/FloatBuffer.hs
+++ b/generated-src/Graphics/GL/Ext/NV/FloatBuffer.hs
@@ -31,32 +31,62 @@
 gl_NV_float_buffer = member "GL_NV_float_buffer" extensions
 {-# NOINLINE gl_NV_float_buffer #-}
 
+pattern GL_FLOAT_CLEAR_COLOR_VALUE_NV  :: (Eq a, Num a) => a
+
 pattern GL_FLOAT_CLEAR_COLOR_VALUE_NV = 0x888D
 
+pattern GL_FLOAT_R16_NV  :: (Eq a, Num a) => a
+
 pattern GL_FLOAT_R16_NV = 0x8884
 
+pattern GL_FLOAT_R32_NV  :: (Eq a, Num a) => a
+
 pattern GL_FLOAT_R32_NV = 0x8885
 
+pattern GL_FLOAT_RG16_NV  :: (Eq a, Num a) => a
+
 pattern GL_FLOAT_RG16_NV = 0x8886
 
+pattern GL_FLOAT_RG32_NV  :: (Eq a, Num a) => a
+
 pattern GL_FLOAT_RG32_NV = 0x8887
 
+pattern GL_FLOAT_RGB16_NV  :: (Eq a, Num a) => a
+
 pattern GL_FLOAT_RGB16_NV = 0x8888
 
+pattern GL_FLOAT_RGB32_NV  :: (Eq a, Num a) => a
+
 pattern GL_FLOAT_RGB32_NV = 0x8889
 
+pattern GL_FLOAT_RGBA16_NV  :: (Eq a, Num a) => a
+
 pattern GL_FLOAT_RGBA16_NV = 0x888A
 
+pattern GL_FLOAT_RGBA32_NV  :: (Eq a, Num a) => a
+
 pattern GL_FLOAT_RGBA32_NV = 0x888B
 
+pattern GL_FLOAT_RGBA_MODE_NV  :: (Eq a, Num a) => a
+
 pattern GL_FLOAT_RGBA_MODE_NV = 0x888E
 
+pattern GL_FLOAT_RGBA_NV  :: (Eq a, Num a) => a
+
 pattern GL_FLOAT_RGBA_NV = 0x8883
 
+pattern GL_FLOAT_RGB_NV  :: (Eq a, Num a) => a
+
 pattern GL_FLOAT_RGB_NV = 0x8882
 
+pattern GL_FLOAT_RG_NV  :: (Eq a, Num a) => a
+
 pattern GL_FLOAT_RG_NV = 0x8881
 
+pattern GL_FLOAT_R_NV  :: (Eq a, Num a) => a
+
 pattern GL_FLOAT_R_NV = 0x8880
+
+pattern GL_TEXTURE_FLOAT_COMPONENTS_NV  :: (Eq a, Num a) => a
 
 pattern GL_TEXTURE_FLOAT_COMPONENTS_NV = 0x888C
diff --git a/generated-src/Graphics/GL/Ext/NV/FogDistance.hs b/generated-src/Graphics/GL/Ext/NV/FogDistance.hs
--- a/generated-src/Graphics/GL/Ext/NV/FogDistance.hs
+++ b/generated-src/Graphics/GL/Ext/NV/FogDistance.hs
@@ -21,8 +21,14 @@
 gl_NV_fog_distance = member "GL_NV_fog_distance" extensions
 {-# NOINLINE gl_NV_fog_distance #-}
 
+pattern GL_EYE_PLANE_ABSOLUTE_NV  :: (Eq a, Num a) => a
+
 pattern GL_EYE_PLANE_ABSOLUTE_NV = 0x855C
 
+pattern GL_EYE_RADIAL_NV  :: (Eq a, Num a) => a
+
 pattern GL_EYE_RADIAL_NV = 0x855B
+
+pattern GL_FOG_DISTANCE_MODE_NV  :: (Eq a, Num a) => a
 
 pattern GL_FOG_DISTANCE_MODE_NV = 0x855A
diff --git a/generated-src/Graphics/GL/Ext/NV/FragmentCoverageToColor.hs b/generated-src/Graphics/GL/Ext/NV/FragmentCoverageToColor.hs
--- a/generated-src/Graphics/GL/Ext/NV/FragmentCoverageToColor.hs
+++ b/generated-src/Graphics/GL/Ext/NV/FragmentCoverageToColor.hs
@@ -35,6 +35,10 @@
 
 {-# NOINLINE glFragmentCoverageColorNVFunPtr #-}
 
+pattern GL_FRAGMENT_COVERAGE_COLOR_NV  :: (Eq a, Num a) => a
+
 pattern GL_FRAGMENT_COVERAGE_COLOR_NV = 0x92DE
+
+pattern GL_FRAGMENT_COVERAGE_TO_COLOR_NV  :: (Eq a, Num a) => a
 
 pattern GL_FRAGMENT_COVERAGE_TO_COLOR_NV = 0x92DD
diff --git a/generated-src/Graphics/GL/Ext/NV/FragmentProgram.hs b/generated-src/Graphics/GL/Ext/NV/FragmentProgram.hs
--- a/generated-src/Graphics/GL/Ext/NV/FragmentProgram.hs
+++ b/generated-src/Graphics/GL/Ext/NV/FragmentProgram.hs
@@ -123,14 +123,26 @@
 
 {-# NOINLINE glProgramNamedParameter4fvNVFunPtr #-}
 
+pattern GL_FRAGMENT_PROGRAM_BINDING_NV  :: (Eq a, Num a) => a
+
 pattern GL_FRAGMENT_PROGRAM_BINDING_NV = 0x8873
 
+pattern GL_FRAGMENT_PROGRAM_NV  :: (Eq a, Num a) => a
+
 pattern GL_FRAGMENT_PROGRAM_NV = 0x8870
 
+pattern GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV = 0x8868
 
+pattern GL_MAX_TEXTURE_COORDS_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAX_TEXTURE_COORDS_NV = 0x8871
 
+pattern GL_MAX_TEXTURE_IMAGE_UNITS_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAX_TEXTURE_IMAGE_UNITS_NV = 0x8872
+
+pattern GL_PROGRAM_ERROR_STRING_NV  :: (Eq a, Num a) => a
 
 pattern GL_PROGRAM_ERROR_STRING_NV = 0x8874
diff --git a/generated-src/Graphics/GL/Ext/NV/FragmentProgram2.hs b/generated-src/Graphics/GL/Ext/NV/FragmentProgram2.hs
--- a/generated-src/Graphics/GL/Ext/NV/FragmentProgram2.hs
+++ b/generated-src/Graphics/GL/Ext/NV/FragmentProgram2.hs
@@ -22,8 +22,14 @@
 gl_NV_fragment_program2 = member "GL_NV_fragment_program2" extensions
 {-# NOINLINE gl_NV_fragment_program2 #-}
 
+pattern GL_MAX_PROGRAM_IF_DEPTH_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAX_PROGRAM_IF_DEPTH_NV = 0x88F6
 
+pattern GL_MAX_PROGRAM_LOOP_COUNT_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAX_PROGRAM_LOOP_COUNT_NV = 0x88F8
+
+pattern GL_MAX_PROGRAM_LOOP_DEPTH_NV  :: (Eq a, Num a) => a
 
 pattern GL_MAX_PROGRAM_LOOP_DEPTH_NV = 0x88F7
diff --git a/generated-src/Graphics/GL/Ext/NV/FramebufferBlit.hs b/generated-src/Graphics/GL/Ext/NV/FramebufferBlit.hs
--- a/generated-src/Graphics/GL/Ext/NV/FramebufferBlit.hs
+++ b/generated-src/Graphics/GL/Ext/NV/FramebufferBlit.hs
@@ -39,10 +39,18 @@
 
 {-# NOINLINE glBlitFramebufferNVFunPtr #-}
 
+pattern GL_DRAW_FRAMEBUFFER_BINDING_NV  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_FRAMEBUFFER_BINDING_NV = 0x8CA6
 
+pattern GL_DRAW_FRAMEBUFFER_NV  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_FRAMEBUFFER_NV = 0x8CA9
 
+pattern GL_READ_FRAMEBUFFER_BINDING_NV  :: (Eq a, Num a) => a
+
 pattern GL_READ_FRAMEBUFFER_BINDING_NV = 0x8CAA
+
+pattern GL_READ_FRAMEBUFFER_NV  :: (Eq a, Num a) => a
 
 pattern GL_READ_FRAMEBUFFER_NV = 0x8CA8
diff --git a/generated-src/Graphics/GL/Ext/NV/FramebufferMixedSamples.hs b/generated-src/Graphics/GL/Ext/NV/FramebufferMixedSamples.hs
--- a/generated-src/Graphics/GL/Ext/NV/FramebufferMixedSamples.hs
+++ b/generated-src/Graphics/GL/Ext/NV/FramebufferMixedSamples.hs
@@ -73,16 +73,30 @@
 
 {-# NOINLINE glGetCoverageModulationTableNVFunPtr #-}
 
+pattern GL_COVERAGE_MODULATION_NV  :: (Eq a, Num a) => a
+
 pattern GL_COVERAGE_MODULATION_NV = 0x9332
 
+pattern GL_COVERAGE_MODULATION_TABLE_NV  :: (Eq a, Num a) => a
+
 pattern GL_COVERAGE_MODULATION_TABLE_NV = 0x9331
 
+pattern GL_COVERAGE_MODULATION_TABLE_SIZE_NV  :: (Eq a, Num a) => a
+
 pattern GL_COVERAGE_MODULATION_TABLE_SIZE_NV = 0x9333
 
+pattern GL_DEPTH_SAMPLES_NV  :: (Eq a, Num a) => a
+
 pattern GL_DEPTH_SAMPLES_NV = 0x932D
 
+pattern GL_MIXED_DEPTH_SAMPLES_SUPPORTED_NV  :: (Eq a, Num a) => a
+
 pattern GL_MIXED_DEPTH_SAMPLES_SUPPORTED_NV = 0x932F
 
+pattern GL_MIXED_STENCIL_SAMPLES_SUPPORTED_NV  :: (Eq a, Num a) => a
+
 pattern GL_MIXED_STENCIL_SAMPLES_SUPPORTED_NV = 0x9330
+
+pattern GL_STENCIL_SAMPLES_NV  :: (Eq a, Num a) => a
 
 pattern GL_STENCIL_SAMPLES_NV = 0x932E
diff --git a/generated-src/Graphics/GL/Ext/NV/FramebufferMultisample.hs b/generated-src/Graphics/GL/Ext/NV/FramebufferMultisample.hs
--- a/generated-src/Graphics/GL/Ext/NV/FramebufferMultisample.hs
+++ b/generated-src/Graphics/GL/Ext/NV/FramebufferMultisample.hs
@@ -38,8 +38,14 @@
 
 {-# NOINLINE glRenderbufferStorageMultisampleNVFunPtr #-}
 
+pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_NV  :: (Eq a, Num a) => a
+
 pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_NV = 0x8D56
 
+pattern GL_MAX_SAMPLES_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAX_SAMPLES_NV = 0x8D57
+
+pattern GL_RENDERBUFFER_SAMPLES_NV  :: (Eq a, Num a) => a
 
 pattern GL_RENDERBUFFER_SAMPLES_NV = 0x8CAB
diff --git a/generated-src/Graphics/GL/Ext/NV/FramebufferMultisampleCoverage.hs b/generated-src/Graphics/GL/Ext/NV/FramebufferMultisampleCoverage.hs
--- a/generated-src/Graphics/GL/Ext/NV/FramebufferMultisampleCoverage.hs
+++ b/generated-src/Graphics/GL/Ext/NV/FramebufferMultisampleCoverage.hs
@@ -41,10 +41,18 @@
 
 {-# NOINLINE glRenderbufferStorageMultisampleCoverageNVFunPtr #-}
 
+pattern GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV = 0x8E11
 
+pattern GL_MULTISAMPLE_COVERAGE_MODES_NV  :: (Eq a, Num a) => a
+
 pattern GL_MULTISAMPLE_COVERAGE_MODES_NV = 0x8E12
 
+pattern GL_RENDERBUFFER_COLOR_SAMPLES_NV  :: (Eq a, Num a) => a
+
 pattern GL_RENDERBUFFER_COLOR_SAMPLES_NV = 0x8E10
+
+pattern GL_RENDERBUFFER_COVERAGE_SAMPLES_NV  :: (Eq a, Num a) => a
 
 pattern GL_RENDERBUFFER_COVERAGE_SAMPLES_NV = 0x8CAB
diff --git a/generated-src/Graphics/GL/Ext/NV/GeometryProgram4.hs b/generated-src/Graphics/GL/Ext/NV/GeometryProgram4.hs
--- a/generated-src/Graphics/GL/Ext/NV/GeometryProgram4.hs
+++ b/generated-src/Graphics/GL/Ext/NV/GeometryProgram4.hs
@@ -78,8 +78,14 @@
 
 {-# NOINLINE glProgramVertexLimitNVFunPtr #-}
 
+pattern GL_GEOMETRY_PROGRAM_NV  :: (Eq a, Num a) => a
+
 pattern GL_GEOMETRY_PROGRAM_NV = 0x8C26
 
+pattern GL_MAX_PROGRAM_OUTPUT_VERTICES_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAX_PROGRAM_OUTPUT_VERTICES_NV = 0x8C27
+
+pattern GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV  :: (Eq a, Num a) => a
 
 pattern GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV = 0x8C28
diff --git a/generated-src/Graphics/GL/Ext/NV/GpuProgram4.hs b/generated-src/Graphics/GL/Ext/NV/GpuProgram4.hs
--- a/generated-src/Graphics/GL/Ext/NV/GpuProgram4.hs
+++ b/generated-src/Graphics/GL/Ext/NV/GpuProgram4.hs
@@ -285,18 +285,34 @@
 
 {-# NOINLINE glProgramLocalParametersI4uivNVFunPtr #-}
 
+pattern GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV = 0x8908
 
+pattern GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV = 0x8DA5
 
+pattern GL_MAX_PROGRAM_GENERIC_RESULTS_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAX_PROGRAM_GENERIC_RESULTS_NV = 0x8DA6
 
+pattern GL_MAX_PROGRAM_RESULT_COMPONENTS_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAX_PROGRAM_RESULT_COMPONENTS_NV = 0x8909
 
+pattern GL_MAX_PROGRAM_TEXEL_OFFSET_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAX_PROGRAM_TEXEL_OFFSET_NV = 0x8905
 
+pattern GL_MIN_PROGRAM_TEXEL_OFFSET_NV  :: (Eq a, Num a) => a
+
 pattern GL_MIN_PROGRAM_TEXEL_OFFSET_NV = 0x8904
 
+pattern GL_PROGRAM_ATTRIB_COMPONENTS_NV  :: (Eq a, Num a) => a
+
 pattern GL_PROGRAM_ATTRIB_COMPONENTS_NV = 0x8906
+
+pattern GL_PROGRAM_RESULT_COMPONENTS_NV  :: (Eq a, Num a) => a
 
 pattern GL_PROGRAM_RESULT_COMPONENTS_NV = 0x8907
diff --git a/generated-src/Graphics/GL/Ext/NV/GpuProgram5.hs b/generated-src/Graphics/GL/Ext/NV/GpuProgram5.hs
--- a/generated-src/Graphics/GL/Ext/NV/GpuProgram5.hs
+++ b/generated-src/Graphics/GL/Ext/NV/GpuProgram5.hs
@@ -57,18 +57,34 @@
 
 {-# NOINLINE glProgramSubroutineParametersuivNVFunPtr #-}
 
+pattern GL_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV  :: (Eq a, Num a) => a
+
 pattern GL_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV = 0x8E5D
 
+pattern GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV = 0x8E5C
 
+pattern GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV = 0x8E5A
 
+pattern GL_MAX_PROGRAM_SUBROUTINE_NUM_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAX_PROGRAM_SUBROUTINE_NUM_NV = 0x8F45
 
+pattern GL_MAX_PROGRAM_SUBROUTINE_PARAMETERS_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAX_PROGRAM_SUBROUTINE_PARAMETERS_NV = 0x8F44
 
+pattern GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV = 0x8E5F
 
+pattern GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV  :: (Eq a, Num a) => a
+
 pattern GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV = 0x8E5B
+
+pattern GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV  :: (Eq a, Num a) => a
 
 pattern GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV = 0x8E5E
diff --git a/generated-src/Graphics/GL/Ext/NV/HalfFloat.hs b/generated-src/Graphics/GL/Ext/NV/HalfFloat.hs
--- a/generated-src/Graphics/GL/Ext/NV/HalfFloat.hs
+++ b/generated-src/Graphics/GL/Ext/NV/HalfFloat.hs
@@ -840,4 +840,6 @@
 
 {-# NOINLINE glVertexWeighthvNVFunPtr #-}
 
+pattern GL_HALF_FLOAT_NV  :: (Eq a, Num a) => a
+
 pattern GL_HALF_FLOAT_NV = 0x140B
diff --git a/generated-src/Graphics/GL/Ext/NV/InstancedArrays.hs b/generated-src/Graphics/GL/Ext/NV/InstancedArrays.hs
--- a/generated-src/Graphics/GL/Ext/NV/InstancedArrays.hs
+++ b/generated-src/Graphics/GL/Ext/NV/InstancedArrays.hs
@@ -36,4 +36,6 @@
 
 {-# NOINLINE glVertexAttribDivisorNVFunPtr #-}
 
+pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR_NV  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR_NV = 0x88FE
diff --git a/generated-src/Graphics/GL/Ext/NV/InternalformatSampleQuery.hs b/generated-src/Graphics/GL/Ext/NV/InternalformatSampleQuery.hs
--- a/generated-src/Graphics/GL/Ext/NV/InternalformatSampleQuery.hs
+++ b/generated-src/Graphics/GL/Ext/NV/InternalformatSampleQuery.hs
@@ -43,10 +43,18 @@
 
 {-# NOINLINE glGetInternalformatSampleivNVFunPtr #-}
 
+pattern GL_CONFORMANT_NV  :: (Eq a, Num a) => a
+
 pattern GL_CONFORMANT_NV = 0x9374
 
+pattern GL_MULTISAMPLES_NV  :: (Eq a, Num a) => a
+
 pattern GL_MULTISAMPLES_NV = 0x9371
 
+pattern GL_SUPERSAMPLE_SCALE_X_NV  :: (Eq a, Num a) => a
+
 pattern GL_SUPERSAMPLE_SCALE_X_NV = 0x9372
+
+pattern GL_SUPERSAMPLE_SCALE_Y_NV  :: (Eq a, Num a) => a
 
 pattern GL_SUPERSAMPLE_SCALE_Y_NV = 0x9373
diff --git a/generated-src/Graphics/GL/Ext/NV/LightMaxExponent.hs b/generated-src/Graphics/GL/Ext/NV/LightMaxExponent.hs
--- a/generated-src/Graphics/GL/Ext/NV/LightMaxExponent.hs
+++ b/generated-src/Graphics/GL/Ext/NV/LightMaxExponent.hs
@@ -18,6 +18,10 @@
 gl_NV_light_max_exponent = member "GL_NV_light_max_exponent" extensions
 {-# NOINLINE gl_NV_light_max_exponent #-}
 
+pattern GL_MAX_SHININESS_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAX_SHININESS_NV = 0x8504
+
+pattern GL_MAX_SPOT_EXPONENT_NV  :: (Eq a, Num a) => a
 
 pattern GL_MAX_SPOT_EXPONENT_NV = 0x8505
diff --git a/generated-src/Graphics/GL/Ext/NV/MultisampleFilterHint.hs b/generated-src/Graphics/GL/Ext/NV/MultisampleFilterHint.hs
--- a/generated-src/Graphics/GL/Ext/NV/MultisampleFilterHint.hs
+++ b/generated-src/Graphics/GL/Ext/NV/MultisampleFilterHint.hs
@@ -17,4 +17,6 @@
 gl_NV_multisample_filter_hint = member "GL_NV_multisample_filter_hint" extensions
 {-# NOINLINE gl_NV_multisample_filter_hint #-}
 
+pattern GL_MULTISAMPLE_FILTER_HINT_NV  :: (Eq a, Num a) => a
+
 pattern GL_MULTISAMPLE_FILTER_HINT_NV = 0x8534
diff --git a/generated-src/Graphics/GL/Ext/NV/NonSquareMatrices.hs b/generated-src/Graphics/GL/Ext/NV/NonSquareMatrices.hs
--- a/generated-src/Graphics/GL/Ext/NV/NonSquareMatrices.hs
+++ b/generated-src/Graphics/GL/Ext/NV/NonSquareMatrices.hs
@@ -135,14 +135,26 @@
 
 {-# NOINLINE glUniformMatrix4x3fvNVFunPtr #-}
 
+pattern GL_FLOAT_MAT2x3_NV  :: (Eq a, Num a) => a
+
 pattern GL_FLOAT_MAT2x3_NV = 0x8B65
 
+pattern GL_FLOAT_MAT2x4_NV  :: (Eq a, Num a) => a
+
 pattern GL_FLOAT_MAT2x4_NV = 0x8B66
 
+pattern GL_FLOAT_MAT3x2_NV  :: (Eq a, Num a) => a
+
 pattern GL_FLOAT_MAT3x2_NV = 0x8B67
 
+pattern GL_FLOAT_MAT3x4_NV  :: (Eq a, Num a) => a
+
 pattern GL_FLOAT_MAT3x4_NV = 0x8B68
 
+pattern GL_FLOAT_MAT4x2_NV  :: (Eq a, Num a) => a
+
 pattern GL_FLOAT_MAT4x2_NV = 0x8B69
+
+pattern GL_FLOAT_MAT4x3_NV  :: (Eq a, Num a) => a
 
 pattern GL_FLOAT_MAT4x3_NV = 0x8B6A
diff --git a/generated-src/Graphics/GL/Ext/NV/OcclusionQuery.hs b/generated-src/Graphics/GL/Ext/NV/OcclusionQuery.hs
--- a/generated-src/Graphics/GL/Ext/NV/OcclusionQuery.hs
+++ b/generated-src/Graphics/GL/Ext/NV/OcclusionQuery.hs
@@ -121,10 +121,18 @@
 
 {-# NOINLINE glIsOcclusionQueryNVFunPtr #-}
 
+pattern GL_CURRENT_OCCLUSION_QUERY_ID_NV  :: (Eq a, Num a) => a
+
 pattern GL_CURRENT_OCCLUSION_QUERY_ID_NV = 0x8865
 
+pattern GL_PIXEL_COUNTER_BITS_NV  :: (Eq a, Num a) => a
+
 pattern GL_PIXEL_COUNTER_BITS_NV = 0x8864
 
+pattern GL_PIXEL_COUNT_AVAILABLE_NV  :: (Eq a, Num a) => a
+
 pattern GL_PIXEL_COUNT_AVAILABLE_NV = 0x8867
+
+pattern GL_PIXEL_COUNT_NV  :: (Eq a, Num a) => a
 
 pattern GL_PIXEL_COUNT_NV = 0x8866
diff --git a/generated-src/Graphics/GL/Ext/NV/PackedDepthStencil.hs b/generated-src/Graphics/GL/Ext/NV/PackedDepthStencil.hs
--- a/generated-src/Graphics/GL/Ext/NV/PackedDepthStencil.hs
+++ b/generated-src/Graphics/GL/Ext/NV/PackedDepthStencil.hs
@@ -18,6 +18,10 @@
 gl_NV_packed_depth_stencil = member "GL_NV_packed_depth_stencil" extensions
 {-# NOINLINE gl_NV_packed_depth_stencil #-}
 
+pattern GL_DEPTH_STENCIL_NV  :: (Eq a, Num a) => a
+
 pattern GL_DEPTH_STENCIL_NV = 0x84F9
+
+pattern GL_UNSIGNED_INT_24_8_NV  :: (Eq a, Num a) => a
 
 pattern GL_UNSIGNED_INT_24_8_NV = 0x84FA
diff --git a/generated-src/Graphics/GL/Ext/NV/ParameterBufferObject.hs b/generated-src/Graphics/GL/Ext/NV/ParameterBufferObject.hs
--- a/generated-src/Graphics/GL/Ext/NV/ParameterBufferObject.hs
+++ b/generated-src/Graphics/GL/Ext/NV/ParameterBufferObject.hs
@@ -74,12 +74,22 @@
 
 {-# NOINLINE glProgramBufferParametersfvNVFunPtr #-}
 
+pattern GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV  :: (Eq a, Num a) => a
+
 pattern GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV = 0x8DA4
 
+pattern GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV  :: (Eq a, Num a) => a
+
 pattern GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV = 0x8DA3
 
+pattern GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV = 0x8DA0
 
+pattern GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV = 0x8DA1
+
+pattern GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV  :: (Eq a, Num a) => a
 
 pattern GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV = 0x8DA2
diff --git a/generated-src/Graphics/GL/Ext/NV/PathRendering.hs b/generated-src/Graphics/GL/Ext/NV/PathRendering.hs
--- a/generated-src/Graphics/GL/Ext/NV/PathRendering.hs
+++ b/generated-src/Graphics/GL/Ext/NV/PathRendering.hs
@@ -1278,324 +1278,646 @@
 
 {-# NOINLINE glWeightPathsNVFunPtr #-}
 
+pattern GL_2_BYTES_NV  :: (Eq a, Num a) => a
+
 pattern GL_2_BYTES_NV = 0x1407
 
+pattern GL_3_BYTES_NV  :: (Eq a, Num a) => a
+
 pattern GL_3_BYTES_NV = 0x1408
 
+pattern GL_4_BYTES_NV  :: (Eq a, Num a) => a
+
 pattern GL_4_BYTES_NV = 0x1409
 
+pattern GL_ACCUM_ADJACENT_PAIRS_NV  :: (Eq a, Num a) => a
+
 pattern GL_ACCUM_ADJACENT_PAIRS_NV = 0x90AD
 
+pattern GL_ADJACENT_PAIRS_NV  :: (Eq a, Num a) => a
+
 pattern GL_ADJACENT_PAIRS_NV = 0x90AE
 
+pattern GL_AFFINE_2D_NV  :: (Eq a, Num a) => a
+
 pattern GL_AFFINE_2D_NV = 0x9092
 
+pattern GL_AFFINE_3D_NV  :: (Eq a, Num a) => a
+
 pattern GL_AFFINE_3D_NV = 0x9094
 
+pattern GL_ARC_TO_NV  :: (Eq a, Num a) => a
+
 pattern GL_ARC_TO_NV = 0xFE
 
+pattern GL_BEVEL_NV  :: (Eq a, Num a) => a
+
 pattern GL_BEVEL_NV = 0x90A6
 
+pattern GL_BOLD_BIT_NV  :: (Eq a, Num a) => a
+
 pattern GL_BOLD_BIT_NV = 0x01
 
+pattern GL_BOUNDING_BOX_NV  :: (Eq a, Num a) => a
+
 pattern GL_BOUNDING_BOX_NV = 0x908D
 
+pattern GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV  :: (Eq a, Num a) => a
+
 pattern GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV = 0x909C
 
+pattern GL_CIRCULAR_CCW_ARC_TO_NV  :: (Eq a, Num a) => a
+
 pattern GL_CIRCULAR_CCW_ARC_TO_NV = 0xF8
 
+pattern GL_CIRCULAR_CW_ARC_TO_NV  :: (Eq a, Num a) => a
+
 pattern GL_CIRCULAR_CW_ARC_TO_NV = 0xFA
 
+pattern GL_CIRCULAR_TANGENT_ARC_TO_NV  :: (Eq a, Num a) => a
+
 pattern GL_CIRCULAR_TANGENT_ARC_TO_NV = 0xFC
 
+pattern GL_CLOSE_PATH_NV  :: (Eq a, Num a) => a
+
 pattern GL_CLOSE_PATH_NV = 0x00
 
+pattern GL_CONIC_CURVE_TO_NV  :: (Eq a, Num a) => a
+
 pattern GL_CONIC_CURVE_TO_NV = 0x1A
 
+pattern GL_CONSTANT_NV  :: (Eq a, Num a) => a
+
 pattern GL_CONSTANT_NV = 0x8576
 
+pattern GL_CONVEX_HULL_NV  :: (Eq a, Num a) => a
+
 pattern GL_CONVEX_HULL_NV = 0x908B
 
+pattern GL_COUNT_DOWN_NV  :: (Eq a, Num a) => a
+
 pattern GL_COUNT_DOWN_NV = 0x9089
 
+pattern GL_COUNT_UP_NV  :: (Eq a, Num a) => a
+
 pattern GL_COUNT_UP_NV = 0x9088
 
+pattern GL_CUBIC_CURVE_TO_NV  :: (Eq a, Num a) => a
+
 pattern GL_CUBIC_CURVE_TO_NV = 0x0C
 
+pattern GL_DUP_FIRST_CUBIC_CURVE_TO_NV  :: (Eq a, Num a) => a
+
 pattern GL_DUP_FIRST_CUBIC_CURVE_TO_NV = 0xF2
 
+pattern GL_DUP_LAST_CUBIC_CURVE_TO_NV  :: (Eq a, Num a) => a
+
 pattern GL_DUP_LAST_CUBIC_CURVE_TO_NV = 0xF4
 
+pattern GL_EYE_LINEAR_NV  :: (Eq a, Num a) => a
+
 pattern GL_EYE_LINEAR_NV = 0x2400
 
+pattern GL_FILE_NAME_NV  :: (Eq a, Num a) => a
+
 pattern GL_FILE_NAME_NV = 0x9074
 
+pattern GL_FIRST_TO_REST_NV  :: (Eq a, Num a) => a
+
 pattern GL_FIRST_TO_REST_NV = 0x90AF
 
+pattern GL_FONT_ASCENDER_BIT_NV  :: (Eq a, Num a) => a
+
 pattern GL_FONT_ASCENDER_BIT_NV = 0x00200000
 
+pattern GL_FONT_DESCENDER_BIT_NV  :: (Eq a, Num a) => a
+
 pattern GL_FONT_DESCENDER_BIT_NV = 0x00400000
 
+pattern GL_FONT_GLYPHS_AVAILABLE_NV  :: (Eq a, Num a) => a
+
 pattern GL_FONT_GLYPHS_AVAILABLE_NV = 0x9368
 
+pattern GL_FONT_HAS_KERNING_BIT_NV  :: (Eq a, Num a) => a
+
 pattern GL_FONT_HAS_KERNING_BIT_NV = 0x10000000
 
+pattern GL_FONT_HEIGHT_BIT_NV  :: (Eq a, Num a) => a
+
 pattern GL_FONT_HEIGHT_BIT_NV = 0x00800000
 
+pattern GL_FONT_MAX_ADVANCE_HEIGHT_BIT_NV  :: (Eq a, Num a) => a
+
 pattern GL_FONT_MAX_ADVANCE_HEIGHT_BIT_NV = 0x02000000
 
+pattern GL_FONT_MAX_ADVANCE_WIDTH_BIT_NV  :: (Eq a, Num a) => a
+
 pattern GL_FONT_MAX_ADVANCE_WIDTH_BIT_NV = 0x01000000
 
+pattern GL_FONT_NUM_GLYPH_INDICES_BIT_NV  :: (Eq a, Num a) => a
+
 pattern GL_FONT_NUM_GLYPH_INDICES_BIT_NV = 0x20000000
 
+pattern GL_FONT_TARGET_UNAVAILABLE_NV  :: (Eq a, Num a) => a
+
 pattern GL_FONT_TARGET_UNAVAILABLE_NV = 0x9369
 
+pattern GL_FONT_UNAVAILABLE_NV  :: (Eq a, Num a) => a
+
 pattern GL_FONT_UNAVAILABLE_NV = 0x936A
 
+pattern GL_FONT_UNDERLINE_POSITION_BIT_NV  :: (Eq a, Num a) => a
+
 pattern GL_FONT_UNDERLINE_POSITION_BIT_NV = 0x04000000
 
+pattern GL_FONT_UNDERLINE_THICKNESS_BIT_NV  :: (Eq a, Num a) => a
+
 pattern GL_FONT_UNDERLINE_THICKNESS_BIT_NV = 0x08000000
 
+pattern GL_FONT_UNINTELLIGIBLE_NV  :: (Eq a, Num a) => a
+
 pattern GL_FONT_UNINTELLIGIBLE_NV = 0x936B
 
+pattern GL_FONT_UNITS_PER_EM_BIT_NV  :: (Eq a, Num a) => a
+
 pattern GL_FONT_UNITS_PER_EM_BIT_NV = 0x00100000
 
+pattern GL_FONT_X_MAX_BOUNDS_BIT_NV  :: (Eq a, Num a) => a
+
 pattern GL_FONT_X_MAX_BOUNDS_BIT_NV = 0x00040000
 
+pattern GL_FONT_X_MIN_BOUNDS_BIT_NV  :: (Eq a, Num a) => a
+
 pattern GL_FONT_X_MIN_BOUNDS_BIT_NV = 0x00010000
 
+pattern GL_FONT_Y_MAX_BOUNDS_BIT_NV  :: (Eq a, Num a) => a
+
 pattern GL_FONT_Y_MAX_BOUNDS_BIT_NV = 0x00080000
 
+pattern GL_FONT_Y_MIN_BOUNDS_BIT_NV  :: (Eq a, Num a) => a
+
 pattern GL_FONT_Y_MIN_BOUNDS_BIT_NV = 0x00020000
 
+pattern GL_FRAGMENT_INPUT_NV  :: (Eq a, Num a) => a
+
 pattern GL_FRAGMENT_INPUT_NV = 0x936D
 
+pattern GL_GLYPH_HAS_KERNING_BIT_NV  :: (Eq a, Num a) => a
+
 pattern GL_GLYPH_HAS_KERNING_BIT_NV = 0x100
 
+pattern GL_GLYPH_HEIGHT_BIT_NV  :: (Eq a, Num a) => a
+
 pattern GL_GLYPH_HEIGHT_BIT_NV = 0x02
 
+pattern GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV  :: (Eq a, Num a) => a
+
 pattern GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV = 0x10
 
+pattern GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV  :: (Eq a, Num a) => a
+
 pattern GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV = 0x04
 
+pattern GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV  :: (Eq a, Num a) => a
+
 pattern GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV = 0x08
 
+pattern GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV  :: (Eq a, Num a) => a
+
 pattern GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV = 0x80
 
+pattern GL_GLYPH_VERTICAL_BEARING_X_BIT_NV  :: (Eq a, Num a) => a
+
 pattern GL_GLYPH_VERTICAL_BEARING_X_BIT_NV = 0x20
 
+pattern GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV  :: (Eq a, Num a) => a
+
 pattern GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV = 0x40
 
+pattern GL_GLYPH_WIDTH_BIT_NV  :: (Eq a, Num a) => a
+
 pattern GL_GLYPH_WIDTH_BIT_NV = 0x01
 
+pattern GL_HORIZONTAL_LINE_TO_NV  :: (Eq a, Num a) => a
+
 pattern GL_HORIZONTAL_LINE_TO_NV = 0x06
 
+pattern GL_ITALIC_BIT_NV  :: (Eq a, Num a) => a
+
 pattern GL_ITALIC_BIT_NV = 0x02
 
+pattern GL_LARGE_CCW_ARC_TO_NV  :: (Eq a, Num a) => a
+
 pattern GL_LARGE_CCW_ARC_TO_NV = 0x16
 
+pattern GL_LARGE_CW_ARC_TO_NV  :: (Eq a, Num a) => a
+
 pattern GL_LARGE_CW_ARC_TO_NV = 0x18
 
+pattern GL_LINE_TO_NV  :: (Eq a, Num a) => a
+
 pattern GL_LINE_TO_NV = 0x04
 
+pattern GL_MITER_REVERT_NV  :: (Eq a, Num a) => a
+
 pattern GL_MITER_REVERT_NV = 0x90A7
 
+pattern GL_MITER_TRUNCATE_NV  :: (Eq a, Num a) => a
+
 pattern GL_MITER_TRUNCATE_NV = 0x90A8
 
+pattern GL_MOVE_TO_CONTINUES_NV  :: (Eq a, Num a) => a
+
 pattern GL_MOVE_TO_CONTINUES_NV = 0x90B6
 
+pattern GL_MOVE_TO_NV  :: (Eq a, Num a) => a
+
 pattern GL_MOVE_TO_NV = 0x02
 
+pattern GL_MOVE_TO_RESETS_NV  :: (Eq a, Num a) => a
+
 pattern GL_MOVE_TO_RESETS_NV = 0x90B5
 
+pattern GL_OBJECT_LINEAR_NV  :: (Eq a, Num a) => a
+
 pattern GL_OBJECT_LINEAR_NV = 0x2401
 
+pattern GL_PATH_CLIENT_LENGTH_NV  :: (Eq a, Num a) => a
+
 pattern GL_PATH_CLIENT_LENGTH_NV = 0x907F
 
+pattern GL_PATH_COMMAND_COUNT_NV  :: (Eq a, Num a) => a
+
 pattern GL_PATH_COMMAND_COUNT_NV = 0x909D
 
+pattern GL_PATH_COMPUTED_LENGTH_NV  :: (Eq a, Num a) => a
+
 pattern GL_PATH_COMPUTED_LENGTH_NV = 0x90A0
 
+pattern GL_PATH_COORD_COUNT_NV  :: (Eq a, Num a) => a
+
 pattern GL_PATH_COORD_COUNT_NV = 0x909E
 
+pattern GL_PATH_COVER_DEPTH_FUNC_NV  :: (Eq a, Num a) => a
+
 pattern GL_PATH_COVER_DEPTH_FUNC_NV = 0x90BF
 
+pattern GL_PATH_DASH_ARRAY_COUNT_NV  :: (Eq a, Num a) => a
+
 pattern GL_PATH_DASH_ARRAY_COUNT_NV = 0x909F
 
+pattern GL_PATH_DASH_CAPS_NV  :: (Eq a, Num a) => a
+
 pattern GL_PATH_DASH_CAPS_NV = 0x907B
 
+pattern GL_PATH_DASH_OFFSET_NV  :: (Eq a, Num a) => a
+
 pattern GL_PATH_DASH_OFFSET_NV = 0x907E
 
+pattern GL_PATH_DASH_OFFSET_RESET_NV  :: (Eq a, Num a) => a
+
 pattern GL_PATH_DASH_OFFSET_RESET_NV = 0x90B4
 
+pattern GL_PATH_END_CAPS_NV  :: (Eq a, Num a) => a
+
 pattern GL_PATH_END_CAPS_NV = 0x9076
 
+pattern GL_PATH_ERROR_POSITION_NV  :: (Eq a, Num a) => a
+
 pattern GL_PATH_ERROR_POSITION_NV = 0x90AB
 
+pattern GL_PATH_FILL_BOUNDING_BOX_NV  :: (Eq a, Num a) => a
+
 pattern GL_PATH_FILL_BOUNDING_BOX_NV = 0x90A1
 
+pattern GL_PATH_FILL_COVER_MODE_NV  :: (Eq a, Num a) => a
+
 pattern GL_PATH_FILL_COVER_MODE_NV = 0x9082
 
+pattern GL_PATH_FILL_MASK_NV  :: (Eq a, Num a) => a
+
 pattern GL_PATH_FILL_MASK_NV = 0x9081
 
+pattern GL_PATH_FILL_MODE_NV  :: (Eq a, Num a) => a
+
 pattern GL_PATH_FILL_MODE_NV = 0x9080
 
+pattern GL_PATH_FOG_GEN_MODE_NV  :: (Eq a, Num a) => a
+
 pattern GL_PATH_FOG_GEN_MODE_NV = 0x90AC
 
+pattern GL_PATH_FORMAT_PS_NV  :: (Eq a, Num a) => a
+
 pattern GL_PATH_FORMAT_PS_NV = 0x9071
 
+pattern GL_PATH_FORMAT_SVG_NV  :: (Eq a, Num a) => a
+
 pattern GL_PATH_FORMAT_SVG_NV = 0x9070
 
+pattern GL_PATH_GEN_COEFF_NV  :: (Eq a, Num a) => a
+
 pattern GL_PATH_GEN_COEFF_NV = 0x90B1
 
+pattern GL_PATH_GEN_COLOR_FORMAT_NV  :: (Eq a, Num a) => a
+
 pattern GL_PATH_GEN_COLOR_FORMAT_NV = 0x90B2
 
+pattern GL_PATH_GEN_COMPONENTS_NV  :: (Eq a, Num a) => a
+
 pattern GL_PATH_GEN_COMPONENTS_NV = 0x90B3
 
+pattern GL_PATH_GEN_MODE_NV  :: (Eq a, Num a) => a
+
 pattern GL_PATH_GEN_MODE_NV = 0x90B0
 
+pattern GL_PATH_INITIAL_DASH_CAP_NV  :: (Eq a, Num a) => a
+
 pattern GL_PATH_INITIAL_DASH_CAP_NV = 0x907C
 
+pattern GL_PATH_INITIAL_END_CAP_NV  :: (Eq a, Num a) => a
+
 pattern GL_PATH_INITIAL_END_CAP_NV = 0x9077
 
+pattern GL_PATH_JOIN_STYLE_NV  :: (Eq a, Num a) => a
+
 pattern GL_PATH_JOIN_STYLE_NV = 0x9079
 
+pattern GL_PATH_MAX_MODELVIEW_STACK_DEPTH_NV  :: (Eq a, Num a) => a
+
 pattern GL_PATH_MAX_MODELVIEW_STACK_DEPTH_NV = 0x0D36
 
+pattern GL_PATH_MAX_PROJECTION_STACK_DEPTH_NV  :: (Eq a, Num a) => a
+
 pattern GL_PATH_MAX_PROJECTION_STACK_DEPTH_NV = 0x0D38
 
+pattern GL_PATH_MITER_LIMIT_NV  :: (Eq a, Num a) => a
+
 pattern GL_PATH_MITER_LIMIT_NV = 0x907A
 
+pattern GL_PATH_MODELVIEW_MATRIX_NV  :: (Eq a, Num a) => a
+
 pattern GL_PATH_MODELVIEW_MATRIX_NV = 0x0BA6
 
+pattern GL_PATH_MODELVIEW_NV  :: (Eq a, Num a) => a
+
 pattern GL_PATH_MODELVIEW_NV = 0x1700
 
+pattern GL_PATH_MODELVIEW_STACK_DEPTH_NV  :: (Eq a, Num a) => a
+
 pattern GL_PATH_MODELVIEW_STACK_DEPTH_NV = 0x0BA3
 
+pattern GL_PATH_OBJECT_BOUNDING_BOX_NV  :: (Eq a, Num a) => a
+
 pattern GL_PATH_OBJECT_BOUNDING_BOX_NV = 0x908A
 
+pattern GL_PATH_PROJECTION_MATRIX_NV  :: (Eq a, Num a) => a
+
 pattern GL_PATH_PROJECTION_MATRIX_NV = 0x0BA7
 
+pattern GL_PATH_PROJECTION_NV  :: (Eq a, Num a) => a
+
 pattern GL_PATH_PROJECTION_NV = 0x1701
 
+pattern GL_PATH_PROJECTION_STACK_DEPTH_NV  :: (Eq a, Num a) => a
+
 pattern GL_PATH_PROJECTION_STACK_DEPTH_NV = 0x0BA4
 
+pattern GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV  :: (Eq a, Num a) => a
+
 pattern GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV = 0x90BD
 
+pattern GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV  :: (Eq a, Num a) => a
+
 pattern GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV = 0x90BE
 
+pattern GL_PATH_STENCIL_FUNC_NV  :: (Eq a, Num a) => a
+
 pattern GL_PATH_STENCIL_FUNC_NV = 0x90B7
 
+pattern GL_PATH_STENCIL_REF_NV  :: (Eq a, Num a) => a
+
 pattern GL_PATH_STENCIL_REF_NV = 0x90B8
 
+pattern GL_PATH_STENCIL_VALUE_MASK_NV  :: (Eq a, Num a) => a
+
 pattern GL_PATH_STENCIL_VALUE_MASK_NV = 0x90B9
 
+pattern GL_PATH_STROKE_BOUNDING_BOX_NV  :: (Eq a, Num a) => a
+
 pattern GL_PATH_STROKE_BOUNDING_BOX_NV = 0x90A2
 
+pattern GL_PATH_STROKE_COVER_MODE_NV  :: (Eq a, Num a) => a
+
 pattern GL_PATH_STROKE_COVER_MODE_NV = 0x9083
 
+pattern GL_PATH_STROKE_MASK_NV  :: (Eq a, Num a) => a
+
 pattern GL_PATH_STROKE_MASK_NV = 0x9084
 
+pattern GL_PATH_STROKE_WIDTH_NV  :: (Eq a, Num a) => a
+
 pattern GL_PATH_STROKE_WIDTH_NV = 0x9075
 
+pattern GL_PATH_TERMINAL_DASH_CAP_NV  :: (Eq a, Num a) => a
+
 pattern GL_PATH_TERMINAL_DASH_CAP_NV = 0x907D
 
+pattern GL_PATH_TERMINAL_END_CAP_NV  :: (Eq a, Num a) => a
+
 pattern GL_PATH_TERMINAL_END_CAP_NV = 0x9078
 
+pattern GL_PATH_TRANSPOSE_MODELVIEW_MATRIX_NV  :: (Eq a, Num a) => a
+
 pattern GL_PATH_TRANSPOSE_MODELVIEW_MATRIX_NV = 0x84E3
 
+pattern GL_PATH_TRANSPOSE_PROJECTION_MATRIX_NV  :: (Eq a, Num a) => a
+
 pattern GL_PATH_TRANSPOSE_PROJECTION_MATRIX_NV = 0x84E4
 
+pattern GL_QUADRATIC_CURVE_TO_NV  :: (Eq a, Num a) => a
+
 pattern GL_QUADRATIC_CURVE_TO_NV = 0x0A
 
+pattern GL_RECT_NV  :: (Eq a, Num a) => a
+
 pattern GL_RECT_NV = 0xF6
 
+pattern GL_RELATIVE_ARC_TO_NV  :: (Eq a, Num a) => a
+
 pattern GL_RELATIVE_ARC_TO_NV = 0xFF
 
+pattern GL_RELATIVE_CONIC_CURVE_TO_NV  :: (Eq a, Num a) => a
+
 pattern GL_RELATIVE_CONIC_CURVE_TO_NV = 0x1B
 
+pattern GL_RELATIVE_CUBIC_CURVE_TO_NV  :: (Eq a, Num a) => a
+
 pattern GL_RELATIVE_CUBIC_CURVE_TO_NV = 0x0D
 
+pattern GL_RELATIVE_HORIZONTAL_LINE_TO_NV  :: (Eq a, Num a) => a
+
 pattern GL_RELATIVE_HORIZONTAL_LINE_TO_NV = 0x07
 
+pattern GL_RELATIVE_LARGE_CCW_ARC_TO_NV  :: (Eq a, Num a) => a
+
 pattern GL_RELATIVE_LARGE_CCW_ARC_TO_NV = 0x17
 
+pattern GL_RELATIVE_LARGE_CW_ARC_TO_NV  :: (Eq a, Num a) => a
+
 pattern GL_RELATIVE_LARGE_CW_ARC_TO_NV = 0x19
 
+pattern GL_RELATIVE_LINE_TO_NV  :: (Eq a, Num a) => a
+
 pattern GL_RELATIVE_LINE_TO_NV = 0x05
 
+pattern GL_RELATIVE_MOVE_TO_NV  :: (Eq a, Num a) => a
+
 pattern GL_RELATIVE_MOVE_TO_NV = 0x03
 
+pattern GL_RELATIVE_QUADRATIC_CURVE_TO_NV  :: (Eq a, Num a) => a
+
 pattern GL_RELATIVE_QUADRATIC_CURVE_TO_NV = 0x0B
 
+pattern GL_RELATIVE_RECT_NV  :: (Eq a, Num a) => a
+
 pattern GL_RELATIVE_RECT_NV = 0xF7
 
+pattern GL_RELATIVE_ROUNDED_RECT2_NV  :: (Eq a, Num a) => a
+
 pattern GL_RELATIVE_ROUNDED_RECT2_NV = 0xEB
 
+pattern GL_RELATIVE_ROUNDED_RECT4_NV  :: (Eq a, Num a) => a
+
 pattern GL_RELATIVE_ROUNDED_RECT4_NV = 0xED
 
+pattern GL_RELATIVE_ROUNDED_RECT8_NV  :: (Eq a, Num a) => a
+
 pattern GL_RELATIVE_ROUNDED_RECT8_NV = 0xEF
 
+pattern GL_RELATIVE_ROUNDED_RECT_NV  :: (Eq a, Num a) => a
+
 pattern GL_RELATIVE_ROUNDED_RECT_NV = 0xE9
 
+pattern GL_RELATIVE_SMALL_CCW_ARC_TO_NV  :: (Eq a, Num a) => a
+
 pattern GL_RELATIVE_SMALL_CCW_ARC_TO_NV = 0x13
 
+pattern GL_RELATIVE_SMALL_CW_ARC_TO_NV  :: (Eq a, Num a) => a
+
 pattern GL_RELATIVE_SMALL_CW_ARC_TO_NV = 0x15
 
+pattern GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV  :: (Eq a, Num a) => a
+
 pattern GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV = 0x11
 
+pattern GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV  :: (Eq a, Num a) => a
+
 pattern GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV = 0x0F
 
+pattern GL_RELATIVE_VERTICAL_LINE_TO_NV  :: (Eq a, Num a) => a
+
 pattern GL_RELATIVE_VERTICAL_LINE_TO_NV = 0x09
 
+pattern GL_RESTART_PATH_NV  :: (Eq a, Num a) => a
+
 pattern GL_RESTART_PATH_NV = 0xF0
 
+pattern GL_ROUNDED_RECT2_NV  :: (Eq a, Num a) => a
+
 pattern GL_ROUNDED_RECT2_NV = 0xEA
 
+pattern GL_ROUNDED_RECT4_NV  :: (Eq a, Num a) => a
+
 pattern GL_ROUNDED_RECT4_NV = 0xEC
 
+pattern GL_ROUNDED_RECT8_NV  :: (Eq a, Num a) => a
+
 pattern GL_ROUNDED_RECT8_NV = 0xEE
 
+pattern GL_ROUNDED_RECT_NV  :: (Eq a, Num a) => a
+
 pattern GL_ROUNDED_RECT_NV = 0xE8
 
+pattern GL_ROUND_NV  :: (Eq a, Num a) => a
+
 pattern GL_ROUND_NV = 0x90A4
 
+pattern GL_SKIP_MISSING_GLYPH_NV  :: (Eq a, Num a) => a
+
 pattern GL_SKIP_MISSING_GLYPH_NV = 0x90A9
 
+pattern GL_SMALL_CCW_ARC_TO_NV  :: (Eq a, Num a) => a
+
 pattern GL_SMALL_CCW_ARC_TO_NV = 0x12
 
+pattern GL_SMALL_CW_ARC_TO_NV  :: (Eq a, Num a) => a
+
 pattern GL_SMALL_CW_ARC_TO_NV = 0x14
 
+pattern GL_SMOOTH_CUBIC_CURVE_TO_NV  :: (Eq a, Num a) => a
+
 pattern GL_SMOOTH_CUBIC_CURVE_TO_NV = 0x10
 
+pattern GL_SMOOTH_QUADRATIC_CURVE_TO_NV  :: (Eq a, Num a) => a
+
 pattern GL_SMOOTH_QUADRATIC_CURVE_TO_NV = 0x0E
 
+pattern GL_SQUARE_NV  :: (Eq a, Num a) => a
+
 pattern GL_SQUARE_NV = 0x90A3
 
+pattern GL_STANDARD_FONT_FORMAT_NV  :: (Eq a, Num a) => a
+
 pattern GL_STANDARD_FONT_FORMAT_NV = 0x936C
 
+pattern GL_STANDARD_FONT_NAME_NV  :: (Eq a, Num a) => a
+
 pattern GL_STANDARD_FONT_NAME_NV = 0x9072
 
+pattern GL_SYSTEM_FONT_NAME_NV  :: (Eq a, Num a) => a
+
 pattern GL_SYSTEM_FONT_NAME_NV = 0x9073
 
+pattern GL_TRANSLATE_2D_NV  :: (Eq a, Num a) => a
+
 pattern GL_TRANSLATE_2D_NV = 0x9090
 
+pattern GL_TRANSLATE_3D_NV  :: (Eq a, Num a) => a
+
 pattern GL_TRANSLATE_3D_NV = 0x9091
 
+pattern GL_TRANSLATE_X_NV  :: (Eq a, Num a) => a
+
 pattern GL_TRANSLATE_X_NV = 0x908E
 
+pattern GL_TRANSLATE_Y_NV  :: (Eq a, Num a) => a
+
 pattern GL_TRANSLATE_Y_NV = 0x908F
 
+pattern GL_TRANSPOSE_AFFINE_2D_NV  :: (Eq a, Num a) => a
+
 pattern GL_TRANSPOSE_AFFINE_2D_NV = 0x9096
 
+pattern GL_TRANSPOSE_AFFINE_3D_NV  :: (Eq a, Num a) => a
+
 pattern GL_TRANSPOSE_AFFINE_3D_NV = 0x9098
 
+pattern GL_TRIANGULAR_NV  :: (Eq a, Num a) => a
+
 pattern GL_TRIANGULAR_NV = 0x90A5
 
+pattern GL_USE_MISSING_GLYPH_NV  :: (Eq a, Num a) => a
+
 pattern GL_USE_MISSING_GLYPH_NV = 0x90AA
 
+pattern GL_UTF16_NV  :: (Eq a, Num a) => a
+
 pattern GL_UTF16_NV = 0x909B
 
+pattern GL_UTF8_NV  :: (Eq a, Num a) => a
+
 pattern GL_UTF8_NV = 0x909A
+
+pattern GL_VERTICAL_LINE_TO_NV  :: (Eq a, Num a) => a
 
 pattern GL_VERTICAL_LINE_TO_NV = 0x08
diff --git a/generated-src/Graphics/GL/Ext/NV/PathRenderingSharedEdge.hs b/generated-src/Graphics/GL/Ext/NV/PathRenderingSharedEdge.hs
--- a/generated-src/Graphics/GL/Ext/NV/PathRenderingSharedEdge.hs
+++ b/generated-src/Graphics/GL/Ext/NV/PathRenderingSharedEdge.hs
@@ -17,4 +17,6 @@
 gl_NV_path_rendering_shared_edge = member "GL_NV_path_rendering_shared_edge" extensions
 {-# NOINLINE gl_NV_path_rendering_shared_edge #-}
 
+pattern GL_SHARED_EDGE_NV  :: (Eq a, Num a) => a
+
 pattern GL_SHARED_EDGE_NV = 0xC0
diff --git a/generated-src/Graphics/GL/Ext/NV/PixelDataRange.hs b/generated-src/Graphics/GL/Ext/NV/PixelDataRange.hs
--- a/generated-src/Graphics/GL/Ext/NV/PixelDataRange.hs
+++ b/generated-src/Graphics/GL/Ext/NV/PixelDataRange.hs
@@ -57,14 +57,26 @@
 
 {-# NOINLINE glPixelDataRangeNVFunPtr #-}
 
+pattern GL_READ_PIXEL_DATA_RANGE_LENGTH_NV  :: (Eq a, Num a) => a
+
 pattern GL_READ_PIXEL_DATA_RANGE_LENGTH_NV = 0x887B
 
+pattern GL_READ_PIXEL_DATA_RANGE_NV  :: (Eq a, Num a) => a
+
 pattern GL_READ_PIXEL_DATA_RANGE_NV = 0x8879
 
+pattern GL_READ_PIXEL_DATA_RANGE_POINTER_NV  :: (Eq a, Num a) => a
+
 pattern GL_READ_PIXEL_DATA_RANGE_POINTER_NV = 0x887D
 
+pattern GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV  :: (Eq a, Num a) => a
+
 pattern GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV = 0x887A
 
+pattern GL_WRITE_PIXEL_DATA_RANGE_NV  :: (Eq a, Num a) => a
+
 pattern GL_WRITE_PIXEL_DATA_RANGE_NV = 0x8878
+
+pattern GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV  :: (Eq a, Num a) => a
 
 pattern GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV = 0x887C
diff --git a/generated-src/Graphics/GL/Ext/NV/PointSprite.hs b/generated-src/Graphics/GL/Ext/NV/PointSprite.hs
--- a/generated-src/Graphics/GL/Ext/NV/PointSprite.hs
+++ b/generated-src/Graphics/GL/Ext/NV/PointSprite.hs
@@ -58,8 +58,14 @@
 
 {-# NOINLINE glPointParameterivNVFunPtr #-}
 
+pattern GL_COORD_REPLACE_NV  :: (Eq a, Num a) => a
+
 pattern GL_COORD_REPLACE_NV = 0x8862
 
+pattern GL_POINT_SPRITE_NV  :: (Eq a, Num a) => a
+
 pattern GL_POINT_SPRITE_NV = 0x8861
+
+pattern GL_POINT_SPRITE_R_MODE_NV  :: (Eq a, Num a) => a
 
 pattern GL_POINT_SPRITE_R_MODE_NV = 0x8863
diff --git a/generated-src/Graphics/GL/Ext/NV/PolygonMode.hs b/generated-src/Graphics/GL/Ext/NV/PolygonMode.hs
--- a/generated-src/Graphics/GL/Ext/NV/PolygonMode.hs
+++ b/generated-src/Graphics/GL/Ext/NV/PolygonMode.hs
@@ -45,14 +45,26 @@
 
 {-# NOINLINE glPolygonModeNVFunPtr #-}
 
+pattern GL_FILL_NV  :: (Eq a, Num a) => a
+
 pattern GL_FILL_NV = 0x1B02
 
+pattern GL_LINE_NV  :: (Eq a, Num a) => a
+
 pattern GL_LINE_NV = 0x1B01
 
+pattern GL_POINT_NV  :: (Eq a, Num a) => a
+
 pattern GL_POINT_NV = 0x1B00
 
+pattern GL_POLYGON_MODE_NV  :: (Eq a, Num a) => a
+
 pattern GL_POLYGON_MODE_NV = 0x0B40
 
+pattern GL_POLYGON_OFFSET_LINE_NV  :: (Eq a, Num a) => a
+
 pattern GL_POLYGON_OFFSET_LINE_NV = 0x2A02
+
+pattern GL_POLYGON_OFFSET_POINT_NV  :: (Eq a, Num a) => a
 
 pattern GL_POLYGON_OFFSET_POINT_NV = 0x2A01
diff --git a/generated-src/Graphics/GL/Ext/NV/PresentVideo.hs b/generated-src/Graphics/GL/Ext/NV/PresentVideo.hs
--- a/generated-src/Graphics/GL/Ext/NV/PresentVideo.hs
+++ b/generated-src/Graphics/GL/Ext/NV/PresentVideo.hs
@@ -107,14 +107,26 @@
 
 {-# NOINLINE glPresentFrameKeyedNVFunPtr #-}
 
+pattern GL_CURRENT_TIME_NV  :: (Eq a, Num a) => a
+
 pattern GL_CURRENT_TIME_NV = 0x8E28
 
+pattern GL_FIELDS_NV  :: (Eq a, Num a) => a
+
 pattern GL_FIELDS_NV = 0x8E27
 
+pattern GL_FRAME_NV  :: (Eq a, Num a) => a
+
 pattern GL_FRAME_NV = 0x8E26
 
+pattern GL_NUM_FILL_STREAMS_NV  :: (Eq a, Num a) => a
+
 pattern GL_NUM_FILL_STREAMS_NV = 0x8E29
 
+pattern GL_PRESENT_DURATION_NV  :: (Eq a, Num a) => a
+
 pattern GL_PRESENT_DURATION_NV = 0x8E2B
+
+pattern GL_PRESENT_TIME_NV  :: (Eq a, Num a) => a
 
 pattern GL_PRESENT_TIME_NV = 0x8E2A
diff --git a/generated-src/Graphics/GL/Ext/NV/PrimitiveRestart.hs b/generated-src/Graphics/GL/Ext/NV/PrimitiveRestart.hs
--- a/generated-src/Graphics/GL/Ext/NV/PrimitiveRestart.hs
+++ b/generated-src/Graphics/GL/Ext/NV/PrimitiveRestart.hs
@@ -47,6 +47,10 @@
 
 {-# NOINLINE glPrimitiveRestartNVFunPtr #-}
 
+pattern GL_PRIMITIVE_RESTART_INDEX_NV  :: (Eq a, Num a) => a
+
 pattern GL_PRIMITIVE_RESTART_INDEX_NV = 0x8559
+
+pattern GL_PRIMITIVE_RESTART_NV  :: (Eq a, Num a) => a
 
 pattern GL_PRIMITIVE_RESTART_NV = 0x8558
diff --git a/generated-src/Graphics/GL/Ext/NV/ReadBuffer.hs b/generated-src/Graphics/GL/Ext/NV/ReadBuffer.hs
--- a/generated-src/Graphics/GL/Ext/NV/ReadBuffer.hs
+++ b/generated-src/Graphics/GL/Ext/NV/ReadBuffer.hs
@@ -34,4 +34,6 @@
 
 {-# NOINLINE glReadBufferNVFunPtr #-}
 
+pattern GL_READ_BUFFER_NV  :: (Eq a, Num a) => a
+
 pattern GL_READ_BUFFER_NV = 0x0C02
diff --git a/generated-src/Graphics/GL/Ext/NV/RegisterCombiners.hs b/generated-src/Graphics/GL/Ext/NV/RegisterCombiners.hs
--- a/generated-src/Graphics/GL/Ext/NV/RegisterCombiners.hs
+++ b/generated-src/Graphics/GL/Ext/NV/RegisterCombiners.hs
@@ -338,100 +338,198 @@
 
 {-# NOINLINE glGetFinalCombinerInputParameterivNVFunPtr #-}
 
+pattern GL_BIAS_BY_NEGATIVE_ONE_HALF_NV  :: (Eq a, Num a) => a
+
 pattern GL_BIAS_BY_NEGATIVE_ONE_HALF_NV = 0x8541
 
+pattern GL_COLOR_SUM_CLAMP_NV  :: (Eq a, Num a) => a
+
 pattern GL_COLOR_SUM_CLAMP_NV = 0x854F
 
+pattern GL_COMBINER0_NV  :: (Eq a, Num a) => a
+
 pattern GL_COMBINER0_NV = 0x8550
 
+pattern GL_COMBINER1_NV  :: (Eq a, Num a) => a
+
 pattern GL_COMBINER1_NV = 0x8551
 
+pattern GL_COMBINER2_NV  :: (Eq a, Num a) => a
+
 pattern GL_COMBINER2_NV = 0x8552
 
+pattern GL_COMBINER3_NV  :: (Eq a, Num a) => a
+
 pattern GL_COMBINER3_NV = 0x8553
 
+pattern GL_COMBINER4_NV  :: (Eq a, Num a) => a
+
 pattern GL_COMBINER4_NV = 0x8554
 
+pattern GL_COMBINER5_NV  :: (Eq a, Num a) => a
+
 pattern GL_COMBINER5_NV = 0x8555
 
+pattern GL_COMBINER6_NV  :: (Eq a, Num a) => a
+
 pattern GL_COMBINER6_NV = 0x8556
 
+pattern GL_COMBINER7_NV  :: (Eq a, Num a) => a
+
 pattern GL_COMBINER7_NV = 0x8557
 
+pattern GL_COMBINER_AB_DOT_PRODUCT_NV  :: (Eq a, Num a) => a
+
 pattern GL_COMBINER_AB_DOT_PRODUCT_NV = 0x8545
 
+pattern GL_COMBINER_AB_OUTPUT_NV  :: (Eq a, Num a) => a
+
 pattern GL_COMBINER_AB_OUTPUT_NV = 0x854A
 
+pattern GL_COMBINER_BIAS_NV  :: (Eq a, Num a) => a
+
 pattern GL_COMBINER_BIAS_NV = 0x8549
 
+pattern GL_COMBINER_CD_DOT_PRODUCT_NV  :: (Eq a, Num a) => a
+
 pattern GL_COMBINER_CD_DOT_PRODUCT_NV = 0x8546
 
+pattern GL_COMBINER_CD_OUTPUT_NV  :: (Eq a, Num a) => a
+
 pattern GL_COMBINER_CD_OUTPUT_NV = 0x854B
 
+pattern GL_COMBINER_COMPONENT_USAGE_NV  :: (Eq a, Num a) => a
+
 pattern GL_COMBINER_COMPONENT_USAGE_NV = 0x8544
 
+pattern GL_COMBINER_INPUT_NV  :: (Eq a, Num a) => a
+
 pattern GL_COMBINER_INPUT_NV = 0x8542
 
+pattern GL_COMBINER_MAPPING_NV  :: (Eq a, Num a) => a
+
 pattern GL_COMBINER_MAPPING_NV = 0x8543
 
+pattern GL_COMBINER_MUX_SUM_NV  :: (Eq a, Num a) => a
+
 pattern GL_COMBINER_MUX_SUM_NV = 0x8547
 
+pattern GL_COMBINER_SCALE_NV  :: (Eq a, Num a) => a
+
 pattern GL_COMBINER_SCALE_NV = 0x8548
 
+pattern GL_COMBINER_SUM_OUTPUT_NV  :: (Eq a, Num a) => a
+
 pattern GL_COMBINER_SUM_OUTPUT_NV = 0x854C
 
+pattern GL_CONSTANT_COLOR0_NV  :: (Eq a, Num a) => a
+
 pattern GL_CONSTANT_COLOR0_NV = 0x852A
 
+pattern GL_CONSTANT_COLOR1_NV  :: (Eq a, Num a) => a
+
 pattern GL_CONSTANT_COLOR1_NV = 0x852B
 
+pattern GL_DISCARD_NV  :: (Eq a, Num a) => a
+
 pattern GL_DISCARD_NV = 0x8530
 
+pattern GL_EXPAND_NEGATE_NV  :: (Eq a, Num a) => a
+
 pattern GL_EXPAND_NEGATE_NV = 0x8539
 
+pattern GL_EXPAND_NORMAL_NV  :: (Eq a, Num a) => a
+
 pattern GL_EXPAND_NORMAL_NV = 0x8538
 
+pattern GL_E_TIMES_F_NV  :: (Eq a, Num a) => a
+
 pattern GL_E_TIMES_F_NV = 0x8531
 
+pattern GL_HALF_BIAS_NEGATE_NV  :: (Eq a, Num a) => a
+
 pattern GL_HALF_BIAS_NEGATE_NV = 0x853B
 
+pattern GL_HALF_BIAS_NORMAL_NV  :: (Eq a, Num a) => a
+
 pattern GL_HALF_BIAS_NORMAL_NV = 0x853A
 
+pattern GL_MAX_GENERAL_COMBINERS_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAX_GENERAL_COMBINERS_NV = 0x854D
 
+pattern GL_NUM_GENERAL_COMBINERS_NV  :: (Eq a, Num a) => a
+
 pattern GL_NUM_GENERAL_COMBINERS_NV = 0x854E
 
+pattern GL_REGISTER_COMBINERS_NV  :: (Eq a, Num a) => a
+
 pattern GL_REGISTER_COMBINERS_NV = 0x8522
 
+pattern GL_SCALE_BY_FOUR_NV  :: (Eq a, Num a) => a
+
 pattern GL_SCALE_BY_FOUR_NV = 0x853F
 
+pattern GL_SCALE_BY_ONE_HALF_NV  :: (Eq a, Num a) => a
+
 pattern GL_SCALE_BY_ONE_HALF_NV = 0x8540
 
+pattern GL_SCALE_BY_TWO_NV  :: (Eq a, Num a) => a
+
 pattern GL_SCALE_BY_TWO_NV = 0x853E
 
+pattern GL_SIGNED_IDENTITY_NV  :: (Eq a, Num a) => a
+
 pattern GL_SIGNED_IDENTITY_NV = 0x853C
 
+pattern GL_SIGNED_NEGATE_NV  :: (Eq a, Num a) => a
+
 pattern GL_SIGNED_NEGATE_NV = 0x853D
 
+pattern GL_SPARE0_NV  :: (Eq a, Num a) => a
+
 pattern GL_SPARE0_NV = 0x852E
 
+pattern GL_SPARE0_PLUS_SECONDARY_COLOR_NV  :: (Eq a, Num a) => a
+
 pattern GL_SPARE0_PLUS_SECONDARY_COLOR_NV = 0x8532
 
+pattern GL_SPARE1_NV  :: (Eq a, Num a) => a
+
 pattern GL_SPARE1_NV = 0x852F
 
+pattern GL_UNSIGNED_IDENTITY_NV  :: (Eq a, Num a) => a
+
 pattern GL_UNSIGNED_IDENTITY_NV = 0x8536
 
+pattern GL_UNSIGNED_INVERT_NV  :: (Eq a, Num a) => a
+
 pattern GL_UNSIGNED_INVERT_NV = 0x8537
 
+pattern GL_VARIABLE_A_NV  :: (Eq a, Num a) => a
+
 pattern GL_VARIABLE_A_NV = 0x8523
 
+pattern GL_VARIABLE_B_NV  :: (Eq a, Num a) => a
+
 pattern GL_VARIABLE_B_NV = 0x8524
 
+pattern GL_VARIABLE_C_NV  :: (Eq a, Num a) => a
+
 pattern GL_VARIABLE_C_NV = 0x8525
 
+pattern GL_VARIABLE_D_NV  :: (Eq a, Num a) => a
+
 pattern GL_VARIABLE_D_NV = 0x8526
 
+pattern GL_VARIABLE_E_NV  :: (Eq a, Num a) => a
+
 pattern GL_VARIABLE_E_NV = 0x8527
 
+pattern GL_VARIABLE_F_NV  :: (Eq a, Num a) => a
+
 pattern GL_VARIABLE_F_NV = 0x8528
+
+pattern GL_VARIABLE_G_NV  :: (Eq a, Num a) => a
 
 pattern GL_VARIABLE_G_NV = 0x8529
diff --git a/generated-src/Graphics/GL/Ext/NV/RegisterCombiners2.hs b/generated-src/Graphics/GL/Ext/NV/RegisterCombiners2.hs
--- a/generated-src/Graphics/GL/Ext/NV/RegisterCombiners2.hs
+++ b/generated-src/Graphics/GL/Ext/NV/RegisterCombiners2.hs
@@ -60,4 +60,6 @@
 
 {-# NOINLINE glGetCombinerStageParameterfvNVFunPtr #-}
 
+pattern GL_PER_STAGE_CONSTANTS_NV  :: (Eq a, Num a) => a
+
 pattern GL_PER_STAGE_CONSTANTS_NV = 0x8535
diff --git a/generated-src/Graphics/GL/Ext/NV/RobustnessVideoMemoryPurge.hs b/generated-src/Graphics/GL/Ext/NV/RobustnessVideoMemoryPurge.hs
--- a/generated-src/Graphics/GL/Ext/NV/RobustnessVideoMemoryPurge.hs
+++ b/generated-src/Graphics/GL/Ext/NV/RobustnessVideoMemoryPurge.hs
@@ -17,4 +17,6 @@
 gl_NV_robustness_video_memory_purge = member "GL_NV_robustness_video_memory_purge" extensions
 {-# NOINLINE gl_NV_robustness_video_memory_purge #-}
 
+pattern GL_PURGED_CONTEXT_RESET_NV  :: (Eq a, Num a) => a
+
 pattern GL_PURGED_CONTEXT_RESET_NV = 0x92BB
diff --git a/generated-src/Graphics/GL/Ext/NV/SRGBFormats.hs b/generated-src/Graphics/GL/Ext/NV/SRGBFormats.hs
--- a/generated-src/Graphics/GL/Ext/NV/SRGBFormats.hs
+++ b/generated-src/Graphics/GL/Ext/NV/SRGBFormats.hs
@@ -26,22 +26,42 @@
 gl_NV_sRGB_formats = member "GL_NV_sRGB_formats" extensions
 {-# NOINLINE gl_NV_sRGB_formats #-}
 
+pattern GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_NV  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_NV = 0x8C4D
 
+pattern GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_NV  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_NV = 0x8C4E
 
+pattern GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_NV  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_NV = 0x8C4F
 
+pattern GL_COMPRESSED_SRGB_S3TC_DXT1_NV  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_SRGB_S3TC_DXT1_NV = 0x8C4C
 
+pattern GL_ETC1_SRGB8_NV  :: (Eq a, Num a) => a
+
 pattern GL_ETC1_SRGB8_NV = 0x88EE
 
+pattern GL_SLUMINANCE8_ALPHA8_NV  :: (Eq a, Num a) => a
+
 pattern GL_SLUMINANCE8_ALPHA8_NV = 0x8C45
 
+pattern GL_SLUMINANCE8_NV  :: (Eq a, Num a) => a
+
 pattern GL_SLUMINANCE8_NV = 0x8C47
 
+pattern GL_SLUMINANCE_ALPHA_NV  :: (Eq a, Num a) => a
+
 pattern GL_SLUMINANCE_ALPHA_NV = 0x8C44
 
+pattern GL_SLUMINANCE_NV  :: (Eq a, Num a) => a
+
 pattern GL_SLUMINANCE_NV = 0x8C46
+
+pattern GL_SRGB8_NV  :: (Eq a, Num a) => a
 
 pattern GL_SRGB8_NV = 0x8C41
diff --git a/generated-src/Graphics/GL/Ext/NV/SampleLocations.hs b/generated-src/Graphics/GL/Ext/NV/SampleLocations.hs
--- a/generated-src/Graphics/GL/Ext/NV/SampleLocations.hs
+++ b/generated-src/Graphics/GL/Ext/NV/SampleLocations.hs
@@ -65,18 +65,34 @@
 
 {-# NOINLINE glResolveDepthValuesNVFunPtr #-}
 
+pattern GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_NV  :: (Eq a, Num a) => a
+
 pattern GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_NV = 0x9342
 
+pattern GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_NV  :: (Eq a, Num a) => a
+
 pattern GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_NV = 0x9343
 
+pattern GL_PROGRAMMABLE_SAMPLE_LOCATION_NV  :: (Eq a, Num a) => a
+
 pattern GL_PROGRAMMABLE_SAMPLE_LOCATION_NV = 0x9341
 
+pattern GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_NV  :: (Eq a, Num a) => a
+
 pattern GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_NV = 0x9340
 
+pattern GL_SAMPLE_LOCATION_NV  :: (Eq a, Num a) => a
+
 pattern GL_SAMPLE_LOCATION_NV = 0x8E50
 
+pattern GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_NV  :: (Eq a, Num a) => a
+
 pattern GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_NV = 0x933F
 
+pattern GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_NV  :: (Eq a, Num a) => a
+
 pattern GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_NV = 0x933E
+
+pattern GL_SAMPLE_LOCATION_SUBPIXEL_BITS_NV  :: (Eq a, Num a) => a
 
 pattern GL_SAMPLE_LOCATION_SUBPIXEL_BITS_NV = 0x933D
diff --git a/generated-src/Graphics/GL/Ext/NV/ShaderBufferLoad.hs b/generated-src/Graphics/GL/Ext/NV/ShaderBufferLoad.hs
--- a/generated-src/Graphics/GL/Ext/NV/ShaderBufferLoad.hs
+++ b/generated-src/Graphics/GL/Ext/NV/ShaderBufferLoad.hs
@@ -194,8 +194,14 @@
 
 {-# NOINLINE glUniformui64vNVFunPtr #-}
 
+pattern GL_BUFFER_GPU_ADDRESS_NV  :: (Eq a, Num a) => a
+
 pattern GL_BUFFER_GPU_ADDRESS_NV = 0x8F1D
 
+pattern GL_GPU_ADDRESS_NV  :: (Eq a, Num a) => a
+
 pattern GL_GPU_ADDRESS_NV = 0x8F34
+
+pattern GL_MAX_SHADER_BUFFER_ADDRESS_NV  :: (Eq a, Num a) => a
 
 pattern GL_MAX_SHADER_BUFFER_ADDRESS_NV = 0x8F35
diff --git a/generated-src/Graphics/GL/Ext/NV/ShaderBufferStore.hs b/generated-src/Graphics/GL/Ext/NV/ShaderBufferStore.hs
--- a/generated-src/Graphics/GL/Ext/NV/ShaderBufferStore.hs
+++ b/generated-src/Graphics/GL/Ext/NV/ShaderBufferStore.hs
@@ -20,4 +20,6 @@
 gl_NV_shader_buffer_store = member "GL_NV_shader_buffer_store" extensions
 {-# NOINLINE gl_NV_shader_buffer_store #-}
 
+pattern GL_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV  :: (Eq a, Num a) => a
+
 pattern GL_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV = 0x00000010
diff --git a/generated-src/Graphics/GL/Ext/NV/ShaderThreadGroup.hs b/generated-src/Graphics/GL/Ext/NV/ShaderThreadGroup.hs
--- a/generated-src/Graphics/GL/Ext/NV/ShaderThreadGroup.hs
+++ b/generated-src/Graphics/GL/Ext/NV/ShaderThreadGroup.hs
@@ -19,8 +19,14 @@
 gl_NV_shader_thread_group = member "GL_NV_shader_thread_group" extensions
 {-# NOINLINE gl_NV_shader_thread_group #-}
 
+pattern GL_SM_COUNT_NV  :: (Eq a, Num a) => a
+
 pattern GL_SM_COUNT_NV = 0x933B
 
+pattern GL_WARPS_PER_SM_NV  :: (Eq a, Num a) => a
+
 pattern GL_WARPS_PER_SM_NV = 0x933A
+
+pattern GL_WARP_SIZE_NV  :: (Eq a, Num a) => a
 
 pattern GL_WARP_SIZE_NV = 0x9339
diff --git a/generated-src/Graphics/GL/Ext/NV/ShadowSamplersArray.hs b/generated-src/Graphics/GL/Ext/NV/ShadowSamplersArray.hs
--- a/generated-src/Graphics/GL/Ext/NV/ShadowSamplersArray.hs
+++ b/generated-src/Graphics/GL/Ext/NV/ShadowSamplersArray.hs
@@ -17,4 +17,6 @@
 gl_NV_shadow_samplers_array = member "GL_NV_shadow_samplers_array" extensions
 {-# NOINLINE gl_NV_shadow_samplers_array #-}
 
+pattern GL_SAMPLER_2D_ARRAY_SHADOW_NV  :: (Eq a, Num a) => a
+
 pattern GL_SAMPLER_2D_ARRAY_SHADOW_NV = 0x8DC4
diff --git a/generated-src/Graphics/GL/Ext/NV/ShadowSamplersCube.hs b/generated-src/Graphics/GL/Ext/NV/ShadowSamplersCube.hs
--- a/generated-src/Graphics/GL/Ext/NV/ShadowSamplersCube.hs
+++ b/generated-src/Graphics/GL/Ext/NV/ShadowSamplersCube.hs
@@ -17,4 +17,6 @@
 gl_NV_shadow_samplers_cube = member "GL_NV_shadow_samplers_cube" extensions
 {-# NOINLINE gl_NV_shadow_samplers_cube #-}
 
+pattern GL_SAMPLER_CUBE_SHADOW_NV  :: (Eq a, Num a) => a
+
 pattern GL_SAMPLER_CUBE_SHADOW_NV = 0x8DC5
diff --git a/generated-src/Graphics/GL/Ext/NV/TessellationProgram5.hs b/generated-src/Graphics/GL/Ext/NV/TessellationProgram5.hs
--- a/generated-src/Graphics/GL/Ext/NV/TessellationProgram5.hs
+++ b/generated-src/Graphics/GL/Ext/NV/TessellationProgram5.hs
@@ -21,12 +21,22 @@
 gl_NV_tessellation_program5 = member "GL_NV_tessellation_program5" extensions
 {-# NOINLINE gl_NV_tessellation_program5 #-}
 
+pattern GL_MAX_PROGRAM_PATCH_ATTRIBS_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAX_PROGRAM_PATCH_ATTRIBS_NV = 0x86D8
 
+pattern GL_TESS_CONTROL_PROGRAM_NV  :: (Eq a, Num a) => a
+
 pattern GL_TESS_CONTROL_PROGRAM_NV = 0x891E
 
+pattern GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV  :: (Eq a, Num a) => a
+
 pattern GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV = 0x8C74
 
+pattern GL_TESS_EVALUATION_PROGRAM_NV  :: (Eq a, Num a) => a
+
 pattern GL_TESS_EVALUATION_PROGRAM_NV = 0x891F
+
+pattern GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV  :: (Eq a, Num a) => a
 
 pattern GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV = 0x8C75
diff --git a/generated-src/Graphics/GL/Ext/NV/TexgenEmboss.hs b/generated-src/Graphics/GL/Ext/NV/TexgenEmboss.hs
--- a/generated-src/Graphics/GL/Ext/NV/TexgenEmboss.hs
+++ b/generated-src/Graphics/GL/Ext/NV/TexgenEmboss.hs
@@ -19,8 +19,14 @@
 gl_NV_texgen_emboss = member "GL_NV_texgen_emboss" extensions
 {-# NOINLINE gl_NV_texgen_emboss #-}
 
+pattern GL_EMBOSS_CONSTANT_NV  :: (Eq a, Num a) => a
+
 pattern GL_EMBOSS_CONSTANT_NV = 0x855E
 
+pattern GL_EMBOSS_LIGHT_NV  :: (Eq a, Num a) => a
+
 pattern GL_EMBOSS_LIGHT_NV = 0x855D
+
+pattern GL_EMBOSS_MAP_NV  :: (Eq a, Num a) => a
 
 pattern GL_EMBOSS_MAP_NV = 0x855F
diff --git a/generated-src/Graphics/GL/Ext/NV/TexgenReflection.hs b/generated-src/Graphics/GL/Ext/NV/TexgenReflection.hs
--- a/generated-src/Graphics/GL/Ext/NV/TexgenReflection.hs
+++ b/generated-src/Graphics/GL/Ext/NV/TexgenReflection.hs
@@ -18,6 +18,10 @@
 gl_NV_texgen_reflection = member "GL_NV_texgen_reflection" extensions
 {-# NOINLINE gl_NV_texgen_reflection #-}
 
+pattern GL_NORMAL_MAP_NV  :: (Eq a, Num a) => a
+
 pattern GL_NORMAL_MAP_NV = 0x8511
+
+pattern GL_REFLECTION_MAP_NV  :: (Eq a, Num a) => a
 
 pattern GL_REFLECTION_MAP_NV = 0x8512
diff --git a/generated-src/Graphics/GL/Ext/NV/TextureBorderClamp.hs b/generated-src/Graphics/GL/Ext/NV/TextureBorderClamp.hs
--- a/generated-src/Graphics/GL/Ext/NV/TextureBorderClamp.hs
+++ b/generated-src/Graphics/GL/Ext/NV/TextureBorderClamp.hs
@@ -18,6 +18,10 @@
 gl_NV_texture_border_clamp = member "GL_NV_texture_border_clamp" extensions
 {-# NOINLINE gl_NV_texture_border_clamp #-}
 
+pattern GL_CLAMP_TO_BORDER_NV  :: (Eq a, Num a) => a
+
 pattern GL_CLAMP_TO_BORDER_NV = 0x812D
+
+pattern GL_TEXTURE_BORDER_COLOR_NV  :: (Eq a, Num a) => a
 
 pattern GL_TEXTURE_BORDER_COLOR_NV = 0x1004
diff --git a/generated-src/Graphics/GL/Ext/NV/TextureEnvCombine4.hs b/generated-src/Graphics/GL/Ext/NV/TextureEnvCombine4.hs
--- a/generated-src/Graphics/GL/Ext/NV/TextureEnvCombine4.hs
+++ b/generated-src/Graphics/GL/Ext/NV/TextureEnvCombine4.hs
@@ -21,12 +21,22 @@
 gl_NV_texture_env_combine4 = member "GL_NV_texture_env_combine4" extensions
 {-# NOINLINE gl_NV_texture_env_combine4 #-}
 
+pattern GL_COMBINE4_NV  :: (Eq a, Num a) => a
+
 pattern GL_COMBINE4_NV = 0x8503
 
+pattern GL_OPERAND3_ALPHA_NV  :: (Eq a, Num a) => a
+
 pattern GL_OPERAND3_ALPHA_NV = 0x859B
 
+pattern GL_OPERAND3_RGB_NV  :: (Eq a, Num a) => a
+
 pattern GL_OPERAND3_RGB_NV = 0x8593
 
+pattern GL_SOURCE3_ALPHA_NV  :: (Eq a, Num a) => a
+
 pattern GL_SOURCE3_ALPHA_NV = 0x858B
+
+pattern GL_SOURCE3_RGB_NV  :: (Eq a, Num a) => a
 
 pattern GL_SOURCE3_RGB_NV = 0x8583
diff --git a/generated-src/Graphics/GL/Ext/NV/TextureExpandNormal.hs b/generated-src/Graphics/GL/Ext/NV/TextureExpandNormal.hs
--- a/generated-src/Graphics/GL/Ext/NV/TextureExpandNormal.hs
+++ b/generated-src/Graphics/GL/Ext/NV/TextureExpandNormal.hs
@@ -17,4 +17,6 @@
 gl_NV_texture_expand_normal = member "GL_NV_texture_expand_normal" extensions
 {-# NOINLINE gl_NV_texture_expand_normal #-}
 
+pattern GL_TEXTURE_UNSIGNED_REMAP_MODE_NV  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_UNSIGNED_REMAP_MODE_NV = 0x888F
diff --git a/generated-src/Graphics/GL/Ext/NV/TextureMultisample.hs b/generated-src/Graphics/GL/Ext/NV/TextureMultisample.hs
--- a/generated-src/Graphics/GL/Ext/NV/TextureMultisample.hs
+++ b/generated-src/Graphics/GL/Ext/NV/TextureMultisample.hs
@@ -107,6 +107,10 @@
 
 {-# NOINLINE glTextureImage3DMultisampleNVFunPtr #-}
 
+pattern GL_TEXTURE_COLOR_SAMPLES_NV  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_COLOR_SAMPLES_NV = 0x9046
+
+pattern GL_TEXTURE_COVERAGE_SAMPLES_NV  :: (Eq a, Num a) => a
 
 pattern GL_TEXTURE_COVERAGE_SAMPLES_NV = 0x9045
diff --git a/generated-src/Graphics/GL/Ext/NV/TextureRectangle.hs b/generated-src/Graphics/GL/Ext/NV/TextureRectangle.hs
--- a/generated-src/Graphics/GL/Ext/NV/TextureRectangle.hs
+++ b/generated-src/Graphics/GL/Ext/NV/TextureRectangle.hs
@@ -20,10 +20,18 @@
 gl_NV_texture_rectangle = member "GL_NV_texture_rectangle" extensions
 {-# NOINLINE gl_NV_texture_rectangle #-}
 
+pattern GL_MAX_RECTANGLE_TEXTURE_SIZE_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAX_RECTANGLE_TEXTURE_SIZE_NV = 0x84F8
 
+pattern GL_PROXY_TEXTURE_RECTANGLE_NV  :: (Eq a, Num a) => a
+
 pattern GL_PROXY_TEXTURE_RECTANGLE_NV = 0x84F7
 
+pattern GL_TEXTURE_BINDING_RECTANGLE_NV  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_BINDING_RECTANGLE_NV = 0x84F6
+
+pattern GL_TEXTURE_RECTANGLE_NV  :: (Eq a, Num a) => a
 
 pattern GL_TEXTURE_RECTANGLE_NV = 0x84F5
diff --git a/generated-src/Graphics/GL/Ext/NV/TextureShader.hs b/generated-src/Graphics/GL/Ext/NV/TextureShader.hs
--- a/generated-src/Graphics/GL/Ext/NV/TextureShader.hs
+++ b/generated-src/Graphics/GL/Ext/NV/TextureShader.hs
@@ -89,148 +89,294 @@
 gl_NV_texture_shader = member "GL_NV_texture_shader" extensions
 {-# NOINLINE gl_NV_texture_shader #-}
 
+pattern GL_CONST_EYE_NV  :: (Eq a, Num a) => a
+
 pattern GL_CONST_EYE_NV = 0x86E5
 
+pattern GL_CULL_FRAGMENT_NV  :: (Eq a, Num a) => a
+
 pattern GL_CULL_FRAGMENT_NV = 0x86E7
 
+pattern GL_CULL_MODES_NV  :: (Eq a, Num a) => a
+
 pattern GL_CULL_MODES_NV = 0x86E0
 
+pattern GL_DEPENDENT_AR_TEXTURE_2D_NV  :: (Eq a, Num a) => a
+
 pattern GL_DEPENDENT_AR_TEXTURE_2D_NV = 0x86E9
 
+pattern GL_DEPENDENT_GB_TEXTURE_2D_NV  :: (Eq a, Num a) => a
+
 pattern GL_DEPENDENT_GB_TEXTURE_2D_NV = 0x86EA
 
+pattern GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV  :: (Eq a, Num a) => a
+
 pattern GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV = 0x86F3
 
+pattern GL_DOT_PRODUCT_DEPTH_REPLACE_NV  :: (Eq a, Num a) => a
+
 pattern GL_DOT_PRODUCT_DEPTH_REPLACE_NV = 0x86ED
 
+pattern GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV  :: (Eq a, Num a) => a
+
 pattern GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV = 0x86F1
 
+pattern GL_DOT_PRODUCT_NV  :: (Eq a, Num a) => a
+
 pattern GL_DOT_PRODUCT_NV = 0x86EC
 
+pattern GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV  :: (Eq a, Num a) => a
+
 pattern GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV = 0x86F2
 
+pattern GL_DOT_PRODUCT_TEXTURE_2D_NV  :: (Eq a, Num a) => a
+
 pattern GL_DOT_PRODUCT_TEXTURE_2D_NV = 0x86EE
 
+pattern GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV  :: (Eq a, Num a) => a
+
 pattern GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV = 0x86F0
 
+pattern GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV  :: (Eq a, Num a) => a
+
 pattern GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV = 0x864E
 
+pattern GL_DSDT8_MAG8_INTENSITY8_NV  :: (Eq a, Num a) => a
+
 pattern GL_DSDT8_MAG8_INTENSITY8_NV = 0x870B
 
+pattern GL_DSDT8_MAG8_NV  :: (Eq a, Num a) => a
+
 pattern GL_DSDT8_MAG8_NV = 0x870A
 
+pattern GL_DSDT8_NV  :: (Eq a, Num a) => a
+
 pattern GL_DSDT8_NV = 0x8709
 
+pattern GL_DSDT_MAG_INTENSITY_NV  :: (Eq a, Num a) => a
+
 pattern GL_DSDT_MAG_INTENSITY_NV = 0x86DC
 
+pattern GL_DSDT_MAG_NV  :: (Eq a, Num a) => a
+
 pattern GL_DSDT_MAG_NV = 0x86F6
 
+pattern GL_DSDT_MAG_VIB_NV  :: (Eq a, Num a) => a
+
 pattern GL_DSDT_MAG_VIB_NV = 0x86F7
 
+pattern GL_DSDT_NV  :: (Eq a, Num a) => a
+
 pattern GL_DSDT_NV = 0x86F5
 
+pattern GL_DS_BIAS_NV  :: (Eq a, Num a) => a
+
 pattern GL_DS_BIAS_NV = 0x8716
 
+pattern GL_DS_SCALE_NV  :: (Eq a, Num a) => a
+
 pattern GL_DS_SCALE_NV = 0x8710
 
+pattern GL_DT_BIAS_NV  :: (Eq a, Num a) => a
+
 pattern GL_DT_BIAS_NV = 0x8717
 
+pattern GL_DT_SCALE_NV  :: (Eq a, Num a) => a
+
 pattern GL_DT_SCALE_NV = 0x8711
 
+pattern GL_HILO16_NV  :: (Eq a, Num a) => a
+
 pattern GL_HILO16_NV = 0x86F8
 
+pattern GL_HILO_NV  :: (Eq a, Num a) => a
+
 pattern GL_HILO_NV = 0x86F4
 
+pattern GL_HI_BIAS_NV  :: (Eq a, Num a) => a
+
 pattern GL_HI_BIAS_NV = 0x8714
 
+pattern GL_HI_SCALE_NV  :: (Eq a, Num a) => a
+
 pattern GL_HI_SCALE_NV = 0x870E
 
+pattern GL_LO_BIAS_NV  :: (Eq a, Num a) => a
+
 pattern GL_LO_BIAS_NV = 0x8715
 
+pattern GL_LO_SCALE_NV  :: (Eq a, Num a) => a
+
 pattern GL_LO_SCALE_NV = 0x870F
 
+pattern GL_MAGNITUDE_BIAS_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAGNITUDE_BIAS_NV = 0x8718
 
+pattern GL_MAGNITUDE_SCALE_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAGNITUDE_SCALE_NV = 0x8712
 
+pattern GL_OFFSET_TEXTURE_2D_BIAS_NV  :: (Eq a, Num a) => a
+
 pattern GL_OFFSET_TEXTURE_2D_BIAS_NV = 0x86E3
 
+pattern GL_OFFSET_TEXTURE_2D_MATRIX_NV  :: (Eq a, Num a) => a
+
 pattern GL_OFFSET_TEXTURE_2D_MATRIX_NV = 0x86E1
 
+pattern GL_OFFSET_TEXTURE_2D_NV  :: (Eq a, Num a) => a
+
 pattern GL_OFFSET_TEXTURE_2D_NV = 0x86E8
 
+pattern GL_OFFSET_TEXTURE_2D_SCALE_NV  :: (Eq a, Num a) => a
+
 pattern GL_OFFSET_TEXTURE_2D_SCALE_NV = 0x86E2
 
+pattern GL_OFFSET_TEXTURE_BIAS_NV  :: (Eq a, Num a) => a
+
 pattern GL_OFFSET_TEXTURE_BIAS_NV = 0x86E3
 
+pattern GL_OFFSET_TEXTURE_MATRIX_NV  :: (Eq a, Num a) => a
+
 pattern GL_OFFSET_TEXTURE_MATRIX_NV = 0x86E1
 
+pattern GL_OFFSET_TEXTURE_RECTANGLE_NV  :: (Eq a, Num a) => a
+
 pattern GL_OFFSET_TEXTURE_RECTANGLE_NV = 0x864C
 
+pattern GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV  :: (Eq a, Num a) => a
+
 pattern GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV = 0x864D
 
+pattern GL_OFFSET_TEXTURE_SCALE_NV  :: (Eq a, Num a) => a
+
 pattern GL_OFFSET_TEXTURE_SCALE_NV = 0x86E2
 
+pattern GL_PASS_THROUGH_NV  :: (Eq a, Num a) => a
+
 pattern GL_PASS_THROUGH_NV = 0x86E6
 
+pattern GL_PREVIOUS_TEXTURE_INPUT_NV  :: (Eq a, Num a) => a
+
 pattern GL_PREVIOUS_TEXTURE_INPUT_NV = 0x86E4
 
+pattern GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV  :: (Eq a, Num a) => a
+
 pattern GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV = 0x86D9
 
+pattern GL_SHADER_CONSISTENT_NV  :: (Eq a, Num a) => a
+
 pattern GL_SHADER_CONSISTENT_NV = 0x86DD
 
+pattern GL_SHADER_OPERATION_NV  :: (Eq a, Num a) => a
+
 pattern GL_SHADER_OPERATION_NV = 0x86DF
 
+pattern GL_SIGNED_ALPHA8_NV  :: (Eq a, Num a) => a
+
 pattern GL_SIGNED_ALPHA8_NV = 0x8706
 
+pattern GL_SIGNED_ALPHA_NV  :: (Eq a, Num a) => a
+
 pattern GL_SIGNED_ALPHA_NV = 0x8705
 
+pattern GL_SIGNED_HILO16_NV  :: (Eq a, Num a) => a
+
 pattern GL_SIGNED_HILO16_NV = 0x86FA
 
+pattern GL_SIGNED_HILO_NV  :: (Eq a, Num a) => a
+
 pattern GL_SIGNED_HILO_NV = 0x86F9
 
+pattern GL_SIGNED_INTENSITY8_NV  :: (Eq a, Num a) => a
+
 pattern GL_SIGNED_INTENSITY8_NV = 0x8708
 
+pattern GL_SIGNED_INTENSITY_NV  :: (Eq a, Num a) => a
+
 pattern GL_SIGNED_INTENSITY_NV = 0x8707
 
+pattern GL_SIGNED_LUMINANCE8_ALPHA8_NV  :: (Eq a, Num a) => a
+
 pattern GL_SIGNED_LUMINANCE8_ALPHA8_NV = 0x8704
 
+pattern GL_SIGNED_LUMINANCE8_NV  :: (Eq a, Num a) => a
+
 pattern GL_SIGNED_LUMINANCE8_NV = 0x8702
 
+pattern GL_SIGNED_LUMINANCE_ALPHA_NV  :: (Eq a, Num a) => a
+
 pattern GL_SIGNED_LUMINANCE_ALPHA_NV = 0x8703
 
+pattern GL_SIGNED_LUMINANCE_NV  :: (Eq a, Num a) => a
+
 pattern GL_SIGNED_LUMINANCE_NV = 0x8701
 
+pattern GL_SIGNED_RGB8_NV  :: (Eq a, Num a) => a
+
 pattern GL_SIGNED_RGB8_NV = 0x86FF
 
+pattern GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV  :: (Eq a, Num a) => a
+
 pattern GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV = 0x870D
 
+pattern GL_SIGNED_RGBA8_NV  :: (Eq a, Num a) => a
+
 pattern GL_SIGNED_RGBA8_NV = 0x86FC
 
+pattern GL_SIGNED_RGBA_NV  :: (Eq a, Num a) => a
+
 pattern GL_SIGNED_RGBA_NV = 0x86FB
 
+pattern GL_SIGNED_RGB_NV  :: (Eq a, Num a) => a
+
 pattern GL_SIGNED_RGB_NV = 0x86FE
 
+pattern GL_SIGNED_RGB_UNSIGNED_ALPHA_NV  :: (Eq a, Num a) => a
+
 pattern GL_SIGNED_RGB_UNSIGNED_ALPHA_NV = 0x870C
 
+pattern GL_TEXTURE_BORDER_VALUES_NV  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_BORDER_VALUES_NV = 0x871A
 
+pattern GL_TEXTURE_DS_SIZE_NV  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_DS_SIZE_NV = 0x871D
 
+pattern GL_TEXTURE_DT_SIZE_NV  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_DT_SIZE_NV = 0x871E
 
+pattern GL_TEXTURE_HI_SIZE_NV  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_HI_SIZE_NV = 0x871B
 
+pattern GL_TEXTURE_LO_SIZE_NV  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_LO_SIZE_NV = 0x871C
 
+pattern GL_TEXTURE_MAG_SIZE_NV  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_MAG_SIZE_NV = 0x871F
 
+pattern GL_TEXTURE_SHADER_NV  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_SHADER_NV = 0x86DE
 
+pattern GL_UNSIGNED_INT_8_8_S8_S8_REV_NV  :: (Eq a, Num a) => a
+
 pattern GL_UNSIGNED_INT_8_8_S8_S8_REV_NV = 0x86DB
 
+pattern GL_UNSIGNED_INT_S8_S8_8_8_NV  :: (Eq a, Num a) => a
+
 pattern GL_UNSIGNED_INT_S8_S8_8_8_NV = 0x86DA
 
+pattern GL_VIBRANCE_BIAS_NV  :: (Eq a, Num a) => a
+
 pattern GL_VIBRANCE_BIAS_NV = 0x8719
+
+pattern GL_VIBRANCE_SCALE_NV  :: (Eq a, Num a) => a
 
 pattern GL_VIBRANCE_SCALE_NV = 0x8713
diff --git a/generated-src/Graphics/GL/Ext/NV/TextureShader2.hs b/generated-src/Graphics/GL/Ext/NV/TextureShader2.hs
--- a/generated-src/Graphics/GL/Ext/NV/TextureShader2.hs
+++ b/generated-src/Graphics/GL/Ext/NV/TextureShader2.hs
@@ -17,4 +17,6 @@
 gl_NV_texture_shader2 = member "GL_NV_texture_shader2" extensions
 {-# NOINLINE gl_NV_texture_shader2 #-}
 
+pattern GL_DOT_PRODUCT_TEXTURE_3D_NV  :: (Eq a, Num a) => a
+
 pattern GL_DOT_PRODUCT_TEXTURE_3D_NV = 0x86EF
diff --git a/generated-src/Graphics/GL/Ext/NV/TextureShader3.hs b/generated-src/Graphics/GL/Ext/NV/TextureShader3.hs
--- a/generated-src/Graphics/GL/Ext/NV/TextureShader3.hs
+++ b/generated-src/Graphics/GL/Ext/NV/TextureShader3.hs
@@ -33,36 +33,70 @@
 gl_NV_texture_shader3 = member "GL_NV_texture_shader3" extensions
 {-# NOINLINE gl_NV_texture_shader3 #-}
 
+pattern GL_DEPENDENT_HILO_TEXTURE_2D_NV  :: (Eq a, Num a) => a
+
 pattern GL_DEPENDENT_HILO_TEXTURE_2D_NV = 0x8858
 
+pattern GL_DEPENDENT_RGB_TEXTURE_3D_NV  :: (Eq a, Num a) => a
+
 pattern GL_DEPENDENT_RGB_TEXTURE_3D_NV = 0x8859
 
+pattern GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV  :: (Eq a, Num a) => a
+
 pattern GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV = 0x885A
 
+pattern GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV  :: (Eq a, Num a) => a
+
 pattern GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV = 0x885D
 
+pattern GL_DOT_PRODUCT_PASS_THROUGH_NV  :: (Eq a, Num a) => a
+
 pattern GL_DOT_PRODUCT_PASS_THROUGH_NV = 0x885B
 
+pattern GL_DOT_PRODUCT_TEXTURE_1D_NV  :: (Eq a, Num a) => a
+
 pattern GL_DOT_PRODUCT_TEXTURE_1D_NV = 0x885C
 
+pattern GL_FORCE_BLUE_TO_ONE_NV  :: (Eq a, Num a) => a
+
 pattern GL_FORCE_BLUE_TO_ONE_NV = 0x8860
 
+pattern GL_HILO8_NV  :: (Eq a, Num a) => a
+
 pattern GL_HILO8_NV = 0x885E
 
+pattern GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV  :: (Eq a, Num a) => a
+
 pattern GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV = 0x8856
 
+pattern GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV  :: (Eq a, Num a) => a
+
 pattern GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV = 0x8857
 
+pattern GL_OFFSET_HILO_TEXTURE_2D_NV  :: (Eq a, Num a) => a
+
 pattern GL_OFFSET_HILO_TEXTURE_2D_NV = 0x8854
 
+pattern GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV  :: (Eq a, Num a) => a
+
 pattern GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV = 0x8855
 
+pattern GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV  :: (Eq a, Num a) => a
+
 pattern GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV = 0x8850
 
+pattern GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV  :: (Eq a, Num a) => a
+
 pattern GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV = 0x8851
 
+pattern GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV  :: (Eq a, Num a) => a
+
 pattern GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV = 0x8852
 
+pattern GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV  :: (Eq a, Num a) => a
+
 pattern GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV = 0x8853
+
+pattern GL_SIGNED_HILO8_NV  :: (Eq a, Num a) => a
 
 pattern GL_SIGNED_HILO8_NV = 0x885F
diff --git a/generated-src/Graphics/GL/Ext/NV/TransformFeedback.hs b/generated-src/Graphics/GL/Ext/NV/TransformFeedback.hs
--- a/generated-src/Graphics/GL/Ext/NV/TransformFeedback.hs
+++ b/generated-src/Graphics/GL/Ext/NV/TransformFeedback.hs
@@ -234,64 +234,126 @@
 
 {-# NOINLINE glTransformFeedbackVaryingsNVFunPtr #-}
 
+pattern GL_ACTIVE_VARYINGS_NV  :: (Eq a, Num a) => a
+
 pattern GL_ACTIVE_VARYINGS_NV = 0x8C81
 
+pattern GL_ACTIVE_VARYING_MAX_LENGTH_NV  :: (Eq a, Num a) => a
+
 pattern GL_ACTIVE_VARYING_MAX_LENGTH_NV = 0x8C82
 
+pattern GL_BACK_PRIMARY_COLOR_NV  :: (Eq a, Num a) => a
+
 pattern GL_BACK_PRIMARY_COLOR_NV = 0x8C77
 
+pattern GL_BACK_SECONDARY_COLOR_NV  :: (Eq a, Num a) => a
+
 pattern GL_BACK_SECONDARY_COLOR_NV = 0x8C78
 
+pattern GL_CLIP_DISTANCE_NV  :: (Eq a, Num a) => a
+
 pattern GL_CLIP_DISTANCE_NV = 0x8C7A
 
+pattern GL_GENERIC_ATTRIB_NV  :: (Eq a, Num a) => a
+
 pattern GL_GENERIC_ATTRIB_NV = 0x8C7D
 
+pattern GL_INTERLEAVED_ATTRIBS_NV  :: (Eq a, Num a) => a
+
 pattern GL_INTERLEAVED_ATTRIBS_NV = 0x8C8C
 
+pattern GL_LAYER_NV  :: (Eq a, Num a) => a
+
 pattern GL_LAYER_NV = 0x8DAA
 
+pattern GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV = 0x8C8A
 
+pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV = 0x8C8B
 
+pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV = 0x8C80
 
+pattern GL_NEXT_BUFFER_NV  :: (Eq a, Num a) => a
+
 pattern GL_NEXT_BUFFER_NV = -2
 
+pattern GL_PRIMITIVES_GENERATED_NV  :: (Eq a, Num a) => a
+
 pattern GL_PRIMITIVES_GENERATED_NV = 0x8C87
 
+pattern GL_PRIMITIVE_ID_NV  :: (Eq a, Num a) => a
+
 pattern GL_PRIMITIVE_ID_NV = 0x8C7C
 
+pattern GL_RASTERIZER_DISCARD_NV  :: (Eq a, Num a) => a
+
 pattern GL_RASTERIZER_DISCARD_NV = 0x8C89
 
+pattern GL_SEPARATE_ATTRIBS_NV  :: (Eq a, Num a) => a
+
 pattern GL_SEPARATE_ATTRIBS_NV = 0x8C8D
 
+pattern GL_SKIP_COMPONENTS1_NV  :: (Eq a, Num a) => a
+
 pattern GL_SKIP_COMPONENTS1_NV = -6
 
+pattern GL_SKIP_COMPONENTS2_NV  :: (Eq a, Num a) => a
+
 pattern GL_SKIP_COMPONENTS2_NV = -5
 
+pattern GL_SKIP_COMPONENTS3_NV  :: (Eq a, Num a) => a
+
 pattern GL_SKIP_COMPONENTS3_NV = -4
 
+pattern GL_SKIP_COMPONENTS4_NV  :: (Eq a, Num a) => a
+
 pattern GL_SKIP_COMPONENTS4_NV = -3
 
+pattern GL_TEXTURE_COORD_NV  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_COORD_NV = 0x8C79
 
+pattern GL_TRANSFORM_FEEDBACK_ATTRIBS_NV  :: (Eq a, Num a) => a
+
 pattern GL_TRANSFORM_FEEDBACK_ATTRIBS_NV = 0x8C7E
 
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV  :: (Eq a, Num a) => a
+
 pattern GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV = 0x8C8F
 
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV  :: (Eq a, Num a) => a
+
 pattern GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV = 0x8C7F
 
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_NV  :: (Eq a, Num a) => a
+
 pattern GL_TRANSFORM_FEEDBACK_BUFFER_NV = 0x8C8E
 
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV  :: (Eq a, Num a) => a
+
 pattern GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV = 0x8C85
 
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_START_NV  :: (Eq a, Num a) => a
+
 pattern GL_TRANSFORM_FEEDBACK_BUFFER_START_NV = 0x8C84
 
+pattern GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV  :: (Eq a, Num a) => a
+
 pattern GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV = 0x8C88
 
+pattern GL_TRANSFORM_FEEDBACK_RECORD_NV  :: (Eq a, Num a) => a
+
 pattern GL_TRANSFORM_FEEDBACK_RECORD_NV = 0x8C86
 
+pattern GL_TRANSFORM_FEEDBACK_VARYINGS_NV  :: (Eq a, Num a) => a
+
 pattern GL_TRANSFORM_FEEDBACK_VARYINGS_NV = 0x8C83
+
+pattern GL_VERTEX_ID_NV  :: (Eq a, Num a) => a
 
 pattern GL_VERTEX_ID_NV = 0x8C7B
diff --git a/generated-src/Graphics/GL/Ext/NV/TransformFeedback2.hs b/generated-src/Graphics/GL/Ext/NV/TransformFeedback2.hs
--- a/generated-src/Graphics/GL/Ext/NV/TransformFeedback2.hs
+++ b/generated-src/Graphics/GL/Ext/NV/TransformFeedback2.hs
@@ -129,10 +129,18 @@
 
 {-# NOINLINE glResumeTransformFeedbackNVFunPtr #-}
 
+pattern GL_TRANSFORM_FEEDBACK_BINDING_NV  :: (Eq a, Num a) => a
+
 pattern GL_TRANSFORM_FEEDBACK_BINDING_NV = 0x8E25
 
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV  :: (Eq a, Num a) => a
+
 pattern GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV = 0x8E24
 
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV  :: (Eq a, Num a) => a
+
 pattern GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV = 0x8E23
+
+pattern GL_TRANSFORM_FEEDBACK_NV  :: (Eq a, Num a) => a
 
 pattern GL_TRANSFORM_FEEDBACK_NV = 0x8E22
diff --git a/generated-src/Graphics/GL/Ext/NV/UniformBufferUnifiedMemory.hs b/generated-src/Graphics/GL/Ext/NV/UniformBufferUnifiedMemory.hs
--- a/generated-src/Graphics/GL/Ext/NV/UniformBufferUnifiedMemory.hs
+++ b/generated-src/Graphics/GL/Ext/NV/UniformBufferUnifiedMemory.hs
@@ -19,8 +19,14 @@
 gl_NV_uniform_buffer_unified_memory = member "GL_NV_uniform_buffer_unified_memory" extensions
 {-# NOINLINE gl_NV_uniform_buffer_unified_memory #-}
 
+pattern GL_UNIFORM_BUFFER_ADDRESS_NV  :: (Eq a, Num a) => a
+
 pattern GL_UNIFORM_BUFFER_ADDRESS_NV = 0x936F
 
+pattern GL_UNIFORM_BUFFER_LENGTH_NV  :: (Eq a, Num a) => a
+
 pattern GL_UNIFORM_BUFFER_LENGTH_NV = 0x9370
+
+pattern GL_UNIFORM_BUFFER_UNIFIED_NV  :: (Eq a, Num a) => a
 
 pattern GL_UNIFORM_BUFFER_UNIFIED_NV = 0x936E
diff --git a/generated-src/Graphics/GL/Ext/NV/VdpauInterop.hs b/generated-src/Graphics/GL/Ext/NV/VdpauInterop.hs
--- a/generated-src/Graphics/GL/Ext/NV/VdpauInterop.hs
+++ b/generated-src/Graphics/GL/Ext/NV/VdpauInterop.hs
@@ -167,10 +167,18 @@
 
 {-# NOINLINE glVDPAUUnregisterSurfaceNVFunPtr #-}
 
+pattern GL_SURFACE_MAPPED_NV  :: (Eq a, Num a) => a
+
 pattern GL_SURFACE_MAPPED_NV = 0x8700
 
+pattern GL_SURFACE_REGISTERED_NV  :: (Eq a, Num a) => a
+
 pattern GL_SURFACE_REGISTERED_NV = 0x86FD
 
+pattern GL_SURFACE_STATE_NV  :: (Eq a, Num a) => a
+
 pattern GL_SURFACE_STATE_NV = 0x86EB
+
+pattern GL_WRITE_DISCARD_NV  :: (Eq a, Num a) => a
 
 pattern GL_WRITE_DISCARD_NV = 0x88BE
diff --git a/generated-src/Graphics/GL/Ext/NV/VertexArrayRange.hs b/generated-src/Graphics/GL/Ext/NV/VertexArrayRange.hs
--- a/generated-src/Graphics/GL/Ext/NV/VertexArrayRange.hs
+++ b/generated-src/Graphics/GL/Ext/NV/VertexArrayRange.hs
@@ -52,12 +52,22 @@
 
 {-# NOINLINE glVertexArrayRangeNVFunPtr #-}
 
+pattern GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV = 0x8520
 
+pattern GL_VERTEX_ARRAY_RANGE_LENGTH_NV  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_ARRAY_RANGE_LENGTH_NV = 0x851E
 
+pattern GL_VERTEX_ARRAY_RANGE_NV  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_ARRAY_RANGE_NV = 0x851D
 
+pattern GL_VERTEX_ARRAY_RANGE_POINTER_NV  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_ARRAY_RANGE_POINTER_NV = 0x8521
+
+pattern GL_VERTEX_ARRAY_RANGE_VALID_NV  :: (Eq a, Num a) => a
 
 pattern GL_VERTEX_ARRAY_RANGE_VALID_NV = 0x851F
diff --git a/generated-src/Graphics/GL/Ext/NV/VertexArrayRange2.hs b/generated-src/Graphics/GL/Ext/NV/VertexArrayRange2.hs
--- a/generated-src/Graphics/GL/Ext/NV/VertexArrayRange2.hs
+++ b/generated-src/Graphics/GL/Ext/NV/VertexArrayRange2.hs
@@ -17,4 +17,6 @@
 gl_NV_vertex_array_range2 = member "GL_NV_vertex_array_range2" extensions
 {-# NOINLINE gl_NV_vertex_array_range2 #-}
 
+pattern GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV = 0x8533
diff --git a/generated-src/Graphics/GL/Ext/NV/VertexBufferUnifiedMemory.hs b/generated-src/Graphics/GL/Ext/NV/VertexBufferUnifiedMemory.hs
--- a/generated-src/Graphics/GL/Ext/NV/VertexBufferUnifiedMemory.hs
+++ b/generated-src/Graphics/GL/Ext/NV/VertexBufferUnifiedMemory.hs
@@ -196,52 +196,102 @@
 
 {-# NOINLINE glVertexFormatNVFunPtr #-}
 
+pattern GL_COLOR_ARRAY_ADDRESS_NV  :: (Eq a, Num a) => a
+
 pattern GL_COLOR_ARRAY_ADDRESS_NV = 0x8F23
 
+pattern GL_COLOR_ARRAY_LENGTH_NV  :: (Eq a, Num a) => a
+
 pattern GL_COLOR_ARRAY_LENGTH_NV = 0x8F2D
 
+pattern GL_DRAW_INDIRECT_ADDRESS_NV  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_INDIRECT_ADDRESS_NV = 0x8F41
 
+pattern GL_DRAW_INDIRECT_LENGTH_NV  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_INDIRECT_LENGTH_NV = 0x8F42
 
+pattern GL_DRAW_INDIRECT_UNIFIED_NV  :: (Eq a, Num a) => a
+
 pattern GL_DRAW_INDIRECT_UNIFIED_NV = 0x8F40
 
+pattern GL_EDGE_FLAG_ARRAY_ADDRESS_NV  :: (Eq a, Num a) => a
+
 pattern GL_EDGE_FLAG_ARRAY_ADDRESS_NV = 0x8F26
 
+pattern GL_EDGE_FLAG_ARRAY_LENGTH_NV  :: (Eq a, Num a) => a
+
 pattern GL_EDGE_FLAG_ARRAY_LENGTH_NV = 0x8F30
 
+pattern GL_ELEMENT_ARRAY_ADDRESS_NV  :: (Eq a, Num a) => a
+
 pattern GL_ELEMENT_ARRAY_ADDRESS_NV = 0x8F29
 
+pattern GL_ELEMENT_ARRAY_LENGTH_NV  :: (Eq a, Num a) => a
+
 pattern GL_ELEMENT_ARRAY_LENGTH_NV = 0x8F33
 
+pattern GL_ELEMENT_ARRAY_UNIFIED_NV  :: (Eq a, Num a) => a
+
 pattern GL_ELEMENT_ARRAY_UNIFIED_NV = 0x8F1F
 
+pattern GL_FOG_COORD_ARRAY_ADDRESS_NV  :: (Eq a, Num a) => a
+
 pattern GL_FOG_COORD_ARRAY_ADDRESS_NV = 0x8F28
 
+pattern GL_FOG_COORD_ARRAY_LENGTH_NV  :: (Eq a, Num a) => a
+
 pattern GL_FOG_COORD_ARRAY_LENGTH_NV = 0x8F32
 
+pattern GL_INDEX_ARRAY_ADDRESS_NV  :: (Eq a, Num a) => a
+
 pattern GL_INDEX_ARRAY_ADDRESS_NV = 0x8F24
 
+pattern GL_INDEX_ARRAY_LENGTH_NV  :: (Eq a, Num a) => a
+
 pattern GL_INDEX_ARRAY_LENGTH_NV = 0x8F2E
 
+pattern GL_NORMAL_ARRAY_ADDRESS_NV  :: (Eq a, Num a) => a
+
 pattern GL_NORMAL_ARRAY_ADDRESS_NV = 0x8F22
 
+pattern GL_NORMAL_ARRAY_LENGTH_NV  :: (Eq a, Num a) => a
+
 pattern GL_NORMAL_ARRAY_LENGTH_NV = 0x8F2C
 
+pattern GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV  :: (Eq a, Num a) => a
+
 pattern GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV = 0x8F27
 
+pattern GL_SECONDARY_COLOR_ARRAY_LENGTH_NV  :: (Eq a, Num a) => a
+
 pattern GL_SECONDARY_COLOR_ARRAY_LENGTH_NV = 0x8F31
 
+pattern GL_TEXTURE_COORD_ARRAY_ADDRESS_NV  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_COORD_ARRAY_ADDRESS_NV = 0x8F25
 
+pattern GL_TEXTURE_COORD_ARRAY_LENGTH_NV  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_COORD_ARRAY_LENGTH_NV = 0x8F2F
 
+pattern GL_VERTEX_ARRAY_ADDRESS_NV  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_ARRAY_ADDRESS_NV = 0x8F21
 
+pattern GL_VERTEX_ARRAY_LENGTH_NV  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_ARRAY_LENGTH_NV = 0x8F2B
 
+pattern GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV = 0x8F20
 
+pattern GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV = 0x8F2A
+
+pattern GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV  :: (Eq a, Num a) => a
 
 pattern GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV = 0x8F1E
diff --git a/generated-src/Graphics/GL/Ext/NV/VertexProgram.hs b/generated-src/Graphics/GL/Ext/NV/VertexProgram.hs
--- a/generated-src/Graphics/GL/Ext/NV/VertexProgram.hs
+++ b/generated-src/Graphics/GL/Ext/NV/VertexProgram.hs
@@ -1130,168 +1130,334 @@
 
 {-# NOINLINE glVertexAttribs4ubvNVFunPtr #-}
 
+pattern GL_ATTRIB_ARRAY_POINTER_NV  :: (Eq a, Num a) => a
+
 pattern GL_ATTRIB_ARRAY_POINTER_NV = 0x8645
 
+pattern GL_ATTRIB_ARRAY_SIZE_NV  :: (Eq a, Num a) => a
+
 pattern GL_ATTRIB_ARRAY_SIZE_NV = 0x8623
 
+pattern GL_ATTRIB_ARRAY_STRIDE_NV  :: (Eq a, Num a) => a
+
 pattern GL_ATTRIB_ARRAY_STRIDE_NV = 0x8624
 
+pattern GL_ATTRIB_ARRAY_TYPE_NV  :: (Eq a, Num a) => a
+
 pattern GL_ATTRIB_ARRAY_TYPE_NV = 0x8625
 
+pattern GL_CURRENT_ATTRIB_NV  :: (Eq a, Num a) => a
+
 pattern GL_CURRENT_ATTRIB_NV = 0x8626
 
+pattern GL_CURRENT_MATRIX_NV  :: (Eq a, Num a) => a
+
 pattern GL_CURRENT_MATRIX_NV = 0x8641
 
+pattern GL_CURRENT_MATRIX_STACK_DEPTH_NV  :: (Eq a, Num a) => a
+
 pattern GL_CURRENT_MATRIX_STACK_DEPTH_NV = 0x8640
 
+pattern GL_IDENTITY_NV  :: (Eq a, Num a) => a
+
 pattern GL_IDENTITY_NV = 0x862A
 
+pattern GL_INVERSE_NV  :: (Eq a, Num a) => a
+
 pattern GL_INVERSE_NV = 0x862B
 
+pattern GL_INVERSE_TRANSPOSE_NV  :: (Eq a, Num a) => a
+
 pattern GL_INVERSE_TRANSPOSE_NV = 0x862D
 
+pattern GL_MAP1_VERTEX_ATTRIB0_4_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAP1_VERTEX_ATTRIB0_4_NV = 0x8660
 
+pattern GL_MAP1_VERTEX_ATTRIB10_4_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAP1_VERTEX_ATTRIB10_4_NV = 0x866A
 
+pattern GL_MAP1_VERTEX_ATTRIB11_4_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAP1_VERTEX_ATTRIB11_4_NV = 0x866B
 
+pattern GL_MAP1_VERTEX_ATTRIB12_4_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAP1_VERTEX_ATTRIB12_4_NV = 0x866C
 
+pattern GL_MAP1_VERTEX_ATTRIB13_4_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAP1_VERTEX_ATTRIB13_4_NV = 0x866D
 
+pattern GL_MAP1_VERTEX_ATTRIB14_4_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAP1_VERTEX_ATTRIB14_4_NV = 0x866E
 
+pattern GL_MAP1_VERTEX_ATTRIB15_4_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAP1_VERTEX_ATTRIB15_4_NV = 0x866F
 
+pattern GL_MAP1_VERTEX_ATTRIB1_4_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAP1_VERTEX_ATTRIB1_4_NV = 0x8661
 
+pattern GL_MAP1_VERTEX_ATTRIB2_4_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAP1_VERTEX_ATTRIB2_4_NV = 0x8662
 
+pattern GL_MAP1_VERTEX_ATTRIB3_4_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAP1_VERTEX_ATTRIB3_4_NV = 0x8663
 
+pattern GL_MAP1_VERTEX_ATTRIB4_4_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAP1_VERTEX_ATTRIB4_4_NV = 0x8664
 
+pattern GL_MAP1_VERTEX_ATTRIB5_4_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAP1_VERTEX_ATTRIB5_4_NV = 0x8665
 
+pattern GL_MAP1_VERTEX_ATTRIB6_4_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAP1_VERTEX_ATTRIB6_4_NV = 0x8666
 
+pattern GL_MAP1_VERTEX_ATTRIB7_4_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAP1_VERTEX_ATTRIB7_4_NV = 0x8667
 
+pattern GL_MAP1_VERTEX_ATTRIB8_4_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAP1_VERTEX_ATTRIB8_4_NV = 0x8668
 
+pattern GL_MAP1_VERTEX_ATTRIB9_4_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAP1_VERTEX_ATTRIB9_4_NV = 0x8669
 
+pattern GL_MAP2_VERTEX_ATTRIB0_4_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAP2_VERTEX_ATTRIB0_4_NV = 0x8670
 
+pattern GL_MAP2_VERTEX_ATTRIB10_4_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAP2_VERTEX_ATTRIB10_4_NV = 0x867A
 
+pattern GL_MAP2_VERTEX_ATTRIB11_4_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAP2_VERTEX_ATTRIB11_4_NV = 0x867B
 
+pattern GL_MAP2_VERTEX_ATTRIB12_4_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAP2_VERTEX_ATTRIB12_4_NV = 0x867C
 
+pattern GL_MAP2_VERTEX_ATTRIB13_4_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAP2_VERTEX_ATTRIB13_4_NV = 0x867D
 
+pattern GL_MAP2_VERTEX_ATTRIB14_4_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAP2_VERTEX_ATTRIB14_4_NV = 0x867E
 
+pattern GL_MAP2_VERTEX_ATTRIB15_4_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAP2_VERTEX_ATTRIB15_4_NV = 0x867F
 
+pattern GL_MAP2_VERTEX_ATTRIB1_4_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAP2_VERTEX_ATTRIB1_4_NV = 0x8671
 
+pattern GL_MAP2_VERTEX_ATTRIB2_4_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAP2_VERTEX_ATTRIB2_4_NV = 0x8672
 
+pattern GL_MAP2_VERTEX_ATTRIB3_4_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAP2_VERTEX_ATTRIB3_4_NV = 0x8673
 
+pattern GL_MAP2_VERTEX_ATTRIB4_4_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAP2_VERTEX_ATTRIB4_4_NV = 0x8674
 
+pattern GL_MAP2_VERTEX_ATTRIB5_4_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAP2_VERTEX_ATTRIB5_4_NV = 0x8675
 
+pattern GL_MAP2_VERTEX_ATTRIB6_4_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAP2_VERTEX_ATTRIB6_4_NV = 0x8676
 
+pattern GL_MAP2_VERTEX_ATTRIB7_4_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAP2_VERTEX_ATTRIB7_4_NV = 0x8677
 
+pattern GL_MAP2_VERTEX_ATTRIB8_4_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAP2_VERTEX_ATTRIB8_4_NV = 0x8678
 
+pattern GL_MAP2_VERTEX_ATTRIB9_4_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAP2_VERTEX_ATTRIB9_4_NV = 0x8679
 
+pattern GL_MATRIX0_NV  :: (Eq a, Num a) => a
+
 pattern GL_MATRIX0_NV = 0x8630
 
+pattern GL_MATRIX1_NV  :: (Eq a, Num a) => a
+
 pattern GL_MATRIX1_NV = 0x8631
 
+pattern GL_MATRIX2_NV  :: (Eq a, Num a) => a
+
 pattern GL_MATRIX2_NV = 0x8632
 
+pattern GL_MATRIX3_NV  :: (Eq a, Num a) => a
+
 pattern GL_MATRIX3_NV = 0x8633
 
+pattern GL_MATRIX4_NV  :: (Eq a, Num a) => a
+
 pattern GL_MATRIX4_NV = 0x8634
 
+pattern GL_MATRIX5_NV  :: (Eq a, Num a) => a
+
 pattern GL_MATRIX5_NV = 0x8635
 
+pattern GL_MATRIX6_NV  :: (Eq a, Num a) => a
+
 pattern GL_MATRIX6_NV = 0x8636
 
+pattern GL_MATRIX7_NV  :: (Eq a, Num a) => a
+
 pattern GL_MATRIX7_NV = 0x8637
 
+pattern GL_MAX_TRACK_MATRICES_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAX_TRACK_MATRICES_NV = 0x862F
 
+pattern GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV = 0x862E
 
+pattern GL_MODELVIEW_PROJECTION_NV  :: (Eq a, Num a) => a
+
 pattern GL_MODELVIEW_PROJECTION_NV = 0x8629
 
+pattern GL_PROGRAM_ERROR_POSITION_NV  :: (Eq a, Num a) => a
+
 pattern GL_PROGRAM_ERROR_POSITION_NV = 0x864B
 
+pattern GL_PROGRAM_LENGTH_NV  :: (Eq a, Num a) => a
+
 pattern GL_PROGRAM_LENGTH_NV = 0x8627
 
+pattern GL_PROGRAM_PARAMETER_NV  :: (Eq a, Num a) => a
+
 pattern GL_PROGRAM_PARAMETER_NV = 0x8644
 
+pattern GL_PROGRAM_RESIDENT_NV  :: (Eq a, Num a) => a
+
 pattern GL_PROGRAM_RESIDENT_NV = 0x8647
 
+pattern GL_PROGRAM_STRING_NV  :: (Eq a, Num a) => a
+
 pattern GL_PROGRAM_STRING_NV = 0x8628
 
+pattern GL_PROGRAM_TARGET_NV  :: (Eq a, Num a) => a
+
 pattern GL_PROGRAM_TARGET_NV = 0x8646
 
+pattern GL_TRACK_MATRIX_NV  :: (Eq a, Num a) => a
+
 pattern GL_TRACK_MATRIX_NV = 0x8648
 
+pattern GL_TRACK_MATRIX_TRANSFORM_NV  :: (Eq a, Num a) => a
+
 pattern GL_TRACK_MATRIX_TRANSFORM_NV = 0x8649
 
+pattern GL_TRANSPOSE_NV  :: (Eq a, Num a) => a
+
 pattern GL_TRANSPOSE_NV = 0x862C
 
+pattern GL_VERTEX_ATTRIB_ARRAY0_NV  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_ATTRIB_ARRAY0_NV = 0x8650
 
+pattern GL_VERTEX_ATTRIB_ARRAY10_NV  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_ATTRIB_ARRAY10_NV = 0x865A
 
+pattern GL_VERTEX_ATTRIB_ARRAY11_NV  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_ATTRIB_ARRAY11_NV = 0x865B
 
+pattern GL_VERTEX_ATTRIB_ARRAY12_NV  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_ATTRIB_ARRAY12_NV = 0x865C
 
+pattern GL_VERTEX_ATTRIB_ARRAY13_NV  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_ATTRIB_ARRAY13_NV = 0x865D
 
+pattern GL_VERTEX_ATTRIB_ARRAY14_NV  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_ATTRIB_ARRAY14_NV = 0x865E
 
+pattern GL_VERTEX_ATTRIB_ARRAY15_NV  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_ATTRIB_ARRAY15_NV = 0x865F
 
+pattern GL_VERTEX_ATTRIB_ARRAY1_NV  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_ATTRIB_ARRAY1_NV = 0x8651
 
+pattern GL_VERTEX_ATTRIB_ARRAY2_NV  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_ATTRIB_ARRAY2_NV = 0x8652
 
+pattern GL_VERTEX_ATTRIB_ARRAY3_NV  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_ATTRIB_ARRAY3_NV = 0x8653
 
+pattern GL_VERTEX_ATTRIB_ARRAY4_NV  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_ATTRIB_ARRAY4_NV = 0x8654
 
+pattern GL_VERTEX_ATTRIB_ARRAY5_NV  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_ATTRIB_ARRAY5_NV = 0x8655
 
+pattern GL_VERTEX_ATTRIB_ARRAY6_NV  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_ATTRIB_ARRAY6_NV = 0x8656
 
+pattern GL_VERTEX_ATTRIB_ARRAY7_NV  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_ATTRIB_ARRAY7_NV = 0x8657
 
+pattern GL_VERTEX_ATTRIB_ARRAY8_NV  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_ATTRIB_ARRAY8_NV = 0x8658
 
+pattern GL_VERTEX_ATTRIB_ARRAY9_NV  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_ATTRIB_ARRAY9_NV = 0x8659
 
+pattern GL_VERTEX_PROGRAM_BINDING_NV  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_PROGRAM_BINDING_NV = 0x864A
 
+pattern GL_VERTEX_PROGRAM_NV  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_PROGRAM_NV = 0x8620
 
+pattern GL_VERTEX_PROGRAM_POINT_SIZE_NV  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_PROGRAM_POINT_SIZE_NV = 0x8642
 
+pattern GL_VERTEX_PROGRAM_TWO_SIDE_NV  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_PROGRAM_TWO_SIDE_NV = 0x8643
+
+pattern GL_VERTEX_STATE_PROGRAM_NV  :: (Eq a, Num a) => a
 
 pattern GL_VERTEX_STATE_PROGRAM_NV = 0x8621
diff --git a/generated-src/Graphics/GL/Ext/NV/VertexProgram4.hs b/generated-src/Graphics/GL/Ext/NV/VertexProgram4.hs
--- a/generated-src/Graphics/GL/Ext/NV/VertexProgram4.hs
+++ b/generated-src/Graphics/GL/Ext/NV/VertexProgram4.hs
@@ -396,4 +396,6 @@
 
 {-# NOINLINE glVertexAttribIPointerEXTFunPtr #-}
 
+pattern GL_VERTEX_ATTRIB_ARRAY_INTEGER_NV  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_ATTRIB_ARRAY_INTEGER_NV = 0x88FD
diff --git a/generated-src/Graphics/GL/Ext/NV/VideoCapture.hs b/generated-src/Graphics/GL/Ext/NV/VideoCapture.hs
--- a/generated-src/Graphics/GL/Ext/NV/VideoCapture.hs
+++ b/generated-src/Graphics/GL/Ext/NV/VideoCapture.hs
@@ -210,60 +210,118 @@
 
 {-# NOINLINE glVideoCaptureStreamParameterivNVFunPtr #-}
 
+pattern GL_FAILURE_NV  :: (Eq a, Num a) => a
+
 pattern GL_FAILURE_NV = 0x9030
 
+pattern GL_FIELD_LOWER_NV  :: (Eq a, Num a) => a
+
 pattern GL_FIELD_LOWER_NV = 0x9023
 
+pattern GL_FIELD_UPPER_NV  :: (Eq a, Num a) => a
+
 pattern GL_FIELD_UPPER_NV = 0x9022
 
+pattern GL_LAST_VIDEO_CAPTURE_STATUS_NV  :: (Eq a, Num a) => a
+
 pattern GL_LAST_VIDEO_CAPTURE_STATUS_NV = 0x9027
 
+pattern GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV  :: (Eq a, Num a) => a
+
 pattern GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV = 0x9025
 
+pattern GL_NUM_VIDEO_CAPTURE_STREAMS_NV  :: (Eq a, Num a) => a
+
 pattern GL_NUM_VIDEO_CAPTURE_STREAMS_NV = 0x9024
 
+pattern GL_PARTIAL_SUCCESS_NV  :: (Eq a, Num a) => a
+
 pattern GL_PARTIAL_SUCCESS_NV = 0x902E
 
+pattern GL_SUCCESS_NV  :: (Eq a, Num a) => a
+
 pattern GL_SUCCESS_NV = 0x902F
 
+pattern GL_VIDEO_BUFFER_BINDING_NV  :: (Eq a, Num a) => a
+
 pattern GL_VIDEO_BUFFER_BINDING_NV = 0x9021
 
+pattern GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV  :: (Eq a, Num a) => a
+
 pattern GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV = 0x902D
 
+pattern GL_VIDEO_BUFFER_NV  :: (Eq a, Num a) => a
+
 pattern GL_VIDEO_BUFFER_NV = 0x9020
 
+pattern GL_VIDEO_BUFFER_PITCH_NV  :: (Eq a, Num a) => a
+
 pattern GL_VIDEO_BUFFER_PITCH_NV = 0x9028
 
+pattern GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV  :: (Eq a, Num a) => a
+
 pattern GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV = 0x903B
 
+pattern GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV  :: (Eq a, Num a) => a
+
 pattern GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV = 0x903A
 
+pattern GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV  :: (Eq a, Num a) => a
+
 pattern GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV = 0x9039
 
+pattern GL_VIDEO_CAPTURE_FRAME_WIDTH_NV  :: (Eq a, Num a) => a
+
 pattern GL_VIDEO_CAPTURE_FRAME_WIDTH_NV = 0x9038
 
+pattern GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV  :: (Eq a, Num a) => a
+
 pattern GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV = 0x903C
 
+pattern GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV  :: (Eq a, Num a) => a
+
 pattern GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV = 0x9026
 
+pattern GL_VIDEO_COLOR_CONVERSION_MATRIX_NV  :: (Eq a, Num a) => a
+
 pattern GL_VIDEO_COLOR_CONVERSION_MATRIX_NV = 0x9029
 
+pattern GL_VIDEO_COLOR_CONVERSION_MAX_NV  :: (Eq a, Num a) => a
+
 pattern GL_VIDEO_COLOR_CONVERSION_MAX_NV = 0x902A
 
+pattern GL_VIDEO_COLOR_CONVERSION_MIN_NV  :: (Eq a, Num a) => a
+
 pattern GL_VIDEO_COLOR_CONVERSION_MIN_NV = 0x902B
 
+pattern GL_VIDEO_COLOR_CONVERSION_OFFSET_NV  :: (Eq a, Num a) => a
+
 pattern GL_VIDEO_COLOR_CONVERSION_OFFSET_NV = 0x902C
 
+pattern GL_YCBAYCR8A_4224_NV  :: (Eq a, Num a) => a
+
 pattern GL_YCBAYCR8A_4224_NV = 0x9032
 
+pattern GL_YCBYCR8_422_NV  :: (Eq a, Num a) => a
+
 pattern GL_YCBYCR8_422_NV = 0x9031
 
+pattern GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV  :: (Eq a, Num a) => a
+
 pattern GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV = 0x9036
 
+pattern GL_Z4Y12Z4CB12Z4CR12_444_NV  :: (Eq a, Num a) => a
+
 pattern GL_Z4Y12Z4CB12Z4CR12_444_NV = 0x9037
 
+pattern GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV  :: (Eq a, Num a) => a
+
 pattern GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV = 0x9035
 
+pattern GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV  :: (Eq a, Num a) => a
+
 pattern GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV = 0x9034
+
+pattern GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV  :: (Eq a, Num a) => a
 
 pattern GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV = 0x9033
diff --git a/generated-src/Graphics/GL/Ext/NV/ViewportArray.hs b/generated-src/Graphics/GL/Ext/NV/ViewportArray.hs
--- a/generated-src/Graphics/GL/Ext/NV/ViewportArray.hs
+++ b/generated-src/Graphics/GL/Ext/NV/ViewportArray.hs
@@ -206,10 +206,18 @@
 
 {-# NOINLINE glViewportIndexedfvNVFunPtr #-}
 
+pattern GL_MAX_VIEWPORTS_NV  :: (Eq a, Num a) => a
+
 pattern GL_MAX_VIEWPORTS_NV = 0x825B
 
+pattern GL_VIEWPORT_BOUNDS_RANGE_NV  :: (Eq a, Num a) => a
+
 pattern GL_VIEWPORT_BOUNDS_RANGE_NV = 0x825D
 
+pattern GL_VIEWPORT_INDEX_PROVOKING_VERTEX_NV  :: (Eq a, Num a) => a
+
 pattern GL_VIEWPORT_INDEX_PROVOKING_VERTEX_NV = 0x825F
+
+pattern GL_VIEWPORT_SUBPIXEL_BITS_NV  :: (Eq a, Num a) => a
 
 pattern GL_VIEWPORT_SUBPIXEL_BITS_NV = 0x825C
diff --git a/generated-src/Graphics/GL/Ext/NV/ViewportSwizzle.hs b/generated-src/Graphics/GL/Ext/NV/ViewportSwizzle.hs
--- a/generated-src/Graphics/GL/Ext/NV/ViewportSwizzle.hs
+++ b/generated-src/Graphics/GL/Ext/NV/ViewportSwizzle.hs
@@ -45,26 +45,50 @@
 
 {-# NOINLINE glViewportSwizzleNVFunPtr #-}
 
+pattern GL_VIEWPORT_SWIZZLE_NEGATIVE_W_NV  :: (Eq a, Num a) => a
+
 pattern GL_VIEWPORT_SWIZZLE_NEGATIVE_W_NV = 0x9357
 
+pattern GL_VIEWPORT_SWIZZLE_NEGATIVE_X_NV  :: (Eq a, Num a) => a
+
 pattern GL_VIEWPORT_SWIZZLE_NEGATIVE_X_NV = 0x9351
 
+pattern GL_VIEWPORT_SWIZZLE_NEGATIVE_Y_NV  :: (Eq a, Num a) => a
+
 pattern GL_VIEWPORT_SWIZZLE_NEGATIVE_Y_NV = 0x9353
 
+pattern GL_VIEWPORT_SWIZZLE_NEGATIVE_Z_NV  :: (Eq a, Num a) => a
+
 pattern GL_VIEWPORT_SWIZZLE_NEGATIVE_Z_NV = 0x9355
 
+pattern GL_VIEWPORT_SWIZZLE_POSITIVE_W_NV  :: (Eq a, Num a) => a
+
 pattern GL_VIEWPORT_SWIZZLE_POSITIVE_W_NV = 0x9356
 
+pattern GL_VIEWPORT_SWIZZLE_POSITIVE_X_NV  :: (Eq a, Num a) => a
+
 pattern GL_VIEWPORT_SWIZZLE_POSITIVE_X_NV = 0x9350
 
+pattern GL_VIEWPORT_SWIZZLE_POSITIVE_Y_NV  :: (Eq a, Num a) => a
+
 pattern GL_VIEWPORT_SWIZZLE_POSITIVE_Y_NV = 0x9352
 
+pattern GL_VIEWPORT_SWIZZLE_POSITIVE_Z_NV  :: (Eq a, Num a) => a
+
 pattern GL_VIEWPORT_SWIZZLE_POSITIVE_Z_NV = 0x9354
 
+pattern GL_VIEWPORT_SWIZZLE_W_NV  :: (Eq a, Num a) => a
+
 pattern GL_VIEWPORT_SWIZZLE_W_NV = 0x935B
 
+pattern GL_VIEWPORT_SWIZZLE_X_NV  :: (Eq a, Num a) => a
+
 pattern GL_VIEWPORT_SWIZZLE_X_NV = 0x9358
 
+pattern GL_VIEWPORT_SWIZZLE_Y_NV  :: (Eq a, Num a) => a
+
 pattern GL_VIEWPORT_SWIZZLE_Y_NV = 0x9359
+
+pattern GL_VIEWPORT_SWIZZLE_Z_NV  :: (Eq a, Num a) => a
 
 pattern GL_VIEWPORT_SWIZZLE_Z_NV = 0x935A
diff --git a/generated-src/Graphics/GL/Ext/NVX/GpuMemoryInfo.hs b/generated-src/Graphics/GL/Ext/NVX/GpuMemoryInfo.hs
--- a/generated-src/Graphics/GL/Ext/NVX/GpuMemoryInfo.hs
+++ b/generated-src/Graphics/GL/Ext/NVX/GpuMemoryInfo.hs
@@ -21,12 +21,22 @@
 gl_NVX_gpu_memory_info = member "GL_NVX_gpu_memory_info" extensions
 {-# NOINLINE gl_NVX_gpu_memory_info #-}
 
+pattern GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX  :: (Eq a, Num a) => a
+
 pattern GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX = 0x9049
 
+pattern GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX  :: (Eq a, Num a) => a
+
 pattern GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX = 0x9047
 
+pattern GL_GPU_MEMORY_INFO_EVICTED_MEMORY_NVX  :: (Eq a, Num a) => a
+
 pattern GL_GPU_MEMORY_INFO_EVICTED_MEMORY_NVX = 0x904B
 
+pattern GL_GPU_MEMORY_INFO_EVICTION_COUNT_NVX  :: (Eq a, Num a) => a
+
 pattern GL_GPU_MEMORY_INFO_EVICTION_COUNT_NVX = 0x904A
+
+pattern GL_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX  :: (Eq a, Num a) => a
 
 pattern GL_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX = 0x9048
diff --git a/generated-src/Graphics/GL/Ext/OES/BlendEquationSeparate.hs b/generated-src/Graphics/GL/Ext/OES/BlendEquationSeparate.hs
--- a/generated-src/Graphics/GL/Ext/OES/BlendEquationSeparate.hs
+++ b/generated-src/Graphics/GL/Ext/OES/BlendEquationSeparate.hs
@@ -35,6 +35,10 @@
 
 {-# NOINLINE glBlendEquationSeparateOESFunPtr #-}
 
+pattern GL_BLEND_EQUATION_ALPHA_OES  :: (Eq a, Num a) => a
+
 pattern GL_BLEND_EQUATION_ALPHA_OES = 0x883D
+
+pattern GL_BLEND_EQUATION_RGB_OES  :: (Eq a, Num a) => a
 
 pattern GL_BLEND_EQUATION_RGB_OES = 0x8009
diff --git a/generated-src/Graphics/GL/Ext/OES/BlendFuncSeparate.hs b/generated-src/Graphics/GL/Ext/OES/BlendFuncSeparate.hs
--- a/generated-src/Graphics/GL/Ext/OES/BlendFuncSeparate.hs
+++ b/generated-src/Graphics/GL/Ext/OES/BlendFuncSeparate.hs
@@ -37,10 +37,18 @@
 
 {-# NOINLINE glBlendFuncSeparateOESFunPtr #-}
 
+pattern GL_BLEND_DST_ALPHA_OES  :: (Eq a, Num a) => a
+
 pattern GL_BLEND_DST_ALPHA_OES = 0x80CA
 
+pattern GL_BLEND_DST_RGB_OES  :: (Eq a, Num a) => a
+
 pattern GL_BLEND_DST_RGB_OES = 0x80C8
 
+pattern GL_BLEND_SRC_ALPHA_OES  :: (Eq a, Num a) => a
+
 pattern GL_BLEND_SRC_ALPHA_OES = 0x80CB
+
+pattern GL_BLEND_SRC_RGB_OES  :: (Eq a, Num a) => a
 
 pattern GL_BLEND_SRC_RGB_OES = 0x80C9
diff --git a/generated-src/Graphics/GL/Ext/OES/BlendSubtract.hs b/generated-src/Graphics/GL/Ext/OES/BlendSubtract.hs
--- a/generated-src/Graphics/GL/Ext/OES/BlendSubtract.hs
+++ b/generated-src/Graphics/GL/Ext/OES/BlendSubtract.hs
@@ -37,10 +37,18 @@
 
 {-# NOINLINE glBlendEquationOESFunPtr #-}
 
+pattern GL_BLEND_EQUATION_OES  :: (Eq a, Num a) => a
+
 pattern GL_BLEND_EQUATION_OES = 0x8009
 
+pattern GL_FUNC_ADD_OES  :: (Eq a, Num a) => a
+
 pattern GL_FUNC_ADD_OES = 0x8006
 
+pattern GL_FUNC_REVERSE_SUBTRACT_OES  :: (Eq a, Num a) => a
+
 pattern GL_FUNC_REVERSE_SUBTRACT_OES = 0x800B
+
+pattern GL_FUNC_SUBTRACT_OES  :: (Eq a, Num a) => a
 
 pattern GL_FUNC_SUBTRACT_OES = 0x800A
diff --git a/generated-src/Graphics/GL/Ext/OES/CompressedETC1RGB8Texture.hs b/generated-src/Graphics/GL/Ext/OES/CompressedETC1RGB8Texture.hs
--- a/generated-src/Graphics/GL/Ext/OES/CompressedETC1RGB8Texture.hs
+++ b/generated-src/Graphics/GL/Ext/OES/CompressedETC1RGB8Texture.hs
@@ -17,4 +17,6 @@
 gl_OES_compressed_ETC1_RGB8_texture = member "GL_OES_compressed_ETC1_RGB8_texture" extensions
 {-# NOINLINE gl_OES_compressed_ETC1_RGB8_texture #-}
 
+pattern GL_ETC1_RGB8_OES  :: (Eq a, Num a) => a
+
 pattern GL_ETC1_RGB8_OES = 0x8D64
diff --git a/generated-src/Graphics/GL/Ext/OES/CompressedPalettedTexture.hs b/generated-src/Graphics/GL/Ext/OES/CompressedPalettedTexture.hs
--- a/generated-src/Graphics/GL/Ext/OES/CompressedPalettedTexture.hs
+++ b/generated-src/Graphics/GL/Ext/OES/CompressedPalettedTexture.hs
@@ -26,22 +26,42 @@
 gl_OES_compressed_paletted_texture = member "GL_OES_compressed_paletted_texture" extensions
 {-# NOINLINE gl_OES_compressed_paletted_texture #-}
 
+pattern GL_PALETTE4_R5_G6_B5_OES  :: (Eq a, Num a) => a
+
 pattern GL_PALETTE4_R5_G6_B5_OES = 0x8B92
 
+pattern GL_PALETTE4_RGB5_A1_OES  :: (Eq a, Num a) => a
+
 pattern GL_PALETTE4_RGB5_A1_OES = 0x8B94
 
+pattern GL_PALETTE4_RGB8_OES  :: (Eq a, Num a) => a
+
 pattern GL_PALETTE4_RGB8_OES = 0x8B90
 
+pattern GL_PALETTE4_RGBA4_OES  :: (Eq a, Num a) => a
+
 pattern GL_PALETTE4_RGBA4_OES = 0x8B93
 
+pattern GL_PALETTE4_RGBA8_OES  :: (Eq a, Num a) => a
+
 pattern GL_PALETTE4_RGBA8_OES = 0x8B91
 
+pattern GL_PALETTE8_R5_G6_B5_OES  :: (Eq a, Num a) => a
+
 pattern GL_PALETTE8_R5_G6_B5_OES = 0x8B97
 
+pattern GL_PALETTE8_RGB5_A1_OES  :: (Eq a, Num a) => a
+
 pattern GL_PALETTE8_RGB5_A1_OES = 0x8B99
 
+pattern GL_PALETTE8_RGB8_OES  :: (Eq a, Num a) => a
+
 pattern GL_PALETTE8_RGB8_OES = 0x8B95
 
+pattern GL_PALETTE8_RGBA4_OES  :: (Eq a, Num a) => a
+
 pattern GL_PALETTE8_RGBA4_OES = 0x8B98
+
+pattern GL_PALETTE8_RGBA8_OES  :: (Eq a, Num a) => a
 
 pattern GL_PALETTE8_RGBA8_OES = 0x8B96
diff --git a/generated-src/Graphics/GL/Ext/OES/DrawTexture.hs b/generated-src/Graphics/GL/Ext/OES/DrawTexture.hs
--- a/generated-src/Graphics/GL/Ext/OES/DrawTexture.hs
+++ b/generated-src/Graphics/GL/Ext/OES/DrawTexture.hs
@@ -118,4 +118,6 @@
 
 {-# NOINLINE glDrawTexxvOESFunPtr #-}
 
+pattern GL_TEXTURE_CROP_RECT_OES  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_CROP_RECT_OES = 0x8B9D
diff --git a/generated-src/Graphics/GL/Ext/OES/EGLImageExternal.hs b/generated-src/Graphics/GL/Ext/OES/EGLImageExternal.hs
--- a/generated-src/Graphics/GL/Ext/OES/EGLImageExternal.hs
+++ b/generated-src/Graphics/GL/Ext/OES/EGLImageExternal.hs
@@ -21,4 +21,6 @@
 gl_OES_EGL_image_external = member "GL_OES_EGL_image_external" extensions
 {-# NOINLINE gl_OES_EGL_image_external #-}
 
+pattern GL_SAMPLER_EXTERNAL_OES  :: (Eq a, Num a) => a
+
 pattern GL_SAMPLER_EXTERNAL_OES = 0x8D66
diff --git a/generated-src/Graphics/GL/Ext/OES/FixedPoint.hs b/generated-src/Graphics/GL/Ext/OES/FixedPoint.hs
--- a/generated-src/Graphics/GL/Ext/OES/FixedPoint.hs
+++ b/generated-src/Graphics/GL/Ext/OES/FixedPoint.hs
@@ -1412,4 +1412,6 @@
 
 {-# NOINLINE glVertex4xvOESFunPtr #-}
 
+pattern GL_FIXED_OES  :: (Eq a, Num a) => a
+
 pattern GL_FIXED_OES = 0x140C
diff --git a/generated-src/Graphics/GL/Ext/OES/FramebufferObject.hs b/generated-src/Graphics/GL/Ext/OES/FramebufferObject.hs
--- a/generated-src/Graphics/GL/Ext/OES/FramebufferObject.hs
+++ b/generated-src/Graphics/GL/Ext/OES/FramebufferObject.hs
@@ -247,60 +247,118 @@
 
 {-# NOINLINE glRenderbufferStorageOESFunPtr #-}
 
+pattern GL_COLOR_ATTACHMENT0_OES  :: (Eq a, Num a) => a
+
 pattern GL_COLOR_ATTACHMENT0_OES = 0x8CE0
 
+pattern GL_DEPTH_ATTACHMENT_OES  :: (Eq a, Num a) => a
+
 pattern GL_DEPTH_ATTACHMENT_OES = 0x8D00
 
+pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES  :: (Eq a, Num a) => a
+
 pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES = 0x8CD1
 
+pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES  :: (Eq a, Num a) => a
+
 pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES = 0x8CD0
 
+pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES  :: (Eq a, Num a) => a
+
 pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES = 0x8CD3
 
+pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES  :: (Eq a, Num a) => a
+
 pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES = 0x8CD2
 
+pattern GL_FRAMEBUFFER_BINDING_OES  :: (Eq a, Num a) => a
+
 pattern GL_FRAMEBUFFER_BINDING_OES = 0x8CA6
 
+pattern GL_FRAMEBUFFER_COMPLETE_OES  :: (Eq a, Num a) => a
+
 pattern GL_FRAMEBUFFER_COMPLETE_OES = 0x8CD5
 
+pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES  :: (Eq a, Num a) => a
+
 pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES = 0x8CD6
 
+pattern GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES  :: (Eq a, Num a) => a
+
 pattern GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES = 0x8CD9
 
+pattern GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES  :: (Eq a, Num a) => a
+
 pattern GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES = 0x8CDA
 
+pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES  :: (Eq a, Num a) => a
+
 pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES = 0x8CD7
 
+pattern GL_FRAMEBUFFER_OES  :: (Eq a, Num a) => a
+
 pattern GL_FRAMEBUFFER_OES = 0x8D40
 
+pattern GL_FRAMEBUFFER_UNSUPPORTED_OES  :: (Eq a, Num a) => a
+
 pattern GL_FRAMEBUFFER_UNSUPPORTED_OES = 0x8CDD
 
+pattern GL_INVALID_FRAMEBUFFER_OPERATION_OES  :: (Eq a, Num a) => a
+
 pattern GL_INVALID_FRAMEBUFFER_OPERATION_OES = 0x0506
 
+pattern GL_MAX_RENDERBUFFER_SIZE_OES  :: (Eq a, Num a) => a
+
 pattern GL_MAX_RENDERBUFFER_SIZE_OES = 0x84E8
 
+pattern GL_NONE_OES  :: (Eq a, Num a) => a
+
 pattern GL_NONE_OES = 0
 
+pattern GL_RENDERBUFFER_ALPHA_SIZE_OES  :: (Eq a, Num a) => a
+
 pattern GL_RENDERBUFFER_ALPHA_SIZE_OES = 0x8D53
 
+pattern GL_RENDERBUFFER_BINDING_OES  :: (Eq a, Num a) => a
+
 pattern GL_RENDERBUFFER_BINDING_OES = 0x8CA7
 
+pattern GL_RENDERBUFFER_BLUE_SIZE_OES  :: (Eq a, Num a) => a
+
 pattern GL_RENDERBUFFER_BLUE_SIZE_OES = 0x8D52
 
+pattern GL_RENDERBUFFER_DEPTH_SIZE_OES  :: (Eq a, Num a) => a
+
 pattern GL_RENDERBUFFER_DEPTH_SIZE_OES = 0x8D54
 
+pattern GL_RENDERBUFFER_GREEN_SIZE_OES  :: (Eq a, Num a) => a
+
 pattern GL_RENDERBUFFER_GREEN_SIZE_OES = 0x8D51
 
+pattern GL_RENDERBUFFER_HEIGHT_OES  :: (Eq a, Num a) => a
+
 pattern GL_RENDERBUFFER_HEIGHT_OES = 0x8D43
 
+pattern GL_RENDERBUFFER_INTERNAL_FORMAT_OES  :: (Eq a, Num a) => a
+
 pattern GL_RENDERBUFFER_INTERNAL_FORMAT_OES = 0x8D44
 
+pattern GL_RENDERBUFFER_OES  :: (Eq a, Num a) => a
+
 pattern GL_RENDERBUFFER_OES = 0x8D41
 
+pattern GL_RENDERBUFFER_RED_SIZE_OES  :: (Eq a, Num a) => a
+
 pattern GL_RENDERBUFFER_RED_SIZE_OES = 0x8D50
 
+pattern GL_RENDERBUFFER_STENCIL_SIZE_OES  :: (Eq a, Num a) => a
+
 pattern GL_RENDERBUFFER_STENCIL_SIZE_OES = 0x8D55
 
+pattern GL_RENDERBUFFER_WIDTH_OES  :: (Eq a, Num a) => a
+
 pattern GL_RENDERBUFFER_WIDTH_OES = 0x8D42
+
+pattern GL_STENCIL_ATTACHMENT_OES  :: (Eq a, Num a) => a
 
 pattern GL_STENCIL_ATTACHMENT_OES = 0x8D20
diff --git a/generated-src/Graphics/GL/Ext/OES/GeometryShader.hs b/generated-src/Graphics/GL/Ext/OES/GeometryShader.hs
--- a/generated-src/Graphics/GL/Ext/OES/GeometryShader.hs
+++ b/generated-src/Graphics/GL/Ext/OES/GeometryShader.hs
@@ -76,68 +76,134 @@
 
 {-# NOINLINE glFramebufferTextureOESFunPtr #-}
 
+pattern GL_FIRST_VERTEX_CONVENTION_OES  :: (Eq a, Num a) => a
+
 pattern GL_FIRST_VERTEX_CONVENTION_OES = 0x8E4D
 
+pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED_OES  :: (Eq a, Num a) => a
+
 pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED_OES = 0x8DA7
 
+pattern GL_FRAMEBUFFER_DEFAULT_LAYERS_OES  :: (Eq a, Num a) => a
+
 pattern GL_FRAMEBUFFER_DEFAULT_LAYERS_OES = 0x9312
 
+pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_OES  :: (Eq a, Num a) => a
+
 pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_OES = 0x8DA8
 
+pattern GL_GEOMETRY_LINKED_INPUT_TYPE_OES  :: (Eq a, Num a) => a
+
 pattern GL_GEOMETRY_LINKED_INPUT_TYPE_OES = 0x8917
 
+pattern GL_GEOMETRY_LINKED_OUTPUT_TYPE_OES  :: (Eq a, Num a) => a
+
 pattern GL_GEOMETRY_LINKED_OUTPUT_TYPE_OES = 0x8918
 
+pattern GL_GEOMETRY_LINKED_VERTICES_OUT_OES  :: (Eq a, Num a) => a
+
 pattern GL_GEOMETRY_LINKED_VERTICES_OUT_OES = 0x8916
 
+pattern GL_GEOMETRY_SHADER_BIT_OES  :: (Eq a, Num a) => a
+
 pattern GL_GEOMETRY_SHADER_BIT_OES = 0x00000004
 
+pattern GL_GEOMETRY_SHADER_INVOCATIONS_OES  :: (Eq a, Num a) => a
+
 pattern GL_GEOMETRY_SHADER_INVOCATIONS_OES = 0x887F
 
+pattern GL_GEOMETRY_SHADER_OES  :: (Eq a, Num a) => a
+
 pattern GL_GEOMETRY_SHADER_OES = 0x8DD9
 
+pattern GL_LAST_VERTEX_CONVENTION_OES  :: (Eq a, Num a) => a
+
 pattern GL_LAST_VERTEX_CONVENTION_OES = 0x8E4E
 
+pattern GL_LAYER_PROVOKING_VERTEX_OES  :: (Eq a, Num a) => a
+
 pattern GL_LAYER_PROVOKING_VERTEX_OES = 0x825E
 
+pattern GL_LINES_ADJACENCY_OES  :: (Eq a, Num a) => a
+
 pattern GL_LINES_ADJACENCY_OES = 0x000A
 
+pattern GL_LINE_STRIP_ADJACENCY_OES  :: (Eq a, Num a) => a
+
 pattern GL_LINE_STRIP_ADJACENCY_OES = 0x000B
 
+pattern GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_OES  :: (Eq a, Num a) => a
+
 pattern GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_OES = 0x8A32
 
+pattern GL_MAX_FRAMEBUFFER_LAYERS_OES  :: (Eq a, Num a) => a
+
 pattern GL_MAX_FRAMEBUFFER_LAYERS_OES = 0x9317
 
+pattern GL_MAX_GEOMETRY_ATOMIC_COUNTERS_OES  :: (Eq a, Num a) => a
+
 pattern GL_MAX_GEOMETRY_ATOMIC_COUNTERS_OES = 0x92D5
 
+pattern GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_OES  :: (Eq a, Num a) => a
+
 pattern GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_OES = 0x92CF
 
+pattern GL_MAX_GEOMETRY_IMAGE_UNIFORMS_OES  :: (Eq a, Num a) => a
+
 pattern GL_MAX_GEOMETRY_IMAGE_UNIFORMS_OES = 0x90CD
 
+pattern GL_MAX_GEOMETRY_INPUT_COMPONENTS_OES  :: (Eq a, Num a) => a
+
 pattern GL_MAX_GEOMETRY_INPUT_COMPONENTS_OES = 0x9123
 
+pattern GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_OES  :: (Eq a, Num a) => a
+
 pattern GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_OES = 0x9124
 
+pattern GL_MAX_GEOMETRY_OUTPUT_VERTICES_OES  :: (Eq a, Num a) => a
+
 pattern GL_MAX_GEOMETRY_OUTPUT_VERTICES_OES = 0x8DE0
 
+pattern GL_MAX_GEOMETRY_SHADER_INVOCATIONS_OES  :: (Eq a, Num a) => a
+
 pattern GL_MAX_GEOMETRY_SHADER_INVOCATIONS_OES = 0x8E5A
 
+pattern GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_OES  :: (Eq a, Num a) => a
+
 pattern GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_OES = 0x90D7
 
+pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_OES  :: (Eq a, Num a) => a
+
 pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_OES = 0x8C29
 
+pattern GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_OES  :: (Eq a, Num a) => a
+
 pattern GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_OES = 0x8DE1
 
+pattern GL_MAX_GEOMETRY_UNIFORM_BLOCKS_OES  :: (Eq a, Num a) => a
+
 pattern GL_MAX_GEOMETRY_UNIFORM_BLOCKS_OES = 0x8A2C
 
+pattern GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_OES  :: (Eq a, Num a) => a
+
 pattern GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_OES = 0x8DDF
 
+pattern GL_PRIMITIVES_GENERATED_OES  :: (Eq a, Num a) => a
+
 pattern GL_PRIMITIVES_GENERATED_OES = 0x8C87
 
+pattern GL_REFERENCED_BY_GEOMETRY_SHADER_OES  :: (Eq a, Num a) => a
+
 pattern GL_REFERENCED_BY_GEOMETRY_SHADER_OES = 0x9309
 
+pattern GL_TRIANGLES_ADJACENCY_OES  :: (Eq a, Num a) => a
+
 pattern GL_TRIANGLES_ADJACENCY_OES = 0x000C
 
+pattern GL_TRIANGLE_STRIP_ADJACENCY_OES  :: (Eq a, Num a) => a
+
 pattern GL_TRIANGLE_STRIP_ADJACENCY_OES = 0x000D
+
+pattern GL_UNDEFINED_VERTEX_OES  :: (Eq a, Num a) => a
 
 pattern GL_UNDEFINED_VERTEX_OES = 0x8260
diff --git a/generated-src/Graphics/GL/Ext/OES/GetProgramBinary.hs b/generated-src/Graphics/GL/Ext/OES/GetProgramBinary.hs
--- a/generated-src/Graphics/GL/Ext/OES/GetProgramBinary.hs
+++ b/generated-src/Graphics/GL/Ext/OES/GetProgramBinary.hs
@@ -60,8 +60,14 @@
 
 {-# NOINLINE glProgramBinaryOESFunPtr #-}
 
+pattern GL_NUM_PROGRAM_BINARY_FORMATS_OES  :: (Eq a, Num a) => a
+
 pattern GL_NUM_PROGRAM_BINARY_FORMATS_OES = 0x87FE
 
+pattern GL_PROGRAM_BINARY_FORMATS_OES  :: (Eq a, Num a) => a
+
 pattern GL_PROGRAM_BINARY_FORMATS_OES = 0x87FF
+
+pattern GL_PROGRAM_BINARY_LENGTH_OES  :: (Eq a, Num a) => a
 
 pattern GL_PROGRAM_BINARY_LENGTH_OES = 0x8741
diff --git a/generated-src/Graphics/GL/Ext/OES/Mapbuffer.hs b/generated-src/Graphics/GL/Ext/OES/Mapbuffer.hs
--- a/generated-src/Graphics/GL/Ext/OES/Mapbuffer.hs
+++ b/generated-src/Graphics/GL/Ext/OES/Mapbuffer.hs
@@ -67,10 +67,18 @@
 
 {-# NOINLINE glUnmapBufferOESFunPtr #-}
 
+pattern GL_BUFFER_ACCESS_OES  :: (Eq a, Num a) => a
+
 pattern GL_BUFFER_ACCESS_OES = 0x88BB
 
+pattern GL_BUFFER_MAPPED_OES  :: (Eq a, Num a) => a
+
 pattern GL_BUFFER_MAPPED_OES = 0x88BC
 
+pattern GL_BUFFER_MAP_POINTER_OES  :: (Eq a, Num a) => a
+
 pattern GL_BUFFER_MAP_POINTER_OES = 0x88BD
+
+pattern GL_WRITE_ONLY_OES  :: (Eq a, Num a) => a
 
 pattern GL_WRITE_ONLY_OES = 0x88B9
diff --git a/generated-src/Graphics/GL/Ext/OES/MatrixGet.hs b/generated-src/Graphics/GL/Ext/OES/MatrixGet.hs
--- a/generated-src/Graphics/GL/Ext/OES/MatrixGet.hs
+++ b/generated-src/Graphics/GL/Ext/OES/MatrixGet.hs
@@ -19,8 +19,14 @@
 gl_OES_matrix_get = member "GL_OES_matrix_get" extensions
 {-# NOINLINE gl_OES_matrix_get #-}
 
+pattern GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES  :: (Eq a, Num a) => a
+
 pattern GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES = 0x898D
 
+pattern GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES  :: (Eq a, Num a) => a
+
 pattern GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES = 0x898E
+
+pattern GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES  :: (Eq a, Num a) => a
 
 pattern GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES = 0x898F
diff --git a/generated-src/Graphics/GL/Ext/OES/MatrixPalette.hs b/generated-src/Graphics/GL/Ext/OES/MatrixPalette.hs
--- a/generated-src/Graphics/GL/Ext/OES/MatrixPalette.hs
+++ b/generated-src/Graphics/GL/Ext/OES/MatrixPalette.hs
@@ -89,34 +89,66 @@
 
 {-# NOINLINE glWeightPointerOESFunPtr #-}
 
+pattern GL_CURRENT_PALETTE_MATRIX_OES  :: (Eq a, Num a) => a
+
 pattern GL_CURRENT_PALETTE_MATRIX_OES = 0x8843
 
+pattern GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES  :: (Eq a, Num a) => a
+
 pattern GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES = 0x8B9E
 
+pattern GL_MATRIX_INDEX_ARRAY_OES  :: (Eq a, Num a) => a
+
 pattern GL_MATRIX_INDEX_ARRAY_OES = 0x8844
 
+pattern GL_MATRIX_INDEX_ARRAY_POINTER_OES  :: (Eq a, Num a) => a
+
 pattern GL_MATRIX_INDEX_ARRAY_POINTER_OES = 0x8849
 
+pattern GL_MATRIX_INDEX_ARRAY_SIZE_OES  :: (Eq a, Num a) => a
+
 pattern GL_MATRIX_INDEX_ARRAY_SIZE_OES = 0x8846
 
+pattern GL_MATRIX_INDEX_ARRAY_STRIDE_OES  :: (Eq a, Num a) => a
+
 pattern GL_MATRIX_INDEX_ARRAY_STRIDE_OES = 0x8848
 
+pattern GL_MATRIX_INDEX_ARRAY_TYPE_OES  :: (Eq a, Num a) => a
+
 pattern GL_MATRIX_INDEX_ARRAY_TYPE_OES = 0x8847
 
+pattern GL_MATRIX_PALETTE_OES  :: (Eq a, Num a) => a
+
 pattern GL_MATRIX_PALETTE_OES = 0x8840
 
+pattern GL_MAX_PALETTE_MATRICES_OES  :: (Eq a, Num a) => a
+
 pattern GL_MAX_PALETTE_MATRICES_OES = 0x8842
 
+pattern GL_MAX_VERTEX_UNITS_OES  :: (Eq a, Num a) => a
+
 pattern GL_MAX_VERTEX_UNITS_OES = 0x86A4
 
+pattern GL_WEIGHT_ARRAY_BUFFER_BINDING_OES  :: (Eq a, Num a) => a
+
 pattern GL_WEIGHT_ARRAY_BUFFER_BINDING_OES = 0x889E
 
+pattern GL_WEIGHT_ARRAY_OES  :: (Eq a, Num a) => a
+
 pattern GL_WEIGHT_ARRAY_OES = 0x86AD
 
+pattern GL_WEIGHT_ARRAY_POINTER_OES  :: (Eq a, Num a) => a
+
 pattern GL_WEIGHT_ARRAY_POINTER_OES = 0x86AC
 
+pattern GL_WEIGHT_ARRAY_SIZE_OES  :: (Eq a, Num a) => a
+
 pattern GL_WEIGHT_ARRAY_SIZE_OES = 0x86AB
 
+pattern GL_WEIGHT_ARRAY_STRIDE_OES  :: (Eq a, Num a) => a
+
 pattern GL_WEIGHT_ARRAY_STRIDE_OES = 0x86AA
+
+pattern GL_WEIGHT_ARRAY_TYPE_OES  :: (Eq a, Num a) => a
 
 pattern GL_WEIGHT_ARRAY_TYPE_OES = 0x86A9
diff --git a/generated-src/Graphics/GL/Ext/OES/PointSizeArray.hs b/generated-src/Graphics/GL/Ext/OES/PointSizeArray.hs
--- a/generated-src/Graphics/GL/Ext/OES/PointSizeArray.hs
+++ b/generated-src/Graphics/GL/Ext/OES/PointSizeArray.hs
@@ -40,12 +40,22 @@
 
 {-# NOINLINE glPointSizePointerOESFunPtr #-}
 
+pattern GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES  :: (Eq a, Num a) => a
+
 pattern GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES = 0x8B9F
 
+pattern GL_POINT_SIZE_ARRAY_OES  :: (Eq a, Num a) => a
+
 pattern GL_POINT_SIZE_ARRAY_OES = 0x8B9C
 
+pattern GL_POINT_SIZE_ARRAY_POINTER_OES  :: (Eq a, Num a) => a
+
 pattern GL_POINT_SIZE_ARRAY_POINTER_OES = 0x898C
 
+pattern GL_POINT_SIZE_ARRAY_STRIDE_OES  :: (Eq a, Num a) => a
+
 pattern GL_POINT_SIZE_ARRAY_STRIDE_OES = 0x898B
+
+pattern GL_POINT_SIZE_ARRAY_TYPE_OES  :: (Eq a, Num a) => a
 
 pattern GL_POINT_SIZE_ARRAY_TYPE_OES = 0x898A
diff --git a/generated-src/Graphics/GL/Ext/OES/PointSprite.hs b/generated-src/Graphics/GL/Ext/OES/PointSprite.hs
--- a/generated-src/Graphics/GL/Ext/OES/PointSprite.hs
+++ b/generated-src/Graphics/GL/Ext/OES/PointSprite.hs
@@ -18,6 +18,10 @@
 gl_OES_point_sprite = member "GL_OES_point_sprite" extensions
 {-# NOINLINE gl_OES_point_sprite #-}
 
+pattern GL_COORD_REPLACE_OES  :: (Eq a, Num a) => a
+
 pattern GL_COORD_REPLACE_OES = 0x8862
+
+pattern GL_POINT_SPRITE_OES  :: (Eq a, Num a) => a
 
 pattern GL_POINT_SPRITE_OES = 0x8861
diff --git a/generated-src/Graphics/GL/Ext/OES/PrimitiveBoundingBox.hs b/generated-src/Graphics/GL/Ext/OES/PrimitiveBoundingBox.hs
--- a/generated-src/Graphics/GL/Ext/OES/PrimitiveBoundingBox.hs
+++ b/generated-src/Graphics/GL/Ext/OES/PrimitiveBoundingBox.hs
@@ -36,4 +36,6 @@
 
 {-# NOINLINE glPrimitiveBoundingBoxOESFunPtr #-}
 
+pattern GL_PRIMITIVE_BOUNDING_BOX_OES  :: (Eq a, Num a) => a
+
 pattern GL_PRIMITIVE_BOUNDING_BOX_OES = 0x92BE
diff --git a/generated-src/Graphics/GL/Ext/OES/ReadFormat.hs b/generated-src/Graphics/GL/Ext/OES/ReadFormat.hs
--- a/generated-src/Graphics/GL/Ext/OES/ReadFormat.hs
+++ b/generated-src/Graphics/GL/Ext/OES/ReadFormat.hs
@@ -18,6 +18,10 @@
 gl_OES_read_format = member "GL_OES_read_format" extensions
 {-# NOINLINE gl_OES_read_format #-}
 
+pattern GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES  :: (Eq a, Num a) => a
+
 pattern GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES = 0x8B9B
+
+pattern GL_IMPLEMENTATION_COLOR_READ_TYPE_OES  :: (Eq a, Num a) => a
 
 pattern GL_IMPLEMENTATION_COLOR_READ_TYPE_OES = 0x8B9A
diff --git a/generated-src/Graphics/GL/Ext/OES/RequiredInternalformat.hs b/generated-src/Graphics/GL/Ext/OES/RequiredInternalformat.hs
--- a/generated-src/Graphics/GL/Ext/OES/RequiredInternalformat.hs
+++ b/generated-src/Graphics/GL/Ext/OES/RequiredInternalformat.hs
@@ -32,10 +32,18 @@
 gl_OES_required_internalformat = member "GL_OES_required_internalformat" extensions
 {-# NOINLINE gl_OES_required_internalformat #-}
 
+pattern GL_ALPHA8_OES  :: (Eq a, Num a) => a
+
 pattern GL_ALPHA8_OES = 0x803C
 
+pattern GL_LUMINANCE4_ALPHA4_OES  :: (Eq a, Num a) => a
+
 pattern GL_LUMINANCE4_ALPHA4_OES = 0x8043
 
+pattern GL_LUMINANCE8_ALPHA8_OES  :: (Eq a, Num a) => a
+
 pattern GL_LUMINANCE8_ALPHA8_OES = 0x8045
+
+pattern GL_LUMINANCE8_OES  :: (Eq a, Num a) => a
 
 pattern GL_LUMINANCE8_OES = 0x8040
diff --git a/generated-src/Graphics/GL/Ext/OES/SampleShading.hs b/generated-src/Graphics/GL/Ext/OES/SampleShading.hs
--- a/generated-src/Graphics/GL/Ext/OES/SampleShading.hs
+++ b/generated-src/Graphics/GL/Ext/OES/SampleShading.hs
@@ -39,6 +39,10 @@
 
 {-# NOINLINE glMinSampleShadingOESFunPtr #-}
 
+pattern GL_MIN_SAMPLE_SHADING_VALUE_OES  :: (Eq a, Num a) => a
+
 pattern GL_MIN_SAMPLE_SHADING_VALUE_OES = 0x8C37
+
+pattern GL_SAMPLE_SHADING_OES  :: (Eq a, Num a) => a
 
 pattern GL_SAMPLE_SHADING_OES = 0x8C36
diff --git a/generated-src/Graphics/GL/Ext/OES/ShaderMultisampleInterpolation.hs b/generated-src/Graphics/GL/Ext/OES/ShaderMultisampleInterpolation.hs
--- a/generated-src/Graphics/GL/Ext/OES/ShaderMultisampleInterpolation.hs
+++ b/generated-src/Graphics/GL/Ext/OES/ShaderMultisampleInterpolation.hs
@@ -19,8 +19,14 @@
 gl_OES_shader_multisample_interpolation = member "GL_OES_shader_multisample_interpolation" extensions
 {-# NOINLINE gl_OES_shader_multisample_interpolation #-}
 
+pattern GL_FRAGMENT_INTERPOLATION_OFFSET_BITS_OES  :: (Eq a, Num a) => a
+
 pattern GL_FRAGMENT_INTERPOLATION_OFFSET_BITS_OES = 0x8E5D
 
+pattern GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_OES  :: (Eq a, Num a) => a
+
 pattern GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_OES = 0x8E5C
+
+pattern GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_OES  :: (Eq a, Num a) => a
 
 pattern GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_OES = 0x8E5B
diff --git a/generated-src/Graphics/GL/Ext/OES/StandardDerivatives.hs b/generated-src/Graphics/GL/Ext/OES/StandardDerivatives.hs
--- a/generated-src/Graphics/GL/Ext/OES/StandardDerivatives.hs
+++ b/generated-src/Graphics/GL/Ext/OES/StandardDerivatives.hs
@@ -17,4 +17,6 @@
 gl_OES_standard_derivatives = member "GL_OES_standard_derivatives" extensions
 {-# NOINLINE gl_OES_standard_derivatives #-}
 
+pattern GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES  :: (Eq a, Num a) => a
+
 pattern GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES = 0x8B8B
diff --git a/generated-src/Graphics/GL/Ext/OES/Stencil1.hs b/generated-src/Graphics/GL/Ext/OES/Stencil1.hs
--- a/generated-src/Graphics/GL/Ext/OES/Stencil1.hs
+++ b/generated-src/Graphics/GL/Ext/OES/Stencil1.hs
@@ -17,4 +17,6 @@
 gl_OES_stencil1 = member "GL_OES_stencil1" extensions
 {-# NOINLINE gl_OES_stencil1 #-}
 
+pattern GL_STENCIL_INDEX1_OES  :: (Eq a, Num a) => a
+
 pattern GL_STENCIL_INDEX1_OES = 0x8D46
diff --git a/generated-src/Graphics/GL/Ext/OES/Stencil4.hs b/generated-src/Graphics/GL/Ext/OES/Stencil4.hs
--- a/generated-src/Graphics/GL/Ext/OES/Stencil4.hs
+++ b/generated-src/Graphics/GL/Ext/OES/Stencil4.hs
@@ -17,4 +17,6 @@
 gl_OES_stencil4 = member "GL_OES_stencil4" extensions
 {-# NOINLINE gl_OES_stencil4 #-}
 
+pattern GL_STENCIL_INDEX4_OES  :: (Eq a, Num a) => a
+
 pattern GL_STENCIL_INDEX4_OES = 0x8D47
diff --git a/generated-src/Graphics/GL/Ext/OES/StencilWrap.hs b/generated-src/Graphics/GL/Ext/OES/StencilWrap.hs
--- a/generated-src/Graphics/GL/Ext/OES/StencilWrap.hs
+++ b/generated-src/Graphics/GL/Ext/OES/StencilWrap.hs
@@ -18,6 +18,10 @@
 gl_OES_stencil_wrap = member "GL_OES_stencil_wrap" extensions
 {-# NOINLINE gl_OES_stencil_wrap #-}
 
+pattern GL_DECR_WRAP_OES  :: (Eq a, Num a) => a
+
 pattern GL_DECR_WRAP_OES = 0x8508
+
+pattern GL_INCR_WRAP_OES  :: (Eq a, Num a) => a
 
 pattern GL_INCR_WRAP_OES = 0x8507
diff --git a/generated-src/Graphics/GL/Ext/OES/SurfacelessContext.hs b/generated-src/Graphics/GL/Ext/OES/SurfacelessContext.hs
--- a/generated-src/Graphics/GL/Ext/OES/SurfacelessContext.hs
+++ b/generated-src/Graphics/GL/Ext/OES/SurfacelessContext.hs
@@ -17,4 +17,6 @@
 gl_OES_surfaceless_context = member "GL_OES_surfaceless_context" extensions
 {-# NOINLINE gl_OES_surfaceless_context #-}
 
+pattern GL_FRAMEBUFFER_UNDEFINED_OES  :: (Eq a, Num a) => a
+
 pattern GL_FRAMEBUFFER_UNDEFINED_OES = 0x8219
diff --git a/generated-src/Graphics/GL/Ext/OES/TessellationShader.hs b/generated-src/Graphics/GL/Ext/OES/TessellationShader.hs
--- a/generated-src/Graphics/GL/Ext/OES/TessellationShader.hs
+++ b/generated-src/Graphics/GL/Ext/OES/TessellationShader.hs
@@ -83,88 +83,174 @@
 
 {-# NOINLINE glPatchParameteriOESFunPtr #-}
 
+pattern GL_FRACTIONAL_EVEN_OES  :: (Eq a, Num a) => a
+
 pattern GL_FRACTIONAL_EVEN_OES = 0x8E7C
 
+pattern GL_FRACTIONAL_ODD_OES  :: (Eq a, Num a) => a
+
 pattern GL_FRACTIONAL_ODD_OES = 0x8E7B
 
+pattern GL_ISOLINES_OES  :: (Eq a, Num a) => a
+
 pattern GL_ISOLINES_OES = 0x8E7A
 
+pattern GL_IS_PER_PATCH_OES  :: (Eq a, Num a) => a
+
 pattern GL_IS_PER_PATCH_OES = 0x92E7
 
+pattern GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_OES  :: (Eq a, Num a) => a
+
 pattern GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_OES = 0x8E1E
 
+pattern GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_OES  :: (Eq a, Num a) => a
+
 pattern GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_OES = 0x8E1F
 
+pattern GL_MAX_PATCH_VERTICES_OES  :: (Eq a, Num a) => a
+
 pattern GL_MAX_PATCH_VERTICES_OES = 0x8E7D
 
+pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_OES  :: (Eq a, Num a) => a
+
 pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_OES = 0x92D3
 
+pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_OES  :: (Eq a, Num a) => a
+
 pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_OES = 0x92CD
 
+pattern GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_OES  :: (Eq a, Num a) => a
+
 pattern GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_OES = 0x90CB
 
+pattern GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_OES  :: (Eq a, Num a) => a
+
 pattern GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_OES = 0x886C
 
+pattern GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_OES  :: (Eq a, Num a) => a
+
 pattern GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_OES = 0x8E83
 
+pattern GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_OES  :: (Eq a, Num a) => a
+
 pattern GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_OES = 0x90D8
 
+pattern GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_OES  :: (Eq a, Num a) => a
+
 pattern GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_OES = 0x8E81
 
+pattern GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_OES  :: (Eq a, Num a) => a
+
 pattern GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_OES = 0x8E85
 
+pattern GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_OES  :: (Eq a, Num a) => a
+
 pattern GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_OES = 0x8E89
 
+pattern GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_OES  :: (Eq a, Num a) => a
+
 pattern GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_OES = 0x8E7F
 
+pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_OES  :: (Eq a, Num a) => a
+
 pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_OES = 0x92D4
 
+pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_OES  :: (Eq a, Num a) => a
+
 pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_OES = 0x92CE
 
+pattern GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_OES  :: (Eq a, Num a) => a
+
 pattern GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_OES = 0x90CC
 
+pattern GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_OES  :: (Eq a, Num a) => a
+
 pattern GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_OES = 0x886D
 
+pattern GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_OES  :: (Eq a, Num a) => a
+
 pattern GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_OES = 0x8E86
 
+pattern GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_OES  :: (Eq a, Num a) => a
+
 pattern GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_OES = 0x90D9
 
+pattern GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_OES  :: (Eq a, Num a) => a
+
 pattern GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_OES = 0x8E82
 
+pattern GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_OES  :: (Eq a, Num a) => a
+
 pattern GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_OES = 0x8E8A
 
+pattern GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_OES  :: (Eq a, Num a) => a
+
 pattern GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_OES = 0x8E80
 
+pattern GL_MAX_TESS_GEN_LEVEL_OES  :: (Eq a, Num a) => a
+
 pattern GL_MAX_TESS_GEN_LEVEL_OES = 0x8E7E
 
+pattern GL_MAX_TESS_PATCH_COMPONENTS_OES  :: (Eq a, Num a) => a
+
 pattern GL_MAX_TESS_PATCH_COMPONENTS_OES = 0x8E84
 
+pattern GL_PATCHES_OES  :: (Eq a, Num a) => a
+
 pattern GL_PATCHES_OES = 0x000E
 
+pattern GL_PATCH_VERTICES_OES  :: (Eq a, Num a) => a
+
 pattern GL_PATCH_VERTICES_OES = 0x8E72
 
+pattern GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED_OES  :: (Eq a, Num a) => a
+
 pattern GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED_OES = 0x8221
 
+pattern GL_QUADS_OES  :: (Eq a, Num a) => a
+
 pattern GL_QUADS_OES = 0x0007
 
+pattern GL_REFERENCED_BY_TESS_CONTROL_SHADER_OES  :: (Eq a, Num a) => a
+
 pattern GL_REFERENCED_BY_TESS_CONTROL_SHADER_OES = 0x9307
 
+pattern GL_REFERENCED_BY_TESS_EVALUATION_SHADER_OES  :: (Eq a, Num a) => a
+
 pattern GL_REFERENCED_BY_TESS_EVALUATION_SHADER_OES = 0x9308
 
+pattern GL_TESS_CONTROL_OUTPUT_VERTICES_OES  :: (Eq a, Num a) => a
+
 pattern GL_TESS_CONTROL_OUTPUT_VERTICES_OES = 0x8E75
 
+pattern GL_TESS_CONTROL_SHADER_BIT_OES  :: (Eq a, Num a) => a
+
 pattern GL_TESS_CONTROL_SHADER_BIT_OES = 0x00000008
 
+pattern GL_TESS_CONTROL_SHADER_OES  :: (Eq a, Num a) => a
+
 pattern GL_TESS_CONTROL_SHADER_OES = 0x8E88
 
+pattern GL_TESS_EVALUATION_SHADER_BIT_OES  :: (Eq a, Num a) => a
+
 pattern GL_TESS_EVALUATION_SHADER_BIT_OES = 0x00000010
 
+pattern GL_TESS_EVALUATION_SHADER_OES  :: (Eq a, Num a) => a
+
 pattern GL_TESS_EVALUATION_SHADER_OES = 0x8E87
 
+pattern GL_TESS_GEN_MODE_OES  :: (Eq a, Num a) => a
+
 pattern GL_TESS_GEN_MODE_OES = 0x8E76
 
+pattern GL_TESS_GEN_POINT_MODE_OES  :: (Eq a, Num a) => a
+
 pattern GL_TESS_GEN_POINT_MODE_OES = 0x8E79
 
+pattern GL_TESS_GEN_SPACING_OES  :: (Eq a, Num a) => a
+
 pattern GL_TESS_GEN_SPACING_OES = 0x8E77
+
+pattern GL_TESS_GEN_VERTEX_ORDER_OES  :: (Eq a, Num a) => a
 
 pattern GL_TESS_GEN_VERTEX_ORDER_OES = 0x8E78
diff --git a/generated-src/Graphics/GL/Ext/OES/Texture3D.hs b/generated-src/Graphics/GL/Ext/OES/Texture3D.hs
--- a/generated-src/Graphics/GL/Ext/OES/Texture3D.hs
+++ b/generated-src/Graphics/GL/Ext/OES/Texture3D.hs
@@ -119,14 +119,26 @@
 
 {-# NOINLINE glTexSubImage3DOESFunPtr #-}
 
+pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES  :: (Eq a, Num a) => a
+
 pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES = 0x8CD4
 
+pattern GL_MAX_3D_TEXTURE_SIZE_OES  :: (Eq a, Num a) => a
+
 pattern GL_MAX_3D_TEXTURE_SIZE_OES = 0x8073
 
+pattern GL_SAMPLER_3D_OES  :: (Eq a, Num a) => a
+
 pattern GL_SAMPLER_3D_OES = 0x8B5F
 
+pattern GL_TEXTURE_3D_OES  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_3D_OES = 0x806F
 
+pattern GL_TEXTURE_BINDING_3D_OES  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_BINDING_3D_OES = 0x806A
+
+pattern GL_TEXTURE_WRAP_R_OES  :: (Eq a, Num a) => a
 
 pattern GL_TEXTURE_WRAP_R_OES = 0x8072
diff --git a/generated-src/Graphics/GL/Ext/OES/TextureBorderClamp.hs b/generated-src/Graphics/GL/Ext/OES/TextureBorderClamp.hs
--- a/generated-src/Graphics/GL/Ext/OES/TextureBorderClamp.hs
+++ b/generated-src/Graphics/GL/Ext/OES/TextureBorderClamp.hs
@@ -167,6 +167,10 @@
 
 {-# NOINLINE glTexParameterIuivOESFunPtr #-}
 
+pattern GL_CLAMP_TO_BORDER_OES  :: (Eq a, Num a) => a
+
 pattern GL_CLAMP_TO_BORDER_OES = 0x812D
+
+pattern GL_TEXTURE_BORDER_COLOR_OES  :: (Eq a, Num a) => a
 
 pattern GL_TEXTURE_BORDER_COLOR_OES = 0x1004
diff --git a/generated-src/Graphics/GL/Ext/OES/TextureBuffer.hs b/generated-src/Graphics/GL/Ext/OES/TextureBuffer.hs
--- a/generated-src/Graphics/GL/Ext/OES/TextureBuffer.hs
+++ b/generated-src/Graphics/GL/Ext/OES/TextureBuffer.hs
@@ -69,30 +69,58 @@
 
 {-# NOINLINE glTexBufferRangeOESFunPtr #-}
 
+pattern GL_IMAGE_BUFFER_OES  :: (Eq a, Num a) => a
+
 pattern GL_IMAGE_BUFFER_OES = 0x9051
 
+pattern GL_INT_IMAGE_BUFFER_OES  :: (Eq a, Num a) => a
+
 pattern GL_INT_IMAGE_BUFFER_OES = 0x905C
 
+pattern GL_INT_SAMPLER_BUFFER_OES  :: (Eq a, Num a) => a
+
 pattern GL_INT_SAMPLER_BUFFER_OES = 0x8DD0
 
+pattern GL_MAX_TEXTURE_BUFFER_SIZE_OES  :: (Eq a, Num a) => a
+
 pattern GL_MAX_TEXTURE_BUFFER_SIZE_OES = 0x8C2B
 
+pattern GL_SAMPLER_BUFFER_OES  :: (Eq a, Num a) => a
+
 pattern GL_SAMPLER_BUFFER_OES = 0x8DC2
 
+pattern GL_TEXTURE_BINDING_BUFFER_OES  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_BINDING_BUFFER_OES = 0x8C2C
 
+pattern GL_TEXTURE_BUFFER_BINDING_OES  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_BUFFER_BINDING_OES = 0x8C2A
 
+pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING_OES  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING_OES = 0x8C2D
 
+pattern GL_TEXTURE_BUFFER_OES  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_BUFFER_OES = 0x8C2A
 
+pattern GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT_OES  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT_OES = 0x919F
 
+pattern GL_TEXTURE_BUFFER_OFFSET_OES  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_BUFFER_OFFSET_OES = 0x919D
 
+pattern GL_TEXTURE_BUFFER_SIZE_OES  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_BUFFER_SIZE_OES = 0x919E
 
+pattern GL_UNSIGNED_INT_IMAGE_BUFFER_OES  :: (Eq a, Num a) => a
+
 pattern GL_UNSIGNED_INT_IMAGE_BUFFER_OES = 0x9067
+
+pattern GL_UNSIGNED_INT_SAMPLER_BUFFER_OES  :: (Eq a, Num a) => a
 
 pattern GL_UNSIGNED_INT_SAMPLER_BUFFER_OES = 0x8DD8
diff --git a/generated-src/Graphics/GL/Ext/OES/TextureCompressionAstc.hs b/generated-src/Graphics/GL/Ext/OES/TextureCompressionAstc.hs
--- a/generated-src/Graphics/GL/Ext/OES/TextureCompressionAstc.hs
+++ b/generated-src/Graphics/GL/Ext/OES/TextureCompressionAstc.hs
@@ -65,42 +65,82 @@
 gl_OES_texture_compression_astc = member "GL_OES_texture_compression_astc" extensions
 {-# NOINLINE gl_OES_texture_compression_astc #-}
 
+pattern GL_COMPRESSED_RGBA_ASTC_3x3x3_OES  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_RGBA_ASTC_3x3x3_OES = 0x93C0
 
+pattern GL_COMPRESSED_RGBA_ASTC_4x3x3_OES  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_RGBA_ASTC_4x3x3_OES = 0x93C1
 
+pattern GL_COMPRESSED_RGBA_ASTC_4x4x3_OES  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_RGBA_ASTC_4x4x3_OES = 0x93C2
 
+pattern GL_COMPRESSED_RGBA_ASTC_4x4x4_OES  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_RGBA_ASTC_4x4x4_OES = 0x93C3
 
+pattern GL_COMPRESSED_RGBA_ASTC_5x4x4_OES  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_RGBA_ASTC_5x4x4_OES = 0x93C4
 
+pattern GL_COMPRESSED_RGBA_ASTC_5x5x4_OES  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_RGBA_ASTC_5x5x4_OES = 0x93C5
 
+pattern GL_COMPRESSED_RGBA_ASTC_5x5x5_OES  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_RGBA_ASTC_5x5x5_OES = 0x93C6
 
+pattern GL_COMPRESSED_RGBA_ASTC_6x5x5_OES  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_RGBA_ASTC_6x5x5_OES = 0x93C7
 
+pattern GL_COMPRESSED_RGBA_ASTC_6x6x5_OES  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_RGBA_ASTC_6x6x5_OES = 0x93C8
 
+pattern GL_COMPRESSED_RGBA_ASTC_6x6x6_OES  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_RGBA_ASTC_6x6x6_OES = 0x93C9
 
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES = 0x93E0
 
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES = 0x93E1
 
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES = 0x93E2
 
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES = 0x93E3
 
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES = 0x93E4
 
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES = 0x93E5
 
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES = 0x93E6
 
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES = 0x93E7
 
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES = 0x93E8
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES  :: (Eq a, Num a) => a
 
 pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES = 0x93E9
diff --git a/generated-src/Graphics/GL/Ext/OES/TextureCubeMap.hs b/generated-src/Graphics/GL/Ext/OES/TextureCubeMap.hs
--- a/generated-src/Graphics/GL/Ext/OES/TextureCubeMap.hs
+++ b/generated-src/Graphics/GL/Ext/OES/TextureCubeMap.hs
@@ -118,28 +118,54 @@
 
 {-# NOINLINE glTexGenivOESFunPtr #-}
 
+pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE_OES  :: (Eq a, Num a) => a
+
 pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE_OES = 0x851C
 
+pattern GL_NORMAL_MAP_OES  :: (Eq a, Num a) => a
+
 pattern GL_NORMAL_MAP_OES = 0x8511
 
+pattern GL_REFLECTION_MAP_OES  :: (Eq a, Num a) => a
+
 pattern GL_REFLECTION_MAP_OES = 0x8512
 
+pattern GL_TEXTURE_BINDING_CUBE_MAP_OES  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_BINDING_CUBE_MAP_OES = 0x8514
 
+pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES = 0x8516
 
+pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES = 0x8518
 
+pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES = 0x851A
 
+pattern GL_TEXTURE_CUBE_MAP_OES  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_CUBE_MAP_OES = 0x8513
 
+pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES = 0x8515
 
+pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES = 0x8517
 
+pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES = 0x8519
 
+pattern GL_TEXTURE_GEN_MODE_OES  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_GEN_MODE_OES = 0x2500
+
+pattern GL_TEXTURE_GEN_STR_OES  :: (Eq a, Num a) => a
 
 pattern GL_TEXTURE_GEN_STR_OES = 0x8D60
diff --git a/generated-src/Graphics/GL/Ext/OES/TextureCubeMapArray.hs b/generated-src/Graphics/GL/Ext/OES/TextureCubeMapArray.hs
--- a/generated-src/Graphics/GL/Ext/OES/TextureCubeMapArray.hs
+++ b/generated-src/Graphics/GL/Ext/OES/TextureCubeMapArray.hs
@@ -26,18 +26,34 @@
 gl_OES_texture_cube_map_array = member "GL_OES_texture_cube_map_array" extensions
 {-# NOINLINE gl_OES_texture_cube_map_array #-}
 
+pattern GL_IMAGE_CUBE_MAP_ARRAY_OES  :: (Eq a, Num a) => a
+
 pattern GL_IMAGE_CUBE_MAP_ARRAY_OES = 0x9054
 
+pattern GL_INT_IMAGE_CUBE_MAP_ARRAY_OES  :: (Eq a, Num a) => a
+
 pattern GL_INT_IMAGE_CUBE_MAP_ARRAY_OES = 0x905F
 
+pattern GL_INT_SAMPLER_CUBE_MAP_ARRAY_OES  :: (Eq a, Num a) => a
+
 pattern GL_INT_SAMPLER_CUBE_MAP_ARRAY_OES = 0x900E
 
+pattern GL_SAMPLER_CUBE_MAP_ARRAY_OES  :: (Eq a, Num a) => a
+
 pattern GL_SAMPLER_CUBE_MAP_ARRAY_OES = 0x900C
 
+pattern GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_OES  :: (Eq a, Num a) => a
+
 pattern GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_OES = 0x900D
 
+pattern GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_OES  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_OES = 0x900A
 
+pattern GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_OES  :: (Eq a, Num a) => a
+
 pattern GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_OES = 0x906A
+
+pattern GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_OES  :: (Eq a, Num a) => a
 
 pattern GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_OES = 0x900F
diff --git a/generated-src/Graphics/GL/Ext/OES/TextureMirroredRepeat.hs b/generated-src/Graphics/GL/Ext/OES/TextureMirroredRepeat.hs
--- a/generated-src/Graphics/GL/Ext/OES/TextureMirroredRepeat.hs
+++ b/generated-src/Graphics/GL/Ext/OES/TextureMirroredRepeat.hs
@@ -17,4 +17,6 @@
 gl_OES_texture_mirrored_repeat = member "GL_OES_texture_mirrored_repeat" extensions
 {-# NOINLINE gl_OES_texture_mirrored_repeat #-}
 
+pattern GL_MIRRORED_REPEAT_OES  :: (Eq a, Num a) => a
+
 pattern GL_MIRRORED_REPEAT_OES = 0x8370
diff --git a/generated-src/Graphics/GL/Ext/OES/TextureStencil8.hs b/generated-src/Graphics/GL/Ext/OES/TextureStencil8.hs
--- a/generated-src/Graphics/GL/Ext/OES/TextureStencil8.hs
+++ b/generated-src/Graphics/GL/Ext/OES/TextureStencil8.hs
@@ -19,4 +19,6 @@
 gl_OES_texture_stencil8 = member "GL_OES_texture_stencil8" extensions
 {-# NOINLINE gl_OES_texture_stencil8 #-}
 
+pattern GL_STENCIL_INDEX_OES  :: (Eq a, Num a) => a
+
 pattern GL_STENCIL_INDEX_OES = 0x1901
diff --git a/generated-src/Graphics/GL/Ext/OES/TextureStorageMultisample2dArray.hs b/generated-src/Graphics/GL/Ext/OES/TextureStorageMultisample2dArray.hs
--- a/generated-src/Graphics/GL/Ext/OES/TextureStorageMultisample2dArray.hs
+++ b/generated-src/Graphics/GL/Ext/OES/TextureStorageMultisample2dArray.hs
@@ -42,12 +42,22 @@
 
 {-# NOINLINE glTexStorage3DMultisampleOESFunPtr #-}
 
+pattern GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES  :: (Eq a, Num a) => a
+
 pattern GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES = 0x910C
 
+pattern GL_SAMPLER_2D_MULTISAMPLE_ARRAY_OES  :: (Eq a, Num a) => a
+
 pattern GL_SAMPLER_2D_MULTISAMPLE_ARRAY_OES = 0x910B
 
+pattern GL_TEXTURE_2D_MULTISAMPLE_ARRAY_OES  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_2D_MULTISAMPLE_ARRAY_OES = 0x9102
 
+pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY_OES  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY_OES = 0x9105
+
+pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES  :: (Eq a, Num a) => a
 
 pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES = 0x910D
diff --git a/generated-src/Graphics/GL/Ext/OES/TextureView.hs b/generated-src/Graphics/GL/Ext/OES/TextureView.hs
--- a/generated-src/Graphics/GL/Ext/OES/TextureView.hs
+++ b/generated-src/Graphics/GL/Ext/OES/TextureView.hs
@@ -41,10 +41,18 @@
 
 {-# NOINLINE glTextureViewOESFunPtr #-}
 
+pattern GL_TEXTURE_VIEW_MIN_LAYER_OES  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_VIEW_MIN_LAYER_OES = 0x82DD
 
+pattern GL_TEXTURE_VIEW_MIN_LEVEL_OES  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_VIEW_MIN_LEVEL_OES = 0x82DB
 
+pattern GL_TEXTURE_VIEW_NUM_LAYERS_OES  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_VIEW_NUM_LAYERS_OES = 0x82DE
+
+pattern GL_TEXTURE_VIEW_NUM_LEVELS_OES  :: (Eq a, Num a) => a
 
 pattern GL_TEXTURE_VIEW_NUM_LEVELS_OES = 0x82DC
diff --git a/generated-src/Graphics/GL/Ext/OES/VertexArrayObject.hs b/generated-src/Graphics/GL/Ext/OES/VertexArrayObject.hs
--- a/generated-src/Graphics/GL/Ext/OES/VertexArrayObject.hs
+++ b/generated-src/Graphics/GL/Ext/OES/VertexArrayObject.hs
@@ -82,4 +82,6 @@
 
 {-# NOINLINE glIsVertexArrayOESFunPtr #-}
 
+pattern GL_VERTEX_ARRAY_BINDING_OES  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_ARRAY_BINDING_OES = 0x85B5
diff --git a/generated-src/Graphics/GL/Ext/OES/VertexType1010102.hs b/generated-src/Graphics/GL/Ext/OES/VertexType1010102.hs
--- a/generated-src/Graphics/GL/Ext/OES/VertexType1010102.hs
+++ b/generated-src/Graphics/GL/Ext/OES/VertexType1010102.hs
@@ -18,6 +18,10 @@
 gl_OES_vertex_type_10_10_10_2 = member "GL_OES_vertex_type_10_10_10_2" extensions
 {-# NOINLINE gl_OES_vertex_type_10_10_10_2 #-}
 
+pattern GL_INT_10_10_10_2_OES  :: (Eq a, Num a) => a
+
 pattern GL_INT_10_10_10_2_OES = 0x8DF7
+
+pattern GL_UNSIGNED_INT_10_10_10_2_OES  :: (Eq a, Num a) => a
 
 pattern GL_UNSIGNED_INT_10_10_10_2_OES = 0x8DF6
diff --git a/generated-src/Graphics/GL/Ext/OES/ViewportArray.hs b/generated-src/Graphics/GL/Ext/OES/ViewportArray.hs
--- a/generated-src/Graphics/GL/Ext/OES/ViewportArray.hs
+++ b/generated-src/Graphics/GL/Ext/OES/ViewportArray.hs
@@ -167,10 +167,18 @@
 
 {-# NOINLINE glViewportIndexedfvOESFunPtr #-}
 
+pattern GL_MAX_VIEWPORTS_OES  :: (Eq a, Num a) => a
+
 pattern GL_MAX_VIEWPORTS_OES = 0x825B
 
+pattern GL_VIEWPORT_BOUNDS_RANGE_OES  :: (Eq a, Num a) => a
+
 pattern GL_VIEWPORT_BOUNDS_RANGE_OES = 0x825D
 
+pattern GL_VIEWPORT_INDEX_PROVOKING_VERTEX_OES  :: (Eq a, Num a) => a
+
 pattern GL_VIEWPORT_INDEX_PROVOKING_VERTEX_OES = 0x825F
+
+pattern GL_VIEWPORT_SUBPIXEL_BITS_OES  :: (Eq a, Num a) => a
 
 pattern GL_VIEWPORT_SUBPIXEL_BITS_OES = 0x825C
diff --git a/generated-src/Graphics/GL/Ext/OML/Interlace.hs b/generated-src/Graphics/GL/Ext/OML/Interlace.hs
--- a/generated-src/Graphics/GL/Ext/OML/Interlace.hs
+++ b/generated-src/Graphics/GL/Ext/OML/Interlace.hs
@@ -18,6 +18,10 @@
 gl_OML_interlace = member "GL_OML_interlace" extensions
 {-# NOINLINE gl_OML_interlace #-}
 
+pattern GL_INTERLACE_OML  :: (Eq a, Num a) => a
+
 pattern GL_INTERLACE_OML = 0x8980
+
+pattern GL_INTERLACE_READ_OML  :: (Eq a, Num a) => a
 
 pattern GL_INTERLACE_READ_OML = 0x8981
diff --git a/generated-src/Graphics/GL/Ext/OML/Resample.hs b/generated-src/Graphics/GL/Ext/OML/Resample.hs
--- a/generated-src/Graphics/GL/Ext/OML/Resample.hs
+++ b/generated-src/Graphics/GL/Ext/OML/Resample.hs
@@ -22,14 +22,26 @@
 gl_OML_resample = member "GL_OML_resample" extensions
 {-# NOINLINE gl_OML_resample #-}
 
+pattern GL_PACK_RESAMPLE_OML  :: (Eq a, Num a) => a
+
 pattern GL_PACK_RESAMPLE_OML = 0x8984
 
+pattern GL_RESAMPLE_AVERAGE_OML  :: (Eq a, Num a) => a
+
 pattern GL_RESAMPLE_AVERAGE_OML = 0x8988
 
+pattern GL_RESAMPLE_DECIMATE_OML  :: (Eq a, Num a) => a
+
 pattern GL_RESAMPLE_DECIMATE_OML = 0x8989
 
+pattern GL_RESAMPLE_REPLICATE_OML  :: (Eq a, Num a) => a
+
 pattern GL_RESAMPLE_REPLICATE_OML = 0x8986
 
+pattern GL_RESAMPLE_ZERO_FILL_OML  :: (Eq a, Num a) => a
+
 pattern GL_RESAMPLE_ZERO_FILL_OML = 0x8987
+
+pattern GL_UNPACK_RESAMPLE_OML  :: (Eq a, Num a) => a
 
 pattern GL_UNPACK_RESAMPLE_OML = 0x8985
diff --git a/generated-src/Graphics/GL/Ext/OML/Subsample.hs b/generated-src/Graphics/GL/Ext/OML/Subsample.hs
--- a/generated-src/Graphics/GL/Ext/OML/Subsample.hs
+++ b/generated-src/Graphics/GL/Ext/OML/Subsample.hs
@@ -18,6 +18,10 @@
 gl_OML_subsample = member "GL_OML_subsample" extensions
 {-# NOINLINE gl_OML_subsample #-}
 
+pattern GL_FORMAT_SUBSAMPLE_244_244_OML  :: (Eq a, Num a) => a
+
 pattern GL_FORMAT_SUBSAMPLE_244_244_OML = 0x8983
+
+pattern GL_FORMAT_SUBSAMPLE_24_24_OML  :: (Eq a, Num a) => a
 
 pattern GL_FORMAT_SUBSAMPLE_24_24_OML = 0x8982
diff --git a/generated-src/Graphics/GL/Ext/OVR/Multiview.hs b/generated-src/Graphics/GL/Ext/OVR/Multiview.hs
--- a/generated-src/Graphics/GL/Ext/OVR/Multiview.hs
+++ b/generated-src/Graphics/GL/Ext/OVR/Multiview.hs
@@ -45,10 +45,18 @@
 
 {-# NOINLINE glFramebufferTextureMultiviewOVRFunPtr #-}
 
+pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR  :: (Eq a, Num a) => a
+
 pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR = 0x9632
 
+pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR  :: (Eq a, Num a) => a
+
 pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR = 0x9630
 
+pattern GL_FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR  :: (Eq a, Num a) => a
+
 pattern GL_FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR = 0x9633
+
+pattern GL_MAX_VIEWS_OVR  :: (Eq a, Num a) => a
 
 pattern GL_MAX_VIEWS_OVR = 0x9631
diff --git a/generated-src/Graphics/GL/Ext/PGI/MiscHints.hs b/generated-src/Graphics/GL/Ext/PGI/MiscHints.hs
--- a/generated-src/Graphics/GL/Ext/PGI/MiscHints.hs
+++ b/generated-src/Graphics/GL/Ext/PGI/MiscHints.hs
@@ -55,42 +55,82 @@
 
 {-# NOINLINE glHintPGIFunPtr #-}
 
+pattern GL_ALLOW_DRAW_FRG_HINT_PGI  :: (Eq a, Num a) => a
+
 pattern GL_ALLOW_DRAW_FRG_HINT_PGI = 0x1A210
 
+pattern GL_ALLOW_DRAW_MEM_HINT_PGI  :: (Eq a, Num a) => a
+
 pattern GL_ALLOW_DRAW_MEM_HINT_PGI = 0x1A211
 
+pattern GL_ALLOW_DRAW_OBJ_HINT_PGI  :: (Eq a, Num a) => a
+
 pattern GL_ALLOW_DRAW_OBJ_HINT_PGI = 0x1A20E
 
+pattern GL_ALLOW_DRAW_WIN_HINT_PGI  :: (Eq a, Num a) => a
+
 pattern GL_ALLOW_DRAW_WIN_HINT_PGI = 0x1A20F
 
+pattern GL_ALWAYS_FAST_HINT_PGI  :: (Eq a, Num a) => a
+
 pattern GL_ALWAYS_FAST_HINT_PGI = 0x1A20C
 
+pattern GL_ALWAYS_SOFT_HINT_PGI  :: (Eq a, Num a) => a
+
 pattern GL_ALWAYS_SOFT_HINT_PGI = 0x1A20D
 
+pattern GL_BACK_NORMALS_HINT_PGI  :: (Eq a, Num a) => a
+
 pattern GL_BACK_NORMALS_HINT_PGI = 0x1A223
 
+pattern GL_CLIP_FAR_HINT_PGI  :: (Eq a, Num a) => a
+
 pattern GL_CLIP_FAR_HINT_PGI = 0x1A221
 
+pattern GL_CLIP_NEAR_HINT_PGI  :: (Eq a, Num a) => a
+
 pattern GL_CLIP_NEAR_HINT_PGI = 0x1A220
 
+pattern GL_CONSERVE_MEMORY_HINT_PGI  :: (Eq a, Num a) => a
+
 pattern GL_CONSERVE_MEMORY_HINT_PGI = 0x1A1FD
 
+pattern GL_FULL_STIPPLE_HINT_PGI  :: (Eq a, Num a) => a
+
 pattern GL_FULL_STIPPLE_HINT_PGI = 0x1A219
 
+pattern GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI  :: (Eq a, Num a) => a
+
 pattern GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI = 0x1A203
 
+pattern GL_NATIVE_GRAPHICS_END_HINT_PGI  :: (Eq a, Num a) => a
+
 pattern GL_NATIVE_GRAPHICS_END_HINT_PGI = 0x1A204
 
+pattern GL_NATIVE_GRAPHICS_HANDLE_PGI  :: (Eq a, Num a) => a
+
 pattern GL_NATIVE_GRAPHICS_HANDLE_PGI = 0x1A202
 
+pattern GL_PREFER_DOUBLEBUFFER_HINT_PGI  :: (Eq a, Num a) => a
+
 pattern GL_PREFER_DOUBLEBUFFER_HINT_PGI = 0x1A1F8
 
+pattern GL_RECLAIM_MEMORY_HINT_PGI  :: (Eq a, Num a) => a
+
 pattern GL_RECLAIM_MEMORY_HINT_PGI = 0x1A1FE
 
+pattern GL_STRICT_DEPTHFUNC_HINT_PGI  :: (Eq a, Num a) => a
+
 pattern GL_STRICT_DEPTHFUNC_HINT_PGI = 0x1A216
 
+pattern GL_STRICT_LIGHTING_HINT_PGI  :: (Eq a, Num a) => a
+
 pattern GL_STRICT_LIGHTING_HINT_PGI = 0x1A217
 
+pattern GL_STRICT_SCISSOR_HINT_PGI  :: (Eq a, Num a) => a
+
 pattern GL_STRICT_SCISSOR_HINT_PGI = 0x1A218
+
+pattern GL_WIDE_LINE_HINT_PGI  :: (Eq a, Num a) => a
 
 pattern GL_WIDE_LINE_HINT_PGI = 0x1A222
diff --git a/generated-src/Graphics/GL/Ext/PGI/VertexHints.hs b/generated-src/Graphics/GL/Ext/PGI/VertexHints.hs
--- a/generated-src/Graphics/GL/Ext/PGI/VertexHints.hs
+++ b/generated-src/Graphics/GL/Ext/PGI/VertexHints.hs
@@ -38,46 +38,90 @@
 gl_PGI_vertex_hints = member "GL_PGI_vertex_hints" extensions
 {-# NOINLINE gl_PGI_vertex_hints #-}
 
+pattern GL_COLOR3_BIT_PGI  :: (Eq a, Num a) => a
+
 pattern GL_COLOR3_BIT_PGI = 0x00010000
 
+pattern GL_COLOR4_BIT_PGI  :: (Eq a, Num a) => a
+
 pattern GL_COLOR4_BIT_PGI = 0x00020000
 
+pattern GL_EDGEFLAG_BIT_PGI  :: (Eq a, Num a) => a
+
 pattern GL_EDGEFLAG_BIT_PGI = 0x00040000
 
+pattern GL_INDEX_BIT_PGI  :: (Eq a, Num a) => a
+
 pattern GL_INDEX_BIT_PGI = 0x00080000
 
+pattern GL_MATERIAL_SIDE_HINT_PGI  :: (Eq a, Num a) => a
+
 pattern GL_MATERIAL_SIDE_HINT_PGI = 0x1A22C
 
+pattern GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI  :: (Eq a, Num a) => a
+
 pattern GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI = 0x00200000
 
+pattern GL_MAT_AMBIENT_BIT_PGI  :: (Eq a, Num a) => a
+
 pattern GL_MAT_AMBIENT_BIT_PGI = 0x00100000
 
+pattern GL_MAT_COLOR_INDEXES_BIT_PGI  :: (Eq a, Num a) => a
+
 pattern GL_MAT_COLOR_INDEXES_BIT_PGI = 0x01000000
 
+pattern GL_MAT_DIFFUSE_BIT_PGI  :: (Eq a, Num a) => a
+
 pattern GL_MAT_DIFFUSE_BIT_PGI = 0x00400000
 
+pattern GL_MAT_EMISSION_BIT_PGI  :: (Eq a, Num a) => a
+
 pattern GL_MAT_EMISSION_BIT_PGI = 0x00800000
 
+pattern GL_MAT_SHININESS_BIT_PGI  :: (Eq a, Num a) => a
+
 pattern GL_MAT_SHININESS_BIT_PGI = 0x02000000
 
+pattern GL_MAT_SPECULAR_BIT_PGI  :: (Eq a, Num a) => a
+
 pattern GL_MAT_SPECULAR_BIT_PGI = 0x04000000
 
+pattern GL_MAX_VERTEX_HINT_PGI  :: (Eq a, Num a) => a
+
 pattern GL_MAX_VERTEX_HINT_PGI = 0x1A22D
 
+pattern GL_NORMAL_BIT_PGI  :: (Eq a, Num a) => a
+
 pattern GL_NORMAL_BIT_PGI = 0x08000000
 
+pattern GL_TEXCOORD1_BIT_PGI  :: (Eq a, Num a) => a
+
 pattern GL_TEXCOORD1_BIT_PGI = 0x10000000
 
+pattern GL_TEXCOORD2_BIT_PGI  :: (Eq a, Num a) => a
+
 pattern GL_TEXCOORD2_BIT_PGI = 0x20000000
 
+pattern GL_TEXCOORD3_BIT_PGI  :: (Eq a, Num a) => a
+
 pattern GL_TEXCOORD3_BIT_PGI = 0x40000000
 
+pattern GL_TEXCOORD4_BIT_PGI  :: (Eq a, Num a) => a
+
 pattern GL_TEXCOORD4_BIT_PGI = 0x80000000
 
+pattern GL_VERTEX23_BIT_PGI  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX23_BIT_PGI = 0x00000004
 
+pattern GL_VERTEX4_BIT_PGI  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX4_BIT_PGI = 0x00000008
 
+pattern GL_VERTEX_CONSISTENT_HINT_PGI  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_CONSISTENT_HINT_PGI = 0x1A22B
+
+pattern GL_VERTEX_DATA_HINT_PGI  :: (Eq a, Num a) => a
 
 pattern GL_VERTEX_DATA_HINT_PGI = 0x1A22A
diff --git a/generated-src/Graphics/GL/Ext/QCOM/AlphaTest.hs b/generated-src/Graphics/GL/Ext/QCOM/AlphaTest.hs
--- a/generated-src/Graphics/GL/Ext/QCOM/AlphaTest.hs
+++ b/generated-src/Graphics/GL/Ext/QCOM/AlphaTest.hs
@@ -36,8 +36,14 @@
 
 {-# NOINLINE glAlphaFuncQCOMFunPtr #-}
 
+pattern GL_ALPHA_TEST_FUNC_QCOM  :: (Eq a, Num a) => a
+
 pattern GL_ALPHA_TEST_FUNC_QCOM = 0x0BC1
 
+pattern GL_ALPHA_TEST_QCOM  :: (Eq a, Num a) => a
+
 pattern GL_ALPHA_TEST_QCOM = 0x0BC0
+
+pattern GL_ALPHA_TEST_REF_QCOM  :: (Eq a, Num a) => a
 
 pattern GL_ALPHA_TEST_REF_QCOM = 0x0BC2
diff --git a/generated-src/Graphics/GL/Ext/QCOM/BinningControl.hs b/generated-src/Graphics/GL/Ext/QCOM/BinningControl.hs
--- a/generated-src/Graphics/GL/Ext/QCOM/BinningControl.hs
+++ b/generated-src/Graphics/GL/Ext/QCOM/BinningControl.hs
@@ -20,10 +20,18 @@
 gl_QCOM_binning_control = member "GL_QCOM_binning_control" extensions
 {-# NOINLINE gl_QCOM_binning_control #-}
 
+pattern GL_BINNING_CONTROL_HINT_QCOM  :: (Eq a, Num a) => a
+
 pattern GL_BINNING_CONTROL_HINT_QCOM = 0x8FB0
 
+pattern GL_CPU_OPTIMIZED_QCOM  :: (Eq a, Num a) => a
+
 pattern GL_CPU_OPTIMIZED_QCOM = 0x8FB1
 
+pattern GL_GPU_OPTIMIZED_QCOM  :: (Eq a, Num a) => a
+
 pattern GL_GPU_OPTIMIZED_QCOM = 0x8FB2
+
+pattern GL_RENDER_DIRECT_TO_FRAMEBUFFER_QCOM  :: (Eq a, Num a) => a
 
 pattern GL_RENDER_DIRECT_TO_FRAMEBUFFER_QCOM = 0x8FB3
diff --git a/generated-src/Graphics/GL/Ext/QCOM/ExtendedGet.hs b/generated-src/Graphics/GL/Ext/QCOM/ExtendedGet.hs
--- a/generated-src/Graphics/GL/Ext/QCOM/ExtendedGet.hs
+++ b/generated-src/Graphics/GL/Ext/QCOM/ExtendedGet.hs
@@ -140,24 +140,46 @@
 
 {-# NOINLINE glExtTexObjectStateOverrideiQCOMFunPtr #-}
 
+pattern GL_STATE_RESTORE  :: (Eq a, Num a) => a
+
 pattern GL_STATE_RESTORE = 0x8BDC
 
+pattern GL_TEXTURE_DEPTH_QCOM  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_DEPTH_QCOM = 0x8BD4
 
+pattern GL_TEXTURE_FORMAT_QCOM  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_FORMAT_QCOM = 0x8BD6
 
+pattern GL_TEXTURE_HEIGHT_QCOM  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_HEIGHT_QCOM = 0x8BD3
 
+pattern GL_TEXTURE_IMAGE_VALID_QCOM  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_IMAGE_VALID_QCOM = 0x8BD8
 
+pattern GL_TEXTURE_INTERNAL_FORMAT_QCOM  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_INTERNAL_FORMAT_QCOM = 0x8BD5
 
+pattern GL_TEXTURE_NUM_LEVELS_QCOM  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_NUM_LEVELS_QCOM = 0x8BD9
 
+pattern GL_TEXTURE_OBJECT_VALID_QCOM  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_OBJECT_VALID_QCOM = 0x8BDB
 
+pattern GL_TEXTURE_TARGET_QCOM  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_TARGET_QCOM = 0x8BDA
 
+pattern GL_TEXTURE_TYPE_QCOM  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_TYPE_QCOM = 0x8BD7
+
+pattern GL_TEXTURE_WIDTH_QCOM  :: (Eq a, Num a) => a
 
 pattern GL_TEXTURE_WIDTH_QCOM = 0x8BD2
diff --git a/generated-src/Graphics/GL/Ext/QCOM/PerfmonGlobalMode.hs b/generated-src/Graphics/GL/Ext/QCOM/PerfmonGlobalMode.hs
--- a/generated-src/Graphics/GL/Ext/QCOM/PerfmonGlobalMode.hs
+++ b/generated-src/Graphics/GL/Ext/QCOM/PerfmonGlobalMode.hs
@@ -17,4 +17,6 @@
 gl_QCOM_perfmon_global_mode = member "GL_QCOM_perfmon_global_mode" extensions
 {-# NOINLINE gl_QCOM_perfmon_global_mode #-}
 
+pattern GL_PERFMON_GLOBAL_MODE_QCOM  :: (Eq a, Num a) => a
+
 pattern GL_PERFMON_GLOBAL_MODE_QCOM = 0x8FA0
diff --git a/generated-src/Graphics/GL/Ext/QCOM/TiledRendering.hs b/generated-src/Graphics/GL/Ext/QCOM/TiledRendering.hs
--- a/generated-src/Graphics/GL/Ext/QCOM/TiledRendering.hs
+++ b/generated-src/Graphics/GL/Ext/QCOM/TiledRendering.hs
@@ -77,66 +77,130 @@
 
 {-# NOINLINE glStartTilingQCOMFunPtr #-}
 
+pattern GL_COLOR_BUFFER_BIT0_QCOM  :: (Eq a, Num a) => a
+
 pattern GL_COLOR_BUFFER_BIT0_QCOM = 0x00000001
 
+pattern GL_COLOR_BUFFER_BIT1_QCOM  :: (Eq a, Num a) => a
+
 pattern GL_COLOR_BUFFER_BIT1_QCOM = 0x00000002
 
+pattern GL_COLOR_BUFFER_BIT2_QCOM  :: (Eq a, Num a) => a
+
 pattern GL_COLOR_BUFFER_BIT2_QCOM = 0x00000004
 
+pattern GL_COLOR_BUFFER_BIT3_QCOM  :: (Eq a, Num a) => a
+
 pattern GL_COLOR_BUFFER_BIT3_QCOM = 0x00000008
 
+pattern GL_COLOR_BUFFER_BIT4_QCOM  :: (Eq a, Num a) => a
+
 pattern GL_COLOR_BUFFER_BIT4_QCOM = 0x00000010
 
+pattern GL_COLOR_BUFFER_BIT5_QCOM  :: (Eq a, Num a) => a
+
 pattern GL_COLOR_BUFFER_BIT5_QCOM = 0x00000020
 
+pattern GL_COLOR_BUFFER_BIT6_QCOM  :: (Eq a, Num a) => a
+
 pattern GL_COLOR_BUFFER_BIT6_QCOM = 0x00000040
 
+pattern GL_COLOR_BUFFER_BIT7_QCOM  :: (Eq a, Num a) => a
+
 pattern GL_COLOR_BUFFER_BIT7_QCOM = 0x00000080
 
+pattern GL_DEPTH_BUFFER_BIT0_QCOM  :: (Eq a, Num a) => a
+
 pattern GL_DEPTH_BUFFER_BIT0_QCOM = 0x00000100
 
+pattern GL_DEPTH_BUFFER_BIT1_QCOM  :: (Eq a, Num a) => a
+
 pattern GL_DEPTH_BUFFER_BIT1_QCOM = 0x00000200
 
+pattern GL_DEPTH_BUFFER_BIT2_QCOM  :: (Eq a, Num a) => a
+
 pattern GL_DEPTH_BUFFER_BIT2_QCOM = 0x00000400
 
+pattern GL_DEPTH_BUFFER_BIT3_QCOM  :: (Eq a, Num a) => a
+
 pattern GL_DEPTH_BUFFER_BIT3_QCOM = 0x00000800
 
+pattern GL_DEPTH_BUFFER_BIT4_QCOM  :: (Eq a, Num a) => a
+
 pattern GL_DEPTH_BUFFER_BIT4_QCOM = 0x00001000
 
+pattern GL_DEPTH_BUFFER_BIT5_QCOM  :: (Eq a, Num a) => a
+
 pattern GL_DEPTH_BUFFER_BIT5_QCOM = 0x00002000
 
+pattern GL_DEPTH_BUFFER_BIT6_QCOM  :: (Eq a, Num a) => a
+
 pattern GL_DEPTH_BUFFER_BIT6_QCOM = 0x00004000
 
+pattern GL_DEPTH_BUFFER_BIT7_QCOM  :: (Eq a, Num a) => a
+
 pattern GL_DEPTH_BUFFER_BIT7_QCOM = 0x00008000
 
+pattern GL_MULTISAMPLE_BUFFER_BIT0_QCOM  :: (Eq a, Num a) => a
+
 pattern GL_MULTISAMPLE_BUFFER_BIT0_QCOM = 0x01000000
 
+pattern GL_MULTISAMPLE_BUFFER_BIT1_QCOM  :: (Eq a, Num a) => a
+
 pattern GL_MULTISAMPLE_BUFFER_BIT1_QCOM = 0x02000000
 
+pattern GL_MULTISAMPLE_BUFFER_BIT2_QCOM  :: (Eq a, Num a) => a
+
 pattern GL_MULTISAMPLE_BUFFER_BIT2_QCOM = 0x04000000
 
+pattern GL_MULTISAMPLE_BUFFER_BIT3_QCOM  :: (Eq a, Num a) => a
+
 pattern GL_MULTISAMPLE_BUFFER_BIT3_QCOM = 0x08000000
 
+pattern GL_MULTISAMPLE_BUFFER_BIT4_QCOM  :: (Eq a, Num a) => a
+
 pattern GL_MULTISAMPLE_BUFFER_BIT4_QCOM = 0x10000000
 
+pattern GL_MULTISAMPLE_BUFFER_BIT5_QCOM  :: (Eq a, Num a) => a
+
 pattern GL_MULTISAMPLE_BUFFER_BIT5_QCOM = 0x20000000
 
+pattern GL_MULTISAMPLE_BUFFER_BIT6_QCOM  :: (Eq a, Num a) => a
+
 pattern GL_MULTISAMPLE_BUFFER_BIT6_QCOM = 0x40000000
 
+pattern GL_MULTISAMPLE_BUFFER_BIT7_QCOM  :: (Eq a, Num a) => a
+
 pattern GL_MULTISAMPLE_BUFFER_BIT7_QCOM = 0x80000000
 
+pattern GL_STENCIL_BUFFER_BIT0_QCOM  :: (Eq a, Num a) => a
+
 pattern GL_STENCIL_BUFFER_BIT0_QCOM = 0x00010000
 
+pattern GL_STENCIL_BUFFER_BIT1_QCOM  :: (Eq a, Num a) => a
+
 pattern GL_STENCIL_BUFFER_BIT1_QCOM = 0x00020000
 
+pattern GL_STENCIL_BUFFER_BIT2_QCOM  :: (Eq a, Num a) => a
+
 pattern GL_STENCIL_BUFFER_BIT2_QCOM = 0x00040000
 
+pattern GL_STENCIL_BUFFER_BIT3_QCOM  :: (Eq a, Num a) => a
+
 pattern GL_STENCIL_BUFFER_BIT3_QCOM = 0x00080000
 
+pattern GL_STENCIL_BUFFER_BIT4_QCOM  :: (Eq a, Num a) => a
+
 pattern GL_STENCIL_BUFFER_BIT4_QCOM = 0x00100000
 
+pattern GL_STENCIL_BUFFER_BIT5_QCOM  :: (Eq a, Num a) => a
+
 pattern GL_STENCIL_BUFFER_BIT5_QCOM = 0x00200000
 
+pattern GL_STENCIL_BUFFER_BIT6_QCOM  :: (Eq a, Num a) => a
+
 pattern GL_STENCIL_BUFFER_BIT6_QCOM = 0x00400000
+
+pattern GL_STENCIL_BUFFER_BIT7_QCOM  :: (Eq a, Num a) => a
 
 pattern GL_STENCIL_BUFFER_BIT7_QCOM = 0x00800000
diff --git a/generated-src/Graphics/GL/Ext/QCOM/WriteonlyRendering.hs b/generated-src/Graphics/GL/Ext/QCOM/WriteonlyRendering.hs
--- a/generated-src/Graphics/GL/Ext/QCOM/WriteonlyRendering.hs
+++ b/generated-src/Graphics/GL/Ext/QCOM/WriteonlyRendering.hs
@@ -17,4 +17,6 @@
 gl_QCOM_writeonly_rendering = member "GL_QCOM_writeonly_rendering" extensions
 {-# NOINLINE gl_QCOM_writeonly_rendering #-}
 
+pattern GL_WRITEONLY_RENDERING_QCOM  :: (Eq a, Num a) => a
+
 pattern GL_WRITEONLY_RENDERING_QCOM = 0x8823
diff --git a/generated-src/Graphics/GL/Ext/REND/ScreenCoordinates.hs b/generated-src/Graphics/GL/Ext/REND/ScreenCoordinates.hs
--- a/generated-src/Graphics/GL/Ext/REND/ScreenCoordinates.hs
+++ b/generated-src/Graphics/GL/Ext/REND/ScreenCoordinates.hs
@@ -18,6 +18,10 @@
 gl_REND_screen_coordinates = member "GL_REND_screen_coordinates" extensions
 {-# NOINLINE gl_REND_screen_coordinates #-}
 
+pattern GL_INVERTED_SCREEN_W_REND  :: (Eq a, Num a) => a
+
 pattern GL_INVERTED_SCREEN_W_REND = 0x8491
+
+pattern GL_SCREEN_COORDINATES_REND  :: (Eq a, Num a) => a
 
 pattern GL_SCREEN_COORDINATES_REND = 0x8490
diff --git a/generated-src/Graphics/GL/Ext/S3/S3tc.hs b/generated-src/Graphics/GL/Ext/S3/S3tc.hs
--- a/generated-src/Graphics/GL/Ext/S3/S3tc.hs
+++ b/generated-src/Graphics/GL/Ext/S3/S3tc.hs
@@ -22,14 +22,26 @@
 gl_S3_s3tc = member "GL_S3_s3tc" extensions
 {-# NOINLINE gl_S3_s3tc #-}
 
+pattern GL_RGB4_S3TC  :: (Eq a, Num a) => a
+
 pattern GL_RGB4_S3TC = 0x83A1
 
+pattern GL_RGBA4_DXT5_S3TC  :: (Eq a, Num a) => a
+
 pattern GL_RGBA4_DXT5_S3TC = 0x83A5
 
+pattern GL_RGBA4_S3TC  :: (Eq a, Num a) => a
+
 pattern GL_RGBA4_S3TC = 0x83A3
 
+pattern GL_RGBA_DXT5_S3TC  :: (Eq a, Num a) => a
+
 pattern GL_RGBA_DXT5_S3TC = 0x83A4
 
+pattern GL_RGBA_S3TC  :: (Eq a, Num a) => a
+
 pattern GL_RGBA_S3TC = 0x83A2
+
+pattern GL_RGB_S3TC  :: (Eq a, Num a) => a
 
 pattern GL_RGB_S3TC = 0x83A0
diff --git a/generated-src/Graphics/GL/Ext/SGI/ColorMatrix.hs b/generated-src/Graphics/GL/Ext/SGI/ColorMatrix.hs
--- a/generated-src/Graphics/GL/Ext/SGI/ColorMatrix.hs
+++ b/generated-src/Graphics/GL/Ext/SGI/ColorMatrix.hs
@@ -27,24 +27,46 @@
 gl_SGI_color_matrix = member "GL_SGI_color_matrix" extensions
 {-# NOINLINE gl_SGI_color_matrix #-}
 
+pattern GL_COLOR_MATRIX_SGI  :: (Eq a, Num a) => a
+
 pattern GL_COLOR_MATRIX_SGI = 0x80B1
 
+pattern GL_COLOR_MATRIX_STACK_DEPTH_SGI  :: (Eq a, Num a) => a
+
 pattern GL_COLOR_MATRIX_STACK_DEPTH_SGI = 0x80B2
 
+pattern GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI  :: (Eq a, Num a) => a
+
 pattern GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI = 0x80B3
 
+pattern GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI  :: (Eq a, Num a) => a
+
 pattern GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI = 0x80BB
 
+pattern GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI  :: (Eq a, Num a) => a
+
 pattern GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI = 0x80B7
 
+pattern GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI  :: (Eq a, Num a) => a
+
 pattern GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI = 0x80BA
 
+pattern GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI  :: (Eq a, Num a) => a
+
 pattern GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI = 0x80B6
 
+pattern GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI  :: (Eq a, Num a) => a
+
 pattern GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI = 0x80B9
 
+pattern GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI  :: (Eq a, Num a) => a
+
 pattern GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI = 0x80B5
 
+pattern GL_POST_COLOR_MATRIX_RED_BIAS_SGI  :: (Eq a, Num a) => a
+
 pattern GL_POST_COLOR_MATRIX_RED_BIAS_SGI = 0x80B8
+
+pattern GL_POST_COLOR_MATRIX_RED_SCALE_SGI  :: (Eq a, Num a) => a
 
 pattern GL_POST_COLOR_MATRIX_RED_SCALE_SGI = 0x80B4
diff --git a/generated-src/Graphics/GL/Ext/SGI/ColorTable.hs b/generated-src/Graphics/GL/Ext/SGI/ColorTable.hs
--- a/generated-src/Graphics/GL/Ext/SGI/ColorTable.hs
+++ b/generated-src/Graphics/GL/Ext/SGI/ColorTable.hs
@@ -183,34 +183,66 @@
 
 {-# NOINLINE glGetColorTableSGIFunPtr #-}
 
+pattern GL_COLOR_TABLE_ALPHA_SIZE_SGI  :: (Eq a, Num a) => a
+
 pattern GL_COLOR_TABLE_ALPHA_SIZE_SGI = 0x80DD
 
+pattern GL_COLOR_TABLE_BIAS_SGI  :: (Eq a, Num a) => a
+
 pattern GL_COLOR_TABLE_BIAS_SGI = 0x80D7
 
+pattern GL_COLOR_TABLE_BLUE_SIZE_SGI  :: (Eq a, Num a) => a
+
 pattern GL_COLOR_TABLE_BLUE_SIZE_SGI = 0x80DC
 
+pattern GL_COLOR_TABLE_FORMAT_SGI  :: (Eq a, Num a) => a
+
 pattern GL_COLOR_TABLE_FORMAT_SGI = 0x80D8
 
+pattern GL_COLOR_TABLE_GREEN_SIZE_SGI  :: (Eq a, Num a) => a
+
 pattern GL_COLOR_TABLE_GREEN_SIZE_SGI = 0x80DB
 
+pattern GL_COLOR_TABLE_INTENSITY_SIZE_SGI  :: (Eq a, Num a) => a
+
 pattern GL_COLOR_TABLE_INTENSITY_SIZE_SGI = 0x80DF
 
+pattern GL_COLOR_TABLE_LUMINANCE_SIZE_SGI  :: (Eq a, Num a) => a
+
 pattern GL_COLOR_TABLE_LUMINANCE_SIZE_SGI = 0x80DE
 
+pattern GL_COLOR_TABLE_RED_SIZE_SGI  :: (Eq a, Num a) => a
+
 pattern GL_COLOR_TABLE_RED_SIZE_SGI = 0x80DA
 
+pattern GL_COLOR_TABLE_SCALE_SGI  :: (Eq a, Num a) => a
+
 pattern GL_COLOR_TABLE_SCALE_SGI = 0x80D6
 
+pattern GL_COLOR_TABLE_SGI  :: (Eq a, Num a) => a
+
 pattern GL_COLOR_TABLE_SGI = 0x80D0
 
+pattern GL_COLOR_TABLE_WIDTH_SGI  :: (Eq a, Num a) => a
+
 pattern GL_COLOR_TABLE_WIDTH_SGI = 0x80D9
 
+pattern GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI  :: (Eq a, Num a) => a
+
 pattern GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI = 0x80D2
 
+pattern GL_POST_CONVOLUTION_COLOR_TABLE_SGI  :: (Eq a, Num a) => a
+
 pattern GL_POST_CONVOLUTION_COLOR_TABLE_SGI = 0x80D1
 
+pattern GL_PROXY_COLOR_TABLE_SGI  :: (Eq a, Num a) => a
+
 pattern GL_PROXY_COLOR_TABLE_SGI = 0x80D3
 
+pattern GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI  :: (Eq a, Num a) => a
+
 pattern GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI = 0x80D5
+
+pattern GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI  :: (Eq a, Num a) => a
 
 pattern GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI = 0x80D4
diff --git a/generated-src/Graphics/GL/Ext/SGI/TextureColorTable.hs b/generated-src/Graphics/GL/Ext/SGI/TextureColorTable.hs
--- a/generated-src/Graphics/GL/Ext/SGI/TextureColorTable.hs
+++ b/generated-src/Graphics/GL/Ext/SGI/TextureColorTable.hs
@@ -18,6 +18,10 @@
 gl_SGI_texture_color_table = member "GL_SGI_texture_color_table" extensions
 {-# NOINLINE gl_SGI_texture_color_table #-}
 
+pattern GL_PROXY_TEXTURE_COLOR_TABLE_SGI  :: (Eq a, Num a) => a
+
 pattern GL_PROXY_TEXTURE_COLOR_TABLE_SGI = 0x80BD
+
+pattern GL_TEXTURE_COLOR_TABLE_SGI  :: (Eq a, Num a) => a
 
 pattern GL_TEXTURE_COLOR_TABLE_SGI = 0x80BC
diff --git a/generated-src/Graphics/GL/Ext/SGIS/DetailTexture.hs b/generated-src/Graphics/GL/Ext/SGIS/DetailTexture.hs
--- a/generated-src/Graphics/GL/Ext/SGIS/DetailTexture.hs
+++ b/generated-src/Graphics/GL/Ext/SGIS/DetailTexture.hs
@@ -61,18 +61,34 @@
 
 {-# NOINLINE glGetDetailTexFuncSGISFunPtr #-}
 
+pattern GL_DETAIL_TEXTURE_2D_BINDING_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_DETAIL_TEXTURE_2D_BINDING_SGIS = 0x8096
 
+pattern GL_DETAIL_TEXTURE_2D_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_DETAIL_TEXTURE_2D_SGIS = 0x8095
 
+pattern GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS = 0x809C
 
+pattern GL_DETAIL_TEXTURE_LEVEL_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_DETAIL_TEXTURE_LEVEL_SGIS = 0x809A
 
+pattern GL_DETAIL_TEXTURE_MODE_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_DETAIL_TEXTURE_MODE_SGIS = 0x809B
 
+pattern GL_LINEAR_DETAIL_ALPHA_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_LINEAR_DETAIL_ALPHA_SGIS = 0x8098
 
+pattern GL_LINEAR_DETAIL_COLOR_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_LINEAR_DETAIL_COLOR_SGIS = 0x8099
+
+pattern GL_LINEAR_DETAIL_SGIS  :: (Eq a, Num a) => a
 
 pattern GL_LINEAR_DETAIL_SGIS = 0x8097
diff --git a/generated-src/Graphics/GL/Ext/SGIS/FogFunction.hs b/generated-src/Graphics/GL/Ext/SGIS/FogFunction.hs
--- a/generated-src/Graphics/GL/Ext/SGIS/FogFunction.hs
+++ b/generated-src/Graphics/GL/Ext/SGIS/FogFunction.hs
@@ -52,8 +52,14 @@
 
 {-# NOINLINE glGetFogFuncSGISFunPtr #-}
 
+pattern GL_FOG_FUNC_POINTS_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_FOG_FUNC_POINTS_SGIS = 0x812B
 
+pattern GL_FOG_FUNC_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_FOG_FUNC_SGIS = 0x812A
+
+pattern GL_MAX_FOG_FUNC_POINTS_SGIS  :: (Eq a, Num a) => a
 
 pattern GL_MAX_FOG_FUNC_POINTS_SGIS = 0x812C
diff --git a/generated-src/Graphics/GL/Ext/SGIS/GenerateMipmap.hs b/generated-src/Graphics/GL/Ext/SGIS/GenerateMipmap.hs
--- a/generated-src/Graphics/GL/Ext/SGIS/GenerateMipmap.hs
+++ b/generated-src/Graphics/GL/Ext/SGIS/GenerateMipmap.hs
@@ -18,6 +18,10 @@
 gl_SGIS_generate_mipmap = member "GL_SGIS_generate_mipmap" extensions
 {-# NOINLINE gl_SGIS_generate_mipmap #-}
 
+pattern GL_GENERATE_MIPMAP_HINT_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_GENERATE_MIPMAP_HINT_SGIS = 0x8192
+
+pattern GL_GENERATE_MIPMAP_SGIS  :: (Eq a, Num a) => a
 
 pattern GL_GENERATE_MIPMAP_SGIS = 0x8191
diff --git a/generated-src/Graphics/GL/Ext/SGIS/Multisample.hs b/generated-src/Graphics/GL/Ext/SGIS/Multisample.hs
--- a/generated-src/Graphics/GL/Ext/SGIS/Multisample.hs
+++ b/generated-src/Graphics/GL/Ext/SGIS/Multisample.hs
@@ -71,34 +71,66 @@
 
 {-# NOINLINE glSamplePatternSGISFunPtr #-}
 
+pattern GL_1PASS_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_1PASS_SGIS = 0x80A1
 
+pattern GL_2PASS_0_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_2PASS_0_SGIS = 0x80A2
 
+pattern GL_2PASS_1_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_2PASS_1_SGIS = 0x80A3
 
+pattern GL_4PASS_0_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_4PASS_0_SGIS = 0x80A4
 
+pattern GL_4PASS_1_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_4PASS_1_SGIS = 0x80A5
 
+pattern GL_4PASS_2_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_4PASS_2_SGIS = 0x80A6
 
+pattern GL_4PASS_3_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_4PASS_3_SGIS = 0x80A7
 
+pattern GL_MULTISAMPLE_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_MULTISAMPLE_SGIS = 0x809D
 
+pattern GL_SAMPLES_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_SAMPLES_SGIS = 0x80A9
 
+pattern GL_SAMPLE_ALPHA_TO_MASK_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_SAMPLE_ALPHA_TO_MASK_SGIS = 0x809E
 
+pattern GL_SAMPLE_ALPHA_TO_ONE_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_SAMPLE_ALPHA_TO_ONE_SGIS = 0x809F
 
+pattern GL_SAMPLE_BUFFERS_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_SAMPLE_BUFFERS_SGIS = 0x80A8
 
+pattern GL_SAMPLE_MASK_INVERT_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_SAMPLE_MASK_INVERT_SGIS = 0x80AB
 
+pattern GL_SAMPLE_MASK_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_SAMPLE_MASK_SGIS = 0x80A0
 
+pattern GL_SAMPLE_MASK_VALUE_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_SAMPLE_MASK_VALUE_SGIS = 0x80AA
+
+pattern GL_SAMPLE_PATTERN_SGIS  :: (Eq a, Num a) => a
 
 pattern GL_SAMPLE_PATTERN_SGIS = 0x80AC
diff --git a/generated-src/Graphics/GL/Ext/SGIS/PixelTexture.hs b/generated-src/Graphics/GL/Ext/SGIS/PixelTexture.hs
--- a/generated-src/Graphics/GL/Ext/SGIS/PixelTexture.hs
+++ b/generated-src/Graphics/GL/Ext/SGIS/PixelTexture.hs
@@ -129,10 +129,18 @@
 
 {-# NOINLINE glPixelTexGenParameterivSGISFunPtr #-}
 
+pattern GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS = 0x8355
 
+pattern GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS = 0x8354
 
+pattern GL_PIXEL_GROUP_COLOR_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_PIXEL_GROUP_COLOR_SGIS = 0x8356
+
+pattern GL_PIXEL_TEXTURE_SGIS  :: (Eq a, Num a) => a
 
 pattern GL_PIXEL_TEXTURE_SGIS = 0x8353
diff --git a/generated-src/Graphics/GL/Ext/SGIS/PointLineTexgen.hs b/generated-src/Graphics/GL/Ext/SGIS/PointLineTexgen.hs
--- a/generated-src/Graphics/GL/Ext/SGIS/PointLineTexgen.hs
+++ b/generated-src/Graphics/GL/Ext/SGIS/PointLineTexgen.hs
@@ -24,18 +24,34 @@
 gl_SGIS_point_line_texgen = member "GL_SGIS_point_line_texgen" extensions
 {-# NOINLINE gl_SGIS_point_line_texgen #-}
 
+pattern GL_EYE_DISTANCE_TO_LINE_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_EYE_DISTANCE_TO_LINE_SGIS = 0x81F2
 
+pattern GL_EYE_DISTANCE_TO_POINT_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_EYE_DISTANCE_TO_POINT_SGIS = 0x81F0
 
+pattern GL_EYE_LINE_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_EYE_LINE_SGIS = 0x81F6
 
+pattern GL_EYE_POINT_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_EYE_POINT_SGIS = 0x81F4
 
+pattern GL_OBJECT_DISTANCE_TO_LINE_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_OBJECT_DISTANCE_TO_LINE_SGIS = 0x81F3
 
+pattern GL_OBJECT_DISTANCE_TO_POINT_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_OBJECT_DISTANCE_TO_POINT_SGIS = 0x81F1
 
+pattern GL_OBJECT_LINE_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_OBJECT_LINE_SGIS = 0x81F7
+
+pattern GL_OBJECT_POINT_SGIS  :: (Eq a, Num a) => a
 
 pattern GL_OBJECT_POINT_SGIS = 0x81F5
diff --git a/generated-src/Graphics/GL/Ext/SGIS/PointParameters.hs b/generated-src/Graphics/GL/Ext/SGIS/PointParameters.hs
--- a/generated-src/Graphics/GL/Ext/SGIS/PointParameters.hs
+++ b/generated-src/Graphics/GL/Ext/SGIS/PointParameters.hs
@@ -63,10 +63,18 @@
 
 {-# NOINLINE glPointParameterfvSGISFunPtr #-}
 
+pattern GL_DISTANCE_ATTENUATION_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_DISTANCE_ATTENUATION_SGIS = 0x8129
 
+pattern GL_POINT_FADE_THRESHOLD_SIZE_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_POINT_FADE_THRESHOLD_SIZE_SGIS = 0x8128
 
+pattern GL_POINT_SIZE_MAX_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_POINT_SIZE_MAX_SGIS = 0x8127
+
+pattern GL_POINT_SIZE_MIN_SGIS  :: (Eq a, Num a) => a
 
 pattern GL_POINT_SIZE_MIN_SGIS = 0x8126
diff --git a/generated-src/Graphics/GL/Ext/SGIS/SharpenTexture.hs b/generated-src/Graphics/GL/Ext/SGIS/SharpenTexture.hs
--- a/generated-src/Graphics/GL/Ext/SGIS/SharpenTexture.hs
+++ b/generated-src/Graphics/GL/Ext/SGIS/SharpenTexture.hs
@@ -57,10 +57,18 @@
 
 {-# NOINLINE glSharpenTexFuncSGISFunPtr #-}
 
+pattern GL_LINEAR_SHARPEN_ALPHA_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_LINEAR_SHARPEN_ALPHA_SGIS = 0x80AE
 
+pattern GL_LINEAR_SHARPEN_COLOR_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_LINEAR_SHARPEN_COLOR_SGIS = 0x80AF
 
+pattern GL_LINEAR_SHARPEN_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_LINEAR_SHARPEN_SGIS = 0x80AD
+
+pattern GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS  :: (Eq a, Num a) => a
 
 pattern GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS = 0x80B0
diff --git a/generated-src/Graphics/GL/Ext/SGIS/Texture4D.hs b/generated-src/Graphics/GL/Ext/SGIS/Texture4D.hs
--- a/generated-src/Graphics/GL/Ext/SGIS/Texture4D.hs
+++ b/generated-src/Graphics/GL/Ext/SGIS/Texture4D.hs
@@ -87,22 +87,42 @@
 
 {-# NOINLINE glTexSubImage4DSGISFunPtr #-}
 
+pattern GL_MAX_4D_TEXTURE_SIZE_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_MAX_4D_TEXTURE_SIZE_SGIS = 0x8138
 
+pattern GL_PACK_IMAGE_DEPTH_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_PACK_IMAGE_DEPTH_SGIS = 0x8131
 
+pattern GL_PACK_SKIP_VOLUMES_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_PACK_SKIP_VOLUMES_SGIS = 0x8130
 
+pattern GL_PROXY_TEXTURE_4D_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_PROXY_TEXTURE_4D_SGIS = 0x8135
 
+pattern GL_TEXTURE_4DSIZE_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_4DSIZE_SGIS = 0x8136
 
+pattern GL_TEXTURE_4D_BINDING_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_4D_BINDING_SGIS = 0x814F
 
+pattern GL_TEXTURE_4D_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_4D_SGIS = 0x8134
 
+pattern GL_TEXTURE_WRAP_Q_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_WRAP_Q_SGIS = 0x8137
 
+pattern GL_UNPACK_IMAGE_DEPTH_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_UNPACK_IMAGE_DEPTH_SGIS = 0x8133
+
+pattern GL_UNPACK_SKIP_VOLUMES_SGIS  :: (Eq a, Num a) => a
 
 pattern GL_UNPACK_SKIP_VOLUMES_SGIS = 0x8132
diff --git a/generated-src/Graphics/GL/Ext/SGIS/TextureBorderClamp.hs b/generated-src/Graphics/GL/Ext/SGIS/TextureBorderClamp.hs
--- a/generated-src/Graphics/GL/Ext/SGIS/TextureBorderClamp.hs
+++ b/generated-src/Graphics/GL/Ext/SGIS/TextureBorderClamp.hs
@@ -17,4 +17,6 @@
 gl_SGIS_texture_border_clamp = member "GL_SGIS_texture_border_clamp" extensions
 {-# NOINLINE gl_SGIS_texture_border_clamp #-}
 
+pattern GL_CLAMP_TO_BORDER_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_CLAMP_TO_BORDER_SGIS = 0x812D
diff --git a/generated-src/Graphics/GL/Ext/SGIS/TextureColorMask.hs b/generated-src/Graphics/GL/Ext/SGIS/TextureColorMask.hs
--- a/generated-src/Graphics/GL/Ext/SGIS/TextureColorMask.hs
+++ b/generated-src/Graphics/GL/Ext/SGIS/TextureColorMask.hs
@@ -42,4 +42,6 @@
 
 {-# NOINLINE glTextureColorMaskSGISFunPtr #-}
 
+pattern GL_TEXTURE_COLOR_WRITEMASK_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_COLOR_WRITEMASK_SGIS = 0x81EF
diff --git a/generated-src/Graphics/GL/Ext/SGIS/TextureEdgeClamp.hs b/generated-src/Graphics/GL/Ext/SGIS/TextureEdgeClamp.hs
--- a/generated-src/Graphics/GL/Ext/SGIS/TextureEdgeClamp.hs
+++ b/generated-src/Graphics/GL/Ext/SGIS/TextureEdgeClamp.hs
@@ -17,4 +17,6 @@
 gl_SGIS_texture_edge_clamp = member "GL_SGIS_texture_edge_clamp" extensions
 {-# NOINLINE gl_SGIS_texture_edge_clamp #-}
 
+pattern GL_CLAMP_TO_EDGE_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_CLAMP_TO_EDGE_SGIS = 0x812F
diff --git a/generated-src/Graphics/GL/Ext/SGIS/TextureFilter4.hs b/generated-src/Graphics/GL/Ext/SGIS/TextureFilter4.hs
--- a/generated-src/Graphics/GL/Ext/SGIS/TextureFilter4.hs
+++ b/generated-src/Graphics/GL/Ext/SGIS/TextureFilter4.hs
@@ -59,6 +59,10 @@
 
 {-# NOINLINE glTexFilterFuncSGISFunPtr #-}
 
+pattern GL_FILTER4_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_FILTER4_SGIS = 0x8146
+
+pattern GL_TEXTURE_FILTER4_SIZE_SGIS  :: (Eq a, Num a) => a
 
 pattern GL_TEXTURE_FILTER4_SIZE_SGIS = 0x8147
diff --git a/generated-src/Graphics/GL/Ext/SGIS/TextureLod.hs b/generated-src/Graphics/GL/Ext/SGIS/TextureLod.hs
--- a/generated-src/Graphics/GL/Ext/SGIS/TextureLod.hs
+++ b/generated-src/Graphics/GL/Ext/SGIS/TextureLod.hs
@@ -20,10 +20,18 @@
 gl_SGIS_texture_lod = member "GL_SGIS_texture_lod" extensions
 {-# NOINLINE gl_SGIS_texture_lod #-}
 
+pattern GL_TEXTURE_BASE_LEVEL_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_BASE_LEVEL_SGIS = 0x813C
 
+pattern GL_TEXTURE_MAX_LEVEL_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_MAX_LEVEL_SGIS = 0x813D
 
+pattern GL_TEXTURE_MAX_LOD_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_MAX_LOD_SGIS = 0x813B
+
+pattern GL_TEXTURE_MIN_LOD_SGIS  :: (Eq a, Num a) => a
 
 pattern GL_TEXTURE_MIN_LOD_SGIS = 0x813A
diff --git a/generated-src/Graphics/GL/Ext/SGIS/TextureSelect.hs b/generated-src/Graphics/GL/Ext/SGIS/TextureSelect.hs
--- a/generated-src/Graphics/GL/Ext/SGIS/TextureSelect.hs
+++ b/generated-src/Graphics/GL/Ext/SGIS/TextureSelect.hs
@@ -38,46 +38,90 @@
 gl_SGIS_texture_select = member "GL_SGIS_texture_select" extensions
 {-# NOINLINE gl_SGIS_texture_select #-}
 
+pattern GL_DUAL_ALPHA12_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_DUAL_ALPHA12_SGIS = 0x8112
 
+pattern GL_DUAL_ALPHA16_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_DUAL_ALPHA16_SGIS = 0x8113
 
+pattern GL_DUAL_ALPHA4_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_DUAL_ALPHA4_SGIS = 0x8110
 
+pattern GL_DUAL_ALPHA8_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_DUAL_ALPHA8_SGIS = 0x8111
 
+pattern GL_DUAL_INTENSITY12_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_DUAL_INTENSITY12_SGIS = 0x811A
 
+pattern GL_DUAL_INTENSITY16_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_DUAL_INTENSITY16_SGIS = 0x811B
 
+pattern GL_DUAL_INTENSITY4_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_DUAL_INTENSITY4_SGIS = 0x8118
 
+pattern GL_DUAL_INTENSITY8_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_DUAL_INTENSITY8_SGIS = 0x8119
 
+pattern GL_DUAL_LUMINANCE12_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_DUAL_LUMINANCE12_SGIS = 0x8116
 
+pattern GL_DUAL_LUMINANCE16_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_DUAL_LUMINANCE16_SGIS = 0x8117
 
+pattern GL_DUAL_LUMINANCE4_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_DUAL_LUMINANCE4_SGIS = 0x8114
 
+pattern GL_DUAL_LUMINANCE8_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_DUAL_LUMINANCE8_SGIS = 0x8115
 
+pattern GL_DUAL_LUMINANCE_ALPHA4_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_DUAL_LUMINANCE_ALPHA4_SGIS = 0x811C
 
+pattern GL_DUAL_LUMINANCE_ALPHA8_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_DUAL_LUMINANCE_ALPHA8_SGIS = 0x811D
 
+pattern GL_DUAL_TEXTURE_SELECT_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_DUAL_TEXTURE_SELECT_SGIS = 0x8124
 
+pattern GL_QUAD_ALPHA4_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_QUAD_ALPHA4_SGIS = 0x811E
 
+pattern GL_QUAD_ALPHA8_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_QUAD_ALPHA8_SGIS = 0x811F
 
+pattern GL_QUAD_INTENSITY4_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_QUAD_INTENSITY4_SGIS = 0x8122
 
+pattern GL_QUAD_INTENSITY8_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_QUAD_INTENSITY8_SGIS = 0x8123
 
+pattern GL_QUAD_LUMINANCE4_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_QUAD_LUMINANCE4_SGIS = 0x8120
 
+pattern GL_QUAD_LUMINANCE8_SGIS  :: (Eq a, Num a) => a
+
 pattern GL_QUAD_LUMINANCE8_SGIS = 0x8121
+
+pattern GL_QUAD_TEXTURE_SELECT_SGIS  :: (Eq a, Num a) => a
 
 pattern GL_QUAD_TEXTURE_SELECT_SGIS = 0x8125
diff --git a/generated-src/Graphics/GL/Ext/SGIX/Async.hs b/generated-src/Graphics/GL/Ext/SGIX/Async.hs
--- a/generated-src/Graphics/GL/Ext/SGIX/Async.hs
+++ b/generated-src/Graphics/GL/Ext/SGIX/Async.hs
@@ -98,4 +98,6 @@
 
 {-# NOINLINE glPollAsyncSGIXFunPtr #-}
 
+pattern GL_ASYNC_MARKER_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_ASYNC_MARKER_SGIX = 0x8329
diff --git a/generated-src/Graphics/GL/Ext/SGIX/AsyncHistogram.hs b/generated-src/Graphics/GL/Ext/SGIX/AsyncHistogram.hs
--- a/generated-src/Graphics/GL/Ext/SGIX/AsyncHistogram.hs
+++ b/generated-src/Graphics/GL/Ext/SGIX/AsyncHistogram.hs
@@ -18,6 +18,10 @@
 gl_SGIX_async_histogram = member "GL_SGIX_async_histogram" extensions
 {-# NOINLINE gl_SGIX_async_histogram #-}
 
+pattern GL_ASYNC_HISTOGRAM_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_ASYNC_HISTOGRAM_SGIX = 0x832C
+
+pattern GL_MAX_ASYNC_HISTOGRAM_SGIX  :: (Eq a, Num a) => a
 
 pattern GL_MAX_ASYNC_HISTOGRAM_SGIX = 0x832D
diff --git a/generated-src/Graphics/GL/Ext/SGIX/AsyncPixel.hs b/generated-src/Graphics/GL/Ext/SGIX/AsyncPixel.hs
--- a/generated-src/Graphics/GL/Ext/SGIX/AsyncPixel.hs
+++ b/generated-src/Graphics/GL/Ext/SGIX/AsyncPixel.hs
@@ -22,14 +22,26 @@
 gl_SGIX_async_pixel = member "GL_SGIX_async_pixel" extensions
 {-# NOINLINE gl_SGIX_async_pixel #-}
 
+pattern GL_ASYNC_DRAW_PIXELS_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_ASYNC_DRAW_PIXELS_SGIX = 0x835D
 
+pattern GL_ASYNC_READ_PIXELS_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_ASYNC_READ_PIXELS_SGIX = 0x835E
 
+pattern GL_ASYNC_TEX_IMAGE_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_ASYNC_TEX_IMAGE_SGIX = 0x835C
 
+pattern GL_MAX_ASYNC_DRAW_PIXELS_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_MAX_ASYNC_DRAW_PIXELS_SGIX = 0x8360
 
+pattern GL_MAX_ASYNC_READ_PIXELS_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_MAX_ASYNC_READ_PIXELS_SGIX = 0x8361
+
+pattern GL_MAX_ASYNC_TEX_IMAGE_SGIX  :: (Eq a, Num a) => a
 
 pattern GL_MAX_ASYNC_TEX_IMAGE_SGIX = 0x835F
diff --git a/generated-src/Graphics/GL/Ext/SGIX/BlendAlphaMinmax.hs b/generated-src/Graphics/GL/Ext/SGIX/BlendAlphaMinmax.hs
--- a/generated-src/Graphics/GL/Ext/SGIX/BlendAlphaMinmax.hs
+++ b/generated-src/Graphics/GL/Ext/SGIX/BlendAlphaMinmax.hs
@@ -18,6 +18,10 @@
 gl_SGIX_blend_alpha_minmax = member "GL_SGIX_blend_alpha_minmax" extensions
 {-# NOINLINE gl_SGIX_blend_alpha_minmax #-}
 
+pattern GL_ALPHA_MAX_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_ALPHA_MAX_SGIX = 0x8321
+
+pattern GL_ALPHA_MIN_SGIX  :: (Eq a, Num a) => a
 
 pattern GL_ALPHA_MIN_SGIX = 0x8320
diff --git a/generated-src/Graphics/GL/Ext/SGIX/CalligraphicFragment.hs b/generated-src/Graphics/GL/Ext/SGIX/CalligraphicFragment.hs
--- a/generated-src/Graphics/GL/Ext/SGIX/CalligraphicFragment.hs
+++ b/generated-src/Graphics/GL/Ext/SGIX/CalligraphicFragment.hs
@@ -17,4 +17,6 @@
 gl_SGIX_calligraphic_fragment = member "GL_SGIX_calligraphic_fragment" extensions
 {-# NOINLINE gl_SGIX_calligraphic_fragment #-}
 
+pattern GL_CALLIGRAPHIC_FRAGMENT_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_CALLIGRAPHIC_FRAGMENT_SGIX = 0x8183
diff --git a/generated-src/Graphics/GL/Ext/SGIX/Clipmap.hs b/generated-src/Graphics/GL/Ext/SGIX/Clipmap.hs
--- a/generated-src/Graphics/GL/Ext/SGIX/Clipmap.hs
+++ b/generated-src/Graphics/GL/Ext/SGIX/Clipmap.hs
@@ -28,26 +28,50 @@
 gl_SGIX_clipmap = member "GL_SGIX_clipmap" extensions
 {-# NOINLINE gl_SGIX_clipmap #-}
 
+pattern GL_LINEAR_CLIPMAP_LINEAR_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_LINEAR_CLIPMAP_LINEAR_SGIX = 0x8170
 
+pattern GL_LINEAR_CLIPMAP_NEAREST_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_LINEAR_CLIPMAP_NEAREST_SGIX = 0x844F
 
+pattern GL_MAX_CLIPMAP_DEPTH_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_MAX_CLIPMAP_DEPTH_SGIX = 0x8177
 
+pattern GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX = 0x8178
 
+pattern GL_NEAREST_CLIPMAP_LINEAR_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_NEAREST_CLIPMAP_LINEAR_SGIX = 0x844E
 
+pattern GL_NEAREST_CLIPMAP_NEAREST_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_NEAREST_CLIPMAP_NEAREST_SGIX = 0x844D
 
+pattern GL_TEXTURE_CLIPMAP_CENTER_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_CLIPMAP_CENTER_SGIX = 0x8171
 
+pattern GL_TEXTURE_CLIPMAP_DEPTH_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_CLIPMAP_DEPTH_SGIX = 0x8176
 
+pattern GL_TEXTURE_CLIPMAP_FRAME_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_CLIPMAP_FRAME_SGIX = 0x8172
 
+pattern GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX = 0x8175
 
+pattern GL_TEXTURE_CLIPMAP_OFFSET_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_CLIPMAP_OFFSET_SGIX = 0x8173
+
+pattern GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX  :: (Eq a, Num a) => a
 
 pattern GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX = 0x8174
diff --git a/generated-src/Graphics/GL/Ext/SGIX/ConvolutionAccuracy.hs b/generated-src/Graphics/GL/Ext/SGIX/ConvolutionAccuracy.hs
--- a/generated-src/Graphics/GL/Ext/SGIX/ConvolutionAccuracy.hs
+++ b/generated-src/Graphics/GL/Ext/SGIX/ConvolutionAccuracy.hs
@@ -17,4 +17,6 @@
 gl_SGIX_convolution_accuracy = member "GL_SGIX_convolution_accuracy" extensions
 {-# NOINLINE gl_SGIX_convolution_accuracy #-}
 
+pattern GL_CONVOLUTION_HINT_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_CONVOLUTION_HINT_SGIX = 0x8316
diff --git a/generated-src/Graphics/GL/Ext/SGIX/DepthTexture.hs b/generated-src/Graphics/GL/Ext/SGIX/DepthTexture.hs
--- a/generated-src/Graphics/GL/Ext/SGIX/DepthTexture.hs
+++ b/generated-src/Graphics/GL/Ext/SGIX/DepthTexture.hs
@@ -19,8 +19,14 @@
 gl_SGIX_depth_texture = member "GL_SGIX_depth_texture" extensions
 {-# NOINLINE gl_SGIX_depth_texture #-}
 
+pattern GL_DEPTH_COMPONENT16_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_DEPTH_COMPONENT16_SGIX = 0x81A5
 
+pattern GL_DEPTH_COMPONENT24_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_DEPTH_COMPONENT24_SGIX = 0x81A6
+
+pattern GL_DEPTH_COMPONENT32_SGIX  :: (Eq a, Num a) => a
 
 pattern GL_DEPTH_COMPONENT32_SGIX = 0x81A7
diff --git a/generated-src/Graphics/GL/Ext/SGIX/FogOffset.hs b/generated-src/Graphics/GL/Ext/SGIX/FogOffset.hs
--- a/generated-src/Graphics/GL/Ext/SGIX/FogOffset.hs
+++ b/generated-src/Graphics/GL/Ext/SGIX/FogOffset.hs
@@ -18,6 +18,10 @@
 gl_SGIX_fog_offset = member "GL_SGIX_fog_offset" extensions
 {-# NOINLINE gl_SGIX_fog_offset #-}
 
+pattern GL_FOG_OFFSET_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_FOG_OFFSET_SGIX = 0x8198
+
+pattern GL_FOG_OFFSET_VALUE_SGIX  :: (Eq a, Num a) => a
 
 pattern GL_FOG_OFFSET_VALUE_SGIX = 0x8199
diff --git a/generated-src/Graphics/GL/Ext/SGIX/FragmentLighting.hs b/generated-src/Graphics/GL/Ext/SGIX/FragmentLighting.hs
--- a/generated-src/Graphics/GL/Ext/SGIX/FragmentLighting.hs
+++ b/generated-src/Graphics/GL/Ext/SGIX/FragmentLighting.hs
@@ -365,42 +365,82 @@
 
 {-# NOINLINE glLightEnviSGIXFunPtr #-}
 
+pattern GL_CURRENT_RASTER_NORMAL_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_CURRENT_RASTER_NORMAL_SGIX = 0x8406
 
+pattern GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX = 0x8402
 
+pattern GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX = 0x8403
 
+pattern GL_FRAGMENT_COLOR_MATERIAL_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_FRAGMENT_COLOR_MATERIAL_SGIX = 0x8401
 
+pattern GL_FRAGMENT_LIGHT0_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_FRAGMENT_LIGHT0_SGIX = 0x840C
 
+pattern GL_FRAGMENT_LIGHT1_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_FRAGMENT_LIGHT1_SGIX = 0x840D
 
+pattern GL_FRAGMENT_LIGHT2_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_FRAGMENT_LIGHT2_SGIX = 0x840E
 
+pattern GL_FRAGMENT_LIGHT3_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_FRAGMENT_LIGHT3_SGIX = 0x840F
 
+pattern GL_FRAGMENT_LIGHT4_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_FRAGMENT_LIGHT4_SGIX = 0x8410
 
+pattern GL_FRAGMENT_LIGHT5_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_FRAGMENT_LIGHT5_SGIX = 0x8411
 
+pattern GL_FRAGMENT_LIGHT6_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_FRAGMENT_LIGHT6_SGIX = 0x8412
 
+pattern GL_FRAGMENT_LIGHT7_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_FRAGMENT_LIGHT7_SGIX = 0x8413
 
+pattern GL_FRAGMENT_LIGHTING_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_FRAGMENT_LIGHTING_SGIX = 0x8400
 
+pattern GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX = 0x840A
 
+pattern GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX = 0x8408
 
+pattern GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX = 0x840B
 
+pattern GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX = 0x8409
 
+pattern GL_LIGHT_ENV_MODE_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_LIGHT_ENV_MODE_SGIX = 0x8407
 
+pattern GL_MAX_ACTIVE_LIGHTS_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_MAX_ACTIVE_LIGHTS_SGIX = 0x8405
+
+pattern GL_MAX_FRAGMENT_LIGHTS_SGIX  :: (Eq a, Num a) => a
 
 pattern GL_MAX_FRAGMENT_LIGHTS_SGIX = 0x8404
diff --git a/generated-src/Graphics/GL/Ext/SGIX/Framezoom.hs b/generated-src/Graphics/GL/Ext/SGIX/Framezoom.hs
--- a/generated-src/Graphics/GL/Ext/SGIX/Framezoom.hs
+++ b/generated-src/Graphics/GL/Ext/SGIX/Framezoom.hs
@@ -38,8 +38,14 @@
 
 {-# NOINLINE glFrameZoomSGIXFunPtr #-}
 
+pattern GL_FRAMEZOOM_FACTOR_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_FRAMEZOOM_FACTOR_SGIX = 0x818C
 
+pattern GL_FRAMEZOOM_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_FRAMEZOOM_SGIX = 0x818B
+
+pattern GL_MAX_FRAMEZOOM_FACTOR_SGIX  :: (Eq a, Num a) => a
 
 pattern GL_MAX_FRAMEZOOM_FACTOR_SGIX = 0x818D
diff --git a/generated-src/Graphics/GL/Ext/SGIX/Instruments.hs b/generated-src/Graphics/GL/Ext/SGIX/Instruments.hs
--- a/generated-src/Graphics/GL/Ext/SGIX/Instruments.hs
+++ b/generated-src/Graphics/GL/Ext/SGIX/Instruments.hs
@@ -99,6 +99,10 @@
 
 {-# NOINLINE glStopInstrumentsSGIXFunPtr #-}
 
+pattern GL_INSTRUMENT_BUFFER_POINTER_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_INSTRUMENT_BUFFER_POINTER_SGIX = 0x8180
+
+pattern GL_INSTRUMENT_MEASUREMENTS_SGIX  :: (Eq a, Num a) => a
 
 pattern GL_INSTRUMENT_MEASUREMENTS_SGIX = 0x8181
diff --git a/generated-src/Graphics/GL/Ext/SGIX/Interlace.hs b/generated-src/Graphics/GL/Ext/SGIX/Interlace.hs
--- a/generated-src/Graphics/GL/Ext/SGIX/Interlace.hs
+++ b/generated-src/Graphics/GL/Ext/SGIX/Interlace.hs
@@ -17,4 +17,6 @@
 gl_SGIX_interlace = member "GL_SGIX_interlace" extensions
 {-# NOINLINE gl_SGIX_interlace #-}
 
+pattern GL_INTERLACE_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_INTERLACE_SGIX = 0x8094
diff --git a/generated-src/Graphics/GL/Ext/SGIX/IrInstrument1.hs b/generated-src/Graphics/GL/Ext/SGIX/IrInstrument1.hs
--- a/generated-src/Graphics/GL/Ext/SGIX/IrInstrument1.hs
+++ b/generated-src/Graphics/GL/Ext/SGIX/IrInstrument1.hs
@@ -17,4 +17,6 @@
 gl_SGIX_ir_instrument1 = member "GL_SGIX_ir_instrument1" extensions
 {-# NOINLINE gl_SGIX_ir_instrument1 #-}
 
+pattern GL_IR_INSTRUMENT1_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_IR_INSTRUMENT1_SGIX = 0x817F
diff --git a/generated-src/Graphics/GL/Ext/SGIX/ListPriority.hs b/generated-src/Graphics/GL/Ext/SGIX/ListPriority.hs
--- a/generated-src/Graphics/GL/Ext/SGIX/ListPriority.hs
+++ b/generated-src/Graphics/GL/Ext/SGIX/ListPriority.hs
@@ -138,4 +138,6 @@
 
 {-# NOINLINE glListParameterivSGIXFunPtr #-}
 
+pattern GL_LIST_PRIORITY_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_LIST_PRIORITY_SGIX = 0x8182
diff --git a/generated-src/Graphics/GL/Ext/SGIX/PixelTexture.hs b/generated-src/Graphics/GL/Ext/SGIX/PixelTexture.hs
--- a/generated-src/Graphics/GL/Ext/SGIX/PixelTexture.hs
+++ b/generated-src/Graphics/GL/Ext/SGIX/PixelTexture.hs
@@ -37,6 +37,10 @@
 
 {-# NOINLINE glPixelTexGenSGIXFunPtr #-}
 
+pattern GL_PIXEL_TEX_GEN_MODE_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_PIXEL_TEX_GEN_MODE_SGIX = 0x832B
+
+pattern GL_PIXEL_TEX_GEN_SGIX  :: (Eq a, Num a) => a
 
 pattern GL_PIXEL_TEX_GEN_SGIX = 0x8139
diff --git a/generated-src/Graphics/GL/Ext/SGIX/PixelTiles.hs b/generated-src/Graphics/GL/Ext/SGIX/PixelTiles.hs
--- a/generated-src/Graphics/GL/Ext/SGIX/PixelTiles.hs
+++ b/generated-src/Graphics/GL/Ext/SGIX/PixelTiles.hs
@@ -24,18 +24,34 @@
 gl_SGIX_pixel_tiles = member "GL_SGIX_pixel_tiles" extensions
 {-# NOINLINE gl_SGIX_pixel_tiles #-}
 
+pattern GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX = 0x813E
 
+pattern GL_PIXEL_TILE_CACHE_INCREMENT_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_PIXEL_TILE_CACHE_INCREMENT_SGIX = 0x813F
 
+pattern GL_PIXEL_TILE_CACHE_SIZE_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_PIXEL_TILE_CACHE_SIZE_SGIX = 0x8145
 
+pattern GL_PIXEL_TILE_GRID_DEPTH_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_PIXEL_TILE_GRID_DEPTH_SGIX = 0x8144
 
+pattern GL_PIXEL_TILE_GRID_HEIGHT_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_PIXEL_TILE_GRID_HEIGHT_SGIX = 0x8143
 
+pattern GL_PIXEL_TILE_GRID_WIDTH_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_PIXEL_TILE_GRID_WIDTH_SGIX = 0x8142
 
+pattern GL_PIXEL_TILE_HEIGHT_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_PIXEL_TILE_HEIGHT_SGIX = 0x8141
+
+pattern GL_PIXEL_TILE_WIDTH_SGIX  :: (Eq a, Num a) => a
 
 pattern GL_PIXEL_TILE_WIDTH_SGIX = 0x8140
diff --git a/generated-src/Graphics/GL/Ext/SGIX/PolynomialFfd.hs b/generated-src/Graphics/GL/Ext/SGIX/PolynomialFfd.hs
--- a/generated-src/Graphics/GL/Ext/SGIX/PolynomialFfd.hs
+++ b/generated-src/Graphics/GL/Ext/SGIX/PolynomialFfd.hs
@@ -127,14 +127,26 @@
 
 {-# NOINLINE glLoadIdentityDeformationMapSGIXFunPtr #-}
 
+pattern GL_DEFORMATIONS_MASK_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_DEFORMATIONS_MASK_SGIX = 0x8196
 
+pattern GL_GEOMETRY_DEFORMATION_BIT_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_GEOMETRY_DEFORMATION_BIT_SGIX = 0x00000002
 
+pattern GL_GEOMETRY_DEFORMATION_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_GEOMETRY_DEFORMATION_SGIX = 0x8194
 
+pattern GL_MAX_DEFORMATION_ORDER_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_MAX_DEFORMATION_ORDER_SGIX = 0x8197
 
+pattern GL_TEXTURE_DEFORMATION_BIT_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_DEFORMATION_BIT_SGIX = 0x00000001
+
+pattern GL_TEXTURE_DEFORMATION_SGIX  :: (Eq a, Num a) => a
 
 pattern GL_TEXTURE_DEFORMATION_SGIX = 0x8195
diff --git a/generated-src/Graphics/GL/Ext/SGIX/ReferencePlane.hs b/generated-src/Graphics/GL/Ext/SGIX/ReferencePlane.hs
--- a/generated-src/Graphics/GL/Ext/SGIX/ReferencePlane.hs
+++ b/generated-src/Graphics/GL/Ext/SGIX/ReferencePlane.hs
@@ -37,6 +37,10 @@
 
 {-# NOINLINE glReferencePlaneSGIXFunPtr #-}
 
+pattern GL_REFERENCE_PLANE_EQUATION_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_REFERENCE_PLANE_EQUATION_SGIX = 0x817E
+
+pattern GL_REFERENCE_PLANE_SGIX  :: (Eq a, Num a) => a
 
 pattern GL_REFERENCE_PLANE_SGIX = 0x817D
diff --git a/generated-src/Graphics/GL/Ext/SGIX/Resample.hs b/generated-src/Graphics/GL/Ext/SGIX/Resample.hs
--- a/generated-src/Graphics/GL/Ext/SGIX/Resample.hs
+++ b/generated-src/Graphics/GL/Ext/SGIX/Resample.hs
@@ -21,12 +21,22 @@
 gl_SGIX_resample = member "GL_SGIX_resample" extensions
 {-# NOINLINE gl_SGIX_resample #-}
 
+pattern GL_PACK_RESAMPLE_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_PACK_RESAMPLE_SGIX = 0x842E
 
+pattern GL_RESAMPLE_DECIMATE_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_RESAMPLE_DECIMATE_SGIX = 0x8430
 
+pattern GL_RESAMPLE_REPLICATE_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_RESAMPLE_REPLICATE_SGIX = 0x8433
 
+pattern GL_RESAMPLE_ZERO_FILL_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_RESAMPLE_ZERO_FILL_SGIX = 0x8434
+
+pattern GL_UNPACK_RESAMPLE_SGIX  :: (Eq a, Num a) => a
 
 pattern GL_UNPACK_RESAMPLE_SGIX = 0x842F
diff --git a/generated-src/Graphics/GL/Ext/SGIX/ScalebiasHint.hs b/generated-src/Graphics/GL/Ext/SGIX/ScalebiasHint.hs
--- a/generated-src/Graphics/GL/Ext/SGIX/ScalebiasHint.hs
+++ b/generated-src/Graphics/GL/Ext/SGIX/ScalebiasHint.hs
@@ -17,4 +17,6 @@
 gl_SGIX_scalebias_hint = member "GL_SGIX_scalebias_hint" extensions
 {-# NOINLINE gl_SGIX_scalebias_hint #-}
 
+pattern GL_SCALEBIAS_HINT_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_SCALEBIAS_HINT_SGIX = 0x8322
diff --git a/generated-src/Graphics/GL/Ext/SGIX/Shadow.hs b/generated-src/Graphics/GL/Ext/SGIX/Shadow.hs
--- a/generated-src/Graphics/GL/Ext/SGIX/Shadow.hs
+++ b/generated-src/Graphics/GL/Ext/SGIX/Shadow.hs
@@ -20,10 +20,18 @@
 gl_SGIX_shadow = member "GL_SGIX_shadow" extensions
 {-# NOINLINE gl_SGIX_shadow #-}
 
+pattern GL_TEXTURE_COMPARE_OPERATOR_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_COMPARE_OPERATOR_SGIX = 0x819B
 
+pattern GL_TEXTURE_COMPARE_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_COMPARE_SGIX = 0x819A
 
+pattern GL_TEXTURE_GEQUAL_R_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_GEQUAL_R_SGIX = 0x819D
+
+pattern GL_TEXTURE_LEQUAL_R_SGIX  :: (Eq a, Num a) => a
 
 pattern GL_TEXTURE_LEQUAL_R_SGIX = 0x819C
diff --git a/generated-src/Graphics/GL/Ext/SGIX/ShadowAmbient.hs b/generated-src/Graphics/GL/Ext/SGIX/ShadowAmbient.hs
--- a/generated-src/Graphics/GL/Ext/SGIX/ShadowAmbient.hs
+++ b/generated-src/Graphics/GL/Ext/SGIX/ShadowAmbient.hs
@@ -17,4 +17,6 @@
 gl_SGIX_shadow_ambient = member "GL_SGIX_shadow_ambient" extensions
 {-# NOINLINE gl_SGIX_shadow_ambient #-}
 
+pattern GL_SHADOW_AMBIENT_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_SHADOW_AMBIENT_SGIX = 0x80BF
diff --git a/generated-src/Graphics/GL/Ext/SGIX/Sprite.hs b/generated-src/Graphics/GL/Ext/SGIX/Sprite.hs
--- a/generated-src/Graphics/GL/Ext/SGIX/Sprite.hs
+++ b/generated-src/Graphics/GL/Ext/SGIX/Sprite.hs
@@ -96,16 +96,30 @@
 
 {-# NOINLINE glSpriteParameterivSGIXFunPtr #-}
 
+pattern GL_SPRITE_AXIAL_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_SPRITE_AXIAL_SGIX = 0x814C
 
+pattern GL_SPRITE_AXIS_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_SPRITE_AXIS_SGIX = 0x814A
 
+pattern GL_SPRITE_EYE_ALIGNED_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_SPRITE_EYE_ALIGNED_SGIX = 0x814E
 
+pattern GL_SPRITE_MODE_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_SPRITE_MODE_SGIX = 0x8149
 
+pattern GL_SPRITE_OBJECT_ALIGNED_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_SPRITE_OBJECT_ALIGNED_SGIX = 0x814D
 
+pattern GL_SPRITE_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_SPRITE_SGIX = 0x8148
+
+pattern GL_SPRITE_TRANSLATION_SGIX  :: (Eq a, Num a) => a
 
 pattern GL_SPRITE_TRANSLATION_SGIX = 0x814B
diff --git a/generated-src/Graphics/GL/Ext/SGIX/Subsample.hs b/generated-src/Graphics/GL/Ext/SGIX/Subsample.hs
--- a/generated-src/Graphics/GL/Ext/SGIX/Subsample.hs
+++ b/generated-src/Graphics/GL/Ext/SGIX/Subsample.hs
@@ -21,12 +21,22 @@
 gl_SGIX_subsample = member "GL_SGIX_subsample" extensions
 {-# NOINLINE gl_SGIX_subsample #-}
 
+pattern GL_PACK_SUBSAMPLE_RATE_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_PACK_SUBSAMPLE_RATE_SGIX = 0x85A0
 
+pattern GL_PIXEL_SUBSAMPLE_2424_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_PIXEL_SUBSAMPLE_2424_SGIX = 0x85A3
 
+pattern GL_PIXEL_SUBSAMPLE_4242_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_PIXEL_SUBSAMPLE_4242_SGIX = 0x85A4
 
+pattern GL_PIXEL_SUBSAMPLE_4444_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_PIXEL_SUBSAMPLE_4444_SGIX = 0x85A2
+
+pattern GL_UNPACK_SUBSAMPLE_RATE_SGIX  :: (Eq a, Num a) => a
 
 pattern GL_UNPACK_SUBSAMPLE_RATE_SGIX = 0x85A1
diff --git a/generated-src/Graphics/GL/Ext/SGIX/TextureAddEnv.hs b/generated-src/Graphics/GL/Ext/SGIX/TextureAddEnv.hs
--- a/generated-src/Graphics/GL/Ext/SGIX/TextureAddEnv.hs
+++ b/generated-src/Graphics/GL/Ext/SGIX/TextureAddEnv.hs
@@ -17,4 +17,6 @@
 gl_SGIX_texture_add_env = member "GL_SGIX_texture_add_env" extensions
 {-# NOINLINE gl_SGIX_texture_add_env #-}
 
+pattern GL_TEXTURE_ENV_BIAS_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_ENV_BIAS_SGIX = 0x80BE
diff --git a/generated-src/Graphics/GL/Ext/SGIX/TextureCoordinateClamp.hs b/generated-src/Graphics/GL/Ext/SGIX/TextureCoordinateClamp.hs
--- a/generated-src/Graphics/GL/Ext/SGIX/TextureCoordinateClamp.hs
+++ b/generated-src/Graphics/GL/Ext/SGIX/TextureCoordinateClamp.hs
@@ -19,8 +19,14 @@
 gl_SGIX_texture_coordinate_clamp = member "GL_SGIX_texture_coordinate_clamp" extensions
 {-# NOINLINE gl_SGIX_texture_coordinate_clamp #-}
 
+pattern GL_TEXTURE_MAX_CLAMP_R_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_MAX_CLAMP_R_SGIX = 0x836B
 
+pattern GL_TEXTURE_MAX_CLAMP_S_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_MAX_CLAMP_S_SGIX = 0x8369
+
+pattern GL_TEXTURE_MAX_CLAMP_T_SGIX  :: (Eq a, Num a) => a
 
 pattern GL_TEXTURE_MAX_CLAMP_T_SGIX = 0x836A
diff --git a/generated-src/Graphics/GL/Ext/SGIX/TextureLodBias.hs b/generated-src/Graphics/GL/Ext/SGIX/TextureLodBias.hs
--- a/generated-src/Graphics/GL/Ext/SGIX/TextureLodBias.hs
+++ b/generated-src/Graphics/GL/Ext/SGIX/TextureLodBias.hs
@@ -19,8 +19,14 @@
 gl_SGIX_texture_lod_bias = member "GL_SGIX_texture_lod_bias" extensions
 {-# NOINLINE gl_SGIX_texture_lod_bias #-}
 
+pattern GL_TEXTURE_LOD_BIAS_R_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_LOD_BIAS_R_SGIX = 0x8190
 
+pattern GL_TEXTURE_LOD_BIAS_S_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_LOD_BIAS_S_SGIX = 0x818E
+
+pattern GL_TEXTURE_LOD_BIAS_T_SGIX  :: (Eq a, Num a) => a
 
 pattern GL_TEXTURE_LOD_BIAS_T_SGIX = 0x818F
diff --git a/generated-src/Graphics/GL/Ext/SGIX/TextureMultiBuffer.hs b/generated-src/Graphics/GL/Ext/SGIX/TextureMultiBuffer.hs
--- a/generated-src/Graphics/GL/Ext/SGIX/TextureMultiBuffer.hs
+++ b/generated-src/Graphics/GL/Ext/SGIX/TextureMultiBuffer.hs
@@ -17,4 +17,6 @@
 gl_SGIX_texture_multi_buffer = member "GL_SGIX_texture_multi_buffer" extensions
 {-# NOINLINE gl_SGIX_texture_multi_buffer #-}
 
+pattern GL_TEXTURE_MULTI_BUFFER_HINT_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_MULTI_BUFFER_HINT_SGIX = 0x812E
diff --git a/generated-src/Graphics/GL/Ext/SGIX/TextureScaleBias.hs b/generated-src/Graphics/GL/Ext/SGIX/TextureScaleBias.hs
--- a/generated-src/Graphics/GL/Ext/SGIX/TextureScaleBias.hs
+++ b/generated-src/Graphics/GL/Ext/SGIX/TextureScaleBias.hs
@@ -20,10 +20,18 @@
 gl_SGIX_texture_scale_bias = member "GL_SGIX_texture_scale_bias" extensions
 {-# NOINLINE gl_SGIX_texture_scale_bias #-}
 
+pattern GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX = 0x817B
 
+pattern GL_POST_TEXTURE_FILTER_BIAS_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_POST_TEXTURE_FILTER_BIAS_SGIX = 0x8179
 
+pattern GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX = 0x817C
+
+pattern GL_POST_TEXTURE_FILTER_SCALE_SGIX  :: (Eq a, Num a) => a
 
 pattern GL_POST_TEXTURE_FILTER_SCALE_SGIX = 0x817A
diff --git a/generated-src/Graphics/GL/Ext/SGIX/VertexPreclip.hs b/generated-src/Graphics/GL/Ext/SGIX/VertexPreclip.hs
--- a/generated-src/Graphics/GL/Ext/SGIX/VertexPreclip.hs
+++ b/generated-src/Graphics/GL/Ext/SGIX/VertexPreclip.hs
@@ -18,6 +18,10 @@
 gl_SGIX_vertex_preclip = member "GL_SGIX_vertex_preclip" extensions
 {-# NOINLINE gl_SGIX_vertex_preclip #-}
 
+pattern GL_VERTEX_PRECLIP_HINT_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_VERTEX_PRECLIP_HINT_SGIX = 0x83EF
+
+pattern GL_VERTEX_PRECLIP_SGIX  :: (Eq a, Num a) => a
 
 pattern GL_VERTEX_PRECLIP_SGIX = 0x83EE
diff --git a/generated-src/Graphics/GL/Ext/SGIX/Ycrcb.hs b/generated-src/Graphics/GL/Ext/SGIX/Ycrcb.hs
--- a/generated-src/Graphics/GL/Ext/SGIX/Ycrcb.hs
+++ b/generated-src/Graphics/GL/Ext/SGIX/Ycrcb.hs
@@ -18,6 +18,10 @@
 gl_SGIX_ycrcb = member "GL_SGIX_ycrcb" extensions
 {-# NOINLINE gl_SGIX_ycrcb #-}
 
+pattern GL_YCRCB_422_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_YCRCB_422_SGIX = 0x81BB
+
+pattern GL_YCRCB_444_SGIX  :: (Eq a, Num a) => a
 
 pattern GL_YCRCB_444_SGIX = 0x81BC
diff --git a/generated-src/Graphics/GL/Ext/SGIX/Ycrcba.hs b/generated-src/Graphics/GL/Ext/SGIX/Ycrcba.hs
--- a/generated-src/Graphics/GL/Ext/SGIX/Ycrcba.hs
+++ b/generated-src/Graphics/GL/Ext/SGIX/Ycrcba.hs
@@ -18,6 +18,10 @@
 gl_SGIX_ycrcba = member "GL_SGIX_ycrcba" extensions
 {-# NOINLINE gl_SGIX_ycrcba #-}
 
+pattern GL_YCRCBA_SGIX  :: (Eq a, Num a) => a
+
 pattern GL_YCRCBA_SGIX = 0x8319
+
+pattern GL_YCRCB_SGIX  :: (Eq a, Num a) => a
 
 pattern GL_YCRCB_SGIX = 0x8318
diff --git a/generated-src/Graphics/GL/Ext/SUN/ConvolutionBorderModes.hs b/generated-src/Graphics/GL/Ext/SUN/ConvolutionBorderModes.hs
--- a/generated-src/Graphics/GL/Ext/SUN/ConvolutionBorderModes.hs
+++ b/generated-src/Graphics/GL/Ext/SUN/ConvolutionBorderModes.hs
@@ -17,4 +17,6 @@
 gl_SUN_convolution_border_modes = member "GL_SUN_convolution_border_modes" extensions
 {-# NOINLINE gl_SUN_convolution_border_modes #-}
 
+pattern GL_WRAP_BORDER_SUN  :: (Eq a, Num a) => a
+
 pattern GL_WRAP_BORDER_SUN = 0x81D4
diff --git a/generated-src/Graphics/GL/Ext/SUN/GlobalAlpha.hs b/generated-src/Graphics/GL/Ext/SUN/GlobalAlpha.hs
--- a/generated-src/Graphics/GL/Ext/SUN/GlobalAlpha.hs
+++ b/generated-src/Graphics/GL/Ext/SUN/GlobalAlpha.hs
@@ -119,6 +119,10 @@
 
 {-# NOINLINE glGlobalAlphaFactorusSUNFunPtr #-}
 
+pattern GL_GLOBAL_ALPHA_FACTOR_SUN  :: (Eq a, Num a) => a
+
 pattern GL_GLOBAL_ALPHA_FACTOR_SUN = 0x81DA
+
+pattern GL_GLOBAL_ALPHA_SUN  :: (Eq a, Num a) => a
 
 pattern GL_GLOBAL_ALPHA_SUN = 0x81D9
diff --git a/generated-src/Graphics/GL/Ext/SUN/MeshArray.hs b/generated-src/Graphics/GL/Ext/SUN/MeshArray.hs
--- a/generated-src/Graphics/GL/Ext/SUN/MeshArray.hs
+++ b/generated-src/Graphics/GL/Ext/SUN/MeshArray.hs
@@ -37,6 +37,10 @@
 
 {-# NOINLINE glDrawMeshArraysSUNFunPtr #-}
 
+pattern GL_QUAD_MESH_SUN  :: (Eq a, Num a) => a
+
 pattern GL_QUAD_MESH_SUN = 0x8614
+
+pattern GL_TRIANGLE_MESH_SUN  :: (Eq a, Num a) => a
 
 pattern GL_TRIANGLE_MESH_SUN = 0x8615
diff --git a/generated-src/Graphics/GL/Ext/SUN/SliceAccum.hs b/generated-src/Graphics/GL/Ext/SUN/SliceAccum.hs
--- a/generated-src/Graphics/GL/Ext/SUN/SliceAccum.hs
+++ b/generated-src/Graphics/GL/Ext/SUN/SliceAccum.hs
@@ -17,4 +17,6 @@
 gl_SUN_slice_accum = member "GL_SUN_slice_accum" extensions
 {-# NOINLINE gl_SUN_slice_accum #-}
 
+pattern GL_SLICE_ACCUM_SUN  :: (Eq a, Num a) => a
+
 pattern GL_SLICE_ACCUM_SUN = 0x85CC
diff --git a/generated-src/Graphics/GL/Ext/SUN/TriangleList.hs b/generated-src/Graphics/GL/Ext/SUN/TriangleList.hs
--- a/generated-src/Graphics/GL/Ext/SUN/TriangleList.hs
+++ b/generated-src/Graphics/GL/Ext/SUN/TriangleList.hs
@@ -132,36 +132,70 @@
 
 {-# NOINLINE glReplacementCodeusvSUNFunPtr #-}
 
+pattern GL_R1UI_C3F_V3F_SUN  :: (Eq a, Num a) => a
+
 pattern GL_R1UI_C3F_V3F_SUN = 0x85C6
 
+pattern GL_R1UI_C4F_N3F_V3F_SUN  :: (Eq a, Num a) => a
+
 pattern GL_R1UI_C4F_N3F_V3F_SUN = 0x85C8
 
+pattern GL_R1UI_C4UB_V3F_SUN  :: (Eq a, Num a) => a
+
 pattern GL_R1UI_C4UB_V3F_SUN = 0x85C5
 
+pattern GL_R1UI_N3F_V3F_SUN  :: (Eq a, Num a) => a
+
 pattern GL_R1UI_N3F_V3F_SUN = 0x85C7
 
+pattern GL_R1UI_T2F_C4F_N3F_V3F_SUN  :: (Eq a, Num a) => a
+
 pattern GL_R1UI_T2F_C4F_N3F_V3F_SUN = 0x85CB
 
+pattern GL_R1UI_T2F_N3F_V3F_SUN  :: (Eq a, Num a) => a
+
 pattern GL_R1UI_T2F_N3F_V3F_SUN = 0x85CA
 
+pattern GL_R1UI_T2F_V3F_SUN  :: (Eq a, Num a) => a
+
 pattern GL_R1UI_T2F_V3F_SUN = 0x85C9
 
+pattern GL_R1UI_V3F_SUN  :: (Eq a, Num a) => a
+
 pattern GL_R1UI_V3F_SUN = 0x85C4
 
+pattern GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN  :: (Eq a, Num a) => a
+
 pattern GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN = 0x85C3
 
+pattern GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN  :: (Eq a, Num a) => a
+
 pattern GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN = 0x85C2
 
+pattern GL_REPLACEMENT_CODE_ARRAY_SUN  :: (Eq a, Num a) => a
+
 pattern GL_REPLACEMENT_CODE_ARRAY_SUN = 0x85C0
 
+pattern GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN  :: (Eq a, Num a) => a
+
 pattern GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN = 0x85C1
 
+pattern GL_REPLACEMENT_CODE_SUN  :: (Eq a, Num a) => a
+
 pattern GL_REPLACEMENT_CODE_SUN = 0x81D8
 
+pattern GL_REPLACE_MIDDLE_SUN  :: (Eq a, Num a) => a
+
 pattern GL_REPLACE_MIDDLE_SUN = 0x0002
 
+pattern GL_REPLACE_OLDEST_SUN  :: (Eq a, Num a) => a
+
 pattern GL_REPLACE_OLDEST_SUN = 0x0003
 
+pattern GL_RESTART_SUN  :: (Eq a, Num a) => a
+
 pattern GL_RESTART_SUN = 0x0001
+
+pattern GL_TRIANGLE_LIST_SUN  :: (Eq a, Num a) => a
 
 pattern GL_TRIANGLE_LIST_SUN = 0x81D7
diff --git a/generated-src/Graphics/GL/Ext/SUNX/ConstantData.hs b/generated-src/Graphics/GL/Ext/SUNX/ConstantData.hs
--- a/generated-src/Graphics/GL/Ext/SUNX/ConstantData.hs
+++ b/generated-src/Graphics/GL/Ext/SUNX/ConstantData.hs
@@ -34,6 +34,10 @@
 
 {-# NOINLINE glFinishTextureSUNXFunPtr #-}
 
+pattern GL_TEXTURE_CONSTANT_DATA_SUNX  :: (Eq a, Num a) => a
+
 pattern GL_TEXTURE_CONSTANT_DATA_SUNX = 0x81D6
+
+pattern GL_UNPACK_CONSTANT_DATA_SUNX  :: (Eq a, Num a) => a
 
 pattern GL_UNPACK_CONSTANT_DATA_SUNX = 0x81D5
diff --git a/generated-src/Graphics/GL/Ext/ThreeDFX/Multisample.hs b/generated-src/Graphics/GL/Ext/ThreeDFX/Multisample.hs
--- a/generated-src/Graphics/GL/Ext/ThreeDFX/Multisample.hs
+++ b/generated-src/Graphics/GL/Ext/ThreeDFX/Multisample.hs
@@ -20,10 +20,18 @@
 gl_3DFX_multisample = member "GL_3DFX_multisample" extensions
 {-# NOINLINE gl_3DFX_multisample #-}
 
+pattern GL_MULTISAMPLE_3DFX  :: (Eq a, Num a) => a
+
 pattern GL_MULTISAMPLE_3DFX = 0x86B2
 
+pattern GL_MULTISAMPLE_BIT_3DFX  :: (Eq a, Num a) => a
+
 pattern GL_MULTISAMPLE_BIT_3DFX = 0x20000000
 
+pattern GL_SAMPLES_3DFX  :: (Eq a, Num a) => a
+
 pattern GL_SAMPLES_3DFX = 0x86B4
+
+pattern GL_SAMPLE_BUFFERS_3DFX  :: (Eq a, Num a) => a
 
 pattern GL_SAMPLE_BUFFERS_3DFX = 0x86B3
diff --git a/generated-src/Graphics/GL/Ext/ThreeDFX/TextureCompressionFXT1.hs b/generated-src/Graphics/GL/Ext/ThreeDFX/TextureCompressionFXT1.hs
--- a/generated-src/Graphics/GL/Ext/ThreeDFX/TextureCompressionFXT1.hs
+++ b/generated-src/Graphics/GL/Ext/ThreeDFX/TextureCompressionFXT1.hs
@@ -18,6 +18,10 @@
 gl_3DFX_texture_compression_FXT1 = member "GL_3DFX_texture_compression_FXT1" extensions
 {-# NOINLINE gl_3DFX_texture_compression_FXT1 #-}
 
+pattern GL_COMPRESSED_RGBA_FXT1_3DFX  :: (Eq a, Num a) => a
+
 pattern GL_COMPRESSED_RGBA_FXT1_3DFX = 0x86B1
+
+pattern GL_COMPRESSED_RGB_FXT1_3DFX  :: (Eq a, Num a) => a
 
 pattern GL_COMPRESSED_RGB_FXT1_3DFX = 0x86B0
diff --git a/generated-src/Graphics/GL/Ext/VIV/ShaderBinary.hs b/generated-src/Graphics/GL/Ext/VIV/ShaderBinary.hs
--- a/generated-src/Graphics/GL/Ext/VIV/ShaderBinary.hs
+++ b/generated-src/Graphics/GL/Ext/VIV/ShaderBinary.hs
@@ -17,4 +17,6 @@
 gl_VIV_shader_binary = member "GL_VIV_shader_binary" extensions
 {-# NOINLINE gl_VIV_shader_binary #-}
 
+pattern GL_SHADER_BINARY_VIV  :: (Eq a, Num a) => a
+
 pattern GL_SHADER_BINARY_VIV = 0x8FC4
diff --git a/generated-src/Graphics/GL/Ext/WIN/PhongShading.hs b/generated-src/Graphics/GL/Ext/WIN/PhongShading.hs
--- a/generated-src/Graphics/GL/Ext/WIN/PhongShading.hs
+++ b/generated-src/Graphics/GL/Ext/WIN/PhongShading.hs
@@ -18,6 +18,10 @@
 gl_WIN_phong_shading = member "GL_WIN_phong_shading" extensions
 {-# NOINLINE gl_WIN_phong_shading #-}
 
+pattern GL_PHONG_HINT_WIN  :: (Eq a, Num a) => a
+
 pattern GL_PHONG_HINT_WIN = 0x80EB
+
+pattern GL_PHONG_WIN  :: (Eq a, Num a) => a
 
 pattern GL_PHONG_WIN = 0x80EA
diff --git a/generated-src/Graphics/GL/Ext/WIN/SpecularFog.hs b/generated-src/Graphics/GL/Ext/WIN/SpecularFog.hs
--- a/generated-src/Graphics/GL/Ext/WIN/SpecularFog.hs
+++ b/generated-src/Graphics/GL/Ext/WIN/SpecularFog.hs
@@ -17,4 +17,6 @@
 gl_WIN_specular_fog = member "GL_WIN_specular_fog" extensions
 {-# NOINLINE gl_WIN_specular_fog #-}
 
+pattern GL_FOG_SPECULAR_TEXTURE_WIN  :: (Eq a, Num a) => a
+
 pattern GL_FOG_SPECULAR_TEXTURE_WIN = 0x80EC
diff --git a/generated-src/Graphics/GL/Internal/Shared.hs b/generated-src/Graphics/GL/Internal/Shared.hs
--- a/generated-src/Graphics/GL/Internal/Shared.hs
+++ b/generated-src/Graphics/GL/Internal/Shared.hs
@@ -5703,16002 +5703,20082 @@
 
 {-# NOINLINE glWindowPos3svFunPtr #-}
 
-pattern GL_2D = 0x0600
-
-pattern GL_2_BYTES = 0x1407
-
-pattern GL_3D = 0x0601
-
-pattern GL_3D_COLOR = 0x0602
-
-pattern GL_3D_COLOR_TEXTURE = 0x0603
-
-pattern GL_3_BYTES = 0x1408
-
-pattern GL_4D_COLOR_TEXTURE = 0x0604
-
-pattern GL_4_BYTES = 0x1409
-
-pattern GL_ACCUM = 0x0100
-
-pattern GL_ACCUM_ALPHA_BITS = 0x0D5B
-
-pattern GL_ACCUM_BLUE_BITS = 0x0D5A
-
-pattern GL_ACCUM_BUFFER_BIT = 0x00000200
-
-pattern GL_ACCUM_CLEAR_VALUE = 0x0B80
-
-pattern GL_ACCUM_GREEN_BITS = 0x0D59
-
-pattern GL_ACCUM_RED_BITS = 0x0D58
-
-pattern GL_ADD = 0x0104
-
-pattern GL_ADD_SIGNED = 0x8574
-
-pattern GL_ALIASED_POINT_SIZE_RANGE = 0x846D
-
-pattern GL_ALL_ATTRIB_BITS = 0xFFFFFFFF
-
-pattern GL_ALPHA12 = 0x803D
-
-pattern GL_ALPHA16 = 0x803E
-
-pattern GL_ALPHA4 = 0x803B
-
-pattern GL_ALPHA8 = 0x803C
-
-pattern GL_ALPHA_BIAS = 0x0D1D
-
-pattern GL_ALPHA_BITS = 0x0D55
-
-pattern GL_ALPHA_INTEGER = 0x8D97
-
-pattern GL_ALPHA_SCALE = 0x0D1C
-
-pattern GL_ALPHA_TEST = 0x0BC0
-
-pattern GL_ALPHA_TEST_FUNC = 0x0BC1
-
-pattern GL_ALPHA_TEST_REF = 0x0BC2
-
-pattern GL_AMBIENT = 0x1200
-
-pattern GL_AMBIENT_AND_DIFFUSE = 0x1602
-
-pattern GL_ATTRIB_STACK_DEPTH = 0x0BB0
-
-pattern GL_AUTO_NORMAL = 0x0D80
-
-pattern GL_AUX0 = 0x0409
-
-pattern GL_AUX1 = 0x040A
-
-pattern GL_AUX2 = 0x040B
-
-pattern GL_AUX3 = 0x040C
-
-pattern GL_AUX_BUFFERS = 0x0C00
-
-pattern GL_BITMAP = 0x1A00
-
-pattern GL_BITMAP_TOKEN = 0x0704
-
-pattern GL_BLUE_BIAS = 0x0D1B
-
-pattern GL_BLUE_BITS = 0x0D54
-
-pattern GL_BLUE_SCALE = 0x0D1A
-
-pattern GL_C3F_V3F = 0x2A24
-
-pattern GL_C4F_N3F_V3F = 0x2A26
-
-pattern GL_C4UB_V2F = 0x2A22
-
-pattern GL_C4UB_V3F = 0x2A23
-
-pattern GL_CLAMP = 0x2900
-
-pattern GL_CLAMP_FRAGMENT_COLOR = 0x891B
-
-pattern GL_CLAMP_VERTEX_COLOR = 0x891A
-
-pattern GL_CLIENT_ACTIVE_TEXTURE = 0x84E1
-
-pattern GL_CLIENT_ALL_ATTRIB_BITS = 0xFFFFFFFF
-
-pattern GL_CLIENT_ATTRIB_STACK_DEPTH = 0x0BB1
-
-pattern GL_CLIENT_PIXEL_STORE_BIT = 0x00000001
-
-pattern GL_CLIENT_VERTEX_ARRAY_BIT = 0x00000002
-
-pattern GL_CLIP_PLANE0 = 0x3000
-
-pattern GL_CLIP_PLANE1 = 0x3001
-
-pattern GL_CLIP_PLANE2 = 0x3002
-
-pattern GL_CLIP_PLANE3 = 0x3003
-
-pattern GL_CLIP_PLANE4 = 0x3004
-
-pattern GL_CLIP_PLANE5 = 0x3005
-
-pattern GL_COEFF = 0x0A00
-
-pattern GL_COLOR_ARRAY = 0x8076
-
-pattern GL_COLOR_ARRAY_BUFFER_BINDING = 0x8898
-
-pattern GL_COLOR_ARRAY_POINTER = 0x8090
-
-pattern GL_COLOR_ARRAY_SIZE = 0x8081
-
-pattern GL_COLOR_ARRAY_STRIDE = 0x8083
-
-pattern GL_COLOR_ARRAY_TYPE = 0x8082
-
-pattern GL_COLOR_INDEX = 0x1900
-
-pattern GL_COLOR_INDEXES = 0x1603
-
-pattern GL_COLOR_MATERIAL = 0x0B57
-
-pattern GL_COLOR_MATERIAL_FACE = 0x0B55
-
-pattern GL_COLOR_MATERIAL_PARAMETER = 0x0B56
-
-pattern GL_COLOR_SUM = 0x8458
-
-pattern GL_COMBINE = 0x8570
-
-pattern GL_COMBINE_ALPHA = 0x8572
-
-pattern GL_COMBINE_RGB = 0x8571
-
-pattern GL_COMPARE_R_TO_TEXTURE = 0x884E
-
-pattern GL_COMPILE = 0x1300
-
-pattern GL_COMPILE_AND_EXECUTE = 0x1301
-
-pattern GL_COMPRESSED_ALPHA = 0x84E9
-
-pattern GL_COMPRESSED_INTENSITY = 0x84EC
-
-pattern GL_COMPRESSED_LUMINANCE = 0x84EA
-
-pattern GL_COMPRESSED_LUMINANCE_ALPHA = 0x84EB
-
-pattern GL_COMPRESSED_SLUMINANCE = 0x8C4A
-
-pattern GL_COMPRESSED_SLUMINANCE_ALPHA = 0x8C4B
-
-pattern GL_CONSTANT = 0x8576
-
-pattern GL_CONSTANT_ATTENUATION = 0x1207
-
-pattern GL_COORD_REPLACE = 0x8862
-
-pattern GL_COPY_PIXEL_TOKEN = 0x0706
-
-pattern GL_CURRENT_BIT = 0x00000001
-
-pattern GL_CURRENT_COLOR = 0x0B00
-
-pattern GL_CURRENT_FOG_COORD = 0x8453
-
-pattern GL_CURRENT_FOG_COORDINATE = 0x8453
-
-pattern GL_CURRENT_INDEX = 0x0B01
-
-pattern GL_CURRENT_NORMAL = 0x0B02
-
-pattern GL_CURRENT_RASTER_COLOR = 0x0B04
-
-pattern GL_CURRENT_RASTER_DISTANCE = 0x0B09
-
-pattern GL_CURRENT_RASTER_INDEX = 0x0B05
-
-pattern GL_CURRENT_RASTER_POSITION = 0x0B07
-
-pattern GL_CURRENT_RASTER_POSITION_VALID = 0x0B08
-
-pattern GL_CURRENT_RASTER_SECONDARY_COLOR = 0x845F
-
-pattern GL_CURRENT_RASTER_TEXTURE_COORDS = 0x0B06
-
-pattern GL_CURRENT_SECONDARY_COLOR = 0x8459
-
-pattern GL_CURRENT_TEXTURE_COORDS = 0x0B03
-
-pattern GL_DECAL = 0x2101
-
-pattern GL_DEPTH_BIAS = 0x0D1F
-
-pattern GL_DEPTH_BITS = 0x0D56
-
-pattern GL_DEPTH_SCALE = 0x0D1E
-
-pattern GL_DEPTH_TEXTURE_MODE = 0x884B
-
-pattern GL_DIFFUSE = 0x1201
-
-pattern GL_DOMAIN = 0x0A02
-
-pattern GL_DOT3_RGB = 0x86AE
-
-pattern GL_DOT3_RGBA = 0x86AF
-
-pattern GL_DRAW_PIXEL_TOKEN = 0x0705
-
-pattern GL_EDGE_FLAG = 0x0B43
-
-pattern GL_EDGE_FLAG_ARRAY = 0x8079
-
-pattern GL_EDGE_FLAG_ARRAY_BUFFER_BINDING = 0x889B
-
-pattern GL_EDGE_FLAG_ARRAY_POINTER = 0x8093
-
-pattern GL_EDGE_FLAG_ARRAY_STRIDE = 0x808C
-
-pattern GL_EMISSION = 0x1600
-
-pattern GL_ENABLE_BIT = 0x00002000
-
-pattern GL_EVAL_BIT = 0x00010000
-
-pattern GL_EXP = 0x0800
-
-pattern GL_EXP2 = 0x0801
-
-pattern GL_EYE_LINEAR = 0x2400
-
-pattern GL_EYE_PLANE = 0x2502
-
-pattern GL_FEEDBACK = 0x1C01
-
-pattern GL_FEEDBACK_BUFFER_POINTER = 0x0DF0
-
-pattern GL_FEEDBACK_BUFFER_SIZE = 0x0DF1
-
-pattern GL_FEEDBACK_BUFFER_TYPE = 0x0DF2
-
-pattern GL_FLAT = 0x1D00
-
-pattern GL_FOG = 0x0B60
-
-pattern GL_FOG_BIT = 0x00000080
-
-pattern GL_FOG_COLOR = 0x0B66
-
-pattern GL_FOG_COORD = 0x8451
-
-pattern GL_FOG_COORDINATE = 0x8451
-
-pattern GL_FOG_COORDINATE_ARRAY = 0x8457
-
-pattern GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING = 0x889D
-
-pattern GL_FOG_COORDINATE_ARRAY_POINTER = 0x8456
-
-pattern GL_FOG_COORDINATE_ARRAY_STRIDE = 0x8455
-
-pattern GL_FOG_COORDINATE_ARRAY_TYPE = 0x8454
-
-pattern GL_FOG_COORDINATE_SOURCE = 0x8450
-
-pattern GL_FOG_COORD_ARRAY = 0x8457
-
-pattern GL_FOG_COORD_ARRAY_BUFFER_BINDING = 0x889D
-
-pattern GL_FOG_COORD_ARRAY_POINTER = 0x8456
-
-pattern GL_FOG_COORD_ARRAY_STRIDE = 0x8455
-
-pattern GL_FOG_COORD_ARRAY_TYPE = 0x8454
-
-pattern GL_FOG_COORD_SRC = 0x8450
-
-pattern GL_FOG_DENSITY = 0x0B62
-
-pattern GL_FOG_END = 0x0B64
-
-pattern GL_FOG_HINT = 0x0C54
-
-pattern GL_FOG_INDEX = 0x0B61
-
-pattern GL_FOG_MODE = 0x0B65
-
-pattern GL_FOG_START = 0x0B63
-
-pattern GL_FRAGMENT_DEPTH = 0x8452
-
-pattern GL_GENERATE_MIPMAP = 0x8191
-
-pattern GL_GENERATE_MIPMAP_HINT = 0x8192
-
-pattern GL_GREEN_BIAS = 0x0D19
-
-pattern GL_GREEN_BITS = 0x0D53
-
-pattern GL_GREEN_SCALE = 0x0D18
-
-pattern GL_HINT_BIT = 0x00008000
-
-pattern GL_INDEX_ARRAY = 0x8077
-
-pattern GL_INDEX_ARRAY_BUFFER_BINDING = 0x8899
-
-pattern GL_INDEX_ARRAY_POINTER = 0x8091
-
-pattern GL_INDEX_ARRAY_STRIDE = 0x8086
-
-pattern GL_INDEX_ARRAY_TYPE = 0x8085
-
-pattern GL_INDEX_BITS = 0x0D51
-
-pattern GL_INDEX_CLEAR_VALUE = 0x0C20
-
-pattern GL_INDEX_LOGIC_OP = 0x0BF1
-
-pattern GL_INDEX_MODE = 0x0C30
-
-pattern GL_INDEX_OFFSET = 0x0D13
-
-pattern GL_INDEX_SHIFT = 0x0D12
-
-pattern GL_INDEX_WRITEMASK = 0x0C21
-
-pattern GL_INTENSITY = 0x8049
-
-pattern GL_INTENSITY12 = 0x804C
-
-pattern GL_INTENSITY16 = 0x804D
-
-pattern GL_INTENSITY4 = 0x804A
-
-pattern GL_INTENSITY8 = 0x804B
-
-pattern GL_INTERPOLATE = 0x8575
-
-pattern GL_LIGHT0 = 0x4000
-
-pattern GL_LIGHT1 = 0x4001
-
-pattern GL_LIGHT2 = 0x4002
-
-pattern GL_LIGHT3 = 0x4003
-
-pattern GL_LIGHT4 = 0x4004
-
-pattern GL_LIGHT5 = 0x4005
-
-pattern GL_LIGHT6 = 0x4006
-
-pattern GL_LIGHT7 = 0x4007
-
-pattern GL_LIGHTING = 0x0B50
-
-pattern GL_LIGHTING_BIT = 0x00000040
-
-pattern GL_LIGHT_MODEL_AMBIENT = 0x0B53
-
-pattern GL_LIGHT_MODEL_COLOR_CONTROL = 0x81F8
-
-pattern GL_LIGHT_MODEL_LOCAL_VIEWER = 0x0B51
-
-pattern GL_LIGHT_MODEL_TWO_SIDE = 0x0B52
-
-pattern GL_LINEAR_ATTENUATION = 0x1208
-
-pattern GL_LINE_BIT = 0x00000004
-
-pattern GL_LINE_RESET_TOKEN = 0x0707
-
-pattern GL_LINE_STIPPLE = 0x0B24
-
-pattern GL_LINE_STIPPLE_PATTERN = 0x0B25
-
-pattern GL_LINE_STIPPLE_REPEAT = 0x0B26
-
-pattern GL_LINE_TOKEN = 0x0702
-
-pattern GL_LIST_BASE = 0x0B32
-
-pattern GL_LIST_BIT = 0x00020000
-
-pattern GL_LIST_INDEX = 0x0B33
-
-pattern GL_LIST_MODE = 0x0B30
-
-pattern GL_LOAD = 0x0101
-
-pattern GL_LOGIC_OP = 0x0BF1
-
-pattern GL_LUMINANCE = 0x1909
-
-pattern GL_LUMINANCE12 = 0x8041
-
-pattern GL_LUMINANCE12_ALPHA12 = 0x8047
-
-pattern GL_LUMINANCE12_ALPHA4 = 0x8046
-
-pattern GL_LUMINANCE16 = 0x8042
-
-pattern GL_LUMINANCE16_ALPHA16 = 0x8048
-
-pattern GL_LUMINANCE4 = 0x803F
-
-pattern GL_LUMINANCE4_ALPHA4 = 0x8043
-
-pattern GL_LUMINANCE6_ALPHA2 = 0x8044
-
-pattern GL_LUMINANCE8 = 0x8040
-
-pattern GL_LUMINANCE8_ALPHA8 = 0x8045
-
-pattern GL_LUMINANCE_ALPHA = 0x190A
-
-pattern GL_MAP1_COLOR_4 = 0x0D90
-
-pattern GL_MAP1_GRID_DOMAIN = 0x0DD0
-
-pattern GL_MAP1_GRID_SEGMENTS = 0x0DD1
-
-pattern GL_MAP1_INDEX = 0x0D91
-
-pattern GL_MAP1_NORMAL = 0x0D92
-
-pattern GL_MAP1_TEXTURE_COORD_1 = 0x0D93
-
-pattern GL_MAP1_TEXTURE_COORD_2 = 0x0D94
-
-pattern GL_MAP1_TEXTURE_COORD_3 = 0x0D95
-
-pattern GL_MAP1_TEXTURE_COORD_4 = 0x0D96
-
-pattern GL_MAP1_VERTEX_3 = 0x0D97
-
-pattern GL_MAP1_VERTEX_4 = 0x0D98
-
-pattern GL_MAP2_COLOR_4 = 0x0DB0
-
-pattern GL_MAP2_GRID_DOMAIN = 0x0DD2
-
-pattern GL_MAP2_GRID_SEGMENTS = 0x0DD3
-
-pattern GL_MAP2_INDEX = 0x0DB1
-
-pattern GL_MAP2_NORMAL = 0x0DB2
-
-pattern GL_MAP2_TEXTURE_COORD_1 = 0x0DB3
-
-pattern GL_MAP2_TEXTURE_COORD_2 = 0x0DB4
-
-pattern GL_MAP2_TEXTURE_COORD_3 = 0x0DB5
-
-pattern GL_MAP2_TEXTURE_COORD_4 = 0x0DB6
-
-pattern GL_MAP2_VERTEX_3 = 0x0DB7
-
-pattern GL_MAP2_VERTEX_4 = 0x0DB8
-
-pattern GL_MAP_COLOR = 0x0D10
-
-pattern GL_MAP_STENCIL = 0x0D11
-
-pattern GL_MATRIX_MODE = 0x0BA0
-
-pattern GL_MAX_ATTRIB_STACK_DEPTH = 0x0D35
-
-pattern GL_MAX_CLIENT_ATTRIB_STACK_DEPTH = 0x0D3B
-
-pattern GL_MAX_CLIP_PLANES = 0x0D32
-
-pattern GL_MAX_EVAL_ORDER = 0x0D30
-
-pattern GL_MAX_LIGHTS = 0x0D31
-
-pattern GL_MAX_LIST_NESTING = 0x0B31
-
-pattern GL_MAX_MODELVIEW_STACK_DEPTH = 0x0D36
-
-pattern GL_MAX_NAME_STACK_DEPTH = 0x0D37
-
-pattern GL_MAX_PIXEL_MAP_TABLE = 0x0D34
-
-pattern GL_MAX_PROJECTION_STACK_DEPTH = 0x0D38
-
-pattern GL_MAX_TEXTURE_COORDS = 0x8871
-
-pattern GL_MAX_TEXTURE_STACK_DEPTH = 0x0D39
-
-pattern GL_MAX_TEXTURE_UNITS = 0x84E2
-
-pattern GL_MODELVIEW = 0x1700
-
-pattern GL_MODELVIEW_MATRIX = 0x0BA6
-
-pattern GL_MODELVIEW_STACK_DEPTH = 0x0BA3
-
-pattern GL_MODULATE = 0x2100
-
-pattern GL_MULT = 0x0103
-
-pattern GL_MULTISAMPLE_BIT = 0x20000000
-
-pattern GL_N3F_V3F = 0x2A25
-
-pattern GL_NAME_STACK_DEPTH = 0x0D70
-
-pattern GL_NORMALIZE = 0x0BA1
-
-pattern GL_NORMAL_ARRAY = 0x8075
-
-pattern GL_NORMAL_ARRAY_BUFFER_BINDING = 0x8897
-
-pattern GL_NORMAL_ARRAY_POINTER = 0x808F
-
-pattern GL_NORMAL_ARRAY_STRIDE = 0x807F
-
-pattern GL_NORMAL_ARRAY_TYPE = 0x807E
-
-pattern GL_NORMAL_MAP = 0x8511
-
-pattern GL_OBJECT_LINEAR = 0x2401
-
-pattern GL_OBJECT_PLANE = 0x2501
-
-pattern GL_OPERAND0_ALPHA = 0x8598
-
-pattern GL_OPERAND0_RGB = 0x8590
-
-pattern GL_OPERAND1_ALPHA = 0x8599
-
-pattern GL_OPERAND1_RGB = 0x8591
-
-pattern GL_OPERAND2_ALPHA = 0x859A
-
-pattern GL_OPERAND2_RGB = 0x8592
-
-pattern GL_ORDER = 0x0A01
-
-pattern GL_PASS_THROUGH_TOKEN = 0x0700
-
-pattern GL_PERSPECTIVE_CORRECTION_HINT = 0x0C50
-
-pattern GL_PIXEL_MAP_A_TO_A = 0x0C79
-
-pattern GL_PIXEL_MAP_A_TO_A_SIZE = 0x0CB9
-
-pattern GL_PIXEL_MAP_B_TO_B = 0x0C78
-
-pattern GL_PIXEL_MAP_B_TO_B_SIZE = 0x0CB8
-
-pattern GL_PIXEL_MAP_G_TO_G = 0x0C77
-
-pattern GL_PIXEL_MAP_G_TO_G_SIZE = 0x0CB7
-
-pattern GL_PIXEL_MAP_I_TO_A = 0x0C75
-
-pattern GL_PIXEL_MAP_I_TO_A_SIZE = 0x0CB5
-
-pattern GL_PIXEL_MAP_I_TO_B = 0x0C74
-
-pattern GL_PIXEL_MAP_I_TO_B_SIZE = 0x0CB4
-
-pattern GL_PIXEL_MAP_I_TO_G = 0x0C73
-
-pattern GL_PIXEL_MAP_I_TO_G_SIZE = 0x0CB3
-
-pattern GL_PIXEL_MAP_I_TO_I = 0x0C70
-
-pattern GL_PIXEL_MAP_I_TO_I_SIZE = 0x0CB0
-
-pattern GL_PIXEL_MAP_I_TO_R = 0x0C72
-
-pattern GL_PIXEL_MAP_I_TO_R_SIZE = 0x0CB2
-
-pattern GL_PIXEL_MAP_R_TO_R = 0x0C76
-
-pattern GL_PIXEL_MAP_R_TO_R_SIZE = 0x0CB6
-
-pattern GL_PIXEL_MAP_S_TO_S = 0x0C71
-
-pattern GL_PIXEL_MAP_S_TO_S_SIZE = 0x0CB1
-
-pattern GL_PIXEL_MODE_BIT = 0x00000020
-
-pattern GL_POINT_BIT = 0x00000002
-
-pattern GL_POINT_DISTANCE_ATTENUATION = 0x8129
-
-pattern GL_POINT_SIZE_MAX = 0x8127
-
-pattern GL_POINT_SIZE_MIN = 0x8126
-
-pattern GL_POINT_SMOOTH = 0x0B10
-
-pattern GL_POINT_SMOOTH_HINT = 0x0C51
-
-pattern GL_POINT_SPRITE = 0x8861
-
-pattern GL_POINT_TOKEN = 0x0701
-
-pattern GL_POLYGON = 0x0009
-
-pattern GL_POLYGON_BIT = 0x00000008
-
-pattern GL_POLYGON_STIPPLE = 0x0B42
-
-pattern GL_POLYGON_STIPPLE_BIT = 0x00000010
-
-pattern GL_POLYGON_TOKEN = 0x0703
-
-pattern GL_POSITION = 0x1203
-
-pattern GL_PREVIOUS = 0x8578
-
-pattern GL_PRIMARY_COLOR = 0x8577
-
-pattern GL_PROJECTION = 0x1701
-
-pattern GL_PROJECTION_MATRIX = 0x0BA7
-
-pattern GL_PROJECTION_STACK_DEPTH = 0x0BA4
-
-pattern GL_Q = 0x2003
-
-pattern GL_QUADRATIC_ATTENUATION = 0x1209
-
-pattern GL_QUADS = 0x0007
-
-pattern GL_QUAD_STRIP = 0x0008
-
-pattern GL_R = 0x2002
-
-pattern GL_RED_BIAS = 0x0D15
-
-pattern GL_RED_BITS = 0x0D52
-
-pattern GL_RED_SCALE = 0x0D14
-
-pattern GL_REFLECTION_MAP = 0x8512
-
-pattern GL_RENDER = 0x1C00
-
-pattern GL_RENDER_MODE = 0x0C40
-
-pattern GL_RESCALE_NORMAL = 0x803A
-
-pattern GL_RETURN = 0x0102
-
-pattern GL_RGBA_MODE = 0x0C31
-
-pattern GL_RGB_SCALE = 0x8573
-
-pattern GL_S = 0x2000
-
-pattern GL_SCISSOR_BIT = 0x00080000
-
-pattern GL_SECONDARY_COLOR_ARRAY = 0x845E
-
-pattern GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING = 0x889C
-
-pattern GL_SECONDARY_COLOR_ARRAY_POINTER = 0x845D
-
-pattern GL_SECONDARY_COLOR_ARRAY_SIZE = 0x845A
-
-pattern GL_SECONDARY_COLOR_ARRAY_STRIDE = 0x845C
-
-pattern GL_SECONDARY_COLOR_ARRAY_TYPE = 0x845B
-
-pattern GL_SELECT = 0x1C02
-
-pattern GL_SELECTION_BUFFER_POINTER = 0x0DF3
-
-pattern GL_SELECTION_BUFFER_SIZE = 0x0DF4
-
-pattern GL_SEPARATE_SPECULAR_COLOR = 0x81FA
-
-pattern GL_SHADE_MODEL = 0x0B54
-
-pattern GL_SHININESS = 0x1601
-
-pattern GL_SINGLE_COLOR = 0x81F9
-
-pattern GL_SLUMINANCE = 0x8C46
-
-pattern GL_SLUMINANCE8 = 0x8C47
-
-pattern GL_SLUMINANCE8_ALPHA8 = 0x8C45
-
-pattern GL_SLUMINANCE_ALPHA = 0x8C44
-
-pattern GL_SMOOTH = 0x1D01
-
-pattern GL_SOURCE0_ALPHA = 0x8588
-
-pattern GL_SOURCE0_RGB = 0x8580
-
-pattern GL_SOURCE1_ALPHA = 0x8589
-
-pattern GL_SOURCE1_RGB = 0x8581
-
-pattern GL_SOURCE2_ALPHA = 0x858A
-
-pattern GL_SOURCE2_RGB = 0x8582
-
-pattern GL_SPECULAR = 0x1202
-
-pattern GL_SPHERE_MAP = 0x2402
-
-pattern GL_SPOT_CUTOFF = 0x1206
-
-pattern GL_SPOT_DIRECTION = 0x1204
-
-pattern GL_SPOT_EXPONENT = 0x1205
-
-pattern GL_SRC0_ALPHA = 0x8588
-
-pattern GL_SRC0_RGB = 0x8580
-
-pattern GL_SRC1_RGB = 0x8581
-
-pattern GL_SRC2_ALPHA = 0x858A
-
-pattern GL_SRC2_RGB = 0x8582
-
-pattern GL_STACK_OVERFLOW = 0x0503
-
-pattern GL_STACK_UNDERFLOW = 0x0504
-
-pattern GL_STENCIL_BITS = 0x0D57
-
-pattern GL_SUBTRACT = 0x84E7
-
-pattern GL_T = 0x2001
-
-pattern GL_T2F_C3F_V3F = 0x2A2A
-
-pattern GL_T2F_C4F_N3F_V3F = 0x2A2C
-
-pattern GL_T2F_C4UB_V3F = 0x2A29
-
-pattern GL_T2F_N3F_V3F = 0x2A2B
-
-pattern GL_T2F_V3F = 0x2A27
-
-pattern GL_T4F_C4F_N3F_V4F = 0x2A2D
-
-pattern GL_T4F_V4F = 0x2A28
-
-pattern GL_TEXTURE_BIT = 0x00040000
-
-pattern GL_TEXTURE_BORDER = 0x1005
-
-pattern GL_TEXTURE_COMPONENTS = 0x1003
-
-pattern GL_TEXTURE_COORD_ARRAY = 0x8078
-
-pattern GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING = 0x889A
-
-pattern GL_TEXTURE_COORD_ARRAY_POINTER = 0x8092
-
-pattern GL_TEXTURE_COORD_ARRAY_SIZE = 0x8088
-
-pattern GL_TEXTURE_COORD_ARRAY_STRIDE = 0x808A
-
-pattern GL_TEXTURE_COORD_ARRAY_TYPE = 0x8089
-
-pattern GL_TEXTURE_ENV = 0x2300
-
-pattern GL_TEXTURE_ENV_COLOR = 0x2201
-
-pattern GL_TEXTURE_ENV_MODE = 0x2200
-
-pattern GL_TEXTURE_FILTER_CONTROL = 0x8500
-
-pattern GL_TEXTURE_GEN_MODE = 0x2500
-
-pattern GL_TEXTURE_GEN_Q = 0x0C63
-
-pattern GL_TEXTURE_GEN_R = 0x0C62
-
-pattern GL_TEXTURE_GEN_S = 0x0C60
-
-pattern GL_TEXTURE_GEN_T = 0x0C61
-
-pattern GL_TEXTURE_INTENSITY_SIZE = 0x8061
-
-pattern GL_TEXTURE_INTENSITY_TYPE = 0x8C15
-
-pattern GL_TEXTURE_LUMINANCE_SIZE = 0x8060
-
-pattern GL_TEXTURE_LUMINANCE_TYPE = 0x8C14
-
-pattern GL_TEXTURE_MATRIX = 0x0BA8
-
-pattern GL_TEXTURE_PRIORITY = 0x8066
-
-pattern GL_TEXTURE_RESIDENT = 0x8067
-
-pattern GL_TEXTURE_STACK_DEPTH = 0x0BA5
-
-pattern GL_TRANSFORM_BIT = 0x00001000
-
-pattern GL_TRANSPOSE_COLOR_MATRIX = 0x84E6
-
-pattern GL_TRANSPOSE_MODELVIEW_MATRIX = 0x84E3
-
-pattern GL_TRANSPOSE_PROJECTION_MATRIX = 0x84E4
-
-pattern GL_TRANSPOSE_TEXTURE_MATRIX = 0x84E5
-
-pattern GL_V2F = 0x2A20
-
-pattern GL_V3F = 0x2A21
-
-pattern GL_VERTEX_ARRAY = 0x8074
-
-pattern GL_VERTEX_ARRAY_BUFFER_BINDING = 0x8896
-
-pattern GL_VERTEX_ARRAY_POINTER = 0x808E
-
-pattern GL_VERTEX_ARRAY_SIZE = 0x807A
-
-pattern GL_VERTEX_ARRAY_STRIDE = 0x807C
-
-pattern GL_VERTEX_ARRAY_TYPE = 0x807B
-
-pattern GL_VERTEX_PROGRAM_TWO_SIDE = 0x8643
-
-pattern GL_VIEWPORT_BIT = 0x00000800
-
-pattern GL_WEIGHT_ARRAY_BUFFER_BINDING = 0x889E
-
-pattern GL_ZOOM_X = 0x0D16
-
-pattern GL_ZOOM_Y = 0x0D17
-
--- | Usage: @'glColorP3ui' type color@
-
-
-glColorP3ui :: MonadIO m => GLenum -> GLuint -> m ()
-glColorP3ui = ffienumuintIOV glColorP3uiFunPtr
-
-glColorP3uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glColorP3uiFunPtr = unsafePerformIO (getProcAddress "glColorP3ui")
-
-{-# NOINLINE glColorP3uiFunPtr #-}
-
--- | Usage: @'glColorP3uiv' type color@
---
--- The length of @color@ should be @1@.
-
-
-glColorP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
-glColorP3uiv = ffienumPtruintIOV glColorP3uivFunPtr
-
-glColorP3uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
-glColorP3uivFunPtr = unsafePerformIO (getProcAddress "glColorP3uiv")
-
-{-# NOINLINE glColorP3uivFunPtr #-}
-
--- | Usage: @'glColorP4ui' type color@
-
-
-glColorP4ui :: MonadIO m => GLenum -> GLuint -> m ()
-glColorP4ui = ffienumuintIOV glColorP4uiFunPtr
-
-glColorP4uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glColorP4uiFunPtr = unsafePerformIO (getProcAddress "glColorP4ui")
-
-{-# NOINLINE glColorP4uiFunPtr #-}
-
--- | Usage: @'glColorP4uiv' type color@
---
--- The length of @color@ should be @1@.
-
-
-glColorP4uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
-glColorP4uiv = ffienumPtruintIOV glColorP4uivFunPtr
-
-glColorP4uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
-glColorP4uivFunPtr = unsafePerformIO (getProcAddress "glColorP4uiv")
-
-{-# NOINLINE glColorP4uivFunPtr #-}
-
--- | Usage: @'glMultiTexCoordP1ui' texture type coords@
-
-
-glMultiTexCoordP1ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
-glMultiTexCoordP1ui = ffienumenumuintIOV glMultiTexCoordP1uiFunPtr
-
-glMultiTexCoordP1uiFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
-glMultiTexCoordP1uiFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoordP1ui")
-
-{-# NOINLINE glMultiTexCoordP1uiFunPtr #-}
-
--- | Usage: @'glMultiTexCoordP1uiv' texture type coords@
---
--- The length of @coords@ should be @1@.
-
-
-glMultiTexCoordP1uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
-glMultiTexCoordP1uiv = ffienumenumPtruintIOV glMultiTexCoordP1uivFunPtr
-
-glMultiTexCoordP1uivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
-glMultiTexCoordP1uivFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoordP1uiv")
-
-{-# NOINLINE glMultiTexCoordP1uivFunPtr #-}
-
--- | Usage: @'glMultiTexCoordP2ui' texture type coords@
-
-
-glMultiTexCoordP2ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
-glMultiTexCoordP2ui = ffienumenumuintIOV glMultiTexCoordP2uiFunPtr
-
-glMultiTexCoordP2uiFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
-glMultiTexCoordP2uiFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoordP2ui")
-
-{-# NOINLINE glMultiTexCoordP2uiFunPtr #-}
-
--- | Usage: @'glMultiTexCoordP2uiv' texture type coords@
---
--- The length of @coords@ should be @1@.
-
-
-glMultiTexCoordP2uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
-glMultiTexCoordP2uiv = ffienumenumPtruintIOV glMultiTexCoordP2uivFunPtr
-
-glMultiTexCoordP2uivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
-glMultiTexCoordP2uivFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoordP2uiv")
-
-{-# NOINLINE glMultiTexCoordP2uivFunPtr #-}
-
--- | Usage: @'glMultiTexCoordP3ui' texture type coords@
-
-
-glMultiTexCoordP3ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
-glMultiTexCoordP3ui = ffienumenumuintIOV glMultiTexCoordP3uiFunPtr
-
-glMultiTexCoordP3uiFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
-glMultiTexCoordP3uiFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoordP3ui")
-
-{-# NOINLINE glMultiTexCoordP3uiFunPtr #-}
-
--- | Usage: @'glMultiTexCoordP3uiv' texture type coords@
---
--- The length of @coords@ should be @1@.
-
-
-glMultiTexCoordP3uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
-glMultiTexCoordP3uiv = ffienumenumPtruintIOV glMultiTexCoordP3uivFunPtr
-
-glMultiTexCoordP3uivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
-glMultiTexCoordP3uivFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoordP3uiv")
-
-{-# NOINLINE glMultiTexCoordP3uivFunPtr #-}
-
--- | Usage: @'glMultiTexCoordP4ui' texture type coords@
-
-
-glMultiTexCoordP4ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
-glMultiTexCoordP4ui = ffienumenumuintIOV glMultiTexCoordP4uiFunPtr
-
-glMultiTexCoordP4uiFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
-glMultiTexCoordP4uiFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoordP4ui")
-
-{-# NOINLINE glMultiTexCoordP4uiFunPtr #-}
-
--- | Usage: @'glMultiTexCoordP4uiv' texture type coords@
---
--- The length of @coords@ should be @1@.
-
-
-glMultiTexCoordP4uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
-glMultiTexCoordP4uiv = ffienumenumPtruintIOV glMultiTexCoordP4uivFunPtr
-
-glMultiTexCoordP4uivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
-glMultiTexCoordP4uivFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoordP4uiv")
-
-{-# NOINLINE glMultiTexCoordP4uivFunPtr #-}
-
--- | Usage: @'glNormalP3ui' type coords@
-
-
-glNormalP3ui :: MonadIO m => GLenum -> GLuint -> m ()
-glNormalP3ui = ffienumuintIOV glNormalP3uiFunPtr
-
-glNormalP3uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glNormalP3uiFunPtr = unsafePerformIO (getProcAddress "glNormalP3ui")
-
-{-# NOINLINE glNormalP3uiFunPtr #-}
-
--- | Usage: @'glNormalP3uiv' type coords@
---
--- The length of @coords@ should be @1@.
-
-
-glNormalP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
-glNormalP3uiv = ffienumPtruintIOV glNormalP3uivFunPtr
-
-glNormalP3uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
-glNormalP3uivFunPtr = unsafePerformIO (getProcAddress "glNormalP3uiv")
-
-{-# NOINLINE glNormalP3uivFunPtr #-}
-
--- | Usage: @'glSecondaryColorP3ui' type color@
-
-
-glSecondaryColorP3ui :: MonadIO m => GLenum -> GLuint -> m ()
-glSecondaryColorP3ui = ffienumuintIOV glSecondaryColorP3uiFunPtr
-
-glSecondaryColorP3uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glSecondaryColorP3uiFunPtr = unsafePerformIO (getProcAddress "glSecondaryColorP3ui")
-
-{-# NOINLINE glSecondaryColorP3uiFunPtr #-}
-
--- | Usage: @'glSecondaryColorP3uiv' type color@
---
--- The length of @color@ should be @1@.
-
-
-glSecondaryColorP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
-glSecondaryColorP3uiv = ffienumPtruintIOV glSecondaryColorP3uivFunPtr
-
-glSecondaryColorP3uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
-glSecondaryColorP3uivFunPtr = unsafePerformIO (getProcAddress "glSecondaryColorP3uiv")
-
-{-# NOINLINE glSecondaryColorP3uivFunPtr #-}
-
--- | Usage: @'glTexCoordP1ui' type coords@
-
-
-glTexCoordP1ui :: MonadIO m => GLenum -> GLuint -> m ()
-glTexCoordP1ui = ffienumuintIOV glTexCoordP1uiFunPtr
-
-glTexCoordP1uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glTexCoordP1uiFunPtr = unsafePerformIO (getProcAddress "glTexCoordP1ui")
-
-{-# NOINLINE glTexCoordP1uiFunPtr #-}
-
--- | Usage: @'glTexCoordP1uiv' type coords@
---
--- The length of @coords@ should be @1@.
-
-
-glTexCoordP1uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
-glTexCoordP1uiv = ffienumPtruintIOV glTexCoordP1uivFunPtr
-
-glTexCoordP1uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
-glTexCoordP1uivFunPtr = unsafePerformIO (getProcAddress "glTexCoordP1uiv")
-
-{-# NOINLINE glTexCoordP1uivFunPtr #-}
-
--- | Usage: @'glTexCoordP2ui' type coords@
-
-
-glTexCoordP2ui :: MonadIO m => GLenum -> GLuint -> m ()
-glTexCoordP2ui = ffienumuintIOV glTexCoordP2uiFunPtr
-
-glTexCoordP2uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glTexCoordP2uiFunPtr = unsafePerformIO (getProcAddress "glTexCoordP2ui")
-
-{-# NOINLINE glTexCoordP2uiFunPtr #-}
-
--- | Usage: @'glTexCoordP2uiv' type coords@
---
--- The length of @coords@ should be @1@.
-
-
-glTexCoordP2uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
-glTexCoordP2uiv = ffienumPtruintIOV glTexCoordP2uivFunPtr
-
-glTexCoordP2uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
-glTexCoordP2uivFunPtr = unsafePerformIO (getProcAddress "glTexCoordP2uiv")
-
-{-# NOINLINE glTexCoordP2uivFunPtr #-}
-
--- | Usage: @'glTexCoordP3ui' type coords@
-
-
-glTexCoordP3ui :: MonadIO m => GLenum -> GLuint -> m ()
-glTexCoordP3ui = ffienumuintIOV glTexCoordP3uiFunPtr
-
-glTexCoordP3uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glTexCoordP3uiFunPtr = unsafePerformIO (getProcAddress "glTexCoordP3ui")
-
-{-# NOINLINE glTexCoordP3uiFunPtr #-}
-
--- | Usage: @'glTexCoordP3uiv' type coords@
---
--- The length of @coords@ should be @1@.
-
-
-glTexCoordP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
-glTexCoordP3uiv = ffienumPtruintIOV glTexCoordP3uivFunPtr
-
-glTexCoordP3uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
-glTexCoordP3uivFunPtr = unsafePerformIO (getProcAddress "glTexCoordP3uiv")
-
-{-# NOINLINE glTexCoordP3uivFunPtr #-}
-
--- | Usage: @'glTexCoordP4ui' type coords@
-
-
-glTexCoordP4ui :: MonadIO m => GLenum -> GLuint -> m ()
-glTexCoordP4ui = ffienumuintIOV glTexCoordP4uiFunPtr
-
-glTexCoordP4uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glTexCoordP4uiFunPtr = unsafePerformIO (getProcAddress "glTexCoordP4ui")
-
-{-# NOINLINE glTexCoordP4uiFunPtr #-}
-
--- | Usage: @'glTexCoordP4uiv' type coords@
---
--- The length of @coords@ should be @1@.
-
-
-glTexCoordP4uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
-glTexCoordP4uiv = ffienumPtruintIOV glTexCoordP4uivFunPtr
-
-glTexCoordP4uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
-glTexCoordP4uivFunPtr = unsafePerformIO (getProcAddress "glTexCoordP4uiv")
-
-{-# NOINLINE glTexCoordP4uivFunPtr #-}
-
--- | Usage: @'glVertexP2ui' type value@
-
-
-glVertexP2ui :: MonadIO m => GLenum -> GLuint -> m ()
-glVertexP2ui = ffienumuintIOV glVertexP2uiFunPtr
-
-glVertexP2uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glVertexP2uiFunPtr = unsafePerformIO (getProcAddress "glVertexP2ui")
-
-{-# NOINLINE glVertexP2uiFunPtr #-}
-
--- | Usage: @'glVertexP2uiv' type value@
---
--- The length of @value@ should be @1@.
-
-
-glVertexP2uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
-glVertexP2uiv = ffienumPtruintIOV glVertexP2uivFunPtr
-
-glVertexP2uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
-glVertexP2uivFunPtr = unsafePerformIO (getProcAddress "glVertexP2uiv")
-
-{-# NOINLINE glVertexP2uivFunPtr #-}
-
--- | Usage: @'glVertexP3ui' type value@
-
-
-glVertexP3ui :: MonadIO m => GLenum -> GLuint -> m ()
-glVertexP3ui = ffienumuintIOV glVertexP3uiFunPtr
-
-glVertexP3uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glVertexP3uiFunPtr = unsafePerformIO (getProcAddress "glVertexP3ui")
-
-{-# NOINLINE glVertexP3uiFunPtr #-}
-
--- | Usage: @'glVertexP3uiv' type value@
---
--- The length of @value@ should be @1@.
-
-
-glVertexP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
-glVertexP3uiv = ffienumPtruintIOV glVertexP3uivFunPtr
-
-glVertexP3uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
-glVertexP3uivFunPtr = unsafePerformIO (getProcAddress "glVertexP3uiv")
-
-{-# NOINLINE glVertexP3uivFunPtr #-}
-
--- | Usage: @'glVertexP4ui' type value@
-
-
-glVertexP4ui :: MonadIO m => GLenum -> GLuint -> m ()
-glVertexP4ui = ffienumuintIOV glVertexP4uiFunPtr
-
-glVertexP4uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glVertexP4uiFunPtr = unsafePerformIO (getProcAddress "glVertexP4ui")
-
-{-# NOINLINE glVertexP4uiFunPtr #-}
-
--- | Usage: @'glVertexP4uiv' type value@
---
--- The length of @value@ should be @1@.
-
-
-glVertexP4uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
-glVertexP4uiv = ffienumPtruintIOV glVertexP4uivFunPtr
-
-glVertexP4uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
-glVertexP4uivFunPtr = unsafePerformIO (getProcAddress "glVertexP4uiv")
-
-{-# NOINLINE glVertexP4uivFunPtr #-}
-
-pattern GL_DISPLAY_LIST = 0x82E7
-
--- | Usage: @'glActiveTexture' texture@
---
--- The parameter @texture@ is a @TextureUnit@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glActiveTexture.xhtml>
-
-
-glActiveTexture :: MonadIO m => GLenum -> m ()
-glActiveTexture = ffienumIOV glActiveTextureFunPtr
-
-glActiveTextureFunPtr :: FunPtr (GLenum -> IO ())
-glActiveTextureFunPtr = unsafePerformIO (getProcAddress "glActiveTexture")
-
-{-# NOINLINE glActiveTextureFunPtr #-}
-
--- | Usage: @'glAttachShader' program shader@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glAttachShader.xhtml>
-
-
-glAttachShader :: MonadIO m => GLuint -> GLuint -> m ()
-glAttachShader = ffiuintuintIOV glAttachShaderFunPtr
-
-glAttachShaderFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
-glAttachShaderFunPtr = unsafePerformIO (getProcAddress "glAttachShader")
-
-{-# NOINLINE glAttachShaderFunPtr #-}
-
--- | Usage: @'glBeginConditionalRender' id mode@
---
--- The parameter @mode@ is a @TypeEnum@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBeginConditionalRender.xhtml>
-
-
-glBeginConditionalRender :: MonadIO m => GLuint -> GLenum -> m ()
-glBeginConditionalRender = ffiuintenumIOV glBeginConditionalRenderFunPtr
-
-glBeginConditionalRenderFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
-glBeginConditionalRenderFunPtr = unsafePerformIO (getProcAddress "glBeginConditionalRender")
-
-{-# NOINLINE glBeginConditionalRenderFunPtr #-}
-
--- | Usage: @'glBeginQuery' target id@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBeginQuery.xhtml>
-
-
-glBeginQuery :: MonadIO m => GLenum -> GLuint -> m ()
-glBeginQuery = ffienumuintIOV glBeginQueryFunPtr
-
-glBeginQueryFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glBeginQueryFunPtr = unsafePerformIO (getProcAddress "glBeginQuery")
-
-{-# NOINLINE glBeginQueryFunPtr #-}
-
--- | Usage: @'glBeginTransformFeedback' primitiveMode@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBeginTransformFeedback.xhtml>
-
-
-glBeginTransformFeedback :: MonadIO m => GLenum -> m ()
-glBeginTransformFeedback = ffienumIOV glBeginTransformFeedbackFunPtr
-
-glBeginTransformFeedbackFunPtr :: FunPtr (GLenum -> IO ())
-glBeginTransformFeedbackFunPtr = unsafePerformIO (getProcAddress "glBeginTransformFeedback")
-
-{-# NOINLINE glBeginTransformFeedbackFunPtr #-}
-
--- | Usage: @'glBindAttribLocation' program index name@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindAttribLocation.xhtml>
-
-
-glBindAttribLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()
-glBindAttribLocation = ffiuintuintPtrcharIOV glBindAttribLocationFunPtr
-
-glBindAttribLocationFunPtr :: FunPtr (GLuint -> GLuint -> Ptr GLchar -> IO ())
-glBindAttribLocationFunPtr = unsafePerformIO (getProcAddress "glBindAttribLocation")
-
-{-# NOINLINE glBindAttribLocationFunPtr #-}
-
--- | Usage: @'glBindBuffer' target buffer@
---
--- The parameter @target@ is a @BufferTargetARB@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindBuffer.xhtml>
-
-
-glBindBuffer :: MonadIO m => GLenum -> GLuint -> m ()
-glBindBuffer = ffienumuintIOV glBindBufferFunPtr
-
-glBindBufferFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glBindBufferFunPtr = unsafePerformIO (getProcAddress "glBindBuffer")
-
-{-# NOINLINE glBindBufferFunPtr #-}
-
--- | Usage: @'glBindBufferBase' target index buffer@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindBufferBase.xhtml>
-
-
-glBindBufferBase :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()
-glBindBufferBase = ffienumuintuintIOV glBindBufferBaseFunPtr
-
-glBindBufferBaseFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> IO ())
-glBindBufferBaseFunPtr = unsafePerformIO (getProcAddress "glBindBufferBase")
-
-{-# NOINLINE glBindBufferBaseFunPtr #-}
-
--- | Usage: @'glBindBufferRange' target index buffer offset size@
---
--- The parameter @offset@ is a @BufferOffset@.
---
--- The parameter @size@ is a @BufferSize@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindBufferRange.xhtml>
-
-
-glBindBufferRange :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()
-glBindBufferRange = ffienumuintuintintptrsizeiptrIOV glBindBufferRangeFunPtr
-
-glBindBufferRangeFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> IO ())
-glBindBufferRangeFunPtr = unsafePerformIO (getProcAddress "glBindBufferRange")
-
-{-# NOINLINE glBindBufferRangeFunPtr #-}
-
--- | Usage: @'glBindFragDataLocation' program color name@
---
--- The length of @name@ should be @COMPSIZE(name)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindFragDataLocation.xhtml>
-
-
-glBindFragDataLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()
-glBindFragDataLocation = ffiuintuintPtrcharIOV glBindFragDataLocationFunPtr
-
-glBindFragDataLocationFunPtr :: FunPtr (GLuint -> GLuint -> Ptr GLchar -> IO ())
-glBindFragDataLocationFunPtr = unsafePerformIO (getProcAddress "glBindFragDataLocation")
-
-{-# NOINLINE glBindFragDataLocationFunPtr #-}
-
--- | Usage: @'glBindFramebuffer' target framebuffer@
---
--- The parameter @target@ is a @FramebufferTarget@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindFramebuffer.xhtml>
-
-
-glBindFramebuffer :: MonadIO m => GLenum -> GLuint -> m ()
-glBindFramebuffer = ffienumuintIOV glBindFramebufferFunPtr
-
-glBindFramebufferFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glBindFramebufferFunPtr = unsafePerformIO (getProcAddress "glBindFramebuffer")
-
-{-# NOINLINE glBindFramebufferFunPtr #-}
-
--- | Usage: @'glBindRenderbuffer' target renderbuffer@
---
--- The parameter @target@ is a @RenderbufferTarget@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindRenderbuffer.xhtml>
-
-
-glBindRenderbuffer :: MonadIO m => GLenum -> GLuint -> m ()
-glBindRenderbuffer = ffienumuintIOV glBindRenderbufferFunPtr
-
-glBindRenderbufferFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glBindRenderbufferFunPtr = unsafePerformIO (getProcAddress "glBindRenderbuffer")
-
-{-# NOINLINE glBindRenderbufferFunPtr #-}
-
--- | Usage: @'glBindTexture' target texture@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @texture@ is a @Texture@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindTexture.xhtml>
-
-
-glBindTexture :: MonadIO m => GLenum -> GLuint -> m ()
-glBindTexture = ffienumuintIOV glBindTextureFunPtr
-
-glBindTextureFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glBindTextureFunPtr = unsafePerformIO (getProcAddress "glBindTexture")
-
-{-# NOINLINE glBindTextureFunPtr #-}
-
--- | Usage: @'glBindVertexArray' array@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindVertexArray.xhtml>
-
-
-glBindVertexArray :: MonadIO m => GLuint -> m ()
-glBindVertexArray = ffiuintIOV glBindVertexArrayFunPtr
-
-glBindVertexArrayFunPtr :: FunPtr (GLuint -> IO ())
-glBindVertexArrayFunPtr = unsafePerformIO (getProcAddress "glBindVertexArray")
-
-{-# NOINLINE glBindVertexArrayFunPtr #-}
-
--- | Usage: @'glBlendColor' red green blue alpha@
---
--- The parameter @red@ is a @ColorF@.
---
--- The parameter @green@ is a @ColorF@.
---
--- The parameter @blue@ is a @ColorF@.
---
--- The parameter @alpha@ is a @ColorF@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBlendColor.xhtml>
-
-
-glBlendColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glBlendColor = ffifloatfloatfloatfloatIOV glBlendColorFunPtr
-
-glBlendColorFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glBlendColorFunPtr = unsafePerformIO (getProcAddress "glBlendColor")
-
-{-# NOINLINE glBlendColorFunPtr #-}
-
--- | Usage: @'glBlendEquation' mode@
---
--- The parameter @mode@ is a @BlendEquationMode@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBlendEquation.xhtml>
-
-
-glBlendEquation :: MonadIO m => GLenum -> m ()
-glBlendEquation = ffienumIOV glBlendEquationFunPtr
-
-glBlendEquationFunPtr :: FunPtr (GLenum -> IO ())
-glBlendEquationFunPtr = unsafePerformIO (getProcAddress "glBlendEquation")
-
-{-# NOINLINE glBlendEquationFunPtr #-}
-
--- | Usage: @'glBlendEquationSeparate' modeRGB modeAlpha@
---
--- The parameter @modeRGB@ is a @BlendEquationModeEXT@, one of: 'Graphics.GL.Ext.SGIX.BlendAlphaMinmax.GL_ALPHA_MAX_SGIX', 'Graphics.GL.Ext.SGIX.BlendAlphaMinmax.GL_ALPHA_MIN_SGIX', 'Graphics.GL.Ext.EXT.BlendMinmax.GL_FUNC_ADD_EXT', 'Graphics.GL.Ext.EXT.BlendSubtract.GL_FUNC_REVERSE_SUBTRACT_EXT', 'Graphics.GL.Ext.EXT.BlendSubtract.GL_FUNC_SUBTRACT_EXT', 'Graphics.GL.Internal.Shared.GL_LOGIC_OP', 'Graphics.GL.Ext.EXT.BlendMinmax.GL_MAX_EXT', 'Graphics.GL.Ext.EXT.BlendMinmax.GL_MIN_EXT'.
---
--- The parameter @modeAlpha@ is a @BlendEquationModeEXT@, one of: 'Graphics.GL.Ext.SGIX.BlendAlphaMinmax.GL_ALPHA_MAX_SGIX', 'Graphics.GL.Ext.SGIX.BlendAlphaMinmax.GL_ALPHA_MIN_SGIX', 'Graphics.GL.Ext.EXT.BlendMinmax.GL_FUNC_ADD_EXT', 'Graphics.GL.Ext.EXT.BlendSubtract.GL_FUNC_REVERSE_SUBTRACT_EXT', 'Graphics.GL.Ext.EXT.BlendSubtract.GL_FUNC_SUBTRACT_EXT', 'Graphics.GL.Internal.Shared.GL_LOGIC_OP', 'Graphics.GL.Ext.EXT.BlendMinmax.GL_MAX_EXT', 'Graphics.GL.Ext.EXT.BlendMinmax.GL_MIN_EXT'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBlendEquationSeparate.xhtml>
-
-
-glBlendEquationSeparate :: MonadIO m => GLenum -> GLenum -> m ()
-glBlendEquationSeparate = ffienumenumIOV glBlendEquationSeparateFunPtr
-
-glBlendEquationSeparateFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
-glBlendEquationSeparateFunPtr = unsafePerformIO (getProcAddress "glBlendEquationSeparate")
-
-{-# NOINLINE glBlendEquationSeparateFunPtr #-}
-
--- | Usage: @'glBlendFunc' sfactor dfactor@
---
--- The parameter @sfactor@ is a @BlendingFactorSrc@, one of: 'Graphics.GL.Ext.EXT.BlendColor.GL_CONSTANT_ALPHA_EXT', 'Graphics.GL.Ext.EXT.BlendColor.GL_CONSTANT_COLOR_EXT', 'Graphics.GL.Internal.Shared.GL_DST_ALPHA', 'Graphics.GL.Internal.Shared.GL_DST_COLOR', 'Graphics.GL.Internal.Shared.GL_ONE', 'Graphics.GL.Ext.EXT.BlendColor.GL_ONE_MINUS_CONSTANT_ALPHA_EXT', 'Graphics.GL.Ext.EXT.BlendColor.GL_ONE_MINUS_CONSTANT_COLOR_EXT', 'Graphics.GL.Internal.Shared.GL_ONE_MINUS_DST_ALPHA', 'Graphics.GL.Internal.Shared.GL_ONE_MINUS_DST_COLOR', 'Graphics.GL.Internal.Shared.GL_ONE_MINUS_SRC_ALPHA', 'Graphics.GL.Internal.Shared.GL_SRC_ALPHA', 'Graphics.GL.Internal.Shared.GL_SRC_ALPHA_SATURATE', 'Graphics.GL.Internal.Shared.GL_ZERO'.
---
--- The parameter @dfactor@ is a @BlendingFactorDest@, one of: 'Graphics.GL.Ext.EXT.BlendColor.GL_CONSTANT_ALPHA_EXT', 'Graphics.GL.Ext.EXT.BlendColor.GL_CONSTANT_COLOR_EXT', 'Graphics.GL.Internal.Shared.GL_DST_ALPHA', 'Graphics.GL.Internal.Shared.GL_ONE', 'Graphics.GL.Ext.EXT.BlendColor.GL_ONE_MINUS_CONSTANT_ALPHA_EXT', 'Graphics.GL.Ext.EXT.BlendColor.GL_ONE_MINUS_CONSTANT_COLOR_EXT', 'Graphics.GL.Internal.Shared.GL_ONE_MINUS_DST_ALPHA', 'Graphics.GL.Internal.Shared.GL_ONE_MINUS_SRC_ALPHA', 'Graphics.GL.Internal.Shared.GL_ONE_MINUS_SRC_COLOR', 'Graphics.GL.Internal.Shared.GL_SRC_ALPHA', 'Graphics.GL.Internal.Shared.GL_SRC_COLOR', 'Graphics.GL.Internal.Shared.GL_ZERO'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBlendFunc.xhtml>
-
-
-glBlendFunc :: MonadIO m => GLenum -> GLenum -> m ()
-glBlendFunc = ffienumenumIOV glBlendFuncFunPtr
-
-glBlendFuncFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
-glBlendFuncFunPtr = unsafePerformIO (getProcAddress "glBlendFunc")
-
-{-# NOINLINE glBlendFuncFunPtr #-}
-
--- | Usage: @'glBlendFuncSeparate' sfactorRGB dfactorRGB sfactorAlpha dfactorAlpha@
---
--- The parameter @sfactorRGB@ is a @BlendFuncSeparateParameterEXT@.
---
--- The parameter @dfactorRGB@ is a @BlendFuncSeparateParameterEXT@.
---
--- The parameter @sfactorAlpha@ is a @BlendFuncSeparateParameterEXT@.
---
--- The parameter @dfactorAlpha@ is a @BlendFuncSeparateParameterEXT@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBlendFuncSeparate.xhtml>
-
-
-glBlendFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()
-glBlendFuncSeparate = ffienumenumenumenumIOV glBlendFuncSeparateFunPtr
-
-glBlendFuncSeparateFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ())
-glBlendFuncSeparateFunPtr = unsafePerformIO (getProcAddress "glBlendFuncSeparate")
-
-{-# NOINLINE glBlendFuncSeparateFunPtr #-}
-
--- | Usage: @'glBlitFramebuffer' srcX0 srcY0 srcX1 srcY1 dstX0 dstY0 dstX1 dstY1 mask filter@
---
--- The parameter @mask@ is a @ClearBufferMask@, one of: 'Graphics.GL.Internal.Shared.GL_ACCUM_BUFFER_BIT', 'Graphics.GL.Internal.Shared.GL_COLOR_BUFFER_BIT', 'Graphics.GL.Ext.NV.CoverageSample.GL_COVERAGE_BUFFER_BIT_NV', 'Graphics.GL.Internal.Shared.GL_DEPTH_BUFFER_BIT', 'Graphics.GL.Internal.Shared.GL_STENCIL_BUFFER_BIT'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBlitFramebuffer.xhtml>
-
-
-glBlitFramebuffer :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()
-glBlitFramebuffer = ffiintintintintintintintintbitfieldenumIOV glBlitFramebufferFunPtr
-
-glBlitFramebufferFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> IO ())
-glBlitFramebufferFunPtr = unsafePerformIO (getProcAddress "glBlitFramebuffer")
-
-{-# NOINLINE glBlitFramebufferFunPtr #-}
-
--- | Usage: @'glBufferData' target size data usage@
---
--- The parameter @target@ is a @BufferTargetARB@.
---
--- The parameter @size@ is a @BufferSize@.
---
--- The parameter @usage@ is a @BufferUsageARB@.
---
--- The length of @data@ should be @size@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBufferData.xhtml>
-
-
-glBufferData :: MonadIO m => GLenum -> GLsizeiptr -> Ptr () -> GLenum -> m ()
-glBufferData = ffienumsizeiptrPtrVenumIOV glBufferDataFunPtr
-
-glBufferDataFunPtr :: FunPtr (GLenum -> GLsizeiptr -> Ptr () -> GLenum -> IO ())
-glBufferDataFunPtr = unsafePerformIO (getProcAddress "glBufferData")
-
-{-# NOINLINE glBufferDataFunPtr #-}
-
--- | Usage: @'glBufferSubData' target offset size data@
---
--- The parameter @target@ is a @BufferTargetARB@.
---
--- The parameter @offset@ is a @BufferOffset@.
---
--- The parameter @size@ is a @BufferSize@.
---
--- The length of @data@ should be @size@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBufferSubData.xhtml>
-
-
-glBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr () -> m ()
-glBufferSubData = ffienumintptrsizeiptrPtrVIOV glBufferSubDataFunPtr
-
-glBufferSubDataFunPtr :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> Ptr () -> IO ())
-glBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glBufferSubData")
-
-{-# NOINLINE glBufferSubDataFunPtr #-}
-
--- | Usage: @'glCheckFramebufferStatus' target@
---
--- The parameter @target@ is a @FramebufferTarget@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCheckFramebufferStatus.xhtml>
-
-
-glCheckFramebufferStatus :: MonadIO m => GLenum -> m GLenum
-glCheckFramebufferStatus = ffienumIOenum glCheckFramebufferStatusFunPtr
-
-glCheckFramebufferStatusFunPtr :: FunPtr (GLenum -> IO GLenum)
-glCheckFramebufferStatusFunPtr = unsafePerformIO (getProcAddress "glCheckFramebufferStatus")
-
-{-# NOINLINE glCheckFramebufferStatusFunPtr #-}
-
--- | Usage: @'glClampColor' target clamp@
---
--- The parameter @target@ is a @ClampColorTargetARB@.
---
--- The parameter @clamp@ is a @ClampColorModeARB@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glClampColor.xhtml>
-
-
-glClampColor :: MonadIO m => GLenum -> GLenum -> m ()
-glClampColor = ffienumenumIOV glClampColorFunPtr
-
-glClampColorFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
-glClampColorFunPtr = unsafePerformIO (getProcAddress "glClampColor")
-
-{-# NOINLINE glClampColorFunPtr #-}
-
--- | Usage: @'glClear' mask@
---
--- The parameter @mask@ is a @ClearBufferMask@, one of: 'Graphics.GL.Internal.Shared.GL_ACCUM_BUFFER_BIT', 'Graphics.GL.Internal.Shared.GL_COLOR_BUFFER_BIT', 'Graphics.GL.Ext.NV.CoverageSample.GL_COVERAGE_BUFFER_BIT_NV', 'Graphics.GL.Internal.Shared.GL_DEPTH_BUFFER_BIT', 'Graphics.GL.Internal.Shared.GL_STENCIL_BUFFER_BIT'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glClear.xhtml>
-
-
-glClear :: MonadIO m => GLbitfield -> m ()
-glClear = ffibitfieldIOV glClearFunPtr
-
-glClearFunPtr :: FunPtr (GLbitfield -> IO ())
-glClearFunPtr = unsafePerformIO (getProcAddress "glClear")
-
-{-# NOINLINE glClearFunPtr #-}
-
--- | Usage: @'glClearBufferfi' buffer drawbuffer depth stencil@
---
--- The parameter @drawbuffer@ is a @DrawBufferName@.
-
-
-glClearBufferfi :: MonadIO m => GLenum -> GLint -> GLfloat -> GLint -> m ()
-glClearBufferfi = ffienumintfloatintIOV glClearBufferfiFunPtr
-
-glClearBufferfiFunPtr :: FunPtr (GLenum -> GLint -> GLfloat -> GLint -> IO ())
-glClearBufferfiFunPtr = unsafePerformIO (getProcAddress "glClearBufferfi")
-
-{-# NOINLINE glClearBufferfiFunPtr #-}
-
--- | Usage: @'glClearBufferfv' buffer drawbuffer value@
---
--- The parameter @drawbuffer@ is a @DrawBufferName@.
---
--- The length of @value@ should be @COMPSIZE(buffer)@.
-
-
-glClearBufferfv :: MonadIO m => GLenum -> GLint -> Ptr GLfloat -> m ()
-glClearBufferfv = ffienumintPtrfloatIOV glClearBufferfvFunPtr
-
-glClearBufferfvFunPtr :: FunPtr (GLenum -> GLint -> Ptr GLfloat -> IO ())
-glClearBufferfvFunPtr = unsafePerformIO (getProcAddress "glClearBufferfv")
-
-{-# NOINLINE glClearBufferfvFunPtr #-}
-
--- | Usage: @'glClearBufferiv' buffer drawbuffer value@
---
--- The parameter @drawbuffer@ is a @DrawBufferName@.
---
--- The length of @value@ should be @COMPSIZE(buffer)@.
-
-
-glClearBufferiv :: MonadIO m => GLenum -> GLint -> Ptr GLint -> m ()
-glClearBufferiv = ffienumintPtrintIOV glClearBufferivFunPtr
-
-glClearBufferivFunPtr :: FunPtr (GLenum -> GLint -> Ptr GLint -> IO ())
-glClearBufferivFunPtr = unsafePerformIO (getProcAddress "glClearBufferiv")
-
-{-# NOINLINE glClearBufferivFunPtr #-}
-
--- | Usage: @'glClearBufferuiv' buffer drawbuffer value@
---
--- The parameter @drawbuffer@ is a @DrawBufferName@.
---
--- The length of @value@ should be @COMPSIZE(buffer)@.
-
-
-glClearBufferuiv :: MonadIO m => GLenum -> GLint -> Ptr GLuint -> m ()
-glClearBufferuiv = ffienumintPtruintIOV glClearBufferuivFunPtr
-
-glClearBufferuivFunPtr :: FunPtr (GLenum -> GLint -> Ptr GLuint -> IO ())
-glClearBufferuivFunPtr = unsafePerformIO (getProcAddress "glClearBufferuiv")
-
-{-# NOINLINE glClearBufferuivFunPtr #-}
-
--- | Usage: @'glClearColor' red green blue alpha@
---
--- The parameter @red@ is a @ColorF@.
---
--- The parameter @green@ is a @ColorF@.
---
--- The parameter @blue@ is a @ColorF@.
---
--- The parameter @alpha@ is a @ColorF@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glClearColor.xhtml>
-
-
-glClearColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glClearColor = ffifloatfloatfloatfloatIOV glClearColorFunPtr
-
-glClearColorFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glClearColorFunPtr = unsafePerformIO (getProcAddress "glClearColor")
-
-{-# NOINLINE glClearColorFunPtr #-}
-
--- | Usage: @'glClearDepth' depth@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glClearDepth.xhtml>
-
-
-glClearDepth :: MonadIO m => GLdouble -> m ()
-glClearDepth = ffidoubleIOV glClearDepthFunPtr
-
-glClearDepthFunPtr :: FunPtr (GLdouble -> IO ())
-glClearDepthFunPtr = unsafePerformIO (getProcAddress "glClearDepth")
-
-{-# NOINLINE glClearDepthFunPtr #-}
-
--- | Usage: @'glClearStencil' s@
---
--- The parameter @s@ is a @StencilValue@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glClearStencil.xhtml>
-
-
-glClearStencil :: MonadIO m => GLint -> m ()
-glClearStencil = ffiintIOV glClearStencilFunPtr
-
-glClearStencilFunPtr :: FunPtr (GLint -> IO ())
-glClearStencilFunPtr = unsafePerformIO (getProcAddress "glClearStencil")
-
-{-# NOINLINE glClearStencilFunPtr #-}
-
--- | Usage: @'glClientWaitSync' sync flags timeout@
---
--- The parameter @sync@ is a @sync@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glClientWaitSync.xhtml>
-
-
-glClientWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m GLenum
-glClientWaitSync = ffisyncbitfielduint64IOenum glClientWaitSyncFunPtr
-
-glClientWaitSyncFunPtr :: FunPtr (GLsync -> GLbitfield -> GLuint64 -> IO GLenum)
-glClientWaitSyncFunPtr = unsafePerformIO (getProcAddress "glClientWaitSync")
-
-{-# NOINLINE glClientWaitSyncFunPtr #-}
-
--- | Usage: @'glColorMask' red green blue alpha@
---
--- The parameter @red@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The parameter @green@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The parameter @blue@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The parameter @alpha@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glColorMask.xhtml>
-
-
-glColorMask :: MonadIO m => GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()
-glColorMask = ffibooleanbooleanbooleanbooleanIOV glColorMaskFunPtr
-
-glColorMaskFunPtr :: FunPtr (GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ())
-glColorMaskFunPtr = unsafePerformIO (getProcAddress "glColorMask")
-
-{-# NOINLINE glColorMaskFunPtr #-}
-
--- | Usage: @'glColorMaski' index r g b a@
---
--- The parameter @r@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The parameter @g@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The parameter @b@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The parameter @a@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
-
-
-glColorMaski :: MonadIO m => GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()
-glColorMaski = ffiuintbooleanbooleanbooleanbooleanIOV glColorMaskiFunPtr
-
-glColorMaskiFunPtr :: FunPtr (GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ())
-glColorMaskiFunPtr = unsafePerformIO (getProcAddress "glColorMaski")
-
-{-# NOINLINE glColorMaskiFunPtr #-}
-
--- | Usage: @'glCompileShader' shader@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCompileShader.xhtml>
-
-
-glCompileShader :: MonadIO m => GLuint -> m ()
-glCompileShader = ffiuintIOV glCompileShaderFunPtr
-
-glCompileShaderFunPtr :: FunPtr (GLuint -> IO ())
-glCompileShaderFunPtr = unsafePerformIO (getProcAddress "glCompileShader")
-
-{-# NOINLINE glCompileShaderFunPtr #-}
-
--- | Usage: @'glCompressedTexImage1D' target level internalformat width border imageSize data@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
---
--- The parameter @border@ is a @CheckedInt32@.
---
--- The parameter @data@ is a @CompressedTextureARB@.
---
--- The length of @data@ should be @imageSize@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCompressedTexImage1D.xhtml>
-
-
-glCompressedTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
-glCompressedTexImage1D = ffienumintenumsizeiintsizeiPtrVIOV glCompressedTexImage1DFunPtr
-
-glCompressedTexImage1DFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ())
-glCompressedTexImage1DFunPtr = unsafePerformIO (getProcAddress "glCompressedTexImage1D")
-
-{-# NOINLINE glCompressedTexImage1DFunPtr #-}
-
--- | Usage: @'glCompressedTexImage2D' target level internalformat width height border imageSize data@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
---
--- The parameter @border@ is a @CheckedInt32@.
---
--- The parameter @data@ is a @CompressedTextureARB@.
---
--- The length of @data@ should be @imageSize@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCompressedTexImage2D.xhtml>
-
-
-glCompressedTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
-glCompressedTexImage2D = ffienumintenumsizeisizeiintsizeiPtrVIOV glCompressedTexImage2DFunPtr
-
-glCompressedTexImage2DFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ())
-glCompressedTexImage2DFunPtr = unsafePerformIO (getProcAddress "glCompressedTexImage2D")
-
-{-# NOINLINE glCompressedTexImage2DFunPtr #-}
-
--- | Usage: @'glCompressedTexImage3D' target level internalformat width height depth border imageSize data@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
---
--- The parameter @border@ is a @CheckedInt32@.
---
--- The parameter @data@ is a @CompressedTextureARB@.
---
--- The length of @data@ should be @imageSize@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCompressedTexImage3D.xhtml>
-
-
-glCompressedTexImage3D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
-glCompressedTexImage3D = ffienumintenumsizeisizeisizeiintsizeiPtrVIOV glCompressedTexImage3DFunPtr
-
-glCompressedTexImage3DFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ())
-glCompressedTexImage3DFunPtr = unsafePerformIO (getProcAddress "glCompressedTexImage3D")
-
-{-# NOINLINE glCompressedTexImage3DFunPtr #-}
-
--- | Usage: @'glCompressedTexSubImage1D' target level xoffset width format imageSize data@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @xoffset@ is a @CheckedInt32@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @data@ is a @CompressedTextureARB@.
---
--- The length of @data@ should be @imageSize@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCompressedTexSubImage1D.xhtml>
-
-
-glCompressedTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
-glCompressedTexSubImage1D = ffienumintintsizeienumsizeiPtrVIOV glCompressedTexSubImage1DFunPtr
-
-glCompressedTexSubImage1DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
-glCompressedTexSubImage1DFunPtr = unsafePerformIO (getProcAddress "glCompressedTexSubImage1D")
-
-{-# NOINLINE glCompressedTexSubImage1DFunPtr #-}
-
--- | Usage: @'glCompressedTexSubImage2D' target level xoffset yoffset width height format imageSize data@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @xoffset@ is a @CheckedInt32@.
---
--- The parameter @yoffset@ is a @CheckedInt32@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @data@ is a @CompressedTextureARB@.
---
--- The length of @data@ should be @imageSize@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCompressedTexSubImage2D.xhtml>
-
-
-glCompressedTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
-glCompressedTexSubImage2D = ffienumintintintsizeisizeienumsizeiPtrVIOV glCompressedTexSubImage2DFunPtr
-
-glCompressedTexSubImage2DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
-glCompressedTexSubImage2DFunPtr = unsafePerformIO (getProcAddress "glCompressedTexSubImage2D")
-
-{-# NOINLINE glCompressedTexSubImage2DFunPtr #-}
-
--- | Usage: @'glCompressedTexSubImage3D' target level xoffset yoffset zoffset width height depth format imageSize data@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @xoffset@ is a @CheckedInt32@.
---
--- The parameter @yoffset@ is a @CheckedInt32@.
---
--- The parameter @zoffset@ is a @CheckedInt32@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @data@ is a @CompressedTextureARB@.
---
--- The length of @data@ should be @imageSize@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCompressedTexSubImage3D.xhtml>
-
-
-glCompressedTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
-glCompressedTexSubImage3D = ffienumintintintintsizeisizeisizeienumsizeiPtrVIOV glCompressedTexSubImage3DFunPtr
-
-glCompressedTexSubImage3DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
-glCompressedTexSubImage3DFunPtr = unsafePerformIO (getProcAddress "glCompressedTexSubImage3D")
-
-{-# NOINLINE glCompressedTexSubImage3DFunPtr #-}
-
--- | Usage: @'glCopyBufferSubData' readTarget writeTarget readOffset writeOffset size@
---
--- The parameter @readOffset@ is a @BufferOffset@.
---
--- The parameter @writeOffset@ is a @BufferOffset@.
---
--- The parameter @size@ is a @BufferSize@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCopyBufferSubData.xhtml>
-
-
-glCopyBufferSubData :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> m ()
-glCopyBufferSubData = ffienumenumintptrintptrsizeiptrIOV glCopyBufferSubDataFunPtr
-
-glCopyBufferSubDataFunPtr :: FunPtr (GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> IO ())
-glCopyBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glCopyBufferSubData")
-
-{-# NOINLINE glCopyBufferSubDataFunPtr #-}
-
--- | Usage: @'glCopyTexImage1D' target level internalformat x y width border@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
---
--- The parameter @x@ is a @WinCoord@.
---
--- The parameter @y@ is a @WinCoord@.
---
--- The parameter @border@ is a @CheckedInt32@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCopyTexImage1D.xhtml>
-
-
-glCopyTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()
-glCopyTexImage1D = ffienumintenumintintsizeiintIOV glCopyTexImage1DFunPtr
-
-glCopyTexImage1DFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> IO ())
-glCopyTexImage1DFunPtr = unsafePerformIO (getProcAddress "glCopyTexImage1D")
-
-{-# NOINLINE glCopyTexImage1DFunPtr #-}
-
--- | Usage: @'glCopyTexImage2D' target level internalformat x y width height border@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
---
--- The parameter @x@ is a @WinCoord@.
---
--- The parameter @y@ is a @WinCoord@.
---
--- The parameter @border@ is a @CheckedInt32@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCopyTexImage2D.xhtml>
-
-
-glCopyTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()
-glCopyTexImage2D = ffienumintenumintintsizeisizeiintIOV glCopyTexImage2DFunPtr
-
-glCopyTexImage2DFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> IO ())
-glCopyTexImage2DFunPtr = unsafePerformIO (getProcAddress "glCopyTexImage2D")
-
-{-# NOINLINE glCopyTexImage2DFunPtr #-}
-
--- | Usage: @'glCopyTexSubImage1D' target level xoffset x y width@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @xoffset@ is a @CheckedInt32@.
---
--- The parameter @x@ is a @WinCoord@.
---
--- The parameter @y@ is a @WinCoord@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCopyTexSubImage1D.xhtml>
-
-
-glCopyTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()
-glCopyTexSubImage1D = ffienumintintintintsizeiIOV glCopyTexSubImage1DFunPtr
-
-glCopyTexSubImage1DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ())
-glCopyTexSubImage1DFunPtr = unsafePerformIO (getProcAddress "glCopyTexSubImage1D")
-
-{-# NOINLINE glCopyTexSubImage1DFunPtr #-}
-
--- | Usage: @'glCopyTexSubImage2D' target level xoffset yoffset x y width height@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @xoffset@ is a @CheckedInt32@.
---
--- The parameter @yoffset@ is a @CheckedInt32@.
---
--- The parameter @x@ is a @WinCoord@.
---
--- The parameter @y@ is a @WinCoord@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCopyTexSubImage2D.xhtml>
-
-
-glCopyTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
-glCopyTexSubImage2D = ffienumintintintintintsizeisizeiIOV glCopyTexSubImage2DFunPtr
-
-glCopyTexSubImage2DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
-glCopyTexSubImage2DFunPtr = unsafePerformIO (getProcAddress "glCopyTexSubImage2D")
-
-{-# NOINLINE glCopyTexSubImage2DFunPtr #-}
-
--- | Usage: @'glCopyTexSubImage3D' target level xoffset yoffset zoffset x y width height@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @xoffset@ is a @CheckedInt32@.
---
--- The parameter @yoffset@ is a @CheckedInt32@.
---
--- The parameter @zoffset@ is a @CheckedInt32@.
---
--- The parameter @x@ is a @WinCoord@.
---
--- The parameter @y@ is a @WinCoord@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCopyTexSubImage3D.xhtml>
-
-
-glCopyTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
-glCopyTexSubImage3D = ffienumintintintintintintsizeisizeiIOV glCopyTexSubImage3DFunPtr
-
-glCopyTexSubImage3DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
-glCopyTexSubImage3DFunPtr = unsafePerformIO (getProcAddress "glCopyTexSubImage3D")
-
-{-# NOINLINE glCopyTexSubImage3DFunPtr #-}
-
--- | Usage: @'glCreateProgram'@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCreateProgram.xhtml>
-
-
-glCreateProgram :: MonadIO m => m GLuint
-glCreateProgram = ffiIOuint glCreateProgramFunPtr
-
-glCreateProgramFunPtr :: FunPtr (IO GLuint)
-glCreateProgramFunPtr = unsafePerformIO (getProcAddress "glCreateProgram")
-
-{-# NOINLINE glCreateProgramFunPtr #-}
-
--- | Usage: @'glCreateShader' type@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCreateShader.xhtml>
-
-
-glCreateShader :: MonadIO m => GLenum -> m GLuint
-glCreateShader = ffienumIOuint glCreateShaderFunPtr
-
-glCreateShaderFunPtr :: FunPtr (GLenum -> IO GLuint)
-glCreateShaderFunPtr = unsafePerformIO (getProcAddress "glCreateShader")
-
-{-# NOINLINE glCreateShaderFunPtr #-}
-
--- | Usage: @'glCullFace' mode@
---
--- The parameter @mode@ is a @CullFaceMode@, one of: 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCullFace.xhtml>
-
-
-glCullFace :: MonadIO m => GLenum -> m ()
-glCullFace = ffienumIOV glCullFaceFunPtr
-
-glCullFaceFunPtr :: FunPtr (GLenum -> IO ())
-glCullFaceFunPtr = unsafePerformIO (getProcAddress "glCullFace")
-
-{-# NOINLINE glCullFaceFunPtr #-}
-
--- | Usage: @'glDeleteBuffers' n buffers@
---
--- The length of @buffers@ should be @n@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDeleteBuffers.xhtml>
-
-
-glDeleteBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glDeleteBuffers = ffisizeiPtruintIOV glDeleteBuffersFunPtr
-
-glDeleteBuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glDeleteBuffersFunPtr = unsafePerformIO (getProcAddress "glDeleteBuffers")
-
-{-# NOINLINE glDeleteBuffersFunPtr #-}
-
--- | Usage: @'glDeleteFramebuffers' n framebuffers@
---
--- The length of @framebuffers@ should be @n@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDeleteFramebuffers.xhtml>
-
-
-glDeleteFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glDeleteFramebuffers = ffisizeiPtruintIOV glDeleteFramebuffersFunPtr
-
-glDeleteFramebuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glDeleteFramebuffersFunPtr = unsafePerformIO (getProcAddress "glDeleteFramebuffers")
-
-{-# NOINLINE glDeleteFramebuffersFunPtr #-}
-
--- | Usage: @'glDeleteProgram' program@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDeleteProgram.xhtml>
-
-
-glDeleteProgram :: MonadIO m => GLuint -> m ()
-glDeleteProgram = ffiuintIOV glDeleteProgramFunPtr
-
-glDeleteProgramFunPtr :: FunPtr (GLuint -> IO ())
-glDeleteProgramFunPtr = unsafePerformIO (getProcAddress "glDeleteProgram")
-
-{-# NOINLINE glDeleteProgramFunPtr #-}
-
--- | Usage: @'glDeleteQueries' n ids@
---
--- The length of @ids@ should be @n@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDeleteQueries.xhtml>
-
-
-glDeleteQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glDeleteQueries = ffisizeiPtruintIOV glDeleteQueriesFunPtr
-
-glDeleteQueriesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glDeleteQueriesFunPtr = unsafePerformIO (getProcAddress "glDeleteQueries")
-
-{-# NOINLINE glDeleteQueriesFunPtr #-}
-
--- | Usage: @'glDeleteRenderbuffers' n renderbuffers@
---
--- The length of @renderbuffers@ should be @n@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDeleteRenderbuffers.xhtml>
-
-
-glDeleteRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glDeleteRenderbuffers = ffisizeiPtruintIOV glDeleteRenderbuffersFunPtr
-
-glDeleteRenderbuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glDeleteRenderbuffersFunPtr = unsafePerformIO (getProcAddress "glDeleteRenderbuffers")
-
-{-# NOINLINE glDeleteRenderbuffersFunPtr #-}
-
--- | Usage: @'glDeleteShader' shader@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDeleteShader.xhtml>
-
-
-glDeleteShader :: MonadIO m => GLuint -> m ()
-glDeleteShader = ffiuintIOV glDeleteShaderFunPtr
-
-glDeleteShaderFunPtr :: FunPtr (GLuint -> IO ())
-glDeleteShaderFunPtr = unsafePerformIO (getProcAddress "glDeleteShader")
-
-{-# NOINLINE glDeleteShaderFunPtr #-}
-
--- | Usage: @'glDeleteSync' sync@
---
--- The parameter @sync@ is a @sync@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDeleteSync.xhtml>
-
-
-glDeleteSync :: MonadIO m => GLsync -> m ()
-glDeleteSync = ffisyncIOV glDeleteSyncFunPtr
-
-glDeleteSyncFunPtr :: FunPtr (GLsync -> IO ())
-glDeleteSyncFunPtr = unsafePerformIO (getProcAddress "glDeleteSync")
-
-{-# NOINLINE glDeleteSyncFunPtr #-}
-
--- | Usage: @'glDeleteTextures' n textures@
---
--- The parameter @textures@ is a @Texture@.
---
--- The length of @textures@ should be @n@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDeleteTextures.xhtml>
-
-
-glDeleteTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glDeleteTextures = ffisizeiPtruintIOV glDeleteTexturesFunPtr
-
-glDeleteTexturesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glDeleteTexturesFunPtr = unsafePerformIO (getProcAddress "glDeleteTextures")
-
-{-# NOINLINE glDeleteTexturesFunPtr #-}
-
--- | Usage: @'glDeleteVertexArrays' n arrays@
---
--- The length of @arrays@ should be @n@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDeleteVertexArrays.xhtml>
-
-
-glDeleteVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glDeleteVertexArrays = ffisizeiPtruintIOV glDeleteVertexArraysFunPtr
-
-glDeleteVertexArraysFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glDeleteVertexArraysFunPtr = unsafePerformIO (getProcAddress "glDeleteVertexArrays")
-
-{-# NOINLINE glDeleteVertexArraysFunPtr #-}
-
--- | Usage: @'glDepthFunc' func@
---
--- The parameter @func@ is a @DepthFunction@, one of: 'Graphics.GL.Internal.Shared.GL_ALWAYS', 'Graphics.GL.Internal.Shared.GL_EQUAL', 'Graphics.GL.Internal.Shared.GL_GEQUAL', 'Graphics.GL.Internal.Shared.GL_GREATER', 'Graphics.GL.Internal.Shared.GL_LEQUAL', 'Graphics.GL.Internal.Shared.GL_LESS', 'Graphics.GL.Internal.Shared.GL_NEVER', 'Graphics.GL.Internal.Shared.GL_NOTEQUAL'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDepthFunc.xhtml>
-
-
-glDepthFunc :: MonadIO m => GLenum -> m ()
-glDepthFunc = ffienumIOV glDepthFuncFunPtr
-
-glDepthFuncFunPtr :: FunPtr (GLenum -> IO ())
-glDepthFuncFunPtr = unsafePerformIO (getProcAddress "glDepthFunc")
-
-{-# NOINLINE glDepthFuncFunPtr #-}
-
--- | Usage: @'glDepthMask' flag@
---
--- The parameter @flag@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDepthMask.xhtml>
-
-
-glDepthMask :: MonadIO m => GLboolean -> m ()
-glDepthMask = ffibooleanIOV glDepthMaskFunPtr
-
-glDepthMaskFunPtr :: FunPtr (GLboolean -> IO ())
-glDepthMaskFunPtr = unsafePerformIO (getProcAddress "glDepthMask")
-
-{-# NOINLINE glDepthMaskFunPtr #-}
-
--- | Usage: @'glDepthRange' near far@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDepthRange.xhtml>
-
-
-glDepthRange :: MonadIO m => GLdouble -> GLdouble -> m ()
-glDepthRange = ffidoubledoubleIOV glDepthRangeFunPtr
-
-glDepthRangeFunPtr :: FunPtr (GLdouble -> GLdouble -> IO ())
-glDepthRangeFunPtr = unsafePerformIO (getProcAddress "glDepthRange")
-
-{-# NOINLINE glDepthRangeFunPtr #-}
-
--- | Usage: @'glDetachShader' program shader@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDetachShader.xhtml>
-
-
-glDetachShader :: MonadIO m => GLuint -> GLuint -> m ()
-glDetachShader = ffiuintuintIOV glDetachShaderFunPtr
-
-glDetachShaderFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
-glDetachShaderFunPtr = unsafePerformIO (getProcAddress "glDetachShader")
-
-{-# NOINLINE glDetachShaderFunPtr #-}
-
--- | Usage: @'glDisable' cap@
---
--- The parameter @cap@ is a @EnableCap@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Internal.Shared.GL_BLEND', 'Graphics.GL.Ext.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Internal.Shared.GL_DITHER', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Internal.Shared.GL_FOG', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Ext.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Ext.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Ext.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Ext.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Ext.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY'.
-
-
-glDisable :: MonadIO m => GLenum -> m ()
-glDisable = ffienumIOV glDisableFunPtr
-
-glDisableFunPtr :: FunPtr (GLenum -> IO ())
-glDisableFunPtr = unsafePerformIO (getProcAddress "glDisable")
-
-{-# NOINLINE glDisableFunPtr #-}
-
--- | Usage: @'glDisableVertexAttribArray' index@
-
-
-glDisableVertexAttribArray :: MonadIO m => GLuint -> m ()
-glDisableVertexAttribArray = ffiuintIOV glDisableVertexAttribArrayFunPtr
-
-glDisableVertexAttribArrayFunPtr :: FunPtr (GLuint -> IO ())
-glDisableVertexAttribArrayFunPtr = unsafePerformIO (getProcAddress "glDisableVertexAttribArray")
-
-{-# NOINLINE glDisableVertexAttribArrayFunPtr #-}
-
--- | Usage: @'glDisablei' target index@
-
-
-glDisablei :: MonadIO m => GLenum -> GLuint -> m ()
-glDisablei = ffienumuintIOV glDisableiFunPtr
-
-glDisableiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glDisableiFunPtr = unsafePerformIO (getProcAddress "glDisablei")
-
-{-# NOINLINE glDisableiFunPtr #-}
-
--- | Usage: @'glDrawArrays' mode first count@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawArrays.xhtml>
-
-
-glDrawArrays :: MonadIO m => GLenum -> GLint -> GLsizei -> m ()
-glDrawArrays = ffienumintsizeiIOV glDrawArraysFunPtr
-
-glDrawArraysFunPtr :: FunPtr (GLenum -> GLint -> GLsizei -> IO ())
-glDrawArraysFunPtr = unsafePerformIO (getProcAddress "glDrawArrays")
-
-{-# NOINLINE glDrawArraysFunPtr #-}
-
--- | Usage: @'glDrawArraysInstanced' mode first count instancecount@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawArraysInstanced.xhtml>
-
-
-glDrawArraysInstanced :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()
-glDrawArraysInstanced = ffienumintsizeisizeiIOV glDrawArraysInstancedFunPtr
-
-glDrawArraysInstancedFunPtr :: FunPtr (GLenum -> GLint -> GLsizei -> GLsizei -> IO ())
-glDrawArraysInstancedFunPtr = unsafePerformIO (getProcAddress "glDrawArraysInstanced")
-
-{-# NOINLINE glDrawArraysInstancedFunPtr #-}
-
--- | Usage: @'glDrawBuffer' buf@
---
--- The parameter @buf@ is a @DrawBufferMode@, one of: 'Graphics.GL.Internal.Shared.GL_AUX0', 'Graphics.GL.Internal.Shared.GL_AUX1', 'Graphics.GL.Internal.Shared.GL_AUX2', 'Graphics.GL.Internal.Shared.GL_AUX3', 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_BACK_LEFT', 'Graphics.GL.Internal.Shared.GL_BACK_RIGHT', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT_LEFT', 'Graphics.GL.Internal.Shared.GL_FRONT_RIGHT', 'Graphics.GL.Internal.Shared.GL_LEFT', 'Graphics.GL.Internal.Shared.GL_NONE', 'Graphics.GL.Ext.OES.FramebufferObject.GL_NONE_OES', 'Graphics.GL.Internal.Shared.GL_RIGHT'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawBuffer.xhtml>
-
-
-glDrawBuffer :: MonadIO m => GLenum -> m ()
-glDrawBuffer = ffienumIOV glDrawBufferFunPtr
-
-glDrawBufferFunPtr :: FunPtr (GLenum -> IO ())
-glDrawBufferFunPtr = unsafePerformIO (getProcAddress "glDrawBuffer")
-
-{-# NOINLINE glDrawBufferFunPtr #-}
-
--- | Usage: @'glDrawBuffers' n bufs@
---
--- The parameter @bufs@ is a @DrawBufferModeATI@.
---
--- The length of @bufs@ should be @n@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawBuffers.xhtml>
-
-
-glDrawBuffers :: MonadIO m => GLsizei -> Ptr GLenum -> m ()
-glDrawBuffers = ffisizeiPtrenumIOV glDrawBuffersFunPtr
-
-glDrawBuffersFunPtr :: FunPtr (GLsizei -> Ptr GLenum -> IO ())
-glDrawBuffersFunPtr = unsafePerformIO (getProcAddress "glDrawBuffers")
-
-{-# NOINLINE glDrawBuffersFunPtr #-}
-
--- | Usage: @'glDrawElements' mode count type indices@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- The parameter @type@ is a @DrawElementsType@.
---
--- The length of @indices@ should be @COMPSIZE(count,type)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawElements.xhtml>
-
-
-glDrawElements :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> m ()
-glDrawElements = ffienumsizeienumPtrVIOV glDrawElementsFunPtr
-
-glDrawElementsFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> IO ())
-glDrawElementsFunPtr = unsafePerformIO (getProcAddress "glDrawElements")
-
-{-# NOINLINE glDrawElementsFunPtr #-}
-
--- | Usage: @'glDrawElementsBaseVertex' mode count type indices basevertex@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- The parameter @type@ is a @DrawElementsType@.
---
--- The length of @indices@ should be @COMPSIZE(count,type)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawElementsBaseVertex.xhtml>
-
-
-glDrawElementsBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLint -> m ()
-glDrawElementsBaseVertex = ffienumsizeienumPtrVintIOV glDrawElementsBaseVertexFunPtr
-
-glDrawElementsBaseVertexFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLint -> IO ())
-glDrawElementsBaseVertexFunPtr = unsafePerformIO (getProcAddress "glDrawElementsBaseVertex")
-
-{-# NOINLINE glDrawElementsBaseVertexFunPtr #-}
-
--- | Usage: @'glDrawElementsInstanced' mode count type indices instancecount@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- The parameter @type@ is a @DrawElementsType@.
---
--- The length of @indices@ should be @COMPSIZE(count,type)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawElementsInstanced.xhtml>
-
-
-glDrawElementsInstanced :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> m ()
-glDrawElementsInstanced = ffienumsizeienumPtrVsizeiIOV glDrawElementsInstancedFunPtr
-
-glDrawElementsInstancedFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> IO ())
-glDrawElementsInstancedFunPtr = unsafePerformIO (getProcAddress "glDrawElementsInstanced")
-
-{-# NOINLINE glDrawElementsInstancedFunPtr #-}
-
--- | Usage: @'glDrawElementsInstancedBaseVertex' mode count type indices instancecount basevertex@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- The parameter @type@ is a @DrawElementsType@.
---
--- The length of @indices@ should be @COMPSIZE(count,type)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawElementsInstancedBaseVertex.xhtml>
-
-
-glDrawElementsInstancedBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> m ()
-glDrawElementsInstancedBaseVertex = ffienumsizeienumPtrVsizeiintIOV glDrawElementsInstancedBaseVertexFunPtr
-
-glDrawElementsInstancedBaseVertexFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> IO ())
-glDrawElementsInstancedBaseVertexFunPtr = unsafePerformIO (getProcAddress "glDrawElementsInstancedBaseVertex")
-
-{-# NOINLINE glDrawElementsInstancedBaseVertexFunPtr #-}
-
--- | Usage: @'glDrawRangeElements' mode start end count type indices@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- The parameter @type@ is a @DrawElementsType@.
---
--- The length of @indices@ should be @COMPSIZE(count,type)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawRangeElements.xhtml>
-
-
-glDrawRangeElements :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> m ()
-glDrawRangeElements = ffienumuintuintsizeienumPtrVIOV glDrawRangeElementsFunPtr
-
-glDrawRangeElementsFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> IO ())
-glDrawRangeElementsFunPtr = unsafePerformIO (getProcAddress "glDrawRangeElements")
-
-{-# NOINLINE glDrawRangeElementsFunPtr #-}
-
--- | Usage: @'glDrawRangeElementsBaseVertex' mode start end count type indices basevertex@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- The parameter @type@ is a @DrawElementsType@.
---
--- The length of @indices@ should be @COMPSIZE(count,type)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawRangeElementsBaseVertex.xhtml>
-
-
-glDrawRangeElementsBaseVertex :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> GLint -> m ()
-glDrawRangeElementsBaseVertex = ffienumuintuintsizeienumPtrVintIOV glDrawRangeElementsBaseVertexFunPtr
-
-glDrawRangeElementsBaseVertexFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> GLint -> IO ())
-glDrawRangeElementsBaseVertexFunPtr = unsafePerformIO (getProcAddress "glDrawRangeElementsBaseVertex")
-
-{-# NOINLINE glDrawRangeElementsBaseVertexFunPtr #-}
-
--- | Usage: @'glEnable' cap@
---
--- The parameter @cap@ is a @EnableCap@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Internal.Shared.GL_BLEND', 'Graphics.GL.Ext.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Internal.Shared.GL_DITHER', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Internal.Shared.GL_FOG', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Ext.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Ext.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Ext.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Ext.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Ext.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glEnable.xhtml>
-
-
-glEnable :: MonadIO m => GLenum -> m ()
-glEnable = ffienumIOV glEnableFunPtr
-
-glEnableFunPtr :: FunPtr (GLenum -> IO ())
-glEnableFunPtr = unsafePerformIO (getProcAddress "glEnable")
-
-{-# NOINLINE glEnableFunPtr #-}
-
--- | Usage: @'glEnableVertexAttribArray' index@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glEnableVertexAttribArray.xhtml>
-
-
-glEnableVertexAttribArray :: MonadIO m => GLuint -> m ()
-glEnableVertexAttribArray = ffiuintIOV glEnableVertexAttribArrayFunPtr
-
-glEnableVertexAttribArrayFunPtr :: FunPtr (GLuint -> IO ())
-glEnableVertexAttribArrayFunPtr = unsafePerformIO (getProcAddress "glEnableVertexAttribArray")
-
-{-# NOINLINE glEnableVertexAttribArrayFunPtr #-}
-
--- | Usage: @'glEnablei' target index@
-
-
-glEnablei :: MonadIO m => GLenum -> GLuint -> m ()
-glEnablei = ffienumuintIOV glEnableiFunPtr
-
-glEnableiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glEnableiFunPtr = unsafePerformIO (getProcAddress "glEnablei")
-
-{-# NOINLINE glEnableiFunPtr #-}
-
--- | Usage: @'glEndConditionalRender'@
-
-
-glEndConditionalRender :: MonadIO m => m ()
-glEndConditionalRender = ffiIOV glEndConditionalRenderFunPtr
-
-glEndConditionalRenderFunPtr :: FunPtr (IO ())
-glEndConditionalRenderFunPtr = unsafePerformIO (getProcAddress "glEndConditionalRender")
-
-{-# NOINLINE glEndConditionalRenderFunPtr #-}
-
--- | Usage: @'glEndQuery' target@
-
-
-glEndQuery :: MonadIO m => GLenum -> m ()
-glEndQuery = ffienumIOV glEndQueryFunPtr
-
-glEndQueryFunPtr :: FunPtr (GLenum -> IO ())
-glEndQueryFunPtr = unsafePerformIO (getProcAddress "glEndQuery")
-
-{-# NOINLINE glEndQueryFunPtr #-}
-
--- | Usage: @'glEndTransformFeedback'@
-
-
-glEndTransformFeedback :: MonadIO m => m ()
-glEndTransformFeedback = ffiIOV glEndTransformFeedbackFunPtr
-
-glEndTransformFeedbackFunPtr :: FunPtr (IO ())
-glEndTransformFeedbackFunPtr = unsafePerformIO (getProcAddress "glEndTransformFeedback")
-
-{-# NOINLINE glEndTransformFeedbackFunPtr #-}
-
--- | Usage: @'glFenceSync' condition flags@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glFenceSync.xhtml>
-
-
-glFenceSync :: MonadIO m => GLenum -> GLbitfield -> m GLsync
-glFenceSync = ffienumbitfieldIOsync glFenceSyncFunPtr
-
-glFenceSyncFunPtr :: FunPtr (GLenum -> GLbitfield -> IO GLsync)
-glFenceSyncFunPtr = unsafePerformIO (getProcAddress "glFenceSync")
-
-{-# NOINLINE glFenceSyncFunPtr #-}
-
--- | Usage: @'glFinish'@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glFinish.xhtml>
-
-
-glFinish :: MonadIO m => m ()
-glFinish = ffiIOV glFinishFunPtr
-
-glFinishFunPtr :: FunPtr (IO ())
-glFinishFunPtr = unsafePerformIO (getProcAddress "glFinish")
-
-{-# NOINLINE glFinishFunPtr #-}
-
--- | Usage: @'glFlush'@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glFlush.xhtml>
-
-
-glFlush :: MonadIO m => m ()
-glFlush = ffiIOV glFlushFunPtr
-
-glFlushFunPtr :: FunPtr (IO ())
-glFlushFunPtr = unsafePerformIO (getProcAddress "glFlush")
-
-{-# NOINLINE glFlushFunPtr #-}
-
--- | Usage: @'glFlushMappedBufferRange' target offset length@
---
--- The parameter @target@ is a @BufferTargetARB@.
---
--- The parameter @offset@ is a @BufferOffset@.
---
--- The parameter @length@ is a @BufferSize@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glFlushMappedBufferRange.xhtml>
-
-
-glFlushMappedBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> m ()
-glFlushMappedBufferRange = ffienumintptrsizeiptrIOV glFlushMappedBufferRangeFunPtr
-
-glFlushMappedBufferRangeFunPtr :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> IO ())
-glFlushMappedBufferRangeFunPtr = unsafePerformIO (getProcAddress "glFlushMappedBufferRange")
-
-{-# NOINLINE glFlushMappedBufferRangeFunPtr #-}
-
--- | Usage: @'glFramebufferRenderbuffer' target attachment renderbuffertarget renderbuffer@
---
--- The parameter @target@ is a @FramebufferTarget@.
---
--- The parameter @attachment@ is a @FramebufferAttachment@.
---
--- The parameter @renderbuffertarget@ is a @RenderbufferTarget@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glFramebufferRenderbuffer.xhtml>
-
-
-glFramebufferRenderbuffer :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m ()
-glFramebufferRenderbuffer = ffienumenumenumuintIOV glFramebufferRenderbufferFunPtr
-
-glFramebufferRenderbufferFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> IO ())
-glFramebufferRenderbufferFunPtr = unsafePerformIO (getProcAddress "glFramebufferRenderbuffer")
-
-{-# NOINLINE glFramebufferRenderbufferFunPtr #-}
-
--- | Usage: @'glFramebufferTexture' target attachment texture level@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glFramebufferTexture.xhtml>
-
-
-glFramebufferTexture :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> m ()
-glFramebufferTexture = ffienumenumuintintIOV glFramebufferTextureFunPtr
-
-glFramebufferTextureFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> IO ())
-glFramebufferTextureFunPtr = unsafePerformIO (getProcAddress "glFramebufferTexture")
-
-{-# NOINLINE glFramebufferTextureFunPtr #-}
-
--- | Usage: @'glFramebufferTexture1D' target attachment textarget texture level@
---
--- The parameter @target@ is a @FramebufferTarget@.
---
--- The parameter @attachment@ is a @FramebufferAttachment@.
-
-
-glFramebufferTexture1D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()
-glFramebufferTexture1D = ffienumenumenumuintintIOV glFramebufferTexture1DFunPtr
-
-glFramebufferTexture1DFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> IO ())
-glFramebufferTexture1DFunPtr = unsafePerformIO (getProcAddress "glFramebufferTexture1D")
-
-{-# NOINLINE glFramebufferTexture1DFunPtr #-}
-
--- | Usage: @'glFramebufferTexture2D' target attachment textarget texture level@
---
--- The parameter @target@ is a @FramebufferTarget@.
---
--- The parameter @attachment@ is a @FramebufferAttachment@.
-
-
-glFramebufferTexture2D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()
-glFramebufferTexture2D = ffienumenumenumuintintIOV glFramebufferTexture2DFunPtr
-
-glFramebufferTexture2DFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> IO ())
-glFramebufferTexture2DFunPtr = unsafePerformIO (getProcAddress "glFramebufferTexture2D")
-
-{-# NOINLINE glFramebufferTexture2DFunPtr #-}
-
--- | Usage: @'glFramebufferTexture3D' target attachment textarget texture level zoffset@
---
--- The parameter @target@ is a @FramebufferTarget@.
---
--- The parameter @attachment@ is a @FramebufferAttachment@.
-
-
-glFramebufferTexture3D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()
-glFramebufferTexture3D = ffienumenumenumuintintintIOV glFramebufferTexture3DFunPtr
-
-glFramebufferTexture3DFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ())
-glFramebufferTexture3DFunPtr = unsafePerformIO (getProcAddress "glFramebufferTexture3D")
-
-{-# NOINLINE glFramebufferTexture3DFunPtr #-}
-
--- | Usage: @'glFramebufferTextureLayer' target attachment texture level layer@
---
--- The parameter @target@ is a @FramebufferTarget@.
---
--- The parameter @attachment@ is a @FramebufferAttachment@.
---
--- The parameter @texture@ is a @Texture@.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @layer@ is a @CheckedInt32@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glFramebufferTextureLayer.xhtml>
-
-
-glFramebufferTextureLayer :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()
-glFramebufferTextureLayer = ffienumenumuintintintIOV glFramebufferTextureLayerFunPtr
-
-glFramebufferTextureLayerFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ())
-glFramebufferTextureLayerFunPtr = unsafePerformIO (getProcAddress "glFramebufferTextureLayer")
-
-{-# NOINLINE glFramebufferTextureLayerFunPtr #-}
-
--- | Usage: @'glFrontFace' mode@
---
--- The parameter @mode@ is a @FrontFaceDirection@, one of: 'Graphics.GL.Internal.Shared.GL_CCW', 'Graphics.GL.Internal.Shared.GL_CW'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glFrontFace.xhtml>
-
-
-glFrontFace :: MonadIO m => GLenum -> m ()
-glFrontFace = ffienumIOV glFrontFaceFunPtr
-
-glFrontFaceFunPtr :: FunPtr (GLenum -> IO ())
-glFrontFaceFunPtr = unsafePerformIO (getProcAddress "glFrontFace")
-
-{-# NOINLINE glFrontFaceFunPtr #-}
-
--- | Usage: @'glGenBuffers' n buffers@
---
--- The length of @buffers@ should be @n@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGenBuffers.xhtml>
-
-
-glGenBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glGenBuffers = ffisizeiPtruintIOV glGenBuffersFunPtr
-
-glGenBuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glGenBuffersFunPtr = unsafePerformIO (getProcAddress "glGenBuffers")
-
-{-# NOINLINE glGenBuffersFunPtr #-}
-
--- | Usage: @'glGenFramebuffers' n framebuffers@
---
--- The length of @framebuffers@ should be @n@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGenFramebuffers.xhtml>
-
-
-glGenFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glGenFramebuffers = ffisizeiPtruintIOV glGenFramebuffersFunPtr
-
-glGenFramebuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glGenFramebuffersFunPtr = unsafePerformIO (getProcAddress "glGenFramebuffers")
-
-{-# NOINLINE glGenFramebuffersFunPtr #-}
-
--- | Usage: @'glGenQueries' n ids@
---
--- The length of @ids@ should be @n@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGenQueries.xhtml>
-
-
-glGenQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glGenQueries = ffisizeiPtruintIOV glGenQueriesFunPtr
-
-glGenQueriesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glGenQueriesFunPtr = unsafePerformIO (getProcAddress "glGenQueries")
-
-{-# NOINLINE glGenQueriesFunPtr #-}
-
--- | Usage: @'glGenRenderbuffers' n renderbuffers@
---
--- The length of @renderbuffers@ should be @n@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGenRenderbuffers.xhtml>
-
-
-glGenRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glGenRenderbuffers = ffisizeiPtruintIOV glGenRenderbuffersFunPtr
-
-glGenRenderbuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glGenRenderbuffersFunPtr = unsafePerformIO (getProcAddress "glGenRenderbuffers")
-
-{-# NOINLINE glGenRenderbuffersFunPtr #-}
-
--- | Usage: @'glGenTextures' n textures@
---
--- The parameter @textures@ is a @Texture@.
---
--- The length of @textures@ should be @n@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGenTextures.xhtml>
-
-
-glGenTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glGenTextures = ffisizeiPtruintIOV glGenTexturesFunPtr
-
-glGenTexturesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glGenTexturesFunPtr = unsafePerformIO (getProcAddress "glGenTextures")
-
-{-# NOINLINE glGenTexturesFunPtr #-}
-
--- | Usage: @'glGenVertexArrays' n arrays@
---
--- The length of @arrays@ should be @n@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGenVertexArrays.xhtml>
-
-
-glGenVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glGenVertexArrays = ffisizeiPtruintIOV glGenVertexArraysFunPtr
-
-glGenVertexArraysFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glGenVertexArraysFunPtr = unsafePerformIO (getProcAddress "glGenVertexArrays")
-
-{-# NOINLINE glGenVertexArraysFunPtr #-}
-
--- | Usage: @'glGenerateMipmap' target@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGenerateMipmap.xhtml>
-
-
-glGenerateMipmap :: MonadIO m => GLenum -> m ()
-glGenerateMipmap = ffienumIOV glGenerateMipmapFunPtr
-
-glGenerateMipmapFunPtr :: FunPtr (GLenum -> IO ())
-glGenerateMipmapFunPtr = unsafePerformIO (getProcAddress "glGenerateMipmap")
-
-{-# NOINLINE glGenerateMipmapFunPtr #-}
-
--- | Usage: @'glGetActiveAttrib' program index bufSize length size type name@
---
--- The length of @length@ should be @1@.
---
--- The length of @size@ should be @1@.
---
--- The length of @type@ should be @1@.
---
--- The length of @name@ should be @bufSize@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetActiveAttrib.xhtml>
-
-
-glGetActiveAttrib :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()
-glGetActiveAttrib = ffiuintuintsizeiPtrsizeiPtrintPtrenumPtrcharIOV glGetActiveAttribFunPtr
-
-glGetActiveAttribFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> IO ())
-glGetActiveAttribFunPtr = unsafePerformIO (getProcAddress "glGetActiveAttrib")
-
-{-# NOINLINE glGetActiveAttribFunPtr #-}
-
--- | Usage: @'glGetActiveUniform' program index bufSize length size type name@
---
--- The length of @length@ should be @1@.
---
--- The length of @size@ should be @1@.
---
--- The length of @type@ should be @1@.
---
--- The length of @name@ should be @bufSize@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetActiveUniform.xhtml>
-
-
-glGetActiveUniform :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()
-glGetActiveUniform = ffiuintuintsizeiPtrsizeiPtrintPtrenumPtrcharIOV glGetActiveUniformFunPtr
-
-glGetActiveUniformFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> IO ())
-glGetActiveUniformFunPtr = unsafePerformIO (getProcAddress "glGetActiveUniform")
-
-{-# NOINLINE glGetActiveUniformFunPtr #-}
-
--- | Usage: @'glGetActiveUniformBlockName' program uniformBlockIndex bufSize length uniformBlockName@
---
--- The length of @length@ should be @1@.
---
--- The length of @uniformBlockName@ should be @bufSize@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetActiveUniformBlockName.xhtml>
-
-
-glGetActiveUniformBlockName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
-glGetActiveUniformBlockName = ffiuintuintsizeiPtrsizeiPtrcharIOV glGetActiveUniformBlockNameFunPtr
-
-glGetActiveUniformBlockNameFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
-glGetActiveUniformBlockNameFunPtr = unsafePerformIO (getProcAddress "glGetActiveUniformBlockName")
-
-{-# NOINLINE glGetActiveUniformBlockNameFunPtr #-}
-
--- | Usage: @'glGetActiveUniformBlockiv' program uniformBlockIndex pname params@
---
--- The length of @params@ should be @COMPSIZE(program,uniformBlockIndex,pname)@.
-
-
-glGetActiveUniformBlockiv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()
-glGetActiveUniformBlockiv = ffiuintuintenumPtrintIOV glGetActiveUniformBlockivFunPtr
-
-glGetActiveUniformBlockivFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetActiveUniformBlockivFunPtr = unsafePerformIO (getProcAddress "glGetActiveUniformBlockiv")
-
-{-# NOINLINE glGetActiveUniformBlockivFunPtr #-}
-
--- | Usage: @'glGetActiveUniformName' program uniformIndex bufSize length uniformName@
---
--- The length of @length@ should be @1@.
---
--- The length of @uniformName@ should be @bufSize@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetActiveUniformName.xhtml>
-
-
-glGetActiveUniformName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
-glGetActiveUniformName = ffiuintuintsizeiPtrsizeiPtrcharIOV glGetActiveUniformNameFunPtr
-
-glGetActiveUniformNameFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
-glGetActiveUniformNameFunPtr = unsafePerformIO (getProcAddress "glGetActiveUniformName")
-
-{-# NOINLINE glGetActiveUniformNameFunPtr #-}
-
--- | Usage: @'glGetActiveUniformsiv' program uniformCount uniformIndices pname params@
---
--- The length of @uniformIndices@ should be @uniformCount@.
---
--- The length of @params@ should be @COMPSIZE(uniformCount,pname)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetActiveUniformsiv.xhtml>
-
-
-glGetActiveUniformsiv :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> GLenum -> Ptr GLint -> m ()
-glGetActiveUniformsiv = ffiuintsizeiPtruintenumPtrintIOV glGetActiveUniformsivFunPtr
-
-glGetActiveUniformsivFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetActiveUniformsivFunPtr = unsafePerformIO (getProcAddress "glGetActiveUniformsiv")
-
-{-# NOINLINE glGetActiveUniformsivFunPtr #-}
-
--- | Usage: @'glGetAttachedShaders' program maxCount count shaders@
---
--- The length of @count@ should be @1@.
---
--- The length of @shaders@ should be @maxCount@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetAttachedShaders.xhtml>
-
-
-glGetAttachedShaders :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> m ()
-glGetAttachedShaders = ffiuintsizeiPtrsizeiPtruintIOV glGetAttachedShadersFunPtr
-
-glGetAttachedShadersFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> IO ())
-glGetAttachedShadersFunPtr = unsafePerformIO (getProcAddress "glGetAttachedShaders")
-
-{-# NOINLINE glGetAttachedShadersFunPtr #-}
-
--- | Usage: @'glGetAttribLocation' program name@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetAttribLocation.xhtml>
-
-
-glGetAttribLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint
-glGetAttribLocation = ffiuintPtrcharIOint glGetAttribLocationFunPtr
-
-glGetAttribLocationFunPtr :: FunPtr (GLuint -> Ptr GLchar -> IO GLint)
-glGetAttribLocationFunPtr = unsafePerformIO (getProcAddress "glGetAttribLocation")
-
-{-# NOINLINE glGetAttribLocationFunPtr #-}
-
--- | Usage: @'glGetBooleani_v' target index data@
---
--- The parameter @data@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @data@ should be @COMPSIZE(target)@.
-
-
-glGetBooleani_v :: MonadIO m => GLenum -> GLuint -> Ptr GLboolean -> m ()
-glGetBooleani_v = ffienumuintPtrbooleanIOV glGetBooleani_vFunPtr
-
-glGetBooleani_vFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLboolean -> IO ())
-glGetBooleani_vFunPtr = unsafePerformIO (getProcAddress "glGetBooleani_v")
-
-{-# NOINLINE glGetBooleani_vFunPtr #-}
-
--- | Usage: @'glGetBooleanv' pname data@
---
--- The parameter @pname@ is a @GetPName@, one of: 'Graphics.GL.Internal.Shared.GL_ACCUM_ALPHA_BITS', 'Graphics.GL.Internal.Shared.GL_ACCUM_BLUE_BITS', 'Graphics.GL.Internal.Shared.GL_ACCUM_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_ACCUM_GREEN_BITS', 'Graphics.GL.Internal.Shared.GL_ACCUM_RED_BITS', 'Graphics.GL.Internal.Shared.GL_ALIASED_LINE_WIDTH_RANGE', 'Graphics.GL.Internal.Shared.GL_ALIASED_POINT_SIZE_RANGE', 'Graphics.GL.Internal.Shared.GL_ALPHA_BIAS', 'Graphics.GL.Internal.Shared.GL_ALPHA_BITS', 'Graphics.GL.Internal.Shared.GL_ALPHA_SCALE', 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST_FUNC', 'Graphics.GL.Ext.QCOM.AlphaTest.GL_ALPHA_TEST_FUNC_QCOM', 'Graphics.GL.Ext.QCOM.AlphaTest.GL_ALPHA_TEST_QCOM', 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST_REF', 'Graphics.GL.Ext.QCOM.AlphaTest.GL_ALPHA_TEST_REF_QCOM', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.Async.GL_ASYNC_MARKER_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_ATTRIB_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Internal.Shared.GL_AUX_BUFFERS', 'Graphics.GL.Internal.Shared.GL_BLEND', 'Graphics.GL.Ext.EXT.BlendColor.GL_BLEND_COLOR_EXT', 'Graphics.GL.Internal.Shared.GL_BLEND_DST', 'Graphics.GL.Ext.EXT.BlendMinmax.GL_BLEND_EQUATION_EXT', 'Graphics.GL.Internal.Shared.GL_BLEND_SRC', 'Graphics.GL.Internal.Shared.GL_BLUE_BIAS', 'Graphics.GL.Internal.Shared.GL_BLUE_BITS', 'Graphics.GL.Internal.Shared.GL_BLUE_SCALE', 'Graphics.GL.Ext.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Internal.Shared.GL_CLIENT_ATTRIB_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_COLOR_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY_SIZE', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_COLOR_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL_FACE', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL_PARAMETER', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_COLOR_MATRIX_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_COLOR_MATRIX_STACK_DEPTH_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_COLOR_WRITEMASK', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Ext.SGIX.ConvolutionAccuracy.GL_CONVOLUTION_HINT_SGIX', 'Graphics.GL.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Internal.Shared.GL_CULL_FACE_MODE', 'Graphics.GL.Internal.Shared.GL_CURRENT_COLOR', 'Graphics.GL.Internal.Shared.GL_CURRENT_INDEX', 'Graphics.GL.Internal.Shared.GL_CURRENT_NORMAL', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_COLOR', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_DISTANCE', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_INDEX', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_POSITION', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_POSITION_VALID', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_TEXTURE_COORDS', 'Graphics.GL.Internal.Shared.GL_CURRENT_TEXTURE_COORDS', 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_DEFORMATIONS_MASK_SGIX', 'Graphics.GL.Internal.Shared.GL_DEPTH_BIAS', 'Graphics.GL.Internal.Shared.GL_DEPTH_BITS', 'Graphics.GL.Internal.Shared.GL_DEPTH_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_DEPTH_FUNC', 'Graphics.GL.Internal.Shared.GL_DEPTH_RANGE', 'Graphics.GL.Internal.Shared.GL_DEPTH_SCALE', 'Graphics.GL.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Internal.Shared.GL_DEPTH_WRITEMASK', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_BINDING_SGIS', 'Graphics.GL.Ext.SGIS.PointParameters.GL_DISTANCE_ATTENUATION_SGIS', 'Graphics.GL.Internal.Shared.GL_DITHER', 'Graphics.GL.Internal.Shared.GL_DOUBLEBUFFER', 'Graphics.GL.Internal.Shared.GL_DRAW_BUFFER', 'Graphics.GL.Ext.EXT.MultiviewDrawBuffers.GL_DRAW_BUFFER_EXT', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_EDGE_FLAG_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_FEEDBACK_BUFFER_SIZE', 'Graphics.GL.Internal.Shared.GL_FEEDBACK_BUFFER_TYPE', 'Graphics.GL.Internal.Shared.GL_FOG', 'Graphics.GL.Internal.Shared.GL_FOG_COLOR', 'Graphics.GL.Internal.Shared.GL_FOG_DENSITY', 'Graphics.GL.Internal.Shared.GL_FOG_END', 'Graphics.GL.Ext.SGIS.FogFunction.GL_FOG_FUNC_POINTS_SGIS', 'Graphics.GL.Internal.Shared.GL_FOG_HINT', 'Graphics.GL.Internal.Shared.GL_FOG_INDEX', 'Graphics.GL.Internal.Shared.GL_FOG_MODE', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_VALUE_SGIX', 'Graphics.GL.Internal.Shared.GL_FOG_START', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_FACTOR_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Internal.Shared.GL_FRONT_FACE', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_HINT_SGIS', 'Graphics.GL.Internal.Shared.GL_GREEN_BIAS', 'Graphics.GL.Internal.Shared.GL_GREEN_BITS', 'Graphics.GL.Internal.Shared.GL_GREEN_SCALE', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_INDEX_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_INDEX_BITS', 'Graphics.GL.Internal.Shared.GL_INDEX_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_INDEX_MODE', 'Graphics.GL.Internal.Shared.GL_INDEX_OFFSET', 'Graphics.GL.Internal.Shared.GL_INDEX_SHIFT', 'Graphics.GL.Internal.Shared.GL_INDEX_WRITEMASK', 'Graphics.GL.Ext.SGIX.Instruments.GL_INSTRUMENT_MEASUREMENTS_SGIX', 'Graphics.GL.Ext.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Ext.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_LIGHT_ENV_MODE_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_COLOR_CONTROL', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_LOCAL_VIEWER', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_TWO_SIDE', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH_HINT', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE_PATTERN', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE_REPEAT', 'Graphics.GL.Internal.Shared.GL_LINE_WIDTH', 'Graphics.GL.Internal.Shared.GL_LINE_WIDTH_GRANULARITY', 'Graphics.GL.Internal.Shared.GL_LINE_WIDTH_RANGE', 'Graphics.GL.Internal.Shared.GL_LIST_BASE', 'Graphics.GL.Internal.Shared.GL_LIST_INDEX', 'Graphics.GL.Internal.Shared.GL_LIST_MODE', 'Graphics.GL.Internal.Shared.GL_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_LOGIC_OP_MODE', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_GRID_DOMAIN', 'Graphics.GL.Internal.Shared.GL_MAP1_GRID_SEGMENTS', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_GRID_DOMAIN', 'Graphics.GL.Internal.Shared.GL_MAP2_GRID_SEGMENTS', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP_COLOR', 'Graphics.GL.Internal.Shared.GL_MAP_STENCIL', 'Graphics.GL.Internal.Shared.GL_MATRIX_MODE', 'Graphics.GL.Ext.EXT.Texture3D.GL_MAX_3D_TEXTURE_SIZE_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_MAX_4D_TEXTURE_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_MAX_ACTIVE_LIGHTS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_MAX_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_MAX_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_MAX_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_MAX_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_MAX_ATTRIB_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_CLIENT_ATTRIB_STACK_DEPTH', 'Graphics.GL.Ext.SGIX.Clipmap.GL_MAX_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Internal.Shared.GL_MAX_CLIP_DISTANCES', 'Graphics.GL.Internal.Shared.GL_MAX_CLIP_PLANES', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI', 'Graphics.GL.Internal.Shared.GL_MAX_EVAL_ORDER', 'Graphics.GL.Ext.SGIS.FogFunction.GL_MAX_FOG_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_MAX_FRAGMENT_LIGHTS_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_MAX_FRAMEZOOM_FACTOR_SGIX', 'Graphics.GL.Internal.Shared.GL_MAX_LIGHTS', 'Graphics.GL.Internal.Shared.GL_MAX_LIST_NESTING', 'Graphics.GL.Internal.Shared.GL_MAX_MODELVIEW_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_NAME_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_PIXEL_MAP_TABLE', 'Graphics.GL.Internal.Shared.GL_MAX_PROJECTION_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_TEXTURE_SIZE', 'Graphics.GL.Internal.Shared.GL_MAX_TEXTURE_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_VIEWPORT_DIMS', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_MATRIX_EXT', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_STACK_DEPTH_EXT', 'Graphics.GL.Internal.Shared.GL_MODELVIEW_MATRIX', 'Graphics.GL.Internal.Shared.GL_MODELVIEW_STACK_DEPTH', 'Graphics.GL.Ext.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Internal.Shared.GL_NAME_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_NORMAL_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_PACK_ALIGNMENT', 'Graphics.GL.Ext.EXT.Cmyka.GL_PACK_CMYK_HINT_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PACK_IMAGE_DEPTH_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_PACK_IMAGE_HEIGHT_EXT', 'Graphics.GL.Internal.Shared.GL_PACK_LSB_FIRST', 'Graphics.GL.Ext.SGIX.Resample.GL_PACK_RESAMPLE_SGIX', 'Graphics.GL.Internal.Shared.GL_PACK_ROW_LENGTH', 'Graphics.GL.Ext.EXT.Texture3D.GL_PACK_SKIP_IMAGES_EXT', 'Graphics.GL.Internal.Shared.GL_PACK_SKIP_PIXELS', 'Graphics.GL.Internal.Shared.GL_PACK_SKIP_ROWS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PACK_SKIP_VOLUMES_SGIS', 'Graphics.GL.Ext.SGIX.Subsample.GL_PACK_SUBSAMPLE_RATE_SGIX', 'Graphics.GL.Internal.Shared.GL_PACK_SWAP_BYTES', 'Graphics.GL.Internal.Shared.GL_PERSPECTIVE_CORRECTION_HINT', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_A_TO_A_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_B_TO_B_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_G_TO_G_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_A_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_B_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_G_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_I_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_R_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_R_TO_R_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_S_TO_S_SIZE', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_MODE_SGIX', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_CACHE_INCREMENT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_CACHE_SIZE_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_HEIGHT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_WIDTH_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_HEIGHT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_WIDTH_SGIX', 'Graphics.GL.Ext.SGIS.PointParameters.GL_POINT_FADE_THRESHOLD_SIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_POINT_SIZE', 'Graphics.GL.Internal.Shared.GL_POINT_SIZE_GRANULARITY', 'Graphics.GL.Ext.SGIS.PointParameters.GL_POINT_SIZE_MAX_SGIS', 'Graphics.GL.Ext.SGIS.PointParameters.GL_POINT_SIZE_MIN_SGIS', 'Graphics.GL.Internal.Shared.GL_POINT_SIZE_RANGE', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH_HINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_MODE', 'Graphics.GL.Ext.EXT.PolygonOffset.GL_POLYGON_OFFSET_BIAS_EXT', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FACTOR', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_UNITS', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH_HINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_RED_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_RED_SCALE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_ALPHA_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_ALPHA_SCALE_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_BLUE_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_BLUE_SCALE_EXT', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_GREEN_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_GREEN_SCALE_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_RED_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_RED_SCALE_EXT', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX', 'Graphics.GL.Internal.Shared.GL_PROJECTION_MATRIX', 'Graphics.GL.Internal.Shared.GL_PROJECTION_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_READ_BUFFER', 'Graphics.GL.Ext.EXT.MultiviewDrawBuffers.GL_READ_BUFFER_EXT', 'Graphics.GL.Ext.NV.ReadBuffer.GL_READ_BUFFER_NV', 'Graphics.GL.Internal.Shared.GL_RED_BIAS', 'Graphics.GL.Internal.Shared.GL_RED_BITS', 'Graphics.GL.Internal.Shared.GL_RED_SCALE', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_EQUATION_SGIX', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Internal.Shared.GL_RENDER_MODE', 'Graphics.GL.Ext.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Internal.Shared.GL_RGBA_MODE', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLES_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_BUFFERS_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_INVERT_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_VALUE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_PATTERN_SGIS', 'Graphics.GL.Internal.Shared.GL_SCISSOR_BOX', 'Graphics.GL.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Internal.Shared.GL_SELECTION_BUFFER_SIZE', 'Graphics.GL.Ext.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_SHADE_MODEL', 'Graphics.GL.Ext.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Internal.Shared.GL_SMOOTH_LINE_WIDTH_GRANULARITY', 'Graphics.GL.Internal.Shared.GL_SMOOTH_LINE_WIDTH_RANGE', 'Graphics.GL.Internal.Shared.GL_SMOOTH_POINT_SIZE_GRANULARITY', 'Graphics.GL.Internal.Shared.GL_SMOOTH_POINT_SIZE_RANGE', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_AXIS_SGIX', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_MODE_SGIX', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_TRANSLATION_SGIX', 'Graphics.GL.Internal.Shared.GL_STENCIL_BITS', 'Graphics.GL.Internal.Shared.GL_STENCIL_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_STENCIL_FAIL', 'Graphics.GL.Internal.Shared.GL_STENCIL_FUNC', 'Graphics.GL.Internal.Shared.GL_STENCIL_PASS_DEPTH_FAIL', 'Graphics.GL.Internal.Shared.GL_STENCIL_PASS_DEPTH_PASS', 'Graphics.GL.Internal.Shared.GL_STENCIL_REF', 'Graphics.GL.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Internal.Shared.GL_STENCIL_VALUE_MASK', 'Graphics.GL.Internal.Shared.GL_STENCIL_WRITEMASK', 'Graphics.GL.Internal.Shared.GL_STEREO', 'Graphics.GL.Internal.Shared.GL_SUBPIXEL_BITS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_3D_BINDING_EXT', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_BINDING_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BINDING_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BINDING_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BINDING_3D', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_TEXTURE_COORD_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MATRIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_UNPACK_ALIGNMENT', 'Graphics.GL.Ext.EXT.Cmyka.GL_UNPACK_CMYK_HINT_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_UNPACK_IMAGE_DEPTH_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_UNPACK_IMAGE_HEIGHT_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_LSB_FIRST', 'Graphics.GL.Ext.SGIX.Resample.GL_UNPACK_RESAMPLE_SGIX', 'Graphics.GL.Internal.Shared.GL_UNPACK_ROW_LENGTH', 'Graphics.GL.Ext.EXT.Texture3D.GL_UNPACK_SKIP_IMAGES_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_SKIP_PIXELS', 'Graphics.GL.Internal.Shared.GL_UNPACK_SKIP_ROWS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_UNPACK_SKIP_VOLUMES_SGIS', 'Graphics.GL.Ext.SGIX.Subsample.GL_UNPACK_SUBSAMPLE_RATE_SGIX', 'Graphics.GL.Internal.Shared.GL_UNPACK_SWAP_BYTES', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_VERTEX_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY_SIZE', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY_TYPE', 'Graphics.GL.Ext.SGIX.VertexPreclip.GL_VERTEX_PRECLIP_HINT_SGIX', 'Graphics.GL.Ext.SGIX.VertexPreclip.GL_VERTEX_PRECLIP_SGIX', 'Graphics.GL.Internal.Shared.GL_VIEWPORT', 'Graphics.GL.Internal.Shared.GL_ZOOM_X', 'Graphics.GL.Internal.Shared.GL_ZOOM_Y'.
---
--- The parameter @data@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @data@ should be @COMPSIZE(pname)@.
-
-
-glGetBooleanv :: MonadIO m => GLenum -> Ptr GLboolean -> m ()
-glGetBooleanv = ffienumPtrbooleanIOV glGetBooleanvFunPtr
-
-glGetBooleanvFunPtr :: FunPtr (GLenum -> Ptr GLboolean -> IO ())
-glGetBooleanvFunPtr = unsafePerformIO (getProcAddress "glGetBooleanv")
-
-{-# NOINLINE glGetBooleanvFunPtr #-}
-
--- | Usage: @'glGetBufferParameteri64v' target pname params@
---
--- The parameter @target@ is a @BufferTargetARB@.
---
--- The parameter @pname@ is a @BufferPNameARB@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetBufferParameteri64v :: MonadIO m => GLenum -> GLenum -> Ptr GLint64 -> m ()
-glGetBufferParameteri64v = ffienumenumPtrint64IOV glGetBufferParameteri64vFunPtr
-
-glGetBufferParameteri64vFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint64 -> IO ())
-glGetBufferParameteri64vFunPtr = unsafePerformIO (getProcAddress "glGetBufferParameteri64v")
-
-{-# NOINLINE glGetBufferParameteri64vFunPtr #-}
-
--- | Usage: @'glGetBufferParameteriv' target pname params@
---
--- The parameter @target@ is a @BufferTargetARB@.
---
--- The parameter @pname@ is a @BufferPNameARB@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetBufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glGetBufferParameteriv = ffienumenumPtrintIOV glGetBufferParameterivFunPtr
-
-glGetBufferParameterivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetBufferParameterivFunPtr = unsafePerformIO (getProcAddress "glGetBufferParameteriv")
-
-{-# NOINLINE glGetBufferParameterivFunPtr #-}
-
--- | Usage: @'glGetBufferPointerv' target pname params@
---
--- The parameter @target@ is a @BufferTargetARB@.
---
--- The parameter @pname@ is a @BufferPointerNameARB@.
---
--- The length of @params@ should be @1@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetBufferPointerv.xhtml>
-
-
-glGetBufferPointerv :: MonadIO m => GLenum -> GLenum -> Ptr (Ptr ()) -> m ()
-glGetBufferPointerv = ffienumenumPtrPtrVIOV glGetBufferPointervFunPtr
-
-glGetBufferPointervFunPtr :: FunPtr (GLenum -> GLenum -> Ptr (Ptr ()) -> IO ())
-glGetBufferPointervFunPtr = unsafePerformIO (getProcAddress "glGetBufferPointerv")
-
-{-# NOINLINE glGetBufferPointervFunPtr #-}
-
--- | Usage: @'glGetBufferSubData' target offset size data@
---
--- The parameter @target@ is a @BufferTargetARB@.
---
--- The parameter @offset@ is a @BufferOffset@.
---
--- The parameter @size@ is a @BufferSize@.
---
--- The length of @data@ should be @size@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetBufferSubData.xhtml>
-
-
-glGetBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr () -> m ()
-glGetBufferSubData = ffienumintptrsizeiptrPtrVIOV glGetBufferSubDataFunPtr
-
-glGetBufferSubDataFunPtr :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> Ptr () -> IO ())
-glGetBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glGetBufferSubData")
-
-{-# NOINLINE glGetBufferSubDataFunPtr #-}
-
--- | Usage: @'glGetCompressedTexImage' target level img@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @img@ is a @CompressedTextureARB@.
---
--- The length of @img@ should be @COMPSIZE(target,level)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetCompressedTexImage.xhtml>
-
-
-glGetCompressedTexImage :: MonadIO m => GLenum -> GLint -> Ptr () -> m ()
-glGetCompressedTexImage = ffienumintPtrVIOV glGetCompressedTexImageFunPtr
-
-glGetCompressedTexImageFunPtr :: FunPtr (GLenum -> GLint -> Ptr () -> IO ())
-glGetCompressedTexImageFunPtr = unsafePerformIO (getProcAddress "glGetCompressedTexImage")
-
-{-# NOINLINE glGetCompressedTexImageFunPtr #-}
-
--- | Usage: @'glGetDoublev' pname data@
---
--- The parameter @pname@ is a @GetPName@, one of: 'Graphics.GL.Internal.Shared.GL_ACCUM_ALPHA_BITS', 'Graphics.GL.Internal.Shared.GL_ACCUM_BLUE_BITS', 'Graphics.GL.Internal.Shared.GL_ACCUM_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_ACCUM_GREEN_BITS', 'Graphics.GL.Internal.Shared.GL_ACCUM_RED_BITS', 'Graphics.GL.Internal.Shared.GL_ALIASED_LINE_WIDTH_RANGE', 'Graphics.GL.Internal.Shared.GL_ALIASED_POINT_SIZE_RANGE', 'Graphics.GL.Internal.Shared.GL_ALPHA_BIAS', 'Graphics.GL.Internal.Shared.GL_ALPHA_BITS', 'Graphics.GL.Internal.Shared.GL_ALPHA_SCALE', 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST_FUNC', 'Graphics.GL.Ext.QCOM.AlphaTest.GL_ALPHA_TEST_FUNC_QCOM', 'Graphics.GL.Ext.QCOM.AlphaTest.GL_ALPHA_TEST_QCOM', 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST_REF', 'Graphics.GL.Ext.QCOM.AlphaTest.GL_ALPHA_TEST_REF_QCOM', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.Async.GL_ASYNC_MARKER_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_ATTRIB_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Internal.Shared.GL_AUX_BUFFERS', 'Graphics.GL.Internal.Shared.GL_BLEND', 'Graphics.GL.Ext.EXT.BlendColor.GL_BLEND_COLOR_EXT', 'Graphics.GL.Internal.Shared.GL_BLEND_DST', 'Graphics.GL.Ext.EXT.BlendMinmax.GL_BLEND_EQUATION_EXT', 'Graphics.GL.Internal.Shared.GL_BLEND_SRC', 'Graphics.GL.Internal.Shared.GL_BLUE_BIAS', 'Graphics.GL.Internal.Shared.GL_BLUE_BITS', 'Graphics.GL.Internal.Shared.GL_BLUE_SCALE', 'Graphics.GL.Ext.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Internal.Shared.GL_CLIENT_ATTRIB_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_COLOR_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY_SIZE', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_COLOR_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL_FACE', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL_PARAMETER', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_COLOR_MATRIX_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_COLOR_MATRIX_STACK_DEPTH_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_COLOR_WRITEMASK', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Ext.SGIX.ConvolutionAccuracy.GL_CONVOLUTION_HINT_SGIX', 'Graphics.GL.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Internal.Shared.GL_CULL_FACE_MODE', 'Graphics.GL.Internal.Shared.GL_CURRENT_COLOR', 'Graphics.GL.Internal.Shared.GL_CURRENT_INDEX', 'Graphics.GL.Internal.Shared.GL_CURRENT_NORMAL', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_COLOR', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_DISTANCE', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_INDEX', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_POSITION', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_POSITION_VALID', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_TEXTURE_COORDS', 'Graphics.GL.Internal.Shared.GL_CURRENT_TEXTURE_COORDS', 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_DEFORMATIONS_MASK_SGIX', 'Graphics.GL.Internal.Shared.GL_DEPTH_BIAS', 'Graphics.GL.Internal.Shared.GL_DEPTH_BITS', 'Graphics.GL.Internal.Shared.GL_DEPTH_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_DEPTH_FUNC', 'Graphics.GL.Internal.Shared.GL_DEPTH_RANGE', 'Graphics.GL.Internal.Shared.GL_DEPTH_SCALE', 'Graphics.GL.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Internal.Shared.GL_DEPTH_WRITEMASK', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_BINDING_SGIS', 'Graphics.GL.Ext.SGIS.PointParameters.GL_DISTANCE_ATTENUATION_SGIS', 'Graphics.GL.Internal.Shared.GL_DITHER', 'Graphics.GL.Internal.Shared.GL_DOUBLEBUFFER', 'Graphics.GL.Internal.Shared.GL_DRAW_BUFFER', 'Graphics.GL.Ext.EXT.MultiviewDrawBuffers.GL_DRAW_BUFFER_EXT', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_EDGE_FLAG_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_FEEDBACK_BUFFER_SIZE', 'Graphics.GL.Internal.Shared.GL_FEEDBACK_BUFFER_TYPE', 'Graphics.GL.Internal.Shared.GL_FOG', 'Graphics.GL.Internal.Shared.GL_FOG_COLOR', 'Graphics.GL.Internal.Shared.GL_FOG_DENSITY', 'Graphics.GL.Internal.Shared.GL_FOG_END', 'Graphics.GL.Ext.SGIS.FogFunction.GL_FOG_FUNC_POINTS_SGIS', 'Graphics.GL.Internal.Shared.GL_FOG_HINT', 'Graphics.GL.Internal.Shared.GL_FOG_INDEX', 'Graphics.GL.Internal.Shared.GL_FOG_MODE', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_VALUE_SGIX', 'Graphics.GL.Internal.Shared.GL_FOG_START', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_FACTOR_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Internal.Shared.GL_FRONT_FACE', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_HINT_SGIS', 'Graphics.GL.Internal.Shared.GL_GREEN_BIAS', 'Graphics.GL.Internal.Shared.GL_GREEN_BITS', 'Graphics.GL.Internal.Shared.GL_GREEN_SCALE', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_INDEX_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_INDEX_BITS', 'Graphics.GL.Internal.Shared.GL_INDEX_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_INDEX_MODE', 'Graphics.GL.Internal.Shared.GL_INDEX_OFFSET', 'Graphics.GL.Internal.Shared.GL_INDEX_SHIFT', 'Graphics.GL.Internal.Shared.GL_INDEX_WRITEMASK', 'Graphics.GL.Ext.SGIX.Instruments.GL_INSTRUMENT_MEASUREMENTS_SGIX', 'Graphics.GL.Ext.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Ext.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_LIGHT_ENV_MODE_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_COLOR_CONTROL', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_LOCAL_VIEWER', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_TWO_SIDE', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH_HINT', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE_PATTERN', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE_REPEAT', 'Graphics.GL.Internal.Shared.GL_LINE_WIDTH', 'Graphics.GL.Internal.Shared.GL_LINE_WIDTH_GRANULARITY', 'Graphics.GL.Internal.Shared.GL_LINE_WIDTH_RANGE', 'Graphics.GL.Internal.Shared.GL_LIST_BASE', 'Graphics.GL.Internal.Shared.GL_LIST_INDEX', 'Graphics.GL.Internal.Shared.GL_LIST_MODE', 'Graphics.GL.Internal.Shared.GL_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_LOGIC_OP_MODE', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_GRID_DOMAIN', 'Graphics.GL.Internal.Shared.GL_MAP1_GRID_SEGMENTS', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_GRID_DOMAIN', 'Graphics.GL.Internal.Shared.GL_MAP2_GRID_SEGMENTS', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP_COLOR', 'Graphics.GL.Internal.Shared.GL_MAP_STENCIL', 'Graphics.GL.Internal.Shared.GL_MATRIX_MODE', 'Graphics.GL.Ext.EXT.Texture3D.GL_MAX_3D_TEXTURE_SIZE_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_MAX_4D_TEXTURE_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_MAX_ACTIVE_LIGHTS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_MAX_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_MAX_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_MAX_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_MAX_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_MAX_ATTRIB_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_CLIENT_ATTRIB_STACK_DEPTH', 'Graphics.GL.Ext.SGIX.Clipmap.GL_MAX_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Internal.Shared.GL_MAX_CLIP_DISTANCES', 'Graphics.GL.Internal.Shared.GL_MAX_CLIP_PLANES', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI', 'Graphics.GL.Internal.Shared.GL_MAX_EVAL_ORDER', 'Graphics.GL.Ext.SGIS.FogFunction.GL_MAX_FOG_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_MAX_FRAGMENT_LIGHTS_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_MAX_FRAMEZOOM_FACTOR_SGIX', 'Graphics.GL.Internal.Shared.GL_MAX_LIGHTS', 'Graphics.GL.Internal.Shared.GL_MAX_LIST_NESTING', 'Graphics.GL.Internal.Shared.GL_MAX_MODELVIEW_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_NAME_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_PIXEL_MAP_TABLE', 'Graphics.GL.Internal.Shared.GL_MAX_PROJECTION_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_TEXTURE_SIZE', 'Graphics.GL.Internal.Shared.GL_MAX_TEXTURE_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_VIEWPORT_DIMS', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_MATRIX_EXT', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_STACK_DEPTH_EXT', 'Graphics.GL.Internal.Shared.GL_MODELVIEW_MATRIX', 'Graphics.GL.Internal.Shared.GL_MODELVIEW_STACK_DEPTH', 'Graphics.GL.Ext.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Internal.Shared.GL_NAME_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_NORMAL_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_PACK_ALIGNMENT', 'Graphics.GL.Ext.EXT.Cmyka.GL_PACK_CMYK_HINT_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PACK_IMAGE_DEPTH_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_PACK_IMAGE_HEIGHT_EXT', 'Graphics.GL.Internal.Shared.GL_PACK_LSB_FIRST', 'Graphics.GL.Ext.SGIX.Resample.GL_PACK_RESAMPLE_SGIX', 'Graphics.GL.Internal.Shared.GL_PACK_ROW_LENGTH', 'Graphics.GL.Ext.EXT.Texture3D.GL_PACK_SKIP_IMAGES_EXT', 'Graphics.GL.Internal.Shared.GL_PACK_SKIP_PIXELS', 'Graphics.GL.Internal.Shared.GL_PACK_SKIP_ROWS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PACK_SKIP_VOLUMES_SGIS', 'Graphics.GL.Ext.SGIX.Subsample.GL_PACK_SUBSAMPLE_RATE_SGIX', 'Graphics.GL.Internal.Shared.GL_PACK_SWAP_BYTES', 'Graphics.GL.Internal.Shared.GL_PERSPECTIVE_CORRECTION_HINT', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_A_TO_A_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_B_TO_B_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_G_TO_G_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_A_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_B_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_G_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_I_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_R_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_R_TO_R_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_S_TO_S_SIZE', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_MODE_SGIX', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_CACHE_INCREMENT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_CACHE_SIZE_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_HEIGHT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_WIDTH_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_HEIGHT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_WIDTH_SGIX', 'Graphics.GL.Ext.SGIS.PointParameters.GL_POINT_FADE_THRESHOLD_SIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_POINT_SIZE', 'Graphics.GL.Internal.Shared.GL_POINT_SIZE_GRANULARITY', 'Graphics.GL.Ext.SGIS.PointParameters.GL_POINT_SIZE_MAX_SGIS', 'Graphics.GL.Ext.SGIS.PointParameters.GL_POINT_SIZE_MIN_SGIS', 'Graphics.GL.Internal.Shared.GL_POINT_SIZE_RANGE', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH_HINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_MODE', 'Graphics.GL.Ext.EXT.PolygonOffset.GL_POLYGON_OFFSET_BIAS_EXT', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FACTOR', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_UNITS', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH_HINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_RED_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_RED_SCALE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_ALPHA_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_ALPHA_SCALE_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_BLUE_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_BLUE_SCALE_EXT', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_GREEN_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_GREEN_SCALE_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_RED_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_RED_SCALE_EXT', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX', 'Graphics.GL.Internal.Shared.GL_PROJECTION_MATRIX', 'Graphics.GL.Internal.Shared.GL_PROJECTION_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_READ_BUFFER', 'Graphics.GL.Ext.EXT.MultiviewDrawBuffers.GL_READ_BUFFER_EXT', 'Graphics.GL.Ext.NV.ReadBuffer.GL_READ_BUFFER_NV', 'Graphics.GL.Internal.Shared.GL_RED_BIAS', 'Graphics.GL.Internal.Shared.GL_RED_BITS', 'Graphics.GL.Internal.Shared.GL_RED_SCALE', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_EQUATION_SGIX', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Internal.Shared.GL_RENDER_MODE', 'Graphics.GL.Ext.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Internal.Shared.GL_RGBA_MODE', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLES_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_BUFFERS_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_INVERT_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_VALUE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_PATTERN_SGIS', 'Graphics.GL.Internal.Shared.GL_SCISSOR_BOX', 'Graphics.GL.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Internal.Shared.GL_SELECTION_BUFFER_SIZE', 'Graphics.GL.Ext.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_SHADE_MODEL', 'Graphics.GL.Ext.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Internal.Shared.GL_SMOOTH_LINE_WIDTH_GRANULARITY', 'Graphics.GL.Internal.Shared.GL_SMOOTH_LINE_WIDTH_RANGE', 'Graphics.GL.Internal.Shared.GL_SMOOTH_POINT_SIZE_GRANULARITY', 'Graphics.GL.Internal.Shared.GL_SMOOTH_POINT_SIZE_RANGE', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_AXIS_SGIX', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_MODE_SGIX', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_TRANSLATION_SGIX', 'Graphics.GL.Internal.Shared.GL_STENCIL_BITS', 'Graphics.GL.Internal.Shared.GL_STENCIL_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_STENCIL_FAIL', 'Graphics.GL.Internal.Shared.GL_STENCIL_FUNC', 'Graphics.GL.Internal.Shared.GL_STENCIL_PASS_DEPTH_FAIL', 'Graphics.GL.Internal.Shared.GL_STENCIL_PASS_DEPTH_PASS', 'Graphics.GL.Internal.Shared.GL_STENCIL_REF', 'Graphics.GL.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Internal.Shared.GL_STENCIL_VALUE_MASK', 'Graphics.GL.Internal.Shared.GL_STENCIL_WRITEMASK', 'Graphics.GL.Internal.Shared.GL_STEREO', 'Graphics.GL.Internal.Shared.GL_SUBPIXEL_BITS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_3D_BINDING_EXT', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_BINDING_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BINDING_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BINDING_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BINDING_3D', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_TEXTURE_COORD_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MATRIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_UNPACK_ALIGNMENT', 'Graphics.GL.Ext.EXT.Cmyka.GL_UNPACK_CMYK_HINT_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_UNPACK_IMAGE_DEPTH_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_UNPACK_IMAGE_HEIGHT_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_LSB_FIRST', 'Graphics.GL.Ext.SGIX.Resample.GL_UNPACK_RESAMPLE_SGIX', 'Graphics.GL.Internal.Shared.GL_UNPACK_ROW_LENGTH', 'Graphics.GL.Ext.EXT.Texture3D.GL_UNPACK_SKIP_IMAGES_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_SKIP_PIXELS', 'Graphics.GL.Internal.Shared.GL_UNPACK_SKIP_ROWS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_UNPACK_SKIP_VOLUMES_SGIS', 'Graphics.GL.Ext.SGIX.Subsample.GL_UNPACK_SUBSAMPLE_RATE_SGIX', 'Graphics.GL.Internal.Shared.GL_UNPACK_SWAP_BYTES', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_VERTEX_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY_SIZE', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY_TYPE', 'Graphics.GL.Ext.SGIX.VertexPreclip.GL_VERTEX_PRECLIP_HINT_SGIX', 'Graphics.GL.Ext.SGIX.VertexPreclip.GL_VERTEX_PRECLIP_SGIX', 'Graphics.GL.Internal.Shared.GL_VIEWPORT', 'Graphics.GL.Internal.Shared.GL_ZOOM_X', 'Graphics.GL.Internal.Shared.GL_ZOOM_Y'.
---
--- The length of @data@ should be @COMPSIZE(pname)@.
-
-
-glGetDoublev :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
-glGetDoublev = ffienumPtrdoubleIOV glGetDoublevFunPtr
-
-glGetDoublevFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
-glGetDoublevFunPtr = unsafePerformIO (getProcAddress "glGetDoublev")
-
-{-# NOINLINE glGetDoublevFunPtr #-}
-
--- | Usage: @'glGetError'@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetError.xhtml>
-
-
-glGetError :: MonadIO m => m GLenum
-glGetError = ffiIOenum glGetErrorFunPtr
-
-glGetErrorFunPtr :: FunPtr (IO GLenum)
-glGetErrorFunPtr = unsafePerformIO (getProcAddress "glGetError")
-
-{-# NOINLINE glGetErrorFunPtr #-}
-
--- | Usage: @'glGetFloatv' pname data@
---
--- The parameter @pname@ is a @GetPName@, one of: 'Graphics.GL.Internal.Shared.GL_ACCUM_ALPHA_BITS', 'Graphics.GL.Internal.Shared.GL_ACCUM_BLUE_BITS', 'Graphics.GL.Internal.Shared.GL_ACCUM_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_ACCUM_GREEN_BITS', 'Graphics.GL.Internal.Shared.GL_ACCUM_RED_BITS', 'Graphics.GL.Internal.Shared.GL_ALIASED_LINE_WIDTH_RANGE', 'Graphics.GL.Internal.Shared.GL_ALIASED_POINT_SIZE_RANGE', 'Graphics.GL.Internal.Shared.GL_ALPHA_BIAS', 'Graphics.GL.Internal.Shared.GL_ALPHA_BITS', 'Graphics.GL.Internal.Shared.GL_ALPHA_SCALE', 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST_FUNC', 'Graphics.GL.Ext.QCOM.AlphaTest.GL_ALPHA_TEST_FUNC_QCOM', 'Graphics.GL.Ext.QCOM.AlphaTest.GL_ALPHA_TEST_QCOM', 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST_REF', 'Graphics.GL.Ext.QCOM.AlphaTest.GL_ALPHA_TEST_REF_QCOM', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.Async.GL_ASYNC_MARKER_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_ATTRIB_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Internal.Shared.GL_AUX_BUFFERS', 'Graphics.GL.Internal.Shared.GL_BLEND', 'Graphics.GL.Ext.EXT.BlendColor.GL_BLEND_COLOR_EXT', 'Graphics.GL.Internal.Shared.GL_BLEND_DST', 'Graphics.GL.Ext.EXT.BlendMinmax.GL_BLEND_EQUATION_EXT', 'Graphics.GL.Internal.Shared.GL_BLEND_SRC', 'Graphics.GL.Internal.Shared.GL_BLUE_BIAS', 'Graphics.GL.Internal.Shared.GL_BLUE_BITS', 'Graphics.GL.Internal.Shared.GL_BLUE_SCALE', 'Graphics.GL.Ext.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Internal.Shared.GL_CLIENT_ATTRIB_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_COLOR_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY_SIZE', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_COLOR_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL_FACE', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL_PARAMETER', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_COLOR_MATRIX_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_COLOR_MATRIX_STACK_DEPTH_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_COLOR_WRITEMASK', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Ext.SGIX.ConvolutionAccuracy.GL_CONVOLUTION_HINT_SGIX', 'Graphics.GL.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Internal.Shared.GL_CULL_FACE_MODE', 'Graphics.GL.Internal.Shared.GL_CURRENT_COLOR', 'Graphics.GL.Internal.Shared.GL_CURRENT_INDEX', 'Graphics.GL.Internal.Shared.GL_CURRENT_NORMAL', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_COLOR', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_DISTANCE', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_INDEX', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_POSITION', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_POSITION_VALID', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_TEXTURE_COORDS', 'Graphics.GL.Internal.Shared.GL_CURRENT_TEXTURE_COORDS', 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_DEFORMATIONS_MASK_SGIX', 'Graphics.GL.Internal.Shared.GL_DEPTH_BIAS', 'Graphics.GL.Internal.Shared.GL_DEPTH_BITS', 'Graphics.GL.Internal.Shared.GL_DEPTH_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_DEPTH_FUNC', 'Graphics.GL.Internal.Shared.GL_DEPTH_RANGE', 'Graphics.GL.Internal.Shared.GL_DEPTH_SCALE', 'Graphics.GL.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Internal.Shared.GL_DEPTH_WRITEMASK', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_BINDING_SGIS', 'Graphics.GL.Ext.SGIS.PointParameters.GL_DISTANCE_ATTENUATION_SGIS', 'Graphics.GL.Internal.Shared.GL_DITHER', 'Graphics.GL.Internal.Shared.GL_DOUBLEBUFFER', 'Graphics.GL.Internal.Shared.GL_DRAW_BUFFER', 'Graphics.GL.Ext.EXT.MultiviewDrawBuffers.GL_DRAW_BUFFER_EXT', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_EDGE_FLAG_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_FEEDBACK_BUFFER_SIZE', 'Graphics.GL.Internal.Shared.GL_FEEDBACK_BUFFER_TYPE', 'Graphics.GL.Internal.Shared.GL_FOG', 'Graphics.GL.Internal.Shared.GL_FOG_COLOR', 'Graphics.GL.Internal.Shared.GL_FOG_DENSITY', 'Graphics.GL.Internal.Shared.GL_FOG_END', 'Graphics.GL.Ext.SGIS.FogFunction.GL_FOG_FUNC_POINTS_SGIS', 'Graphics.GL.Internal.Shared.GL_FOG_HINT', 'Graphics.GL.Internal.Shared.GL_FOG_INDEX', 'Graphics.GL.Internal.Shared.GL_FOG_MODE', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_VALUE_SGIX', 'Graphics.GL.Internal.Shared.GL_FOG_START', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_FACTOR_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Internal.Shared.GL_FRONT_FACE', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_HINT_SGIS', 'Graphics.GL.Internal.Shared.GL_GREEN_BIAS', 'Graphics.GL.Internal.Shared.GL_GREEN_BITS', 'Graphics.GL.Internal.Shared.GL_GREEN_SCALE', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_INDEX_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_INDEX_BITS', 'Graphics.GL.Internal.Shared.GL_INDEX_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_INDEX_MODE', 'Graphics.GL.Internal.Shared.GL_INDEX_OFFSET', 'Graphics.GL.Internal.Shared.GL_INDEX_SHIFT', 'Graphics.GL.Internal.Shared.GL_INDEX_WRITEMASK', 'Graphics.GL.Ext.SGIX.Instruments.GL_INSTRUMENT_MEASUREMENTS_SGIX', 'Graphics.GL.Ext.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Ext.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_LIGHT_ENV_MODE_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_COLOR_CONTROL', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_LOCAL_VIEWER', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_TWO_SIDE', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH_HINT', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE_PATTERN', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE_REPEAT', 'Graphics.GL.Internal.Shared.GL_LINE_WIDTH', 'Graphics.GL.Internal.Shared.GL_LINE_WIDTH_GRANULARITY', 'Graphics.GL.Internal.Shared.GL_LINE_WIDTH_RANGE', 'Graphics.GL.Internal.Shared.GL_LIST_BASE', 'Graphics.GL.Internal.Shared.GL_LIST_INDEX', 'Graphics.GL.Internal.Shared.GL_LIST_MODE', 'Graphics.GL.Internal.Shared.GL_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_LOGIC_OP_MODE', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_GRID_DOMAIN', 'Graphics.GL.Internal.Shared.GL_MAP1_GRID_SEGMENTS', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_GRID_DOMAIN', 'Graphics.GL.Internal.Shared.GL_MAP2_GRID_SEGMENTS', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP_COLOR', 'Graphics.GL.Internal.Shared.GL_MAP_STENCIL', 'Graphics.GL.Internal.Shared.GL_MATRIX_MODE', 'Graphics.GL.Ext.EXT.Texture3D.GL_MAX_3D_TEXTURE_SIZE_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_MAX_4D_TEXTURE_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_MAX_ACTIVE_LIGHTS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_MAX_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_MAX_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_MAX_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_MAX_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_MAX_ATTRIB_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_CLIENT_ATTRIB_STACK_DEPTH', 'Graphics.GL.Ext.SGIX.Clipmap.GL_MAX_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Internal.Shared.GL_MAX_CLIP_DISTANCES', 'Graphics.GL.Internal.Shared.GL_MAX_CLIP_PLANES', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI', 'Graphics.GL.Internal.Shared.GL_MAX_EVAL_ORDER', 'Graphics.GL.Ext.SGIS.FogFunction.GL_MAX_FOG_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_MAX_FRAGMENT_LIGHTS_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_MAX_FRAMEZOOM_FACTOR_SGIX', 'Graphics.GL.Internal.Shared.GL_MAX_LIGHTS', 'Graphics.GL.Internal.Shared.GL_MAX_LIST_NESTING', 'Graphics.GL.Internal.Shared.GL_MAX_MODELVIEW_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_NAME_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_PIXEL_MAP_TABLE', 'Graphics.GL.Internal.Shared.GL_MAX_PROJECTION_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_TEXTURE_SIZE', 'Graphics.GL.Internal.Shared.GL_MAX_TEXTURE_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_VIEWPORT_DIMS', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_MATRIX_EXT', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_STACK_DEPTH_EXT', 'Graphics.GL.Internal.Shared.GL_MODELVIEW_MATRIX', 'Graphics.GL.Internal.Shared.GL_MODELVIEW_STACK_DEPTH', 'Graphics.GL.Ext.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Internal.Shared.GL_NAME_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_NORMAL_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_PACK_ALIGNMENT', 'Graphics.GL.Ext.EXT.Cmyka.GL_PACK_CMYK_HINT_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PACK_IMAGE_DEPTH_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_PACK_IMAGE_HEIGHT_EXT', 'Graphics.GL.Internal.Shared.GL_PACK_LSB_FIRST', 'Graphics.GL.Ext.SGIX.Resample.GL_PACK_RESAMPLE_SGIX', 'Graphics.GL.Internal.Shared.GL_PACK_ROW_LENGTH', 'Graphics.GL.Ext.EXT.Texture3D.GL_PACK_SKIP_IMAGES_EXT', 'Graphics.GL.Internal.Shared.GL_PACK_SKIP_PIXELS', 'Graphics.GL.Internal.Shared.GL_PACK_SKIP_ROWS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PACK_SKIP_VOLUMES_SGIS', 'Graphics.GL.Ext.SGIX.Subsample.GL_PACK_SUBSAMPLE_RATE_SGIX', 'Graphics.GL.Internal.Shared.GL_PACK_SWAP_BYTES', 'Graphics.GL.Internal.Shared.GL_PERSPECTIVE_CORRECTION_HINT', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_A_TO_A_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_B_TO_B_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_G_TO_G_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_A_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_B_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_G_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_I_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_R_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_R_TO_R_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_S_TO_S_SIZE', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_MODE_SGIX', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_CACHE_INCREMENT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_CACHE_SIZE_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_HEIGHT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_WIDTH_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_HEIGHT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_WIDTH_SGIX', 'Graphics.GL.Ext.SGIS.PointParameters.GL_POINT_FADE_THRESHOLD_SIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_POINT_SIZE', 'Graphics.GL.Internal.Shared.GL_POINT_SIZE_GRANULARITY', 'Graphics.GL.Ext.SGIS.PointParameters.GL_POINT_SIZE_MAX_SGIS', 'Graphics.GL.Ext.SGIS.PointParameters.GL_POINT_SIZE_MIN_SGIS', 'Graphics.GL.Internal.Shared.GL_POINT_SIZE_RANGE', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH_HINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_MODE', 'Graphics.GL.Ext.EXT.PolygonOffset.GL_POLYGON_OFFSET_BIAS_EXT', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FACTOR', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_UNITS', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH_HINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_RED_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_RED_SCALE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_ALPHA_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_ALPHA_SCALE_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_BLUE_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_BLUE_SCALE_EXT', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_GREEN_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_GREEN_SCALE_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_RED_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_RED_SCALE_EXT', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX', 'Graphics.GL.Internal.Shared.GL_PROJECTION_MATRIX', 'Graphics.GL.Internal.Shared.GL_PROJECTION_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_READ_BUFFER', 'Graphics.GL.Ext.EXT.MultiviewDrawBuffers.GL_READ_BUFFER_EXT', 'Graphics.GL.Ext.NV.ReadBuffer.GL_READ_BUFFER_NV', 'Graphics.GL.Internal.Shared.GL_RED_BIAS', 'Graphics.GL.Internal.Shared.GL_RED_BITS', 'Graphics.GL.Internal.Shared.GL_RED_SCALE', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_EQUATION_SGIX', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Internal.Shared.GL_RENDER_MODE', 'Graphics.GL.Ext.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Internal.Shared.GL_RGBA_MODE', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLES_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_BUFFERS_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_INVERT_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_VALUE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_PATTERN_SGIS', 'Graphics.GL.Internal.Shared.GL_SCISSOR_BOX', 'Graphics.GL.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Internal.Shared.GL_SELECTION_BUFFER_SIZE', 'Graphics.GL.Ext.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_SHADE_MODEL', 'Graphics.GL.Ext.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Internal.Shared.GL_SMOOTH_LINE_WIDTH_GRANULARITY', 'Graphics.GL.Internal.Shared.GL_SMOOTH_LINE_WIDTH_RANGE', 'Graphics.GL.Internal.Shared.GL_SMOOTH_POINT_SIZE_GRANULARITY', 'Graphics.GL.Internal.Shared.GL_SMOOTH_POINT_SIZE_RANGE', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_AXIS_SGIX', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_MODE_SGIX', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_TRANSLATION_SGIX', 'Graphics.GL.Internal.Shared.GL_STENCIL_BITS', 'Graphics.GL.Internal.Shared.GL_STENCIL_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_STENCIL_FAIL', 'Graphics.GL.Internal.Shared.GL_STENCIL_FUNC', 'Graphics.GL.Internal.Shared.GL_STENCIL_PASS_DEPTH_FAIL', 'Graphics.GL.Internal.Shared.GL_STENCIL_PASS_DEPTH_PASS', 'Graphics.GL.Internal.Shared.GL_STENCIL_REF', 'Graphics.GL.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Internal.Shared.GL_STENCIL_VALUE_MASK', 'Graphics.GL.Internal.Shared.GL_STENCIL_WRITEMASK', 'Graphics.GL.Internal.Shared.GL_STEREO', 'Graphics.GL.Internal.Shared.GL_SUBPIXEL_BITS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_3D_BINDING_EXT', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_BINDING_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BINDING_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BINDING_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BINDING_3D', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_TEXTURE_COORD_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MATRIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_UNPACK_ALIGNMENT', 'Graphics.GL.Ext.EXT.Cmyka.GL_UNPACK_CMYK_HINT_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_UNPACK_IMAGE_DEPTH_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_UNPACK_IMAGE_HEIGHT_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_LSB_FIRST', 'Graphics.GL.Ext.SGIX.Resample.GL_UNPACK_RESAMPLE_SGIX', 'Graphics.GL.Internal.Shared.GL_UNPACK_ROW_LENGTH', 'Graphics.GL.Ext.EXT.Texture3D.GL_UNPACK_SKIP_IMAGES_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_SKIP_PIXELS', 'Graphics.GL.Internal.Shared.GL_UNPACK_SKIP_ROWS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_UNPACK_SKIP_VOLUMES_SGIS', 'Graphics.GL.Ext.SGIX.Subsample.GL_UNPACK_SUBSAMPLE_RATE_SGIX', 'Graphics.GL.Internal.Shared.GL_UNPACK_SWAP_BYTES', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_VERTEX_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY_SIZE', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY_TYPE', 'Graphics.GL.Ext.SGIX.VertexPreclip.GL_VERTEX_PRECLIP_HINT_SGIX', 'Graphics.GL.Ext.SGIX.VertexPreclip.GL_VERTEX_PRECLIP_SGIX', 'Graphics.GL.Internal.Shared.GL_VIEWPORT', 'Graphics.GL.Internal.Shared.GL_ZOOM_X', 'Graphics.GL.Internal.Shared.GL_ZOOM_Y'.
---
--- The length of @data@ should be @COMPSIZE(pname)@.
-
-
-glGetFloatv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glGetFloatv = ffienumPtrfloatIOV glGetFloatvFunPtr
-
-glGetFloatvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glGetFloatvFunPtr = unsafePerformIO (getProcAddress "glGetFloatv")
-
-{-# NOINLINE glGetFloatvFunPtr #-}
-
--- | Usage: @'glGetFragDataLocation' program name@
---
--- The length of @name@ should be @COMPSIZE(name)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetFragDataLocation.xhtml>
-
-
-glGetFragDataLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint
-glGetFragDataLocation = ffiuintPtrcharIOint glGetFragDataLocationFunPtr
-
-glGetFragDataLocationFunPtr :: FunPtr (GLuint -> Ptr GLchar -> IO GLint)
-glGetFragDataLocationFunPtr = unsafePerformIO (getProcAddress "glGetFragDataLocation")
-
-{-# NOINLINE glGetFragDataLocationFunPtr #-}
-
--- | Usage: @'glGetFramebufferAttachmentParameteriv' target attachment pname params@
---
--- The parameter @target@ is a @FramebufferTarget@.
---
--- The parameter @attachment@ is a @FramebufferAttachment@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetFramebufferAttachmentParameteriv :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
-glGetFramebufferAttachmentParameteriv = ffienumenumenumPtrintIOV glGetFramebufferAttachmentParameterivFunPtr
-
-glGetFramebufferAttachmentParameterivFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetFramebufferAttachmentParameterivFunPtr = unsafePerformIO (getProcAddress "glGetFramebufferAttachmentParameteriv")
-
-{-# NOINLINE glGetFramebufferAttachmentParameterivFunPtr #-}
-
--- | Usage: @'glGetInteger64i_v' target index data@
---
--- The length of @data@ should be @COMPSIZE(target)@.
-
-
-glGetInteger64i_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint64 -> m ()
-glGetInteger64i_v = ffienumuintPtrint64IOV glGetInteger64i_vFunPtr
-
-glGetInteger64i_vFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLint64 -> IO ())
-glGetInteger64i_vFunPtr = unsafePerformIO (getProcAddress "glGetInteger64i_v")
-
-{-# NOINLINE glGetInteger64i_vFunPtr #-}
-
--- | Usage: @'glGetInteger64v' pname data@
---
--- The length of @data@ should be @COMPSIZE(pname)@.
-
-
-glGetInteger64v :: MonadIO m => GLenum -> Ptr GLint64 -> m ()
-glGetInteger64v = ffienumPtrint64IOV glGetInteger64vFunPtr
-
-glGetInteger64vFunPtr :: FunPtr (GLenum -> Ptr GLint64 -> IO ())
-glGetInteger64vFunPtr = unsafePerformIO (getProcAddress "glGetInteger64v")
-
-{-# NOINLINE glGetInteger64vFunPtr #-}
-
--- | Usage: @'glGetIntegeri_v' target index data@
---
--- The length of @data@ should be @COMPSIZE(target)@.
-
-
-glGetIntegeri_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()
-glGetIntegeri_v = ffienumuintPtrintIOV glGetIntegeri_vFunPtr
-
-glGetIntegeri_vFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLint -> IO ())
-glGetIntegeri_vFunPtr = unsafePerformIO (getProcAddress "glGetIntegeri_v")
-
-{-# NOINLINE glGetIntegeri_vFunPtr #-}
-
--- | Usage: @'glGetIntegerv' pname data@
---
--- The parameter @pname@ is a @GetPName@, one of: 'Graphics.GL.Internal.Shared.GL_ACCUM_ALPHA_BITS', 'Graphics.GL.Internal.Shared.GL_ACCUM_BLUE_BITS', 'Graphics.GL.Internal.Shared.GL_ACCUM_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_ACCUM_GREEN_BITS', 'Graphics.GL.Internal.Shared.GL_ACCUM_RED_BITS', 'Graphics.GL.Internal.Shared.GL_ALIASED_LINE_WIDTH_RANGE', 'Graphics.GL.Internal.Shared.GL_ALIASED_POINT_SIZE_RANGE', 'Graphics.GL.Internal.Shared.GL_ALPHA_BIAS', 'Graphics.GL.Internal.Shared.GL_ALPHA_BITS', 'Graphics.GL.Internal.Shared.GL_ALPHA_SCALE', 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST_FUNC', 'Graphics.GL.Ext.QCOM.AlphaTest.GL_ALPHA_TEST_FUNC_QCOM', 'Graphics.GL.Ext.QCOM.AlphaTest.GL_ALPHA_TEST_QCOM', 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST_REF', 'Graphics.GL.Ext.QCOM.AlphaTest.GL_ALPHA_TEST_REF_QCOM', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.Async.GL_ASYNC_MARKER_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_ATTRIB_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Internal.Shared.GL_AUX_BUFFERS', 'Graphics.GL.Internal.Shared.GL_BLEND', 'Graphics.GL.Ext.EXT.BlendColor.GL_BLEND_COLOR_EXT', 'Graphics.GL.Internal.Shared.GL_BLEND_DST', 'Graphics.GL.Ext.EXT.BlendMinmax.GL_BLEND_EQUATION_EXT', 'Graphics.GL.Internal.Shared.GL_BLEND_SRC', 'Graphics.GL.Internal.Shared.GL_BLUE_BIAS', 'Graphics.GL.Internal.Shared.GL_BLUE_BITS', 'Graphics.GL.Internal.Shared.GL_BLUE_SCALE', 'Graphics.GL.Ext.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Internal.Shared.GL_CLIENT_ATTRIB_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_COLOR_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY_SIZE', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_COLOR_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL_FACE', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL_PARAMETER', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_COLOR_MATRIX_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_COLOR_MATRIX_STACK_DEPTH_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_COLOR_WRITEMASK', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Ext.SGIX.ConvolutionAccuracy.GL_CONVOLUTION_HINT_SGIX', 'Graphics.GL.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Internal.Shared.GL_CULL_FACE_MODE', 'Graphics.GL.Internal.Shared.GL_CURRENT_COLOR', 'Graphics.GL.Internal.Shared.GL_CURRENT_INDEX', 'Graphics.GL.Internal.Shared.GL_CURRENT_NORMAL', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_COLOR', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_DISTANCE', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_INDEX', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_POSITION', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_POSITION_VALID', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_TEXTURE_COORDS', 'Graphics.GL.Internal.Shared.GL_CURRENT_TEXTURE_COORDS', 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_DEFORMATIONS_MASK_SGIX', 'Graphics.GL.Internal.Shared.GL_DEPTH_BIAS', 'Graphics.GL.Internal.Shared.GL_DEPTH_BITS', 'Graphics.GL.Internal.Shared.GL_DEPTH_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_DEPTH_FUNC', 'Graphics.GL.Internal.Shared.GL_DEPTH_RANGE', 'Graphics.GL.Internal.Shared.GL_DEPTH_SCALE', 'Graphics.GL.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Internal.Shared.GL_DEPTH_WRITEMASK', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_BINDING_SGIS', 'Graphics.GL.Ext.SGIS.PointParameters.GL_DISTANCE_ATTENUATION_SGIS', 'Graphics.GL.Internal.Shared.GL_DITHER', 'Graphics.GL.Internal.Shared.GL_DOUBLEBUFFER', 'Graphics.GL.Internal.Shared.GL_DRAW_BUFFER', 'Graphics.GL.Ext.EXT.MultiviewDrawBuffers.GL_DRAW_BUFFER_EXT', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_EDGE_FLAG_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_FEEDBACK_BUFFER_SIZE', 'Graphics.GL.Internal.Shared.GL_FEEDBACK_BUFFER_TYPE', 'Graphics.GL.Internal.Shared.GL_FOG', 'Graphics.GL.Internal.Shared.GL_FOG_COLOR', 'Graphics.GL.Internal.Shared.GL_FOG_DENSITY', 'Graphics.GL.Internal.Shared.GL_FOG_END', 'Graphics.GL.Ext.SGIS.FogFunction.GL_FOG_FUNC_POINTS_SGIS', 'Graphics.GL.Internal.Shared.GL_FOG_HINT', 'Graphics.GL.Internal.Shared.GL_FOG_INDEX', 'Graphics.GL.Internal.Shared.GL_FOG_MODE', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_VALUE_SGIX', 'Graphics.GL.Internal.Shared.GL_FOG_START', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_FACTOR_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Internal.Shared.GL_FRONT_FACE', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_HINT_SGIS', 'Graphics.GL.Internal.Shared.GL_GREEN_BIAS', 'Graphics.GL.Internal.Shared.GL_GREEN_BITS', 'Graphics.GL.Internal.Shared.GL_GREEN_SCALE', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_INDEX_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_INDEX_BITS', 'Graphics.GL.Internal.Shared.GL_INDEX_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_INDEX_MODE', 'Graphics.GL.Internal.Shared.GL_INDEX_OFFSET', 'Graphics.GL.Internal.Shared.GL_INDEX_SHIFT', 'Graphics.GL.Internal.Shared.GL_INDEX_WRITEMASK', 'Graphics.GL.Ext.SGIX.Instruments.GL_INSTRUMENT_MEASUREMENTS_SGIX', 'Graphics.GL.Ext.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Ext.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_LIGHT_ENV_MODE_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_COLOR_CONTROL', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_LOCAL_VIEWER', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_TWO_SIDE', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH_HINT', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE_PATTERN', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE_REPEAT', 'Graphics.GL.Internal.Shared.GL_LINE_WIDTH', 'Graphics.GL.Internal.Shared.GL_LINE_WIDTH_GRANULARITY', 'Graphics.GL.Internal.Shared.GL_LINE_WIDTH_RANGE', 'Graphics.GL.Internal.Shared.GL_LIST_BASE', 'Graphics.GL.Internal.Shared.GL_LIST_INDEX', 'Graphics.GL.Internal.Shared.GL_LIST_MODE', 'Graphics.GL.Internal.Shared.GL_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_LOGIC_OP_MODE', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_GRID_DOMAIN', 'Graphics.GL.Internal.Shared.GL_MAP1_GRID_SEGMENTS', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_GRID_DOMAIN', 'Graphics.GL.Internal.Shared.GL_MAP2_GRID_SEGMENTS', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP_COLOR', 'Graphics.GL.Internal.Shared.GL_MAP_STENCIL', 'Graphics.GL.Internal.Shared.GL_MATRIX_MODE', 'Graphics.GL.Ext.EXT.Texture3D.GL_MAX_3D_TEXTURE_SIZE_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_MAX_4D_TEXTURE_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_MAX_ACTIVE_LIGHTS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_MAX_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_MAX_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_MAX_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_MAX_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_MAX_ATTRIB_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_CLIENT_ATTRIB_STACK_DEPTH', 'Graphics.GL.Ext.SGIX.Clipmap.GL_MAX_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Internal.Shared.GL_MAX_CLIP_DISTANCES', 'Graphics.GL.Internal.Shared.GL_MAX_CLIP_PLANES', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI', 'Graphics.GL.Internal.Shared.GL_MAX_EVAL_ORDER', 'Graphics.GL.Ext.SGIS.FogFunction.GL_MAX_FOG_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_MAX_FRAGMENT_LIGHTS_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_MAX_FRAMEZOOM_FACTOR_SGIX', 'Graphics.GL.Internal.Shared.GL_MAX_LIGHTS', 'Graphics.GL.Internal.Shared.GL_MAX_LIST_NESTING', 'Graphics.GL.Internal.Shared.GL_MAX_MODELVIEW_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_NAME_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_PIXEL_MAP_TABLE', 'Graphics.GL.Internal.Shared.GL_MAX_PROJECTION_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_TEXTURE_SIZE', 'Graphics.GL.Internal.Shared.GL_MAX_TEXTURE_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_VIEWPORT_DIMS', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_MATRIX_EXT', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_STACK_DEPTH_EXT', 'Graphics.GL.Internal.Shared.GL_MODELVIEW_MATRIX', 'Graphics.GL.Internal.Shared.GL_MODELVIEW_STACK_DEPTH', 'Graphics.GL.Ext.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Internal.Shared.GL_NAME_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_NORMAL_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_PACK_ALIGNMENT', 'Graphics.GL.Ext.EXT.Cmyka.GL_PACK_CMYK_HINT_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PACK_IMAGE_DEPTH_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_PACK_IMAGE_HEIGHT_EXT', 'Graphics.GL.Internal.Shared.GL_PACK_LSB_FIRST', 'Graphics.GL.Ext.SGIX.Resample.GL_PACK_RESAMPLE_SGIX', 'Graphics.GL.Internal.Shared.GL_PACK_ROW_LENGTH', 'Graphics.GL.Ext.EXT.Texture3D.GL_PACK_SKIP_IMAGES_EXT', 'Graphics.GL.Internal.Shared.GL_PACK_SKIP_PIXELS', 'Graphics.GL.Internal.Shared.GL_PACK_SKIP_ROWS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PACK_SKIP_VOLUMES_SGIS', 'Graphics.GL.Ext.SGIX.Subsample.GL_PACK_SUBSAMPLE_RATE_SGIX', 'Graphics.GL.Internal.Shared.GL_PACK_SWAP_BYTES', 'Graphics.GL.Internal.Shared.GL_PERSPECTIVE_CORRECTION_HINT', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_A_TO_A_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_B_TO_B_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_G_TO_G_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_A_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_B_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_G_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_I_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_R_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_R_TO_R_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_S_TO_S_SIZE', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_MODE_SGIX', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_CACHE_INCREMENT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_CACHE_SIZE_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_HEIGHT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_WIDTH_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_HEIGHT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_WIDTH_SGIX', 'Graphics.GL.Ext.SGIS.PointParameters.GL_POINT_FADE_THRESHOLD_SIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_POINT_SIZE', 'Graphics.GL.Internal.Shared.GL_POINT_SIZE_GRANULARITY', 'Graphics.GL.Ext.SGIS.PointParameters.GL_POINT_SIZE_MAX_SGIS', 'Graphics.GL.Ext.SGIS.PointParameters.GL_POINT_SIZE_MIN_SGIS', 'Graphics.GL.Internal.Shared.GL_POINT_SIZE_RANGE', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH_HINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_MODE', 'Graphics.GL.Ext.EXT.PolygonOffset.GL_POLYGON_OFFSET_BIAS_EXT', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FACTOR', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_UNITS', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH_HINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_RED_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_RED_SCALE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_ALPHA_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_ALPHA_SCALE_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_BLUE_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_BLUE_SCALE_EXT', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_GREEN_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_GREEN_SCALE_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_RED_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_RED_SCALE_EXT', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX', 'Graphics.GL.Internal.Shared.GL_PROJECTION_MATRIX', 'Graphics.GL.Internal.Shared.GL_PROJECTION_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_READ_BUFFER', 'Graphics.GL.Ext.EXT.MultiviewDrawBuffers.GL_READ_BUFFER_EXT', 'Graphics.GL.Ext.NV.ReadBuffer.GL_READ_BUFFER_NV', 'Graphics.GL.Internal.Shared.GL_RED_BIAS', 'Graphics.GL.Internal.Shared.GL_RED_BITS', 'Graphics.GL.Internal.Shared.GL_RED_SCALE', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_EQUATION_SGIX', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Internal.Shared.GL_RENDER_MODE', 'Graphics.GL.Ext.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Internal.Shared.GL_RGBA_MODE', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLES_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_BUFFERS_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_INVERT_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_VALUE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_PATTERN_SGIS', 'Graphics.GL.Internal.Shared.GL_SCISSOR_BOX', 'Graphics.GL.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Internal.Shared.GL_SELECTION_BUFFER_SIZE', 'Graphics.GL.Ext.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_SHADE_MODEL', 'Graphics.GL.Ext.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Internal.Shared.GL_SMOOTH_LINE_WIDTH_GRANULARITY', 'Graphics.GL.Internal.Shared.GL_SMOOTH_LINE_WIDTH_RANGE', 'Graphics.GL.Internal.Shared.GL_SMOOTH_POINT_SIZE_GRANULARITY', 'Graphics.GL.Internal.Shared.GL_SMOOTH_POINT_SIZE_RANGE', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_AXIS_SGIX', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_MODE_SGIX', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_TRANSLATION_SGIX', 'Graphics.GL.Internal.Shared.GL_STENCIL_BITS', 'Graphics.GL.Internal.Shared.GL_STENCIL_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_STENCIL_FAIL', 'Graphics.GL.Internal.Shared.GL_STENCIL_FUNC', 'Graphics.GL.Internal.Shared.GL_STENCIL_PASS_DEPTH_FAIL', 'Graphics.GL.Internal.Shared.GL_STENCIL_PASS_DEPTH_PASS', 'Graphics.GL.Internal.Shared.GL_STENCIL_REF', 'Graphics.GL.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Internal.Shared.GL_STENCIL_VALUE_MASK', 'Graphics.GL.Internal.Shared.GL_STENCIL_WRITEMASK', 'Graphics.GL.Internal.Shared.GL_STEREO', 'Graphics.GL.Internal.Shared.GL_SUBPIXEL_BITS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_3D_BINDING_EXT', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_BINDING_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BINDING_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BINDING_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BINDING_3D', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_TEXTURE_COORD_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MATRIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_UNPACK_ALIGNMENT', 'Graphics.GL.Ext.EXT.Cmyka.GL_UNPACK_CMYK_HINT_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_UNPACK_IMAGE_DEPTH_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_UNPACK_IMAGE_HEIGHT_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_LSB_FIRST', 'Graphics.GL.Ext.SGIX.Resample.GL_UNPACK_RESAMPLE_SGIX', 'Graphics.GL.Internal.Shared.GL_UNPACK_ROW_LENGTH', 'Graphics.GL.Ext.EXT.Texture3D.GL_UNPACK_SKIP_IMAGES_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_SKIP_PIXELS', 'Graphics.GL.Internal.Shared.GL_UNPACK_SKIP_ROWS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_UNPACK_SKIP_VOLUMES_SGIS', 'Graphics.GL.Ext.SGIX.Subsample.GL_UNPACK_SUBSAMPLE_RATE_SGIX', 'Graphics.GL.Internal.Shared.GL_UNPACK_SWAP_BYTES', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_VERTEX_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY_SIZE', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY_TYPE', 'Graphics.GL.Ext.SGIX.VertexPreclip.GL_VERTEX_PRECLIP_HINT_SGIX', 'Graphics.GL.Ext.SGIX.VertexPreclip.GL_VERTEX_PRECLIP_SGIX', 'Graphics.GL.Internal.Shared.GL_VIEWPORT', 'Graphics.GL.Internal.Shared.GL_ZOOM_X', 'Graphics.GL.Internal.Shared.GL_ZOOM_Y'.
---
--- The length of @data@ should be @COMPSIZE(pname)@.
-
-
-glGetIntegerv :: MonadIO m => GLenum -> Ptr GLint -> m ()
-glGetIntegerv = ffienumPtrintIOV glGetIntegervFunPtr
-
-glGetIntegervFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
-glGetIntegervFunPtr = unsafePerformIO (getProcAddress "glGetIntegerv")
-
-{-# NOINLINE glGetIntegervFunPtr #-}
-
--- | Usage: @'glGetMultisamplefv' pname index val@
---
--- The length of @val@ should be @COMPSIZE(pname)@.
-
-
-glGetMultisamplefv :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
-glGetMultisamplefv = ffienumuintPtrfloatIOV glGetMultisamplefvFunPtr
-
-glGetMultisamplefvFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
-glGetMultisamplefvFunPtr = unsafePerformIO (getProcAddress "glGetMultisamplefv")
-
-{-# NOINLINE glGetMultisamplefvFunPtr #-}
-
--- | Usage: @'glGetProgramInfoLog' program bufSize length infoLog@
---
--- The length of @length@ should be @1@.
---
--- The length of @infoLog@ should be @bufSize@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetProgramInfoLog.xhtml>
-
-
-glGetProgramInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
-glGetProgramInfoLog = ffiuintsizeiPtrsizeiPtrcharIOV glGetProgramInfoLogFunPtr
-
-glGetProgramInfoLogFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
-glGetProgramInfoLogFunPtr = unsafePerformIO (getProcAddress "glGetProgramInfoLog")
-
-{-# NOINLINE glGetProgramInfoLogFunPtr #-}
-
--- | Usage: @'glGetProgramiv' program pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetProgramiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetProgramiv = ffiuintenumPtrintIOV glGetProgramivFunPtr
-
-glGetProgramivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetProgramivFunPtr = unsafePerformIO (getProcAddress "glGetProgramiv")
-
-{-# NOINLINE glGetProgramivFunPtr #-}
-
--- | Usage: @'glGetQueryObjectiv' id pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetQueryObjectiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetQueryObjectiv = ffiuintenumPtrintIOV glGetQueryObjectivFunPtr
-
-glGetQueryObjectivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetQueryObjectivFunPtr = unsafePerformIO (getProcAddress "glGetQueryObjectiv")
-
-{-# NOINLINE glGetQueryObjectivFunPtr #-}
-
--- | Usage: @'glGetQueryObjectuiv' id pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetQueryObjectuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
-glGetQueryObjectuiv = ffiuintenumPtruintIOV glGetQueryObjectuivFunPtr
-
-glGetQueryObjectuivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
-glGetQueryObjectuivFunPtr = unsafePerformIO (getProcAddress "glGetQueryObjectuiv")
-
-{-# NOINLINE glGetQueryObjectuivFunPtr #-}
-
--- | Usage: @'glGetQueryiv' target pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetQueryiv.xhtml>
-
-
-glGetQueryiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glGetQueryiv = ffienumenumPtrintIOV glGetQueryivFunPtr
-
-glGetQueryivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetQueryivFunPtr = unsafePerformIO (getProcAddress "glGetQueryiv")
-
-{-# NOINLINE glGetQueryivFunPtr #-}
-
--- | Usage: @'glGetRenderbufferParameteriv' target pname params@
---
--- The parameter @target@ is a @RenderbufferTarget@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetRenderbufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glGetRenderbufferParameteriv = ffienumenumPtrintIOV glGetRenderbufferParameterivFunPtr
-
-glGetRenderbufferParameterivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetRenderbufferParameterivFunPtr = unsafePerformIO (getProcAddress "glGetRenderbufferParameteriv")
-
-{-# NOINLINE glGetRenderbufferParameterivFunPtr #-}
-
--- | Usage: @'glGetShaderInfoLog' shader bufSize length infoLog@
---
--- The length of @length@ should be @1@.
---
--- The length of @infoLog@ should be @bufSize@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetShaderInfoLog.xhtml>
-
-
-glGetShaderInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
-glGetShaderInfoLog = ffiuintsizeiPtrsizeiPtrcharIOV glGetShaderInfoLogFunPtr
-
-glGetShaderInfoLogFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
-glGetShaderInfoLogFunPtr = unsafePerformIO (getProcAddress "glGetShaderInfoLog")
-
-{-# NOINLINE glGetShaderInfoLogFunPtr #-}
-
--- | Usage: @'glGetShaderSource' shader bufSize length source@
---
--- The length of @length@ should be @1@.
---
--- The length of @source@ should be @bufSize@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetShaderSource.xhtml>
-
-
-glGetShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
-glGetShaderSource = ffiuintsizeiPtrsizeiPtrcharIOV glGetShaderSourceFunPtr
-
-glGetShaderSourceFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
-glGetShaderSourceFunPtr = unsafePerformIO (getProcAddress "glGetShaderSource")
-
-{-# NOINLINE glGetShaderSourceFunPtr #-}
-
--- | Usage: @'glGetShaderiv' shader pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetShaderiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetShaderiv = ffiuintenumPtrintIOV glGetShaderivFunPtr
-
-glGetShaderivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetShaderivFunPtr = unsafePerformIO (getProcAddress "glGetShaderiv")
-
-{-# NOINLINE glGetShaderivFunPtr #-}
-
--- | Usage: @'glGetString' name@
---
--- The parameter @name@ is a @StringName@, one of: 'Graphics.GL.Internal.Shared.GL_EXTENSIONS', 'Graphics.GL.Internal.Shared.GL_RENDERER', 'Graphics.GL.Internal.Shared.GL_VENDOR', 'Graphics.GL.Internal.Shared.GL_VERSION'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetString.xhtml>
-
-
-glGetString :: MonadIO m => GLenum -> m (Ptr GLubyte)
-glGetString = ffienumIOPtrubyte glGetStringFunPtr
-
-glGetStringFunPtr :: FunPtr (GLenum -> IO (Ptr GLubyte))
-glGetStringFunPtr = unsafePerformIO (getProcAddress "glGetString")
-
-{-# NOINLINE glGetStringFunPtr #-}
-
--- | Usage: @'glGetStringi' name index@
-
-
-glGetStringi :: MonadIO m => GLenum -> GLuint -> m (Ptr GLubyte)
-glGetStringi = ffienumuintIOPtrubyte glGetStringiFunPtr
-
-glGetStringiFunPtr :: FunPtr (GLenum -> GLuint -> IO (Ptr GLubyte))
-glGetStringiFunPtr = unsafePerformIO (getProcAddress "glGetStringi")
-
-{-# NOINLINE glGetStringiFunPtr #-}
-
--- | Usage: @'glGetSynciv' sync pname bufSize length values@
---
--- The parameter @sync@ is a @sync@.
---
--- The length of @length@ should be @1@.
---
--- The length of @values@ should be @bufSize@.
-
-
-glGetSynciv :: MonadIO m => GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()
-glGetSynciv = ffisyncenumsizeiPtrsizeiPtrintIOV glGetSyncivFunPtr
-
-glGetSyncivFunPtr :: FunPtr (GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> IO ())
-glGetSyncivFunPtr = unsafePerformIO (getProcAddress "glGetSynciv")
-
-{-# NOINLINE glGetSyncivFunPtr #-}
-
--- | Usage: @'glGetTexImage' target level format type pixels@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @pixels@ should be @COMPSIZE(target,level,format,type)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetTexImage.xhtml>
-
-
-glGetTexImage :: MonadIO m => GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
-glGetTexImage = ffienumintenumenumPtrVIOV glGetTexImageFunPtr
-
-glGetTexImageFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
-glGetTexImageFunPtr = unsafePerformIO (getProcAddress "glGetTexImage")
-
-{-# NOINLINE glGetTexImageFunPtr #-}
-
--- | Usage: @'glGetTexLevelParameterfv' target level pname params@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Ext.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetTexLevelParameterfv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()
-glGetTexLevelParameterfv = ffienumintenumPtrfloatIOV glGetTexLevelParameterfvFunPtr
-
-glGetTexLevelParameterfvFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ())
-glGetTexLevelParameterfvFunPtr = unsafePerformIO (getProcAddress "glGetTexLevelParameterfv")
-
-{-# NOINLINE glGetTexLevelParameterfvFunPtr #-}
-
--- | Usage: @'glGetTexLevelParameteriv' target level pname params@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Ext.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetTexLevelParameteriv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLint -> m ()
-glGetTexLevelParameteriv = ffienumintenumPtrintIOV glGetTexLevelParameterivFunPtr
-
-glGetTexLevelParameterivFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> Ptr GLint -> IO ())
-glGetTexLevelParameterivFunPtr = unsafePerformIO (getProcAddress "glGetTexLevelParameteriv")
-
-{-# NOINLINE glGetTexLevelParameterivFunPtr #-}
-
--- | Usage: @'glGetTexParameterIiv' target pname params@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Ext.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glGetTexParameterIiv = ffienumenumPtrintIOV glGetTexParameterIivFunPtr
-
-glGetTexParameterIivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetTexParameterIivFunPtr = unsafePerformIO (getProcAddress "glGetTexParameterIiv")
-
-{-# NOINLINE glGetTexParameterIivFunPtr #-}
-
--- | Usage: @'glGetTexParameterIuiv' target pname params@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Ext.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
-glGetTexParameterIuiv = ffienumenumPtruintIOV glGetTexParameterIuivFunPtr
-
-glGetTexParameterIuivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
-glGetTexParameterIuivFunPtr = unsafePerformIO (getProcAddress "glGetTexParameterIuiv")
-
-{-# NOINLINE glGetTexParameterIuivFunPtr #-}
-
--- | Usage: @'glGetTexParameterfv' target pname params@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Ext.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
-glGetTexParameterfv = ffienumenumPtrfloatIOV glGetTexParameterfvFunPtr
-
-glGetTexParameterfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glGetTexParameterfvFunPtr = unsafePerformIO (getProcAddress "glGetTexParameterfv")
-
-{-# NOINLINE glGetTexParameterfvFunPtr #-}
-
--- | Usage: @'glGetTexParameteriv' target pname params@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Ext.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glGetTexParameteriv = ffienumenumPtrintIOV glGetTexParameterivFunPtr
-
-glGetTexParameterivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetTexParameterivFunPtr = unsafePerformIO (getProcAddress "glGetTexParameteriv")
-
-{-# NOINLINE glGetTexParameterivFunPtr #-}
-
--- | Usage: @'glGetTransformFeedbackVarying' program index bufSize length size type name@
---
--- The length of @length@ should be @1@.
---
--- The length of @size@ should be @1@.
---
--- The length of @type@ should be @1@.
---
--- The length of @name@ should be @bufSize@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetTransformFeedbackVarying.xhtml>
-
-
-glGetTransformFeedbackVarying :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> m ()
-glGetTransformFeedbackVarying = ffiuintuintsizeiPtrsizeiPtrsizeiPtrenumPtrcharIOV glGetTransformFeedbackVaryingFunPtr
-
-glGetTransformFeedbackVaryingFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> IO ())
-glGetTransformFeedbackVaryingFunPtr = unsafePerformIO (getProcAddress "glGetTransformFeedbackVarying")
-
-{-# NOINLINE glGetTransformFeedbackVaryingFunPtr #-}
-
--- | Usage: @'glGetUniformBlockIndex' program uniformBlockName@
---
--- The length of @uniformBlockName@ should be @COMPSIZE()@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetUniformBlockIndex.xhtml>
-
-
-glGetUniformBlockIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLuint
-glGetUniformBlockIndex = ffiuintPtrcharIOuint glGetUniformBlockIndexFunPtr
-
-glGetUniformBlockIndexFunPtr :: FunPtr (GLuint -> Ptr GLchar -> IO GLuint)
-glGetUniformBlockIndexFunPtr = unsafePerformIO (getProcAddress "glGetUniformBlockIndex")
-
-{-# NOINLINE glGetUniformBlockIndexFunPtr #-}
-
--- | Usage: @'glGetUniformIndices' program uniformCount uniformNames uniformIndices@
---
--- The length of @uniformNames@ should be @COMPSIZE(uniformCount)@.
---
--- The length of @uniformIndices@ should be @COMPSIZE(uniformCount)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetUniformIndices.xhtml>
-
-
-glGetUniformIndices :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLuint -> m ()
-glGetUniformIndices = ffiuintsizeiPtrPtrcharPtruintIOV glGetUniformIndicesFunPtr
-
-glGetUniformIndicesFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLuint -> IO ())
-glGetUniformIndicesFunPtr = unsafePerformIO (getProcAddress "glGetUniformIndices")
-
-{-# NOINLINE glGetUniformIndicesFunPtr #-}
-
--- | Usage: @'glGetUniformLocation' program name@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetUniformLocation.xhtml>
-
-
-glGetUniformLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint
-glGetUniformLocation = ffiuintPtrcharIOint glGetUniformLocationFunPtr
-
-glGetUniformLocationFunPtr :: FunPtr (GLuint -> Ptr GLchar -> IO GLint)
-glGetUniformLocationFunPtr = unsafePerformIO (getProcAddress "glGetUniformLocation")
-
-{-# NOINLINE glGetUniformLocationFunPtr #-}
-
--- | Usage: @'glGetUniformfv' program location params@
---
--- The length of @params@ should be @COMPSIZE(program,location)@.
-
-
-glGetUniformfv :: MonadIO m => GLuint -> GLint -> Ptr GLfloat -> m ()
-glGetUniformfv = ffiuintintPtrfloatIOV glGetUniformfvFunPtr
-
-glGetUniformfvFunPtr :: FunPtr (GLuint -> GLint -> Ptr GLfloat -> IO ())
-glGetUniformfvFunPtr = unsafePerformIO (getProcAddress "glGetUniformfv")
-
-{-# NOINLINE glGetUniformfvFunPtr #-}
-
--- | Usage: @'glGetUniformiv' program location params@
---
--- The length of @params@ should be @COMPSIZE(program,location)@.
-
-
-glGetUniformiv :: MonadIO m => GLuint -> GLint -> Ptr GLint -> m ()
-glGetUniformiv = ffiuintintPtrintIOV glGetUniformivFunPtr
-
-glGetUniformivFunPtr :: FunPtr (GLuint -> GLint -> Ptr GLint -> IO ())
-glGetUniformivFunPtr = unsafePerformIO (getProcAddress "glGetUniformiv")
-
-{-# NOINLINE glGetUniformivFunPtr #-}
-
--- | Usage: @'glGetUniformuiv' program location params@
---
--- The length of @params@ should be @COMPSIZE(program,location)@.
-
-
-glGetUniformuiv :: MonadIO m => GLuint -> GLint -> Ptr GLuint -> m ()
-glGetUniformuiv = ffiuintintPtruintIOV glGetUniformuivFunPtr
-
-glGetUniformuivFunPtr :: FunPtr (GLuint -> GLint -> Ptr GLuint -> IO ())
-glGetUniformuivFunPtr = unsafePerformIO (getProcAddress "glGetUniformuiv")
-
-{-# NOINLINE glGetUniformuivFunPtr #-}
-
--- | Usage: @'glGetVertexAttribIiv' index pname params@
---
--- The parameter @pname@ is a @VertexAttribEnum@.
---
--- The length of @params@ should be @1@.
-
-
-glGetVertexAttribIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetVertexAttribIiv = ffiuintenumPtrintIOV glGetVertexAttribIivFunPtr
-
-glGetVertexAttribIivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetVertexAttribIivFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribIiv")
-
-{-# NOINLINE glGetVertexAttribIivFunPtr #-}
-
--- | Usage: @'glGetVertexAttribIuiv' index pname params@
---
--- The parameter @pname@ is a @VertexAttribEnum@.
---
--- The length of @params@ should be @1@.
-
-
-glGetVertexAttribIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
-glGetVertexAttribIuiv = ffiuintenumPtruintIOV glGetVertexAttribIuivFunPtr
-
-glGetVertexAttribIuivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
-glGetVertexAttribIuivFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribIuiv")
-
-{-# NOINLINE glGetVertexAttribIuivFunPtr #-}
-
--- | Usage: @'glGetVertexAttribPointerv' index pname pointer@
---
--- The parameter @pname@ is a @VertexAttribPointerPropertyARB@.
---
--- The length of @pointer@ should be @1@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetVertexAttribPointerv.xhtml>
-
-
-glGetVertexAttribPointerv :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr ()) -> m ()
-glGetVertexAttribPointerv = ffiuintenumPtrPtrVIOV glGetVertexAttribPointervFunPtr
-
-glGetVertexAttribPointervFunPtr :: FunPtr (GLuint -> GLenum -> Ptr (Ptr ()) -> IO ())
-glGetVertexAttribPointervFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribPointerv")
-
-{-# NOINLINE glGetVertexAttribPointervFunPtr #-}
-
--- | Usage: @'glGetVertexAttribdv' index pname params@
---
--- The parameter @pname@ is a @VertexAttribPropertyARB@.
---
--- The length of @params@ should be @4@.
-
-
-glGetVertexAttribdv :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()
-glGetVertexAttribdv = ffiuintenumPtrdoubleIOV glGetVertexAttribdvFunPtr
-
-glGetVertexAttribdvFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLdouble -> IO ())
-glGetVertexAttribdvFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribdv")
-
-{-# NOINLINE glGetVertexAttribdvFunPtr #-}
-
--- | Usage: @'glGetVertexAttribfv' index pname params@
---
--- The parameter @pname@ is a @VertexAttribPropertyARB@.
---
--- The length of @params@ should be @4@.
-
-
-glGetVertexAttribfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
-glGetVertexAttribfv = ffiuintenumPtrfloatIOV glGetVertexAttribfvFunPtr
-
-glGetVertexAttribfvFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
-glGetVertexAttribfvFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribfv")
-
-{-# NOINLINE glGetVertexAttribfvFunPtr #-}
-
--- | Usage: @'glGetVertexAttribiv' index pname params@
---
--- The parameter @pname@ is a @VertexAttribPropertyARB@.
---
--- The length of @params@ should be @4@.
-
-
-glGetVertexAttribiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetVertexAttribiv = ffiuintenumPtrintIOV glGetVertexAttribivFunPtr
-
-glGetVertexAttribivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetVertexAttribivFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribiv")
-
-{-# NOINLINE glGetVertexAttribivFunPtr #-}
-
--- | Usage: @'glHint' target mode@
---
--- The parameter @target@ is a @HintTarget@, one of: 'Graphics.GL.Ext.PGI.MiscHints.GL_ALLOW_DRAW_FRG_HINT_PGI', 'Graphics.GL.Ext.PGI.MiscHints.GL_ALLOW_DRAW_MEM_HINT_PGI', 'Graphics.GL.Ext.PGI.MiscHints.GL_ALLOW_DRAW_OBJ_HINT_PGI', 'Graphics.GL.Ext.PGI.MiscHints.GL_ALLOW_DRAW_WIN_HINT_PGI', 'Graphics.GL.Ext.PGI.MiscHints.GL_ALWAYS_FAST_HINT_PGI', 'Graphics.GL.Ext.PGI.MiscHints.GL_ALWAYS_SOFT_HINT_PGI', 'Graphics.GL.Ext.PGI.MiscHints.GL_BACK_NORMALS_HINT_PGI', 'Graphics.GL.Ext.QCOM.BinningControl.GL_BINNING_CONTROL_HINT_QCOM', 'Graphics.GL.Ext.PGI.MiscHints.GL_CLIP_FAR_HINT_PGI', 'Graphics.GL.Ext.PGI.MiscHints.GL_CLIP_NEAR_HINT_PGI', 'Graphics.GL.Ext.EXT.ClipVolumeHint.GL_CLIP_VOLUME_CLIPPING_HINT_EXT', 'Graphics.GL.Ext.PGI.MiscHints.GL_CONSERVE_MEMORY_HINT_PGI', 'Graphics.GL.Ext.SGIX.ConvolutionAccuracy.GL_CONVOLUTION_HINT_SGIX', 'Graphics.GL.Internal.Shared.GL_FOG_HINT', 'Graphics.GL.Internal.Shared.GL_FRAGMENT_SHADER_DERIVATIVE_HINT', 'Graphics.GL.Ext.ARB.FragmentShader.GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB', 'Graphics.GL.Ext.OES.StandardDerivatives.GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES', 'Graphics.GL.Ext.PGI.MiscHints.GL_FULL_STIPPLE_HINT_PGI', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP_HINT', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_HINT_SGIS', @GL_LINE_QUALITY_HINT_SGIX@, 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH_HINT', 'Graphics.GL.Ext.PGI.VertexHints.GL_MATERIAL_SIDE_HINT_PGI', 'Graphics.GL.Ext.PGI.VertexHints.GL_MAX_VERTEX_HINT_PGI', 'Graphics.GL.Ext.NV.MultisampleFilterHint.GL_MULTISAMPLE_FILTER_HINT_NV', 'Graphics.GL.Ext.PGI.MiscHints.GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI', 'Graphics.GL.Ext.PGI.MiscHints.GL_NATIVE_GRAPHICS_END_HINT_PGI', 'Graphics.GL.Ext.EXT.Cmyka.GL_PACK_CMYK_HINT_EXT', 'Graphics.GL.Internal.Shared.GL_PERSPECTIVE_CORRECTION_HINT', 'Graphics.GL.Ext.WIN.PhongShading.GL_PHONG_HINT_WIN', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH_HINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH_HINT', 'Graphics.GL.Ext.PGI.MiscHints.GL_PREFER_DOUBLEBUFFER_HINT_PGI', 'Graphics.GL.Internal.Shared.GL_PROGRAM_BINARY_RETRIEVABLE_HINT', 'Graphics.GL.Ext.PGI.MiscHints.GL_RECLAIM_MEMORY_HINT_PGI', 'Graphics.GL.Ext.SGIX.ScalebiasHint.GL_SCALEBIAS_HINT_SGIX', 'Graphics.GL.Ext.PGI.MiscHints.GL_STRICT_DEPTHFUNC_HINT_PGI', 'Graphics.GL.Ext.PGI.MiscHints.GL_STRICT_LIGHTING_HINT_PGI', 'Graphics.GL.Ext.PGI.MiscHints.GL_STRICT_SCISSOR_HINT_PGI', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPRESSION_HINT', 'Graphics.GL.Ext.ARB.TextureCompression.GL_TEXTURE_COMPRESSION_HINT_ARB', 'Graphics.GL.Ext.SGIX.TextureMultiBuffer.GL_TEXTURE_MULTI_BUFFER_HINT_SGIX', 'Graphics.GL.Ext.APPLE.TextureRange.GL_TEXTURE_STORAGE_HINT_APPLE', 'Graphics.GL.Ext.APPLE.TransformHint.GL_TRANSFORM_HINT_APPLE', 'Graphics.GL.Ext.EXT.Cmyka.GL_UNPACK_CMYK_HINT_EXT', 'Graphics.GL.Ext.APPLE.VertexArrayRange.GL_VERTEX_ARRAY_STORAGE_HINT_APPLE', 'Graphics.GL.Ext.PGI.VertexHints.GL_VERTEX_CONSISTENT_HINT_PGI', 'Graphics.GL.Ext.PGI.VertexHints.GL_VERTEX_DATA_HINT_PGI', 'Graphics.GL.Ext.SGIX.VertexPreclip.GL_VERTEX_PRECLIP_HINT_SGIX', 'Graphics.GL.Ext.SGIX.VertexPreclip.GL_VERTEX_PRECLIP_SGIX', 'Graphics.GL.Ext.PGI.MiscHints.GL_WIDE_LINE_HINT_PGI'.
---
--- The parameter @mode@ is a @HintMode@, one of: 'Graphics.GL.Internal.Shared.GL_DONT_CARE', 'Graphics.GL.Internal.Shared.GL_FASTEST', 'Graphics.GL.Internal.Shared.GL_NICEST'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glHint.xhtml>
-
-
-glHint :: MonadIO m => GLenum -> GLenum -> m ()
-glHint = ffienumenumIOV glHintFunPtr
-
-glHintFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
-glHintFunPtr = unsafePerformIO (getProcAddress "glHint")
-
-{-# NOINLINE glHintFunPtr #-}
-
--- | Usage: @'glIsBuffer' buffer@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsBuffer.xhtml>
-
-
-glIsBuffer :: MonadIO m => GLuint -> m GLboolean
-glIsBuffer = ffiuintIOboolean glIsBufferFunPtr
-
-glIsBufferFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsBufferFunPtr = unsafePerformIO (getProcAddress "glIsBuffer")
-
-{-# NOINLINE glIsBufferFunPtr #-}
-
--- | Usage: @'glIsEnabled' cap@
---
--- The parameter @cap@ is a @EnableCap@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Internal.Shared.GL_BLEND', 'Graphics.GL.Ext.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Internal.Shared.GL_DITHER', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Internal.Shared.GL_FOG', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Ext.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Ext.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Ext.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Ext.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Ext.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsEnabled.xhtml>
-
-
-glIsEnabled :: MonadIO m => GLenum -> m GLboolean
-glIsEnabled = ffienumIOboolean glIsEnabledFunPtr
-
-glIsEnabledFunPtr :: FunPtr (GLenum -> IO GLboolean)
-glIsEnabledFunPtr = unsafePerformIO (getProcAddress "glIsEnabled")
-
-{-# NOINLINE glIsEnabledFunPtr #-}
-
--- | Usage: @'glIsEnabledi' target index@
-
-
-glIsEnabledi :: MonadIO m => GLenum -> GLuint -> m GLboolean
-glIsEnabledi = ffienumuintIOboolean glIsEnablediFunPtr
-
-glIsEnablediFunPtr :: FunPtr (GLenum -> GLuint -> IO GLboolean)
-glIsEnablediFunPtr = unsafePerformIO (getProcAddress "glIsEnabledi")
-
-{-# NOINLINE glIsEnablediFunPtr #-}
-
--- | Usage: @'glIsFramebuffer' framebuffer@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsFramebuffer.xhtml>
-
-
-glIsFramebuffer :: MonadIO m => GLuint -> m GLboolean
-glIsFramebuffer = ffiuintIOboolean glIsFramebufferFunPtr
-
-glIsFramebufferFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsFramebufferFunPtr = unsafePerformIO (getProcAddress "glIsFramebuffer")
-
-{-# NOINLINE glIsFramebufferFunPtr #-}
-
--- | Usage: @'glIsProgram' program@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsProgram.xhtml>
-
-
-glIsProgram :: MonadIO m => GLuint -> m GLboolean
-glIsProgram = ffiuintIOboolean glIsProgramFunPtr
-
-glIsProgramFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsProgramFunPtr = unsafePerformIO (getProcAddress "glIsProgram")
-
-{-# NOINLINE glIsProgramFunPtr #-}
-
--- | Usage: @'glIsQuery' id@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsQuery.xhtml>
-
-
-glIsQuery :: MonadIO m => GLuint -> m GLboolean
-glIsQuery = ffiuintIOboolean glIsQueryFunPtr
-
-glIsQueryFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsQueryFunPtr = unsafePerformIO (getProcAddress "glIsQuery")
-
-{-# NOINLINE glIsQueryFunPtr #-}
-
--- | Usage: @'glIsRenderbuffer' renderbuffer@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsRenderbuffer.xhtml>
-
-
-glIsRenderbuffer :: MonadIO m => GLuint -> m GLboolean
-glIsRenderbuffer = ffiuintIOboolean glIsRenderbufferFunPtr
-
-glIsRenderbufferFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsRenderbufferFunPtr = unsafePerformIO (getProcAddress "glIsRenderbuffer")
-
-{-# NOINLINE glIsRenderbufferFunPtr #-}
-
--- | Usage: @'glIsShader' shader@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsShader.xhtml>
-
-
-glIsShader :: MonadIO m => GLuint -> m GLboolean
-glIsShader = ffiuintIOboolean glIsShaderFunPtr
-
-glIsShaderFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsShaderFunPtr = unsafePerformIO (getProcAddress "glIsShader")
-
-{-# NOINLINE glIsShaderFunPtr #-}
-
--- | Usage: @'glIsSync' sync@
---
--- The parameter @sync@ is a @sync@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsSync.xhtml>
-
-
-glIsSync :: MonadIO m => GLsync -> m GLboolean
-glIsSync = ffisyncIOboolean glIsSyncFunPtr
-
-glIsSyncFunPtr :: FunPtr (GLsync -> IO GLboolean)
-glIsSyncFunPtr = unsafePerformIO (getProcAddress "glIsSync")
-
-{-# NOINLINE glIsSyncFunPtr #-}
-
--- | Usage: @'glIsTexture' texture@
---
--- The parameter @texture@ is a @Texture@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsTexture.xhtml>
-
-
-glIsTexture :: MonadIO m => GLuint -> m GLboolean
-glIsTexture = ffiuintIOboolean glIsTextureFunPtr
-
-glIsTextureFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsTextureFunPtr = unsafePerformIO (getProcAddress "glIsTexture")
-
-{-# NOINLINE glIsTextureFunPtr #-}
-
--- | Usage: @'glIsVertexArray' array@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsVertexArray.xhtml>
-
-
-glIsVertexArray :: MonadIO m => GLuint -> m GLboolean
-glIsVertexArray = ffiuintIOboolean glIsVertexArrayFunPtr
-
-glIsVertexArrayFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsVertexArrayFunPtr = unsafePerformIO (getProcAddress "glIsVertexArray")
-
-{-# NOINLINE glIsVertexArrayFunPtr #-}
-
--- | Usage: @'glLineWidth' width@
---
--- The parameter @width@ is a @CheckedFloat32@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glLineWidth.xhtml>
-
-
-glLineWidth :: MonadIO m => GLfloat -> m ()
-glLineWidth = ffifloatIOV glLineWidthFunPtr
-
-glLineWidthFunPtr :: FunPtr (GLfloat -> IO ())
-glLineWidthFunPtr = unsafePerformIO (getProcAddress "glLineWidth")
-
-{-# NOINLINE glLineWidthFunPtr #-}
-
--- | Usage: @'glLinkProgram' program@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glLinkProgram.xhtml>
-
-
-glLinkProgram :: MonadIO m => GLuint -> m ()
-glLinkProgram = ffiuintIOV glLinkProgramFunPtr
-
-glLinkProgramFunPtr :: FunPtr (GLuint -> IO ())
-glLinkProgramFunPtr = unsafePerformIO (getProcAddress "glLinkProgram")
-
-{-# NOINLINE glLinkProgramFunPtr #-}
-
--- | Usage: @'glLogicOp' opcode@
---
--- The parameter @opcode@ is a @LogicOp@, one of: 'Graphics.GL.Internal.Shared.GL_AND', 'Graphics.GL.Internal.Shared.GL_AND_INVERTED', 'Graphics.GL.Internal.Shared.GL_AND_REVERSE', 'Graphics.GL.Internal.Shared.GL_CLEAR', 'Graphics.GL.Internal.Shared.GL_COPY', 'Graphics.GL.Internal.Shared.GL_COPY_INVERTED', 'Graphics.GL.Internal.Shared.GL_EQUIV', 'Graphics.GL.Internal.Shared.GL_INVERT', 'Graphics.GL.Internal.Shared.GL_NAND', 'Graphics.GL.Internal.Shared.GL_NOOP', 'Graphics.GL.Internal.Shared.GL_NOR', 'Graphics.GL.Internal.Shared.GL_OR', 'Graphics.GL.Internal.Shared.GL_OR_INVERTED', 'Graphics.GL.Internal.Shared.GL_OR_REVERSE', 'Graphics.GL.Internal.Shared.GL_SET', 'Graphics.GL.Internal.Shared.GL_XOR'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glLogicOp.xhtml>
-
-
-glLogicOp :: MonadIO m => GLenum -> m ()
-glLogicOp = ffienumIOV glLogicOpFunPtr
-
-glLogicOpFunPtr :: FunPtr (GLenum -> IO ())
-glLogicOpFunPtr = unsafePerformIO (getProcAddress "glLogicOp")
-
-{-# NOINLINE glLogicOpFunPtr #-}
-
--- | Usage: @'glMapBuffer' target access@
---
--- The parameter @target@ is a @BufferTargetARB@.
---
--- The parameter @access@ is a @BufferAccessARB@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glMapBuffer.xhtml>
-
-
-glMapBuffer :: MonadIO m => GLenum -> GLenum -> m (Ptr ())
-glMapBuffer = ffienumenumIOPtrV glMapBufferFunPtr
-
-glMapBufferFunPtr :: FunPtr (GLenum -> GLenum -> IO (Ptr ()))
-glMapBufferFunPtr = unsafePerformIO (getProcAddress "glMapBuffer")
-
-{-# NOINLINE glMapBufferFunPtr #-}
-
--- | Usage: @'glMapBufferRange' target offset length access@
---
--- The parameter @target@ is a @BufferTargetARB@.
---
--- The parameter @offset@ is a @BufferOffset@.
---
--- The parameter @length@ is a @BufferSize@.
---
--- The parameter @access@ is a @BufferAccessMask@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glMapBufferRange.xhtml>
-
-
-glMapBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr ())
-glMapBufferRange = ffienumintptrsizeiptrbitfieldIOPtrV glMapBufferRangeFunPtr
-
-glMapBufferRangeFunPtr :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> IO (Ptr ()))
-glMapBufferRangeFunPtr = unsafePerformIO (getProcAddress "glMapBufferRange")
-
-{-# NOINLINE glMapBufferRangeFunPtr #-}
-
--- | Usage: @'glMultiDrawArrays' mode first count drawcount@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- The length of @first@ should be @COMPSIZE(count)@.
---
--- The length of @count@ should be @COMPSIZE(drawcount)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glMultiDrawArrays.xhtml>
-
-
-glMultiDrawArrays :: MonadIO m => GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> m ()
-glMultiDrawArrays = ffienumPtrintPtrsizeisizeiIOV glMultiDrawArraysFunPtr
-
-glMultiDrawArraysFunPtr :: FunPtr (GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> IO ())
-glMultiDrawArraysFunPtr = unsafePerformIO (getProcAddress "glMultiDrawArrays")
-
-{-# NOINLINE glMultiDrawArraysFunPtr #-}
-
--- | Usage: @'glMultiDrawElements' mode count type indices drawcount@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- The parameter @type@ is a @DrawElementsType@.
---
--- The length of @count@ should be @COMPSIZE(drawcount)@.
---
--- The length of @indices@ should be @COMPSIZE(drawcount)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glMultiDrawElements.xhtml>
-
-
-glMultiDrawElements :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> m ()
-glMultiDrawElements = ffienumPtrsizeienumPtrPtrVsizeiIOV glMultiDrawElementsFunPtr
-
-glMultiDrawElementsFunPtr :: FunPtr (GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> IO ())
-glMultiDrawElementsFunPtr = unsafePerformIO (getProcAddress "glMultiDrawElements")
-
-{-# NOINLINE glMultiDrawElementsFunPtr #-}
-
--- | Usage: @'glMultiDrawElementsBaseVertex' mode count type indices drawcount basevertex@
---
--- The parameter @type@ is a @DrawElementsType@.
---
--- The length of @count@ should be @COMPSIZE(drawcount)@.
---
--- The length of @indices@ should be @COMPSIZE(drawcount)@.
---
--- The length of @basevertex@ should be @COMPSIZE(drawcount)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glMultiDrawElementsBaseVertex.xhtml>
-
-
-glMultiDrawElementsBaseVertex :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> Ptr GLint -> m ()
-glMultiDrawElementsBaseVertex = ffienumPtrsizeienumPtrPtrVsizeiPtrintIOV glMultiDrawElementsBaseVertexFunPtr
-
-glMultiDrawElementsBaseVertexFunPtr :: FunPtr (GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> Ptr GLint -> IO ())
-glMultiDrawElementsBaseVertexFunPtr = unsafePerformIO (getProcAddress "glMultiDrawElementsBaseVertex")
-
-{-# NOINLINE glMultiDrawElementsBaseVertexFunPtr #-}
-
--- | Usage: @'glPixelStoref' pname param@
---
--- The parameter @pname@ is a @PixelStoreParameter@, one of: 'Graphics.GL.Internal.Shared.GL_PACK_ALIGNMENT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PACK_IMAGE_DEPTH_SGIS', 'Graphics.GL.Internal.Shared.GL_PACK_IMAGE_HEIGHT', 'Graphics.GL.Ext.EXT.Texture3D.GL_PACK_IMAGE_HEIGHT_EXT', 'Graphics.GL.Internal.Shared.GL_PACK_LSB_FIRST', 'Graphics.GL.Ext.OML.Resample.GL_PACK_RESAMPLE_OML', 'Graphics.GL.Ext.SGIX.Resample.GL_PACK_RESAMPLE_SGIX', 'Graphics.GL.Internal.Shared.GL_PACK_ROW_LENGTH', 'Graphics.GL.Internal.Shared.GL_PACK_SKIP_IMAGES', 'Graphics.GL.Ext.EXT.Texture3D.GL_PACK_SKIP_IMAGES_EXT', 'Graphics.GL.Internal.Shared.GL_PACK_SKIP_PIXELS', 'Graphics.GL.Internal.Shared.GL_PACK_SKIP_ROWS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PACK_SKIP_VOLUMES_SGIS', 'Graphics.GL.Ext.SGIX.Subsample.GL_PACK_SUBSAMPLE_RATE_SGIX', 'Graphics.GL.Internal.Shared.GL_PACK_SWAP_BYTES', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_CACHE_SIZE_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_HEIGHT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_WIDTH_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_HEIGHT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_WIDTH_SGIX', 'Graphics.GL.Internal.Shared.GL_UNPACK_ALIGNMENT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_UNPACK_IMAGE_DEPTH_SGIS', 'Graphics.GL.Internal.Shared.GL_UNPACK_IMAGE_HEIGHT', 'Graphics.GL.Ext.EXT.Texture3D.GL_UNPACK_IMAGE_HEIGHT_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_LSB_FIRST', 'Graphics.GL.Ext.OML.Resample.GL_UNPACK_RESAMPLE_OML', 'Graphics.GL.Ext.SGIX.Resample.GL_UNPACK_RESAMPLE_SGIX', 'Graphics.GL.Internal.Shared.GL_UNPACK_ROW_LENGTH', 'Graphics.GL.Ext.EXT.UnpackSubimage.GL_UNPACK_ROW_LENGTH_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_SKIP_IMAGES', 'Graphics.GL.Ext.EXT.Texture3D.GL_UNPACK_SKIP_IMAGES_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_SKIP_PIXELS', 'Graphics.GL.Ext.EXT.UnpackSubimage.GL_UNPACK_SKIP_PIXELS_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_SKIP_ROWS', 'Graphics.GL.Ext.EXT.UnpackSubimage.GL_UNPACK_SKIP_ROWS_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_UNPACK_SKIP_VOLUMES_SGIS', 'Graphics.GL.Ext.SGIX.Subsample.GL_UNPACK_SUBSAMPLE_RATE_SGIX', 'Graphics.GL.Internal.Shared.GL_UNPACK_SWAP_BYTES'.
---
--- The parameter @param@ is a @CheckedFloat32@.
-
-
-glPixelStoref :: MonadIO m => GLenum -> GLfloat -> m ()
-glPixelStoref = ffienumfloatIOV glPixelStorefFunPtr
-
-glPixelStorefFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
-glPixelStorefFunPtr = unsafePerformIO (getProcAddress "glPixelStoref")
-
-{-# NOINLINE glPixelStorefFunPtr #-}
-
--- | Usage: @'glPixelStorei' pname param@
---
--- The parameter @pname@ is a @PixelStoreParameter@, one of: 'Graphics.GL.Internal.Shared.GL_PACK_ALIGNMENT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PACK_IMAGE_DEPTH_SGIS', 'Graphics.GL.Internal.Shared.GL_PACK_IMAGE_HEIGHT', 'Graphics.GL.Ext.EXT.Texture3D.GL_PACK_IMAGE_HEIGHT_EXT', 'Graphics.GL.Internal.Shared.GL_PACK_LSB_FIRST', 'Graphics.GL.Ext.OML.Resample.GL_PACK_RESAMPLE_OML', 'Graphics.GL.Ext.SGIX.Resample.GL_PACK_RESAMPLE_SGIX', 'Graphics.GL.Internal.Shared.GL_PACK_ROW_LENGTH', 'Graphics.GL.Internal.Shared.GL_PACK_SKIP_IMAGES', 'Graphics.GL.Ext.EXT.Texture3D.GL_PACK_SKIP_IMAGES_EXT', 'Graphics.GL.Internal.Shared.GL_PACK_SKIP_PIXELS', 'Graphics.GL.Internal.Shared.GL_PACK_SKIP_ROWS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PACK_SKIP_VOLUMES_SGIS', 'Graphics.GL.Ext.SGIX.Subsample.GL_PACK_SUBSAMPLE_RATE_SGIX', 'Graphics.GL.Internal.Shared.GL_PACK_SWAP_BYTES', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_CACHE_SIZE_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_HEIGHT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_WIDTH_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_HEIGHT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_WIDTH_SGIX', 'Graphics.GL.Internal.Shared.GL_UNPACK_ALIGNMENT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_UNPACK_IMAGE_DEPTH_SGIS', 'Graphics.GL.Internal.Shared.GL_UNPACK_IMAGE_HEIGHT', 'Graphics.GL.Ext.EXT.Texture3D.GL_UNPACK_IMAGE_HEIGHT_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_LSB_FIRST', 'Graphics.GL.Ext.OML.Resample.GL_UNPACK_RESAMPLE_OML', 'Graphics.GL.Ext.SGIX.Resample.GL_UNPACK_RESAMPLE_SGIX', 'Graphics.GL.Internal.Shared.GL_UNPACK_ROW_LENGTH', 'Graphics.GL.Ext.EXT.UnpackSubimage.GL_UNPACK_ROW_LENGTH_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_SKIP_IMAGES', 'Graphics.GL.Ext.EXT.Texture3D.GL_UNPACK_SKIP_IMAGES_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_SKIP_PIXELS', 'Graphics.GL.Ext.EXT.UnpackSubimage.GL_UNPACK_SKIP_PIXELS_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_SKIP_ROWS', 'Graphics.GL.Ext.EXT.UnpackSubimage.GL_UNPACK_SKIP_ROWS_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_UNPACK_SKIP_VOLUMES_SGIS', 'Graphics.GL.Ext.SGIX.Subsample.GL_UNPACK_SUBSAMPLE_RATE_SGIX', 'Graphics.GL.Internal.Shared.GL_UNPACK_SWAP_BYTES'.
---
--- The parameter @param@ is a @CheckedInt32@.
-
-
-glPixelStorei :: MonadIO m => GLenum -> GLint -> m ()
-glPixelStorei = ffienumintIOV glPixelStoreiFunPtr
-
-glPixelStoreiFunPtr :: FunPtr (GLenum -> GLint -> IO ())
-glPixelStoreiFunPtr = unsafePerformIO (getProcAddress "glPixelStorei")
-
-{-# NOINLINE glPixelStoreiFunPtr #-}
-
--- | Usage: @'glPointParameterf' pname param@
---
--- The parameter @pname@ is a @PointParameterNameARB@.
---
--- The parameter @param@ is a @CheckedFloat32@.
-
-
-glPointParameterf :: MonadIO m => GLenum -> GLfloat -> m ()
-glPointParameterf = ffienumfloatIOV glPointParameterfFunPtr
-
-glPointParameterfFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
-glPointParameterfFunPtr = unsafePerformIO (getProcAddress "glPointParameterf")
-
-{-# NOINLINE glPointParameterfFunPtr #-}
-
--- | Usage: @'glPointParameterfv' pname params@
---
--- The parameter @pname@ is a @PointParameterNameARB@.
---
--- The parameter @params@ is a @CheckedFloat32@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glPointParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glPointParameterfv = ffienumPtrfloatIOV glPointParameterfvFunPtr
-
-glPointParameterfvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glPointParameterfvFunPtr = unsafePerformIO (getProcAddress "glPointParameterfv")
-
-{-# NOINLINE glPointParameterfvFunPtr #-}
-
--- | Usage: @'glPointParameteri' pname param@
---
--- The parameter @pname@ is a @PointParameterNameARB@.
-
-
-glPointParameteri :: MonadIO m => GLenum -> GLint -> m ()
-glPointParameteri = ffienumintIOV glPointParameteriFunPtr
-
-glPointParameteriFunPtr :: FunPtr (GLenum -> GLint -> IO ())
-glPointParameteriFunPtr = unsafePerformIO (getProcAddress "glPointParameteri")
-
-{-# NOINLINE glPointParameteriFunPtr #-}
-
--- | Usage: @'glPointParameteriv' pname params@
---
--- The parameter @pname@ is a @PointParameterNameARB@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glPointParameteriv :: MonadIO m => GLenum -> Ptr GLint -> m ()
-glPointParameteriv = ffienumPtrintIOV glPointParameterivFunPtr
-
-glPointParameterivFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
-glPointParameterivFunPtr = unsafePerformIO (getProcAddress "glPointParameteriv")
-
-{-# NOINLINE glPointParameterivFunPtr #-}
-
--- | Usage: @'glPointSize' size@
---
--- The parameter @size@ is a @CheckedFloat32@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glPointSize.xhtml>
-
-
-glPointSize :: MonadIO m => GLfloat -> m ()
-glPointSize = ffifloatIOV glPointSizeFunPtr
-
-glPointSizeFunPtr :: FunPtr (GLfloat -> IO ())
-glPointSizeFunPtr = unsafePerformIO (getProcAddress "glPointSize")
-
-{-# NOINLINE glPointSizeFunPtr #-}
-
--- | Usage: @'glPolygonMode' face mode@
---
--- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK'.
---
--- The parameter @mode@ is a @PolygonMode@, one of: 'Graphics.GL.Internal.Shared.GL_FILL', 'Graphics.GL.Internal.Shared.GL_LINE', 'Graphics.GL.Internal.Shared.GL_POINT'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glPolygonMode.xhtml>
-
-
-glPolygonMode :: MonadIO m => GLenum -> GLenum -> m ()
-glPolygonMode = ffienumenumIOV glPolygonModeFunPtr
-
-glPolygonModeFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
-glPolygonModeFunPtr = unsafePerformIO (getProcAddress "glPolygonMode")
-
-{-# NOINLINE glPolygonModeFunPtr #-}
-
--- | Usage: @'glPolygonOffset' factor units@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glPolygonOffset.xhtml>
-
-
-glPolygonOffset :: MonadIO m => GLfloat -> GLfloat -> m ()
-glPolygonOffset = ffifloatfloatIOV glPolygonOffsetFunPtr
-
-glPolygonOffsetFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())
-glPolygonOffsetFunPtr = unsafePerformIO (getProcAddress "glPolygonOffset")
-
-{-# NOINLINE glPolygonOffsetFunPtr #-}
-
--- | Usage: @'glPrimitiveRestartIndex' index@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glPrimitiveRestartIndex.xhtml>
-
-
-glPrimitiveRestartIndex :: MonadIO m => GLuint -> m ()
-glPrimitiveRestartIndex = ffiuintIOV glPrimitiveRestartIndexFunPtr
-
-glPrimitiveRestartIndexFunPtr :: FunPtr (GLuint -> IO ())
-glPrimitiveRestartIndexFunPtr = unsafePerformIO (getProcAddress "glPrimitiveRestartIndex")
-
-{-# NOINLINE glPrimitiveRestartIndexFunPtr #-}
-
--- | Usage: @'glProvokingVertex' mode@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glProvokingVertex.xhtml>
-
-
-glProvokingVertex :: MonadIO m => GLenum -> m ()
-glProvokingVertex = ffienumIOV glProvokingVertexFunPtr
-
-glProvokingVertexFunPtr :: FunPtr (GLenum -> IO ())
-glProvokingVertexFunPtr = unsafePerformIO (getProcAddress "glProvokingVertex")
-
-{-# NOINLINE glProvokingVertexFunPtr #-}
-
--- | Usage: @'glReadBuffer' src@
---
--- The parameter @src@ is a @ReadBufferMode@, one of: 'Graphics.GL.Internal.Shared.GL_AUX0', 'Graphics.GL.Internal.Shared.GL_AUX1', 'Graphics.GL.Internal.Shared.GL_AUX2', 'Graphics.GL.Internal.Shared.GL_AUX3', 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_BACK_LEFT', 'Graphics.GL.Internal.Shared.GL_BACK_RIGHT', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_LEFT', 'Graphics.GL.Internal.Shared.GL_FRONT_RIGHT', 'Graphics.GL.Internal.Shared.GL_LEFT', 'Graphics.GL.Internal.Shared.GL_RIGHT'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glReadBuffer.xhtml>
-
-
-glReadBuffer :: MonadIO m => GLenum -> m ()
-glReadBuffer = ffienumIOV glReadBufferFunPtr
-
-glReadBufferFunPtr :: FunPtr (GLenum -> IO ())
-glReadBufferFunPtr = unsafePerformIO (getProcAddress "glReadBuffer")
-
-{-# NOINLINE glReadBufferFunPtr #-}
-
--- | Usage: @'glReadPixels' x y width height format type pixels@
---
--- The parameter @x@ is a @WinCoord@.
---
--- The parameter @y@ is a @WinCoord@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @pixels@ should be @COMPSIZE(format,type,width,height)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glReadPixels.xhtml>
-
-
-glReadPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-glReadPixels = ffiintintsizeisizeienumenumPtrVIOV glReadPixelsFunPtr
-
-glReadPixelsFunPtr :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
-glReadPixelsFunPtr = unsafePerformIO (getProcAddress "glReadPixels")
-
-{-# NOINLINE glReadPixelsFunPtr #-}
-
--- | Usage: @'glRenderbufferStorage' target internalformat width height@
---
--- The parameter @target@ is a @RenderbufferTarget@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glRenderbufferStorage.xhtml>
-
-
-glRenderbufferStorage :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> m ()
-glRenderbufferStorage = ffienumenumsizeisizeiIOV glRenderbufferStorageFunPtr
-
-glRenderbufferStorageFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> IO ())
-glRenderbufferStorageFunPtr = unsafePerformIO (getProcAddress "glRenderbufferStorage")
-
-{-# NOINLINE glRenderbufferStorageFunPtr #-}
-
--- | Usage: @'glRenderbufferStorageMultisample' target samples internalformat width height@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glRenderbufferStorageMultisample.xhtml>
-
-
-glRenderbufferStorageMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
-glRenderbufferStorageMultisample = ffienumsizeienumsizeisizeiIOV glRenderbufferStorageMultisampleFunPtr
-
-glRenderbufferStorageMultisampleFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
-glRenderbufferStorageMultisampleFunPtr = unsafePerformIO (getProcAddress "glRenderbufferStorageMultisample")
-
-{-# NOINLINE glRenderbufferStorageMultisampleFunPtr #-}
-
--- | Usage: @'glSampleCoverage' value invert@
---
--- The parameter @invert@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glSampleCoverage.xhtml>
-
-
-glSampleCoverage :: MonadIO m => GLfloat -> GLboolean -> m ()
-glSampleCoverage = ffifloatbooleanIOV glSampleCoverageFunPtr
-
-glSampleCoverageFunPtr :: FunPtr (GLfloat -> GLboolean -> IO ())
-glSampleCoverageFunPtr = unsafePerformIO (getProcAddress "glSampleCoverage")
-
-{-# NOINLINE glSampleCoverageFunPtr #-}
-
--- | Usage: @'glSampleMaski' maskNumber mask@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glSampleMaski.xhtml>
-
-
-glSampleMaski :: MonadIO m => GLuint -> GLbitfield -> m ()
-glSampleMaski = ffiuintbitfieldIOV glSampleMaskiFunPtr
-
-glSampleMaskiFunPtr :: FunPtr (GLuint -> GLbitfield -> IO ())
-glSampleMaskiFunPtr = unsafePerformIO (getProcAddress "glSampleMaski")
-
-{-# NOINLINE glSampleMaskiFunPtr #-}
-
--- | Usage: @'glScissor' x y width height@
---
--- The parameter @x@ is a @WinCoord@.
---
--- The parameter @y@ is a @WinCoord@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glScissor.xhtml>
-
-
-glScissor :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()
-glScissor = ffiintintsizeisizeiIOV glScissorFunPtr
-
-glScissorFunPtr :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> IO ())
-glScissorFunPtr = unsafePerformIO (getProcAddress "glScissor")
-
-{-# NOINLINE glScissorFunPtr #-}
-
--- | Usage: @'glShaderSource' shader count string length@
---
--- The length of @string@ should be @count@.
---
--- The length of @length@ should be @count@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glShaderSource.xhtml>
-
-
-glShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> m ()
-glShaderSource = ffiuintsizeiPtrPtrcharPtrintIOV glShaderSourceFunPtr
-
-glShaderSourceFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> IO ())
-glShaderSourceFunPtr = unsafePerformIO (getProcAddress "glShaderSource")
-
-{-# NOINLINE glShaderSourceFunPtr #-}
-
--- | Usage: @'glStencilFunc' func ref mask@
---
--- The parameter @func@ is a @StencilFunction@, one of: 'Graphics.GL.Internal.Shared.GL_ALWAYS', 'Graphics.GL.Internal.Shared.GL_EQUAL', 'Graphics.GL.Internal.Shared.GL_GEQUAL', 'Graphics.GL.Internal.Shared.GL_GREATER', 'Graphics.GL.Internal.Shared.GL_LEQUAL', 'Graphics.GL.Internal.Shared.GL_LESS', 'Graphics.GL.Internal.Shared.GL_NEVER', 'Graphics.GL.Internal.Shared.GL_NOTEQUAL'.
---
--- The parameter @ref@ is a @StencilValue@.
---
--- The parameter @mask@ is a @MaskedStencilValue@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glStencilFunc.xhtml>
-
-
-glStencilFunc :: MonadIO m => GLenum -> GLint -> GLuint -> m ()
-glStencilFunc = ffienumintuintIOV glStencilFuncFunPtr
-
-glStencilFuncFunPtr :: FunPtr (GLenum -> GLint -> GLuint -> IO ())
-glStencilFuncFunPtr = unsafePerformIO (getProcAddress "glStencilFunc")
-
-{-# NOINLINE glStencilFuncFunPtr #-}
-
--- | Usage: @'glStencilFuncSeparate' face func ref mask@
---
--- The parameter @face@ is a @StencilFaceDirection@.
---
--- The parameter @func@ is a @StencilFunction@, one of: 'Graphics.GL.Internal.Shared.GL_ALWAYS', 'Graphics.GL.Internal.Shared.GL_EQUAL', 'Graphics.GL.Internal.Shared.GL_GEQUAL', 'Graphics.GL.Internal.Shared.GL_GREATER', 'Graphics.GL.Internal.Shared.GL_LEQUAL', 'Graphics.GL.Internal.Shared.GL_LESS', 'Graphics.GL.Internal.Shared.GL_NEVER', 'Graphics.GL.Internal.Shared.GL_NOTEQUAL'.
---
--- The parameter @ref@ is a @StencilValue@.
---
--- The parameter @mask@ is a @MaskedStencilValue@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glStencilFuncSeparate.xhtml>
-
-
-glStencilFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLint -> GLuint -> m ()
-glStencilFuncSeparate = ffienumenumintuintIOV glStencilFuncSeparateFunPtr
-
-glStencilFuncSeparateFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLuint -> IO ())
-glStencilFuncSeparateFunPtr = unsafePerformIO (getProcAddress "glStencilFuncSeparate")
-
-{-# NOINLINE glStencilFuncSeparateFunPtr #-}
-
--- | Usage: @'glStencilMask' mask@
---
--- The parameter @mask@ is a @MaskedStencilValue@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glStencilMask.xhtml>
-
-
-glStencilMask :: MonadIO m => GLuint -> m ()
-glStencilMask = ffiuintIOV glStencilMaskFunPtr
-
-glStencilMaskFunPtr :: FunPtr (GLuint -> IO ())
-glStencilMaskFunPtr = unsafePerformIO (getProcAddress "glStencilMask")
-
-{-# NOINLINE glStencilMaskFunPtr #-}
-
--- | Usage: @'glStencilMaskSeparate' face mask@
---
--- The parameter @face@ is a @StencilFaceDirection@.
---
--- The parameter @mask@ is a @MaskedStencilValue@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glStencilMaskSeparate.xhtml>
-
-
-glStencilMaskSeparate :: MonadIO m => GLenum -> GLuint -> m ()
-glStencilMaskSeparate = ffienumuintIOV glStencilMaskSeparateFunPtr
-
-glStencilMaskSeparateFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glStencilMaskSeparateFunPtr = unsafePerformIO (getProcAddress "glStencilMaskSeparate")
-
-{-# NOINLINE glStencilMaskSeparateFunPtr #-}
-
--- | Usage: @'glStencilOp' fail zfail zpass@
---
--- The parameter @fail@ is a @StencilOp@, one of: 'Graphics.GL.Internal.Shared.GL_DECR', 'Graphics.GL.Internal.Shared.GL_INCR', 'Graphics.GL.Internal.Shared.GL_INVERT', 'Graphics.GL.Internal.Shared.GL_KEEP', 'Graphics.GL.Internal.Shared.GL_REPLACE', 'Graphics.GL.Internal.Shared.GL_ZERO'.
---
--- The parameter @zfail@ is a @StencilOp@, one of: 'Graphics.GL.Internal.Shared.GL_DECR', 'Graphics.GL.Internal.Shared.GL_INCR', 'Graphics.GL.Internal.Shared.GL_INVERT', 'Graphics.GL.Internal.Shared.GL_KEEP', 'Graphics.GL.Internal.Shared.GL_REPLACE', 'Graphics.GL.Internal.Shared.GL_ZERO'.
---
--- The parameter @zpass@ is a @StencilOp@, one of: 'Graphics.GL.Internal.Shared.GL_DECR', 'Graphics.GL.Internal.Shared.GL_INCR', 'Graphics.GL.Internal.Shared.GL_INVERT', 'Graphics.GL.Internal.Shared.GL_KEEP', 'Graphics.GL.Internal.Shared.GL_REPLACE', 'Graphics.GL.Internal.Shared.GL_ZERO'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glStencilOp.xhtml>
-
-
-glStencilOp :: MonadIO m => GLenum -> GLenum -> GLenum -> m ()
-glStencilOp = ffienumenumenumIOV glStencilOpFunPtr
-
-glStencilOpFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> IO ())
-glStencilOpFunPtr = unsafePerformIO (getProcAddress "glStencilOp")
-
-{-# NOINLINE glStencilOpFunPtr #-}
-
--- | Usage: @'glStencilOpSeparate' face sfail dpfail dppass@
---
--- The parameter @face@ is a @StencilFaceDirection@.
---
--- The parameter @sfail@ is a @StencilOp@, one of: 'Graphics.GL.Internal.Shared.GL_DECR', 'Graphics.GL.Internal.Shared.GL_INCR', 'Graphics.GL.Internal.Shared.GL_INVERT', 'Graphics.GL.Internal.Shared.GL_KEEP', 'Graphics.GL.Internal.Shared.GL_REPLACE', 'Graphics.GL.Internal.Shared.GL_ZERO'.
---
--- The parameter @dpfail@ is a @StencilOp@, one of: 'Graphics.GL.Internal.Shared.GL_DECR', 'Graphics.GL.Internal.Shared.GL_INCR', 'Graphics.GL.Internal.Shared.GL_INVERT', 'Graphics.GL.Internal.Shared.GL_KEEP', 'Graphics.GL.Internal.Shared.GL_REPLACE', 'Graphics.GL.Internal.Shared.GL_ZERO'.
---
--- The parameter @dppass@ is a @StencilOp@, one of: 'Graphics.GL.Internal.Shared.GL_DECR', 'Graphics.GL.Internal.Shared.GL_INCR', 'Graphics.GL.Internal.Shared.GL_INVERT', 'Graphics.GL.Internal.Shared.GL_KEEP', 'Graphics.GL.Internal.Shared.GL_REPLACE', 'Graphics.GL.Internal.Shared.GL_ZERO'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glStencilOpSeparate.xhtml>
-
-
-glStencilOpSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()
-glStencilOpSeparate = ffienumenumenumenumIOV glStencilOpSeparateFunPtr
-
-glStencilOpSeparateFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ())
-glStencilOpSeparateFunPtr = unsafePerformIO (getProcAddress "glStencilOpSeparate")
-
-{-# NOINLINE glStencilOpSeparateFunPtr #-}
-
--- | Usage: @'glTexBuffer' target internalformat buffer@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexBuffer.xhtml>
-
-
-glTexBuffer :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
-glTexBuffer = ffienumenumuintIOV glTexBufferFunPtr
-
-glTexBufferFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
-glTexBufferFunPtr = unsafePerformIO (getProcAddress "glTexBuffer")
-
-{-# NOINLINE glTexBufferFunPtr #-}
-
--- | Usage: @'glTexImage1D' target level internalformat width border format type pixels@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @internalformat@ is a @TextureComponentCount@.
---
--- The parameter @border@ is a @CheckedInt32@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @pixels@ should be @COMPSIZE(format,type,width)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexImage1D.xhtml>
-
-
-glTexImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
-glTexImage1D = ffienumintintsizeiintenumenumPtrVIOV glTexImage1DFunPtr
-
-glTexImage1DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
-glTexImage1DFunPtr = unsafePerformIO (getProcAddress "glTexImage1D")
-
-{-# NOINLINE glTexImage1DFunPtr #-}
-
--- | Usage: @'glTexImage2D' target level internalformat width height border format type pixels@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @internalformat@ is a @TextureComponentCount@.
---
--- The parameter @border@ is a @CheckedInt32@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @pixels@ should be @COMPSIZE(format,type,width,height)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexImage2D.xhtml>
-
-
-glTexImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
-glTexImage2D = ffienumintintsizeisizeiintenumenumPtrVIOV glTexImage2DFunPtr
-
-glTexImage2DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
-glTexImage2DFunPtr = unsafePerformIO (getProcAddress "glTexImage2D")
-
-{-# NOINLINE glTexImage2DFunPtr #-}
-
--- | Usage: @'glTexImage2DMultisample' target samples internalformat width height fixedsamplelocations@
---
--- The parameter @fixedsamplelocations@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexImage2DMultisample.xhtml>
-
-
-glTexImage2DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()
-glTexImage2DMultisample = ffienumsizeienumsizeisizeibooleanIOV glTexImage2DMultisampleFunPtr
-
-glTexImage2DMultisampleFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> IO ())
-glTexImage2DMultisampleFunPtr = unsafePerformIO (getProcAddress "glTexImage2DMultisample")
-
-{-# NOINLINE glTexImage2DMultisampleFunPtr #-}
-
--- | Usage: @'glTexImage3D' target level internalformat width height depth border format type pixels@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @internalformat@ is a @TextureComponentCount@.
---
--- The parameter @border@ is a @CheckedInt32@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @pixels@ should be @COMPSIZE(format,type,width,height,depth)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexImage3D.xhtml>
-
-
-glTexImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
-glTexImage3D = ffienumintintsizeisizeisizeiintenumenumPtrVIOV glTexImage3DFunPtr
-
-glTexImage3DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
-glTexImage3DFunPtr = unsafePerformIO (getProcAddress "glTexImage3D")
-
-{-# NOINLINE glTexImage3DFunPtr #-}
-
--- | Usage: @'glTexImage3DMultisample' target samples internalformat width height depth fixedsamplelocations@
---
--- The parameter @fixedsamplelocations@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexImage3DMultisample.xhtml>
-
-
-glTexImage3DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
-glTexImage3DMultisample = ffienumsizeienumsizeisizeisizeibooleanIOV glTexImage3DMultisampleFunPtr
-
-glTexImage3DMultisampleFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
-glTexImage3DMultisampleFunPtr = unsafePerformIO (getProcAddress "glTexImage3DMultisample")
-
-{-# NOINLINE glTexImage3DMultisampleFunPtr #-}
-
--- | Usage: @'glTexParameterIiv' target pname params@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glTexParameterIiv = ffienumenumPtrintIOV glTexParameterIivFunPtr
-
-glTexParameterIivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glTexParameterIivFunPtr = unsafePerformIO (getProcAddress "glTexParameterIiv")
-
-{-# NOINLINE glTexParameterIivFunPtr #-}
-
--- | Usage: @'glTexParameterIuiv' target pname params@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
-glTexParameterIuiv = ffienumenumPtruintIOV glTexParameterIuivFunPtr
-
-glTexParameterIuivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
-glTexParameterIuivFunPtr = unsafePerformIO (getProcAddress "glTexParameterIuiv")
-
-{-# NOINLINE glTexParameterIuivFunPtr #-}
-
--- | Usage: @'glTexParameterf' target pname param@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
---
--- The parameter @param@ is a @CheckedFloat32@.
-
-
-glTexParameterf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
-glTexParameterf = ffienumenumfloatIOV glTexParameterfFunPtr
-
-glTexParameterfFunPtr :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
-glTexParameterfFunPtr = unsafePerformIO (getProcAddress "glTexParameterf")
-
-{-# NOINLINE glTexParameterfFunPtr #-}
-
--- | Usage: @'glTexParameterfv' target pname params@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
---
--- The parameter @params@ is a @CheckedFloat32@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
-glTexParameterfv = ffienumenumPtrfloatIOV glTexParameterfvFunPtr
-
-glTexParameterfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
-glTexParameterfvFunPtr = unsafePerformIO (getProcAddress "glTexParameterfv")
-
-{-# NOINLINE glTexParameterfvFunPtr #-}
-
--- | Usage: @'glTexParameteri' target pname param@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
---
--- The parameter @param@ is a @CheckedInt32@.
-
-
-glTexParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
-glTexParameteri = ffienumenumintIOV glTexParameteriFunPtr
-
-glTexParameteriFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
-glTexParameteriFunPtr = unsafePerformIO (getProcAddress "glTexParameteri")
-
-{-# NOINLINE glTexParameteriFunPtr #-}
-
--- | Usage: @'glTexParameteriv' target pname params@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
---
--- The parameter @params@ is a @CheckedInt32@.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glTexParameteriv = ffienumenumPtrintIOV glTexParameterivFunPtr
-
-glTexParameterivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glTexParameterivFunPtr = unsafePerformIO (getProcAddress "glTexParameteriv")
-
-{-# NOINLINE glTexParameterivFunPtr #-}
-
--- | Usage: @'glTexSubImage1D' target level xoffset width format type pixels@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @xoffset@ is a @CheckedInt32@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @pixels@ should be @COMPSIZE(format,type,width)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexSubImage1D.xhtml>
-
-
-glTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-glTexSubImage1D = ffienumintintsizeienumenumPtrVIOV glTexSubImage1DFunPtr
-
-glTexSubImage1DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
-glTexSubImage1DFunPtr = unsafePerformIO (getProcAddress "glTexSubImage1D")
-
-{-# NOINLINE glTexSubImage1DFunPtr #-}
-
--- | Usage: @'glTexSubImage2D' target level xoffset yoffset width height format type pixels@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @xoffset@ is a @CheckedInt32@.
---
--- The parameter @yoffset@ is a @CheckedInt32@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @pixels@ should be @COMPSIZE(format,type,width,height)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexSubImage2D.xhtml>
-
-
-glTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-glTexSubImage2D = ffienumintintintsizeisizeienumenumPtrVIOV glTexSubImage2DFunPtr
-
-glTexSubImage2DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
-glTexSubImage2DFunPtr = unsafePerformIO (getProcAddress "glTexSubImage2D")
-
-{-# NOINLINE glTexSubImage2DFunPtr #-}
-
--- | Usage: @'glTexSubImage3D' target level xoffset yoffset zoffset width height depth format type pixels@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @xoffset@ is a @CheckedInt32@.
---
--- The parameter @yoffset@ is a @CheckedInt32@.
---
--- The parameter @zoffset@ is a @CheckedInt32@.
---
--- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
---
--- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
---
--- The length of @pixels@ should be @COMPSIZE(format,type,width,height,depth)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexSubImage3D.xhtml>
-
-
-glTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-glTexSubImage3D = ffienumintintintintsizeisizeisizeienumenumPtrVIOV glTexSubImage3DFunPtr
-
-glTexSubImage3DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
-glTexSubImage3DFunPtr = unsafePerformIO (getProcAddress "glTexSubImage3D")
-
-{-# NOINLINE glTexSubImage3DFunPtr #-}
-
--- | Usage: @'glTransformFeedbackVaryings' program count varyings bufferMode@
---
--- The length of @varyings@ should be @count@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTransformFeedbackVaryings.xhtml>
-
-
-glTransformFeedbackVaryings :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> m ()
-glTransformFeedbackVaryings = ffiuintsizeiPtrPtrcharenumIOV glTransformFeedbackVaryingsFunPtr
-
-glTransformFeedbackVaryingsFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> IO ())
-glTransformFeedbackVaryingsFunPtr = unsafePerformIO (getProcAddress "glTransformFeedbackVaryings")
-
-{-# NOINLINE glTransformFeedbackVaryingsFunPtr #-}
-
--- | Usage: @'glUniform1f' location v0@
-
-
-glUniform1f :: MonadIO m => GLint -> GLfloat -> m ()
-glUniform1f = ffiintfloatIOV glUniform1fFunPtr
-
-glUniform1fFunPtr :: FunPtr (GLint -> GLfloat -> IO ())
-glUniform1fFunPtr = unsafePerformIO (getProcAddress "glUniform1f")
-
-{-# NOINLINE glUniform1fFunPtr #-}
-
--- | Usage: @'glUniform1fv' location count value@
---
--- The length of @value@ should be @count*1@.
-
-
-glUniform1fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()
-glUniform1fv = ffiintsizeiPtrfloatIOV glUniform1fvFunPtr
-
-glUniform1fvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ())
-glUniform1fvFunPtr = unsafePerformIO (getProcAddress "glUniform1fv")
-
-{-# NOINLINE glUniform1fvFunPtr #-}
-
--- | Usage: @'glUniform1i' location v0@
-
-
-glUniform1i :: MonadIO m => GLint -> GLint -> m ()
-glUniform1i = ffiintintIOV glUniform1iFunPtr
-
-glUniform1iFunPtr :: FunPtr (GLint -> GLint -> IO ())
-glUniform1iFunPtr = unsafePerformIO (getProcAddress "glUniform1i")
-
-{-# NOINLINE glUniform1iFunPtr #-}
-
--- | Usage: @'glUniform1iv' location count value@
---
--- The length of @value@ should be @count*1@.
-
-
-glUniform1iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()
-glUniform1iv = ffiintsizeiPtrintIOV glUniform1ivFunPtr
-
-glUniform1ivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ())
-glUniform1ivFunPtr = unsafePerformIO (getProcAddress "glUniform1iv")
-
-{-# NOINLINE glUniform1ivFunPtr #-}
-
--- | Usage: @'glUniform1ui' location v0@
-
-
-glUniform1ui :: MonadIO m => GLint -> GLuint -> m ()
-glUniform1ui = ffiintuintIOV glUniform1uiFunPtr
-
-glUniform1uiFunPtr :: FunPtr (GLint -> GLuint -> IO ())
-glUniform1uiFunPtr = unsafePerformIO (getProcAddress "glUniform1ui")
-
-{-# NOINLINE glUniform1uiFunPtr #-}
-
--- | Usage: @'glUniform1uiv' location count value@
---
--- The length of @value@ should be @count*1@.
-
-
-glUniform1uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
-glUniform1uiv = ffiintsizeiPtruintIOV glUniform1uivFunPtr
-
-glUniform1uivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint -> IO ())
-glUniform1uivFunPtr = unsafePerformIO (getProcAddress "glUniform1uiv")
-
-{-# NOINLINE glUniform1uivFunPtr #-}
-
--- | Usage: @'glUniform2f' location v0 v1@
-
-
-glUniform2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()
-glUniform2f = ffiintfloatfloatIOV glUniform2fFunPtr
-
-glUniform2fFunPtr :: FunPtr (GLint -> GLfloat -> GLfloat -> IO ())
-glUniform2fFunPtr = unsafePerformIO (getProcAddress "glUniform2f")
-
-{-# NOINLINE glUniform2fFunPtr #-}
-
--- | Usage: @'glUniform2fv' location count value@
---
--- The length of @value@ should be @count*2@.
-
-
-glUniform2fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()
-glUniform2fv = ffiintsizeiPtrfloatIOV glUniform2fvFunPtr
-
-glUniform2fvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ())
-glUniform2fvFunPtr = unsafePerformIO (getProcAddress "glUniform2fv")
-
-{-# NOINLINE glUniform2fvFunPtr #-}
-
--- | Usage: @'glUniform2i' location v0 v1@
-
-
-glUniform2i :: MonadIO m => GLint -> GLint -> GLint -> m ()
-glUniform2i = ffiintintintIOV glUniform2iFunPtr
-
-glUniform2iFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())
-glUniform2iFunPtr = unsafePerformIO (getProcAddress "glUniform2i")
-
-{-# NOINLINE glUniform2iFunPtr #-}
-
--- | Usage: @'glUniform2iv' location count value@
---
--- The length of @value@ should be @count*2@.
-
-
-glUniform2iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()
-glUniform2iv = ffiintsizeiPtrintIOV glUniform2ivFunPtr
-
-glUniform2ivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ())
-glUniform2ivFunPtr = unsafePerformIO (getProcAddress "glUniform2iv")
-
-{-# NOINLINE glUniform2ivFunPtr #-}
-
--- | Usage: @'glUniform2ui' location v0 v1@
-
-
-glUniform2ui :: MonadIO m => GLint -> GLuint -> GLuint -> m ()
-glUniform2ui = ffiintuintuintIOV glUniform2uiFunPtr
-
-glUniform2uiFunPtr :: FunPtr (GLint -> GLuint -> GLuint -> IO ())
-glUniform2uiFunPtr = unsafePerformIO (getProcAddress "glUniform2ui")
-
-{-# NOINLINE glUniform2uiFunPtr #-}
-
--- | Usage: @'glUniform2uiv' location count value@
---
--- The length of @value@ should be @count*2@.
-
-
-glUniform2uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
-glUniform2uiv = ffiintsizeiPtruintIOV glUniform2uivFunPtr
-
-glUniform2uivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint -> IO ())
-glUniform2uivFunPtr = unsafePerformIO (getProcAddress "glUniform2uiv")
-
-{-# NOINLINE glUniform2uivFunPtr #-}
-
--- | Usage: @'glUniform3f' location v0 v1 v2@
-
-
-glUniform3f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> m ()
-glUniform3f = ffiintfloatfloatfloatIOV glUniform3fFunPtr
-
-glUniform3fFunPtr :: FunPtr (GLint -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glUniform3fFunPtr = unsafePerformIO (getProcAddress "glUniform3f")
-
-{-# NOINLINE glUniform3fFunPtr #-}
-
--- | Usage: @'glUniform3fv' location count value@
---
--- The length of @value@ should be @count*3@.
-
-
-glUniform3fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()
-glUniform3fv = ffiintsizeiPtrfloatIOV glUniform3fvFunPtr
-
-glUniform3fvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ())
-glUniform3fvFunPtr = unsafePerformIO (getProcAddress "glUniform3fv")
-
-{-# NOINLINE glUniform3fvFunPtr #-}
-
--- | Usage: @'glUniform3i' location v0 v1 v2@
-
-
-glUniform3i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()
-glUniform3i = ffiintintintintIOV glUniform3iFunPtr
-
-glUniform3iFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())
-glUniform3iFunPtr = unsafePerformIO (getProcAddress "glUniform3i")
-
-{-# NOINLINE glUniform3iFunPtr #-}
-
--- | Usage: @'glUniform3iv' location count value@
---
--- The length of @value@ should be @count*3@.
-
-
-glUniform3iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()
-glUniform3iv = ffiintsizeiPtrintIOV glUniform3ivFunPtr
-
-glUniform3ivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ())
-glUniform3ivFunPtr = unsafePerformIO (getProcAddress "glUniform3iv")
-
-{-# NOINLINE glUniform3ivFunPtr #-}
-
--- | Usage: @'glUniform3ui' location v0 v1 v2@
-
-
-glUniform3ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> m ()
-glUniform3ui = ffiintuintuintuintIOV glUniform3uiFunPtr
-
-glUniform3uiFunPtr :: FunPtr (GLint -> GLuint -> GLuint -> GLuint -> IO ())
-glUniform3uiFunPtr = unsafePerformIO (getProcAddress "glUniform3ui")
-
-{-# NOINLINE glUniform3uiFunPtr #-}
-
--- | Usage: @'glUniform3uiv' location count value@
---
--- The length of @value@ should be @count*3@.
-
-
-glUniform3uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
-glUniform3uiv = ffiintsizeiPtruintIOV glUniform3uivFunPtr
-
-glUniform3uivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint -> IO ())
-glUniform3uivFunPtr = unsafePerformIO (getProcAddress "glUniform3uiv")
-
-{-# NOINLINE glUniform3uivFunPtr #-}
-
--- | Usage: @'glUniform4f' location v0 v1 v2 v3@
-
-
-glUniform4f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glUniform4f = ffiintfloatfloatfloatfloatIOV glUniform4fFunPtr
-
-glUniform4fFunPtr :: FunPtr (GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glUniform4fFunPtr = unsafePerformIO (getProcAddress "glUniform4f")
-
-{-# NOINLINE glUniform4fFunPtr #-}
-
--- | Usage: @'glUniform4fv' location count value@
---
--- The length of @value@ should be @count*4@.
-
-
-glUniform4fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()
-glUniform4fv = ffiintsizeiPtrfloatIOV glUniform4fvFunPtr
-
-glUniform4fvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ())
-glUniform4fvFunPtr = unsafePerformIO (getProcAddress "glUniform4fv")
-
-{-# NOINLINE glUniform4fvFunPtr #-}
-
--- | Usage: @'glUniform4i' location v0 v1 v2 v3@
-
-
-glUniform4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> m ()
-glUniform4i = ffiintintintintintIOV glUniform4iFunPtr
-
-glUniform4iFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> GLint -> IO ())
-glUniform4iFunPtr = unsafePerformIO (getProcAddress "glUniform4i")
-
-{-# NOINLINE glUniform4iFunPtr #-}
-
--- | Usage: @'glUniform4iv' location count value@
---
--- The length of @value@ should be @count*4@.
-
-
-glUniform4iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()
-glUniform4iv = ffiintsizeiPtrintIOV glUniform4ivFunPtr
-
-glUniform4ivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ())
-glUniform4ivFunPtr = unsafePerformIO (getProcAddress "glUniform4iv")
-
-{-# NOINLINE glUniform4ivFunPtr #-}
-
--- | Usage: @'glUniform4ui' location v0 v1 v2 v3@
-
-
-glUniform4ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
-glUniform4ui = ffiintuintuintuintuintIOV glUniform4uiFunPtr
-
-glUniform4uiFunPtr :: FunPtr (GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
-glUniform4uiFunPtr = unsafePerformIO (getProcAddress "glUniform4ui")
-
-{-# NOINLINE glUniform4uiFunPtr #-}
-
--- | Usage: @'glUniform4uiv' location count value@
---
--- The length of @value@ should be @count*4@.
-
-
-glUniform4uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
-glUniform4uiv = ffiintsizeiPtruintIOV glUniform4uivFunPtr
-
-glUniform4uivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint -> IO ())
-glUniform4uivFunPtr = unsafePerformIO (getProcAddress "glUniform4uiv")
-
-{-# NOINLINE glUniform4uivFunPtr #-}
-
--- | Usage: @'glUniformBlockBinding' program uniformBlockIndex uniformBlockBinding@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glUniformBlockBinding.xhtml>
-
-
-glUniformBlockBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
-glUniformBlockBinding = ffiuintuintuintIOV glUniformBlockBindingFunPtr
-
-glUniformBlockBindingFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
-glUniformBlockBindingFunPtr = unsafePerformIO (getProcAddress "glUniformBlockBinding")
-
-{-# NOINLINE glUniformBlockBindingFunPtr #-}
-
--- | Usage: @'glUniformMatrix2fv' location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*4@.
-
-
-glUniformMatrix2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glUniformMatrix2fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix2fvFunPtr
-
-glUniformMatrix2fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glUniformMatrix2fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix2fv")
-
-{-# NOINLINE glUniformMatrix2fvFunPtr #-}
-
--- | Usage: @'glUniformMatrix2x3fv' location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*6@.
-
-
-glUniformMatrix2x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glUniformMatrix2x3fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix2x3fvFunPtr
-
-glUniformMatrix2x3fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glUniformMatrix2x3fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix2x3fv")
-
-{-# NOINLINE glUniformMatrix2x3fvFunPtr #-}
-
--- | Usage: @'glUniformMatrix2x4fv' location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*8@.
-
-
-glUniformMatrix2x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glUniformMatrix2x4fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix2x4fvFunPtr
-
-glUniformMatrix2x4fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glUniformMatrix2x4fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix2x4fv")
-
-{-# NOINLINE glUniformMatrix2x4fvFunPtr #-}
-
--- | Usage: @'glUniformMatrix3fv' location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*9@.
-
-
-glUniformMatrix3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glUniformMatrix3fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix3fvFunPtr
-
-glUniformMatrix3fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glUniformMatrix3fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix3fv")
-
-{-# NOINLINE glUniformMatrix3fvFunPtr #-}
-
--- | Usage: @'glUniformMatrix3x2fv' location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*6@.
-
-
-glUniformMatrix3x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glUniformMatrix3x2fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix3x2fvFunPtr
-
-glUniformMatrix3x2fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glUniformMatrix3x2fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix3x2fv")
-
-{-# NOINLINE glUniformMatrix3x2fvFunPtr #-}
-
--- | Usage: @'glUniformMatrix3x4fv' location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*12@.
-
-
-glUniformMatrix3x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glUniformMatrix3x4fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix3x4fvFunPtr
-
-glUniformMatrix3x4fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glUniformMatrix3x4fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix3x4fv")
-
-{-# NOINLINE glUniformMatrix3x4fvFunPtr #-}
-
--- | Usage: @'glUniformMatrix4fv' location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*16@.
-
-
-glUniformMatrix4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glUniformMatrix4fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix4fvFunPtr
-
-glUniformMatrix4fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glUniformMatrix4fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix4fv")
-
-{-# NOINLINE glUniformMatrix4fvFunPtr #-}
-
--- | Usage: @'glUniformMatrix4x2fv' location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*8@.
-
-
-glUniformMatrix4x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glUniformMatrix4x2fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix4x2fvFunPtr
-
-glUniformMatrix4x2fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glUniformMatrix4x2fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix4x2fv")
-
-{-# NOINLINE glUniformMatrix4x2fvFunPtr #-}
-
--- | Usage: @'glUniformMatrix4x3fv' location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*12@.
-
-
-glUniformMatrix4x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glUniformMatrix4x3fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix4x3fvFunPtr
-
-glUniformMatrix4x3fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glUniformMatrix4x3fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix4x3fv")
-
-{-# NOINLINE glUniformMatrix4x3fvFunPtr #-}
-
--- | Usage: @'glUnmapBuffer' target@
---
--- The parameter @target@ is a @BufferTargetARB@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glUnmapBuffer.xhtml>
-
-
-glUnmapBuffer :: MonadIO m => GLenum -> m GLboolean
-glUnmapBuffer = ffienumIOboolean glUnmapBufferFunPtr
-
-glUnmapBufferFunPtr :: FunPtr (GLenum -> IO GLboolean)
-glUnmapBufferFunPtr = unsafePerformIO (getProcAddress "glUnmapBuffer")
-
-{-# NOINLINE glUnmapBufferFunPtr #-}
-
--- | Usage: @'glUseProgram' program@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glUseProgram.xhtml>
-
-
-glUseProgram :: MonadIO m => GLuint -> m ()
-glUseProgram = ffiuintIOV glUseProgramFunPtr
-
-glUseProgramFunPtr :: FunPtr (GLuint -> IO ())
-glUseProgramFunPtr = unsafePerformIO (getProcAddress "glUseProgram")
-
-{-# NOINLINE glUseProgramFunPtr #-}
-
--- | Usage: @'glValidateProgram' program@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glValidateProgram.xhtml>
-
-
-glValidateProgram :: MonadIO m => GLuint -> m ()
-glValidateProgram = ffiuintIOV glValidateProgramFunPtr
-
-glValidateProgramFunPtr :: FunPtr (GLuint -> IO ())
-glValidateProgramFunPtr = unsafePerformIO (getProcAddress "glValidateProgram")
-
-{-# NOINLINE glValidateProgramFunPtr #-}
-
--- | Usage: @'glVertexAttrib1d' index x@
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib1dv'.
-
-
-glVertexAttrib1d :: MonadIO m => GLuint -> GLdouble -> m ()
-glVertexAttrib1d = ffiuintdoubleIOV glVertexAttrib1dFunPtr
-
-glVertexAttrib1dFunPtr :: FunPtr (GLuint -> GLdouble -> IO ())
-glVertexAttrib1dFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1d")
-
-{-# NOINLINE glVertexAttrib1dFunPtr #-}
-
--- | Usage: @'glVertexAttrib1dv' index v@
---
--- The length of @v@ should be @1@.
-
-
-glVertexAttrib1dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
-glVertexAttrib1dv = ffiuintPtrdoubleIOV glVertexAttrib1dvFunPtr
-
-glVertexAttrib1dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
-glVertexAttrib1dvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1dv")
-
-{-# NOINLINE glVertexAttrib1dvFunPtr #-}
-
--- | Usage: @'glVertexAttrib1f' index x@
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib1fv'.
-
-
-glVertexAttrib1f :: MonadIO m => GLuint -> GLfloat -> m ()
-glVertexAttrib1f = ffiuintfloatIOV glVertexAttrib1fFunPtr
-
-glVertexAttrib1fFunPtr :: FunPtr (GLuint -> GLfloat -> IO ())
-glVertexAttrib1fFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1f")
-
-{-# NOINLINE glVertexAttrib1fFunPtr #-}
-
--- | Usage: @'glVertexAttrib1fv' index v@
---
--- The length of @v@ should be @1@.
-
-
-glVertexAttrib1fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
-glVertexAttrib1fv = ffiuintPtrfloatIOV glVertexAttrib1fvFunPtr
-
-glVertexAttrib1fvFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
-glVertexAttrib1fvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1fv")
-
-{-# NOINLINE glVertexAttrib1fvFunPtr #-}
-
--- | Usage: @'glVertexAttrib1s' index x@
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib1sv'.
-
-
-glVertexAttrib1s :: MonadIO m => GLuint -> GLshort -> m ()
-glVertexAttrib1s = ffiuintshortIOV glVertexAttrib1sFunPtr
-
-glVertexAttrib1sFunPtr :: FunPtr (GLuint -> GLshort -> IO ())
-glVertexAttrib1sFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1s")
-
-{-# NOINLINE glVertexAttrib1sFunPtr #-}
-
--- | Usage: @'glVertexAttrib1sv' index v@
---
--- The length of @v@ should be @1@.
-
-
-glVertexAttrib1sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()
-glVertexAttrib1sv = ffiuintPtrshortIOV glVertexAttrib1svFunPtr
-
-glVertexAttrib1svFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
-glVertexAttrib1svFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1sv")
-
-{-# NOINLINE glVertexAttrib1svFunPtr #-}
-
--- | Usage: @'glVertexAttrib2d' index x y@
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib2dv'.
-
-
-glVertexAttrib2d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()
-glVertexAttrib2d = ffiuintdoubledoubleIOV glVertexAttrib2dFunPtr
-
-glVertexAttrib2dFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> IO ())
-glVertexAttrib2dFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2d")
-
-{-# NOINLINE glVertexAttrib2dFunPtr #-}
-
--- | Usage: @'glVertexAttrib2dv' index v@
---
--- The length of @v@ should be @2@.
-
-
-glVertexAttrib2dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
-glVertexAttrib2dv = ffiuintPtrdoubleIOV glVertexAttrib2dvFunPtr
-
-glVertexAttrib2dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
-glVertexAttrib2dvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2dv")
-
-{-# NOINLINE glVertexAttrib2dvFunPtr #-}
-
--- | Usage: @'glVertexAttrib2f' index x y@
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib2fv'.
-
-
-glVertexAttrib2f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()
-glVertexAttrib2f = ffiuintfloatfloatIOV glVertexAttrib2fFunPtr
-
-glVertexAttrib2fFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> IO ())
-glVertexAttrib2fFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2f")
-
-{-# NOINLINE glVertexAttrib2fFunPtr #-}
-
--- | Usage: @'glVertexAttrib2fv' index v@
---
--- The length of @v@ should be @2@.
-
-
-glVertexAttrib2fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
-glVertexAttrib2fv = ffiuintPtrfloatIOV glVertexAttrib2fvFunPtr
-
-glVertexAttrib2fvFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
-glVertexAttrib2fvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2fv")
-
-{-# NOINLINE glVertexAttrib2fvFunPtr #-}
-
--- | Usage: @'glVertexAttrib2s' index x y@
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib2sv'.
-
-
-glVertexAttrib2s :: MonadIO m => GLuint -> GLshort -> GLshort -> m ()
-glVertexAttrib2s = ffiuintshortshortIOV glVertexAttrib2sFunPtr
-
-glVertexAttrib2sFunPtr :: FunPtr (GLuint -> GLshort -> GLshort -> IO ())
-glVertexAttrib2sFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2s")
-
-{-# NOINLINE glVertexAttrib2sFunPtr #-}
-
--- | Usage: @'glVertexAttrib2sv' index v@
---
--- The length of @v@ should be @2@.
-
-
-glVertexAttrib2sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()
-glVertexAttrib2sv = ffiuintPtrshortIOV glVertexAttrib2svFunPtr
-
-glVertexAttrib2svFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
-glVertexAttrib2svFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2sv")
-
-{-# NOINLINE glVertexAttrib2svFunPtr #-}
-
--- | Usage: @'glVertexAttrib3d' index x y z@
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib3dv'.
-
-
-glVertexAttrib3d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()
-glVertexAttrib3d = ffiuintdoubledoubledoubleIOV glVertexAttrib3dFunPtr
-
-glVertexAttrib3dFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glVertexAttrib3dFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3d")
-
-{-# NOINLINE glVertexAttrib3dFunPtr #-}
-
--- | Usage: @'glVertexAttrib3dv' index v@
---
--- The length of @v@ should be @3@.
-
-
-glVertexAttrib3dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
-glVertexAttrib3dv = ffiuintPtrdoubleIOV glVertexAttrib3dvFunPtr
-
-glVertexAttrib3dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
-glVertexAttrib3dvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3dv")
-
-{-# NOINLINE glVertexAttrib3dvFunPtr #-}
-
--- | Usage: @'glVertexAttrib3f' index x y z@
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib3fv'.
-
-
-glVertexAttrib3f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()
-glVertexAttrib3f = ffiuintfloatfloatfloatIOV glVertexAttrib3fFunPtr
-
-glVertexAttrib3fFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glVertexAttrib3fFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3f")
-
-{-# NOINLINE glVertexAttrib3fFunPtr #-}
-
--- | Usage: @'glVertexAttrib3fv' index v@
---
--- The length of @v@ should be @3@.
-
-
-glVertexAttrib3fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
-glVertexAttrib3fv = ffiuintPtrfloatIOV glVertexAttrib3fvFunPtr
-
-glVertexAttrib3fvFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
-glVertexAttrib3fvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3fv")
-
-{-# NOINLINE glVertexAttrib3fvFunPtr #-}
-
--- | Usage: @'glVertexAttrib3s' index x y z@
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib3sv'.
-
-
-glVertexAttrib3s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> m ()
-glVertexAttrib3s = ffiuintshortshortshortIOV glVertexAttrib3sFunPtr
-
-glVertexAttrib3sFunPtr :: FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> IO ())
-glVertexAttrib3sFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3s")
-
-{-# NOINLINE glVertexAttrib3sFunPtr #-}
-
--- | Usage: @'glVertexAttrib3sv' index v@
---
--- The length of @v@ should be @3@.
-
-
-glVertexAttrib3sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()
-glVertexAttrib3sv = ffiuintPtrshortIOV glVertexAttrib3svFunPtr
-
-glVertexAttrib3svFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
-glVertexAttrib3svFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3sv")
-
-{-# NOINLINE glVertexAttrib3svFunPtr #-}
-
--- | Usage: @'glVertexAttrib4Nbv' index v@
---
--- The length of @v@ should be @4@.
-
-
-glVertexAttrib4Nbv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()
-glVertexAttrib4Nbv = ffiuintPtrbyteIOV glVertexAttrib4NbvFunPtr
-
-glVertexAttrib4NbvFunPtr :: FunPtr (GLuint -> Ptr GLbyte -> IO ())
-glVertexAttrib4NbvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4Nbv")
-
-{-# NOINLINE glVertexAttrib4NbvFunPtr #-}
-
--- | Usage: @'glVertexAttrib4Niv' index v@
---
--- The length of @v@ should be @4@.
-
-
-glVertexAttrib4Niv :: MonadIO m => GLuint -> Ptr GLint -> m ()
-glVertexAttrib4Niv = ffiuintPtrintIOV glVertexAttrib4NivFunPtr
-
-glVertexAttrib4NivFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
-glVertexAttrib4NivFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4Niv")
-
-{-# NOINLINE glVertexAttrib4NivFunPtr #-}
-
--- | Usage: @'glVertexAttrib4Nsv' index v@
---
--- The length of @v@ should be @4@.
-
-
-glVertexAttrib4Nsv :: MonadIO m => GLuint -> Ptr GLshort -> m ()
-glVertexAttrib4Nsv = ffiuintPtrshortIOV glVertexAttrib4NsvFunPtr
-
-glVertexAttrib4NsvFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
-glVertexAttrib4NsvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4Nsv")
-
-{-# NOINLINE glVertexAttrib4NsvFunPtr #-}
-
--- | Usage: @'glVertexAttrib4Nub' index x y z w@
-
-
-glVertexAttrib4Nub :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()
-glVertexAttrib4Nub = ffiuintubyteubyteubyteubyteIOV glVertexAttrib4NubFunPtr
-
-glVertexAttrib4NubFunPtr :: FunPtr (GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> IO ())
-glVertexAttrib4NubFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4Nub")
-
-{-# NOINLINE glVertexAttrib4NubFunPtr #-}
-
--- | Usage: @'glVertexAttrib4Nubv' index v@
---
--- The length of @v@ should be @4@.
-
-
-glVertexAttrib4Nubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()
-glVertexAttrib4Nubv = ffiuintPtrubyteIOV glVertexAttrib4NubvFunPtr
-
-glVertexAttrib4NubvFunPtr :: FunPtr (GLuint -> Ptr GLubyte -> IO ())
-glVertexAttrib4NubvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4Nubv")
-
-{-# NOINLINE glVertexAttrib4NubvFunPtr #-}
-
--- | Usage: @'glVertexAttrib4Nuiv' index v@
---
--- The length of @v@ should be @4@.
-
-
-glVertexAttrib4Nuiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()
-glVertexAttrib4Nuiv = ffiuintPtruintIOV glVertexAttrib4NuivFunPtr
-
-glVertexAttrib4NuivFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
-glVertexAttrib4NuivFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4Nuiv")
-
-{-# NOINLINE glVertexAttrib4NuivFunPtr #-}
-
--- | Usage: @'glVertexAttrib4Nusv' index v@
---
--- The length of @v@ should be @4@.
-
-
-glVertexAttrib4Nusv :: MonadIO m => GLuint -> Ptr GLushort -> m ()
-glVertexAttrib4Nusv = ffiuintPtrushortIOV glVertexAttrib4NusvFunPtr
-
-glVertexAttrib4NusvFunPtr :: FunPtr (GLuint -> Ptr GLushort -> IO ())
-glVertexAttrib4NusvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4Nusv")
-
-{-# NOINLINE glVertexAttrib4NusvFunPtr #-}
-
--- | Usage: @'glVertexAttrib4bv' index v@
---
--- The length of @v@ should be @4@.
-
-
-glVertexAttrib4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()
-glVertexAttrib4bv = ffiuintPtrbyteIOV glVertexAttrib4bvFunPtr
-
-glVertexAttrib4bvFunPtr :: FunPtr (GLuint -> Ptr GLbyte -> IO ())
-glVertexAttrib4bvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4bv")
-
-{-# NOINLINE glVertexAttrib4bvFunPtr #-}
-
--- | Usage: @'glVertexAttrib4d' index x y z w@
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib4dv'.
-
-
-glVertexAttrib4d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-glVertexAttrib4d = ffiuintdoubledoubledoubledoubleIOV glVertexAttrib4dFunPtr
-
-glVertexAttrib4dFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glVertexAttrib4dFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4d")
-
-{-# NOINLINE glVertexAttrib4dFunPtr #-}
-
--- | Usage: @'glVertexAttrib4dv' index v@
---
--- The length of @v@ should be @4@.
-
-
-glVertexAttrib4dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
-glVertexAttrib4dv = ffiuintPtrdoubleIOV glVertexAttrib4dvFunPtr
-
-glVertexAttrib4dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
-glVertexAttrib4dvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4dv")
-
-{-# NOINLINE glVertexAttrib4dvFunPtr #-}
-
--- | Usage: @'glVertexAttrib4f' index x y z w@
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib4fv'.
-
-
-glVertexAttrib4f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glVertexAttrib4f = ffiuintfloatfloatfloatfloatIOV glVertexAttrib4fFunPtr
-
-glVertexAttrib4fFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glVertexAttrib4fFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4f")
-
-{-# NOINLINE glVertexAttrib4fFunPtr #-}
-
--- | Usage: @'glVertexAttrib4fv' index v@
---
--- The length of @v@ should be @4@.
-
-
-glVertexAttrib4fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
-glVertexAttrib4fv = ffiuintPtrfloatIOV glVertexAttrib4fvFunPtr
-
-glVertexAttrib4fvFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
-glVertexAttrib4fvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4fv")
-
-{-# NOINLINE glVertexAttrib4fvFunPtr #-}
-
--- | Usage: @'glVertexAttrib4iv' index v@
---
--- The length of @v@ should be @4@.
-
-
-glVertexAttrib4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()
-glVertexAttrib4iv = ffiuintPtrintIOV glVertexAttrib4ivFunPtr
-
-glVertexAttrib4ivFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
-glVertexAttrib4ivFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4iv")
-
-{-# NOINLINE glVertexAttrib4ivFunPtr #-}
-
--- | Usage: @'glVertexAttrib4s' index x y z w@
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib4sv'.
-
-
-glVertexAttrib4s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m ()
-glVertexAttrib4s = ffiuintshortshortshortshortIOV glVertexAttrib4sFunPtr
-
-glVertexAttrib4sFunPtr :: FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> IO ())
-glVertexAttrib4sFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4s")
-
-{-# NOINLINE glVertexAttrib4sFunPtr #-}
-
--- | Usage: @'glVertexAttrib4sv' index v@
---
--- The length of @v@ should be @4@.
-
-
-glVertexAttrib4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()
-glVertexAttrib4sv = ffiuintPtrshortIOV glVertexAttrib4svFunPtr
-
-glVertexAttrib4svFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
-glVertexAttrib4svFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4sv")
-
-{-# NOINLINE glVertexAttrib4svFunPtr #-}
-
--- | Usage: @'glVertexAttrib4ubv' index v@
---
--- The length of @v@ should be @4@.
-
-
-glVertexAttrib4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()
-glVertexAttrib4ubv = ffiuintPtrubyteIOV glVertexAttrib4ubvFunPtr
-
-glVertexAttrib4ubvFunPtr :: FunPtr (GLuint -> Ptr GLubyte -> IO ())
-glVertexAttrib4ubvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4ubv")
-
-{-# NOINLINE glVertexAttrib4ubvFunPtr #-}
-
--- | Usage: @'glVertexAttrib4uiv' index v@
---
--- The length of @v@ should be @4@.
-
-
-glVertexAttrib4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()
-glVertexAttrib4uiv = ffiuintPtruintIOV glVertexAttrib4uivFunPtr
-
-glVertexAttrib4uivFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
-glVertexAttrib4uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4uiv")
-
-{-# NOINLINE glVertexAttrib4uivFunPtr #-}
-
--- | Usage: @'glVertexAttrib4usv' index v@
---
--- The length of @v@ should be @4@.
-
-
-glVertexAttrib4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()
-glVertexAttrib4usv = ffiuintPtrushortIOV glVertexAttrib4usvFunPtr
-
-glVertexAttrib4usvFunPtr :: FunPtr (GLuint -> Ptr GLushort -> IO ())
-glVertexAttrib4usvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4usv")
-
-{-# NOINLINE glVertexAttrib4usvFunPtr #-}
-
--- | Usage: @'glVertexAttribI1i' index x@
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttribI1iv'.
-
-
-glVertexAttribI1i :: MonadIO m => GLuint -> GLint -> m ()
-glVertexAttribI1i = ffiuintintIOV glVertexAttribI1iFunPtr
-
-glVertexAttribI1iFunPtr :: FunPtr (GLuint -> GLint -> IO ())
-glVertexAttribI1iFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI1i")
-
-{-# NOINLINE glVertexAttribI1iFunPtr #-}
-
--- | Usage: @'glVertexAttribI1iv' index v@
---
--- The length of @v@ should be @1@.
-
-
-glVertexAttribI1iv :: MonadIO m => GLuint -> Ptr GLint -> m ()
-glVertexAttribI1iv = ffiuintPtrintIOV glVertexAttribI1ivFunPtr
-
-glVertexAttribI1ivFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
-glVertexAttribI1ivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI1iv")
-
-{-# NOINLINE glVertexAttribI1ivFunPtr #-}
-
--- | Usage: @'glVertexAttribI1ui' index x@
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttribI1uiv'.
-
-
-glVertexAttribI1ui :: MonadIO m => GLuint -> GLuint -> m ()
-glVertexAttribI1ui = ffiuintuintIOV glVertexAttribI1uiFunPtr
-
-glVertexAttribI1uiFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
-glVertexAttribI1uiFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI1ui")
-
-{-# NOINLINE glVertexAttribI1uiFunPtr #-}
-
--- | Usage: @'glVertexAttribI1uiv' index v@
---
--- The length of @v@ should be @1@.
-
-
-glVertexAttribI1uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()
-glVertexAttribI1uiv = ffiuintPtruintIOV glVertexAttribI1uivFunPtr
-
-glVertexAttribI1uivFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
-glVertexAttribI1uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI1uiv")
-
-{-# NOINLINE glVertexAttribI1uivFunPtr #-}
-
--- | Usage: @'glVertexAttribI2i' index x y@
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttribI2iv'.
-
-
-glVertexAttribI2i :: MonadIO m => GLuint -> GLint -> GLint -> m ()
-glVertexAttribI2i = ffiuintintintIOV glVertexAttribI2iFunPtr
-
-glVertexAttribI2iFunPtr :: FunPtr (GLuint -> GLint -> GLint -> IO ())
-glVertexAttribI2iFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI2i")
-
-{-# NOINLINE glVertexAttribI2iFunPtr #-}
-
--- | Usage: @'glVertexAttribI2iv' index v@
---
--- The length of @v@ should be @2@.
-
-
-glVertexAttribI2iv :: MonadIO m => GLuint -> Ptr GLint -> m ()
-glVertexAttribI2iv = ffiuintPtrintIOV glVertexAttribI2ivFunPtr
-
-glVertexAttribI2ivFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
-glVertexAttribI2ivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI2iv")
-
-{-# NOINLINE glVertexAttribI2ivFunPtr #-}
-
--- | Usage: @'glVertexAttribI2ui' index x y@
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttribI2uiv'.
-
-
-glVertexAttribI2ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
-glVertexAttribI2ui = ffiuintuintuintIOV glVertexAttribI2uiFunPtr
-
-glVertexAttribI2uiFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
-glVertexAttribI2uiFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI2ui")
-
-{-# NOINLINE glVertexAttribI2uiFunPtr #-}
-
--- | Usage: @'glVertexAttribI2uiv' index v@
---
--- The length of @v@ should be @2@.
-
-
-glVertexAttribI2uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()
-glVertexAttribI2uiv = ffiuintPtruintIOV glVertexAttribI2uivFunPtr
-
-glVertexAttribI2uivFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
-glVertexAttribI2uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI2uiv")
-
-{-# NOINLINE glVertexAttribI2uivFunPtr #-}
-
--- | Usage: @'glVertexAttribI3i' index x y z@
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttribI3iv'.
-
-
-glVertexAttribI3i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()
-glVertexAttribI3i = ffiuintintintintIOV glVertexAttribI3iFunPtr
-
-glVertexAttribI3iFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> IO ())
-glVertexAttribI3iFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI3i")
-
-{-# NOINLINE glVertexAttribI3iFunPtr #-}
-
--- | Usage: @'glVertexAttribI3iv' index v@
---
--- The length of @v@ should be @3@.
-
-
-glVertexAttribI3iv :: MonadIO m => GLuint -> Ptr GLint -> m ()
-glVertexAttribI3iv = ffiuintPtrintIOV glVertexAttribI3ivFunPtr
-
-glVertexAttribI3ivFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
-glVertexAttribI3ivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI3iv")
-
-{-# NOINLINE glVertexAttribI3ivFunPtr #-}
-
--- | Usage: @'glVertexAttribI3ui' index x y z@
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttribI3uiv'.
-
-
-glVertexAttribI3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()
-glVertexAttribI3ui = ffiuintuintuintuintIOV glVertexAttribI3uiFunPtr
-
-glVertexAttribI3uiFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> IO ())
-glVertexAttribI3uiFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI3ui")
-
-{-# NOINLINE glVertexAttribI3uiFunPtr #-}
-
--- | Usage: @'glVertexAttribI3uiv' index v@
---
--- The length of @v@ should be @3@.
-
-
-glVertexAttribI3uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()
-glVertexAttribI3uiv = ffiuintPtruintIOV glVertexAttribI3uivFunPtr
-
-glVertexAttribI3uivFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
-glVertexAttribI3uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI3uiv")
-
-{-# NOINLINE glVertexAttribI3uivFunPtr #-}
-
--- | Usage: @'glVertexAttribI4bv' index v@
---
--- The length of @v@ should be @4@.
-
-
-glVertexAttribI4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()
-glVertexAttribI4bv = ffiuintPtrbyteIOV glVertexAttribI4bvFunPtr
-
-glVertexAttribI4bvFunPtr :: FunPtr (GLuint -> Ptr GLbyte -> IO ())
-glVertexAttribI4bvFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4bv")
-
-{-# NOINLINE glVertexAttribI4bvFunPtr #-}
-
--- | Usage: @'glVertexAttribI4i' index x y z w@
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttribI4iv'.
-
-
-glVertexAttribI4i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
-glVertexAttribI4i = ffiuintintintintintIOV glVertexAttribI4iFunPtr
-
-glVertexAttribI4iFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
-glVertexAttribI4iFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4i")
-
-{-# NOINLINE glVertexAttribI4iFunPtr #-}
-
--- | Usage: @'glVertexAttribI4iv' index v@
---
--- The length of @v@ should be @4@.
-
-
-glVertexAttribI4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()
-glVertexAttribI4iv = ffiuintPtrintIOV glVertexAttribI4ivFunPtr
-
-glVertexAttribI4ivFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
-glVertexAttribI4ivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4iv")
-
-{-# NOINLINE glVertexAttribI4ivFunPtr #-}
-
--- | Usage: @'glVertexAttribI4sv' index v@
---
--- The length of @v@ should be @4@.
-
-
-glVertexAttribI4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()
-glVertexAttribI4sv = ffiuintPtrshortIOV glVertexAttribI4svFunPtr
-
-glVertexAttribI4svFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
-glVertexAttribI4svFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4sv")
-
-{-# NOINLINE glVertexAttribI4svFunPtr #-}
-
--- | Usage: @'glVertexAttribI4ubv' index v@
---
--- The length of @v@ should be @4@.
-
-
-glVertexAttribI4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()
-glVertexAttribI4ubv = ffiuintPtrubyteIOV glVertexAttribI4ubvFunPtr
-
-glVertexAttribI4ubvFunPtr :: FunPtr (GLuint -> Ptr GLubyte -> IO ())
-glVertexAttribI4ubvFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4ubv")
-
-{-# NOINLINE glVertexAttribI4ubvFunPtr #-}
-
--- | Usage: @'glVertexAttribI4ui' index x y z w@
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttribI4uiv'.
-
-
-glVertexAttribI4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
-glVertexAttribI4ui = ffiuintuintuintuintuintIOV glVertexAttribI4uiFunPtr
-
-glVertexAttribI4uiFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
-glVertexAttribI4uiFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4ui")
-
-{-# NOINLINE glVertexAttribI4uiFunPtr #-}
-
--- | Usage: @'glVertexAttribI4uiv' index v@
---
--- The length of @v@ should be @4@.
-
-
-glVertexAttribI4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()
-glVertexAttribI4uiv = ffiuintPtruintIOV glVertexAttribI4uivFunPtr
-
-glVertexAttribI4uivFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
-glVertexAttribI4uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4uiv")
-
-{-# NOINLINE glVertexAttribI4uivFunPtr #-}
-
--- | Usage: @'glVertexAttribI4usv' index v@
---
--- The length of @v@ should be @4@.
-
-
-glVertexAttribI4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()
-glVertexAttribI4usv = ffiuintPtrushortIOV glVertexAttribI4usvFunPtr
-
-glVertexAttribI4usvFunPtr :: FunPtr (GLuint -> Ptr GLushort -> IO ())
-glVertexAttribI4usvFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4usv")
-
-{-# NOINLINE glVertexAttribI4usvFunPtr #-}
-
--- | Usage: @'glVertexAttribIPointer' index size type stride pointer@
---
--- The parameter @type@ is a @VertexAttribEnum@.
---
--- The length of @pointer@ should be @COMPSIZE(size,type,stride)@.
-
-
-glVertexAttribIPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> m ()
-glVertexAttribIPointer = ffiuintintenumsizeiPtrVIOV glVertexAttribIPointerFunPtr
-
-glVertexAttribIPointerFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
-glVertexAttribIPointerFunPtr = unsafePerformIO (getProcAddress "glVertexAttribIPointer")
-
-{-# NOINLINE glVertexAttribIPointerFunPtr #-}
-
--- | Usage: @'glVertexAttribPointer' index size type normalized stride pointer@
---
--- The parameter @type@ is a @VertexAttribPointerType@.
---
--- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @pointer@ should be @COMPSIZE(size,type,stride)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glVertexAttribPointer.xhtml>
-
-
-glVertexAttribPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr () -> m ()
-glVertexAttribPointer = ffiuintintenumbooleansizeiPtrVIOV glVertexAttribPointerFunPtr
-
-glVertexAttribPointerFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr () -> IO ())
-glVertexAttribPointerFunPtr = unsafePerformIO (getProcAddress "glVertexAttribPointer")
-
-{-# NOINLINE glVertexAttribPointerFunPtr #-}
-
--- | Usage: @'glViewport' x y width height@
---
--- The parameter @x@ is a @WinCoord@.
---
--- The parameter @y@ is a @WinCoord@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glViewport.xhtml>
-
-
-glViewport :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()
-glViewport = ffiintintsizeisizeiIOV glViewportFunPtr
-
-glViewportFunPtr :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> IO ())
-glViewportFunPtr = unsafePerformIO (getProcAddress "glViewport")
-
-{-# NOINLINE glViewportFunPtr #-}
-
--- | Usage: @'glWaitSync' sync flags timeout@
---
--- The parameter @sync@ is a @sync@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glWaitSync.xhtml>
-
-
-glWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m ()
-glWaitSync = ffisyncbitfielduint64IOV glWaitSyncFunPtr
-
-glWaitSyncFunPtr :: FunPtr (GLsync -> GLbitfield -> GLuint64 -> IO ())
-glWaitSyncFunPtr = unsafePerformIO (getProcAddress "glWaitSync")
-
-{-# NOINLINE glWaitSyncFunPtr #-}
-
-pattern GL_ACTIVE_ATTRIBUTES = 0x8B89
-
-pattern GL_ACTIVE_ATTRIBUTE_MAX_LENGTH = 0x8B8A
-
-pattern GL_ACTIVE_TEXTURE = 0x84E0
-
-pattern GL_ACTIVE_UNIFORMS = 0x8B86
-
-pattern GL_ACTIVE_UNIFORM_BLOCKS = 0x8A36
-
-pattern GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH = 0x8A35
-
-pattern GL_ACTIVE_UNIFORM_MAX_LENGTH = 0x8B87
-
-pattern GL_ALIASED_LINE_WIDTH_RANGE = 0x846E
-
-pattern GL_ALPHA = 0x1906
-
-pattern GL_ALREADY_SIGNALED = 0x911A
-
-pattern GL_ALWAYS = 0x0207
-
-pattern GL_AND = 0x1501
-
-pattern GL_AND_INVERTED = 0x1504
-
-pattern GL_AND_REVERSE = 0x1502
-
-pattern GL_ARRAY_BUFFER = 0x8892
-
-pattern GL_ARRAY_BUFFER_BINDING = 0x8894
-
-pattern GL_ATTACHED_SHADERS = 0x8B85
-
-pattern GL_BACK = 0x0405
-
-pattern GL_BACK_LEFT = 0x0402
-
-pattern GL_BACK_RIGHT = 0x0403
-
-pattern GL_BGR = 0x80E0
-
-pattern GL_BGRA = 0x80E1
-
-pattern GL_BGRA_INTEGER = 0x8D9B
-
-pattern GL_BGR_INTEGER = 0x8D9A
-
-pattern GL_BLEND = 0x0BE2
-
-pattern GL_BLEND_COLOR = 0x8005
-
-pattern GL_BLEND_DST = 0x0BE0
-
-pattern GL_BLEND_DST_ALPHA = 0x80CA
-
-pattern GL_BLEND_DST_RGB = 0x80C8
-
-pattern GL_BLEND_EQUATION_ALPHA = 0x883D
-
-pattern GL_BLEND_EQUATION_RGB = 0x8009
-
-pattern GL_BLEND_SRC = 0x0BE1
-
-pattern GL_BLEND_SRC_ALPHA = 0x80CB
-
-pattern GL_BLEND_SRC_RGB = 0x80C9
-
-pattern GL_BLUE = 0x1905
-
-pattern GL_BLUE_INTEGER = 0x8D96
-
-pattern GL_BOOL = 0x8B56
-
-pattern GL_BOOL_VEC2 = 0x8B57
-
-pattern GL_BOOL_VEC3 = 0x8B58
-
-pattern GL_BOOL_VEC4 = 0x8B59
-
-pattern GL_BUFFER_ACCESS = 0x88BB
-
-pattern GL_BUFFER_ACCESS_FLAGS = 0x911F
-
-pattern GL_BUFFER_MAPPED = 0x88BC
-
-pattern GL_BUFFER_MAP_LENGTH = 0x9120
-
-pattern GL_BUFFER_MAP_OFFSET = 0x9121
-
-pattern GL_BUFFER_MAP_POINTER = 0x88BD
-
-pattern GL_BUFFER_SIZE = 0x8764
-
-pattern GL_BUFFER_USAGE = 0x8765
-
-pattern GL_BYTE = 0x1400
-
-pattern GL_CCW = 0x0901
-
-pattern GL_CLAMP_READ_COLOR = 0x891C
-
-pattern GL_CLAMP_TO_BORDER = 0x812D
-
-pattern GL_CLAMP_TO_EDGE = 0x812F
-
-pattern GL_CLEAR = 0x1500
-
-pattern GL_CLIP_DISTANCE0 = 0x3000
-
-pattern GL_CLIP_DISTANCE1 = 0x3001
-
-pattern GL_CLIP_DISTANCE2 = 0x3002
-
-pattern GL_CLIP_DISTANCE3 = 0x3003
-
-pattern GL_CLIP_DISTANCE4 = 0x3004
-
-pattern GL_CLIP_DISTANCE5 = 0x3005
-
-pattern GL_CLIP_DISTANCE6 = 0x3006
-
-pattern GL_CLIP_DISTANCE7 = 0x3007
-
-pattern GL_COLOR = 0x1800
-
-pattern GL_COLOR_ATTACHMENT0 = 0x8CE0
-
-pattern GL_COLOR_ATTACHMENT1 = 0x8CE1
-
-pattern GL_COLOR_ATTACHMENT10 = 0x8CEA
-
-pattern GL_COLOR_ATTACHMENT11 = 0x8CEB
-
-pattern GL_COLOR_ATTACHMENT12 = 0x8CEC
-
-pattern GL_COLOR_ATTACHMENT13 = 0x8CED
-
-pattern GL_COLOR_ATTACHMENT14 = 0x8CEE
-
-pattern GL_COLOR_ATTACHMENT15 = 0x8CEF
-
-pattern GL_COLOR_ATTACHMENT16 = 0x8CF0
-
-pattern GL_COLOR_ATTACHMENT17 = 0x8CF1
-
-pattern GL_COLOR_ATTACHMENT18 = 0x8CF2
-
-pattern GL_COLOR_ATTACHMENT19 = 0x8CF3
-
-pattern GL_COLOR_ATTACHMENT2 = 0x8CE2
-
-pattern GL_COLOR_ATTACHMENT20 = 0x8CF4
-
-pattern GL_COLOR_ATTACHMENT21 = 0x8CF5
-
-pattern GL_COLOR_ATTACHMENT22 = 0x8CF6
-
-pattern GL_COLOR_ATTACHMENT23 = 0x8CF7
-
-pattern GL_COLOR_ATTACHMENT24 = 0x8CF8
-
-pattern GL_COLOR_ATTACHMENT25 = 0x8CF9
-
-pattern GL_COLOR_ATTACHMENT26 = 0x8CFA
-
-pattern GL_COLOR_ATTACHMENT27 = 0x8CFB
-
-pattern GL_COLOR_ATTACHMENT28 = 0x8CFC
-
-pattern GL_COLOR_ATTACHMENT29 = 0x8CFD
-
-pattern GL_COLOR_ATTACHMENT3 = 0x8CE3
-
-pattern GL_COLOR_ATTACHMENT30 = 0x8CFE
-
-pattern GL_COLOR_ATTACHMENT31 = 0x8CFF
-
-pattern GL_COLOR_ATTACHMENT4 = 0x8CE4
-
-pattern GL_COLOR_ATTACHMENT5 = 0x8CE5
-
-pattern GL_COLOR_ATTACHMENT6 = 0x8CE6
-
-pattern GL_COLOR_ATTACHMENT7 = 0x8CE7
-
-pattern GL_COLOR_ATTACHMENT8 = 0x8CE8
-
-pattern GL_COLOR_ATTACHMENT9 = 0x8CE9
-
-pattern GL_COLOR_BUFFER_BIT = 0x00004000
-
-pattern GL_COLOR_CLEAR_VALUE = 0x0C22
-
-pattern GL_COLOR_LOGIC_OP = 0x0BF2
-
-pattern GL_COLOR_WRITEMASK = 0x0C23
-
-pattern GL_COMPARE_REF_TO_TEXTURE = 0x884E
-
-pattern GL_COMPILE_STATUS = 0x8B81
-
-pattern GL_COMPRESSED_RED = 0x8225
-
-pattern GL_COMPRESSED_RED_RGTC1 = 0x8DBB
-
-pattern GL_COMPRESSED_RG = 0x8226
-
-pattern GL_COMPRESSED_RGB = 0x84ED
-
-pattern GL_COMPRESSED_RGBA = 0x84EE
-
-pattern GL_COMPRESSED_RG_RGTC2 = 0x8DBD
-
-pattern GL_COMPRESSED_SIGNED_RED_RGTC1 = 0x8DBC
-
-pattern GL_COMPRESSED_SIGNED_RG_RGTC2 = 0x8DBE
-
-pattern GL_COMPRESSED_SRGB = 0x8C48
-
-pattern GL_COMPRESSED_SRGB_ALPHA = 0x8C49
-
-pattern GL_COMPRESSED_TEXTURE_FORMATS = 0x86A3
-
-pattern GL_CONDITION_SATISFIED = 0x911C
-
-pattern GL_CONSTANT_ALPHA = 0x8003
-
-pattern GL_CONSTANT_COLOR = 0x8001
-
-pattern GL_CONTEXT_FLAGS = 0x821E
-
-pattern GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT = 0x00000001
-
-pattern GL_COPY = 0x1503
-
-pattern GL_COPY_INVERTED = 0x150C
-
-pattern GL_COPY_READ_BUFFER = 0x8F36
-
-pattern GL_COPY_WRITE_BUFFER = 0x8F37
-
-pattern GL_CULL_FACE = 0x0B44
-
-pattern GL_CULL_FACE_MODE = 0x0B45
-
-pattern GL_CURRENT_PROGRAM = 0x8B8D
-
-pattern GL_CURRENT_QUERY = 0x8865
-
-pattern GL_CURRENT_VERTEX_ATTRIB = 0x8626
-
-pattern GL_CW = 0x0900
-
-pattern GL_DECR = 0x1E03
-
-pattern GL_DECR_WRAP = 0x8508
-
-pattern GL_DELETE_STATUS = 0x8B80
-
-pattern GL_DEPTH = 0x1801
-
-pattern GL_DEPTH24_STENCIL8 = 0x88F0
-
-pattern GL_DEPTH32F_STENCIL8 = 0x8CAD
-
-pattern GL_DEPTH_ATTACHMENT = 0x8D00
-
-pattern GL_DEPTH_BUFFER_BIT = 0x00000100
-
-pattern GL_DEPTH_CLAMP = 0x864F
-
-pattern GL_DEPTH_CLEAR_VALUE = 0x0B73
-
-pattern GL_DEPTH_COMPONENT = 0x1902
-
-pattern GL_DEPTH_COMPONENT16 = 0x81A5
-
-pattern GL_DEPTH_COMPONENT24 = 0x81A6
-
-pattern GL_DEPTH_COMPONENT32 = 0x81A7
-
-pattern GL_DEPTH_COMPONENT32F = 0x8CAC
-
-pattern GL_DEPTH_FUNC = 0x0B74
-
-pattern GL_DEPTH_RANGE = 0x0B70
-
-pattern GL_DEPTH_STENCIL = 0x84F9
-
-pattern GL_DEPTH_STENCIL_ATTACHMENT = 0x821A
-
-pattern GL_DEPTH_TEST = 0x0B71
-
-pattern GL_DEPTH_WRITEMASK = 0x0B72
-
-pattern GL_DITHER = 0x0BD0
-
-pattern GL_DONT_CARE = 0x1100
-
-pattern GL_DOUBLE = 0x140A
-
-pattern GL_DOUBLEBUFFER = 0x0C32
-
-pattern GL_DRAW_BUFFER = 0x0C01
-
-pattern GL_DRAW_BUFFER0 = 0x8825
-
-pattern GL_DRAW_BUFFER1 = 0x8826
-
-pattern GL_DRAW_BUFFER10 = 0x882F
-
-pattern GL_DRAW_BUFFER11 = 0x8830
-
-pattern GL_DRAW_BUFFER12 = 0x8831
-
-pattern GL_DRAW_BUFFER13 = 0x8832
-
-pattern GL_DRAW_BUFFER14 = 0x8833
-
-pattern GL_DRAW_BUFFER15 = 0x8834
-
-pattern GL_DRAW_BUFFER2 = 0x8827
-
-pattern GL_DRAW_BUFFER3 = 0x8828
-
-pattern GL_DRAW_BUFFER4 = 0x8829
-
-pattern GL_DRAW_BUFFER5 = 0x882A
-
-pattern GL_DRAW_BUFFER6 = 0x882B
-
-pattern GL_DRAW_BUFFER7 = 0x882C
-
-pattern GL_DRAW_BUFFER8 = 0x882D
-
-pattern GL_DRAW_BUFFER9 = 0x882E
-
-pattern GL_DRAW_FRAMEBUFFER = 0x8CA9
-
-pattern GL_DRAW_FRAMEBUFFER_BINDING = 0x8CA6
-
-pattern GL_DST_ALPHA = 0x0304
-
-pattern GL_DST_COLOR = 0x0306
-
-pattern GL_DYNAMIC_COPY = 0x88EA
-
-pattern GL_DYNAMIC_DRAW = 0x88E8
-
-pattern GL_DYNAMIC_READ = 0x88E9
-
-pattern GL_ELEMENT_ARRAY_BUFFER = 0x8893
-
-pattern GL_ELEMENT_ARRAY_BUFFER_BINDING = 0x8895
-
-pattern GL_EQUAL = 0x0202
-
-pattern GL_EQUIV = 0x1509
-
-pattern GL_EXTENSIONS = 0x1F03
-
-pattern GL_FALSE = 0
-
-pattern GL_FASTEST = 0x1101
-
-pattern GL_FILL = 0x1B02
-
-pattern GL_FIRST_VERTEX_CONVENTION = 0x8E4D
-
-pattern GL_FIXED_ONLY = 0x891D
-
-pattern GL_FLOAT = 0x1406
-
-pattern GL_FLOAT_32_UNSIGNED_INT_24_8_REV = 0x8DAD
-
-pattern GL_FLOAT_MAT2 = 0x8B5A
-
-pattern GL_FLOAT_MAT2x3 = 0x8B65
-
-pattern GL_FLOAT_MAT2x4 = 0x8B66
-
-pattern GL_FLOAT_MAT3 = 0x8B5B
-
-pattern GL_FLOAT_MAT3x2 = 0x8B67
-
-pattern GL_FLOAT_MAT3x4 = 0x8B68
-
-pattern GL_FLOAT_MAT4 = 0x8B5C
-
-pattern GL_FLOAT_MAT4x2 = 0x8B69
-
-pattern GL_FLOAT_MAT4x3 = 0x8B6A
-
-pattern GL_FLOAT_VEC2 = 0x8B50
-
-pattern GL_FLOAT_VEC3 = 0x8B51
-
-pattern GL_FLOAT_VEC4 = 0x8B52
-
-pattern GL_FRAGMENT_SHADER = 0x8B30
-
-pattern GL_FRAGMENT_SHADER_DERIVATIVE_HINT = 0x8B8B
-
-pattern GL_FRAMEBUFFER = 0x8D40
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = 0x8215
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = 0x8214
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = 0x8210
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = 0x8211
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = 0x8216
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = 0x8213
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED = 0x8DA7
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8CD1
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8CD0
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE = 0x8212
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = 0x8217
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = 0x8CD4
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8CD2
-
-pattern GL_FRAMEBUFFER_BINDING = 0x8CA6
-
-pattern GL_FRAMEBUFFER_COMPLETE = 0x8CD5
-
-pattern GL_FRAMEBUFFER_DEFAULT = 0x8218
-
-pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6
-
-pattern GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER = 0x8CDB
-
-pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS = 0x8DA8
-
-pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7
-
-pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = 0x8D56
-
-pattern GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER = 0x8CDC
-
-pattern GL_FRAMEBUFFER_SRGB = 0x8DB9
-
-pattern GL_FRAMEBUFFER_UNDEFINED = 0x8219
-
-pattern GL_FRAMEBUFFER_UNSUPPORTED = 0x8CDD
-
-pattern GL_FRONT = 0x0404
-
-pattern GL_FRONT_AND_BACK = 0x0408
-
-pattern GL_FRONT_FACE = 0x0B46
-
-pattern GL_FRONT_LEFT = 0x0400
-
-pattern GL_FRONT_RIGHT = 0x0401
-
-pattern GL_FUNC_ADD = 0x8006
-
-pattern GL_FUNC_REVERSE_SUBTRACT = 0x800B
-
-pattern GL_FUNC_SUBTRACT = 0x800A
-
-pattern GL_GEOMETRY_INPUT_TYPE = 0x8917
-
-pattern GL_GEOMETRY_OUTPUT_TYPE = 0x8918
-
-pattern GL_GEOMETRY_SHADER = 0x8DD9
-
-pattern GL_GEOMETRY_VERTICES_OUT = 0x8916
-
-pattern GL_GEQUAL = 0x0206
-
-pattern GL_GREATER = 0x0204
-
-pattern GL_GREEN = 0x1904
-
-pattern GL_GREEN_INTEGER = 0x8D95
-
-pattern GL_HALF_FLOAT = 0x140B
-
-pattern GL_INCR = 0x1E02
-
-pattern GL_INCR_WRAP = 0x8507
-
-pattern GL_INDEX = 0x8222
-
-pattern GL_INFO_LOG_LENGTH = 0x8B84
-
-pattern GL_INT = 0x1404
-
-pattern GL_INTERLEAVED_ATTRIBS = 0x8C8C
-
-pattern GL_INT_SAMPLER_1D = 0x8DC9
-
-pattern GL_INT_SAMPLER_1D_ARRAY = 0x8DCE
-
-pattern GL_INT_SAMPLER_2D = 0x8DCA
-
-pattern GL_INT_SAMPLER_2D_ARRAY = 0x8DCF
-
-pattern GL_INT_SAMPLER_2D_MULTISAMPLE = 0x9109
-
-pattern GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910C
-
-pattern GL_INT_SAMPLER_2D_RECT = 0x8DCD
-
-pattern GL_INT_SAMPLER_3D = 0x8DCB
-
-pattern GL_INT_SAMPLER_BUFFER = 0x8DD0
-
-pattern GL_INT_SAMPLER_CUBE = 0x8DCC
-
-pattern GL_INT_VEC2 = 0x8B53
-
-pattern GL_INT_VEC3 = 0x8B54
-
-pattern GL_INT_VEC4 = 0x8B55
-
-pattern GL_INVALID_ENUM = 0x0500
-
-pattern GL_INVALID_FRAMEBUFFER_OPERATION = 0x0506
-
-pattern GL_INVALID_INDEX = 0xFFFFFFFF
-
-pattern GL_INVALID_OPERATION = 0x0502
-
-pattern GL_INVALID_VALUE = 0x0501
-
-pattern GL_INVERT = 0x150A
-
-pattern GL_KEEP = 0x1E00
-
-pattern GL_LAST_VERTEX_CONVENTION = 0x8E4E
-
-pattern GL_LEFT = 0x0406
-
-pattern GL_LEQUAL = 0x0203
-
-pattern GL_LESS = 0x0201
-
-pattern GL_LINE = 0x1B01
-
-pattern GL_LINEAR = 0x2601
-
-pattern GL_LINEAR_MIPMAP_LINEAR = 0x2703
-
-pattern GL_LINEAR_MIPMAP_NEAREST = 0x2701
-
-pattern GL_LINES = 0x0001
-
-pattern GL_LINES_ADJACENCY = 0x000A
-
-pattern GL_LINE_LOOP = 0x0002
-
-pattern GL_LINE_SMOOTH = 0x0B20
-
-pattern GL_LINE_SMOOTH_HINT = 0x0C52
-
-pattern GL_LINE_STRIP = 0x0003
-
-pattern GL_LINE_STRIP_ADJACENCY = 0x000B
-
-pattern GL_LINE_WIDTH = 0x0B21
-
-pattern GL_LINE_WIDTH_GRANULARITY = 0x0B23
-
-pattern GL_LINE_WIDTH_RANGE = 0x0B22
-
-pattern GL_LINK_STATUS = 0x8B82
-
-pattern GL_LOGIC_OP_MODE = 0x0BF0
-
-pattern GL_LOWER_LEFT = 0x8CA1
-
-pattern GL_MAJOR_VERSION = 0x821B
-
-pattern GL_MAP_FLUSH_EXPLICIT_BIT = 0x0010
-
-pattern GL_MAP_INVALIDATE_BUFFER_BIT = 0x0008
-
-pattern GL_MAP_INVALIDATE_RANGE_BIT = 0x0004
-
-pattern GL_MAP_READ_BIT = 0x0001
-
-pattern GL_MAP_UNSYNCHRONIZED_BIT = 0x0020
-
-pattern GL_MAP_WRITE_BIT = 0x0002
-
-pattern GL_MAX = 0x8008
-
-pattern GL_MAX_3D_TEXTURE_SIZE = 0x8073
-
-pattern GL_MAX_ARRAY_TEXTURE_LAYERS = 0x88FF
-
-pattern GL_MAX_CLIP_DISTANCES = 0x0D32
-
-pattern GL_MAX_COLOR_ATTACHMENTS = 0x8CDF
-
-pattern GL_MAX_COLOR_TEXTURE_SAMPLES = 0x910E
-
-pattern GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = 0x8A33
-
-pattern GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS = 0x8A32
-
-pattern GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D
-
-pattern GL_MAX_COMBINED_UNIFORM_BLOCKS = 0x8A2E
-
-pattern GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = 0x8A31
-
-pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C
-
-pattern GL_MAX_DEPTH_TEXTURE_SAMPLES = 0x910F
-
-pattern GL_MAX_DRAW_BUFFERS = 0x8824
-
-pattern GL_MAX_ELEMENTS_INDICES = 0x80E9
-
-pattern GL_MAX_ELEMENTS_VERTICES = 0x80E8
-
-pattern GL_MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125
-
-pattern GL_MAX_FRAGMENT_UNIFORM_BLOCKS = 0x8A2D
-
-pattern GL_MAX_FRAGMENT_UNIFORM_COMPONENTS = 0x8B49
-
-pattern GL_MAX_GEOMETRY_INPUT_COMPONENTS = 0x9123
-
-pattern GL_MAX_GEOMETRY_OUTPUT_COMPONENTS = 0x9124
-
-pattern GL_MAX_GEOMETRY_OUTPUT_VERTICES = 0x8DE0
-
-pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS = 0x8C29
-
-pattern GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS = 0x8DE1
-
-pattern GL_MAX_GEOMETRY_UNIFORM_BLOCKS = 0x8A2C
-
-pattern GL_MAX_GEOMETRY_UNIFORM_COMPONENTS = 0x8DDF
-
-pattern GL_MAX_INTEGER_SAMPLES = 0x9110
-
-pattern GL_MAX_PROGRAM_TEXEL_OFFSET = 0x8905
-
-pattern GL_MAX_RECTANGLE_TEXTURE_SIZE = 0x84F8
-
-pattern GL_MAX_RENDERBUFFER_SIZE = 0x84E8
-
-pattern GL_MAX_SAMPLES = 0x8D57
-
-pattern GL_MAX_SAMPLE_MASK_WORDS = 0x8E59
-
-pattern GL_MAX_SERVER_WAIT_TIMEOUT = 0x9111
-
-pattern GL_MAX_TEXTURE_BUFFER_SIZE = 0x8C2B
-
-pattern GL_MAX_TEXTURE_IMAGE_UNITS = 0x8872
-
-pattern GL_MAX_TEXTURE_LOD_BIAS = 0x84FD
-
-pattern GL_MAX_TEXTURE_SIZE = 0x0D33
-
-pattern GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = 0x8C8A
-
-pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = 0x8C8B
-
-pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = 0x8C80
-
-pattern GL_MAX_UNIFORM_BLOCK_SIZE = 0x8A30
-
-pattern GL_MAX_UNIFORM_BUFFER_BINDINGS = 0x8A2F
-
-pattern GL_MAX_VARYING_COMPONENTS = 0x8B4B
-
-pattern GL_MAX_VARYING_FLOATS = 0x8B4B
-
-pattern GL_MAX_VERTEX_ATTRIBS = 0x8869
-
-pattern GL_MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122
-
-pattern GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C
-
-pattern GL_MAX_VERTEX_UNIFORM_BLOCKS = 0x8A2B
-
-pattern GL_MAX_VERTEX_UNIFORM_COMPONENTS = 0x8B4A
-
-pattern GL_MAX_VIEWPORT_DIMS = 0x0D3A
-
-pattern GL_MIN = 0x8007
-
-pattern GL_MINOR_VERSION = 0x821C
-
-pattern GL_MIN_PROGRAM_TEXEL_OFFSET = 0x8904
-
-pattern GL_MIRRORED_REPEAT = 0x8370
-
-pattern GL_MULTISAMPLE = 0x809D
-
-pattern GL_NAND = 0x150E
-
-pattern GL_NEAREST = 0x2600
-
-pattern GL_NEAREST_MIPMAP_LINEAR = 0x2702
-
-pattern GL_NEAREST_MIPMAP_NEAREST = 0x2700
-
-pattern GL_NEVER = 0x0200
-
-pattern GL_NICEST = 0x1102
-
-pattern GL_NONE = 0
-
-pattern GL_NOOP = 0x1505
-
-pattern GL_NOR = 0x1508
-
-pattern GL_NOTEQUAL = 0x0205
-
-pattern GL_NO_ERROR = 0
-
-pattern GL_NUM_COMPRESSED_TEXTURE_FORMATS = 0x86A2
-
-pattern GL_NUM_EXTENSIONS = 0x821D
-
-pattern GL_OBJECT_TYPE = 0x9112
-
-pattern GL_ONE = 1
-
-pattern GL_ONE_MINUS_CONSTANT_ALPHA = 0x8004
-
-pattern GL_ONE_MINUS_CONSTANT_COLOR = 0x8002
-
-pattern GL_ONE_MINUS_DST_ALPHA = 0x0305
-
-pattern GL_ONE_MINUS_DST_COLOR = 0x0307
-
-pattern GL_ONE_MINUS_SRC_ALPHA = 0x0303
-
-pattern GL_ONE_MINUS_SRC_COLOR = 0x0301
-
-pattern GL_OR = 0x1507
-
-pattern GL_OR_INVERTED = 0x150D
-
-pattern GL_OR_REVERSE = 0x150B
-
-pattern GL_OUT_OF_MEMORY = 0x0505
-
-pattern GL_PACK_ALIGNMENT = 0x0D05
-
-pattern GL_PACK_IMAGE_HEIGHT = 0x806C
-
-pattern GL_PACK_LSB_FIRST = 0x0D01
-
-pattern GL_PACK_ROW_LENGTH = 0x0D02
-
-pattern GL_PACK_SKIP_IMAGES = 0x806B
-
-pattern GL_PACK_SKIP_PIXELS = 0x0D04
-
-pattern GL_PACK_SKIP_ROWS = 0x0D03
-
-pattern GL_PACK_SWAP_BYTES = 0x0D00
-
-pattern GL_PIXEL_PACK_BUFFER = 0x88EB
-
-pattern GL_PIXEL_PACK_BUFFER_BINDING = 0x88ED
-
-pattern GL_PIXEL_UNPACK_BUFFER = 0x88EC
-
-pattern GL_PIXEL_UNPACK_BUFFER_BINDING = 0x88EF
-
-pattern GL_POINT = 0x1B00
-
-pattern GL_POINTS = 0x0000
-
-pattern GL_POINT_FADE_THRESHOLD_SIZE = 0x8128
-
-pattern GL_POINT_SIZE = 0x0B11
-
-pattern GL_POINT_SIZE_GRANULARITY = 0x0B13
-
-pattern GL_POINT_SIZE_RANGE = 0x0B12
-
-pattern GL_POINT_SPRITE_COORD_ORIGIN = 0x8CA0
-
-pattern GL_POLYGON_MODE = 0x0B40
-
-pattern GL_POLYGON_OFFSET_FACTOR = 0x8038
-
-pattern GL_POLYGON_OFFSET_FILL = 0x8037
-
-pattern GL_POLYGON_OFFSET_LINE = 0x2A02
-
-pattern GL_POLYGON_OFFSET_POINT = 0x2A01
-
-pattern GL_POLYGON_OFFSET_UNITS = 0x2A00
-
-pattern GL_POLYGON_SMOOTH = 0x0B41
-
-pattern GL_POLYGON_SMOOTH_HINT = 0x0C53
-
-pattern GL_PRIMITIVES_GENERATED = 0x8C87
-
-pattern GL_PRIMITIVE_RESTART = 0x8F9D
-
-pattern GL_PRIMITIVE_RESTART_INDEX = 0x8F9E
-
-pattern GL_PROVOKING_VERTEX = 0x8E4F
-
-pattern GL_PROXY_TEXTURE_1D = 0x8063
-
-pattern GL_PROXY_TEXTURE_1D_ARRAY = 0x8C19
-
-pattern GL_PROXY_TEXTURE_2D = 0x8064
-
-pattern GL_PROXY_TEXTURE_2D_ARRAY = 0x8C1B
-
-pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE = 0x9101
-
-pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9103
-
-pattern GL_PROXY_TEXTURE_3D = 0x8070
-
-pattern GL_PROXY_TEXTURE_CUBE_MAP = 0x851B
-
-pattern GL_PROXY_TEXTURE_RECTANGLE = 0x84F7
-
-pattern GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION = 0x8E4C
-
-pattern GL_QUERY_BY_REGION_NO_WAIT = 0x8E16
-
-pattern GL_QUERY_BY_REGION_WAIT = 0x8E15
-
-pattern GL_QUERY_COUNTER_BITS = 0x8864
-
-pattern GL_QUERY_NO_WAIT = 0x8E14
-
-pattern GL_QUERY_RESULT = 0x8866
-
-pattern GL_QUERY_RESULT_AVAILABLE = 0x8867
-
-pattern GL_QUERY_WAIT = 0x8E13
-
-pattern GL_R11F_G11F_B10F = 0x8C3A
-
-pattern GL_R16 = 0x822A
-
-pattern GL_R16F = 0x822D
-
-pattern GL_R16I = 0x8233
-
-pattern GL_R16UI = 0x8234
-
-pattern GL_R16_SNORM = 0x8F98
-
-pattern GL_R32F = 0x822E
-
-pattern GL_R32I = 0x8235
-
-pattern GL_R32UI = 0x8236
-
-pattern GL_R3_G3_B2 = 0x2A10
-
-pattern GL_R8 = 0x8229
-
-pattern GL_R8I = 0x8231
-
-pattern GL_R8UI = 0x8232
-
-pattern GL_R8_SNORM = 0x8F94
-
-pattern GL_RASTERIZER_DISCARD = 0x8C89
-
-pattern GL_READ_BUFFER = 0x0C02
-
-pattern GL_READ_FRAMEBUFFER = 0x8CA8
-
-pattern GL_READ_FRAMEBUFFER_BINDING = 0x8CAA
-
-pattern GL_READ_ONLY = 0x88B8
-
-pattern GL_READ_WRITE = 0x88BA
-
-pattern GL_RED = 0x1903
-
-pattern GL_RED_INTEGER = 0x8D94
-
-pattern GL_RENDERBUFFER = 0x8D41
-
-pattern GL_RENDERBUFFER_ALPHA_SIZE = 0x8D53
-
-pattern GL_RENDERBUFFER_BINDING = 0x8CA7
-
-pattern GL_RENDERBUFFER_BLUE_SIZE = 0x8D52
-
-pattern GL_RENDERBUFFER_DEPTH_SIZE = 0x8D54
-
-pattern GL_RENDERBUFFER_GREEN_SIZE = 0x8D51
-
-pattern GL_RENDERBUFFER_HEIGHT = 0x8D43
-
-pattern GL_RENDERBUFFER_INTERNAL_FORMAT = 0x8D44
-
-pattern GL_RENDERBUFFER_RED_SIZE = 0x8D50
-
-pattern GL_RENDERBUFFER_SAMPLES = 0x8CAB
-
-pattern GL_RENDERBUFFER_STENCIL_SIZE = 0x8D55
-
-pattern GL_RENDERBUFFER_WIDTH = 0x8D42
-
-pattern GL_RENDERER = 0x1F01
-
-pattern GL_REPEAT = 0x2901
-
-pattern GL_REPLACE = 0x1E01
-
-pattern GL_RG = 0x8227
-
-pattern GL_RG16 = 0x822C
-
-pattern GL_RG16F = 0x822F
-
-pattern GL_RG16I = 0x8239
-
-pattern GL_RG16UI = 0x823A
-
-pattern GL_RG16_SNORM = 0x8F99
-
-pattern GL_RG32F = 0x8230
-
-pattern GL_RG32I = 0x823B
-
-pattern GL_RG32UI = 0x823C
-
-pattern GL_RG8 = 0x822B
-
-pattern GL_RG8I = 0x8237
-
-pattern GL_RG8UI = 0x8238
-
-pattern GL_RG8_SNORM = 0x8F95
-
-pattern GL_RGB = 0x1907
-
-pattern GL_RGB10 = 0x8052
-
-pattern GL_RGB10_A2 = 0x8059
-
-pattern GL_RGB12 = 0x8053
-
-pattern GL_RGB16 = 0x8054
-
-pattern GL_RGB16F = 0x881B
-
-pattern GL_RGB16I = 0x8D89
-
-pattern GL_RGB16UI = 0x8D77
-
-pattern GL_RGB16_SNORM = 0x8F9A
-
-pattern GL_RGB32F = 0x8815
-
-pattern GL_RGB32I = 0x8D83
-
-pattern GL_RGB32UI = 0x8D71
-
-pattern GL_RGB4 = 0x804F
-
-pattern GL_RGB5 = 0x8050
-
-pattern GL_RGB5_A1 = 0x8057
-
-pattern GL_RGB8 = 0x8051
-
-pattern GL_RGB8I = 0x8D8F
-
-pattern GL_RGB8UI = 0x8D7D
-
-pattern GL_RGB8_SNORM = 0x8F96
-
-pattern GL_RGB9_E5 = 0x8C3D
-
-pattern GL_RGBA = 0x1908
-
-pattern GL_RGBA12 = 0x805A
-
-pattern GL_RGBA16 = 0x805B
-
-pattern GL_RGBA16F = 0x881A
-
-pattern GL_RGBA16I = 0x8D88
-
-pattern GL_RGBA16UI = 0x8D76
-
-pattern GL_RGBA16_SNORM = 0x8F9B
-
-pattern GL_RGBA2 = 0x8055
-
-pattern GL_RGBA32F = 0x8814
-
-pattern GL_RGBA32I = 0x8D82
-
-pattern GL_RGBA32UI = 0x8D70
-
-pattern GL_RGBA4 = 0x8056
-
-pattern GL_RGBA8 = 0x8058
-
-pattern GL_RGBA8I = 0x8D8E
-
-pattern GL_RGBA8UI = 0x8D7C
-
-pattern GL_RGBA8_SNORM = 0x8F97
-
-pattern GL_RGBA_INTEGER = 0x8D99
-
-pattern GL_RGB_INTEGER = 0x8D98
-
-pattern GL_RG_INTEGER = 0x8228
-
-pattern GL_RIGHT = 0x0407
-
-pattern GL_SAMPLER_1D = 0x8B5D
-
-pattern GL_SAMPLER_1D_ARRAY = 0x8DC0
-
-pattern GL_SAMPLER_1D_ARRAY_SHADOW = 0x8DC3
-
-pattern GL_SAMPLER_1D_SHADOW = 0x8B61
-
-pattern GL_SAMPLER_2D = 0x8B5E
-
-pattern GL_SAMPLER_2D_ARRAY = 0x8DC1
-
-pattern GL_SAMPLER_2D_ARRAY_SHADOW = 0x8DC4
-
-pattern GL_SAMPLER_2D_MULTISAMPLE = 0x9108
-
-pattern GL_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910B
-
-pattern GL_SAMPLER_2D_RECT = 0x8B63
-
-pattern GL_SAMPLER_2D_RECT_SHADOW = 0x8B64
-
-pattern GL_SAMPLER_2D_SHADOW = 0x8B62
-
-pattern GL_SAMPLER_3D = 0x8B5F
-
-pattern GL_SAMPLER_BUFFER = 0x8DC2
-
-pattern GL_SAMPLER_CUBE = 0x8B60
-
-pattern GL_SAMPLER_CUBE_SHADOW = 0x8DC5
-
-pattern GL_SAMPLES = 0x80A9
-
-pattern GL_SAMPLES_PASSED = 0x8914
-
-pattern GL_SAMPLE_ALPHA_TO_COVERAGE = 0x809E
-
-pattern GL_SAMPLE_ALPHA_TO_ONE = 0x809F
-
-pattern GL_SAMPLE_BUFFERS = 0x80A8
-
-pattern GL_SAMPLE_COVERAGE = 0x80A0
-
-pattern GL_SAMPLE_COVERAGE_INVERT = 0x80AB
-
-pattern GL_SAMPLE_COVERAGE_VALUE = 0x80AA
-
-pattern GL_SAMPLE_MASK = 0x8E51
-
-pattern GL_SAMPLE_MASK_VALUE = 0x8E52
-
-pattern GL_SAMPLE_POSITION = 0x8E50
-
-pattern GL_SCISSOR_BOX = 0x0C10
-
-pattern GL_SCISSOR_TEST = 0x0C11
-
-pattern GL_SEPARATE_ATTRIBS = 0x8C8D
-
-pattern GL_SET = 0x150F
-
-pattern GL_SHADER_SOURCE_LENGTH = 0x8B88
-
-pattern GL_SHADER_TYPE = 0x8B4F
-
-pattern GL_SHADING_LANGUAGE_VERSION = 0x8B8C
-
-pattern GL_SHORT = 0x1402
-
-pattern GL_SIGNALED = 0x9119
-
-pattern GL_SIGNED_NORMALIZED = 0x8F9C
-
-pattern GL_SMOOTH_LINE_WIDTH_GRANULARITY = 0x0B23
-
-pattern GL_SMOOTH_LINE_WIDTH_RANGE = 0x0B22
-
-pattern GL_SMOOTH_POINT_SIZE_GRANULARITY = 0x0B13
-
-pattern GL_SMOOTH_POINT_SIZE_RANGE = 0x0B12
-
-pattern GL_SRC1_ALPHA = 0x8589
-
-pattern GL_SRC_ALPHA = 0x0302
-
-pattern GL_SRC_ALPHA_SATURATE = 0x0308
-
-pattern GL_SRC_COLOR = 0x0300
-
-pattern GL_SRGB = 0x8C40
-
-pattern GL_SRGB8 = 0x8C41
-
-pattern GL_SRGB8_ALPHA8 = 0x8C43
-
-pattern GL_SRGB_ALPHA = 0x8C42
-
-pattern GL_STATIC_COPY = 0x88E6
-
-pattern GL_STATIC_DRAW = 0x88E4
-
-pattern GL_STATIC_READ = 0x88E5
-
-pattern GL_STENCIL = 0x1802
-
-pattern GL_STENCIL_ATTACHMENT = 0x8D20
-
-pattern GL_STENCIL_BACK_FAIL = 0x8801
-
-pattern GL_STENCIL_BACK_FUNC = 0x8800
-
-pattern GL_STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802
-
-pattern GL_STENCIL_BACK_PASS_DEPTH_PASS = 0x8803
-
-pattern GL_STENCIL_BACK_REF = 0x8CA3
-
-pattern GL_STENCIL_BACK_VALUE_MASK = 0x8CA4
-
-pattern GL_STENCIL_BACK_WRITEMASK = 0x8CA5
-
-pattern GL_STENCIL_BUFFER_BIT = 0x00000400
-
-pattern GL_STENCIL_CLEAR_VALUE = 0x0B91
-
-pattern GL_STENCIL_FAIL = 0x0B94
-
-pattern GL_STENCIL_FUNC = 0x0B92
-
-pattern GL_STENCIL_INDEX = 0x1901
-
-pattern GL_STENCIL_INDEX1 = 0x8D46
-
-pattern GL_STENCIL_INDEX16 = 0x8D49
-
-pattern GL_STENCIL_INDEX4 = 0x8D47
-
-pattern GL_STENCIL_INDEX8 = 0x8D48
-
-pattern GL_STENCIL_PASS_DEPTH_FAIL = 0x0B95
-
-pattern GL_STENCIL_PASS_DEPTH_PASS = 0x0B96
-
-pattern GL_STENCIL_REF = 0x0B97
-
-pattern GL_STENCIL_TEST = 0x0B90
-
-pattern GL_STENCIL_VALUE_MASK = 0x0B93
-
-pattern GL_STENCIL_WRITEMASK = 0x0B98
-
-pattern GL_STEREO = 0x0C33
-
-pattern GL_STREAM_COPY = 0x88E2
-
-pattern GL_STREAM_DRAW = 0x88E0
-
-pattern GL_STREAM_READ = 0x88E1
-
-pattern GL_SUBPIXEL_BITS = 0x0D50
-
-pattern GL_SYNC_CONDITION = 0x9113
-
-pattern GL_SYNC_FENCE = 0x9116
-
-pattern GL_SYNC_FLAGS = 0x9115
-
-pattern GL_SYNC_FLUSH_COMMANDS_BIT = 0x00000001
-
-pattern GL_SYNC_GPU_COMMANDS_COMPLETE = 0x9117
-
-pattern GL_SYNC_STATUS = 0x9114
-
-pattern GL_TEXTURE = 0x1702
-
-pattern GL_TEXTURE0 = 0x84C0
-
-pattern GL_TEXTURE1 = 0x84C1
-
-pattern GL_TEXTURE10 = 0x84CA
-
-pattern GL_TEXTURE11 = 0x84CB
-
-pattern GL_TEXTURE12 = 0x84CC
-
-pattern GL_TEXTURE13 = 0x84CD
-
-pattern GL_TEXTURE14 = 0x84CE
-
-pattern GL_TEXTURE15 = 0x84CF
-
-pattern GL_TEXTURE16 = 0x84D0
-
-pattern GL_TEXTURE17 = 0x84D1
-
-pattern GL_TEXTURE18 = 0x84D2
-
-pattern GL_TEXTURE19 = 0x84D3
-
-pattern GL_TEXTURE2 = 0x84C2
-
-pattern GL_TEXTURE20 = 0x84D4
-
-pattern GL_TEXTURE21 = 0x84D5
-
-pattern GL_TEXTURE22 = 0x84D6
-
-pattern GL_TEXTURE23 = 0x84D7
-
-pattern GL_TEXTURE24 = 0x84D8
-
-pattern GL_TEXTURE25 = 0x84D9
-
-pattern GL_TEXTURE26 = 0x84DA
-
-pattern GL_TEXTURE27 = 0x84DB
-
-pattern GL_TEXTURE28 = 0x84DC
-
-pattern GL_TEXTURE29 = 0x84DD
-
-pattern GL_TEXTURE3 = 0x84C3
-
-pattern GL_TEXTURE30 = 0x84DE
-
-pattern GL_TEXTURE31 = 0x84DF
-
-pattern GL_TEXTURE4 = 0x84C4
-
-pattern GL_TEXTURE5 = 0x84C5
-
-pattern GL_TEXTURE6 = 0x84C6
-
-pattern GL_TEXTURE7 = 0x84C7
-
-pattern GL_TEXTURE8 = 0x84C8
-
-pattern GL_TEXTURE9 = 0x84C9
-
-pattern GL_TEXTURE_1D = 0x0DE0
-
-pattern GL_TEXTURE_1D_ARRAY = 0x8C18
-
-pattern GL_TEXTURE_2D = 0x0DE1
-
-pattern GL_TEXTURE_2D_ARRAY = 0x8C1A
-
-pattern GL_TEXTURE_2D_MULTISAMPLE = 0x9100
-
-pattern GL_TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9102
-
-pattern GL_TEXTURE_3D = 0x806F
-
-pattern GL_TEXTURE_ALPHA_SIZE = 0x805F
-
-pattern GL_TEXTURE_ALPHA_TYPE = 0x8C13
-
-pattern GL_TEXTURE_BASE_LEVEL = 0x813C
-
-pattern GL_TEXTURE_BINDING_1D = 0x8068
-
-pattern GL_TEXTURE_BINDING_1D_ARRAY = 0x8C1C
-
-pattern GL_TEXTURE_BINDING_2D = 0x8069
-
-pattern GL_TEXTURE_BINDING_2D_ARRAY = 0x8C1D
-
-pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE = 0x9104
-
-pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY = 0x9105
-
-pattern GL_TEXTURE_BINDING_3D = 0x806A
-
-pattern GL_TEXTURE_BINDING_BUFFER = 0x8C2C
-
-pattern GL_TEXTURE_BINDING_CUBE_MAP = 0x8514
-
-pattern GL_TEXTURE_BINDING_RECTANGLE = 0x84F6
-
-pattern GL_TEXTURE_BLUE_SIZE = 0x805E
-
-pattern GL_TEXTURE_BLUE_TYPE = 0x8C12
-
-pattern GL_TEXTURE_BORDER_COLOR = 0x1004
-
-pattern GL_TEXTURE_BUFFER = 0x8C2A
-
-pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING = 0x8C2D
-
-pattern GL_TEXTURE_COMPARE_FUNC = 0x884D
-
-pattern GL_TEXTURE_COMPARE_MODE = 0x884C
-
-pattern GL_TEXTURE_COMPRESSED = 0x86A1
-
-pattern GL_TEXTURE_COMPRESSED_IMAGE_SIZE = 0x86A0
-
-pattern GL_TEXTURE_COMPRESSION_HINT = 0x84EF
-
-pattern GL_TEXTURE_CUBE_MAP = 0x8513
-
-pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516
-
-pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518
-
-pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A
-
-pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515
-
-pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517
-
-pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519
-
-pattern GL_TEXTURE_CUBE_MAP_SEAMLESS = 0x884F
-
-pattern GL_TEXTURE_DEPTH = 0x8071
-
-pattern GL_TEXTURE_DEPTH_SIZE = 0x884A
-
-pattern GL_TEXTURE_DEPTH_TYPE = 0x8C16
-
-pattern GL_TEXTURE_FIXED_SAMPLE_LOCATIONS = 0x9107
-
-pattern GL_TEXTURE_GREEN_SIZE = 0x805D
-
-pattern GL_TEXTURE_GREEN_TYPE = 0x8C11
-
-pattern GL_TEXTURE_HEIGHT = 0x1001
-
-pattern GL_TEXTURE_INTERNAL_FORMAT = 0x1003
-
-pattern GL_TEXTURE_LOD_BIAS = 0x8501
-
-pattern GL_TEXTURE_MAG_FILTER = 0x2800
-
-pattern GL_TEXTURE_MAX_LEVEL = 0x813D
-
-pattern GL_TEXTURE_MAX_LOD = 0x813B
-
-pattern GL_TEXTURE_MIN_FILTER = 0x2801
-
-pattern GL_TEXTURE_MIN_LOD = 0x813A
-
-pattern GL_TEXTURE_RECTANGLE = 0x84F5
-
-pattern GL_TEXTURE_RED_SIZE = 0x805C
-
-pattern GL_TEXTURE_RED_TYPE = 0x8C10
-
-pattern GL_TEXTURE_SAMPLES = 0x9106
-
-pattern GL_TEXTURE_SHARED_SIZE = 0x8C3F
-
-pattern GL_TEXTURE_STENCIL_SIZE = 0x88F1
-
-pattern GL_TEXTURE_WIDTH = 0x1000
-
-pattern GL_TEXTURE_WRAP_R = 0x8072
-
-pattern GL_TEXTURE_WRAP_S = 0x2802
-
-pattern GL_TEXTURE_WRAP_T = 0x2803
-
-pattern GL_TIMEOUT_EXPIRED = 0x911B
-
-pattern GL_TIMEOUT_IGNORED = 0xFFFFFFFFFFFFFFFF
-
-pattern GL_TRANSFORM_FEEDBACK_BUFFER = 0x8C8E
-
-pattern GL_TRANSFORM_FEEDBACK_BUFFER_BINDING = 0x8C8F
-
-pattern GL_TRANSFORM_FEEDBACK_BUFFER_MODE = 0x8C7F
-
-pattern GL_TRANSFORM_FEEDBACK_BUFFER_SIZE = 0x8C85
-
-pattern GL_TRANSFORM_FEEDBACK_BUFFER_START = 0x8C84
-
-pattern GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = 0x8C88
-
-pattern GL_TRANSFORM_FEEDBACK_VARYINGS = 0x8C83
-
-pattern GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH = 0x8C76
-
-pattern GL_TRIANGLES = 0x0004
-
-pattern GL_TRIANGLES_ADJACENCY = 0x000C
-
-pattern GL_TRIANGLE_FAN = 0x0006
-
-pattern GL_TRIANGLE_STRIP = 0x0005
-
-pattern GL_TRIANGLE_STRIP_ADJACENCY = 0x000D
-
-pattern GL_TRUE = 1
-
-pattern GL_UNIFORM_ARRAY_STRIDE = 0x8A3C
-
-pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS = 0x8A42
-
-pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43
-
-pattern GL_UNIFORM_BLOCK_BINDING = 0x8A3F
-
-pattern GL_UNIFORM_BLOCK_DATA_SIZE = 0x8A40
-
-pattern GL_UNIFORM_BLOCK_INDEX = 0x8A3A
-
-pattern GL_UNIFORM_BLOCK_NAME_LENGTH = 0x8A41
-
-pattern GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46
-
-pattern GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER = 0x8A45
-
-pattern GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44
-
-pattern GL_UNIFORM_BUFFER = 0x8A11
-
-pattern GL_UNIFORM_BUFFER_BINDING = 0x8A28
-
-pattern GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT = 0x8A34
-
-pattern GL_UNIFORM_BUFFER_SIZE = 0x8A2A
-
-pattern GL_UNIFORM_BUFFER_START = 0x8A29
-
-pattern GL_UNIFORM_IS_ROW_MAJOR = 0x8A3E
-
-pattern GL_UNIFORM_MATRIX_STRIDE = 0x8A3D
-
-pattern GL_UNIFORM_NAME_LENGTH = 0x8A39
-
-pattern GL_UNIFORM_OFFSET = 0x8A3B
-
-pattern GL_UNIFORM_SIZE = 0x8A38
-
-pattern GL_UNIFORM_TYPE = 0x8A37
-
-pattern GL_UNPACK_ALIGNMENT = 0x0CF5
-
-pattern GL_UNPACK_IMAGE_HEIGHT = 0x806E
-
-pattern GL_UNPACK_LSB_FIRST = 0x0CF1
-
-pattern GL_UNPACK_ROW_LENGTH = 0x0CF2
-
-pattern GL_UNPACK_SKIP_IMAGES = 0x806D
-
-pattern GL_UNPACK_SKIP_PIXELS = 0x0CF4
-
-pattern GL_UNPACK_SKIP_ROWS = 0x0CF3
-
-pattern GL_UNPACK_SWAP_BYTES = 0x0CF0
-
-pattern GL_UNSIGNALED = 0x9118
-
-pattern GL_UNSIGNED_BYTE = 0x1401
-
-pattern GL_UNSIGNED_BYTE_2_3_3_REV = 0x8362
-
-pattern GL_UNSIGNED_BYTE_3_3_2 = 0x8032
-
-pattern GL_UNSIGNED_INT = 0x1405
-
-pattern GL_UNSIGNED_INT_10F_11F_11F_REV = 0x8C3B
-
-pattern GL_UNSIGNED_INT_10_10_10_2 = 0x8036
-
-pattern GL_UNSIGNED_INT_24_8 = 0x84FA
-
-pattern GL_UNSIGNED_INT_2_10_10_10_REV = 0x8368
-
-pattern GL_UNSIGNED_INT_5_9_9_9_REV = 0x8C3E
-
-pattern GL_UNSIGNED_INT_8_8_8_8 = 0x8035
-
-pattern GL_UNSIGNED_INT_8_8_8_8_REV = 0x8367
-
-pattern GL_UNSIGNED_INT_SAMPLER_1D = 0x8DD1
-
-pattern GL_UNSIGNED_INT_SAMPLER_1D_ARRAY = 0x8DD6
-
-pattern GL_UNSIGNED_INT_SAMPLER_2D = 0x8DD2
-
-pattern GL_UNSIGNED_INT_SAMPLER_2D_ARRAY = 0x8DD7
-
-pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE = 0x910A
-
-pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910D
-
-pattern GL_UNSIGNED_INT_SAMPLER_2D_RECT = 0x8DD5
-
-pattern GL_UNSIGNED_INT_SAMPLER_3D = 0x8DD3
-
-pattern GL_UNSIGNED_INT_SAMPLER_BUFFER = 0x8DD8
-
-pattern GL_UNSIGNED_INT_SAMPLER_CUBE = 0x8DD4
-
-pattern GL_UNSIGNED_INT_VEC2 = 0x8DC6
-
-pattern GL_UNSIGNED_INT_VEC3 = 0x8DC7
-
-pattern GL_UNSIGNED_INT_VEC4 = 0x8DC8
-
-pattern GL_UNSIGNED_NORMALIZED = 0x8C17
-
-pattern GL_UNSIGNED_SHORT = 0x1403
-
-pattern GL_UNSIGNED_SHORT_1_5_5_5_REV = 0x8366
-
-pattern GL_UNSIGNED_SHORT_4_4_4_4 = 0x8033
-
-pattern GL_UNSIGNED_SHORT_4_4_4_4_REV = 0x8365
-
-pattern GL_UNSIGNED_SHORT_5_5_5_1 = 0x8034
-
-pattern GL_UNSIGNED_SHORT_5_6_5 = 0x8363
-
-pattern GL_UNSIGNED_SHORT_5_6_5_REV = 0x8364
-
-pattern GL_UPPER_LEFT = 0x8CA2
-
-pattern GL_VALIDATE_STATUS = 0x8B83
-
-pattern GL_VENDOR = 0x1F00
-
-pattern GL_VERSION = 0x1F02
-
-pattern GL_VERTEX_ARRAY_BINDING = 0x85B5
-
-pattern GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F
-
-pattern GL_VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622
-
-pattern GL_VERTEX_ATTRIB_ARRAY_INTEGER = 0x88FD
-
-pattern GL_VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A
-
-pattern GL_VERTEX_ATTRIB_ARRAY_POINTER = 0x8645
-
-pattern GL_VERTEX_ATTRIB_ARRAY_SIZE = 0x8623
-
-pattern GL_VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624
-
-pattern GL_VERTEX_ATTRIB_ARRAY_TYPE = 0x8625
-
-pattern GL_VERTEX_PROGRAM_POINT_SIZE = 0x8642
-
-pattern GL_VERTEX_SHADER = 0x8B31
-
-pattern GL_VIEWPORT = 0x0BA2
-
-pattern GL_WAIT_FAILED = 0x911D
-
-pattern GL_WRITE_ONLY = 0x88B9
-
-pattern GL_XOR = 0x1506
-
-pattern GL_ZERO = 0
-
--- | Usage: @'glBindFragDataLocationIndexed' program colorNumber index name@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindFragDataLocationIndexed.xhtml>
-
-
-glBindFragDataLocationIndexed :: MonadIO m => GLuint -> GLuint -> GLuint -> Ptr GLchar -> m ()
-glBindFragDataLocationIndexed = ffiuintuintuintPtrcharIOV glBindFragDataLocationIndexedFunPtr
-
-glBindFragDataLocationIndexedFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLchar -> IO ())
-glBindFragDataLocationIndexedFunPtr = unsafePerformIO (getProcAddress "glBindFragDataLocationIndexed")
-
-{-# NOINLINE glBindFragDataLocationIndexedFunPtr #-}
-
--- | Usage: @'glBindSampler' unit sampler@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindSampler.xhtml>
-
-
-glBindSampler :: MonadIO m => GLuint -> GLuint -> m ()
-glBindSampler = ffiuintuintIOV glBindSamplerFunPtr
-
-glBindSamplerFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
-glBindSamplerFunPtr = unsafePerformIO (getProcAddress "glBindSampler")
-
-{-# NOINLINE glBindSamplerFunPtr #-}
-
--- | Usage: @'glDeleteSamplers' count samplers@
---
--- The length of @samplers@ should be @count@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDeleteSamplers.xhtml>
-
-
-glDeleteSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glDeleteSamplers = ffisizeiPtruintIOV glDeleteSamplersFunPtr
-
-glDeleteSamplersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glDeleteSamplersFunPtr = unsafePerformIO (getProcAddress "glDeleteSamplers")
-
-{-# NOINLINE glDeleteSamplersFunPtr #-}
-
--- | Usage: @'glGenSamplers' count samplers@
---
--- The length of @samplers@ should be @count@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGenSamplers.xhtml>
-
-
-glGenSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glGenSamplers = ffisizeiPtruintIOV glGenSamplersFunPtr
-
-glGenSamplersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glGenSamplersFunPtr = unsafePerformIO (getProcAddress "glGenSamplers")
-
-{-# NOINLINE glGenSamplersFunPtr #-}
-
--- | Usage: @'glGetFragDataIndex' program name@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetFragDataIndex.xhtml>
-
-
-glGetFragDataIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLint
-glGetFragDataIndex = ffiuintPtrcharIOint glGetFragDataIndexFunPtr
-
-glGetFragDataIndexFunPtr :: FunPtr (GLuint -> Ptr GLchar -> IO GLint)
-glGetFragDataIndexFunPtr = unsafePerformIO (getProcAddress "glGetFragDataIndex")
-
-{-# NOINLINE glGetFragDataIndexFunPtr #-}
-
--- | Usage: @'glGetQueryObjecti64v' id pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetQueryObjecti64v :: MonadIO m => GLuint -> GLenum -> Ptr GLint64 -> m ()
-glGetQueryObjecti64v = ffiuintenumPtrint64IOV glGetQueryObjecti64vFunPtr
-
-glGetQueryObjecti64vFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint64 -> IO ())
-glGetQueryObjecti64vFunPtr = unsafePerformIO (getProcAddress "glGetQueryObjecti64v")
-
-{-# NOINLINE glGetQueryObjecti64vFunPtr #-}
-
--- | Usage: @'glGetQueryObjectui64v' id pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetQueryObjectui64v :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64 -> m ()
-glGetQueryObjectui64v = ffiuintenumPtruint64IOV glGetQueryObjectui64vFunPtr
-
-glGetQueryObjectui64vFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint64 -> IO ())
-glGetQueryObjectui64vFunPtr = unsafePerformIO (getProcAddress "glGetQueryObjectui64v")
-
-{-# NOINLINE glGetQueryObjectui64vFunPtr #-}
-
--- | Usage: @'glGetSamplerParameterIiv' sampler pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetSamplerParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetSamplerParameterIiv = ffiuintenumPtrintIOV glGetSamplerParameterIivFunPtr
-
-glGetSamplerParameterIivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetSamplerParameterIivFunPtr = unsafePerformIO (getProcAddress "glGetSamplerParameterIiv")
-
-{-# NOINLINE glGetSamplerParameterIivFunPtr #-}
-
--- | Usage: @'glGetSamplerParameterIuiv' sampler pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetSamplerParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
-glGetSamplerParameterIuiv = ffiuintenumPtruintIOV glGetSamplerParameterIuivFunPtr
-
-glGetSamplerParameterIuivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
-glGetSamplerParameterIuivFunPtr = unsafePerformIO (getProcAddress "glGetSamplerParameterIuiv")
-
-{-# NOINLINE glGetSamplerParameterIuivFunPtr #-}
-
--- | Usage: @'glGetSamplerParameterfv' sampler pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetSamplerParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
-glGetSamplerParameterfv = ffiuintenumPtrfloatIOV glGetSamplerParameterfvFunPtr
-
-glGetSamplerParameterfvFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
-glGetSamplerParameterfvFunPtr = unsafePerformIO (getProcAddress "glGetSamplerParameterfv")
-
-{-# NOINLINE glGetSamplerParameterfvFunPtr #-}
-
--- | Usage: @'glGetSamplerParameteriv' sampler pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetSamplerParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetSamplerParameteriv = ffiuintenumPtrintIOV glGetSamplerParameterivFunPtr
-
-glGetSamplerParameterivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetSamplerParameterivFunPtr = unsafePerformIO (getProcAddress "glGetSamplerParameteriv")
-
-{-# NOINLINE glGetSamplerParameterivFunPtr #-}
-
--- | Usage: @'glIsSampler' sampler@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsSampler.xhtml>
-
-
-glIsSampler :: MonadIO m => GLuint -> m GLboolean
-glIsSampler = ffiuintIOboolean glIsSamplerFunPtr
-
-glIsSamplerFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsSamplerFunPtr = unsafePerformIO (getProcAddress "glIsSampler")
-
-{-# NOINLINE glIsSamplerFunPtr #-}
-
--- | Usage: @'glQueryCounter' id target@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glQueryCounter.xhtml>
-
-
-glQueryCounter :: MonadIO m => GLuint -> GLenum -> m ()
-glQueryCounter = ffiuintenumIOV glQueryCounterFunPtr
-
-glQueryCounterFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
-glQueryCounterFunPtr = unsafePerformIO (getProcAddress "glQueryCounter")
-
-{-# NOINLINE glQueryCounterFunPtr #-}
-
--- | Usage: @'glSamplerParameterIiv' sampler pname param@
---
--- The length of @param@ should be @COMPSIZE(pname)@.
-
-
-glSamplerParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glSamplerParameterIiv = ffiuintenumPtrintIOV glSamplerParameterIivFunPtr
-
-glSamplerParameterIivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glSamplerParameterIivFunPtr = unsafePerformIO (getProcAddress "glSamplerParameterIiv")
-
-{-# NOINLINE glSamplerParameterIivFunPtr #-}
-
--- | Usage: @'glSamplerParameterIuiv' sampler pname param@
---
--- The length of @param@ should be @COMPSIZE(pname)@.
-
-
-glSamplerParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
-glSamplerParameterIuiv = ffiuintenumPtruintIOV glSamplerParameterIuivFunPtr
-
-glSamplerParameterIuivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
-glSamplerParameterIuivFunPtr = unsafePerformIO (getProcAddress "glSamplerParameterIuiv")
-
-{-# NOINLINE glSamplerParameterIuivFunPtr #-}
-
--- | Usage: @'glSamplerParameterf' sampler pname param@
-
-
-glSamplerParameterf :: MonadIO m => GLuint -> GLenum -> GLfloat -> m ()
-glSamplerParameterf = ffiuintenumfloatIOV glSamplerParameterfFunPtr
-
-glSamplerParameterfFunPtr :: FunPtr (GLuint -> GLenum -> GLfloat -> IO ())
-glSamplerParameterfFunPtr = unsafePerformIO (getProcAddress "glSamplerParameterf")
-
-{-# NOINLINE glSamplerParameterfFunPtr #-}
-
--- | Usage: @'glSamplerParameterfv' sampler pname param@
---
--- The length of @param@ should be @COMPSIZE(pname)@.
-
-
-glSamplerParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
-glSamplerParameterfv = ffiuintenumPtrfloatIOV glSamplerParameterfvFunPtr
-
-glSamplerParameterfvFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
-glSamplerParameterfvFunPtr = unsafePerformIO (getProcAddress "glSamplerParameterfv")
-
-{-# NOINLINE glSamplerParameterfvFunPtr #-}
-
--- | Usage: @'glSamplerParameteri' sampler pname param@
-
-
-glSamplerParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
-glSamplerParameteri = ffiuintenumintIOV glSamplerParameteriFunPtr
-
-glSamplerParameteriFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> IO ())
-glSamplerParameteriFunPtr = unsafePerformIO (getProcAddress "glSamplerParameteri")
-
-{-# NOINLINE glSamplerParameteriFunPtr #-}
-
--- | Usage: @'glSamplerParameteriv' sampler pname param@
---
--- The length of @param@ should be @COMPSIZE(pname)@.
-
-
-glSamplerParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glSamplerParameteriv = ffiuintenumPtrintIOV glSamplerParameterivFunPtr
-
-glSamplerParameterivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glSamplerParameterivFunPtr = unsafePerformIO (getProcAddress "glSamplerParameteriv")
-
-{-# NOINLINE glSamplerParameterivFunPtr #-}
-
--- | Usage: @'glVertexAttribDivisor' index divisor@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glVertexAttribDivisor.xhtml>
-
-
-glVertexAttribDivisor :: MonadIO m => GLuint -> GLuint -> m ()
-glVertexAttribDivisor = ffiuintuintIOV glVertexAttribDivisorFunPtr
-
-glVertexAttribDivisorFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
-glVertexAttribDivisorFunPtr = unsafePerformIO (getProcAddress "glVertexAttribDivisor")
-
-{-# NOINLINE glVertexAttribDivisorFunPtr #-}
-
--- | Usage: @'glVertexAttribP1ui' index type normalized value@
---
--- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
-
-
-glVertexAttribP1ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
-glVertexAttribP1ui = ffiuintenumbooleanuintIOV glVertexAttribP1uiFunPtr
-
-glVertexAttribP1uiFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> GLuint -> IO ())
-glVertexAttribP1uiFunPtr = unsafePerformIO (getProcAddress "glVertexAttribP1ui")
-
-{-# NOINLINE glVertexAttribP1uiFunPtr #-}
-
--- | Usage: @'glVertexAttribP1uiv' index type normalized value@
---
--- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @1@.
-
-
-glVertexAttribP1uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()
-glVertexAttribP1uiv = ffiuintenumbooleanPtruintIOV glVertexAttribP1uivFunPtr
-
-glVertexAttribP1uivFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> Ptr GLuint -> IO ())
-glVertexAttribP1uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribP1uiv")
-
-{-# NOINLINE glVertexAttribP1uivFunPtr #-}
-
--- | Usage: @'glVertexAttribP2ui' index type normalized value@
---
--- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
-
-
-glVertexAttribP2ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
-glVertexAttribP2ui = ffiuintenumbooleanuintIOV glVertexAttribP2uiFunPtr
-
-glVertexAttribP2uiFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> GLuint -> IO ())
-glVertexAttribP2uiFunPtr = unsafePerformIO (getProcAddress "glVertexAttribP2ui")
-
-{-# NOINLINE glVertexAttribP2uiFunPtr #-}
-
--- | Usage: @'glVertexAttribP2uiv' index type normalized value@
---
--- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @1@.
-
-
-glVertexAttribP2uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()
-glVertexAttribP2uiv = ffiuintenumbooleanPtruintIOV glVertexAttribP2uivFunPtr
-
-glVertexAttribP2uivFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> Ptr GLuint -> IO ())
-glVertexAttribP2uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribP2uiv")
-
-{-# NOINLINE glVertexAttribP2uivFunPtr #-}
-
--- | Usage: @'glVertexAttribP3ui' index type normalized value@
---
--- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
-
-
-glVertexAttribP3ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
-glVertexAttribP3ui = ffiuintenumbooleanuintIOV glVertexAttribP3uiFunPtr
-
-glVertexAttribP3uiFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> GLuint -> IO ())
-glVertexAttribP3uiFunPtr = unsafePerformIO (getProcAddress "glVertexAttribP3ui")
-
-{-# NOINLINE glVertexAttribP3uiFunPtr #-}
-
--- | Usage: @'glVertexAttribP3uiv' index type normalized value@
---
--- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @1@.
-
-
-glVertexAttribP3uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()
-glVertexAttribP3uiv = ffiuintenumbooleanPtruintIOV glVertexAttribP3uivFunPtr
-
-glVertexAttribP3uivFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> Ptr GLuint -> IO ())
-glVertexAttribP3uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribP3uiv")
-
-{-# NOINLINE glVertexAttribP3uivFunPtr #-}
-
--- | Usage: @'glVertexAttribP4ui' index type normalized value@
---
--- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
-
-
-glVertexAttribP4ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
-glVertexAttribP4ui = ffiuintenumbooleanuintIOV glVertexAttribP4uiFunPtr
-
-glVertexAttribP4uiFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> GLuint -> IO ())
-glVertexAttribP4uiFunPtr = unsafePerformIO (getProcAddress "glVertexAttribP4ui")
-
-{-# NOINLINE glVertexAttribP4uiFunPtr #-}
-
--- | Usage: @'glVertexAttribP4uiv' index type normalized value@
---
--- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @1@.
-
-
-glVertexAttribP4uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()
-glVertexAttribP4uiv = ffiuintenumbooleanPtruintIOV glVertexAttribP4uivFunPtr
-
-glVertexAttribP4uivFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> Ptr GLuint -> IO ())
-glVertexAttribP4uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribP4uiv")
-
-{-# NOINLINE glVertexAttribP4uivFunPtr #-}
-
-pattern GL_ANY_SAMPLES_PASSED = 0x8C2F
-
-pattern GL_INT_2_10_10_10_REV = 0x8D9F
-
-pattern GL_MAX_DUAL_SOURCE_DRAW_BUFFERS = 0x88FC
-
-pattern GL_ONE_MINUS_SRC1_ALPHA = 0x88FB
-
-pattern GL_ONE_MINUS_SRC1_COLOR = 0x88FA
-
-pattern GL_RGB10_A2UI = 0x906F
-
-pattern GL_SAMPLER_BINDING = 0x8919
-
-pattern GL_SRC1_COLOR = 0x88F9
-
-pattern GL_TEXTURE_SWIZZLE_A = 0x8E45
-
-pattern GL_TEXTURE_SWIZZLE_B = 0x8E44
-
-pattern GL_TEXTURE_SWIZZLE_G = 0x8E43
-
-pattern GL_TEXTURE_SWIZZLE_R = 0x8E42
-
-pattern GL_TEXTURE_SWIZZLE_RGBA = 0x8E46
-
-pattern GL_TIMESTAMP = 0x8E28
-
-pattern GL_TIME_ELAPSED = 0x88BF
-
-pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR = 0x88FE
-
--- | Usage: @'glBeginQueryIndexed' target index id@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBeginQueryIndexed.xhtml>
-
-
-glBeginQueryIndexed :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()
-glBeginQueryIndexed = ffienumuintuintIOV glBeginQueryIndexedFunPtr
-
-glBeginQueryIndexedFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> IO ())
-glBeginQueryIndexedFunPtr = unsafePerformIO (getProcAddress "glBeginQueryIndexed")
-
-{-# NOINLINE glBeginQueryIndexedFunPtr #-}
-
--- | Usage: @'glBindTransformFeedback' target id@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindTransformFeedback.xhtml>
-
-
-glBindTransformFeedback :: MonadIO m => GLenum -> GLuint -> m ()
-glBindTransformFeedback = ffienumuintIOV glBindTransformFeedbackFunPtr
-
-glBindTransformFeedbackFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glBindTransformFeedbackFunPtr = unsafePerformIO (getProcAddress "glBindTransformFeedback")
-
-{-# NOINLINE glBindTransformFeedbackFunPtr #-}
-
--- | Usage: @'glBlendEquationSeparatei' buf modeRGB modeAlpha@
-
-
-glBlendEquationSeparatei :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()
-glBlendEquationSeparatei = ffiuintenumenumIOV glBlendEquationSeparateiFunPtr
-
-glBlendEquationSeparateiFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> IO ())
-glBlendEquationSeparateiFunPtr = unsafePerformIO (getProcAddress "glBlendEquationSeparatei")
-
-{-# NOINLINE glBlendEquationSeparateiFunPtr #-}
-
--- | Usage: @'glBlendEquationi' buf mode@
-
-
-glBlendEquationi :: MonadIO m => GLuint -> GLenum -> m ()
-glBlendEquationi = ffiuintenumIOV glBlendEquationiFunPtr
-
-glBlendEquationiFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
-glBlendEquationiFunPtr = unsafePerformIO (getProcAddress "glBlendEquationi")
-
-{-# NOINLINE glBlendEquationiFunPtr #-}
-
--- | Usage: @'glBlendFuncSeparatei' buf srcRGB dstRGB srcAlpha dstAlpha@
-
-
-glBlendFuncSeparatei :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
-glBlendFuncSeparatei = ffiuintenumenumenumenumIOV glBlendFuncSeparateiFunPtr
-
-glBlendFuncSeparateiFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
-glBlendFuncSeparateiFunPtr = unsafePerformIO (getProcAddress "glBlendFuncSeparatei")
-
-{-# NOINLINE glBlendFuncSeparateiFunPtr #-}
-
--- | Usage: @'glBlendFunci' buf src dst@
-
-
-glBlendFunci :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()
-glBlendFunci = ffiuintenumenumIOV glBlendFunciFunPtr
-
-glBlendFunciFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> IO ())
-glBlendFunciFunPtr = unsafePerformIO (getProcAddress "glBlendFunci")
-
-{-# NOINLINE glBlendFunciFunPtr #-}
-
--- | Usage: @'glDeleteTransformFeedbacks' n ids@
---
--- The length of @ids@ should be @n@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDeleteTransformFeedbacks.xhtml>
-
-
-glDeleteTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glDeleteTransformFeedbacks = ffisizeiPtruintIOV glDeleteTransformFeedbacksFunPtr
-
-glDeleteTransformFeedbacksFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glDeleteTransformFeedbacksFunPtr = unsafePerformIO (getProcAddress "glDeleteTransformFeedbacks")
-
-{-# NOINLINE glDeleteTransformFeedbacksFunPtr #-}
-
--- | Usage: @'glDrawArraysIndirect' mode indirect@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawArraysIndirect.xhtml>
-
-
-glDrawArraysIndirect :: MonadIO m => GLenum -> Ptr () -> m ()
-glDrawArraysIndirect = ffienumPtrVIOV glDrawArraysIndirectFunPtr
-
-glDrawArraysIndirectFunPtr :: FunPtr (GLenum -> Ptr () -> IO ())
-glDrawArraysIndirectFunPtr = unsafePerformIO (getProcAddress "glDrawArraysIndirect")
-
-{-# NOINLINE glDrawArraysIndirectFunPtr #-}
-
--- | Usage: @'glDrawElementsIndirect' mode type indirect@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawElementsIndirect.xhtml>
-
-
-glDrawElementsIndirect :: MonadIO m => GLenum -> GLenum -> Ptr () -> m ()
-glDrawElementsIndirect = ffienumenumPtrVIOV glDrawElementsIndirectFunPtr
-
-glDrawElementsIndirectFunPtr :: FunPtr (GLenum -> GLenum -> Ptr () -> IO ())
-glDrawElementsIndirectFunPtr = unsafePerformIO (getProcAddress "glDrawElementsIndirect")
-
-{-# NOINLINE glDrawElementsIndirectFunPtr #-}
-
--- | Usage: @'glDrawTransformFeedback' mode id@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawTransformFeedback.xhtml>
-
-
-glDrawTransformFeedback :: MonadIO m => GLenum -> GLuint -> m ()
-glDrawTransformFeedback = ffienumuintIOV glDrawTransformFeedbackFunPtr
-
-glDrawTransformFeedbackFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glDrawTransformFeedbackFunPtr = unsafePerformIO (getProcAddress "glDrawTransformFeedback")
-
-{-# NOINLINE glDrawTransformFeedbackFunPtr #-}
-
--- | Usage: @'glDrawTransformFeedbackStream' mode id stream@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawTransformFeedbackStream.xhtml>
-
-
-glDrawTransformFeedbackStream :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()
-glDrawTransformFeedbackStream = ffienumuintuintIOV glDrawTransformFeedbackStreamFunPtr
-
-glDrawTransformFeedbackStreamFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> IO ())
-glDrawTransformFeedbackStreamFunPtr = unsafePerformIO (getProcAddress "glDrawTransformFeedbackStream")
-
-{-# NOINLINE glDrawTransformFeedbackStreamFunPtr #-}
-
--- | Usage: @'glEndQueryIndexed' target index@
-
-
-glEndQueryIndexed :: MonadIO m => GLenum -> GLuint -> m ()
-glEndQueryIndexed = ffienumuintIOV glEndQueryIndexedFunPtr
-
-glEndQueryIndexedFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glEndQueryIndexedFunPtr = unsafePerformIO (getProcAddress "glEndQueryIndexed")
-
-{-# NOINLINE glEndQueryIndexedFunPtr #-}
-
--- | Usage: @'glGenTransformFeedbacks' n ids@
---
--- The length of @ids@ should be @n@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGenTransformFeedbacks.xhtml>
-
-
-glGenTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glGenTransformFeedbacks = ffisizeiPtruintIOV glGenTransformFeedbacksFunPtr
-
-glGenTransformFeedbacksFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glGenTransformFeedbacksFunPtr = unsafePerformIO (getProcAddress "glGenTransformFeedbacks")
-
-{-# NOINLINE glGenTransformFeedbacksFunPtr #-}
-
--- | Usage: @'glGetActiveSubroutineName' program shadertype index bufsize length name@
---
--- The length of @length@ should be @1@.
---
--- The length of @name@ should be @bufsize@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetActiveSubroutineName.xhtml>
-
-
-glGetActiveSubroutineName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
-glGetActiveSubroutineName = ffiuintenumuintsizeiPtrsizeiPtrcharIOV glGetActiveSubroutineNameFunPtr
-
-glGetActiveSubroutineNameFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
-glGetActiveSubroutineNameFunPtr = unsafePerformIO (getProcAddress "glGetActiveSubroutineName")
-
-{-# NOINLINE glGetActiveSubroutineNameFunPtr #-}
-
--- | Usage: @'glGetActiveSubroutineUniformName' program shadertype index bufsize length name@
---
--- The length of @length@ should be @1@.
---
--- The length of @name@ should be @bufsize@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetActiveSubroutineUniformName.xhtml>
-
-
-glGetActiveSubroutineUniformName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
-glGetActiveSubroutineUniformName = ffiuintenumuintsizeiPtrsizeiPtrcharIOV glGetActiveSubroutineUniformNameFunPtr
-
-glGetActiveSubroutineUniformNameFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
-glGetActiveSubroutineUniformNameFunPtr = unsafePerformIO (getProcAddress "glGetActiveSubroutineUniformName")
-
-{-# NOINLINE glGetActiveSubroutineUniformNameFunPtr #-}
-
--- | Usage: @'glGetActiveSubroutineUniformiv' program shadertype index pname values@
---
--- The length of @values@ should be @COMPSIZE(pname)@.
-
-
-glGetActiveSubroutineUniformiv :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()
-glGetActiveSubroutineUniformiv = ffiuintenumuintenumPtrintIOV glGetActiveSubroutineUniformivFunPtr
-
-glGetActiveSubroutineUniformivFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetActiveSubroutineUniformivFunPtr = unsafePerformIO (getProcAddress "glGetActiveSubroutineUniformiv")
-
-{-# NOINLINE glGetActiveSubroutineUniformivFunPtr #-}
-
--- | Usage: @'glGetProgramStageiv' program shadertype pname values@
---
--- The length of @values@ should be @1@.
-
-
-glGetProgramStageiv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
-glGetProgramStageiv = ffiuintenumenumPtrintIOV glGetProgramStageivFunPtr
-
-glGetProgramStageivFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetProgramStageivFunPtr = unsafePerformIO (getProcAddress "glGetProgramStageiv")
-
-{-# NOINLINE glGetProgramStageivFunPtr #-}
-
--- | Usage: @'glGetQueryIndexediv' target index pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetQueryIndexediv :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()
-glGetQueryIndexediv = ffienumuintenumPtrintIOV glGetQueryIndexedivFunPtr
-
-glGetQueryIndexedivFunPtr :: FunPtr (GLenum -> GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetQueryIndexedivFunPtr = unsafePerformIO (getProcAddress "glGetQueryIndexediv")
-
-{-# NOINLINE glGetQueryIndexedivFunPtr #-}
-
--- | Usage: @'glGetSubroutineIndex' program shadertype name@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetSubroutineIndex.xhtml>
-
-
-glGetSubroutineIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLuint
-glGetSubroutineIndex = ffiuintenumPtrcharIOuint glGetSubroutineIndexFunPtr
-
-glGetSubroutineIndexFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLuint)
-glGetSubroutineIndexFunPtr = unsafePerformIO (getProcAddress "glGetSubroutineIndex")
-
-{-# NOINLINE glGetSubroutineIndexFunPtr #-}
-
--- | Usage: @'glGetSubroutineUniformLocation' program shadertype name@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetSubroutineUniformLocation.xhtml>
-
-
-glGetSubroutineUniformLocation :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint
-glGetSubroutineUniformLocation = ffiuintenumPtrcharIOint glGetSubroutineUniformLocationFunPtr
-
-glGetSubroutineUniformLocationFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLint)
-glGetSubroutineUniformLocationFunPtr = unsafePerformIO (getProcAddress "glGetSubroutineUniformLocation")
-
-{-# NOINLINE glGetSubroutineUniformLocationFunPtr #-}
-
--- | Usage: @'glGetUniformSubroutineuiv' shadertype location params@
---
--- The length of @params@ should be @1@.
-
-
-glGetUniformSubroutineuiv :: MonadIO m => GLenum -> GLint -> Ptr GLuint -> m ()
-glGetUniformSubroutineuiv = ffienumintPtruintIOV glGetUniformSubroutineuivFunPtr
-
-glGetUniformSubroutineuivFunPtr :: FunPtr (GLenum -> GLint -> Ptr GLuint -> IO ())
-glGetUniformSubroutineuivFunPtr = unsafePerformIO (getProcAddress "glGetUniformSubroutineuiv")
-
-{-# NOINLINE glGetUniformSubroutineuivFunPtr #-}
-
--- | Usage: @'glGetUniformdv' program location params@
---
--- The length of @params@ should be @COMPSIZE(program,location)@.
-
-
-glGetUniformdv :: MonadIO m => GLuint -> GLint -> Ptr GLdouble -> m ()
-glGetUniformdv = ffiuintintPtrdoubleIOV glGetUniformdvFunPtr
-
-glGetUniformdvFunPtr :: FunPtr (GLuint -> GLint -> Ptr GLdouble -> IO ())
-glGetUniformdvFunPtr = unsafePerformIO (getProcAddress "glGetUniformdv")
-
-{-# NOINLINE glGetUniformdvFunPtr #-}
-
--- | Usage: @'glIsTransformFeedback' id@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsTransformFeedback.xhtml>
-
-
-glIsTransformFeedback :: MonadIO m => GLuint -> m GLboolean
-glIsTransformFeedback = ffiuintIOboolean glIsTransformFeedbackFunPtr
-
-glIsTransformFeedbackFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsTransformFeedbackFunPtr = unsafePerformIO (getProcAddress "glIsTransformFeedback")
-
-{-# NOINLINE glIsTransformFeedbackFunPtr #-}
-
--- | Usage: @'glMinSampleShading' value@
---
--- The parameter @value@ is a @ColorF@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glMinSampleShading.xhtml>
-
-
-glMinSampleShading :: MonadIO m => GLfloat -> m ()
-glMinSampleShading = ffifloatIOV glMinSampleShadingFunPtr
-
-glMinSampleShadingFunPtr :: FunPtr (GLfloat -> IO ())
-glMinSampleShadingFunPtr = unsafePerformIO (getProcAddress "glMinSampleShading")
-
-{-# NOINLINE glMinSampleShadingFunPtr #-}
-
--- | Usage: @'glPatchParameterfv' pname values@
---
--- The length of @values@ should be @COMPSIZE(pname)@.
-
-
-glPatchParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
-glPatchParameterfv = ffienumPtrfloatIOV glPatchParameterfvFunPtr
-
-glPatchParameterfvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
-glPatchParameterfvFunPtr = unsafePerformIO (getProcAddress "glPatchParameterfv")
-
-{-# NOINLINE glPatchParameterfvFunPtr #-}
-
--- | Usage: @'glPatchParameteri' pname value@
-
-
-glPatchParameteri :: MonadIO m => GLenum -> GLint -> m ()
-glPatchParameteri = ffienumintIOV glPatchParameteriFunPtr
-
-glPatchParameteriFunPtr :: FunPtr (GLenum -> GLint -> IO ())
-glPatchParameteriFunPtr = unsafePerformIO (getProcAddress "glPatchParameteri")
-
-{-# NOINLINE glPatchParameteriFunPtr #-}
-
--- | Usage: @'glPauseTransformFeedback'@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glPauseTransformFeedback.xhtml>
-
-
-glPauseTransformFeedback :: MonadIO m => m ()
-glPauseTransformFeedback = ffiIOV glPauseTransformFeedbackFunPtr
-
-glPauseTransformFeedbackFunPtr :: FunPtr (IO ())
-glPauseTransformFeedbackFunPtr = unsafePerformIO (getProcAddress "glPauseTransformFeedback")
-
-{-# NOINLINE glPauseTransformFeedbackFunPtr #-}
-
--- | Usage: @'glResumeTransformFeedback'@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glResumeTransformFeedback.xhtml>
-
-
-glResumeTransformFeedback :: MonadIO m => m ()
-glResumeTransformFeedback = ffiIOV glResumeTransformFeedbackFunPtr
-
-glResumeTransformFeedbackFunPtr :: FunPtr (IO ())
-glResumeTransformFeedbackFunPtr = unsafePerformIO (getProcAddress "glResumeTransformFeedback")
-
-{-# NOINLINE glResumeTransformFeedbackFunPtr #-}
-
--- | Usage: @'glUniform1d' location x@
-
-
-glUniform1d :: MonadIO m => GLint -> GLdouble -> m ()
-glUniform1d = ffiintdoubleIOV glUniform1dFunPtr
-
-glUniform1dFunPtr :: FunPtr (GLint -> GLdouble -> IO ())
-glUniform1dFunPtr = unsafePerformIO (getProcAddress "glUniform1d")
-
-{-# NOINLINE glUniform1dFunPtr #-}
-
--- | Usage: @'glUniform1dv' location count value@
---
--- The length of @value@ should be @count*1@.
-
-
-glUniform1dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()
-glUniform1dv = ffiintsizeiPtrdoubleIOV glUniform1dvFunPtr
-
-glUniform1dvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLdouble -> IO ())
-glUniform1dvFunPtr = unsafePerformIO (getProcAddress "glUniform1dv")
-
-{-# NOINLINE glUniform1dvFunPtr #-}
-
--- | Usage: @'glUniform2d' location x y@
-
-
-glUniform2d :: MonadIO m => GLint -> GLdouble -> GLdouble -> m ()
-glUniform2d = ffiintdoubledoubleIOV glUniform2dFunPtr
-
-glUniform2dFunPtr :: FunPtr (GLint -> GLdouble -> GLdouble -> IO ())
-glUniform2dFunPtr = unsafePerformIO (getProcAddress "glUniform2d")
-
-{-# NOINLINE glUniform2dFunPtr #-}
-
--- | Usage: @'glUniform2dv' location count value@
---
--- The length of @value@ should be @count*2@.
-
-
-glUniform2dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()
-glUniform2dv = ffiintsizeiPtrdoubleIOV glUniform2dvFunPtr
-
-glUniform2dvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLdouble -> IO ())
-glUniform2dvFunPtr = unsafePerformIO (getProcAddress "glUniform2dv")
-
-{-# NOINLINE glUniform2dvFunPtr #-}
-
--- | Usage: @'glUniform3d' location x y z@
-
-
-glUniform3d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLdouble -> m ()
-glUniform3d = ffiintdoubledoubledoubleIOV glUniform3dFunPtr
-
-glUniform3dFunPtr :: FunPtr (GLint -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glUniform3dFunPtr = unsafePerformIO (getProcAddress "glUniform3d")
-
-{-# NOINLINE glUniform3dFunPtr #-}
-
--- | Usage: @'glUniform3dv' location count value@
---
--- The length of @value@ should be @count*3@.
-
-
-glUniform3dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()
-glUniform3dv = ffiintsizeiPtrdoubleIOV glUniform3dvFunPtr
-
-glUniform3dvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLdouble -> IO ())
-glUniform3dvFunPtr = unsafePerformIO (getProcAddress "glUniform3dv")
-
-{-# NOINLINE glUniform3dvFunPtr #-}
-
--- | Usage: @'glUniform4d' location x y z w@
-
-
-glUniform4d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-glUniform4d = ffiintdoubledoubledoubledoubleIOV glUniform4dFunPtr
-
-glUniform4dFunPtr :: FunPtr (GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glUniform4dFunPtr = unsafePerformIO (getProcAddress "glUniform4d")
-
-{-# NOINLINE glUniform4dFunPtr #-}
-
--- | Usage: @'glUniform4dv' location count value@
---
--- The length of @value@ should be @count*4@.
-
-
-glUniform4dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()
-glUniform4dv = ffiintsizeiPtrdoubleIOV glUniform4dvFunPtr
-
-glUniform4dvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLdouble -> IO ())
-glUniform4dvFunPtr = unsafePerformIO (getProcAddress "glUniform4dv")
-
-{-# NOINLINE glUniform4dvFunPtr #-}
-
--- | Usage: @'glUniformMatrix2dv' location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*4@.
-
-
-glUniformMatrix2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glUniformMatrix2dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix2dvFunPtr
-
-glUniformMatrix2dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glUniformMatrix2dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix2dv")
-
-{-# NOINLINE glUniformMatrix2dvFunPtr #-}
-
--- | Usage: @'glUniformMatrix2x3dv' location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*6@.
-
-
-glUniformMatrix2x3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glUniformMatrix2x3dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix2x3dvFunPtr
-
-glUniformMatrix2x3dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glUniformMatrix2x3dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix2x3dv")
-
-{-# NOINLINE glUniformMatrix2x3dvFunPtr #-}
-
--- | Usage: @'glUniformMatrix2x4dv' location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*8@.
-
-
-glUniformMatrix2x4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glUniformMatrix2x4dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix2x4dvFunPtr
-
-glUniformMatrix2x4dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glUniformMatrix2x4dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix2x4dv")
-
-{-# NOINLINE glUniformMatrix2x4dvFunPtr #-}
-
--- | Usage: @'glUniformMatrix3dv' location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*9@.
-
-
-glUniformMatrix3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glUniformMatrix3dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix3dvFunPtr
-
-glUniformMatrix3dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glUniformMatrix3dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix3dv")
-
-{-# NOINLINE glUniformMatrix3dvFunPtr #-}
-
--- | Usage: @'glUniformMatrix3x2dv' location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*6@.
-
-
-glUniformMatrix3x2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glUniformMatrix3x2dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix3x2dvFunPtr
-
-glUniformMatrix3x2dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glUniformMatrix3x2dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix3x2dv")
-
-{-# NOINLINE glUniformMatrix3x2dvFunPtr #-}
-
--- | Usage: @'glUniformMatrix3x4dv' location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*12@.
-
-
-glUniformMatrix3x4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glUniformMatrix3x4dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix3x4dvFunPtr
-
-glUniformMatrix3x4dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glUniformMatrix3x4dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix3x4dv")
-
-{-# NOINLINE glUniformMatrix3x4dvFunPtr #-}
-
--- | Usage: @'glUniformMatrix4dv' location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*16@.
-
-
-glUniformMatrix4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glUniformMatrix4dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix4dvFunPtr
-
-glUniformMatrix4dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glUniformMatrix4dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix4dv")
-
-{-# NOINLINE glUniformMatrix4dvFunPtr #-}
-
--- | Usage: @'glUniformMatrix4x2dv' location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*8@.
-
-
-glUniformMatrix4x2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glUniformMatrix4x2dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix4x2dvFunPtr
-
-glUniformMatrix4x2dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glUniformMatrix4x2dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix4x2dv")
-
-{-# NOINLINE glUniformMatrix4x2dvFunPtr #-}
-
--- | Usage: @'glUniformMatrix4x3dv' location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*12@.
-
-
-glUniformMatrix4x3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glUniformMatrix4x3dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix4x3dvFunPtr
-
-glUniformMatrix4x3dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glUniformMatrix4x3dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix4x3dv")
-
-{-# NOINLINE glUniformMatrix4x3dvFunPtr #-}
-
--- | Usage: @'glUniformSubroutinesuiv' shadertype count indices@
---
--- The length of @indices@ should be @count@.
-
-
-glUniformSubroutinesuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()
-glUniformSubroutinesuiv = ffienumsizeiPtruintIOV glUniformSubroutinesuivFunPtr
-
-glUniformSubroutinesuivFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLuint -> IO ())
-glUniformSubroutinesuivFunPtr = unsafePerformIO (getProcAddress "glUniformSubroutinesuiv")
-
-{-# NOINLINE glUniformSubroutinesuivFunPtr #-}
-
-pattern GL_ACTIVE_SUBROUTINES = 0x8DE5
-
-pattern GL_ACTIVE_SUBROUTINE_MAX_LENGTH = 0x8E48
-
-pattern GL_ACTIVE_SUBROUTINE_UNIFORMS = 0x8DE6
-
-pattern GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS = 0x8E47
-
-pattern GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH = 0x8E49
-
-pattern GL_COMPATIBLE_SUBROUTINES = 0x8E4B
-
-pattern GL_DOUBLE_MAT2 = 0x8F46
-
-pattern GL_DOUBLE_MAT2x3 = 0x8F49
-
-pattern GL_DOUBLE_MAT2x4 = 0x8F4A
-
-pattern GL_DOUBLE_MAT3 = 0x8F47
-
-pattern GL_DOUBLE_MAT3x2 = 0x8F4B
-
-pattern GL_DOUBLE_MAT3x4 = 0x8F4C
-
-pattern GL_DOUBLE_MAT4 = 0x8F48
-
-pattern GL_DOUBLE_MAT4x2 = 0x8F4D
-
-pattern GL_DOUBLE_MAT4x3 = 0x8F4E
-
-pattern GL_DOUBLE_VEC2 = 0x8FFC
-
-pattern GL_DOUBLE_VEC3 = 0x8FFD
-
-pattern GL_DOUBLE_VEC4 = 0x8FFE
-
-pattern GL_DRAW_INDIRECT_BUFFER = 0x8F3F
-
-pattern GL_DRAW_INDIRECT_BUFFER_BINDING = 0x8F43
-
-pattern GL_FRACTIONAL_EVEN = 0x8E7C
-
-pattern GL_FRACTIONAL_ODD = 0x8E7B
-
-pattern GL_FRAGMENT_INTERPOLATION_OFFSET_BITS = 0x8E5D
-
-pattern GL_GEOMETRY_SHADER_INVOCATIONS = 0x887F
-
-pattern GL_INT_SAMPLER_CUBE_MAP_ARRAY = 0x900E
-
-pattern GL_ISOLINES = 0x8E7A
-
-pattern GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS = 0x8E1E
-
-pattern GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS = 0x8E1F
-
-pattern GL_MAX_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5C
-
-pattern GL_MAX_GEOMETRY_SHADER_INVOCATIONS = 0x8E5A
-
-pattern GL_MAX_PATCH_VERTICES = 0x8E7D
-
-pattern GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5F
-
-pattern GL_MAX_SUBROUTINES = 0x8DE7
-
-pattern GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS = 0x8DE8
-
-pattern GL_MAX_TESS_CONTROL_INPUT_COMPONENTS = 0x886C
-
-pattern GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS = 0x8E83
-
-pattern GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS = 0x8E81
-
-pattern GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS = 0x8E85
-
-pattern GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS = 0x8E89
-
-pattern GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS = 0x8E7F
-
-pattern GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS = 0x886D
-
-pattern GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS = 0x8E86
-
-pattern GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS = 0x8E82
-
-pattern GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS = 0x8E8A
-
-pattern GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS = 0x8E80
-
-pattern GL_MAX_TESS_GEN_LEVEL = 0x8E7E
-
-pattern GL_MAX_TESS_PATCH_COMPONENTS = 0x8E84
-
-pattern GL_MAX_TRANSFORM_FEEDBACK_BUFFERS = 0x8E70
-
-pattern GL_MAX_VERTEX_STREAMS = 0x8E71
-
-pattern GL_MIN_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5B
-
-pattern GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5E
-
-pattern GL_MIN_SAMPLE_SHADING_VALUE = 0x8C37
-
-pattern GL_NUM_COMPATIBLE_SUBROUTINES = 0x8E4A
-
-pattern GL_PATCHES = 0x000E
-
-pattern GL_PATCH_DEFAULT_INNER_LEVEL = 0x8E73
-
-pattern GL_PATCH_DEFAULT_OUTER_LEVEL = 0x8E74
-
-pattern GL_PATCH_VERTICES = 0x8E72
-
-pattern GL_SAMPLER_CUBE_MAP_ARRAY = 0x900C
-
-pattern GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW = 0x900D
-
-pattern GL_SAMPLE_SHADING = 0x8C36
-
-pattern GL_TESS_CONTROL_OUTPUT_VERTICES = 0x8E75
-
-pattern GL_TESS_CONTROL_SHADER = 0x8E88
-
-pattern GL_TESS_EVALUATION_SHADER = 0x8E87
-
-pattern GL_TESS_GEN_MODE = 0x8E76
-
-pattern GL_TESS_GEN_POINT_MODE = 0x8E79
-
-pattern GL_TESS_GEN_SPACING = 0x8E77
-
-pattern GL_TESS_GEN_VERTEX_ORDER = 0x8E78
-
-pattern GL_TEXTURE_BINDING_CUBE_MAP_ARRAY = 0x900A
-
-pattern GL_TEXTURE_CUBE_MAP_ARRAY = 0x9009
-
-pattern GL_TRANSFORM_FEEDBACK = 0x8E22
-
-pattern GL_TRANSFORM_FEEDBACK_BINDING = 0x8E25
-
-pattern GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE = 0x8E24
-
-pattern GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED = 0x8E23
-
-pattern GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER = 0x84F0
-
-pattern GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x84F1
-
-pattern GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY = 0x900F
-
--- | Usage: @'glActiveShaderProgram' pipeline program@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glActiveShaderProgram.xhtml>
-
-
-glActiveShaderProgram :: MonadIO m => GLuint -> GLuint -> m ()
-glActiveShaderProgram = ffiuintuintIOV glActiveShaderProgramFunPtr
-
-glActiveShaderProgramFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
-glActiveShaderProgramFunPtr = unsafePerformIO (getProcAddress "glActiveShaderProgram")
-
-{-# NOINLINE glActiveShaderProgramFunPtr #-}
-
--- | Usage: @'glBindProgramPipeline' pipeline@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindProgramPipeline.xhtml>
-
-
-glBindProgramPipeline :: MonadIO m => GLuint -> m ()
-glBindProgramPipeline = ffiuintIOV glBindProgramPipelineFunPtr
-
-glBindProgramPipelineFunPtr :: FunPtr (GLuint -> IO ())
-glBindProgramPipelineFunPtr = unsafePerformIO (getProcAddress "glBindProgramPipeline")
-
-{-# NOINLINE glBindProgramPipelineFunPtr #-}
-
--- | Usage: @'glClearDepthf' d@
-
-
-glClearDepthf :: MonadIO m => GLfloat -> m ()
-glClearDepthf = ffifloatIOV glClearDepthfFunPtr
-
-glClearDepthfFunPtr :: FunPtr (GLfloat -> IO ())
-glClearDepthfFunPtr = unsafePerformIO (getProcAddress "glClearDepthf")
-
-{-# NOINLINE glClearDepthfFunPtr #-}
-
--- | Usage: @'glCreateShaderProgramv' type count strings@
---
--- The length of @strings@ should be @count@.
-
-
-glCreateShaderProgramv :: MonadIO m => GLenum -> GLsizei -> Ptr (Ptr GLchar) -> m GLuint
-glCreateShaderProgramv = ffienumsizeiPtrPtrcharIOuint glCreateShaderProgramvFunPtr
-
-glCreateShaderProgramvFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr (Ptr GLchar) -> IO GLuint)
-glCreateShaderProgramvFunPtr = unsafePerformIO (getProcAddress "glCreateShaderProgramv")
-
-{-# NOINLINE glCreateShaderProgramvFunPtr #-}
-
--- | Usage: @'glDeleteProgramPipelines' n pipelines@
---
--- The length of @pipelines@ should be @n@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDeleteProgramPipelines.xhtml>
-
-
-glDeleteProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glDeleteProgramPipelines = ffisizeiPtruintIOV glDeleteProgramPipelinesFunPtr
-
-glDeleteProgramPipelinesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glDeleteProgramPipelinesFunPtr = unsafePerformIO (getProcAddress "glDeleteProgramPipelines")
-
-{-# NOINLINE glDeleteProgramPipelinesFunPtr #-}
-
--- | Usage: @'glDepthRangeArrayv' first count v@
---
--- The length of @v@ should be @COMPSIZE(count)@.
-
-
-glDepthRangeArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLdouble -> m ()
-glDepthRangeArrayv = ffiuintsizeiPtrdoubleIOV glDepthRangeArrayvFunPtr
-
-glDepthRangeArrayvFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ())
-glDepthRangeArrayvFunPtr = unsafePerformIO (getProcAddress "glDepthRangeArrayv")
-
-{-# NOINLINE glDepthRangeArrayvFunPtr #-}
-
--- | Usage: @'glDepthRangeIndexed' index n f@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDepthRangeIndexed.xhtml>
-
-
-glDepthRangeIndexed :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()
-glDepthRangeIndexed = ffiuintdoubledoubleIOV glDepthRangeIndexedFunPtr
-
-glDepthRangeIndexedFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> IO ())
-glDepthRangeIndexedFunPtr = unsafePerformIO (getProcAddress "glDepthRangeIndexed")
-
-{-# NOINLINE glDepthRangeIndexedFunPtr #-}
-
--- | Usage: @'glDepthRangef' n f@
-
-
-glDepthRangef :: MonadIO m => GLfloat -> GLfloat -> m ()
-glDepthRangef = ffifloatfloatIOV glDepthRangefFunPtr
-
-glDepthRangefFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())
-glDepthRangefFunPtr = unsafePerformIO (getProcAddress "glDepthRangef")
-
-{-# NOINLINE glDepthRangefFunPtr #-}
-
--- | Usage: @'glGenProgramPipelines' n pipelines@
---
--- The length of @pipelines@ should be @n@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGenProgramPipelines.xhtml>
-
-
-glGenProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glGenProgramPipelines = ffisizeiPtruintIOV glGenProgramPipelinesFunPtr
-
-glGenProgramPipelinesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glGenProgramPipelinesFunPtr = unsafePerformIO (getProcAddress "glGenProgramPipelines")
-
-{-# NOINLINE glGenProgramPipelinesFunPtr #-}
-
--- | Usage: @'glGetDoublei_v' target index data@
---
--- The length of @data@ should be @COMPSIZE(target)@.
-
-
-glGetDoublei_v :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()
-glGetDoublei_v = ffienumuintPtrdoubleIOV glGetDoublei_vFunPtr
-
-glGetDoublei_vFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())
-glGetDoublei_vFunPtr = unsafePerformIO (getProcAddress "glGetDoublei_v")
-
-{-# NOINLINE glGetDoublei_vFunPtr #-}
-
--- | Usage: @'glGetFloati_v' target index data@
---
--- The parameter @target@ is a @TypeEnum@.
---
--- The length of @data@ should be @COMPSIZE(target)@.
-
-
-glGetFloati_v :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
-glGetFloati_v = ffienumuintPtrfloatIOV glGetFloati_vFunPtr
-
-glGetFloati_vFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
-glGetFloati_vFunPtr = unsafePerformIO (getProcAddress "glGetFloati_v")
-
-{-# NOINLINE glGetFloati_vFunPtr #-}
-
--- | Usage: @'glGetProgramBinary' program bufSize length binaryFormat binary@
---
--- The length of @length@ should be @1@.
---
--- The length of @binaryFormat@ should be @1@.
---
--- The length of @binary@ should be @bufSize@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetProgramBinary.xhtml>
-
-
-glGetProgramBinary :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr () -> m ()
-glGetProgramBinary = ffiuintsizeiPtrsizeiPtrenumPtrVIOV glGetProgramBinaryFunPtr
-
-glGetProgramBinaryFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr () -> IO ())
-glGetProgramBinaryFunPtr = unsafePerformIO (getProcAddress "glGetProgramBinary")
-
-{-# NOINLINE glGetProgramBinaryFunPtr #-}
-
--- | Usage: @'glGetProgramPipelineInfoLog' pipeline bufSize length infoLog@
---
--- The length of @length@ should be @1@.
---
--- The length of @infoLog@ should be @bufSize@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetProgramPipelineInfoLog.xhtml>
-
-
-glGetProgramPipelineInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
-glGetProgramPipelineInfoLog = ffiuintsizeiPtrsizeiPtrcharIOV glGetProgramPipelineInfoLogFunPtr
-
-glGetProgramPipelineInfoLogFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
-glGetProgramPipelineInfoLogFunPtr = unsafePerformIO (getProcAddress "glGetProgramPipelineInfoLog")
-
-{-# NOINLINE glGetProgramPipelineInfoLogFunPtr #-}
-
--- | Usage: @'glGetProgramPipelineiv' pipeline pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetProgramPipelineiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetProgramPipelineiv = ffiuintenumPtrintIOV glGetProgramPipelineivFunPtr
-
-glGetProgramPipelineivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetProgramPipelineivFunPtr = unsafePerformIO (getProcAddress "glGetProgramPipelineiv")
-
-{-# NOINLINE glGetProgramPipelineivFunPtr #-}
-
--- | Usage: @'glGetShaderPrecisionFormat' shadertype precisiontype range precision@
---
--- The length of @range@ should be @2@.
---
--- The length of @precision@ should be @2@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetShaderPrecisionFormat.xhtml>
-
-
-glGetShaderPrecisionFormat :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> m ()
-glGetShaderPrecisionFormat = ffienumenumPtrintPtrintIOV glGetShaderPrecisionFormatFunPtr
-
-glGetShaderPrecisionFormatFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> IO ())
-glGetShaderPrecisionFormatFunPtr = unsafePerformIO (getProcAddress "glGetShaderPrecisionFormat")
-
-{-# NOINLINE glGetShaderPrecisionFormatFunPtr #-}
-
--- | Usage: @'glGetVertexAttribLdv' index pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetVertexAttribLdv :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()
-glGetVertexAttribLdv = ffiuintenumPtrdoubleIOV glGetVertexAttribLdvFunPtr
-
-glGetVertexAttribLdvFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLdouble -> IO ())
-glGetVertexAttribLdvFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribLdv")
-
-{-# NOINLINE glGetVertexAttribLdvFunPtr #-}
-
--- | Usage: @'glIsProgramPipeline' pipeline@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsProgramPipeline.xhtml>
-
-
-glIsProgramPipeline :: MonadIO m => GLuint -> m GLboolean
-glIsProgramPipeline = ffiuintIOboolean glIsProgramPipelineFunPtr
-
-glIsProgramPipelineFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsProgramPipelineFunPtr = unsafePerformIO (getProcAddress "glIsProgramPipeline")
-
-{-# NOINLINE glIsProgramPipelineFunPtr #-}
-
--- | Usage: @'glProgramBinary' program binaryFormat binary length@
---
--- The length of @binary@ should be @length@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glProgramBinary.xhtml>
-
-
-glProgramBinary :: MonadIO m => GLuint -> GLenum -> Ptr () -> GLsizei -> m ()
-glProgramBinary = ffiuintenumPtrVsizeiIOV glProgramBinaryFunPtr
-
-glProgramBinaryFunPtr :: FunPtr (GLuint -> GLenum -> Ptr () -> GLsizei -> IO ())
-glProgramBinaryFunPtr = unsafePerformIO (getProcAddress "glProgramBinary")
-
-{-# NOINLINE glProgramBinaryFunPtr #-}
-
--- | Usage: @'glProgramParameteri' program pname value@
---
--- The parameter @pname@ is a @ProgramParameterPName@.
-
-
-glProgramParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
-glProgramParameteri = ffiuintenumintIOV glProgramParameteriFunPtr
-
-glProgramParameteriFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> IO ())
-glProgramParameteriFunPtr = unsafePerformIO (getProcAddress "glProgramParameteri")
-
-{-# NOINLINE glProgramParameteriFunPtr #-}
-
--- | Usage: @'glProgramUniform1d' program location v0@
-
-
-glProgramUniform1d :: MonadIO m => GLuint -> GLint -> GLdouble -> m ()
-glProgramUniform1d = ffiuintintdoubleIOV glProgramUniform1dFunPtr
-
-glProgramUniform1dFunPtr :: FunPtr (GLuint -> GLint -> GLdouble -> IO ())
-glProgramUniform1dFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1d")
-
-{-# NOINLINE glProgramUniform1dFunPtr #-}
-
--- | Usage: @'glProgramUniform1dv' program location count value@
---
--- The length of @value@ should be @count@.
-
-
-glProgramUniform1dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
-glProgramUniform1dv = ffiuintintsizeiPtrdoubleIOV glProgramUniform1dvFunPtr
-
-glProgramUniform1dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())
-glProgramUniform1dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1dv")
-
-{-# NOINLINE glProgramUniform1dvFunPtr #-}
-
--- | Usage: @'glProgramUniform1f' program location v0@
-
-
-glProgramUniform1f :: MonadIO m => GLuint -> GLint -> GLfloat -> m ()
-glProgramUniform1f = ffiuintintfloatIOV glProgramUniform1fFunPtr
-
-glProgramUniform1fFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> IO ())
-glProgramUniform1fFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1f")
-
-{-# NOINLINE glProgramUniform1fFunPtr #-}
-
--- | Usage: @'glProgramUniform1fv' program location count value@
---
--- The length of @value@ should be @count@.
-
-
-glProgramUniform1fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
-glProgramUniform1fv = ffiuintintsizeiPtrfloatIOV glProgramUniform1fvFunPtr
-
-glProgramUniform1fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
-glProgramUniform1fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1fv")
-
-{-# NOINLINE glProgramUniform1fvFunPtr #-}
-
--- | Usage: @'glProgramUniform1i' program location v0@
-
-
-glProgramUniform1i :: MonadIO m => GLuint -> GLint -> GLint -> m ()
-glProgramUniform1i = ffiuintintintIOV glProgramUniform1iFunPtr
-
-glProgramUniform1iFunPtr :: FunPtr (GLuint -> GLint -> GLint -> IO ())
-glProgramUniform1iFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1i")
-
-{-# NOINLINE glProgramUniform1iFunPtr #-}
-
--- | Usage: @'glProgramUniform1iv' program location count value@
---
--- The length of @value@ should be @count@.
-
-
-glProgramUniform1iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
-glProgramUniform1iv = ffiuintintsizeiPtrintIOV glProgramUniform1ivFunPtr
-
-glProgramUniform1ivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
-glProgramUniform1ivFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1iv")
-
-{-# NOINLINE glProgramUniform1ivFunPtr #-}
-
--- | Usage: @'glProgramUniform1ui' program location v0@
-
-
-glProgramUniform1ui :: MonadIO m => GLuint -> GLint -> GLuint -> m ()
-glProgramUniform1ui = ffiuintintuintIOV glProgramUniform1uiFunPtr
-
-glProgramUniform1uiFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> IO ())
-glProgramUniform1uiFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1ui")
-
-{-# NOINLINE glProgramUniform1uiFunPtr #-}
-
--- | Usage: @'glProgramUniform1uiv' program location count value@
---
--- The length of @value@ should be @count@.
-
-
-glProgramUniform1uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
-glProgramUniform1uiv = ffiuintintsizeiPtruintIOV glProgramUniform1uivFunPtr
-
-glProgramUniform1uivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
-glProgramUniform1uivFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1uiv")
-
-{-# NOINLINE glProgramUniform1uivFunPtr #-}
-
--- | Usage: @'glProgramUniform2d' program location v0 v1@
-
-
-glProgramUniform2d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> m ()
-glProgramUniform2d = ffiuintintdoubledoubleIOV glProgramUniform2dFunPtr
-
-glProgramUniform2dFunPtr :: FunPtr (GLuint -> GLint -> GLdouble -> GLdouble -> IO ())
-glProgramUniform2dFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2d")
-
-{-# NOINLINE glProgramUniform2dFunPtr #-}
-
--- | Usage: @'glProgramUniform2dv' program location count value@
---
--- The length of @value@ should be @count*2@.
-
-
-glProgramUniform2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
-glProgramUniform2dv = ffiuintintsizeiPtrdoubleIOV glProgramUniform2dvFunPtr
-
-glProgramUniform2dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())
-glProgramUniform2dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2dv")
-
-{-# NOINLINE glProgramUniform2dvFunPtr #-}
-
--- | Usage: @'glProgramUniform2f' program location v0 v1@
-
-
-glProgramUniform2f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> m ()
-glProgramUniform2f = ffiuintintfloatfloatIOV glProgramUniform2fFunPtr
-
-glProgramUniform2fFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> IO ())
-glProgramUniform2fFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2f")
-
-{-# NOINLINE glProgramUniform2fFunPtr #-}
-
--- | Usage: @'glProgramUniform2fv' program location count value@
---
--- The length of @value@ should be @count*2@.
-
-
-glProgramUniform2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
-glProgramUniform2fv = ffiuintintsizeiPtrfloatIOV glProgramUniform2fvFunPtr
-
-glProgramUniform2fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
-glProgramUniform2fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2fv")
-
-{-# NOINLINE glProgramUniform2fvFunPtr #-}
-
--- | Usage: @'glProgramUniform2i' program location v0 v1@
-
-
-glProgramUniform2i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()
-glProgramUniform2i = ffiuintintintintIOV glProgramUniform2iFunPtr
-
-glProgramUniform2iFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> IO ())
-glProgramUniform2iFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2i")
-
-{-# NOINLINE glProgramUniform2iFunPtr #-}
-
--- | Usage: @'glProgramUniform2iv' program location count value@
---
--- The length of @value@ should be @count*2@.
-
-
-glProgramUniform2iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
-glProgramUniform2iv = ffiuintintsizeiPtrintIOV glProgramUniform2ivFunPtr
-
-glProgramUniform2ivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
-glProgramUniform2ivFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2iv")
-
-{-# NOINLINE glProgramUniform2ivFunPtr #-}
-
--- | Usage: @'glProgramUniform2ui' program location v0 v1@
-
-
-glProgramUniform2ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> m ()
-glProgramUniform2ui = ffiuintintuintuintIOV glProgramUniform2uiFunPtr
-
-glProgramUniform2uiFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> IO ())
-glProgramUniform2uiFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2ui")
-
-{-# NOINLINE glProgramUniform2uiFunPtr #-}
-
--- | Usage: @'glProgramUniform2uiv' program location count value@
---
--- The length of @value@ should be @count*2@.
-
-
-glProgramUniform2uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
-glProgramUniform2uiv = ffiuintintsizeiPtruintIOV glProgramUniform2uivFunPtr
-
-glProgramUniform2uivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
-glProgramUniform2uivFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2uiv")
-
-{-# NOINLINE glProgramUniform2uivFunPtr #-}
-
--- | Usage: @'glProgramUniform3d' program location v0 v1 v2@
-
-
-glProgramUniform3d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> m ()
-glProgramUniform3d = ffiuintintdoubledoubledoubleIOV glProgramUniform3dFunPtr
-
-glProgramUniform3dFunPtr :: FunPtr (GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glProgramUniform3dFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3d")
-
-{-# NOINLINE glProgramUniform3dFunPtr #-}
-
--- | Usage: @'glProgramUniform3dv' program location count value@
---
--- The length of @value@ should be @count*3@.
-
-
-glProgramUniform3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
-glProgramUniform3dv = ffiuintintsizeiPtrdoubleIOV glProgramUniform3dvFunPtr
-
-glProgramUniform3dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())
-glProgramUniform3dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3dv")
-
-{-# NOINLINE glProgramUniform3dvFunPtr #-}
-
--- | Usage: @'glProgramUniform3f' program location v0 v1 v2@
-
-
-glProgramUniform3f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> m ()
-glProgramUniform3f = ffiuintintfloatfloatfloatIOV glProgramUniform3fFunPtr
-
-glProgramUniform3fFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glProgramUniform3fFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3f")
-
-{-# NOINLINE glProgramUniform3fFunPtr #-}
-
--- | Usage: @'glProgramUniform3fv' program location count value@
---
--- The length of @value@ should be @count*3@.
-
-
-glProgramUniform3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
-glProgramUniform3fv = ffiuintintsizeiPtrfloatIOV glProgramUniform3fvFunPtr
-
-glProgramUniform3fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
-glProgramUniform3fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3fv")
-
-{-# NOINLINE glProgramUniform3fvFunPtr #-}
-
--- | Usage: @'glProgramUniform3i' program location v0 v1 v2@
-
-
-glProgramUniform3i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
-glProgramUniform3i = ffiuintintintintintIOV glProgramUniform3iFunPtr
-
-glProgramUniform3iFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
-glProgramUniform3iFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3i")
-
-{-# NOINLINE glProgramUniform3iFunPtr #-}
-
--- | Usage: @'glProgramUniform3iv' program location count value@
---
--- The length of @value@ should be @count*3@.
-
-
-glProgramUniform3iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
-glProgramUniform3iv = ffiuintintsizeiPtrintIOV glProgramUniform3ivFunPtr
-
-glProgramUniform3ivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
-glProgramUniform3ivFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3iv")
-
-{-# NOINLINE glProgramUniform3ivFunPtr #-}
-
--- | Usage: @'glProgramUniform3ui' program location v0 v1 v2@
-
-
-glProgramUniform3ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> m ()
-glProgramUniform3ui = ffiuintintuintuintuintIOV glProgramUniform3uiFunPtr
-
-glProgramUniform3uiFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> GLuint -> IO ())
-glProgramUniform3uiFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3ui")
-
-{-# NOINLINE glProgramUniform3uiFunPtr #-}
-
--- | Usage: @'glProgramUniform3uiv' program location count value@
---
--- The length of @value@ should be @count*3@.
-
-
-glProgramUniform3uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
-glProgramUniform3uiv = ffiuintintsizeiPtruintIOV glProgramUniform3uivFunPtr
-
-glProgramUniform3uivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
-glProgramUniform3uivFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3uiv")
-
-{-# NOINLINE glProgramUniform3uivFunPtr #-}
-
--- | Usage: @'glProgramUniform4d' program location v0 v1 v2 v3@
-
-
-glProgramUniform4d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-glProgramUniform4d = ffiuintintdoubledoubledoubledoubleIOV glProgramUniform4dFunPtr
-
-glProgramUniform4dFunPtr :: FunPtr (GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glProgramUniform4dFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4d")
-
-{-# NOINLINE glProgramUniform4dFunPtr #-}
-
--- | Usage: @'glProgramUniform4dv' program location count value@
---
--- The length of @value@ should be @count*4@.
-
-
-glProgramUniform4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
-glProgramUniform4dv = ffiuintintsizeiPtrdoubleIOV glProgramUniform4dvFunPtr
-
-glProgramUniform4dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())
-glProgramUniform4dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4dv")
-
-{-# NOINLINE glProgramUniform4dvFunPtr #-}
-
--- | Usage: @'glProgramUniform4f' program location v0 v1 v2 v3@
-
-
-glProgramUniform4f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glProgramUniform4f = ffiuintintfloatfloatfloatfloatIOV glProgramUniform4fFunPtr
-
-glProgramUniform4fFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glProgramUniform4fFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4f")
-
-{-# NOINLINE glProgramUniform4fFunPtr #-}
-
--- | Usage: @'glProgramUniform4fv' program location count value@
---
--- The length of @value@ should be @count*4@.
-
-
-glProgramUniform4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
-glProgramUniform4fv = ffiuintintsizeiPtrfloatIOV glProgramUniform4fvFunPtr
-
-glProgramUniform4fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
-glProgramUniform4fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4fv")
-
-{-# NOINLINE glProgramUniform4fvFunPtr #-}
-
--- | Usage: @'glProgramUniform4i' program location v0 v1 v2 v3@
-
-
-glProgramUniform4i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> m ()
-glProgramUniform4i = ffiuintintintintintintIOV glProgramUniform4iFunPtr
-
-glProgramUniform4iFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> IO ())
-glProgramUniform4iFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4i")
-
-{-# NOINLINE glProgramUniform4iFunPtr #-}
-
--- | Usage: @'glProgramUniform4iv' program location count value@
---
--- The length of @value@ should be @count*4@.
-
-
-glProgramUniform4iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
-glProgramUniform4iv = ffiuintintsizeiPtrintIOV glProgramUniform4ivFunPtr
-
-glProgramUniform4ivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
-glProgramUniform4ivFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4iv")
-
-{-# NOINLINE glProgramUniform4ivFunPtr #-}
-
--- | Usage: @'glProgramUniform4ui' program location v0 v1 v2 v3@
-
-
-glProgramUniform4ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
-glProgramUniform4ui = ffiuintintuintuintuintuintIOV glProgramUniform4uiFunPtr
-
-glProgramUniform4uiFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
-glProgramUniform4uiFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4ui")
-
-{-# NOINLINE glProgramUniform4uiFunPtr #-}
-
--- | Usage: @'glProgramUniform4uiv' program location count value@
---
--- The length of @value@ should be @count*4@.
-
-
-glProgramUniform4uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
-glProgramUniform4uiv = ffiuintintsizeiPtruintIOV glProgramUniform4uivFunPtr
-
-glProgramUniform4uivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
-glProgramUniform4uivFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4uiv")
-
-{-# NOINLINE glProgramUniform4uivFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix2dv' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*4@.
-
-
-glProgramUniformMatrix2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glProgramUniformMatrix2dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix2dvFunPtr
-
-glProgramUniformMatrix2dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glProgramUniformMatrix2dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2dv")
-
-{-# NOINLINE glProgramUniformMatrix2dvFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix2fv' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*4@.
-
-
-glProgramUniformMatrix2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glProgramUniformMatrix2fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix2fvFunPtr
-
-glProgramUniformMatrix2fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glProgramUniformMatrix2fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2fv")
-
-{-# NOINLINE glProgramUniformMatrix2fvFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix2x3dv' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*6@.
-
-
-glProgramUniformMatrix2x3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glProgramUniformMatrix2x3dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix2x3dvFunPtr
-
-glProgramUniformMatrix2x3dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glProgramUniformMatrix2x3dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2x3dv")
-
-{-# NOINLINE glProgramUniformMatrix2x3dvFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix2x3fv' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*6@.
-
-
-glProgramUniformMatrix2x3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glProgramUniformMatrix2x3fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix2x3fvFunPtr
-
-glProgramUniformMatrix2x3fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glProgramUniformMatrix2x3fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2x3fv")
-
-{-# NOINLINE glProgramUniformMatrix2x3fvFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix2x4dv' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*8@.
-
-
-glProgramUniformMatrix2x4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glProgramUniformMatrix2x4dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix2x4dvFunPtr
-
-glProgramUniformMatrix2x4dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glProgramUniformMatrix2x4dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2x4dv")
-
-{-# NOINLINE glProgramUniformMatrix2x4dvFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix2x4fv' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*8@.
-
-
-glProgramUniformMatrix2x4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glProgramUniformMatrix2x4fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix2x4fvFunPtr
-
-glProgramUniformMatrix2x4fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glProgramUniformMatrix2x4fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2x4fv")
-
-{-# NOINLINE glProgramUniformMatrix2x4fvFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix3dv' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*9@.
-
-
-glProgramUniformMatrix3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glProgramUniformMatrix3dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix3dvFunPtr
-
-glProgramUniformMatrix3dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glProgramUniformMatrix3dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3dv")
-
-{-# NOINLINE glProgramUniformMatrix3dvFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix3fv' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*9@.
-
-
-glProgramUniformMatrix3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glProgramUniformMatrix3fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix3fvFunPtr
-
-glProgramUniformMatrix3fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glProgramUniformMatrix3fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3fv")
-
-{-# NOINLINE glProgramUniformMatrix3fvFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix3x2dv' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*6@.
-
-
-glProgramUniformMatrix3x2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glProgramUniformMatrix3x2dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix3x2dvFunPtr
-
-glProgramUniformMatrix3x2dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glProgramUniformMatrix3x2dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3x2dv")
-
-{-# NOINLINE glProgramUniformMatrix3x2dvFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix3x2fv' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*6@.
-
-
-glProgramUniformMatrix3x2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glProgramUniformMatrix3x2fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix3x2fvFunPtr
-
-glProgramUniformMatrix3x2fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glProgramUniformMatrix3x2fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3x2fv")
-
-{-# NOINLINE glProgramUniformMatrix3x2fvFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix3x4dv' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*12@.
-
-
-glProgramUniformMatrix3x4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glProgramUniformMatrix3x4dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix3x4dvFunPtr
-
-glProgramUniformMatrix3x4dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glProgramUniformMatrix3x4dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3x4dv")
-
-{-# NOINLINE glProgramUniformMatrix3x4dvFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix3x4fv' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*12@.
-
-
-glProgramUniformMatrix3x4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glProgramUniformMatrix3x4fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix3x4fvFunPtr
-
-glProgramUniformMatrix3x4fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glProgramUniformMatrix3x4fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3x4fv")
-
-{-# NOINLINE glProgramUniformMatrix3x4fvFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix4dv' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*16@.
-
-
-glProgramUniformMatrix4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glProgramUniformMatrix4dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix4dvFunPtr
-
-glProgramUniformMatrix4dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glProgramUniformMatrix4dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4dv")
-
-{-# NOINLINE glProgramUniformMatrix4dvFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix4fv' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*16@.
-
-
-glProgramUniformMatrix4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glProgramUniformMatrix4fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix4fvFunPtr
-
-glProgramUniformMatrix4fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glProgramUniformMatrix4fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4fv")
-
-{-# NOINLINE glProgramUniformMatrix4fvFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix4x2dv' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*8@.
-
-
-glProgramUniformMatrix4x2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glProgramUniformMatrix4x2dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix4x2dvFunPtr
-
-glProgramUniformMatrix4x2dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glProgramUniformMatrix4x2dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4x2dv")
-
-{-# NOINLINE glProgramUniformMatrix4x2dvFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix4x2fv' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*8@.
-
-
-glProgramUniformMatrix4x2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glProgramUniformMatrix4x2fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix4x2fvFunPtr
-
-glProgramUniformMatrix4x2fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glProgramUniformMatrix4x2fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4x2fv")
-
-{-# NOINLINE glProgramUniformMatrix4x2fvFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix4x3dv' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*12@.
-
-
-glProgramUniformMatrix4x3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
-glProgramUniformMatrix4x3dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix4x3dvFunPtr
-
-glProgramUniformMatrix4x3dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
-glProgramUniformMatrix4x3dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4x3dv")
-
-{-# NOINLINE glProgramUniformMatrix4x3dvFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix4x3fv' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*12@.
-
-
-glProgramUniformMatrix4x3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glProgramUniformMatrix4x3fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix4x3fvFunPtr
-
-glProgramUniformMatrix4x3fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glProgramUniformMatrix4x3fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4x3fv")
-
-{-# NOINLINE glProgramUniformMatrix4x3fvFunPtr #-}
-
--- | Usage: @'glReleaseShaderCompiler'@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glReleaseShaderCompiler.xhtml>
-
-
-glReleaseShaderCompiler :: MonadIO m => m ()
-glReleaseShaderCompiler = ffiIOV glReleaseShaderCompilerFunPtr
-
-glReleaseShaderCompilerFunPtr :: FunPtr (IO ())
-glReleaseShaderCompilerFunPtr = unsafePerformIO (getProcAddress "glReleaseShaderCompiler")
-
-{-# NOINLINE glReleaseShaderCompilerFunPtr #-}
-
--- | Usage: @'glScissorArrayv' first count v@
---
--- The length of @v@ should be @COMPSIZE(count)@.
-
-
-glScissorArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLint -> m ()
-glScissorArrayv = ffiuintsizeiPtrintIOV glScissorArrayvFunPtr
-
-glScissorArrayvFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLint -> IO ())
-glScissorArrayvFunPtr = unsafePerformIO (getProcAddress "glScissorArrayv")
-
-{-# NOINLINE glScissorArrayvFunPtr #-}
-
--- | Usage: @'glScissorIndexed' index left bottom width height@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glScissorIndexed.xhtml>
-
-
-glScissorIndexed :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
-glScissorIndexed = ffiuintintintsizeisizeiIOV glScissorIndexedFunPtr
-
-glScissorIndexedFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
-glScissorIndexedFunPtr = unsafePerformIO (getProcAddress "glScissorIndexed")
-
-{-# NOINLINE glScissorIndexedFunPtr #-}
-
--- | Usage: @'glScissorIndexedv' index v@
---
--- The length of @v@ should be @4@.
-
-
-glScissorIndexedv :: MonadIO m => GLuint -> Ptr GLint -> m ()
-glScissorIndexedv = ffiuintPtrintIOV glScissorIndexedvFunPtr
-
-glScissorIndexedvFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
-glScissorIndexedvFunPtr = unsafePerformIO (getProcAddress "glScissorIndexedv")
-
-{-# NOINLINE glScissorIndexedvFunPtr #-}
-
--- | Usage: @'glShaderBinary' count shaders binaryformat binary length@
---
--- The length of @shaders@ should be @count@.
---
--- The length of @binary@ should be @length@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glShaderBinary.xhtml>
-
-
-glShaderBinary :: MonadIO m => GLsizei -> Ptr GLuint -> GLenum -> Ptr () -> GLsizei -> m ()
-glShaderBinary = ffisizeiPtruintenumPtrVsizeiIOV glShaderBinaryFunPtr
-
-glShaderBinaryFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> GLenum -> Ptr () -> GLsizei -> IO ())
-glShaderBinaryFunPtr = unsafePerformIO (getProcAddress "glShaderBinary")
-
-{-# NOINLINE glShaderBinaryFunPtr #-}
-
--- | Usage: @'glUseProgramStages' pipeline stages program@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glUseProgramStages.xhtml>
-
-
-glUseProgramStages :: MonadIO m => GLuint -> GLbitfield -> GLuint -> m ()
-glUseProgramStages = ffiuintbitfielduintIOV glUseProgramStagesFunPtr
-
-glUseProgramStagesFunPtr :: FunPtr (GLuint -> GLbitfield -> GLuint -> IO ())
-glUseProgramStagesFunPtr = unsafePerformIO (getProcAddress "glUseProgramStages")
-
-{-# NOINLINE glUseProgramStagesFunPtr #-}
-
--- | Usage: @'glValidateProgramPipeline' pipeline@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glValidateProgramPipeline.xhtml>
-
-
-glValidateProgramPipeline :: MonadIO m => GLuint -> m ()
-glValidateProgramPipeline = ffiuintIOV glValidateProgramPipelineFunPtr
-
-glValidateProgramPipelineFunPtr :: FunPtr (GLuint -> IO ())
-glValidateProgramPipelineFunPtr = unsafePerformIO (getProcAddress "glValidateProgramPipeline")
-
-{-# NOINLINE glValidateProgramPipelineFunPtr #-}
-
--- | Usage: @'glVertexAttribL1d' index x@
-
-
-glVertexAttribL1d :: MonadIO m => GLuint -> GLdouble -> m ()
-glVertexAttribL1d = ffiuintdoubleIOV glVertexAttribL1dFunPtr
-
-glVertexAttribL1dFunPtr :: FunPtr (GLuint -> GLdouble -> IO ())
-glVertexAttribL1dFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL1d")
-
-{-# NOINLINE glVertexAttribL1dFunPtr #-}
-
--- | Usage: @'glVertexAttribL1dv' index v@
---
--- The length of @v@ should be @1@.
-
-
-glVertexAttribL1dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
-glVertexAttribL1dv = ffiuintPtrdoubleIOV glVertexAttribL1dvFunPtr
-
-glVertexAttribL1dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
-glVertexAttribL1dvFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL1dv")
-
-{-# NOINLINE glVertexAttribL1dvFunPtr #-}
-
--- | Usage: @'glVertexAttribL2d' index x y@
-
-
-glVertexAttribL2d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()
-glVertexAttribL2d = ffiuintdoubledoubleIOV glVertexAttribL2dFunPtr
-
-glVertexAttribL2dFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> IO ())
-glVertexAttribL2dFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL2d")
-
-{-# NOINLINE glVertexAttribL2dFunPtr #-}
-
--- | Usage: @'glVertexAttribL2dv' index v@
---
--- The length of @v@ should be @2@.
-
-
-glVertexAttribL2dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
-glVertexAttribL2dv = ffiuintPtrdoubleIOV glVertexAttribL2dvFunPtr
-
-glVertexAttribL2dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
-glVertexAttribL2dvFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL2dv")
-
-{-# NOINLINE glVertexAttribL2dvFunPtr #-}
-
--- | Usage: @'glVertexAttribL3d' index x y z@
-
-
-glVertexAttribL3d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()
-glVertexAttribL3d = ffiuintdoubledoubledoubleIOV glVertexAttribL3dFunPtr
-
-glVertexAttribL3dFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glVertexAttribL3dFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL3d")
-
-{-# NOINLINE glVertexAttribL3dFunPtr #-}
-
--- | Usage: @'glVertexAttribL3dv' index v@
---
--- The length of @v@ should be @3@.
-
-
-glVertexAttribL3dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
-glVertexAttribL3dv = ffiuintPtrdoubleIOV glVertexAttribL3dvFunPtr
-
-glVertexAttribL3dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
-glVertexAttribL3dvFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL3dv")
-
-{-# NOINLINE glVertexAttribL3dvFunPtr #-}
-
--- | Usage: @'glVertexAttribL4d' index x y z w@
-
-
-glVertexAttribL4d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-glVertexAttribL4d = ffiuintdoubledoubledoubledoubleIOV glVertexAttribL4dFunPtr
-
-glVertexAttribL4dFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glVertexAttribL4dFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL4d")
-
-{-# NOINLINE glVertexAttribL4dFunPtr #-}
-
--- | Usage: @'glVertexAttribL4dv' index v@
---
--- The length of @v@ should be @4@.
-
-
-glVertexAttribL4dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
-glVertexAttribL4dv = ffiuintPtrdoubleIOV glVertexAttribL4dvFunPtr
-
-glVertexAttribL4dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
-glVertexAttribL4dvFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL4dv")
-
-{-# NOINLINE glVertexAttribL4dvFunPtr #-}
-
--- | Usage: @'glVertexAttribLPointer' index size type stride pointer@
---
--- The length of @pointer@ should be @size@.
-
-
-glVertexAttribLPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> m ()
-glVertexAttribLPointer = ffiuintintenumsizeiPtrVIOV glVertexAttribLPointerFunPtr
-
-glVertexAttribLPointerFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
-glVertexAttribLPointerFunPtr = unsafePerformIO (getProcAddress "glVertexAttribLPointer")
-
-{-# NOINLINE glVertexAttribLPointerFunPtr #-}
-
--- | Usage: @'glViewportArrayv' first count v@
---
--- The length of @v@ should be @COMPSIZE(count)@.
-
-
-glViewportArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()
-glViewportArrayv = ffiuintsizeiPtrfloatIOV glViewportArrayvFunPtr
-
-glViewportArrayvFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
-glViewportArrayvFunPtr = unsafePerformIO (getProcAddress "glViewportArrayv")
-
-{-# NOINLINE glViewportArrayvFunPtr #-}
-
--- | Usage: @'glViewportIndexedf' index x y w h@
-
-
-glViewportIndexedf :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glViewportIndexedf = ffiuintfloatfloatfloatfloatIOV glViewportIndexedfFunPtr
-
-glViewportIndexedfFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glViewportIndexedfFunPtr = unsafePerformIO (getProcAddress "glViewportIndexedf")
-
-{-# NOINLINE glViewportIndexedfFunPtr #-}
-
--- | Usage: @'glViewportIndexedfv' index v@
---
--- The length of @v@ should be @4@.
-
-
-glViewportIndexedfv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
-glViewportIndexedfv = ffiuintPtrfloatIOV glViewportIndexedfvFunPtr
-
-glViewportIndexedfvFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
-glViewportIndexedfvFunPtr = unsafePerformIO (getProcAddress "glViewportIndexedfv")
-
-{-# NOINLINE glViewportIndexedfvFunPtr #-}
-
-pattern GL_ACTIVE_PROGRAM = 0x8259
-
-pattern GL_ALL_SHADER_BITS = 0xFFFFFFFF
-
-pattern GL_FIXED = 0x140C
-
-pattern GL_FRAGMENT_SHADER_BIT = 0x00000002
-
-pattern GL_GEOMETRY_SHADER_BIT = 0x00000004
-
-pattern GL_HIGH_FLOAT = 0x8DF2
-
-pattern GL_HIGH_INT = 0x8DF5
-
-pattern GL_IMPLEMENTATION_COLOR_READ_FORMAT = 0x8B9B
-
-pattern GL_IMPLEMENTATION_COLOR_READ_TYPE = 0x8B9A
-
-pattern GL_LAYER_PROVOKING_VERTEX = 0x825E
-
-pattern GL_LOW_FLOAT = 0x8DF0
-
-pattern GL_LOW_INT = 0x8DF3
-
-pattern GL_MAX_FRAGMENT_UNIFORM_VECTORS = 0x8DFD
-
-pattern GL_MAX_VARYING_VECTORS = 0x8DFC
-
-pattern GL_MAX_VERTEX_UNIFORM_VECTORS = 0x8DFB
-
-pattern GL_MAX_VIEWPORTS = 0x825B
-
-pattern GL_MEDIUM_FLOAT = 0x8DF1
-
-pattern GL_MEDIUM_INT = 0x8DF4
-
-pattern GL_NUM_PROGRAM_BINARY_FORMATS = 0x87FE
-
-pattern GL_NUM_SHADER_BINARY_FORMATS = 0x8DF9
-
-pattern GL_PROGRAM_BINARY_FORMATS = 0x87FF
-
-pattern GL_PROGRAM_BINARY_LENGTH = 0x8741
-
-pattern GL_PROGRAM_BINARY_RETRIEVABLE_HINT = 0x8257
-
-pattern GL_PROGRAM_PIPELINE_BINDING = 0x825A
-
-pattern GL_PROGRAM_SEPARABLE = 0x8258
-
-pattern GL_RGB565 = 0x8D62
-
-pattern GL_SHADER_BINARY_FORMATS = 0x8DF8
-
-pattern GL_SHADER_COMPILER = 0x8DFA
-
-pattern GL_TESS_CONTROL_SHADER_BIT = 0x00000008
-
-pattern GL_TESS_EVALUATION_SHADER_BIT = 0x00000010
-
-pattern GL_UNDEFINED_VERTEX = 0x8260
-
-pattern GL_VERTEX_SHADER_BIT = 0x00000001
-
-pattern GL_VIEWPORT_BOUNDS_RANGE = 0x825D
-
-pattern GL_VIEWPORT_INDEX_PROVOKING_VERTEX = 0x825F
-
-pattern GL_VIEWPORT_SUBPIXEL_BITS = 0x825C
-
--- | Usage: @'glBindImageTexture' unit texture level layered layer access format@
---
--- The parameter @layered@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindImageTexture.xhtml>
-
-
-glBindImageTexture :: MonadIO m => GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLenum -> m ()
-glBindImageTexture = ffiuintuintintbooleanintenumenumIOV glBindImageTextureFunPtr
-
-glBindImageTextureFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLenum -> IO ())
-glBindImageTextureFunPtr = unsafePerformIO (getProcAddress "glBindImageTexture")
-
-{-# NOINLINE glBindImageTextureFunPtr #-}
-
--- | Usage: @'glDrawArraysInstancedBaseInstance' mode first count instancecount baseinstance@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawArraysInstancedBaseInstance.xhtml>
-
-
-glDrawArraysInstancedBaseInstance :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> GLuint -> m ()
-glDrawArraysInstancedBaseInstance = ffienumintsizeisizeiuintIOV glDrawArraysInstancedBaseInstanceFunPtr
-
-glDrawArraysInstancedBaseInstanceFunPtr :: FunPtr (GLenum -> GLint -> GLsizei -> GLsizei -> GLuint -> IO ())
-glDrawArraysInstancedBaseInstanceFunPtr = unsafePerformIO (getProcAddress "glDrawArraysInstancedBaseInstance")
-
-{-# NOINLINE glDrawArraysInstancedBaseInstanceFunPtr #-}
-
--- | Usage: @'glDrawElementsInstancedBaseInstance' mode count type indices instancecount baseinstance@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- The length of @indices@ should be @count@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawElementsInstancedBaseInstance.xhtml>
-
-
-glDrawElementsInstancedBaseInstance :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLuint -> m ()
-glDrawElementsInstancedBaseInstance = ffienumsizeienumPtrVsizeiuintIOV glDrawElementsInstancedBaseInstanceFunPtr
-
-glDrawElementsInstancedBaseInstanceFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLuint -> IO ())
-glDrawElementsInstancedBaseInstanceFunPtr = unsafePerformIO (getProcAddress "glDrawElementsInstancedBaseInstance")
-
-{-# NOINLINE glDrawElementsInstancedBaseInstanceFunPtr #-}
-
--- | Usage: @'glDrawElementsInstancedBaseVertexBaseInstance' mode count type indices instancecount basevertex baseinstance@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- The length of @indices@ should be @count@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawElementsInstancedBaseVertexBaseInstance.xhtml>
-
-
-glDrawElementsInstancedBaseVertexBaseInstance :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> GLuint -> m ()
-glDrawElementsInstancedBaseVertexBaseInstance = ffienumsizeienumPtrVsizeiintuintIOV glDrawElementsInstancedBaseVertexBaseInstanceFunPtr
-
-glDrawElementsInstancedBaseVertexBaseInstanceFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> GLuint -> IO ())
-glDrawElementsInstancedBaseVertexBaseInstanceFunPtr = unsafePerformIO (getProcAddress "glDrawElementsInstancedBaseVertexBaseInstance")
-
-{-# NOINLINE glDrawElementsInstancedBaseVertexBaseInstanceFunPtr #-}
-
--- | Usage: @'glDrawTransformFeedbackInstanced' mode id instancecount@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawTransformFeedbackInstanced.xhtml>
-
-
-glDrawTransformFeedbackInstanced :: MonadIO m => GLenum -> GLuint -> GLsizei -> m ()
-glDrawTransformFeedbackInstanced = ffienumuintsizeiIOV glDrawTransformFeedbackInstancedFunPtr
-
-glDrawTransformFeedbackInstancedFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> IO ())
-glDrawTransformFeedbackInstancedFunPtr = unsafePerformIO (getProcAddress "glDrawTransformFeedbackInstanced")
-
-{-# NOINLINE glDrawTransformFeedbackInstancedFunPtr #-}
-
--- | Usage: @'glDrawTransformFeedbackStreamInstanced' mode id stream instancecount@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawTransformFeedbackStreamInstanced.xhtml>
-
-
-glDrawTransformFeedbackStreamInstanced :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> m ()
-glDrawTransformFeedbackStreamInstanced = ffienumuintuintsizeiIOV glDrawTransformFeedbackStreamInstancedFunPtr
-
-glDrawTransformFeedbackStreamInstancedFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> IO ())
-glDrawTransformFeedbackStreamInstancedFunPtr = unsafePerformIO (getProcAddress "glDrawTransformFeedbackStreamInstanced")
-
-{-# NOINLINE glDrawTransformFeedbackStreamInstancedFunPtr #-}
-
--- | Usage: @'glGetActiveAtomicCounterBufferiv' program bufferIndex pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetActiveAtomicCounterBufferiv.xhtml>
-
-
-glGetActiveAtomicCounterBufferiv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()
-glGetActiveAtomicCounterBufferiv = ffiuintuintenumPtrintIOV glGetActiveAtomicCounterBufferivFunPtr
-
-glGetActiveAtomicCounterBufferivFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetActiveAtomicCounterBufferivFunPtr = unsafePerformIO (getProcAddress "glGetActiveAtomicCounterBufferiv")
-
-{-# NOINLINE glGetActiveAtomicCounterBufferivFunPtr #-}
-
--- | Usage: @'glGetInternalformativ' target internalformat pname bufSize params@
---
--- The length of @params@ should be @bufSize@.
-
-
-glGetInternalformativ :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint -> m ()
-glGetInternalformativ = ffienumenumenumsizeiPtrintIOV glGetInternalformativFunPtr
-
-glGetInternalformativFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint -> IO ())
-glGetInternalformativFunPtr = unsafePerformIO (getProcAddress "glGetInternalformativ")
-
-{-# NOINLINE glGetInternalformativFunPtr #-}
-
--- | Usage: @'glMemoryBarrier' barriers@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glMemoryBarrier.xhtml>
-
-
-glMemoryBarrier :: MonadIO m => GLbitfield -> m ()
-glMemoryBarrier = ffibitfieldIOV glMemoryBarrierFunPtr
-
-glMemoryBarrierFunPtr :: FunPtr (GLbitfield -> IO ())
-glMemoryBarrierFunPtr = unsafePerformIO (getProcAddress "glMemoryBarrier")
-
-{-# NOINLINE glMemoryBarrierFunPtr #-}
-
--- | Usage: @'glTexStorage1D' target levels internalformat width@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexStorage1D.xhtml>
-
-
-glTexStorage1D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> m ()
-glTexStorage1D = ffienumsizeienumsizeiIOV glTexStorage1DFunPtr
-
-glTexStorage1DFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> IO ())
-glTexStorage1DFunPtr = unsafePerformIO (getProcAddress "glTexStorage1D")
-
-{-# NOINLINE glTexStorage1DFunPtr #-}
-
--- | Usage: @'glTexStorage2D' target levels internalformat width height@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexStorage2D.xhtml>
-
-
-glTexStorage2D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
-glTexStorage2D = ffienumsizeienumsizeisizeiIOV glTexStorage2DFunPtr
-
-glTexStorage2DFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
-glTexStorage2DFunPtr = unsafePerformIO (getProcAddress "glTexStorage2D")
-
-{-# NOINLINE glTexStorage2DFunPtr #-}
-
--- | Usage: @'glTexStorage3D' target levels internalformat width height depth@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexStorage3D.xhtml>
-
-
-glTexStorage3D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()
-glTexStorage3D = ffienumsizeienumsizeisizeisizeiIOV glTexStorage3DFunPtr
-
-glTexStorage3DFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ())
-glTexStorage3DFunPtr = unsafePerformIO (getProcAddress "glTexStorage3D")
-
-{-# NOINLINE glTexStorage3DFunPtr #-}
-
-pattern GL_ACTIVE_ATOMIC_COUNTER_BUFFERS = 0x92D9
-
-pattern GL_ALL_BARRIER_BITS = 0xFFFFFFFF
-
-pattern GL_ATOMIC_COUNTER_BARRIER_BIT = 0x00001000
-
-pattern GL_ATOMIC_COUNTER_BUFFER = 0x92C0
-
-pattern GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS = 0x92C5
-
-pattern GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES = 0x92C6
-
-pattern GL_ATOMIC_COUNTER_BUFFER_BINDING = 0x92C1
-
-pattern GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE = 0x92C4
-
-pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER = 0x92CB
-
-pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER = 0x92CA
-
-pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER = 0x92C8
-
-pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x92C9
-
-pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER = 0x92C7
-
-pattern GL_ATOMIC_COUNTER_BUFFER_SIZE = 0x92C3
-
-pattern GL_ATOMIC_COUNTER_BUFFER_START = 0x92C2
-
-pattern GL_BUFFER_UPDATE_BARRIER_BIT = 0x00000200
-
-pattern GL_COMMAND_BARRIER_BIT = 0x00000040
-
-pattern GL_COPY_READ_BUFFER_BINDING = 0x8F36
-
-pattern GL_COPY_WRITE_BUFFER_BINDING = 0x8F37
-
-pattern GL_ELEMENT_ARRAY_BARRIER_BIT = 0x00000002
-
-pattern GL_FRAMEBUFFER_BARRIER_BIT = 0x00000400
-
-pattern GL_IMAGE_1D = 0x904C
-
-pattern GL_IMAGE_1D_ARRAY = 0x9052
-
-pattern GL_IMAGE_2D = 0x904D
-
-pattern GL_IMAGE_2D_ARRAY = 0x9053
-
-pattern GL_IMAGE_2D_MULTISAMPLE = 0x9055
-
-pattern GL_IMAGE_2D_MULTISAMPLE_ARRAY = 0x9056
-
-pattern GL_IMAGE_2D_RECT = 0x904F
-
-pattern GL_IMAGE_3D = 0x904E
-
-pattern GL_IMAGE_BINDING_ACCESS = 0x8F3E
-
-pattern GL_IMAGE_BINDING_FORMAT = 0x906E
-
-pattern GL_IMAGE_BINDING_LAYER = 0x8F3D
-
-pattern GL_IMAGE_BINDING_LAYERED = 0x8F3C
-
-pattern GL_IMAGE_BINDING_LEVEL = 0x8F3B
-
-pattern GL_IMAGE_BINDING_NAME = 0x8F3A
-
-pattern GL_IMAGE_BUFFER = 0x9051
-
-pattern GL_IMAGE_CUBE = 0x9050
-
-pattern GL_IMAGE_CUBE_MAP_ARRAY = 0x9054
-
-pattern GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS = 0x90C9
-
-pattern GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE = 0x90C8
-
-pattern GL_IMAGE_FORMAT_COMPATIBILITY_TYPE = 0x90C7
-
-pattern GL_INT_IMAGE_1D = 0x9057
-
-pattern GL_INT_IMAGE_1D_ARRAY = 0x905D
-
-pattern GL_INT_IMAGE_2D = 0x9058
-
-pattern GL_INT_IMAGE_2D_ARRAY = 0x905E
-
-pattern GL_INT_IMAGE_2D_MULTISAMPLE = 0x9060
-
-pattern GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY = 0x9061
-
-pattern GL_INT_IMAGE_2D_RECT = 0x905A
-
-pattern GL_INT_IMAGE_3D = 0x9059
-
-pattern GL_INT_IMAGE_BUFFER = 0x905C
-
-pattern GL_INT_IMAGE_CUBE = 0x905B
-
-pattern GL_INT_IMAGE_CUBE_MAP_ARRAY = 0x905F
-
-pattern GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS = 0x92DC
-
-pattern GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE = 0x92D8
-
-pattern GL_MAX_COMBINED_ATOMIC_COUNTERS = 0x92D7
-
-pattern GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS = 0x92D1
-
-pattern GL_MAX_COMBINED_IMAGE_UNIFORMS = 0x90CF
-
-pattern GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS = 0x8F39
-
-pattern GL_MAX_FRAGMENT_ATOMIC_COUNTERS = 0x92D6
-
-pattern GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS = 0x92D0
-
-pattern GL_MAX_FRAGMENT_IMAGE_UNIFORMS = 0x90CE
-
-pattern GL_MAX_GEOMETRY_ATOMIC_COUNTERS = 0x92D5
-
-pattern GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS = 0x92CF
-
-pattern GL_MAX_GEOMETRY_IMAGE_UNIFORMS = 0x90CD
-
-pattern GL_MAX_IMAGE_SAMPLES = 0x906D
-
-pattern GL_MAX_IMAGE_UNITS = 0x8F38
-
-pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS = 0x92D3
-
-pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS = 0x92CD
-
-pattern GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS = 0x90CB
-
-pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS = 0x92D4
-
-pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS = 0x92CE
-
-pattern GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS = 0x90CC
-
-pattern GL_MAX_VERTEX_ATOMIC_COUNTERS = 0x92D2
-
-pattern GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS = 0x92CC
-
-pattern GL_MAX_VERTEX_IMAGE_UNIFORMS = 0x90CA
-
-pattern GL_MIN_MAP_BUFFER_ALIGNMENT = 0x90BC
-
-pattern GL_NUM_SAMPLE_COUNTS = 0x9380
-
-pattern GL_PACK_COMPRESSED_BLOCK_DEPTH = 0x912D
-
-pattern GL_PACK_COMPRESSED_BLOCK_HEIGHT = 0x912C
-
-pattern GL_PACK_COMPRESSED_BLOCK_SIZE = 0x912E
-
-pattern GL_PACK_COMPRESSED_BLOCK_WIDTH = 0x912B
-
-pattern GL_PIXEL_BUFFER_BARRIER_BIT = 0x00000080
-
-pattern GL_SHADER_IMAGE_ACCESS_BARRIER_BIT = 0x00000020
-
-pattern GL_TEXTURE_FETCH_BARRIER_BIT = 0x00000008
-
-pattern GL_TEXTURE_IMMUTABLE_FORMAT = 0x912F
-
-pattern GL_TEXTURE_UPDATE_BARRIER_BIT = 0x00000100
-
-pattern GL_TRANSFORM_FEEDBACK_ACTIVE = 0x8E24
-
-pattern GL_TRANSFORM_FEEDBACK_BARRIER_BIT = 0x00000800
-
-pattern GL_TRANSFORM_FEEDBACK_PAUSED = 0x8E23
-
-pattern GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX = 0x92DA
-
-pattern GL_UNIFORM_BARRIER_BIT = 0x00000004
-
-pattern GL_UNPACK_COMPRESSED_BLOCK_DEPTH = 0x9129
-
-pattern GL_UNPACK_COMPRESSED_BLOCK_HEIGHT = 0x9128
-
-pattern GL_UNPACK_COMPRESSED_BLOCK_SIZE = 0x912A
-
-pattern GL_UNPACK_COMPRESSED_BLOCK_WIDTH = 0x9127
-
-pattern GL_UNSIGNED_INT_ATOMIC_COUNTER = 0x92DB
-
-pattern GL_UNSIGNED_INT_IMAGE_1D = 0x9062
-
-pattern GL_UNSIGNED_INT_IMAGE_1D_ARRAY = 0x9068
-
-pattern GL_UNSIGNED_INT_IMAGE_2D = 0x9063
-
-pattern GL_UNSIGNED_INT_IMAGE_2D_ARRAY = 0x9069
-
-pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE = 0x906B
-
-pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY = 0x906C
-
-pattern GL_UNSIGNED_INT_IMAGE_2D_RECT = 0x9065
-
-pattern GL_UNSIGNED_INT_IMAGE_3D = 0x9064
-
-pattern GL_UNSIGNED_INT_IMAGE_BUFFER = 0x9067
-
-pattern GL_UNSIGNED_INT_IMAGE_CUBE = 0x9066
-
-pattern GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY = 0x906A
-
-pattern GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT = 0x00000001
-
--- | Usage: @'glBindVertexBuffer' bindingindex buffer offset stride@
---
--- The parameter @offset@ is a @BufferOffset@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindVertexBuffer.xhtml>
-
-
-glBindVertexBuffer :: MonadIO m => GLuint -> GLuint -> GLintptr -> GLsizei -> m ()
-glBindVertexBuffer = ffiuintuintintptrsizeiIOV glBindVertexBufferFunPtr
-
-glBindVertexBufferFunPtr :: FunPtr (GLuint -> GLuint -> GLintptr -> GLsizei -> IO ())
-glBindVertexBufferFunPtr = unsafePerformIO (getProcAddress "glBindVertexBuffer")
-
-{-# NOINLINE glBindVertexBufferFunPtr #-}
-
--- | Usage: @'glClearBufferData' target internalformat format type data@
---
--- The length of @data@ should be @COMPSIZE(format,type)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glClearBufferData.xhtml>
-
-
-glClearBufferData :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> Ptr () -> m ()
-glClearBufferData = ffienumenumenumenumPtrVIOV glClearBufferDataFunPtr
-
-glClearBufferDataFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> Ptr () -> IO ())
-glClearBufferDataFunPtr = unsafePerformIO (getProcAddress "glClearBufferData")
-
-{-# NOINLINE glClearBufferDataFunPtr #-}
-
--- | Usage: @'glClearBufferSubData' target internalformat offset size format type data@
---
--- The parameter @offset@ is a @BufferOffset@.
---
--- The parameter @size@ is a @BufferSize@.
---
--- The length of @data@ should be @COMPSIZE(format,type)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glClearBufferSubData.xhtml>
-
-
-glClearBufferSubData :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> m ()
-glClearBufferSubData = ffienumenumintptrsizeiptrenumenumPtrVIOV glClearBufferSubDataFunPtr
-
-glClearBufferSubDataFunPtr :: FunPtr (GLenum -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> IO ())
-glClearBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glClearBufferSubData")
-
-{-# NOINLINE glClearBufferSubDataFunPtr #-}
-
--- | Usage: @'glCopyImageSubData' srcName srcTarget srcLevel srcX srcY srcZ dstName dstTarget dstLevel dstX dstY dstZ srcWidth srcHeight srcDepth@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCopyImageSubData.xhtml>
-
-
-glCopyImageSubData :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()
-glCopyImageSubData = ffiuintenumintintintintuintenumintintintintsizeisizeisizeiIOV glCopyImageSubDataFunPtr
-
-glCopyImageSubDataFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> IO ())
-glCopyImageSubDataFunPtr = unsafePerformIO (getProcAddress "glCopyImageSubData")
-
-{-# NOINLINE glCopyImageSubDataFunPtr #-}
-
--- | Usage: @'glDebugMessageCallback' callback userParam@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDebugMessageCallback.xhtml>
-
-
-glDebugMessageCallback :: MonadIO m => GLDEBUGPROC -> Ptr () -> m ()
-glDebugMessageCallback = ffiDEBUGPROCPtrVIOV glDebugMessageCallbackFunPtr
-
-glDebugMessageCallbackFunPtr :: FunPtr (GLDEBUGPROC -> Ptr () -> IO ())
-glDebugMessageCallbackFunPtr = unsafePerformIO (getProcAddress "glDebugMessageCallback")
-
-{-# NOINLINE glDebugMessageCallbackFunPtr #-}
-
--- | Usage: @'glDebugMessageControl' source type severity count ids enabled@
---
--- The parameter @enabled@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @ids@ should be @count@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDebugMessageControl.xhtml>
-
-
-glDebugMessageControl :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> m ()
-glDebugMessageControl = ffienumenumenumsizeiPtruintbooleanIOV glDebugMessageControlFunPtr
-
-glDebugMessageControlFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> IO ())
-glDebugMessageControlFunPtr = unsafePerformIO (getProcAddress "glDebugMessageControl")
-
-{-# NOINLINE glDebugMessageControlFunPtr #-}
-
--- | Usage: @'glDebugMessageInsert' source type id severity length buf@
---
--- The length of @buf@ should be @COMPSIZE(buf,length)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDebugMessageInsert.xhtml>
-
-
-glDebugMessageInsert :: MonadIO m => GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> m ()
-glDebugMessageInsert = ffienumenumuintenumsizeiPtrcharIOV glDebugMessageInsertFunPtr
-
-glDebugMessageInsertFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> IO ())
-glDebugMessageInsertFunPtr = unsafePerformIO (getProcAddress "glDebugMessageInsert")
-
-{-# NOINLINE glDebugMessageInsertFunPtr #-}
-
--- | Usage: @'glDispatchCompute' num_groups_x num_groups_y num_groups_z@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDispatchCompute.xhtml>
-
-
-glDispatchCompute :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
-glDispatchCompute = ffiuintuintuintIOV glDispatchComputeFunPtr
-
-glDispatchComputeFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
-glDispatchComputeFunPtr = unsafePerformIO (getProcAddress "glDispatchCompute")
-
-{-# NOINLINE glDispatchComputeFunPtr #-}
-
--- | Usage: @'glDispatchComputeIndirect' indirect@
---
--- The parameter @indirect@ is a @BufferOffset@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDispatchComputeIndirect.xhtml>
-
-
-glDispatchComputeIndirect :: MonadIO m => GLintptr -> m ()
-glDispatchComputeIndirect = ffiintptrIOV glDispatchComputeIndirectFunPtr
-
-glDispatchComputeIndirectFunPtr :: FunPtr (GLintptr -> IO ())
-glDispatchComputeIndirectFunPtr = unsafePerformIO (getProcAddress "glDispatchComputeIndirect")
-
-{-# NOINLINE glDispatchComputeIndirectFunPtr #-}
-
--- | Usage: @'glFramebufferParameteri' target pname param@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glFramebufferParameteri.xhtml>
-
-
-glFramebufferParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
-glFramebufferParameteri = ffienumenumintIOV glFramebufferParameteriFunPtr
-
-glFramebufferParameteriFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
-glFramebufferParameteriFunPtr = unsafePerformIO (getProcAddress "glFramebufferParameteri")
-
-{-# NOINLINE glFramebufferParameteriFunPtr #-}
-
--- | Usage: @'glGetDebugMessageLog' count bufSize sources types ids severities lengths messageLog@
---
--- The length of @sources@ should be @count@.
---
--- The length of @types@ should be @count@.
---
--- The length of @ids@ should be @count@.
---
--- The length of @severities@ should be @count@.
---
--- The length of @lengths@ should be @count@.
---
--- The length of @messageLog@ should be @bufSize@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetDebugMessageLog.xhtml>
-
-
-glGetDebugMessageLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> m GLuint
-glGetDebugMessageLog = ffiuintsizeiPtrenumPtrenumPtruintPtrenumPtrsizeiPtrcharIOuint glGetDebugMessageLogFunPtr
-
-glGetDebugMessageLogFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> IO GLuint)
-glGetDebugMessageLogFunPtr = unsafePerformIO (getProcAddress "glGetDebugMessageLog")
-
-{-# NOINLINE glGetDebugMessageLogFunPtr #-}
-
--- | Usage: @'glGetFramebufferParameteriv' target pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetFramebufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glGetFramebufferParameteriv = ffienumenumPtrintIOV glGetFramebufferParameterivFunPtr
-
-glGetFramebufferParameterivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetFramebufferParameterivFunPtr = unsafePerformIO (getProcAddress "glGetFramebufferParameteriv")
-
-{-# NOINLINE glGetFramebufferParameterivFunPtr #-}
-
--- | Usage: @'glGetInternalformati64v' target internalformat pname bufSize params@
---
--- The length of @params@ should be @bufSize@.
-
-
-glGetInternalformati64v :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint64 -> m ()
-glGetInternalformati64v = ffienumenumenumsizeiPtrint64IOV glGetInternalformati64vFunPtr
-
-glGetInternalformati64vFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint64 -> IO ())
-glGetInternalformati64vFunPtr = unsafePerformIO (getProcAddress "glGetInternalformati64v")
-
-{-# NOINLINE glGetInternalformati64vFunPtr #-}
-
--- | Usage: @'glGetObjectLabel' identifier name bufSize length label@
---
--- The length of @length@ should be @1@.
---
--- The length of @label@ should be @bufSize@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetObjectLabel.xhtml>
-
-
-glGetObjectLabel :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
-glGetObjectLabel = ffienumuintsizeiPtrsizeiPtrcharIOV glGetObjectLabelFunPtr
-
-glGetObjectLabelFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
-glGetObjectLabelFunPtr = unsafePerformIO (getProcAddress "glGetObjectLabel")
-
-{-# NOINLINE glGetObjectLabelFunPtr #-}
-
--- | Usage: @'glGetObjectPtrLabel' ptr bufSize length label@
---
--- The length of @length@ should be @1@.
---
--- The length of @label@ should be @bufSize@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetObjectPtrLabel.xhtml>
-
-
-glGetObjectPtrLabel :: MonadIO m => Ptr () -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
-glGetObjectPtrLabel = ffiPtrVsizeiPtrsizeiPtrcharIOV glGetObjectPtrLabelFunPtr
-
-glGetObjectPtrLabelFunPtr :: FunPtr (Ptr () -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
-glGetObjectPtrLabelFunPtr = unsafePerformIO (getProcAddress "glGetObjectPtrLabel")
-
-{-# NOINLINE glGetObjectPtrLabelFunPtr #-}
-
--- | Usage: @'glGetProgramInterfaceiv' program programInterface pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetProgramInterfaceiv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
-glGetProgramInterfaceiv = ffiuintenumenumPtrintIOV glGetProgramInterfaceivFunPtr
-
-glGetProgramInterfaceivFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetProgramInterfaceivFunPtr = unsafePerformIO (getProcAddress "glGetProgramInterfaceiv")
-
-{-# NOINLINE glGetProgramInterfaceivFunPtr #-}
-
--- | Usage: @'glGetProgramResourceIndex' program programInterface name@
---
--- The length of @name@ should be @COMPSIZE(name)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetProgramResourceIndex.xhtml>
-
-
-glGetProgramResourceIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLuint
-glGetProgramResourceIndex = ffiuintenumPtrcharIOuint glGetProgramResourceIndexFunPtr
-
-glGetProgramResourceIndexFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLuint)
-glGetProgramResourceIndexFunPtr = unsafePerformIO (getProcAddress "glGetProgramResourceIndex")
-
-{-# NOINLINE glGetProgramResourceIndexFunPtr #-}
-
--- | Usage: @'glGetProgramResourceLocation' program programInterface name@
---
--- The length of @name@ should be @COMPSIZE(name)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetProgramResourceLocation.xhtml>
-
-
-glGetProgramResourceLocation :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint
-glGetProgramResourceLocation = ffiuintenumPtrcharIOint glGetProgramResourceLocationFunPtr
-
-glGetProgramResourceLocationFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLint)
-glGetProgramResourceLocationFunPtr = unsafePerformIO (getProcAddress "glGetProgramResourceLocation")
-
-{-# NOINLINE glGetProgramResourceLocationFunPtr #-}
-
--- | Usage: @'glGetProgramResourceLocationIndex' program programInterface name@
---
--- The length of @name@ should be @COMPSIZE(name)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetProgramResourceLocationIndex.xhtml>
-
-
-glGetProgramResourceLocationIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint
-glGetProgramResourceLocationIndex = ffiuintenumPtrcharIOint glGetProgramResourceLocationIndexFunPtr
-
-glGetProgramResourceLocationIndexFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLint)
-glGetProgramResourceLocationIndexFunPtr = unsafePerformIO (getProcAddress "glGetProgramResourceLocationIndex")
-
-{-# NOINLINE glGetProgramResourceLocationIndexFunPtr #-}
-
--- | Usage: @'glGetProgramResourceName' program programInterface index bufSize length name@
---
--- The length of @length@ should be @1@.
---
--- The length of @name@ should be @bufSize@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetProgramResourceName.xhtml>
-
-
-glGetProgramResourceName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
-glGetProgramResourceName = ffiuintenumuintsizeiPtrsizeiPtrcharIOV glGetProgramResourceNameFunPtr
-
-glGetProgramResourceNameFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
-glGetProgramResourceNameFunPtr = unsafePerformIO (getProcAddress "glGetProgramResourceName")
-
-{-# NOINLINE glGetProgramResourceNameFunPtr #-}
-
--- | Usage: @'glGetProgramResourceiv' program programInterface index propCount props bufSize length params@
---
--- The length of @props@ should be @propCount@.
---
--- The length of @length@ should be @1@.
---
--- The length of @params@ should be @bufSize@.
-
-
-glGetProgramResourceiv :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()
-glGetProgramResourceiv = ffiuintenumuintsizeiPtrenumsizeiPtrsizeiPtrintIOV glGetProgramResourceivFunPtr
-
-glGetProgramResourceivFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> IO ())
-glGetProgramResourceivFunPtr = unsafePerformIO (getProcAddress "glGetProgramResourceiv")
-
-{-# NOINLINE glGetProgramResourceivFunPtr #-}
-
--- | Usage: @'glInvalidateBufferData' buffer@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glInvalidateBufferData.xhtml>
-
-
-glInvalidateBufferData :: MonadIO m => GLuint -> m ()
-glInvalidateBufferData = ffiuintIOV glInvalidateBufferDataFunPtr
-
-glInvalidateBufferDataFunPtr :: FunPtr (GLuint -> IO ())
-glInvalidateBufferDataFunPtr = unsafePerformIO (getProcAddress "glInvalidateBufferData")
-
-{-# NOINLINE glInvalidateBufferDataFunPtr #-}
-
--- | Usage: @'glInvalidateBufferSubData' buffer offset length@
---
--- The parameter @offset@ is a @BufferOffset@.
---
--- The parameter @length@ is a @BufferSize@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glInvalidateBufferSubData.xhtml>
-
-
-glInvalidateBufferSubData :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> m ()
-glInvalidateBufferSubData = ffiuintintptrsizeiptrIOV glInvalidateBufferSubDataFunPtr
-
-glInvalidateBufferSubDataFunPtr :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> IO ())
-glInvalidateBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glInvalidateBufferSubData")
-
-{-# NOINLINE glInvalidateBufferSubDataFunPtr #-}
-
--- | Usage: @'glInvalidateFramebuffer' target numAttachments attachments@
---
--- The length of @attachments@ should be @numAttachments@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glInvalidateFramebuffer.xhtml>
-
-
-glInvalidateFramebuffer :: MonadIO m => GLenum -> GLsizei -> Ptr GLenum -> m ()
-glInvalidateFramebuffer = ffienumsizeiPtrenumIOV glInvalidateFramebufferFunPtr
-
-glInvalidateFramebufferFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLenum -> IO ())
-glInvalidateFramebufferFunPtr = unsafePerformIO (getProcAddress "glInvalidateFramebuffer")
-
-{-# NOINLINE glInvalidateFramebufferFunPtr #-}
-
--- | Usage: @'glInvalidateSubFramebuffer' target numAttachments attachments x y width height@
---
--- The length of @attachments@ should be @numAttachments@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glInvalidateSubFramebuffer.xhtml>
-
-
-glInvalidateSubFramebuffer :: MonadIO m => GLenum -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
-glInvalidateSubFramebuffer = ffienumsizeiPtrenumintintsizeisizeiIOV glInvalidateSubFramebufferFunPtr
-
-glInvalidateSubFramebufferFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
-glInvalidateSubFramebufferFunPtr = unsafePerformIO (getProcAddress "glInvalidateSubFramebuffer")
-
-{-# NOINLINE glInvalidateSubFramebufferFunPtr #-}
-
--- | Usage: @'glInvalidateTexImage' texture level@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glInvalidateTexImage.xhtml>
-
-
-glInvalidateTexImage :: MonadIO m => GLuint -> GLint -> m ()
-glInvalidateTexImage = ffiuintintIOV glInvalidateTexImageFunPtr
-
-glInvalidateTexImageFunPtr :: FunPtr (GLuint -> GLint -> IO ())
-glInvalidateTexImageFunPtr = unsafePerformIO (getProcAddress "glInvalidateTexImage")
-
-{-# NOINLINE glInvalidateTexImageFunPtr #-}
-
--- | Usage: @'glInvalidateTexSubImage' texture level xoffset yoffset zoffset width height depth@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glInvalidateTexSubImage.xhtml>
-
-
-glInvalidateTexSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()
-glInvalidateTexSubImage = ffiuintintintintintsizeisizeisizeiIOV glInvalidateTexSubImageFunPtr
-
-glInvalidateTexSubImageFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> IO ())
-glInvalidateTexSubImageFunPtr = unsafePerformIO (getProcAddress "glInvalidateTexSubImage")
-
-{-# NOINLINE glInvalidateTexSubImageFunPtr #-}
-
--- | Usage: @'glMultiDrawArraysIndirect' mode indirect drawcount stride@
---
--- The length of @indirect@ should be @COMPSIZE(drawcount,stride)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glMultiDrawArraysIndirect.xhtml>
-
-
-glMultiDrawArraysIndirect :: MonadIO m => GLenum -> Ptr () -> GLsizei -> GLsizei -> m ()
-glMultiDrawArraysIndirect = ffienumPtrVsizeisizeiIOV glMultiDrawArraysIndirectFunPtr
-
-glMultiDrawArraysIndirectFunPtr :: FunPtr (GLenum -> Ptr () -> GLsizei -> GLsizei -> IO ())
-glMultiDrawArraysIndirectFunPtr = unsafePerformIO (getProcAddress "glMultiDrawArraysIndirect")
-
-{-# NOINLINE glMultiDrawArraysIndirectFunPtr #-}
-
--- | Usage: @'glMultiDrawElementsIndirect' mode type indirect drawcount stride@
---
--- The length of @indirect@ should be @COMPSIZE(drawcount,stride)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glMultiDrawElementsIndirect.xhtml>
-
-
-glMultiDrawElementsIndirect :: MonadIO m => GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> m ()
-glMultiDrawElementsIndirect = ffienumenumPtrVsizeisizeiIOV glMultiDrawElementsIndirectFunPtr
-
-glMultiDrawElementsIndirectFunPtr :: FunPtr (GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> IO ())
-glMultiDrawElementsIndirectFunPtr = unsafePerformIO (getProcAddress "glMultiDrawElementsIndirect")
-
-{-# NOINLINE glMultiDrawElementsIndirectFunPtr #-}
-
--- | Usage: @'glObjectLabel' identifier name length label@
---
--- The length of @label@ should be @COMPSIZE(label,length)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glObjectLabel.xhtml>
-
-
-glObjectLabel :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()
-glObjectLabel = ffienumuintsizeiPtrcharIOV glObjectLabelFunPtr
-
-glObjectLabelFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLchar -> IO ())
-glObjectLabelFunPtr = unsafePerformIO (getProcAddress "glObjectLabel")
-
-{-# NOINLINE glObjectLabelFunPtr #-}
-
--- | Usage: @'glObjectPtrLabel' ptr length label@
---
--- The length of @label@ should be @COMPSIZE(label,length)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glObjectPtrLabel.xhtml>
-
-
-glObjectPtrLabel :: MonadIO m => Ptr () -> GLsizei -> Ptr GLchar -> m ()
-glObjectPtrLabel = ffiPtrVsizeiPtrcharIOV glObjectPtrLabelFunPtr
-
-glObjectPtrLabelFunPtr :: FunPtr (Ptr () -> GLsizei -> Ptr GLchar -> IO ())
-glObjectPtrLabelFunPtr = unsafePerformIO (getProcAddress "glObjectPtrLabel")
-
-{-# NOINLINE glObjectPtrLabelFunPtr #-}
-
--- | Usage: @'glPopDebugGroup'@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glPopDebugGroup.xhtml>
-
-
-glPopDebugGroup :: MonadIO m => m ()
-glPopDebugGroup = ffiIOV glPopDebugGroupFunPtr
-
-glPopDebugGroupFunPtr :: FunPtr (IO ())
-glPopDebugGroupFunPtr = unsafePerformIO (getProcAddress "glPopDebugGroup")
-
-{-# NOINLINE glPopDebugGroupFunPtr #-}
-
--- | Usage: @'glPushDebugGroup' source id length message@
---
--- The length of @message@ should be @COMPSIZE(message,length)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glPushDebugGroup.xhtml>
-
-
-glPushDebugGroup :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()
-glPushDebugGroup = ffienumuintsizeiPtrcharIOV glPushDebugGroupFunPtr
-
-glPushDebugGroupFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLchar -> IO ())
-glPushDebugGroupFunPtr = unsafePerformIO (getProcAddress "glPushDebugGroup")
-
-{-# NOINLINE glPushDebugGroupFunPtr #-}
-
--- | Usage: @'glShaderStorageBlockBinding' program storageBlockIndex storageBlockBinding@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glShaderStorageBlockBinding.xhtml>
-
-
-glShaderStorageBlockBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
-glShaderStorageBlockBinding = ffiuintuintuintIOV glShaderStorageBlockBindingFunPtr
-
-glShaderStorageBlockBindingFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
-glShaderStorageBlockBindingFunPtr = unsafePerformIO (getProcAddress "glShaderStorageBlockBinding")
-
-{-# NOINLINE glShaderStorageBlockBindingFunPtr #-}
-
--- | Usage: @'glTexBufferRange' target internalformat buffer offset size@
---
--- The parameter @offset@ is a @BufferOffset@.
---
--- The parameter @size@ is a @BufferSize@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexBufferRange.xhtml>
-
-
-glTexBufferRange :: MonadIO m => GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> m ()
-glTexBufferRange = ffienumenumuintintptrsizeiptrIOV glTexBufferRangeFunPtr
-
-glTexBufferRangeFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> IO ())
-glTexBufferRangeFunPtr = unsafePerformIO (getProcAddress "glTexBufferRange")
-
-{-# NOINLINE glTexBufferRangeFunPtr #-}
-
--- | Usage: @'glTexStorage2DMultisample' target samples internalformat width height fixedsamplelocations@
---
--- The parameter @fixedsamplelocations@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexStorage2DMultisample.xhtml>
-
-
-glTexStorage2DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()
-glTexStorage2DMultisample = ffienumsizeienumsizeisizeibooleanIOV glTexStorage2DMultisampleFunPtr
-
-glTexStorage2DMultisampleFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> IO ())
-glTexStorage2DMultisampleFunPtr = unsafePerformIO (getProcAddress "glTexStorage2DMultisample")
-
-{-# NOINLINE glTexStorage2DMultisampleFunPtr #-}
-
--- | Usage: @'glTexStorage3DMultisample' target samples internalformat width height depth fixedsamplelocations@
---
--- The parameter @fixedsamplelocations@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexStorage3DMultisample.xhtml>
-
-
-glTexStorage3DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
-glTexStorage3DMultisample = ffienumsizeienumsizeisizeisizeibooleanIOV glTexStorage3DMultisampleFunPtr
-
-glTexStorage3DMultisampleFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
-glTexStorage3DMultisampleFunPtr = unsafePerformIO (getProcAddress "glTexStorage3DMultisample")
-
-{-# NOINLINE glTexStorage3DMultisampleFunPtr #-}
-
--- | Usage: @'glTextureView' texture target origtexture internalformat minlevel numlevels minlayer numlayers@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTextureView.xhtml>
-
-
-glTextureView :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
-glTextureView = ffiuintenumuintenumuintuintuintuintIOV glTextureViewFunPtr
-
-glTextureViewFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
-glTextureViewFunPtr = unsafePerformIO (getProcAddress "glTextureView")
-
-{-# NOINLINE glTextureViewFunPtr #-}
-
--- | Usage: @'glVertexAttribBinding' attribindex bindingindex@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glVertexAttribBinding.xhtml>
-
-
-glVertexAttribBinding :: MonadIO m => GLuint -> GLuint -> m ()
-glVertexAttribBinding = ffiuintuintIOV glVertexAttribBindingFunPtr
-
-glVertexAttribBindingFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
-glVertexAttribBindingFunPtr = unsafePerformIO (getProcAddress "glVertexAttribBinding")
-
-{-# NOINLINE glVertexAttribBindingFunPtr #-}
-
--- | Usage: @'glVertexAttribFormat' attribindex size type normalized relativeoffset@
---
--- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glVertexAttribFormat.xhtml>
-
-
-glVertexAttribFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> m ()
-glVertexAttribFormat = ffiuintintenumbooleanuintIOV glVertexAttribFormatFunPtr
-
-glVertexAttribFormatFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> IO ())
-glVertexAttribFormatFunPtr = unsafePerformIO (getProcAddress "glVertexAttribFormat")
-
-{-# NOINLINE glVertexAttribFormatFunPtr #-}
-
--- | Usage: @'glVertexAttribIFormat' attribindex size type relativeoffset@
-
-
-glVertexAttribIFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLuint -> m ()
-glVertexAttribIFormat = ffiuintintenumuintIOV glVertexAttribIFormatFunPtr
-
-glVertexAttribIFormatFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLuint -> IO ())
-glVertexAttribIFormatFunPtr = unsafePerformIO (getProcAddress "glVertexAttribIFormat")
-
-{-# NOINLINE glVertexAttribIFormatFunPtr #-}
-
--- | Usage: @'glVertexAttribLFormat' attribindex size type relativeoffset@
-
-
-glVertexAttribLFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLuint -> m ()
-glVertexAttribLFormat = ffiuintintenumuintIOV glVertexAttribLFormatFunPtr
-
-glVertexAttribLFormatFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLuint -> IO ())
-glVertexAttribLFormatFunPtr = unsafePerformIO (getProcAddress "glVertexAttribLFormat")
-
-{-# NOINLINE glVertexAttribLFormatFunPtr #-}
-
--- | Usage: @'glVertexBindingDivisor' bindingindex divisor@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glVertexBindingDivisor.xhtml>
-
-
-glVertexBindingDivisor :: MonadIO m => GLuint -> GLuint -> m ()
-glVertexBindingDivisor = ffiuintuintIOV glVertexBindingDivisorFunPtr
-
-glVertexBindingDivisorFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
-glVertexBindingDivisorFunPtr = unsafePerformIO (getProcAddress "glVertexBindingDivisor")
-
-{-# NOINLINE glVertexBindingDivisorFunPtr #-}
-
-pattern GL_ACTIVE_RESOURCES = 0x92F5
-
-pattern GL_ACTIVE_VARIABLES = 0x9305
-
-pattern GL_ANY_SAMPLES_PASSED_CONSERVATIVE = 0x8D6A
-
-pattern GL_ARRAY_SIZE = 0x92FB
-
-pattern GL_ARRAY_STRIDE = 0x92FE
-
-pattern GL_ATOMIC_COUNTER_BUFFER_INDEX = 0x9301
-
-pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER = 0x90ED
-
-pattern GL_AUTO_GENERATE_MIPMAP = 0x8295
-
-pattern GL_BLOCK_INDEX = 0x92FD
-
-pattern GL_BUFFER = 0x82E0
-
-pattern GL_BUFFER_BINDING = 0x9302
-
-pattern GL_BUFFER_DATA_SIZE = 0x9303
-
-pattern GL_BUFFER_VARIABLE = 0x92E5
-
-pattern GL_CAVEAT_SUPPORT = 0x82B8
-
-pattern GL_CLEAR_BUFFER = 0x82B4
-
-pattern GL_COLOR_COMPONENTS = 0x8283
-
-pattern GL_COLOR_ENCODING = 0x8296
-
-pattern GL_COLOR_RENDERABLE = 0x8286
-
-pattern GL_COMPRESSED_R11_EAC = 0x9270
-
-pattern GL_COMPRESSED_RG11_EAC = 0x9272
-
-pattern GL_COMPRESSED_RGB8_ETC2 = 0x9274
-
-pattern GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9276
-
-pattern GL_COMPRESSED_RGBA8_ETC2_EAC = 0x9278
-
-pattern GL_COMPRESSED_SIGNED_R11_EAC = 0x9271
-
-pattern GL_COMPRESSED_SIGNED_RG11_EAC = 0x9273
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC = 0x9279
-
-pattern GL_COMPRESSED_SRGB8_ETC2 = 0x9275
-
-pattern GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9277
-
-pattern GL_COMPUTE_SHADER = 0x91B9
-
-pattern GL_COMPUTE_SHADER_BIT = 0x00000020
-
-pattern GL_COMPUTE_SUBROUTINE = 0x92ED
-
-pattern GL_COMPUTE_SUBROUTINE_UNIFORM = 0x92F3
-
-pattern GL_COMPUTE_TEXTURE = 0x82A0
-
-pattern GL_COMPUTE_WORK_GROUP_SIZE = 0x8267
-
-pattern GL_CONTEXT_FLAG_DEBUG_BIT = 0x00000002
-
-pattern GL_DEBUG_CALLBACK_FUNCTION = 0x8244
-
-pattern GL_DEBUG_CALLBACK_USER_PARAM = 0x8245
-
-pattern GL_DEBUG_GROUP_STACK_DEPTH = 0x826D
-
-pattern GL_DEBUG_LOGGED_MESSAGES = 0x9145
-
-pattern GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH = 0x8243
-
-pattern GL_DEBUG_OUTPUT = 0x92E0
-
-pattern GL_DEBUG_OUTPUT_SYNCHRONOUS = 0x8242
-
-pattern GL_DEBUG_SEVERITY_HIGH = 0x9146
-
-pattern GL_DEBUG_SEVERITY_LOW = 0x9148
-
-pattern GL_DEBUG_SEVERITY_MEDIUM = 0x9147
-
-pattern GL_DEBUG_SEVERITY_NOTIFICATION = 0x826B
-
-pattern GL_DEBUG_SOURCE_API = 0x8246
-
-pattern GL_DEBUG_SOURCE_APPLICATION = 0x824A
-
-pattern GL_DEBUG_SOURCE_OTHER = 0x824B
-
-pattern GL_DEBUG_SOURCE_SHADER_COMPILER = 0x8248
-
-pattern GL_DEBUG_SOURCE_THIRD_PARTY = 0x8249
-
-pattern GL_DEBUG_SOURCE_WINDOW_SYSTEM = 0x8247
-
-pattern GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR = 0x824D
-
-pattern GL_DEBUG_TYPE_ERROR = 0x824C
-
-pattern GL_DEBUG_TYPE_MARKER = 0x8268
-
-pattern GL_DEBUG_TYPE_OTHER = 0x8251
-
-pattern GL_DEBUG_TYPE_PERFORMANCE = 0x8250
-
-pattern GL_DEBUG_TYPE_POP_GROUP = 0x826A
-
-pattern GL_DEBUG_TYPE_PORTABILITY = 0x824F
-
-pattern GL_DEBUG_TYPE_PUSH_GROUP = 0x8269
-
-pattern GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR = 0x824E
-
-pattern GL_DEPTH_COMPONENTS = 0x8284
-
-pattern GL_DEPTH_RENDERABLE = 0x8287
-
-pattern GL_DEPTH_STENCIL_TEXTURE_MODE = 0x90EA
-
-pattern GL_DISPATCH_INDIRECT_BUFFER = 0x90EE
-
-pattern GL_DISPATCH_INDIRECT_BUFFER_BINDING = 0x90EF
-
-pattern GL_FILTER = 0x829A
-
-pattern GL_FRAGMENT_SUBROUTINE = 0x92EC
-
-pattern GL_FRAGMENT_SUBROUTINE_UNIFORM = 0x92F2
-
-pattern GL_FRAGMENT_TEXTURE = 0x829F
-
-pattern GL_FRAMEBUFFER_BLEND = 0x828B
-
-pattern GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS = 0x9314
-
-pattern GL_FRAMEBUFFER_DEFAULT_HEIGHT = 0x9311
-
-pattern GL_FRAMEBUFFER_DEFAULT_LAYERS = 0x9312
-
-pattern GL_FRAMEBUFFER_DEFAULT_SAMPLES = 0x9313
-
-pattern GL_FRAMEBUFFER_DEFAULT_WIDTH = 0x9310
-
-pattern GL_FRAMEBUFFER_RENDERABLE = 0x8289
-
-pattern GL_FRAMEBUFFER_RENDERABLE_LAYERED = 0x828A
-
-pattern GL_FULL_SUPPORT = 0x82B7
-
-pattern GL_GEOMETRY_SUBROUTINE = 0x92EB
-
-pattern GL_GEOMETRY_SUBROUTINE_UNIFORM = 0x92F1
-
-pattern GL_GEOMETRY_TEXTURE = 0x829E
-
-pattern GL_GET_TEXTURE_IMAGE_FORMAT = 0x8291
-
-pattern GL_GET_TEXTURE_IMAGE_TYPE = 0x8292
-
-pattern GL_IMAGE_CLASS_10_10_10_2 = 0x82C3
-
-pattern GL_IMAGE_CLASS_11_11_10 = 0x82C2
-
-pattern GL_IMAGE_CLASS_1_X_16 = 0x82BE
-
-pattern GL_IMAGE_CLASS_1_X_32 = 0x82BB
-
-pattern GL_IMAGE_CLASS_1_X_8 = 0x82C1
-
-pattern GL_IMAGE_CLASS_2_X_16 = 0x82BD
-
-pattern GL_IMAGE_CLASS_2_X_32 = 0x82BA
-
-pattern GL_IMAGE_CLASS_2_X_8 = 0x82C0
-
-pattern GL_IMAGE_CLASS_4_X_16 = 0x82BC
-
-pattern GL_IMAGE_CLASS_4_X_32 = 0x82B9
-
-pattern GL_IMAGE_CLASS_4_X_8 = 0x82BF
-
-pattern GL_IMAGE_COMPATIBILITY_CLASS = 0x82A8
-
-pattern GL_IMAGE_PIXEL_FORMAT = 0x82A9
-
-pattern GL_IMAGE_PIXEL_TYPE = 0x82AA
-
-pattern GL_IMAGE_TEXEL_SIZE = 0x82A7
-
-pattern GL_INTERNALFORMAT_ALPHA_SIZE = 0x8274
-
-pattern GL_INTERNALFORMAT_ALPHA_TYPE = 0x827B
-
-pattern GL_INTERNALFORMAT_BLUE_SIZE = 0x8273
-
-pattern GL_INTERNALFORMAT_BLUE_TYPE = 0x827A
-
-pattern GL_INTERNALFORMAT_DEPTH_SIZE = 0x8275
-
-pattern GL_INTERNALFORMAT_DEPTH_TYPE = 0x827C
-
-pattern GL_INTERNALFORMAT_GREEN_SIZE = 0x8272
-
-pattern GL_INTERNALFORMAT_GREEN_TYPE = 0x8279
-
-pattern GL_INTERNALFORMAT_PREFERRED = 0x8270
-
-pattern GL_INTERNALFORMAT_RED_SIZE = 0x8271
-
-pattern GL_INTERNALFORMAT_RED_TYPE = 0x8278
-
-pattern GL_INTERNALFORMAT_SHARED_SIZE = 0x8277
-
-pattern GL_INTERNALFORMAT_STENCIL_SIZE = 0x8276
-
-pattern GL_INTERNALFORMAT_STENCIL_TYPE = 0x827D
-
-pattern GL_INTERNALFORMAT_SUPPORTED = 0x826F
-
-pattern GL_IS_PER_PATCH = 0x92E7
-
-pattern GL_IS_ROW_MAJOR = 0x9300
-
-pattern GL_LOCATION = 0x930E
-
-pattern GL_LOCATION_INDEX = 0x930F
-
-pattern GL_MANUAL_GENERATE_MIPMAP = 0x8294
-
-pattern GL_MATRIX_STRIDE = 0x92FF
-
-pattern GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS = 0x8266
-
-pattern GL_MAX_COMBINED_DIMENSIONS = 0x8282
-
-pattern GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES = 0x8F39
-
-pattern GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS = 0x90DC
-
-pattern GL_MAX_COMPUTE_ATOMIC_COUNTERS = 0x8265
-
-pattern GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS = 0x8264
-
-pattern GL_MAX_COMPUTE_IMAGE_UNIFORMS = 0x91BD
-
-pattern GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS = 0x90DB
-
-pattern GL_MAX_COMPUTE_SHARED_MEMORY_SIZE = 0x8262
-
-pattern GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS = 0x91BC
-
-pattern GL_MAX_COMPUTE_UNIFORM_BLOCKS = 0x91BB
-
-pattern GL_MAX_COMPUTE_UNIFORM_COMPONENTS = 0x8263
-
-pattern GL_MAX_COMPUTE_WORK_GROUP_COUNT = 0x91BE
-
-pattern GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS = 0x90EB
-
-pattern GL_MAX_COMPUTE_WORK_GROUP_SIZE = 0x91BF
-
-pattern GL_MAX_DEBUG_GROUP_STACK_DEPTH = 0x826C
-
-pattern GL_MAX_DEBUG_LOGGED_MESSAGES = 0x9144
-
-pattern GL_MAX_DEBUG_MESSAGE_LENGTH = 0x9143
-
-pattern GL_MAX_DEPTH = 0x8280
-
-pattern GL_MAX_ELEMENT_INDEX = 0x8D6B
-
-pattern GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS = 0x90DA
-
-pattern GL_MAX_FRAMEBUFFER_HEIGHT = 0x9316
-
-pattern GL_MAX_FRAMEBUFFER_LAYERS = 0x9317
-
-pattern GL_MAX_FRAMEBUFFER_SAMPLES = 0x9318
-
-pattern GL_MAX_FRAMEBUFFER_WIDTH = 0x9315
-
-pattern GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS = 0x90D7
-
-pattern GL_MAX_HEIGHT = 0x827F
-
-pattern GL_MAX_LABEL_LENGTH = 0x82E8
-
-pattern GL_MAX_LAYERS = 0x8281
-
-pattern GL_MAX_NAME_LENGTH = 0x92F6
-
-pattern GL_MAX_NUM_ACTIVE_VARIABLES = 0x92F7
-
-pattern GL_MAX_NUM_COMPATIBLE_SUBROUTINES = 0x92F8
-
-pattern GL_MAX_SHADER_STORAGE_BLOCK_SIZE = 0x90DE
-
-pattern GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS = 0x90DD
-
-pattern GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS = 0x90D8
-
-pattern GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS = 0x90D9
-
-pattern GL_MAX_UNIFORM_LOCATIONS = 0x826E
-
-pattern GL_MAX_VERTEX_ATTRIB_BINDINGS = 0x82DA
-
-pattern GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET = 0x82D9
-
-pattern GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS = 0x90D6
-
-pattern GL_MAX_WIDTH = 0x827E
-
-pattern GL_MIPMAP = 0x8293
-
-pattern GL_NAME_LENGTH = 0x92F9
-
-pattern GL_NUM_ACTIVE_VARIABLES = 0x9304
-
-pattern GL_OFFSET = 0x92FC
-
-pattern GL_PRIMITIVE_RESTART_FIXED_INDEX = 0x8D69
-
-pattern GL_PROGRAM = 0x82E2
-
-pattern GL_PROGRAM_INPUT = 0x92E3
-
-pattern GL_PROGRAM_OUTPUT = 0x92E4
-
-pattern GL_PROGRAM_PIPELINE = 0x82E4
-
-pattern GL_QUERY = 0x82E3
-
-pattern GL_READ_PIXELS = 0x828C
-
-pattern GL_READ_PIXELS_FORMAT = 0x828D
-
-pattern GL_READ_PIXELS_TYPE = 0x828E
-
-pattern GL_REFERENCED_BY_COMPUTE_SHADER = 0x930B
-
-pattern GL_REFERENCED_BY_FRAGMENT_SHADER = 0x930A
-
-pattern GL_REFERENCED_BY_GEOMETRY_SHADER = 0x9309
-
-pattern GL_REFERENCED_BY_TESS_CONTROL_SHADER = 0x9307
-
-pattern GL_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x9308
-
-pattern GL_REFERENCED_BY_VERTEX_SHADER = 0x9306
-
-pattern GL_SAMPLER = 0x82E6
-
-pattern GL_SHADER = 0x82E1
-
-pattern GL_SHADER_IMAGE_ATOMIC = 0x82A6
-
-pattern GL_SHADER_IMAGE_LOAD = 0x82A4
-
-pattern GL_SHADER_IMAGE_STORE = 0x82A5
-
-pattern GL_SHADER_STORAGE_BARRIER_BIT = 0x00002000
-
-pattern GL_SHADER_STORAGE_BLOCK = 0x92E6
-
-pattern GL_SHADER_STORAGE_BUFFER = 0x90D2
-
-pattern GL_SHADER_STORAGE_BUFFER_BINDING = 0x90D3
-
-pattern GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT = 0x90DF
-
-pattern GL_SHADER_STORAGE_BUFFER_SIZE = 0x90D5
-
-pattern GL_SHADER_STORAGE_BUFFER_START = 0x90D4
-
-pattern GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST = 0x82AC
-
-pattern GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE = 0x82AE
-
-pattern GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST = 0x82AD
-
-pattern GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE = 0x82AF
-
-pattern GL_SRGB_READ = 0x8297
-
-pattern GL_SRGB_WRITE = 0x8298
-
-pattern GL_STENCIL_COMPONENTS = 0x8285
-
-pattern GL_STENCIL_RENDERABLE = 0x8288
-
-pattern GL_TESS_CONTROL_SUBROUTINE = 0x92E9
-
-pattern GL_TESS_CONTROL_SUBROUTINE_UNIFORM = 0x92EF
-
-pattern GL_TESS_CONTROL_TEXTURE = 0x829C
-
-pattern GL_TESS_EVALUATION_SUBROUTINE = 0x92EA
-
-pattern GL_TESS_EVALUATION_SUBROUTINE_UNIFORM = 0x92F0
-
-pattern GL_TESS_EVALUATION_TEXTURE = 0x829D
-
-pattern GL_TEXTURE_BUFFER_OFFSET = 0x919D
-
-pattern GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT = 0x919F
-
-pattern GL_TEXTURE_BUFFER_SIZE = 0x919E
-
-pattern GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT = 0x82B2
-
-pattern GL_TEXTURE_COMPRESSED_BLOCK_SIZE = 0x82B3
-
-pattern GL_TEXTURE_COMPRESSED_BLOCK_WIDTH = 0x82B1
-
-pattern GL_TEXTURE_GATHER = 0x82A2
-
-pattern GL_TEXTURE_GATHER_SHADOW = 0x82A3
-
-pattern GL_TEXTURE_IMAGE_FORMAT = 0x828F
-
-pattern GL_TEXTURE_IMAGE_TYPE = 0x8290
-
-pattern GL_TEXTURE_IMMUTABLE_LEVELS = 0x82DF
-
-pattern GL_TEXTURE_SHADOW = 0x82A1
-
-pattern GL_TEXTURE_VIEW = 0x82B5
-
-pattern GL_TEXTURE_VIEW_MIN_LAYER = 0x82DD
-
-pattern GL_TEXTURE_VIEW_MIN_LEVEL = 0x82DB
-
-pattern GL_TEXTURE_VIEW_NUM_LAYERS = 0x82DE
-
-pattern GL_TEXTURE_VIEW_NUM_LEVELS = 0x82DC
-
-pattern GL_TOP_LEVEL_ARRAY_SIZE = 0x930C
-
-pattern GL_TOP_LEVEL_ARRAY_STRIDE = 0x930D
-
-pattern GL_TRANSFORM_FEEDBACK_VARYING = 0x92F4
-
-pattern GL_TYPE = 0x92FA
-
-pattern GL_UNIFORM = 0x92E1
-
-pattern GL_UNIFORM_BLOCK = 0x92E2
-
-pattern GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER = 0x90EC
-
-pattern GL_VERTEX_ATTRIB_BINDING = 0x82D4
-
-pattern GL_VERTEX_ATTRIB_RELATIVE_OFFSET = 0x82D5
-
-pattern GL_VERTEX_BINDING_BUFFER = 0x8F4F
-
-pattern GL_VERTEX_BINDING_DIVISOR = 0x82D6
-
-pattern GL_VERTEX_BINDING_OFFSET = 0x82D7
-
-pattern GL_VERTEX_BINDING_STRIDE = 0x82D8
-
-pattern GL_VERTEX_SUBROUTINE = 0x92E8
-
-pattern GL_VERTEX_SUBROUTINE_UNIFORM = 0x92EE
-
-pattern GL_VERTEX_TEXTURE = 0x829B
-
-pattern GL_VIEW_CLASS_128_BITS = 0x82C4
-
-pattern GL_VIEW_CLASS_16_BITS = 0x82CA
-
-pattern GL_VIEW_CLASS_24_BITS = 0x82C9
-
-pattern GL_VIEW_CLASS_32_BITS = 0x82C8
-
-pattern GL_VIEW_CLASS_48_BITS = 0x82C7
-
-pattern GL_VIEW_CLASS_64_BITS = 0x82C6
-
-pattern GL_VIEW_CLASS_8_BITS = 0x82CB
-
-pattern GL_VIEW_CLASS_96_BITS = 0x82C5
-
-pattern GL_VIEW_CLASS_BPTC_FLOAT = 0x82D3
-
-pattern GL_VIEW_CLASS_BPTC_UNORM = 0x82D2
-
-pattern GL_VIEW_CLASS_RGTC1_RED = 0x82D0
-
-pattern GL_VIEW_CLASS_RGTC2_RG = 0x82D1
-
-pattern GL_VIEW_CLASS_S3TC_DXT1_RGB = 0x82CC
-
-pattern GL_VIEW_CLASS_S3TC_DXT1_RGBA = 0x82CD
-
-pattern GL_VIEW_CLASS_S3TC_DXT3_RGBA = 0x82CE
-
-pattern GL_VIEW_CLASS_S3TC_DXT5_RGBA = 0x82CF
-
-pattern GL_VIEW_COMPATIBILITY_CLASS = 0x82B6
-
--- | Usage: @'glBindBuffersBase' target first count buffers@
---
--- The length of @buffers@ should be @count@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindBuffersBase.xhtml>
-
-
-glBindBuffersBase :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLuint -> m ()
-glBindBuffersBase = ffienumuintsizeiPtruintIOV glBindBuffersBaseFunPtr
-
-glBindBuffersBaseFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLuint -> IO ())
-glBindBuffersBaseFunPtr = unsafePerformIO (getProcAddress "glBindBuffersBase")
-
-{-# NOINLINE glBindBuffersBaseFunPtr #-}
-
--- | Usage: @'glBindBuffersRange' target first count buffers offsets sizes@
---
--- The length of @buffers@ should be @count@.
---
--- The length of @offsets@ should be @count@.
---
--- The length of @sizes@ should be @count@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindBuffersRange.xhtml>
-
-
-glBindBuffersRange :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizeiptr -> m ()
-glBindBuffersRange = ffienumuintsizeiPtruintPtrintptrPtrsizeiptrIOV glBindBuffersRangeFunPtr
-
-glBindBuffersRangeFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizeiptr -> IO ())
-glBindBuffersRangeFunPtr = unsafePerformIO (getProcAddress "glBindBuffersRange")
-
-{-# NOINLINE glBindBuffersRangeFunPtr #-}
-
--- | Usage: @'glBindImageTextures' first count textures@
---
--- The length of @textures@ should be @count@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindImageTextures.xhtml>
-
-
-glBindImageTextures :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> m ()
-glBindImageTextures = ffiuintsizeiPtruintIOV glBindImageTexturesFunPtr
-
-glBindImageTexturesFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> IO ())
-glBindImageTexturesFunPtr = unsafePerformIO (getProcAddress "glBindImageTextures")
-
-{-# NOINLINE glBindImageTexturesFunPtr #-}
-
--- | Usage: @'glBindSamplers' first count samplers@
---
--- The length of @samplers@ should be @count@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindSamplers.xhtml>
-
-
-glBindSamplers :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> m ()
-glBindSamplers = ffiuintsizeiPtruintIOV glBindSamplersFunPtr
-
-glBindSamplersFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> IO ())
-glBindSamplersFunPtr = unsafePerformIO (getProcAddress "glBindSamplers")
-
-{-# NOINLINE glBindSamplersFunPtr #-}
-
--- | Usage: @'glBindTextures' first count textures@
---
--- The length of @textures@ should be @count@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindTextures.xhtml>
-
-
-glBindTextures :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> m ()
-glBindTextures = ffiuintsizeiPtruintIOV glBindTexturesFunPtr
-
-glBindTexturesFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> IO ())
-glBindTexturesFunPtr = unsafePerformIO (getProcAddress "glBindTextures")
-
-{-# NOINLINE glBindTexturesFunPtr #-}
-
--- | Usage: @'glBindVertexBuffers' first count buffers offsets strides@
---
--- The length of @buffers@ should be @count@.
---
--- The length of @offsets@ should be @count@.
---
--- The length of @strides@ should be @count@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindVertexBuffers.xhtml>
-
-
-glBindVertexBuffers :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> m ()
-glBindVertexBuffers = ffiuintsizeiPtruintPtrintptrPtrsizeiIOV glBindVertexBuffersFunPtr
-
-glBindVertexBuffersFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> IO ())
-glBindVertexBuffersFunPtr = unsafePerformIO (getProcAddress "glBindVertexBuffers")
-
-{-# NOINLINE glBindVertexBuffersFunPtr #-}
-
--- | Usage: @'glBufferStorage' target size data flags@
---
--- The length of @data@ should be @size@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBufferStorage.xhtml>
-
-
-glBufferStorage :: MonadIO m => GLenum -> GLsizeiptr -> Ptr () -> GLbitfield -> m ()
-glBufferStorage = ffienumsizeiptrPtrVbitfieldIOV glBufferStorageFunPtr
-
-glBufferStorageFunPtr :: FunPtr (GLenum -> GLsizeiptr -> Ptr () -> GLbitfield -> IO ())
-glBufferStorageFunPtr = unsafePerformIO (getProcAddress "glBufferStorage")
-
-{-# NOINLINE glBufferStorageFunPtr #-}
-
--- | Usage: @'glClearTexImage' texture level format type data@
---
--- The length of @data@ should be @COMPSIZE(format,type)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glClearTexImage.xhtml>
-
-
-glClearTexImage :: MonadIO m => GLuint -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
-glClearTexImage = ffiuintintenumenumPtrVIOV glClearTexImageFunPtr
-
-glClearTexImageFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
-glClearTexImageFunPtr = unsafePerformIO (getProcAddress "glClearTexImage")
-
-{-# NOINLINE glClearTexImageFunPtr #-}
-
--- | Usage: @'glClearTexSubImage' texture level xoffset yoffset zoffset width height depth format type data@
---
--- The length of @data@ should be @COMPSIZE(format,type)@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glClearTexSubImage.xhtml>
-
-
-glClearTexSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-glClearTexSubImage = ffiuintintintintintsizeisizeisizeienumenumPtrVIOV glClearTexSubImageFunPtr
-
-glClearTexSubImageFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
-glClearTexSubImageFunPtr = unsafePerformIO (getProcAddress "glClearTexSubImage")
-
-{-# NOINLINE glClearTexSubImageFunPtr #-}
-
-pattern GL_BUFFER_IMMUTABLE_STORAGE = 0x821F
-
-pattern GL_BUFFER_STORAGE_FLAGS = 0x8220
-
-pattern GL_CLEAR_TEXTURE = 0x9365
-
-pattern GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT = 0x00004000
-
-pattern GL_CLIENT_STORAGE_BIT = 0x0200
-
-pattern GL_DYNAMIC_STORAGE_BIT = 0x0100
-
-pattern GL_LOCATION_COMPONENT = 0x934A
-
-pattern GL_MAP_COHERENT_BIT = 0x0080
-
-pattern GL_MAP_PERSISTENT_BIT = 0x0040
-
-pattern GL_MAX_VERTEX_ATTRIB_STRIDE = 0x82E5
-
-pattern GL_MIRROR_CLAMP_TO_EDGE = 0x8743
-
-pattern GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED = 0x8221
-
-pattern GL_QUERY_BUFFER = 0x9192
-
-pattern GL_QUERY_BUFFER_BARRIER_BIT = 0x00008000
-
-pattern GL_QUERY_BUFFER_BINDING = 0x9193
-
-pattern GL_QUERY_RESULT_NO_WAIT = 0x9194
-
-pattern GL_TEXTURE_BUFFER_BINDING = 0x8C2A
-
-pattern GL_TRANSFORM_FEEDBACK_BUFFER_INDEX = 0x934B
-
-pattern GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE = 0x934C
-
--- | Usage: @'glBindTextureUnit' unit texture@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindTextureUnit.xhtml>
-
-
-glBindTextureUnit :: MonadIO m => GLuint -> GLuint -> m ()
-glBindTextureUnit = ffiuintuintIOV glBindTextureUnitFunPtr
-
-glBindTextureUnitFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
-glBindTextureUnitFunPtr = unsafePerformIO (getProcAddress "glBindTextureUnit")
-
-{-# NOINLINE glBindTextureUnitFunPtr #-}
-
--- | Usage: @'glBlitNamedFramebuffer' readFramebuffer drawFramebuffer srcX0 srcY0 srcX1 srcY1 dstX0 dstY0 dstX1 dstY1 mask filter@
-
-
-glBlitNamedFramebuffer :: MonadIO m => GLuint -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()
-glBlitNamedFramebuffer = ffiuintuintintintintintintintintintbitfieldenumIOV glBlitNamedFramebufferFunPtr
-
-glBlitNamedFramebufferFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> IO ())
-glBlitNamedFramebufferFunPtr = unsafePerformIO (getProcAddress "glBlitNamedFramebuffer")
-
-{-# NOINLINE glBlitNamedFramebufferFunPtr #-}
-
--- | Usage: @'glCheckNamedFramebufferStatus' framebuffer target@
-
-
-glCheckNamedFramebufferStatus :: MonadIO m => GLuint -> GLenum -> m GLenum
-glCheckNamedFramebufferStatus = ffiuintenumIOenum glCheckNamedFramebufferStatusFunPtr
-
-glCheckNamedFramebufferStatusFunPtr :: FunPtr (GLuint -> GLenum -> IO GLenum)
-glCheckNamedFramebufferStatusFunPtr = unsafePerformIO (getProcAddress "glCheckNamedFramebufferStatus")
-
-{-# NOINLINE glCheckNamedFramebufferStatusFunPtr #-}
-
--- | Usage: @'glClearNamedBufferData' buffer internalformat format type data@
-
-
-glClearNamedBufferData :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> Ptr () -> m ()
-glClearNamedBufferData = ffiuintenumenumenumPtrVIOV glClearNamedBufferDataFunPtr
-
-glClearNamedBufferDataFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLenum -> Ptr () -> IO ())
-glClearNamedBufferDataFunPtr = unsafePerformIO (getProcAddress "glClearNamedBufferData")
-
-{-# NOINLINE glClearNamedBufferDataFunPtr #-}
-
--- | Usage: @'glClearNamedBufferSubData' buffer internalformat offset size format type data@
---
--- The parameter @size@ is a @BufferSize@.
-
-
-glClearNamedBufferSubData :: MonadIO m => GLuint -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> m ()
-glClearNamedBufferSubData = ffiuintenumintptrsizeiptrenumenumPtrVIOV glClearNamedBufferSubDataFunPtr
-
-glClearNamedBufferSubDataFunPtr :: FunPtr (GLuint -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> IO ())
-glClearNamedBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glClearNamedBufferSubData")
-
-{-# NOINLINE glClearNamedBufferSubDataFunPtr #-}
-
--- | Usage: @'glClearNamedFramebufferfi' framebuffer buffer drawbuffer depth stencil@
-
-
-glClearNamedFramebufferfi :: MonadIO m => GLuint -> GLenum -> GLint -> GLfloat -> GLint -> m ()
-glClearNamedFramebufferfi = ffiuintenumintfloatintIOV glClearNamedFramebufferfiFunPtr
-
-glClearNamedFramebufferfiFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLfloat -> GLint -> IO ())
-glClearNamedFramebufferfiFunPtr = unsafePerformIO (getProcAddress "glClearNamedFramebufferfi")
-
-{-# NOINLINE glClearNamedFramebufferfiFunPtr #-}
-
--- | Usage: @'glClearNamedFramebufferfv' framebuffer buffer drawbuffer value@
-
-
-glClearNamedFramebufferfv :: MonadIO m => GLuint -> GLenum -> GLint -> Ptr GLfloat -> m ()
-glClearNamedFramebufferfv = ffiuintenumintPtrfloatIOV glClearNamedFramebufferfvFunPtr
-
-glClearNamedFramebufferfvFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> Ptr GLfloat -> IO ())
-glClearNamedFramebufferfvFunPtr = unsafePerformIO (getProcAddress "glClearNamedFramebufferfv")
-
-{-# NOINLINE glClearNamedFramebufferfvFunPtr #-}
-
--- | Usage: @'glClearNamedFramebufferiv' framebuffer buffer drawbuffer value@
-
-
-glClearNamedFramebufferiv :: MonadIO m => GLuint -> GLenum -> GLint -> Ptr GLint -> m ()
-glClearNamedFramebufferiv = ffiuintenumintPtrintIOV glClearNamedFramebufferivFunPtr
-
-glClearNamedFramebufferivFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> Ptr GLint -> IO ())
-glClearNamedFramebufferivFunPtr = unsafePerformIO (getProcAddress "glClearNamedFramebufferiv")
-
-{-# NOINLINE glClearNamedFramebufferivFunPtr #-}
-
--- | Usage: @'glClearNamedFramebufferuiv' framebuffer buffer drawbuffer value@
-
-
-glClearNamedFramebufferuiv :: MonadIO m => GLuint -> GLenum -> GLint -> Ptr GLuint -> m ()
-glClearNamedFramebufferuiv = ffiuintenumintPtruintIOV glClearNamedFramebufferuivFunPtr
-
-glClearNamedFramebufferuivFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> Ptr GLuint -> IO ())
-glClearNamedFramebufferuivFunPtr = unsafePerformIO (getProcAddress "glClearNamedFramebufferuiv")
-
-{-# NOINLINE glClearNamedFramebufferuivFunPtr #-}
-
--- | Usage: @'glClipControl' origin depth@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glClipControl.xhtml>
-
-
-glClipControl :: MonadIO m => GLenum -> GLenum -> m ()
-glClipControl = ffienumenumIOV glClipControlFunPtr
-
-glClipControlFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
-glClipControlFunPtr = unsafePerformIO (getProcAddress "glClipControl")
-
-{-# NOINLINE glClipControlFunPtr #-}
-
--- | Usage: @'glCompressedTextureSubImage1D' texture level xoffset width format imageSize data@
-
-
-glCompressedTextureSubImage1D :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
-glCompressedTextureSubImage1D = ffiuintintintsizeienumsizeiPtrVIOV glCompressedTextureSubImage1DFunPtr
-
-glCompressedTextureSubImage1DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
-glCompressedTextureSubImage1DFunPtr = unsafePerformIO (getProcAddress "glCompressedTextureSubImage1D")
-
-{-# NOINLINE glCompressedTextureSubImage1DFunPtr #-}
-
--- | Usage: @'glCompressedTextureSubImage2D' texture level xoffset yoffset width height format imageSize data@
-
-
-glCompressedTextureSubImage2D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
-glCompressedTextureSubImage2D = ffiuintintintintsizeisizeienumsizeiPtrVIOV glCompressedTextureSubImage2DFunPtr
-
-glCompressedTextureSubImage2DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
-glCompressedTextureSubImage2DFunPtr = unsafePerformIO (getProcAddress "glCompressedTextureSubImage2D")
-
-{-# NOINLINE glCompressedTextureSubImage2DFunPtr #-}
-
--- | Usage: @'glCompressedTextureSubImage3D' texture level xoffset yoffset zoffset width height depth format imageSize data@
-
-
-glCompressedTextureSubImage3D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
-glCompressedTextureSubImage3D = ffiuintintintintintsizeisizeisizeienumsizeiPtrVIOV glCompressedTextureSubImage3DFunPtr
-
-glCompressedTextureSubImage3DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
-glCompressedTextureSubImage3DFunPtr = unsafePerformIO (getProcAddress "glCompressedTextureSubImage3D")
-
-{-# NOINLINE glCompressedTextureSubImage3DFunPtr #-}
-
--- | Usage: @'glCopyNamedBufferSubData' readBuffer writeBuffer readOffset writeOffset size@
---
--- The parameter @size@ is a @BufferSize@.
-
-
-glCopyNamedBufferSubData :: MonadIO m => GLuint -> GLuint -> GLintptr -> GLintptr -> GLsizeiptr -> m ()
-glCopyNamedBufferSubData = ffiuintuintintptrintptrsizeiptrIOV glCopyNamedBufferSubDataFunPtr
-
-glCopyNamedBufferSubDataFunPtr :: FunPtr (GLuint -> GLuint -> GLintptr -> GLintptr -> GLsizeiptr -> IO ())
-glCopyNamedBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glCopyNamedBufferSubData")
-
-{-# NOINLINE glCopyNamedBufferSubDataFunPtr #-}
-
--- | Usage: @'glCopyTextureSubImage1D' texture level xoffset x y width@
-
-
-glCopyTextureSubImage1D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()
-glCopyTextureSubImage1D = ffiuintintintintintsizeiIOV glCopyTextureSubImage1DFunPtr
-
-glCopyTextureSubImage1DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ())
-glCopyTextureSubImage1DFunPtr = unsafePerformIO (getProcAddress "glCopyTextureSubImage1D")
-
-{-# NOINLINE glCopyTextureSubImage1DFunPtr #-}
-
--- | Usage: @'glCopyTextureSubImage2D' texture level xoffset yoffset x y width height@
-
-
-glCopyTextureSubImage2D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
-glCopyTextureSubImage2D = ffiuintintintintintintsizeisizeiIOV glCopyTextureSubImage2DFunPtr
-
-glCopyTextureSubImage2DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
-glCopyTextureSubImage2DFunPtr = unsafePerformIO (getProcAddress "glCopyTextureSubImage2D")
-
-{-# NOINLINE glCopyTextureSubImage2DFunPtr #-}
-
--- | Usage: @'glCopyTextureSubImage3D' texture level xoffset yoffset zoffset x y width height@
-
-
-glCopyTextureSubImage3D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
-glCopyTextureSubImage3D = ffiuintintintintintintintsizeisizeiIOV glCopyTextureSubImage3DFunPtr
-
-glCopyTextureSubImage3DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
-glCopyTextureSubImage3DFunPtr = unsafePerformIO (getProcAddress "glCopyTextureSubImage3D")
-
-{-# NOINLINE glCopyTextureSubImage3DFunPtr #-}
-
--- | Usage: @'glCreateBuffers' n buffers@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCreateBuffers.xhtml>
-
-
-glCreateBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glCreateBuffers = ffisizeiPtruintIOV glCreateBuffersFunPtr
-
-glCreateBuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glCreateBuffersFunPtr = unsafePerformIO (getProcAddress "glCreateBuffers")
-
-{-# NOINLINE glCreateBuffersFunPtr #-}
-
--- | Usage: @'glCreateFramebuffers' n framebuffers@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCreateFramebuffers.xhtml>
-
-
-glCreateFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glCreateFramebuffers = ffisizeiPtruintIOV glCreateFramebuffersFunPtr
-
-glCreateFramebuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glCreateFramebuffersFunPtr = unsafePerformIO (getProcAddress "glCreateFramebuffers")
-
-{-# NOINLINE glCreateFramebuffersFunPtr #-}
-
--- | Usage: @'glCreateProgramPipelines' n pipelines@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCreateProgramPipelines.xhtml>
-
-
-glCreateProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glCreateProgramPipelines = ffisizeiPtruintIOV glCreateProgramPipelinesFunPtr
-
-glCreateProgramPipelinesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glCreateProgramPipelinesFunPtr = unsafePerformIO (getProcAddress "glCreateProgramPipelines")
-
-{-# NOINLINE glCreateProgramPipelinesFunPtr #-}
-
--- | Usage: @'glCreateQueries' target n ids@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCreateQueries.xhtml>
-
-
-glCreateQueries :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()
-glCreateQueries = ffienumsizeiPtruintIOV glCreateQueriesFunPtr
-
-glCreateQueriesFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLuint -> IO ())
-glCreateQueriesFunPtr = unsafePerformIO (getProcAddress "glCreateQueries")
-
-{-# NOINLINE glCreateQueriesFunPtr #-}
-
--- | Usage: @'glCreateRenderbuffers' n renderbuffers@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCreateRenderbuffers.xhtml>
-
-
-glCreateRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glCreateRenderbuffers = ffisizeiPtruintIOV glCreateRenderbuffersFunPtr
-
-glCreateRenderbuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glCreateRenderbuffersFunPtr = unsafePerformIO (getProcAddress "glCreateRenderbuffers")
-
-{-# NOINLINE glCreateRenderbuffersFunPtr #-}
-
--- | Usage: @'glCreateSamplers' n samplers@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCreateSamplers.xhtml>
-
-
-glCreateSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glCreateSamplers = ffisizeiPtruintIOV glCreateSamplersFunPtr
-
-glCreateSamplersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glCreateSamplersFunPtr = unsafePerformIO (getProcAddress "glCreateSamplers")
-
-{-# NOINLINE glCreateSamplersFunPtr #-}
-
--- | Usage: @'glCreateTextures' target n textures@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCreateTextures.xhtml>
-
-
-glCreateTextures :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()
-glCreateTextures = ffienumsizeiPtruintIOV glCreateTexturesFunPtr
-
-glCreateTexturesFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLuint -> IO ())
-glCreateTexturesFunPtr = unsafePerformIO (getProcAddress "glCreateTextures")
-
-{-# NOINLINE glCreateTexturesFunPtr #-}
-
--- | Usage: @'glCreateTransformFeedbacks' n ids@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCreateTransformFeedbacks.xhtml>
-
-
-glCreateTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glCreateTransformFeedbacks = ffisizeiPtruintIOV glCreateTransformFeedbacksFunPtr
-
-glCreateTransformFeedbacksFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glCreateTransformFeedbacksFunPtr = unsafePerformIO (getProcAddress "glCreateTransformFeedbacks")
-
-{-# NOINLINE glCreateTransformFeedbacksFunPtr #-}
-
--- | Usage: @'glCreateVertexArrays' n arrays@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCreateVertexArrays.xhtml>
-
-
-glCreateVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glCreateVertexArrays = ffisizeiPtruintIOV glCreateVertexArraysFunPtr
-
-glCreateVertexArraysFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glCreateVertexArraysFunPtr = unsafePerformIO (getProcAddress "glCreateVertexArrays")
-
-{-# NOINLINE glCreateVertexArraysFunPtr #-}
-
--- | Usage: @'glDisableVertexArrayAttrib' vaobj index@
-
-
-glDisableVertexArrayAttrib :: MonadIO m => GLuint -> GLuint -> m ()
-glDisableVertexArrayAttrib = ffiuintuintIOV glDisableVertexArrayAttribFunPtr
-
-glDisableVertexArrayAttribFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
-glDisableVertexArrayAttribFunPtr = unsafePerformIO (getProcAddress "glDisableVertexArrayAttrib")
-
-{-# NOINLINE glDisableVertexArrayAttribFunPtr #-}
-
--- | Usage: @'glEnableVertexArrayAttrib' vaobj index@
-
-
-glEnableVertexArrayAttrib :: MonadIO m => GLuint -> GLuint -> m ()
-glEnableVertexArrayAttrib = ffiuintuintIOV glEnableVertexArrayAttribFunPtr
-
-glEnableVertexArrayAttribFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
-glEnableVertexArrayAttribFunPtr = unsafePerformIO (getProcAddress "glEnableVertexArrayAttrib")
-
-{-# NOINLINE glEnableVertexArrayAttribFunPtr #-}
-
--- | Usage: @'glFlushMappedNamedBufferRange' buffer offset length@
---
--- The parameter @length@ is a @BufferSize@.
-
-
-glFlushMappedNamedBufferRange :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> m ()
-glFlushMappedNamedBufferRange = ffiuintintptrsizeiptrIOV glFlushMappedNamedBufferRangeFunPtr
-
-glFlushMappedNamedBufferRangeFunPtr :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> IO ())
-glFlushMappedNamedBufferRangeFunPtr = unsafePerformIO (getProcAddress "glFlushMappedNamedBufferRange")
-
-{-# NOINLINE glFlushMappedNamedBufferRangeFunPtr #-}
-
--- | Usage: @'glGenerateTextureMipmap' texture@
-
-
-glGenerateTextureMipmap :: MonadIO m => GLuint -> m ()
-glGenerateTextureMipmap = ffiuintIOV glGenerateTextureMipmapFunPtr
-
-glGenerateTextureMipmapFunPtr :: FunPtr (GLuint -> IO ())
-glGenerateTextureMipmapFunPtr = unsafePerformIO (getProcAddress "glGenerateTextureMipmap")
-
-{-# NOINLINE glGenerateTextureMipmapFunPtr #-}
-
--- | Usage: @'glGetCompressedTextureImage' texture level bufSize pixels@
-
-
-glGetCompressedTextureImage :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr () -> m ()
-glGetCompressedTextureImage = ffiuintintsizeiPtrVIOV glGetCompressedTextureImageFunPtr
-
-glGetCompressedTextureImageFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr () -> IO ())
-glGetCompressedTextureImageFunPtr = unsafePerformIO (getProcAddress "glGetCompressedTextureImage")
-
-{-# NOINLINE glGetCompressedTextureImageFunPtr #-}
-
--- | Usage: @'glGetCompressedTextureSubImage' texture level xoffset yoffset zoffset width height depth bufSize pixels@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetCompressedTextureSubImage.xhtml>
-
-
-glGetCompressedTextureSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> Ptr () -> m ()
-glGetCompressedTextureSubImage = ffiuintintintintintsizeisizeisizeisizeiPtrVIOV glGetCompressedTextureSubImageFunPtr
-
-glGetCompressedTextureSubImageFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> Ptr () -> IO ())
-glGetCompressedTextureSubImageFunPtr = unsafePerformIO (getProcAddress "glGetCompressedTextureSubImage")
-
-{-# NOINLINE glGetCompressedTextureSubImageFunPtr #-}
-
--- | Usage: @'glGetGraphicsResetStatus'@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetGraphicsResetStatus.xhtml>
-
-
-glGetGraphicsResetStatus :: MonadIO m => m GLenum
-glGetGraphicsResetStatus = ffiIOenum glGetGraphicsResetStatusFunPtr
-
-glGetGraphicsResetStatusFunPtr :: FunPtr (IO GLenum)
-glGetGraphicsResetStatusFunPtr = unsafePerformIO (getProcAddress "glGetGraphicsResetStatus")
-
-{-# NOINLINE glGetGraphicsResetStatusFunPtr #-}
-
--- | Usage: @'glGetNamedBufferParameteri64v' buffer pname params@
-
-
-glGetNamedBufferParameteri64v :: MonadIO m => GLuint -> GLenum -> Ptr GLint64 -> m ()
-glGetNamedBufferParameteri64v = ffiuintenumPtrint64IOV glGetNamedBufferParameteri64vFunPtr
-
-glGetNamedBufferParameteri64vFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint64 -> IO ())
-glGetNamedBufferParameteri64vFunPtr = unsafePerformIO (getProcAddress "glGetNamedBufferParameteri64v")
-
-{-# NOINLINE glGetNamedBufferParameteri64vFunPtr #-}
-
--- | Usage: @'glGetNamedBufferParameteriv' buffer pname params@
-
-
-glGetNamedBufferParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetNamedBufferParameteriv = ffiuintenumPtrintIOV glGetNamedBufferParameterivFunPtr
-
-glGetNamedBufferParameterivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetNamedBufferParameterivFunPtr = unsafePerformIO (getProcAddress "glGetNamedBufferParameteriv")
-
-{-# NOINLINE glGetNamedBufferParameterivFunPtr #-}
-
--- | Usage: @'glGetNamedBufferPointerv' buffer pname params@
-
-
-glGetNamedBufferPointerv :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr ()) -> m ()
-glGetNamedBufferPointerv = ffiuintenumPtrPtrVIOV glGetNamedBufferPointervFunPtr
-
-glGetNamedBufferPointervFunPtr :: FunPtr (GLuint -> GLenum -> Ptr (Ptr ()) -> IO ())
-glGetNamedBufferPointervFunPtr = unsafePerformIO (getProcAddress "glGetNamedBufferPointerv")
-
-{-# NOINLINE glGetNamedBufferPointervFunPtr #-}
-
--- | Usage: @'glGetNamedBufferSubData' buffer offset size data@
---
--- The parameter @size@ is a @BufferSize@.
-
-
-glGetNamedBufferSubData :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> Ptr () -> m ()
-glGetNamedBufferSubData = ffiuintintptrsizeiptrPtrVIOV glGetNamedBufferSubDataFunPtr
-
-glGetNamedBufferSubDataFunPtr :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> Ptr () -> IO ())
-glGetNamedBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glGetNamedBufferSubData")
-
-{-# NOINLINE glGetNamedBufferSubDataFunPtr #-}
-
--- | Usage: @'glGetNamedFramebufferAttachmentParameteriv' framebuffer attachment pname params@
-
-
-glGetNamedFramebufferAttachmentParameteriv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
-glGetNamedFramebufferAttachmentParameteriv = ffiuintenumenumPtrintIOV glGetNamedFramebufferAttachmentParameterivFunPtr
-
-glGetNamedFramebufferAttachmentParameterivFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetNamedFramebufferAttachmentParameterivFunPtr = unsafePerformIO (getProcAddress "glGetNamedFramebufferAttachmentParameteriv")
-
-{-# NOINLINE glGetNamedFramebufferAttachmentParameterivFunPtr #-}
-
--- | Usage: @'glGetNamedFramebufferParameteriv' framebuffer pname param@
-
-
-glGetNamedFramebufferParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetNamedFramebufferParameteriv = ffiuintenumPtrintIOV glGetNamedFramebufferParameterivFunPtr
-
-glGetNamedFramebufferParameterivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetNamedFramebufferParameterivFunPtr = unsafePerformIO (getProcAddress "glGetNamedFramebufferParameteriv")
-
-{-# NOINLINE glGetNamedFramebufferParameterivFunPtr #-}
-
--- | Usage: @'glGetNamedRenderbufferParameteriv' renderbuffer pname params@
-
-
-glGetNamedRenderbufferParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetNamedRenderbufferParameteriv = ffiuintenumPtrintIOV glGetNamedRenderbufferParameterivFunPtr
-
-glGetNamedRenderbufferParameterivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetNamedRenderbufferParameterivFunPtr = unsafePerformIO (getProcAddress "glGetNamedRenderbufferParameteriv")
-
-{-# NOINLINE glGetNamedRenderbufferParameterivFunPtr #-}
-
--- | Usage: @'glGetQueryBufferObjecti64v' id buffer pname offset@
-
-
-glGetQueryBufferObjecti64v :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()
-glGetQueryBufferObjecti64v = ffiuintuintenumintptrIOV glGetQueryBufferObjecti64vFunPtr
-
-glGetQueryBufferObjecti64vFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> GLintptr -> IO ())
-glGetQueryBufferObjecti64vFunPtr = unsafePerformIO (getProcAddress "glGetQueryBufferObjecti64v")
-
-{-# NOINLINE glGetQueryBufferObjecti64vFunPtr #-}
-
--- | Usage: @'glGetQueryBufferObjectiv' id buffer pname offset@
-
-
-glGetQueryBufferObjectiv :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()
-glGetQueryBufferObjectiv = ffiuintuintenumintptrIOV glGetQueryBufferObjectivFunPtr
-
-glGetQueryBufferObjectivFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> GLintptr -> IO ())
-glGetQueryBufferObjectivFunPtr = unsafePerformIO (getProcAddress "glGetQueryBufferObjectiv")
-
-{-# NOINLINE glGetQueryBufferObjectivFunPtr #-}
-
--- | Usage: @'glGetQueryBufferObjectui64v' id buffer pname offset@
-
-
-glGetQueryBufferObjectui64v :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()
-glGetQueryBufferObjectui64v = ffiuintuintenumintptrIOV glGetQueryBufferObjectui64vFunPtr
-
-glGetQueryBufferObjectui64vFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> GLintptr -> IO ())
-glGetQueryBufferObjectui64vFunPtr = unsafePerformIO (getProcAddress "glGetQueryBufferObjectui64v")
-
-{-# NOINLINE glGetQueryBufferObjectui64vFunPtr #-}
-
--- | Usage: @'glGetQueryBufferObjectuiv' id buffer pname offset@
-
-
-glGetQueryBufferObjectuiv :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()
-glGetQueryBufferObjectuiv = ffiuintuintenumintptrIOV glGetQueryBufferObjectuivFunPtr
-
-glGetQueryBufferObjectuivFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> GLintptr -> IO ())
-glGetQueryBufferObjectuivFunPtr = unsafePerformIO (getProcAddress "glGetQueryBufferObjectuiv")
-
-{-# NOINLINE glGetQueryBufferObjectuivFunPtr #-}
-
--- | Usage: @'glGetTextureImage' texture level format type bufSize pixels@
-
-
-glGetTextureImage :: MonadIO m => GLuint -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
-glGetTextureImage = ffiuintintenumenumsizeiPtrVIOV glGetTextureImageFunPtr
-
-glGetTextureImageFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
-glGetTextureImageFunPtr = unsafePerformIO (getProcAddress "glGetTextureImage")
-
-{-# NOINLINE glGetTextureImageFunPtr #-}
-
--- | Usage: @'glGetTextureLevelParameterfv' texture level pname params@
-
-
-glGetTextureLevelParameterfv :: MonadIO m => GLuint -> GLint -> GLenum -> Ptr GLfloat -> m ()
-glGetTextureLevelParameterfv = ffiuintintenumPtrfloatIOV glGetTextureLevelParameterfvFunPtr
-
-glGetTextureLevelParameterfvFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> Ptr GLfloat -> IO ())
-glGetTextureLevelParameterfvFunPtr = unsafePerformIO (getProcAddress "glGetTextureLevelParameterfv")
-
-{-# NOINLINE glGetTextureLevelParameterfvFunPtr #-}
-
--- | Usage: @'glGetTextureLevelParameteriv' texture level pname params@
-
-
-glGetTextureLevelParameteriv :: MonadIO m => GLuint -> GLint -> GLenum -> Ptr GLint -> m ()
-glGetTextureLevelParameteriv = ffiuintintenumPtrintIOV glGetTextureLevelParameterivFunPtr
-
-glGetTextureLevelParameterivFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> Ptr GLint -> IO ())
-glGetTextureLevelParameterivFunPtr = unsafePerformIO (getProcAddress "glGetTextureLevelParameteriv")
-
-{-# NOINLINE glGetTextureLevelParameterivFunPtr #-}
-
--- | Usage: @'glGetTextureParameterIiv' texture pname params@
-
-
-glGetTextureParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetTextureParameterIiv = ffiuintenumPtrintIOV glGetTextureParameterIivFunPtr
-
-glGetTextureParameterIivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetTextureParameterIivFunPtr = unsafePerformIO (getProcAddress "glGetTextureParameterIiv")
-
-{-# NOINLINE glGetTextureParameterIivFunPtr #-}
-
--- | Usage: @'glGetTextureParameterIuiv' texture pname params@
-
-
-glGetTextureParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
-glGetTextureParameterIuiv = ffiuintenumPtruintIOV glGetTextureParameterIuivFunPtr
-
-glGetTextureParameterIuivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
-glGetTextureParameterIuivFunPtr = unsafePerformIO (getProcAddress "glGetTextureParameterIuiv")
-
-{-# NOINLINE glGetTextureParameterIuivFunPtr #-}
-
--- | Usage: @'glGetTextureParameterfv' texture pname params@
-
-
-glGetTextureParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
-glGetTextureParameterfv = ffiuintenumPtrfloatIOV glGetTextureParameterfvFunPtr
-
-glGetTextureParameterfvFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
-glGetTextureParameterfvFunPtr = unsafePerformIO (getProcAddress "glGetTextureParameterfv")
-
-{-# NOINLINE glGetTextureParameterfvFunPtr #-}
-
--- | Usage: @'glGetTextureParameteriv' texture pname params@
-
-
-glGetTextureParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetTextureParameteriv = ffiuintenumPtrintIOV glGetTextureParameterivFunPtr
-
-glGetTextureParameterivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetTextureParameterivFunPtr = unsafePerformIO (getProcAddress "glGetTextureParameteriv")
-
-{-# NOINLINE glGetTextureParameterivFunPtr #-}
-
--- | Usage: @'glGetTextureSubImage' texture level xoffset yoffset zoffset width height depth format type bufSize pixels@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetTextureSubImage.xhtml>
-
-
-glGetTextureSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
-glGetTextureSubImage = ffiuintintintintintsizeisizeisizeienumenumsizeiPtrVIOV glGetTextureSubImageFunPtr
-
-glGetTextureSubImageFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
-glGetTextureSubImageFunPtr = unsafePerformIO (getProcAddress "glGetTextureSubImage")
-
-{-# NOINLINE glGetTextureSubImageFunPtr #-}
-
--- | Usage: @'glGetTransformFeedbacki64_v' xfb pname index param@
-
-
-glGetTransformFeedbacki64_v :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLint64 -> m ()
-glGetTransformFeedbacki64_v = ffiuintenumuintPtrint64IOV glGetTransformFeedbacki64_vFunPtr
-
-glGetTransformFeedbacki64_vFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLint64 -> IO ())
-glGetTransformFeedbacki64_vFunPtr = unsafePerformIO (getProcAddress "glGetTransformFeedbacki64_v")
-
-{-# NOINLINE glGetTransformFeedbacki64_vFunPtr #-}
-
--- | Usage: @'glGetTransformFeedbacki_v' xfb pname index param@
-
-
-glGetTransformFeedbacki_v :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLint -> m ()
-glGetTransformFeedbacki_v = ffiuintenumuintPtrintIOV glGetTransformFeedbacki_vFunPtr
-
-glGetTransformFeedbacki_vFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLint -> IO ())
-glGetTransformFeedbacki_vFunPtr = unsafePerformIO (getProcAddress "glGetTransformFeedbacki_v")
-
-{-# NOINLINE glGetTransformFeedbacki_vFunPtr #-}
-
--- | Usage: @'glGetTransformFeedbackiv' xfb pname param@
-
-
-glGetTransformFeedbackiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetTransformFeedbackiv = ffiuintenumPtrintIOV glGetTransformFeedbackivFunPtr
-
-glGetTransformFeedbackivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetTransformFeedbackivFunPtr = unsafePerformIO (getProcAddress "glGetTransformFeedbackiv")
-
-{-# NOINLINE glGetTransformFeedbackivFunPtr #-}
-
--- | Usage: @'glGetVertexArrayIndexed64iv' vaobj index pname param@
-
-
-glGetVertexArrayIndexed64iv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint64 -> m ()
-glGetVertexArrayIndexed64iv = ffiuintuintenumPtrint64IOV glGetVertexArrayIndexed64ivFunPtr
-
-glGetVertexArrayIndexed64ivFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint64 -> IO ())
-glGetVertexArrayIndexed64ivFunPtr = unsafePerformIO (getProcAddress "glGetVertexArrayIndexed64iv")
-
-{-# NOINLINE glGetVertexArrayIndexed64ivFunPtr #-}
-
--- | Usage: @'glGetVertexArrayIndexediv' vaobj index pname param@
-
-
-glGetVertexArrayIndexediv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()
-glGetVertexArrayIndexediv = ffiuintuintenumPtrintIOV glGetVertexArrayIndexedivFunPtr
-
-glGetVertexArrayIndexedivFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetVertexArrayIndexedivFunPtr = unsafePerformIO (getProcAddress "glGetVertexArrayIndexediv")
-
-{-# NOINLINE glGetVertexArrayIndexedivFunPtr #-}
-
--- | Usage: @'glGetVertexArrayiv' vaobj pname param@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetVertexArrayiv.xhtml>
-
-
-glGetVertexArrayiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetVertexArrayiv = ffiuintenumPtrintIOV glGetVertexArrayivFunPtr
-
-glGetVertexArrayivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetVertexArrayivFunPtr = unsafePerformIO (getProcAddress "glGetVertexArrayiv")
-
-{-# NOINLINE glGetVertexArrayivFunPtr #-}
-
--- | Usage: @'glGetnUniformfv' program location bufSize params@
-
-
-glGetnUniformfv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
-glGetnUniformfv = ffiuintintsizeiPtrfloatIOV glGetnUniformfvFunPtr
-
-glGetnUniformfvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
-glGetnUniformfvFunPtr = unsafePerformIO (getProcAddress "glGetnUniformfv")
-
-{-# NOINLINE glGetnUniformfvFunPtr #-}
-
--- | Usage: @'glGetnUniformiv' program location bufSize params@
-
-
-glGetnUniformiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
-glGetnUniformiv = ffiuintintsizeiPtrintIOV glGetnUniformivFunPtr
-
-glGetnUniformivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
-glGetnUniformivFunPtr = unsafePerformIO (getProcAddress "glGetnUniformiv")
-
-{-# NOINLINE glGetnUniformivFunPtr #-}
-
--- | Usage: @'glGetnUniformuiv' program location bufSize params@
-
-
-glGetnUniformuiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
-glGetnUniformuiv = ffiuintintsizeiPtruintIOV glGetnUniformuivFunPtr
-
-glGetnUniformuivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
-glGetnUniformuivFunPtr = unsafePerformIO (getProcAddress "glGetnUniformuiv")
-
-{-# NOINLINE glGetnUniformuivFunPtr #-}
-
--- | Usage: @'glInvalidateNamedFramebufferData' framebuffer numAttachments attachments@
-
-
-glInvalidateNamedFramebufferData :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> m ()
-glInvalidateNamedFramebufferData = ffiuintsizeiPtrenumIOV glInvalidateNamedFramebufferDataFunPtr
-
-glInvalidateNamedFramebufferDataFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> IO ())
-glInvalidateNamedFramebufferDataFunPtr = unsafePerformIO (getProcAddress "glInvalidateNamedFramebufferData")
-
-{-# NOINLINE glInvalidateNamedFramebufferDataFunPtr #-}
-
--- | Usage: @'glInvalidateNamedFramebufferSubData' framebuffer numAttachments attachments x y width height@
-
-
-glInvalidateNamedFramebufferSubData :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
-glInvalidateNamedFramebufferSubData = ffiuintsizeiPtrenumintintsizeisizeiIOV glInvalidateNamedFramebufferSubDataFunPtr
-
-glInvalidateNamedFramebufferSubDataFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
-glInvalidateNamedFramebufferSubDataFunPtr = unsafePerformIO (getProcAddress "glInvalidateNamedFramebufferSubData")
-
-{-# NOINLINE glInvalidateNamedFramebufferSubDataFunPtr #-}
-
--- | Usage: @'glMapNamedBuffer' buffer access@
-
-
-glMapNamedBuffer :: MonadIO m => GLuint -> GLenum -> m (Ptr ())
-glMapNamedBuffer = ffiuintenumIOPtrV glMapNamedBufferFunPtr
-
-glMapNamedBufferFunPtr :: FunPtr (GLuint -> GLenum -> IO (Ptr ()))
-glMapNamedBufferFunPtr = unsafePerformIO (getProcAddress "glMapNamedBuffer")
-
-{-# NOINLINE glMapNamedBufferFunPtr #-}
-
--- | Usage: @'glMapNamedBufferRange' buffer offset length access@
---
--- The parameter @length@ is a @BufferSize@.
-
-
-glMapNamedBufferRange :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr ())
-glMapNamedBufferRange = ffiuintintptrsizeiptrbitfieldIOPtrV glMapNamedBufferRangeFunPtr
-
-glMapNamedBufferRangeFunPtr :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> GLbitfield -> IO (Ptr ()))
-glMapNamedBufferRangeFunPtr = unsafePerformIO (getProcAddress "glMapNamedBufferRange")
-
-{-# NOINLINE glMapNamedBufferRangeFunPtr #-}
-
--- | Usage: @'glMemoryBarrierByRegion' barriers@
-
-
-glMemoryBarrierByRegion :: MonadIO m => GLbitfield -> m ()
-glMemoryBarrierByRegion = ffibitfieldIOV glMemoryBarrierByRegionFunPtr
-
-glMemoryBarrierByRegionFunPtr :: FunPtr (GLbitfield -> IO ())
-glMemoryBarrierByRegionFunPtr = unsafePerformIO (getProcAddress "glMemoryBarrierByRegion")
-
-{-# NOINLINE glMemoryBarrierByRegionFunPtr #-}
-
--- | Usage: @'glNamedBufferData' buffer size data usage@
---
--- The parameter @size@ is a @BufferSize@.
-
-
-glNamedBufferData :: MonadIO m => GLuint -> GLsizeiptr -> Ptr () -> GLenum -> m ()
-glNamedBufferData = ffiuintsizeiptrPtrVenumIOV glNamedBufferDataFunPtr
-
-glNamedBufferDataFunPtr :: FunPtr (GLuint -> GLsizeiptr -> Ptr () -> GLenum -> IO ())
-glNamedBufferDataFunPtr = unsafePerformIO (getProcAddress "glNamedBufferData")
-
-{-# NOINLINE glNamedBufferDataFunPtr #-}
-
--- | Usage: @'glNamedBufferStorage' buffer size data flags@
---
--- The parameter @size@ is a @BufferSize@.
---
--- The length of @data@ should be @size@.
-
-
-glNamedBufferStorage :: MonadIO m => GLuint -> GLsizeiptr -> Ptr () -> GLbitfield -> m ()
-glNamedBufferStorage = ffiuintsizeiptrPtrVbitfieldIOV glNamedBufferStorageFunPtr
-
-glNamedBufferStorageFunPtr :: FunPtr (GLuint -> GLsizeiptr -> Ptr () -> GLbitfield -> IO ())
-glNamedBufferStorageFunPtr = unsafePerformIO (getProcAddress "glNamedBufferStorage")
-
-{-# NOINLINE glNamedBufferStorageFunPtr #-}
-
--- | Usage: @'glNamedBufferSubData' buffer offset size data@
---
--- The parameter @size@ is a @BufferSize@.
---
--- The length of @data@ should be @COMPSIZE(size)@.
-
-
-glNamedBufferSubData :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> Ptr () -> m ()
-glNamedBufferSubData = ffiuintintptrsizeiptrPtrVIOV glNamedBufferSubDataFunPtr
-
-glNamedBufferSubDataFunPtr :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> Ptr () -> IO ())
-glNamedBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glNamedBufferSubData")
-
-{-# NOINLINE glNamedBufferSubDataFunPtr #-}
-
--- | Usage: @'glNamedFramebufferDrawBuffer' framebuffer buf@
-
-
-glNamedFramebufferDrawBuffer :: MonadIO m => GLuint -> GLenum -> m ()
-glNamedFramebufferDrawBuffer = ffiuintenumIOV glNamedFramebufferDrawBufferFunPtr
-
-glNamedFramebufferDrawBufferFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
-glNamedFramebufferDrawBufferFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferDrawBuffer")
-
-{-# NOINLINE glNamedFramebufferDrawBufferFunPtr #-}
-
--- | Usage: @'glNamedFramebufferDrawBuffers' framebuffer n bufs@
-
-
-glNamedFramebufferDrawBuffers :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> m ()
-glNamedFramebufferDrawBuffers = ffiuintsizeiPtrenumIOV glNamedFramebufferDrawBuffersFunPtr
-
-glNamedFramebufferDrawBuffersFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> IO ())
-glNamedFramebufferDrawBuffersFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferDrawBuffers")
-
-{-# NOINLINE glNamedFramebufferDrawBuffersFunPtr #-}
-
--- | Usage: @'glNamedFramebufferParameteri' framebuffer pname param@
-
-
-glNamedFramebufferParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
-glNamedFramebufferParameteri = ffiuintenumintIOV glNamedFramebufferParameteriFunPtr
-
-glNamedFramebufferParameteriFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> IO ())
-glNamedFramebufferParameteriFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferParameteri")
-
-{-# NOINLINE glNamedFramebufferParameteriFunPtr #-}
-
--- | Usage: @'glNamedFramebufferReadBuffer' framebuffer src@
-
-
-glNamedFramebufferReadBuffer :: MonadIO m => GLuint -> GLenum -> m ()
-glNamedFramebufferReadBuffer = ffiuintenumIOV glNamedFramebufferReadBufferFunPtr
-
-glNamedFramebufferReadBufferFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
-glNamedFramebufferReadBufferFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferReadBuffer")
-
-{-# NOINLINE glNamedFramebufferReadBufferFunPtr #-}
-
--- | Usage: @'glNamedFramebufferRenderbuffer' framebuffer attachment renderbuffertarget renderbuffer@
-
-
-glNamedFramebufferRenderbuffer :: MonadIO m => GLuint -> GLenum -> GLenum -> GLuint -> m ()
-glNamedFramebufferRenderbuffer = ffiuintenumenumuintIOV glNamedFramebufferRenderbufferFunPtr
-
-glNamedFramebufferRenderbufferFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> IO ())
-glNamedFramebufferRenderbufferFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferRenderbuffer")
-
-{-# NOINLINE glNamedFramebufferRenderbufferFunPtr #-}
-
--- | Usage: @'glNamedFramebufferTexture' framebuffer attachment texture level@
-
-
-glNamedFramebufferTexture :: MonadIO m => GLuint -> GLenum -> GLuint -> GLint -> m ()
-glNamedFramebufferTexture = ffiuintenumuintintIOV glNamedFramebufferTextureFunPtr
-
-glNamedFramebufferTextureFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLint -> IO ())
-glNamedFramebufferTextureFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferTexture")
-
-{-# NOINLINE glNamedFramebufferTextureFunPtr #-}
-
--- | Usage: @'glNamedFramebufferTextureLayer' framebuffer attachment texture level layer@
-
-
-glNamedFramebufferTextureLayer :: MonadIO m => GLuint -> GLenum -> GLuint -> GLint -> GLint -> m ()
-glNamedFramebufferTextureLayer = ffiuintenumuintintintIOV glNamedFramebufferTextureLayerFunPtr
-
-glNamedFramebufferTextureLayerFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLint -> GLint -> IO ())
-glNamedFramebufferTextureLayerFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferTextureLayer")
-
-{-# NOINLINE glNamedFramebufferTextureLayerFunPtr #-}
-
--- | Usage: @'glNamedRenderbufferStorage' renderbuffer internalformat width height@
-
-
-glNamedRenderbufferStorage :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLsizei -> m ()
-glNamedRenderbufferStorage = ffiuintenumsizeisizeiIOV glNamedRenderbufferStorageFunPtr
-
-glNamedRenderbufferStorageFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLsizei -> IO ())
-glNamedRenderbufferStorageFunPtr = unsafePerformIO (getProcAddress "glNamedRenderbufferStorage")
-
-{-# NOINLINE glNamedRenderbufferStorageFunPtr #-}
-
--- | Usage: @'glNamedRenderbufferStorageMultisample' renderbuffer samples internalformat width height@
-
-
-glNamedRenderbufferStorageMultisample :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
-glNamedRenderbufferStorageMultisample = ffiuintsizeienumsizeisizeiIOV glNamedRenderbufferStorageMultisampleFunPtr
-
-glNamedRenderbufferStorageMultisampleFunPtr :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
-glNamedRenderbufferStorageMultisampleFunPtr = unsafePerformIO (getProcAddress "glNamedRenderbufferStorageMultisample")
-
-{-# NOINLINE glNamedRenderbufferStorageMultisampleFunPtr #-}
-
--- | Usage: @'glReadnPixels' x y width height format type bufSize data@
-
-
-glReadnPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
-glReadnPixels = ffiintintsizeisizeienumenumsizeiPtrVIOV glReadnPixelsFunPtr
-
-glReadnPixelsFunPtr :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
-glReadnPixelsFunPtr = unsafePerformIO (getProcAddress "glReadnPixels")
-
-{-# NOINLINE glReadnPixelsFunPtr #-}
-
--- | Usage: @'glTextureBarrier'@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTextureBarrier.xhtml>
-
-
-glTextureBarrier :: MonadIO m => m ()
-glTextureBarrier = ffiIOV glTextureBarrierFunPtr
-
-glTextureBarrierFunPtr :: FunPtr (IO ())
-glTextureBarrierFunPtr = unsafePerformIO (getProcAddress "glTextureBarrier")
-
-{-# NOINLINE glTextureBarrierFunPtr #-}
-
--- | Usage: @'glTextureBuffer' texture internalformat buffer@
-
-
-glTextureBuffer :: MonadIO m => GLuint -> GLenum -> GLuint -> m ()
-glTextureBuffer = ffiuintenumuintIOV glTextureBufferFunPtr
-
-glTextureBufferFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> IO ())
-glTextureBufferFunPtr = unsafePerformIO (getProcAddress "glTextureBuffer")
-
-{-# NOINLINE glTextureBufferFunPtr #-}
-
--- | Usage: @'glTextureBufferRange' texture internalformat buffer offset size@
---
--- The parameter @size@ is a @BufferSize@.
-
-
-glTextureBufferRange :: MonadIO m => GLuint -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> m ()
-glTextureBufferRange = ffiuintenumuintintptrsizeiptrIOV glTextureBufferRangeFunPtr
-
-glTextureBufferRangeFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> IO ())
-glTextureBufferRangeFunPtr = unsafePerformIO (getProcAddress "glTextureBufferRange")
-
-{-# NOINLINE glTextureBufferRangeFunPtr #-}
-
--- | Usage: @'glTextureParameterIiv' texture pname params@
-
-
-glTextureParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glTextureParameterIiv = ffiuintenumPtrintIOV glTextureParameterIivFunPtr
-
-glTextureParameterIivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glTextureParameterIivFunPtr = unsafePerformIO (getProcAddress "glTextureParameterIiv")
-
-{-# NOINLINE glTextureParameterIivFunPtr #-}
-
--- | Usage: @'glTextureParameterIuiv' texture pname params@
-
-
-glTextureParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
-glTextureParameterIuiv = ffiuintenumPtruintIOV glTextureParameterIuivFunPtr
-
-glTextureParameterIuivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
-glTextureParameterIuivFunPtr = unsafePerformIO (getProcAddress "glTextureParameterIuiv")
-
-{-# NOINLINE glTextureParameterIuivFunPtr #-}
-
--- | Usage: @'glTextureParameterf' texture pname param@
-
-
-glTextureParameterf :: MonadIO m => GLuint -> GLenum -> GLfloat -> m ()
-glTextureParameterf = ffiuintenumfloatIOV glTextureParameterfFunPtr
-
-glTextureParameterfFunPtr :: FunPtr (GLuint -> GLenum -> GLfloat -> IO ())
-glTextureParameterfFunPtr = unsafePerformIO (getProcAddress "glTextureParameterf")
-
-{-# NOINLINE glTextureParameterfFunPtr #-}
-
--- | Usage: @'glTextureParameterfv' texture pname param@
-
-
-glTextureParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
-glTextureParameterfv = ffiuintenumPtrfloatIOV glTextureParameterfvFunPtr
-
-glTextureParameterfvFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
-glTextureParameterfvFunPtr = unsafePerformIO (getProcAddress "glTextureParameterfv")
-
-{-# NOINLINE glTextureParameterfvFunPtr #-}
-
--- | Usage: @'glTextureParameteri' texture pname param@
-
-
-glTextureParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
-glTextureParameteri = ffiuintenumintIOV glTextureParameteriFunPtr
-
-glTextureParameteriFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> IO ())
-glTextureParameteriFunPtr = unsafePerformIO (getProcAddress "glTextureParameteri")
-
-{-# NOINLINE glTextureParameteriFunPtr #-}
-
--- | Usage: @'glTextureParameteriv' texture pname param@
-
-
-glTextureParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glTextureParameteriv = ffiuintenumPtrintIOV glTextureParameterivFunPtr
-
-glTextureParameterivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glTextureParameterivFunPtr = unsafePerformIO (getProcAddress "glTextureParameteriv")
-
-{-# NOINLINE glTextureParameterivFunPtr #-}
-
--- | Usage: @'glTextureStorage1D' texture levels internalformat width@
-
-
-glTextureStorage1D :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> m ()
-glTextureStorage1D = ffiuintsizeienumsizeiIOV glTextureStorage1DFunPtr
-
-glTextureStorage1DFunPtr :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> IO ())
-glTextureStorage1DFunPtr = unsafePerformIO (getProcAddress "glTextureStorage1D")
-
-{-# NOINLINE glTextureStorage1DFunPtr #-}
-
--- | Usage: @'glTextureStorage2D' texture levels internalformat width height@
-
-
-glTextureStorage2D :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
-glTextureStorage2D = ffiuintsizeienumsizeisizeiIOV glTextureStorage2DFunPtr
-
-glTextureStorage2DFunPtr :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
-glTextureStorage2DFunPtr = unsafePerformIO (getProcAddress "glTextureStorage2D")
-
-{-# NOINLINE glTextureStorage2DFunPtr #-}
-
--- | Usage: @'glTextureStorage2DMultisample' texture samples internalformat width height fixedsamplelocations@
-
-
-glTextureStorage2DMultisample :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()
-glTextureStorage2DMultisample = ffiuintsizeienumsizeisizeibooleanIOV glTextureStorage2DMultisampleFunPtr
-
-glTextureStorage2DMultisampleFunPtr :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> IO ())
-glTextureStorage2DMultisampleFunPtr = unsafePerformIO (getProcAddress "glTextureStorage2DMultisample")
-
-{-# NOINLINE glTextureStorage2DMultisampleFunPtr #-}
-
--- | Usage: @'glTextureStorage3D' texture levels internalformat width height depth@
-
-
-glTextureStorage3D :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()
-glTextureStorage3D = ffiuintsizeienumsizeisizeisizeiIOV glTextureStorage3DFunPtr
-
-glTextureStorage3DFunPtr :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ())
-glTextureStorage3DFunPtr = unsafePerformIO (getProcAddress "glTextureStorage3D")
-
-{-# NOINLINE glTextureStorage3DFunPtr #-}
-
--- | Usage: @'glTextureStorage3DMultisample' texture samples internalformat width height depth fixedsamplelocations@
-
-
-glTextureStorage3DMultisample :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
-glTextureStorage3DMultisample = ffiuintsizeienumsizeisizeisizeibooleanIOV glTextureStorage3DMultisampleFunPtr
-
-glTextureStorage3DMultisampleFunPtr :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
-glTextureStorage3DMultisampleFunPtr = unsafePerformIO (getProcAddress "glTextureStorage3DMultisample")
-
-{-# NOINLINE glTextureStorage3DMultisampleFunPtr #-}
-
--- | Usage: @'glTextureSubImage1D' texture level xoffset width format type pixels@
-
-
-glTextureSubImage1D :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-glTextureSubImage1D = ffiuintintintsizeienumenumPtrVIOV glTextureSubImage1DFunPtr
-
-glTextureSubImage1DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
-glTextureSubImage1DFunPtr = unsafePerformIO (getProcAddress "glTextureSubImage1D")
-
-{-# NOINLINE glTextureSubImage1DFunPtr #-}
-
--- | Usage: @'glTextureSubImage2D' texture level xoffset yoffset width height format type pixels@
-
-
-glTextureSubImage2D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-glTextureSubImage2D = ffiuintintintintsizeisizeienumenumPtrVIOV glTextureSubImage2DFunPtr
-
-glTextureSubImage2DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
-glTextureSubImage2DFunPtr = unsafePerformIO (getProcAddress "glTextureSubImage2D")
-
-{-# NOINLINE glTextureSubImage2DFunPtr #-}
-
--- | Usage: @'glTextureSubImage3D' texture level xoffset yoffset zoffset width height depth format type pixels@
-
-
-glTextureSubImage3D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
-glTextureSubImage3D = ffiuintintintintintsizeisizeisizeienumenumPtrVIOV glTextureSubImage3DFunPtr
-
-glTextureSubImage3DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
-glTextureSubImage3DFunPtr = unsafePerformIO (getProcAddress "glTextureSubImage3D")
-
-{-# NOINLINE glTextureSubImage3DFunPtr #-}
-
--- | Usage: @'glTransformFeedbackBufferBase' xfb index buffer@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTransformFeedbackBufferBase.xhtml>
-
-
-glTransformFeedbackBufferBase :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
-glTransformFeedbackBufferBase = ffiuintuintuintIOV glTransformFeedbackBufferBaseFunPtr
-
-glTransformFeedbackBufferBaseFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
-glTransformFeedbackBufferBaseFunPtr = unsafePerformIO (getProcAddress "glTransformFeedbackBufferBase")
-
-{-# NOINLINE glTransformFeedbackBufferBaseFunPtr #-}
-
--- | Usage: @'glTransformFeedbackBufferRange' xfb index buffer offset size@
---
--- The parameter @size@ is a @BufferSize@.
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTransformFeedbackBufferRange.xhtml>
-
-
-glTransformFeedbackBufferRange :: MonadIO m => GLuint -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()
-glTransformFeedbackBufferRange = ffiuintuintuintintptrsizeiptrIOV glTransformFeedbackBufferRangeFunPtr
-
-glTransformFeedbackBufferRangeFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> IO ())
-glTransformFeedbackBufferRangeFunPtr = unsafePerformIO (getProcAddress "glTransformFeedbackBufferRange")
-
-{-# NOINLINE glTransformFeedbackBufferRangeFunPtr #-}
-
--- | Usage: @'glUnmapNamedBuffer' buffer@
-
-
-glUnmapNamedBuffer :: MonadIO m => GLuint -> m GLboolean
-glUnmapNamedBuffer = ffiuintIOboolean glUnmapNamedBufferFunPtr
-
-glUnmapNamedBufferFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glUnmapNamedBufferFunPtr = unsafePerformIO (getProcAddress "glUnmapNamedBuffer")
-
-{-# NOINLINE glUnmapNamedBufferFunPtr #-}
-
--- | Usage: @'glVertexArrayAttribBinding' vaobj attribindex bindingindex@
-
-
-glVertexArrayAttribBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
-glVertexArrayAttribBinding = ffiuintuintuintIOV glVertexArrayAttribBindingFunPtr
-
-glVertexArrayAttribBindingFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
-glVertexArrayAttribBindingFunPtr = unsafePerformIO (getProcAddress "glVertexArrayAttribBinding")
-
-{-# NOINLINE glVertexArrayAttribBindingFunPtr #-}
-
--- | Usage: @'glVertexArrayAttribFormat' vaobj attribindex size type normalized relativeoffset@
-
-
-glVertexArrayAttribFormat :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> m ()
-glVertexArrayAttribFormat = ffiuintuintintenumbooleanuintIOV glVertexArrayAttribFormatFunPtr
-
-glVertexArrayAttribFormatFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> IO ())
-glVertexArrayAttribFormatFunPtr = unsafePerformIO (getProcAddress "glVertexArrayAttribFormat")
-
-{-# NOINLINE glVertexArrayAttribFormatFunPtr #-}
-
--- | Usage: @'glVertexArrayAttribIFormat' vaobj attribindex size type relativeoffset@
-
-
-glVertexArrayAttribIFormat :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLuint -> m ()
-glVertexArrayAttribIFormat = ffiuintuintintenumuintIOV glVertexArrayAttribIFormatFunPtr
-
-glVertexArrayAttribIFormatFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLuint -> IO ())
-glVertexArrayAttribIFormatFunPtr = unsafePerformIO (getProcAddress "glVertexArrayAttribIFormat")
-
-{-# NOINLINE glVertexArrayAttribIFormatFunPtr #-}
-
--- | Usage: @'glVertexArrayAttribLFormat' vaobj attribindex size type relativeoffset@
-
-
-glVertexArrayAttribLFormat :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLuint -> m ()
-glVertexArrayAttribLFormat = ffiuintuintintenumuintIOV glVertexArrayAttribLFormatFunPtr
-
-glVertexArrayAttribLFormatFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLuint -> IO ())
-glVertexArrayAttribLFormatFunPtr = unsafePerformIO (getProcAddress "glVertexArrayAttribLFormat")
-
-{-# NOINLINE glVertexArrayAttribLFormatFunPtr #-}
-
--- | Usage: @'glVertexArrayBindingDivisor' vaobj bindingindex divisor@
-
-
-glVertexArrayBindingDivisor :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
-glVertexArrayBindingDivisor = ffiuintuintuintIOV glVertexArrayBindingDivisorFunPtr
-
-glVertexArrayBindingDivisorFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
-glVertexArrayBindingDivisorFunPtr = unsafePerformIO (getProcAddress "glVertexArrayBindingDivisor")
-
-{-# NOINLINE glVertexArrayBindingDivisorFunPtr #-}
-
--- | Usage: @'glVertexArrayElementBuffer' vaobj buffer@
---
--- Manual page: <https://www.opengl.org/sdk/docs/man/html/glVertexArrayElementBuffer.xhtml>
-
-
-glVertexArrayElementBuffer :: MonadIO m => GLuint -> GLuint -> m ()
-glVertexArrayElementBuffer = ffiuintuintIOV glVertexArrayElementBufferFunPtr
-
-glVertexArrayElementBufferFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
-glVertexArrayElementBufferFunPtr = unsafePerformIO (getProcAddress "glVertexArrayElementBuffer")
-
-{-# NOINLINE glVertexArrayElementBufferFunPtr #-}
-
--- | Usage: @'glVertexArrayVertexBuffer' vaobj bindingindex buffer offset stride@
-
-
-glVertexArrayVertexBuffer :: MonadIO m => GLuint -> GLuint -> GLuint -> GLintptr -> GLsizei -> m ()
-glVertexArrayVertexBuffer = ffiuintuintuintintptrsizeiIOV glVertexArrayVertexBufferFunPtr
-
-glVertexArrayVertexBufferFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLintptr -> GLsizei -> IO ())
-glVertexArrayVertexBufferFunPtr = unsafePerformIO (getProcAddress "glVertexArrayVertexBuffer")
-
-{-# NOINLINE glVertexArrayVertexBufferFunPtr #-}
-
--- | Usage: @'glVertexArrayVertexBuffers' vaobj first count buffers offsets strides@
-
-
-glVertexArrayVertexBuffers :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> m ()
-glVertexArrayVertexBuffers = ffiuintuintsizeiPtruintPtrintptrPtrsizeiIOV glVertexArrayVertexBuffersFunPtr
-
-glVertexArrayVertexBuffersFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> IO ())
-glVertexArrayVertexBuffersFunPtr = unsafePerformIO (getProcAddress "glVertexArrayVertexBuffers")
-
-{-# NOINLINE glVertexArrayVertexBuffersFunPtr #-}
-
-pattern GL_CLIP_DEPTH_MODE = 0x935D
-
-pattern GL_CLIP_ORIGIN = 0x935C
-
-pattern GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT = 0x00000004
-
-pattern GL_CONTEXT_LOST = 0x0507
-
-pattern GL_CONTEXT_RELEASE_BEHAVIOR = 0x82FB
-
-pattern GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH = 0x82FC
-
-pattern GL_GUILTY_CONTEXT_RESET = 0x8253
-
-pattern GL_INNOCENT_CONTEXT_RESET = 0x8254
-
-pattern GL_LOSE_CONTEXT_ON_RESET = 0x8252
-
-pattern GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES = 0x82FA
-
-pattern GL_MAX_CULL_DISTANCES = 0x82F9
-
-pattern GL_NEGATIVE_ONE_TO_ONE = 0x935E
-
-pattern GL_NO_RESET_NOTIFICATION = 0x8261
-
-pattern GL_QUERY_BY_REGION_NO_WAIT_INVERTED = 0x8E1A
-
-pattern GL_QUERY_BY_REGION_WAIT_INVERTED = 0x8E19
-
-pattern GL_QUERY_NO_WAIT_INVERTED = 0x8E18
-
-pattern GL_QUERY_TARGET = 0x82EA
-
-pattern GL_QUERY_WAIT_INVERTED = 0x8E17
-
-pattern GL_RESET_NOTIFICATION_STRATEGY = 0x8256
-
-pattern GL_TEXTURE_TARGET = 0x1006
-
-pattern GL_UNKNOWN_CONTEXT_RESET = 0x8255
-
-pattern GL_ZERO_TO_ONE = 0x935F
-
-pattern GL_BLEND_EQUATION = 0x8009
-
-pattern GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS = 0x8CD9
-
-pattern GL_SUBSAMPLE_DISTANCE_AMD = 0x883F
-
-pattern GL_FLOAT16_NV = 0x8FF8
-
-pattern GL_FLOAT16_VEC2_NV = 0x8FF9
-
-pattern GL_FLOAT16_VEC3_NV = 0x8FFA
-
-pattern GL_FLOAT16_VEC4_NV = 0x8FFB
-
--- | Usage: @'glGetUniformi64vNV' program location params@
---
--- The length of @params@ should be @COMPSIZE(program,location)@.
-
-
-glGetUniformi64vNV :: MonadIO m => GLuint -> GLint -> Ptr GLint64EXT -> m ()
-glGetUniformi64vNV = ffiuintintPtrint64EXTIOV glGetUniformi64vNVFunPtr
-
-glGetUniformi64vNVFunPtr :: FunPtr (GLuint -> GLint -> Ptr GLint64EXT -> IO ())
-glGetUniformi64vNVFunPtr = unsafePerformIO (getProcAddress "glGetUniformi64vNV")
-
-{-# NOINLINE glGetUniformi64vNVFunPtr #-}
-
--- | Usage: @'glGetUniformui64vNV' program location params@
---
--- The length of @params@ should be @COMPSIZE(program,location)@.
-
-
-glGetUniformui64vNV :: MonadIO m => GLuint -> GLint -> Ptr GLuint64EXT -> m ()
-glGetUniformui64vNV = ffiuintintPtruint64EXTIOV glGetUniformui64vNVFunPtr
-
-glGetUniformui64vNVFunPtr :: FunPtr (GLuint -> GLint -> Ptr GLuint64EXT -> IO ())
-glGetUniformui64vNVFunPtr = unsafePerformIO (getProcAddress "glGetUniformui64vNV")
-
-{-# NOINLINE glGetUniformui64vNVFunPtr #-}
-
--- | Usage: @'glProgramUniform1i64NV' program location x@
-
-
-glProgramUniform1i64NV :: MonadIO m => GLuint -> GLint -> GLint64EXT -> m ()
-glProgramUniform1i64NV = ffiuintintint64EXTIOV glProgramUniform1i64NVFunPtr
-
-glProgramUniform1i64NVFunPtr :: FunPtr (GLuint -> GLint -> GLint64EXT -> IO ())
-glProgramUniform1i64NVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1i64NV")
-
-{-# NOINLINE glProgramUniform1i64NVFunPtr #-}
-
--- | Usage: @'glProgramUniform1i64vNV' program location count value@
---
--- The length of @value@ should be @count@.
-
-
-glProgramUniform1i64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> m ()
-glProgramUniform1i64vNV = ffiuintintsizeiPtrint64EXTIOV glProgramUniform1i64vNVFunPtr
-
-glProgramUniform1i64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
-glProgramUniform1i64vNVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1i64vNV")
-
-{-# NOINLINE glProgramUniform1i64vNVFunPtr #-}
-
--- | Usage: @'glProgramUniform1ui64NV' program location x@
-
-
-glProgramUniform1ui64NV :: MonadIO m => GLuint -> GLint -> GLuint64EXT -> m ()
-glProgramUniform1ui64NV = ffiuintintuint64EXTIOV glProgramUniform1ui64NVFunPtr
-
-glProgramUniform1ui64NVFunPtr :: FunPtr (GLuint -> GLint -> GLuint64EXT -> IO ())
-glProgramUniform1ui64NVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1ui64NV")
-
-{-# NOINLINE glProgramUniform1ui64NVFunPtr #-}
-
--- | Usage: @'glProgramUniform1ui64vNV' program location count value@
---
--- The length of @value@ should be @count@.
-
-
-glProgramUniform1ui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
-glProgramUniform1ui64vNV = ffiuintintsizeiPtruint64EXTIOV glProgramUniform1ui64vNVFunPtr
-
-glProgramUniform1ui64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
-glProgramUniform1ui64vNVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1ui64vNV")
-
-{-# NOINLINE glProgramUniform1ui64vNVFunPtr #-}
-
--- | Usage: @'glProgramUniform2i64NV' program location x y@
-
-
-glProgramUniform2i64NV :: MonadIO m => GLuint -> GLint -> GLint64EXT -> GLint64EXT -> m ()
-glProgramUniform2i64NV = ffiuintintint64EXTint64EXTIOV glProgramUniform2i64NVFunPtr
-
-glProgramUniform2i64NVFunPtr :: FunPtr (GLuint -> GLint -> GLint64EXT -> GLint64EXT -> IO ())
-glProgramUniform2i64NVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2i64NV")
-
-{-# NOINLINE glProgramUniform2i64NVFunPtr #-}
-
--- | Usage: @'glProgramUniform2i64vNV' program location count value@
---
--- The length of @value@ should be @count*2@.
-
-
-glProgramUniform2i64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> m ()
-glProgramUniform2i64vNV = ffiuintintsizeiPtrint64EXTIOV glProgramUniform2i64vNVFunPtr
-
-glProgramUniform2i64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
-glProgramUniform2i64vNVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2i64vNV")
-
-{-# NOINLINE glProgramUniform2i64vNVFunPtr #-}
-
--- | Usage: @'glProgramUniform2ui64NV' program location x y@
-
-
-glProgramUniform2ui64NV :: MonadIO m => GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> m ()
-glProgramUniform2ui64NV = ffiuintintuint64EXTuint64EXTIOV glProgramUniform2ui64NVFunPtr
-
-glProgramUniform2ui64NVFunPtr :: FunPtr (GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> IO ())
-glProgramUniform2ui64NVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2ui64NV")
-
-{-# NOINLINE glProgramUniform2ui64NVFunPtr #-}
-
--- | Usage: @'glProgramUniform2ui64vNV' program location count value@
---
--- The length of @value@ should be @count*2@.
-
-
-glProgramUniform2ui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
-glProgramUniform2ui64vNV = ffiuintintsizeiPtruint64EXTIOV glProgramUniform2ui64vNVFunPtr
-
-glProgramUniform2ui64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
-glProgramUniform2ui64vNVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2ui64vNV")
-
-{-# NOINLINE glProgramUniform2ui64vNVFunPtr #-}
-
--- | Usage: @'glProgramUniform3i64NV' program location x y z@
-
-
-glProgramUniform3i64NV :: MonadIO m => GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
-glProgramUniform3i64NV = ffiuintintint64EXTint64EXTint64EXTIOV glProgramUniform3i64NVFunPtr
-
-glProgramUniform3i64NVFunPtr :: FunPtr (GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ())
-glProgramUniform3i64NVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3i64NV")
-
-{-# NOINLINE glProgramUniform3i64NVFunPtr #-}
-
--- | Usage: @'glProgramUniform3i64vNV' program location count value@
---
--- The length of @value@ should be @count*3@.
-
-
-glProgramUniform3i64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> m ()
-glProgramUniform3i64vNV = ffiuintintsizeiPtrint64EXTIOV glProgramUniform3i64vNVFunPtr
-
-glProgramUniform3i64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
-glProgramUniform3i64vNVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3i64vNV")
-
-{-# NOINLINE glProgramUniform3i64vNVFunPtr #-}
-
--- | Usage: @'glProgramUniform3ui64NV' program location x y z@
-
-
-glProgramUniform3ui64NV :: MonadIO m => GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
-glProgramUniform3ui64NV = ffiuintintuint64EXTuint64EXTuint64EXTIOV glProgramUniform3ui64NVFunPtr
-
-glProgramUniform3ui64NVFunPtr :: FunPtr (GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ())
-glProgramUniform3ui64NVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3ui64NV")
-
-{-# NOINLINE glProgramUniform3ui64NVFunPtr #-}
-
--- | Usage: @'glProgramUniform3ui64vNV' program location count value@
---
--- The length of @value@ should be @count*3@.
-
-
-glProgramUniform3ui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
-glProgramUniform3ui64vNV = ffiuintintsizeiPtruint64EXTIOV glProgramUniform3ui64vNVFunPtr
-
-glProgramUniform3ui64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
-glProgramUniform3ui64vNVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3ui64vNV")
-
-{-# NOINLINE glProgramUniform3ui64vNVFunPtr #-}
-
--- | Usage: @'glProgramUniform4i64NV' program location x y z w@
-
-
-glProgramUniform4i64NV :: MonadIO m => GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
-glProgramUniform4i64NV = ffiuintintint64EXTint64EXTint64EXTint64EXTIOV glProgramUniform4i64NVFunPtr
-
-glProgramUniform4i64NVFunPtr :: FunPtr (GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ())
-glProgramUniform4i64NVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4i64NV")
-
-{-# NOINLINE glProgramUniform4i64NVFunPtr #-}
-
--- | Usage: @'glProgramUniform4i64vNV' program location count value@
---
--- The length of @value@ should be @count*4@.
-
-
-glProgramUniform4i64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> m ()
-glProgramUniform4i64vNV = ffiuintintsizeiPtrint64EXTIOV glProgramUniform4i64vNVFunPtr
-
-glProgramUniform4i64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
-glProgramUniform4i64vNVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4i64vNV")
-
-{-# NOINLINE glProgramUniform4i64vNVFunPtr #-}
-
--- | Usage: @'glProgramUniform4ui64NV' program location x y z w@
-
-
-glProgramUniform4ui64NV :: MonadIO m => GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
-glProgramUniform4ui64NV = ffiuintintuint64EXTuint64EXTuint64EXTuint64EXTIOV glProgramUniform4ui64NVFunPtr
-
-glProgramUniform4ui64NVFunPtr :: FunPtr (GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ())
-glProgramUniform4ui64NVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4ui64NV")
-
-{-# NOINLINE glProgramUniform4ui64NVFunPtr #-}
-
--- | Usage: @'glProgramUniform4ui64vNV' program location count value@
---
--- The length of @value@ should be @count*4@.
-
-
-glProgramUniform4ui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
-glProgramUniform4ui64vNV = ffiuintintsizeiPtruint64EXTIOV glProgramUniform4ui64vNVFunPtr
-
-glProgramUniform4ui64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
-glProgramUniform4ui64vNVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4ui64vNV")
-
-{-# NOINLINE glProgramUniform4ui64vNVFunPtr #-}
-
--- | Usage: @'glUniform1i64NV' location x@
-
-
-glUniform1i64NV :: MonadIO m => GLint -> GLint64EXT -> m ()
-glUniform1i64NV = ffiintint64EXTIOV glUniform1i64NVFunPtr
-
-glUniform1i64NVFunPtr :: FunPtr (GLint -> GLint64EXT -> IO ())
-glUniform1i64NVFunPtr = unsafePerformIO (getProcAddress "glUniform1i64NV")
-
-{-# NOINLINE glUniform1i64NVFunPtr #-}
-
--- | Usage: @'glUniform1i64vNV' location count value@
---
--- The length of @value@ should be @count*1@.
-
-
-glUniform1i64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLint64EXT -> m ()
-glUniform1i64vNV = ffiintsizeiPtrint64EXTIOV glUniform1i64vNVFunPtr
-
-glUniform1i64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
-glUniform1i64vNVFunPtr = unsafePerformIO (getProcAddress "glUniform1i64vNV")
-
-{-# NOINLINE glUniform1i64vNVFunPtr #-}
-
--- | Usage: @'glUniform1ui64NV' location x@
-
-
-glUniform1ui64NV :: MonadIO m => GLint -> GLuint64EXT -> m ()
-glUniform1ui64NV = ffiintuint64EXTIOV glUniform1ui64NVFunPtr
-
-glUniform1ui64NVFunPtr :: FunPtr (GLint -> GLuint64EXT -> IO ())
-glUniform1ui64NVFunPtr = unsafePerformIO (getProcAddress "glUniform1ui64NV")
-
-{-# NOINLINE glUniform1ui64NVFunPtr #-}
-
--- | Usage: @'glUniform1ui64vNV' location count value@
---
--- The length of @value@ should be @count*1@.
-
-
-glUniform1ui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
-glUniform1ui64vNV = ffiintsizeiPtruint64EXTIOV glUniform1ui64vNVFunPtr
-
-glUniform1ui64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
-glUniform1ui64vNVFunPtr = unsafePerformIO (getProcAddress "glUniform1ui64vNV")
-
-{-# NOINLINE glUniform1ui64vNVFunPtr #-}
-
--- | Usage: @'glUniform2i64NV' location x y@
-
-
-glUniform2i64NV :: MonadIO m => GLint -> GLint64EXT -> GLint64EXT -> m ()
-glUniform2i64NV = ffiintint64EXTint64EXTIOV glUniform2i64NVFunPtr
-
-glUniform2i64NVFunPtr :: FunPtr (GLint -> GLint64EXT -> GLint64EXT -> IO ())
-glUniform2i64NVFunPtr = unsafePerformIO (getProcAddress "glUniform2i64NV")
-
-{-# NOINLINE glUniform2i64NVFunPtr #-}
-
--- | Usage: @'glUniform2i64vNV' location count value@
---
--- The length of @value@ should be @count*2@.
-
-
-glUniform2i64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLint64EXT -> m ()
-glUniform2i64vNV = ffiintsizeiPtrint64EXTIOV glUniform2i64vNVFunPtr
-
-glUniform2i64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
-glUniform2i64vNVFunPtr = unsafePerformIO (getProcAddress "glUniform2i64vNV")
-
-{-# NOINLINE glUniform2i64vNVFunPtr #-}
-
--- | Usage: @'glUniform2ui64NV' location x y@
-
-
-glUniform2ui64NV :: MonadIO m => GLint -> GLuint64EXT -> GLuint64EXT -> m ()
-glUniform2ui64NV = ffiintuint64EXTuint64EXTIOV glUniform2ui64NVFunPtr
-
-glUniform2ui64NVFunPtr :: FunPtr (GLint -> GLuint64EXT -> GLuint64EXT -> IO ())
-glUniform2ui64NVFunPtr = unsafePerformIO (getProcAddress "glUniform2ui64NV")
-
-{-# NOINLINE glUniform2ui64NVFunPtr #-}
-
--- | Usage: @'glUniform2ui64vNV' location count value@
---
--- The length of @value@ should be @count*2@.
-
-
-glUniform2ui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
-glUniform2ui64vNV = ffiintsizeiPtruint64EXTIOV glUniform2ui64vNVFunPtr
-
-glUniform2ui64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
-glUniform2ui64vNVFunPtr = unsafePerformIO (getProcAddress "glUniform2ui64vNV")
-
-{-# NOINLINE glUniform2ui64vNVFunPtr #-}
-
--- | Usage: @'glUniform3i64NV' location x y z@
-
-
-glUniform3i64NV :: MonadIO m => GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
-glUniform3i64NV = ffiintint64EXTint64EXTint64EXTIOV glUniform3i64NVFunPtr
-
-glUniform3i64NVFunPtr :: FunPtr (GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ())
-glUniform3i64NVFunPtr = unsafePerformIO (getProcAddress "glUniform3i64NV")
-
-{-# NOINLINE glUniform3i64NVFunPtr #-}
-
--- | Usage: @'glUniform3i64vNV' location count value@
---
--- The length of @value@ should be @count*3@.
-
-
-glUniform3i64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLint64EXT -> m ()
-glUniform3i64vNV = ffiintsizeiPtrint64EXTIOV glUniform3i64vNVFunPtr
-
-glUniform3i64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
-glUniform3i64vNVFunPtr = unsafePerformIO (getProcAddress "glUniform3i64vNV")
-
-{-# NOINLINE glUniform3i64vNVFunPtr #-}
-
--- | Usage: @'glUniform3ui64NV' location x y z@
-
-
-glUniform3ui64NV :: MonadIO m => GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
-glUniform3ui64NV = ffiintuint64EXTuint64EXTuint64EXTIOV glUniform3ui64NVFunPtr
-
-glUniform3ui64NVFunPtr :: FunPtr (GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ())
-glUniform3ui64NVFunPtr = unsafePerformIO (getProcAddress "glUniform3ui64NV")
-
-{-# NOINLINE glUniform3ui64NVFunPtr #-}
-
--- | Usage: @'glUniform3ui64vNV' location count value@
---
--- The length of @value@ should be @count*3@.
-
-
-glUniform3ui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
-glUniform3ui64vNV = ffiintsizeiPtruint64EXTIOV glUniform3ui64vNVFunPtr
-
-glUniform3ui64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
-glUniform3ui64vNVFunPtr = unsafePerformIO (getProcAddress "glUniform3ui64vNV")
-
-{-# NOINLINE glUniform3ui64vNVFunPtr #-}
-
--- | Usage: @'glUniform4i64NV' location x y z w@
-
-
-glUniform4i64NV :: MonadIO m => GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
-glUniform4i64NV = ffiintint64EXTint64EXTint64EXTint64EXTIOV glUniform4i64NVFunPtr
-
-glUniform4i64NVFunPtr :: FunPtr (GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ())
-glUniform4i64NVFunPtr = unsafePerformIO (getProcAddress "glUniform4i64NV")
-
-{-# NOINLINE glUniform4i64NVFunPtr #-}
-
--- | Usage: @'glUniform4i64vNV' location count value@
---
--- The length of @value@ should be @count*4@.
-
-
-glUniform4i64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLint64EXT -> m ()
-glUniform4i64vNV = ffiintsizeiPtrint64EXTIOV glUniform4i64vNVFunPtr
-
-glUniform4i64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
-glUniform4i64vNVFunPtr = unsafePerformIO (getProcAddress "glUniform4i64vNV")
-
-{-# NOINLINE glUniform4i64vNVFunPtr #-}
-
--- | Usage: @'glUniform4ui64NV' location x y z w@
-
-
-glUniform4ui64NV :: MonadIO m => GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
-glUniform4ui64NV = ffiintuint64EXTuint64EXTuint64EXTuint64EXTIOV glUniform4ui64NVFunPtr
-
-glUniform4ui64NVFunPtr :: FunPtr (GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ())
-glUniform4ui64NVFunPtr = unsafePerformIO (getProcAddress "glUniform4ui64NV")
-
-{-# NOINLINE glUniform4ui64NVFunPtr #-}
-
--- | Usage: @'glUniform4ui64vNV' location count value@
---
--- The length of @value@ should be @count*4@.
-
-
-glUniform4ui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
-glUniform4ui64vNV = ffiintsizeiPtruint64EXTIOV glUniform4ui64vNVFunPtr
-
-glUniform4ui64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
-glUniform4ui64vNVFunPtr = unsafePerformIO (getProcAddress "glUniform4ui64vNV")
-
-{-# NOINLINE glUniform4ui64vNVFunPtr #-}
-
-pattern GL_INT16_NV = 0x8FE4
-
-pattern GL_INT16_VEC2_NV = 0x8FE5
-
-pattern GL_INT16_VEC3_NV = 0x8FE6
-
-pattern GL_INT16_VEC4_NV = 0x8FE7
-
-pattern GL_INT64_NV = 0x140E
-
-pattern GL_INT64_VEC2_NV = 0x8FE9
-
-pattern GL_INT64_VEC3_NV = 0x8FEA
-
-pattern GL_INT64_VEC4_NV = 0x8FEB
-
-pattern GL_INT8_NV = 0x8FE0
-
-pattern GL_INT8_VEC2_NV = 0x8FE1
-
-pattern GL_INT8_VEC3_NV = 0x8FE2
-
-pattern GL_INT8_VEC4_NV = 0x8FE3
-
-pattern GL_UNSIGNED_INT16_NV = 0x8FF0
-
-pattern GL_UNSIGNED_INT16_VEC2_NV = 0x8FF1
-
-pattern GL_UNSIGNED_INT16_VEC3_NV = 0x8FF2
-
-pattern GL_UNSIGNED_INT16_VEC4_NV = 0x8FF3
-
-pattern GL_UNSIGNED_INT64_NV = 0x140F
-
-pattern GL_UNSIGNED_INT64_VEC2_NV = 0x8FF5
-
-pattern GL_UNSIGNED_INT64_VEC3_NV = 0x8FF6
-
-pattern GL_UNSIGNED_INT64_VEC4_NV = 0x8FF7
-
-pattern GL_UNSIGNED_INT8_NV = 0x8FEC
-
-pattern GL_UNSIGNED_INT8_VEC2_NV = 0x8FED
-
-pattern GL_UNSIGNED_INT8_VEC3_NV = 0x8FEE
-
-pattern GL_UNSIGNED_INT8_VEC4_NV = 0x8FEF
-
-pattern GL_DEPTH24_STENCIL8_OES = 0x88F0
-
-pattern GL_DEPTH_COMPONENT32_OES = 0x81A7
-
-pattern GL_DEPTH_STENCIL_OES = 0x84F9
-
-pattern GL_UNSIGNED_INT_24_8_OES = 0x84FA
-
-pattern GL_UNSIGNED_SHORT_8_8_APPLE = 0x85BA
-
-pattern GL_UNSIGNED_SHORT_8_8_REV_APPLE = 0x85BB
-
-pattern GL_BGRA8_EXT = 0x93A1
-
-pattern GL_BGRA_EXT = 0x80E1
-
-pattern GL_STORAGE_CACHED_APPLE = 0x85BE
-
-pattern GL_STORAGE_SHARED_APPLE = 0x85BF
-
-pattern GL_UNSIGNED_INT64_ARB = 0x140F
-
--- | Usage: @'glBindProgramARB' target program@
---
--- The parameter @target@ is a @ProgramTargetARB@.
-
-
-glBindProgramARB :: MonadIO m => GLenum -> GLuint -> m ()
-glBindProgramARB = ffienumuintIOV glBindProgramARBFunPtr
-
-glBindProgramARBFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glBindProgramARBFunPtr = unsafePerformIO (getProcAddress "glBindProgramARB")
-
-{-# NOINLINE glBindProgramARBFunPtr #-}
-
--- | Usage: @'glDeleteProgramsARB' n programs@
---
--- The length of @programs@ should be @n@.
-
-
-glDeleteProgramsARB :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glDeleteProgramsARB = ffisizeiPtruintIOV glDeleteProgramsARBFunPtr
-
-glDeleteProgramsARBFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glDeleteProgramsARBFunPtr = unsafePerformIO (getProcAddress "glDeleteProgramsARB")
-
-{-# NOINLINE glDeleteProgramsARBFunPtr #-}
-
--- | Usage: @'glGenProgramsARB' n programs@
---
--- The length of @programs@ should be @n@.
-
-
-glGenProgramsARB :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glGenProgramsARB = ffisizeiPtruintIOV glGenProgramsARBFunPtr
-
-glGenProgramsARBFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glGenProgramsARBFunPtr = unsafePerformIO (getProcAddress "glGenProgramsARB")
-
-{-# NOINLINE glGenProgramsARBFunPtr #-}
-
--- | Usage: @'glGetProgramEnvParameterdvARB' target index params@
---
--- The parameter @target@ is a @ProgramTargetARB@.
---
--- The length of @params@ should be @4@.
-
-
-glGetProgramEnvParameterdvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()
-glGetProgramEnvParameterdvARB = ffienumuintPtrdoubleIOV glGetProgramEnvParameterdvARBFunPtr
-
-glGetProgramEnvParameterdvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())
-glGetProgramEnvParameterdvARBFunPtr = unsafePerformIO (getProcAddress "glGetProgramEnvParameterdvARB")
-
-{-# NOINLINE glGetProgramEnvParameterdvARBFunPtr #-}
-
--- | Usage: @'glGetProgramEnvParameterfvARB' target index params@
---
--- The parameter @target@ is a @ProgramTargetARB@.
---
--- The length of @params@ should be @4@.
-
-
-glGetProgramEnvParameterfvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
-glGetProgramEnvParameterfvARB = ffienumuintPtrfloatIOV glGetProgramEnvParameterfvARBFunPtr
-
-glGetProgramEnvParameterfvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
-glGetProgramEnvParameterfvARBFunPtr = unsafePerformIO (getProcAddress "glGetProgramEnvParameterfvARB")
-
-{-# NOINLINE glGetProgramEnvParameterfvARBFunPtr #-}
-
--- | Usage: @'glGetProgramLocalParameterdvARB' target index params@
---
--- The parameter @target@ is a @ProgramTargetARB@.
---
--- The length of @params@ should be @4@.
-
-
-glGetProgramLocalParameterdvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()
-glGetProgramLocalParameterdvARB = ffienumuintPtrdoubleIOV glGetProgramLocalParameterdvARBFunPtr
-
-glGetProgramLocalParameterdvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())
-glGetProgramLocalParameterdvARBFunPtr = unsafePerformIO (getProcAddress "glGetProgramLocalParameterdvARB")
-
-{-# NOINLINE glGetProgramLocalParameterdvARBFunPtr #-}
-
--- | Usage: @'glGetProgramLocalParameterfvARB' target index params@
---
--- The parameter @target@ is a @ProgramTargetARB@.
---
--- The length of @params@ should be @4@.
-
-
-glGetProgramLocalParameterfvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
-glGetProgramLocalParameterfvARB = ffienumuintPtrfloatIOV glGetProgramLocalParameterfvARBFunPtr
-
-glGetProgramLocalParameterfvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
-glGetProgramLocalParameterfvARBFunPtr = unsafePerformIO (getProcAddress "glGetProgramLocalParameterfvARB")
-
-{-# NOINLINE glGetProgramLocalParameterfvARBFunPtr #-}
-
--- | Usage: @'glGetProgramStringARB' target pname string@
---
--- The parameter @target@ is a @ProgramTargetARB@.
---
--- The parameter @pname@ is a @ProgramStringPropertyARB@.
---
--- The length of @string@ should be @COMPSIZE(target,pname)@.
-
-
-glGetProgramStringARB :: MonadIO m => GLenum -> GLenum -> Ptr () -> m ()
-glGetProgramStringARB = ffienumenumPtrVIOV glGetProgramStringARBFunPtr
-
-glGetProgramStringARBFunPtr :: FunPtr (GLenum -> GLenum -> Ptr () -> IO ())
-glGetProgramStringARBFunPtr = unsafePerformIO (getProcAddress "glGetProgramStringARB")
-
-{-# NOINLINE glGetProgramStringARBFunPtr #-}
-
--- | Usage: @'glGetProgramivARB' target pname params@
---
--- The parameter @target@ is a @ProgramTargetARB@.
---
--- The parameter @pname@ is a @ProgramPropertyARB@.
---
--- The length of @params@ should be @1@.
-
-
-glGetProgramivARB :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glGetProgramivARB = ffienumenumPtrintIOV glGetProgramivARBFunPtr
-
-glGetProgramivARBFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetProgramivARBFunPtr = unsafePerformIO (getProcAddress "glGetProgramivARB")
-
-{-# NOINLINE glGetProgramivARBFunPtr #-}
-
--- | Usage: @'glIsProgramARB' program@
-
-
-glIsProgramARB :: MonadIO m => GLuint -> m GLboolean
-glIsProgramARB = ffiuintIOboolean glIsProgramARBFunPtr
-
-glIsProgramARBFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsProgramARBFunPtr = unsafePerformIO (getProcAddress "glIsProgramARB")
-
-{-# NOINLINE glIsProgramARBFunPtr #-}
-
--- | Usage: @'glProgramEnvParameter4dARB' target index x y z w@
---
--- The parameter @target@ is a @ProgramTargetARB@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glProgramEnvParameter4dvARB'.
-
-
-glProgramEnvParameter4dARB :: MonadIO m => GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-glProgramEnvParameter4dARB = ffienumuintdoubledoubledoubledoubleIOV glProgramEnvParameter4dARBFunPtr
-
-glProgramEnvParameter4dARBFunPtr :: FunPtr (GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glProgramEnvParameter4dARBFunPtr = unsafePerformIO (getProcAddress "glProgramEnvParameter4dARB")
-
-{-# NOINLINE glProgramEnvParameter4dARBFunPtr #-}
-
--- | Usage: @'glProgramEnvParameter4dvARB' target index params@
---
--- The parameter @target@ is a @ProgramTargetARB@.
---
--- The length of @params@ should be @4@.
-
-
-glProgramEnvParameter4dvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()
-glProgramEnvParameter4dvARB = ffienumuintPtrdoubleIOV glProgramEnvParameter4dvARBFunPtr
-
-glProgramEnvParameter4dvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())
-glProgramEnvParameter4dvARBFunPtr = unsafePerformIO (getProcAddress "glProgramEnvParameter4dvARB")
-
-{-# NOINLINE glProgramEnvParameter4dvARBFunPtr #-}
-
--- | Usage: @'glProgramEnvParameter4fARB' target index x y z w@
---
--- The parameter @target@ is a @ProgramTargetARB@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glProgramEnvParameter4fvARB'.
-
-
-glProgramEnvParameter4fARB :: MonadIO m => GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glProgramEnvParameter4fARB = ffienumuintfloatfloatfloatfloatIOV glProgramEnvParameter4fARBFunPtr
-
-glProgramEnvParameter4fARBFunPtr :: FunPtr (GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glProgramEnvParameter4fARBFunPtr = unsafePerformIO (getProcAddress "glProgramEnvParameter4fARB")
-
-{-# NOINLINE glProgramEnvParameter4fARBFunPtr #-}
-
--- | Usage: @'glProgramEnvParameter4fvARB' target index params@
---
--- The parameter @target@ is a @ProgramTargetARB@.
---
--- The length of @params@ should be @4@.
-
-
-glProgramEnvParameter4fvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
-glProgramEnvParameter4fvARB = ffienumuintPtrfloatIOV glProgramEnvParameter4fvARBFunPtr
-
-glProgramEnvParameter4fvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
-glProgramEnvParameter4fvARBFunPtr = unsafePerformIO (getProcAddress "glProgramEnvParameter4fvARB")
-
-{-# NOINLINE glProgramEnvParameter4fvARBFunPtr #-}
-
--- | Usage: @'glProgramLocalParameter4dARB' target index x y z w@
---
--- The parameter @target@ is a @ProgramTargetARB@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glProgramLocalParameter4dvARB'.
-
-
-glProgramLocalParameter4dARB :: MonadIO m => GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-glProgramLocalParameter4dARB = ffienumuintdoubledoubledoubledoubleIOV glProgramLocalParameter4dARBFunPtr
-
-glProgramLocalParameter4dARBFunPtr :: FunPtr (GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glProgramLocalParameter4dARBFunPtr = unsafePerformIO (getProcAddress "glProgramLocalParameter4dARB")
-
-{-# NOINLINE glProgramLocalParameter4dARBFunPtr #-}
-
--- | Usage: @'glProgramLocalParameter4dvARB' target index params@
---
--- The parameter @target@ is a @ProgramTargetARB@.
---
--- The length of @params@ should be @4@.
-
-
-glProgramLocalParameter4dvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()
-glProgramLocalParameter4dvARB = ffienumuintPtrdoubleIOV glProgramLocalParameter4dvARBFunPtr
-
-glProgramLocalParameter4dvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())
-glProgramLocalParameter4dvARBFunPtr = unsafePerformIO (getProcAddress "glProgramLocalParameter4dvARB")
-
-{-# NOINLINE glProgramLocalParameter4dvARBFunPtr #-}
-
--- | Usage: @'glProgramLocalParameter4fARB' target index x y z w@
---
--- The parameter @target@ is a @ProgramTargetARB@.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glProgramLocalParameter4fvARB'.
-
-
-glProgramLocalParameter4fARB :: MonadIO m => GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glProgramLocalParameter4fARB = ffienumuintfloatfloatfloatfloatIOV glProgramLocalParameter4fARBFunPtr
-
-glProgramLocalParameter4fARBFunPtr :: FunPtr (GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glProgramLocalParameter4fARBFunPtr = unsafePerformIO (getProcAddress "glProgramLocalParameter4fARB")
-
-{-# NOINLINE glProgramLocalParameter4fARBFunPtr #-}
-
--- | Usage: @'glProgramLocalParameter4fvARB' target index params@
---
--- The parameter @target@ is a @ProgramTargetARB@.
---
--- The length of @params@ should be @4@.
-
-
-glProgramLocalParameter4fvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
-glProgramLocalParameter4fvARB = ffienumuintPtrfloatIOV glProgramLocalParameter4fvARBFunPtr
-
-glProgramLocalParameter4fvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
-glProgramLocalParameter4fvARBFunPtr = unsafePerformIO (getProcAddress "glProgramLocalParameter4fvARB")
-
-{-# NOINLINE glProgramLocalParameter4fvARBFunPtr #-}
-
--- | Usage: @'glProgramStringARB' target format len string@
---
--- The parameter @target@ is a @ProgramTargetARB@.
---
--- The parameter @format@ is a @ProgramFormatARB@.
---
--- The length of @string@ should be @len@.
-
-
-glProgramStringARB :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
-glProgramStringARB = ffienumenumsizeiPtrVIOV glProgramStringARBFunPtr
-
-glProgramStringARBFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
-glProgramStringARBFunPtr = unsafePerformIO (getProcAddress "glProgramStringARB")
-
-{-# NOINLINE glProgramStringARBFunPtr #-}
-
-pattern GL_CURRENT_MATRIX_ARB = 0x8641
-
-pattern GL_CURRENT_MATRIX_STACK_DEPTH_ARB = 0x8640
-
-pattern GL_MATRIX0_ARB = 0x88C0
-
-pattern GL_MATRIX10_ARB = 0x88CA
-
-pattern GL_MATRIX11_ARB = 0x88CB
-
-pattern GL_MATRIX12_ARB = 0x88CC
-
-pattern GL_MATRIX13_ARB = 0x88CD
-
-pattern GL_MATRIX14_ARB = 0x88CE
-
-pattern GL_MATRIX15_ARB = 0x88CF
-
-pattern GL_MATRIX16_ARB = 0x88D0
-
-pattern GL_MATRIX17_ARB = 0x88D1
-
-pattern GL_MATRIX18_ARB = 0x88D2
-
-pattern GL_MATRIX19_ARB = 0x88D3
-
-pattern GL_MATRIX1_ARB = 0x88C1
-
-pattern GL_MATRIX20_ARB = 0x88D4
-
-pattern GL_MATRIX21_ARB = 0x88D5
-
-pattern GL_MATRIX22_ARB = 0x88D6
-
-pattern GL_MATRIX23_ARB = 0x88D7
-
-pattern GL_MATRIX24_ARB = 0x88D8
-
-pattern GL_MATRIX25_ARB = 0x88D9
-
-pattern GL_MATRIX26_ARB = 0x88DA
-
-pattern GL_MATRIX27_ARB = 0x88DB
-
-pattern GL_MATRIX28_ARB = 0x88DC
-
-pattern GL_MATRIX29_ARB = 0x88DD
-
-pattern GL_MATRIX2_ARB = 0x88C2
-
-pattern GL_MATRIX30_ARB = 0x88DE
-
-pattern GL_MATRIX31_ARB = 0x88DF
-
-pattern GL_MATRIX3_ARB = 0x88C3
-
-pattern GL_MATRIX4_ARB = 0x88C4
-
-pattern GL_MATRIX5_ARB = 0x88C5
-
-pattern GL_MATRIX6_ARB = 0x88C6
-
-pattern GL_MATRIX7_ARB = 0x88C7
-
-pattern GL_MATRIX8_ARB = 0x88C8
-
-pattern GL_MATRIX9_ARB = 0x88C9
-
-pattern GL_MAX_PROGRAM_ATTRIBS_ARB = 0x88AD
-
-pattern GL_MAX_PROGRAM_ENV_PARAMETERS_ARB = 0x88B5
-
-pattern GL_MAX_PROGRAM_INSTRUCTIONS_ARB = 0x88A1
-
-pattern GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB = 0x88B4
-
-pattern GL_MAX_PROGRAM_MATRICES_ARB = 0x862F
-
-pattern GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB = 0x862E
-
-pattern GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB = 0x88AF
-
-pattern GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB = 0x88A3
-
-pattern GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB = 0x88AB
-
-pattern GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB = 0x88A7
-
-pattern GL_MAX_PROGRAM_PARAMETERS_ARB = 0x88A9
-
-pattern GL_MAX_PROGRAM_TEMPORARIES_ARB = 0x88A5
-
-pattern GL_MAX_TEXTURE_COORDS_ARB = 0x8871
-
-pattern GL_MAX_TEXTURE_IMAGE_UNITS_ARB = 0x8872
-
-pattern GL_PROGRAM_ATTRIBS_ARB = 0x88AC
-
-pattern GL_PROGRAM_BINDING_ARB = 0x8677
-
-pattern GL_PROGRAM_ERROR_POSITION_ARB = 0x864B
-
-pattern GL_PROGRAM_ERROR_STRING_ARB = 0x8874
-
-pattern GL_PROGRAM_FORMAT_ARB = 0x8876
-
-pattern GL_PROGRAM_FORMAT_ASCII_ARB = 0x8875
-
-pattern GL_PROGRAM_INSTRUCTIONS_ARB = 0x88A0
-
-pattern GL_PROGRAM_LENGTH_ARB = 0x8627
-
-pattern GL_PROGRAM_NATIVE_ATTRIBS_ARB = 0x88AE
-
-pattern GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB = 0x88A2
-
-pattern GL_PROGRAM_NATIVE_PARAMETERS_ARB = 0x88AA
-
-pattern GL_PROGRAM_NATIVE_TEMPORARIES_ARB = 0x88A6
-
-pattern GL_PROGRAM_PARAMETERS_ARB = 0x88A8
-
-pattern GL_PROGRAM_STRING_ARB = 0x8628
-
-pattern GL_PROGRAM_TEMPORARIES_ARB = 0x88A4
-
-pattern GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB = 0x88B6
-
-pattern GL_TRANSPOSE_CURRENT_MATRIX_ARB = 0x88B7
-
-pattern GL_SAMPLES_ARB = 0x80A9
-
-pattern GL_TEXTURE0_ARB = 0x84C0
-
-pattern GL_TEXTURE1_ARB = 0x84C1
-
-pattern GL_FLOAT_MAT2_ARB = 0x8B5A
-
-pattern GL_FLOAT_MAT3_ARB = 0x8B5B
-
-pattern GL_FLOAT_MAT4_ARB = 0x8B5C
-
-pattern GL_FLOAT_VEC2_ARB = 0x8B50
-
-pattern GL_FLOAT_VEC3_ARB = 0x8B51
-
-pattern GL_FLOAT_VEC4_ARB = 0x8B52
-
--- | Usage: @'glDisableVertexAttribArrayARB' index@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glDisableVertexAttribArray'.
-
-
-glDisableVertexAttribArrayARB :: MonadIO m => GLuint -> m ()
-glDisableVertexAttribArrayARB = ffiuintIOV glDisableVertexAttribArrayARBFunPtr
-
-glDisableVertexAttribArrayARBFunPtr :: FunPtr (GLuint -> IO ())
-glDisableVertexAttribArrayARBFunPtr = unsafePerformIO (getProcAddress "glDisableVertexAttribArrayARB")
-
-{-# NOINLINE glDisableVertexAttribArrayARBFunPtr #-}
-
--- | Usage: @'glEnableVertexAttribArrayARB' index@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glEnableVertexAttribArray'.
-
-
-glEnableVertexAttribArrayARB :: MonadIO m => GLuint -> m ()
-glEnableVertexAttribArrayARB = ffiuintIOV glEnableVertexAttribArrayARBFunPtr
-
-glEnableVertexAttribArrayARBFunPtr :: FunPtr (GLuint -> IO ())
-glEnableVertexAttribArrayARBFunPtr = unsafePerformIO (getProcAddress "glEnableVertexAttribArrayARB")
-
-{-# NOINLINE glEnableVertexAttribArrayARBFunPtr #-}
-
--- | Usage: @'glGetVertexAttribPointervARB' index pname pointer@
---
--- The parameter @pname@ is a @VertexAttribPointerPropertyARB@.
---
--- The length of @pointer@ should be @1@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetVertexAttribPointerv'.
-
-
-glGetVertexAttribPointervARB :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr ()) -> m ()
-glGetVertexAttribPointervARB = ffiuintenumPtrPtrVIOV glGetVertexAttribPointervARBFunPtr
-
-glGetVertexAttribPointervARBFunPtr :: FunPtr (GLuint -> GLenum -> Ptr (Ptr ()) -> IO ())
-glGetVertexAttribPointervARBFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribPointervARB")
-
-{-# NOINLINE glGetVertexAttribPointervARBFunPtr #-}
-
--- | Usage: @'glGetVertexAttribdvARB' index pname params@
---
--- The parameter @pname@ is a @VertexAttribPropertyARB@.
---
--- The length of @params@ should be @4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetVertexAttribdv'.
-
-
-glGetVertexAttribdvARB :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()
-glGetVertexAttribdvARB = ffiuintenumPtrdoubleIOV glGetVertexAttribdvARBFunPtr
-
-glGetVertexAttribdvARBFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLdouble -> IO ())
-glGetVertexAttribdvARBFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribdvARB")
-
-{-# NOINLINE glGetVertexAttribdvARBFunPtr #-}
-
--- | Usage: @'glGetVertexAttribfvARB' index pname params@
---
--- The parameter @pname@ is a @VertexAttribPropertyARB@.
---
--- The length of @params@ should be @4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetVertexAttribfv'.
-
-
-glGetVertexAttribfvARB :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
-glGetVertexAttribfvARB = ffiuintenumPtrfloatIOV glGetVertexAttribfvARBFunPtr
-
-glGetVertexAttribfvARBFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
-glGetVertexAttribfvARBFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribfvARB")
-
-{-# NOINLINE glGetVertexAttribfvARBFunPtr #-}
-
--- | Usage: @'glGetVertexAttribivARB' index pname params@
---
--- The parameter @pname@ is a @VertexAttribPropertyARB@.
---
--- The length of @params@ should be @4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetVertexAttribiv'.
-
-
-glGetVertexAttribivARB :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
-glGetVertexAttribivARB = ffiuintenumPtrintIOV glGetVertexAttribivARBFunPtr
-
-glGetVertexAttribivARBFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
-glGetVertexAttribivARBFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribivARB")
-
-{-# NOINLINE glGetVertexAttribivARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib1dARB' index x@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib1d'.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib1dvARB'.
-
-
-glVertexAttrib1dARB :: MonadIO m => GLuint -> GLdouble -> m ()
-glVertexAttrib1dARB = ffiuintdoubleIOV glVertexAttrib1dARBFunPtr
-
-glVertexAttrib1dARBFunPtr :: FunPtr (GLuint -> GLdouble -> IO ())
-glVertexAttrib1dARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1dARB")
-
-{-# NOINLINE glVertexAttrib1dARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib1dvARB' index v@
---
--- The length of @v@ should be @1@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib1dv'.
-
-
-glVertexAttrib1dvARB :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
-glVertexAttrib1dvARB = ffiuintPtrdoubleIOV glVertexAttrib1dvARBFunPtr
-
-glVertexAttrib1dvARBFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
-glVertexAttrib1dvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1dvARB")
-
-{-# NOINLINE glVertexAttrib1dvARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib1fARB' index x@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib1f'.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib1fvARB'.
-
-
-glVertexAttrib1fARB :: MonadIO m => GLuint -> GLfloat -> m ()
-glVertexAttrib1fARB = ffiuintfloatIOV glVertexAttrib1fARBFunPtr
-
-glVertexAttrib1fARBFunPtr :: FunPtr (GLuint -> GLfloat -> IO ())
-glVertexAttrib1fARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1fARB")
-
-{-# NOINLINE glVertexAttrib1fARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib1fvARB' index v@
---
--- The length of @v@ should be @1@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib1fv'.
-
-
-glVertexAttrib1fvARB :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
-glVertexAttrib1fvARB = ffiuintPtrfloatIOV glVertexAttrib1fvARBFunPtr
-
-glVertexAttrib1fvARBFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
-glVertexAttrib1fvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1fvARB")
-
-{-# NOINLINE glVertexAttrib1fvARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib1sARB' index x@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib1s'.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib1svARB'.
-
-
-glVertexAttrib1sARB :: MonadIO m => GLuint -> GLshort -> m ()
-glVertexAttrib1sARB = ffiuintshortIOV glVertexAttrib1sARBFunPtr
-
-glVertexAttrib1sARBFunPtr :: FunPtr (GLuint -> GLshort -> IO ())
-glVertexAttrib1sARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1sARB")
-
-{-# NOINLINE glVertexAttrib1sARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib1svARB' index v@
---
--- The length of @v@ should be @1@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib1sv'.
-
-
-glVertexAttrib1svARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()
-glVertexAttrib1svARB = ffiuintPtrshortIOV glVertexAttrib1svARBFunPtr
-
-glVertexAttrib1svARBFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
-glVertexAttrib1svARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1svARB")
-
-{-# NOINLINE glVertexAttrib1svARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib2dARB' index x y@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib2d'.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib2dvARB'.
-
-
-glVertexAttrib2dARB :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()
-glVertexAttrib2dARB = ffiuintdoubledoubleIOV glVertexAttrib2dARBFunPtr
-
-glVertexAttrib2dARBFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> IO ())
-glVertexAttrib2dARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2dARB")
-
-{-# NOINLINE glVertexAttrib2dARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib2dvARB' index v@
---
--- The length of @v@ should be @2@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib2dv'.
-
-
-glVertexAttrib2dvARB :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
-glVertexAttrib2dvARB = ffiuintPtrdoubleIOV glVertexAttrib2dvARBFunPtr
-
-glVertexAttrib2dvARBFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
-glVertexAttrib2dvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2dvARB")
-
-{-# NOINLINE glVertexAttrib2dvARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib2fARB' index x y@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib2f'.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib2fvARB'.
-
-
-glVertexAttrib2fARB :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()
-glVertexAttrib2fARB = ffiuintfloatfloatIOV glVertexAttrib2fARBFunPtr
-
-glVertexAttrib2fARBFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> IO ())
-glVertexAttrib2fARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2fARB")
-
-{-# NOINLINE glVertexAttrib2fARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib2fvARB' index v@
---
--- The length of @v@ should be @2@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib2fv'.
-
-
-glVertexAttrib2fvARB :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
-glVertexAttrib2fvARB = ffiuintPtrfloatIOV glVertexAttrib2fvARBFunPtr
-
-glVertexAttrib2fvARBFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
-glVertexAttrib2fvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2fvARB")
-
-{-# NOINLINE glVertexAttrib2fvARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib2sARB' index x y@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib2s'.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib2svARB'.
-
-
-glVertexAttrib2sARB :: MonadIO m => GLuint -> GLshort -> GLshort -> m ()
-glVertexAttrib2sARB = ffiuintshortshortIOV glVertexAttrib2sARBFunPtr
-
-glVertexAttrib2sARBFunPtr :: FunPtr (GLuint -> GLshort -> GLshort -> IO ())
-glVertexAttrib2sARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2sARB")
-
-{-# NOINLINE glVertexAttrib2sARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib2svARB' index v@
---
--- The length of @v@ should be @2@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib2sv'.
-
-
-glVertexAttrib2svARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()
-glVertexAttrib2svARB = ffiuintPtrshortIOV glVertexAttrib2svARBFunPtr
-
-glVertexAttrib2svARBFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
-glVertexAttrib2svARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2svARB")
-
-{-# NOINLINE glVertexAttrib2svARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib3dARB' index x y z@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib3d'.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib3dvARB'.
-
-
-glVertexAttrib3dARB :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()
-glVertexAttrib3dARB = ffiuintdoubledoubledoubleIOV glVertexAttrib3dARBFunPtr
-
-glVertexAttrib3dARBFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glVertexAttrib3dARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3dARB")
-
-{-# NOINLINE glVertexAttrib3dARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib3dvARB' index v@
---
--- The length of @v@ should be @3@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib3dv'.
-
-
-glVertexAttrib3dvARB :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
-glVertexAttrib3dvARB = ffiuintPtrdoubleIOV glVertexAttrib3dvARBFunPtr
-
-glVertexAttrib3dvARBFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
-glVertexAttrib3dvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3dvARB")
-
-{-# NOINLINE glVertexAttrib3dvARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib3fARB' index x y z@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib3f'.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib3fvARB'.
-
-
-glVertexAttrib3fARB :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()
-glVertexAttrib3fARB = ffiuintfloatfloatfloatIOV glVertexAttrib3fARBFunPtr
-
-glVertexAttrib3fARBFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glVertexAttrib3fARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3fARB")
-
-{-# NOINLINE glVertexAttrib3fARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib3fvARB' index v@
---
--- The length of @v@ should be @3@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib3fv'.
-
-
-glVertexAttrib3fvARB :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
-glVertexAttrib3fvARB = ffiuintPtrfloatIOV glVertexAttrib3fvARBFunPtr
-
-glVertexAttrib3fvARBFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
-glVertexAttrib3fvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3fvARB")
-
-{-# NOINLINE glVertexAttrib3fvARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib3sARB' index x y z@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib3s'.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib3svARB'.
-
-
-glVertexAttrib3sARB :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> m ()
-glVertexAttrib3sARB = ffiuintshortshortshortIOV glVertexAttrib3sARBFunPtr
-
-glVertexAttrib3sARBFunPtr :: FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> IO ())
-glVertexAttrib3sARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3sARB")
-
-{-# NOINLINE glVertexAttrib3sARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib3svARB' index v@
---
--- The length of @v@ should be @3@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib3sv'.
-
-
-glVertexAttrib3svARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()
-glVertexAttrib3svARB = ffiuintPtrshortIOV glVertexAttrib3svARBFunPtr
-
-glVertexAttrib3svARBFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
-glVertexAttrib3svARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3svARB")
-
-{-# NOINLINE glVertexAttrib3svARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib4NbvARB' index v@
---
--- The length of @v@ should be @4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4Nbv'.
-
-
-glVertexAttrib4NbvARB :: MonadIO m => GLuint -> Ptr GLbyte -> m ()
-glVertexAttrib4NbvARB = ffiuintPtrbyteIOV glVertexAttrib4NbvARBFunPtr
-
-glVertexAttrib4NbvARBFunPtr :: FunPtr (GLuint -> Ptr GLbyte -> IO ())
-glVertexAttrib4NbvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4NbvARB")
-
-{-# NOINLINE glVertexAttrib4NbvARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib4NivARB' index v@
---
--- The length of @v@ should be @4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4Niv'.
-
-
-glVertexAttrib4NivARB :: MonadIO m => GLuint -> Ptr GLint -> m ()
-glVertexAttrib4NivARB = ffiuintPtrintIOV glVertexAttrib4NivARBFunPtr
-
-glVertexAttrib4NivARBFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
-glVertexAttrib4NivARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4NivARB")
-
-{-# NOINLINE glVertexAttrib4NivARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib4NsvARB' index v@
---
--- The length of @v@ should be @4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4Nsv'.
-
-
-glVertexAttrib4NsvARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()
-glVertexAttrib4NsvARB = ffiuintPtrshortIOV glVertexAttrib4NsvARBFunPtr
-
-glVertexAttrib4NsvARBFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
-glVertexAttrib4NsvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4NsvARB")
-
-{-# NOINLINE glVertexAttrib4NsvARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib4NubARB' index x y z w@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4Nub'.
-
-
-glVertexAttrib4NubARB :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()
-glVertexAttrib4NubARB = ffiuintubyteubyteubyteubyteIOV glVertexAttrib4NubARBFunPtr
-
-glVertexAttrib4NubARBFunPtr :: FunPtr (GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> IO ())
-glVertexAttrib4NubARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4NubARB")
-
-{-# NOINLINE glVertexAttrib4NubARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib4NubvARB' index v@
---
--- The length of @v@ should be @4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4Nubv'.
-
-
-glVertexAttrib4NubvARB :: MonadIO m => GLuint -> Ptr GLubyte -> m ()
-glVertexAttrib4NubvARB = ffiuintPtrubyteIOV glVertexAttrib4NubvARBFunPtr
-
-glVertexAttrib4NubvARBFunPtr :: FunPtr (GLuint -> Ptr GLubyte -> IO ())
-glVertexAttrib4NubvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4NubvARB")
-
-{-# NOINLINE glVertexAttrib4NubvARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib4NuivARB' index v@
---
--- The length of @v@ should be @4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4Nuiv'.
-
-
-glVertexAttrib4NuivARB :: MonadIO m => GLuint -> Ptr GLuint -> m ()
-glVertexAttrib4NuivARB = ffiuintPtruintIOV glVertexAttrib4NuivARBFunPtr
-
-glVertexAttrib4NuivARBFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
-glVertexAttrib4NuivARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4NuivARB")
-
-{-# NOINLINE glVertexAttrib4NuivARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib4NusvARB' index v@
---
--- The length of @v@ should be @4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4Nusv'.
-
-
-glVertexAttrib4NusvARB :: MonadIO m => GLuint -> Ptr GLushort -> m ()
-glVertexAttrib4NusvARB = ffiuintPtrushortIOV glVertexAttrib4NusvARBFunPtr
-
-glVertexAttrib4NusvARBFunPtr :: FunPtr (GLuint -> Ptr GLushort -> IO ())
-glVertexAttrib4NusvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4NusvARB")
-
-{-# NOINLINE glVertexAttrib4NusvARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib4bvARB' index v@
---
--- The length of @v@ should be @4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4bv'.
-
-
-glVertexAttrib4bvARB :: MonadIO m => GLuint -> Ptr GLbyte -> m ()
-glVertexAttrib4bvARB = ffiuintPtrbyteIOV glVertexAttrib4bvARBFunPtr
-
-glVertexAttrib4bvARBFunPtr :: FunPtr (GLuint -> Ptr GLbyte -> IO ())
-glVertexAttrib4bvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4bvARB")
-
-{-# NOINLINE glVertexAttrib4bvARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib4dARB' index x y z w@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4d'.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib4dvARB'.
-
-
-glVertexAttrib4dARB :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
-glVertexAttrib4dARB = ffiuintdoubledoubledoubledoubleIOV glVertexAttrib4dARBFunPtr
-
-glVertexAttrib4dARBFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-glVertexAttrib4dARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4dARB")
-
-{-# NOINLINE glVertexAttrib4dARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib4dvARB' index v@
---
--- The length of @v@ should be @4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4dv'.
-
-
-glVertexAttrib4dvARB :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
-glVertexAttrib4dvARB = ffiuintPtrdoubleIOV glVertexAttrib4dvARBFunPtr
-
-glVertexAttrib4dvARBFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
-glVertexAttrib4dvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4dvARB")
-
-{-# NOINLINE glVertexAttrib4dvARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib4fARB' index x y z w@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4f'.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib4fvARB'.
-
-
-glVertexAttrib4fARB :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glVertexAttrib4fARB = ffiuintfloatfloatfloatfloatIOV glVertexAttrib4fARBFunPtr
-
-glVertexAttrib4fARBFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glVertexAttrib4fARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4fARB")
-
-{-# NOINLINE glVertexAttrib4fARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib4fvARB' index v@
---
--- The length of @v@ should be @4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4fv'.
-
-
-glVertexAttrib4fvARB :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
-glVertexAttrib4fvARB = ffiuintPtrfloatIOV glVertexAttrib4fvARBFunPtr
-
-glVertexAttrib4fvARBFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
-glVertexAttrib4fvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4fvARB")
-
-{-# NOINLINE glVertexAttrib4fvARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib4ivARB' index v@
---
--- The length of @v@ should be @4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4iv'.
-
-
-glVertexAttrib4ivARB :: MonadIO m => GLuint -> Ptr GLint -> m ()
-glVertexAttrib4ivARB = ffiuintPtrintIOV glVertexAttrib4ivARBFunPtr
-
-glVertexAttrib4ivARBFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
-glVertexAttrib4ivARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4ivARB")
-
-{-# NOINLINE glVertexAttrib4ivARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib4sARB' index x y z w@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4s'.
---
--- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib4svARB'.
-
-
-glVertexAttrib4sARB :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m ()
-glVertexAttrib4sARB = ffiuintshortshortshortshortIOV glVertexAttrib4sARBFunPtr
-
-glVertexAttrib4sARBFunPtr :: FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> IO ())
-glVertexAttrib4sARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4sARB")
-
-{-# NOINLINE glVertexAttrib4sARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib4svARB' index v@
---
--- The length of @v@ should be @4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4sv'.
-
-
-glVertexAttrib4svARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()
-glVertexAttrib4svARB = ffiuintPtrshortIOV glVertexAttrib4svARBFunPtr
-
-glVertexAttrib4svARBFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
-glVertexAttrib4svARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4svARB")
-
-{-# NOINLINE glVertexAttrib4svARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib4ubvARB' index v@
---
--- The length of @v@ should be @4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4ubv'.
-
-
-glVertexAttrib4ubvARB :: MonadIO m => GLuint -> Ptr GLubyte -> m ()
-glVertexAttrib4ubvARB = ffiuintPtrubyteIOV glVertexAttrib4ubvARBFunPtr
-
-glVertexAttrib4ubvARBFunPtr :: FunPtr (GLuint -> Ptr GLubyte -> IO ())
-glVertexAttrib4ubvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4ubvARB")
-
-{-# NOINLINE glVertexAttrib4ubvARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib4uivARB' index v@
---
--- The length of @v@ should be @4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4uiv'.
-
-
-glVertexAttrib4uivARB :: MonadIO m => GLuint -> Ptr GLuint -> m ()
-glVertexAttrib4uivARB = ffiuintPtruintIOV glVertexAttrib4uivARBFunPtr
-
-glVertexAttrib4uivARBFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
-glVertexAttrib4uivARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4uivARB")
-
-{-# NOINLINE glVertexAttrib4uivARBFunPtr #-}
-
--- | Usage: @'glVertexAttrib4usvARB' index v@
---
--- The length of @v@ should be @4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4usv'.
-
-
-glVertexAttrib4usvARB :: MonadIO m => GLuint -> Ptr GLushort -> m ()
-glVertexAttrib4usvARB = ffiuintPtrushortIOV glVertexAttrib4usvARBFunPtr
-
-glVertexAttrib4usvARBFunPtr :: FunPtr (GLuint -> Ptr GLushort -> IO ())
-glVertexAttrib4usvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4usvARB")
-
-{-# NOINLINE glVertexAttrib4usvARBFunPtr #-}
-
--- | Usage: @'glVertexAttribPointerARB' index size type normalized stride pointer@
---
--- The parameter @type@ is a @VertexAttribPointerType@.
---
--- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @pointer@ should be @COMPSIZE(size,type,stride)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribPointer'.
-
-
-glVertexAttribPointerARB :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr () -> m ()
-glVertexAttribPointerARB = ffiuintintenumbooleansizeiPtrVIOV glVertexAttribPointerARBFunPtr
-
-glVertexAttribPointerARBFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr () -> IO ())
-glVertexAttribPointerARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttribPointerARB")
-
-{-# NOINLINE glVertexAttribPointerARBFunPtr #-}
-
-pattern GL_CURRENT_VERTEX_ATTRIB_ARB = 0x8626
-
-pattern GL_MAX_VERTEX_ATTRIBS_ARB = 0x8869
-
-pattern GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB = 0x8622
-
-pattern GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB = 0x886A
-
-pattern GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB = 0x8645
-
-pattern GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB = 0x8623
-
-pattern GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB = 0x8624
-
-pattern GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB = 0x8625
-
-pattern GL_VERTEX_PROGRAM_POINT_SIZE_ARB = 0x8642
-
-pattern GL_VERTEX_PROGRAM_TWO_SIDE_ARB = 0x8643
-
-pattern GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB = 0x8B4C
-
--- | Usage: @'glBindFragDataLocationEXT' program color name@
---
--- The length of @name@ should be @COMPSIZE(name)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glBindFragDataLocation'.
-
-
-glBindFragDataLocationEXT :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()
-glBindFragDataLocationEXT = ffiuintuintPtrcharIOV glBindFragDataLocationEXTFunPtr
-
-glBindFragDataLocationEXTFunPtr :: FunPtr (GLuint -> GLuint -> Ptr GLchar -> IO ())
-glBindFragDataLocationEXTFunPtr = unsafePerformIO (getProcAddress "glBindFragDataLocationEXT")
-
-{-# NOINLINE glBindFragDataLocationEXTFunPtr #-}
-
-pattern GL_R16F_EXT = 0x822D
-
-pattern GL_RG16F_EXT = 0x822F
-
-pattern GL_RGB16F_EXT = 0x881B
-
-pattern GL_RGBA16F_EXT = 0x881A
-
--- | Usage: @'glDisableIndexedEXT' target index@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glDisablei'.
-
-
-glDisableIndexedEXT :: MonadIO m => GLenum -> GLuint -> m ()
-glDisableIndexedEXT = ffienumuintIOV glDisableIndexedEXTFunPtr
-
-glDisableIndexedEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glDisableIndexedEXTFunPtr = unsafePerformIO (getProcAddress "glDisableIndexedEXT")
-
-{-# NOINLINE glDisableIndexedEXTFunPtr #-}
-
--- | Usage: @'glEnableIndexedEXT' target index@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glEnablei'.
-
-
-glEnableIndexedEXT :: MonadIO m => GLenum -> GLuint -> m ()
-glEnableIndexedEXT = ffienumuintIOV glEnableIndexedEXTFunPtr
-
-glEnableIndexedEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glEnableIndexedEXTFunPtr = unsafePerformIO (getProcAddress "glEnableIndexedEXT")
-
-{-# NOINLINE glEnableIndexedEXTFunPtr #-}
-
--- | Usage: @'glGetBooleanIndexedvEXT' target index data@
---
--- The parameter @data@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @data@ should be @COMPSIZE(target)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetBooleani_v'.
-
-
-glGetBooleanIndexedvEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLboolean -> m ()
-glGetBooleanIndexedvEXT = ffienumuintPtrbooleanIOV glGetBooleanIndexedvEXTFunPtr
-
-glGetBooleanIndexedvEXTFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLboolean -> IO ())
-glGetBooleanIndexedvEXTFunPtr = unsafePerformIO (getProcAddress "glGetBooleanIndexedvEXT")
-
-{-# NOINLINE glGetBooleanIndexedvEXTFunPtr #-}
-
--- | Usage: @'glGetIntegerIndexedvEXT' target index data@
---
--- The length of @data@ should be @COMPSIZE(target)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetIntegeri_v'.
-
-
-glGetIntegerIndexedvEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()
-glGetIntegerIndexedvEXT = ffienumuintPtrintIOV glGetIntegerIndexedvEXTFunPtr
-
-glGetIntegerIndexedvEXTFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLint -> IO ())
-glGetIntegerIndexedvEXTFunPtr = unsafePerformIO (getProcAddress "glGetIntegerIndexedvEXT")
-
-{-# NOINLINE glGetIntegerIndexedvEXTFunPtr #-}
-
--- | Usage: @'glIsEnabledIndexedEXT' target index@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glIsEnabledi'.
-
-
-glIsEnabledIndexedEXT :: MonadIO m => GLenum -> GLuint -> m GLboolean
-glIsEnabledIndexedEXT = ffienumuintIOboolean glIsEnabledIndexedEXTFunPtr
-
-glIsEnabledIndexedEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO GLboolean)
-glIsEnabledIndexedEXTFunPtr = unsafePerformIO (getProcAddress "glIsEnabledIndexedEXT")
-
-{-# NOINLINE glIsEnabledIndexedEXTFunPtr #-}
-
--- | Usage: @'glProgramUniform1fEXT' program location v0@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform1f'.
-
-
-glProgramUniform1fEXT :: MonadIO m => GLuint -> GLint -> GLfloat -> m ()
-glProgramUniform1fEXT = ffiuintintfloatIOV glProgramUniform1fEXTFunPtr
-
-glProgramUniform1fEXTFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> IO ())
-glProgramUniform1fEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1fEXT")
-
-{-# NOINLINE glProgramUniform1fEXTFunPtr #-}
-
--- | Usage: @'glProgramUniform1fvEXT' program location count value@
---
--- The length of @value@ should be @count@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform1fv'.
-
-
-glProgramUniform1fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
-glProgramUniform1fvEXT = ffiuintintsizeiPtrfloatIOV glProgramUniform1fvEXTFunPtr
-
-glProgramUniform1fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
-glProgramUniform1fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1fvEXT")
-
-{-# NOINLINE glProgramUniform1fvEXTFunPtr #-}
-
--- | Usage: @'glProgramUniform1iEXT' program location v0@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform1i'.
-
-
-glProgramUniform1iEXT :: MonadIO m => GLuint -> GLint -> GLint -> m ()
-glProgramUniform1iEXT = ffiuintintintIOV glProgramUniform1iEXTFunPtr
-
-glProgramUniform1iEXTFunPtr :: FunPtr (GLuint -> GLint -> GLint -> IO ())
-glProgramUniform1iEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1iEXT")
-
-{-# NOINLINE glProgramUniform1iEXTFunPtr #-}
-
--- | Usage: @'glProgramUniform1ivEXT' program location count value@
---
--- The length of @value@ should be @count@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform1iv'.
-
-
-glProgramUniform1ivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
-glProgramUniform1ivEXT = ffiuintintsizeiPtrintIOV glProgramUniform1ivEXTFunPtr
-
-glProgramUniform1ivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
-glProgramUniform1ivEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1ivEXT")
-
-{-# NOINLINE glProgramUniform1ivEXTFunPtr #-}
-
--- | Usage: @'glProgramUniform1uiEXT' program location v0@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform1ui'.
-
-
-glProgramUniform1uiEXT :: MonadIO m => GLuint -> GLint -> GLuint -> m ()
-glProgramUniform1uiEXT = ffiuintintuintIOV glProgramUniform1uiEXTFunPtr
-
-glProgramUniform1uiEXTFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> IO ())
-glProgramUniform1uiEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1uiEXT")
-
-{-# NOINLINE glProgramUniform1uiEXTFunPtr #-}
-
--- | Usage: @'glProgramUniform1uivEXT' program location count value@
---
--- The length of @value@ should be @count@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform1uiv'.
-
-
-glProgramUniform1uivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
-glProgramUniform1uivEXT = ffiuintintsizeiPtruintIOV glProgramUniform1uivEXTFunPtr
-
-glProgramUniform1uivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
-glProgramUniform1uivEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1uivEXT")
-
-{-# NOINLINE glProgramUniform1uivEXTFunPtr #-}
-
--- | Usage: @'glProgramUniform2fEXT' program location v0 v1@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform2f'.
-
-
-glProgramUniform2fEXT :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> m ()
-glProgramUniform2fEXT = ffiuintintfloatfloatIOV glProgramUniform2fEXTFunPtr
-
-glProgramUniform2fEXTFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> IO ())
-glProgramUniform2fEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2fEXT")
-
-{-# NOINLINE glProgramUniform2fEXTFunPtr #-}
-
--- | Usage: @'glProgramUniform2fvEXT' program location count value@
---
--- The length of @value@ should be @count*2@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform2fv'.
-
-
-glProgramUniform2fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
-glProgramUniform2fvEXT = ffiuintintsizeiPtrfloatIOV glProgramUniform2fvEXTFunPtr
-
-glProgramUniform2fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
-glProgramUniform2fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2fvEXT")
-
-{-# NOINLINE glProgramUniform2fvEXTFunPtr #-}
-
--- | Usage: @'glProgramUniform2iEXT' program location v0 v1@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform2i'.
-
-
-glProgramUniform2iEXT :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()
-glProgramUniform2iEXT = ffiuintintintintIOV glProgramUniform2iEXTFunPtr
-
-glProgramUniform2iEXTFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> IO ())
-glProgramUniform2iEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2iEXT")
-
-{-# NOINLINE glProgramUniform2iEXTFunPtr #-}
-
--- | Usage: @'glProgramUniform2ivEXT' program location count value@
---
--- The length of @value@ should be @count*2@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform2iv'.
-
-
-glProgramUniform2ivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
-glProgramUniform2ivEXT = ffiuintintsizeiPtrintIOV glProgramUniform2ivEXTFunPtr
-
-glProgramUniform2ivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
-glProgramUniform2ivEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2ivEXT")
-
-{-# NOINLINE glProgramUniform2ivEXTFunPtr #-}
-
--- | Usage: @'glProgramUniform2uiEXT' program location v0 v1@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform2ui'.
-
-
-glProgramUniform2uiEXT :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> m ()
-glProgramUniform2uiEXT = ffiuintintuintuintIOV glProgramUniform2uiEXTFunPtr
-
-glProgramUniform2uiEXTFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> IO ())
-glProgramUniform2uiEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2uiEXT")
-
-{-# NOINLINE glProgramUniform2uiEXTFunPtr #-}
-
--- | Usage: @'glProgramUniform2uivEXT' program location count value@
---
--- The length of @value@ should be @count*2@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform2uiv'.
-
-
-glProgramUniform2uivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
-glProgramUniform2uivEXT = ffiuintintsizeiPtruintIOV glProgramUniform2uivEXTFunPtr
-
-glProgramUniform2uivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
-glProgramUniform2uivEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2uivEXT")
-
-{-# NOINLINE glProgramUniform2uivEXTFunPtr #-}
-
--- | Usage: @'glProgramUniform3fEXT' program location v0 v1 v2@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform3f'.
-
-
-glProgramUniform3fEXT :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> m ()
-glProgramUniform3fEXT = ffiuintintfloatfloatfloatIOV glProgramUniform3fEXTFunPtr
-
-glProgramUniform3fEXTFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glProgramUniform3fEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3fEXT")
-
-{-# NOINLINE glProgramUniform3fEXTFunPtr #-}
-
--- | Usage: @'glProgramUniform3fvEXT' program location count value@
---
--- The length of @value@ should be @count*3@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform3fv'.
-
-
-glProgramUniform3fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
-glProgramUniform3fvEXT = ffiuintintsizeiPtrfloatIOV glProgramUniform3fvEXTFunPtr
-
-glProgramUniform3fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
-glProgramUniform3fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3fvEXT")
-
-{-# NOINLINE glProgramUniform3fvEXTFunPtr #-}
-
--- | Usage: @'glProgramUniform3iEXT' program location v0 v1 v2@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform3i'.
-
-
-glProgramUniform3iEXT :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
-glProgramUniform3iEXT = ffiuintintintintintIOV glProgramUniform3iEXTFunPtr
-
-glProgramUniform3iEXTFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
-glProgramUniform3iEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3iEXT")
-
-{-# NOINLINE glProgramUniform3iEXTFunPtr #-}
-
--- | Usage: @'glProgramUniform3ivEXT' program location count value@
---
--- The length of @value@ should be @count*3@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform3iv'.
-
-
-glProgramUniform3ivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
-glProgramUniform3ivEXT = ffiuintintsizeiPtrintIOV glProgramUniform3ivEXTFunPtr
-
-glProgramUniform3ivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
-glProgramUniform3ivEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3ivEXT")
-
-{-# NOINLINE glProgramUniform3ivEXTFunPtr #-}
-
--- | Usage: @'glProgramUniform3uiEXT' program location v0 v1 v2@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform3ui'.
-
-
-glProgramUniform3uiEXT :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> m ()
-glProgramUniform3uiEXT = ffiuintintuintuintuintIOV glProgramUniform3uiEXTFunPtr
-
-glProgramUniform3uiEXTFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> GLuint -> IO ())
-glProgramUniform3uiEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3uiEXT")
-
-{-# NOINLINE glProgramUniform3uiEXTFunPtr #-}
-
--- | Usage: @'glProgramUniform3uivEXT' program location count value@
---
--- The length of @value@ should be @count*3@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform3uiv'.
-
-
-glProgramUniform3uivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
-glProgramUniform3uivEXT = ffiuintintsizeiPtruintIOV glProgramUniform3uivEXTFunPtr
-
-glProgramUniform3uivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
-glProgramUniform3uivEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3uivEXT")
-
-{-# NOINLINE glProgramUniform3uivEXTFunPtr #-}
-
--- | Usage: @'glProgramUniform4fEXT' program location v0 v1 v2 v3@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform4f'.
-
-
-glProgramUniform4fEXT :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
-glProgramUniform4fEXT = ffiuintintfloatfloatfloatfloatIOV glProgramUniform4fEXTFunPtr
-
-glProgramUniform4fEXTFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-glProgramUniform4fEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4fEXT")
-
-{-# NOINLINE glProgramUniform4fEXTFunPtr #-}
-
--- | Usage: @'glProgramUniform4fvEXT' program location count value@
---
--- The length of @value@ should be @count*4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform4fv'.
-
-
-glProgramUniform4fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
-glProgramUniform4fvEXT = ffiuintintsizeiPtrfloatIOV glProgramUniform4fvEXTFunPtr
-
-glProgramUniform4fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
-glProgramUniform4fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4fvEXT")
-
-{-# NOINLINE glProgramUniform4fvEXTFunPtr #-}
-
--- | Usage: @'glProgramUniform4iEXT' program location v0 v1 v2 v3@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform4i'.
-
-
-glProgramUniform4iEXT :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> m ()
-glProgramUniform4iEXT = ffiuintintintintintintIOV glProgramUniform4iEXTFunPtr
-
-glProgramUniform4iEXTFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> IO ())
-glProgramUniform4iEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4iEXT")
-
-{-# NOINLINE glProgramUniform4iEXTFunPtr #-}
-
--- | Usage: @'glProgramUniform4ivEXT' program location count value@
---
--- The length of @value@ should be @count*4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform4iv'.
-
-
-glProgramUniform4ivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
-glProgramUniform4ivEXT = ffiuintintsizeiPtrintIOV glProgramUniform4ivEXTFunPtr
-
-glProgramUniform4ivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
-glProgramUniform4ivEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4ivEXT")
-
-{-# NOINLINE glProgramUniform4ivEXTFunPtr #-}
-
--- | Usage: @'glProgramUniform4uiEXT' program location v0 v1 v2 v3@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform4ui'.
-
-
-glProgramUniform4uiEXT :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
-glProgramUniform4uiEXT = ffiuintintuintuintuintuintIOV glProgramUniform4uiEXTFunPtr
-
-glProgramUniform4uiEXTFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
-glProgramUniform4uiEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4uiEXT")
-
-{-# NOINLINE glProgramUniform4uiEXTFunPtr #-}
-
--- | Usage: @'glProgramUniform4uivEXT' program location count value@
---
--- The length of @value@ should be @count*4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform4uiv'.
-
-
-glProgramUniform4uivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
-glProgramUniform4uivEXT = ffiuintintsizeiPtruintIOV glProgramUniform4uivEXTFunPtr
-
-glProgramUniform4uivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
-glProgramUniform4uivEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4uivEXT")
-
-{-# NOINLINE glProgramUniform4uivEXTFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix2fvEXT' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*4@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniformMatrix2fv'.
-
-
-glProgramUniformMatrix2fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glProgramUniformMatrix2fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix2fvEXTFunPtr
-
-glProgramUniformMatrix2fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glProgramUniformMatrix2fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2fvEXT")
-
-{-# NOINLINE glProgramUniformMatrix2fvEXTFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix2x3fvEXT' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*6@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniformMatrix2x3fv'.
-
-
-glProgramUniformMatrix2x3fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glProgramUniformMatrix2x3fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix2x3fvEXTFunPtr
-
-glProgramUniformMatrix2x3fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glProgramUniformMatrix2x3fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2x3fvEXT")
-
-{-# NOINLINE glProgramUniformMatrix2x3fvEXTFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix2x4fvEXT' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*8@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniformMatrix2x4fv'.
-
-
-glProgramUniformMatrix2x4fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glProgramUniformMatrix2x4fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix2x4fvEXTFunPtr
-
-glProgramUniformMatrix2x4fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glProgramUniformMatrix2x4fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2x4fvEXT")
-
-{-# NOINLINE glProgramUniformMatrix2x4fvEXTFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix3fvEXT' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*9@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniformMatrix3fv'.
-
-
-glProgramUniformMatrix3fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glProgramUniformMatrix3fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix3fvEXTFunPtr
-
-glProgramUniformMatrix3fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glProgramUniformMatrix3fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3fvEXT")
-
-{-# NOINLINE glProgramUniformMatrix3fvEXTFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix3x2fvEXT' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*6@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniformMatrix3x2fv'.
-
-
-glProgramUniformMatrix3x2fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glProgramUniformMatrix3x2fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix3x2fvEXTFunPtr
-
-glProgramUniformMatrix3x2fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glProgramUniformMatrix3x2fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3x2fvEXT")
-
-{-# NOINLINE glProgramUniformMatrix3x2fvEXTFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix3x4fvEXT' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*12@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniformMatrix3x4fv'.
-
-
-glProgramUniformMatrix3x4fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glProgramUniformMatrix3x4fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix3x4fvEXTFunPtr
-
-glProgramUniformMatrix3x4fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glProgramUniformMatrix3x4fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3x4fvEXT")
-
-{-# NOINLINE glProgramUniformMatrix3x4fvEXTFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix4fvEXT' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*16@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniformMatrix4fv'.
-
-
-glProgramUniformMatrix4fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glProgramUniformMatrix4fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix4fvEXTFunPtr
-
-glProgramUniformMatrix4fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glProgramUniformMatrix4fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4fvEXT")
-
-{-# NOINLINE glProgramUniformMatrix4fvEXTFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix4x2fvEXT' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*8@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniformMatrix4x2fv'.
-
-
-glProgramUniformMatrix4x2fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glProgramUniformMatrix4x2fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix4x2fvEXTFunPtr
-
-glProgramUniformMatrix4x2fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glProgramUniformMatrix4x2fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4x2fvEXT")
-
-{-# NOINLINE glProgramUniformMatrix4x2fvEXTFunPtr #-}
-
--- | Usage: @'glProgramUniformMatrix4x3fvEXT' program location count transpose value@
---
--- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
---
--- The length of @value@ should be @count*12@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniformMatrix4x3fv'.
-
-
-glProgramUniformMatrix4x3fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
-glProgramUniformMatrix4x3fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix4x3fvEXTFunPtr
-
-glProgramUniformMatrix4x3fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-glProgramUniformMatrix4x3fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4x3fvEXT")
-
-{-# NOINLINE glProgramUniformMatrix4x3fvEXTFunPtr #-}
-
--- | Usage: @'glTextureStorage1DEXT' texture target levels internalformat width@
-
-
-glTextureStorage1DEXT :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> m ()
-glTextureStorage1DEXT = ffiuintenumsizeienumsizeiIOV glTextureStorage1DEXTFunPtr
-
-glTextureStorage1DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> IO ())
-glTextureStorage1DEXTFunPtr = unsafePerformIO (getProcAddress "glTextureStorage1DEXT")
-
-{-# NOINLINE glTextureStorage1DEXTFunPtr #-}
-
--- | Usage: @'glTextureStorage2DEXT' texture target levels internalformat width height@
-
-
-glTextureStorage2DEXT :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
-glTextureStorage2DEXT = ffiuintenumsizeienumsizeisizeiIOV glTextureStorage2DEXTFunPtr
-
-glTextureStorage2DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
-glTextureStorage2DEXTFunPtr = unsafePerformIO (getProcAddress "glTextureStorage2DEXT")
-
-{-# NOINLINE glTextureStorage2DEXTFunPtr #-}
-
--- | Usage: @'glTextureStorage3DEXT' texture target levels internalformat width height depth@
-
-
-glTextureStorage3DEXT :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()
-glTextureStorage3DEXT = ffiuintenumsizeienumsizeisizeisizeiIOV glTextureStorage3DEXTFunPtr
-
-glTextureStorage3DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ())
-glTextureStorage3DEXTFunPtr = unsafePerformIO (getProcAddress "glTextureStorage3DEXT")
-
-{-# NOINLINE glTextureStorage3DEXTFunPtr #-}
-
--- | Usage: @'glBeginQueryEXT' target id@
-
-
-glBeginQueryEXT :: MonadIO m => GLenum -> GLuint -> m ()
-glBeginQueryEXT = ffienumuintIOV glBeginQueryEXTFunPtr
-
-glBeginQueryEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glBeginQueryEXTFunPtr = unsafePerformIO (getProcAddress "glBeginQueryEXT")
-
-{-# NOINLINE glBeginQueryEXTFunPtr #-}
-
--- | Usage: @'glDeleteQueriesEXT' n ids@
---
--- The length of @ids@ should be @n@.
-
-
-glDeleteQueriesEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glDeleteQueriesEXT = ffisizeiPtruintIOV glDeleteQueriesEXTFunPtr
-
-glDeleteQueriesEXTFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glDeleteQueriesEXTFunPtr = unsafePerformIO (getProcAddress "glDeleteQueriesEXT")
-
-{-# NOINLINE glDeleteQueriesEXTFunPtr #-}
-
--- | Usage: @'glEndQueryEXT' target@
-
-
-glEndQueryEXT :: MonadIO m => GLenum -> m ()
-glEndQueryEXT = ffienumIOV glEndQueryEXTFunPtr
-
-glEndQueryEXTFunPtr :: FunPtr (GLenum -> IO ())
-glEndQueryEXTFunPtr = unsafePerformIO (getProcAddress "glEndQueryEXT")
-
-{-# NOINLINE glEndQueryEXTFunPtr #-}
-
--- | Usage: @'glGenQueriesEXT' n ids@
---
--- The length of @ids@ should be @n@.
-
-
-glGenQueriesEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
-glGenQueriesEXT = ffisizeiPtruintIOV glGenQueriesEXTFunPtr
-
-glGenQueriesEXTFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
-glGenQueriesEXTFunPtr = unsafePerformIO (getProcAddress "glGenQueriesEXT")
-
-{-# NOINLINE glGenQueriesEXTFunPtr #-}
-
--- | Usage: @'glGetQueryObjecti64vEXT' id pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetQueryObjecti64v'.
-
-
-glGetQueryObjecti64vEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint64 -> m ()
-glGetQueryObjecti64vEXT = ffiuintenumPtrint64IOV glGetQueryObjecti64vEXTFunPtr
-
-glGetQueryObjecti64vEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint64 -> IO ())
-glGetQueryObjecti64vEXTFunPtr = unsafePerformIO (getProcAddress "glGetQueryObjecti64vEXT")
-
-{-# NOINLINE glGetQueryObjecti64vEXTFunPtr #-}
-
--- | Usage: @'glGetQueryObjectui64vEXT' id pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetQueryObjectui64v'.
-
-
-glGetQueryObjectui64vEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64 -> m ()
-glGetQueryObjectui64vEXT = ffiuintenumPtruint64IOV glGetQueryObjectui64vEXTFunPtr
-
-glGetQueryObjectui64vEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint64 -> IO ())
-glGetQueryObjectui64vEXTFunPtr = unsafePerformIO (getProcAddress "glGetQueryObjectui64vEXT")
-
-{-# NOINLINE glGetQueryObjectui64vEXTFunPtr #-}
-
--- | Usage: @'glGetQueryObjectuivEXT' id pname params@
-
-
-glGetQueryObjectuivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
-glGetQueryObjectuivEXT = ffiuintenumPtruintIOV glGetQueryObjectuivEXTFunPtr
-
-glGetQueryObjectuivEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
-glGetQueryObjectuivEXTFunPtr = unsafePerformIO (getProcAddress "glGetQueryObjectuivEXT")
-
-{-# NOINLINE glGetQueryObjectuivEXTFunPtr #-}
-
--- | Usage: @'glGetQueryivEXT' target pname params@
-
-
-glGetQueryivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glGetQueryivEXT = ffienumenumPtrintIOV glGetQueryivEXTFunPtr
-
-glGetQueryivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetQueryivEXTFunPtr = unsafePerformIO (getProcAddress "glGetQueryivEXT")
-
-{-# NOINLINE glGetQueryivEXTFunPtr #-}
-
--- | Usage: @'glIsQueryEXT' id@
-
-
-glIsQueryEXT :: MonadIO m => GLuint -> m GLboolean
-glIsQueryEXT = ffiuintIOboolean glIsQueryEXTFunPtr
-
-glIsQueryEXTFunPtr :: FunPtr (GLuint -> IO GLboolean)
-glIsQueryEXTFunPtr = unsafePerformIO (getProcAddress "glIsQueryEXT")
-
-{-# NOINLINE glIsQueryEXTFunPtr #-}
-
-pattern GL_CURRENT_QUERY_EXT = 0x8865
-
-pattern GL_QUERY_RESULT_AVAILABLE_EXT = 0x8867
-
-pattern GL_QUERY_RESULT_EXT = 0x8866
-
-pattern GL_TIME_ELAPSED_EXT = 0x88BF
-
-pattern GL_COLOR_ATTACHMENT0_EXT = 0x8CE0
-
-pattern GL_COLOR_ATTACHMENT10_EXT = 0x8CEA
-
-pattern GL_COLOR_ATTACHMENT11_EXT = 0x8CEB
-
-pattern GL_COLOR_ATTACHMENT12_EXT = 0x8CEC
-
-pattern GL_COLOR_ATTACHMENT13_EXT = 0x8CED
-
-pattern GL_COLOR_ATTACHMENT14_EXT = 0x8CEE
-
-pattern GL_COLOR_ATTACHMENT15_EXT = 0x8CEF
-
-pattern GL_COLOR_ATTACHMENT1_EXT = 0x8CE1
-
-pattern GL_COLOR_ATTACHMENT2_EXT = 0x8CE2
-
-pattern GL_COLOR_ATTACHMENT3_EXT = 0x8CE3
-
-pattern GL_COLOR_ATTACHMENT4_EXT = 0x8CE4
-
-pattern GL_COLOR_ATTACHMENT5_EXT = 0x8CE5
-
-pattern GL_COLOR_ATTACHMENT6_EXT = 0x8CE6
-
-pattern GL_COLOR_ATTACHMENT7_EXT = 0x8CE7
-
-pattern GL_COLOR_ATTACHMENT8_EXT = 0x8CE8
-
-pattern GL_COLOR_ATTACHMENT9_EXT = 0x8CE9
-
-pattern GL_MAX_COLOR_ATTACHMENTS_EXT = 0x8CDF
-
--- | Usage: @'glDrawArraysInstancedEXT' mode start count primcount@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glDrawArraysInstanced'.
-
-
-glDrawArraysInstancedEXT :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()
-glDrawArraysInstancedEXT = ffienumintsizeisizeiIOV glDrawArraysInstancedEXTFunPtr
-
-glDrawArraysInstancedEXTFunPtr :: FunPtr (GLenum -> GLint -> GLsizei -> GLsizei -> IO ())
-glDrawArraysInstancedEXTFunPtr = unsafePerformIO (getProcAddress "glDrawArraysInstancedEXT")
-
-{-# NOINLINE glDrawArraysInstancedEXTFunPtr #-}
-
--- | Usage: @'glDrawElementsInstancedEXT' mode count type indices primcount@
---
--- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
---
--- The parameter @type@ is a @DrawElementsType@.
---
--- The length of @indices@ should be @COMPSIZE(count,type)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glDrawElementsInstanced'.
-
-
-glDrawElementsInstancedEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> m ()
-glDrawElementsInstancedEXT = ffienumsizeienumPtrVsizeiIOV glDrawElementsInstancedEXTFunPtr
-
-glDrawElementsInstancedEXTFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> IO ())
-glDrawElementsInstancedEXTFunPtr = unsafePerformIO (getProcAddress "glDrawElementsInstancedEXT")
-
-{-# NOINLINE glDrawElementsInstancedEXTFunPtr #-}
-
-pattern GL_FRAGMENT_DEPTH_EXT = 0x8452
-
--- | Usage: @'glRenderbufferStorageMultisampleEXT' target samples internalformat width height@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glRenderbufferStorageMultisample'.
-
-
-glRenderbufferStorageMultisampleEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
-glRenderbufferStorageMultisampleEXT = ffienumsizeienumsizeisizeiIOV glRenderbufferStorageMultisampleEXTFunPtr
-
-glRenderbufferStorageMultisampleEXTFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
-glRenderbufferStorageMultisampleEXTFunPtr = unsafePerformIO (getProcAddress "glRenderbufferStorageMultisampleEXT")
-
-{-# NOINLINE glRenderbufferStorageMultisampleEXTFunPtr #-}
-
-pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT = 0x8D56
-
-pattern GL_MAX_SAMPLES_EXT = 0x8D57
-
-pattern GL_RENDERBUFFER_SAMPLES_EXT = 0x8CAB
-
-pattern GL_FRAMEBUFFER_SRGB_EXT = 0x8DB9
-
--- | Usage: @'glFramebufferTextureEXT' target attachment texture level@
---
--- The parameter @target@ is a @FramebufferTarget@.
---
--- The parameter @attachment@ is a @FramebufferAttachment@.
---
--- The parameter @texture@ is a @Texture@.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glFramebufferTexture'.
-
-
-glFramebufferTextureEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> m ()
-glFramebufferTextureEXT = ffienumenumuintintIOV glFramebufferTextureEXTFunPtr
-
-glFramebufferTextureEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> IO ())
-glFramebufferTextureEXTFunPtr = unsafePerformIO (getProcAddress "glFramebufferTextureEXT")
-
-{-# NOINLINE glFramebufferTextureEXTFunPtr #-}
-
-pattern GL_FIRST_VERTEX_CONVENTION_EXT = 0x8E4D
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT = 0x8DA7
-
-pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT = 0x8DA8
-
-pattern GL_GEOMETRY_SHADER_EXT = 0x8DD9
-
-pattern GL_LAST_VERTEX_CONVENTION_EXT = 0x8E4E
-
-pattern GL_LINES_ADJACENCY_EXT = 0x000A
-
-pattern GL_LINE_STRIP_ADJACENCY_EXT = 0x000B
-
-pattern GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT = 0x8DE0
-
-pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT = 0x8C29
-
-pattern GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT = 0x8DE1
-
-pattern GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT = 0x8DDF
-
-pattern GL_PRIMITIVES_GENERATED_EXT = 0x8C87
-
-pattern GL_TRIANGLES_ADJACENCY_EXT = 0x000C
-
-pattern GL_TRIANGLE_STRIP_ADJACENCY_EXT = 0x000D
-
--- | Usage: @'glProgramParameteriEXT' program pname value@
---
--- The parameter @pname@ is a @ProgramParameterPName@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramParameteri'.
-
-
-glProgramParameteriEXT :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
-glProgramParameteriEXT = ffiuintenumintIOV glProgramParameteriEXTFunPtr
-
-glProgramParameteriEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> IO ())
-glProgramParameteriEXTFunPtr = unsafePerformIO (getProcAddress "glProgramParameteriEXT")
-
-{-# NOINLINE glProgramParameteriEXTFunPtr #-}
-
-pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT = 0x8CD4
-
-pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT = 0x8DA9
-
-pattern GL_GEOMETRY_INPUT_TYPE_EXT = 0x8DDB
-
-pattern GL_GEOMETRY_OUTPUT_TYPE_EXT = 0x8DDC
-
-pattern GL_GEOMETRY_VERTICES_OUT_EXT = 0x8DDA
-
-pattern GL_PROGRAM_POINT_SIZE_EXT = 0x8642
-
-pattern GL_INT_SAMPLER_BUFFER_EXT = 0x8DD0
-
-pattern GL_SAMPLER_BUFFER_EXT = 0x8DC2
-
-pattern GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT = 0x8DD8
-
-pattern GL_MULTISAMPLE_EXT = 0x809D
-
-pattern GL_SAMPLE_ALPHA_TO_ONE_EXT = 0x809F
-
--- | Usage: @'glRasterSamplesEXT' samples fixedsamplelocations@
-
-
-glRasterSamplesEXT :: MonadIO m => GLuint -> GLboolean -> m ()
-glRasterSamplesEXT = ffiuintbooleanIOV glRasterSamplesEXTFunPtr
-
-glRasterSamplesEXTFunPtr :: FunPtr (GLuint -> GLboolean -> IO ())
-glRasterSamplesEXTFunPtr = unsafePerformIO (getProcAddress "glRasterSamplesEXT")
-
-{-# NOINLINE glRasterSamplesEXTFunPtr #-}
-
-pattern GL_EFFECTIVE_RASTER_SAMPLES_EXT = 0x932C
-
-pattern GL_MAX_RASTER_SAMPLES_EXT = 0x9329
-
-pattern GL_MULTISAMPLE_RASTERIZATION_ALLOWED_EXT = 0x932B
-
-pattern GL_RASTER_FIXED_SAMPLE_LOCATIONS_EXT = 0x932A
-
-pattern GL_RASTER_MULTISAMPLE_EXT = 0x9327
-
-pattern GL_RASTER_SAMPLES_EXT = 0x9328
-
-pattern GL_R16_SNORM_EXT = 0x8F98
-
-pattern GL_RG16_SNORM_EXT = 0x8F99
-
-pattern GL_RGBA16_SNORM_EXT = 0x8F9B
-
-pattern GL_SRGB8_ALPHA8_EXT = 0x8C43
-
-pattern GL_SRGB_ALPHA_EXT = 0x8C42
-
-pattern GL_SRGB_EXT = 0x8C40
-
-pattern GL_IMAGE_BUFFER_EXT = 0x9051
-
-pattern GL_IMAGE_CUBE_MAP_ARRAY_EXT = 0x9054
-
-pattern GL_INT_IMAGE_BUFFER_EXT = 0x905C
-
-pattern GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT = 0x905F
-
-pattern GL_UNSIGNED_INT_IMAGE_BUFFER_EXT = 0x9067
-
-pattern GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT = 0x906A
-
-pattern GL_TEXTURE_CUBE_MAP_ARRAY_OES = 0x9009
-
-pattern GL_ALPHA8_EXT = 0x803C
-
-pattern GL_LUMINANCE8_ALPHA8_EXT = 0x8045
-
-pattern GL_LUMINANCE8_EXT = 0x8040
-
-pattern GL_RGB10_A2_EXT = 0x8059
-
-pattern GL_RGB10_EXT = 0x8052
-
-pattern GL_RGB16_EXT = 0x8054
-
-pattern GL_RGBA16_EXT = 0x805B
-
--- | Usage: @'glFramebufferTextureLayerEXT' target attachment texture level layer@
---
--- The parameter @target@ is a @FramebufferTarget@.
---
--- The parameter @attachment@ is a @FramebufferAttachment@.
---
--- The parameter @texture@ is a @Texture@.
---
--- The parameter @level@ is a @CheckedInt32@.
---
--- The parameter @layer@ is a @CheckedInt32@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glFramebufferTextureLayer'.
-
-
-glFramebufferTextureLayerEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()
-glFramebufferTextureLayerEXT = ffienumenumuintintintIOV glFramebufferTextureLayerEXTFunPtr
-
-glFramebufferTextureLayerEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ())
-glFramebufferTextureLayerEXTFunPtr = unsafePerformIO (getProcAddress "glFramebufferTextureLayerEXT")
-
-{-# NOINLINE glFramebufferTextureLayerEXTFunPtr #-}
-
--- | Usage: @'glGetTexParameterIivEXT' target pname params@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Ext.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetTexParameterIiv'.
-
-
-glGetTexParameterIivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glGetTexParameterIivEXT = ffienumenumPtrintIOV glGetTexParameterIivEXTFunPtr
-
-glGetTexParameterIivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glGetTexParameterIivEXTFunPtr = unsafePerformIO (getProcAddress "glGetTexParameterIivEXT")
-
-{-# NOINLINE glGetTexParameterIivEXTFunPtr #-}
-
--- | Usage: @'glGetTexParameterIuivEXT' target pname params@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Ext.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glGetTexParameterIuiv'.
-
-
-glGetTexParameterIuivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
-glGetTexParameterIuivEXT = ffienumenumPtruintIOV glGetTexParameterIuivEXTFunPtr
-
-glGetTexParameterIuivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
-glGetTexParameterIuivEXTFunPtr = unsafePerformIO (getProcAddress "glGetTexParameterIuivEXT")
-
-{-# NOINLINE glGetTexParameterIuivEXTFunPtr #-}
-
--- | Usage: @'glTexParameterIivEXT' target pname params@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glTexParameterIiv'.
-
-
-glTexParameterIivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
-glTexParameterIivEXT = ffienumenumPtrintIOV glTexParameterIivEXTFunPtr
-
-glTexParameterIivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
-glTexParameterIivEXTFunPtr = unsafePerformIO (getProcAddress "glTexParameterIivEXT")
-
-{-# NOINLINE glTexParameterIivEXTFunPtr #-}
-
--- | Usage: @'glTexParameterIuivEXT' target pname params@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
---
--- The length of @params@ should be @COMPSIZE(pname)@.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glTexParameterIuiv'.
-
-
-glTexParameterIuivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
-glTexParameterIuivEXT = ffienumenumPtruintIOV glTexParameterIuivEXTFunPtr
-
-glTexParameterIuivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
-glTexParameterIuivEXTFunPtr = unsafePerformIO (getProcAddress "glTexParameterIuivEXT")
-
-{-# NOINLINE glTexParameterIuivEXTFunPtr #-}
-
--- | Usage: @'glTexBufferEXT' target internalformat buffer@
---
--- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glTexBuffer'.
-
-
-glTexBufferEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
-glTexBufferEXT = ffienumenumuintIOV glTexBufferEXTFunPtr
-
-glTexBufferEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
-glTexBufferEXTFunPtr = unsafePerformIO (getProcAddress "glTexBufferEXT")
-
-{-# NOINLINE glTexBufferEXTFunPtr #-}
-
-pattern GL_MAX_TEXTURE_BUFFER_SIZE_EXT = 0x8C2B
-
-pattern GL_TEXTURE_BINDING_BUFFER_EXT = 0x8C2C
-
-pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT = 0x8C2D
-
-pattern GL_TEXTURE_BUFFER_EXT = 0x8C2A
-
-pattern GL_COMPRESSED_RGBA_S3TC_DXT1_EXT = 0x83F1
-
-pattern GL_COMPRESSED_RGB_S3TC_DXT1_EXT = 0x83F0
-
-pattern GL_R8_EXT = 0x8229
-
-pattern GL_RG8_EXT = 0x822B
-
-pattern GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES = 0x8D68
-
-pattern GL_TEXTURE_BINDING_EXTERNAL_OES = 0x8D67
-
-pattern GL_TEXTURE_EXTERNAL_OES = 0x8D65
-
-pattern GL_CONTEXT_ROBUST_ACCESS = 0x90F3
-
-pattern GL_COMPRESSED_RGBA_ASTC_10x10_KHR = 0x93BB
-
-pattern GL_COMPRESSED_RGBA_ASTC_10x5_KHR = 0x93B8
-
-pattern GL_COMPRESSED_RGBA_ASTC_10x6_KHR = 0x93B9
-
-pattern GL_COMPRESSED_RGBA_ASTC_10x8_KHR = 0x93BA
-
-pattern GL_COMPRESSED_RGBA_ASTC_12x10_KHR = 0x93BC
-
-pattern GL_COMPRESSED_RGBA_ASTC_12x12_KHR = 0x93BD
-
-pattern GL_COMPRESSED_RGBA_ASTC_4x4_KHR = 0x93B0
-
-pattern GL_COMPRESSED_RGBA_ASTC_5x4_KHR = 0x93B1
-
-pattern GL_COMPRESSED_RGBA_ASTC_5x5_KHR = 0x93B2
-
-pattern GL_COMPRESSED_RGBA_ASTC_6x5_KHR = 0x93B3
-
-pattern GL_COMPRESSED_RGBA_ASTC_6x6_KHR = 0x93B4
-
-pattern GL_COMPRESSED_RGBA_ASTC_8x5_KHR = 0x93B5
-
-pattern GL_COMPRESSED_RGBA_ASTC_8x6_KHR = 0x93B6
-
-pattern GL_COMPRESSED_RGBA_ASTC_8x8_KHR = 0x93B7
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR = 0x93DB
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR = 0x93D8
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR = 0x93D9
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR = 0x93DA
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR = 0x93DC
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR = 0x93DD
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR = 0x93D0
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR = 0x93D1
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR = 0x93D2
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR = 0x93D3
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR = 0x93D4
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR = 0x93D5
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR = 0x93D6
-
-pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR = 0x93D7
-
-pattern GL_COLOR_ATTACHMENT0_NV = 0x8CE0
-
-pattern GL_COLOR_ATTACHMENT10_NV = 0x8CEA
-
-pattern GL_COLOR_ATTACHMENT11_NV = 0x8CEB
-
-pattern GL_COLOR_ATTACHMENT12_NV = 0x8CEC
-
-pattern GL_COLOR_ATTACHMENT13_NV = 0x8CED
-
-pattern GL_COLOR_ATTACHMENT14_NV = 0x8CEE
-
-pattern GL_COLOR_ATTACHMENT15_NV = 0x8CEF
-
-pattern GL_COLOR_ATTACHMENT1_NV = 0x8CE1
-
-pattern GL_COLOR_ATTACHMENT2_NV = 0x8CE2
-
-pattern GL_COLOR_ATTACHMENT3_NV = 0x8CE3
-
-pattern GL_COLOR_ATTACHMENT4_NV = 0x8CE4
-
-pattern GL_COLOR_ATTACHMENT5_NV = 0x8CE5
-
-pattern GL_COLOR_ATTACHMENT6_NV = 0x8CE6
-
-pattern GL_COLOR_ATTACHMENT7_NV = 0x8CE7
-
-pattern GL_COLOR_ATTACHMENT8_NV = 0x8CE8
-
-pattern GL_COLOR_ATTACHMENT9_NV = 0x8CE9
-
-pattern GL_MAX_PROGRAM_CALL_DEPTH_NV = 0x88F5
-
-pattern GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV = 0x88F4
-
-pattern GL_COLOR_SAMPLES_NV = 0x8E20
-
-pattern GL_PRIMARY_COLOR_NV = 0x852C
-
-pattern GL_SECONDARY_COLOR_NV = 0x852D
-
-pattern GL_DEPTH_COMPONENT24_OES = 0x81A6
-
--- | Usage: @'glDisableiOES' target index@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glDisablei'.
-
-
-glDisableiOES :: MonadIO m => GLenum -> GLuint -> m ()
-glDisableiOES = ffienumuintIOV glDisableiOESFunPtr
-
-glDisableiOESFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glDisableiOESFunPtr = unsafePerformIO (getProcAddress "glDisableiOES")
-
-{-# NOINLINE glDisableiOESFunPtr #-}
-
--- | Usage: @'glEnableiOES' target index@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glEnablei'.
-
-
-glEnableiOES :: MonadIO m => GLenum -> GLuint -> m ()
-glEnableiOES = ffienumuintIOV glEnableiOESFunPtr
-
-glEnableiOESFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
-glEnableiOESFunPtr = unsafePerformIO (getProcAddress "glEnableiOES")
-
-{-# NOINLINE glEnableiOESFunPtr #-}
-
--- | Usage: @'glIsEnablediOES' target index@
---
--- This command is an alias for 'Graphics.GL.Internal.Shared.glIsEnabledi'.
-
-
-glIsEnablediOES :: MonadIO m => GLenum -> GLuint -> m GLboolean
-glIsEnablediOES = ffienumuintIOboolean glIsEnablediOESFunPtr
-
-glIsEnablediOESFunPtr :: FunPtr (GLenum -> GLuint -> IO GLboolean)
-glIsEnablediOESFunPtr = unsafePerformIO (getProcAddress "glIsEnablediOES")
-
-{-# NOINLINE glIsEnablediOESFunPtr #-}
-
--- | Usage: @'glGetTexGenxvOES' coord pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glGetTexGenxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
-glGetTexGenxvOES = ffienumenumPtrfixedIOV glGetTexGenxvOESFunPtr
-
-glGetTexGenxvOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
-glGetTexGenxvOESFunPtr = unsafePerformIO (getProcAddress "glGetTexGenxvOES")
-
-{-# NOINLINE glGetTexGenxvOESFunPtr #-}
-
--- | Usage: @'glTexGenxOES' coord pname param@
-
-
-glTexGenxOES :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()
-glTexGenxOES = ffienumenumfixedIOV glTexGenxOESFunPtr
-
-glTexGenxOESFunPtr :: FunPtr (GLenum -> GLenum -> GLfixed -> IO ())
-glTexGenxOESFunPtr = unsafePerformIO (getProcAddress "glTexGenxOES")
-
-{-# NOINLINE glTexGenxOESFunPtr #-}
-
--- | Usage: @'glTexGenxvOES' coord pname params@
---
--- The length of @params@ should be @COMPSIZE(pname)@.
-
-
-glTexGenxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
-glTexGenxvOES = ffienumenumPtrfixedIOV glTexGenxvOESFunPtr
-
-glTexGenxvOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
-glTexGenxvOESFunPtr = unsafePerformIO (getProcAddress "glTexGenxvOES")
-
-{-# NOINLINE glTexGenxvOESFunPtr #-}
-
-pattern GL_DEPTH_COMPONENT16_OES = 0x81A5
-
-pattern GL_RGB565_OES = 0x8D62
-
-pattern GL_RGB5_A1_OES = 0x8057
-
-pattern GL_RGBA4_OES = 0x8056
-
-pattern GL_RGB8_OES = 0x8051
-
-pattern GL_RGBA8_OES = 0x8058
-
-pattern GL_STENCIL_INDEX8_OES = 0x8D48
+pattern GL_2D  :: (Eq a, Num a) => a
+
+pattern GL_2D = 0x0600
+
+pattern GL_2_BYTES  :: (Eq a, Num a) => a
+
+pattern GL_2_BYTES = 0x1407
+
+pattern GL_3D  :: (Eq a, Num a) => a
+
+pattern GL_3D = 0x0601
+
+pattern GL_3D_COLOR  :: (Eq a, Num a) => a
+
+pattern GL_3D_COLOR = 0x0602
+
+pattern GL_3D_COLOR_TEXTURE  :: (Eq a, Num a) => a
+
+pattern GL_3D_COLOR_TEXTURE = 0x0603
+
+pattern GL_3_BYTES  :: (Eq a, Num a) => a
+
+pattern GL_3_BYTES = 0x1408
+
+pattern GL_4D_COLOR_TEXTURE  :: (Eq a, Num a) => a
+
+pattern GL_4D_COLOR_TEXTURE = 0x0604
+
+pattern GL_4_BYTES  :: (Eq a, Num a) => a
+
+pattern GL_4_BYTES = 0x1409
+
+pattern GL_ACCUM  :: (Eq a, Num a) => a
+
+pattern GL_ACCUM = 0x0100
+
+pattern GL_ACCUM_ALPHA_BITS  :: (Eq a, Num a) => a
+
+pattern GL_ACCUM_ALPHA_BITS = 0x0D5B
+
+pattern GL_ACCUM_BLUE_BITS  :: (Eq a, Num a) => a
+
+pattern GL_ACCUM_BLUE_BITS = 0x0D5A
+
+pattern GL_ACCUM_BUFFER_BIT  :: (Eq a, Num a) => a
+
+pattern GL_ACCUM_BUFFER_BIT = 0x00000200
+
+pattern GL_ACCUM_CLEAR_VALUE  :: (Eq a, Num a) => a
+
+pattern GL_ACCUM_CLEAR_VALUE = 0x0B80
+
+pattern GL_ACCUM_GREEN_BITS  :: (Eq a, Num a) => a
+
+pattern GL_ACCUM_GREEN_BITS = 0x0D59
+
+pattern GL_ACCUM_RED_BITS  :: (Eq a, Num a) => a
+
+pattern GL_ACCUM_RED_BITS = 0x0D58
+
+pattern GL_ADD  :: (Eq a, Num a) => a
+
+pattern GL_ADD = 0x0104
+
+pattern GL_ADD_SIGNED  :: (Eq a, Num a) => a
+
+pattern GL_ADD_SIGNED = 0x8574
+
+pattern GL_ALIASED_POINT_SIZE_RANGE  :: (Eq a, Num a) => a
+
+pattern GL_ALIASED_POINT_SIZE_RANGE = 0x846D
+
+pattern GL_ALL_ATTRIB_BITS  :: (Eq a, Num a) => a
+
+pattern GL_ALL_ATTRIB_BITS = 0xFFFFFFFF
+
+pattern GL_ALPHA12  :: (Eq a, Num a) => a
+
+pattern GL_ALPHA12 = 0x803D
+
+pattern GL_ALPHA16  :: (Eq a, Num a) => a
+
+pattern GL_ALPHA16 = 0x803E
+
+pattern GL_ALPHA4  :: (Eq a, Num a) => a
+
+pattern GL_ALPHA4 = 0x803B
+
+pattern GL_ALPHA8  :: (Eq a, Num a) => a
+
+pattern GL_ALPHA8 = 0x803C
+
+pattern GL_ALPHA_BIAS  :: (Eq a, Num a) => a
+
+pattern GL_ALPHA_BIAS = 0x0D1D
+
+pattern GL_ALPHA_BITS  :: (Eq a, Num a) => a
+
+pattern GL_ALPHA_BITS = 0x0D55
+
+pattern GL_ALPHA_INTEGER  :: (Eq a, Num a) => a
+
+pattern GL_ALPHA_INTEGER = 0x8D97
+
+pattern GL_ALPHA_SCALE  :: (Eq a, Num a) => a
+
+pattern GL_ALPHA_SCALE = 0x0D1C
+
+pattern GL_ALPHA_TEST  :: (Eq a, Num a) => a
+
+pattern GL_ALPHA_TEST = 0x0BC0
+
+pattern GL_ALPHA_TEST_FUNC  :: (Eq a, Num a) => a
+
+pattern GL_ALPHA_TEST_FUNC = 0x0BC1
+
+pattern GL_ALPHA_TEST_REF  :: (Eq a, Num a) => a
+
+pattern GL_ALPHA_TEST_REF = 0x0BC2
+
+pattern GL_AMBIENT  :: (Eq a, Num a) => a
+
+pattern GL_AMBIENT = 0x1200
+
+pattern GL_AMBIENT_AND_DIFFUSE  :: (Eq a, Num a) => a
+
+pattern GL_AMBIENT_AND_DIFFUSE = 0x1602
+
+pattern GL_ATTRIB_STACK_DEPTH  :: (Eq a, Num a) => a
+
+pattern GL_ATTRIB_STACK_DEPTH = 0x0BB0
+
+pattern GL_AUTO_NORMAL  :: (Eq a, Num a) => a
+
+pattern GL_AUTO_NORMAL = 0x0D80
+
+pattern GL_AUX0  :: (Eq a, Num a) => a
+
+pattern GL_AUX0 = 0x0409
+
+pattern GL_AUX1  :: (Eq a, Num a) => a
+
+pattern GL_AUX1 = 0x040A
+
+pattern GL_AUX2  :: (Eq a, Num a) => a
+
+pattern GL_AUX2 = 0x040B
+
+pattern GL_AUX3  :: (Eq a, Num a) => a
+
+pattern GL_AUX3 = 0x040C
+
+pattern GL_AUX_BUFFERS  :: (Eq a, Num a) => a
+
+pattern GL_AUX_BUFFERS = 0x0C00
+
+pattern GL_BITMAP  :: (Eq a, Num a) => a
+
+pattern GL_BITMAP = 0x1A00
+
+pattern GL_BITMAP_TOKEN  :: (Eq a, Num a) => a
+
+pattern GL_BITMAP_TOKEN = 0x0704
+
+pattern GL_BLUE_BIAS  :: (Eq a, Num a) => a
+
+pattern GL_BLUE_BIAS = 0x0D1B
+
+pattern GL_BLUE_BITS  :: (Eq a, Num a) => a
+
+pattern GL_BLUE_BITS = 0x0D54
+
+pattern GL_BLUE_SCALE  :: (Eq a, Num a) => a
+
+pattern GL_BLUE_SCALE = 0x0D1A
+
+pattern GL_C3F_V3F  :: (Eq a, Num a) => a
+
+pattern GL_C3F_V3F = 0x2A24
+
+pattern GL_C4F_N3F_V3F  :: (Eq a, Num a) => a
+
+pattern GL_C4F_N3F_V3F = 0x2A26
+
+pattern GL_C4UB_V2F  :: (Eq a, Num a) => a
+
+pattern GL_C4UB_V2F = 0x2A22
+
+pattern GL_C4UB_V3F  :: (Eq a, Num a) => a
+
+pattern GL_C4UB_V3F = 0x2A23
+
+pattern GL_CLAMP  :: (Eq a, Num a) => a
+
+pattern GL_CLAMP = 0x2900
+
+pattern GL_CLAMP_FRAGMENT_COLOR  :: (Eq a, Num a) => a
+
+pattern GL_CLAMP_FRAGMENT_COLOR = 0x891B
+
+pattern GL_CLAMP_VERTEX_COLOR  :: (Eq a, Num a) => a
+
+pattern GL_CLAMP_VERTEX_COLOR = 0x891A
+
+pattern GL_CLIENT_ACTIVE_TEXTURE  :: (Eq a, Num a) => a
+
+pattern GL_CLIENT_ACTIVE_TEXTURE = 0x84E1
+
+pattern GL_CLIENT_ALL_ATTRIB_BITS  :: (Eq a, Num a) => a
+
+pattern GL_CLIENT_ALL_ATTRIB_BITS = 0xFFFFFFFF
+
+pattern GL_CLIENT_ATTRIB_STACK_DEPTH  :: (Eq a, Num a) => a
+
+pattern GL_CLIENT_ATTRIB_STACK_DEPTH = 0x0BB1
+
+pattern GL_CLIENT_PIXEL_STORE_BIT  :: (Eq a, Num a) => a
+
+pattern GL_CLIENT_PIXEL_STORE_BIT = 0x00000001
+
+pattern GL_CLIENT_VERTEX_ARRAY_BIT  :: (Eq a, Num a) => a
+
+pattern GL_CLIENT_VERTEX_ARRAY_BIT = 0x00000002
+
+pattern GL_CLIP_PLANE0  :: (Eq a, Num a) => a
+
+pattern GL_CLIP_PLANE0 = 0x3000
+
+pattern GL_CLIP_PLANE1  :: (Eq a, Num a) => a
+
+pattern GL_CLIP_PLANE1 = 0x3001
+
+pattern GL_CLIP_PLANE2  :: (Eq a, Num a) => a
+
+pattern GL_CLIP_PLANE2 = 0x3002
+
+pattern GL_CLIP_PLANE3  :: (Eq a, Num a) => a
+
+pattern GL_CLIP_PLANE3 = 0x3003
+
+pattern GL_CLIP_PLANE4  :: (Eq a, Num a) => a
+
+pattern GL_CLIP_PLANE4 = 0x3004
+
+pattern GL_CLIP_PLANE5  :: (Eq a, Num a) => a
+
+pattern GL_CLIP_PLANE5 = 0x3005
+
+pattern GL_COEFF  :: (Eq a, Num a) => a
+
+pattern GL_COEFF = 0x0A00
+
+pattern GL_COLOR_ARRAY  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ARRAY = 0x8076
+
+pattern GL_COLOR_ARRAY_BUFFER_BINDING  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ARRAY_BUFFER_BINDING = 0x8898
+
+pattern GL_COLOR_ARRAY_POINTER  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ARRAY_POINTER = 0x8090
+
+pattern GL_COLOR_ARRAY_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ARRAY_SIZE = 0x8081
+
+pattern GL_COLOR_ARRAY_STRIDE  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ARRAY_STRIDE = 0x8083
+
+pattern GL_COLOR_ARRAY_TYPE  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ARRAY_TYPE = 0x8082
+
+pattern GL_COLOR_INDEX  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_INDEX = 0x1900
+
+pattern GL_COLOR_INDEXES  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_INDEXES = 0x1603
+
+pattern GL_COLOR_MATERIAL  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_MATERIAL = 0x0B57
+
+pattern GL_COLOR_MATERIAL_FACE  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_MATERIAL_FACE = 0x0B55
+
+pattern GL_COLOR_MATERIAL_PARAMETER  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_MATERIAL_PARAMETER = 0x0B56
+
+pattern GL_COLOR_SUM  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_SUM = 0x8458
+
+pattern GL_COMBINE  :: (Eq a, Num a) => a
+
+pattern GL_COMBINE = 0x8570
+
+pattern GL_COMBINE_ALPHA  :: (Eq a, Num a) => a
+
+pattern GL_COMBINE_ALPHA = 0x8572
+
+pattern GL_COMBINE_RGB  :: (Eq a, Num a) => a
+
+pattern GL_COMBINE_RGB = 0x8571
+
+pattern GL_COMPARE_R_TO_TEXTURE  :: (Eq a, Num a) => a
+
+pattern GL_COMPARE_R_TO_TEXTURE = 0x884E
+
+pattern GL_COMPILE  :: (Eq a, Num a) => a
+
+pattern GL_COMPILE = 0x1300
+
+pattern GL_COMPILE_AND_EXECUTE  :: (Eq a, Num a) => a
+
+pattern GL_COMPILE_AND_EXECUTE = 0x1301
+
+pattern GL_COMPRESSED_ALPHA  :: (Eq a, Num a) => a
+
+pattern GL_COMPRESSED_ALPHA = 0x84E9
+
+pattern GL_COMPRESSED_INTENSITY  :: (Eq a, Num a) => a
+
+pattern GL_COMPRESSED_INTENSITY = 0x84EC
+
+pattern GL_COMPRESSED_LUMINANCE  :: (Eq a, Num a) => a
+
+pattern GL_COMPRESSED_LUMINANCE = 0x84EA
+
+pattern GL_COMPRESSED_LUMINANCE_ALPHA  :: (Eq a, Num a) => a
+
+pattern GL_COMPRESSED_LUMINANCE_ALPHA = 0x84EB
+
+pattern GL_COMPRESSED_SLUMINANCE  :: (Eq a, Num a) => a
+
+pattern GL_COMPRESSED_SLUMINANCE = 0x8C4A
+
+pattern GL_COMPRESSED_SLUMINANCE_ALPHA  :: (Eq a, Num a) => a
+
+pattern GL_COMPRESSED_SLUMINANCE_ALPHA = 0x8C4B
+
+pattern GL_CONSTANT  :: (Eq a, Num a) => a
+
+pattern GL_CONSTANT = 0x8576
+
+pattern GL_CONSTANT_ATTENUATION  :: (Eq a, Num a) => a
+
+pattern GL_CONSTANT_ATTENUATION = 0x1207
+
+pattern GL_COORD_REPLACE  :: (Eq a, Num a) => a
+
+pattern GL_COORD_REPLACE = 0x8862
+
+pattern GL_COPY_PIXEL_TOKEN  :: (Eq a, Num a) => a
+
+pattern GL_COPY_PIXEL_TOKEN = 0x0706
+
+pattern GL_CURRENT_BIT  :: (Eq a, Num a) => a
+
+pattern GL_CURRENT_BIT = 0x00000001
+
+pattern GL_CURRENT_COLOR  :: (Eq a, Num a) => a
+
+pattern GL_CURRENT_COLOR = 0x0B00
+
+pattern GL_CURRENT_FOG_COORD  :: (Eq a, Num a) => a
+
+pattern GL_CURRENT_FOG_COORD = 0x8453
+
+pattern GL_CURRENT_FOG_COORDINATE  :: (Eq a, Num a) => a
+
+pattern GL_CURRENT_FOG_COORDINATE = 0x8453
+
+pattern GL_CURRENT_INDEX  :: (Eq a, Num a) => a
+
+pattern GL_CURRENT_INDEX = 0x0B01
+
+pattern GL_CURRENT_NORMAL  :: (Eq a, Num a) => a
+
+pattern GL_CURRENT_NORMAL = 0x0B02
+
+pattern GL_CURRENT_RASTER_COLOR  :: (Eq a, Num a) => a
+
+pattern GL_CURRENT_RASTER_COLOR = 0x0B04
+
+pattern GL_CURRENT_RASTER_DISTANCE  :: (Eq a, Num a) => a
+
+pattern GL_CURRENT_RASTER_DISTANCE = 0x0B09
+
+pattern GL_CURRENT_RASTER_INDEX  :: (Eq a, Num a) => a
+
+pattern GL_CURRENT_RASTER_INDEX = 0x0B05
+
+pattern GL_CURRENT_RASTER_POSITION  :: (Eq a, Num a) => a
+
+pattern GL_CURRENT_RASTER_POSITION = 0x0B07
+
+pattern GL_CURRENT_RASTER_POSITION_VALID  :: (Eq a, Num a) => a
+
+pattern GL_CURRENT_RASTER_POSITION_VALID = 0x0B08
+
+pattern GL_CURRENT_RASTER_SECONDARY_COLOR  :: (Eq a, Num a) => a
+
+pattern GL_CURRENT_RASTER_SECONDARY_COLOR = 0x845F
+
+pattern GL_CURRENT_RASTER_TEXTURE_COORDS  :: (Eq a, Num a) => a
+
+pattern GL_CURRENT_RASTER_TEXTURE_COORDS = 0x0B06
+
+pattern GL_CURRENT_SECONDARY_COLOR  :: (Eq a, Num a) => a
+
+pattern GL_CURRENT_SECONDARY_COLOR = 0x8459
+
+pattern GL_CURRENT_TEXTURE_COORDS  :: (Eq a, Num a) => a
+
+pattern GL_CURRENT_TEXTURE_COORDS = 0x0B03
+
+pattern GL_DECAL  :: (Eq a, Num a) => a
+
+pattern GL_DECAL = 0x2101
+
+pattern GL_DEPTH_BIAS  :: (Eq a, Num a) => a
+
+pattern GL_DEPTH_BIAS = 0x0D1F
+
+pattern GL_DEPTH_BITS  :: (Eq a, Num a) => a
+
+pattern GL_DEPTH_BITS = 0x0D56
+
+pattern GL_DEPTH_SCALE  :: (Eq a, Num a) => a
+
+pattern GL_DEPTH_SCALE = 0x0D1E
+
+pattern GL_DEPTH_TEXTURE_MODE  :: (Eq a, Num a) => a
+
+pattern GL_DEPTH_TEXTURE_MODE = 0x884B
+
+pattern GL_DIFFUSE  :: (Eq a, Num a) => a
+
+pattern GL_DIFFUSE = 0x1201
+
+pattern GL_DOMAIN  :: (Eq a, Num a) => a
+
+pattern GL_DOMAIN = 0x0A02
+
+pattern GL_DOT3_RGB  :: (Eq a, Num a) => a
+
+pattern GL_DOT3_RGB = 0x86AE
+
+pattern GL_DOT3_RGBA  :: (Eq a, Num a) => a
+
+pattern GL_DOT3_RGBA = 0x86AF
+
+pattern GL_DRAW_PIXEL_TOKEN  :: (Eq a, Num a) => a
+
+pattern GL_DRAW_PIXEL_TOKEN = 0x0705
+
+pattern GL_EDGE_FLAG  :: (Eq a, Num a) => a
+
+pattern GL_EDGE_FLAG = 0x0B43
+
+pattern GL_EDGE_FLAG_ARRAY  :: (Eq a, Num a) => a
+
+pattern GL_EDGE_FLAG_ARRAY = 0x8079
+
+pattern GL_EDGE_FLAG_ARRAY_BUFFER_BINDING  :: (Eq a, Num a) => a
+
+pattern GL_EDGE_FLAG_ARRAY_BUFFER_BINDING = 0x889B
+
+pattern GL_EDGE_FLAG_ARRAY_POINTER  :: (Eq a, Num a) => a
+
+pattern GL_EDGE_FLAG_ARRAY_POINTER = 0x8093
+
+pattern GL_EDGE_FLAG_ARRAY_STRIDE  :: (Eq a, Num a) => a
+
+pattern GL_EDGE_FLAG_ARRAY_STRIDE = 0x808C
+
+pattern GL_EMISSION  :: (Eq a, Num a) => a
+
+pattern GL_EMISSION = 0x1600
+
+pattern GL_ENABLE_BIT  :: (Eq a, Num a) => a
+
+pattern GL_ENABLE_BIT = 0x00002000
+
+pattern GL_EVAL_BIT  :: (Eq a, Num a) => a
+
+pattern GL_EVAL_BIT = 0x00010000
+
+pattern GL_EXP  :: (Eq a, Num a) => a
+
+pattern GL_EXP = 0x0800
+
+pattern GL_EXP2  :: (Eq a, Num a) => a
+
+pattern GL_EXP2 = 0x0801
+
+pattern GL_EYE_LINEAR  :: (Eq a, Num a) => a
+
+pattern GL_EYE_LINEAR = 0x2400
+
+pattern GL_EYE_PLANE  :: (Eq a, Num a) => a
+
+pattern GL_EYE_PLANE = 0x2502
+
+pattern GL_FEEDBACK  :: (Eq a, Num a) => a
+
+pattern GL_FEEDBACK = 0x1C01
+
+pattern GL_FEEDBACK_BUFFER_POINTER  :: (Eq a, Num a) => a
+
+pattern GL_FEEDBACK_BUFFER_POINTER = 0x0DF0
+
+pattern GL_FEEDBACK_BUFFER_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_FEEDBACK_BUFFER_SIZE = 0x0DF1
+
+pattern GL_FEEDBACK_BUFFER_TYPE  :: (Eq a, Num a) => a
+
+pattern GL_FEEDBACK_BUFFER_TYPE = 0x0DF2
+
+pattern GL_FLAT  :: (Eq a, Num a) => a
+
+pattern GL_FLAT = 0x1D00
+
+pattern GL_FOG  :: (Eq a, Num a) => a
+
+pattern GL_FOG = 0x0B60
+
+pattern GL_FOG_BIT  :: (Eq a, Num a) => a
+
+pattern GL_FOG_BIT = 0x00000080
+
+pattern GL_FOG_COLOR  :: (Eq a, Num a) => a
+
+pattern GL_FOG_COLOR = 0x0B66
+
+pattern GL_FOG_COORD  :: (Eq a, Num a) => a
+
+pattern GL_FOG_COORD = 0x8451
+
+pattern GL_FOG_COORDINATE  :: (Eq a, Num a) => a
+
+pattern GL_FOG_COORDINATE = 0x8451
+
+pattern GL_FOG_COORDINATE_ARRAY  :: (Eq a, Num a) => a
+
+pattern GL_FOG_COORDINATE_ARRAY = 0x8457
+
+pattern GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING  :: (Eq a, Num a) => a
+
+pattern GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING = 0x889D
+
+pattern GL_FOG_COORDINATE_ARRAY_POINTER  :: (Eq a, Num a) => a
+
+pattern GL_FOG_COORDINATE_ARRAY_POINTER = 0x8456
+
+pattern GL_FOG_COORDINATE_ARRAY_STRIDE  :: (Eq a, Num a) => a
+
+pattern GL_FOG_COORDINATE_ARRAY_STRIDE = 0x8455
+
+pattern GL_FOG_COORDINATE_ARRAY_TYPE  :: (Eq a, Num a) => a
+
+pattern GL_FOG_COORDINATE_ARRAY_TYPE = 0x8454
+
+pattern GL_FOG_COORDINATE_SOURCE  :: (Eq a, Num a) => a
+
+pattern GL_FOG_COORDINATE_SOURCE = 0x8450
+
+pattern GL_FOG_COORD_ARRAY  :: (Eq a, Num a) => a
+
+pattern GL_FOG_COORD_ARRAY = 0x8457
+
+pattern GL_FOG_COORD_ARRAY_BUFFER_BINDING  :: (Eq a, Num a) => a
+
+pattern GL_FOG_COORD_ARRAY_BUFFER_BINDING = 0x889D
+
+pattern GL_FOG_COORD_ARRAY_POINTER  :: (Eq a, Num a) => a
+
+pattern GL_FOG_COORD_ARRAY_POINTER = 0x8456
+
+pattern GL_FOG_COORD_ARRAY_STRIDE  :: (Eq a, Num a) => a
+
+pattern GL_FOG_COORD_ARRAY_STRIDE = 0x8455
+
+pattern GL_FOG_COORD_ARRAY_TYPE  :: (Eq a, Num a) => a
+
+pattern GL_FOG_COORD_ARRAY_TYPE = 0x8454
+
+pattern GL_FOG_COORD_SRC  :: (Eq a, Num a) => a
+
+pattern GL_FOG_COORD_SRC = 0x8450
+
+pattern GL_FOG_DENSITY  :: (Eq a, Num a) => a
+
+pattern GL_FOG_DENSITY = 0x0B62
+
+pattern GL_FOG_END  :: (Eq a, Num a) => a
+
+pattern GL_FOG_END = 0x0B64
+
+pattern GL_FOG_HINT  :: (Eq a, Num a) => a
+
+pattern GL_FOG_HINT = 0x0C54
+
+pattern GL_FOG_INDEX  :: (Eq a, Num a) => a
+
+pattern GL_FOG_INDEX = 0x0B61
+
+pattern GL_FOG_MODE  :: (Eq a, Num a) => a
+
+pattern GL_FOG_MODE = 0x0B65
+
+pattern GL_FOG_START  :: (Eq a, Num a) => a
+
+pattern GL_FOG_START = 0x0B63
+
+pattern GL_FRAGMENT_DEPTH  :: (Eq a, Num a) => a
+
+pattern GL_FRAGMENT_DEPTH = 0x8452
+
+pattern GL_GENERATE_MIPMAP  :: (Eq a, Num a) => a
+
+pattern GL_GENERATE_MIPMAP = 0x8191
+
+pattern GL_GENERATE_MIPMAP_HINT  :: (Eq a, Num a) => a
+
+pattern GL_GENERATE_MIPMAP_HINT = 0x8192
+
+pattern GL_GREEN_BIAS  :: (Eq a, Num a) => a
+
+pattern GL_GREEN_BIAS = 0x0D19
+
+pattern GL_GREEN_BITS  :: (Eq a, Num a) => a
+
+pattern GL_GREEN_BITS = 0x0D53
+
+pattern GL_GREEN_SCALE  :: (Eq a, Num a) => a
+
+pattern GL_GREEN_SCALE = 0x0D18
+
+pattern GL_HINT_BIT  :: (Eq a, Num a) => a
+
+pattern GL_HINT_BIT = 0x00008000
+
+pattern GL_INDEX_ARRAY  :: (Eq a, Num a) => a
+
+pattern GL_INDEX_ARRAY = 0x8077
+
+pattern GL_INDEX_ARRAY_BUFFER_BINDING  :: (Eq a, Num a) => a
+
+pattern GL_INDEX_ARRAY_BUFFER_BINDING = 0x8899
+
+pattern GL_INDEX_ARRAY_POINTER  :: (Eq a, Num a) => a
+
+pattern GL_INDEX_ARRAY_POINTER = 0x8091
+
+pattern GL_INDEX_ARRAY_STRIDE  :: (Eq a, Num a) => a
+
+pattern GL_INDEX_ARRAY_STRIDE = 0x8086
+
+pattern GL_INDEX_ARRAY_TYPE  :: (Eq a, Num a) => a
+
+pattern GL_INDEX_ARRAY_TYPE = 0x8085
+
+pattern GL_INDEX_BITS  :: (Eq a, Num a) => a
+
+pattern GL_INDEX_BITS = 0x0D51
+
+pattern GL_INDEX_CLEAR_VALUE  :: (Eq a, Num a) => a
+
+pattern GL_INDEX_CLEAR_VALUE = 0x0C20
+
+pattern GL_INDEX_LOGIC_OP  :: (Eq a, Num a) => a
+
+pattern GL_INDEX_LOGIC_OP = 0x0BF1
+
+pattern GL_INDEX_MODE  :: (Eq a, Num a) => a
+
+pattern GL_INDEX_MODE = 0x0C30
+
+pattern GL_INDEX_OFFSET  :: (Eq a, Num a) => a
+
+pattern GL_INDEX_OFFSET = 0x0D13
+
+pattern GL_INDEX_SHIFT  :: (Eq a, Num a) => a
+
+pattern GL_INDEX_SHIFT = 0x0D12
+
+pattern GL_INDEX_WRITEMASK  :: (Eq a, Num a) => a
+
+pattern GL_INDEX_WRITEMASK = 0x0C21
+
+pattern GL_INTENSITY  :: (Eq a, Num a) => a
+
+pattern GL_INTENSITY = 0x8049
+
+pattern GL_INTENSITY12  :: (Eq a, Num a) => a
+
+pattern GL_INTENSITY12 = 0x804C
+
+pattern GL_INTENSITY16  :: (Eq a, Num a) => a
+
+pattern GL_INTENSITY16 = 0x804D
+
+pattern GL_INTENSITY4  :: (Eq a, Num a) => a
+
+pattern GL_INTENSITY4 = 0x804A
+
+pattern GL_INTENSITY8  :: (Eq a, Num a) => a
+
+pattern GL_INTENSITY8 = 0x804B
+
+pattern GL_INTERPOLATE  :: (Eq a, Num a) => a
+
+pattern GL_INTERPOLATE = 0x8575
+
+pattern GL_LIGHT0  :: (Eq a, Num a) => a
+
+pattern GL_LIGHT0 = 0x4000
+
+pattern GL_LIGHT1  :: (Eq a, Num a) => a
+
+pattern GL_LIGHT1 = 0x4001
+
+pattern GL_LIGHT2  :: (Eq a, Num a) => a
+
+pattern GL_LIGHT2 = 0x4002
+
+pattern GL_LIGHT3  :: (Eq a, Num a) => a
+
+pattern GL_LIGHT3 = 0x4003
+
+pattern GL_LIGHT4  :: (Eq a, Num a) => a
+
+pattern GL_LIGHT4 = 0x4004
+
+pattern GL_LIGHT5  :: (Eq a, Num a) => a
+
+pattern GL_LIGHT5 = 0x4005
+
+pattern GL_LIGHT6  :: (Eq a, Num a) => a
+
+pattern GL_LIGHT6 = 0x4006
+
+pattern GL_LIGHT7  :: (Eq a, Num a) => a
+
+pattern GL_LIGHT7 = 0x4007
+
+pattern GL_LIGHTING  :: (Eq a, Num a) => a
+
+pattern GL_LIGHTING = 0x0B50
+
+pattern GL_LIGHTING_BIT  :: (Eq a, Num a) => a
+
+pattern GL_LIGHTING_BIT = 0x00000040
+
+pattern GL_LIGHT_MODEL_AMBIENT  :: (Eq a, Num a) => a
+
+pattern GL_LIGHT_MODEL_AMBIENT = 0x0B53
+
+pattern GL_LIGHT_MODEL_COLOR_CONTROL  :: (Eq a, Num a) => a
+
+pattern GL_LIGHT_MODEL_COLOR_CONTROL = 0x81F8
+
+pattern GL_LIGHT_MODEL_LOCAL_VIEWER  :: (Eq a, Num a) => a
+
+pattern GL_LIGHT_MODEL_LOCAL_VIEWER = 0x0B51
+
+pattern GL_LIGHT_MODEL_TWO_SIDE  :: (Eq a, Num a) => a
+
+pattern GL_LIGHT_MODEL_TWO_SIDE = 0x0B52
+
+pattern GL_LINEAR_ATTENUATION  :: (Eq a, Num a) => a
+
+pattern GL_LINEAR_ATTENUATION = 0x1208
+
+pattern GL_LINE_BIT  :: (Eq a, Num a) => a
+
+pattern GL_LINE_BIT = 0x00000004
+
+pattern GL_LINE_RESET_TOKEN  :: (Eq a, Num a) => a
+
+pattern GL_LINE_RESET_TOKEN = 0x0707
+
+pattern GL_LINE_STIPPLE  :: (Eq a, Num a) => a
+
+pattern GL_LINE_STIPPLE = 0x0B24
+
+pattern GL_LINE_STIPPLE_PATTERN  :: (Eq a, Num a) => a
+
+pattern GL_LINE_STIPPLE_PATTERN = 0x0B25
+
+pattern GL_LINE_STIPPLE_REPEAT  :: (Eq a, Num a) => a
+
+pattern GL_LINE_STIPPLE_REPEAT = 0x0B26
+
+pattern GL_LINE_TOKEN  :: (Eq a, Num a) => a
+
+pattern GL_LINE_TOKEN = 0x0702
+
+pattern GL_LIST_BASE  :: (Eq a, Num a) => a
+
+pattern GL_LIST_BASE = 0x0B32
+
+pattern GL_LIST_BIT  :: (Eq a, Num a) => a
+
+pattern GL_LIST_BIT = 0x00020000
+
+pattern GL_LIST_INDEX  :: (Eq a, Num a) => a
+
+pattern GL_LIST_INDEX = 0x0B33
+
+pattern GL_LIST_MODE  :: (Eq a, Num a) => a
+
+pattern GL_LIST_MODE = 0x0B30
+
+pattern GL_LOAD  :: (Eq a, Num a) => a
+
+pattern GL_LOAD = 0x0101
+
+pattern GL_LOGIC_OP  :: (Eq a, Num a) => a
+
+pattern GL_LOGIC_OP = 0x0BF1
+
+pattern GL_LUMINANCE  :: (Eq a, Num a) => a
+
+pattern GL_LUMINANCE = 0x1909
+
+pattern GL_LUMINANCE12  :: (Eq a, Num a) => a
+
+pattern GL_LUMINANCE12 = 0x8041
+
+pattern GL_LUMINANCE12_ALPHA12  :: (Eq a, Num a) => a
+
+pattern GL_LUMINANCE12_ALPHA12 = 0x8047
+
+pattern GL_LUMINANCE12_ALPHA4  :: (Eq a, Num a) => a
+
+pattern GL_LUMINANCE12_ALPHA4 = 0x8046
+
+pattern GL_LUMINANCE16  :: (Eq a, Num a) => a
+
+pattern GL_LUMINANCE16 = 0x8042
+
+pattern GL_LUMINANCE16_ALPHA16  :: (Eq a, Num a) => a
+
+pattern GL_LUMINANCE16_ALPHA16 = 0x8048
+
+pattern GL_LUMINANCE4  :: (Eq a, Num a) => a
+
+pattern GL_LUMINANCE4 = 0x803F
+
+pattern GL_LUMINANCE4_ALPHA4  :: (Eq a, Num a) => a
+
+pattern GL_LUMINANCE4_ALPHA4 = 0x8043
+
+pattern GL_LUMINANCE6_ALPHA2  :: (Eq a, Num a) => a
+
+pattern GL_LUMINANCE6_ALPHA2 = 0x8044
+
+pattern GL_LUMINANCE8  :: (Eq a, Num a) => a
+
+pattern GL_LUMINANCE8 = 0x8040
+
+pattern GL_LUMINANCE8_ALPHA8  :: (Eq a, Num a) => a
+
+pattern GL_LUMINANCE8_ALPHA8 = 0x8045
+
+pattern GL_LUMINANCE_ALPHA  :: (Eq a, Num a) => a
+
+pattern GL_LUMINANCE_ALPHA = 0x190A
+
+pattern GL_MAP1_COLOR_4  :: (Eq a, Num a) => a
+
+pattern GL_MAP1_COLOR_4 = 0x0D90
+
+pattern GL_MAP1_GRID_DOMAIN  :: (Eq a, Num a) => a
+
+pattern GL_MAP1_GRID_DOMAIN = 0x0DD0
+
+pattern GL_MAP1_GRID_SEGMENTS  :: (Eq a, Num a) => a
+
+pattern GL_MAP1_GRID_SEGMENTS = 0x0DD1
+
+pattern GL_MAP1_INDEX  :: (Eq a, Num a) => a
+
+pattern GL_MAP1_INDEX = 0x0D91
+
+pattern GL_MAP1_NORMAL  :: (Eq a, Num a) => a
+
+pattern GL_MAP1_NORMAL = 0x0D92
+
+pattern GL_MAP1_TEXTURE_COORD_1  :: (Eq a, Num a) => a
+
+pattern GL_MAP1_TEXTURE_COORD_1 = 0x0D93
+
+pattern GL_MAP1_TEXTURE_COORD_2  :: (Eq a, Num a) => a
+
+pattern GL_MAP1_TEXTURE_COORD_2 = 0x0D94
+
+pattern GL_MAP1_TEXTURE_COORD_3  :: (Eq a, Num a) => a
+
+pattern GL_MAP1_TEXTURE_COORD_3 = 0x0D95
+
+pattern GL_MAP1_TEXTURE_COORD_4  :: (Eq a, Num a) => a
+
+pattern GL_MAP1_TEXTURE_COORD_4 = 0x0D96
+
+pattern GL_MAP1_VERTEX_3  :: (Eq a, Num a) => a
+
+pattern GL_MAP1_VERTEX_3 = 0x0D97
+
+pattern GL_MAP1_VERTEX_4  :: (Eq a, Num a) => a
+
+pattern GL_MAP1_VERTEX_4 = 0x0D98
+
+pattern GL_MAP2_COLOR_4  :: (Eq a, Num a) => a
+
+pattern GL_MAP2_COLOR_4 = 0x0DB0
+
+pattern GL_MAP2_GRID_DOMAIN  :: (Eq a, Num a) => a
+
+pattern GL_MAP2_GRID_DOMAIN = 0x0DD2
+
+pattern GL_MAP2_GRID_SEGMENTS  :: (Eq a, Num a) => a
+
+pattern GL_MAP2_GRID_SEGMENTS = 0x0DD3
+
+pattern GL_MAP2_INDEX  :: (Eq a, Num a) => a
+
+pattern GL_MAP2_INDEX = 0x0DB1
+
+pattern GL_MAP2_NORMAL  :: (Eq a, Num a) => a
+
+pattern GL_MAP2_NORMAL = 0x0DB2
+
+pattern GL_MAP2_TEXTURE_COORD_1  :: (Eq a, Num a) => a
+
+pattern GL_MAP2_TEXTURE_COORD_1 = 0x0DB3
+
+pattern GL_MAP2_TEXTURE_COORD_2  :: (Eq a, Num a) => a
+
+pattern GL_MAP2_TEXTURE_COORD_2 = 0x0DB4
+
+pattern GL_MAP2_TEXTURE_COORD_3  :: (Eq a, Num a) => a
+
+pattern GL_MAP2_TEXTURE_COORD_3 = 0x0DB5
+
+pattern GL_MAP2_TEXTURE_COORD_4  :: (Eq a, Num a) => a
+
+pattern GL_MAP2_TEXTURE_COORD_4 = 0x0DB6
+
+pattern GL_MAP2_VERTEX_3  :: (Eq a, Num a) => a
+
+pattern GL_MAP2_VERTEX_3 = 0x0DB7
+
+pattern GL_MAP2_VERTEX_4  :: (Eq a, Num a) => a
+
+pattern GL_MAP2_VERTEX_4 = 0x0DB8
+
+pattern GL_MAP_COLOR  :: (Eq a, Num a) => a
+
+pattern GL_MAP_COLOR = 0x0D10
+
+pattern GL_MAP_STENCIL  :: (Eq a, Num a) => a
+
+pattern GL_MAP_STENCIL = 0x0D11
+
+pattern GL_MATRIX_MODE  :: (Eq a, Num a) => a
+
+pattern GL_MATRIX_MODE = 0x0BA0
+
+pattern GL_MAX_ATTRIB_STACK_DEPTH  :: (Eq a, Num a) => a
+
+pattern GL_MAX_ATTRIB_STACK_DEPTH = 0x0D35
+
+pattern GL_MAX_CLIENT_ATTRIB_STACK_DEPTH  :: (Eq a, Num a) => a
+
+pattern GL_MAX_CLIENT_ATTRIB_STACK_DEPTH = 0x0D3B
+
+pattern GL_MAX_CLIP_PLANES  :: (Eq a, Num a) => a
+
+pattern GL_MAX_CLIP_PLANES = 0x0D32
+
+pattern GL_MAX_EVAL_ORDER  :: (Eq a, Num a) => a
+
+pattern GL_MAX_EVAL_ORDER = 0x0D30
+
+pattern GL_MAX_LIGHTS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_LIGHTS = 0x0D31
+
+pattern GL_MAX_LIST_NESTING  :: (Eq a, Num a) => a
+
+pattern GL_MAX_LIST_NESTING = 0x0B31
+
+pattern GL_MAX_MODELVIEW_STACK_DEPTH  :: (Eq a, Num a) => a
+
+pattern GL_MAX_MODELVIEW_STACK_DEPTH = 0x0D36
+
+pattern GL_MAX_NAME_STACK_DEPTH  :: (Eq a, Num a) => a
+
+pattern GL_MAX_NAME_STACK_DEPTH = 0x0D37
+
+pattern GL_MAX_PIXEL_MAP_TABLE  :: (Eq a, Num a) => a
+
+pattern GL_MAX_PIXEL_MAP_TABLE = 0x0D34
+
+pattern GL_MAX_PROJECTION_STACK_DEPTH  :: (Eq a, Num a) => a
+
+pattern GL_MAX_PROJECTION_STACK_DEPTH = 0x0D38
+
+pattern GL_MAX_TEXTURE_COORDS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_TEXTURE_COORDS = 0x8871
+
+pattern GL_MAX_TEXTURE_STACK_DEPTH  :: (Eq a, Num a) => a
+
+pattern GL_MAX_TEXTURE_STACK_DEPTH = 0x0D39
+
+pattern GL_MAX_TEXTURE_UNITS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_TEXTURE_UNITS = 0x84E2
+
+pattern GL_MODELVIEW  :: (Eq a, Num a) => a
+
+pattern GL_MODELVIEW = 0x1700
+
+pattern GL_MODELVIEW_MATRIX  :: (Eq a, Num a) => a
+
+pattern GL_MODELVIEW_MATRIX = 0x0BA6
+
+pattern GL_MODELVIEW_STACK_DEPTH  :: (Eq a, Num a) => a
+
+pattern GL_MODELVIEW_STACK_DEPTH = 0x0BA3
+
+pattern GL_MODULATE  :: (Eq a, Num a) => a
+
+pattern GL_MODULATE = 0x2100
+
+pattern GL_MULT  :: (Eq a, Num a) => a
+
+pattern GL_MULT = 0x0103
+
+pattern GL_MULTISAMPLE_BIT  :: (Eq a, Num a) => a
+
+pattern GL_MULTISAMPLE_BIT = 0x20000000
+
+pattern GL_N3F_V3F  :: (Eq a, Num a) => a
+
+pattern GL_N3F_V3F = 0x2A25
+
+pattern GL_NAME_STACK_DEPTH  :: (Eq a, Num a) => a
+
+pattern GL_NAME_STACK_DEPTH = 0x0D70
+
+pattern GL_NORMALIZE  :: (Eq a, Num a) => a
+
+pattern GL_NORMALIZE = 0x0BA1
+
+pattern GL_NORMAL_ARRAY  :: (Eq a, Num a) => a
+
+pattern GL_NORMAL_ARRAY = 0x8075
+
+pattern GL_NORMAL_ARRAY_BUFFER_BINDING  :: (Eq a, Num a) => a
+
+pattern GL_NORMAL_ARRAY_BUFFER_BINDING = 0x8897
+
+pattern GL_NORMAL_ARRAY_POINTER  :: (Eq a, Num a) => a
+
+pattern GL_NORMAL_ARRAY_POINTER = 0x808F
+
+pattern GL_NORMAL_ARRAY_STRIDE  :: (Eq a, Num a) => a
+
+pattern GL_NORMAL_ARRAY_STRIDE = 0x807F
+
+pattern GL_NORMAL_ARRAY_TYPE  :: (Eq a, Num a) => a
+
+pattern GL_NORMAL_ARRAY_TYPE = 0x807E
+
+pattern GL_NORMAL_MAP  :: (Eq a, Num a) => a
+
+pattern GL_NORMAL_MAP = 0x8511
+
+pattern GL_OBJECT_LINEAR  :: (Eq a, Num a) => a
+
+pattern GL_OBJECT_LINEAR = 0x2401
+
+pattern GL_OBJECT_PLANE  :: (Eq a, Num a) => a
+
+pattern GL_OBJECT_PLANE = 0x2501
+
+pattern GL_OPERAND0_ALPHA  :: (Eq a, Num a) => a
+
+pattern GL_OPERAND0_ALPHA = 0x8598
+
+pattern GL_OPERAND0_RGB  :: (Eq a, Num a) => a
+
+pattern GL_OPERAND0_RGB = 0x8590
+
+pattern GL_OPERAND1_ALPHA  :: (Eq a, Num a) => a
+
+pattern GL_OPERAND1_ALPHA = 0x8599
+
+pattern GL_OPERAND1_RGB  :: (Eq a, Num a) => a
+
+pattern GL_OPERAND1_RGB = 0x8591
+
+pattern GL_OPERAND2_ALPHA  :: (Eq a, Num a) => a
+
+pattern GL_OPERAND2_ALPHA = 0x859A
+
+pattern GL_OPERAND2_RGB  :: (Eq a, Num a) => a
+
+pattern GL_OPERAND2_RGB = 0x8592
+
+pattern GL_ORDER  :: (Eq a, Num a) => a
+
+pattern GL_ORDER = 0x0A01
+
+pattern GL_PASS_THROUGH_TOKEN  :: (Eq a, Num a) => a
+
+pattern GL_PASS_THROUGH_TOKEN = 0x0700
+
+pattern GL_PERSPECTIVE_CORRECTION_HINT  :: (Eq a, Num a) => a
+
+pattern GL_PERSPECTIVE_CORRECTION_HINT = 0x0C50
+
+pattern GL_PIXEL_MAP_A_TO_A  :: (Eq a, Num a) => a
+
+pattern GL_PIXEL_MAP_A_TO_A = 0x0C79
+
+pattern GL_PIXEL_MAP_A_TO_A_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_PIXEL_MAP_A_TO_A_SIZE = 0x0CB9
+
+pattern GL_PIXEL_MAP_B_TO_B  :: (Eq a, Num a) => a
+
+pattern GL_PIXEL_MAP_B_TO_B = 0x0C78
+
+pattern GL_PIXEL_MAP_B_TO_B_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_PIXEL_MAP_B_TO_B_SIZE = 0x0CB8
+
+pattern GL_PIXEL_MAP_G_TO_G  :: (Eq a, Num a) => a
+
+pattern GL_PIXEL_MAP_G_TO_G = 0x0C77
+
+pattern GL_PIXEL_MAP_G_TO_G_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_PIXEL_MAP_G_TO_G_SIZE = 0x0CB7
+
+pattern GL_PIXEL_MAP_I_TO_A  :: (Eq a, Num a) => a
+
+pattern GL_PIXEL_MAP_I_TO_A = 0x0C75
+
+pattern GL_PIXEL_MAP_I_TO_A_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_PIXEL_MAP_I_TO_A_SIZE = 0x0CB5
+
+pattern GL_PIXEL_MAP_I_TO_B  :: (Eq a, Num a) => a
+
+pattern GL_PIXEL_MAP_I_TO_B = 0x0C74
+
+pattern GL_PIXEL_MAP_I_TO_B_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_PIXEL_MAP_I_TO_B_SIZE = 0x0CB4
+
+pattern GL_PIXEL_MAP_I_TO_G  :: (Eq a, Num a) => a
+
+pattern GL_PIXEL_MAP_I_TO_G = 0x0C73
+
+pattern GL_PIXEL_MAP_I_TO_G_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_PIXEL_MAP_I_TO_G_SIZE = 0x0CB3
+
+pattern GL_PIXEL_MAP_I_TO_I  :: (Eq a, Num a) => a
+
+pattern GL_PIXEL_MAP_I_TO_I = 0x0C70
+
+pattern GL_PIXEL_MAP_I_TO_I_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_PIXEL_MAP_I_TO_I_SIZE = 0x0CB0
+
+pattern GL_PIXEL_MAP_I_TO_R  :: (Eq a, Num a) => a
+
+pattern GL_PIXEL_MAP_I_TO_R = 0x0C72
+
+pattern GL_PIXEL_MAP_I_TO_R_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_PIXEL_MAP_I_TO_R_SIZE = 0x0CB2
+
+pattern GL_PIXEL_MAP_R_TO_R  :: (Eq a, Num a) => a
+
+pattern GL_PIXEL_MAP_R_TO_R = 0x0C76
+
+pattern GL_PIXEL_MAP_R_TO_R_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_PIXEL_MAP_R_TO_R_SIZE = 0x0CB6
+
+pattern GL_PIXEL_MAP_S_TO_S  :: (Eq a, Num a) => a
+
+pattern GL_PIXEL_MAP_S_TO_S = 0x0C71
+
+pattern GL_PIXEL_MAP_S_TO_S_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_PIXEL_MAP_S_TO_S_SIZE = 0x0CB1
+
+pattern GL_PIXEL_MODE_BIT  :: (Eq a, Num a) => a
+
+pattern GL_PIXEL_MODE_BIT = 0x00000020
+
+pattern GL_POINT_BIT  :: (Eq a, Num a) => a
+
+pattern GL_POINT_BIT = 0x00000002
+
+pattern GL_POINT_DISTANCE_ATTENUATION  :: (Eq a, Num a) => a
+
+pattern GL_POINT_DISTANCE_ATTENUATION = 0x8129
+
+pattern GL_POINT_SIZE_MAX  :: (Eq a, Num a) => a
+
+pattern GL_POINT_SIZE_MAX = 0x8127
+
+pattern GL_POINT_SIZE_MIN  :: (Eq a, Num a) => a
+
+pattern GL_POINT_SIZE_MIN = 0x8126
+
+pattern GL_POINT_SMOOTH  :: (Eq a, Num a) => a
+
+pattern GL_POINT_SMOOTH = 0x0B10
+
+pattern GL_POINT_SMOOTH_HINT  :: (Eq a, Num a) => a
+
+pattern GL_POINT_SMOOTH_HINT = 0x0C51
+
+pattern GL_POINT_SPRITE  :: (Eq a, Num a) => a
+
+pattern GL_POINT_SPRITE = 0x8861
+
+pattern GL_POINT_TOKEN  :: (Eq a, Num a) => a
+
+pattern GL_POINT_TOKEN = 0x0701
+
+pattern GL_POLYGON  :: (Eq a, Num a) => a
+
+pattern GL_POLYGON = 0x0009
+
+pattern GL_POLYGON_BIT  :: (Eq a, Num a) => a
+
+pattern GL_POLYGON_BIT = 0x00000008
+
+pattern GL_POLYGON_STIPPLE  :: (Eq a, Num a) => a
+
+pattern GL_POLYGON_STIPPLE = 0x0B42
+
+pattern GL_POLYGON_STIPPLE_BIT  :: (Eq a, Num a) => a
+
+pattern GL_POLYGON_STIPPLE_BIT = 0x00000010
+
+pattern GL_POLYGON_TOKEN  :: (Eq a, Num a) => a
+
+pattern GL_POLYGON_TOKEN = 0x0703
+
+pattern GL_POSITION  :: (Eq a, Num a) => a
+
+pattern GL_POSITION = 0x1203
+
+pattern GL_PREVIOUS  :: (Eq a, Num a) => a
+
+pattern GL_PREVIOUS = 0x8578
+
+pattern GL_PRIMARY_COLOR  :: (Eq a, Num a) => a
+
+pattern GL_PRIMARY_COLOR = 0x8577
+
+pattern GL_PROJECTION  :: (Eq a, Num a) => a
+
+pattern GL_PROJECTION = 0x1701
+
+pattern GL_PROJECTION_MATRIX  :: (Eq a, Num a) => a
+
+pattern GL_PROJECTION_MATRIX = 0x0BA7
+
+pattern GL_PROJECTION_STACK_DEPTH  :: (Eq a, Num a) => a
+
+pattern GL_PROJECTION_STACK_DEPTH = 0x0BA4
+
+pattern GL_Q  :: (Eq a, Num a) => a
+
+pattern GL_Q = 0x2003
+
+pattern GL_QUADRATIC_ATTENUATION  :: (Eq a, Num a) => a
+
+pattern GL_QUADRATIC_ATTENUATION = 0x1209
+
+pattern GL_QUADS  :: (Eq a, Num a) => a
+
+pattern GL_QUADS = 0x0007
+
+pattern GL_QUAD_STRIP  :: (Eq a, Num a) => a
+
+pattern GL_QUAD_STRIP = 0x0008
+
+pattern GL_R  :: (Eq a, Num a) => a
+
+pattern GL_R = 0x2002
+
+pattern GL_RED_BIAS  :: (Eq a, Num a) => a
+
+pattern GL_RED_BIAS = 0x0D15
+
+pattern GL_RED_BITS  :: (Eq a, Num a) => a
+
+pattern GL_RED_BITS = 0x0D52
+
+pattern GL_RED_SCALE  :: (Eq a, Num a) => a
+
+pattern GL_RED_SCALE = 0x0D14
+
+pattern GL_REFLECTION_MAP  :: (Eq a, Num a) => a
+
+pattern GL_REFLECTION_MAP = 0x8512
+
+pattern GL_RENDER  :: (Eq a, Num a) => a
+
+pattern GL_RENDER = 0x1C00
+
+pattern GL_RENDER_MODE  :: (Eq a, Num a) => a
+
+pattern GL_RENDER_MODE = 0x0C40
+
+pattern GL_RESCALE_NORMAL  :: (Eq a, Num a) => a
+
+pattern GL_RESCALE_NORMAL = 0x803A
+
+pattern GL_RETURN  :: (Eq a, Num a) => a
+
+pattern GL_RETURN = 0x0102
+
+pattern GL_RGBA_MODE  :: (Eq a, Num a) => a
+
+pattern GL_RGBA_MODE = 0x0C31
+
+pattern GL_RGB_SCALE  :: (Eq a, Num a) => a
+
+pattern GL_RGB_SCALE = 0x8573
+
+pattern GL_S  :: (Eq a, Num a) => a
+
+pattern GL_S = 0x2000
+
+pattern GL_SCISSOR_BIT  :: (Eq a, Num a) => a
+
+pattern GL_SCISSOR_BIT = 0x00080000
+
+pattern GL_SECONDARY_COLOR_ARRAY  :: (Eq a, Num a) => a
+
+pattern GL_SECONDARY_COLOR_ARRAY = 0x845E
+
+pattern GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING  :: (Eq a, Num a) => a
+
+pattern GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING = 0x889C
+
+pattern GL_SECONDARY_COLOR_ARRAY_POINTER  :: (Eq a, Num a) => a
+
+pattern GL_SECONDARY_COLOR_ARRAY_POINTER = 0x845D
+
+pattern GL_SECONDARY_COLOR_ARRAY_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_SECONDARY_COLOR_ARRAY_SIZE = 0x845A
+
+pattern GL_SECONDARY_COLOR_ARRAY_STRIDE  :: (Eq a, Num a) => a
+
+pattern GL_SECONDARY_COLOR_ARRAY_STRIDE = 0x845C
+
+pattern GL_SECONDARY_COLOR_ARRAY_TYPE  :: (Eq a, Num a) => a
+
+pattern GL_SECONDARY_COLOR_ARRAY_TYPE = 0x845B
+
+pattern GL_SELECT  :: (Eq a, Num a) => a
+
+pattern GL_SELECT = 0x1C02
+
+pattern GL_SELECTION_BUFFER_POINTER  :: (Eq a, Num a) => a
+
+pattern GL_SELECTION_BUFFER_POINTER = 0x0DF3
+
+pattern GL_SELECTION_BUFFER_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_SELECTION_BUFFER_SIZE = 0x0DF4
+
+pattern GL_SEPARATE_SPECULAR_COLOR  :: (Eq a, Num a) => a
+
+pattern GL_SEPARATE_SPECULAR_COLOR = 0x81FA
+
+pattern GL_SHADE_MODEL  :: (Eq a, Num a) => a
+
+pattern GL_SHADE_MODEL = 0x0B54
+
+pattern GL_SHININESS  :: (Eq a, Num a) => a
+
+pattern GL_SHININESS = 0x1601
+
+pattern GL_SINGLE_COLOR  :: (Eq a, Num a) => a
+
+pattern GL_SINGLE_COLOR = 0x81F9
+
+pattern GL_SLUMINANCE  :: (Eq a, Num a) => a
+
+pattern GL_SLUMINANCE = 0x8C46
+
+pattern GL_SLUMINANCE8  :: (Eq a, Num a) => a
+
+pattern GL_SLUMINANCE8 = 0x8C47
+
+pattern GL_SLUMINANCE8_ALPHA8  :: (Eq a, Num a) => a
+
+pattern GL_SLUMINANCE8_ALPHA8 = 0x8C45
+
+pattern GL_SLUMINANCE_ALPHA  :: (Eq a, Num a) => a
+
+pattern GL_SLUMINANCE_ALPHA = 0x8C44
+
+pattern GL_SMOOTH  :: (Eq a, Num a) => a
+
+pattern GL_SMOOTH = 0x1D01
+
+pattern GL_SOURCE0_ALPHA  :: (Eq a, Num a) => a
+
+pattern GL_SOURCE0_ALPHA = 0x8588
+
+pattern GL_SOURCE0_RGB  :: (Eq a, Num a) => a
+
+pattern GL_SOURCE0_RGB = 0x8580
+
+pattern GL_SOURCE1_ALPHA  :: (Eq a, Num a) => a
+
+pattern GL_SOURCE1_ALPHA = 0x8589
+
+pattern GL_SOURCE1_RGB  :: (Eq a, Num a) => a
+
+pattern GL_SOURCE1_RGB = 0x8581
+
+pattern GL_SOURCE2_ALPHA  :: (Eq a, Num a) => a
+
+pattern GL_SOURCE2_ALPHA = 0x858A
+
+pattern GL_SOURCE2_RGB  :: (Eq a, Num a) => a
+
+pattern GL_SOURCE2_RGB = 0x8582
+
+pattern GL_SPECULAR  :: (Eq a, Num a) => a
+
+pattern GL_SPECULAR = 0x1202
+
+pattern GL_SPHERE_MAP  :: (Eq a, Num a) => a
+
+pattern GL_SPHERE_MAP = 0x2402
+
+pattern GL_SPOT_CUTOFF  :: (Eq a, Num a) => a
+
+pattern GL_SPOT_CUTOFF = 0x1206
+
+pattern GL_SPOT_DIRECTION  :: (Eq a, Num a) => a
+
+pattern GL_SPOT_DIRECTION = 0x1204
+
+pattern GL_SPOT_EXPONENT  :: (Eq a, Num a) => a
+
+pattern GL_SPOT_EXPONENT = 0x1205
+
+pattern GL_SRC0_ALPHA  :: (Eq a, Num a) => a
+
+pattern GL_SRC0_ALPHA = 0x8588
+
+pattern GL_SRC0_RGB  :: (Eq a, Num a) => a
+
+pattern GL_SRC0_RGB = 0x8580
+
+pattern GL_SRC1_RGB  :: (Eq a, Num a) => a
+
+pattern GL_SRC1_RGB = 0x8581
+
+pattern GL_SRC2_ALPHA  :: (Eq a, Num a) => a
+
+pattern GL_SRC2_ALPHA = 0x858A
+
+pattern GL_SRC2_RGB  :: (Eq a, Num a) => a
+
+pattern GL_SRC2_RGB = 0x8582
+
+pattern GL_STACK_OVERFLOW  :: (Eq a, Num a) => a
+
+pattern GL_STACK_OVERFLOW = 0x0503
+
+pattern GL_STACK_UNDERFLOW  :: (Eq a, Num a) => a
+
+pattern GL_STACK_UNDERFLOW = 0x0504
+
+pattern GL_STENCIL_BITS  :: (Eq a, Num a) => a
+
+pattern GL_STENCIL_BITS = 0x0D57
+
+pattern GL_SUBTRACT  :: (Eq a, Num a) => a
+
+pattern GL_SUBTRACT = 0x84E7
+
+pattern GL_T  :: (Eq a, Num a) => a
+
+pattern GL_T = 0x2001
+
+pattern GL_T2F_C3F_V3F  :: (Eq a, Num a) => a
+
+pattern GL_T2F_C3F_V3F = 0x2A2A
+
+pattern GL_T2F_C4F_N3F_V3F  :: (Eq a, Num a) => a
+
+pattern GL_T2F_C4F_N3F_V3F = 0x2A2C
+
+pattern GL_T2F_C4UB_V3F  :: (Eq a, Num a) => a
+
+pattern GL_T2F_C4UB_V3F = 0x2A29
+
+pattern GL_T2F_N3F_V3F  :: (Eq a, Num a) => a
+
+pattern GL_T2F_N3F_V3F = 0x2A2B
+
+pattern GL_T2F_V3F  :: (Eq a, Num a) => a
+
+pattern GL_T2F_V3F = 0x2A27
+
+pattern GL_T4F_C4F_N3F_V4F  :: (Eq a, Num a) => a
+
+pattern GL_T4F_C4F_N3F_V4F = 0x2A2D
+
+pattern GL_T4F_V4F  :: (Eq a, Num a) => a
+
+pattern GL_T4F_V4F = 0x2A28
+
+pattern GL_TEXTURE_BIT  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_BIT = 0x00040000
+
+pattern GL_TEXTURE_BORDER  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_BORDER = 0x1005
+
+pattern GL_TEXTURE_COMPONENTS  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_COMPONENTS = 0x1003
+
+pattern GL_TEXTURE_COORD_ARRAY  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_COORD_ARRAY = 0x8078
+
+pattern GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING = 0x889A
+
+pattern GL_TEXTURE_COORD_ARRAY_POINTER  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_COORD_ARRAY_POINTER = 0x8092
+
+pattern GL_TEXTURE_COORD_ARRAY_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_COORD_ARRAY_SIZE = 0x8088
+
+pattern GL_TEXTURE_COORD_ARRAY_STRIDE  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_COORD_ARRAY_STRIDE = 0x808A
+
+pattern GL_TEXTURE_COORD_ARRAY_TYPE  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_COORD_ARRAY_TYPE = 0x8089
+
+pattern GL_TEXTURE_ENV  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_ENV = 0x2300
+
+pattern GL_TEXTURE_ENV_COLOR  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_ENV_COLOR = 0x2201
+
+pattern GL_TEXTURE_ENV_MODE  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_ENV_MODE = 0x2200
+
+pattern GL_TEXTURE_FILTER_CONTROL  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_FILTER_CONTROL = 0x8500
+
+pattern GL_TEXTURE_GEN_MODE  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_GEN_MODE = 0x2500
+
+pattern GL_TEXTURE_GEN_Q  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_GEN_Q = 0x0C63
+
+pattern GL_TEXTURE_GEN_R  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_GEN_R = 0x0C62
+
+pattern GL_TEXTURE_GEN_S  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_GEN_S = 0x0C60
+
+pattern GL_TEXTURE_GEN_T  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_GEN_T = 0x0C61
+
+pattern GL_TEXTURE_INTENSITY_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_INTENSITY_SIZE = 0x8061
+
+pattern GL_TEXTURE_INTENSITY_TYPE  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_INTENSITY_TYPE = 0x8C15
+
+pattern GL_TEXTURE_LUMINANCE_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_LUMINANCE_SIZE = 0x8060
+
+pattern GL_TEXTURE_LUMINANCE_TYPE  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_LUMINANCE_TYPE = 0x8C14
+
+pattern GL_TEXTURE_MATRIX  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_MATRIX = 0x0BA8
+
+pattern GL_TEXTURE_PRIORITY  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_PRIORITY = 0x8066
+
+pattern GL_TEXTURE_RESIDENT  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_RESIDENT = 0x8067
+
+pattern GL_TEXTURE_STACK_DEPTH  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_STACK_DEPTH = 0x0BA5
+
+pattern GL_TRANSFORM_BIT  :: (Eq a, Num a) => a
+
+pattern GL_TRANSFORM_BIT = 0x00001000
+
+pattern GL_TRANSPOSE_COLOR_MATRIX  :: (Eq a, Num a) => a
+
+pattern GL_TRANSPOSE_COLOR_MATRIX = 0x84E6
+
+pattern GL_TRANSPOSE_MODELVIEW_MATRIX  :: (Eq a, Num a) => a
+
+pattern GL_TRANSPOSE_MODELVIEW_MATRIX = 0x84E3
+
+pattern GL_TRANSPOSE_PROJECTION_MATRIX  :: (Eq a, Num a) => a
+
+pattern GL_TRANSPOSE_PROJECTION_MATRIX = 0x84E4
+
+pattern GL_TRANSPOSE_TEXTURE_MATRIX  :: (Eq a, Num a) => a
+
+pattern GL_TRANSPOSE_TEXTURE_MATRIX = 0x84E5
+
+pattern GL_V2F  :: (Eq a, Num a) => a
+
+pattern GL_V2F = 0x2A20
+
+pattern GL_V3F  :: (Eq a, Num a) => a
+
+pattern GL_V3F = 0x2A21
+
+pattern GL_VERTEX_ARRAY  :: (Eq a, Num a) => a
+
+pattern GL_VERTEX_ARRAY = 0x8074
+
+pattern GL_VERTEX_ARRAY_BUFFER_BINDING  :: (Eq a, Num a) => a
+
+pattern GL_VERTEX_ARRAY_BUFFER_BINDING = 0x8896
+
+pattern GL_VERTEX_ARRAY_POINTER  :: (Eq a, Num a) => a
+
+pattern GL_VERTEX_ARRAY_POINTER = 0x808E
+
+pattern GL_VERTEX_ARRAY_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_VERTEX_ARRAY_SIZE = 0x807A
+
+pattern GL_VERTEX_ARRAY_STRIDE  :: (Eq a, Num a) => a
+
+pattern GL_VERTEX_ARRAY_STRIDE = 0x807C
+
+pattern GL_VERTEX_ARRAY_TYPE  :: (Eq a, Num a) => a
+
+pattern GL_VERTEX_ARRAY_TYPE = 0x807B
+
+pattern GL_VERTEX_PROGRAM_TWO_SIDE  :: (Eq a, Num a) => a
+
+pattern GL_VERTEX_PROGRAM_TWO_SIDE = 0x8643
+
+pattern GL_VIEWPORT_BIT  :: (Eq a, Num a) => a
+
+pattern GL_VIEWPORT_BIT = 0x00000800
+
+pattern GL_WEIGHT_ARRAY_BUFFER_BINDING  :: (Eq a, Num a) => a
+
+pattern GL_WEIGHT_ARRAY_BUFFER_BINDING = 0x889E
+
+pattern GL_ZOOM_X  :: (Eq a, Num a) => a
+
+pattern GL_ZOOM_X = 0x0D16
+
+pattern GL_ZOOM_Y  :: (Eq a, Num a) => a
+
+pattern GL_ZOOM_Y = 0x0D17
+
+-- | Usage: @'glColorP3ui' type color@
+
+
+glColorP3ui :: MonadIO m => GLenum -> GLuint -> m ()
+glColorP3ui = ffienumuintIOV glColorP3uiFunPtr
+
+glColorP3uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glColorP3uiFunPtr = unsafePerformIO (getProcAddress "glColorP3ui")
+
+{-# NOINLINE glColorP3uiFunPtr #-}
+
+-- | Usage: @'glColorP3uiv' type color@
+--
+-- The length of @color@ should be @1@.
+
+
+glColorP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
+glColorP3uiv = ffienumPtruintIOV glColorP3uivFunPtr
+
+glColorP3uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
+glColorP3uivFunPtr = unsafePerformIO (getProcAddress "glColorP3uiv")
+
+{-# NOINLINE glColorP3uivFunPtr #-}
+
+-- | Usage: @'glColorP4ui' type color@
+
+
+glColorP4ui :: MonadIO m => GLenum -> GLuint -> m ()
+glColorP4ui = ffienumuintIOV glColorP4uiFunPtr
+
+glColorP4uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glColorP4uiFunPtr = unsafePerformIO (getProcAddress "glColorP4ui")
+
+{-# NOINLINE glColorP4uiFunPtr #-}
+
+-- | Usage: @'glColorP4uiv' type color@
+--
+-- The length of @color@ should be @1@.
+
+
+glColorP4uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
+glColorP4uiv = ffienumPtruintIOV glColorP4uivFunPtr
+
+glColorP4uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
+glColorP4uivFunPtr = unsafePerformIO (getProcAddress "glColorP4uiv")
+
+{-# NOINLINE glColorP4uivFunPtr #-}
+
+-- | Usage: @'glMultiTexCoordP1ui' texture type coords@
+
+
+glMultiTexCoordP1ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
+glMultiTexCoordP1ui = ffienumenumuintIOV glMultiTexCoordP1uiFunPtr
+
+glMultiTexCoordP1uiFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
+glMultiTexCoordP1uiFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoordP1ui")
+
+{-# NOINLINE glMultiTexCoordP1uiFunPtr #-}
+
+-- | Usage: @'glMultiTexCoordP1uiv' texture type coords@
+--
+-- The length of @coords@ should be @1@.
+
+
+glMultiTexCoordP1uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
+glMultiTexCoordP1uiv = ffienumenumPtruintIOV glMultiTexCoordP1uivFunPtr
+
+glMultiTexCoordP1uivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
+glMultiTexCoordP1uivFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoordP1uiv")
+
+{-# NOINLINE glMultiTexCoordP1uivFunPtr #-}
+
+-- | Usage: @'glMultiTexCoordP2ui' texture type coords@
+
+
+glMultiTexCoordP2ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
+glMultiTexCoordP2ui = ffienumenumuintIOV glMultiTexCoordP2uiFunPtr
+
+glMultiTexCoordP2uiFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
+glMultiTexCoordP2uiFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoordP2ui")
+
+{-# NOINLINE glMultiTexCoordP2uiFunPtr #-}
+
+-- | Usage: @'glMultiTexCoordP2uiv' texture type coords@
+--
+-- The length of @coords@ should be @1@.
+
+
+glMultiTexCoordP2uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
+glMultiTexCoordP2uiv = ffienumenumPtruintIOV glMultiTexCoordP2uivFunPtr
+
+glMultiTexCoordP2uivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
+glMultiTexCoordP2uivFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoordP2uiv")
+
+{-# NOINLINE glMultiTexCoordP2uivFunPtr #-}
+
+-- | Usage: @'glMultiTexCoordP3ui' texture type coords@
+
+
+glMultiTexCoordP3ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
+glMultiTexCoordP3ui = ffienumenumuintIOV glMultiTexCoordP3uiFunPtr
+
+glMultiTexCoordP3uiFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
+glMultiTexCoordP3uiFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoordP3ui")
+
+{-# NOINLINE glMultiTexCoordP3uiFunPtr #-}
+
+-- | Usage: @'glMultiTexCoordP3uiv' texture type coords@
+--
+-- The length of @coords@ should be @1@.
+
+
+glMultiTexCoordP3uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
+glMultiTexCoordP3uiv = ffienumenumPtruintIOV glMultiTexCoordP3uivFunPtr
+
+glMultiTexCoordP3uivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
+glMultiTexCoordP3uivFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoordP3uiv")
+
+{-# NOINLINE glMultiTexCoordP3uivFunPtr #-}
+
+-- | Usage: @'glMultiTexCoordP4ui' texture type coords@
+
+
+glMultiTexCoordP4ui :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
+glMultiTexCoordP4ui = ffienumenumuintIOV glMultiTexCoordP4uiFunPtr
+
+glMultiTexCoordP4uiFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
+glMultiTexCoordP4uiFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoordP4ui")
+
+{-# NOINLINE glMultiTexCoordP4uiFunPtr #-}
+
+-- | Usage: @'glMultiTexCoordP4uiv' texture type coords@
+--
+-- The length of @coords@ should be @1@.
+
+
+glMultiTexCoordP4uiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
+glMultiTexCoordP4uiv = ffienumenumPtruintIOV glMultiTexCoordP4uivFunPtr
+
+glMultiTexCoordP4uivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
+glMultiTexCoordP4uivFunPtr = unsafePerformIO (getProcAddress "glMultiTexCoordP4uiv")
+
+{-# NOINLINE glMultiTexCoordP4uivFunPtr #-}
+
+-- | Usage: @'glNormalP3ui' type coords@
+
+
+glNormalP3ui :: MonadIO m => GLenum -> GLuint -> m ()
+glNormalP3ui = ffienumuintIOV glNormalP3uiFunPtr
+
+glNormalP3uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glNormalP3uiFunPtr = unsafePerformIO (getProcAddress "glNormalP3ui")
+
+{-# NOINLINE glNormalP3uiFunPtr #-}
+
+-- | Usage: @'glNormalP3uiv' type coords@
+--
+-- The length of @coords@ should be @1@.
+
+
+glNormalP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
+glNormalP3uiv = ffienumPtruintIOV glNormalP3uivFunPtr
+
+glNormalP3uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
+glNormalP3uivFunPtr = unsafePerformIO (getProcAddress "glNormalP3uiv")
+
+{-# NOINLINE glNormalP3uivFunPtr #-}
+
+-- | Usage: @'glSecondaryColorP3ui' type color@
+
+
+glSecondaryColorP3ui :: MonadIO m => GLenum -> GLuint -> m ()
+glSecondaryColorP3ui = ffienumuintIOV glSecondaryColorP3uiFunPtr
+
+glSecondaryColorP3uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glSecondaryColorP3uiFunPtr = unsafePerformIO (getProcAddress "glSecondaryColorP3ui")
+
+{-# NOINLINE glSecondaryColorP3uiFunPtr #-}
+
+-- | Usage: @'glSecondaryColorP3uiv' type color@
+--
+-- The length of @color@ should be @1@.
+
+
+glSecondaryColorP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
+glSecondaryColorP3uiv = ffienumPtruintIOV glSecondaryColorP3uivFunPtr
+
+glSecondaryColorP3uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
+glSecondaryColorP3uivFunPtr = unsafePerformIO (getProcAddress "glSecondaryColorP3uiv")
+
+{-# NOINLINE glSecondaryColorP3uivFunPtr #-}
+
+-- | Usage: @'glTexCoordP1ui' type coords@
+
+
+glTexCoordP1ui :: MonadIO m => GLenum -> GLuint -> m ()
+glTexCoordP1ui = ffienumuintIOV glTexCoordP1uiFunPtr
+
+glTexCoordP1uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glTexCoordP1uiFunPtr = unsafePerformIO (getProcAddress "glTexCoordP1ui")
+
+{-# NOINLINE glTexCoordP1uiFunPtr #-}
+
+-- | Usage: @'glTexCoordP1uiv' type coords@
+--
+-- The length of @coords@ should be @1@.
+
+
+glTexCoordP1uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
+glTexCoordP1uiv = ffienumPtruintIOV glTexCoordP1uivFunPtr
+
+glTexCoordP1uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
+glTexCoordP1uivFunPtr = unsafePerformIO (getProcAddress "glTexCoordP1uiv")
+
+{-# NOINLINE glTexCoordP1uivFunPtr #-}
+
+-- | Usage: @'glTexCoordP2ui' type coords@
+
+
+glTexCoordP2ui :: MonadIO m => GLenum -> GLuint -> m ()
+glTexCoordP2ui = ffienumuintIOV glTexCoordP2uiFunPtr
+
+glTexCoordP2uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glTexCoordP2uiFunPtr = unsafePerformIO (getProcAddress "glTexCoordP2ui")
+
+{-# NOINLINE glTexCoordP2uiFunPtr #-}
+
+-- | Usage: @'glTexCoordP2uiv' type coords@
+--
+-- The length of @coords@ should be @1@.
+
+
+glTexCoordP2uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
+glTexCoordP2uiv = ffienumPtruintIOV glTexCoordP2uivFunPtr
+
+glTexCoordP2uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
+glTexCoordP2uivFunPtr = unsafePerformIO (getProcAddress "glTexCoordP2uiv")
+
+{-# NOINLINE glTexCoordP2uivFunPtr #-}
+
+-- | Usage: @'glTexCoordP3ui' type coords@
+
+
+glTexCoordP3ui :: MonadIO m => GLenum -> GLuint -> m ()
+glTexCoordP3ui = ffienumuintIOV glTexCoordP3uiFunPtr
+
+glTexCoordP3uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glTexCoordP3uiFunPtr = unsafePerformIO (getProcAddress "glTexCoordP3ui")
+
+{-# NOINLINE glTexCoordP3uiFunPtr #-}
+
+-- | Usage: @'glTexCoordP3uiv' type coords@
+--
+-- The length of @coords@ should be @1@.
+
+
+glTexCoordP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
+glTexCoordP3uiv = ffienumPtruintIOV glTexCoordP3uivFunPtr
+
+glTexCoordP3uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
+glTexCoordP3uivFunPtr = unsafePerformIO (getProcAddress "glTexCoordP3uiv")
+
+{-# NOINLINE glTexCoordP3uivFunPtr #-}
+
+-- | Usage: @'glTexCoordP4ui' type coords@
+
+
+glTexCoordP4ui :: MonadIO m => GLenum -> GLuint -> m ()
+glTexCoordP4ui = ffienumuintIOV glTexCoordP4uiFunPtr
+
+glTexCoordP4uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glTexCoordP4uiFunPtr = unsafePerformIO (getProcAddress "glTexCoordP4ui")
+
+{-# NOINLINE glTexCoordP4uiFunPtr #-}
+
+-- | Usage: @'glTexCoordP4uiv' type coords@
+--
+-- The length of @coords@ should be @1@.
+
+
+glTexCoordP4uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
+glTexCoordP4uiv = ffienumPtruintIOV glTexCoordP4uivFunPtr
+
+glTexCoordP4uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
+glTexCoordP4uivFunPtr = unsafePerformIO (getProcAddress "glTexCoordP4uiv")
+
+{-# NOINLINE glTexCoordP4uivFunPtr #-}
+
+-- | Usage: @'glVertexP2ui' type value@
+
+
+glVertexP2ui :: MonadIO m => GLenum -> GLuint -> m ()
+glVertexP2ui = ffienumuintIOV glVertexP2uiFunPtr
+
+glVertexP2uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glVertexP2uiFunPtr = unsafePerformIO (getProcAddress "glVertexP2ui")
+
+{-# NOINLINE glVertexP2uiFunPtr #-}
+
+-- | Usage: @'glVertexP2uiv' type value@
+--
+-- The length of @value@ should be @1@.
+
+
+glVertexP2uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
+glVertexP2uiv = ffienumPtruintIOV glVertexP2uivFunPtr
+
+glVertexP2uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
+glVertexP2uivFunPtr = unsafePerformIO (getProcAddress "glVertexP2uiv")
+
+{-# NOINLINE glVertexP2uivFunPtr #-}
+
+-- | Usage: @'glVertexP3ui' type value@
+
+
+glVertexP3ui :: MonadIO m => GLenum -> GLuint -> m ()
+glVertexP3ui = ffienumuintIOV glVertexP3uiFunPtr
+
+glVertexP3uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glVertexP3uiFunPtr = unsafePerformIO (getProcAddress "glVertexP3ui")
+
+{-# NOINLINE glVertexP3uiFunPtr #-}
+
+-- | Usage: @'glVertexP3uiv' type value@
+--
+-- The length of @value@ should be @1@.
+
+
+glVertexP3uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
+glVertexP3uiv = ffienumPtruintIOV glVertexP3uivFunPtr
+
+glVertexP3uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
+glVertexP3uivFunPtr = unsafePerformIO (getProcAddress "glVertexP3uiv")
+
+{-# NOINLINE glVertexP3uivFunPtr #-}
+
+-- | Usage: @'glVertexP4ui' type value@
+
+
+glVertexP4ui :: MonadIO m => GLenum -> GLuint -> m ()
+glVertexP4ui = ffienumuintIOV glVertexP4uiFunPtr
+
+glVertexP4uiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glVertexP4uiFunPtr = unsafePerformIO (getProcAddress "glVertexP4ui")
+
+{-# NOINLINE glVertexP4uiFunPtr #-}
+
+-- | Usage: @'glVertexP4uiv' type value@
+--
+-- The length of @value@ should be @1@.
+
+
+glVertexP4uiv :: MonadIO m => GLenum -> Ptr GLuint -> m ()
+glVertexP4uiv = ffienumPtruintIOV glVertexP4uivFunPtr
+
+glVertexP4uivFunPtr :: FunPtr (GLenum -> Ptr GLuint -> IO ())
+glVertexP4uivFunPtr = unsafePerformIO (getProcAddress "glVertexP4uiv")
+
+{-# NOINLINE glVertexP4uivFunPtr #-}
+
+pattern GL_DISPLAY_LIST  :: (Eq a, Num a) => a
+
+pattern GL_DISPLAY_LIST = 0x82E7
+
+-- | Usage: @'glActiveTexture' texture@
+--
+-- The parameter @texture@ is a @TextureUnit@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glActiveTexture.xhtml>
+
+
+glActiveTexture :: MonadIO m => GLenum -> m ()
+glActiveTexture = ffienumIOV glActiveTextureFunPtr
+
+glActiveTextureFunPtr :: FunPtr (GLenum -> IO ())
+glActiveTextureFunPtr = unsafePerformIO (getProcAddress "glActiveTexture")
+
+{-# NOINLINE glActiveTextureFunPtr #-}
+
+-- | Usage: @'glAttachShader' program shader@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glAttachShader.xhtml>
+
+
+glAttachShader :: MonadIO m => GLuint -> GLuint -> m ()
+glAttachShader = ffiuintuintIOV glAttachShaderFunPtr
+
+glAttachShaderFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
+glAttachShaderFunPtr = unsafePerformIO (getProcAddress "glAttachShader")
+
+{-# NOINLINE glAttachShaderFunPtr #-}
+
+-- | Usage: @'glBeginConditionalRender' id mode@
+--
+-- The parameter @mode@ is a @TypeEnum@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBeginConditionalRender.xhtml>
+
+
+glBeginConditionalRender :: MonadIO m => GLuint -> GLenum -> m ()
+glBeginConditionalRender = ffiuintenumIOV glBeginConditionalRenderFunPtr
+
+glBeginConditionalRenderFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
+glBeginConditionalRenderFunPtr = unsafePerformIO (getProcAddress "glBeginConditionalRender")
+
+{-# NOINLINE glBeginConditionalRenderFunPtr #-}
+
+-- | Usage: @'glBeginQuery' target id@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBeginQuery.xhtml>
+
+
+glBeginQuery :: MonadIO m => GLenum -> GLuint -> m ()
+glBeginQuery = ffienumuintIOV glBeginQueryFunPtr
+
+glBeginQueryFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glBeginQueryFunPtr = unsafePerformIO (getProcAddress "glBeginQuery")
+
+{-# NOINLINE glBeginQueryFunPtr #-}
+
+-- | Usage: @'glBeginTransformFeedback' primitiveMode@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBeginTransformFeedback.xhtml>
+
+
+glBeginTransformFeedback :: MonadIO m => GLenum -> m ()
+glBeginTransformFeedback = ffienumIOV glBeginTransformFeedbackFunPtr
+
+glBeginTransformFeedbackFunPtr :: FunPtr (GLenum -> IO ())
+glBeginTransformFeedbackFunPtr = unsafePerformIO (getProcAddress "glBeginTransformFeedback")
+
+{-# NOINLINE glBeginTransformFeedbackFunPtr #-}
+
+-- | Usage: @'glBindAttribLocation' program index name@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindAttribLocation.xhtml>
+
+
+glBindAttribLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()
+glBindAttribLocation = ffiuintuintPtrcharIOV glBindAttribLocationFunPtr
+
+glBindAttribLocationFunPtr :: FunPtr (GLuint -> GLuint -> Ptr GLchar -> IO ())
+glBindAttribLocationFunPtr = unsafePerformIO (getProcAddress "glBindAttribLocation")
+
+{-# NOINLINE glBindAttribLocationFunPtr #-}
+
+-- | Usage: @'glBindBuffer' target buffer@
+--
+-- The parameter @target@ is a @BufferTargetARB@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindBuffer.xhtml>
+
+
+glBindBuffer :: MonadIO m => GLenum -> GLuint -> m ()
+glBindBuffer = ffienumuintIOV glBindBufferFunPtr
+
+glBindBufferFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glBindBufferFunPtr = unsafePerformIO (getProcAddress "glBindBuffer")
+
+{-# NOINLINE glBindBufferFunPtr #-}
+
+-- | Usage: @'glBindBufferBase' target index buffer@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindBufferBase.xhtml>
+
+
+glBindBufferBase :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()
+glBindBufferBase = ffienumuintuintIOV glBindBufferBaseFunPtr
+
+glBindBufferBaseFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> IO ())
+glBindBufferBaseFunPtr = unsafePerformIO (getProcAddress "glBindBufferBase")
+
+{-# NOINLINE glBindBufferBaseFunPtr #-}
+
+-- | Usage: @'glBindBufferRange' target index buffer offset size@
+--
+-- The parameter @offset@ is a @BufferOffset@.
+--
+-- The parameter @size@ is a @BufferSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindBufferRange.xhtml>
+
+
+glBindBufferRange :: MonadIO m => GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()
+glBindBufferRange = ffienumuintuintintptrsizeiptrIOV glBindBufferRangeFunPtr
+
+glBindBufferRangeFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> IO ())
+glBindBufferRangeFunPtr = unsafePerformIO (getProcAddress "glBindBufferRange")
+
+{-# NOINLINE glBindBufferRangeFunPtr #-}
+
+-- | Usage: @'glBindFragDataLocation' program color name@
+--
+-- The length of @name@ should be @COMPSIZE(name)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindFragDataLocation.xhtml>
+
+
+glBindFragDataLocation :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()
+glBindFragDataLocation = ffiuintuintPtrcharIOV glBindFragDataLocationFunPtr
+
+glBindFragDataLocationFunPtr :: FunPtr (GLuint -> GLuint -> Ptr GLchar -> IO ())
+glBindFragDataLocationFunPtr = unsafePerformIO (getProcAddress "glBindFragDataLocation")
+
+{-# NOINLINE glBindFragDataLocationFunPtr #-}
+
+-- | Usage: @'glBindFramebuffer' target framebuffer@
+--
+-- The parameter @target@ is a @FramebufferTarget@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindFramebuffer.xhtml>
+
+
+glBindFramebuffer :: MonadIO m => GLenum -> GLuint -> m ()
+glBindFramebuffer = ffienumuintIOV glBindFramebufferFunPtr
+
+glBindFramebufferFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glBindFramebufferFunPtr = unsafePerformIO (getProcAddress "glBindFramebuffer")
+
+{-# NOINLINE glBindFramebufferFunPtr #-}
+
+-- | Usage: @'glBindRenderbuffer' target renderbuffer@
+--
+-- The parameter @target@ is a @RenderbufferTarget@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindRenderbuffer.xhtml>
+
+
+glBindRenderbuffer :: MonadIO m => GLenum -> GLuint -> m ()
+glBindRenderbuffer = ffienumuintIOV glBindRenderbufferFunPtr
+
+glBindRenderbufferFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glBindRenderbufferFunPtr = unsafePerformIO (getProcAddress "glBindRenderbuffer")
+
+{-# NOINLINE glBindRenderbufferFunPtr #-}
+
+-- | Usage: @'glBindTexture' target texture@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindTexture.xhtml>
+
+
+glBindTexture :: MonadIO m => GLenum -> GLuint -> m ()
+glBindTexture = ffienumuintIOV glBindTextureFunPtr
+
+glBindTextureFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glBindTextureFunPtr = unsafePerformIO (getProcAddress "glBindTexture")
+
+{-# NOINLINE glBindTextureFunPtr #-}
+
+-- | Usage: @'glBindVertexArray' array@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindVertexArray.xhtml>
+
+
+glBindVertexArray :: MonadIO m => GLuint -> m ()
+glBindVertexArray = ffiuintIOV glBindVertexArrayFunPtr
+
+glBindVertexArrayFunPtr :: FunPtr (GLuint -> IO ())
+glBindVertexArrayFunPtr = unsafePerformIO (getProcAddress "glBindVertexArray")
+
+{-# NOINLINE glBindVertexArrayFunPtr #-}
+
+-- | Usage: @'glBlendColor' red green blue alpha@
+--
+-- The parameter @red@ is a @ColorF@.
+--
+-- The parameter @green@ is a @ColorF@.
+--
+-- The parameter @blue@ is a @ColorF@.
+--
+-- The parameter @alpha@ is a @ColorF@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBlendColor.xhtml>
+
+
+glBlendColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glBlendColor = ffifloatfloatfloatfloatIOV glBlendColorFunPtr
+
+glBlendColorFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glBlendColorFunPtr = unsafePerformIO (getProcAddress "glBlendColor")
+
+{-# NOINLINE glBlendColorFunPtr #-}
+
+-- | Usage: @'glBlendEquation' mode@
+--
+-- The parameter @mode@ is a @BlendEquationMode@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBlendEquation.xhtml>
+
+
+glBlendEquation :: MonadIO m => GLenum -> m ()
+glBlendEquation = ffienumIOV glBlendEquationFunPtr
+
+glBlendEquationFunPtr :: FunPtr (GLenum -> IO ())
+glBlendEquationFunPtr = unsafePerformIO (getProcAddress "glBlendEquation")
+
+{-# NOINLINE glBlendEquationFunPtr #-}
+
+-- | Usage: @'glBlendEquationSeparate' modeRGB modeAlpha@
+--
+-- The parameter @modeRGB@ is a @BlendEquationModeEXT@, one of: 'Graphics.GL.Ext.SGIX.BlendAlphaMinmax.GL_ALPHA_MAX_SGIX', 'Graphics.GL.Ext.SGIX.BlendAlphaMinmax.GL_ALPHA_MIN_SGIX', 'Graphics.GL.Ext.EXT.BlendMinmax.GL_FUNC_ADD_EXT', 'Graphics.GL.Ext.EXT.BlendSubtract.GL_FUNC_REVERSE_SUBTRACT_EXT', 'Graphics.GL.Ext.EXT.BlendSubtract.GL_FUNC_SUBTRACT_EXT', 'Graphics.GL.Internal.Shared.GL_LOGIC_OP', 'Graphics.GL.Ext.EXT.BlendMinmax.GL_MAX_EXT', 'Graphics.GL.Ext.EXT.BlendMinmax.GL_MIN_EXT'.
+--
+-- The parameter @modeAlpha@ is a @BlendEquationModeEXT@, one of: 'Graphics.GL.Ext.SGIX.BlendAlphaMinmax.GL_ALPHA_MAX_SGIX', 'Graphics.GL.Ext.SGIX.BlendAlphaMinmax.GL_ALPHA_MIN_SGIX', 'Graphics.GL.Ext.EXT.BlendMinmax.GL_FUNC_ADD_EXT', 'Graphics.GL.Ext.EXT.BlendSubtract.GL_FUNC_REVERSE_SUBTRACT_EXT', 'Graphics.GL.Ext.EXT.BlendSubtract.GL_FUNC_SUBTRACT_EXT', 'Graphics.GL.Internal.Shared.GL_LOGIC_OP', 'Graphics.GL.Ext.EXT.BlendMinmax.GL_MAX_EXT', 'Graphics.GL.Ext.EXT.BlendMinmax.GL_MIN_EXT'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBlendEquationSeparate.xhtml>
+
+
+glBlendEquationSeparate :: MonadIO m => GLenum -> GLenum -> m ()
+glBlendEquationSeparate = ffienumenumIOV glBlendEquationSeparateFunPtr
+
+glBlendEquationSeparateFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
+glBlendEquationSeparateFunPtr = unsafePerformIO (getProcAddress "glBlendEquationSeparate")
+
+{-# NOINLINE glBlendEquationSeparateFunPtr #-}
+
+-- | Usage: @'glBlendFunc' sfactor dfactor@
+--
+-- The parameter @sfactor@ is a @BlendingFactorSrc@, one of: 'Graphics.GL.Ext.EXT.BlendColor.GL_CONSTANT_ALPHA_EXT', 'Graphics.GL.Ext.EXT.BlendColor.GL_CONSTANT_COLOR_EXT', 'Graphics.GL.Internal.Shared.GL_DST_ALPHA', 'Graphics.GL.Internal.Shared.GL_DST_COLOR', 'Graphics.GL.Internal.Shared.GL_ONE', 'Graphics.GL.Ext.EXT.BlendColor.GL_ONE_MINUS_CONSTANT_ALPHA_EXT', 'Graphics.GL.Ext.EXT.BlendColor.GL_ONE_MINUS_CONSTANT_COLOR_EXT', 'Graphics.GL.Internal.Shared.GL_ONE_MINUS_DST_ALPHA', 'Graphics.GL.Internal.Shared.GL_ONE_MINUS_DST_COLOR', 'Graphics.GL.Internal.Shared.GL_ONE_MINUS_SRC_ALPHA', 'Graphics.GL.Internal.Shared.GL_SRC_ALPHA', 'Graphics.GL.Internal.Shared.GL_SRC_ALPHA_SATURATE', 'Graphics.GL.Internal.Shared.GL_ZERO'.
+--
+-- The parameter @dfactor@ is a @BlendingFactorDest@, one of: 'Graphics.GL.Ext.EXT.BlendColor.GL_CONSTANT_ALPHA_EXT', 'Graphics.GL.Ext.EXT.BlendColor.GL_CONSTANT_COLOR_EXT', 'Graphics.GL.Internal.Shared.GL_DST_ALPHA', 'Graphics.GL.Internal.Shared.GL_ONE', 'Graphics.GL.Ext.EXT.BlendColor.GL_ONE_MINUS_CONSTANT_ALPHA_EXT', 'Graphics.GL.Ext.EXT.BlendColor.GL_ONE_MINUS_CONSTANT_COLOR_EXT', 'Graphics.GL.Internal.Shared.GL_ONE_MINUS_DST_ALPHA', 'Graphics.GL.Internal.Shared.GL_ONE_MINUS_SRC_ALPHA', 'Graphics.GL.Internal.Shared.GL_ONE_MINUS_SRC_COLOR', 'Graphics.GL.Internal.Shared.GL_SRC_ALPHA', 'Graphics.GL.Internal.Shared.GL_SRC_COLOR', 'Graphics.GL.Internal.Shared.GL_ZERO'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBlendFunc.xhtml>
+
+
+glBlendFunc :: MonadIO m => GLenum -> GLenum -> m ()
+glBlendFunc = ffienumenumIOV glBlendFuncFunPtr
+
+glBlendFuncFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
+glBlendFuncFunPtr = unsafePerformIO (getProcAddress "glBlendFunc")
+
+{-# NOINLINE glBlendFuncFunPtr #-}
+
+-- | Usage: @'glBlendFuncSeparate' sfactorRGB dfactorRGB sfactorAlpha dfactorAlpha@
+--
+-- The parameter @sfactorRGB@ is a @BlendFuncSeparateParameterEXT@.
+--
+-- The parameter @dfactorRGB@ is a @BlendFuncSeparateParameterEXT@.
+--
+-- The parameter @sfactorAlpha@ is a @BlendFuncSeparateParameterEXT@.
+--
+-- The parameter @dfactorAlpha@ is a @BlendFuncSeparateParameterEXT@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBlendFuncSeparate.xhtml>
+
+
+glBlendFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()
+glBlendFuncSeparate = ffienumenumenumenumIOV glBlendFuncSeparateFunPtr
+
+glBlendFuncSeparateFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ())
+glBlendFuncSeparateFunPtr = unsafePerformIO (getProcAddress "glBlendFuncSeparate")
+
+{-# NOINLINE glBlendFuncSeparateFunPtr #-}
+
+-- | Usage: @'glBlitFramebuffer' srcX0 srcY0 srcX1 srcY1 dstX0 dstY0 dstX1 dstY1 mask filter@
+--
+-- The parameter @mask@ is a @ClearBufferMask@, one of: 'Graphics.GL.Internal.Shared.GL_ACCUM_BUFFER_BIT', 'Graphics.GL.Internal.Shared.GL_COLOR_BUFFER_BIT', 'Graphics.GL.Ext.NV.CoverageSample.GL_COVERAGE_BUFFER_BIT_NV', 'Graphics.GL.Internal.Shared.GL_DEPTH_BUFFER_BIT', 'Graphics.GL.Internal.Shared.GL_STENCIL_BUFFER_BIT'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBlitFramebuffer.xhtml>
+
+
+glBlitFramebuffer :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()
+glBlitFramebuffer = ffiintintintintintintintintbitfieldenumIOV glBlitFramebufferFunPtr
+
+glBlitFramebufferFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> IO ())
+glBlitFramebufferFunPtr = unsafePerformIO (getProcAddress "glBlitFramebuffer")
+
+{-# NOINLINE glBlitFramebufferFunPtr #-}
+
+-- | Usage: @'glBufferData' target size data usage@
+--
+-- The parameter @target@ is a @BufferTargetARB@.
+--
+-- The parameter @size@ is a @BufferSize@.
+--
+-- The parameter @usage@ is a @BufferUsageARB@.
+--
+-- The length of @data@ should be @size@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBufferData.xhtml>
+
+
+glBufferData :: MonadIO m => GLenum -> GLsizeiptr -> Ptr () -> GLenum -> m ()
+glBufferData = ffienumsizeiptrPtrVenumIOV glBufferDataFunPtr
+
+glBufferDataFunPtr :: FunPtr (GLenum -> GLsizeiptr -> Ptr () -> GLenum -> IO ())
+glBufferDataFunPtr = unsafePerformIO (getProcAddress "glBufferData")
+
+{-# NOINLINE glBufferDataFunPtr #-}
+
+-- | Usage: @'glBufferSubData' target offset size data@
+--
+-- The parameter @target@ is a @BufferTargetARB@.
+--
+-- The parameter @offset@ is a @BufferOffset@.
+--
+-- The parameter @size@ is a @BufferSize@.
+--
+-- The length of @data@ should be @size@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBufferSubData.xhtml>
+
+
+glBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr () -> m ()
+glBufferSubData = ffienumintptrsizeiptrPtrVIOV glBufferSubDataFunPtr
+
+glBufferSubDataFunPtr :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> Ptr () -> IO ())
+glBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glBufferSubData")
+
+{-# NOINLINE glBufferSubDataFunPtr #-}
+
+-- | Usage: @'glCheckFramebufferStatus' target@
+--
+-- The parameter @target@ is a @FramebufferTarget@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCheckFramebufferStatus.xhtml>
+
+
+glCheckFramebufferStatus :: MonadIO m => GLenum -> m GLenum
+glCheckFramebufferStatus = ffienumIOenum glCheckFramebufferStatusFunPtr
+
+glCheckFramebufferStatusFunPtr :: FunPtr (GLenum -> IO GLenum)
+glCheckFramebufferStatusFunPtr = unsafePerformIO (getProcAddress "glCheckFramebufferStatus")
+
+{-# NOINLINE glCheckFramebufferStatusFunPtr #-}
+
+-- | Usage: @'glClampColor' target clamp@
+--
+-- The parameter @target@ is a @ClampColorTargetARB@.
+--
+-- The parameter @clamp@ is a @ClampColorModeARB@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glClampColor.xhtml>
+
+
+glClampColor :: MonadIO m => GLenum -> GLenum -> m ()
+glClampColor = ffienumenumIOV glClampColorFunPtr
+
+glClampColorFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
+glClampColorFunPtr = unsafePerformIO (getProcAddress "glClampColor")
+
+{-# NOINLINE glClampColorFunPtr #-}
+
+-- | Usage: @'glClear' mask@
+--
+-- The parameter @mask@ is a @ClearBufferMask@, one of: 'Graphics.GL.Internal.Shared.GL_ACCUM_BUFFER_BIT', 'Graphics.GL.Internal.Shared.GL_COLOR_BUFFER_BIT', 'Graphics.GL.Ext.NV.CoverageSample.GL_COVERAGE_BUFFER_BIT_NV', 'Graphics.GL.Internal.Shared.GL_DEPTH_BUFFER_BIT', 'Graphics.GL.Internal.Shared.GL_STENCIL_BUFFER_BIT'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glClear.xhtml>
+
+
+glClear :: MonadIO m => GLbitfield -> m ()
+glClear = ffibitfieldIOV glClearFunPtr
+
+glClearFunPtr :: FunPtr (GLbitfield -> IO ())
+glClearFunPtr = unsafePerformIO (getProcAddress "glClear")
+
+{-# NOINLINE glClearFunPtr #-}
+
+-- | Usage: @'glClearBufferfi' buffer drawbuffer depth stencil@
+--
+-- The parameter @drawbuffer@ is a @DrawBufferName@.
+
+
+glClearBufferfi :: MonadIO m => GLenum -> GLint -> GLfloat -> GLint -> m ()
+glClearBufferfi = ffienumintfloatintIOV glClearBufferfiFunPtr
+
+glClearBufferfiFunPtr :: FunPtr (GLenum -> GLint -> GLfloat -> GLint -> IO ())
+glClearBufferfiFunPtr = unsafePerformIO (getProcAddress "glClearBufferfi")
+
+{-# NOINLINE glClearBufferfiFunPtr #-}
+
+-- | Usage: @'glClearBufferfv' buffer drawbuffer value@
+--
+-- The parameter @drawbuffer@ is a @DrawBufferName@.
+--
+-- The length of @value@ should be @COMPSIZE(buffer)@.
+
+
+glClearBufferfv :: MonadIO m => GLenum -> GLint -> Ptr GLfloat -> m ()
+glClearBufferfv = ffienumintPtrfloatIOV glClearBufferfvFunPtr
+
+glClearBufferfvFunPtr :: FunPtr (GLenum -> GLint -> Ptr GLfloat -> IO ())
+glClearBufferfvFunPtr = unsafePerformIO (getProcAddress "glClearBufferfv")
+
+{-# NOINLINE glClearBufferfvFunPtr #-}
+
+-- | Usage: @'glClearBufferiv' buffer drawbuffer value@
+--
+-- The parameter @drawbuffer@ is a @DrawBufferName@.
+--
+-- The length of @value@ should be @COMPSIZE(buffer)@.
+
+
+glClearBufferiv :: MonadIO m => GLenum -> GLint -> Ptr GLint -> m ()
+glClearBufferiv = ffienumintPtrintIOV glClearBufferivFunPtr
+
+glClearBufferivFunPtr :: FunPtr (GLenum -> GLint -> Ptr GLint -> IO ())
+glClearBufferivFunPtr = unsafePerformIO (getProcAddress "glClearBufferiv")
+
+{-# NOINLINE glClearBufferivFunPtr #-}
+
+-- | Usage: @'glClearBufferuiv' buffer drawbuffer value@
+--
+-- The parameter @drawbuffer@ is a @DrawBufferName@.
+--
+-- The length of @value@ should be @COMPSIZE(buffer)@.
+
+
+glClearBufferuiv :: MonadIO m => GLenum -> GLint -> Ptr GLuint -> m ()
+glClearBufferuiv = ffienumintPtruintIOV glClearBufferuivFunPtr
+
+glClearBufferuivFunPtr :: FunPtr (GLenum -> GLint -> Ptr GLuint -> IO ())
+glClearBufferuivFunPtr = unsafePerformIO (getProcAddress "glClearBufferuiv")
+
+{-# NOINLINE glClearBufferuivFunPtr #-}
+
+-- | Usage: @'glClearColor' red green blue alpha@
+--
+-- The parameter @red@ is a @ColorF@.
+--
+-- The parameter @green@ is a @ColorF@.
+--
+-- The parameter @blue@ is a @ColorF@.
+--
+-- The parameter @alpha@ is a @ColorF@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glClearColor.xhtml>
+
+
+glClearColor :: MonadIO m => GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glClearColor = ffifloatfloatfloatfloatIOV glClearColorFunPtr
+
+glClearColorFunPtr :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glClearColorFunPtr = unsafePerformIO (getProcAddress "glClearColor")
+
+{-# NOINLINE glClearColorFunPtr #-}
+
+-- | Usage: @'glClearDepth' depth@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glClearDepth.xhtml>
+
+
+glClearDepth :: MonadIO m => GLdouble -> m ()
+glClearDepth = ffidoubleIOV glClearDepthFunPtr
+
+glClearDepthFunPtr :: FunPtr (GLdouble -> IO ())
+glClearDepthFunPtr = unsafePerformIO (getProcAddress "glClearDepth")
+
+{-# NOINLINE glClearDepthFunPtr #-}
+
+-- | Usage: @'glClearStencil' s@
+--
+-- The parameter @s@ is a @StencilValue@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glClearStencil.xhtml>
+
+
+glClearStencil :: MonadIO m => GLint -> m ()
+glClearStencil = ffiintIOV glClearStencilFunPtr
+
+glClearStencilFunPtr :: FunPtr (GLint -> IO ())
+glClearStencilFunPtr = unsafePerformIO (getProcAddress "glClearStencil")
+
+{-# NOINLINE glClearStencilFunPtr #-}
+
+-- | Usage: @'glClientWaitSync' sync flags timeout@
+--
+-- The parameter @sync@ is a @sync@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glClientWaitSync.xhtml>
+
+
+glClientWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m GLenum
+glClientWaitSync = ffisyncbitfielduint64IOenum glClientWaitSyncFunPtr
+
+glClientWaitSyncFunPtr :: FunPtr (GLsync -> GLbitfield -> GLuint64 -> IO GLenum)
+glClientWaitSyncFunPtr = unsafePerformIO (getProcAddress "glClientWaitSync")
+
+{-# NOINLINE glClientWaitSyncFunPtr #-}
+
+-- | Usage: @'glColorMask' red green blue alpha@
+--
+-- The parameter @red@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The parameter @green@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The parameter @blue@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The parameter @alpha@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glColorMask.xhtml>
+
+
+glColorMask :: MonadIO m => GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()
+glColorMask = ffibooleanbooleanbooleanbooleanIOV glColorMaskFunPtr
+
+glColorMaskFunPtr :: FunPtr (GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ())
+glColorMaskFunPtr = unsafePerformIO (getProcAddress "glColorMask")
+
+{-# NOINLINE glColorMaskFunPtr #-}
+
+-- | Usage: @'glColorMaski' index r g b a@
+--
+-- The parameter @r@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The parameter @g@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The parameter @b@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The parameter @a@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+
+
+glColorMaski :: MonadIO m => GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> m ()
+glColorMaski = ffiuintbooleanbooleanbooleanbooleanIOV glColorMaskiFunPtr
+
+glColorMaskiFunPtr :: FunPtr (GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ())
+glColorMaskiFunPtr = unsafePerformIO (getProcAddress "glColorMaski")
+
+{-# NOINLINE glColorMaskiFunPtr #-}
+
+-- | Usage: @'glCompileShader' shader@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCompileShader.xhtml>
+
+
+glCompileShader :: MonadIO m => GLuint -> m ()
+glCompileShader = ffiuintIOV glCompileShaderFunPtr
+
+glCompileShaderFunPtr :: FunPtr (GLuint -> IO ())
+glCompileShaderFunPtr = unsafePerformIO (getProcAddress "glCompileShader")
+
+{-# NOINLINE glCompileShaderFunPtr #-}
+
+-- | Usage: @'glCompressedTexImage1D' target level internalformat width border imageSize data@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- The parameter @data@ is a @CompressedTextureARB@.
+--
+-- The length of @data@ should be @imageSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCompressedTexImage1D.xhtml>
+
+
+glCompressedTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
+glCompressedTexImage1D = ffienumintenumsizeiintsizeiPtrVIOV glCompressedTexImage1DFunPtr
+
+glCompressedTexImage1DFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ())
+glCompressedTexImage1DFunPtr = unsafePerformIO (getProcAddress "glCompressedTexImage1D")
+
+{-# NOINLINE glCompressedTexImage1DFunPtr #-}
+
+-- | Usage: @'glCompressedTexImage2D' target level internalformat width height border imageSize data@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- The parameter @data@ is a @CompressedTextureARB@.
+--
+-- The length of @data@ should be @imageSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCompressedTexImage2D.xhtml>
+
+
+glCompressedTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
+glCompressedTexImage2D = ffienumintenumsizeisizeiintsizeiPtrVIOV glCompressedTexImage2DFunPtr
+
+glCompressedTexImage2DFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ())
+glCompressedTexImage2DFunPtr = unsafePerformIO (getProcAddress "glCompressedTexImage2D")
+
+{-# NOINLINE glCompressedTexImage2DFunPtr #-}
+
+-- | Usage: @'glCompressedTexImage3D' target level internalformat width height depth border imageSize data@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- The parameter @data@ is a @CompressedTextureARB@.
+--
+-- The length of @data@ should be @imageSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCompressedTexImage3D.xhtml>
+
+
+glCompressedTexImage3D :: MonadIO m => GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> m ()
+glCompressedTexImage3D = ffienumintenumsizeisizeisizeiintsizeiPtrVIOV glCompressedTexImage3DFunPtr
+
+glCompressedTexImage3DFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr () -> IO ())
+glCompressedTexImage3DFunPtr = unsafePerformIO (getProcAddress "glCompressedTexImage3D")
+
+{-# NOINLINE glCompressedTexImage3DFunPtr #-}
+
+-- | Usage: @'glCompressedTexSubImage1D' target level xoffset width format imageSize data@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @data@ is a @CompressedTextureARB@.
+--
+-- The length of @data@ should be @imageSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCompressedTexSubImage1D.xhtml>
+
+
+glCompressedTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
+glCompressedTexSubImage1D = ffienumintintsizeienumsizeiPtrVIOV glCompressedTexSubImage1DFunPtr
+
+glCompressedTexSubImage1DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
+glCompressedTexSubImage1DFunPtr = unsafePerformIO (getProcAddress "glCompressedTexSubImage1D")
+
+{-# NOINLINE glCompressedTexSubImage1DFunPtr #-}
+
+-- | Usage: @'glCompressedTexSubImage2D' target level xoffset yoffset width height format imageSize data@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @yoffset@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @data@ is a @CompressedTextureARB@.
+--
+-- The length of @data@ should be @imageSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCompressedTexSubImage2D.xhtml>
+
+
+glCompressedTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
+glCompressedTexSubImage2D = ffienumintintintsizeisizeienumsizeiPtrVIOV glCompressedTexSubImage2DFunPtr
+
+glCompressedTexSubImage2DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
+glCompressedTexSubImage2DFunPtr = unsafePerformIO (getProcAddress "glCompressedTexSubImage2D")
+
+{-# NOINLINE glCompressedTexSubImage2DFunPtr #-}
+
+-- | Usage: @'glCompressedTexSubImage3D' target level xoffset yoffset zoffset width height depth format imageSize data@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @yoffset@ is a @CheckedInt32@.
+--
+-- The parameter @zoffset@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @data@ is a @CompressedTextureARB@.
+--
+-- The length of @data@ should be @imageSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCompressedTexSubImage3D.xhtml>
+
+
+glCompressedTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
+glCompressedTexSubImage3D = ffienumintintintintsizeisizeisizeienumsizeiPtrVIOV glCompressedTexSubImage3DFunPtr
+
+glCompressedTexSubImage3DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
+glCompressedTexSubImage3DFunPtr = unsafePerformIO (getProcAddress "glCompressedTexSubImage3D")
+
+{-# NOINLINE glCompressedTexSubImage3DFunPtr #-}
+
+-- | Usage: @'glCopyBufferSubData' readTarget writeTarget readOffset writeOffset size@
+--
+-- The parameter @readOffset@ is a @BufferOffset@.
+--
+-- The parameter @writeOffset@ is a @BufferOffset@.
+--
+-- The parameter @size@ is a @BufferSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCopyBufferSubData.xhtml>
+
+
+glCopyBufferSubData :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> m ()
+glCopyBufferSubData = ffienumenumintptrintptrsizeiptrIOV glCopyBufferSubDataFunPtr
+
+glCopyBufferSubDataFunPtr :: FunPtr (GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> IO ())
+glCopyBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glCopyBufferSubData")
+
+{-# NOINLINE glCopyBufferSubDataFunPtr #-}
+
+-- | Usage: @'glCopyTexImage1D' target level internalformat x y width border@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCopyTexImage1D.xhtml>
+
+
+glCopyTexImage1D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> m ()
+glCopyTexImage1D = ffienumintenumintintsizeiintIOV glCopyTexImage1DFunPtr
+
+glCopyTexImage1DFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> IO ())
+glCopyTexImage1DFunPtr = unsafePerformIO (getProcAddress "glCopyTexImage1D")
+
+{-# NOINLINE glCopyTexImage1DFunPtr #-}
+
+-- | Usage: @'glCopyTexImage2D' target level internalformat x y width height border@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @InternalFormat@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA12', 'Graphics.GL.Internal.Shared.GL_ALPHA16', @GL_ALPHA16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_ALPHA4', 'Graphics.GL.Internal.Shared.GL_ALPHA8', @GL_ALPHA_ICC_SGIX@, 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT16_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT24_SGIX', 'Graphics.GL.Ext.SGIX.DepthTexture.GL_DEPTH_COMPONENT32_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE12_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE16_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_LUMINANCE_ALPHA8_SGIS', 'Graphics.GL.Internal.Shared.GL_INTENSITY', 'Graphics.GL.Internal.Shared.GL_INTENSITY12', 'Graphics.GL.Internal.Shared.GL_INTENSITY16', @GL_INTENSITY16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_INTENSITY4', 'Graphics.GL.Internal.Shared.GL_INTENSITY8', @GL_INTENSITY_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA12', 'Graphics.GL.Internal.Shared.GL_LUMINANCE12_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16', 'Graphics.GL.Internal.Shared.GL_LUMINANCE16_ALPHA16', @GL_LUMINANCE16_ALPHA8_ICC_SGIX@, @GL_LUMINANCE16_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_LUMINANCE4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE4_ALPHA4', 'Graphics.GL.Internal.Shared.GL_LUMINANCE6_ALPHA2', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8', 'Graphics.GL.Internal.Shared.GL_LUMINANCE8_ALPHA8', @GL_LUMINANCE_ALPHA_ICC_SGIX@, @GL_LUMINANCE_ICC_SGIX@, 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_ALPHA8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_INTENSITY8_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE4_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_LUMINANCE8_SGIS', 'Graphics.GL.Internal.Shared.GL_R3_G3_B2', @GL_R5_G6_B5_A8_ICC_SGIX@, @GL_R5_G6_B5_ICC_SGIX@, 'Graphics.GL.Internal.Shared.GL_RGB10', 'Graphics.GL.Internal.Shared.GL_RGB10_A2', 'Graphics.GL.Internal.Shared.GL_RGB12', 'Graphics.GL.Internal.Shared.GL_RGB16', 'Graphics.GL.Ext.EXT.Texture.GL_RGB2_EXT', 'Graphics.GL.Internal.Shared.GL_RGB4', 'Graphics.GL.Internal.Shared.GL_RGB5', 'Graphics.GL.Internal.Shared.GL_RGB5_A1', 'Graphics.GL.Internal.Shared.GL_RGB8', 'Graphics.GL.Internal.Shared.GL_RGBA12', 'Graphics.GL.Internal.Shared.GL_RGBA16', 'Graphics.GL.Internal.Shared.GL_RGBA2', 'Graphics.GL.Internal.Shared.GL_RGBA4', 'Graphics.GL.Internal.Shared.GL_RGBA8', @GL_RGBA_ICC_SGIX@, @GL_RGB_ICC_SGIX@.
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCopyTexImage2D.xhtml>
+
+
+glCopyTexImage2D :: MonadIO m => GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> m ()
+glCopyTexImage2D = ffienumintenumintintsizeisizeiintIOV glCopyTexImage2DFunPtr
+
+glCopyTexImage2DFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> IO ())
+glCopyTexImage2DFunPtr = unsafePerformIO (getProcAddress "glCopyTexImage2D")
+
+{-# NOINLINE glCopyTexImage2DFunPtr #-}
+
+-- | Usage: @'glCopyTexSubImage1D' target level xoffset x y width@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCopyTexSubImage1D.xhtml>
+
+
+glCopyTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()
+glCopyTexSubImage1D = ffienumintintintintsizeiIOV glCopyTexSubImage1DFunPtr
+
+glCopyTexSubImage1DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ())
+glCopyTexSubImage1DFunPtr = unsafePerformIO (getProcAddress "glCopyTexSubImage1D")
+
+{-# NOINLINE glCopyTexSubImage1DFunPtr #-}
+
+-- | Usage: @'glCopyTexSubImage2D' target level xoffset yoffset x y width height@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @yoffset@ is a @CheckedInt32@.
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCopyTexSubImage2D.xhtml>
+
+
+glCopyTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
+glCopyTexSubImage2D = ffienumintintintintintsizeisizeiIOV glCopyTexSubImage2DFunPtr
+
+glCopyTexSubImage2DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+glCopyTexSubImage2DFunPtr = unsafePerformIO (getProcAddress "glCopyTexSubImage2D")
+
+{-# NOINLINE glCopyTexSubImage2DFunPtr #-}
+
+-- | Usage: @'glCopyTexSubImage3D' target level xoffset yoffset zoffset x y width height@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @yoffset@ is a @CheckedInt32@.
+--
+-- The parameter @zoffset@ is a @CheckedInt32@.
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCopyTexSubImage3D.xhtml>
+
+
+glCopyTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
+glCopyTexSubImage3D = ffienumintintintintintintsizeisizeiIOV glCopyTexSubImage3DFunPtr
+
+glCopyTexSubImage3DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+glCopyTexSubImage3DFunPtr = unsafePerformIO (getProcAddress "glCopyTexSubImage3D")
+
+{-# NOINLINE glCopyTexSubImage3DFunPtr #-}
+
+-- | Usage: @'glCreateProgram'@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCreateProgram.xhtml>
+
+
+glCreateProgram :: MonadIO m => m GLuint
+glCreateProgram = ffiIOuint glCreateProgramFunPtr
+
+glCreateProgramFunPtr :: FunPtr (IO GLuint)
+glCreateProgramFunPtr = unsafePerformIO (getProcAddress "glCreateProgram")
+
+{-# NOINLINE glCreateProgramFunPtr #-}
+
+-- | Usage: @'glCreateShader' type@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCreateShader.xhtml>
+
+
+glCreateShader :: MonadIO m => GLenum -> m GLuint
+glCreateShader = ffienumIOuint glCreateShaderFunPtr
+
+glCreateShaderFunPtr :: FunPtr (GLenum -> IO GLuint)
+glCreateShaderFunPtr = unsafePerformIO (getProcAddress "glCreateShader")
+
+{-# NOINLINE glCreateShaderFunPtr #-}
+
+-- | Usage: @'glCullFace' mode@
+--
+-- The parameter @mode@ is a @CullFaceMode@, one of: 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCullFace.xhtml>
+
+
+glCullFace :: MonadIO m => GLenum -> m ()
+glCullFace = ffienumIOV glCullFaceFunPtr
+
+glCullFaceFunPtr :: FunPtr (GLenum -> IO ())
+glCullFaceFunPtr = unsafePerformIO (getProcAddress "glCullFace")
+
+{-# NOINLINE glCullFaceFunPtr #-}
+
+-- | Usage: @'glDeleteBuffers' n buffers@
+--
+-- The length of @buffers@ should be @n@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDeleteBuffers.xhtml>
+
+
+glDeleteBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteBuffers = ffisizeiPtruintIOV glDeleteBuffersFunPtr
+
+glDeleteBuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteBuffersFunPtr = unsafePerformIO (getProcAddress "glDeleteBuffers")
+
+{-# NOINLINE glDeleteBuffersFunPtr #-}
+
+-- | Usage: @'glDeleteFramebuffers' n framebuffers@
+--
+-- The length of @framebuffers@ should be @n@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDeleteFramebuffers.xhtml>
+
+
+glDeleteFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteFramebuffers = ffisizeiPtruintIOV glDeleteFramebuffersFunPtr
+
+glDeleteFramebuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteFramebuffersFunPtr = unsafePerformIO (getProcAddress "glDeleteFramebuffers")
+
+{-# NOINLINE glDeleteFramebuffersFunPtr #-}
+
+-- | Usage: @'glDeleteProgram' program@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDeleteProgram.xhtml>
+
+
+glDeleteProgram :: MonadIO m => GLuint -> m ()
+glDeleteProgram = ffiuintIOV glDeleteProgramFunPtr
+
+glDeleteProgramFunPtr :: FunPtr (GLuint -> IO ())
+glDeleteProgramFunPtr = unsafePerformIO (getProcAddress "glDeleteProgram")
+
+{-# NOINLINE glDeleteProgramFunPtr #-}
+
+-- | Usage: @'glDeleteQueries' n ids@
+--
+-- The length of @ids@ should be @n@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDeleteQueries.xhtml>
+
+
+glDeleteQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteQueries = ffisizeiPtruintIOV glDeleteQueriesFunPtr
+
+glDeleteQueriesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteQueriesFunPtr = unsafePerformIO (getProcAddress "glDeleteQueries")
+
+{-# NOINLINE glDeleteQueriesFunPtr #-}
+
+-- | Usage: @'glDeleteRenderbuffers' n renderbuffers@
+--
+-- The length of @renderbuffers@ should be @n@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDeleteRenderbuffers.xhtml>
+
+
+glDeleteRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteRenderbuffers = ffisizeiPtruintIOV glDeleteRenderbuffersFunPtr
+
+glDeleteRenderbuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteRenderbuffersFunPtr = unsafePerformIO (getProcAddress "glDeleteRenderbuffers")
+
+{-# NOINLINE glDeleteRenderbuffersFunPtr #-}
+
+-- | Usage: @'glDeleteShader' shader@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDeleteShader.xhtml>
+
+
+glDeleteShader :: MonadIO m => GLuint -> m ()
+glDeleteShader = ffiuintIOV glDeleteShaderFunPtr
+
+glDeleteShaderFunPtr :: FunPtr (GLuint -> IO ())
+glDeleteShaderFunPtr = unsafePerformIO (getProcAddress "glDeleteShader")
+
+{-# NOINLINE glDeleteShaderFunPtr #-}
+
+-- | Usage: @'glDeleteSync' sync@
+--
+-- The parameter @sync@ is a @sync@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDeleteSync.xhtml>
+
+
+glDeleteSync :: MonadIO m => GLsync -> m ()
+glDeleteSync = ffisyncIOV glDeleteSyncFunPtr
+
+glDeleteSyncFunPtr :: FunPtr (GLsync -> IO ())
+glDeleteSyncFunPtr = unsafePerformIO (getProcAddress "glDeleteSync")
+
+{-# NOINLINE glDeleteSyncFunPtr #-}
+
+-- | Usage: @'glDeleteTextures' n textures@
+--
+-- The parameter @textures@ is a @Texture@.
+--
+-- The length of @textures@ should be @n@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDeleteTextures.xhtml>
+
+
+glDeleteTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteTextures = ffisizeiPtruintIOV glDeleteTexturesFunPtr
+
+glDeleteTexturesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteTexturesFunPtr = unsafePerformIO (getProcAddress "glDeleteTextures")
+
+{-# NOINLINE glDeleteTexturesFunPtr #-}
+
+-- | Usage: @'glDeleteVertexArrays' n arrays@
+--
+-- The length of @arrays@ should be @n@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDeleteVertexArrays.xhtml>
+
+
+glDeleteVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteVertexArrays = ffisizeiPtruintIOV glDeleteVertexArraysFunPtr
+
+glDeleteVertexArraysFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteVertexArraysFunPtr = unsafePerformIO (getProcAddress "glDeleteVertexArrays")
+
+{-# NOINLINE glDeleteVertexArraysFunPtr #-}
+
+-- | Usage: @'glDepthFunc' func@
+--
+-- The parameter @func@ is a @DepthFunction@, one of: 'Graphics.GL.Internal.Shared.GL_ALWAYS', 'Graphics.GL.Internal.Shared.GL_EQUAL', 'Graphics.GL.Internal.Shared.GL_GEQUAL', 'Graphics.GL.Internal.Shared.GL_GREATER', 'Graphics.GL.Internal.Shared.GL_LEQUAL', 'Graphics.GL.Internal.Shared.GL_LESS', 'Graphics.GL.Internal.Shared.GL_NEVER', 'Graphics.GL.Internal.Shared.GL_NOTEQUAL'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDepthFunc.xhtml>
+
+
+glDepthFunc :: MonadIO m => GLenum -> m ()
+glDepthFunc = ffienumIOV glDepthFuncFunPtr
+
+glDepthFuncFunPtr :: FunPtr (GLenum -> IO ())
+glDepthFuncFunPtr = unsafePerformIO (getProcAddress "glDepthFunc")
+
+{-# NOINLINE glDepthFuncFunPtr #-}
+
+-- | Usage: @'glDepthMask' flag@
+--
+-- The parameter @flag@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDepthMask.xhtml>
+
+
+glDepthMask :: MonadIO m => GLboolean -> m ()
+glDepthMask = ffibooleanIOV glDepthMaskFunPtr
+
+glDepthMaskFunPtr :: FunPtr (GLboolean -> IO ())
+glDepthMaskFunPtr = unsafePerformIO (getProcAddress "glDepthMask")
+
+{-# NOINLINE glDepthMaskFunPtr #-}
+
+-- | Usage: @'glDepthRange' near far@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDepthRange.xhtml>
+
+
+glDepthRange :: MonadIO m => GLdouble -> GLdouble -> m ()
+glDepthRange = ffidoubledoubleIOV glDepthRangeFunPtr
+
+glDepthRangeFunPtr :: FunPtr (GLdouble -> GLdouble -> IO ())
+glDepthRangeFunPtr = unsafePerformIO (getProcAddress "glDepthRange")
+
+{-# NOINLINE glDepthRangeFunPtr #-}
+
+-- | Usage: @'glDetachShader' program shader@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDetachShader.xhtml>
+
+
+glDetachShader :: MonadIO m => GLuint -> GLuint -> m ()
+glDetachShader = ffiuintuintIOV glDetachShaderFunPtr
+
+glDetachShaderFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
+glDetachShaderFunPtr = unsafePerformIO (getProcAddress "glDetachShader")
+
+{-# NOINLINE glDetachShaderFunPtr #-}
+
+-- | Usage: @'glDisable' cap@
+--
+-- The parameter @cap@ is a @EnableCap@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Internal.Shared.GL_BLEND', 'Graphics.GL.Ext.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Internal.Shared.GL_DITHER', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Internal.Shared.GL_FOG', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Ext.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Ext.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Ext.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Ext.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Ext.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY'.
+
+
+glDisable :: MonadIO m => GLenum -> m ()
+glDisable = ffienumIOV glDisableFunPtr
+
+glDisableFunPtr :: FunPtr (GLenum -> IO ())
+glDisableFunPtr = unsafePerformIO (getProcAddress "glDisable")
+
+{-# NOINLINE glDisableFunPtr #-}
+
+-- | Usage: @'glDisableVertexAttribArray' index@
+
+
+glDisableVertexAttribArray :: MonadIO m => GLuint -> m ()
+glDisableVertexAttribArray = ffiuintIOV glDisableVertexAttribArrayFunPtr
+
+glDisableVertexAttribArrayFunPtr :: FunPtr (GLuint -> IO ())
+glDisableVertexAttribArrayFunPtr = unsafePerformIO (getProcAddress "glDisableVertexAttribArray")
+
+{-# NOINLINE glDisableVertexAttribArrayFunPtr #-}
+
+-- | Usage: @'glDisablei' target index@
+
+
+glDisablei :: MonadIO m => GLenum -> GLuint -> m ()
+glDisablei = ffienumuintIOV glDisableiFunPtr
+
+glDisableiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glDisableiFunPtr = unsafePerformIO (getProcAddress "glDisablei")
+
+{-# NOINLINE glDisableiFunPtr #-}
+
+-- | Usage: @'glDrawArrays' mode first count@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawArrays.xhtml>
+
+
+glDrawArrays :: MonadIO m => GLenum -> GLint -> GLsizei -> m ()
+glDrawArrays = ffienumintsizeiIOV glDrawArraysFunPtr
+
+glDrawArraysFunPtr :: FunPtr (GLenum -> GLint -> GLsizei -> IO ())
+glDrawArraysFunPtr = unsafePerformIO (getProcAddress "glDrawArrays")
+
+{-# NOINLINE glDrawArraysFunPtr #-}
+
+-- | Usage: @'glDrawArraysInstanced' mode first count instancecount@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawArraysInstanced.xhtml>
+
+
+glDrawArraysInstanced :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()
+glDrawArraysInstanced = ffienumintsizeisizeiIOV glDrawArraysInstancedFunPtr
+
+glDrawArraysInstancedFunPtr :: FunPtr (GLenum -> GLint -> GLsizei -> GLsizei -> IO ())
+glDrawArraysInstancedFunPtr = unsafePerformIO (getProcAddress "glDrawArraysInstanced")
+
+{-# NOINLINE glDrawArraysInstancedFunPtr #-}
+
+-- | Usage: @'glDrawBuffer' buf@
+--
+-- The parameter @buf@ is a @DrawBufferMode@, one of: 'Graphics.GL.Internal.Shared.GL_AUX0', 'Graphics.GL.Internal.Shared.GL_AUX1', 'Graphics.GL.Internal.Shared.GL_AUX2', 'Graphics.GL.Internal.Shared.GL_AUX3', 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_BACK_LEFT', 'Graphics.GL.Internal.Shared.GL_BACK_RIGHT', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT_LEFT', 'Graphics.GL.Internal.Shared.GL_FRONT_RIGHT', 'Graphics.GL.Internal.Shared.GL_LEFT', 'Graphics.GL.Internal.Shared.GL_NONE', 'Graphics.GL.Ext.OES.FramebufferObject.GL_NONE_OES', 'Graphics.GL.Internal.Shared.GL_RIGHT'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawBuffer.xhtml>
+
+
+glDrawBuffer :: MonadIO m => GLenum -> m ()
+glDrawBuffer = ffienumIOV glDrawBufferFunPtr
+
+glDrawBufferFunPtr :: FunPtr (GLenum -> IO ())
+glDrawBufferFunPtr = unsafePerformIO (getProcAddress "glDrawBuffer")
+
+{-# NOINLINE glDrawBufferFunPtr #-}
+
+-- | Usage: @'glDrawBuffers' n bufs@
+--
+-- The parameter @bufs@ is a @DrawBufferModeATI@.
+--
+-- The length of @bufs@ should be @n@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawBuffers.xhtml>
+
+
+glDrawBuffers :: MonadIO m => GLsizei -> Ptr GLenum -> m ()
+glDrawBuffers = ffisizeiPtrenumIOV glDrawBuffersFunPtr
+
+glDrawBuffersFunPtr :: FunPtr (GLsizei -> Ptr GLenum -> IO ())
+glDrawBuffersFunPtr = unsafePerformIO (getProcAddress "glDrawBuffers")
+
+{-# NOINLINE glDrawBuffersFunPtr #-}
+
+-- | Usage: @'glDrawElements' mode count type indices@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- The parameter @type@ is a @DrawElementsType@.
+--
+-- The length of @indices@ should be @COMPSIZE(count,type)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawElements.xhtml>
+
+
+glDrawElements :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> m ()
+glDrawElements = ffienumsizeienumPtrVIOV glDrawElementsFunPtr
+
+glDrawElementsFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> IO ())
+glDrawElementsFunPtr = unsafePerformIO (getProcAddress "glDrawElements")
+
+{-# NOINLINE glDrawElementsFunPtr #-}
+
+-- | Usage: @'glDrawElementsBaseVertex' mode count type indices basevertex@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- The parameter @type@ is a @DrawElementsType@.
+--
+-- The length of @indices@ should be @COMPSIZE(count,type)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawElementsBaseVertex.xhtml>
+
+
+glDrawElementsBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLint -> m ()
+glDrawElementsBaseVertex = ffienumsizeienumPtrVintIOV glDrawElementsBaseVertexFunPtr
+
+glDrawElementsBaseVertexFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLint -> IO ())
+glDrawElementsBaseVertexFunPtr = unsafePerformIO (getProcAddress "glDrawElementsBaseVertex")
+
+{-# NOINLINE glDrawElementsBaseVertexFunPtr #-}
+
+-- | Usage: @'glDrawElementsInstanced' mode count type indices instancecount@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- The parameter @type@ is a @DrawElementsType@.
+--
+-- The length of @indices@ should be @COMPSIZE(count,type)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawElementsInstanced.xhtml>
+
+
+glDrawElementsInstanced :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> m ()
+glDrawElementsInstanced = ffienumsizeienumPtrVsizeiIOV glDrawElementsInstancedFunPtr
+
+glDrawElementsInstancedFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> IO ())
+glDrawElementsInstancedFunPtr = unsafePerformIO (getProcAddress "glDrawElementsInstanced")
+
+{-# NOINLINE glDrawElementsInstancedFunPtr #-}
+
+-- | Usage: @'glDrawElementsInstancedBaseVertex' mode count type indices instancecount basevertex@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- The parameter @type@ is a @DrawElementsType@.
+--
+-- The length of @indices@ should be @COMPSIZE(count,type)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawElementsInstancedBaseVertex.xhtml>
+
+
+glDrawElementsInstancedBaseVertex :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> m ()
+glDrawElementsInstancedBaseVertex = ffienumsizeienumPtrVsizeiintIOV glDrawElementsInstancedBaseVertexFunPtr
+
+glDrawElementsInstancedBaseVertexFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> IO ())
+glDrawElementsInstancedBaseVertexFunPtr = unsafePerformIO (getProcAddress "glDrawElementsInstancedBaseVertex")
+
+{-# NOINLINE glDrawElementsInstancedBaseVertexFunPtr #-}
+
+-- | Usage: @'glDrawRangeElements' mode start end count type indices@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- The parameter @type@ is a @DrawElementsType@.
+--
+-- The length of @indices@ should be @COMPSIZE(count,type)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawRangeElements.xhtml>
+
+
+glDrawRangeElements :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> m ()
+glDrawRangeElements = ffienumuintuintsizeienumPtrVIOV glDrawRangeElementsFunPtr
+
+glDrawRangeElementsFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> IO ())
+glDrawRangeElementsFunPtr = unsafePerformIO (getProcAddress "glDrawRangeElements")
+
+{-# NOINLINE glDrawRangeElementsFunPtr #-}
+
+-- | Usage: @'glDrawRangeElementsBaseVertex' mode start end count type indices basevertex@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- The parameter @type@ is a @DrawElementsType@.
+--
+-- The length of @indices@ should be @COMPSIZE(count,type)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawRangeElementsBaseVertex.xhtml>
+
+
+glDrawRangeElementsBaseVertex :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> GLint -> m ()
+glDrawRangeElementsBaseVertex = ffienumuintuintsizeienumPtrVintIOV glDrawRangeElementsBaseVertexFunPtr
+
+glDrawRangeElementsBaseVertexFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> GLint -> IO ())
+glDrawRangeElementsBaseVertexFunPtr = unsafePerformIO (getProcAddress "glDrawRangeElementsBaseVertex")
+
+{-# NOINLINE glDrawRangeElementsBaseVertexFunPtr #-}
+
+-- | Usage: @'glEnable' cap@
+--
+-- The parameter @cap@ is a @EnableCap@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Internal.Shared.GL_BLEND', 'Graphics.GL.Ext.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Internal.Shared.GL_DITHER', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Internal.Shared.GL_FOG', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Ext.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Ext.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Ext.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Ext.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Ext.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glEnable.xhtml>
+
+
+glEnable :: MonadIO m => GLenum -> m ()
+glEnable = ffienumIOV glEnableFunPtr
+
+glEnableFunPtr :: FunPtr (GLenum -> IO ())
+glEnableFunPtr = unsafePerformIO (getProcAddress "glEnable")
+
+{-# NOINLINE glEnableFunPtr #-}
+
+-- | Usage: @'glEnableVertexAttribArray' index@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glEnableVertexAttribArray.xhtml>
+
+
+glEnableVertexAttribArray :: MonadIO m => GLuint -> m ()
+glEnableVertexAttribArray = ffiuintIOV glEnableVertexAttribArrayFunPtr
+
+glEnableVertexAttribArrayFunPtr :: FunPtr (GLuint -> IO ())
+glEnableVertexAttribArrayFunPtr = unsafePerformIO (getProcAddress "glEnableVertexAttribArray")
+
+{-# NOINLINE glEnableVertexAttribArrayFunPtr #-}
+
+-- | Usage: @'glEnablei' target index@
+
+
+glEnablei :: MonadIO m => GLenum -> GLuint -> m ()
+glEnablei = ffienumuintIOV glEnableiFunPtr
+
+glEnableiFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glEnableiFunPtr = unsafePerformIO (getProcAddress "glEnablei")
+
+{-# NOINLINE glEnableiFunPtr #-}
+
+-- | Usage: @'glEndConditionalRender'@
+
+
+glEndConditionalRender :: MonadIO m => m ()
+glEndConditionalRender = ffiIOV glEndConditionalRenderFunPtr
+
+glEndConditionalRenderFunPtr :: FunPtr (IO ())
+glEndConditionalRenderFunPtr = unsafePerformIO (getProcAddress "glEndConditionalRender")
+
+{-# NOINLINE glEndConditionalRenderFunPtr #-}
+
+-- | Usage: @'glEndQuery' target@
+
+
+glEndQuery :: MonadIO m => GLenum -> m ()
+glEndQuery = ffienumIOV glEndQueryFunPtr
+
+glEndQueryFunPtr :: FunPtr (GLenum -> IO ())
+glEndQueryFunPtr = unsafePerformIO (getProcAddress "glEndQuery")
+
+{-# NOINLINE glEndQueryFunPtr #-}
+
+-- | Usage: @'glEndTransformFeedback'@
+
+
+glEndTransformFeedback :: MonadIO m => m ()
+glEndTransformFeedback = ffiIOV glEndTransformFeedbackFunPtr
+
+glEndTransformFeedbackFunPtr :: FunPtr (IO ())
+glEndTransformFeedbackFunPtr = unsafePerformIO (getProcAddress "glEndTransformFeedback")
+
+{-# NOINLINE glEndTransformFeedbackFunPtr #-}
+
+-- | Usage: @'glFenceSync' condition flags@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glFenceSync.xhtml>
+
+
+glFenceSync :: MonadIO m => GLenum -> GLbitfield -> m GLsync
+glFenceSync = ffienumbitfieldIOsync glFenceSyncFunPtr
+
+glFenceSyncFunPtr :: FunPtr (GLenum -> GLbitfield -> IO GLsync)
+glFenceSyncFunPtr = unsafePerformIO (getProcAddress "glFenceSync")
+
+{-# NOINLINE glFenceSyncFunPtr #-}
+
+-- | Usage: @'glFinish'@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glFinish.xhtml>
+
+
+glFinish :: MonadIO m => m ()
+glFinish = ffiIOV glFinishFunPtr
+
+glFinishFunPtr :: FunPtr (IO ())
+glFinishFunPtr = unsafePerformIO (getProcAddress "glFinish")
+
+{-# NOINLINE glFinishFunPtr #-}
+
+-- | Usage: @'glFlush'@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glFlush.xhtml>
+
+
+glFlush :: MonadIO m => m ()
+glFlush = ffiIOV glFlushFunPtr
+
+glFlushFunPtr :: FunPtr (IO ())
+glFlushFunPtr = unsafePerformIO (getProcAddress "glFlush")
+
+{-# NOINLINE glFlushFunPtr #-}
+
+-- | Usage: @'glFlushMappedBufferRange' target offset length@
+--
+-- The parameter @target@ is a @BufferTargetARB@.
+--
+-- The parameter @offset@ is a @BufferOffset@.
+--
+-- The parameter @length@ is a @BufferSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glFlushMappedBufferRange.xhtml>
+
+
+glFlushMappedBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> m ()
+glFlushMappedBufferRange = ffienumintptrsizeiptrIOV glFlushMappedBufferRangeFunPtr
+
+glFlushMappedBufferRangeFunPtr :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> IO ())
+glFlushMappedBufferRangeFunPtr = unsafePerformIO (getProcAddress "glFlushMappedBufferRange")
+
+{-# NOINLINE glFlushMappedBufferRangeFunPtr #-}
+
+-- | Usage: @'glFramebufferRenderbuffer' target attachment renderbuffertarget renderbuffer@
+--
+-- The parameter @target@ is a @FramebufferTarget@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+--
+-- The parameter @renderbuffertarget@ is a @RenderbufferTarget@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glFramebufferRenderbuffer.xhtml>
+
+
+glFramebufferRenderbuffer :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> m ()
+glFramebufferRenderbuffer = ffienumenumenumuintIOV glFramebufferRenderbufferFunPtr
+
+glFramebufferRenderbufferFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> IO ())
+glFramebufferRenderbufferFunPtr = unsafePerformIO (getProcAddress "glFramebufferRenderbuffer")
+
+{-# NOINLINE glFramebufferRenderbufferFunPtr #-}
+
+-- | Usage: @'glFramebufferTexture' target attachment texture level@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glFramebufferTexture.xhtml>
+
+
+glFramebufferTexture :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> m ()
+glFramebufferTexture = ffienumenumuintintIOV glFramebufferTextureFunPtr
+
+glFramebufferTextureFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> IO ())
+glFramebufferTextureFunPtr = unsafePerformIO (getProcAddress "glFramebufferTexture")
+
+{-# NOINLINE glFramebufferTextureFunPtr #-}
+
+-- | Usage: @'glFramebufferTexture1D' target attachment textarget texture level@
+--
+-- The parameter @target@ is a @FramebufferTarget@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+
+
+glFramebufferTexture1D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()
+glFramebufferTexture1D = ffienumenumenumuintintIOV glFramebufferTexture1DFunPtr
+
+glFramebufferTexture1DFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> IO ())
+glFramebufferTexture1DFunPtr = unsafePerformIO (getProcAddress "glFramebufferTexture1D")
+
+{-# NOINLINE glFramebufferTexture1DFunPtr #-}
+
+-- | Usage: @'glFramebufferTexture2D' target attachment textarget texture level@
+--
+-- The parameter @target@ is a @FramebufferTarget@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+
+
+glFramebufferTexture2D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> m ()
+glFramebufferTexture2D = ffienumenumenumuintintIOV glFramebufferTexture2DFunPtr
+
+glFramebufferTexture2DFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> IO ())
+glFramebufferTexture2DFunPtr = unsafePerformIO (getProcAddress "glFramebufferTexture2D")
+
+{-# NOINLINE glFramebufferTexture2DFunPtr #-}
+
+-- | Usage: @'glFramebufferTexture3D' target attachment textarget texture level zoffset@
+--
+-- The parameter @target@ is a @FramebufferTarget@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+
+
+glFramebufferTexture3D :: MonadIO m => GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()
+glFramebufferTexture3D = ffienumenumenumuintintintIOV glFramebufferTexture3DFunPtr
+
+glFramebufferTexture3DFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ())
+glFramebufferTexture3DFunPtr = unsafePerformIO (getProcAddress "glFramebufferTexture3D")
+
+{-# NOINLINE glFramebufferTexture3DFunPtr #-}
+
+-- | Usage: @'glFramebufferTextureLayer' target attachment texture level layer@
+--
+-- The parameter @target@ is a @FramebufferTarget@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @layer@ is a @CheckedInt32@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glFramebufferTextureLayer.xhtml>
+
+
+glFramebufferTextureLayer :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()
+glFramebufferTextureLayer = ffienumenumuintintintIOV glFramebufferTextureLayerFunPtr
+
+glFramebufferTextureLayerFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ())
+glFramebufferTextureLayerFunPtr = unsafePerformIO (getProcAddress "glFramebufferTextureLayer")
+
+{-# NOINLINE glFramebufferTextureLayerFunPtr #-}
+
+-- | Usage: @'glFrontFace' mode@
+--
+-- The parameter @mode@ is a @FrontFaceDirection@, one of: 'Graphics.GL.Internal.Shared.GL_CCW', 'Graphics.GL.Internal.Shared.GL_CW'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glFrontFace.xhtml>
+
+
+glFrontFace :: MonadIO m => GLenum -> m ()
+glFrontFace = ffienumIOV glFrontFaceFunPtr
+
+glFrontFaceFunPtr :: FunPtr (GLenum -> IO ())
+glFrontFaceFunPtr = unsafePerformIO (getProcAddress "glFrontFace")
+
+{-# NOINLINE glFrontFaceFunPtr #-}
+
+-- | Usage: @'glGenBuffers' n buffers@
+--
+-- The length of @buffers@ should be @n@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGenBuffers.xhtml>
+
+
+glGenBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glGenBuffers = ffisizeiPtruintIOV glGenBuffersFunPtr
+
+glGenBuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glGenBuffersFunPtr = unsafePerformIO (getProcAddress "glGenBuffers")
+
+{-# NOINLINE glGenBuffersFunPtr #-}
+
+-- | Usage: @'glGenFramebuffers' n framebuffers@
+--
+-- The length of @framebuffers@ should be @n@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGenFramebuffers.xhtml>
+
+
+glGenFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glGenFramebuffers = ffisizeiPtruintIOV glGenFramebuffersFunPtr
+
+glGenFramebuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glGenFramebuffersFunPtr = unsafePerformIO (getProcAddress "glGenFramebuffers")
+
+{-# NOINLINE glGenFramebuffersFunPtr #-}
+
+-- | Usage: @'glGenQueries' n ids@
+--
+-- The length of @ids@ should be @n@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGenQueries.xhtml>
+
+
+glGenQueries :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glGenQueries = ffisizeiPtruintIOV glGenQueriesFunPtr
+
+glGenQueriesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glGenQueriesFunPtr = unsafePerformIO (getProcAddress "glGenQueries")
+
+{-# NOINLINE glGenQueriesFunPtr #-}
+
+-- | Usage: @'glGenRenderbuffers' n renderbuffers@
+--
+-- The length of @renderbuffers@ should be @n@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGenRenderbuffers.xhtml>
+
+
+glGenRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glGenRenderbuffers = ffisizeiPtruintIOV glGenRenderbuffersFunPtr
+
+glGenRenderbuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glGenRenderbuffersFunPtr = unsafePerformIO (getProcAddress "glGenRenderbuffers")
+
+{-# NOINLINE glGenRenderbuffersFunPtr #-}
+
+-- | Usage: @'glGenTextures' n textures@
+--
+-- The parameter @textures@ is a @Texture@.
+--
+-- The length of @textures@ should be @n@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGenTextures.xhtml>
+
+
+glGenTextures :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glGenTextures = ffisizeiPtruintIOV glGenTexturesFunPtr
+
+glGenTexturesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glGenTexturesFunPtr = unsafePerformIO (getProcAddress "glGenTextures")
+
+{-# NOINLINE glGenTexturesFunPtr #-}
+
+-- | Usage: @'glGenVertexArrays' n arrays@
+--
+-- The length of @arrays@ should be @n@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGenVertexArrays.xhtml>
+
+
+glGenVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glGenVertexArrays = ffisizeiPtruintIOV glGenVertexArraysFunPtr
+
+glGenVertexArraysFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glGenVertexArraysFunPtr = unsafePerformIO (getProcAddress "glGenVertexArrays")
+
+{-# NOINLINE glGenVertexArraysFunPtr #-}
+
+-- | Usage: @'glGenerateMipmap' target@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGenerateMipmap.xhtml>
+
+
+glGenerateMipmap :: MonadIO m => GLenum -> m ()
+glGenerateMipmap = ffienumIOV glGenerateMipmapFunPtr
+
+glGenerateMipmapFunPtr :: FunPtr (GLenum -> IO ())
+glGenerateMipmapFunPtr = unsafePerformIO (getProcAddress "glGenerateMipmap")
+
+{-# NOINLINE glGenerateMipmapFunPtr #-}
+
+-- | Usage: @'glGetActiveAttrib' program index bufSize length size type name@
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @size@ should be @1@.
+--
+-- The length of @type@ should be @1@.
+--
+-- The length of @name@ should be @bufSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetActiveAttrib.xhtml>
+
+
+glGetActiveAttrib :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()
+glGetActiveAttrib = ffiuintuintsizeiPtrsizeiPtrintPtrenumPtrcharIOV glGetActiveAttribFunPtr
+
+glGetActiveAttribFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> IO ())
+glGetActiveAttribFunPtr = unsafePerformIO (getProcAddress "glGetActiveAttrib")
+
+{-# NOINLINE glGetActiveAttribFunPtr #-}
+
+-- | Usage: @'glGetActiveUniform' program index bufSize length size type name@
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @size@ should be @1@.
+--
+-- The length of @type@ should be @1@.
+--
+-- The length of @name@ should be @bufSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetActiveUniform.xhtml>
+
+
+glGetActiveUniform :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> m ()
+glGetActiveUniform = ffiuintuintsizeiPtrsizeiPtrintPtrenumPtrcharIOV glGetActiveUniformFunPtr
+
+glGetActiveUniformFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> IO ())
+glGetActiveUniformFunPtr = unsafePerformIO (getProcAddress "glGetActiveUniform")
+
+{-# NOINLINE glGetActiveUniformFunPtr #-}
+
+-- | Usage: @'glGetActiveUniformBlockName' program uniformBlockIndex bufSize length uniformBlockName@
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @uniformBlockName@ should be @bufSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetActiveUniformBlockName.xhtml>
+
+
+glGetActiveUniformBlockName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
+glGetActiveUniformBlockName = ffiuintuintsizeiPtrsizeiPtrcharIOV glGetActiveUniformBlockNameFunPtr
+
+glGetActiveUniformBlockNameFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+glGetActiveUniformBlockNameFunPtr = unsafePerformIO (getProcAddress "glGetActiveUniformBlockName")
+
+{-# NOINLINE glGetActiveUniformBlockNameFunPtr #-}
+
+-- | Usage: @'glGetActiveUniformBlockiv' program uniformBlockIndex pname params@
+--
+-- The length of @params@ should be @COMPSIZE(program,uniformBlockIndex,pname)@.
+
+
+glGetActiveUniformBlockiv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()
+glGetActiveUniformBlockiv = ffiuintuintenumPtrintIOV glGetActiveUniformBlockivFunPtr
+
+glGetActiveUniformBlockivFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetActiveUniformBlockivFunPtr = unsafePerformIO (getProcAddress "glGetActiveUniformBlockiv")
+
+{-# NOINLINE glGetActiveUniformBlockivFunPtr #-}
+
+-- | Usage: @'glGetActiveUniformName' program uniformIndex bufSize length uniformName@
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @uniformName@ should be @bufSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetActiveUniformName.xhtml>
+
+
+glGetActiveUniformName :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
+glGetActiveUniformName = ffiuintuintsizeiPtrsizeiPtrcharIOV glGetActiveUniformNameFunPtr
+
+glGetActiveUniformNameFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+glGetActiveUniformNameFunPtr = unsafePerformIO (getProcAddress "glGetActiveUniformName")
+
+{-# NOINLINE glGetActiveUniformNameFunPtr #-}
+
+-- | Usage: @'glGetActiveUniformsiv' program uniformCount uniformIndices pname params@
+--
+-- The length of @uniformIndices@ should be @uniformCount@.
+--
+-- The length of @params@ should be @COMPSIZE(uniformCount,pname)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetActiveUniformsiv.xhtml>
+
+
+glGetActiveUniformsiv :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> GLenum -> Ptr GLint -> m ()
+glGetActiveUniformsiv = ffiuintsizeiPtruintenumPtrintIOV glGetActiveUniformsivFunPtr
+
+glGetActiveUniformsivFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetActiveUniformsivFunPtr = unsafePerformIO (getProcAddress "glGetActiveUniformsiv")
+
+{-# NOINLINE glGetActiveUniformsivFunPtr #-}
+
+-- | Usage: @'glGetAttachedShaders' program maxCount count shaders@
+--
+-- The length of @count@ should be @1@.
+--
+-- The length of @shaders@ should be @maxCount@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetAttachedShaders.xhtml>
+
+
+glGetAttachedShaders :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> m ()
+glGetAttachedShaders = ffiuintsizeiPtrsizeiPtruintIOV glGetAttachedShadersFunPtr
+
+glGetAttachedShadersFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> IO ())
+glGetAttachedShadersFunPtr = unsafePerformIO (getProcAddress "glGetAttachedShaders")
+
+{-# NOINLINE glGetAttachedShadersFunPtr #-}
+
+-- | Usage: @'glGetAttribLocation' program name@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetAttribLocation.xhtml>
+
+
+glGetAttribLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint
+glGetAttribLocation = ffiuintPtrcharIOint glGetAttribLocationFunPtr
+
+glGetAttribLocationFunPtr :: FunPtr (GLuint -> Ptr GLchar -> IO GLint)
+glGetAttribLocationFunPtr = unsafePerformIO (getProcAddress "glGetAttribLocation")
+
+{-# NOINLINE glGetAttribLocationFunPtr #-}
+
+-- | Usage: @'glGetBooleani_v' target index data@
+--
+-- The parameter @data@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @data@ should be @COMPSIZE(target)@.
+
+
+glGetBooleani_v :: MonadIO m => GLenum -> GLuint -> Ptr GLboolean -> m ()
+glGetBooleani_v = ffienumuintPtrbooleanIOV glGetBooleani_vFunPtr
+
+glGetBooleani_vFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLboolean -> IO ())
+glGetBooleani_vFunPtr = unsafePerformIO (getProcAddress "glGetBooleani_v")
+
+{-# NOINLINE glGetBooleani_vFunPtr #-}
+
+-- | Usage: @'glGetBooleanv' pname data@
+--
+-- The parameter @pname@ is a @GetPName@, one of: 'Graphics.GL.Internal.Shared.GL_ACCUM_ALPHA_BITS', 'Graphics.GL.Internal.Shared.GL_ACCUM_BLUE_BITS', 'Graphics.GL.Internal.Shared.GL_ACCUM_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_ACCUM_GREEN_BITS', 'Graphics.GL.Internal.Shared.GL_ACCUM_RED_BITS', 'Graphics.GL.Internal.Shared.GL_ALIASED_LINE_WIDTH_RANGE', 'Graphics.GL.Internal.Shared.GL_ALIASED_POINT_SIZE_RANGE', 'Graphics.GL.Internal.Shared.GL_ALPHA_BIAS', 'Graphics.GL.Internal.Shared.GL_ALPHA_BITS', 'Graphics.GL.Internal.Shared.GL_ALPHA_SCALE', 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST_FUNC', 'Graphics.GL.Ext.QCOM.AlphaTest.GL_ALPHA_TEST_FUNC_QCOM', 'Graphics.GL.Ext.QCOM.AlphaTest.GL_ALPHA_TEST_QCOM', 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST_REF', 'Graphics.GL.Ext.QCOM.AlphaTest.GL_ALPHA_TEST_REF_QCOM', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.Async.GL_ASYNC_MARKER_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_ATTRIB_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Internal.Shared.GL_AUX_BUFFERS', 'Graphics.GL.Internal.Shared.GL_BLEND', 'Graphics.GL.Ext.EXT.BlendColor.GL_BLEND_COLOR_EXT', 'Graphics.GL.Internal.Shared.GL_BLEND_DST', 'Graphics.GL.Ext.EXT.BlendMinmax.GL_BLEND_EQUATION_EXT', 'Graphics.GL.Internal.Shared.GL_BLEND_SRC', 'Graphics.GL.Internal.Shared.GL_BLUE_BIAS', 'Graphics.GL.Internal.Shared.GL_BLUE_BITS', 'Graphics.GL.Internal.Shared.GL_BLUE_SCALE', 'Graphics.GL.Ext.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Internal.Shared.GL_CLIENT_ATTRIB_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_COLOR_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY_SIZE', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_COLOR_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL_FACE', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL_PARAMETER', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_COLOR_MATRIX_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_COLOR_MATRIX_STACK_DEPTH_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_COLOR_WRITEMASK', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Ext.SGIX.ConvolutionAccuracy.GL_CONVOLUTION_HINT_SGIX', 'Graphics.GL.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Internal.Shared.GL_CULL_FACE_MODE', 'Graphics.GL.Internal.Shared.GL_CURRENT_COLOR', 'Graphics.GL.Internal.Shared.GL_CURRENT_INDEX', 'Graphics.GL.Internal.Shared.GL_CURRENT_NORMAL', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_COLOR', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_DISTANCE', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_INDEX', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_POSITION', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_POSITION_VALID', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_TEXTURE_COORDS', 'Graphics.GL.Internal.Shared.GL_CURRENT_TEXTURE_COORDS', 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_DEFORMATIONS_MASK_SGIX', 'Graphics.GL.Internal.Shared.GL_DEPTH_BIAS', 'Graphics.GL.Internal.Shared.GL_DEPTH_BITS', 'Graphics.GL.Internal.Shared.GL_DEPTH_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_DEPTH_FUNC', 'Graphics.GL.Internal.Shared.GL_DEPTH_RANGE', 'Graphics.GL.Internal.Shared.GL_DEPTH_SCALE', 'Graphics.GL.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Internal.Shared.GL_DEPTH_WRITEMASK', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_BINDING_SGIS', 'Graphics.GL.Ext.SGIS.PointParameters.GL_DISTANCE_ATTENUATION_SGIS', 'Graphics.GL.Internal.Shared.GL_DITHER', 'Graphics.GL.Internal.Shared.GL_DOUBLEBUFFER', 'Graphics.GL.Internal.Shared.GL_DRAW_BUFFER', 'Graphics.GL.Ext.EXT.MultiviewDrawBuffers.GL_DRAW_BUFFER_EXT', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_EDGE_FLAG_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_FEEDBACK_BUFFER_SIZE', 'Graphics.GL.Internal.Shared.GL_FEEDBACK_BUFFER_TYPE', 'Graphics.GL.Internal.Shared.GL_FOG', 'Graphics.GL.Internal.Shared.GL_FOG_COLOR', 'Graphics.GL.Internal.Shared.GL_FOG_DENSITY', 'Graphics.GL.Internal.Shared.GL_FOG_END', 'Graphics.GL.Ext.SGIS.FogFunction.GL_FOG_FUNC_POINTS_SGIS', 'Graphics.GL.Internal.Shared.GL_FOG_HINT', 'Graphics.GL.Internal.Shared.GL_FOG_INDEX', 'Graphics.GL.Internal.Shared.GL_FOG_MODE', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_VALUE_SGIX', 'Graphics.GL.Internal.Shared.GL_FOG_START', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_FACTOR_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Internal.Shared.GL_FRONT_FACE', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_HINT_SGIS', 'Graphics.GL.Internal.Shared.GL_GREEN_BIAS', 'Graphics.GL.Internal.Shared.GL_GREEN_BITS', 'Graphics.GL.Internal.Shared.GL_GREEN_SCALE', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_INDEX_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_INDEX_BITS', 'Graphics.GL.Internal.Shared.GL_INDEX_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_INDEX_MODE', 'Graphics.GL.Internal.Shared.GL_INDEX_OFFSET', 'Graphics.GL.Internal.Shared.GL_INDEX_SHIFT', 'Graphics.GL.Internal.Shared.GL_INDEX_WRITEMASK', 'Graphics.GL.Ext.SGIX.Instruments.GL_INSTRUMENT_MEASUREMENTS_SGIX', 'Graphics.GL.Ext.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Ext.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_LIGHT_ENV_MODE_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_COLOR_CONTROL', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_LOCAL_VIEWER', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_TWO_SIDE', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH_HINT', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE_PATTERN', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE_REPEAT', 'Graphics.GL.Internal.Shared.GL_LINE_WIDTH', 'Graphics.GL.Internal.Shared.GL_LINE_WIDTH_GRANULARITY', 'Graphics.GL.Internal.Shared.GL_LINE_WIDTH_RANGE', 'Graphics.GL.Internal.Shared.GL_LIST_BASE', 'Graphics.GL.Internal.Shared.GL_LIST_INDEX', 'Graphics.GL.Internal.Shared.GL_LIST_MODE', 'Graphics.GL.Internal.Shared.GL_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_LOGIC_OP_MODE', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_GRID_DOMAIN', 'Graphics.GL.Internal.Shared.GL_MAP1_GRID_SEGMENTS', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_GRID_DOMAIN', 'Graphics.GL.Internal.Shared.GL_MAP2_GRID_SEGMENTS', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP_COLOR', 'Graphics.GL.Internal.Shared.GL_MAP_STENCIL', 'Graphics.GL.Internal.Shared.GL_MATRIX_MODE', 'Graphics.GL.Ext.EXT.Texture3D.GL_MAX_3D_TEXTURE_SIZE_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_MAX_4D_TEXTURE_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_MAX_ACTIVE_LIGHTS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_MAX_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_MAX_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_MAX_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_MAX_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_MAX_ATTRIB_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_CLIENT_ATTRIB_STACK_DEPTH', 'Graphics.GL.Ext.SGIX.Clipmap.GL_MAX_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Internal.Shared.GL_MAX_CLIP_DISTANCES', 'Graphics.GL.Internal.Shared.GL_MAX_CLIP_PLANES', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI', 'Graphics.GL.Internal.Shared.GL_MAX_EVAL_ORDER', 'Graphics.GL.Ext.SGIS.FogFunction.GL_MAX_FOG_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_MAX_FRAGMENT_LIGHTS_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_MAX_FRAMEZOOM_FACTOR_SGIX', 'Graphics.GL.Internal.Shared.GL_MAX_LIGHTS', 'Graphics.GL.Internal.Shared.GL_MAX_LIST_NESTING', 'Graphics.GL.Internal.Shared.GL_MAX_MODELVIEW_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_NAME_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_PIXEL_MAP_TABLE', 'Graphics.GL.Internal.Shared.GL_MAX_PROJECTION_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_TEXTURE_SIZE', 'Graphics.GL.Internal.Shared.GL_MAX_TEXTURE_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_VIEWPORT_DIMS', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_MATRIX_EXT', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_STACK_DEPTH_EXT', 'Graphics.GL.Internal.Shared.GL_MODELVIEW_MATRIX', 'Graphics.GL.Internal.Shared.GL_MODELVIEW_STACK_DEPTH', 'Graphics.GL.Ext.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Internal.Shared.GL_NAME_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_NORMAL_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_PACK_ALIGNMENT', 'Graphics.GL.Ext.EXT.Cmyka.GL_PACK_CMYK_HINT_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PACK_IMAGE_DEPTH_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_PACK_IMAGE_HEIGHT_EXT', 'Graphics.GL.Internal.Shared.GL_PACK_LSB_FIRST', 'Graphics.GL.Ext.SGIX.Resample.GL_PACK_RESAMPLE_SGIX', 'Graphics.GL.Internal.Shared.GL_PACK_ROW_LENGTH', 'Graphics.GL.Ext.EXT.Texture3D.GL_PACK_SKIP_IMAGES_EXT', 'Graphics.GL.Internal.Shared.GL_PACK_SKIP_PIXELS', 'Graphics.GL.Internal.Shared.GL_PACK_SKIP_ROWS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PACK_SKIP_VOLUMES_SGIS', 'Graphics.GL.Ext.SGIX.Subsample.GL_PACK_SUBSAMPLE_RATE_SGIX', 'Graphics.GL.Internal.Shared.GL_PACK_SWAP_BYTES', 'Graphics.GL.Internal.Shared.GL_PERSPECTIVE_CORRECTION_HINT', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_A_TO_A_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_B_TO_B_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_G_TO_G_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_A_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_B_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_G_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_I_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_R_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_R_TO_R_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_S_TO_S_SIZE', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_MODE_SGIX', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_CACHE_INCREMENT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_CACHE_SIZE_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_HEIGHT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_WIDTH_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_HEIGHT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_WIDTH_SGIX', 'Graphics.GL.Ext.SGIS.PointParameters.GL_POINT_FADE_THRESHOLD_SIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_POINT_SIZE', 'Graphics.GL.Internal.Shared.GL_POINT_SIZE_GRANULARITY', 'Graphics.GL.Ext.SGIS.PointParameters.GL_POINT_SIZE_MAX_SGIS', 'Graphics.GL.Ext.SGIS.PointParameters.GL_POINT_SIZE_MIN_SGIS', 'Graphics.GL.Internal.Shared.GL_POINT_SIZE_RANGE', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH_HINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_MODE', 'Graphics.GL.Ext.EXT.PolygonOffset.GL_POLYGON_OFFSET_BIAS_EXT', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FACTOR', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_UNITS', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH_HINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_RED_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_RED_SCALE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_ALPHA_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_ALPHA_SCALE_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_BLUE_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_BLUE_SCALE_EXT', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_GREEN_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_GREEN_SCALE_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_RED_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_RED_SCALE_EXT', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX', 'Graphics.GL.Internal.Shared.GL_PROJECTION_MATRIX', 'Graphics.GL.Internal.Shared.GL_PROJECTION_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_READ_BUFFER', 'Graphics.GL.Ext.EXT.MultiviewDrawBuffers.GL_READ_BUFFER_EXT', 'Graphics.GL.Ext.NV.ReadBuffer.GL_READ_BUFFER_NV', 'Graphics.GL.Internal.Shared.GL_RED_BIAS', 'Graphics.GL.Internal.Shared.GL_RED_BITS', 'Graphics.GL.Internal.Shared.GL_RED_SCALE', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_EQUATION_SGIX', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Internal.Shared.GL_RENDER_MODE', 'Graphics.GL.Ext.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Internal.Shared.GL_RGBA_MODE', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLES_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_BUFFERS_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_INVERT_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_VALUE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_PATTERN_SGIS', 'Graphics.GL.Internal.Shared.GL_SCISSOR_BOX', 'Graphics.GL.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Internal.Shared.GL_SELECTION_BUFFER_SIZE', 'Graphics.GL.Ext.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_SHADE_MODEL', 'Graphics.GL.Ext.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Internal.Shared.GL_SMOOTH_LINE_WIDTH_GRANULARITY', 'Graphics.GL.Internal.Shared.GL_SMOOTH_LINE_WIDTH_RANGE', 'Graphics.GL.Internal.Shared.GL_SMOOTH_POINT_SIZE_GRANULARITY', 'Graphics.GL.Internal.Shared.GL_SMOOTH_POINT_SIZE_RANGE', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_AXIS_SGIX', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_MODE_SGIX', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_TRANSLATION_SGIX', 'Graphics.GL.Internal.Shared.GL_STENCIL_BITS', 'Graphics.GL.Internal.Shared.GL_STENCIL_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_STENCIL_FAIL', 'Graphics.GL.Internal.Shared.GL_STENCIL_FUNC', 'Graphics.GL.Internal.Shared.GL_STENCIL_PASS_DEPTH_FAIL', 'Graphics.GL.Internal.Shared.GL_STENCIL_PASS_DEPTH_PASS', 'Graphics.GL.Internal.Shared.GL_STENCIL_REF', 'Graphics.GL.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Internal.Shared.GL_STENCIL_VALUE_MASK', 'Graphics.GL.Internal.Shared.GL_STENCIL_WRITEMASK', 'Graphics.GL.Internal.Shared.GL_STEREO', 'Graphics.GL.Internal.Shared.GL_SUBPIXEL_BITS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_3D_BINDING_EXT', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_BINDING_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BINDING_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BINDING_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BINDING_3D', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_TEXTURE_COORD_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MATRIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_UNPACK_ALIGNMENT', 'Graphics.GL.Ext.EXT.Cmyka.GL_UNPACK_CMYK_HINT_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_UNPACK_IMAGE_DEPTH_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_UNPACK_IMAGE_HEIGHT_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_LSB_FIRST', 'Graphics.GL.Ext.SGIX.Resample.GL_UNPACK_RESAMPLE_SGIX', 'Graphics.GL.Internal.Shared.GL_UNPACK_ROW_LENGTH', 'Graphics.GL.Ext.EXT.Texture3D.GL_UNPACK_SKIP_IMAGES_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_SKIP_PIXELS', 'Graphics.GL.Internal.Shared.GL_UNPACK_SKIP_ROWS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_UNPACK_SKIP_VOLUMES_SGIS', 'Graphics.GL.Ext.SGIX.Subsample.GL_UNPACK_SUBSAMPLE_RATE_SGIX', 'Graphics.GL.Internal.Shared.GL_UNPACK_SWAP_BYTES', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_VERTEX_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY_SIZE', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY_TYPE', 'Graphics.GL.Ext.SGIX.VertexPreclip.GL_VERTEX_PRECLIP_HINT_SGIX', 'Graphics.GL.Ext.SGIX.VertexPreclip.GL_VERTEX_PRECLIP_SGIX', 'Graphics.GL.Internal.Shared.GL_VIEWPORT', 'Graphics.GL.Internal.Shared.GL_ZOOM_X', 'Graphics.GL.Internal.Shared.GL_ZOOM_Y'.
+--
+-- The parameter @data@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @data@ should be @COMPSIZE(pname)@.
+
+
+glGetBooleanv :: MonadIO m => GLenum -> Ptr GLboolean -> m ()
+glGetBooleanv = ffienumPtrbooleanIOV glGetBooleanvFunPtr
+
+glGetBooleanvFunPtr :: FunPtr (GLenum -> Ptr GLboolean -> IO ())
+glGetBooleanvFunPtr = unsafePerformIO (getProcAddress "glGetBooleanv")
+
+{-# NOINLINE glGetBooleanvFunPtr #-}
+
+-- | Usage: @'glGetBufferParameteri64v' target pname params@
+--
+-- The parameter @target@ is a @BufferTargetARB@.
+--
+-- The parameter @pname@ is a @BufferPNameARB@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetBufferParameteri64v :: MonadIO m => GLenum -> GLenum -> Ptr GLint64 -> m ()
+glGetBufferParameteri64v = ffienumenumPtrint64IOV glGetBufferParameteri64vFunPtr
+
+glGetBufferParameteri64vFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint64 -> IO ())
+glGetBufferParameteri64vFunPtr = unsafePerformIO (getProcAddress "glGetBufferParameteri64v")
+
+{-# NOINLINE glGetBufferParameteri64vFunPtr #-}
+
+-- | Usage: @'glGetBufferParameteriv' target pname params@
+--
+-- The parameter @target@ is a @BufferTargetARB@.
+--
+-- The parameter @pname@ is a @BufferPNameARB@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetBufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetBufferParameteriv = ffienumenumPtrintIOV glGetBufferParameterivFunPtr
+
+glGetBufferParameterivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetBufferParameterivFunPtr = unsafePerformIO (getProcAddress "glGetBufferParameteriv")
+
+{-# NOINLINE glGetBufferParameterivFunPtr #-}
+
+-- | Usage: @'glGetBufferPointerv' target pname params@
+--
+-- The parameter @target@ is a @BufferTargetARB@.
+--
+-- The parameter @pname@ is a @BufferPointerNameARB@.
+--
+-- The length of @params@ should be @1@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetBufferPointerv.xhtml>
+
+
+glGetBufferPointerv :: MonadIO m => GLenum -> GLenum -> Ptr (Ptr ()) -> m ()
+glGetBufferPointerv = ffienumenumPtrPtrVIOV glGetBufferPointervFunPtr
+
+glGetBufferPointervFunPtr :: FunPtr (GLenum -> GLenum -> Ptr (Ptr ()) -> IO ())
+glGetBufferPointervFunPtr = unsafePerformIO (getProcAddress "glGetBufferPointerv")
+
+{-# NOINLINE glGetBufferPointervFunPtr #-}
+
+-- | Usage: @'glGetBufferSubData' target offset size data@
+--
+-- The parameter @target@ is a @BufferTargetARB@.
+--
+-- The parameter @offset@ is a @BufferOffset@.
+--
+-- The parameter @size@ is a @BufferSize@.
+--
+-- The length of @data@ should be @size@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetBufferSubData.xhtml>
+
+
+glGetBufferSubData :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> Ptr () -> m ()
+glGetBufferSubData = ffienumintptrsizeiptrPtrVIOV glGetBufferSubDataFunPtr
+
+glGetBufferSubDataFunPtr :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> Ptr () -> IO ())
+glGetBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glGetBufferSubData")
+
+{-# NOINLINE glGetBufferSubDataFunPtr #-}
+
+-- | Usage: @'glGetCompressedTexImage' target level img@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @img@ is a @CompressedTextureARB@.
+--
+-- The length of @img@ should be @COMPSIZE(target,level)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetCompressedTexImage.xhtml>
+
+
+glGetCompressedTexImage :: MonadIO m => GLenum -> GLint -> Ptr () -> m ()
+glGetCompressedTexImage = ffienumintPtrVIOV glGetCompressedTexImageFunPtr
+
+glGetCompressedTexImageFunPtr :: FunPtr (GLenum -> GLint -> Ptr () -> IO ())
+glGetCompressedTexImageFunPtr = unsafePerformIO (getProcAddress "glGetCompressedTexImage")
+
+{-# NOINLINE glGetCompressedTexImageFunPtr #-}
+
+-- | Usage: @'glGetDoublev' pname data@
+--
+-- The parameter @pname@ is a @GetPName@, one of: 'Graphics.GL.Internal.Shared.GL_ACCUM_ALPHA_BITS', 'Graphics.GL.Internal.Shared.GL_ACCUM_BLUE_BITS', 'Graphics.GL.Internal.Shared.GL_ACCUM_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_ACCUM_GREEN_BITS', 'Graphics.GL.Internal.Shared.GL_ACCUM_RED_BITS', 'Graphics.GL.Internal.Shared.GL_ALIASED_LINE_WIDTH_RANGE', 'Graphics.GL.Internal.Shared.GL_ALIASED_POINT_SIZE_RANGE', 'Graphics.GL.Internal.Shared.GL_ALPHA_BIAS', 'Graphics.GL.Internal.Shared.GL_ALPHA_BITS', 'Graphics.GL.Internal.Shared.GL_ALPHA_SCALE', 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST_FUNC', 'Graphics.GL.Ext.QCOM.AlphaTest.GL_ALPHA_TEST_FUNC_QCOM', 'Graphics.GL.Ext.QCOM.AlphaTest.GL_ALPHA_TEST_QCOM', 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST_REF', 'Graphics.GL.Ext.QCOM.AlphaTest.GL_ALPHA_TEST_REF_QCOM', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.Async.GL_ASYNC_MARKER_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_ATTRIB_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Internal.Shared.GL_AUX_BUFFERS', 'Graphics.GL.Internal.Shared.GL_BLEND', 'Graphics.GL.Ext.EXT.BlendColor.GL_BLEND_COLOR_EXT', 'Graphics.GL.Internal.Shared.GL_BLEND_DST', 'Graphics.GL.Ext.EXT.BlendMinmax.GL_BLEND_EQUATION_EXT', 'Graphics.GL.Internal.Shared.GL_BLEND_SRC', 'Graphics.GL.Internal.Shared.GL_BLUE_BIAS', 'Graphics.GL.Internal.Shared.GL_BLUE_BITS', 'Graphics.GL.Internal.Shared.GL_BLUE_SCALE', 'Graphics.GL.Ext.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Internal.Shared.GL_CLIENT_ATTRIB_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_COLOR_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY_SIZE', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_COLOR_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL_FACE', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL_PARAMETER', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_COLOR_MATRIX_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_COLOR_MATRIX_STACK_DEPTH_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_COLOR_WRITEMASK', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Ext.SGIX.ConvolutionAccuracy.GL_CONVOLUTION_HINT_SGIX', 'Graphics.GL.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Internal.Shared.GL_CULL_FACE_MODE', 'Graphics.GL.Internal.Shared.GL_CURRENT_COLOR', 'Graphics.GL.Internal.Shared.GL_CURRENT_INDEX', 'Graphics.GL.Internal.Shared.GL_CURRENT_NORMAL', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_COLOR', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_DISTANCE', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_INDEX', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_POSITION', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_POSITION_VALID', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_TEXTURE_COORDS', 'Graphics.GL.Internal.Shared.GL_CURRENT_TEXTURE_COORDS', 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_DEFORMATIONS_MASK_SGIX', 'Graphics.GL.Internal.Shared.GL_DEPTH_BIAS', 'Graphics.GL.Internal.Shared.GL_DEPTH_BITS', 'Graphics.GL.Internal.Shared.GL_DEPTH_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_DEPTH_FUNC', 'Graphics.GL.Internal.Shared.GL_DEPTH_RANGE', 'Graphics.GL.Internal.Shared.GL_DEPTH_SCALE', 'Graphics.GL.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Internal.Shared.GL_DEPTH_WRITEMASK', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_BINDING_SGIS', 'Graphics.GL.Ext.SGIS.PointParameters.GL_DISTANCE_ATTENUATION_SGIS', 'Graphics.GL.Internal.Shared.GL_DITHER', 'Graphics.GL.Internal.Shared.GL_DOUBLEBUFFER', 'Graphics.GL.Internal.Shared.GL_DRAW_BUFFER', 'Graphics.GL.Ext.EXT.MultiviewDrawBuffers.GL_DRAW_BUFFER_EXT', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_EDGE_FLAG_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_FEEDBACK_BUFFER_SIZE', 'Graphics.GL.Internal.Shared.GL_FEEDBACK_BUFFER_TYPE', 'Graphics.GL.Internal.Shared.GL_FOG', 'Graphics.GL.Internal.Shared.GL_FOG_COLOR', 'Graphics.GL.Internal.Shared.GL_FOG_DENSITY', 'Graphics.GL.Internal.Shared.GL_FOG_END', 'Graphics.GL.Ext.SGIS.FogFunction.GL_FOG_FUNC_POINTS_SGIS', 'Graphics.GL.Internal.Shared.GL_FOG_HINT', 'Graphics.GL.Internal.Shared.GL_FOG_INDEX', 'Graphics.GL.Internal.Shared.GL_FOG_MODE', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_VALUE_SGIX', 'Graphics.GL.Internal.Shared.GL_FOG_START', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_FACTOR_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Internal.Shared.GL_FRONT_FACE', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_HINT_SGIS', 'Graphics.GL.Internal.Shared.GL_GREEN_BIAS', 'Graphics.GL.Internal.Shared.GL_GREEN_BITS', 'Graphics.GL.Internal.Shared.GL_GREEN_SCALE', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_INDEX_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_INDEX_BITS', 'Graphics.GL.Internal.Shared.GL_INDEX_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_INDEX_MODE', 'Graphics.GL.Internal.Shared.GL_INDEX_OFFSET', 'Graphics.GL.Internal.Shared.GL_INDEX_SHIFT', 'Graphics.GL.Internal.Shared.GL_INDEX_WRITEMASK', 'Graphics.GL.Ext.SGIX.Instruments.GL_INSTRUMENT_MEASUREMENTS_SGIX', 'Graphics.GL.Ext.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Ext.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_LIGHT_ENV_MODE_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_COLOR_CONTROL', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_LOCAL_VIEWER', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_TWO_SIDE', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH_HINT', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE_PATTERN', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE_REPEAT', 'Graphics.GL.Internal.Shared.GL_LINE_WIDTH', 'Graphics.GL.Internal.Shared.GL_LINE_WIDTH_GRANULARITY', 'Graphics.GL.Internal.Shared.GL_LINE_WIDTH_RANGE', 'Graphics.GL.Internal.Shared.GL_LIST_BASE', 'Graphics.GL.Internal.Shared.GL_LIST_INDEX', 'Graphics.GL.Internal.Shared.GL_LIST_MODE', 'Graphics.GL.Internal.Shared.GL_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_LOGIC_OP_MODE', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_GRID_DOMAIN', 'Graphics.GL.Internal.Shared.GL_MAP1_GRID_SEGMENTS', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_GRID_DOMAIN', 'Graphics.GL.Internal.Shared.GL_MAP2_GRID_SEGMENTS', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP_COLOR', 'Graphics.GL.Internal.Shared.GL_MAP_STENCIL', 'Graphics.GL.Internal.Shared.GL_MATRIX_MODE', 'Graphics.GL.Ext.EXT.Texture3D.GL_MAX_3D_TEXTURE_SIZE_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_MAX_4D_TEXTURE_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_MAX_ACTIVE_LIGHTS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_MAX_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_MAX_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_MAX_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_MAX_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_MAX_ATTRIB_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_CLIENT_ATTRIB_STACK_DEPTH', 'Graphics.GL.Ext.SGIX.Clipmap.GL_MAX_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Internal.Shared.GL_MAX_CLIP_DISTANCES', 'Graphics.GL.Internal.Shared.GL_MAX_CLIP_PLANES', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI', 'Graphics.GL.Internal.Shared.GL_MAX_EVAL_ORDER', 'Graphics.GL.Ext.SGIS.FogFunction.GL_MAX_FOG_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_MAX_FRAGMENT_LIGHTS_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_MAX_FRAMEZOOM_FACTOR_SGIX', 'Graphics.GL.Internal.Shared.GL_MAX_LIGHTS', 'Graphics.GL.Internal.Shared.GL_MAX_LIST_NESTING', 'Graphics.GL.Internal.Shared.GL_MAX_MODELVIEW_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_NAME_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_PIXEL_MAP_TABLE', 'Graphics.GL.Internal.Shared.GL_MAX_PROJECTION_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_TEXTURE_SIZE', 'Graphics.GL.Internal.Shared.GL_MAX_TEXTURE_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_VIEWPORT_DIMS', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_MATRIX_EXT', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_STACK_DEPTH_EXT', 'Graphics.GL.Internal.Shared.GL_MODELVIEW_MATRIX', 'Graphics.GL.Internal.Shared.GL_MODELVIEW_STACK_DEPTH', 'Graphics.GL.Ext.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Internal.Shared.GL_NAME_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_NORMAL_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_PACK_ALIGNMENT', 'Graphics.GL.Ext.EXT.Cmyka.GL_PACK_CMYK_HINT_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PACK_IMAGE_DEPTH_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_PACK_IMAGE_HEIGHT_EXT', 'Graphics.GL.Internal.Shared.GL_PACK_LSB_FIRST', 'Graphics.GL.Ext.SGIX.Resample.GL_PACK_RESAMPLE_SGIX', 'Graphics.GL.Internal.Shared.GL_PACK_ROW_LENGTH', 'Graphics.GL.Ext.EXT.Texture3D.GL_PACK_SKIP_IMAGES_EXT', 'Graphics.GL.Internal.Shared.GL_PACK_SKIP_PIXELS', 'Graphics.GL.Internal.Shared.GL_PACK_SKIP_ROWS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PACK_SKIP_VOLUMES_SGIS', 'Graphics.GL.Ext.SGIX.Subsample.GL_PACK_SUBSAMPLE_RATE_SGIX', 'Graphics.GL.Internal.Shared.GL_PACK_SWAP_BYTES', 'Graphics.GL.Internal.Shared.GL_PERSPECTIVE_CORRECTION_HINT', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_A_TO_A_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_B_TO_B_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_G_TO_G_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_A_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_B_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_G_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_I_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_R_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_R_TO_R_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_S_TO_S_SIZE', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_MODE_SGIX', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_CACHE_INCREMENT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_CACHE_SIZE_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_HEIGHT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_WIDTH_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_HEIGHT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_WIDTH_SGIX', 'Graphics.GL.Ext.SGIS.PointParameters.GL_POINT_FADE_THRESHOLD_SIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_POINT_SIZE', 'Graphics.GL.Internal.Shared.GL_POINT_SIZE_GRANULARITY', 'Graphics.GL.Ext.SGIS.PointParameters.GL_POINT_SIZE_MAX_SGIS', 'Graphics.GL.Ext.SGIS.PointParameters.GL_POINT_SIZE_MIN_SGIS', 'Graphics.GL.Internal.Shared.GL_POINT_SIZE_RANGE', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH_HINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_MODE', 'Graphics.GL.Ext.EXT.PolygonOffset.GL_POLYGON_OFFSET_BIAS_EXT', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FACTOR', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_UNITS', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH_HINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_RED_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_RED_SCALE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_ALPHA_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_ALPHA_SCALE_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_BLUE_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_BLUE_SCALE_EXT', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_GREEN_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_GREEN_SCALE_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_RED_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_RED_SCALE_EXT', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX', 'Graphics.GL.Internal.Shared.GL_PROJECTION_MATRIX', 'Graphics.GL.Internal.Shared.GL_PROJECTION_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_READ_BUFFER', 'Graphics.GL.Ext.EXT.MultiviewDrawBuffers.GL_READ_BUFFER_EXT', 'Graphics.GL.Ext.NV.ReadBuffer.GL_READ_BUFFER_NV', 'Graphics.GL.Internal.Shared.GL_RED_BIAS', 'Graphics.GL.Internal.Shared.GL_RED_BITS', 'Graphics.GL.Internal.Shared.GL_RED_SCALE', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_EQUATION_SGIX', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Internal.Shared.GL_RENDER_MODE', 'Graphics.GL.Ext.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Internal.Shared.GL_RGBA_MODE', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLES_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_BUFFERS_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_INVERT_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_VALUE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_PATTERN_SGIS', 'Graphics.GL.Internal.Shared.GL_SCISSOR_BOX', 'Graphics.GL.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Internal.Shared.GL_SELECTION_BUFFER_SIZE', 'Graphics.GL.Ext.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_SHADE_MODEL', 'Graphics.GL.Ext.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Internal.Shared.GL_SMOOTH_LINE_WIDTH_GRANULARITY', 'Graphics.GL.Internal.Shared.GL_SMOOTH_LINE_WIDTH_RANGE', 'Graphics.GL.Internal.Shared.GL_SMOOTH_POINT_SIZE_GRANULARITY', 'Graphics.GL.Internal.Shared.GL_SMOOTH_POINT_SIZE_RANGE', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_AXIS_SGIX', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_MODE_SGIX', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_TRANSLATION_SGIX', 'Graphics.GL.Internal.Shared.GL_STENCIL_BITS', 'Graphics.GL.Internal.Shared.GL_STENCIL_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_STENCIL_FAIL', 'Graphics.GL.Internal.Shared.GL_STENCIL_FUNC', 'Graphics.GL.Internal.Shared.GL_STENCIL_PASS_DEPTH_FAIL', 'Graphics.GL.Internal.Shared.GL_STENCIL_PASS_DEPTH_PASS', 'Graphics.GL.Internal.Shared.GL_STENCIL_REF', 'Graphics.GL.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Internal.Shared.GL_STENCIL_VALUE_MASK', 'Graphics.GL.Internal.Shared.GL_STENCIL_WRITEMASK', 'Graphics.GL.Internal.Shared.GL_STEREO', 'Graphics.GL.Internal.Shared.GL_SUBPIXEL_BITS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_3D_BINDING_EXT', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_BINDING_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BINDING_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BINDING_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BINDING_3D', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_TEXTURE_COORD_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MATRIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_UNPACK_ALIGNMENT', 'Graphics.GL.Ext.EXT.Cmyka.GL_UNPACK_CMYK_HINT_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_UNPACK_IMAGE_DEPTH_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_UNPACK_IMAGE_HEIGHT_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_LSB_FIRST', 'Graphics.GL.Ext.SGIX.Resample.GL_UNPACK_RESAMPLE_SGIX', 'Graphics.GL.Internal.Shared.GL_UNPACK_ROW_LENGTH', 'Graphics.GL.Ext.EXT.Texture3D.GL_UNPACK_SKIP_IMAGES_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_SKIP_PIXELS', 'Graphics.GL.Internal.Shared.GL_UNPACK_SKIP_ROWS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_UNPACK_SKIP_VOLUMES_SGIS', 'Graphics.GL.Ext.SGIX.Subsample.GL_UNPACK_SUBSAMPLE_RATE_SGIX', 'Graphics.GL.Internal.Shared.GL_UNPACK_SWAP_BYTES', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_VERTEX_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY_SIZE', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY_TYPE', 'Graphics.GL.Ext.SGIX.VertexPreclip.GL_VERTEX_PRECLIP_HINT_SGIX', 'Graphics.GL.Ext.SGIX.VertexPreclip.GL_VERTEX_PRECLIP_SGIX', 'Graphics.GL.Internal.Shared.GL_VIEWPORT', 'Graphics.GL.Internal.Shared.GL_ZOOM_X', 'Graphics.GL.Internal.Shared.GL_ZOOM_Y'.
+--
+-- The length of @data@ should be @COMPSIZE(pname)@.
+
+
+glGetDoublev :: MonadIO m => GLenum -> Ptr GLdouble -> m ()
+glGetDoublev = ffienumPtrdoubleIOV glGetDoublevFunPtr
+
+glGetDoublevFunPtr :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+glGetDoublevFunPtr = unsafePerformIO (getProcAddress "glGetDoublev")
+
+{-# NOINLINE glGetDoublevFunPtr #-}
+
+-- | Usage: @'glGetError'@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetError.xhtml>
+
+
+glGetError :: MonadIO m => m GLenum
+glGetError = ffiIOenum glGetErrorFunPtr
+
+glGetErrorFunPtr :: FunPtr (IO GLenum)
+glGetErrorFunPtr = unsafePerformIO (getProcAddress "glGetError")
+
+{-# NOINLINE glGetErrorFunPtr #-}
+
+-- | Usage: @'glGetFloatv' pname data@
+--
+-- The parameter @pname@ is a @GetPName@, one of: 'Graphics.GL.Internal.Shared.GL_ACCUM_ALPHA_BITS', 'Graphics.GL.Internal.Shared.GL_ACCUM_BLUE_BITS', 'Graphics.GL.Internal.Shared.GL_ACCUM_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_ACCUM_GREEN_BITS', 'Graphics.GL.Internal.Shared.GL_ACCUM_RED_BITS', 'Graphics.GL.Internal.Shared.GL_ALIASED_LINE_WIDTH_RANGE', 'Graphics.GL.Internal.Shared.GL_ALIASED_POINT_SIZE_RANGE', 'Graphics.GL.Internal.Shared.GL_ALPHA_BIAS', 'Graphics.GL.Internal.Shared.GL_ALPHA_BITS', 'Graphics.GL.Internal.Shared.GL_ALPHA_SCALE', 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST_FUNC', 'Graphics.GL.Ext.QCOM.AlphaTest.GL_ALPHA_TEST_FUNC_QCOM', 'Graphics.GL.Ext.QCOM.AlphaTest.GL_ALPHA_TEST_QCOM', 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST_REF', 'Graphics.GL.Ext.QCOM.AlphaTest.GL_ALPHA_TEST_REF_QCOM', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.Async.GL_ASYNC_MARKER_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_ATTRIB_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Internal.Shared.GL_AUX_BUFFERS', 'Graphics.GL.Internal.Shared.GL_BLEND', 'Graphics.GL.Ext.EXT.BlendColor.GL_BLEND_COLOR_EXT', 'Graphics.GL.Internal.Shared.GL_BLEND_DST', 'Graphics.GL.Ext.EXT.BlendMinmax.GL_BLEND_EQUATION_EXT', 'Graphics.GL.Internal.Shared.GL_BLEND_SRC', 'Graphics.GL.Internal.Shared.GL_BLUE_BIAS', 'Graphics.GL.Internal.Shared.GL_BLUE_BITS', 'Graphics.GL.Internal.Shared.GL_BLUE_SCALE', 'Graphics.GL.Ext.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Internal.Shared.GL_CLIENT_ATTRIB_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_COLOR_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY_SIZE', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_COLOR_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL_FACE', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL_PARAMETER', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_COLOR_MATRIX_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_COLOR_MATRIX_STACK_DEPTH_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_COLOR_WRITEMASK', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Ext.SGIX.ConvolutionAccuracy.GL_CONVOLUTION_HINT_SGIX', 'Graphics.GL.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Internal.Shared.GL_CULL_FACE_MODE', 'Graphics.GL.Internal.Shared.GL_CURRENT_COLOR', 'Graphics.GL.Internal.Shared.GL_CURRENT_INDEX', 'Graphics.GL.Internal.Shared.GL_CURRENT_NORMAL', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_COLOR', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_DISTANCE', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_INDEX', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_POSITION', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_POSITION_VALID', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_TEXTURE_COORDS', 'Graphics.GL.Internal.Shared.GL_CURRENT_TEXTURE_COORDS', 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_DEFORMATIONS_MASK_SGIX', 'Graphics.GL.Internal.Shared.GL_DEPTH_BIAS', 'Graphics.GL.Internal.Shared.GL_DEPTH_BITS', 'Graphics.GL.Internal.Shared.GL_DEPTH_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_DEPTH_FUNC', 'Graphics.GL.Internal.Shared.GL_DEPTH_RANGE', 'Graphics.GL.Internal.Shared.GL_DEPTH_SCALE', 'Graphics.GL.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Internal.Shared.GL_DEPTH_WRITEMASK', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_BINDING_SGIS', 'Graphics.GL.Ext.SGIS.PointParameters.GL_DISTANCE_ATTENUATION_SGIS', 'Graphics.GL.Internal.Shared.GL_DITHER', 'Graphics.GL.Internal.Shared.GL_DOUBLEBUFFER', 'Graphics.GL.Internal.Shared.GL_DRAW_BUFFER', 'Graphics.GL.Ext.EXT.MultiviewDrawBuffers.GL_DRAW_BUFFER_EXT', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_EDGE_FLAG_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_FEEDBACK_BUFFER_SIZE', 'Graphics.GL.Internal.Shared.GL_FEEDBACK_BUFFER_TYPE', 'Graphics.GL.Internal.Shared.GL_FOG', 'Graphics.GL.Internal.Shared.GL_FOG_COLOR', 'Graphics.GL.Internal.Shared.GL_FOG_DENSITY', 'Graphics.GL.Internal.Shared.GL_FOG_END', 'Graphics.GL.Ext.SGIS.FogFunction.GL_FOG_FUNC_POINTS_SGIS', 'Graphics.GL.Internal.Shared.GL_FOG_HINT', 'Graphics.GL.Internal.Shared.GL_FOG_INDEX', 'Graphics.GL.Internal.Shared.GL_FOG_MODE', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_VALUE_SGIX', 'Graphics.GL.Internal.Shared.GL_FOG_START', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_FACTOR_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Internal.Shared.GL_FRONT_FACE', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_HINT_SGIS', 'Graphics.GL.Internal.Shared.GL_GREEN_BIAS', 'Graphics.GL.Internal.Shared.GL_GREEN_BITS', 'Graphics.GL.Internal.Shared.GL_GREEN_SCALE', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_INDEX_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_INDEX_BITS', 'Graphics.GL.Internal.Shared.GL_INDEX_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_INDEX_MODE', 'Graphics.GL.Internal.Shared.GL_INDEX_OFFSET', 'Graphics.GL.Internal.Shared.GL_INDEX_SHIFT', 'Graphics.GL.Internal.Shared.GL_INDEX_WRITEMASK', 'Graphics.GL.Ext.SGIX.Instruments.GL_INSTRUMENT_MEASUREMENTS_SGIX', 'Graphics.GL.Ext.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Ext.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_LIGHT_ENV_MODE_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_COLOR_CONTROL', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_LOCAL_VIEWER', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_TWO_SIDE', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH_HINT', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE_PATTERN', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE_REPEAT', 'Graphics.GL.Internal.Shared.GL_LINE_WIDTH', 'Graphics.GL.Internal.Shared.GL_LINE_WIDTH_GRANULARITY', 'Graphics.GL.Internal.Shared.GL_LINE_WIDTH_RANGE', 'Graphics.GL.Internal.Shared.GL_LIST_BASE', 'Graphics.GL.Internal.Shared.GL_LIST_INDEX', 'Graphics.GL.Internal.Shared.GL_LIST_MODE', 'Graphics.GL.Internal.Shared.GL_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_LOGIC_OP_MODE', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_GRID_DOMAIN', 'Graphics.GL.Internal.Shared.GL_MAP1_GRID_SEGMENTS', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_GRID_DOMAIN', 'Graphics.GL.Internal.Shared.GL_MAP2_GRID_SEGMENTS', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP_COLOR', 'Graphics.GL.Internal.Shared.GL_MAP_STENCIL', 'Graphics.GL.Internal.Shared.GL_MATRIX_MODE', 'Graphics.GL.Ext.EXT.Texture3D.GL_MAX_3D_TEXTURE_SIZE_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_MAX_4D_TEXTURE_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_MAX_ACTIVE_LIGHTS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_MAX_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_MAX_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_MAX_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_MAX_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_MAX_ATTRIB_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_CLIENT_ATTRIB_STACK_DEPTH', 'Graphics.GL.Ext.SGIX.Clipmap.GL_MAX_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Internal.Shared.GL_MAX_CLIP_DISTANCES', 'Graphics.GL.Internal.Shared.GL_MAX_CLIP_PLANES', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI', 'Graphics.GL.Internal.Shared.GL_MAX_EVAL_ORDER', 'Graphics.GL.Ext.SGIS.FogFunction.GL_MAX_FOG_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_MAX_FRAGMENT_LIGHTS_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_MAX_FRAMEZOOM_FACTOR_SGIX', 'Graphics.GL.Internal.Shared.GL_MAX_LIGHTS', 'Graphics.GL.Internal.Shared.GL_MAX_LIST_NESTING', 'Graphics.GL.Internal.Shared.GL_MAX_MODELVIEW_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_NAME_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_PIXEL_MAP_TABLE', 'Graphics.GL.Internal.Shared.GL_MAX_PROJECTION_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_TEXTURE_SIZE', 'Graphics.GL.Internal.Shared.GL_MAX_TEXTURE_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_VIEWPORT_DIMS', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_MATRIX_EXT', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_STACK_DEPTH_EXT', 'Graphics.GL.Internal.Shared.GL_MODELVIEW_MATRIX', 'Graphics.GL.Internal.Shared.GL_MODELVIEW_STACK_DEPTH', 'Graphics.GL.Ext.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Internal.Shared.GL_NAME_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_NORMAL_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_PACK_ALIGNMENT', 'Graphics.GL.Ext.EXT.Cmyka.GL_PACK_CMYK_HINT_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PACK_IMAGE_DEPTH_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_PACK_IMAGE_HEIGHT_EXT', 'Graphics.GL.Internal.Shared.GL_PACK_LSB_FIRST', 'Graphics.GL.Ext.SGIX.Resample.GL_PACK_RESAMPLE_SGIX', 'Graphics.GL.Internal.Shared.GL_PACK_ROW_LENGTH', 'Graphics.GL.Ext.EXT.Texture3D.GL_PACK_SKIP_IMAGES_EXT', 'Graphics.GL.Internal.Shared.GL_PACK_SKIP_PIXELS', 'Graphics.GL.Internal.Shared.GL_PACK_SKIP_ROWS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PACK_SKIP_VOLUMES_SGIS', 'Graphics.GL.Ext.SGIX.Subsample.GL_PACK_SUBSAMPLE_RATE_SGIX', 'Graphics.GL.Internal.Shared.GL_PACK_SWAP_BYTES', 'Graphics.GL.Internal.Shared.GL_PERSPECTIVE_CORRECTION_HINT', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_A_TO_A_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_B_TO_B_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_G_TO_G_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_A_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_B_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_G_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_I_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_R_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_R_TO_R_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_S_TO_S_SIZE', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_MODE_SGIX', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_CACHE_INCREMENT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_CACHE_SIZE_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_HEIGHT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_WIDTH_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_HEIGHT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_WIDTH_SGIX', 'Graphics.GL.Ext.SGIS.PointParameters.GL_POINT_FADE_THRESHOLD_SIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_POINT_SIZE', 'Graphics.GL.Internal.Shared.GL_POINT_SIZE_GRANULARITY', 'Graphics.GL.Ext.SGIS.PointParameters.GL_POINT_SIZE_MAX_SGIS', 'Graphics.GL.Ext.SGIS.PointParameters.GL_POINT_SIZE_MIN_SGIS', 'Graphics.GL.Internal.Shared.GL_POINT_SIZE_RANGE', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH_HINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_MODE', 'Graphics.GL.Ext.EXT.PolygonOffset.GL_POLYGON_OFFSET_BIAS_EXT', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FACTOR', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_UNITS', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH_HINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_RED_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_RED_SCALE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_ALPHA_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_ALPHA_SCALE_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_BLUE_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_BLUE_SCALE_EXT', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_GREEN_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_GREEN_SCALE_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_RED_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_RED_SCALE_EXT', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX', 'Graphics.GL.Internal.Shared.GL_PROJECTION_MATRIX', 'Graphics.GL.Internal.Shared.GL_PROJECTION_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_READ_BUFFER', 'Graphics.GL.Ext.EXT.MultiviewDrawBuffers.GL_READ_BUFFER_EXT', 'Graphics.GL.Ext.NV.ReadBuffer.GL_READ_BUFFER_NV', 'Graphics.GL.Internal.Shared.GL_RED_BIAS', 'Graphics.GL.Internal.Shared.GL_RED_BITS', 'Graphics.GL.Internal.Shared.GL_RED_SCALE', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_EQUATION_SGIX', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Internal.Shared.GL_RENDER_MODE', 'Graphics.GL.Ext.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Internal.Shared.GL_RGBA_MODE', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLES_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_BUFFERS_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_INVERT_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_VALUE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_PATTERN_SGIS', 'Graphics.GL.Internal.Shared.GL_SCISSOR_BOX', 'Graphics.GL.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Internal.Shared.GL_SELECTION_BUFFER_SIZE', 'Graphics.GL.Ext.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_SHADE_MODEL', 'Graphics.GL.Ext.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Internal.Shared.GL_SMOOTH_LINE_WIDTH_GRANULARITY', 'Graphics.GL.Internal.Shared.GL_SMOOTH_LINE_WIDTH_RANGE', 'Graphics.GL.Internal.Shared.GL_SMOOTH_POINT_SIZE_GRANULARITY', 'Graphics.GL.Internal.Shared.GL_SMOOTH_POINT_SIZE_RANGE', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_AXIS_SGIX', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_MODE_SGIX', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_TRANSLATION_SGIX', 'Graphics.GL.Internal.Shared.GL_STENCIL_BITS', 'Graphics.GL.Internal.Shared.GL_STENCIL_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_STENCIL_FAIL', 'Graphics.GL.Internal.Shared.GL_STENCIL_FUNC', 'Graphics.GL.Internal.Shared.GL_STENCIL_PASS_DEPTH_FAIL', 'Graphics.GL.Internal.Shared.GL_STENCIL_PASS_DEPTH_PASS', 'Graphics.GL.Internal.Shared.GL_STENCIL_REF', 'Graphics.GL.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Internal.Shared.GL_STENCIL_VALUE_MASK', 'Graphics.GL.Internal.Shared.GL_STENCIL_WRITEMASK', 'Graphics.GL.Internal.Shared.GL_STEREO', 'Graphics.GL.Internal.Shared.GL_SUBPIXEL_BITS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_3D_BINDING_EXT', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_BINDING_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BINDING_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BINDING_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BINDING_3D', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_TEXTURE_COORD_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MATRIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_UNPACK_ALIGNMENT', 'Graphics.GL.Ext.EXT.Cmyka.GL_UNPACK_CMYK_HINT_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_UNPACK_IMAGE_DEPTH_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_UNPACK_IMAGE_HEIGHT_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_LSB_FIRST', 'Graphics.GL.Ext.SGIX.Resample.GL_UNPACK_RESAMPLE_SGIX', 'Graphics.GL.Internal.Shared.GL_UNPACK_ROW_LENGTH', 'Graphics.GL.Ext.EXT.Texture3D.GL_UNPACK_SKIP_IMAGES_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_SKIP_PIXELS', 'Graphics.GL.Internal.Shared.GL_UNPACK_SKIP_ROWS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_UNPACK_SKIP_VOLUMES_SGIS', 'Graphics.GL.Ext.SGIX.Subsample.GL_UNPACK_SUBSAMPLE_RATE_SGIX', 'Graphics.GL.Internal.Shared.GL_UNPACK_SWAP_BYTES', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_VERTEX_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY_SIZE', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY_TYPE', 'Graphics.GL.Ext.SGIX.VertexPreclip.GL_VERTEX_PRECLIP_HINT_SGIX', 'Graphics.GL.Ext.SGIX.VertexPreclip.GL_VERTEX_PRECLIP_SGIX', 'Graphics.GL.Internal.Shared.GL_VIEWPORT', 'Graphics.GL.Internal.Shared.GL_ZOOM_X', 'Graphics.GL.Internal.Shared.GL_ZOOM_Y'.
+--
+-- The length of @data@ should be @COMPSIZE(pname)@.
+
+
+glGetFloatv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glGetFloatv = ffienumPtrfloatIOV glGetFloatvFunPtr
+
+glGetFloatvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glGetFloatvFunPtr = unsafePerformIO (getProcAddress "glGetFloatv")
+
+{-# NOINLINE glGetFloatvFunPtr #-}
+
+-- | Usage: @'glGetFragDataLocation' program name@
+--
+-- The length of @name@ should be @COMPSIZE(name)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetFragDataLocation.xhtml>
+
+
+glGetFragDataLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint
+glGetFragDataLocation = ffiuintPtrcharIOint glGetFragDataLocationFunPtr
+
+glGetFragDataLocationFunPtr :: FunPtr (GLuint -> Ptr GLchar -> IO GLint)
+glGetFragDataLocationFunPtr = unsafePerformIO (getProcAddress "glGetFragDataLocation")
+
+{-# NOINLINE glGetFragDataLocationFunPtr #-}
+
+-- | Usage: @'glGetFramebufferAttachmentParameteriv' target attachment pname params@
+--
+-- The parameter @target@ is a @FramebufferTarget@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetFramebufferAttachmentParameteriv :: MonadIO m => GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
+glGetFramebufferAttachmentParameteriv = ffienumenumenumPtrintIOV glGetFramebufferAttachmentParameterivFunPtr
+
+glGetFramebufferAttachmentParameterivFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetFramebufferAttachmentParameterivFunPtr = unsafePerformIO (getProcAddress "glGetFramebufferAttachmentParameteriv")
+
+{-# NOINLINE glGetFramebufferAttachmentParameterivFunPtr #-}
+
+-- | Usage: @'glGetInteger64i_v' target index data@
+--
+-- The length of @data@ should be @COMPSIZE(target)@.
+
+
+glGetInteger64i_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint64 -> m ()
+glGetInteger64i_v = ffienumuintPtrint64IOV glGetInteger64i_vFunPtr
+
+glGetInteger64i_vFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLint64 -> IO ())
+glGetInteger64i_vFunPtr = unsafePerformIO (getProcAddress "glGetInteger64i_v")
+
+{-# NOINLINE glGetInteger64i_vFunPtr #-}
+
+-- | Usage: @'glGetInteger64v' pname data@
+--
+-- The length of @data@ should be @COMPSIZE(pname)@.
+
+
+glGetInteger64v :: MonadIO m => GLenum -> Ptr GLint64 -> m ()
+glGetInteger64v = ffienumPtrint64IOV glGetInteger64vFunPtr
+
+glGetInteger64vFunPtr :: FunPtr (GLenum -> Ptr GLint64 -> IO ())
+glGetInteger64vFunPtr = unsafePerformIO (getProcAddress "glGetInteger64v")
+
+{-# NOINLINE glGetInteger64vFunPtr #-}
+
+-- | Usage: @'glGetIntegeri_v' target index data@
+--
+-- The length of @data@ should be @COMPSIZE(target)@.
+
+
+glGetIntegeri_v :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()
+glGetIntegeri_v = ffienumuintPtrintIOV glGetIntegeri_vFunPtr
+
+glGetIntegeri_vFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLint -> IO ())
+glGetIntegeri_vFunPtr = unsafePerformIO (getProcAddress "glGetIntegeri_v")
+
+{-# NOINLINE glGetIntegeri_vFunPtr #-}
+
+-- | Usage: @'glGetIntegerv' pname data@
+--
+-- The parameter @pname@ is a @GetPName@, one of: 'Graphics.GL.Internal.Shared.GL_ACCUM_ALPHA_BITS', 'Graphics.GL.Internal.Shared.GL_ACCUM_BLUE_BITS', 'Graphics.GL.Internal.Shared.GL_ACCUM_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_ACCUM_GREEN_BITS', 'Graphics.GL.Internal.Shared.GL_ACCUM_RED_BITS', 'Graphics.GL.Internal.Shared.GL_ALIASED_LINE_WIDTH_RANGE', 'Graphics.GL.Internal.Shared.GL_ALIASED_POINT_SIZE_RANGE', 'Graphics.GL.Internal.Shared.GL_ALPHA_BIAS', 'Graphics.GL.Internal.Shared.GL_ALPHA_BITS', 'Graphics.GL.Internal.Shared.GL_ALPHA_SCALE', 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST_FUNC', 'Graphics.GL.Ext.QCOM.AlphaTest.GL_ALPHA_TEST_FUNC_QCOM', 'Graphics.GL.Ext.QCOM.AlphaTest.GL_ALPHA_TEST_QCOM', 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST_REF', 'Graphics.GL.Ext.QCOM.AlphaTest.GL_ALPHA_TEST_REF_QCOM', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.Async.GL_ASYNC_MARKER_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_ATTRIB_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Internal.Shared.GL_AUX_BUFFERS', 'Graphics.GL.Internal.Shared.GL_BLEND', 'Graphics.GL.Ext.EXT.BlendColor.GL_BLEND_COLOR_EXT', 'Graphics.GL.Internal.Shared.GL_BLEND_DST', 'Graphics.GL.Ext.EXT.BlendMinmax.GL_BLEND_EQUATION_EXT', 'Graphics.GL.Internal.Shared.GL_BLEND_SRC', 'Graphics.GL.Internal.Shared.GL_BLUE_BIAS', 'Graphics.GL.Internal.Shared.GL_BLUE_BITS', 'Graphics.GL.Internal.Shared.GL_BLUE_SCALE', 'Graphics.GL.Ext.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Internal.Shared.GL_CLIENT_ATTRIB_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_COLOR_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY_SIZE', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_COLOR_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL_FACE', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL_PARAMETER', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_COLOR_MATRIX_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_COLOR_MATRIX_STACK_DEPTH_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_COLOR_WRITEMASK', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Ext.SGIX.ConvolutionAccuracy.GL_CONVOLUTION_HINT_SGIX', 'Graphics.GL.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Internal.Shared.GL_CULL_FACE_MODE', 'Graphics.GL.Internal.Shared.GL_CURRENT_COLOR', 'Graphics.GL.Internal.Shared.GL_CURRENT_INDEX', 'Graphics.GL.Internal.Shared.GL_CURRENT_NORMAL', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_COLOR', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_DISTANCE', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_INDEX', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_POSITION', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_POSITION_VALID', 'Graphics.GL.Internal.Shared.GL_CURRENT_RASTER_TEXTURE_COORDS', 'Graphics.GL.Internal.Shared.GL_CURRENT_TEXTURE_COORDS', 'Graphics.GL.Ext.SGIX.PolynomialFfd.GL_DEFORMATIONS_MASK_SGIX', 'Graphics.GL.Internal.Shared.GL_DEPTH_BIAS', 'Graphics.GL.Internal.Shared.GL_DEPTH_BITS', 'Graphics.GL.Internal.Shared.GL_DEPTH_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_DEPTH_FUNC', 'Graphics.GL.Internal.Shared.GL_DEPTH_RANGE', 'Graphics.GL.Internal.Shared.GL_DEPTH_SCALE', 'Graphics.GL.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Internal.Shared.GL_DEPTH_WRITEMASK', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_BINDING_SGIS', 'Graphics.GL.Ext.SGIS.PointParameters.GL_DISTANCE_ATTENUATION_SGIS', 'Graphics.GL.Internal.Shared.GL_DITHER', 'Graphics.GL.Internal.Shared.GL_DOUBLEBUFFER', 'Graphics.GL.Internal.Shared.GL_DRAW_BUFFER', 'Graphics.GL.Ext.EXT.MultiviewDrawBuffers.GL_DRAW_BUFFER_EXT', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_EDGE_FLAG_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_FEEDBACK_BUFFER_SIZE', 'Graphics.GL.Internal.Shared.GL_FEEDBACK_BUFFER_TYPE', 'Graphics.GL.Internal.Shared.GL_FOG', 'Graphics.GL.Internal.Shared.GL_FOG_COLOR', 'Graphics.GL.Internal.Shared.GL_FOG_DENSITY', 'Graphics.GL.Internal.Shared.GL_FOG_END', 'Graphics.GL.Ext.SGIS.FogFunction.GL_FOG_FUNC_POINTS_SGIS', 'Graphics.GL.Internal.Shared.GL_FOG_HINT', 'Graphics.GL.Internal.Shared.GL_FOG_INDEX', 'Graphics.GL.Internal.Shared.GL_FOG_MODE', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_VALUE_SGIX', 'Graphics.GL.Internal.Shared.GL_FOG_START', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_FACTOR_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Internal.Shared.GL_FRONT_FACE', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_HINT_SGIS', 'Graphics.GL.Internal.Shared.GL_GREEN_BIAS', 'Graphics.GL.Internal.Shared.GL_GREEN_BITS', 'Graphics.GL.Internal.Shared.GL_GREEN_SCALE', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_INDEX_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_INDEX_BITS', 'Graphics.GL.Internal.Shared.GL_INDEX_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_INDEX_MODE', 'Graphics.GL.Internal.Shared.GL_INDEX_OFFSET', 'Graphics.GL.Internal.Shared.GL_INDEX_SHIFT', 'Graphics.GL.Internal.Shared.GL_INDEX_WRITEMASK', 'Graphics.GL.Ext.SGIX.Instruments.GL_INSTRUMENT_MEASUREMENTS_SGIX', 'Graphics.GL.Ext.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Ext.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_LIGHT_ENV_MODE_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_AMBIENT', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_COLOR_CONTROL', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_LOCAL_VIEWER', 'Graphics.GL.Internal.Shared.GL_LIGHT_MODEL_TWO_SIDE', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH_HINT', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE_PATTERN', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE_REPEAT', 'Graphics.GL.Internal.Shared.GL_LINE_WIDTH', 'Graphics.GL.Internal.Shared.GL_LINE_WIDTH_GRANULARITY', 'Graphics.GL.Internal.Shared.GL_LINE_WIDTH_RANGE', 'Graphics.GL.Internal.Shared.GL_LIST_BASE', 'Graphics.GL.Internal.Shared.GL_LIST_INDEX', 'Graphics.GL.Internal.Shared.GL_LIST_MODE', 'Graphics.GL.Internal.Shared.GL_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_LOGIC_OP_MODE', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_GRID_DOMAIN', 'Graphics.GL.Internal.Shared.GL_MAP1_GRID_SEGMENTS', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_GRID_DOMAIN', 'Graphics.GL.Internal.Shared.GL_MAP2_GRID_SEGMENTS', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP_COLOR', 'Graphics.GL.Internal.Shared.GL_MAP_STENCIL', 'Graphics.GL.Internal.Shared.GL_MATRIX_MODE', 'Graphics.GL.Ext.EXT.Texture3D.GL_MAX_3D_TEXTURE_SIZE_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_MAX_4D_TEXTURE_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_MAX_ACTIVE_LIGHTS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_MAX_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_MAX_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_MAX_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_MAX_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_MAX_ATTRIB_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_CLIENT_ATTRIB_STACK_DEPTH', 'Graphics.GL.Ext.SGIX.Clipmap.GL_MAX_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Internal.Shared.GL_MAX_CLIP_DISTANCES', 'Graphics.GL.Internal.Shared.GL_MAX_CLIP_PLANES', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI', 'Graphics.GL.Internal.Shared.GL_MAX_EVAL_ORDER', 'Graphics.GL.Ext.SGIS.FogFunction.GL_MAX_FOG_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_MAX_FRAGMENT_LIGHTS_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_MAX_FRAMEZOOM_FACTOR_SGIX', 'Graphics.GL.Internal.Shared.GL_MAX_LIGHTS', 'Graphics.GL.Internal.Shared.GL_MAX_LIST_NESTING', 'Graphics.GL.Internal.Shared.GL_MAX_MODELVIEW_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_NAME_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_PIXEL_MAP_TABLE', 'Graphics.GL.Internal.Shared.GL_MAX_PROJECTION_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_TEXTURE_SIZE', 'Graphics.GL.Internal.Shared.GL_MAX_TEXTURE_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_MAX_VIEWPORT_DIMS', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_MATRIX_EXT', 'Graphics.GL.Ext.EXT.VertexWeighting.GL_MODELVIEW0_STACK_DEPTH_EXT', 'Graphics.GL.Internal.Shared.GL_MODELVIEW_MATRIX', 'Graphics.GL.Internal.Shared.GL_MODELVIEW_STACK_DEPTH', 'Graphics.GL.Ext.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Internal.Shared.GL_NAME_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_NORMAL_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_PACK_ALIGNMENT', 'Graphics.GL.Ext.EXT.Cmyka.GL_PACK_CMYK_HINT_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PACK_IMAGE_DEPTH_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_PACK_IMAGE_HEIGHT_EXT', 'Graphics.GL.Internal.Shared.GL_PACK_LSB_FIRST', 'Graphics.GL.Ext.SGIX.Resample.GL_PACK_RESAMPLE_SGIX', 'Graphics.GL.Internal.Shared.GL_PACK_ROW_LENGTH', 'Graphics.GL.Ext.EXT.Texture3D.GL_PACK_SKIP_IMAGES_EXT', 'Graphics.GL.Internal.Shared.GL_PACK_SKIP_PIXELS', 'Graphics.GL.Internal.Shared.GL_PACK_SKIP_ROWS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PACK_SKIP_VOLUMES_SGIS', 'Graphics.GL.Ext.SGIX.Subsample.GL_PACK_SUBSAMPLE_RATE_SGIX', 'Graphics.GL.Internal.Shared.GL_PACK_SWAP_BYTES', 'Graphics.GL.Internal.Shared.GL_PERSPECTIVE_CORRECTION_HINT', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_A_TO_A_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_B_TO_B_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_G_TO_G_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_A_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_B_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_G_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_I_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_I_TO_R_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_R_TO_R_SIZE', 'Graphics.GL.Internal.Shared.GL_PIXEL_MAP_S_TO_S_SIZE', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_MODE_SGIX', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_CACHE_INCREMENT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_CACHE_SIZE_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_HEIGHT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_WIDTH_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_HEIGHT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_WIDTH_SGIX', 'Graphics.GL.Ext.SGIS.PointParameters.GL_POINT_FADE_THRESHOLD_SIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_POINT_SIZE', 'Graphics.GL.Internal.Shared.GL_POINT_SIZE_GRANULARITY', 'Graphics.GL.Ext.SGIS.PointParameters.GL_POINT_SIZE_MAX_SGIS', 'Graphics.GL.Ext.SGIS.PointParameters.GL_POINT_SIZE_MIN_SGIS', 'Graphics.GL.Internal.Shared.GL_POINT_SIZE_RANGE', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH_HINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_MODE', 'Graphics.GL.Ext.EXT.PolygonOffset.GL_POLYGON_OFFSET_BIAS_EXT', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FACTOR', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_UNITS', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH_HINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_RED_BIAS_SGI', 'Graphics.GL.Ext.SGI.ColorMatrix.GL_POST_COLOR_MATRIX_RED_SCALE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_ALPHA_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_ALPHA_SCALE_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_BLUE_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_BLUE_SCALE_EXT', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_GREEN_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_GREEN_SCALE_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_RED_BIAS_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_POST_CONVOLUTION_RED_SCALE_EXT', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX', 'Graphics.GL.Internal.Shared.GL_PROJECTION_MATRIX', 'Graphics.GL.Internal.Shared.GL_PROJECTION_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_READ_BUFFER', 'Graphics.GL.Ext.EXT.MultiviewDrawBuffers.GL_READ_BUFFER_EXT', 'Graphics.GL.Ext.NV.ReadBuffer.GL_READ_BUFFER_NV', 'Graphics.GL.Internal.Shared.GL_RED_BIAS', 'Graphics.GL.Internal.Shared.GL_RED_BITS', 'Graphics.GL.Internal.Shared.GL_RED_SCALE', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_EQUATION_SGIX', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Internal.Shared.GL_RENDER_MODE', 'Graphics.GL.Ext.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Internal.Shared.GL_RGBA_MODE', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLES_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_BUFFERS_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_INVERT_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_VALUE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_PATTERN_SGIS', 'Graphics.GL.Internal.Shared.GL_SCISSOR_BOX', 'Graphics.GL.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Internal.Shared.GL_SELECTION_BUFFER_SIZE', 'Graphics.GL.Ext.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_SHADE_MODEL', 'Graphics.GL.Ext.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Internal.Shared.GL_SMOOTH_LINE_WIDTH_GRANULARITY', 'Graphics.GL.Internal.Shared.GL_SMOOTH_LINE_WIDTH_RANGE', 'Graphics.GL.Internal.Shared.GL_SMOOTH_POINT_SIZE_GRANULARITY', 'Graphics.GL.Internal.Shared.GL_SMOOTH_POINT_SIZE_RANGE', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_AXIS_SGIX', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_MODE_SGIX', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_TRANSLATION_SGIX', 'Graphics.GL.Internal.Shared.GL_STENCIL_BITS', 'Graphics.GL.Internal.Shared.GL_STENCIL_CLEAR_VALUE', 'Graphics.GL.Internal.Shared.GL_STENCIL_FAIL', 'Graphics.GL.Internal.Shared.GL_STENCIL_FUNC', 'Graphics.GL.Internal.Shared.GL_STENCIL_PASS_DEPTH_FAIL', 'Graphics.GL.Internal.Shared.GL_STENCIL_PASS_DEPTH_PASS', 'Graphics.GL.Internal.Shared.GL_STENCIL_REF', 'Graphics.GL.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Internal.Shared.GL_STENCIL_VALUE_MASK', 'Graphics.GL.Internal.Shared.GL_STENCIL_WRITEMASK', 'Graphics.GL.Internal.Shared.GL_STEREO', 'Graphics.GL.Internal.Shared.GL_SUBPIXEL_BITS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_3D_BINDING_EXT', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_BINDING_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BINDING_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BINDING_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BINDING_3D', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_TEXTURE_COORD_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY_TYPE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MATRIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_STACK_DEPTH', 'Graphics.GL.Internal.Shared.GL_UNPACK_ALIGNMENT', 'Graphics.GL.Ext.EXT.Cmyka.GL_UNPACK_CMYK_HINT_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_UNPACK_IMAGE_DEPTH_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_UNPACK_IMAGE_HEIGHT_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_LSB_FIRST', 'Graphics.GL.Ext.SGIX.Resample.GL_UNPACK_RESAMPLE_SGIX', 'Graphics.GL.Internal.Shared.GL_UNPACK_ROW_LENGTH', 'Graphics.GL.Ext.EXT.Texture3D.GL_UNPACK_SKIP_IMAGES_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_SKIP_PIXELS', 'Graphics.GL.Internal.Shared.GL_UNPACK_SKIP_ROWS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_UNPACK_SKIP_VOLUMES_SGIS', 'Graphics.GL.Ext.SGIX.Subsample.GL_UNPACK_SUBSAMPLE_RATE_SGIX', 'Graphics.GL.Internal.Shared.GL_UNPACK_SWAP_BYTES', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY', 'Graphics.GL.Ext.EXT.VertexArray.GL_VERTEX_ARRAY_COUNT_EXT', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY_SIZE', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY_STRIDE', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY_TYPE', 'Graphics.GL.Ext.SGIX.VertexPreclip.GL_VERTEX_PRECLIP_HINT_SGIX', 'Graphics.GL.Ext.SGIX.VertexPreclip.GL_VERTEX_PRECLIP_SGIX', 'Graphics.GL.Internal.Shared.GL_VIEWPORT', 'Graphics.GL.Internal.Shared.GL_ZOOM_X', 'Graphics.GL.Internal.Shared.GL_ZOOM_Y'.
+--
+-- The length of @data@ should be @COMPSIZE(pname)@.
+
+
+glGetIntegerv :: MonadIO m => GLenum -> Ptr GLint -> m ()
+glGetIntegerv = ffienumPtrintIOV glGetIntegervFunPtr
+
+glGetIntegervFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
+glGetIntegervFunPtr = unsafePerformIO (getProcAddress "glGetIntegerv")
+
+{-# NOINLINE glGetIntegervFunPtr #-}
+
+-- | Usage: @'glGetMultisamplefv' pname index val@
+--
+-- The length of @val@ should be @COMPSIZE(pname)@.
+
+
+glGetMultisamplefv :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
+glGetMultisamplefv = ffienumuintPtrfloatIOV glGetMultisamplefvFunPtr
+
+glGetMultisamplefvFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
+glGetMultisamplefvFunPtr = unsafePerformIO (getProcAddress "glGetMultisamplefv")
+
+{-# NOINLINE glGetMultisamplefvFunPtr #-}
+
+-- | Usage: @'glGetProgramInfoLog' program bufSize length infoLog@
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @infoLog@ should be @bufSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetProgramInfoLog.xhtml>
+
+
+glGetProgramInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
+glGetProgramInfoLog = ffiuintsizeiPtrsizeiPtrcharIOV glGetProgramInfoLogFunPtr
+
+glGetProgramInfoLogFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+glGetProgramInfoLogFunPtr = unsafePerformIO (getProcAddress "glGetProgramInfoLog")
+
+{-# NOINLINE glGetProgramInfoLogFunPtr #-}
+
+-- | Usage: @'glGetProgramiv' program pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetProgramiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetProgramiv = ffiuintenumPtrintIOV glGetProgramivFunPtr
+
+glGetProgramivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetProgramivFunPtr = unsafePerformIO (getProcAddress "glGetProgramiv")
+
+{-# NOINLINE glGetProgramivFunPtr #-}
+
+-- | Usage: @'glGetQueryObjectiv' id pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetQueryObjectiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetQueryObjectiv = ffiuintenumPtrintIOV glGetQueryObjectivFunPtr
+
+glGetQueryObjectivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetQueryObjectivFunPtr = unsafePerformIO (getProcAddress "glGetQueryObjectiv")
+
+{-# NOINLINE glGetQueryObjectivFunPtr #-}
+
+-- | Usage: @'glGetQueryObjectuiv' id pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetQueryObjectuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
+glGetQueryObjectuiv = ffiuintenumPtruintIOV glGetQueryObjectuivFunPtr
+
+glGetQueryObjectuivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
+glGetQueryObjectuivFunPtr = unsafePerformIO (getProcAddress "glGetQueryObjectuiv")
+
+{-# NOINLINE glGetQueryObjectuivFunPtr #-}
+
+-- | Usage: @'glGetQueryiv' target pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetQueryiv.xhtml>
+
+
+glGetQueryiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetQueryiv = ffienumenumPtrintIOV glGetQueryivFunPtr
+
+glGetQueryivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetQueryivFunPtr = unsafePerformIO (getProcAddress "glGetQueryiv")
+
+{-# NOINLINE glGetQueryivFunPtr #-}
+
+-- | Usage: @'glGetRenderbufferParameteriv' target pname params@
+--
+-- The parameter @target@ is a @RenderbufferTarget@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetRenderbufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetRenderbufferParameteriv = ffienumenumPtrintIOV glGetRenderbufferParameterivFunPtr
+
+glGetRenderbufferParameterivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetRenderbufferParameterivFunPtr = unsafePerformIO (getProcAddress "glGetRenderbufferParameteriv")
+
+{-# NOINLINE glGetRenderbufferParameterivFunPtr #-}
+
+-- | Usage: @'glGetShaderInfoLog' shader bufSize length infoLog@
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @infoLog@ should be @bufSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetShaderInfoLog.xhtml>
+
+
+glGetShaderInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
+glGetShaderInfoLog = ffiuintsizeiPtrsizeiPtrcharIOV glGetShaderInfoLogFunPtr
+
+glGetShaderInfoLogFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+glGetShaderInfoLogFunPtr = unsafePerformIO (getProcAddress "glGetShaderInfoLog")
+
+{-# NOINLINE glGetShaderInfoLogFunPtr #-}
+
+-- | Usage: @'glGetShaderSource' shader bufSize length source@
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @source@ should be @bufSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetShaderSource.xhtml>
+
+
+glGetShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
+glGetShaderSource = ffiuintsizeiPtrsizeiPtrcharIOV glGetShaderSourceFunPtr
+
+glGetShaderSourceFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+glGetShaderSourceFunPtr = unsafePerformIO (getProcAddress "glGetShaderSource")
+
+{-# NOINLINE glGetShaderSourceFunPtr #-}
+
+-- | Usage: @'glGetShaderiv' shader pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetShaderiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetShaderiv = ffiuintenumPtrintIOV glGetShaderivFunPtr
+
+glGetShaderivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetShaderivFunPtr = unsafePerformIO (getProcAddress "glGetShaderiv")
+
+{-# NOINLINE glGetShaderivFunPtr #-}
+
+-- | Usage: @'glGetString' name@
+--
+-- The parameter @name@ is a @StringName@, one of: 'Graphics.GL.Internal.Shared.GL_EXTENSIONS', 'Graphics.GL.Internal.Shared.GL_RENDERER', 'Graphics.GL.Internal.Shared.GL_VENDOR', 'Graphics.GL.Internal.Shared.GL_VERSION'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetString.xhtml>
+
+
+glGetString :: MonadIO m => GLenum -> m (Ptr GLubyte)
+glGetString = ffienumIOPtrubyte glGetStringFunPtr
+
+glGetStringFunPtr :: FunPtr (GLenum -> IO (Ptr GLubyte))
+glGetStringFunPtr = unsafePerformIO (getProcAddress "glGetString")
+
+{-# NOINLINE glGetStringFunPtr #-}
+
+-- | Usage: @'glGetStringi' name index@
+
+
+glGetStringi :: MonadIO m => GLenum -> GLuint -> m (Ptr GLubyte)
+glGetStringi = ffienumuintIOPtrubyte glGetStringiFunPtr
+
+glGetStringiFunPtr :: FunPtr (GLenum -> GLuint -> IO (Ptr GLubyte))
+glGetStringiFunPtr = unsafePerformIO (getProcAddress "glGetStringi")
+
+{-# NOINLINE glGetStringiFunPtr #-}
+
+-- | Usage: @'glGetSynciv' sync pname bufSize length values@
+--
+-- The parameter @sync@ is a @sync@.
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @values@ should be @bufSize@.
+
+
+glGetSynciv :: MonadIO m => GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()
+glGetSynciv = ffisyncenumsizeiPtrsizeiPtrintIOV glGetSyncivFunPtr
+
+glGetSyncivFunPtr :: FunPtr (GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> IO ())
+glGetSyncivFunPtr = unsafePerformIO (getProcAddress "glGetSynciv")
+
+{-# NOINLINE glGetSyncivFunPtr #-}
+
+-- | Usage: @'glGetTexImage' target level format type pixels@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(target,level,format,type)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetTexImage.xhtml>
+
+
+glGetTexImage :: MonadIO m => GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
+glGetTexImage = ffienumintenumenumPtrVIOV glGetTexImageFunPtr
+
+glGetTexImageFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
+glGetTexImageFunPtr = unsafePerformIO (getProcAddress "glGetTexImage")
+
+{-# NOINLINE glGetTexImageFunPtr #-}
+
+-- | Usage: @'glGetTexLevelParameterfv' target level pname params@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Ext.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetTexLevelParameterfv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLfloat -> m ()
+glGetTexLevelParameterfv = ffienumintenumPtrfloatIOV glGetTexLevelParameterfvFunPtr
+
+glGetTexLevelParameterfvFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ())
+glGetTexLevelParameterfvFunPtr = unsafePerformIO (getProcAddress "glGetTexLevelParameterfv")
+
+{-# NOINLINE glGetTexLevelParameterfvFunPtr #-}
+
+-- | Usage: @'glGetTexLevelParameteriv' target level pname params@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Ext.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetTexLevelParameteriv :: MonadIO m => GLenum -> GLint -> GLenum -> Ptr GLint -> m ()
+glGetTexLevelParameteriv = ffienumintenumPtrintIOV glGetTexLevelParameterivFunPtr
+
+glGetTexLevelParameterivFunPtr :: FunPtr (GLenum -> GLint -> GLenum -> Ptr GLint -> IO ())
+glGetTexLevelParameterivFunPtr = unsafePerformIO (getProcAddress "glGetTexLevelParameteriv")
+
+{-# NOINLINE glGetTexLevelParameterivFunPtr #-}
+
+-- | Usage: @'glGetTexParameterIiv' target pname params@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Ext.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetTexParameterIiv = ffienumenumPtrintIOV glGetTexParameterIivFunPtr
+
+glGetTexParameterIivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetTexParameterIivFunPtr = unsafePerformIO (getProcAddress "glGetTexParameterIiv")
+
+{-# NOINLINE glGetTexParameterIivFunPtr #-}
+
+-- | Usage: @'glGetTexParameterIuiv' target pname params@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Ext.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
+glGetTexParameterIuiv = ffienumenumPtruintIOV glGetTexParameterIuivFunPtr
+
+glGetTexParameterIuivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
+glGetTexParameterIuivFunPtr = unsafePerformIO (getProcAddress "glGetTexParameterIuiv")
+
+{-# NOINLINE glGetTexParameterIuivFunPtr #-}
+
+-- | Usage: @'glGetTexParameterfv' target pname params@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Ext.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glGetTexParameterfv = ffienumenumPtrfloatIOV glGetTexParameterfvFunPtr
+
+glGetTexParameterfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glGetTexParameterfvFunPtr = unsafePerformIO (getProcAddress "glGetTexParameterfv")
+
+{-# NOINLINE glGetTexParameterfvFunPtr #-}
+
+-- | Usage: @'glGetTexParameteriv' target pname params@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Ext.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetTexParameteriv = ffienumenumPtrintIOV glGetTexParameterivFunPtr
+
+glGetTexParameterivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetTexParameterivFunPtr = unsafePerformIO (getProcAddress "glGetTexParameteriv")
+
+{-# NOINLINE glGetTexParameterivFunPtr #-}
+
+-- | Usage: @'glGetTransformFeedbackVarying' program index bufSize length size type name@
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @size@ should be @1@.
+--
+-- The length of @type@ should be @1@.
+--
+-- The length of @name@ should be @bufSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetTransformFeedbackVarying.xhtml>
+
+
+glGetTransformFeedbackVarying :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> m ()
+glGetTransformFeedbackVarying = ffiuintuintsizeiPtrsizeiPtrsizeiPtrenumPtrcharIOV glGetTransformFeedbackVaryingFunPtr
+
+glGetTransformFeedbackVaryingFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> IO ())
+glGetTransformFeedbackVaryingFunPtr = unsafePerformIO (getProcAddress "glGetTransformFeedbackVarying")
+
+{-# NOINLINE glGetTransformFeedbackVaryingFunPtr #-}
+
+-- | Usage: @'glGetUniformBlockIndex' program uniformBlockName@
+--
+-- The length of @uniformBlockName@ should be @COMPSIZE()@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetUniformBlockIndex.xhtml>
+
+
+glGetUniformBlockIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLuint
+glGetUniformBlockIndex = ffiuintPtrcharIOuint glGetUniformBlockIndexFunPtr
+
+glGetUniformBlockIndexFunPtr :: FunPtr (GLuint -> Ptr GLchar -> IO GLuint)
+glGetUniformBlockIndexFunPtr = unsafePerformIO (getProcAddress "glGetUniformBlockIndex")
+
+{-# NOINLINE glGetUniformBlockIndexFunPtr #-}
+
+-- | Usage: @'glGetUniformIndices' program uniformCount uniformNames uniformIndices@
+--
+-- The length of @uniformNames@ should be @COMPSIZE(uniformCount)@.
+--
+-- The length of @uniformIndices@ should be @COMPSIZE(uniformCount)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetUniformIndices.xhtml>
+
+
+glGetUniformIndices :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLuint -> m ()
+glGetUniformIndices = ffiuintsizeiPtrPtrcharPtruintIOV glGetUniformIndicesFunPtr
+
+glGetUniformIndicesFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLuint -> IO ())
+glGetUniformIndicesFunPtr = unsafePerformIO (getProcAddress "glGetUniformIndices")
+
+{-# NOINLINE glGetUniformIndicesFunPtr #-}
+
+-- | Usage: @'glGetUniformLocation' program name@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetUniformLocation.xhtml>
+
+
+glGetUniformLocation :: MonadIO m => GLuint -> Ptr GLchar -> m GLint
+glGetUniformLocation = ffiuintPtrcharIOint glGetUniformLocationFunPtr
+
+glGetUniformLocationFunPtr :: FunPtr (GLuint -> Ptr GLchar -> IO GLint)
+glGetUniformLocationFunPtr = unsafePerformIO (getProcAddress "glGetUniformLocation")
+
+{-# NOINLINE glGetUniformLocationFunPtr #-}
+
+-- | Usage: @'glGetUniformfv' program location params@
+--
+-- The length of @params@ should be @COMPSIZE(program,location)@.
+
+
+glGetUniformfv :: MonadIO m => GLuint -> GLint -> Ptr GLfloat -> m ()
+glGetUniformfv = ffiuintintPtrfloatIOV glGetUniformfvFunPtr
+
+glGetUniformfvFunPtr :: FunPtr (GLuint -> GLint -> Ptr GLfloat -> IO ())
+glGetUniformfvFunPtr = unsafePerformIO (getProcAddress "glGetUniformfv")
+
+{-# NOINLINE glGetUniformfvFunPtr #-}
+
+-- | Usage: @'glGetUniformiv' program location params@
+--
+-- The length of @params@ should be @COMPSIZE(program,location)@.
+
+
+glGetUniformiv :: MonadIO m => GLuint -> GLint -> Ptr GLint -> m ()
+glGetUniformiv = ffiuintintPtrintIOV glGetUniformivFunPtr
+
+glGetUniformivFunPtr :: FunPtr (GLuint -> GLint -> Ptr GLint -> IO ())
+glGetUniformivFunPtr = unsafePerformIO (getProcAddress "glGetUniformiv")
+
+{-# NOINLINE glGetUniformivFunPtr #-}
+
+-- | Usage: @'glGetUniformuiv' program location params@
+--
+-- The length of @params@ should be @COMPSIZE(program,location)@.
+
+
+glGetUniformuiv :: MonadIO m => GLuint -> GLint -> Ptr GLuint -> m ()
+glGetUniformuiv = ffiuintintPtruintIOV glGetUniformuivFunPtr
+
+glGetUniformuivFunPtr :: FunPtr (GLuint -> GLint -> Ptr GLuint -> IO ())
+glGetUniformuivFunPtr = unsafePerformIO (getProcAddress "glGetUniformuiv")
+
+{-# NOINLINE glGetUniformuivFunPtr #-}
+
+-- | Usage: @'glGetVertexAttribIiv' index pname params@
+--
+-- The parameter @pname@ is a @VertexAttribEnum@.
+--
+-- The length of @params@ should be @1@.
+
+
+glGetVertexAttribIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetVertexAttribIiv = ffiuintenumPtrintIOV glGetVertexAttribIivFunPtr
+
+glGetVertexAttribIivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetVertexAttribIivFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribIiv")
+
+{-# NOINLINE glGetVertexAttribIivFunPtr #-}
+
+-- | Usage: @'glGetVertexAttribIuiv' index pname params@
+--
+-- The parameter @pname@ is a @VertexAttribEnum@.
+--
+-- The length of @params@ should be @1@.
+
+
+glGetVertexAttribIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
+glGetVertexAttribIuiv = ffiuintenumPtruintIOV glGetVertexAttribIuivFunPtr
+
+glGetVertexAttribIuivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
+glGetVertexAttribIuivFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribIuiv")
+
+{-# NOINLINE glGetVertexAttribIuivFunPtr #-}
+
+-- | Usage: @'glGetVertexAttribPointerv' index pname pointer@
+--
+-- The parameter @pname@ is a @VertexAttribPointerPropertyARB@.
+--
+-- The length of @pointer@ should be @1@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetVertexAttribPointerv.xhtml>
+
+
+glGetVertexAttribPointerv :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr ()) -> m ()
+glGetVertexAttribPointerv = ffiuintenumPtrPtrVIOV glGetVertexAttribPointervFunPtr
+
+glGetVertexAttribPointervFunPtr :: FunPtr (GLuint -> GLenum -> Ptr (Ptr ()) -> IO ())
+glGetVertexAttribPointervFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribPointerv")
+
+{-# NOINLINE glGetVertexAttribPointervFunPtr #-}
+
+-- | Usage: @'glGetVertexAttribdv' index pname params@
+--
+-- The parameter @pname@ is a @VertexAttribPropertyARB@.
+--
+-- The length of @params@ should be @4@.
+
+
+glGetVertexAttribdv :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()
+glGetVertexAttribdv = ffiuintenumPtrdoubleIOV glGetVertexAttribdvFunPtr
+
+glGetVertexAttribdvFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLdouble -> IO ())
+glGetVertexAttribdvFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribdv")
+
+{-# NOINLINE glGetVertexAttribdvFunPtr #-}
+
+-- | Usage: @'glGetVertexAttribfv' index pname params@
+--
+-- The parameter @pname@ is a @VertexAttribPropertyARB@.
+--
+-- The length of @params@ should be @4@.
+
+
+glGetVertexAttribfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
+glGetVertexAttribfv = ffiuintenumPtrfloatIOV glGetVertexAttribfvFunPtr
+
+glGetVertexAttribfvFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
+glGetVertexAttribfvFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribfv")
+
+{-# NOINLINE glGetVertexAttribfvFunPtr #-}
+
+-- | Usage: @'glGetVertexAttribiv' index pname params@
+--
+-- The parameter @pname@ is a @VertexAttribPropertyARB@.
+--
+-- The length of @params@ should be @4@.
+
+
+glGetVertexAttribiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetVertexAttribiv = ffiuintenumPtrintIOV glGetVertexAttribivFunPtr
+
+glGetVertexAttribivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetVertexAttribivFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribiv")
+
+{-# NOINLINE glGetVertexAttribivFunPtr #-}
+
+-- | Usage: @'glHint' target mode@
+--
+-- The parameter @target@ is a @HintTarget@, one of: 'Graphics.GL.Ext.PGI.MiscHints.GL_ALLOW_DRAW_FRG_HINT_PGI', 'Graphics.GL.Ext.PGI.MiscHints.GL_ALLOW_DRAW_MEM_HINT_PGI', 'Graphics.GL.Ext.PGI.MiscHints.GL_ALLOW_DRAW_OBJ_HINT_PGI', 'Graphics.GL.Ext.PGI.MiscHints.GL_ALLOW_DRAW_WIN_HINT_PGI', 'Graphics.GL.Ext.PGI.MiscHints.GL_ALWAYS_FAST_HINT_PGI', 'Graphics.GL.Ext.PGI.MiscHints.GL_ALWAYS_SOFT_HINT_PGI', 'Graphics.GL.Ext.PGI.MiscHints.GL_BACK_NORMALS_HINT_PGI', 'Graphics.GL.Ext.QCOM.BinningControl.GL_BINNING_CONTROL_HINT_QCOM', 'Graphics.GL.Ext.PGI.MiscHints.GL_CLIP_FAR_HINT_PGI', 'Graphics.GL.Ext.PGI.MiscHints.GL_CLIP_NEAR_HINT_PGI', 'Graphics.GL.Ext.EXT.ClipVolumeHint.GL_CLIP_VOLUME_CLIPPING_HINT_EXT', 'Graphics.GL.Ext.PGI.MiscHints.GL_CONSERVE_MEMORY_HINT_PGI', 'Graphics.GL.Ext.SGIX.ConvolutionAccuracy.GL_CONVOLUTION_HINT_SGIX', 'Graphics.GL.Internal.Shared.GL_FOG_HINT', 'Graphics.GL.Internal.Shared.GL_FRAGMENT_SHADER_DERIVATIVE_HINT', 'Graphics.GL.Ext.ARB.FragmentShader.GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB', 'Graphics.GL.Ext.OES.StandardDerivatives.GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES', 'Graphics.GL.Ext.PGI.MiscHints.GL_FULL_STIPPLE_HINT_PGI', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP_HINT', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_HINT_SGIS', @GL_LINE_QUALITY_HINT_SGIX@, 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH_HINT', 'Graphics.GL.Ext.PGI.VertexHints.GL_MATERIAL_SIDE_HINT_PGI', 'Graphics.GL.Ext.PGI.VertexHints.GL_MAX_VERTEX_HINT_PGI', 'Graphics.GL.Ext.NV.MultisampleFilterHint.GL_MULTISAMPLE_FILTER_HINT_NV', 'Graphics.GL.Ext.PGI.MiscHints.GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI', 'Graphics.GL.Ext.PGI.MiscHints.GL_NATIVE_GRAPHICS_END_HINT_PGI', 'Graphics.GL.Ext.EXT.Cmyka.GL_PACK_CMYK_HINT_EXT', 'Graphics.GL.Internal.Shared.GL_PERSPECTIVE_CORRECTION_HINT', 'Graphics.GL.Ext.WIN.PhongShading.GL_PHONG_HINT_WIN', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH_HINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH_HINT', 'Graphics.GL.Ext.PGI.MiscHints.GL_PREFER_DOUBLEBUFFER_HINT_PGI', 'Graphics.GL.Internal.Shared.GL_PROGRAM_BINARY_RETRIEVABLE_HINT', 'Graphics.GL.Ext.PGI.MiscHints.GL_RECLAIM_MEMORY_HINT_PGI', 'Graphics.GL.Ext.SGIX.ScalebiasHint.GL_SCALEBIAS_HINT_SGIX', 'Graphics.GL.Ext.PGI.MiscHints.GL_STRICT_DEPTHFUNC_HINT_PGI', 'Graphics.GL.Ext.PGI.MiscHints.GL_STRICT_LIGHTING_HINT_PGI', 'Graphics.GL.Ext.PGI.MiscHints.GL_STRICT_SCISSOR_HINT_PGI', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPRESSION_HINT', 'Graphics.GL.Ext.ARB.TextureCompression.GL_TEXTURE_COMPRESSION_HINT_ARB', 'Graphics.GL.Ext.SGIX.TextureMultiBuffer.GL_TEXTURE_MULTI_BUFFER_HINT_SGIX', 'Graphics.GL.Ext.APPLE.TextureRange.GL_TEXTURE_STORAGE_HINT_APPLE', 'Graphics.GL.Ext.APPLE.TransformHint.GL_TRANSFORM_HINT_APPLE', 'Graphics.GL.Ext.EXT.Cmyka.GL_UNPACK_CMYK_HINT_EXT', 'Graphics.GL.Ext.APPLE.VertexArrayRange.GL_VERTEX_ARRAY_STORAGE_HINT_APPLE', 'Graphics.GL.Ext.PGI.VertexHints.GL_VERTEX_CONSISTENT_HINT_PGI', 'Graphics.GL.Ext.PGI.VertexHints.GL_VERTEX_DATA_HINT_PGI', 'Graphics.GL.Ext.SGIX.VertexPreclip.GL_VERTEX_PRECLIP_HINT_SGIX', 'Graphics.GL.Ext.SGIX.VertexPreclip.GL_VERTEX_PRECLIP_SGIX', 'Graphics.GL.Ext.PGI.MiscHints.GL_WIDE_LINE_HINT_PGI'.
+--
+-- The parameter @mode@ is a @HintMode@, one of: 'Graphics.GL.Internal.Shared.GL_DONT_CARE', 'Graphics.GL.Internal.Shared.GL_FASTEST', 'Graphics.GL.Internal.Shared.GL_NICEST'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glHint.xhtml>
+
+
+glHint :: MonadIO m => GLenum -> GLenum -> m ()
+glHint = ffienumenumIOV glHintFunPtr
+
+glHintFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
+glHintFunPtr = unsafePerformIO (getProcAddress "glHint")
+
+{-# NOINLINE glHintFunPtr #-}
+
+-- | Usage: @'glIsBuffer' buffer@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsBuffer.xhtml>
+
+
+glIsBuffer :: MonadIO m => GLuint -> m GLboolean
+glIsBuffer = ffiuintIOboolean glIsBufferFunPtr
+
+glIsBufferFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsBufferFunPtr = unsafePerformIO (getProcAddress "glIsBuffer")
+
+{-# NOINLINE glIsBufferFunPtr #-}
+
+-- | Usage: @'glIsEnabled' cap@
+--
+-- The parameter @cap@ is a @EnableCap@, one of: 'Graphics.GL.Internal.Shared.GL_ALPHA_TEST', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_DRAW_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncHistogram.GL_ASYNC_HISTOGRAM_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_READ_PIXELS_SGIX', 'Graphics.GL.Ext.SGIX.AsyncPixel.GL_ASYNC_TEX_IMAGE_SGIX', 'Graphics.GL.Internal.Shared.GL_AUTO_NORMAL', 'Graphics.GL.Internal.Shared.GL_BLEND', 'Graphics.GL.Ext.SGIX.CalligraphicFragment.GL_CALLIGRAPHIC_FRAGMENT_SGIX', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE0', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE1', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE2', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE3', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE4', 'Graphics.GL.Internal.Shared.GL_CLIP_PLANE5', 'Graphics.GL.Internal.Shared.GL_COLOR_ARRAY', 'Graphics.GL.Internal.Shared.GL_COLOR_LOGIC_OP', 'Graphics.GL.Internal.Shared.GL_COLOR_MATERIAL', 'Graphics.GL.Ext.SGI.ColorTable.GL_COLOR_TABLE_SGI', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_1D_EXT', 'Graphics.GL.Ext.EXT.Convolution.GL_CONVOLUTION_2D_EXT', 'Graphics.GL.Internal.Shared.GL_CULL_FACE', 'Graphics.GL.Internal.Shared.GL_DEPTH_TEST', 'Graphics.GL.Internal.Shared.GL_DITHER', 'Graphics.GL.Internal.Shared.GL_EDGE_FLAG_ARRAY', 'Graphics.GL.Internal.Shared.GL_FOG', 'Graphics.GL.Ext.SGIX.FogOffset.GL_FOG_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_COLOR_MATERIAL_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT0_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT1_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT2_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT3_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT4_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT5_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT6_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHT7_SGIX', 'Graphics.GL.Ext.SGIX.FragmentLighting.GL_FRAGMENT_LIGHTING_SGIX', 'Graphics.GL.Ext.SGIX.Framezoom.GL_FRAMEZOOM_SGIX', 'Graphics.GL.Ext.EXT.Histogram.GL_HISTOGRAM_EXT', 'Graphics.GL.Internal.Shared.GL_INDEX_ARRAY', 'Graphics.GL.Internal.Shared.GL_INDEX_LOGIC_OP', 'Graphics.GL.Ext.SGIX.Interlace.GL_INTERLACE_SGIX', 'Graphics.GL.Ext.SGIX.IrInstrument1.GL_IR_INSTRUMENT1_SGIX', 'Graphics.GL.Internal.Shared.GL_LIGHT0', 'Graphics.GL.Internal.Shared.GL_LIGHT1', 'Graphics.GL.Internal.Shared.GL_LIGHT2', 'Graphics.GL.Internal.Shared.GL_LIGHT3', 'Graphics.GL.Internal.Shared.GL_LIGHT4', 'Graphics.GL.Internal.Shared.GL_LIGHT5', 'Graphics.GL.Internal.Shared.GL_LIGHT6', 'Graphics.GL.Internal.Shared.GL_LIGHT7', 'Graphics.GL.Internal.Shared.GL_LIGHTING', 'Graphics.GL.Internal.Shared.GL_LINE_SMOOTH', 'Graphics.GL.Internal.Shared.GL_LINE_STIPPLE', 'Graphics.GL.Internal.Shared.GL_MAP1_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP1_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP1_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP1_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP1_VERTEX_4', 'Graphics.GL.Internal.Shared.GL_MAP2_COLOR_4', 'Graphics.GL.Internal.Shared.GL_MAP2_INDEX', 'Graphics.GL.Internal.Shared.GL_MAP2_NORMAL', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_1', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_2', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_3', 'Graphics.GL.Internal.Shared.GL_MAP2_TEXTURE_COORD_4', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_3', 'Graphics.GL.Internal.Shared.GL_MAP2_VERTEX_4', 'Graphics.GL.Ext.EXT.Histogram.GL_MINMAX_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_MULTISAMPLE_SGIS', 'Graphics.GL.Internal.Shared.GL_NORMALIZE', 'Graphics.GL.Internal.Shared.GL_NORMAL_ARRAY', 'Graphics.GL.Ext.SGIS.PixelTexture.GL_PIXEL_TEXTURE_SGIS', 'Graphics.GL.Ext.SGIX.PixelTexture.GL_PIXEL_TEX_GEN_SGIX', 'Graphics.GL.Internal.Shared.GL_POINT_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_FILL', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_LINE', 'Graphics.GL.Internal.Shared.GL_POLYGON_OFFSET_POINT', 'Graphics.GL.Internal.Shared.GL_POLYGON_SMOOTH', 'Graphics.GL.Internal.Shared.GL_POLYGON_STIPPLE', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGI.ColorTable.GL_POST_CONVOLUTION_COLOR_TABLE_SGI', 'Graphics.GL.Ext.SGIX.ReferencePlane.GL_REFERENCE_PLANE_SGIX', 'Graphics.GL.Ext.EXT.RescaleNormal.GL_RESCALE_NORMAL_EXT', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_MASK_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_ALPHA_TO_ONE_SGIS', 'Graphics.GL.Ext.SGIS.Multisample.GL_SAMPLE_MASK_SGIS', 'Graphics.GL.Internal.Shared.GL_SCISSOR_TEST', 'Graphics.GL.Ext.EXT.Convolution.GL_SEPARABLE_2D_EXT', 'Graphics.GL.Ext.EXT.SharedTexturePalette.GL_SHARED_TEXTURE_PALETTE_EXT', 'Graphics.GL.Ext.SGIX.Sprite.GL_SPRITE_SGIX', 'Graphics.GL.Internal.Shared.GL_STENCIL_TEST', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Ext.SGI.TextureColorTable.GL_TEXTURE_COLOR_TABLE_SGI', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COORD_ARRAY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_Q', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_R', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GEN_T', 'Graphics.GL.Internal.Shared.GL_VERTEX_ARRAY'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsEnabled.xhtml>
+
+
+glIsEnabled :: MonadIO m => GLenum -> m GLboolean
+glIsEnabled = ffienumIOboolean glIsEnabledFunPtr
+
+glIsEnabledFunPtr :: FunPtr (GLenum -> IO GLboolean)
+glIsEnabledFunPtr = unsafePerformIO (getProcAddress "glIsEnabled")
+
+{-# NOINLINE glIsEnabledFunPtr #-}
+
+-- | Usage: @'glIsEnabledi' target index@
+
+
+glIsEnabledi :: MonadIO m => GLenum -> GLuint -> m GLboolean
+glIsEnabledi = ffienumuintIOboolean glIsEnablediFunPtr
+
+glIsEnablediFunPtr :: FunPtr (GLenum -> GLuint -> IO GLboolean)
+glIsEnablediFunPtr = unsafePerformIO (getProcAddress "glIsEnabledi")
+
+{-# NOINLINE glIsEnablediFunPtr #-}
+
+-- | Usage: @'glIsFramebuffer' framebuffer@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsFramebuffer.xhtml>
+
+
+glIsFramebuffer :: MonadIO m => GLuint -> m GLboolean
+glIsFramebuffer = ffiuintIOboolean glIsFramebufferFunPtr
+
+glIsFramebufferFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsFramebufferFunPtr = unsafePerformIO (getProcAddress "glIsFramebuffer")
+
+{-# NOINLINE glIsFramebufferFunPtr #-}
+
+-- | Usage: @'glIsProgram' program@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsProgram.xhtml>
+
+
+glIsProgram :: MonadIO m => GLuint -> m GLboolean
+glIsProgram = ffiuintIOboolean glIsProgramFunPtr
+
+glIsProgramFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsProgramFunPtr = unsafePerformIO (getProcAddress "glIsProgram")
+
+{-# NOINLINE glIsProgramFunPtr #-}
+
+-- | Usage: @'glIsQuery' id@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsQuery.xhtml>
+
+
+glIsQuery :: MonadIO m => GLuint -> m GLboolean
+glIsQuery = ffiuintIOboolean glIsQueryFunPtr
+
+glIsQueryFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsQueryFunPtr = unsafePerformIO (getProcAddress "glIsQuery")
+
+{-# NOINLINE glIsQueryFunPtr #-}
+
+-- | Usage: @'glIsRenderbuffer' renderbuffer@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsRenderbuffer.xhtml>
+
+
+glIsRenderbuffer :: MonadIO m => GLuint -> m GLboolean
+glIsRenderbuffer = ffiuintIOboolean glIsRenderbufferFunPtr
+
+glIsRenderbufferFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsRenderbufferFunPtr = unsafePerformIO (getProcAddress "glIsRenderbuffer")
+
+{-# NOINLINE glIsRenderbufferFunPtr #-}
+
+-- | Usage: @'glIsShader' shader@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsShader.xhtml>
+
+
+glIsShader :: MonadIO m => GLuint -> m GLboolean
+glIsShader = ffiuintIOboolean glIsShaderFunPtr
+
+glIsShaderFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsShaderFunPtr = unsafePerformIO (getProcAddress "glIsShader")
+
+{-# NOINLINE glIsShaderFunPtr #-}
+
+-- | Usage: @'glIsSync' sync@
+--
+-- The parameter @sync@ is a @sync@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsSync.xhtml>
+
+
+glIsSync :: MonadIO m => GLsync -> m GLboolean
+glIsSync = ffisyncIOboolean glIsSyncFunPtr
+
+glIsSyncFunPtr :: FunPtr (GLsync -> IO GLboolean)
+glIsSyncFunPtr = unsafePerformIO (getProcAddress "glIsSync")
+
+{-# NOINLINE glIsSyncFunPtr #-}
+
+-- | Usage: @'glIsTexture' texture@
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsTexture.xhtml>
+
+
+glIsTexture :: MonadIO m => GLuint -> m GLboolean
+glIsTexture = ffiuintIOboolean glIsTextureFunPtr
+
+glIsTextureFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsTextureFunPtr = unsafePerformIO (getProcAddress "glIsTexture")
+
+{-# NOINLINE glIsTextureFunPtr #-}
+
+-- | Usage: @'glIsVertexArray' array@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsVertexArray.xhtml>
+
+
+glIsVertexArray :: MonadIO m => GLuint -> m GLboolean
+glIsVertexArray = ffiuintIOboolean glIsVertexArrayFunPtr
+
+glIsVertexArrayFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsVertexArrayFunPtr = unsafePerformIO (getProcAddress "glIsVertexArray")
+
+{-# NOINLINE glIsVertexArrayFunPtr #-}
+
+-- | Usage: @'glLineWidth' width@
+--
+-- The parameter @width@ is a @CheckedFloat32@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glLineWidth.xhtml>
+
+
+glLineWidth :: MonadIO m => GLfloat -> m ()
+glLineWidth = ffifloatIOV glLineWidthFunPtr
+
+glLineWidthFunPtr :: FunPtr (GLfloat -> IO ())
+glLineWidthFunPtr = unsafePerformIO (getProcAddress "glLineWidth")
+
+{-# NOINLINE glLineWidthFunPtr #-}
+
+-- | Usage: @'glLinkProgram' program@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glLinkProgram.xhtml>
+
+
+glLinkProgram :: MonadIO m => GLuint -> m ()
+glLinkProgram = ffiuintIOV glLinkProgramFunPtr
+
+glLinkProgramFunPtr :: FunPtr (GLuint -> IO ())
+glLinkProgramFunPtr = unsafePerformIO (getProcAddress "glLinkProgram")
+
+{-# NOINLINE glLinkProgramFunPtr #-}
+
+-- | Usage: @'glLogicOp' opcode@
+--
+-- The parameter @opcode@ is a @LogicOp@, one of: 'Graphics.GL.Internal.Shared.GL_AND', 'Graphics.GL.Internal.Shared.GL_AND_INVERTED', 'Graphics.GL.Internal.Shared.GL_AND_REVERSE', 'Graphics.GL.Internal.Shared.GL_CLEAR', 'Graphics.GL.Internal.Shared.GL_COPY', 'Graphics.GL.Internal.Shared.GL_COPY_INVERTED', 'Graphics.GL.Internal.Shared.GL_EQUIV', 'Graphics.GL.Internal.Shared.GL_INVERT', 'Graphics.GL.Internal.Shared.GL_NAND', 'Graphics.GL.Internal.Shared.GL_NOOP', 'Graphics.GL.Internal.Shared.GL_NOR', 'Graphics.GL.Internal.Shared.GL_OR', 'Graphics.GL.Internal.Shared.GL_OR_INVERTED', 'Graphics.GL.Internal.Shared.GL_OR_REVERSE', 'Graphics.GL.Internal.Shared.GL_SET', 'Graphics.GL.Internal.Shared.GL_XOR'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glLogicOp.xhtml>
+
+
+glLogicOp :: MonadIO m => GLenum -> m ()
+glLogicOp = ffienumIOV glLogicOpFunPtr
+
+glLogicOpFunPtr :: FunPtr (GLenum -> IO ())
+glLogicOpFunPtr = unsafePerformIO (getProcAddress "glLogicOp")
+
+{-# NOINLINE glLogicOpFunPtr #-}
+
+-- | Usage: @'glMapBuffer' target access@
+--
+-- The parameter @target@ is a @BufferTargetARB@.
+--
+-- The parameter @access@ is a @BufferAccessARB@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glMapBuffer.xhtml>
+
+
+glMapBuffer :: MonadIO m => GLenum -> GLenum -> m (Ptr ())
+glMapBuffer = ffienumenumIOPtrV glMapBufferFunPtr
+
+glMapBufferFunPtr :: FunPtr (GLenum -> GLenum -> IO (Ptr ()))
+glMapBufferFunPtr = unsafePerformIO (getProcAddress "glMapBuffer")
+
+{-# NOINLINE glMapBufferFunPtr #-}
+
+-- | Usage: @'glMapBufferRange' target offset length access@
+--
+-- The parameter @target@ is a @BufferTargetARB@.
+--
+-- The parameter @offset@ is a @BufferOffset@.
+--
+-- The parameter @length@ is a @BufferSize@.
+--
+-- The parameter @access@ is a @BufferAccessMask@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glMapBufferRange.xhtml>
+
+
+glMapBufferRange :: MonadIO m => GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr ())
+glMapBufferRange = ffienumintptrsizeiptrbitfieldIOPtrV glMapBufferRangeFunPtr
+
+glMapBufferRangeFunPtr :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> IO (Ptr ()))
+glMapBufferRangeFunPtr = unsafePerformIO (getProcAddress "glMapBufferRange")
+
+{-# NOINLINE glMapBufferRangeFunPtr #-}
+
+-- | Usage: @'glMultiDrawArrays' mode first count drawcount@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- The length of @first@ should be @COMPSIZE(count)@.
+--
+-- The length of @count@ should be @COMPSIZE(drawcount)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glMultiDrawArrays.xhtml>
+
+
+glMultiDrawArrays :: MonadIO m => GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> m ()
+glMultiDrawArrays = ffienumPtrintPtrsizeisizeiIOV glMultiDrawArraysFunPtr
+
+glMultiDrawArraysFunPtr :: FunPtr (GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> IO ())
+glMultiDrawArraysFunPtr = unsafePerformIO (getProcAddress "glMultiDrawArrays")
+
+{-# NOINLINE glMultiDrawArraysFunPtr #-}
+
+-- | Usage: @'glMultiDrawElements' mode count type indices drawcount@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- The parameter @type@ is a @DrawElementsType@.
+--
+-- The length of @count@ should be @COMPSIZE(drawcount)@.
+--
+-- The length of @indices@ should be @COMPSIZE(drawcount)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glMultiDrawElements.xhtml>
+
+
+glMultiDrawElements :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> m ()
+glMultiDrawElements = ffienumPtrsizeienumPtrPtrVsizeiIOV glMultiDrawElementsFunPtr
+
+glMultiDrawElementsFunPtr :: FunPtr (GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> IO ())
+glMultiDrawElementsFunPtr = unsafePerformIO (getProcAddress "glMultiDrawElements")
+
+{-# NOINLINE glMultiDrawElementsFunPtr #-}
+
+-- | Usage: @'glMultiDrawElementsBaseVertex' mode count type indices drawcount basevertex@
+--
+-- The parameter @type@ is a @DrawElementsType@.
+--
+-- The length of @count@ should be @COMPSIZE(drawcount)@.
+--
+-- The length of @indices@ should be @COMPSIZE(drawcount)@.
+--
+-- The length of @basevertex@ should be @COMPSIZE(drawcount)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glMultiDrawElementsBaseVertex.xhtml>
+
+
+glMultiDrawElementsBaseVertex :: MonadIO m => GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> Ptr GLint -> m ()
+glMultiDrawElementsBaseVertex = ffienumPtrsizeienumPtrPtrVsizeiPtrintIOV glMultiDrawElementsBaseVertexFunPtr
+
+glMultiDrawElementsBaseVertexFunPtr :: FunPtr (GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> Ptr GLint -> IO ())
+glMultiDrawElementsBaseVertexFunPtr = unsafePerformIO (getProcAddress "glMultiDrawElementsBaseVertex")
+
+{-# NOINLINE glMultiDrawElementsBaseVertexFunPtr #-}
+
+-- | Usage: @'glPixelStoref' pname param@
+--
+-- The parameter @pname@ is a @PixelStoreParameter@, one of: 'Graphics.GL.Internal.Shared.GL_PACK_ALIGNMENT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PACK_IMAGE_DEPTH_SGIS', 'Graphics.GL.Internal.Shared.GL_PACK_IMAGE_HEIGHT', 'Graphics.GL.Ext.EXT.Texture3D.GL_PACK_IMAGE_HEIGHT_EXT', 'Graphics.GL.Internal.Shared.GL_PACK_LSB_FIRST', 'Graphics.GL.Ext.OML.Resample.GL_PACK_RESAMPLE_OML', 'Graphics.GL.Ext.SGIX.Resample.GL_PACK_RESAMPLE_SGIX', 'Graphics.GL.Internal.Shared.GL_PACK_ROW_LENGTH', 'Graphics.GL.Internal.Shared.GL_PACK_SKIP_IMAGES', 'Graphics.GL.Ext.EXT.Texture3D.GL_PACK_SKIP_IMAGES_EXT', 'Graphics.GL.Internal.Shared.GL_PACK_SKIP_PIXELS', 'Graphics.GL.Internal.Shared.GL_PACK_SKIP_ROWS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PACK_SKIP_VOLUMES_SGIS', 'Graphics.GL.Ext.SGIX.Subsample.GL_PACK_SUBSAMPLE_RATE_SGIX', 'Graphics.GL.Internal.Shared.GL_PACK_SWAP_BYTES', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_CACHE_SIZE_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_HEIGHT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_WIDTH_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_HEIGHT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_WIDTH_SGIX', 'Graphics.GL.Internal.Shared.GL_UNPACK_ALIGNMENT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_UNPACK_IMAGE_DEPTH_SGIS', 'Graphics.GL.Internal.Shared.GL_UNPACK_IMAGE_HEIGHT', 'Graphics.GL.Ext.EXT.Texture3D.GL_UNPACK_IMAGE_HEIGHT_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_LSB_FIRST', 'Graphics.GL.Ext.OML.Resample.GL_UNPACK_RESAMPLE_OML', 'Graphics.GL.Ext.SGIX.Resample.GL_UNPACK_RESAMPLE_SGIX', 'Graphics.GL.Internal.Shared.GL_UNPACK_ROW_LENGTH', 'Graphics.GL.Ext.EXT.UnpackSubimage.GL_UNPACK_ROW_LENGTH_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_SKIP_IMAGES', 'Graphics.GL.Ext.EXT.Texture3D.GL_UNPACK_SKIP_IMAGES_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_SKIP_PIXELS', 'Graphics.GL.Ext.EXT.UnpackSubimage.GL_UNPACK_SKIP_PIXELS_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_SKIP_ROWS', 'Graphics.GL.Ext.EXT.UnpackSubimage.GL_UNPACK_SKIP_ROWS_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_UNPACK_SKIP_VOLUMES_SGIS', 'Graphics.GL.Ext.SGIX.Subsample.GL_UNPACK_SUBSAMPLE_RATE_SGIX', 'Graphics.GL.Internal.Shared.GL_UNPACK_SWAP_BYTES'.
+--
+-- The parameter @param@ is a @CheckedFloat32@.
+
+
+glPixelStoref :: MonadIO m => GLenum -> GLfloat -> m ()
+glPixelStoref = ffienumfloatIOV glPixelStorefFunPtr
+
+glPixelStorefFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
+glPixelStorefFunPtr = unsafePerformIO (getProcAddress "glPixelStoref")
+
+{-# NOINLINE glPixelStorefFunPtr #-}
+
+-- | Usage: @'glPixelStorei' pname param@
+--
+-- The parameter @pname@ is a @PixelStoreParameter@, one of: 'Graphics.GL.Internal.Shared.GL_PACK_ALIGNMENT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PACK_IMAGE_DEPTH_SGIS', 'Graphics.GL.Internal.Shared.GL_PACK_IMAGE_HEIGHT', 'Graphics.GL.Ext.EXT.Texture3D.GL_PACK_IMAGE_HEIGHT_EXT', 'Graphics.GL.Internal.Shared.GL_PACK_LSB_FIRST', 'Graphics.GL.Ext.OML.Resample.GL_PACK_RESAMPLE_OML', 'Graphics.GL.Ext.SGIX.Resample.GL_PACK_RESAMPLE_SGIX', 'Graphics.GL.Internal.Shared.GL_PACK_ROW_LENGTH', 'Graphics.GL.Internal.Shared.GL_PACK_SKIP_IMAGES', 'Graphics.GL.Ext.EXT.Texture3D.GL_PACK_SKIP_IMAGES_EXT', 'Graphics.GL.Internal.Shared.GL_PACK_SKIP_PIXELS', 'Graphics.GL.Internal.Shared.GL_PACK_SKIP_ROWS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PACK_SKIP_VOLUMES_SGIS', 'Graphics.GL.Ext.SGIX.Subsample.GL_PACK_SUBSAMPLE_RATE_SGIX', 'Graphics.GL.Internal.Shared.GL_PACK_SWAP_BYTES', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_CACHE_SIZE_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_HEIGHT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_GRID_WIDTH_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_HEIGHT_SGIX', 'Graphics.GL.Ext.SGIX.PixelTiles.GL_PIXEL_TILE_WIDTH_SGIX', 'Graphics.GL.Internal.Shared.GL_UNPACK_ALIGNMENT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_UNPACK_IMAGE_DEPTH_SGIS', 'Graphics.GL.Internal.Shared.GL_UNPACK_IMAGE_HEIGHT', 'Graphics.GL.Ext.EXT.Texture3D.GL_UNPACK_IMAGE_HEIGHT_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_LSB_FIRST', 'Graphics.GL.Ext.OML.Resample.GL_UNPACK_RESAMPLE_OML', 'Graphics.GL.Ext.SGIX.Resample.GL_UNPACK_RESAMPLE_SGIX', 'Graphics.GL.Internal.Shared.GL_UNPACK_ROW_LENGTH', 'Graphics.GL.Ext.EXT.UnpackSubimage.GL_UNPACK_ROW_LENGTH_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_SKIP_IMAGES', 'Graphics.GL.Ext.EXT.Texture3D.GL_UNPACK_SKIP_IMAGES_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_SKIP_PIXELS', 'Graphics.GL.Ext.EXT.UnpackSubimage.GL_UNPACK_SKIP_PIXELS_EXT', 'Graphics.GL.Internal.Shared.GL_UNPACK_SKIP_ROWS', 'Graphics.GL.Ext.EXT.UnpackSubimage.GL_UNPACK_SKIP_ROWS_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_UNPACK_SKIP_VOLUMES_SGIS', 'Graphics.GL.Ext.SGIX.Subsample.GL_UNPACK_SUBSAMPLE_RATE_SGIX', 'Graphics.GL.Internal.Shared.GL_UNPACK_SWAP_BYTES'.
+--
+-- The parameter @param@ is a @CheckedInt32@.
+
+
+glPixelStorei :: MonadIO m => GLenum -> GLint -> m ()
+glPixelStorei = ffienumintIOV glPixelStoreiFunPtr
+
+glPixelStoreiFunPtr :: FunPtr (GLenum -> GLint -> IO ())
+glPixelStoreiFunPtr = unsafePerformIO (getProcAddress "glPixelStorei")
+
+{-# NOINLINE glPixelStoreiFunPtr #-}
+
+-- | Usage: @'glPointParameterf' pname param@
+--
+-- The parameter @pname@ is a @PointParameterNameARB@.
+--
+-- The parameter @param@ is a @CheckedFloat32@.
+
+
+glPointParameterf :: MonadIO m => GLenum -> GLfloat -> m ()
+glPointParameterf = ffienumfloatIOV glPointParameterfFunPtr
+
+glPointParameterfFunPtr :: FunPtr (GLenum -> GLfloat -> IO ())
+glPointParameterfFunPtr = unsafePerformIO (getProcAddress "glPointParameterf")
+
+{-# NOINLINE glPointParameterfFunPtr #-}
+
+-- | Usage: @'glPointParameterfv' pname params@
+--
+-- The parameter @pname@ is a @PointParameterNameARB@.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glPointParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glPointParameterfv = ffienumPtrfloatIOV glPointParameterfvFunPtr
+
+glPointParameterfvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glPointParameterfvFunPtr = unsafePerformIO (getProcAddress "glPointParameterfv")
+
+{-# NOINLINE glPointParameterfvFunPtr #-}
+
+-- | Usage: @'glPointParameteri' pname param@
+--
+-- The parameter @pname@ is a @PointParameterNameARB@.
+
+
+glPointParameteri :: MonadIO m => GLenum -> GLint -> m ()
+glPointParameteri = ffienumintIOV glPointParameteriFunPtr
+
+glPointParameteriFunPtr :: FunPtr (GLenum -> GLint -> IO ())
+glPointParameteriFunPtr = unsafePerformIO (getProcAddress "glPointParameteri")
+
+{-# NOINLINE glPointParameteriFunPtr #-}
+
+-- | Usage: @'glPointParameteriv' pname params@
+--
+-- The parameter @pname@ is a @PointParameterNameARB@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glPointParameteriv :: MonadIO m => GLenum -> Ptr GLint -> m ()
+glPointParameteriv = ffienumPtrintIOV glPointParameterivFunPtr
+
+glPointParameterivFunPtr :: FunPtr (GLenum -> Ptr GLint -> IO ())
+glPointParameterivFunPtr = unsafePerformIO (getProcAddress "glPointParameteriv")
+
+{-# NOINLINE glPointParameterivFunPtr #-}
+
+-- | Usage: @'glPointSize' size@
+--
+-- The parameter @size@ is a @CheckedFloat32@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glPointSize.xhtml>
+
+
+glPointSize :: MonadIO m => GLfloat -> m ()
+glPointSize = ffifloatIOV glPointSizeFunPtr
+
+glPointSizeFunPtr :: FunPtr (GLfloat -> IO ())
+glPointSizeFunPtr = unsafePerformIO (getProcAddress "glPointSize")
+
+{-# NOINLINE glPointSizeFunPtr #-}
+
+-- | Usage: @'glPolygonMode' face mode@
+--
+-- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK'.
+--
+-- The parameter @mode@ is a @PolygonMode@, one of: 'Graphics.GL.Internal.Shared.GL_FILL', 'Graphics.GL.Internal.Shared.GL_LINE', 'Graphics.GL.Internal.Shared.GL_POINT'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glPolygonMode.xhtml>
+
+
+glPolygonMode :: MonadIO m => GLenum -> GLenum -> m ()
+glPolygonMode = ffienumenumIOV glPolygonModeFunPtr
+
+glPolygonModeFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
+glPolygonModeFunPtr = unsafePerformIO (getProcAddress "glPolygonMode")
+
+{-# NOINLINE glPolygonModeFunPtr #-}
+
+-- | Usage: @'glPolygonOffset' factor units@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glPolygonOffset.xhtml>
+
+
+glPolygonOffset :: MonadIO m => GLfloat -> GLfloat -> m ()
+glPolygonOffset = ffifloatfloatIOV glPolygonOffsetFunPtr
+
+glPolygonOffsetFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())
+glPolygonOffsetFunPtr = unsafePerformIO (getProcAddress "glPolygonOffset")
+
+{-# NOINLINE glPolygonOffsetFunPtr #-}
+
+-- | Usage: @'glPrimitiveRestartIndex' index@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glPrimitiveRestartIndex.xhtml>
+
+
+glPrimitiveRestartIndex :: MonadIO m => GLuint -> m ()
+glPrimitiveRestartIndex = ffiuintIOV glPrimitiveRestartIndexFunPtr
+
+glPrimitiveRestartIndexFunPtr :: FunPtr (GLuint -> IO ())
+glPrimitiveRestartIndexFunPtr = unsafePerformIO (getProcAddress "glPrimitiveRestartIndex")
+
+{-# NOINLINE glPrimitiveRestartIndexFunPtr #-}
+
+-- | Usage: @'glProvokingVertex' mode@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glProvokingVertex.xhtml>
+
+
+glProvokingVertex :: MonadIO m => GLenum -> m ()
+glProvokingVertex = ffienumIOV glProvokingVertexFunPtr
+
+glProvokingVertexFunPtr :: FunPtr (GLenum -> IO ())
+glProvokingVertexFunPtr = unsafePerformIO (getProcAddress "glProvokingVertex")
+
+{-# NOINLINE glProvokingVertexFunPtr #-}
+
+-- | Usage: @'glReadBuffer' src@
+--
+-- The parameter @src@ is a @ReadBufferMode@, one of: 'Graphics.GL.Internal.Shared.GL_AUX0', 'Graphics.GL.Internal.Shared.GL_AUX1', 'Graphics.GL.Internal.Shared.GL_AUX2', 'Graphics.GL.Internal.Shared.GL_AUX3', 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_BACK_LEFT', 'Graphics.GL.Internal.Shared.GL_BACK_RIGHT', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_LEFT', 'Graphics.GL.Internal.Shared.GL_FRONT_RIGHT', 'Graphics.GL.Internal.Shared.GL_LEFT', 'Graphics.GL.Internal.Shared.GL_RIGHT'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glReadBuffer.xhtml>
+
+
+glReadBuffer :: MonadIO m => GLenum -> m ()
+glReadBuffer = ffienumIOV glReadBufferFunPtr
+
+glReadBufferFunPtr :: FunPtr (GLenum -> IO ())
+glReadBufferFunPtr = unsafePerformIO (getProcAddress "glReadBuffer")
+
+{-# NOINLINE glReadBufferFunPtr #-}
+
+-- | Usage: @'glReadPixels' x y width height format type pixels@
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width,height)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glReadPixels.xhtml>
+
+
+glReadPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glReadPixels = ffiintintsizeisizeienumenumPtrVIOV glReadPixelsFunPtr
+
+glReadPixelsFunPtr :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glReadPixelsFunPtr = unsafePerformIO (getProcAddress "glReadPixels")
+
+{-# NOINLINE glReadPixelsFunPtr #-}
+
+-- | Usage: @'glRenderbufferStorage' target internalformat width height@
+--
+-- The parameter @target@ is a @RenderbufferTarget@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glRenderbufferStorage.xhtml>
+
+
+glRenderbufferStorage :: MonadIO m => GLenum -> GLenum -> GLsizei -> GLsizei -> m ()
+glRenderbufferStorage = ffienumenumsizeisizeiIOV glRenderbufferStorageFunPtr
+
+glRenderbufferStorageFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> IO ())
+glRenderbufferStorageFunPtr = unsafePerformIO (getProcAddress "glRenderbufferStorage")
+
+{-# NOINLINE glRenderbufferStorageFunPtr #-}
+
+-- | Usage: @'glRenderbufferStorageMultisample' target samples internalformat width height@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glRenderbufferStorageMultisample.xhtml>
+
+
+glRenderbufferStorageMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
+glRenderbufferStorageMultisample = ffienumsizeienumsizeisizeiIOV glRenderbufferStorageMultisampleFunPtr
+
+glRenderbufferStorageMultisampleFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
+glRenderbufferStorageMultisampleFunPtr = unsafePerformIO (getProcAddress "glRenderbufferStorageMultisample")
+
+{-# NOINLINE glRenderbufferStorageMultisampleFunPtr #-}
+
+-- | Usage: @'glSampleCoverage' value invert@
+--
+-- The parameter @invert@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glSampleCoverage.xhtml>
+
+
+glSampleCoverage :: MonadIO m => GLfloat -> GLboolean -> m ()
+glSampleCoverage = ffifloatbooleanIOV glSampleCoverageFunPtr
+
+glSampleCoverageFunPtr :: FunPtr (GLfloat -> GLboolean -> IO ())
+glSampleCoverageFunPtr = unsafePerformIO (getProcAddress "glSampleCoverage")
+
+{-# NOINLINE glSampleCoverageFunPtr #-}
+
+-- | Usage: @'glSampleMaski' maskNumber mask@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glSampleMaski.xhtml>
+
+
+glSampleMaski :: MonadIO m => GLuint -> GLbitfield -> m ()
+glSampleMaski = ffiuintbitfieldIOV glSampleMaskiFunPtr
+
+glSampleMaskiFunPtr :: FunPtr (GLuint -> GLbitfield -> IO ())
+glSampleMaskiFunPtr = unsafePerformIO (getProcAddress "glSampleMaski")
+
+{-# NOINLINE glSampleMaskiFunPtr #-}
+
+-- | Usage: @'glScissor' x y width height@
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glScissor.xhtml>
+
+
+glScissor :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()
+glScissor = ffiintintsizeisizeiIOV glScissorFunPtr
+
+glScissorFunPtr :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+glScissorFunPtr = unsafePerformIO (getProcAddress "glScissor")
+
+{-# NOINLINE glScissorFunPtr #-}
+
+-- | Usage: @'glShaderSource' shader count string length@
+--
+-- The length of @string@ should be @count@.
+--
+-- The length of @length@ should be @count@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glShaderSource.xhtml>
+
+
+glShaderSource :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> m ()
+glShaderSource = ffiuintsizeiPtrPtrcharPtrintIOV glShaderSourceFunPtr
+
+glShaderSourceFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> IO ())
+glShaderSourceFunPtr = unsafePerformIO (getProcAddress "glShaderSource")
+
+{-# NOINLINE glShaderSourceFunPtr #-}
+
+-- | Usage: @'glStencilFunc' func ref mask@
+--
+-- The parameter @func@ is a @StencilFunction@, one of: 'Graphics.GL.Internal.Shared.GL_ALWAYS', 'Graphics.GL.Internal.Shared.GL_EQUAL', 'Graphics.GL.Internal.Shared.GL_GEQUAL', 'Graphics.GL.Internal.Shared.GL_GREATER', 'Graphics.GL.Internal.Shared.GL_LEQUAL', 'Graphics.GL.Internal.Shared.GL_LESS', 'Graphics.GL.Internal.Shared.GL_NEVER', 'Graphics.GL.Internal.Shared.GL_NOTEQUAL'.
+--
+-- The parameter @ref@ is a @StencilValue@.
+--
+-- The parameter @mask@ is a @MaskedStencilValue@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glStencilFunc.xhtml>
+
+
+glStencilFunc :: MonadIO m => GLenum -> GLint -> GLuint -> m ()
+glStencilFunc = ffienumintuintIOV glStencilFuncFunPtr
+
+glStencilFuncFunPtr :: FunPtr (GLenum -> GLint -> GLuint -> IO ())
+glStencilFuncFunPtr = unsafePerformIO (getProcAddress "glStencilFunc")
+
+{-# NOINLINE glStencilFuncFunPtr #-}
+
+-- | Usage: @'glStencilFuncSeparate' face func ref mask@
+--
+-- The parameter @face@ is a @StencilFaceDirection@.
+--
+-- The parameter @func@ is a @StencilFunction@, one of: 'Graphics.GL.Internal.Shared.GL_ALWAYS', 'Graphics.GL.Internal.Shared.GL_EQUAL', 'Graphics.GL.Internal.Shared.GL_GEQUAL', 'Graphics.GL.Internal.Shared.GL_GREATER', 'Graphics.GL.Internal.Shared.GL_LEQUAL', 'Graphics.GL.Internal.Shared.GL_LESS', 'Graphics.GL.Internal.Shared.GL_NEVER', 'Graphics.GL.Internal.Shared.GL_NOTEQUAL'.
+--
+-- The parameter @ref@ is a @StencilValue@.
+--
+-- The parameter @mask@ is a @MaskedStencilValue@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glStencilFuncSeparate.xhtml>
+
+
+glStencilFuncSeparate :: MonadIO m => GLenum -> GLenum -> GLint -> GLuint -> m ()
+glStencilFuncSeparate = ffienumenumintuintIOV glStencilFuncSeparateFunPtr
+
+glStencilFuncSeparateFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> GLuint -> IO ())
+glStencilFuncSeparateFunPtr = unsafePerformIO (getProcAddress "glStencilFuncSeparate")
+
+{-# NOINLINE glStencilFuncSeparateFunPtr #-}
+
+-- | Usage: @'glStencilMask' mask@
+--
+-- The parameter @mask@ is a @MaskedStencilValue@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glStencilMask.xhtml>
+
+
+glStencilMask :: MonadIO m => GLuint -> m ()
+glStencilMask = ffiuintIOV glStencilMaskFunPtr
+
+glStencilMaskFunPtr :: FunPtr (GLuint -> IO ())
+glStencilMaskFunPtr = unsafePerformIO (getProcAddress "glStencilMask")
+
+{-# NOINLINE glStencilMaskFunPtr #-}
+
+-- | Usage: @'glStencilMaskSeparate' face mask@
+--
+-- The parameter @face@ is a @StencilFaceDirection@.
+--
+-- The parameter @mask@ is a @MaskedStencilValue@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glStencilMaskSeparate.xhtml>
+
+
+glStencilMaskSeparate :: MonadIO m => GLenum -> GLuint -> m ()
+glStencilMaskSeparate = ffienumuintIOV glStencilMaskSeparateFunPtr
+
+glStencilMaskSeparateFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glStencilMaskSeparateFunPtr = unsafePerformIO (getProcAddress "glStencilMaskSeparate")
+
+{-# NOINLINE glStencilMaskSeparateFunPtr #-}
+
+-- | Usage: @'glStencilOp' fail zfail zpass@
+--
+-- The parameter @fail@ is a @StencilOp@, one of: 'Graphics.GL.Internal.Shared.GL_DECR', 'Graphics.GL.Internal.Shared.GL_INCR', 'Graphics.GL.Internal.Shared.GL_INVERT', 'Graphics.GL.Internal.Shared.GL_KEEP', 'Graphics.GL.Internal.Shared.GL_REPLACE', 'Graphics.GL.Internal.Shared.GL_ZERO'.
+--
+-- The parameter @zfail@ is a @StencilOp@, one of: 'Graphics.GL.Internal.Shared.GL_DECR', 'Graphics.GL.Internal.Shared.GL_INCR', 'Graphics.GL.Internal.Shared.GL_INVERT', 'Graphics.GL.Internal.Shared.GL_KEEP', 'Graphics.GL.Internal.Shared.GL_REPLACE', 'Graphics.GL.Internal.Shared.GL_ZERO'.
+--
+-- The parameter @zpass@ is a @StencilOp@, one of: 'Graphics.GL.Internal.Shared.GL_DECR', 'Graphics.GL.Internal.Shared.GL_INCR', 'Graphics.GL.Internal.Shared.GL_INVERT', 'Graphics.GL.Internal.Shared.GL_KEEP', 'Graphics.GL.Internal.Shared.GL_REPLACE', 'Graphics.GL.Internal.Shared.GL_ZERO'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glStencilOp.xhtml>
+
+
+glStencilOp :: MonadIO m => GLenum -> GLenum -> GLenum -> m ()
+glStencilOp = ffienumenumenumIOV glStencilOpFunPtr
+
+glStencilOpFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> IO ())
+glStencilOpFunPtr = unsafePerformIO (getProcAddress "glStencilOp")
+
+{-# NOINLINE glStencilOpFunPtr #-}
+
+-- | Usage: @'glStencilOpSeparate' face sfail dpfail dppass@
+--
+-- The parameter @face@ is a @StencilFaceDirection@.
+--
+-- The parameter @sfail@ is a @StencilOp@, one of: 'Graphics.GL.Internal.Shared.GL_DECR', 'Graphics.GL.Internal.Shared.GL_INCR', 'Graphics.GL.Internal.Shared.GL_INVERT', 'Graphics.GL.Internal.Shared.GL_KEEP', 'Graphics.GL.Internal.Shared.GL_REPLACE', 'Graphics.GL.Internal.Shared.GL_ZERO'.
+--
+-- The parameter @dpfail@ is a @StencilOp@, one of: 'Graphics.GL.Internal.Shared.GL_DECR', 'Graphics.GL.Internal.Shared.GL_INCR', 'Graphics.GL.Internal.Shared.GL_INVERT', 'Graphics.GL.Internal.Shared.GL_KEEP', 'Graphics.GL.Internal.Shared.GL_REPLACE', 'Graphics.GL.Internal.Shared.GL_ZERO'.
+--
+-- The parameter @dppass@ is a @StencilOp@, one of: 'Graphics.GL.Internal.Shared.GL_DECR', 'Graphics.GL.Internal.Shared.GL_INCR', 'Graphics.GL.Internal.Shared.GL_INVERT', 'Graphics.GL.Internal.Shared.GL_KEEP', 'Graphics.GL.Internal.Shared.GL_REPLACE', 'Graphics.GL.Internal.Shared.GL_ZERO'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glStencilOpSeparate.xhtml>
+
+
+glStencilOpSeparate :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> m ()
+glStencilOpSeparate = ffienumenumenumenumIOV glStencilOpSeparateFunPtr
+
+glStencilOpSeparateFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ())
+glStencilOpSeparateFunPtr = unsafePerformIO (getProcAddress "glStencilOpSeparate")
+
+{-# NOINLINE glStencilOpSeparateFunPtr #-}
+
+-- | Usage: @'glTexBuffer' target internalformat buffer@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexBuffer.xhtml>
+
+
+glTexBuffer :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
+glTexBuffer = ffienumenumuintIOV glTexBufferFunPtr
+
+glTexBufferFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
+glTexBufferFunPtr = unsafePerformIO (getProcAddress "glTexBuffer")
+
+{-# NOINLINE glTexBufferFunPtr #-}
+
+-- | Usage: @'glTexImage1D' target level internalformat width border format type pixels@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @TextureComponentCount@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexImage1D.xhtml>
+
+
+glTexImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
+glTexImage1D = ffienumintintsizeiintenumenumPtrVIOV glTexImage1DFunPtr
+
+glTexImage1DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
+glTexImage1DFunPtr = unsafePerformIO (getProcAddress "glTexImage1D")
+
+{-# NOINLINE glTexImage1DFunPtr #-}
+
+-- | Usage: @'glTexImage2D' target level internalformat width height border format type pixels@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @TextureComponentCount@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width,height)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexImage2D.xhtml>
+
+
+glTexImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
+glTexImage2D = ffienumintintsizeisizeiintenumenumPtrVIOV glTexImage2DFunPtr
+
+glTexImage2DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
+glTexImage2DFunPtr = unsafePerformIO (getProcAddress "glTexImage2D")
+
+{-# NOINLINE glTexImage2DFunPtr #-}
+
+-- | Usage: @'glTexImage2DMultisample' target samples internalformat width height fixedsamplelocations@
+--
+-- The parameter @fixedsamplelocations@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexImage2DMultisample.xhtml>
+
+
+glTexImage2DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()
+glTexImage2DMultisample = ffienumsizeienumsizeisizeibooleanIOV glTexImage2DMultisampleFunPtr
+
+glTexImage2DMultisampleFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> IO ())
+glTexImage2DMultisampleFunPtr = unsafePerformIO (getProcAddress "glTexImage2DMultisample")
+
+{-# NOINLINE glTexImage2DMultisampleFunPtr #-}
+
+-- | Usage: @'glTexImage3D' target level internalformat width height depth border format type pixels@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @internalformat@ is a @TextureComponentCount@.
+--
+-- The parameter @border@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width,height,depth)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexImage3D.xhtml>
+
+
+glTexImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
+glTexImage3D = ffienumintintsizeisizeisizeiintenumenumPtrVIOV glTexImage3DFunPtr
+
+glTexImage3DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
+glTexImage3DFunPtr = unsafePerformIO (getProcAddress "glTexImage3D")
+
+{-# NOINLINE glTexImage3DFunPtr #-}
+
+-- | Usage: @'glTexImage3DMultisample' target samples internalformat width height depth fixedsamplelocations@
+--
+-- The parameter @fixedsamplelocations@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexImage3DMultisample.xhtml>
+
+
+glTexImage3DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
+glTexImage3DMultisample = ffienumsizeienumsizeisizeisizeibooleanIOV glTexImage3DMultisampleFunPtr
+
+glTexImage3DMultisampleFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
+glTexImage3DMultisampleFunPtr = unsafePerformIO (getProcAddress "glTexImage3DMultisample")
+
+{-# NOINLINE glTexImage3DMultisampleFunPtr #-}
+
+-- | Usage: @'glTexParameterIiv' target pname params@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glTexParameterIiv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glTexParameterIiv = ffienumenumPtrintIOV glTexParameterIivFunPtr
+
+glTexParameterIivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glTexParameterIivFunPtr = unsafePerformIO (getProcAddress "glTexParameterIiv")
+
+{-# NOINLINE glTexParameterIivFunPtr #-}
+
+-- | Usage: @'glTexParameterIuiv' target pname params@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glTexParameterIuiv :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
+glTexParameterIuiv = ffienumenumPtruintIOV glTexParameterIuivFunPtr
+
+glTexParameterIuivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
+glTexParameterIuivFunPtr = unsafePerformIO (getProcAddress "glTexParameterIuiv")
+
+{-# NOINLINE glTexParameterIuivFunPtr #-}
+
+-- | Usage: @'glTexParameterf' target pname param@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The parameter @param@ is a @CheckedFloat32@.
+
+
+glTexParameterf :: MonadIO m => GLenum -> GLenum -> GLfloat -> m ()
+glTexParameterf = ffienumenumfloatIOV glTexParameterfFunPtr
+
+glTexParameterfFunPtr :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
+glTexParameterfFunPtr = unsafePerformIO (getProcAddress "glTexParameterf")
+
+{-# NOINLINE glTexParameterfFunPtr #-}
+
+-- | Usage: @'glTexParameterfv' target pname params@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The parameter @params@ is a @CheckedFloat32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glTexParameterfv :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
+glTexParameterfv = ffienumenumPtrfloatIOV glTexParameterfvFunPtr
+
+glTexParameterfvFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+glTexParameterfvFunPtr = unsafePerformIO (getProcAddress "glTexParameterfv")
+
+{-# NOINLINE glTexParameterfvFunPtr #-}
+
+-- | Usage: @'glTexParameteri' target pname param@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The parameter @param@ is a @CheckedInt32@.
+
+
+glTexParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
+glTexParameteri = ffienumenumintIOV glTexParameteriFunPtr
+
+glTexParameteriFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
+glTexParameteriFunPtr = unsafePerformIO (getProcAddress "glTexParameteri")
+
+{-# NOINLINE glTexParameteriFunPtr #-}
+
+-- | Usage: @'glTexParameteriv' target pname params@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The parameter @params@ is a @CheckedInt32@.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glTexParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glTexParameteriv = ffienumenumPtrintIOV glTexParameterivFunPtr
+
+glTexParameterivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glTexParameterivFunPtr = unsafePerformIO (getProcAddress "glTexParameteriv")
+
+{-# NOINLINE glTexParameterivFunPtr #-}
+
+-- | Usage: @'glTexSubImage1D' target level xoffset width format type pixels@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexSubImage1D.xhtml>
+
+
+glTexSubImage1D :: MonadIO m => GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glTexSubImage1D = ffienumintintsizeienumenumPtrVIOV glTexSubImage1DFunPtr
+
+glTexSubImage1DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glTexSubImage1DFunPtr = unsafePerformIO (getProcAddress "glTexSubImage1D")
+
+{-# NOINLINE glTexSubImage1DFunPtr #-}
+
+-- | Usage: @'glTexSubImage2D' target level xoffset yoffset width height format type pixels@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @yoffset@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width,height)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexSubImage2D.xhtml>
+
+
+glTexSubImage2D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glTexSubImage2D = ffienumintintintsizeisizeienumenumPtrVIOV glTexSubImage2DFunPtr
+
+glTexSubImage2DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glTexSubImage2DFunPtr = unsafePerformIO (getProcAddress "glTexSubImage2D")
+
+{-# NOINLINE glTexSubImage2DFunPtr #-}
+
+-- | Usage: @'glTexSubImage3D' target level xoffset yoffset zoffset width height depth format type pixels@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @xoffset@ is a @CheckedInt32@.
+--
+-- The parameter @yoffset@ is a @CheckedInt32@.
+--
+-- The parameter @zoffset@ is a @CheckedInt32@.
+--
+-- The parameter @format@ is a @PixelFormat@, one of: 'Graphics.GL.Ext.EXT.Abgr.GL_ABGR_EXT', 'Graphics.GL.Internal.Shared.GL_ALPHA', 'Graphics.GL.Internal.Shared.GL_BLUE', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYKA_EXT', 'Graphics.GL.Ext.EXT.Cmyka.GL_CMYK_EXT', 'Graphics.GL.Internal.Shared.GL_COLOR_INDEX', 'Graphics.GL.Internal.Shared.GL_DEPTH_COMPONENT', 'Graphics.GL.Internal.Shared.GL_GREEN', 'Graphics.GL.Internal.Shared.GL_LUMINANCE', 'Graphics.GL.Internal.Shared.GL_LUMINANCE_ALPHA', 'Graphics.GL.Internal.Shared.GL_RED', 'Graphics.GL.Ext.EXT.TextureRg.GL_RED_EXT', 'Graphics.GL.Internal.Shared.GL_RGB', 'Graphics.GL.Internal.Shared.GL_RGBA', 'Graphics.GL.Internal.Shared.GL_STENCIL_INDEX', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_422_SGIX', 'Graphics.GL.Ext.SGIX.Ycrcb.GL_YCRCB_444_SGIX'.
+--
+-- The parameter @type@ is a @PixelType@, one of: 'Graphics.GL.Internal.Shared.GL_BITMAP', 'Graphics.GL.Internal.Shared.GL_BYTE', 'Graphics.GL.Internal.Shared.GL_FLOAT', 'Graphics.GL.Internal.Shared.GL_INT', 'Graphics.GL.Internal.Shared.GL_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_BYTE_3_3_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_BYTE_3_3_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_10_10_10_2', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_10_10_10_2_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_INT_8_8_8_8', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_INT_8_8_8_8_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_4_4_4_4', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_4_4_4_4_EXT', 'Graphics.GL.Internal.Shared.GL_UNSIGNED_SHORT_5_5_5_1', 'Graphics.GL.Ext.EXT.PackedPixels.GL_UNSIGNED_SHORT_5_5_5_1_EXT'.
+--
+-- The length of @pixels@ should be @COMPSIZE(format,type,width,height,depth)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexSubImage3D.xhtml>
+
+
+glTexSubImage3D :: MonadIO m => GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glTexSubImage3D = ffienumintintintintsizeisizeisizeienumenumPtrVIOV glTexSubImage3DFunPtr
+
+glTexSubImage3DFunPtr :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glTexSubImage3DFunPtr = unsafePerformIO (getProcAddress "glTexSubImage3D")
+
+{-# NOINLINE glTexSubImage3DFunPtr #-}
+
+-- | Usage: @'glTransformFeedbackVaryings' program count varyings bufferMode@
+--
+-- The length of @varyings@ should be @count@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTransformFeedbackVaryings.xhtml>
+
+
+glTransformFeedbackVaryings :: MonadIO m => GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> m ()
+glTransformFeedbackVaryings = ffiuintsizeiPtrPtrcharenumIOV glTransformFeedbackVaryingsFunPtr
+
+glTransformFeedbackVaryingsFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> IO ())
+glTransformFeedbackVaryingsFunPtr = unsafePerformIO (getProcAddress "glTransformFeedbackVaryings")
+
+{-# NOINLINE glTransformFeedbackVaryingsFunPtr #-}
+
+-- | Usage: @'glUniform1f' location v0@
+
+
+glUniform1f :: MonadIO m => GLint -> GLfloat -> m ()
+glUniform1f = ffiintfloatIOV glUniform1fFunPtr
+
+glUniform1fFunPtr :: FunPtr (GLint -> GLfloat -> IO ())
+glUniform1fFunPtr = unsafePerformIO (getProcAddress "glUniform1f")
+
+{-# NOINLINE glUniform1fFunPtr #-}
+
+-- | Usage: @'glUniform1fv' location count value@
+--
+-- The length of @value@ should be @count*1@.
+
+
+glUniform1fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()
+glUniform1fv = ffiintsizeiPtrfloatIOV glUniform1fvFunPtr
+
+glUniform1fvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ())
+glUniform1fvFunPtr = unsafePerformIO (getProcAddress "glUniform1fv")
+
+{-# NOINLINE glUniform1fvFunPtr #-}
+
+-- | Usage: @'glUniform1i' location v0@
+
+
+glUniform1i :: MonadIO m => GLint -> GLint -> m ()
+glUniform1i = ffiintintIOV glUniform1iFunPtr
+
+glUniform1iFunPtr :: FunPtr (GLint -> GLint -> IO ())
+glUniform1iFunPtr = unsafePerformIO (getProcAddress "glUniform1i")
+
+{-# NOINLINE glUniform1iFunPtr #-}
+
+-- | Usage: @'glUniform1iv' location count value@
+--
+-- The length of @value@ should be @count*1@.
+
+
+glUniform1iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()
+glUniform1iv = ffiintsizeiPtrintIOV glUniform1ivFunPtr
+
+glUniform1ivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ())
+glUniform1ivFunPtr = unsafePerformIO (getProcAddress "glUniform1iv")
+
+{-# NOINLINE glUniform1ivFunPtr #-}
+
+-- | Usage: @'glUniform1ui' location v0@
+
+
+glUniform1ui :: MonadIO m => GLint -> GLuint -> m ()
+glUniform1ui = ffiintuintIOV glUniform1uiFunPtr
+
+glUniform1uiFunPtr :: FunPtr (GLint -> GLuint -> IO ())
+glUniform1uiFunPtr = unsafePerformIO (getProcAddress "glUniform1ui")
+
+{-# NOINLINE glUniform1uiFunPtr #-}
+
+-- | Usage: @'glUniform1uiv' location count value@
+--
+-- The length of @value@ should be @count*1@.
+
+
+glUniform1uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
+glUniform1uiv = ffiintsizeiPtruintIOV glUniform1uivFunPtr
+
+glUniform1uivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint -> IO ())
+glUniform1uivFunPtr = unsafePerformIO (getProcAddress "glUniform1uiv")
+
+{-# NOINLINE glUniform1uivFunPtr #-}
+
+-- | Usage: @'glUniform2f' location v0 v1@
+
+
+glUniform2f :: MonadIO m => GLint -> GLfloat -> GLfloat -> m ()
+glUniform2f = ffiintfloatfloatIOV glUniform2fFunPtr
+
+glUniform2fFunPtr :: FunPtr (GLint -> GLfloat -> GLfloat -> IO ())
+glUniform2fFunPtr = unsafePerformIO (getProcAddress "glUniform2f")
+
+{-# NOINLINE glUniform2fFunPtr #-}
+
+-- | Usage: @'glUniform2fv' location count value@
+--
+-- The length of @value@ should be @count*2@.
+
+
+glUniform2fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()
+glUniform2fv = ffiintsizeiPtrfloatIOV glUniform2fvFunPtr
+
+glUniform2fvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ())
+glUniform2fvFunPtr = unsafePerformIO (getProcAddress "glUniform2fv")
+
+{-# NOINLINE glUniform2fvFunPtr #-}
+
+-- | Usage: @'glUniform2i' location v0 v1@
+
+
+glUniform2i :: MonadIO m => GLint -> GLint -> GLint -> m ()
+glUniform2i = ffiintintintIOV glUniform2iFunPtr
+
+glUniform2iFunPtr :: FunPtr (GLint -> GLint -> GLint -> IO ())
+glUniform2iFunPtr = unsafePerformIO (getProcAddress "glUniform2i")
+
+{-# NOINLINE glUniform2iFunPtr #-}
+
+-- | Usage: @'glUniform2iv' location count value@
+--
+-- The length of @value@ should be @count*2@.
+
+
+glUniform2iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()
+glUniform2iv = ffiintsizeiPtrintIOV glUniform2ivFunPtr
+
+glUniform2ivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ())
+glUniform2ivFunPtr = unsafePerformIO (getProcAddress "glUniform2iv")
+
+{-# NOINLINE glUniform2ivFunPtr #-}
+
+-- | Usage: @'glUniform2ui' location v0 v1@
+
+
+glUniform2ui :: MonadIO m => GLint -> GLuint -> GLuint -> m ()
+glUniform2ui = ffiintuintuintIOV glUniform2uiFunPtr
+
+glUniform2uiFunPtr :: FunPtr (GLint -> GLuint -> GLuint -> IO ())
+glUniform2uiFunPtr = unsafePerformIO (getProcAddress "glUniform2ui")
+
+{-# NOINLINE glUniform2uiFunPtr #-}
+
+-- | Usage: @'glUniform2uiv' location count value@
+--
+-- The length of @value@ should be @count*2@.
+
+
+glUniform2uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
+glUniform2uiv = ffiintsizeiPtruintIOV glUniform2uivFunPtr
+
+glUniform2uivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint -> IO ())
+glUniform2uivFunPtr = unsafePerformIO (getProcAddress "glUniform2uiv")
+
+{-# NOINLINE glUniform2uivFunPtr #-}
+
+-- | Usage: @'glUniform3f' location v0 v1 v2@
+
+
+glUniform3f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> m ()
+glUniform3f = ffiintfloatfloatfloatIOV glUniform3fFunPtr
+
+glUniform3fFunPtr :: FunPtr (GLint -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glUniform3fFunPtr = unsafePerformIO (getProcAddress "glUniform3f")
+
+{-# NOINLINE glUniform3fFunPtr #-}
+
+-- | Usage: @'glUniform3fv' location count value@
+--
+-- The length of @value@ should be @count*3@.
+
+
+glUniform3fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()
+glUniform3fv = ffiintsizeiPtrfloatIOV glUniform3fvFunPtr
+
+glUniform3fvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ())
+glUniform3fvFunPtr = unsafePerformIO (getProcAddress "glUniform3fv")
+
+{-# NOINLINE glUniform3fvFunPtr #-}
+
+-- | Usage: @'glUniform3i' location v0 v1 v2@
+
+
+glUniform3i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> m ()
+glUniform3i = ffiintintintintIOV glUniform3iFunPtr
+
+glUniform3iFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())
+glUniform3iFunPtr = unsafePerformIO (getProcAddress "glUniform3i")
+
+{-# NOINLINE glUniform3iFunPtr #-}
+
+-- | Usage: @'glUniform3iv' location count value@
+--
+-- The length of @value@ should be @count*3@.
+
+
+glUniform3iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()
+glUniform3iv = ffiintsizeiPtrintIOV glUniform3ivFunPtr
+
+glUniform3ivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ())
+glUniform3ivFunPtr = unsafePerformIO (getProcAddress "glUniform3iv")
+
+{-# NOINLINE glUniform3ivFunPtr #-}
+
+-- | Usage: @'glUniform3ui' location v0 v1 v2@
+
+
+glUniform3ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> m ()
+glUniform3ui = ffiintuintuintuintIOV glUniform3uiFunPtr
+
+glUniform3uiFunPtr :: FunPtr (GLint -> GLuint -> GLuint -> GLuint -> IO ())
+glUniform3uiFunPtr = unsafePerformIO (getProcAddress "glUniform3ui")
+
+{-# NOINLINE glUniform3uiFunPtr #-}
+
+-- | Usage: @'glUniform3uiv' location count value@
+--
+-- The length of @value@ should be @count*3@.
+
+
+glUniform3uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
+glUniform3uiv = ffiintsizeiPtruintIOV glUniform3uivFunPtr
+
+glUniform3uivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint -> IO ())
+glUniform3uivFunPtr = unsafePerformIO (getProcAddress "glUniform3uiv")
+
+{-# NOINLINE glUniform3uivFunPtr #-}
+
+-- | Usage: @'glUniform4f' location v0 v1 v2 v3@
+
+
+glUniform4f :: MonadIO m => GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glUniform4f = ffiintfloatfloatfloatfloatIOV glUniform4fFunPtr
+
+glUniform4fFunPtr :: FunPtr (GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glUniform4fFunPtr = unsafePerformIO (getProcAddress "glUniform4f")
+
+{-# NOINLINE glUniform4fFunPtr #-}
+
+-- | Usage: @'glUniform4fv' location count value@
+--
+-- The length of @value@ should be @count*4@.
+
+
+glUniform4fv :: MonadIO m => GLint -> GLsizei -> Ptr GLfloat -> m ()
+glUniform4fv = ffiintsizeiPtrfloatIOV glUniform4fvFunPtr
+
+glUniform4fvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ())
+glUniform4fvFunPtr = unsafePerformIO (getProcAddress "glUniform4fv")
+
+{-# NOINLINE glUniform4fvFunPtr #-}
+
+-- | Usage: @'glUniform4i' location v0 v1 v2 v3@
+
+
+glUniform4i :: MonadIO m => GLint -> GLint -> GLint -> GLint -> GLint -> m ()
+glUniform4i = ffiintintintintintIOV glUniform4iFunPtr
+
+glUniform4iFunPtr :: FunPtr (GLint -> GLint -> GLint -> GLint -> GLint -> IO ())
+glUniform4iFunPtr = unsafePerformIO (getProcAddress "glUniform4i")
+
+{-# NOINLINE glUniform4iFunPtr #-}
+
+-- | Usage: @'glUniform4iv' location count value@
+--
+-- The length of @value@ should be @count*4@.
+
+
+glUniform4iv :: MonadIO m => GLint -> GLsizei -> Ptr GLint -> m ()
+glUniform4iv = ffiintsizeiPtrintIOV glUniform4ivFunPtr
+
+glUniform4ivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ())
+glUniform4ivFunPtr = unsafePerformIO (getProcAddress "glUniform4iv")
+
+{-# NOINLINE glUniform4ivFunPtr #-}
+
+-- | Usage: @'glUniform4ui' location v0 v1 v2 v3@
+
+
+glUniform4ui :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
+glUniform4ui = ffiintuintuintuintuintIOV glUniform4uiFunPtr
+
+glUniform4uiFunPtr :: FunPtr (GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+glUniform4uiFunPtr = unsafePerformIO (getProcAddress "glUniform4ui")
+
+{-# NOINLINE glUniform4uiFunPtr #-}
+
+-- | Usage: @'glUniform4uiv' location count value@
+--
+-- The length of @value@ should be @count*4@.
+
+
+glUniform4uiv :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
+glUniform4uiv = ffiintsizeiPtruintIOV glUniform4uivFunPtr
+
+glUniform4uivFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint -> IO ())
+glUniform4uivFunPtr = unsafePerformIO (getProcAddress "glUniform4uiv")
+
+{-# NOINLINE glUniform4uivFunPtr #-}
+
+-- | Usage: @'glUniformBlockBinding' program uniformBlockIndex uniformBlockBinding@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glUniformBlockBinding.xhtml>
+
+
+glUniformBlockBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
+glUniformBlockBinding = ffiuintuintuintIOV glUniformBlockBindingFunPtr
+
+glUniformBlockBindingFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
+glUniformBlockBindingFunPtr = unsafePerformIO (getProcAddress "glUniformBlockBinding")
+
+{-# NOINLINE glUniformBlockBindingFunPtr #-}
+
+-- | Usage: @'glUniformMatrix2fv' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*4@.
+
+
+glUniformMatrix2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glUniformMatrix2fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix2fvFunPtr
+
+glUniformMatrix2fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glUniformMatrix2fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix2fv")
+
+{-# NOINLINE glUniformMatrix2fvFunPtr #-}
+
+-- | Usage: @'glUniformMatrix2x3fv' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*6@.
+
+
+glUniformMatrix2x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glUniformMatrix2x3fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix2x3fvFunPtr
+
+glUniformMatrix2x3fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glUniformMatrix2x3fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix2x3fv")
+
+{-# NOINLINE glUniformMatrix2x3fvFunPtr #-}
+
+-- | Usage: @'glUniformMatrix2x4fv' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*8@.
+
+
+glUniformMatrix2x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glUniformMatrix2x4fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix2x4fvFunPtr
+
+glUniformMatrix2x4fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glUniformMatrix2x4fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix2x4fv")
+
+{-# NOINLINE glUniformMatrix2x4fvFunPtr #-}
+
+-- | Usage: @'glUniformMatrix3fv' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*9@.
+
+
+glUniformMatrix3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glUniformMatrix3fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix3fvFunPtr
+
+glUniformMatrix3fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glUniformMatrix3fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix3fv")
+
+{-# NOINLINE glUniformMatrix3fvFunPtr #-}
+
+-- | Usage: @'glUniformMatrix3x2fv' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*6@.
+
+
+glUniformMatrix3x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glUniformMatrix3x2fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix3x2fvFunPtr
+
+glUniformMatrix3x2fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glUniformMatrix3x2fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix3x2fv")
+
+{-# NOINLINE glUniformMatrix3x2fvFunPtr #-}
+
+-- | Usage: @'glUniformMatrix3x4fv' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*12@.
+
+
+glUniformMatrix3x4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glUniformMatrix3x4fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix3x4fvFunPtr
+
+glUniformMatrix3x4fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glUniformMatrix3x4fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix3x4fv")
+
+{-# NOINLINE glUniformMatrix3x4fvFunPtr #-}
+
+-- | Usage: @'glUniformMatrix4fv' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*16@.
+
+
+glUniformMatrix4fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glUniformMatrix4fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix4fvFunPtr
+
+glUniformMatrix4fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glUniformMatrix4fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix4fv")
+
+{-# NOINLINE glUniformMatrix4fvFunPtr #-}
+
+-- | Usage: @'glUniformMatrix4x2fv' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*8@.
+
+
+glUniformMatrix4x2fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glUniformMatrix4x2fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix4x2fvFunPtr
+
+glUniformMatrix4x2fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glUniformMatrix4x2fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix4x2fv")
+
+{-# NOINLINE glUniformMatrix4x2fvFunPtr #-}
+
+-- | Usage: @'glUniformMatrix4x3fv' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*12@.
+
+
+glUniformMatrix4x3fv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glUniformMatrix4x3fv = ffiintsizeibooleanPtrfloatIOV glUniformMatrix4x3fvFunPtr
+
+glUniformMatrix4x3fvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glUniformMatrix4x3fvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix4x3fv")
+
+{-# NOINLINE glUniformMatrix4x3fvFunPtr #-}
+
+-- | Usage: @'glUnmapBuffer' target@
+--
+-- The parameter @target@ is a @BufferTargetARB@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glUnmapBuffer.xhtml>
+
+
+glUnmapBuffer :: MonadIO m => GLenum -> m GLboolean
+glUnmapBuffer = ffienumIOboolean glUnmapBufferFunPtr
+
+glUnmapBufferFunPtr :: FunPtr (GLenum -> IO GLboolean)
+glUnmapBufferFunPtr = unsafePerformIO (getProcAddress "glUnmapBuffer")
+
+{-# NOINLINE glUnmapBufferFunPtr #-}
+
+-- | Usage: @'glUseProgram' program@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glUseProgram.xhtml>
+
+
+glUseProgram :: MonadIO m => GLuint -> m ()
+glUseProgram = ffiuintIOV glUseProgramFunPtr
+
+glUseProgramFunPtr :: FunPtr (GLuint -> IO ())
+glUseProgramFunPtr = unsafePerformIO (getProcAddress "glUseProgram")
+
+{-# NOINLINE glUseProgramFunPtr #-}
+
+-- | Usage: @'glValidateProgram' program@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glValidateProgram.xhtml>
+
+
+glValidateProgram :: MonadIO m => GLuint -> m ()
+glValidateProgram = ffiuintIOV glValidateProgramFunPtr
+
+glValidateProgramFunPtr :: FunPtr (GLuint -> IO ())
+glValidateProgramFunPtr = unsafePerformIO (getProcAddress "glValidateProgram")
+
+{-# NOINLINE glValidateProgramFunPtr #-}
+
+-- | Usage: @'glVertexAttrib1d' index x@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib1dv'.
+
+
+glVertexAttrib1d :: MonadIO m => GLuint -> GLdouble -> m ()
+glVertexAttrib1d = ffiuintdoubleIOV glVertexAttrib1dFunPtr
+
+glVertexAttrib1dFunPtr :: FunPtr (GLuint -> GLdouble -> IO ())
+glVertexAttrib1dFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1d")
+
+{-# NOINLINE glVertexAttrib1dFunPtr #-}
+
+-- | Usage: @'glVertexAttrib1dv' index v@
+--
+-- The length of @v@ should be @1@.
+
+
+glVertexAttrib1dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
+glVertexAttrib1dv = ffiuintPtrdoubleIOV glVertexAttrib1dvFunPtr
+
+glVertexAttrib1dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+glVertexAttrib1dvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1dv")
+
+{-# NOINLINE glVertexAttrib1dvFunPtr #-}
+
+-- | Usage: @'glVertexAttrib1f' index x@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib1fv'.
+
+
+glVertexAttrib1f :: MonadIO m => GLuint -> GLfloat -> m ()
+glVertexAttrib1f = ffiuintfloatIOV glVertexAttrib1fFunPtr
+
+glVertexAttrib1fFunPtr :: FunPtr (GLuint -> GLfloat -> IO ())
+glVertexAttrib1fFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1f")
+
+{-# NOINLINE glVertexAttrib1fFunPtr #-}
+
+-- | Usage: @'glVertexAttrib1fv' index v@
+--
+-- The length of @v@ should be @1@.
+
+
+glVertexAttrib1fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
+glVertexAttrib1fv = ffiuintPtrfloatIOV glVertexAttrib1fvFunPtr
+
+glVertexAttrib1fvFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+glVertexAttrib1fvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1fv")
+
+{-# NOINLINE glVertexAttrib1fvFunPtr #-}
+
+-- | Usage: @'glVertexAttrib1s' index x@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib1sv'.
+
+
+glVertexAttrib1s :: MonadIO m => GLuint -> GLshort -> m ()
+glVertexAttrib1s = ffiuintshortIOV glVertexAttrib1sFunPtr
+
+glVertexAttrib1sFunPtr :: FunPtr (GLuint -> GLshort -> IO ())
+glVertexAttrib1sFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1s")
+
+{-# NOINLINE glVertexAttrib1sFunPtr #-}
+
+-- | Usage: @'glVertexAttrib1sv' index v@
+--
+-- The length of @v@ should be @1@.
+
+
+glVertexAttrib1sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()
+glVertexAttrib1sv = ffiuintPtrshortIOV glVertexAttrib1svFunPtr
+
+glVertexAttrib1svFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+glVertexAttrib1svFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1sv")
+
+{-# NOINLINE glVertexAttrib1svFunPtr #-}
+
+-- | Usage: @'glVertexAttrib2d' index x y@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib2dv'.
+
+
+glVertexAttrib2d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()
+glVertexAttrib2d = ffiuintdoubledoubleIOV glVertexAttrib2dFunPtr
+
+glVertexAttrib2dFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> IO ())
+glVertexAttrib2dFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2d")
+
+{-# NOINLINE glVertexAttrib2dFunPtr #-}
+
+-- | Usage: @'glVertexAttrib2dv' index v@
+--
+-- The length of @v@ should be @2@.
+
+
+glVertexAttrib2dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
+glVertexAttrib2dv = ffiuintPtrdoubleIOV glVertexAttrib2dvFunPtr
+
+glVertexAttrib2dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+glVertexAttrib2dvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2dv")
+
+{-# NOINLINE glVertexAttrib2dvFunPtr #-}
+
+-- | Usage: @'glVertexAttrib2f' index x y@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib2fv'.
+
+
+glVertexAttrib2f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()
+glVertexAttrib2f = ffiuintfloatfloatIOV glVertexAttrib2fFunPtr
+
+glVertexAttrib2fFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> IO ())
+glVertexAttrib2fFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2f")
+
+{-# NOINLINE glVertexAttrib2fFunPtr #-}
+
+-- | Usage: @'glVertexAttrib2fv' index v@
+--
+-- The length of @v@ should be @2@.
+
+
+glVertexAttrib2fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
+glVertexAttrib2fv = ffiuintPtrfloatIOV glVertexAttrib2fvFunPtr
+
+glVertexAttrib2fvFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+glVertexAttrib2fvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2fv")
+
+{-# NOINLINE glVertexAttrib2fvFunPtr #-}
+
+-- | Usage: @'glVertexAttrib2s' index x y@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib2sv'.
+
+
+glVertexAttrib2s :: MonadIO m => GLuint -> GLshort -> GLshort -> m ()
+glVertexAttrib2s = ffiuintshortshortIOV glVertexAttrib2sFunPtr
+
+glVertexAttrib2sFunPtr :: FunPtr (GLuint -> GLshort -> GLshort -> IO ())
+glVertexAttrib2sFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2s")
+
+{-# NOINLINE glVertexAttrib2sFunPtr #-}
+
+-- | Usage: @'glVertexAttrib2sv' index v@
+--
+-- The length of @v@ should be @2@.
+
+
+glVertexAttrib2sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()
+glVertexAttrib2sv = ffiuintPtrshortIOV glVertexAttrib2svFunPtr
+
+glVertexAttrib2svFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+glVertexAttrib2svFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2sv")
+
+{-# NOINLINE glVertexAttrib2svFunPtr #-}
+
+-- | Usage: @'glVertexAttrib3d' index x y z@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib3dv'.
+
+
+glVertexAttrib3d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()
+glVertexAttrib3d = ffiuintdoubledoubledoubleIOV glVertexAttrib3dFunPtr
+
+glVertexAttrib3dFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glVertexAttrib3dFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3d")
+
+{-# NOINLINE glVertexAttrib3dFunPtr #-}
+
+-- | Usage: @'glVertexAttrib3dv' index v@
+--
+-- The length of @v@ should be @3@.
+
+
+glVertexAttrib3dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
+glVertexAttrib3dv = ffiuintPtrdoubleIOV glVertexAttrib3dvFunPtr
+
+glVertexAttrib3dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+glVertexAttrib3dvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3dv")
+
+{-# NOINLINE glVertexAttrib3dvFunPtr #-}
+
+-- | Usage: @'glVertexAttrib3f' index x y z@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib3fv'.
+
+
+glVertexAttrib3f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()
+glVertexAttrib3f = ffiuintfloatfloatfloatIOV glVertexAttrib3fFunPtr
+
+glVertexAttrib3fFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glVertexAttrib3fFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3f")
+
+{-# NOINLINE glVertexAttrib3fFunPtr #-}
+
+-- | Usage: @'glVertexAttrib3fv' index v@
+--
+-- The length of @v@ should be @3@.
+
+
+glVertexAttrib3fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
+glVertexAttrib3fv = ffiuintPtrfloatIOV glVertexAttrib3fvFunPtr
+
+glVertexAttrib3fvFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+glVertexAttrib3fvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3fv")
+
+{-# NOINLINE glVertexAttrib3fvFunPtr #-}
+
+-- | Usage: @'glVertexAttrib3s' index x y z@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib3sv'.
+
+
+glVertexAttrib3s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> m ()
+glVertexAttrib3s = ffiuintshortshortshortIOV glVertexAttrib3sFunPtr
+
+glVertexAttrib3sFunPtr :: FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> IO ())
+glVertexAttrib3sFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3s")
+
+{-# NOINLINE glVertexAttrib3sFunPtr #-}
+
+-- | Usage: @'glVertexAttrib3sv' index v@
+--
+-- The length of @v@ should be @3@.
+
+
+glVertexAttrib3sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()
+glVertexAttrib3sv = ffiuintPtrshortIOV glVertexAttrib3svFunPtr
+
+glVertexAttrib3svFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+glVertexAttrib3svFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3sv")
+
+{-# NOINLINE glVertexAttrib3svFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4Nbv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttrib4Nbv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()
+glVertexAttrib4Nbv = ffiuintPtrbyteIOV glVertexAttrib4NbvFunPtr
+
+glVertexAttrib4NbvFunPtr :: FunPtr (GLuint -> Ptr GLbyte -> IO ())
+glVertexAttrib4NbvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4Nbv")
+
+{-# NOINLINE glVertexAttrib4NbvFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4Niv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttrib4Niv :: MonadIO m => GLuint -> Ptr GLint -> m ()
+glVertexAttrib4Niv = ffiuintPtrintIOV glVertexAttrib4NivFunPtr
+
+glVertexAttrib4NivFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
+glVertexAttrib4NivFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4Niv")
+
+{-# NOINLINE glVertexAttrib4NivFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4Nsv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttrib4Nsv :: MonadIO m => GLuint -> Ptr GLshort -> m ()
+glVertexAttrib4Nsv = ffiuintPtrshortIOV glVertexAttrib4NsvFunPtr
+
+glVertexAttrib4NsvFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+glVertexAttrib4NsvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4Nsv")
+
+{-# NOINLINE glVertexAttrib4NsvFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4Nub' index x y z w@
+
+
+glVertexAttrib4Nub :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()
+glVertexAttrib4Nub = ffiuintubyteubyteubyteubyteIOV glVertexAttrib4NubFunPtr
+
+glVertexAttrib4NubFunPtr :: FunPtr (GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> IO ())
+glVertexAttrib4NubFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4Nub")
+
+{-# NOINLINE glVertexAttrib4NubFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4Nubv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttrib4Nubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()
+glVertexAttrib4Nubv = ffiuintPtrubyteIOV glVertexAttrib4NubvFunPtr
+
+glVertexAttrib4NubvFunPtr :: FunPtr (GLuint -> Ptr GLubyte -> IO ())
+glVertexAttrib4NubvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4Nubv")
+
+{-# NOINLINE glVertexAttrib4NubvFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4Nuiv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttrib4Nuiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()
+glVertexAttrib4Nuiv = ffiuintPtruintIOV glVertexAttrib4NuivFunPtr
+
+glVertexAttrib4NuivFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
+glVertexAttrib4NuivFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4Nuiv")
+
+{-# NOINLINE glVertexAttrib4NuivFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4Nusv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttrib4Nusv :: MonadIO m => GLuint -> Ptr GLushort -> m ()
+glVertexAttrib4Nusv = ffiuintPtrushortIOV glVertexAttrib4NusvFunPtr
+
+glVertexAttrib4NusvFunPtr :: FunPtr (GLuint -> Ptr GLushort -> IO ())
+glVertexAttrib4NusvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4Nusv")
+
+{-# NOINLINE glVertexAttrib4NusvFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4bv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttrib4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()
+glVertexAttrib4bv = ffiuintPtrbyteIOV glVertexAttrib4bvFunPtr
+
+glVertexAttrib4bvFunPtr :: FunPtr (GLuint -> Ptr GLbyte -> IO ())
+glVertexAttrib4bvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4bv")
+
+{-# NOINLINE glVertexAttrib4bvFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4d' index x y z w@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib4dv'.
+
+
+glVertexAttrib4d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glVertexAttrib4d = ffiuintdoubledoubledoubledoubleIOV glVertexAttrib4dFunPtr
+
+glVertexAttrib4dFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glVertexAttrib4dFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4d")
+
+{-# NOINLINE glVertexAttrib4dFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4dv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttrib4dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
+glVertexAttrib4dv = ffiuintPtrdoubleIOV glVertexAttrib4dvFunPtr
+
+glVertexAttrib4dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+glVertexAttrib4dvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4dv")
+
+{-# NOINLINE glVertexAttrib4dvFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4f' index x y z w@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib4fv'.
+
+
+glVertexAttrib4f :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glVertexAttrib4f = ffiuintfloatfloatfloatfloatIOV glVertexAttrib4fFunPtr
+
+glVertexAttrib4fFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glVertexAttrib4fFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4f")
+
+{-# NOINLINE glVertexAttrib4fFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4fv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttrib4fv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
+glVertexAttrib4fv = ffiuintPtrfloatIOV glVertexAttrib4fvFunPtr
+
+glVertexAttrib4fvFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+glVertexAttrib4fvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4fv")
+
+{-# NOINLINE glVertexAttrib4fvFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4iv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttrib4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()
+glVertexAttrib4iv = ffiuintPtrintIOV glVertexAttrib4ivFunPtr
+
+glVertexAttrib4ivFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
+glVertexAttrib4ivFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4iv")
+
+{-# NOINLINE glVertexAttrib4ivFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4s' index x y z w@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib4sv'.
+
+
+glVertexAttrib4s :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m ()
+glVertexAttrib4s = ffiuintshortshortshortshortIOV glVertexAttrib4sFunPtr
+
+glVertexAttrib4sFunPtr :: FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> IO ())
+glVertexAttrib4sFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4s")
+
+{-# NOINLINE glVertexAttrib4sFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4sv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttrib4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()
+glVertexAttrib4sv = ffiuintPtrshortIOV glVertexAttrib4svFunPtr
+
+glVertexAttrib4svFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+glVertexAttrib4svFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4sv")
+
+{-# NOINLINE glVertexAttrib4svFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4ubv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttrib4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()
+glVertexAttrib4ubv = ffiuintPtrubyteIOV glVertexAttrib4ubvFunPtr
+
+glVertexAttrib4ubvFunPtr :: FunPtr (GLuint -> Ptr GLubyte -> IO ())
+glVertexAttrib4ubvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4ubv")
+
+{-# NOINLINE glVertexAttrib4ubvFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4uiv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttrib4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()
+glVertexAttrib4uiv = ffiuintPtruintIOV glVertexAttrib4uivFunPtr
+
+glVertexAttrib4uivFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
+glVertexAttrib4uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4uiv")
+
+{-# NOINLINE glVertexAttrib4uivFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4usv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttrib4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()
+glVertexAttrib4usv = ffiuintPtrushortIOV glVertexAttrib4usvFunPtr
+
+glVertexAttrib4usvFunPtr :: FunPtr (GLuint -> Ptr GLushort -> IO ())
+glVertexAttrib4usvFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4usv")
+
+{-# NOINLINE glVertexAttrib4usvFunPtr #-}
+
+-- | Usage: @'glVertexAttribI1i' index x@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttribI1iv'.
+
+
+glVertexAttribI1i :: MonadIO m => GLuint -> GLint -> m ()
+glVertexAttribI1i = ffiuintintIOV glVertexAttribI1iFunPtr
+
+glVertexAttribI1iFunPtr :: FunPtr (GLuint -> GLint -> IO ())
+glVertexAttribI1iFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI1i")
+
+{-# NOINLINE glVertexAttribI1iFunPtr #-}
+
+-- | Usage: @'glVertexAttribI1iv' index v@
+--
+-- The length of @v@ should be @1@.
+
+
+glVertexAttribI1iv :: MonadIO m => GLuint -> Ptr GLint -> m ()
+glVertexAttribI1iv = ffiuintPtrintIOV glVertexAttribI1ivFunPtr
+
+glVertexAttribI1ivFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
+glVertexAttribI1ivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI1iv")
+
+{-# NOINLINE glVertexAttribI1ivFunPtr #-}
+
+-- | Usage: @'glVertexAttribI1ui' index x@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttribI1uiv'.
+
+
+glVertexAttribI1ui :: MonadIO m => GLuint -> GLuint -> m ()
+glVertexAttribI1ui = ffiuintuintIOV glVertexAttribI1uiFunPtr
+
+glVertexAttribI1uiFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
+glVertexAttribI1uiFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI1ui")
+
+{-# NOINLINE glVertexAttribI1uiFunPtr #-}
+
+-- | Usage: @'glVertexAttribI1uiv' index v@
+--
+-- The length of @v@ should be @1@.
+
+
+glVertexAttribI1uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()
+glVertexAttribI1uiv = ffiuintPtruintIOV glVertexAttribI1uivFunPtr
+
+glVertexAttribI1uivFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
+glVertexAttribI1uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI1uiv")
+
+{-# NOINLINE glVertexAttribI1uivFunPtr #-}
+
+-- | Usage: @'glVertexAttribI2i' index x y@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttribI2iv'.
+
+
+glVertexAttribI2i :: MonadIO m => GLuint -> GLint -> GLint -> m ()
+glVertexAttribI2i = ffiuintintintIOV glVertexAttribI2iFunPtr
+
+glVertexAttribI2iFunPtr :: FunPtr (GLuint -> GLint -> GLint -> IO ())
+glVertexAttribI2iFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI2i")
+
+{-# NOINLINE glVertexAttribI2iFunPtr #-}
+
+-- | Usage: @'glVertexAttribI2iv' index v@
+--
+-- The length of @v@ should be @2@.
+
+
+glVertexAttribI2iv :: MonadIO m => GLuint -> Ptr GLint -> m ()
+glVertexAttribI2iv = ffiuintPtrintIOV glVertexAttribI2ivFunPtr
+
+glVertexAttribI2ivFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
+glVertexAttribI2ivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI2iv")
+
+{-# NOINLINE glVertexAttribI2ivFunPtr #-}
+
+-- | Usage: @'glVertexAttribI2ui' index x y@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttribI2uiv'.
+
+
+glVertexAttribI2ui :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
+glVertexAttribI2ui = ffiuintuintuintIOV glVertexAttribI2uiFunPtr
+
+glVertexAttribI2uiFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
+glVertexAttribI2uiFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI2ui")
+
+{-# NOINLINE glVertexAttribI2uiFunPtr #-}
+
+-- | Usage: @'glVertexAttribI2uiv' index v@
+--
+-- The length of @v@ should be @2@.
+
+
+glVertexAttribI2uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()
+glVertexAttribI2uiv = ffiuintPtruintIOV glVertexAttribI2uivFunPtr
+
+glVertexAttribI2uivFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
+glVertexAttribI2uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI2uiv")
+
+{-# NOINLINE glVertexAttribI2uivFunPtr #-}
+
+-- | Usage: @'glVertexAttribI3i' index x y z@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttribI3iv'.
+
+
+glVertexAttribI3i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()
+glVertexAttribI3i = ffiuintintintintIOV glVertexAttribI3iFunPtr
+
+glVertexAttribI3iFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> IO ())
+glVertexAttribI3iFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI3i")
+
+{-# NOINLINE glVertexAttribI3iFunPtr #-}
+
+-- | Usage: @'glVertexAttribI3iv' index v@
+--
+-- The length of @v@ should be @3@.
+
+
+glVertexAttribI3iv :: MonadIO m => GLuint -> Ptr GLint -> m ()
+glVertexAttribI3iv = ffiuintPtrintIOV glVertexAttribI3ivFunPtr
+
+glVertexAttribI3ivFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
+glVertexAttribI3ivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI3iv")
+
+{-# NOINLINE glVertexAttribI3ivFunPtr #-}
+
+-- | Usage: @'glVertexAttribI3ui' index x y z@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttribI3uiv'.
+
+
+glVertexAttribI3ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> m ()
+glVertexAttribI3ui = ffiuintuintuintuintIOV glVertexAttribI3uiFunPtr
+
+glVertexAttribI3uiFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+glVertexAttribI3uiFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI3ui")
+
+{-# NOINLINE glVertexAttribI3uiFunPtr #-}
+
+-- | Usage: @'glVertexAttribI3uiv' index v@
+--
+-- The length of @v@ should be @3@.
+
+
+glVertexAttribI3uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()
+glVertexAttribI3uiv = ffiuintPtruintIOV glVertexAttribI3uivFunPtr
+
+glVertexAttribI3uivFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
+glVertexAttribI3uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI3uiv")
+
+{-# NOINLINE glVertexAttribI3uivFunPtr #-}
+
+-- | Usage: @'glVertexAttribI4bv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttribI4bv :: MonadIO m => GLuint -> Ptr GLbyte -> m ()
+glVertexAttribI4bv = ffiuintPtrbyteIOV glVertexAttribI4bvFunPtr
+
+glVertexAttribI4bvFunPtr :: FunPtr (GLuint -> Ptr GLbyte -> IO ())
+glVertexAttribI4bvFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4bv")
+
+{-# NOINLINE glVertexAttribI4bvFunPtr #-}
+
+-- | Usage: @'glVertexAttribI4i' index x y z w@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttribI4iv'.
+
+
+glVertexAttribI4i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
+glVertexAttribI4i = ffiuintintintintintIOV glVertexAttribI4iFunPtr
+
+glVertexAttribI4iFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
+glVertexAttribI4iFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4i")
+
+{-# NOINLINE glVertexAttribI4iFunPtr #-}
+
+-- | Usage: @'glVertexAttribI4iv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttribI4iv :: MonadIO m => GLuint -> Ptr GLint -> m ()
+glVertexAttribI4iv = ffiuintPtrintIOV glVertexAttribI4ivFunPtr
+
+glVertexAttribI4ivFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
+glVertexAttribI4ivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4iv")
+
+{-# NOINLINE glVertexAttribI4ivFunPtr #-}
+
+-- | Usage: @'glVertexAttribI4sv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttribI4sv :: MonadIO m => GLuint -> Ptr GLshort -> m ()
+glVertexAttribI4sv = ffiuintPtrshortIOV glVertexAttribI4svFunPtr
+
+glVertexAttribI4svFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+glVertexAttribI4svFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4sv")
+
+{-# NOINLINE glVertexAttribI4svFunPtr #-}
+
+-- | Usage: @'glVertexAttribI4ubv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttribI4ubv :: MonadIO m => GLuint -> Ptr GLubyte -> m ()
+glVertexAttribI4ubv = ffiuintPtrubyteIOV glVertexAttribI4ubvFunPtr
+
+glVertexAttribI4ubvFunPtr :: FunPtr (GLuint -> Ptr GLubyte -> IO ())
+glVertexAttribI4ubvFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4ubv")
+
+{-# NOINLINE glVertexAttribI4ubvFunPtr #-}
+
+-- | Usage: @'glVertexAttribI4ui' index x y z w@
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttribI4uiv'.
+
+
+glVertexAttribI4ui :: MonadIO m => GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
+glVertexAttribI4ui = ffiuintuintuintuintuintIOV glVertexAttribI4uiFunPtr
+
+glVertexAttribI4uiFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+glVertexAttribI4uiFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4ui")
+
+{-# NOINLINE glVertexAttribI4uiFunPtr #-}
+
+-- | Usage: @'glVertexAttribI4uiv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttribI4uiv :: MonadIO m => GLuint -> Ptr GLuint -> m ()
+glVertexAttribI4uiv = ffiuintPtruintIOV glVertexAttribI4uivFunPtr
+
+glVertexAttribI4uivFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
+glVertexAttribI4uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4uiv")
+
+{-# NOINLINE glVertexAttribI4uivFunPtr #-}
+
+-- | Usage: @'glVertexAttribI4usv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttribI4usv :: MonadIO m => GLuint -> Ptr GLushort -> m ()
+glVertexAttribI4usv = ffiuintPtrushortIOV glVertexAttribI4usvFunPtr
+
+glVertexAttribI4usvFunPtr :: FunPtr (GLuint -> Ptr GLushort -> IO ())
+glVertexAttribI4usvFunPtr = unsafePerformIO (getProcAddress "glVertexAttribI4usv")
+
+{-# NOINLINE glVertexAttribI4usvFunPtr #-}
+
+-- | Usage: @'glVertexAttribIPointer' index size type stride pointer@
+--
+-- The parameter @type@ is a @VertexAttribEnum@.
+--
+-- The length of @pointer@ should be @COMPSIZE(size,type,stride)@.
+
+
+glVertexAttribIPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> m ()
+glVertexAttribIPointer = ffiuintintenumsizeiPtrVIOV glVertexAttribIPointerFunPtr
+
+glVertexAttribIPointerFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
+glVertexAttribIPointerFunPtr = unsafePerformIO (getProcAddress "glVertexAttribIPointer")
+
+{-# NOINLINE glVertexAttribIPointerFunPtr #-}
+
+-- | Usage: @'glVertexAttribPointer' index size type normalized stride pointer@
+--
+-- The parameter @type@ is a @VertexAttribPointerType@.
+--
+-- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @pointer@ should be @COMPSIZE(size,type,stride)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glVertexAttribPointer.xhtml>
+
+
+glVertexAttribPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr () -> m ()
+glVertexAttribPointer = ffiuintintenumbooleansizeiPtrVIOV glVertexAttribPointerFunPtr
+
+glVertexAttribPointerFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr () -> IO ())
+glVertexAttribPointerFunPtr = unsafePerformIO (getProcAddress "glVertexAttribPointer")
+
+{-# NOINLINE glVertexAttribPointerFunPtr #-}
+
+-- | Usage: @'glViewport' x y width height@
+--
+-- The parameter @x@ is a @WinCoord@.
+--
+-- The parameter @y@ is a @WinCoord@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glViewport.xhtml>
+
+
+glViewport :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> m ()
+glViewport = ffiintintsizeisizeiIOV glViewportFunPtr
+
+glViewportFunPtr :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+glViewportFunPtr = unsafePerformIO (getProcAddress "glViewport")
+
+{-# NOINLINE glViewportFunPtr #-}
+
+-- | Usage: @'glWaitSync' sync flags timeout@
+--
+-- The parameter @sync@ is a @sync@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glWaitSync.xhtml>
+
+
+glWaitSync :: MonadIO m => GLsync -> GLbitfield -> GLuint64 -> m ()
+glWaitSync = ffisyncbitfielduint64IOV glWaitSyncFunPtr
+
+glWaitSyncFunPtr :: FunPtr (GLsync -> GLbitfield -> GLuint64 -> IO ())
+glWaitSyncFunPtr = unsafePerformIO (getProcAddress "glWaitSync")
+
+{-# NOINLINE glWaitSyncFunPtr #-}
+
+pattern GL_ACTIVE_ATTRIBUTES  :: (Eq a, Num a) => a
+
+pattern GL_ACTIVE_ATTRIBUTES = 0x8B89
+
+pattern GL_ACTIVE_ATTRIBUTE_MAX_LENGTH  :: (Eq a, Num a) => a
+
+pattern GL_ACTIVE_ATTRIBUTE_MAX_LENGTH = 0x8B8A
+
+pattern GL_ACTIVE_TEXTURE  :: (Eq a, Num a) => a
+
+pattern GL_ACTIVE_TEXTURE = 0x84E0
+
+pattern GL_ACTIVE_UNIFORMS  :: (Eq a, Num a) => a
+
+pattern GL_ACTIVE_UNIFORMS = 0x8B86
+
+pattern GL_ACTIVE_UNIFORM_BLOCKS  :: (Eq a, Num a) => a
+
+pattern GL_ACTIVE_UNIFORM_BLOCKS = 0x8A36
+
+pattern GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH  :: (Eq a, Num a) => a
+
+pattern GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH = 0x8A35
+
+pattern GL_ACTIVE_UNIFORM_MAX_LENGTH  :: (Eq a, Num a) => a
+
+pattern GL_ACTIVE_UNIFORM_MAX_LENGTH = 0x8B87
+
+pattern GL_ALIASED_LINE_WIDTH_RANGE  :: (Eq a, Num a) => a
+
+pattern GL_ALIASED_LINE_WIDTH_RANGE = 0x846E
+
+pattern GL_ALPHA  :: (Eq a, Num a) => a
+
+pattern GL_ALPHA = 0x1906
+
+pattern GL_ALREADY_SIGNALED  :: (Eq a, Num a) => a
+
+pattern GL_ALREADY_SIGNALED = 0x911A
+
+pattern GL_ALWAYS  :: (Eq a, Num a) => a
+
+pattern GL_ALWAYS = 0x0207
+
+pattern GL_AND  :: (Eq a, Num a) => a
+
+pattern GL_AND = 0x1501
+
+pattern GL_AND_INVERTED  :: (Eq a, Num a) => a
+
+pattern GL_AND_INVERTED = 0x1504
+
+pattern GL_AND_REVERSE  :: (Eq a, Num a) => a
+
+pattern GL_AND_REVERSE = 0x1502
+
+pattern GL_ARRAY_BUFFER  :: (Eq a, Num a) => a
+
+pattern GL_ARRAY_BUFFER = 0x8892
+
+pattern GL_ARRAY_BUFFER_BINDING  :: (Eq a, Num a) => a
+
+pattern GL_ARRAY_BUFFER_BINDING = 0x8894
+
+pattern GL_ATTACHED_SHADERS  :: (Eq a, Num a) => a
+
+pattern GL_ATTACHED_SHADERS = 0x8B85
+
+pattern GL_BACK  :: (Eq a, Num a) => a
+
+pattern GL_BACK = 0x0405
+
+pattern GL_BACK_LEFT  :: (Eq a, Num a) => a
+
+pattern GL_BACK_LEFT = 0x0402
+
+pattern GL_BACK_RIGHT  :: (Eq a, Num a) => a
+
+pattern GL_BACK_RIGHT = 0x0403
+
+pattern GL_BGR  :: (Eq a, Num a) => a
+
+pattern GL_BGR = 0x80E0
+
+pattern GL_BGRA  :: (Eq a, Num a) => a
+
+pattern GL_BGRA = 0x80E1
+
+pattern GL_BGRA_INTEGER  :: (Eq a, Num a) => a
+
+pattern GL_BGRA_INTEGER = 0x8D9B
+
+pattern GL_BGR_INTEGER  :: (Eq a, Num a) => a
+
+pattern GL_BGR_INTEGER = 0x8D9A
+
+pattern GL_BLEND  :: (Eq a, Num a) => a
+
+pattern GL_BLEND = 0x0BE2
+
+pattern GL_BLEND_COLOR  :: (Eq a, Num a) => a
+
+pattern GL_BLEND_COLOR = 0x8005
+
+pattern GL_BLEND_DST  :: (Eq a, Num a) => a
+
+pattern GL_BLEND_DST = 0x0BE0
+
+pattern GL_BLEND_DST_ALPHA  :: (Eq a, Num a) => a
+
+pattern GL_BLEND_DST_ALPHA = 0x80CA
+
+pattern GL_BLEND_DST_RGB  :: (Eq a, Num a) => a
+
+pattern GL_BLEND_DST_RGB = 0x80C8
+
+pattern GL_BLEND_EQUATION_ALPHA  :: (Eq a, Num a) => a
+
+pattern GL_BLEND_EQUATION_ALPHA = 0x883D
+
+pattern GL_BLEND_EQUATION_RGB  :: (Eq a, Num a) => a
+
+pattern GL_BLEND_EQUATION_RGB = 0x8009
+
+pattern GL_BLEND_SRC  :: (Eq a, Num a) => a
+
+pattern GL_BLEND_SRC = 0x0BE1
+
+pattern GL_BLEND_SRC_ALPHA  :: (Eq a, Num a) => a
+
+pattern GL_BLEND_SRC_ALPHA = 0x80CB
+
+pattern GL_BLEND_SRC_RGB  :: (Eq a, Num a) => a
+
+pattern GL_BLEND_SRC_RGB = 0x80C9
+
+pattern GL_BLUE  :: (Eq a, Num a) => a
+
+pattern GL_BLUE = 0x1905
+
+pattern GL_BLUE_INTEGER  :: (Eq a, Num a) => a
+
+pattern GL_BLUE_INTEGER = 0x8D96
+
+pattern GL_BOOL  :: (Eq a, Num a) => a
+
+pattern GL_BOOL = 0x8B56
+
+pattern GL_BOOL_VEC2  :: (Eq a, Num a) => a
+
+pattern GL_BOOL_VEC2 = 0x8B57
+
+pattern GL_BOOL_VEC3  :: (Eq a, Num a) => a
+
+pattern GL_BOOL_VEC3 = 0x8B58
+
+pattern GL_BOOL_VEC4  :: (Eq a, Num a) => a
+
+pattern GL_BOOL_VEC4 = 0x8B59
+
+pattern GL_BUFFER_ACCESS  :: (Eq a, Num a) => a
+
+pattern GL_BUFFER_ACCESS = 0x88BB
+
+pattern GL_BUFFER_ACCESS_FLAGS  :: (Eq a, Num a) => a
+
+pattern GL_BUFFER_ACCESS_FLAGS = 0x911F
+
+pattern GL_BUFFER_MAPPED  :: (Eq a, Num a) => a
+
+pattern GL_BUFFER_MAPPED = 0x88BC
+
+pattern GL_BUFFER_MAP_LENGTH  :: (Eq a, Num a) => a
+
+pattern GL_BUFFER_MAP_LENGTH = 0x9120
+
+pattern GL_BUFFER_MAP_OFFSET  :: (Eq a, Num a) => a
+
+pattern GL_BUFFER_MAP_OFFSET = 0x9121
+
+pattern GL_BUFFER_MAP_POINTER  :: (Eq a, Num a) => a
+
+pattern GL_BUFFER_MAP_POINTER = 0x88BD
+
+pattern GL_BUFFER_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_BUFFER_SIZE = 0x8764
+
+pattern GL_BUFFER_USAGE  :: (Eq a, Num a) => a
+
+pattern GL_BUFFER_USAGE = 0x8765
+
+pattern GL_BYTE  :: (Eq a, Num a) => a
+
+pattern GL_BYTE = 0x1400
+
+pattern GL_CCW  :: (Eq a, Num a) => a
+
+pattern GL_CCW = 0x0901
+
+pattern GL_CLAMP_READ_COLOR  :: (Eq a, Num a) => a
+
+pattern GL_CLAMP_READ_COLOR = 0x891C
+
+pattern GL_CLAMP_TO_BORDER  :: (Eq a, Num a) => a
+
+pattern GL_CLAMP_TO_BORDER = 0x812D
+
+pattern GL_CLAMP_TO_EDGE  :: (Eq a, Num a) => a
+
+pattern GL_CLAMP_TO_EDGE = 0x812F
+
+pattern GL_CLEAR  :: (Eq a, Num a) => a
+
+pattern GL_CLEAR = 0x1500
+
+pattern GL_CLIP_DISTANCE0  :: (Eq a, Num a) => a
+
+pattern GL_CLIP_DISTANCE0 = 0x3000
+
+pattern GL_CLIP_DISTANCE1  :: (Eq a, Num a) => a
+
+pattern GL_CLIP_DISTANCE1 = 0x3001
+
+pattern GL_CLIP_DISTANCE2  :: (Eq a, Num a) => a
+
+pattern GL_CLIP_DISTANCE2 = 0x3002
+
+pattern GL_CLIP_DISTANCE3  :: (Eq a, Num a) => a
+
+pattern GL_CLIP_DISTANCE3 = 0x3003
+
+pattern GL_CLIP_DISTANCE4  :: (Eq a, Num a) => a
+
+pattern GL_CLIP_DISTANCE4 = 0x3004
+
+pattern GL_CLIP_DISTANCE5  :: (Eq a, Num a) => a
+
+pattern GL_CLIP_DISTANCE5 = 0x3005
+
+pattern GL_CLIP_DISTANCE6  :: (Eq a, Num a) => a
+
+pattern GL_CLIP_DISTANCE6 = 0x3006
+
+pattern GL_CLIP_DISTANCE7  :: (Eq a, Num a) => a
+
+pattern GL_CLIP_DISTANCE7 = 0x3007
+
+pattern GL_COLOR  :: (Eq a, Num a) => a
+
+pattern GL_COLOR = 0x1800
+
+pattern GL_COLOR_ATTACHMENT0  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT0 = 0x8CE0
+
+pattern GL_COLOR_ATTACHMENT1  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT1 = 0x8CE1
+
+pattern GL_COLOR_ATTACHMENT10  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT10 = 0x8CEA
+
+pattern GL_COLOR_ATTACHMENT11  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT11 = 0x8CEB
+
+pattern GL_COLOR_ATTACHMENT12  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT12 = 0x8CEC
+
+pattern GL_COLOR_ATTACHMENT13  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT13 = 0x8CED
+
+pattern GL_COLOR_ATTACHMENT14  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT14 = 0x8CEE
+
+pattern GL_COLOR_ATTACHMENT15  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT15 = 0x8CEF
+
+pattern GL_COLOR_ATTACHMENT16  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT16 = 0x8CF0
+
+pattern GL_COLOR_ATTACHMENT17  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT17 = 0x8CF1
+
+pattern GL_COLOR_ATTACHMENT18  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT18 = 0x8CF2
+
+pattern GL_COLOR_ATTACHMENT19  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT19 = 0x8CF3
+
+pattern GL_COLOR_ATTACHMENT2  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT2 = 0x8CE2
+
+pattern GL_COLOR_ATTACHMENT20  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT20 = 0x8CF4
+
+pattern GL_COLOR_ATTACHMENT21  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT21 = 0x8CF5
+
+pattern GL_COLOR_ATTACHMENT22  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT22 = 0x8CF6
+
+pattern GL_COLOR_ATTACHMENT23  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT23 = 0x8CF7
+
+pattern GL_COLOR_ATTACHMENT24  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT24 = 0x8CF8
+
+pattern GL_COLOR_ATTACHMENT25  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT25 = 0x8CF9
+
+pattern GL_COLOR_ATTACHMENT26  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT26 = 0x8CFA
+
+pattern GL_COLOR_ATTACHMENT27  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT27 = 0x8CFB
+
+pattern GL_COLOR_ATTACHMENT28  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT28 = 0x8CFC
+
+pattern GL_COLOR_ATTACHMENT29  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT29 = 0x8CFD
+
+pattern GL_COLOR_ATTACHMENT3  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT3 = 0x8CE3
+
+pattern GL_COLOR_ATTACHMENT30  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT30 = 0x8CFE
+
+pattern GL_COLOR_ATTACHMENT31  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT31 = 0x8CFF
+
+pattern GL_COLOR_ATTACHMENT4  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT4 = 0x8CE4
+
+pattern GL_COLOR_ATTACHMENT5  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT5 = 0x8CE5
+
+pattern GL_COLOR_ATTACHMENT6  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT6 = 0x8CE6
+
+pattern GL_COLOR_ATTACHMENT7  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT7 = 0x8CE7
+
+pattern GL_COLOR_ATTACHMENT8  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT8 = 0x8CE8
+
+pattern GL_COLOR_ATTACHMENT9  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT9 = 0x8CE9
+
+pattern GL_COLOR_BUFFER_BIT  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_BUFFER_BIT = 0x00004000
+
+pattern GL_COLOR_CLEAR_VALUE  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_CLEAR_VALUE = 0x0C22
+
+pattern GL_COLOR_LOGIC_OP  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_LOGIC_OP = 0x0BF2
+
+pattern GL_COLOR_WRITEMASK  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_WRITEMASK = 0x0C23
+
+pattern GL_COMPARE_REF_TO_TEXTURE  :: (Eq a, Num a) => a
+
+pattern GL_COMPARE_REF_TO_TEXTURE = 0x884E
+
+pattern GL_COMPILE_STATUS  :: (Eq a, Num a) => a
+
+pattern GL_COMPILE_STATUS = 0x8B81
+
+pattern GL_COMPRESSED_RED  :: (Eq a, Num a) => a
+
+pattern GL_COMPRESSED_RED = 0x8225
+
+pattern GL_COMPRESSED_RED_RGTC1  :: (Eq a, Num a) => a
+
+pattern GL_COMPRESSED_RED_RGTC1 = 0x8DBB
+
+pattern GL_COMPRESSED_RG  :: (Eq a, Num a) => a
+
+pattern GL_COMPRESSED_RG = 0x8226
+
+pattern GL_COMPRESSED_RGB  :: (Eq a, Num a) => a
+
+pattern GL_COMPRESSED_RGB = 0x84ED
+
+pattern GL_COMPRESSED_RGBA  :: (Eq a, Num a) => a
+
+pattern GL_COMPRESSED_RGBA = 0x84EE
+
+pattern GL_COMPRESSED_RG_RGTC2  :: (Eq a, Num a) => a
+
+pattern GL_COMPRESSED_RG_RGTC2 = 0x8DBD
+
+pattern GL_COMPRESSED_SIGNED_RED_RGTC1  :: (Eq a, Num a) => a
+
+pattern GL_COMPRESSED_SIGNED_RED_RGTC1 = 0x8DBC
+
+pattern GL_COMPRESSED_SIGNED_RG_RGTC2  :: (Eq a, Num a) => a
+
+pattern GL_COMPRESSED_SIGNED_RG_RGTC2 = 0x8DBE
+
+pattern GL_COMPRESSED_SRGB  :: (Eq a, Num a) => a
+
+pattern GL_COMPRESSED_SRGB = 0x8C48
+
+pattern GL_COMPRESSED_SRGB_ALPHA  :: (Eq a, Num a) => a
+
+pattern GL_COMPRESSED_SRGB_ALPHA = 0x8C49
+
+pattern GL_COMPRESSED_TEXTURE_FORMATS  :: (Eq a, Num a) => a
+
+pattern GL_COMPRESSED_TEXTURE_FORMATS = 0x86A3
+
+pattern GL_CONDITION_SATISFIED  :: (Eq a, Num a) => a
+
+pattern GL_CONDITION_SATISFIED = 0x911C
+
+pattern GL_CONSTANT_ALPHA  :: (Eq a, Num a) => a
+
+pattern GL_CONSTANT_ALPHA = 0x8003
+
+pattern GL_CONSTANT_COLOR  :: (Eq a, Num a) => a
+
+pattern GL_CONSTANT_COLOR = 0x8001
+
+pattern GL_CONTEXT_FLAGS  :: (Eq a, Num a) => a
+
+pattern GL_CONTEXT_FLAGS = 0x821E
+
+pattern GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT  :: (Eq a, Num a) => a
+
+pattern GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT = 0x00000001
+
+pattern GL_COPY  :: (Eq a, Num a) => a
+
+pattern GL_COPY = 0x1503
+
+pattern GL_COPY_INVERTED  :: (Eq a, Num a) => a
+
+pattern GL_COPY_INVERTED = 0x150C
+
+pattern GL_COPY_READ_BUFFER  :: (Eq a, Num a) => a
+
+pattern GL_COPY_READ_BUFFER = 0x8F36
+
+pattern GL_COPY_WRITE_BUFFER  :: (Eq a, Num a) => a
+
+pattern GL_COPY_WRITE_BUFFER = 0x8F37
+
+pattern GL_CULL_FACE  :: (Eq a, Num a) => a
+
+pattern GL_CULL_FACE = 0x0B44
+
+pattern GL_CULL_FACE_MODE  :: (Eq a, Num a) => a
+
+pattern GL_CULL_FACE_MODE = 0x0B45
+
+pattern GL_CURRENT_PROGRAM  :: (Eq a, Num a) => a
+
+pattern GL_CURRENT_PROGRAM = 0x8B8D
+
+pattern GL_CURRENT_QUERY  :: (Eq a, Num a) => a
+
+pattern GL_CURRENT_QUERY = 0x8865
+
+pattern GL_CURRENT_VERTEX_ATTRIB  :: (Eq a, Num a) => a
+
+pattern GL_CURRENT_VERTEX_ATTRIB = 0x8626
+
+pattern GL_CW  :: (Eq a, Num a) => a
+
+pattern GL_CW = 0x0900
+
+pattern GL_DECR  :: (Eq a, Num a) => a
+
+pattern GL_DECR = 0x1E03
+
+pattern GL_DECR_WRAP  :: (Eq a, Num a) => a
+
+pattern GL_DECR_WRAP = 0x8508
+
+pattern GL_DELETE_STATUS  :: (Eq a, Num a) => a
+
+pattern GL_DELETE_STATUS = 0x8B80
+
+pattern GL_DEPTH  :: (Eq a, Num a) => a
+
+pattern GL_DEPTH = 0x1801
+
+pattern GL_DEPTH24_STENCIL8  :: (Eq a, Num a) => a
+
+pattern GL_DEPTH24_STENCIL8 = 0x88F0
+
+pattern GL_DEPTH32F_STENCIL8  :: (Eq a, Num a) => a
+
+pattern GL_DEPTH32F_STENCIL8 = 0x8CAD
+
+pattern GL_DEPTH_ATTACHMENT  :: (Eq a, Num a) => a
+
+pattern GL_DEPTH_ATTACHMENT = 0x8D00
+
+pattern GL_DEPTH_BUFFER_BIT  :: (Eq a, Num a) => a
+
+pattern GL_DEPTH_BUFFER_BIT = 0x00000100
+
+pattern GL_DEPTH_CLAMP  :: (Eq a, Num a) => a
+
+pattern GL_DEPTH_CLAMP = 0x864F
+
+pattern GL_DEPTH_CLEAR_VALUE  :: (Eq a, Num a) => a
+
+pattern GL_DEPTH_CLEAR_VALUE = 0x0B73
+
+pattern GL_DEPTH_COMPONENT  :: (Eq a, Num a) => a
+
+pattern GL_DEPTH_COMPONENT = 0x1902
+
+pattern GL_DEPTH_COMPONENT16  :: (Eq a, Num a) => a
+
+pattern GL_DEPTH_COMPONENT16 = 0x81A5
+
+pattern GL_DEPTH_COMPONENT24  :: (Eq a, Num a) => a
+
+pattern GL_DEPTH_COMPONENT24 = 0x81A6
+
+pattern GL_DEPTH_COMPONENT32  :: (Eq a, Num a) => a
+
+pattern GL_DEPTH_COMPONENT32 = 0x81A7
+
+pattern GL_DEPTH_COMPONENT32F  :: (Eq a, Num a) => a
+
+pattern GL_DEPTH_COMPONENT32F = 0x8CAC
+
+pattern GL_DEPTH_FUNC  :: (Eq a, Num a) => a
+
+pattern GL_DEPTH_FUNC = 0x0B74
+
+pattern GL_DEPTH_RANGE  :: (Eq a, Num a) => a
+
+pattern GL_DEPTH_RANGE = 0x0B70
+
+pattern GL_DEPTH_STENCIL  :: (Eq a, Num a) => a
+
+pattern GL_DEPTH_STENCIL = 0x84F9
+
+pattern GL_DEPTH_STENCIL_ATTACHMENT  :: (Eq a, Num a) => a
+
+pattern GL_DEPTH_STENCIL_ATTACHMENT = 0x821A
+
+pattern GL_DEPTH_TEST  :: (Eq a, Num a) => a
+
+pattern GL_DEPTH_TEST = 0x0B71
+
+pattern GL_DEPTH_WRITEMASK  :: (Eq a, Num a) => a
+
+pattern GL_DEPTH_WRITEMASK = 0x0B72
+
+pattern GL_DITHER  :: (Eq a, Num a) => a
+
+pattern GL_DITHER = 0x0BD0
+
+pattern GL_DONT_CARE  :: (Eq a, Num a) => a
+
+pattern GL_DONT_CARE = 0x1100
+
+pattern GL_DOUBLE  :: (Eq a, Num a) => a
+
+pattern GL_DOUBLE = 0x140A
+
+pattern GL_DOUBLEBUFFER  :: (Eq a, Num a) => a
+
+pattern GL_DOUBLEBUFFER = 0x0C32
+
+pattern GL_DRAW_BUFFER  :: (Eq a, Num a) => a
+
+pattern GL_DRAW_BUFFER = 0x0C01
+
+pattern GL_DRAW_BUFFER0  :: (Eq a, Num a) => a
+
+pattern GL_DRAW_BUFFER0 = 0x8825
+
+pattern GL_DRAW_BUFFER1  :: (Eq a, Num a) => a
+
+pattern GL_DRAW_BUFFER1 = 0x8826
+
+pattern GL_DRAW_BUFFER10  :: (Eq a, Num a) => a
+
+pattern GL_DRAW_BUFFER10 = 0x882F
+
+pattern GL_DRAW_BUFFER11  :: (Eq a, Num a) => a
+
+pattern GL_DRAW_BUFFER11 = 0x8830
+
+pattern GL_DRAW_BUFFER12  :: (Eq a, Num a) => a
+
+pattern GL_DRAW_BUFFER12 = 0x8831
+
+pattern GL_DRAW_BUFFER13  :: (Eq a, Num a) => a
+
+pattern GL_DRAW_BUFFER13 = 0x8832
+
+pattern GL_DRAW_BUFFER14  :: (Eq a, Num a) => a
+
+pattern GL_DRAW_BUFFER14 = 0x8833
+
+pattern GL_DRAW_BUFFER15  :: (Eq a, Num a) => a
+
+pattern GL_DRAW_BUFFER15 = 0x8834
+
+pattern GL_DRAW_BUFFER2  :: (Eq a, Num a) => a
+
+pattern GL_DRAW_BUFFER2 = 0x8827
+
+pattern GL_DRAW_BUFFER3  :: (Eq a, Num a) => a
+
+pattern GL_DRAW_BUFFER3 = 0x8828
+
+pattern GL_DRAW_BUFFER4  :: (Eq a, Num a) => a
+
+pattern GL_DRAW_BUFFER4 = 0x8829
+
+pattern GL_DRAW_BUFFER5  :: (Eq a, Num a) => a
+
+pattern GL_DRAW_BUFFER5 = 0x882A
+
+pattern GL_DRAW_BUFFER6  :: (Eq a, Num a) => a
+
+pattern GL_DRAW_BUFFER6 = 0x882B
+
+pattern GL_DRAW_BUFFER7  :: (Eq a, Num a) => a
+
+pattern GL_DRAW_BUFFER7 = 0x882C
+
+pattern GL_DRAW_BUFFER8  :: (Eq a, Num a) => a
+
+pattern GL_DRAW_BUFFER8 = 0x882D
+
+pattern GL_DRAW_BUFFER9  :: (Eq a, Num a) => a
+
+pattern GL_DRAW_BUFFER9 = 0x882E
+
+pattern GL_DRAW_FRAMEBUFFER  :: (Eq a, Num a) => a
+
+pattern GL_DRAW_FRAMEBUFFER = 0x8CA9
+
+pattern GL_DRAW_FRAMEBUFFER_BINDING  :: (Eq a, Num a) => a
+
+pattern GL_DRAW_FRAMEBUFFER_BINDING = 0x8CA6
+
+pattern GL_DST_ALPHA  :: (Eq a, Num a) => a
+
+pattern GL_DST_ALPHA = 0x0304
+
+pattern GL_DST_COLOR  :: (Eq a, Num a) => a
+
+pattern GL_DST_COLOR = 0x0306
+
+pattern GL_DYNAMIC_COPY  :: (Eq a, Num a) => a
+
+pattern GL_DYNAMIC_COPY = 0x88EA
+
+pattern GL_DYNAMIC_DRAW  :: (Eq a, Num a) => a
+
+pattern GL_DYNAMIC_DRAW = 0x88E8
+
+pattern GL_DYNAMIC_READ  :: (Eq a, Num a) => a
+
+pattern GL_DYNAMIC_READ = 0x88E9
+
+pattern GL_ELEMENT_ARRAY_BUFFER  :: (Eq a, Num a) => a
+
+pattern GL_ELEMENT_ARRAY_BUFFER = 0x8893
+
+pattern GL_ELEMENT_ARRAY_BUFFER_BINDING  :: (Eq a, Num a) => a
+
+pattern GL_ELEMENT_ARRAY_BUFFER_BINDING = 0x8895
+
+pattern GL_EQUAL  :: (Eq a, Num a) => a
+
+pattern GL_EQUAL = 0x0202
+
+pattern GL_EQUIV  :: (Eq a, Num a) => a
+
+pattern GL_EQUIV = 0x1509
+
+pattern GL_EXTENSIONS  :: (Eq a, Num a) => a
+
+pattern GL_EXTENSIONS = 0x1F03
+
+pattern GL_FALSE  :: (Eq a, Num a) => a
+
+pattern GL_FALSE = 0
+
+pattern GL_FASTEST  :: (Eq a, Num a) => a
+
+pattern GL_FASTEST = 0x1101
+
+pattern GL_FILL  :: (Eq a, Num a) => a
+
+pattern GL_FILL = 0x1B02
+
+pattern GL_FIRST_VERTEX_CONVENTION  :: (Eq a, Num a) => a
+
+pattern GL_FIRST_VERTEX_CONVENTION = 0x8E4D
+
+pattern GL_FIXED_ONLY  :: (Eq a, Num a) => a
+
+pattern GL_FIXED_ONLY = 0x891D
+
+pattern GL_FLOAT  :: (Eq a, Num a) => a
+
+pattern GL_FLOAT = 0x1406
+
+pattern GL_FLOAT_32_UNSIGNED_INT_24_8_REV  :: (Eq a, Num a) => a
+
+pattern GL_FLOAT_32_UNSIGNED_INT_24_8_REV = 0x8DAD
+
+pattern GL_FLOAT_MAT2  :: (Eq a, Num a) => a
+
+pattern GL_FLOAT_MAT2 = 0x8B5A
+
+pattern GL_FLOAT_MAT2x3  :: (Eq a, Num a) => a
+
+pattern GL_FLOAT_MAT2x3 = 0x8B65
+
+pattern GL_FLOAT_MAT2x4  :: (Eq a, Num a) => a
+
+pattern GL_FLOAT_MAT2x4 = 0x8B66
+
+pattern GL_FLOAT_MAT3  :: (Eq a, Num a) => a
+
+pattern GL_FLOAT_MAT3 = 0x8B5B
+
+pattern GL_FLOAT_MAT3x2  :: (Eq a, Num a) => a
+
+pattern GL_FLOAT_MAT3x2 = 0x8B67
+
+pattern GL_FLOAT_MAT3x4  :: (Eq a, Num a) => a
+
+pattern GL_FLOAT_MAT3x4 = 0x8B68
+
+pattern GL_FLOAT_MAT4  :: (Eq a, Num a) => a
+
+pattern GL_FLOAT_MAT4 = 0x8B5C
+
+pattern GL_FLOAT_MAT4x2  :: (Eq a, Num a) => a
+
+pattern GL_FLOAT_MAT4x2 = 0x8B69
+
+pattern GL_FLOAT_MAT4x3  :: (Eq a, Num a) => a
+
+pattern GL_FLOAT_MAT4x3 = 0x8B6A
+
+pattern GL_FLOAT_VEC2  :: (Eq a, Num a) => a
+
+pattern GL_FLOAT_VEC2 = 0x8B50
+
+pattern GL_FLOAT_VEC3  :: (Eq a, Num a) => a
+
+pattern GL_FLOAT_VEC3 = 0x8B51
+
+pattern GL_FLOAT_VEC4  :: (Eq a, Num a) => a
+
+pattern GL_FLOAT_VEC4 = 0x8B52
+
+pattern GL_FRAGMENT_SHADER  :: (Eq a, Num a) => a
+
+pattern GL_FRAGMENT_SHADER = 0x8B30
+
+pattern GL_FRAGMENT_SHADER_DERIVATIVE_HINT  :: (Eq a, Num a) => a
+
+pattern GL_FRAGMENT_SHADER_DERIVATIVE_HINT = 0x8B8B
+
+pattern GL_FRAMEBUFFER  :: (Eq a, Num a) => a
+
+pattern GL_FRAMEBUFFER = 0x8D40
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = 0x8215
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = 0x8214
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING  :: (Eq a, Num a) => a
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = 0x8210
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE  :: (Eq a, Num a) => a
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = 0x8211
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = 0x8216
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = 0x8213
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED  :: (Eq a, Num a) => a
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED = 0x8DA7
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME  :: (Eq a, Num a) => a
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8CD1
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE  :: (Eq a, Num a) => a
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8CD0
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE = 0x8212
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = 0x8217
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE  :: (Eq a, Num a) => a
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER  :: (Eq a, Num a) => a
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = 0x8CD4
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL  :: (Eq a, Num a) => a
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8CD2
+
+pattern GL_FRAMEBUFFER_BINDING  :: (Eq a, Num a) => a
+
+pattern GL_FRAMEBUFFER_BINDING = 0x8CA6
+
+pattern GL_FRAMEBUFFER_COMPLETE  :: (Eq a, Num a) => a
+
+pattern GL_FRAMEBUFFER_COMPLETE = 0x8CD5
+
+pattern GL_FRAMEBUFFER_DEFAULT  :: (Eq a, Num a) => a
+
+pattern GL_FRAMEBUFFER_DEFAULT = 0x8218
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT  :: (Eq a, Num a) => a
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER  :: (Eq a, Num a) => a
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER = 0x8CDB
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS  :: (Eq a, Num a) => a
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS = 0x8DA8
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT  :: (Eq a, Num a) => a
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE  :: (Eq a, Num a) => a
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = 0x8D56
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER  :: (Eq a, Num a) => a
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER = 0x8CDC
+
+pattern GL_FRAMEBUFFER_SRGB  :: (Eq a, Num a) => a
+
+pattern GL_FRAMEBUFFER_SRGB = 0x8DB9
+
+pattern GL_FRAMEBUFFER_UNDEFINED  :: (Eq a, Num a) => a
+
+pattern GL_FRAMEBUFFER_UNDEFINED = 0x8219
+
+pattern GL_FRAMEBUFFER_UNSUPPORTED  :: (Eq a, Num a) => a
+
+pattern GL_FRAMEBUFFER_UNSUPPORTED = 0x8CDD
+
+pattern GL_FRONT  :: (Eq a, Num a) => a
+
+pattern GL_FRONT = 0x0404
+
+pattern GL_FRONT_AND_BACK  :: (Eq a, Num a) => a
+
+pattern GL_FRONT_AND_BACK = 0x0408
+
+pattern GL_FRONT_FACE  :: (Eq a, Num a) => a
+
+pattern GL_FRONT_FACE = 0x0B46
+
+pattern GL_FRONT_LEFT  :: (Eq a, Num a) => a
+
+pattern GL_FRONT_LEFT = 0x0400
+
+pattern GL_FRONT_RIGHT  :: (Eq a, Num a) => a
+
+pattern GL_FRONT_RIGHT = 0x0401
+
+pattern GL_FUNC_ADD  :: (Eq a, Num a) => a
+
+pattern GL_FUNC_ADD = 0x8006
+
+pattern GL_FUNC_REVERSE_SUBTRACT  :: (Eq a, Num a) => a
+
+pattern GL_FUNC_REVERSE_SUBTRACT = 0x800B
+
+pattern GL_FUNC_SUBTRACT  :: (Eq a, Num a) => a
+
+pattern GL_FUNC_SUBTRACT = 0x800A
+
+pattern GL_GEOMETRY_INPUT_TYPE  :: (Eq a, Num a) => a
+
+pattern GL_GEOMETRY_INPUT_TYPE = 0x8917
+
+pattern GL_GEOMETRY_OUTPUT_TYPE  :: (Eq a, Num a) => a
+
+pattern GL_GEOMETRY_OUTPUT_TYPE = 0x8918
+
+pattern GL_GEOMETRY_SHADER  :: (Eq a, Num a) => a
+
+pattern GL_GEOMETRY_SHADER = 0x8DD9
+
+pattern GL_GEOMETRY_VERTICES_OUT  :: (Eq a, Num a) => a
+
+pattern GL_GEOMETRY_VERTICES_OUT = 0x8916
+
+pattern GL_GEQUAL  :: (Eq a, Num a) => a
+
+pattern GL_GEQUAL = 0x0206
+
+pattern GL_GREATER  :: (Eq a, Num a) => a
+
+pattern GL_GREATER = 0x0204
+
+pattern GL_GREEN  :: (Eq a, Num a) => a
+
+pattern GL_GREEN = 0x1904
+
+pattern GL_GREEN_INTEGER  :: (Eq a, Num a) => a
+
+pattern GL_GREEN_INTEGER = 0x8D95
+
+pattern GL_HALF_FLOAT  :: (Eq a, Num a) => a
+
+pattern GL_HALF_FLOAT = 0x140B
+
+pattern GL_INCR  :: (Eq a, Num a) => a
+
+pattern GL_INCR = 0x1E02
+
+pattern GL_INCR_WRAP  :: (Eq a, Num a) => a
+
+pattern GL_INCR_WRAP = 0x8507
+
+pattern GL_INDEX  :: (Eq a, Num a) => a
+
+pattern GL_INDEX = 0x8222
+
+pattern GL_INFO_LOG_LENGTH  :: (Eq a, Num a) => a
+
+pattern GL_INFO_LOG_LENGTH = 0x8B84
+
+pattern GL_INT  :: (Eq a, Num a) => a
+
+pattern GL_INT = 0x1404
+
+pattern GL_INTERLEAVED_ATTRIBS  :: (Eq a, Num a) => a
+
+pattern GL_INTERLEAVED_ATTRIBS = 0x8C8C
+
+pattern GL_INT_SAMPLER_1D  :: (Eq a, Num a) => a
+
+pattern GL_INT_SAMPLER_1D = 0x8DC9
+
+pattern GL_INT_SAMPLER_1D_ARRAY  :: (Eq a, Num a) => a
+
+pattern GL_INT_SAMPLER_1D_ARRAY = 0x8DCE
+
+pattern GL_INT_SAMPLER_2D  :: (Eq a, Num a) => a
+
+pattern GL_INT_SAMPLER_2D = 0x8DCA
+
+pattern GL_INT_SAMPLER_2D_ARRAY  :: (Eq a, Num a) => a
+
+pattern GL_INT_SAMPLER_2D_ARRAY = 0x8DCF
+
+pattern GL_INT_SAMPLER_2D_MULTISAMPLE  :: (Eq a, Num a) => a
+
+pattern GL_INT_SAMPLER_2D_MULTISAMPLE = 0x9109
+
+pattern GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY  :: (Eq a, Num a) => a
+
+pattern GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910C
+
+pattern GL_INT_SAMPLER_2D_RECT  :: (Eq a, Num a) => a
+
+pattern GL_INT_SAMPLER_2D_RECT = 0x8DCD
+
+pattern GL_INT_SAMPLER_3D  :: (Eq a, Num a) => a
+
+pattern GL_INT_SAMPLER_3D = 0x8DCB
+
+pattern GL_INT_SAMPLER_BUFFER  :: (Eq a, Num a) => a
+
+pattern GL_INT_SAMPLER_BUFFER = 0x8DD0
+
+pattern GL_INT_SAMPLER_CUBE  :: (Eq a, Num a) => a
+
+pattern GL_INT_SAMPLER_CUBE = 0x8DCC
+
+pattern GL_INT_VEC2  :: (Eq a, Num a) => a
+
+pattern GL_INT_VEC2 = 0x8B53
+
+pattern GL_INT_VEC3  :: (Eq a, Num a) => a
+
+pattern GL_INT_VEC3 = 0x8B54
+
+pattern GL_INT_VEC4  :: (Eq a, Num a) => a
+
+pattern GL_INT_VEC4 = 0x8B55
+
+pattern GL_INVALID_ENUM  :: (Eq a, Num a) => a
+
+pattern GL_INVALID_ENUM = 0x0500
+
+pattern GL_INVALID_FRAMEBUFFER_OPERATION  :: (Eq a, Num a) => a
+
+pattern GL_INVALID_FRAMEBUFFER_OPERATION = 0x0506
+
+pattern GL_INVALID_INDEX  :: (Eq a, Num a) => a
+
+pattern GL_INVALID_INDEX = 0xFFFFFFFF
+
+pattern GL_INVALID_OPERATION  :: (Eq a, Num a) => a
+
+pattern GL_INVALID_OPERATION = 0x0502
+
+pattern GL_INVALID_VALUE  :: (Eq a, Num a) => a
+
+pattern GL_INVALID_VALUE = 0x0501
+
+pattern GL_INVERT  :: (Eq a, Num a) => a
+
+pattern GL_INVERT = 0x150A
+
+pattern GL_KEEP  :: (Eq a, Num a) => a
+
+pattern GL_KEEP = 0x1E00
+
+pattern GL_LAST_VERTEX_CONVENTION  :: (Eq a, Num a) => a
+
+pattern GL_LAST_VERTEX_CONVENTION = 0x8E4E
+
+pattern GL_LEFT  :: (Eq a, Num a) => a
+
+pattern GL_LEFT = 0x0406
+
+pattern GL_LEQUAL  :: (Eq a, Num a) => a
+
+pattern GL_LEQUAL = 0x0203
+
+pattern GL_LESS  :: (Eq a, Num a) => a
+
+pattern GL_LESS = 0x0201
+
+pattern GL_LINE  :: (Eq a, Num a) => a
+
+pattern GL_LINE = 0x1B01
+
+pattern GL_LINEAR  :: (Eq a, Num a) => a
+
+pattern GL_LINEAR = 0x2601
+
+pattern GL_LINEAR_MIPMAP_LINEAR  :: (Eq a, Num a) => a
+
+pattern GL_LINEAR_MIPMAP_LINEAR = 0x2703
+
+pattern GL_LINEAR_MIPMAP_NEAREST  :: (Eq a, Num a) => a
+
+pattern GL_LINEAR_MIPMAP_NEAREST = 0x2701
+
+pattern GL_LINES  :: (Eq a, Num a) => a
+
+pattern GL_LINES = 0x0001
+
+pattern GL_LINES_ADJACENCY  :: (Eq a, Num a) => a
+
+pattern GL_LINES_ADJACENCY = 0x000A
+
+pattern GL_LINE_LOOP  :: (Eq a, Num a) => a
+
+pattern GL_LINE_LOOP = 0x0002
+
+pattern GL_LINE_SMOOTH  :: (Eq a, Num a) => a
+
+pattern GL_LINE_SMOOTH = 0x0B20
+
+pattern GL_LINE_SMOOTH_HINT  :: (Eq a, Num a) => a
+
+pattern GL_LINE_SMOOTH_HINT = 0x0C52
+
+pattern GL_LINE_STRIP  :: (Eq a, Num a) => a
+
+pattern GL_LINE_STRIP = 0x0003
+
+pattern GL_LINE_STRIP_ADJACENCY  :: (Eq a, Num a) => a
+
+pattern GL_LINE_STRIP_ADJACENCY = 0x000B
+
+pattern GL_LINE_WIDTH  :: (Eq a, Num a) => a
+
+pattern GL_LINE_WIDTH = 0x0B21
+
+pattern GL_LINE_WIDTH_GRANULARITY  :: (Eq a, Num a) => a
+
+pattern GL_LINE_WIDTH_GRANULARITY = 0x0B23
+
+pattern GL_LINE_WIDTH_RANGE  :: (Eq a, Num a) => a
+
+pattern GL_LINE_WIDTH_RANGE = 0x0B22
+
+pattern GL_LINK_STATUS  :: (Eq a, Num a) => a
+
+pattern GL_LINK_STATUS = 0x8B82
+
+pattern GL_LOGIC_OP_MODE  :: (Eq a, Num a) => a
+
+pattern GL_LOGIC_OP_MODE = 0x0BF0
+
+pattern GL_LOWER_LEFT  :: (Eq a, Num a) => a
+
+pattern GL_LOWER_LEFT = 0x8CA1
+
+pattern GL_MAJOR_VERSION  :: (Eq a, Num a) => a
+
+pattern GL_MAJOR_VERSION = 0x821B
+
+pattern GL_MAP_FLUSH_EXPLICIT_BIT  :: (Eq a, Num a) => a
+
+pattern GL_MAP_FLUSH_EXPLICIT_BIT = 0x0010
+
+pattern GL_MAP_INVALIDATE_BUFFER_BIT  :: (Eq a, Num a) => a
+
+pattern GL_MAP_INVALIDATE_BUFFER_BIT = 0x0008
+
+pattern GL_MAP_INVALIDATE_RANGE_BIT  :: (Eq a, Num a) => a
+
+pattern GL_MAP_INVALIDATE_RANGE_BIT = 0x0004
+
+pattern GL_MAP_READ_BIT  :: (Eq a, Num a) => a
+
+pattern GL_MAP_READ_BIT = 0x0001
+
+pattern GL_MAP_UNSYNCHRONIZED_BIT  :: (Eq a, Num a) => a
+
+pattern GL_MAP_UNSYNCHRONIZED_BIT = 0x0020
+
+pattern GL_MAP_WRITE_BIT  :: (Eq a, Num a) => a
+
+pattern GL_MAP_WRITE_BIT = 0x0002
+
+pattern GL_MAX  :: (Eq a, Num a) => a
+
+pattern GL_MAX = 0x8008
+
+pattern GL_MAX_3D_TEXTURE_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_MAX_3D_TEXTURE_SIZE = 0x8073
+
+pattern GL_MAX_ARRAY_TEXTURE_LAYERS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_ARRAY_TEXTURE_LAYERS = 0x88FF
+
+pattern GL_MAX_CLIP_DISTANCES  :: (Eq a, Num a) => a
+
+pattern GL_MAX_CLIP_DISTANCES = 0x0D32
+
+pattern GL_MAX_COLOR_ATTACHMENTS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_COLOR_ATTACHMENTS = 0x8CDF
+
+pattern GL_MAX_COLOR_TEXTURE_SAMPLES  :: (Eq a, Num a) => a
+
+pattern GL_MAX_COLOR_TEXTURE_SAMPLES = 0x910E
+
+pattern GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = 0x8A33
+
+pattern GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS = 0x8A32
+
+pattern GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D
+
+pattern GL_MAX_COMBINED_UNIFORM_BLOCKS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_COMBINED_UNIFORM_BLOCKS = 0x8A2E
+
+pattern GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = 0x8A31
+
+pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C
+
+pattern GL_MAX_DEPTH_TEXTURE_SAMPLES  :: (Eq a, Num a) => a
+
+pattern GL_MAX_DEPTH_TEXTURE_SAMPLES = 0x910F
+
+pattern GL_MAX_DRAW_BUFFERS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_DRAW_BUFFERS = 0x8824
+
+pattern GL_MAX_ELEMENTS_INDICES  :: (Eq a, Num a) => a
+
+pattern GL_MAX_ELEMENTS_INDICES = 0x80E9
+
+pattern GL_MAX_ELEMENTS_VERTICES  :: (Eq a, Num a) => a
+
+pattern GL_MAX_ELEMENTS_VERTICES = 0x80E8
+
+pattern GL_MAX_FRAGMENT_INPUT_COMPONENTS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125
+
+pattern GL_MAX_FRAGMENT_UNIFORM_BLOCKS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_FRAGMENT_UNIFORM_BLOCKS = 0x8A2D
+
+pattern GL_MAX_FRAGMENT_UNIFORM_COMPONENTS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_FRAGMENT_UNIFORM_COMPONENTS = 0x8B49
+
+pattern GL_MAX_GEOMETRY_INPUT_COMPONENTS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_GEOMETRY_INPUT_COMPONENTS = 0x9123
+
+pattern GL_MAX_GEOMETRY_OUTPUT_COMPONENTS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_GEOMETRY_OUTPUT_COMPONENTS = 0x9124
+
+pattern GL_MAX_GEOMETRY_OUTPUT_VERTICES  :: (Eq a, Num a) => a
+
+pattern GL_MAX_GEOMETRY_OUTPUT_VERTICES = 0x8DE0
+
+pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS = 0x8C29
+
+pattern GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS = 0x8DE1
+
+pattern GL_MAX_GEOMETRY_UNIFORM_BLOCKS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_GEOMETRY_UNIFORM_BLOCKS = 0x8A2C
+
+pattern GL_MAX_GEOMETRY_UNIFORM_COMPONENTS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_GEOMETRY_UNIFORM_COMPONENTS = 0x8DDF
+
+pattern GL_MAX_INTEGER_SAMPLES  :: (Eq a, Num a) => a
+
+pattern GL_MAX_INTEGER_SAMPLES = 0x9110
+
+pattern GL_MAX_PROGRAM_TEXEL_OFFSET  :: (Eq a, Num a) => a
+
+pattern GL_MAX_PROGRAM_TEXEL_OFFSET = 0x8905
+
+pattern GL_MAX_RECTANGLE_TEXTURE_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_MAX_RECTANGLE_TEXTURE_SIZE = 0x84F8
+
+pattern GL_MAX_RENDERBUFFER_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_MAX_RENDERBUFFER_SIZE = 0x84E8
+
+pattern GL_MAX_SAMPLES  :: (Eq a, Num a) => a
+
+pattern GL_MAX_SAMPLES = 0x8D57
+
+pattern GL_MAX_SAMPLE_MASK_WORDS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_SAMPLE_MASK_WORDS = 0x8E59
+
+pattern GL_MAX_SERVER_WAIT_TIMEOUT  :: (Eq a, Num a) => a
+
+pattern GL_MAX_SERVER_WAIT_TIMEOUT = 0x9111
+
+pattern GL_MAX_TEXTURE_BUFFER_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_MAX_TEXTURE_BUFFER_SIZE = 0x8C2B
+
+pattern GL_MAX_TEXTURE_IMAGE_UNITS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_TEXTURE_IMAGE_UNITS = 0x8872
+
+pattern GL_MAX_TEXTURE_LOD_BIAS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_TEXTURE_LOD_BIAS = 0x84FD
+
+pattern GL_MAX_TEXTURE_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_MAX_TEXTURE_SIZE = 0x0D33
+
+pattern GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = 0x8C8A
+
+pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = 0x8C8B
+
+pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = 0x8C80
+
+pattern GL_MAX_UNIFORM_BLOCK_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_MAX_UNIFORM_BLOCK_SIZE = 0x8A30
+
+pattern GL_MAX_UNIFORM_BUFFER_BINDINGS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_UNIFORM_BUFFER_BINDINGS = 0x8A2F
+
+pattern GL_MAX_VARYING_COMPONENTS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_VARYING_COMPONENTS = 0x8B4B
+
+pattern GL_MAX_VARYING_FLOATS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_VARYING_FLOATS = 0x8B4B
+
+pattern GL_MAX_VERTEX_ATTRIBS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_VERTEX_ATTRIBS = 0x8869
+
+pattern GL_MAX_VERTEX_OUTPUT_COMPONENTS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122
+
+pattern GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C
+
+pattern GL_MAX_VERTEX_UNIFORM_BLOCKS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_VERTEX_UNIFORM_BLOCKS = 0x8A2B
+
+pattern GL_MAX_VERTEX_UNIFORM_COMPONENTS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_VERTEX_UNIFORM_COMPONENTS = 0x8B4A
+
+pattern GL_MAX_VIEWPORT_DIMS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_VIEWPORT_DIMS = 0x0D3A
+
+pattern GL_MIN  :: (Eq a, Num a) => a
+
+pattern GL_MIN = 0x8007
+
+pattern GL_MINOR_VERSION  :: (Eq a, Num a) => a
+
+pattern GL_MINOR_VERSION = 0x821C
+
+pattern GL_MIN_PROGRAM_TEXEL_OFFSET  :: (Eq a, Num a) => a
+
+pattern GL_MIN_PROGRAM_TEXEL_OFFSET = 0x8904
+
+pattern GL_MIRRORED_REPEAT  :: (Eq a, Num a) => a
+
+pattern GL_MIRRORED_REPEAT = 0x8370
+
+pattern GL_MULTISAMPLE  :: (Eq a, Num a) => a
+
+pattern GL_MULTISAMPLE = 0x809D
+
+pattern GL_NAND  :: (Eq a, Num a) => a
+
+pattern GL_NAND = 0x150E
+
+pattern GL_NEAREST  :: (Eq a, Num a) => a
+
+pattern GL_NEAREST = 0x2600
+
+pattern GL_NEAREST_MIPMAP_LINEAR  :: (Eq a, Num a) => a
+
+pattern GL_NEAREST_MIPMAP_LINEAR = 0x2702
+
+pattern GL_NEAREST_MIPMAP_NEAREST  :: (Eq a, Num a) => a
+
+pattern GL_NEAREST_MIPMAP_NEAREST = 0x2700
+
+pattern GL_NEVER  :: (Eq a, Num a) => a
+
+pattern GL_NEVER = 0x0200
+
+pattern GL_NICEST  :: (Eq a, Num a) => a
+
+pattern GL_NICEST = 0x1102
+
+pattern GL_NONE  :: (Eq a, Num a) => a
+
+pattern GL_NONE = 0
+
+pattern GL_NOOP  :: (Eq a, Num a) => a
+
+pattern GL_NOOP = 0x1505
+
+pattern GL_NOR  :: (Eq a, Num a) => a
+
+pattern GL_NOR = 0x1508
+
+pattern GL_NOTEQUAL  :: (Eq a, Num a) => a
+
+pattern GL_NOTEQUAL = 0x0205
+
+pattern GL_NO_ERROR  :: (Eq a, Num a) => a
+
+pattern GL_NO_ERROR = 0
+
+pattern GL_NUM_COMPRESSED_TEXTURE_FORMATS  :: (Eq a, Num a) => a
+
+pattern GL_NUM_COMPRESSED_TEXTURE_FORMATS = 0x86A2
+
+pattern GL_NUM_EXTENSIONS  :: (Eq a, Num a) => a
+
+pattern GL_NUM_EXTENSIONS = 0x821D
+
+pattern GL_OBJECT_TYPE  :: (Eq a, Num a) => a
+
+pattern GL_OBJECT_TYPE = 0x9112
+
+pattern GL_ONE  :: (Eq a, Num a) => a
+
+pattern GL_ONE = 1
+
+pattern GL_ONE_MINUS_CONSTANT_ALPHA  :: (Eq a, Num a) => a
+
+pattern GL_ONE_MINUS_CONSTANT_ALPHA = 0x8004
+
+pattern GL_ONE_MINUS_CONSTANT_COLOR  :: (Eq a, Num a) => a
+
+pattern GL_ONE_MINUS_CONSTANT_COLOR = 0x8002
+
+pattern GL_ONE_MINUS_DST_ALPHA  :: (Eq a, Num a) => a
+
+pattern GL_ONE_MINUS_DST_ALPHA = 0x0305
+
+pattern GL_ONE_MINUS_DST_COLOR  :: (Eq a, Num a) => a
+
+pattern GL_ONE_MINUS_DST_COLOR = 0x0307
+
+pattern GL_ONE_MINUS_SRC_ALPHA  :: (Eq a, Num a) => a
+
+pattern GL_ONE_MINUS_SRC_ALPHA = 0x0303
+
+pattern GL_ONE_MINUS_SRC_COLOR  :: (Eq a, Num a) => a
+
+pattern GL_ONE_MINUS_SRC_COLOR = 0x0301
+
+pattern GL_OR  :: (Eq a, Num a) => a
+
+pattern GL_OR = 0x1507
+
+pattern GL_OR_INVERTED  :: (Eq a, Num a) => a
+
+pattern GL_OR_INVERTED = 0x150D
+
+pattern GL_OR_REVERSE  :: (Eq a, Num a) => a
+
+pattern GL_OR_REVERSE = 0x150B
+
+pattern GL_OUT_OF_MEMORY  :: (Eq a, Num a) => a
+
+pattern GL_OUT_OF_MEMORY = 0x0505
+
+pattern GL_PACK_ALIGNMENT  :: (Eq a, Num a) => a
+
+pattern GL_PACK_ALIGNMENT = 0x0D05
+
+pattern GL_PACK_IMAGE_HEIGHT  :: (Eq a, Num a) => a
+
+pattern GL_PACK_IMAGE_HEIGHT = 0x806C
+
+pattern GL_PACK_LSB_FIRST  :: (Eq a, Num a) => a
+
+pattern GL_PACK_LSB_FIRST = 0x0D01
+
+pattern GL_PACK_ROW_LENGTH  :: (Eq a, Num a) => a
+
+pattern GL_PACK_ROW_LENGTH = 0x0D02
+
+pattern GL_PACK_SKIP_IMAGES  :: (Eq a, Num a) => a
+
+pattern GL_PACK_SKIP_IMAGES = 0x806B
+
+pattern GL_PACK_SKIP_PIXELS  :: (Eq a, Num a) => a
+
+pattern GL_PACK_SKIP_PIXELS = 0x0D04
+
+pattern GL_PACK_SKIP_ROWS  :: (Eq a, Num a) => a
+
+pattern GL_PACK_SKIP_ROWS = 0x0D03
+
+pattern GL_PACK_SWAP_BYTES  :: (Eq a, Num a) => a
+
+pattern GL_PACK_SWAP_BYTES = 0x0D00
+
+pattern GL_PIXEL_PACK_BUFFER  :: (Eq a, Num a) => a
+
+pattern GL_PIXEL_PACK_BUFFER = 0x88EB
+
+pattern GL_PIXEL_PACK_BUFFER_BINDING  :: (Eq a, Num a) => a
+
+pattern GL_PIXEL_PACK_BUFFER_BINDING = 0x88ED
+
+pattern GL_PIXEL_UNPACK_BUFFER  :: (Eq a, Num a) => a
+
+pattern GL_PIXEL_UNPACK_BUFFER = 0x88EC
+
+pattern GL_PIXEL_UNPACK_BUFFER_BINDING  :: (Eq a, Num a) => a
+
+pattern GL_PIXEL_UNPACK_BUFFER_BINDING = 0x88EF
+
+pattern GL_POINT  :: (Eq a, Num a) => a
+
+pattern GL_POINT = 0x1B00
+
+pattern GL_POINTS  :: (Eq a, Num a) => a
+
+pattern GL_POINTS = 0x0000
+
+pattern GL_POINT_FADE_THRESHOLD_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_POINT_FADE_THRESHOLD_SIZE = 0x8128
+
+pattern GL_POINT_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_POINT_SIZE = 0x0B11
+
+pattern GL_POINT_SIZE_GRANULARITY  :: (Eq a, Num a) => a
+
+pattern GL_POINT_SIZE_GRANULARITY = 0x0B13
+
+pattern GL_POINT_SIZE_RANGE  :: (Eq a, Num a) => a
+
+pattern GL_POINT_SIZE_RANGE = 0x0B12
+
+pattern GL_POINT_SPRITE_COORD_ORIGIN  :: (Eq a, Num a) => a
+
+pattern GL_POINT_SPRITE_COORD_ORIGIN = 0x8CA0
+
+pattern GL_POLYGON_MODE  :: (Eq a, Num a) => a
+
+pattern GL_POLYGON_MODE = 0x0B40
+
+pattern GL_POLYGON_OFFSET_FACTOR  :: (Eq a, Num a) => a
+
+pattern GL_POLYGON_OFFSET_FACTOR = 0x8038
+
+pattern GL_POLYGON_OFFSET_FILL  :: (Eq a, Num a) => a
+
+pattern GL_POLYGON_OFFSET_FILL = 0x8037
+
+pattern GL_POLYGON_OFFSET_LINE  :: (Eq a, Num a) => a
+
+pattern GL_POLYGON_OFFSET_LINE = 0x2A02
+
+pattern GL_POLYGON_OFFSET_POINT  :: (Eq a, Num a) => a
+
+pattern GL_POLYGON_OFFSET_POINT = 0x2A01
+
+pattern GL_POLYGON_OFFSET_UNITS  :: (Eq a, Num a) => a
+
+pattern GL_POLYGON_OFFSET_UNITS = 0x2A00
+
+pattern GL_POLYGON_SMOOTH  :: (Eq a, Num a) => a
+
+pattern GL_POLYGON_SMOOTH = 0x0B41
+
+pattern GL_POLYGON_SMOOTH_HINT  :: (Eq a, Num a) => a
+
+pattern GL_POLYGON_SMOOTH_HINT = 0x0C53
+
+pattern GL_PRIMITIVES_GENERATED  :: (Eq a, Num a) => a
+
+pattern GL_PRIMITIVES_GENERATED = 0x8C87
+
+pattern GL_PRIMITIVE_RESTART  :: (Eq a, Num a) => a
+
+pattern GL_PRIMITIVE_RESTART = 0x8F9D
+
+pattern GL_PRIMITIVE_RESTART_INDEX  :: (Eq a, Num a) => a
+
+pattern GL_PRIMITIVE_RESTART_INDEX = 0x8F9E
+
+pattern GL_PROVOKING_VERTEX  :: (Eq a, Num a) => a
+
+pattern GL_PROVOKING_VERTEX = 0x8E4F
+
+pattern GL_PROXY_TEXTURE_1D  :: (Eq a, Num a) => a
+
+pattern GL_PROXY_TEXTURE_1D = 0x8063
+
+pattern GL_PROXY_TEXTURE_1D_ARRAY  :: (Eq a, Num a) => a
+
+pattern GL_PROXY_TEXTURE_1D_ARRAY = 0x8C19
+
+pattern GL_PROXY_TEXTURE_2D  :: (Eq a, Num a) => a
+
+pattern GL_PROXY_TEXTURE_2D = 0x8064
+
+pattern GL_PROXY_TEXTURE_2D_ARRAY  :: (Eq a, Num a) => a
+
+pattern GL_PROXY_TEXTURE_2D_ARRAY = 0x8C1B
+
+pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE  :: (Eq a, Num a) => a
+
+pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE = 0x9101
+
+pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY  :: (Eq a, Num a) => a
+
+pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9103
+
+pattern GL_PROXY_TEXTURE_3D  :: (Eq a, Num a) => a
+
+pattern GL_PROXY_TEXTURE_3D = 0x8070
+
+pattern GL_PROXY_TEXTURE_CUBE_MAP  :: (Eq a, Num a) => a
+
+pattern GL_PROXY_TEXTURE_CUBE_MAP = 0x851B
+
+pattern GL_PROXY_TEXTURE_RECTANGLE  :: (Eq a, Num a) => a
+
+pattern GL_PROXY_TEXTURE_RECTANGLE = 0x84F7
+
+pattern GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION  :: (Eq a, Num a) => a
+
+pattern GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION = 0x8E4C
+
+pattern GL_QUERY_BY_REGION_NO_WAIT  :: (Eq a, Num a) => a
+
+pattern GL_QUERY_BY_REGION_NO_WAIT = 0x8E16
+
+pattern GL_QUERY_BY_REGION_WAIT  :: (Eq a, Num a) => a
+
+pattern GL_QUERY_BY_REGION_WAIT = 0x8E15
+
+pattern GL_QUERY_COUNTER_BITS  :: (Eq a, Num a) => a
+
+pattern GL_QUERY_COUNTER_BITS = 0x8864
+
+pattern GL_QUERY_NO_WAIT  :: (Eq a, Num a) => a
+
+pattern GL_QUERY_NO_WAIT = 0x8E14
+
+pattern GL_QUERY_RESULT  :: (Eq a, Num a) => a
+
+pattern GL_QUERY_RESULT = 0x8866
+
+pattern GL_QUERY_RESULT_AVAILABLE  :: (Eq a, Num a) => a
+
+pattern GL_QUERY_RESULT_AVAILABLE = 0x8867
+
+pattern GL_QUERY_WAIT  :: (Eq a, Num a) => a
+
+pattern GL_QUERY_WAIT = 0x8E13
+
+pattern GL_R11F_G11F_B10F  :: (Eq a, Num a) => a
+
+pattern GL_R11F_G11F_B10F = 0x8C3A
+
+pattern GL_R16  :: (Eq a, Num a) => a
+
+pattern GL_R16 = 0x822A
+
+pattern GL_R16F  :: (Eq a, Num a) => a
+
+pattern GL_R16F = 0x822D
+
+pattern GL_R16I  :: (Eq a, Num a) => a
+
+pattern GL_R16I = 0x8233
+
+pattern GL_R16UI  :: (Eq a, Num a) => a
+
+pattern GL_R16UI = 0x8234
+
+pattern GL_R16_SNORM  :: (Eq a, Num a) => a
+
+pattern GL_R16_SNORM = 0x8F98
+
+pattern GL_R32F  :: (Eq a, Num a) => a
+
+pattern GL_R32F = 0x822E
+
+pattern GL_R32I  :: (Eq a, Num a) => a
+
+pattern GL_R32I = 0x8235
+
+pattern GL_R32UI  :: (Eq a, Num a) => a
+
+pattern GL_R32UI = 0x8236
+
+pattern GL_R3_G3_B2  :: (Eq a, Num a) => a
+
+pattern GL_R3_G3_B2 = 0x2A10
+
+pattern GL_R8  :: (Eq a, Num a) => a
+
+pattern GL_R8 = 0x8229
+
+pattern GL_R8I  :: (Eq a, Num a) => a
+
+pattern GL_R8I = 0x8231
+
+pattern GL_R8UI  :: (Eq a, Num a) => a
+
+pattern GL_R8UI = 0x8232
+
+pattern GL_R8_SNORM  :: (Eq a, Num a) => a
+
+pattern GL_R8_SNORM = 0x8F94
+
+pattern GL_RASTERIZER_DISCARD  :: (Eq a, Num a) => a
+
+pattern GL_RASTERIZER_DISCARD = 0x8C89
+
+pattern GL_READ_BUFFER  :: (Eq a, Num a) => a
+
+pattern GL_READ_BUFFER = 0x0C02
+
+pattern GL_READ_FRAMEBUFFER  :: (Eq a, Num a) => a
+
+pattern GL_READ_FRAMEBUFFER = 0x8CA8
+
+pattern GL_READ_FRAMEBUFFER_BINDING  :: (Eq a, Num a) => a
+
+pattern GL_READ_FRAMEBUFFER_BINDING = 0x8CAA
+
+pattern GL_READ_ONLY  :: (Eq a, Num a) => a
+
+pattern GL_READ_ONLY = 0x88B8
+
+pattern GL_READ_WRITE  :: (Eq a, Num a) => a
+
+pattern GL_READ_WRITE = 0x88BA
+
+pattern GL_RED  :: (Eq a, Num a) => a
+
+pattern GL_RED = 0x1903
+
+pattern GL_RED_INTEGER  :: (Eq a, Num a) => a
+
+pattern GL_RED_INTEGER = 0x8D94
+
+pattern GL_RENDERBUFFER  :: (Eq a, Num a) => a
+
+pattern GL_RENDERBUFFER = 0x8D41
+
+pattern GL_RENDERBUFFER_ALPHA_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_RENDERBUFFER_ALPHA_SIZE = 0x8D53
+
+pattern GL_RENDERBUFFER_BINDING  :: (Eq a, Num a) => a
+
+pattern GL_RENDERBUFFER_BINDING = 0x8CA7
+
+pattern GL_RENDERBUFFER_BLUE_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_RENDERBUFFER_BLUE_SIZE = 0x8D52
+
+pattern GL_RENDERBUFFER_DEPTH_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_RENDERBUFFER_DEPTH_SIZE = 0x8D54
+
+pattern GL_RENDERBUFFER_GREEN_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_RENDERBUFFER_GREEN_SIZE = 0x8D51
+
+pattern GL_RENDERBUFFER_HEIGHT  :: (Eq a, Num a) => a
+
+pattern GL_RENDERBUFFER_HEIGHT = 0x8D43
+
+pattern GL_RENDERBUFFER_INTERNAL_FORMAT  :: (Eq a, Num a) => a
+
+pattern GL_RENDERBUFFER_INTERNAL_FORMAT = 0x8D44
+
+pattern GL_RENDERBUFFER_RED_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_RENDERBUFFER_RED_SIZE = 0x8D50
+
+pattern GL_RENDERBUFFER_SAMPLES  :: (Eq a, Num a) => a
+
+pattern GL_RENDERBUFFER_SAMPLES = 0x8CAB
+
+pattern GL_RENDERBUFFER_STENCIL_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_RENDERBUFFER_STENCIL_SIZE = 0x8D55
+
+pattern GL_RENDERBUFFER_WIDTH  :: (Eq a, Num a) => a
+
+pattern GL_RENDERBUFFER_WIDTH = 0x8D42
+
+pattern GL_RENDERER  :: (Eq a, Num a) => a
+
+pattern GL_RENDERER = 0x1F01
+
+pattern GL_REPEAT  :: (Eq a, Num a) => a
+
+pattern GL_REPEAT = 0x2901
+
+pattern GL_REPLACE  :: (Eq a, Num a) => a
+
+pattern GL_REPLACE = 0x1E01
+
+pattern GL_RG  :: (Eq a, Num a) => a
+
+pattern GL_RG = 0x8227
+
+pattern GL_RG16  :: (Eq a, Num a) => a
+
+pattern GL_RG16 = 0x822C
+
+pattern GL_RG16F  :: (Eq a, Num a) => a
+
+pattern GL_RG16F = 0x822F
+
+pattern GL_RG16I  :: (Eq a, Num a) => a
+
+pattern GL_RG16I = 0x8239
+
+pattern GL_RG16UI  :: (Eq a, Num a) => a
+
+pattern GL_RG16UI = 0x823A
+
+pattern GL_RG16_SNORM  :: (Eq a, Num a) => a
+
+pattern GL_RG16_SNORM = 0x8F99
+
+pattern GL_RG32F  :: (Eq a, Num a) => a
+
+pattern GL_RG32F = 0x8230
+
+pattern GL_RG32I  :: (Eq a, Num a) => a
+
+pattern GL_RG32I = 0x823B
+
+pattern GL_RG32UI  :: (Eq a, Num a) => a
+
+pattern GL_RG32UI = 0x823C
+
+pattern GL_RG8  :: (Eq a, Num a) => a
+
+pattern GL_RG8 = 0x822B
+
+pattern GL_RG8I  :: (Eq a, Num a) => a
+
+pattern GL_RG8I = 0x8237
+
+pattern GL_RG8UI  :: (Eq a, Num a) => a
+
+pattern GL_RG8UI = 0x8238
+
+pattern GL_RG8_SNORM  :: (Eq a, Num a) => a
+
+pattern GL_RG8_SNORM = 0x8F95
+
+pattern GL_RGB  :: (Eq a, Num a) => a
+
+pattern GL_RGB = 0x1907
+
+pattern GL_RGB10  :: (Eq a, Num a) => a
+
+pattern GL_RGB10 = 0x8052
+
+pattern GL_RGB10_A2  :: (Eq a, Num a) => a
+
+pattern GL_RGB10_A2 = 0x8059
+
+pattern GL_RGB12  :: (Eq a, Num a) => a
+
+pattern GL_RGB12 = 0x8053
+
+pattern GL_RGB16  :: (Eq a, Num a) => a
+
+pattern GL_RGB16 = 0x8054
+
+pattern GL_RGB16F  :: (Eq a, Num a) => a
+
+pattern GL_RGB16F = 0x881B
+
+pattern GL_RGB16I  :: (Eq a, Num a) => a
+
+pattern GL_RGB16I = 0x8D89
+
+pattern GL_RGB16UI  :: (Eq a, Num a) => a
+
+pattern GL_RGB16UI = 0x8D77
+
+pattern GL_RGB16_SNORM  :: (Eq a, Num a) => a
+
+pattern GL_RGB16_SNORM = 0x8F9A
+
+pattern GL_RGB32F  :: (Eq a, Num a) => a
+
+pattern GL_RGB32F = 0x8815
+
+pattern GL_RGB32I  :: (Eq a, Num a) => a
+
+pattern GL_RGB32I = 0x8D83
+
+pattern GL_RGB32UI  :: (Eq a, Num a) => a
+
+pattern GL_RGB32UI = 0x8D71
+
+pattern GL_RGB4  :: (Eq a, Num a) => a
+
+pattern GL_RGB4 = 0x804F
+
+pattern GL_RGB5  :: (Eq a, Num a) => a
+
+pattern GL_RGB5 = 0x8050
+
+pattern GL_RGB5_A1  :: (Eq a, Num a) => a
+
+pattern GL_RGB5_A1 = 0x8057
+
+pattern GL_RGB8  :: (Eq a, Num a) => a
+
+pattern GL_RGB8 = 0x8051
+
+pattern GL_RGB8I  :: (Eq a, Num a) => a
+
+pattern GL_RGB8I = 0x8D8F
+
+pattern GL_RGB8UI  :: (Eq a, Num a) => a
+
+pattern GL_RGB8UI = 0x8D7D
+
+pattern GL_RGB8_SNORM  :: (Eq a, Num a) => a
+
+pattern GL_RGB8_SNORM = 0x8F96
+
+pattern GL_RGB9_E5  :: (Eq a, Num a) => a
+
+pattern GL_RGB9_E5 = 0x8C3D
+
+pattern GL_RGBA  :: (Eq a, Num a) => a
+
+pattern GL_RGBA = 0x1908
+
+pattern GL_RGBA12  :: (Eq a, Num a) => a
+
+pattern GL_RGBA12 = 0x805A
+
+pattern GL_RGBA16  :: (Eq a, Num a) => a
+
+pattern GL_RGBA16 = 0x805B
+
+pattern GL_RGBA16F  :: (Eq a, Num a) => a
+
+pattern GL_RGBA16F = 0x881A
+
+pattern GL_RGBA16I  :: (Eq a, Num a) => a
+
+pattern GL_RGBA16I = 0x8D88
+
+pattern GL_RGBA16UI  :: (Eq a, Num a) => a
+
+pattern GL_RGBA16UI = 0x8D76
+
+pattern GL_RGBA16_SNORM  :: (Eq a, Num a) => a
+
+pattern GL_RGBA16_SNORM = 0x8F9B
+
+pattern GL_RGBA2  :: (Eq a, Num a) => a
+
+pattern GL_RGBA2 = 0x8055
+
+pattern GL_RGBA32F  :: (Eq a, Num a) => a
+
+pattern GL_RGBA32F = 0x8814
+
+pattern GL_RGBA32I  :: (Eq a, Num a) => a
+
+pattern GL_RGBA32I = 0x8D82
+
+pattern GL_RGBA32UI  :: (Eq a, Num a) => a
+
+pattern GL_RGBA32UI = 0x8D70
+
+pattern GL_RGBA4  :: (Eq a, Num a) => a
+
+pattern GL_RGBA4 = 0x8056
+
+pattern GL_RGBA8  :: (Eq a, Num a) => a
+
+pattern GL_RGBA8 = 0x8058
+
+pattern GL_RGBA8I  :: (Eq a, Num a) => a
+
+pattern GL_RGBA8I = 0x8D8E
+
+pattern GL_RGBA8UI  :: (Eq a, Num a) => a
+
+pattern GL_RGBA8UI = 0x8D7C
+
+pattern GL_RGBA8_SNORM  :: (Eq a, Num a) => a
+
+pattern GL_RGBA8_SNORM = 0x8F97
+
+pattern GL_RGBA_INTEGER  :: (Eq a, Num a) => a
+
+pattern GL_RGBA_INTEGER = 0x8D99
+
+pattern GL_RGB_INTEGER  :: (Eq a, Num a) => a
+
+pattern GL_RGB_INTEGER = 0x8D98
+
+pattern GL_RG_INTEGER  :: (Eq a, Num a) => a
+
+pattern GL_RG_INTEGER = 0x8228
+
+pattern GL_RIGHT  :: (Eq a, Num a) => a
+
+pattern GL_RIGHT = 0x0407
+
+pattern GL_SAMPLER_1D  :: (Eq a, Num a) => a
+
+pattern GL_SAMPLER_1D = 0x8B5D
+
+pattern GL_SAMPLER_1D_ARRAY  :: (Eq a, Num a) => a
+
+pattern GL_SAMPLER_1D_ARRAY = 0x8DC0
+
+pattern GL_SAMPLER_1D_ARRAY_SHADOW  :: (Eq a, Num a) => a
+
+pattern GL_SAMPLER_1D_ARRAY_SHADOW = 0x8DC3
+
+pattern GL_SAMPLER_1D_SHADOW  :: (Eq a, Num a) => a
+
+pattern GL_SAMPLER_1D_SHADOW = 0x8B61
+
+pattern GL_SAMPLER_2D  :: (Eq a, Num a) => a
+
+pattern GL_SAMPLER_2D = 0x8B5E
+
+pattern GL_SAMPLER_2D_ARRAY  :: (Eq a, Num a) => a
+
+pattern GL_SAMPLER_2D_ARRAY = 0x8DC1
+
+pattern GL_SAMPLER_2D_ARRAY_SHADOW  :: (Eq a, Num a) => a
+
+pattern GL_SAMPLER_2D_ARRAY_SHADOW = 0x8DC4
+
+pattern GL_SAMPLER_2D_MULTISAMPLE  :: (Eq a, Num a) => a
+
+pattern GL_SAMPLER_2D_MULTISAMPLE = 0x9108
+
+pattern GL_SAMPLER_2D_MULTISAMPLE_ARRAY  :: (Eq a, Num a) => a
+
+pattern GL_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910B
+
+pattern GL_SAMPLER_2D_RECT  :: (Eq a, Num a) => a
+
+pattern GL_SAMPLER_2D_RECT = 0x8B63
+
+pattern GL_SAMPLER_2D_RECT_SHADOW  :: (Eq a, Num a) => a
+
+pattern GL_SAMPLER_2D_RECT_SHADOW = 0x8B64
+
+pattern GL_SAMPLER_2D_SHADOW  :: (Eq a, Num a) => a
+
+pattern GL_SAMPLER_2D_SHADOW = 0x8B62
+
+pattern GL_SAMPLER_3D  :: (Eq a, Num a) => a
+
+pattern GL_SAMPLER_3D = 0x8B5F
+
+pattern GL_SAMPLER_BUFFER  :: (Eq a, Num a) => a
+
+pattern GL_SAMPLER_BUFFER = 0x8DC2
+
+pattern GL_SAMPLER_CUBE  :: (Eq a, Num a) => a
+
+pattern GL_SAMPLER_CUBE = 0x8B60
+
+pattern GL_SAMPLER_CUBE_SHADOW  :: (Eq a, Num a) => a
+
+pattern GL_SAMPLER_CUBE_SHADOW = 0x8DC5
+
+pattern GL_SAMPLES  :: (Eq a, Num a) => a
+
+pattern GL_SAMPLES = 0x80A9
+
+pattern GL_SAMPLES_PASSED  :: (Eq a, Num a) => a
+
+pattern GL_SAMPLES_PASSED = 0x8914
+
+pattern GL_SAMPLE_ALPHA_TO_COVERAGE  :: (Eq a, Num a) => a
+
+pattern GL_SAMPLE_ALPHA_TO_COVERAGE = 0x809E
+
+pattern GL_SAMPLE_ALPHA_TO_ONE  :: (Eq a, Num a) => a
+
+pattern GL_SAMPLE_ALPHA_TO_ONE = 0x809F
+
+pattern GL_SAMPLE_BUFFERS  :: (Eq a, Num a) => a
+
+pattern GL_SAMPLE_BUFFERS = 0x80A8
+
+pattern GL_SAMPLE_COVERAGE  :: (Eq a, Num a) => a
+
+pattern GL_SAMPLE_COVERAGE = 0x80A0
+
+pattern GL_SAMPLE_COVERAGE_INVERT  :: (Eq a, Num a) => a
+
+pattern GL_SAMPLE_COVERAGE_INVERT = 0x80AB
+
+pattern GL_SAMPLE_COVERAGE_VALUE  :: (Eq a, Num a) => a
+
+pattern GL_SAMPLE_COVERAGE_VALUE = 0x80AA
+
+pattern GL_SAMPLE_MASK  :: (Eq a, Num a) => a
+
+pattern GL_SAMPLE_MASK = 0x8E51
+
+pattern GL_SAMPLE_MASK_VALUE  :: (Eq a, Num a) => a
+
+pattern GL_SAMPLE_MASK_VALUE = 0x8E52
+
+pattern GL_SAMPLE_POSITION  :: (Eq a, Num a) => a
+
+pattern GL_SAMPLE_POSITION = 0x8E50
+
+pattern GL_SCISSOR_BOX  :: (Eq a, Num a) => a
+
+pattern GL_SCISSOR_BOX = 0x0C10
+
+pattern GL_SCISSOR_TEST  :: (Eq a, Num a) => a
+
+pattern GL_SCISSOR_TEST = 0x0C11
+
+pattern GL_SEPARATE_ATTRIBS  :: (Eq a, Num a) => a
+
+pattern GL_SEPARATE_ATTRIBS = 0x8C8D
+
+pattern GL_SET  :: (Eq a, Num a) => a
+
+pattern GL_SET = 0x150F
+
+pattern GL_SHADER_SOURCE_LENGTH  :: (Eq a, Num a) => a
+
+pattern GL_SHADER_SOURCE_LENGTH = 0x8B88
+
+pattern GL_SHADER_TYPE  :: (Eq a, Num a) => a
+
+pattern GL_SHADER_TYPE = 0x8B4F
+
+pattern GL_SHADING_LANGUAGE_VERSION  :: (Eq a, Num a) => a
+
+pattern GL_SHADING_LANGUAGE_VERSION = 0x8B8C
+
+pattern GL_SHORT  :: (Eq a, Num a) => a
+
+pattern GL_SHORT = 0x1402
+
+pattern GL_SIGNALED  :: (Eq a, Num a) => a
+
+pattern GL_SIGNALED = 0x9119
+
+pattern GL_SIGNED_NORMALIZED  :: (Eq a, Num a) => a
+
+pattern GL_SIGNED_NORMALIZED = 0x8F9C
+
+pattern GL_SMOOTH_LINE_WIDTH_GRANULARITY  :: (Eq a, Num a) => a
+
+pattern GL_SMOOTH_LINE_WIDTH_GRANULARITY = 0x0B23
+
+pattern GL_SMOOTH_LINE_WIDTH_RANGE  :: (Eq a, Num a) => a
+
+pattern GL_SMOOTH_LINE_WIDTH_RANGE = 0x0B22
+
+pattern GL_SMOOTH_POINT_SIZE_GRANULARITY  :: (Eq a, Num a) => a
+
+pattern GL_SMOOTH_POINT_SIZE_GRANULARITY = 0x0B13
+
+pattern GL_SMOOTH_POINT_SIZE_RANGE  :: (Eq a, Num a) => a
+
+pattern GL_SMOOTH_POINT_SIZE_RANGE = 0x0B12
+
+pattern GL_SRC1_ALPHA  :: (Eq a, Num a) => a
+
+pattern GL_SRC1_ALPHA = 0x8589
+
+pattern GL_SRC_ALPHA  :: (Eq a, Num a) => a
+
+pattern GL_SRC_ALPHA = 0x0302
+
+pattern GL_SRC_ALPHA_SATURATE  :: (Eq a, Num a) => a
+
+pattern GL_SRC_ALPHA_SATURATE = 0x0308
+
+pattern GL_SRC_COLOR  :: (Eq a, Num a) => a
+
+pattern GL_SRC_COLOR = 0x0300
+
+pattern GL_SRGB  :: (Eq a, Num a) => a
+
+pattern GL_SRGB = 0x8C40
+
+pattern GL_SRGB8  :: (Eq a, Num a) => a
+
+pattern GL_SRGB8 = 0x8C41
+
+pattern GL_SRGB8_ALPHA8  :: (Eq a, Num a) => a
+
+pattern GL_SRGB8_ALPHA8 = 0x8C43
+
+pattern GL_SRGB_ALPHA  :: (Eq a, Num a) => a
+
+pattern GL_SRGB_ALPHA = 0x8C42
+
+pattern GL_STATIC_COPY  :: (Eq a, Num a) => a
+
+pattern GL_STATIC_COPY = 0x88E6
+
+pattern GL_STATIC_DRAW  :: (Eq a, Num a) => a
+
+pattern GL_STATIC_DRAW = 0x88E4
+
+pattern GL_STATIC_READ  :: (Eq a, Num a) => a
+
+pattern GL_STATIC_READ = 0x88E5
+
+pattern GL_STENCIL  :: (Eq a, Num a) => a
+
+pattern GL_STENCIL = 0x1802
+
+pattern GL_STENCIL_ATTACHMENT  :: (Eq a, Num a) => a
+
+pattern GL_STENCIL_ATTACHMENT = 0x8D20
+
+pattern GL_STENCIL_BACK_FAIL  :: (Eq a, Num a) => a
+
+pattern GL_STENCIL_BACK_FAIL = 0x8801
+
+pattern GL_STENCIL_BACK_FUNC  :: (Eq a, Num a) => a
+
+pattern GL_STENCIL_BACK_FUNC = 0x8800
+
+pattern GL_STENCIL_BACK_PASS_DEPTH_FAIL  :: (Eq a, Num a) => a
+
+pattern GL_STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802
+
+pattern GL_STENCIL_BACK_PASS_DEPTH_PASS  :: (Eq a, Num a) => a
+
+pattern GL_STENCIL_BACK_PASS_DEPTH_PASS = 0x8803
+
+pattern GL_STENCIL_BACK_REF  :: (Eq a, Num a) => a
+
+pattern GL_STENCIL_BACK_REF = 0x8CA3
+
+pattern GL_STENCIL_BACK_VALUE_MASK  :: (Eq a, Num a) => a
+
+pattern GL_STENCIL_BACK_VALUE_MASK = 0x8CA4
+
+pattern GL_STENCIL_BACK_WRITEMASK  :: (Eq a, Num a) => a
+
+pattern GL_STENCIL_BACK_WRITEMASK = 0x8CA5
+
+pattern GL_STENCIL_BUFFER_BIT  :: (Eq a, Num a) => a
+
+pattern GL_STENCIL_BUFFER_BIT = 0x00000400
+
+pattern GL_STENCIL_CLEAR_VALUE  :: (Eq a, Num a) => a
+
+pattern GL_STENCIL_CLEAR_VALUE = 0x0B91
+
+pattern GL_STENCIL_FAIL  :: (Eq a, Num a) => a
+
+pattern GL_STENCIL_FAIL = 0x0B94
+
+pattern GL_STENCIL_FUNC  :: (Eq a, Num a) => a
+
+pattern GL_STENCIL_FUNC = 0x0B92
+
+pattern GL_STENCIL_INDEX  :: (Eq a, Num a) => a
+
+pattern GL_STENCIL_INDEX = 0x1901
+
+pattern GL_STENCIL_INDEX1  :: (Eq a, Num a) => a
+
+pattern GL_STENCIL_INDEX1 = 0x8D46
+
+pattern GL_STENCIL_INDEX16  :: (Eq a, Num a) => a
+
+pattern GL_STENCIL_INDEX16 = 0x8D49
+
+pattern GL_STENCIL_INDEX4  :: (Eq a, Num a) => a
+
+pattern GL_STENCIL_INDEX4 = 0x8D47
+
+pattern GL_STENCIL_INDEX8  :: (Eq a, Num a) => a
+
+pattern GL_STENCIL_INDEX8 = 0x8D48
+
+pattern GL_STENCIL_PASS_DEPTH_FAIL  :: (Eq a, Num a) => a
+
+pattern GL_STENCIL_PASS_DEPTH_FAIL = 0x0B95
+
+pattern GL_STENCIL_PASS_DEPTH_PASS  :: (Eq a, Num a) => a
+
+pattern GL_STENCIL_PASS_DEPTH_PASS = 0x0B96
+
+pattern GL_STENCIL_REF  :: (Eq a, Num a) => a
+
+pattern GL_STENCIL_REF = 0x0B97
+
+pattern GL_STENCIL_TEST  :: (Eq a, Num a) => a
+
+pattern GL_STENCIL_TEST = 0x0B90
+
+pattern GL_STENCIL_VALUE_MASK  :: (Eq a, Num a) => a
+
+pattern GL_STENCIL_VALUE_MASK = 0x0B93
+
+pattern GL_STENCIL_WRITEMASK  :: (Eq a, Num a) => a
+
+pattern GL_STENCIL_WRITEMASK = 0x0B98
+
+pattern GL_STEREO  :: (Eq a, Num a) => a
+
+pattern GL_STEREO = 0x0C33
+
+pattern GL_STREAM_COPY  :: (Eq a, Num a) => a
+
+pattern GL_STREAM_COPY = 0x88E2
+
+pattern GL_STREAM_DRAW  :: (Eq a, Num a) => a
+
+pattern GL_STREAM_DRAW = 0x88E0
+
+pattern GL_STREAM_READ  :: (Eq a, Num a) => a
+
+pattern GL_STREAM_READ = 0x88E1
+
+pattern GL_SUBPIXEL_BITS  :: (Eq a, Num a) => a
+
+pattern GL_SUBPIXEL_BITS = 0x0D50
+
+pattern GL_SYNC_CONDITION  :: (Eq a, Num a) => a
+
+pattern GL_SYNC_CONDITION = 0x9113
+
+pattern GL_SYNC_FENCE  :: (Eq a, Num a) => a
+
+pattern GL_SYNC_FENCE = 0x9116
+
+pattern GL_SYNC_FLAGS  :: (Eq a, Num a) => a
+
+pattern GL_SYNC_FLAGS = 0x9115
+
+pattern GL_SYNC_FLUSH_COMMANDS_BIT  :: (Eq a, Num a) => a
+
+pattern GL_SYNC_FLUSH_COMMANDS_BIT = 0x00000001
+
+pattern GL_SYNC_GPU_COMMANDS_COMPLETE  :: (Eq a, Num a) => a
+
+pattern GL_SYNC_GPU_COMMANDS_COMPLETE = 0x9117
+
+pattern GL_SYNC_STATUS  :: (Eq a, Num a) => a
+
+pattern GL_SYNC_STATUS = 0x9114
+
+pattern GL_TEXTURE  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE = 0x1702
+
+pattern GL_TEXTURE0  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE0 = 0x84C0
+
+pattern GL_TEXTURE1  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE1 = 0x84C1
+
+pattern GL_TEXTURE10  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE10 = 0x84CA
+
+pattern GL_TEXTURE11  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE11 = 0x84CB
+
+pattern GL_TEXTURE12  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE12 = 0x84CC
+
+pattern GL_TEXTURE13  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE13 = 0x84CD
+
+pattern GL_TEXTURE14  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE14 = 0x84CE
+
+pattern GL_TEXTURE15  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE15 = 0x84CF
+
+pattern GL_TEXTURE16  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE16 = 0x84D0
+
+pattern GL_TEXTURE17  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE17 = 0x84D1
+
+pattern GL_TEXTURE18  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE18 = 0x84D2
+
+pattern GL_TEXTURE19  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE19 = 0x84D3
+
+pattern GL_TEXTURE2  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE2 = 0x84C2
+
+pattern GL_TEXTURE20  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE20 = 0x84D4
+
+pattern GL_TEXTURE21  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE21 = 0x84D5
+
+pattern GL_TEXTURE22  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE22 = 0x84D6
+
+pattern GL_TEXTURE23  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE23 = 0x84D7
+
+pattern GL_TEXTURE24  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE24 = 0x84D8
+
+pattern GL_TEXTURE25  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE25 = 0x84D9
+
+pattern GL_TEXTURE26  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE26 = 0x84DA
+
+pattern GL_TEXTURE27  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE27 = 0x84DB
+
+pattern GL_TEXTURE28  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE28 = 0x84DC
+
+pattern GL_TEXTURE29  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE29 = 0x84DD
+
+pattern GL_TEXTURE3  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE3 = 0x84C3
+
+pattern GL_TEXTURE30  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE30 = 0x84DE
+
+pattern GL_TEXTURE31  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE31 = 0x84DF
+
+pattern GL_TEXTURE4  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE4 = 0x84C4
+
+pattern GL_TEXTURE5  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE5 = 0x84C5
+
+pattern GL_TEXTURE6  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE6 = 0x84C6
+
+pattern GL_TEXTURE7  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE7 = 0x84C7
+
+pattern GL_TEXTURE8  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE8 = 0x84C8
+
+pattern GL_TEXTURE9  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE9 = 0x84C9
+
+pattern GL_TEXTURE_1D  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_1D = 0x0DE0
+
+pattern GL_TEXTURE_1D_ARRAY  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_1D_ARRAY = 0x8C18
+
+pattern GL_TEXTURE_2D  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_2D = 0x0DE1
+
+pattern GL_TEXTURE_2D_ARRAY  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_2D_ARRAY = 0x8C1A
+
+pattern GL_TEXTURE_2D_MULTISAMPLE  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_2D_MULTISAMPLE = 0x9100
+
+pattern GL_TEXTURE_2D_MULTISAMPLE_ARRAY  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9102
+
+pattern GL_TEXTURE_3D  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_3D = 0x806F
+
+pattern GL_TEXTURE_ALPHA_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_ALPHA_SIZE = 0x805F
+
+pattern GL_TEXTURE_ALPHA_TYPE  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_ALPHA_TYPE = 0x8C13
+
+pattern GL_TEXTURE_BASE_LEVEL  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_BASE_LEVEL = 0x813C
+
+pattern GL_TEXTURE_BINDING_1D  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_BINDING_1D = 0x8068
+
+pattern GL_TEXTURE_BINDING_1D_ARRAY  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_BINDING_1D_ARRAY = 0x8C1C
+
+pattern GL_TEXTURE_BINDING_2D  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_BINDING_2D = 0x8069
+
+pattern GL_TEXTURE_BINDING_2D_ARRAY  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_BINDING_2D_ARRAY = 0x8C1D
+
+pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE = 0x9104
+
+pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY = 0x9105
+
+pattern GL_TEXTURE_BINDING_3D  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_BINDING_3D = 0x806A
+
+pattern GL_TEXTURE_BINDING_BUFFER  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_BINDING_BUFFER = 0x8C2C
+
+pattern GL_TEXTURE_BINDING_CUBE_MAP  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_BINDING_CUBE_MAP = 0x8514
+
+pattern GL_TEXTURE_BINDING_RECTANGLE  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_BINDING_RECTANGLE = 0x84F6
+
+pattern GL_TEXTURE_BLUE_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_BLUE_SIZE = 0x805E
+
+pattern GL_TEXTURE_BLUE_TYPE  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_BLUE_TYPE = 0x8C12
+
+pattern GL_TEXTURE_BORDER_COLOR  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_BORDER_COLOR = 0x1004
+
+pattern GL_TEXTURE_BUFFER  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_BUFFER = 0x8C2A
+
+pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING = 0x8C2D
+
+pattern GL_TEXTURE_COMPARE_FUNC  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_COMPARE_FUNC = 0x884D
+
+pattern GL_TEXTURE_COMPARE_MODE  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_COMPARE_MODE = 0x884C
+
+pattern GL_TEXTURE_COMPRESSED  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_COMPRESSED = 0x86A1
+
+pattern GL_TEXTURE_COMPRESSED_IMAGE_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_COMPRESSED_IMAGE_SIZE = 0x86A0
+
+pattern GL_TEXTURE_COMPRESSION_HINT  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_COMPRESSION_HINT = 0x84EF
+
+pattern GL_TEXTURE_CUBE_MAP  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_CUBE_MAP = 0x8513
+
+pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516
+
+pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518
+
+pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A
+
+pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515
+
+pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517
+
+pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519
+
+pattern GL_TEXTURE_CUBE_MAP_SEAMLESS  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_CUBE_MAP_SEAMLESS = 0x884F
+
+pattern GL_TEXTURE_DEPTH  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_DEPTH = 0x8071
+
+pattern GL_TEXTURE_DEPTH_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_DEPTH_SIZE = 0x884A
+
+pattern GL_TEXTURE_DEPTH_TYPE  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_DEPTH_TYPE = 0x8C16
+
+pattern GL_TEXTURE_FIXED_SAMPLE_LOCATIONS  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_FIXED_SAMPLE_LOCATIONS = 0x9107
+
+pattern GL_TEXTURE_GREEN_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_GREEN_SIZE = 0x805D
+
+pattern GL_TEXTURE_GREEN_TYPE  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_GREEN_TYPE = 0x8C11
+
+pattern GL_TEXTURE_HEIGHT  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_HEIGHT = 0x1001
+
+pattern GL_TEXTURE_INTERNAL_FORMAT  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_INTERNAL_FORMAT = 0x1003
+
+pattern GL_TEXTURE_LOD_BIAS  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_LOD_BIAS = 0x8501
+
+pattern GL_TEXTURE_MAG_FILTER  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_MAG_FILTER = 0x2800
+
+pattern GL_TEXTURE_MAX_LEVEL  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_MAX_LEVEL = 0x813D
+
+pattern GL_TEXTURE_MAX_LOD  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_MAX_LOD = 0x813B
+
+pattern GL_TEXTURE_MIN_FILTER  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_MIN_FILTER = 0x2801
+
+pattern GL_TEXTURE_MIN_LOD  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_MIN_LOD = 0x813A
+
+pattern GL_TEXTURE_RECTANGLE  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_RECTANGLE = 0x84F5
+
+pattern GL_TEXTURE_RED_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_RED_SIZE = 0x805C
+
+pattern GL_TEXTURE_RED_TYPE  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_RED_TYPE = 0x8C10
+
+pattern GL_TEXTURE_SAMPLES  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_SAMPLES = 0x9106
+
+pattern GL_TEXTURE_SHARED_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_SHARED_SIZE = 0x8C3F
+
+pattern GL_TEXTURE_STENCIL_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_STENCIL_SIZE = 0x88F1
+
+pattern GL_TEXTURE_WIDTH  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_WIDTH = 0x1000
+
+pattern GL_TEXTURE_WRAP_R  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_WRAP_R = 0x8072
+
+pattern GL_TEXTURE_WRAP_S  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_WRAP_S = 0x2802
+
+pattern GL_TEXTURE_WRAP_T  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_WRAP_T = 0x2803
+
+pattern GL_TIMEOUT_EXPIRED  :: (Eq a, Num a) => a
+
+pattern GL_TIMEOUT_EXPIRED = 0x911B
+
+pattern GL_TIMEOUT_IGNORED  :: (Eq a, Num a) => a
+
+pattern GL_TIMEOUT_IGNORED = 0xFFFFFFFFFFFFFFFF
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER  :: (Eq a, Num a) => a
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER = 0x8C8E
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_BINDING  :: (Eq a, Num a) => a
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_BINDING = 0x8C8F
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_MODE  :: (Eq a, Num a) => a
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_MODE = 0x8C7F
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_SIZE = 0x8C85
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_START  :: (Eq a, Num a) => a
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_START = 0x8C84
+
+pattern GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN  :: (Eq a, Num a) => a
+
+pattern GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = 0x8C88
+
+pattern GL_TRANSFORM_FEEDBACK_VARYINGS  :: (Eq a, Num a) => a
+
+pattern GL_TRANSFORM_FEEDBACK_VARYINGS = 0x8C83
+
+pattern GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH  :: (Eq a, Num a) => a
+
+pattern GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH = 0x8C76
+
+pattern GL_TRIANGLES  :: (Eq a, Num a) => a
+
+pattern GL_TRIANGLES = 0x0004
+
+pattern GL_TRIANGLES_ADJACENCY  :: (Eq a, Num a) => a
+
+pattern GL_TRIANGLES_ADJACENCY = 0x000C
+
+pattern GL_TRIANGLE_FAN  :: (Eq a, Num a) => a
+
+pattern GL_TRIANGLE_FAN = 0x0006
+
+pattern GL_TRIANGLE_STRIP  :: (Eq a, Num a) => a
+
+pattern GL_TRIANGLE_STRIP = 0x0005
+
+pattern GL_TRIANGLE_STRIP_ADJACENCY  :: (Eq a, Num a) => a
+
+pattern GL_TRIANGLE_STRIP_ADJACENCY = 0x000D
+
+pattern GL_TRUE  :: (Eq a, Num a) => a
+
+pattern GL_TRUE = 1
+
+pattern GL_UNIFORM_ARRAY_STRIDE  :: (Eq a, Num a) => a
+
+pattern GL_UNIFORM_ARRAY_STRIDE = 0x8A3C
+
+pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS  :: (Eq a, Num a) => a
+
+pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS = 0x8A42
+
+pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES  :: (Eq a, Num a) => a
+
+pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43
+
+pattern GL_UNIFORM_BLOCK_BINDING  :: (Eq a, Num a) => a
+
+pattern GL_UNIFORM_BLOCK_BINDING = 0x8A3F
+
+pattern GL_UNIFORM_BLOCK_DATA_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_UNIFORM_BLOCK_DATA_SIZE = 0x8A40
+
+pattern GL_UNIFORM_BLOCK_INDEX  :: (Eq a, Num a) => a
+
+pattern GL_UNIFORM_BLOCK_INDEX = 0x8A3A
+
+pattern GL_UNIFORM_BLOCK_NAME_LENGTH  :: (Eq a, Num a) => a
+
+pattern GL_UNIFORM_BLOCK_NAME_LENGTH = 0x8A41
+
+pattern GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER  :: (Eq a, Num a) => a
+
+pattern GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46
+
+pattern GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER  :: (Eq a, Num a) => a
+
+pattern GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER = 0x8A45
+
+pattern GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER  :: (Eq a, Num a) => a
+
+pattern GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44
+
+pattern GL_UNIFORM_BUFFER  :: (Eq a, Num a) => a
+
+pattern GL_UNIFORM_BUFFER = 0x8A11
+
+pattern GL_UNIFORM_BUFFER_BINDING  :: (Eq a, Num a) => a
+
+pattern GL_UNIFORM_BUFFER_BINDING = 0x8A28
+
+pattern GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT  :: (Eq a, Num a) => a
+
+pattern GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT = 0x8A34
+
+pattern GL_UNIFORM_BUFFER_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_UNIFORM_BUFFER_SIZE = 0x8A2A
+
+pattern GL_UNIFORM_BUFFER_START  :: (Eq a, Num a) => a
+
+pattern GL_UNIFORM_BUFFER_START = 0x8A29
+
+pattern GL_UNIFORM_IS_ROW_MAJOR  :: (Eq a, Num a) => a
+
+pattern GL_UNIFORM_IS_ROW_MAJOR = 0x8A3E
+
+pattern GL_UNIFORM_MATRIX_STRIDE  :: (Eq a, Num a) => a
+
+pattern GL_UNIFORM_MATRIX_STRIDE = 0x8A3D
+
+pattern GL_UNIFORM_NAME_LENGTH  :: (Eq a, Num a) => a
+
+pattern GL_UNIFORM_NAME_LENGTH = 0x8A39
+
+pattern GL_UNIFORM_OFFSET  :: (Eq a, Num a) => a
+
+pattern GL_UNIFORM_OFFSET = 0x8A3B
+
+pattern GL_UNIFORM_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_UNIFORM_SIZE = 0x8A38
+
+pattern GL_UNIFORM_TYPE  :: (Eq a, Num a) => a
+
+pattern GL_UNIFORM_TYPE = 0x8A37
+
+pattern GL_UNPACK_ALIGNMENT  :: (Eq a, Num a) => a
+
+pattern GL_UNPACK_ALIGNMENT = 0x0CF5
+
+pattern GL_UNPACK_IMAGE_HEIGHT  :: (Eq a, Num a) => a
+
+pattern GL_UNPACK_IMAGE_HEIGHT = 0x806E
+
+pattern GL_UNPACK_LSB_FIRST  :: (Eq a, Num a) => a
+
+pattern GL_UNPACK_LSB_FIRST = 0x0CF1
+
+pattern GL_UNPACK_ROW_LENGTH  :: (Eq a, Num a) => a
+
+pattern GL_UNPACK_ROW_LENGTH = 0x0CF2
+
+pattern GL_UNPACK_SKIP_IMAGES  :: (Eq a, Num a) => a
+
+pattern GL_UNPACK_SKIP_IMAGES = 0x806D
+
+pattern GL_UNPACK_SKIP_PIXELS  :: (Eq a, Num a) => a
+
+pattern GL_UNPACK_SKIP_PIXELS = 0x0CF4
+
+pattern GL_UNPACK_SKIP_ROWS  :: (Eq a, Num a) => a
+
+pattern GL_UNPACK_SKIP_ROWS = 0x0CF3
+
+pattern GL_UNPACK_SWAP_BYTES  :: (Eq a, Num a) => a
+
+pattern GL_UNPACK_SWAP_BYTES = 0x0CF0
+
+pattern GL_UNSIGNALED  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNALED = 0x9118
+
+pattern GL_UNSIGNED_BYTE  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_BYTE = 0x1401
+
+pattern GL_UNSIGNED_BYTE_2_3_3_REV  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_BYTE_2_3_3_REV = 0x8362
+
+pattern GL_UNSIGNED_BYTE_3_3_2  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_BYTE_3_3_2 = 0x8032
+
+pattern GL_UNSIGNED_INT  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_INT = 0x1405
+
+pattern GL_UNSIGNED_INT_10F_11F_11F_REV  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_INT_10F_11F_11F_REV = 0x8C3B
+
+pattern GL_UNSIGNED_INT_10_10_10_2  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_INT_10_10_10_2 = 0x8036
+
+pattern GL_UNSIGNED_INT_24_8  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_INT_24_8 = 0x84FA
+
+pattern GL_UNSIGNED_INT_2_10_10_10_REV  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_INT_2_10_10_10_REV = 0x8368
+
+pattern GL_UNSIGNED_INT_5_9_9_9_REV  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_INT_5_9_9_9_REV = 0x8C3E
+
+pattern GL_UNSIGNED_INT_8_8_8_8  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_INT_8_8_8_8 = 0x8035
+
+pattern GL_UNSIGNED_INT_8_8_8_8_REV  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_INT_8_8_8_8_REV = 0x8367
+
+pattern GL_UNSIGNED_INT_SAMPLER_1D  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_INT_SAMPLER_1D = 0x8DD1
+
+pattern GL_UNSIGNED_INT_SAMPLER_1D_ARRAY  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_INT_SAMPLER_1D_ARRAY = 0x8DD6
+
+pattern GL_UNSIGNED_INT_SAMPLER_2D  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_INT_SAMPLER_2D = 0x8DD2
+
+pattern GL_UNSIGNED_INT_SAMPLER_2D_ARRAY  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_INT_SAMPLER_2D_ARRAY = 0x8DD7
+
+pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE = 0x910A
+
+pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910D
+
+pattern GL_UNSIGNED_INT_SAMPLER_2D_RECT  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_INT_SAMPLER_2D_RECT = 0x8DD5
+
+pattern GL_UNSIGNED_INT_SAMPLER_3D  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_INT_SAMPLER_3D = 0x8DD3
+
+pattern GL_UNSIGNED_INT_SAMPLER_BUFFER  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_INT_SAMPLER_BUFFER = 0x8DD8
+
+pattern GL_UNSIGNED_INT_SAMPLER_CUBE  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_INT_SAMPLER_CUBE = 0x8DD4
+
+pattern GL_UNSIGNED_INT_VEC2  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_INT_VEC2 = 0x8DC6
+
+pattern GL_UNSIGNED_INT_VEC3  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_INT_VEC3 = 0x8DC7
+
+pattern GL_UNSIGNED_INT_VEC4  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_INT_VEC4 = 0x8DC8
+
+pattern GL_UNSIGNED_NORMALIZED  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_NORMALIZED = 0x8C17
+
+pattern GL_UNSIGNED_SHORT  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_SHORT = 0x1403
+
+pattern GL_UNSIGNED_SHORT_1_5_5_5_REV  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_SHORT_1_5_5_5_REV = 0x8366
+
+pattern GL_UNSIGNED_SHORT_4_4_4_4  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_SHORT_4_4_4_4 = 0x8033
+
+pattern GL_UNSIGNED_SHORT_4_4_4_4_REV  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_SHORT_4_4_4_4_REV = 0x8365
+
+pattern GL_UNSIGNED_SHORT_5_5_5_1  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_SHORT_5_5_5_1 = 0x8034
+
+pattern GL_UNSIGNED_SHORT_5_6_5  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_SHORT_5_6_5 = 0x8363
+
+pattern GL_UNSIGNED_SHORT_5_6_5_REV  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_SHORT_5_6_5_REV = 0x8364
+
+pattern GL_UPPER_LEFT  :: (Eq a, Num a) => a
+
+pattern GL_UPPER_LEFT = 0x8CA2
+
+pattern GL_VALIDATE_STATUS  :: (Eq a, Num a) => a
+
+pattern GL_VALIDATE_STATUS = 0x8B83
+
+pattern GL_VENDOR  :: (Eq a, Num a) => a
+
+pattern GL_VENDOR = 0x1F00
+
+pattern GL_VERSION  :: (Eq a, Num a) => a
+
+pattern GL_VERSION = 0x1F02
+
+pattern GL_VERTEX_ARRAY_BINDING  :: (Eq a, Num a) => a
+
+pattern GL_VERTEX_ARRAY_BINDING = 0x85B5
+
+pattern GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING  :: (Eq a, Num a) => a
+
+pattern GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F
+
+pattern GL_VERTEX_ATTRIB_ARRAY_ENABLED  :: (Eq a, Num a) => a
+
+pattern GL_VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622
+
+pattern GL_VERTEX_ATTRIB_ARRAY_INTEGER  :: (Eq a, Num a) => a
+
+pattern GL_VERTEX_ATTRIB_ARRAY_INTEGER = 0x88FD
+
+pattern GL_VERTEX_ATTRIB_ARRAY_NORMALIZED  :: (Eq a, Num a) => a
+
+pattern GL_VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A
+
+pattern GL_VERTEX_ATTRIB_ARRAY_POINTER  :: (Eq a, Num a) => a
+
+pattern GL_VERTEX_ATTRIB_ARRAY_POINTER = 0x8645
+
+pattern GL_VERTEX_ATTRIB_ARRAY_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_VERTEX_ATTRIB_ARRAY_SIZE = 0x8623
+
+pattern GL_VERTEX_ATTRIB_ARRAY_STRIDE  :: (Eq a, Num a) => a
+
+pattern GL_VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624
+
+pattern GL_VERTEX_ATTRIB_ARRAY_TYPE  :: (Eq a, Num a) => a
+
+pattern GL_VERTEX_ATTRIB_ARRAY_TYPE = 0x8625
+
+pattern GL_VERTEX_PROGRAM_POINT_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_VERTEX_PROGRAM_POINT_SIZE = 0x8642
+
+pattern GL_VERTEX_SHADER  :: (Eq a, Num a) => a
+
+pattern GL_VERTEX_SHADER = 0x8B31
+
+pattern GL_VIEWPORT  :: (Eq a, Num a) => a
+
+pattern GL_VIEWPORT = 0x0BA2
+
+pattern GL_WAIT_FAILED  :: (Eq a, Num a) => a
+
+pattern GL_WAIT_FAILED = 0x911D
+
+pattern GL_WRITE_ONLY  :: (Eq a, Num a) => a
+
+pattern GL_WRITE_ONLY = 0x88B9
+
+pattern GL_XOR  :: (Eq a, Num a) => a
+
+pattern GL_XOR = 0x1506
+
+pattern GL_ZERO  :: (Eq a, Num a) => a
+
+pattern GL_ZERO = 0
+
+-- | Usage: @'glBindFragDataLocationIndexed' program colorNumber index name@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindFragDataLocationIndexed.xhtml>
+
+
+glBindFragDataLocationIndexed :: MonadIO m => GLuint -> GLuint -> GLuint -> Ptr GLchar -> m ()
+glBindFragDataLocationIndexed = ffiuintuintuintPtrcharIOV glBindFragDataLocationIndexedFunPtr
+
+glBindFragDataLocationIndexedFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLchar -> IO ())
+glBindFragDataLocationIndexedFunPtr = unsafePerformIO (getProcAddress "glBindFragDataLocationIndexed")
+
+{-# NOINLINE glBindFragDataLocationIndexedFunPtr #-}
+
+-- | Usage: @'glBindSampler' unit sampler@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindSampler.xhtml>
+
+
+glBindSampler :: MonadIO m => GLuint -> GLuint -> m ()
+glBindSampler = ffiuintuintIOV glBindSamplerFunPtr
+
+glBindSamplerFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
+glBindSamplerFunPtr = unsafePerformIO (getProcAddress "glBindSampler")
+
+{-# NOINLINE glBindSamplerFunPtr #-}
+
+-- | Usage: @'glDeleteSamplers' count samplers@
+--
+-- The length of @samplers@ should be @count@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDeleteSamplers.xhtml>
+
+
+glDeleteSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteSamplers = ffisizeiPtruintIOV glDeleteSamplersFunPtr
+
+glDeleteSamplersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteSamplersFunPtr = unsafePerformIO (getProcAddress "glDeleteSamplers")
+
+{-# NOINLINE glDeleteSamplersFunPtr #-}
+
+-- | Usage: @'glGenSamplers' count samplers@
+--
+-- The length of @samplers@ should be @count@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGenSamplers.xhtml>
+
+
+glGenSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glGenSamplers = ffisizeiPtruintIOV glGenSamplersFunPtr
+
+glGenSamplersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glGenSamplersFunPtr = unsafePerformIO (getProcAddress "glGenSamplers")
+
+{-# NOINLINE glGenSamplersFunPtr #-}
+
+-- | Usage: @'glGetFragDataIndex' program name@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetFragDataIndex.xhtml>
+
+
+glGetFragDataIndex :: MonadIO m => GLuint -> Ptr GLchar -> m GLint
+glGetFragDataIndex = ffiuintPtrcharIOint glGetFragDataIndexFunPtr
+
+glGetFragDataIndexFunPtr :: FunPtr (GLuint -> Ptr GLchar -> IO GLint)
+glGetFragDataIndexFunPtr = unsafePerformIO (getProcAddress "glGetFragDataIndex")
+
+{-# NOINLINE glGetFragDataIndexFunPtr #-}
+
+-- | Usage: @'glGetQueryObjecti64v' id pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetQueryObjecti64v :: MonadIO m => GLuint -> GLenum -> Ptr GLint64 -> m ()
+glGetQueryObjecti64v = ffiuintenumPtrint64IOV glGetQueryObjecti64vFunPtr
+
+glGetQueryObjecti64vFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint64 -> IO ())
+glGetQueryObjecti64vFunPtr = unsafePerformIO (getProcAddress "glGetQueryObjecti64v")
+
+{-# NOINLINE glGetQueryObjecti64vFunPtr #-}
+
+-- | Usage: @'glGetQueryObjectui64v' id pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetQueryObjectui64v :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64 -> m ()
+glGetQueryObjectui64v = ffiuintenumPtruint64IOV glGetQueryObjectui64vFunPtr
+
+glGetQueryObjectui64vFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint64 -> IO ())
+glGetQueryObjectui64vFunPtr = unsafePerformIO (getProcAddress "glGetQueryObjectui64v")
+
+{-# NOINLINE glGetQueryObjectui64vFunPtr #-}
+
+-- | Usage: @'glGetSamplerParameterIiv' sampler pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetSamplerParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetSamplerParameterIiv = ffiuintenumPtrintIOV glGetSamplerParameterIivFunPtr
+
+glGetSamplerParameterIivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetSamplerParameterIivFunPtr = unsafePerformIO (getProcAddress "glGetSamplerParameterIiv")
+
+{-# NOINLINE glGetSamplerParameterIivFunPtr #-}
+
+-- | Usage: @'glGetSamplerParameterIuiv' sampler pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetSamplerParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
+glGetSamplerParameterIuiv = ffiuintenumPtruintIOV glGetSamplerParameterIuivFunPtr
+
+glGetSamplerParameterIuivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
+glGetSamplerParameterIuivFunPtr = unsafePerformIO (getProcAddress "glGetSamplerParameterIuiv")
+
+{-# NOINLINE glGetSamplerParameterIuivFunPtr #-}
+
+-- | Usage: @'glGetSamplerParameterfv' sampler pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetSamplerParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
+glGetSamplerParameterfv = ffiuintenumPtrfloatIOV glGetSamplerParameterfvFunPtr
+
+glGetSamplerParameterfvFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
+glGetSamplerParameterfvFunPtr = unsafePerformIO (getProcAddress "glGetSamplerParameterfv")
+
+{-# NOINLINE glGetSamplerParameterfvFunPtr #-}
+
+-- | Usage: @'glGetSamplerParameteriv' sampler pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetSamplerParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetSamplerParameteriv = ffiuintenumPtrintIOV glGetSamplerParameterivFunPtr
+
+glGetSamplerParameterivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetSamplerParameterivFunPtr = unsafePerformIO (getProcAddress "glGetSamplerParameteriv")
+
+{-# NOINLINE glGetSamplerParameterivFunPtr #-}
+
+-- | Usage: @'glIsSampler' sampler@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsSampler.xhtml>
+
+
+glIsSampler :: MonadIO m => GLuint -> m GLboolean
+glIsSampler = ffiuintIOboolean glIsSamplerFunPtr
+
+glIsSamplerFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsSamplerFunPtr = unsafePerformIO (getProcAddress "glIsSampler")
+
+{-# NOINLINE glIsSamplerFunPtr #-}
+
+-- | Usage: @'glQueryCounter' id target@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glQueryCounter.xhtml>
+
+
+glQueryCounter :: MonadIO m => GLuint -> GLenum -> m ()
+glQueryCounter = ffiuintenumIOV glQueryCounterFunPtr
+
+glQueryCounterFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
+glQueryCounterFunPtr = unsafePerformIO (getProcAddress "glQueryCounter")
+
+{-# NOINLINE glQueryCounterFunPtr #-}
+
+-- | Usage: @'glSamplerParameterIiv' sampler pname param@
+--
+-- The length of @param@ should be @COMPSIZE(pname)@.
+
+
+glSamplerParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glSamplerParameterIiv = ffiuintenumPtrintIOV glSamplerParameterIivFunPtr
+
+glSamplerParameterIivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glSamplerParameterIivFunPtr = unsafePerformIO (getProcAddress "glSamplerParameterIiv")
+
+{-# NOINLINE glSamplerParameterIivFunPtr #-}
+
+-- | Usage: @'glSamplerParameterIuiv' sampler pname param@
+--
+-- The length of @param@ should be @COMPSIZE(pname)@.
+
+
+glSamplerParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
+glSamplerParameterIuiv = ffiuintenumPtruintIOV glSamplerParameterIuivFunPtr
+
+glSamplerParameterIuivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
+glSamplerParameterIuivFunPtr = unsafePerformIO (getProcAddress "glSamplerParameterIuiv")
+
+{-# NOINLINE glSamplerParameterIuivFunPtr #-}
+
+-- | Usage: @'glSamplerParameterf' sampler pname param@
+
+
+glSamplerParameterf :: MonadIO m => GLuint -> GLenum -> GLfloat -> m ()
+glSamplerParameterf = ffiuintenumfloatIOV glSamplerParameterfFunPtr
+
+glSamplerParameterfFunPtr :: FunPtr (GLuint -> GLenum -> GLfloat -> IO ())
+glSamplerParameterfFunPtr = unsafePerformIO (getProcAddress "glSamplerParameterf")
+
+{-# NOINLINE glSamplerParameterfFunPtr #-}
+
+-- | Usage: @'glSamplerParameterfv' sampler pname param@
+--
+-- The length of @param@ should be @COMPSIZE(pname)@.
+
+
+glSamplerParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
+glSamplerParameterfv = ffiuintenumPtrfloatIOV glSamplerParameterfvFunPtr
+
+glSamplerParameterfvFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
+glSamplerParameterfvFunPtr = unsafePerformIO (getProcAddress "glSamplerParameterfv")
+
+{-# NOINLINE glSamplerParameterfvFunPtr #-}
+
+-- | Usage: @'glSamplerParameteri' sampler pname param@
+
+
+glSamplerParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
+glSamplerParameteri = ffiuintenumintIOV glSamplerParameteriFunPtr
+
+glSamplerParameteriFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> IO ())
+glSamplerParameteriFunPtr = unsafePerformIO (getProcAddress "glSamplerParameteri")
+
+{-# NOINLINE glSamplerParameteriFunPtr #-}
+
+-- | Usage: @'glSamplerParameteriv' sampler pname param@
+--
+-- The length of @param@ should be @COMPSIZE(pname)@.
+
+
+glSamplerParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glSamplerParameteriv = ffiuintenumPtrintIOV glSamplerParameterivFunPtr
+
+glSamplerParameterivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glSamplerParameterivFunPtr = unsafePerformIO (getProcAddress "glSamplerParameteriv")
+
+{-# NOINLINE glSamplerParameterivFunPtr #-}
+
+-- | Usage: @'glVertexAttribDivisor' index divisor@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glVertexAttribDivisor.xhtml>
+
+
+glVertexAttribDivisor :: MonadIO m => GLuint -> GLuint -> m ()
+glVertexAttribDivisor = ffiuintuintIOV glVertexAttribDivisorFunPtr
+
+glVertexAttribDivisorFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
+glVertexAttribDivisorFunPtr = unsafePerformIO (getProcAddress "glVertexAttribDivisor")
+
+{-# NOINLINE glVertexAttribDivisorFunPtr #-}
+
+-- | Usage: @'glVertexAttribP1ui' index type normalized value@
+--
+-- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+
+
+glVertexAttribP1ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
+glVertexAttribP1ui = ffiuintenumbooleanuintIOV glVertexAttribP1uiFunPtr
+
+glVertexAttribP1uiFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> GLuint -> IO ())
+glVertexAttribP1uiFunPtr = unsafePerformIO (getProcAddress "glVertexAttribP1ui")
+
+{-# NOINLINE glVertexAttribP1uiFunPtr #-}
+
+-- | Usage: @'glVertexAttribP1uiv' index type normalized value@
+--
+-- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @1@.
+
+
+glVertexAttribP1uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()
+glVertexAttribP1uiv = ffiuintenumbooleanPtruintIOV glVertexAttribP1uivFunPtr
+
+glVertexAttribP1uivFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> Ptr GLuint -> IO ())
+glVertexAttribP1uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribP1uiv")
+
+{-# NOINLINE glVertexAttribP1uivFunPtr #-}
+
+-- | Usage: @'glVertexAttribP2ui' index type normalized value@
+--
+-- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+
+
+glVertexAttribP2ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
+glVertexAttribP2ui = ffiuintenumbooleanuintIOV glVertexAttribP2uiFunPtr
+
+glVertexAttribP2uiFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> GLuint -> IO ())
+glVertexAttribP2uiFunPtr = unsafePerformIO (getProcAddress "glVertexAttribP2ui")
+
+{-# NOINLINE glVertexAttribP2uiFunPtr #-}
+
+-- | Usage: @'glVertexAttribP2uiv' index type normalized value@
+--
+-- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @1@.
+
+
+glVertexAttribP2uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()
+glVertexAttribP2uiv = ffiuintenumbooleanPtruintIOV glVertexAttribP2uivFunPtr
+
+glVertexAttribP2uivFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> Ptr GLuint -> IO ())
+glVertexAttribP2uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribP2uiv")
+
+{-# NOINLINE glVertexAttribP2uivFunPtr #-}
+
+-- | Usage: @'glVertexAttribP3ui' index type normalized value@
+--
+-- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+
+
+glVertexAttribP3ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
+glVertexAttribP3ui = ffiuintenumbooleanuintIOV glVertexAttribP3uiFunPtr
+
+glVertexAttribP3uiFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> GLuint -> IO ())
+glVertexAttribP3uiFunPtr = unsafePerformIO (getProcAddress "glVertexAttribP3ui")
+
+{-# NOINLINE glVertexAttribP3uiFunPtr #-}
+
+-- | Usage: @'glVertexAttribP3uiv' index type normalized value@
+--
+-- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @1@.
+
+
+glVertexAttribP3uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()
+glVertexAttribP3uiv = ffiuintenumbooleanPtruintIOV glVertexAttribP3uivFunPtr
+
+glVertexAttribP3uivFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> Ptr GLuint -> IO ())
+glVertexAttribP3uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribP3uiv")
+
+{-# NOINLINE glVertexAttribP3uivFunPtr #-}
+
+-- | Usage: @'glVertexAttribP4ui' index type normalized value@
+--
+-- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+
+
+glVertexAttribP4ui :: MonadIO m => GLuint -> GLenum -> GLboolean -> GLuint -> m ()
+glVertexAttribP4ui = ffiuintenumbooleanuintIOV glVertexAttribP4uiFunPtr
+
+glVertexAttribP4uiFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> GLuint -> IO ())
+glVertexAttribP4uiFunPtr = unsafePerformIO (getProcAddress "glVertexAttribP4ui")
+
+{-# NOINLINE glVertexAttribP4uiFunPtr #-}
+
+-- | Usage: @'glVertexAttribP4uiv' index type normalized value@
+--
+-- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @1@.
+
+
+glVertexAttribP4uiv :: MonadIO m => GLuint -> GLenum -> GLboolean -> Ptr GLuint -> m ()
+glVertexAttribP4uiv = ffiuintenumbooleanPtruintIOV glVertexAttribP4uivFunPtr
+
+glVertexAttribP4uivFunPtr :: FunPtr (GLuint -> GLenum -> GLboolean -> Ptr GLuint -> IO ())
+glVertexAttribP4uivFunPtr = unsafePerformIO (getProcAddress "glVertexAttribP4uiv")
+
+{-# NOINLINE glVertexAttribP4uivFunPtr #-}
+
+pattern GL_ANY_SAMPLES_PASSED  :: (Eq a, Num a) => a
+
+pattern GL_ANY_SAMPLES_PASSED = 0x8C2F
+
+pattern GL_INT_2_10_10_10_REV  :: (Eq a, Num a) => a
+
+pattern GL_INT_2_10_10_10_REV = 0x8D9F
+
+pattern GL_MAX_DUAL_SOURCE_DRAW_BUFFERS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_DUAL_SOURCE_DRAW_BUFFERS = 0x88FC
+
+pattern GL_ONE_MINUS_SRC1_ALPHA  :: (Eq a, Num a) => a
+
+pattern GL_ONE_MINUS_SRC1_ALPHA = 0x88FB
+
+pattern GL_ONE_MINUS_SRC1_COLOR  :: (Eq a, Num a) => a
+
+pattern GL_ONE_MINUS_SRC1_COLOR = 0x88FA
+
+pattern GL_RGB10_A2UI  :: (Eq a, Num a) => a
+
+pattern GL_RGB10_A2UI = 0x906F
+
+pattern GL_SAMPLER_BINDING  :: (Eq a, Num a) => a
+
+pattern GL_SAMPLER_BINDING = 0x8919
+
+pattern GL_SRC1_COLOR  :: (Eq a, Num a) => a
+
+pattern GL_SRC1_COLOR = 0x88F9
+
+pattern GL_TEXTURE_SWIZZLE_A  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_SWIZZLE_A = 0x8E45
+
+pattern GL_TEXTURE_SWIZZLE_B  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_SWIZZLE_B = 0x8E44
+
+pattern GL_TEXTURE_SWIZZLE_G  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_SWIZZLE_G = 0x8E43
+
+pattern GL_TEXTURE_SWIZZLE_R  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_SWIZZLE_R = 0x8E42
+
+pattern GL_TEXTURE_SWIZZLE_RGBA  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_SWIZZLE_RGBA = 0x8E46
+
+pattern GL_TIMESTAMP  :: (Eq a, Num a) => a
+
+pattern GL_TIMESTAMP = 0x8E28
+
+pattern GL_TIME_ELAPSED  :: (Eq a, Num a) => a
+
+pattern GL_TIME_ELAPSED = 0x88BF
+
+pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR  :: (Eq a, Num a) => a
+
+pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR = 0x88FE
+
+-- | Usage: @'glBeginQueryIndexed' target index id@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBeginQueryIndexed.xhtml>
+
+
+glBeginQueryIndexed :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()
+glBeginQueryIndexed = ffienumuintuintIOV glBeginQueryIndexedFunPtr
+
+glBeginQueryIndexedFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> IO ())
+glBeginQueryIndexedFunPtr = unsafePerformIO (getProcAddress "glBeginQueryIndexed")
+
+{-# NOINLINE glBeginQueryIndexedFunPtr #-}
+
+-- | Usage: @'glBindTransformFeedback' target id@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindTransformFeedback.xhtml>
+
+
+glBindTransformFeedback :: MonadIO m => GLenum -> GLuint -> m ()
+glBindTransformFeedback = ffienumuintIOV glBindTransformFeedbackFunPtr
+
+glBindTransformFeedbackFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glBindTransformFeedbackFunPtr = unsafePerformIO (getProcAddress "glBindTransformFeedback")
+
+{-# NOINLINE glBindTransformFeedbackFunPtr #-}
+
+-- | Usage: @'glBlendEquationSeparatei' buf modeRGB modeAlpha@
+
+
+glBlendEquationSeparatei :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()
+glBlendEquationSeparatei = ffiuintenumenumIOV glBlendEquationSeparateiFunPtr
+
+glBlendEquationSeparateiFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> IO ())
+glBlendEquationSeparateiFunPtr = unsafePerformIO (getProcAddress "glBlendEquationSeparatei")
+
+{-# NOINLINE glBlendEquationSeparateiFunPtr #-}
+
+-- | Usage: @'glBlendEquationi' buf mode@
+
+
+glBlendEquationi :: MonadIO m => GLuint -> GLenum -> m ()
+glBlendEquationi = ffiuintenumIOV glBlendEquationiFunPtr
+
+glBlendEquationiFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
+glBlendEquationiFunPtr = unsafePerformIO (getProcAddress "glBlendEquationi")
+
+{-# NOINLINE glBlendEquationiFunPtr #-}
+
+-- | Usage: @'glBlendFuncSeparatei' buf srcRGB dstRGB srcAlpha dstAlpha@
+
+
+glBlendFuncSeparatei :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> m ()
+glBlendFuncSeparatei = ffiuintenumenumenumenumIOV glBlendFuncSeparateiFunPtr
+
+glBlendFuncSeparateiFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
+glBlendFuncSeparateiFunPtr = unsafePerformIO (getProcAddress "glBlendFuncSeparatei")
+
+{-# NOINLINE glBlendFuncSeparateiFunPtr #-}
+
+-- | Usage: @'glBlendFunci' buf src dst@
+
+
+glBlendFunci :: MonadIO m => GLuint -> GLenum -> GLenum -> m ()
+glBlendFunci = ffiuintenumenumIOV glBlendFunciFunPtr
+
+glBlendFunciFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> IO ())
+glBlendFunciFunPtr = unsafePerformIO (getProcAddress "glBlendFunci")
+
+{-# NOINLINE glBlendFunciFunPtr #-}
+
+-- | Usage: @'glDeleteTransformFeedbacks' n ids@
+--
+-- The length of @ids@ should be @n@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDeleteTransformFeedbacks.xhtml>
+
+
+glDeleteTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteTransformFeedbacks = ffisizeiPtruintIOV glDeleteTransformFeedbacksFunPtr
+
+glDeleteTransformFeedbacksFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteTransformFeedbacksFunPtr = unsafePerformIO (getProcAddress "glDeleteTransformFeedbacks")
+
+{-# NOINLINE glDeleteTransformFeedbacksFunPtr #-}
+
+-- | Usage: @'glDrawArraysIndirect' mode indirect@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawArraysIndirect.xhtml>
+
+
+glDrawArraysIndirect :: MonadIO m => GLenum -> Ptr () -> m ()
+glDrawArraysIndirect = ffienumPtrVIOV glDrawArraysIndirectFunPtr
+
+glDrawArraysIndirectFunPtr :: FunPtr (GLenum -> Ptr () -> IO ())
+glDrawArraysIndirectFunPtr = unsafePerformIO (getProcAddress "glDrawArraysIndirect")
+
+{-# NOINLINE glDrawArraysIndirectFunPtr #-}
+
+-- | Usage: @'glDrawElementsIndirect' mode type indirect@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawElementsIndirect.xhtml>
+
+
+glDrawElementsIndirect :: MonadIO m => GLenum -> GLenum -> Ptr () -> m ()
+glDrawElementsIndirect = ffienumenumPtrVIOV glDrawElementsIndirectFunPtr
+
+glDrawElementsIndirectFunPtr :: FunPtr (GLenum -> GLenum -> Ptr () -> IO ())
+glDrawElementsIndirectFunPtr = unsafePerformIO (getProcAddress "glDrawElementsIndirect")
+
+{-# NOINLINE glDrawElementsIndirectFunPtr #-}
+
+-- | Usage: @'glDrawTransformFeedback' mode id@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawTransformFeedback.xhtml>
+
+
+glDrawTransformFeedback :: MonadIO m => GLenum -> GLuint -> m ()
+glDrawTransformFeedback = ffienumuintIOV glDrawTransformFeedbackFunPtr
+
+glDrawTransformFeedbackFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glDrawTransformFeedbackFunPtr = unsafePerformIO (getProcAddress "glDrawTransformFeedback")
+
+{-# NOINLINE glDrawTransformFeedbackFunPtr #-}
+
+-- | Usage: @'glDrawTransformFeedbackStream' mode id stream@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawTransformFeedbackStream.xhtml>
+
+
+glDrawTransformFeedbackStream :: MonadIO m => GLenum -> GLuint -> GLuint -> m ()
+glDrawTransformFeedbackStream = ffienumuintuintIOV glDrawTransformFeedbackStreamFunPtr
+
+glDrawTransformFeedbackStreamFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> IO ())
+glDrawTransformFeedbackStreamFunPtr = unsafePerformIO (getProcAddress "glDrawTransformFeedbackStream")
+
+{-# NOINLINE glDrawTransformFeedbackStreamFunPtr #-}
+
+-- | Usage: @'glEndQueryIndexed' target index@
+
+
+glEndQueryIndexed :: MonadIO m => GLenum -> GLuint -> m ()
+glEndQueryIndexed = ffienumuintIOV glEndQueryIndexedFunPtr
+
+glEndQueryIndexedFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glEndQueryIndexedFunPtr = unsafePerformIO (getProcAddress "glEndQueryIndexed")
+
+{-# NOINLINE glEndQueryIndexedFunPtr #-}
+
+-- | Usage: @'glGenTransformFeedbacks' n ids@
+--
+-- The length of @ids@ should be @n@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGenTransformFeedbacks.xhtml>
+
+
+glGenTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glGenTransformFeedbacks = ffisizeiPtruintIOV glGenTransformFeedbacksFunPtr
+
+glGenTransformFeedbacksFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glGenTransformFeedbacksFunPtr = unsafePerformIO (getProcAddress "glGenTransformFeedbacks")
+
+{-# NOINLINE glGenTransformFeedbacksFunPtr #-}
+
+-- | Usage: @'glGetActiveSubroutineName' program shadertype index bufsize length name@
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @name@ should be @bufsize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetActiveSubroutineName.xhtml>
+
+
+glGetActiveSubroutineName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
+glGetActiveSubroutineName = ffiuintenumuintsizeiPtrsizeiPtrcharIOV glGetActiveSubroutineNameFunPtr
+
+glGetActiveSubroutineNameFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+glGetActiveSubroutineNameFunPtr = unsafePerformIO (getProcAddress "glGetActiveSubroutineName")
+
+{-# NOINLINE glGetActiveSubroutineNameFunPtr #-}
+
+-- | Usage: @'glGetActiveSubroutineUniformName' program shadertype index bufsize length name@
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @name@ should be @bufsize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetActiveSubroutineUniformName.xhtml>
+
+
+glGetActiveSubroutineUniformName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
+glGetActiveSubroutineUniformName = ffiuintenumuintsizeiPtrsizeiPtrcharIOV glGetActiveSubroutineUniformNameFunPtr
+
+glGetActiveSubroutineUniformNameFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+glGetActiveSubroutineUniformNameFunPtr = unsafePerformIO (getProcAddress "glGetActiveSubroutineUniformName")
+
+{-# NOINLINE glGetActiveSubroutineUniformNameFunPtr #-}
+
+-- | Usage: @'glGetActiveSubroutineUniformiv' program shadertype index pname values@
+--
+-- The length of @values@ should be @COMPSIZE(pname)@.
+
+
+glGetActiveSubroutineUniformiv :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()
+glGetActiveSubroutineUniformiv = ffiuintenumuintenumPtrintIOV glGetActiveSubroutineUniformivFunPtr
+
+glGetActiveSubroutineUniformivFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetActiveSubroutineUniformivFunPtr = unsafePerformIO (getProcAddress "glGetActiveSubroutineUniformiv")
+
+{-# NOINLINE glGetActiveSubroutineUniformivFunPtr #-}
+
+-- | Usage: @'glGetProgramStageiv' program shadertype pname values@
+--
+-- The length of @values@ should be @1@.
+
+
+glGetProgramStageiv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
+glGetProgramStageiv = ffiuintenumenumPtrintIOV glGetProgramStageivFunPtr
+
+glGetProgramStageivFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetProgramStageivFunPtr = unsafePerformIO (getProcAddress "glGetProgramStageiv")
+
+{-# NOINLINE glGetProgramStageivFunPtr #-}
+
+-- | Usage: @'glGetQueryIndexediv' target index pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetQueryIndexediv :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()
+glGetQueryIndexediv = ffienumuintenumPtrintIOV glGetQueryIndexedivFunPtr
+
+glGetQueryIndexedivFunPtr :: FunPtr (GLenum -> GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetQueryIndexedivFunPtr = unsafePerformIO (getProcAddress "glGetQueryIndexediv")
+
+{-# NOINLINE glGetQueryIndexedivFunPtr #-}
+
+-- | Usage: @'glGetSubroutineIndex' program shadertype name@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetSubroutineIndex.xhtml>
+
+
+glGetSubroutineIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLuint
+glGetSubroutineIndex = ffiuintenumPtrcharIOuint glGetSubroutineIndexFunPtr
+
+glGetSubroutineIndexFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLuint)
+glGetSubroutineIndexFunPtr = unsafePerformIO (getProcAddress "glGetSubroutineIndex")
+
+{-# NOINLINE glGetSubroutineIndexFunPtr #-}
+
+-- | Usage: @'glGetSubroutineUniformLocation' program shadertype name@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetSubroutineUniformLocation.xhtml>
+
+
+glGetSubroutineUniformLocation :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint
+glGetSubroutineUniformLocation = ffiuintenumPtrcharIOint glGetSubroutineUniformLocationFunPtr
+
+glGetSubroutineUniformLocationFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLint)
+glGetSubroutineUniformLocationFunPtr = unsafePerformIO (getProcAddress "glGetSubroutineUniformLocation")
+
+{-# NOINLINE glGetSubroutineUniformLocationFunPtr #-}
+
+-- | Usage: @'glGetUniformSubroutineuiv' shadertype location params@
+--
+-- The length of @params@ should be @1@.
+
+
+glGetUniformSubroutineuiv :: MonadIO m => GLenum -> GLint -> Ptr GLuint -> m ()
+glGetUniformSubroutineuiv = ffienumintPtruintIOV glGetUniformSubroutineuivFunPtr
+
+glGetUniformSubroutineuivFunPtr :: FunPtr (GLenum -> GLint -> Ptr GLuint -> IO ())
+glGetUniformSubroutineuivFunPtr = unsafePerformIO (getProcAddress "glGetUniformSubroutineuiv")
+
+{-# NOINLINE glGetUniformSubroutineuivFunPtr #-}
+
+-- | Usage: @'glGetUniformdv' program location params@
+--
+-- The length of @params@ should be @COMPSIZE(program,location)@.
+
+
+glGetUniformdv :: MonadIO m => GLuint -> GLint -> Ptr GLdouble -> m ()
+glGetUniformdv = ffiuintintPtrdoubleIOV glGetUniformdvFunPtr
+
+glGetUniformdvFunPtr :: FunPtr (GLuint -> GLint -> Ptr GLdouble -> IO ())
+glGetUniformdvFunPtr = unsafePerformIO (getProcAddress "glGetUniformdv")
+
+{-# NOINLINE glGetUniformdvFunPtr #-}
+
+-- | Usage: @'glIsTransformFeedback' id@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsTransformFeedback.xhtml>
+
+
+glIsTransformFeedback :: MonadIO m => GLuint -> m GLboolean
+glIsTransformFeedback = ffiuintIOboolean glIsTransformFeedbackFunPtr
+
+glIsTransformFeedbackFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsTransformFeedbackFunPtr = unsafePerformIO (getProcAddress "glIsTransformFeedback")
+
+{-# NOINLINE glIsTransformFeedbackFunPtr #-}
+
+-- | Usage: @'glMinSampleShading' value@
+--
+-- The parameter @value@ is a @ColorF@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glMinSampleShading.xhtml>
+
+
+glMinSampleShading :: MonadIO m => GLfloat -> m ()
+glMinSampleShading = ffifloatIOV glMinSampleShadingFunPtr
+
+glMinSampleShadingFunPtr :: FunPtr (GLfloat -> IO ())
+glMinSampleShadingFunPtr = unsafePerformIO (getProcAddress "glMinSampleShading")
+
+{-# NOINLINE glMinSampleShadingFunPtr #-}
+
+-- | Usage: @'glPatchParameterfv' pname values@
+--
+-- The length of @values@ should be @COMPSIZE(pname)@.
+
+
+glPatchParameterfv :: MonadIO m => GLenum -> Ptr GLfloat -> m ()
+glPatchParameterfv = ffienumPtrfloatIOV glPatchParameterfvFunPtr
+
+glPatchParameterfvFunPtr :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+glPatchParameterfvFunPtr = unsafePerformIO (getProcAddress "glPatchParameterfv")
+
+{-# NOINLINE glPatchParameterfvFunPtr #-}
+
+-- | Usage: @'glPatchParameteri' pname value@
+
+
+glPatchParameteri :: MonadIO m => GLenum -> GLint -> m ()
+glPatchParameteri = ffienumintIOV glPatchParameteriFunPtr
+
+glPatchParameteriFunPtr :: FunPtr (GLenum -> GLint -> IO ())
+glPatchParameteriFunPtr = unsafePerformIO (getProcAddress "glPatchParameteri")
+
+{-# NOINLINE glPatchParameteriFunPtr #-}
+
+-- | Usage: @'glPauseTransformFeedback'@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glPauseTransformFeedback.xhtml>
+
+
+glPauseTransformFeedback :: MonadIO m => m ()
+glPauseTransformFeedback = ffiIOV glPauseTransformFeedbackFunPtr
+
+glPauseTransformFeedbackFunPtr :: FunPtr (IO ())
+glPauseTransformFeedbackFunPtr = unsafePerformIO (getProcAddress "glPauseTransformFeedback")
+
+{-# NOINLINE glPauseTransformFeedbackFunPtr #-}
+
+-- | Usage: @'glResumeTransformFeedback'@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glResumeTransformFeedback.xhtml>
+
+
+glResumeTransformFeedback :: MonadIO m => m ()
+glResumeTransformFeedback = ffiIOV glResumeTransformFeedbackFunPtr
+
+glResumeTransformFeedbackFunPtr :: FunPtr (IO ())
+glResumeTransformFeedbackFunPtr = unsafePerformIO (getProcAddress "glResumeTransformFeedback")
+
+{-# NOINLINE glResumeTransformFeedbackFunPtr #-}
+
+-- | Usage: @'glUniform1d' location x@
+
+
+glUniform1d :: MonadIO m => GLint -> GLdouble -> m ()
+glUniform1d = ffiintdoubleIOV glUniform1dFunPtr
+
+glUniform1dFunPtr :: FunPtr (GLint -> GLdouble -> IO ())
+glUniform1dFunPtr = unsafePerformIO (getProcAddress "glUniform1d")
+
+{-# NOINLINE glUniform1dFunPtr #-}
+
+-- | Usage: @'glUniform1dv' location count value@
+--
+-- The length of @value@ should be @count*1@.
+
+
+glUniform1dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()
+glUniform1dv = ffiintsizeiPtrdoubleIOV glUniform1dvFunPtr
+
+glUniform1dvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLdouble -> IO ())
+glUniform1dvFunPtr = unsafePerformIO (getProcAddress "glUniform1dv")
+
+{-# NOINLINE glUniform1dvFunPtr #-}
+
+-- | Usage: @'glUniform2d' location x y@
+
+
+glUniform2d :: MonadIO m => GLint -> GLdouble -> GLdouble -> m ()
+glUniform2d = ffiintdoubledoubleIOV glUniform2dFunPtr
+
+glUniform2dFunPtr :: FunPtr (GLint -> GLdouble -> GLdouble -> IO ())
+glUniform2dFunPtr = unsafePerformIO (getProcAddress "glUniform2d")
+
+{-# NOINLINE glUniform2dFunPtr #-}
+
+-- | Usage: @'glUniform2dv' location count value@
+--
+-- The length of @value@ should be @count*2@.
+
+
+glUniform2dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()
+glUniform2dv = ffiintsizeiPtrdoubleIOV glUniform2dvFunPtr
+
+glUniform2dvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLdouble -> IO ())
+glUniform2dvFunPtr = unsafePerformIO (getProcAddress "glUniform2dv")
+
+{-# NOINLINE glUniform2dvFunPtr #-}
+
+-- | Usage: @'glUniform3d' location x y z@
+
+
+glUniform3d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLdouble -> m ()
+glUniform3d = ffiintdoubledoubledoubleIOV glUniform3dFunPtr
+
+glUniform3dFunPtr :: FunPtr (GLint -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glUniform3dFunPtr = unsafePerformIO (getProcAddress "glUniform3d")
+
+{-# NOINLINE glUniform3dFunPtr #-}
+
+-- | Usage: @'glUniform3dv' location count value@
+--
+-- The length of @value@ should be @count*3@.
+
+
+glUniform3dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()
+glUniform3dv = ffiintsizeiPtrdoubleIOV glUniform3dvFunPtr
+
+glUniform3dvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLdouble -> IO ())
+glUniform3dvFunPtr = unsafePerformIO (getProcAddress "glUniform3dv")
+
+{-# NOINLINE glUniform3dvFunPtr #-}
+
+-- | Usage: @'glUniform4d' location x y z w@
+
+
+glUniform4d :: MonadIO m => GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glUniform4d = ffiintdoubledoubledoubledoubleIOV glUniform4dFunPtr
+
+glUniform4dFunPtr :: FunPtr (GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glUniform4dFunPtr = unsafePerformIO (getProcAddress "glUniform4d")
+
+{-# NOINLINE glUniform4dFunPtr #-}
+
+-- | Usage: @'glUniform4dv' location count value@
+--
+-- The length of @value@ should be @count*4@.
+
+
+glUniform4dv :: MonadIO m => GLint -> GLsizei -> Ptr GLdouble -> m ()
+glUniform4dv = ffiintsizeiPtrdoubleIOV glUniform4dvFunPtr
+
+glUniform4dvFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLdouble -> IO ())
+glUniform4dvFunPtr = unsafePerformIO (getProcAddress "glUniform4dv")
+
+{-# NOINLINE glUniform4dvFunPtr #-}
+
+-- | Usage: @'glUniformMatrix2dv' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*4@.
+
+
+glUniformMatrix2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glUniformMatrix2dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix2dvFunPtr
+
+glUniformMatrix2dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glUniformMatrix2dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix2dv")
+
+{-# NOINLINE glUniformMatrix2dvFunPtr #-}
+
+-- | Usage: @'glUniformMatrix2x3dv' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*6@.
+
+
+glUniformMatrix2x3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glUniformMatrix2x3dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix2x3dvFunPtr
+
+glUniformMatrix2x3dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glUniformMatrix2x3dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix2x3dv")
+
+{-# NOINLINE glUniformMatrix2x3dvFunPtr #-}
+
+-- | Usage: @'glUniformMatrix2x4dv' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*8@.
+
+
+glUniformMatrix2x4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glUniformMatrix2x4dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix2x4dvFunPtr
+
+glUniformMatrix2x4dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glUniformMatrix2x4dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix2x4dv")
+
+{-# NOINLINE glUniformMatrix2x4dvFunPtr #-}
+
+-- | Usage: @'glUniformMatrix3dv' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*9@.
+
+
+glUniformMatrix3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glUniformMatrix3dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix3dvFunPtr
+
+glUniformMatrix3dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glUniformMatrix3dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix3dv")
+
+{-# NOINLINE glUniformMatrix3dvFunPtr #-}
+
+-- | Usage: @'glUniformMatrix3x2dv' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*6@.
+
+
+glUniformMatrix3x2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glUniformMatrix3x2dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix3x2dvFunPtr
+
+glUniformMatrix3x2dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glUniformMatrix3x2dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix3x2dv")
+
+{-# NOINLINE glUniformMatrix3x2dvFunPtr #-}
+
+-- | Usage: @'glUniformMatrix3x4dv' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*12@.
+
+
+glUniformMatrix3x4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glUniformMatrix3x4dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix3x4dvFunPtr
+
+glUniformMatrix3x4dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glUniformMatrix3x4dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix3x4dv")
+
+{-# NOINLINE glUniformMatrix3x4dvFunPtr #-}
+
+-- | Usage: @'glUniformMatrix4dv' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*16@.
+
+
+glUniformMatrix4dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glUniformMatrix4dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix4dvFunPtr
+
+glUniformMatrix4dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glUniformMatrix4dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix4dv")
+
+{-# NOINLINE glUniformMatrix4dvFunPtr #-}
+
+-- | Usage: @'glUniformMatrix4x2dv' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*8@.
+
+
+glUniformMatrix4x2dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glUniformMatrix4x2dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix4x2dvFunPtr
+
+glUniformMatrix4x2dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glUniformMatrix4x2dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix4x2dv")
+
+{-# NOINLINE glUniformMatrix4x2dvFunPtr #-}
+
+-- | Usage: @'glUniformMatrix4x3dv' location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*12@.
+
+
+glUniformMatrix4x3dv :: MonadIO m => GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glUniformMatrix4x3dv = ffiintsizeibooleanPtrdoubleIOV glUniformMatrix4x3dvFunPtr
+
+glUniformMatrix4x3dvFunPtr :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glUniformMatrix4x3dvFunPtr = unsafePerformIO (getProcAddress "glUniformMatrix4x3dv")
+
+{-# NOINLINE glUniformMatrix4x3dvFunPtr #-}
+
+-- | Usage: @'glUniformSubroutinesuiv' shadertype count indices@
+--
+-- The length of @indices@ should be @count@.
+
+
+glUniformSubroutinesuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()
+glUniformSubroutinesuiv = ffienumsizeiPtruintIOV glUniformSubroutinesuivFunPtr
+
+glUniformSubroutinesuivFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLuint -> IO ())
+glUniformSubroutinesuivFunPtr = unsafePerformIO (getProcAddress "glUniformSubroutinesuiv")
+
+{-# NOINLINE glUniformSubroutinesuivFunPtr #-}
+
+pattern GL_ACTIVE_SUBROUTINES  :: (Eq a, Num a) => a
+
+pattern GL_ACTIVE_SUBROUTINES = 0x8DE5
+
+pattern GL_ACTIVE_SUBROUTINE_MAX_LENGTH  :: (Eq a, Num a) => a
+
+pattern GL_ACTIVE_SUBROUTINE_MAX_LENGTH = 0x8E48
+
+pattern GL_ACTIVE_SUBROUTINE_UNIFORMS  :: (Eq a, Num a) => a
+
+pattern GL_ACTIVE_SUBROUTINE_UNIFORMS = 0x8DE6
+
+pattern GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS  :: (Eq a, Num a) => a
+
+pattern GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS = 0x8E47
+
+pattern GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH  :: (Eq a, Num a) => a
+
+pattern GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH = 0x8E49
+
+pattern GL_COMPATIBLE_SUBROUTINES  :: (Eq a, Num a) => a
+
+pattern GL_COMPATIBLE_SUBROUTINES = 0x8E4B
+
+pattern GL_DOUBLE_MAT2  :: (Eq a, Num a) => a
+
+pattern GL_DOUBLE_MAT2 = 0x8F46
+
+pattern GL_DOUBLE_MAT2x3  :: (Eq a, Num a) => a
+
+pattern GL_DOUBLE_MAT2x3 = 0x8F49
+
+pattern GL_DOUBLE_MAT2x4  :: (Eq a, Num a) => a
+
+pattern GL_DOUBLE_MAT2x4 = 0x8F4A
+
+pattern GL_DOUBLE_MAT3  :: (Eq a, Num a) => a
+
+pattern GL_DOUBLE_MAT3 = 0x8F47
+
+pattern GL_DOUBLE_MAT3x2  :: (Eq a, Num a) => a
+
+pattern GL_DOUBLE_MAT3x2 = 0x8F4B
+
+pattern GL_DOUBLE_MAT3x4  :: (Eq a, Num a) => a
+
+pattern GL_DOUBLE_MAT3x4 = 0x8F4C
+
+pattern GL_DOUBLE_MAT4  :: (Eq a, Num a) => a
+
+pattern GL_DOUBLE_MAT4 = 0x8F48
+
+pattern GL_DOUBLE_MAT4x2  :: (Eq a, Num a) => a
+
+pattern GL_DOUBLE_MAT4x2 = 0x8F4D
+
+pattern GL_DOUBLE_MAT4x3  :: (Eq a, Num a) => a
+
+pattern GL_DOUBLE_MAT4x3 = 0x8F4E
+
+pattern GL_DOUBLE_VEC2  :: (Eq a, Num a) => a
+
+pattern GL_DOUBLE_VEC2 = 0x8FFC
+
+pattern GL_DOUBLE_VEC3  :: (Eq a, Num a) => a
+
+pattern GL_DOUBLE_VEC3 = 0x8FFD
+
+pattern GL_DOUBLE_VEC4  :: (Eq a, Num a) => a
+
+pattern GL_DOUBLE_VEC4 = 0x8FFE
+
+pattern GL_DRAW_INDIRECT_BUFFER  :: (Eq a, Num a) => a
+
+pattern GL_DRAW_INDIRECT_BUFFER = 0x8F3F
+
+pattern GL_DRAW_INDIRECT_BUFFER_BINDING  :: (Eq a, Num a) => a
+
+pattern GL_DRAW_INDIRECT_BUFFER_BINDING = 0x8F43
+
+pattern GL_FRACTIONAL_EVEN  :: (Eq a, Num a) => a
+
+pattern GL_FRACTIONAL_EVEN = 0x8E7C
+
+pattern GL_FRACTIONAL_ODD  :: (Eq a, Num a) => a
+
+pattern GL_FRACTIONAL_ODD = 0x8E7B
+
+pattern GL_FRAGMENT_INTERPOLATION_OFFSET_BITS  :: (Eq a, Num a) => a
+
+pattern GL_FRAGMENT_INTERPOLATION_OFFSET_BITS = 0x8E5D
+
+pattern GL_GEOMETRY_SHADER_INVOCATIONS  :: (Eq a, Num a) => a
+
+pattern GL_GEOMETRY_SHADER_INVOCATIONS = 0x887F
+
+pattern GL_INT_SAMPLER_CUBE_MAP_ARRAY  :: (Eq a, Num a) => a
+
+pattern GL_INT_SAMPLER_CUBE_MAP_ARRAY = 0x900E
+
+pattern GL_ISOLINES  :: (Eq a, Num a) => a
+
+pattern GL_ISOLINES = 0x8E7A
+
+pattern GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS = 0x8E1E
+
+pattern GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS = 0x8E1F
+
+pattern GL_MAX_FRAGMENT_INTERPOLATION_OFFSET  :: (Eq a, Num a) => a
+
+pattern GL_MAX_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5C
+
+pattern GL_MAX_GEOMETRY_SHADER_INVOCATIONS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_GEOMETRY_SHADER_INVOCATIONS = 0x8E5A
+
+pattern GL_MAX_PATCH_VERTICES  :: (Eq a, Num a) => a
+
+pattern GL_MAX_PATCH_VERTICES = 0x8E7D
+
+pattern GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET  :: (Eq a, Num a) => a
+
+pattern GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5F
+
+pattern GL_MAX_SUBROUTINES  :: (Eq a, Num a) => a
+
+pattern GL_MAX_SUBROUTINES = 0x8DE7
+
+pattern GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS = 0x8DE8
+
+pattern GL_MAX_TESS_CONTROL_INPUT_COMPONENTS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_TESS_CONTROL_INPUT_COMPONENTS = 0x886C
+
+pattern GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS = 0x8E83
+
+pattern GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS = 0x8E81
+
+pattern GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS = 0x8E85
+
+pattern GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS = 0x8E89
+
+pattern GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS = 0x8E7F
+
+pattern GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS = 0x886D
+
+pattern GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS = 0x8E86
+
+pattern GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS = 0x8E82
+
+pattern GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS = 0x8E8A
+
+pattern GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS = 0x8E80
+
+pattern GL_MAX_TESS_GEN_LEVEL  :: (Eq a, Num a) => a
+
+pattern GL_MAX_TESS_GEN_LEVEL = 0x8E7E
+
+pattern GL_MAX_TESS_PATCH_COMPONENTS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_TESS_PATCH_COMPONENTS = 0x8E84
+
+pattern GL_MAX_TRANSFORM_FEEDBACK_BUFFERS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_TRANSFORM_FEEDBACK_BUFFERS = 0x8E70
+
+pattern GL_MAX_VERTEX_STREAMS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_VERTEX_STREAMS = 0x8E71
+
+pattern GL_MIN_FRAGMENT_INTERPOLATION_OFFSET  :: (Eq a, Num a) => a
+
+pattern GL_MIN_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5B
+
+pattern GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET  :: (Eq a, Num a) => a
+
+pattern GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5E
+
+pattern GL_MIN_SAMPLE_SHADING_VALUE  :: (Eq a, Num a) => a
+
+pattern GL_MIN_SAMPLE_SHADING_VALUE = 0x8C37
+
+pattern GL_NUM_COMPATIBLE_SUBROUTINES  :: (Eq a, Num a) => a
+
+pattern GL_NUM_COMPATIBLE_SUBROUTINES = 0x8E4A
+
+pattern GL_PATCHES  :: (Eq a, Num a) => a
+
+pattern GL_PATCHES = 0x000E
+
+pattern GL_PATCH_DEFAULT_INNER_LEVEL  :: (Eq a, Num a) => a
+
+pattern GL_PATCH_DEFAULT_INNER_LEVEL = 0x8E73
+
+pattern GL_PATCH_DEFAULT_OUTER_LEVEL  :: (Eq a, Num a) => a
+
+pattern GL_PATCH_DEFAULT_OUTER_LEVEL = 0x8E74
+
+pattern GL_PATCH_VERTICES  :: (Eq a, Num a) => a
+
+pattern GL_PATCH_VERTICES = 0x8E72
+
+pattern GL_SAMPLER_CUBE_MAP_ARRAY  :: (Eq a, Num a) => a
+
+pattern GL_SAMPLER_CUBE_MAP_ARRAY = 0x900C
+
+pattern GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW  :: (Eq a, Num a) => a
+
+pattern GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW = 0x900D
+
+pattern GL_SAMPLE_SHADING  :: (Eq a, Num a) => a
+
+pattern GL_SAMPLE_SHADING = 0x8C36
+
+pattern GL_TESS_CONTROL_OUTPUT_VERTICES  :: (Eq a, Num a) => a
+
+pattern GL_TESS_CONTROL_OUTPUT_VERTICES = 0x8E75
+
+pattern GL_TESS_CONTROL_SHADER  :: (Eq a, Num a) => a
+
+pattern GL_TESS_CONTROL_SHADER = 0x8E88
+
+pattern GL_TESS_EVALUATION_SHADER  :: (Eq a, Num a) => a
+
+pattern GL_TESS_EVALUATION_SHADER = 0x8E87
+
+pattern GL_TESS_GEN_MODE  :: (Eq a, Num a) => a
+
+pattern GL_TESS_GEN_MODE = 0x8E76
+
+pattern GL_TESS_GEN_POINT_MODE  :: (Eq a, Num a) => a
+
+pattern GL_TESS_GEN_POINT_MODE = 0x8E79
+
+pattern GL_TESS_GEN_SPACING  :: (Eq a, Num a) => a
+
+pattern GL_TESS_GEN_SPACING = 0x8E77
+
+pattern GL_TESS_GEN_VERTEX_ORDER  :: (Eq a, Num a) => a
+
+pattern GL_TESS_GEN_VERTEX_ORDER = 0x8E78
+
+pattern GL_TEXTURE_BINDING_CUBE_MAP_ARRAY  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_BINDING_CUBE_MAP_ARRAY = 0x900A
+
+pattern GL_TEXTURE_CUBE_MAP_ARRAY  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_CUBE_MAP_ARRAY = 0x9009
+
+pattern GL_TRANSFORM_FEEDBACK  :: (Eq a, Num a) => a
+
+pattern GL_TRANSFORM_FEEDBACK = 0x8E22
+
+pattern GL_TRANSFORM_FEEDBACK_BINDING  :: (Eq a, Num a) => a
+
+pattern GL_TRANSFORM_FEEDBACK_BINDING = 0x8E25
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE  :: (Eq a, Num a) => a
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE = 0x8E24
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED  :: (Eq a, Num a) => a
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED = 0x8E23
+
+pattern GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER  :: (Eq a, Num a) => a
+
+pattern GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER = 0x84F0
+
+pattern GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER  :: (Eq a, Num a) => a
+
+pattern GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x84F1
+
+pattern GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY = 0x900F
+
+-- | Usage: @'glActiveShaderProgram' pipeline program@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glActiveShaderProgram.xhtml>
+
+
+glActiveShaderProgram :: MonadIO m => GLuint -> GLuint -> m ()
+glActiveShaderProgram = ffiuintuintIOV glActiveShaderProgramFunPtr
+
+glActiveShaderProgramFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
+glActiveShaderProgramFunPtr = unsafePerformIO (getProcAddress "glActiveShaderProgram")
+
+{-# NOINLINE glActiveShaderProgramFunPtr #-}
+
+-- | Usage: @'glBindProgramPipeline' pipeline@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindProgramPipeline.xhtml>
+
+
+glBindProgramPipeline :: MonadIO m => GLuint -> m ()
+glBindProgramPipeline = ffiuintIOV glBindProgramPipelineFunPtr
+
+glBindProgramPipelineFunPtr :: FunPtr (GLuint -> IO ())
+glBindProgramPipelineFunPtr = unsafePerformIO (getProcAddress "glBindProgramPipeline")
+
+{-# NOINLINE glBindProgramPipelineFunPtr #-}
+
+-- | Usage: @'glClearDepthf' d@
+
+
+glClearDepthf :: MonadIO m => GLfloat -> m ()
+glClearDepthf = ffifloatIOV glClearDepthfFunPtr
+
+glClearDepthfFunPtr :: FunPtr (GLfloat -> IO ())
+glClearDepthfFunPtr = unsafePerformIO (getProcAddress "glClearDepthf")
+
+{-# NOINLINE glClearDepthfFunPtr #-}
+
+-- | Usage: @'glCreateShaderProgramv' type count strings@
+--
+-- The length of @strings@ should be @count@.
+
+
+glCreateShaderProgramv :: MonadIO m => GLenum -> GLsizei -> Ptr (Ptr GLchar) -> m GLuint
+glCreateShaderProgramv = ffienumsizeiPtrPtrcharIOuint glCreateShaderProgramvFunPtr
+
+glCreateShaderProgramvFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr (Ptr GLchar) -> IO GLuint)
+glCreateShaderProgramvFunPtr = unsafePerformIO (getProcAddress "glCreateShaderProgramv")
+
+{-# NOINLINE glCreateShaderProgramvFunPtr #-}
+
+-- | Usage: @'glDeleteProgramPipelines' n pipelines@
+--
+-- The length of @pipelines@ should be @n@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDeleteProgramPipelines.xhtml>
+
+
+glDeleteProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteProgramPipelines = ffisizeiPtruintIOV glDeleteProgramPipelinesFunPtr
+
+glDeleteProgramPipelinesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteProgramPipelinesFunPtr = unsafePerformIO (getProcAddress "glDeleteProgramPipelines")
+
+{-# NOINLINE glDeleteProgramPipelinesFunPtr #-}
+
+-- | Usage: @'glDepthRangeArrayv' first count v@
+--
+-- The length of @v@ should be @COMPSIZE(count)@.
+
+
+glDepthRangeArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLdouble -> m ()
+glDepthRangeArrayv = ffiuintsizeiPtrdoubleIOV glDepthRangeArrayvFunPtr
+
+glDepthRangeArrayvFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ())
+glDepthRangeArrayvFunPtr = unsafePerformIO (getProcAddress "glDepthRangeArrayv")
+
+{-# NOINLINE glDepthRangeArrayvFunPtr #-}
+
+-- | Usage: @'glDepthRangeIndexed' index n f@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDepthRangeIndexed.xhtml>
+
+
+glDepthRangeIndexed :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()
+glDepthRangeIndexed = ffiuintdoubledoubleIOV glDepthRangeIndexedFunPtr
+
+glDepthRangeIndexedFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> IO ())
+glDepthRangeIndexedFunPtr = unsafePerformIO (getProcAddress "glDepthRangeIndexed")
+
+{-# NOINLINE glDepthRangeIndexedFunPtr #-}
+
+-- | Usage: @'glDepthRangef' n f@
+
+
+glDepthRangef :: MonadIO m => GLfloat -> GLfloat -> m ()
+glDepthRangef = ffifloatfloatIOV glDepthRangefFunPtr
+
+glDepthRangefFunPtr :: FunPtr (GLfloat -> GLfloat -> IO ())
+glDepthRangefFunPtr = unsafePerformIO (getProcAddress "glDepthRangef")
+
+{-# NOINLINE glDepthRangefFunPtr #-}
+
+-- | Usage: @'glGenProgramPipelines' n pipelines@
+--
+-- The length of @pipelines@ should be @n@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGenProgramPipelines.xhtml>
+
+
+glGenProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glGenProgramPipelines = ffisizeiPtruintIOV glGenProgramPipelinesFunPtr
+
+glGenProgramPipelinesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glGenProgramPipelinesFunPtr = unsafePerformIO (getProcAddress "glGenProgramPipelines")
+
+{-# NOINLINE glGenProgramPipelinesFunPtr #-}
+
+-- | Usage: @'glGetDoublei_v' target index data@
+--
+-- The length of @data@ should be @COMPSIZE(target)@.
+
+
+glGetDoublei_v :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()
+glGetDoublei_v = ffienumuintPtrdoubleIOV glGetDoublei_vFunPtr
+
+glGetDoublei_vFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())
+glGetDoublei_vFunPtr = unsafePerformIO (getProcAddress "glGetDoublei_v")
+
+{-# NOINLINE glGetDoublei_vFunPtr #-}
+
+-- | Usage: @'glGetFloati_v' target index data@
+--
+-- The parameter @target@ is a @TypeEnum@.
+--
+-- The length of @data@ should be @COMPSIZE(target)@.
+
+
+glGetFloati_v :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
+glGetFloati_v = ffienumuintPtrfloatIOV glGetFloati_vFunPtr
+
+glGetFloati_vFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
+glGetFloati_vFunPtr = unsafePerformIO (getProcAddress "glGetFloati_v")
+
+{-# NOINLINE glGetFloati_vFunPtr #-}
+
+-- | Usage: @'glGetProgramBinary' program bufSize length binaryFormat binary@
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @binaryFormat@ should be @1@.
+--
+-- The length of @binary@ should be @bufSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetProgramBinary.xhtml>
+
+
+glGetProgramBinary :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr () -> m ()
+glGetProgramBinary = ffiuintsizeiPtrsizeiPtrenumPtrVIOV glGetProgramBinaryFunPtr
+
+glGetProgramBinaryFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr () -> IO ())
+glGetProgramBinaryFunPtr = unsafePerformIO (getProcAddress "glGetProgramBinary")
+
+{-# NOINLINE glGetProgramBinaryFunPtr #-}
+
+-- | Usage: @'glGetProgramPipelineInfoLog' pipeline bufSize length infoLog@
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @infoLog@ should be @bufSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetProgramPipelineInfoLog.xhtml>
+
+
+glGetProgramPipelineInfoLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
+glGetProgramPipelineInfoLog = ffiuintsizeiPtrsizeiPtrcharIOV glGetProgramPipelineInfoLogFunPtr
+
+glGetProgramPipelineInfoLogFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+glGetProgramPipelineInfoLogFunPtr = unsafePerformIO (getProcAddress "glGetProgramPipelineInfoLog")
+
+{-# NOINLINE glGetProgramPipelineInfoLogFunPtr #-}
+
+-- | Usage: @'glGetProgramPipelineiv' pipeline pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetProgramPipelineiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetProgramPipelineiv = ffiuintenumPtrintIOV glGetProgramPipelineivFunPtr
+
+glGetProgramPipelineivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetProgramPipelineivFunPtr = unsafePerformIO (getProcAddress "glGetProgramPipelineiv")
+
+{-# NOINLINE glGetProgramPipelineivFunPtr #-}
+
+-- | Usage: @'glGetShaderPrecisionFormat' shadertype precisiontype range precision@
+--
+-- The length of @range@ should be @2@.
+--
+-- The length of @precision@ should be @2@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetShaderPrecisionFormat.xhtml>
+
+
+glGetShaderPrecisionFormat :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> m ()
+glGetShaderPrecisionFormat = ffienumenumPtrintPtrintIOV glGetShaderPrecisionFormatFunPtr
+
+glGetShaderPrecisionFormatFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> IO ())
+glGetShaderPrecisionFormatFunPtr = unsafePerformIO (getProcAddress "glGetShaderPrecisionFormat")
+
+{-# NOINLINE glGetShaderPrecisionFormatFunPtr #-}
+
+-- | Usage: @'glGetVertexAttribLdv' index pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetVertexAttribLdv :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()
+glGetVertexAttribLdv = ffiuintenumPtrdoubleIOV glGetVertexAttribLdvFunPtr
+
+glGetVertexAttribLdvFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLdouble -> IO ())
+glGetVertexAttribLdvFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribLdv")
+
+{-# NOINLINE glGetVertexAttribLdvFunPtr #-}
+
+-- | Usage: @'glIsProgramPipeline' pipeline@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glIsProgramPipeline.xhtml>
+
+
+glIsProgramPipeline :: MonadIO m => GLuint -> m GLboolean
+glIsProgramPipeline = ffiuintIOboolean glIsProgramPipelineFunPtr
+
+glIsProgramPipelineFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsProgramPipelineFunPtr = unsafePerformIO (getProcAddress "glIsProgramPipeline")
+
+{-# NOINLINE glIsProgramPipelineFunPtr #-}
+
+-- | Usage: @'glProgramBinary' program binaryFormat binary length@
+--
+-- The length of @binary@ should be @length@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glProgramBinary.xhtml>
+
+
+glProgramBinary :: MonadIO m => GLuint -> GLenum -> Ptr () -> GLsizei -> m ()
+glProgramBinary = ffiuintenumPtrVsizeiIOV glProgramBinaryFunPtr
+
+glProgramBinaryFunPtr :: FunPtr (GLuint -> GLenum -> Ptr () -> GLsizei -> IO ())
+glProgramBinaryFunPtr = unsafePerformIO (getProcAddress "glProgramBinary")
+
+{-# NOINLINE glProgramBinaryFunPtr #-}
+
+-- | Usage: @'glProgramParameteri' program pname value@
+--
+-- The parameter @pname@ is a @ProgramParameterPName@.
+
+
+glProgramParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
+glProgramParameteri = ffiuintenumintIOV glProgramParameteriFunPtr
+
+glProgramParameteriFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> IO ())
+glProgramParameteriFunPtr = unsafePerformIO (getProcAddress "glProgramParameteri")
+
+{-# NOINLINE glProgramParameteriFunPtr #-}
+
+-- | Usage: @'glProgramUniform1d' program location v0@
+
+
+glProgramUniform1d :: MonadIO m => GLuint -> GLint -> GLdouble -> m ()
+glProgramUniform1d = ffiuintintdoubleIOV glProgramUniform1dFunPtr
+
+glProgramUniform1dFunPtr :: FunPtr (GLuint -> GLint -> GLdouble -> IO ())
+glProgramUniform1dFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1d")
+
+{-# NOINLINE glProgramUniform1dFunPtr #-}
+
+-- | Usage: @'glProgramUniform1dv' program location count value@
+--
+-- The length of @value@ should be @count@.
+
+
+glProgramUniform1dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
+glProgramUniform1dv = ffiuintintsizeiPtrdoubleIOV glProgramUniform1dvFunPtr
+
+glProgramUniform1dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())
+glProgramUniform1dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1dv")
+
+{-# NOINLINE glProgramUniform1dvFunPtr #-}
+
+-- | Usage: @'glProgramUniform1f' program location v0@
+
+
+glProgramUniform1f :: MonadIO m => GLuint -> GLint -> GLfloat -> m ()
+glProgramUniform1f = ffiuintintfloatIOV glProgramUniform1fFunPtr
+
+glProgramUniform1fFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> IO ())
+glProgramUniform1fFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1f")
+
+{-# NOINLINE glProgramUniform1fFunPtr #-}
+
+-- | Usage: @'glProgramUniform1fv' program location count value@
+--
+-- The length of @value@ should be @count@.
+
+
+glProgramUniform1fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
+glProgramUniform1fv = ffiuintintsizeiPtrfloatIOV glProgramUniform1fvFunPtr
+
+glProgramUniform1fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
+glProgramUniform1fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1fv")
+
+{-# NOINLINE glProgramUniform1fvFunPtr #-}
+
+-- | Usage: @'glProgramUniform1i' program location v0@
+
+
+glProgramUniform1i :: MonadIO m => GLuint -> GLint -> GLint -> m ()
+glProgramUniform1i = ffiuintintintIOV glProgramUniform1iFunPtr
+
+glProgramUniform1iFunPtr :: FunPtr (GLuint -> GLint -> GLint -> IO ())
+glProgramUniform1iFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1i")
+
+{-# NOINLINE glProgramUniform1iFunPtr #-}
+
+-- | Usage: @'glProgramUniform1iv' program location count value@
+--
+-- The length of @value@ should be @count@.
+
+
+glProgramUniform1iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
+glProgramUniform1iv = ffiuintintsizeiPtrintIOV glProgramUniform1ivFunPtr
+
+glProgramUniform1ivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
+glProgramUniform1ivFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1iv")
+
+{-# NOINLINE glProgramUniform1ivFunPtr #-}
+
+-- | Usage: @'glProgramUniform1ui' program location v0@
+
+
+glProgramUniform1ui :: MonadIO m => GLuint -> GLint -> GLuint -> m ()
+glProgramUniform1ui = ffiuintintuintIOV glProgramUniform1uiFunPtr
+
+glProgramUniform1uiFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> IO ())
+glProgramUniform1uiFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1ui")
+
+{-# NOINLINE glProgramUniform1uiFunPtr #-}
+
+-- | Usage: @'glProgramUniform1uiv' program location count value@
+--
+-- The length of @value@ should be @count@.
+
+
+glProgramUniform1uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
+glProgramUniform1uiv = ffiuintintsizeiPtruintIOV glProgramUniform1uivFunPtr
+
+glProgramUniform1uivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
+glProgramUniform1uivFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1uiv")
+
+{-# NOINLINE glProgramUniform1uivFunPtr #-}
+
+-- | Usage: @'glProgramUniform2d' program location v0 v1@
+
+
+glProgramUniform2d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> m ()
+glProgramUniform2d = ffiuintintdoubledoubleIOV glProgramUniform2dFunPtr
+
+glProgramUniform2dFunPtr :: FunPtr (GLuint -> GLint -> GLdouble -> GLdouble -> IO ())
+glProgramUniform2dFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2d")
+
+{-# NOINLINE glProgramUniform2dFunPtr #-}
+
+-- | Usage: @'glProgramUniform2dv' program location count value@
+--
+-- The length of @value@ should be @count*2@.
+
+
+glProgramUniform2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
+glProgramUniform2dv = ffiuintintsizeiPtrdoubleIOV glProgramUniform2dvFunPtr
+
+glProgramUniform2dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())
+glProgramUniform2dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2dv")
+
+{-# NOINLINE glProgramUniform2dvFunPtr #-}
+
+-- | Usage: @'glProgramUniform2f' program location v0 v1@
+
+
+glProgramUniform2f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> m ()
+glProgramUniform2f = ffiuintintfloatfloatIOV glProgramUniform2fFunPtr
+
+glProgramUniform2fFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> IO ())
+glProgramUniform2fFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2f")
+
+{-# NOINLINE glProgramUniform2fFunPtr #-}
+
+-- | Usage: @'glProgramUniform2fv' program location count value@
+--
+-- The length of @value@ should be @count*2@.
+
+
+glProgramUniform2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
+glProgramUniform2fv = ffiuintintsizeiPtrfloatIOV glProgramUniform2fvFunPtr
+
+glProgramUniform2fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
+glProgramUniform2fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2fv")
+
+{-# NOINLINE glProgramUniform2fvFunPtr #-}
+
+-- | Usage: @'glProgramUniform2i' program location v0 v1@
+
+
+glProgramUniform2i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()
+glProgramUniform2i = ffiuintintintintIOV glProgramUniform2iFunPtr
+
+glProgramUniform2iFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> IO ())
+glProgramUniform2iFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2i")
+
+{-# NOINLINE glProgramUniform2iFunPtr #-}
+
+-- | Usage: @'glProgramUniform2iv' program location count value@
+--
+-- The length of @value@ should be @count*2@.
+
+
+glProgramUniform2iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
+glProgramUniform2iv = ffiuintintsizeiPtrintIOV glProgramUniform2ivFunPtr
+
+glProgramUniform2ivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
+glProgramUniform2ivFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2iv")
+
+{-# NOINLINE glProgramUniform2ivFunPtr #-}
+
+-- | Usage: @'glProgramUniform2ui' program location v0 v1@
+
+
+glProgramUniform2ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> m ()
+glProgramUniform2ui = ffiuintintuintuintIOV glProgramUniform2uiFunPtr
+
+glProgramUniform2uiFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> IO ())
+glProgramUniform2uiFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2ui")
+
+{-# NOINLINE glProgramUniform2uiFunPtr #-}
+
+-- | Usage: @'glProgramUniform2uiv' program location count value@
+--
+-- The length of @value@ should be @count*2@.
+
+
+glProgramUniform2uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
+glProgramUniform2uiv = ffiuintintsizeiPtruintIOV glProgramUniform2uivFunPtr
+
+glProgramUniform2uivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
+glProgramUniform2uivFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2uiv")
+
+{-# NOINLINE glProgramUniform2uivFunPtr #-}
+
+-- | Usage: @'glProgramUniform3d' program location v0 v1 v2@
+
+
+glProgramUniform3d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> m ()
+glProgramUniform3d = ffiuintintdoubledoubledoubleIOV glProgramUniform3dFunPtr
+
+glProgramUniform3dFunPtr :: FunPtr (GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glProgramUniform3dFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3d")
+
+{-# NOINLINE glProgramUniform3dFunPtr #-}
+
+-- | Usage: @'glProgramUniform3dv' program location count value@
+--
+-- The length of @value@ should be @count*3@.
+
+
+glProgramUniform3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
+glProgramUniform3dv = ffiuintintsizeiPtrdoubleIOV glProgramUniform3dvFunPtr
+
+glProgramUniform3dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())
+glProgramUniform3dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3dv")
+
+{-# NOINLINE glProgramUniform3dvFunPtr #-}
+
+-- | Usage: @'glProgramUniform3f' program location v0 v1 v2@
+
+
+glProgramUniform3f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> m ()
+glProgramUniform3f = ffiuintintfloatfloatfloatIOV glProgramUniform3fFunPtr
+
+glProgramUniform3fFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glProgramUniform3fFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3f")
+
+{-# NOINLINE glProgramUniform3fFunPtr #-}
+
+-- | Usage: @'glProgramUniform3fv' program location count value@
+--
+-- The length of @value@ should be @count*3@.
+
+
+glProgramUniform3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
+glProgramUniform3fv = ffiuintintsizeiPtrfloatIOV glProgramUniform3fvFunPtr
+
+glProgramUniform3fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
+glProgramUniform3fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3fv")
+
+{-# NOINLINE glProgramUniform3fvFunPtr #-}
+
+-- | Usage: @'glProgramUniform3i' program location v0 v1 v2@
+
+
+glProgramUniform3i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
+glProgramUniform3i = ffiuintintintintintIOV glProgramUniform3iFunPtr
+
+glProgramUniform3iFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
+glProgramUniform3iFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3i")
+
+{-# NOINLINE glProgramUniform3iFunPtr #-}
+
+-- | Usage: @'glProgramUniform3iv' program location count value@
+--
+-- The length of @value@ should be @count*3@.
+
+
+glProgramUniform3iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
+glProgramUniform3iv = ffiuintintsizeiPtrintIOV glProgramUniform3ivFunPtr
+
+glProgramUniform3ivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
+glProgramUniform3ivFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3iv")
+
+{-# NOINLINE glProgramUniform3ivFunPtr #-}
+
+-- | Usage: @'glProgramUniform3ui' program location v0 v1 v2@
+
+
+glProgramUniform3ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> m ()
+glProgramUniform3ui = ffiuintintuintuintuintIOV glProgramUniform3uiFunPtr
+
+glProgramUniform3uiFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> GLuint -> IO ())
+glProgramUniform3uiFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3ui")
+
+{-# NOINLINE glProgramUniform3uiFunPtr #-}
+
+-- | Usage: @'glProgramUniform3uiv' program location count value@
+--
+-- The length of @value@ should be @count*3@.
+
+
+glProgramUniform3uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
+glProgramUniform3uiv = ffiuintintsizeiPtruintIOV glProgramUniform3uivFunPtr
+
+glProgramUniform3uivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
+glProgramUniform3uivFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3uiv")
+
+{-# NOINLINE glProgramUniform3uivFunPtr #-}
+
+-- | Usage: @'glProgramUniform4d' program location v0 v1 v2 v3@
+
+
+glProgramUniform4d :: MonadIO m => GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glProgramUniform4d = ffiuintintdoubledoubledoubledoubleIOV glProgramUniform4dFunPtr
+
+glProgramUniform4dFunPtr :: FunPtr (GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glProgramUniform4dFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4d")
+
+{-# NOINLINE glProgramUniform4dFunPtr #-}
+
+-- | Usage: @'glProgramUniform4dv' program location count value@
+--
+-- The length of @value@ should be @count*4@.
+
+
+glProgramUniform4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLdouble -> m ()
+glProgramUniform4dv = ffiuintintsizeiPtrdoubleIOV glProgramUniform4dvFunPtr
+
+glProgramUniform4dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())
+glProgramUniform4dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4dv")
+
+{-# NOINLINE glProgramUniform4dvFunPtr #-}
+
+-- | Usage: @'glProgramUniform4f' program location v0 v1 v2 v3@
+
+
+glProgramUniform4f :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glProgramUniform4f = ffiuintintfloatfloatfloatfloatIOV glProgramUniform4fFunPtr
+
+glProgramUniform4fFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glProgramUniform4fFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4f")
+
+{-# NOINLINE glProgramUniform4fFunPtr #-}
+
+-- | Usage: @'glProgramUniform4fv' program location count value@
+--
+-- The length of @value@ should be @count*4@.
+
+
+glProgramUniform4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
+glProgramUniform4fv = ffiuintintsizeiPtrfloatIOV glProgramUniform4fvFunPtr
+
+glProgramUniform4fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
+glProgramUniform4fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4fv")
+
+{-# NOINLINE glProgramUniform4fvFunPtr #-}
+
+-- | Usage: @'glProgramUniform4i' program location v0 v1 v2 v3@
+
+
+glProgramUniform4i :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> m ()
+glProgramUniform4i = ffiuintintintintintintIOV glProgramUniform4iFunPtr
+
+glProgramUniform4iFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> IO ())
+glProgramUniform4iFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4i")
+
+{-# NOINLINE glProgramUniform4iFunPtr #-}
+
+-- | Usage: @'glProgramUniform4iv' program location count value@
+--
+-- The length of @value@ should be @count*4@.
+
+
+glProgramUniform4iv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
+glProgramUniform4iv = ffiuintintsizeiPtrintIOV glProgramUniform4ivFunPtr
+
+glProgramUniform4ivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
+glProgramUniform4ivFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4iv")
+
+{-# NOINLINE glProgramUniform4ivFunPtr #-}
+
+-- | Usage: @'glProgramUniform4ui' program location v0 v1 v2 v3@
+
+
+glProgramUniform4ui :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
+glProgramUniform4ui = ffiuintintuintuintuintuintIOV glProgramUniform4uiFunPtr
+
+glProgramUniform4uiFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+glProgramUniform4uiFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4ui")
+
+{-# NOINLINE glProgramUniform4uiFunPtr #-}
+
+-- | Usage: @'glProgramUniform4uiv' program location count value@
+--
+-- The length of @value@ should be @count*4@.
+
+
+glProgramUniform4uiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
+glProgramUniform4uiv = ffiuintintsizeiPtruintIOV glProgramUniform4uivFunPtr
+
+glProgramUniform4uivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
+glProgramUniform4uivFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4uiv")
+
+{-# NOINLINE glProgramUniform4uivFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix2dv' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*4@.
+
+
+glProgramUniformMatrix2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glProgramUniformMatrix2dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix2dvFunPtr
+
+glProgramUniformMatrix2dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glProgramUniformMatrix2dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2dv")
+
+{-# NOINLINE glProgramUniformMatrix2dvFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix2fv' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*4@.
+
+
+glProgramUniformMatrix2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix2fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix2fvFunPtr
+
+glProgramUniformMatrix2fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix2fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2fv")
+
+{-# NOINLINE glProgramUniformMatrix2fvFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix2x3dv' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*6@.
+
+
+glProgramUniformMatrix2x3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glProgramUniformMatrix2x3dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix2x3dvFunPtr
+
+glProgramUniformMatrix2x3dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glProgramUniformMatrix2x3dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2x3dv")
+
+{-# NOINLINE glProgramUniformMatrix2x3dvFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix2x3fv' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*6@.
+
+
+glProgramUniformMatrix2x3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix2x3fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix2x3fvFunPtr
+
+glProgramUniformMatrix2x3fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix2x3fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2x3fv")
+
+{-# NOINLINE glProgramUniformMatrix2x3fvFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix2x4dv' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*8@.
+
+
+glProgramUniformMatrix2x4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glProgramUniformMatrix2x4dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix2x4dvFunPtr
+
+glProgramUniformMatrix2x4dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glProgramUniformMatrix2x4dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2x4dv")
+
+{-# NOINLINE glProgramUniformMatrix2x4dvFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix2x4fv' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*8@.
+
+
+glProgramUniformMatrix2x4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix2x4fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix2x4fvFunPtr
+
+glProgramUniformMatrix2x4fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix2x4fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2x4fv")
+
+{-# NOINLINE glProgramUniformMatrix2x4fvFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix3dv' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*9@.
+
+
+glProgramUniformMatrix3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glProgramUniformMatrix3dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix3dvFunPtr
+
+glProgramUniformMatrix3dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glProgramUniformMatrix3dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3dv")
+
+{-# NOINLINE glProgramUniformMatrix3dvFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix3fv' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*9@.
+
+
+glProgramUniformMatrix3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix3fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix3fvFunPtr
+
+glProgramUniformMatrix3fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix3fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3fv")
+
+{-# NOINLINE glProgramUniformMatrix3fvFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix3x2dv' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*6@.
+
+
+glProgramUniformMatrix3x2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glProgramUniformMatrix3x2dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix3x2dvFunPtr
+
+glProgramUniformMatrix3x2dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glProgramUniformMatrix3x2dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3x2dv")
+
+{-# NOINLINE glProgramUniformMatrix3x2dvFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix3x2fv' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*6@.
+
+
+glProgramUniformMatrix3x2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix3x2fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix3x2fvFunPtr
+
+glProgramUniformMatrix3x2fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix3x2fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3x2fv")
+
+{-# NOINLINE glProgramUniformMatrix3x2fvFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix3x4dv' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*12@.
+
+
+glProgramUniformMatrix3x4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glProgramUniformMatrix3x4dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix3x4dvFunPtr
+
+glProgramUniformMatrix3x4dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glProgramUniformMatrix3x4dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3x4dv")
+
+{-# NOINLINE glProgramUniformMatrix3x4dvFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix3x4fv' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*12@.
+
+
+glProgramUniformMatrix3x4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix3x4fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix3x4fvFunPtr
+
+glProgramUniformMatrix3x4fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix3x4fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3x4fv")
+
+{-# NOINLINE glProgramUniformMatrix3x4fvFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix4dv' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*16@.
+
+
+glProgramUniformMatrix4dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glProgramUniformMatrix4dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix4dvFunPtr
+
+glProgramUniformMatrix4dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glProgramUniformMatrix4dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4dv")
+
+{-# NOINLINE glProgramUniformMatrix4dvFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix4fv' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*16@.
+
+
+glProgramUniformMatrix4fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix4fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix4fvFunPtr
+
+glProgramUniformMatrix4fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix4fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4fv")
+
+{-# NOINLINE glProgramUniformMatrix4fvFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix4x2dv' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*8@.
+
+
+glProgramUniformMatrix4x2dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glProgramUniformMatrix4x2dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix4x2dvFunPtr
+
+glProgramUniformMatrix4x2dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glProgramUniformMatrix4x2dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4x2dv")
+
+{-# NOINLINE glProgramUniformMatrix4x2dvFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix4x2fv' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*8@.
+
+
+glProgramUniformMatrix4x2fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix4x2fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix4x2fvFunPtr
+
+glProgramUniformMatrix4x2fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix4x2fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4x2fv")
+
+{-# NOINLINE glProgramUniformMatrix4x2fvFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix4x3dv' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*12@.
+
+
+glProgramUniformMatrix4x3dv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> m ()
+glProgramUniformMatrix4x3dv = ffiuintintsizeibooleanPtrdoubleIOV glProgramUniformMatrix4x3dvFunPtr
+
+glProgramUniformMatrix4x3dvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+glProgramUniformMatrix4x3dvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4x3dv")
+
+{-# NOINLINE glProgramUniformMatrix4x3dvFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix4x3fv' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*12@.
+
+
+glProgramUniformMatrix4x3fv :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix4x3fv = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix4x3fvFunPtr
+
+glProgramUniformMatrix4x3fvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix4x3fvFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4x3fv")
+
+{-# NOINLINE glProgramUniformMatrix4x3fvFunPtr #-}
+
+-- | Usage: @'glReleaseShaderCompiler'@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glReleaseShaderCompiler.xhtml>
+
+
+glReleaseShaderCompiler :: MonadIO m => m ()
+glReleaseShaderCompiler = ffiIOV glReleaseShaderCompilerFunPtr
+
+glReleaseShaderCompilerFunPtr :: FunPtr (IO ())
+glReleaseShaderCompilerFunPtr = unsafePerformIO (getProcAddress "glReleaseShaderCompiler")
+
+{-# NOINLINE glReleaseShaderCompilerFunPtr #-}
+
+-- | Usage: @'glScissorArrayv' first count v@
+--
+-- The length of @v@ should be @COMPSIZE(count)@.
+
+
+glScissorArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLint -> m ()
+glScissorArrayv = ffiuintsizeiPtrintIOV glScissorArrayvFunPtr
+
+glScissorArrayvFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLint -> IO ())
+glScissorArrayvFunPtr = unsafePerformIO (getProcAddress "glScissorArrayv")
+
+{-# NOINLINE glScissorArrayvFunPtr #-}
+
+-- | Usage: @'glScissorIndexed' index left bottom width height@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glScissorIndexed.xhtml>
+
+
+glScissorIndexed :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
+glScissorIndexed = ffiuintintintsizeisizeiIOV glScissorIndexedFunPtr
+
+glScissorIndexedFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+glScissorIndexedFunPtr = unsafePerformIO (getProcAddress "glScissorIndexed")
+
+{-# NOINLINE glScissorIndexedFunPtr #-}
+
+-- | Usage: @'glScissorIndexedv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glScissorIndexedv :: MonadIO m => GLuint -> Ptr GLint -> m ()
+glScissorIndexedv = ffiuintPtrintIOV glScissorIndexedvFunPtr
+
+glScissorIndexedvFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
+glScissorIndexedvFunPtr = unsafePerformIO (getProcAddress "glScissorIndexedv")
+
+{-# NOINLINE glScissorIndexedvFunPtr #-}
+
+-- | Usage: @'glShaderBinary' count shaders binaryformat binary length@
+--
+-- The length of @shaders@ should be @count@.
+--
+-- The length of @binary@ should be @length@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glShaderBinary.xhtml>
+
+
+glShaderBinary :: MonadIO m => GLsizei -> Ptr GLuint -> GLenum -> Ptr () -> GLsizei -> m ()
+glShaderBinary = ffisizeiPtruintenumPtrVsizeiIOV glShaderBinaryFunPtr
+
+glShaderBinaryFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> GLenum -> Ptr () -> GLsizei -> IO ())
+glShaderBinaryFunPtr = unsafePerformIO (getProcAddress "glShaderBinary")
+
+{-# NOINLINE glShaderBinaryFunPtr #-}
+
+-- | Usage: @'glUseProgramStages' pipeline stages program@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glUseProgramStages.xhtml>
+
+
+glUseProgramStages :: MonadIO m => GLuint -> GLbitfield -> GLuint -> m ()
+glUseProgramStages = ffiuintbitfielduintIOV glUseProgramStagesFunPtr
+
+glUseProgramStagesFunPtr :: FunPtr (GLuint -> GLbitfield -> GLuint -> IO ())
+glUseProgramStagesFunPtr = unsafePerformIO (getProcAddress "glUseProgramStages")
+
+{-# NOINLINE glUseProgramStagesFunPtr #-}
+
+-- | Usage: @'glValidateProgramPipeline' pipeline@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glValidateProgramPipeline.xhtml>
+
+
+glValidateProgramPipeline :: MonadIO m => GLuint -> m ()
+glValidateProgramPipeline = ffiuintIOV glValidateProgramPipelineFunPtr
+
+glValidateProgramPipelineFunPtr :: FunPtr (GLuint -> IO ())
+glValidateProgramPipelineFunPtr = unsafePerformIO (getProcAddress "glValidateProgramPipeline")
+
+{-# NOINLINE glValidateProgramPipelineFunPtr #-}
+
+-- | Usage: @'glVertexAttribL1d' index x@
+
+
+glVertexAttribL1d :: MonadIO m => GLuint -> GLdouble -> m ()
+glVertexAttribL1d = ffiuintdoubleIOV glVertexAttribL1dFunPtr
+
+glVertexAttribL1dFunPtr :: FunPtr (GLuint -> GLdouble -> IO ())
+glVertexAttribL1dFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL1d")
+
+{-# NOINLINE glVertexAttribL1dFunPtr #-}
+
+-- | Usage: @'glVertexAttribL1dv' index v@
+--
+-- The length of @v@ should be @1@.
+
+
+glVertexAttribL1dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
+glVertexAttribL1dv = ffiuintPtrdoubleIOV glVertexAttribL1dvFunPtr
+
+glVertexAttribL1dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+glVertexAttribL1dvFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL1dv")
+
+{-# NOINLINE glVertexAttribL1dvFunPtr #-}
+
+-- | Usage: @'glVertexAttribL2d' index x y@
+
+
+glVertexAttribL2d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()
+glVertexAttribL2d = ffiuintdoubledoubleIOV glVertexAttribL2dFunPtr
+
+glVertexAttribL2dFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> IO ())
+glVertexAttribL2dFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL2d")
+
+{-# NOINLINE glVertexAttribL2dFunPtr #-}
+
+-- | Usage: @'glVertexAttribL2dv' index v@
+--
+-- The length of @v@ should be @2@.
+
+
+glVertexAttribL2dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
+glVertexAttribL2dv = ffiuintPtrdoubleIOV glVertexAttribL2dvFunPtr
+
+glVertexAttribL2dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+glVertexAttribL2dvFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL2dv")
+
+{-# NOINLINE glVertexAttribL2dvFunPtr #-}
+
+-- | Usage: @'glVertexAttribL3d' index x y z@
+
+
+glVertexAttribL3d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()
+glVertexAttribL3d = ffiuintdoubledoubledoubleIOV glVertexAttribL3dFunPtr
+
+glVertexAttribL3dFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glVertexAttribL3dFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL3d")
+
+{-# NOINLINE glVertexAttribL3dFunPtr #-}
+
+-- | Usage: @'glVertexAttribL3dv' index v@
+--
+-- The length of @v@ should be @3@.
+
+
+glVertexAttribL3dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
+glVertexAttribL3dv = ffiuintPtrdoubleIOV glVertexAttribL3dvFunPtr
+
+glVertexAttribL3dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+glVertexAttribL3dvFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL3dv")
+
+{-# NOINLINE glVertexAttribL3dvFunPtr #-}
+
+-- | Usage: @'glVertexAttribL4d' index x y z w@
+
+
+glVertexAttribL4d :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glVertexAttribL4d = ffiuintdoubledoubledoubledoubleIOV glVertexAttribL4dFunPtr
+
+glVertexAttribL4dFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glVertexAttribL4dFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL4d")
+
+{-# NOINLINE glVertexAttribL4dFunPtr #-}
+
+-- | Usage: @'glVertexAttribL4dv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glVertexAttribL4dv :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
+glVertexAttribL4dv = ffiuintPtrdoubleIOV glVertexAttribL4dvFunPtr
+
+glVertexAttribL4dvFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+glVertexAttribL4dvFunPtr = unsafePerformIO (getProcAddress "glVertexAttribL4dv")
+
+{-# NOINLINE glVertexAttribL4dvFunPtr #-}
+
+-- | Usage: @'glVertexAttribLPointer' index size type stride pointer@
+--
+-- The length of @pointer@ should be @size@.
+
+
+glVertexAttribLPointer :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> m ()
+glVertexAttribLPointer = ffiuintintenumsizeiPtrVIOV glVertexAttribLPointerFunPtr
+
+glVertexAttribLPointerFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> IO ())
+glVertexAttribLPointerFunPtr = unsafePerformIO (getProcAddress "glVertexAttribLPointer")
+
+{-# NOINLINE glVertexAttribLPointerFunPtr #-}
+
+-- | Usage: @'glViewportArrayv' first count v@
+--
+-- The length of @v@ should be @COMPSIZE(count)@.
+
+
+glViewportArrayv :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m ()
+glViewportArrayv = ffiuintsizeiPtrfloatIOV glViewportArrayvFunPtr
+
+glViewportArrayvFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+glViewportArrayvFunPtr = unsafePerformIO (getProcAddress "glViewportArrayv")
+
+{-# NOINLINE glViewportArrayvFunPtr #-}
+
+-- | Usage: @'glViewportIndexedf' index x y w h@
+
+
+glViewportIndexedf :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glViewportIndexedf = ffiuintfloatfloatfloatfloatIOV glViewportIndexedfFunPtr
+
+glViewportIndexedfFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glViewportIndexedfFunPtr = unsafePerformIO (getProcAddress "glViewportIndexedf")
+
+{-# NOINLINE glViewportIndexedfFunPtr #-}
+
+-- | Usage: @'glViewportIndexedfv' index v@
+--
+-- The length of @v@ should be @4@.
+
+
+glViewportIndexedfv :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
+glViewportIndexedfv = ffiuintPtrfloatIOV glViewportIndexedfvFunPtr
+
+glViewportIndexedfvFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+glViewportIndexedfvFunPtr = unsafePerformIO (getProcAddress "glViewportIndexedfv")
+
+{-# NOINLINE glViewportIndexedfvFunPtr #-}
+
+pattern GL_ACTIVE_PROGRAM  :: (Eq a, Num a) => a
+
+pattern GL_ACTIVE_PROGRAM = 0x8259
+
+pattern GL_ALL_SHADER_BITS  :: (Eq a, Num a) => a
+
+pattern GL_ALL_SHADER_BITS = 0xFFFFFFFF
+
+pattern GL_FIXED  :: (Eq a, Num a) => a
+
+pattern GL_FIXED = 0x140C
+
+pattern GL_FRAGMENT_SHADER_BIT  :: (Eq a, Num a) => a
+
+pattern GL_FRAGMENT_SHADER_BIT = 0x00000002
+
+pattern GL_GEOMETRY_SHADER_BIT  :: (Eq a, Num a) => a
+
+pattern GL_GEOMETRY_SHADER_BIT = 0x00000004
+
+pattern GL_HIGH_FLOAT  :: (Eq a, Num a) => a
+
+pattern GL_HIGH_FLOAT = 0x8DF2
+
+pattern GL_HIGH_INT  :: (Eq a, Num a) => a
+
+pattern GL_HIGH_INT = 0x8DF5
+
+pattern GL_IMPLEMENTATION_COLOR_READ_FORMAT  :: (Eq a, Num a) => a
+
+pattern GL_IMPLEMENTATION_COLOR_READ_FORMAT = 0x8B9B
+
+pattern GL_IMPLEMENTATION_COLOR_READ_TYPE  :: (Eq a, Num a) => a
+
+pattern GL_IMPLEMENTATION_COLOR_READ_TYPE = 0x8B9A
+
+pattern GL_LAYER_PROVOKING_VERTEX  :: (Eq a, Num a) => a
+
+pattern GL_LAYER_PROVOKING_VERTEX = 0x825E
+
+pattern GL_LOW_FLOAT  :: (Eq a, Num a) => a
+
+pattern GL_LOW_FLOAT = 0x8DF0
+
+pattern GL_LOW_INT  :: (Eq a, Num a) => a
+
+pattern GL_LOW_INT = 0x8DF3
+
+pattern GL_MAX_FRAGMENT_UNIFORM_VECTORS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_FRAGMENT_UNIFORM_VECTORS = 0x8DFD
+
+pattern GL_MAX_VARYING_VECTORS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_VARYING_VECTORS = 0x8DFC
+
+pattern GL_MAX_VERTEX_UNIFORM_VECTORS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_VERTEX_UNIFORM_VECTORS = 0x8DFB
+
+pattern GL_MAX_VIEWPORTS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_VIEWPORTS = 0x825B
+
+pattern GL_MEDIUM_FLOAT  :: (Eq a, Num a) => a
+
+pattern GL_MEDIUM_FLOAT = 0x8DF1
+
+pattern GL_MEDIUM_INT  :: (Eq a, Num a) => a
+
+pattern GL_MEDIUM_INT = 0x8DF4
+
+pattern GL_NUM_PROGRAM_BINARY_FORMATS  :: (Eq a, Num a) => a
+
+pattern GL_NUM_PROGRAM_BINARY_FORMATS = 0x87FE
+
+pattern GL_NUM_SHADER_BINARY_FORMATS  :: (Eq a, Num a) => a
+
+pattern GL_NUM_SHADER_BINARY_FORMATS = 0x8DF9
+
+pattern GL_PROGRAM_BINARY_FORMATS  :: (Eq a, Num a) => a
+
+pattern GL_PROGRAM_BINARY_FORMATS = 0x87FF
+
+pattern GL_PROGRAM_BINARY_LENGTH  :: (Eq a, Num a) => a
+
+pattern GL_PROGRAM_BINARY_LENGTH = 0x8741
+
+pattern GL_PROGRAM_BINARY_RETRIEVABLE_HINT  :: (Eq a, Num a) => a
+
+pattern GL_PROGRAM_BINARY_RETRIEVABLE_HINT = 0x8257
+
+pattern GL_PROGRAM_PIPELINE_BINDING  :: (Eq a, Num a) => a
+
+pattern GL_PROGRAM_PIPELINE_BINDING = 0x825A
+
+pattern GL_PROGRAM_SEPARABLE  :: (Eq a, Num a) => a
+
+pattern GL_PROGRAM_SEPARABLE = 0x8258
+
+pattern GL_RGB565  :: (Eq a, Num a) => a
+
+pattern GL_RGB565 = 0x8D62
+
+pattern GL_SHADER_BINARY_FORMATS  :: (Eq a, Num a) => a
+
+pattern GL_SHADER_BINARY_FORMATS = 0x8DF8
+
+pattern GL_SHADER_COMPILER  :: (Eq a, Num a) => a
+
+pattern GL_SHADER_COMPILER = 0x8DFA
+
+pattern GL_TESS_CONTROL_SHADER_BIT  :: (Eq a, Num a) => a
+
+pattern GL_TESS_CONTROL_SHADER_BIT = 0x00000008
+
+pattern GL_TESS_EVALUATION_SHADER_BIT  :: (Eq a, Num a) => a
+
+pattern GL_TESS_EVALUATION_SHADER_BIT = 0x00000010
+
+pattern GL_UNDEFINED_VERTEX  :: (Eq a, Num a) => a
+
+pattern GL_UNDEFINED_VERTEX = 0x8260
+
+pattern GL_VERTEX_SHADER_BIT  :: (Eq a, Num a) => a
+
+pattern GL_VERTEX_SHADER_BIT = 0x00000001
+
+pattern GL_VIEWPORT_BOUNDS_RANGE  :: (Eq a, Num a) => a
+
+pattern GL_VIEWPORT_BOUNDS_RANGE = 0x825D
+
+pattern GL_VIEWPORT_INDEX_PROVOKING_VERTEX  :: (Eq a, Num a) => a
+
+pattern GL_VIEWPORT_INDEX_PROVOKING_VERTEX = 0x825F
+
+pattern GL_VIEWPORT_SUBPIXEL_BITS  :: (Eq a, Num a) => a
+
+pattern GL_VIEWPORT_SUBPIXEL_BITS = 0x825C
+
+-- | Usage: @'glBindImageTexture' unit texture level layered layer access format@
+--
+-- The parameter @layered@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindImageTexture.xhtml>
+
+
+glBindImageTexture :: MonadIO m => GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLenum -> m ()
+glBindImageTexture = ffiuintuintintbooleanintenumenumIOV glBindImageTextureFunPtr
+
+glBindImageTextureFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLenum -> IO ())
+glBindImageTextureFunPtr = unsafePerformIO (getProcAddress "glBindImageTexture")
+
+{-# NOINLINE glBindImageTextureFunPtr #-}
+
+-- | Usage: @'glDrawArraysInstancedBaseInstance' mode first count instancecount baseinstance@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawArraysInstancedBaseInstance.xhtml>
+
+
+glDrawArraysInstancedBaseInstance :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> GLuint -> m ()
+glDrawArraysInstancedBaseInstance = ffienumintsizeisizeiuintIOV glDrawArraysInstancedBaseInstanceFunPtr
+
+glDrawArraysInstancedBaseInstanceFunPtr :: FunPtr (GLenum -> GLint -> GLsizei -> GLsizei -> GLuint -> IO ())
+glDrawArraysInstancedBaseInstanceFunPtr = unsafePerformIO (getProcAddress "glDrawArraysInstancedBaseInstance")
+
+{-# NOINLINE glDrawArraysInstancedBaseInstanceFunPtr #-}
+
+-- | Usage: @'glDrawElementsInstancedBaseInstance' mode count type indices instancecount baseinstance@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- The length of @indices@ should be @count@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawElementsInstancedBaseInstance.xhtml>
+
+
+glDrawElementsInstancedBaseInstance :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLuint -> m ()
+glDrawElementsInstancedBaseInstance = ffienumsizeienumPtrVsizeiuintIOV glDrawElementsInstancedBaseInstanceFunPtr
+
+glDrawElementsInstancedBaseInstanceFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLuint -> IO ())
+glDrawElementsInstancedBaseInstanceFunPtr = unsafePerformIO (getProcAddress "glDrawElementsInstancedBaseInstance")
+
+{-# NOINLINE glDrawElementsInstancedBaseInstanceFunPtr #-}
+
+-- | Usage: @'glDrawElementsInstancedBaseVertexBaseInstance' mode count type indices instancecount basevertex baseinstance@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- The length of @indices@ should be @count@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawElementsInstancedBaseVertexBaseInstance.xhtml>
+
+
+glDrawElementsInstancedBaseVertexBaseInstance :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> GLuint -> m ()
+glDrawElementsInstancedBaseVertexBaseInstance = ffienumsizeienumPtrVsizeiintuintIOV glDrawElementsInstancedBaseVertexBaseInstanceFunPtr
+
+glDrawElementsInstancedBaseVertexBaseInstanceFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GLint -> GLuint -> IO ())
+glDrawElementsInstancedBaseVertexBaseInstanceFunPtr = unsafePerformIO (getProcAddress "glDrawElementsInstancedBaseVertexBaseInstance")
+
+{-# NOINLINE glDrawElementsInstancedBaseVertexBaseInstanceFunPtr #-}
+
+-- | Usage: @'glDrawTransformFeedbackInstanced' mode id instancecount@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawTransformFeedbackInstanced.xhtml>
+
+
+glDrawTransformFeedbackInstanced :: MonadIO m => GLenum -> GLuint -> GLsizei -> m ()
+glDrawTransformFeedbackInstanced = ffienumuintsizeiIOV glDrawTransformFeedbackInstancedFunPtr
+
+glDrawTransformFeedbackInstancedFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> IO ())
+glDrawTransformFeedbackInstancedFunPtr = unsafePerformIO (getProcAddress "glDrawTransformFeedbackInstanced")
+
+{-# NOINLINE glDrawTransformFeedbackInstancedFunPtr #-}
+
+-- | Usage: @'glDrawTransformFeedbackStreamInstanced' mode id stream instancecount@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDrawTransformFeedbackStreamInstanced.xhtml>
+
+
+glDrawTransformFeedbackStreamInstanced :: MonadIO m => GLenum -> GLuint -> GLuint -> GLsizei -> m ()
+glDrawTransformFeedbackStreamInstanced = ffienumuintuintsizeiIOV glDrawTransformFeedbackStreamInstancedFunPtr
+
+glDrawTransformFeedbackStreamInstancedFunPtr :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> IO ())
+glDrawTransformFeedbackStreamInstancedFunPtr = unsafePerformIO (getProcAddress "glDrawTransformFeedbackStreamInstanced")
+
+{-# NOINLINE glDrawTransformFeedbackStreamInstancedFunPtr #-}
+
+-- | Usage: @'glGetActiveAtomicCounterBufferiv' program bufferIndex pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetActiveAtomicCounterBufferiv.xhtml>
+
+
+glGetActiveAtomicCounterBufferiv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()
+glGetActiveAtomicCounterBufferiv = ffiuintuintenumPtrintIOV glGetActiveAtomicCounterBufferivFunPtr
+
+glGetActiveAtomicCounterBufferivFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetActiveAtomicCounterBufferivFunPtr = unsafePerformIO (getProcAddress "glGetActiveAtomicCounterBufferiv")
+
+{-# NOINLINE glGetActiveAtomicCounterBufferivFunPtr #-}
+
+-- | Usage: @'glGetInternalformativ' target internalformat pname bufSize params@
+--
+-- The length of @params@ should be @bufSize@.
+
+
+glGetInternalformativ :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint -> m ()
+glGetInternalformativ = ffienumenumenumsizeiPtrintIOV glGetInternalformativFunPtr
+
+glGetInternalformativFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint -> IO ())
+glGetInternalformativFunPtr = unsafePerformIO (getProcAddress "glGetInternalformativ")
+
+{-# NOINLINE glGetInternalformativFunPtr #-}
+
+-- | Usage: @'glMemoryBarrier' barriers@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glMemoryBarrier.xhtml>
+
+
+glMemoryBarrier :: MonadIO m => GLbitfield -> m ()
+glMemoryBarrier = ffibitfieldIOV glMemoryBarrierFunPtr
+
+glMemoryBarrierFunPtr :: FunPtr (GLbitfield -> IO ())
+glMemoryBarrierFunPtr = unsafePerformIO (getProcAddress "glMemoryBarrier")
+
+{-# NOINLINE glMemoryBarrierFunPtr #-}
+
+-- | Usage: @'glTexStorage1D' target levels internalformat width@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexStorage1D.xhtml>
+
+
+glTexStorage1D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> m ()
+glTexStorage1D = ffienumsizeienumsizeiIOV glTexStorage1DFunPtr
+
+glTexStorage1DFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> IO ())
+glTexStorage1DFunPtr = unsafePerformIO (getProcAddress "glTexStorage1D")
+
+{-# NOINLINE glTexStorage1DFunPtr #-}
+
+-- | Usage: @'glTexStorage2D' target levels internalformat width height@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexStorage2D.xhtml>
+
+
+glTexStorage2D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
+glTexStorage2D = ffienumsizeienumsizeisizeiIOV glTexStorage2DFunPtr
+
+glTexStorage2DFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
+glTexStorage2DFunPtr = unsafePerformIO (getProcAddress "glTexStorage2D")
+
+{-# NOINLINE glTexStorage2DFunPtr #-}
+
+-- | Usage: @'glTexStorage3D' target levels internalformat width height depth@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexStorage3D.xhtml>
+
+
+glTexStorage3D :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()
+glTexStorage3D = ffienumsizeienumsizeisizeisizeiIOV glTexStorage3DFunPtr
+
+glTexStorage3DFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ())
+glTexStorage3DFunPtr = unsafePerformIO (getProcAddress "glTexStorage3D")
+
+{-# NOINLINE glTexStorage3DFunPtr #-}
+
+pattern GL_ACTIVE_ATOMIC_COUNTER_BUFFERS  :: (Eq a, Num a) => a
+
+pattern GL_ACTIVE_ATOMIC_COUNTER_BUFFERS = 0x92D9
+
+pattern GL_ALL_BARRIER_BITS  :: (Eq a, Num a) => a
+
+pattern GL_ALL_BARRIER_BITS = 0xFFFFFFFF
+
+pattern GL_ATOMIC_COUNTER_BARRIER_BIT  :: (Eq a, Num a) => a
+
+pattern GL_ATOMIC_COUNTER_BARRIER_BIT = 0x00001000
+
+pattern GL_ATOMIC_COUNTER_BUFFER  :: (Eq a, Num a) => a
+
+pattern GL_ATOMIC_COUNTER_BUFFER = 0x92C0
+
+pattern GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS  :: (Eq a, Num a) => a
+
+pattern GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS = 0x92C5
+
+pattern GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES  :: (Eq a, Num a) => a
+
+pattern GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES = 0x92C6
+
+pattern GL_ATOMIC_COUNTER_BUFFER_BINDING  :: (Eq a, Num a) => a
+
+pattern GL_ATOMIC_COUNTER_BUFFER_BINDING = 0x92C1
+
+pattern GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE = 0x92C4
+
+pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER  :: (Eq a, Num a) => a
+
+pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER = 0x92CB
+
+pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER  :: (Eq a, Num a) => a
+
+pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER = 0x92CA
+
+pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER  :: (Eq a, Num a) => a
+
+pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER = 0x92C8
+
+pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER  :: (Eq a, Num a) => a
+
+pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x92C9
+
+pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER  :: (Eq a, Num a) => a
+
+pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER = 0x92C7
+
+pattern GL_ATOMIC_COUNTER_BUFFER_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_ATOMIC_COUNTER_BUFFER_SIZE = 0x92C3
+
+pattern GL_ATOMIC_COUNTER_BUFFER_START  :: (Eq a, Num a) => a
+
+pattern GL_ATOMIC_COUNTER_BUFFER_START = 0x92C2
+
+pattern GL_BUFFER_UPDATE_BARRIER_BIT  :: (Eq a, Num a) => a
+
+pattern GL_BUFFER_UPDATE_BARRIER_BIT = 0x00000200
+
+pattern GL_COMMAND_BARRIER_BIT  :: (Eq a, Num a) => a
+
+pattern GL_COMMAND_BARRIER_BIT = 0x00000040
+
+pattern GL_COPY_READ_BUFFER_BINDING  :: (Eq a, Num a) => a
+
+pattern GL_COPY_READ_BUFFER_BINDING = 0x8F36
+
+pattern GL_COPY_WRITE_BUFFER_BINDING  :: (Eq a, Num a) => a
+
+pattern GL_COPY_WRITE_BUFFER_BINDING = 0x8F37
+
+pattern GL_ELEMENT_ARRAY_BARRIER_BIT  :: (Eq a, Num a) => a
+
+pattern GL_ELEMENT_ARRAY_BARRIER_BIT = 0x00000002
+
+pattern GL_FRAMEBUFFER_BARRIER_BIT  :: (Eq a, Num a) => a
+
+pattern GL_FRAMEBUFFER_BARRIER_BIT = 0x00000400
+
+pattern GL_IMAGE_1D  :: (Eq a, Num a) => a
+
+pattern GL_IMAGE_1D = 0x904C
+
+pattern GL_IMAGE_1D_ARRAY  :: (Eq a, Num a) => a
+
+pattern GL_IMAGE_1D_ARRAY = 0x9052
+
+pattern GL_IMAGE_2D  :: (Eq a, Num a) => a
+
+pattern GL_IMAGE_2D = 0x904D
+
+pattern GL_IMAGE_2D_ARRAY  :: (Eq a, Num a) => a
+
+pattern GL_IMAGE_2D_ARRAY = 0x9053
+
+pattern GL_IMAGE_2D_MULTISAMPLE  :: (Eq a, Num a) => a
+
+pattern GL_IMAGE_2D_MULTISAMPLE = 0x9055
+
+pattern GL_IMAGE_2D_MULTISAMPLE_ARRAY  :: (Eq a, Num a) => a
+
+pattern GL_IMAGE_2D_MULTISAMPLE_ARRAY = 0x9056
+
+pattern GL_IMAGE_2D_RECT  :: (Eq a, Num a) => a
+
+pattern GL_IMAGE_2D_RECT = 0x904F
+
+pattern GL_IMAGE_3D  :: (Eq a, Num a) => a
+
+pattern GL_IMAGE_3D = 0x904E
+
+pattern GL_IMAGE_BINDING_ACCESS  :: (Eq a, Num a) => a
+
+pattern GL_IMAGE_BINDING_ACCESS = 0x8F3E
+
+pattern GL_IMAGE_BINDING_FORMAT  :: (Eq a, Num a) => a
+
+pattern GL_IMAGE_BINDING_FORMAT = 0x906E
+
+pattern GL_IMAGE_BINDING_LAYER  :: (Eq a, Num a) => a
+
+pattern GL_IMAGE_BINDING_LAYER = 0x8F3D
+
+pattern GL_IMAGE_BINDING_LAYERED  :: (Eq a, Num a) => a
+
+pattern GL_IMAGE_BINDING_LAYERED = 0x8F3C
+
+pattern GL_IMAGE_BINDING_LEVEL  :: (Eq a, Num a) => a
+
+pattern GL_IMAGE_BINDING_LEVEL = 0x8F3B
+
+pattern GL_IMAGE_BINDING_NAME  :: (Eq a, Num a) => a
+
+pattern GL_IMAGE_BINDING_NAME = 0x8F3A
+
+pattern GL_IMAGE_BUFFER  :: (Eq a, Num a) => a
+
+pattern GL_IMAGE_BUFFER = 0x9051
+
+pattern GL_IMAGE_CUBE  :: (Eq a, Num a) => a
+
+pattern GL_IMAGE_CUBE = 0x9050
+
+pattern GL_IMAGE_CUBE_MAP_ARRAY  :: (Eq a, Num a) => a
+
+pattern GL_IMAGE_CUBE_MAP_ARRAY = 0x9054
+
+pattern GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS  :: (Eq a, Num a) => a
+
+pattern GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS = 0x90C9
+
+pattern GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE = 0x90C8
+
+pattern GL_IMAGE_FORMAT_COMPATIBILITY_TYPE  :: (Eq a, Num a) => a
+
+pattern GL_IMAGE_FORMAT_COMPATIBILITY_TYPE = 0x90C7
+
+pattern GL_INT_IMAGE_1D  :: (Eq a, Num a) => a
+
+pattern GL_INT_IMAGE_1D = 0x9057
+
+pattern GL_INT_IMAGE_1D_ARRAY  :: (Eq a, Num a) => a
+
+pattern GL_INT_IMAGE_1D_ARRAY = 0x905D
+
+pattern GL_INT_IMAGE_2D  :: (Eq a, Num a) => a
+
+pattern GL_INT_IMAGE_2D = 0x9058
+
+pattern GL_INT_IMAGE_2D_ARRAY  :: (Eq a, Num a) => a
+
+pattern GL_INT_IMAGE_2D_ARRAY = 0x905E
+
+pattern GL_INT_IMAGE_2D_MULTISAMPLE  :: (Eq a, Num a) => a
+
+pattern GL_INT_IMAGE_2D_MULTISAMPLE = 0x9060
+
+pattern GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY  :: (Eq a, Num a) => a
+
+pattern GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY = 0x9061
+
+pattern GL_INT_IMAGE_2D_RECT  :: (Eq a, Num a) => a
+
+pattern GL_INT_IMAGE_2D_RECT = 0x905A
+
+pattern GL_INT_IMAGE_3D  :: (Eq a, Num a) => a
+
+pattern GL_INT_IMAGE_3D = 0x9059
+
+pattern GL_INT_IMAGE_BUFFER  :: (Eq a, Num a) => a
+
+pattern GL_INT_IMAGE_BUFFER = 0x905C
+
+pattern GL_INT_IMAGE_CUBE  :: (Eq a, Num a) => a
+
+pattern GL_INT_IMAGE_CUBE = 0x905B
+
+pattern GL_INT_IMAGE_CUBE_MAP_ARRAY  :: (Eq a, Num a) => a
+
+pattern GL_INT_IMAGE_CUBE_MAP_ARRAY = 0x905F
+
+pattern GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS = 0x92DC
+
+pattern GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE = 0x92D8
+
+pattern GL_MAX_COMBINED_ATOMIC_COUNTERS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_COMBINED_ATOMIC_COUNTERS = 0x92D7
+
+pattern GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS = 0x92D1
+
+pattern GL_MAX_COMBINED_IMAGE_UNIFORMS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_COMBINED_IMAGE_UNIFORMS = 0x90CF
+
+pattern GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS = 0x8F39
+
+pattern GL_MAX_FRAGMENT_ATOMIC_COUNTERS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_FRAGMENT_ATOMIC_COUNTERS = 0x92D6
+
+pattern GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS = 0x92D0
+
+pattern GL_MAX_FRAGMENT_IMAGE_UNIFORMS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_FRAGMENT_IMAGE_UNIFORMS = 0x90CE
+
+pattern GL_MAX_GEOMETRY_ATOMIC_COUNTERS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_GEOMETRY_ATOMIC_COUNTERS = 0x92D5
+
+pattern GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS = 0x92CF
+
+pattern GL_MAX_GEOMETRY_IMAGE_UNIFORMS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_GEOMETRY_IMAGE_UNIFORMS = 0x90CD
+
+pattern GL_MAX_IMAGE_SAMPLES  :: (Eq a, Num a) => a
+
+pattern GL_MAX_IMAGE_SAMPLES = 0x906D
+
+pattern GL_MAX_IMAGE_UNITS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_IMAGE_UNITS = 0x8F38
+
+pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS = 0x92D3
+
+pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS = 0x92CD
+
+pattern GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS = 0x90CB
+
+pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS = 0x92D4
+
+pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS = 0x92CE
+
+pattern GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS = 0x90CC
+
+pattern GL_MAX_VERTEX_ATOMIC_COUNTERS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_VERTEX_ATOMIC_COUNTERS = 0x92D2
+
+pattern GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS = 0x92CC
+
+pattern GL_MAX_VERTEX_IMAGE_UNIFORMS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_VERTEX_IMAGE_UNIFORMS = 0x90CA
+
+pattern GL_MIN_MAP_BUFFER_ALIGNMENT  :: (Eq a, Num a) => a
+
+pattern GL_MIN_MAP_BUFFER_ALIGNMENT = 0x90BC
+
+pattern GL_NUM_SAMPLE_COUNTS  :: (Eq a, Num a) => a
+
+pattern GL_NUM_SAMPLE_COUNTS = 0x9380
+
+pattern GL_PACK_COMPRESSED_BLOCK_DEPTH  :: (Eq a, Num a) => a
+
+pattern GL_PACK_COMPRESSED_BLOCK_DEPTH = 0x912D
+
+pattern GL_PACK_COMPRESSED_BLOCK_HEIGHT  :: (Eq a, Num a) => a
+
+pattern GL_PACK_COMPRESSED_BLOCK_HEIGHT = 0x912C
+
+pattern GL_PACK_COMPRESSED_BLOCK_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_PACK_COMPRESSED_BLOCK_SIZE = 0x912E
+
+pattern GL_PACK_COMPRESSED_BLOCK_WIDTH  :: (Eq a, Num a) => a
+
+pattern GL_PACK_COMPRESSED_BLOCK_WIDTH = 0x912B
+
+pattern GL_PIXEL_BUFFER_BARRIER_BIT  :: (Eq a, Num a) => a
+
+pattern GL_PIXEL_BUFFER_BARRIER_BIT = 0x00000080
+
+pattern GL_SHADER_IMAGE_ACCESS_BARRIER_BIT  :: (Eq a, Num a) => a
+
+pattern GL_SHADER_IMAGE_ACCESS_BARRIER_BIT = 0x00000020
+
+pattern GL_TEXTURE_FETCH_BARRIER_BIT  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_FETCH_BARRIER_BIT = 0x00000008
+
+pattern GL_TEXTURE_IMMUTABLE_FORMAT  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_IMMUTABLE_FORMAT = 0x912F
+
+pattern GL_TEXTURE_UPDATE_BARRIER_BIT  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_UPDATE_BARRIER_BIT = 0x00000100
+
+pattern GL_TRANSFORM_FEEDBACK_ACTIVE  :: (Eq a, Num a) => a
+
+pattern GL_TRANSFORM_FEEDBACK_ACTIVE = 0x8E24
+
+pattern GL_TRANSFORM_FEEDBACK_BARRIER_BIT  :: (Eq a, Num a) => a
+
+pattern GL_TRANSFORM_FEEDBACK_BARRIER_BIT = 0x00000800
+
+pattern GL_TRANSFORM_FEEDBACK_PAUSED  :: (Eq a, Num a) => a
+
+pattern GL_TRANSFORM_FEEDBACK_PAUSED = 0x8E23
+
+pattern GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX  :: (Eq a, Num a) => a
+
+pattern GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX = 0x92DA
+
+pattern GL_UNIFORM_BARRIER_BIT  :: (Eq a, Num a) => a
+
+pattern GL_UNIFORM_BARRIER_BIT = 0x00000004
+
+pattern GL_UNPACK_COMPRESSED_BLOCK_DEPTH  :: (Eq a, Num a) => a
+
+pattern GL_UNPACK_COMPRESSED_BLOCK_DEPTH = 0x9129
+
+pattern GL_UNPACK_COMPRESSED_BLOCK_HEIGHT  :: (Eq a, Num a) => a
+
+pattern GL_UNPACK_COMPRESSED_BLOCK_HEIGHT = 0x9128
+
+pattern GL_UNPACK_COMPRESSED_BLOCK_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_UNPACK_COMPRESSED_BLOCK_SIZE = 0x912A
+
+pattern GL_UNPACK_COMPRESSED_BLOCK_WIDTH  :: (Eq a, Num a) => a
+
+pattern GL_UNPACK_COMPRESSED_BLOCK_WIDTH = 0x9127
+
+pattern GL_UNSIGNED_INT_ATOMIC_COUNTER  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_INT_ATOMIC_COUNTER = 0x92DB
+
+pattern GL_UNSIGNED_INT_IMAGE_1D  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_INT_IMAGE_1D = 0x9062
+
+pattern GL_UNSIGNED_INT_IMAGE_1D_ARRAY  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_INT_IMAGE_1D_ARRAY = 0x9068
+
+pattern GL_UNSIGNED_INT_IMAGE_2D  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_INT_IMAGE_2D = 0x9063
+
+pattern GL_UNSIGNED_INT_IMAGE_2D_ARRAY  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_INT_IMAGE_2D_ARRAY = 0x9069
+
+pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE = 0x906B
+
+pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY = 0x906C
+
+pattern GL_UNSIGNED_INT_IMAGE_2D_RECT  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_INT_IMAGE_2D_RECT = 0x9065
+
+pattern GL_UNSIGNED_INT_IMAGE_3D  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_INT_IMAGE_3D = 0x9064
+
+pattern GL_UNSIGNED_INT_IMAGE_BUFFER  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_INT_IMAGE_BUFFER = 0x9067
+
+pattern GL_UNSIGNED_INT_IMAGE_CUBE  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_INT_IMAGE_CUBE = 0x9066
+
+pattern GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY = 0x906A
+
+pattern GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT  :: (Eq a, Num a) => a
+
+pattern GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT = 0x00000001
+
+-- | Usage: @'glBindVertexBuffer' bindingindex buffer offset stride@
+--
+-- The parameter @offset@ is a @BufferOffset@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindVertexBuffer.xhtml>
+
+
+glBindVertexBuffer :: MonadIO m => GLuint -> GLuint -> GLintptr -> GLsizei -> m ()
+glBindVertexBuffer = ffiuintuintintptrsizeiIOV glBindVertexBufferFunPtr
+
+glBindVertexBufferFunPtr :: FunPtr (GLuint -> GLuint -> GLintptr -> GLsizei -> IO ())
+glBindVertexBufferFunPtr = unsafePerformIO (getProcAddress "glBindVertexBuffer")
+
+{-# NOINLINE glBindVertexBufferFunPtr #-}
+
+-- | Usage: @'glClearBufferData' target internalformat format type data@
+--
+-- The length of @data@ should be @COMPSIZE(format,type)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glClearBufferData.xhtml>
+
+
+glClearBufferData :: MonadIO m => GLenum -> GLenum -> GLenum -> GLenum -> Ptr () -> m ()
+glClearBufferData = ffienumenumenumenumPtrVIOV glClearBufferDataFunPtr
+
+glClearBufferDataFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> Ptr () -> IO ())
+glClearBufferDataFunPtr = unsafePerformIO (getProcAddress "glClearBufferData")
+
+{-# NOINLINE glClearBufferDataFunPtr #-}
+
+-- | Usage: @'glClearBufferSubData' target internalformat offset size format type data@
+--
+-- The parameter @offset@ is a @BufferOffset@.
+--
+-- The parameter @size@ is a @BufferSize@.
+--
+-- The length of @data@ should be @COMPSIZE(format,type)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glClearBufferSubData.xhtml>
+
+
+glClearBufferSubData :: MonadIO m => GLenum -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> m ()
+glClearBufferSubData = ffienumenumintptrsizeiptrenumenumPtrVIOV glClearBufferSubDataFunPtr
+
+glClearBufferSubDataFunPtr :: FunPtr (GLenum -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> IO ())
+glClearBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glClearBufferSubData")
+
+{-# NOINLINE glClearBufferSubDataFunPtr #-}
+
+-- | Usage: @'glCopyImageSubData' srcName srcTarget srcLevel srcX srcY srcZ dstName dstTarget dstLevel dstX dstY dstZ srcWidth srcHeight srcDepth@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCopyImageSubData.xhtml>
+
+
+glCopyImageSubData :: MonadIO m => GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()
+glCopyImageSubData = ffiuintenumintintintintuintenumintintintintsizeisizeisizeiIOV glCopyImageSubDataFunPtr
+
+glCopyImageSubDataFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> IO ())
+glCopyImageSubDataFunPtr = unsafePerformIO (getProcAddress "glCopyImageSubData")
+
+{-# NOINLINE glCopyImageSubDataFunPtr #-}
+
+-- | Usage: @'glDebugMessageCallback' callback userParam@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDebugMessageCallback.xhtml>
+
+
+glDebugMessageCallback :: MonadIO m => GLDEBUGPROC -> Ptr () -> m ()
+glDebugMessageCallback = ffiDEBUGPROCPtrVIOV glDebugMessageCallbackFunPtr
+
+glDebugMessageCallbackFunPtr :: FunPtr (GLDEBUGPROC -> Ptr () -> IO ())
+glDebugMessageCallbackFunPtr = unsafePerformIO (getProcAddress "glDebugMessageCallback")
+
+{-# NOINLINE glDebugMessageCallbackFunPtr #-}
+
+-- | Usage: @'glDebugMessageControl' source type severity count ids enabled@
+--
+-- The parameter @enabled@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @ids@ should be @count@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDebugMessageControl.xhtml>
+
+
+glDebugMessageControl :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> m ()
+glDebugMessageControl = ffienumenumenumsizeiPtruintbooleanIOV glDebugMessageControlFunPtr
+
+glDebugMessageControlFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> IO ())
+glDebugMessageControlFunPtr = unsafePerformIO (getProcAddress "glDebugMessageControl")
+
+{-# NOINLINE glDebugMessageControlFunPtr #-}
+
+-- | Usage: @'glDebugMessageInsert' source type id severity length buf@
+--
+-- The length of @buf@ should be @COMPSIZE(buf,length)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDebugMessageInsert.xhtml>
+
+
+glDebugMessageInsert :: MonadIO m => GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> m ()
+glDebugMessageInsert = ffienumenumuintenumsizeiPtrcharIOV glDebugMessageInsertFunPtr
+
+glDebugMessageInsertFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> IO ())
+glDebugMessageInsertFunPtr = unsafePerformIO (getProcAddress "glDebugMessageInsert")
+
+{-# NOINLINE glDebugMessageInsertFunPtr #-}
+
+-- | Usage: @'glDispatchCompute' num_groups_x num_groups_y num_groups_z@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDispatchCompute.xhtml>
+
+
+glDispatchCompute :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
+glDispatchCompute = ffiuintuintuintIOV glDispatchComputeFunPtr
+
+glDispatchComputeFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
+glDispatchComputeFunPtr = unsafePerformIO (getProcAddress "glDispatchCompute")
+
+{-# NOINLINE glDispatchComputeFunPtr #-}
+
+-- | Usage: @'glDispatchComputeIndirect' indirect@
+--
+-- The parameter @indirect@ is a @BufferOffset@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glDispatchComputeIndirect.xhtml>
+
+
+glDispatchComputeIndirect :: MonadIO m => GLintptr -> m ()
+glDispatchComputeIndirect = ffiintptrIOV glDispatchComputeIndirectFunPtr
+
+glDispatchComputeIndirectFunPtr :: FunPtr (GLintptr -> IO ())
+glDispatchComputeIndirectFunPtr = unsafePerformIO (getProcAddress "glDispatchComputeIndirect")
+
+{-# NOINLINE glDispatchComputeIndirectFunPtr #-}
+
+-- | Usage: @'glFramebufferParameteri' target pname param@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glFramebufferParameteri.xhtml>
+
+
+glFramebufferParameteri :: MonadIO m => GLenum -> GLenum -> GLint -> m ()
+glFramebufferParameteri = ffienumenumintIOV glFramebufferParameteriFunPtr
+
+glFramebufferParameteriFunPtr :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
+glFramebufferParameteriFunPtr = unsafePerformIO (getProcAddress "glFramebufferParameteri")
+
+{-# NOINLINE glFramebufferParameteriFunPtr #-}
+
+-- | Usage: @'glGetDebugMessageLog' count bufSize sources types ids severities lengths messageLog@
+--
+-- The length of @sources@ should be @count@.
+--
+-- The length of @types@ should be @count@.
+--
+-- The length of @ids@ should be @count@.
+--
+-- The length of @severities@ should be @count@.
+--
+-- The length of @lengths@ should be @count@.
+--
+-- The length of @messageLog@ should be @bufSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetDebugMessageLog.xhtml>
+
+
+glGetDebugMessageLog :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> m GLuint
+glGetDebugMessageLog = ffiuintsizeiPtrenumPtrenumPtruintPtrenumPtrsizeiPtrcharIOuint glGetDebugMessageLogFunPtr
+
+glGetDebugMessageLogFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> IO GLuint)
+glGetDebugMessageLogFunPtr = unsafePerformIO (getProcAddress "glGetDebugMessageLog")
+
+{-# NOINLINE glGetDebugMessageLogFunPtr #-}
+
+-- | Usage: @'glGetFramebufferParameteriv' target pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetFramebufferParameteriv :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetFramebufferParameteriv = ffienumenumPtrintIOV glGetFramebufferParameterivFunPtr
+
+glGetFramebufferParameterivFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetFramebufferParameterivFunPtr = unsafePerformIO (getProcAddress "glGetFramebufferParameteriv")
+
+{-# NOINLINE glGetFramebufferParameterivFunPtr #-}
+
+-- | Usage: @'glGetInternalformati64v' target internalformat pname bufSize params@
+--
+-- The length of @params@ should be @bufSize@.
+
+
+glGetInternalformati64v :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint64 -> m ()
+glGetInternalformati64v = ffienumenumenumsizeiPtrint64IOV glGetInternalformati64vFunPtr
+
+glGetInternalformati64vFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint64 -> IO ())
+glGetInternalformati64vFunPtr = unsafePerformIO (getProcAddress "glGetInternalformati64v")
+
+{-# NOINLINE glGetInternalformati64vFunPtr #-}
+
+-- | Usage: @'glGetObjectLabel' identifier name bufSize length label@
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @label@ should be @bufSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetObjectLabel.xhtml>
+
+
+glGetObjectLabel :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
+glGetObjectLabel = ffienumuintsizeiPtrsizeiPtrcharIOV glGetObjectLabelFunPtr
+
+glGetObjectLabelFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+glGetObjectLabelFunPtr = unsafePerformIO (getProcAddress "glGetObjectLabel")
+
+{-# NOINLINE glGetObjectLabelFunPtr #-}
+
+-- | Usage: @'glGetObjectPtrLabel' ptr bufSize length label@
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @label@ should be @bufSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetObjectPtrLabel.xhtml>
+
+
+glGetObjectPtrLabel :: MonadIO m => Ptr () -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
+glGetObjectPtrLabel = ffiPtrVsizeiPtrsizeiPtrcharIOV glGetObjectPtrLabelFunPtr
+
+glGetObjectPtrLabelFunPtr :: FunPtr (Ptr () -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+glGetObjectPtrLabelFunPtr = unsafePerformIO (getProcAddress "glGetObjectPtrLabel")
+
+{-# NOINLINE glGetObjectPtrLabelFunPtr #-}
+
+-- | Usage: @'glGetProgramInterfaceiv' program programInterface pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetProgramInterfaceiv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
+glGetProgramInterfaceiv = ffiuintenumenumPtrintIOV glGetProgramInterfaceivFunPtr
+
+glGetProgramInterfaceivFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetProgramInterfaceivFunPtr = unsafePerformIO (getProcAddress "glGetProgramInterfaceiv")
+
+{-# NOINLINE glGetProgramInterfaceivFunPtr #-}
+
+-- | Usage: @'glGetProgramResourceIndex' program programInterface name@
+--
+-- The length of @name@ should be @COMPSIZE(name)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetProgramResourceIndex.xhtml>
+
+
+glGetProgramResourceIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLuint
+glGetProgramResourceIndex = ffiuintenumPtrcharIOuint glGetProgramResourceIndexFunPtr
+
+glGetProgramResourceIndexFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLuint)
+glGetProgramResourceIndexFunPtr = unsafePerformIO (getProcAddress "glGetProgramResourceIndex")
+
+{-# NOINLINE glGetProgramResourceIndexFunPtr #-}
+
+-- | Usage: @'glGetProgramResourceLocation' program programInterface name@
+--
+-- The length of @name@ should be @COMPSIZE(name)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetProgramResourceLocation.xhtml>
+
+
+glGetProgramResourceLocation :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint
+glGetProgramResourceLocation = ffiuintenumPtrcharIOint glGetProgramResourceLocationFunPtr
+
+glGetProgramResourceLocationFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLint)
+glGetProgramResourceLocationFunPtr = unsafePerformIO (getProcAddress "glGetProgramResourceLocation")
+
+{-# NOINLINE glGetProgramResourceLocationFunPtr #-}
+
+-- | Usage: @'glGetProgramResourceLocationIndex' program programInterface name@
+--
+-- The length of @name@ should be @COMPSIZE(name)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetProgramResourceLocationIndex.xhtml>
+
+
+glGetProgramResourceLocationIndex :: MonadIO m => GLuint -> GLenum -> Ptr GLchar -> m GLint
+glGetProgramResourceLocationIndex = ffiuintenumPtrcharIOint glGetProgramResourceLocationIndexFunPtr
+
+glGetProgramResourceLocationIndexFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLint)
+glGetProgramResourceLocationIndexFunPtr = unsafePerformIO (getProcAddress "glGetProgramResourceLocationIndex")
+
+{-# NOINLINE glGetProgramResourceLocationIndexFunPtr #-}
+
+-- | Usage: @'glGetProgramResourceName' program programInterface index bufSize length name@
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @name@ should be @bufSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetProgramResourceName.xhtml>
+
+
+glGetProgramResourceName :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
+glGetProgramResourceName = ffiuintenumuintsizeiPtrsizeiPtrcharIOV glGetProgramResourceNameFunPtr
+
+glGetProgramResourceNameFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+glGetProgramResourceNameFunPtr = unsafePerformIO (getProcAddress "glGetProgramResourceName")
+
+{-# NOINLINE glGetProgramResourceNameFunPtr #-}
+
+-- | Usage: @'glGetProgramResourceiv' program programInterface index propCount props bufSize length params@
+--
+-- The length of @props@ should be @propCount@.
+--
+-- The length of @length@ should be @1@.
+--
+-- The length of @params@ should be @bufSize@.
+
+
+glGetProgramResourceiv :: MonadIO m => GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> m ()
+glGetProgramResourceiv = ffiuintenumuintsizeiPtrenumsizeiPtrsizeiPtrintIOV glGetProgramResourceivFunPtr
+
+glGetProgramResourceivFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> IO ())
+glGetProgramResourceivFunPtr = unsafePerformIO (getProcAddress "glGetProgramResourceiv")
+
+{-# NOINLINE glGetProgramResourceivFunPtr #-}
+
+-- | Usage: @'glInvalidateBufferData' buffer@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glInvalidateBufferData.xhtml>
+
+
+glInvalidateBufferData :: MonadIO m => GLuint -> m ()
+glInvalidateBufferData = ffiuintIOV glInvalidateBufferDataFunPtr
+
+glInvalidateBufferDataFunPtr :: FunPtr (GLuint -> IO ())
+glInvalidateBufferDataFunPtr = unsafePerformIO (getProcAddress "glInvalidateBufferData")
+
+{-# NOINLINE glInvalidateBufferDataFunPtr #-}
+
+-- | Usage: @'glInvalidateBufferSubData' buffer offset length@
+--
+-- The parameter @offset@ is a @BufferOffset@.
+--
+-- The parameter @length@ is a @BufferSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glInvalidateBufferSubData.xhtml>
+
+
+glInvalidateBufferSubData :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> m ()
+glInvalidateBufferSubData = ffiuintintptrsizeiptrIOV glInvalidateBufferSubDataFunPtr
+
+glInvalidateBufferSubDataFunPtr :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> IO ())
+glInvalidateBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glInvalidateBufferSubData")
+
+{-# NOINLINE glInvalidateBufferSubDataFunPtr #-}
+
+-- | Usage: @'glInvalidateFramebuffer' target numAttachments attachments@
+--
+-- The length of @attachments@ should be @numAttachments@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glInvalidateFramebuffer.xhtml>
+
+
+glInvalidateFramebuffer :: MonadIO m => GLenum -> GLsizei -> Ptr GLenum -> m ()
+glInvalidateFramebuffer = ffienumsizeiPtrenumIOV glInvalidateFramebufferFunPtr
+
+glInvalidateFramebufferFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLenum -> IO ())
+glInvalidateFramebufferFunPtr = unsafePerformIO (getProcAddress "glInvalidateFramebuffer")
+
+{-# NOINLINE glInvalidateFramebufferFunPtr #-}
+
+-- | Usage: @'glInvalidateSubFramebuffer' target numAttachments attachments x y width height@
+--
+-- The length of @attachments@ should be @numAttachments@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glInvalidateSubFramebuffer.xhtml>
+
+
+glInvalidateSubFramebuffer :: MonadIO m => GLenum -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
+glInvalidateSubFramebuffer = ffienumsizeiPtrenumintintsizeisizeiIOV glInvalidateSubFramebufferFunPtr
+
+glInvalidateSubFramebufferFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+glInvalidateSubFramebufferFunPtr = unsafePerformIO (getProcAddress "glInvalidateSubFramebuffer")
+
+{-# NOINLINE glInvalidateSubFramebufferFunPtr #-}
+
+-- | Usage: @'glInvalidateTexImage' texture level@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glInvalidateTexImage.xhtml>
+
+
+glInvalidateTexImage :: MonadIO m => GLuint -> GLint -> m ()
+glInvalidateTexImage = ffiuintintIOV glInvalidateTexImageFunPtr
+
+glInvalidateTexImageFunPtr :: FunPtr (GLuint -> GLint -> IO ())
+glInvalidateTexImageFunPtr = unsafePerformIO (getProcAddress "glInvalidateTexImage")
+
+{-# NOINLINE glInvalidateTexImageFunPtr #-}
+
+-- | Usage: @'glInvalidateTexSubImage' texture level xoffset yoffset zoffset width height depth@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glInvalidateTexSubImage.xhtml>
+
+
+glInvalidateTexSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> m ()
+glInvalidateTexSubImage = ffiuintintintintintsizeisizeisizeiIOV glInvalidateTexSubImageFunPtr
+
+glInvalidateTexSubImageFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> IO ())
+glInvalidateTexSubImageFunPtr = unsafePerformIO (getProcAddress "glInvalidateTexSubImage")
+
+{-# NOINLINE glInvalidateTexSubImageFunPtr #-}
+
+-- | Usage: @'glMultiDrawArraysIndirect' mode indirect drawcount stride@
+--
+-- The length of @indirect@ should be @COMPSIZE(drawcount,stride)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glMultiDrawArraysIndirect.xhtml>
+
+
+glMultiDrawArraysIndirect :: MonadIO m => GLenum -> Ptr () -> GLsizei -> GLsizei -> m ()
+glMultiDrawArraysIndirect = ffienumPtrVsizeisizeiIOV glMultiDrawArraysIndirectFunPtr
+
+glMultiDrawArraysIndirectFunPtr :: FunPtr (GLenum -> Ptr () -> GLsizei -> GLsizei -> IO ())
+glMultiDrawArraysIndirectFunPtr = unsafePerformIO (getProcAddress "glMultiDrawArraysIndirect")
+
+{-# NOINLINE glMultiDrawArraysIndirectFunPtr #-}
+
+-- | Usage: @'glMultiDrawElementsIndirect' mode type indirect drawcount stride@
+--
+-- The length of @indirect@ should be @COMPSIZE(drawcount,stride)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glMultiDrawElementsIndirect.xhtml>
+
+
+glMultiDrawElementsIndirect :: MonadIO m => GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> m ()
+glMultiDrawElementsIndirect = ffienumenumPtrVsizeisizeiIOV glMultiDrawElementsIndirectFunPtr
+
+glMultiDrawElementsIndirectFunPtr :: FunPtr (GLenum -> GLenum -> Ptr () -> GLsizei -> GLsizei -> IO ())
+glMultiDrawElementsIndirectFunPtr = unsafePerformIO (getProcAddress "glMultiDrawElementsIndirect")
+
+{-# NOINLINE glMultiDrawElementsIndirectFunPtr #-}
+
+-- | Usage: @'glObjectLabel' identifier name length label@
+--
+-- The length of @label@ should be @COMPSIZE(label,length)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glObjectLabel.xhtml>
+
+
+glObjectLabel :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()
+glObjectLabel = ffienumuintsizeiPtrcharIOV glObjectLabelFunPtr
+
+glObjectLabelFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLchar -> IO ())
+glObjectLabelFunPtr = unsafePerformIO (getProcAddress "glObjectLabel")
+
+{-# NOINLINE glObjectLabelFunPtr #-}
+
+-- | Usage: @'glObjectPtrLabel' ptr length label@
+--
+-- The length of @label@ should be @COMPSIZE(label,length)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glObjectPtrLabel.xhtml>
+
+
+glObjectPtrLabel :: MonadIO m => Ptr () -> GLsizei -> Ptr GLchar -> m ()
+glObjectPtrLabel = ffiPtrVsizeiPtrcharIOV glObjectPtrLabelFunPtr
+
+glObjectPtrLabelFunPtr :: FunPtr (Ptr () -> GLsizei -> Ptr GLchar -> IO ())
+glObjectPtrLabelFunPtr = unsafePerformIO (getProcAddress "glObjectPtrLabel")
+
+{-# NOINLINE glObjectPtrLabelFunPtr #-}
+
+-- | Usage: @'glPopDebugGroup'@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glPopDebugGroup.xhtml>
+
+
+glPopDebugGroup :: MonadIO m => m ()
+glPopDebugGroup = ffiIOV glPopDebugGroupFunPtr
+
+glPopDebugGroupFunPtr :: FunPtr (IO ())
+glPopDebugGroupFunPtr = unsafePerformIO (getProcAddress "glPopDebugGroup")
+
+{-# NOINLINE glPopDebugGroupFunPtr #-}
+
+-- | Usage: @'glPushDebugGroup' source id length message@
+--
+-- The length of @message@ should be @COMPSIZE(message,length)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glPushDebugGroup.xhtml>
+
+
+glPushDebugGroup :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLchar -> m ()
+glPushDebugGroup = ffienumuintsizeiPtrcharIOV glPushDebugGroupFunPtr
+
+glPushDebugGroupFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLchar -> IO ())
+glPushDebugGroupFunPtr = unsafePerformIO (getProcAddress "glPushDebugGroup")
+
+{-# NOINLINE glPushDebugGroupFunPtr #-}
+
+-- | Usage: @'glShaderStorageBlockBinding' program storageBlockIndex storageBlockBinding@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glShaderStorageBlockBinding.xhtml>
+
+
+glShaderStorageBlockBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
+glShaderStorageBlockBinding = ffiuintuintuintIOV glShaderStorageBlockBindingFunPtr
+
+glShaderStorageBlockBindingFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
+glShaderStorageBlockBindingFunPtr = unsafePerformIO (getProcAddress "glShaderStorageBlockBinding")
+
+{-# NOINLINE glShaderStorageBlockBindingFunPtr #-}
+
+-- | Usage: @'glTexBufferRange' target internalformat buffer offset size@
+--
+-- The parameter @offset@ is a @BufferOffset@.
+--
+-- The parameter @size@ is a @BufferSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexBufferRange.xhtml>
+
+
+glTexBufferRange :: MonadIO m => GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> m ()
+glTexBufferRange = ffienumenumuintintptrsizeiptrIOV glTexBufferRangeFunPtr
+
+glTexBufferRangeFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> IO ())
+glTexBufferRangeFunPtr = unsafePerformIO (getProcAddress "glTexBufferRange")
+
+{-# NOINLINE glTexBufferRangeFunPtr #-}
+
+-- | Usage: @'glTexStorage2DMultisample' target samples internalformat width height fixedsamplelocations@
+--
+-- The parameter @fixedsamplelocations@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexStorage2DMultisample.xhtml>
+
+
+glTexStorage2DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()
+glTexStorage2DMultisample = ffienumsizeienumsizeisizeibooleanIOV glTexStorage2DMultisampleFunPtr
+
+glTexStorage2DMultisampleFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> IO ())
+glTexStorage2DMultisampleFunPtr = unsafePerformIO (getProcAddress "glTexStorage2DMultisample")
+
+{-# NOINLINE glTexStorage2DMultisampleFunPtr #-}
+
+-- | Usage: @'glTexStorage3DMultisample' target samples internalformat width height depth fixedsamplelocations@
+--
+-- The parameter @fixedsamplelocations@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTexStorage3DMultisample.xhtml>
+
+
+glTexStorage3DMultisample :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
+glTexStorage3DMultisample = ffienumsizeienumsizeisizeisizeibooleanIOV glTexStorage3DMultisampleFunPtr
+
+glTexStorage3DMultisampleFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
+glTexStorage3DMultisampleFunPtr = unsafePerformIO (getProcAddress "glTexStorage3DMultisample")
+
+{-# NOINLINE glTexStorage3DMultisampleFunPtr #-}
+
+-- | Usage: @'glTextureView' texture target origtexture internalformat minlevel numlevels minlayer numlayers@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTextureView.xhtml>
+
+
+glTextureView :: MonadIO m => GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
+glTextureView = ffiuintenumuintenumuintuintuintuintIOV glTextureViewFunPtr
+
+glTextureViewFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+glTextureViewFunPtr = unsafePerformIO (getProcAddress "glTextureView")
+
+{-# NOINLINE glTextureViewFunPtr #-}
+
+-- | Usage: @'glVertexAttribBinding' attribindex bindingindex@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glVertexAttribBinding.xhtml>
+
+
+glVertexAttribBinding :: MonadIO m => GLuint -> GLuint -> m ()
+glVertexAttribBinding = ffiuintuintIOV glVertexAttribBindingFunPtr
+
+glVertexAttribBindingFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
+glVertexAttribBindingFunPtr = unsafePerformIO (getProcAddress "glVertexAttribBinding")
+
+{-# NOINLINE glVertexAttribBindingFunPtr #-}
+
+-- | Usage: @'glVertexAttribFormat' attribindex size type normalized relativeoffset@
+--
+-- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glVertexAttribFormat.xhtml>
+
+
+glVertexAttribFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> m ()
+glVertexAttribFormat = ffiuintintenumbooleanuintIOV glVertexAttribFormatFunPtr
+
+glVertexAttribFormatFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> IO ())
+glVertexAttribFormatFunPtr = unsafePerformIO (getProcAddress "glVertexAttribFormat")
+
+{-# NOINLINE glVertexAttribFormatFunPtr #-}
+
+-- | Usage: @'glVertexAttribIFormat' attribindex size type relativeoffset@
+
+
+glVertexAttribIFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLuint -> m ()
+glVertexAttribIFormat = ffiuintintenumuintIOV glVertexAttribIFormatFunPtr
+
+glVertexAttribIFormatFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLuint -> IO ())
+glVertexAttribIFormatFunPtr = unsafePerformIO (getProcAddress "glVertexAttribIFormat")
+
+{-# NOINLINE glVertexAttribIFormatFunPtr #-}
+
+-- | Usage: @'glVertexAttribLFormat' attribindex size type relativeoffset@
+
+
+glVertexAttribLFormat :: MonadIO m => GLuint -> GLint -> GLenum -> GLuint -> m ()
+glVertexAttribLFormat = ffiuintintenumuintIOV glVertexAttribLFormatFunPtr
+
+glVertexAttribLFormatFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLuint -> IO ())
+glVertexAttribLFormatFunPtr = unsafePerformIO (getProcAddress "glVertexAttribLFormat")
+
+{-# NOINLINE glVertexAttribLFormatFunPtr #-}
+
+-- | Usage: @'glVertexBindingDivisor' bindingindex divisor@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glVertexBindingDivisor.xhtml>
+
+
+glVertexBindingDivisor :: MonadIO m => GLuint -> GLuint -> m ()
+glVertexBindingDivisor = ffiuintuintIOV glVertexBindingDivisorFunPtr
+
+glVertexBindingDivisorFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
+glVertexBindingDivisorFunPtr = unsafePerformIO (getProcAddress "glVertexBindingDivisor")
+
+{-# NOINLINE glVertexBindingDivisorFunPtr #-}
+
+pattern GL_ACTIVE_RESOURCES  :: (Eq a, Num a) => a
+
+pattern GL_ACTIVE_RESOURCES = 0x92F5
+
+pattern GL_ACTIVE_VARIABLES  :: (Eq a, Num a) => a
+
+pattern GL_ACTIVE_VARIABLES = 0x9305
+
+pattern GL_ANY_SAMPLES_PASSED_CONSERVATIVE  :: (Eq a, Num a) => a
+
+pattern GL_ANY_SAMPLES_PASSED_CONSERVATIVE = 0x8D6A
+
+pattern GL_ARRAY_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_ARRAY_SIZE = 0x92FB
+
+pattern GL_ARRAY_STRIDE  :: (Eq a, Num a) => a
+
+pattern GL_ARRAY_STRIDE = 0x92FE
+
+pattern GL_ATOMIC_COUNTER_BUFFER_INDEX  :: (Eq a, Num a) => a
+
+pattern GL_ATOMIC_COUNTER_BUFFER_INDEX = 0x9301
+
+pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER  :: (Eq a, Num a) => a
+
+pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER = 0x90ED
+
+pattern GL_AUTO_GENERATE_MIPMAP  :: (Eq a, Num a) => a
+
+pattern GL_AUTO_GENERATE_MIPMAP = 0x8295
+
+pattern GL_BLOCK_INDEX  :: (Eq a, Num a) => a
+
+pattern GL_BLOCK_INDEX = 0x92FD
+
+pattern GL_BUFFER  :: (Eq a, Num a) => a
+
+pattern GL_BUFFER = 0x82E0
+
+pattern GL_BUFFER_BINDING  :: (Eq a, Num a) => a
+
+pattern GL_BUFFER_BINDING = 0x9302
+
+pattern GL_BUFFER_DATA_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_BUFFER_DATA_SIZE = 0x9303
+
+pattern GL_BUFFER_VARIABLE  :: (Eq a, Num a) => a
+
+pattern GL_BUFFER_VARIABLE = 0x92E5
+
+pattern GL_CAVEAT_SUPPORT  :: (Eq a, Num a) => a
+
+pattern GL_CAVEAT_SUPPORT = 0x82B8
+
+pattern GL_CLEAR_BUFFER  :: (Eq a, Num a) => a
+
+pattern GL_CLEAR_BUFFER = 0x82B4
+
+pattern GL_COLOR_COMPONENTS  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_COMPONENTS = 0x8283
+
+pattern GL_COLOR_ENCODING  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ENCODING = 0x8296
+
+pattern GL_COLOR_RENDERABLE  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_RENDERABLE = 0x8286
+
+pattern GL_COMPRESSED_R11_EAC  :: (Eq a, Num a) => a
+
+pattern GL_COMPRESSED_R11_EAC = 0x9270
+
+pattern GL_COMPRESSED_RG11_EAC  :: (Eq a, Num a) => a
+
+pattern GL_COMPRESSED_RG11_EAC = 0x9272
+
+pattern GL_COMPRESSED_RGB8_ETC2  :: (Eq a, Num a) => a
+
+pattern GL_COMPRESSED_RGB8_ETC2 = 0x9274
+
+pattern GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2  :: (Eq a, Num a) => a
+
+pattern GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9276
+
+pattern GL_COMPRESSED_RGBA8_ETC2_EAC  :: (Eq a, Num a) => a
+
+pattern GL_COMPRESSED_RGBA8_ETC2_EAC = 0x9278
+
+pattern GL_COMPRESSED_SIGNED_R11_EAC  :: (Eq a, Num a) => a
+
+pattern GL_COMPRESSED_SIGNED_R11_EAC = 0x9271
+
+pattern GL_COMPRESSED_SIGNED_RG11_EAC  :: (Eq a, Num a) => a
+
+pattern GL_COMPRESSED_SIGNED_RG11_EAC = 0x9273
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC  :: (Eq a, Num a) => a
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC = 0x9279
+
+pattern GL_COMPRESSED_SRGB8_ETC2  :: (Eq a, Num a) => a
+
+pattern GL_COMPRESSED_SRGB8_ETC2 = 0x9275
+
+pattern GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2  :: (Eq a, Num a) => a
+
+pattern GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9277
+
+pattern GL_COMPUTE_SHADER  :: (Eq a, Num a) => a
+
+pattern GL_COMPUTE_SHADER = 0x91B9
+
+pattern GL_COMPUTE_SHADER_BIT  :: (Eq a, Num a) => a
+
+pattern GL_COMPUTE_SHADER_BIT = 0x00000020
+
+pattern GL_COMPUTE_SUBROUTINE  :: (Eq a, Num a) => a
+
+pattern GL_COMPUTE_SUBROUTINE = 0x92ED
+
+pattern GL_COMPUTE_SUBROUTINE_UNIFORM  :: (Eq a, Num a) => a
+
+pattern GL_COMPUTE_SUBROUTINE_UNIFORM = 0x92F3
+
+pattern GL_COMPUTE_TEXTURE  :: (Eq a, Num a) => a
+
+pattern GL_COMPUTE_TEXTURE = 0x82A0
+
+pattern GL_COMPUTE_WORK_GROUP_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_COMPUTE_WORK_GROUP_SIZE = 0x8267
+
+pattern GL_CONTEXT_FLAG_DEBUG_BIT  :: (Eq a, Num a) => a
+
+pattern GL_CONTEXT_FLAG_DEBUG_BIT = 0x00000002
+
+pattern GL_DEBUG_CALLBACK_FUNCTION  :: (Eq a, Num a) => a
+
+pattern GL_DEBUG_CALLBACK_FUNCTION = 0x8244
+
+pattern GL_DEBUG_CALLBACK_USER_PARAM  :: (Eq a, Num a) => a
+
+pattern GL_DEBUG_CALLBACK_USER_PARAM = 0x8245
+
+pattern GL_DEBUG_GROUP_STACK_DEPTH  :: (Eq a, Num a) => a
+
+pattern GL_DEBUG_GROUP_STACK_DEPTH = 0x826D
+
+pattern GL_DEBUG_LOGGED_MESSAGES  :: (Eq a, Num a) => a
+
+pattern GL_DEBUG_LOGGED_MESSAGES = 0x9145
+
+pattern GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH  :: (Eq a, Num a) => a
+
+pattern GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH = 0x8243
+
+pattern GL_DEBUG_OUTPUT  :: (Eq a, Num a) => a
+
+pattern GL_DEBUG_OUTPUT = 0x92E0
+
+pattern GL_DEBUG_OUTPUT_SYNCHRONOUS  :: (Eq a, Num a) => a
+
+pattern GL_DEBUG_OUTPUT_SYNCHRONOUS = 0x8242
+
+pattern GL_DEBUG_SEVERITY_HIGH  :: (Eq a, Num a) => a
+
+pattern GL_DEBUG_SEVERITY_HIGH = 0x9146
+
+pattern GL_DEBUG_SEVERITY_LOW  :: (Eq a, Num a) => a
+
+pattern GL_DEBUG_SEVERITY_LOW = 0x9148
+
+pattern GL_DEBUG_SEVERITY_MEDIUM  :: (Eq a, Num a) => a
+
+pattern GL_DEBUG_SEVERITY_MEDIUM = 0x9147
+
+pattern GL_DEBUG_SEVERITY_NOTIFICATION  :: (Eq a, Num a) => a
+
+pattern GL_DEBUG_SEVERITY_NOTIFICATION = 0x826B
+
+pattern GL_DEBUG_SOURCE_API  :: (Eq a, Num a) => a
+
+pattern GL_DEBUG_SOURCE_API = 0x8246
+
+pattern GL_DEBUG_SOURCE_APPLICATION  :: (Eq a, Num a) => a
+
+pattern GL_DEBUG_SOURCE_APPLICATION = 0x824A
+
+pattern GL_DEBUG_SOURCE_OTHER  :: (Eq a, Num a) => a
+
+pattern GL_DEBUG_SOURCE_OTHER = 0x824B
+
+pattern GL_DEBUG_SOURCE_SHADER_COMPILER  :: (Eq a, Num a) => a
+
+pattern GL_DEBUG_SOURCE_SHADER_COMPILER = 0x8248
+
+pattern GL_DEBUG_SOURCE_THIRD_PARTY  :: (Eq a, Num a) => a
+
+pattern GL_DEBUG_SOURCE_THIRD_PARTY = 0x8249
+
+pattern GL_DEBUG_SOURCE_WINDOW_SYSTEM  :: (Eq a, Num a) => a
+
+pattern GL_DEBUG_SOURCE_WINDOW_SYSTEM = 0x8247
+
+pattern GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR  :: (Eq a, Num a) => a
+
+pattern GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR = 0x824D
+
+pattern GL_DEBUG_TYPE_ERROR  :: (Eq a, Num a) => a
+
+pattern GL_DEBUG_TYPE_ERROR = 0x824C
+
+pattern GL_DEBUG_TYPE_MARKER  :: (Eq a, Num a) => a
+
+pattern GL_DEBUG_TYPE_MARKER = 0x8268
+
+pattern GL_DEBUG_TYPE_OTHER  :: (Eq a, Num a) => a
+
+pattern GL_DEBUG_TYPE_OTHER = 0x8251
+
+pattern GL_DEBUG_TYPE_PERFORMANCE  :: (Eq a, Num a) => a
+
+pattern GL_DEBUG_TYPE_PERFORMANCE = 0x8250
+
+pattern GL_DEBUG_TYPE_POP_GROUP  :: (Eq a, Num a) => a
+
+pattern GL_DEBUG_TYPE_POP_GROUP = 0x826A
+
+pattern GL_DEBUG_TYPE_PORTABILITY  :: (Eq a, Num a) => a
+
+pattern GL_DEBUG_TYPE_PORTABILITY = 0x824F
+
+pattern GL_DEBUG_TYPE_PUSH_GROUP  :: (Eq a, Num a) => a
+
+pattern GL_DEBUG_TYPE_PUSH_GROUP = 0x8269
+
+pattern GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR  :: (Eq a, Num a) => a
+
+pattern GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR = 0x824E
+
+pattern GL_DEPTH_COMPONENTS  :: (Eq a, Num a) => a
+
+pattern GL_DEPTH_COMPONENTS = 0x8284
+
+pattern GL_DEPTH_RENDERABLE  :: (Eq a, Num a) => a
+
+pattern GL_DEPTH_RENDERABLE = 0x8287
+
+pattern GL_DEPTH_STENCIL_TEXTURE_MODE  :: (Eq a, Num a) => a
+
+pattern GL_DEPTH_STENCIL_TEXTURE_MODE = 0x90EA
+
+pattern GL_DISPATCH_INDIRECT_BUFFER  :: (Eq a, Num a) => a
+
+pattern GL_DISPATCH_INDIRECT_BUFFER = 0x90EE
+
+pattern GL_DISPATCH_INDIRECT_BUFFER_BINDING  :: (Eq a, Num a) => a
+
+pattern GL_DISPATCH_INDIRECT_BUFFER_BINDING = 0x90EF
+
+pattern GL_FILTER  :: (Eq a, Num a) => a
+
+pattern GL_FILTER = 0x829A
+
+pattern GL_FRAGMENT_SUBROUTINE  :: (Eq a, Num a) => a
+
+pattern GL_FRAGMENT_SUBROUTINE = 0x92EC
+
+pattern GL_FRAGMENT_SUBROUTINE_UNIFORM  :: (Eq a, Num a) => a
+
+pattern GL_FRAGMENT_SUBROUTINE_UNIFORM = 0x92F2
+
+pattern GL_FRAGMENT_TEXTURE  :: (Eq a, Num a) => a
+
+pattern GL_FRAGMENT_TEXTURE = 0x829F
+
+pattern GL_FRAMEBUFFER_BLEND  :: (Eq a, Num a) => a
+
+pattern GL_FRAMEBUFFER_BLEND = 0x828B
+
+pattern GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS  :: (Eq a, Num a) => a
+
+pattern GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS = 0x9314
+
+pattern GL_FRAMEBUFFER_DEFAULT_HEIGHT  :: (Eq a, Num a) => a
+
+pattern GL_FRAMEBUFFER_DEFAULT_HEIGHT = 0x9311
+
+pattern GL_FRAMEBUFFER_DEFAULT_LAYERS  :: (Eq a, Num a) => a
+
+pattern GL_FRAMEBUFFER_DEFAULT_LAYERS = 0x9312
+
+pattern GL_FRAMEBUFFER_DEFAULT_SAMPLES  :: (Eq a, Num a) => a
+
+pattern GL_FRAMEBUFFER_DEFAULT_SAMPLES = 0x9313
+
+pattern GL_FRAMEBUFFER_DEFAULT_WIDTH  :: (Eq a, Num a) => a
+
+pattern GL_FRAMEBUFFER_DEFAULT_WIDTH = 0x9310
+
+pattern GL_FRAMEBUFFER_RENDERABLE  :: (Eq a, Num a) => a
+
+pattern GL_FRAMEBUFFER_RENDERABLE = 0x8289
+
+pattern GL_FRAMEBUFFER_RENDERABLE_LAYERED  :: (Eq a, Num a) => a
+
+pattern GL_FRAMEBUFFER_RENDERABLE_LAYERED = 0x828A
+
+pattern GL_FULL_SUPPORT  :: (Eq a, Num a) => a
+
+pattern GL_FULL_SUPPORT = 0x82B7
+
+pattern GL_GEOMETRY_SUBROUTINE  :: (Eq a, Num a) => a
+
+pattern GL_GEOMETRY_SUBROUTINE = 0x92EB
+
+pattern GL_GEOMETRY_SUBROUTINE_UNIFORM  :: (Eq a, Num a) => a
+
+pattern GL_GEOMETRY_SUBROUTINE_UNIFORM = 0x92F1
+
+pattern GL_GEOMETRY_TEXTURE  :: (Eq a, Num a) => a
+
+pattern GL_GEOMETRY_TEXTURE = 0x829E
+
+pattern GL_GET_TEXTURE_IMAGE_FORMAT  :: (Eq a, Num a) => a
+
+pattern GL_GET_TEXTURE_IMAGE_FORMAT = 0x8291
+
+pattern GL_GET_TEXTURE_IMAGE_TYPE  :: (Eq a, Num a) => a
+
+pattern GL_GET_TEXTURE_IMAGE_TYPE = 0x8292
+
+pattern GL_IMAGE_CLASS_10_10_10_2  :: (Eq a, Num a) => a
+
+pattern GL_IMAGE_CLASS_10_10_10_2 = 0x82C3
+
+pattern GL_IMAGE_CLASS_11_11_10  :: (Eq a, Num a) => a
+
+pattern GL_IMAGE_CLASS_11_11_10 = 0x82C2
+
+pattern GL_IMAGE_CLASS_1_X_16  :: (Eq a, Num a) => a
+
+pattern GL_IMAGE_CLASS_1_X_16 = 0x82BE
+
+pattern GL_IMAGE_CLASS_1_X_32  :: (Eq a, Num a) => a
+
+pattern GL_IMAGE_CLASS_1_X_32 = 0x82BB
+
+pattern GL_IMAGE_CLASS_1_X_8  :: (Eq a, Num a) => a
+
+pattern GL_IMAGE_CLASS_1_X_8 = 0x82C1
+
+pattern GL_IMAGE_CLASS_2_X_16  :: (Eq a, Num a) => a
+
+pattern GL_IMAGE_CLASS_2_X_16 = 0x82BD
+
+pattern GL_IMAGE_CLASS_2_X_32  :: (Eq a, Num a) => a
+
+pattern GL_IMAGE_CLASS_2_X_32 = 0x82BA
+
+pattern GL_IMAGE_CLASS_2_X_8  :: (Eq a, Num a) => a
+
+pattern GL_IMAGE_CLASS_2_X_8 = 0x82C0
+
+pattern GL_IMAGE_CLASS_4_X_16  :: (Eq a, Num a) => a
+
+pattern GL_IMAGE_CLASS_4_X_16 = 0x82BC
+
+pattern GL_IMAGE_CLASS_4_X_32  :: (Eq a, Num a) => a
+
+pattern GL_IMAGE_CLASS_4_X_32 = 0x82B9
+
+pattern GL_IMAGE_CLASS_4_X_8  :: (Eq a, Num a) => a
+
+pattern GL_IMAGE_CLASS_4_X_8 = 0x82BF
+
+pattern GL_IMAGE_COMPATIBILITY_CLASS  :: (Eq a, Num a) => a
+
+pattern GL_IMAGE_COMPATIBILITY_CLASS = 0x82A8
+
+pattern GL_IMAGE_PIXEL_FORMAT  :: (Eq a, Num a) => a
+
+pattern GL_IMAGE_PIXEL_FORMAT = 0x82A9
+
+pattern GL_IMAGE_PIXEL_TYPE  :: (Eq a, Num a) => a
+
+pattern GL_IMAGE_PIXEL_TYPE = 0x82AA
+
+pattern GL_IMAGE_TEXEL_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_IMAGE_TEXEL_SIZE = 0x82A7
+
+pattern GL_INTERNALFORMAT_ALPHA_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_INTERNALFORMAT_ALPHA_SIZE = 0x8274
+
+pattern GL_INTERNALFORMAT_ALPHA_TYPE  :: (Eq a, Num a) => a
+
+pattern GL_INTERNALFORMAT_ALPHA_TYPE = 0x827B
+
+pattern GL_INTERNALFORMAT_BLUE_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_INTERNALFORMAT_BLUE_SIZE = 0x8273
+
+pattern GL_INTERNALFORMAT_BLUE_TYPE  :: (Eq a, Num a) => a
+
+pattern GL_INTERNALFORMAT_BLUE_TYPE = 0x827A
+
+pattern GL_INTERNALFORMAT_DEPTH_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_INTERNALFORMAT_DEPTH_SIZE = 0x8275
+
+pattern GL_INTERNALFORMAT_DEPTH_TYPE  :: (Eq a, Num a) => a
+
+pattern GL_INTERNALFORMAT_DEPTH_TYPE = 0x827C
+
+pattern GL_INTERNALFORMAT_GREEN_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_INTERNALFORMAT_GREEN_SIZE = 0x8272
+
+pattern GL_INTERNALFORMAT_GREEN_TYPE  :: (Eq a, Num a) => a
+
+pattern GL_INTERNALFORMAT_GREEN_TYPE = 0x8279
+
+pattern GL_INTERNALFORMAT_PREFERRED  :: (Eq a, Num a) => a
+
+pattern GL_INTERNALFORMAT_PREFERRED = 0x8270
+
+pattern GL_INTERNALFORMAT_RED_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_INTERNALFORMAT_RED_SIZE = 0x8271
+
+pattern GL_INTERNALFORMAT_RED_TYPE  :: (Eq a, Num a) => a
+
+pattern GL_INTERNALFORMAT_RED_TYPE = 0x8278
+
+pattern GL_INTERNALFORMAT_SHARED_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_INTERNALFORMAT_SHARED_SIZE = 0x8277
+
+pattern GL_INTERNALFORMAT_STENCIL_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_INTERNALFORMAT_STENCIL_SIZE = 0x8276
+
+pattern GL_INTERNALFORMAT_STENCIL_TYPE  :: (Eq a, Num a) => a
+
+pattern GL_INTERNALFORMAT_STENCIL_TYPE = 0x827D
+
+pattern GL_INTERNALFORMAT_SUPPORTED  :: (Eq a, Num a) => a
+
+pattern GL_INTERNALFORMAT_SUPPORTED = 0x826F
+
+pattern GL_IS_PER_PATCH  :: (Eq a, Num a) => a
+
+pattern GL_IS_PER_PATCH = 0x92E7
+
+pattern GL_IS_ROW_MAJOR  :: (Eq a, Num a) => a
+
+pattern GL_IS_ROW_MAJOR = 0x9300
+
+pattern GL_LOCATION  :: (Eq a, Num a) => a
+
+pattern GL_LOCATION = 0x930E
+
+pattern GL_LOCATION_INDEX  :: (Eq a, Num a) => a
+
+pattern GL_LOCATION_INDEX = 0x930F
+
+pattern GL_MANUAL_GENERATE_MIPMAP  :: (Eq a, Num a) => a
+
+pattern GL_MANUAL_GENERATE_MIPMAP = 0x8294
+
+pattern GL_MATRIX_STRIDE  :: (Eq a, Num a) => a
+
+pattern GL_MATRIX_STRIDE = 0x92FF
+
+pattern GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS = 0x8266
+
+pattern GL_MAX_COMBINED_DIMENSIONS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_COMBINED_DIMENSIONS = 0x8282
+
+pattern GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES  :: (Eq a, Num a) => a
+
+pattern GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES = 0x8F39
+
+pattern GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS = 0x90DC
+
+pattern GL_MAX_COMPUTE_ATOMIC_COUNTERS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_COMPUTE_ATOMIC_COUNTERS = 0x8265
+
+pattern GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS = 0x8264
+
+pattern GL_MAX_COMPUTE_IMAGE_UNIFORMS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_COMPUTE_IMAGE_UNIFORMS = 0x91BD
+
+pattern GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS = 0x90DB
+
+pattern GL_MAX_COMPUTE_SHARED_MEMORY_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_MAX_COMPUTE_SHARED_MEMORY_SIZE = 0x8262
+
+pattern GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS = 0x91BC
+
+pattern GL_MAX_COMPUTE_UNIFORM_BLOCKS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_COMPUTE_UNIFORM_BLOCKS = 0x91BB
+
+pattern GL_MAX_COMPUTE_UNIFORM_COMPONENTS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_COMPUTE_UNIFORM_COMPONENTS = 0x8263
+
+pattern GL_MAX_COMPUTE_WORK_GROUP_COUNT  :: (Eq a, Num a) => a
+
+pattern GL_MAX_COMPUTE_WORK_GROUP_COUNT = 0x91BE
+
+pattern GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS = 0x90EB
+
+pattern GL_MAX_COMPUTE_WORK_GROUP_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_MAX_COMPUTE_WORK_GROUP_SIZE = 0x91BF
+
+pattern GL_MAX_DEBUG_GROUP_STACK_DEPTH  :: (Eq a, Num a) => a
+
+pattern GL_MAX_DEBUG_GROUP_STACK_DEPTH = 0x826C
+
+pattern GL_MAX_DEBUG_LOGGED_MESSAGES  :: (Eq a, Num a) => a
+
+pattern GL_MAX_DEBUG_LOGGED_MESSAGES = 0x9144
+
+pattern GL_MAX_DEBUG_MESSAGE_LENGTH  :: (Eq a, Num a) => a
+
+pattern GL_MAX_DEBUG_MESSAGE_LENGTH = 0x9143
+
+pattern GL_MAX_DEPTH  :: (Eq a, Num a) => a
+
+pattern GL_MAX_DEPTH = 0x8280
+
+pattern GL_MAX_ELEMENT_INDEX  :: (Eq a, Num a) => a
+
+pattern GL_MAX_ELEMENT_INDEX = 0x8D6B
+
+pattern GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS = 0x90DA
+
+pattern GL_MAX_FRAMEBUFFER_HEIGHT  :: (Eq a, Num a) => a
+
+pattern GL_MAX_FRAMEBUFFER_HEIGHT = 0x9316
+
+pattern GL_MAX_FRAMEBUFFER_LAYERS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_FRAMEBUFFER_LAYERS = 0x9317
+
+pattern GL_MAX_FRAMEBUFFER_SAMPLES  :: (Eq a, Num a) => a
+
+pattern GL_MAX_FRAMEBUFFER_SAMPLES = 0x9318
+
+pattern GL_MAX_FRAMEBUFFER_WIDTH  :: (Eq a, Num a) => a
+
+pattern GL_MAX_FRAMEBUFFER_WIDTH = 0x9315
+
+pattern GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS = 0x90D7
+
+pattern GL_MAX_HEIGHT  :: (Eq a, Num a) => a
+
+pattern GL_MAX_HEIGHT = 0x827F
+
+pattern GL_MAX_LABEL_LENGTH  :: (Eq a, Num a) => a
+
+pattern GL_MAX_LABEL_LENGTH = 0x82E8
+
+pattern GL_MAX_LAYERS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_LAYERS = 0x8281
+
+pattern GL_MAX_NAME_LENGTH  :: (Eq a, Num a) => a
+
+pattern GL_MAX_NAME_LENGTH = 0x92F6
+
+pattern GL_MAX_NUM_ACTIVE_VARIABLES  :: (Eq a, Num a) => a
+
+pattern GL_MAX_NUM_ACTIVE_VARIABLES = 0x92F7
+
+pattern GL_MAX_NUM_COMPATIBLE_SUBROUTINES  :: (Eq a, Num a) => a
+
+pattern GL_MAX_NUM_COMPATIBLE_SUBROUTINES = 0x92F8
+
+pattern GL_MAX_SHADER_STORAGE_BLOCK_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_MAX_SHADER_STORAGE_BLOCK_SIZE = 0x90DE
+
+pattern GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS = 0x90DD
+
+pattern GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS = 0x90D8
+
+pattern GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS = 0x90D9
+
+pattern GL_MAX_UNIFORM_LOCATIONS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_UNIFORM_LOCATIONS = 0x826E
+
+pattern GL_MAX_VERTEX_ATTRIB_BINDINGS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_VERTEX_ATTRIB_BINDINGS = 0x82DA
+
+pattern GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET  :: (Eq a, Num a) => a
+
+pattern GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET = 0x82D9
+
+pattern GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS  :: (Eq a, Num a) => a
+
+pattern GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS = 0x90D6
+
+pattern GL_MAX_WIDTH  :: (Eq a, Num a) => a
+
+pattern GL_MAX_WIDTH = 0x827E
+
+pattern GL_MIPMAP  :: (Eq a, Num a) => a
+
+pattern GL_MIPMAP = 0x8293
+
+pattern GL_NAME_LENGTH  :: (Eq a, Num a) => a
+
+pattern GL_NAME_LENGTH = 0x92F9
+
+pattern GL_NUM_ACTIVE_VARIABLES  :: (Eq a, Num a) => a
+
+pattern GL_NUM_ACTIVE_VARIABLES = 0x9304
+
+pattern GL_OFFSET  :: (Eq a, Num a) => a
+
+pattern GL_OFFSET = 0x92FC
+
+pattern GL_PRIMITIVE_RESTART_FIXED_INDEX  :: (Eq a, Num a) => a
+
+pattern GL_PRIMITIVE_RESTART_FIXED_INDEX = 0x8D69
+
+pattern GL_PROGRAM  :: (Eq a, Num a) => a
+
+pattern GL_PROGRAM = 0x82E2
+
+pattern GL_PROGRAM_INPUT  :: (Eq a, Num a) => a
+
+pattern GL_PROGRAM_INPUT = 0x92E3
+
+pattern GL_PROGRAM_OUTPUT  :: (Eq a, Num a) => a
+
+pattern GL_PROGRAM_OUTPUT = 0x92E4
+
+pattern GL_PROGRAM_PIPELINE  :: (Eq a, Num a) => a
+
+pattern GL_PROGRAM_PIPELINE = 0x82E4
+
+pattern GL_QUERY  :: (Eq a, Num a) => a
+
+pattern GL_QUERY = 0x82E3
+
+pattern GL_READ_PIXELS  :: (Eq a, Num a) => a
+
+pattern GL_READ_PIXELS = 0x828C
+
+pattern GL_READ_PIXELS_FORMAT  :: (Eq a, Num a) => a
+
+pattern GL_READ_PIXELS_FORMAT = 0x828D
+
+pattern GL_READ_PIXELS_TYPE  :: (Eq a, Num a) => a
+
+pattern GL_READ_PIXELS_TYPE = 0x828E
+
+pattern GL_REFERENCED_BY_COMPUTE_SHADER  :: (Eq a, Num a) => a
+
+pattern GL_REFERENCED_BY_COMPUTE_SHADER = 0x930B
+
+pattern GL_REFERENCED_BY_FRAGMENT_SHADER  :: (Eq a, Num a) => a
+
+pattern GL_REFERENCED_BY_FRAGMENT_SHADER = 0x930A
+
+pattern GL_REFERENCED_BY_GEOMETRY_SHADER  :: (Eq a, Num a) => a
+
+pattern GL_REFERENCED_BY_GEOMETRY_SHADER = 0x9309
+
+pattern GL_REFERENCED_BY_TESS_CONTROL_SHADER  :: (Eq a, Num a) => a
+
+pattern GL_REFERENCED_BY_TESS_CONTROL_SHADER = 0x9307
+
+pattern GL_REFERENCED_BY_TESS_EVALUATION_SHADER  :: (Eq a, Num a) => a
+
+pattern GL_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x9308
+
+pattern GL_REFERENCED_BY_VERTEX_SHADER  :: (Eq a, Num a) => a
+
+pattern GL_REFERENCED_BY_VERTEX_SHADER = 0x9306
+
+pattern GL_SAMPLER  :: (Eq a, Num a) => a
+
+pattern GL_SAMPLER = 0x82E6
+
+pattern GL_SHADER  :: (Eq a, Num a) => a
+
+pattern GL_SHADER = 0x82E1
+
+pattern GL_SHADER_IMAGE_ATOMIC  :: (Eq a, Num a) => a
+
+pattern GL_SHADER_IMAGE_ATOMIC = 0x82A6
+
+pattern GL_SHADER_IMAGE_LOAD  :: (Eq a, Num a) => a
+
+pattern GL_SHADER_IMAGE_LOAD = 0x82A4
+
+pattern GL_SHADER_IMAGE_STORE  :: (Eq a, Num a) => a
+
+pattern GL_SHADER_IMAGE_STORE = 0x82A5
+
+pattern GL_SHADER_STORAGE_BARRIER_BIT  :: (Eq a, Num a) => a
+
+pattern GL_SHADER_STORAGE_BARRIER_BIT = 0x00002000
+
+pattern GL_SHADER_STORAGE_BLOCK  :: (Eq a, Num a) => a
+
+pattern GL_SHADER_STORAGE_BLOCK = 0x92E6
+
+pattern GL_SHADER_STORAGE_BUFFER  :: (Eq a, Num a) => a
+
+pattern GL_SHADER_STORAGE_BUFFER = 0x90D2
+
+pattern GL_SHADER_STORAGE_BUFFER_BINDING  :: (Eq a, Num a) => a
+
+pattern GL_SHADER_STORAGE_BUFFER_BINDING = 0x90D3
+
+pattern GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT  :: (Eq a, Num a) => a
+
+pattern GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT = 0x90DF
+
+pattern GL_SHADER_STORAGE_BUFFER_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_SHADER_STORAGE_BUFFER_SIZE = 0x90D5
+
+pattern GL_SHADER_STORAGE_BUFFER_START  :: (Eq a, Num a) => a
+
+pattern GL_SHADER_STORAGE_BUFFER_START = 0x90D4
+
+pattern GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST  :: (Eq a, Num a) => a
+
+pattern GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST = 0x82AC
+
+pattern GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE  :: (Eq a, Num a) => a
+
+pattern GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE = 0x82AE
+
+pattern GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST  :: (Eq a, Num a) => a
+
+pattern GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST = 0x82AD
+
+pattern GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE  :: (Eq a, Num a) => a
+
+pattern GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE = 0x82AF
+
+pattern GL_SRGB_READ  :: (Eq a, Num a) => a
+
+pattern GL_SRGB_READ = 0x8297
+
+pattern GL_SRGB_WRITE  :: (Eq a, Num a) => a
+
+pattern GL_SRGB_WRITE = 0x8298
+
+pattern GL_STENCIL_COMPONENTS  :: (Eq a, Num a) => a
+
+pattern GL_STENCIL_COMPONENTS = 0x8285
+
+pattern GL_STENCIL_RENDERABLE  :: (Eq a, Num a) => a
+
+pattern GL_STENCIL_RENDERABLE = 0x8288
+
+pattern GL_TESS_CONTROL_SUBROUTINE  :: (Eq a, Num a) => a
+
+pattern GL_TESS_CONTROL_SUBROUTINE = 0x92E9
+
+pattern GL_TESS_CONTROL_SUBROUTINE_UNIFORM  :: (Eq a, Num a) => a
+
+pattern GL_TESS_CONTROL_SUBROUTINE_UNIFORM = 0x92EF
+
+pattern GL_TESS_CONTROL_TEXTURE  :: (Eq a, Num a) => a
+
+pattern GL_TESS_CONTROL_TEXTURE = 0x829C
+
+pattern GL_TESS_EVALUATION_SUBROUTINE  :: (Eq a, Num a) => a
+
+pattern GL_TESS_EVALUATION_SUBROUTINE = 0x92EA
+
+pattern GL_TESS_EVALUATION_SUBROUTINE_UNIFORM  :: (Eq a, Num a) => a
+
+pattern GL_TESS_EVALUATION_SUBROUTINE_UNIFORM = 0x92F0
+
+pattern GL_TESS_EVALUATION_TEXTURE  :: (Eq a, Num a) => a
+
+pattern GL_TESS_EVALUATION_TEXTURE = 0x829D
+
+pattern GL_TEXTURE_BUFFER_OFFSET  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_BUFFER_OFFSET = 0x919D
+
+pattern GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT = 0x919F
+
+pattern GL_TEXTURE_BUFFER_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_BUFFER_SIZE = 0x919E
+
+pattern GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT = 0x82B2
+
+pattern GL_TEXTURE_COMPRESSED_BLOCK_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_COMPRESSED_BLOCK_SIZE = 0x82B3
+
+pattern GL_TEXTURE_COMPRESSED_BLOCK_WIDTH  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_COMPRESSED_BLOCK_WIDTH = 0x82B1
+
+pattern GL_TEXTURE_GATHER  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_GATHER = 0x82A2
+
+pattern GL_TEXTURE_GATHER_SHADOW  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_GATHER_SHADOW = 0x82A3
+
+pattern GL_TEXTURE_IMAGE_FORMAT  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_IMAGE_FORMAT = 0x828F
+
+pattern GL_TEXTURE_IMAGE_TYPE  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_IMAGE_TYPE = 0x8290
+
+pattern GL_TEXTURE_IMMUTABLE_LEVELS  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_IMMUTABLE_LEVELS = 0x82DF
+
+pattern GL_TEXTURE_SHADOW  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_SHADOW = 0x82A1
+
+pattern GL_TEXTURE_VIEW  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_VIEW = 0x82B5
+
+pattern GL_TEXTURE_VIEW_MIN_LAYER  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_VIEW_MIN_LAYER = 0x82DD
+
+pattern GL_TEXTURE_VIEW_MIN_LEVEL  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_VIEW_MIN_LEVEL = 0x82DB
+
+pattern GL_TEXTURE_VIEW_NUM_LAYERS  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_VIEW_NUM_LAYERS = 0x82DE
+
+pattern GL_TEXTURE_VIEW_NUM_LEVELS  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_VIEW_NUM_LEVELS = 0x82DC
+
+pattern GL_TOP_LEVEL_ARRAY_SIZE  :: (Eq a, Num a) => a
+
+pattern GL_TOP_LEVEL_ARRAY_SIZE = 0x930C
+
+pattern GL_TOP_LEVEL_ARRAY_STRIDE  :: (Eq a, Num a) => a
+
+pattern GL_TOP_LEVEL_ARRAY_STRIDE = 0x930D
+
+pattern GL_TRANSFORM_FEEDBACK_VARYING  :: (Eq a, Num a) => a
+
+pattern GL_TRANSFORM_FEEDBACK_VARYING = 0x92F4
+
+pattern GL_TYPE  :: (Eq a, Num a) => a
+
+pattern GL_TYPE = 0x92FA
+
+pattern GL_UNIFORM  :: (Eq a, Num a) => a
+
+pattern GL_UNIFORM = 0x92E1
+
+pattern GL_UNIFORM_BLOCK  :: (Eq a, Num a) => a
+
+pattern GL_UNIFORM_BLOCK = 0x92E2
+
+pattern GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER  :: (Eq a, Num a) => a
+
+pattern GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER = 0x90EC
+
+pattern GL_VERTEX_ATTRIB_BINDING  :: (Eq a, Num a) => a
+
+pattern GL_VERTEX_ATTRIB_BINDING = 0x82D4
+
+pattern GL_VERTEX_ATTRIB_RELATIVE_OFFSET  :: (Eq a, Num a) => a
+
+pattern GL_VERTEX_ATTRIB_RELATIVE_OFFSET = 0x82D5
+
+pattern GL_VERTEX_BINDING_BUFFER  :: (Eq a, Num a) => a
+
+pattern GL_VERTEX_BINDING_BUFFER = 0x8F4F
+
+pattern GL_VERTEX_BINDING_DIVISOR  :: (Eq a, Num a) => a
+
+pattern GL_VERTEX_BINDING_DIVISOR = 0x82D6
+
+pattern GL_VERTEX_BINDING_OFFSET  :: (Eq a, Num a) => a
+
+pattern GL_VERTEX_BINDING_OFFSET = 0x82D7
+
+pattern GL_VERTEX_BINDING_STRIDE  :: (Eq a, Num a) => a
+
+pattern GL_VERTEX_BINDING_STRIDE = 0x82D8
+
+pattern GL_VERTEX_SUBROUTINE  :: (Eq a, Num a) => a
+
+pattern GL_VERTEX_SUBROUTINE = 0x92E8
+
+pattern GL_VERTEX_SUBROUTINE_UNIFORM  :: (Eq a, Num a) => a
+
+pattern GL_VERTEX_SUBROUTINE_UNIFORM = 0x92EE
+
+pattern GL_VERTEX_TEXTURE  :: (Eq a, Num a) => a
+
+pattern GL_VERTEX_TEXTURE = 0x829B
+
+pattern GL_VIEW_CLASS_128_BITS  :: (Eq a, Num a) => a
+
+pattern GL_VIEW_CLASS_128_BITS = 0x82C4
+
+pattern GL_VIEW_CLASS_16_BITS  :: (Eq a, Num a) => a
+
+pattern GL_VIEW_CLASS_16_BITS = 0x82CA
+
+pattern GL_VIEW_CLASS_24_BITS  :: (Eq a, Num a) => a
+
+pattern GL_VIEW_CLASS_24_BITS = 0x82C9
+
+pattern GL_VIEW_CLASS_32_BITS  :: (Eq a, Num a) => a
+
+pattern GL_VIEW_CLASS_32_BITS = 0x82C8
+
+pattern GL_VIEW_CLASS_48_BITS  :: (Eq a, Num a) => a
+
+pattern GL_VIEW_CLASS_48_BITS = 0x82C7
+
+pattern GL_VIEW_CLASS_64_BITS  :: (Eq a, Num a) => a
+
+pattern GL_VIEW_CLASS_64_BITS = 0x82C6
+
+pattern GL_VIEW_CLASS_8_BITS  :: (Eq a, Num a) => a
+
+pattern GL_VIEW_CLASS_8_BITS = 0x82CB
+
+pattern GL_VIEW_CLASS_96_BITS  :: (Eq a, Num a) => a
+
+pattern GL_VIEW_CLASS_96_BITS = 0x82C5
+
+pattern GL_VIEW_CLASS_BPTC_FLOAT  :: (Eq a, Num a) => a
+
+pattern GL_VIEW_CLASS_BPTC_FLOAT = 0x82D3
+
+pattern GL_VIEW_CLASS_BPTC_UNORM  :: (Eq a, Num a) => a
+
+pattern GL_VIEW_CLASS_BPTC_UNORM = 0x82D2
+
+pattern GL_VIEW_CLASS_RGTC1_RED  :: (Eq a, Num a) => a
+
+pattern GL_VIEW_CLASS_RGTC1_RED = 0x82D0
+
+pattern GL_VIEW_CLASS_RGTC2_RG  :: (Eq a, Num a) => a
+
+pattern GL_VIEW_CLASS_RGTC2_RG = 0x82D1
+
+pattern GL_VIEW_CLASS_S3TC_DXT1_RGB  :: (Eq a, Num a) => a
+
+pattern GL_VIEW_CLASS_S3TC_DXT1_RGB = 0x82CC
+
+pattern GL_VIEW_CLASS_S3TC_DXT1_RGBA  :: (Eq a, Num a) => a
+
+pattern GL_VIEW_CLASS_S3TC_DXT1_RGBA = 0x82CD
+
+pattern GL_VIEW_CLASS_S3TC_DXT3_RGBA  :: (Eq a, Num a) => a
+
+pattern GL_VIEW_CLASS_S3TC_DXT3_RGBA = 0x82CE
+
+pattern GL_VIEW_CLASS_S3TC_DXT5_RGBA  :: (Eq a, Num a) => a
+
+pattern GL_VIEW_CLASS_S3TC_DXT5_RGBA = 0x82CF
+
+pattern GL_VIEW_COMPATIBILITY_CLASS  :: (Eq a, Num a) => a
+
+pattern GL_VIEW_COMPATIBILITY_CLASS = 0x82B6
+
+-- | Usage: @'glBindBuffersBase' target first count buffers@
+--
+-- The length of @buffers@ should be @count@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindBuffersBase.xhtml>
+
+
+glBindBuffersBase :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLuint -> m ()
+glBindBuffersBase = ffienumuintsizeiPtruintIOV glBindBuffersBaseFunPtr
+
+glBindBuffersBaseFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLuint -> IO ())
+glBindBuffersBaseFunPtr = unsafePerformIO (getProcAddress "glBindBuffersBase")
+
+{-# NOINLINE glBindBuffersBaseFunPtr #-}
+
+-- | Usage: @'glBindBuffersRange' target first count buffers offsets sizes@
+--
+-- The length of @buffers@ should be @count@.
+--
+-- The length of @offsets@ should be @count@.
+--
+-- The length of @sizes@ should be @count@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindBuffersRange.xhtml>
+
+
+glBindBuffersRange :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizeiptr -> m ()
+glBindBuffersRange = ffienumuintsizeiPtruintPtrintptrPtrsizeiptrIOV glBindBuffersRangeFunPtr
+
+glBindBuffersRangeFunPtr :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizeiptr -> IO ())
+glBindBuffersRangeFunPtr = unsafePerformIO (getProcAddress "glBindBuffersRange")
+
+{-# NOINLINE glBindBuffersRangeFunPtr #-}
+
+-- | Usage: @'glBindImageTextures' first count textures@
+--
+-- The length of @textures@ should be @count@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindImageTextures.xhtml>
+
+
+glBindImageTextures :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> m ()
+glBindImageTextures = ffiuintsizeiPtruintIOV glBindImageTexturesFunPtr
+
+glBindImageTexturesFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> IO ())
+glBindImageTexturesFunPtr = unsafePerformIO (getProcAddress "glBindImageTextures")
+
+{-# NOINLINE glBindImageTexturesFunPtr #-}
+
+-- | Usage: @'glBindSamplers' first count samplers@
+--
+-- The length of @samplers@ should be @count@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindSamplers.xhtml>
+
+
+glBindSamplers :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> m ()
+glBindSamplers = ffiuintsizeiPtruintIOV glBindSamplersFunPtr
+
+glBindSamplersFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> IO ())
+glBindSamplersFunPtr = unsafePerformIO (getProcAddress "glBindSamplers")
+
+{-# NOINLINE glBindSamplersFunPtr #-}
+
+-- | Usage: @'glBindTextures' first count textures@
+--
+-- The length of @textures@ should be @count@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindTextures.xhtml>
+
+
+glBindTextures :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> m ()
+glBindTextures = ffiuintsizeiPtruintIOV glBindTexturesFunPtr
+
+glBindTexturesFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> IO ())
+glBindTexturesFunPtr = unsafePerformIO (getProcAddress "glBindTextures")
+
+{-# NOINLINE glBindTexturesFunPtr #-}
+
+-- | Usage: @'glBindVertexBuffers' first count buffers offsets strides@
+--
+-- The length of @buffers@ should be @count@.
+--
+-- The length of @offsets@ should be @count@.
+--
+-- The length of @strides@ should be @count@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindVertexBuffers.xhtml>
+
+
+glBindVertexBuffers :: MonadIO m => GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> m ()
+glBindVertexBuffers = ffiuintsizeiPtruintPtrintptrPtrsizeiIOV glBindVertexBuffersFunPtr
+
+glBindVertexBuffersFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> IO ())
+glBindVertexBuffersFunPtr = unsafePerformIO (getProcAddress "glBindVertexBuffers")
+
+{-# NOINLINE glBindVertexBuffersFunPtr #-}
+
+-- | Usage: @'glBufferStorage' target size data flags@
+--
+-- The length of @data@ should be @size@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBufferStorage.xhtml>
+
+
+glBufferStorage :: MonadIO m => GLenum -> GLsizeiptr -> Ptr () -> GLbitfield -> m ()
+glBufferStorage = ffienumsizeiptrPtrVbitfieldIOV glBufferStorageFunPtr
+
+glBufferStorageFunPtr :: FunPtr (GLenum -> GLsizeiptr -> Ptr () -> GLbitfield -> IO ())
+glBufferStorageFunPtr = unsafePerformIO (getProcAddress "glBufferStorage")
+
+{-# NOINLINE glBufferStorageFunPtr #-}
+
+-- | Usage: @'glClearTexImage' texture level format type data@
+--
+-- The length of @data@ should be @COMPSIZE(format,type)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glClearTexImage.xhtml>
+
+
+glClearTexImage :: MonadIO m => GLuint -> GLint -> GLenum -> GLenum -> Ptr () -> m ()
+glClearTexImage = ffiuintintenumenumPtrVIOV glClearTexImageFunPtr
+
+glClearTexImageFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLenum -> Ptr () -> IO ())
+glClearTexImageFunPtr = unsafePerformIO (getProcAddress "glClearTexImage")
+
+{-# NOINLINE glClearTexImageFunPtr #-}
+
+-- | Usage: @'glClearTexSubImage' texture level xoffset yoffset zoffset width height depth format type data@
+--
+-- The length of @data@ should be @COMPSIZE(format,type)@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glClearTexSubImage.xhtml>
+
+
+glClearTexSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glClearTexSubImage = ffiuintintintintintsizeisizeisizeienumenumPtrVIOV glClearTexSubImageFunPtr
+
+glClearTexSubImageFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glClearTexSubImageFunPtr = unsafePerformIO (getProcAddress "glClearTexSubImage")
+
+{-# NOINLINE glClearTexSubImageFunPtr #-}
+
+pattern GL_BUFFER_IMMUTABLE_STORAGE  :: (Eq a, Num a) => a
+
+pattern GL_BUFFER_IMMUTABLE_STORAGE = 0x821F
+
+pattern GL_BUFFER_STORAGE_FLAGS  :: (Eq a, Num a) => a
+
+pattern GL_BUFFER_STORAGE_FLAGS = 0x8220
+
+pattern GL_CLEAR_TEXTURE  :: (Eq a, Num a) => a
+
+pattern GL_CLEAR_TEXTURE = 0x9365
+
+pattern GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT  :: (Eq a, Num a) => a
+
+pattern GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT = 0x00004000
+
+pattern GL_CLIENT_STORAGE_BIT  :: (Eq a, Num a) => a
+
+pattern GL_CLIENT_STORAGE_BIT = 0x0200
+
+pattern GL_DYNAMIC_STORAGE_BIT  :: (Eq a, Num a) => a
+
+pattern GL_DYNAMIC_STORAGE_BIT = 0x0100
+
+pattern GL_LOCATION_COMPONENT  :: (Eq a, Num a) => a
+
+pattern GL_LOCATION_COMPONENT = 0x934A
+
+pattern GL_MAP_COHERENT_BIT  :: (Eq a, Num a) => a
+
+pattern GL_MAP_COHERENT_BIT = 0x0080
+
+pattern GL_MAP_PERSISTENT_BIT  :: (Eq a, Num a) => a
+
+pattern GL_MAP_PERSISTENT_BIT = 0x0040
+
+pattern GL_MAX_VERTEX_ATTRIB_STRIDE  :: (Eq a, Num a) => a
+
+pattern GL_MAX_VERTEX_ATTRIB_STRIDE = 0x82E5
+
+pattern GL_MIRROR_CLAMP_TO_EDGE  :: (Eq a, Num a) => a
+
+pattern GL_MIRROR_CLAMP_TO_EDGE = 0x8743
+
+pattern GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED  :: (Eq a, Num a) => a
+
+pattern GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED = 0x8221
+
+pattern GL_QUERY_BUFFER  :: (Eq a, Num a) => a
+
+pattern GL_QUERY_BUFFER = 0x9192
+
+pattern GL_QUERY_BUFFER_BARRIER_BIT  :: (Eq a, Num a) => a
+
+pattern GL_QUERY_BUFFER_BARRIER_BIT = 0x00008000
+
+pattern GL_QUERY_BUFFER_BINDING  :: (Eq a, Num a) => a
+
+pattern GL_QUERY_BUFFER_BINDING = 0x9193
+
+pattern GL_QUERY_RESULT_NO_WAIT  :: (Eq a, Num a) => a
+
+pattern GL_QUERY_RESULT_NO_WAIT = 0x9194
+
+pattern GL_TEXTURE_BUFFER_BINDING  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_BUFFER_BINDING = 0x8C2A
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_INDEX  :: (Eq a, Num a) => a
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_INDEX = 0x934B
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE  :: (Eq a, Num a) => a
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE = 0x934C
+
+-- | Usage: @'glBindTextureUnit' unit texture@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glBindTextureUnit.xhtml>
+
+
+glBindTextureUnit :: MonadIO m => GLuint -> GLuint -> m ()
+glBindTextureUnit = ffiuintuintIOV glBindTextureUnitFunPtr
+
+glBindTextureUnitFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
+glBindTextureUnitFunPtr = unsafePerformIO (getProcAddress "glBindTextureUnit")
+
+{-# NOINLINE glBindTextureUnitFunPtr #-}
+
+-- | Usage: @'glBlitNamedFramebuffer' readFramebuffer drawFramebuffer srcX0 srcY0 srcX1 srcY1 dstX0 dstY0 dstX1 dstY1 mask filter@
+
+
+glBlitNamedFramebuffer :: MonadIO m => GLuint -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> m ()
+glBlitNamedFramebuffer = ffiuintuintintintintintintintintintbitfieldenumIOV glBlitNamedFramebufferFunPtr
+
+glBlitNamedFramebufferFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> IO ())
+glBlitNamedFramebufferFunPtr = unsafePerformIO (getProcAddress "glBlitNamedFramebuffer")
+
+{-# NOINLINE glBlitNamedFramebufferFunPtr #-}
+
+-- | Usage: @'glCheckNamedFramebufferStatus' framebuffer target@
+
+
+glCheckNamedFramebufferStatus :: MonadIO m => GLuint -> GLenum -> m GLenum
+glCheckNamedFramebufferStatus = ffiuintenumIOenum glCheckNamedFramebufferStatusFunPtr
+
+glCheckNamedFramebufferStatusFunPtr :: FunPtr (GLuint -> GLenum -> IO GLenum)
+glCheckNamedFramebufferStatusFunPtr = unsafePerformIO (getProcAddress "glCheckNamedFramebufferStatus")
+
+{-# NOINLINE glCheckNamedFramebufferStatusFunPtr #-}
+
+-- | Usage: @'glClearNamedBufferData' buffer internalformat format type data@
+
+
+glClearNamedBufferData :: MonadIO m => GLuint -> GLenum -> GLenum -> GLenum -> Ptr () -> m ()
+glClearNamedBufferData = ffiuintenumenumenumPtrVIOV glClearNamedBufferDataFunPtr
+
+glClearNamedBufferDataFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLenum -> Ptr () -> IO ())
+glClearNamedBufferDataFunPtr = unsafePerformIO (getProcAddress "glClearNamedBufferData")
+
+{-# NOINLINE glClearNamedBufferDataFunPtr #-}
+
+-- | Usage: @'glClearNamedBufferSubData' buffer internalformat offset size format type data@
+--
+-- The parameter @size@ is a @BufferSize@.
+
+
+glClearNamedBufferSubData :: MonadIO m => GLuint -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> m ()
+glClearNamedBufferSubData = ffiuintenumintptrsizeiptrenumenumPtrVIOV glClearNamedBufferSubDataFunPtr
+
+glClearNamedBufferSubDataFunPtr :: FunPtr (GLuint -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr () -> IO ())
+glClearNamedBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glClearNamedBufferSubData")
+
+{-# NOINLINE glClearNamedBufferSubDataFunPtr #-}
+
+-- | Usage: @'glClearNamedFramebufferfi' framebuffer buffer drawbuffer depth stencil@
+
+
+glClearNamedFramebufferfi :: MonadIO m => GLuint -> GLenum -> GLint -> GLfloat -> GLint -> m ()
+glClearNamedFramebufferfi = ffiuintenumintfloatintIOV glClearNamedFramebufferfiFunPtr
+
+glClearNamedFramebufferfiFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> GLfloat -> GLint -> IO ())
+glClearNamedFramebufferfiFunPtr = unsafePerformIO (getProcAddress "glClearNamedFramebufferfi")
+
+{-# NOINLINE glClearNamedFramebufferfiFunPtr #-}
+
+-- | Usage: @'glClearNamedFramebufferfv' framebuffer buffer drawbuffer value@
+
+
+glClearNamedFramebufferfv :: MonadIO m => GLuint -> GLenum -> GLint -> Ptr GLfloat -> m ()
+glClearNamedFramebufferfv = ffiuintenumintPtrfloatIOV glClearNamedFramebufferfvFunPtr
+
+glClearNamedFramebufferfvFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> Ptr GLfloat -> IO ())
+glClearNamedFramebufferfvFunPtr = unsafePerformIO (getProcAddress "glClearNamedFramebufferfv")
+
+{-# NOINLINE glClearNamedFramebufferfvFunPtr #-}
+
+-- | Usage: @'glClearNamedFramebufferiv' framebuffer buffer drawbuffer value@
+
+
+glClearNamedFramebufferiv :: MonadIO m => GLuint -> GLenum -> GLint -> Ptr GLint -> m ()
+glClearNamedFramebufferiv = ffiuintenumintPtrintIOV glClearNamedFramebufferivFunPtr
+
+glClearNamedFramebufferivFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> Ptr GLint -> IO ())
+glClearNamedFramebufferivFunPtr = unsafePerformIO (getProcAddress "glClearNamedFramebufferiv")
+
+{-# NOINLINE glClearNamedFramebufferivFunPtr #-}
+
+-- | Usage: @'glClearNamedFramebufferuiv' framebuffer buffer drawbuffer value@
+
+
+glClearNamedFramebufferuiv :: MonadIO m => GLuint -> GLenum -> GLint -> Ptr GLuint -> m ()
+glClearNamedFramebufferuiv = ffiuintenumintPtruintIOV glClearNamedFramebufferuivFunPtr
+
+glClearNamedFramebufferuivFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> Ptr GLuint -> IO ())
+glClearNamedFramebufferuivFunPtr = unsafePerformIO (getProcAddress "glClearNamedFramebufferuiv")
+
+{-# NOINLINE glClearNamedFramebufferuivFunPtr #-}
+
+-- | Usage: @'glClipControl' origin depth@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glClipControl.xhtml>
+
+
+glClipControl :: MonadIO m => GLenum -> GLenum -> m ()
+glClipControl = ffienumenumIOV glClipControlFunPtr
+
+glClipControlFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
+glClipControlFunPtr = unsafePerformIO (getProcAddress "glClipControl")
+
+{-# NOINLINE glClipControlFunPtr #-}
+
+-- | Usage: @'glCompressedTextureSubImage1D' texture level xoffset width format imageSize data@
+
+
+glCompressedTextureSubImage1D :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
+glCompressedTextureSubImage1D = ffiuintintintsizeienumsizeiPtrVIOV glCompressedTextureSubImage1DFunPtr
+
+glCompressedTextureSubImage1DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
+glCompressedTextureSubImage1DFunPtr = unsafePerformIO (getProcAddress "glCompressedTextureSubImage1D")
+
+{-# NOINLINE glCompressedTextureSubImage1DFunPtr #-}
+
+-- | Usage: @'glCompressedTextureSubImage2D' texture level xoffset yoffset width height format imageSize data@
+
+
+glCompressedTextureSubImage2D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
+glCompressedTextureSubImage2D = ffiuintintintintsizeisizeienumsizeiPtrVIOV glCompressedTextureSubImage2DFunPtr
+
+glCompressedTextureSubImage2DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
+glCompressedTextureSubImage2DFunPtr = unsafePerformIO (getProcAddress "glCompressedTextureSubImage2D")
+
+{-# NOINLINE glCompressedTextureSubImage2DFunPtr #-}
+
+-- | Usage: @'glCompressedTextureSubImage3D' texture level xoffset yoffset zoffset width height depth format imageSize data@
+
+
+glCompressedTextureSubImage3D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> m ()
+glCompressedTextureSubImage3D = ffiuintintintintintsizeisizeisizeienumsizeiPtrVIOV glCompressedTextureSubImage3DFunPtr
+
+glCompressedTextureSubImage3DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> IO ())
+glCompressedTextureSubImage3DFunPtr = unsafePerformIO (getProcAddress "glCompressedTextureSubImage3D")
+
+{-# NOINLINE glCompressedTextureSubImage3DFunPtr #-}
+
+-- | Usage: @'glCopyNamedBufferSubData' readBuffer writeBuffer readOffset writeOffset size@
+--
+-- The parameter @size@ is a @BufferSize@.
+
+
+glCopyNamedBufferSubData :: MonadIO m => GLuint -> GLuint -> GLintptr -> GLintptr -> GLsizeiptr -> m ()
+glCopyNamedBufferSubData = ffiuintuintintptrintptrsizeiptrIOV glCopyNamedBufferSubDataFunPtr
+
+glCopyNamedBufferSubDataFunPtr :: FunPtr (GLuint -> GLuint -> GLintptr -> GLintptr -> GLsizeiptr -> IO ())
+glCopyNamedBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glCopyNamedBufferSubData")
+
+{-# NOINLINE glCopyNamedBufferSubDataFunPtr #-}
+
+-- | Usage: @'glCopyTextureSubImage1D' texture level xoffset x y width@
+
+
+glCopyTextureSubImage1D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> m ()
+glCopyTextureSubImage1D = ffiuintintintintintsizeiIOV glCopyTextureSubImage1DFunPtr
+
+glCopyTextureSubImage1DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ())
+glCopyTextureSubImage1DFunPtr = unsafePerformIO (getProcAddress "glCopyTextureSubImage1D")
+
+{-# NOINLINE glCopyTextureSubImage1DFunPtr #-}
+
+-- | Usage: @'glCopyTextureSubImage2D' texture level xoffset yoffset x y width height@
+
+
+glCopyTextureSubImage2D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
+glCopyTextureSubImage2D = ffiuintintintintintintsizeisizeiIOV glCopyTextureSubImage2DFunPtr
+
+glCopyTextureSubImage2DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+glCopyTextureSubImage2DFunPtr = unsafePerformIO (getProcAddress "glCopyTextureSubImage2D")
+
+{-# NOINLINE glCopyTextureSubImage2DFunPtr #-}
+
+-- | Usage: @'glCopyTextureSubImage3D' texture level xoffset yoffset zoffset x y width height@
+
+
+glCopyTextureSubImage3D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
+glCopyTextureSubImage3D = ffiuintintintintintintintsizeisizeiIOV glCopyTextureSubImage3DFunPtr
+
+glCopyTextureSubImage3DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+glCopyTextureSubImage3DFunPtr = unsafePerformIO (getProcAddress "glCopyTextureSubImage3D")
+
+{-# NOINLINE glCopyTextureSubImage3DFunPtr #-}
+
+-- | Usage: @'glCreateBuffers' n buffers@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCreateBuffers.xhtml>
+
+
+glCreateBuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glCreateBuffers = ffisizeiPtruintIOV glCreateBuffersFunPtr
+
+glCreateBuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glCreateBuffersFunPtr = unsafePerformIO (getProcAddress "glCreateBuffers")
+
+{-# NOINLINE glCreateBuffersFunPtr #-}
+
+-- | Usage: @'glCreateFramebuffers' n framebuffers@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCreateFramebuffers.xhtml>
+
+
+glCreateFramebuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glCreateFramebuffers = ffisizeiPtruintIOV glCreateFramebuffersFunPtr
+
+glCreateFramebuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glCreateFramebuffersFunPtr = unsafePerformIO (getProcAddress "glCreateFramebuffers")
+
+{-# NOINLINE glCreateFramebuffersFunPtr #-}
+
+-- | Usage: @'glCreateProgramPipelines' n pipelines@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCreateProgramPipelines.xhtml>
+
+
+glCreateProgramPipelines :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glCreateProgramPipelines = ffisizeiPtruintIOV glCreateProgramPipelinesFunPtr
+
+glCreateProgramPipelinesFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glCreateProgramPipelinesFunPtr = unsafePerformIO (getProcAddress "glCreateProgramPipelines")
+
+{-# NOINLINE glCreateProgramPipelinesFunPtr #-}
+
+-- | Usage: @'glCreateQueries' target n ids@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCreateQueries.xhtml>
+
+
+glCreateQueries :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()
+glCreateQueries = ffienumsizeiPtruintIOV glCreateQueriesFunPtr
+
+glCreateQueriesFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLuint -> IO ())
+glCreateQueriesFunPtr = unsafePerformIO (getProcAddress "glCreateQueries")
+
+{-# NOINLINE glCreateQueriesFunPtr #-}
+
+-- | Usage: @'glCreateRenderbuffers' n renderbuffers@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCreateRenderbuffers.xhtml>
+
+
+glCreateRenderbuffers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glCreateRenderbuffers = ffisizeiPtruintIOV glCreateRenderbuffersFunPtr
+
+glCreateRenderbuffersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glCreateRenderbuffersFunPtr = unsafePerformIO (getProcAddress "glCreateRenderbuffers")
+
+{-# NOINLINE glCreateRenderbuffersFunPtr #-}
+
+-- | Usage: @'glCreateSamplers' n samplers@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCreateSamplers.xhtml>
+
+
+glCreateSamplers :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glCreateSamplers = ffisizeiPtruintIOV glCreateSamplersFunPtr
+
+glCreateSamplersFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glCreateSamplersFunPtr = unsafePerformIO (getProcAddress "glCreateSamplers")
+
+{-# NOINLINE glCreateSamplersFunPtr #-}
+
+-- | Usage: @'glCreateTextures' target n textures@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCreateTextures.xhtml>
+
+
+glCreateTextures :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()
+glCreateTextures = ffienumsizeiPtruintIOV glCreateTexturesFunPtr
+
+glCreateTexturesFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLuint -> IO ())
+glCreateTexturesFunPtr = unsafePerformIO (getProcAddress "glCreateTextures")
+
+{-# NOINLINE glCreateTexturesFunPtr #-}
+
+-- | Usage: @'glCreateTransformFeedbacks' n ids@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCreateTransformFeedbacks.xhtml>
+
+
+glCreateTransformFeedbacks :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glCreateTransformFeedbacks = ffisizeiPtruintIOV glCreateTransformFeedbacksFunPtr
+
+glCreateTransformFeedbacksFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glCreateTransformFeedbacksFunPtr = unsafePerformIO (getProcAddress "glCreateTransformFeedbacks")
+
+{-# NOINLINE glCreateTransformFeedbacksFunPtr #-}
+
+-- | Usage: @'glCreateVertexArrays' n arrays@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glCreateVertexArrays.xhtml>
+
+
+glCreateVertexArrays :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glCreateVertexArrays = ffisizeiPtruintIOV glCreateVertexArraysFunPtr
+
+glCreateVertexArraysFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glCreateVertexArraysFunPtr = unsafePerformIO (getProcAddress "glCreateVertexArrays")
+
+{-# NOINLINE glCreateVertexArraysFunPtr #-}
+
+-- | Usage: @'glDisableVertexArrayAttrib' vaobj index@
+
+
+glDisableVertexArrayAttrib :: MonadIO m => GLuint -> GLuint -> m ()
+glDisableVertexArrayAttrib = ffiuintuintIOV glDisableVertexArrayAttribFunPtr
+
+glDisableVertexArrayAttribFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
+glDisableVertexArrayAttribFunPtr = unsafePerformIO (getProcAddress "glDisableVertexArrayAttrib")
+
+{-# NOINLINE glDisableVertexArrayAttribFunPtr #-}
+
+-- | Usage: @'glEnableVertexArrayAttrib' vaobj index@
+
+
+glEnableVertexArrayAttrib :: MonadIO m => GLuint -> GLuint -> m ()
+glEnableVertexArrayAttrib = ffiuintuintIOV glEnableVertexArrayAttribFunPtr
+
+glEnableVertexArrayAttribFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
+glEnableVertexArrayAttribFunPtr = unsafePerformIO (getProcAddress "glEnableVertexArrayAttrib")
+
+{-# NOINLINE glEnableVertexArrayAttribFunPtr #-}
+
+-- | Usage: @'glFlushMappedNamedBufferRange' buffer offset length@
+--
+-- The parameter @length@ is a @BufferSize@.
+
+
+glFlushMappedNamedBufferRange :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> m ()
+glFlushMappedNamedBufferRange = ffiuintintptrsizeiptrIOV glFlushMappedNamedBufferRangeFunPtr
+
+glFlushMappedNamedBufferRangeFunPtr :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> IO ())
+glFlushMappedNamedBufferRangeFunPtr = unsafePerformIO (getProcAddress "glFlushMappedNamedBufferRange")
+
+{-# NOINLINE glFlushMappedNamedBufferRangeFunPtr #-}
+
+-- | Usage: @'glGenerateTextureMipmap' texture@
+
+
+glGenerateTextureMipmap :: MonadIO m => GLuint -> m ()
+glGenerateTextureMipmap = ffiuintIOV glGenerateTextureMipmapFunPtr
+
+glGenerateTextureMipmapFunPtr :: FunPtr (GLuint -> IO ())
+glGenerateTextureMipmapFunPtr = unsafePerformIO (getProcAddress "glGenerateTextureMipmap")
+
+{-# NOINLINE glGenerateTextureMipmapFunPtr #-}
+
+-- | Usage: @'glGetCompressedTextureImage' texture level bufSize pixels@
+
+
+glGetCompressedTextureImage :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr () -> m ()
+glGetCompressedTextureImage = ffiuintintsizeiPtrVIOV glGetCompressedTextureImageFunPtr
+
+glGetCompressedTextureImageFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr () -> IO ())
+glGetCompressedTextureImageFunPtr = unsafePerformIO (getProcAddress "glGetCompressedTextureImage")
+
+{-# NOINLINE glGetCompressedTextureImageFunPtr #-}
+
+-- | Usage: @'glGetCompressedTextureSubImage' texture level xoffset yoffset zoffset width height depth bufSize pixels@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetCompressedTextureSubImage.xhtml>
+
+
+glGetCompressedTextureSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> Ptr () -> m ()
+glGetCompressedTextureSubImage = ffiuintintintintintsizeisizeisizeisizeiPtrVIOV glGetCompressedTextureSubImageFunPtr
+
+glGetCompressedTextureSubImageFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> Ptr () -> IO ())
+glGetCompressedTextureSubImageFunPtr = unsafePerformIO (getProcAddress "glGetCompressedTextureSubImage")
+
+{-# NOINLINE glGetCompressedTextureSubImageFunPtr #-}
+
+-- | Usage: @'glGetGraphicsResetStatus'@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetGraphicsResetStatus.xhtml>
+
+
+glGetGraphicsResetStatus :: MonadIO m => m GLenum
+glGetGraphicsResetStatus = ffiIOenum glGetGraphicsResetStatusFunPtr
+
+glGetGraphicsResetStatusFunPtr :: FunPtr (IO GLenum)
+glGetGraphicsResetStatusFunPtr = unsafePerformIO (getProcAddress "glGetGraphicsResetStatus")
+
+{-# NOINLINE glGetGraphicsResetStatusFunPtr #-}
+
+-- | Usage: @'glGetNamedBufferParameteri64v' buffer pname params@
+
+
+glGetNamedBufferParameteri64v :: MonadIO m => GLuint -> GLenum -> Ptr GLint64 -> m ()
+glGetNamedBufferParameteri64v = ffiuintenumPtrint64IOV glGetNamedBufferParameteri64vFunPtr
+
+glGetNamedBufferParameteri64vFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint64 -> IO ())
+glGetNamedBufferParameteri64vFunPtr = unsafePerformIO (getProcAddress "glGetNamedBufferParameteri64v")
+
+{-# NOINLINE glGetNamedBufferParameteri64vFunPtr #-}
+
+-- | Usage: @'glGetNamedBufferParameteriv' buffer pname params@
+
+
+glGetNamedBufferParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetNamedBufferParameteriv = ffiuintenumPtrintIOV glGetNamedBufferParameterivFunPtr
+
+glGetNamedBufferParameterivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetNamedBufferParameterivFunPtr = unsafePerformIO (getProcAddress "glGetNamedBufferParameteriv")
+
+{-# NOINLINE glGetNamedBufferParameterivFunPtr #-}
+
+-- | Usage: @'glGetNamedBufferPointerv' buffer pname params@
+
+
+glGetNamedBufferPointerv :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr ()) -> m ()
+glGetNamedBufferPointerv = ffiuintenumPtrPtrVIOV glGetNamedBufferPointervFunPtr
+
+glGetNamedBufferPointervFunPtr :: FunPtr (GLuint -> GLenum -> Ptr (Ptr ()) -> IO ())
+glGetNamedBufferPointervFunPtr = unsafePerformIO (getProcAddress "glGetNamedBufferPointerv")
+
+{-# NOINLINE glGetNamedBufferPointervFunPtr #-}
+
+-- | Usage: @'glGetNamedBufferSubData' buffer offset size data@
+--
+-- The parameter @size@ is a @BufferSize@.
+
+
+glGetNamedBufferSubData :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> Ptr () -> m ()
+glGetNamedBufferSubData = ffiuintintptrsizeiptrPtrVIOV glGetNamedBufferSubDataFunPtr
+
+glGetNamedBufferSubDataFunPtr :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> Ptr () -> IO ())
+glGetNamedBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glGetNamedBufferSubData")
+
+{-# NOINLINE glGetNamedBufferSubDataFunPtr #-}
+
+-- | Usage: @'glGetNamedFramebufferAttachmentParameteriv' framebuffer attachment pname params@
+
+
+glGetNamedFramebufferAttachmentParameteriv :: MonadIO m => GLuint -> GLenum -> GLenum -> Ptr GLint -> m ()
+glGetNamedFramebufferAttachmentParameteriv = ffiuintenumenumPtrintIOV glGetNamedFramebufferAttachmentParameterivFunPtr
+
+glGetNamedFramebufferAttachmentParameterivFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetNamedFramebufferAttachmentParameterivFunPtr = unsafePerformIO (getProcAddress "glGetNamedFramebufferAttachmentParameteriv")
+
+{-# NOINLINE glGetNamedFramebufferAttachmentParameterivFunPtr #-}
+
+-- | Usage: @'glGetNamedFramebufferParameteriv' framebuffer pname param@
+
+
+glGetNamedFramebufferParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetNamedFramebufferParameteriv = ffiuintenumPtrintIOV glGetNamedFramebufferParameterivFunPtr
+
+glGetNamedFramebufferParameterivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetNamedFramebufferParameterivFunPtr = unsafePerformIO (getProcAddress "glGetNamedFramebufferParameteriv")
+
+{-# NOINLINE glGetNamedFramebufferParameterivFunPtr #-}
+
+-- | Usage: @'glGetNamedRenderbufferParameteriv' renderbuffer pname params@
+
+
+glGetNamedRenderbufferParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetNamedRenderbufferParameteriv = ffiuintenumPtrintIOV glGetNamedRenderbufferParameterivFunPtr
+
+glGetNamedRenderbufferParameterivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetNamedRenderbufferParameterivFunPtr = unsafePerformIO (getProcAddress "glGetNamedRenderbufferParameteriv")
+
+{-# NOINLINE glGetNamedRenderbufferParameterivFunPtr #-}
+
+-- | Usage: @'glGetQueryBufferObjecti64v' id buffer pname offset@
+
+
+glGetQueryBufferObjecti64v :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()
+glGetQueryBufferObjecti64v = ffiuintuintenumintptrIOV glGetQueryBufferObjecti64vFunPtr
+
+glGetQueryBufferObjecti64vFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> GLintptr -> IO ())
+glGetQueryBufferObjecti64vFunPtr = unsafePerformIO (getProcAddress "glGetQueryBufferObjecti64v")
+
+{-# NOINLINE glGetQueryBufferObjecti64vFunPtr #-}
+
+-- | Usage: @'glGetQueryBufferObjectiv' id buffer pname offset@
+
+
+glGetQueryBufferObjectiv :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()
+glGetQueryBufferObjectiv = ffiuintuintenumintptrIOV glGetQueryBufferObjectivFunPtr
+
+glGetQueryBufferObjectivFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> GLintptr -> IO ())
+glGetQueryBufferObjectivFunPtr = unsafePerformIO (getProcAddress "glGetQueryBufferObjectiv")
+
+{-# NOINLINE glGetQueryBufferObjectivFunPtr #-}
+
+-- | Usage: @'glGetQueryBufferObjectui64v' id buffer pname offset@
+
+
+glGetQueryBufferObjectui64v :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()
+glGetQueryBufferObjectui64v = ffiuintuintenumintptrIOV glGetQueryBufferObjectui64vFunPtr
+
+glGetQueryBufferObjectui64vFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> GLintptr -> IO ())
+glGetQueryBufferObjectui64vFunPtr = unsafePerformIO (getProcAddress "glGetQueryBufferObjectui64v")
+
+{-# NOINLINE glGetQueryBufferObjectui64vFunPtr #-}
+
+-- | Usage: @'glGetQueryBufferObjectuiv' id buffer pname offset@
+
+
+glGetQueryBufferObjectuiv :: MonadIO m => GLuint -> GLuint -> GLenum -> GLintptr -> m ()
+glGetQueryBufferObjectuiv = ffiuintuintenumintptrIOV glGetQueryBufferObjectuivFunPtr
+
+glGetQueryBufferObjectuivFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> GLintptr -> IO ())
+glGetQueryBufferObjectuivFunPtr = unsafePerformIO (getProcAddress "glGetQueryBufferObjectuiv")
+
+{-# NOINLINE glGetQueryBufferObjectuivFunPtr #-}
+
+-- | Usage: @'glGetTextureImage' texture level format type bufSize pixels@
+
+
+glGetTextureImage :: MonadIO m => GLuint -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
+glGetTextureImage = ffiuintintenumenumsizeiPtrVIOV glGetTextureImageFunPtr
+
+glGetTextureImageFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
+glGetTextureImageFunPtr = unsafePerformIO (getProcAddress "glGetTextureImage")
+
+{-# NOINLINE glGetTextureImageFunPtr #-}
+
+-- | Usage: @'glGetTextureLevelParameterfv' texture level pname params@
+
+
+glGetTextureLevelParameterfv :: MonadIO m => GLuint -> GLint -> GLenum -> Ptr GLfloat -> m ()
+glGetTextureLevelParameterfv = ffiuintintenumPtrfloatIOV glGetTextureLevelParameterfvFunPtr
+
+glGetTextureLevelParameterfvFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> Ptr GLfloat -> IO ())
+glGetTextureLevelParameterfvFunPtr = unsafePerformIO (getProcAddress "glGetTextureLevelParameterfv")
+
+{-# NOINLINE glGetTextureLevelParameterfvFunPtr #-}
+
+-- | Usage: @'glGetTextureLevelParameteriv' texture level pname params@
+
+
+glGetTextureLevelParameteriv :: MonadIO m => GLuint -> GLint -> GLenum -> Ptr GLint -> m ()
+glGetTextureLevelParameteriv = ffiuintintenumPtrintIOV glGetTextureLevelParameterivFunPtr
+
+glGetTextureLevelParameterivFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> Ptr GLint -> IO ())
+glGetTextureLevelParameterivFunPtr = unsafePerformIO (getProcAddress "glGetTextureLevelParameteriv")
+
+{-# NOINLINE glGetTextureLevelParameterivFunPtr #-}
+
+-- | Usage: @'glGetTextureParameterIiv' texture pname params@
+
+
+glGetTextureParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetTextureParameterIiv = ffiuintenumPtrintIOV glGetTextureParameterIivFunPtr
+
+glGetTextureParameterIivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetTextureParameterIivFunPtr = unsafePerformIO (getProcAddress "glGetTextureParameterIiv")
+
+{-# NOINLINE glGetTextureParameterIivFunPtr #-}
+
+-- | Usage: @'glGetTextureParameterIuiv' texture pname params@
+
+
+glGetTextureParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
+glGetTextureParameterIuiv = ffiuintenumPtruintIOV glGetTextureParameterIuivFunPtr
+
+glGetTextureParameterIuivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
+glGetTextureParameterIuivFunPtr = unsafePerformIO (getProcAddress "glGetTextureParameterIuiv")
+
+{-# NOINLINE glGetTextureParameterIuivFunPtr #-}
+
+-- | Usage: @'glGetTextureParameterfv' texture pname params@
+
+
+glGetTextureParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
+glGetTextureParameterfv = ffiuintenumPtrfloatIOV glGetTextureParameterfvFunPtr
+
+glGetTextureParameterfvFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
+glGetTextureParameterfvFunPtr = unsafePerformIO (getProcAddress "glGetTextureParameterfv")
+
+{-# NOINLINE glGetTextureParameterfvFunPtr #-}
+
+-- | Usage: @'glGetTextureParameteriv' texture pname params@
+
+
+glGetTextureParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetTextureParameteriv = ffiuintenumPtrintIOV glGetTextureParameterivFunPtr
+
+glGetTextureParameterivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetTextureParameterivFunPtr = unsafePerformIO (getProcAddress "glGetTextureParameteriv")
+
+{-# NOINLINE glGetTextureParameterivFunPtr #-}
+
+-- | Usage: @'glGetTextureSubImage' texture level xoffset yoffset zoffset width height depth format type bufSize pixels@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetTextureSubImage.xhtml>
+
+
+glGetTextureSubImage :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
+glGetTextureSubImage = ffiuintintintintintsizeisizeisizeienumenumsizeiPtrVIOV glGetTextureSubImageFunPtr
+
+glGetTextureSubImageFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
+glGetTextureSubImageFunPtr = unsafePerformIO (getProcAddress "glGetTextureSubImage")
+
+{-# NOINLINE glGetTextureSubImageFunPtr #-}
+
+-- | Usage: @'glGetTransformFeedbacki64_v' xfb pname index param@
+
+
+glGetTransformFeedbacki64_v :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLint64 -> m ()
+glGetTransformFeedbacki64_v = ffiuintenumuintPtrint64IOV glGetTransformFeedbacki64_vFunPtr
+
+glGetTransformFeedbacki64_vFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLint64 -> IO ())
+glGetTransformFeedbacki64_vFunPtr = unsafePerformIO (getProcAddress "glGetTransformFeedbacki64_v")
+
+{-# NOINLINE glGetTransformFeedbacki64_vFunPtr #-}
+
+-- | Usage: @'glGetTransformFeedbacki_v' xfb pname index param@
+
+
+glGetTransformFeedbacki_v :: MonadIO m => GLuint -> GLenum -> GLuint -> Ptr GLint -> m ()
+glGetTransformFeedbacki_v = ffiuintenumuintPtrintIOV glGetTransformFeedbacki_vFunPtr
+
+glGetTransformFeedbacki_vFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLint -> IO ())
+glGetTransformFeedbacki_vFunPtr = unsafePerformIO (getProcAddress "glGetTransformFeedbacki_v")
+
+{-# NOINLINE glGetTransformFeedbacki_vFunPtr #-}
+
+-- | Usage: @'glGetTransformFeedbackiv' xfb pname param@
+
+
+glGetTransformFeedbackiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetTransformFeedbackiv = ffiuintenumPtrintIOV glGetTransformFeedbackivFunPtr
+
+glGetTransformFeedbackivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetTransformFeedbackivFunPtr = unsafePerformIO (getProcAddress "glGetTransformFeedbackiv")
+
+{-# NOINLINE glGetTransformFeedbackivFunPtr #-}
+
+-- | Usage: @'glGetVertexArrayIndexed64iv' vaobj index pname param@
+
+
+glGetVertexArrayIndexed64iv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint64 -> m ()
+glGetVertexArrayIndexed64iv = ffiuintuintenumPtrint64IOV glGetVertexArrayIndexed64ivFunPtr
+
+glGetVertexArrayIndexed64ivFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint64 -> IO ())
+glGetVertexArrayIndexed64ivFunPtr = unsafePerformIO (getProcAddress "glGetVertexArrayIndexed64iv")
+
+{-# NOINLINE glGetVertexArrayIndexed64ivFunPtr #-}
+
+-- | Usage: @'glGetVertexArrayIndexediv' vaobj index pname param@
+
+
+glGetVertexArrayIndexediv :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr GLint -> m ()
+glGetVertexArrayIndexediv = ffiuintuintenumPtrintIOV glGetVertexArrayIndexedivFunPtr
+
+glGetVertexArrayIndexedivFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetVertexArrayIndexedivFunPtr = unsafePerformIO (getProcAddress "glGetVertexArrayIndexediv")
+
+{-# NOINLINE glGetVertexArrayIndexedivFunPtr #-}
+
+-- | Usage: @'glGetVertexArrayiv' vaobj pname param@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glGetVertexArrayiv.xhtml>
+
+
+glGetVertexArrayiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetVertexArrayiv = ffiuintenumPtrintIOV glGetVertexArrayivFunPtr
+
+glGetVertexArrayivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetVertexArrayivFunPtr = unsafePerformIO (getProcAddress "glGetVertexArrayiv")
+
+{-# NOINLINE glGetVertexArrayivFunPtr #-}
+
+-- | Usage: @'glGetnUniformfv' program location bufSize params@
+
+
+glGetnUniformfv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
+glGetnUniformfv = ffiuintintsizeiPtrfloatIOV glGetnUniformfvFunPtr
+
+glGetnUniformfvFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
+glGetnUniformfvFunPtr = unsafePerformIO (getProcAddress "glGetnUniformfv")
+
+{-# NOINLINE glGetnUniformfvFunPtr #-}
+
+-- | Usage: @'glGetnUniformiv' program location bufSize params@
+
+
+glGetnUniformiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
+glGetnUniformiv = ffiuintintsizeiPtrintIOV glGetnUniformivFunPtr
+
+glGetnUniformivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
+glGetnUniformivFunPtr = unsafePerformIO (getProcAddress "glGetnUniformiv")
+
+{-# NOINLINE glGetnUniformivFunPtr #-}
+
+-- | Usage: @'glGetnUniformuiv' program location bufSize params@
+
+
+glGetnUniformuiv :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
+glGetnUniformuiv = ffiuintintsizeiPtruintIOV glGetnUniformuivFunPtr
+
+glGetnUniformuivFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
+glGetnUniformuivFunPtr = unsafePerformIO (getProcAddress "glGetnUniformuiv")
+
+{-# NOINLINE glGetnUniformuivFunPtr #-}
+
+-- | Usage: @'glInvalidateNamedFramebufferData' framebuffer numAttachments attachments@
+
+
+glInvalidateNamedFramebufferData :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> m ()
+glInvalidateNamedFramebufferData = ffiuintsizeiPtrenumIOV glInvalidateNamedFramebufferDataFunPtr
+
+glInvalidateNamedFramebufferDataFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> IO ())
+glInvalidateNamedFramebufferDataFunPtr = unsafePerformIO (getProcAddress "glInvalidateNamedFramebufferData")
+
+{-# NOINLINE glInvalidateNamedFramebufferDataFunPtr #-}
+
+-- | Usage: @'glInvalidateNamedFramebufferSubData' framebuffer numAttachments attachments x y width height@
+
+
+glInvalidateNamedFramebufferSubData :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> m ()
+glInvalidateNamedFramebufferSubData = ffiuintsizeiPtrenumintintsizeisizeiIOV glInvalidateNamedFramebufferSubDataFunPtr
+
+glInvalidateNamedFramebufferSubDataFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+glInvalidateNamedFramebufferSubDataFunPtr = unsafePerformIO (getProcAddress "glInvalidateNamedFramebufferSubData")
+
+{-# NOINLINE glInvalidateNamedFramebufferSubDataFunPtr #-}
+
+-- | Usage: @'glMapNamedBuffer' buffer access@
+
+
+glMapNamedBuffer :: MonadIO m => GLuint -> GLenum -> m (Ptr ())
+glMapNamedBuffer = ffiuintenumIOPtrV glMapNamedBufferFunPtr
+
+glMapNamedBufferFunPtr :: FunPtr (GLuint -> GLenum -> IO (Ptr ()))
+glMapNamedBufferFunPtr = unsafePerformIO (getProcAddress "glMapNamedBuffer")
+
+{-# NOINLINE glMapNamedBufferFunPtr #-}
+
+-- | Usage: @'glMapNamedBufferRange' buffer offset length access@
+--
+-- The parameter @length@ is a @BufferSize@.
+
+
+glMapNamedBufferRange :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> GLbitfield -> m (Ptr ())
+glMapNamedBufferRange = ffiuintintptrsizeiptrbitfieldIOPtrV glMapNamedBufferRangeFunPtr
+
+glMapNamedBufferRangeFunPtr :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> GLbitfield -> IO (Ptr ()))
+glMapNamedBufferRangeFunPtr = unsafePerformIO (getProcAddress "glMapNamedBufferRange")
+
+{-# NOINLINE glMapNamedBufferRangeFunPtr #-}
+
+-- | Usage: @'glMemoryBarrierByRegion' barriers@
+
+
+glMemoryBarrierByRegion :: MonadIO m => GLbitfield -> m ()
+glMemoryBarrierByRegion = ffibitfieldIOV glMemoryBarrierByRegionFunPtr
+
+glMemoryBarrierByRegionFunPtr :: FunPtr (GLbitfield -> IO ())
+glMemoryBarrierByRegionFunPtr = unsafePerformIO (getProcAddress "glMemoryBarrierByRegion")
+
+{-# NOINLINE glMemoryBarrierByRegionFunPtr #-}
+
+-- | Usage: @'glNamedBufferData' buffer size data usage@
+--
+-- The parameter @size@ is a @BufferSize@.
+
+
+glNamedBufferData :: MonadIO m => GLuint -> GLsizeiptr -> Ptr () -> GLenum -> m ()
+glNamedBufferData = ffiuintsizeiptrPtrVenumIOV glNamedBufferDataFunPtr
+
+glNamedBufferDataFunPtr :: FunPtr (GLuint -> GLsizeiptr -> Ptr () -> GLenum -> IO ())
+glNamedBufferDataFunPtr = unsafePerformIO (getProcAddress "glNamedBufferData")
+
+{-# NOINLINE glNamedBufferDataFunPtr #-}
+
+-- | Usage: @'glNamedBufferStorage' buffer size data flags@
+--
+-- The parameter @size@ is a @BufferSize@.
+--
+-- The length of @data@ should be @size@.
+
+
+glNamedBufferStorage :: MonadIO m => GLuint -> GLsizeiptr -> Ptr () -> GLbitfield -> m ()
+glNamedBufferStorage = ffiuintsizeiptrPtrVbitfieldIOV glNamedBufferStorageFunPtr
+
+glNamedBufferStorageFunPtr :: FunPtr (GLuint -> GLsizeiptr -> Ptr () -> GLbitfield -> IO ())
+glNamedBufferStorageFunPtr = unsafePerformIO (getProcAddress "glNamedBufferStorage")
+
+{-# NOINLINE glNamedBufferStorageFunPtr #-}
+
+-- | Usage: @'glNamedBufferSubData' buffer offset size data@
+--
+-- The parameter @size@ is a @BufferSize@.
+--
+-- The length of @data@ should be @COMPSIZE(size)@.
+
+
+glNamedBufferSubData :: MonadIO m => GLuint -> GLintptr -> GLsizeiptr -> Ptr () -> m ()
+glNamedBufferSubData = ffiuintintptrsizeiptrPtrVIOV glNamedBufferSubDataFunPtr
+
+glNamedBufferSubDataFunPtr :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> Ptr () -> IO ())
+glNamedBufferSubDataFunPtr = unsafePerformIO (getProcAddress "glNamedBufferSubData")
+
+{-# NOINLINE glNamedBufferSubDataFunPtr #-}
+
+-- | Usage: @'glNamedFramebufferDrawBuffer' framebuffer buf@
+
+
+glNamedFramebufferDrawBuffer :: MonadIO m => GLuint -> GLenum -> m ()
+glNamedFramebufferDrawBuffer = ffiuintenumIOV glNamedFramebufferDrawBufferFunPtr
+
+glNamedFramebufferDrawBufferFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
+glNamedFramebufferDrawBufferFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferDrawBuffer")
+
+{-# NOINLINE glNamedFramebufferDrawBufferFunPtr #-}
+
+-- | Usage: @'glNamedFramebufferDrawBuffers' framebuffer n bufs@
+
+
+glNamedFramebufferDrawBuffers :: MonadIO m => GLuint -> GLsizei -> Ptr GLenum -> m ()
+glNamedFramebufferDrawBuffers = ffiuintsizeiPtrenumIOV glNamedFramebufferDrawBuffersFunPtr
+
+glNamedFramebufferDrawBuffersFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> IO ())
+glNamedFramebufferDrawBuffersFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferDrawBuffers")
+
+{-# NOINLINE glNamedFramebufferDrawBuffersFunPtr #-}
+
+-- | Usage: @'glNamedFramebufferParameteri' framebuffer pname param@
+
+
+glNamedFramebufferParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
+glNamedFramebufferParameteri = ffiuintenumintIOV glNamedFramebufferParameteriFunPtr
+
+glNamedFramebufferParameteriFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> IO ())
+glNamedFramebufferParameteriFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferParameteri")
+
+{-# NOINLINE glNamedFramebufferParameteriFunPtr #-}
+
+-- | Usage: @'glNamedFramebufferReadBuffer' framebuffer src@
+
+
+glNamedFramebufferReadBuffer :: MonadIO m => GLuint -> GLenum -> m ()
+glNamedFramebufferReadBuffer = ffiuintenumIOV glNamedFramebufferReadBufferFunPtr
+
+glNamedFramebufferReadBufferFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
+glNamedFramebufferReadBufferFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferReadBuffer")
+
+{-# NOINLINE glNamedFramebufferReadBufferFunPtr #-}
+
+-- | Usage: @'glNamedFramebufferRenderbuffer' framebuffer attachment renderbuffertarget renderbuffer@
+
+
+glNamedFramebufferRenderbuffer :: MonadIO m => GLuint -> GLenum -> GLenum -> GLuint -> m ()
+glNamedFramebufferRenderbuffer = ffiuintenumenumuintIOV glNamedFramebufferRenderbufferFunPtr
+
+glNamedFramebufferRenderbufferFunPtr :: FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> IO ())
+glNamedFramebufferRenderbufferFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferRenderbuffer")
+
+{-# NOINLINE glNamedFramebufferRenderbufferFunPtr #-}
+
+-- | Usage: @'glNamedFramebufferTexture' framebuffer attachment texture level@
+
+
+glNamedFramebufferTexture :: MonadIO m => GLuint -> GLenum -> GLuint -> GLint -> m ()
+glNamedFramebufferTexture = ffiuintenumuintintIOV glNamedFramebufferTextureFunPtr
+
+glNamedFramebufferTextureFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLint -> IO ())
+glNamedFramebufferTextureFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferTexture")
+
+{-# NOINLINE glNamedFramebufferTextureFunPtr #-}
+
+-- | Usage: @'glNamedFramebufferTextureLayer' framebuffer attachment texture level layer@
+
+
+glNamedFramebufferTextureLayer :: MonadIO m => GLuint -> GLenum -> GLuint -> GLint -> GLint -> m ()
+glNamedFramebufferTextureLayer = ffiuintenumuintintintIOV glNamedFramebufferTextureLayerFunPtr
+
+glNamedFramebufferTextureLayerFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLint -> GLint -> IO ())
+glNamedFramebufferTextureLayerFunPtr = unsafePerformIO (getProcAddress "glNamedFramebufferTextureLayer")
+
+{-# NOINLINE glNamedFramebufferTextureLayerFunPtr #-}
+
+-- | Usage: @'glNamedRenderbufferStorage' renderbuffer internalformat width height@
+
+
+glNamedRenderbufferStorage :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLsizei -> m ()
+glNamedRenderbufferStorage = ffiuintenumsizeisizeiIOV glNamedRenderbufferStorageFunPtr
+
+glNamedRenderbufferStorageFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLsizei -> IO ())
+glNamedRenderbufferStorageFunPtr = unsafePerformIO (getProcAddress "glNamedRenderbufferStorage")
+
+{-# NOINLINE glNamedRenderbufferStorageFunPtr #-}
+
+-- | Usage: @'glNamedRenderbufferStorageMultisample' renderbuffer samples internalformat width height@
+
+
+glNamedRenderbufferStorageMultisample :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
+glNamedRenderbufferStorageMultisample = ffiuintsizeienumsizeisizeiIOV glNamedRenderbufferStorageMultisampleFunPtr
+
+glNamedRenderbufferStorageMultisampleFunPtr :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
+glNamedRenderbufferStorageMultisampleFunPtr = unsafePerformIO (getProcAddress "glNamedRenderbufferStorageMultisample")
+
+{-# NOINLINE glNamedRenderbufferStorageMultisampleFunPtr #-}
+
+-- | Usage: @'glReadnPixels' x y width height format type bufSize data@
+
+
+glReadnPixels :: MonadIO m => GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
+glReadnPixels = ffiintintsizeisizeienumenumsizeiPtrVIOV glReadnPixelsFunPtr
+
+glReadnPixelsFunPtr :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
+glReadnPixelsFunPtr = unsafePerformIO (getProcAddress "glReadnPixels")
+
+{-# NOINLINE glReadnPixelsFunPtr #-}
+
+-- | Usage: @'glTextureBarrier'@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTextureBarrier.xhtml>
+
+
+glTextureBarrier :: MonadIO m => m ()
+glTextureBarrier = ffiIOV glTextureBarrierFunPtr
+
+glTextureBarrierFunPtr :: FunPtr (IO ())
+glTextureBarrierFunPtr = unsafePerformIO (getProcAddress "glTextureBarrier")
+
+{-# NOINLINE glTextureBarrierFunPtr #-}
+
+-- | Usage: @'glTextureBuffer' texture internalformat buffer@
+
+
+glTextureBuffer :: MonadIO m => GLuint -> GLenum -> GLuint -> m ()
+glTextureBuffer = ffiuintenumuintIOV glTextureBufferFunPtr
+
+glTextureBufferFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> IO ())
+glTextureBufferFunPtr = unsafePerformIO (getProcAddress "glTextureBuffer")
+
+{-# NOINLINE glTextureBufferFunPtr #-}
+
+-- | Usage: @'glTextureBufferRange' texture internalformat buffer offset size@
+--
+-- The parameter @size@ is a @BufferSize@.
+
+
+glTextureBufferRange :: MonadIO m => GLuint -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> m ()
+glTextureBufferRange = ffiuintenumuintintptrsizeiptrIOV glTextureBufferRangeFunPtr
+
+glTextureBufferRangeFunPtr :: FunPtr (GLuint -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> IO ())
+glTextureBufferRangeFunPtr = unsafePerformIO (getProcAddress "glTextureBufferRange")
+
+{-# NOINLINE glTextureBufferRangeFunPtr #-}
+
+-- | Usage: @'glTextureParameterIiv' texture pname params@
+
+
+glTextureParameterIiv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glTextureParameterIiv = ffiuintenumPtrintIOV glTextureParameterIivFunPtr
+
+glTextureParameterIivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glTextureParameterIivFunPtr = unsafePerformIO (getProcAddress "glTextureParameterIiv")
+
+{-# NOINLINE glTextureParameterIivFunPtr #-}
+
+-- | Usage: @'glTextureParameterIuiv' texture pname params@
+
+
+glTextureParameterIuiv :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
+glTextureParameterIuiv = ffiuintenumPtruintIOV glTextureParameterIuivFunPtr
+
+glTextureParameterIuivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
+glTextureParameterIuivFunPtr = unsafePerformIO (getProcAddress "glTextureParameterIuiv")
+
+{-# NOINLINE glTextureParameterIuivFunPtr #-}
+
+-- | Usage: @'glTextureParameterf' texture pname param@
+
+
+glTextureParameterf :: MonadIO m => GLuint -> GLenum -> GLfloat -> m ()
+glTextureParameterf = ffiuintenumfloatIOV glTextureParameterfFunPtr
+
+glTextureParameterfFunPtr :: FunPtr (GLuint -> GLenum -> GLfloat -> IO ())
+glTextureParameterfFunPtr = unsafePerformIO (getProcAddress "glTextureParameterf")
+
+{-# NOINLINE glTextureParameterfFunPtr #-}
+
+-- | Usage: @'glTextureParameterfv' texture pname param@
+
+
+glTextureParameterfv :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
+glTextureParameterfv = ffiuintenumPtrfloatIOV glTextureParameterfvFunPtr
+
+glTextureParameterfvFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
+glTextureParameterfvFunPtr = unsafePerformIO (getProcAddress "glTextureParameterfv")
+
+{-# NOINLINE glTextureParameterfvFunPtr #-}
+
+-- | Usage: @'glTextureParameteri' texture pname param@
+
+
+glTextureParameteri :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
+glTextureParameteri = ffiuintenumintIOV glTextureParameteriFunPtr
+
+glTextureParameteriFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> IO ())
+glTextureParameteriFunPtr = unsafePerformIO (getProcAddress "glTextureParameteri")
+
+{-# NOINLINE glTextureParameteriFunPtr #-}
+
+-- | Usage: @'glTextureParameteriv' texture pname param@
+
+
+glTextureParameteriv :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glTextureParameteriv = ffiuintenumPtrintIOV glTextureParameterivFunPtr
+
+glTextureParameterivFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glTextureParameterivFunPtr = unsafePerformIO (getProcAddress "glTextureParameteriv")
+
+{-# NOINLINE glTextureParameterivFunPtr #-}
+
+-- | Usage: @'glTextureStorage1D' texture levels internalformat width@
+
+
+glTextureStorage1D :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> m ()
+glTextureStorage1D = ffiuintsizeienumsizeiIOV glTextureStorage1DFunPtr
+
+glTextureStorage1DFunPtr :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> IO ())
+glTextureStorage1DFunPtr = unsafePerformIO (getProcAddress "glTextureStorage1D")
+
+{-# NOINLINE glTextureStorage1DFunPtr #-}
+
+-- | Usage: @'glTextureStorage2D' texture levels internalformat width height@
+
+
+glTextureStorage2D :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
+glTextureStorage2D = ffiuintsizeienumsizeisizeiIOV glTextureStorage2DFunPtr
+
+glTextureStorage2DFunPtr :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
+glTextureStorage2DFunPtr = unsafePerformIO (getProcAddress "glTextureStorage2D")
+
+{-# NOINLINE glTextureStorage2DFunPtr #-}
+
+-- | Usage: @'glTextureStorage2DMultisample' texture samples internalformat width height fixedsamplelocations@
+
+
+glTextureStorage2DMultisample :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> m ()
+glTextureStorage2DMultisample = ffiuintsizeienumsizeisizeibooleanIOV glTextureStorage2DMultisampleFunPtr
+
+glTextureStorage2DMultisampleFunPtr :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> IO ())
+glTextureStorage2DMultisampleFunPtr = unsafePerformIO (getProcAddress "glTextureStorage2DMultisample")
+
+{-# NOINLINE glTextureStorage2DMultisampleFunPtr #-}
+
+-- | Usage: @'glTextureStorage3D' texture levels internalformat width height depth@
+
+
+glTextureStorage3D :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()
+glTextureStorage3D = ffiuintsizeienumsizeisizeisizeiIOV glTextureStorage3DFunPtr
+
+glTextureStorage3DFunPtr :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ())
+glTextureStorage3DFunPtr = unsafePerformIO (getProcAddress "glTextureStorage3D")
+
+{-# NOINLINE glTextureStorage3DFunPtr #-}
+
+-- | Usage: @'glTextureStorage3DMultisample' texture samples internalformat width height depth fixedsamplelocations@
+
+
+glTextureStorage3DMultisample :: MonadIO m => GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> m ()
+glTextureStorage3DMultisample = ffiuintsizeienumsizeisizeisizeibooleanIOV glTextureStorage3DMultisampleFunPtr
+
+glTextureStorage3DMultisampleFunPtr :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
+glTextureStorage3DMultisampleFunPtr = unsafePerformIO (getProcAddress "glTextureStorage3DMultisample")
+
+{-# NOINLINE glTextureStorage3DMultisampleFunPtr #-}
+
+-- | Usage: @'glTextureSubImage1D' texture level xoffset width format type pixels@
+
+
+glTextureSubImage1D :: MonadIO m => GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glTextureSubImage1D = ffiuintintintsizeienumenumPtrVIOV glTextureSubImage1DFunPtr
+
+glTextureSubImage1DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glTextureSubImage1DFunPtr = unsafePerformIO (getProcAddress "glTextureSubImage1D")
+
+{-# NOINLINE glTextureSubImage1DFunPtr #-}
+
+-- | Usage: @'glTextureSubImage2D' texture level xoffset yoffset width height format type pixels@
+
+
+glTextureSubImage2D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glTextureSubImage2D = ffiuintintintintsizeisizeienumenumPtrVIOV glTextureSubImage2DFunPtr
+
+glTextureSubImage2DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glTextureSubImage2DFunPtr = unsafePerformIO (getProcAddress "glTextureSubImage2D")
+
+{-# NOINLINE glTextureSubImage2DFunPtr #-}
+
+-- | Usage: @'glTextureSubImage3D' texture level xoffset yoffset zoffset width height depth format type pixels@
+
+
+glTextureSubImage3D :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> m ()
+glTextureSubImage3D = ffiuintintintintintsizeisizeisizeienumenumPtrVIOV glTextureSubImage3DFunPtr
+
+glTextureSubImage3DFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> IO ())
+glTextureSubImage3DFunPtr = unsafePerformIO (getProcAddress "glTextureSubImage3D")
+
+{-# NOINLINE glTextureSubImage3DFunPtr #-}
+
+-- | Usage: @'glTransformFeedbackBufferBase' xfb index buffer@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTransformFeedbackBufferBase.xhtml>
+
+
+glTransformFeedbackBufferBase :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
+glTransformFeedbackBufferBase = ffiuintuintuintIOV glTransformFeedbackBufferBaseFunPtr
+
+glTransformFeedbackBufferBaseFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
+glTransformFeedbackBufferBaseFunPtr = unsafePerformIO (getProcAddress "glTransformFeedbackBufferBase")
+
+{-# NOINLINE glTransformFeedbackBufferBaseFunPtr #-}
+
+-- | Usage: @'glTransformFeedbackBufferRange' xfb index buffer offset size@
+--
+-- The parameter @size@ is a @BufferSize@.
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glTransformFeedbackBufferRange.xhtml>
+
+
+glTransformFeedbackBufferRange :: MonadIO m => GLuint -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> m ()
+glTransformFeedbackBufferRange = ffiuintuintuintintptrsizeiptrIOV glTransformFeedbackBufferRangeFunPtr
+
+glTransformFeedbackBufferRangeFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> IO ())
+glTransformFeedbackBufferRangeFunPtr = unsafePerformIO (getProcAddress "glTransformFeedbackBufferRange")
+
+{-# NOINLINE glTransformFeedbackBufferRangeFunPtr #-}
+
+-- | Usage: @'glUnmapNamedBuffer' buffer@
+
+
+glUnmapNamedBuffer :: MonadIO m => GLuint -> m GLboolean
+glUnmapNamedBuffer = ffiuintIOboolean glUnmapNamedBufferFunPtr
+
+glUnmapNamedBufferFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glUnmapNamedBufferFunPtr = unsafePerformIO (getProcAddress "glUnmapNamedBuffer")
+
+{-# NOINLINE glUnmapNamedBufferFunPtr #-}
+
+-- | Usage: @'glVertexArrayAttribBinding' vaobj attribindex bindingindex@
+
+
+glVertexArrayAttribBinding :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
+glVertexArrayAttribBinding = ffiuintuintuintIOV glVertexArrayAttribBindingFunPtr
+
+glVertexArrayAttribBindingFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
+glVertexArrayAttribBindingFunPtr = unsafePerformIO (getProcAddress "glVertexArrayAttribBinding")
+
+{-# NOINLINE glVertexArrayAttribBindingFunPtr #-}
+
+-- | Usage: @'glVertexArrayAttribFormat' vaobj attribindex size type normalized relativeoffset@
+
+
+glVertexArrayAttribFormat :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> m ()
+glVertexArrayAttribFormat = ffiuintuintintenumbooleanuintIOV glVertexArrayAttribFormatFunPtr
+
+glVertexArrayAttribFormatFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> IO ())
+glVertexArrayAttribFormatFunPtr = unsafePerformIO (getProcAddress "glVertexArrayAttribFormat")
+
+{-# NOINLINE glVertexArrayAttribFormatFunPtr #-}
+
+-- | Usage: @'glVertexArrayAttribIFormat' vaobj attribindex size type relativeoffset@
+
+
+glVertexArrayAttribIFormat :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLuint -> m ()
+glVertexArrayAttribIFormat = ffiuintuintintenumuintIOV glVertexArrayAttribIFormatFunPtr
+
+glVertexArrayAttribIFormatFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLuint -> IO ())
+glVertexArrayAttribIFormatFunPtr = unsafePerformIO (getProcAddress "glVertexArrayAttribIFormat")
+
+{-# NOINLINE glVertexArrayAttribIFormatFunPtr #-}
+
+-- | Usage: @'glVertexArrayAttribLFormat' vaobj attribindex size type relativeoffset@
+
+
+glVertexArrayAttribLFormat :: MonadIO m => GLuint -> GLuint -> GLint -> GLenum -> GLuint -> m ()
+glVertexArrayAttribLFormat = ffiuintuintintenumuintIOV glVertexArrayAttribLFormatFunPtr
+
+glVertexArrayAttribLFormatFunPtr :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLuint -> IO ())
+glVertexArrayAttribLFormatFunPtr = unsafePerformIO (getProcAddress "glVertexArrayAttribLFormat")
+
+{-# NOINLINE glVertexArrayAttribLFormatFunPtr #-}
+
+-- | Usage: @'glVertexArrayBindingDivisor' vaobj bindingindex divisor@
+
+
+glVertexArrayBindingDivisor :: MonadIO m => GLuint -> GLuint -> GLuint -> m ()
+glVertexArrayBindingDivisor = ffiuintuintuintIOV glVertexArrayBindingDivisorFunPtr
+
+glVertexArrayBindingDivisorFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
+glVertexArrayBindingDivisorFunPtr = unsafePerformIO (getProcAddress "glVertexArrayBindingDivisor")
+
+{-# NOINLINE glVertexArrayBindingDivisorFunPtr #-}
+
+-- | Usage: @'glVertexArrayElementBuffer' vaobj buffer@
+--
+-- Manual page: <https://www.opengl.org/sdk/docs/man/html/glVertexArrayElementBuffer.xhtml>
+
+
+glVertexArrayElementBuffer :: MonadIO m => GLuint -> GLuint -> m ()
+glVertexArrayElementBuffer = ffiuintuintIOV glVertexArrayElementBufferFunPtr
+
+glVertexArrayElementBufferFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
+glVertexArrayElementBufferFunPtr = unsafePerformIO (getProcAddress "glVertexArrayElementBuffer")
+
+{-# NOINLINE glVertexArrayElementBufferFunPtr #-}
+
+-- | Usage: @'glVertexArrayVertexBuffer' vaobj bindingindex buffer offset stride@
+
+
+glVertexArrayVertexBuffer :: MonadIO m => GLuint -> GLuint -> GLuint -> GLintptr -> GLsizei -> m ()
+glVertexArrayVertexBuffer = ffiuintuintuintintptrsizeiIOV glVertexArrayVertexBufferFunPtr
+
+glVertexArrayVertexBufferFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> GLintptr -> GLsizei -> IO ())
+glVertexArrayVertexBufferFunPtr = unsafePerformIO (getProcAddress "glVertexArrayVertexBuffer")
+
+{-# NOINLINE glVertexArrayVertexBufferFunPtr #-}
+
+-- | Usage: @'glVertexArrayVertexBuffers' vaobj first count buffers offsets strides@
+
+
+glVertexArrayVertexBuffers :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> m ()
+glVertexArrayVertexBuffers = ffiuintuintsizeiPtruintPtrintptrPtrsizeiIOV glVertexArrayVertexBuffersFunPtr
+
+glVertexArrayVertexBuffersFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> IO ())
+glVertexArrayVertexBuffersFunPtr = unsafePerformIO (getProcAddress "glVertexArrayVertexBuffers")
+
+{-# NOINLINE glVertexArrayVertexBuffersFunPtr #-}
+
+pattern GL_CLIP_DEPTH_MODE  :: (Eq a, Num a) => a
+
+pattern GL_CLIP_DEPTH_MODE = 0x935D
+
+pattern GL_CLIP_ORIGIN  :: (Eq a, Num a) => a
+
+pattern GL_CLIP_ORIGIN = 0x935C
+
+pattern GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT  :: (Eq a, Num a) => a
+
+pattern GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT = 0x00000004
+
+pattern GL_CONTEXT_LOST  :: (Eq a, Num a) => a
+
+pattern GL_CONTEXT_LOST = 0x0507
+
+pattern GL_CONTEXT_RELEASE_BEHAVIOR  :: (Eq a, Num a) => a
+
+pattern GL_CONTEXT_RELEASE_BEHAVIOR = 0x82FB
+
+pattern GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH  :: (Eq a, Num a) => a
+
+pattern GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH = 0x82FC
+
+pattern GL_GUILTY_CONTEXT_RESET  :: (Eq a, Num a) => a
+
+pattern GL_GUILTY_CONTEXT_RESET = 0x8253
+
+pattern GL_INNOCENT_CONTEXT_RESET  :: (Eq a, Num a) => a
+
+pattern GL_INNOCENT_CONTEXT_RESET = 0x8254
+
+pattern GL_LOSE_CONTEXT_ON_RESET  :: (Eq a, Num a) => a
+
+pattern GL_LOSE_CONTEXT_ON_RESET = 0x8252
+
+pattern GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES  :: (Eq a, Num a) => a
+
+pattern GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES = 0x82FA
+
+pattern GL_MAX_CULL_DISTANCES  :: (Eq a, Num a) => a
+
+pattern GL_MAX_CULL_DISTANCES = 0x82F9
+
+pattern GL_NEGATIVE_ONE_TO_ONE  :: (Eq a, Num a) => a
+
+pattern GL_NEGATIVE_ONE_TO_ONE = 0x935E
+
+pattern GL_NO_RESET_NOTIFICATION  :: (Eq a, Num a) => a
+
+pattern GL_NO_RESET_NOTIFICATION = 0x8261
+
+pattern GL_QUERY_BY_REGION_NO_WAIT_INVERTED  :: (Eq a, Num a) => a
+
+pattern GL_QUERY_BY_REGION_NO_WAIT_INVERTED = 0x8E1A
+
+pattern GL_QUERY_BY_REGION_WAIT_INVERTED  :: (Eq a, Num a) => a
+
+pattern GL_QUERY_BY_REGION_WAIT_INVERTED = 0x8E19
+
+pattern GL_QUERY_NO_WAIT_INVERTED  :: (Eq a, Num a) => a
+
+pattern GL_QUERY_NO_WAIT_INVERTED = 0x8E18
+
+pattern GL_QUERY_TARGET  :: (Eq a, Num a) => a
+
+pattern GL_QUERY_TARGET = 0x82EA
+
+pattern GL_QUERY_WAIT_INVERTED  :: (Eq a, Num a) => a
+
+pattern GL_QUERY_WAIT_INVERTED = 0x8E17
+
+pattern GL_RESET_NOTIFICATION_STRATEGY  :: (Eq a, Num a) => a
+
+pattern GL_RESET_NOTIFICATION_STRATEGY = 0x8256
+
+pattern GL_TEXTURE_TARGET  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_TARGET = 0x1006
+
+pattern GL_UNKNOWN_CONTEXT_RESET  :: (Eq a, Num a) => a
+
+pattern GL_UNKNOWN_CONTEXT_RESET = 0x8255
+
+pattern GL_ZERO_TO_ONE  :: (Eq a, Num a) => a
+
+pattern GL_ZERO_TO_ONE = 0x935F
+
+pattern GL_BLEND_EQUATION  :: (Eq a, Num a) => a
+
+pattern GL_BLEND_EQUATION = 0x8009
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS  :: (Eq a, Num a) => a
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS = 0x8CD9
+
+pattern GL_SUBSAMPLE_DISTANCE_AMD  :: (Eq a, Num a) => a
+
+pattern GL_SUBSAMPLE_DISTANCE_AMD = 0x883F
+
+pattern GL_FLOAT16_NV  :: (Eq a, Num a) => a
+
+pattern GL_FLOAT16_NV = 0x8FF8
+
+pattern GL_FLOAT16_VEC2_NV  :: (Eq a, Num a) => a
+
+pattern GL_FLOAT16_VEC2_NV = 0x8FF9
+
+pattern GL_FLOAT16_VEC3_NV  :: (Eq a, Num a) => a
+
+pattern GL_FLOAT16_VEC3_NV = 0x8FFA
+
+pattern GL_FLOAT16_VEC4_NV  :: (Eq a, Num a) => a
+
+pattern GL_FLOAT16_VEC4_NV = 0x8FFB
+
+-- | Usage: @'glGetUniformi64vNV' program location params@
+--
+-- The length of @params@ should be @COMPSIZE(program,location)@.
+
+
+glGetUniformi64vNV :: MonadIO m => GLuint -> GLint -> Ptr GLint64EXT -> m ()
+glGetUniformi64vNV = ffiuintintPtrint64EXTIOV glGetUniformi64vNVFunPtr
+
+glGetUniformi64vNVFunPtr :: FunPtr (GLuint -> GLint -> Ptr GLint64EXT -> IO ())
+glGetUniformi64vNVFunPtr = unsafePerformIO (getProcAddress "glGetUniformi64vNV")
+
+{-# NOINLINE glGetUniformi64vNVFunPtr #-}
+
+-- | Usage: @'glGetUniformui64vNV' program location params@
+--
+-- The length of @params@ should be @COMPSIZE(program,location)@.
+
+
+glGetUniformui64vNV :: MonadIO m => GLuint -> GLint -> Ptr GLuint64EXT -> m ()
+glGetUniformui64vNV = ffiuintintPtruint64EXTIOV glGetUniformui64vNVFunPtr
+
+glGetUniformui64vNVFunPtr :: FunPtr (GLuint -> GLint -> Ptr GLuint64EXT -> IO ())
+glGetUniformui64vNVFunPtr = unsafePerformIO (getProcAddress "glGetUniformui64vNV")
+
+{-# NOINLINE glGetUniformui64vNVFunPtr #-}
+
+-- | Usage: @'glProgramUniform1i64NV' program location x@
+
+
+glProgramUniform1i64NV :: MonadIO m => GLuint -> GLint -> GLint64EXT -> m ()
+glProgramUniform1i64NV = ffiuintintint64EXTIOV glProgramUniform1i64NVFunPtr
+
+glProgramUniform1i64NVFunPtr :: FunPtr (GLuint -> GLint -> GLint64EXT -> IO ())
+glProgramUniform1i64NVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1i64NV")
+
+{-# NOINLINE glProgramUniform1i64NVFunPtr #-}
+
+-- | Usage: @'glProgramUniform1i64vNV' program location count value@
+--
+-- The length of @value@ should be @count@.
+
+
+glProgramUniform1i64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> m ()
+glProgramUniform1i64vNV = ffiuintintsizeiPtrint64EXTIOV glProgramUniform1i64vNVFunPtr
+
+glProgramUniform1i64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
+glProgramUniform1i64vNVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1i64vNV")
+
+{-# NOINLINE glProgramUniform1i64vNVFunPtr #-}
+
+-- | Usage: @'glProgramUniform1ui64NV' program location x@
+
+
+glProgramUniform1ui64NV :: MonadIO m => GLuint -> GLint -> GLuint64EXT -> m ()
+glProgramUniform1ui64NV = ffiuintintuint64EXTIOV glProgramUniform1ui64NVFunPtr
+
+glProgramUniform1ui64NVFunPtr :: FunPtr (GLuint -> GLint -> GLuint64EXT -> IO ())
+glProgramUniform1ui64NVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1ui64NV")
+
+{-# NOINLINE glProgramUniform1ui64NVFunPtr #-}
+
+-- | Usage: @'glProgramUniform1ui64vNV' program location count value@
+--
+-- The length of @value@ should be @count@.
+
+
+glProgramUniform1ui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
+glProgramUniform1ui64vNV = ffiuintintsizeiPtruint64EXTIOV glProgramUniform1ui64vNVFunPtr
+
+glProgramUniform1ui64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
+glProgramUniform1ui64vNVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1ui64vNV")
+
+{-# NOINLINE glProgramUniform1ui64vNVFunPtr #-}
+
+-- | Usage: @'glProgramUniform2i64NV' program location x y@
+
+
+glProgramUniform2i64NV :: MonadIO m => GLuint -> GLint -> GLint64EXT -> GLint64EXT -> m ()
+glProgramUniform2i64NV = ffiuintintint64EXTint64EXTIOV glProgramUniform2i64NVFunPtr
+
+glProgramUniform2i64NVFunPtr :: FunPtr (GLuint -> GLint -> GLint64EXT -> GLint64EXT -> IO ())
+glProgramUniform2i64NVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2i64NV")
+
+{-# NOINLINE glProgramUniform2i64NVFunPtr #-}
+
+-- | Usage: @'glProgramUniform2i64vNV' program location count value@
+--
+-- The length of @value@ should be @count*2@.
+
+
+glProgramUniform2i64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> m ()
+glProgramUniform2i64vNV = ffiuintintsizeiPtrint64EXTIOV glProgramUniform2i64vNVFunPtr
+
+glProgramUniform2i64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
+glProgramUniform2i64vNVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2i64vNV")
+
+{-# NOINLINE glProgramUniform2i64vNVFunPtr #-}
+
+-- | Usage: @'glProgramUniform2ui64NV' program location x y@
+
+
+glProgramUniform2ui64NV :: MonadIO m => GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> m ()
+glProgramUniform2ui64NV = ffiuintintuint64EXTuint64EXTIOV glProgramUniform2ui64NVFunPtr
+
+glProgramUniform2ui64NVFunPtr :: FunPtr (GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> IO ())
+glProgramUniform2ui64NVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2ui64NV")
+
+{-# NOINLINE glProgramUniform2ui64NVFunPtr #-}
+
+-- | Usage: @'glProgramUniform2ui64vNV' program location count value@
+--
+-- The length of @value@ should be @count*2@.
+
+
+glProgramUniform2ui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
+glProgramUniform2ui64vNV = ffiuintintsizeiPtruint64EXTIOV glProgramUniform2ui64vNVFunPtr
+
+glProgramUniform2ui64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
+glProgramUniform2ui64vNVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2ui64vNV")
+
+{-# NOINLINE glProgramUniform2ui64vNVFunPtr #-}
+
+-- | Usage: @'glProgramUniform3i64NV' program location x y z@
+
+
+glProgramUniform3i64NV :: MonadIO m => GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
+glProgramUniform3i64NV = ffiuintintint64EXTint64EXTint64EXTIOV glProgramUniform3i64NVFunPtr
+
+glProgramUniform3i64NVFunPtr :: FunPtr (GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ())
+glProgramUniform3i64NVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3i64NV")
+
+{-# NOINLINE glProgramUniform3i64NVFunPtr #-}
+
+-- | Usage: @'glProgramUniform3i64vNV' program location count value@
+--
+-- The length of @value@ should be @count*3@.
+
+
+glProgramUniform3i64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> m ()
+glProgramUniform3i64vNV = ffiuintintsizeiPtrint64EXTIOV glProgramUniform3i64vNVFunPtr
+
+glProgramUniform3i64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
+glProgramUniform3i64vNVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3i64vNV")
+
+{-# NOINLINE glProgramUniform3i64vNVFunPtr #-}
+
+-- | Usage: @'glProgramUniform3ui64NV' program location x y z@
+
+
+glProgramUniform3ui64NV :: MonadIO m => GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
+glProgramUniform3ui64NV = ffiuintintuint64EXTuint64EXTuint64EXTIOV glProgramUniform3ui64NVFunPtr
+
+glProgramUniform3ui64NVFunPtr :: FunPtr (GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ())
+glProgramUniform3ui64NVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3ui64NV")
+
+{-# NOINLINE glProgramUniform3ui64NVFunPtr #-}
+
+-- | Usage: @'glProgramUniform3ui64vNV' program location count value@
+--
+-- The length of @value@ should be @count*3@.
+
+
+glProgramUniform3ui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
+glProgramUniform3ui64vNV = ffiuintintsizeiPtruint64EXTIOV glProgramUniform3ui64vNVFunPtr
+
+glProgramUniform3ui64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
+glProgramUniform3ui64vNVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3ui64vNV")
+
+{-# NOINLINE glProgramUniform3ui64vNVFunPtr #-}
+
+-- | Usage: @'glProgramUniform4i64NV' program location x y z w@
+
+
+glProgramUniform4i64NV :: MonadIO m => GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
+glProgramUniform4i64NV = ffiuintintint64EXTint64EXTint64EXTint64EXTIOV glProgramUniform4i64NVFunPtr
+
+glProgramUniform4i64NVFunPtr :: FunPtr (GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ())
+glProgramUniform4i64NVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4i64NV")
+
+{-# NOINLINE glProgramUniform4i64NVFunPtr #-}
+
+-- | Usage: @'glProgramUniform4i64vNV' program location count value@
+--
+-- The length of @value@ should be @count*4@.
+
+
+glProgramUniform4i64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> m ()
+glProgramUniform4i64vNV = ffiuintintsizeiPtrint64EXTIOV glProgramUniform4i64vNVFunPtr
+
+glProgramUniform4i64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
+glProgramUniform4i64vNVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4i64vNV")
+
+{-# NOINLINE glProgramUniform4i64vNVFunPtr #-}
+
+-- | Usage: @'glProgramUniform4ui64NV' program location x y z w@
+
+
+glProgramUniform4ui64NV :: MonadIO m => GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
+glProgramUniform4ui64NV = ffiuintintuint64EXTuint64EXTuint64EXTuint64EXTIOV glProgramUniform4ui64NVFunPtr
+
+glProgramUniform4ui64NVFunPtr :: FunPtr (GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ())
+glProgramUniform4ui64NVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4ui64NV")
+
+{-# NOINLINE glProgramUniform4ui64NVFunPtr #-}
+
+-- | Usage: @'glProgramUniform4ui64vNV' program location count value@
+--
+-- The length of @value@ should be @count*4@.
+
+
+glProgramUniform4ui64vNV :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
+glProgramUniform4ui64vNV = ffiuintintsizeiPtruint64EXTIOV glProgramUniform4ui64vNVFunPtr
+
+glProgramUniform4ui64vNVFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
+glProgramUniform4ui64vNVFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4ui64vNV")
+
+{-# NOINLINE glProgramUniform4ui64vNVFunPtr #-}
+
+-- | Usage: @'glUniform1i64NV' location x@
+
+
+glUniform1i64NV :: MonadIO m => GLint -> GLint64EXT -> m ()
+glUniform1i64NV = ffiintint64EXTIOV glUniform1i64NVFunPtr
+
+glUniform1i64NVFunPtr :: FunPtr (GLint -> GLint64EXT -> IO ())
+glUniform1i64NVFunPtr = unsafePerformIO (getProcAddress "glUniform1i64NV")
+
+{-# NOINLINE glUniform1i64NVFunPtr #-}
+
+-- | Usage: @'glUniform1i64vNV' location count value@
+--
+-- The length of @value@ should be @count*1@.
+
+
+glUniform1i64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLint64EXT -> m ()
+glUniform1i64vNV = ffiintsizeiPtrint64EXTIOV glUniform1i64vNVFunPtr
+
+glUniform1i64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
+glUniform1i64vNVFunPtr = unsafePerformIO (getProcAddress "glUniform1i64vNV")
+
+{-# NOINLINE glUniform1i64vNVFunPtr #-}
+
+-- | Usage: @'glUniform1ui64NV' location x@
+
+
+glUniform1ui64NV :: MonadIO m => GLint -> GLuint64EXT -> m ()
+glUniform1ui64NV = ffiintuint64EXTIOV glUniform1ui64NVFunPtr
+
+glUniform1ui64NVFunPtr :: FunPtr (GLint -> GLuint64EXT -> IO ())
+glUniform1ui64NVFunPtr = unsafePerformIO (getProcAddress "glUniform1ui64NV")
+
+{-# NOINLINE glUniform1ui64NVFunPtr #-}
+
+-- | Usage: @'glUniform1ui64vNV' location count value@
+--
+-- The length of @value@ should be @count*1@.
+
+
+glUniform1ui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
+glUniform1ui64vNV = ffiintsizeiPtruint64EXTIOV glUniform1ui64vNVFunPtr
+
+glUniform1ui64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
+glUniform1ui64vNVFunPtr = unsafePerformIO (getProcAddress "glUniform1ui64vNV")
+
+{-# NOINLINE glUniform1ui64vNVFunPtr #-}
+
+-- | Usage: @'glUniform2i64NV' location x y@
+
+
+glUniform2i64NV :: MonadIO m => GLint -> GLint64EXT -> GLint64EXT -> m ()
+glUniform2i64NV = ffiintint64EXTint64EXTIOV glUniform2i64NVFunPtr
+
+glUniform2i64NVFunPtr :: FunPtr (GLint -> GLint64EXT -> GLint64EXT -> IO ())
+glUniform2i64NVFunPtr = unsafePerformIO (getProcAddress "glUniform2i64NV")
+
+{-# NOINLINE glUniform2i64NVFunPtr #-}
+
+-- | Usage: @'glUniform2i64vNV' location count value@
+--
+-- The length of @value@ should be @count*2@.
+
+
+glUniform2i64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLint64EXT -> m ()
+glUniform2i64vNV = ffiintsizeiPtrint64EXTIOV glUniform2i64vNVFunPtr
+
+glUniform2i64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
+glUniform2i64vNVFunPtr = unsafePerformIO (getProcAddress "glUniform2i64vNV")
+
+{-# NOINLINE glUniform2i64vNVFunPtr #-}
+
+-- | Usage: @'glUniform2ui64NV' location x y@
+
+
+glUniform2ui64NV :: MonadIO m => GLint -> GLuint64EXT -> GLuint64EXT -> m ()
+glUniform2ui64NV = ffiintuint64EXTuint64EXTIOV glUniform2ui64NVFunPtr
+
+glUniform2ui64NVFunPtr :: FunPtr (GLint -> GLuint64EXT -> GLuint64EXT -> IO ())
+glUniform2ui64NVFunPtr = unsafePerformIO (getProcAddress "glUniform2ui64NV")
+
+{-# NOINLINE glUniform2ui64NVFunPtr #-}
+
+-- | Usage: @'glUniform2ui64vNV' location count value@
+--
+-- The length of @value@ should be @count*2@.
+
+
+glUniform2ui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
+glUniform2ui64vNV = ffiintsizeiPtruint64EXTIOV glUniform2ui64vNVFunPtr
+
+glUniform2ui64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
+glUniform2ui64vNVFunPtr = unsafePerformIO (getProcAddress "glUniform2ui64vNV")
+
+{-# NOINLINE glUniform2ui64vNVFunPtr #-}
+
+-- | Usage: @'glUniform3i64NV' location x y z@
+
+
+glUniform3i64NV :: MonadIO m => GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
+glUniform3i64NV = ffiintint64EXTint64EXTint64EXTIOV glUniform3i64NVFunPtr
+
+glUniform3i64NVFunPtr :: FunPtr (GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ())
+glUniform3i64NVFunPtr = unsafePerformIO (getProcAddress "glUniform3i64NV")
+
+{-# NOINLINE glUniform3i64NVFunPtr #-}
+
+-- | Usage: @'glUniform3i64vNV' location count value@
+--
+-- The length of @value@ should be @count*3@.
+
+
+glUniform3i64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLint64EXT -> m ()
+glUniform3i64vNV = ffiintsizeiPtrint64EXTIOV glUniform3i64vNVFunPtr
+
+glUniform3i64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
+glUniform3i64vNVFunPtr = unsafePerformIO (getProcAddress "glUniform3i64vNV")
+
+{-# NOINLINE glUniform3i64vNVFunPtr #-}
+
+-- | Usage: @'glUniform3ui64NV' location x y z@
+
+
+glUniform3ui64NV :: MonadIO m => GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
+glUniform3ui64NV = ffiintuint64EXTuint64EXTuint64EXTIOV glUniform3ui64NVFunPtr
+
+glUniform3ui64NVFunPtr :: FunPtr (GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ())
+glUniform3ui64NVFunPtr = unsafePerformIO (getProcAddress "glUniform3ui64NV")
+
+{-# NOINLINE glUniform3ui64NVFunPtr #-}
+
+-- | Usage: @'glUniform3ui64vNV' location count value@
+--
+-- The length of @value@ should be @count*3@.
+
+
+glUniform3ui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
+glUniform3ui64vNV = ffiintsizeiPtruint64EXTIOV glUniform3ui64vNVFunPtr
+
+glUniform3ui64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
+glUniform3ui64vNVFunPtr = unsafePerformIO (getProcAddress "glUniform3ui64vNV")
+
+{-# NOINLINE glUniform3ui64vNVFunPtr #-}
+
+-- | Usage: @'glUniform4i64NV' location x y z w@
+
+
+glUniform4i64NV :: MonadIO m => GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> m ()
+glUniform4i64NV = ffiintint64EXTint64EXTint64EXTint64EXTIOV glUniform4i64NVFunPtr
+
+glUniform4i64NVFunPtr :: FunPtr (GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ())
+glUniform4i64NVFunPtr = unsafePerformIO (getProcAddress "glUniform4i64NV")
+
+{-# NOINLINE glUniform4i64NVFunPtr #-}
+
+-- | Usage: @'glUniform4i64vNV' location count value@
+--
+-- The length of @value@ should be @count*4@.
+
+
+glUniform4i64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLint64EXT -> m ()
+glUniform4i64vNV = ffiintsizeiPtrint64EXTIOV glUniform4i64vNVFunPtr
+
+glUniform4i64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
+glUniform4i64vNVFunPtr = unsafePerformIO (getProcAddress "glUniform4i64vNV")
+
+{-# NOINLINE glUniform4i64vNVFunPtr #-}
+
+-- | Usage: @'glUniform4ui64NV' location x y z w@
+
+
+glUniform4ui64NV :: MonadIO m => GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> m ()
+glUniform4ui64NV = ffiintuint64EXTuint64EXTuint64EXTuint64EXTIOV glUniform4ui64NVFunPtr
+
+glUniform4ui64NVFunPtr :: FunPtr (GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ())
+glUniform4ui64NVFunPtr = unsafePerformIO (getProcAddress "glUniform4ui64NV")
+
+{-# NOINLINE glUniform4ui64NVFunPtr #-}
+
+-- | Usage: @'glUniform4ui64vNV' location count value@
+--
+-- The length of @value@ should be @count*4@.
+
+
+glUniform4ui64vNV :: MonadIO m => GLint -> GLsizei -> Ptr GLuint64EXT -> m ()
+glUniform4ui64vNV = ffiintsizeiPtruint64EXTIOV glUniform4ui64vNVFunPtr
+
+glUniform4ui64vNVFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
+glUniform4ui64vNVFunPtr = unsafePerformIO (getProcAddress "glUniform4ui64vNV")
+
+{-# NOINLINE glUniform4ui64vNVFunPtr #-}
+
+pattern GL_INT16_NV  :: (Eq a, Num a) => a
+
+pattern GL_INT16_NV = 0x8FE4
+
+pattern GL_INT16_VEC2_NV  :: (Eq a, Num a) => a
+
+pattern GL_INT16_VEC2_NV = 0x8FE5
+
+pattern GL_INT16_VEC3_NV  :: (Eq a, Num a) => a
+
+pattern GL_INT16_VEC3_NV = 0x8FE6
+
+pattern GL_INT16_VEC4_NV  :: (Eq a, Num a) => a
+
+pattern GL_INT16_VEC4_NV = 0x8FE7
+
+pattern GL_INT64_NV  :: (Eq a, Num a) => a
+
+pattern GL_INT64_NV = 0x140E
+
+pattern GL_INT64_VEC2_NV  :: (Eq a, Num a) => a
+
+pattern GL_INT64_VEC2_NV = 0x8FE9
+
+pattern GL_INT64_VEC3_NV  :: (Eq a, Num a) => a
+
+pattern GL_INT64_VEC3_NV = 0x8FEA
+
+pattern GL_INT64_VEC4_NV  :: (Eq a, Num a) => a
+
+pattern GL_INT64_VEC4_NV = 0x8FEB
+
+pattern GL_INT8_NV  :: (Eq a, Num a) => a
+
+pattern GL_INT8_NV = 0x8FE0
+
+pattern GL_INT8_VEC2_NV  :: (Eq a, Num a) => a
+
+pattern GL_INT8_VEC2_NV = 0x8FE1
+
+pattern GL_INT8_VEC3_NV  :: (Eq a, Num a) => a
+
+pattern GL_INT8_VEC3_NV = 0x8FE2
+
+pattern GL_INT8_VEC4_NV  :: (Eq a, Num a) => a
+
+pattern GL_INT8_VEC4_NV = 0x8FE3
+
+pattern GL_UNSIGNED_INT16_NV  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_INT16_NV = 0x8FF0
+
+pattern GL_UNSIGNED_INT16_VEC2_NV  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_INT16_VEC2_NV = 0x8FF1
+
+pattern GL_UNSIGNED_INT16_VEC3_NV  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_INT16_VEC3_NV = 0x8FF2
+
+pattern GL_UNSIGNED_INT16_VEC4_NV  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_INT16_VEC4_NV = 0x8FF3
+
+pattern GL_UNSIGNED_INT64_NV  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_INT64_NV = 0x140F
+
+pattern GL_UNSIGNED_INT64_VEC2_NV  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_INT64_VEC2_NV = 0x8FF5
+
+pattern GL_UNSIGNED_INT64_VEC3_NV  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_INT64_VEC3_NV = 0x8FF6
+
+pattern GL_UNSIGNED_INT64_VEC4_NV  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_INT64_VEC4_NV = 0x8FF7
+
+pattern GL_UNSIGNED_INT8_NV  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_INT8_NV = 0x8FEC
+
+pattern GL_UNSIGNED_INT8_VEC2_NV  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_INT8_VEC2_NV = 0x8FED
+
+pattern GL_UNSIGNED_INT8_VEC3_NV  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_INT8_VEC3_NV = 0x8FEE
+
+pattern GL_UNSIGNED_INT8_VEC4_NV  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_INT8_VEC4_NV = 0x8FEF
+
+pattern GL_DEPTH24_STENCIL8_OES  :: (Eq a, Num a) => a
+
+pattern GL_DEPTH24_STENCIL8_OES = 0x88F0
+
+pattern GL_DEPTH_COMPONENT32_OES  :: (Eq a, Num a) => a
+
+pattern GL_DEPTH_COMPONENT32_OES = 0x81A7
+
+pattern GL_DEPTH_STENCIL_OES  :: (Eq a, Num a) => a
+
+pattern GL_DEPTH_STENCIL_OES = 0x84F9
+
+pattern GL_UNSIGNED_INT_24_8_OES  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_INT_24_8_OES = 0x84FA
+
+pattern GL_UNSIGNED_SHORT_8_8_APPLE  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_SHORT_8_8_APPLE = 0x85BA
+
+pattern GL_UNSIGNED_SHORT_8_8_REV_APPLE  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_SHORT_8_8_REV_APPLE = 0x85BB
+
+pattern GL_BGRA8_EXT  :: (Eq a, Num a) => a
+
+pattern GL_BGRA8_EXT = 0x93A1
+
+pattern GL_BGRA_EXT  :: (Eq a, Num a) => a
+
+pattern GL_BGRA_EXT = 0x80E1
+
+pattern GL_STORAGE_CACHED_APPLE  :: (Eq a, Num a) => a
+
+pattern GL_STORAGE_CACHED_APPLE = 0x85BE
+
+pattern GL_STORAGE_SHARED_APPLE  :: (Eq a, Num a) => a
+
+pattern GL_STORAGE_SHARED_APPLE = 0x85BF
+
+pattern GL_UNSIGNED_INT64_ARB  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_INT64_ARB = 0x140F
+
+-- | Usage: @'glBindProgramARB' target program@
+--
+-- The parameter @target@ is a @ProgramTargetARB@.
+
+
+glBindProgramARB :: MonadIO m => GLenum -> GLuint -> m ()
+glBindProgramARB = ffienumuintIOV glBindProgramARBFunPtr
+
+glBindProgramARBFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glBindProgramARBFunPtr = unsafePerformIO (getProcAddress "glBindProgramARB")
+
+{-# NOINLINE glBindProgramARBFunPtr #-}
+
+-- | Usage: @'glDeleteProgramsARB' n programs@
+--
+-- The length of @programs@ should be @n@.
+
+
+glDeleteProgramsARB :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteProgramsARB = ffisizeiPtruintIOV glDeleteProgramsARBFunPtr
+
+glDeleteProgramsARBFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteProgramsARBFunPtr = unsafePerformIO (getProcAddress "glDeleteProgramsARB")
+
+{-# NOINLINE glDeleteProgramsARBFunPtr #-}
+
+-- | Usage: @'glGenProgramsARB' n programs@
+--
+-- The length of @programs@ should be @n@.
+
+
+glGenProgramsARB :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glGenProgramsARB = ffisizeiPtruintIOV glGenProgramsARBFunPtr
+
+glGenProgramsARBFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glGenProgramsARBFunPtr = unsafePerformIO (getProcAddress "glGenProgramsARB")
+
+{-# NOINLINE glGenProgramsARBFunPtr #-}
+
+-- | Usage: @'glGetProgramEnvParameterdvARB' target index params@
+--
+-- The parameter @target@ is a @ProgramTargetARB@.
+--
+-- The length of @params@ should be @4@.
+
+
+glGetProgramEnvParameterdvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()
+glGetProgramEnvParameterdvARB = ffienumuintPtrdoubleIOV glGetProgramEnvParameterdvARBFunPtr
+
+glGetProgramEnvParameterdvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())
+glGetProgramEnvParameterdvARBFunPtr = unsafePerformIO (getProcAddress "glGetProgramEnvParameterdvARB")
+
+{-# NOINLINE glGetProgramEnvParameterdvARBFunPtr #-}
+
+-- | Usage: @'glGetProgramEnvParameterfvARB' target index params@
+--
+-- The parameter @target@ is a @ProgramTargetARB@.
+--
+-- The length of @params@ should be @4@.
+
+
+glGetProgramEnvParameterfvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
+glGetProgramEnvParameterfvARB = ffienumuintPtrfloatIOV glGetProgramEnvParameterfvARBFunPtr
+
+glGetProgramEnvParameterfvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
+glGetProgramEnvParameterfvARBFunPtr = unsafePerformIO (getProcAddress "glGetProgramEnvParameterfvARB")
+
+{-# NOINLINE glGetProgramEnvParameterfvARBFunPtr #-}
+
+-- | Usage: @'glGetProgramLocalParameterdvARB' target index params@
+--
+-- The parameter @target@ is a @ProgramTargetARB@.
+--
+-- The length of @params@ should be @4@.
+
+
+glGetProgramLocalParameterdvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()
+glGetProgramLocalParameterdvARB = ffienumuintPtrdoubleIOV glGetProgramLocalParameterdvARBFunPtr
+
+glGetProgramLocalParameterdvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())
+glGetProgramLocalParameterdvARBFunPtr = unsafePerformIO (getProcAddress "glGetProgramLocalParameterdvARB")
+
+{-# NOINLINE glGetProgramLocalParameterdvARBFunPtr #-}
+
+-- | Usage: @'glGetProgramLocalParameterfvARB' target index params@
+--
+-- The parameter @target@ is a @ProgramTargetARB@.
+--
+-- The length of @params@ should be @4@.
+
+
+glGetProgramLocalParameterfvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
+glGetProgramLocalParameterfvARB = ffienumuintPtrfloatIOV glGetProgramLocalParameterfvARBFunPtr
+
+glGetProgramLocalParameterfvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
+glGetProgramLocalParameterfvARBFunPtr = unsafePerformIO (getProcAddress "glGetProgramLocalParameterfvARB")
+
+{-# NOINLINE glGetProgramLocalParameterfvARBFunPtr #-}
+
+-- | Usage: @'glGetProgramStringARB' target pname string@
+--
+-- The parameter @target@ is a @ProgramTargetARB@.
+--
+-- The parameter @pname@ is a @ProgramStringPropertyARB@.
+--
+-- The length of @string@ should be @COMPSIZE(target,pname)@.
+
+
+glGetProgramStringARB :: MonadIO m => GLenum -> GLenum -> Ptr () -> m ()
+glGetProgramStringARB = ffienumenumPtrVIOV glGetProgramStringARBFunPtr
+
+glGetProgramStringARBFunPtr :: FunPtr (GLenum -> GLenum -> Ptr () -> IO ())
+glGetProgramStringARBFunPtr = unsafePerformIO (getProcAddress "glGetProgramStringARB")
+
+{-# NOINLINE glGetProgramStringARBFunPtr #-}
+
+-- | Usage: @'glGetProgramivARB' target pname params@
+--
+-- The parameter @target@ is a @ProgramTargetARB@.
+--
+-- The parameter @pname@ is a @ProgramPropertyARB@.
+--
+-- The length of @params@ should be @1@.
+
+
+glGetProgramivARB :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetProgramivARB = ffienumenumPtrintIOV glGetProgramivARBFunPtr
+
+glGetProgramivARBFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetProgramivARBFunPtr = unsafePerformIO (getProcAddress "glGetProgramivARB")
+
+{-# NOINLINE glGetProgramivARBFunPtr #-}
+
+-- | Usage: @'glIsProgramARB' program@
+
+
+glIsProgramARB :: MonadIO m => GLuint -> m GLboolean
+glIsProgramARB = ffiuintIOboolean glIsProgramARBFunPtr
+
+glIsProgramARBFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsProgramARBFunPtr = unsafePerformIO (getProcAddress "glIsProgramARB")
+
+{-# NOINLINE glIsProgramARBFunPtr #-}
+
+-- | Usage: @'glProgramEnvParameter4dARB' target index x y z w@
+--
+-- The parameter @target@ is a @ProgramTargetARB@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glProgramEnvParameter4dvARB'.
+
+
+glProgramEnvParameter4dARB :: MonadIO m => GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glProgramEnvParameter4dARB = ffienumuintdoubledoubledoubledoubleIOV glProgramEnvParameter4dARBFunPtr
+
+glProgramEnvParameter4dARBFunPtr :: FunPtr (GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glProgramEnvParameter4dARBFunPtr = unsafePerformIO (getProcAddress "glProgramEnvParameter4dARB")
+
+{-# NOINLINE glProgramEnvParameter4dARBFunPtr #-}
+
+-- | Usage: @'glProgramEnvParameter4dvARB' target index params@
+--
+-- The parameter @target@ is a @ProgramTargetARB@.
+--
+-- The length of @params@ should be @4@.
+
+
+glProgramEnvParameter4dvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()
+glProgramEnvParameter4dvARB = ffienumuintPtrdoubleIOV glProgramEnvParameter4dvARBFunPtr
+
+glProgramEnvParameter4dvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())
+glProgramEnvParameter4dvARBFunPtr = unsafePerformIO (getProcAddress "glProgramEnvParameter4dvARB")
+
+{-# NOINLINE glProgramEnvParameter4dvARBFunPtr #-}
+
+-- | Usage: @'glProgramEnvParameter4fARB' target index x y z w@
+--
+-- The parameter @target@ is a @ProgramTargetARB@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glProgramEnvParameter4fvARB'.
+
+
+glProgramEnvParameter4fARB :: MonadIO m => GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glProgramEnvParameter4fARB = ffienumuintfloatfloatfloatfloatIOV glProgramEnvParameter4fARBFunPtr
+
+glProgramEnvParameter4fARBFunPtr :: FunPtr (GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glProgramEnvParameter4fARBFunPtr = unsafePerformIO (getProcAddress "glProgramEnvParameter4fARB")
+
+{-# NOINLINE glProgramEnvParameter4fARBFunPtr #-}
+
+-- | Usage: @'glProgramEnvParameter4fvARB' target index params@
+--
+-- The parameter @target@ is a @ProgramTargetARB@.
+--
+-- The length of @params@ should be @4@.
+
+
+glProgramEnvParameter4fvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
+glProgramEnvParameter4fvARB = ffienumuintPtrfloatIOV glProgramEnvParameter4fvARBFunPtr
+
+glProgramEnvParameter4fvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
+glProgramEnvParameter4fvARBFunPtr = unsafePerformIO (getProcAddress "glProgramEnvParameter4fvARB")
+
+{-# NOINLINE glProgramEnvParameter4fvARBFunPtr #-}
+
+-- | Usage: @'glProgramLocalParameter4dARB' target index x y z w@
+--
+-- The parameter @target@ is a @ProgramTargetARB@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glProgramLocalParameter4dvARB'.
+
+
+glProgramLocalParameter4dARB :: MonadIO m => GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glProgramLocalParameter4dARB = ffienumuintdoubledoubledoubledoubleIOV glProgramLocalParameter4dARBFunPtr
+
+glProgramLocalParameter4dARBFunPtr :: FunPtr (GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glProgramLocalParameter4dARBFunPtr = unsafePerformIO (getProcAddress "glProgramLocalParameter4dARB")
+
+{-# NOINLINE glProgramLocalParameter4dARBFunPtr #-}
+
+-- | Usage: @'glProgramLocalParameter4dvARB' target index params@
+--
+-- The parameter @target@ is a @ProgramTargetARB@.
+--
+-- The length of @params@ should be @4@.
+
+
+glProgramLocalParameter4dvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m ()
+glProgramLocalParameter4dvARB = ffienumuintPtrdoubleIOV glProgramLocalParameter4dvARBFunPtr
+
+glProgramLocalParameter4dvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())
+glProgramLocalParameter4dvARBFunPtr = unsafePerformIO (getProcAddress "glProgramLocalParameter4dvARB")
+
+{-# NOINLINE glProgramLocalParameter4dvARBFunPtr #-}
+
+-- | Usage: @'glProgramLocalParameter4fARB' target index x y z w@
+--
+-- The parameter @target@ is a @ProgramTargetARB@.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glProgramLocalParameter4fvARB'.
+
+
+glProgramLocalParameter4fARB :: MonadIO m => GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glProgramLocalParameter4fARB = ffienumuintfloatfloatfloatfloatIOV glProgramLocalParameter4fARBFunPtr
+
+glProgramLocalParameter4fARBFunPtr :: FunPtr (GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glProgramLocalParameter4fARBFunPtr = unsafePerformIO (getProcAddress "glProgramLocalParameter4fARB")
+
+{-# NOINLINE glProgramLocalParameter4fARBFunPtr #-}
+
+-- | Usage: @'glProgramLocalParameter4fvARB' target index params@
+--
+-- The parameter @target@ is a @ProgramTargetARB@.
+--
+-- The length of @params@ should be @4@.
+
+
+glProgramLocalParameter4fvARB :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m ()
+glProgramLocalParameter4fvARB = ffienumuintPtrfloatIOV glProgramLocalParameter4fvARBFunPtr
+
+glProgramLocalParameter4fvARBFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
+glProgramLocalParameter4fvARBFunPtr = unsafePerformIO (getProcAddress "glProgramLocalParameter4fvARB")
+
+{-# NOINLINE glProgramLocalParameter4fvARBFunPtr #-}
+
+-- | Usage: @'glProgramStringARB' target format len string@
+--
+-- The parameter @target@ is a @ProgramTargetARB@.
+--
+-- The parameter @format@ is a @ProgramFormatARB@.
+--
+-- The length of @string@ should be @len@.
+
+
+glProgramStringARB :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
+glProgramStringARB = ffienumenumsizeiPtrVIOV glProgramStringARBFunPtr
+
+glProgramStringARBFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
+glProgramStringARBFunPtr = unsafePerformIO (getProcAddress "glProgramStringARB")
+
+{-# NOINLINE glProgramStringARBFunPtr #-}
+
+pattern GL_CURRENT_MATRIX_ARB  :: (Eq a, Num a) => a
+
+pattern GL_CURRENT_MATRIX_ARB = 0x8641
+
+pattern GL_CURRENT_MATRIX_STACK_DEPTH_ARB  :: (Eq a, Num a) => a
+
+pattern GL_CURRENT_MATRIX_STACK_DEPTH_ARB = 0x8640
+
+pattern GL_MATRIX0_ARB  :: (Eq a, Num a) => a
+
+pattern GL_MATRIX0_ARB = 0x88C0
+
+pattern GL_MATRIX10_ARB  :: (Eq a, Num a) => a
+
+pattern GL_MATRIX10_ARB = 0x88CA
+
+pattern GL_MATRIX11_ARB  :: (Eq a, Num a) => a
+
+pattern GL_MATRIX11_ARB = 0x88CB
+
+pattern GL_MATRIX12_ARB  :: (Eq a, Num a) => a
+
+pattern GL_MATRIX12_ARB = 0x88CC
+
+pattern GL_MATRIX13_ARB  :: (Eq a, Num a) => a
+
+pattern GL_MATRIX13_ARB = 0x88CD
+
+pattern GL_MATRIX14_ARB  :: (Eq a, Num a) => a
+
+pattern GL_MATRIX14_ARB = 0x88CE
+
+pattern GL_MATRIX15_ARB  :: (Eq a, Num a) => a
+
+pattern GL_MATRIX15_ARB = 0x88CF
+
+pattern GL_MATRIX16_ARB  :: (Eq a, Num a) => a
+
+pattern GL_MATRIX16_ARB = 0x88D0
+
+pattern GL_MATRIX17_ARB  :: (Eq a, Num a) => a
+
+pattern GL_MATRIX17_ARB = 0x88D1
+
+pattern GL_MATRIX18_ARB  :: (Eq a, Num a) => a
+
+pattern GL_MATRIX18_ARB = 0x88D2
+
+pattern GL_MATRIX19_ARB  :: (Eq a, Num a) => a
+
+pattern GL_MATRIX19_ARB = 0x88D3
+
+pattern GL_MATRIX1_ARB  :: (Eq a, Num a) => a
+
+pattern GL_MATRIX1_ARB = 0x88C1
+
+pattern GL_MATRIX20_ARB  :: (Eq a, Num a) => a
+
+pattern GL_MATRIX20_ARB = 0x88D4
+
+pattern GL_MATRIX21_ARB  :: (Eq a, Num a) => a
+
+pattern GL_MATRIX21_ARB = 0x88D5
+
+pattern GL_MATRIX22_ARB  :: (Eq a, Num a) => a
+
+pattern GL_MATRIX22_ARB = 0x88D6
+
+pattern GL_MATRIX23_ARB  :: (Eq a, Num a) => a
+
+pattern GL_MATRIX23_ARB = 0x88D7
+
+pattern GL_MATRIX24_ARB  :: (Eq a, Num a) => a
+
+pattern GL_MATRIX24_ARB = 0x88D8
+
+pattern GL_MATRIX25_ARB  :: (Eq a, Num a) => a
+
+pattern GL_MATRIX25_ARB = 0x88D9
+
+pattern GL_MATRIX26_ARB  :: (Eq a, Num a) => a
+
+pattern GL_MATRIX26_ARB = 0x88DA
+
+pattern GL_MATRIX27_ARB  :: (Eq a, Num a) => a
+
+pattern GL_MATRIX27_ARB = 0x88DB
+
+pattern GL_MATRIX28_ARB  :: (Eq a, Num a) => a
+
+pattern GL_MATRIX28_ARB = 0x88DC
+
+pattern GL_MATRIX29_ARB  :: (Eq a, Num a) => a
+
+pattern GL_MATRIX29_ARB = 0x88DD
+
+pattern GL_MATRIX2_ARB  :: (Eq a, Num a) => a
+
+pattern GL_MATRIX2_ARB = 0x88C2
+
+pattern GL_MATRIX30_ARB  :: (Eq a, Num a) => a
+
+pattern GL_MATRIX30_ARB = 0x88DE
+
+pattern GL_MATRIX31_ARB  :: (Eq a, Num a) => a
+
+pattern GL_MATRIX31_ARB = 0x88DF
+
+pattern GL_MATRIX3_ARB  :: (Eq a, Num a) => a
+
+pattern GL_MATRIX3_ARB = 0x88C3
+
+pattern GL_MATRIX4_ARB  :: (Eq a, Num a) => a
+
+pattern GL_MATRIX4_ARB = 0x88C4
+
+pattern GL_MATRIX5_ARB  :: (Eq a, Num a) => a
+
+pattern GL_MATRIX5_ARB = 0x88C5
+
+pattern GL_MATRIX6_ARB  :: (Eq a, Num a) => a
+
+pattern GL_MATRIX6_ARB = 0x88C6
+
+pattern GL_MATRIX7_ARB  :: (Eq a, Num a) => a
+
+pattern GL_MATRIX7_ARB = 0x88C7
+
+pattern GL_MATRIX8_ARB  :: (Eq a, Num a) => a
+
+pattern GL_MATRIX8_ARB = 0x88C8
+
+pattern GL_MATRIX9_ARB  :: (Eq a, Num a) => a
+
+pattern GL_MATRIX9_ARB = 0x88C9
+
+pattern GL_MAX_PROGRAM_ATTRIBS_ARB  :: (Eq a, Num a) => a
+
+pattern GL_MAX_PROGRAM_ATTRIBS_ARB = 0x88AD
+
+pattern GL_MAX_PROGRAM_ENV_PARAMETERS_ARB  :: (Eq a, Num a) => a
+
+pattern GL_MAX_PROGRAM_ENV_PARAMETERS_ARB = 0x88B5
+
+pattern GL_MAX_PROGRAM_INSTRUCTIONS_ARB  :: (Eq a, Num a) => a
+
+pattern GL_MAX_PROGRAM_INSTRUCTIONS_ARB = 0x88A1
+
+pattern GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB  :: (Eq a, Num a) => a
+
+pattern GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB = 0x88B4
+
+pattern GL_MAX_PROGRAM_MATRICES_ARB  :: (Eq a, Num a) => a
+
+pattern GL_MAX_PROGRAM_MATRICES_ARB = 0x862F
+
+pattern GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB  :: (Eq a, Num a) => a
+
+pattern GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB = 0x862E
+
+pattern GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB  :: (Eq a, Num a) => a
+
+pattern GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB = 0x88AF
+
+pattern GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB  :: (Eq a, Num a) => a
+
+pattern GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB = 0x88A3
+
+pattern GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB  :: (Eq a, Num a) => a
+
+pattern GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB = 0x88AB
+
+pattern GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB  :: (Eq a, Num a) => a
+
+pattern GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB = 0x88A7
+
+pattern GL_MAX_PROGRAM_PARAMETERS_ARB  :: (Eq a, Num a) => a
+
+pattern GL_MAX_PROGRAM_PARAMETERS_ARB = 0x88A9
+
+pattern GL_MAX_PROGRAM_TEMPORARIES_ARB  :: (Eq a, Num a) => a
+
+pattern GL_MAX_PROGRAM_TEMPORARIES_ARB = 0x88A5
+
+pattern GL_MAX_TEXTURE_COORDS_ARB  :: (Eq a, Num a) => a
+
+pattern GL_MAX_TEXTURE_COORDS_ARB = 0x8871
+
+pattern GL_MAX_TEXTURE_IMAGE_UNITS_ARB  :: (Eq a, Num a) => a
+
+pattern GL_MAX_TEXTURE_IMAGE_UNITS_ARB = 0x8872
+
+pattern GL_PROGRAM_ATTRIBS_ARB  :: (Eq a, Num a) => a
+
+pattern GL_PROGRAM_ATTRIBS_ARB = 0x88AC
+
+pattern GL_PROGRAM_BINDING_ARB  :: (Eq a, Num a) => a
+
+pattern GL_PROGRAM_BINDING_ARB = 0x8677
+
+pattern GL_PROGRAM_ERROR_POSITION_ARB  :: (Eq a, Num a) => a
+
+pattern GL_PROGRAM_ERROR_POSITION_ARB = 0x864B
+
+pattern GL_PROGRAM_ERROR_STRING_ARB  :: (Eq a, Num a) => a
+
+pattern GL_PROGRAM_ERROR_STRING_ARB = 0x8874
+
+pattern GL_PROGRAM_FORMAT_ARB  :: (Eq a, Num a) => a
+
+pattern GL_PROGRAM_FORMAT_ARB = 0x8876
+
+pattern GL_PROGRAM_FORMAT_ASCII_ARB  :: (Eq a, Num a) => a
+
+pattern GL_PROGRAM_FORMAT_ASCII_ARB = 0x8875
+
+pattern GL_PROGRAM_INSTRUCTIONS_ARB  :: (Eq a, Num a) => a
+
+pattern GL_PROGRAM_INSTRUCTIONS_ARB = 0x88A0
+
+pattern GL_PROGRAM_LENGTH_ARB  :: (Eq a, Num a) => a
+
+pattern GL_PROGRAM_LENGTH_ARB = 0x8627
+
+pattern GL_PROGRAM_NATIVE_ATTRIBS_ARB  :: (Eq a, Num a) => a
+
+pattern GL_PROGRAM_NATIVE_ATTRIBS_ARB = 0x88AE
+
+pattern GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB  :: (Eq a, Num a) => a
+
+pattern GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB = 0x88A2
+
+pattern GL_PROGRAM_NATIVE_PARAMETERS_ARB  :: (Eq a, Num a) => a
+
+pattern GL_PROGRAM_NATIVE_PARAMETERS_ARB = 0x88AA
+
+pattern GL_PROGRAM_NATIVE_TEMPORARIES_ARB  :: (Eq a, Num a) => a
+
+pattern GL_PROGRAM_NATIVE_TEMPORARIES_ARB = 0x88A6
+
+pattern GL_PROGRAM_PARAMETERS_ARB  :: (Eq a, Num a) => a
+
+pattern GL_PROGRAM_PARAMETERS_ARB = 0x88A8
+
+pattern GL_PROGRAM_STRING_ARB  :: (Eq a, Num a) => a
+
+pattern GL_PROGRAM_STRING_ARB = 0x8628
+
+pattern GL_PROGRAM_TEMPORARIES_ARB  :: (Eq a, Num a) => a
+
+pattern GL_PROGRAM_TEMPORARIES_ARB = 0x88A4
+
+pattern GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB  :: (Eq a, Num a) => a
+
+pattern GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB = 0x88B6
+
+pattern GL_TRANSPOSE_CURRENT_MATRIX_ARB  :: (Eq a, Num a) => a
+
+pattern GL_TRANSPOSE_CURRENT_MATRIX_ARB = 0x88B7
+
+pattern GL_SAMPLES_ARB  :: (Eq a, Num a) => a
+
+pattern GL_SAMPLES_ARB = 0x80A9
+
+pattern GL_TEXTURE0_ARB  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE0_ARB = 0x84C0
+
+pattern GL_TEXTURE1_ARB  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE1_ARB = 0x84C1
+
+pattern GL_FLOAT_MAT2_ARB  :: (Eq a, Num a) => a
+
+pattern GL_FLOAT_MAT2_ARB = 0x8B5A
+
+pattern GL_FLOAT_MAT3_ARB  :: (Eq a, Num a) => a
+
+pattern GL_FLOAT_MAT3_ARB = 0x8B5B
+
+pattern GL_FLOAT_MAT4_ARB  :: (Eq a, Num a) => a
+
+pattern GL_FLOAT_MAT4_ARB = 0x8B5C
+
+pattern GL_FLOAT_VEC2_ARB  :: (Eq a, Num a) => a
+
+pattern GL_FLOAT_VEC2_ARB = 0x8B50
+
+pattern GL_FLOAT_VEC3_ARB  :: (Eq a, Num a) => a
+
+pattern GL_FLOAT_VEC3_ARB = 0x8B51
+
+pattern GL_FLOAT_VEC4_ARB  :: (Eq a, Num a) => a
+
+pattern GL_FLOAT_VEC4_ARB = 0x8B52
+
+-- | Usage: @'glDisableVertexAttribArrayARB' index@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glDisableVertexAttribArray'.
+
+
+glDisableVertexAttribArrayARB :: MonadIO m => GLuint -> m ()
+glDisableVertexAttribArrayARB = ffiuintIOV glDisableVertexAttribArrayARBFunPtr
+
+glDisableVertexAttribArrayARBFunPtr :: FunPtr (GLuint -> IO ())
+glDisableVertexAttribArrayARBFunPtr = unsafePerformIO (getProcAddress "glDisableVertexAttribArrayARB")
+
+{-# NOINLINE glDisableVertexAttribArrayARBFunPtr #-}
+
+-- | Usage: @'glEnableVertexAttribArrayARB' index@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glEnableVertexAttribArray'.
+
+
+glEnableVertexAttribArrayARB :: MonadIO m => GLuint -> m ()
+glEnableVertexAttribArrayARB = ffiuintIOV glEnableVertexAttribArrayARBFunPtr
+
+glEnableVertexAttribArrayARBFunPtr :: FunPtr (GLuint -> IO ())
+glEnableVertexAttribArrayARBFunPtr = unsafePerformIO (getProcAddress "glEnableVertexAttribArrayARB")
+
+{-# NOINLINE glEnableVertexAttribArrayARBFunPtr #-}
+
+-- | Usage: @'glGetVertexAttribPointervARB' index pname pointer@
+--
+-- The parameter @pname@ is a @VertexAttribPointerPropertyARB@.
+--
+-- The length of @pointer@ should be @1@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetVertexAttribPointerv'.
+
+
+glGetVertexAttribPointervARB :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr ()) -> m ()
+glGetVertexAttribPointervARB = ffiuintenumPtrPtrVIOV glGetVertexAttribPointervARBFunPtr
+
+glGetVertexAttribPointervARBFunPtr :: FunPtr (GLuint -> GLenum -> Ptr (Ptr ()) -> IO ())
+glGetVertexAttribPointervARBFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribPointervARB")
+
+{-# NOINLINE glGetVertexAttribPointervARBFunPtr #-}
+
+-- | Usage: @'glGetVertexAttribdvARB' index pname params@
+--
+-- The parameter @pname@ is a @VertexAttribPropertyARB@.
+--
+-- The length of @params@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetVertexAttribdv'.
+
+
+glGetVertexAttribdvARB :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m ()
+glGetVertexAttribdvARB = ffiuintenumPtrdoubleIOV glGetVertexAttribdvARBFunPtr
+
+glGetVertexAttribdvARBFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLdouble -> IO ())
+glGetVertexAttribdvARBFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribdvARB")
+
+{-# NOINLINE glGetVertexAttribdvARBFunPtr #-}
+
+-- | Usage: @'glGetVertexAttribfvARB' index pname params@
+--
+-- The parameter @pname@ is a @VertexAttribPropertyARB@.
+--
+-- The length of @params@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetVertexAttribfv'.
+
+
+glGetVertexAttribfvARB :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m ()
+glGetVertexAttribfvARB = ffiuintenumPtrfloatIOV glGetVertexAttribfvARBFunPtr
+
+glGetVertexAttribfvARBFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
+glGetVertexAttribfvARBFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribfvARB")
+
+{-# NOINLINE glGetVertexAttribfvARBFunPtr #-}
+
+-- | Usage: @'glGetVertexAttribivARB' index pname params@
+--
+-- The parameter @pname@ is a @VertexAttribPropertyARB@.
+--
+-- The length of @params@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetVertexAttribiv'.
+
+
+glGetVertexAttribivARB :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m ()
+glGetVertexAttribivARB = ffiuintenumPtrintIOV glGetVertexAttribivARBFunPtr
+
+glGetVertexAttribivARBFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+glGetVertexAttribivARBFunPtr = unsafePerformIO (getProcAddress "glGetVertexAttribivARB")
+
+{-# NOINLINE glGetVertexAttribivARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib1dARB' index x@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib1d'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib1dvARB'.
+
+
+glVertexAttrib1dARB :: MonadIO m => GLuint -> GLdouble -> m ()
+glVertexAttrib1dARB = ffiuintdoubleIOV glVertexAttrib1dARBFunPtr
+
+glVertexAttrib1dARBFunPtr :: FunPtr (GLuint -> GLdouble -> IO ())
+glVertexAttrib1dARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1dARB")
+
+{-# NOINLINE glVertexAttrib1dARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib1dvARB' index v@
+--
+-- The length of @v@ should be @1@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib1dv'.
+
+
+glVertexAttrib1dvARB :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
+glVertexAttrib1dvARB = ffiuintPtrdoubleIOV glVertexAttrib1dvARBFunPtr
+
+glVertexAttrib1dvARBFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+glVertexAttrib1dvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1dvARB")
+
+{-# NOINLINE glVertexAttrib1dvARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib1fARB' index x@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib1f'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib1fvARB'.
+
+
+glVertexAttrib1fARB :: MonadIO m => GLuint -> GLfloat -> m ()
+glVertexAttrib1fARB = ffiuintfloatIOV glVertexAttrib1fARBFunPtr
+
+glVertexAttrib1fARBFunPtr :: FunPtr (GLuint -> GLfloat -> IO ())
+glVertexAttrib1fARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1fARB")
+
+{-# NOINLINE glVertexAttrib1fARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib1fvARB' index v@
+--
+-- The length of @v@ should be @1@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib1fv'.
+
+
+glVertexAttrib1fvARB :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
+glVertexAttrib1fvARB = ffiuintPtrfloatIOV glVertexAttrib1fvARBFunPtr
+
+glVertexAttrib1fvARBFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+glVertexAttrib1fvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1fvARB")
+
+{-# NOINLINE glVertexAttrib1fvARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib1sARB' index x@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib1s'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib1svARB'.
+
+
+glVertexAttrib1sARB :: MonadIO m => GLuint -> GLshort -> m ()
+glVertexAttrib1sARB = ffiuintshortIOV glVertexAttrib1sARBFunPtr
+
+glVertexAttrib1sARBFunPtr :: FunPtr (GLuint -> GLshort -> IO ())
+glVertexAttrib1sARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1sARB")
+
+{-# NOINLINE glVertexAttrib1sARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib1svARB' index v@
+--
+-- The length of @v@ should be @1@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib1sv'.
+
+
+glVertexAttrib1svARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()
+glVertexAttrib1svARB = ffiuintPtrshortIOV glVertexAttrib1svARBFunPtr
+
+glVertexAttrib1svARBFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+glVertexAttrib1svARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib1svARB")
+
+{-# NOINLINE glVertexAttrib1svARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib2dARB' index x y@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib2d'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib2dvARB'.
+
+
+glVertexAttrib2dARB :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m ()
+glVertexAttrib2dARB = ffiuintdoubledoubleIOV glVertexAttrib2dARBFunPtr
+
+glVertexAttrib2dARBFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> IO ())
+glVertexAttrib2dARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2dARB")
+
+{-# NOINLINE glVertexAttrib2dARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib2dvARB' index v@
+--
+-- The length of @v@ should be @2@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib2dv'.
+
+
+glVertexAttrib2dvARB :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
+glVertexAttrib2dvARB = ffiuintPtrdoubleIOV glVertexAttrib2dvARBFunPtr
+
+glVertexAttrib2dvARBFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+glVertexAttrib2dvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2dvARB")
+
+{-# NOINLINE glVertexAttrib2dvARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib2fARB' index x y@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib2f'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib2fvARB'.
+
+
+glVertexAttrib2fARB :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m ()
+glVertexAttrib2fARB = ffiuintfloatfloatIOV glVertexAttrib2fARBFunPtr
+
+glVertexAttrib2fARBFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> IO ())
+glVertexAttrib2fARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2fARB")
+
+{-# NOINLINE glVertexAttrib2fARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib2fvARB' index v@
+--
+-- The length of @v@ should be @2@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib2fv'.
+
+
+glVertexAttrib2fvARB :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
+glVertexAttrib2fvARB = ffiuintPtrfloatIOV glVertexAttrib2fvARBFunPtr
+
+glVertexAttrib2fvARBFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+glVertexAttrib2fvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2fvARB")
+
+{-# NOINLINE glVertexAttrib2fvARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib2sARB' index x y@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib2s'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib2svARB'.
+
+
+glVertexAttrib2sARB :: MonadIO m => GLuint -> GLshort -> GLshort -> m ()
+glVertexAttrib2sARB = ffiuintshortshortIOV glVertexAttrib2sARBFunPtr
+
+glVertexAttrib2sARBFunPtr :: FunPtr (GLuint -> GLshort -> GLshort -> IO ())
+glVertexAttrib2sARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2sARB")
+
+{-# NOINLINE glVertexAttrib2sARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib2svARB' index v@
+--
+-- The length of @v@ should be @2@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib2sv'.
+
+
+glVertexAttrib2svARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()
+glVertexAttrib2svARB = ffiuintPtrshortIOV glVertexAttrib2svARBFunPtr
+
+glVertexAttrib2svARBFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+glVertexAttrib2svARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib2svARB")
+
+{-# NOINLINE glVertexAttrib2svARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib3dARB' index x y z@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib3d'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib3dvARB'.
+
+
+glVertexAttrib3dARB :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m ()
+glVertexAttrib3dARB = ffiuintdoubledoubledoubleIOV glVertexAttrib3dARBFunPtr
+
+glVertexAttrib3dARBFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glVertexAttrib3dARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3dARB")
+
+{-# NOINLINE glVertexAttrib3dARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib3dvARB' index v@
+--
+-- The length of @v@ should be @3@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib3dv'.
+
+
+glVertexAttrib3dvARB :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
+glVertexAttrib3dvARB = ffiuintPtrdoubleIOV glVertexAttrib3dvARBFunPtr
+
+glVertexAttrib3dvARBFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+glVertexAttrib3dvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3dvARB")
+
+{-# NOINLINE glVertexAttrib3dvARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib3fARB' index x y z@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib3f'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib3fvARB'.
+
+
+glVertexAttrib3fARB :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m ()
+glVertexAttrib3fARB = ffiuintfloatfloatfloatIOV glVertexAttrib3fARBFunPtr
+
+glVertexAttrib3fARBFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glVertexAttrib3fARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3fARB")
+
+{-# NOINLINE glVertexAttrib3fARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib3fvARB' index v@
+--
+-- The length of @v@ should be @3@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib3fv'.
+
+
+glVertexAttrib3fvARB :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
+glVertexAttrib3fvARB = ffiuintPtrfloatIOV glVertexAttrib3fvARBFunPtr
+
+glVertexAttrib3fvARBFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+glVertexAttrib3fvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3fvARB")
+
+{-# NOINLINE glVertexAttrib3fvARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib3sARB' index x y z@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib3s'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib3svARB'.
+
+
+glVertexAttrib3sARB :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> m ()
+glVertexAttrib3sARB = ffiuintshortshortshortIOV glVertexAttrib3sARBFunPtr
+
+glVertexAttrib3sARBFunPtr :: FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> IO ())
+glVertexAttrib3sARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3sARB")
+
+{-# NOINLINE glVertexAttrib3sARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib3svARB' index v@
+--
+-- The length of @v@ should be @3@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib3sv'.
+
+
+glVertexAttrib3svARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()
+glVertexAttrib3svARB = ffiuintPtrshortIOV glVertexAttrib3svARBFunPtr
+
+glVertexAttrib3svARBFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+glVertexAttrib3svARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib3svARB")
+
+{-# NOINLINE glVertexAttrib3svARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4NbvARB' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4Nbv'.
+
+
+glVertexAttrib4NbvARB :: MonadIO m => GLuint -> Ptr GLbyte -> m ()
+glVertexAttrib4NbvARB = ffiuintPtrbyteIOV glVertexAttrib4NbvARBFunPtr
+
+glVertexAttrib4NbvARBFunPtr :: FunPtr (GLuint -> Ptr GLbyte -> IO ())
+glVertexAttrib4NbvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4NbvARB")
+
+{-# NOINLINE glVertexAttrib4NbvARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4NivARB' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4Niv'.
+
+
+glVertexAttrib4NivARB :: MonadIO m => GLuint -> Ptr GLint -> m ()
+glVertexAttrib4NivARB = ffiuintPtrintIOV glVertexAttrib4NivARBFunPtr
+
+glVertexAttrib4NivARBFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
+glVertexAttrib4NivARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4NivARB")
+
+{-# NOINLINE glVertexAttrib4NivARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4NsvARB' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4Nsv'.
+
+
+glVertexAttrib4NsvARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()
+glVertexAttrib4NsvARB = ffiuintPtrshortIOV glVertexAttrib4NsvARBFunPtr
+
+glVertexAttrib4NsvARBFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+glVertexAttrib4NsvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4NsvARB")
+
+{-# NOINLINE glVertexAttrib4NsvARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4NubARB' index x y z w@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4Nub'.
+
+
+glVertexAttrib4NubARB :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m ()
+glVertexAttrib4NubARB = ffiuintubyteubyteubyteubyteIOV glVertexAttrib4NubARBFunPtr
+
+glVertexAttrib4NubARBFunPtr :: FunPtr (GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> IO ())
+glVertexAttrib4NubARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4NubARB")
+
+{-# NOINLINE glVertexAttrib4NubARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4NubvARB' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4Nubv'.
+
+
+glVertexAttrib4NubvARB :: MonadIO m => GLuint -> Ptr GLubyte -> m ()
+glVertexAttrib4NubvARB = ffiuintPtrubyteIOV glVertexAttrib4NubvARBFunPtr
+
+glVertexAttrib4NubvARBFunPtr :: FunPtr (GLuint -> Ptr GLubyte -> IO ())
+glVertexAttrib4NubvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4NubvARB")
+
+{-# NOINLINE glVertexAttrib4NubvARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4NuivARB' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4Nuiv'.
+
+
+glVertexAttrib4NuivARB :: MonadIO m => GLuint -> Ptr GLuint -> m ()
+glVertexAttrib4NuivARB = ffiuintPtruintIOV glVertexAttrib4NuivARBFunPtr
+
+glVertexAttrib4NuivARBFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
+glVertexAttrib4NuivARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4NuivARB")
+
+{-# NOINLINE glVertexAttrib4NuivARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4NusvARB' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4Nusv'.
+
+
+glVertexAttrib4NusvARB :: MonadIO m => GLuint -> Ptr GLushort -> m ()
+glVertexAttrib4NusvARB = ffiuintPtrushortIOV glVertexAttrib4NusvARBFunPtr
+
+glVertexAttrib4NusvARBFunPtr :: FunPtr (GLuint -> Ptr GLushort -> IO ())
+glVertexAttrib4NusvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4NusvARB")
+
+{-# NOINLINE glVertexAttrib4NusvARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4bvARB' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4bv'.
+
+
+glVertexAttrib4bvARB :: MonadIO m => GLuint -> Ptr GLbyte -> m ()
+glVertexAttrib4bvARB = ffiuintPtrbyteIOV glVertexAttrib4bvARBFunPtr
+
+glVertexAttrib4bvARBFunPtr :: FunPtr (GLuint -> Ptr GLbyte -> IO ())
+glVertexAttrib4bvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4bvARB")
+
+{-# NOINLINE glVertexAttrib4bvARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4dARB' index x y z w@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4d'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib4dvARB'.
+
+
+glVertexAttrib4dARB :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
+glVertexAttrib4dARB = ffiuintdoubledoubledoubledoubleIOV glVertexAttrib4dARBFunPtr
+
+glVertexAttrib4dARBFunPtr :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+glVertexAttrib4dARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4dARB")
+
+{-# NOINLINE glVertexAttrib4dARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4dvARB' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4dv'.
+
+
+glVertexAttrib4dvARB :: MonadIO m => GLuint -> Ptr GLdouble -> m ()
+glVertexAttrib4dvARB = ffiuintPtrdoubleIOV glVertexAttrib4dvARBFunPtr
+
+glVertexAttrib4dvARBFunPtr :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+glVertexAttrib4dvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4dvARB")
+
+{-# NOINLINE glVertexAttrib4dvARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4fARB' index x y z w@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4f'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib4fvARB'.
+
+
+glVertexAttrib4fARB :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glVertexAttrib4fARB = ffiuintfloatfloatfloatfloatIOV glVertexAttrib4fARBFunPtr
+
+glVertexAttrib4fARBFunPtr :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glVertexAttrib4fARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4fARB")
+
+{-# NOINLINE glVertexAttrib4fARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4fvARB' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4fv'.
+
+
+glVertexAttrib4fvARB :: MonadIO m => GLuint -> Ptr GLfloat -> m ()
+glVertexAttrib4fvARB = ffiuintPtrfloatIOV glVertexAttrib4fvARBFunPtr
+
+glVertexAttrib4fvARBFunPtr :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+glVertexAttrib4fvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4fvARB")
+
+{-# NOINLINE glVertexAttrib4fvARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4ivARB' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4iv'.
+
+
+glVertexAttrib4ivARB :: MonadIO m => GLuint -> Ptr GLint -> m ()
+glVertexAttrib4ivARB = ffiuintPtrintIOV glVertexAttrib4ivARBFunPtr
+
+glVertexAttrib4ivARBFunPtr :: FunPtr (GLuint -> Ptr GLint -> IO ())
+glVertexAttrib4ivARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4ivARB")
+
+{-# NOINLINE glVertexAttrib4ivARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4sARB' index x y z w@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4s'.
+--
+-- The vector equivalent of this command is 'Graphics.GL.Internal.Shared.glVertexAttrib4svARB'.
+
+
+glVertexAttrib4sARB :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m ()
+glVertexAttrib4sARB = ffiuintshortshortshortshortIOV glVertexAttrib4sARBFunPtr
+
+glVertexAttrib4sARBFunPtr :: FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> IO ())
+glVertexAttrib4sARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4sARB")
+
+{-# NOINLINE glVertexAttrib4sARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4svARB' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4sv'.
+
+
+glVertexAttrib4svARB :: MonadIO m => GLuint -> Ptr GLshort -> m ()
+glVertexAttrib4svARB = ffiuintPtrshortIOV glVertexAttrib4svARBFunPtr
+
+glVertexAttrib4svARBFunPtr :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+glVertexAttrib4svARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4svARB")
+
+{-# NOINLINE glVertexAttrib4svARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4ubvARB' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4ubv'.
+
+
+glVertexAttrib4ubvARB :: MonadIO m => GLuint -> Ptr GLubyte -> m ()
+glVertexAttrib4ubvARB = ffiuintPtrubyteIOV glVertexAttrib4ubvARBFunPtr
+
+glVertexAttrib4ubvARBFunPtr :: FunPtr (GLuint -> Ptr GLubyte -> IO ())
+glVertexAttrib4ubvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4ubvARB")
+
+{-# NOINLINE glVertexAttrib4ubvARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4uivARB' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4uiv'.
+
+
+glVertexAttrib4uivARB :: MonadIO m => GLuint -> Ptr GLuint -> m ()
+glVertexAttrib4uivARB = ffiuintPtruintIOV glVertexAttrib4uivARBFunPtr
+
+glVertexAttrib4uivARBFunPtr :: FunPtr (GLuint -> Ptr GLuint -> IO ())
+glVertexAttrib4uivARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4uivARB")
+
+{-# NOINLINE glVertexAttrib4uivARBFunPtr #-}
+
+-- | Usage: @'glVertexAttrib4usvARB' index v@
+--
+-- The length of @v@ should be @4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttrib4usv'.
+
+
+glVertexAttrib4usvARB :: MonadIO m => GLuint -> Ptr GLushort -> m ()
+glVertexAttrib4usvARB = ffiuintPtrushortIOV glVertexAttrib4usvARBFunPtr
+
+glVertexAttrib4usvARBFunPtr :: FunPtr (GLuint -> Ptr GLushort -> IO ())
+glVertexAttrib4usvARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttrib4usvARB")
+
+{-# NOINLINE glVertexAttrib4usvARBFunPtr #-}
+
+-- | Usage: @'glVertexAttribPointerARB' index size type normalized stride pointer@
+--
+-- The parameter @type@ is a @VertexAttribPointerType@.
+--
+-- The parameter @normalized@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @pointer@ should be @COMPSIZE(size,type,stride)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glVertexAttribPointer'.
+
+
+glVertexAttribPointerARB :: MonadIO m => GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr () -> m ()
+glVertexAttribPointerARB = ffiuintintenumbooleansizeiPtrVIOV glVertexAttribPointerARBFunPtr
+
+glVertexAttribPointerARBFunPtr :: FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr () -> IO ())
+glVertexAttribPointerARBFunPtr = unsafePerformIO (getProcAddress "glVertexAttribPointerARB")
+
+{-# NOINLINE glVertexAttribPointerARBFunPtr #-}
+
+pattern GL_CURRENT_VERTEX_ATTRIB_ARB  :: (Eq a, Num a) => a
+
+pattern GL_CURRENT_VERTEX_ATTRIB_ARB = 0x8626
+
+pattern GL_MAX_VERTEX_ATTRIBS_ARB  :: (Eq a, Num a) => a
+
+pattern GL_MAX_VERTEX_ATTRIBS_ARB = 0x8869
+
+pattern GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB  :: (Eq a, Num a) => a
+
+pattern GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB = 0x8622
+
+pattern GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB  :: (Eq a, Num a) => a
+
+pattern GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB = 0x886A
+
+pattern GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB  :: (Eq a, Num a) => a
+
+pattern GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB = 0x8645
+
+pattern GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB  :: (Eq a, Num a) => a
+
+pattern GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB = 0x8623
+
+pattern GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB  :: (Eq a, Num a) => a
+
+pattern GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB = 0x8624
+
+pattern GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB  :: (Eq a, Num a) => a
+
+pattern GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB = 0x8625
+
+pattern GL_VERTEX_PROGRAM_POINT_SIZE_ARB  :: (Eq a, Num a) => a
+
+pattern GL_VERTEX_PROGRAM_POINT_SIZE_ARB = 0x8642
+
+pattern GL_VERTEX_PROGRAM_TWO_SIDE_ARB  :: (Eq a, Num a) => a
+
+pattern GL_VERTEX_PROGRAM_TWO_SIDE_ARB = 0x8643
+
+pattern GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB  :: (Eq a, Num a) => a
+
+pattern GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB = 0x8B4C
+
+-- | Usage: @'glBindFragDataLocationEXT' program color name@
+--
+-- The length of @name@ should be @COMPSIZE(name)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glBindFragDataLocation'.
+
+
+glBindFragDataLocationEXT :: MonadIO m => GLuint -> GLuint -> Ptr GLchar -> m ()
+glBindFragDataLocationEXT = ffiuintuintPtrcharIOV glBindFragDataLocationEXTFunPtr
+
+glBindFragDataLocationEXTFunPtr :: FunPtr (GLuint -> GLuint -> Ptr GLchar -> IO ())
+glBindFragDataLocationEXTFunPtr = unsafePerformIO (getProcAddress "glBindFragDataLocationEXT")
+
+{-# NOINLINE glBindFragDataLocationEXTFunPtr #-}
+
+pattern GL_R16F_EXT  :: (Eq a, Num a) => a
+
+pattern GL_R16F_EXT = 0x822D
+
+pattern GL_RG16F_EXT  :: (Eq a, Num a) => a
+
+pattern GL_RG16F_EXT = 0x822F
+
+pattern GL_RGB16F_EXT  :: (Eq a, Num a) => a
+
+pattern GL_RGB16F_EXT = 0x881B
+
+pattern GL_RGBA16F_EXT  :: (Eq a, Num a) => a
+
+pattern GL_RGBA16F_EXT = 0x881A
+
+-- | Usage: @'glDisableIndexedEXT' target index@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glDisablei'.
+
+
+glDisableIndexedEXT :: MonadIO m => GLenum -> GLuint -> m ()
+glDisableIndexedEXT = ffienumuintIOV glDisableIndexedEXTFunPtr
+
+glDisableIndexedEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glDisableIndexedEXTFunPtr = unsafePerformIO (getProcAddress "glDisableIndexedEXT")
+
+{-# NOINLINE glDisableIndexedEXTFunPtr #-}
+
+-- | Usage: @'glEnableIndexedEXT' target index@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glEnablei'.
+
+
+glEnableIndexedEXT :: MonadIO m => GLenum -> GLuint -> m ()
+glEnableIndexedEXT = ffienumuintIOV glEnableIndexedEXTFunPtr
+
+glEnableIndexedEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glEnableIndexedEXTFunPtr = unsafePerformIO (getProcAddress "glEnableIndexedEXT")
+
+{-# NOINLINE glEnableIndexedEXTFunPtr #-}
+
+-- | Usage: @'glGetBooleanIndexedvEXT' target index data@
+--
+-- The parameter @data@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @data@ should be @COMPSIZE(target)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetBooleani_v'.
+
+
+glGetBooleanIndexedvEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLboolean -> m ()
+glGetBooleanIndexedvEXT = ffienumuintPtrbooleanIOV glGetBooleanIndexedvEXTFunPtr
+
+glGetBooleanIndexedvEXTFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLboolean -> IO ())
+glGetBooleanIndexedvEXTFunPtr = unsafePerformIO (getProcAddress "glGetBooleanIndexedvEXT")
+
+{-# NOINLINE glGetBooleanIndexedvEXTFunPtr #-}
+
+-- | Usage: @'glGetIntegerIndexedvEXT' target index data@
+--
+-- The length of @data@ should be @COMPSIZE(target)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetIntegeri_v'.
+
+
+glGetIntegerIndexedvEXT :: MonadIO m => GLenum -> GLuint -> Ptr GLint -> m ()
+glGetIntegerIndexedvEXT = ffienumuintPtrintIOV glGetIntegerIndexedvEXTFunPtr
+
+glGetIntegerIndexedvEXTFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLint -> IO ())
+glGetIntegerIndexedvEXTFunPtr = unsafePerformIO (getProcAddress "glGetIntegerIndexedvEXT")
+
+{-# NOINLINE glGetIntegerIndexedvEXTFunPtr #-}
+
+-- | Usage: @'glIsEnabledIndexedEXT' target index@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glIsEnabledi'.
+
+
+glIsEnabledIndexedEXT :: MonadIO m => GLenum -> GLuint -> m GLboolean
+glIsEnabledIndexedEXT = ffienumuintIOboolean glIsEnabledIndexedEXTFunPtr
+
+glIsEnabledIndexedEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO GLboolean)
+glIsEnabledIndexedEXTFunPtr = unsafePerformIO (getProcAddress "glIsEnabledIndexedEXT")
+
+{-# NOINLINE glIsEnabledIndexedEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform1fEXT' program location v0@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform1f'.
+
+
+glProgramUniform1fEXT :: MonadIO m => GLuint -> GLint -> GLfloat -> m ()
+glProgramUniform1fEXT = ffiuintintfloatIOV glProgramUniform1fEXTFunPtr
+
+glProgramUniform1fEXTFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> IO ())
+glProgramUniform1fEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1fEXT")
+
+{-# NOINLINE glProgramUniform1fEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform1fvEXT' program location count value@
+--
+-- The length of @value@ should be @count@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform1fv'.
+
+
+glProgramUniform1fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
+glProgramUniform1fvEXT = ffiuintintsizeiPtrfloatIOV glProgramUniform1fvEXTFunPtr
+
+glProgramUniform1fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
+glProgramUniform1fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1fvEXT")
+
+{-# NOINLINE glProgramUniform1fvEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform1iEXT' program location v0@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform1i'.
+
+
+glProgramUniform1iEXT :: MonadIO m => GLuint -> GLint -> GLint -> m ()
+glProgramUniform1iEXT = ffiuintintintIOV glProgramUniform1iEXTFunPtr
+
+glProgramUniform1iEXTFunPtr :: FunPtr (GLuint -> GLint -> GLint -> IO ())
+glProgramUniform1iEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1iEXT")
+
+{-# NOINLINE glProgramUniform1iEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform1ivEXT' program location count value@
+--
+-- The length of @value@ should be @count@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform1iv'.
+
+
+glProgramUniform1ivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
+glProgramUniform1ivEXT = ffiuintintsizeiPtrintIOV glProgramUniform1ivEXTFunPtr
+
+glProgramUniform1ivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
+glProgramUniform1ivEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1ivEXT")
+
+{-# NOINLINE glProgramUniform1ivEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform1uiEXT' program location v0@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform1ui'.
+
+
+glProgramUniform1uiEXT :: MonadIO m => GLuint -> GLint -> GLuint -> m ()
+glProgramUniform1uiEXT = ffiuintintuintIOV glProgramUniform1uiEXTFunPtr
+
+glProgramUniform1uiEXTFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> IO ())
+glProgramUniform1uiEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1uiEXT")
+
+{-# NOINLINE glProgramUniform1uiEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform1uivEXT' program location count value@
+--
+-- The length of @value@ should be @count@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform1uiv'.
+
+
+glProgramUniform1uivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
+glProgramUniform1uivEXT = ffiuintintsizeiPtruintIOV glProgramUniform1uivEXTFunPtr
+
+glProgramUniform1uivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
+glProgramUniform1uivEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform1uivEXT")
+
+{-# NOINLINE glProgramUniform1uivEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform2fEXT' program location v0 v1@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform2f'.
+
+
+glProgramUniform2fEXT :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> m ()
+glProgramUniform2fEXT = ffiuintintfloatfloatIOV glProgramUniform2fEXTFunPtr
+
+glProgramUniform2fEXTFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> IO ())
+glProgramUniform2fEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2fEXT")
+
+{-# NOINLINE glProgramUniform2fEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform2fvEXT' program location count value@
+--
+-- The length of @value@ should be @count*2@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform2fv'.
+
+
+glProgramUniform2fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
+glProgramUniform2fvEXT = ffiuintintsizeiPtrfloatIOV glProgramUniform2fvEXTFunPtr
+
+glProgramUniform2fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
+glProgramUniform2fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2fvEXT")
+
+{-# NOINLINE glProgramUniform2fvEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform2iEXT' program location v0 v1@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform2i'.
+
+
+glProgramUniform2iEXT :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> m ()
+glProgramUniform2iEXT = ffiuintintintintIOV glProgramUniform2iEXTFunPtr
+
+glProgramUniform2iEXTFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> IO ())
+glProgramUniform2iEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2iEXT")
+
+{-# NOINLINE glProgramUniform2iEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform2ivEXT' program location count value@
+--
+-- The length of @value@ should be @count*2@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform2iv'.
+
+
+glProgramUniform2ivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
+glProgramUniform2ivEXT = ffiuintintsizeiPtrintIOV glProgramUniform2ivEXTFunPtr
+
+glProgramUniform2ivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
+glProgramUniform2ivEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2ivEXT")
+
+{-# NOINLINE glProgramUniform2ivEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform2uiEXT' program location v0 v1@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform2ui'.
+
+
+glProgramUniform2uiEXT :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> m ()
+glProgramUniform2uiEXT = ffiuintintuintuintIOV glProgramUniform2uiEXTFunPtr
+
+glProgramUniform2uiEXTFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> IO ())
+glProgramUniform2uiEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2uiEXT")
+
+{-# NOINLINE glProgramUniform2uiEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform2uivEXT' program location count value@
+--
+-- The length of @value@ should be @count*2@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform2uiv'.
+
+
+glProgramUniform2uivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
+glProgramUniform2uivEXT = ffiuintintsizeiPtruintIOV glProgramUniform2uivEXTFunPtr
+
+glProgramUniform2uivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
+glProgramUniform2uivEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform2uivEXT")
+
+{-# NOINLINE glProgramUniform2uivEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform3fEXT' program location v0 v1 v2@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform3f'.
+
+
+glProgramUniform3fEXT :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> m ()
+glProgramUniform3fEXT = ffiuintintfloatfloatfloatIOV glProgramUniform3fEXTFunPtr
+
+glProgramUniform3fEXTFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glProgramUniform3fEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3fEXT")
+
+{-# NOINLINE glProgramUniform3fEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform3fvEXT' program location count value@
+--
+-- The length of @value@ should be @count*3@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform3fv'.
+
+
+glProgramUniform3fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
+glProgramUniform3fvEXT = ffiuintintsizeiPtrfloatIOV glProgramUniform3fvEXTFunPtr
+
+glProgramUniform3fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
+glProgramUniform3fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3fvEXT")
+
+{-# NOINLINE glProgramUniform3fvEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform3iEXT' program location v0 v1 v2@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform3i'.
+
+
+glProgramUniform3iEXT :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> m ()
+glProgramUniform3iEXT = ffiuintintintintintIOV glProgramUniform3iEXTFunPtr
+
+glProgramUniform3iEXTFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
+glProgramUniform3iEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3iEXT")
+
+{-# NOINLINE glProgramUniform3iEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform3ivEXT' program location count value@
+--
+-- The length of @value@ should be @count*3@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform3iv'.
+
+
+glProgramUniform3ivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
+glProgramUniform3ivEXT = ffiuintintsizeiPtrintIOV glProgramUniform3ivEXTFunPtr
+
+glProgramUniform3ivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
+glProgramUniform3ivEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3ivEXT")
+
+{-# NOINLINE glProgramUniform3ivEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform3uiEXT' program location v0 v1 v2@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform3ui'.
+
+
+glProgramUniform3uiEXT :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> m ()
+glProgramUniform3uiEXT = ffiuintintuintuintuintIOV glProgramUniform3uiEXTFunPtr
+
+glProgramUniform3uiEXTFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> GLuint -> IO ())
+glProgramUniform3uiEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3uiEXT")
+
+{-# NOINLINE glProgramUniform3uiEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform3uivEXT' program location count value@
+--
+-- The length of @value@ should be @count*3@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform3uiv'.
+
+
+glProgramUniform3uivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
+glProgramUniform3uivEXT = ffiuintintsizeiPtruintIOV glProgramUniform3uivEXTFunPtr
+
+glProgramUniform3uivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
+glProgramUniform3uivEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform3uivEXT")
+
+{-# NOINLINE glProgramUniform3uivEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform4fEXT' program location v0 v1 v2 v3@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform4f'.
+
+
+glProgramUniform4fEXT :: MonadIO m => GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
+glProgramUniform4fEXT = ffiuintintfloatfloatfloatfloatIOV glProgramUniform4fEXTFunPtr
+
+glProgramUniform4fEXTFunPtr :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+glProgramUniform4fEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4fEXT")
+
+{-# NOINLINE glProgramUniform4fEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform4fvEXT' program location count value@
+--
+-- The length of @value@ should be @count*4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform4fv'.
+
+
+glProgramUniform4fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLfloat -> m ()
+glProgramUniform4fvEXT = ffiuintintsizeiPtrfloatIOV glProgramUniform4fvEXTFunPtr
+
+glProgramUniform4fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
+glProgramUniform4fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4fvEXT")
+
+{-# NOINLINE glProgramUniform4fvEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform4iEXT' program location v0 v1 v2 v3@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform4i'.
+
+
+glProgramUniform4iEXT :: MonadIO m => GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> m ()
+glProgramUniform4iEXT = ffiuintintintintintintIOV glProgramUniform4iEXTFunPtr
+
+glProgramUniform4iEXTFunPtr :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> IO ())
+glProgramUniform4iEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4iEXT")
+
+{-# NOINLINE glProgramUniform4iEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform4ivEXT' program location count value@
+--
+-- The length of @value@ should be @count*4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform4iv'.
+
+
+glProgramUniform4ivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLint -> m ()
+glProgramUniform4ivEXT = ffiuintintsizeiPtrintIOV glProgramUniform4ivEXTFunPtr
+
+glProgramUniform4ivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
+glProgramUniform4ivEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4ivEXT")
+
+{-# NOINLINE glProgramUniform4ivEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform4uiEXT' program location v0 v1 v2 v3@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform4ui'.
+
+
+glProgramUniform4uiEXT :: MonadIO m => GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
+glProgramUniform4uiEXT = ffiuintintuintuintuintuintIOV glProgramUniform4uiEXTFunPtr
+
+glProgramUniform4uiEXTFunPtr :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+glProgramUniform4uiEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4uiEXT")
+
+{-# NOINLINE glProgramUniform4uiEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniform4uivEXT' program location count value@
+--
+-- The length of @value@ should be @count*4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniform4uiv'.
+
+
+glProgramUniform4uivEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> Ptr GLuint -> m ()
+glProgramUniform4uivEXT = ffiuintintsizeiPtruintIOV glProgramUniform4uivEXTFunPtr
+
+glProgramUniform4uivEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
+glProgramUniform4uivEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniform4uivEXT")
+
+{-# NOINLINE glProgramUniform4uivEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix2fvEXT' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*4@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniformMatrix2fv'.
+
+
+glProgramUniformMatrix2fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix2fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix2fvEXTFunPtr
+
+glProgramUniformMatrix2fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix2fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2fvEXT")
+
+{-# NOINLINE glProgramUniformMatrix2fvEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix2x3fvEXT' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*6@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniformMatrix2x3fv'.
+
+
+glProgramUniformMatrix2x3fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix2x3fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix2x3fvEXTFunPtr
+
+glProgramUniformMatrix2x3fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix2x3fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2x3fvEXT")
+
+{-# NOINLINE glProgramUniformMatrix2x3fvEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix2x4fvEXT' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*8@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniformMatrix2x4fv'.
+
+
+glProgramUniformMatrix2x4fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix2x4fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix2x4fvEXTFunPtr
+
+glProgramUniformMatrix2x4fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix2x4fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix2x4fvEXT")
+
+{-# NOINLINE glProgramUniformMatrix2x4fvEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix3fvEXT' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*9@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniformMatrix3fv'.
+
+
+glProgramUniformMatrix3fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix3fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix3fvEXTFunPtr
+
+glProgramUniformMatrix3fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix3fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3fvEXT")
+
+{-# NOINLINE glProgramUniformMatrix3fvEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix3x2fvEXT' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*6@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniformMatrix3x2fv'.
+
+
+glProgramUniformMatrix3x2fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix3x2fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix3x2fvEXTFunPtr
+
+glProgramUniformMatrix3x2fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix3x2fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3x2fvEXT")
+
+{-# NOINLINE glProgramUniformMatrix3x2fvEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix3x4fvEXT' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*12@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniformMatrix3x4fv'.
+
+
+glProgramUniformMatrix3x4fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix3x4fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix3x4fvEXTFunPtr
+
+glProgramUniformMatrix3x4fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix3x4fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix3x4fvEXT")
+
+{-# NOINLINE glProgramUniformMatrix3x4fvEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix4fvEXT' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*16@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniformMatrix4fv'.
+
+
+glProgramUniformMatrix4fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix4fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix4fvEXTFunPtr
+
+glProgramUniformMatrix4fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix4fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4fvEXT")
+
+{-# NOINLINE glProgramUniformMatrix4fvEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix4x2fvEXT' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*8@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniformMatrix4x2fv'.
+
+
+glProgramUniformMatrix4x2fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix4x2fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix4x2fvEXTFunPtr
+
+glProgramUniformMatrix4x2fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix4x2fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4x2fvEXT")
+
+{-# NOINLINE glProgramUniformMatrix4x2fvEXTFunPtr #-}
+
+-- | Usage: @'glProgramUniformMatrix4x3fvEXT' program location count transpose value@
+--
+-- The parameter @transpose@ is a @Boolean@, one of: 'Graphics.GL.Internal.Shared.GL_FALSE', 'Graphics.GL.Internal.Shared.GL_TRUE'.
+--
+-- The length of @value@ should be @count*12@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramUniformMatrix4x3fv'.
+
+
+glProgramUniformMatrix4x3fvEXT :: MonadIO m => GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> m ()
+glProgramUniformMatrix4x3fvEXT = ffiuintintsizeibooleanPtrfloatIOV glProgramUniformMatrix4x3fvEXTFunPtr
+
+glProgramUniformMatrix4x3fvEXTFunPtr :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+glProgramUniformMatrix4x3fvEXTFunPtr = unsafePerformIO (getProcAddress "glProgramUniformMatrix4x3fvEXT")
+
+{-# NOINLINE glProgramUniformMatrix4x3fvEXTFunPtr #-}
+
+-- | Usage: @'glTextureStorage1DEXT' texture target levels internalformat width@
+
+
+glTextureStorage1DEXT :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> m ()
+glTextureStorage1DEXT = ffiuintenumsizeienumsizeiIOV glTextureStorage1DEXTFunPtr
+
+glTextureStorage1DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> IO ())
+glTextureStorage1DEXTFunPtr = unsafePerformIO (getProcAddress "glTextureStorage1DEXT")
+
+{-# NOINLINE glTextureStorage1DEXTFunPtr #-}
+
+-- | Usage: @'glTextureStorage2DEXT' texture target levels internalformat width height@
+
+
+glTextureStorage2DEXT :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
+glTextureStorage2DEXT = ffiuintenumsizeienumsizeisizeiIOV glTextureStorage2DEXTFunPtr
+
+glTextureStorage2DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
+glTextureStorage2DEXTFunPtr = unsafePerformIO (getProcAddress "glTextureStorage2DEXT")
+
+{-# NOINLINE glTextureStorage2DEXTFunPtr #-}
+
+-- | Usage: @'glTextureStorage3DEXT' texture target levels internalformat width height depth@
+
+
+glTextureStorage3DEXT :: MonadIO m => GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> m ()
+glTextureStorage3DEXT = ffiuintenumsizeienumsizeisizeisizeiIOV glTextureStorage3DEXTFunPtr
+
+glTextureStorage3DEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ())
+glTextureStorage3DEXTFunPtr = unsafePerformIO (getProcAddress "glTextureStorage3DEXT")
+
+{-# NOINLINE glTextureStorage3DEXTFunPtr #-}
+
+-- | Usage: @'glBeginQueryEXT' target id@
+
+
+glBeginQueryEXT :: MonadIO m => GLenum -> GLuint -> m ()
+glBeginQueryEXT = ffienumuintIOV glBeginQueryEXTFunPtr
+
+glBeginQueryEXTFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glBeginQueryEXTFunPtr = unsafePerformIO (getProcAddress "glBeginQueryEXT")
+
+{-# NOINLINE glBeginQueryEXTFunPtr #-}
+
+-- | Usage: @'glDeleteQueriesEXT' n ids@
+--
+-- The length of @ids@ should be @n@.
+
+
+glDeleteQueriesEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteQueriesEXT = ffisizeiPtruintIOV glDeleteQueriesEXTFunPtr
+
+glDeleteQueriesEXTFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteQueriesEXTFunPtr = unsafePerformIO (getProcAddress "glDeleteQueriesEXT")
+
+{-# NOINLINE glDeleteQueriesEXTFunPtr #-}
+
+-- | Usage: @'glEndQueryEXT' target@
+
+
+glEndQueryEXT :: MonadIO m => GLenum -> m ()
+glEndQueryEXT = ffienumIOV glEndQueryEXTFunPtr
+
+glEndQueryEXTFunPtr :: FunPtr (GLenum -> IO ())
+glEndQueryEXTFunPtr = unsafePerformIO (getProcAddress "glEndQueryEXT")
+
+{-# NOINLINE glEndQueryEXTFunPtr #-}
+
+-- | Usage: @'glGenQueriesEXT' n ids@
+--
+-- The length of @ids@ should be @n@.
+
+
+glGenQueriesEXT :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glGenQueriesEXT = ffisizeiPtruintIOV glGenQueriesEXTFunPtr
+
+glGenQueriesEXTFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glGenQueriesEXTFunPtr = unsafePerformIO (getProcAddress "glGenQueriesEXT")
+
+{-# NOINLINE glGenQueriesEXTFunPtr #-}
+
+-- | Usage: @'glGetQueryObjecti64vEXT' id pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetQueryObjecti64v'.
+
+
+glGetQueryObjecti64vEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLint64 -> m ()
+glGetQueryObjecti64vEXT = ffiuintenumPtrint64IOV glGetQueryObjecti64vEXTFunPtr
+
+glGetQueryObjecti64vEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLint64 -> IO ())
+glGetQueryObjecti64vEXTFunPtr = unsafePerformIO (getProcAddress "glGetQueryObjecti64vEXT")
+
+{-# NOINLINE glGetQueryObjecti64vEXTFunPtr #-}
+
+-- | Usage: @'glGetQueryObjectui64vEXT' id pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetQueryObjectui64v'.
+
+
+glGetQueryObjectui64vEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLuint64 -> m ()
+glGetQueryObjectui64vEXT = ffiuintenumPtruint64IOV glGetQueryObjectui64vEXTFunPtr
+
+glGetQueryObjectui64vEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint64 -> IO ())
+glGetQueryObjectui64vEXTFunPtr = unsafePerformIO (getProcAddress "glGetQueryObjectui64vEXT")
+
+{-# NOINLINE glGetQueryObjectui64vEXTFunPtr #-}
+
+-- | Usage: @'glGetQueryObjectuivEXT' id pname params@
+
+
+glGetQueryObjectuivEXT :: MonadIO m => GLuint -> GLenum -> Ptr GLuint -> m ()
+glGetQueryObjectuivEXT = ffiuintenumPtruintIOV glGetQueryObjectuivEXTFunPtr
+
+glGetQueryObjectuivEXTFunPtr :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
+glGetQueryObjectuivEXTFunPtr = unsafePerformIO (getProcAddress "glGetQueryObjectuivEXT")
+
+{-# NOINLINE glGetQueryObjectuivEXTFunPtr #-}
+
+-- | Usage: @'glGetQueryivEXT' target pname params@
+
+
+glGetQueryivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetQueryivEXT = ffienumenumPtrintIOV glGetQueryivEXTFunPtr
+
+glGetQueryivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetQueryivEXTFunPtr = unsafePerformIO (getProcAddress "glGetQueryivEXT")
+
+{-# NOINLINE glGetQueryivEXTFunPtr #-}
+
+-- | Usage: @'glIsQueryEXT' id@
+
+
+glIsQueryEXT :: MonadIO m => GLuint -> m GLboolean
+glIsQueryEXT = ffiuintIOboolean glIsQueryEXTFunPtr
+
+glIsQueryEXTFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsQueryEXTFunPtr = unsafePerformIO (getProcAddress "glIsQueryEXT")
+
+{-# NOINLINE glIsQueryEXTFunPtr #-}
+
+pattern GL_CURRENT_QUERY_EXT  :: (Eq a, Num a) => a
+
+pattern GL_CURRENT_QUERY_EXT = 0x8865
+
+pattern GL_QUERY_RESULT_AVAILABLE_EXT  :: (Eq a, Num a) => a
+
+pattern GL_QUERY_RESULT_AVAILABLE_EXT = 0x8867
+
+pattern GL_QUERY_RESULT_EXT  :: (Eq a, Num a) => a
+
+pattern GL_QUERY_RESULT_EXT = 0x8866
+
+pattern GL_TIME_ELAPSED_EXT  :: (Eq a, Num a) => a
+
+pattern GL_TIME_ELAPSED_EXT = 0x88BF
+
+pattern GL_COLOR_ATTACHMENT0_EXT  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT0_EXT = 0x8CE0
+
+pattern GL_COLOR_ATTACHMENT10_EXT  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT10_EXT = 0x8CEA
+
+pattern GL_COLOR_ATTACHMENT11_EXT  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT11_EXT = 0x8CEB
+
+pattern GL_COLOR_ATTACHMENT12_EXT  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT12_EXT = 0x8CEC
+
+pattern GL_COLOR_ATTACHMENT13_EXT  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT13_EXT = 0x8CED
+
+pattern GL_COLOR_ATTACHMENT14_EXT  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT14_EXT = 0x8CEE
+
+pattern GL_COLOR_ATTACHMENT15_EXT  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT15_EXT = 0x8CEF
+
+pattern GL_COLOR_ATTACHMENT1_EXT  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT1_EXT = 0x8CE1
+
+pattern GL_COLOR_ATTACHMENT2_EXT  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT2_EXT = 0x8CE2
+
+pattern GL_COLOR_ATTACHMENT3_EXT  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT3_EXT = 0x8CE3
+
+pattern GL_COLOR_ATTACHMENT4_EXT  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT4_EXT = 0x8CE4
+
+pattern GL_COLOR_ATTACHMENT5_EXT  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT5_EXT = 0x8CE5
+
+pattern GL_COLOR_ATTACHMENT6_EXT  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT6_EXT = 0x8CE6
+
+pattern GL_COLOR_ATTACHMENT7_EXT  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT7_EXT = 0x8CE7
+
+pattern GL_COLOR_ATTACHMENT8_EXT  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT8_EXT = 0x8CE8
+
+pattern GL_COLOR_ATTACHMENT9_EXT  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT9_EXT = 0x8CE9
+
+pattern GL_MAX_COLOR_ATTACHMENTS_EXT  :: (Eq a, Num a) => a
+
+pattern GL_MAX_COLOR_ATTACHMENTS_EXT = 0x8CDF
+
+-- | Usage: @'glDrawArraysInstancedEXT' mode start count primcount@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glDrawArraysInstanced'.
+
+
+glDrawArraysInstancedEXT :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> m ()
+glDrawArraysInstancedEXT = ffienumintsizeisizeiIOV glDrawArraysInstancedEXTFunPtr
+
+glDrawArraysInstancedEXTFunPtr :: FunPtr (GLenum -> GLint -> GLsizei -> GLsizei -> IO ())
+glDrawArraysInstancedEXTFunPtr = unsafePerformIO (getProcAddress "glDrawArraysInstancedEXT")
+
+{-# NOINLINE glDrawArraysInstancedEXTFunPtr #-}
+
+-- | Usage: @'glDrawElementsInstancedEXT' mode count type indices primcount@
+--
+-- The parameter @mode@ is a @PrimitiveType@, one of: 'Graphics.GL.Internal.Shared.GL_LINES', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_LINE_LOOP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_LINE_STRIP_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_PATCHES', 'Graphics.GL.Ext.EXT.TessellationShader.GL_PATCHES_EXT', 'Graphics.GL.Internal.Shared.GL_POINTS', 'Graphics.GL.Internal.Shared.GL_POLYGON', 'Graphics.GL.Internal.Shared.GL_QUADS', 'Graphics.GL.Ext.EXT.TessellationShader.GL_QUADS_EXT', 'Graphics.GL.Internal.Shared.GL_QUAD_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLES', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLES_ADJACENCY_EXT', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_FAN', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY', 'Graphics.GL.Ext.ARB.GeometryShader4.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Internal.Shared.GL_TRIANGLE_STRIP_ADJACENCY_EXT'.
+--
+-- The parameter @type@ is a @DrawElementsType@.
+--
+-- The length of @indices@ should be @COMPSIZE(count,type)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glDrawElementsInstanced'.
+
+
+glDrawElementsInstancedEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> m ()
+glDrawElementsInstancedEXT = ffienumsizeienumPtrVsizeiIOV glDrawElementsInstancedEXTFunPtr
+
+glDrawElementsInstancedEXTFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> IO ())
+glDrawElementsInstancedEXTFunPtr = unsafePerformIO (getProcAddress "glDrawElementsInstancedEXT")
+
+{-# NOINLINE glDrawElementsInstancedEXTFunPtr #-}
+
+pattern GL_FRAGMENT_DEPTH_EXT  :: (Eq a, Num a) => a
+
+pattern GL_FRAGMENT_DEPTH_EXT = 0x8452
+
+-- | Usage: @'glRenderbufferStorageMultisampleEXT' target samples internalformat width height@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glRenderbufferStorageMultisample'.
+
+
+glRenderbufferStorageMultisampleEXT :: MonadIO m => GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> m ()
+glRenderbufferStorageMultisampleEXT = ffienumsizeienumsizeisizeiIOV glRenderbufferStorageMultisampleEXTFunPtr
+
+glRenderbufferStorageMultisampleEXTFunPtr :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
+glRenderbufferStorageMultisampleEXTFunPtr = unsafePerformIO (getProcAddress "glRenderbufferStorageMultisampleEXT")
+
+{-# NOINLINE glRenderbufferStorageMultisampleEXTFunPtr #-}
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT  :: (Eq a, Num a) => a
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT = 0x8D56
+
+pattern GL_MAX_SAMPLES_EXT  :: (Eq a, Num a) => a
+
+pattern GL_MAX_SAMPLES_EXT = 0x8D57
+
+pattern GL_RENDERBUFFER_SAMPLES_EXT  :: (Eq a, Num a) => a
+
+pattern GL_RENDERBUFFER_SAMPLES_EXT = 0x8CAB
+
+pattern GL_FRAMEBUFFER_SRGB_EXT  :: (Eq a, Num a) => a
+
+pattern GL_FRAMEBUFFER_SRGB_EXT = 0x8DB9
+
+-- | Usage: @'glFramebufferTextureEXT' target attachment texture level@
+--
+-- The parameter @target@ is a @FramebufferTarget@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glFramebufferTexture'.
+
+
+glFramebufferTextureEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> m ()
+glFramebufferTextureEXT = ffienumenumuintintIOV glFramebufferTextureEXTFunPtr
+
+glFramebufferTextureEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> IO ())
+glFramebufferTextureEXTFunPtr = unsafePerformIO (getProcAddress "glFramebufferTextureEXT")
+
+{-# NOINLINE glFramebufferTextureEXTFunPtr #-}
+
+pattern GL_FIRST_VERTEX_CONVENTION_EXT  :: (Eq a, Num a) => a
+
+pattern GL_FIRST_VERTEX_CONVENTION_EXT = 0x8E4D
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT  :: (Eq a, Num a) => a
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT = 0x8DA7
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT  :: (Eq a, Num a) => a
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT = 0x8DA8
+
+pattern GL_GEOMETRY_SHADER_EXT  :: (Eq a, Num a) => a
+
+pattern GL_GEOMETRY_SHADER_EXT = 0x8DD9
+
+pattern GL_LAST_VERTEX_CONVENTION_EXT  :: (Eq a, Num a) => a
+
+pattern GL_LAST_VERTEX_CONVENTION_EXT = 0x8E4E
+
+pattern GL_LINES_ADJACENCY_EXT  :: (Eq a, Num a) => a
+
+pattern GL_LINES_ADJACENCY_EXT = 0x000A
+
+pattern GL_LINE_STRIP_ADJACENCY_EXT  :: (Eq a, Num a) => a
+
+pattern GL_LINE_STRIP_ADJACENCY_EXT = 0x000B
+
+pattern GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT  :: (Eq a, Num a) => a
+
+pattern GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT = 0x8DE0
+
+pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT  :: (Eq a, Num a) => a
+
+pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT = 0x8C29
+
+pattern GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT  :: (Eq a, Num a) => a
+
+pattern GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT = 0x8DE1
+
+pattern GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT  :: (Eq a, Num a) => a
+
+pattern GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT = 0x8DDF
+
+pattern GL_PRIMITIVES_GENERATED_EXT  :: (Eq a, Num a) => a
+
+pattern GL_PRIMITIVES_GENERATED_EXT = 0x8C87
+
+pattern GL_TRIANGLES_ADJACENCY_EXT  :: (Eq a, Num a) => a
+
+pattern GL_TRIANGLES_ADJACENCY_EXT = 0x000C
+
+pattern GL_TRIANGLE_STRIP_ADJACENCY_EXT  :: (Eq a, Num a) => a
+
+pattern GL_TRIANGLE_STRIP_ADJACENCY_EXT = 0x000D
+
+-- | Usage: @'glProgramParameteriEXT' program pname value@
+--
+-- The parameter @pname@ is a @ProgramParameterPName@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glProgramParameteri'.
+
+
+glProgramParameteriEXT :: MonadIO m => GLuint -> GLenum -> GLint -> m ()
+glProgramParameteriEXT = ffiuintenumintIOV glProgramParameteriEXTFunPtr
+
+glProgramParameteriEXTFunPtr :: FunPtr (GLuint -> GLenum -> GLint -> IO ())
+glProgramParameteriEXTFunPtr = unsafePerformIO (getProcAddress "glProgramParameteriEXT")
+
+{-# NOINLINE glProgramParameteriEXTFunPtr #-}
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT  :: (Eq a, Num a) => a
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT = 0x8CD4
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT  :: (Eq a, Num a) => a
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT = 0x8DA9
+
+pattern GL_GEOMETRY_INPUT_TYPE_EXT  :: (Eq a, Num a) => a
+
+pattern GL_GEOMETRY_INPUT_TYPE_EXT = 0x8DDB
+
+pattern GL_GEOMETRY_OUTPUT_TYPE_EXT  :: (Eq a, Num a) => a
+
+pattern GL_GEOMETRY_OUTPUT_TYPE_EXT = 0x8DDC
+
+pattern GL_GEOMETRY_VERTICES_OUT_EXT  :: (Eq a, Num a) => a
+
+pattern GL_GEOMETRY_VERTICES_OUT_EXT = 0x8DDA
+
+pattern GL_PROGRAM_POINT_SIZE_EXT  :: (Eq a, Num a) => a
+
+pattern GL_PROGRAM_POINT_SIZE_EXT = 0x8642
+
+pattern GL_INT_SAMPLER_BUFFER_EXT  :: (Eq a, Num a) => a
+
+pattern GL_INT_SAMPLER_BUFFER_EXT = 0x8DD0
+
+pattern GL_SAMPLER_BUFFER_EXT  :: (Eq a, Num a) => a
+
+pattern GL_SAMPLER_BUFFER_EXT = 0x8DC2
+
+pattern GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT = 0x8DD8
+
+pattern GL_MULTISAMPLE_EXT  :: (Eq a, Num a) => a
+
+pattern GL_MULTISAMPLE_EXT = 0x809D
+
+pattern GL_SAMPLE_ALPHA_TO_ONE_EXT  :: (Eq a, Num a) => a
+
+pattern GL_SAMPLE_ALPHA_TO_ONE_EXT = 0x809F
+
+-- | Usage: @'glRasterSamplesEXT' samples fixedsamplelocations@
+
+
+glRasterSamplesEXT :: MonadIO m => GLuint -> GLboolean -> m ()
+glRasterSamplesEXT = ffiuintbooleanIOV glRasterSamplesEXTFunPtr
+
+glRasterSamplesEXTFunPtr :: FunPtr (GLuint -> GLboolean -> IO ())
+glRasterSamplesEXTFunPtr = unsafePerformIO (getProcAddress "glRasterSamplesEXT")
+
+{-# NOINLINE glRasterSamplesEXTFunPtr #-}
+
+pattern GL_EFFECTIVE_RASTER_SAMPLES_EXT  :: (Eq a, Num a) => a
+
+pattern GL_EFFECTIVE_RASTER_SAMPLES_EXT = 0x932C
+
+pattern GL_MAX_RASTER_SAMPLES_EXT  :: (Eq a, Num a) => a
+
+pattern GL_MAX_RASTER_SAMPLES_EXT = 0x9329
+
+pattern GL_MULTISAMPLE_RASTERIZATION_ALLOWED_EXT  :: (Eq a, Num a) => a
+
+pattern GL_MULTISAMPLE_RASTERIZATION_ALLOWED_EXT = 0x932B
+
+pattern GL_RASTER_FIXED_SAMPLE_LOCATIONS_EXT  :: (Eq a, Num a) => a
+
+pattern GL_RASTER_FIXED_SAMPLE_LOCATIONS_EXT = 0x932A
+
+pattern GL_RASTER_MULTISAMPLE_EXT  :: (Eq a, Num a) => a
+
+pattern GL_RASTER_MULTISAMPLE_EXT = 0x9327
+
+pattern GL_RASTER_SAMPLES_EXT  :: (Eq a, Num a) => a
+
+pattern GL_RASTER_SAMPLES_EXT = 0x9328
+
+pattern GL_R16_SNORM_EXT  :: (Eq a, Num a) => a
+
+pattern GL_R16_SNORM_EXT = 0x8F98
+
+pattern GL_RG16_SNORM_EXT  :: (Eq a, Num a) => a
+
+pattern GL_RG16_SNORM_EXT = 0x8F99
+
+pattern GL_RGBA16_SNORM_EXT  :: (Eq a, Num a) => a
+
+pattern GL_RGBA16_SNORM_EXT = 0x8F9B
+
+pattern GL_SRGB8_ALPHA8_EXT  :: (Eq a, Num a) => a
+
+pattern GL_SRGB8_ALPHA8_EXT = 0x8C43
+
+pattern GL_SRGB_ALPHA_EXT  :: (Eq a, Num a) => a
+
+pattern GL_SRGB_ALPHA_EXT = 0x8C42
+
+pattern GL_SRGB_EXT  :: (Eq a, Num a) => a
+
+pattern GL_SRGB_EXT = 0x8C40
+
+pattern GL_IMAGE_BUFFER_EXT  :: (Eq a, Num a) => a
+
+pattern GL_IMAGE_BUFFER_EXT = 0x9051
+
+pattern GL_IMAGE_CUBE_MAP_ARRAY_EXT  :: (Eq a, Num a) => a
+
+pattern GL_IMAGE_CUBE_MAP_ARRAY_EXT = 0x9054
+
+pattern GL_INT_IMAGE_BUFFER_EXT  :: (Eq a, Num a) => a
+
+pattern GL_INT_IMAGE_BUFFER_EXT = 0x905C
+
+pattern GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT  :: (Eq a, Num a) => a
+
+pattern GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT = 0x905F
+
+pattern GL_UNSIGNED_INT_IMAGE_BUFFER_EXT  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_INT_IMAGE_BUFFER_EXT = 0x9067
+
+pattern GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT  :: (Eq a, Num a) => a
+
+pattern GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT = 0x906A
+
+pattern GL_TEXTURE_CUBE_MAP_ARRAY_OES  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_CUBE_MAP_ARRAY_OES = 0x9009
+
+pattern GL_ALPHA8_EXT  :: (Eq a, Num a) => a
+
+pattern GL_ALPHA8_EXT = 0x803C
+
+pattern GL_LUMINANCE8_ALPHA8_EXT  :: (Eq a, Num a) => a
+
+pattern GL_LUMINANCE8_ALPHA8_EXT = 0x8045
+
+pattern GL_LUMINANCE8_EXT  :: (Eq a, Num a) => a
+
+pattern GL_LUMINANCE8_EXT = 0x8040
+
+pattern GL_RGB10_A2_EXT  :: (Eq a, Num a) => a
+
+pattern GL_RGB10_A2_EXT = 0x8059
+
+pattern GL_RGB10_EXT  :: (Eq a, Num a) => a
+
+pattern GL_RGB10_EXT = 0x8052
+
+pattern GL_RGB16_EXT  :: (Eq a, Num a) => a
+
+pattern GL_RGB16_EXT = 0x8054
+
+pattern GL_RGBA16_EXT  :: (Eq a, Num a) => a
+
+pattern GL_RGBA16_EXT = 0x805B
+
+-- | Usage: @'glFramebufferTextureLayerEXT' target attachment texture level layer@
+--
+-- The parameter @target@ is a @FramebufferTarget@.
+--
+-- The parameter @attachment@ is a @FramebufferAttachment@.
+--
+-- The parameter @texture@ is a @Texture@.
+--
+-- The parameter @level@ is a @CheckedInt32@.
+--
+-- The parameter @layer@ is a @CheckedInt32@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glFramebufferTextureLayer'.
+
+
+glFramebufferTextureLayerEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> GLint -> GLint -> m ()
+glFramebufferTextureLayerEXT = ffienumenumuintintintIOV glFramebufferTextureLayerEXTFunPtr
+
+glFramebufferTextureLayerEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ())
+glFramebufferTextureLayerEXTFunPtr = unsafePerformIO (getProcAddress "glFramebufferTextureLayerEXT")
+
+{-# NOINLINE glFramebufferTextureLayerEXTFunPtr #-}
+
+-- | Usage: @'glGetTexParameterIivEXT' target pname params@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Ext.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetTexParameterIiv'.
+
+
+glGetTexParameterIivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glGetTexParameterIivEXT = ffienumenumPtrintIOV glGetTexParameterIivEXTFunPtr
+
+glGetTexParameterIivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glGetTexParameterIivEXTFunPtr = unsafePerformIO (getProcAddress "glGetTexParameterIivEXT")
+
+{-# NOINLINE glGetTexParameterIivEXTFunPtr #-}
+
+-- | Usage: @'glGetTexParameterIuivEXT' target pname params@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @GetTextureParameter@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Ext.SGIS.SharpenTexture.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4DSIZE_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_ALPHA_SIZE', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BLUE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.NV.TextureBorderClamp.GL_TEXTURE_BORDER_COLOR_NV', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_OPERATOR_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_COMPONENTS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_DEPTH_EXT', 'Graphics.GL.Ext.SGIS.TextureFilter4.GL_TEXTURE_FILTER4_SIZE_SGIS', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_GEQUAL_R_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_GREEN_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_HEIGHT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTENSITY_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_INTERNAL_FORMAT', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_LEQUAL_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_LUMINANCE_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RED_SIZE', 'Graphics.GL.Internal.Shared.GL_TEXTURE_RESIDENT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WIDTH', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetTexParameterIuiv'.
+
+
+glGetTexParameterIuivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
+glGetTexParameterIuivEXT = ffienumenumPtruintIOV glGetTexParameterIuivEXTFunPtr
+
+glGetTexParameterIuivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
+glGetTexParameterIuivEXTFunPtr = unsafePerformIO (getProcAddress "glGetTexParameterIuivEXT")
+
+{-# NOINLINE glGetTexParameterIuivEXTFunPtr #-}
+
+-- | Usage: @'glTexParameterIivEXT' target pname params@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glTexParameterIiv'.
+
+
+glTexParameterIivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
+glTexParameterIivEXT = ffienumenumPtrintIOV glTexParameterIivEXTFunPtr
+
+glTexParameterIivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+glTexParameterIivEXTFunPtr = unsafePerformIO (getProcAddress "glTexParameterIivEXT")
+
+{-# NOINLINE glTexParameterIivEXTFunPtr #-}
+
+-- | Usage: @'glTexParameterIuivEXT' target pname params@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- The parameter @pname@ is a @TextureParameterName@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_LEVEL_SGIS', 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_MODE_SGIS', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_DUAL_TEXTURE_SELECT_SGIS', 'Graphics.GL.Internal.Shared.GL_GENERATE_MIPMAP', 'Graphics.GL.Ext.SGIS.GenerateMipmap.GL_GENERATE_MIPMAP_SGIS', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_BIAS_SGIX', 'Graphics.GL.Ext.SGIX.TextureScaleBias.GL_POST_TEXTURE_FILTER_SCALE_SGIX', 'Graphics.GL.Ext.SGIS.TextureSelect.GL_QUAD_TEXTURE_SELECT_SGIS', 'Graphics.GL.Ext.SGIX.ShadowAmbient.GL_SHADOW_AMBIENT_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BORDER_COLOR', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_CENTER_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_FRAME_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_OFFSET_SGIX', 'Graphics.GL.Ext.SGIX.Clipmap.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX', 'Graphics.GL.Ext.SGIX.Shadow.GL_TEXTURE_COMPARE_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureLodBias.GL_TEXTURE_LOD_BIAS_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAG_FILTER', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_R_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_S_SGIX', 'Graphics.GL.Ext.SGIX.TextureCoordinateClamp.GL_TEXTURE_MAX_CLAMP_T_SGIX', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_FILTER', 'Graphics.GL.Internal.Shared.GL_TEXTURE_PRIORITY', 'Graphics.GL.Ext.EXT.TextureObject.GL_TEXTURE_PRIORITY_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_WRAP_Q_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_R', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_WRAP_R_OES', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_S', 'Graphics.GL.Internal.Shared.GL_TEXTURE_WRAP_T'.
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glTexParameterIuiv'.
+
+
+glTexParameterIuivEXT :: MonadIO m => GLenum -> GLenum -> Ptr GLuint -> m ()
+glTexParameterIuivEXT = ffienumenumPtruintIOV glTexParameterIuivEXTFunPtr
+
+glTexParameterIuivEXTFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
+glTexParameterIuivEXTFunPtr = unsafePerformIO (getProcAddress "glTexParameterIuivEXT")
+
+{-# NOINLINE glTexParameterIuivEXTFunPtr #-}
+
+-- | Usage: @'glTexBufferEXT' target internalformat buffer@
+--
+-- The parameter @target@ is a @TextureTarget@, one of: 'Graphics.GL.Ext.SGIS.DetailTexture.GL_DETAIL_TEXTURE_2D_SGIS', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_1D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_1D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_2D', 'Graphics.GL.Ext.EXT.Texture.GL_PROXY_TEXTURE_2D_EXT', 'Graphics.GL.Internal.Shared.GL_PROXY_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_PROXY_TEXTURE_3D_EXT', 'Graphics.GL.Ext.SGIS.Texture4D.GL_PROXY_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_1D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_2D', 'Graphics.GL.Internal.Shared.GL_TEXTURE_3D', 'Graphics.GL.Ext.EXT.Texture3D.GL_TEXTURE_3D_EXT', 'Graphics.GL.Ext.OES.Texture3D.GL_TEXTURE_3D_OES', 'Graphics.GL.Ext.SGIS.Texture4D.GL_TEXTURE_4D_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_BASE_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_BASE_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LEVEL', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LEVEL_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MAX_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MAX_LOD_SGIS', 'Graphics.GL.Internal.Shared.GL_TEXTURE_MIN_LOD', 'Graphics.GL.Ext.SGIS.TextureLod.GL_TEXTURE_MIN_LOD_SGIS'.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glTexBuffer'.
+
+
+glTexBufferEXT :: MonadIO m => GLenum -> GLenum -> GLuint -> m ()
+glTexBufferEXT = ffienumenumuintIOV glTexBufferEXTFunPtr
+
+glTexBufferEXTFunPtr :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
+glTexBufferEXTFunPtr = unsafePerformIO (getProcAddress "glTexBufferEXT")
+
+{-# NOINLINE glTexBufferEXTFunPtr #-}
+
+pattern GL_MAX_TEXTURE_BUFFER_SIZE_EXT  :: (Eq a, Num a) => a
+
+pattern GL_MAX_TEXTURE_BUFFER_SIZE_EXT = 0x8C2B
+
+pattern GL_TEXTURE_BINDING_BUFFER_EXT  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_BINDING_BUFFER_EXT = 0x8C2C
+
+pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT = 0x8C2D
+
+pattern GL_TEXTURE_BUFFER_EXT  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_BUFFER_EXT = 0x8C2A
+
+pattern GL_COMPRESSED_RGBA_S3TC_DXT1_EXT  :: (Eq a, Num a) => a
+
+pattern GL_COMPRESSED_RGBA_S3TC_DXT1_EXT = 0x83F1
+
+pattern GL_COMPRESSED_RGB_S3TC_DXT1_EXT  :: (Eq a, Num a) => a
+
+pattern GL_COMPRESSED_RGB_S3TC_DXT1_EXT = 0x83F0
+
+pattern GL_R8_EXT  :: (Eq a, Num a) => a
+
+pattern GL_R8_EXT = 0x8229
+
+pattern GL_RG8_EXT  :: (Eq a, Num a) => a
+
+pattern GL_RG8_EXT = 0x822B
+
+pattern GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES  :: (Eq a, Num a) => a
+
+pattern GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES = 0x8D68
+
+pattern GL_TEXTURE_BINDING_EXTERNAL_OES  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_BINDING_EXTERNAL_OES = 0x8D67
+
+pattern GL_TEXTURE_EXTERNAL_OES  :: (Eq a, Num a) => a
+
+pattern GL_TEXTURE_EXTERNAL_OES = 0x8D65
+
+pattern GL_CONTEXT_ROBUST_ACCESS  :: (Eq a, Num a) => a
+
+pattern GL_CONTEXT_ROBUST_ACCESS = 0x90F3
+
+pattern GL_COMPRESSED_RGBA_ASTC_10x10_KHR  :: (Eq a, Num a) => a
+
+pattern GL_COMPRESSED_RGBA_ASTC_10x10_KHR = 0x93BB
+
+pattern GL_COMPRESSED_RGBA_ASTC_10x5_KHR  :: (Eq a, Num a) => a
+
+pattern GL_COMPRESSED_RGBA_ASTC_10x5_KHR = 0x93B8
+
+pattern GL_COMPRESSED_RGBA_ASTC_10x6_KHR  :: (Eq a, Num a) => a
+
+pattern GL_COMPRESSED_RGBA_ASTC_10x6_KHR = 0x93B9
+
+pattern GL_COMPRESSED_RGBA_ASTC_10x8_KHR  :: (Eq a, Num a) => a
+
+pattern GL_COMPRESSED_RGBA_ASTC_10x8_KHR = 0x93BA
+
+pattern GL_COMPRESSED_RGBA_ASTC_12x10_KHR  :: (Eq a, Num a) => a
+
+pattern GL_COMPRESSED_RGBA_ASTC_12x10_KHR = 0x93BC
+
+pattern GL_COMPRESSED_RGBA_ASTC_12x12_KHR  :: (Eq a, Num a) => a
+
+pattern GL_COMPRESSED_RGBA_ASTC_12x12_KHR = 0x93BD
+
+pattern GL_COMPRESSED_RGBA_ASTC_4x4_KHR  :: (Eq a, Num a) => a
+
+pattern GL_COMPRESSED_RGBA_ASTC_4x4_KHR = 0x93B0
+
+pattern GL_COMPRESSED_RGBA_ASTC_5x4_KHR  :: (Eq a, Num a) => a
+
+pattern GL_COMPRESSED_RGBA_ASTC_5x4_KHR = 0x93B1
+
+pattern GL_COMPRESSED_RGBA_ASTC_5x5_KHR  :: (Eq a, Num a) => a
+
+pattern GL_COMPRESSED_RGBA_ASTC_5x5_KHR = 0x93B2
+
+pattern GL_COMPRESSED_RGBA_ASTC_6x5_KHR  :: (Eq a, Num a) => a
+
+pattern GL_COMPRESSED_RGBA_ASTC_6x5_KHR = 0x93B3
+
+pattern GL_COMPRESSED_RGBA_ASTC_6x6_KHR  :: (Eq a, Num a) => a
+
+pattern GL_COMPRESSED_RGBA_ASTC_6x6_KHR = 0x93B4
+
+pattern GL_COMPRESSED_RGBA_ASTC_8x5_KHR  :: (Eq a, Num a) => a
+
+pattern GL_COMPRESSED_RGBA_ASTC_8x5_KHR = 0x93B5
+
+pattern GL_COMPRESSED_RGBA_ASTC_8x6_KHR  :: (Eq a, Num a) => a
+
+pattern GL_COMPRESSED_RGBA_ASTC_8x6_KHR = 0x93B6
+
+pattern GL_COMPRESSED_RGBA_ASTC_8x8_KHR  :: (Eq a, Num a) => a
+
+pattern GL_COMPRESSED_RGBA_ASTC_8x8_KHR = 0x93B7
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR  :: (Eq a, Num a) => a
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR = 0x93DB
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR  :: (Eq a, Num a) => a
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR = 0x93D8
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR  :: (Eq a, Num a) => a
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR = 0x93D9
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR  :: (Eq a, Num a) => a
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR = 0x93DA
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR  :: (Eq a, Num a) => a
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR = 0x93DC
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR  :: (Eq a, Num a) => a
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR = 0x93DD
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR  :: (Eq a, Num a) => a
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR = 0x93D0
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR  :: (Eq a, Num a) => a
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR = 0x93D1
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR  :: (Eq a, Num a) => a
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR = 0x93D2
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR  :: (Eq a, Num a) => a
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR = 0x93D3
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR  :: (Eq a, Num a) => a
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR = 0x93D4
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR  :: (Eq a, Num a) => a
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR = 0x93D5
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR  :: (Eq a, Num a) => a
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR = 0x93D6
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR  :: (Eq a, Num a) => a
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR = 0x93D7
+
+pattern GL_COLOR_ATTACHMENT0_NV  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT0_NV = 0x8CE0
+
+pattern GL_COLOR_ATTACHMENT10_NV  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT10_NV = 0x8CEA
+
+pattern GL_COLOR_ATTACHMENT11_NV  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT11_NV = 0x8CEB
+
+pattern GL_COLOR_ATTACHMENT12_NV  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT12_NV = 0x8CEC
+
+pattern GL_COLOR_ATTACHMENT13_NV  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT13_NV = 0x8CED
+
+pattern GL_COLOR_ATTACHMENT14_NV  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT14_NV = 0x8CEE
+
+pattern GL_COLOR_ATTACHMENT15_NV  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT15_NV = 0x8CEF
+
+pattern GL_COLOR_ATTACHMENT1_NV  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT1_NV = 0x8CE1
+
+pattern GL_COLOR_ATTACHMENT2_NV  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT2_NV = 0x8CE2
+
+pattern GL_COLOR_ATTACHMENT3_NV  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT3_NV = 0x8CE3
+
+pattern GL_COLOR_ATTACHMENT4_NV  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT4_NV = 0x8CE4
+
+pattern GL_COLOR_ATTACHMENT5_NV  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT5_NV = 0x8CE5
+
+pattern GL_COLOR_ATTACHMENT6_NV  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT6_NV = 0x8CE6
+
+pattern GL_COLOR_ATTACHMENT7_NV  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT7_NV = 0x8CE7
+
+pattern GL_COLOR_ATTACHMENT8_NV  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT8_NV = 0x8CE8
+
+pattern GL_COLOR_ATTACHMENT9_NV  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_ATTACHMENT9_NV = 0x8CE9
+
+pattern GL_MAX_PROGRAM_CALL_DEPTH_NV  :: (Eq a, Num a) => a
+
+pattern GL_MAX_PROGRAM_CALL_DEPTH_NV = 0x88F5
+
+pattern GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV  :: (Eq a, Num a) => a
+
+pattern GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV = 0x88F4
+
+pattern GL_COLOR_SAMPLES_NV  :: (Eq a, Num a) => a
+
+pattern GL_COLOR_SAMPLES_NV = 0x8E20
+
+pattern GL_PRIMARY_COLOR_NV  :: (Eq a, Num a) => a
+
+pattern GL_PRIMARY_COLOR_NV = 0x852C
+
+pattern GL_SECONDARY_COLOR_NV  :: (Eq a, Num a) => a
+
+pattern GL_SECONDARY_COLOR_NV = 0x852D
+
+pattern GL_DEPTH_COMPONENT24_OES  :: (Eq a, Num a) => a
+
+pattern GL_DEPTH_COMPONENT24_OES = 0x81A6
+
+-- | Usage: @'glDisableiOES' target index@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glDisablei'.
+
+
+glDisableiOES :: MonadIO m => GLenum -> GLuint -> m ()
+glDisableiOES = ffienumuintIOV glDisableiOESFunPtr
+
+glDisableiOESFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glDisableiOESFunPtr = unsafePerformIO (getProcAddress "glDisableiOES")
+
+{-# NOINLINE glDisableiOESFunPtr #-}
+
+-- | Usage: @'glEnableiOES' target index@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glEnablei'.
+
+
+glEnableiOES :: MonadIO m => GLenum -> GLuint -> m ()
+glEnableiOES = ffienumuintIOV glEnableiOESFunPtr
+
+glEnableiOESFunPtr :: FunPtr (GLenum -> GLuint -> IO ())
+glEnableiOESFunPtr = unsafePerformIO (getProcAddress "glEnableiOES")
+
+{-# NOINLINE glEnableiOESFunPtr #-}
+
+-- | Usage: @'glIsEnablediOES' target index@
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glIsEnabledi'.
+
+
+glIsEnablediOES :: MonadIO m => GLenum -> GLuint -> m GLboolean
+glIsEnablediOES = ffienumuintIOboolean glIsEnablediOESFunPtr
+
+glIsEnablediOESFunPtr :: FunPtr (GLenum -> GLuint -> IO GLboolean)
+glIsEnablediOESFunPtr = unsafePerformIO (getProcAddress "glIsEnablediOES")
+
+{-# NOINLINE glIsEnablediOESFunPtr #-}
+
+-- | Usage: @'glGetTexGenxvOES' coord pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glGetTexGenxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
+glGetTexGenxvOES = ffienumenumPtrfixedIOV glGetTexGenxvOESFunPtr
+
+glGetTexGenxvOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+glGetTexGenxvOESFunPtr = unsafePerformIO (getProcAddress "glGetTexGenxvOES")
+
+{-# NOINLINE glGetTexGenxvOESFunPtr #-}
+
+-- | Usage: @'glTexGenxOES' coord pname param@
+
+
+glTexGenxOES :: MonadIO m => GLenum -> GLenum -> GLfixed -> m ()
+glTexGenxOES = ffienumenumfixedIOV glTexGenxOESFunPtr
+
+glTexGenxOESFunPtr :: FunPtr (GLenum -> GLenum -> GLfixed -> IO ())
+glTexGenxOESFunPtr = unsafePerformIO (getProcAddress "glTexGenxOES")
+
+{-# NOINLINE glTexGenxOESFunPtr #-}
+
+-- | Usage: @'glTexGenxvOES' coord pname params@
+--
+-- The length of @params@ should be @COMPSIZE(pname)@.
+
+
+glTexGenxvOES :: MonadIO m => GLenum -> GLenum -> Ptr GLfixed -> m ()
+glTexGenxvOES = ffienumenumPtrfixedIOV glTexGenxvOESFunPtr
+
+glTexGenxvOESFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+glTexGenxvOESFunPtr = unsafePerformIO (getProcAddress "glTexGenxvOES")
+
+{-# NOINLINE glTexGenxvOESFunPtr #-}
+
+pattern GL_DEPTH_COMPONENT16_OES  :: (Eq a, Num a) => a
+
+pattern GL_DEPTH_COMPONENT16_OES = 0x81A5
+
+pattern GL_RGB565_OES  :: (Eq a, Num a) => a
+
+pattern GL_RGB565_OES = 0x8D62
+
+pattern GL_RGB5_A1_OES  :: (Eq a, Num a) => a
+
+pattern GL_RGB5_A1_OES = 0x8057
+
+pattern GL_RGBA4_OES  :: (Eq a, Num a) => a
+
+pattern GL_RGBA4_OES = 0x8056
+
+pattern GL_RGB8_OES  :: (Eq a, Num a) => a
+
+pattern GL_RGB8_OES = 0x8051
+
+pattern GL_RGBA8_OES  :: (Eq a, Num a) => a
+
+pattern GL_RGBA8_OES = 0x8058
+
+pattern GL_STENCIL_INDEX8_OES  :: (Eq a, Num a) => a
+
+pattern GL_STENCIL_INDEX8_OES = 0x8D48
+
+pattern GL_HALF_FLOAT_OES  :: (Eq a, Num a) => a
 
 pattern GL_HALF_FLOAT_OES = 0x8D61
diff --git a/gl.cabal b/gl.cabal
--- a/gl.cabal
+++ b/gl.cabal
@@ -1,7 +1,7 @@
 name:          gl
-version:       0.9
+version:       0.9.1
 synopsis:      Complete OpenGL raw bindings
-description:   Complete OpenGL raw bindings
+description:   Complete OpenGL raw bindings.
 license:       BSD3
 license-file:  LICENSE
 author:        Edward A. Kmett, Gabríel Arthúr Pétursson, Sven Panne
@@ -11,11 +11,24 @@
                Copyright © 2013 Sven Panne
 category:      Graphics
 build-type:    Simple
-cabal-version: >=1.24
+cabal-version: 1.24
 extra-source-files:
   CHANGELOG.markdown
   README.markdown
   TODO.markdown
+tested-with:   GHC == 8.0.2
+             , GHC == 8.2.2
+             , GHC == 8.4.4
+             , GHC == 8.6.5
+             , GHC == 8.8.4
+             , GHC == 8.10.7
+             , GHC == 9.0.2
+             , GHC == 9.2.8
+             , GHC == 9.4.8
+             , GHC == 9.6.6
+             , GHC == 9.8.4
+             , GHC == 9.10.1
+             , GHC == 9.12.1
 
 source-repository head
   type:     git
@@ -37,11 +50,11 @@
   ghc-options: -Wall -O2
 
   build-depends:
-      base == 4.*
-    , containers >= 0.5 && < 0.7
-    , fixed >= 0.2.1 && < 0.3
+      base >= 4.9 && < 5
+    , containers >= 0.5 && < 0.9
+    , fixed >= 0.2.1 && < 0.4
     , half >= 0.2 && < 0.4
-    , transformers >= 0.2 && < 0.6
+    , transformers >= 0.2 && < 0.7
 
   default-language: Haskell2010
 
diff --git a/src/Graphics/GL/Internal/Proc.hs b/src/Graphics/GL/Internal/Proc.hs
--- a/src/Graphics/GL/Internal/Proc.hs
+++ b/src/Graphics/GL/Internal/Proc.hs
@@ -24,9 +24,6 @@
   ) where
 
 import Control.Monad
-#if __GLASGOW_HASKELL__ < 710
-import Data.Functor
-#endif
 import Data.Set as Set
 import Foreign.C.String
 import Foreign.Marshal.Alloc
