diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,146 @@
+3.3.4.1
+-------
+* Updated OpenGL registry to fdaa98e456.
+* Relaxed upper version bounds for `bytestring` and `transformers`.
+* Fixed OpenBSD build.
+
+3.3.4.0
+-------
+* Updated OpenGL registry to 9b214157e.
+
+3.3.3.0
+-------
+* Updated OpenGL registry to 696ac2296.
+* Relaxed version bound of `fixed` package.
+
+3.3.2.0
+-------
+* Updated OpenGL registry to 39e37f838.
+
+3.3.1.0
+-------
+* Updated OpenGL registry to accf5ad3c.
+
+3.3.0.2
+-------
+* Updated OpenGL registry to b7aee529f.
+* Relaxed version bound of `containers` package.
+
+3.3.0.1
+-------
+* Updated OpenGL registry to fe1a89f35.
+* Relaxed version bound of `half` package.
+
+3.3.0.0
+-------
+* Updated OpenGL registry to 6565c242f.
+
+3.2.7.0
+-------
+* Updated OpenGL registry to 681c365c0.
+* Added OpenGL 4.6 support.
+
+3.2.6.0
+-------
+* Updated OpenGL registry to 89bede35b.
+
+3.2.5.0
+-------
+* Updated OpenGL registry to 97558118d.
+
+3.2.4.0
+-------
+* Updated OpenGL registry to r33312.
+
+3.2.3.0
+-------
+* Updated OpenGL registry to r33189.
+
+3.2.2.0
+-------
+* Updated OpenGL registry to r33080.
+
+3.2.1.0
+-------
+* Updated OpenGL registry to r33061.
+* Split the `Graphics.GL.Functions` implementation into more manageable chunks.
+
+3.2.0.0
+-------
+* Updated OpenGL registry to r32749.
+
+3.1.0.1
+-------
+* Updated warning flag magic for GHC 8.0.
+* Updated OpenGL registry to r32363.
+
+3.1.0.0
+-------
+* Changed the type of `GL_FALSE` and `GL_TRUE` to `GLboolean`, leading to fewer
+  `fromIntegral` calls in user code.
+* Added deprecated functions `mkGLDEBUGPROC`, `mkGLDEBUGPROCAMD`,
+  `mkGLDEBUGPROCARB`, `mkGLDEBUGPROCKHR` for `gl` compatibility.
+* Updated OpenGL registry to r32348.
+
+3.0.0.0
+-------
+* Make the `OpenGLRaw` package even more similar to the `gl` package:
+  * Use pattern synonyms for OpenGL enums.
+  * Changed module name prefix from `Graphics.Rendering.OpenGL.Raw` to `Graphics.GL`.
+  * Use slightly different type synonyms for GL type (introducing `Fixed` on the way):
+    * `CDouble` => `Double` (for `GLclampd`, `GLdouble`)
+    * `CFloat`  => `Float`  (for `GLclampf`, `GLfloat`)
+    * `CInt`    => `Fixed`  (for `GLclampx`, `GLfixed`)
+    * `CInt`    => `Int32`  (for `GLint`, `GLsizei`)
+    * `CSChar`  => `Int8`   (for `GLbyte`)
+    * `CShort`  => `Int16`  (for `GLshort`)
+    * `CUChar`  => `Word8`  (for `GLboolean`, `GLubyte`)
+    * `CUInt`   => `Word32` (for `GLbitfield`, `GLenum`, `GLhandleARB`, `GLuint`)
+    * `CUShort` => `Word16` (for `GLushort`)
+
+2.6.1.1
+-------
+* Relaxed upper version bound for `transformers`.
+
+2.6.1.0
+-------
+* Updated OpenGL registry to r32258. Note that the major version was
+  intentionally not bumped, because the signature change of
+  `glClearNamedFramebufferfi` was a bug fix, see the corresponding
+  [issue](https://www.khronos.org/bugzilla/show_bug.cgi?id=1394) on Khronos.
+
+2.6.0.0
+-------
+* Use the `Half` type from the `half` package.
+* Updated OpenGL registry to r32110.
+
+2.5.5.0
+-------
+* Added retrieval of version info and extensions.
+* Added extension predicates.
+* Added documentation for vector equivalents and aliases.
+* Consistently use UTF-8 as the encoding.
+
+2.5.4.0
+-------
+* Added documentation for enumerant groups.
+
+2.5.3.0
+-------
+* Updated OpenGL registry to r31903.
+* Added `GL_EXT_multisampled_compatibility` tokens and functions (gles2 extension only).
+
+2.5.2.1
+-------
+* Added CHANGELOG.md to distribution.
+
+2.5.2.0
+-------
+* Updated OpenGL registry to r31811.
+* Added `ARB_ES3_2_compatibility` extension.
+* Added `ARB_gpu_shader_int64` extension.
+* Added `ARB_parallel_shader_compile` extension.
+* Added `ARB_sample_locations` extension.
+* Added `ARB_texture_filter_minmax` extension.
+* Added `INTEL_framebuffer_CMAA` extension.
+* Added `NV_conservative_raster_dilate` extension.
diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2009, Sven Panne
+Copyright (c) 2009-2019, Sven Panne
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
diff --git a/OpenGLRaw.cabal b/OpenGLRaw.cabal
--- a/OpenGLRaw.cabal
+++ b/OpenGLRaw.cabal
@@ -1,254 +1,749 @@
 name: OpenGLRaw
-version: 1.1.0.2
+version: 3.3.4.1
+synopsis: A raw binding for the OpenGL graphics system
+description:
+  OpenGLRaw is a raw Haskell binding for the OpenGL 4.6 graphics system and
+  lots of OpenGL extensions. It is basically a 1:1 mapping of OpenGL's C API,
+  intended as a basis for a nicer interface. OpenGLRaw offers access to all
+  necessary functions, tokens and types plus a general facility for loading
+  extension entries. The module hierarchy closely mirrors the naming structure
+  of the OpenGL extensions, making it easy to find the right module to import.
+  All API entries are loaded dynamically, so no special C header files are
+  needed for building this package. If an API entry is not found at runtime, a
+  userError is thrown.
+  .
+  OpenGL is the industry's most widely used and supported 2D and 3D graphics
+  application programming interface (API), incorporating a broad set of
+  rendering, texture mapping, special effects, and other powerful visualization
+  functions. For more information about OpenGL and its various extensions,
+  please see <http://www.opengl.org/>
+  and <http://www.opengl.org/registry/>.
+homepage: http://www.haskell.org/haskellwiki/Opengl
+bug-reports: https://github.com/haskell-opengl/OpenGLRaw/issues
+copyright: Copyright (C) 2009-2019 Sven Panne
 license: BSD3
 license-file: LICENSE
-maintainer: Jason Dagit <dagitj@gmail.com>, Sven Panne <sven.panne@aedion.de>
-bug-reports: https://github.com/haskell-opengl/OpenGLRaw/issues
-homepage: http://www.haskell.org/haskellwiki/Opengl
+author: Sven Panne
+maintainer: Sven Panne <svenpanne@gmail.com>, Jason Dagit <dagitj@gmail.com>
 category: Graphics
-synopsis: A raw binding for the OpenGL graphics system
-description:
-   OpenGLRaw is a raw Haskell binding for the OpenGL 3.2 graphics system and
-   lots of OpenGL extensions. It is basically a 1:1 mapping of OpenGL's C API,
-   intended as a basis for a nicer interface. OpenGLRaw offers access to all
-   necessary functions, tokens and types plus a general facility for loading
-   extension entries. The module hierarchy closely mirrors the naming structure
-   of the OpenGL extensions, making it easy to find the right module to import.
-   All API entries are loaded dynamically, so no special C header files are
-   needed for building this package. If an API entry is not found at runtime, a
-   userError is thrown.
-   .
-   OpenGL is the industry's most widely used and supported 2D and 3D graphics
-   application programming interface (API), incorporating a broad set of
-   rendering, texture mapping, special effects, and other powerful visualization
-   functions. For more information about OpenGL and its various extensions,
-   please see <http://www.opengl.org/>
-   and <http://www.opengl.org/registry/>.
 build-type: Simple
-cabal-version:  >= 1.6
+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.1
+  GHC == 9.2.1
+cabal-version: >= 1.10
 extra-source-files:
-   include/CTypes.h
-   include/HsOpenGLRaw.h
+  CHANGELOG.md
+  README.md
+  RegistryProcessor/LICENSE
+  RegistryProcessor/OpenGL-Registry/xml/gl.xml
+  RegistryProcessor/OpenGL-Registry/xml/registry.rnc
+  RegistryProcessor/RegistryProcessor.cabal
+  RegistryProcessor/Setup.hs
+  RegistryProcessor/src/DeclarationParser.hs
+  RegistryProcessor/src/Main.hs
+  RegistryProcessor/src/ManPages.hs
+  RegistryProcessor/src/MangledRegistry.hs
+  RegistryProcessor/src/Registry.hs
 
 flag UseNativeWindowsLibraries
-   description:
-      When compiling under Windows, use the native libraries instead of e.g. the
-      ones coming with Cygwin.
+  description:
+    When compiling under Windows, use the native libraries instead of e.g. the
+    ones coming with Cygwin.
 
 flag UseGlXGetProcAddress
-   description:
-      Use glXGetProcAddress instead of dlsym on non-Windows/-Darwin platforms.
+  description:
+    Use glXGetProcAddress instead of dlsym on non-Windows/-Darwin/-Android platforms.
 
+flag UseGLES2
+  description:
+    Use OpenGL ES 2.x instead of OpenGL ES 3.x on Android.
+
+flag OsAndroid
+  description:
+    Compile for Android. This flag goes away when cabal supports os(android).
+  default:
+    False
+
 library
-   exposed-modules:
-      Graphics.Rendering.OpenGL.Raw,
-      Graphics.Rendering.OpenGL.Raw.ARB,
-      Graphics.Rendering.OpenGL.Raw.ARB.ColorBufferFloat,
-      Graphics.Rendering.OpenGL.Raw.ARB.Compatibility,
-      Graphics.Rendering.OpenGL.Raw.ARB.CopyBuffer,
-      Graphics.Rendering.OpenGL.Raw.ARB.CreateContextProfile,
-      Graphics.Rendering.OpenGL.Raw.ARB.DepthBufferFloat,
-      Graphics.Rendering.OpenGL.Raw.ARB.DepthClamp,
-      Graphics.Rendering.OpenGL.Raw.ARB.DepthTexture,
-      Graphics.Rendering.OpenGL.Raw.ARB.DrawBuffers,
-      Graphics.Rendering.OpenGL.Raw.ARB.DrawBuffersBlend,
-      Graphics.Rendering.OpenGL.Raw.ARB.DrawElementsBaseVertex,
-      Graphics.Rendering.OpenGL.Raw.ARB.DrawInstanced,
-      Graphics.Rendering.OpenGL.Raw.ARB.FragmentProgram,
-      Graphics.Rendering.OpenGL.Raw.ARB.FragmentShader,
-      Graphics.Rendering.OpenGL.Raw.ARB.FramebufferObject,
-      Graphics.Rendering.OpenGL.Raw.ARB.FramebufferSRGB,
-      Graphics.Rendering.OpenGL.Raw.ARB.GeometryShader4,
-      Graphics.Rendering.OpenGL.Raw.ARB.HalfFloatPixel,
-      Graphics.Rendering.OpenGL.Raw.ARB.HalfFloatVertex,
-      Graphics.Rendering.OpenGL.Raw.ARB.InstancedArrays,
-      Graphics.Rendering.OpenGL.Raw.ARB.MapBufferRange,
-      Graphics.Rendering.OpenGL.Raw.ARB.MatrixPalette,
-      Graphics.Rendering.OpenGL.Raw.ARB.Multisample,
-      Graphics.Rendering.OpenGL.Raw.ARB.Multitexture,
-      Graphics.Rendering.OpenGL.Raw.ARB.OcclusionQuery,
-      Graphics.Rendering.OpenGL.Raw.ARB.PixelBufferObject,
-      Graphics.Rendering.OpenGL.Raw.ARB.PointParameters,
-      Graphics.Rendering.OpenGL.Raw.ARB.PointSprite,
-      Graphics.Rendering.OpenGL.Raw.ARB.ProvokingVertex,
-      Graphics.Rendering.OpenGL.Raw.ARB.SampleShading,
-      Graphics.Rendering.OpenGL.Raw.ARB.SeamlessCubeMap,
-      Graphics.Rendering.OpenGL.Raw.ARB.ShaderObjects,
-      Graphics.Rendering.OpenGL.Raw.ARB.ShadingLanguage100,
-      Graphics.Rendering.OpenGL.Raw.ARB.Shadow,
-      Graphics.Rendering.OpenGL.Raw.ARB.ShadowAmbient,
-      Graphics.Rendering.OpenGL.Raw.ARB.Sync,
-      Graphics.Rendering.OpenGL.Raw.ARB.TextureBorderClamp,
-      Graphics.Rendering.OpenGL.Raw.ARB.TextureBufferObject,
-      Graphics.Rendering.OpenGL.Raw.ARB.TextureCompression,
-      Graphics.Rendering.OpenGL.Raw.ARB.TextureCompressionRGTC,
-      Graphics.Rendering.OpenGL.Raw.ARB.TextureCubeMap,
-      Graphics.Rendering.OpenGL.Raw.ARB.TextureCubeMapArray,
-      Graphics.Rendering.OpenGL.Raw.ARB.TextureEnvAdd,
-      Graphics.Rendering.OpenGL.Raw.ARB.TextureEnvCombine,
-      Graphics.Rendering.OpenGL.Raw.ARB.TextureEnvCrossbar,
-      Graphics.Rendering.OpenGL.Raw.ARB.TextureEnvDot3,
-      Graphics.Rendering.OpenGL.Raw.ARB.TextureFloat,
-      Graphics.Rendering.OpenGL.Raw.ARB.TextureGather,
-      Graphics.Rendering.OpenGL.Raw.ARB.TextureMirroredRepeat,
-      Graphics.Rendering.OpenGL.Raw.ARB.TextureMultisample,
-      Graphics.Rendering.OpenGL.Raw.ARB.TextureRG,
-      Graphics.Rendering.OpenGL.Raw.ARB.TextureRectangle,
-      Graphics.Rendering.OpenGL.Raw.ARB.TransposeMatrix,
-      Graphics.Rendering.OpenGL.Raw.ARB.UniformBufferObject,
-      Graphics.Rendering.OpenGL.Raw.ARB.VertexArrayObject,
-      Graphics.Rendering.OpenGL.Raw.ARB.VertexBlend,
-      Graphics.Rendering.OpenGL.Raw.ARB.VertexBufferObject,
-      Graphics.Rendering.OpenGL.Raw.ARB.VertexProgram,
-      Graphics.Rendering.OpenGL.Raw.ARB.VertexShader,
-      Graphics.Rendering.OpenGL.Raw.ARB.WindowPos,
-      Graphics.Rendering.OpenGL.Raw.Core31,
-      Graphics.Rendering.OpenGL.Raw.Core32,
-      Graphics.Rendering.OpenGL.Raw.EXT,
-      Graphics.Rendering.OpenGL.Raw.EXT.Abgr,
-      Graphics.Rendering.OpenGL.Raw.EXT.Bgra,
-      Graphics.Rendering.OpenGL.Raw.EXT.BindableUniform,
-      Graphics.Rendering.OpenGL.Raw.EXT.BlendColor,
-      Graphics.Rendering.OpenGL.Raw.EXT.BlendEquationSeparate,
-      Graphics.Rendering.OpenGL.Raw.EXT.BlendFuncSeparate,
-      Graphics.Rendering.OpenGL.Raw.EXT.BlendMinmax,
-      Graphics.Rendering.OpenGL.Raw.EXT.BlendSubtract,
-      Graphics.Rendering.OpenGL.Raw.EXT.ClipVolumeHint,
-      Graphics.Rendering.OpenGL.Raw.EXT.Cmyka,
-      Graphics.Rendering.OpenGL.Raw.EXT.ColorSubtable,
-      Graphics.Rendering.OpenGL.Raw.EXT.CompiledVertexArray,
-      Graphics.Rendering.OpenGL.Raw.EXT.Convolution,
-      Graphics.Rendering.OpenGL.Raw.EXT.CoordinateFrame,
-      Graphics.Rendering.OpenGL.Raw.EXT.CopyTexture,
-      Graphics.Rendering.OpenGL.Raw.EXT.CullVertex,
-      Graphics.Rendering.OpenGL.Raw.EXT.DepthBoundsTest,
-      Graphics.Rendering.OpenGL.Raw.EXT.DirectStateAccess,
-      Graphics.Rendering.OpenGL.Raw.EXT.DrawRangeElements,
-      Graphics.Rendering.OpenGL.Raw.EXT.FogCoord,
-      Graphics.Rendering.OpenGL.Raw.EXT.FourTwoTwoPixels,
-      Graphics.Rendering.OpenGL.Raw.EXT.FragmentLighting,
-      Graphics.Rendering.OpenGL.Raw.EXT.FramebufferObject,
-      Graphics.Rendering.OpenGL.Raw.EXT.FramebufferSRGB,
-      Graphics.Rendering.OpenGL.Raw.EXT.GeometryShader4,
-      Graphics.Rendering.OpenGL.Raw.EXT.GpuProgramParameters,
-      Graphics.Rendering.OpenGL.Raw.EXT.Histogram,
-      Graphics.Rendering.OpenGL.Raw.EXT.IndexArrayFormats,
-      Graphics.Rendering.OpenGL.Raw.EXT.IndexFunc,
-      Graphics.Rendering.OpenGL.Raw.EXT.IndexMaterial,
-      Graphics.Rendering.OpenGL.Raw.EXT.LightTexture,
-      Graphics.Rendering.OpenGL.Raw.EXT.MultiDrawArrays,
-      Graphics.Rendering.OpenGL.Raw.EXT.Multisample,
-      Graphics.Rendering.OpenGL.Raw.EXT.PackedFloat,
-      Graphics.Rendering.OpenGL.Raw.EXT.PackedPixels,
-      Graphics.Rendering.OpenGL.Raw.EXT.PalettedTexture,
-      Graphics.Rendering.OpenGL.Raw.EXT.PixelTransform,
-      Graphics.Rendering.OpenGL.Raw.EXT.PointParameters,
-      Graphics.Rendering.OpenGL.Raw.EXT.PolygonOffset,
-      Graphics.Rendering.OpenGL.Raw.EXT.ProvokingVertex,
-      Graphics.Rendering.OpenGL.Raw.EXT.RescaleNormal,
-      Graphics.Rendering.OpenGL.Raw.EXT.SceneMarker,
-      Graphics.Rendering.OpenGL.Raw.EXT.SecondaryColor,
-      Graphics.Rendering.OpenGL.Raw.EXT.SeparateSpecularColor,
-      Graphics.Rendering.OpenGL.Raw.EXT.SharedTexturePalette,
-      Graphics.Rendering.OpenGL.Raw.EXT.StencilClearTag,
-      Graphics.Rendering.OpenGL.Raw.EXT.StencilTwoSide,
-      Graphics.Rendering.OpenGL.Raw.EXT.StencilWrap,
-      Graphics.Rendering.OpenGL.Raw.EXT.Subtexture,
-      Graphics.Rendering.OpenGL.Raw.EXT.Texture,
-      Graphics.Rendering.OpenGL.Raw.EXT.Texture3D,
-      Graphics.Rendering.OpenGL.Raw.EXT.TextureCompressionDxt1,
-      Graphics.Rendering.OpenGL.Raw.EXT.TextureCompressionLatc,
-      Graphics.Rendering.OpenGL.Raw.EXT.TextureCompressionS3tc,
-      Graphics.Rendering.OpenGL.Raw.EXT.TextureEnvAdd,
-      Graphics.Rendering.OpenGL.Raw.EXT.TextureEnvCombine,
-      Graphics.Rendering.OpenGL.Raw.EXT.TextureEnvDot3,
-      Graphics.Rendering.OpenGL.Raw.EXT.TextureFilterAnisotropic,
-      Graphics.Rendering.OpenGL.Raw.EXT.TextureInteger,
-      Graphics.Rendering.OpenGL.Raw.EXT.TextureLodBias,
-      Graphics.Rendering.OpenGL.Raw.EXT.TextureMirrorClamp,
-      Graphics.Rendering.OpenGL.Raw.EXT.TextureObject,
-      Graphics.Rendering.OpenGL.Raw.EXT.TexturePerturbNormal,
-      Graphics.Rendering.OpenGL.Raw.EXT.TextureSRGB,
-      Graphics.Rendering.OpenGL.Raw.EXT.TextureSwizzle,
-      Graphics.Rendering.OpenGL.Raw.EXT.TimerQuery,
-      Graphics.Rendering.OpenGL.Raw.EXT.VertexArray,
-      Graphics.Rendering.OpenGL.Raw.EXT.VertexShader,
-      Graphics.Rendering.OpenGL.Raw.EXT.VertexWeighting,
-      Graphics.Rendering.OpenGL.Raw.GetProcAddress,
-      Graphics.Rendering.OpenGL.Raw.NV,
-      Graphics.Rendering.OpenGL.Raw.NV.ConditionalRender,
-      Graphics.Rendering.OpenGL.Raw.NV.CopyDepthToColor,
-      Graphics.Rendering.OpenGL.Raw.NV.DepthBufferFloat,
-      Graphics.Rendering.OpenGL.Raw.NV.DepthClamp,
-      Graphics.Rendering.OpenGL.Raw.NV.ExplicitMultisample,
-      Graphics.Rendering.OpenGL.Raw.NV.Fence,
-      Graphics.Rendering.OpenGL.Raw.NV.FloatBuffer,
-      Graphics.Rendering.OpenGL.Raw.NV.FogDistance,
-      Graphics.Rendering.OpenGL.Raw.NV.FramebufferMultisampleCoverage,
-      Graphics.Rendering.OpenGL.Raw.NV.FragmentProgram,
-      Graphics.Rendering.OpenGL.Raw.NV.FragmentProgram2,
-      Graphics.Rendering.OpenGL.Raw.NV.GeometryProgram4,
-      Graphics.Rendering.OpenGL.Raw.NV.GpuProgram4,
-      Graphics.Rendering.OpenGL.Raw.NV.HalfFloat,
-      Graphics.Rendering.OpenGL.Raw.NV.LightMaxExponent,
-      Graphics.Rendering.OpenGL.Raw.NV.MultisampleFilterHint,
-      Graphics.Rendering.OpenGL.Raw.NV.OcclusionQuery,
-      Graphics.Rendering.OpenGL.Raw.NV.PackedDepthStencil,
-      Graphics.Rendering.OpenGL.Raw.NV.ParameterBufferObject,
-      Graphics.Rendering.OpenGL.Raw.NV.PixelDataRange,
-      Graphics.Rendering.OpenGL.Raw.NV.PointSprite,
-      Graphics.Rendering.OpenGL.Raw.NV.PresentVideo,
-      Graphics.Rendering.OpenGL.Raw.NV.PrimitiveRestart,
-      Graphics.Rendering.OpenGL.Raw.NV.RegisterCombiners,
-      Graphics.Rendering.OpenGL.Raw.NV.RegisterCombiners2,
-      Graphics.Rendering.OpenGL.Raw.NV.TexgenEmboss,
-      Graphics.Rendering.OpenGL.Raw.NV.TexgenReflection,
-      Graphics.Rendering.OpenGL.Raw.NV.TextureCompressionVtc,
-      Graphics.Rendering.OpenGL.Raw.NV.TextureEnvCombine4,
-      Graphics.Rendering.OpenGL.Raw.NV.TextureExpandNormal,
-      Graphics.Rendering.OpenGL.Raw.NV.TextureRectangle,
-      Graphics.Rendering.OpenGL.Raw.NV.TextureShader,
-      Graphics.Rendering.OpenGL.Raw.NV.TextureShader2,
-      Graphics.Rendering.OpenGL.Raw.NV.TextureShader3,
-      Graphics.Rendering.OpenGL.Raw.NV.TransformFeedback,
-      Graphics.Rendering.OpenGL.Raw.NV.TransformFeedback2,
-      Graphics.Rendering.OpenGL.Raw.NV.VertexArrayRange,
-      Graphics.Rendering.OpenGL.Raw.NV.VertexArrayRange2,
-      Graphics.Rendering.OpenGL.Raw.NV.VertexProgram,
-      Graphics.Rendering.OpenGL.Raw.NV.VertexProgram2Option,
-      Graphics.Rendering.OpenGL.Raw.NV.VertexProgram3,
-      Graphics.Rendering.OpenGL.Raw.NV.VertexProgram4
-   other-modules:
-      Graphics.Rendering.OpenGL.Raw.ARB.Compatibility.Functions,
-      Graphics.Rendering.OpenGL.Raw.ARB.Compatibility.Tokens,
-      Graphics.Rendering.OpenGL.Raw.Core31.Functions,
-      Graphics.Rendering.OpenGL.Raw.Core31.Tokens,
-      Graphics.Rendering.OpenGL.Raw.Core31.Types,
-      Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal,
-      Graphics.Rendering.OpenGL.Raw.Extensions
-   c-sources:
-      cbits/HsOpenGLRaw.c
-   hs-Source-Dirs: src
-   include-dirs: include
-   build-depends: base >= 3 && < 5
-   ghc-options: -Wall -fno-warn-duplicate-exports
-   if impl(ghc)
-      build-depends: ghc-prim
-   if os(windows) && flag(UseNativeWindowsLibraries)
+  exposed-modules:
+    Graphics.GL
+    Graphics.GL.AMD
+    Graphics.GL.AMD.BlendMinmaxFactor
+    Graphics.GL.AMD.DebugOutput
+    Graphics.GL.AMD.DepthClampSeparate
+    Graphics.GL.AMD.DrawBuffersBlend
+    Graphics.GL.AMD.FramebufferMultisampleAdvanced
+    Graphics.GL.AMD.FramebufferSamplePositions
+    Graphics.GL.AMD.GPUShaderHalfFloat
+    Graphics.GL.AMD.GPUShaderInt64
+    Graphics.GL.AMD.InterleavedElements
+    Graphics.GL.AMD.MultiDrawIndirect
+    Graphics.GL.AMD.NameGenDelete
+    Graphics.GL.AMD.OcclusionQueryEvent
+    Graphics.GL.AMD.PerformanceMonitor
+    Graphics.GL.AMD.PinnedMemory
+    Graphics.GL.AMD.QueryBufferObject
+    Graphics.GL.AMD.SamplePositions
+    Graphics.GL.AMD.SeamlessCubemapPerTexture
+    Graphics.GL.AMD.SparseTexture
+    Graphics.GL.AMD.StencilOperationExtended
+    Graphics.GL.AMD.TransformFeedback4
+    Graphics.GL.AMD.VertexShaderTessellator
+    Graphics.GL.APPLE
+    Graphics.GL.APPLE.AuxDepthStencil
+    Graphics.GL.APPLE.ClientStorage
+    Graphics.GL.APPLE.ElementArray
+    Graphics.GL.APPLE.Fence
+    Graphics.GL.APPLE.FloatPixels
+    Graphics.GL.APPLE.FlushBufferRange
+    Graphics.GL.APPLE.ObjectPurgeable
+    Graphics.GL.APPLE.RGB422
+    Graphics.GL.APPLE.RowBytes
+    Graphics.GL.APPLE.SpecularVector
+    Graphics.GL.APPLE.TextureRange
+    Graphics.GL.APPLE.TransformHint
+    Graphics.GL.APPLE.VertexArrayObject
+    Graphics.GL.APPLE.VertexArrayRange
+    Graphics.GL.APPLE.VertexProgramEvaluators
+    Graphics.GL.APPLE.YCbCr422
+    Graphics.GL.ARB
+    Graphics.GL.ARB.BaseInstance
+    Graphics.GL.ARB.BindlessTexture
+    Graphics.GL.ARB.BlendFuncExtended
+    Graphics.GL.ARB.BufferStorage
+    Graphics.GL.ARB.CLEvent
+    Graphics.GL.ARB.ClearBufferObject
+    Graphics.GL.ARB.ClearTexture
+    Graphics.GL.ARB.ClipControl
+    Graphics.GL.ARB.ColorBufferFloat
+    Graphics.GL.ARB.CompressedTexturePixelStorage
+    Graphics.GL.ARB.ComputeShader
+    Graphics.GL.ARB.ComputeVariableGroupSize
+    Graphics.GL.ARB.ConditionalRenderInverted
+    Graphics.GL.ARB.CopyBuffer
+    Graphics.GL.ARB.CopyImage
+    Graphics.GL.ARB.CullDistance
+    Graphics.GL.ARB.DebugOutput
+    Graphics.GL.ARB.DepthBufferFloat
+    Graphics.GL.ARB.DepthClamp
+    Graphics.GL.ARB.DepthTexture
+    Graphics.GL.ARB.DirectStateAccess
+    Graphics.GL.ARB.DrawBuffers
+    Graphics.GL.ARB.DrawBuffersBlend
+    Graphics.GL.ARB.DrawElementsBaseVertex
+    Graphics.GL.ARB.DrawIndirect
+    Graphics.GL.ARB.DrawInstanced
+    Graphics.GL.ARB.ES2Compatibility
+    Graphics.GL.ARB.ES31Compatibility
+    Graphics.GL.ARB.ES32Compatibility
+    Graphics.GL.ARB.ES3Compatibility
+    Graphics.GL.ARB.EnhancedLayouts
+    Graphics.GL.ARB.ExplicitUniformLocation
+    Graphics.GL.ARB.FragmentProgram
+    Graphics.GL.ARB.FragmentShader
+    Graphics.GL.ARB.FramebufferNoAttachments
+    Graphics.GL.ARB.FramebufferObjectCompatibility
+    Graphics.GL.ARB.FramebufferObjectCore
+    Graphics.GL.ARB.FramebufferSRGB
+    Graphics.GL.ARB.GPUShader5
+    Graphics.GL.ARB.GPUShaderFP64
+    Graphics.GL.ARB.GPUShaderInt64
+    Graphics.GL.ARB.GeometryShader4
+    Graphics.GL.ARB.GetProgramBinary
+    Graphics.GL.ARB.GetTextureSubImage
+    Graphics.GL.ARB.GlSpirv
+    Graphics.GL.ARB.HalfFloatPixel
+    Graphics.GL.ARB.HalfFloatVertex
+    Graphics.GL.ARB.ImagingCompatibility
+    Graphics.GL.ARB.ImagingCore
+    Graphics.GL.ARB.IndirectParameters
+    Graphics.GL.ARB.InstancedArrays
+    Graphics.GL.ARB.InternalformatQuery
+    Graphics.GL.ARB.InternalformatQuery2
+    Graphics.GL.ARB.InvalidateSubdata
+    Graphics.GL.ARB.MapBufferAlignment
+    Graphics.GL.ARB.MapBufferRange
+    Graphics.GL.ARB.MatrixPalette
+    Graphics.GL.ARB.MultiBind
+    Graphics.GL.ARB.MultiDrawIndirect
+    Graphics.GL.ARB.Multisample
+    Graphics.GL.ARB.Multitexture
+    Graphics.GL.ARB.OcclusionQuery
+    Graphics.GL.ARB.OcclusionQuery2
+    Graphics.GL.ARB.ParallelShaderCompile
+    Graphics.GL.ARB.PipelineStatisticsQuery
+    Graphics.GL.ARB.PixelBufferObject
+    Graphics.GL.ARB.PointParameters
+    Graphics.GL.ARB.PointSprite
+    Graphics.GL.ARB.PolygonOffsetClamp
+    Graphics.GL.ARB.ProgramInterfaceQuery
+    Graphics.GL.ARB.ProvokingVertex
+    Graphics.GL.ARB.QueryBufferObject
+    Graphics.GL.ARB.RobustnessCompatibility
+    Graphics.GL.ARB.RobustnessCore
+    Graphics.GL.ARB.SampleLocations
+    Graphics.GL.ARB.SampleShading
+    Graphics.GL.ARB.SamplerObjects
+    Graphics.GL.ARB.SeamlessCubeMap
+    Graphics.GL.ARB.SeamlessCubemapPerTexture
+    Graphics.GL.ARB.SeparateShaderObjects
+    Graphics.GL.ARB.ShaderAtomicCounters
+    Graphics.GL.ARB.ShaderImageLoadStore
+    Graphics.GL.ARB.ShaderObjects
+    Graphics.GL.ARB.ShaderStorageBufferObject
+    Graphics.GL.ARB.ShaderSubroutine
+    Graphics.GL.ARB.ShadingLanguage100
+    Graphics.GL.ARB.ShadingLanguageInclude
+    Graphics.GL.ARB.Shadow
+    Graphics.GL.ARB.ShadowAmbient
+    Graphics.GL.ARB.SparseBuffer
+    Graphics.GL.ARB.SparseTexture
+    Graphics.GL.ARB.SpirvExtensions
+    Graphics.GL.ARB.StencilTexturing
+    Graphics.GL.ARB.Sync
+    Graphics.GL.ARB.TessellationShader
+    Graphics.GL.ARB.TextureBarrier
+    Graphics.GL.ARB.TextureBorderClamp
+    Graphics.GL.ARB.TextureBufferObject
+    Graphics.GL.ARB.TextureBufferObjectRGB32
+    Graphics.GL.ARB.TextureBufferRange
+    Graphics.GL.ARB.TextureCompression
+    Graphics.GL.ARB.TextureCompressionBPTC
+    Graphics.GL.ARB.TextureCompressionRGTC
+    Graphics.GL.ARB.TextureCubeMap
+    Graphics.GL.ARB.TextureCubeMapArray
+    Graphics.GL.ARB.TextureEnvCombine
+    Graphics.GL.ARB.TextureEnvDot3
+    Graphics.GL.ARB.TextureFilterAnisotropic
+    Graphics.GL.ARB.TextureFilterMinmax
+    Graphics.GL.ARB.TextureFloat
+    Graphics.GL.ARB.TextureGather
+    Graphics.GL.ARB.TextureMirrorClampToEdge
+    Graphics.GL.ARB.TextureMirroredRepeat
+    Graphics.GL.ARB.TextureMultisample
+    Graphics.GL.ARB.TextureRG
+    Graphics.GL.ARB.TextureRGB10A2UI
+    Graphics.GL.ARB.TextureRectangle
+    Graphics.GL.ARB.TextureStencil8
+    Graphics.GL.ARB.TextureStorage
+    Graphics.GL.ARB.TextureStorageMultisample
+    Graphics.GL.ARB.TextureSwizzle
+    Graphics.GL.ARB.TextureView
+    Graphics.GL.ARB.TimerQuery
+    Graphics.GL.ARB.TransformFeedback2
+    Graphics.GL.ARB.TransformFeedback3
+    Graphics.GL.ARB.TransformFeedbackInstanced
+    Graphics.GL.ARB.TransformFeedbackOverflowQuery
+    Graphics.GL.ARB.TransposeMatrix
+    Graphics.GL.ARB.UniformBufferObject
+    Graphics.GL.ARB.VertexArrayBGRA
+    Graphics.GL.ARB.VertexArrayObject
+    Graphics.GL.ARB.VertexAttrib64Bit
+    Graphics.GL.ARB.VertexAttribBinding
+    Graphics.GL.ARB.VertexBlend
+    Graphics.GL.ARB.VertexBufferObject
+    Graphics.GL.ARB.VertexProgram
+    Graphics.GL.ARB.VertexShader
+    Graphics.GL.ARB.VertexType10f11f11fRev
+    Graphics.GL.ARB.VertexType2101010RevCompatibility
+    Graphics.GL.ARB.VertexType2101010RevCore
+    Graphics.GL.ARB.ViewportArray
+    Graphics.GL.ARB.WindowPos
+    Graphics.GL.ATI
+    Graphics.GL.ATI.DrawBuffers
+    Graphics.GL.ATI.ElementArray
+    Graphics.GL.ATI.EnvmapBumpmap
+    Graphics.GL.ATI.FragmentShader
+    Graphics.GL.ATI.MapObjectBuffer
+    Graphics.GL.ATI.Meminfo
+    Graphics.GL.ATI.PNTriangles
+    Graphics.GL.ATI.PixelFormatFloat
+    Graphics.GL.ATI.SeparateStencil
+    Graphics.GL.ATI.TextFragmentShader
+    Graphics.GL.ATI.TextureEnvCombine3
+    Graphics.GL.ATI.TextureFloat
+    Graphics.GL.ATI.TextureMirrorOnce
+    Graphics.GL.ATI.VertexArrayObject
+    Graphics.GL.ATI.VertexAttribArrayObject
+    Graphics.GL.ATI.VertexStreams
+    Graphics.GL.Compatibility30
+    Graphics.GL.Compatibility31
+    Graphics.GL.Compatibility32
+    Graphics.GL.Compatibility33
+    Graphics.GL.Compatibility40
+    Graphics.GL.Compatibility41
+    Graphics.GL.Compatibility42
+    Graphics.GL.Compatibility43
+    Graphics.GL.Compatibility44
+    Graphics.GL.Compatibility45
+    Graphics.GL.Compatibility46
+    Graphics.GL.Core30
+    Graphics.GL.Core31
+    Graphics.GL.Core32
+    Graphics.GL.Core33
+    Graphics.GL.Core40
+    Graphics.GL.Core41
+    Graphics.GL.Core42
+    Graphics.GL.Core43
+    Graphics.GL.Core44
+    Graphics.GL.Core45
+    Graphics.GL.Core46
+    Graphics.GL.EXT
+    Graphics.GL.EXT.ABGR
+    Graphics.GL.EXT.BGRA
+    Graphics.GL.EXT.BindableUniform
+    Graphics.GL.EXT.BlendColor
+    Graphics.GL.EXT.BlendEquationSeparate
+    Graphics.GL.EXT.BlendFuncSeparate
+    Graphics.GL.EXT.BlendMinmax
+    Graphics.GL.EXT.BlendSubtract
+    Graphics.GL.EXT.CMYKA
+    Graphics.GL.EXT.ClipVolumeHint
+    Graphics.GL.EXT.ColorSubtable
+    Graphics.GL.EXT.CompiledVertexArray
+    Graphics.GL.EXT.Convolution
+    Graphics.GL.EXT.CoordinateFrame
+    Graphics.GL.EXT.CopyTexture
+    Graphics.GL.EXT.CullVertex
+    Graphics.GL.EXT.DebugLabel
+    Graphics.GL.EXT.DebugMarker
+    Graphics.GL.EXT.DepthBoundsTest
+    Graphics.GL.EXT.DirectStateAccess
+    Graphics.GL.EXT.DrawBuffers2
+    Graphics.GL.EXT.DrawInstanced
+    Graphics.GL.EXT.DrawRangeElements
+    Graphics.GL.EXT.EglImageStorage
+    Graphics.GL.EXT.ExternalBuffer
+    Graphics.GL.EXT.FogCoord
+    Graphics.GL.EXT.FourTwoTwoPixels
+    Graphics.GL.EXT.FramebufferBlit
+    Graphics.GL.EXT.FramebufferMultisample
+    Graphics.GL.EXT.FramebufferMultisampleBlitScaled
+    Graphics.GL.EXT.FramebufferObject
+    Graphics.GL.EXT.FramebufferSRGB
+    Graphics.GL.EXT.GPUProgramParameters
+    Graphics.GL.EXT.GPUShader4
+    Graphics.GL.EXT.GeometryShader4
+    Graphics.GL.EXT.Histogram
+    Graphics.GL.EXT.IndexArrayFormats
+    Graphics.GL.EXT.IndexFunc
+    Graphics.GL.EXT.IndexMaterial
+    Graphics.GL.EXT.LightTexture
+    Graphics.GL.EXT.MemoryObject
+    Graphics.GL.EXT.MemoryObjectFd
+    Graphics.GL.EXT.MemoryObjectWin32
+    Graphics.GL.EXT.MultiDrawArrays
+    Graphics.GL.EXT.Multisample
+    Graphics.GL.EXT.PackedDepthStencil
+    Graphics.GL.EXT.PackedFloat
+    Graphics.GL.EXT.PackedPixels
+    Graphics.GL.EXT.PalettedTexture
+    Graphics.GL.EXT.PixelBufferObject
+    Graphics.GL.EXT.PixelTransform
+    Graphics.GL.EXT.PointParameters
+    Graphics.GL.EXT.PolygonOffset
+    Graphics.GL.EXT.PolygonOffsetClamp
+    Graphics.GL.EXT.ProvokingVertex
+    Graphics.GL.EXT.RasterMultisample
+    Graphics.GL.EXT.RescaleNormal
+    Graphics.GL.EXT.SecondaryColor
+    Graphics.GL.EXT.Semaphore
+    Graphics.GL.EXT.SemaphoreFd
+    Graphics.GL.EXT.SemaphoreWin32
+    Graphics.GL.EXT.SeparateShaderObjects
+    Graphics.GL.EXT.SeparateSpecularColor
+    Graphics.GL.EXT.ShaderFramebufferFetch
+    Graphics.GL.EXT.ShaderFramebufferFetchNonCoherent
+    Graphics.GL.EXT.ShaderImageLoadStore
+    Graphics.GL.EXT.SharedTexturePalette
+    Graphics.GL.EXT.StencilClearTag
+    Graphics.GL.EXT.StencilTwoSide
+    Graphics.GL.EXT.StencilWrap
+    Graphics.GL.EXT.Subtexture
+    Graphics.GL.EXT.Texture
+    Graphics.GL.EXT.Texture3D
+    Graphics.GL.EXT.TextureArray
+    Graphics.GL.EXT.TextureBufferObject
+    Graphics.GL.EXT.TextureCompressionLATC
+    Graphics.GL.EXT.TextureCompressionRGTC
+    Graphics.GL.EXT.TextureCompressionS3TC
+    Graphics.GL.EXT.TextureCubeMap
+    Graphics.GL.EXT.TextureEnvCombine
+    Graphics.GL.EXT.TextureEnvDot3
+    Graphics.GL.EXT.TextureFilterAnisotropic
+    Graphics.GL.EXT.TextureFilterMinmax
+    Graphics.GL.EXT.TextureInteger
+    Graphics.GL.EXT.TextureLODBias
+    Graphics.GL.EXT.TextureMirrorClamp
+    Graphics.GL.EXT.TextureObject
+    Graphics.GL.EXT.TexturePerturbNormal
+    Graphics.GL.EXT.TextureSNorm
+    Graphics.GL.EXT.TextureSRGB
+    Graphics.GL.EXT.TextureSRGBDecode
+    Graphics.GL.EXT.TextureSRGBR8
+    Graphics.GL.EXT.TextureSharedExponent
+    Graphics.GL.EXT.TextureSwizzle
+    Graphics.GL.EXT.TimerQuery
+    Graphics.GL.EXT.TransformFeedback
+    Graphics.GL.EXT.VertexArray
+    Graphics.GL.EXT.VertexArrayBGRA
+    Graphics.GL.EXT.VertexAttrib64Bit
+    Graphics.GL.EXT.VertexShader
+    Graphics.GL.EXT.VertexWeighting
+    Graphics.GL.EXT.Win32KeyedMutex
+    Graphics.GL.EXT.WindowRectangles
+    Graphics.GL.EXT.X11SyncObject
+    Graphics.GL.Functions
+    Graphics.GL.GREMEDY
+    Graphics.GL.GREMEDY.FrameTerminator
+    Graphics.GL.GREMEDY.StringMarker
+    Graphics.GL.GetProcAddress
+    Graphics.GL.Groups
+    Graphics.GL.HP
+    Graphics.GL.HP.ConvolutionBorderModes
+    Graphics.GL.HP.ImageTransform
+    Graphics.GL.HP.OcclusionTest
+    Graphics.GL.HP.TextureLighting
+    Graphics.GL.IBM
+    Graphics.GL.IBM.CullVertex
+    Graphics.GL.IBM.MultimodeDrawArrays
+    Graphics.GL.IBM.RasterposClip
+    Graphics.GL.IBM.StaticData
+    Graphics.GL.IBM.TextureMirroredRepeat
+    Graphics.GL.IBM.VertexArrayLists
+    Graphics.GL.INGR
+    Graphics.GL.INGR.BlendFuncSeparate
+    Graphics.GL.INGR.ColorClamp
+    Graphics.GL.INGR.InterlaceRead
+    Graphics.GL.INTEL
+    Graphics.GL.INTEL.BlackholeRender
+    Graphics.GL.INTEL.ConservativeRasterization
+    Graphics.GL.INTEL.FramebufferCmaa
+    Graphics.GL.INTEL.MapTexture
+    Graphics.GL.INTEL.ParallelArrays
+    Graphics.GL.INTEL.PerformanceQuery
+    Graphics.GL.KHR
+    Graphics.GL.KHR.BlendEquationAdvanced
+    Graphics.GL.KHR.BlendEquationAdvancedCoherent
+    Graphics.GL.KHR.ContextFlushControl
+    Graphics.GL.KHR.DebugCompatibility
+    Graphics.GL.KHR.DebugCore
+    Graphics.GL.KHR.NoError
+    Graphics.GL.KHR.ParallelShaderCompile
+    Graphics.GL.KHR.Robustness
+    Graphics.GL.KHR.ShaderSubgroup
+    Graphics.GL.KHR.TextureCompressionASTCHDR
+    Graphics.GL.KHR.TextureCompressionASTCLDR
+    Graphics.GL.MESA
+    Graphics.GL.MESA.FramebufferFlipY
+    Graphics.GL.MESA.PackInvert
+    Graphics.GL.MESA.ProgramBinaryFormats
+    Graphics.GL.MESA.ResizeBuffers
+    Graphics.GL.MESA.TileRasterOrder
+    Graphics.GL.MESA.WindowPos
+    Graphics.GL.MESA.YCbCrTexture
+    Graphics.GL.MESAX
+    Graphics.GL.MESAX.TextureStack
+    Graphics.GL.NV
+    Graphics.GL.NV.AlphaToCoverageDitherControl
+    Graphics.GL.NV.BindlessMultiDrawIndirect
+    Graphics.GL.NV.BindlessMultiDrawIndirectCount
+    Graphics.GL.NV.BindlessTexture
+    Graphics.GL.NV.BlendEquationAdvanced
+    Graphics.GL.NV.BlendEquationAdvancedCoherent
+    Graphics.GL.NV.BlendMinmaxFactor
+    Graphics.GL.NV.ClipSpaceWScaling
+    Graphics.GL.NV.CommandList
+    Graphics.GL.NV.ComputeProgram5
+    Graphics.GL.NV.ConditionalRender
+    Graphics.GL.NV.ConservativeRaster
+    Graphics.GL.NV.ConservativeRasterDilate
+    Graphics.GL.NV.ConservativeRasterPreSnap
+    Graphics.GL.NV.ConservativeRasterPreSnapTriangles
+    Graphics.GL.NV.CopyDepthToColor
+    Graphics.GL.NV.CopyImage
+    Graphics.GL.NV.DeepTexture3D
+    Graphics.GL.NV.DepthBufferFloat
+    Graphics.GL.NV.DepthClamp
+    Graphics.GL.NV.DrawTexture
+    Graphics.GL.NV.DrawVulkanImage
+    Graphics.GL.NV.Evaluators
+    Graphics.GL.NV.ExplicitMultisample
+    Graphics.GL.NV.Fence
+    Graphics.GL.NV.FillRectangle
+    Graphics.GL.NV.FloatBuffer
+    Graphics.GL.NV.FogDistance
+    Graphics.GL.NV.FragmentCoverageToColor
+    Graphics.GL.NV.FragmentProgram
+    Graphics.GL.NV.FragmentProgram2
+    Graphics.GL.NV.FramebufferMixedSamples
+    Graphics.GL.NV.FramebufferMultisampleCoverage
+    Graphics.GL.NV.GPUMulticast
+    Graphics.GL.NV.GPUProgram4
+    Graphics.GL.NV.GPUProgram5
+    Graphics.GL.NV.GPUShader5
+    Graphics.GL.NV.GeometryProgram4
+    Graphics.GL.NV.HalfFloat
+    Graphics.GL.NV.InternalformatSampleQuery
+    Graphics.GL.NV.LightMaxExponent
+    Graphics.GL.NV.MemoryAttachment
+    Graphics.GL.NV.MeshShader
+    Graphics.GL.NV.MultisampleCoverage
+    Graphics.GL.NV.MultisampleFilterHint
+    Graphics.GL.NV.OcclusionQuery
+    Graphics.GL.NV.PackedDepthStencil
+    Graphics.GL.NV.ParameterBufferObject
+    Graphics.GL.NV.PathRenderingCompatibility
+    Graphics.GL.NV.PathRenderingCore
+    Graphics.GL.NV.PathRenderingSharedEdge
+    Graphics.GL.NV.PixelDataRange
+    Graphics.GL.NV.PointSprite
+    Graphics.GL.NV.PresentVideo
+    Graphics.GL.NV.PrimitiveRestart
+    Graphics.GL.NV.QueryResource
+    Graphics.GL.NV.QueryResourceTag
+    Graphics.GL.NV.RegisterCombiners
+    Graphics.GL.NV.RegisterCombiners2
+    Graphics.GL.NV.RepresentativeFragmentTest
+    Graphics.GL.NV.RobustnessVideoMemoryPurge
+    Graphics.GL.NV.SampleLocations
+    Graphics.GL.NV.ScissorExclusive
+    Graphics.GL.NV.ShaderBufferLoad
+    Graphics.GL.NV.ShaderBufferStore
+    Graphics.GL.NV.ShaderSubgroupPartitioned
+    Graphics.GL.NV.ShaderThreadGroup
+    Graphics.GL.NV.ShadingRateImage
+    Graphics.GL.NV.TessellationProgram5
+    Graphics.GL.NV.TexgenEmboss
+    Graphics.GL.NV.TexgenReflection
+    Graphics.GL.NV.TextureBarrier
+    Graphics.GL.NV.TextureEnvCombine4
+    Graphics.GL.NV.TextureExpandNormal
+    Graphics.GL.NV.TextureMultisample
+    Graphics.GL.NV.TextureRectangle
+    Graphics.GL.NV.TextureShader
+    Graphics.GL.NV.TextureShader2
+    Graphics.GL.NV.TextureShader3
+    Graphics.GL.NV.TransformFeedback
+    Graphics.GL.NV.TransformFeedback2
+    Graphics.GL.NV.UniformBufferUnifiedMemory
+    Graphics.GL.NV.VDPAUInterop
+    Graphics.GL.NV.VDPAUInterop2
+    Graphics.GL.NV.VertexArrayRange
+    Graphics.GL.NV.VertexArrayRange2
+    Graphics.GL.NV.VertexAttribInteger64Bit
+    Graphics.GL.NV.VertexBufferUnifiedMemory
+    Graphics.GL.NV.VertexProgram
+    Graphics.GL.NV.VertexProgram2Option
+    Graphics.GL.NV.VertexProgram3
+    Graphics.GL.NV.VertexProgram4
+    Graphics.GL.NV.VideoCapture
+    Graphics.GL.NV.ViewportSwizzle
+    Graphics.GL.NVX
+    Graphics.GL.NVX.ConditionalRender
+    Graphics.GL.NVX.GPUMemoryInfo
+    Graphics.GL.NVX.GPUMulticast2
+    Graphics.GL.NVX.LinkedGPUMulticast
+    Graphics.GL.NVX.ProgressFence
+    Graphics.GL.OES
+    Graphics.GL.OES.ByteCoordinates
+    Graphics.GL.OES.CompressedPalettedTexture
+    Graphics.GL.OES.FixedPoint
+    Graphics.GL.OES.QueryMatrix
+    Graphics.GL.OES.ReadFormat
+    Graphics.GL.OES.SinglePrecision
+    Graphics.GL.OML
+    Graphics.GL.OML.Interlace
+    Graphics.GL.OML.Resample
+    Graphics.GL.OML.Subsample
+    Graphics.GL.OVR
+    Graphics.GL.OVR.Multiview
+    Graphics.GL.PGI
+    Graphics.GL.PGI.MiscHints
+    Graphics.GL.PGI.VertexHints
+    Graphics.GL.REND
+    Graphics.GL.REND.ScreenCoordinates
+    Graphics.GL.S3
+    Graphics.GL.S3.S3TC
+    Graphics.GL.SGI
+    Graphics.GL.SGI.ColorMatrix
+    Graphics.GL.SGI.ColorTable
+    Graphics.GL.SGI.TextureColorTable
+    Graphics.GL.SGIS
+    Graphics.GL.SGIS.DetailTexture
+    Graphics.GL.SGIS.FogFunction
+    Graphics.GL.SGIS.GenerateMipmap
+    Graphics.GL.SGIS.Multisample
+    Graphics.GL.SGIS.PixelTexture
+    Graphics.GL.SGIS.PointLineTexgen
+    Graphics.GL.SGIS.PointParameters
+    Graphics.GL.SGIS.SharpenTexture
+    Graphics.GL.SGIS.Texture4D
+    Graphics.GL.SGIS.TextureBorderClamp
+    Graphics.GL.SGIS.TextureColorMask
+    Graphics.GL.SGIS.TextureEdgeClamp
+    Graphics.GL.SGIS.TextureFilter4
+    Graphics.GL.SGIS.TextureLOD
+    Graphics.GL.SGIS.TextureSelect
+    Graphics.GL.SGIX
+    Graphics.GL.SGIX.Async
+    Graphics.GL.SGIX.AsyncHistogram
+    Graphics.GL.SGIX.AsyncPixel
+    Graphics.GL.SGIX.BlendAlphaMinmax
+    Graphics.GL.SGIX.CalligraphicFragment
+    Graphics.GL.SGIX.Clipmap
+    Graphics.GL.SGIX.ConvolutionAccuracy
+    Graphics.GL.SGIX.DepthTexture
+    Graphics.GL.SGIX.FlushRaster
+    Graphics.GL.SGIX.FogOffset
+    Graphics.GL.SGIX.FragmentLighting
+    Graphics.GL.SGIX.Framezoom
+    Graphics.GL.SGIX.IglooInterface
+    Graphics.GL.SGIX.Instruments
+    Graphics.GL.SGIX.Interlace
+    Graphics.GL.SGIX.IrInstrument1
+    Graphics.GL.SGIX.ListPriority
+    Graphics.GL.SGIX.PixelTexture
+    Graphics.GL.SGIX.PixelTiles
+    Graphics.GL.SGIX.PolynomialFFD
+    Graphics.GL.SGIX.ReferencePlane
+    Graphics.GL.SGIX.Resample
+    Graphics.GL.SGIX.ScalebiasHint
+    Graphics.GL.SGIX.Shadow
+    Graphics.GL.SGIX.ShadowAmbient
+    Graphics.GL.SGIX.Sprite
+    Graphics.GL.SGIX.Subsample
+    Graphics.GL.SGIX.TagSampleBuffer
+    Graphics.GL.SGIX.TextureAddEnv
+    Graphics.GL.SGIX.TextureCoordinateClamp
+    Graphics.GL.SGIX.TextureLODBias
+    Graphics.GL.SGIX.TextureMultiBuffer
+    Graphics.GL.SGIX.TextureScaleBias
+    Graphics.GL.SGIX.VertexPreclip
+    Graphics.GL.SGIX.YCrCb
+    Graphics.GL.SGIX.YCrCbA
+    Graphics.GL.SUN
+    Graphics.GL.SUN.ConvolutionBorderModes
+    Graphics.GL.SUN.GlobalAlpha
+    Graphics.GL.SUN.MeshArray
+    Graphics.GL.SUN.SliceAccum
+    Graphics.GL.SUN.TriangleList
+    Graphics.GL.SUN.Vertex
+    Graphics.GL.SUNX
+    Graphics.GL.SUNX.ConstantData
+    Graphics.GL.ThreeDFX
+    Graphics.GL.ThreeDFX.Multisample
+    Graphics.GL.ThreeDFX.Tbuffer
+    Graphics.GL.ThreeDFX.TextureCompressionFXT1
+    Graphics.GL.Tokens
+    Graphics.GL.Types
+    Graphics.GL.Version10
+    Graphics.GL.Version11
+    Graphics.GL.Version12
+    Graphics.GL.Version13
+    Graphics.GL.Version14
+    Graphics.GL.Version15
+    Graphics.GL.Version20
+    Graphics.GL.Version21
+    Graphics.GL.WIN
+    Graphics.GL.WIN.PhongShading
+    Graphics.GL.WIN.SpecularFog
+  other-modules:
+    Graphics.GL.ExtensionPredicates
+    Graphics.GL.Foreign
+    Graphics.GL.Functions.F01
+    Graphics.GL.Functions.F02
+    Graphics.GL.Functions.F03
+    Graphics.GL.Functions.F04
+    Graphics.GL.Functions.F05
+    Graphics.GL.Functions.F06
+    Graphics.GL.Functions.F07
+    Graphics.GL.Functions.F08
+    Graphics.GL.Functions.F09
+    Graphics.GL.Functions.F10
+    Graphics.GL.Functions.F11
+    Graphics.GL.Functions.F12
+    Graphics.GL.Functions.F13
+    Graphics.GL.Functions.F14
+    Graphics.GL.Functions.F15
+    Graphics.GL.Functions.F16
+    Graphics.GL.Functions.F17
+    Graphics.GL.Functions.F18
+    Graphics.GL.Functions.F19
+    Graphics.GL.Functions.F20
+    Graphics.GL.Functions.F21
+    Graphics.GL.Functions.F22
+    Graphics.GL.Functions.F23
+    Graphics.GL.Functions.F24
+    Graphics.GL.Functions.F25
+    Graphics.GL.Functions.F26
+    Graphics.GL.Functions.F27
+    Graphics.GL.Functions.F28
+    Graphics.GL.Functions.F29
+    Graphics.GL.Functions.F30
+    Graphics.GL.Functions.F31
+    Graphics.GL.Functions.F32
+    Graphics.GL.Functions.F33
+  c-sources:
+    cbits/HsOpenGLRaw.c
+  hs-source-dirs: src
+  build-depends:
+    base         >= 4       && < 5,
+    bytestring   >= 0.9     && < 0.12,
+    containers   >= 0.3     && < 0.7,
+    fixed        >= 0.2     && < 0.4,
+    half         >= 0.2.2.1 && < 0.4,
+    text         >= 0.1     && < 1.3,
+    transformers >= 0.2     && < 0.7
+  default-language: Haskell2010
+  ghc-options: -Wall
+  if impl(ghc > 8)
+    ghc-options: -Wcompat
+  other-extensions:
+    CPP
+    PatternSynonyms
+    ScopedTypeVariables
+  if os(openbsd)
+    -- OpenBSD keeps OpenGL libs under /usr/X11R6. Without the following line,
+    -- we get an error like this:
+    --   cabal: Missing dependency on a foreign library:
+    --   * Missing (or bad) C library: GL
+    pkgconfig-depends: gl
+  if os(windows) && flag(UseNativeWindowsLibraries)
+    if arch(i386)
       cpp-options: "-DCALLCONV=stdcall"
-      cc-options: "-DUSE_WGLGETPROCADDRESS"
-      extra-libraries: opengl32
-   else
+    else
       cpp-options: "-DCALLCONV=ccall"
-      if !os(darwin) && flag(UseGlXGetProcAddress)
-         cc-options: "-DUSE_GLXGETPROCADDRESS"
-      else
-         cc-options: "-DUSE_DLSYM"
-      if os(darwin)
-         frameworks: OpenGL
+    cc-options: "-DUSE_WGLGETPROCADDRESS"
+    extra-libraries: opengl32
+  else
+    cpp-options: "-DCALLCONV=ccall"
+    if os(darwin) || os(ios) || flag(OsAndroid) || !flag(UseGlXGetProcAddress)
+      -- TODO: Figure out if/when eglGetProcAddress should be used.
+      cc-options: "-DUSE_DLSYM"
+    else
+      cc-options: "-DUSE_GLXGETPROCADDRESS"
+    if os(darwin)
+      cpp-options: "-DHANDLE_IS_POINTER"
+      frameworks: OpenGL
+    else
+      if os(ios)
+        frameworks: OpenGLES
       else
-         extra-libraries: GL
+        if flag(OsAndroid)
+          if flag(UseGLES2)
+            extra-libraries: GLESv2
+          else
+            extra-libraries: GLESv3
+        else
+          extra-libraries: GL
 
 source-repository head
-  type:     git
-  location: https://github.com/haskell-opengl/OpenGLRaw
+  type: git
+  location: https://github.com/haskell-opengl/OpenGLRaw.git
diff --git a/README.md b/README.md
new file mode 100644
--- /dev/null
+++ b/README.md
@@ -0,0 +1,4 @@
+[![Hackage](https://img.shields.io/hackage/v/OpenGLRaw.svg)](https://hackage.haskell.org/package/OpenGLRaw)
+[![Stackage LTS](https://www.stackage.org/package/OpenGLRaw/badge/lts)](https://www.stackage.org/lts/package/OpenGLRaw)
+[![Stackage nightly](https://www.stackage.org/package/OpenGLRaw/badge/nightly)](https://www.stackage.org/nightly/package/OpenGLRaw)
+[![Build Status](https://github.com/haskell-opengl/OpenGLRaw/actions/workflows/haskell-ci.yml/badge.svg)](https://github.com/haskell-opengl/OpenGLRaw/actions/workflows/haskell-ci.yml)
diff --git a/RegistryProcessor/LICENSE b/RegistryProcessor/LICENSE
new file mode 100644
--- /dev/null
+++ b/RegistryProcessor/LICENSE
@@ -0,0 +1,30 @@
+Copyright (c) 2015-2019, Sven Panne
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+
+    * Redistributions in binary form must reproduce the above
+      copyright notice, this list of conditions and the following
+      disclaimer in the documentation and/or other materials provided
+      with the distribution.
+
+    * Neither the name of Sven Panne nor the names of other
+      contributors may be used to endorse or promote products derived
+      from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/RegistryProcessor/OpenGL-Registry/xml/gl.xml b/RegistryProcessor/OpenGL-Registry/xml/gl.xml
new file mode 100644
# file too large to diff: RegistryProcessor/OpenGL-Registry/xml/gl.xml
diff --git a/RegistryProcessor/OpenGL-Registry/xml/registry.rnc b/RegistryProcessor/OpenGL-Registry/xml/registry.rnc
new file mode 100644
--- /dev/null
+++ b/RegistryProcessor/OpenGL-Registry/xml/registry.rnc
@@ -0,0 +1,281 @@
+# Copyright (c) 2013-2018 The Khronos Group Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Relax NG schema for Khronos Registry XML
+# See https://github.com/KhronosGroup/OpenGL-Registry
+#
+# Last modified 2013/06/14
+# This definition is subject to change (mostly in the form of additions)
+
+namespace xsd = "http://www.w3.org/2001/XMLSchema-datatypes"
+
+# Toplevel is a <registry> tag.
+# May be led by an optional <comment> tag containing e.g. copyrights.
+start = element registry {
+    (
+        element comment { text } ? |
+        Types      * |
+        Groups     * |
+        Enums      * |
+        Commands   * |
+        Feature    * |
+        Extensions *
+    ) *
+}
+
+# <types> defines a group of types
+Types = element types {
+    Type *
+}
+
+# <type> defines a single type. It is usually a C typedef but
+# may contain arbitrary C code.
+#   name - name of this type, if not present in the <name> tag
+#   api - matches a <feature> api attribute, if present
+#   requires - name of another type definition required by this one
+#   type - "group", if present, indicating a group of values in the
+#       corresponding <enums> definition.
+#   comment - unused
+#   <apientry /> - substitutes for an APIENTRY-style macro on output
+#   <name> - contains typename
+Type = element type {
+    attribute api { text } ? ,
+    attribute requires { text } ? ,
+    attribute name { TypeName } ? ,
+    attribute type { text } ? ,
+    Comment ? ,
+    text ,
+    element apientry { text } ? ,
+    text ,
+    element name { TypeName } ? ,
+    text
+}
+
+# <groups> defines a group of enum groups
+Groups = element groups {
+    Group *
+}
+
+# <group> defines a single enum group. Enums may
+# be in multiple groups.
+#   name - group name
+#   comment - unused
+#   <enum name=""> - members of the group
+
+Group = element group {
+    Name ,
+    Comment ? ,
+    element enum { Name } *
+}
+
+# <enums> defines a group of enumerants
+#   namespace - identifies a numeric namespace
+#   group - identifies a functional subset of the namespace - same as <group name="">
+#   start, end - beginning and end of a numeric range in the namespace
+#   vendor - owner of the numeric range
+#   type - "bitmask", if present
+#   comment - unused
+Enums = element enums {
+    attribute namespace { text } ? ,
+    attribute group { text } ? ,
+    attribute type { text } ? ,
+    attribute start { Integer } ? ,
+    attribute end { Integer } ? ,
+    Vendor ? ,
+    Comment ? ,
+    (Enum | Unused) *
+}
+# <enum> defines a single enumerant
+#   value - integer (including hex) value of the enumerant
+#   api - matches a <feature> api attribute, if present
+#   type - "u" (unsigned), "ull" (uint64), or integer if not present
+#   name - enumerant name
+#   alias - another enumerant this is semantically identical to
+#   comment - unused
+Enum = element enum {
+    (
+        attribute value { Integer } &
+        attribute api { text } ? &
+        attribute type { TypeSuffix } ? &
+        attribute name { text } &
+        attribute alias { text } ? &
+        Comment ?
+    )
+}
+# <unused> defines a range of enumerants not currently being used
+#   start, end - beginning and end of an unused numeric range
+#   vendor - unused
+#   comment - unused
+Unused = element unused {
+    attribute start { Integer } ,
+    attribute end { Integer } ? ,
+    Vendor ? ,
+    Comment ?
+}
+# <commands> defines a group of commands
+#   namespace - identifies a function namespace
+Commands = element commands {
+    attribute namespace { text } ? ,
+    Command *
+}
+# <command> defines a single command
+#   <proto> is the C function prototype, including the return type
+#   <param> are function parameters, in order
+#     <ptype> is a <type> name, if present
+#     <name> is the function / parameter name
+# The textual contents of <proto> and <param> should be legal C
+# for those parts of a function declaration.
+#   <alias> - denotes function aliasing
+#     name - name of aliased function
+#   <vecequiv> - denotes scalar / vector function equivalence
+#     name - name of corresponding vector form, e.g. (glColor3f -> glColor3fv)
+#   <glx> - information about GLX protocol
+#     type - "render", "single", or "vendor" for GLXRender, GLXSingle, GLXVendorPrivate{WithReply}
+#     opcode - numeric opcode of specified type for this function
+#     name - if present, protocol name (defaults to command name)
+#     comment - unused
+Command = element command {
+    Comment ? ,
+    element proto {
+        attribute group { text } ? ,
+        text ,
+        element ptype { TypeName } ? ,
+        text ,
+        element name { text } ,
+        text
+    } ,
+    element param {
+        attribute group { text } ? ,
+        attribute len { text } ? ,
+        text ,
+        element ptype { TypeName } ? ,
+        text ,
+        element name { text } ,
+        text
+    } * ,
+    (
+        element alias {
+            Name
+        } ? &
+        element vecequiv {
+            Name
+        } ? &
+        element glx {
+            attribute type { text } ,
+            attribute opcode { xsd:integer } ,
+            Name ? ,
+            Comment ?
+        } *
+    )
+}
+# Each <feature> defines the interface of an API version (e.g. OpenGL 1.2)
+#   api - API tag (e.g. 'gl', 'gles2', etc. - used internally, not
+#     neccessarily an actual API name
+#   name - version name (C preprocessor name, e.g. GL_VERSION_4_2)
+#   number - version number, e.g. 4.2
+#   protect - additional #ifdef symbol to place around the feature
+#   <require> / <remove> contains features to require or remove in
+#                        this version
+#     profile - only require/remove when generated profile matches
+#     comment - unused
+Feature = element feature {
+    attribute api { text } ,
+    Name ,
+    attribute number { xsd:float } ,
+    attribute protect { text } ?,
+    Comment ? ,
+    (
+        element require {
+            ProfileName ? ,
+            Comment ? ,
+            InterfaceElement *
+        } |
+        element remove {
+            ProfileName ? ,
+            Comment ? ,
+            InterfaceElement *
+        }
+    ) *
+}
+Extensions = element extensions {
+    Extension *
+}
+# Defines the interface of an API <extension>. Like a <feature>
+# tag, but with a slightly different api attribute.
+#   api - regexp pattern matching one or more API tags, indicating
+#     which APIs the extension is known to work with. The only
+#     syntax supported is <name>{|<name>}* and each name must
+#     exactly match an API being generated (implicit ^$ surrounding).
+# In addition, <require> / <remove> tags also support an
+# api attribute:
+#     api - only require/remove these features for the matching API.
+#       Not a regular expression.
+Extension = element extension {
+    Name ,
+    attribute protect { text } ?,
+    attribute supported { StringGroup } ? ,
+    Comment ? ,
+    (
+        element require {
+            attribute api { text } ? ,
+            ProfileName ? ,
+            Comment ? ,
+            InterfaceElement *
+        } |
+        element remove {
+            attribute api { text } ? ,
+            ProfileName ? ,
+            Comment ? ,
+            InterfaceElement *
+        }
+    ) *
+}
+# Contents of a <require> / <remove> tag, defining a group
+# of features to require or remove.
+#   <type> / <enum> / <command> all have attributes
+#     name - feature name which must match
+InterfaceElement =
+    element type {
+        Name ,
+        Comment ?
+    } |
+    element enum {
+        Name ,
+        Comment ?
+    } |
+    element command {
+        Name ,
+        Comment ?
+    }
+
+# Integers are allowed to be either decimal or C-hex (0x[0-9A-F]+), but
+# XML Schema types don't seem to support hex notation, so we use this
+# as a placeholder.
+Integer = text
+
+# TypeName is an argument/return value C type name
+TypeName = text
+
+# TypeSuffix is a C numeric type suffix, e.g. 'u' or 'ull'
+TypeSuffix = text
+
+# StringGroup is a regular expression with an implicit
+#   '^(' and ')$' bracketing it.
+StringGroup = text
+
+# Repeatedly used attributes
+ProfileName = attribute profile { text }
+Vendor = attribute vendor { text }
+Comment = attribute comment { text }
+Name = attribute name { text }
diff --git a/RegistryProcessor/RegistryProcessor.cabal b/RegistryProcessor/RegistryProcessor.cabal
new file mode 100644
--- /dev/null
+++ b/RegistryProcessor/RegistryProcessor.cabal
@@ -0,0 +1,28 @@
+name: RegistryProcessor
+version: 0.1.0.1
+synopsis: A processor for the OpenGL Registry
+description: A tool for generating OpenGLRaw from the OpenGL Registry
+license: BSD3
+license-file: LICENSE
+author: Sven Panne
+maintainer: Sven Panne <svenpanne@gmail.com>
+category: Graphics
+build-type: Simple
+extra-source-files:
+  OpenGL-Registry/xml/gl.xml
+  OpenGL-Registry/xml/registry.rnc
+cabal-version: >=1.10
+
+executable RegistryProcessor
+  main-is: Main.hs
+  other-modules: DeclarationParser ManPages MangledRegistry Registry
+  build-depends:
+    base       >= 4   && < 5,
+    containers >= 0.3 && < 0.7,
+    hxt        >= 9.3 && < 9.4,
+    directory  >= 1.0 && < 1.4,
+    filepath   >= 1.0 && < 1.5,
+    pretty     >= 1.1 && < 1.2
+  hs-source-dirs: src
+  default-language: Haskell2010
+  ghc-options: -Wall
diff --git a/RegistryProcessor/Setup.hs b/RegistryProcessor/Setup.hs
new file mode 100644
--- /dev/null
+++ b/RegistryProcessor/Setup.hs
@@ -0,0 +1,2 @@
+import Distribution.Simple
+main = defaultMain
diff --git a/RegistryProcessor/src/DeclarationParser.hs b/RegistryProcessor/src/DeclarationParser.hs
new file mode 100644
--- /dev/null
+++ b/RegistryProcessor/src/DeclarationParser.hs
@@ -0,0 +1,91 @@
+-- A very simple-minded parser for C declarations of the following syntax:
+--   "const"? type-specifier ("*" "const"?)* identifier ("[" number "]")?
+module DeclarationParser
+  ( parse
+  ) where
+
+import Control.Monad
+import Data.Char
+import Text.ParserCombinators.ReadP
+
+parse :: String -> Either String (String, Int)
+parse s =
+  case readP_to_S parseDeclaration s of
+    [(x, "")] -> Right x
+    _ -> Left $ "could not parse \"" ++ s ++ "\""
+
+parseDeclaration :: ReadP (String, Int)
+parseDeclaration = do
+  optionalConst
+  typeSpec <- parseTypeSpecifier
+  pointers <- many' (token "*" >> optionalConst)
+  _ <- parseIdentifier
+  a <- parseArray
+  skipSpaces
+  return (typeSpec, length pointers + a)
+
+optionalConst :: ReadP ()
+optionalConst = option' () (void (token "const"))
+
+parseTypeSpecifier :: ReadP String
+parseTypeSpecifier =
+  choice'
+    [ token "void" >> return "()"
+    , token "float" >> return "CFloat"
+    , token "double" >> return "CDouble"
+    , token "int32_t" >> return "Int32"
+    , token "int64_t" >> return "Int64"
+    , do c <- option' "CChar" (token "signed" >> return "CSChar")
+         choice'
+           [ token "char" >> return c
+           , token "short" >> return "CShort"
+           , token "int" >> return "CInt"
+           , token "long" >>
+             choice' [token "long" >> return "CLLong", return "CLong"]
+           ]
+    , do _ <- token "unsigned"
+         choice'
+           [ token "char" >> return "CUChar"
+           , token "short" >> return "CUShort"
+           , token "int" >> return "CUInt"
+           , token "long" >>
+             choice' [token "long" >> return "CULLong", return "CULong"]
+           ]
+    , token "struct" >> parseIdentifier >> return "()" -- Hmmm...
+    , token "GLvoid" >> return "()" -- glGetPerfQueryDataINTEL still mentions this
+    , parseIdentifier
+    ]
+
+parseIdentifier :: ReadP String
+parseIdentifier = do
+  skipSpaces
+  x <- satisfy (\c -> isAlpha c || c == '_')
+  xs <- munch (\c -> isAlphaNum c || c == '_')
+  return (x : xs)
+
+parseArray :: ReadP Int
+parseArray =
+  choice'
+    [ do _ <- token "["
+         skipSpaces
+         _ <- munch1 isDigit
+         _ <- token "]"
+         return 1
+    , return 0
+    ]
+
+token :: String -> ReadP String
+token s = skipSpaces >> string s
+
+-- deterministic versions
+choice' :: [ReadP a] -> ReadP a
+choice' = foldr (<++) pfail
+
+option' :: a -> ReadP a -> ReadP a
+option' x p = choice' [p, return x]
+
+many' :: ReadP a -> ReadP [a]
+many' = option' [] . many1'
+
+many1' :: ReadP a -> ReadP [a]
+many1' p = liftM2 (:) p (many' p)
diff --git a/RegistryProcessor/src/Main.hs b/RegistryProcessor/src/Main.hs
new file mode 100644
--- /dev/null
+++ b/RegistryProcessor/src/Main.hs
@@ -0,0 +1,1012 @@
+module Main
+  ( main
+  ) where
+
+import qualified Control.Monad as CM
+import qualified Data.Char as C
+import qualified Data.List as L
+import qualified Data.Map.Strict as M
+import qualified Data.Maybe as DM
+import qualified Data.Set as S
+import ManPages
+import MangledRegistry
+import qualified System.Directory as D
+import qualified System.Environment as E
+import qualified System.FilePath as F
+import qualified System.IO as SI
+import qualified Text.PrettyPrint.HughesPJClass as P
+
+main :: IO ()
+main = do
+  [a, registryPath] <- E.getArgs
+  let api = API a
+  res <- parseRegistry toEnumType `fmap` readFile registryPath
+  case res of
+    Left msg -> SI.hPutStrLn SI.stderr msg
+    Right registry -> do
+      printTokens api registry
+      printGroups api registry
+      let sigMap = signatureMap registry
+      printForeign sigMap
+      printFunctions api registry sigMap
+      let extModules = extensionModules api registry
+      CM.forM_ extModules printExtensionModule
+      printReExports extModules
+      printExtensionSupport extModules
+      CM.forM_ (openGLVersions api) $ \v ->
+        CM.forM_ (supportedProfiles api v) $ \p -> printFeature api v p registry
+      printTopLevel api extModules
+
+openGLVersions :: API -> [Version]
+openGLVersions api =
+  map read $
+  case unAPI api of
+    "gl" ->
+      [ "1.0"
+      , "1.1"
+      , "1.2"
+      , "1.3"
+      , "1.4"
+      , "1.5"
+      , "2.0"
+      , "2.1"
+      , "3.0"
+      , "3.1"
+      , "3.2"
+      , "3.3"
+      , "4.0"
+      , "4.1"
+      , "4.2"
+      , "4.3"
+      , "4.4"
+      , "4.5"
+      , "4.6"
+      ]
+    "gles1" -> ["1.0"]
+    "gles2" -> ["2.0", "3.0", "3.1", "3.2"]
+    a -> error $ "unknown API " ++ a
+
+latestVersion :: API -> Version
+latestVersion = last . openGLVersions
+
+supportedProfiles :: API -> Version -> [Maybe ProfileName]
+supportedProfiles api v =
+  case unAPI api of
+    "gl"
+      | major v < 3 -> [Nothing]
+      | otherwise -> map (Just . ProfileName) ["core", "compatibility"]
+    "gles1" -> map (Just . ProfileName) ["lite", "common"]
+    "gles2" -> [Nothing]
+    a -> error $ "unknown API " ++ a
+
+latestProfiles :: API -> [Maybe ProfileName]
+latestProfiles api = supportedProfiles api (latestVersion api)
+
+profileToReExport :: API -> Maybe ProfileName
+profileToReExport = last . latestProfiles
+
+printFeature :: API -> Version -> Maybe ProfileName -> Registry -> IO ()
+printFeature api version mbProfile registry =
+  printExtension [featureName version mbProfile] Nothing $
+  fixedReplay api version mbProfile registry
+
+featureName :: Version -> Maybe ProfileName -> String
+featureName version mbProfile =
+  maybe "Version" (capitalize . unProfileName) mbProfile ++
+  show (major version) ++ show (minor version)
+
+printTokens :: API -> Registry -> IO ()
+printTokens api registry = do
+  let cmnt =
+        [ Comment "All enumeration tokens from the"
+        , Comment "<http://www.opengl.org/registry/ OpenGL registry>."
+        ]
+  startModule
+    ["Tokens"]
+    (Just
+       "{-# LANGUAGE CPP, PatternSynonyms, ScopedTypeVariables #-}\n#if __GLASGOW_HASKELL__ >= 800\n{-# OPTIONS_GHC -Wno-missing-pattern-synonym-signatures #-}\n#endif")
+    cmnt $ \moduleName h -> do
+    hRender h $ Module moduleName P.empty
+    hRender h $ Import (moduleNameFor ["Types"]) P.empty
+    SI.hPutStrLn h ""
+    mapM_
+      (SI.hPutStrLn h . unlines . convertEnum)
+      [e | es <- M.elems (enums registry), e <- es, api `matches` enumAPI e]
+
+printGroups :: API -> Registry -> IO ()
+printGroups api registry = do
+  let cmnt =
+        [ Comment "All enumeration groups from the"
+        , Comment "<http://www.opengl.org/registry/ OpenGL registry>."
+        ]
+  startModule ["Groups"] Nothing cmnt $ \moduleName h -> do
+    hRender h $ Module moduleName (P.text "(\n  -- $EnumerantGroups\n)")
+    hRender h $ Comment "$EnumerantGroups"
+    hRender h $
+      Comment
+        "Note that the actual set of valid values depend on the OpenGL version, the"
+    hRender h $
+      Comment
+        "chosen profile and the supported extensions. Therefore, the groups mentioned"
+    hRender h $
+      Comment
+        "here should only be considered a rough guideline, for details see the OpenGL"
+    hRender h $ Comment "specification."
+    CM.forM_ (M.assocs (groups registry)) $ \(gn, g) -> do
+      let ugn = unGroupName gn
+          es = getGroupEnums api registry g
+      hRender h $ Comment ""
+      hRender h $ Comment ("=== #" ++ ugn ++ "# " ++ ugn)
+      hRender h $ Comment (groupHeader gn es)
+      hRender h $ Comment ""
+      -- TODO: Improve the alias computation below. It takes quadratic time and
+      -- is very naive about what is the canonical name and what is an alias.
+      CM.forM_ es $ \e -> do
+        let same = L.sort [f | f <- es, enumValue e == enumValue f]
+        CM.when (e == head same) $
+          hRender h $
+          Comment
+            ("* " ++
+             linkToToken e ++
+             (case tail same of
+                [] -> ""
+                aliases ->
+                  " (" ++
+                  al ++
+                  ": " ++ L.intercalate ", " (map linkToToken aliases) ++ ")"
+                  where al
+                          | length aliases == 1 = "alias"
+                          | otherwise = "aliases"))
+
+linkToToken :: Enum' -> String
+linkToToken e =
+  "'" ++
+  (case moduleNameFor ["Tokens"] of
+     ModuleName mn -> mn) ++
+  "." ++ (unEnumName . enumName) e ++ "'"
+
+-- There are several enums which are mentioned in groups, but commented out in
+-- enums (12 GL_*_ICC_SGIX enumerants). These are implicitly filtered out below.
+getGroupEnums :: API -> Registry -> Group -> [Enum']
+getGroupEnums api registry g =
+  [ e
+  | name <- groupEnums g
+  , Just es <- [M.lookup name (enums registry)]
+  , e <- es
+  , api `matches` enumAPI e
+  ]
+
+groupHeader :: GroupName -> [Enum'] -> String
+groupHeader gn es =
+  case sortUnique (map enumTypeWithFix es)
+  -- There are 2 empty groups: DataType and FfdMaskSGIX.
+        of
+    [] -> "There are no values defined for this enumeration group."
+    [t]
+      | isMask t -> "A bitwise combination of several of the following values:"
+      | otherwise -> "One of the following values:"
+    tys ->
+      error $
+      "Contradicting enumerant types " ++
+      L.intercalate " and " (map unTypeName tys) ++
+      " in group " ++
+      unGroupName gn ++
+      ":\n" ++
+      unlines
+        [ "  " ++ unEnumName (enumName e) ++ " :: " ++ unTypeName (enumType e)
+        | e <- es
+        ]
+  -- NV_path_rendering screws up typing: It uses GL_NONE as a bitfield, and this
+  -- leads to a collision in the PathFontStyle group. :-/
+  -- Furthermore, glClampColor uses GL_TRUE and GL_FALSE as a GLenum.
+  where
+    enumTypeWithFix e
+      | gn == GroupName "PathFontStyle" && enumName e == EnumName "GL_NONE" =
+        TypeName "GLbitfield"
+      | gn == GroupName "ClampColorModeARB" && enumName e == EnumName "GL_TRUE" =
+        TypeName "GLenum"
+      | gn == GroupName "ClampColorModeARB" && enumName e == EnumName "GL_FALSE" =
+        TypeName "GLenum"
+      | otherwise = enumType e
+
+-- Calulate a map from compact signature to short names.
+signatureMap :: Registry -> M.Map String String
+signatureMap registry =
+  fst $ M.foldl' step (M.empty, 0 :: Integer) (commands registry)
+  where
+    step (m, n) command = memberAndInsert (n + 1) n (sig command) (dyn n) m
+    sig = flip (showSignatureFromCommand registry) False
+    dyn n = "dyn" ++ show n
+    memberAndInsert notFound found key value theMap =
+      (newMap, maybe notFound (const found) maybeValue)
+      where
+        (maybeValue, newMap) =
+          M.insertLookupWithKey (\_ _ s -> s) key value theMap
+
+printForeign :: M.Map String String -> IO ()
+printForeign sigMap = do
+  let cmnt = [Comment "All foreign imports."]
+  startModule
+    ["Foreign"]
+    (Just "{-# LANGUAGE CPP #-}\n{-# OPTIONS_HADDOCK hide #-}")
+    cmnt $ \moduleName h -> do
+    hRender h $ Module moduleName P.empty
+    hRender h $ Import (ModuleName "Foreign.C.Types") P.empty
+    hRender h $
+      Import (ModuleName "Foreign.Marshal.Error") (P.text "( throwIf )")
+    hRender h $ Import (ModuleName "Foreign.Ptr") P.empty
+    hRender h $
+      Import (moduleNameFor ["GetProcAddress"]) (P.text "( getProcAddress )")
+    hRender h $ Import (moduleNameFor ["Types"]) P.empty
+    hRender h $ Import (ModuleName "Numeric.Fixed") P.empty
+    hRender h $ Import (ModuleName "Numeric.Half") P.empty
+    SI.hPutStrLn h ""
+    SI.hPutStrLn h "getCommand :: String -> IO (FunPtr a)"
+    SI.hPutStrLn h "getCommand cmd ="
+    SI.hPutStrLn
+      h
+      "  throwIfNullFunPtr (\"unknown OpenGL command \" ++ cmd) $ getProcAddress cmd"
+    SI.hPutStrLn
+      h
+      "  where throwIfNullFunPtr :: String -> IO (FunPtr a) -> IO (FunPtr a)"
+    SI.hPutStrLn h "        throwIfNullFunPtr = throwIf (== nullFunPtr) . const"
+    SI.hPutStrLn h ""
+    mapM_ (SI.hPutStrLn h . uncurry makeImportDynamic) (M.assocs sigMap)
+
+chunksOf :: Int -> [a] -> [[a]]
+chunksOf n = takeWhile (not . null) . L.unfoldr (Just . splitAt n)
+
+justifyRight :: Int -> a -> [a] -> [a]
+justifyRight n c xs =
+  reverse . take (max n (length xs)) . (++ repeat c) . reverse $ xs
+
+printFunctions :: API -> Registry -> M.Map String String -> IO ()
+printFunctions api registry sigMap = do
+  let cmnt =
+        [ Comment "All raw functions from the"
+        , Comment "<http://www.opengl.org/registry/ OpenGL registry>."
+        ]
+      cmds = chunksOf 100 . M.toAscList . commands $ registry
+      mnames =
+        [ ["Functions", "F" ++ justifyRight 2 '0' (show i)]
+        | i <- [1 .. length cmds]
+        ]
+  startModule ["Functions"] Nothing cmnt $ \moduleName h -> do
+    hRender h $
+      Module
+        moduleName
+        (P.text
+           ("(\n" ++
+            separate
+              (\x ->
+                 "module " ++
+                 (case moduleNameFor x of
+                    ModuleName mn -> mn))
+              mnames ++
+            "\n)"))
+    CM.forM_ mnames $ \mname -> hRender h $ Import (moduleNameFor mname) P.empty
+  CM.zipWithM_ (printSubFunctions api registry sigMap) mnames cmds
+
+printSubFunctions ::
+     API
+  -> Registry
+  -> M.Map String String
+  -> [String]
+  -> [(CommandName, Command)]
+  -> IO ()
+printSubFunctions api registry sigMap mname cmds = do
+  let cmnt =
+        [ Comment "Raw functions from the"
+        , Comment "<http://www.opengl.org/registry/ OpenGL registry>."
+        ]
+  startModule mname (Just "{-# OPTIONS_HADDOCK hide #-}") cmnt $ \moduleName h -> do
+    hRender h $
+      Module
+        moduleName
+        (P.text ("(\n" ++ separate unCommandName (map fst cmds) ++ "\n)"))
+    hRender h $
+      Import (ModuleName "Control.Monad.IO.Class") (P.text "( MonadIO(..) )")
+    hRender h $ Import (ModuleName "Foreign.Ptr") P.empty
+    hRender h $ Import (moduleNameFor ["Foreign"]) P.empty
+    hRender h $ Import (moduleNameFor ["Types"]) P.empty
+    hRender h $
+      Import (ModuleName "System.IO.Unsafe") (P.text "( unsafePerformIO )")
+    SI.hPutStrLn h ""
+    mapM_ (SI.hPutStrLn h . showCommand api registry sigMap . snd) cmds
+
+type ExtensionParts = ([TypeName], [Enum'], [Command])
+
+type ExtensionModule = (ExtensionName, ExtensionName, ExtensionParts)
+
+printExtensionModule :: ExtensionModule -> IO ()
+printExtensionModule (extName, mangledExtName, extensionParts) =
+  printExtension
+    [extensionNameCategory mangledExtName, extensionNameName mangledExtName]
+    (Just extName)
+    extensionParts
+
+extendWithProfile :: ExtensionName -> Maybe ProfileName -> ExtensionName
+extendWithProfile extName =
+  maybe
+    extName
+    (\p ->
+       extName
+       { extensionNameName =
+           joinWords [extensionNameName extName, capitalize (unProfileName p)]
+       })
+
+mangleExtensionName :: ExtensionName -> ExtensionName
+mangleExtensionName extName =
+  extName
+  { extensionNameCategory = fixCategory $ extensionNameCategory extName
+  , extensionNameName =
+      zip (splitWords (extensionNameName extName)) [0 :: Integer ..] >>=
+      fixExtensionWord
+  }
+  where
+    fixCategory c =
+      case c of
+        "3DFX" -> "ThreeDFX"
+        _ -> c
+    fixExtensionWord (w, pos) =
+      case w of
+        "422"
+          | pos == 0 -> "FourTwoTwo"
+        "64bit" -> "64Bit"
+        "ES2" -> "ES2"
+        "ES3" -> "ES3"
+        "FXT1" -> "FXT1"
+        "a2ui" -> "A2UI"
+        "abgr" -> "ABGR"
+        "astc" -> "ASTC"
+        "bgra" -> "BGRA"
+        "bptc" -> "BPTC"
+        "cl" -> "CL"
+        "cmyka" -> "CMYKA"
+        "dxt1" -> "DXT1"
+        "es" -> "ES"
+        "ffd" -> "FFD"
+        "fp64" -> "FP64"
+        "gpu" -> "GPU"
+        "hdr" -> "HDR"
+        "latc" -> "LATC"
+        "ldr" -> "LDR"
+        "lod" -> "LOD"
+        "pn" -> "PN"
+        "rg" -> "RG"
+        "rgb" -> "RGB"
+        "rgb10" -> "RGB10"
+        "rgb32" -> "RGB32"
+        "rgtc" -> "RGTC"
+        "s3tc" -> "S3TC"
+        "sRGB" -> "SRGB"
+        "snorm" -> "SNorm"
+        "texture3D" -> "Texture3D"
+        "texture4D" -> "Texture4D"
+        "vdpau" -> "VDPAU"
+        "ycbcr" -> "YCbCr"
+        "ycrcb" -> "YCrCb"
+        "ycrcba" -> "YCrCbA"
+        _ -> capitalize w
+
+extensionModules :: API -> Registry -> [ExtensionModule]
+extensionModules api registry =
+  [ (extName, mangledExtName, executeModifications api mbProfile registry mods)
+  | (extName, mods) <- supportedExtensions api registry
+  , mbProfile <-
+      if isProfileDependent mods
+        then suppProfs
+        else [Nothing]
+  , let mangledExtName =
+          mangleExtensionName (extendWithProfile extName mbProfile)
+  ]
+  where
+    suppProfs = latestProfiles api
+    isProfileDependent mods =
+      any (`S.member` allProfileNames) (mentionedProfileNames mods)
+    mentionedProfileNames = DM.mapMaybe modificationProfile
+    allProfileNames = S.fromList . DM.catMaybes $ suppProfs
+
+-- We only consider non-empty supported extensions/modifications for the given API.
+supportedExtensions :: API -> Registry -> [(ExtensionName, [Modification])]
+supportedExtensions api registry =
+  [ nameAndMods
+  | ext <- extensions registry
+  , api `supports` extensionSupported ext
+  , nameAndMods@(_, _:_) <- [nameAndModifications ext]
+  ]
+  where
+    nameAndModifications :: Extension -> (ExtensionName, [Modification])
+    nameAndModifications e =
+      ( extensionName e
+      , [ conditionalModificationModification cm
+        | cm <- extensionsRequireRemove e
+        , api `matches` conditionalModificationAPI cm
+           -- ARB_compatibility has an empty "require" element only
+        , not .
+            null .
+            modificationInterfaceElements . conditionalModificationModification $
+            cm
+        ])
+
+extensionHyperlink :: ExtensionName -> String
+extensionHyperlink n =
+  "<https://www.opengl.org/registry/specs/" ++
+  fixRegistryPath (extensionNameCategory n ++ "/" ++ extensionNameName n) ++
+  ".txt " ++ joinWords [extensionNameCategory n, extensionNameName n] ++ ">"
+  where
+    fixRegistryPath :: String -> String
+    fixRegistryPath path =
+      case path of
+        "3DFX/multisample" -> "3DFX/3dfx_multisample"
+        "EXT/debug_label" -> "EXT/EXT_debug_label"
+        "EXT/debug_marker" -> "EXT/EXT_debug_marker"
+        "EXT/multisample" -> "EXT/wgl_multisample"
+        "EXT/texture_cube_map" -> "ARB/texture_cube_map"
+        "INGR/blend_func_separate" -> "EXT/blend_func_separate"
+        "KHR/blend_equation_advanced_coherent" -> "KHR/blend_equation_advanced"
+        "KHR/texture_compression_astc_ldr" -> "KHR/texture_compression_astc_hdr"
+        "NV/blend_equation_advanced_coherent" -> "NV/blend_equation_advanced"
+        "NVX/conditional_render" -> "NVX/nvx_conditional_render"
+        "OES/byte_coordinates" -> "OES/OES_byte_coordinates"
+        "OES/compressed_paletted_texture" ->
+          "OES/OES_compressed_paletted_texture"
+        "OES/fixed_point" -> "OES/OES_fixed_point"
+        "OES/query_matrix" -> "OES/OES_query_matrix"
+        "OES/read_format" -> "OES/OES_read_format"
+        "OES/single_precision" -> "OES/OES_single_precision"
+        "SGIS/fog_function" -> "SGIS/fog_func"
+        "SGIS/point_parameters" -> "EXT/point_parameters"
+        "SGIX/fragment_lighting" -> "EXT/fragment_lighting"
+        "SGIX/pixel_texture" -> "SGIX/sgix_pixel_texture"
+        "SGIX/texture_add_env" -> "SGIX/texture_env_add"
+        _ -> path
+
+printReExports :: [ExtensionModule] -> IO ()
+printReExports extModules = do
+  let extMap =
+        M.fromListWith
+          (++)
+          [ ( ( extensionNameCategory extName
+              , extensionNameCategory mangledExtName)
+            , [mangledExtName])
+          | (extName, mangledExtName, _) <- extModules
+          ]
+      reExports =
+        [ (cat, L.sort mangledExtNames)
+        | (cat, mangledExtNames) <- M.toList extMap
+        ]
+  CM.forM_ reExports $ \((category, mangledCategory), mangledExtNames) -> do
+    let cmnt =
+          [ Comment
+              ("A convenience module, combining all raw modules containing " ++
+               category ++ " extensions.")
+          ]
+    startModule [mangledCategory] Nothing cmnt $ \moduleName h -> do
+      hRender h $
+        Module
+          moduleName
+          (P.text
+             ("(\n" ++
+              separate
+                (\mangledExtName ->
+                   "module " ++
+                   (case extensionNameFor mangledExtName of
+                      ModuleName mn -> mn))
+                mangledExtNames ++
+              "\n)"))
+      CM.forM_ mangledExtNames $ \mangledExtName ->
+        hRender h $ Import (extensionNameFor mangledExtName) P.empty
+
+printExtensionSupport :: [ExtensionModule] -> IO ()
+printExtensionSupport extModules = do
+  let cmnt = [Comment "Extension support predicates."]
+  startModule ["ExtensionPredicates"] (Just "{-# OPTIONS_HADDOCK hide #-}") cmnt $ \moduleName h -> do
+    hRender h $ Module moduleName P.empty
+    hRender h $
+      Import (ModuleName "Control.Monad.IO.Class") (P.text "( MonadIO(..) )")
+    hRender h $ Import (ModuleName "Data.Set") (P.text "( member )")
+    hRender h $
+      Import
+        (moduleNameFor ["GetProcAddress"])
+        (P.text "( getExtensions, extensions )")
+    let names = sortUnique [extName | (extName, _, _) <- extModules]
+    CM.forM_ names $ \extName -> do
+      let predNameMonad = extensionPredicateNameMonad extName
+          predName = extensionPredicateName extName
+          extString =
+            joinWords
+              [ extensionNameAPI extName
+              , extensionNameCategory extName
+              , extensionNameName extName
+              ]
+      SI.hPutStrLn h ""
+      hRender h $
+        Comment
+          ("| Is the " ++ extensionHyperlink extName ++ " extension supported?")
+      SI.hPutStrLn h $ predNameMonad ++ " :: MonadIO m => m Bool"
+      SI.hPutStrLn h $
+        predNameMonad ++
+        " = getExtensions >>= (return . member " ++ show extString ++ ")"
+      SI.hPutStrLn h ""
+      hRender h $
+        Comment
+          ("| Is the " ++ extensionHyperlink extName ++ " extension supported?")
+      hRender h $
+        Comment
+          "Note that in the presence of multiple contexts with different capabilities,"
+      hRender h $
+        Comment
+          ("this might be wrong. Use '" ++
+           predNameMonad ++ "' in those cases instead.")
+      SI.hPutStrLn h $ predName ++ " :: Bool"
+      SI.hPutStrLn h $
+        predName ++ " = member " ++ show extString ++ " extensions"
+      SI.hPutStrLn h $ "{-# NOINLINE " ++ predName ++ " #-}"
+
+extensionNameFor :: ExtensionName -> ModuleName
+extensionNameFor mangledExtName =
+  moduleNameFor
+    [extensionNameCategory mangledExtName, extensionNameName mangledExtName]
+
+supports :: API -> Maybe [API] -> Bool
+_ `supports` Nothing = True
+a `supports` Just apis = a `elem` apis
+
+capitalize :: String -> String
+capitalize str = C.toUpper (head str) : map C.toLower (tail str)
+
+separate :: (a -> String) -> [a] -> String
+separate f = L.intercalate ",\n" . map (("  " ++) . f)
+
+-- Note that we handle features just like extensions.
+printExtension :: [String] -> Maybe ExtensionName -> ExtensionParts -> IO ()
+printExtension moduleNameSuffix mbExtName (ts, es, cs) = do
+  let pragma =
+        if null es
+          then Nothing
+          else Just "{-# LANGUAGE PatternSynonyms #-}"
+  startModule moduleNameSuffix pragma [] $ \moduleName h -> do
+    let extStr =
+          flip (maybe "") mbExtName $ \extName ->
+            "  -- * Extension Support\n" ++
+            separate
+              id
+              [ extensionPredicateNameMonad extName
+              , extensionPredicateName extName
+              ] ++
+            ",\n"
+        typeStr
+          | null ts = ""
+          | otherwise =
+            "  -- * Types\n" ++
+            separate unTypeName ts ++
+            if null es && null cs
+              then "\n"
+              else ",\n"
+        enumStr
+          | null es = ""
+          | otherwise =
+            "  -- * Enums\n" ++
+            separate (("pattern " ++) . unEnumName . enumName) es ++
+            if null cs
+              then "\n"
+              else ",\n"
+        funcStr
+          | null cs = ""
+          | otherwise =
+            "  -- * Functions\n" ++
+            separate (unCommandName . commandName) cs ++ "\n"
+    hRender h $
+      Module
+        moduleName
+        (P.text ("(\n" ++ extStr ++ typeStr ++ enumStr ++ funcStr ++ ")"))
+    CM.when (DM.isJust mbExtName) $
+      hRender h $ Import (moduleNameFor ["ExtensionPredicates"]) P.empty
+    CM.unless (null ts) $ hRender h $ Import (moduleNameFor ["Types"]) P.empty
+    CM.unless (null es) $ hRender h $ Import (moduleNameFor ["Tokens"]) P.empty
+    CM.unless (null cs) $
+      hRender h $ Import (moduleNameFor ["Functions"]) P.empty
+
+extensionPredicateName :: ExtensionName -> String
+extensionPredicateName extName =
+  joinWords
+    [ map C.toLower (extensionNameAPI extName)
+    , extensionNameCategory extName
+    , extensionNameName extName
+    ]
+
+extensionPredicateNameMonad :: ExtensionName -> String
+extensionPredicateNameMonad extName =
+  map C.toLower (extensionNameAPI mangledExtName) ++
+  "Get" ++
+  extensionNameCategory mangledExtName ++ extensionNameName mangledExtName
+  where
+    mangledExtName = mangleExtensionName extName
+
+printTopLevel :: API -> [ExtensionModule] -> IO ()
+printTopLevel api extModules = do
+  let mangledCategories =
+        sortUnique
+          [ extensionNameCategory mangledExtName
+          | (_, mangledExtName, _) <- extModules
+          ]
+      profToReExport = profileToReExport api
+      lastComp = featureName (latestVersion api) profToReExport
+      moduleNames =
+        [ moduleNameFor [c]
+        | c <- [lastComp, "GetProcAddress"] ++ mangledCategories
+        ]
+      cmnt =
+        [ Comment
+            (unwords
+               [ "A convenience module, combining the latest"
+               , apiName api
+               , maybe
+                   "version"
+                   (\p -> unProfileName p ++ " profile")
+                   profToReExport
+               , "plus"
+               ])
+        , Comment "all extensions."
+        ]
+  startModule [] Nothing cmnt $ \moduleName h -> do
+    hRender h $
+      Module
+        moduleName
+        (P.text
+           ("(\n" ++
+            separate (\(ModuleName m) -> "module " ++ m) moduleNames ++ "\n)"))
+    CM.forM_ moduleNames $ \theModuleName ->
+      hRender h $ Import theModuleName P.empty
+
+apiName :: API -> String
+apiName api =
+  case unAPI api of
+    "gl" -> "OpenGL"
+    "gles1" -> "OpenGL ES 1.x"
+    "gles2" -> "OpenGL ES"
+    a -> error $ "unknown API " ++ a
+
+sortUnique :: Ord a => [a] -> [a]
+sortUnique = S.toList . S.fromList
+
+startModule ::
+     [String]
+  -> Maybe String
+  -> [Comment]
+  -> (ModuleName -> SI.Handle -> IO ())
+  -> IO ()
+startModule moduleNameSuffix mbPragma comments action = do
+  let path = modulePathFor moduleNameSuffix
+      moduleName = moduleNameFor moduleNameSuffix
+  D.createDirectoryIfMissing True $ F.takeDirectory path
+  SI.withFile path SI.WriteMode $ \h -> do
+    printModuleHeader h mbPragma moduleName comments
+    action moduleName h
+
+moduleNameFor :: [String] -> ModuleName
+moduleNameFor = ModuleName . L.intercalate "." . moduleNameParts
+
+modulePathFor :: [String] -> FilePath
+modulePathFor moduleNameSuffix =
+  F.joinPath (moduleNameParts moduleNameSuffix) `F.addExtension` "hs"
+
+moduleNameParts :: [String] -> [String]
+moduleNameParts = (["Graphics", "GL"] ++)
+
+printModuleHeader ::
+     SI.Handle -> Maybe String -> ModuleName -> [Comment] -> IO ()
+printModuleHeader h mbPragma (ModuleName moduleName) comments = do
+  maybe (return ()) (SI.hPutStrLn h) mbPragma
+  hRender h $
+    Comment
+      "------------------------------------------------------------------------------"
+  hRender h $ Comment "|"
+  hRender h $ Comment ("Module      :  " ++ moduleName)
+  hRender h $ Comment "Copyright   :  (c) Sven Panne 2019"
+  hRender h $ Comment "License     :  BSD3"
+  hRender h $ Comment ""
+  hRender h $ Comment "Maintainer  :  Sven Panne <svenpanne@gmail.com>"
+  hRender h $ Comment "Stability   :  stable"
+  hRender h $ Comment "Portability :  portable"
+  hRender h $ Comment ""
+  CM.unless (null comments) $ do
+    mapM_ (hRender h) comments
+    hRender h $ Comment ""
+  hRender h $
+    Comment
+      "------------------------------------------------------------------------------"
+  SI.hPutStrLn h ""
+
+-- Annoyingly enough, the OpenGL registry doesn't contain any enums for
+-- OpenGL 1.0, so let's just use the OpenGL 1.1 ones. Furthermore, features
+-- don't explicitly list the types referenced by commands, so we add them.
+fixedReplay :: API -> Version -> Maybe ProfileName -> Registry -> ExtensionParts
+fixedReplay api version mbProfile registry
+  | api == API "gl" && version == read "1.0" = (ts', es11, cs)
+  | otherwise = (ts', es, cs)
+  where
+    (ts, es, cs) = replay api version mbProfile registry
+    (_, es11, _) = replay api (read "1.1") mbProfile registry
+    ts' =
+      S.toList . addFuncsAndMakes . S.unions $
+      S.fromList ts : map referencedTypes cs
+
+-- For debug callbacks, we want to export the Haskell types and their creators, too.
+addFuncsAndMakes :: S.Set TypeName -> S.Set TypeName
+addFuncsAndMakes =
+  flip
+    (foldr addFuncAndMake)
+    ["GLDEBUGPROC", "GLDEBUGPROCAMD", "GLDEBUGPROCARB", "GLDEBUGPROCKHR"]
+  where
+    addFuncAndMake t ts
+      | TypeName t `S.member` ts =
+        ts `S.union` S.fromList (map TypeName [t ++ "Func", "make" ++ t])
+      | otherwise = ts
+
+-- Here is the heart of the feature construction logic: Chronologically replay
+-- the whole version history for the given API/version/profile triple.
+replay :: API -> Version -> Maybe ProfileName -> Registry -> ExtensionParts
+replay api version mbProfile registry =
+  executeModifications api mbProfile registry modifications
+  where
+    modifications = history >>= flip lookup' (features registry)
+    history =
+      L.sort
+        [key | key@(a, v) <- M.keys (features registry), a == api, v <= version]
+
+executeModifications ::
+     API -> Maybe ProfileName -> Registry -> [Modification] -> ExtensionParts
+executeModifications api mbProfile registry modifications = (ts, es, cs)
+  where
+    ts = [n | TypeElement n <- lst]
+    es =
+      [ e
+      | EnumElement n <- lst
+      , e <- lookup' n (enums registry)
+      , api `matches` enumAPI e
+      ]
+    cs = [lookup' n (commands registry) | CommandElement n <- lst]
+    lst = S.toList $ interfaceElementsFor mbProfile modifications
+
+interfaceElementsFor ::
+     Maybe ProfileName -> [Modification] -> S.Set InterfaceElement
+interfaceElementsFor mbProfile modifications =
+  foldl (flip ($)) S.empty modificationsFor
+  where
+    modificationsFor =
+      [ op (modificationKind m) ie
+      | m <- modifications
+      , maybe True (`matches` modificationProfile m) mbProfile
+      , ie <- modificationInterfaceElements m
+      ]
+    op Require = S.insert
+    op Remove = S.delete
+
+lookup' :: (Ord k, Show k) => k -> M.Map k a -> a
+lookup' k = M.findWithDefault (error ("unknown name " ++ show k)) k
+
+matches :: Eq a => a -> Maybe a -> Bool
+_ `matches` Nothing = True
+s `matches` Just t = s == t
+
+convertEnum :: Enum' -> [String]
+convertEnum e =
+  [ "pattern " ++
+    n ++ " = " ++ unEnumValue (enumValue e) ++ " :: " ++ unTypeName (enumType e)
+  ]
+  where
+    n = unEnumName . enumName $ e
+
+showCommand :: API -> Registry -> M.Map String String -> Command -> String
+showCommand api registry sigMap c =
+  showString
+    (P.render
+       (P.pPrint (Comment (take 77 (name ++ " " ++ repeat '-'))) P.$+$ P.text "" P.$+$
+        P.text "")) .
+  showString (P.render cmnt) .
+  showString (name ++ "\n") .
+  showString "  :: MonadIO m\n" .
+  showString ("  => " ++ signature True) .
+  showString
+    (name ++
+     args ++ " = liftIO $ " ++ dyn_name ++ " " ++ ptr_name ++ args ++ "\n\n") .
+  showString ("{-# NOINLINE " ++ ptr_name ++ " #-}\n") .
+  showString (ptr_name ++ " :: FunPtr (" ++ compactSignature ++ ")\n") .
+  showString
+    (ptr_name ++ " = unsafePerformIO $ getCommand " ++ str_name ++ "\n") $
+  ""
+  where
+    name = signatureElementName (resultType c)
+    dyn_name = lookup' compactSignature sigMap
+    ptr_name = "ptr_" ++ name
+    str_name = show name
+    compactSignature = signature False
+    signature = showSignatureFromCommand registry c
+    urls = M.findWithDefault [] (api, CommandName name) manPageURLs
+    links = L.intercalate " or " (map renderURL urls)
+    cmnt =
+      case concat (man ++ ve ++ al) of
+        "" -> P.empty
+        cs -> P.pPrint (Comment ("|" ++ cs)) P.$+$ P.text ""
+    man =
+      case urls of
+        [] -> []
+        [_] -> [" Manual page for " ++ links ++ "."]
+        _ -> [" Manual pages for " ++ links ++ "."]
+    ve =
+      [ " The vector equivalent of this command is '" ++ unCommandName v ++ "'."
+      | Just v <- [vecEquiv c]
+      ]
+    al =
+      [ " This command is an alias for '" ++ unCommandName a ++ "'."
+      | Just a <- [alias c]
+      ]
+    renderURL (u, l) = "<" ++ u ++ " " ++ l ++ ">"
+    args = [1 .. length (paramTypes c)] >>= \i -> " v" ++ show i
+
+makeImportDynamic :: String -> String -> String
+makeImportDynamic compactSignature dyn_name =
+  "foreign import CALLCONV \"dynamic\" " ++
+  dyn_name ++
+  "\n" ++
+  "  :: FunPtr (" ++
+  compactSignature ++ ")\n" ++ "  ->         " ++ compactSignature ++ "\n"
+
+showSignatureFromCommand :: Registry -> Command -> Bool -> String
+showSignatureFromCommand registry c withComment =
+  L.intercalate
+    ((if withComment
+        then " "
+        else "") ++
+     " -> ")
+    ([showSignatureElement registry withComment False t | t <- paramTypes c] ++
+     [showSignatureElement registry withComment True (resultType c)])
+
+showSignatureElement :: Registry -> Bool -> Bool -> SignatureElement -> String
+showSignatureElement registry withComment isResult sigElem = el ++ cmnt
+  where
+    el
+      | isResult = monad ++ " " ++ showsPrec 11 sigElem ""
+      | otherwise = show sigElem
+    monad
+      | withComment = "m"
+      | otherwise = "IO"
+    cmnt
+      | withComment =
+        P.render (showComment registry name sigElem P.$+$ P.text "")
+      | otherwise = ""
+    name
+      | isResult = ""
+      | otherwise = signatureElementName sigElem
+
+showComment :: Registry -> String -> SignatureElement -> P.Doc
+showComment registry name sigElem
+  | null name' && null info = P.text ""
+  | otherwise = P.text " " P.<> P.pPrint (Comment ("^" ++ name' ++ info ++ "."))
+  where
+    name'
+      | null name = ""
+      | otherwise = " " ++ inlineCode name
+    info
+      | isInteresting = elms ++ " of type " ++ hurz
+      | otherwise = ""
+        -- Alas, there are tons of group names which are referenced, but never
+        -- defined, so we have to leave them without a link.
+        -- TODO: Do not use Show instance for SignatureElement.
+    hurz =
+      case belongsToGroup sigElem of
+        Just gn
+          | numPointer sigElem <= 1 && fgn `M.member` groups registry ->
+            linkToGroup fgn
+          where fgn = fixGroupName gn
+        _ -> inlineCode (show (base sigElem))
+    isInteresting =
+      DM.isJust (arrayLength sigElem) || DM.isJust (belongsToGroup sigElem)
+    elms
+      | numPointer sigElem > 0 = " pointing to" ++ len ++ " " ++ elements
+      | otherwise = ""
+    elements
+      | arrayLength sigElem == Just "1" = "element"
+      | otherwise = "elements"
+    len = maybe "" (\l -> " " ++ inlineCode l) (arrayLength sigElem)
+    base = maybeDeref . maybeSetBaseType
+    maybeDeref e
+      | numPointer e > 0 = e {numPointer = numPointer e - 1}
+      | otherwise = e
+    maybeSetBaseType e =
+      maybe e (\g -> e {baseType = TypeName (unGroupName g)}) (belongsToGroup e)
+
+fixGroupName :: GroupName -> GroupName
+fixGroupName g
+  | g == GroupName "PixelInternalFormat" = GroupName "InternalFormat"
+  | g == GroupName "SGIXFfdMask" = GroupName "FfdMaskSGIX"
+  | otherwise = g
+
+-- TODO: This is very fragile, but currently there is no clean way to specify
+-- link texts when referencing anchors in Haddock.
+linkToGroup :: GroupName -> String
+linkToGroup g =
+  "[" ++ n ++ "](" ++ htmlFilenameFor ["Groups"] ++ "#" ++ n ++ ")"
+  where
+    n = unGroupName g
+
+htmlFilenameFor :: [String] -> String
+htmlFilenameFor = (++ ".html") . L.intercalate "-" . moduleNameParts
+
+inlineCode :: String -> String
+inlineCode s = "@" ++ s ++ "@"
+
+-- TODO: Use Either instead of error below?
+toEnumType :: ToEnumType
+toEnumType eNamespace eGroup eType suffix eName =
+  TypeName $
+  case (eNamespace, eGroup, eType, unTypeSuffix `fmap` suffix, eName)
+    -- glx.xml
+        of
+    (Just "GLXStrings", _, _, _, _) -> "String"
+    (Just ('G':'L':'X':_), _, _, _, _) -> "CInt"
+    -- egl.xml
+    -- TODO: EGLenum for EGL_OPENGL_API, EGL_OPENGL_ES_API, EGL_OPENVG_API, EGL_OPENVG_IMAGE?
+    (Just ('E':'G':'L':_), _, Nothing, Just "ull", _) -> "EGLTime"
+    (Just ('E':'G':'L':_), _, _, _, _) -> "EGLint"
+    -- wgl.xml
+    (Just "WGLLayerPlaneMask", _, _, _, _) -> "UINT"
+    (Just "WGLColorBufferMask", _, _, _, _) -> "UINT"
+    (Just "WGLContextFlagsMask", _, _, _, _) -> "INT"
+    (Just "WGLContextProfileMask", _, _, _, _) -> "INT"
+    (Just "WGLImageBufferMaskI3D", _, _, _, _) -> "UINT"
+    (Just "WGLDXInteropMaskNV", _, _, _, _) -> "GLenum"
+    (Just ('W':'G':'L':_), _, _, _, _) -> "CInt"
+    -- gl.xml
+    (Just "OcclusionQueryEventMaskAMD", _, _, _, _) -> "GLuint"
+    (Just "GL", Just "SpecialNumbers", _, _, "GL_FALSE") -> "GLboolean"
+    (Just "GL", Just "SpecialNumbers", _, _, "GL_TRUE") -> "GLboolean"
+    (Just "GL", Just "PathRenderingTokenNV", _, _, _) -> "GLubyte"
+    (Just "GL", _, Just "bitmask", _, _) -> "GLbitfield"
+    (Just "GL", _, Nothing, Just "u", _) -> "GLuint"
+    (Just "GL", _, Nothing, Just "ull", _) -> "GLuint64"
+    (Just "GL", _, Nothing, Nothing, _) -> "GLenum"
+    (_, _, _, _, _) -> error "can't determine enum type"
+
+isMask :: TypeName -> Bool
+isMask = (== TypeName "GLbitfield")
+
+--------------------------------------------------------------------------------
+data Module =
+  Module ModuleName
+         Exports
+
+instance P.Pretty Module where
+  pPrint (Module mn ex) =
+    P.text "module" P.<+> P.pPrint mn P.<+> ex P.<+> P.text "where\n"
+
+type Exports = P.Doc
+
+data Import =
+  Import ModuleName
+         ImportSpecs
+
+instance P.Pretty Import where
+  pPrint (Import mn im) = P.text "import" P.<+> P.pPrint mn P.<+> im
+
+type ImportSpecs = P.Doc
+
+newtype ModuleName =
+  ModuleName String
+
+instance P.Pretty ModuleName where
+  pPrint (ModuleName m) = P.text m
+
+newtype Comment =
+  Comment String
+
+instance P.Pretty Comment where
+  pPrint (Comment c)
+    | null c = P.text "--"
+    | all (== '-') c = P.pPrint (Comment "") P.<> P.text c
+    | otherwise = P.pPrint (Comment "") P.<+> P.text c
+
+hRender :: P.Pretty a => SI.Handle -> a -> IO ()
+hRender h = SI.hPutStrLn h . P.render . P.pPrint
diff --git a/RegistryProcessor/src/ManPages.hs b/RegistryProcessor/src/ManPages.hs
new file mode 100644
--- /dev/null
+++ b/RegistryProcessor/src/ManPages.hs
@@ -0,0 +1,1710 @@
+-- Built via embarrassing grep/sed technology from the XML OpenGL SDK docs at
+-- https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/docs/man[234].
+module ManPages
+  ( manPageURLs
+  ) where
+
+import qualified Data.Map as M
+import MangledRegistry (API(..), CommandName(..))
+
+type ManPageKey = (API, CommandName)
+
+type URL = String
+
+type Label = String
+
+assocsGL2 :: [(ManPageKey, [(URL, Label)])]
+assocsGL2 =
+  entriesFor
+    "gl"
+    "OpenGL 2.x"
+    "https://www.opengl.org/sdk/docs/man2/xhtml/"
+    ".xml"
+    [ ("glAccum", "glAccum")
+    , ("glActiveTexture", "glActiveTexture")
+    , ("glAlphaFunc", "glAlphaFunc")
+    , ("glAreTexturesResident", "glAreTexturesResident")
+    , ("glArrayElement", "glArrayElement")
+    , ("glAttachShader", "glAttachShader")
+    , ("glBeginQuery", "glBeginQuery")
+    , ("glEndQuery", "glBeginQuery")
+    , ("glBegin", "glBegin")
+    , ("glEnd", "glBegin")
+    , ("glBindAttribLocation", "glBindAttribLocation")
+    , ("glBindBuffer", "glBindBuffer")
+    , ("glBindTexture", "glBindTexture")
+    , ("glBitmap", "glBitmap")
+    , ("glBlendColor", "glBlendColor")
+    , ("glBlendEquationSeparate", "glBlendEquationSeparate")
+    , ("glBlendEquation", "glBlendEquation")
+    , ("glBlendFuncSeparate", "glBlendFuncSeparate")
+    , ("glBlendFunc", "glBlendFunc")
+    , ("glBufferData", "glBufferData")
+    , ("glBufferSubData", "glBufferSubData")
+    , ("glCallLists", "glCallLists")
+    , ("glCallList", "glCallList")
+    , ("glClearAccum", "glClearAccum")
+    , ("glClearColor", "glClearColor")
+    , ("glClearDepth", "glClearDepth")
+    , ("glClearIndex", "glClearIndex")
+    , ("glClearStencil", "glClearStencil")
+    , ("glClear", "glClear")
+    , ("glClientActiveTexture", "glClientActiveTexture")
+    , ("glClipPlane", "glClipPlane")
+    , ("glColorMask", "glColorMask")
+    , ("glColorMaterial", "glColorMaterial")
+    , ("glColorPointer", "glColorPointer")
+    , ("glColorSubTable", "glColorSubTable")
+    , ("glColorTableParameterfv", "glColorTableParameter")
+    , ("glColorTableParameteriv", "glColorTableParameter")
+    , ("glColorTable", "glColorTable")
+    , ("glColor3b", "glColor")
+    , ("glColor3s", "glColor")
+    , ("glColor3i", "glColor")
+    , ("glColor3f", "glColor")
+    , ("glColor3d", "glColor")
+    , ("glColor3ub", "glColor")
+    , ("glColor3us", "glColor")
+    , ("glColor3ui", "glColor")
+    , ("glColor4b", "glColor")
+    , ("glColor4s", "glColor")
+    , ("glColor4i", "glColor")
+    , ("glColor4f", "glColor")
+    , ("glColor4d", "glColor")
+    , ("glColor4ub", "glColor")
+    , ("glColor4us", "glColor")
+    , ("glColor4ui", "glColor")
+    , ("glColor3bv", "glColor")
+    , ("glColor3sv", "glColor")
+    , ("glColor3iv", "glColor")
+    , ("glColor3fv", "glColor")
+    , ("glColor3dv", "glColor")
+    , ("glColor3ubv", "glColor")
+    , ("glColor3usv", "glColor")
+    , ("glColor3uiv", "glColor")
+    , ("glColor4bv", "glColor")
+    , ("glColor4sv", "glColor")
+    , ("glColor4iv", "glColor")
+    , ("glColor4fv", "glColor")
+    , ("glColor4dv", "glColor")
+    , ("glColor4ubv", "glColor")
+    , ("glColor4usv", "glColor")
+    , ("glColor4uiv", "glColor")
+    , ("glCompileShader", "glCompileShader")
+    , ("glCompressedTexImage1D", "glCompressedTexImage1D")
+    , ("glCompressedTexImage2D", "glCompressedTexImage2D")
+    , ("glCompressedTexImage3D", "glCompressedTexImage3D")
+    , ("glCompressedTexSubImage1D", "glCompressedTexSubImage1D")
+    , ("glCompressedTexSubImage2D", "glCompressedTexSubImage2D")
+    , ("glCompressedTexSubImage3D", "glCompressedTexSubImage3D")
+    , ("glConvolutionFilter1D", "glConvolutionFilter1D")
+    , ("glConvolutionFilter2D", "glConvolutionFilter2D")
+    , ("glConvolutionParameterf", "glConvolutionParameter")
+    , ("glConvolutionParameteri", "glConvolutionParameter")
+    , ("glConvolutionParameterfv", "glConvolutionParameter")
+    , ("glConvolutionParameteriv", "glConvolutionParameter")
+    , ("glCopyColorSubTable", "glCopyColorSubTable")
+    , ("glCopyColorTable", "glCopyColorTable")
+    , ("glCopyConvolutionFilter1D", "glCopyConvolutionFilter1D")
+    , ("glCopyConvolutionFilter2D", "glCopyConvolutionFilter2D")
+    , ("glCopyPixels", "glCopyPixels")
+    , ("glCopyTexImage1D", "glCopyTexImage1D")
+    , ("glCopyTexImage2D", "glCopyTexImage2D")
+    , ("glCopyTexSubImage1D", "glCopyTexSubImage1D")
+    , ("glCopyTexSubImage2D", "glCopyTexSubImage2D")
+    , ("glCopyTexSubImage3D", "glCopyTexSubImage3D")
+    , ("glCreateProgram", "glCreateProgram")
+    , ("glCreateShader", "glCreateShader")
+    , ("glCullFace", "glCullFace")
+    , ("glDeleteBuffers", "glDeleteBuffers")
+    , ("glDeleteLists", "glDeleteLists")
+    , ("glDeleteProgram", "glDeleteProgram")
+    , ("glDeleteQueries", "glDeleteQueries")
+    , ("glDeleteShader", "glDeleteShader")
+    , ("glDeleteTextures", "glDeleteTextures")
+    , ("glDepthFunc", "glDepthFunc")
+    , ("glDepthMask", "glDepthMask")
+    , ("glDepthRange", "glDepthRange")
+    , ("glDetachShader", "glDetachShader")
+    , ("glDrawArrays", "glDrawArrays")
+    , ("glDrawBuffers", "glDrawBuffers")
+    , ("glDrawBuffer", "glDrawBuffer")
+    , ("glDrawElements", "glDrawElements")
+    , ("glDrawPixels", "glDrawPixels")
+    , ("glDrawRangeElements", "glDrawRangeElements")
+    , ("glEdgeFlagPointer", "glEdgeFlagPointer")
+    , ("glEdgeFlag", "glEdgeFlag")
+    , ("glEdgeFlagv", "glEdgeFlag")
+    , ("glEnableClientState", "glEnableClientState")
+    , ("glDisableClientState", "glEnableClientState")
+    , ("glEnableVertexAttribArray", "glEnableVertexAttribArray")
+    , ("glDisableVertexAttribArray", "glEnableVertexAttribArray")
+    , ("glEnable", "glEnable")
+    , ("glDisable", "glEnable")
+    , ("glEvalCoord1f", "glEvalCoord")
+    , ("glEvalCoord1d", "glEvalCoord")
+    , ("glEvalCoord2f", "glEvalCoord")
+    , ("glEvalCoord2d", "glEvalCoord")
+    , ("glEvalCoord1fv", "glEvalCoord")
+    , ("glEvalCoord1dv", "glEvalCoord")
+    , ("glEvalCoord2fv", "glEvalCoord")
+    , ("glEvalCoord2dv", "glEvalCoord")
+    , ("glEvalMesh1", "glEvalMesh")
+    , ("glEvalMesh2", "glEvalMesh")
+    , ("glEvalPoint1", "glEvalPoint")
+    , ("glEvalPoint2", "glEvalPoint")
+    , ("glFeedbackBuffer", "glFeedbackBuffer")
+    , ("glFinish", "glFinish")
+    , ("glFlush", "glFlush")
+    , ("glFogCoordPointer", "glFogCoordPointer")
+    , ("glFogCoordd", "glFogCoord")
+    , ("glFogCoordf", "glFogCoord")
+    , ("glFogCoorddv", "glFogCoord")
+    , ("glFogCoordfv", "glFogCoord")
+    , ("glFogf", "glFog")
+    , ("glFogi", "glFog")
+    , ("glFogfv", "glFog")
+    , ("glFogiv", "glFog")
+    , ("glFrontFace", "glFrontFace")
+    , ("glFrustum", "glFrustum")
+    , ("glGenBuffers", "glGenBuffers")
+    , ("glGenLists", "glGenLists")
+    , ("glGenQueries", "glGenQueries")
+    , ("glGenTextures", "glGenTextures")
+    , ("glGetActiveAttrib", "glGetActiveAttrib")
+    , ("glGetActiveUniform", "glGetActiveUniform")
+    , ("glGetAttachedShaders", "glGetAttachedShaders")
+    , ("glGetAttribLocation", "glGetAttribLocation")
+    , ("glGetBufferParameteriv", "glGetBufferParameteriv")
+    , ("glGetBufferPointerv", "glGetBufferPointerv")
+    , ("glGetBufferSubData", "glGetBufferSubData")
+    , ("glGetClipPlane", "glGetClipPlane")
+    , ("glGetColorTableParameterfv", "glGetColorTableParameter")
+    , ("glGetColorTableParameteriv", "glGetColorTableParameter")
+    , ("glGetColorTable", "glGetColorTable")
+    , ("glGetCompressedTexImage", "glGetCompressedTexImage")
+    , ("glGetConvolutionFilter", "glGetConvolutionFilter")
+    , ("glGetConvolutionParameterfv", "glGetConvolutionParameter")
+    , ("glGetConvolutionParameteriv", "glGetConvolutionParameter")
+    , ("glGetError", "glGetError")
+    , ("glGetHistogramParameterfv", "glGetHistogramParameter")
+    , ("glGetHistogramParameteriv", "glGetHistogramParameter")
+    , ("glGetHistogram", "glGetHistogram")
+    , ("glGetLightfv", "glGetLight")
+    , ("glGetLightiv", "glGetLight")
+    , ("glGetMapdv", "glGetMap")
+    , ("glGetMapfv", "glGetMap")
+    , ("glGetMapiv", "glGetMap")
+    , ("glGetMaterialfv", "glGetMaterial")
+    , ("glGetMaterialiv", "glGetMaterial")
+    , ("glGetMinmaxParameterfv", "glGetMinmaxParameter")
+    , ("glGetMinmaxParameteriv", "glGetMinmaxParameter")
+    , ("glGetMinmax", "glGetMinmax")
+    , ("glGetPixelMapfv", "glGetPixelMap")
+    , ("glGetPixelMapuiv", "glGetPixelMap")
+    , ("glGetPixelMapusv", "glGetPixelMap")
+    , ("glGetPointerv", "glGetPointerv")
+    , ("glGetPolygonStipple", "glGetPolygonStipple")
+    , ("glGetProgramInfoLog", "glGetProgramInfoLog")
+    , ("glGetProgramiv", "glGetProgram")
+    , ("glGetQueryiv", "glGetQueryiv")
+    , ("glGetQueryObjectiv", "glGetQueryObject")
+    , ("glGetQueryObjectuiv", "glGetQueryObject")
+    , ("glGetSeparableFilter", "glGetSeparableFilter")
+    , ("glGetShaderInfoLog", "glGetShaderInfoLog")
+    , ("glGetShaderSource", "glGetShaderSource")
+    , ("glGetShaderiv", "glGetShader")
+    , ("glGetString", "glGetString")
+    , ("glGetTexEnvfv", "glGetTexEnv")
+    , ("glGetTexEnviv", "glGetTexEnv")
+    , ("glGetTexGendv", "glGetTexGen")
+    , ("glGetTexGenfv", "glGetTexGen")
+    , ("glGetTexGeniv", "glGetTexGen")
+    , ("glGetTexImage", "glGetTexImage")
+    , ("glGetTexLevelParameterfv", "glGetTexLevelParameter")
+    , ("glGetTexLevelParameteriv", "glGetTexLevelParameter")
+    , ("glGetTexParameterfv", "glGetTexParameter")
+    , ("glGetTexParameteriv", "glGetTexParameter")
+    , ("glGetUniformLocation", "glGetUniformLocation")
+    , ("glGetUniformfv", "glGetUniform")
+    , ("glGetUniformiv", "glGetUniform")
+    , ("glGetVertexAttribPointerv", "glGetVertexAttribPointerv")
+    , ("glGetVertexAttribdv", "glGetVertexAttrib")
+    , ("glGetVertexAttribfv", "glGetVertexAttrib")
+    , ("glGetVertexAttribiv", "glGetVertexAttrib")
+    , ("glGetBooleanv", "glGet")
+    , ("glGetDoublev", "glGet")
+    , ("glGetFloatv", "glGet")
+    , ("glGetIntegerv", "glGet")
+    , ("glHint", "glHint")
+    , ("glHistogram", "glHistogram")
+    , ("glIndexMask", "glIndexMask")
+    , ("glIndexPointer", "glIndexPointer")
+    , ("glIndexs", "glIndex")
+    , ("glIndexi", "glIndex")
+    , ("glIndexf", "glIndex")
+    , ("glIndexd", "glIndex")
+    , ("glIndexub", "glIndex")
+    , ("glIndexsv", "glIndex")
+    , ("glIndexiv", "glIndex")
+    , ("glIndexfv", "glIndex")
+    , ("glIndexdv", "glIndex")
+    , ("glIndexubv", "glIndex")
+    , ("glInitNames", "glInitNames")
+    , ("glInterleavedArrays", "glInterleavedArrays")
+    , ("glIsBuffer", "glIsBuffer")
+    , ("glIsEnabled", "glIsEnabled")
+    , ("glIsList", "glIsList")
+    , ("glIsProgram", "glIsProgram")
+    , ("glIsQuery", "glIsQuery")
+    , ("glIsShader", "glIsShader")
+    , ("glIsTexture", "glIsTexture")
+    , ("glLightModelf", "glLightModel")
+    , ("glLightModeli", "glLightModel")
+    , ("glLightModelfv", "glLightModel")
+    , ("glLightModeliv", "glLightModel")
+    , ("glLightf", "glLight")
+    , ("glLighti", "glLight")
+    , ("glLightfv", "glLight")
+    , ("glLightiv", "glLight")
+    , ("glLineStipple", "glLineStipple")
+    , ("glLineWidth", "glLineWidth")
+    , ("glLinkProgram", "glLinkProgram")
+    , ("glListBase", "glListBase")
+    , ("glLoadIdentity", "glLoadIdentity")
+    , ("glLoadMatrixd", "glLoadMatrix")
+    , ("glLoadMatrixf", "glLoadMatrix")
+    , ("glLoadName", "glLoadName")
+    , ("glLoadTransposeMatrixd", "glLoadTransposeMatrix")
+    , ("glLoadTransposeMatrixf", "glLoadTransposeMatrix")
+    , ("glLogicOp", "glLogicOp")
+    , ("glMap1f", "glMap1")
+    , ("glMap1d", "glMap1")
+    , ("glMap2f", "glMap2")
+    , ("glMap2d", "glMap2")
+    , ("glMapBuffer", "glMapBuffer")
+    , ("glUnmapBuffer", "glMapBuffer")
+    , ("glMapGrid1d", "glMapGrid")
+    , ("glMapGrid1f", "glMapGrid")
+    , ("glMapGrid2d", "glMapGrid")
+    , ("glMapGrid2f", "glMapGrid")
+    , ("glMaterialf", "glMaterial")
+    , ("glMateriali", "glMaterial")
+    , ("glMaterialfv", "glMaterial")
+    , ("glMaterialiv", "glMaterial")
+    , ("glMatrixMode", "glMatrixMode")
+    , ("glMinmax", "glMinmax")
+    , ("glMultiDrawArrays", "glMultiDrawArrays")
+    , ("glMultiDrawElements", "glMultiDrawElements")
+    , ("glMultiTexCoord1s", "glMultiTexCoord")
+    , ("glMultiTexCoord1i", "glMultiTexCoord")
+    , ("glMultiTexCoord1f", "glMultiTexCoord")
+    , ("glMultiTexCoord1d", "glMultiTexCoord")
+    , ("glMultiTexCoord2s", "glMultiTexCoord")
+    , ("glMultiTexCoord2i", "glMultiTexCoord")
+    , ("glMultiTexCoord2f", "glMultiTexCoord")
+    , ("glMultiTexCoord2d", "glMultiTexCoord")
+    , ("glMultiTexCoord3s", "glMultiTexCoord")
+    , ("glMultiTexCoord3i", "glMultiTexCoord")
+    , ("glMultiTexCoord3f", "glMultiTexCoord")
+    , ("glMultiTexCoord3d", "glMultiTexCoord")
+    , ("glMultiTexCoord4s", "glMultiTexCoord")
+    , ("glMultiTexCoord4i", "glMultiTexCoord")
+    , ("glMultiTexCoord4f", "glMultiTexCoord")
+    , ("glMultiTexCoord4d", "glMultiTexCoord")
+    , ("glMultiTexCoord1sv", "glMultiTexCoord")
+    , ("glMultiTexCoord1iv", "glMultiTexCoord")
+    , ("glMultiTexCoord1fv", "glMultiTexCoord")
+    , ("glMultiTexCoord1dv", "glMultiTexCoord")
+    , ("glMultiTexCoord2sv", "glMultiTexCoord")
+    , ("glMultiTexCoord2iv", "glMultiTexCoord")
+    , ("glMultiTexCoord2fv", "glMultiTexCoord")
+    , ("glMultiTexCoord2dv", "glMultiTexCoord")
+    , ("glMultiTexCoord3sv", "glMultiTexCoord")
+    , ("glMultiTexCoord3iv", "glMultiTexCoord")
+    , ("glMultiTexCoord3fv", "glMultiTexCoord")
+    , ("glMultiTexCoord3dv", "glMultiTexCoord")
+    , ("glMultiTexCoord4sv", "glMultiTexCoord")
+    , ("glMultiTexCoord4iv", "glMultiTexCoord")
+    , ("glMultiTexCoord4fv", "glMultiTexCoord")
+    , ("glMultiTexCoord4dv", "glMultiTexCoord")
+    , ("glMultMatrixd", "glMultMatrix")
+    , ("glMultMatrixf", "glMultMatrix")
+    , ("glMultTransposeMatrixd", "glMultTransposeMatrix")
+    , ("glMultTransposeMatrixf", "glMultTransposeMatrix")
+    , ("glNewList", "glNewList")
+    , ("glEndList", "glNewList")
+    , ("glNormalPointer", "glNormalPointer")
+    , ("glNormal3b", "glNormal")
+    , ("glNormal3d", "glNormal")
+    , ("glNormal3f", "glNormal")
+    , ("glNormal3i", "glNormal")
+    , ("glNormal3s", "glNormal")
+    , ("glNormal3bv", "glNormal")
+    , ("glNormal3dv", "glNormal")
+    , ("glNormal3fv", "glNormal")
+    , ("glNormal3iv", "glNormal")
+    , ("glNormal3sv", "glNormal")
+    , ("glOrtho", "glOrtho")
+    , ("glPassThrough", "glPassThrough")
+    , ("glPixelMapfv", "glPixelMap")
+    , ("glPixelMapuiv", "glPixelMap")
+    , ("glPixelMapusv", "glPixelMap")
+    , ("glPixelStoref", "glPixelStore")
+    , ("glPixelStorei", "glPixelStore")
+    , ("glPixelTransferf", "glPixelTransfer")
+    , ("glPixelTransferi", "glPixelTransfer")
+    , ("glPixelZoom", "glPixelZoom")
+    , ("glPointParameterf", "glPointParameter")
+    , ("glPointParameteri", "glPointParameter")
+    , ("glPointParameterfv", "glPointParameter")
+    , ("glPointParameteriv", "glPointParameter")
+    , ("glPointSize", "glPointSize")
+    , ("glPolygonMode", "glPolygonMode")
+    , ("glPolygonOffset", "glPolygonOffset")
+    , ("glPolygonStipple", "glPolygonStipple")
+    , ("glPrioritizeTextures", "glPrioritizeTextures")
+    , ("glPushAttrib", "glPushAttrib")
+    , ("glPopAttrib", "glPushAttrib")
+    , ("glPushClientAttrib", "glPushClientAttrib")
+    , ("glPopClientAttrib", "glPushClientAttrib")
+    , ("glPushMatrix", "glPushMatrix")
+    , ("glPopMatrix", "glPushMatrix")
+    , ("glPushName", "glPushName")
+    , ("glPopName", "glPushName")
+    , ("glRasterPos2s", "glRasterPos")
+    , ("glRasterPos2i", "glRasterPos")
+    , ("glRasterPos2f", "glRasterPos")
+    , ("glRasterPos2d", "glRasterPos")
+    , ("glRasterPos3s", "glRasterPos")
+    , ("glRasterPos3i", "glRasterPos")
+    , ("glRasterPos3f", "glRasterPos")
+    , ("glRasterPos3d", "glRasterPos")
+    , ("glRasterPos4s", "glRasterPos")
+    , ("glRasterPos4i", "glRasterPos")
+    , ("glRasterPos4f", "glRasterPos")
+    , ("glRasterPos4d", "glRasterPos")
+    , ("glRasterPos2sv", "glRasterPos")
+    , ("glRasterPos2iv", "glRasterPos")
+    , ("glRasterPos2fv", "glRasterPos")
+    , ("glRasterPos2dv", "glRasterPos")
+    , ("glRasterPos3sv", "glRasterPos")
+    , ("glRasterPos3iv", "glRasterPos")
+    , ("glRasterPos3fv", "glRasterPos")
+    , ("glRasterPos3dv", "glRasterPos")
+    , ("glRasterPos4sv", "glRasterPos")
+    , ("glRasterPos4iv", "glRasterPos")
+    , ("glRasterPos4fv", "glRasterPos")
+    , ("glRasterPos4dv", "glRasterPos")
+    , ("glReadBuffer", "glReadBuffer")
+    , ("glReadPixels", "glReadPixels")
+    , ("glRectd", "glRect")
+    , ("glRectf", "glRect")
+    , ("glRecti", "glRect")
+    , ("glRects", "glRect")
+    , ("glRectdv", "glRect")
+    , ("glRectfv", "glRect")
+    , ("glRectiv", "glRect")
+    , ("glRectsv", "glRect")
+    , ("glRenderMode", "glRenderMode")
+    , ("glResetHistogram", "glResetHistogram")
+    , ("glResetMinmax", "glResetMinmax")
+    , ("glRotated", "glRotate")
+    , ("glRotatef", "glRotate")
+    , ("glSampleCoverage", "glSampleCoverage")
+    , ("glScaled", "glScale")
+    , ("glScalef", "glScale")
+    , ("glScissor", "glScissor")
+    , ("glSecondaryColorPointer", "glSecondaryColorPointer")
+    , ("glSecondaryColor3b", "glSecondaryColor")
+    , ("glSecondaryColor3s", "glSecondaryColor")
+    , ("glSecondaryColor3i", "glSecondaryColor")
+    , ("glSecondaryColor3f", "glSecondaryColor")
+    , ("glSecondaryColor3d", "glSecondaryColor")
+    , ("glSecondaryColor3ub", "glSecondaryColor")
+    , ("glSecondaryColor3us", "glSecondaryColor")
+    , ("glSecondaryColor3ui", "glSecondaryColor")
+    , ("glSecondaryColor3bv", "glSecondaryColor")
+    , ("glSecondaryColor3sv", "glSecondaryColor")
+    , ("glSecondaryColor3iv", "glSecondaryColor")
+    , ("glSecondaryColor3fv", "glSecondaryColor")
+    , ("glSecondaryColor3dv", "glSecondaryColor")
+    , ("glSecondaryColor3ubv", "glSecondaryColor")
+    , ("glSecondaryColor3usv", "glSecondaryColor")
+    , ("glSecondaryColor3uiv", "glSecondaryColor")
+    , ("glSelectBuffer", "glSelectBuffer")
+    , ("glSeparableFilter2D", "glSeparableFilter2D")
+    , ("glShadeModel", "glShadeModel")
+    , ("glShaderSource", "glShaderSource")
+    , ("glStencilFuncSeparate", "glStencilFuncSeparate")
+    , ("glStencilFunc", "glStencilFunc")
+    , ("glStencilMaskSeparate", "glStencilMaskSeparate")
+    , ("glStencilMask", "glStencilMask")
+    , ("glStencilOpSeparate", "glStencilOpSeparate")
+    , ("glStencilOp", "glStencilOp")
+    , ("glTexCoordPointer", "glTexCoordPointer")
+    , ("glTexCoord1s", "glTexCoord")
+    , ("glTexCoord1i", "glTexCoord")
+    , ("glTexCoord1f", "glTexCoord")
+    , ("glTexCoord1d", "glTexCoord")
+    , ("glTexCoord2s", "glTexCoord")
+    , ("glTexCoord2i", "glTexCoord")
+    , ("glTexCoord2f", "glTexCoord")
+    , ("glTexCoord2d", "glTexCoord")
+    , ("glTexCoord3s", "glTexCoord")
+    , ("glTexCoord3i", "glTexCoord")
+    , ("glTexCoord3f", "glTexCoord")
+    , ("glTexCoord3d", "glTexCoord")
+    , ("glTexCoord4s", "glTexCoord")
+    , ("glTexCoord4i", "glTexCoord")
+    , ("glTexCoord4f", "glTexCoord")
+    , ("glTexCoord4d", "glTexCoord")
+    , ("glTexCoord1sv", "glTexCoord")
+    , ("glTexCoord1iv", "glTexCoord")
+    , ("glTexCoord1fv", "glTexCoord")
+    , ("glTexCoord1dv", "glTexCoord")
+    , ("glTexCoord2sv", "glTexCoord")
+    , ("glTexCoord2iv", "glTexCoord")
+    , ("glTexCoord2fv", "glTexCoord")
+    , ("glTexCoord2dv", "glTexCoord")
+    , ("glTexCoord3sv", "glTexCoord")
+    , ("glTexCoord3iv", "glTexCoord")
+    , ("glTexCoord3fv", "glTexCoord")
+    , ("glTexCoord3dv", "glTexCoord")
+    , ("glTexCoord4sv", "glTexCoord")
+    , ("glTexCoord4iv", "glTexCoord")
+    , ("glTexCoord4fv", "glTexCoord")
+    , ("glTexCoord4dv", "glTexCoord")
+    , ("glTexEnvf", "glTexEnv")
+    , ("glTexEnvi", "glTexEnv")
+    , ("glTexEnvfv", "glTexEnv")
+    , ("glTexEnviv", "glTexEnv")
+    , ("glTexGeni", "glTexGen")
+    , ("glTexGenf", "glTexGen")
+    , ("glTexGend", "glTexGen")
+    , ("glTexGeniv", "glTexGen")
+    , ("glTexGenfv", "glTexGen")
+    , ("glTexGendv", "glTexGen")
+    , ("glTexImage1D", "glTexImage1D")
+    , ("glTexImage2D", "glTexImage2D")
+    , ("glTexImage3D", "glTexImage3D")
+    , ("glTexParameterf", "glTexParameter")
+    , ("glTexParameteri", "glTexParameter")
+    , ("glTexParameterfv", "glTexParameter")
+    , ("glTexParameteriv", "glTexParameter")
+    , ("glTexSubImage1D", "glTexSubImage1D")
+    , ("glTexSubImage2D", "glTexSubImage2D")
+    , ("glTexSubImage3D", "glTexSubImage3D")
+    , ("glTranslated", "glTranslate")
+    , ("glTranslatef", "glTranslate")
+    , ("gluBeginCurve", "gluBeginCurve")
+    , ("gluEndCurve", "gluBeginCurve")
+    , ("gluBeginPolygon", "gluBeginPolygon")
+    , ("gluEndPolygon", "gluBeginPolygon")
+    , ("gluBeginSurface", "gluBeginSurface")
+    , ("gluEndSurface", "gluBeginSurface")
+    , ("gluBeginTrim", "gluBeginTrim")
+    , ("gluEndTrim", "gluBeginTrim")
+    , ("gluBuild1DMipmapLevels", "gluBuild1DMipmapLevels")
+    , ("gluBuild1DMipmaps", "gluBuild1DMipmaps")
+    , ("gluBuild2DMipmapLevels", "gluBuild2DMipmapLevels")
+    , ("gluBuild2DMipmaps", "gluBuild2DMipmaps")
+    , ("gluBuild3DMipmapLevels", "gluBuild3DMipmapLevels")
+    , ("gluBuild3DMipmaps", "gluBuild3DMipmaps")
+    , ("gluCheckExtension", "gluCheckExtension")
+    , ("gluCylinder", "gluCylinder")
+    , ("gluDeleteNurbsRenderer", "gluDeleteNurbsRenderer")
+    , ("gluDeleteQuadric", "gluDeleteQuadric")
+    , ("gluDeleteTess", "gluDeleteTess")
+    , ("gluDisk", "gluDisk")
+    , ("gluErrorString", "gluErrorString")
+    , ("gluGetNurbsProperty", "gluGetNurbsProperty")
+    , ("gluGetString", "gluGetString")
+    , ("gluGetTessProperty", "gluGetTessProperty")
+    , ("gluLoadSamplingMatrices", "gluLoadSamplingMatrices")
+    , ("gluLookAt", "gluLookAt")
+    , ("gluNewNurbsRenderer", "gluNewNurbsRenderer")
+    , ("gluNewQuadric", "gluNewQuadric")
+    , ("gluNewTess", "gluNewTess")
+    , ("gluNextContour", "gluNextContour")
+    , ("glUniform1f", "glUniform")
+    , ("glUniform2f", "glUniform")
+    , ("glUniform3f", "glUniform")
+    , ("glUniform4f", "glUniform")
+    , ("glUniform1i", "glUniform")
+    , ("glUniform2i", "glUniform")
+    , ("glUniform3i", "glUniform")
+    , ("glUniform4i", "glUniform")
+    , ("glUniform1fv", "glUniform")
+    , ("glUniform2fv", "glUniform")
+    , ("glUniform3fv", "glUniform")
+    , ("glUniform4fv", "glUniform")
+    , ("glUniform1iv", "glUniform")
+    , ("glUniform2iv", "glUniform")
+    , ("glUniform3iv", "glUniform")
+    , ("glUniform4iv", "glUniform")
+    , ("glUniformMatrix2fv", "glUniform")
+    , ("glUniformMatrix3fv", "glUniform")
+    , ("glUniformMatrix4fv", "glUniform")
+    , ("glUniformMatrix2x3fv", "glUniform")
+    , ("glUniformMatrix3x2fv", "glUniform")
+    , ("glUniformMatrix2x4fv", "glUniform")
+    , ("glUniformMatrix4x2fv", "glUniform")
+    , ("glUniformMatrix3x4fv", "glUniform")
+    , ("glUniformMatrix4x3fv", "glUniform")
+    , ("gluNurbsCallbackDataEXT", "gluNurbsCallbackDataEXT")
+    , ("gluNurbsCallbackData", "gluNurbsCallbackData")
+    , ("gluNurbsCallback", "gluNurbsCallback")
+    , ("gluNurbsCurve", "gluNurbsCurve")
+    , ("gluNurbsProperty", "gluNurbsProperty")
+    , ("gluNurbsSurface", "gluNurbsSurface")
+    , ("gluOrtho2D", "gluOrtho2D")
+    , ("gluPartialDisk", "gluPartialDisk")
+    , ("gluPerspective", "gluPerspective")
+    , ("gluPickMatrix", "gluPickMatrix")
+    , ("gluProject", "gluProject")
+    , ("gluPwlCurve", "gluPwlCurve")
+    , ("gluQuadricCallback", "gluQuadricCallback")
+    , ("gluQuadricDrawStyle", "gluQuadricDrawStyle")
+    , ("gluQuadricNormals", "gluQuadricNormals")
+    , ("gluQuadricOrientation", "gluQuadricOrientation")
+    , ("gluQuadricTexture", "gluQuadricTexture")
+    , ("gluScaleImage", "gluScaleImage")
+    , ("glUseProgram", "glUseProgram")
+    , ("gluSphere", "gluSphere")
+    , ("gluTessBeginContour", "gluTessBeginContour")
+    , ("gluTessEndContour", "gluTessBeginContour")
+    , ("gluTessBeginPolygon", "gluTessBeginPolygon")
+    , ("gluTessCallback", "gluTessCallback")
+    , ("gluTessEndPolygon", "gluTessEndPolygon")
+    , ("gluTessNormal", "gluTessNormal")
+    , ("gluTessProperty", "gluTessProperty")
+    , ("gluTessVertex", "gluTessVertex")
+    , ("gluUnProject4", "gluUnProject4")
+    , ("gluUnProject", "gluUnProject")
+    , ("glValidateProgram", "glValidateProgram")
+    , ("glVertexAttribPointer", "glVertexAttribPointer")
+    , ("glVertexAttrib1f", "glVertexAttrib")
+    , ("glVertexAttrib1s", "glVertexAttrib")
+    , ("glVertexAttrib1d", "glVertexAttrib")
+    , ("glVertexAttrib2f", "glVertexAttrib")
+    , ("glVertexAttrib2s", "glVertexAttrib")
+    , ("glVertexAttrib2d", "glVertexAttrib")
+    , ("glVertexAttrib3f", "glVertexAttrib")
+    , ("glVertexAttrib3s", "glVertexAttrib")
+    , ("glVertexAttrib3d", "glVertexAttrib")
+    , ("glVertexAttrib4f", "glVertexAttrib")
+    , ("glVertexAttrib4s", "glVertexAttrib")
+    , ("glVertexAttrib4d", "glVertexAttrib")
+    , ("glVertexAttrib4Nub", "glVertexAttrib")
+    , ("glVertexAttrib1fv", "glVertexAttrib")
+    , ("glVertexAttrib1sv", "glVertexAttrib")
+    , ("glVertexAttrib1dv", "glVertexAttrib")
+    , ("glVertexAttrib2fv", "glVertexAttrib")
+    , ("glVertexAttrib2sv", "glVertexAttrib")
+    , ("glVertexAttrib2dv", "glVertexAttrib")
+    , ("glVertexAttrib3fv", "glVertexAttrib")
+    , ("glVertexAttrib3sv", "glVertexAttrib")
+    , ("glVertexAttrib3dv", "glVertexAttrib")
+    , ("glVertexAttrib4fv", "glVertexAttrib")
+    , ("glVertexAttrib4sv", "glVertexAttrib")
+    , ("glVertexAttrib4dv", "glVertexAttrib")
+    , ("glVertexAttrib4iv", "glVertexAttrib")
+    , ("glVertexAttrib4bv", "glVertexAttrib")
+    , ("glVertexAttrib4ubv", "glVertexAttrib")
+    , ("glVertexAttrib4usv", "glVertexAttrib")
+    , ("glVertexAttrib4uiv", "glVertexAttrib")
+    , ("glVertexAttrib4Nbv", "glVertexAttrib")
+    , ("glVertexAttrib4Nsv", "glVertexAttrib")
+    , ("glVertexAttrib4Niv", "glVertexAttrib")
+    , ("glVertexAttrib4Nubv", "glVertexAttrib")
+    , ("glVertexAttrib4Nusv", "glVertexAttrib")
+    , ("glVertexAttrib4Nuiv", "glVertexAttrib")
+    , ("glVertexPointer", "glVertexPointer")
+    , ("glVertex2s", "glVertex")
+    , ("glVertex2i", "glVertex")
+    , ("glVertex2f", "glVertex")
+    , ("glVertex2d", "glVertex")
+    , ("glVertex3s", "glVertex")
+    , ("glVertex3i", "glVertex")
+    , ("glVertex3f", "glVertex")
+    , ("glVertex3d", "glVertex")
+    , ("glVertex4s", "glVertex")
+    , ("glVertex4i", "glVertex")
+    , ("glVertex4f", "glVertex")
+    , ("glVertex4d", "glVertex")
+    , ("glVertex2sv", "glVertex")
+    , ("glVertex2iv", "glVertex")
+    , ("glVertex2fv", "glVertex")
+    , ("glVertex2dv", "glVertex")
+    , ("glVertex3sv", "glVertex")
+    , ("glVertex3iv", "glVertex")
+    , ("glVertex3fv", "glVertex")
+    , ("glVertex3dv", "glVertex")
+    , ("glVertex4sv", "glVertex")
+    , ("glVertex4iv", "glVertex")
+    , ("glVertex4fv", "glVertex")
+    , ("glVertex4dv", "glVertex")
+    , ("glViewport", "glViewport")
+    , ("glWindowPos2s", "glWindowPos")
+    , ("glWindowPos2i", "glWindowPos")
+    , ("glWindowPos2f", "glWindowPos")
+    , ("glWindowPos2d", "glWindowPos")
+    , ("glWindowPos3s", "glWindowPos")
+    , ("glWindowPos3i", "glWindowPos")
+    , ("glWindowPos3f", "glWindowPos")
+    , ("glWindowPos3d", "glWindowPos")
+    , ("glWindowPos2sv", "glWindowPos")
+    , ("glWindowPos2iv", "glWindowPos")
+    , ("glWindowPos2fv", "glWindowPos")
+    , ("glWindowPos2dv", "glWindowPos")
+    , ("glWindowPos3sv", "glWindowPos")
+    , ("glWindowPos3iv", "glWindowPos")
+    , ("glWindowPos3fv", "glWindowPos")
+    , ("glWindowPos3dv", "glWindowPos")
+    ]
+
+assocsGLX1 :: [(ManPageKey, [(URL, Label)])]
+assocsGLX1 =
+  entriesFor
+    "glx"
+    "GLX 1.x"
+    "https://www.opengl.org/sdk/docs/man2/xhtml/"
+    ".xml"
+    [ ("glXChooseFBConfig", "glXChooseFBConfig")
+    , ("glXChooseVisual", "glXChooseVisual")
+    , ("glXCopyContext", "glXCopyContext")
+    , ("glXCreateContext", "glXCreateContext")
+    , ("glXCreateGLXPixmap", "glXCreateGLXPixmap")
+    , ("glXCreateNewContext", "glXCreateNewContext")
+    , ("glXCreatePbuffer", "glXCreatePbuffer")
+    , ("glXCreatePixmap", "glXCreatePixmap")
+    , ("glXCreateWindow", "glXCreateWindow")
+    , ("glXDestroyContext", "glXDestroyContext")
+    , ("glXDestroyGLXPixmap", "glXDestroyGLXPixmap")
+    , ("glXDestroyPbuffer", "glXDestroyPbuffer")
+    , ("glXDestroyPixmap", "glXDestroyPixmap")
+    , ("glXDestroyWindow", "glXDestroyWindow")
+    , ("glXFreeContextEXT", "glXFreeContextEXT")
+    , ("glXGetClientString", "glXGetClientString")
+    , ("glXGetConfig", "glXGetConfig")
+    , ("glXGetContextIDEXT", "glXGetContextIDEXT")
+    , ("glXGetCurrentContext", "glXGetCurrentContext")
+    , ("glXGetCurrentDisplay", "glXGetCurrentDisplay")
+    , ("glXGetCurrentDrawable", "glXGetCurrentDrawable")
+    , ("glXGetCurrentReadDrawable", "glXGetCurrentReadDrawable")
+    , ("glXGetFBConfigAttrib", "glXGetFBConfigAttrib")
+    , ("glXGetFBConfigs", "glXGetFBConfigs")
+    , ("glXGetProcAddress", "glXGetProcAddress")
+    , ("glXGetSelectedEvent", "glXGetSelectedEvent")
+    , ("glXGetVisualFromFBConfig", "glXGetVisualFromFBConfig")
+    , ("glXImportContextEXT", "glXImportContextEXT")
+    , ("glXIsDirect", "glXIsDirect")
+    , ("glXMakeContextCurrent", "glXMakeContextCurrent")
+    , ("glXMakeCurrent", "glXMakeCurrent")
+    , ("glXQueryContextInfoEXT", "glXQueryContextInfoEXT")
+    , ("glXQueryContext", "glXQueryContext")
+    , ("glXQueryDrawable", "glXQueryDrawable")
+    , ("glXQueryExtensionsString", "glXQueryExtensionsString")
+    , ("glXQueryExtension", "glXQueryExtension")
+    , ("glXQueryServerString", "glXQueryServerString")
+    , ("glXQueryVersion", "glXQueryVersion")
+    , ("glXSelectEvent", "glXSelectEvent")
+    , ("glXSwapBuffers", "glXSwapBuffers")
+    , ("glXUseXFont", "glXUseXFont")
+    , ("glXWaitGL", "glXWaitGL")
+    , ("glXWaitX", "glXWaitX")
+    ]
+
+assocsGL3 :: [(ManPageKey, [(URL, Label)])]
+assocsGL3 =
+  entriesFor
+    "gl"
+    "OpenGL 3.x"
+    "https://www.opengl.org/sdk/docs/man3/xhtml/"
+    ".xml"
+    [ ("glActiveTexture", "glActiveTexture")
+    , ("glAttachShader", "glAttachShader")
+    , ("glBeginConditionalRender", "glBeginConditionalRender")
+    , ("glEndConditionalRender", "glBeginConditionalRender")
+    , ("glBeginQuery", "glBeginQuery")
+    , ("glEndQuery", "glBeginQuery")
+    , ("glBeginTransformFeedback", "glBeginTransformFeedback")
+    , ("glEndTransformFeedback", "glBeginTransformFeedback")
+    , ("glBindAttribLocation", "glBindAttribLocation")
+    , ("glBindBufferBase", "glBindBufferBase")
+    , ("glBindBufferRange", "glBindBufferRange")
+    , ("glBindBuffer", "glBindBuffer")
+    , ("glBindFragDataLocationIndexed", "glBindFragDataLocationIndexed")
+    , ("glBindFragDataLocation", "glBindFragDataLocation")
+    , ("glBindFramebuffer", "glBindFramebuffer")
+    , ("glBindRenderbuffer", "glBindRenderbuffer")
+    , ("glBindSampler", "glBindSampler")
+    , ("glBindTexture", "glBindTexture")
+    , ("glBindVertexArray", "glBindVertexArray")
+    , ("glBlendColor", "glBlendColor")
+    , ("glBlendEquationSeparate", "glBlendEquationSeparate")
+    , ("glBlendEquation", "glBlendEquation")
+    , ("glBlendFuncSeparate", "glBlendFuncSeparate")
+    , ("glBlendFunc", "glBlendFunc")
+    , ("glBlitFramebuffer", "glBlitFramebuffer")
+    , ("glBufferData", "glBufferData")
+    , ("glBufferSubData", "glBufferSubData")
+    , ("glCheckFramebufferStatus", "glCheckFramebufferStatus")
+    , ("glClampColor", "glClampColor")
+    , ("glClearBufferiv", "glClearBuffer")
+    , ("glClearBufferuiv", "glClearBuffer")
+    , ("glClearBufferfv", "glClearBuffer")
+    , ("glClearBufferfi", "glClearBuffer")
+    , ("glClearColor", "glClearColor")
+    , ("glClearDepth", "glClearDepth")
+    , ("glClearStencil", "glClearStencil")
+    , ("glClear", "glClear")
+    , ("glClientWaitSync", "glClientWaitSync")
+    , ("glColorMask", "glColorMask")
+    , ("glColorMaski", "glColorMask")
+    , ("glCompileShader", "glCompileShader")
+    , ("glCompressedTexImage1D", "glCompressedTexImage1D")
+    , ("glCompressedTexImage2D", "glCompressedTexImage2D")
+    , ("glCompressedTexImage3D", "glCompressedTexImage3D")
+    , ("glCompressedTexSubImage1D", "glCompressedTexSubImage1D")
+    , ("glCompressedTexSubImage2D", "glCompressedTexSubImage2D")
+    , ("glCompressedTexSubImage3D", "glCompressedTexSubImage3D")
+    , ("glCopyBufferSubData", "glCopyBufferSubData")
+    , ("glCopyTexImage1D", "glCopyTexImage1D")
+    , ("glCopyTexImage2D", "glCopyTexImage2D")
+    , ("glCopyTexSubImage1D", "glCopyTexSubImage1D")
+    , ("glCopyTexSubImage2D", "glCopyTexSubImage2D")
+    , ("glCopyTexSubImage3D", "glCopyTexSubImage3D")
+    , ("glCreateProgram", "glCreateProgram")
+    , ("glCreateShader", "glCreateShader")
+    , ("glCullFace", "glCullFace")
+    , ("glDeleteBuffers", "glDeleteBuffers")
+    , ("glDeleteFramebuffers", "glDeleteFramebuffers")
+    , ("glDeleteProgram", "glDeleteProgram")
+    , ("glDeleteQueries", "glDeleteQueries")
+    , ("glDeleteRenderbuffers", "glDeleteRenderbuffers")
+    , ("glDeleteSamplers", "glDeleteSamplers")
+    , ("glDeleteShader", "glDeleteShader")
+    , ("glDeleteSync", "glDeleteSync")
+    , ("glDeleteTextures", "glDeleteTextures")
+    , ("glDeleteVertexArrays", "glDeleteVertexArrays")
+    , ("glDepthFunc", "glDepthFunc")
+    , ("glDepthMask", "glDepthMask")
+    , ("glDepthRange", "glDepthRange")
+    , ("glDetachShader", "glDetachShader")
+    , ("glDrawArraysInstanced", "glDrawArraysInstanced")
+    , ("glDrawArrays", "glDrawArrays")
+    , ("glDrawBuffers", "glDrawBuffers")
+    , ("glDrawBuffer", "glDrawBuffer")
+    , ("glDrawElementsBaseVertex", "glDrawElementsBaseVertex")
+    , ("glDrawElementsInstancedBaseVertex", "glDrawElementsInstancedBaseVertex")
+    , ("glDrawElementsInstanced", "glDrawElementsInstanced")
+    , ("glDrawElements", "glDrawElements")
+    , ("glDrawRangeElementsBaseVertex", "glDrawRangeElementsBaseVertex")
+    , ("glDrawRangeElements", "glDrawRangeElements")
+    , ("glEnableVertexAttribArray", "glEnableVertexAttribArray")
+    , ("glDisableVertexAttribArray", "glEnableVertexAttribArray")
+    , ("glEnable", "glEnable")
+    , ("glDisable", "glEnable")
+    , ("glEnablei", "glEnable")
+    , ("glDisablei", "glEnable")
+    , ("glFenceSync", "glFenceSync")
+    , ("glFinish", "glFinish")
+    , ("glFlushMappedBufferRange", "glFlushMappedBufferRange")
+    , ("glFlush", "glFlush")
+    , ("glFramebufferRenderbuffer", "glFramebufferRenderbuffer")
+    , ("glFramebufferTextureLayer", "glFramebufferTextureLayer")
+    , ("glFramebufferTexture", "glFramebufferTexture")
+    , ("glFramebufferTexture1D", "glFramebufferTexture")
+    , ("glFramebufferTexture2D", "glFramebufferTexture")
+    , ("glFramebufferTexture3D", "glFramebufferTexture")
+    , ("glFrontFace", "glFrontFace")
+    , ("glGenBuffers", "glGenBuffers")
+    , ("glGenerateMipmap", "glGenerateMipmap")
+    , ("glGenFramebuffers", "glGenFramebuffers")
+    , ("glGenQueries", "glGenQueries")
+    , ("glGenRenderbuffers", "glGenRenderbuffers")
+    , ("glGenSamplers", "glGenSamplers")
+    , ("glGenTextures", "glGenTextures")
+    , ("glGenVertexArrays", "glGenVertexArrays")
+    , ("glGetActiveAttrib", "glGetActiveAttrib")
+    , ("glGetActiveUniformBlockName", "glGetActiveUniformBlockName")
+    , ("glGetActiveUniformBlockiv", "glGetActiveUniformBlock")
+    , ("glGetActiveUniformName", "glGetActiveUniformName")
+    , ("glGetActiveUniformsiv", "glGetActiveUniformsiv")
+    , ("glGetActiveUniform", "glGetActiveUniform")
+    , ("glGetAttachedShaders", "glGetAttachedShaders")
+    , ("glGetAttribLocation", "glGetAttribLocation")
+    , ("glGetBufferParameteriv", "glGetBufferParameter")
+    , ("glGetBufferParameteri64v", "glGetBufferParameter")
+    , ("glGetBufferPointerv", "glGetBufferPointerv")
+    , ("glGetBufferSubData", "glGetBufferSubData")
+    , ("glGetCompressedTexImage", "glGetCompressedTexImage")
+    , ("glGetError", "glGetError")
+    , ("glGetFragDataIndex", "glGetFragDataIndex")
+    , ("glGetFragDataLocation", "glGetFragDataLocation")
+    , ( "glGetFramebufferAttachmentParameteriv"
+      , "glGetFramebufferAttachmentParameter")
+    , ("glGetMultisamplefv", "glGetMultisample")
+    , ("glGetProgramInfoLog", "glGetProgramInfoLog")
+    , ("glGetProgramiv", "glGetProgram")
+    , ("glGetQueryiv", "glGetQueryiv")
+    , ("glGetQueryObjectiv", "glGetQueryObject")
+    , ("glGetQueryObjectuiv", "glGetQueryObject")
+    , ("glGetQueryObjecti64v", "glGetQueryObject")
+    , ("glGetQueryObjectui64v", "glGetQueryObject")
+    , ("glGetRenderbufferParameteriv", "glGetRenderbufferParameter")
+    , ("glGetSamplerParameterfv", "glGetSamplerParameter")
+    , ("glGetSamplerParameteriv", "glGetSamplerParameter")
+    , ("glGetSamplerParameterIiv", "glGetSamplerParameter")
+    , ("glGetSamplerParameterIuiv", "glGetSamplerParameter")
+    , ("glGetShaderInfoLog", "glGetShaderInfoLog")
+    , ("glGetShaderSource", "glGetShaderSource")
+    , ("glGetShaderiv", "glGetShader")
+    , ("glGetString", "glGetString")
+    , ("glGetStringi", "glGetString")
+    , ("glGetSynciv", "glGetSync")
+    , ("glGetTexImage", "glGetTexImage")
+    , ("glGetTexLevelParameterfv", "glGetTexLevelParameter")
+    , ("glGetTexLevelParameteriv", "glGetTexLevelParameter")
+    , ("glGetTexParameterfv", "glGetTexParameter")
+    , ("glGetTexParameteriv", "glGetTexParameter")
+    , ("glGetTexParameterIiv", "glGetTexParameter")
+    , ("glGetTexParameterIuiv", "glGetTexParameter")
+    , ("glGetTransformFeedbackVarying", "glGetTransformFeedbackVarying")
+    , ("glGetUniformBlockIndex", "glGetUniformBlockIndex")
+    , ("glGetUniformIndices", "glGetUniformIndices")
+    , ("glGetUniformLocation", "glGetUniformLocation")
+    , ("glGetUniformfv", "glGetUniform")
+    , ("glGetUniformiv", "glGetUniform")
+    , ("glGetUniformuiv", "glGetUniform")
+    , ("glGetVertexAttribPointerv", "glGetVertexAttribPointerv")
+    , ("glGetVertexAttribdv", "glGetVertexAttrib")
+    , ("glGetVertexAttribfv", "glGetVertexAttrib")
+    , ("glGetVertexAttribiv", "glGetVertexAttrib")
+    , ("glGetVertexAttribIiv", "glGetVertexAttrib")
+    , ("glGetVertexAttribIuiv", "glGetVertexAttrib")
+    , ("glGetBooleanv", "glGet")
+    , ("glGetDoublev", "glGet")
+    , ("glGetFloatv", "glGet")
+    , ("glGetIntegerv", "glGet")
+    , ("glGetInteger64v", "glGet")
+    , ("glGetBooleani_v", "glGet")
+    , ("glGetIntegeri_v", "glGet")
+    , ("glGetInteger64i_v", "glGet")
+    , ("glHint", "glHint")
+    , ("glIsBuffer", "glIsBuffer")
+    , ("glIsEnabled", "glIsEnabled")
+    , ("glIsEnabledi", "glIsEnabled")
+    , ("glIsFramebuffer", "glIsFramebuffer")
+    , ("glIsProgram", "glIsProgram")
+    , ("glIsQuery", "glIsQuery")
+    , ("glIsRenderbuffer", "glIsRenderbuffer")
+    , ("glIsSampler", "glIsSampler")
+    , ("glIsShader", "glIsShader")
+    , ("glIsSync", "glIsSync")
+    , ("glIsTexture", "glIsTexture")
+    , ("glIsVertexArray", "glIsVertexArray")
+    , ("glLineWidth", "glLineWidth")
+    , ("glLinkProgram", "glLinkProgram")
+    , ("glLogicOp", "glLogicOp")
+    , ("glMapBufferRange", "glMapBufferRange")
+    , ("glMapBuffer", "glMapBuffer")
+    , ("glUnmapBuffer", "glMapBuffer")
+    , ("glMultiDrawArrays", "glMultiDrawArrays")
+    , ("glMultiDrawElementsBaseVertex", "glMultiDrawElementsBaseVertex")
+    , ("glMultiDrawElements", "glMultiDrawElements")
+    , ("glPixelStoref", "glPixelStore")
+    , ("glPixelStorei", "glPixelStore")
+    , ("glPointParameterf", "glPointParameter")
+    , ("glPointParameteri", "glPointParameter")
+    , ("glPointParameterfv", "glPointParameter")
+    , ("glPointParameteriv", "glPointParameter")
+    , ("glPointSize", "glPointSize")
+    , ("glPolygonMode", "glPolygonMode")
+    , ("glPolygonOffset", "glPolygonOffset")
+    , ("glPrimitiveRestartIndex", "glPrimitiveRestartIndex")
+    , ("glProvokingVertex", "glProvokingVertex")
+    , ("glQueryCounter", "glQueryCounter")
+    , ("glReadBuffer", "glReadBuffer")
+    , ("glReadPixels", "glReadPixels")
+    , ("glRenderbufferStorageMultisample", "glRenderbufferStorageMultisample")
+    , ("glRenderbufferStorage", "glRenderbufferStorage")
+    , ("glSampleCoverage", "glSampleCoverage")
+    , ("glSampleMaski", "glSampleMaski")
+    , ("glSamplerParameterf", "glSamplerParameter")
+    , ("glSamplerParameteri", "glSamplerParameter")
+    , ("glSamplerParameterfv", "glSamplerParameter")
+    , ("glSamplerParameteriv", "glSamplerParameter")
+    , ("glSamplerParameterIiv", "glSamplerParameter")
+    , ("glSamplerParameterIuiv", "glSamplerParameter")
+    , ("glScissor", "glScissor")
+    , ("glShaderSource", "glShaderSource")
+    , ("glStencilFuncSeparate", "glStencilFuncSeparate")
+    , ("glStencilFunc", "glStencilFunc")
+    , ("glStencilMaskSeparate", "glStencilMaskSeparate")
+    , ("glStencilMask", "glStencilMask")
+    , ("glStencilOpSeparate", "glStencilOpSeparate")
+    , ("glStencilOp", "glStencilOp")
+    , ("glTexBuffer", "glTexBuffer")
+    , ("glTexImage1D", "glTexImage1D")
+    , ("glTexImage2DMultisample", "glTexImage2DMultisample")
+    , ("glTexImage2D", "glTexImage2D")
+    , ("glTexImage3DMultisample", "glTexImage3DMultisample")
+    , ("glTexImage3D", "glTexImage3D")
+    , ("glTexParameterf", "glTexParameter")
+    , ("glTexParameteri", "glTexParameter")
+    , ("glTexParameterfv", "glTexParameter")
+    , ("glTexParameteriv", "glTexParameter")
+    , ("glTexParameterIiv", "glTexParameter")
+    , ("glTexParameterIuiv", "glTexParameter")
+    , ("glTexSubImage1D", "glTexSubImage1D")
+    , ("glTexSubImage2D", "glTexSubImage2D")
+    , ("glTexSubImage3D", "glTexSubImage3D")
+    , ("glTransformFeedbackVaryings", "glTransformFeedbackVaryings")
+    , ("glUniformBlockBinding", "glUniformBlockBinding")
+    , ("glUniform1f", "glUniform")
+    , ("glUniform2f", "glUniform")
+    , ("glUniform3f", "glUniform")
+    , ("glUniform4f", "glUniform")
+    , ("glUniform1i", "glUniform")
+    , ("glUniform2i", "glUniform")
+    , ("glUniform3i", "glUniform")
+    , ("glUniform4i", "glUniform")
+    , ("glUniform1ui", "glUniform")
+    , ("glUniform2ui", "glUniform")
+    , ("glUniform3ui", "glUniform")
+    , ("glUniform4ui", "glUniform")
+    , ("glUniform1fv", "glUniform")
+    , ("glUniform2fv", "glUniform")
+    , ("glUniform3fv", "glUniform")
+    , ("glUniform4fv", "glUniform")
+    , ("glUniform1iv", "glUniform")
+    , ("glUniform2iv", "glUniform")
+    , ("glUniform3iv", "glUniform")
+    , ("glUniform4iv", "glUniform")
+    , ("glUniform1uiv", "glUniform")
+    , ("glUniform2uiv", "glUniform")
+    , ("glUniform3uiv", "glUniform")
+    , ("glUniform4uiv", "glUniform")
+    , ("glUniformMatrix2fv", "glUniform")
+    , ("glUniformMatrix3fv", "glUniform")
+    , ("glUniformMatrix4fv", "glUniform")
+    , ("glUniformMatrix2x3fv", "glUniform")
+    , ("glUniformMatrix3x2fv", "glUniform")
+    , ("glUniformMatrix2x4fv", "glUniform")
+    , ("glUniformMatrix4x2fv", "glUniform")
+    , ("glUniformMatrix3x4fv", "glUniform")
+    , ("glUniformMatrix4x3fv", "glUniform")
+    , ("glUseProgram", "glUseProgram")
+    , ("glValidateProgram", "glValidateProgram")
+    , ("glVertexAttribDivisor", "glVertexAttribDivisor")
+    , ("glVertexAttribPointer", "glVertexAttribPointer")
+    , ("glVertexAttribIPointer", "glVertexAttribPointer")
+    , ("glVertexAttrib1f", "glVertexAttrib")
+    , ("glVertexAttrib1s", "glVertexAttrib")
+    , ("glVertexAttrib1d", "glVertexAttrib")
+    , ("glVertexAttribI1i", "glVertexAttrib")
+    , ("glVertexAttribI1ui", "glVertexAttrib")
+    , ("glVertexAttrib2f", "glVertexAttrib")
+    , ("glVertexAttrib2s", "glVertexAttrib")
+    , ("glVertexAttrib2d", "glVertexAttrib")
+    , ("glVertexAttribI2i", "glVertexAttrib")
+    , ("glVertexAttribI2ui", "glVertexAttrib")
+    , ("glVertexAttrib3f", "glVertexAttrib")
+    , ("glVertexAttrib3s", "glVertexAttrib")
+    , ("glVertexAttrib3d", "glVertexAttrib")
+    , ("glVertexAttribI3i", "glVertexAttrib")
+    , ("glVertexAttribI3ui", "glVertexAttrib")
+    , ("glVertexAttrib4f", "glVertexAttrib")
+    , ("glVertexAttrib4s", "glVertexAttrib")
+    , ("glVertexAttrib4d", "glVertexAttrib")
+    , ("glVertexAttrib4Nub", "glVertexAttrib")
+    , ("glVertexAttribI4i", "glVertexAttrib")
+    , ("glVertexAttribI4ui", "glVertexAttrib")
+    , ("glVertexAttrib1fv", "glVertexAttrib")
+    , ("glVertexAttrib1sv", "glVertexAttrib")
+    , ("glVertexAttrib1dv", "glVertexAttrib")
+    , ("glVertexAttribI1iv", "glVertexAttrib")
+    , ("glVertexAttribI1uiv", "glVertexAttrib")
+    , ("glVertexAttrib2fv", "glVertexAttrib")
+    , ("glVertexAttrib2sv", "glVertexAttrib")
+    , ("glVertexAttrib2dv", "glVertexAttrib")
+    , ("glVertexAttribI2iv", "glVertexAttrib")
+    , ("glVertexAttribI2uiv", "glVertexAttrib")
+    , ("glVertexAttrib3fv", "glVertexAttrib")
+    , ("glVertexAttrib3sv", "glVertexAttrib")
+    , ("glVertexAttrib3dv", "glVertexAttrib")
+    , ("glVertexAttribI3iv", "glVertexAttrib")
+    , ("glVertexAttribI3uiv", "glVertexAttrib")
+    , ("glVertexAttrib4fv", "glVertexAttrib")
+    , ("glVertexAttrib4sv", "glVertexAttrib")
+    , ("glVertexAttrib4dv", "glVertexAttrib")
+    , ("glVertexAttrib4iv", "glVertexAttrib")
+    , ("glVertexAttrib4bv", "glVertexAttrib")
+    , ("glVertexAttrib4ubv", "glVertexAttrib")
+    , ("glVertexAttrib4usv", "glVertexAttrib")
+    , ("glVertexAttrib4uiv", "glVertexAttrib")
+    , ("glVertexAttrib4Nbv", "glVertexAttrib")
+    , ("glVertexAttrib4Nsv", "glVertexAttrib")
+    , ("glVertexAttrib4Niv", "glVertexAttrib")
+    , ("glVertexAttrib4Nubv", "glVertexAttrib")
+    , ("glVertexAttrib4Nusv", "glVertexAttrib")
+    , ("glVertexAttrib4Nuiv", "glVertexAttrib")
+    , ("glVertexAttribI4bv", "glVertexAttrib")
+    , ("glVertexAttribI4ubv", "glVertexAttrib")
+    , ("glVertexAttribI4sv", "glVertexAttrib")
+    , ("glVertexAttribI4usv", "glVertexAttrib")
+    , ("glVertexAttribI4iv", "glVertexAttrib")
+    , ("glVertexAttribI4uiv", "glVertexAttrib")
+    , ("glVertexAttribP1ui", "glVertexAttrib")
+    , ("glVertexAttribP2ui", "glVertexAttrib")
+    , ("glVertexAttribP3ui", "glVertexAttrib")
+    , ("glVertexAttribP4ui", "glVertexAttrib")
+    , ("glViewport", "glViewport")
+    , ("glWaitSync", "glWaitSync")
+    ]
+
+assocsGL4 :: [(ManPageKey, [(URL, Label)])]
+assocsGL4 =
+  entriesFor
+    "gl"
+    "OpenGL 4.x"
+    "https://www.opengl.org/sdk/docs/man4/html/"
+    ".xhtml"
+    [ ("glActiveShaderProgram", "glActiveShaderProgram")
+    , ("glActiveTexture", "glActiveTexture")
+    , ("glAttachShader", "glAttachShader")
+    , ("glBeginConditionalRender", "glBeginConditionalRender")
+    , ("glEndConditionalRender", "glBeginConditionalRender")
+    , ("glBeginQueryIndexed", "glBeginQueryIndexed")
+    , ("glEndQueryIndexed", "glBeginQueryIndexed")
+    , ("glBeginQuery", "glBeginQuery")
+    , ("glEndQuery", "glBeginQuery")
+    , ("glBeginTransformFeedback", "glBeginTransformFeedback")
+    , ("glEndTransformFeedback", "glBeginTransformFeedback")
+    , ("glBindAttribLocation", "glBindAttribLocation")
+    , ("glBindBufferBase", "glBindBufferBase")
+    , ("glBindBufferRange", "glBindBufferRange")
+    , ("glBindBuffersBase", "glBindBuffersBase")
+    , ("glBindBuffersRange", "glBindBuffersRange")
+    , ("glBindBuffer", "glBindBuffer")
+    , ("glBindFragDataLocationIndexed", "glBindFragDataLocationIndexed")
+    , ("glBindFragDataLocation", "glBindFragDataLocation")
+    , ("glBindFramebuffer", "glBindFramebuffer")
+    , ("glBindImageTextures", "glBindImageTextures")
+    , ("glBindImageTexture", "glBindImageTexture")
+    , ("glBindProgramPipeline", "glBindProgramPipeline")
+    , ("glBindRenderbuffer", "glBindRenderbuffer")
+    , ("glBindSamplers", "glBindSamplers")
+    , ("glBindSampler", "glBindSampler")
+    , ("glBindTextures", "glBindTextures")
+    , ("glBindTextureUnit", "glBindTextureUnit")
+    , ("glBindTexture", "glBindTexture")
+    , ("glBindTransformFeedback", "glBindTransformFeedback")
+    , ("glBindVertexArray", "glBindVertexArray")
+    , ("glBindVertexBuffers", "glBindVertexBuffers")
+    , ("glVertexArrayVertexBuffers", "glBindVertexBuffers")
+    , ("glBindVertexBuffer", "glBindVertexBuffer")
+    , ("glVertexArrayVertexBuffer", "glBindVertexBuffer")
+    , ("glBlendColor", "glBlendColor")
+    , ("glBlendEquationSeparate", "glBlendEquationSeparate")
+    , ("glBlendEquationSeparatei", "glBlendEquationSeparate")
+    , ("glBlendEquation", "glBlendEquation")
+    , ("glBlendEquationi", "glBlendEquation")
+    , ("glBlendFuncSeparate", "glBlendFuncSeparate")
+    , ("glBlendFuncSeparatei", "glBlendFuncSeparate")
+    , ("glBlendFunc", "glBlendFunc")
+    , ("glBlendFunci", "glBlendFunc")
+    , ("glBlitFramebuffer", "glBlitFramebuffer")
+    , ("glBlitNamedFramebuffer", "glBlitFramebuffer")
+    , ("glBufferData", "glBufferData")
+    , ("glNamedBufferData", "glBufferData")
+    , ("glBufferStorage", "glBufferStorage")
+    , ("glNamedBufferStorage", "glBufferStorage")
+    , ("glBufferSubData", "glBufferSubData")
+    , ("glNamedBufferSubData", "glBufferSubData")
+    , ("glCheckFramebufferStatus", "glCheckFramebufferStatus")
+    , ("glCheckNamedFramebufferStatus", "glCheckFramebufferStatus")
+    , ("glClampColor", "glClampColor")
+    , ("glClearBufferData", "glClearBufferData")
+    , ("glClearNamedBufferData", "glClearBufferData")
+    , ("glClearBufferSubData", "glClearBufferSubData")
+    , ("glClearNamedBufferSubData", "glClearBufferSubData")
+    , ("glClearBufferiv", "glClearBuffer")
+    , ("glClearBufferuiv", "glClearBuffer")
+    , ("glClearBufferfv", "glClearBuffer")
+    , ("glClearBufferfi", "glClearBuffer")
+    , ("glClearNamedFramebufferiv", "glClearBuffer")
+    , ("glClearNamedFramebufferuiv", "glClearBuffer")
+    , ("glClearNamedFramebufferfv", "glClearBuffer")
+    , ("glClearNamedFramebufferfi", "glClearBuffer")
+    , ("glClearColor", "glClearColor")
+    , ("glClearDepth", "glClearDepth")
+    , ("glClearDepthf", "glClearDepth")
+    , ("glClearStencil", "glClearStencil")
+    , ("glClearTexImage", "glClearTexImage")
+    , ("glClearTexSubImage", "glClearTexSubImage")
+    , ("glClear", "glClear")
+    , ("glClientWaitSync", "glClientWaitSync")
+    , ("glClipControl", "glClipControl")
+    , ("glColorMask", "glColorMask")
+    , ("glColorMaski", "glColorMask")
+    , ("glCompileShader", "glCompileShader")
+    , ("glCompressedTexImage1D", "glCompressedTexImage1D")
+    , ("glCompressedTexImage2D", "glCompressedTexImage2D")
+    , ("glCompressedTexImage3D", "glCompressedTexImage3D")
+    , ("glCompressedTexSubImage1D", "glCompressedTexSubImage1D")
+    , ("glCompressedTextureSubImage1D", "glCompressedTexSubImage1D")
+    , ("glCompressedTexSubImage2D", "glCompressedTexSubImage2D")
+    , ("glCompressedTextureSubImage2D", "glCompressedTexSubImage2D")
+    , ("glCompressedTexSubImage3D", "glCompressedTexSubImage3D")
+    , ("glCompressedTextureSubImage3D", "glCompressedTexSubImage3D")
+    , ("glCopyBufferSubData", "glCopyBufferSubData")
+    , ("glCopyNamedBufferSubData", "glCopyBufferSubData")
+    , ("glCopyImageSubData", "glCopyImageSubData")
+    , ("glCopyTexImage1D", "glCopyTexImage1D")
+    , ("glCopyTexImage2D", "glCopyTexImage2D")
+    , ("glCopyTexSubImage1D", "glCopyTexSubImage1D")
+    , ("glCopyTextureSubImage1D", "glCopyTexSubImage1D")
+    , ("glCopyTexSubImage2D", "glCopyTexSubImage2D")
+    , ("glCopyTextureSubImage2D", "glCopyTexSubImage2D")
+    , ("glCopyTexSubImage3D", "glCopyTexSubImage3D")
+    , ("glCopyTextureSubImage3D", "glCopyTexSubImage3D")
+    , ("glCreateBuffers", "glCreateBuffers")
+    , ("glCreateFramebuffers", "glCreateFramebuffers")
+    , ("glCreateProgramPipelines", "glCreateProgramPipelines")
+    , ("glCreateProgram", "glCreateProgram")
+    , ("glCreateQueries", "glCreateQueries")
+    , ("glCreateRenderbuffers", "glCreateRenderbuffers")
+    , ("glCreateSamplers", "glCreateSamplers")
+    , ("glCreateShaderProgramv", "glCreateShaderProgram")
+    , ("glCreateShader", "glCreateShader")
+    , ("glCreateTextures", "glCreateTextures")
+    , ("glCreateTransformFeedbacks", "glCreateTransformFeedbacks")
+    , ("glCreateVertexArrays", "glCreateVertexArrays")
+    , ("glCullFace", "glCullFace")
+    , ("glDebugMessageCallback", "glDebugMessageCallback")
+    , ("glDebugMessageControl", "glDebugMessageControl")
+    , ("glDebugMessageInsert", "glDebugMessageInsert")
+    , ("glDeleteBuffers", "glDeleteBuffers")
+    , ("glDeleteFramebuffers", "glDeleteFramebuffers")
+    , ("glDeleteProgramPipelines", "glDeleteProgramPipelines")
+    , ("glDeleteProgram", "glDeleteProgram")
+    , ("glDeleteQueries", "glDeleteQueries")
+    , ("glDeleteRenderbuffers", "glDeleteRenderbuffers")
+    , ("glDeleteSamplers", "glDeleteSamplers")
+    , ("glDeleteShader", "glDeleteShader")
+    , ("glDeleteSync", "glDeleteSync")
+    , ("glDeleteTextures", "glDeleteTextures")
+    , ("glDeleteTransformFeedbacks", "glDeleteTransformFeedbacks")
+    , ("glDeleteVertexArrays", "glDeleteVertexArrays")
+    , ("glDepthFunc", "glDepthFunc")
+    , ("glDepthMask", "glDepthMask")
+    , ("glDepthRangeArrayv", "glDepthRangeArray")
+    , ("glDepthRangeIndexed", "glDepthRangeIndexed")
+    , ("glDepthRange", "glDepthRange")
+    , ("glDepthRangef", "glDepthRange")
+    , ("glDetachShader", "glDetachShader")
+    , ("glDispatchComputeIndirect", "glDispatchComputeIndirect")
+    , ("glDispatchCompute", "glDispatchCompute")
+    , ("glDrawArraysIndirect", "glDrawArraysIndirect")
+    , ("glDrawArraysInstancedBaseInstance", "glDrawArraysInstancedBaseInstance")
+    , ("glDrawArraysInstanced", "glDrawArraysInstanced")
+    , ("glDrawArrays", "glDrawArrays")
+    , ("glDrawBuffers", "glDrawBuffers")
+    , ("glNamedFramebufferDrawBuffers", "glDrawBuffers")
+    , ("glDrawBuffer", "glDrawBuffer")
+    , ("glNamedFramebufferDrawBuffer", "glDrawBuffer")
+    , ("glDrawElementsBaseVertex", "glDrawElementsBaseVertex")
+    , ("glDrawElementsIndirect", "glDrawElementsIndirect")
+    , ( "glDrawElementsInstancedBaseInstance"
+      , "glDrawElementsInstancedBaseInstance")
+    , ( "glDrawElementsInstancedBaseVertexBaseInstance"
+      , "glDrawElementsInstancedBaseVertexBaseInstance")
+    , ("glDrawElementsInstancedBaseVertex", "glDrawElementsInstancedBaseVertex")
+    , ("glDrawElementsInstanced", "glDrawElementsInstanced")
+    , ("glDrawElements", "glDrawElements")
+    , ("glDrawRangeElementsBaseVertex", "glDrawRangeElementsBaseVertex")
+    , ("glDrawRangeElements", "glDrawRangeElements")
+    , ("glDrawTransformFeedbackInstanced", "glDrawTransformFeedbackInstanced")
+    , ( "glDrawTransformFeedbackStreamInstanced"
+      , "glDrawTransformFeedbackStreamInstanced")
+    , ("glDrawTransformFeedbackStream", "glDrawTransformFeedbackStream")
+    , ("glDrawTransformFeedback", "glDrawTransformFeedback")
+    , ("glEnableVertexAttribArray", "glEnableVertexAttribArray")
+    , ("glDisableVertexAttribArray", "glEnableVertexAttribArray")
+    , ("glEnableVertexArrayAttrib", "glEnableVertexAttribArray")
+    , ("glDisableVertexArrayAttrib", "glEnableVertexAttribArray")
+    , ("glEnable", "glEnable")
+    , ("glDisable", "glEnable")
+    , ("glEnablei", "glEnable")
+    , ("glDisablei", "glEnable")
+    , ("glFenceSync", "glFenceSync")
+    , ("glFinish", "glFinish")
+    , ("glFlushMappedBufferRange", "glFlushMappedBufferRange")
+    , ("glFlushMappedNamedBufferRange", "glFlushMappedBufferRange")
+    , ("glFlush", "glFlush")
+    , ("glFramebufferParameteri", "glFramebufferParameteri")
+    , ("glNamedFramebufferParameteri", "glFramebufferParameteri")
+    , ("glFramebufferRenderbuffer", "glFramebufferRenderbuffer")
+    , ("glNamedFramebufferRenderbuffer", "glFramebufferRenderbuffer")
+    , ("glFramebufferTextureLayer", "glFramebufferTextureLayer")
+    , ("glNamedFramebufferTextureLayer", "glFramebufferTextureLayer")
+    , ("glFramebufferTexture", "glFramebufferTexture")
+    , ("glFramebufferTexture1D", "glFramebufferTexture")
+    , ("glFramebufferTexture2D", "glFramebufferTexture")
+    , ("glFramebufferTexture3D", "glFramebufferTexture")
+    , ("glNamedFramebufferTexture", "glFramebufferTexture")
+    , ("glFrontFace", "glFrontFace")
+    , ("glGenBuffers", "glGenBuffers")
+    , ("glGenerateMipmap", "glGenerateMipmap")
+    , ("glGenerateTextureMipmap", "glGenerateMipmap")
+    , ("glGenFramebuffers", "glGenFramebuffers")
+    , ("glGenProgramPipelines", "glGenProgramPipelines")
+    , ("glGenQueries", "glGenQueries")
+    , ("glGenRenderbuffers", "glGenRenderbuffers")
+    , ("glGenSamplers", "glGenSamplers")
+    , ("glGenTextures", "glGenTextures")
+    , ("glGenTransformFeedbacks", "glGenTransformFeedbacks")
+    , ("glGenVertexArrays", "glGenVertexArrays")
+    , ("glGetActiveAtomicCounterBufferiv", "glGetActiveAtomicCounterBufferiv")
+    , ("glGetActiveAttrib", "glGetActiveAttrib")
+    , ("glGetActiveSubroutineName", "glGetActiveSubroutineName")
+    , ("glGetActiveSubroutineUniformName", "glGetActiveSubroutineUniformName")
+    , ("glGetActiveSubroutineUniformiv", "glGetActiveSubroutineUniform")
+    , ("glGetActiveUniformBlockName", "glGetActiveUniformBlockName")
+    , ("glGetActiveUniformBlockiv", "glGetActiveUniformBlock")
+    , ("glGetActiveUniformName", "glGetActiveUniformName")
+    , ("glGetActiveUniformsiv", "glGetActiveUniformsiv")
+    , ("glGetActiveUniform", "glGetActiveUniform")
+    , ("glGetAttachedShaders", "glGetAttachedShaders")
+    , ("glGetAttribLocation", "glGetAttribLocation")
+    , ("glGetBufferParameteriv", "glGetBufferParameter")
+    , ("glGetBufferParameteri64v", "glGetBufferParameter")
+    , ("glGetNamedBufferParameteriv", "glGetBufferParameter")
+    , ("glGetNamedBufferParameteri64v", "glGetBufferParameter")
+    , ("glGetBufferPointerv", "glGetBufferPointerv")
+    , ("glGetNamedBufferPointerv", "glGetBufferPointerv")
+    , ("glGetBufferSubData", "glGetBufferSubData")
+    , ("glGetNamedBufferSubData", "glGetBufferSubData")
+    , ("glGetCompressedTexImage", "glGetCompressedTexImage")
+    , ("glGetnCompressedTexImage", "glGetCompressedTexImage")
+    , ("glGetCompressedTextureImage", "glGetCompressedTexImage")
+    , ("glGetCompressedTextureSubImage", "glGetCompressedTextureSubImage")
+    , ("glGetDebugMessageLog", "glGetDebugMessageLog")
+    , ("glGetError", "glGetError")
+    , ("glGetFragDataIndex", "glGetFragDataIndex")
+    , ("glGetFragDataLocation", "glGetFragDataLocation")
+    , ( "glGetFramebufferAttachmentParameteriv"
+      , "glGetFramebufferAttachmentParameter")
+    , ( "glGetNamedFramebufferAttachmentParameteriv"
+      , "glGetFramebufferAttachmentParameter")
+    , ("glGetFramebufferParameteriv", "glGetFramebufferParameter")
+    , ("glGetNamedFramebufferParameteriv", "glGetFramebufferParameter")
+    , ("glGetGraphicsResetStatus", "glGetGraphicsResetStatus")
+    , ("glGetInternalformativ", "glGetInternalformat")
+    , ("glGetInternalformati64v", "glGetInternalformat")
+    , ("glGetMultisamplefv", "glGetMultisample")
+    , ("glGetObjectLabel", "glGetObjectLabel")
+    , ("glGetObjectPtrLabel", "glGetObjectPtrLabel")
+    , ("glGetPointerv", "glGetPointerv")
+    , ("glGetProgramBinary", "glGetProgramBinary")
+    , ("glGetProgramInfoLog", "glGetProgramInfoLog")
+    , ("glGetProgramInterfaceiv", "glGetProgramInterface")
+    , ("glGetProgramPipelineInfoLog", "glGetProgramPipelineInfoLog")
+    , ("glGetProgramPipelineiv", "glGetProgramPipeline")
+    , ("glGetProgramResourceIndex", "glGetProgramResourceIndex")
+    , ("glGetProgramResourceLocationIndex", "glGetProgramResourceLocationIndex")
+    , ("glGetProgramResourceLocation", "glGetProgramResourceLocation")
+    , ("glGetProgramResourceName", "glGetProgramResourceName")
+    , ("glGetProgramResourceiv", "glGetProgramResource")
+    , ("glGetProgramStageiv", "glGetProgramStage")
+    , ("glGetProgramiv", "glGetProgram")
+    , ("glGetQueryIndexediv", "glGetQueryIndexed")
+    , ("glGetQueryiv", "glGetQueryiv")
+    , ("glGetQueryObjectiv", "glGetQueryObject")
+    , ("glGetQueryObjectuiv", "glGetQueryObject")
+    , ("glGetQueryObjecti64v", "glGetQueryObject")
+    , ("glGetQueryObjectui64v", "glGetQueryObject")
+    , ("glGetRenderbufferParameteriv", "glGetRenderbufferParameter")
+    , ("glGetNamedRenderbufferParameteriv", "glGetRenderbufferParameter")
+    , ("glGetSamplerParameterfv", "glGetSamplerParameter")
+    , ("glGetSamplerParameteriv", "glGetSamplerParameter")
+    , ("glGetSamplerParameterIiv", "glGetSamplerParameter")
+    , ("glGetSamplerParameterIuiv", "glGetSamplerParameter")
+    , ("glGetShaderInfoLog", "glGetShaderInfoLog")
+    , ("glGetShaderPrecisionFormat", "glGetShaderPrecisionFormat")
+    , ("glGetShaderSource", "glGetShaderSource")
+    , ("glGetShaderiv", "glGetShader")
+    , ("glGetString", "glGetString")
+    , ("glGetStringi", "glGetString")
+    , ("glGetSubroutineIndex", "glGetSubroutineIndex")
+    , ("glGetSubroutineUniformLocation", "glGetSubroutineUniformLocation")
+    , ("glGetSynciv", "glGetSync")
+    , ("glGetTexImage", "glGetTexImage")
+    , ("glGetnTexImage", "glGetTexImage")
+    , ("glGetTextureImage", "glGetTexImage")
+    , ("glGetTexLevelParameterfv", "glGetTexLevelParameter")
+    , ("glGetTexLevelParameteriv", "glGetTexLevelParameter")
+    , ("glGetTextureLevelParameterfv", "glGetTexLevelParameter")
+    , ("glGetTextureLevelParameteriv", "glGetTexLevelParameter")
+    , ("glGetTexParameterfv", "glGetTexParameter")
+    , ("glGetTexParameteriv", "glGetTexParameter")
+    , ("glGetTexParameterIiv", "glGetTexParameter")
+    , ("glGetTexParameterIuiv", "glGetTexParameter")
+    , ("glGetTextureParameterfv", "glGetTexParameter")
+    , ("glGetTextureParameteriv", "glGetTexParameter")
+    , ("glGetTextureParameterIiv", "glGetTexParameter")
+    , ("glGetTextureParameterIuiv", "glGetTexParameter")
+    , ("glGetTextureSubImage", "glGetTextureSubImage")
+    , ("glGetTransformFeedbackVarying", "glGetTransformFeedbackVarying")
+    , ("glGetTransformFeedbackiv", "glGetTransformFeedback")
+    , ("glGetTransformFeedbacki_v", "glGetTransformFeedback")
+    , ("glGetTransformFeedbacki64_v", "glGetTransformFeedback")
+    , ("glGetUniformBlockIndex", "glGetUniformBlockIndex")
+    , ("glGetUniformIndices", "glGetUniformIndices")
+    , ("glGetUniformLocation", "glGetUniformLocation")
+    , ("glGetUniformSubroutineuiv", "glGetUniformSubroutine")
+    , ("glGetUniformfv", "glGetUniform")
+    , ("glGetUniformiv", "glGetUniform")
+    , ("glGetUniformuiv", "glGetUniform")
+    , ("glGetUniformdv", "glGetUniform")
+    , ("glGetnUniformfv", "glGetUniform")
+    , ("glGetnUniformiv", "glGetUniform")
+    , ("glGetnUniformuiv", "glGetUniform")
+    , ("glGetnUniformdv", "glGetUniform")
+    , ("glGetVertexArrayIndexed64iv", "glGetVertexArrayIndexed")
+    , ("glGetVertexArrayIndexediv", "glGetVertexArrayIndexed")
+    , ("glGetVertexArrayiv", "glGetVertexArrayiv")
+    , ("glGetVertexAttribPointerv", "glGetVertexAttribPointerv")
+    , ("glGetVertexAttribdv", "glGetVertexAttrib")
+    , ("glGetVertexAttribfv", "glGetVertexAttrib")
+    , ("glGetVertexAttribiv", "glGetVertexAttrib")
+    , ("glGetVertexAttribIiv", "glGetVertexAttrib")
+    , ("glGetVertexAttribIuiv", "glGetVertexAttrib")
+    , ("glGetVertexAttribLdv", "glGetVertexAttrib")
+    , ("glGetBooleanv", "glGet")
+    , ("glGetDoublev", "glGet")
+    , ("glGetFloatv", "glGet")
+    , ("glGetIntegerv", "glGet")
+    , ("glGetInteger64v", "glGet")
+    , ("glGetBooleani_v", "glGet")
+    , ("glGetIntegeri_v", "glGet")
+    , ("glGetFloati_v", "glGet")
+    , ("glGetDoublei_v", "glGet")
+    , ("glGetInteger64i_v", "glGet")
+    , ("glHint", "glHint")
+    , ("glInvalidateBufferData", "glInvalidateBufferData")
+    , ("glInvalidateBufferSubData", "glInvalidateBufferSubData")
+    , ("glInvalidateFramebuffer", "glInvalidateFramebuffer")
+    , ("glInvalidateNamedFramebufferData", "glInvalidateFramebuffer")
+    , ("glInvalidateSubFramebuffer", "glInvalidateSubFramebuffer")
+    , ("glInvalidateNamedFramebufferSubData", "glInvalidateSubFramebuffer")
+    , ("glInvalidateTexImage", "glInvalidateTexImage")
+    , ("glInvalidateTexSubImage", "glInvalidateTexSubImage")
+    , ("glIsBuffer", "glIsBuffer")
+    , ("glIsEnabled", "glIsEnabled")
+    , ("glIsEnabledi", "glIsEnabled")
+    , ("glIsFramebuffer", "glIsFramebuffer")
+    , ("glIsProgramPipeline", "glIsProgramPipeline")
+    , ("glIsProgram", "glIsProgram")
+    , ("glIsQuery", "glIsQuery")
+    , ("glIsRenderbuffer", "glIsRenderbuffer")
+    , ("glIsSampler", "glIsSampler")
+    , ("glIsShader", "glIsShader")
+    , ("glIsSync", "glIsSync")
+    , ("glIsTexture", "glIsTexture")
+    , ("glIsTransformFeedback", "glIsTransformFeedback")
+    , ("glIsVertexArray", "glIsVertexArray")
+    , ("glLineWidth", "glLineWidth")
+    , ("glLinkProgram", "glLinkProgram")
+    , ("glLogicOp", "glLogicOp")
+    , ("glMapBufferRange", "glMapBufferRange")
+    , ("glMapNamedBufferRange", "glMapBufferRange")
+    , ("glMapBuffer", "glMapBuffer")
+    , ("glMapNamedBuffer", "glMapBuffer")
+    , ("glMemoryBarrier", "glMemoryBarrier")
+    , ("glMemoryBarrierByRegion", "glMemoryBarrier")
+    , ("glMinSampleShading", "glMinSampleShading")
+    , ("glMultiDrawArraysIndirect", "glMultiDrawArraysIndirect")
+    , ("glMultiDrawArrays", "glMultiDrawArrays")
+    , ("glMultiDrawElementsBaseVertex", "glMultiDrawElementsBaseVertex")
+    , ("glMultiDrawElementsIndirect", "glMultiDrawElementsIndirect")
+    , ("glMultiDrawElements", "glMultiDrawElements")
+    , ("glObjectLabel", "glObjectLabel")
+    , ("glObjectPtrLabel", "glObjectPtrLabel")
+    , ("glPatchParameteri", "glPatchParameter")
+    , ("glPatchParameterfv", "glPatchParameter")
+    , ("glPauseTransformFeedback", "glPauseTransformFeedback")
+    , ("glPixelStoref", "glPixelStore")
+    , ("glPixelStorei", "glPixelStore")
+    , ("glPointParameterf", "glPointParameter")
+    , ("glPointParameteri", "glPointParameter")
+    , ("glPointParameterfv", "glPointParameter")
+    , ("glPointParameteriv", "glPointParameter")
+    , ("glPointSize", "glPointSize")
+    , ("glPolygonMode", "glPolygonMode")
+    , ("glPolygonOffset", "glPolygonOffset")
+    , ("glPopDebugGroup", "glPopDebugGroup")
+    , ("glPrimitiveRestartIndex", "glPrimitiveRestartIndex")
+    , ("glProgramBinary", "glProgramBinary")
+    , ("glProgramParameteri", "glProgramParameter")
+    , ("glProgramUniform1f", "glProgramUniform")
+    , ("glProgramUniform2f", "glProgramUniform")
+    , ("glProgramUniform3f", "glProgramUniform")
+    , ("glProgramUniform4f", "glProgramUniform")
+    , ("glProgramUniform1i", "glProgramUniform")
+    , ("glProgramUniform2i", "glProgramUniform")
+    , ("glProgramUniform3i", "glProgramUniform")
+    , ("glProgramUniform4i", "glProgramUniform")
+    , ("glProgramUniform1ui", "glProgramUniform")
+    , ("glProgramUniform2ui", "glProgramUniform")
+    , ("glProgramUniform3ui", "glProgramUniform")
+    , ("glProgramUniform4ui", "glProgramUniform")
+    , ("glProgramUniform1fv", "glProgramUniform")
+    , ("glProgramUniform2fv", "glProgramUniform")
+    , ("glProgramUniform3fv", "glProgramUniform")
+    , ("glProgramUniform4fv", "glProgramUniform")
+    , ("glProgramUniform1iv", "glProgramUniform")
+    , ("glProgramUniform2iv", "glProgramUniform")
+    , ("glProgramUniform3iv", "glProgramUniform")
+    , ("glProgramUniform4iv", "glProgramUniform")
+    , ("glProgramUniform1uiv", "glProgramUniform")
+    , ("glProgramUniform2uiv", "glProgramUniform")
+    , ("glProgramUniform3uiv", "glProgramUniform")
+    , ("glProgramUniform4uiv", "glProgramUniform")
+    , ("glProgramUniformMatrix2fv", "glProgramUniform")
+    , ("glProgramUniformMatrix3fv", "glProgramUniform")
+    , ("glProgramUniformMatrix4fv", "glProgramUniform")
+    , ("glProgramUniformMatrix2x3fv", "glProgramUniform")
+    , ("glProgramUniformMatrix3x2fv", "glProgramUniform")
+    , ("glProgramUniformMatrix2x4fv", "glProgramUniform")
+    , ("glProgramUniformMatrix4x2fv", "glProgramUniform")
+    , ("glProgramUniformMatrix3x4fv", "glProgramUniform")
+    , ("glProgramUniformMatrix4x3fv", "glProgramUniform")
+    , ("glProvokingVertex", "glProvokingVertex")
+    , ("glPushDebugGroup", "glPushDebugGroup")
+    , ("glQueryCounter", "glQueryCounter")
+    , ("glReadBuffer", "glReadBuffer")
+    , ("glNamedFramebufferReadBuffer", "glReadBuffer")
+    , ("glReadPixels", "glReadPixels")
+    , ("glReadnPixels", "glReadPixels")
+    , ("glReleaseShaderCompiler", "glReleaseShaderCompiler")
+    , ("glRenderbufferStorageMultisample", "glRenderbufferStorageMultisample")
+    , ( "glNamedRenderbufferStorageMultisample"
+      , "glRenderbufferStorageMultisample")
+    , ("glRenderbufferStorage", "glRenderbufferStorage")
+    , ("glNamedRenderbufferStorage", "glRenderbufferStorage")
+    , ("glResumeTransformFeedback", "glResumeTransformFeedback")
+    , ("glSampleCoverage", "glSampleCoverage")
+    , ("glSampleMaski", "glSampleMaski")
+    , ("glSamplerParameterf", "glSamplerParameter")
+    , ("glSamplerParameteri", "glSamplerParameter")
+    , ("glSamplerParameterfv", "glSamplerParameter")
+    , ("glSamplerParameteriv", "glSamplerParameter")
+    , ("glSamplerParameterIiv", "glSamplerParameter")
+    , ("glSamplerParameterIuiv", "glSamplerParameter")
+    , ("glScissorArrayv", "glScissorArray")
+    , ("glScissorIndexed", "glScissorIndexed")
+    , ("glScissorIndexedv", "glScissorIndexed")
+    , ("glScissor", "glScissor")
+    , ("glShaderBinary", "glShaderBinary")
+    , ("glShaderSource", "glShaderSource")
+    , ("glShaderStorageBlockBinding", "glShaderStorageBlockBinding")
+    , ("glStencilFuncSeparate", "glStencilFuncSeparate")
+    , ("glStencilFunc", "glStencilFunc")
+    , ("glStencilMaskSeparate", "glStencilMaskSeparate")
+    , ("glStencilMask", "glStencilMask")
+    , ("glStencilOpSeparate", "glStencilOpSeparate")
+    , ("glStencilOp", "glStencilOp")
+    , ("glTexBufferRange", "glTexBufferRange")
+    , ("glTextureBufferRange", "glTexBufferRange")
+    , ("glTexBuffer", "glTexBuffer")
+    , ("glTextureBuffer", "glTexBuffer")
+    , ("glTexImage1D", "glTexImage1D")
+    , ("glTexImage2DMultisample", "glTexImage2DMultisample")
+    , ("glTexImage2D", "glTexImage2D")
+    , ("glTexImage3DMultisample", "glTexImage3DMultisample")
+    , ("glTexImage3D", "glTexImage3D")
+    , ("glTexParameterf", "glTexParameter")
+    , ("glTexParameteri", "glTexParameter")
+    , ("glTextureParameterf", "glTexParameter")
+    , ("glTextureParameteri", "glTexParameter")
+    , ("glTexParameterfv", "glTexParameter")
+    , ("glTexParameteriv", "glTexParameter")
+    , ("glTexParameterIiv", "glTexParameter")
+    , ("glTexParameterIuiv", "glTexParameter")
+    , ("glTextureParameterfv", "glTexParameter")
+    , ("glTextureParameteriv", "glTexParameter")
+    , ("glTextureParameterIiv", "glTexParameter")
+    , ("glTextureParameterIuiv", "glTexParameter")
+    , ("glTexStorage1D", "glTexStorage1D")
+    , ("glTextureStorage1D", "glTexStorage1D")
+    , ("glTexStorage2DMultisample", "glTexStorage2DMultisample")
+    , ("glTextureStorage2DMultisample", "glTexStorage2DMultisample")
+    , ("glTexStorage2D", "glTexStorage2D")
+    , ("glTextureStorage2D", "glTexStorage2D")
+    , ("glTexStorage3DMultisample", "glTexStorage3DMultisample")
+    , ("glTextureStorage3DMultisample", "glTexStorage3DMultisample")
+    , ("glTexStorage3D", "glTexStorage3D")
+    , ("glTextureStorage3D", "glTexStorage3D")
+    , ("glTexSubImage1D", "glTexSubImage1D")
+    , ("glTextureSubImage1D", "glTexSubImage1D")
+    , ("glTexSubImage2D", "glTexSubImage2D")
+    , ("glTextureSubImage2D", "glTexSubImage2D")
+    , ("glTexSubImage3D", "glTexSubImage3D")
+    , ("glTextureSubImage3D", "glTexSubImage3D")
+    , ("glTextureBarrier", "glTextureBarrier")
+    , ("glTextureView", "glTextureView")
+    , ("glTransformFeedbackBufferBase", "glTransformFeedbackBufferBase")
+    , ("glTransformFeedbackBufferRange", "glTransformFeedbackBufferRange")
+    , ("glTransformFeedbackVaryings", "glTransformFeedbackVaryings")
+    , ("glUniformBlockBinding", "glUniformBlockBinding")
+    , ("glUniformSubroutinesuiv", "glUniformSubroutines")
+    , ("glUniform1f", "glUniform")
+    , ("glUniform2f", "glUniform")
+    , ("glUniform3f", "glUniform")
+    , ("glUniform4f", "glUniform")
+    , ("glUniform1i", "glUniform")
+    , ("glUniform2i", "glUniform")
+    , ("glUniform3i", "glUniform")
+    , ("glUniform4i", "glUniform")
+    , ("glUniform1ui", "glUniform")
+    , ("glUniform2ui", "glUniform")
+    , ("glUniform3ui", "glUniform")
+    , ("glUniform4ui", "glUniform")
+    , ("glUniform1fv", "glUniform")
+    , ("glUniform2fv", "glUniform")
+    , ("glUniform3fv", "glUniform")
+    , ("glUniform4fv", "glUniform")
+    , ("glUniform1iv", "glUniform")
+    , ("glUniform2iv", "glUniform")
+    , ("glUniform3iv", "glUniform")
+    , ("glUniform4iv", "glUniform")
+    , ("glUniform1uiv", "glUniform")
+    , ("glUniform2uiv", "glUniform")
+    , ("glUniform3uiv", "glUniform")
+    , ("glUniform4uiv", "glUniform")
+    , ("glUniformMatrix2fv", "glUniform")
+    , ("glUniformMatrix3fv", "glUniform")
+    , ("glUniformMatrix4fv", "glUniform")
+    , ("glUniformMatrix2x3fv", "glUniform")
+    , ("glUniformMatrix3x2fv", "glUniform")
+    , ("glUniformMatrix2x4fv", "glUniform")
+    , ("glUniformMatrix4x2fv", "glUniform")
+    , ("glUniformMatrix3x4fv", "glUniform")
+    , ("glUniformMatrix4x3fv", "glUniform")
+    , ("glUnmapBuffer", "glUnmapBuffer")
+    , ("glUnmapNamedBuffer", "glUnmapBuffer")
+    , ("glUseProgramStages", "glUseProgramStages")
+    , ("glUseProgram", "glUseProgram")
+    , ("glValidateProgramPipeline", "glValidateProgramPipeline")
+    , ("glValidateProgram", "glValidateProgram")
+    , ("glVertexArrayElementBuffer", "glVertexArrayElementBuffer")
+    , ("glVertexAttribBinding", "glVertexAttribBinding")
+    , ("glVertexArrayAttribBinding", "glVertexAttribBinding")
+    , ("glVertexAttribDivisor", "glVertexAttribDivisor")
+    , ("glVertexAttribFormat", "glVertexAttribFormat")
+    , ("glVertexAttribIFormat", "glVertexAttribFormat")
+    , ("glVertexAttribLFormat", "glVertexAttribFormat")
+    , ("glVertexArrayAttribFormat", "glVertexAttribFormat")
+    , ("glVertexArrayAttribIFormat", "glVertexAttribFormat")
+    , ("glVertexArrayAttribLFormat", "glVertexAttribFormat")
+    , ("glVertexAttribPointer", "glVertexAttribPointer")
+    , ("glVertexAttribIPointer", "glVertexAttribPointer")
+    , ("glVertexAttribLPointer", "glVertexAttribPointer")
+    , ("glVertexAttrib1f", "glVertexAttrib")
+    , ("glVertexAttrib1s", "glVertexAttrib")
+    , ("glVertexAttrib1d", "glVertexAttrib")
+    , ("glVertexAttribI1i", "glVertexAttrib")
+    , ("glVertexAttribI1ui", "glVertexAttrib")
+    , ("glVertexAttrib2f", "glVertexAttrib")
+    , ("glVertexAttrib2s", "glVertexAttrib")
+    , ("glVertexAttrib2d", "glVertexAttrib")
+    , ("glVertexAttribI2i", "glVertexAttrib")
+    , ("glVertexAttribI2ui", "glVertexAttrib")
+    , ("glVertexAttrib3f", "glVertexAttrib")
+    , ("glVertexAttrib3s", "glVertexAttrib")
+    , ("glVertexAttrib3d", "glVertexAttrib")
+    , ("glVertexAttribI3i", "glVertexAttrib")
+    , ("glVertexAttribI3ui", "glVertexAttrib")
+    , ("glVertexAttrib4f", "glVertexAttrib")
+    , ("glVertexAttrib4s", "glVertexAttrib")
+    , ("glVertexAttrib4d", "glVertexAttrib")
+    , ("glVertexAttrib4Nub", "glVertexAttrib")
+    , ("glVertexAttribI4i", "glVertexAttrib")
+    , ("glVertexAttribI4ui", "glVertexAttrib")
+    , ("glVertexAttribL1d", "glVertexAttrib")
+    , ("glVertexAttribL2d", "glVertexAttrib")
+    , ("glVertexAttribL3d", "glVertexAttrib")
+    , ("glVertexAttribL4d", "glVertexAttrib")
+    , ("glVertexAttrib1fv", "glVertexAttrib")
+    , ("glVertexAttrib1sv", "glVertexAttrib")
+    , ("glVertexAttrib1dv", "glVertexAttrib")
+    , ("glVertexAttribI1iv", "glVertexAttrib")
+    , ("glVertexAttribI1uiv", "glVertexAttrib")
+    , ("glVertexAttrib2fv", "glVertexAttrib")
+    , ("glVertexAttrib2sv", "glVertexAttrib")
+    , ("glVertexAttrib2dv", "glVertexAttrib")
+    , ("glVertexAttribI2iv", "glVertexAttrib")
+    , ("glVertexAttribI2uiv", "glVertexAttrib")
+    , ("glVertexAttrib3fv", "glVertexAttrib")
+    , ("glVertexAttrib3sv", "glVertexAttrib")
+    , ("glVertexAttrib3dv", "glVertexAttrib")
+    , ("glVertexAttribI3iv", "glVertexAttrib")
+    , ("glVertexAttribI3uiv", "glVertexAttrib")
+    , ("glVertexAttrib4fv", "glVertexAttrib")
+    , ("glVertexAttrib4sv", "glVertexAttrib")
+    , ("glVertexAttrib4dv", "glVertexAttrib")
+    , ("glVertexAttrib4iv", "glVertexAttrib")
+    , ("glVertexAttrib4bv", "glVertexAttrib")
+    , ("glVertexAttrib4ubv", "glVertexAttrib")
+    , ("glVertexAttrib4usv", "glVertexAttrib")
+    , ("glVertexAttrib4uiv", "glVertexAttrib")
+    , ("glVertexAttrib4Nbv", "glVertexAttrib")
+    , ("glVertexAttrib4Nsv", "glVertexAttrib")
+    , ("glVertexAttrib4Niv", "glVertexAttrib")
+    , ("glVertexAttrib4Nubv", "glVertexAttrib")
+    , ("glVertexAttrib4Nusv", "glVertexAttrib")
+    , ("glVertexAttrib4Nuiv", "glVertexAttrib")
+    , ("glVertexAttribI4bv", "glVertexAttrib")
+    , ("glVertexAttribI4ubv", "glVertexAttrib")
+    , ("glVertexAttribI4sv", "glVertexAttrib")
+    , ("glVertexAttribI4usv", "glVertexAttrib")
+    , ("glVertexAttribI4iv", "glVertexAttrib")
+    , ("glVertexAttribI4uiv", "glVertexAttrib")
+    , ("glVertexAttribL1dv", "glVertexAttrib")
+    , ("glVertexAttribL2dv", "glVertexAttrib")
+    , ("glVertexAttribL3dv", "glVertexAttrib")
+    , ("glVertexAttribL4dv", "glVertexAttrib")
+    , ("glVertexAttribP1ui", "glVertexAttrib")
+    , ("glVertexAttribP2ui", "glVertexAttrib")
+    , ("glVertexAttribP3ui", "glVertexAttrib")
+    , ("glVertexAttribP4ui", "glVertexAttrib")
+    , ("glVertexBindingDivisor", "glVertexBindingDivisor")
+    , ("glVertexArrayBindingDivisor", "glVertexBindingDivisor")
+    , ("glViewportArrayv", "glViewportArray")
+    , ("glViewportIndexedf", "glViewportIndexed")
+    , ("glViewportIndexedfv", "glViewportIndexed")
+    , ("glViewport", "glViewport")
+    , ("glWaitSync", "glWaitSync")
+    ]
+
+entriesFor ::
+     String
+  -> Label
+  -> String
+  -> String
+  -> [(String, String)]
+  -> [(ManPageKey, [(URL, Label)])]
+entriesFor api label baseURL extension assocs =
+  [ ((API api, CommandName n), [(baseURL ++ u ++ extension, label)])
+  | (n, u) <- assocs
+  ]
+
+manPageURLs :: M.Map ManPageKey [(URL, Label)]
+manPageURLs =
+  M.fromListWith (++) . concat $
+  reverse [assocsGL2, assocsGL3, assocsGL4, assocsGLX1]
diff --git a/RegistryProcessor/src/MangledRegistry.hs b/RegistryProcessor/src/MangledRegistry.hs
new file mode 100644
--- /dev/null
+++ b/RegistryProcessor/src/MangledRegistry.hs
@@ -0,0 +1,374 @@
+-- This module is a convenience layer upon the Registry module which knows
+-- nothing about GL/GLX/EGL/WGL-specific things.
+module MangledRegistry
+  ( ToEnumType
+  , parseRegistry
+  , Registry(..)
+  , Type(..)
+  , Group(..)
+  , Enum'(..)
+  , R.TypeName(..)
+  , R.TypeSuffix(..)
+  , Command(..)
+  , commandName
+  , SignatureElement(..)
+  , Modification(..)
+  , R.ModificationKind(..)
+  , R.ProfileName(..)
+  , Extension(..)
+  , ConditionalModification(..)
+  , InterfaceElement(..)
+  , GroupName(..)
+  , EnumName(..)
+  , EnumValue(..)
+  , CommandName(..)
+  , ExtensionName(..)
+  , API(..)
+  , Version(..)
+  , splitWords
+  , joinWords
+  ) where
+
+import qualified Data.List as L
+import qualified Data.Map as M
+import qualified Data.Maybe as DM
+import qualified Data.Set as S
+import qualified Numeric as N
+
+import qualified DeclarationParser as D
+import qualified Registry as R
+
+type ToEnumType
+   = Maybe String -> Maybe String -> Maybe String -> Maybe R.TypeSuffix -> String -> R.TypeName
+
+parseRegistry :: ToEnumType -> String -> Either String Registry
+parseRegistry toEnumType str = toRegistry toEnumType `fmap` R.parseRegistry str
+
+data Registry = Registry
+  { types :: M.Map R.TypeName Type
+  , groups :: M.Map GroupName Group
+  , enums :: M.Map EnumName [Enum']
+  , commands :: M.Map CommandName Command
+  , features :: M.Map (API, Version) [Modification]
+  , extensions :: [Extension]
+  } deriving (Eq, Ord, Show)
+
+toRegistry :: ToEnumType -> R.Registry -> Registry
+toRegistry toEnumType r =
+  Registry
+  { types =
+      fromList'
+        [(typeNameOf t, toType t) | R.TypesElement te <- rs, t <- R.unTypes te]
+  , groups =
+      fromList'
+        [ (GroupName . R.unName . R.groupName $ g, toGroup g)
+        | R.GroupsElement ge <- rs
+        , g <- R.unGroups ge
+        ]
+  , enums =
+      M.fromListWith
+        (++)
+        [ (enumName en, [en])
+        | R.EnumsElement ee <- rs
+        , Left e <- R.enumsEnumOrUnuseds ee
+        , let en =
+                toEnum'
+                  (toEnumType
+                     (R.enumsNamespace ee)
+                     (R.enumsGroup ee)
+                     (R.enumsType ee))
+                  e
+        ]
+  , commands =
+      fromList'
+        [ (CommandName . R.protoName . R.commandProto $ c, toCommand c)
+        | R.CommandsElement ce <- rs
+        , c <- R.commandsCommands ce
+        ]
+  , features =
+      fromList'
+        [ ( (API (R.featureAPI f), read (R.featureNumber f))
+          , map toModification (R.featureModifications f))
+        | R.FeatureElement f <- rs
+        ]
+  , extensions =
+      [ toExtension x
+      | R.ExtensionsElement ee <- R.unRegistry r
+      , x <- R.unExtensions ee
+      ]
+  }
+  where
+    rs = R.unRegistry r
+
+fromList' :: (Ord k, Show a) => [(k, a)] -> M.Map k a
+fromList' =
+  M.fromListWith (\n o -> error $ "clash for " ++ show n ++ " and " ++ show o)
+
+typeNameOf :: R.Type -> R.TypeName
+typeNameOf t =
+  case (R.typeName1 t, R.typeName2 t) of
+    (Nothing, Nothing) -> error ("missing type name in " ++ show t)
+    (Just n1, Nothing) -> n1
+    (Nothing, Just n2) -> n2
+    (Just n1, Just n2)
+      | n1 == n2 -> n1
+      | otherwise -> error ("conflicting type name in " ++ show t)
+
+data Type = Type
+  { typeAPI :: Maybe API
+  , typeRequires :: Maybe R.TypeName
+  } deriving (Eq, Ord, Show)
+
+toType :: R.Type -> Type
+toType t =
+  Type
+  { typeAPI = API `fmap` R.typeAPI t
+  , typeRequires = R.TypeName `fmap` R.typeRequires t
+  }
+
+newtype Group = Group
+  { groupEnums :: [EnumName]
+  } deriving (Eq, Ord, Show)
+
+toGroup :: R.Group -> Group
+toGroup g = Group {groupEnums = map (EnumName . R.unName) (R.groupEnums g)}
+
+-- NOTE: Due to an oversight in the OpenGL ES spec, an enum can have different
+-- values for different APIs (happens only for GL_ACTIVE_PROGRAM_EXT).
+data Enum' = Enum
+  { enumValue :: EnumValue
+  , enumAPI :: Maybe API
+  , enumType :: R.TypeName
+  , enumName :: EnumName
+  } deriving (Eq, Ord, Show)
+
+toEnum' :: (Maybe R.TypeSuffix -> String -> R.TypeName) -> R.Enum' -> Enum'
+toEnum' toTypeName e =
+  Enum
+  { enumValue = EnumValue (R.enumValue e)
+  , enumAPI = API `fmap` R.enumAPI e
+  , enumType = toTypeName (R.enumType e) (R.enumName e)
+  , enumName = EnumName (R.enumName e)
+  }
+
+splitChar :: Char
+splitChar = '_'
+
+splitWords :: String -> [String]
+splitWords = splitBy (== splitChar)
+
+splitBy :: (a -> Bool) -> [a] -> [[a]]
+splitBy _ [] = []
+splitBy p xs =
+  case break p xs of
+    (ys, []) -> [ys]
+    (ys, _:zs) -> ys : splitBy p zs
+
+joinWords :: [String] -> String
+joinWords = L.intercalate [splitChar]
+
+data Command = Command
+  { resultType :: SignatureElement
+  , paramTypes :: [SignatureElement]
+  , referencedTypes :: S.Set R.TypeName
+  , vecEquiv :: Maybe CommandName
+  , alias :: Maybe CommandName
+  } deriving (Eq, Ord, Show)
+
+toCommand :: R.Command -> Command
+toCommand c =
+  Command
+  { resultType = resTy
+  , paramTypes = paramTys
+  , referencedTypes =
+      S.fromList $
+    -- Make sure that we don't reference pointers to structs, they are mapped to
+    -- 'Ptr a' etc., anyway (glCreateSyncFromCLeventARB is an exmaple for this).
+      filter (not . ("struct " `L.isPrefixOf`) . R.unTypeName) $
+      DM.mapMaybe (R.protoPtype . R.paramProto) (pr : ps)
+  , vecEquiv = (CommandName . R.unName) `fmap` R.commandVecEquiv c
+  , alias = (CommandName . R.unName) `fmap` R.commandAlias c
+  }
+  where
+    pr = R.Param {R.paramLen = Nothing, R.paramProto = R.commandProto c}
+    ps = R.commandParams c
+    varSupply = map (R.TypeName . showIntUsingDigits ['a' .. 'z']) [0 ..]
+    (resTy:paramTys) = snd $ L.mapAccumL toSignatureElement varSupply (pr : ps)
+
+showIntUsingDigits :: String -> Int -> String
+showIntUsingDigits ds x = N.showIntAtBase (length ds) (ds !!) x ""
+
+commandName :: Command -> CommandName
+commandName = CommandName . signatureElementName . resultType
+
+data SignatureElement = SignatureElement
+  { arrayLength :: Maybe String
+  , belongsToGroup :: Maybe GroupName
+  , baseType :: R.TypeName
+  , numPointer :: Int
+  , signatureElementName :: String
+  } deriving (Eq, Ord)
+
+instance Show SignatureElement where
+  showsPrec d ct
+    | numPointer ct == 0 = showString (R.unTypeName (baseType ct))
+    | otherwise =
+      showParen (d > 10) $
+      showString "Ptr " . showsPrec 11 (ct {numPointer = numPointer ct - 1})
+  showList = flip . foldr $ \x -> shows x . showString " -> "
+
+-- We want to get 'Ptr a' instead of 'Ptr ()', so we might have to rename.
+toSignatureElement ::
+     [R.TypeName] -> R.Param -> ([R.TypeName], SignatureElement)
+toSignatureElement varSupply param =
+  either
+    error
+    (\(b, n) ->
+       renameIf
+         (b == "()" && n > 0)
+         varSupply
+         SignatureElement
+         { arrayLength = R.paramLen param
+         , belongsToGroup = GroupName `fmap` R.protoGroup proto
+         , numPointer = n
+         , baseType = R.TypeName b
+         , signatureElementName = R.protoName proto
+         }) $
+  D.parse $
+  unwords $
+  map
+    ($ proto)
+    [ R.protoText1
+    , maybe "" R.unTypeName . R.protoPtype
+    , R.protoText2
+    , R.protoName
+    , R.protoText3
+    ]
+  where
+    proto = R.paramProto param
+
+renameIf ::
+     Bool
+  -> [R.TypeName]
+  -> SignatureElement
+  -> ([R.TypeName], SignatureElement)
+renameIf False varSupply ct = (varSupply, ct)
+renameIf True varSupply ct = (tail varSupply, ct {baseType = head varSupply})
+
+data Modification = Modification
+  { modificationKind :: R.ModificationKind
+  , modificationProfile :: Maybe R.ProfileName
+  , modificationInterfaceElements :: [InterfaceElement]
+  } deriving (Eq, Ord, Show)
+
+toModification :: R.Modification -> Modification
+toModification m =
+  Modification
+  { modificationKind = R.modificationModificationKind m
+  , modificationProfile = R.modificationProfileName m
+  , modificationInterfaceElements =
+      map toInterfaceElement (R.modificationInterfaceElements m)
+  }
+
+data Extension = Extension
+  { extensionName :: ExtensionName
+  , extensionSupported :: Maybe [API]
+  , extensionsRequireRemove :: [ConditionalModification]
+  } deriving (Eq, Ord, Show)
+
+toExtension :: R.Extension -> Extension
+toExtension e =
+  Extension
+  { extensionName = toExtensionName $ R.extensionName e
+  , extensionSupported = supp `fmap` R.extensionSupported e
+  , extensionsRequireRemove =
+      map toConditionalModification (R.extensionsRequireRemove e)
+  }
+  where
+    supp = map API . splitBy (== '|') . R.unStringGroup
+
+data ConditionalModification = ConditionalModification
+  { conditionalModificationAPI :: Maybe API
+  , conditionalModificationModification :: Modification
+  } deriving (Eq, Ord, Show)
+
+toConditionalModification ::
+     R.ConditionalModification -> ConditionalModification
+toConditionalModification c =
+  ConditionalModification
+  { conditionalModificationAPI = API `fmap` R.conditionalModificationAPI c
+  , conditionalModificationModification =
+      toModification (R.conditionalModificationModification c)
+  }
+
+data InterfaceElement
+  = TypeElement R.TypeName
+  | EnumElement EnumName
+  | CommandElement CommandName
+  deriving (Eq, Ord, Show)
+
+toInterfaceElement :: R.InterfaceElement -> InterfaceElement
+toInterfaceElement i =
+  (case R.interfaceElementKind i of
+     R.InterfaceElementType -> TypeElement . R.TypeName
+     R.InterfaceElementEnum -> EnumElement . EnumName
+     R.InterfaceElementCommand -> CommandElement . CommandName)
+    (R.unName (R.interfaceElementName i))
+
+newtype GroupName = GroupName
+  { unGroupName :: String
+  } deriving (Eq, Ord, Show)
+
+newtype EnumName = EnumName
+  { unEnumName :: String
+  } deriving (Eq, Ord, Show)
+
+-- Conceptually EnumValue should be an Integer, but the registry cheats a bit:
+--
+--   * xsd:decimal doesn't allow hex notation, which is used everywhere.
+--   * egl.xml uses expression strings like "((EGLint)-1)".
+--   * glx.xml uses "&quot;GLX&quot;", totally abusing it.
+newtype EnumValue = EnumValue
+  { unEnumValue :: String
+  } deriving (Eq, Ord, Show)
+
+newtype CommandName = CommandName
+  { unCommandName :: String
+  } deriving (Eq, Ord, Show)
+
+-- See https://www.opengl.org/registry/doc/rules.html#spec_naming
+data ExtensionName = ExtensionName
+  { extensionNameAPI :: String
+  , extensionNameCategory :: String
+  , extensionNameName :: String
+  } deriving (Eq, Ord, Show)
+
+toExtensionName :: R.Name -> ExtensionName
+toExtensionName name =
+  ExtensionName
+  { extensionNameAPI = a
+  , extensionNameCategory = c
+  , extensionNameName = joinWords rest
+  }
+  where
+    (a:c:rest) = splitWords (R.unName name)
+
+newtype API = API
+  { unAPI :: String
+  } deriving (Eq, Ord, Show)
+
+data Version = Version
+  { major :: Int
+  , minor :: Int
+  } deriving (Eq, Ord)
+
+instance Show Version where
+  showsPrec _ v = shows (major v) . showChar '.' . shows (minor v)
+
+instance Read Version where
+  readsPrec _ s =
+    [ (Version ma mi, r3)
+    | (ma, r1) <- N.readDec s
+    , ('.':r2) <- [r1]
+    , (mi, r3) <- N.readDec r2
+    ]
diff --git a/RegistryProcessor/src/Registry.hs b/RegistryProcessor/src/Registry.hs
new file mode 100644
--- /dev/null
+++ b/RegistryProcessor/src/Registry.hs
@@ -0,0 +1,541 @@
+-- This module contains a 1:1 translation of registry.rnc with an (un-)parser.
+-- No simplifications or GL/GLX/EGL/WGL-specific things are done here.
+module Registry
+  ( parseRegistry
+  , unparseRegistry
+  , Registry(..)
+  , RegistryElement(..)
+  , Types(..)
+  , Type(..)
+  , Groups(..)
+  , Group(..)
+  , Enums(..)
+  , Enum'(..)
+  , Unused(..)
+  , Commands(..)
+  , Command(..)
+  , Proto(..)
+  , Param(..)
+  , GLX(..)
+  , Feature(..)
+  , Modification(..)
+  , ModificationKind(..)
+  , Extensions(..)
+  , Extension(..)
+  , ConditionalModification(..)
+  , InterfaceElement(..)
+  , InterfaceElementKind(..)
+  , Integer'(..)
+  , TypeName(..)
+  , TypeSuffix(..)
+  , StringGroup(..)
+  , ProfileName(..)
+  , Vendor(..)
+  , Comment(..)
+  , Name(..)
+  ) where
+
+import Data.Maybe (maybeToList)
+import Text.XML.HXT.Core
+
+parseRegistry :: String -> Either String Registry
+parseRegistry =
+  head .
+  runLA
+    (xreadDoc >>>
+     neg isXmlPi >>>
+     removeAllWhiteSpace >>>
+     canonicalizeAllNodes >>> -- needed to e.g. process CDATA, remove XML comments, etc.
+     arr (unpickleDoc' xpRegistry))
+
+unparseRegistry :: Registry -> String
+unparseRegistry =
+  concat .
+  (pickleDoc xpRegistry >>>
+   runLA
+     (writeDocumentToString
+        [withIndent yes, withOutputEncoding utf8, withXmlPi yes]))
+
+-- Note: We do this slightly different from the schema.
+newtype Registry = Registry
+  { unRegistry :: [RegistryElement]
+  } deriving (Eq, Ord, Show)
+
+xpRegistry :: PU Registry
+xpRegistry =
+  xpWrap (Registry, unRegistry) $ xpElem "registry" $ xpList xpRegistryElement
+
+data RegistryElement
+  = CommentElement { unCommentElement :: Comment }
+  | TypesElement { unTypesElement :: Types }
+  | GroupsElement { unGroupsElement :: Groups }
+  | EnumsElement { unEnumsElement :: Enums }
+  | CommandsElement { unCommandsElement :: Commands }
+  | FeatureElement { unFeatureElement :: Feature }
+  | ExtensionsElement { unExtensionsElement :: Extensions }
+  deriving (Eq, Ord, Show)
+
+xpRegistryElement :: PU RegistryElement
+xpRegistryElement = xpAlt tag pus
+  where
+    tag (CommentElement _) = 0
+    tag (TypesElement _) = 1
+    tag (GroupsElement _) = 2
+    tag (EnumsElement _) = 3
+    tag (CommandsElement _) = 4
+    tag (FeatureElement _) = 5
+    tag (ExtensionsElement _) = 6
+    pus =
+      [ xpWrap (CommentElement, unCommentElement) $ xpElem "comment" xpComment
+      , xpWrap (TypesElement, unTypesElement) xpTypes
+      , xpWrap (GroupsElement, unGroupsElement) xpGroups
+      , xpWrap (EnumsElement, unEnumsElement) xpEnums
+      , xpWrap (CommandsElement, unCommandsElement) xpCommands
+      , xpWrap (FeatureElement, unFeatureElement) xpFeature
+      , xpWrap (ExtensionsElement, unExtensionsElement) xpExtensions
+      ]
+
+newtype Types = Types
+  { unTypes :: [Type]
+  } deriving (Eq, Ord, Show)
+
+xpTypes :: PU Types
+xpTypes = xpWrap (Types, unTypes) $ xpElem "types" $ xpList xpType
+
+data Type = Type
+  { typeAPI :: Maybe String
+  , typeRequires :: Maybe String
+  , typeName1 :: Maybe TypeName
+  , typeType :: Maybe String
+  , typeComment :: Maybe Comment
+  , typeText1 :: String
+  , typeAPIEntry :: Maybe String
+  , typeText2 :: String
+  , typeName2 :: Maybe TypeName
+  , typeText3 :: String
+  } deriving (Eq, Ord, Show)
+
+xpType :: PU Type
+xpType =
+  xpWrap
+    ( \(a, b, c, d, e, f, g, h, i, j) -> Type a b c d e f g h i j
+    , \(Type a b c d e f g h i j) -> (a, b, c, d, e, f, g, h, i, j)) $
+  xpElem "type" $
+  xp10Tuple
+    (xpAttrImplied "api" xpText)
+    (xpAttrImplied "requires" xpText)
+    (xpAttrImplied "name" xpTypeName)
+    (xpAttrImplied "type" xpText)
+    (xpOption xpCommentAttr)
+    xpText0
+    (xpOption $ xpElem "apientry" xpText0)
+    xpText0
+    (xpOption $ xpElem "name" xpTypeName)
+    xpText0
+
+newtype Groups = Groups
+  { unGroups :: [Group]
+  } deriving (Eq, Ord, Show)
+
+xpGroups :: PU Groups
+xpGroups = xpWrap (Groups, unGroups) $ xpElem "groups" $ xpList xpGroup
+
+data Group = Group
+  { groupName :: Name
+  , groupComment :: Maybe Comment
+  , groupEnums :: [Name]
+  } deriving (Eq, Ord, Show)
+
+xpGroup :: PU Group
+xpGroup =
+  xpWrap (\(a, b, c) -> Group a b c, \(Group a b c) -> (a, b, c)) $
+  xpElem "group" $
+  xpTriple xpName (xpOption xpCommentAttr) (xpList $ xpElem "enum" xpName)
+
+data Enums = Enums
+  { enumsNamespace :: Maybe String
+  , enumsGroup :: Maybe String
+  , enumsType :: Maybe String
+  -- enumsStart is conceptually a 'Maybe Integer', but egl.xml cheats a bit and
+  -- uses e.g. 'start="0x3060-0x306F"' as a shorthand for
+  -- 'start="0x3060" end="0x306F"'.
+  , enumsStart :: Maybe Integer'
+  , enumsEnd :: Maybe Integer'
+  , enumsVendor :: Maybe Vendor
+  , enumsComment :: Maybe Comment
+  , enumsEnumOrUnuseds :: [Either Enum' Unused]
+  } deriving (Eq, Ord, Show)
+
+xpEnums :: PU Enums
+xpEnums =
+  xpWrap
+    ( \(a, b, c, d, e, f, g, h) -> Enums a b c d e f g h
+    , \(Enums a b c d e f g h) -> (a, b, c, d, e, f, g, h)) $
+  xpElem "enums" $
+  xp8Tuple
+    (xpAttrImplied "namespace" xpText)
+    (xpAttrImplied "group" xpText)
+    (xpAttrImplied "type" xpText)
+    (xpAttrImplied "start" xpInteger)
+    (xpAttrImplied "end" xpInteger)
+    (xpOption xpVendor)
+    (xpOption xpCommentAttr)
+    (xpList $ xpEither xpEnum xpUnused)
+
+xpEither :: PU a -> PU b -> PU (Either a b)
+xpEither pl pr = xpAlt tag pus
+  where
+    tag (Left _) = 0
+    tag (Right _) = 1
+    pus = [xpWrap (Left, \(Left l) -> l) pl, xpWrap (Right, \(Right r) -> r) pr]
+
+data Enum' = Enum
+  { enumValue :: String
+  , enumAPI :: Maybe String
+  , enumType :: Maybe TypeSuffix
+  , enumName :: String
+  , enumAlias :: Maybe String
+  , enumComment :: Maybe Comment
+  } deriving (Eq, Ord, Show)
+
+-- NOTE: The spec uses the interleave pattern, which is not needed: Attributes
+-- are by definition unordered.
+xpEnum :: PU Enum'
+xpEnum =
+  xpWrap
+    ( \(a, b, c, d, e, f) -> Enum a b c d e f
+    , \(Enum a b c d e f) -> (a, b, c, d, e, f)) $
+  xpElem "enum" $
+  xp6Tuple
+    (xpAttr "value" xpText)
+    (xpAttrImplied "api" xpText)
+    (xpAttrImplied "type" xpTypeSuffix)
+    (xpAttr "name" xpText)
+    (xpAttrImplied "alias" xpText)
+    (xpOption xpCommentAttr)
+
+data Unused = Unused
+  { unusedStart :: Integer'
+  , unusedEnd :: Maybe Integer'
+  , unusedVendor :: Maybe Vendor
+  , unusedComment :: Maybe Comment
+  } deriving (Eq, Ord, Show)
+
+xpUnused :: PU Unused
+xpUnused =
+  xpWrap (\(a, b, c, d) -> Unused a b c d, \(Unused a b c d) -> (a, b, c, d)) $
+  xpElem "unused" $
+  xp4Tuple
+    (xpAttr "start" xpInteger)
+    (xpAttrImplied "end" xpInteger)
+    (xpOption xpVendor)
+    (xpOption xpCommentAttr)
+
+data Commands = Commands
+  { commandsNamespace :: Maybe String
+  , commandsCommands :: [Command]
+  } deriving (Eq, Ord, Show)
+
+xpCommands :: PU Commands
+xpCommands =
+  xpWrap (uncurry Commands, \(Commands a b) -> (a, b)) $
+  xpElem "commands" $
+  xpPair (xpAttrImplied "namespace" xpText) (xpList xpCommand)
+
+data Command = Command
+  { commandComment :: Maybe Comment
+  , commandProto :: Proto
+  , commandParams :: [Param]
+  , commandAlias :: Maybe Name
+  , commandVecEquiv :: Maybe Name
+  , commandGLXs :: [GLX]
+  } deriving (Eq, Ord, Show)
+
+xpCommand :: PU Command
+xpCommand =
+  xpWrap
+    ( \(a, b, c, (d, e, f)) -> Command a b c d e f
+    , \(Command a b c d e f) -> (a, b, c, (d, e, f))) $
+  xpElem "command" $
+  xp4Tuple (xpOption xpCommentAttr) xpProto (xpList xpParam) xpCommandTail
+
+-- The spec uses the interleave pattern here, which is not supported in hxt.
+-- As a workaround, we use a list of disjoint types.
+xpCommandTail :: PU (Maybe Name, Maybe Name, [GLX])
+xpCommandTail =
+  xpWrapEither
+    ( \xs -> do
+        a <- check "alias" [x | AliasElement x <- xs]
+        b <- check "vecequiv" [x | VecEquivElement x <- xs]
+        let c = [x | GLXElement x <- xs]
+        return (a, b, c)
+    , \(a, b, c) ->
+        map AliasElement (maybeToList a) ++
+        map VecEquivElement (maybeToList b) ++ map GLXElement c) $
+  xpList $ xpAlt tag pus
+  where
+    tag (AliasElement _) = 0
+    tag (VecEquivElement _) = 1
+    tag (GLXElement _) = 2
+    pus =
+      [ xpWrap (AliasElement, unAliasElement) $ xpElem "alias" xpName
+      , xpWrap (VecEquivElement, unVecEquivElement) $ xpElem "vecequiv" xpName
+      , xpWrap (GLXElement, unGLXElement) xpGLX
+      ]
+    check n xs =
+      case xs of
+        [] -> Right Nothing
+        [x] -> Right $ Just x
+        _ -> Left $ "expected at most one '" ++ n ++ "' element"
+
+data CommandTail
+  = AliasElement { unAliasElement :: Name }
+  | VecEquivElement { unVecEquivElement :: Name }
+  | GLXElement { unGLXElement :: GLX }
+  deriving (Eq, Ord, Show)
+
+data Proto = Proto
+  { protoGroup :: Maybe String
+  , protoText1 :: String
+  , protoPtype :: Maybe TypeName
+  , protoText2 :: String
+  , protoName :: String
+  , protoText3 :: String
+  } deriving (Eq, Ord, Show)
+
+xpProto :: PU Proto
+xpProto =
+  xpWrap
+    ( \(a, b, c, d, e, f) -> Proto a b c d e f
+    , \(Proto a b c d e f) -> (a, b, c, d, e, f)) $
+  xpElem "proto" $
+  xp6Tuple
+    (xpAttrImplied "group" xpText)
+    xpText0
+    (xpOption $ xpElem "ptype" xpTypeName)
+    xpText0
+    (xpElem "name" xpText)
+    xpText0
+
+data Param = Param
+  { paramLen :: Maybe String
+  , paramProto :: Proto
+  } deriving (Eq, Ord, Show)
+
+xpParam :: PU Param
+xpParam =
+  xpWrap
+    ( \(b, a, c, d, e, f, g) -> Param a (Proto b c d e f g)
+    , \(Param a (Proto b c d e f g)) -> (b, a, c, d, e, f, g)) $
+  xpElem "param" $
+  xp7Tuple
+    (xpAttrImplied "group" xpText)
+    (xpAttrImplied "len" xpText)
+    xpText0
+    (xpOption $ xpElem "ptype" xpTypeName)
+    xpText0
+    (xpElem "name" xpText)
+    xpText0
+
+data GLX = GLX
+  { glxType :: String
+  , glxOpcode :: Int
+  , glxName :: Maybe Name
+  , glxComment :: Maybe Comment
+  } deriving (Eq, Ord, Show)
+
+xpGLX :: PU GLX
+xpGLX =
+  xpWrap (\(a, b, c, d) -> GLX a b c d, \(GLX a b c d) -> (a, b, c, d)) $
+  xpElem "glx" $
+  xp4Tuple
+    (xpAttr "type" xpText)
+    (xpAttr "opcode" xpInt)
+    (xpOption xpName)
+    (xpOption xpCommentAttr)
+
+data Feature = Feature
+  { featureAPI :: String
+  , featureName :: Name
+  , featureNumber :: String -- actually xsd:decimal, but used as a string
+  , featureProtect :: Maybe String
+  , featureComment :: Maybe Comment
+  , featureModifications :: [Modification]
+  } deriving (Eq, Ord, Show)
+
+xpFeature :: PU Feature
+xpFeature =
+  xpWrap
+    ( \(a, b, c, d, e, f) -> Feature a b c d e f
+    , \(Feature a b c d e f) -> (a, b, c, d, e, f)) $
+  xpElem "feature" $
+  xp6Tuple
+    (xpAttr "api" xpText)
+    xpName
+    (xpAttr "number" xpText)
+    (xpAttrImplied "protect" xpText)
+    (xpOption xpCommentAttr)
+    (xpList xpModification)
+
+data Modification = Modification
+  { modificationModificationKind :: ModificationKind
+  , modificationProfileName :: Maybe ProfileName
+  , modificationComment :: Maybe Comment
+  , modificationInterfaceElements :: [InterfaceElement]
+  } deriving (Eq, Ord, Show)
+
+data ModificationKind
+  = Require
+  | Remove -- TODO: Better name
+  deriving (Eq, Ord, Show, Enum)
+
+xpModification :: PU Modification
+xpModification = xpAlt (fromEnum . modificationModificationKind) pus
+  where
+    pus = [xpMod "require" Require, xpMod "remove" Remove]
+    xpMod el kind =
+      xpWrap
+        ( \(a, b, c) -> Modification kind a b c
+        , \(Modification _ a b c) -> (a, b, c)) $
+      xpElem el $
+      xpTriple
+        (xpOption xpProfileName)
+        (xpOption xpCommentAttr)
+        (xpList xpInterfaceElement)
+
+newtype Extensions = Extensions
+  { unExtensions :: [Extension]
+  } deriving (Eq, Ord, Show)
+
+xpExtensions :: PU Extensions
+xpExtensions =
+  xpWrap (Extensions, unExtensions) $ xpElem "extensions" $ xpList xpExtension
+
+data Extension = Extension
+  { extensionName :: Name
+  , extensionProtect :: Maybe String
+  , extensionSupported :: Maybe StringGroup
+  , extensionComment :: Maybe Comment
+  , extensionsRequireRemove :: [ConditionalModification]
+  } deriving (Eq, Ord, Show)
+
+xpExtension :: PU Extension
+xpExtension =
+  xpWrap
+    ( \(a, b, c, d, e) -> Extension a b c d e
+    , \(Extension a b c d e) -> (a, b, c, d, e)) $
+  xpElem "extension" $
+  xp5Tuple
+    xpName
+    (xpAttrImplied "protect" xpText)
+    (xpAttrImplied "supported" xpStringGroup)
+    (xpOption xpCommentAttr)
+    (xpList xpConditionalModification)
+
+data ConditionalModification = ConditionalModification
+  { conditionalModificationAPI :: Maybe String
+  , conditionalModificationModification :: Modification
+  } deriving (Eq, Ord, Show)
+
+xpConditionalModification :: PU ConditionalModification
+xpConditionalModification =
+  xpAlt
+    (fromEnum .
+     modificationModificationKind . conditionalModificationModification)
+    pus
+  where
+    pus = [xpMod "require" Require, xpMod "remove" Remove]
+    xpMod el kind =
+      xpWrap
+        ( \(a, b, c, d) -> ConditionalModification a (Modification kind b c d)
+        , \(ConditionalModification a (Modification _ b c d)) -> (a, b, c, d)) $
+      xpElem el $
+      xp4Tuple
+        (xpAttrImplied "api" xpText)
+        (xpOption xpProfileName)
+        (xpOption xpCommentAttr)
+        (xpList xpInterfaceElement)
+
+data InterfaceElement = InterfaceElement
+  { interfaceElementKind :: InterfaceElementKind
+  , interfaceElementName :: Name
+  , interfaceElementComment :: Maybe Comment
+  } deriving (Eq, Ord, Show)
+
+data InterfaceElementKind
+  = InterfaceElementType
+  | InterfaceElementEnum
+  | InterfaceElementCommand
+  deriving (Eq, Ord, Show, Enum)
+
+xpInterfaceElement :: PU InterfaceElement
+xpInterfaceElement = xpAlt (fromEnum . interfaceElementKind) pus
+  where
+    pus =
+      [ xpIE InterfaceElementType "type"
+      , xpIE InterfaceElementEnum "enum"
+      , xpIE InterfaceElementCommand "command"
+      ]
+    xpIE ty el =
+      xpWrap
+        (uncurry (InterfaceElement ty), \(InterfaceElement _ a b) -> (a, b)) $
+      xpElem el $ xpPair xpName (xpOption xpCommentAttr)
+
+newtype Integer' = Integer
+  { unInteger :: String
+  } deriving (Eq, Ord, Show)
+
+xpInteger :: PU Integer'
+xpInteger = xpWrap (Integer, unInteger) xpText
+
+newtype TypeName = TypeName
+  { unTypeName :: String
+  } deriving (Eq, Ord, Show)
+
+xpTypeName :: PU TypeName
+xpTypeName = xpWrap (TypeName, unTypeName) xpText
+
+newtype TypeSuffix = TypeSuffix
+  { unTypeSuffix :: String
+  } deriving (Eq, Ord, Show)
+
+xpTypeSuffix :: PU TypeSuffix
+xpTypeSuffix = xpWrap (TypeSuffix, unTypeSuffix) xpText
+
+newtype StringGroup = StringGroup
+  { unStringGroup :: String
+  } deriving (Eq, Ord, Show)
+
+xpStringGroup :: PU StringGroup
+xpStringGroup = xpWrap (StringGroup, unStringGroup) xpText
+
+newtype ProfileName = ProfileName
+  { unProfileName :: String
+  } deriving (Eq, Ord, Show)
+
+xpProfileName :: PU ProfileName
+xpProfileName = xpAttr "profile" $ xpWrap (ProfileName, unProfileName) xpText
+
+newtype Vendor = Vendor
+  { unVendor :: String
+  } deriving (Eq, Ord, Show)
+
+xpVendor :: PU Vendor
+xpVendor = xpAttr "vendor" $ xpWrap (Vendor, unVendor) xpText
+
+newtype Comment = Comment
+  { unComment :: String
+  } deriving (Eq, Ord, Show)
+
+xpComment :: PU Comment
+xpComment = xpWrap (Comment, unComment) xpText
+
+xpCommentAttr :: PU Comment
+xpCommentAttr = xpAttr "comment" xpComment
+
+newtype Name = Name
+  { unName :: String
+  } deriving (Eq, Ord, Show)
+
+xpName :: PU Name
+xpName = xpAttr "name" $ xpWrap (Name, unName) xpText
diff --git a/cbits/HsOpenGLRaw.c b/cbits/HsOpenGLRaw.c
--- a/cbits/HsOpenGLRaw.c
+++ b/cbits/HsOpenGLRaw.c
@@ -1,10 +1,10 @@
 /* -----------------------------------------------------------------------------
  *
  * Module      :  C support for Graphics.Rendering.OpenGL.Raw.GetProcAddress.hs
- * Copyright   :  (c) Sven Panne 2009
- * License     :  BSD-style (see the file LICENSE)
+ * Copyright   :  (c) Sven Panne 2009-2019
+ * License     :  BSD3
  *
- * Maintainer  :  sven.panne@aedion.de
+ * Maintainer  :  Sven Panne <svenpanne@gmail.com>
  * Stability   :  stable
  * Portability :  portable
  *
diff --git a/include/CTypes.h b/include/CTypes.h
deleted file mode 100644
--- a/include/CTypes.h
+++ /dev/null
@@ -1,212 +0,0 @@
-/* -----------------------------------------------------------------------------
- *
- * Module      :  Dirty CPP hackery for OpenGL's basic types
- * Copyright   :  (c) Sven Panne 2009 + the FFI task force
- * License     :  BSD-style (see the file LICENSE)
- * 
- * Maintainer  :  sven.panne@aedion.de
- * Stability   :  stable
- * Portability :  portable
- *
- * This header should only define preprocessor macros! It is basically a
- * slightly modified version of CTypes.h and Typeable.h from GHC's base package.
- *
- * -------------------------------------------------------------------------- */
-
-#ifndef CTYPES_H
-#define CTYPES_H
-
-#define INSTANCE_TYPEABLE0(tycon,tcname,str) \
-tcname :: TyCon; \
-tcname = mkTyCon str; \
-instance Typeable tycon where { typeOf _ = mkTyConApp tcname [] }
-
---  // A hacked version for GHC follows the Haskell 98 version...
-#ifndef __GLASGOW_HASKELL__
-
-#define ARITHMETIC_TYPE(T,C,S,B) \
-newtype T = T B deriving (Eq, Ord) ; \
-INSTANCE_NUM(T) ; \
-INSTANCE_REAL(T) ; \
-INSTANCE_READ(T,B) ; \
-INSTANCE_SHOW(T,B) ; \
-INSTANCE_ENUM(T) ; \
-INSTANCE_STORABLE(T) ; \
-INSTANCE_TYPEABLE0(T,C,S) ;
-
-#define INTEGRAL_TYPE(T,C,S,B) \
-ARITHMETIC_TYPE(T,C,S,B) ; \
-INSTANCE_BOUNDED(T) ; \
-INSTANCE_INTEGRAL(T) ; \
-INSTANCE_BITS(T)
-
-#define FLOATING_TYPE(T,C,S,B) \
-ARITHMETIC_TYPE(T,C,S,B) ; \
-INSTANCE_FRACTIONAL(T) ; \
-INSTANCE_FLOATING(T) ; \
-INSTANCE_REALFRAC(T) ; \
-INSTANCE_REALFLOAT(T)
-
-#define INSTANCE_READ(T,B) \
-instance Read T where { \
-   readsPrec p s = map (\(x, t) -> (T x, t)) (readsPrec p s) }
-
-#define INSTANCE_SHOW(T,B) \
-instance Show T where { \
-   showsPrec p (T x) = showsPrec p x }
-
-#define INSTANCE_NUM(T) \
-instance Num T where { \
-   (T i) + (T j) = T (i + j) ; \
-   (T i) - (T j) = T (i - j) ; \
-   (T i) * (T j) = T (i * j) ; \
-   negate  (T i) = T (negate i) ; \
-   abs     (T i) = T (abs    i) ; \
-   signum  (T i) = T (signum i) ; \
-   fromInteger x = T (fromInteger x) }
-
-#define INSTANCE_BOUNDED(T) \
-instance Bounded T where { \
-   minBound = T minBound ; \
-   maxBound = T maxBound }
-
-#define INSTANCE_ENUM(T) \
-instance Enum T where { \
-   succ           (T i)             = T (succ i) ; \
-   pred           (T i)             = T (pred i) ; \
-   toEnum               x           = T (toEnum x) ; \
-   fromEnum       (T i)             = fromEnum i ; \
-   enumFrom       (T i)             = map T (enumFrom i) ; \
-   enumFromThen   (T i) (T j)       = map T (enumFromThen i j) ; \
-   enumFromTo     (T i) (T j)       = map T (enumFromTo i j) ; \
-   enumFromThenTo (T i) (T j) (T k) = map T (enumFromThenTo i j k) }
-
-#define INSTANCE_REAL(T) \
-instance Real T where { \
-   toRational (T i) = toRational i }
-
-#define INSTANCE_INTEGRAL(T) \
-instance Integral T where { \
-   (T i) `quot`    (T j) = T (i `quot` j) ; \
-   (T i) `rem`     (T j) = T (i `rem`  j) ; \
-   (T i) `div`     (T j) = T (i `div`  j) ; \
-   (T i) `mod`     (T j) = T (i `mod`  j) ; \
-   (T i) `quotRem` (T j) = let (q,r) = i `quotRem` j in (T q, T r) ; \
-   (T i) `divMod`  (T j) = let (d,m) = i `divMod`  j in (T d, T m) ; \
-   toInteger (T i)       = toInteger i }
-
-#define INSTANCE_BITS(T) \
-instance Bits T where { \
-  (T x) .&.     (T y)   = T (x .&.   y) ; \
-  (T x) .|.     (T y)   = T (x .|.   y) ; \
-  (T x) `xor`   (T y)   = T (x `xor` y) ; \
-  complement    (T x)   = T (complement x) ; \
-  shift         (T x) n = T (shift x n) ; \
-  rotate        (T x) n = T (rotate x n) ; \
-  bit                 n = T (bit n) ; \
-  setBit        (T x) n = T (setBit x n) ; \
-  clearBit      (T x) n = T (clearBit x n) ; \
-  complementBit (T x) n = T (complementBit x n) ; \
-  testBit       (T x) n = testBit x n ; \
-  bitSize       (T x)   = bitSize x ; \
-  isSigned      (T x)   = isSigned x }
-
-#define INSTANCE_FRACTIONAL(T) \
-instance Fractional T where { \
-   (T x) / (T y)  = T (x / y) ; \
-   recip   (T x)  = T (recip x) ; \
-   fromRational r = T (fromRational r) }
-
-#define INSTANCE_FLOATING(T) \
-instance Floating T where { \
-   pi                    = pi ; \
-   exp   (T x)           = T (exp   x) ; \
-   log   (T x)           = T (log   x) ; \
-   sqrt  (T x)           = T (sqrt  x) ; \
-   (T x) **        (T y) = T (x ** y) ; \
-   (T x) `logBase` (T y) = T (x `logBase` y) ; \
-   sin   (T x)           = T (sin   x) ; \
-   cos   (T x)           = T (cos   x) ; \
-   tan   (T x)           = T (tan   x) ; \
-   asin  (T x)           = T (asin  x) ; \
-   acos  (T x)           = T (acos  x) ; \
-   atan  (T x)           = T (atan  x) ; \
-   sinh  (T x)           = T (sinh  x) ; \
-   cosh  (T x)           = T (cosh  x) ; \
-   tanh  (T x)           = T (tanh  x) ; \
-   asinh (T x)           = T (asinh x) ; \
-   acosh (T x)           = T (acosh x) ; \
-   atanh (T x)           = T (atanh x) }
-
-#define INSTANCE_REALFRAC(T) \
-instance RealFrac T where { \
-   properFraction (T x) = let (m,y) = properFraction x in (m, T y) ; \
-   truncate (T x) = truncate x ; \
-   round    (T x) = round x ; \
-   ceiling  (T x) = ceiling x ; \
-   floor    (T x) = floor x }
-
-#define INSTANCE_REALFLOAT(T) \
-instance RealFloat T where { \
-   floatRadix     (T x) = floatRadix x ; \
-   floatDigits    (T x) = floatDigits x ; \
-   floatRange     (T x) = floatRange x ; \
-   decodeFloat    (T x) = decodeFloat x ; \
-   encodeFloat m n      = T (encodeFloat m n) ; \
-   exponent       (T x) = exponent x ; \
-   significand    (T x) = T (significand  x) ; \
-   scaleFloat n   (T x) = T (scaleFloat n x) ; \
-   isNaN          (T x) = isNaN x ; \
-   isInfinite     (T x) = isInfinite x ; \
-   isDenormalized (T x) = isDenormalized x ; \
-   isNegativeZero (T x) = isNegativeZero x ; \
-   isIEEE         (T x) = isIEEE x ; \
-   (T x) `atan2`  (T y) = T (x `atan2` y) }
-
-#define INSTANCE_STORABLE(T) \
-instance Storable T where { \
-   sizeOf    (T x)       = sizeOf x ; \
-   alignment (T x)       = alignment x ; \
-   peekElemOff a i       = liftM T (peekElemOff (castPtr a) i) ; \
-   pokeElemOff a i (T x) = pokeElemOff (castPtr a) i x }
-
-#else /* __GLASGOW_HASKELL__ */
-
---  // GHC can derive any class for a newtype, so we make use of that here...
-
-#define ARITHMETIC_CLASSES  Eq,Ord,Num,Enum,Storable,Real
-#define INTEGRAL_CLASSES Bounded,Integral,Bits
-#define FLOATING_CLASSES Fractional,Floating,RealFrac,RealFloat
-
-#define ARITHMETIC_TYPE(T,C,S,B) \
-newtype T = T B deriving (ARITHMETIC_CLASSES); \
-INSTANCE_READ(T,B); \
-INSTANCE_SHOW(T,B); \
-INSTANCE_TYPEABLE0(T,C,S) ;
-
-#define INTEGRAL_TYPE(T,C,S,B) \
-newtype T = T B deriving (ARITHMETIC_CLASSES, INTEGRAL_CLASSES); \
-INSTANCE_READ(T,B); \
-INSTANCE_SHOW(T,B); \
-INSTANCE_TYPEABLE0(T,C,S) ;
-
-#define FLOATING_TYPE(T,C,S,B) \
-newtype T = T B deriving (ARITHMETIC_CLASSES, FLOATING_CLASSES); \
-INSTANCE_READ(T,B); \
-INSTANCE_SHOW(T,B); \
-INSTANCE_TYPEABLE0(T,C,S) ;
-
-#define INSTANCE_READ(T,B) \
-instance Read T where { \
-   readsPrec            = unsafeCoerce# (readsPrec :: Int -> ReadS B); \
-   readList             = unsafeCoerce# (readList  :: ReadS [B]); }
-
-#define INSTANCE_SHOW(T,B) \
-instance Show T where { \
-   showsPrec            = unsafeCoerce# (showsPrec :: Int -> B -> ShowS); \
-   show                 = unsafeCoerce# (show :: B -> String); \
-   showList             = unsafeCoerce# (showList :: [B] -> ShowS); }
-
-#endif /* __GLASGOW_HASKELL__ */
-
-#endif
diff --git a/include/HsOpenGLRaw.h b/include/HsOpenGLRaw.h
deleted file mode 100644
--- a/include/HsOpenGLRaw.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* -----------------------------------------------------------------------------
- *
- * Module      :  GL extension support for Graphics.Rendering.OpenGL.Raw
- * Copyright   :  (c) Sven Panne 2009
- * License     :  BSD-style (see the file LICENSE)
- * 
- * Maintainer  :  sven.panne@aedion.de
- * Stability   :  stable
- * Portability :  portable
- *
- * This header should only define preprocessor macros!
- *
- * -------------------------------------------------------------------------- */
-
-#ifndef HSOPENGLRAW_H
-#define HSOPENGLRAW_H
-
-/* NOTE: The macro must immediately start with the foreign declaration,
-   otherwise the magic mangler (hack_foreign) in the Hugs build system
-   doesn't recognize it. */
-#define EXTENSION_ENTRY(_entry,_ty) \
-foreign import CALLCONV unsafe "dynamic" dyn_/**/_entry :: Graphics.Rendering.OpenGL.Raw.Extensions.Invoker (_ty) ; \
-_entry :: (_ty) ; \
-_entry = dyn_/**/_entry ptr_/**/_entry ; \
-ptr_/**/_entry :: FunPtr a ; \
-ptr_/**/_entry = unsafePerformIO (Graphics.Rendering.OpenGL.Raw.Extensions.getExtensionEntry extensionNameString "_entry") ; \
-{-# NOINLINE ptr_/**/_entry #-}
-
-#endif
diff --git a/src/Graphics/GL.hs b/src/Graphics/GL.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL.hs
@@ -0,0 +1,78 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- A convenience module, combining the latest OpenGL compatibility profile plus
+-- all extensions.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL (
+  module Graphics.GL.Compatibility46,
+  module Graphics.GL.GetProcAddress,
+  module Graphics.GL.AMD,
+  module Graphics.GL.APPLE,
+  module Graphics.GL.ARB,
+  module Graphics.GL.ATI,
+  module Graphics.GL.EXT,
+  module Graphics.GL.GREMEDY,
+  module Graphics.GL.HP,
+  module Graphics.GL.IBM,
+  module Graphics.GL.INGR,
+  module Graphics.GL.INTEL,
+  module Graphics.GL.KHR,
+  module Graphics.GL.MESA,
+  module Graphics.GL.MESAX,
+  module Graphics.GL.NV,
+  module Graphics.GL.NVX,
+  module Graphics.GL.OES,
+  module Graphics.GL.OML,
+  module Graphics.GL.OVR,
+  module Graphics.GL.PGI,
+  module Graphics.GL.REND,
+  module Graphics.GL.S3,
+  module Graphics.GL.SGI,
+  module Graphics.GL.SGIS,
+  module Graphics.GL.SGIX,
+  module Graphics.GL.SUN,
+  module Graphics.GL.SUNX,
+  module Graphics.GL.ThreeDFX,
+  module Graphics.GL.WIN
+) where
+
+import Graphics.GL.Compatibility46
+import Graphics.GL.GetProcAddress
+import Graphics.GL.AMD
+import Graphics.GL.APPLE
+import Graphics.GL.ARB
+import Graphics.GL.ATI
+import Graphics.GL.EXT
+import Graphics.GL.GREMEDY
+import Graphics.GL.HP
+import Graphics.GL.IBM
+import Graphics.GL.INGR
+import Graphics.GL.INTEL
+import Graphics.GL.KHR
+import Graphics.GL.MESA
+import Graphics.GL.MESAX
+import Graphics.GL.NV
+import Graphics.GL.NVX
+import Graphics.GL.OES
+import Graphics.GL.OML
+import Graphics.GL.OVR
+import Graphics.GL.PGI
+import Graphics.GL.REND
+import Graphics.GL.S3
+import Graphics.GL.SGI
+import Graphics.GL.SGIS
+import Graphics.GL.SGIX
+import Graphics.GL.SUN
+import Graphics.GL.SUNX
+import Graphics.GL.ThreeDFX
+import Graphics.GL.WIN
diff --git a/src/Graphics/GL/AMD.hs b/src/Graphics/GL/AMD.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/AMD.hs
@@ -0,0 +1,59 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.AMD
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- A convenience module, combining all raw modules containing AMD extensions.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.AMD (
+  module Graphics.GL.AMD.BlendMinmaxFactor,
+  module Graphics.GL.AMD.DebugOutput,
+  module Graphics.GL.AMD.DepthClampSeparate,
+  module Graphics.GL.AMD.DrawBuffersBlend,
+  module Graphics.GL.AMD.FramebufferMultisampleAdvanced,
+  module Graphics.GL.AMD.FramebufferSamplePositions,
+  module Graphics.GL.AMD.GPUShaderHalfFloat,
+  module Graphics.GL.AMD.GPUShaderInt64,
+  module Graphics.GL.AMD.InterleavedElements,
+  module Graphics.GL.AMD.MultiDrawIndirect,
+  module Graphics.GL.AMD.NameGenDelete,
+  module Graphics.GL.AMD.OcclusionQueryEvent,
+  module Graphics.GL.AMD.PerformanceMonitor,
+  module Graphics.GL.AMD.PinnedMemory,
+  module Graphics.GL.AMD.QueryBufferObject,
+  module Graphics.GL.AMD.SamplePositions,
+  module Graphics.GL.AMD.SeamlessCubemapPerTexture,
+  module Graphics.GL.AMD.SparseTexture,
+  module Graphics.GL.AMD.StencilOperationExtended,
+  module Graphics.GL.AMD.TransformFeedback4,
+  module Graphics.GL.AMD.VertexShaderTessellator
+) where
+
+import Graphics.GL.AMD.BlendMinmaxFactor
+import Graphics.GL.AMD.DebugOutput
+import Graphics.GL.AMD.DepthClampSeparate
+import Graphics.GL.AMD.DrawBuffersBlend
+import Graphics.GL.AMD.FramebufferMultisampleAdvanced
+import Graphics.GL.AMD.FramebufferSamplePositions
+import Graphics.GL.AMD.GPUShaderHalfFloat
+import Graphics.GL.AMD.GPUShaderInt64
+import Graphics.GL.AMD.InterleavedElements
+import Graphics.GL.AMD.MultiDrawIndirect
+import Graphics.GL.AMD.NameGenDelete
+import Graphics.GL.AMD.OcclusionQueryEvent
+import Graphics.GL.AMD.PerformanceMonitor
+import Graphics.GL.AMD.PinnedMemory
+import Graphics.GL.AMD.QueryBufferObject
+import Graphics.GL.AMD.SamplePositions
+import Graphics.GL.AMD.SeamlessCubemapPerTexture
+import Graphics.GL.AMD.SparseTexture
+import Graphics.GL.AMD.StencilOperationExtended
+import Graphics.GL.AMD.TransformFeedback4
+import Graphics.GL.AMD.VertexShaderTessellator
diff --git a/src/Graphics/GL/AMD/BlendMinmaxFactor.hs b/src/Graphics/GL/AMD/BlendMinmaxFactor.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/AMD/BlendMinmaxFactor.hs
@@ -0,0 +1,24 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.AMD.BlendMinmaxFactor
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.AMD.BlendMinmaxFactor (
+  -- * Extension Support
+  glGetAMDBlendMinmaxFactor,
+  gl_AMD_blend_minmax_factor,
+  -- * Enums
+  pattern GL_FACTOR_MAX_AMD,
+  pattern GL_FACTOR_MIN_AMD
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/AMD/DebugOutput.hs b/src/Graphics/GL/AMD/DebugOutput.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/AMD/DebugOutput.hs
@@ -0,0 +1,42 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.AMD.DebugOutput
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.AMD.DebugOutput (
+  -- * Extension Support
+  glGetAMDDebugOutput,
+  gl_AMD_debug_output,
+  -- * Enums
+  pattern GL_DEBUG_CATEGORY_API_ERROR_AMD,
+  pattern GL_DEBUG_CATEGORY_APPLICATION_AMD,
+  pattern GL_DEBUG_CATEGORY_DEPRECATION_AMD,
+  pattern GL_DEBUG_CATEGORY_OTHER_AMD,
+  pattern GL_DEBUG_CATEGORY_PERFORMANCE_AMD,
+  pattern GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD,
+  pattern GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD,
+  pattern GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD,
+  pattern GL_DEBUG_LOGGED_MESSAGES_AMD,
+  pattern GL_DEBUG_SEVERITY_HIGH_AMD,
+  pattern GL_DEBUG_SEVERITY_LOW_AMD,
+  pattern GL_DEBUG_SEVERITY_MEDIUM_AMD,
+  pattern GL_MAX_DEBUG_LOGGED_MESSAGES_AMD,
+  pattern GL_MAX_DEBUG_MESSAGE_LENGTH_AMD,
+  -- * Functions
+  glDebugMessageCallbackAMD,
+  glDebugMessageEnableAMD,
+  glDebugMessageInsertAMD,
+  glGetDebugMessageLogAMD
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/AMD/DepthClampSeparate.hs b/src/Graphics/GL/AMD/DepthClampSeparate.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/AMD/DepthClampSeparate.hs
@@ -0,0 +1,24 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.AMD.DepthClampSeparate
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.AMD.DepthClampSeparate (
+  -- * Extension Support
+  glGetAMDDepthClampSeparate,
+  gl_AMD_depth_clamp_separate,
+  -- * Enums
+  pattern GL_DEPTH_CLAMP_FAR_AMD,
+  pattern GL_DEPTH_CLAMP_NEAR_AMD
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/AMD/DrawBuffersBlend.hs b/src/Graphics/GL/AMD/DrawBuffersBlend.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/AMD/DrawBuffersBlend.hs
@@ -0,0 +1,25 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.AMD.DrawBuffersBlend
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.AMD.DrawBuffersBlend (
+  -- * Extension Support
+  glGetAMDDrawBuffersBlend,
+  gl_AMD_draw_buffers_blend,
+  -- * Functions
+  glBlendEquationIndexedAMD,
+  glBlendEquationSeparateIndexedAMD,
+  glBlendFuncIndexedAMD,
+  glBlendFuncSeparateIndexedAMD
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/AMD/FramebufferMultisampleAdvanced.hs b/src/Graphics/GL/AMD/FramebufferMultisampleAdvanced.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/AMD/FramebufferMultisampleAdvanced.hs
@@ -0,0 +1,32 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.AMD.FramebufferMultisampleAdvanced
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.AMD.FramebufferMultisampleAdvanced (
+  -- * Extension Support
+  glGetAMDFramebufferMultisampleAdvanced,
+  gl_AMD_framebuffer_multisample_advanced,
+  -- * Enums
+  pattern GL_MAX_COLOR_FRAMEBUFFER_SAMPLES_AMD,
+  pattern GL_MAX_COLOR_FRAMEBUFFER_STORAGE_SAMPLES_AMD,
+  pattern GL_MAX_DEPTH_STENCIL_FRAMEBUFFER_SAMPLES_AMD,
+  pattern GL_NUM_SUPPORTED_MULTISAMPLE_MODES_AMD,
+  pattern GL_RENDERBUFFER_STORAGE_SAMPLES_AMD,
+  pattern GL_SUPPORTED_MULTISAMPLE_MODES_AMD,
+  -- * Functions
+  glNamedRenderbufferStorageMultisampleAdvancedAMD,
+  glRenderbufferStorageMultisampleAdvancedAMD
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/AMD/FramebufferSamplePositions.hs b/src/Graphics/GL/AMD/FramebufferSamplePositions.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/AMD/FramebufferSamplePositions.hs
@@ -0,0 +1,32 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.AMD.FramebufferSamplePositions
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.AMD.FramebufferSamplePositions (
+  -- * Extension Support
+  glGetAMDFramebufferSamplePositions,
+  gl_AMD_framebuffer_sample_positions,
+  -- * Enums
+  pattern GL_ALL_PIXELS_AMD,
+  pattern GL_PIXELS_PER_SAMPLE_PATTERN_X_AMD,
+  pattern GL_PIXELS_PER_SAMPLE_PATTERN_Y_AMD,
+  pattern GL_SUBSAMPLE_DISTANCE_AMD,
+  -- * Functions
+  glFramebufferSamplePositionsfvAMD,
+  glGetFramebufferParameterfvAMD,
+  glGetNamedFramebufferParameterfvAMD,
+  glNamedFramebufferSamplePositionsfvAMD
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/AMD/GPUShaderHalfFloat.hs b/src/Graphics/GL/AMD/GPUShaderHalfFloat.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/AMD/GPUShaderHalfFloat.hs
@@ -0,0 +1,35 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.AMD.GPUShaderHalfFloat
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.AMD.GPUShaderHalfFloat (
+  -- * Extension Support
+  glGetAMDGPUShaderHalfFloat,
+  gl_AMD_gpu_shader_half_float,
+  -- * Enums
+  pattern GL_FLOAT16_MAT2_AMD,
+  pattern GL_FLOAT16_MAT2x3_AMD,
+  pattern GL_FLOAT16_MAT2x4_AMD,
+  pattern GL_FLOAT16_MAT3_AMD,
+  pattern GL_FLOAT16_MAT3x2_AMD,
+  pattern GL_FLOAT16_MAT3x4_AMD,
+  pattern GL_FLOAT16_MAT4_AMD,
+  pattern GL_FLOAT16_MAT4x2_AMD,
+  pattern GL_FLOAT16_MAT4x3_AMD,
+  pattern GL_FLOAT16_NV,
+  pattern GL_FLOAT16_VEC2_NV,
+  pattern GL_FLOAT16_VEC3_NV,
+  pattern GL_FLOAT16_VEC4_NV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/AMD/GPUShaderInt64.hs b/src/Graphics/GL/AMD/GPUShaderInt64.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/AMD/GPUShaderInt64.hs
@@ -0,0 +1,86 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.AMD.GPUShaderInt64
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.AMD.GPUShaderInt64 (
+  -- * Extension Support
+  glGetAMDGPUShaderInt64,
+  gl_AMD_gpu_shader_int64,
+  -- * Enums
+  pattern GL_FLOAT16_NV,
+  pattern GL_FLOAT16_VEC2_NV,
+  pattern GL_FLOAT16_VEC3_NV,
+  pattern GL_FLOAT16_VEC4_NV,
+  pattern GL_INT16_NV,
+  pattern GL_INT16_VEC2_NV,
+  pattern GL_INT16_VEC3_NV,
+  pattern GL_INT16_VEC4_NV,
+  pattern GL_INT64_NV,
+  pattern GL_INT64_VEC2_NV,
+  pattern GL_INT64_VEC3_NV,
+  pattern GL_INT64_VEC4_NV,
+  pattern GL_INT8_NV,
+  pattern GL_INT8_VEC2_NV,
+  pattern GL_INT8_VEC3_NV,
+  pattern GL_INT8_VEC4_NV,
+  pattern GL_UNSIGNED_INT16_NV,
+  pattern GL_UNSIGNED_INT16_VEC2_NV,
+  pattern GL_UNSIGNED_INT16_VEC3_NV,
+  pattern GL_UNSIGNED_INT16_VEC4_NV,
+  pattern GL_UNSIGNED_INT64_NV,
+  pattern GL_UNSIGNED_INT64_VEC2_NV,
+  pattern GL_UNSIGNED_INT64_VEC3_NV,
+  pattern GL_UNSIGNED_INT64_VEC4_NV,
+  pattern GL_UNSIGNED_INT8_NV,
+  pattern GL_UNSIGNED_INT8_VEC2_NV,
+  pattern GL_UNSIGNED_INT8_VEC3_NV,
+  pattern GL_UNSIGNED_INT8_VEC4_NV,
+  -- * Functions
+  glGetUniformi64vNV,
+  glGetUniformui64vNV,
+  glProgramUniform1i64NV,
+  glProgramUniform1i64vNV,
+  glProgramUniform1ui64NV,
+  glProgramUniform1ui64vNV,
+  glProgramUniform2i64NV,
+  glProgramUniform2i64vNV,
+  glProgramUniform2ui64NV,
+  glProgramUniform2ui64vNV,
+  glProgramUniform3i64NV,
+  glProgramUniform3i64vNV,
+  glProgramUniform3ui64NV,
+  glProgramUniform3ui64vNV,
+  glProgramUniform4i64NV,
+  glProgramUniform4i64vNV,
+  glProgramUniform4ui64NV,
+  glProgramUniform4ui64vNV,
+  glUniform1i64NV,
+  glUniform1i64vNV,
+  glUniform1ui64NV,
+  glUniform1ui64vNV,
+  glUniform2i64NV,
+  glUniform2i64vNV,
+  glUniform2ui64NV,
+  glUniform2ui64vNV,
+  glUniform3i64NV,
+  glUniform3i64vNV,
+  glUniform3ui64NV,
+  glUniform3ui64vNV,
+  glUniform4i64NV,
+  glUniform4i64vNV,
+  glUniform4ui64NV,
+  glUniform4ui64vNV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/AMD/InterleavedElements.hs b/src/Graphics/GL/AMD/InterleavedElements.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/AMD/InterleavedElements.hs
@@ -0,0 +1,34 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.AMD.InterleavedElements
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.AMD.InterleavedElements (
+  -- * Extension Support
+  glGetAMDInterleavedElements,
+  gl_AMD_interleaved_elements,
+  -- * Enums
+  pattern GL_ALPHA,
+  pattern GL_BLUE,
+  pattern GL_GREEN,
+  pattern GL_RED,
+  pattern GL_RG16UI,
+  pattern GL_RG8UI,
+  pattern GL_RGBA8UI,
+  pattern GL_VERTEX_ELEMENT_SWIZZLE_AMD,
+  pattern GL_VERTEX_ID_SWIZZLE_AMD,
+  -- * Functions
+  glVertexAttribParameteriAMD
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/AMD/MultiDrawIndirect.hs b/src/Graphics/GL/AMD/MultiDrawIndirect.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/AMD/MultiDrawIndirect.hs
@@ -0,0 +1,23 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.AMD.MultiDrawIndirect
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.AMD.MultiDrawIndirect (
+  -- * Extension Support
+  glGetAMDMultiDrawIndirect,
+  gl_AMD_multi_draw_indirect,
+  -- * Functions
+  glMultiDrawArraysIndirectAMD,
+  glMultiDrawElementsIndirectAMD
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/AMD/NameGenDelete.hs b/src/Graphics/GL/AMD/NameGenDelete.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/AMD/NameGenDelete.hs
@@ -0,0 +1,32 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.AMD.NameGenDelete
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.AMD.NameGenDelete (
+  -- * Extension Support
+  glGetAMDNameGenDelete,
+  gl_AMD_name_gen_delete,
+  -- * Enums
+  pattern GL_DATA_BUFFER_AMD,
+  pattern GL_PERFORMANCE_MONITOR_AMD,
+  pattern GL_QUERY_OBJECT_AMD,
+  pattern GL_SAMPLER_OBJECT_AMD,
+  pattern GL_VERTEX_ARRAY_OBJECT_AMD,
+  -- * Functions
+  glDeleteNamesAMD,
+  glGenNamesAMD,
+  glIsNameAMD
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/AMD/OcclusionQueryEvent.hs b/src/Graphics/GL/AMD/OcclusionQueryEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/AMD/OcclusionQueryEvent.hs
@@ -0,0 +1,31 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.AMD.OcclusionQueryEvent
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.AMD.OcclusionQueryEvent (
+  -- * Extension Support
+  glGetAMDOcclusionQueryEvent,
+  gl_AMD_occlusion_query_event,
+  -- * Enums
+  pattern GL_OCCLUSION_QUERY_EVENT_MASK_AMD,
+  pattern GL_QUERY_ALL_EVENT_BITS_AMD,
+  pattern GL_QUERY_DEPTH_BOUNDS_FAIL_EVENT_BIT_AMD,
+  pattern GL_QUERY_DEPTH_FAIL_EVENT_BIT_AMD,
+  pattern GL_QUERY_DEPTH_PASS_EVENT_BIT_AMD,
+  pattern GL_QUERY_STENCIL_FAIL_EVENT_BIT_AMD,
+  -- * Functions
+  glQueryObjectParameteruiAMD
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/AMD/PerformanceMonitor.hs b/src/Graphics/GL/AMD/PerformanceMonitor.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/AMD/PerformanceMonitor.hs
@@ -0,0 +1,42 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.AMD.PerformanceMonitor
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.AMD.PerformanceMonitor (
+  -- * Extension Support
+  glGetAMDPerformanceMonitor,
+  gl_AMD_performance_monitor,
+  -- * Enums
+  pattern GL_COUNTER_RANGE_AMD,
+  pattern GL_COUNTER_TYPE_AMD,
+  pattern GL_PERCENTAGE_AMD,
+  pattern GL_PERFMON_RESULT_AMD,
+  pattern GL_PERFMON_RESULT_AVAILABLE_AMD,
+  pattern GL_PERFMON_RESULT_SIZE_AMD,
+  pattern GL_UNSIGNED_INT64_AMD,
+  -- * Functions
+  glBeginPerfMonitorAMD,
+  glDeletePerfMonitorsAMD,
+  glEndPerfMonitorAMD,
+  glGenPerfMonitorsAMD,
+  glGetPerfMonitorCounterDataAMD,
+  glGetPerfMonitorCounterInfoAMD,
+  glGetPerfMonitorCounterStringAMD,
+  glGetPerfMonitorCountersAMD,
+  glGetPerfMonitorGroupStringAMD,
+  glGetPerfMonitorGroupsAMD,
+  glSelectPerfMonitorCountersAMD
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/AMD/PinnedMemory.hs b/src/Graphics/GL/AMD/PinnedMemory.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/AMD/PinnedMemory.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.AMD.PinnedMemory
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.AMD.PinnedMemory (
+  -- * Extension Support
+  glGetAMDPinnedMemory,
+  gl_AMD_pinned_memory,
+  -- * Enums
+  pattern GL_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/AMD/QueryBufferObject.hs b/src/Graphics/GL/AMD/QueryBufferObject.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/AMD/QueryBufferObject.hs
@@ -0,0 +1,25 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.AMD.QueryBufferObject
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.AMD.QueryBufferObject (
+  -- * Extension Support
+  glGetAMDQueryBufferObject,
+  gl_AMD_query_buffer_object,
+  -- * Enums
+  pattern GL_QUERY_BUFFER_AMD,
+  pattern GL_QUERY_BUFFER_BINDING_AMD,
+  pattern GL_QUERY_RESULT_NO_WAIT_AMD
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/AMD/SamplePositions.hs b/src/Graphics/GL/AMD/SamplePositions.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/AMD/SamplePositions.hs
@@ -0,0 +1,26 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.AMD.SamplePositions
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.AMD.SamplePositions (
+  -- * Extension Support
+  glGetAMDSamplePositions,
+  gl_AMD_sample_positions,
+  -- * Enums
+  pattern GL_SUBSAMPLE_DISTANCE_AMD,
+  -- * Functions
+  glSetMultisamplefvAMD
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/AMD/SeamlessCubemapPerTexture.hs b/src/Graphics/GL/AMD/SeamlessCubemapPerTexture.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/AMD/SeamlessCubemapPerTexture.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.AMD.SeamlessCubemapPerTexture
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.AMD.SeamlessCubemapPerTexture (
+  -- * Extension Support
+  glGetAMDSeamlessCubemapPerTexture,
+  gl_AMD_seamless_cubemap_per_texture,
+  -- * Enums
+  pattern GL_TEXTURE_CUBE_MAP_SEAMLESS
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/AMD/SparseTexture.hs b/src/Graphics/GL/AMD/SparseTexture.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/AMD/SparseTexture.hs
@@ -0,0 +1,35 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.AMD.SparseTexture
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.AMD.SparseTexture (
+  -- * Extension Support
+  glGetAMDSparseTexture,
+  gl_AMD_sparse_texture,
+  -- * Enums
+  pattern GL_MAX_SPARSE_3D_TEXTURE_SIZE_AMD,
+  pattern GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS,
+  pattern GL_MAX_SPARSE_TEXTURE_SIZE_AMD,
+  pattern GL_MIN_LOD_WARNING_AMD,
+  pattern GL_MIN_SPARSE_LEVEL_AMD,
+  pattern GL_TEXTURE_STORAGE_SPARSE_BIT_AMD,
+  pattern GL_VIRTUAL_PAGE_SIZE_X_AMD,
+  pattern GL_VIRTUAL_PAGE_SIZE_Y_AMD,
+  pattern GL_VIRTUAL_PAGE_SIZE_Z_AMD,
+  -- * Functions
+  glTexStorageSparseAMD,
+  glTextureStorageSparseAMD
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/AMD/StencilOperationExtended.hs b/src/Graphics/GL/AMD/StencilOperationExtended.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/AMD/StencilOperationExtended.hs
@@ -0,0 +1,29 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.AMD.StencilOperationExtended
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.AMD.StencilOperationExtended (
+  -- * Extension Support
+  glGetAMDStencilOperationExtended,
+  gl_AMD_stencil_operation_extended,
+  -- * Enums
+  pattern GL_REPLACE_VALUE_AMD,
+  pattern GL_SET_AMD,
+  pattern GL_STENCIL_BACK_OP_VALUE_AMD,
+  pattern GL_STENCIL_OP_VALUE_AMD,
+  -- * Functions
+  glStencilOpValueAMD
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/AMD/TransformFeedback4.hs b/src/Graphics/GL/AMD/TransformFeedback4.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/AMD/TransformFeedback4.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.AMD.TransformFeedback4
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.AMD.TransformFeedback4 (
+  -- * Extension Support
+  glGetAMDTransformFeedback4,
+  gl_AMD_transform_feedback4,
+  -- * Enums
+  pattern GL_STREAM_RASTERIZATION_AMD
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/AMD/VertexShaderTessellator.hs b/src/Graphics/GL/AMD/VertexShaderTessellator.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/AMD/VertexShaderTessellator.hs
@@ -0,0 +1,33 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.AMD.VertexShaderTessellator
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.AMD.VertexShaderTessellator (
+  -- * Extension Support
+  glGetAMDVertexShaderTessellator,
+  gl_AMD_vertex_shader_tessellator,
+  -- * Enums
+  pattern GL_CONTINUOUS_AMD,
+  pattern GL_DISCRETE_AMD,
+  pattern GL_INT_SAMPLER_BUFFER_AMD,
+  pattern GL_SAMPLER_BUFFER_AMD,
+  pattern GL_TESSELLATION_FACTOR_AMD,
+  pattern GL_TESSELLATION_MODE_AMD,
+  pattern GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD,
+  -- * Functions
+  glTessellationFactorAMD,
+  glTessellationModeAMD
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/APPLE.hs b/src/Graphics/GL/APPLE.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/APPLE.hs
@@ -0,0 +1,49 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.APPLE
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- A convenience module, combining all raw modules containing APPLE extensions.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.APPLE (
+  module Graphics.GL.APPLE.AuxDepthStencil,
+  module Graphics.GL.APPLE.ClientStorage,
+  module Graphics.GL.APPLE.ElementArray,
+  module Graphics.GL.APPLE.Fence,
+  module Graphics.GL.APPLE.FloatPixels,
+  module Graphics.GL.APPLE.FlushBufferRange,
+  module Graphics.GL.APPLE.ObjectPurgeable,
+  module Graphics.GL.APPLE.RGB422,
+  module Graphics.GL.APPLE.RowBytes,
+  module Graphics.GL.APPLE.SpecularVector,
+  module Graphics.GL.APPLE.TextureRange,
+  module Graphics.GL.APPLE.TransformHint,
+  module Graphics.GL.APPLE.VertexArrayObject,
+  module Graphics.GL.APPLE.VertexArrayRange,
+  module Graphics.GL.APPLE.VertexProgramEvaluators,
+  module Graphics.GL.APPLE.YCbCr422
+) where
+
+import Graphics.GL.APPLE.AuxDepthStencil
+import Graphics.GL.APPLE.ClientStorage
+import Graphics.GL.APPLE.ElementArray
+import Graphics.GL.APPLE.Fence
+import Graphics.GL.APPLE.FloatPixels
+import Graphics.GL.APPLE.FlushBufferRange
+import Graphics.GL.APPLE.ObjectPurgeable
+import Graphics.GL.APPLE.RGB422
+import Graphics.GL.APPLE.RowBytes
+import Graphics.GL.APPLE.SpecularVector
+import Graphics.GL.APPLE.TextureRange
+import Graphics.GL.APPLE.TransformHint
+import Graphics.GL.APPLE.VertexArrayObject
+import Graphics.GL.APPLE.VertexArrayRange
+import Graphics.GL.APPLE.VertexProgramEvaluators
+import Graphics.GL.APPLE.YCbCr422
diff --git a/src/Graphics/GL/APPLE/AuxDepthStencil.hs b/src/Graphics/GL/APPLE/AuxDepthStencil.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/APPLE/AuxDepthStencil.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.APPLE.AuxDepthStencil
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.APPLE.AuxDepthStencil (
+  -- * Extension Support
+  glGetAPPLEAuxDepthStencil,
+  gl_APPLE_aux_depth_stencil,
+  -- * Enums
+  pattern GL_AUX_DEPTH_STENCIL_APPLE
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/APPLE/ClientStorage.hs b/src/Graphics/GL/APPLE/ClientStorage.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/APPLE/ClientStorage.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.APPLE.ClientStorage
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.APPLE.ClientStorage (
+  -- * Extension Support
+  glGetAPPLEClientStorage,
+  gl_APPLE_client_storage,
+  -- * Enums
+  pattern GL_UNPACK_CLIENT_STORAGE_APPLE
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/APPLE/ElementArray.hs b/src/Graphics/GL/APPLE/ElementArray.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/APPLE/ElementArray.hs
@@ -0,0 +1,32 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.APPLE.ElementArray
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.APPLE.ElementArray (
+  -- * Extension Support
+  glGetAPPLEElementArray,
+  gl_APPLE_element_array,
+  -- * Enums
+  pattern GL_ELEMENT_ARRAY_APPLE,
+  pattern GL_ELEMENT_ARRAY_POINTER_APPLE,
+  pattern GL_ELEMENT_ARRAY_TYPE_APPLE,
+  -- * Functions
+  glDrawElementArrayAPPLE,
+  glDrawRangeElementArrayAPPLE,
+  glElementPointerAPPLE,
+  glMultiDrawElementArrayAPPLE,
+  glMultiDrawRangeElementArrayAPPLE
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/APPLE/Fence.hs b/src/Graphics/GL/APPLE/Fence.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/APPLE/Fence.hs
@@ -0,0 +1,34 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.APPLE.Fence
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.APPLE.Fence (
+  -- * Extension Support
+  glGetAPPLEFence,
+  gl_APPLE_fence,
+  -- * Enums
+  pattern GL_DRAW_PIXELS_APPLE,
+  pattern GL_FENCE_APPLE,
+  -- * Functions
+  glDeleteFencesAPPLE,
+  glFinishFenceAPPLE,
+  glFinishObjectAPPLE,
+  glGenFencesAPPLE,
+  glIsFenceAPPLE,
+  glSetFenceAPPLE,
+  glTestFenceAPPLE,
+  glTestObjectAPPLE
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/APPLE/FloatPixels.hs b/src/Graphics/GL/APPLE/FloatPixels.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/APPLE/FloatPixels.hs
@@ -0,0 +1,36 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.APPLE.FloatPixels
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.APPLE.FloatPixels (
+  -- * Extension Support
+  glGetAPPLEFloatPixels,
+  gl_APPLE_float_pixels,
+  -- * Enums
+  pattern GL_ALPHA_FLOAT16_APPLE,
+  pattern GL_ALPHA_FLOAT32_APPLE,
+  pattern GL_COLOR_FLOAT_APPLE,
+  pattern GL_HALF_APPLE,
+  pattern GL_INTENSITY_FLOAT16_APPLE,
+  pattern GL_INTENSITY_FLOAT32_APPLE,
+  pattern GL_LUMINANCE_ALPHA_FLOAT16_APPLE,
+  pattern GL_LUMINANCE_ALPHA_FLOAT32_APPLE,
+  pattern GL_LUMINANCE_FLOAT16_APPLE,
+  pattern GL_LUMINANCE_FLOAT32_APPLE,
+  pattern GL_RGBA_FLOAT16_APPLE,
+  pattern GL_RGBA_FLOAT32_APPLE,
+  pattern GL_RGB_FLOAT16_APPLE,
+  pattern GL_RGB_FLOAT32_APPLE
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/APPLE/FlushBufferRange.hs b/src/Graphics/GL/APPLE/FlushBufferRange.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/APPLE/FlushBufferRange.hs
@@ -0,0 +1,28 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.APPLE.FlushBufferRange
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.APPLE.FlushBufferRange (
+  -- * Extension Support
+  glGetAPPLEFlushBufferRange,
+  gl_APPLE_flush_buffer_range,
+  -- * Enums
+  pattern GL_BUFFER_FLUSHING_UNMAP_APPLE,
+  pattern GL_BUFFER_SERIALIZED_MODIFY_APPLE,
+  -- * Functions
+  glBufferParameteriAPPLE,
+  glFlushMappedBufferRangeAPPLE
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/APPLE/ObjectPurgeable.hs b/src/Graphics/GL/APPLE/ObjectPurgeable.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/APPLE/ObjectPurgeable.hs
@@ -0,0 +1,33 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.APPLE.ObjectPurgeable
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.APPLE.ObjectPurgeable (
+  -- * Extension Support
+  glGetAPPLEObjectPurgeable,
+  gl_APPLE_object_purgeable,
+  -- * Enums
+  pattern GL_BUFFER_OBJECT_APPLE,
+  pattern GL_PURGEABLE_APPLE,
+  pattern GL_RELEASED_APPLE,
+  pattern GL_RETAINED_APPLE,
+  pattern GL_UNDEFINED_APPLE,
+  pattern GL_VOLATILE_APPLE,
+  -- * Functions
+  glGetObjectParameterivAPPLE,
+  glObjectPurgeableAPPLE,
+  glObjectUnpurgeableAPPLE
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/APPLE/RGB422.hs b/src/Graphics/GL/APPLE/RGB422.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/APPLE/RGB422.hs
@@ -0,0 +1,26 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.APPLE.RGB422
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.APPLE.RGB422 (
+  -- * Extension Support
+  glGetAPPLERGB422,
+  gl_APPLE_rgb_422,
+  -- * Enums
+  pattern GL_RGB_422_APPLE,
+  pattern GL_RGB_RAW_422_APPLE,
+  pattern GL_UNSIGNED_SHORT_8_8_APPLE,
+  pattern GL_UNSIGNED_SHORT_8_8_REV_APPLE
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/APPLE/RowBytes.hs b/src/Graphics/GL/APPLE/RowBytes.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/APPLE/RowBytes.hs
@@ -0,0 +1,24 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.APPLE.RowBytes
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.APPLE.RowBytes (
+  -- * Extension Support
+  glGetAPPLERowBytes,
+  gl_APPLE_row_bytes,
+  -- * Enums
+  pattern GL_PACK_ROW_BYTES_APPLE,
+  pattern GL_UNPACK_ROW_BYTES_APPLE
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/APPLE/SpecularVector.hs b/src/Graphics/GL/APPLE/SpecularVector.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/APPLE/SpecularVector.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.APPLE.SpecularVector
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.APPLE.SpecularVector (
+  -- * Extension Support
+  glGetAPPLESpecularVector,
+  gl_APPLE_specular_vector,
+  -- * Enums
+  pattern GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/APPLE/TextureRange.hs b/src/Graphics/GL/APPLE/TextureRange.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/APPLE/TextureRange.hs
@@ -0,0 +1,32 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.APPLE.TextureRange
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.APPLE.TextureRange (
+  -- * Extension Support
+  glGetAPPLETextureRange,
+  gl_APPLE_texture_range,
+  -- * Enums
+  pattern GL_STORAGE_CACHED_APPLE,
+  pattern GL_STORAGE_PRIVATE_APPLE,
+  pattern GL_STORAGE_SHARED_APPLE,
+  pattern GL_TEXTURE_RANGE_LENGTH_APPLE,
+  pattern GL_TEXTURE_RANGE_POINTER_APPLE,
+  pattern GL_TEXTURE_STORAGE_HINT_APPLE,
+  -- * Functions
+  glGetTexParameterPointervAPPLE,
+  glTextureRangeAPPLE
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/APPLE/TransformHint.hs b/src/Graphics/GL/APPLE/TransformHint.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/APPLE/TransformHint.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.APPLE.TransformHint
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.APPLE.TransformHint (
+  -- * Extension Support
+  glGetAPPLETransformHint,
+  gl_APPLE_transform_hint,
+  -- * Enums
+  pattern GL_TRANSFORM_HINT_APPLE
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/APPLE/VertexArrayObject.hs b/src/Graphics/GL/APPLE/VertexArrayObject.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/APPLE/VertexArrayObject.hs
@@ -0,0 +1,29 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.APPLE.VertexArrayObject
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.APPLE.VertexArrayObject (
+  -- * Extension Support
+  glGetAPPLEVertexArrayObject,
+  gl_APPLE_vertex_array_object,
+  -- * Enums
+  pattern GL_VERTEX_ARRAY_BINDING_APPLE,
+  -- * Functions
+  glBindVertexArrayAPPLE,
+  glDeleteVertexArraysAPPLE,
+  glGenVertexArraysAPPLE,
+  glIsVertexArrayAPPLE
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/APPLE/VertexArrayRange.hs b/src/Graphics/GL/APPLE/VertexArrayRange.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/APPLE/VertexArrayRange.hs
@@ -0,0 +1,34 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.APPLE.VertexArrayRange
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.APPLE.VertexArrayRange (
+  -- * Extension Support
+  glGetAPPLEVertexArrayRange,
+  gl_APPLE_vertex_array_range,
+  -- * Enums
+  pattern GL_STORAGE_CACHED_APPLE,
+  pattern GL_STORAGE_CLIENT_APPLE,
+  pattern GL_STORAGE_SHARED_APPLE,
+  pattern GL_VERTEX_ARRAY_RANGE_APPLE,
+  pattern GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE,
+  pattern GL_VERTEX_ARRAY_RANGE_POINTER_APPLE,
+  pattern GL_VERTEX_ARRAY_STORAGE_HINT_APPLE,
+  -- * Functions
+  glFlushVertexArrayRangeAPPLE,
+  glVertexArrayParameteriAPPLE,
+  glVertexArrayRangeAPPLE
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/APPLE/VertexProgramEvaluators.hs b/src/Graphics/GL/APPLE/VertexProgramEvaluators.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/APPLE/VertexProgramEvaluators.hs
@@ -0,0 +1,41 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.APPLE.VertexProgramEvaluators
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.APPLE.VertexProgramEvaluators (
+  -- * Extension Support
+  glGetAPPLEVertexProgramEvaluators,
+  gl_APPLE_vertex_program_evaluators,
+  -- * Enums
+  pattern GL_VERTEX_ATTRIB_MAP1_APPLE,
+  pattern GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE,
+  pattern GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE,
+  pattern GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE,
+  pattern GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE,
+  pattern GL_VERTEX_ATTRIB_MAP2_APPLE,
+  pattern GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE,
+  pattern GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE,
+  pattern GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE,
+  pattern GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE,
+  -- * Functions
+  glDisableVertexAttribAPPLE,
+  glEnableVertexAttribAPPLE,
+  glIsVertexAttribEnabledAPPLE,
+  glMapVertexAttrib1dAPPLE,
+  glMapVertexAttrib1fAPPLE,
+  glMapVertexAttrib2dAPPLE,
+  glMapVertexAttrib2fAPPLE
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/APPLE/YCbCr422.hs b/src/Graphics/GL/APPLE/YCbCr422.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/APPLE/YCbCr422.hs
@@ -0,0 +1,25 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.APPLE.YCbCr422
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.APPLE.YCbCr422 (
+  -- * Extension Support
+  glGetAPPLEYCbCr422,
+  gl_APPLE_ycbcr_422,
+  -- * Enums
+  pattern GL_UNSIGNED_SHORT_8_8_APPLE,
+  pattern GL_UNSIGNED_SHORT_8_8_REV_APPLE,
+  pattern GL_YCBCR_422_APPLE
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/ARB.hs b/src/Graphics/GL/ARB.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB.hs
@@ -0,0 +1,301 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- A convenience module, combining all raw modules containing ARB extensions.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB (
+  module Graphics.GL.ARB.BaseInstance,
+  module Graphics.GL.ARB.BindlessTexture,
+  module Graphics.GL.ARB.BlendFuncExtended,
+  module Graphics.GL.ARB.BufferStorage,
+  module Graphics.GL.ARB.CLEvent,
+  module Graphics.GL.ARB.ClearBufferObject,
+  module Graphics.GL.ARB.ClearTexture,
+  module Graphics.GL.ARB.ClipControl,
+  module Graphics.GL.ARB.ColorBufferFloat,
+  module Graphics.GL.ARB.CompressedTexturePixelStorage,
+  module Graphics.GL.ARB.ComputeShader,
+  module Graphics.GL.ARB.ComputeVariableGroupSize,
+  module Graphics.GL.ARB.ConditionalRenderInverted,
+  module Graphics.GL.ARB.CopyBuffer,
+  module Graphics.GL.ARB.CopyImage,
+  module Graphics.GL.ARB.CullDistance,
+  module Graphics.GL.ARB.DebugOutput,
+  module Graphics.GL.ARB.DepthBufferFloat,
+  module Graphics.GL.ARB.DepthClamp,
+  module Graphics.GL.ARB.DepthTexture,
+  module Graphics.GL.ARB.DirectStateAccess,
+  module Graphics.GL.ARB.DrawBuffers,
+  module Graphics.GL.ARB.DrawBuffersBlend,
+  module Graphics.GL.ARB.DrawElementsBaseVertex,
+  module Graphics.GL.ARB.DrawIndirect,
+  module Graphics.GL.ARB.DrawInstanced,
+  module Graphics.GL.ARB.ES2Compatibility,
+  module Graphics.GL.ARB.ES31Compatibility,
+  module Graphics.GL.ARB.ES32Compatibility,
+  module Graphics.GL.ARB.ES3Compatibility,
+  module Graphics.GL.ARB.EnhancedLayouts,
+  module Graphics.GL.ARB.ExplicitUniformLocation,
+  module Graphics.GL.ARB.FragmentProgram,
+  module Graphics.GL.ARB.FragmentShader,
+  module Graphics.GL.ARB.FramebufferNoAttachments,
+  module Graphics.GL.ARB.FramebufferObjectCompatibility,
+  module Graphics.GL.ARB.FramebufferObjectCore,
+  module Graphics.GL.ARB.FramebufferSRGB,
+  module Graphics.GL.ARB.GPUShader5,
+  module Graphics.GL.ARB.GPUShaderFP64,
+  module Graphics.GL.ARB.GPUShaderInt64,
+  module Graphics.GL.ARB.GeometryShader4,
+  module Graphics.GL.ARB.GetProgramBinary,
+  module Graphics.GL.ARB.GetTextureSubImage,
+  module Graphics.GL.ARB.GlSpirv,
+  module Graphics.GL.ARB.HalfFloatPixel,
+  module Graphics.GL.ARB.HalfFloatVertex,
+  module Graphics.GL.ARB.ImagingCompatibility,
+  module Graphics.GL.ARB.ImagingCore,
+  module Graphics.GL.ARB.IndirectParameters,
+  module Graphics.GL.ARB.InstancedArrays,
+  module Graphics.GL.ARB.InternalformatQuery,
+  module Graphics.GL.ARB.InternalformatQuery2,
+  module Graphics.GL.ARB.InvalidateSubdata,
+  module Graphics.GL.ARB.MapBufferAlignment,
+  module Graphics.GL.ARB.MapBufferRange,
+  module Graphics.GL.ARB.MatrixPalette,
+  module Graphics.GL.ARB.MultiBind,
+  module Graphics.GL.ARB.MultiDrawIndirect,
+  module Graphics.GL.ARB.Multisample,
+  module Graphics.GL.ARB.Multitexture,
+  module Graphics.GL.ARB.OcclusionQuery,
+  module Graphics.GL.ARB.OcclusionQuery2,
+  module Graphics.GL.ARB.ParallelShaderCompile,
+  module Graphics.GL.ARB.PipelineStatisticsQuery,
+  module Graphics.GL.ARB.PixelBufferObject,
+  module Graphics.GL.ARB.PointParameters,
+  module Graphics.GL.ARB.PointSprite,
+  module Graphics.GL.ARB.PolygonOffsetClamp,
+  module Graphics.GL.ARB.ProgramInterfaceQuery,
+  module Graphics.GL.ARB.ProvokingVertex,
+  module Graphics.GL.ARB.QueryBufferObject,
+  module Graphics.GL.ARB.RobustnessCompatibility,
+  module Graphics.GL.ARB.RobustnessCore,
+  module Graphics.GL.ARB.SampleLocations,
+  module Graphics.GL.ARB.SampleShading,
+  module Graphics.GL.ARB.SamplerObjects,
+  module Graphics.GL.ARB.SeamlessCubeMap,
+  module Graphics.GL.ARB.SeamlessCubemapPerTexture,
+  module Graphics.GL.ARB.SeparateShaderObjects,
+  module Graphics.GL.ARB.ShaderAtomicCounters,
+  module Graphics.GL.ARB.ShaderImageLoadStore,
+  module Graphics.GL.ARB.ShaderObjects,
+  module Graphics.GL.ARB.ShaderStorageBufferObject,
+  module Graphics.GL.ARB.ShaderSubroutine,
+  module Graphics.GL.ARB.ShadingLanguage100,
+  module Graphics.GL.ARB.ShadingLanguageInclude,
+  module Graphics.GL.ARB.Shadow,
+  module Graphics.GL.ARB.ShadowAmbient,
+  module Graphics.GL.ARB.SparseBuffer,
+  module Graphics.GL.ARB.SparseTexture,
+  module Graphics.GL.ARB.SpirvExtensions,
+  module Graphics.GL.ARB.StencilTexturing,
+  module Graphics.GL.ARB.Sync,
+  module Graphics.GL.ARB.TessellationShader,
+  module Graphics.GL.ARB.TextureBarrier,
+  module Graphics.GL.ARB.TextureBorderClamp,
+  module Graphics.GL.ARB.TextureBufferObject,
+  module Graphics.GL.ARB.TextureBufferObjectRGB32,
+  module Graphics.GL.ARB.TextureBufferRange,
+  module Graphics.GL.ARB.TextureCompression,
+  module Graphics.GL.ARB.TextureCompressionBPTC,
+  module Graphics.GL.ARB.TextureCompressionRGTC,
+  module Graphics.GL.ARB.TextureCubeMap,
+  module Graphics.GL.ARB.TextureCubeMapArray,
+  module Graphics.GL.ARB.TextureEnvCombine,
+  module Graphics.GL.ARB.TextureEnvDot3,
+  module Graphics.GL.ARB.TextureFilterAnisotropic,
+  module Graphics.GL.ARB.TextureFilterMinmax,
+  module Graphics.GL.ARB.TextureFloat,
+  module Graphics.GL.ARB.TextureGather,
+  module Graphics.GL.ARB.TextureMirrorClampToEdge,
+  module Graphics.GL.ARB.TextureMirroredRepeat,
+  module Graphics.GL.ARB.TextureMultisample,
+  module Graphics.GL.ARB.TextureRG,
+  module Graphics.GL.ARB.TextureRGB10A2UI,
+  module Graphics.GL.ARB.TextureRectangle,
+  module Graphics.GL.ARB.TextureStencil8,
+  module Graphics.GL.ARB.TextureStorage,
+  module Graphics.GL.ARB.TextureStorageMultisample,
+  module Graphics.GL.ARB.TextureSwizzle,
+  module Graphics.GL.ARB.TextureView,
+  module Graphics.GL.ARB.TimerQuery,
+  module Graphics.GL.ARB.TransformFeedback2,
+  module Graphics.GL.ARB.TransformFeedback3,
+  module Graphics.GL.ARB.TransformFeedbackInstanced,
+  module Graphics.GL.ARB.TransformFeedbackOverflowQuery,
+  module Graphics.GL.ARB.TransposeMatrix,
+  module Graphics.GL.ARB.UniformBufferObject,
+  module Graphics.GL.ARB.VertexArrayBGRA,
+  module Graphics.GL.ARB.VertexArrayObject,
+  module Graphics.GL.ARB.VertexAttrib64Bit,
+  module Graphics.GL.ARB.VertexAttribBinding,
+  module Graphics.GL.ARB.VertexBlend,
+  module Graphics.GL.ARB.VertexBufferObject,
+  module Graphics.GL.ARB.VertexProgram,
+  module Graphics.GL.ARB.VertexShader,
+  module Graphics.GL.ARB.VertexType10f11f11fRev,
+  module Graphics.GL.ARB.VertexType2101010RevCompatibility,
+  module Graphics.GL.ARB.VertexType2101010RevCore,
+  module Graphics.GL.ARB.ViewportArray,
+  module Graphics.GL.ARB.WindowPos
+) where
+
+import Graphics.GL.ARB.BaseInstance
+import Graphics.GL.ARB.BindlessTexture
+import Graphics.GL.ARB.BlendFuncExtended
+import Graphics.GL.ARB.BufferStorage
+import Graphics.GL.ARB.CLEvent
+import Graphics.GL.ARB.ClearBufferObject
+import Graphics.GL.ARB.ClearTexture
+import Graphics.GL.ARB.ClipControl
+import Graphics.GL.ARB.ColorBufferFloat
+import Graphics.GL.ARB.CompressedTexturePixelStorage
+import Graphics.GL.ARB.ComputeShader
+import Graphics.GL.ARB.ComputeVariableGroupSize
+import Graphics.GL.ARB.ConditionalRenderInverted
+import Graphics.GL.ARB.CopyBuffer
+import Graphics.GL.ARB.CopyImage
+import Graphics.GL.ARB.CullDistance
+import Graphics.GL.ARB.DebugOutput
+import Graphics.GL.ARB.DepthBufferFloat
+import Graphics.GL.ARB.DepthClamp
+import Graphics.GL.ARB.DepthTexture
+import Graphics.GL.ARB.DirectStateAccess
+import Graphics.GL.ARB.DrawBuffers
+import Graphics.GL.ARB.DrawBuffersBlend
+import Graphics.GL.ARB.DrawElementsBaseVertex
+import Graphics.GL.ARB.DrawIndirect
+import Graphics.GL.ARB.DrawInstanced
+import Graphics.GL.ARB.ES2Compatibility
+import Graphics.GL.ARB.ES31Compatibility
+import Graphics.GL.ARB.ES32Compatibility
+import Graphics.GL.ARB.ES3Compatibility
+import Graphics.GL.ARB.EnhancedLayouts
+import Graphics.GL.ARB.ExplicitUniformLocation
+import Graphics.GL.ARB.FragmentProgram
+import Graphics.GL.ARB.FragmentShader
+import Graphics.GL.ARB.FramebufferNoAttachments
+import Graphics.GL.ARB.FramebufferObjectCompatibility
+import Graphics.GL.ARB.FramebufferObjectCore
+import Graphics.GL.ARB.FramebufferSRGB
+import Graphics.GL.ARB.GPUShader5
+import Graphics.GL.ARB.GPUShaderFP64
+import Graphics.GL.ARB.GPUShaderInt64
+import Graphics.GL.ARB.GeometryShader4
+import Graphics.GL.ARB.GetProgramBinary
+import Graphics.GL.ARB.GetTextureSubImage
+import Graphics.GL.ARB.GlSpirv
+import Graphics.GL.ARB.HalfFloatPixel
+import Graphics.GL.ARB.HalfFloatVertex
+import Graphics.GL.ARB.ImagingCompatibility
+import Graphics.GL.ARB.ImagingCore
+import Graphics.GL.ARB.IndirectParameters
+import Graphics.GL.ARB.InstancedArrays
+import Graphics.GL.ARB.InternalformatQuery
+import Graphics.GL.ARB.InternalformatQuery2
+import Graphics.GL.ARB.InvalidateSubdata
+import Graphics.GL.ARB.MapBufferAlignment
+import Graphics.GL.ARB.MapBufferRange
+import Graphics.GL.ARB.MatrixPalette
+import Graphics.GL.ARB.MultiBind
+import Graphics.GL.ARB.MultiDrawIndirect
+import Graphics.GL.ARB.Multisample
+import Graphics.GL.ARB.Multitexture
+import Graphics.GL.ARB.OcclusionQuery
+import Graphics.GL.ARB.OcclusionQuery2
+import Graphics.GL.ARB.ParallelShaderCompile
+import Graphics.GL.ARB.PipelineStatisticsQuery
+import Graphics.GL.ARB.PixelBufferObject
+import Graphics.GL.ARB.PointParameters
+import Graphics.GL.ARB.PointSprite
+import Graphics.GL.ARB.PolygonOffsetClamp
+import Graphics.GL.ARB.ProgramInterfaceQuery
+import Graphics.GL.ARB.ProvokingVertex
+import Graphics.GL.ARB.QueryBufferObject
+import Graphics.GL.ARB.RobustnessCompatibility
+import Graphics.GL.ARB.RobustnessCore
+import Graphics.GL.ARB.SampleLocations
+import Graphics.GL.ARB.SampleShading
+import Graphics.GL.ARB.SamplerObjects
+import Graphics.GL.ARB.SeamlessCubeMap
+import Graphics.GL.ARB.SeamlessCubemapPerTexture
+import Graphics.GL.ARB.SeparateShaderObjects
+import Graphics.GL.ARB.ShaderAtomicCounters
+import Graphics.GL.ARB.ShaderImageLoadStore
+import Graphics.GL.ARB.ShaderObjects
+import Graphics.GL.ARB.ShaderStorageBufferObject
+import Graphics.GL.ARB.ShaderSubroutine
+import Graphics.GL.ARB.ShadingLanguage100
+import Graphics.GL.ARB.ShadingLanguageInclude
+import Graphics.GL.ARB.Shadow
+import Graphics.GL.ARB.ShadowAmbient
+import Graphics.GL.ARB.SparseBuffer
+import Graphics.GL.ARB.SparseTexture
+import Graphics.GL.ARB.SpirvExtensions
+import Graphics.GL.ARB.StencilTexturing
+import Graphics.GL.ARB.Sync
+import Graphics.GL.ARB.TessellationShader
+import Graphics.GL.ARB.TextureBarrier
+import Graphics.GL.ARB.TextureBorderClamp
+import Graphics.GL.ARB.TextureBufferObject
+import Graphics.GL.ARB.TextureBufferObjectRGB32
+import Graphics.GL.ARB.TextureBufferRange
+import Graphics.GL.ARB.TextureCompression
+import Graphics.GL.ARB.TextureCompressionBPTC
+import Graphics.GL.ARB.TextureCompressionRGTC
+import Graphics.GL.ARB.TextureCubeMap
+import Graphics.GL.ARB.TextureCubeMapArray
+import Graphics.GL.ARB.TextureEnvCombine
+import Graphics.GL.ARB.TextureEnvDot3
+import Graphics.GL.ARB.TextureFilterAnisotropic
+import Graphics.GL.ARB.TextureFilterMinmax
+import Graphics.GL.ARB.TextureFloat
+import Graphics.GL.ARB.TextureGather
+import Graphics.GL.ARB.TextureMirrorClampToEdge
+import Graphics.GL.ARB.TextureMirroredRepeat
+import Graphics.GL.ARB.TextureMultisample
+import Graphics.GL.ARB.TextureRG
+import Graphics.GL.ARB.TextureRGB10A2UI
+import Graphics.GL.ARB.TextureRectangle
+import Graphics.GL.ARB.TextureStencil8
+import Graphics.GL.ARB.TextureStorage
+import Graphics.GL.ARB.TextureStorageMultisample
+import Graphics.GL.ARB.TextureSwizzle
+import Graphics.GL.ARB.TextureView
+import Graphics.GL.ARB.TimerQuery
+import Graphics.GL.ARB.TransformFeedback2
+import Graphics.GL.ARB.TransformFeedback3
+import Graphics.GL.ARB.TransformFeedbackInstanced
+import Graphics.GL.ARB.TransformFeedbackOverflowQuery
+import Graphics.GL.ARB.TransposeMatrix
+import Graphics.GL.ARB.UniformBufferObject
+import Graphics.GL.ARB.VertexArrayBGRA
+import Graphics.GL.ARB.VertexArrayObject
+import Graphics.GL.ARB.VertexAttrib64Bit
+import Graphics.GL.ARB.VertexAttribBinding
+import Graphics.GL.ARB.VertexBlend
+import Graphics.GL.ARB.VertexBufferObject
+import Graphics.GL.ARB.VertexProgram
+import Graphics.GL.ARB.VertexShader
+import Graphics.GL.ARB.VertexType10f11f11fRev
+import Graphics.GL.ARB.VertexType2101010RevCompatibility
+import Graphics.GL.ARB.VertexType2101010RevCore
+import Graphics.GL.ARB.ViewportArray
+import Graphics.GL.ARB.WindowPos
diff --git a/src/Graphics/GL/ARB/BaseInstance.hs b/src/Graphics/GL/ARB/BaseInstance.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/BaseInstance.hs
@@ -0,0 +1,24 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.BaseInstance
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.BaseInstance (
+  -- * Extension Support
+  glGetARBBaseInstance,
+  gl_ARB_base_instance,
+  -- * Functions
+  glDrawArraysInstancedBaseInstance,
+  glDrawElementsInstancedBaseInstance,
+  glDrawElementsInstancedBaseVertexBaseInstance
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/BindlessTexture.hs b/src/Graphics/GL/ARB/BindlessTexture.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/BindlessTexture.hs
@@ -0,0 +1,41 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.BindlessTexture
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.BindlessTexture (
+  -- * Extension Support
+  glGetARBBindlessTexture,
+  gl_ARB_bindless_texture,
+  -- * Enums
+  pattern GL_UNSIGNED_INT64_ARB,
+  -- * Functions
+  glGetImageHandleARB,
+  glGetTextureHandleARB,
+  glGetTextureSamplerHandleARB,
+  glGetVertexAttribLui64vARB,
+  glIsImageHandleResidentARB,
+  glIsTextureHandleResidentARB,
+  glMakeImageHandleNonResidentARB,
+  glMakeImageHandleResidentARB,
+  glMakeTextureHandleNonResidentARB,
+  glMakeTextureHandleResidentARB,
+  glProgramUniformHandleui64ARB,
+  glProgramUniformHandleui64vARB,
+  glUniformHandleui64ARB,
+  glUniformHandleui64vARB,
+  glVertexAttribL1ui64ARB,
+  glVertexAttribL1ui64vARB
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/BlendFuncExtended.hs b/src/Graphics/GL/ARB/BlendFuncExtended.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/BlendFuncExtended.hs
@@ -0,0 +1,31 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.BlendFuncExtended
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.BlendFuncExtended (
+  -- * Extension Support
+  glGetARBBlendFuncExtended,
+  gl_ARB_blend_func_extended,
+  -- * Enums
+  pattern GL_MAX_DUAL_SOURCE_DRAW_BUFFERS,
+  pattern GL_ONE_MINUS_SRC1_ALPHA,
+  pattern GL_ONE_MINUS_SRC1_COLOR,
+  pattern GL_SRC1_ALPHA,
+  pattern GL_SRC1_COLOR,
+  -- * Functions
+  glBindFragDataLocationIndexed,
+  glGetFragDataIndex
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/BufferStorage.hs b/src/Graphics/GL/ARB/BufferStorage.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/BufferStorage.hs
@@ -0,0 +1,34 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.BufferStorage
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.BufferStorage (
+  -- * Extension Support
+  glGetARBBufferStorage,
+  gl_ARB_buffer_storage,
+  -- * Enums
+  pattern GL_BUFFER_IMMUTABLE_STORAGE,
+  pattern GL_BUFFER_STORAGE_FLAGS,
+  pattern GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT,
+  pattern GL_CLIENT_STORAGE_BIT,
+  pattern GL_DYNAMIC_STORAGE_BIT,
+  pattern GL_MAP_COHERENT_BIT,
+  pattern GL_MAP_PERSISTENT_BIT,
+  pattern GL_MAP_READ_BIT,
+  pattern GL_MAP_WRITE_BIT,
+  -- * Functions
+  glBufferStorage
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/CLEvent.hs b/src/Graphics/GL/ARB/CLEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/CLEvent.hs
@@ -0,0 +1,27 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.CLEvent
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.CLEvent (
+  -- * Extension Support
+  glGetARBCLEvent,
+  gl_ARB_cl_event,
+  -- * Enums
+  pattern GL_SYNC_CL_EVENT_ARB,
+  pattern GL_SYNC_CL_EVENT_COMPLETE_ARB,
+  -- * Functions
+  glCreateSyncFromCLeventARB
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/ClearBufferObject.hs b/src/Graphics/GL/ARB/ClearBufferObject.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/ClearBufferObject.hs
@@ -0,0 +1,23 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.ClearBufferObject
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.ClearBufferObject (
+  -- * Extension Support
+  glGetARBClearBufferObject,
+  gl_ARB_clear_buffer_object,
+  -- * Functions
+  glClearBufferData,
+  glClearBufferSubData
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/ClearTexture.hs b/src/Graphics/GL/ARB/ClearTexture.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/ClearTexture.hs
@@ -0,0 +1,27 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.ClearTexture
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.ClearTexture (
+  -- * Extension Support
+  glGetARBClearTexture,
+  gl_ARB_clear_texture,
+  -- * Enums
+  pattern GL_CLEAR_TEXTURE,
+  -- * Functions
+  glClearTexImage,
+  glClearTexSubImage
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/ClipControl.hs b/src/Graphics/GL/ARB/ClipControl.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/ClipControl.hs
@@ -0,0 +1,31 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.ClipControl
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.ClipControl (
+  -- * Extension Support
+  glGetARBClipControl,
+  gl_ARB_clip_control,
+  -- * Enums
+  pattern GL_CLIP_DEPTH_MODE,
+  pattern GL_CLIP_ORIGIN,
+  pattern GL_LOWER_LEFT,
+  pattern GL_NEGATIVE_ONE_TO_ONE,
+  pattern GL_UPPER_LEFT,
+  pattern GL_ZERO_TO_ONE,
+  -- * Functions
+  glClipControl
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/ColorBufferFloat.hs b/src/Graphics/GL/ARB/ColorBufferFloat.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/ColorBufferFloat.hs
@@ -0,0 +1,30 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.ColorBufferFloat
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.ColorBufferFloat (
+  -- * Extension Support
+  glGetARBColorBufferFloat,
+  gl_ARB_color_buffer_float,
+  -- * Enums
+  pattern GL_CLAMP_FRAGMENT_COLOR_ARB,
+  pattern GL_CLAMP_READ_COLOR_ARB,
+  pattern GL_CLAMP_VERTEX_COLOR_ARB,
+  pattern GL_FIXED_ONLY_ARB,
+  pattern GL_RGBA_FLOAT_MODE_ARB,
+  -- * Functions
+  glClampColorARB
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/CompressedTexturePixelStorage.hs b/src/Graphics/GL/ARB/CompressedTexturePixelStorage.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/CompressedTexturePixelStorage.hs
@@ -0,0 +1,30 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.CompressedTexturePixelStorage
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.CompressedTexturePixelStorage (
+  -- * Extension Support
+  glGetARBCompressedTexturePixelStorage,
+  gl_ARB_compressed_texture_pixel_storage,
+  -- * Enums
+  pattern GL_PACK_COMPRESSED_BLOCK_DEPTH,
+  pattern GL_PACK_COMPRESSED_BLOCK_HEIGHT,
+  pattern GL_PACK_COMPRESSED_BLOCK_SIZE,
+  pattern GL_PACK_COMPRESSED_BLOCK_WIDTH,
+  pattern GL_UNPACK_COMPRESSED_BLOCK_DEPTH,
+  pattern GL_UNPACK_COMPRESSED_BLOCK_HEIGHT,
+  pattern GL_UNPACK_COMPRESSED_BLOCK_SIZE,
+  pattern GL_UNPACK_COMPRESSED_BLOCK_WIDTH
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/ARB/ComputeShader.hs b/src/Graphics/GL/ARB/ComputeShader.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/ComputeShader.hs
@@ -0,0 +1,44 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.ComputeShader
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.ComputeShader (
+  -- * Extension Support
+  glGetARBComputeShader,
+  gl_ARB_compute_shader,
+  -- * Enums
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER,
+  pattern GL_COMPUTE_SHADER,
+  pattern GL_COMPUTE_SHADER_BIT,
+  pattern GL_COMPUTE_WORK_GROUP_SIZE,
+  pattern GL_DISPATCH_INDIRECT_BUFFER,
+  pattern GL_DISPATCH_INDIRECT_BUFFER_BINDING,
+  pattern GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMPUTE_ATOMIC_COUNTERS,
+  pattern GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_COMPUTE_IMAGE_UNIFORMS,
+  pattern GL_MAX_COMPUTE_SHARED_MEMORY_SIZE,
+  pattern GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_COMPUTE_UNIFORM_BLOCKS,
+  pattern GL_MAX_COMPUTE_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMPUTE_WORK_GROUP_COUNT,
+  pattern GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS,
+  pattern GL_MAX_COMPUTE_WORK_GROUP_SIZE,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER,
+  -- * Functions
+  glDispatchCompute,
+  glDispatchComputeIndirect
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/ComputeVariableGroupSize.hs b/src/Graphics/GL/ARB/ComputeVariableGroupSize.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/ComputeVariableGroupSize.hs
@@ -0,0 +1,29 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.ComputeVariableGroupSize
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.ComputeVariableGroupSize (
+  -- * Extension Support
+  glGetARBComputeVariableGroupSize,
+  gl_ARB_compute_variable_group_size,
+  -- * Enums
+  pattern GL_MAX_COMPUTE_FIXED_GROUP_INVOCATIONS_ARB,
+  pattern GL_MAX_COMPUTE_FIXED_GROUP_SIZE_ARB,
+  pattern GL_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB,
+  pattern GL_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB,
+  -- * Functions
+  glDispatchComputeGroupSizeARB
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/ConditionalRenderInverted.hs b/src/Graphics/GL/ARB/ConditionalRenderInverted.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/ConditionalRenderInverted.hs
@@ -0,0 +1,26 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.ConditionalRenderInverted
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.ConditionalRenderInverted (
+  -- * Extension Support
+  glGetARBConditionalRenderInverted,
+  gl_ARB_conditional_render_inverted,
+  -- * Enums
+  pattern GL_QUERY_BY_REGION_NO_WAIT_INVERTED,
+  pattern GL_QUERY_BY_REGION_WAIT_INVERTED,
+  pattern GL_QUERY_NO_WAIT_INVERTED,
+  pattern GL_QUERY_WAIT_INVERTED
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/ARB/CopyBuffer.hs b/src/Graphics/GL/ARB/CopyBuffer.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/CopyBuffer.hs
@@ -0,0 +1,27 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.CopyBuffer
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.CopyBuffer (
+  -- * Extension Support
+  glGetARBCopyBuffer,
+  gl_ARB_copy_buffer,
+  -- * Enums
+  pattern GL_COPY_READ_BUFFER,
+  pattern GL_COPY_WRITE_BUFFER,
+  -- * Functions
+  glCopyBufferSubData
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/CopyImage.hs b/src/Graphics/GL/ARB/CopyImage.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/CopyImage.hs
@@ -0,0 +1,22 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.CopyImage
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.CopyImage (
+  -- * Extension Support
+  glGetARBCopyImage,
+  gl_ARB_copy_image,
+  -- * Functions
+  glCopyImageSubData
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/CullDistance.hs b/src/Graphics/GL/ARB/CullDistance.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/CullDistance.hs
@@ -0,0 +1,24 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.CullDistance
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.CullDistance (
+  -- * Extension Support
+  glGetARBCullDistance,
+  gl_ARB_cull_distance,
+  -- * Enums
+  pattern GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES,
+  pattern GL_MAX_CULL_DISTANCES
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/ARB/DebugOutput.hs b/src/Graphics/GL/ARB/DebugOutput.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/DebugOutput.hs
@@ -0,0 +1,50 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.DebugOutput
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.DebugOutput (
+  -- * Extension Support
+  glGetARBDebugOutput,
+  gl_ARB_debug_output,
+  -- * Enums
+  pattern GL_DEBUG_CALLBACK_FUNCTION_ARB,
+  pattern GL_DEBUG_CALLBACK_USER_PARAM_ARB,
+  pattern GL_DEBUG_LOGGED_MESSAGES_ARB,
+  pattern GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB,
+  pattern GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB,
+  pattern GL_DEBUG_SEVERITY_HIGH_ARB,
+  pattern GL_DEBUG_SEVERITY_LOW_ARB,
+  pattern GL_DEBUG_SEVERITY_MEDIUM_ARB,
+  pattern GL_DEBUG_SOURCE_API_ARB,
+  pattern GL_DEBUG_SOURCE_APPLICATION_ARB,
+  pattern GL_DEBUG_SOURCE_OTHER_ARB,
+  pattern GL_DEBUG_SOURCE_SHADER_COMPILER_ARB,
+  pattern GL_DEBUG_SOURCE_THIRD_PARTY_ARB,
+  pattern GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB,
+  pattern GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB,
+  pattern GL_DEBUG_TYPE_ERROR_ARB,
+  pattern GL_DEBUG_TYPE_OTHER_ARB,
+  pattern GL_DEBUG_TYPE_PERFORMANCE_ARB,
+  pattern GL_DEBUG_TYPE_PORTABILITY_ARB,
+  pattern GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB,
+  pattern GL_MAX_DEBUG_LOGGED_MESSAGES_ARB,
+  pattern GL_MAX_DEBUG_MESSAGE_LENGTH_ARB,
+  -- * Functions
+  glDebugMessageCallbackARB,
+  glDebugMessageControlARB,
+  glDebugMessageInsertARB,
+  glGetDebugMessageLogARB
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/DepthBufferFloat.hs b/src/Graphics/GL/ARB/DepthBufferFloat.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/DepthBufferFloat.hs
@@ -0,0 +1,25 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.DepthBufferFloat
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.DepthBufferFloat (
+  -- * Extension Support
+  glGetARBDepthBufferFloat,
+  gl_ARB_depth_buffer_float,
+  -- * Enums
+  pattern GL_DEPTH32F_STENCIL8,
+  pattern GL_DEPTH_COMPONENT32F,
+  pattern GL_FLOAT_32_UNSIGNED_INT_24_8_REV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/ARB/DepthClamp.hs b/src/Graphics/GL/ARB/DepthClamp.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/DepthClamp.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.DepthClamp
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.DepthClamp (
+  -- * Extension Support
+  glGetARBDepthClamp,
+  gl_ARB_depth_clamp,
+  -- * Enums
+  pattern GL_DEPTH_CLAMP
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/ARB/DepthTexture.hs b/src/Graphics/GL/ARB/DepthTexture.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/DepthTexture.hs
@@ -0,0 +1,27 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.DepthTexture
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.DepthTexture (
+  -- * Extension Support
+  glGetARBDepthTexture,
+  gl_ARB_depth_texture,
+  -- * Enums
+  pattern GL_DEPTH_COMPONENT16_ARB,
+  pattern GL_DEPTH_COMPONENT24_ARB,
+  pattern GL_DEPTH_COMPONENT32_ARB,
+  pattern GL_DEPTH_TEXTURE_MODE_ARB,
+  pattern GL_TEXTURE_DEPTH_SIZE_ARB
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/ARB/DirectStateAccess.hs b/src/Graphics/GL/ARB/DirectStateAccess.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/DirectStateAccess.hs
@@ -0,0 +1,134 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.DirectStateAccess
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.DirectStateAccess (
+  -- * Extension Support
+  glGetARBDirectStateAccess,
+  gl_ARB_direct_state_access,
+  -- * Enums
+  pattern GL_QUERY_TARGET,
+  pattern GL_TEXTURE_BINDING_1D,
+  pattern GL_TEXTURE_BINDING_1D_ARRAY,
+  pattern GL_TEXTURE_BINDING_2D,
+  pattern GL_TEXTURE_BINDING_2D_ARRAY,
+  pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE,
+  pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY,
+  pattern GL_TEXTURE_BINDING_3D,
+  pattern GL_TEXTURE_BINDING_BUFFER,
+  pattern GL_TEXTURE_BINDING_CUBE_MAP,
+  pattern GL_TEXTURE_BINDING_CUBE_MAP_ARRAY,
+  pattern GL_TEXTURE_BINDING_RECTANGLE,
+  pattern GL_TEXTURE_TARGET,
+  -- * Functions
+  glBindTextureUnit,
+  glBlitNamedFramebuffer,
+  glCheckNamedFramebufferStatus,
+  glClearNamedBufferData,
+  glClearNamedBufferSubData,
+  glClearNamedFramebufferfi,
+  glClearNamedFramebufferfv,
+  glClearNamedFramebufferiv,
+  glClearNamedFramebufferuiv,
+  glCompressedTextureSubImage1D,
+  glCompressedTextureSubImage2D,
+  glCompressedTextureSubImage3D,
+  glCopyNamedBufferSubData,
+  glCopyTextureSubImage1D,
+  glCopyTextureSubImage2D,
+  glCopyTextureSubImage3D,
+  glCreateBuffers,
+  glCreateFramebuffers,
+  glCreateProgramPipelines,
+  glCreateQueries,
+  glCreateRenderbuffers,
+  glCreateSamplers,
+  glCreateTextures,
+  glCreateTransformFeedbacks,
+  glCreateVertexArrays,
+  glDisableVertexArrayAttrib,
+  glEnableVertexArrayAttrib,
+  glFlushMappedNamedBufferRange,
+  glGenerateTextureMipmap,
+  glGetCompressedTextureImage,
+  glGetNamedBufferParameteri64v,
+  glGetNamedBufferParameteriv,
+  glGetNamedBufferPointerv,
+  glGetNamedBufferSubData,
+  glGetNamedFramebufferAttachmentParameteriv,
+  glGetNamedFramebufferParameteriv,
+  glGetNamedRenderbufferParameteriv,
+  glGetQueryBufferObjecti64v,
+  glGetQueryBufferObjectiv,
+  glGetQueryBufferObjectui64v,
+  glGetQueryBufferObjectuiv,
+  glGetTextureImage,
+  glGetTextureLevelParameterfv,
+  glGetTextureLevelParameteriv,
+  glGetTextureParameterIiv,
+  glGetTextureParameterIuiv,
+  glGetTextureParameterfv,
+  glGetTextureParameteriv,
+  glGetTransformFeedbacki64_v,
+  glGetTransformFeedbacki_v,
+  glGetTransformFeedbackiv,
+  glGetVertexArrayIndexed64iv,
+  glGetVertexArrayIndexediv,
+  glGetVertexArrayiv,
+  glInvalidateNamedFramebufferData,
+  glInvalidateNamedFramebufferSubData,
+  glMapNamedBuffer,
+  glMapNamedBufferRange,
+  glNamedBufferData,
+  glNamedBufferStorage,
+  glNamedBufferSubData,
+  glNamedFramebufferDrawBuffer,
+  glNamedFramebufferDrawBuffers,
+  glNamedFramebufferParameteri,
+  glNamedFramebufferReadBuffer,
+  glNamedFramebufferRenderbuffer,
+  glNamedFramebufferTexture,
+  glNamedFramebufferTextureLayer,
+  glNamedRenderbufferStorage,
+  glNamedRenderbufferStorageMultisample,
+  glTextureBuffer,
+  glTextureBufferRange,
+  glTextureParameterIiv,
+  glTextureParameterIuiv,
+  glTextureParameterf,
+  glTextureParameterfv,
+  glTextureParameteri,
+  glTextureParameteriv,
+  glTextureStorage1D,
+  glTextureStorage2D,
+  glTextureStorage2DMultisample,
+  glTextureStorage3D,
+  glTextureStorage3DMultisample,
+  glTextureSubImage1D,
+  glTextureSubImage2D,
+  glTextureSubImage3D,
+  glTransformFeedbackBufferBase,
+  glTransformFeedbackBufferRange,
+  glUnmapNamedBuffer,
+  glVertexArrayAttribBinding,
+  glVertexArrayAttribFormat,
+  glVertexArrayAttribIFormat,
+  glVertexArrayAttribLFormat,
+  glVertexArrayBindingDivisor,
+  glVertexArrayElementBuffer,
+  glVertexArrayVertexBuffer,
+  glVertexArrayVertexBuffers
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/DrawBuffers.hs b/src/Graphics/GL/ARB/DrawBuffers.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/DrawBuffers.hs
@@ -0,0 +1,42 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.DrawBuffers
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.DrawBuffers (
+  -- * Extension Support
+  glGetARBDrawBuffers,
+  gl_ARB_draw_buffers,
+  -- * Enums
+  pattern GL_DRAW_BUFFER0_ARB,
+  pattern GL_DRAW_BUFFER10_ARB,
+  pattern GL_DRAW_BUFFER11_ARB,
+  pattern GL_DRAW_BUFFER12_ARB,
+  pattern GL_DRAW_BUFFER13_ARB,
+  pattern GL_DRAW_BUFFER14_ARB,
+  pattern GL_DRAW_BUFFER15_ARB,
+  pattern GL_DRAW_BUFFER1_ARB,
+  pattern GL_DRAW_BUFFER2_ARB,
+  pattern GL_DRAW_BUFFER3_ARB,
+  pattern GL_DRAW_BUFFER4_ARB,
+  pattern GL_DRAW_BUFFER5_ARB,
+  pattern GL_DRAW_BUFFER6_ARB,
+  pattern GL_DRAW_BUFFER7_ARB,
+  pattern GL_DRAW_BUFFER8_ARB,
+  pattern GL_DRAW_BUFFER9_ARB,
+  pattern GL_MAX_DRAW_BUFFERS_ARB,
+  -- * Functions
+  glDrawBuffersARB
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/DrawBuffersBlend.hs b/src/Graphics/GL/ARB/DrawBuffersBlend.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/DrawBuffersBlend.hs
@@ -0,0 +1,25 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.DrawBuffersBlend
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.DrawBuffersBlend (
+  -- * Extension Support
+  glGetARBDrawBuffersBlend,
+  gl_ARB_draw_buffers_blend,
+  -- * Functions
+  glBlendEquationSeparateiARB,
+  glBlendEquationiARB,
+  glBlendFuncSeparateiARB,
+  glBlendFunciARB
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/DrawElementsBaseVertex.hs b/src/Graphics/GL/ARB/DrawElementsBaseVertex.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/DrawElementsBaseVertex.hs
@@ -0,0 +1,25 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.DrawElementsBaseVertex
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.DrawElementsBaseVertex (
+  -- * Extension Support
+  glGetARBDrawElementsBaseVertex,
+  gl_ARB_draw_elements_base_vertex,
+  -- * Functions
+  glDrawElementsBaseVertex,
+  glDrawElementsInstancedBaseVertex,
+  glDrawRangeElementsBaseVertex,
+  glMultiDrawElementsBaseVertex
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/DrawIndirect.hs b/src/Graphics/GL/ARB/DrawIndirect.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/DrawIndirect.hs
@@ -0,0 +1,28 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.DrawIndirect
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.DrawIndirect (
+  -- * Extension Support
+  glGetARBDrawIndirect,
+  gl_ARB_draw_indirect,
+  -- * Enums
+  pattern GL_DRAW_INDIRECT_BUFFER,
+  pattern GL_DRAW_INDIRECT_BUFFER_BINDING,
+  -- * Functions
+  glDrawArraysIndirect,
+  glDrawElementsIndirect
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/DrawInstanced.hs b/src/Graphics/GL/ARB/DrawInstanced.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/DrawInstanced.hs
@@ -0,0 +1,23 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.DrawInstanced
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.DrawInstanced (
+  -- * Extension Support
+  glGetARBDrawInstanced,
+  gl_ARB_draw_instanced,
+  -- * Functions
+  glDrawArraysInstancedARB,
+  glDrawElementsInstancedARB
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/ES2Compatibility.hs b/src/Graphics/GL/ARB/ES2Compatibility.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/ES2Compatibility.hs
@@ -0,0 +1,45 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.ES2Compatibility
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.ES2Compatibility (
+  -- * Extension Support
+  glGetARBES2Compatibility,
+  gl_ARB_ES2_compatibility,
+  -- * Enums
+  pattern GL_FIXED,
+  pattern GL_HIGH_FLOAT,
+  pattern GL_HIGH_INT,
+  pattern GL_IMPLEMENTATION_COLOR_READ_FORMAT,
+  pattern GL_IMPLEMENTATION_COLOR_READ_TYPE,
+  pattern GL_LOW_FLOAT,
+  pattern GL_LOW_INT,
+  pattern GL_MAX_FRAGMENT_UNIFORM_VECTORS,
+  pattern GL_MAX_VARYING_VECTORS,
+  pattern GL_MAX_VERTEX_UNIFORM_VECTORS,
+  pattern GL_MEDIUM_FLOAT,
+  pattern GL_MEDIUM_INT,
+  pattern GL_NUM_SHADER_BINARY_FORMATS,
+  pattern GL_RGB565,
+  pattern GL_SHADER_BINARY_FORMATS,
+  pattern GL_SHADER_COMPILER,
+  -- * Functions
+  glClearDepthf,
+  glDepthRangef,
+  glGetShaderPrecisionFormat,
+  glReleaseShaderCompiler,
+  glShaderBinary
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/ES31Compatibility.hs b/src/Graphics/GL/ARB/ES31Compatibility.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/ES31Compatibility.hs
@@ -0,0 +1,26 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.ES31Compatibility
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.ES31Compatibility (
+  -- * Extension Support
+  glGetARBES31Compatibility,
+  gl_ARB_ES3_1_compatibility,
+  -- * Enums
+  pattern GL_BACK,
+  -- * Functions
+  glMemoryBarrierByRegion
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/ES32Compatibility.hs b/src/Graphics/GL/ARB/ES32Compatibility.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/ES32Compatibility.hs
@@ -0,0 +1,28 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.ES32Compatibility
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.ES32Compatibility (
+  -- * Extension Support
+  glGetARBES32Compatibility,
+  gl_ARB_ES3_2_compatibility,
+  -- * Enums
+  pattern GL_MULTISAMPLE_LINE_WIDTH_GRANULARITY_ARB,
+  pattern GL_MULTISAMPLE_LINE_WIDTH_RANGE_ARB,
+  pattern GL_PRIMITIVE_BOUNDING_BOX_ARB,
+  -- * Functions
+  glPrimitiveBoundingBoxARB
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/ES3Compatibility.hs b/src/Graphics/GL/ARB/ES3Compatibility.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/ES3Compatibility.hs
@@ -0,0 +1,35 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.ES3Compatibility
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.ES3Compatibility (
+  -- * Extension Support
+  glGetARBES3Compatibility,
+  gl_ARB_ES3_compatibility,
+  -- * Enums
+  pattern GL_ANY_SAMPLES_PASSED_CONSERVATIVE,
+  pattern GL_COMPRESSED_R11_EAC,
+  pattern GL_COMPRESSED_RG11_EAC,
+  pattern GL_COMPRESSED_RGB8_ETC2,
+  pattern GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,
+  pattern GL_COMPRESSED_RGBA8_ETC2_EAC,
+  pattern GL_COMPRESSED_SIGNED_R11_EAC,
+  pattern GL_COMPRESSED_SIGNED_RG11_EAC,
+  pattern GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,
+  pattern GL_COMPRESSED_SRGB8_ETC2,
+  pattern GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,
+  pattern GL_MAX_ELEMENT_INDEX,
+  pattern GL_PRIMITIVE_RESTART_FIXED_INDEX
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/ARB/EnhancedLayouts.hs b/src/Graphics/GL/ARB/EnhancedLayouts.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/EnhancedLayouts.hs
@@ -0,0 +1,26 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.EnhancedLayouts
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.EnhancedLayouts (
+  -- * Extension Support
+  glGetARBEnhancedLayouts,
+  gl_ARB_enhanced_layouts,
+  -- * Enums
+  pattern GL_LOCATION_COMPONENT,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_INDEX,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/ARB/ExplicitUniformLocation.hs b/src/Graphics/GL/ARB/ExplicitUniformLocation.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/ExplicitUniformLocation.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.ExplicitUniformLocation
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.ExplicitUniformLocation (
+  -- * Extension Support
+  glGetARBExplicitUniformLocation,
+  gl_ARB_explicit_uniform_location,
+  -- * Enums
+  pattern GL_MAX_UNIFORM_LOCATIONS
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/ARB/FragmentProgram.hs b/src/Graphics/GL/ARB/FragmentProgram.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/FragmentProgram.hs
@@ -0,0 +1,121 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.FragmentProgram
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.FragmentProgram (
+  -- * Extension Support
+  glGetARBFragmentProgram,
+  gl_ARB_fragment_program,
+  -- * Enums
+  pattern GL_CURRENT_MATRIX_ARB,
+  pattern GL_CURRENT_MATRIX_STACK_DEPTH_ARB,
+  pattern GL_FRAGMENT_PROGRAM_ARB,
+  pattern GL_MATRIX0_ARB,
+  pattern GL_MATRIX10_ARB,
+  pattern GL_MATRIX11_ARB,
+  pattern GL_MATRIX12_ARB,
+  pattern GL_MATRIX13_ARB,
+  pattern GL_MATRIX14_ARB,
+  pattern GL_MATRIX15_ARB,
+  pattern GL_MATRIX16_ARB,
+  pattern GL_MATRIX17_ARB,
+  pattern GL_MATRIX18_ARB,
+  pattern GL_MATRIX19_ARB,
+  pattern GL_MATRIX1_ARB,
+  pattern GL_MATRIX20_ARB,
+  pattern GL_MATRIX21_ARB,
+  pattern GL_MATRIX22_ARB,
+  pattern GL_MATRIX23_ARB,
+  pattern GL_MATRIX24_ARB,
+  pattern GL_MATRIX25_ARB,
+  pattern GL_MATRIX26_ARB,
+  pattern GL_MATRIX27_ARB,
+  pattern GL_MATRIX28_ARB,
+  pattern GL_MATRIX29_ARB,
+  pattern GL_MATRIX2_ARB,
+  pattern GL_MATRIX30_ARB,
+  pattern GL_MATRIX31_ARB,
+  pattern GL_MATRIX3_ARB,
+  pattern GL_MATRIX4_ARB,
+  pattern GL_MATRIX5_ARB,
+  pattern GL_MATRIX6_ARB,
+  pattern GL_MATRIX7_ARB,
+  pattern GL_MATRIX8_ARB,
+  pattern GL_MATRIX9_ARB,
+  pattern GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB,
+  pattern GL_MAX_PROGRAM_ATTRIBS_ARB,
+  pattern GL_MAX_PROGRAM_ENV_PARAMETERS_ARB,
+  pattern GL_MAX_PROGRAM_INSTRUCTIONS_ARB,
+  pattern GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB,
+  pattern GL_MAX_PROGRAM_MATRICES_ARB,
+  pattern GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB,
+  pattern GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB,
+  pattern GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB,
+  pattern GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB,
+  pattern GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB,
+  pattern GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB,
+  pattern GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB,
+  pattern GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB,
+  pattern GL_MAX_PROGRAM_PARAMETERS_ARB,
+  pattern GL_MAX_PROGRAM_TEMPORARIES_ARB,
+  pattern GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB,
+  pattern GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB,
+  pattern GL_MAX_TEXTURE_COORDS_ARB,
+  pattern GL_MAX_TEXTURE_IMAGE_UNITS_ARB,
+  pattern GL_PROGRAM_ALU_INSTRUCTIONS_ARB,
+  pattern GL_PROGRAM_ATTRIBS_ARB,
+  pattern GL_PROGRAM_BINDING_ARB,
+  pattern GL_PROGRAM_ERROR_POSITION_ARB,
+  pattern GL_PROGRAM_ERROR_STRING_ARB,
+  pattern GL_PROGRAM_FORMAT_ARB,
+  pattern GL_PROGRAM_FORMAT_ASCII_ARB,
+  pattern GL_PROGRAM_INSTRUCTIONS_ARB,
+  pattern GL_PROGRAM_LENGTH_ARB,
+  pattern GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB,
+  pattern GL_PROGRAM_NATIVE_ATTRIBS_ARB,
+  pattern GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB,
+  pattern GL_PROGRAM_NATIVE_PARAMETERS_ARB,
+  pattern GL_PROGRAM_NATIVE_TEMPORARIES_ARB,
+  pattern GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB,
+  pattern GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB,
+  pattern GL_PROGRAM_PARAMETERS_ARB,
+  pattern GL_PROGRAM_STRING_ARB,
+  pattern GL_PROGRAM_TEMPORARIES_ARB,
+  pattern GL_PROGRAM_TEX_INDIRECTIONS_ARB,
+  pattern GL_PROGRAM_TEX_INSTRUCTIONS_ARB,
+  pattern GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB,
+  pattern GL_TRANSPOSE_CURRENT_MATRIX_ARB,
+  -- * Functions
+  glBindProgramARB,
+  glDeleteProgramsARB,
+  glGenProgramsARB,
+  glGetProgramEnvParameterdvARB,
+  glGetProgramEnvParameterfvARB,
+  glGetProgramLocalParameterdvARB,
+  glGetProgramLocalParameterfvARB,
+  glGetProgramStringARB,
+  glGetProgramivARB,
+  glIsProgramARB,
+  glProgramEnvParameter4dARB,
+  glProgramEnvParameter4dvARB,
+  glProgramEnvParameter4fARB,
+  glProgramEnvParameter4fvARB,
+  glProgramLocalParameter4dARB,
+  glProgramLocalParameter4dvARB,
+  glProgramLocalParameter4fARB,
+  glProgramLocalParameter4fvARB,
+  glProgramStringARB
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/FragmentShader.hs b/src/Graphics/GL/ARB/FragmentShader.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/FragmentShader.hs
@@ -0,0 +1,25 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.FragmentShader
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.FragmentShader (
+  -- * Extension Support
+  glGetARBFragmentShader,
+  gl_ARB_fragment_shader,
+  -- * Enums
+  pattern GL_FRAGMENT_SHADER_ARB,
+  pattern GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB,
+  pattern GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/ARB/FramebufferNoAttachments.hs b/src/Graphics/GL/ARB/FramebufferNoAttachments.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/FramebufferNoAttachments.hs
@@ -0,0 +1,35 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.FramebufferNoAttachments
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.FramebufferNoAttachments (
+  -- * Extension Support
+  glGetARBFramebufferNoAttachments,
+  gl_ARB_framebuffer_no_attachments,
+  -- * Enums
+  pattern GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS,
+  pattern GL_FRAMEBUFFER_DEFAULT_HEIGHT,
+  pattern GL_FRAMEBUFFER_DEFAULT_LAYERS,
+  pattern GL_FRAMEBUFFER_DEFAULT_SAMPLES,
+  pattern GL_FRAMEBUFFER_DEFAULT_WIDTH,
+  pattern GL_MAX_FRAMEBUFFER_HEIGHT,
+  pattern GL_MAX_FRAMEBUFFER_LAYERS,
+  pattern GL_MAX_FRAMEBUFFER_SAMPLES,
+  pattern GL_MAX_FRAMEBUFFER_WIDTH,
+  -- * Functions
+  glFramebufferParameteri,
+  glGetFramebufferParameteriv
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/FramebufferObjectCompatibility.hs b/src/Graphics/GL/ARB/FramebufferObjectCompatibility.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/FramebufferObjectCompatibility.hs
@@ -0,0 +1,117 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.FramebufferObjectCompatibility
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.FramebufferObjectCompatibility (
+  -- * Extension Support
+  glGetARBFramebufferObject,
+  gl_ARB_framebuffer_object,
+  -- * Enums
+  pattern GL_COLOR_ATTACHMENT0,
+  pattern GL_COLOR_ATTACHMENT1,
+  pattern GL_COLOR_ATTACHMENT10,
+  pattern GL_COLOR_ATTACHMENT11,
+  pattern GL_COLOR_ATTACHMENT12,
+  pattern GL_COLOR_ATTACHMENT13,
+  pattern GL_COLOR_ATTACHMENT14,
+  pattern GL_COLOR_ATTACHMENT15,
+  pattern GL_COLOR_ATTACHMENT2,
+  pattern GL_COLOR_ATTACHMENT3,
+  pattern GL_COLOR_ATTACHMENT4,
+  pattern GL_COLOR_ATTACHMENT5,
+  pattern GL_COLOR_ATTACHMENT6,
+  pattern GL_COLOR_ATTACHMENT7,
+  pattern GL_COLOR_ATTACHMENT8,
+  pattern GL_COLOR_ATTACHMENT9,
+  pattern GL_DEPTH24_STENCIL8,
+  pattern GL_DEPTH_ATTACHMENT,
+  pattern GL_DEPTH_STENCIL,
+  pattern GL_DEPTH_STENCIL_ATTACHMENT,
+  pattern GL_DRAW_FRAMEBUFFER,
+  pattern GL_DRAW_FRAMEBUFFER_BINDING,
+  pattern GL_FRAMEBUFFER,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL,
+  pattern GL_FRAMEBUFFER_BINDING,
+  pattern GL_FRAMEBUFFER_COMPLETE,
+  pattern GL_FRAMEBUFFER_DEFAULT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER,
+  pattern GL_FRAMEBUFFER_UNDEFINED,
+  pattern GL_FRAMEBUFFER_UNSUPPORTED,
+  pattern GL_INDEX,
+  pattern GL_INVALID_FRAMEBUFFER_OPERATION,
+  pattern GL_MAX_COLOR_ATTACHMENTS,
+  pattern GL_MAX_RENDERBUFFER_SIZE,
+  pattern GL_MAX_SAMPLES,
+  pattern GL_READ_FRAMEBUFFER,
+  pattern GL_READ_FRAMEBUFFER_BINDING,
+  pattern GL_RENDERBUFFER,
+  pattern GL_RENDERBUFFER_ALPHA_SIZE,
+  pattern GL_RENDERBUFFER_BINDING,
+  pattern GL_RENDERBUFFER_BLUE_SIZE,
+  pattern GL_RENDERBUFFER_DEPTH_SIZE,
+  pattern GL_RENDERBUFFER_GREEN_SIZE,
+  pattern GL_RENDERBUFFER_HEIGHT,
+  pattern GL_RENDERBUFFER_INTERNAL_FORMAT,
+  pattern GL_RENDERBUFFER_RED_SIZE,
+  pattern GL_RENDERBUFFER_SAMPLES,
+  pattern GL_RENDERBUFFER_STENCIL_SIZE,
+  pattern GL_RENDERBUFFER_WIDTH,
+  pattern GL_STENCIL_ATTACHMENT,
+  pattern GL_STENCIL_INDEX1,
+  pattern GL_STENCIL_INDEX16,
+  pattern GL_STENCIL_INDEX4,
+  pattern GL_STENCIL_INDEX8,
+  pattern GL_TEXTURE_STENCIL_SIZE,
+  pattern GL_UNSIGNED_INT_24_8,
+  pattern GL_UNSIGNED_NORMALIZED,
+  -- * Functions
+  glBindFramebuffer,
+  glBindRenderbuffer,
+  glBlitFramebuffer,
+  glCheckFramebufferStatus,
+  glDeleteFramebuffers,
+  glDeleteRenderbuffers,
+  glFramebufferRenderbuffer,
+  glFramebufferTexture1D,
+  glFramebufferTexture2D,
+  glFramebufferTexture3D,
+  glFramebufferTextureLayer,
+  glGenFramebuffers,
+  glGenRenderbuffers,
+  glGenerateMipmap,
+  glGetFramebufferAttachmentParameteriv,
+  glGetRenderbufferParameteriv,
+  glIsFramebuffer,
+  glIsRenderbuffer,
+  glRenderbufferStorage,
+  glRenderbufferStorageMultisample
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/FramebufferObjectCore.hs b/src/Graphics/GL/ARB/FramebufferObjectCore.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/FramebufferObjectCore.hs
@@ -0,0 +1,116 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.FramebufferObjectCore
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.FramebufferObjectCore (
+  -- * Extension Support
+  glGetARBFramebufferObject,
+  gl_ARB_framebuffer_object,
+  -- * Enums
+  pattern GL_COLOR_ATTACHMENT0,
+  pattern GL_COLOR_ATTACHMENT1,
+  pattern GL_COLOR_ATTACHMENT10,
+  pattern GL_COLOR_ATTACHMENT11,
+  pattern GL_COLOR_ATTACHMENT12,
+  pattern GL_COLOR_ATTACHMENT13,
+  pattern GL_COLOR_ATTACHMENT14,
+  pattern GL_COLOR_ATTACHMENT15,
+  pattern GL_COLOR_ATTACHMENT2,
+  pattern GL_COLOR_ATTACHMENT3,
+  pattern GL_COLOR_ATTACHMENT4,
+  pattern GL_COLOR_ATTACHMENT5,
+  pattern GL_COLOR_ATTACHMENT6,
+  pattern GL_COLOR_ATTACHMENT7,
+  pattern GL_COLOR_ATTACHMENT8,
+  pattern GL_COLOR_ATTACHMENT9,
+  pattern GL_DEPTH24_STENCIL8,
+  pattern GL_DEPTH_ATTACHMENT,
+  pattern GL_DEPTH_STENCIL,
+  pattern GL_DEPTH_STENCIL_ATTACHMENT,
+  pattern GL_DRAW_FRAMEBUFFER,
+  pattern GL_DRAW_FRAMEBUFFER_BINDING,
+  pattern GL_FRAMEBUFFER,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL,
+  pattern GL_FRAMEBUFFER_BINDING,
+  pattern GL_FRAMEBUFFER_COMPLETE,
+  pattern GL_FRAMEBUFFER_DEFAULT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER,
+  pattern GL_FRAMEBUFFER_UNDEFINED,
+  pattern GL_FRAMEBUFFER_UNSUPPORTED,
+  pattern GL_INVALID_FRAMEBUFFER_OPERATION,
+  pattern GL_MAX_COLOR_ATTACHMENTS,
+  pattern GL_MAX_RENDERBUFFER_SIZE,
+  pattern GL_MAX_SAMPLES,
+  pattern GL_READ_FRAMEBUFFER,
+  pattern GL_READ_FRAMEBUFFER_BINDING,
+  pattern GL_RENDERBUFFER,
+  pattern GL_RENDERBUFFER_ALPHA_SIZE,
+  pattern GL_RENDERBUFFER_BINDING,
+  pattern GL_RENDERBUFFER_BLUE_SIZE,
+  pattern GL_RENDERBUFFER_DEPTH_SIZE,
+  pattern GL_RENDERBUFFER_GREEN_SIZE,
+  pattern GL_RENDERBUFFER_HEIGHT,
+  pattern GL_RENDERBUFFER_INTERNAL_FORMAT,
+  pattern GL_RENDERBUFFER_RED_SIZE,
+  pattern GL_RENDERBUFFER_SAMPLES,
+  pattern GL_RENDERBUFFER_STENCIL_SIZE,
+  pattern GL_RENDERBUFFER_WIDTH,
+  pattern GL_STENCIL_ATTACHMENT,
+  pattern GL_STENCIL_INDEX1,
+  pattern GL_STENCIL_INDEX16,
+  pattern GL_STENCIL_INDEX4,
+  pattern GL_STENCIL_INDEX8,
+  pattern GL_TEXTURE_STENCIL_SIZE,
+  pattern GL_UNSIGNED_INT_24_8,
+  pattern GL_UNSIGNED_NORMALIZED,
+  -- * Functions
+  glBindFramebuffer,
+  glBindRenderbuffer,
+  glBlitFramebuffer,
+  glCheckFramebufferStatus,
+  glDeleteFramebuffers,
+  glDeleteRenderbuffers,
+  glFramebufferRenderbuffer,
+  glFramebufferTexture1D,
+  glFramebufferTexture2D,
+  glFramebufferTexture3D,
+  glFramebufferTextureLayer,
+  glGenFramebuffers,
+  glGenRenderbuffers,
+  glGenerateMipmap,
+  glGetFramebufferAttachmentParameteriv,
+  glGetRenderbufferParameteriv,
+  glIsFramebuffer,
+  glIsRenderbuffer,
+  glRenderbufferStorage,
+  glRenderbufferStorageMultisample
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/FramebufferSRGB.hs b/src/Graphics/GL/ARB/FramebufferSRGB.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/FramebufferSRGB.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.FramebufferSRGB
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.FramebufferSRGB (
+  -- * Extension Support
+  glGetARBFramebufferSRGB,
+  gl_ARB_framebuffer_sRGB,
+  -- * Enums
+  pattern GL_FRAMEBUFFER_SRGB
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/ARB/GPUShader5.hs b/src/Graphics/GL/ARB/GPUShader5.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/GPUShader5.hs
@@ -0,0 +1,28 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.GPUShader5
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.GPUShader5 (
+  -- * Extension Support
+  glGetARBGPUShader5,
+  gl_ARB_gpu_shader5,
+  -- * Enums
+  pattern GL_FRAGMENT_INTERPOLATION_OFFSET_BITS,
+  pattern GL_GEOMETRY_SHADER_INVOCATIONS,
+  pattern GL_MAX_FRAGMENT_INTERPOLATION_OFFSET,
+  pattern GL_MAX_GEOMETRY_SHADER_INVOCATIONS,
+  pattern GL_MAX_VERTEX_STREAMS,
+  pattern GL_MIN_FRAGMENT_INTERPOLATION_OFFSET
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/ARB/GPUShaderFP64.hs b/src/Graphics/GL/ARB/GPUShaderFP64.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/GPUShaderFP64.hs
@@ -0,0 +1,55 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.GPUShaderFP64
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.GPUShaderFP64 (
+  -- * Extension Support
+  glGetARBGPUShaderFP64,
+  gl_ARB_gpu_shader_fp64,
+  -- * Enums
+  pattern GL_DOUBLE,
+  pattern GL_DOUBLE_MAT2,
+  pattern GL_DOUBLE_MAT2x3,
+  pattern GL_DOUBLE_MAT2x4,
+  pattern GL_DOUBLE_MAT3,
+  pattern GL_DOUBLE_MAT3x2,
+  pattern GL_DOUBLE_MAT3x4,
+  pattern GL_DOUBLE_MAT4,
+  pattern GL_DOUBLE_MAT4x2,
+  pattern GL_DOUBLE_MAT4x3,
+  pattern GL_DOUBLE_VEC2,
+  pattern GL_DOUBLE_VEC3,
+  pattern GL_DOUBLE_VEC4,
+  -- * Functions
+  glGetUniformdv,
+  glUniform1d,
+  glUniform1dv,
+  glUniform2d,
+  glUniform2dv,
+  glUniform3d,
+  glUniform3dv,
+  glUniform4d,
+  glUniform4dv,
+  glUniformMatrix2dv,
+  glUniformMatrix2x3dv,
+  glUniformMatrix2x4dv,
+  glUniformMatrix3dv,
+  glUniformMatrix3x2dv,
+  glUniformMatrix3x4dv,
+  glUniformMatrix4dv,
+  glUniformMatrix4x2dv,
+  glUniformMatrix4x3dv
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/GPUShaderInt64.hs b/src/Graphics/GL/ARB/GPUShaderInt64.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/GPUShaderInt64.hs
@@ -0,0 +1,68 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.GPUShaderInt64
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.GPUShaderInt64 (
+  -- * Extension Support
+  glGetARBGPUShaderInt64,
+  gl_ARB_gpu_shader_int64,
+  -- * Enums
+  pattern GL_INT64_ARB,
+  pattern GL_INT64_VEC2_ARB,
+  pattern GL_INT64_VEC3_ARB,
+  pattern GL_INT64_VEC4_ARB,
+  pattern GL_UNSIGNED_INT64_ARB,
+  pattern GL_UNSIGNED_INT64_VEC2_ARB,
+  pattern GL_UNSIGNED_INT64_VEC3_ARB,
+  pattern GL_UNSIGNED_INT64_VEC4_ARB,
+  -- * Functions
+  glGetUniformi64vARB,
+  glGetUniformui64vARB,
+  glGetnUniformi64vARB,
+  glGetnUniformui64vARB,
+  glProgramUniform1i64ARB,
+  glProgramUniform1i64vARB,
+  glProgramUniform1ui64ARB,
+  glProgramUniform1ui64vARB,
+  glProgramUniform2i64ARB,
+  glProgramUniform2i64vARB,
+  glProgramUniform2ui64ARB,
+  glProgramUniform2ui64vARB,
+  glProgramUniform3i64ARB,
+  glProgramUniform3i64vARB,
+  glProgramUniform3ui64ARB,
+  glProgramUniform3ui64vARB,
+  glProgramUniform4i64ARB,
+  glProgramUniform4i64vARB,
+  glProgramUniform4ui64ARB,
+  glProgramUniform4ui64vARB,
+  glUniform1i64ARB,
+  glUniform1i64vARB,
+  glUniform1ui64ARB,
+  glUniform1ui64vARB,
+  glUniform2i64ARB,
+  glUniform2i64vARB,
+  glUniform2ui64ARB,
+  glUniform2ui64vARB,
+  glUniform3i64ARB,
+  glUniform3i64vARB,
+  glUniform3ui64ARB,
+  glUniform3ui64vARB,
+  glUniform4i64ARB,
+  glUniform4i64vARB,
+  glUniform4ui64ARB,
+  glUniform4ui64vARB
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/GeometryShader4.hs b/src/Graphics/GL/ARB/GeometryShader4.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/GeometryShader4.hs
@@ -0,0 +1,48 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.GeometryShader4
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.GeometryShader4 (
+  -- * Extension Support
+  glGetARBGeometryShader4,
+  gl_ARB_geometry_shader4,
+  -- * Enums
+  pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB,
+  pattern GL_GEOMETRY_INPUT_TYPE_ARB,
+  pattern GL_GEOMETRY_OUTPUT_TYPE_ARB,
+  pattern GL_GEOMETRY_SHADER_ARB,
+  pattern GL_GEOMETRY_VERTICES_OUT_ARB,
+  pattern GL_LINES_ADJACENCY_ARB,
+  pattern GL_LINE_STRIP_ADJACENCY_ARB,
+  pattern GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB,
+  pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB,
+  pattern GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB,
+  pattern GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB,
+  pattern GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB,
+  pattern GL_MAX_VARYING_COMPONENTS,
+  pattern GL_MAX_VERTEX_VARYING_COMPONENTS_ARB,
+  pattern GL_PROGRAM_POINT_SIZE_ARB,
+  pattern GL_TRIANGLES_ADJACENCY_ARB,
+  pattern GL_TRIANGLE_STRIP_ADJACENCY_ARB,
+  -- * Functions
+  glFramebufferTextureARB,
+  glFramebufferTextureFaceARB,
+  glFramebufferTextureLayerARB,
+  glProgramParameteriARB
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/GetProgramBinary.hs b/src/Graphics/GL/ARB/GetProgramBinary.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/GetProgramBinary.hs
@@ -0,0 +1,31 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.GetProgramBinary
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.GetProgramBinary (
+  -- * Extension Support
+  glGetARBGetProgramBinary,
+  gl_ARB_get_program_binary,
+  -- * Enums
+  pattern GL_NUM_PROGRAM_BINARY_FORMATS,
+  pattern GL_PROGRAM_BINARY_FORMATS,
+  pattern GL_PROGRAM_BINARY_LENGTH,
+  pattern GL_PROGRAM_BINARY_RETRIEVABLE_HINT,
+  -- * Functions
+  glGetProgramBinary,
+  glProgramBinary,
+  glProgramParameteri
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/GetTextureSubImage.hs b/src/Graphics/GL/ARB/GetTextureSubImage.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/GetTextureSubImage.hs
@@ -0,0 +1,23 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.GetTextureSubImage
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.GetTextureSubImage (
+  -- * Extension Support
+  glGetARBGetTextureSubImage,
+  gl_ARB_get_texture_sub_image,
+  -- * Functions
+  glGetCompressedTextureSubImage,
+  glGetTextureSubImage
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/GlSpirv.hs b/src/Graphics/GL/ARB/GlSpirv.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/GlSpirv.hs
@@ -0,0 +1,27 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.GlSpirv
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.GlSpirv (
+  -- * Extension Support
+  glGetARBGlSpirv,
+  gl_ARB_gl_spirv,
+  -- * Enums
+  pattern GL_SHADER_BINARY_FORMAT_SPIR_V_ARB,
+  pattern GL_SPIR_V_BINARY_ARB,
+  -- * Functions
+  glSpecializeShaderARB
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/HalfFloatPixel.hs b/src/Graphics/GL/ARB/HalfFloatPixel.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/HalfFloatPixel.hs
@@ -0,0 +1,26 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.HalfFloatPixel
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.HalfFloatPixel (
+  -- * Extension Support
+  glGetARBHalfFloatPixel,
+  gl_ARB_half_float_pixel,
+  -- * Types
+  GLhalfARB,
+  -- * Enums
+  pattern GL_HALF_FLOAT_ARB
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Types
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/ARB/HalfFloatVertex.hs b/src/Graphics/GL/ARB/HalfFloatVertex.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/HalfFloatVertex.hs
@@ -0,0 +1,26 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.HalfFloatVertex
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.HalfFloatVertex (
+  -- * Extension Support
+  glGetARBHalfFloatVertex,
+  gl_ARB_half_float_vertex,
+  -- * Types
+  GLhalf,
+  -- * Enums
+  pattern GL_HALF_FLOAT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Types
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/ARB/ImagingCompatibility.hs b/src/Graphics/GL/ARB/ImagingCompatibility.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/ImagingCompatibility.hs
@@ -0,0 +1,133 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.ImagingCompatibility
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.ImagingCompatibility (
+  -- * Extension Support
+  glGetARBImaging,
+  gl_ARB_imaging,
+  -- * Enums
+  pattern GL_BLEND_COLOR,
+  pattern GL_BLEND_EQUATION,
+  pattern GL_COLOR_MATRIX,
+  pattern GL_COLOR_MATRIX_STACK_DEPTH,
+  pattern GL_COLOR_TABLE,
+  pattern GL_COLOR_TABLE_ALPHA_SIZE,
+  pattern GL_COLOR_TABLE_BIAS,
+  pattern GL_COLOR_TABLE_BLUE_SIZE,
+  pattern GL_COLOR_TABLE_FORMAT,
+  pattern GL_COLOR_TABLE_GREEN_SIZE,
+  pattern GL_COLOR_TABLE_INTENSITY_SIZE,
+  pattern GL_COLOR_TABLE_LUMINANCE_SIZE,
+  pattern GL_COLOR_TABLE_RED_SIZE,
+  pattern GL_COLOR_TABLE_SCALE,
+  pattern GL_COLOR_TABLE_WIDTH,
+  pattern GL_CONSTANT_ALPHA,
+  pattern GL_CONSTANT_BORDER,
+  pattern GL_CONSTANT_COLOR,
+  pattern GL_CONVOLUTION_1D,
+  pattern GL_CONVOLUTION_2D,
+  pattern GL_CONVOLUTION_BORDER_COLOR,
+  pattern GL_CONVOLUTION_BORDER_MODE,
+  pattern GL_CONVOLUTION_FILTER_BIAS,
+  pattern GL_CONVOLUTION_FILTER_SCALE,
+  pattern GL_CONVOLUTION_FORMAT,
+  pattern GL_CONVOLUTION_HEIGHT,
+  pattern GL_CONVOLUTION_WIDTH,
+  pattern GL_FUNC_ADD,
+  pattern GL_FUNC_REVERSE_SUBTRACT,
+  pattern GL_FUNC_SUBTRACT,
+  pattern GL_HISTOGRAM,
+  pattern GL_HISTOGRAM_ALPHA_SIZE,
+  pattern GL_HISTOGRAM_BLUE_SIZE,
+  pattern GL_HISTOGRAM_FORMAT,
+  pattern GL_HISTOGRAM_GREEN_SIZE,
+  pattern GL_HISTOGRAM_LUMINANCE_SIZE,
+  pattern GL_HISTOGRAM_RED_SIZE,
+  pattern GL_HISTOGRAM_SINK,
+  pattern GL_HISTOGRAM_WIDTH,
+  pattern GL_MAX,
+  pattern GL_MAX_COLOR_MATRIX_STACK_DEPTH,
+  pattern GL_MAX_CONVOLUTION_HEIGHT,
+  pattern GL_MAX_CONVOLUTION_WIDTH,
+  pattern GL_MIN,
+  pattern GL_MINMAX,
+  pattern GL_MINMAX_FORMAT,
+  pattern GL_MINMAX_SINK,
+  pattern GL_ONE_MINUS_CONSTANT_ALPHA,
+  pattern GL_ONE_MINUS_CONSTANT_COLOR,
+  pattern GL_POST_COLOR_MATRIX_ALPHA_BIAS,
+  pattern GL_POST_COLOR_MATRIX_ALPHA_SCALE,
+  pattern GL_POST_COLOR_MATRIX_BLUE_BIAS,
+  pattern GL_POST_COLOR_MATRIX_BLUE_SCALE,
+  pattern GL_POST_COLOR_MATRIX_COLOR_TABLE,
+  pattern GL_POST_COLOR_MATRIX_GREEN_BIAS,
+  pattern GL_POST_COLOR_MATRIX_GREEN_SCALE,
+  pattern GL_POST_COLOR_MATRIX_RED_BIAS,
+  pattern GL_POST_COLOR_MATRIX_RED_SCALE,
+  pattern GL_POST_CONVOLUTION_ALPHA_BIAS,
+  pattern GL_POST_CONVOLUTION_ALPHA_SCALE,
+  pattern GL_POST_CONVOLUTION_BLUE_BIAS,
+  pattern GL_POST_CONVOLUTION_BLUE_SCALE,
+  pattern GL_POST_CONVOLUTION_COLOR_TABLE,
+  pattern GL_POST_CONVOLUTION_GREEN_BIAS,
+  pattern GL_POST_CONVOLUTION_GREEN_SCALE,
+  pattern GL_POST_CONVOLUTION_RED_BIAS,
+  pattern GL_POST_CONVOLUTION_RED_SCALE,
+  pattern GL_PROXY_COLOR_TABLE,
+  pattern GL_PROXY_HISTOGRAM,
+  pattern GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE,
+  pattern GL_PROXY_POST_CONVOLUTION_COLOR_TABLE,
+  pattern GL_REDUCE,
+  pattern GL_REPLICATE_BORDER,
+  pattern GL_SEPARABLE_2D,
+  pattern GL_TABLE_TOO_LARGE,
+  -- * Functions
+  glBlendColor,
+  glBlendEquation,
+  glColorSubTable,
+  glColorTable,
+  glColorTableParameterfv,
+  glColorTableParameteriv,
+  glConvolutionFilter1D,
+  glConvolutionFilter2D,
+  glConvolutionParameterf,
+  glConvolutionParameterfv,
+  glConvolutionParameteri,
+  glConvolutionParameteriv,
+  glCopyColorSubTable,
+  glCopyColorTable,
+  glCopyConvolutionFilter1D,
+  glCopyConvolutionFilter2D,
+  glGetColorTable,
+  glGetColorTableParameterfv,
+  glGetColorTableParameteriv,
+  glGetConvolutionFilter,
+  glGetConvolutionParameterfv,
+  glGetConvolutionParameteriv,
+  glGetHistogram,
+  glGetHistogramParameterfv,
+  glGetHistogramParameteriv,
+  glGetMinmax,
+  glGetMinmaxParameterfv,
+  glGetMinmaxParameteriv,
+  glGetSeparableFilter,
+  glHistogram,
+  glMinmax,
+  glResetHistogram,
+  glResetMinmax,
+  glSeparableFilter2D
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/ImagingCore.hs b/src/Graphics/GL/ARB/ImagingCore.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/ImagingCore.hs
@@ -0,0 +1,37 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.ImagingCore
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.ImagingCore (
+  -- * Extension Support
+  glGetARBImaging,
+  gl_ARB_imaging,
+  -- * Enums
+  pattern GL_BLEND_COLOR,
+  pattern GL_BLEND_EQUATION,
+  pattern GL_CONSTANT_ALPHA,
+  pattern GL_CONSTANT_COLOR,
+  pattern GL_FUNC_ADD,
+  pattern GL_FUNC_REVERSE_SUBTRACT,
+  pattern GL_FUNC_SUBTRACT,
+  pattern GL_MAX,
+  pattern GL_MIN,
+  pattern GL_ONE_MINUS_CONSTANT_ALPHA,
+  pattern GL_ONE_MINUS_CONSTANT_COLOR,
+  -- * Functions
+  glBlendColor,
+  glBlendEquation
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/IndirectParameters.hs b/src/Graphics/GL/ARB/IndirectParameters.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/IndirectParameters.hs
@@ -0,0 +1,28 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.IndirectParameters
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.IndirectParameters (
+  -- * Extension Support
+  glGetARBIndirectParameters,
+  gl_ARB_indirect_parameters,
+  -- * Enums
+  pattern GL_PARAMETER_BUFFER_ARB,
+  pattern GL_PARAMETER_BUFFER_BINDING_ARB,
+  -- * Functions
+  glMultiDrawArraysIndirectCountARB,
+  glMultiDrawElementsIndirectCountARB
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/InstancedArrays.hs b/src/Graphics/GL/ARB/InstancedArrays.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/InstancedArrays.hs
@@ -0,0 +1,26 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.InstancedArrays
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.InstancedArrays (
+  -- * Extension Support
+  glGetARBInstancedArrays,
+  gl_ARB_instanced_arrays,
+  -- * Enums
+  pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB,
+  -- * Functions
+  glVertexAttribDivisorARB
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/InternalformatQuery.hs b/src/Graphics/GL/ARB/InternalformatQuery.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/InternalformatQuery.hs
@@ -0,0 +1,26 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.InternalformatQuery
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.InternalformatQuery (
+  -- * Extension Support
+  glGetARBInternalformatQuery,
+  gl_ARB_internalformat_query,
+  -- * Enums
+  pattern GL_NUM_SAMPLE_COUNTS,
+  -- * Functions
+  glGetInternalformativ
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/InternalformatQuery2.hs b/src/Graphics/GL/ARB/InternalformatQuery2.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/InternalformatQuery2.hs
@@ -0,0 +1,159 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.InternalformatQuery2
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.InternalformatQuery2 (
+  -- * Extension Support
+  glGetARBInternalformatQuery2,
+  gl_ARB_internalformat_query2,
+  -- * Enums
+  pattern GL_AUTO_GENERATE_MIPMAP,
+  pattern GL_CAVEAT_SUPPORT,
+  pattern GL_CLEAR_BUFFER,
+  pattern GL_COLOR_COMPONENTS,
+  pattern GL_COLOR_ENCODING,
+  pattern GL_COLOR_RENDERABLE,
+  pattern GL_COMPUTE_TEXTURE,
+  pattern GL_DEPTH_COMPONENTS,
+  pattern GL_DEPTH_RENDERABLE,
+  pattern GL_FILTER,
+  pattern GL_FRAGMENT_TEXTURE,
+  pattern GL_FRAMEBUFFER_BLEND,
+  pattern GL_FRAMEBUFFER_RENDERABLE,
+  pattern GL_FRAMEBUFFER_RENDERABLE_LAYERED,
+  pattern GL_FULL_SUPPORT,
+  pattern GL_GEOMETRY_TEXTURE,
+  pattern GL_GET_TEXTURE_IMAGE_FORMAT,
+  pattern GL_GET_TEXTURE_IMAGE_TYPE,
+  pattern GL_IMAGE_CLASS_10_10_10_2,
+  pattern GL_IMAGE_CLASS_11_11_10,
+  pattern GL_IMAGE_CLASS_1_X_16,
+  pattern GL_IMAGE_CLASS_1_X_32,
+  pattern GL_IMAGE_CLASS_1_X_8,
+  pattern GL_IMAGE_CLASS_2_X_16,
+  pattern GL_IMAGE_CLASS_2_X_32,
+  pattern GL_IMAGE_CLASS_2_X_8,
+  pattern GL_IMAGE_CLASS_4_X_16,
+  pattern GL_IMAGE_CLASS_4_X_32,
+  pattern GL_IMAGE_CLASS_4_X_8,
+  pattern GL_IMAGE_COMPATIBILITY_CLASS,
+  pattern GL_IMAGE_FORMAT_COMPATIBILITY_TYPE,
+  pattern GL_IMAGE_PIXEL_FORMAT,
+  pattern GL_IMAGE_PIXEL_TYPE,
+  pattern GL_IMAGE_TEXEL_SIZE,
+  pattern GL_INTERNALFORMAT_ALPHA_SIZE,
+  pattern GL_INTERNALFORMAT_ALPHA_TYPE,
+  pattern GL_INTERNALFORMAT_BLUE_SIZE,
+  pattern GL_INTERNALFORMAT_BLUE_TYPE,
+  pattern GL_INTERNALFORMAT_DEPTH_SIZE,
+  pattern GL_INTERNALFORMAT_DEPTH_TYPE,
+  pattern GL_INTERNALFORMAT_GREEN_SIZE,
+  pattern GL_INTERNALFORMAT_GREEN_TYPE,
+  pattern GL_INTERNALFORMAT_PREFERRED,
+  pattern GL_INTERNALFORMAT_RED_SIZE,
+  pattern GL_INTERNALFORMAT_RED_TYPE,
+  pattern GL_INTERNALFORMAT_SHARED_SIZE,
+  pattern GL_INTERNALFORMAT_STENCIL_SIZE,
+  pattern GL_INTERNALFORMAT_STENCIL_TYPE,
+  pattern GL_INTERNALFORMAT_SUPPORTED,
+  pattern GL_MANUAL_GENERATE_MIPMAP,
+  pattern GL_MAX_COMBINED_DIMENSIONS,
+  pattern GL_MAX_DEPTH,
+  pattern GL_MAX_HEIGHT,
+  pattern GL_MAX_LAYERS,
+  pattern GL_MAX_WIDTH,
+  pattern GL_MIPMAP,
+  pattern GL_NUM_SAMPLE_COUNTS,
+  pattern GL_READ_PIXELS,
+  pattern GL_READ_PIXELS_FORMAT,
+  pattern GL_READ_PIXELS_TYPE,
+  pattern GL_RENDERBUFFER,
+  pattern GL_SAMPLES,
+  pattern GL_SHADER_IMAGE_ATOMIC,
+  pattern GL_SHADER_IMAGE_LOAD,
+  pattern GL_SHADER_IMAGE_STORE,
+  pattern GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST,
+  pattern GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE,
+  pattern GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST,
+  pattern GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE,
+  pattern GL_SRGB_DECODE_ARB,
+  pattern GL_SRGB_READ,
+  pattern GL_SRGB_WRITE,
+  pattern GL_STENCIL_COMPONENTS,
+  pattern GL_STENCIL_RENDERABLE,
+  pattern GL_TESS_CONTROL_TEXTURE,
+  pattern GL_TESS_EVALUATION_TEXTURE,
+  pattern GL_TEXTURE_1D,
+  pattern GL_TEXTURE_1D_ARRAY,
+  pattern GL_TEXTURE_2D,
+  pattern GL_TEXTURE_2D_ARRAY,
+  pattern GL_TEXTURE_2D_MULTISAMPLE,
+  pattern GL_TEXTURE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_TEXTURE_3D,
+  pattern GL_TEXTURE_BUFFER,
+  pattern GL_TEXTURE_COMPRESSED,
+  pattern GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT,
+  pattern GL_TEXTURE_COMPRESSED_BLOCK_SIZE,
+  pattern GL_TEXTURE_COMPRESSED_BLOCK_WIDTH,
+  pattern GL_TEXTURE_CUBE_MAP,
+  pattern GL_TEXTURE_CUBE_MAP_ARRAY,
+  pattern GL_TEXTURE_GATHER,
+  pattern GL_TEXTURE_GATHER_SHADOW,
+  pattern GL_TEXTURE_IMAGE_FORMAT,
+  pattern GL_TEXTURE_IMAGE_TYPE,
+  pattern GL_TEXTURE_RECTANGLE,
+  pattern GL_TEXTURE_SHADOW,
+  pattern GL_TEXTURE_VIEW,
+  pattern GL_VERTEX_TEXTURE,
+  pattern GL_VIEW_CLASS_128_BITS,
+  pattern GL_VIEW_CLASS_16_BITS,
+  pattern GL_VIEW_CLASS_24_BITS,
+  pattern GL_VIEW_CLASS_32_BITS,
+  pattern GL_VIEW_CLASS_48_BITS,
+  pattern GL_VIEW_CLASS_64_BITS,
+  pattern GL_VIEW_CLASS_8_BITS,
+  pattern GL_VIEW_CLASS_96_BITS,
+  pattern GL_VIEW_CLASS_ASTC_10x10_RGBA,
+  pattern GL_VIEW_CLASS_ASTC_10x5_RGBA,
+  pattern GL_VIEW_CLASS_ASTC_10x6_RGBA,
+  pattern GL_VIEW_CLASS_ASTC_10x8_RGBA,
+  pattern GL_VIEW_CLASS_ASTC_12x10_RGBA,
+  pattern GL_VIEW_CLASS_ASTC_12x12_RGBA,
+  pattern GL_VIEW_CLASS_ASTC_4x4_RGBA,
+  pattern GL_VIEW_CLASS_ASTC_5x4_RGBA,
+  pattern GL_VIEW_CLASS_ASTC_5x5_RGBA,
+  pattern GL_VIEW_CLASS_ASTC_6x5_RGBA,
+  pattern GL_VIEW_CLASS_ASTC_6x6_RGBA,
+  pattern GL_VIEW_CLASS_ASTC_8x5_RGBA,
+  pattern GL_VIEW_CLASS_ASTC_8x6_RGBA,
+  pattern GL_VIEW_CLASS_ASTC_8x8_RGBA,
+  pattern GL_VIEW_CLASS_BPTC_FLOAT,
+  pattern GL_VIEW_CLASS_BPTC_UNORM,
+  pattern GL_VIEW_CLASS_EAC_R11,
+  pattern GL_VIEW_CLASS_EAC_RG11,
+  pattern GL_VIEW_CLASS_ETC2_EAC_RGBA,
+  pattern GL_VIEW_CLASS_ETC2_RGB,
+  pattern GL_VIEW_CLASS_ETC2_RGBA,
+  pattern GL_VIEW_CLASS_RGTC1_RED,
+  pattern GL_VIEW_CLASS_RGTC2_RG,
+  pattern GL_VIEW_CLASS_S3TC_DXT1_RGB,
+  pattern GL_VIEW_CLASS_S3TC_DXT1_RGBA,
+  pattern GL_VIEW_CLASS_S3TC_DXT3_RGBA,
+  pattern GL_VIEW_CLASS_S3TC_DXT5_RGBA,
+  pattern GL_VIEW_COMPATIBILITY_CLASS,
+  -- * Functions
+  glGetInternalformati64v
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/InvalidateSubdata.hs b/src/Graphics/GL/ARB/InvalidateSubdata.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/InvalidateSubdata.hs
@@ -0,0 +1,27 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.InvalidateSubdata
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.InvalidateSubdata (
+  -- * Extension Support
+  glGetARBInvalidateSubdata,
+  gl_ARB_invalidate_subdata,
+  -- * Functions
+  glInvalidateBufferData,
+  glInvalidateBufferSubData,
+  glInvalidateFramebuffer,
+  glInvalidateSubFramebuffer,
+  glInvalidateTexImage,
+  glInvalidateTexSubImage
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/MapBufferAlignment.hs b/src/Graphics/GL/ARB/MapBufferAlignment.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/MapBufferAlignment.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.MapBufferAlignment
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.MapBufferAlignment (
+  -- * Extension Support
+  glGetARBMapBufferAlignment,
+  gl_ARB_map_buffer_alignment,
+  -- * Enums
+  pattern GL_MIN_MAP_BUFFER_ALIGNMENT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/ARB/MapBufferRange.hs b/src/Graphics/GL/ARB/MapBufferRange.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/MapBufferRange.hs
@@ -0,0 +1,32 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.MapBufferRange
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.MapBufferRange (
+  -- * Extension Support
+  glGetARBMapBufferRange,
+  gl_ARB_map_buffer_range,
+  -- * Enums
+  pattern GL_MAP_FLUSH_EXPLICIT_BIT,
+  pattern GL_MAP_INVALIDATE_BUFFER_BIT,
+  pattern GL_MAP_INVALIDATE_RANGE_BIT,
+  pattern GL_MAP_READ_BIT,
+  pattern GL_MAP_UNSYNCHRONIZED_BIT,
+  pattern GL_MAP_WRITE_BIT,
+  -- * Functions
+  glFlushMappedBufferRange,
+  glMapBufferRange
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/MatrixPalette.hs b/src/Graphics/GL/ARB/MatrixPalette.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/MatrixPalette.hs
@@ -0,0 +1,39 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.MatrixPalette
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.MatrixPalette (
+  -- * Extension Support
+  glGetARBMatrixPalette,
+  gl_ARB_matrix_palette,
+  -- * Enums
+  pattern GL_CURRENT_MATRIX_INDEX_ARB,
+  pattern GL_CURRENT_PALETTE_MATRIX_ARB,
+  pattern GL_MATRIX_INDEX_ARRAY_ARB,
+  pattern GL_MATRIX_INDEX_ARRAY_POINTER_ARB,
+  pattern GL_MATRIX_INDEX_ARRAY_SIZE_ARB,
+  pattern GL_MATRIX_INDEX_ARRAY_STRIDE_ARB,
+  pattern GL_MATRIX_INDEX_ARRAY_TYPE_ARB,
+  pattern GL_MATRIX_PALETTE_ARB,
+  pattern GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB,
+  pattern GL_MAX_PALETTE_MATRICES_ARB,
+  -- * Functions
+  glCurrentPaletteMatrixARB,
+  glMatrixIndexPointerARB,
+  glMatrixIndexubvARB,
+  glMatrixIndexuivARB,
+  glMatrixIndexusvARB
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/MultiBind.hs b/src/Graphics/GL/ARB/MultiBind.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/MultiBind.hs
@@ -0,0 +1,27 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.MultiBind
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.MultiBind (
+  -- * Extension Support
+  glGetARBMultiBind,
+  gl_ARB_multi_bind,
+  -- * Functions
+  glBindBuffersBase,
+  glBindBuffersRange,
+  glBindImageTextures,
+  glBindSamplers,
+  glBindTextures,
+  glBindVertexBuffers
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/MultiDrawIndirect.hs b/src/Graphics/GL/ARB/MultiDrawIndirect.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/MultiDrawIndirect.hs
@@ -0,0 +1,23 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.MultiDrawIndirect
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.MultiDrawIndirect (
+  -- * Extension Support
+  glGetARBMultiDrawIndirect,
+  gl_ARB_multi_draw_indirect,
+  -- * Functions
+  glMultiDrawArraysIndirect,
+  glMultiDrawElementsIndirect
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/Multisample.hs b/src/Graphics/GL/ARB/Multisample.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/Multisample.hs
@@ -0,0 +1,34 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.Multisample
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.Multisample (
+  -- * Extension Support
+  glGetARBMultisample,
+  gl_ARB_multisample,
+  -- * Enums
+  pattern GL_MULTISAMPLE_ARB,
+  pattern GL_MULTISAMPLE_BIT_ARB,
+  pattern GL_SAMPLES_ARB,
+  pattern GL_SAMPLE_ALPHA_TO_COVERAGE_ARB,
+  pattern GL_SAMPLE_ALPHA_TO_ONE_ARB,
+  pattern GL_SAMPLE_BUFFERS_ARB,
+  pattern GL_SAMPLE_COVERAGE_ARB,
+  pattern GL_SAMPLE_COVERAGE_INVERT_ARB,
+  pattern GL_SAMPLE_COVERAGE_VALUE_ARB,
+  -- * Functions
+  glSampleCoverageARB
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/Multitexture.hs b/src/Graphics/GL/ARB/Multitexture.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/Multitexture.hs
@@ -0,0 +1,93 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.Multitexture
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.Multitexture (
+  -- * Extension Support
+  glGetARBMultitexture,
+  gl_ARB_multitexture,
+  -- * Enums
+  pattern GL_ACTIVE_TEXTURE_ARB,
+  pattern GL_CLIENT_ACTIVE_TEXTURE_ARB,
+  pattern GL_MAX_TEXTURE_UNITS_ARB,
+  pattern GL_TEXTURE0_ARB,
+  pattern GL_TEXTURE10_ARB,
+  pattern GL_TEXTURE11_ARB,
+  pattern GL_TEXTURE12_ARB,
+  pattern GL_TEXTURE13_ARB,
+  pattern GL_TEXTURE14_ARB,
+  pattern GL_TEXTURE15_ARB,
+  pattern GL_TEXTURE16_ARB,
+  pattern GL_TEXTURE17_ARB,
+  pattern GL_TEXTURE18_ARB,
+  pattern GL_TEXTURE19_ARB,
+  pattern GL_TEXTURE1_ARB,
+  pattern GL_TEXTURE20_ARB,
+  pattern GL_TEXTURE21_ARB,
+  pattern GL_TEXTURE22_ARB,
+  pattern GL_TEXTURE23_ARB,
+  pattern GL_TEXTURE24_ARB,
+  pattern GL_TEXTURE25_ARB,
+  pattern GL_TEXTURE26_ARB,
+  pattern GL_TEXTURE27_ARB,
+  pattern GL_TEXTURE28_ARB,
+  pattern GL_TEXTURE29_ARB,
+  pattern GL_TEXTURE2_ARB,
+  pattern GL_TEXTURE30_ARB,
+  pattern GL_TEXTURE31_ARB,
+  pattern GL_TEXTURE3_ARB,
+  pattern GL_TEXTURE4_ARB,
+  pattern GL_TEXTURE5_ARB,
+  pattern GL_TEXTURE6_ARB,
+  pattern GL_TEXTURE7_ARB,
+  pattern GL_TEXTURE8_ARB,
+  pattern GL_TEXTURE9_ARB,
+  -- * Functions
+  glActiveTextureARB,
+  glClientActiveTextureARB,
+  glMultiTexCoord1dARB,
+  glMultiTexCoord1dvARB,
+  glMultiTexCoord1fARB,
+  glMultiTexCoord1fvARB,
+  glMultiTexCoord1iARB,
+  glMultiTexCoord1ivARB,
+  glMultiTexCoord1sARB,
+  glMultiTexCoord1svARB,
+  glMultiTexCoord2dARB,
+  glMultiTexCoord2dvARB,
+  glMultiTexCoord2fARB,
+  glMultiTexCoord2fvARB,
+  glMultiTexCoord2iARB,
+  glMultiTexCoord2ivARB,
+  glMultiTexCoord2sARB,
+  glMultiTexCoord2svARB,
+  glMultiTexCoord3dARB,
+  glMultiTexCoord3dvARB,
+  glMultiTexCoord3fARB,
+  glMultiTexCoord3fvARB,
+  glMultiTexCoord3iARB,
+  glMultiTexCoord3ivARB,
+  glMultiTexCoord3sARB,
+  glMultiTexCoord3svARB,
+  glMultiTexCoord4dARB,
+  glMultiTexCoord4dvARB,
+  glMultiTexCoord4fARB,
+  glMultiTexCoord4fvARB,
+  glMultiTexCoord4iARB,
+  glMultiTexCoord4ivARB,
+  glMultiTexCoord4sARB,
+  glMultiTexCoord4svARB
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/OcclusionQuery.hs b/src/Graphics/GL/ARB/OcclusionQuery.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/OcclusionQuery.hs
@@ -0,0 +1,37 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.OcclusionQuery
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.OcclusionQuery (
+  -- * Extension Support
+  glGetARBOcclusionQuery,
+  gl_ARB_occlusion_query,
+  -- * Enums
+  pattern GL_CURRENT_QUERY_ARB,
+  pattern GL_QUERY_COUNTER_BITS_ARB,
+  pattern GL_QUERY_RESULT_ARB,
+  pattern GL_QUERY_RESULT_AVAILABLE_ARB,
+  pattern GL_SAMPLES_PASSED_ARB,
+  -- * Functions
+  glBeginQueryARB,
+  glDeleteQueriesARB,
+  glEndQueryARB,
+  glGenQueriesARB,
+  glGetQueryObjectivARB,
+  glGetQueryObjectuivARB,
+  glGetQueryivARB,
+  glIsQueryARB
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/OcclusionQuery2.hs b/src/Graphics/GL/ARB/OcclusionQuery2.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/OcclusionQuery2.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.OcclusionQuery2
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.OcclusionQuery2 (
+  -- * Extension Support
+  glGetARBOcclusionQuery2,
+  gl_ARB_occlusion_query2,
+  -- * Enums
+  pattern GL_ANY_SAMPLES_PASSED
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/ARB/ParallelShaderCompile.hs b/src/Graphics/GL/ARB/ParallelShaderCompile.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/ParallelShaderCompile.hs
@@ -0,0 +1,27 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.ParallelShaderCompile
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.ParallelShaderCompile (
+  -- * Extension Support
+  glGetARBParallelShaderCompile,
+  gl_ARB_parallel_shader_compile,
+  -- * Enums
+  pattern GL_COMPLETION_STATUS_ARB,
+  pattern GL_MAX_SHADER_COMPILER_THREADS_ARB,
+  -- * Functions
+  glMaxShaderCompilerThreadsARB
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/PipelineStatisticsQuery.hs b/src/Graphics/GL/ARB/PipelineStatisticsQuery.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/PipelineStatisticsQuery.hs
@@ -0,0 +1,33 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.PipelineStatisticsQuery
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.PipelineStatisticsQuery (
+  -- * Extension Support
+  glGetARBPipelineStatisticsQuery,
+  gl_ARB_pipeline_statistics_query,
+  -- * Enums
+  pattern GL_CLIPPING_INPUT_PRIMITIVES_ARB,
+  pattern GL_CLIPPING_OUTPUT_PRIMITIVES_ARB,
+  pattern GL_COMPUTE_SHADER_INVOCATIONS_ARB,
+  pattern GL_FRAGMENT_SHADER_INVOCATIONS_ARB,
+  pattern GL_GEOMETRY_SHADER_INVOCATIONS,
+  pattern GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB,
+  pattern GL_PRIMITIVES_SUBMITTED_ARB,
+  pattern GL_TESS_CONTROL_SHADER_PATCHES_ARB,
+  pattern GL_TESS_EVALUATION_SHADER_INVOCATIONS_ARB,
+  pattern GL_VERTEX_SHADER_INVOCATIONS_ARB,
+  pattern GL_VERTICES_SUBMITTED_ARB
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/ARB/PixelBufferObject.hs b/src/Graphics/GL/ARB/PixelBufferObject.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/PixelBufferObject.hs
@@ -0,0 +1,26 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.PixelBufferObject
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.PixelBufferObject (
+  -- * Extension Support
+  glGetARBPixelBufferObject,
+  gl_ARB_pixel_buffer_object,
+  -- * Enums
+  pattern GL_PIXEL_PACK_BUFFER_ARB,
+  pattern GL_PIXEL_PACK_BUFFER_BINDING_ARB,
+  pattern GL_PIXEL_UNPACK_BUFFER_ARB,
+  pattern GL_PIXEL_UNPACK_BUFFER_BINDING_ARB
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/ARB/PointParameters.hs b/src/Graphics/GL/ARB/PointParameters.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/PointParameters.hs
@@ -0,0 +1,30 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.PointParameters
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.PointParameters (
+  -- * Extension Support
+  glGetARBPointParameters,
+  gl_ARB_point_parameters,
+  -- * Enums
+  pattern GL_POINT_DISTANCE_ATTENUATION_ARB,
+  pattern GL_POINT_FADE_THRESHOLD_SIZE_ARB,
+  pattern GL_POINT_SIZE_MAX_ARB,
+  pattern GL_POINT_SIZE_MIN_ARB,
+  -- * Functions
+  glPointParameterfARB,
+  glPointParameterfvARB
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/PointSprite.hs b/src/Graphics/GL/ARB/PointSprite.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/PointSprite.hs
@@ -0,0 +1,24 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.PointSprite
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.PointSprite (
+  -- * Extension Support
+  glGetARBPointSprite,
+  gl_ARB_point_sprite,
+  -- * Enums
+  pattern GL_COORD_REPLACE_ARB,
+  pattern GL_POINT_SPRITE_ARB
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/ARB/PolygonOffsetClamp.hs b/src/Graphics/GL/ARB/PolygonOffsetClamp.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/PolygonOffsetClamp.hs
@@ -0,0 +1,26 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.PolygonOffsetClamp
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.PolygonOffsetClamp (
+  -- * Extension Support
+  glGetARBPolygonOffsetClamp,
+  gl_ARB_polygon_offset_clamp,
+  -- * Enums
+  pattern GL_POLYGON_OFFSET_CLAMP,
+  -- * Functions
+  glPolygonOffsetClamp
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/ProgramInterfaceQuery.hs b/src/Graphics/GL/ARB/ProgramInterfaceQuery.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/ProgramInterfaceQuery.hs
@@ -0,0 +1,80 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.ProgramInterfaceQuery
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.ProgramInterfaceQuery (
+  -- * Extension Support
+  glGetARBProgramInterfaceQuery,
+  gl_ARB_program_interface_query,
+  -- * Enums
+  pattern GL_ACTIVE_RESOURCES,
+  pattern GL_ACTIVE_VARIABLES,
+  pattern GL_ARRAY_SIZE,
+  pattern GL_ARRAY_STRIDE,
+  pattern GL_ATOMIC_COUNTER_BUFFER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_INDEX,
+  pattern GL_BLOCK_INDEX,
+  pattern GL_BUFFER_BINDING,
+  pattern GL_BUFFER_DATA_SIZE,
+  pattern GL_BUFFER_VARIABLE,
+  pattern GL_COMPATIBLE_SUBROUTINES,
+  pattern GL_COMPUTE_SUBROUTINE,
+  pattern GL_COMPUTE_SUBROUTINE_UNIFORM,
+  pattern GL_FRAGMENT_SUBROUTINE,
+  pattern GL_FRAGMENT_SUBROUTINE_UNIFORM,
+  pattern GL_GEOMETRY_SUBROUTINE,
+  pattern GL_GEOMETRY_SUBROUTINE_UNIFORM,
+  pattern GL_IS_PER_PATCH,
+  pattern GL_IS_ROW_MAJOR,
+  pattern GL_LOCATION,
+  pattern GL_LOCATION_INDEX,
+  pattern GL_MATRIX_STRIDE,
+  pattern GL_MAX_NAME_LENGTH,
+  pattern GL_MAX_NUM_ACTIVE_VARIABLES,
+  pattern GL_MAX_NUM_COMPATIBLE_SUBROUTINES,
+  pattern GL_NAME_LENGTH,
+  pattern GL_NUM_ACTIVE_VARIABLES,
+  pattern GL_NUM_COMPATIBLE_SUBROUTINES,
+  pattern GL_OFFSET,
+  pattern GL_PROGRAM_INPUT,
+  pattern GL_PROGRAM_OUTPUT,
+  pattern GL_REFERENCED_BY_COMPUTE_SHADER,
+  pattern GL_REFERENCED_BY_FRAGMENT_SHADER,
+  pattern GL_REFERENCED_BY_GEOMETRY_SHADER,
+  pattern GL_REFERENCED_BY_TESS_CONTROL_SHADER,
+  pattern GL_REFERENCED_BY_TESS_EVALUATION_SHADER,
+  pattern GL_REFERENCED_BY_VERTEX_SHADER,
+  pattern GL_SHADER_STORAGE_BLOCK,
+  pattern GL_TESS_CONTROL_SUBROUTINE,
+  pattern GL_TESS_CONTROL_SUBROUTINE_UNIFORM,
+  pattern GL_TESS_EVALUATION_SUBROUTINE,
+  pattern GL_TESS_EVALUATION_SUBROUTINE_UNIFORM,
+  pattern GL_TOP_LEVEL_ARRAY_SIZE,
+  pattern GL_TOP_LEVEL_ARRAY_STRIDE,
+  pattern GL_TRANSFORM_FEEDBACK_VARYING,
+  pattern GL_TYPE,
+  pattern GL_UNIFORM,
+  pattern GL_UNIFORM_BLOCK,
+  pattern GL_VERTEX_SUBROUTINE,
+  pattern GL_VERTEX_SUBROUTINE_UNIFORM,
+  -- * Functions
+  glGetProgramInterfaceiv,
+  glGetProgramResourceIndex,
+  glGetProgramResourceLocation,
+  glGetProgramResourceLocationIndex,
+  glGetProgramResourceName,
+  glGetProgramResourceiv
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/ProvokingVertex.hs b/src/Graphics/GL/ARB/ProvokingVertex.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/ProvokingVertex.hs
@@ -0,0 +1,29 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.ProvokingVertex
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.ProvokingVertex (
+  -- * Extension Support
+  glGetARBProvokingVertex,
+  gl_ARB_provoking_vertex,
+  -- * Enums
+  pattern GL_FIRST_VERTEX_CONVENTION,
+  pattern GL_LAST_VERTEX_CONVENTION,
+  pattern GL_PROVOKING_VERTEX,
+  pattern GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION,
+  -- * Functions
+  glProvokingVertex
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/QueryBufferObject.hs b/src/Graphics/GL/ARB/QueryBufferObject.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/QueryBufferObject.hs
@@ -0,0 +1,26 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.QueryBufferObject
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.QueryBufferObject (
+  -- * Extension Support
+  glGetARBQueryBufferObject,
+  gl_ARB_query_buffer_object,
+  -- * Enums
+  pattern GL_QUERY_BUFFER,
+  pattern GL_QUERY_BUFFER_BARRIER_BIT,
+  pattern GL_QUERY_BUFFER_BINDING,
+  pattern GL_QUERY_RESULT_NO_WAIT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/ARB/RobustnessCompatibility.hs b/src/Graphics/GL/ARB/RobustnessCompatibility.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/RobustnessCompatibility.hs
@@ -0,0 +1,52 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.RobustnessCompatibility
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.RobustnessCompatibility (
+  -- * Extension Support
+  glGetARBRobustness,
+  gl_ARB_robustness,
+  -- * Enums
+  pattern GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB,
+  pattern GL_GUILTY_CONTEXT_RESET_ARB,
+  pattern GL_INNOCENT_CONTEXT_RESET_ARB,
+  pattern GL_LOSE_CONTEXT_ON_RESET_ARB,
+  pattern GL_NO_ERROR,
+  pattern GL_NO_RESET_NOTIFICATION_ARB,
+  pattern GL_RESET_NOTIFICATION_STRATEGY_ARB,
+  pattern GL_UNKNOWN_CONTEXT_RESET_ARB,
+  -- * Functions
+  glGetGraphicsResetStatusARB,
+  glGetnColorTableARB,
+  glGetnCompressedTexImageARB,
+  glGetnConvolutionFilterARB,
+  glGetnHistogramARB,
+  glGetnMapdvARB,
+  glGetnMapfvARB,
+  glGetnMapivARB,
+  glGetnMinmaxARB,
+  glGetnPixelMapfvARB,
+  glGetnPixelMapuivARB,
+  glGetnPixelMapusvARB,
+  glGetnPolygonStippleARB,
+  glGetnSeparableFilterARB,
+  glGetnTexImageARB,
+  glGetnUniformdvARB,
+  glGetnUniformfvARB,
+  glGetnUniformivARB,
+  glGetnUniformuivARB,
+  glReadnPixelsARB
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/RobustnessCore.hs b/src/Graphics/GL/ARB/RobustnessCore.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/RobustnessCore.hs
@@ -0,0 +1,40 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.RobustnessCore
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.RobustnessCore (
+  -- * Extension Support
+  glGetARBRobustness,
+  gl_ARB_robustness,
+  -- * Enums
+  pattern GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB,
+  pattern GL_GUILTY_CONTEXT_RESET_ARB,
+  pattern GL_INNOCENT_CONTEXT_RESET_ARB,
+  pattern GL_LOSE_CONTEXT_ON_RESET_ARB,
+  pattern GL_NO_ERROR,
+  pattern GL_NO_RESET_NOTIFICATION_ARB,
+  pattern GL_RESET_NOTIFICATION_STRATEGY_ARB,
+  pattern GL_UNKNOWN_CONTEXT_RESET_ARB,
+  -- * Functions
+  glGetGraphicsResetStatusARB,
+  glGetnCompressedTexImageARB,
+  glGetnTexImageARB,
+  glGetnUniformdvARB,
+  glGetnUniformfvARB,
+  glGetnUniformivARB,
+  glGetnUniformuivARB,
+  glReadnPixelsARB
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/SampleLocations.hs b/src/Graphics/GL/ARB/SampleLocations.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/SampleLocations.hs
@@ -0,0 +1,35 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.SampleLocations
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.SampleLocations (
+  -- * Extension Support
+  glGetARBSampleLocations,
+  gl_ARB_sample_locations,
+  -- * Enums
+  pattern GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_ARB,
+  pattern GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_ARB,
+  pattern GL_PROGRAMMABLE_SAMPLE_LOCATION_ARB,
+  pattern GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_ARB,
+  pattern GL_SAMPLE_LOCATION_ARB,
+  pattern GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_ARB,
+  pattern GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_ARB,
+  pattern GL_SAMPLE_LOCATION_SUBPIXEL_BITS_ARB,
+  -- * Functions
+  glEvaluateDepthValuesARB,
+  glFramebufferSampleLocationsfvARB,
+  glNamedFramebufferSampleLocationsfvARB
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/SampleShading.hs b/src/Graphics/GL/ARB/SampleShading.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/SampleShading.hs
@@ -0,0 +1,27 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.SampleShading
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.SampleShading (
+  -- * Extension Support
+  glGetARBSampleShading,
+  gl_ARB_sample_shading,
+  -- * Enums
+  pattern GL_MIN_SAMPLE_SHADING_VALUE_ARB,
+  pattern GL_SAMPLE_SHADING_ARB,
+  -- * Functions
+  glMinSampleShadingARB
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/SamplerObjects.hs b/src/Graphics/GL/ARB/SamplerObjects.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/SamplerObjects.hs
@@ -0,0 +1,39 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.SamplerObjects
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.SamplerObjects (
+  -- * Extension Support
+  glGetARBSamplerObjects,
+  gl_ARB_sampler_objects,
+  -- * Enums
+  pattern GL_SAMPLER_BINDING,
+  -- * Functions
+  glBindSampler,
+  glDeleteSamplers,
+  glGenSamplers,
+  glGetSamplerParameterIiv,
+  glGetSamplerParameterIuiv,
+  glGetSamplerParameterfv,
+  glGetSamplerParameteriv,
+  glIsSampler,
+  glSamplerParameterIiv,
+  glSamplerParameterIuiv,
+  glSamplerParameterf,
+  glSamplerParameterfv,
+  glSamplerParameteri,
+  glSamplerParameteriv
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/SeamlessCubeMap.hs b/src/Graphics/GL/ARB/SeamlessCubeMap.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/SeamlessCubeMap.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.SeamlessCubeMap
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.SeamlessCubeMap (
+  -- * Extension Support
+  glGetARBSeamlessCubeMap,
+  gl_ARB_seamless_cube_map,
+  -- * Enums
+  pattern GL_TEXTURE_CUBE_MAP_SEAMLESS
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/ARB/SeamlessCubemapPerTexture.hs b/src/Graphics/GL/ARB/SeamlessCubemapPerTexture.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/SeamlessCubemapPerTexture.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.SeamlessCubemapPerTexture
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.SeamlessCubemapPerTexture (
+  -- * Extension Support
+  glGetARBSeamlessCubemapPerTexture,
+  gl_ARB_seamless_cubemap_per_texture,
+  -- * Enums
+  pattern GL_TEXTURE_CUBE_MAP_SEAMLESS
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/ARB/SeparateShaderObjects.hs b/src/Graphics/GL/ARB/SeparateShaderObjects.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/SeparateShaderObjects.hs
@@ -0,0 +1,94 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.SeparateShaderObjects
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.SeparateShaderObjects (
+  -- * Extension Support
+  glGetARBSeparateShaderObjects,
+  gl_ARB_separate_shader_objects,
+  -- * Enums
+  pattern GL_ACTIVE_PROGRAM,
+  pattern GL_ALL_SHADER_BITS,
+  pattern GL_FRAGMENT_SHADER_BIT,
+  pattern GL_GEOMETRY_SHADER_BIT,
+  pattern GL_PROGRAM_PIPELINE_BINDING,
+  pattern GL_PROGRAM_SEPARABLE,
+  pattern GL_TESS_CONTROL_SHADER_BIT,
+  pattern GL_TESS_EVALUATION_SHADER_BIT,
+  pattern GL_VERTEX_SHADER_BIT,
+  -- * Functions
+  glActiveShaderProgram,
+  glBindProgramPipeline,
+  glCreateShaderProgramv,
+  glDeleteProgramPipelines,
+  glGenProgramPipelines,
+  glGetProgramPipelineInfoLog,
+  glGetProgramPipelineiv,
+  glIsProgramPipeline,
+  glProgramParameteri,
+  glProgramUniform1d,
+  glProgramUniform1dv,
+  glProgramUniform1f,
+  glProgramUniform1fv,
+  glProgramUniform1i,
+  glProgramUniform1iv,
+  glProgramUniform1ui,
+  glProgramUniform1uiv,
+  glProgramUniform2d,
+  glProgramUniform2dv,
+  glProgramUniform2f,
+  glProgramUniform2fv,
+  glProgramUniform2i,
+  glProgramUniform2iv,
+  glProgramUniform2ui,
+  glProgramUniform2uiv,
+  glProgramUniform3d,
+  glProgramUniform3dv,
+  glProgramUniform3f,
+  glProgramUniform3fv,
+  glProgramUniform3i,
+  glProgramUniform3iv,
+  glProgramUniform3ui,
+  glProgramUniform3uiv,
+  glProgramUniform4d,
+  glProgramUniform4dv,
+  glProgramUniform4f,
+  glProgramUniform4fv,
+  glProgramUniform4i,
+  glProgramUniform4iv,
+  glProgramUniform4ui,
+  glProgramUniform4uiv,
+  glProgramUniformMatrix2dv,
+  glProgramUniformMatrix2fv,
+  glProgramUniformMatrix2x3dv,
+  glProgramUniformMatrix2x3fv,
+  glProgramUniformMatrix2x4dv,
+  glProgramUniformMatrix2x4fv,
+  glProgramUniformMatrix3dv,
+  glProgramUniformMatrix3fv,
+  glProgramUniformMatrix3x2dv,
+  glProgramUniformMatrix3x2fv,
+  glProgramUniformMatrix3x4dv,
+  glProgramUniformMatrix3x4fv,
+  glProgramUniformMatrix4dv,
+  glProgramUniformMatrix4fv,
+  glProgramUniformMatrix4x2dv,
+  glProgramUniformMatrix4x2fv,
+  glProgramUniformMatrix4x3dv,
+  glProgramUniformMatrix4x3fv,
+  glUseProgramStages,
+  glValidateProgramPipeline
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/ShaderAtomicCounters.hs b/src/Graphics/GL/ARB/ShaderAtomicCounters.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/ShaderAtomicCounters.hs
@@ -0,0 +1,54 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.ShaderAtomicCounters
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.ShaderAtomicCounters (
+  -- * Extension Support
+  glGetARBShaderAtomicCounters,
+  gl_ARB_shader_atomic_counters,
+  -- * Enums
+  pattern GL_ACTIVE_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_ATOMIC_COUNTER_BUFFER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS,
+  pattern GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES,
+  pattern GL_ATOMIC_COUNTER_BUFFER_BINDING,
+  pattern GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_SIZE,
+  pattern GL_ATOMIC_COUNTER_BUFFER_START,
+  pattern GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS,
+  pattern GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE,
+  pattern GL_MAX_COMBINED_ATOMIC_COUNTERS,
+  pattern GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_FRAGMENT_ATOMIC_COUNTERS,
+  pattern GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_GEOMETRY_ATOMIC_COUNTERS,
+  pattern GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS,
+  pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS,
+  pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_VERTEX_ATOMIC_COUNTERS,
+  pattern GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX,
+  pattern GL_UNSIGNED_INT_ATOMIC_COUNTER,
+  -- * Functions
+  glGetActiveAtomicCounterBufferiv
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/ShaderImageLoadStore.hs b/src/Graphics/GL/ARB/ShaderImageLoadStore.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/ShaderImageLoadStore.hs
@@ -0,0 +1,90 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.ShaderImageLoadStore
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.ShaderImageLoadStore (
+  -- * Extension Support
+  glGetARBShaderImageLoadStore,
+  gl_ARB_shader_image_load_store,
+  -- * Enums
+  pattern GL_ALL_BARRIER_BITS,
+  pattern GL_ATOMIC_COUNTER_BARRIER_BIT,
+  pattern GL_BUFFER_UPDATE_BARRIER_BIT,
+  pattern GL_COMMAND_BARRIER_BIT,
+  pattern GL_ELEMENT_ARRAY_BARRIER_BIT,
+  pattern GL_FRAMEBUFFER_BARRIER_BIT,
+  pattern GL_IMAGE_1D,
+  pattern GL_IMAGE_1D_ARRAY,
+  pattern GL_IMAGE_2D,
+  pattern GL_IMAGE_2D_ARRAY,
+  pattern GL_IMAGE_2D_MULTISAMPLE,
+  pattern GL_IMAGE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_IMAGE_2D_RECT,
+  pattern GL_IMAGE_3D,
+  pattern GL_IMAGE_BINDING_ACCESS,
+  pattern GL_IMAGE_BINDING_FORMAT,
+  pattern GL_IMAGE_BINDING_LAYER,
+  pattern GL_IMAGE_BINDING_LAYERED,
+  pattern GL_IMAGE_BINDING_LEVEL,
+  pattern GL_IMAGE_BINDING_NAME,
+  pattern GL_IMAGE_BUFFER,
+  pattern GL_IMAGE_CUBE,
+  pattern GL_IMAGE_CUBE_MAP_ARRAY,
+  pattern GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS,
+  pattern GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE,
+  pattern GL_IMAGE_FORMAT_COMPATIBILITY_TYPE,
+  pattern GL_INT_IMAGE_1D,
+  pattern GL_INT_IMAGE_1D_ARRAY,
+  pattern GL_INT_IMAGE_2D,
+  pattern GL_INT_IMAGE_2D_ARRAY,
+  pattern GL_INT_IMAGE_2D_MULTISAMPLE,
+  pattern GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_INT_IMAGE_2D_RECT,
+  pattern GL_INT_IMAGE_3D,
+  pattern GL_INT_IMAGE_BUFFER,
+  pattern GL_INT_IMAGE_CUBE,
+  pattern GL_INT_IMAGE_CUBE_MAP_ARRAY,
+  pattern GL_MAX_COMBINED_IMAGE_UNIFORMS,
+  pattern GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS,
+  pattern GL_MAX_FRAGMENT_IMAGE_UNIFORMS,
+  pattern GL_MAX_GEOMETRY_IMAGE_UNIFORMS,
+  pattern GL_MAX_IMAGE_SAMPLES,
+  pattern GL_MAX_IMAGE_UNITS,
+  pattern GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS,
+  pattern GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS,
+  pattern GL_MAX_VERTEX_IMAGE_UNIFORMS,
+  pattern GL_PIXEL_BUFFER_BARRIER_BIT,
+  pattern GL_SHADER_IMAGE_ACCESS_BARRIER_BIT,
+  pattern GL_TEXTURE_FETCH_BARRIER_BIT,
+  pattern GL_TEXTURE_UPDATE_BARRIER_BIT,
+  pattern GL_TRANSFORM_FEEDBACK_BARRIER_BIT,
+  pattern GL_UNIFORM_BARRIER_BIT,
+  pattern GL_UNSIGNED_INT_IMAGE_1D,
+  pattern GL_UNSIGNED_INT_IMAGE_1D_ARRAY,
+  pattern GL_UNSIGNED_INT_IMAGE_2D,
+  pattern GL_UNSIGNED_INT_IMAGE_2D_ARRAY,
+  pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE,
+  pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_UNSIGNED_INT_IMAGE_2D_RECT,
+  pattern GL_UNSIGNED_INT_IMAGE_3D,
+  pattern GL_UNSIGNED_INT_IMAGE_BUFFER,
+  pattern GL_UNSIGNED_INT_IMAGE_CUBE,
+  pattern GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY,
+  pattern GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT,
+  -- * Functions
+  glBindImageTexture,
+  glMemoryBarrier
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/ShaderObjects.hs b/src/Graphics/GL/ARB/ShaderObjects.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/ShaderObjects.hs
@@ -0,0 +1,97 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.ShaderObjects
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.ShaderObjects (
+  -- * Extension Support
+  glGetARBShaderObjects,
+  gl_ARB_shader_objects,
+  -- * Enums
+  pattern GL_BOOL_ARB,
+  pattern GL_BOOL_VEC2_ARB,
+  pattern GL_BOOL_VEC3_ARB,
+  pattern GL_BOOL_VEC4_ARB,
+  pattern GL_FLOAT_MAT2_ARB,
+  pattern GL_FLOAT_MAT3_ARB,
+  pattern GL_FLOAT_MAT4_ARB,
+  pattern GL_FLOAT_VEC2_ARB,
+  pattern GL_FLOAT_VEC3_ARB,
+  pattern GL_FLOAT_VEC4_ARB,
+  pattern GL_INT_VEC2_ARB,
+  pattern GL_INT_VEC3_ARB,
+  pattern GL_INT_VEC4_ARB,
+  pattern GL_OBJECT_ACTIVE_UNIFORMS_ARB,
+  pattern GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB,
+  pattern GL_OBJECT_ATTACHED_OBJECTS_ARB,
+  pattern GL_OBJECT_COMPILE_STATUS_ARB,
+  pattern GL_OBJECT_DELETE_STATUS_ARB,
+  pattern GL_OBJECT_INFO_LOG_LENGTH_ARB,
+  pattern GL_OBJECT_LINK_STATUS_ARB,
+  pattern GL_OBJECT_SHADER_SOURCE_LENGTH_ARB,
+  pattern GL_OBJECT_SUBTYPE_ARB,
+  pattern GL_OBJECT_TYPE_ARB,
+  pattern GL_OBJECT_VALIDATE_STATUS_ARB,
+  pattern GL_PROGRAM_OBJECT_ARB,
+  pattern GL_SAMPLER_1D_ARB,
+  pattern GL_SAMPLER_1D_SHADOW_ARB,
+  pattern GL_SAMPLER_2D_ARB,
+  pattern GL_SAMPLER_2D_RECT_ARB,
+  pattern GL_SAMPLER_2D_RECT_SHADOW_ARB,
+  pattern GL_SAMPLER_2D_SHADOW_ARB,
+  pattern GL_SAMPLER_3D_ARB,
+  pattern GL_SAMPLER_CUBE_ARB,
+  pattern GL_SHADER_OBJECT_ARB,
+  -- * Functions
+  glAttachObjectARB,
+  glCompileShaderARB,
+  glCreateProgramObjectARB,
+  glCreateShaderObjectARB,
+  glDeleteObjectARB,
+  glDetachObjectARB,
+  glGetActiveUniformARB,
+  glGetAttachedObjectsARB,
+  glGetHandleARB,
+  glGetInfoLogARB,
+  glGetObjectParameterfvARB,
+  glGetObjectParameterivARB,
+  glGetShaderSourceARB,
+  glGetUniformLocationARB,
+  glGetUniformfvARB,
+  glGetUniformivARB,
+  glLinkProgramARB,
+  glShaderSourceARB,
+  glUniform1fARB,
+  glUniform1fvARB,
+  glUniform1iARB,
+  glUniform1ivARB,
+  glUniform2fARB,
+  glUniform2fvARB,
+  glUniform2iARB,
+  glUniform2ivARB,
+  glUniform3fARB,
+  glUniform3fvARB,
+  glUniform3iARB,
+  glUniform3ivARB,
+  glUniform4fARB,
+  glUniform4fvARB,
+  glUniform4iARB,
+  glUniform4ivARB,
+  glUniformMatrix2fvARB,
+  glUniformMatrix3fvARB,
+  glUniformMatrix4fvARB,
+  glUseProgramObjectARB,
+  glValidateProgramARB
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/ShaderStorageBufferObject.hs b/src/Graphics/GL/ARB/ShaderStorageBufferObject.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/ShaderStorageBufferObject.hs
@@ -0,0 +1,42 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.ShaderStorageBufferObject
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.ShaderStorageBufferObject (
+  -- * Extension Support
+  glGetARBShaderStorageBufferObject,
+  gl_ARB_shader_storage_buffer_object,
+  -- * Enums
+  pattern GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS,
+  pattern GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES,
+  pattern GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_SHADER_STORAGE_BLOCK_SIZE,
+  pattern GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS,
+  pattern GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS,
+  pattern GL_SHADER_STORAGE_BARRIER_BIT,
+  pattern GL_SHADER_STORAGE_BUFFER,
+  pattern GL_SHADER_STORAGE_BUFFER_BINDING,
+  pattern GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT,
+  pattern GL_SHADER_STORAGE_BUFFER_SIZE,
+  pattern GL_SHADER_STORAGE_BUFFER_START,
+  -- * Functions
+  glShaderStorageBlockBinding
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/ShaderSubroutine.hs b/src/Graphics/GL/ARB/ShaderSubroutine.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/ShaderSubroutine.hs
@@ -0,0 +1,43 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.ShaderSubroutine
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.ShaderSubroutine (
+  -- * Extension Support
+  glGetARBShaderSubroutine,
+  gl_ARB_shader_subroutine,
+  -- * Enums
+  pattern GL_ACTIVE_SUBROUTINES,
+  pattern GL_ACTIVE_SUBROUTINE_MAX_LENGTH,
+  pattern GL_ACTIVE_SUBROUTINE_UNIFORMS,
+  pattern GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS,
+  pattern GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH,
+  pattern GL_COMPATIBLE_SUBROUTINES,
+  pattern GL_MAX_SUBROUTINES,
+  pattern GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS,
+  pattern GL_NUM_COMPATIBLE_SUBROUTINES,
+  pattern GL_UNIFORM_NAME_LENGTH,
+  pattern GL_UNIFORM_SIZE,
+  -- * Functions
+  glGetActiveSubroutineName,
+  glGetActiveSubroutineUniformName,
+  glGetActiveSubroutineUniformiv,
+  glGetProgramStageiv,
+  glGetSubroutineIndex,
+  glGetSubroutineUniformLocation,
+  glGetUniformSubroutineuiv,
+  glUniformSubroutinesuiv
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/ShadingLanguage100.hs b/src/Graphics/GL/ARB/ShadingLanguage100.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/ShadingLanguage100.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.ShadingLanguage100
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.ShadingLanguage100 (
+  -- * Extension Support
+  glGetARBShadingLanguage100,
+  gl_ARB_shading_language_100,
+  -- * Enums
+  pattern GL_SHADING_LANGUAGE_VERSION_ARB
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/ARB/ShadingLanguageInclude.hs b/src/Graphics/GL/ARB/ShadingLanguageInclude.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/ShadingLanguageInclude.hs
@@ -0,0 +1,33 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.ShadingLanguageInclude
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.ShadingLanguageInclude (
+  -- * Extension Support
+  glGetARBShadingLanguageInclude,
+  gl_ARB_shading_language_include,
+  -- * Enums
+  pattern GL_NAMED_STRING_LENGTH_ARB,
+  pattern GL_NAMED_STRING_TYPE_ARB,
+  pattern GL_SHADER_INCLUDE_ARB,
+  -- * Functions
+  glCompileShaderIncludeARB,
+  glDeleteNamedStringARB,
+  glGetNamedStringARB,
+  glGetNamedStringivARB,
+  glIsNamedStringARB,
+  glNamedStringARB
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/Shadow.hs b/src/Graphics/GL/ARB/Shadow.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/Shadow.hs
@@ -0,0 +1,25 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.Shadow
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.Shadow (
+  -- * Extension Support
+  glGetARBShadow,
+  gl_ARB_shadow,
+  -- * Enums
+  pattern GL_COMPARE_R_TO_TEXTURE_ARB,
+  pattern GL_TEXTURE_COMPARE_FUNC_ARB,
+  pattern GL_TEXTURE_COMPARE_MODE_ARB
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/ARB/ShadowAmbient.hs b/src/Graphics/GL/ARB/ShadowAmbient.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/ShadowAmbient.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.ShadowAmbient
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.ShadowAmbient (
+  -- * Extension Support
+  glGetARBShadowAmbient,
+  gl_ARB_shadow_ambient,
+  -- * Enums
+  pattern GL_TEXTURE_COMPARE_FAIL_VALUE_ARB
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/ARB/SparseBuffer.hs b/src/Graphics/GL/ARB/SparseBuffer.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/SparseBuffer.hs
@@ -0,0 +1,29 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.SparseBuffer
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.SparseBuffer (
+  -- * Extension Support
+  glGetARBSparseBuffer,
+  gl_ARB_sparse_buffer,
+  -- * Enums
+  pattern GL_SPARSE_BUFFER_PAGE_SIZE_ARB,
+  pattern GL_SPARSE_STORAGE_BIT_ARB,
+  -- * Functions
+  glBufferPageCommitmentARB,
+  glNamedBufferPageCommitmentARB,
+  glNamedBufferPageCommitmentEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/SparseTexture.hs b/src/Graphics/GL/ARB/SparseTexture.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/SparseTexture.hs
@@ -0,0 +1,36 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.SparseTexture
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.SparseTexture (
+  -- * Extension Support
+  glGetARBSparseTexture,
+  gl_ARB_sparse_texture,
+  -- * Enums
+  pattern GL_MAX_SPARSE_3D_TEXTURE_SIZE_ARB,
+  pattern GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB,
+  pattern GL_MAX_SPARSE_TEXTURE_SIZE_ARB,
+  pattern GL_NUM_SPARSE_LEVELS_ARB,
+  pattern GL_NUM_VIRTUAL_PAGE_SIZES_ARB,
+  pattern GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB,
+  pattern GL_TEXTURE_SPARSE_ARB,
+  pattern GL_VIRTUAL_PAGE_SIZE_INDEX_ARB,
+  pattern GL_VIRTUAL_PAGE_SIZE_X_ARB,
+  pattern GL_VIRTUAL_PAGE_SIZE_Y_ARB,
+  pattern GL_VIRTUAL_PAGE_SIZE_Z_ARB,
+  -- * Functions
+  glTexPageCommitmentARB
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/SpirvExtensions.hs b/src/Graphics/GL/ARB/SpirvExtensions.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/SpirvExtensions.hs
@@ -0,0 +1,24 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.SpirvExtensions
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.SpirvExtensions (
+  -- * Extension Support
+  glGetARBSpirvExtensions,
+  gl_ARB_spirv_extensions,
+  -- * Enums
+  pattern GL_NUM_SPIR_V_EXTENSIONS,
+  pattern GL_SPIR_V_EXTENSIONS
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/ARB/StencilTexturing.hs b/src/Graphics/GL/ARB/StencilTexturing.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/StencilTexturing.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.StencilTexturing
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.StencilTexturing (
+  -- * Extension Support
+  glGetARBStencilTexturing,
+  gl_ARB_stencil_texturing,
+  -- * Enums
+  pattern GL_DEPTH_STENCIL_TEXTURE_MODE
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/ARB/Sync.hs b/src/Graphics/GL/ARB/Sync.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/Sync.hs
@@ -0,0 +1,46 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.Sync
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.Sync (
+  -- * Extension Support
+  glGetARBSync,
+  gl_ARB_sync,
+  -- * Enums
+  pattern GL_ALREADY_SIGNALED,
+  pattern GL_CONDITION_SATISFIED,
+  pattern GL_MAX_SERVER_WAIT_TIMEOUT,
+  pattern GL_OBJECT_TYPE,
+  pattern GL_SIGNALED,
+  pattern GL_SYNC_CONDITION,
+  pattern GL_SYNC_FENCE,
+  pattern GL_SYNC_FLAGS,
+  pattern GL_SYNC_FLUSH_COMMANDS_BIT,
+  pattern GL_SYNC_GPU_COMMANDS_COMPLETE,
+  pattern GL_SYNC_STATUS,
+  pattern GL_TIMEOUT_EXPIRED,
+  pattern GL_TIMEOUT_IGNORED,
+  pattern GL_UNSIGNALED,
+  pattern GL_WAIT_FAILED,
+  -- * Functions
+  glClientWaitSync,
+  glDeleteSync,
+  glFenceSync,
+  glGetInteger64v,
+  glGetSynciv,
+  glIsSync,
+  glWaitSync
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/TessellationShader.hs b/src/Graphics/GL/ARB/TessellationShader.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/TessellationShader.hs
@@ -0,0 +1,63 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.TessellationShader
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.TessellationShader (
+  -- * Extension Support
+  glGetARBTessellationShader,
+  gl_ARB_tessellation_shader,
+  -- * Enums
+  pattern GL_CCW,
+  pattern GL_CW,
+  pattern GL_EQUAL,
+  pattern GL_FRACTIONAL_EVEN,
+  pattern GL_FRACTIONAL_ODD,
+  pattern GL_ISOLINES,
+  pattern GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS,
+  pattern GL_MAX_PATCH_VERTICES,
+  pattern GL_MAX_TESS_CONTROL_INPUT_COMPONENTS,
+  pattern GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS,
+  pattern GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS,
+  pattern GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS,
+  pattern GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS,
+  pattern GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS,
+  pattern GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS,
+  pattern GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS,
+  pattern GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS,
+  pattern GL_MAX_TESS_GEN_LEVEL,
+  pattern GL_MAX_TESS_PATCH_COMPONENTS,
+  pattern GL_PATCHES,
+  pattern GL_PATCH_DEFAULT_INNER_LEVEL,
+  pattern GL_PATCH_DEFAULT_OUTER_LEVEL,
+  pattern GL_PATCH_VERTICES,
+  pattern GL_QUADS,
+  pattern GL_TESS_CONTROL_OUTPUT_VERTICES,
+  pattern GL_TESS_CONTROL_SHADER,
+  pattern GL_TESS_EVALUATION_SHADER,
+  pattern GL_TESS_GEN_MODE,
+  pattern GL_TESS_GEN_POINT_MODE,
+  pattern GL_TESS_GEN_SPACING,
+  pattern GL_TESS_GEN_VERTEX_ORDER,
+  pattern GL_TRIANGLES,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER,
+  -- * Functions
+  glPatchParameterfv,
+  glPatchParameteri
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/TextureBarrier.hs b/src/Graphics/GL/ARB/TextureBarrier.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/TextureBarrier.hs
@@ -0,0 +1,22 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.TextureBarrier
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.TextureBarrier (
+  -- * Extension Support
+  glGetARBTextureBarrier,
+  gl_ARB_texture_barrier,
+  -- * Functions
+  glTextureBarrier
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/TextureBorderClamp.hs b/src/Graphics/GL/ARB/TextureBorderClamp.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/TextureBorderClamp.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.TextureBorderClamp
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.TextureBorderClamp (
+  -- * Extension Support
+  glGetARBTextureBorderClamp,
+  gl_ARB_texture_border_clamp,
+  -- * Enums
+  pattern GL_CLAMP_TO_BORDER_ARB
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/ARB/TextureBufferObject.hs b/src/Graphics/GL/ARB/TextureBufferObject.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/TextureBufferObject.hs
@@ -0,0 +1,30 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.TextureBufferObject
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.TextureBufferObject (
+  -- * Extension Support
+  glGetARBTextureBufferObject,
+  gl_ARB_texture_buffer_object,
+  -- * Enums
+  pattern GL_MAX_TEXTURE_BUFFER_SIZE_ARB,
+  pattern GL_TEXTURE_BINDING_BUFFER_ARB,
+  pattern GL_TEXTURE_BUFFER_ARB,
+  pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB,
+  pattern GL_TEXTURE_BUFFER_FORMAT_ARB,
+  -- * Functions
+  glTexBufferARB
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/TextureBufferObjectRGB32.hs b/src/Graphics/GL/ARB/TextureBufferObjectRGB32.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/TextureBufferObjectRGB32.hs
@@ -0,0 +1,25 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.TextureBufferObjectRGB32
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.TextureBufferObjectRGB32 (
+  -- * Extension Support
+  glGetARBTextureBufferObjectRGB32,
+  gl_ARB_texture_buffer_object_rgb32,
+  -- * Enums
+  pattern GL_RGB32F,
+  pattern GL_RGB32I,
+  pattern GL_RGB32UI
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/ARB/TextureBufferRange.hs b/src/Graphics/GL/ARB/TextureBufferRange.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/TextureBufferRange.hs
@@ -0,0 +1,28 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.TextureBufferRange
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.TextureBufferRange (
+  -- * Extension Support
+  glGetARBTextureBufferRange,
+  gl_ARB_texture_buffer_range,
+  -- * Enums
+  pattern GL_TEXTURE_BUFFER_OFFSET,
+  pattern GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT,
+  pattern GL_TEXTURE_BUFFER_SIZE,
+  -- * Functions
+  glTexBufferRange
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/TextureCompression.hs b/src/Graphics/GL/ARB/TextureCompression.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/TextureCompression.hs
@@ -0,0 +1,42 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.TextureCompression
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.TextureCompression (
+  -- * Extension Support
+  glGetARBTextureCompression,
+  gl_ARB_texture_compression,
+  -- * Enums
+  pattern GL_COMPRESSED_ALPHA_ARB,
+  pattern GL_COMPRESSED_INTENSITY_ARB,
+  pattern GL_COMPRESSED_LUMINANCE_ALPHA_ARB,
+  pattern GL_COMPRESSED_LUMINANCE_ARB,
+  pattern GL_COMPRESSED_RGBA_ARB,
+  pattern GL_COMPRESSED_RGB_ARB,
+  pattern GL_COMPRESSED_TEXTURE_FORMATS_ARB,
+  pattern GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB,
+  pattern GL_TEXTURE_COMPRESSED_ARB,
+  pattern GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB,
+  pattern GL_TEXTURE_COMPRESSION_HINT_ARB,
+  -- * Functions
+  glCompressedTexImage1DARB,
+  glCompressedTexImage2DARB,
+  glCompressedTexImage3DARB,
+  glCompressedTexSubImage1DARB,
+  glCompressedTexSubImage2DARB,
+  glCompressedTexSubImage3DARB,
+  glGetCompressedTexImageARB
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/TextureCompressionBPTC.hs b/src/Graphics/GL/ARB/TextureCompressionBPTC.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/TextureCompressionBPTC.hs
@@ -0,0 +1,26 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.TextureCompressionBPTC
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.TextureCompressionBPTC (
+  -- * Extension Support
+  glGetARBTextureCompressionBPTC,
+  gl_ARB_texture_compression_bptc,
+  -- * Enums
+  pattern GL_COMPRESSED_RGBA_BPTC_UNORM_ARB,
+  pattern GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB,
+  pattern GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB,
+  pattern GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/ARB/TextureCompressionRGTC.hs b/src/Graphics/GL/ARB/TextureCompressionRGTC.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/TextureCompressionRGTC.hs
@@ -0,0 +1,26 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.TextureCompressionRGTC
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.TextureCompressionRGTC (
+  -- * Extension Support
+  glGetARBTextureCompressionRGTC,
+  gl_ARB_texture_compression_rgtc,
+  -- * Enums
+  pattern GL_COMPRESSED_RED_RGTC1,
+  pattern GL_COMPRESSED_RG_RGTC2,
+  pattern GL_COMPRESSED_SIGNED_RED_RGTC1,
+  pattern GL_COMPRESSED_SIGNED_RG_RGTC2
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/ARB/TextureCubeMap.hs b/src/Graphics/GL/ARB/TextureCubeMap.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/TextureCubeMap.hs
@@ -0,0 +1,34 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.TextureCubeMap
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.TextureCubeMap (
+  -- * Extension Support
+  glGetARBTextureCubeMap,
+  gl_ARB_texture_cube_map,
+  -- * Enums
+  pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB,
+  pattern GL_NORMAL_MAP_ARB,
+  pattern GL_PROXY_TEXTURE_CUBE_MAP_ARB,
+  pattern GL_REFLECTION_MAP_ARB,
+  pattern GL_TEXTURE_BINDING_CUBE_MAP_ARB,
+  pattern GL_TEXTURE_CUBE_MAP_ARB,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/ARB/TextureCubeMapArray.hs b/src/Graphics/GL/ARB/TextureCubeMapArray.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/TextureCubeMapArray.hs
@@ -0,0 +1,29 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.TextureCubeMapArray
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.TextureCubeMapArray (
+  -- * Extension Support
+  glGetARBTextureCubeMapArray,
+  gl_ARB_texture_cube_map_array,
+  -- * Enums
+  pattern GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB,
+  pattern GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB,
+  pattern GL_SAMPLER_CUBE_MAP_ARRAY_ARB,
+  pattern GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB,
+  pattern GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB,
+  pattern GL_TEXTURE_CUBE_MAP_ARRAY_ARB,
+  pattern GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/ARB/TextureEnvCombine.hs b/src/Graphics/GL/ARB/TextureEnvCombine.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/TextureEnvCombine.hs
@@ -0,0 +1,44 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.TextureEnvCombine
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.TextureEnvCombine (
+  -- * Extension Support
+  glGetARBTextureEnvCombine,
+  gl_ARB_texture_env_combine,
+  -- * Enums
+  pattern GL_ADD_SIGNED_ARB,
+  pattern GL_COMBINE_ALPHA_ARB,
+  pattern GL_COMBINE_ARB,
+  pattern GL_COMBINE_RGB_ARB,
+  pattern GL_CONSTANT_ARB,
+  pattern GL_INTERPOLATE_ARB,
+  pattern GL_OPERAND0_ALPHA_ARB,
+  pattern GL_OPERAND0_RGB_ARB,
+  pattern GL_OPERAND1_ALPHA_ARB,
+  pattern GL_OPERAND1_RGB_ARB,
+  pattern GL_OPERAND2_ALPHA_ARB,
+  pattern GL_OPERAND2_RGB_ARB,
+  pattern GL_PREVIOUS_ARB,
+  pattern GL_PRIMARY_COLOR_ARB,
+  pattern GL_RGB_SCALE_ARB,
+  pattern GL_SOURCE0_ALPHA_ARB,
+  pattern GL_SOURCE0_RGB_ARB,
+  pattern GL_SOURCE1_ALPHA_ARB,
+  pattern GL_SOURCE1_RGB_ARB,
+  pattern GL_SOURCE2_ALPHA_ARB,
+  pattern GL_SOURCE2_RGB_ARB,
+  pattern GL_SUBTRACT_ARB
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/ARB/TextureEnvDot3.hs b/src/Graphics/GL/ARB/TextureEnvDot3.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/TextureEnvDot3.hs
@@ -0,0 +1,24 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.TextureEnvDot3
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.TextureEnvDot3 (
+  -- * Extension Support
+  glGetARBTextureEnvDot3,
+  gl_ARB_texture_env_dot3,
+  -- * Enums
+  pattern GL_DOT3_RGBA_ARB,
+  pattern GL_DOT3_RGB_ARB
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/ARB/TextureFilterAnisotropic.hs b/src/Graphics/GL/ARB/TextureFilterAnisotropic.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/TextureFilterAnisotropic.hs
@@ -0,0 +1,24 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.TextureFilterAnisotropic
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.TextureFilterAnisotropic (
+  -- * Extension Support
+  glGetARBTextureFilterAnisotropic,
+  gl_ARB_texture_filter_anisotropic,
+  -- * Enums
+  pattern GL_MAX_TEXTURE_MAX_ANISOTROPY,
+  pattern GL_TEXTURE_MAX_ANISOTROPY
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/ARB/TextureFilterMinmax.hs b/src/Graphics/GL/ARB/TextureFilterMinmax.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/TextureFilterMinmax.hs
@@ -0,0 +1,24 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.TextureFilterMinmax
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.TextureFilterMinmax (
+  -- * Extension Support
+  glGetARBTextureFilterMinmax,
+  gl_ARB_texture_filter_minmax,
+  -- * Enums
+  pattern GL_TEXTURE_REDUCTION_MODE_ARB,
+  pattern GL_WEIGHTED_AVERAGE_ARB
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/ARB/TextureFloat.hs b/src/Graphics/GL/ARB/TextureFloat.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/TextureFloat.hs
@@ -0,0 +1,42 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.TextureFloat
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.TextureFloat (
+  -- * Extension Support
+  glGetARBTextureFloat,
+  gl_ARB_texture_float,
+  -- * Enums
+  pattern GL_ALPHA16F_ARB,
+  pattern GL_ALPHA32F_ARB,
+  pattern GL_INTENSITY16F_ARB,
+  pattern GL_INTENSITY32F_ARB,
+  pattern GL_LUMINANCE16F_ARB,
+  pattern GL_LUMINANCE32F_ARB,
+  pattern GL_LUMINANCE_ALPHA16F_ARB,
+  pattern GL_LUMINANCE_ALPHA32F_ARB,
+  pattern GL_RGB16F_ARB,
+  pattern GL_RGB32F_ARB,
+  pattern GL_RGBA16F_ARB,
+  pattern GL_RGBA32F_ARB,
+  pattern GL_TEXTURE_ALPHA_TYPE_ARB,
+  pattern GL_TEXTURE_BLUE_TYPE_ARB,
+  pattern GL_TEXTURE_DEPTH_TYPE_ARB,
+  pattern GL_TEXTURE_GREEN_TYPE_ARB,
+  pattern GL_TEXTURE_INTENSITY_TYPE_ARB,
+  pattern GL_TEXTURE_LUMINANCE_TYPE_ARB,
+  pattern GL_TEXTURE_RED_TYPE_ARB,
+  pattern GL_UNSIGNED_NORMALIZED_ARB
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/ARB/TextureGather.hs b/src/Graphics/GL/ARB/TextureGather.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/TextureGather.hs
@@ -0,0 +1,25 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.TextureGather
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.TextureGather (
+  -- * Extension Support
+  glGetARBTextureGather,
+  gl_ARB_texture_gather,
+  -- * Enums
+  pattern GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB,
+  pattern GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB,
+  pattern GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/ARB/TextureMirrorClampToEdge.hs b/src/Graphics/GL/ARB/TextureMirrorClampToEdge.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/TextureMirrorClampToEdge.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.TextureMirrorClampToEdge
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.TextureMirrorClampToEdge (
+  -- * Extension Support
+  glGetARBTextureMirrorClampToEdge,
+  gl_ARB_texture_mirror_clamp_to_edge,
+  -- * Enums
+  pattern GL_MIRROR_CLAMP_TO_EDGE
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/ARB/TextureMirroredRepeat.hs b/src/Graphics/GL/ARB/TextureMirroredRepeat.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/TextureMirroredRepeat.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.TextureMirroredRepeat
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.TextureMirroredRepeat (
+  -- * Extension Support
+  glGetARBTextureMirroredRepeat,
+  gl_ARB_texture_mirrored_repeat,
+  -- * Enums
+  pattern GL_MIRRORED_REPEAT_ARB
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/ARB/TextureMultisample.hs b/src/Graphics/GL/ARB/TextureMultisample.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/TextureMultisample.hs
@@ -0,0 +1,49 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.TextureMultisample
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.TextureMultisample (
+  -- * Extension Support
+  glGetARBTextureMultisample,
+  gl_ARB_texture_multisample,
+  -- * Enums
+  pattern GL_INT_SAMPLER_2D_MULTISAMPLE,
+  pattern GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY,
+  pattern GL_MAX_COLOR_TEXTURE_SAMPLES,
+  pattern GL_MAX_DEPTH_TEXTURE_SAMPLES,
+  pattern GL_MAX_INTEGER_SAMPLES,
+  pattern GL_MAX_SAMPLE_MASK_WORDS,
+  pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE,
+  pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_SAMPLER_2D_MULTISAMPLE,
+  pattern GL_SAMPLER_2D_MULTISAMPLE_ARRAY,
+  pattern GL_SAMPLE_MASK,
+  pattern GL_SAMPLE_MASK_VALUE,
+  pattern GL_SAMPLE_POSITION,
+  pattern GL_TEXTURE_2D_MULTISAMPLE,
+  pattern GL_TEXTURE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE,
+  pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY,
+  pattern GL_TEXTURE_FIXED_SAMPLE_LOCATIONS,
+  pattern GL_TEXTURE_SAMPLES,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY,
+  -- * Functions
+  glGetMultisamplefv,
+  glSampleMaski,
+  glTexImage2DMultisample,
+  glTexImage3DMultisample
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/TextureRG.hs b/src/Graphics/GL/ARB/TextureRG.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/TextureRG.hs
@@ -0,0 +1,44 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.TextureRG
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.TextureRG (
+  -- * Extension Support
+  glGetARBTextureRG,
+  gl_ARB_texture_rg,
+  -- * Enums
+  pattern GL_R16,
+  pattern GL_R16F,
+  pattern GL_R16I,
+  pattern GL_R16UI,
+  pattern GL_R32F,
+  pattern GL_R32I,
+  pattern GL_R32UI,
+  pattern GL_R8,
+  pattern GL_R8I,
+  pattern GL_R8UI,
+  pattern GL_RG,
+  pattern GL_RG16,
+  pattern GL_RG16F,
+  pattern GL_RG16I,
+  pattern GL_RG16UI,
+  pattern GL_RG32F,
+  pattern GL_RG32I,
+  pattern GL_RG32UI,
+  pattern GL_RG8,
+  pattern GL_RG8I,
+  pattern GL_RG8UI,
+  pattern GL_RG_INTEGER
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/ARB/TextureRGB10A2UI.hs b/src/Graphics/GL/ARB/TextureRGB10A2UI.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/TextureRGB10A2UI.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.TextureRGB10A2UI
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.TextureRGB10A2UI (
+  -- * Extension Support
+  glGetARBTextureRGB10A2UI,
+  gl_ARB_texture_rgb10_a2ui,
+  -- * Enums
+  pattern GL_RGB10_A2UI
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/ARB/TextureRectangle.hs b/src/Graphics/GL/ARB/TextureRectangle.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/TextureRectangle.hs
@@ -0,0 +1,26 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.TextureRectangle
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.TextureRectangle (
+  -- * Extension Support
+  glGetARBTextureRectangle,
+  gl_ARB_texture_rectangle,
+  -- * Enums
+  pattern GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB,
+  pattern GL_PROXY_TEXTURE_RECTANGLE_ARB,
+  pattern GL_TEXTURE_BINDING_RECTANGLE_ARB,
+  pattern GL_TEXTURE_RECTANGLE_ARB
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/ARB/TextureStencil8.hs b/src/Graphics/GL/ARB/TextureStencil8.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/TextureStencil8.hs
@@ -0,0 +1,24 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.TextureStencil8
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.TextureStencil8 (
+  -- * Extension Support
+  glGetARBTextureStencil8,
+  gl_ARB_texture_stencil8,
+  -- * Enums
+  pattern GL_STENCIL_INDEX,
+  pattern GL_STENCIL_INDEX8
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/ARB/TextureStorage.hs b/src/Graphics/GL/ARB/TextureStorage.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/TextureStorage.hs
@@ -0,0 +1,28 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.TextureStorage
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.TextureStorage (
+  -- * Extension Support
+  glGetARBTextureStorage,
+  gl_ARB_texture_storage,
+  -- * Enums
+  pattern GL_TEXTURE_IMMUTABLE_FORMAT,
+  -- * Functions
+  glTexStorage1D,
+  glTexStorage2D,
+  glTexStorage3D
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/TextureStorageMultisample.hs b/src/Graphics/GL/ARB/TextureStorageMultisample.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/TextureStorageMultisample.hs
@@ -0,0 +1,23 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.TextureStorageMultisample
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.TextureStorageMultisample (
+  -- * Extension Support
+  glGetARBTextureStorageMultisample,
+  gl_ARB_texture_storage_multisample,
+  -- * Functions
+  glTexStorage2DMultisample,
+  glTexStorage3DMultisample
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/TextureSwizzle.hs b/src/Graphics/GL/ARB/TextureSwizzle.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/TextureSwizzle.hs
@@ -0,0 +1,27 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.TextureSwizzle
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.TextureSwizzle (
+  -- * Extension Support
+  glGetARBTextureSwizzle,
+  gl_ARB_texture_swizzle,
+  -- * Enums
+  pattern GL_TEXTURE_SWIZZLE_A,
+  pattern GL_TEXTURE_SWIZZLE_B,
+  pattern GL_TEXTURE_SWIZZLE_G,
+  pattern GL_TEXTURE_SWIZZLE_R,
+  pattern GL_TEXTURE_SWIZZLE_RGBA
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/ARB/TextureView.hs b/src/Graphics/GL/ARB/TextureView.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/TextureView.hs
@@ -0,0 +1,30 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.TextureView
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.TextureView (
+  -- * Extension Support
+  glGetARBTextureView,
+  gl_ARB_texture_view,
+  -- * Enums
+  pattern GL_TEXTURE_IMMUTABLE_LEVELS,
+  pattern GL_TEXTURE_VIEW_MIN_LAYER,
+  pattern GL_TEXTURE_VIEW_MIN_LEVEL,
+  pattern GL_TEXTURE_VIEW_NUM_LAYERS,
+  pattern GL_TEXTURE_VIEW_NUM_LEVELS,
+  -- * Functions
+  glTextureView
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/TimerQuery.hs b/src/Graphics/GL/ARB/TimerQuery.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/TimerQuery.hs
@@ -0,0 +1,29 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.TimerQuery
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.TimerQuery (
+  -- * Extension Support
+  glGetARBTimerQuery,
+  gl_ARB_timer_query,
+  -- * Enums
+  pattern GL_TIMESTAMP,
+  pattern GL_TIME_ELAPSED,
+  -- * Functions
+  glGetQueryObjecti64v,
+  glGetQueryObjectui64v,
+  glQueryCounter
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/TransformFeedback2.hs b/src/Graphics/GL/ARB/TransformFeedback2.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/TransformFeedback2.hs
@@ -0,0 +1,35 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.TransformFeedback2
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.TransformFeedback2 (
+  -- * Extension Support
+  glGetARBTransformFeedback2,
+  gl_ARB_transform_feedback2,
+  -- * Enums
+  pattern GL_TRANSFORM_FEEDBACK,
+  pattern GL_TRANSFORM_FEEDBACK_BINDING,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED,
+  -- * Functions
+  glBindTransformFeedback,
+  glDeleteTransformFeedbacks,
+  glDrawTransformFeedback,
+  glGenTransformFeedbacks,
+  glIsTransformFeedback,
+  glPauseTransformFeedback,
+  glResumeTransformFeedback
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/TransformFeedback3.hs b/src/Graphics/GL/ARB/TransformFeedback3.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/TransformFeedback3.hs
@@ -0,0 +1,30 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.TransformFeedback3
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.TransformFeedback3 (
+  -- * Extension Support
+  glGetARBTransformFeedback3,
+  gl_ARB_transform_feedback3,
+  -- * Enums
+  pattern GL_MAX_TRANSFORM_FEEDBACK_BUFFERS,
+  pattern GL_MAX_VERTEX_STREAMS,
+  -- * Functions
+  glBeginQueryIndexed,
+  glDrawTransformFeedbackStream,
+  glEndQueryIndexed,
+  glGetQueryIndexediv
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/TransformFeedbackInstanced.hs b/src/Graphics/GL/ARB/TransformFeedbackInstanced.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/TransformFeedbackInstanced.hs
@@ -0,0 +1,23 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.TransformFeedbackInstanced
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.TransformFeedbackInstanced (
+  -- * Extension Support
+  glGetARBTransformFeedbackInstanced,
+  gl_ARB_transform_feedback_instanced,
+  -- * Functions
+  glDrawTransformFeedbackInstanced,
+  glDrawTransformFeedbackStreamInstanced
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/TransformFeedbackOverflowQuery.hs b/src/Graphics/GL/ARB/TransformFeedbackOverflowQuery.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/TransformFeedbackOverflowQuery.hs
@@ -0,0 +1,24 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.TransformFeedbackOverflowQuery
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.TransformFeedbackOverflowQuery (
+  -- * Extension Support
+  glGetARBTransformFeedbackOverflowQuery,
+  gl_ARB_transform_feedback_overflow_query,
+  -- * Enums
+  pattern GL_TRANSFORM_FEEDBACK_OVERFLOW_ARB,
+  pattern GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW_ARB
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/ARB/TransposeMatrix.hs b/src/Graphics/GL/ARB/TransposeMatrix.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/TransposeMatrix.hs
@@ -0,0 +1,32 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.TransposeMatrix
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.TransposeMatrix (
+  -- * Extension Support
+  glGetARBTransposeMatrix,
+  gl_ARB_transpose_matrix,
+  -- * Enums
+  pattern GL_TRANSPOSE_COLOR_MATRIX_ARB,
+  pattern GL_TRANSPOSE_MODELVIEW_MATRIX_ARB,
+  pattern GL_TRANSPOSE_PROJECTION_MATRIX_ARB,
+  pattern GL_TRANSPOSE_TEXTURE_MATRIX_ARB,
+  -- * Functions
+  glLoadTransposeMatrixdARB,
+  glLoadTransposeMatrixfARB,
+  glMultTransposeMatrixdARB,
+  glMultTransposeMatrixfARB
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/UniformBufferObject.hs b/src/Graphics/GL/ARB/UniformBufferObject.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/UniformBufferObject.hs
@@ -0,0 +1,67 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.UniformBufferObject
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.UniformBufferObject (
+  -- * Extension Support
+  glGetARBUniformBufferObject,
+  gl_ARB_uniform_buffer_object,
+  -- * Enums
+  pattern GL_ACTIVE_UNIFORM_BLOCKS,
+  pattern GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH,
+  pattern GL_INVALID_INDEX,
+  pattern GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_UNIFORM_BLOCKS,
+  pattern GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS,
+  pattern GL_MAX_FRAGMENT_UNIFORM_BLOCKS,
+  pattern GL_MAX_GEOMETRY_UNIFORM_BLOCKS,
+  pattern GL_MAX_UNIFORM_BLOCK_SIZE,
+  pattern GL_MAX_UNIFORM_BUFFER_BINDINGS,
+  pattern GL_MAX_VERTEX_UNIFORM_BLOCKS,
+  pattern GL_UNIFORM_ARRAY_STRIDE,
+  pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS,
+  pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES,
+  pattern GL_UNIFORM_BLOCK_BINDING,
+  pattern GL_UNIFORM_BLOCK_DATA_SIZE,
+  pattern GL_UNIFORM_BLOCK_INDEX,
+  pattern GL_UNIFORM_BLOCK_NAME_LENGTH,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER,
+  pattern GL_UNIFORM_BUFFER,
+  pattern GL_UNIFORM_BUFFER_BINDING,
+  pattern GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT,
+  pattern GL_UNIFORM_BUFFER_SIZE,
+  pattern GL_UNIFORM_BUFFER_START,
+  pattern GL_UNIFORM_IS_ROW_MAJOR,
+  pattern GL_UNIFORM_MATRIX_STRIDE,
+  pattern GL_UNIFORM_NAME_LENGTH,
+  pattern GL_UNIFORM_OFFSET,
+  pattern GL_UNIFORM_SIZE,
+  pattern GL_UNIFORM_TYPE,
+  -- * Functions
+  glBindBufferBase,
+  glBindBufferRange,
+  glGetActiveUniformBlockName,
+  glGetActiveUniformBlockiv,
+  glGetActiveUniformName,
+  glGetActiveUniformsiv,
+  glGetIntegeri_v,
+  glGetUniformBlockIndex,
+  glGetUniformIndices,
+  glUniformBlockBinding
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/VertexArrayBGRA.hs b/src/Graphics/GL/ARB/VertexArrayBGRA.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/VertexArrayBGRA.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.VertexArrayBGRA
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.VertexArrayBGRA (
+  -- * Extension Support
+  glGetARBVertexArrayBGRA,
+  gl_ARB_vertex_array_bgra,
+  -- * Enums
+  pattern GL_BGRA
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/ARB/VertexArrayObject.hs b/src/Graphics/GL/ARB/VertexArrayObject.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/VertexArrayObject.hs
@@ -0,0 +1,29 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.VertexArrayObject
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.VertexArrayObject (
+  -- * Extension Support
+  glGetARBVertexArrayObject,
+  gl_ARB_vertex_array_object,
+  -- * Enums
+  pattern GL_VERTEX_ARRAY_BINDING,
+  -- * Functions
+  glBindVertexArray,
+  glDeleteVertexArrays,
+  glGenVertexArrays,
+  glIsVertexArray
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/VertexAttrib64Bit.hs b/src/Graphics/GL/ARB/VertexAttrib64Bit.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/VertexAttrib64Bit.hs
@@ -0,0 +1,47 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.VertexAttrib64Bit
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.VertexAttrib64Bit (
+  -- * Extension Support
+  glGetARBVertexAttrib64Bit,
+  gl_ARB_vertex_attrib_64bit,
+  -- * Enums
+  pattern GL_DOUBLE_MAT2,
+  pattern GL_DOUBLE_MAT2x3,
+  pattern GL_DOUBLE_MAT2x4,
+  pattern GL_DOUBLE_MAT3,
+  pattern GL_DOUBLE_MAT3x2,
+  pattern GL_DOUBLE_MAT3x4,
+  pattern GL_DOUBLE_MAT4,
+  pattern GL_DOUBLE_MAT4x2,
+  pattern GL_DOUBLE_MAT4x3,
+  pattern GL_DOUBLE_VEC2,
+  pattern GL_DOUBLE_VEC3,
+  pattern GL_DOUBLE_VEC4,
+  pattern GL_RGB32I,
+  -- * Functions
+  glGetVertexAttribLdv,
+  glVertexAttribL1d,
+  glVertexAttribL1dv,
+  glVertexAttribL2d,
+  glVertexAttribL2dv,
+  glVertexAttribL3d,
+  glVertexAttribL3dv,
+  glVertexAttribL4d,
+  glVertexAttribL4dv,
+  glVertexAttribLPointer
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/VertexAttribBinding.hs b/src/Graphics/GL/ARB/VertexAttribBinding.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/VertexAttribBinding.hs
@@ -0,0 +1,37 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.VertexAttribBinding
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.VertexAttribBinding (
+  -- * Extension Support
+  glGetARBVertexAttribBinding,
+  gl_ARB_vertex_attrib_binding,
+  -- * Enums
+  pattern GL_MAX_VERTEX_ATTRIB_BINDINGS,
+  pattern GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET,
+  pattern GL_VERTEX_ATTRIB_BINDING,
+  pattern GL_VERTEX_ATTRIB_RELATIVE_OFFSET,
+  pattern GL_VERTEX_BINDING_DIVISOR,
+  pattern GL_VERTEX_BINDING_OFFSET,
+  pattern GL_VERTEX_BINDING_STRIDE,
+  -- * Functions
+  glBindVertexBuffer,
+  glVertexAttribBinding,
+  glVertexAttribFormat,
+  glVertexAttribIFormat,
+  glVertexAttribLFormat,
+  glVertexBindingDivisor
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/VertexBlend.hs b/src/Graphics/GL/ARB/VertexBlend.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/VertexBlend.hs
@@ -0,0 +1,76 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.VertexBlend
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.VertexBlend (
+  -- * Extension Support
+  glGetARBVertexBlend,
+  gl_ARB_vertex_blend,
+  -- * Enums
+  pattern GL_ACTIVE_VERTEX_UNITS_ARB,
+  pattern GL_CURRENT_WEIGHT_ARB,
+  pattern GL_MAX_VERTEX_UNITS_ARB,
+  pattern GL_MODELVIEW0_ARB,
+  pattern GL_MODELVIEW10_ARB,
+  pattern GL_MODELVIEW11_ARB,
+  pattern GL_MODELVIEW12_ARB,
+  pattern GL_MODELVIEW13_ARB,
+  pattern GL_MODELVIEW14_ARB,
+  pattern GL_MODELVIEW15_ARB,
+  pattern GL_MODELVIEW16_ARB,
+  pattern GL_MODELVIEW17_ARB,
+  pattern GL_MODELVIEW18_ARB,
+  pattern GL_MODELVIEW19_ARB,
+  pattern GL_MODELVIEW1_ARB,
+  pattern GL_MODELVIEW20_ARB,
+  pattern GL_MODELVIEW21_ARB,
+  pattern GL_MODELVIEW22_ARB,
+  pattern GL_MODELVIEW23_ARB,
+  pattern GL_MODELVIEW24_ARB,
+  pattern GL_MODELVIEW25_ARB,
+  pattern GL_MODELVIEW26_ARB,
+  pattern GL_MODELVIEW27_ARB,
+  pattern GL_MODELVIEW28_ARB,
+  pattern GL_MODELVIEW29_ARB,
+  pattern GL_MODELVIEW2_ARB,
+  pattern GL_MODELVIEW30_ARB,
+  pattern GL_MODELVIEW31_ARB,
+  pattern GL_MODELVIEW3_ARB,
+  pattern GL_MODELVIEW4_ARB,
+  pattern GL_MODELVIEW5_ARB,
+  pattern GL_MODELVIEW6_ARB,
+  pattern GL_MODELVIEW7_ARB,
+  pattern GL_MODELVIEW8_ARB,
+  pattern GL_MODELVIEW9_ARB,
+  pattern GL_VERTEX_BLEND_ARB,
+  pattern GL_WEIGHT_ARRAY_ARB,
+  pattern GL_WEIGHT_ARRAY_POINTER_ARB,
+  pattern GL_WEIGHT_ARRAY_SIZE_ARB,
+  pattern GL_WEIGHT_ARRAY_STRIDE_ARB,
+  pattern GL_WEIGHT_ARRAY_TYPE_ARB,
+  pattern GL_WEIGHT_SUM_UNITY_ARB,
+  -- * Functions
+  glVertexBlendARB,
+  glWeightPointerARB,
+  glWeightbvARB,
+  glWeightdvARB,
+  glWeightfvARB,
+  glWeightivARB,
+  glWeightsvARB,
+  glWeightubvARB,
+  glWeightuivARB,
+  glWeightusvARB
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/VertexBufferObject.hs b/src/Graphics/GL/ARB/VertexBufferObject.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/VertexBufferObject.hs
@@ -0,0 +1,66 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.VertexBufferObject
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.VertexBufferObject (
+  -- * Extension Support
+  glGetARBVertexBufferObject,
+  gl_ARB_vertex_buffer_object,
+  -- * Enums
+  pattern GL_ARRAY_BUFFER_ARB,
+  pattern GL_ARRAY_BUFFER_BINDING_ARB,
+  pattern GL_BUFFER_ACCESS_ARB,
+  pattern GL_BUFFER_MAPPED_ARB,
+  pattern GL_BUFFER_MAP_POINTER_ARB,
+  pattern GL_BUFFER_SIZE_ARB,
+  pattern GL_BUFFER_USAGE_ARB,
+  pattern GL_COLOR_ARRAY_BUFFER_BINDING_ARB,
+  pattern GL_DYNAMIC_COPY_ARB,
+  pattern GL_DYNAMIC_DRAW_ARB,
+  pattern GL_DYNAMIC_READ_ARB,
+  pattern GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB,
+  pattern GL_ELEMENT_ARRAY_BUFFER_ARB,
+  pattern GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB,
+  pattern GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB,
+  pattern GL_INDEX_ARRAY_BUFFER_BINDING_ARB,
+  pattern GL_NORMAL_ARRAY_BUFFER_BINDING_ARB,
+  pattern GL_READ_ONLY_ARB,
+  pattern GL_READ_WRITE_ARB,
+  pattern GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB,
+  pattern GL_STATIC_COPY_ARB,
+  pattern GL_STATIC_DRAW_ARB,
+  pattern GL_STATIC_READ_ARB,
+  pattern GL_STREAM_COPY_ARB,
+  pattern GL_STREAM_DRAW_ARB,
+  pattern GL_STREAM_READ_ARB,
+  pattern GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB,
+  pattern GL_VERTEX_ARRAY_BUFFER_BINDING_ARB,
+  pattern GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB,
+  pattern GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB,
+  pattern GL_WRITE_ONLY_ARB,
+  -- * Functions
+  glBindBufferARB,
+  glBufferDataARB,
+  glBufferSubDataARB,
+  glDeleteBuffersARB,
+  glGenBuffersARB,
+  glGetBufferParameterivARB,
+  glGetBufferPointervARB,
+  glGetBufferSubDataARB,
+  glIsBufferARB,
+  glMapBufferARB,
+  glUnmapBufferARB
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/VertexProgram.hs b/src/Graphics/GL/ARB/VertexProgram.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/VertexProgram.hs
@@ -0,0 +1,165 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.VertexProgram
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.VertexProgram (
+  -- * Extension Support
+  glGetARBVertexProgram,
+  gl_ARB_vertex_program,
+  -- * Enums
+  pattern GL_COLOR_SUM_ARB,
+  pattern GL_CURRENT_MATRIX_ARB,
+  pattern GL_CURRENT_MATRIX_STACK_DEPTH_ARB,
+  pattern GL_CURRENT_VERTEX_ATTRIB_ARB,
+  pattern GL_MATRIX0_ARB,
+  pattern GL_MATRIX10_ARB,
+  pattern GL_MATRIX11_ARB,
+  pattern GL_MATRIX12_ARB,
+  pattern GL_MATRIX13_ARB,
+  pattern GL_MATRIX14_ARB,
+  pattern GL_MATRIX15_ARB,
+  pattern GL_MATRIX16_ARB,
+  pattern GL_MATRIX17_ARB,
+  pattern GL_MATRIX18_ARB,
+  pattern GL_MATRIX19_ARB,
+  pattern GL_MATRIX1_ARB,
+  pattern GL_MATRIX20_ARB,
+  pattern GL_MATRIX21_ARB,
+  pattern GL_MATRIX22_ARB,
+  pattern GL_MATRIX23_ARB,
+  pattern GL_MATRIX24_ARB,
+  pattern GL_MATRIX25_ARB,
+  pattern GL_MATRIX26_ARB,
+  pattern GL_MATRIX27_ARB,
+  pattern GL_MATRIX28_ARB,
+  pattern GL_MATRIX29_ARB,
+  pattern GL_MATRIX2_ARB,
+  pattern GL_MATRIX30_ARB,
+  pattern GL_MATRIX31_ARB,
+  pattern GL_MATRIX3_ARB,
+  pattern GL_MATRIX4_ARB,
+  pattern GL_MATRIX5_ARB,
+  pattern GL_MATRIX6_ARB,
+  pattern GL_MATRIX7_ARB,
+  pattern GL_MATRIX8_ARB,
+  pattern GL_MATRIX9_ARB,
+  pattern GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB,
+  pattern GL_MAX_PROGRAM_ATTRIBS_ARB,
+  pattern GL_MAX_PROGRAM_ENV_PARAMETERS_ARB,
+  pattern GL_MAX_PROGRAM_INSTRUCTIONS_ARB,
+  pattern GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB,
+  pattern GL_MAX_PROGRAM_MATRICES_ARB,
+  pattern GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB,
+  pattern GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB,
+  pattern GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB,
+  pattern GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB,
+  pattern GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB,
+  pattern GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB,
+  pattern GL_MAX_PROGRAM_PARAMETERS_ARB,
+  pattern GL_MAX_PROGRAM_TEMPORARIES_ARB,
+  pattern GL_MAX_VERTEX_ATTRIBS_ARB,
+  pattern GL_PROGRAM_ADDRESS_REGISTERS_ARB,
+  pattern GL_PROGRAM_ATTRIBS_ARB,
+  pattern GL_PROGRAM_BINDING_ARB,
+  pattern GL_PROGRAM_ERROR_POSITION_ARB,
+  pattern GL_PROGRAM_ERROR_STRING_ARB,
+  pattern GL_PROGRAM_FORMAT_ARB,
+  pattern GL_PROGRAM_FORMAT_ASCII_ARB,
+  pattern GL_PROGRAM_INSTRUCTIONS_ARB,
+  pattern GL_PROGRAM_LENGTH_ARB,
+  pattern GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB,
+  pattern GL_PROGRAM_NATIVE_ATTRIBS_ARB,
+  pattern GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB,
+  pattern GL_PROGRAM_NATIVE_PARAMETERS_ARB,
+  pattern GL_PROGRAM_NATIVE_TEMPORARIES_ARB,
+  pattern GL_PROGRAM_PARAMETERS_ARB,
+  pattern GL_PROGRAM_STRING_ARB,
+  pattern GL_PROGRAM_TEMPORARIES_ARB,
+  pattern GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB,
+  pattern GL_TRANSPOSE_CURRENT_MATRIX_ARB,
+  pattern GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB,
+  pattern GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB,
+  pattern GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB,
+  pattern GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB,
+  pattern GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB,
+  pattern GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB,
+  pattern GL_VERTEX_PROGRAM_ARB,
+  pattern GL_VERTEX_PROGRAM_POINT_SIZE_ARB,
+  pattern GL_VERTEX_PROGRAM_TWO_SIDE_ARB,
+  -- * Functions
+  glBindProgramARB,
+  glDeleteProgramsARB,
+  glDisableVertexAttribArrayARB,
+  glEnableVertexAttribArrayARB,
+  glGenProgramsARB,
+  glGetProgramEnvParameterdvARB,
+  glGetProgramEnvParameterfvARB,
+  glGetProgramLocalParameterdvARB,
+  glGetProgramLocalParameterfvARB,
+  glGetProgramStringARB,
+  glGetProgramivARB,
+  glGetVertexAttribPointervARB,
+  glGetVertexAttribdvARB,
+  glGetVertexAttribfvARB,
+  glGetVertexAttribivARB,
+  glIsProgramARB,
+  glProgramEnvParameter4dARB,
+  glProgramEnvParameter4dvARB,
+  glProgramEnvParameter4fARB,
+  glProgramEnvParameter4fvARB,
+  glProgramLocalParameter4dARB,
+  glProgramLocalParameter4dvARB,
+  glProgramLocalParameter4fARB,
+  glProgramLocalParameter4fvARB,
+  glProgramStringARB,
+  glVertexAttrib1dARB,
+  glVertexAttrib1dvARB,
+  glVertexAttrib1fARB,
+  glVertexAttrib1fvARB,
+  glVertexAttrib1sARB,
+  glVertexAttrib1svARB,
+  glVertexAttrib2dARB,
+  glVertexAttrib2dvARB,
+  glVertexAttrib2fARB,
+  glVertexAttrib2fvARB,
+  glVertexAttrib2sARB,
+  glVertexAttrib2svARB,
+  glVertexAttrib3dARB,
+  glVertexAttrib3dvARB,
+  glVertexAttrib3fARB,
+  glVertexAttrib3fvARB,
+  glVertexAttrib3sARB,
+  glVertexAttrib3svARB,
+  glVertexAttrib4NbvARB,
+  glVertexAttrib4NivARB,
+  glVertexAttrib4NsvARB,
+  glVertexAttrib4NubARB,
+  glVertexAttrib4NubvARB,
+  glVertexAttrib4NuivARB,
+  glVertexAttrib4NusvARB,
+  glVertexAttrib4bvARB,
+  glVertexAttrib4dARB,
+  glVertexAttrib4dvARB,
+  glVertexAttrib4fARB,
+  glVertexAttrib4fvARB,
+  glVertexAttrib4ivARB,
+  glVertexAttrib4sARB,
+  glVertexAttrib4svARB,
+  glVertexAttrib4ubvARB,
+  glVertexAttrib4uivARB,
+  glVertexAttrib4usvARB,
+  glVertexAttribPointerARB
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/VertexShader.hs b/src/Graphics/GL/ARB/VertexShader.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/VertexShader.hs
@@ -0,0 +1,96 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.VertexShader
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.VertexShader (
+  -- * Extension Support
+  glGetARBVertexShader,
+  gl_ARB_vertex_shader,
+  -- * Enums
+  pattern GL_CURRENT_VERTEX_ATTRIB_ARB,
+  pattern GL_FLOAT,
+  pattern GL_FLOAT_MAT2_ARB,
+  pattern GL_FLOAT_MAT3_ARB,
+  pattern GL_FLOAT_MAT4_ARB,
+  pattern GL_FLOAT_VEC2_ARB,
+  pattern GL_FLOAT_VEC3_ARB,
+  pattern GL_FLOAT_VEC4_ARB,
+  pattern GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB,
+  pattern GL_MAX_TEXTURE_COORDS_ARB,
+  pattern GL_MAX_TEXTURE_IMAGE_UNITS_ARB,
+  pattern GL_MAX_VARYING_FLOATS_ARB,
+  pattern GL_MAX_VERTEX_ATTRIBS_ARB,
+  pattern GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB,
+  pattern GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB,
+  pattern GL_OBJECT_ACTIVE_ATTRIBUTES_ARB,
+  pattern GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB,
+  pattern GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB,
+  pattern GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB,
+  pattern GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB,
+  pattern GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB,
+  pattern GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB,
+  pattern GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB,
+  pattern GL_VERTEX_PROGRAM_POINT_SIZE_ARB,
+  pattern GL_VERTEX_PROGRAM_TWO_SIDE_ARB,
+  pattern GL_VERTEX_SHADER_ARB,
+  -- * Functions
+  glBindAttribLocationARB,
+  glDisableVertexAttribArrayARB,
+  glEnableVertexAttribArrayARB,
+  glGetActiveAttribARB,
+  glGetAttribLocationARB,
+  glGetVertexAttribPointervARB,
+  glGetVertexAttribdvARB,
+  glGetVertexAttribfvARB,
+  glGetVertexAttribivARB,
+  glVertexAttrib1dARB,
+  glVertexAttrib1dvARB,
+  glVertexAttrib1fARB,
+  glVertexAttrib1fvARB,
+  glVertexAttrib1sARB,
+  glVertexAttrib1svARB,
+  glVertexAttrib2dARB,
+  glVertexAttrib2dvARB,
+  glVertexAttrib2fARB,
+  glVertexAttrib2fvARB,
+  glVertexAttrib2sARB,
+  glVertexAttrib2svARB,
+  glVertexAttrib3dARB,
+  glVertexAttrib3dvARB,
+  glVertexAttrib3fARB,
+  glVertexAttrib3fvARB,
+  glVertexAttrib3sARB,
+  glVertexAttrib3svARB,
+  glVertexAttrib4NbvARB,
+  glVertexAttrib4NivARB,
+  glVertexAttrib4NsvARB,
+  glVertexAttrib4NubARB,
+  glVertexAttrib4NubvARB,
+  glVertexAttrib4NuivARB,
+  glVertexAttrib4NusvARB,
+  glVertexAttrib4bvARB,
+  glVertexAttrib4dARB,
+  glVertexAttrib4dvARB,
+  glVertexAttrib4fARB,
+  glVertexAttrib4fvARB,
+  glVertexAttrib4ivARB,
+  glVertexAttrib4sARB,
+  glVertexAttrib4svARB,
+  glVertexAttrib4ubvARB,
+  glVertexAttrib4uivARB,
+  glVertexAttrib4usvARB,
+  glVertexAttribPointerARB
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/VertexType10f11f11fRev.hs b/src/Graphics/GL/ARB/VertexType10f11f11fRev.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/VertexType10f11f11fRev.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.VertexType10f11f11fRev
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.VertexType10f11f11fRev (
+  -- * Extension Support
+  glGetARBVertexType10f11f11fRev,
+  gl_ARB_vertex_type_10f_11f_11f_rev,
+  -- * Enums
+  pattern GL_UNSIGNED_INT_10F_11F_11F_REV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/ARB/VertexType2101010RevCompatibility.hs b/src/Graphics/GL/ARB/VertexType2101010RevCompatibility.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/VertexType2101010RevCompatibility.hs
@@ -0,0 +1,64 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.VertexType2101010RevCompatibility
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.VertexType2101010RevCompatibility (
+  -- * Extension Support
+  glGetARBVertexType2101010Rev,
+  gl_ARB_vertex_type_2_10_10_10_rev,
+  -- * Enums
+  pattern GL_INT_2_10_10_10_REV,
+  pattern GL_UNSIGNED_INT_2_10_10_10_REV,
+  -- * Functions
+  glColorP3ui,
+  glColorP3uiv,
+  glColorP4ui,
+  glColorP4uiv,
+  glMultiTexCoordP1ui,
+  glMultiTexCoordP1uiv,
+  glMultiTexCoordP2ui,
+  glMultiTexCoordP2uiv,
+  glMultiTexCoordP3ui,
+  glMultiTexCoordP3uiv,
+  glMultiTexCoordP4ui,
+  glMultiTexCoordP4uiv,
+  glNormalP3ui,
+  glNormalP3uiv,
+  glSecondaryColorP3ui,
+  glSecondaryColorP3uiv,
+  glTexCoordP1ui,
+  glTexCoordP1uiv,
+  glTexCoordP2ui,
+  glTexCoordP2uiv,
+  glTexCoordP3ui,
+  glTexCoordP3uiv,
+  glTexCoordP4ui,
+  glTexCoordP4uiv,
+  glVertexAttribP1ui,
+  glVertexAttribP1uiv,
+  glVertexAttribP2ui,
+  glVertexAttribP2uiv,
+  glVertexAttribP3ui,
+  glVertexAttribP3uiv,
+  glVertexAttribP4ui,
+  glVertexAttribP4uiv,
+  glVertexP2ui,
+  glVertexP2uiv,
+  glVertexP3ui,
+  glVertexP3uiv,
+  glVertexP4ui,
+  glVertexP4uiv
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/VertexType2101010RevCore.hs b/src/Graphics/GL/ARB/VertexType2101010RevCore.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/VertexType2101010RevCore.hs
@@ -0,0 +1,34 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.VertexType2101010RevCore
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.VertexType2101010RevCore (
+  -- * Extension Support
+  glGetARBVertexType2101010Rev,
+  gl_ARB_vertex_type_2_10_10_10_rev,
+  -- * Enums
+  pattern GL_INT_2_10_10_10_REV,
+  pattern GL_UNSIGNED_INT_2_10_10_10_REV,
+  -- * Functions
+  glVertexAttribP1ui,
+  glVertexAttribP1uiv,
+  glVertexAttribP2ui,
+  glVertexAttribP2uiv,
+  glVertexAttribP3ui,
+  glVertexAttribP3uiv,
+  glVertexAttribP4ui,
+  glVertexAttribP4uiv
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/ViewportArray.hs b/src/Graphics/GL/ARB/ViewportArray.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/ViewportArray.hs
@@ -0,0 +1,47 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.ViewportArray
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.ViewportArray (
+  -- * Extension Support
+  glGetARBViewportArray,
+  gl_ARB_viewport_array,
+  -- * Enums
+  pattern GL_DEPTH_RANGE,
+  pattern GL_FIRST_VERTEX_CONVENTION,
+  pattern GL_LAST_VERTEX_CONVENTION,
+  pattern GL_LAYER_PROVOKING_VERTEX,
+  pattern GL_MAX_VIEWPORTS,
+  pattern GL_PROVOKING_VERTEX,
+  pattern GL_SCISSOR_BOX,
+  pattern GL_SCISSOR_TEST,
+  pattern GL_UNDEFINED_VERTEX,
+  pattern GL_VIEWPORT,
+  pattern GL_VIEWPORT_BOUNDS_RANGE,
+  pattern GL_VIEWPORT_INDEX_PROVOKING_VERTEX,
+  pattern GL_VIEWPORT_SUBPIXEL_BITS,
+  -- * Functions
+  glDepthRangeArrayv,
+  glDepthRangeIndexed,
+  glGetDoublei_v,
+  glGetFloati_v,
+  glScissorArrayv,
+  glScissorIndexed,
+  glScissorIndexedv,
+  glViewportArrayv,
+  glViewportIndexedf,
+  glViewportIndexedfv
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ARB/WindowPos.hs b/src/Graphics/GL/ARB/WindowPos.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ARB/WindowPos.hs
@@ -0,0 +1,37 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ARB.WindowPos
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ARB.WindowPos (
+  -- * Extension Support
+  glGetARBWindowPos,
+  gl_ARB_window_pos,
+  -- * Functions
+  glWindowPos2dARB,
+  glWindowPos2dvARB,
+  glWindowPos2fARB,
+  glWindowPos2fvARB,
+  glWindowPos2iARB,
+  glWindowPos2ivARB,
+  glWindowPos2sARB,
+  glWindowPos2svARB,
+  glWindowPos3dARB,
+  glWindowPos3dvARB,
+  glWindowPos3fARB,
+  glWindowPos3fvARB,
+  glWindowPos3iARB,
+  glWindowPos3ivARB,
+  glWindowPos3sARB,
+  glWindowPos3svARB
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ATI.hs b/src/Graphics/GL/ATI.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ATI.hs
@@ -0,0 +1,49 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ATI
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- A convenience module, combining all raw modules containing ATI extensions.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ATI (
+  module Graphics.GL.ATI.DrawBuffers,
+  module Graphics.GL.ATI.ElementArray,
+  module Graphics.GL.ATI.EnvmapBumpmap,
+  module Graphics.GL.ATI.FragmentShader,
+  module Graphics.GL.ATI.MapObjectBuffer,
+  module Graphics.GL.ATI.Meminfo,
+  module Graphics.GL.ATI.PNTriangles,
+  module Graphics.GL.ATI.PixelFormatFloat,
+  module Graphics.GL.ATI.SeparateStencil,
+  module Graphics.GL.ATI.TextFragmentShader,
+  module Graphics.GL.ATI.TextureEnvCombine3,
+  module Graphics.GL.ATI.TextureFloat,
+  module Graphics.GL.ATI.TextureMirrorOnce,
+  module Graphics.GL.ATI.VertexArrayObject,
+  module Graphics.GL.ATI.VertexAttribArrayObject,
+  module Graphics.GL.ATI.VertexStreams
+) where
+
+import Graphics.GL.ATI.DrawBuffers
+import Graphics.GL.ATI.ElementArray
+import Graphics.GL.ATI.EnvmapBumpmap
+import Graphics.GL.ATI.FragmentShader
+import Graphics.GL.ATI.MapObjectBuffer
+import Graphics.GL.ATI.Meminfo
+import Graphics.GL.ATI.PNTriangles
+import Graphics.GL.ATI.PixelFormatFloat
+import Graphics.GL.ATI.SeparateStencil
+import Graphics.GL.ATI.TextFragmentShader
+import Graphics.GL.ATI.TextureEnvCombine3
+import Graphics.GL.ATI.TextureFloat
+import Graphics.GL.ATI.TextureMirrorOnce
+import Graphics.GL.ATI.VertexArrayObject
+import Graphics.GL.ATI.VertexAttribArrayObject
+import Graphics.GL.ATI.VertexStreams
diff --git a/src/Graphics/GL/ATI/DrawBuffers.hs b/src/Graphics/GL/ATI/DrawBuffers.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ATI/DrawBuffers.hs
@@ -0,0 +1,42 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ATI.DrawBuffers
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ATI.DrawBuffers (
+  -- * Extension Support
+  glGetATIDrawBuffers,
+  gl_ATI_draw_buffers,
+  -- * Enums
+  pattern GL_DRAW_BUFFER0_ATI,
+  pattern GL_DRAW_BUFFER10_ATI,
+  pattern GL_DRAW_BUFFER11_ATI,
+  pattern GL_DRAW_BUFFER12_ATI,
+  pattern GL_DRAW_BUFFER13_ATI,
+  pattern GL_DRAW_BUFFER14_ATI,
+  pattern GL_DRAW_BUFFER15_ATI,
+  pattern GL_DRAW_BUFFER1_ATI,
+  pattern GL_DRAW_BUFFER2_ATI,
+  pattern GL_DRAW_BUFFER3_ATI,
+  pattern GL_DRAW_BUFFER4_ATI,
+  pattern GL_DRAW_BUFFER5_ATI,
+  pattern GL_DRAW_BUFFER6_ATI,
+  pattern GL_DRAW_BUFFER7_ATI,
+  pattern GL_DRAW_BUFFER8_ATI,
+  pattern GL_DRAW_BUFFER9_ATI,
+  pattern GL_MAX_DRAW_BUFFERS_ATI,
+  -- * Functions
+  glDrawBuffersATI
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ATI/ElementArray.hs b/src/Graphics/GL/ATI/ElementArray.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ATI/ElementArray.hs
@@ -0,0 +1,30 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ATI.ElementArray
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ATI.ElementArray (
+  -- * Extension Support
+  glGetATIElementArray,
+  gl_ATI_element_array,
+  -- * Enums
+  pattern GL_ELEMENT_ARRAY_ATI,
+  pattern GL_ELEMENT_ARRAY_POINTER_ATI,
+  pattern GL_ELEMENT_ARRAY_TYPE_ATI,
+  -- * Functions
+  glDrawElementArrayATI,
+  glDrawRangeElementArrayATI,
+  glElementPointerATI
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ATI/EnvmapBumpmap.hs b/src/Graphics/GL/ATI/EnvmapBumpmap.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ATI/EnvmapBumpmap.hs
@@ -0,0 +1,36 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ATI.EnvmapBumpmap
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ATI.EnvmapBumpmap (
+  -- * Extension Support
+  glGetATIEnvmapBumpmap,
+  gl_ATI_envmap_bumpmap,
+  -- * Enums
+  pattern GL_BUMP_ENVMAP_ATI,
+  pattern GL_BUMP_NUM_TEX_UNITS_ATI,
+  pattern GL_BUMP_ROT_MATRIX_ATI,
+  pattern GL_BUMP_ROT_MATRIX_SIZE_ATI,
+  pattern GL_BUMP_TARGET_ATI,
+  pattern GL_BUMP_TEX_UNITS_ATI,
+  pattern GL_DU8DV8_ATI,
+  pattern GL_DUDV_ATI,
+  -- * Functions
+  glGetTexBumpParameterfvATI,
+  glGetTexBumpParameterivATI,
+  glTexBumpParameterfvATI,
+  glTexBumpParameterivATI
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ATI/FragmentShader.hs b/src/Graphics/GL/ATI/FragmentShader.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ATI/FragmentShader.hs
@@ -0,0 +1,142 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ATI.FragmentShader
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ATI.FragmentShader (
+  -- * Extension Support
+  glGetATIFragmentShader,
+  gl_ATI_fragment_shader,
+  -- * Enums
+  pattern GL_2X_BIT_ATI,
+  pattern GL_4X_BIT_ATI,
+  pattern GL_8X_BIT_ATI,
+  pattern GL_ADD_ATI,
+  pattern GL_BIAS_BIT_ATI,
+  pattern GL_BLUE_BIT_ATI,
+  pattern GL_CND0_ATI,
+  pattern GL_CND_ATI,
+  pattern GL_COLOR_ALPHA_PAIRING_ATI,
+  pattern GL_COMP_BIT_ATI,
+  pattern GL_CON_0_ATI,
+  pattern GL_CON_10_ATI,
+  pattern GL_CON_11_ATI,
+  pattern GL_CON_12_ATI,
+  pattern GL_CON_13_ATI,
+  pattern GL_CON_14_ATI,
+  pattern GL_CON_15_ATI,
+  pattern GL_CON_16_ATI,
+  pattern GL_CON_17_ATI,
+  pattern GL_CON_18_ATI,
+  pattern GL_CON_19_ATI,
+  pattern GL_CON_1_ATI,
+  pattern GL_CON_20_ATI,
+  pattern GL_CON_21_ATI,
+  pattern GL_CON_22_ATI,
+  pattern GL_CON_23_ATI,
+  pattern GL_CON_24_ATI,
+  pattern GL_CON_25_ATI,
+  pattern GL_CON_26_ATI,
+  pattern GL_CON_27_ATI,
+  pattern GL_CON_28_ATI,
+  pattern GL_CON_29_ATI,
+  pattern GL_CON_2_ATI,
+  pattern GL_CON_30_ATI,
+  pattern GL_CON_31_ATI,
+  pattern GL_CON_3_ATI,
+  pattern GL_CON_4_ATI,
+  pattern GL_CON_5_ATI,
+  pattern GL_CON_6_ATI,
+  pattern GL_CON_7_ATI,
+  pattern GL_CON_8_ATI,
+  pattern GL_CON_9_ATI,
+  pattern GL_DOT2_ADD_ATI,
+  pattern GL_DOT3_ATI,
+  pattern GL_DOT4_ATI,
+  pattern GL_EIGHTH_BIT_ATI,
+  pattern GL_FRAGMENT_SHADER_ATI,
+  pattern GL_GREEN_BIT_ATI,
+  pattern GL_HALF_BIT_ATI,
+  pattern GL_LERP_ATI,
+  pattern GL_MAD_ATI,
+  pattern GL_MOV_ATI,
+  pattern GL_MUL_ATI,
+  pattern GL_NEGATE_BIT_ATI,
+  pattern GL_NUM_FRAGMENT_CONSTANTS_ATI,
+  pattern GL_NUM_FRAGMENT_REGISTERS_ATI,
+  pattern GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI,
+  pattern GL_NUM_INSTRUCTIONS_PER_PASS_ATI,
+  pattern GL_NUM_INSTRUCTIONS_TOTAL_ATI,
+  pattern GL_NUM_LOOPBACK_COMPONENTS_ATI,
+  pattern GL_NUM_PASSES_ATI,
+  pattern GL_QUARTER_BIT_ATI,
+  pattern GL_RED_BIT_ATI,
+  pattern GL_REG_0_ATI,
+  pattern GL_REG_10_ATI,
+  pattern GL_REG_11_ATI,
+  pattern GL_REG_12_ATI,
+  pattern GL_REG_13_ATI,
+  pattern GL_REG_14_ATI,
+  pattern GL_REG_15_ATI,
+  pattern GL_REG_16_ATI,
+  pattern GL_REG_17_ATI,
+  pattern GL_REG_18_ATI,
+  pattern GL_REG_19_ATI,
+  pattern GL_REG_1_ATI,
+  pattern GL_REG_20_ATI,
+  pattern GL_REG_21_ATI,
+  pattern GL_REG_22_ATI,
+  pattern GL_REG_23_ATI,
+  pattern GL_REG_24_ATI,
+  pattern GL_REG_25_ATI,
+  pattern GL_REG_26_ATI,
+  pattern GL_REG_27_ATI,
+  pattern GL_REG_28_ATI,
+  pattern GL_REG_29_ATI,
+  pattern GL_REG_2_ATI,
+  pattern GL_REG_30_ATI,
+  pattern GL_REG_31_ATI,
+  pattern GL_REG_3_ATI,
+  pattern GL_REG_4_ATI,
+  pattern GL_REG_5_ATI,
+  pattern GL_REG_6_ATI,
+  pattern GL_REG_7_ATI,
+  pattern GL_REG_8_ATI,
+  pattern GL_REG_9_ATI,
+  pattern GL_SATURATE_BIT_ATI,
+  pattern GL_SECONDARY_INTERPOLATOR_ATI,
+  pattern GL_SUB_ATI,
+  pattern GL_SWIZZLE_STQ_ATI,
+  pattern GL_SWIZZLE_STQ_DQ_ATI,
+  pattern GL_SWIZZLE_STRQ_ATI,
+  pattern GL_SWIZZLE_STRQ_DQ_ATI,
+  pattern GL_SWIZZLE_STR_ATI,
+  pattern GL_SWIZZLE_STR_DR_ATI,
+  -- * Functions
+  glAlphaFragmentOp1ATI,
+  glAlphaFragmentOp2ATI,
+  glAlphaFragmentOp3ATI,
+  glBeginFragmentShaderATI,
+  glBindFragmentShaderATI,
+  glColorFragmentOp1ATI,
+  glColorFragmentOp2ATI,
+  glColorFragmentOp3ATI,
+  glDeleteFragmentShaderATI,
+  glEndFragmentShaderATI,
+  glGenFragmentShadersATI,
+  glPassTexCoordATI,
+  glSampleMapATI,
+  glSetFragmentShaderConstantATI
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ATI/MapObjectBuffer.hs b/src/Graphics/GL/ATI/MapObjectBuffer.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ATI/MapObjectBuffer.hs
@@ -0,0 +1,23 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ATI.MapObjectBuffer
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ATI.MapObjectBuffer (
+  -- * Extension Support
+  glGetATIMapObjectBuffer,
+  gl_ATI_map_object_buffer,
+  -- * Functions
+  glMapObjectBufferATI,
+  glUnmapObjectBufferATI
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ATI/Meminfo.hs b/src/Graphics/GL/ATI/Meminfo.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ATI/Meminfo.hs
@@ -0,0 +1,25 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ATI.Meminfo
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ATI.Meminfo (
+  -- * Extension Support
+  glGetATIMeminfo,
+  gl_ATI_meminfo,
+  -- * Enums
+  pattern GL_RENDERBUFFER_FREE_MEMORY_ATI,
+  pattern GL_TEXTURE_FREE_MEMORY_ATI,
+  pattern GL_VBO_FREE_MEMORY_ATI
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/ATI/PNTriangles.hs b/src/Graphics/GL/ATI/PNTriangles.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ATI/PNTriangles.hs
@@ -0,0 +1,35 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ATI.PNTriangles
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ATI.PNTriangles (
+  -- * Extension Support
+  glGetATIPNTriangles,
+  gl_ATI_pn_triangles,
+  -- * Enums
+  pattern GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI,
+  pattern GL_PN_TRIANGLES_ATI,
+  pattern GL_PN_TRIANGLES_NORMAL_MODE_ATI,
+  pattern GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI,
+  pattern GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI,
+  pattern GL_PN_TRIANGLES_POINT_MODE_ATI,
+  pattern GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI,
+  pattern GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI,
+  pattern GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI,
+  -- * Functions
+  glPNTrianglesfATI,
+  glPNTrianglesiATI
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ATI/PixelFormatFloat.hs b/src/Graphics/GL/ATI/PixelFormatFloat.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ATI/PixelFormatFloat.hs
@@ -0,0 +1,24 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ATI.PixelFormatFloat
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ATI.PixelFormatFloat (
+  -- * Extension Support
+  glGetATIPixelFormatFloat,
+  gl_ATI_pixel_format_float,
+  -- * Enums
+  pattern GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI,
+  pattern GL_RGBA_FLOAT_MODE_ATI
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/ATI/SeparateStencil.hs b/src/Graphics/GL/ATI/SeparateStencil.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ATI/SeparateStencil.hs
@@ -0,0 +1,30 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ATI.SeparateStencil
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ATI.SeparateStencil (
+  -- * Extension Support
+  glGetATISeparateStencil,
+  gl_ATI_separate_stencil,
+  -- * Enums
+  pattern GL_STENCIL_BACK_FAIL_ATI,
+  pattern GL_STENCIL_BACK_FUNC_ATI,
+  pattern GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI,
+  pattern GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI,
+  -- * Functions
+  glStencilFuncSeparateATI,
+  glStencilOpSeparateATI
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ATI/TextFragmentShader.hs b/src/Graphics/GL/ATI/TextFragmentShader.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ATI/TextFragmentShader.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ATI.TextFragmentShader
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ATI.TextFragmentShader (
+  -- * Extension Support
+  glGetATITextFragmentShader,
+  gl_ATI_text_fragment_shader,
+  -- * Enums
+  pattern GL_TEXT_FRAGMENT_SHADER_ATI
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/ATI/TextureEnvCombine3.hs b/src/Graphics/GL/ATI/TextureEnvCombine3.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ATI/TextureEnvCombine3.hs
@@ -0,0 +1,25 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ATI.TextureEnvCombine3
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ATI.TextureEnvCombine3 (
+  -- * Extension Support
+  glGetATITextureEnvCombine3,
+  gl_ATI_texture_env_combine3,
+  -- * Enums
+  pattern GL_MODULATE_ADD_ATI,
+  pattern GL_MODULATE_SIGNED_ADD_ATI,
+  pattern GL_MODULATE_SUBTRACT_ATI
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/ATI/TextureFloat.hs b/src/Graphics/GL/ATI/TextureFloat.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ATI/TextureFloat.hs
@@ -0,0 +1,34 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ATI.TextureFloat
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ATI.TextureFloat (
+  -- * Extension Support
+  glGetATITextureFloat,
+  gl_ATI_texture_float,
+  -- * Enums
+  pattern GL_ALPHA_FLOAT16_ATI,
+  pattern GL_ALPHA_FLOAT32_ATI,
+  pattern GL_INTENSITY_FLOAT16_ATI,
+  pattern GL_INTENSITY_FLOAT32_ATI,
+  pattern GL_LUMINANCE_ALPHA_FLOAT16_ATI,
+  pattern GL_LUMINANCE_ALPHA_FLOAT32_ATI,
+  pattern GL_LUMINANCE_FLOAT16_ATI,
+  pattern GL_LUMINANCE_FLOAT32_ATI,
+  pattern GL_RGBA_FLOAT16_ATI,
+  pattern GL_RGBA_FLOAT32_ATI,
+  pattern GL_RGB_FLOAT16_ATI,
+  pattern GL_RGB_FLOAT32_ATI
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/ATI/TextureMirrorOnce.hs b/src/Graphics/GL/ATI/TextureMirrorOnce.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ATI/TextureMirrorOnce.hs
@@ -0,0 +1,24 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ATI.TextureMirrorOnce
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ATI.TextureMirrorOnce (
+  -- * Extension Support
+  glGetATITextureMirrorOnce,
+  gl_ATI_texture_mirror_once,
+  -- * Enums
+  pattern GL_MIRROR_CLAMP_ATI,
+  pattern GL_MIRROR_CLAMP_TO_EDGE_ATI
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/ATI/VertexArrayObject.hs b/src/Graphics/GL/ATI/VertexArrayObject.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ATI/VertexArrayObject.hs
@@ -0,0 +1,44 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ATI.VertexArrayObject
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ATI.VertexArrayObject (
+  -- * Extension Support
+  glGetATIVertexArrayObject,
+  gl_ATI_vertex_array_object,
+  -- * Enums
+  pattern GL_ARRAY_OBJECT_BUFFER_ATI,
+  pattern GL_ARRAY_OBJECT_OFFSET_ATI,
+  pattern GL_DISCARD_ATI,
+  pattern GL_DYNAMIC_ATI,
+  pattern GL_OBJECT_BUFFER_SIZE_ATI,
+  pattern GL_OBJECT_BUFFER_USAGE_ATI,
+  pattern GL_PRESERVE_ATI,
+  pattern GL_STATIC_ATI,
+  -- * Functions
+  glArrayObjectATI,
+  glFreeObjectBufferATI,
+  glGetArrayObjectfvATI,
+  glGetArrayObjectivATI,
+  glGetObjectBufferfvATI,
+  glGetObjectBufferivATI,
+  glGetVariantArrayObjectfvATI,
+  glGetVariantArrayObjectivATI,
+  glIsObjectBufferATI,
+  glNewObjectBufferATI,
+  glUpdateObjectBufferATI,
+  glVariantArrayObjectATI
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ATI/VertexAttribArrayObject.hs b/src/Graphics/GL/ATI/VertexAttribArrayObject.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ATI/VertexAttribArrayObject.hs
@@ -0,0 +1,24 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ATI.VertexAttribArrayObject
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ATI.VertexAttribArrayObject (
+  -- * Extension Support
+  glGetATIVertexAttribArrayObject,
+  gl_ATI_vertex_attrib_array_object,
+  -- * Functions
+  glGetVertexAttribArrayObjectfvATI,
+  glGetVertexAttribArrayObjectivATI,
+  glVertexAttribArrayObjectATI
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ATI/VertexStreams.hs b/src/Graphics/GL/ATI/VertexStreams.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ATI/VertexStreams.hs
@@ -0,0 +1,79 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ATI.VertexStreams
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ATI.VertexStreams (
+  -- * Extension Support
+  glGetATIVertexStreams,
+  gl_ATI_vertex_streams,
+  -- * Enums
+  pattern GL_MAX_VERTEX_STREAMS_ATI,
+  pattern GL_VERTEX_SOURCE_ATI,
+  pattern GL_VERTEX_STREAM0_ATI,
+  pattern GL_VERTEX_STREAM1_ATI,
+  pattern GL_VERTEX_STREAM2_ATI,
+  pattern GL_VERTEX_STREAM3_ATI,
+  pattern GL_VERTEX_STREAM4_ATI,
+  pattern GL_VERTEX_STREAM5_ATI,
+  pattern GL_VERTEX_STREAM6_ATI,
+  pattern GL_VERTEX_STREAM7_ATI,
+  -- * Functions
+  glClientActiveVertexStreamATI,
+  glNormalStream3bATI,
+  glNormalStream3bvATI,
+  glNormalStream3dATI,
+  glNormalStream3dvATI,
+  glNormalStream3fATI,
+  glNormalStream3fvATI,
+  glNormalStream3iATI,
+  glNormalStream3ivATI,
+  glNormalStream3sATI,
+  glNormalStream3svATI,
+  glVertexBlendEnvfATI,
+  glVertexBlendEnviATI,
+  glVertexStream1dATI,
+  glVertexStream1dvATI,
+  glVertexStream1fATI,
+  glVertexStream1fvATI,
+  glVertexStream1iATI,
+  glVertexStream1ivATI,
+  glVertexStream1sATI,
+  glVertexStream1svATI,
+  glVertexStream2dATI,
+  glVertexStream2dvATI,
+  glVertexStream2fATI,
+  glVertexStream2fvATI,
+  glVertexStream2iATI,
+  glVertexStream2ivATI,
+  glVertexStream2sATI,
+  glVertexStream2svATI,
+  glVertexStream3dATI,
+  glVertexStream3dvATI,
+  glVertexStream3fATI,
+  glVertexStream3fvATI,
+  glVertexStream3iATI,
+  glVertexStream3ivATI,
+  glVertexStream3sATI,
+  glVertexStream3svATI,
+  glVertexStream4dATI,
+  glVertexStream4dvATI,
+  glVertexStream4fATI,
+  glVertexStream4fvATI,
+  glVertexStream4iATI,
+  glVertexStream4ivATI,
+  glVertexStream4sATI,
+  glVertexStream4svATI
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/Compatibility30.hs b/src/Graphics/GL/Compatibility30.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Compatibility30.hs
@@ -0,0 +1,1785 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Compatibility30
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Compatibility30 (
+  -- * Types
+  GLbitfield,
+  GLboolean,
+  GLbyte,
+  GLchar,
+  GLclampd,
+  GLclampf,
+  GLdouble,
+  GLenum,
+  GLfloat,
+  GLhalf,
+  GLint,
+  GLintptr,
+  GLshort,
+  GLsizei,
+  GLsizeiptr,
+  GLubyte,
+  GLuint,
+  GLushort,
+  GLvoid,
+  -- * Enums
+  pattern GL_2D,
+  pattern GL_2_BYTES,
+  pattern GL_3D,
+  pattern GL_3D_COLOR,
+  pattern GL_3D_COLOR_TEXTURE,
+  pattern GL_3_BYTES,
+  pattern GL_4D_COLOR_TEXTURE,
+  pattern GL_4_BYTES,
+  pattern GL_ACCUM,
+  pattern GL_ACCUM_ALPHA_BITS,
+  pattern GL_ACCUM_BLUE_BITS,
+  pattern GL_ACCUM_BUFFER_BIT,
+  pattern GL_ACCUM_CLEAR_VALUE,
+  pattern GL_ACCUM_GREEN_BITS,
+  pattern GL_ACCUM_RED_BITS,
+  pattern GL_ACTIVE_ATTRIBUTES,
+  pattern GL_ACTIVE_ATTRIBUTE_MAX_LENGTH,
+  pattern GL_ACTIVE_TEXTURE,
+  pattern GL_ACTIVE_UNIFORMS,
+  pattern GL_ACTIVE_UNIFORM_MAX_LENGTH,
+  pattern GL_ADD,
+  pattern GL_ADD_SIGNED,
+  pattern GL_ALIASED_LINE_WIDTH_RANGE,
+  pattern GL_ALIASED_POINT_SIZE_RANGE,
+  pattern GL_ALL_ATTRIB_BITS,
+  pattern GL_ALPHA,
+  pattern GL_ALPHA12,
+  pattern GL_ALPHA16,
+  pattern GL_ALPHA4,
+  pattern GL_ALPHA8,
+  pattern GL_ALPHA_BIAS,
+  pattern GL_ALPHA_BITS,
+  pattern GL_ALPHA_INTEGER,
+  pattern GL_ALPHA_SCALE,
+  pattern GL_ALPHA_TEST,
+  pattern GL_ALPHA_TEST_FUNC,
+  pattern GL_ALPHA_TEST_REF,
+  pattern GL_ALWAYS,
+  pattern GL_AMBIENT,
+  pattern GL_AMBIENT_AND_DIFFUSE,
+  pattern GL_AND,
+  pattern GL_AND_INVERTED,
+  pattern GL_AND_REVERSE,
+  pattern GL_ARRAY_BUFFER,
+  pattern GL_ARRAY_BUFFER_BINDING,
+  pattern GL_ATTACHED_SHADERS,
+  pattern GL_ATTRIB_STACK_DEPTH,
+  pattern GL_AUTO_NORMAL,
+  pattern GL_AUX0,
+  pattern GL_AUX1,
+  pattern GL_AUX2,
+  pattern GL_AUX3,
+  pattern GL_AUX_BUFFERS,
+  pattern GL_BACK,
+  pattern GL_BACK_LEFT,
+  pattern GL_BACK_RIGHT,
+  pattern GL_BGR,
+  pattern GL_BGRA,
+  pattern GL_BGRA_INTEGER,
+  pattern GL_BGR_INTEGER,
+  pattern GL_BITMAP,
+  pattern GL_BITMAP_TOKEN,
+  pattern GL_BLEND,
+  pattern GL_BLEND_COLOR,
+  pattern GL_BLEND_DST,
+  pattern GL_BLEND_DST_ALPHA,
+  pattern GL_BLEND_DST_RGB,
+  pattern GL_BLEND_EQUATION,
+  pattern GL_BLEND_EQUATION_ALPHA,
+  pattern GL_BLEND_EQUATION_RGB,
+  pattern GL_BLEND_SRC,
+  pattern GL_BLEND_SRC_ALPHA,
+  pattern GL_BLEND_SRC_RGB,
+  pattern GL_BLUE,
+  pattern GL_BLUE_BIAS,
+  pattern GL_BLUE_BITS,
+  pattern GL_BLUE_INTEGER,
+  pattern GL_BLUE_SCALE,
+  pattern GL_BOOL,
+  pattern GL_BOOL_VEC2,
+  pattern GL_BOOL_VEC3,
+  pattern GL_BOOL_VEC4,
+  pattern GL_BUFFER_ACCESS,
+  pattern GL_BUFFER_ACCESS_FLAGS,
+  pattern GL_BUFFER_MAPPED,
+  pattern GL_BUFFER_MAP_LENGTH,
+  pattern GL_BUFFER_MAP_OFFSET,
+  pattern GL_BUFFER_MAP_POINTER,
+  pattern GL_BUFFER_SIZE,
+  pattern GL_BUFFER_USAGE,
+  pattern GL_BYTE,
+  pattern GL_C3F_V3F,
+  pattern GL_C4F_N3F_V3F,
+  pattern GL_C4UB_V2F,
+  pattern GL_C4UB_V3F,
+  pattern GL_CCW,
+  pattern GL_CLAMP,
+  pattern GL_CLAMP_FRAGMENT_COLOR,
+  pattern GL_CLAMP_READ_COLOR,
+  pattern GL_CLAMP_TO_BORDER,
+  pattern GL_CLAMP_TO_EDGE,
+  pattern GL_CLAMP_VERTEX_COLOR,
+  pattern GL_CLEAR,
+  pattern GL_CLIENT_ACTIVE_TEXTURE,
+  pattern GL_CLIENT_ALL_ATTRIB_BITS,
+  pattern GL_CLIENT_ATTRIB_STACK_DEPTH,
+  pattern GL_CLIENT_PIXEL_STORE_BIT,
+  pattern GL_CLIENT_VERTEX_ARRAY_BIT,
+  pattern GL_CLIP_DISTANCE0,
+  pattern GL_CLIP_DISTANCE1,
+  pattern GL_CLIP_DISTANCE2,
+  pattern GL_CLIP_DISTANCE3,
+  pattern GL_CLIP_DISTANCE4,
+  pattern GL_CLIP_DISTANCE5,
+  pattern GL_CLIP_DISTANCE6,
+  pattern GL_CLIP_DISTANCE7,
+  pattern GL_CLIP_PLANE0,
+  pattern GL_CLIP_PLANE1,
+  pattern GL_CLIP_PLANE2,
+  pattern GL_CLIP_PLANE3,
+  pattern GL_CLIP_PLANE4,
+  pattern GL_CLIP_PLANE5,
+  pattern GL_COEFF,
+  pattern GL_COLOR,
+  pattern GL_COLOR_ARRAY,
+  pattern GL_COLOR_ARRAY_BUFFER_BINDING,
+  pattern GL_COLOR_ARRAY_POINTER,
+  pattern GL_COLOR_ARRAY_SIZE,
+  pattern GL_COLOR_ARRAY_STRIDE,
+  pattern GL_COLOR_ARRAY_TYPE,
+  pattern GL_COLOR_ATTACHMENT0,
+  pattern GL_COLOR_ATTACHMENT1,
+  pattern GL_COLOR_ATTACHMENT10,
+  pattern GL_COLOR_ATTACHMENT11,
+  pattern GL_COLOR_ATTACHMENT12,
+  pattern GL_COLOR_ATTACHMENT13,
+  pattern GL_COLOR_ATTACHMENT14,
+  pattern GL_COLOR_ATTACHMENT15,
+  pattern GL_COLOR_ATTACHMENT16,
+  pattern GL_COLOR_ATTACHMENT17,
+  pattern GL_COLOR_ATTACHMENT18,
+  pattern GL_COLOR_ATTACHMENT19,
+  pattern GL_COLOR_ATTACHMENT2,
+  pattern GL_COLOR_ATTACHMENT20,
+  pattern GL_COLOR_ATTACHMENT21,
+  pattern GL_COLOR_ATTACHMENT22,
+  pattern GL_COLOR_ATTACHMENT23,
+  pattern GL_COLOR_ATTACHMENT24,
+  pattern GL_COLOR_ATTACHMENT25,
+  pattern GL_COLOR_ATTACHMENT26,
+  pattern GL_COLOR_ATTACHMENT27,
+  pattern GL_COLOR_ATTACHMENT28,
+  pattern GL_COLOR_ATTACHMENT29,
+  pattern GL_COLOR_ATTACHMENT3,
+  pattern GL_COLOR_ATTACHMENT30,
+  pattern GL_COLOR_ATTACHMENT31,
+  pattern GL_COLOR_ATTACHMENT4,
+  pattern GL_COLOR_ATTACHMENT5,
+  pattern GL_COLOR_ATTACHMENT6,
+  pattern GL_COLOR_ATTACHMENT7,
+  pattern GL_COLOR_ATTACHMENT8,
+  pattern GL_COLOR_ATTACHMENT9,
+  pattern GL_COLOR_BUFFER_BIT,
+  pattern GL_COLOR_CLEAR_VALUE,
+  pattern GL_COLOR_INDEX,
+  pattern GL_COLOR_INDEXES,
+  pattern GL_COLOR_LOGIC_OP,
+  pattern GL_COLOR_MATERIAL,
+  pattern GL_COLOR_MATERIAL_FACE,
+  pattern GL_COLOR_MATERIAL_PARAMETER,
+  pattern GL_COLOR_SUM,
+  pattern GL_COLOR_WRITEMASK,
+  pattern GL_COMBINE,
+  pattern GL_COMBINE_ALPHA,
+  pattern GL_COMBINE_RGB,
+  pattern GL_COMPARE_REF_TO_TEXTURE,
+  pattern GL_COMPARE_R_TO_TEXTURE,
+  pattern GL_COMPILE,
+  pattern GL_COMPILE_AND_EXECUTE,
+  pattern GL_COMPILE_STATUS,
+  pattern GL_COMPRESSED_ALPHA,
+  pattern GL_COMPRESSED_INTENSITY,
+  pattern GL_COMPRESSED_LUMINANCE,
+  pattern GL_COMPRESSED_LUMINANCE_ALPHA,
+  pattern GL_COMPRESSED_RED,
+  pattern GL_COMPRESSED_RED_RGTC1,
+  pattern GL_COMPRESSED_RG,
+  pattern GL_COMPRESSED_RGB,
+  pattern GL_COMPRESSED_RGBA,
+  pattern GL_COMPRESSED_RG_RGTC2,
+  pattern GL_COMPRESSED_SIGNED_RED_RGTC1,
+  pattern GL_COMPRESSED_SIGNED_RG_RGTC2,
+  pattern GL_COMPRESSED_SLUMINANCE,
+  pattern GL_COMPRESSED_SLUMINANCE_ALPHA,
+  pattern GL_COMPRESSED_SRGB,
+  pattern GL_COMPRESSED_SRGB_ALPHA,
+  pattern GL_COMPRESSED_TEXTURE_FORMATS,
+  pattern GL_CONSTANT,
+  pattern GL_CONSTANT_ALPHA,
+  pattern GL_CONSTANT_ATTENUATION,
+  pattern GL_CONSTANT_COLOR,
+  pattern GL_CONTEXT_FLAGS,
+  pattern GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT,
+  pattern GL_COORD_REPLACE,
+  pattern GL_COPY,
+  pattern GL_COPY_INVERTED,
+  pattern GL_COPY_PIXEL_TOKEN,
+  pattern GL_CULL_FACE,
+  pattern GL_CULL_FACE_MODE,
+  pattern GL_CURRENT_BIT,
+  pattern GL_CURRENT_COLOR,
+  pattern GL_CURRENT_FOG_COORD,
+  pattern GL_CURRENT_FOG_COORDINATE,
+  pattern GL_CURRENT_INDEX,
+  pattern GL_CURRENT_NORMAL,
+  pattern GL_CURRENT_PROGRAM,
+  pattern GL_CURRENT_QUERY,
+  pattern GL_CURRENT_RASTER_COLOR,
+  pattern GL_CURRENT_RASTER_DISTANCE,
+  pattern GL_CURRENT_RASTER_INDEX,
+  pattern GL_CURRENT_RASTER_POSITION,
+  pattern GL_CURRENT_RASTER_POSITION_VALID,
+  pattern GL_CURRENT_RASTER_SECONDARY_COLOR,
+  pattern GL_CURRENT_RASTER_TEXTURE_COORDS,
+  pattern GL_CURRENT_SECONDARY_COLOR,
+  pattern GL_CURRENT_TEXTURE_COORDS,
+  pattern GL_CURRENT_VERTEX_ATTRIB,
+  pattern GL_CW,
+  pattern GL_DECAL,
+  pattern GL_DECR,
+  pattern GL_DECR_WRAP,
+  pattern GL_DELETE_STATUS,
+  pattern GL_DEPTH,
+  pattern GL_DEPTH24_STENCIL8,
+  pattern GL_DEPTH32F_STENCIL8,
+  pattern GL_DEPTH_ATTACHMENT,
+  pattern GL_DEPTH_BIAS,
+  pattern GL_DEPTH_BITS,
+  pattern GL_DEPTH_BUFFER_BIT,
+  pattern GL_DEPTH_CLEAR_VALUE,
+  pattern GL_DEPTH_COMPONENT,
+  pattern GL_DEPTH_COMPONENT16,
+  pattern GL_DEPTH_COMPONENT24,
+  pattern GL_DEPTH_COMPONENT32,
+  pattern GL_DEPTH_COMPONENT32F,
+  pattern GL_DEPTH_FUNC,
+  pattern GL_DEPTH_RANGE,
+  pattern GL_DEPTH_SCALE,
+  pattern GL_DEPTH_STENCIL,
+  pattern GL_DEPTH_STENCIL_ATTACHMENT,
+  pattern GL_DEPTH_TEST,
+  pattern GL_DEPTH_TEXTURE_MODE,
+  pattern GL_DEPTH_WRITEMASK,
+  pattern GL_DIFFUSE,
+  pattern GL_DITHER,
+  pattern GL_DOMAIN,
+  pattern GL_DONT_CARE,
+  pattern GL_DOT3_RGB,
+  pattern GL_DOT3_RGBA,
+  pattern GL_DOUBLE,
+  pattern GL_DOUBLEBUFFER,
+  pattern GL_DRAW_BUFFER,
+  pattern GL_DRAW_BUFFER0,
+  pattern GL_DRAW_BUFFER1,
+  pattern GL_DRAW_BUFFER10,
+  pattern GL_DRAW_BUFFER11,
+  pattern GL_DRAW_BUFFER12,
+  pattern GL_DRAW_BUFFER13,
+  pattern GL_DRAW_BUFFER14,
+  pattern GL_DRAW_BUFFER15,
+  pattern GL_DRAW_BUFFER2,
+  pattern GL_DRAW_BUFFER3,
+  pattern GL_DRAW_BUFFER4,
+  pattern GL_DRAW_BUFFER5,
+  pattern GL_DRAW_BUFFER6,
+  pattern GL_DRAW_BUFFER7,
+  pattern GL_DRAW_BUFFER8,
+  pattern GL_DRAW_BUFFER9,
+  pattern GL_DRAW_FRAMEBUFFER,
+  pattern GL_DRAW_FRAMEBUFFER_BINDING,
+  pattern GL_DRAW_PIXEL_TOKEN,
+  pattern GL_DST_ALPHA,
+  pattern GL_DST_COLOR,
+  pattern GL_DYNAMIC_COPY,
+  pattern GL_DYNAMIC_DRAW,
+  pattern GL_DYNAMIC_READ,
+  pattern GL_EDGE_FLAG,
+  pattern GL_EDGE_FLAG_ARRAY,
+  pattern GL_EDGE_FLAG_ARRAY_BUFFER_BINDING,
+  pattern GL_EDGE_FLAG_ARRAY_POINTER,
+  pattern GL_EDGE_FLAG_ARRAY_STRIDE,
+  pattern GL_ELEMENT_ARRAY_BUFFER,
+  pattern GL_ELEMENT_ARRAY_BUFFER_BINDING,
+  pattern GL_EMISSION,
+  pattern GL_ENABLE_BIT,
+  pattern GL_EQUAL,
+  pattern GL_EQUIV,
+  pattern GL_EVAL_BIT,
+  pattern GL_EXP,
+  pattern GL_EXP2,
+  pattern GL_EXTENSIONS,
+  pattern GL_EYE_LINEAR,
+  pattern GL_EYE_PLANE,
+  pattern GL_FALSE,
+  pattern GL_FASTEST,
+  pattern GL_FEEDBACK,
+  pattern GL_FEEDBACK_BUFFER_POINTER,
+  pattern GL_FEEDBACK_BUFFER_SIZE,
+  pattern GL_FEEDBACK_BUFFER_TYPE,
+  pattern GL_FILL,
+  pattern GL_FIXED_ONLY,
+  pattern GL_FLAT,
+  pattern GL_FLOAT,
+  pattern GL_FLOAT_32_UNSIGNED_INT_24_8_REV,
+  pattern GL_FLOAT_MAT2,
+  pattern GL_FLOAT_MAT2x3,
+  pattern GL_FLOAT_MAT2x4,
+  pattern GL_FLOAT_MAT3,
+  pattern GL_FLOAT_MAT3x2,
+  pattern GL_FLOAT_MAT3x4,
+  pattern GL_FLOAT_MAT4,
+  pattern GL_FLOAT_MAT4x2,
+  pattern GL_FLOAT_MAT4x3,
+  pattern GL_FLOAT_VEC2,
+  pattern GL_FLOAT_VEC3,
+  pattern GL_FLOAT_VEC4,
+  pattern GL_FOG,
+  pattern GL_FOG_BIT,
+  pattern GL_FOG_COLOR,
+  pattern GL_FOG_COORD,
+  pattern GL_FOG_COORDINATE,
+  pattern GL_FOG_COORDINATE_ARRAY,
+  pattern GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING,
+  pattern GL_FOG_COORDINATE_ARRAY_POINTER,
+  pattern GL_FOG_COORDINATE_ARRAY_STRIDE,
+  pattern GL_FOG_COORDINATE_ARRAY_TYPE,
+  pattern GL_FOG_COORDINATE_SOURCE,
+  pattern GL_FOG_COORD_ARRAY,
+  pattern GL_FOG_COORD_ARRAY_BUFFER_BINDING,
+  pattern GL_FOG_COORD_ARRAY_POINTER,
+  pattern GL_FOG_COORD_ARRAY_STRIDE,
+  pattern GL_FOG_COORD_ARRAY_TYPE,
+  pattern GL_FOG_COORD_SRC,
+  pattern GL_FOG_DENSITY,
+  pattern GL_FOG_END,
+  pattern GL_FOG_HINT,
+  pattern GL_FOG_INDEX,
+  pattern GL_FOG_MODE,
+  pattern GL_FOG_START,
+  pattern GL_FRAGMENT_DEPTH,
+  pattern GL_FRAGMENT_SHADER,
+  pattern GL_FRAGMENT_SHADER_DERIVATIVE_HINT,
+  pattern GL_FRAMEBUFFER,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL,
+  pattern GL_FRAMEBUFFER_BINDING,
+  pattern GL_FRAMEBUFFER_COMPLETE,
+  pattern GL_FRAMEBUFFER_DEFAULT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER,
+  pattern GL_FRAMEBUFFER_SRGB,
+  pattern GL_FRAMEBUFFER_UNDEFINED,
+  pattern GL_FRAMEBUFFER_UNSUPPORTED,
+  pattern GL_FRONT,
+  pattern GL_FRONT_AND_BACK,
+  pattern GL_FRONT_FACE,
+  pattern GL_FRONT_LEFT,
+  pattern GL_FRONT_RIGHT,
+  pattern GL_FUNC_ADD,
+  pattern GL_FUNC_REVERSE_SUBTRACT,
+  pattern GL_FUNC_SUBTRACT,
+  pattern GL_GENERATE_MIPMAP,
+  pattern GL_GENERATE_MIPMAP_HINT,
+  pattern GL_GEQUAL,
+  pattern GL_GREATER,
+  pattern GL_GREEN,
+  pattern GL_GREEN_BIAS,
+  pattern GL_GREEN_BITS,
+  pattern GL_GREEN_INTEGER,
+  pattern GL_GREEN_SCALE,
+  pattern GL_HALF_FLOAT,
+  pattern GL_HINT_BIT,
+  pattern GL_INCR,
+  pattern GL_INCR_WRAP,
+  pattern GL_INDEX,
+  pattern GL_INDEX_ARRAY,
+  pattern GL_INDEX_ARRAY_BUFFER_BINDING,
+  pattern GL_INDEX_ARRAY_POINTER,
+  pattern GL_INDEX_ARRAY_STRIDE,
+  pattern GL_INDEX_ARRAY_TYPE,
+  pattern GL_INDEX_BITS,
+  pattern GL_INDEX_CLEAR_VALUE,
+  pattern GL_INDEX_LOGIC_OP,
+  pattern GL_INDEX_MODE,
+  pattern GL_INDEX_OFFSET,
+  pattern GL_INDEX_SHIFT,
+  pattern GL_INDEX_WRITEMASK,
+  pattern GL_INFO_LOG_LENGTH,
+  pattern GL_INT,
+  pattern GL_INTENSITY,
+  pattern GL_INTENSITY12,
+  pattern GL_INTENSITY16,
+  pattern GL_INTENSITY4,
+  pattern GL_INTENSITY8,
+  pattern GL_INTERLEAVED_ATTRIBS,
+  pattern GL_INTERPOLATE,
+  pattern GL_INT_SAMPLER_1D,
+  pattern GL_INT_SAMPLER_1D_ARRAY,
+  pattern GL_INT_SAMPLER_2D,
+  pattern GL_INT_SAMPLER_2D_ARRAY,
+  pattern GL_INT_SAMPLER_3D,
+  pattern GL_INT_SAMPLER_CUBE,
+  pattern GL_INT_VEC2,
+  pattern GL_INT_VEC3,
+  pattern GL_INT_VEC4,
+  pattern GL_INVALID_ENUM,
+  pattern GL_INVALID_FRAMEBUFFER_OPERATION,
+  pattern GL_INVALID_OPERATION,
+  pattern GL_INVALID_VALUE,
+  pattern GL_INVERT,
+  pattern GL_KEEP,
+  pattern GL_LEFT,
+  pattern GL_LEQUAL,
+  pattern GL_LESS,
+  pattern GL_LIGHT0,
+  pattern GL_LIGHT1,
+  pattern GL_LIGHT2,
+  pattern GL_LIGHT3,
+  pattern GL_LIGHT4,
+  pattern GL_LIGHT5,
+  pattern GL_LIGHT6,
+  pattern GL_LIGHT7,
+  pattern GL_LIGHTING,
+  pattern GL_LIGHTING_BIT,
+  pattern GL_LIGHT_MODEL_AMBIENT,
+  pattern GL_LIGHT_MODEL_COLOR_CONTROL,
+  pattern GL_LIGHT_MODEL_LOCAL_VIEWER,
+  pattern GL_LIGHT_MODEL_TWO_SIDE,
+  pattern GL_LINE,
+  pattern GL_LINEAR,
+  pattern GL_LINEAR_ATTENUATION,
+  pattern GL_LINEAR_MIPMAP_LINEAR,
+  pattern GL_LINEAR_MIPMAP_NEAREST,
+  pattern GL_LINES,
+  pattern GL_LINE_BIT,
+  pattern GL_LINE_LOOP,
+  pattern GL_LINE_RESET_TOKEN,
+  pattern GL_LINE_SMOOTH,
+  pattern GL_LINE_SMOOTH_HINT,
+  pattern GL_LINE_STIPPLE,
+  pattern GL_LINE_STIPPLE_PATTERN,
+  pattern GL_LINE_STIPPLE_REPEAT,
+  pattern GL_LINE_STRIP,
+  pattern GL_LINE_TOKEN,
+  pattern GL_LINE_WIDTH,
+  pattern GL_LINE_WIDTH_GRANULARITY,
+  pattern GL_LINE_WIDTH_RANGE,
+  pattern GL_LINK_STATUS,
+  pattern GL_LIST_BASE,
+  pattern GL_LIST_BIT,
+  pattern GL_LIST_INDEX,
+  pattern GL_LIST_MODE,
+  pattern GL_LOAD,
+  pattern GL_LOGIC_OP,
+  pattern GL_LOGIC_OP_MODE,
+  pattern GL_LOWER_LEFT,
+  pattern GL_LUMINANCE,
+  pattern GL_LUMINANCE12,
+  pattern GL_LUMINANCE12_ALPHA12,
+  pattern GL_LUMINANCE12_ALPHA4,
+  pattern GL_LUMINANCE16,
+  pattern GL_LUMINANCE16_ALPHA16,
+  pattern GL_LUMINANCE4,
+  pattern GL_LUMINANCE4_ALPHA4,
+  pattern GL_LUMINANCE6_ALPHA2,
+  pattern GL_LUMINANCE8,
+  pattern GL_LUMINANCE8_ALPHA8,
+  pattern GL_LUMINANCE_ALPHA,
+  pattern GL_MAJOR_VERSION,
+  pattern GL_MAP1_COLOR_4,
+  pattern GL_MAP1_GRID_DOMAIN,
+  pattern GL_MAP1_GRID_SEGMENTS,
+  pattern GL_MAP1_INDEX,
+  pattern GL_MAP1_NORMAL,
+  pattern GL_MAP1_TEXTURE_COORD_1,
+  pattern GL_MAP1_TEXTURE_COORD_2,
+  pattern GL_MAP1_TEXTURE_COORD_3,
+  pattern GL_MAP1_TEXTURE_COORD_4,
+  pattern GL_MAP1_VERTEX_3,
+  pattern GL_MAP1_VERTEX_4,
+  pattern GL_MAP2_COLOR_4,
+  pattern GL_MAP2_GRID_DOMAIN,
+  pattern GL_MAP2_GRID_SEGMENTS,
+  pattern GL_MAP2_INDEX,
+  pattern GL_MAP2_NORMAL,
+  pattern GL_MAP2_TEXTURE_COORD_1,
+  pattern GL_MAP2_TEXTURE_COORD_2,
+  pattern GL_MAP2_TEXTURE_COORD_3,
+  pattern GL_MAP2_TEXTURE_COORD_4,
+  pattern GL_MAP2_VERTEX_3,
+  pattern GL_MAP2_VERTEX_4,
+  pattern GL_MAP_COLOR,
+  pattern GL_MAP_FLUSH_EXPLICIT_BIT,
+  pattern GL_MAP_INVALIDATE_BUFFER_BIT,
+  pattern GL_MAP_INVALIDATE_RANGE_BIT,
+  pattern GL_MAP_READ_BIT,
+  pattern GL_MAP_STENCIL,
+  pattern GL_MAP_UNSYNCHRONIZED_BIT,
+  pattern GL_MAP_WRITE_BIT,
+  pattern GL_MATRIX_MODE,
+  pattern GL_MAX,
+  pattern GL_MAX_3D_TEXTURE_SIZE,
+  pattern GL_MAX_ARRAY_TEXTURE_LAYERS,
+  pattern GL_MAX_ATTRIB_STACK_DEPTH,
+  pattern GL_MAX_CLIENT_ATTRIB_STACK_DEPTH,
+  pattern GL_MAX_CLIP_DISTANCES,
+  pattern GL_MAX_CLIP_PLANES,
+  pattern GL_MAX_COLOR_ATTACHMENTS,
+  pattern GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE,
+  pattern GL_MAX_DRAW_BUFFERS,
+  pattern GL_MAX_ELEMENTS_INDICES,
+  pattern GL_MAX_ELEMENTS_VERTICES,
+  pattern GL_MAX_EVAL_ORDER,
+  pattern GL_MAX_FRAGMENT_UNIFORM_COMPONENTS,
+  pattern GL_MAX_LIGHTS,
+  pattern GL_MAX_LIST_NESTING,
+  pattern GL_MAX_MODELVIEW_STACK_DEPTH,
+  pattern GL_MAX_NAME_STACK_DEPTH,
+  pattern GL_MAX_PIXEL_MAP_TABLE,
+  pattern GL_MAX_PROGRAM_TEXEL_OFFSET,
+  pattern GL_MAX_PROJECTION_STACK_DEPTH,
+  pattern GL_MAX_RENDERBUFFER_SIZE,
+  pattern GL_MAX_SAMPLES,
+  pattern GL_MAX_TEXTURE_COORDS,
+  pattern GL_MAX_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_TEXTURE_LOD_BIAS,
+  pattern GL_MAX_TEXTURE_SIZE,
+  pattern GL_MAX_TEXTURE_STACK_DEPTH,
+  pattern GL_MAX_TEXTURE_UNITS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS,
+  pattern GL_MAX_VARYING_COMPONENTS,
+  pattern GL_MAX_VARYING_FLOATS,
+  pattern GL_MAX_VERTEX_ATTRIBS,
+  pattern GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_VERTEX_UNIFORM_COMPONENTS,
+  pattern GL_MAX_VIEWPORT_DIMS,
+  pattern GL_MIN,
+  pattern GL_MINOR_VERSION,
+  pattern GL_MIN_PROGRAM_TEXEL_OFFSET,
+  pattern GL_MIRRORED_REPEAT,
+  pattern GL_MODELVIEW,
+  pattern GL_MODELVIEW_MATRIX,
+  pattern GL_MODELVIEW_STACK_DEPTH,
+  pattern GL_MODULATE,
+  pattern GL_MULT,
+  pattern GL_MULTISAMPLE,
+  pattern GL_MULTISAMPLE_BIT,
+  pattern GL_N3F_V3F,
+  pattern GL_NAME_STACK_DEPTH,
+  pattern GL_NAND,
+  pattern GL_NEAREST,
+  pattern GL_NEAREST_MIPMAP_LINEAR,
+  pattern GL_NEAREST_MIPMAP_NEAREST,
+  pattern GL_NEVER,
+  pattern GL_NICEST,
+  pattern GL_NONE,
+  pattern GL_NOOP,
+  pattern GL_NOR,
+  pattern GL_NORMALIZE,
+  pattern GL_NORMAL_ARRAY,
+  pattern GL_NORMAL_ARRAY_BUFFER_BINDING,
+  pattern GL_NORMAL_ARRAY_POINTER,
+  pattern GL_NORMAL_ARRAY_STRIDE,
+  pattern GL_NORMAL_ARRAY_TYPE,
+  pattern GL_NORMAL_MAP,
+  pattern GL_NOTEQUAL,
+  pattern GL_NO_ERROR,
+  pattern GL_NUM_COMPRESSED_TEXTURE_FORMATS,
+  pattern GL_NUM_EXTENSIONS,
+  pattern GL_OBJECT_LINEAR,
+  pattern GL_OBJECT_PLANE,
+  pattern GL_ONE,
+  pattern GL_ONE_MINUS_CONSTANT_ALPHA,
+  pattern GL_ONE_MINUS_CONSTANT_COLOR,
+  pattern GL_ONE_MINUS_DST_ALPHA,
+  pattern GL_ONE_MINUS_DST_COLOR,
+  pattern GL_ONE_MINUS_SRC_ALPHA,
+  pattern GL_ONE_MINUS_SRC_COLOR,
+  pattern GL_OPERAND0_ALPHA,
+  pattern GL_OPERAND0_RGB,
+  pattern GL_OPERAND1_ALPHA,
+  pattern GL_OPERAND1_RGB,
+  pattern GL_OPERAND2_ALPHA,
+  pattern GL_OPERAND2_RGB,
+  pattern GL_OR,
+  pattern GL_ORDER,
+  pattern GL_OR_INVERTED,
+  pattern GL_OR_REVERSE,
+  pattern GL_OUT_OF_MEMORY,
+  pattern GL_PACK_ALIGNMENT,
+  pattern GL_PACK_IMAGE_HEIGHT,
+  pattern GL_PACK_LSB_FIRST,
+  pattern GL_PACK_ROW_LENGTH,
+  pattern GL_PACK_SKIP_IMAGES,
+  pattern GL_PACK_SKIP_PIXELS,
+  pattern GL_PACK_SKIP_ROWS,
+  pattern GL_PACK_SWAP_BYTES,
+  pattern GL_PASS_THROUGH_TOKEN,
+  pattern GL_PERSPECTIVE_CORRECTION_HINT,
+  pattern GL_PIXEL_MAP_A_TO_A,
+  pattern GL_PIXEL_MAP_A_TO_A_SIZE,
+  pattern GL_PIXEL_MAP_B_TO_B,
+  pattern GL_PIXEL_MAP_B_TO_B_SIZE,
+  pattern GL_PIXEL_MAP_G_TO_G,
+  pattern GL_PIXEL_MAP_G_TO_G_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_A,
+  pattern GL_PIXEL_MAP_I_TO_A_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_B,
+  pattern GL_PIXEL_MAP_I_TO_B_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_G,
+  pattern GL_PIXEL_MAP_I_TO_G_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_I,
+  pattern GL_PIXEL_MAP_I_TO_I_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_R,
+  pattern GL_PIXEL_MAP_I_TO_R_SIZE,
+  pattern GL_PIXEL_MAP_R_TO_R,
+  pattern GL_PIXEL_MAP_R_TO_R_SIZE,
+  pattern GL_PIXEL_MAP_S_TO_S,
+  pattern GL_PIXEL_MAP_S_TO_S_SIZE,
+  pattern GL_PIXEL_MODE_BIT,
+  pattern GL_PIXEL_PACK_BUFFER,
+  pattern GL_PIXEL_PACK_BUFFER_BINDING,
+  pattern GL_PIXEL_UNPACK_BUFFER,
+  pattern GL_PIXEL_UNPACK_BUFFER_BINDING,
+  pattern GL_POINT,
+  pattern GL_POINTS,
+  pattern GL_POINT_BIT,
+  pattern GL_POINT_DISTANCE_ATTENUATION,
+  pattern GL_POINT_FADE_THRESHOLD_SIZE,
+  pattern GL_POINT_SIZE,
+  pattern GL_POINT_SIZE_GRANULARITY,
+  pattern GL_POINT_SIZE_MAX,
+  pattern GL_POINT_SIZE_MIN,
+  pattern GL_POINT_SIZE_RANGE,
+  pattern GL_POINT_SMOOTH,
+  pattern GL_POINT_SMOOTH_HINT,
+  pattern GL_POINT_SPRITE,
+  pattern GL_POINT_SPRITE_COORD_ORIGIN,
+  pattern GL_POINT_TOKEN,
+  pattern GL_POLYGON,
+  pattern GL_POLYGON_BIT,
+  pattern GL_POLYGON_MODE,
+  pattern GL_POLYGON_OFFSET_FACTOR,
+  pattern GL_POLYGON_OFFSET_FILL,
+  pattern GL_POLYGON_OFFSET_LINE,
+  pattern GL_POLYGON_OFFSET_POINT,
+  pattern GL_POLYGON_OFFSET_UNITS,
+  pattern GL_POLYGON_SMOOTH,
+  pattern GL_POLYGON_SMOOTH_HINT,
+  pattern GL_POLYGON_STIPPLE,
+  pattern GL_POLYGON_STIPPLE_BIT,
+  pattern GL_POLYGON_TOKEN,
+  pattern GL_POSITION,
+  pattern GL_PREVIOUS,
+  pattern GL_PRIMARY_COLOR,
+  pattern GL_PRIMITIVES_GENERATED,
+  pattern GL_PROJECTION,
+  pattern GL_PROJECTION_MATRIX,
+  pattern GL_PROJECTION_STACK_DEPTH,
+  pattern GL_PROXY_TEXTURE_1D,
+  pattern GL_PROXY_TEXTURE_1D_ARRAY,
+  pattern GL_PROXY_TEXTURE_2D,
+  pattern GL_PROXY_TEXTURE_2D_ARRAY,
+  pattern GL_PROXY_TEXTURE_3D,
+  pattern GL_PROXY_TEXTURE_CUBE_MAP,
+  pattern GL_Q,
+  pattern GL_QUADRATIC_ATTENUATION,
+  pattern GL_QUADS,
+  pattern GL_QUAD_STRIP,
+  pattern GL_QUERY_BY_REGION_NO_WAIT,
+  pattern GL_QUERY_BY_REGION_WAIT,
+  pattern GL_QUERY_COUNTER_BITS,
+  pattern GL_QUERY_NO_WAIT,
+  pattern GL_QUERY_RESULT,
+  pattern GL_QUERY_RESULT_AVAILABLE,
+  pattern GL_QUERY_WAIT,
+  pattern GL_R,
+  pattern GL_R11F_G11F_B10F,
+  pattern GL_R16,
+  pattern GL_R16F,
+  pattern GL_R16I,
+  pattern GL_R16UI,
+  pattern GL_R32F,
+  pattern GL_R32I,
+  pattern GL_R32UI,
+  pattern GL_R3_G3_B2,
+  pattern GL_R8,
+  pattern GL_R8I,
+  pattern GL_R8UI,
+  pattern GL_RASTERIZER_DISCARD,
+  pattern GL_READ_BUFFER,
+  pattern GL_READ_FRAMEBUFFER,
+  pattern GL_READ_FRAMEBUFFER_BINDING,
+  pattern GL_READ_ONLY,
+  pattern GL_READ_WRITE,
+  pattern GL_RED,
+  pattern GL_RED_BIAS,
+  pattern GL_RED_BITS,
+  pattern GL_RED_INTEGER,
+  pattern GL_RED_SCALE,
+  pattern GL_REFLECTION_MAP,
+  pattern GL_RENDER,
+  pattern GL_RENDERBUFFER,
+  pattern GL_RENDERBUFFER_ALPHA_SIZE,
+  pattern GL_RENDERBUFFER_BINDING,
+  pattern GL_RENDERBUFFER_BLUE_SIZE,
+  pattern GL_RENDERBUFFER_DEPTH_SIZE,
+  pattern GL_RENDERBUFFER_GREEN_SIZE,
+  pattern GL_RENDERBUFFER_HEIGHT,
+  pattern GL_RENDERBUFFER_INTERNAL_FORMAT,
+  pattern GL_RENDERBUFFER_RED_SIZE,
+  pattern GL_RENDERBUFFER_SAMPLES,
+  pattern GL_RENDERBUFFER_STENCIL_SIZE,
+  pattern GL_RENDERBUFFER_WIDTH,
+  pattern GL_RENDERER,
+  pattern GL_RENDER_MODE,
+  pattern GL_REPEAT,
+  pattern GL_REPLACE,
+  pattern GL_RESCALE_NORMAL,
+  pattern GL_RETURN,
+  pattern GL_RG,
+  pattern GL_RG16,
+  pattern GL_RG16F,
+  pattern GL_RG16I,
+  pattern GL_RG16UI,
+  pattern GL_RG32F,
+  pattern GL_RG32I,
+  pattern GL_RG32UI,
+  pattern GL_RG8,
+  pattern GL_RG8I,
+  pattern GL_RG8UI,
+  pattern GL_RGB,
+  pattern GL_RGB10,
+  pattern GL_RGB10_A2,
+  pattern GL_RGB12,
+  pattern GL_RGB16,
+  pattern GL_RGB16F,
+  pattern GL_RGB16I,
+  pattern GL_RGB16UI,
+  pattern GL_RGB32F,
+  pattern GL_RGB32I,
+  pattern GL_RGB32UI,
+  pattern GL_RGB4,
+  pattern GL_RGB5,
+  pattern GL_RGB5_A1,
+  pattern GL_RGB8,
+  pattern GL_RGB8I,
+  pattern GL_RGB8UI,
+  pattern GL_RGB9_E5,
+  pattern GL_RGBA,
+  pattern GL_RGBA12,
+  pattern GL_RGBA16,
+  pattern GL_RGBA16F,
+  pattern GL_RGBA16I,
+  pattern GL_RGBA16UI,
+  pattern GL_RGBA2,
+  pattern GL_RGBA32F,
+  pattern GL_RGBA32I,
+  pattern GL_RGBA32UI,
+  pattern GL_RGBA4,
+  pattern GL_RGBA8,
+  pattern GL_RGBA8I,
+  pattern GL_RGBA8UI,
+  pattern GL_RGBA_INTEGER,
+  pattern GL_RGBA_MODE,
+  pattern GL_RGB_INTEGER,
+  pattern GL_RGB_SCALE,
+  pattern GL_RG_INTEGER,
+  pattern GL_RIGHT,
+  pattern GL_S,
+  pattern GL_SAMPLER_1D,
+  pattern GL_SAMPLER_1D_ARRAY,
+  pattern GL_SAMPLER_1D_ARRAY_SHADOW,
+  pattern GL_SAMPLER_1D_SHADOW,
+  pattern GL_SAMPLER_2D,
+  pattern GL_SAMPLER_2D_ARRAY,
+  pattern GL_SAMPLER_2D_ARRAY_SHADOW,
+  pattern GL_SAMPLER_2D_SHADOW,
+  pattern GL_SAMPLER_3D,
+  pattern GL_SAMPLER_CUBE,
+  pattern GL_SAMPLER_CUBE_SHADOW,
+  pattern GL_SAMPLES,
+  pattern GL_SAMPLES_PASSED,
+  pattern GL_SAMPLE_ALPHA_TO_COVERAGE,
+  pattern GL_SAMPLE_ALPHA_TO_ONE,
+  pattern GL_SAMPLE_BUFFERS,
+  pattern GL_SAMPLE_COVERAGE,
+  pattern GL_SAMPLE_COVERAGE_INVERT,
+  pattern GL_SAMPLE_COVERAGE_VALUE,
+  pattern GL_SCISSOR_BIT,
+  pattern GL_SCISSOR_BOX,
+  pattern GL_SCISSOR_TEST,
+  pattern GL_SECONDARY_COLOR_ARRAY,
+  pattern GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING,
+  pattern GL_SECONDARY_COLOR_ARRAY_POINTER,
+  pattern GL_SECONDARY_COLOR_ARRAY_SIZE,
+  pattern GL_SECONDARY_COLOR_ARRAY_STRIDE,
+  pattern GL_SECONDARY_COLOR_ARRAY_TYPE,
+  pattern GL_SELECT,
+  pattern GL_SELECTION_BUFFER_POINTER,
+  pattern GL_SELECTION_BUFFER_SIZE,
+  pattern GL_SEPARATE_ATTRIBS,
+  pattern GL_SEPARATE_SPECULAR_COLOR,
+  pattern GL_SET,
+  pattern GL_SHADER_SOURCE_LENGTH,
+  pattern GL_SHADER_TYPE,
+  pattern GL_SHADE_MODEL,
+  pattern GL_SHADING_LANGUAGE_VERSION,
+  pattern GL_SHININESS,
+  pattern GL_SHORT,
+  pattern GL_SINGLE_COLOR,
+  pattern GL_SLUMINANCE,
+  pattern GL_SLUMINANCE8,
+  pattern GL_SLUMINANCE8_ALPHA8,
+  pattern GL_SLUMINANCE_ALPHA,
+  pattern GL_SMOOTH,
+  pattern GL_SMOOTH_LINE_WIDTH_GRANULARITY,
+  pattern GL_SMOOTH_LINE_WIDTH_RANGE,
+  pattern GL_SMOOTH_POINT_SIZE_GRANULARITY,
+  pattern GL_SMOOTH_POINT_SIZE_RANGE,
+  pattern GL_SOURCE0_ALPHA,
+  pattern GL_SOURCE0_RGB,
+  pattern GL_SOURCE1_ALPHA,
+  pattern GL_SOURCE1_RGB,
+  pattern GL_SOURCE2_ALPHA,
+  pattern GL_SOURCE2_RGB,
+  pattern GL_SPECULAR,
+  pattern GL_SPHERE_MAP,
+  pattern GL_SPOT_CUTOFF,
+  pattern GL_SPOT_DIRECTION,
+  pattern GL_SPOT_EXPONENT,
+  pattern GL_SRC0_ALPHA,
+  pattern GL_SRC0_RGB,
+  pattern GL_SRC1_ALPHA,
+  pattern GL_SRC1_RGB,
+  pattern GL_SRC2_ALPHA,
+  pattern GL_SRC2_RGB,
+  pattern GL_SRC_ALPHA,
+  pattern GL_SRC_ALPHA_SATURATE,
+  pattern GL_SRC_COLOR,
+  pattern GL_SRGB,
+  pattern GL_SRGB8,
+  pattern GL_SRGB8_ALPHA8,
+  pattern GL_SRGB_ALPHA,
+  pattern GL_STACK_OVERFLOW,
+  pattern GL_STACK_UNDERFLOW,
+  pattern GL_STATIC_COPY,
+  pattern GL_STATIC_DRAW,
+  pattern GL_STATIC_READ,
+  pattern GL_STENCIL,
+  pattern GL_STENCIL_ATTACHMENT,
+  pattern GL_STENCIL_BACK_FAIL,
+  pattern GL_STENCIL_BACK_FUNC,
+  pattern GL_STENCIL_BACK_PASS_DEPTH_FAIL,
+  pattern GL_STENCIL_BACK_PASS_DEPTH_PASS,
+  pattern GL_STENCIL_BACK_REF,
+  pattern GL_STENCIL_BACK_VALUE_MASK,
+  pattern GL_STENCIL_BACK_WRITEMASK,
+  pattern GL_STENCIL_BITS,
+  pattern GL_STENCIL_BUFFER_BIT,
+  pattern GL_STENCIL_CLEAR_VALUE,
+  pattern GL_STENCIL_FAIL,
+  pattern GL_STENCIL_FUNC,
+  pattern GL_STENCIL_INDEX,
+  pattern GL_STENCIL_INDEX1,
+  pattern GL_STENCIL_INDEX16,
+  pattern GL_STENCIL_INDEX4,
+  pattern GL_STENCIL_INDEX8,
+  pattern GL_STENCIL_PASS_DEPTH_FAIL,
+  pattern GL_STENCIL_PASS_DEPTH_PASS,
+  pattern GL_STENCIL_REF,
+  pattern GL_STENCIL_TEST,
+  pattern GL_STENCIL_VALUE_MASK,
+  pattern GL_STENCIL_WRITEMASK,
+  pattern GL_STEREO,
+  pattern GL_STREAM_COPY,
+  pattern GL_STREAM_DRAW,
+  pattern GL_STREAM_READ,
+  pattern GL_SUBPIXEL_BITS,
+  pattern GL_SUBTRACT,
+  pattern GL_T,
+  pattern GL_T2F_C3F_V3F,
+  pattern GL_T2F_C4F_N3F_V3F,
+  pattern GL_T2F_C4UB_V3F,
+  pattern GL_T2F_N3F_V3F,
+  pattern GL_T2F_V3F,
+  pattern GL_T4F_C4F_N3F_V4F,
+  pattern GL_T4F_V4F,
+  pattern GL_TEXTURE,
+  pattern GL_TEXTURE0,
+  pattern GL_TEXTURE1,
+  pattern GL_TEXTURE10,
+  pattern GL_TEXTURE11,
+  pattern GL_TEXTURE12,
+  pattern GL_TEXTURE13,
+  pattern GL_TEXTURE14,
+  pattern GL_TEXTURE15,
+  pattern GL_TEXTURE16,
+  pattern GL_TEXTURE17,
+  pattern GL_TEXTURE18,
+  pattern GL_TEXTURE19,
+  pattern GL_TEXTURE2,
+  pattern GL_TEXTURE20,
+  pattern GL_TEXTURE21,
+  pattern GL_TEXTURE22,
+  pattern GL_TEXTURE23,
+  pattern GL_TEXTURE24,
+  pattern GL_TEXTURE25,
+  pattern GL_TEXTURE26,
+  pattern GL_TEXTURE27,
+  pattern GL_TEXTURE28,
+  pattern GL_TEXTURE29,
+  pattern GL_TEXTURE3,
+  pattern GL_TEXTURE30,
+  pattern GL_TEXTURE31,
+  pattern GL_TEXTURE4,
+  pattern GL_TEXTURE5,
+  pattern GL_TEXTURE6,
+  pattern GL_TEXTURE7,
+  pattern GL_TEXTURE8,
+  pattern GL_TEXTURE9,
+  pattern GL_TEXTURE_1D,
+  pattern GL_TEXTURE_1D_ARRAY,
+  pattern GL_TEXTURE_2D,
+  pattern GL_TEXTURE_2D_ARRAY,
+  pattern GL_TEXTURE_3D,
+  pattern GL_TEXTURE_ALPHA_SIZE,
+  pattern GL_TEXTURE_ALPHA_TYPE,
+  pattern GL_TEXTURE_BASE_LEVEL,
+  pattern GL_TEXTURE_BINDING_1D,
+  pattern GL_TEXTURE_BINDING_1D_ARRAY,
+  pattern GL_TEXTURE_BINDING_2D,
+  pattern GL_TEXTURE_BINDING_2D_ARRAY,
+  pattern GL_TEXTURE_BINDING_3D,
+  pattern GL_TEXTURE_BINDING_CUBE_MAP,
+  pattern GL_TEXTURE_BIT,
+  pattern GL_TEXTURE_BLUE_SIZE,
+  pattern GL_TEXTURE_BLUE_TYPE,
+  pattern GL_TEXTURE_BORDER,
+  pattern GL_TEXTURE_BORDER_COLOR,
+  pattern GL_TEXTURE_COMPARE_FUNC,
+  pattern GL_TEXTURE_COMPARE_MODE,
+  pattern GL_TEXTURE_COMPONENTS,
+  pattern GL_TEXTURE_COMPRESSED,
+  pattern GL_TEXTURE_COMPRESSED_IMAGE_SIZE,
+  pattern GL_TEXTURE_COMPRESSION_HINT,
+  pattern GL_TEXTURE_COORD_ARRAY,
+  pattern GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING,
+  pattern GL_TEXTURE_COORD_ARRAY_POINTER,
+  pattern GL_TEXTURE_COORD_ARRAY_SIZE,
+  pattern GL_TEXTURE_COORD_ARRAY_STRIDE,
+  pattern GL_TEXTURE_COORD_ARRAY_TYPE,
+  pattern GL_TEXTURE_CUBE_MAP,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z,
+  pattern GL_TEXTURE_DEPTH,
+  pattern GL_TEXTURE_DEPTH_SIZE,
+  pattern GL_TEXTURE_DEPTH_TYPE,
+  pattern GL_TEXTURE_ENV,
+  pattern GL_TEXTURE_ENV_COLOR,
+  pattern GL_TEXTURE_ENV_MODE,
+  pattern GL_TEXTURE_FILTER_CONTROL,
+  pattern GL_TEXTURE_GEN_MODE,
+  pattern GL_TEXTURE_GEN_Q,
+  pattern GL_TEXTURE_GEN_R,
+  pattern GL_TEXTURE_GEN_S,
+  pattern GL_TEXTURE_GEN_T,
+  pattern GL_TEXTURE_GREEN_SIZE,
+  pattern GL_TEXTURE_GREEN_TYPE,
+  pattern GL_TEXTURE_HEIGHT,
+  pattern GL_TEXTURE_INTENSITY_SIZE,
+  pattern GL_TEXTURE_INTENSITY_TYPE,
+  pattern GL_TEXTURE_INTERNAL_FORMAT,
+  pattern GL_TEXTURE_LOD_BIAS,
+  pattern GL_TEXTURE_LUMINANCE_SIZE,
+  pattern GL_TEXTURE_LUMINANCE_TYPE,
+  pattern GL_TEXTURE_MAG_FILTER,
+  pattern GL_TEXTURE_MATRIX,
+  pattern GL_TEXTURE_MAX_LEVEL,
+  pattern GL_TEXTURE_MAX_LOD,
+  pattern GL_TEXTURE_MIN_FILTER,
+  pattern GL_TEXTURE_MIN_LOD,
+  pattern GL_TEXTURE_PRIORITY,
+  pattern GL_TEXTURE_RED_SIZE,
+  pattern GL_TEXTURE_RED_TYPE,
+  pattern GL_TEXTURE_RESIDENT,
+  pattern GL_TEXTURE_SHARED_SIZE,
+  pattern GL_TEXTURE_STACK_DEPTH,
+  pattern GL_TEXTURE_STENCIL_SIZE,
+  pattern GL_TEXTURE_WIDTH,
+  pattern GL_TEXTURE_WRAP_R,
+  pattern GL_TEXTURE_WRAP_S,
+  pattern GL_TEXTURE_WRAP_T,
+  pattern GL_TRANSFORM_BIT,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_BINDING,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_MODE,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_SIZE,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_START,
+  pattern GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN,
+  pattern GL_TRANSFORM_FEEDBACK_VARYINGS,
+  pattern GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH,
+  pattern GL_TRANSPOSE_COLOR_MATRIX,
+  pattern GL_TRANSPOSE_MODELVIEW_MATRIX,
+  pattern GL_TRANSPOSE_PROJECTION_MATRIX,
+  pattern GL_TRANSPOSE_TEXTURE_MATRIX,
+  pattern GL_TRIANGLES,
+  pattern GL_TRIANGLE_FAN,
+  pattern GL_TRIANGLE_STRIP,
+  pattern GL_TRUE,
+  pattern GL_UNPACK_ALIGNMENT,
+  pattern GL_UNPACK_IMAGE_HEIGHT,
+  pattern GL_UNPACK_LSB_FIRST,
+  pattern GL_UNPACK_ROW_LENGTH,
+  pattern GL_UNPACK_SKIP_IMAGES,
+  pattern GL_UNPACK_SKIP_PIXELS,
+  pattern GL_UNPACK_SKIP_ROWS,
+  pattern GL_UNPACK_SWAP_BYTES,
+  pattern GL_UNSIGNED_BYTE,
+  pattern GL_UNSIGNED_BYTE_2_3_3_REV,
+  pattern GL_UNSIGNED_BYTE_3_3_2,
+  pattern GL_UNSIGNED_INT,
+  pattern GL_UNSIGNED_INT_10F_11F_11F_REV,
+  pattern GL_UNSIGNED_INT_10_10_10_2,
+  pattern GL_UNSIGNED_INT_24_8,
+  pattern GL_UNSIGNED_INT_2_10_10_10_REV,
+  pattern GL_UNSIGNED_INT_5_9_9_9_REV,
+  pattern GL_UNSIGNED_INT_8_8_8_8,
+  pattern GL_UNSIGNED_INT_8_8_8_8_REV,
+  pattern GL_UNSIGNED_INT_SAMPLER_1D,
+  pattern GL_UNSIGNED_INT_SAMPLER_1D_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_3D,
+  pattern GL_UNSIGNED_INT_SAMPLER_CUBE,
+  pattern GL_UNSIGNED_INT_VEC2,
+  pattern GL_UNSIGNED_INT_VEC3,
+  pattern GL_UNSIGNED_INT_VEC4,
+  pattern GL_UNSIGNED_NORMALIZED,
+  pattern GL_UNSIGNED_SHORT,
+  pattern GL_UNSIGNED_SHORT_1_5_5_5_REV,
+  pattern GL_UNSIGNED_SHORT_4_4_4_4,
+  pattern GL_UNSIGNED_SHORT_4_4_4_4_REV,
+  pattern GL_UNSIGNED_SHORT_5_5_5_1,
+  pattern GL_UNSIGNED_SHORT_5_6_5,
+  pattern GL_UNSIGNED_SHORT_5_6_5_REV,
+  pattern GL_UPPER_LEFT,
+  pattern GL_V2F,
+  pattern GL_V3F,
+  pattern GL_VALIDATE_STATUS,
+  pattern GL_VENDOR,
+  pattern GL_VERSION,
+  pattern GL_VERTEX_ARRAY,
+  pattern GL_VERTEX_ARRAY_BINDING,
+  pattern GL_VERTEX_ARRAY_BUFFER_BINDING,
+  pattern GL_VERTEX_ARRAY_POINTER,
+  pattern GL_VERTEX_ARRAY_SIZE,
+  pattern GL_VERTEX_ARRAY_STRIDE,
+  pattern GL_VERTEX_ARRAY_TYPE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING,
+  pattern GL_VERTEX_ATTRIB_ARRAY_ENABLED,
+  pattern GL_VERTEX_ATTRIB_ARRAY_INTEGER,
+  pattern GL_VERTEX_ATTRIB_ARRAY_NORMALIZED,
+  pattern GL_VERTEX_ATTRIB_ARRAY_POINTER,
+  pattern GL_VERTEX_ATTRIB_ARRAY_SIZE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_STRIDE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_TYPE,
+  pattern GL_VERTEX_PROGRAM_POINT_SIZE,
+  pattern GL_VERTEX_PROGRAM_TWO_SIDE,
+  pattern GL_VERTEX_SHADER,
+  pattern GL_VIEWPORT,
+  pattern GL_VIEWPORT_BIT,
+  pattern GL_WEIGHT_ARRAY_BUFFER_BINDING,
+  pattern GL_WRITE_ONLY,
+  pattern GL_XOR,
+  pattern GL_ZERO,
+  pattern GL_ZOOM_X,
+  pattern GL_ZOOM_Y,
+  -- * Functions
+  glAccum,
+  glActiveTexture,
+  glAlphaFunc,
+  glAreTexturesResident,
+  glArrayElement,
+  glAttachShader,
+  glBegin,
+  glBeginConditionalRender,
+  glBeginQuery,
+  glBeginTransformFeedback,
+  glBindAttribLocation,
+  glBindBuffer,
+  glBindBufferBase,
+  glBindBufferRange,
+  glBindFragDataLocation,
+  glBindFramebuffer,
+  glBindRenderbuffer,
+  glBindTexture,
+  glBindVertexArray,
+  glBitmap,
+  glBlendColor,
+  glBlendEquation,
+  glBlendEquationSeparate,
+  glBlendFunc,
+  glBlendFuncSeparate,
+  glBlitFramebuffer,
+  glBufferData,
+  glBufferSubData,
+  glCallList,
+  glCallLists,
+  glCheckFramebufferStatus,
+  glClampColor,
+  glClear,
+  glClearAccum,
+  glClearBufferfi,
+  glClearBufferfv,
+  glClearBufferiv,
+  glClearBufferuiv,
+  glClearColor,
+  glClearDepth,
+  glClearIndex,
+  glClearStencil,
+  glClientActiveTexture,
+  glClipPlane,
+  glColor3b,
+  glColor3bv,
+  glColor3d,
+  glColor3dv,
+  glColor3f,
+  glColor3fv,
+  glColor3i,
+  glColor3iv,
+  glColor3s,
+  glColor3sv,
+  glColor3ub,
+  glColor3ubv,
+  glColor3ui,
+  glColor3uiv,
+  glColor3us,
+  glColor3usv,
+  glColor4b,
+  glColor4bv,
+  glColor4d,
+  glColor4dv,
+  glColor4f,
+  glColor4fv,
+  glColor4i,
+  glColor4iv,
+  glColor4s,
+  glColor4sv,
+  glColor4ub,
+  glColor4ubv,
+  glColor4ui,
+  glColor4uiv,
+  glColor4us,
+  glColor4usv,
+  glColorMask,
+  glColorMaski,
+  glColorMaterial,
+  glColorPointer,
+  glCompileShader,
+  glCompressedTexImage1D,
+  glCompressedTexImage2D,
+  glCompressedTexImage3D,
+  glCompressedTexSubImage1D,
+  glCompressedTexSubImage2D,
+  glCompressedTexSubImage3D,
+  glCopyPixels,
+  glCopyTexImage1D,
+  glCopyTexImage2D,
+  glCopyTexSubImage1D,
+  glCopyTexSubImage2D,
+  glCopyTexSubImage3D,
+  glCreateProgram,
+  glCreateShader,
+  glCullFace,
+  glDeleteBuffers,
+  glDeleteFramebuffers,
+  glDeleteLists,
+  glDeleteProgram,
+  glDeleteQueries,
+  glDeleteRenderbuffers,
+  glDeleteShader,
+  glDeleteTextures,
+  glDeleteVertexArrays,
+  glDepthFunc,
+  glDepthMask,
+  glDepthRange,
+  glDetachShader,
+  glDisable,
+  glDisableClientState,
+  glDisableVertexAttribArray,
+  glDisablei,
+  glDrawArrays,
+  glDrawBuffer,
+  glDrawBuffers,
+  glDrawElements,
+  glDrawPixels,
+  glDrawRangeElements,
+  glEdgeFlag,
+  glEdgeFlagPointer,
+  glEdgeFlagv,
+  glEnable,
+  glEnableClientState,
+  glEnableVertexAttribArray,
+  glEnablei,
+  glEnd,
+  glEndConditionalRender,
+  glEndList,
+  glEndQuery,
+  glEndTransformFeedback,
+  glEvalCoord1d,
+  glEvalCoord1dv,
+  glEvalCoord1f,
+  glEvalCoord1fv,
+  glEvalCoord2d,
+  glEvalCoord2dv,
+  glEvalCoord2f,
+  glEvalCoord2fv,
+  glEvalMesh1,
+  glEvalMesh2,
+  glEvalPoint1,
+  glEvalPoint2,
+  glFeedbackBuffer,
+  glFinish,
+  glFlush,
+  glFlushMappedBufferRange,
+  glFogCoordPointer,
+  glFogCoordd,
+  glFogCoorddv,
+  glFogCoordf,
+  glFogCoordfv,
+  glFogf,
+  glFogfv,
+  glFogi,
+  glFogiv,
+  glFramebufferRenderbuffer,
+  glFramebufferTexture1D,
+  glFramebufferTexture2D,
+  glFramebufferTexture3D,
+  glFramebufferTextureLayer,
+  glFrontFace,
+  glFrustum,
+  glGenBuffers,
+  glGenFramebuffers,
+  glGenLists,
+  glGenQueries,
+  glGenRenderbuffers,
+  glGenTextures,
+  glGenVertexArrays,
+  glGenerateMipmap,
+  glGetActiveAttrib,
+  glGetActiveUniform,
+  glGetAttachedShaders,
+  glGetAttribLocation,
+  glGetBooleani_v,
+  glGetBooleanv,
+  glGetBufferParameteriv,
+  glGetBufferPointerv,
+  glGetBufferSubData,
+  glGetClipPlane,
+  glGetCompressedTexImage,
+  glGetDoublev,
+  glGetError,
+  glGetFloatv,
+  glGetFragDataLocation,
+  glGetFramebufferAttachmentParameteriv,
+  glGetIntegeri_v,
+  glGetIntegerv,
+  glGetLightfv,
+  glGetLightiv,
+  glGetMapdv,
+  glGetMapfv,
+  glGetMapiv,
+  glGetMaterialfv,
+  glGetMaterialiv,
+  glGetPixelMapfv,
+  glGetPixelMapuiv,
+  glGetPixelMapusv,
+  glGetPointerv,
+  glGetPolygonStipple,
+  glGetProgramInfoLog,
+  glGetProgramiv,
+  glGetQueryObjectiv,
+  glGetQueryObjectuiv,
+  glGetQueryiv,
+  glGetRenderbufferParameteriv,
+  glGetShaderInfoLog,
+  glGetShaderSource,
+  glGetShaderiv,
+  glGetString,
+  glGetStringi,
+  glGetTexEnvfv,
+  glGetTexEnviv,
+  glGetTexGendv,
+  glGetTexGenfv,
+  glGetTexGeniv,
+  glGetTexImage,
+  glGetTexLevelParameterfv,
+  glGetTexLevelParameteriv,
+  glGetTexParameterIiv,
+  glGetTexParameterIuiv,
+  glGetTexParameterfv,
+  glGetTexParameteriv,
+  glGetTransformFeedbackVarying,
+  glGetUniformLocation,
+  glGetUniformfv,
+  glGetUniformiv,
+  glGetUniformuiv,
+  glGetVertexAttribIiv,
+  glGetVertexAttribIuiv,
+  glGetVertexAttribPointerv,
+  glGetVertexAttribdv,
+  glGetVertexAttribfv,
+  glGetVertexAttribiv,
+  glHint,
+  glIndexMask,
+  glIndexPointer,
+  glIndexd,
+  glIndexdv,
+  glIndexf,
+  glIndexfv,
+  glIndexi,
+  glIndexiv,
+  glIndexs,
+  glIndexsv,
+  glIndexub,
+  glIndexubv,
+  glInitNames,
+  glInterleavedArrays,
+  glIsBuffer,
+  glIsEnabled,
+  glIsEnabledi,
+  glIsFramebuffer,
+  glIsList,
+  glIsProgram,
+  glIsQuery,
+  glIsRenderbuffer,
+  glIsShader,
+  glIsTexture,
+  glIsVertexArray,
+  glLightModelf,
+  glLightModelfv,
+  glLightModeli,
+  glLightModeliv,
+  glLightf,
+  glLightfv,
+  glLighti,
+  glLightiv,
+  glLineStipple,
+  glLineWidth,
+  glLinkProgram,
+  glListBase,
+  glLoadIdentity,
+  glLoadMatrixd,
+  glLoadMatrixf,
+  glLoadName,
+  glLoadTransposeMatrixd,
+  glLoadTransposeMatrixf,
+  glLogicOp,
+  glMap1d,
+  glMap1f,
+  glMap2d,
+  glMap2f,
+  glMapBuffer,
+  glMapBufferRange,
+  glMapGrid1d,
+  glMapGrid1f,
+  glMapGrid2d,
+  glMapGrid2f,
+  glMaterialf,
+  glMaterialfv,
+  glMateriali,
+  glMaterialiv,
+  glMatrixMode,
+  glMultMatrixd,
+  glMultMatrixf,
+  glMultTransposeMatrixd,
+  glMultTransposeMatrixf,
+  glMultiDrawArrays,
+  glMultiDrawElements,
+  glMultiTexCoord1d,
+  glMultiTexCoord1dv,
+  glMultiTexCoord1f,
+  glMultiTexCoord1fv,
+  glMultiTexCoord1i,
+  glMultiTexCoord1iv,
+  glMultiTexCoord1s,
+  glMultiTexCoord1sv,
+  glMultiTexCoord2d,
+  glMultiTexCoord2dv,
+  glMultiTexCoord2f,
+  glMultiTexCoord2fv,
+  glMultiTexCoord2i,
+  glMultiTexCoord2iv,
+  glMultiTexCoord2s,
+  glMultiTexCoord2sv,
+  glMultiTexCoord3d,
+  glMultiTexCoord3dv,
+  glMultiTexCoord3f,
+  glMultiTexCoord3fv,
+  glMultiTexCoord3i,
+  glMultiTexCoord3iv,
+  glMultiTexCoord3s,
+  glMultiTexCoord3sv,
+  glMultiTexCoord4d,
+  glMultiTexCoord4dv,
+  glMultiTexCoord4f,
+  glMultiTexCoord4fv,
+  glMultiTexCoord4i,
+  glMultiTexCoord4iv,
+  glMultiTexCoord4s,
+  glMultiTexCoord4sv,
+  glNewList,
+  glNormal3b,
+  glNormal3bv,
+  glNormal3d,
+  glNormal3dv,
+  glNormal3f,
+  glNormal3fv,
+  glNormal3i,
+  glNormal3iv,
+  glNormal3s,
+  glNormal3sv,
+  glNormalPointer,
+  glOrtho,
+  glPassThrough,
+  glPixelMapfv,
+  glPixelMapuiv,
+  glPixelMapusv,
+  glPixelStoref,
+  glPixelStorei,
+  glPixelTransferf,
+  glPixelTransferi,
+  glPixelZoom,
+  glPointParameterf,
+  glPointParameterfv,
+  glPointParameteri,
+  glPointParameteriv,
+  glPointSize,
+  glPolygonMode,
+  glPolygonOffset,
+  glPolygonStipple,
+  glPopAttrib,
+  glPopClientAttrib,
+  glPopMatrix,
+  glPopName,
+  glPrioritizeTextures,
+  glPushAttrib,
+  glPushClientAttrib,
+  glPushMatrix,
+  glPushName,
+  glRasterPos2d,
+  glRasterPos2dv,
+  glRasterPos2f,
+  glRasterPos2fv,
+  glRasterPos2i,
+  glRasterPos2iv,
+  glRasterPos2s,
+  glRasterPos2sv,
+  glRasterPos3d,
+  glRasterPos3dv,
+  glRasterPos3f,
+  glRasterPos3fv,
+  glRasterPos3i,
+  glRasterPos3iv,
+  glRasterPos3s,
+  glRasterPos3sv,
+  glRasterPos4d,
+  glRasterPos4dv,
+  glRasterPos4f,
+  glRasterPos4fv,
+  glRasterPos4i,
+  glRasterPos4iv,
+  glRasterPos4s,
+  glRasterPos4sv,
+  glReadBuffer,
+  glReadPixels,
+  glRectd,
+  glRectdv,
+  glRectf,
+  glRectfv,
+  glRecti,
+  glRectiv,
+  glRects,
+  glRectsv,
+  glRenderMode,
+  glRenderbufferStorage,
+  glRenderbufferStorageMultisample,
+  glRotated,
+  glRotatef,
+  glSampleCoverage,
+  glScaled,
+  glScalef,
+  glScissor,
+  glSecondaryColor3b,
+  glSecondaryColor3bv,
+  glSecondaryColor3d,
+  glSecondaryColor3dv,
+  glSecondaryColor3f,
+  glSecondaryColor3fv,
+  glSecondaryColor3i,
+  glSecondaryColor3iv,
+  glSecondaryColor3s,
+  glSecondaryColor3sv,
+  glSecondaryColor3ub,
+  glSecondaryColor3ubv,
+  glSecondaryColor3ui,
+  glSecondaryColor3uiv,
+  glSecondaryColor3us,
+  glSecondaryColor3usv,
+  glSecondaryColorPointer,
+  glSelectBuffer,
+  glShadeModel,
+  glShaderSource,
+  glStencilFunc,
+  glStencilFuncSeparate,
+  glStencilMask,
+  glStencilMaskSeparate,
+  glStencilOp,
+  glStencilOpSeparate,
+  glTexCoord1d,
+  glTexCoord1dv,
+  glTexCoord1f,
+  glTexCoord1fv,
+  glTexCoord1i,
+  glTexCoord1iv,
+  glTexCoord1s,
+  glTexCoord1sv,
+  glTexCoord2d,
+  glTexCoord2dv,
+  glTexCoord2f,
+  glTexCoord2fv,
+  glTexCoord2i,
+  glTexCoord2iv,
+  glTexCoord2s,
+  glTexCoord2sv,
+  glTexCoord3d,
+  glTexCoord3dv,
+  glTexCoord3f,
+  glTexCoord3fv,
+  glTexCoord3i,
+  glTexCoord3iv,
+  glTexCoord3s,
+  glTexCoord3sv,
+  glTexCoord4d,
+  glTexCoord4dv,
+  glTexCoord4f,
+  glTexCoord4fv,
+  glTexCoord4i,
+  glTexCoord4iv,
+  glTexCoord4s,
+  glTexCoord4sv,
+  glTexCoordPointer,
+  glTexEnvf,
+  glTexEnvfv,
+  glTexEnvi,
+  glTexEnviv,
+  glTexGend,
+  glTexGendv,
+  glTexGenf,
+  glTexGenfv,
+  glTexGeni,
+  glTexGeniv,
+  glTexImage1D,
+  glTexImage2D,
+  glTexImage3D,
+  glTexParameterIiv,
+  glTexParameterIuiv,
+  glTexParameterf,
+  glTexParameterfv,
+  glTexParameteri,
+  glTexParameteriv,
+  glTexSubImage1D,
+  glTexSubImage2D,
+  glTexSubImage3D,
+  glTransformFeedbackVaryings,
+  glTranslated,
+  glTranslatef,
+  glUniform1f,
+  glUniform1fv,
+  glUniform1i,
+  glUniform1iv,
+  glUniform1ui,
+  glUniform1uiv,
+  glUniform2f,
+  glUniform2fv,
+  glUniform2i,
+  glUniform2iv,
+  glUniform2ui,
+  glUniform2uiv,
+  glUniform3f,
+  glUniform3fv,
+  glUniform3i,
+  glUniform3iv,
+  glUniform3ui,
+  glUniform3uiv,
+  glUniform4f,
+  glUniform4fv,
+  glUniform4i,
+  glUniform4iv,
+  glUniform4ui,
+  glUniform4uiv,
+  glUniformMatrix2fv,
+  glUniformMatrix2x3fv,
+  glUniformMatrix2x4fv,
+  glUniformMatrix3fv,
+  glUniformMatrix3x2fv,
+  glUniformMatrix3x4fv,
+  glUniformMatrix4fv,
+  glUniformMatrix4x2fv,
+  glUniformMatrix4x3fv,
+  glUnmapBuffer,
+  glUseProgram,
+  glValidateProgram,
+  glVertex2d,
+  glVertex2dv,
+  glVertex2f,
+  glVertex2fv,
+  glVertex2i,
+  glVertex2iv,
+  glVertex2s,
+  glVertex2sv,
+  glVertex3d,
+  glVertex3dv,
+  glVertex3f,
+  glVertex3fv,
+  glVertex3i,
+  glVertex3iv,
+  glVertex3s,
+  glVertex3sv,
+  glVertex4d,
+  glVertex4dv,
+  glVertex4f,
+  glVertex4fv,
+  glVertex4i,
+  glVertex4iv,
+  glVertex4s,
+  glVertex4sv,
+  glVertexAttrib1d,
+  glVertexAttrib1dv,
+  glVertexAttrib1f,
+  glVertexAttrib1fv,
+  glVertexAttrib1s,
+  glVertexAttrib1sv,
+  glVertexAttrib2d,
+  glVertexAttrib2dv,
+  glVertexAttrib2f,
+  glVertexAttrib2fv,
+  glVertexAttrib2s,
+  glVertexAttrib2sv,
+  glVertexAttrib3d,
+  glVertexAttrib3dv,
+  glVertexAttrib3f,
+  glVertexAttrib3fv,
+  glVertexAttrib3s,
+  glVertexAttrib3sv,
+  glVertexAttrib4Nbv,
+  glVertexAttrib4Niv,
+  glVertexAttrib4Nsv,
+  glVertexAttrib4Nub,
+  glVertexAttrib4Nubv,
+  glVertexAttrib4Nuiv,
+  glVertexAttrib4Nusv,
+  glVertexAttrib4bv,
+  glVertexAttrib4d,
+  glVertexAttrib4dv,
+  glVertexAttrib4f,
+  glVertexAttrib4fv,
+  glVertexAttrib4iv,
+  glVertexAttrib4s,
+  glVertexAttrib4sv,
+  glVertexAttrib4ubv,
+  glVertexAttrib4uiv,
+  glVertexAttrib4usv,
+  glVertexAttribI1i,
+  glVertexAttribI1iv,
+  glVertexAttribI1ui,
+  glVertexAttribI1uiv,
+  glVertexAttribI2i,
+  glVertexAttribI2iv,
+  glVertexAttribI2ui,
+  glVertexAttribI2uiv,
+  glVertexAttribI3i,
+  glVertexAttribI3iv,
+  glVertexAttribI3ui,
+  glVertexAttribI3uiv,
+  glVertexAttribI4bv,
+  glVertexAttribI4i,
+  glVertexAttribI4iv,
+  glVertexAttribI4sv,
+  glVertexAttribI4ubv,
+  glVertexAttribI4ui,
+  glVertexAttribI4uiv,
+  glVertexAttribI4usv,
+  glVertexAttribIPointer,
+  glVertexAttribPointer,
+  glVertexPointer,
+  glViewport,
+  glWindowPos2d,
+  glWindowPos2dv,
+  glWindowPos2f,
+  glWindowPos2fv,
+  glWindowPos2i,
+  glWindowPos2iv,
+  glWindowPos2s,
+  glWindowPos2sv,
+  glWindowPos3d,
+  glWindowPos3dv,
+  glWindowPos3f,
+  glWindowPos3fv,
+  glWindowPos3i,
+  glWindowPos3iv,
+  glWindowPos3s,
+  glWindowPos3sv
+) where
+
+import Graphics.GL.Types
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/Compatibility31.hs b/src/Graphics/GL/Compatibility31.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Compatibility31.hs
@@ -0,0 +1,1858 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Compatibility31
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Compatibility31 (
+  -- * Types
+  GLbitfield,
+  GLboolean,
+  GLbyte,
+  GLchar,
+  GLclampd,
+  GLclampf,
+  GLdouble,
+  GLenum,
+  GLfloat,
+  GLhalf,
+  GLint,
+  GLintptr,
+  GLshort,
+  GLsizei,
+  GLsizeiptr,
+  GLubyte,
+  GLuint,
+  GLushort,
+  GLvoid,
+  -- * Enums
+  pattern GL_2D,
+  pattern GL_2_BYTES,
+  pattern GL_3D,
+  pattern GL_3D_COLOR,
+  pattern GL_3D_COLOR_TEXTURE,
+  pattern GL_3_BYTES,
+  pattern GL_4D_COLOR_TEXTURE,
+  pattern GL_4_BYTES,
+  pattern GL_ACCUM,
+  pattern GL_ACCUM_ALPHA_BITS,
+  pattern GL_ACCUM_BLUE_BITS,
+  pattern GL_ACCUM_BUFFER_BIT,
+  pattern GL_ACCUM_CLEAR_VALUE,
+  pattern GL_ACCUM_GREEN_BITS,
+  pattern GL_ACCUM_RED_BITS,
+  pattern GL_ACTIVE_ATTRIBUTES,
+  pattern GL_ACTIVE_ATTRIBUTE_MAX_LENGTH,
+  pattern GL_ACTIVE_TEXTURE,
+  pattern GL_ACTIVE_UNIFORMS,
+  pattern GL_ACTIVE_UNIFORM_BLOCKS,
+  pattern GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH,
+  pattern GL_ACTIVE_UNIFORM_MAX_LENGTH,
+  pattern GL_ADD,
+  pattern GL_ADD_SIGNED,
+  pattern GL_ALIASED_LINE_WIDTH_RANGE,
+  pattern GL_ALIASED_POINT_SIZE_RANGE,
+  pattern GL_ALL_ATTRIB_BITS,
+  pattern GL_ALPHA,
+  pattern GL_ALPHA12,
+  pattern GL_ALPHA16,
+  pattern GL_ALPHA4,
+  pattern GL_ALPHA8,
+  pattern GL_ALPHA_BIAS,
+  pattern GL_ALPHA_BITS,
+  pattern GL_ALPHA_INTEGER,
+  pattern GL_ALPHA_SCALE,
+  pattern GL_ALPHA_TEST,
+  pattern GL_ALPHA_TEST_FUNC,
+  pattern GL_ALPHA_TEST_REF,
+  pattern GL_ALWAYS,
+  pattern GL_AMBIENT,
+  pattern GL_AMBIENT_AND_DIFFUSE,
+  pattern GL_AND,
+  pattern GL_AND_INVERTED,
+  pattern GL_AND_REVERSE,
+  pattern GL_ARRAY_BUFFER,
+  pattern GL_ARRAY_BUFFER_BINDING,
+  pattern GL_ATTACHED_SHADERS,
+  pattern GL_ATTRIB_STACK_DEPTH,
+  pattern GL_AUTO_NORMAL,
+  pattern GL_AUX0,
+  pattern GL_AUX1,
+  pattern GL_AUX2,
+  pattern GL_AUX3,
+  pattern GL_AUX_BUFFERS,
+  pattern GL_BACK,
+  pattern GL_BACK_LEFT,
+  pattern GL_BACK_RIGHT,
+  pattern GL_BGR,
+  pattern GL_BGRA,
+  pattern GL_BGRA_INTEGER,
+  pattern GL_BGR_INTEGER,
+  pattern GL_BITMAP,
+  pattern GL_BITMAP_TOKEN,
+  pattern GL_BLEND,
+  pattern GL_BLEND_COLOR,
+  pattern GL_BLEND_DST,
+  pattern GL_BLEND_DST_ALPHA,
+  pattern GL_BLEND_DST_RGB,
+  pattern GL_BLEND_EQUATION,
+  pattern GL_BLEND_EQUATION_ALPHA,
+  pattern GL_BLEND_EQUATION_RGB,
+  pattern GL_BLEND_SRC,
+  pattern GL_BLEND_SRC_ALPHA,
+  pattern GL_BLEND_SRC_RGB,
+  pattern GL_BLUE,
+  pattern GL_BLUE_BIAS,
+  pattern GL_BLUE_BITS,
+  pattern GL_BLUE_INTEGER,
+  pattern GL_BLUE_SCALE,
+  pattern GL_BOOL,
+  pattern GL_BOOL_VEC2,
+  pattern GL_BOOL_VEC3,
+  pattern GL_BOOL_VEC4,
+  pattern GL_BUFFER_ACCESS,
+  pattern GL_BUFFER_ACCESS_FLAGS,
+  pattern GL_BUFFER_MAPPED,
+  pattern GL_BUFFER_MAP_LENGTH,
+  pattern GL_BUFFER_MAP_OFFSET,
+  pattern GL_BUFFER_MAP_POINTER,
+  pattern GL_BUFFER_SIZE,
+  pattern GL_BUFFER_USAGE,
+  pattern GL_BYTE,
+  pattern GL_C3F_V3F,
+  pattern GL_C4F_N3F_V3F,
+  pattern GL_C4UB_V2F,
+  pattern GL_C4UB_V3F,
+  pattern GL_CCW,
+  pattern GL_CLAMP,
+  pattern GL_CLAMP_FRAGMENT_COLOR,
+  pattern GL_CLAMP_READ_COLOR,
+  pattern GL_CLAMP_TO_BORDER,
+  pattern GL_CLAMP_TO_EDGE,
+  pattern GL_CLAMP_VERTEX_COLOR,
+  pattern GL_CLEAR,
+  pattern GL_CLIENT_ACTIVE_TEXTURE,
+  pattern GL_CLIENT_ALL_ATTRIB_BITS,
+  pattern GL_CLIENT_ATTRIB_STACK_DEPTH,
+  pattern GL_CLIENT_PIXEL_STORE_BIT,
+  pattern GL_CLIENT_VERTEX_ARRAY_BIT,
+  pattern GL_CLIP_DISTANCE0,
+  pattern GL_CLIP_DISTANCE1,
+  pattern GL_CLIP_DISTANCE2,
+  pattern GL_CLIP_DISTANCE3,
+  pattern GL_CLIP_DISTANCE4,
+  pattern GL_CLIP_DISTANCE5,
+  pattern GL_CLIP_DISTANCE6,
+  pattern GL_CLIP_DISTANCE7,
+  pattern GL_CLIP_PLANE0,
+  pattern GL_CLIP_PLANE1,
+  pattern GL_CLIP_PLANE2,
+  pattern GL_CLIP_PLANE3,
+  pattern GL_CLIP_PLANE4,
+  pattern GL_CLIP_PLANE5,
+  pattern GL_COEFF,
+  pattern GL_COLOR,
+  pattern GL_COLOR_ARRAY,
+  pattern GL_COLOR_ARRAY_BUFFER_BINDING,
+  pattern GL_COLOR_ARRAY_POINTER,
+  pattern GL_COLOR_ARRAY_SIZE,
+  pattern GL_COLOR_ARRAY_STRIDE,
+  pattern GL_COLOR_ARRAY_TYPE,
+  pattern GL_COLOR_ATTACHMENT0,
+  pattern GL_COLOR_ATTACHMENT1,
+  pattern GL_COLOR_ATTACHMENT10,
+  pattern GL_COLOR_ATTACHMENT11,
+  pattern GL_COLOR_ATTACHMENT12,
+  pattern GL_COLOR_ATTACHMENT13,
+  pattern GL_COLOR_ATTACHMENT14,
+  pattern GL_COLOR_ATTACHMENT15,
+  pattern GL_COLOR_ATTACHMENT16,
+  pattern GL_COLOR_ATTACHMENT17,
+  pattern GL_COLOR_ATTACHMENT18,
+  pattern GL_COLOR_ATTACHMENT19,
+  pattern GL_COLOR_ATTACHMENT2,
+  pattern GL_COLOR_ATTACHMENT20,
+  pattern GL_COLOR_ATTACHMENT21,
+  pattern GL_COLOR_ATTACHMENT22,
+  pattern GL_COLOR_ATTACHMENT23,
+  pattern GL_COLOR_ATTACHMENT24,
+  pattern GL_COLOR_ATTACHMENT25,
+  pattern GL_COLOR_ATTACHMENT26,
+  pattern GL_COLOR_ATTACHMENT27,
+  pattern GL_COLOR_ATTACHMENT28,
+  pattern GL_COLOR_ATTACHMENT29,
+  pattern GL_COLOR_ATTACHMENT3,
+  pattern GL_COLOR_ATTACHMENT30,
+  pattern GL_COLOR_ATTACHMENT31,
+  pattern GL_COLOR_ATTACHMENT4,
+  pattern GL_COLOR_ATTACHMENT5,
+  pattern GL_COLOR_ATTACHMENT6,
+  pattern GL_COLOR_ATTACHMENT7,
+  pattern GL_COLOR_ATTACHMENT8,
+  pattern GL_COLOR_ATTACHMENT9,
+  pattern GL_COLOR_BUFFER_BIT,
+  pattern GL_COLOR_CLEAR_VALUE,
+  pattern GL_COLOR_INDEX,
+  pattern GL_COLOR_INDEXES,
+  pattern GL_COLOR_LOGIC_OP,
+  pattern GL_COLOR_MATERIAL,
+  pattern GL_COLOR_MATERIAL_FACE,
+  pattern GL_COLOR_MATERIAL_PARAMETER,
+  pattern GL_COLOR_SUM,
+  pattern GL_COLOR_WRITEMASK,
+  pattern GL_COMBINE,
+  pattern GL_COMBINE_ALPHA,
+  pattern GL_COMBINE_RGB,
+  pattern GL_COMPARE_REF_TO_TEXTURE,
+  pattern GL_COMPARE_R_TO_TEXTURE,
+  pattern GL_COMPILE,
+  pattern GL_COMPILE_AND_EXECUTE,
+  pattern GL_COMPILE_STATUS,
+  pattern GL_COMPRESSED_ALPHA,
+  pattern GL_COMPRESSED_INTENSITY,
+  pattern GL_COMPRESSED_LUMINANCE,
+  pattern GL_COMPRESSED_LUMINANCE_ALPHA,
+  pattern GL_COMPRESSED_RED,
+  pattern GL_COMPRESSED_RED_RGTC1,
+  pattern GL_COMPRESSED_RG,
+  pattern GL_COMPRESSED_RGB,
+  pattern GL_COMPRESSED_RGBA,
+  pattern GL_COMPRESSED_RG_RGTC2,
+  pattern GL_COMPRESSED_SIGNED_RED_RGTC1,
+  pattern GL_COMPRESSED_SIGNED_RG_RGTC2,
+  pattern GL_COMPRESSED_SLUMINANCE,
+  pattern GL_COMPRESSED_SLUMINANCE_ALPHA,
+  pattern GL_COMPRESSED_SRGB,
+  pattern GL_COMPRESSED_SRGB_ALPHA,
+  pattern GL_COMPRESSED_TEXTURE_FORMATS,
+  pattern GL_CONSTANT,
+  pattern GL_CONSTANT_ALPHA,
+  pattern GL_CONSTANT_ATTENUATION,
+  pattern GL_CONSTANT_COLOR,
+  pattern GL_CONTEXT_FLAGS,
+  pattern GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT,
+  pattern GL_COORD_REPLACE,
+  pattern GL_COPY,
+  pattern GL_COPY_INVERTED,
+  pattern GL_COPY_PIXEL_TOKEN,
+  pattern GL_COPY_READ_BUFFER,
+  pattern GL_COPY_WRITE_BUFFER,
+  pattern GL_CULL_FACE,
+  pattern GL_CULL_FACE_MODE,
+  pattern GL_CURRENT_BIT,
+  pattern GL_CURRENT_COLOR,
+  pattern GL_CURRENT_FOG_COORD,
+  pattern GL_CURRENT_FOG_COORDINATE,
+  pattern GL_CURRENT_INDEX,
+  pattern GL_CURRENT_NORMAL,
+  pattern GL_CURRENT_PROGRAM,
+  pattern GL_CURRENT_QUERY,
+  pattern GL_CURRENT_RASTER_COLOR,
+  pattern GL_CURRENT_RASTER_DISTANCE,
+  pattern GL_CURRENT_RASTER_INDEX,
+  pattern GL_CURRENT_RASTER_POSITION,
+  pattern GL_CURRENT_RASTER_POSITION_VALID,
+  pattern GL_CURRENT_RASTER_SECONDARY_COLOR,
+  pattern GL_CURRENT_RASTER_TEXTURE_COORDS,
+  pattern GL_CURRENT_SECONDARY_COLOR,
+  pattern GL_CURRENT_TEXTURE_COORDS,
+  pattern GL_CURRENT_VERTEX_ATTRIB,
+  pattern GL_CW,
+  pattern GL_DECAL,
+  pattern GL_DECR,
+  pattern GL_DECR_WRAP,
+  pattern GL_DELETE_STATUS,
+  pattern GL_DEPTH,
+  pattern GL_DEPTH24_STENCIL8,
+  pattern GL_DEPTH32F_STENCIL8,
+  pattern GL_DEPTH_ATTACHMENT,
+  pattern GL_DEPTH_BIAS,
+  pattern GL_DEPTH_BITS,
+  pattern GL_DEPTH_BUFFER_BIT,
+  pattern GL_DEPTH_CLEAR_VALUE,
+  pattern GL_DEPTH_COMPONENT,
+  pattern GL_DEPTH_COMPONENT16,
+  pattern GL_DEPTH_COMPONENT24,
+  pattern GL_DEPTH_COMPONENT32,
+  pattern GL_DEPTH_COMPONENT32F,
+  pattern GL_DEPTH_FUNC,
+  pattern GL_DEPTH_RANGE,
+  pattern GL_DEPTH_SCALE,
+  pattern GL_DEPTH_STENCIL,
+  pattern GL_DEPTH_STENCIL_ATTACHMENT,
+  pattern GL_DEPTH_TEST,
+  pattern GL_DEPTH_TEXTURE_MODE,
+  pattern GL_DEPTH_WRITEMASK,
+  pattern GL_DIFFUSE,
+  pattern GL_DITHER,
+  pattern GL_DOMAIN,
+  pattern GL_DONT_CARE,
+  pattern GL_DOT3_RGB,
+  pattern GL_DOT3_RGBA,
+  pattern GL_DOUBLE,
+  pattern GL_DOUBLEBUFFER,
+  pattern GL_DRAW_BUFFER,
+  pattern GL_DRAW_BUFFER0,
+  pattern GL_DRAW_BUFFER1,
+  pattern GL_DRAW_BUFFER10,
+  pattern GL_DRAW_BUFFER11,
+  pattern GL_DRAW_BUFFER12,
+  pattern GL_DRAW_BUFFER13,
+  pattern GL_DRAW_BUFFER14,
+  pattern GL_DRAW_BUFFER15,
+  pattern GL_DRAW_BUFFER2,
+  pattern GL_DRAW_BUFFER3,
+  pattern GL_DRAW_BUFFER4,
+  pattern GL_DRAW_BUFFER5,
+  pattern GL_DRAW_BUFFER6,
+  pattern GL_DRAW_BUFFER7,
+  pattern GL_DRAW_BUFFER8,
+  pattern GL_DRAW_BUFFER9,
+  pattern GL_DRAW_FRAMEBUFFER,
+  pattern GL_DRAW_FRAMEBUFFER_BINDING,
+  pattern GL_DRAW_PIXEL_TOKEN,
+  pattern GL_DST_ALPHA,
+  pattern GL_DST_COLOR,
+  pattern GL_DYNAMIC_COPY,
+  pattern GL_DYNAMIC_DRAW,
+  pattern GL_DYNAMIC_READ,
+  pattern GL_EDGE_FLAG,
+  pattern GL_EDGE_FLAG_ARRAY,
+  pattern GL_EDGE_FLAG_ARRAY_BUFFER_BINDING,
+  pattern GL_EDGE_FLAG_ARRAY_POINTER,
+  pattern GL_EDGE_FLAG_ARRAY_STRIDE,
+  pattern GL_ELEMENT_ARRAY_BUFFER,
+  pattern GL_ELEMENT_ARRAY_BUFFER_BINDING,
+  pattern GL_EMISSION,
+  pattern GL_ENABLE_BIT,
+  pattern GL_EQUAL,
+  pattern GL_EQUIV,
+  pattern GL_EVAL_BIT,
+  pattern GL_EXP,
+  pattern GL_EXP2,
+  pattern GL_EXTENSIONS,
+  pattern GL_EYE_LINEAR,
+  pattern GL_EYE_PLANE,
+  pattern GL_FALSE,
+  pattern GL_FASTEST,
+  pattern GL_FEEDBACK,
+  pattern GL_FEEDBACK_BUFFER_POINTER,
+  pattern GL_FEEDBACK_BUFFER_SIZE,
+  pattern GL_FEEDBACK_BUFFER_TYPE,
+  pattern GL_FILL,
+  pattern GL_FIXED_ONLY,
+  pattern GL_FLAT,
+  pattern GL_FLOAT,
+  pattern GL_FLOAT_32_UNSIGNED_INT_24_8_REV,
+  pattern GL_FLOAT_MAT2,
+  pattern GL_FLOAT_MAT2x3,
+  pattern GL_FLOAT_MAT2x4,
+  pattern GL_FLOAT_MAT3,
+  pattern GL_FLOAT_MAT3x2,
+  pattern GL_FLOAT_MAT3x4,
+  pattern GL_FLOAT_MAT4,
+  pattern GL_FLOAT_MAT4x2,
+  pattern GL_FLOAT_MAT4x3,
+  pattern GL_FLOAT_VEC2,
+  pattern GL_FLOAT_VEC3,
+  pattern GL_FLOAT_VEC4,
+  pattern GL_FOG,
+  pattern GL_FOG_BIT,
+  pattern GL_FOG_COLOR,
+  pattern GL_FOG_COORD,
+  pattern GL_FOG_COORDINATE,
+  pattern GL_FOG_COORDINATE_ARRAY,
+  pattern GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING,
+  pattern GL_FOG_COORDINATE_ARRAY_POINTER,
+  pattern GL_FOG_COORDINATE_ARRAY_STRIDE,
+  pattern GL_FOG_COORDINATE_ARRAY_TYPE,
+  pattern GL_FOG_COORDINATE_SOURCE,
+  pattern GL_FOG_COORD_ARRAY,
+  pattern GL_FOG_COORD_ARRAY_BUFFER_BINDING,
+  pattern GL_FOG_COORD_ARRAY_POINTER,
+  pattern GL_FOG_COORD_ARRAY_STRIDE,
+  pattern GL_FOG_COORD_ARRAY_TYPE,
+  pattern GL_FOG_COORD_SRC,
+  pattern GL_FOG_DENSITY,
+  pattern GL_FOG_END,
+  pattern GL_FOG_HINT,
+  pattern GL_FOG_INDEX,
+  pattern GL_FOG_MODE,
+  pattern GL_FOG_START,
+  pattern GL_FRAGMENT_DEPTH,
+  pattern GL_FRAGMENT_SHADER,
+  pattern GL_FRAGMENT_SHADER_DERIVATIVE_HINT,
+  pattern GL_FRAMEBUFFER,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL,
+  pattern GL_FRAMEBUFFER_BINDING,
+  pattern GL_FRAMEBUFFER_COMPLETE,
+  pattern GL_FRAMEBUFFER_DEFAULT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER,
+  pattern GL_FRAMEBUFFER_SRGB,
+  pattern GL_FRAMEBUFFER_UNDEFINED,
+  pattern GL_FRAMEBUFFER_UNSUPPORTED,
+  pattern GL_FRONT,
+  pattern GL_FRONT_AND_BACK,
+  pattern GL_FRONT_FACE,
+  pattern GL_FRONT_LEFT,
+  pattern GL_FRONT_RIGHT,
+  pattern GL_FUNC_ADD,
+  pattern GL_FUNC_REVERSE_SUBTRACT,
+  pattern GL_FUNC_SUBTRACT,
+  pattern GL_GENERATE_MIPMAP,
+  pattern GL_GENERATE_MIPMAP_HINT,
+  pattern GL_GEQUAL,
+  pattern GL_GREATER,
+  pattern GL_GREEN,
+  pattern GL_GREEN_BIAS,
+  pattern GL_GREEN_BITS,
+  pattern GL_GREEN_INTEGER,
+  pattern GL_GREEN_SCALE,
+  pattern GL_HALF_FLOAT,
+  pattern GL_HINT_BIT,
+  pattern GL_INCR,
+  pattern GL_INCR_WRAP,
+  pattern GL_INDEX,
+  pattern GL_INDEX_ARRAY,
+  pattern GL_INDEX_ARRAY_BUFFER_BINDING,
+  pattern GL_INDEX_ARRAY_POINTER,
+  pattern GL_INDEX_ARRAY_STRIDE,
+  pattern GL_INDEX_ARRAY_TYPE,
+  pattern GL_INDEX_BITS,
+  pattern GL_INDEX_CLEAR_VALUE,
+  pattern GL_INDEX_LOGIC_OP,
+  pattern GL_INDEX_MODE,
+  pattern GL_INDEX_OFFSET,
+  pattern GL_INDEX_SHIFT,
+  pattern GL_INDEX_WRITEMASK,
+  pattern GL_INFO_LOG_LENGTH,
+  pattern GL_INT,
+  pattern GL_INTENSITY,
+  pattern GL_INTENSITY12,
+  pattern GL_INTENSITY16,
+  pattern GL_INTENSITY4,
+  pattern GL_INTENSITY8,
+  pattern GL_INTERLEAVED_ATTRIBS,
+  pattern GL_INTERPOLATE,
+  pattern GL_INT_SAMPLER_1D,
+  pattern GL_INT_SAMPLER_1D_ARRAY,
+  pattern GL_INT_SAMPLER_2D,
+  pattern GL_INT_SAMPLER_2D_ARRAY,
+  pattern GL_INT_SAMPLER_2D_RECT,
+  pattern GL_INT_SAMPLER_3D,
+  pattern GL_INT_SAMPLER_BUFFER,
+  pattern GL_INT_SAMPLER_CUBE,
+  pattern GL_INT_VEC2,
+  pattern GL_INT_VEC3,
+  pattern GL_INT_VEC4,
+  pattern GL_INVALID_ENUM,
+  pattern GL_INVALID_FRAMEBUFFER_OPERATION,
+  pattern GL_INVALID_INDEX,
+  pattern GL_INVALID_OPERATION,
+  pattern GL_INVALID_VALUE,
+  pattern GL_INVERT,
+  pattern GL_KEEP,
+  pattern GL_LEFT,
+  pattern GL_LEQUAL,
+  pattern GL_LESS,
+  pattern GL_LIGHT0,
+  pattern GL_LIGHT1,
+  pattern GL_LIGHT2,
+  pattern GL_LIGHT3,
+  pattern GL_LIGHT4,
+  pattern GL_LIGHT5,
+  pattern GL_LIGHT6,
+  pattern GL_LIGHT7,
+  pattern GL_LIGHTING,
+  pattern GL_LIGHTING_BIT,
+  pattern GL_LIGHT_MODEL_AMBIENT,
+  pattern GL_LIGHT_MODEL_COLOR_CONTROL,
+  pattern GL_LIGHT_MODEL_LOCAL_VIEWER,
+  pattern GL_LIGHT_MODEL_TWO_SIDE,
+  pattern GL_LINE,
+  pattern GL_LINEAR,
+  pattern GL_LINEAR_ATTENUATION,
+  pattern GL_LINEAR_MIPMAP_LINEAR,
+  pattern GL_LINEAR_MIPMAP_NEAREST,
+  pattern GL_LINES,
+  pattern GL_LINE_BIT,
+  pattern GL_LINE_LOOP,
+  pattern GL_LINE_RESET_TOKEN,
+  pattern GL_LINE_SMOOTH,
+  pattern GL_LINE_SMOOTH_HINT,
+  pattern GL_LINE_STIPPLE,
+  pattern GL_LINE_STIPPLE_PATTERN,
+  pattern GL_LINE_STIPPLE_REPEAT,
+  pattern GL_LINE_STRIP,
+  pattern GL_LINE_TOKEN,
+  pattern GL_LINE_WIDTH,
+  pattern GL_LINE_WIDTH_GRANULARITY,
+  pattern GL_LINE_WIDTH_RANGE,
+  pattern GL_LINK_STATUS,
+  pattern GL_LIST_BASE,
+  pattern GL_LIST_BIT,
+  pattern GL_LIST_INDEX,
+  pattern GL_LIST_MODE,
+  pattern GL_LOAD,
+  pattern GL_LOGIC_OP,
+  pattern GL_LOGIC_OP_MODE,
+  pattern GL_LOWER_LEFT,
+  pattern GL_LUMINANCE,
+  pattern GL_LUMINANCE12,
+  pattern GL_LUMINANCE12_ALPHA12,
+  pattern GL_LUMINANCE12_ALPHA4,
+  pattern GL_LUMINANCE16,
+  pattern GL_LUMINANCE16_ALPHA16,
+  pattern GL_LUMINANCE4,
+  pattern GL_LUMINANCE4_ALPHA4,
+  pattern GL_LUMINANCE6_ALPHA2,
+  pattern GL_LUMINANCE8,
+  pattern GL_LUMINANCE8_ALPHA8,
+  pattern GL_LUMINANCE_ALPHA,
+  pattern GL_MAJOR_VERSION,
+  pattern GL_MAP1_COLOR_4,
+  pattern GL_MAP1_GRID_DOMAIN,
+  pattern GL_MAP1_GRID_SEGMENTS,
+  pattern GL_MAP1_INDEX,
+  pattern GL_MAP1_NORMAL,
+  pattern GL_MAP1_TEXTURE_COORD_1,
+  pattern GL_MAP1_TEXTURE_COORD_2,
+  pattern GL_MAP1_TEXTURE_COORD_3,
+  pattern GL_MAP1_TEXTURE_COORD_4,
+  pattern GL_MAP1_VERTEX_3,
+  pattern GL_MAP1_VERTEX_4,
+  pattern GL_MAP2_COLOR_4,
+  pattern GL_MAP2_GRID_DOMAIN,
+  pattern GL_MAP2_GRID_SEGMENTS,
+  pattern GL_MAP2_INDEX,
+  pattern GL_MAP2_NORMAL,
+  pattern GL_MAP2_TEXTURE_COORD_1,
+  pattern GL_MAP2_TEXTURE_COORD_2,
+  pattern GL_MAP2_TEXTURE_COORD_3,
+  pattern GL_MAP2_TEXTURE_COORD_4,
+  pattern GL_MAP2_VERTEX_3,
+  pattern GL_MAP2_VERTEX_4,
+  pattern GL_MAP_COLOR,
+  pattern GL_MAP_FLUSH_EXPLICIT_BIT,
+  pattern GL_MAP_INVALIDATE_BUFFER_BIT,
+  pattern GL_MAP_INVALIDATE_RANGE_BIT,
+  pattern GL_MAP_READ_BIT,
+  pattern GL_MAP_STENCIL,
+  pattern GL_MAP_UNSYNCHRONIZED_BIT,
+  pattern GL_MAP_WRITE_BIT,
+  pattern GL_MATRIX_MODE,
+  pattern GL_MAX,
+  pattern GL_MAX_3D_TEXTURE_SIZE,
+  pattern GL_MAX_ARRAY_TEXTURE_LAYERS,
+  pattern GL_MAX_ATTRIB_STACK_DEPTH,
+  pattern GL_MAX_CLIENT_ATTRIB_STACK_DEPTH,
+  pattern GL_MAX_CLIP_DISTANCES,
+  pattern GL_MAX_CLIP_PLANES,
+  pattern GL_MAX_COLOR_ATTACHMENTS,
+  pattern GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_COMBINED_UNIFORM_BLOCKS,
+  pattern GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS,
+  pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE,
+  pattern GL_MAX_DRAW_BUFFERS,
+  pattern GL_MAX_ELEMENTS_INDICES,
+  pattern GL_MAX_ELEMENTS_VERTICES,
+  pattern GL_MAX_EVAL_ORDER,
+  pattern GL_MAX_FRAGMENT_UNIFORM_BLOCKS,
+  pattern GL_MAX_FRAGMENT_UNIFORM_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_UNIFORM_BLOCKS,
+  pattern GL_MAX_LIGHTS,
+  pattern GL_MAX_LIST_NESTING,
+  pattern GL_MAX_MODELVIEW_STACK_DEPTH,
+  pattern GL_MAX_NAME_STACK_DEPTH,
+  pattern GL_MAX_PIXEL_MAP_TABLE,
+  pattern GL_MAX_PROGRAM_TEXEL_OFFSET,
+  pattern GL_MAX_PROJECTION_STACK_DEPTH,
+  pattern GL_MAX_RECTANGLE_TEXTURE_SIZE,
+  pattern GL_MAX_RENDERBUFFER_SIZE,
+  pattern GL_MAX_SAMPLES,
+  pattern GL_MAX_TEXTURE_BUFFER_SIZE,
+  pattern GL_MAX_TEXTURE_COORDS,
+  pattern GL_MAX_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_TEXTURE_LOD_BIAS,
+  pattern GL_MAX_TEXTURE_SIZE,
+  pattern GL_MAX_TEXTURE_STACK_DEPTH,
+  pattern GL_MAX_TEXTURE_UNITS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS,
+  pattern GL_MAX_UNIFORM_BLOCK_SIZE,
+  pattern GL_MAX_UNIFORM_BUFFER_BINDINGS,
+  pattern GL_MAX_VARYING_COMPONENTS,
+  pattern GL_MAX_VARYING_FLOATS,
+  pattern GL_MAX_VERTEX_ATTRIBS,
+  pattern GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_VERTEX_UNIFORM_BLOCKS,
+  pattern GL_MAX_VERTEX_UNIFORM_COMPONENTS,
+  pattern GL_MAX_VIEWPORT_DIMS,
+  pattern GL_MIN,
+  pattern GL_MINOR_VERSION,
+  pattern GL_MIN_PROGRAM_TEXEL_OFFSET,
+  pattern GL_MIRRORED_REPEAT,
+  pattern GL_MODELVIEW,
+  pattern GL_MODELVIEW_MATRIX,
+  pattern GL_MODELVIEW_STACK_DEPTH,
+  pattern GL_MODULATE,
+  pattern GL_MULT,
+  pattern GL_MULTISAMPLE,
+  pattern GL_MULTISAMPLE_BIT,
+  pattern GL_N3F_V3F,
+  pattern GL_NAME_STACK_DEPTH,
+  pattern GL_NAND,
+  pattern GL_NEAREST,
+  pattern GL_NEAREST_MIPMAP_LINEAR,
+  pattern GL_NEAREST_MIPMAP_NEAREST,
+  pattern GL_NEVER,
+  pattern GL_NICEST,
+  pattern GL_NONE,
+  pattern GL_NOOP,
+  pattern GL_NOR,
+  pattern GL_NORMALIZE,
+  pattern GL_NORMAL_ARRAY,
+  pattern GL_NORMAL_ARRAY_BUFFER_BINDING,
+  pattern GL_NORMAL_ARRAY_POINTER,
+  pattern GL_NORMAL_ARRAY_STRIDE,
+  pattern GL_NORMAL_ARRAY_TYPE,
+  pattern GL_NORMAL_MAP,
+  pattern GL_NOTEQUAL,
+  pattern GL_NO_ERROR,
+  pattern GL_NUM_COMPRESSED_TEXTURE_FORMATS,
+  pattern GL_NUM_EXTENSIONS,
+  pattern GL_OBJECT_LINEAR,
+  pattern GL_OBJECT_PLANE,
+  pattern GL_ONE,
+  pattern GL_ONE_MINUS_CONSTANT_ALPHA,
+  pattern GL_ONE_MINUS_CONSTANT_COLOR,
+  pattern GL_ONE_MINUS_DST_ALPHA,
+  pattern GL_ONE_MINUS_DST_COLOR,
+  pattern GL_ONE_MINUS_SRC_ALPHA,
+  pattern GL_ONE_MINUS_SRC_COLOR,
+  pattern GL_OPERAND0_ALPHA,
+  pattern GL_OPERAND0_RGB,
+  pattern GL_OPERAND1_ALPHA,
+  pattern GL_OPERAND1_RGB,
+  pattern GL_OPERAND2_ALPHA,
+  pattern GL_OPERAND2_RGB,
+  pattern GL_OR,
+  pattern GL_ORDER,
+  pattern GL_OR_INVERTED,
+  pattern GL_OR_REVERSE,
+  pattern GL_OUT_OF_MEMORY,
+  pattern GL_PACK_ALIGNMENT,
+  pattern GL_PACK_IMAGE_HEIGHT,
+  pattern GL_PACK_LSB_FIRST,
+  pattern GL_PACK_ROW_LENGTH,
+  pattern GL_PACK_SKIP_IMAGES,
+  pattern GL_PACK_SKIP_PIXELS,
+  pattern GL_PACK_SKIP_ROWS,
+  pattern GL_PACK_SWAP_BYTES,
+  pattern GL_PASS_THROUGH_TOKEN,
+  pattern GL_PERSPECTIVE_CORRECTION_HINT,
+  pattern GL_PIXEL_MAP_A_TO_A,
+  pattern GL_PIXEL_MAP_A_TO_A_SIZE,
+  pattern GL_PIXEL_MAP_B_TO_B,
+  pattern GL_PIXEL_MAP_B_TO_B_SIZE,
+  pattern GL_PIXEL_MAP_G_TO_G,
+  pattern GL_PIXEL_MAP_G_TO_G_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_A,
+  pattern GL_PIXEL_MAP_I_TO_A_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_B,
+  pattern GL_PIXEL_MAP_I_TO_B_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_G,
+  pattern GL_PIXEL_MAP_I_TO_G_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_I,
+  pattern GL_PIXEL_MAP_I_TO_I_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_R,
+  pattern GL_PIXEL_MAP_I_TO_R_SIZE,
+  pattern GL_PIXEL_MAP_R_TO_R,
+  pattern GL_PIXEL_MAP_R_TO_R_SIZE,
+  pattern GL_PIXEL_MAP_S_TO_S,
+  pattern GL_PIXEL_MAP_S_TO_S_SIZE,
+  pattern GL_PIXEL_MODE_BIT,
+  pattern GL_PIXEL_PACK_BUFFER,
+  pattern GL_PIXEL_PACK_BUFFER_BINDING,
+  pattern GL_PIXEL_UNPACK_BUFFER,
+  pattern GL_PIXEL_UNPACK_BUFFER_BINDING,
+  pattern GL_POINT,
+  pattern GL_POINTS,
+  pattern GL_POINT_BIT,
+  pattern GL_POINT_DISTANCE_ATTENUATION,
+  pattern GL_POINT_FADE_THRESHOLD_SIZE,
+  pattern GL_POINT_SIZE,
+  pattern GL_POINT_SIZE_GRANULARITY,
+  pattern GL_POINT_SIZE_MAX,
+  pattern GL_POINT_SIZE_MIN,
+  pattern GL_POINT_SIZE_RANGE,
+  pattern GL_POINT_SMOOTH,
+  pattern GL_POINT_SMOOTH_HINT,
+  pattern GL_POINT_SPRITE,
+  pattern GL_POINT_SPRITE_COORD_ORIGIN,
+  pattern GL_POINT_TOKEN,
+  pattern GL_POLYGON,
+  pattern GL_POLYGON_BIT,
+  pattern GL_POLYGON_MODE,
+  pattern GL_POLYGON_OFFSET_FACTOR,
+  pattern GL_POLYGON_OFFSET_FILL,
+  pattern GL_POLYGON_OFFSET_LINE,
+  pattern GL_POLYGON_OFFSET_POINT,
+  pattern GL_POLYGON_OFFSET_UNITS,
+  pattern GL_POLYGON_SMOOTH,
+  pattern GL_POLYGON_SMOOTH_HINT,
+  pattern GL_POLYGON_STIPPLE,
+  pattern GL_POLYGON_STIPPLE_BIT,
+  pattern GL_POLYGON_TOKEN,
+  pattern GL_POSITION,
+  pattern GL_PREVIOUS,
+  pattern GL_PRIMARY_COLOR,
+  pattern GL_PRIMITIVES_GENERATED,
+  pattern GL_PRIMITIVE_RESTART,
+  pattern GL_PRIMITIVE_RESTART_INDEX,
+  pattern GL_PROJECTION,
+  pattern GL_PROJECTION_MATRIX,
+  pattern GL_PROJECTION_STACK_DEPTH,
+  pattern GL_PROXY_TEXTURE_1D,
+  pattern GL_PROXY_TEXTURE_1D_ARRAY,
+  pattern GL_PROXY_TEXTURE_2D,
+  pattern GL_PROXY_TEXTURE_2D_ARRAY,
+  pattern GL_PROXY_TEXTURE_3D,
+  pattern GL_PROXY_TEXTURE_CUBE_MAP,
+  pattern GL_PROXY_TEXTURE_RECTANGLE,
+  pattern GL_Q,
+  pattern GL_QUADRATIC_ATTENUATION,
+  pattern GL_QUADS,
+  pattern GL_QUAD_STRIP,
+  pattern GL_QUERY_BY_REGION_NO_WAIT,
+  pattern GL_QUERY_BY_REGION_WAIT,
+  pattern GL_QUERY_COUNTER_BITS,
+  pattern GL_QUERY_NO_WAIT,
+  pattern GL_QUERY_RESULT,
+  pattern GL_QUERY_RESULT_AVAILABLE,
+  pattern GL_QUERY_WAIT,
+  pattern GL_R,
+  pattern GL_R11F_G11F_B10F,
+  pattern GL_R16,
+  pattern GL_R16F,
+  pattern GL_R16I,
+  pattern GL_R16UI,
+  pattern GL_R16_SNORM,
+  pattern GL_R32F,
+  pattern GL_R32I,
+  pattern GL_R32UI,
+  pattern GL_R3_G3_B2,
+  pattern GL_R8,
+  pattern GL_R8I,
+  pattern GL_R8UI,
+  pattern GL_R8_SNORM,
+  pattern GL_RASTERIZER_DISCARD,
+  pattern GL_READ_BUFFER,
+  pattern GL_READ_FRAMEBUFFER,
+  pattern GL_READ_FRAMEBUFFER_BINDING,
+  pattern GL_READ_ONLY,
+  pattern GL_READ_WRITE,
+  pattern GL_RED,
+  pattern GL_RED_BIAS,
+  pattern GL_RED_BITS,
+  pattern GL_RED_INTEGER,
+  pattern GL_RED_SCALE,
+  pattern GL_REFLECTION_MAP,
+  pattern GL_RENDER,
+  pattern GL_RENDERBUFFER,
+  pattern GL_RENDERBUFFER_ALPHA_SIZE,
+  pattern GL_RENDERBUFFER_BINDING,
+  pattern GL_RENDERBUFFER_BLUE_SIZE,
+  pattern GL_RENDERBUFFER_DEPTH_SIZE,
+  pattern GL_RENDERBUFFER_GREEN_SIZE,
+  pattern GL_RENDERBUFFER_HEIGHT,
+  pattern GL_RENDERBUFFER_INTERNAL_FORMAT,
+  pattern GL_RENDERBUFFER_RED_SIZE,
+  pattern GL_RENDERBUFFER_SAMPLES,
+  pattern GL_RENDERBUFFER_STENCIL_SIZE,
+  pattern GL_RENDERBUFFER_WIDTH,
+  pattern GL_RENDERER,
+  pattern GL_RENDER_MODE,
+  pattern GL_REPEAT,
+  pattern GL_REPLACE,
+  pattern GL_RESCALE_NORMAL,
+  pattern GL_RETURN,
+  pattern GL_RG,
+  pattern GL_RG16,
+  pattern GL_RG16F,
+  pattern GL_RG16I,
+  pattern GL_RG16UI,
+  pattern GL_RG16_SNORM,
+  pattern GL_RG32F,
+  pattern GL_RG32I,
+  pattern GL_RG32UI,
+  pattern GL_RG8,
+  pattern GL_RG8I,
+  pattern GL_RG8UI,
+  pattern GL_RG8_SNORM,
+  pattern GL_RGB,
+  pattern GL_RGB10,
+  pattern GL_RGB10_A2,
+  pattern GL_RGB12,
+  pattern GL_RGB16,
+  pattern GL_RGB16F,
+  pattern GL_RGB16I,
+  pattern GL_RGB16UI,
+  pattern GL_RGB16_SNORM,
+  pattern GL_RGB32F,
+  pattern GL_RGB32I,
+  pattern GL_RGB32UI,
+  pattern GL_RGB4,
+  pattern GL_RGB5,
+  pattern GL_RGB5_A1,
+  pattern GL_RGB8,
+  pattern GL_RGB8I,
+  pattern GL_RGB8UI,
+  pattern GL_RGB8_SNORM,
+  pattern GL_RGB9_E5,
+  pattern GL_RGBA,
+  pattern GL_RGBA12,
+  pattern GL_RGBA16,
+  pattern GL_RGBA16F,
+  pattern GL_RGBA16I,
+  pattern GL_RGBA16UI,
+  pattern GL_RGBA16_SNORM,
+  pattern GL_RGBA2,
+  pattern GL_RGBA32F,
+  pattern GL_RGBA32I,
+  pattern GL_RGBA32UI,
+  pattern GL_RGBA4,
+  pattern GL_RGBA8,
+  pattern GL_RGBA8I,
+  pattern GL_RGBA8UI,
+  pattern GL_RGBA8_SNORM,
+  pattern GL_RGBA_INTEGER,
+  pattern GL_RGBA_MODE,
+  pattern GL_RGB_INTEGER,
+  pattern GL_RGB_SCALE,
+  pattern GL_RG_INTEGER,
+  pattern GL_RIGHT,
+  pattern GL_S,
+  pattern GL_SAMPLER_1D,
+  pattern GL_SAMPLER_1D_ARRAY,
+  pattern GL_SAMPLER_1D_ARRAY_SHADOW,
+  pattern GL_SAMPLER_1D_SHADOW,
+  pattern GL_SAMPLER_2D,
+  pattern GL_SAMPLER_2D_ARRAY,
+  pattern GL_SAMPLER_2D_ARRAY_SHADOW,
+  pattern GL_SAMPLER_2D_RECT,
+  pattern GL_SAMPLER_2D_RECT_SHADOW,
+  pattern GL_SAMPLER_2D_SHADOW,
+  pattern GL_SAMPLER_3D,
+  pattern GL_SAMPLER_BUFFER,
+  pattern GL_SAMPLER_CUBE,
+  pattern GL_SAMPLER_CUBE_SHADOW,
+  pattern GL_SAMPLES,
+  pattern GL_SAMPLES_PASSED,
+  pattern GL_SAMPLE_ALPHA_TO_COVERAGE,
+  pattern GL_SAMPLE_ALPHA_TO_ONE,
+  pattern GL_SAMPLE_BUFFERS,
+  pattern GL_SAMPLE_COVERAGE,
+  pattern GL_SAMPLE_COVERAGE_INVERT,
+  pattern GL_SAMPLE_COVERAGE_VALUE,
+  pattern GL_SCISSOR_BIT,
+  pattern GL_SCISSOR_BOX,
+  pattern GL_SCISSOR_TEST,
+  pattern GL_SECONDARY_COLOR_ARRAY,
+  pattern GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING,
+  pattern GL_SECONDARY_COLOR_ARRAY_POINTER,
+  pattern GL_SECONDARY_COLOR_ARRAY_SIZE,
+  pattern GL_SECONDARY_COLOR_ARRAY_STRIDE,
+  pattern GL_SECONDARY_COLOR_ARRAY_TYPE,
+  pattern GL_SELECT,
+  pattern GL_SELECTION_BUFFER_POINTER,
+  pattern GL_SELECTION_BUFFER_SIZE,
+  pattern GL_SEPARATE_ATTRIBS,
+  pattern GL_SEPARATE_SPECULAR_COLOR,
+  pattern GL_SET,
+  pattern GL_SHADER_SOURCE_LENGTH,
+  pattern GL_SHADER_TYPE,
+  pattern GL_SHADE_MODEL,
+  pattern GL_SHADING_LANGUAGE_VERSION,
+  pattern GL_SHININESS,
+  pattern GL_SHORT,
+  pattern GL_SIGNED_NORMALIZED,
+  pattern GL_SINGLE_COLOR,
+  pattern GL_SLUMINANCE,
+  pattern GL_SLUMINANCE8,
+  pattern GL_SLUMINANCE8_ALPHA8,
+  pattern GL_SLUMINANCE_ALPHA,
+  pattern GL_SMOOTH,
+  pattern GL_SMOOTH_LINE_WIDTH_GRANULARITY,
+  pattern GL_SMOOTH_LINE_WIDTH_RANGE,
+  pattern GL_SMOOTH_POINT_SIZE_GRANULARITY,
+  pattern GL_SMOOTH_POINT_SIZE_RANGE,
+  pattern GL_SOURCE0_ALPHA,
+  pattern GL_SOURCE0_RGB,
+  pattern GL_SOURCE1_ALPHA,
+  pattern GL_SOURCE1_RGB,
+  pattern GL_SOURCE2_ALPHA,
+  pattern GL_SOURCE2_RGB,
+  pattern GL_SPECULAR,
+  pattern GL_SPHERE_MAP,
+  pattern GL_SPOT_CUTOFF,
+  pattern GL_SPOT_DIRECTION,
+  pattern GL_SPOT_EXPONENT,
+  pattern GL_SRC0_ALPHA,
+  pattern GL_SRC0_RGB,
+  pattern GL_SRC1_ALPHA,
+  pattern GL_SRC1_RGB,
+  pattern GL_SRC2_ALPHA,
+  pattern GL_SRC2_RGB,
+  pattern GL_SRC_ALPHA,
+  pattern GL_SRC_ALPHA_SATURATE,
+  pattern GL_SRC_COLOR,
+  pattern GL_SRGB,
+  pattern GL_SRGB8,
+  pattern GL_SRGB8_ALPHA8,
+  pattern GL_SRGB_ALPHA,
+  pattern GL_STACK_OVERFLOW,
+  pattern GL_STACK_UNDERFLOW,
+  pattern GL_STATIC_COPY,
+  pattern GL_STATIC_DRAW,
+  pattern GL_STATIC_READ,
+  pattern GL_STENCIL,
+  pattern GL_STENCIL_ATTACHMENT,
+  pattern GL_STENCIL_BACK_FAIL,
+  pattern GL_STENCIL_BACK_FUNC,
+  pattern GL_STENCIL_BACK_PASS_DEPTH_FAIL,
+  pattern GL_STENCIL_BACK_PASS_DEPTH_PASS,
+  pattern GL_STENCIL_BACK_REF,
+  pattern GL_STENCIL_BACK_VALUE_MASK,
+  pattern GL_STENCIL_BACK_WRITEMASK,
+  pattern GL_STENCIL_BITS,
+  pattern GL_STENCIL_BUFFER_BIT,
+  pattern GL_STENCIL_CLEAR_VALUE,
+  pattern GL_STENCIL_FAIL,
+  pattern GL_STENCIL_FUNC,
+  pattern GL_STENCIL_INDEX,
+  pattern GL_STENCIL_INDEX1,
+  pattern GL_STENCIL_INDEX16,
+  pattern GL_STENCIL_INDEX4,
+  pattern GL_STENCIL_INDEX8,
+  pattern GL_STENCIL_PASS_DEPTH_FAIL,
+  pattern GL_STENCIL_PASS_DEPTH_PASS,
+  pattern GL_STENCIL_REF,
+  pattern GL_STENCIL_TEST,
+  pattern GL_STENCIL_VALUE_MASK,
+  pattern GL_STENCIL_WRITEMASK,
+  pattern GL_STEREO,
+  pattern GL_STREAM_COPY,
+  pattern GL_STREAM_DRAW,
+  pattern GL_STREAM_READ,
+  pattern GL_SUBPIXEL_BITS,
+  pattern GL_SUBTRACT,
+  pattern GL_T,
+  pattern GL_T2F_C3F_V3F,
+  pattern GL_T2F_C4F_N3F_V3F,
+  pattern GL_T2F_C4UB_V3F,
+  pattern GL_T2F_N3F_V3F,
+  pattern GL_T2F_V3F,
+  pattern GL_T4F_C4F_N3F_V4F,
+  pattern GL_T4F_V4F,
+  pattern GL_TEXTURE,
+  pattern GL_TEXTURE0,
+  pattern GL_TEXTURE1,
+  pattern GL_TEXTURE10,
+  pattern GL_TEXTURE11,
+  pattern GL_TEXTURE12,
+  pattern GL_TEXTURE13,
+  pattern GL_TEXTURE14,
+  pattern GL_TEXTURE15,
+  pattern GL_TEXTURE16,
+  pattern GL_TEXTURE17,
+  pattern GL_TEXTURE18,
+  pattern GL_TEXTURE19,
+  pattern GL_TEXTURE2,
+  pattern GL_TEXTURE20,
+  pattern GL_TEXTURE21,
+  pattern GL_TEXTURE22,
+  pattern GL_TEXTURE23,
+  pattern GL_TEXTURE24,
+  pattern GL_TEXTURE25,
+  pattern GL_TEXTURE26,
+  pattern GL_TEXTURE27,
+  pattern GL_TEXTURE28,
+  pattern GL_TEXTURE29,
+  pattern GL_TEXTURE3,
+  pattern GL_TEXTURE30,
+  pattern GL_TEXTURE31,
+  pattern GL_TEXTURE4,
+  pattern GL_TEXTURE5,
+  pattern GL_TEXTURE6,
+  pattern GL_TEXTURE7,
+  pattern GL_TEXTURE8,
+  pattern GL_TEXTURE9,
+  pattern GL_TEXTURE_1D,
+  pattern GL_TEXTURE_1D_ARRAY,
+  pattern GL_TEXTURE_2D,
+  pattern GL_TEXTURE_2D_ARRAY,
+  pattern GL_TEXTURE_3D,
+  pattern GL_TEXTURE_ALPHA_SIZE,
+  pattern GL_TEXTURE_ALPHA_TYPE,
+  pattern GL_TEXTURE_BASE_LEVEL,
+  pattern GL_TEXTURE_BINDING_1D,
+  pattern GL_TEXTURE_BINDING_1D_ARRAY,
+  pattern GL_TEXTURE_BINDING_2D,
+  pattern GL_TEXTURE_BINDING_2D_ARRAY,
+  pattern GL_TEXTURE_BINDING_3D,
+  pattern GL_TEXTURE_BINDING_BUFFER,
+  pattern GL_TEXTURE_BINDING_CUBE_MAP,
+  pattern GL_TEXTURE_BINDING_RECTANGLE,
+  pattern GL_TEXTURE_BIT,
+  pattern GL_TEXTURE_BLUE_SIZE,
+  pattern GL_TEXTURE_BLUE_TYPE,
+  pattern GL_TEXTURE_BORDER,
+  pattern GL_TEXTURE_BORDER_COLOR,
+  pattern GL_TEXTURE_BUFFER,
+  pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING,
+  pattern GL_TEXTURE_COMPARE_FUNC,
+  pattern GL_TEXTURE_COMPARE_MODE,
+  pattern GL_TEXTURE_COMPONENTS,
+  pattern GL_TEXTURE_COMPRESSED,
+  pattern GL_TEXTURE_COMPRESSED_IMAGE_SIZE,
+  pattern GL_TEXTURE_COMPRESSION_HINT,
+  pattern GL_TEXTURE_COORD_ARRAY,
+  pattern GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING,
+  pattern GL_TEXTURE_COORD_ARRAY_POINTER,
+  pattern GL_TEXTURE_COORD_ARRAY_SIZE,
+  pattern GL_TEXTURE_COORD_ARRAY_STRIDE,
+  pattern GL_TEXTURE_COORD_ARRAY_TYPE,
+  pattern GL_TEXTURE_CUBE_MAP,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z,
+  pattern GL_TEXTURE_DEPTH,
+  pattern GL_TEXTURE_DEPTH_SIZE,
+  pattern GL_TEXTURE_DEPTH_TYPE,
+  pattern GL_TEXTURE_ENV,
+  pattern GL_TEXTURE_ENV_COLOR,
+  pattern GL_TEXTURE_ENV_MODE,
+  pattern GL_TEXTURE_FILTER_CONTROL,
+  pattern GL_TEXTURE_GEN_MODE,
+  pattern GL_TEXTURE_GEN_Q,
+  pattern GL_TEXTURE_GEN_R,
+  pattern GL_TEXTURE_GEN_S,
+  pattern GL_TEXTURE_GEN_T,
+  pattern GL_TEXTURE_GREEN_SIZE,
+  pattern GL_TEXTURE_GREEN_TYPE,
+  pattern GL_TEXTURE_HEIGHT,
+  pattern GL_TEXTURE_INTENSITY_SIZE,
+  pattern GL_TEXTURE_INTENSITY_TYPE,
+  pattern GL_TEXTURE_INTERNAL_FORMAT,
+  pattern GL_TEXTURE_LOD_BIAS,
+  pattern GL_TEXTURE_LUMINANCE_SIZE,
+  pattern GL_TEXTURE_LUMINANCE_TYPE,
+  pattern GL_TEXTURE_MAG_FILTER,
+  pattern GL_TEXTURE_MATRIX,
+  pattern GL_TEXTURE_MAX_LEVEL,
+  pattern GL_TEXTURE_MAX_LOD,
+  pattern GL_TEXTURE_MIN_FILTER,
+  pattern GL_TEXTURE_MIN_LOD,
+  pattern GL_TEXTURE_PRIORITY,
+  pattern GL_TEXTURE_RECTANGLE,
+  pattern GL_TEXTURE_RED_SIZE,
+  pattern GL_TEXTURE_RED_TYPE,
+  pattern GL_TEXTURE_RESIDENT,
+  pattern GL_TEXTURE_SHARED_SIZE,
+  pattern GL_TEXTURE_STACK_DEPTH,
+  pattern GL_TEXTURE_STENCIL_SIZE,
+  pattern GL_TEXTURE_WIDTH,
+  pattern GL_TEXTURE_WRAP_R,
+  pattern GL_TEXTURE_WRAP_S,
+  pattern GL_TEXTURE_WRAP_T,
+  pattern GL_TRANSFORM_BIT,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_BINDING,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_MODE,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_SIZE,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_START,
+  pattern GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN,
+  pattern GL_TRANSFORM_FEEDBACK_VARYINGS,
+  pattern GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH,
+  pattern GL_TRANSPOSE_COLOR_MATRIX,
+  pattern GL_TRANSPOSE_MODELVIEW_MATRIX,
+  pattern GL_TRANSPOSE_PROJECTION_MATRIX,
+  pattern GL_TRANSPOSE_TEXTURE_MATRIX,
+  pattern GL_TRIANGLES,
+  pattern GL_TRIANGLE_FAN,
+  pattern GL_TRIANGLE_STRIP,
+  pattern GL_TRUE,
+  pattern GL_UNIFORM_ARRAY_STRIDE,
+  pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS,
+  pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES,
+  pattern GL_UNIFORM_BLOCK_BINDING,
+  pattern GL_UNIFORM_BLOCK_DATA_SIZE,
+  pattern GL_UNIFORM_BLOCK_INDEX,
+  pattern GL_UNIFORM_BLOCK_NAME_LENGTH,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER,
+  pattern GL_UNIFORM_BUFFER,
+  pattern GL_UNIFORM_BUFFER_BINDING,
+  pattern GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT,
+  pattern GL_UNIFORM_BUFFER_SIZE,
+  pattern GL_UNIFORM_BUFFER_START,
+  pattern GL_UNIFORM_IS_ROW_MAJOR,
+  pattern GL_UNIFORM_MATRIX_STRIDE,
+  pattern GL_UNIFORM_NAME_LENGTH,
+  pattern GL_UNIFORM_OFFSET,
+  pattern GL_UNIFORM_SIZE,
+  pattern GL_UNIFORM_TYPE,
+  pattern GL_UNPACK_ALIGNMENT,
+  pattern GL_UNPACK_IMAGE_HEIGHT,
+  pattern GL_UNPACK_LSB_FIRST,
+  pattern GL_UNPACK_ROW_LENGTH,
+  pattern GL_UNPACK_SKIP_IMAGES,
+  pattern GL_UNPACK_SKIP_PIXELS,
+  pattern GL_UNPACK_SKIP_ROWS,
+  pattern GL_UNPACK_SWAP_BYTES,
+  pattern GL_UNSIGNED_BYTE,
+  pattern GL_UNSIGNED_BYTE_2_3_3_REV,
+  pattern GL_UNSIGNED_BYTE_3_3_2,
+  pattern GL_UNSIGNED_INT,
+  pattern GL_UNSIGNED_INT_10F_11F_11F_REV,
+  pattern GL_UNSIGNED_INT_10_10_10_2,
+  pattern GL_UNSIGNED_INT_24_8,
+  pattern GL_UNSIGNED_INT_2_10_10_10_REV,
+  pattern GL_UNSIGNED_INT_5_9_9_9_REV,
+  pattern GL_UNSIGNED_INT_8_8_8_8,
+  pattern GL_UNSIGNED_INT_8_8_8_8_REV,
+  pattern GL_UNSIGNED_INT_SAMPLER_1D,
+  pattern GL_UNSIGNED_INT_SAMPLER_1D_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_RECT,
+  pattern GL_UNSIGNED_INT_SAMPLER_3D,
+  pattern GL_UNSIGNED_INT_SAMPLER_BUFFER,
+  pattern GL_UNSIGNED_INT_SAMPLER_CUBE,
+  pattern GL_UNSIGNED_INT_VEC2,
+  pattern GL_UNSIGNED_INT_VEC3,
+  pattern GL_UNSIGNED_INT_VEC4,
+  pattern GL_UNSIGNED_NORMALIZED,
+  pattern GL_UNSIGNED_SHORT,
+  pattern GL_UNSIGNED_SHORT_1_5_5_5_REV,
+  pattern GL_UNSIGNED_SHORT_4_4_4_4,
+  pattern GL_UNSIGNED_SHORT_4_4_4_4_REV,
+  pattern GL_UNSIGNED_SHORT_5_5_5_1,
+  pattern GL_UNSIGNED_SHORT_5_6_5,
+  pattern GL_UNSIGNED_SHORT_5_6_5_REV,
+  pattern GL_UPPER_LEFT,
+  pattern GL_V2F,
+  pattern GL_V3F,
+  pattern GL_VALIDATE_STATUS,
+  pattern GL_VENDOR,
+  pattern GL_VERSION,
+  pattern GL_VERTEX_ARRAY,
+  pattern GL_VERTEX_ARRAY_BINDING,
+  pattern GL_VERTEX_ARRAY_BUFFER_BINDING,
+  pattern GL_VERTEX_ARRAY_POINTER,
+  pattern GL_VERTEX_ARRAY_SIZE,
+  pattern GL_VERTEX_ARRAY_STRIDE,
+  pattern GL_VERTEX_ARRAY_TYPE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING,
+  pattern GL_VERTEX_ATTRIB_ARRAY_ENABLED,
+  pattern GL_VERTEX_ATTRIB_ARRAY_INTEGER,
+  pattern GL_VERTEX_ATTRIB_ARRAY_NORMALIZED,
+  pattern GL_VERTEX_ATTRIB_ARRAY_POINTER,
+  pattern GL_VERTEX_ATTRIB_ARRAY_SIZE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_STRIDE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_TYPE,
+  pattern GL_VERTEX_PROGRAM_POINT_SIZE,
+  pattern GL_VERTEX_PROGRAM_TWO_SIDE,
+  pattern GL_VERTEX_SHADER,
+  pattern GL_VIEWPORT,
+  pattern GL_VIEWPORT_BIT,
+  pattern GL_WEIGHT_ARRAY_BUFFER_BINDING,
+  pattern GL_WRITE_ONLY,
+  pattern GL_XOR,
+  pattern GL_ZERO,
+  pattern GL_ZOOM_X,
+  pattern GL_ZOOM_Y,
+  -- * Functions
+  glAccum,
+  glActiveTexture,
+  glAlphaFunc,
+  glAreTexturesResident,
+  glArrayElement,
+  glAttachShader,
+  glBegin,
+  glBeginConditionalRender,
+  glBeginQuery,
+  glBeginTransformFeedback,
+  glBindAttribLocation,
+  glBindBuffer,
+  glBindBufferBase,
+  glBindBufferRange,
+  glBindFragDataLocation,
+  glBindFramebuffer,
+  glBindRenderbuffer,
+  glBindTexture,
+  glBindVertexArray,
+  glBitmap,
+  glBlendColor,
+  glBlendEquation,
+  glBlendEquationSeparate,
+  glBlendFunc,
+  glBlendFuncSeparate,
+  glBlitFramebuffer,
+  glBufferData,
+  glBufferSubData,
+  glCallList,
+  glCallLists,
+  glCheckFramebufferStatus,
+  glClampColor,
+  glClear,
+  glClearAccum,
+  glClearBufferfi,
+  glClearBufferfv,
+  glClearBufferiv,
+  glClearBufferuiv,
+  glClearColor,
+  glClearDepth,
+  glClearIndex,
+  glClearStencil,
+  glClientActiveTexture,
+  glClipPlane,
+  glColor3b,
+  glColor3bv,
+  glColor3d,
+  glColor3dv,
+  glColor3f,
+  glColor3fv,
+  glColor3i,
+  glColor3iv,
+  glColor3s,
+  glColor3sv,
+  glColor3ub,
+  glColor3ubv,
+  glColor3ui,
+  glColor3uiv,
+  glColor3us,
+  glColor3usv,
+  glColor4b,
+  glColor4bv,
+  glColor4d,
+  glColor4dv,
+  glColor4f,
+  glColor4fv,
+  glColor4i,
+  glColor4iv,
+  glColor4s,
+  glColor4sv,
+  glColor4ub,
+  glColor4ubv,
+  glColor4ui,
+  glColor4uiv,
+  glColor4us,
+  glColor4usv,
+  glColorMask,
+  glColorMaski,
+  glColorMaterial,
+  glColorPointer,
+  glCompileShader,
+  glCompressedTexImage1D,
+  glCompressedTexImage2D,
+  glCompressedTexImage3D,
+  glCompressedTexSubImage1D,
+  glCompressedTexSubImage2D,
+  glCompressedTexSubImage3D,
+  glCopyBufferSubData,
+  glCopyPixels,
+  glCopyTexImage1D,
+  glCopyTexImage2D,
+  glCopyTexSubImage1D,
+  glCopyTexSubImage2D,
+  glCopyTexSubImage3D,
+  glCreateProgram,
+  glCreateShader,
+  glCullFace,
+  glDeleteBuffers,
+  glDeleteFramebuffers,
+  glDeleteLists,
+  glDeleteProgram,
+  glDeleteQueries,
+  glDeleteRenderbuffers,
+  glDeleteShader,
+  glDeleteTextures,
+  glDeleteVertexArrays,
+  glDepthFunc,
+  glDepthMask,
+  glDepthRange,
+  glDetachShader,
+  glDisable,
+  glDisableClientState,
+  glDisableVertexAttribArray,
+  glDisablei,
+  glDrawArrays,
+  glDrawArraysInstanced,
+  glDrawBuffer,
+  glDrawBuffers,
+  glDrawElements,
+  glDrawElementsInstanced,
+  glDrawPixels,
+  glDrawRangeElements,
+  glEdgeFlag,
+  glEdgeFlagPointer,
+  glEdgeFlagv,
+  glEnable,
+  glEnableClientState,
+  glEnableVertexAttribArray,
+  glEnablei,
+  glEnd,
+  glEndConditionalRender,
+  glEndList,
+  glEndQuery,
+  glEndTransformFeedback,
+  glEvalCoord1d,
+  glEvalCoord1dv,
+  glEvalCoord1f,
+  glEvalCoord1fv,
+  glEvalCoord2d,
+  glEvalCoord2dv,
+  glEvalCoord2f,
+  glEvalCoord2fv,
+  glEvalMesh1,
+  glEvalMesh2,
+  glEvalPoint1,
+  glEvalPoint2,
+  glFeedbackBuffer,
+  glFinish,
+  glFlush,
+  glFlushMappedBufferRange,
+  glFogCoordPointer,
+  glFogCoordd,
+  glFogCoorddv,
+  glFogCoordf,
+  glFogCoordfv,
+  glFogf,
+  glFogfv,
+  glFogi,
+  glFogiv,
+  glFramebufferRenderbuffer,
+  glFramebufferTexture1D,
+  glFramebufferTexture2D,
+  glFramebufferTexture3D,
+  glFramebufferTextureLayer,
+  glFrontFace,
+  glFrustum,
+  glGenBuffers,
+  glGenFramebuffers,
+  glGenLists,
+  glGenQueries,
+  glGenRenderbuffers,
+  glGenTextures,
+  glGenVertexArrays,
+  glGenerateMipmap,
+  glGetActiveAttrib,
+  glGetActiveUniform,
+  glGetActiveUniformBlockName,
+  glGetActiveUniformBlockiv,
+  glGetActiveUniformName,
+  glGetActiveUniformsiv,
+  glGetAttachedShaders,
+  glGetAttribLocation,
+  glGetBooleani_v,
+  glGetBooleanv,
+  glGetBufferParameteriv,
+  glGetBufferPointerv,
+  glGetBufferSubData,
+  glGetClipPlane,
+  glGetCompressedTexImage,
+  glGetDoublev,
+  glGetError,
+  glGetFloatv,
+  glGetFragDataLocation,
+  glGetFramebufferAttachmentParameteriv,
+  glGetIntegeri_v,
+  glGetIntegerv,
+  glGetLightfv,
+  glGetLightiv,
+  glGetMapdv,
+  glGetMapfv,
+  glGetMapiv,
+  glGetMaterialfv,
+  glGetMaterialiv,
+  glGetPixelMapfv,
+  glGetPixelMapuiv,
+  glGetPixelMapusv,
+  glGetPointerv,
+  glGetPolygonStipple,
+  glGetProgramInfoLog,
+  glGetProgramiv,
+  glGetQueryObjectiv,
+  glGetQueryObjectuiv,
+  glGetQueryiv,
+  glGetRenderbufferParameteriv,
+  glGetShaderInfoLog,
+  glGetShaderSource,
+  glGetShaderiv,
+  glGetString,
+  glGetStringi,
+  glGetTexEnvfv,
+  glGetTexEnviv,
+  glGetTexGendv,
+  glGetTexGenfv,
+  glGetTexGeniv,
+  glGetTexImage,
+  glGetTexLevelParameterfv,
+  glGetTexLevelParameteriv,
+  glGetTexParameterIiv,
+  glGetTexParameterIuiv,
+  glGetTexParameterfv,
+  glGetTexParameteriv,
+  glGetTransformFeedbackVarying,
+  glGetUniformBlockIndex,
+  glGetUniformIndices,
+  glGetUniformLocation,
+  glGetUniformfv,
+  glGetUniformiv,
+  glGetUniformuiv,
+  glGetVertexAttribIiv,
+  glGetVertexAttribIuiv,
+  glGetVertexAttribPointerv,
+  glGetVertexAttribdv,
+  glGetVertexAttribfv,
+  glGetVertexAttribiv,
+  glHint,
+  glIndexMask,
+  glIndexPointer,
+  glIndexd,
+  glIndexdv,
+  glIndexf,
+  glIndexfv,
+  glIndexi,
+  glIndexiv,
+  glIndexs,
+  glIndexsv,
+  glIndexub,
+  glIndexubv,
+  glInitNames,
+  glInterleavedArrays,
+  glIsBuffer,
+  glIsEnabled,
+  glIsEnabledi,
+  glIsFramebuffer,
+  glIsList,
+  glIsProgram,
+  glIsQuery,
+  glIsRenderbuffer,
+  glIsShader,
+  glIsTexture,
+  glIsVertexArray,
+  glLightModelf,
+  glLightModelfv,
+  glLightModeli,
+  glLightModeliv,
+  glLightf,
+  glLightfv,
+  glLighti,
+  glLightiv,
+  glLineStipple,
+  glLineWidth,
+  glLinkProgram,
+  glListBase,
+  glLoadIdentity,
+  glLoadMatrixd,
+  glLoadMatrixf,
+  glLoadName,
+  glLoadTransposeMatrixd,
+  glLoadTransposeMatrixf,
+  glLogicOp,
+  glMap1d,
+  glMap1f,
+  glMap2d,
+  glMap2f,
+  glMapBuffer,
+  glMapBufferRange,
+  glMapGrid1d,
+  glMapGrid1f,
+  glMapGrid2d,
+  glMapGrid2f,
+  glMaterialf,
+  glMaterialfv,
+  glMateriali,
+  glMaterialiv,
+  glMatrixMode,
+  glMultMatrixd,
+  glMultMatrixf,
+  glMultTransposeMatrixd,
+  glMultTransposeMatrixf,
+  glMultiDrawArrays,
+  glMultiDrawElements,
+  glMultiTexCoord1d,
+  glMultiTexCoord1dv,
+  glMultiTexCoord1f,
+  glMultiTexCoord1fv,
+  glMultiTexCoord1i,
+  glMultiTexCoord1iv,
+  glMultiTexCoord1s,
+  glMultiTexCoord1sv,
+  glMultiTexCoord2d,
+  glMultiTexCoord2dv,
+  glMultiTexCoord2f,
+  glMultiTexCoord2fv,
+  glMultiTexCoord2i,
+  glMultiTexCoord2iv,
+  glMultiTexCoord2s,
+  glMultiTexCoord2sv,
+  glMultiTexCoord3d,
+  glMultiTexCoord3dv,
+  glMultiTexCoord3f,
+  glMultiTexCoord3fv,
+  glMultiTexCoord3i,
+  glMultiTexCoord3iv,
+  glMultiTexCoord3s,
+  glMultiTexCoord3sv,
+  glMultiTexCoord4d,
+  glMultiTexCoord4dv,
+  glMultiTexCoord4f,
+  glMultiTexCoord4fv,
+  glMultiTexCoord4i,
+  glMultiTexCoord4iv,
+  glMultiTexCoord4s,
+  glMultiTexCoord4sv,
+  glNewList,
+  glNormal3b,
+  glNormal3bv,
+  glNormal3d,
+  glNormal3dv,
+  glNormal3f,
+  glNormal3fv,
+  glNormal3i,
+  glNormal3iv,
+  glNormal3s,
+  glNormal3sv,
+  glNormalPointer,
+  glOrtho,
+  glPassThrough,
+  glPixelMapfv,
+  glPixelMapuiv,
+  glPixelMapusv,
+  glPixelStoref,
+  glPixelStorei,
+  glPixelTransferf,
+  glPixelTransferi,
+  glPixelZoom,
+  glPointParameterf,
+  glPointParameterfv,
+  glPointParameteri,
+  glPointParameteriv,
+  glPointSize,
+  glPolygonMode,
+  glPolygonOffset,
+  glPolygonStipple,
+  glPopAttrib,
+  glPopClientAttrib,
+  glPopMatrix,
+  glPopName,
+  glPrimitiveRestartIndex,
+  glPrioritizeTextures,
+  glPushAttrib,
+  glPushClientAttrib,
+  glPushMatrix,
+  glPushName,
+  glRasterPos2d,
+  glRasterPos2dv,
+  glRasterPos2f,
+  glRasterPos2fv,
+  glRasterPos2i,
+  glRasterPos2iv,
+  glRasterPos2s,
+  glRasterPos2sv,
+  glRasterPos3d,
+  glRasterPos3dv,
+  glRasterPos3f,
+  glRasterPos3fv,
+  glRasterPos3i,
+  glRasterPos3iv,
+  glRasterPos3s,
+  glRasterPos3sv,
+  glRasterPos4d,
+  glRasterPos4dv,
+  glRasterPos4f,
+  glRasterPos4fv,
+  glRasterPos4i,
+  glRasterPos4iv,
+  glRasterPos4s,
+  glRasterPos4sv,
+  glReadBuffer,
+  glReadPixels,
+  glRectd,
+  glRectdv,
+  glRectf,
+  glRectfv,
+  glRecti,
+  glRectiv,
+  glRects,
+  glRectsv,
+  glRenderMode,
+  glRenderbufferStorage,
+  glRenderbufferStorageMultisample,
+  glRotated,
+  glRotatef,
+  glSampleCoverage,
+  glScaled,
+  glScalef,
+  glScissor,
+  glSecondaryColor3b,
+  glSecondaryColor3bv,
+  glSecondaryColor3d,
+  glSecondaryColor3dv,
+  glSecondaryColor3f,
+  glSecondaryColor3fv,
+  glSecondaryColor3i,
+  glSecondaryColor3iv,
+  glSecondaryColor3s,
+  glSecondaryColor3sv,
+  glSecondaryColor3ub,
+  glSecondaryColor3ubv,
+  glSecondaryColor3ui,
+  glSecondaryColor3uiv,
+  glSecondaryColor3us,
+  glSecondaryColor3usv,
+  glSecondaryColorPointer,
+  glSelectBuffer,
+  glShadeModel,
+  glShaderSource,
+  glStencilFunc,
+  glStencilFuncSeparate,
+  glStencilMask,
+  glStencilMaskSeparate,
+  glStencilOp,
+  glStencilOpSeparate,
+  glTexBuffer,
+  glTexCoord1d,
+  glTexCoord1dv,
+  glTexCoord1f,
+  glTexCoord1fv,
+  glTexCoord1i,
+  glTexCoord1iv,
+  glTexCoord1s,
+  glTexCoord1sv,
+  glTexCoord2d,
+  glTexCoord2dv,
+  glTexCoord2f,
+  glTexCoord2fv,
+  glTexCoord2i,
+  glTexCoord2iv,
+  glTexCoord2s,
+  glTexCoord2sv,
+  glTexCoord3d,
+  glTexCoord3dv,
+  glTexCoord3f,
+  glTexCoord3fv,
+  glTexCoord3i,
+  glTexCoord3iv,
+  glTexCoord3s,
+  glTexCoord3sv,
+  glTexCoord4d,
+  glTexCoord4dv,
+  glTexCoord4f,
+  glTexCoord4fv,
+  glTexCoord4i,
+  glTexCoord4iv,
+  glTexCoord4s,
+  glTexCoord4sv,
+  glTexCoordPointer,
+  glTexEnvf,
+  glTexEnvfv,
+  glTexEnvi,
+  glTexEnviv,
+  glTexGend,
+  glTexGendv,
+  glTexGenf,
+  glTexGenfv,
+  glTexGeni,
+  glTexGeniv,
+  glTexImage1D,
+  glTexImage2D,
+  glTexImage3D,
+  glTexParameterIiv,
+  glTexParameterIuiv,
+  glTexParameterf,
+  glTexParameterfv,
+  glTexParameteri,
+  glTexParameteriv,
+  glTexSubImage1D,
+  glTexSubImage2D,
+  glTexSubImage3D,
+  glTransformFeedbackVaryings,
+  glTranslated,
+  glTranslatef,
+  glUniform1f,
+  glUniform1fv,
+  glUniform1i,
+  glUniform1iv,
+  glUniform1ui,
+  glUniform1uiv,
+  glUniform2f,
+  glUniform2fv,
+  glUniform2i,
+  glUniform2iv,
+  glUniform2ui,
+  glUniform2uiv,
+  glUniform3f,
+  glUniform3fv,
+  glUniform3i,
+  glUniform3iv,
+  glUniform3ui,
+  glUniform3uiv,
+  glUniform4f,
+  glUniform4fv,
+  glUniform4i,
+  glUniform4iv,
+  glUniform4ui,
+  glUniform4uiv,
+  glUniformBlockBinding,
+  glUniformMatrix2fv,
+  glUniformMatrix2x3fv,
+  glUniformMatrix2x4fv,
+  glUniformMatrix3fv,
+  glUniformMatrix3x2fv,
+  glUniformMatrix3x4fv,
+  glUniformMatrix4fv,
+  glUniformMatrix4x2fv,
+  glUniformMatrix4x3fv,
+  glUnmapBuffer,
+  glUseProgram,
+  glValidateProgram,
+  glVertex2d,
+  glVertex2dv,
+  glVertex2f,
+  glVertex2fv,
+  glVertex2i,
+  glVertex2iv,
+  glVertex2s,
+  glVertex2sv,
+  glVertex3d,
+  glVertex3dv,
+  glVertex3f,
+  glVertex3fv,
+  glVertex3i,
+  glVertex3iv,
+  glVertex3s,
+  glVertex3sv,
+  glVertex4d,
+  glVertex4dv,
+  glVertex4f,
+  glVertex4fv,
+  glVertex4i,
+  glVertex4iv,
+  glVertex4s,
+  glVertex4sv,
+  glVertexAttrib1d,
+  glVertexAttrib1dv,
+  glVertexAttrib1f,
+  glVertexAttrib1fv,
+  glVertexAttrib1s,
+  glVertexAttrib1sv,
+  glVertexAttrib2d,
+  glVertexAttrib2dv,
+  glVertexAttrib2f,
+  glVertexAttrib2fv,
+  glVertexAttrib2s,
+  glVertexAttrib2sv,
+  glVertexAttrib3d,
+  glVertexAttrib3dv,
+  glVertexAttrib3f,
+  glVertexAttrib3fv,
+  glVertexAttrib3s,
+  glVertexAttrib3sv,
+  glVertexAttrib4Nbv,
+  glVertexAttrib4Niv,
+  glVertexAttrib4Nsv,
+  glVertexAttrib4Nub,
+  glVertexAttrib4Nubv,
+  glVertexAttrib4Nuiv,
+  glVertexAttrib4Nusv,
+  glVertexAttrib4bv,
+  glVertexAttrib4d,
+  glVertexAttrib4dv,
+  glVertexAttrib4f,
+  glVertexAttrib4fv,
+  glVertexAttrib4iv,
+  glVertexAttrib4s,
+  glVertexAttrib4sv,
+  glVertexAttrib4ubv,
+  glVertexAttrib4uiv,
+  glVertexAttrib4usv,
+  glVertexAttribI1i,
+  glVertexAttribI1iv,
+  glVertexAttribI1ui,
+  glVertexAttribI1uiv,
+  glVertexAttribI2i,
+  glVertexAttribI2iv,
+  glVertexAttribI2ui,
+  glVertexAttribI2uiv,
+  glVertexAttribI3i,
+  glVertexAttribI3iv,
+  glVertexAttribI3ui,
+  glVertexAttribI3uiv,
+  glVertexAttribI4bv,
+  glVertexAttribI4i,
+  glVertexAttribI4iv,
+  glVertexAttribI4sv,
+  glVertexAttribI4ubv,
+  glVertexAttribI4ui,
+  glVertexAttribI4uiv,
+  glVertexAttribI4usv,
+  glVertexAttribIPointer,
+  glVertexAttribPointer,
+  glVertexPointer,
+  glViewport,
+  glWindowPos2d,
+  glWindowPos2dv,
+  glWindowPos2f,
+  glWindowPos2fv,
+  glWindowPos2i,
+  glWindowPos2iv,
+  glWindowPos2s,
+  glWindowPos2sv,
+  glWindowPos3d,
+  glWindowPos3dv,
+  glWindowPos3f,
+  glWindowPos3fv,
+  glWindowPos3i,
+  glWindowPos3iv,
+  glWindowPos3s,
+  glWindowPos3sv
+) where
+
+import Graphics.GL.Types
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/Compatibility32.hs b/src/Graphics/GL/Compatibility32.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Compatibility32.hs
@@ -0,0 +1,1944 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Compatibility32
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Compatibility32 (
+  -- * Types
+  GLbitfield,
+  GLboolean,
+  GLbyte,
+  GLchar,
+  GLclampd,
+  GLclampf,
+  GLdouble,
+  GLenum,
+  GLfloat,
+  GLhalf,
+  GLint,
+  GLint64,
+  GLintptr,
+  GLshort,
+  GLsizei,
+  GLsizeiptr,
+  GLsync,
+  GLubyte,
+  GLuint,
+  GLuint64,
+  GLushort,
+  GLvoid,
+  -- * Enums
+  pattern GL_2D,
+  pattern GL_2_BYTES,
+  pattern GL_3D,
+  pattern GL_3D_COLOR,
+  pattern GL_3D_COLOR_TEXTURE,
+  pattern GL_3_BYTES,
+  pattern GL_4D_COLOR_TEXTURE,
+  pattern GL_4_BYTES,
+  pattern GL_ACCUM,
+  pattern GL_ACCUM_ALPHA_BITS,
+  pattern GL_ACCUM_BLUE_BITS,
+  pattern GL_ACCUM_BUFFER_BIT,
+  pattern GL_ACCUM_CLEAR_VALUE,
+  pattern GL_ACCUM_GREEN_BITS,
+  pattern GL_ACCUM_RED_BITS,
+  pattern GL_ACTIVE_ATTRIBUTES,
+  pattern GL_ACTIVE_ATTRIBUTE_MAX_LENGTH,
+  pattern GL_ACTIVE_TEXTURE,
+  pattern GL_ACTIVE_UNIFORMS,
+  pattern GL_ACTIVE_UNIFORM_BLOCKS,
+  pattern GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH,
+  pattern GL_ACTIVE_UNIFORM_MAX_LENGTH,
+  pattern GL_ADD,
+  pattern GL_ADD_SIGNED,
+  pattern GL_ALIASED_LINE_WIDTH_RANGE,
+  pattern GL_ALIASED_POINT_SIZE_RANGE,
+  pattern GL_ALL_ATTRIB_BITS,
+  pattern GL_ALPHA,
+  pattern GL_ALPHA12,
+  pattern GL_ALPHA16,
+  pattern GL_ALPHA4,
+  pattern GL_ALPHA8,
+  pattern GL_ALPHA_BIAS,
+  pattern GL_ALPHA_BITS,
+  pattern GL_ALPHA_INTEGER,
+  pattern GL_ALPHA_SCALE,
+  pattern GL_ALPHA_TEST,
+  pattern GL_ALPHA_TEST_FUNC,
+  pattern GL_ALPHA_TEST_REF,
+  pattern GL_ALREADY_SIGNALED,
+  pattern GL_ALWAYS,
+  pattern GL_AMBIENT,
+  pattern GL_AMBIENT_AND_DIFFUSE,
+  pattern GL_AND,
+  pattern GL_AND_INVERTED,
+  pattern GL_AND_REVERSE,
+  pattern GL_ARRAY_BUFFER,
+  pattern GL_ARRAY_BUFFER_BINDING,
+  pattern GL_ATTACHED_SHADERS,
+  pattern GL_ATTRIB_STACK_DEPTH,
+  pattern GL_AUTO_NORMAL,
+  pattern GL_AUX0,
+  pattern GL_AUX1,
+  pattern GL_AUX2,
+  pattern GL_AUX3,
+  pattern GL_AUX_BUFFERS,
+  pattern GL_BACK,
+  pattern GL_BACK_LEFT,
+  pattern GL_BACK_RIGHT,
+  pattern GL_BGR,
+  pattern GL_BGRA,
+  pattern GL_BGRA_INTEGER,
+  pattern GL_BGR_INTEGER,
+  pattern GL_BITMAP,
+  pattern GL_BITMAP_TOKEN,
+  pattern GL_BLEND,
+  pattern GL_BLEND_COLOR,
+  pattern GL_BLEND_DST,
+  pattern GL_BLEND_DST_ALPHA,
+  pattern GL_BLEND_DST_RGB,
+  pattern GL_BLEND_EQUATION,
+  pattern GL_BLEND_EQUATION_ALPHA,
+  pattern GL_BLEND_EQUATION_RGB,
+  pattern GL_BLEND_SRC,
+  pattern GL_BLEND_SRC_ALPHA,
+  pattern GL_BLEND_SRC_RGB,
+  pattern GL_BLUE,
+  pattern GL_BLUE_BIAS,
+  pattern GL_BLUE_BITS,
+  pattern GL_BLUE_INTEGER,
+  pattern GL_BLUE_SCALE,
+  pattern GL_BOOL,
+  pattern GL_BOOL_VEC2,
+  pattern GL_BOOL_VEC3,
+  pattern GL_BOOL_VEC4,
+  pattern GL_BUFFER_ACCESS,
+  pattern GL_BUFFER_ACCESS_FLAGS,
+  pattern GL_BUFFER_MAPPED,
+  pattern GL_BUFFER_MAP_LENGTH,
+  pattern GL_BUFFER_MAP_OFFSET,
+  pattern GL_BUFFER_MAP_POINTER,
+  pattern GL_BUFFER_SIZE,
+  pattern GL_BUFFER_USAGE,
+  pattern GL_BYTE,
+  pattern GL_C3F_V3F,
+  pattern GL_C4F_N3F_V3F,
+  pattern GL_C4UB_V2F,
+  pattern GL_C4UB_V3F,
+  pattern GL_CCW,
+  pattern GL_CLAMP,
+  pattern GL_CLAMP_FRAGMENT_COLOR,
+  pattern GL_CLAMP_READ_COLOR,
+  pattern GL_CLAMP_TO_BORDER,
+  pattern GL_CLAMP_TO_EDGE,
+  pattern GL_CLAMP_VERTEX_COLOR,
+  pattern GL_CLEAR,
+  pattern GL_CLIENT_ACTIVE_TEXTURE,
+  pattern GL_CLIENT_ALL_ATTRIB_BITS,
+  pattern GL_CLIENT_ATTRIB_STACK_DEPTH,
+  pattern GL_CLIENT_PIXEL_STORE_BIT,
+  pattern GL_CLIENT_VERTEX_ARRAY_BIT,
+  pattern GL_CLIP_DISTANCE0,
+  pattern GL_CLIP_DISTANCE1,
+  pattern GL_CLIP_DISTANCE2,
+  pattern GL_CLIP_DISTANCE3,
+  pattern GL_CLIP_DISTANCE4,
+  pattern GL_CLIP_DISTANCE5,
+  pattern GL_CLIP_DISTANCE6,
+  pattern GL_CLIP_DISTANCE7,
+  pattern GL_CLIP_PLANE0,
+  pattern GL_CLIP_PLANE1,
+  pattern GL_CLIP_PLANE2,
+  pattern GL_CLIP_PLANE3,
+  pattern GL_CLIP_PLANE4,
+  pattern GL_CLIP_PLANE5,
+  pattern GL_COEFF,
+  pattern GL_COLOR,
+  pattern GL_COLOR_ARRAY,
+  pattern GL_COLOR_ARRAY_BUFFER_BINDING,
+  pattern GL_COLOR_ARRAY_POINTER,
+  pattern GL_COLOR_ARRAY_SIZE,
+  pattern GL_COLOR_ARRAY_STRIDE,
+  pattern GL_COLOR_ARRAY_TYPE,
+  pattern GL_COLOR_ATTACHMENT0,
+  pattern GL_COLOR_ATTACHMENT1,
+  pattern GL_COLOR_ATTACHMENT10,
+  pattern GL_COLOR_ATTACHMENT11,
+  pattern GL_COLOR_ATTACHMENT12,
+  pattern GL_COLOR_ATTACHMENT13,
+  pattern GL_COLOR_ATTACHMENT14,
+  pattern GL_COLOR_ATTACHMENT15,
+  pattern GL_COLOR_ATTACHMENT16,
+  pattern GL_COLOR_ATTACHMENT17,
+  pattern GL_COLOR_ATTACHMENT18,
+  pattern GL_COLOR_ATTACHMENT19,
+  pattern GL_COLOR_ATTACHMENT2,
+  pattern GL_COLOR_ATTACHMENT20,
+  pattern GL_COLOR_ATTACHMENT21,
+  pattern GL_COLOR_ATTACHMENT22,
+  pattern GL_COLOR_ATTACHMENT23,
+  pattern GL_COLOR_ATTACHMENT24,
+  pattern GL_COLOR_ATTACHMENT25,
+  pattern GL_COLOR_ATTACHMENT26,
+  pattern GL_COLOR_ATTACHMENT27,
+  pattern GL_COLOR_ATTACHMENT28,
+  pattern GL_COLOR_ATTACHMENT29,
+  pattern GL_COLOR_ATTACHMENT3,
+  pattern GL_COLOR_ATTACHMENT30,
+  pattern GL_COLOR_ATTACHMENT31,
+  pattern GL_COLOR_ATTACHMENT4,
+  pattern GL_COLOR_ATTACHMENT5,
+  pattern GL_COLOR_ATTACHMENT6,
+  pattern GL_COLOR_ATTACHMENT7,
+  pattern GL_COLOR_ATTACHMENT8,
+  pattern GL_COLOR_ATTACHMENT9,
+  pattern GL_COLOR_BUFFER_BIT,
+  pattern GL_COLOR_CLEAR_VALUE,
+  pattern GL_COLOR_INDEX,
+  pattern GL_COLOR_INDEXES,
+  pattern GL_COLOR_LOGIC_OP,
+  pattern GL_COLOR_MATERIAL,
+  pattern GL_COLOR_MATERIAL_FACE,
+  pattern GL_COLOR_MATERIAL_PARAMETER,
+  pattern GL_COLOR_SUM,
+  pattern GL_COLOR_WRITEMASK,
+  pattern GL_COMBINE,
+  pattern GL_COMBINE_ALPHA,
+  pattern GL_COMBINE_RGB,
+  pattern GL_COMPARE_REF_TO_TEXTURE,
+  pattern GL_COMPARE_R_TO_TEXTURE,
+  pattern GL_COMPILE,
+  pattern GL_COMPILE_AND_EXECUTE,
+  pattern GL_COMPILE_STATUS,
+  pattern GL_COMPRESSED_ALPHA,
+  pattern GL_COMPRESSED_INTENSITY,
+  pattern GL_COMPRESSED_LUMINANCE,
+  pattern GL_COMPRESSED_LUMINANCE_ALPHA,
+  pattern GL_COMPRESSED_RED,
+  pattern GL_COMPRESSED_RED_RGTC1,
+  pattern GL_COMPRESSED_RG,
+  pattern GL_COMPRESSED_RGB,
+  pattern GL_COMPRESSED_RGBA,
+  pattern GL_COMPRESSED_RG_RGTC2,
+  pattern GL_COMPRESSED_SIGNED_RED_RGTC1,
+  pattern GL_COMPRESSED_SIGNED_RG_RGTC2,
+  pattern GL_COMPRESSED_SLUMINANCE,
+  pattern GL_COMPRESSED_SLUMINANCE_ALPHA,
+  pattern GL_COMPRESSED_SRGB,
+  pattern GL_COMPRESSED_SRGB_ALPHA,
+  pattern GL_COMPRESSED_TEXTURE_FORMATS,
+  pattern GL_CONDITION_SATISFIED,
+  pattern GL_CONSTANT,
+  pattern GL_CONSTANT_ALPHA,
+  pattern GL_CONSTANT_ATTENUATION,
+  pattern GL_CONSTANT_COLOR,
+  pattern GL_CONTEXT_COMPATIBILITY_PROFILE_BIT,
+  pattern GL_CONTEXT_CORE_PROFILE_BIT,
+  pattern GL_CONTEXT_FLAGS,
+  pattern GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT,
+  pattern GL_CONTEXT_PROFILE_MASK,
+  pattern GL_COORD_REPLACE,
+  pattern GL_COPY,
+  pattern GL_COPY_INVERTED,
+  pattern GL_COPY_PIXEL_TOKEN,
+  pattern GL_COPY_READ_BUFFER,
+  pattern GL_COPY_WRITE_BUFFER,
+  pattern GL_CULL_FACE,
+  pattern GL_CULL_FACE_MODE,
+  pattern GL_CURRENT_BIT,
+  pattern GL_CURRENT_COLOR,
+  pattern GL_CURRENT_FOG_COORD,
+  pattern GL_CURRENT_FOG_COORDINATE,
+  pattern GL_CURRENT_INDEX,
+  pattern GL_CURRENT_NORMAL,
+  pattern GL_CURRENT_PROGRAM,
+  pattern GL_CURRENT_QUERY,
+  pattern GL_CURRENT_RASTER_COLOR,
+  pattern GL_CURRENT_RASTER_DISTANCE,
+  pattern GL_CURRENT_RASTER_INDEX,
+  pattern GL_CURRENT_RASTER_POSITION,
+  pattern GL_CURRENT_RASTER_POSITION_VALID,
+  pattern GL_CURRENT_RASTER_SECONDARY_COLOR,
+  pattern GL_CURRENT_RASTER_TEXTURE_COORDS,
+  pattern GL_CURRENT_SECONDARY_COLOR,
+  pattern GL_CURRENT_TEXTURE_COORDS,
+  pattern GL_CURRENT_VERTEX_ATTRIB,
+  pattern GL_CW,
+  pattern GL_DECAL,
+  pattern GL_DECR,
+  pattern GL_DECR_WRAP,
+  pattern GL_DELETE_STATUS,
+  pattern GL_DEPTH,
+  pattern GL_DEPTH24_STENCIL8,
+  pattern GL_DEPTH32F_STENCIL8,
+  pattern GL_DEPTH_ATTACHMENT,
+  pattern GL_DEPTH_BIAS,
+  pattern GL_DEPTH_BITS,
+  pattern GL_DEPTH_BUFFER_BIT,
+  pattern GL_DEPTH_CLAMP,
+  pattern GL_DEPTH_CLEAR_VALUE,
+  pattern GL_DEPTH_COMPONENT,
+  pattern GL_DEPTH_COMPONENT16,
+  pattern GL_DEPTH_COMPONENT24,
+  pattern GL_DEPTH_COMPONENT32,
+  pattern GL_DEPTH_COMPONENT32F,
+  pattern GL_DEPTH_FUNC,
+  pattern GL_DEPTH_RANGE,
+  pattern GL_DEPTH_SCALE,
+  pattern GL_DEPTH_STENCIL,
+  pattern GL_DEPTH_STENCIL_ATTACHMENT,
+  pattern GL_DEPTH_TEST,
+  pattern GL_DEPTH_TEXTURE_MODE,
+  pattern GL_DEPTH_WRITEMASK,
+  pattern GL_DIFFUSE,
+  pattern GL_DITHER,
+  pattern GL_DOMAIN,
+  pattern GL_DONT_CARE,
+  pattern GL_DOT3_RGB,
+  pattern GL_DOT3_RGBA,
+  pattern GL_DOUBLE,
+  pattern GL_DOUBLEBUFFER,
+  pattern GL_DRAW_BUFFER,
+  pattern GL_DRAW_BUFFER0,
+  pattern GL_DRAW_BUFFER1,
+  pattern GL_DRAW_BUFFER10,
+  pattern GL_DRAW_BUFFER11,
+  pattern GL_DRAW_BUFFER12,
+  pattern GL_DRAW_BUFFER13,
+  pattern GL_DRAW_BUFFER14,
+  pattern GL_DRAW_BUFFER15,
+  pattern GL_DRAW_BUFFER2,
+  pattern GL_DRAW_BUFFER3,
+  pattern GL_DRAW_BUFFER4,
+  pattern GL_DRAW_BUFFER5,
+  pattern GL_DRAW_BUFFER6,
+  pattern GL_DRAW_BUFFER7,
+  pattern GL_DRAW_BUFFER8,
+  pattern GL_DRAW_BUFFER9,
+  pattern GL_DRAW_FRAMEBUFFER,
+  pattern GL_DRAW_FRAMEBUFFER_BINDING,
+  pattern GL_DRAW_PIXEL_TOKEN,
+  pattern GL_DST_ALPHA,
+  pattern GL_DST_COLOR,
+  pattern GL_DYNAMIC_COPY,
+  pattern GL_DYNAMIC_DRAW,
+  pattern GL_DYNAMIC_READ,
+  pattern GL_EDGE_FLAG,
+  pattern GL_EDGE_FLAG_ARRAY,
+  pattern GL_EDGE_FLAG_ARRAY_BUFFER_BINDING,
+  pattern GL_EDGE_FLAG_ARRAY_POINTER,
+  pattern GL_EDGE_FLAG_ARRAY_STRIDE,
+  pattern GL_ELEMENT_ARRAY_BUFFER,
+  pattern GL_ELEMENT_ARRAY_BUFFER_BINDING,
+  pattern GL_EMISSION,
+  pattern GL_ENABLE_BIT,
+  pattern GL_EQUAL,
+  pattern GL_EQUIV,
+  pattern GL_EVAL_BIT,
+  pattern GL_EXP,
+  pattern GL_EXP2,
+  pattern GL_EXTENSIONS,
+  pattern GL_EYE_LINEAR,
+  pattern GL_EYE_PLANE,
+  pattern GL_FALSE,
+  pattern GL_FASTEST,
+  pattern GL_FEEDBACK,
+  pattern GL_FEEDBACK_BUFFER_POINTER,
+  pattern GL_FEEDBACK_BUFFER_SIZE,
+  pattern GL_FEEDBACK_BUFFER_TYPE,
+  pattern GL_FILL,
+  pattern GL_FIRST_VERTEX_CONVENTION,
+  pattern GL_FIXED_ONLY,
+  pattern GL_FLAT,
+  pattern GL_FLOAT,
+  pattern GL_FLOAT_32_UNSIGNED_INT_24_8_REV,
+  pattern GL_FLOAT_MAT2,
+  pattern GL_FLOAT_MAT2x3,
+  pattern GL_FLOAT_MAT2x4,
+  pattern GL_FLOAT_MAT3,
+  pattern GL_FLOAT_MAT3x2,
+  pattern GL_FLOAT_MAT3x4,
+  pattern GL_FLOAT_MAT4,
+  pattern GL_FLOAT_MAT4x2,
+  pattern GL_FLOAT_MAT4x3,
+  pattern GL_FLOAT_VEC2,
+  pattern GL_FLOAT_VEC3,
+  pattern GL_FLOAT_VEC4,
+  pattern GL_FOG,
+  pattern GL_FOG_BIT,
+  pattern GL_FOG_COLOR,
+  pattern GL_FOG_COORD,
+  pattern GL_FOG_COORDINATE,
+  pattern GL_FOG_COORDINATE_ARRAY,
+  pattern GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING,
+  pattern GL_FOG_COORDINATE_ARRAY_POINTER,
+  pattern GL_FOG_COORDINATE_ARRAY_STRIDE,
+  pattern GL_FOG_COORDINATE_ARRAY_TYPE,
+  pattern GL_FOG_COORDINATE_SOURCE,
+  pattern GL_FOG_COORD_ARRAY,
+  pattern GL_FOG_COORD_ARRAY_BUFFER_BINDING,
+  pattern GL_FOG_COORD_ARRAY_POINTER,
+  pattern GL_FOG_COORD_ARRAY_STRIDE,
+  pattern GL_FOG_COORD_ARRAY_TYPE,
+  pattern GL_FOG_COORD_SRC,
+  pattern GL_FOG_DENSITY,
+  pattern GL_FOG_END,
+  pattern GL_FOG_HINT,
+  pattern GL_FOG_INDEX,
+  pattern GL_FOG_MODE,
+  pattern GL_FOG_START,
+  pattern GL_FRAGMENT_DEPTH,
+  pattern GL_FRAGMENT_SHADER,
+  pattern GL_FRAGMENT_SHADER_DERIVATIVE_HINT,
+  pattern GL_FRAMEBUFFER,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL,
+  pattern GL_FRAMEBUFFER_BINDING,
+  pattern GL_FRAMEBUFFER_COMPLETE,
+  pattern GL_FRAMEBUFFER_DEFAULT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER,
+  pattern GL_FRAMEBUFFER_SRGB,
+  pattern GL_FRAMEBUFFER_UNDEFINED,
+  pattern GL_FRAMEBUFFER_UNSUPPORTED,
+  pattern GL_FRONT,
+  pattern GL_FRONT_AND_BACK,
+  pattern GL_FRONT_FACE,
+  pattern GL_FRONT_LEFT,
+  pattern GL_FRONT_RIGHT,
+  pattern GL_FUNC_ADD,
+  pattern GL_FUNC_REVERSE_SUBTRACT,
+  pattern GL_FUNC_SUBTRACT,
+  pattern GL_GENERATE_MIPMAP,
+  pattern GL_GENERATE_MIPMAP_HINT,
+  pattern GL_GEOMETRY_INPUT_TYPE,
+  pattern GL_GEOMETRY_OUTPUT_TYPE,
+  pattern GL_GEOMETRY_SHADER,
+  pattern GL_GEOMETRY_VERTICES_OUT,
+  pattern GL_GEQUAL,
+  pattern GL_GREATER,
+  pattern GL_GREEN,
+  pattern GL_GREEN_BIAS,
+  pattern GL_GREEN_BITS,
+  pattern GL_GREEN_INTEGER,
+  pattern GL_GREEN_SCALE,
+  pattern GL_HALF_FLOAT,
+  pattern GL_HINT_BIT,
+  pattern GL_INCR,
+  pattern GL_INCR_WRAP,
+  pattern GL_INDEX,
+  pattern GL_INDEX_ARRAY,
+  pattern GL_INDEX_ARRAY_BUFFER_BINDING,
+  pattern GL_INDEX_ARRAY_POINTER,
+  pattern GL_INDEX_ARRAY_STRIDE,
+  pattern GL_INDEX_ARRAY_TYPE,
+  pattern GL_INDEX_BITS,
+  pattern GL_INDEX_CLEAR_VALUE,
+  pattern GL_INDEX_LOGIC_OP,
+  pattern GL_INDEX_MODE,
+  pattern GL_INDEX_OFFSET,
+  pattern GL_INDEX_SHIFT,
+  pattern GL_INDEX_WRITEMASK,
+  pattern GL_INFO_LOG_LENGTH,
+  pattern GL_INT,
+  pattern GL_INTENSITY,
+  pattern GL_INTENSITY12,
+  pattern GL_INTENSITY16,
+  pattern GL_INTENSITY4,
+  pattern GL_INTENSITY8,
+  pattern GL_INTERLEAVED_ATTRIBS,
+  pattern GL_INTERPOLATE,
+  pattern GL_INT_SAMPLER_1D,
+  pattern GL_INT_SAMPLER_1D_ARRAY,
+  pattern GL_INT_SAMPLER_2D,
+  pattern GL_INT_SAMPLER_2D_ARRAY,
+  pattern GL_INT_SAMPLER_2D_MULTISAMPLE,
+  pattern GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY,
+  pattern GL_INT_SAMPLER_2D_RECT,
+  pattern GL_INT_SAMPLER_3D,
+  pattern GL_INT_SAMPLER_BUFFER,
+  pattern GL_INT_SAMPLER_CUBE,
+  pattern GL_INT_VEC2,
+  pattern GL_INT_VEC3,
+  pattern GL_INT_VEC4,
+  pattern GL_INVALID_ENUM,
+  pattern GL_INVALID_FRAMEBUFFER_OPERATION,
+  pattern GL_INVALID_INDEX,
+  pattern GL_INVALID_OPERATION,
+  pattern GL_INVALID_VALUE,
+  pattern GL_INVERT,
+  pattern GL_KEEP,
+  pattern GL_LAST_VERTEX_CONVENTION,
+  pattern GL_LEFT,
+  pattern GL_LEQUAL,
+  pattern GL_LESS,
+  pattern GL_LIGHT0,
+  pattern GL_LIGHT1,
+  pattern GL_LIGHT2,
+  pattern GL_LIGHT3,
+  pattern GL_LIGHT4,
+  pattern GL_LIGHT5,
+  pattern GL_LIGHT6,
+  pattern GL_LIGHT7,
+  pattern GL_LIGHTING,
+  pattern GL_LIGHTING_BIT,
+  pattern GL_LIGHT_MODEL_AMBIENT,
+  pattern GL_LIGHT_MODEL_COLOR_CONTROL,
+  pattern GL_LIGHT_MODEL_LOCAL_VIEWER,
+  pattern GL_LIGHT_MODEL_TWO_SIDE,
+  pattern GL_LINE,
+  pattern GL_LINEAR,
+  pattern GL_LINEAR_ATTENUATION,
+  pattern GL_LINEAR_MIPMAP_LINEAR,
+  pattern GL_LINEAR_MIPMAP_NEAREST,
+  pattern GL_LINES,
+  pattern GL_LINES_ADJACENCY,
+  pattern GL_LINE_BIT,
+  pattern GL_LINE_LOOP,
+  pattern GL_LINE_RESET_TOKEN,
+  pattern GL_LINE_SMOOTH,
+  pattern GL_LINE_SMOOTH_HINT,
+  pattern GL_LINE_STIPPLE,
+  pattern GL_LINE_STIPPLE_PATTERN,
+  pattern GL_LINE_STIPPLE_REPEAT,
+  pattern GL_LINE_STRIP,
+  pattern GL_LINE_STRIP_ADJACENCY,
+  pattern GL_LINE_TOKEN,
+  pattern GL_LINE_WIDTH,
+  pattern GL_LINE_WIDTH_GRANULARITY,
+  pattern GL_LINE_WIDTH_RANGE,
+  pattern GL_LINK_STATUS,
+  pattern GL_LIST_BASE,
+  pattern GL_LIST_BIT,
+  pattern GL_LIST_INDEX,
+  pattern GL_LIST_MODE,
+  pattern GL_LOAD,
+  pattern GL_LOGIC_OP,
+  pattern GL_LOGIC_OP_MODE,
+  pattern GL_LOWER_LEFT,
+  pattern GL_LUMINANCE,
+  pattern GL_LUMINANCE12,
+  pattern GL_LUMINANCE12_ALPHA12,
+  pattern GL_LUMINANCE12_ALPHA4,
+  pattern GL_LUMINANCE16,
+  pattern GL_LUMINANCE16_ALPHA16,
+  pattern GL_LUMINANCE4,
+  pattern GL_LUMINANCE4_ALPHA4,
+  pattern GL_LUMINANCE6_ALPHA2,
+  pattern GL_LUMINANCE8,
+  pattern GL_LUMINANCE8_ALPHA8,
+  pattern GL_LUMINANCE_ALPHA,
+  pattern GL_MAJOR_VERSION,
+  pattern GL_MAP1_COLOR_4,
+  pattern GL_MAP1_GRID_DOMAIN,
+  pattern GL_MAP1_GRID_SEGMENTS,
+  pattern GL_MAP1_INDEX,
+  pattern GL_MAP1_NORMAL,
+  pattern GL_MAP1_TEXTURE_COORD_1,
+  pattern GL_MAP1_TEXTURE_COORD_2,
+  pattern GL_MAP1_TEXTURE_COORD_3,
+  pattern GL_MAP1_TEXTURE_COORD_4,
+  pattern GL_MAP1_VERTEX_3,
+  pattern GL_MAP1_VERTEX_4,
+  pattern GL_MAP2_COLOR_4,
+  pattern GL_MAP2_GRID_DOMAIN,
+  pattern GL_MAP2_GRID_SEGMENTS,
+  pattern GL_MAP2_INDEX,
+  pattern GL_MAP2_NORMAL,
+  pattern GL_MAP2_TEXTURE_COORD_1,
+  pattern GL_MAP2_TEXTURE_COORD_2,
+  pattern GL_MAP2_TEXTURE_COORD_3,
+  pattern GL_MAP2_TEXTURE_COORD_4,
+  pattern GL_MAP2_VERTEX_3,
+  pattern GL_MAP2_VERTEX_4,
+  pattern GL_MAP_COLOR,
+  pattern GL_MAP_FLUSH_EXPLICIT_BIT,
+  pattern GL_MAP_INVALIDATE_BUFFER_BIT,
+  pattern GL_MAP_INVALIDATE_RANGE_BIT,
+  pattern GL_MAP_READ_BIT,
+  pattern GL_MAP_STENCIL,
+  pattern GL_MAP_UNSYNCHRONIZED_BIT,
+  pattern GL_MAP_WRITE_BIT,
+  pattern GL_MATRIX_MODE,
+  pattern GL_MAX,
+  pattern GL_MAX_3D_TEXTURE_SIZE,
+  pattern GL_MAX_ARRAY_TEXTURE_LAYERS,
+  pattern GL_MAX_ATTRIB_STACK_DEPTH,
+  pattern GL_MAX_CLIENT_ATTRIB_STACK_DEPTH,
+  pattern GL_MAX_CLIP_DISTANCES,
+  pattern GL_MAX_CLIP_PLANES,
+  pattern GL_MAX_COLOR_ATTACHMENTS,
+  pattern GL_MAX_COLOR_TEXTURE_SAMPLES,
+  pattern GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_COMBINED_UNIFORM_BLOCKS,
+  pattern GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS,
+  pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE,
+  pattern GL_MAX_DEPTH_TEXTURE_SAMPLES,
+  pattern GL_MAX_DRAW_BUFFERS,
+  pattern GL_MAX_ELEMENTS_INDICES,
+  pattern GL_MAX_ELEMENTS_VERTICES,
+  pattern GL_MAX_EVAL_ORDER,
+  pattern GL_MAX_FRAGMENT_INPUT_COMPONENTS,
+  pattern GL_MAX_FRAGMENT_UNIFORM_BLOCKS,
+  pattern GL_MAX_FRAGMENT_UNIFORM_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_INPUT_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_OUTPUT_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_OUTPUT_VERTICES,
+  pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_UNIFORM_BLOCKS,
+  pattern GL_MAX_GEOMETRY_UNIFORM_COMPONENTS,
+  pattern GL_MAX_INTEGER_SAMPLES,
+  pattern GL_MAX_LIGHTS,
+  pattern GL_MAX_LIST_NESTING,
+  pattern GL_MAX_MODELVIEW_STACK_DEPTH,
+  pattern GL_MAX_NAME_STACK_DEPTH,
+  pattern GL_MAX_PIXEL_MAP_TABLE,
+  pattern GL_MAX_PROGRAM_TEXEL_OFFSET,
+  pattern GL_MAX_PROJECTION_STACK_DEPTH,
+  pattern GL_MAX_RECTANGLE_TEXTURE_SIZE,
+  pattern GL_MAX_RENDERBUFFER_SIZE,
+  pattern GL_MAX_SAMPLES,
+  pattern GL_MAX_SAMPLE_MASK_WORDS,
+  pattern GL_MAX_SERVER_WAIT_TIMEOUT,
+  pattern GL_MAX_TEXTURE_BUFFER_SIZE,
+  pattern GL_MAX_TEXTURE_COORDS,
+  pattern GL_MAX_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_TEXTURE_LOD_BIAS,
+  pattern GL_MAX_TEXTURE_SIZE,
+  pattern GL_MAX_TEXTURE_STACK_DEPTH,
+  pattern GL_MAX_TEXTURE_UNITS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS,
+  pattern GL_MAX_UNIFORM_BLOCK_SIZE,
+  pattern GL_MAX_UNIFORM_BUFFER_BINDINGS,
+  pattern GL_MAX_VARYING_COMPONENTS,
+  pattern GL_MAX_VARYING_FLOATS,
+  pattern GL_MAX_VERTEX_ATTRIBS,
+  pattern GL_MAX_VERTEX_OUTPUT_COMPONENTS,
+  pattern GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_VERTEX_UNIFORM_BLOCKS,
+  pattern GL_MAX_VERTEX_UNIFORM_COMPONENTS,
+  pattern GL_MAX_VIEWPORT_DIMS,
+  pattern GL_MIN,
+  pattern GL_MINOR_VERSION,
+  pattern GL_MIN_PROGRAM_TEXEL_OFFSET,
+  pattern GL_MIRRORED_REPEAT,
+  pattern GL_MODELVIEW,
+  pattern GL_MODELVIEW_MATRIX,
+  pattern GL_MODELVIEW_STACK_DEPTH,
+  pattern GL_MODULATE,
+  pattern GL_MULT,
+  pattern GL_MULTISAMPLE,
+  pattern GL_MULTISAMPLE_BIT,
+  pattern GL_N3F_V3F,
+  pattern GL_NAME_STACK_DEPTH,
+  pattern GL_NAND,
+  pattern GL_NEAREST,
+  pattern GL_NEAREST_MIPMAP_LINEAR,
+  pattern GL_NEAREST_MIPMAP_NEAREST,
+  pattern GL_NEVER,
+  pattern GL_NICEST,
+  pattern GL_NONE,
+  pattern GL_NOOP,
+  pattern GL_NOR,
+  pattern GL_NORMALIZE,
+  pattern GL_NORMAL_ARRAY,
+  pattern GL_NORMAL_ARRAY_BUFFER_BINDING,
+  pattern GL_NORMAL_ARRAY_POINTER,
+  pattern GL_NORMAL_ARRAY_STRIDE,
+  pattern GL_NORMAL_ARRAY_TYPE,
+  pattern GL_NORMAL_MAP,
+  pattern GL_NOTEQUAL,
+  pattern GL_NO_ERROR,
+  pattern GL_NUM_COMPRESSED_TEXTURE_FORMATS,
+  pattern GL_NUM_EXTENSIONS,
+  pattern GL_OBJECT_LINEAR,
+  pattern GL_OBJECT_PLANE,
+  pattern GL_OBJECT_TYPE,
+  pattern GL_ONE,
+  pattern GL_ONE_MINUS_CONSTANT_ALPHA,
+  pattern GL_ONE_MINUS_CONSTANT_COLOR,
+  pattern GL_ONE_MINUS_DST_ALPHA,
+  pattern GL_ONE_MINUS_DST_COLOR,
+  pattern GL_ONE_MINUS_SRC_ALPHA,
+  pattern GL_ONE_MINUS_SRC_COLOR,
+  pattern GL_OPERAND0_ALPHA,
+  pattern GL_OPERAND0_RGB,
+  pattern GL_OPERAND1_ALPHA,
+  pattern GL_OPERAND1_RGB,
+  pattern GL_OPERAND2_ALPHA,
+  pattern GL_OPERAND2_RGB,
+  pattern GL_OR,
+  pattern GL_ORDER,
+  pattern GL_OR_INVERTED,
+  pattern GL_OR_REVERSE,
+  pattern GL_OUT_OF_MEMORY,
+  pattern GL_PACK_ALIGNMENT,
+  pattern GL_PACK_IMAGE_HEIGHT,
+  pattern GL_PACK_LSB_FIRST,
+  pattern GL_PACK_ROW_LENGTH,
+  pattern GL_PACK_SKIP_IMAGES,
+  pattern GL_PACK_SKIP_PIXELS,
+  pattern GL_PACK_SKIP_ROWS,
+  pattern GL_PACK_SWAP_BYTES,
+  pattern GL_PASS_THROUGH_TOKEN,
+  pattern GL_PERSPECTIVE_CORRECTION_HINT,
+  pattern GL_PIXEL_MAP_A_TO_A,
+  pattern GL_PIXEL_MAP_A_TO_A_SIZE,
+  pattern GL_PIXEL_MAP_B_TO_B,
+  pattern GL_PIXEL_MAP_B_TO_B_SIZE,
+  pattern GL_PIXEL_MAP_G_TO_G,
+  pattern GL_PIXEL_MAP_G_TO_G_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_A,
+  pattern GL_PIXEL_MAP_I_TO_A_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_B,
+  pattern GL_PIXEL_MAP_I_TO_B_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_G,
+  pattern GL_PIXEL_MAP_I_TO_G_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_I,
+  pattern GL_PIXEL_MAP_I_TO_I_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_R,
+  pattern GL_PIXEL_MAP_I_TO_R_SIZE,
+  pattern GL_PIXEL_MAP_R_TO_R,
+  pattern GL_PIXEL_MAP_R_TO_R_SIZE,
+  pattern GL_PIXEL_MAP_S_TO_S,
+  pattern GL_PIXEL_MAP_S_TO_S_SIZE,
+  pattern GL_PIXEL_MODE_BIT,
+  pattern GL_PIXEL_PACK_BUFFER,
+  pattern GL_PIXEL_PACK_BUFFER_BINDING,
+  pattern GL_PIXEL_UNPACK_BUFFER,
+  pattern GL_PIXEL_UNPACK_BUFFER_BINDING,
+  pattern GL_POINT,
+  pattern GL_POINTS,
+  pattern GL_POINT_BIT,
+  pattern GL_POINT_DISTANCE_ATTENUATION,
+  pattern GL_POINT_FADE_THRESHOLD_SIZE,
+  pattern GL_POINT_SIZE,
+  pattern GL_POINT_SIZE_GRANULARITY,
+  pattern GL_POINT_SIZE_MAX,
+  pattern GL_POINT_SIZE_MIN,
+  pattern GL_POINT_SIZE_RANGE,
+  pattern GL_POINT_SMOOTH,
+  pattern GL_POINT_SMOOTH_HINT,
+  pattern GL_POINT_SPRITE,
+  pattern GL_POINT_SPRITE_COORD_ORIGIN,
+  pattern GL_POINT_TOKEN,
+  pattern GL_POLYGON,
+  pattern GL_POLYGON_BIT,
+  pattern GL_POLYGON_MODE,
+  pattern GL_POLYGON_OFFSET_FACTOR,
+  pattern GL_POLYGON_OFFSET_FILL,
+  pattern GL_POLYGON_OFFSET_LINE,
+  pattern GL_POLYGON_OFFSET_POINT,
+  pattern GL_POLYGON_OFFSET_UNITS,
+  pattern GL_POLYGON_SMOOTH,
+  pattern GL_POLYGON_SMOOTH_HINT,
+  pattern GL_POLYGON_STIPPLE,
+  pattern GL_POLYGON_STIPPLE_BIT,
+  pattern GL_POLYGON_TOKEN,
+  pattern GL_POSITION,
+  pattern GL_PREVIOUS,
+  pattern GL_PRIMARY_COLOR,
+  pattern GL_PRIMITIVES_GENERATED,
+  pattern GL_PRIMITIVE_RESTART,
+  pattern GL_PRIMITIVE_RESTART_INDEX,
+  pattern GL_PROGRAM_POINT_SIZE,
+  pattern GL_PROJECTION,
+  pattern GL_PROJECTION_MATRIX,
+  pattern GL_PROJECTION_STACK_DEPTH,
+  pattern GL_PROVOKING_VERTEX,
+  pattern GL_PROXY_TEXTURE_1D,
+  pattern GL_PROXY_TEXTURE_1D_ARRAY,
+  pattern GL_PROXY_TEXTURE_2D,
+  pattern GL_PROXY_TEXTURE_2D_ARRAY,
+  pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE,
+  pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_PROXY_TEXTURE_3D,
+  pattern GL_PROXY_TEXTURE_CUBE_MAP,
+  pattern GL_PROXY_TEXTURE_RECTANGLE,
+  pattern GL_Q,
+  pattern GL_QUADRATIC_ATTENUATION,
+  pattern GL_QUADS,
+  pattern GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION,
+  pattern GL_QUAD_STRIP,
+  pattern GL_QUERY_BY_REGION_NO_WAIT,
+  pattern GL_QUERY_BY_REGION_WAIT,
+  pattern GL_QUERY_COUNTER_BITS,
+  pattern GL_QUERY_NO_WAIT,
+  pattern GL_QUERY_RESULT,
+  pattern GL_QUERY_RESULT_AVAILABLE,
+  pattern GL_QUERY_WAIT,
+  pattern GL_R,
+  pattern GL_R11F_G11F_B10F,
+  pattern GL_R16,
+  pattern GL_R16F,
+  pattern GL_R16I,
+  pattern GL_R16UI,
+  pattern GL_R16_SNORM,
+  pattern GL_R32F,
+  pattern GL_R32I,
+  pattern GL_R32UI,
+  pattern GL_R3_G3_B2,
+  pattern GL_R8,
+  pattern GL_R8I,
+  pattern GL_R8UI,
+  pattern GL_R8_SNORM,
+  pattern GL_RASTERIZER_DISCARD,
+  pattern GL_READ_BUFFER,
+  pattern GL_READ_FRAMEBUFFER,
+  pattern GL_READ_FRAMEBUFFER_BINDING,
+  pattern GL_READ_ONLY,
+  pattern GL_READ_WRITE,
+  pattern GL_RED,
+  pattern GL_RED_BIAS,
+  pattern GL_RED_BITS,
+  pattern GL_RED_INTEGER,
+  pattern GL_RED_SCALE,
+  pattern GL_REFLECTION_MAP,
+  pattern GL_RENDER,
+  pattern GL_RENDERBUFFER,
+  pattern GL_RENDERBUFFER_ALPHA_SIZE,
+  pattern GL_RENDERBUFFER_BINDING,
+  pattern GL_RENDERBUFFER_BLUE_SIZE,
+  pattern GL_RENDERBUFFER_DEPTH_SIZE,
+  pattern GL_RENDERBUFFER_GREEN_SIZE,
+  pattern GL_RENDERBUFFER_HEIGHT,
+  pattern GL_RENDERBUFFER_INTERNAL_FORMAT,
+  pattern GL_RENDERBUFFER_RED_SIZE,
+  pattern GL_RENDERBUFFER_SAMPLES,
+  pattern GL_RENDERBUFFER_STENCIL_SIZE,
+  pattern GL_RENDERBUFFER_WIDTH,
+  pattern GL_RENDERER,
+  pattern GL_RENDER_MODE,
+  pattern GL_REPEAT,
+  pattern GL_REPLACE,
+  pattern GL_RESCALE_NORMAL,
+  pattern GL_RETURN,
+  pattern GL_RG,
+  pattern GL_RG16,
+  pattern GL_RG16F,
+  pattern GL_RG16I,
+  pattern GL_RG16UI,
+  pattern GL_RG16_SNORM,
+  pattern GL_RG32F,
+  pattern GL_RG32I,
+  pattern GL_RG32UI,
+  pattern GL_RG8,
+  pattern GL_RG8I,
+  pattern GL_RG8UI,
+  pattern GL_RG8_SNORM,
+  pattern GL_RGB,
+  pattern GL_RGB10,
+  pattern GL_RGB10_A2,
+  pattern GL_RGB12,
+  pattern GL_RGB16,
+  pattern GL_RGB16F,
+  pattern GL_RGB16I,
+  pattern GL_RGB16UI,
+  pattern GL_RGB16_SNORM,
+  pattern GL_RGB32F,
+  pattern GL_RGB32I,
+  pattern GL_RGB32UI,
+  pattern GL_RGB4,
+  pattern GL_RGB5,
+  pattern GL_RGB5_A1,
+  pattern GL_RGB8,
+  pattern GL_RGB8I,
+  pattern GL_RGB8UI,
+  pattern GL_RGB8_SNORM,
+  pattern GL_RGB9_E5,
+  pattern GL_RGBA,
+  pattern GL_RGBA12,
+  pattern GL_RGBA16,
+  pattern GL_RGBA16F,
+  pattern GL_RGBA16I,
+  pattern GL_RGBA16UI,
+  pattern GL_RGBA16_SNORM,
+  pattern GL_RGBA2,
+  pattern GL_RGBA32F,
+  pattern GL_RGBA32I,
+  pattern GL_RGBA32UI,
+  pattern GL_RGBA4,
+  pattern GL_RGBA8,
+  pattern GL_RGBA8I,
+  pattern GL_RGBA8UI,
+  pattern GL_RGBA8_SNORM,
+  pattern GL_RGBA_INTEGER,
+  pattern GL_RGBA_MODE,
+  pattern GL_RGB_INTEGER,
+  pattern GL_RGB_SCALE,
+  pattern GL_RG_INTEGER,
+  pattern GL_RIGHT,
+  pattern GL_S,
+  pattern GL_SAMPLER_1D,
+  pattern GL_SAMPLER_1D_ARRAY,
+  pattern GL_SAMPLER_1D_ARRAY_SHADOW,
+  pattern GL_SAMPLER_1D_SHADOW,
+  pattern GL_SAMPLER_2D,
+  pattern GL_SAMPLER_2D_ARRAY,
+  pattern GL_SAMPLER_2D_ARRAY_SHADOW,
+  pattern GL_SAMPLER_2D_MULTISAMPLE,
+  pattern GL_SAMPLER_2D_MULTISAMPLE_ARRAY,
+  pattern GL_SAMPLER_2D_RECT,
+  pattern GL_SAMPLER_2D_RECT_SHADOW,
+  pattern GL_SAMPLER_2D_SHADOW,
+  pattern GL_SAMPLER_3D,
+  pattern GL_SAMPLER_BUFFER,
+  pattern GL_SAMPLER_CUBE,
+  pattern GL_SAMPLER_CUBE_SHADOW,
+  pattern GL_SAMPLES,
+  pattern GL_SAMPLES_PASSED,
+  pattern GL_SAMPLE_ALPHA_TO_COVERAGE,
+  pattern GL_SAMPLE_ALPHA_TO_ONE,
+  pattern GL_SAMPLE_BUFFERS,
+  pattern GL_SAMPLE_COVERAGE,
+  pattern GL_SAMPLE_COVERAGE_INVERT,
+  pattern GL_SAMPLE_COVERAGE_VALUE,
+  pattern GL_SAMPLE_MASK,
+  pattern GL_SAMPLE_MASK_VALUE,
+  pattern GL_SAMPLE_POSITION,
+  pattern GL_SCISSOR_BIT,
+  pattern GL_SCISSOR_BOX,
+  pattern GL_SCISSOR_TEST,
+  pattern GL_SECONDARY_COLOR_ARRAY,
+  pattern GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING,
+  pattern GL_SECONDARY_COLOR_ARRAY_POINTER,
+  pattern GL_SECONDARY_COLOR_ARRAY_SIZE,
+  pattern GL_SECONDARY_COLOR_ARRAY_STRIDE,
+  pattern GL_SECONDARY_COLOR_ARRAY_TYPE,
+  pattern GL_SELECT,
+  pattern GL_SELECTION_BUFFER_POINTER,
+  pattern GL_SELECTION_BUFFER_SIZE,
+  pattern GL_SEPARATE_ATTRIBS,
+  pattern GL_SEPARATE_SPECULAR_COLOR,
+  pattern GL_SET,
+  pattern GL_SHADER_SOURCE_LENGTH,
+  pattern GL_SHADER_TYPE,
+  pattern GL_SHADE_MODEL,
+  pattern GL_SHADING_LANGUAGE_VERSION,
+  pattern GL_SHININESS,
+  pattern GL_SHORT,
+  pattern GL_SIGNALED,
+  pattern GL_SIGNED_NORMALIZED,
+  pattern GL_SINGLE_COLOR,
+  pattern GL_SLUMINANCE,
+  pattern GL_SLUMINANCE8,
+  pattern GL_SLUMINANCE8_ALPHA8,
+  pattern GL_SLUMINANCE_ALPHA,
+  pattern GL_SMOOTH,
+  pattern GL_SMOOTH_LINE_WIDTH_GRANULARITY,
+  pattern GL_SMOOTH_LINE_WIDTH_RANGE,
+  pattern GL_SMOOTH_POINT_SIZE_GRANULARITY,
+  pattern GL_SMOOTH_POINT_SIZE_RANGE,
+  pattern GL_SOURCE0_ALPHA,
+  pattern GL_SOURCE0_RGB,
+  pattern GL_SOURCE1_ALPHA,
+  pattern GL_SOURCE1_RGB,
+  pattern GL_SOURCE2_ALPHA,
+  pattern GL_SOURCE2_RGB,
+  pattern GL_SPECULAR,
+  pattern GL_SPHERE_MAP,
+  pattern GL_SPOT_CUTOFF,
+  pattern GL_SPOT_DIRECTION,
+  pattern GL_SPOT_EXPONENT,
+  pattern GL_SRC0_ALPHA,
+  pattern GL_SRC0_RGB,
+  pattern GL_SRC1_ALPHA,
+  pattern GL_SRC1_RGB,
+  pattern GL_SRC2_ALPHA,
+  pattern GL_SRC2_RGB,
+  pattern GL_SRC_ALPHA,
+  pattern GL_SRC_ALPHA_SATURATE,
+  pattern GL_SRC_COLOR,
+  pattern GL_SRGB,
+  pattern GL_SRGB8,
+  pattern GL_SRGB8_ALPHA8,
+  pattern GL_SRGB_ALPHA,
+  pattern GL_STACK_OVERFLOW,
+  pattern GL_STACK_UNDERFLOW,
+  pattern GL_STATIC_COPY,
+  pattern GL_STATIC_DRAW,
+  pattern GL_STATIC_READ,
+  pattern GL_STENCIL,
+  pattern GL_STENCIL_ATTACHMENT,
+  pattern GL_STENCIL_BACK_FAIL,
+  pattern GL_STENCIL_BACK_FUNC,
+  pattern GL_STENCIL_BACK_PASS_DEPTH_FAIL,
+  pattern GL_STENCIL_BACK_PASS_DEPTH_PASS,
+  pattern GL_STENCIL_BACK_REF,
+  pattern GL_STENCIL_BACK_VALUE_MASK,
+  pattern GL_STENCIL_BACK_WRITEMASK,
+  pattern GL_STENCIL_BITS,
+  pattern GL_STENCIL_BUFFER_BIT,
+  pattern GL_STENCIL_CLEAR_VALUE,
+  pattern GL_STENCIL_FAIL,
+  pattern GL_STENCIL_FUNC,
+  pattern GL_STENCIL_INDEX,
+  pattern GL_STENCIL_INDEX1,
+  pattern GL_STENCIL_INDEX16,
+  pattern GL_STENCIL_INDEX4,
+  pattern GL_STENCIL_INDEX8,
+  pattern GL_STENCIL_PASS_DEPTH_FAIL,
+  pattern GL_STENCIL_PASS_DEPTH_PASS,
+  pattern GL_STENCIL_REF,
+  pattern GL_STENCIL_TEST,
+  pattern GL_STENCIL_VALUE_MASK,
+  pattern GL_STENCIL_WRITEMASK,
+  pattern GL_STEREO,
+  pattern GL_STREAM_COPY,
+  pattern GL_STREAM_DRAW,
+  pattern GL_STREAM_READ,
+  pattern GL_SUBPIXEL_BITS,
+  pattern GL_SUBTRACT,
+  pattern GL_SYNC_CONDITION,
+  pattern GL_SYNC_FENCE,
+  pattern GL_SYNC_FLAGS,
+  pattern GL_SYNC_FLUSH_COMMANDS_BIT,
+  pattern GL_SYNC_GPU_COMMANDS_COMPLETE,
+  pattern GL_SYNC_STATUS,
+  pattern GL_T,
+  pattern GL_T2F_C3F_V3F,
+  pattern GL_T2F_C4F_N3F_V3F,
+  pattern GL_T2F_C4UB_V3F,
+  pattern GL_T2F_N3F_V3F,
+  pattern GL_T2F_V3F,
+  pattern GL_T4F_C4F_N3F_V4F,
+  pattern GL_T4F_V4F,
+  pattern GL_TEXTURE,
+  pattern GL_TEXTURE0,
+  pattern GL_TEXTURE1,
+  pattern GL_TEXTURE10,
+  pattern GL_TEXTURE11,
+  pattern GL_TEXTURE12,
+  pattern GL_TEXTURE13,
+  pattern GL_TEXTURE14,
+  pattern GL_TEXTURE15,
+  pattern GL_TEXTURE16,
+  pattern GL_TEXTURE17,
+  pattern GL_TEXTURE18,
+  pattern GL_TEXTURE19,
+  pattern GL_TEXTURE2,
+  pattern GL_TEXTURE20,
+  pattern GL_TEXTURE21,
+  pattern GL_TEXTURE22,
+  pattern GL_TEXTURE23,
+  pattern GL_TEXTURE24,
+  pattern GL_TEXTURE25,
+  pattern GL_TEXTURE26,
+  pattern GL_TEXTURE27,
+  pattern GL_TEXTURE28,
+  pattern GL_TEXTURE29,
+  pattern GL_TEXTURE3,
+  pattern GL_TEXTURE30,
+  pattern GL_TEXTURE31,
+  pattern GL_TEXTURE4,
+  pattern GL_TEXTURE5,
+  pattern GL_TEXTURE6,
+  pattern GL_TEXTURE7,
+  pattern GL_TEXTURE8,
+  pattern GL_TEXTURE9,
+  pattern GL_TEXTURE_1D,
+  pattern GL_TEXTURE_1D_ARRAY,
+  pattern GL_TEXTURE_2D,
+  pattern GL_TEXTURE_2D_ARRAY,
+  pattern GL_TEXTURE_2D_MULTISAMPLE,
+  pattern GL_TEXTURE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_TEXTURE_3D,
+  pattern GL_TEXTURE_ALPHA_SIZE,
+  pattern GL_TEXTURE_ALPHA_TYPE,
+  pattern GL_TEXTURE_BASE_LEVEL,
+  pattern GL_TEXTURE_BINDING_1D,
+  pattern GL_TEXTURE_BINDING_1D_ARRAY,
+  pattern GL_TEXTURE_BINDING_2D,
+  pattern GL_TEXTURE_BINDING_2D_ARRAY,
+  pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE,
+  pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY,
+  pattern GL_TEXTURE_BINDING_3D,
+  pattern GL_TEXTURE_BINDING_BUFFER,
+  pattern GL_TEXTURE_BINDING_CUBE_MAP,
+  pattern GL_TEXTURE_BINDING_RECTANGLE,
+  pattern GL_TEXTURE_BIT,
+  pattern GL_TEXTURE_BLUE_SIZE,
+  pattern GL_TEXTURE_BLUE_TYPE,
+  pattern GL_TEXTURE_BORDER,
+  pattern GL_TEXTURE_BORDER_COLOR,
+  pattern GL_TEXTURE_BUFFER,
+  pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING,
+  pattern GL_TEXTURE_COMPARE_FUNC,
+  pattern GL_TEXTURE_COMPARE_MODE,
+  pattern GL_TEXTURE_COMPONENTS,
+  pattern GL_TEXTURE_COMPRESSED,
+  pattern GL_TEXTURE_COMPRESSED_IMAGE_SIZE,
+  pattern GL_TEXTURE_COMPRESSION_HINT,
+  pattern GL_TEXTURE_COORD_ARRAY,
+  pattern GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING,
+  pattern GL_TEXTURE_COORD_ARRAY_POINTER,
+  pattern GL_TEXTURE_COORD_ARRAY_SIZE,
+  pattern GL_TEXTURE_COORD_ARRAY_STRIDE,
+  pattern GL_TEXTURE_COORD_ARRAY_TYPE,
+  pattern GL_TEXTURE_CUBE_MAP,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z,
+  pattern GL_TEXTURE_CUBE_MAP_SEAMLESS,
+  pattern GL_TEXTURE_DEPTH,
+  pattern GL_TEXTURE_DEPTH_SIZE,
+  pattern GL_TEXTURE_DEPTH_TYPE,
+  pattern GL_TEXTURE_ENV,
+  pattern GL_TEXTURE_ENV_COLOR,
+  pattern GL_TEXTURE_ENV_MODE,
+  pattern GL_TEXTURE_FILTER_CONTROL,
+  pattern GL_TEXTURE_FIXED_SAMPLE_LOCATIONS,
+  pattern GL_TEXTURE_GEN_MODE,
+  pattern GL_TEXTURE_GEN_Q,
+  pattern GL_TEXTURE_GEN_R,
+  pattern GL_TEXTURE_GEN_S,
+  pattern GL_TEXTURE_GEN_T,
+  pattern GL_TEXTURE_GREEN_SIZE,
+  pattern GL_TEXTURE_GREEN_TYPE,
+  pattern GL_TEXTURE_HEIGHT,
+  pattern GL_TEXTURE_INTENSITY_SIZE,
+  pattern GL_TEXTURE_INTENSITY_TYPE,
+  pattern GL_TEXTURE_INTERNAL_FORMAT,
+  pattern GL_TEXTURE_LOD_BIAS,
+  pattern GL_TEXTURE_LUMINANCE_SIZE,
+  pattern GL_TEXTURE_LUMINANCE_TYPE,
+  pattern GL_TEXTURE_MAG_FILTER,
+  pattern GL_TEXTURE_MATRIX,
+  pattern GL_TEXTURE_MAX_LEVEL,
+  pattern GL_TEXTURE_MAX_LOD,
+  pattern GL_TEXTURE_MIN_FILTER,
+  pattern GL_TEXTURE_MIN_LOD,
+  pattern GL_TEXTURE_PRIORITY,
+  pattern GL_TEXTURE_RECTANGLE,
+  pattern GL_TEXTURE_RED_SIZE,
+  pattern GL_TEXTURE_RED_TYPE,
+  pattern GL_TEXTURE_RESIDENT,
+  pattern GL_TEXTURE_SAMPLES,
+  pattern GL_TEXTURE_SHARED_SIZE,
+  pattern GL_TEXTURE_STACK_DEPTH,
+  pattern GL_TEXTURE_STENCIL_SIZE,
+  pattern GL_TEXTURE_WIDTH,
+  pattern GL_TEXTURE_WRAP_R,
+  pattern GL_TEXTURE_WRAP_S,
+  pattern GL_TEXTURE_WRAP_T,
+  pattern GL_TIMEOUT_EXPIRED,
+  pattern GL_TIMEOUT_IGNORED,
+  pattern GL_TRANSFORM_BIT,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_BINDING,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_MODE,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_SIZE,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_START,
+  pattern GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN,
+  pattern GL_TRANSFORM_FEEDBACK_VARYINGS,
+  pattern GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH,
+  pattern GL_TRANSPOSE_COLOR_MATRIX,
+  pattern GL_TRANSPOSE_MODELVIEW_MATRIX,
+  pattern GL_TRANSPOSE_PROJECTION_MATRIX,
+  pattern GL_TRANSPOSE_TEXTURE_MATRIX,
+  pattern GL_TRIANGLES,
+  pattern GL_TRIANGLES_ADJACENCY,
+  pattern GL_TRIANGLE_FAN,
+  pattern GL_TRIANGLE_STRIP,
+  pattern GL_TRIANGLE_STRIP_ADJACENCY,
+  pattern GL_TRUE,
+  pattern GL_UNIFORM_ARRAY_STRIDE,
+  pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS,
+  pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES,
+  pattern GL_UNIFORM_BLOCK_BINDING,
+  pattern GL_UNIFORM_BLOCK_DATA_SIZE,
+  pattern GL_UNIFORM_BLOCK_INDEX,
+  pattern GL_UNIFORM_BLOCK_NAME_LENGTH,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER,
+  pattern GL_UNIFORM_BUFFER,
+  pattern GL_UNIFORM_BUFFER_BINDING,
+  pattern GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT,
+  pattern GL_UNIFORM_BUFFER_SIZE,
+  pattern GL_UNIFORM_BUFFER_START,
+  pattern GL_UNIFORM_IS_ROW_MAJOR,
+  pattern GL_UNIFORM_MATRIX_STRIDE,
+  pattern GL_UNIFORM_NAME_LENGTH,
+  pattern GL_UNIFORM_OFFSET,
+  pattern GL_UNIFORM_SIZE,
+  pattern GL_UNIFORM_TYPE,
+  pattern GL_UNPACK_ALIGNMENT,
+  pattern GL_UNPACK_IMAGE_HEIGHT,
+  pattern GL_UNPACK_LSB_FIRST,
+  pattern GL_UNPACK_ROW_LENGTH,
+  pattern GL_UNPACK_SKIP_IMAGES,
+  pattern GL_UNPACK_SKIP_PIXELS,
+  pattern GL_UNPACK_SKIP_ROWS,
+  pattern GL_UNPACK_SWAP_BYTES,
+  pattern GL_UNSIGNALED,
+  pattern GL_UNSIGNED_BYTE,
+  pattern GL_UNSIGNED_BYTE_2_3_3_REV,
+  pattern GL_UNSIGNED_BYTE_3_3_2,
+  pattern GL_UNSIGNED_INT,
+  pattern GL_UNSIGNED_INT_10F_11F_11F_REV,
+  pattern GL_UNSIGNED_INT_10_10_10_2,
+  pattern GL_UNSIGNED_INT_24_8,
+  pattern GL_UNSIGNED_INT_2_10_10_10_REV,
+  pattern GL_UNSIGNED_INT_5_9_9_9_REV,
+  pattern GL_UNSIGNED_INT_8_8_8_8,
+  pattern GL_UNSIGNED_INT_8_8_8_8_REV,
+  pattern GL_UNSIGNED_INT_SAMPLER_1D,
+  pattern GL_UNSIGNED_INT_SAMPLER_1D_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_RECT,
+  pattern GL_UNSIGNED_INT_SAMPLER_3D,
+  pattern GL_UNSIGNED_INT_SAMPLER_BUFFER,
+  pattern GL_UNSIGNED_INT_SAMPLER_CUBE,
+  pattern GL_UNSIGNED_INT_VEC2,
+  pattern GL_UNSIGNED_INT_VEC3,
+  pattern GL_UNSIGNED_INT_VEC4,
+  pattern GL_UNSIGNED_NORMALIZED,
+  pattern GL_UNSIGNED_SHORT,
+  pattern GL_UNSIGNED_SHORT_1_5_5_5_REV,
+  pattern GL_UNSIGNED_SHORT_4_4_4_4,
+  pattern GL_UNSIGNED_SHORT_4_4_4_4_REV,
+  pattern GL_UNSIGNED_SHORT_5_5_5_1,
+  pattern GL_UNSIGNED_SHORT_5_6_5,
+  pattern GL_UNSIGNED_SHORT_5_6_5_REV,
+  pattern GL_UPPER_LEFT,
+  pattern GL_V2F,
+  pattern GL_V3F,
+  pattern GL_VALIDATE_STATUS,
+  pattern GL_VENDOR,
+  pattern GL_VERSION,
+  pattern GL_VERTEX_ARRAY,
+  pattern GL_VERTEX_ARRAY_BINDING,
+  pattern GL_VERTEX_ARRAY_BUFFER_BINDING,
+  pattern GL_VERTEX_ARRAY_POINTER,
+  pattern GL_VERTEX_ARRAY_SIZE,
+  pattern GL_VERTEX_ARRAY_STRIDE,
+  pattern GL_VERTEX_ARRAY_TYPE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING,
+  pattern GL_VERTEX_ATTRIB_ARRAY_ENABLED,
+  pattern GL_VERTEX_ATTRIB_ARRAY_INTEGER,
+  pattern GL_VERTEX_ATTRIB_ARRAY_NORMALIZED,
+  pattern GL_VERTEX_ATTRIB_ARRAY_POINTER,
+  pattern GL_VERTEX_ATTRIB_ARRAY_SIZE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_STRIDE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_TYPE,
+  pattern GL_VERTEX_PROGRAM_POINT_SIZE,
+  pattern GL_VERTEX_PROGRAM_TWO_SIDE,
+  pattern GL_VERTEX_SHADER,
+  pattern GL_VIEWPORT,
+  pattern GL_VIEWPORT_BIT,
+  pattern GL_WAIT_FAILED,
+  pattern GL_WEIGHT_ARRAY_BUFFER_BINDING,
+  pattern GL_WRITE_ONLY,
+  pattern GL_XOR,
+  pattern GL_ZERO,
+  pattern GL_ZOOM_X,
+  pattern GL_ZOOM_Y,
+  -- * Functions
+  glAccum,
+  glActiveTexture,
+  glAlphaFunc,
+  glAreTexturesResident,
+  glArrayElement,
+  glAttachShader,
+  glBegin,
+  glBeginConditionalRender,
+  glBeginQuery,
+  glBeginTransformFeedback,
+  glBindAttribLocation,
+  glBindBuffer,
+  glBindBufferBase,
+  glBindBufferRange,
+  glBindFragDataLocation,
+  glBindFramebuffer,
+  glBindRenderbuffer,
+  glBindTexture,
+  glBindVertexArray,
+  glBitmap,
+  glBlendColor,
+  glBlendEquation,
+  glBlendEquationSeparate,
+  glBlendFunc,
+  glBlendFuncSeparate,
+  glBlitFramebuffer,
+  glBufferData,
+  glBufferSubData,
+  glCallList,
+  glCallLists,
+  glCheckFramebufferStatus,
+  glClampColor,
+  glClear,
+  glClearAccum,
+  glClearBufferfi,
+  glClearBufferfv,
+  glClearBufferiv,
+  glClearBufferuiv,
+  glClearColor,
+  glClearDepth,
+  glClearIndex,
+  glClearStencil,
+  glClientActiveTexture,
+  glClientWaitSync,
+  glClipPlane,
+  glColor3b,
+  glColor3bv,
+  glColor3d,
+  glColor3dv,
+  glColor3f,
+  glColor3fv,
+  glColor3i,
+  glColor3iv,
+  glColor3s,
+  glColor3sv,
+  glColor3ub,
+  glColor3ubv,
+  glColor3ui,
+  glColor3uiv,
+  glColor3us,
+  glColor3usv,
+  glColor4b,
+  glColor4bv,
+  glColor4d,
+  glColor4dv,
+  glColor4f,
+  glColor4fv,
+  glColor4i,
+  glColor4iv,
+  glColor4s,
+  glColor4sv,
+  glColor4ub,
+  glColor4ubv,
+  glColor4ui,
+  glColor4uiv,
+  glColor4us,
+  glColor4usv,
+  glColorMask,
+  glColorMaski,
+  glColorMaterial,
+  glColorPointer,
+  glCompileShader,
+  glCompressedTexImage1D,
+  glCompressedTexImage2D,
+  glCompressedTexImage3D,
+  glCompressedTexSubImage1D,
+  glCompressedTexSubImage2D,
+  glCompressedTexSubImage3D,
+  glCopyBufferSubData,
+  glCopyPixels,
+  glCopyTexImage1D,
+  glCopyTexImage2D,
+  glCopyTexSubImage1D,
+  glCopyTexSubImage2D,
+  glCopyTexSubImage3D,
+  glCreateProgram,
+  glCreateShader,
+  glCullFace,
+  glDeleteBuffers,
+  glDeleteFramebuffers,
+  glDeleteLists,
+  glDeleteProgram,
+  glDeleteQueries,
+  glDeleteRenderbuffers,
+  glDeleteShader,
+  glDeleteSync,
+  glDeleteTextures,
+  glDeleteVertexArrays,
+  glDepthFunc,
+  glDepthMask,
+  glDepthRange,
+  glDetachShader,
+  glDisable,
+  glDisableClientState,
+  glDisableVertexAttribArray,
+  glDisablei,
+  glDrawArrays,
+  glDrawArraysInstanced,
+  glDrawBuffer,
+  glDrawBuffers,
+  glDrawElements,
+  glDrawElementsBaseVertex,
+  glDrawElementsInstanced,
+  glDrawElementsInstancedBaseVertex,
+  glDrawPixels,
+  glDrawRangeElements,
+  glDrawRangeElementsBaseVertex,
+  glEdgeFlag,
+  glEdgeFlagPointer,
+  glEdgeFlagv,
+  glEnable,
+  glEnableClientState,
+  glEnableVertexAttribArray,
+  glEnablei,
+  glEnd,
+  glEndConditionalRender,
+  glEndList,
+  glEndQuery,
+  glEndTransformFeedback,
+  glEvalCoord1d,
+  glEvalCoord1dv,
+  glEvalCoord1f,
+  glEvalCoord1fv,
+  glEvalCoord2d,
+  glEvalCoord2dv,
+  glEvalCoord2f,
+  glEvalCoord2fv,
+  glEvalMesh1,
+  glEvalMesh2,
+  glEvalPoint1,
+  glEvalPoint2,
+  glFeedbackBuffer,
+  glFenceSync,
+  glFinish,
+  glFlush,
+  glFlushMappedBufferRange,
+  glFogCoordPointer,
+  glFogCoordd,
+  glFogCoorddv,
+  glFogCoordf,
+  glFogCoordfv,
+  glFogf,
+  glFogfv,
+  glFogi,
+  glFogiv,
+  glFramebufferRenderbuffer,
+  glFramebufferTexture,
+  glFramebufferTexture1D,
+  glFramebufferTexture2D,
+  glFramebufferTexture3D,
+  glFramebufferTextureLayer,
+  glFrontFace,
+  glFrustum,
+  glGenBuffers,
+  glGenFramebuffers,
+  glGenLists,
+  glGenQueries,
+  glGenRenderbuffers,
+  glGenTextures,
+  glGenVertexArrays,
+  glGenerateMipmap,
+  glGetActiveAttrib,
+  glGetActiveUniform,
+  glGetActiveUniformBlockName,
+  glGetActiveUniformBlockiv,
+  glGetActiveUniformName,
+  glGetActiveUniformsiv,
+  glGetAttachedShaders,
+  glGetAttribLocation,
+  glGetBooleani_v,
+  glGetBooleanv,
+  glGetBufferParameteri64v,
+  glGetBufferParameteriv,
+  glGetBufferPointerv,
+  glGetBufferSubData,
+  glGetClipPlane,
+  glGetCompressedTexImage,
+  glGetDoublev,
+  glGetError,
+  glGetFloatv,
+  glGetFragDataLocation,
+  glGetFramebufferAttachmentParameteriv,
+  glGetInteger64i_v,
+  glGetInteger64v,
+  glGetIntegeri_v,
+  glGetIntegerv,
+  glGetLightfv,
+  glGetLightiv,
+  glGetMapdv,
+  glGetMapfv,
+  glGetMapiv,
+  glGetMaterialfv,
+  glGetMaterialiv,
+  glGetMultisamplefv,
+  glGetPixelMapfv,
+  glGetPixelMapuiv,
+  glGetPixelMapusv,
+  glGetPointerv,
+  glGetPolygonStipple,
+  glGetProgramInfoLog,
+  glGetProgramiv,
+  glGetQueryObjectiv,
+  glGetQueryObjectuiv,
+  glGetQueryiv,
+  glGetRenderbufferParameteriv,
+  glGetShaderInfoLog,
+  glGetShaderSource,
+  glGetShaderiv,
+  glGetString,
+  glGetStringi,
+  glGetSynciv,
+  glGetTexEnvfv,
+  glGetTexEnviv,
+  glGetTexGendv,
+  glGetTexGenfv,
+  glGetTexGeniv,
+  glGetTexImage,
+  glGetTexLevelParameterfv,
+  glGetTexLevelParameteriv,
+  glGetTexParameterIiv,
+  glGetTexParameterIuiv,
+  glGetTexParameterfv,
+  glGetTexParameteriv,
+  glGetTransformFeedbackVarying,
+  glGetUniformBlockIndex,
+  glGetUniformIndices,
+  glGetUniformLocation,
+  glGetUniformfv,
+  glGetUniformiv,
+  glGetUniformuiv,
+  glGetVertexAttribIiv,
+  glGetVertexAttribIuiv,
+  glGetVertexAttribPointerv,
+  glGetVertexAttribdv,
+  glGetVertexAttribfv,
+  glGetVertexAttribiv,
+  glHint,
+  glIndexMask,
+  glIndexPointer,
+  glIndexd,
+  glIndexdv,
+  glIndexf,
+  glIndexfv,
+  glIndexi,
+  glIndexiv,
+  glIndexs,
+  glIndexsv,
+  glIndexub,
+  glIndexubv,
+  glInitNames,
+  glInterleavedArrays,
+  glIsBuffer,
+  glIsEnabled,
+  glIsEnabledi,
+  glIsFramebuffer,
+  glIsList,
+  glIsProgram,
+  glIsQuery,
+  glIsRenderbuffer,
+  glIsShader,
+  glIsSync,
+  glIsTexture,
+  glIsVertexArray,
+  glLightModelf,
+  glLightModelfv,
+  glLightModeli,
+  glLightModeliv,
+  glLightf,
+  glLightfv,
+  glLighti,
+  glLightiv,
+  glLineStipple,
+  glLineWidth,
+  glLinkProgram,
+  glListBase,
+  glLoadIdentity,
+  glLoadMatrixd,
+  glLoadMatrixf,
+  glLoadName,
+  glLoadTransposeMatrixd,
+  glLoadTransposeMatrixf,
+  glLogicOp,
+  glMap1d,
+  glMap1f,
+  glMap2d,
+  glMap2f,
+  glMapBuffer,
+  glMapBufferRange,
+  glMapGrid1d,
+  glMapGrid1f,
+  glMapGrid2d,
+  glMapGrid2f,
+  glMaterialf,
+  glMaterialfv,
+  glMateriali,
+  glMaterialiv,
+  glMatrixMode,
+  glMultMatrixd,
+  glMultMatrixf,
+  glMultTransposeMatrixd,
+  glMultTransposeMatrixf,
+  glMultiDrawArrays,
+  glMultiDrawElements,
+  glMultiDrawElementsBaseVertex,
+  glMultiTexCoord1d,
+  glMultiTexCoord1dv,
+  glMultiTexCoord1f,
+  glMultiTexCoord1fv,
+  glMultiTexCoord1i,
+  glMultiTexCoord1iv,
+  glMultiTexCoord1s,
+  glMultiTexCoord1sv,
+  glMultiTexCoord2d,
+  glMultiTexCoord2dv,
+  glMultiTexCoord2f,
+  glMultiTexCoord2fv,
+  glMultiTexCoord2i,
+  glMultiTexCoord2iv,
+  glMultiTexCoord2s,
+  glMultiTexCoord2sv,
+  glMultiTexCoord3d,
+  glMultiTexCoord3dv,
+  glMultiTexCoord3f,
+  glMultiTexCoord3fv,
+  glMultiTexCoord3i,
+  glMultiTexCoord3iv,
+  glMultiTexCoord3s,
+  glMultiTexCoord3sv,
+  glMultiTexCoord4d,
+  glMultiTexCoord4dv,
+  glMultiTexCoord4f,
+  glMultiTexCoord4fv,
+  glMultiTexCoord4i,
+  glMultiTexCoord4iv,
+  glMultiTexCoord4s,
+  glMultiTexCoord4sv,
+  glNewList,
+  glNormal3b,
+  glNormal3bv,
+  glNormal3d,
+  glNormal3dv,
+  glNormal3f,
+  glNormal3fv,
+  glNormal3i,
+  glNormal3iv,
+  glNormal3s,
+  glNormal3sv,
+  glNormalPointer,
+  glOrtho,
+  glPassThrough,
+  glPixelMapfv,
+  glPixelMapuiv,
+  glPixelMapusv,
+  glPixelStoref,
+  glPixelStorei,
+  glPixelTransferf,
+  glPixelTransferi,
+  glPixelZoom,
+  glPointParameterf,
+  glPointParameterfv,
+  glPointParameteri,
+  glPointParameteriv,
+  glPointSize,
+  glPolygonMode,
+  glPolygonOffset,
+  glPolygonStipple,
+  glPopAttrib,
+  glPopClientAttrib,
+  glPopMatrix,
+  glPopName,
+  glPrimitiveRestartIndex,
+  glPrioritizeTextures,
+  glProvokingVertex,
+  glPushAttrib,
+  glPushClientAttrib,
+  glPushMatrix,
+  glPushName,
+  glRasterPos2d,
+  glRasterPos2dv,
+  glRasterPos2f,
+  glRasterPos2fv,
+  glRasterPos2i,
+  glRasterPos2iv,
+  glRasterPos2s,
+  glRasterPos2sv,
+  glRasterPos3d,
+  glRasterPos3dv,
+  glRasterPos3f,
+  glRasterPos3fv,
+  glRasterPos3i,
+  glRasterPos3iv,
+  glRasterPos3s,
+  glRasterPos3sv,
+  glRasterPos4d,
+  glRasterPos4dv,
+  glRasterPos4f,
+  glRasterPos4fv,
+  glRasterPos4i,
+  glRasterPos4iv,
+  glRasterPos4s,
+  glRasterPos4sv,
+  glReadBuffer,
+  glReadPixels,
+  glRectd,
+  glRectdv,
+  glRectf,
+  glRectfv,
+  glRecti,
+  glRectiv,
+  glRects,
+  glRectsv,
+  glRenderMode,
+  glRenderbufferStorage,
+  glRenderbufferStorageMultisample,
+  glRotated,
+  glRotatef,
+  glSampleCoverage,
+  glSampleMaski,
+  glScaled,
+  glScalef,
+  glScissor,
+  glSecondaryColor3b,
+  glSecondaryColor3bv,
+  glSecondaryColor3d,
+  glSecondaryColor3dv,
+  glSecondaryColor3f,
+  glSecondaryColor3fv,
+  glSecondaryColor3i,
+  glSecondaryColor3iv,
+  glSecondaryColor3s,
+  glSecondaryColor3sv,
+  glSecondaryColor3ub,
+  glSecondaryColor3ubv,
+  glSecondaryColor3ui,
+  glSecondaryColor3uiv,
+  glSecondaryColor3us,
+  glSecondaryColor3usv,
+  glSecondaryColorPointer,
+  glSelectBuffer,
+  glShadeModel,
+  glShaderSource,
+  glStencilFunc,
+  glStencilFuncSeparate,
+  glStencilMask,
+  glStencilMaskSeparate,
+  glStencilOp,
+  glStencilOpSeparate,
+  glTexBuffer,
+  glTexCoord1d,
+  glTexCoord1dv,
+  glTexCoord1f,
+  glTexCoord1fv,
+  glTexCoord1i,
+  glTexCoord1iv,
+  glTexCoord1s,
+  glTexCoord1sv,
+  glTexCoord2d,
+  glTexCoord2dv,
+  glTexCoord2f,
+  glTexCoord2fv,
+  glTexCoord2i,
+  glTexCoord2iv,
+  glTexCoord2s,
+  glTexCoord2sv,
+  glTexCoord3d,
+  glTexCoord3dv,
+  glTexCoord3f,
+  glTexCoord3fv,
+  glTexCoord3i,
+  glTexCoord3iv,
+  glTexCoord3s,
+  glTexCoord3sv,
+  glTexCoord4d,
+  glTexCoord4dv,
+  glTexCoord4f,
+  glTexCoord4fv,
+  glTexCoord4i,
+  glTexCoord4iv,
+  glTexCoord4s,
+  glTexCoord4sv,
+  glTexCoordPointer,
+  glTexEnvf,
+  glTexEnvfv,
+  glTexEnvi,
+  glTexEnviv,
+  glTexGend,
+  glTexGendv,
+  glTexGenf,
+  glTexGenfv,
+  glTexGeni,
+  glTexGeniv,
+  glTexImage1D,
+  glTexImage2D,
+  glTexImage2DMultisample,
+  glTexImage3D,
+  glTexImage3DMultisample,
+  glTexParameterIiv,
+  glTexParameterIuiv,
+  glTexParameterf,
+  glTexParameterfv,
+  glTexParameteri,
+  glTexParameteriv,
+  glTexSubImage1D,
+  glTexSubImage2D,
+  glTexSubImage3D,
+  glTransformFeedbackVaryings,
+  glTranslated,
+  glTranslatef,
+  glUniform1f,
+  glUniform1fv,
+  glUniform1i,
+  glUniform1iv,
+  glUniform1ui,
+  glUniform1uiv,
+  glUniform2f,
+  glUniform2fv,
+  glUniform2i,
+  glUniform2iv,
+  glUniform2ui,
+  glUniform2uiv,
+  glUniform3f,
+  glUniform3fv,
+  glUniform3i,
+  glUniform3iv,
+  glUniform3ui,
+  glUniform3uiv,
+  glUniform4f,
+  glUniform4fv,
+  glUniform4i,
+  glUniform4iv,
+  glUniform4ui,
+  glUniform4uiv,
+  glUniformBlockBinding,
+  glUniformMatrix2fv,
+  glUniformMatrix2x3fv,
+  glUniformMatrix2x4fv,
+  glUniformMatrix3fv,
+  glUniformMatrix3x2fv,
+  glUniformMatrix3x4fv,
+  glUniformMatrix4fv,
+  glUniformMatrix4x2fv,
+  glUniformMatrix4x3fv,
+  glUnmapBuffer,
+  glUseProgram,
+  glValidateProgram,
+  glVertex2d,
+  glVertex2dv,
+  glVertex2f,
+  glVertex2fv,
+  glVertex2i,
+  glVertex2iv,
+  glVertex2s,
+  glVertex2sv,
+  glVertex3d,
+  glVertex3dv,
+  glVertex3f,
+  glVertex3fv,
+  glVertex3i,
+  glVertex3iv,
+  glVertex3s,
+  glVertex3sv,
+  glVertex4d,
+  glVertex4dv,
+  glVertex4f,
+  glVertex4fv,
+  glVertex4i,
+  glVertex4iv,
+  glVertex4s,
+  glVertex4sv,
+  glVertexAttrib1d,
+  glVertexAttrib1dv,
+  glVertexAttrib1f,
+  glVertexAttrib1fv,
+  glVertexAttrib1s,
+  glVertexAttrib1sv,
+  glVertexAttrib2d,
+  glVertexAttrib2dv,
+  glVertexAttrib2f,
+  glVertexAttrib2fv,
+  glVertexAttrib2s,
+  glVertexAttrib2sv,
+  glVertexAttrib3d,
+  glVertexAttrib3dv,
+  glVertexAttrib3f,
+  glVertexAttrib3fv,
+  glVertexAttrib3s,
+  glVertexAttrib3sv,
+  glVertexAttrib4Nbv,
+  glVertexAttrib4Niv,
+  glVertexAttrib4Nsv,
+  glVertexAttrib4Nub,
+  glVertexAttrib4Nubv,
+  glVertexAttrib4Nuiv,
+  glVertexAttrib4Nusv,
+  glVertexAttrib4bv,
+  glVertexAttrib4d,
+  glVertexAttrib4dv,
+  glVertexAttrib4f,
+  glVertexAttrib4fv,
+  glVertexAttrib4iv,
+  glVertexAttrib4s,
+  glVertexAttrib4sv,
+  glVertexAttrib4ubv,
+  glVertexAttrib4uiv,
+  glVertexAttrib4usv,
+  glVertexAttribI1i,
+  glVertexAttribI1iv,
+  glVertexAttribI1ui,
+  glVertexAttribI1uiv,
+  glVertexAttribI2i,
+  glVertexAttribI2iv,
+  glVertexAttribI2ui,
+  glVertexAttribI2uiv,
+  glVertexAttribI3i,
+  glVertexAttribI3iv,
+  glVertexAttribI3ui,
+  glVertexAttribI3uiv,
+  glVertexAttribI4bv,
+  glVertexAttribI4i,
+  glVertexAttribI4iv,
+  glVertexAttribI4sv,
+  glVertexAttribI4ubv,
+  glVertexAttribI4ui,
+  glVertexAttribI4uiv,
+  glVertexAttribI4usv,
+  glVertexAttribIPointer,
+  glVertexAttribPointer,
+  glVertexPointer,
+  glViewport,
+  glWaitSync,
+  glWindowPos2d,
+  glWindowPos2dv,
+  glWindowPos2f,
+  glWindowPos2fv,
+  glWindowPos2i,
+  glWindowPos2iv,
+  glWindowPos2s,
+  glWindowPos2sv,
+  glWindowPos3d,
+  glWindowPos3dv,
+  glWindowPos3f,
+  glWindowPos3fv,
+  glWindowPos3i,
+  glWindowPos3iv,
+  glWindowPos3s,
+  glWindowPos3sv
+) where
+
+import Graphics.GL.Types
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/Compatibility33.hs b/src/Graphics/GL/Compatibility33.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Compatibility33.hs
@@ -0,0 +1,2018 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Compatibility33
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Compatibility33 (
+  -- * Types
+  GLbitfield,
+  GLboolean,
+  GLbyte,
+  GLchar,
+  GLclampd,
+  GLclampf,
+  GLdouble,
+  GLenum,
+  GLfloat,
+  GLhalf,
+  GLint,
+  GLint64,
+  GLintptr,
+  GLshort,
+  GLsizei,
+  GLsizeiptr,
+  GLsync,
+  GLubyte,
+  GLuint,
+  GLuint64,
+  GLushort,
+  GLvoid,
+  -- * Enums
+  pattern GL_2D,
+  pattern GL_2_BYTES,
+  pattern GL_3D,
+  pattern GL_3D_COLOR,
+  pattern GL_3D_COLOR_TEXTURE,
+  pattern GL_3_BYTES,
+  pattern GL_4D_COLOR_TEXTURE,
+  pattern GL_4_BYTES,
+  pattern GL_ACCUM,
+  pattern GL_ACCUM_ALPHA_BITS,
+  pattern GL_ACCUM_BLUE_BITS,
+  pattern GL_ACCUM_BUFFER_BIT,
+  pattern GL_ACCUM_CLEAR_VALUE,
+  pattern GL_ACCUM_GREEN_BITS,
+  pattern GL_ACCUM_RED_BITS,
+  pattern GL_ACTIVE_ATTRIBUTES,
+  pattern GL_ACTIVE_ATTRIBUTE_MAX_LENGTH,
+  pattern GL_ACTIVE_TEXTURE,
+  pattern GL_ACTIVE_UNIFORMS,
+  pattern GL_ACTIVE_UNIFORM_BLOCKS,
+  pattern GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH,
+  pattern GL_ACTIVE_UNIFORM_MAX_LENGTH,
+  pattern GL_ADD,
+  pattern GL_ADD_SIGNED,
+  pattern GL_ALIASED_LINE_WIDTH_RANGE,
+  pattern GL_ALIASED_POINT_SIZE_RANGE,
+  pattern GL_ALL_ATTRIB_BITS,
+  pattern GL_ALPHA,
+  pattern GL_ALPHA12,
+  pattern GL_ALPHA16,
+  pattern GL_ALPHA4,
+  pattern GL_ALPHA8,
+  pattern GL_ALPHA_BIAS,
+  pattern GL_ALPHA_BITS,
+  pattern GL_ALPHA_INTEGER,
+  pattern GL_ALPHA_SCALE,
+  pattern GL_ALPHA_TEST,
+  pattern GL_ALPHA_TEST_FUNC,
+  pattern GL_ALPHA_TEST_REF,
+  pattern GL_ALREADY_SIGNALED,
+  pattern GL_ALWAYS,
+  pattern GL_AMBIENT,
+  pattern GL_AMBIENT_AND_DIFFUSE,
+  pattern GL_AND,
+  pattern GL_AND_INVERTED,
+  pattern GL_AND_REVERSE,
+  pattern GL_ANY_SAMPLES_PASSED,
+  pattern GL_ARRAY_BUFFER,
+  pattern GL_ARRAY_BUFFER_BINDING,
+  pattern GL_ATTACHED_SHADERS,
+  pattern GL_ATTRIB_STACK_DEPTH,
+  pattern GL_AUTO_NORMAL,
+  pattern GL_AUX0,
+  pattern GL_AUX1,
+  pattern GL_AUX2,
+  pattern GL_AUX3,
+  pattern GL_AUX_BUFFERS,
+  pattern GL_BACK,
+  pattern GL_BACK_LEFT,
+  pattern GL_BACK_RIGHT,
+  pattern GL_BGR,
+  pattern GL_BGRA,
+  pattern GL_BGRA_INTEGER,
+  pattern GL_BGR_INTEGER,
+  pattern GL_BITMAP,
+  pattern GL_BITMAP_TOKEN,
+  pattern GL_BLEND,
+  pattern GL_BLEND_COLOR,
+  pattern GL_BLEND_DST,
+  pattern GL_BLEND_DST_ALPHA,
+  pattern GL_BLEND_DST_RGB,
+  pattern GL_BLEND_EQUATION,
+  pattern GL_BLEND_EQUATION_ALPHA,
+  pattern GL_BLEND_EQUATION_RGB,
+  pattern GL_BLEND_SRC,
+  pattern GL_BLEND_SRC_ALPHA,
+  pattern GL_BLEND_SRC_RGB,
+  pattern GL_BLUE,
+  pattern GL_BLUE_BIAS,
+  pattern GL_BLUE_BITS,
+  pattern GL_BLUE_INTEGER,
+  pattern GL_BLUE_SCALE,
+  pattern GL_BOOL,
+  pattern GL_BOOL_VEC2,
+  pattern GL_BOOL_VEC3,
+  pattern GL_BOOL_VEC4,
+  pattern GL_BUFFER_ACCESS,
+  pattern GL_BUFFER_ACCESS_FLAGS,
+  pattern GL_BUFFER_MAPPED,
+  pattern GL_BUFFER_MAP_LENGTH,
+  pattern GL_BUFFER_MAP_OFFSET,
+  pattern GL_BUFFER_MAP_POINTER,
+  pattern GL_BUFFER_SIZE,
+  pattern GL_BUFFER_USAGE,
+  pattern GL_BYTE,
+  pattern GL_C3F_V3F,
+  pattern GL_C4F_N3F_V3F,
+  pattern GL_C4UB_V2F,
+  pattern GL_C4UB_V3F,
+  pattern GL_CCW,
+  pattern GL_CLAMP,
+  pattern GL_CLAMP_FRAGMENT_COLOR,
+  pattern GL_CLAMP_READ_COLOR,
+  pattern GL_CLAMP_TO_BORDER,
+  pattern GL_CLAMP_TO_EDGE,
+  pattern GL_CLAMP_VERTEX_COLOR,
+  pattern GL_CLEAR,
+  pattern GL_CLIENT_ACTIVE_TEXTURE,
+  pattern GL_CLIENT_ALL_ATTRIB_BITS,
+  pattern GL_CLIENT_ATTRIB_STACK_DEPTH,
+  pattern GL_CLIENT_PIXEL_STORE_BIT,
+  pattern GL_CLIENT_VERTEX_ARRAY_BIT,
+  pattern GL_CLIP_DISTANCE0,
+  pattern GL_CLIP_DISTANCE1,
+  pattern GL_CLIP_DISTANCE2,
+  pattern GL_CLIP_DISTANCE3,
+  pattern GL_CLIP_DISTANCE4,
+  pattern GL_CLIP_DISTANCE5,
+  pattern GL_CLIP_DISTANCE6,
+  pattern GL_CLIP_DISTANCE7,
+  pattern GL_CLIP_PLANE0,
+  pattern GL_CLIP_PLANE1,
+  pattern GL_CLIP_PLANE2,
+  pattern GL_CLIP_PLANE3,
+  pattern GL_CLIP_PLANE4,
+  pattern GL_CLIP_PLANE5,
+  pattern GL_COEFF,
+  pattern GL_COLOR,
+  pattern GL_COLOR_ARRAY,
+  pattern GL_COLOR_ARRAY_BUFFER_BINDING,
+  pattern GL_COLOR_ARRAY_POINTER,
+  pattern GL_COLOR_ARRAY_SIZE,
+  pattern GL_COLOR_ARRAY_STRIDE,
+  pattern GL_COLOR_ARRAY_TYPE,
+  pattern GL_COLOR_ATTACHMENT0,
+  pattern GL_COLOR_ATTACHMENT1,
+  pattern GL_COLOR_ATTACHMENT10,
+  pattern GL_COLOR_ATTACHMENT11,
+  pattern GL_COLOR_ATTACHMENT12,
+  pattern GL_COLOR_ATTACHMENT13,
+  pattern GL_COLOR_ATTACHMENT14,
+  pattern GL_COLOR_ATTACHMENT15,
+  pattern GL_COLOR_ATTACHMENT16,
+  pattern GL_COLOR_ATTACHMENT17,
+  pattern GL_COLOR_ATTACHMENT18,
+  pattern GL_COLOR_ATTACHMENT19,
+  pattern GL_COLOR_ATTACHMENT2,
+  pattern GL_COLOR_ATTACHMENT20,
+  pattern GL_COLOR_ATTACHMENT21,
+  pattern GL_COLOR_ATTACHMENT22,
+  pattern GL_COLOR_ATTACHMENT23,
+  pattern GL_COLOR_ATTACHMENT24,
+  pattern GL_COLOR_ATTACHMENT25,
+  pattern GL_COLOR_ATTACHMENT26,
+  pattern GL_COLOR_ATTACHMENT27,
+  pattern GL_COLOR_ATTACHMENT28,
+  pattern GL_COLOR_ATTACHMENT29,
+  pattern GL_COLOR_ATTACHMENT3,
+  pattern GL_COLOR_ATTACHMENT30,
+  pattern GL_COLOR_ATTACHMENT31,
+  pattern GL_COLOR_ATTACHMENT4,
+  pattern GL_COLOR_ATTACHMENT5,
+  pattern GL_COLOR_ATTACHMENT6,
+  pattern GL_COLOR_ATTACHMENT7,
+  pattern GL_COLOR_ATTACHMENT8,
+  pattern GL_COLOR_ATTACHMENT9,
+  pattern GL_COLOR_BUFFER_BIT,
+  pattern GL_COLOR_CLEAR_VALUE,
+  pattern GL_COLOR_INDEX,
+  pattern GL_COLOR_INDEXES,
+  pattern GL_COLOR_LOGIC_OP,
+  pattern GL_COLOR_MATERIAL,
+  pattern GL_COLOR_MATERIAL_FACE,
+  pattern GL_COLOR_MATERIAL_PARAMETER,
+  pattern GL_COLOR_SUM,
+  pattern GL_COLOR_WRITEMASK,
+  pattern GL_COMBINE,
+  pattern GL_COMBINE_ALPHA,
+  pattern GL_COMBINE_RGB,
+  pattern GL_COMPARE_REF_TO_TEXTURE,
+  pattern GL_COMPARE_R_TO_TEXTURE,
+  pattern GL_COMPILE,
+  pattern GL_COMPILE_AND_EXECUTE,
+  pattern GL_COMPILE_STATUS,
+  pattern GL_COMPRESSED_ALPHA,
+  pattern GL_COMPRESSED_INTENSITY,
+  pattern GL_COMPRESSED_LUMINANCE,
+  pattern GL_COMPRESSED_LUMINANCE_ALPHA,
+  pattern GL_COMPRESSED_RED,
+  pattern GL_COMPRESSED_RED_RGTC1,
+  pattern GL_COMPRESSED_RG,
+  pattern GL_COMPRESSED_RGB,
+  pattern GL_COMPRESSED_RGBA,
+  pattern GL_COMPRESSED_RG_RGTC2,
+  pattern GL_COMPRESSED_SIGNED_RED_RGTC1,
+  pattern GL_COMPRESSED_SIGNED_RG_RGTC2,
+  pattern GL_COMPRESSED_SLUMINANCE,
+  pattern GL_COMPRESSED_SLUMINANCE_ALPHA,
+  pattern GL_COMPRESSED_SRGB,
+  pattern GL_COMPRESSED_SRGB_ALPHA,
+  pattern GL_COMPRESSED_TEXTURE_FORMATS,
+  pattern GL_CONDITION_SATISFIED,
+  pattern GL_CONSTANT,
+  pattern GL_CONSTANT_ALPHA,
+  pattern GL_CONSTANT_ATTENUATION,
+  pattern GL_CONSTANT_COLOR,
+  pattern GL_CONTEXT_COMPATIBILITY_PROFILE_BIT,
+  pattern GL_CONTEXT_CORE_PROFILE_BIT,
+  pattern GL_CONTEXT_FLAGS,
+  pattern GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT,
+  pattern GL_CONTEXT_PROFILE_MASK,
+  pattern GL_COORD_REPLACE,
+  pattern GL_COPY,
+  pattern GL_COPY_INVERTED,
+  pattern GL_COPY_PIXEL_TOKEN,
+  pattern GL_COPY_READ_BUFFER,
+  pattern GL_COPY_WRITE_BUFFER,
+  pattern GL_CULL_FACE,
+  pattern GL_CULL_FACE_MODE,
+  pattern GL_CURRENT_BIT,
+  pattern GL_CURRENT_COLOR,
+  pattern GL_CURRENT_FOG_COORD,
+  pattern GL_CURRENT_FOG_COORDINATE,
+  pattern GL_CURRENT_INDEX,
+  pattern GL_CURRENT_NORMAL,
+  pattern GL_CURRENT_PROGRAM,
+  pattern GL_CURRENT_QUERY,
+  pattern GL_CURRENT_RASTER_COLOR,
+  pattern GL_CURRENT_RASTER_DISTANCE,
+  pattern GL_CURRENT_RASTER_INDEX,
+  pattern GL_CURRENT_RASTER_POSITION,
+  pattern GL_CURRENT_RASTER_POSITION_VALID,
+  pattern GL_CURRENT_RASTER_SECONDARY_COLOR,
+  pattern GL_CURRENT_RASTER_TEXTURE_COORDS,
+  pattern GL_CURRENT_SECONDARY_COLOR,
+  pattern GL_CURRENT_TEXTURE_COORDS,
+  pattern GL_CURRENT_VERTEX_ATTRIB,
+  pattern GL_CW,
+  pattern GL_DECAL,
+  pattern GL_DECR,
+  pattern GL_DECR_WRAP,
+  pattern GL_DELETE_STATUS,
+  pattern GL_DEPTH,
+  pattern GL_DEPTH24_STENCIL8,
+  pattern GL_DEPTH32F_STENCIL8,
+  pattern GL_DEPTH_ATTACHMENT,
+  pattern GL_DEPTH_BIAS,
+  pattern GL_DEPTH_BITS,
+  pattern GL_DEPTH_BUFFER_BIT,
+  pattern GL_DEPTH_CLAMP,
+  pattern GL_DEPTH_CLEAR_VALUE,
+  pattern GL_DEPTH_COMPONENT,
+  pattern GL_DEPTH_COMPONENT16,
+  pattern GL_DEPTH_COMPONENT24,
+  pattern GL_DEPTH_COMPONENT32,
+  pattern GL_DEPTH_COMPONENT32F,
+  pattern GL_DEPTH_FUNC,
+  pattern GL_DEPTH_RANGE,
+  pattern GL_DEPTH_SCALE,
+  pattern GL_DEPTH_STENCIL,
+  pattern GL_DEPTH_STENCIL_ATTACHMENT,
+  pattern GL_DEPTH_TEST,
+  pattern GL_DEPTH_TEXTURE_MODE,
+  pattern GL_DEPTH_WRITEMASK,
+  pattern GL_DIFFUSE,
+  pattern GL_DITHER,
+  pattern GL_DOMAIN,
+  pattern GL_DONT_CARE,
+  pattern GL_DOT3_RGB,
+  pattern GL_DOT3_RGBA,
+  pattern GL_DOUBLE,
+  pattern GL_DOUBLEBUFFER,
+  pattern GL_DRAW_BUFFER,
+  pattern GL_DRAW_BUFFER0,
+  pattern GL_DRAW_BUFFER1,
+  pattern GL_DRAW_BUFFER10,
+  pattern GL_DRAW_BUFFER11,
+  pattern GL_DRAW_BUFFER12,
+  pattern GL_DRAW_BUFFER13,
+  pattern GL_DRAW_BUFFER14,
+  pattern GL_DRAW_BUFFER15,
+  pattern GL_DRAW_BUFFER2,
+  pattern GL_DRAW_BUFFER3,
+  pattern GL_DRAW_BUFFER4,
+  pattern GL_DRAW_BUFFER5,
+  pattern GL_DRAW_BUFFER6,
+  pattern GL_DRAW_BUFFER7,
+  pattern GL_DRAW_BUFFER8,
+  pattern GL_DRAW_BUFFER9,
+  pattern GL_DRAW_FRAMEBUFFER,
+  pattern GL_DRAW_FRAMEBUFFER_BINDING,
+  pattern GL_DRAW_PIXEL_TOKEN,
+  pattern GL_DST_ALPHA,
+  pattern GL_DST_COLOR,
+  pattern GL_DYNAMIC_COPY,
+  pattern GL_DYNAMIC_DRAW,
+  pattern GL_DYNAMIC_READ,
+  pattern GL_EDGE_FLAG,
+  pattern GL_EDGE_FLAG_ARRAY,
+  pattern GL_EDGE_FLAG_ARRAY_BUFFER_BINDING,
+  pattern GL_EDGE_FLAG_ARRAY_POINTER,
+  pattern GL_EDGE_FLAG_ARRAY_STRIDE,
+  pattern GL_ELEMENT_ARRAY_BUFFER,
+  pattern GL_ELEMENT_ARRAY_BUFFER_BINDING,
+  pattern GL_EMISSION,
+  pattern GL_ENABLE_BIT,
+  pattern GL_EQUAL,
+  pattern GL_EQUIV,
+  pattern GL_EVAL_BIT,
+  pattern GL_EXP,
+  pattern GL_EXP2,
+  pattern GL_EXTENSIONS,
+  pattern GL_EYE_LINEAR,
+  pattern GL_EYE_PLANE,
+  pattern GL_FALSE,
+  pattern GL_FASTEST,
+  pattern GL_FEEDBACK,
+  pattern GL_FEEDBACK_BUFFER_POINTER,
+  pattern GL_FEEDBACK_BUFFER_SIZE,
+  pattern GL_FEEDBACK_BUFFER_TYPE,
+  pattern GL_FILL,
+  pattern GL_FIRST_VERTEX_CONVENTION,
+  pattern GL_FIXED_ONLY,
+  pattern GL_FLAT,
+  pattern GL_FLOAT,
+  pattern GL_FLOAT_32_UNSIGNED_INT_24_8_REV,
+  pattern GL_FLOAT_MAT2,
+  pattern GL_FLOAT_MAT2x3,
+  pattern GL_FLOAT_MAT2x4,
+  pattern GL_FLOAT_MAT3,
+  pattern GL_FLOAT_MAT3x2,
+  pattern GL_FLOAT_MAT3x4,
+  pattern GL_FLOAT_MAT4,
+  pattern GL_FLOAT_MAT4x2,
+  pattern GL_FLOAT_MAT4x3,
+  pattern GL_FLOAT_VEC2,
+  pattern GL_FLOAT_VEC3,
+  pattern GL_FLOAT_VEC4,
+  pattern GL_FOG,
+  pattern GL_FOG_BIT,
+  pattern GL_FOG_COLOR,
+  pattern GL_FOG_COORD,
+  pattern GL_FOG_COORDINATE,
+  pattern GL_FOG_COORDINATE_ARRAY,
+  pattern GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING,
+  pattern GL_FOG_COORDINATE_ARRAY_POINTER,
+  pattern GL_FOG_COORDINATE_ARRAY_STRIDE,
+  pattern GL_FOG_COORDINATE_ARRAY_TYPE,
+  pattern GL_FOG_COORDINATE_SOURCE,
+  pattern GL_FOG_COORD_ARRAY,
+  pattern GL_FOG_COORD_ARRAY_BUFFER_BINDING,
+  pattern GL_FOG_COORD_ARRAY_POINTER,
+  pattern GL_FOG_COORD_ARRAY_STRIDE,
+  pattern GL_FOG_COORD_ARRAY_TYPE,
+  pattern GL_FOG_COORD_SRC,
+  pattern GL_FOG_DENSITY,
+  pattern GL_FOG_END,
+  pattern GL_FOG_HINT,
+  pattern GL_FOG_INDEX,
+  pattern GL_FOG_MODE,
+  pattern GL_FOG_START,
+  pattern GL_FRAGMENT_DEPTH,
+  pattern GL_FRAGMENT_SHADER,
+  pattern GL_FRAGMENT_SHADER_DERIVATIVE_HINT,
+  pattern GL_FRAMEBUFFER,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL,
+  pattern GL_FRAMEBUFFER_BINDING,
+  pattern GL_FRAMEBUFFER_COMPLETE,
+  pattern GL_FRAMEBUFFER_DEFAULT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER,
+  pattern GL_FRAMEBUFFER_SRGB,
+  pattern GL_FRAMEBUFFER_UNDEFINED,
+  pattern GL_FRAMEBUFFER_UNSUPPORTED,
+  pattern GL_FRONT,
+  pattern GL_FRONT_AND_BACK,
+  pattern GL_FRONT_FACE,
+  pattern GL_FRONT_LEFT,
+  pattern GL_FRONT_RIGHT,
+  pattern GL_FUNC_ADD,
+  pattern GL_FUNC_REVERSE_SUBTRACT,
+  pattern GL_FUNC_SUBTRACT,
+  pattern GL_GENERATE_MIPMAP,
+  pattern GL_GENERATE_MIPMAP_HINT,
+  pattern GL_GEOMETRY_INPUT_TYPE,
+  pattern GL_GEOMETRY_OUTPUT_TYPE,
+  pattern GL_GEOMETRY_SHADER,
+  pattern GL_GEOMETRY_VERTICES_OUT,
+  pattern GL_GEQUAL,
+  pattern GL_GREATER,
+  pattern GL_GREEN,
+  pattern GL_GREEN_BIAS,
+  pattern GL_GREEN_BITS,
+  pattern GL_GREEN_INTEGER,
+  pattern GL_GREEN_SCALE,
+  pattern GL_HALF_FLOAT,
+  pattern GL_HINT_BIT,
+  pattern GL_INCR,
+  pattern GL_INCR_WRAP,
+  pattern GL_INDEX,
+  pattern GL_INDEX_ARRAY,
+  pattern GL_INDEX_ARRAY_BUFFER_BINDING,
+  pattern GL_INDEX_ARRAY_POINTER,
+  pattern GL_INDEX_ARRAY_STRIDE,
+  pattern GL_INDEX_ARRAY_TYPE,
+  pattern GL_INDEX_BITS,
+  pattern GL_INDEX_CLEAR_VALUE,
+  pattern GL_INDEX_LOGIC_OP,
+  pattern GL_INDEX_MODE,
+  pattern GL_INDEX_OFFSET,
+  pattern GL_INDEX_SHIFT,
+  pattern GL_INDEX_WRITEMASK,
+  pattern GL_INFO_LOG_LENGTH,
+  pattern GL_INT,
+  pattern GL_INTENSITY,
+  pattern GL_INTENSITY12,
+  pattern GL_INTENSITY16,
+  pattern GL_INTENSITY4,
+  pattern GL_INTENSITY8,
+  pattern GL_INTERLEAVED_ATTRIBS,
+  pattern GL_INTERPOLATE,
+  pattern GL_INT_2_10_10_10_REV,
+  pattern GL_INT_SAMPLER_1D,
+  pattern GL_INT_SAMPLER_1D_ARRAY,
+  pattern GL_INT_SAMPLER_2D,
+  pattern GL_INT_SAMPLER_2D_ARRAY,
+  pattern GL_INT_SAMPLER_2D_MULTISAMPLE,
+  pattern GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY,
+  pattern GL_INT_SAMPLER_2D_RECT,
+  pattern GL_INT_SAMPLER_3D,
+  pattern GL_INT_SAMPLER_BUFFER,
+  pattern GL_INT_SAMPLER_CUBE,
+  pattern GL_INT_VEC2,
+  pattern GL_INT_VEC3,
+  pattern GL_INT_VEC4,
+  pattern GL_INVALID_ENUM,
+  pattern GL_INVALID_FRAMEBUFFER_OPERATION,
+  pattern GL_INVALID_INDEX,
+  pattern GL_INVALID_OPERATION,
+  pattern GL_INVALID_VALUE,
+  pattern GL_INVERT,
+  pattern GL_KEEP,
+  pattern GL_LAST_VERTEX_CONVENTION,
+  pattern GL_LEFT,
+  pattern GL_LEQUAL,
+  pattern GL_LESS,
+  pattern GL_LIGHT0,
+  pattern GL_LIGHT1,
+  pattern GL_LIGHT2,
+  pattern GL_LIGHT3,
+  pattern GL_LIGHT4,
+  pattern GL_LIGHT5,
+  pattern GL_LIGHT6,
+  pattern GL_LIGHT7,
+  pattern GL_LIGHTING,
+  pattern GL_LIGHTING_BIT,
+  pattern GL_LIGHT_MODEL_AMBIENT,
+  pattern GL_LIGHT_MODEL_COLOR_CONTROL,
+  pattern GL_LIGHT_MODEL_LOCAL_VIEWER,
+  pattern GL_LIGHT_MODEL_TWO_SIDE,
+  pattern GL_LINE,
+  pattern GL_LINEAR,
+  pattern GL_LINEAR_ATTENUATION,
+  pattern GL_LINEAR_MIPMAP_LINEAR,
+  pattern GL_LINEAR_MIPMAP_NEAREST,
+  pattern GL_LINES,
+  pattern GL_LINES_ADJACENCY,
+  pattern GL_LINE_BIT,
+  pattern GL_LINE_LOOP,
+  pattern GL_LINE_RESET_TOKEN,
+  pattern GL_LINE_SMOOTH,
+  pattern GL_LINE_SMOOTH_HINT,
+  pattern GL_LINE_STIPPLE,
+  pattern GL_LINE_STIPPLE_PATTERN,
+  pattern GL_LINE_STIPPLE_REPEAT,
+  pattern GL_LINE_STRIP,
+  pattern GL_LINE_STRIP_ADJACENCY,
+  pattern GL_LINE_TOKEN,
+  pattern GL_LINE_WIDTH,
+  pattern GL_LINE_WIDTH_GRANULARITY,
+  pattern GL_LINE_WIDTH_RANGE,
+  pattern GL_LINK_STATUS,
+  pattern GL_LIST_BASE,
+  pattern GL_LIST_BIT,
+  pattern GL_LIST_INDEX,
+  pattern GL_LIST_MODE,
+  pattern GL_LOAD,
+  pattern GL_LOGIC_OP,
+  pattern GL_LOGIC_OP_MODE,
+  pattern GL_LOWER_LEFT,
+  pattern GL_LUMINANCE,
+  pattern GL_LUMINANCE12,
+  pattern GL_LUMINANCE12_ALPHA12,
+  pattern GL_LUMINANCE12_ALPHA4,
+  pattern GL_LUMINANCE16,
+  pattern GL_LUMINANCE16_ALPHA16,
+  pattern GL_LUMINANCE4,
+  pattern GL_LUMINANCE4_ALPHA4,
+  pattern GL_LUMINANCE6_ALPHA2,
+  pattern GL_LUMINANCE8,
+  pattern GL_LUMINANCE8_ALPHA8,
+  pattern GL_LUMINANCE_ALPHA,
+  pattern GL_MAJOR_VERSION,
+  pattern GL_MAP1_COLOR_4,
+  pattern GL_MAP1_GRID_DOMAIN,
+  pattern GL_MAP1_GRID_SEGMENTS,
+  pattern GL_MAP1_INDEX,
+  pattern GL_MAP1_NORMAL,
+  pattern GL_MAP1_TEXTURE_COORD_1,
+  pattern GL_MAP1_TEXTURE_COORD_2,
+  pattern GL_MAP1_TEXTURE_COORD_3,
+  pattern GL_MAP1_TEXTURE_COORD_4,
+  pattern GL_MAP1_VERTEX_3,
+  pattern GL_MAP1_VERTEX_4,
+  pattern GL_MAP2_COLOR_4,
+  pattern GL_MAP2_GRID_DOMAIN,
+  pattern GL_MAP2_GRID_SEGMENTS,
+  pattern GL_MAP2_INDEX,
+  pattern GL_MAP2_NORMAL,
+  pattern GL_MAP2_TEXTURE_COORD_1,
+  pattern GL_MAP2_TEXTURE_COORD_2,
+  pattern GL_MAP2_TEXTURE_COORD_3,
+  pattern GL_MAP2_TEXTURE_COORD_4,
+  pattern GL_MAP2_VERTEX_3,
+  pattern GL_MAP2_VERTEX_4,
+  pattern GL_MAP_COLOR,
+  pattern GL_MAP_FLUSH_EXPLICIT_BIT,
+  pattern GL_MAP_INVALIDATE_BUFFER_BIT,
+  pattern GL_MAP_INVALIDATE_RANGE_BIT,
+  pattern GL_MAP_READ_BIT,
+  pattern GL_MAP_STENCIL,
+  pattern GL_MAP_UNSYNCHRONIZED_BIT,
+  pattern GL_MAP_WRITE_BIT,
+  pattern GL_MATRIX_MODE,
+  pattern GL_MAX,
+  pattern GL_MAX_3D_TEXTURE_SIZE,
+  pattern GL_MAX_ARRAY_TEXTURE_LAYERS,
+  pattern GL_MAX_ATTRIB_STACK_DEPTH,
+  pattern GL_MAX_CLIENT_ATTRIB_STACK_DEPTH,
+  pattern GL_MAX_CLIP_DISTANCES,
+  pattern GL_MAX_CLIP_PLANES,
+  pattern GL_MAX_COLOR_ATTACHMENTS,
+  pattern GL_MAX_COLOR_TEXTURE_SAMPLES,
+  pattern GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_COMBINED_UNIFORM_BLOCKS,
+  pattern GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS,
+  pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE,
+  pattern GL_MAX_DEPTH_TEXTURE_SAMPLES,
+  pattern GL_MAX_DRAW_BUFFERS,
+  pattern GL_MAX_DUAL_SOURCE_DRAW_BUFFERS,
+  pattern GL_MAX_ELEMENTS_INDICES,
+  pattern GL_MAX_ELEMENTS_VERTICES,
+  pattern GL_MAX_EVAL_ORDER,
+  pattern GL_MAX_FRAGMENT_INPUT_COMPONENTS,
+  pattern GL_MAX_FRAGMENT_UNIFORM_BLOCKS,
+  pattern GL_MAX_FRAGMENT_UNIFORM_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_INPUT_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_OUTPUT_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_OUTPUT_VERTICES,
+  pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_UNIFORM_BLOCKS,
+  pattern GL_MAX_GEOMETRY_UNIFORM_COMPONENTS,
+  pattern GL_MAX_INTEGER_SAMPLES,
+  pattern GL_MAX_LIGHTS,
+  pattern GL_MAX_LIST_NESTING,
+  pattern GL_MAX_MODELVIEW_STACK_DEPTH,
+  pattern GL_MAX_NAME_STACK_DEPTH,
+  pattern GL_MAX_PIXEL_MAP_TABLE,
+  pattern GL_MAX_PROGRAM_TEXEL_OFFSET,
+  pattern GL_MAX_PROJECTION_STACK_DEPTH,
+  pattern GL_MAX_RECTANGLE_TEXTURE_SIZE,
+  pattern GL_MAX_RENDERBUFFER_SIZE,
+  pattern GL_MAX_SAMPLES,
+  pattern GL_MAX_SAMPLE_MASK_WORDS,
+  pattern GL_MAX_SERVER_WAIT_TIMEOUT,
+  pattern GL_MAX_TEXTURE_BUFFER_SIZE,
+  pattern GL_MAX_TEXTURE_COORDS,
+  pattern GL_MAX_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_TEXTURE_LOD_BIAS,
+  pattern GL_MAX_TEXTURE_SIZE,
+  pattern GL_MAX_TEXTURE_STACK_DEPTH,
+  pattern GL_MAX_TEXTURE_UNITS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS,
+  pattern GL_MAX_UNIFORM_BLOCK_SIZE,
+  pattern GL_MAX_UNIFORM_BUFFER_BINDINGS,
+  pattern GL_MAX_VARYING_COMPONENTS,
+  pattern GL_MAX_VARYING_FLOATS,
+  pattern GL_MAX_VERTEX_ATTRIBS,
+  pattern GL_MAX_VERTEX_OUTPUT_COMPONENTS,
+  pattern GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_VERTEX_UNIFORM_BLOCKS,
+  pattern GL_MAX_VERTEX_UNIFORM_COMPONENTS,
+  pattern GL_MAX_VIEWPORT_DIMS,
+  pattern GL_MIN,
+  pattern GL_MINOR_VERSION,
+  pattern GL_MIN_PROGRAM_TEXEL_OFFSET,
+  pattern GL_MIRRORED_REPEAT,
+  pattern GL_MODELVIEW,
+  pattern GL_MODELVIEW_MATRIX,
+  pattern GL_MODELVIEW_STACK_DEPTH,
+  pattern GL_MODULATE,
+  pattern GL_MULT,
+  pattern GL_MULTISAMPLE,
+  pattern GL_MULTISAMPLE_BIT,
+  pattern GL_N3F_V3F,
+  pattern GL_NAME_STACK_DEPTH,
+  pattern GL_NAND,
+  pattern GL_NEAREST,
+  pattern GL_NEAREST_MIPMAP_LINEAR,
+  pattern GL_NEAREST_MIPMAP_NEAREST,
+  pattern GL_NEVER,
+  pattern GL_NICEST,
+  pattern GL_NONE,
+  pattern GL_NOOP,
+  pattern GL_NOR,
+  pattern GL_NORMALIZE,
+  pattern GL_NORMAL_ARRAY,
+  pattern GL_NORMAL_ARRAY_BUFFER_BINDING,
+  pattern GL_NORMAL_ARRAY_POINTER,
+  pattern GL_NORMAL_ARRAY_STRIDE,
+  pattern GL_NORMAL_ARRAY_TYPE,
+  pattern GL_NORMAL_MAP,
+  pattern GL_NOTEQUAL,
+  pattern GL_NO_ERROR,
+  pattern GL_NUM_COMPRESSED_TEXTURE_FORMATS,
+  pattern GL_NUM_EXTENSIONS,
+  pattern GL_OBJECT_LINEAR,
+  pattern GL_OBJECT_PLANE,
+  pattern GL_OBJECT_TYPE,
+  pattern GL_ONE,
+  pattern GL_ONE_MINUS_CONSTANT_ALPHA,
+  pattern GL_ONE_MINUS_CONSTANT_COLOR,
+  pattern GL_ONE_MINUS_DST_ALPHA,
+  pattern GL_ONE_MINUS_DST_COLOR,
+  pattern GL_ONE_MINUS_SRC1_ALPHA,
+  pattern GL_ONE_MINUS_SRC1_COLOR,
+  pattern GL_ONE_MINUS_SRC_ALPHA,
+  pattern GL_ONE_MINUS_SRC_COLOR,
+  pattern GL_OPERAND0_ALPHA,
+  pattern GL_OPERAND0_RGB,
+  pattern GL_OPERAND1_ALPHA,
+  pattern GL_OPERAND1_RGB,
+  pattern GL_OPERAND2_ALPHA,
+  pattern GL_OPERAND2_RGB,
+  pattern GL_OR,
+  pattern GL_ORDER,
+  pattern GL_OR_INVERTED,
+  pattern GL_OR_REVERSE,
+  pattern GL_OUT_OF_MEMORY,
+  pattern GL_PACK_ALIGNMENT,
+  pattern GL_PACK_IMAGE_HEIGHT,
+  pattern GL_PACK_LSB_FIRST,
+  pattern GL_PACK_ROW_LENGTH,
+  pattern GL_PACK_SKIP_IMAGES,
+  pattern GL_PACK_SKIP_PIXELS,
+  pattern GL_PACK_SKIP_ROWS,
+  pattern GL_PACK_SWAP_BYTES,
+  pattern GL_PASS_THROUGH_TOKEN,
+  pattern GL_PERSPECTIVE_CORRECTION_HINT,
+  pattern GL_PIXEL_MAP_A_TO_A,
+  pattern GL_PIXEL_MAP_A_TO_A_SIZE,
+  pattern GL_PIXEL_MAP_B_TO_B,
+  pattern GL_PIXEL_MAP_B_TO_B_SIZE,
+  pattern GL_PIXEL_MAP_G_TO_G,
+  pattern GL_PIXEL_MAP_G_TO_G_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_A,
+  pattern GL_PIXEL_MAP_I_TO_A_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_B,
+  pattern GL_PIXEL_MAP_I_TO_B_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_G,
+  pattern GL_PIXEL_MAP_I_TO_G_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_I,
+  pattern GL_PIXEL_MAP_I_TO_I_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_R,
+  pattern GL_PIXEL_MAP_I_TO_R_SIZE,
+  pattern GL_PIXEL_MAP_R_TO_R,
+  pattern GL_PIXEL_MAP_R_TO_R_SIZE,
+  pattern GL_PIXEL_MAP_S_TO_S,
+  pattern GL_PIXEL_MAP_S_TO_S_SIZE,
+  pattern GL_PIXEL_MODE_BIT,
+  pattern GL_PIXEL_PACK_BUFFER,
+  pattern GL_PIXEL_PACK_BUFFER_BINDING,
+  pattern GL_PIXEL_UNPACK_BUFFER,
+  pattern GL_PIXEL_UNPACK_BUFFER_BINDING,
+  pattern GL_POINT,
+  pattern GL_POINTS,
+  pattern GL_POINT_BIT,
+  pattern GL_POINT_DISTANCE_ATTENUATION,
+  pattern GL_POINT_FADE_THRESHOLD_SIZE,
+  pattern GL_POINT_SIZE,
+  pattern GL_POINT_SIZE_GRANULARITY,
+  pattern GL_POINT_SIZE_MAX,
+  pattern GL_POINT_SIZE_MIN,
+  pattern GL_POINT_SIZE_RANGE,
+  pattern GL_POINT_SMOOTH,
+  pattern GL_POINT_SMOOTH_HINT,
+  pattern GL_POINT_SPRITE,
+  pattern GL_POINT_SPRITE_COORD_ORIGIN,
+  pattern GL_POINT_TOKEN,
+  pattern GL_POLYGON,
+  pattern GL_POLYGON_BIT,
+  pattern GL_POLYGON_MODE,
+  pattern GL_POLYGON_OFFSET_FACTOR,
+  pattern GL_POLYGON_OFFSET_FILL,
+  pattern GL_POLYGON_OFFSET_LINE,
+  pattern GL_POLYGON_OFFSET_POINT,
+  pattern GL_POLYGON_OFFSET_UNITS,
+  pattern GL_POLYGON_SMOOTH,
+  pattern GL_POLYGON_SMOOTH_HINT,
+  pattern GL_POLYGON_STIPPLE,
+  pattern GL_POLYGON_STIPPLE_BIT,
+  pattern GL_POLYGON_TOKEN,
+  pattern GL_POSITION,
+  pattern GL_PREVIOUS,
+  pattern GL_PRIMARY_COLOR,
+  pattern GL_PRIMITIVES_GENERATED,
+  pattern GL_PRIMITIVE_RESTART,
+  pattern GL_PRIMITIVE_RESTART_INDEX,
+  pattern GL_PROGRAM_POINT_SIZE,
+  pattern GL_PROJECTION,
+  pattern GL_PROJECTION_MATRIX,
+  pattern GL_PROJECTION_STACK_DEPTH,
+  pattern GL_PROVOKING_VERTEX,
+  pattern GL_PROXY_TEXTURE_1D,
+  pattern GL_PROXY_TEXTURE_1D_ARRAY,
+  pattern GL_PROXY_TEXTURE_2D,
+  pattern GL_PROXY_TEXTURE_2D_ARRAY,
+  pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE,
+  pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_PROXY_TEXTURE_3D,
+  pattern GL_PROXY_TEXTURE_CUBE_MAP,
+  pattern GL_PROXY_TEXTURE_RECTANGLE,
+  pattern GL_Q,
+  pattern GL_QUADRATIC_ATTENUATION,
+  pattern GL_QUADS,
+  pattern GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION,
+  pattern GL_QUAD_STRIP,
+  pattern GL_QUERY_BY_REGION_NO_WAIT,
+  pattern GL_QUERY_BY_REGION_WAIT,
+  pattern GL_QUERY_COUNTER_BITS,
+  pattern GL_QUERY_NO_WAIT,
+  pattern GL_QUERY_RESULT,
+  pattern GL_QUERY_RESULT_AVAILABLE,
+  pattern GL_QUERY_WAIT,
+  pattern GL_R,
+  pattern GL_R11F_G11F_B10F,
+  pattern GL_R16,
+  pattern GL_R16F,
+  pattern GL_R16I,
+  pattern GL_R16UI,
+  pattern GL_R16_SNORM,
+  pattern GL_R32F,
+  pattern GL_R32I,
+  pattern GL_R32UI,
+  pattern GL_R3_G3_B2,
+  pattern GL_R8,
+  pattern GL_R8I,
+  pattern GL_R8UI,
+  pattern GL_R8_SNORM,
+  pattern GL_RASTERIZER_DISCARD,
+  pattern GL_READ_BUFFER,
+  pattern GL_READ_FRAMEBUFFER,
+  pattern GL_READ_FRAMEBUFFER_BINDING,
+  pattern GL_READ_ONLY,
+  pattern GL_READ_WRITE,
+  pattern GL_RED,
+  pattern GL_RED_BIAS,
+  pattern GL_RED_BITS,
+  pattern GL_RED_INTEGER,
+  pattern GL_RED_SCALE,
+  pattern GL_REFLECTION_MAP,
+  pattern GL_RENDER,
+  pattern GL_RENDERBUFFER,
+  pattern GL_RENDERBUFFER_ALPHA_SIZE,
+  pattern GL_RENDERBUFFER_BINDING,
+  pattern GL_RENDERBUFFER_BLUE_SIZE,
+  pattern GL_RENDERBUFFER_DEPTH_SIZE,
+  pattern GL_RENDERBUFFER_GREEN_SIZE,
+  pattern GL_RENDERBUFFER_HEIGHT,
+  pattern GL_RENDERBUFFER_INTERNAL_FORMAT,
+  pattern GL_RENDERBUFFER_RED_SIZE,
+  pattern GL_RENDERBUFFER_SAMPLES,
+  pattern GL_RENDERBUFFER_STENCIL_SIZE,
+  pattern GL_RENDERBUFFER_WIDTH,
+  pattern GL_RENDERER,
+  pattern GL_RENDER_MODE,
+  pattern GL_REPEAT,
+  pattern GL_REPLACE,
+  pattern GL_RESCALE_NORMAL,
+  pattern GL_RETURN,
+  pattern GL_RG,
+  pattern GL_RG16,
+  pattern GL_RG16F,
+  pattern GL_RG16I,
+  pattern GL_RG16UI,
+  pattern GL_RG16_SNORM,
+  pattern GL_RG32F,
+  pattern GL_RG32I,
+  pattern GL_RG32UI,
+  pattern GL_RG8,
+  pattern GL_RG8I,
+  pattern GL_RG8UI,
+  pattern GL_RG8_SNORM,
+  pattern GL_RGB,
+  pattern GL_RGB10,
+  pattern GL_RGB10_A2,
+  pattern GL_RGB10_A2UI,
+  pattern GL_RGB12,
+  pattern GL_RGB16,
+  pattern GL_RGB16F,
+  pattern GL_RGB16I,
+  pattern GL_RGB16UI,
+  pattern GL_RGB16_SNORM,
+  pattern GL_RGB32F,
+  pattern GL_RGB32I,
+  pattern GL_RGB32UI,
+  pattern GL_RGB4,
+  pattern GL_RGB5,
+  pattern GL_RGB5_A1,
+  pattern GL_RGB8,
+  pattern GL_RGB8I,
+  pattern GL_RGB8UI,
+  pattern GL_RGB8_SNORM,
+  pattern GL_RGB9_E5,
+  pattern GL_RGBA,
+  pattern GL_RGBA12,
+  pattern GL_RGBA16,
+  pattern GL_RGBA16F,
+  pattern GL_RGBA16I,
+  pattern GL_RGBA16UI,
+  pattern GL_RGBA16_SNORM,
+  pattern GL_RGBA2,
+  pattern GL_RGBA32F,
+  pattern GL_RGBA32I,
+  pattern GL_RGBA32UI,
+  pattern GL_RGBA4,
+  pattern GL_RGBA8,
+  pattern GL_RGBA8I,
+  pattern GL_RGBA8UI,
+  pattern GL_RGBA8_SNORM,
+  pattern GL_RGBA_INTEGER,
+  pattern GL_RGBA_MODE,
+  pattern GL_RGB_INTEGER,
+  pattern GL_RGB_SCALE,
+  pattern GL_RG_INTEGER,
+  pattern GL_RIGHT,
+  pattern GL_S,
+  pattern GL_SAMPLER_1D,
+  pattern GL_SAMPLER_1D_ARRAY,
+  pattern GL_SAMPLER_1D_ARRAY_SHADOW,
+  pattern GL_SAMPLER_1D_SHADOW,
+  pattern GL_SAMPLER_2D,
+  pattern GL_SAMPLER_2D_ARRAY,
+  pattern GL_SAMPLER_2D_ARRAY_SHADOW,
+  pattern GL_SAMPLER_2D_MULTISAMPLE,
+  pattern GL_SAMPLER_2D_MULTISAMPLE_ARRAY,
+  pattern GL_SAMPLER_2D_RECT,
+  pattern GL_SAMPLER_2D_RECT_SHADOW,
+  pattern GL_SAMPLER_2D_SHADOW,
+  pattern GL_SAMPLER_3D,
+  pattern GL_SAMPLER_BINDING,
+  pattern GL_SAMPLER_BUFFER,
+  pattern GL_SAMPLER_CUBE,
+  pattern GL_SAMPLER_CUBE_SHADOW,
+  pattern GL_SAMPLES,
+  pattern GL_SAMPLES_PASSED,
+  pattern GL_SAMPLE_ALPHA_TO_COVERAGE,
+  pattern GL_SAMPLE_ALPHA_TO_ONE,
+  pattern GL_SAMPLE_BUFFERS,
+  pattern GL_SAMPLE_COVERAGE,
+  pattern GL_SAMPLE_COVERAGE_INVERT,
+  pattern GL_SAMPLE_COVERAGE_VALUE,
+  pattern GL_SAMPLE_MASK,
+  pattern GL_SAMPLE_MASK_VALUE,
+  pattern GL_SAMPLE_POSITION,
+  pattern GL_SCISSOR_BIT,
+  pattern GL_SCISSOR_BOX,
+  pattern GL_SCISSOR_TEST,
+  pattern GL_SECONDARY_COLOR_ARRAY,
+  pattern GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING,
+  pattern GL_SECONDARY_COLOR_ARRAY_POINTER,
+  pattern GL_SECONDARY_COLOR_ARRAY_SIZE,
+  pattern GL_SECONDARY_COLOR_ARRAY_STRIDE,
+  pattern GL_SECONDARY_COLOR_ARRAY_TYPE,
+  pattern GL_SELECT,
+  pattern GL_SELECTION_BUFFER_POINTER,
+  pattern GL_SELECTION_BUFFER_SIZE,
+  pattern GL_SEPARATE_ATTRIBS,
+  pattern GL_SEPARATE_SPECULAR_COLOR,
+  pattern GL_SET,
+  pattern GL_SHADER_SOURCE_LENGTH,
+  pattern GL_SHADER_TYPE,
+  pattern GL_SHADE_MODEL,
+  pattern GL_SHADING_LANGUAGE_VERSION,
+  pattern GL_SHININESS,
+  pattern GL_SHORT,
+  pattern GL_SIGNALED,
+  pattern GL_SIGNED_NORMALIZED,
+  pattern GL_SINGLE_COLOR,
+  pattern GL_SLUMINANCE,
+  pattern GL_SLUMINANCE8,
+  pattern GL_SLUMINANCE8_ALPHA8,
+  pattern GL_SLUMINANCE_ALPHA,
+  pattern GL_SMOOTH,
+  pattern GL_SMOOTH_LINE_WIDTH_GRANULARITY,
+  pattern GL_SMOOTH_LINE_WIDTH_RANGE,
+  pattern GL_SMOOTH_POINT_SIZE_GRANULARITY,
+  pattern GL_SMOOTH_POINT_SIZE_RANGE,
+  pattern GL_SOURCE0_ALPHA,
+  pattern GL_SOURCE0_RGB,
+  pattern GL_SOURCE1_ALPHA,
+  pattern GL_SOURCE1_RGB,
+  pattern GL_SOURCE2_ALPHA,
+  pattern GL_SOURCE2_RGB,
+  pattern GL_SPECULAR,
+  pattern GL_SPHERE_MAP,
+  pattern GL_SPOT_CUTOFF,
+  pattern GL_SPOT_DIRECTION,
+  pattern GL_SPOT_EXPONENT,
+  pattern GL_SRC0_ALPHA,
+  pattern GL_SRC0_RGB,
+  pattern GL_SRC1_ALPHA,
+  pattern GL_SRC1_COLOR,
+  pattern GL_SRC1_RGB,
+  pattern GL_SRC2_ALPHA,
+  pattern GL_SRC2_RGB,
+  pattern GL_SRC_ALPHA,
+  pattern GL_SRC_ALPHA_SATURATE,
+  pattern GL_SRC_COLOR,
+  pattern GL_SRGB,
+  pattern GL_SRGB8,
+  pattern GL_SRGB8_ALPHA8,
+  pattern GL_SRGB_ALPHA,
+  pattern GL_STACK_OVERFLOW,
+  pattern GL_STACK_UNDERFLOW,
+  pattern GL_STATIC_COPY,
+  pattern GL_STATIC_DRAW,
+  pattern GL_STATIC_READ,
+  pattern GL_STENCIL,
+  pattern GL_STENCIL_ATTACHMENT,
+  pattern GL_STENCIL_BACK_FAIL,
+  pattern GL_STENCIL_BACK_FUNC,
+  pattern GL_STENCIL_BACK_PASS_DEPTH_FAIL,
+  pattern GL_STENCIL_BACK_PASS_DEPTH_PASS,
+  pattern GL_STENCIL_BACK_REF,
+  pattern GL_STENCIL_BACK_VALUE_MASK,
+  pattern GL_STENCIL_BACK_WRITEMASK,
+  pattern GL_STENCIL_BITS,
+  pattern GL_STENCIL_BUFFER_BIT,
+  pattern GL_STENCIL_CLEAR_VALUE,
+  pattern GL_STENCIL_FAIL,
+  pattern GL_STENCIL_FUNC,
+  pattern GL_STENCIL_INDEX,
+  pattern GL_STENCIL_INDEX1,
+  pattern GL_STENCIL_INDEX16,
+  pattern GL_STENCIL_INDEX4,
+  pattern GL_STENCIL_INDEX8,
+  pattern GL_STENCIL_PASS_DEPTH_FAIL,
+  pattern GL_STENCIL_PASS_DEPTH_PASS,
+  pattern GL_STENCIL_REF,
+  pattern GL_STENCIL_TEST,
+  pattern GL_STENCIL_VALUE_MASK,
+  pattern GL_STENCIL_WRITEMASK,
+  pattern GL_STEREO,
+  pattern GL_STREAM_COPY,
+  pattern GL_STREAM_DRAW,
+  pattern GL_STREAM_READ,
+  pattern GL_SUBPIXEL_BITS,
+  pattern GL_SUBTRACT,
+  pattern GL_SYNC_CONDITION,
+  pattern GL_SYNC_FENCE,
+  pattern GL_SYNC_FLAGS,
+  pattern GL_SYNC_FLUSH_COMMANDS_BIT,
+  pattern GL_SYNC_GPU_COMMANDS_COMPLETE,
+  pattern GL_SYNC_STATUS,
+  pattern GL_T,
+  pattern GL_T2F_C3F_V3F,
+  pattern GL_T2F_C4F_N3F_V3F,
+  pattern GL_T2F_C4UB_V3F,
+  pattern GL_T2F_N3F_V3F,
+  pattern GL_T2F_V3F,
+  pattern GL_T4F_C4F_N3F_V4F,
+  pattern GL_T4F_V4F,
+  pattern GL_TEXTURE,
+  pattern GL_TEXTURE0,
+  pattern GL_TEXTURE1,
+  pattern GL_TEXTURE10,
+  pattern GL_TEXTURE11,
+  pattern GL_TEXTURE12,
+  pattern GL_TEXTURE13,
+  pattern GL_TEXTURE14,
+  pattern GL_TEXTURE15,
+  pattern GL_TEXTURE16,
+  pattern GL_TEXTURE17,
+  pattern GL_TEXTURE18,
+  pattern GL_TEXTURE19,
+  pattern GL_TEXTURE2,
+  pattern GL_TEXTURE20,
+  pattern GL_TEXTURE21,
+  pattern GL_TEXTURE22,
+  pattern GL_TEXTURE23,
+  pattern GL_TEXTURE24,
+  pattern GL_TEXTURE25,
+  pattern GL_TEXTURE26,
+  pattern GL_TEXTURE27,
+  pattern GL_TEXTURE28,
+  pattern GL_TEXTURE29,
+  pattern GL_TEXTURE3,
+  pattern GL_TEXTURE30,
+  pattern GL_TEXTURE31,
+  pattern GL_TEXTURE4,
+  pattern GL_TEXTURE5,
+  pattern GL_TEXTURE6,
+  pattern GL_TEXTURE7,
+  pattern GL_TEXTURE8,
+  pattern GL_TEXTURE9,
+  pattern GL_TEXTURE_1D,
+  pattern GL_TEXTURE_1D_ARRAY,
+  pattern GL_TEXTURE_2D,
+  pattern GL_TEXTURE_2D_ARRAY,
+  pattern GL_TEXTURE_2D_MULTISAMPLE,
+  pattern GL_TEXTURE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_TEXTURE_3D,
+  pattern GL_TEXTURE_ALPHA_SIZE,
+  pattern GL_TEXTURE_ALPHA_TYPE,
+  pattern GL_TEXTURE_BASE_LEVEL,
+  pattern GL_TEXTURE_BINDING_1D,
+  pattern GL_TEXTURE_BINDING_1D_ARRAY,
+  pattern GL_TEXTURE_BINDING_2D,
+  pattern GL_TEXTURE_BINDING_2D_ARRAY,
+  pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE,
+  pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY,
+  pattern GL_TEXTURE_BINDING_3D,
+  pattern GL_TEXTURE_BINDING_BUFFER,
+  pattern GL_TEXTURE_BINDING_CUBE_MAP,
+  pattern GL_TEXTURE_BINDING_RECTANGLE,
+  pattern GL_TEXTURE_BIT,
+  pattern GL_TEXTURE_BLUE_SIZE,
+  pattern GL_TEXTURE_BLUE_TYPE,
+  pattern GL_TEXTURE_BORDER,
+  pattern GL_TEXTURE_BORDER_COLOR,
+  pattern GL_TEXTURE_BUFFER,
+  pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING,
+  pattern GL_TEXTURE_COMPARE_FUNC,
+  pattern GL_TEXTURE_COMPARE_MODE,
+  pattern GL_TEXTURE_COMPONENTS,
+  pattern GL_TEXTURE_COMPRESSED,
+  pattern GL_TEXTURE_COMPRESSED_IMAGE_SIZE,
+  pattern GL_TEXTURE_COMPRESSION_HINT,
+  pattern GL_TEXTURE_COORD_ARRAY,
+  pattern GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING,
+  pattern GL_TEXTURE_COORD_ARRAY_POINTER,
+  pattern GL_TEXTURE_COORD_ARRAY_SIZE,
+  pattern GL_TEXTURE_COORD_ARRAY_STRIDE,
+  pattern GL_TEXTURE_COORD_ARRAY_TYPE,
+  pattern GL_TEXTURE_CUBE_MAP,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z,
+  pattern GL_TEXTURE_CUBE_MAP_SEAMLESS,
+  pattern GL_TEXTURE_DEPTH,
+  pattern GL_TEXTURE_DEPTH_SIZE,
+  pattern GL_TEXTURE_DEPTH_TYPE,
+  pattern GL_TEXTURE_ENV,
+  pattern GL_TEXTURE_ENV_COLOR,
+  pattern GL_TEXTURE_ENV_MODE,
+  pattern GL_TEXTURE_FILTER_CONTROL,
+  pattern GL_TEXTURE_FIXED_SAMPLE_LOCATIONS,
+  pattern GL_TEXTURE_GEN_MODE,
+  pattern GL_TEXTURE_GEN_Q,
+  pattern GL_TEXTURE_GEN_R,
+  pattern GL_TEXTURE_GEN_S,
+  pattern GL_TEXTURE_GEN_T,
+  pattern GL_TEXTURE_GREEN_SIZE,
+  pattern GL_TEXTURE_GREEN_TYPE,
+  pattern GL_TEXTURE_HEIGHT,
+  pattern GL_TEXTURE_INTENSITY_SIZE,
+  pattern GL_TEXTURE_INTENSITY_TYPE,
+  pattern GL_TEXTURE_INTERNAL_FORMAT,
+  pattern GL_TEXTURE_LOD_BIAS,
+  pattern GL_TEXTURE_LUMINANCE_SIZE,
+  pattern GL_TEXTURE_LUMINANCE_TYPE,
+  pattern GL_TEXTURE_MAG_FILTER,
+  pattern GL_TEXTURE_MATRIX,
+  pattern GL_TEXTURE_MAX_LEVEL,
+  pattern GL_TEXTURE_MAX_LOD,
+  pattern GL_TEXTURE_MIN_FILTER,
+  pattern GL_TEXTURE_MIN_LOD,
+  pattern GL_TEXTURE_PRIORITY,
+  pattern GL_TEXTURE_RECTANGLE,
+  pattern GL_TEXTURE_RED_SIZE,
+  pattern GL_TEXTURE_RED_TYPE,
+  pattern GL_TEXTURE_RESIDENT,
+  pattern GL_TEXTURE_SAMPLES,
+  pattern GL_TEXTURE_SHARED_SIZE,
+  pattern GL_TEXTURE_STACK_DEPTH,
+  pattern GL_TEXTURE_STENCIL_SIZE,
+  pattern GL_TEXTURE_SWIZZLE_A,
+  pattern GL_TEXTURE_SWIZZLE_B,
+  pattern GL_TEXTURE_SWIZZLE_G,
+  pattern GL_TEXTURE_SWIZZLE_R,
+  pattern GL_TEXTURE_SWIZZLE_RGBA,
+  pattern GL_TEXTURE_WIDTH,
+  pattern GL_TEXTURE_WRAP_R,
+  pattern GL_TEXTURE_WRAP_S,
+  pattern GL_TEXTURE_WRAP_T,
+  pattern GL_TIMEOUT_EXPIRED,
+  pattern GL_TIMEOUT_IGNORED,
+  pattern GL_TIMESTAMP,
+  pattern GL_TIME_ELAPSED,
+  pattern GL_TRANSFORM_BIT,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_BINDING,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_MODE,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_SIZE,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_START,
+  pattern GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN,
+  pattern GL_TRANSFORM_FEEDBACK_VARYINGS,
+  pattern GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH,
+  pattern GL_TRANSPOSE_COLOR_MATRIX,
+  pattern GL_TRANSPOSE_MODELVIEW_MATRIX,
+  pattern GL_TRANSPOSE_PROJECTION_MATRIX,
+  pattern GL_TRANSPOSE_TEXTURE_MATRIX,
+  pattern GL_TRIANGLES,
+  pattern GL_TRIANGLES_ADJACENCY,
+  pattern GL_TRIANGLE_FAN,
+  pattern GL_TRIANGLE_STRIP,
+  pattern GL_TRIANGLE_STRIP_ADJACENCY,
+  pattern GL_TRUE,
+  pattern GL_UNIFORM_ARRAY_STRIDE,
+  pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS,
+  pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES,
+  pattern GL_UNIFORM_BLOCK_BINDING,
+  pattern GL_UNIFORM_BLOCK_DATA_SIZE,
+  pattern GL_UNIFORM_BLOCK_INDEX,
+  pattern GL_UNIFORM_BLOCK_NAME_LENGTH,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER,
+  pattern GL_UNIFORM_BUFFER,
+  pattern GL_UNIFORM_BUFFER_BINDING,
+  pattern GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT,
+  pattern GL_UNIFORM_BUFFER_SIZE,
+  pattern GL_UNIFORM_BUFFER_START,
+  pattern GL_UNIFORM_IS_ROW_MAJOR,
+  pattern GL_UNIFORM_MATRIX_STRIDE,
+  pattern GL_UNIFORM_NAME_LENGTH,
+  pattern GL_UNIFORM_OFFSET,
+  pattern GL_UNIFORM_SIZE,
+  pattern GL_UNIFORM_TYPE,
+  pattern GL_UNPACK_ALIGNMENT,
+  pattern GL_UNPACK_IMAGE_HEIGHT,
+  pattern GL_UNPACK_LSB_FIRST,
+  pattern GL_UNPACK_ROW_LENGTH,
+  pattern GL_UNPACK_SKIP_IMAGES,
+  pattern GL_UNPACK_SKIP_PIXELS,
+  pattern GL_UNPACK_SKIP_ROWS,
+  pattern GL_UNPACK_SWAP_BYTES,
+  pattern GL_UNSIGNALED,
+  pattern GL_UNSIGNED_BYTE,
+  pattern GL_UNSIGNED_BYTE_2_3_3_REV,
+  pattern GL_UNSIGNED_BYTE_3_3_2,
+  pattern GL_UNSIGNED_INT,
+  pattern GL_UNSIGNED_INT_10F_11F_11F_REV,
+  pattern GL_UNSIGNED_INT_10_10_10_2,
+  pattern GL_UNSIGNED_INT_24_8,
+  pattern GL_UNSIGNED_INT_2_10_10_10_REV,
+  pattern GL_UNSIGNED_INT_5_9_9_9_REV,
+  pattern GL_UNSIGNED_INT_8_8_8_8,
+  pattern GL_UNSIGNED_INT_8_8_8_8_REV,
+  pattern GL_UNSIGNED_INT_SAMPLER_1D,
+  pattern GL_UNSIGNED_INT_SAMPLER_1D_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_RECT,
+  pattern GL_UNSIGNED_INT_SAMPLER_3D,
+  pattern GL_UNSIGNED_INT_SAMPLER_BUFFER,
+  pattern GL_UNSIGNED_INT_SAMPLER_CUBE,
+  pattern GL_UNSIGNED_INT_VEC2,
+  pattern GL_UNSIGNED_INT_VEC3,
+  pattern GL_UNSIGNED_INT_VEC4,
+  pattern GL_UNSIGNED_NORMALIZED,
+  pattern GL_UNSIGNED_SHORT,
+  pattern GL_UNSIGNED_SHORT_1_5_5_5_REV,
+  pattern GL_UNSIGNED_SHORT_4_4_4_4,
+  pattern GL_UNSIGNED_SHORT_4_4_4_4_REV,
+  pattern GL_UNSIGNED_SHORT_5_5_5_1,
+  pattern GL_UNSIGNED_SHORT_5_6_5,
+  pattern GL_UNSIGNED_SHORT_5_6_5_REV,
+  pattern GL_UPPER_LEFT,
+  pattern GL_V2F,
+  pattern GL_V3F,
+  pattern GL_VALIDATE_STATUS,
+  pattern GL_VENDOR,
+  pattern GL_VERSION,
+  pattern GL_VERTEX_ARRAY,
+  pattern GL_VERTEX_ARRAY_BINDING,
+  pattern GL_VERTEX_ARRAY_BUFFER_BINDING,
+  pattern GL_VERTEX_ARRAY_POINTER,
+  pattern GL_VERTEX_ARRAY_SIZE,
+  pattern GL_VERTEX_ARRAY_STRIDE,
+  pattern GL_VERTEX_ARRAY_TYPE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING,
+  pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR,
+  pattern GL_VERTEX_ATTRIB_ARRAY_ENABLED,
+  pattern GL_VERTEX_ATTRIB_ARRAY_INTEGER,
+  pattern GL_VERTEX_ATTRIB_ARRAY_NORMALIZED,
+  pattern GL_VERTEX_ATTRIB_ARRAY_POINTER,
+  pattern GL_VERTEX_ATTRIB_ARRAY_SIZE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_STRIDE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_TYPE,
+  pattern GL_VERTEX_PROGRAM_POINT_SIZE,
+  pattern GL_VERTEX_PROGRAM_TWO_SIDE,
+  pattern GL_VERTEX_SHADER,
+  pattern GL_VIEWPORT,
+  pattern GL_VIEWPORT_BIT,
+  pattern GL_WAIT_FAILED,
+  pattern GL_WEIGHT_ARRAY_BUFFER_BINDING,
+  pattern GL_WRITE_ONLY,
+  pattern GL_XOR,
+  pattern GL_ZERO,
+  pattern GL_ZOOM_X,
+  pattern GL_ZOOM_Y,
+  -- * Functions
+  glAccum,
+  glActiveTexture,
+  glAlphaFunc,
+  glAreTexturesResident,
+  glArrayElement,
+  glAttachShader,
+  glBegin,
+  glBeginConditionalRender,
+  glBeginQuery,
+  glBeginTransformFeedback,
+  glBindAttribLocation,
+  glBindBuffer,
+  glBindBufferBase,
+  glBindBufferRange,
+  glBindFragDataLocation,
+  glBindFragDataLocationIndexed,
+  glBindFramebuffer,
+  glBindRenderbuffer,
+  glBindSampler,
+  glBindTexture,
+  glBindVertexArray,
+  glBitmap,
+  glBlendColor,
+  glBlendEquation,
+  glBlendEquationSeparate,
+  glBlendFunc,
+  glBlendFuncSeparate,
+  glBlitFramebuffer,
+  glBufferData,
+  glBufferSubData,
+  glCallList,
+  glCallLists,
+  glCheckFramebufferStatus,
+  glClampColor,
+  glClear,
+  glClearAccum,
+  glClearBufferfi,
+  glClearBufferfv,
+  glClearBufferiv,
+  glClearBufferuiv,
+  glClearColor,
+  glClearDepth,
+  glClearIndex,
+  glClearStencil,
+  glClientActiveTexture,
+  glClientWaitSync,
+  glClipPlane,
+  glColor3b,
+  glColor3bv,
+  glColor3d,
+  glColor3dv,
+  glColor3f,
+  glColor3fv,
+  glColor3i,
+  glColor3iv,
+  glColor3s,
+  glColor3sv,
+  glColor3ub,
+  glColor3ubv,
+  glColor3ui,
+  glColor3uiv,
+  glColor3us,
+  glColor3usv,
+  glColor4b,
+  glColor4bv,
+  glColor4d,
+  glColor4dv,
+  glColor4f,
+  glColor4fv,
+  glColor4i,
+  glColor4iv,
+  glColor4s,
+  glColor4sv,
+  glColor4ub,
+  glColor4ubv,
+  glColor4ui,
+  glColor4uiv,
+  glColor4us,
+  glColor4usv,
+  glColorMask,
+  glColorMaski,
+  glColorMaterial,
+  glColorP3ui,
+  glColorP3uiv,
+  glColorP4ui,
+  glColorP4uiv,
+  glColorPointer,
+  glCompileShader,
+  glCompressedTexImage1D,
+  glCompressedTexImage2D,
+  glCompressedTexImage3D,
+  glCompressedTexSubImage1D,
+  glCompressedTexSubImage2D,
+  glCompressedTexSubImage3D,
+  glCopyBufferSubData,
+  glCopyPixels,
+  glCopyTexImage1D,
+  glCopyTexImage2D,
+  glCopyTexSubImage1D,
+  glCopyTexSubImage2D,
+  glCopyTexSubImage3D,
+  glCreateProgram,
+  glCreateShader,
+  glCullFace,
+  glDeleteBuffers,
+  glDeleteFramebuffers,
+  glDeleteLists,
+  glDeleteProgram,
+  glDeleteQueries,
+  glDeleteRenderbuffers,
+  glDeleteSamplers,
+  glDeleteShader,
+  glDeleteSync,
+  glDeleteTextures,
+  glDeleteVertexArrays,
+  glDepthFunc,
+  glDepthMask,
+  glDepthRange,
+  glDetachShader,
+  glDisable,
+  glDisableClientState,
+  glDisableVertexAttribArray,
+  glDisablei,
+  glDrawArrays,
+  glDrawArraysInstanced,
+  glDrawBuffer,
+  glDrawBuffers,
+  glDrawElements,
+  glDrawElementsBaseVertex,
+  glDrawElementsInstanced,
+  glDrawElementsInstancedBaseVertex,
+  glDrawPixels,
+  glDrawRangeElements,
+  glDrawRangeElementsBaseVertex,
+  glEdgeFlag,
+  glEdgeFlagPointer,
+  glEdgeFlagv,
+  glEnable,
+  glEnableClientState,
+  glEnableVertexAttribArray,
+  glEnablei,
+  glEnd,
+  glEndConditionalRender,
+  glEndList,
+  glEndQuery,
+  glEndTransformFeedback,
+  glEvalCoord1d,
+  glEvalCoord1dv,
+  glEvalCoord1f,
+  glEvalCoord1fv,
+  glEvalCoord2d,
+  glEvalCoord2dv,
+  glEvalCoord2f,
+  glEvalCoord2fv,
+  glEvalMesh1,
+  glEvalMesh2,
+  glEvalPoint1,
+  glEvalPoint2,
+  glFeedbackBuffer,
+  glFenceSync,
+  glFinish,
+  glFlush,
+  glFlushMappedBufferRange,
+  glFogCoordPointer,
+  glFogCoordd,
+  glFogCoorddv,
+  glFogCoordf,
+  glFogCoordfv,
+  glFogf,
+  glFogfv,
+  glFogi,
+  glFogiv,
+  glFramebufferRenderbuffer,
+  glFramebufferTexture,
+  glFramebufferTexture1D,
+  glFramebufferTexture2D,
+  glFramebufferTexture3D,
+  glFramebufferTextureLayer,
+  glFrontFace,
+  glFrustum,
+  glGenBuffers,
+  glGenFramebuffers,
+  glGenLists,
+  glGenQueries,
+  glGenRenderbuffers,
+  glGenSamplers,
+  glGenTextures,
+  glGenVertexArrays,
+  glGenerateMipmap,
+  glGetActiveAttrib,
+  glGetActiveUniform,
+  glGetActiveUniformBlockName,
+  glGetActiveUniformBlockiv,
+  glGetActiveUniformName,
+  glGetActiveUniformsiv,
+  glGetAttachedShaders,
+  glGetAttribLocation,
+  glGetBooleani_v,
+  glGetBooleanv,
+  glGetBufferParameteri64v,
+  glGetBufferParameteriv,
+  glGetBufferPointerv,
+  glGetBufferSubData,
+  glGetClipPlane,
+  glGetCompressedTexImage,
+  glGetDoublev,
+  glGetError,
+  glGetFloatv,
+  glGetFragDataIndex,
+  glGetFragDataLocation,
+  glGetFramebufferAttachmentParameteriv,
+  glGetInteger64i_v,
+  glGetInteger64v,
+  glGetIntegeri_v,
+  glGetIntegerv,
+  glGetLightfv,
+  glGetLightiv,
+  glGetMapdv,
+  glGetMapfv,
+  glGetMapiv,
+  glGetMaterialfv,
+  glGetMaterialiv,
+  glGetMultisamplefv,
+  glGetPixelMapfv,
+  glGetPixelMapuiv,
+  glGetPixelMapusv,
+  glGetPointerv,
+  glGetPolygonStipple,
+  glGetProgramInfoLog,
+  glGetProgramiv,
+  glGetQueryObjecti64v,
+  glGetQueryObjectiv,
+  glGetQueryObjectui64v,
+  glGetQueryObjectuiv,
+  glGetQueryiv,
+  glGetRenderbufferParameteriv,
+  glGetSamplerParameterIiv,
+  glGetSamplerParameterIuiv,
+  glGetSamplerParameterfv,
+  glGetSamplerParameteriv,
+  glGetShaderInfoLog,
+  glGetShaderSource,
+  glGetShaderiv,
+  glGetString,
+  glGetStringi,
+  glGetSynciv,
+  glGetTexEnvfv,
+  glGetTexEnviv,
+  glGetTexGendv,
+  glGetTexGenfv,
+  glGetTexGeniv,
+  glGetTexImage,
+  glGetTexLevelParameterfv,
+  glGetTexLevelParameteriv,
+  glGetTexParameterIiv,
+  glGetTexParameterIuiv,
+  glGetTexParameterfv,
+  glGetTexParameteriv,
+  glGetTransformFeedbackVarying,
+  glGetUniformBlockIndex,
+  glGetUniformIndices,
+  glGetUniformLocation,
+  glGetUniformfv,
+  glGetUniformiv,
+  glGetUniformuiv,
+  glGetVertexAttribIiv,
+  glGetVertexAttribIuiv,
+  glGetVertexAttribPointerv,
+  glGetVertexAttribdv,
+  glGetVertexAttribfv,
+  glGetVertexAttribiv,
+  glHint,
+  glIndexMask,
+  glIndexPointer,
+  glIndexd,
+  glIndexdv,
+  glIndexf,
+  glIndexfv,
+  glIndexi,
+  glIndexiv,
+  glIndexs,
+  glIndexsv,
+  glIndexub,
+  glIndexubv,
+  glInitNames,
+  glInterleavedArrays,
+  glIsBuffer,
+  glIsEnabled,
+  glIsEnabledi,
+  glIsFramebuffer,
+  glIsList,
+  glIsProgram,
+  glIsQuery,
+  glIsRenderbuffer,
+  glIsSampler,
+  glIsShader,
+  glIsSync,
+  glIsTexture,
+  glIsVertexArray,
+  glLightModelf,
+  glLightModelfv,
+  glLightModeli,
+  glLightModeliv,
+  glLightf,
+  glLightfv,
+  glLighti,
+  glLightiv,
+  glLineStipple,
+  glLineWidth,
+  glLinkProgram,
+  glListBase,
+  glLoadIdentity,
+  glLoadMatrixd,
+  glLoadMatrixf,
+  glLoadName,
+  glLoadTransposeMatrixd,
+  glLoadTransposeMatrixf,
+  glLogicOp,
+  glMap1d,
+  glMap1f,
+  glMap2d,
+  glMap2f,
+  glMapBuffer,
+  glMapBufferRange,
+  glMapGrid1d,
+  glMapGrid1f,
+  glMapGrid2d,
+  glMapGrid2f,
+  glMaterialf,
+  glMaterialfv,
+  glMateriali,
+  glMaterialiv,
+  glMatrixMode,
+  glMultMatrixd,
+  glMultMatrixf,
+  glMultTransposeMatrixd,
+  glMultTransposeMatrixf,
+  glMultiDrawArrays,
+  glMultiDrawElements,
+  glMultiDrawElementsBaseVertex,
+  glMultiTexCoord1d,
+  glMultiTexCoord1dv,
+  glMultiTexCoord1f,
+  glMultiTexCoord1fv,
+  glMultiTexCoord1i,
+  glMultiTexCoord1iv,
+  glMultiTexCoord1s,
+  glMultiTexCoord1sv,
+  glMultiTexCoord2d,
+  glMultiTexCoord2dv,
+  glMultiTexCoord2f,
+  glMultiTexCoord2fv,
+  glMultiTexCoord2i,
+  glMultiTexCoord2iv,
+  glMultiTexCoord2s,
+  glMultiTexCoord2sv,
+  glMultiTexCoord3d,
+  glMultiTexCoord3dv,
+  glMultiTexCoord3f,
+  glMultiTexCoord3fv,
+  glMultiTexCoord3i,
+  glMultiTexCoord3iv,
+  glMultiTexCoord3s,
+  glMultiTexCoord3sv,
+  glMultiTexCoord4d,
+  glMultiTexCoord4dv,
+  glMultiTexCoord4f,
+  glMultiTexCoord4fv,
+  glMultiTexCoord4i,
+  glMultiTexCoord4iv,
+  glMultiTexCoord4s,
+  glMultiTexCoord4sv,
+  glMultiTexCoordP1ui,
+  glMultiTexCoordP1uiv,
+  glMultiTexCoordP2ui,
+  glMultiTexCoordP2uiv,
+  glMultiTexCoordP3ui,
+  glMultiTexCoordP3uiv,
+  glMultiTexCoordP4ui,
+  glMultiTexCoordP4uiv,
+  glNewList,
+  glNormal3b,
+  glNormal3bv,
+  glNormal3d,
+  glNormal3dv,
+  glNormal3f,
+  glNormal3fv,
+  glNormal3i,
+  glNormal3iv,
+  glNormal3s,
+  glNormal3sv,
+  glNormalP3ui,
+  glNormalP3uiv,
+  glNormalPointer,
+  glOrtho,
+  glPassThrough,
+  glPixelMapfv,
+  glPixelMapuiv,
+  glPixelMapusv,
+  glPixelStoref,
+  glPixelStorei,
+  glPixelTransferf,
+  glPixelTransferi,
+  glPixelZoom,
+  glPointParameterf,
+  glPointParameterfv,
+  glPointParameteri,
+  glPointParameteriv,
+  glPointSize,
+  glPolygonMode,
+  glPolygonOffset,
+  glPolygonStipple,
+  glPopAttrib,
+  glPopClientAttrib,
+  glPopMatrix,
+  glPopName,
+  glPrimitiveRestartIndex,
+  glPrioritizeTextures,
+  glProvokingVertex,
+  glPushAttrib,
+  glPushClientAttrib,
+  glPushMatrix,
+  glPushName,
+  glQueryCounter,
+  glRasterPos2d,
+  glRasterPos2dv,
+  glRasterPos2f,
+  glRasterPos2fv,
+  glRasterPos2i,
+  glRasterPos2iv,
+  glRasterPos2s,
+  glRasterPos2sv,
+  glRasterPos3d,
+  glRasterPos3dv,
+  glRasterPos3f,
+  glRasterPos3fv,
+  glRasterPos3i,
+  glRasterPos3iv,
+  glRasterPos3s,
+  glRasterPos3sv,
+  glRasterPos4d,
+  glRasterPos4dv,
+  glRasterPos4f,
+  glRasterPos4fv,
+  glRasterPos4i,
+  glRasterPos4iv,
+  glRasterPos4s,
+  glRasterPos4sv,
+  glReadBuffer,
+  glReadPixels,
+  glRectd,
+  glRectdv,
+  glRectf,
+  glRectfv,
+  glRecti,
+  glRectiv,
+  glRects,
+  glRectsv,
+  glRenderMode,
+  glRenderbufferStorage,
+  glRenderbufferStorageMultisample,
+  glRotated,
+  glRotatef,
+  glSampleCoverage,
+  glSampleMaski,
+  glSamplerParameterIiv,
+  glSamplerParameterIuiv,
+  glSamplerParameterf,
+  glSamplerParameterfv,
+  glSamplerParameteri,
+  glSamplerParameteriv,
+  glScaled,
+  glScalef,
+  glScissor,
+  glSecondaryColor3b,
+  glSecondaryColor3bv,
+  glSecondaryColor3d,
+  glSecondaryColor3dv,
+  glSecondaryColor3f,
+  glSecondaryColor3fv,
+  glSecondaryColor3i,
+  glSecondaryColor3iv,
+  glSecondaryColor3s,
+  glSecondaryColor3sv,
+  glSecondaryColor3ub,
+  glSecondaryColor3ubv,
+  glSecondaryColor3ui,
+  glSecondaryColor3uiv,
+  glSecondaryColor3us,
+  glSecondaryColor3usv,
+  glSecondaryColorP3ui,
+  glSecondaryColorP3uiv,
+  glSecondaryColorPointer,
+  glSelectBuffer,
+  glShadeModel,
+  glShaderSource,
+  glStencilFunc,
+  glStencilFuncSeparate,
+  glStencilMask,
+  glStencilMaskSeparate,
+  glStencilOp,
+  glStencilOpSeparate,
+  glTexBuffer,
+  glTexCoord1d,
+  glTexCoord1dv,
+  glTexCoord1f,
+  glTexCoord1fv,
+  glTexCoord1i,
+  glTexCoord1iv,
+  glTexCoord1s,
+  glTexCoord1sv,
+  glTexCoord2d,
+  glTexCoord2dv,
+  glTexCoord2f,
+  glTexCoord2fv,
+  glTexCoord2i,
+  glTexCoord2iv,
+  glTexCoord2s,
+  glTexCoord2sv,
+  glTexCoord3d,
+  glTexCoord3dv,
+  glTexCoord3f,
+  glTexCoord3fv,
+  glTexCoord3i,
+  glTexCoord3iv,
+  glTexCoord3s,
+  glTexCoord3sv,
+  glTexCoord4d,
+  glTexCoord4dv,
+  glTexCoord4f,
+  glTexCoord4fv,
+  glTexCoord4i,
+  glTexCoord4iv,
+  glTexCoord4s,
+  glTexCoord4sv,
+  glTexCoordP1ui,
+  glTexCoordP1uiv,
+  glTexCoordP2ui,
+  glTexCoordP2uiv,
+  glTexCoordP3ui,
+  glTexCoordP3uiv,
+  glTexCoordP4ui,
+  glTexCoordP4uiv,
+  glTexCoordPointer,
+  glTexEnvf,
+  glTexEnvfv,
+  glTexEnvi,
+  glTexEnviv,
+  glTexGend,
+  glTexGendv,
+  glTexGenf,
+  glTexGenfv,
+  glTexGeni,
+  glTexGeniv,
+  glTexImage1D,
+  glTexImage2D,
+  glTexImage2DMultisample,
+  glTexImage3D,
+  glTexImage3DMultisample,
+  glTexParameterIiv,
+  glTexParameterIuiv,
+  glTexParameterf,
+  glTexParameterfv,
+  glTexParameteri,
+  glTexParameteriv,
+  glTexSubImage1D,
+  glTexSubImage2D,
+  glTexSubImage3D,
+  glTransformFeedbackVaryings,
+  glTranslated,
+  glTranslatef,
+  glUniform1f,
+  glUniform1fv,
+  glUniform1i,
+  glUniform1iv,
+  glUniform1ui,
+  glUniform1uiv,
+  glUniform2f,
+  glUniform2fv,
+  glUniform2i,
+  glUniform2iv,
+  glUniform2ui,
+  glUniform2uiv,
+  glUniform3f,
+  glUniform3fv,
+  glUniform3i,
+  glUniform3iv,
+  glUniform3ui,
+  glUniform3uiv,
+  glUniform4f,
+  glUniform4fv,
+  glUniform4i,
+  glUniform4iv,
+  glUniform4ui,
+  glUniform4uiv,
+  glUniformBlockBinding,
+  glUniformMatrix2fv,
+  glUniformMatrix2x3fv,
+  glUniformMatrix2x4fv,
+  glUniformMatrix3fv,
+  glUniformMatrix3x2fv,
+  glUniformMatrix3x4fv,
+  glUniformMatrix4fv,
+  glUniformMatrix4x2fv,
+  glUniformMatrix4x3fv,
+  glUnmapBuffer,
+  glUseProgram,
+  glValidateProgram,
+  glVertex2d,
+  glVertex2dv,
+  glVertex2f,
+  glVertex2fv,
+  glVertex2i,
+  glVertex2iv,
+  glVertex2s,
+  glVertex2sv,
+  glVertex3d,
+  glVertex3dv,
+  glVertex3f,
+  glVertex3fv,
+  glVertex3i,
+  glVertex3iv,
+  glVertex3s,
+  glVertex3sv,
+  glVertex4d,
+  glVertex4dv,
+  glVertex4f,
+  glVertex4fv,
+  glVertex4i,
+  glVertex4iv,
+  glVertex4s,
+  glVertex4sv,
+  glVertexAttrib1d,
+  glVertexAttrib1dv,
+  glVertexAttrib1f,
+  glVertexAttrib1fv,
+  glVertexAttrib1s,
+  glVertexAttrib1sv,
+  glVertexAttrib2d,
+  glVertexAttrib2dv,
+  glVertexAttrib2f,
+  glVertexAttrib2fv,
+  glVertexAttrib2s,
+  glVertexAttrib2sv,
+  glVertexAttrib3d,
+  glVertexAttrib3dv,
+  glVertexAttrib3f,
+  glVertexAttrib3fv,
+  glVertexAttrib3s,
+  glVertexAttrib3sv,
+  glVertexAttrib4Nbv,
+  glVertexAttrib4Niv,
+  glVertexAttrib4Nsv,
+  glVertexAttrib4Nub,
+  glVertexAttrib4Nubv,
+  glVertexAttrib4Nuiv,
+  glVertexAttrib4Nusv,
+  glVertexAttrib4bv,
+  glVertexAttrib4d,
+  glVertexAttrib4dv,
+  glVertexAttrib4f,
+  glVertexAttrib4fv,
+  glVertexAttrib4iv,
+  glVertexAttrib4s,
+  glVertexAttrib4sv,
+  glVertexAttrib4ubv,
+  glVertexAttrib4uiv,
+  glVertexAttrib4usv,
+  glVertexAttribDivisor,
+  glVertexAttribI1i,
+  glVertexAttribI1iv,
+  glVertexAttribI1ui,
+  glVertexAttribI1uiv,
+  glVertexAttribI2i,
+  glVertexAttribI2iv,
+  glVertexAttribI2ui,
+  glVertexAttribI2uiv,
+  glVertexAttribI3i,
+  glVertexAttribI3iv,
+  glVertexAttribI3ui,
+  glVertexAttribI3uiv,
+  glVertexAttribI4bv,
+  glVertexAttribI4i,
+  glVertexAttribI4iv,
+  glVertexAttribI4sv,
+  glVertexAttribI4ubv,
+  glVertexAttribI4ui,
+  glVertexAttribI4uiv,
+  glVertexAttribI4usv,
+  glVertexAttribIPointer,
+  glVertexAttribP1ui,
+  glVertexAttribP1uiv,
+  glVertexAttribP2ui,
+  glVertexAttribP2uiv,
+  glVertexAttribP3ui,
+  glVertexAttribP3uiv,
+  glVertexAttribP4ui,
+  glVertexAttribP4uiv,
+  glVertexAttribPointer,
+  glVertexP2ui,
+  glVertexP2uiv,
+  glVertexP3ui,
+  glVertexP3uiv,
+  glVertexP4ui,
+  glVertexP4uiv,
+  glVertexPointer,
+  glViewport,
+  glWaitSync,
+  glWindowPos2d,
+  glWindowPos2dv,
+  glWindowPos2f,
+  glWindowPos2fv,
+  glWindowPos2i,
+  glWindowPos2iv,
+  glWindowPos2s,
+  glWindowPos2sv,
+  glWindowPos3d,
+  glWindowPos3dv,
+  glWindowPos3f,
+  glWindowPos3fv,
+  glWindowPos3i,
+  glWindowPos3iv,
+  glWindowPos3s,
+  glWindowPos3sv
+) where
+
+import Graphics.GL.Types
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/Compatibility40.hs b/src/Graphics/GL/Compatibility40.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Compatibility40.hs
@@ -0,0 +1,2141 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Compatibility40
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Compatibility40 (
+  -- * Types
+  GLbitfield,
+  GLboolean,
+  GLbyte,
+  GLchar,
+  GLclampd,
+  GLclampf,
+  GLdouble,
+  GLenum,
+  GLfloat,
+  GLhalf,
+  GLint,
+  GLint64,
+  GLintptr,
+  GLshort,
+  GLsizei,
+  GLsizeiptr,
+  GLsync,
+  GLubyte,
+  GLuint,
+  GLuint64,
+  GLushort,
+  GLvoid,
+  -- * Enums
+  pattern GL_2D,
+  pattern GL_2_BYTES,
+  pattern GL_3D,
+  pattern GL_3D_COLOR,
+  pattern GL_3D_COLOR_TEXTURE,
+  pattern GL_3_BYTES,
+  pattern GL_4D_COLOR_TEXTURE,
+  pattern GL_4_BYTES,
+  pattern GL_ACCUM,
+  pattern GL_ACCUM_ALPHA_BITS,
+  pattern GL_ACCUM_BLUE_BITS,
+  pattern GL_ACCUM_BUFFER_BIT,
+  pattern GL_ACCUM_CLEAR_VALUE,
+  pattern GL_ACCUM_GREEN_BITS,
+  pattern GL_ACCUM_RED_BITS,
+  pattern GL_ACTIVE_ATTRIBUTES,
+  pattern GL_ACTIVE_ATTRIBUTE_MAX_LENGTH,
+  pattern GL_ACTIVE_SUBROUTINES,
+  pattern GL_ACTIVE_SUBROUTINE_MAX_LENGTH,
+  pattern GL_ACTIVE_SUBROUTINE_UNIFORMS,
+  pattern GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS,
+  pattern GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH,
+  pattern GL_ACTIVE_TEXTURE,
+  pattern GL_ACTIVE_UNIFORMS,
+  pattern GL_ACTIVE_UNIFORM_BLOCKS,
+  pattern GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH,
+  pattern GL_ACTIVE_UNIFORM_MAX_LENGTH,
+  pattern GL_ADD,
+  pattern GL_ADD_SIGNED,
+  pattern GL_ALIASED_LINE_WIDTH_RANGE,
+  pattern GL_ALIASED_POINT_SIZE_RANGE,
+  pattern GL_ALL_ATTRIB_BITS,
+  pattern GL_ALPHA,
+  pattern GL_ALPHA12,
+  pattern GL_ALPHA16,
+  pattern GL_ALPHA4,
+  pattern GL_ALPHA8,
+  pattern GL_ALPHA_BIAS,
+  pattern GL_ALPHA_BITS,
+  pattern GL_ALPHA_INTEGER,
+  pattern GL_ALPHA_SCALE,
+  pattern GL_ALPHA_TEST,
+  pattern GL_ALPHA_TEST_FUNC,
+  pattern GL_ALPHA_TEST_REF,
+  pattern GL_ALREADY_SIGNALED,
+  pattern GL_ALWAYS,
+  pattern GL_AMBIENT,
+  pattern GL_AMBIENT_AND_DIFFUSE,
+  pattern GL_AND,
+  pattern GL_AND_INVERTED,
+  pattern GL_AND_REVERSE,
+  pattern GL_ANY_SAMPLES_PASSED,
+  pattern GL_ARRAY_BUFFER,
+  pattern GL_ARRAY_BUFFER_BINDING,
+  pattern GL_ATTACHED_SHADERS,
+  pattern GL_ATTRIB_STACK_DEPTH,
+  pattern GL_AUTO_NORMAL,
+  pattern GL_AUX0,
+  pattern GL_AUX1,
+  pattern GL_AUX2,
+  pattern GL_AUX3,
+  pattern GL_AUX_BUFFERS,
+  pattern GL_BACK,
+  pattern GL_BACK_LEFT,
+  pattern GL_BACK_RIGHT,
+  pattern GL_BGR,
+  pattern GL_BGRA,
+  pattern GL_BGRA_INTEGER,
+  pattern GL_BGR_INTEGER,
+  pattern GL_BITMAP,
+  pattern GL_BITMAP_TOKEN,
+  pattern GL_BLEND,
+  pattern GL_BLEND_COLOR,
+  pattern GL_BLEND_DST,
+  pattern GL_BLEND_DST_ALPHA,
+  pattern GL_BLEND_DST_RGB,
+  pattern GL_BLEND_EQUATION,
+  pattern GL_BLEND_EQUATION_ALPHA,
+  pattern GL_BLEND_EQUATION_RGB,
+  pattern GL_BLEND_SRC,
+  pattern GL_BLEND_SRC_ALPHA,
+  pattern GL_BLEND_SRC_RGB,
+  pattern GL_BLUE,
+  pattern GL_BLUE_BIAS,
+  pattern GL_BLUE_BITS,
+  pattern GL_BLUE_INTEGER,
+  pattern GL_BLUE_SCALE,
+  pattern GL_BOOL,
+  pattern GL_BOOL_VEC2,
+  pattern GL_BOOL_VEC3,
+  pattern GL_BOOL_VEC4,
+  pattern GL_BUFFER_ACCESS,
+  pattern GL_BUFFER_ACCESS_FLAGS,
+  pattern GL_BUFFER_MAPPED,
+  pattern GL_BUFFER_MAP_LENGTH,
+  pattern GL_BUFFER_MAP_OFFSET,
+  pattern GL_BUFFER_MAP_POINTER,
+  pattern GL_BUFFER_SIZE,
+  pattern GL_BUFFER_USAGE,
+  pattern GL_BYTE,
+  pattern GL_C3F_V3F,
+  pattern GL_C4F_N3F_V3F,
+  pattern GL_C4UB_V2F,
+  pattern GL_C4UB_V3F,
+  pattern GL_CCW,
+  pattern GL_CLAMP,
+  pattern GL_CLAMP_FRAGMENT_COLOR,
+  pattern GL_CLAMP_READ_COLOR,
+  pattern GL_CLAMP_TO_BORDER,
+  pattern GL_CLAMP_TO_EDGE,
+  pattern GL_CLAMP_VERTEX_COLOR,
+  pattern GL_CLEAR,
+  pattern GL_CLIENT_ACTIVE_TEXTURE,
+  pattern GL_CLIENT_ALL_ATTRIB_BITS,
+  pattern GL_CLIENT_ATTRIB_STACK_DEPTH,
+  pattern GL_CLIENT_PIXEL_STORE_BIT,
+  pattern GL_CLIENT_VERTEX_ARRAY_BIT,
+  pattern GL_CLIP_DISTANCE0,
+  pattern GL_CLIP_DISTANCE1,
+  pattern GL_CLIP_DISTANCE2,
+  pattern GL_CLIP_DISTANCE3,
+  pattern GL_CLIP_DISTANCE4,
+  pattern GL_CLIP_DISTANCE5,
+  pattern GL_CLIP_DISTANCE6,
+  pattern GL_CLIP_DISTANCE7,
+  pattern GL_CLIP_PLANE0,
+  pattern GL_CLIP_PLANE1,
+  pattern GL_CLIP_PLANE2,
+  pattern GL_CLIP_PLANE3,
+  pattern GL_CLIP_PLANE4,
+  pattern GL_CLIP_PLANE5,
+  pattern GL_COEFF,
+  pattern GL_COLOR,
+  pattern GL_COLOR_ARRAY,
+  pattern GL_COLOR_ARRAY_BUFFER_BINDING,
+  pattern GL_COLOR_ARRAY_POINTER,
+  pattern GL_COLOR_ARRAY_SIZE,
+  pattern GL_COLOR_ARRAY_STRIDE,
+  pattern GL_COLOR_ARRAY_TYPE,
+  pattern GL_COLOR_ATTACHMENT0,
+  pattern GL_COLOR_ATTACHMENT1,
+  pattern GL_COLOR_ATTACHMENT10,
+  pattern GL_COLOR_ATTACHMENT11,
+  pattern GL_COLOR_ATTACHMENT12,
+  pattern GL_COLOR_ATTACHMENT13,
+  pattern GL_COLOR_ATTACHMENT14,
+  pattern GL_COLOR_ATTACHMENT15,
+  pattern GL_COLOR_ATTACHMENT16,
+  pattern GL_COLOR_ATTACHMENT17,
+  pattern GL_COLOR_ATTACHMENT18,
+  pattern GL_COLOR_ATTACHMENT19,
+  pattern GL_COLOR_ATTACHMENT2,
+  pattern GL_COLOR_ATTACHMENT20,
+  pattern GL_COLOR_ATTACHMENT21,
+  pattern GL_COLOR_ATTACHMENT22,
+  pattern GL_COLOR_ATTACHMENT23,
+  pattern GL_COLOR_ATTACHMENT24,
+  pattern GL_COLOR_ATTACHMENT25,
+  pattern GL_COLOR_ATTACHMENT26,
+  pattern GL_COLOR_ATTACHMENT27,
+  pattern GL_COLOR_ATTACHMENT28,
+  pattern GL_COLOR_ATTACHMENT29,
+  pattern GL_COLOR_ATTACHMENT3,
+  pattern GL_COLOR_ATTACHMENT30,
+  pattern GL_COLOR_ATTACHMENT31,
+  pattern GL_COLOR_ATTACHMENT4,
+  pattern GL_COLOR_ATTACHMENT5,
+  pattern GL_COLOR_ATTACHMENT6,
+  pattern GL_COLOR_ATTACHMENT7,
+  pattern GL_COLOR_ATTACHMENT8,
+  pattern GL_COLOR_ATTACHMENT9,
+  pattern GL_COLOR_BUFFER_BIT,
+  pattern GL_COLOR_CLEAR_VALUE,
+  pattern GL_COLOR_INDEX,
+  pattern GL_COLOR_INDEXES,
+  pattern GL_COLOR_LOGIC_OP,
+  pattern GL_COLOR_MATERIAL,
+  pattern GL_COLOR_MATERIAL_FACE,
+  pattern GL_COLOR_MATERIAL_PARAMETER,
+  pattern GL_COLOR_SUM,
+  pattern GL_COLOR_WRITEMASK,
+  pattern GL_COMBINE,
+  pattern GL_COMBINE_ALPHA,
+  pattern GL_COMBINE_RGB,
+  pattern GL_COMPARE_REF_TO_TEXTURE,
+  pattern GL_COMPARE_R_TO_TEXTURE,
+  pattern GL_COMPATIBLE_SUBROUTINES,
+  pattern GL_COMPILE,
+  pattern GL_COMPILE_AND_EXECUTE,
+  pattern GL_COMPILE_STATUS,
+  pattern GL_COMPRESSED_ALPHA,
+  pattern GL_COMPRESSED_INTENSITY,
+  pattern GL_COMPRESSED_LUMINANCE,
+  pattern GL_COMPRESSED_LUMINANCE_ALPHA,
+  pattern GL_COMPRESSED_RED,
+  pattern GL_COMPRESSED_RED_RGTC1,
+  pattern GL_COMPRESSED_RG,
+  pattern GL_COMPRESSED_RGB,
+  pattern GL_COMPRESSED_RGBA,
+  pattern GL_COMPRESSED_RG_RGTC2,
+  pattern GL_COMPRESSED_SIGNED_RED_RGTC1,
+  pattern GL_COMPRESSED_SIGNED_RG_RGTC2,
+  pattern GL_COMPRESSED_SLUMINANCE,
+  pattern GL_COMPRESSED_SLUMINANCE_ALPHA,
+  pattern GL_COMPRESSED_SRGB,
+  pattern GL_COMPRESSED_SRGB_ALPHA,
+  pattern GL_COMPRESSED_TEXTURE_FORMATS,
+  pattern GL_CONDITION_SATISFIED,
+  pattern GL_CONSTANT,
+  pattern GL_CONSTANT_ALPHA,
+  pattern GL_CONSTANT_ATTENUATION,
+  pattern GL_CONSTANT_COLOR,
+  pattern GL_CONTEXT_COMPATIBILITY_PROFILE_BIT,
+  pattern GL_CONTEXT_CORE_PROFILE_BIT,
+  pattern GL_CONTEXT_FLAGS,
+  pattern GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT,
+  pattern GL_CONTEXT_PROFILE_MASK,
+  pattern GL_COORD_REPLACE,
+  pattern GL_COPY,
+  pattern GL_COPY_INVERTED,
+  pattern GL_COPY_PIXEL_TOKEN,
+  pattern GL_COPY_READ_BUFFER,
+  pattern GL_COPY_WRITE_BUFFER,
+  pattern GL_CULL_FACE,
+  pattern GL_CULL_FACE_MODE,
+  pattern GL_CURRENT_BIT,
+  pattern GL_CURRENT_COLOR,
+  pattern GL_CURRENT_FOG_COORD,
+  pattern GL_CURRENT_FOG_COORDINATE,
+  pattern GL_CURRENT_INDEX,
+  pattern GL_CURRENT_NORMAL,
+  pattern GL_CURRENT_PROGRAM,
+  pattern GL_CURRENT_QUERY,
+  pattern GL_CURRENT_RASTER_COLOR,
+  pattern GL_CURRENT_RASTER_DISTANCE,
+  pattern GL_CURRENT_RASTER_INDEX,
+  pattern GL_CURRENT_RASTER_POSITION,
+  pattern GL_CURRENT_RASTER_POSITION_VALID,
+  pattern GL_CURRENT_RASTER_SECONDARY_COLOR,
+  pattern GL_CURRENT_RASTER_TEXTURE_COORDS,
+  pattern GL_CURRENT_SECONDARY_COLOR,
+  pattern GL_CURRENT_TEXTURE_COORDS,
+  pattern GL_CURRENT_VERTEX_ATTRIB,
+  pattern GL_CW,
+  pattern GL_DECAL,
+  pattern GL_DECR,
+  pattern GL_DECR_WRAP,
+  pattern GL_DELETE_STATUS,
+  pattern GL_DEPTH,
+  pattern GL_DEPTH24_STENCIL8,
+  pattern GL_DEPTH32F_STENCIL8,
+  pattern GL_DEPTH_ATTACHMENT,
+  pattern GL_DEPTH_BIAS,
+  pattern GL_DEPTH_BITS,
+  pattern GL_DEPTH_BUFFER_BIT,
+  pattern GL_DEPTH_CLAMP,
+  pattern GL_DEPTH_CLEAR_VALUE,
+  pattern GL_DEPTH_COMPONENT,
+  pattern GL_DEPTH_COMPONENT16,
+  pattern GL_DEPTH_COMPONENT24,
+  pattern GL_DEPTH_COMPONENT32,
+  pattern GL_DEPTH_COMPONENT32F,
+  pattern GL_DEPTH_FUNC,
+  pattern GL_DEPTH_RANGE,
+  pattern GL_DEPTH_SCALE,
+  pattern GL_DEPTH_STENCIL,
+  pattern GL_DEPTH_STENCIL_ATTACHMENT,
+  pattern GL_DEPTH_TEST,
+  pattern GL_DEPTH_TEXTURE_MODE,
+  pattern GL_DEPTH_WRITEMASK,
+  pattern GL_DIFFUSE,
+  pattern GL_DITHER,
+  pattern GL_DOMAIN,
+  pattern GL_DONT_CARE,
+  pattern GL_DOT3_RGB,
+  pattern GL_DOT3_RGBA,
+  pattern GL_DOUBLE,
+  pattern GL_DOUBLEBUFFER,
+  pattern GL_DOUBLE_MAT2,
+  pattern GL_DOUBLE_MAT2x3,
+  pattern GL_DOUBLE_MAT2x4,
+  pattern GL_DOUBLE_MAT3,
+  pattern GL_DOUBLE_MAT3x2,
+  pattern GL_DOUBLE_MAT3x4,
+  pattern GL_DOUBLE_MAT4,
+  pattern GL_DOUBLE_MAT4x2,
+  pattern GL_DOUBLE_MAT4x3,
+  pattern GL_DOUBLE_VEC2,
+  pattern GL_DOUBLE_VEC3,
+  pattern GL_DOUBLE_VEC4,
+  pattern GL_DRAW_BUFFER,
+  pattern GL_DRAW_BUFFER0,
+  pattern GL_DRAW_BUFFER1,
+  pattern GL_DRAW_BUFFER10,
+  pattern GL_DRAW_BUFFER11,
+  pattern GL_DRAW_BUFFER12,
+  pattern GL_DRAW_BUFFER13,
+  pattern GL_DRAW_BUFFER14,
+  pattern GL_DRAW_BUFFER15,
+  pattern GL_DRAW_BUFFER2,
+  pattern GL_DRAW_BUFFER3,
+  pattern GL_DRAW_BUFFER4,
+  pattern GL_DRAW_BUFFER5,
+  pattern GL_DRAW_BUFFER6,
+  pattern GL_DRAW_BUFFER7,
+  pattern GL_DRAW_BUFFER8,
+  pattern GL_DRAW_BUFFER9,
+  pattern GL_DRAW_FRAMEBUFFER,
+  pattern GL_DRAW_FRAMEBUFFER_BINDING,
+  pattern GL_DRAW_INDIRECT_BUFFER,
+  pattern GL_DRAW_INDIRECT_BUFFER_BINDING,
+  pattern GL_DRAW_PIXEL_TOKEN,
+  pattern GL_DST_ALPHA,
+  pattern GL_DST_COLOR,
+  pattern GL_DYNAMIC_COPY,
+  pattern GL_DYNAMIC_DRAW,
+  pattern GL_DYNAMIC_READ,
+  pattern GL_EDGE_FLAG,
+  pattern GL_EDGE_FLAG_ARRAY,
+  pattern GL_EDGE_FLAG_ARRAY_BUFFER_BINDING,
+  pattern GL_EDGE_FLAG_ARRAY_POINTER,
+  pattern GL_EDGE_FLAG_ARRAY_STRIDE,
+  pattern GL_ELEMENT_ARRAY_BUFFER,
+  pattern GL_ELEMENT_ARRAY_BUFFER_BINDING,
+  pattern GL_EMISSION,
+  pattern GL_ENABLE_BIT,
+  pattern GL_EQUAL,
+  pattern GL_EQUIV,
+  pattern GL_EVAL_BIT,
+  pattern GL_EXP,
+  pattern GL_EXP2,
+  pattern GL_EXTENSIONS,
+  pattern GL_EYE_LINEAR,
+  pattern GL_EYE_PLANE,
+  pattern GL_FALSE,
+  pattern GL_FASTEST,
+  pattern GL_FEEDBACK,
+  pattern GL_FEEDBACK_BUFFER_POINTER,
+  pattern GL_FEEDBACK_BUFFER_SIZE,
+  pattern GL_FEEDBACK_BUFFER_TYPE,
+  pattern GL_FILL,
+  pattern GL_FIRST_VERTEX_CONVENTION,
+  pattern GL_FIXED_ONLY,
+  pattern GL_FLAT,
+  pattern GL_FLOAT,
+  pattern GL_FLOAT_32_UNSIGNED_INT_24_8_REV,
+  pattern GL_FLOAT_MAT2,
+  pattern GL_FLOAT_MAT2x3,
+  pattern GL_FLOAT_MAT2x4,
+  pattern GL_FLOAT_MAT3,
+  pattern GL_FLOAT_MAT3x2,
+  pattern GL_FLOAT_MAT3x4,
+  pattern GL_FLOAT_MAT4,
+  pattern GL_FLOAT_MAT4x2,
+  pattern GL_FLOAT_MAT4x3,
+  pattern GL_FLOAT_VEC2,
+  pattern GL_FLOAT_VEC3,
+  pattern GL_FLOAT_VEC4,
+  pattern GL_FOG,
+  pattern GL_FOG_BIT,
+  pattern GL_FOG_COLOR,
+  pattern GL_FOG_COORD,
+  pattern GL_FOG_COORDINATE,
+  pattern GL_FOG_COORDINATE_ARRAY,
+  pattern GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING,
+  pattern GL_FOG_COORDINATE_ARRAY_POINTER,
+  pattern GL_FOG_COORDINATE_ARRAY_STRIDE,
+  pattern GL_FOG_COORDINATE_ARRAY_TYPE,
+  pattern GL_FOG_COORDINATE_SOURCE,
+  pattern GL_FOG_COORD_ARRAY,
+  pattern GL_FOG_COORD_ARRAY_BUFFER_BINDING,
+  pattern GL_FOG_COORD_ARRAY_POINTER,
+  pattern GL_FOG_COORD_ARRAY_STRIDE,
+  pattern GL_FOG_COORD_ARRAY_TYPE,
+  pattern GL_FOG_COORD_SRC,
+  pattern GL_FOG_DENSITY,
+  pattern GL_FOG_END,
+  pattern GL_FOG_HINT,
+  pattern GL_FOG_INDEX,
+  pattern GL_FOG_MODE,
+  pattern GL_FOG_START,
+  pattern GL_FRACTIONAL_EVEN,
+  pattern GL_FRACTIONAL_ODD,
+  pattern GL_FRAGMENT_DEPTH,
+  pattern GL_FRAGMENT_INTERPOLATION_OFFSET_BITS,
+  pattern GL_FRAGMENT_SHADER,
+  pattern GL_FRAGMENT_SHADER_DERIVATIVE_HINT,
+  pattern GL_FRAMEBUFFER,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL,
+  pattern GL_FRAMEBUFFER_BINDING,
+  pattern GL_FRAMEBUFFER_COMPLETE,
+  pattern GL_FRAMEBUFFER_DEFAULT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER,
+  pattern GL_FRAMEBUFFER_SRGB,
+  pattern GL_FRAMEBUFFER_UNDEFINED,
+  pattern GL_FRAMEBUFFER_UNSUPPORTED,
+  pattern GL_FRONT,
+  pattern GL_FRONT_AND_BACK,
+  pattern GL_FRONT_FACE,
+  pattern GL_FRONT_LEFT,
+  pattern GL_FRONT_RIGHT,
+  pattern GL_FUNC_ADD,
+  pattern GL_FUNC_REVERSE_SUBTRACT,
+  pattern GL_FUNC_SUBTRACT,
+  pattern GL_GENERATE_MIPMAP,
+  pattern GL_GENERATE_MIPMAP_HINT,
+  pattern GL_GEOMETRY_INPUT_TYPE,
+  pattern GL_GEOMETRY_OUTPUT_TYPE,
+  pattern GL_GEOMETRY_SHADER,
+  pattern GL_GEOMETRY_SHADER_INVOCATIONS,
+  pattern GL_GEOMETRY_VERTICES_OUT,
+  pattern GL_GEQUAL,
+  pattern GL_GREATER,
+  pattern GL_GREEN,
+  pattern GL_GREEN_BIAS,
+  pattern GL_GREEN_BITS,
+  pattern GL_GREEN_INTEGER,
+  pattern GL_GREEN_SCALE,
+  pattern GL_HALF_FLOAT,
+  pattern GL_HINT_BIT,
+  pattern GL_INCR,
+  pattern GL_INCR_WRAP,
+  pattern GL_INDEX,
+  pattern GL_INDEX_ARRAY,
+  pattern GL_INDEX_ARRAY_BUFFER_BINDING,
+  pattern GL_INDEX_ARRAY_POINTER,
+  pattern GL_INDEX_ARRAY_STRIDE,
+  pattern GL_INDEX_ARRAY_TYPE,
+  pattern GL_INDEX_BITS,
+  pattern GL_INDEX_CLEAR_VALUE,
+  pattern GL_INDEX_LOGIC_OP,
+  pattern GL_INDEX_MODE,
+  pattern GL_INDEX_OFFSET,
+  pattern GL_INDEX_SHIFT,
+  pattern GL_INDEX_WRITEMASK,
+  pattern GL_INFO_LOG_LENGTH,
+  pattern GL_INT,
+  pattern GL_INTENSITY,
+  pattern GL_INTENSITY12,
+  pattern GL_INTENSITY16,
+  pattern GL_INTENSITY4,
+  pattern GL_INTENSITY8,
+  pattern GL_INTERLEAVED_ATTRIBS,
+  pattern GL_INTERPOLATE,
+  pattern GL_INT_2_10_10_10_REV,
+  pattern GL_INT_SAMPLER_1D,
+  pattern GL_INT_SAMPLER_1D_ARRAY,
+  pattern GL_INT_SAMPLER_2D,
+  pattern GL_INT_SAMPLER_2D_ARRAY,
+  pattern GL_INT_SAMPLER_2D_MULTISAMPLE,
+  pattern GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY,
+  pattern GL_INT_SAMPLER_2D_RECT,
+  pattern GL_INT_SAMPLER_3D,
+  pattern GL_INT_SAMPLER_BUFFER,
+  pattern GL_INT_SAMPLER_CUBE,
+  pattern GL_INT_SAMPLER_CUBE_MAP_ARRAY,
+  pattern GL_INT_VEC2,
+  pattern GL_INT_VEC3,
+  pattern GL_INT_VEC4,
+  pattern GL_INVALID_ENUM,
+  pattern GL_INVALID_FRAMEBUFFER_OPERATION,
+  pattern GL_INVALID_INDEX,
+  pattern GL_INVALID_OPERATION,
+  pattern GL_INVALID_VALUE,
+  pattern GL_INVERT,
+  pattern GL_ISOLINES,
+  pattern GL_KEEP,
+  pattern GL_LAST_VERTEX_CONVENTION,
+  pattern GL_LEFT,
+  pattern GL_LEQUAL,
+  pattern GL_LESS,
+  pattern GL_LIGHT0,
+  pattern GL_LIGHT1,
+  pattern GL_LIGHT2,
+  pattern GL_LIGHT3,
+  pattern GL_LIGHT4,
+  pattern GL_LIGHT5,
+  pattern GL_LIGHT6,
+  pattern GL_LIGHT7,
+  pattern GL_LIGHTING,
+  pattern GL_LIGHTING_BIT,
+  pattern GL_LIGHT_MODEL_AMBIENT,
+  pattern GL_LIGHT_MODEL_COLOR_CONTROL,
+  pattern GL_LIGHT_MODEL_LOCAL_VIEWER,
+  pattern GL_LIGHT_MODEL_TWO_SIDE,
+  pattern GL_LINE,
+  pattern GL_LINEAR,
+  pattern GL_LINEAR_ATTENUATION,
+  pattern GL_LINEAR_MIPMAP_LINEAR,
+  pattern GL_LINEAR_MIPMAP_NEAREST,
+  pattern GL_LINES,
+  pattern GL_LINES_ADJACENCY,
+  pattern GL_LINE_BIT,
+  pattern GL_LINE_LOOP,
+  pattern GL_LINE_RESET_TOKEN,
+  pattern GL_LINE_SMOOTH,
+  pattern GL_LINE_SMOOTH_HINT,
+  pattern GL_LINE_STIPPLE,
+  pattern GL_LINE_STIPPLE_PATTERN,
+  pattern GL_LINE_STIPPLE_REPEAT,
+  pattern GL_LINE_STRIP,
+  pattern GL_LINE_STRIP_ADJACENCY,
+  pattern GL_LINE_TOKEN,
+  pattern GL_LINE_WIDTH,
+  pattern GL_LINE_WIDTH_GRANULARITY,
+  pattern GL_LINE_WIDTH_RANGE,
+  pattern GL_LINK_STATUS,
+  pattern GL_LIST_BASE,
+  pattern GL_LIST_BIT,
+  pattern GL_LIST_INDEX,
+  pattern GL_LIST_MODE,
+  pattern GL_LOAD,
+  pattern GL_LOGIC_OP,
+  pattern GL_LOGIC_OP_MODE,
+  pattern GL_LOWER_LEFT,
+  pattern GL_LUMINANCE,
+  pattern GL_LUMINANCE12,
+  pattern GL_LUMINANCE12_ALPHA12,
+  pattern GL_LUMINANCE12_ALPHA4,
+  pattern GL_LUMINANCE16,
+  pattern GL_LUMINANCE16_ALPHA16,
+  pattern GL_LUMINANCE4,
+  pattern GL_LUMINANCE4_ALPHA4,
+  pattern GL_LUMINANCE6_ALPHA2,
+  pattern GL_LUMINANCE8,
+  pattern GL_LUMINANCE8_ALPHA8,
+  pattern GL_LUMINANCE_ALPHA,
+  pattern GL_MAJOR_VERSION,
+  pattern GL_MAP1_COLOR_4,
+  pattern GL_MAP1_GRID_DOMAIN,
+  pattern GL_MAP1_GRID_SEGMENTS,
+  pattern GL_MAP1_INDEX,
+  pattern GL_MAP1_NORMAL,
+  pattern GL_MAP1_TEXTURE_COORD_1,
+  pattern GL_MAP1_TEXTURE_COORD_2,
+  pattern GL_MAP1_TEXTURE_COORD_3,
+  pattern GL_MAP1_TEXTURE_COORD_4,
+  pattern GL_MAP1_VERTEX_3,
+  pattern GL_MAP1_VERTEX_4,
+  pattern GL_MAP2_COLOR_4,
+  pattern GL_MAP2_GRID_DOMAIN,
+  pattern GL_MAP2_GRID_SEGMENTS,
+  pattern GL_MAP2_INDEX,
+  pattern GL_MAP2_NORMAL,
+  pattern GL_MAP2_TEXTURE_COORD_1,
+  pattern GL_MAP2_TEXTURE_COORD_2,
+  pattern GL_MAP2_TEXTURE_COORD_3,
+  pattern GL_MAP2_TEXTURE_COORD_4,
+  pattern GL_MAP2_VERTEX_3,
+  pattern GL_MAP2_VERTEX_4,
+  pattern GL_MAP_COLOR,
+  pattern GL_MAP_FLUSH_EXPLICIT_BIT,
+  pattern GL_MAP_INVALIDATE_BUFFER_BIT,
+  pattern GL_MAP_INVALIDATE_RANGE_BIT,
+  pattern GL_MAP_READ_BIT,
+  pattern GL_MAP_STENCIL,
+  pattern GL_MAP_UNSYNCHRONIZED_BIT,
+  pattern GL_MAP_WRITE_BIT,
+  pattern GL_MATRIX_MODE,
+  pattern GL_MAX,
+  pattern GL_MAX_3D_TEXTURE_SIZE,
+  pattern GL_MAX_ARRAY_TEXTURE_LAYERS,
+  pattern GL_MAX_ATTRIB_STACK_DEPTH,
+  pattern GL_MAX_CLIENT_ATTRIB_STACK_DEPTH,
+  pattern GL_MAX_CLIP_DISTANCES,
+  pattern GL_MAX_CLIP_PLANES,
+  pattern GL_MAX_COLOR_ATTACHMENTS,
+  pattern GL_MAX_COLOR_TEXTURE_SAMPLES,
+  pattern GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_COMBINED_UNIFORM_BLOCKS,
+  pattern GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS,
+  pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE,
+  pattern GL_MAX_DEPTH_TEXTURE_SAMPLES,
+  pattern GL_MAX_DRAW_BUFFERS,
+  pattern GL_MAX_DUAL_SOURCE_DRAW_BUFFERS,
+  pattern GL_MAX_ELEMENTS_INDICES,
+  pattern GL_MAX_ELEMENTS_VERTICES,
+  pattern GL_MAX_EVAL_ORDER,
+  pattern GL_MAX_FRAGMENT_INPUT_COMPONENTS,
+  pattern GL_MAX_FRAGMENT_INTERPOLATION_OFFSET,
+  pattern GL_MAX_FRAGMENT_UNIFORM_BLOCKS,
+  pattern GL_MAX_FRAGMENT_UNIFORM_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_INPUT_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_OUTPUT_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_OUTPUT_VERTICES,
+  pattern GL_MAX_GEOMETRY_SHADER_INVOCATIONS,
+  pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_UNIFORM_BLOCKS,
+  pattern GL_MAX_GEOMETRY_UNIFORM_COMPONENTS,
+  pattern GL_MAX_INTEGER_SAMPLES,
+  pattern GL_MAX_LIGHTS,
+  pattern GL_MAX_LIST_NESTING,
+  pattern GL_MAX_MODELVIEW_STACK_DEPTH,
+  pattern GL_MAX_NAME_STACK_DEPTH,
+  pattern GL_MAX_PATCH_VERTICES,
+  pattern GL_MAX_PIXEL_MAP_TABLE,
+  pattern GL_MAX_PROGRAM_TEXEL_OFFSET,
+  pattern GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET,
+  pattern GL_MAX_PROJECTION_STACK_DEPTH,
+  pattern GL_MAX_RECTANGLE_TEXTURE_SIZE,
+  pattern GL_MAX_RENDERBUFFER_SIZE,
+  pattern GL_MAX_SAMPLES,
+  pattern GL_MAX_SAMPLE_MASK_WORDS,
+  pattern GL_MAX_SERVER_WAIT_TIMEOUT,
+  pattern GL_MAX_SUBROUTINES,
+  pattern GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS,
+  pattern GL_MAX_TESS_CONTROL_INPUT_COMPONENTS,
+  pattern GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS,
+  pattern GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS,
+  pattern GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS,
+  pattern GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS,
+  pattern GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS,
+  pattern GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS,
+  pattern GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS,
+  pattern GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS,
+  pattern GL_MAX_TESS_GEN_LEVEL,
+  pattern GL_MAX_TESS_PATCH_COMPONENTS,
+  pattern GL_MAX_TEXTURE_BUFFER_SIZE,
+  pattern GL_MAX_TEXTURE_COORDS,
+  pattern GL_MAX_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_TEXTURE_LOD_BIAS,
+  pattern GL_MAX_TEXTURE_SIZE,
+  pattern GL_MAX_TEXTURE_STACK_DEPTH,
+  pattern GL_MAX_TEXTURE_UNITS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_BUFFERS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS,
+  pattern GL_MAX_UNIFORM_BLOCK_SIZE,
+  pattern GL_MAX_UNIFORM_BUFFER_BINDINGS,
+  pattern GL_MAX_VARYING_COMPONENTS,
+  pattern GL_MAX_VARYING_FLOATS,
+  pattern GL_MAX_VERTEX_ATTRIBS,
+  pattern GL_MAX_VERTEX_OUTPUT_COMPONENTS,
+  pattern GL_MAX_VERTEX_STREAMS,
+  pattern GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_VERTEX_UNIFORM_BLOCKS,
+  pattern GL_MAX_VERTEX_UNIFORM_COMPONENTS,
+  pattern GL_MAX_VIEWPORT_DIMS,
+  pattern GL_MIN,
+  pattern GL_MINOR_VERSION,
+  pattern GL_MIN_FRAGMENT_INTERPOLATION_OFFSET,
+  pattern GL_MIN_PROGRAM_TEXEL_OFFSET,
+  pattern GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET,
+  pattern GL_MIN_SAMPLE_SHADING_VALUE,
+  pattern GL_MIRRORED_REPEAT,
+  pattern GL_MODELVIEW,
+  pattern GL_MODELVIEW_MATRIX,
+  pattern GL_MODELVIEW_STACK_DEPTH,
+  pattern GL_MODULATE,
+  pattern GL_MULT,
+  pattern GL_MULTISAMPLE,
+  pattern GL_MULTISAMPLE_BIT,
+  pattern GL_N3F_V3F,
+  pattern GL_NAME_STACK_DEPTH,
+  pattern GL_NAND,
+  pattern GL_NEAREST,
+  pattern GL_NEAREST_MIPMAP_LINEAR,
+  pattern GL_NEAREST_MIPMAP_NEAREST,
+  pattern GL_NEVER,
+  pattern GL_NICEST,
+  pattern GL_NONE,
+  pattern GL_NOOP,
+  pattern GL_NOR,
+  pattern GL_NORMALIZE,
+  pattern GL_NORMAL_ARRAY,
+  pattern GL_NORMAL_ARRAY_BUFFER_BINDING,
+  pattern GL_NORMAL_ARRAY_POINTER,
+  pattern GL_NORMAL_ARRAY_STRIDE,
+  pattern GL_NORMAL_ARRAY_TYPE,
+  pattern GL_NORMAL_MAP,
+  pattern GL_NOTEQUAL,
+  pattern GL_NO_ERROR,
+  pattern GL_NUM_COMPATIBLE_SUBROUTINES,
+  pattern GL_NUM_COMPRESSED_TEXTURE_FORMATS,
+  pattern GL_NUM_EXTENSIONS,
+  pattern GL_OBJECT_LINEAR,
+  pattern GL_OBJECT_PLANE,
+  pattern GL_OBJECT_TYPE,
+  pattern GL_ONE,
+  pattern GL_ONE_MINUS_CONSTANT_ALPHA,
+  pattern GL_ONE_MINUS_CONSTANT_COLOR,
+  pattern GL_ONE_MINUS_DST_ALPHA,
+  pattern GL_ONE_MINUS_DST_COLOR,
+  pattern GL_ONE_MINUS_SRC1_ALPHA,
+  pattern GL_ONE_MINUS_SRC1_COLOR,
+  pattern GL_ONE_MINUS_SRC_ALPHA,
+  pattern GL_ONE_MINUS_SRC_COLOR,
+  pattern GL_OPERAND0_ALPHA,
+  pattern GL_OPERAND0_RGB,
+  pattern GL_OPERAND1_ALPHA,
+  pattern GL_OPERAND1_RGB,
+  pattern GL_OPERAND2_ALPHA,
+  pattern GL_OPERAND2_RGB,
+  pattern GL_OR,
+  pattern GL_ORDER,
+  pattern GL_OR_INVERTED,
+  pattern GL_OR_REVERSE,
+  pattern GL_OUT_OF_MEMORY,
+  pattern GL_PACK_ALIGNMENT,
+  pattern GL_PACK_IMAGE_HEIGHT,
+  pattern GL_PACK_LSB_FIRST,
+  pattern GL_PACK_ROW_LENGTH,
+  pattern GL_PACK_SKIP_IMAGES,
+  pattern GL_PACK_SKIP_PIXELS,
+  pattern GL_PACK_SKIP_ROWS,
+  pattern GL_PACK_SWAP_BYTES,
+  pattern GL_PASS_THROUGH_TOKEN,
+  pattern GL_PATCHES,
+  pattern GL_PATCH_DEFAULT_INNER_LEVEL,
+  pattern GL_PATCH_DEFAULT_OUTER_LEVEL,
+  pattern GL_PATCH_VERTICES,
+  pattern GL_PERSPECTIVE_CORRECTION_HINT,
+  pattern GL_PIXEL_MAP_A_TO_A,
+  pattern GL_PIXEL_MAP_A_TO_A_SIZE,
+  pattern GL_PIXEL_MAP_B_TO_B,
+  pattern GL_PIXEL_MAP_B_TO_B_SIZE,
+  pattern GL_PIXEL_MAP_G_TO_G,
+  pattern GL_PIXEL_MAP_G_TO_G_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_A,
+  pattern GL_PIXEL_MAP_I_TO_A_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_B,
+  pattern GL_PIXEL_MAP_I_TO_B_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_G,
+  pattern GL_PIXEL_MAP_I_TO_G_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_I,
+  pattern GL_PIXEL_MAP_I_TO_I_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_R,
+  pattern GL_PIXEL_MAP_I_TO_R_SIZE,
+  pattern GL_PIXEL_MAP_R_TO_R,
+  pattern GL_PIXEL_MAP_R_TO_R_SIZE,
+  pattern GL_PIXEL_MAP_S_TO_S,
+  pattern GL_PIXEL_MAP_S_TO_S_SIZE,
+  pattern GL_PIXEL_MODE_BIT,
+  pattern GL_PIXEL_PACK_BUFFER,
+  pattern GL_PIXEL_PACK_BUFFER_BINDING,
+  pattern GL_PIXEL_UNPACK_BUFFER,
+  pattern GL_PIXEL_UNPACK_BUFFER_BINDING,
+  pattern GL_POINT,
+  pattern GL_POINTS,
+  pattern GL_POINT_BIT,
+  pattern GL_POINT_DISTANCE_ATTENUATION,
+  pattern GL_POINT_FADE_THRESHOLD_SIZE,
+  pattern GL_POINT_SIZE,
+  pattern GL_POINT_SIZE_GRANULARITY,
+  pattern GL_POINT_SIZE_MAX,
+  pattern GL_POINT_SIZE_MIN,
+  pattern GL_POINT_SIZE_RANGE,
+  pattern GL_POINT_SMOOTH,
+  pattern GL_POINT_SMOOTH_HINT,
+  pattern GL_POINT_SPRITE,
+  pattern GL_POINT_SPRITE_COORD_ORIGIN,
+  pattern GL_POINT_TOKEN,
+  pattern GL_POLYGON,
+  pattern GL_POLYGON_BIT,
+  pattern GL_POLYGON_MODE,
+  pattern GL_POLYGON_OFFSET_FACTOR,
+  pattern GL_POLYGON_OFFSET_FILL,
+  pattern GL_POLYGON_OFFSET_LINE,
+  pattern GL_POLYGON_OFFSET_POINT,
+  pattern GL_POLYGON_OFFSET_UNITS,
+  pattern GL_POLYGON_SMOOTH,
+  pattern GL_POLYGON_SMOOTH_HINT,
+  pattern GL_POLYGON_STIPPLE,
+  pattern GL_POLYGON_STIPPLE_BIT,
+  pattern GL_POLYGON_TOKEN,
+  pattern GL_POSITION,
+  pattern GL_PREVIOUS,
+  pattern GL_PRIMARY_COLOR,
+  pattern GL_PRIMITIVES_GENERATED,
+  pattern GL_PRIMITIVE_RESTART,
+  pattern GL_PRIMITIVE_RESTART_INDEX,
+  pattern GL_PROGRAM_POINT_SIZE,
+  pattern GL_PROJECTION,
+  pattern GL_PROJECTION_MATRIX,
+  pattern GL_PROJECTION_STACK_DEPTH,
+  pattern GL_PROVOKING_VERTEX,
+  pattern GL_PROXY_TEXTURE_1D,
+  pattern GL_PROXY_TEXTURE_1D_ARRAY,
+  pattern GL_PROXY_TEXTURE_2D,
+  pattern GL_PROXY_TEXTURE_2D_ARRAY,
+  pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE,
+  pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_PROXY_TEXTURE_3D,
+  pattern GL_PROXY_TEXTURE_CUBE_MAP,
+  pattern GL_PROXY_TEXTURE_CUBE_MAP_ARRAY,
+  pattern GL_PROXY_TEXTURE_RECTANGLE,
+  pattern GL_Q,
+  pattern GL_QUADRATIC_ATTENUATION,
+  pattern GL_QUADS,
+  pattern GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION,
+  pattern GL_QUAD_STRIP,
+  pattern GL_QUERY_BY_REGION_NO_WAIT,
+  pattern GL_QUERY_BY_REGION_WAIT,
+  pattern GL_QUERY_COUNTER_BITS,
+  pattern GL_QUERY_NO_WAIT,
+  pattern GL_QUERY_RESULT,
+  pattern GL_QUERY_RESULT_AVAILABLE,
+  pattern GL_QUERY_WAIT,
+  pattern GL_R,
+  pattern GL_R11F_G11F_B10F,
+  pattern GL_R16,
+  pattern GL_R16F,
+  pattern GL_R16I,
+  pattern GL_R16UI,
+  pattern GL_R16_SNORM,
+  pattern GL_R32F,
+  pattern GL_R32I,
+  pattern GL_R32UI,
+  pattern GL_R3_G3_B2,
+  pattern GL_R8,
+  pattern GL_R8I,
+  pattern GL_R8UI,
+  pattern GL_R8_SNORM,
+  pattern GL_RASTERIZER_DISCARD,
+  pattern GL_READ_BUFFER,
+  pattern GL_READ_FRAMEBUFFER,
+  pattern GL_READ_FRAMEBUFFER_BINDING,
+  pattern GL_READ_ONLY,
+  pattern GL_READ_WRITE,
+  pattern GL_RED,
+  pattern GL_RED_BIAS,
+  pattern GL_RED_BITS,
+  pattern GL_RED_INTEGER,
+  pattern GL_RED_SCALE,
+  pattern GL_REFLECTION_MAP,
+  pattern GL_RENDER,
+  pattern GL_RENDERBUFFER,
+  pattern GL_RENDERBUFFER_ALPHA_SIZE,
+  pattern GL_RENDERBUFFER_BINDING,
+  pattern GL_RENDERBUFFER_BLUE_SIZE,
+  pattern GL_RENDERBUFFER_DEPTH_SIZE,
+  pattern GL_RENDERBUFFER_GREEN_SIZE,
+  pattern GL_RENDERBUFFER_HEIGHT,
+  pattern GL_RENDERBUFFER_INTERNAL_FORMAT,
+  pattern GL_RENDERBUFFER_RED_SIZE,
+  pattern GL_RENDERBUFFER_SAMPLES,
+  pattern GL_RENDERBUFFER_STENCIL_SIZE,
+  pattern GL_RENDERBUFFER_WIDTH,
+  pattern GL_RENDERER,
+  pattern GL_RENDER_MODE,
+  pattern GL_REPEAT,
+  pattern GL_REPLACE,
+  pattern GL_RESCALE_NORMAL,
+  pattern GL_RETURN,
+  pattern GL_RG,
+  pattern GL_RG16,
+  pattern GL_RG16F,
+  pattern GL_RG16I,
+  pattern GL_RG16UI,
+  pattern GL_RG16_SNORM,
+  pattern GL_RG32F,
+  pattern GL_RG32I,
+  pattern GL_RG32UI,
+  pattern GL_RG8,
+  pattern GL_RG8I,
+  pattern GL_RG8UI,
+  pattern GL_RG8_SNORM,
+  pattern GL_RGB,
+  pattern GL_RGB10,
+  pattern GL_RGB10_A2,
+  pattern GL_RGB10_A2UI,
+  pattern GL_RGB12,
+  pattern GL_RGB16,
+  pattern GL_RGB16F,
+  pattern GL_RGB16I,
+  pattern GL_RGB16UI,
+  pattern GL_RGB16_SNORM,
+  pattern GL_RGB32F,
+  pattern GL_RGB32I,
+  pattern GL_RGB32UI,
+  pattern GL_RGB4,
+  pattern GL_RGB5,
+  pattern GL_RGB5_A1,
+  pattern GL_RGB8,
+  pattern GL_RGB8I,
+  pattern GL_RGB8UI,
+  pattern GL_RGB8_SNORM,
+  pattern GL_RGB9_E5,
+  pattern GL_RGBA,
+  pattern GL_RGBA12,
+  pattern GL_RGBA16,
+  pattern GL_RGBA16F,
+  pattern GL_RGBA16I,
+  pattern GL_RGBA16UI,
+  pattern GL_RGBA16_SNORM,
+  pattern GL_RGBA2,
+  pattern GL_RGBA32F,
+  pattern GL_RGBA32I,
+  pattern GL_RGBA32UI,
+  pattern GL_RGBA4,
+  pattern GL_RGBA8,
+  pattern GL_RGBA8I,
+  pattern GL_RGBA8UI,
+  pattern GL_RGBA8_SNORM,
+  pattern GL_RGBA_INTEGER,
+  pattern GL_RGBA_MODE,
+  pattern GL_RGB_INTEGER,
+  pattern GL_RGB_SCALE,
+  pattern GL_RG_INTEGER,
+  pattern GL_RIGHT,
+  pattern GL_S,
+  pattern GL_SAMPLER_1D,
+  pattern GL_SAMPLER_1D_ARRAY,
+  pattern GL_SAMPLER_1D_ARRAY_SHADOW,
+  pattern GL_SAMPLER_1D_SHADOW,
+  pattern GL_SAMPLER_2D,
+  pattern GL_SAMPLER_2D_ARRAY,
+  pattern GL_SAMPLER_2D_ARRAY_SHADOW,
+  pattern GL_SAMPLER_2D_MULTISAMPLE,
+  pattern GL_SAMPLER_2D_MULTISAMPLE_ARRAY,
+  pattern GL_SAMPLER_2D_RECT,
+  pattern GL_SAMPLER_2D_RECT_SHADOW,
+  pattern GL_SAMPLER_2D_SHADOW,
+  pattern GL_SAMPLER_3D,
+  pattern GL_SAMPLER_BINDING,
+  pattern GL_SAMPLER_BUFFER,
+  pattern GL_SAMPLER_CUBE,
+  pattern GL_SAMPLER_CUBE_MAP_ARRAY,
+  pattern GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW,
+  pattern GL_SAMPLER_CUBE_SHADOW,
+  pattern GL_SAMPLES,
+  pattern GL_SAMPLES_PASSED,
+  pattern GL_SAMPLE_ALPHA_TO_COVERAGE,
+  pattern GL_SAMPLE_ALPHA_TO_ONE,
+  pattern GL_SAMPLE_BUFFERS,
+  pattern GL_SAMPLE_COVERAGE,
+  pattern GL_SAMPLE_COVERAGE_INVERT,
+  pattern GL_SAMPLE_COVERAGE_VALUE,
+  pattern GL_SAMPLE_MASK,
+  pattern GL_SAMPLE_MASK_VALUE,
+  pattern GL_SAMPLE_POSITION,
+  pattern GL_SAMPLE_SHADING,
+  pattern GL_SCISSOR_BIT,
+  pattern GL_SCISSOR_BOX,
+  pattern GL_SCISSOR_TEST,
+  pattern GL_SECONDARY_COLOR_ARRAY,
+  pattern GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING,
+  pattern GL_SECONDARY_COLOR_ARRAY_POINTER,
+  pattern GL_SECONDARY_COLOR_ARRAY_SIZE,
+  pattern GL_SECONDARY_COLOR_ARRAY_STRIDE,
+  pattern GL_SECONDARY_COLOR_ARRAY_TYPE,
+  pattern GL_SELECT,
+  pattern GL_SELECTION_BUFFER_POINTER,
+  pattern GL_SELECTION_BUFFER_SIZE,
+  pattern GL_SEPARATE_ATTRIBS,
+  pattern GL_SEPARATE_SPECULAR_COLOR,
+  pattern GL_SET,
+  pattern GL_SHADER_SOURCE_LENGTH,
+  pattern GL_SHADER_TYPE,
+  pattern GL_SHADE_MODEL,
+  pattern GL_SHADING_LANGUAGE_VERSION,
+  pattern GL_SHININESS,
+  pattern GL_SHORT,
+  pattern GL_SIGNALED,
+  pattern GL_SIGNED_NORMALIZED,
+  pattern GL_SINGLE_COLOR,
+  pattern GL_SLUMINANCE,
+  pattern GL_SLUMINANCE8,
+  pattern GL_SLUMINANCE8_ALPHA8,
+  pattern GL_SLUMINANCE_ALPHA,
+  pattern GL_SMOOTH,
+  pattern GL_SMOOTH_LINE_WIDTH_GRANULARITY,
+  pattern GL_SMOOTH_LINE_WIDTH_RANGE,
+  pattern GL_SMOOTH_POINT_SIZE_GRANULARITY,
+  pattern GL_SMOOTH_POINT_SIZE_RANGE,
+  pattern GL_SOURCE0_ALPHA,
+  pattern GL_SOURCE0_RGB,
+  pattern GL_SOURCE1_ALPHA,
+  pattern GL_SOURCE1_RGB,
+  pattern GL_SOURCE2_ALPHA,
+  pattern GL_SOURCE2_RGB,
+  pattern GL_SPECULAR,
+  pattern GL_SPHERE_MAP,
+  pattern GL_SPOT_CUTOFF,
+  pattern GL_SPOT_DIRECTION,
+  pattern GL_SPOT_EXPONENT,
+  pattern GL_SRC0_ALPHA,
+  pattern GL_SRC0_RGB,
+  pattern GL_SRC1_ALPHA,
+  pattern GL_SRC1_COLOR,
+  pattern GL_SRC1_RGB,
+  pattern GL_SRC2_ALPHA,
+  pattern GL_SRC2_RGB,
+  pattern GL_SRC_ALPHA,
+  pattern GL_SRC_ALPHA_SATURATE,
+  pattern GL_SRC_COLOR,
+  pattern GL_SRGB,
+  pattern GL_SRGB8,
+  pattern GL_SRGB8_ALPHA8,
+  pattern GL_SRGB_ALPHA,
+  pattern GL_STACK_OVERFLOW,
+  pattern GL_STACK_UNDERFLOW,
+  pattern GL_STATIC_COPY,
+  pattern GL_STATIC_DRAW,
+  pattern GL_STATIC_READ,
+  pattern GL_STENCIL,
+  pattern GL_STENCIL_ATTACHMENT,
+  pattern GL_STENCIL_BACK_FAIL,
+  pattern GL_STENCIL_BACK_FUNC,
+  pattern GL_STENCIL_BACK_PASS_DEPTH_FAIL,
+  pattern GL_STENCIL_BACK_PASS_DEPTH_PASS,
+  pattern GL_STENCIL_BACK_REF,
+  pattern GL_STENCIL_BACK_VALUE_MASK,
+  pattern GL_STENCIL_BACK_WRITEMASK,
+  pattern GL_STENCIL_BITS,
+  pattern GL_STENCIL_BUFFER_BIT,
+  pattern GL_STENCIL_CLEAR_VALUE,
+  pattern GL_STENCIL_FAIL,
+  pattern GL_STENCIL_FUNC,
+  pattern GL_STENCIL_INDEX,
+  pattern GL_STENCIL_INDEX1,
+  pattern GL_STENCIL_INDEX16,
+  pattern GL_STENCIL_INDEX4,
+  pattern GL_STENCIL_INDEX8,
+  pattern GL_STENCIL_PASS_DEPTH_FAIL,
+  pattern GL_STENCIL_PASS_DEPTH_PASS,
+  pattern GL_STENCIL_REF,
+  pattern GL_STENCIL_TEST,
+  pattern GL_STENCIL_VALUE_MASK,
+  pattern GL_STENCIL_WRITEMASK,
+  pattern GL_STEREO,
+  pattern GL_STREAM_COPY,
+  pattern GL_STREAM_DRAW,
+  pattern GL_STREAM_READ,
+  pattern GL_SUBPIXEL_BITS,
+  pattern GL_SUBTRACT,
+  pattern GL_SYNC_CONDITION,
+  pattern GL_SYNC_FENCE,
+  pattern GL_SYNC_FLAGS,
+  pattern GL_SYNC_FLUSH_COMMANDS_BIT,
+  pattern GL_SYNC_GPU_COMMANDS_COMPLETE,
+  pattern GL_SYNC_STATUS,
+  pattern GL_T,
+  pattern GL_T2F_C3F_V3F,
+  pattern GL_T2F_C4F_N3F_V3F,
+  pattern GL_T2F_C4UB_V3F,
+  pattern GL_T2F_N3F_V3F,
+  pattern GL_T2F_V3F,
+  pattern GL_T4F_C4F_N3F_V4F,
+  pattern GL_T4F_V4F,
+  pattern GL_TESS_CONTROL_OUTPUT_VERTICES,
+  pattern GL_TESS_CONTROL_SHADER,
+  pattern GL_TESS_EVALUATION_SHADER,
+  pattern GL_TESS_GEN_MODE,
+  pattern GL_TESS_GEN_POINT_MODE,
+  pattern GL_TESS_GEN_SPACING,
+  pattern GL_TESS_GEN_VERTEX_ORDER,
+  pattern GL_TEXTURE,
+  pattern GL_TEXTURE0,
+  pattern GL_TEXTURE1,
+  pattern GL_TEXTURE10,
+  pattern GL_TEXTURE11,
+  pattern GL_TEXTURE12,
+  pattern GL_TEXTURE13,
+  pattern GL_TEXTURE14,
+  pattern GL_TEXTURE15,
+  pattern GL_TEXTURE16,
+  pattern GL_TEXTURE17,
+  pattern GL_TEXTURE18,
+  pattern GL_TEXTURE19,
+  pattern GL_TEXTURE2,
+  pattern GL_TEXTURE20,
+  pattern GL_TEXTURE21,
+  pattern GL_TEXTURE22,
+  pattern GL_TEXTURE23,
+  pattern GL_TEXTURE24,
+  pattern GL_TEXTURE25,
+  pattern GL_TEXTURE26,
+  pattern GL_TEXTURE27,
+  pattern GL_TEXTURE28,
+  pattern GL_TEXTURE29,
+  pattern GL_TEXTURE3,
+  pattern GL_TEXTURE30,
+  pattern GL_TEXTURE31,
+  pattern GL_TEXTURE4,
+  pattern GL_TEXTURE5,
+  pattern GL_TEXTURE6,
+  pattern GL_TEXTURE7,
+  pattern GL_TEXTURE8,
+  pattern GL_TEXTURE9,
+  pattern GL_TEXTURE_1D,
+  pattern GL_TEXTURE_1D_ARRAY,
+  pattern GL_TEXTURE_2D,
+  pattern GL_TEXTURE_2D_ARRAY,
+  pattern GL_TEXTURE_2D_MULTISAMPLE,
+  pattern GL_TEXTURE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_TEXTURE_3D,
+  pattern GL_TEXTURE_ALPHA_SIZE,
+  pattern GL_TEXTURE_ALPHA_TYPE,
+  pattern GL_TEXTURE_BASE_LEVEL,
+  pattern GL_TEXTURE_BINDING_1D,
+  pattern GL_TEXTURE_BINDING_1D_ARRAY,
+  pattern GL_TEXTURE_BINDING_2D,
+  pattern GL_TEXTURE_BINDING_2D_ARRAY,
+  pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE,
+  pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY,
+  pattern GL_TEXTURE_BINDING_3D,
+  pattern GL_TEXTURE_BINDING_BUFFER,
+  pattern GL_TEXTURE_BINDING_CUBE_MAP,
+  pattern GL_TEXTURE_BINDING_CUBE_MAP_ARRAY,
+  pattern GL_TEXTURE_BINDING_RECTANGLE,
+  pattern GL_TEXTURE_BIT,
+  pattern GL_TEXTURE_BLUE_SIZE,
+  pattern GL_TEXTURE_BLUE_TYPE,
+  pattern GL_TEXTURE_BORDER,
+  pattern GL_TEXTURE_BORDER_COLOR,
+  pattern GL_TEXTURE_BUFFER,
+  pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING,
+  pattern GL_TEXTURE_COMPARE_FUNC,
+  pattern GL_TEXTURE_COMPARE_MODE,
+  pattern GL_TEXTURE_COMPONENTS,
+  pattern GL_TEXTURE_COMPRESSED,
+  pattern GL_TEXTURE_COMPRESSED_IMAGE_SIZE,
+  pattern GL_TEXTURE_COMPRESSION_HINT,
+  pattern GL_TEXTURE_COORD_ARRAY,
+  pattern GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING,
+  pattern GL_TEXTURE_COORD_ARRAY_POINTER,
+  pattern GL_TEXTURE_COORD_ARRAY_SIZE,
+  pattern GL_TEXTURE_COORD_ARRAY_STRIDE,
+  pattern GL_TEXTURE_COORD_ARRAY_TYPE,
+  pattern GL_TEXTURE_CUBE_MAP,
+  pattern GL_TEXTURE_CUBE_MAP_ARRAY,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z,
+  pattern GL_TEXTURE_CUBE_MAP_SEAMLESS,
+  pattern GL_TEXTURE_DEPTH,
+  pattern GL_TEXTURE_DEPTH_SIZE,
+  pattern GL_TEXTURE_DEPTH_TYPE,
+  pattern GL_TEXTURE_ENV,
+  pattern GL_TEXTURE_ENV_COLOR,
+  pattern GL_TEXTURE_ENV_MODE,
+  pattern GL_TEXTURE_FILTER_CONTROL,
+  pattern GL_TEXTURE_FIXED_SAMPLE_LOCATIONS,
+  pattern GL_TEXTURE_GEN_MODE,
+  pattern GL_TEXTURE_GEN_Q,
+  pattern GL_TEXTURE_GEN_R,
+  pattern GL_TEXTURE_GEN_S,
+  pattern GL_TEXTURE_GEN_T,
+  pattern GL_TEXTURE_GREEN_SIZE,
+  pattern GL_TEXTURE_GREEN_TYPE,
+  pattern GL_TEXTURE_HEIGHT,
+  pattern GL_TEXTURE_INTENSITY_SIZE,
+  pattern GL_TEXTURE_INTENSITY_TYPE,
+  pattern GL_TEXTURE_INTERNAL_FORMAT,
+  pattern GL_TEXTURE_LOD_BIAS,
+  pattern GL_TEXTURE_LUMINANCE_SIZE,
+  pattern GL_TEXTURE_LUMINANCE_TYPE,
+  pattern GL_TEXTURE_MAG_FILTER,
+  pattern GL_TEXTURE_MATRIX,
+  pattern GL_TEXTURE_MAX_LEVEL,
+  pattern GL_TEXTURE_MAX_LOD,
+  pattern GL_TEXTURE_MIN_FILTER,
+  pattern GL_TEXTURE_MIN_LOD,
+  pattern GL_TEXTURE_PRIORITY,
+  pattern GL_TEXTURE_RECTANGLE,
+  pattern GL_TEXTURE_RED_SIZE,
+  pattern GL_TEXTURE_RED_TYPE,
+  pattern GL_TEXTURE_RESIDENT,
+  pattern GL_TEXTURE_SAMPLES,
+  pattern GL_TEXTURE_SHARED_SIZE,
+  pattern GL_TEXTURE_STACK_DEPTH,
+  pattern GL_TEXTURE_STENCIL_SIZE,
+  pattern GL_TEXTURE_SWIZZLE_A,
+  pattern GL_TEXTURE_SWIZZLE_B,
+  pattern GL_TEXTURE_SWIZZLE_G,
+  pattern GL_TEXTURE_SWIZZLE_R,
+  pattern GL_TEXTURE_SWIZZLE_RGBA,
+  pattern GL_TEXTURE_WIDTH,
+  pattern GL_TEXTURE_WRAP_R,
+  pattern GL_TEXTURE_WRAP_S,
+  pattern GL_TEXTURE_WRAP_T,
+  pattern GL_TIMEOUT_EXPIRED,
+  pattern GL_TIMEOUT_IGNORED,
+  pattern GL_TIMESTAMP,
+  pattern GL_TIME_ELAPSED,
+  pattern GL_TRANSFORM_BIT,
+  pattern GL_TRANSFORM_FEEDBACK,
+  pattern GL_TRANSFORM_FEEDBACK_BINDING,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_BINDING,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_MODE,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_SIZE,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_START,
+  pattern GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN,
+  pattern GL_TRANSFORM_FEEDBACK_VARYINGS,
+  pattern GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH,
+  pattern GL_TRANSPOSE_COLOR_MATRIX,
+  pattern GL_TRANSPOSE_MODELVIEW_MATRIX,
+  pattern GL_TRANSPOSE_PROJECTION_MATRIX,
+  pattern GL_TRANSPOSE_TEXTURE_MATRIX,
+  pattern GL_TRIANGLES,
+  pattern GL_TRIANGLES_ADJACENCY,
+  pattern GL_TRIANGLE_FAN,
+  pattern GL_TRIANGLE_STRIP,
+  pattern GL_TRIANGLE_STRIP_ADJACENCY,
+  pattern GL_TRUE,
+  pattern GL_UNIFORM_ARRAY_STRIDE,
+  pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS,
+  pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES,
+  pattern GL_UNIFORM_BLOCK_BINDING,
+  pattern GL_UNIFORM_BLOCK_DATA_SIZE,
+  pattern GL_UNIFORM_BLOCK_INDEX,
+  pattern GL_UNIFORM_BLOCK_NAME_LENGTH,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER,
+  pattern GL_UNIFORM_BUFFER,
+  pattern GL_UNIFORM_BUFFER_BINDING,
+  pattern GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT,
+  pattern GL_UNIFORM_BUFFER_SIZE,
+  pattern GL_UNIFORM_BUFFER_START,
+  pattern GL_UNIFORM_IS_ROW_MAJOR,
+  pattern GL_UNIFORM_MATRIX_STRIDE,
+  pattern GL_UNIFORM_NAME_LENGTH,
+  pattern GL_UNIFORM_OFFSET,
+  pattern GL_UNIFORM_SIZE,
+  pattern GL_UNIFORM_TYPE,
+  pattern GL_UNPACK_ALIGNMENT,
+  pattern GL_UNPACK_IMAGE_HEIGHT,
+  pattern GL_UNPACK_LSB_FIRST,
+  pattern GL_UNPACK_ROW_LENGTH,
+  pattern GL_UNPACK_SKIP_IMAGES,
+  pattern GL_UNPACK_SKIP_PIXELS,
+  pattern GL_UNPACK_SKIP_ROWS,
+  pattern GL_UNPACK_SWAP_BYTES,
+  pattern GL_UNSIGNALED,
+  pattern GL_UNSIGNED_BYTE,
+  pattern GL_UNSIGNED_BYTE_2_3_3_REV,
+  pattern GL_UNSIGNED_BYTE_3_3_2,
+  pattern GL_UNSIGNED_INT,
+  pattern GL_UNSIGNED_INT_10F_11F_11F_REV,
+  pattern GL_UNSIGNED_INT_10_10_10_2,
+  pattern GL_UNSIGNED_INT_24_8,
+  pattern GL_UNSIGNED_INT_2_10_10_10_REV,
+  pattern GL_UNSIGNED_INT_5_9_9_9_REV,
+  pattern GL_UNSIGNED_INT_8_8_8_8,
+  pattern GL_UNSIGNED_INT_8_8_8_8_REV,
+  pattern GL_UNSIGNED_INT_SAMPLER_1D,
+  pattern GL_UNSIGNED_INT_SAMPLER_1D_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_RECT,
+  pattern GL_UNSIGNED_INT_SAMPLER_3D,
+  pattern GL_UNSIGNED_INT_SAMPLER_BUFFER,
+  pattern GL_UNSIGNED_INT_SAMPLER_CUBE,
+  pattern GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY,
+  pattern GL_UNSIGNED_INT_VEC2,
+  pattern GL_UNSIGNED_INT_VEC3,
+  pattern GL_UNSIGNED_INT_VEC4,
+  pattern GL_UNSIGNED_NORMALIZED,
+  pattern GL_UNSIGNED_SHORT,
+  pattern GL_UNSIGNED_SHORT_1_5_5_5_REV,
+  pattern GL_UNSIGNED_SHORT_4_4_4_4,
+  pattern GL_UNSIGNED_SHORT_4_4_4_4_REV,
+  pattern GL_UNSIGNED_SHORT_5_5_5_1,
+  pattern GL_UNSIGNED_SHORT_5_6_5,
+  pattern GL_UNSIGNED_SHORT_5_6_5_REV,
+  pattern GL_UPPER_LEFT,
+  pattern GL_V2F,
+  pattern GL_V3F,
+  pattern GL_VALIDATE_STATUS,
+  pattern GL_VENDOR,
+  pattern GL_VERSION,
+  pattern GL_VERTEX_ARRAY,
+  pattern GL_VERTEX_ARRAY_BINDING,
+  pattern GL_VERTEX_ARRAY_BUFFER_BINDING,
+  pattern GL_VERTEX_ARRAY_POINTER,
+  pattern GL_VERTEX_ARRAY_SIZE,
+  pattern GL_VERTEX_ARRAY_STRIDE,
+  pattern GL_VERTEX_ARRAY_TYPE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING,
+  pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR,
+  pattern GL_VERTEX_ATTRIB_ARRAY_ENABLED,
+  pattern GL_VERTEX_ATTRIB_ARRAY_INTEGER,
+  pattern GL_VERTEX_ATTRIB_ARRAY_NORMALIZED,
+  pattern GL_VERTEX_ATTRIB_ARRAY_POINTER,
+  pattern GL_VERTEX_ATTRIB_ARRAY_SIZE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_STRIDE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_TYPE,
+  pattern GL_VERTEX_PROGRAM_POINT_SIZE,
+  pattern GL_VERTEX_PROGRAM_TWO_SIDE,
+  pattern GL_VERTEX_SHADER,
+  pattern GL_VIEWPORT,
+  pattern GL_VIEWPORT_BIT,
+  pattern GL_WAIT_FAILED,
+  pattern GL_WEIGHT_ARRAY_BUFFER_BINDING,
+  pattern GL_WRITE_ONLY,
+  pattern GL_XOR,
+  pattern GL_ZERO,
+  pattern GL_ZOOM_X,
+  pattern GL_ZOOM_Y,
+  -- * Functions
+  glAccum,
+  glActiveTexture,
+  glAlphaFunc,
+  glAreTexturesResident,
+  glArrayElement,
+  glAttachShader,
+  glBegin,
+  glBeginConditionalRender,
+  glBeginQuery,
+  glBeginQueryIndexed,
+  glBeginTransformFeedback,
+  glBindAttribLocation,
+  glBindBuffer,
+  glBindBufferBase,
+  glBindBufferRange,
+  glBindFragDataLocation,
+  glBindFragDataLocationIndexed,
+  glBindFramebuffer,
+  glBindRenderbuffer,
+  glBindSampler,
+  glBindTexture,
+  glBindTransformFeedback,
+  glBindVertexArray,
+  glBitmap,
+  glBlendColor,
+  glBlendEquation,
+  glBlendEquationSeparate,
+  glBlendEquationSeparatei,
+  glBlendEquationi,
+  glBlendFunc,
+  glBlendFuncSeparate,
+  glBlendFuncSeparatei,
+  glBlendFunci,
+  glBlitFramebuffer,
+  glBufferData,
+  glBufferSubData,
+  glCallList,
+  glCallLists,
+  glCheckFramebufferStatus,
+  glClampColor,
+  glClear,
+  glClearAccum,
+  glClearBufferfi,
+  glClearBufferfv,
+  glClearBufferiv,
+  glClearBufferuiv,
+  glClearColor,
+  glClearDepth,
+  glClearIndex,
+  glClearStencil,
+  glClientActiveTexture,
+  glClientWaitSync,
+  glClipPlane,
+  glColor3b,
+  glColor3bv,
+  glColor3d,
+  glColor3dv,
+  glColor3f,
+  glColor3fv,
+  glColor3i,
+  glColor3iv,
+  glColor3s,
+  glColor3sv,
+  glColor3ub,
+  glColor3ubv,
+  glColor3ui,
+  glColor3uiv,
+  glColor3us,
+  glColor3usv,
+  glColor4b,
+  glColor4bv,
+  glColor4d,
+  glColor4dv,
+  glColor4f,
+  glColor4fv,
+  glColor4i,
+  glColor4iv,
+  glColor4s,
+  glColor4sv,
+  glColor4ub,
+  glColor4ubv,
+  glColor4ui,
+  glColor4uiv,
+  glColor4us,
+  glColor4usv,
+  glColorMask,
+  glColorMaski,
+  glColorMaterial,
+  glColorP3ui,
+  glColorP3uiv,
+  glColorP4ui,
+  glColorP4uiv,
+  glColorPointer,
+  glCompileShader,
+  glCompressedTexImage1D,
+  glCompressedTexImage2D,
+  glCompressedTexImage3D,
+  glCompressedTexSubImage1D,
+  glCompressedTexSubImage2D,
+  glCompressedTexSubImage3D,
+  glCopyBufferSubData,
+  glCopyPixels,
+  glCopyTexImage1D,
+  glCopyTexImage2D,
+  glCopyTexSubImage1D,
+  glCopyTexSubImage2D,
+  glCopyTexSubImage3D,
+  glCreateProgram,
+  glCreateShader,
+  glCullFace,
+  glDeleteBuffers,
+  glDeleteFramebuffers,
+  glDeleteLists,
+  glDeleteProgram,
+  glDeleteQueries,
+  glDeleteRenderbuffers,
+  glDeleteSamplers,
+  glDeleteShader,
+  glDeleteSync,
+  glDeleteTextures,
+  glDeleteTransformFeedbacks,
+  glDeleteVertexArrays,
+  glDepthFunc,
+  glDepthMask,
+  glDepthRange,
+  glDetachShader,
+  glDisable,
+  glDisableClientState,
+  glDisableVertexAttribArray,
+  glDisablei,
+  glDrawArrays,
+  glDrawArraysIndirect,
+  glDrawArraysInstanced,
+  glDrawBuffer,
+  glDrawBuffers,
+  glDrawElements,
+  glDrawElementsBaseVertex,
+  glDrawElementsIndirect,
+  glDrawElementsInstanced,
+  glDrawElementsInstancedBaseVertex,
+  glDrawPixels,
+  glDrawRangeElements,
+  glDrawRangeElementsBaseVertex,
+  glDrawTransformFeedback,
+  glDrawTransformFeedbackStream,
+  glEdgeFlag,
+  glEdgeFlagPointer,
+  glEdgeFlagv,
+  glEnable,
+  glEnableClientState,
+  glEnableVertexAttribArray,
+  glEnablei,
+  glEnd,
+  glEndConditionalRender,
+  glEndList,
+  glEndQuery,
+  glEndQueryIndexed,
+  glEndTransformFeedback,
+  glEvalCoord1d,
+  glEvalCoord1dv,
+  glEvalCoord1f,
+  glEvalCoord1fv,
+  glEvalCoord2d,
+  glEvalCoord2dv,
+  glEvalCoord2f,
+  glEvalCoord2fv,
+  glEvalMesh1,
+  glEvalMesh2,
+  glEvalPoint1,
+  glEvalPoint2,
+  glFeedbackBuffer,
+  glFenceSync,
+  glFinish,
+  glFlush,
+  glFlushMappedBufferRange,
+  glFogCoordPointer,
+  glFogCoordd,
+  glFogCoorddv,
+  glFogCoordf,
+  glFogCoordfv,
+  glFogf,
+  glFogfv,
+  glFogi,
+  glFogiv,
+  glFramebufferRenderbuffer,
+  glFramebufferTexture,
+  glFramebufferTexture1D,
+  glFramebufferTexture2D,
+  glFramebufferTexture3D,
+  glFramebufferTextureLayer,
+  glFrontFace,
+  glFrustum,
+  glGenBuffers,
+  glGenFramebuffers,
+  glGenLists,
+  glGenQueries,
+  glGenRenderbuffers,
+  glGenSamplers,
+  glGenTextures,
+  glGenTransformFeedbacks,
+  glGenVertexArrays,
+  glGenerateMipmap,
+  glGetActiveAttrib,
+  glGetActiveSubroutineName,
+  glGetActiveSubroutineUniformName,
+  glGetActiveSubroutineUniformiv,
+  glGetActiveUniform,
+  glGetActiveUniformBlockName,
+  glGetActiveUniformBlockiv,
+  glGetActiveUniformName,
+  glGetActiveUniformsiv,
+  glGetAttachedShaders,
+  glGetAttribLocation,
+  glGetBooleani_v,
+  glGetBooleanv,
+  glGetBufferParameteri64v,
+  glGetBufferParameteriv,
+  glGetBufferPointerv,
+  glGetBufferSubData,
+  glGetClipPlane,
+  glGetCompressedTexImage,
+  glGetDoublev,
+  glGetError,
+  glGetFloatv,
+  glGetFragDataIndex,
+  glGetFragDataLocation,
+  glGetFramebufferAttachmentParameteriv,
+  glGetInteger64i_v,
+  glGetInteger64v,
+  glGetIntegeri_v,
+  glGetIntegerv,
+  glGetLightfv,
+  glGetLightiv,
+  glGetMapdv,
+  glGetMapfv,
+  glGetMapiv,
+  glGetMaterialfv,
+  glGetMaterialiv,
+  glGetMultisamplefv,
+  glGetPixelMapfv,
+  glGetPixelMapuiv,
+  glGetPixelMapusv,
+  glGetPointerv,
+  glGetPolygonStipple,
+  glGetProgramInfoLog,
+  glGetProgramStageiv,
+  glGetProgramiv,
+  glGetQueryIndexediv,
+  glGetQueryObjecti64v,
+  glGetQueryObjectiv,
+  glGetQueryObjectui64v,
+  glGetQueryObjectuiv,
+  glGetQueryiv,
+  glGetRenderbufferParameteriv,
+  glGetSamplerParameterIiv,
+  glGetSamplerParameterIuiv,
+  glGetSamplerParameterfv,
+  glGetSamplerParameteriv,
+  glGetShaderInfoLog,
+  glGetShaderSource,
+  glGetShaderiv,
+  glGetString,
+  glGetStringi,
+  glGetSubroutineIndex,
+  glGetSubroutineUniformLocation,
+  glGetSynciv,
+  glGetTexEnvfv,
+  glGetTexEnviv,
+  glGetTexGendv,
+  glGetTexGenfv,
+  glGetTexGeniv,
+  glGetTexImage,
+  glGetTexLevelParameterfv,
+  glGetTexLevelParameteriv,
+  glGetTexParameterIiv,
+  glGetTexParameterIuiv,
+  glGetTexParameterfv,
+  glGetTexParameteriv,
+  glGetTransformFeedbackVarying,
+  glGetUniformBlockIndex,
+  glGetUniformIndices,
+  glGetUniformLocation,
+  glGetUniformSubroutineuiv,
+  glGetUniformdv,
+  glGetUniformfv,
+  glGetUniformiv,
+  glGetUniformuiv,
+  glGetVertexAttribIiv,
+  glGetVertexAttribIuiv,
+  glGetVertexAttribPointerv,
+  glGetVertexAttribdv,
+  glGetVertexAttribfv,
+  glGetVertexAttribiv,
+  glHint,
+  glIndexMask,
+  glIndexPointer,
+  glIndexd,
+  glIndexdv,
+  glIndexf,
+  glIndexfv,
+  glIndexi,
+  glIndexiv,
+  glIndexs,
+  glIndexsv,
+  glIndexub,
+  glIndexubv,
+  glInitNames,
+  glInterleavedArrays,
+  glIsBuffer,
+  glIsEnabled,
+  glIsEnabledi,
+  glIsFramebuffer,
+  glIsList,
+  glIsProgram,
+  glIsQuery,
+  glIsRenderbuffer,
+  glIsSampler,
+  glIsShader,
+  glIsSync,
+  glIsTexture,
+  glIsTransformFeedback,
+  glIsVertexArray,
+  glLightModelf,
+  glLightModelfv,
+  glLightModeli,
+  glLightModeliv,
+  glLightf,
+  glLightfv,
+  glLighti,
+  glLightiv,
+  glLineStipple,
+  glLineWidth,
+  glLinkProgram,
+  glListBase,
+  glLoadIdentity,
+  glLoadMatrixd,
+  glLoadMatrixf,
+  glLoadName,
+  glLoadTransposeMatrixd,
+  glLoadTransposeMatrixf,
+  glLogicOp,
+  glMap1d,
+  glMap1f,
+  glMap2d,
+  glMap2f,
+  glMapBuffer,
+  glMapBufferRange,
+  glMapGrid1d,
+  glMapGrid1f,
+  glMapGrid2d,
+  glMapGrid2f,
+  glMaterialf,
+  glMaterialfv,
+  glMateriali,
+  glMaterialiv,
+  glMatrixMode,
+  glMinSampleShading,
+  glMultMatrixd,
+  glMultMatrixf,
+  glMultTransposeMatrixd,
+  glMultTransposeMatrixf,
+  glMultiDrawArrays,
+  glMultiDrawElements,
+  glMultiDrawElementsBaseVertex,
+  glMultiTexCoord1d,
+  glMultiTexCoord1dv,
+  glMultiTexCoord1f,
+  glMultiTexCoord1fv,
+  glMultiTexCoord1i,
+  glMultiTexCoord1iv,
+  glMultiTexCoord1s,
+  glMultiTexCoord1sv,
+  glMultiTexCoord2d,
+  glMultiTexCoord2dv,
+  glMultiTexCoord2f,
+  glMultiTexCoord2fv,
+  glMultiTexCoord2i,
+  glMultiTexCoord2iv,
+  glMultiTexCoord2s,
+  glMultiTexCoord2sv,
+  glMultiTexCoord3d,
+  glMultiTexCoord3dv,
+  glMultiTexCoord3f,
+  glMultiTexCoord3fv,
+  glMultiTexCoord3i,
+  glMultiTexCoord3iv,
+  glMultiTexCoord3s,
+  glMultiTexCoord3sv,
+  glMultiTexCoord4d,
+  glMultiTexCoord4dv,
+  glMultiTexCoord4f,
+  glMultiTexCoord4fv,
+  glMultiTexCoord4i,
+  glMultiTexCoord4iv,
+  glMultiTexCoord4s,
+  glMultiTexCoord4sv,
+  glMultiTexCoordP1ui,
+  glMultiTexCoordP1uiv,
+  glMultiTexCoordP2ui,
+  glMultiTexCoordP2uiv,
+  glMultiTexCoordP3ui,
+  glMultiTexCoordP3uiv,
+  glMultiTexCoordP4ui,
+  glMultiTexCoordP4uiv,
+  glNewList,
+  glNormal3b,
+  glNormal3bv,
+  glNormal3d,
+  glNormal3dv,
+  glNormal3f,
+  glNormal3fv,
+  glNormal3i,
+  glNormal3iv,
+  glNormal3s,
+  glNormal3sv,
+  glNormalP3ui,
+  glNormalP3uiv,
+  glNormalPointer,
+  glOrtho,
+  glPassThrough,
+  glPatchParameterfv,
+  glPatchParameteri,
+  glPauseTransformFeedback,
+  glPixelMapfv,
+  glPixelMapuiv,
+  glPixelMapusv,
+  glPixelStoref,
+  glPixelStorei,
+  glPixelTransferf,
+  glPixelTransferi,
+  glPixelZoom,
+  glPointParameterf,
+  glPointParameterfv,
+  glPointParameteri,
+  glPointParameteriv,
+  glPointSize,
+  glPolygonMode,
+  glPolygonOffset,
+  glPolygonStipple,
+  glPopAttrib,
+  glPopClientAttrib,
+  glPopMatrix,
+  glPopName,
+  glPrimitiveRestartIndex,
+  glPrioritizeTextures,
+  glProvokingVertex,
+  glPushAttrib,
+  glPushClientAttrib,
+  glPushMatrix,
+  glPushName,
+  glQueryCounter,
+  glRasterPos2d,
+  glRasterPos2dv,
+  glRasterPos2f,
+  glRasterPos2fv,
+  glRasterPos2i,
+  glRasterPos2iv,
+  glRasterPos2s,
+  glRasterPos2sv,
+  glRasterPos3d,
+  glRasterPos3dv,
+  glRasterPos3f,
+  glRasterPos3fv,
+  glRasterPos3i,
+  glRasterPos3iv,
+  glRasterPos3s,
+  glRasterPos3sv,
+  glRasterPos4d,
+  glRasterPos4dv,
+  glRasterPos4f,
+  glRasterPos4fv,
+  glRasterPos4i,
+  glRasterPos4iv,
+  glRasterPos4s,
+  glRasterPos4sv,
+  glReadBuffer,
+  glReadPixels,
+  glRectd,
+  glRectdv,
+  glRectf,
+  glRectfv,
+  glRecti,
+  glRectiv,
+  glRects,
+  glRectsv,
+  glRenderMode,
+  glRenderbufferStorage,
+  glRenderbufferStorageMultisample,
+  glResumeTransformFeedback,
+  glRotated,
+  glRotatef,
+  glSampleCoverage,
+  glSampleMaski,
+  glSamplerParameterIiv,
+  glSamplerParameterIuiv,
+  glSamplerParameterf,
+  glSamplerParameterfv,
+  glSamplerParameteri,
+  glSamplerParameteriv,
+  glScaled,
+  glScalef,
+  glScissor,
+  glSecondaryColor3b,
+  glSecondaryColor3bv,
+  glSecondaryColor3d,
+  glSecondaryColor3dv,
+  glSecondaryColor3f,
+  glSecondaryColor3fv,
+  glSecondaryColor3i,
+  glSecondaryColor3iv,
+  glSecondaryColor3s,
+  glSecondaryColor3sv,
+  glSecondaryColor3ub,
+  glSecondaryColor3ubv,
+  glSecondaryColor3ui,
+  glSecondaryColor3uiv,
+  glSecondaryColor3us,
+  glSecondaryColor3usv,
+  glSecondaryColorP3ui,
+  glSecondaryColorP3uiv,
+  glSecondaryColorPointer,
+  glSelectBuffer,
+  glShadeModel,
+  glShaderSource,
+  glStencilFunc,
+  glStencilFuncSeparate,
+  glStencilMask,
+  glStencilMaskSeparate,
+  glStencilOp,
+  glStencilOpSeparate,
+  glTexBuffer,
+  glTexCoord1d,
+  glTexCoord1dv,
+  glTexCoord1f,
+  glTexCoord1fv,
+  glTexCoord1i,
+  glTexCoord1iv,
+  glTexCoord1s,
+  glTexCoord1sv,
+  glTexCoord2d,
+  glTexCoord2dv,
+  glTexCoord2f,
+  glTexCoord2fv,
+  glTexCoord2i,
+  glTexCoord2iv,
+  glTexCoord2s,
+  glTexCoord2sv,
+  glTexCoord3d,
+  glTexCoord3dv,
+  glTexCoord3f,
+  glTexCoord3fv,
+  glTexCoord3i,
+  glTexCoord3iv,
+  glTexCoord3s,
+  glTexCoord3sv,
+  glTexCoord4d,
+  glTexCoord4dv,
+  glTexCoord4f,
+  glTexCoord4fv,
+  glTexCoord4i,
+  glTexCoord4iv,
+  glTexCoord4s,
+  glTexCoord4sv,
+  glTexCoordP1ui,
+  glTexCoordP1uiv,
+  glTexCoordP2ui,
+  glTexCoordP2uiv,
+  glTexCoordP3ui,
+  glTexCoordP3uiv,
+  glTexCoordP4ui,
+  glTexCoordP4uiv,
+  glTexCoordPointer,
+  glTexEnvf,
+  glTexEnvfv,
+  glTexEnvi,
+  glTexEnviv,
+  glTexGend,
+  glTexGendv,
+  glTexGenf,
+  glTexGenfv,
+  glTexGeni,
+  glTexGeniv,
+  glTexImage1D,
+  glTexImage2D,
+  glTexImage2DMultisample,
+  glTexImage3D,
+  glTexImage3DMultisample,
+  glTexParameterIiv,
+  glTexParameterIuiv,
+  glTexParameterf,
+  glTexParameterfv,
+  glTexParameteri,
+  glTexParameteriv,
+  glTexSubImage1D,
+  glTexSubImage2D,
+  glTexSubImage3D,
+  glTransformFeedbackVaryings,
+  glTranslated,
+  glTranslatef,
+  glUniform1d,
+  glUniform1dv,
+  glUniform1f,
+  glUniform1fv,
+  glUniform1i,
+  glUniform1iv,
+  glUniform1ui,
+  glUniform1uiv,
+  glUniform2d,
+  glUniform2dv,
+  glUniform2f,
+  glUniform2fv,
+  glUniform2i,
+  glUniform2iv,
+  glUniform2ui,
+  glUniform2uiv,
+  glUniform3d,
+  glUniform3dv,
+  glUniform3f,
+  glUniform3fv,
+  glUniform3i,
+  glUniform3iv,
+  glUniform3ui,
+  glUniform3uiv,
+  glUniform4d,
+  glUniform4dv,
+  glUniform4f,
+  glUniform4fv,
+  glUniform4i,
+  glUniform4iv,
+  glUniform4ui,
+  glUniform4uiv,
+  glUniformBlockBinding,
+  glUniformMatrix2dv,
+  glUniformMatrix2fv,
+  glUniformMatrix2x3dv,
+  glUniformMatrix2x3fv,
+  glUniformMatrix2x4dv,
+  glUniformMatrix2x4fv,
+  glUniformMatrix3dv,
+  glUniformMatrix3fv,
+  glUniformMatrix3x2dv,
+  glUniformMatrix3x2fv,
+  glUniformMatrix3x4dv,
+  glUniformMatrix3x4fv,
+  glUniformMatrix4dv,
+  glUniformMatrix4fv,
+  glUniformMatrix4x2dv,
+  glUniformMatrix4x2fv,
+  glUniformMatrix4x3dv,
+  glUniformMatrix4x3fv,
+  glUniformSubroutinesuiv,
+  glUnmapBuffer,
+  glUseProgram,
+  glValidateProgram,
+  glVertex2d,
+  glVertex2dv,
+  glVertex2f,
+  glVertex2fv,
+  glVertex2i,
+  glVertex2iv,
+  glVertex2s,
+  glVertex2sv,
+  glVertex3d,
+  glVertex3dv,
+  glVertex3f,
+  glVertex3fv,
+  glVertex3i,
+  glVertex3iv,
+  glVertex3s,
+  glVertex3sv,
+  glVertex4d,
+  glVertex4dv,
+  glVertex4f,
+  glVertex4fv,
+  glVertex4i,
+  glVertex4iv,
+  glVertex4s,
+  glVertex4sv,
+  glVertexAttrib1d,
+  glVertexAttrib1dv,
+  glVertexAttrib1f,
+  glVertexAttrib1fv,
+  glVertexAttrib1s,
+  glVertexAttrib1sv,
+  glVertexAttrib2d,
+  glVertexAttrib2dv,
+  glVertexAttrib2f,
+  glVertexAttrib2fv,
+  glVertexAttrib2s,
+  glVertexAttrib2sv,
+  glVertexAttrib3d,
+  glVertexAttrib3dv,
+  glVertexAttrib3f,
+  glVertexAttrib3fv,
+  glVertexAttrib3s,
+  glVertexAttrib3sv,
+  glVertexAttrib4Nbv,
+  glVertexAttrib4Niv,
+  glVertexAttrib4Nsv,
+  glVertexAttrib4Nub,
+  glVertexAttrib4Nubv,
+  glVertexAttrib4Nuiv,
+  glVertexAttrib4Nusv,
+  glVertexAttrib4bv,
+  glVertexAttrib4d,
+  glVertexAttrib4dv,
+  glVertexAttrib4f,
+  glVertexAttrib4fv,
+  glVertexAttrib4iv,
+  glVertexAttrib4s,
+  glVertexAttrib4sv,
+  glVertexAttrib4ubv,
+  glVertexAttrib4uiv,
+  glVertexAttrib4usv,
+  glVertexAttribDivisor,
+  glVertexAttribI1i,
+  glVertexAttribI1iv,
+  glVertexAttribI1ui,
+  glVertexAttribI1uiv,
+  glVertexAttribI2i,
+  glVertexAttribI2iv,
+  glVertexAttribI2ui,
+  glVertexAttribI2uiv,
+  glVertexAttribI3i,
+  glVertexAttribI3iv,
+  glVertexAttribI3ui,
+  glVertexAttribI3uiv,
+  glVertexAttribI4bv,
+  glVertexAttribI4i,
+  glVertexAttribI4iv,
+  glVertexAttribI4sv,
+  glVertexAttribI4ubv,
+  glVertexAttribI4ui,
+  glVertexAttribI4uiv,
+  glVertexAttribI4usv,
+  glVertexAttribIPointer,
+  glVertexAttribP1ui,
+  glVertexAttribP1uiv,
+  glVertexAttribP2ui,
+  glVertexAttribP2uiv,
+  glVertexAttribP3ui,
+  glVertexAttribP3uiv,
+  glVertexAttribP4ui,
+  glVertexAttribP4uiv,
+  glVertexAttribPointer,
+  glVertexP2ui,
+  glVertexP2uiv,
+  glVertexP3ui,
+  glVertexP3uiv,
+  glVertexP4ui,
+  glVertexP4uiv,
+  glVertexPointer,
+  glViewport,
+  glWaitSync,
+  glWindowPos2d,
+  glWindowPos2dv,
+  glWindowPos2f,
+  glWindowPos2fv,
+  glWindowPos2i,
+  glWindowPos2iv,
+  glWindowPos2s,
+  glWindowPos2sv,
+  glWindowPos3d,
+  glWindowPos3dv,
+  glWindowPos3f,
+  glWindowPos3fv,
+  glWindowPos3i,
+  glWindowPos3iv,
+  glWindowPos3s,
+  glWindowPos3sv
+) where
+
+import Graphics.GL.Types
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/Compatibility41.hs b/src/Graphics/GL/Compatibility41.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Compatibility41.hs
@@ -0,0 +1,2264 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Compatibility41
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Compatibility41 (
+  -- * Types
+  GLbitfield,
+  GLboolean,
+  GLbyte,
+  GLchar,
+  GLclampd,
+  GLclampf,
+  GLdouble,
+  GLenum,
+  GLfloat,
+  GLhalf,
+  GLint,
+  GLint64,
+  GLintptr,
+  GLshort,
+  GLsizei,
+  GLsizeiptr,
+  GLsync,
+  GLubyte,
+  GLuint,
+  GLuint64,
+  GLushort,
+  GLvoid,
+  -- * Enums
+  pattern GL_2D,
+  pattern GL_2_BYTES,
+  pattern GL_3D,
+  pattern GL_3D_COLOR,
+  pattern GL_3D_COLOR_TEXTURE,
+  pattern GL_3_BYTES,
+  pattern GL_4D_COLOR_TEXTURE,
+  pattern GL_4_BYTES,
+  pattern GL_ACCUM,
+  pattern GL_ACCUM_ALPHA_BITS,
+  pattern GL_ACCUM_BLUE_BITS,
+  pattern GL_ACCUM_BUFFER_BIT,
+  pattern GL_ACCUM_CLEAR_VALUE,
+  pattern GL_ACCUM_GREEN_BITS,
+  pattern GL_ACCUM_RED_BITS,
+  pattern GL_ACTIVE_ATTRIBUTES,
+  pattern GL_ACTIVE_ATTRIBUTE_MAX_LENGTH,
+  pattern GL_ACTIVE_PROGRAM,
+  pattern GL_ACTIVE_SUBROUTINES,
+  pattern GL_ACTIVE_SUBROUTINE_MAX_LENGTH,
+  pattern GL_ACTIVE_SUBROUTINE_UNIFORMS,
+  pattern GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS,
+  pattern GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH,
+  pattern GL_ACTIVE_TEXTURE,
+  pattern GL_ACTIVE_UNIFORMS,
+  pattern GL_ACTIVE_UNIFORM_BLOCKS,
+  pattern GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH,
+  pattern GL_ACTIVE_UNIFORM_MAX_LENGTH,
+  pattern GL_ADD,
+  pattern GL_ADD_SIGNED,
+  pattern GL_ALIASED_LINE_WIDTH_RANGE,
+  pattern GL_ALIASED_POINT_SIZE_RANGE,
+  pattern GL_ALL_ATTRIB_BITS,
+  pattern GL_ALL_SHADER_BITS,
+  pattern GL_ALPHA,
+  pattern GL_ALPHA12,
+  pattern GL_ALPHA16,
+  pattern GL_ALPHA4,
+  pattern GL_ALPHA8,
+  pattern GL_ALPHA_BIAS,
+  pattern GL_ALPHA_BITS,
+  pattern GL_ALPHA_INTEGER,
+  pattern GL_ALPHA_SCALE,
+  pattern GL_ALPHA_TEST,
+  pattern GL_ALPHA_TEST_FUNC,
+  pattern GL_ALPHA_TEST_REF,
+  pattern GL_ALREADY_SIGNALED,
+  pattern GL_ALWAYS,
+  pattern GL_AMBIENT,
+  pattern GL_AMBIENT_AND_DIFFUSE,
+  pattern GL_AND,
+  pattern GL_AND_INVERTED,
+  pattern GL_AND_REVERSE,
+  pattern GL_ANY_SAMPLES_PASSED,
+  pattern GL_ARRAY_BUFFER,
+  pattern GL_ARRAY_BUFFER_BINDING,
+  pattern GL_ATTACHED_SHADERS,
+  pattern GL_ATTRIB_STACK_DEPTH,
+  pattern GL_AUTO_NORMAL,
+  pattern GL_AUX0,
+  pattern GL_AUX1,
+  pattern GL_AUX2,
+  pattern GL_AUX3,
+  pattern GL_AUX_BUFFERS,
+  pattern GL_BACK,
+  pattern GL_BACK_LEFT,
+  pattern GL_BACK_RIGHT,
+  pattern GL_BGR,
+  pattern GL_BGRA,
+  pattern GL_BGRA_INTEGER,
+  pattern GL_BGR_INTEGER,
+  pattern GL_BITMAP,
+  pattern GL_BITMAP_TOKEN,
+  pattern GL_BLEND,
+  pattern GL_BLEND_COLOR,
+  pattern GL_BLEND_DST,
+  pattern GL_BLEND_DST_ALPHA,
+  pattern GL_BLEND_DST_RGB,
+  pattern GL_BLEND_EQUATION,
+  pattern GL_BLEND_EQUATION_ALPHA,
+  pattern GL_BLEND_EQUATION_RGB,
+  pattern GL_BLEND_SRC,
+  pattern GL_BLEND_SRC_ALPHA,
+  pattern GL_BLEND_SRC_RGB,
+  pattern GL_BLUE,
+  pattern GL_BLUE_BIAS,
+  pattern GL_BLUE_BITS,
+  pattern GL_BLUE_INTEGER,
+  pattern GL_BLUE_SCALE,
+  pattern GL_BOOL,
+  pattern GL_BOOL_VEC2,
+  pattern GL_BOOL_VEC3,
+  pattern GL_BOOL_VEC4,
+  pattern GL_BUFFER_ACCESS,
+  pattern GL_BUFFER_ACCESS_FLAGS,
+  pattern GL_BUFFER_MAPPED,
+  pattern GL_BUFFER_MAP_LENGTH,
+  pattern GL_BUFFER_MAP_OFFSET,
+  pattern GL_BUFFER_MAP_POINTER,
+  pattern GL_BUFFER_SIZE,
+  pattern GL_BUFFER_USAGE,
+  pattern GL_BYTE,
+  pattern GL_C3F_V3F,
+  pattern GL_C4F_N3F_V3F,
+  pattern GL_C4UB_V2F,
+  pattern GL_C4UB_V3F,
+  pattern GL_CCW,
+  pattern GL_CLAMP,
+  pattern GL_CLAMP_FRAGMENT_COLOR,
+  pattern GL_CLAMP_READ_COLOR,
+  pattern GL_CLAMP_TO_BORDER,
+  pattern GL_CLAMP_TO_EDGE,
+  pattern GL_CLAMP_VERTEX_COLOR,
+  pattern GL_CLEAR,
+  pattern GL_CLIENT_ACTIVE_TEXTURE,
+  pattern GL_CLIENT_ALL_ATTRIB_BITS,
+  pattern GL_CLIENT_ATTRIB_STACK_DEPTH,
+  pattern GL_CLIENT_PIXEL_STORE_BIT,
+  pattern GL_CLIENT_VERTEX_ARRAY_BIT,
+  pattern GL_CLIP_DISTANCE0,
+  pattern GL_CLIP_DISTANCE1,
+  pattern GL_CLIP_DISTANCE2,
+  pattern GL_CLIP_DISTANCE3,
+  pattern GL_CLIP_DISTANCE4,
+  pattern GL_CLIP_DISTANCE5,
+  pattern GL_CLIP_DISTANCE6,
+  pattern GL_CLIP_DISTANCE7,
+  pattern GL_CLIP_PLANE0,
+  pattern GL_CLIP_PLANE1,
+  pattern GL_CLIP_PLANE2,
+  pattern GL_CLIP_PLANE3,
+  pattern GL_CLIP_PLANE4,
+  pattern GL_CLIP_PLANE5,
+  pattern GL_COEFF,
+  pattern GL_COLOR,
+  pattern GL_COLOR_ARRAY,
+  pattern GL_COLOR_ARRAY_BUFFER_BINDING,
+  pattern GL_COLOR_ARRAY_POINTER,
+  pattern GL_COLOR_ARRAY_SIZE,
+  pattern GL_COLOR_ARRAY_STRIDE,
+  pattern GL_COLOR_ARRAY_TYPE,
+  pattern GL_COLOR_ATTACHMENT0,
+  pattern GL_COLOR_ATTACHMENT1,
+  pattern GL_COLOR_ATTACHMENT10,
+  pattern GL_COLOR_ATTACHMENT11,
+  pattern GL_COLOR_ATTACHMENT12,
+  pattern GL_COLOR_ATTACHMENT13,
+  pattern GL_COLOR_ATTACHMENT14,
+  pattern GL_COLOR_ATTACHMENT15,
+  pattern GL_COLOR_ATTACHMENT16,
+  pattern GL_COLOR_ATTACHMENT17,
+  pattern GL_COLOR_ATTACHMENT18,
+  pattern GL_COLOR_ATTACHMENT19,
+  pattern GL_COLOR_ATTACHMENT2,
+  pattern GL_COLOR_ATTACHMENT20,
+  pattern GL_COLOR_ATTACHMENT21,
+  pattern GL_COLOR_ATTACHMENT22,
+  pattern GL_COLOR_ATTACHMENT23,
+  pattern GL_COLOR_ATTACHMENT24,
+  pattern GL_COLOR_ATTACHMENT25,
+  pattern GL_COLOR_ATTACHMENT26,
+  pattern GL_COLOR_ATTACHMENT27,
+  pattern GL_COLOR_ATTACHMENT28,
+  pattern GL_COLOR_ATTACHMENT29,
+  pattern GL_COLOR_ATTACHMENT3,
+  pattern GL_COLOR_ATTACHMENT30,
+  pattern GL_COLOR_ATTACHMENT31,
+  pattern GL_COLOR_ATTACHMENT4,
+  pattern GL_COLOR_ATTACHMENT5,
+  pattern GL_COLOR_ATTACHMENT6,
+  pattern GL_COLOR_ATTACHMENT7,
+  pattern GL_COLOR_ATTACHMENT8,
+  pattern GL_COLOR_ATTACHMENT9,
+  pattern GL_COLOR_BUFFER_BIT,
+  pattern GL_COLOR_CLEAR_VALUE,
+  pattern GL_COLOR_INDEX,
+  pattern GL_COLOR_INDEXES,
+  pattern GL_COLOR_LOGIC_OP,
+  pattern GL_COLOR_MATERIAL,
+  pattern GL_COLOR_MATERIAL_FACE,
+  pattern GL_COLOR_MATERIAL_PARAMETER,
+  pattern GL_COLOR_SUM,
+  pattern GL_COLOR_WRITEMASK,
+  pattern GL_COMBINE,
+  pattern GL_COMBINE_ALPHA,
+  pattern GL_COMBINE_RGB,
+  pattern GL_COMPARE_REF_TO_TEXTURE,
+  pattern GL_COMPARE_R_TO_TEXTURE,
+  pattern GL_COMPATIBLE_SUBROUTINES,
+  pattern GL_COMPILE,
+  pattern GL_COMPILE_AND_EXECUTE,
+  pattern GL_COMPILE_STATUS,
+  pattern GL_COMPRESSED_ALPHA,
+  pattern GL_COMPRESSED_INTENSITY,
+  pattern GL_COMPRESSED_LUMINANCE,
+  pattern GL_COMPRESSED_LUMINANCE_ALPHA,
+  pattern GL_COMPRESSED_RED,
+  pattern GL_COMPRESSED_RED_RGTC1,
+  pattern GL_COMPRESSED_RG,
+  pattern GL_COMPRESSED_RGB,
+  pattern GL_COMPRESSED_RGBA,
+  pattern GL_COMPRESSED_RG_RGTC2,
+  pattern GL_COMPRESSED_SIGNED_RED_RGTC1,
+  pattern GL_COMPRESSED_SIGNED_RG_RGTC2,
+  pattern GL_COMPRESSED_SLUMINANCE,
+  pattern GL_COMPRESSED_SLUMINANCE_ALPHA,
+  pattern GL_COMPRESSED_SRGB,
+  pattern GL_COMPRESSED_SRGB_ALPHA,
+  pattern GL_COMPRESSED_TEXTURE_FORMATS,
+  pattern GL_CONDITION_SATISFIED,
+  pattern GL_CONSTANT,
+  pattern GL_CONSTANT_ALPHA,
+  pattern GL_CONSTANT_ATTENUATION,
+  pattern GL_CONSTANT_COLOR,
+  pattern GL_CONTEXT_COMPATIBILITY_PROFILE_BIT,
+  pattern GL_CONTEXT_CORE_PROFILE_BIT,
+  pattern GL_CONTEXT_FLAGS,
+  pattern GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT,
+  pattern GL_CONTEXT_PROFILE_MASK,
+  pattern GL_COORD_REPLACE,
+  pattern GL_COPY,
+  pattern GL_COPY_INVERTED,
+  pattern GL_COPY_PIXEL_TOKEN,
+  pattern GL_COPY_READ_BUFFER,
+  pattern GL_COPY_WRITE_BUFFER,
+  pattern GL_CULL_FACE,
+  pattern GL_CULL_FACE_MODE,
+  pattern GL_CURRENT_BIT,
+  pattern GL_CURRENT_COLOR,
+  pattern GL_CURRENT_FOG_COORD,
+  pattern GL_CURRENT_FOG_COORDINATE,
+  pattern GL_CURRENT_INDEX,
+  pattern GL_CURRENT_NORMAL,
+  pattern GL_CURRENT_PROGRAM,
+  pattern GL_CURRENT_QUERY,
+  pattern GL_CURRENT_RASTER_COLOR,
+  pattern GL_CURRENT_RASTER_DISTANCE,
+  pattern GL_CURRENT_RASTER_INDEX,
+  pattern GL_CURRENT_RASTER_POSITION,
+  pattern GL_CURRENT_RASTER_POSITION_VALID,
+  pattern GL_CURRENT_RASTER_SECONDARY_COLOR,
+  pattern GL_CURRENT_RASTER_TEXTURE_COORDS,
+  pattern GL_CURRENT_SECONDARY_COLOR,
+  pattern GL_CURRENT_TEXTURE_COORDS,
+  pattern GL_CURRENT_VERTEX_ATTRIB,
+  pattern GL_CW,
+  pattern GL_DECAL,
+  pattern GL_DECR,
+  pattern GL_DECR_WRAP,
+  pattern GL_DELETE_STATUS,
+  pattern GL_DEPTH,
+  pattern GL_DEPTH24_STENCIL8,
+  pattern GL_DEPTH32F_STENCIL8,
+  pattern GL_DEPTH_ATTACHMENT,
+  pattern GL_DEPTH_BIAS,
+  pattern GL_DEPTH_BITS,
+  pattern GL_DEPTH_BUFFER_BIT,
+  pattern GL_DEPTH_CLAMP,
+  pattern GL_DEPTH_CLEAR_VALUE,
+  pattern GL_DEPTH_COMPONENT,
+  pattern GL_DEPTH_COMPONENT16,
+  pattern GL_DEPTH_COMPONENT24,
+  pattern GL_DEPTH_COMPONENT32,
+  pattern GL_DEPTH_COMPONENT32F,
+  pattern GL_DEPTH_FUNC,
+  pattern GL_DEPTH_RANGE,
+  pattern GL_DEPTH_SCALE,
+  pattern GL_DEPTH_STENCIL,
+  pattern GL_DEPTH_STENCIL_ATTACHMENT,
+  pattern GL_DEPTH_TEST,
+  pattern GL_DEPTH_TEXTURE_MODE,
+  pattern GL_DEPTH_WRITEMASK,
+  pattern GL_DIFFUSE,
+  pattern GL_DITHER,
+  pattern GL_DOMAIN,
+  pattern GL_DONT_CARE,
+  pattern GL_DOT3_RGB,
+  pattern GL_DOT3_RGBA,
+  pattern GL_DOUBLE,
+  pattern GL_DOUBLEBUFFER,
+  pattern GL_DOUBLE_MAT2,
+  pattern GL_DOUBLE_MAT2x3,
+  pattern GL_DOUBLE_MAT2x4,
+  pattern GL_DOUBLE_MAT3,
+  pattern GL_DOUBLE_MAT3x2,
+  pattern GL_DOUBLE_MAT3x4,
+  pattern GL_DOUBLE_MAT4,
+  pattern GL_DOUBLE_MAT4x2,
+  pattern GL_DOUBLE_MAT4x3,
+  pattern GL_DOUBLE_VEC2,
+  pattern GL_DOUBLE_VEC3,
+  pattern GL_DOUBLE_VEC4,
+  pattern GL_DRAW_BUFFER,
+  pattern GL_DRAW_BUFFER0,
+  pattern GL_DRAW_BUFFER1,
+  pattern GL_DRAW_BUFFER10,
+  pattern GL_DRAW_BUFFER11,
+  pattern GL_DRAW_BUFFER12,
+  pattern GL_DRAW_BUFFER13,
+  pattern GL_DRAW_BUFFER14,
+  pattern GL_DRAW_BUFFER15,
+  pattern GL_DRAW_BUFFER2,
+  pattern GL_DRAW_BUFFER3,
+  pattern GL_DRAW_BUFFER4,
+  pattern GL_DRAW_BUFFER5,
+  pattern GL_DRAW_BUFFER6,
+  pattern GL_DRAW_BUFFER7,
+  pattern GL_DRAW_BUFFER8,
+  pattern GL_DRAW_BUFFER9,
+  pattern GL_DRAW_FRAMEBUFFER,
+  pattern GL_DRAW_FRAMEBUFFER_BINDING,
+  pattern GL_DRAW_INDIRECT_BUFFER,
+  pattern GL_DRAW_INDIRECT_BUFFER_BINDING,
+  pattern GL_DRAW_PIXEL_TOKEN,
+  pattern GL_DST_ALPHA,
+  pattern GL_DST_COLOR,
+  pattern GL_DYNAMIC_COPY,
+  pattern GL_DYNAMIC_DRAW,
+  pattern GL_DYNAMIC_READ,
+  pattern GL_EDGE_FLAG,
+  pattern GL_EDGE_FLAG_ARRAY,
+  pattern GL_EDGE_FLAG_ARRAY_BUFFER_BINDING,
+  pattern GL_EDGE_FLAG_ARRAY_POINTER,
+  pattern GL_EDGE_FLAG_ARRAY_STRIDE,
+  pattern GL_ELEMENT_ARRAY_BUFFER,
+  pattern GL_ELEMENT_ARRAY_BUFFER_BINDING,
+  pattern GL_EMISSION,
+  pattern GL_ENABLE_BIT,
+  pattern GL_EQUAL,
+  pattern GL_EQUIV,
+  pattern GL_EVAL_BIT,
+  pattern GL_EXP,
+  pattern GL_EXP2,
+  pattern GL_EXTENSIONS,
+  pattern GL_EYE_LINEAR,
+  pattern GL_EYE_PLANE,
+  pattern GL_FALSE,
+  pattern GL_FASTEST,
+  pattern GL_FEEDBACK,
+  pattern GL_FEEDBACK_BUFFER_POINTER,
+  pattern GL_FEEDBACK_BUFFER_SIZE,
+  pattern GL_FEEDBACK_BUFFER_TYPE,
+  pattern GL_FILL,
+  pattern GL_FIRST_VERTEX_CONVENTION,
+  pattern GL_FIXED,
+  pattern GL_FIXED_ONLY,
+  pattern GL_FLAT,
+  pattern GL_FLOAT,
+  pattern GL_FLOAT_32_UNSIGNED_INT_24_8_REV,
+  pattern GL_FLOAT_MAT2,
+  pattern GL_FLOAT_MAT2x3,
+  pattern GL_FLOAT_MAT2x4,
+  pattern GL_FLOAT_MAT3,
+  pattern GL_FLOAT_MAT3x2,
+  pattern GL_FLOAT_MAT3x4,
+  pattern GL_FLOAT_MAT4,
+  pattern GL_FLOAT_MAT4x2,
+  pattern GL_FLOAT_MAT4x3,
+  pattern GL_FLOAT_VEC2,
+  pattern GL_FLOAT_VEC3,
+  pattern GL_FLOAT_VEC4,
+  pattern GL_FOG,
+  pattern GL_FOG_BIT,
+  pattern GL_FOG_COLOR,
+  pattern GL_FOG_COORD,
+  pattern GL_FOG_COORDINATE,
+  pattern GL_FOG_COORDINATE_ARRAY,
+  pattern GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING,
+  pattern GL_FOG_COORDINATE_ARRAY_POINTER,
+  pattern GL_FOG_COORDINATE_ARRAY_STRIDE,
+  pattern GL_FOG_COORDINATE_ARRAY_TYPE,
+  pattern GL_FOG_COORDINATE_SOURCE,
+  pattern GL_FOG_COORD_ARRAY,
+  pattern GL_FOG_COORD_ARRAY_BUFFER_BINDING,
+  pattern GL_FOG_COORD_ARRAY_POINTER,
+  pattern GL_FOG_COORD_ARRAY_STRIDE,
+  pattern GL_FOG_COORD_ARRAY_TYPE,
+  pattern GL_FOG_COORD_SRC,
+  pattern GL_FOG_DENSITY,
+  pattern GL_FOG_END,
+  pattern GL_FOG_HINT,
+  pattern GL_FOG_INDEX,
+  pattern GL_FOG_MODE,
+  pattern GL_FOG_START,
+  pattern GL_FRACTIONAL_EVEN,
+  pattern GL_FRACTIONAL_ODD,
+  pattern GL_FRAGMENT_DEPTH,
+  pattern GL_FRAGMENT_INTERPOLATION_OFFSET_BITS,
+  pattern GL_FRAGMENT_SHADER,
+  pattern GL_FRAGMENT_SHADER_BIT,
+  pattern GL_FRAGMENT_SHADER_DERIVATIVE_HINT,
+  pattern GL_FRAMEBUFFER,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL,
+  pattern GL_FRAMEBUFFER_BINDING,
+  pattern GL_FRAMEBUFFER_COMPLETE,
+  pattern GL_FRAMEBUFFER_DEFAULT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER,
+  pattern GL_FRAMEBUFFER_SRGB,
+  pattern GL_FRAMEBUFFER_UNDEFINED,
+  pattern GL_FRAMEBUFFER_UNSUPPORTED,
+  pattern GL_FRONT,
+  pattern GL_FRONT_AND_BACK,
+  pattern GL_FRONT_FACE,
+  pattern GL_FRONT_LEFT,
+  pattern GL_FRONT_RIGHT,
+  pattern GL_FUNC_ADD,
+  pattern GL_FUNC_REVERSE_SUBTRACT,
+  pattern GL_FUNC_SUBTRACT,
+  pattern GL_GENERATE_MIPMAP,
+  pattern GL_GENERATE_MIPMAP_HINT,
+  pattern GL_GEOMETRY_INPUT_TYPE,
+  pattern GL_GEOMETRY_OUTPUT_TYPE,
+  pattern GL_GEOMETRY_SHADER,
+  pattern GL_GEOMETRY_SHADER_BIT,
+  pattern GL_GEOMETRY_SHADER_INVOCATIONS,
+  pattern GL_GEOMETRY_VERTICES_OUT,
+  pattern GL_GEQUAL,
+  pattern GL_GREATER,
+  pattern GL_GREEN,
+  pattern GL_GREEN_BIAS,
+  pattern GL_GREEN_BITS,
+  pattern GL_GREEN_INTEGER,
+  pattern GL_GREEN_SCALE,
+  pattern GL_HALF_FLOAT,
+  pattern GL_HIGH_FLOAT,
+  pattern GL_HIGH_INT,
+  pattern GL_HINT_BIT,
+  pattern GL_IMPLEMENTATION_COLOR_READ_FORMAT,
+  pattern GL_IMPLEMENTATION_COLOR_READ_TYPE,
+  pattern GL_INCR,
+  pattern GL_INCR_WRAP,
+  pattern GL_INDEX,
+  pattern GL_INDEX_ARRAY,
+  pattern GL_INDEX_ARRAY_BUFFER_BINDING,
+  pattern GL_INDEX_ARRAY_POINTER,
+  pattern GL_INDEX_ARRAY_STRIDE,
+  pattern GL_INDEX_ARRAY_TYPE,
+  pattern GL_INDEX_BITS,
+  pattern GL_INDEX_CLEAR_VALUE,
+  pattern GL_INDEX_LOGIC_OP,
+  pattern GL_INDEX_MODE,
+  pattern GL_INDEX_OFFSET,
+  pattern GL_INDEX_SHIFT,
+  pattern GL_INDEX_WRITEMASK,
+  pattern GL_INFO_LOG_LENGTH,
+  pattern GL_INT,
+  pattern GL_INTENSITY,
+  pattern GL_INTENSITY12,
+  pattern GL_INTENSITY16,
+  pattern GL_INTENSITY4,
+  pattern GL_INTENSITY8,
+  pattern GL_INTERLEAVED_ATTRIBS,
+  pattern GL_INTERPOLATE,
+  pattern GL_INT_2_10_10_10_REV,
+  pattern GL_INT_SAMPLER_1D,
+  pattern GL_INT_SAMPLER_1D_ARRAY,
+  pattern GL_INT_SAMPLER_2D,
+  pattern GL_INT_SAMPLER_2D_ARRAY,
+  pattern GL_INT_SAMPLER_2D_MULTISAMPLE,
+  pattern GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY,
+  pattern GL_INT_SAMPLER_2D_RECT,
+  pattern GL_INT_SAMPLER_3D,
+  pattern GL_INT_SAMPLER_BUFFER,
+  pattern GL_INT_SAMPLER_CUBE,
+  pattern GL_INT_SAMPLER_CUBE_MAP_ARRAY,
+  pattern GL_INT_VEC2,
+  pattern GL_INT_VEC3,
+  pattern GL_INT_VEC4,
+  pattern GL_INVALID_ENUM,
+  pattern GL_INVALID_FRAMEBUFFER_OPERATION,
+  pattern GL_INVALID_INDEX,
+  pattern GL_INVALID_OPERATION,
+  pattern GL_INVALID_VALUE,
+  pattern GL_INVERT,
+  pattern GL_ISOLINES,
+  pattern GL_KEEP,
+  pattern GL_LAST_VERTEX_CONVENTION,
+  pattern GL_LAYER_PROVOKING_VERTEX,
+  pattern GL_LEFT,
+  pattern GL_LEQUAL,
+  pattern GL_LESS,
+  pattern GL_LIGHT0,
+  pattern GL_LIGHT1,
+  pattern GL_LIGHT2,
+  pattern GL_LIGHT3,
+  pattern GL_LIGHT4,
+  pattern GL_LIGHT5,
+  pattern GL_LIGHT6,
+  pattern GL_LIGHT7,
+  pattern GL_LIGHTING,
+  pattern GL_LIGHTING_BIT,
+  pattern GL_LIGHT_MODEL_AMBIENT,
+  pattern GL_LIGHT_MODEL_COLOR_CONTROL,
+  pattern GL_LIGHT_MODEL_LOCAL_VIEWER,
+  pattern GL_LIGHT_MODEL_TWO_SIDE,
+  pattern GL_LINE,
+  pattern GL_LINEAR,
+  pattern GL_LINEAR_ATTENUATION,
+  pattern GL_LINEAR_MIPMAP_LINEAR,
+  pattern GL_LINEAR_MIPMAP_NEAREST,
+  pattern GL_LINES,
+  pattern GL_LINES_ADJACENCY,
+  pattern GL_LINE_BIT,
+  pattern GL_LINE_LOOP,
+  pattern GL_LINE_RESET_TOKEN,
+  pattern GL_LINE_SMOOTH,
+  pattern GL_LINE_SMOOTH_HINT,
+  pattern GL_LINE_STIPPLE,
+  pattern GL_LINE_STIPPLE_PATTERN,
+  pattern GL_LINE_STIPPLE_REPEAT,
+  pattern GL_LINE_STRIP,
+  pattern GL_LINE_STRIP_ADJACENCY,
+  pattern GL_LINE_TOKEN,
+  pattern GL_LINE_WIDTH,
+  pattern GL_LINE_WIDTH_GRANULARITY,
+  pattern GL_LINE_WIDTH_RANGE,
+  pattern GL_LINK_STATUS,
+  pattern GL_LIST_BASE,
+  pattern GL_LIST_BIT,
+  pattern GL_LIST_INDEX,
+  pattern GL_LIST_MODE,
+  pattern GL_LOAD,
+  pattern GL_LOGIC_OP,
+  pattern GL_LOGIC_OP_MODE,
+  pattern GL_LOWER_LEFT,
+  pattern GL_LOW_FLOAT,
+  pattern GL_LOW_INT,
+  pattern GL_LUMINANCE,
+  pattern GL_LUMINANCE12,
+  pattern GL_LUMINANCE12_ALPHA12,
+  pattern GL_LUMINANCE12_ALPHA4,
+  pattern GL_LUMINANCE16,
+  pattern GL_LUMINANCE16_ALPHA16,
+  pattern GL_LUMINANCE4,
+  pattern GL_LUMINANCE4_ALPHA4,
+  pattern GL_LUMINANCE6_ALPHA2,
+  pattern GL_LUMINANCE8,
+  pattern GL_LUMINANCE8_ALPHA8,
+  pattern GL_LUMINANCE_ALPHA,
+  pattern GL_MAJOR_VERSION,
+  pattern GL_MAP1_COLOR_4,
+  pattern GL_MAP1_GRID_DOMAIN,
+  pattern GL_MAP1_GRID_SEGMENTS,
+  pattern GL_MAP1_INDEX,
+  pattern GL_MAP1_NORMAL,
+  pattern GL_MAP1_TEXTURE_COORD_1,
+  pattern GL_MAP1_TEXTURE_COORD_2,
+  pattern GL_MAP1_TEXTURE_COORD_3,
+  pattern GL_MAP1_TEXTURE_COORD_4,
+  pattern GL_MAP1_VERTEX_3,
+  pattern GL_MAP1_VERTEX_4,
+  pattern GL_MAP2_COLOR_4,
+  pattern GL_MAP2_GRID_DOMAIN,
+  pattern GL_MAP2_GRID_SEGMENTS,
+  pattern GL_MAP2_INDEX,
+  pattern GL_MAP2_NORMAL,
+  pattern GL_MAP2_TEXTURE_COORD_1,
+  pattern GL_MAP2_TEXTURE_COORD_2,
+  pattern GL_MAP2_TEXTURE_COORD_3,
+  pattern GL_MAP2_TEXTURE_COORD_4,
+  pattern GL_MAP2_VERTEX_3,
+  pattern GL_MAP2_VERTEX_4,
+  pattern GL_MAP_COLOR,
+  pattern GL_MAP_FLUSH_EXPLICIT_BIT,
+  pattern GL_MAP_INVALIDATE_BUFFER_BIT,
+  pattern GL_MAP_INVALIDATE_RANGE_BIT,
+  pattern GL_MAP_READ_BIT,
+  pattern GL_MAP_STENCIL,
+  pattern GL_MAP_UNSYNCHRONIZED_BIT,
+  pattern GL_MAP_WRITE_BIT,
+  pattern GL_MATRIX_MODE,
+  pattern GL_MAX,
+  pattern GL_MAX_3D_TEXTURE_SIZE,
+  pattern GL_MAX_ARRAY_TEXTURE_LAYERS,
+  pattern GL_MAX_ATTRIB_STACK_DEPTH,
+  pattern GL_MAX_CLIENT_ATTRIB_STACK_DEPTH,
+  pattern GL_MAX_CLIP_DISTANCES,
+  pattern GL_MAX_CLIP_PLANES,
+  pattern GL_MAX_COLOR_ATTACHMENTS,
+  pattern GL_MAX_COLOR_TEXTURE_SAMPLES,
+  pattern GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_COMBINED_UNIFORM_BLOCKS,
+  pattern GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS,
+  pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE,
+  pattern GL_MAX_DEPTH_TEXTURE_SAMPLES,
+  pattern GL_MAX_DRAW_BUFFERS,
+  pattern GL_MAX_DUAL_SOURCE_DRAW_BUFFERS,
+  pattern GL_MAX_ELEMENTS_INDICES,
+  pattern GL_MAX_ELEMENTS_VERTICES,
+  pattern GL_MAX_EVAL_ORDER,
+  pattern GL_MAX_FRAGMENT_INPUT_COMPONENTS,
+  pattern GL_MAX_FRAGMENT_INTERPOLATION_OFFSET,
+  pattern GL_MAX_FRAGMENT_UNIFORM_BLOCKS,
+  pattern GL_MAX_FRAGMENT_UNIFORM_COMPONENTS,
+  pattern GL_MAX_FRAGMENT_UNIFORM_VECTORS,
+  pattern GL_MAX_GEOMETRY_INPUT_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_OUTPUT_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_OUTPUT_VERTICES,
+  pattern GL_MAX_GEOMETRY_SHADER_INVOCATIONS,
+  pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_UNIFORM_BLOCKS,
+  pattern GL_MAX_GEOMETRY_UNIFORM_COMPONENTS,
+  pattern GL_MAX_INTEGER_SAMPLES,
+  pattern GL_MAX_LIGHTS,
+  pattern GL_MAX_LIST_NESTING,
+  pattern GL_MAX_MODELVIEW_STACK_DEPTH,
+  pattern GL_MAX_NAME_STACK_DEPTH,
+  pattern GL_MAX_PATCH_VERTICES,
+  pattern GL_MAX_PIXEL_MAP_TABLE,
+  pattern GL_MAX_PROGRAM_TEXEL_OFFSET,
+  pattern GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET,
+  pattern GL_MAX_PROJECTION_STACK_DEPTH,
+  pattern GL_MAX_RECTANGLE_TEXTURE_SIZE,
+  pattern GL_MAX_RENDERBUFFER_SIZE,
+  pattern GL_MAX_SAMPLES,
+  pattern GL_MAX_SAMPLE_MASK_WORDS,
+  pattern GL_MAX_SERVER_WAIT_TIMEOUT,
+  pattern GL_MAX_SUBROUTINES,
+  pattern GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS,
+  pattern GL_MAX_TESS_CONTROL_INPUT_COMPONENTS,
+  pattern GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS,
+  pattern GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS,
+  pattern GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS,
+  pattern GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS,
+  pattern GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS,
+  pattern GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS,
+  pattern GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS,
+  pattern GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS,
+  pattern GL_MAX_TESS_GEN_LEVEL,
+  pattern GL_MAX_TESS_PATCH_COMPONENTS,
+  pattern GL_MAX_TEXTURE_BUFFER_SIZE,
+  pattern GL_MAX_TEXTURE_COORDS,
+  pattern GL_MAX_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_TEXTURE_LOD_BIAS,
+  pattern GL_MAX_TEXTURE_SIZE,
+  pattern GL_MAX_TEXTURE_STACK_DEPTH,
+  pattern GL_MAX_TEXTURE_UNITS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_BUFFERS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS,
+  pattern GL_MAX_UNIFORM_BLOCK_SIZE,
+  pattern GL_MAX_UNIFORM_BUFFER_BINDINGS,
+  pattern GL_MAX_VARYING_COMPONENTS,
+  pattern GL_MAX_VARYING_FLOATS,
+  pattern GL_MAX_VARYING_VECTORS,
+  pattern GL_MAX_VERTEX_ATTRIBS,
+  pattern GL_MAX_VERTEX_OUTPUT_COMPONENTS,
+  pattern GL_MAX_VERTEX_STREAMS,
+  pattern GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_VERTEX_UNIFORM_BLOCKS,
+  pattern GL_MAX_VERTEX_UNIFORM_COMPONENTS,
+  pattern GL_MAX_VERTEX_UNIFORM_VECTORS,
+  pattern GL_MAX_VIEWPORTS,
+  pattern GL_MAX_VIEWPORT_DIMS,
+  pattern GL_MEDIUM_FLOAT,
+  pattern GL_MEDIUM_INT,
+  pattern GL_MIN,
+  pattern GL_MINOR_VERSION,
+  pattern GL_MIN_FRAGMENT_INTERPOLATION_OFFSET,
+  pattern GL_MIN_PROGRAM_TEXEL_OFFSET,
+  pattern GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET,
+  pattern GL_MIN_SAMPLE_SHADING_VALUE,
+  pattern GL_MIRRORED_REPEAT,
+  pattern GL_MODELVIEW,
+  pattern GL_MODELVIEW_MATRIX,
+  pattern GL_MODELVIEW_STACK_DEPTH,
+  pattern GL_MODULATE,
+  pattern GL_MULT,
+  pattern GL_MULTISAMPLE,
+  pattern GL_MULTISAMPLE_BIT,
+  pattern GL_N3F_V3F,
+  pattern GL_NAME_STACK_DEPTH,
+  pattern GL_NAND,
+  pattern GL_NEAREST,
+  pattern GL_NEAREST_MIPMAP_LINEAR,
+  pattern GL_NEAREST_MIPMAP_NEAREST,
+  pattern GL_NEVER,
+  pattern GL_NICEST,
+  pattern GL_NONE,
+  pattern GL_NOOP,
+  pattern GL_NOR,
+  pattern GL_NORMALIZE,
+  pattern GL_NORMAL_ARRAY,
+  pattern GL_NORMAL_ARRAY_BUFFER_BINDING,
+  pattern GL_NORMAL_ARRAY_POINTER,
+  pattern GL_NORMAL_ARRAY_STRIDE,
+  pattern GL_NORMAL_ARRAY_TYPE,
+  pattern GL_NORMAL_MAP,
+  pattern GL_NOTEQUAL,
+  pattern GL_NO_ERROR,
+  pattern GL_NUM_COMPATIBLE_SUBROUTINES,
+  pattern GL_NUM_COMPRESSED_TEXTURE_FORMATS,
+  pattern GL_NUM_EXTENSIONS,
+  pattern GL_NUM_PROGRAM_BINARY_FORMATS,
+  pattern GL_NUM_SHADER_BINARY_FORMATS,
+  pattern GL_OBJECT_LINEAR,
+  pattern GL_OBJECT_PLANE,
+  pattern GL_OBJECT_TYPE,
+  pattern GL_ONE,
+  pattern GL_ONE_MINUS_CONSTANT_ALPHA,
+  pattern GL_ONE_MINUS_CONSTANT_COLOR,
+  pattern GL_ONE_MINUS_DST_ALPHA,
+  pattern GL_ONE_MINUS_DST_COLOR,
+  pattern GL_ONE_MINUS_SRC1_ALPHA,
+  pattern GL_ONE_MINUS_SRC1_COLOR,
+  pattern GL_ONE_MINUS_SRC_ALPHA,
+  pattern GL_ONE_MINUS_SRC_COLOR,
+  pattern GL_OPERAND0_ALPHA,
+  pattern GL_OPERAND0_RGB,
+  pattern GL_OPERAND1_ALPHA,
+  pattern GL_OPERAND1_RGB,
+  pattern GL_OPERAND2_ALPHA,
+  pattern GL_OPERAND2_RGB,
+  pattern GL_OR,
+  pattern GL_ORDER,
+  pattern GL_OR_INVERTED,
+  pattern GL_OR_REVERSE,
+  pattern GL_OUT_OF_MEMORY,
+  pattern GL_PACK_ALIGNMENT,
+  pattern GL_PACK_IMAGE_HEIGHT,
+  pattern GL_PACK_LSB_FIRST,
+  pattern GL_PACK_ROW_LENGTH,
+  pattern GL_PACK_SKIP_IMAGES,
+  pattern GL_PACK_SKIP_PIXELS,
+  pattern GL_PACK_SKIP_ROWS,
+  pattern GL_PACK_SWAP_BYTES,
+  pattern GL_PASS_THROUGH_TOKEN,
+  pattern GL_PATCHES,
+  pattern GL_PATCH_DEFAULT_INNER_LEVEL,
+  pattern GL_PATCH_DEFAULT_OUTER_LEVEL,
+  pattern GL_PATCH_VERTICES,
+  pattern GL_PERSPECTIVE_CORRECTION_HINT,
+  pattern GL_PIXEL_MAP_A_TO_A,
+  pattern GL_PIXEL_MAP_A_TO_A_SIZE,
+  pattern GL_PIXEL_MAP_B_TO_B,
+  pattern GL_PIXEL_MAP_B_TO_B_SIZE,
+  pattern GL_PIXEL_MAP_G_TO_G,
+  pattern GL_PIXEL_MAP_G_TO_G_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_A,
+  pattern GL_PIXEL_MAP_I_TO_A_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_B,
+  pattern GL_PIXEL_MAP_I_TO_B_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_G,
+  pattern GL_PIXEL_MAP_I_TO_G_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_I,
+  pattern GL_PIXEL_MAP_I_TO_I_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_R,
+  pattern GL_PIXEL_MAP_I_TO_R_SIZE,
+  pattern GL_PIXEL_MAP_R_TO_R,
+  pattern GL_PIXEL_MAP_R_TO_R_SIZE,
+  pattern GL_PIXEL_MAP_S_TO_S,
+  pattern GL_PIXEL_MAP_S_TO_S_SIZE,
+  pattern GL_PIXEL_MODE_BIT,
+  pattern GL_PIXEL_PACK_BUFFER,
+  pattern GL_PIXEL_PACK_BUFFER_BINDING,
+  pattern GL_PIXEL_UNPACK_BUFFER,
+  pattern GL_PIXEL_UNPACK_BUFFER_BINDING,
+  pattern GL_POINT,
+  pattern GL_POINTS,
+  pattern GL_POINT_BIT,
+  pattern GL_POINT_DISTANCE_ATTENUATION,
+  pattern GL_POINT_FADE_THRESHOLD_SIZE,
+  pattern GL_POINT_SIZE,
+  pattern GL_POINT_SIZE_GRANULARITY,
+  pattern GL_POINT_SIZE_MAX,
+  pattern GL_POINT_SIZE_MIN,
+  pattern GL_POINT_SIZE_RANGE,
+  pattern GL_POINT_SMOOTH,
+  pattern GL_POINT_SMOOTH_HINT,
+  pattern GL_POINT_SPRITE,
+  pattern GL_POINT_SPRITE_COORD_ORIGIN,
+  pattern GL_POINT_TOKEN,
+  pattern GL_POLYGON,
+  pattern GL_POLYGON_BIT,
+  pattern GL_POLYGON_MODE,
+  pattern GL_POLYGON_OFFSET_FACTOR,
+  pattern GL_POLYGON_OFFSET_FILL,
+  pattern GL_POLYGON_OFFSET_LINE,
+  pattern GL_POLYGON_OFFSET_POINT,
+  pattern GL_POLYGON_OFFSET_UNITS,
+  pattern GL_POLYGON_SMOOTH,
+  pattern GL_POLYGON_SMOOTH_HINT,
+  pattern GL_POLYGON_STIPPLE,
+  pattern GL_POLYGON_STIPPLE_BIT,
+  pattern GL_POLYGON_TOKEN,
+  pattern GL_POSITION,
+  pattern GL_PREVIOUS,
+  pattern GL_PRIMARY_COLOR,
+  pattern GL_PRIMITIVES_GENERATED,
+  pattern GL_PRIMITIVE_RESTART,
+  pattern GL_PRIMITIVE_RESTART_INDEX,
+  pattern GL_PROGRAM_BINARY_FORMATS,
+  pattern GL_PROGRAM_BINARY_LENGTH,
+  pattern GL_PROGRAM_BINARY_RETRIEVABLE_HINT,
+  pattern GL_PROGRAM_PIPELINE_BINDING,
+  pattern GL_PROGRAM_POINT_SIZE,
+  pattern GL_PROGRAM_SEPARABLE,
+  pattern GL_PROJECTION,
+  pattern GL_PROJECTION_MATRIX,
+  pattern GL_PROJECTION_STACK_DEPTH,
+  pattern GL_PROVOKING_VERTEX,
+  pattern GL_PROXY_TEXTURE_1D,
+  pattern GL_PROXY_TEXTURE_1D_ARRAY,
+  pattern GL_PROXY_TEXTURE_2D,
+  pattern GL_PROXY_TEXTURE_2D_ARRAY,
+  pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE,
+  pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_PROXY_TEXTURE_3D,
+  pattern GL_PROXY_TEXTURE_CUBE_MAP,
+  pattern GL_PROXY_TEXTURE_CUBE_MAP_ARRAY,
+  pattern GL_PROXY_TEXTURE_RECTANGLE,
+  pattern GL_Q,
+  pattern GL_QUADRATIC_ATTENUATION,
+  pattern GL_QUADS,
+  pattern GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION,
+  pattern GL_QUAD_STRIP,
+  pattern GL_QUERY_BY_REGION_NO_WAIT,
+  pattern GL_QUERY_BY_REGION_WAIT,
+  pattern GL_QUERY_COUNTER_BITS,
+  pattern GL_QUERY_NO_WAIT,
+  pattern GL_QUERY_RESULT,
+  pattern GL_QUERY_RESULT_AVAILABLE,
+  pattern GL_QUERY_WAIT,
+  pattern GL_R,
+  pattern GL_R11F_G11F_B10F,
+  pattern GL_R16,
+  pattern GL_R16F,
+  pattern GL_R16I,
+  pattern GL_R16UI,
+  pattern GL_R16_SNORM,
+  pattern GL_R32F,
+  pattern GL_R32I,
+  pattern GL_R32UI,
+  pattern GL_R3_G3_B2,
+  pattern GL_R8,
+  pattern GL_R8I,
+  pattern GL_R8UI,
+  pattern GL_R8_SNORM,
+  pattern GL_RASTERIZER_DISCARD,
+  pattern GL_READ_BUFFER,
+  pattern GL_READ_FRAMEBUFFER,
+  pattern GL_READ_FRAMEBUFFER_BINDING,
+  pattern GL_READ_ONLY,
+  pattern GL_READ_WRITE,
+  pattern GL_RED,
+  pattern GL_RED_BIAS,
+  pattern GL_RED_BITS,
+  pattern GL_RED_INTEGER,
+  pattern GL_RED_SCALE,
+  pattern GL_REFLECTION_MAP,
+  pattern GL_RENDER,
+  pattern GL_RENDERBUFFER,
+  pattern GL_RENDERBUFFER_ALPHA_SIZE,
+  pattern GL_RENDERBUFFER_BINDING,
+  pattern GL_RENDERBUFFER_BLUE_SIZE,
+  pattern GL_RENDERBUFFER_DEPTH_SIZE,
+  pattern GL_RENDERBUFFER_GREEN_SIZE,
+  pattern GL_RENDERBUFFER_HEIGHT,
+  pattern GL_RENDERBUFFER_INTERNAL_FORMAT,
+  pattern GL_RENDERBUFFER_RED_SIZE,
+  pattern GL_RENDERBUFFER_SAMPLES,
+  pattern GL_RENDERBUFFER_STENCIL_SIZE,
+  pattern GL_RENDERBUFFER_WIDTH,
+  pattern GL_RENDERER,
+  pattern GL_RENDER_MODE,
+  pattern GL_REPEAT,
+  pattern GL_REPLACE,
+  pattern GL_RESCALE_NORMAL,
+  pattern GL_RETURN,
+  pattern GL_RG,
+  pattern GL_RG16,
+  pattern GL_RG16F,
+  pattern GL_RG16I,
+  pattern GL_RG16UI,
+  pattern GL_RG16_SNORM,
+  pattern GL_RG32F,
+  pattern GL_RG32I,
+  pattern GL_RG32UI,
+  pattern GL_RG8,
+  pattern GL_RG8I,
+  pattern GL_RG8UI,
+  pattern GL_RG8_SNORM,
+  pattern GL_RGB,
+  pattern GL_RGB10,
+  pattern GL_RGB10_A2,
+  pattern GL_RGB10_A2UI,
+  pattern GL_RGB12,
+  pattern GL_RGB16,
+  pattern GL_RGB16F,
+  pattern GL_RGB16I,
+  pattern GL_RGB16UI,
+  pattern GL_RGB16_SNORM,
+  pattern GL_RGB32F,
+  pattern GL_RGB32I,
+  pattern GL_RGB32UI,
+  pattern GL_RGB4,
+  pattern GL_RGB5,
+  pattern GL_RGB565,
+  pattern GL_RGB5_A1,
+  pattern GL_RGB8,
+  pattern GL_RGB8I,
+  pattern GL_RGB8UI,
+  pattern GL_RGB8_SNORM,
+  pattern GL_RGB9_E5,
+  pattern GL_RGBA,
+  pattern GL_RGBA12,
+  pattern GL_RGBA16,
+  pattern GL_RGBA16F,
+  pattern GL_RGBA16I,
+  pattern GL_RGBA16UI,
+  pattern GL_RGBA16_SNORM,
+  pattern GL_RGBA2,
+  pattern GL_RGBA32F,
+  pattern GL_RGBA32I,
+  pattern GL_RGBA32UI,
+  pattern GL_RGBA4,
+  pattern GL_RGBA8,
+  pattern GL_RGBA8I,
+  pattern GL_RGBA8UI,
+  pattern GL_RGBA8_SNORM,
+  pattern GL_RGBA_INTEGER,
+  pattern GL_RGBA_MODE,
+  pattern GL_RGB_INTEGER,
+  pattern GL_RGB_SCALE,
+  pattern GL_RG_INTEGER,
+  pattern GL_RIGHT,
+  pattern GL_S,
+  pattern GL_SAMPLER_1D,
+  pattern GL_SAMPLER_1D_ARRAY,
+  pattern GL_SAMPLER_1D_ARRAY_SHADOW,
+  pattern GL_SAMPLER_1D_SHADOW,
+  pattern GL_SAMPLER_2D,
+  pattern GL_SAMPLER_2D_ARRAY,
+  pattern GL_SAMPLER_2D_ARRAY_SHADOW,
+  pattern GL_SAMPLER_2D_MULTISAMPLE,
+  pattern GL_SAMPLER_2D_MULTISAMPLE_ARRAY,
+  pattern GL_SAMPLER_2D_RECT,
+  pattern GL_SAMPLER_2D_RECT_SHADOW,
+  pattern GL_SAMPLER_2D_SHADOW,
+  pattern GL_SAMPLER_3D,
+  pattern GL_SAMPLER_BINDING,
+  pattern GL_SAMPLER_BUFFER,
+  pattern GL_SAMPLER_CUBE,
+  pattern GL_SAMPLER_CUBE_MAP_ARRAY,
+  pattern GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW,
+  pattern GL_SAMPLER_CUBE_SHADOW,
+  pattern GL_SAMPLES,
+  pattern GL_SAMPLES_PASSED,
+  pattern GL_SAMPLE_ALPHA_TO_COVERAGE,
+  pattern GL_SAMPLE_ALPHA_TO_ONE,
+  pattern GL_SAMPLE_BUFFERS,
+  pattern GL_SAMPLE_COVERAGE,
+  pattern GL_SAMPLE_COVERAGE_INVERT,
+  pattern GL_SAMPLE_COVERAGE_VALUE,
+  pattern GL_SAMPLE_MASK,
+  pattern GL_SAMPLE_MASK_VALUE,
+  pattern GL_SAMPLE_POSITION,
+  pattern GL_SAMPLE_SHADING,
+  pattern GL_SCISSOR_BIT,
+  pattern GL_SCISSOR_BOX,
+  pattern GL_SCISSOR_TEST,
+  pattern GL_SECONDARY_COLOR_ARRAY,
+  pattern GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING,
+  pattern GL_SECONDARY_COLOR_ARRAY_POINTER,
+  pattern GL_SECONDARY_COLOR_ARRAY_SIZE,
+  pattern GL_SECONDARY_COLOR_ARRAY_STRIDE,
+  pattern GL_SECONDARY_COLOR_ARRAY_TYPE,
+  pattern GL_SELECT,
+  pattern GL_SELECTION_BUFFER_POINTER,
+  pattern GL_SELECTION_BUFFER_SIZE,
+  pattern GL_SEPARATE_ATTRIBS,
+  pattern GL_SEPARATE_SPECULAR_COLOR,
+  pattern GL_SET,
+  pattern GL_SHADER_BINARY_FORMATS,
+  pattern GL_SHADER_COMPILER,
+  pattern GL_SHADER_SOURCE_LENGTH,
+  pattern GL_SHADER_TYPE,
+  pattern GL_SHADE_MODEL,
+  pattern GL_SHADING_LANGUAGE_VERSION,
+  pattern GL_SHININESS,
+  pattern GL_SHORT,
+  pattern GL_SIGNALED,
+  pattern GL_SIGNED_NORMALIZED,
+  pattern GL_SINGLE_COLOR,
+  pattern GL_SLUMINANCE,
+  pattern GL_SLUMINANCE8,
+  pattern GL_SLUMINANCE8_ALPHA8,
+  pattern GL_SLUMINANCE_ALPHA,
+  pattern GL_SMOOTH,
+  pattern GL_SMOOTH_LINE_WIDTH_GRANULARITY,
+  pattern GL_SMOOTH_LINE_WIDTH_RANGE,
+  pattern GL_SMOOTH_POINT_SIZE_GRANULARITY,
+  pattern GL_SMOOTH_POINT_SIZE_RANGE,
+  pattern GL_SOURCE0_ALPHA,
+  pattern GL_SOURCE0_RGB,
+  pattern GL_SOURCE1_ALPHA,
+  pattern GL_SOURCE1_RGB,
+  pattern GL_SOURCE2_ALPHA,
+  pattern GL_SOURCE2_RGB,
+  pattern GL_SPECULAR,
+  pattern GL_SPHERE_MAP,
+  pattern GL_SPOT_CUTOFF,
+  pattern GL_SPOT_DIRECTION,
+  pattern GL_SPOT_EXPONENT,
+  pattern GL_SRC0_ALPHA,
+  pattern GL_SRC0_RGB,
+  pattern GL_SRC1_ALPHA,
+  pattern GL_SRC1_COLOR,
+  pattern GL_SRC1_RGB,
+  pattern GL_SRC2_ALPHA,
+  pattern GL_SRC2_RGB,
+  pattern GL_SRC_ALPHA,
+  pattern GL_SRC_ALPHA_SATURATE,
+  pattern GL_SRC_COLOR,
+  pattern GL_SRGB,
+  pattern GL_SRGB8,
+  pattern GL_SRGB8_ALPHA8,
+  pattern GL_SRGB_ALPHA,
+  pattern GL_STACK_OVERFLOW,
+  pattern GL_STACK_UNDERFLOW,
+  pattern GL_STATIC_COPY,
+  pattern GL_STATIC_DRAW,
+  pattern GL_STATIC_READ,
+  pattern GL_STENCIL,
+  pattern GL_STENCIL_ATTACHMENT,
+  pattern GL_STENCIL_BACK_FAIL,
+  pattern GL_STENCIL_BACK_FUNC,
+  pattern GL_STENCIL_BACK_PASS_DEPTH_FAIL,
+  pattern GL_STENCIL_BACK_PASS_DEPTH_PASS,
+  pattern GL_STENCIL_BACK_REF,
+  pattern GL_STENCIL_BACK_VALUE_MASK,
+  pattern GL_STENCIL_BACK_WRITEMASK,
+  pattern GL_STENCIL_BITS,
+  pattern GL_STENCIL_BUFFER_BIT,
+  pattern GL_STENCIL_CLEAR_VALUE,
+  pattern GL_STENCIL_FAIL,
+  pattern GL_STENCIL_FUNC,
+  pattern GL_STENCIL_INDEX,
+  pattern GL_STENCIL_INDEX1,
+  pattern GL_STENCIL_INDEX16,
+  pattern GL_STENCIL_INDEX4,
+  pattern GL_STENCIL_INDEX8,
+  pattern GL_STENCIL_PASS_DEPTH_FAIL,
+  pattern GL_STENCIL_PASS_DEPTH_PASS,
+  pattern GL_STENCIL_REF,
+  pattern GL_STENCIL_TEST,
+  pattern GL_STENCIL_VALUE_MASK,
+  pattern GL_STENCIL_WRITEMASK,
+  pattern GL_STEREO,
+  pattern GL_STREAM_COPY,
+  pattern GL_STREAM_DRAW,
+  pattern GL_STREAM_READ,
+  pattern GL_SUBPIXEL_BITS,
+  pattern GL_SUBTRACT,
+  pattern GL_SYNC_CONDITION,
+  pattern GL_SYNC_FENCE,
+  pattern GL_SYNC_FLAGS,
+  pattern GL_SYNC_FLUSH_COMMANDS_BIT,
+  pattern GL_SYNC_GPU_COMMANDS_COMPLETE,
+  pattern GL_SYNC_STATUS,
+  pattern GL_T,
+  pattern GL_T2F_C3F_V3F,
+  pattern GL_T2F_C4F_N3F_V3F,
+  pattern GL_T2F_C4UB_V3F,
+  pattern GL_T2F_N3F_V3F,
+  pattern GL_T2F_V3F,
+  pattern GL_T4F_C4F_N3F_V4F,
+  pattern GL_T4F_V4F,
+  pattern GL_TESS_CONTROL_OUTPUT_VERTICES,
+  pattern GL_TESS_CONTROL_SHADER,
+  pattern GL_TESS_CONTROL_SHADER_BIT,
+  pattern GL_TESS_EVALUATION_SHADER,
+  pattern GL_TESS_EVALUATION_SHADER_BIT,
+  pattern GL_TESS_GEN_MODE,
+  pattern GL_TESS_GEN_POINT_MODE,
+  pattern GL_TESS_GEN_SPACING,
+  pattern GL_TESS_GEN_VERTEX_ORDER,
+  pattern GL_TEXTURE,
+  pattern GL_TEXTURE0,
+  pattern GL_TEXTURE1,
+  pattern GL_TEXTURE10,
+  pattern GL_TEXTURE11,
+  pattern GL_TEXTURE12,
+  pattern GL_TEXTURE13,
+  pattern GL_TEXTURE14,
+  pattern GL_TEXTURE15,
+  pattern GL_TEXTURE16,
+  pattern GL_TEXTURE17,
+  pattern GL_TEXTURE18,
+  pattern GL_TEXTURE19,
+  pattern GL_TEXTURE2,
+  pattern GL_TEXTURE20,
+  pattern GL_TEXTURE21,
+  pattern GL_TEXTURE22,
+  pattern GL_TEXTURE23,
+  pattern GL_TEXTURE24,
+  pattern GL_TEXTURE25,
+  pattern GL_TEXTURE26,
+  pattern GL_TEXTURE27,
+  pattern GL_TEXTURE28,
+  pattern GL_TEXTURE29,
+  pattern GL_TEXTURE3,
+  pattern GL_TEXTURE30,
+  pattern GL_TEXTURE31,
+  pattern GL_TEXTURE4,
+  pattern GL_TEXTURE5,
+  pattern GL_TEXTURE6,
+  pattern GL_TEXTURE7,
+  pattern GL_TEXTURE8,
+  pattern GL_TEXTURE9,
+  pattern GL_TEXTURE_1D,
+  pattern GL_TEXTURE_1D_ARRAY,
+  pattern GL_TEXTURE_2D,
+  pattern GL_TEXTURE_2D_ARRAY,
+  pattern GL_TEXTURE_2D_MULTISAMPLE,
+  pattern GL_TEXTURE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_TEXTURE_3D,
+  pattern GL_TEXTURE_ALPHA_SIZE,
+  pattern GL_TEXTURE_ALPHA_TYPE,
+  pattern GL_TEXTURE_BASE_LEVEL,
+  pattern GL_TEXTURE_BINDING_1D,
+  pattern GL_TEXTURE_BINDING_1D_ARRAY,
+  pattern GL_TEXTURE_BINDING_2D,
+  pattern GL_TEXTURE_BINDING_2D_ARRAY,
+  pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE,
+  pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY,
+  pattern GL_TEXTURE_BINDING_3D,
+  pattern GL_TEXTURE_BINDING_BUFFER,
+  pattern GL_TEXTURE_BINDING_CUBE_MAP,
+  pattern GL_TEXTURE_BINDING_CUBE_MAP_ARRAY,
+  pattern GL_TEXTURE_BINDING_RECTANGLE,
+  pattern GL_TEXTURE_BIT,
+  pattern GL_TEXTURE_BLUE_SIZE,
+  pattern GL_TEXTURE_BLUE_TYPE,
+  pattern GL_TEXTURE_BORDER,
+  pattern GL_TEXTURE_BORDER_COLOR,
+  pattern GL_TEXTURE_BUFFER,
+  pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING,
+  pattern GL_TEXTURE_COMPARE_FUNC,
+  pattern GL_TEXTURE_COMPARE_MODE,
+  pattern GL_TEXTURE_COMPONENTS,
+  pattern GL_TEXTURE_COMPRESSED,
+  pattern GL_TEXTURE_COMPRESSED_IMAGE_SIZE,
+  pattern GL_TEXTURE_COMPRESSION_HINT,
+  pattern GL_TEXTURE_COORD_ARRAY,
+  pattern GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING,
+  pattern GL_TEXTURE_COORD_ARRAY_POINTER,
+  pattern GL_TEXTURE_COORD_ARRAY_SIZE,
+  pattern GL_TEXTURE_COORD_ARRAY_STRIDE,
+  pattern GL_TEXTURE_COORD_ARRAY_TYPE,
+  pattern GL_TEXTURE_CUBE_MAP,
+  pattern GL_TEXTURE_CUBE_MAP_ARRAY,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z,
+  pattern GL_TEXTURE_CUBE_MAP_SEAMLESS,
+  pattern GL_TEXTURE_DEPTH,
+  pattern GL_TEXTURE_DEPTH_SIZE,
+  pattern GL_TEXTURE_DEPTH_TYPE,
+  pattern GL_TEXTURE_ENV,
+  pattern GL_TEXTURE_ENV_COLOR,
+  pattern GL_TEXTURE_ENV_MODE,
+  pattern GL_TEXTURE_FILTER_CONTROL,
+  pattern GL_TEXTURE_FIXED_SAMPLE_LOCATIONS,
+  pattern GL_TEXTURE_GEN_MODE,
+  pattern GL_TEXTURE_GEN_Q,
+  pattern GL_TEXTURE_GEN_R,
+  pattern GL_TEXTURE_GEN_S,
+  pattern GL_TEXTURE_GEN_T,
+  pattern GL_TEXTURE_GREEN_SIZE,
+  pattern GL_TEXTURE_GREEN_TYPE,
+  pattern GL_TEXTURE_HEIGHT,
+  pattern GL_TEXTURE_INTENSITY_SIZE,
+  pattern GL_TEXTURE_INTENSITY_TYPE,
+  pattern GL_TEXTURE_INTERNAL_FORMAT,
+  pattern GL_TEXTURE_LOD_BIAS,
+  pattern GL_TEXTURE_LUMINANCE_SIZE,
+  pattern GL_TEXTURE_LUMINANCE_TYPE,
+  pattern GL_TEXTURE_MAG_FILTER,
+  pattern GL_TEXTURE_MATRIX,
+  pattern GL_TEXTURE_MAX_LEVEL,
+  pattern GL_TEXTURE_MAX_LOD,
+  pattern GL_TEXTURE_MIN_FILTER,
+  pattern GL_TEXTURE_MIN_LOD,
+  pattern GL_TEXTURE_PRIORITY,
+  pattern GL_TEXTURE_RECTANGLE,
+  pattern GL_TEXTURE_RED_SIZE,
+  pattern GL_TEXTURE_RED_TYPE,
+  pattern GL_TEXTURE_RESIDENT,
+  pattern GL_TEXTURE_SAMPLES,
+  pattern GL_TEXTURE_SHARED_SIZE,
+  pattern GL_TEXTURE_STACK_DEPTH,
+  pattern GL_TEXTURE_STENCIL_SIZE,
+  pattern GL_TEXTURE_SWIZZLE_A,
+  pattern GL_TEXTURE_SWIZZLE_B,
+  pattern GL_TEXTURE_SWIZZLE_G,
+  pattern GL_TEXTURE_SWIZZLE_R,
+  pattern GL_TEXTURE_SWIZZLE_RGBA,
+  pattern GL_TEXTURE_WIDTH,
+  pattern GL_TEXTURE_WRAP_R,
+  pattern GL_TEXTURE_WRAP_S,
+  pattern GL_TEXTURE_WRAP_T,
+  pattern GL_TIMEOUT_EXPIRED,
+  pattern GL_TIMEOUT_IGNORED,
+  pattern GL_TIMESTAMP,
+  pattern GL_TIME_ELAPSED,
+  pattern GL_TRANSFORM_BIT,
+  pattern GL_TRANSFORM_FEEDBACK,
+  pattern GL_TRANSFORM_FEEDBACK_BINDING,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_BINDING,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_MODE,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_SIZE,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_START,
+  pattern GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN,
+  pattern GL_TRANSFORM_FEEDBACK_VARYINGS,
+  pattern GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH,
+  pattern GL_TRANSPOSE_COLOR_MATRIX,
+  pattern GL_TRANSPOSE_MODELVIEW_MATRIX,
+  pattern GL_TRANSPOSE_PROJECTION_MATRIX,
+  pattern GL_TRANSPOSE_TEXTURE_MATRIX,
+  pattern GL_TRIANGLES,
+  pattern GL_TRIANGLES_ADJACENCY,
+  pattern GL_TRIANGLE_FAN,
+  pattern GL_TRIANGLE_STRIP,
+  pattern GL_TRIANGLE_STRIP_ADJACENCY,
+  pattern GL_TRUE,
+  pattern GL_UNDEFINED_VERTEX,
+  pattern GL_UNIFORM_ARRAY_STRIDE,
+  pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS,
+  pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES,
+  pattern GL_UNIFORM_BLOCK_BINDING,
+  pattern GL_UNIFORM_BLOCK_DATA_SIZE,
+  pattern GL_UNIFORM_BLOCK_INDEX,
+  pattern GL_UNIFORM_BLOCK_NAME_LENGTH,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER,
+  pattern GL_UNIFORM_BUFFER,
+  pattern GL_UNIFORM_BUFFER_BINDING,
+  pattern GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT,
+  pattern GL_UNIFORM_BUFFER_SIZE,
+  pattern GL_UNIFORM_BUFFER_START,
+  pattern GL_UNIFORM_IS_ROW_MAJOR,
+  pattern GL_UNIFORM_MATRIX_STRIDE,
+  pattern GL_UNIFORM_NAME_LENGTH,
+  pattern GL_UNIFORM_OFFSET,
+  pattern GL_UNIFORM_SIZE,
+  pattern GL_UNIFORM_TYPE,
+  pattern GL_UNPACK_ALIGNMENT,
+  pattern GL_UNPACK_IMAGE_HEIGHT,
+  pattern GL_UNPACK_LSB_FIRST,
+  pattern GL_UNPACK_ROW_LENGTH,
+  pattern GL_UNPACK_SKIP_IMAGES,
+  pattern GL_UNPACK_SKIP_PIXELS,
+  pattern GL_UNPACK_SKIP_ROWS,
+  pattern GL_UNPACK_SWAP_BYTES,
+  pattern GL_UNSIGNALED,
+  pattern GL_UNSIGNED_BYTE,
+  pattern GL_UNSIGNED_BYTE_2_3_3_REV,
+  pattern GL_UNSIGNED_BYTE_3_3_2,
+  pattern GL_UNSIGNED_INT,
+  pattern GL_UNSIGNED_INT_10F_11F_11F_REV,
+  pattern GL_UNSIGNED_INT_10_10_10_2,
+  pattern GL_UNSIGNED_INT_24_8,
+  pattern GL_UNSIGNED_INT_2_10_10_10_REV,
+  pattern GL_UNSIGNED_INT_5_9_9_9_REV,
+  pattern GL_UNSIGNED_INT_8_8_8_8,
+  pattern GL_UNSIGNED_INT_8_8_8_8_REV,
+  pattern GL_UNSIGNED_INT_SAMPLER_1D,
+  pattern GL_UNSIGNED_INT_SAMPLER_1D_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_RECT,
+  pattern GL_UNSIGNED_INT_SAMPLER_3D,
+  pattern GL_UNSIGNED_INT_SAMPLER_BUFFER,
+  pattern GL_UNSIGNED_INT_SAMPLER_CUBE,
+  pattern GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY,
+  pattern GL_UNSIGNED_INT_VEC2,
+  pattern GL_UNSIGNED_INT_VEC3,
+  pattern GL_UNSIGNED_INT_VEC4,
+  pattern GL_UNSIGNED_NORMALIZED,
+  pattern GL_UNSIGNED_SHORT,
+  pattern GL_UNSIGNED_SHORT_1_5_5_5_REV,
+  pattern GL_UNSIGNED_SHORT_4_4_4_4,
+  pattern GL_UNSIGNED_SHORT_4_4_4_4_REV,
+  pattern GL_UNSIGNED_SHORT_5_5_5_1,
+  pattern GL_UNSIGNED_SHORT_5_6_5,
+  pattern GL_UNSIGNED_SHORT_5_6_5_REV,
+  pattern GL_UPPER_LEFT,
+  pattern GL_V2F,
+  pattern GL_V3F,
+  pattern GL_VALIDATE_STATUS,
+  pattern GL_VENDOR,
+  pattern GL_VERSION,
+  pattern GL_VERTEX_ARRAY,
+  pattern GL_VERTEX_ARRAY_BINDING,
+  pattern GL_VERTEX_ARRAY_BUFFER_BINDING,
+  pattern GL_VERTEX_ARRAY_POINTER,
+  pattern GL_VERTEX_ARRAY_SIZE,
+  pattern GL_VERTEX_ARRAY_STRIDE,
+  pattern GL_VERTEX_ARRAY_TYPE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING,
+  pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR,
+  pattern GL_VERTEX_ATTRIB_ARRAY_ENABLED,
+  pattern GL_VERTEX_ATTRIB_ARRAY_INTEGER,
+  pattern GL_VERTEX_ATTRIB_ARRAY_NORMALIZED,
+  pattern GL_VERTEX_ATTRIB_ARRAY_POINTER,
+  pattern GL_VERTEX_ATTRIB_ARRAY_SIZE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_STRIDE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_TYPE,
+  pattern GL_VERTEX_PROGRAM_POINT_SIZE,
+  pattern GL_VERTEX_PROGRAM_TWO_SIDE,
+  pattern GL_VERTEX_SHADER,
+  pattern GL_VERTEX_SHADER_BIT,
+  pattern GL_VIEWPORT,
+  pattern GL_VIEWPORT_BIT,
+  pattern GL_VIEWPORT_BOUNDS_RANGE,
+  pattern GL_VIEWPORT_INDEX_PROVOKING_VERTEX,
+  pattern GL_VIEWPORT_SUBPIXEL_BITS,
+  pattern GL_WAIT_FAILED,
+  pattern GL_WEIGHT_ARRAY_BUFFER_BINDING,
+  pattern GL_WRITE_ONLY,
+  pattern GL_XOR,
+  pattern GL_ZERO,
+  pattern GL_ZOOM_X,
+  pattern GL_ZOOM_Y,
+  -- * Functions
+  glAccum,
+  glActiveShaderProgram,
+  glActiveTexture,
+  glAlphaFunc,
+  glAreTexturesResident,
+  glArrayElement,
+  glAttachShader,
+  glBegin,
+  glBeginConditionalRender,
+  glBeginQuery,
+  glBeginQueryIndexed,
+  glBeginTransformFeedback,
+  glBindAttribLocation,
+  glBindBuffer,
+  glBindBufferBase,
+  glBindBufferRange,
+  glBindFragDataLocation,
+  glBindFragDataLocationIndexed,
+  glBindFramebuffer,
+  glBindProgramPipeline,
+  glBindRenderbuffer,
+  glBindSampler,
+  glBindTexture,
+  glBindTransformFeedback,
+  glBindVertexArray,
+  glBitmap,
+  glBlendColor,
+  glBlendEquation,
+  glBlendEquationSeparate,
+  glBlendEquationSeparatei,
+  glBlendEquationi,
+  glBlendFunc,
+  glBlendFuncSeparate,
+  glBlendFuncSeparatei,
+  glBlendFunci,
+  glBlitFramebuffer,
+  glBufferData,
+  glBufferSubData,
+  glCallList,
+  glCallLists,
+  glCheckFramebufferStatus,
+  glClampColor,
+  glClear,
+  glClearAccum,
+  glClearBufferfi,
+  glClearBufferfv,
+  glClearBufferiv,
+  glClearBufferuiv,
+  glClearColor,
+  glClearDepth,
+  glClearDepthf,
+  glClearIndex,
+  glClearStencil,
+  glClientActiveTexture,
+  glClientWaitSync,
+  glClipPlane,
+  glColor3b,
+  glColor3bv,
+  glColor3d,
+  glColor3dv,
+  glColor3f,
+  glColor3fv,
+  glColor3i,
+  glColor3iv,
+  glColor3s,
+  glColor3sv,
+  glColor3ub,
+  glColor3ubv,
+  glColor3ui,
+  glColor3uiv,
+  glColor3us,
+  glColor3usv,
+  glColor4b,
+  glColor4bv,
+  glColor4d,
+  glColor4dv,
+  glColor4f,
+  glColor4fv,
+  glColor4i,
+  glColor4iv,
+  glColor4s,
+  glColor4sv,
+  glColor4ub,
+  glColor4ubv,
+  glColor4ui,
+  glColor4uiv,
+  glColor4us,
+  glColor4usv,
+  glColorMask,
+  glColorMaski,
+  glColorMaterial,
+  glColorP3ui,
+  glColorP3uiv,
+  glColorP4ui,
+  glColorP4uiv,
+  glColorPointer,
+  glCompileShader,
+  glCompressedTexImage1D,
+  glCompressedTexImage2D,
+  glCompressedTexImage3D,
+  glCompressedTexSubImage1D,
+  glCompressedTexSubImage2D,
+  glCompressedTexSubImage3D,
+  glCopyBufferSubData,
+  glCopyPixels,
+  glCopyTexImage1D,
+  glCopyTexImage2D,
+  glCopyTexSubImage1D,
+  glCopyTexSubImage2D,
+  glCopyTexSubImage3D,
+  glCreateProgram,
+  glCreateShader,
+  glCreateShaderProgramv,
+  glCullFace,
+  glDeleteBuffers,
+  glDeleteFramebuffers,
+  glDeleteLists,
+  glDeleteProgram,
+  glDeleteProgramPipelines,
+  glDeleteQueries,
+  glDeleteRenderbuffers,
+  glDeleteSamplers,
+  glDeleteShader,
+  glDeleteSync,
+  glDeleteTextures,
+  glDeleteTransformFeedbacks,
+  glDeleteVertexArrays,
+  glDepthFunc,
+  glDepthMask,
+  glDepthRange,
+  glDepthRangeArrayv,
+  glDepthRangeIndexed,
+  glDepthRangef,
+  glDetachShader,
+  glDisable,
+  glDisableClientState,
+  glDisableVertexAttribArray,
+  glDisablei,
+  glDrawArrays,
+  glDrawArraysIndirect,
+  glDrawArraysInstanced,
+  glDrawBuffer,
+  glDrawBuffers,
+  glDrawElements,
+  glDrawElementsBaseVertex,
+  glDrawElementsIndirect,
+  glDrawElementsInstanced,
+  glDrawElementsInstancedBaseVertex,
+  glDrawPixels,
+  glDrawRangeElements,
+  glDrawRangeElementsBaseVertex,
+  glDrawTransformFeedback,
+  glDrawTransformFeedbackStream,
+  glEdgeFlag,
+  glEdgeFlagPointer,
+  glEdgeFlagv,
+  glEnable,
+  glEnableClientState,
+  glEnableVertexAttribArray,
+  glEnablei,
+  glEnd,
+  glEndConditionalRender,
+  glEndList,
+  glEndQuery,
+  glEndQueryIndexed,
+  glEndTransformFeedback,
+  glEvalCoord1d,
+  glEvalCoord1dv,
+  glEvalCoord1f,
+  glEvalCoord1fv,
+  glEvalCoord2d,
+  glEvalCoord2dv,
+  glEvalCoord2f,
+  glEvalCoord2fv,
+  glEvalMesh1,
+  glEvalMesh2,
+  glEvalPoint1,
+  glEvalPoint2,
+  glFeedbackBuffer,
+  glFenceSync,
+  glFinish,
+  glFlush,
+  glFlushMappedBufferRange,
+  glFogCoordPointer,
+  glFogCoordd,
+  glFogCoorddv,
+  glFogCoordf,
+  glFogCoordfv,
+  glFogf,
+  glFogfv,
+  glFogi,
+  glFogiv,
+  glFramebufferRenderbuffer,
+  glFramebufferTexture,
+  glFramebufferTexture1D,
+  glFramebufferTexture2D,
+  glFramebufferTexture3D,
+  glFramebufferTextureLayer,
+  glFrontFace,
+  glFrustum,
+  glGenBuffers,
+  glGenFramebuffers,
+  glGenLists,
+  glGenProgramPipelines,
+  glGenQueries,
+  glGenRenderbuffers,
+  glGenSamplers,
+  glGenTextures,
+  glGenTransformFeedbacks,
+  glGenVertexArrays,
+  glGenerateMipmap,
+  glGetActiveAttrib,
+  glGetActiveSubroutineName,
+  glGetActiveSubroutineUniformName,
+  glGetActiveSubroutineUniformiv,
+  glGetActiveUniform,
+  glGetActiveUniformBlockName,
+  glGetActiveUniformBlockiv,
+  glGetActiveUniformName,
+  glGetActiveUniformsiv,
+  glGetAttachedShaders,
+  glGetAttribLocation,
+  glGetBooleani_v,
+  glGetBooleanv,
+  glGetBufferParameteri64v,
+  glGetBufferParameteriv,
+  glGetBufferPointerv,
+  glGetBufferSubData,
+  glGetClipPlane,
+  glGetCompressedTexImage,
+  glGetDoublei_v,
+  glGetDoublev,
+  glGetError,
+  glGetFloati_v,
+  glGetFloatv,
+  glGetFragDataIndex,
+  glGetFragDataLocation,
+  glGetFramebufferAttachmentParameteriv,
+  glGetInteger64i_v,
+  glGetInteger64v,
+  glGetIntegeri_v,
+  glGetIntegerv,
+  glGetLightfv,
+  glGetLightiv,
+  glGetMapdv,
+  glGetMapfv,
+  glGetMapiv,
+  glGetMaterialfv,
+  glGetMaterialiv,
+  glGetMultisamplefv,
+  glGetPixelMapfv,
+  glGetPixelMapuiv,
+  glGetPixelMapusv,
+  glGetPointerv,
+  glGetPolygonStipple,
+  glGetProgramBinary,
+  glGetProgramInfoLog,
+  glGetProgramPipelineInfoLog,
+  glGetProgramPipelineiv,
+  glGetProgramStageiv,
+  glGetProgramiv,
+  glGetQueryIndexediv,
+  glGetQueryObjecti64v,
+  glGetQueryObjectiv,
+  glGetQueryObjectui64v,
+  glGetQueryObjectuiv,
+  glGetQueryiv,
+  glGetRenderbufferParameteriv,
+  glGetSamplerParameterIiv,
+  glGetSamplerParameterIuiv,
+  glGetSamplerParameterfv,
+  glGetSamplerParameteriv,
+  glGetShaderInfoLog,
+  glGetShaderPrecisionFormat,
+  glGetShaderSource,
+  glGetShaderiv,
+  glGetString,
+  glGetStringi,
+  glGetSubroutineIndex,
+  glGetSubroutineUniformLocation,
+  glGetSynciv,
+  glGetTexEnvfv,
+  glGetTexEnviv,
+  glGetTexGendv,
+  glGetTexGenfv,
+  glGetTexGeniv,
+  glGetTexImage,
+  glGetTexLevelParameterfv,
+  glGetTexLevelParameteriv,
+  glGetTexParameterIiv,
+  glGetTexParameterIuiv,
+  glGetTexParameterfv,
+  glGetTexParameteriv,
+  glGetTransformFeedbackVarying,
+  glGetUniformBlockIndex,
+  glGetUniformIndices,
+  glGetUniformLocation,
+  glGetUniformSubroutineuiv,
+  glGetUniformdv,
+  glGetUniformfv,
+  glGetUniformiv,
+  glGetUniformuiv,
+  glGetVertexAttribIiv,
+  glGetVertexAttribIuiv,
+  glGetVertexAttribLdv,
+  glGetVertexAttribPointerv,
+  glGetVertexAttribdv,
+  glGetVertexAttribfv,
+  glGetVertexAttribiv,
+  glHint,
+  glIndexMask,
+  glIndexPointer,
+  glIndexd,
+  glIndexdv,
+  glIndexf,
+  glIndexfv,
+  glIndexi,
+  glIndexiv,
+  glIndexs,
+  glIndexsv,
+  glIndexub,
+  glIndexubv,
+  glInitNames,
+  glInterleavedArrays,
+  glIsBuffer,
+  glIsEnabled,
+  glIsEnabledi,
+  glIsFramebuffer,
+  glIsList,
+  glIsProgram,
+  glIsProgramPipeline,
+  glIsQuery,
+  glIsRenderbuffer,
+  glIsSampler,
+  glIsShader,
+  glIsSync,
+  glIsTexture,
+  glIsTransformFeedback,
+  glIsVertexArray,
+  glLightModelf,
+  glLightModelfv,
+  glLightModeli,
+  glLightModeliv,
+  glLightf,
+  glLightfv,
+  glLighti,
+  glLightiv,
+  glLineStipple,
+  glLineWidth,
+  glLinkProgram,
+  glListBase,
+  glLoadIdentity,
+  glLoadMatrixd,
+  glLoadMatrixf,
+  glLoadName,
+  glLoadTransposeMatrixd,
+  glLoadTransposeMatrixf,
+  glLogicOp,
+  glMap1d,
+  glMap1f,
+  glMap2d,
+  glMap2f,
+  glMapBuffer,
+  glMapBufferRange,
+  glMapGrid1d,
+  glMapGrid1f,
+  glMapGrid2d,
+  glMapGrid2f,
+  glMaterialf,
+  glMaterialfv,
+  glMateriali,
+  glMaterialiv,
+  glMatrixMode,
+  glMinSampleShading,
+  glMultMatrixd,
+  glMultMatrixf,
+  glMultTransposeMatrixd,
+  glMultTransposeMatrixf,
+  glMultiDrawArrays,
+  glMultiDrawElements,
+  glMultiDrawElementsBaseVertex,
+  glMultiTexCoord1d,
+  glMultiTexCoord1dv,
+  glMultiTexCoord1f,
+  glMultiTexCoord1fv,
+  glMultiTexCoord1i,
+  glMultiTexCoord1iv,
+  glMultiTexCoord1s,
+  glMultiTexCoord1sv,
+  glMultiTexCoord2d,
+  glMultiTexCoord2dv,
+  glMultiTexCoord2f,
+  glMultiTexCoord2fv,
+  glMultiTexCoord2i,
+  glMultiTexCoord2iv,
+  glMultiTexCoord2s,
+  glMultiTexCoord2sv,
+  glMultiTexCoord3d,
+  glMultiTexCoord3dv,
+  glMultiTexCoord3f,
+  glMultiTexCoord3fv,
+  glMultiTexCoord3i,
+  glMultiTexCoord3iv,
+  glMultiTexCoord3s,
+  glMultiTexCoord3sv,
+  glMultiTexCoord4d,
+  glMultiTexCoord4dv,
+  glMultiTexCoord4f,
+  glMultiTexCoord4fv,
+  glMultiTexCoord4i,
+  glMultiTexCoord4iv,
+  glMultiTexCoord4s,
+  glMultiTexCoord4sv,
+  glMultiTexCoordP1ui,
+  glMultiTexCoordP1uiv,
+  glMultiTexCoordP2ui,
+  glMultiTexCoordP2uiv,
+  glMultiTexCoordP3ui,
+  glMultiTexCoordP3uiv,
+  glMultiTexCoordP4ui,
+  glMultiTexCoordP4uiv,
+  glNewList,
+  glNormal3b,
+  glNormal3bv,
+  glNormal3d,
+  glNormal3dv,
+  glNormal3f,
+  glNormal3fv,
+  glNormal3i,
+  glNormal3iv,
+  glNormal3s,
+  glNormal3sv,
+  glNormalP3ui,
+  glNormalP3uiv,
+  glNormalPointer,
+  glOrtho,
+  glPassThrough,
+  glPatchParameterfv,
+  glPatchParameteri,
+  glPauseTransformFeedback,
+  glPixelMapfv,
+  glPixelMapuiv,
+  glPixelMapusv,
+  glPixelStoref,
+  glPixelStorei,
+  glPixelTransferf,
+  glPixelTransferi,
+  glPixelZoom,
+  glPointParameterf,
+  glPointParameterfv,
+  glPointParameteri,
+  glPointParameteriv,
+  glPointSize,
+  glPolygonMode,
+  glPolygonOffset,
+  glPolygonStipple,
+  glPopAttrib,
+  glPopClientAttrib,
+  glPopMatrix,
+  glPopName,
+  glPrimitiveRestartIndex,
+  glPrioritizeTextures,
+  glProgramBinary,
+  glProgramParameteri,
+  glProgramUniform1d,
+  glProgramUniform1dv,
+  glProgramUniform1f,
+  glProgramUniform1fv,
+  glProgramUniform1i,
+  glProgramUniform1iv,
+  glProgramUniform1ui,
+  glProgramUniform1uiv,
+  glProgramUniform2d,
+  glProgramUniform2dv,
+  glProgramUniform2f,
+  glProgramUniform2fv,
+  glProgramUniform2i,
+  glProgramUniform2iv,
+  glProgramUniform2ui,
+  glProgramUniform2uiv,
+  glProgramUniform3d,
+  glProgramUniform3dv,
+  glProgramUniform3f,
+  glProgramUniform3fv,
+  glProgramUniform3i,
+  glProgramUniform3iv,
+  glProgramUniform3ui,
+  glProgramUniform3uiv,
+  glProgramUniform4d,
+  glProgramUniform4dv,
+  glProgramUniform4f,
+  glProgramUniform4fv,
+  glProgramUniform4i,
+  glProgramUniform4iv,
+  glProgramUniform4ui,
+  glProgramUniform4uiv,
+  glProgramUniformMatrix2dv,
+  glProgramUniformMatrix2fv,
+  glProgramUniformMatrix2x3dv,
+  glProgramUniformMatrix2x3fv,
+  glProgramUniformMatrix2x4dv,
+  glProgramUniformMatrix2x4fv,
+  glProgramUniformMatrix3dv,
+  glProgramUniformMatrix3fv,
+  glProgramUniformMatrix3x2dv,
+  glProgramUniformMatrix3x2fv,
+  glProgramUniformMatrix3x4dv,
+  glProgramUniformMatrix3x4fv,
+  glProgramUniformMatrix4dv,
+  glProgramUniformMatrix4fv,
+  glProgramUniformMatrix4x2dv,
+  glProgramUniformMatrix4x2fv,
+  glProgramUniformMatrix4x3dv,
+  glProgramUniformMatrix4x3fv,
+  glProvokingVertex,
+  glPushAttrib,
+  glPushClientAttrib,
+  glPushMatrix,
+  glPushName,
+  glQueryCounter,
+  glRasterPos2d,
+  glRasterPos2dv,
+  glRasterPos2f,
+  glRasterPos2fv,
+  glRasterPos2i,
+  glRasterPos2iv,
+  glRasterPos2s,
+  glRasterPos2sv,
+  glRasterPos3d,
+  glRasterPos3dv,
+  glRasterPos3f,
+  glRasterPos3fv,
+  glRasterPos3i,
+  glRasterPos3iv,
+  glRasterPos3s,
+  glRasterPos3sv,
+  glRasterPos4d,
+  glRasterPos4dv,
+  glRasterPos4f,
+  glRasterPos4fv,
+  glRasterPos4i,
+  glRasterPos4iv,
+  glRasterPos4s,
+  glRasterPos4sv,
+  glReadBuffer,
+  glReadPixels,
+  glRectd,
+  glRectdv,
+  glRectf,
+  glRectfv,
+  glRecti,
+  glRectiv,
+  glRects,
+  glRectsv,
+  glReleaseShaderCompiler,
+  glRenderMode,
+  glRenderbufferStorage,
+  glRenderbufferStorageMultisample,
+  glResumeTransformFeedback,
+  glRotated,
+  glRotatef,
+  glSampleCoverage,
+  glSampleMaski,
+  glSamplerParameterIiv,
+  glSamplerParameterIuiv,
+  glSamplerParameterf,
+  glSamplerParameterfv,
+  glSamplerParameteri,
+  glSamplerParameteriv,
+  glScaled,
+  glScalef,
+  glScissor,
+  glScissorArrayv,
+  glScissorIndexed,
+  glScissorIndexedv,
+  glSecondaryColor3b,
+  glSecondaryColor3bv,
+  glSecondaryColor3d,
+  glSecondaryColor3dv,
+  glSecondaryColor3f,
+  glSecondaryColor3fv,
+  glSecondaryColor3i,
+  glSecondaryColor3iv,
+  glSecondaryColor3s,
+  glSecondaryColor3sv,
+  glSecondaryColor3ub,
+  glSecondaryColor3ubv,
+  glSecondaryColor3ui,
+  glSecondaryColor3uiv,
+  glSecondaryColor3us,
+  glSecondaryColor3usv,
+  glSecondaryColorP3ui,
+  glSecondaryColorP3uiv,
+  glSecondaryColorPointer,
+  glSelectBuffer,
+  glShadeModel,
+  glShaderBinary,
+  glShaderSource,
+  glStencilFunc,
+  glStencilFuncSeparate,
+  glStencilMask,
+  glStencilMaskSeparate,
+  glStencilOp,
+  glStencilOpSeparate,
+  glTexBuffer,
+  glTexCoord1d,
+  glTexCoord1dv,
+  glTexCoord1f,
+  glTexCoord1fv,
+  glTexCoord1i,
+  glTexCoord1iv,
+  glTexCoord1s,
+  glTexCoord1sv,
+  glTexCoord2d,
+  glTexCoord2dv,
+  glTexCoord2f,
+  glTexCoord2fv,
+  glTexCoord2i,
+  glTexCoord2iv,
+  glTexCoord2s,
+  glTexCoord2sv,
+  glTexCoord3d,
+  glTexCoord3dv,
+  glTexCoord3f,
+  glTexCoord3fv,
+  glTexCoord3i,
+  glTexCoord3iv,
+  glTexCoord3s,
+  glTexCoord3sv,
+  glTexCoord4d,
+  glTexCoord4dv,
+  glTexCoord4f,
+  glTexCoord4fv,
+  glTexCoord4i,
+  glTexCoord4iv,
+  glTexCoord4s,
+  glTexCoord4sv,
+  glTexCoordP1ui,
+  glTexCoordP1uiv,
+  glTexCoordP2ui,
+  glTexCoordP2uiv,
+  glTexCoordP3ui,
+  glTexCoordP3uiv,
+  glTexCoordP4ui,
+  glTexCoordP4uiv,
+  glTexCoordPointer,
+  glTexEnvf,
+  glTexEnvfv,
+  glTexEnvi,
+  glTexEnviv,
+  glTexGend,
+  glTexGendv,
+  glTexGenf,
+  glTexGenfv,
+  glTexGeni,
+  glTexGeniv,
+  glTexImage1D,
+  glTexImage2D,
+  glTexImage2DMultisample,
+  glTexImage3D,
+  glTexImage3DMultisample,
+  glTexParameterIiv,
+  glTexParameterIuiv,
+  glTexParameterf,
+  glTexParameterfv,
+  glTexParameteri,
+  glTexParameteriv,
+  glTexSubImage1D,
+  glTexSubImage2D,
+  glTexSubImage3D,
+  glTransformFeedbackVaryings,
+  glTranslated,
+  glTranslatef,
+  glUniform1d,
+  glUniform1dv,
+  glUniform1f,
+  glUniform1fv,
+  glUniform1i,
+  glUniform1iv,
+  glUniform1ui,
+  glUniform1uiv,
+  glUniform2d,
+  glUniform2dv,
+  glUniform2f,
+  glUniform2fv,
+  glUniform2i,
+  glUniform2iv,
+  glUniform2ui,
+  glUniform2uiv,
+  glUniform3d,
+  glUniform3dv,
+  glUniform3f,
+  glUniform3fv,
+  glUniform3i,
+  glUniform3iv,
+  glUniform3ui,
+  glUniform3uiv,
+  glUniform4d,
+  glUniform4dv,
+  glUniform4f,
+  glUniform4fv,
+  glUniform4i,
+  glUniform4iv,
+  glUniform4ui,
+  glUniform4uiv,
+  glUniformBlockBinding,
+  glUniformMatrix2dv,
+  glUniformMatrix2fv,
+  glUniformMatrix2x3dv,
+  glUniformMatrix2x3fv,
+  glUniformMatrix2x4dv,
+  glUniformMatrix2x4fv,
+  glUniformMatrix3dv,
+  glUniformMatrix3fv,
+  glUniformMatrix3x2dv,
+  glUniformMatrix3x2fv,
+  glUniformMatrix3x4dv,
+  glUniformMatrix3x4fv,
+  glUniformMatrix4dv,
+  glUniformMatrix4fv,
+  glUniformMatrix4x2dv,
+  glUniformMatrix4x2fv,
+  glUniformMatrix4x3dv,
+  glUniformMatrix4x3fv,
+  glUniformSubroutinesuiv,
+  glUnmapBuffer,
+  glUseProgram,
+  glUseProgramStages,
+  glValidateProgram,
+  glValidateProgramPipeline,
+  glVertex2d,
+  glVertex2dv,
+  glVertex2f,
+  glVertex2fv,
+  glVertex2i,
+  glVertex2iv,
+  glVertex2s,
+  glVertex2sv,
+  glVertex3d,
+  glVertex3dv,
+  glVertex3f,
+  glVertex3fv,
+  glVertex3i,
+  glVertex3iv,
+  glVertex3s,
+  glVertex3sv,
+  glVertex4d,
+  glVertex4dv,
+  glVertex4f,
+  glVertex4fv,
+  glVertex4i,
+  glVertex4iv,
+  glVertex4s,
+  glVertex4sv,
+  glVertexAttrib1d,
+  glVertexAttrib1dv,
+  glVertexAttrib1f,
+  glVertexAttrib1fv,
+  glVertexAttrib1s,
+  glVertexAttrib1sv,
+  glVertexAttrib2d,
+  glVertexAttrib2dv,
+  glVertexAttrib2f,
+  glVertexAttrib2fv,
+  glVertexAttrib2s,
+  glVertexAttrib2sv,
+  glVertexAttrib3d,
+  glVertexAttrib3dv,
+  glVertexAttrib3f,
+  glVertexAttrib3fv,
+  glVertexAttrib3s,
+  glVertexAttrib3sv,
+  glVertexAttrib4Nbv,
+  glVertexAttrib4Niv,
+  glVertexAttrib4Nsv,
+  glVertexAttrib4Nub,
+  glVertexAttrib4Nubv,
+  glVertexAttrib4Nuiv,
+  glVertexAttrib4Nusv,
+  glVertexAttrib4bv,
+  glVertexAttrib4d,
+  glVertexAttrib4dv,
+  glVertexAttrib4f,
+  glVertexAttrib4fv,
+  glVertexAttrib4iv,
+  glVertexAttrib4s,
+  glVertexAttrib4sv,
+  glVertexAttrib4ubv,
+  glVertexAttrib4uiv,
+  glVertexAttrib4usv,
+  glVertexAttribDivisor,
+  glVertexAttribI1i,
+  glVertexAttribI1iv,
+  glVertexAttribI1ui,
+  glVertexAttribI1uiv,
+  glVertexAttribI2i,
+  glVertexAttribI2iv,
+  glVertexAttribI2ui,
+  glVertexAttribI2uiv,
+  glVertexAttribI3i,
+  glVertexAttribI3iv,
+  glVertexAttribI3ui,
+  glVertexAttribI3uiv,
+  glVertexAttribI4bv,
+  glVertexAttribI4i,
+  glVertexAttribI4iv,
+  glVertexAttribI4sv,
+  glVertexAttribI4ubv,
+  glVertexAttribI4ui,
+  glVertexAttribI4uiv,
+  glVertexAttribI4usv,
+  glVertexAttribIPointer,
+  glVertexAttribL1d,
+  glVertexAttribL1dv,
+  glVertexAttribL2d,
+  glVertexAttribL2dv,
+  glVertexAttribL3d,
+  glVertexAttribL3dv,
+  glVertexAttribL4d,
+  glVertexAttribL4dv,
+  glVertexAttribLPointer,
+  glVertexAttribP1ui,
+  glVertexAttribP1uiv,
+  glVertexAttribP2ui,
+  glVertexAttribP2uiv,
+  glVertexAttribP3ui,
+  glVertexAttribP3uiv,
+  glVertexAttribP4ui,
+  glVertexAttribP4uiv,
+  glVertexAttribPointer,
+  glVertexP2ui,
+  glVertexP2uiv,
+  glVertexP3ui,
+  glVertexP3uiv,
+  glVertexP4ui,
+  glVertexP4uiv,
+  glVertexPointer,
+  glViewport,
+  glViewportArrayv,
+  glViewportIndexedf,
+  glViewportIndexedfv,
+  glWaitSync,
+  glWindowPos2d,
+  glWindowPos2dv,
+  glWindowPos2f,
+  glWindowPos2fv,
+  glWindowPos2i,
+  glWindowPos2iv,
+  glWindowPos2s,
+  glWindowPos2sv,
+  glWindowPos3d,
+  glWindowPos3dv,
+  glWindowPos3f,
+  glWindowPos3fv,
+  glWindowPos3i,
+  glWindowPos3iv,
+  glWindowPos3s,
+  glWindowPos3sv
+) where
+
+import Graphics.GL.Types
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/Compatibility42.hs b/src/Graphics/GL/Compatibility42.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Compatibility42.hs
@@ -0,0 +1,2388 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Compatibility42
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Compatibility42 (
+  -- * Types
+  GLbitfield,
+  GLboolean,
+  GLbyte,
+  GLchar,
+  GLclampd,
+  GLclampf,
+  GLdouble,
+  GLenum,
+  GLfloat,
+  GLhalf,
+  GLint,
+  GLint64,
+  GLintptr,
+  GLshort,
+  GLsizei,
+  GLsizeiptr,
+  GLsync,
+  GLubyte,
+  GLuint,
+  GLuint64,
+  GLushort,
+  GLvoid,
+  -- * Enums
+  pattern GL_2D,
+  pattern GL_2_BYTES,
+  pattern GL_3D,
+  pattern GL_3D_COLOR,
+  pattern GL_3D_COLOR_TEXTURE,
+  pattern GL_3_BYTES,
+  pattern GL_4D_COLOR_TEXTURE,
+  pattern GL_4_BYTES,
+  pattern GL_ACCUM,
+  pattern GL_ACCUM_ALPHA_BITS,
+  pattern GL_ACCUM_BLUE_BITS,
+  pattern GL_ACCUM_BUFFER_BIT,
+  pattern GL_ACCUM_CLEAR_VALUE,
+  pattern GL_ACCUM_GREEN_BITS,
+  pattern GL_ACCUM_RED_BITS,
+  pattern GL_ACTIVE_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_ACTIVE_ATTRIBUTES,
+  pattern GL_ACTIVE_ATTRIBUTE_MAX_LENGTH,
+  pattern GL_ACTIVE_PROGRAM,
+  pattern GL_ACTIVE_SUBROUTINES,
+  pattern GL_ACTIVE_SUBROUTINE_MAX_LENGTH,
+  pattern GL_ACTIVE_SUBROUTINE_UNIFORMS,
+  pattern GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS,
+  pattern GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH,
+  pattern GL_ACTIVE_TEXTURE,
+  pattern GL_ACTIVE_UNIFORMS,
+  pattern GL_ACTIVE_UNIFORM_BLOCKS,
+  pattern GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH,
+  pattern GL_ACTIVE_UNIFORM_MAX_LENGTH,
+  pattern GL_ADD,
+  pattern GL_ADD_SIGNED,
+  pattern GL_ALIASED_LINE_WIDTH_RANGE,
+  pattern GL_ALIASED_POINT_SIZE_RANGE,
+  pattern GL_ALL_ATTRIB_BITS,
+  pattern GL_ALL_BARRIER_BITS,
+  pattern GL_ALL_SHADER_BITS,
+  pattern GL_ALPHA,
+  pattern GL_ALPHA12,
+  pattern GL_ALPHA16,
+  pattern GL_ALPHA4,
+  pattern GL_ALPHA8,
+  pattern GL_ALPHA_BIAS,
+  pattern GL_ALPHA_BITS,
+  pattern GL_ALPHA_INTEGER,
+  pattern GL_ALPHA_SCALE,
+  pattern GL_ALPHA_TEST,
+  pattern GL_ALPHA_TEST_FUNC,
+  pattern GL_ALPHA_TEST_REF,
+  pattern GL_ALREADY_SIGNALED,
+  pattern GL_ALWAYS,
+  pattern GL_AMBIENT,
+  pattern GL_AMBIENT_AND_DIFFUSE,
+  pattern GL_AND,
+  pattern GL_AND_INVERTED,
+  pattern GL_AND_REVERSE,
+  pattern GL_ANY_SAMPLES_PASSED,
+  pattern GL_ARRAY_BUFFER,
+  pattern GL_ARRAY_BUFFER_BINDING,
+  pattern GL_ATOMIC_COUNTER_BARRIER_BIT,
+  pattern GL_ATOMIC_COUNTER_BUFFER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS,
+  pattern GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES,
+  pattern GL_ATOMIC_COUNTER_BUFFER_BINDING,
+  pattern GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_SIZE,
+  pattern GL_ATOMIC_COUNTER_BUFFER_START,
+  pattern GL_ATTACHED_SHADERS,
+  pattern GL_ATTRIB_STACK_DEPTH,
+  pattern GL_AUTO_NORMAL,
+  pattern GL_AUX0,
+  pattern GL_AUX1,
+  pattern GL_AUX2,
+  pattern GL_AUX3,
+  pattern GL_AUX_BUFFERS,
+  pattern GL_BACK,
+  pattern GL_BACK_LEFT,
+  pattern GL_BACK_RIGHT,
+  pattern GL_BGR,
+  pattern GL_BGRA,
+  pattern GL_BGRA_INTEGER,
+  pattern GL_BGR_INTEGER,
+  pattern GL_BITMAP,
+  pattern GL_BITMAP_TOKEN,
+  pattern GL_BLEND,
+  pattern GL_BLEND_COLOR,
+  pattern GL_BLEND_DST,
+  pattern GL_BLEND_DST_ALPHA,
+  pattern GL_BLEND_DST_RGB,
+  pattern GL_BLEND_EQUATION,
+  pattern GL_BLEND_EQUATION_ALPHA,
+  pattern GL_BLEND_EQUATION_RGB,
+  pattern GL_BLEND_SRC,
+  pattern GL_BLEND_SRC_ALPHA,
+  pattern GL_BLEND_SRC_RGB,
+  pattern GL_BLUE,
+  pattern GL_BLUE_BIAS,
+  pattern GL_BLUE_BITS,
+  pattern GL_BLUE_INTEGER,
+  pattern GL_BLUE_SCALE,
+  pattern GL_BOOL,
+  pattern GL_BOOL_VEC2,
+  pattern GL_BOOL_VEC3,
+  pattern GL_BOOL_VEC4,
+  pattern GL_BUFFER_ACCESS,
+  pattern GL_BUFFER_ACCESS_FLAGS,
+  pattern GL_BUFFER_MAPPED,
+  pattern GL_BUFFER_MAP_LENGTH,
+  pattern GL_BUFFER_MAP_OFFSET,
+  pattern GL_BUFFER_MAP_POINTER,
+  pattern GL_BUFFER_SIZE,
+  pattern GL_BUFFER_UPDATE_BARRIER_BIT,
+  pattern GL_BUFFER_USAGE,
+  pattern GL_BYTE,
+  pattern GL_C3F_V3F,
+  pattern GL_C4F_N3F_V3F,
+  pattern GL_C4UB_V2F,
+  pattern GL_C4UB_V3F,
+  pattern GL_CCW,
+  pattern GL_CLAMP,
+  pattern GL_CLAMP_FRAGMENT_COLOR,
+  pattern GL_CLAMP_READ_COLOR,
+  pattern GL_CLAMP_TO_BORDER,
+  pattern GL_CLAMP_TO_EDGE,
+  pattern GL_CLAMP_VERTEX_COLOR,
+  pattern GL_CLEAR,
+  pattern GL_CLIENT_ACTIVE_TEXTURE,
+  pattern GL_CLIENT_ALL_ATTRIB_BITS,
+  pattern GL_CLIENT_ATTRIB_STACK_DEPTH,
+  pattern GL_CLIENT_PIXEL_STORE_BIT,
+  pattern GL_CLIENT_VERTEX_ARRAY_BIT,
+  pattern GL_CLIP_DISTANCE0,
+  pattern GL_CLIP_DISTANCE1,
+  pattern GL_CLIP_DISTANCE2,
+  pattern GL_CLIP_DISTANCE3,
+  pattern GL_CLIP_DISTANCE4,
+  pattern GL_CLIP_DISTANCE5,
+  pattern GL_CLIP_DISTANCE6,
+  pattern GL_CLIP_DISTANCE7,
+  pattern GL_CLIP_PLANE0,
+  pattern GL_CLIP_PLANE1,
+  pattern GL_CLIP_PLANE2,
+  pattern GL_CLIP_PLANE3,
+  pattern GL_CLIP_PLANE4,
+  pattern GL_CLIP_PLANE5,
+  pattern GL_COEFF,
+  pattern GL_COLOR,
+  pattern GL_COLOR_ARRAY,
+  pattern GL_COLOR_ARRAY_BUFFER_BINDING,
+  pattern GL_COLOR_ARRAY_POINTER,
+  pattern GL_COLOR_ARRAY_SIZE,
+  pattern GL_COLOR_ARRAY_STRIDE,
+  pattern GL_COLOR_ARRAY_TYPE,
+  pattern GL_COLOR_ATTACHMENT0,
+  pattern GL_COLOR_ATTACHMENT1,
+  pattern GL_COLOR_ATTACHMENT10,
+  pattern GL_COLOR_ATTACHMENT11,
+  pattern GL_COLOR_ATTACHMENT12,
+  pattern GL_COLOR_ATTACHMENT13,
+  pattern GL_COLOR_ATTACHMENT14,
+  pattern GL_COLOR_ATTACHMENT15,
+  pattern GL_COLOR_ATTACHMENT16,
+  pattern GL_COLOR_ATTACHMENT17,
+  pattern GL_COLOR_ATTACHMENT18,
+  pattern GL_COLOR_ATTACHMENT19,
+  pattern GL_COLOR_ATTACHMENT2,
+  pattern GL_COLOR_ATTACHMENT20,
+  pattern GL_COLOR_ATTACHMENT21,
+  pattern GL_COLOR_ATTACHMENT22,
+  pattern GL_COLOR_ATTACHMENT23,
+  pattern GL_COLOR_ATTACHMENT24,
+  pattern GL_COLOR_ATTACHMENT25,
+  pattern GL_COLOR_ATTACHMENT26,
+  pattern GL_COLOR_ATTACHMENT27,
+  pattern GL_COLOR_ATTACHMENT28,
+  pattern GL_COLOR_ATTACHMENT29,
+  pattern GL_COLOR_ATTACHMENT3,
+  pattern GL_COLOR_ATTACHMENT30,
+  pattern GL_COLOR_ATTACHMENT31,
+  pattern GL_COLOR_ATTACHMENT4,
+  pattern GL_COLOR_ATTACHMENT5,
+  pattern GL_COLOR_ATTACHMENT6,
+  pattern GL_COLOR_ATTACHMENT7,
+  pattern GL_COLOR_ATTACHMENT8,
+  pattern GL_COLOR_ATTACHMENT9,
+  pattern GL_COLOR_BUFFER_BIT,
+  pattern GL_COLOR_CLEAR_VALUE,
+  pattern GL_COLOR_INDEX,
+  pattern GL_COLOR_INDEXES,
+  pattern GL_COLOR_LOGIC_OP,
+  pattern GL_COLOR_MATERIAL,
+  pattern GL_COLOR_MATERIAL_FACE,
+  pattern GL_COLOR_MATERIAL_PARAMETER,
+  pattern GL_COLOR_SUM,
+  pattern GL_COLOR_WRITEMASK,
+  pattern GL_COMBINE,
+  pattern GL_COMBINE_ALPHA,
+  pattern GL_COMBINE_RGB,
+  pattern GL_COMMAND_BARRIER_BIT,
+  pattern GL_COMPARE_REF_TO_TEXTURE,
+  pattern GL_COMPARE_R_TO_TEXTURE,
+  pattern GL_COMPATIBLE_SUBROUTINES,
+  pattern GL_COMPILE,
+  pattern GL_COMPILE_AND_EXECUTE,
+  pattern GL_COMPILE_STATUS,
+  pattern GL_COMPRESSED_ALPHA,
+  pattern GL_COMPRESSED_INTENSITY,
+  pattern GL_COMPRESSED_LUMINANCE,
+  pattern GL_COMPRESSED_LUMINANCE_ALPHA,
+  pattern GL_COMPRESSED_RED,
+  pattern GL_COMPRESSED_RED_RGTC1,
+  pattern GL_COMPRESSED_RG,
+  pattern GL_COMPRESSED_RGB,
+  pattern GL_COMPRESSED_RGBA,
+  pattern GL_COMPRESSED_RGBA_BPTC_UNORM,
+  pattern GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT,
+  pattern GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT,
+  pattern GL_COMPRESSED_RG_RGTC2,
+  pattern GL_COMPRESSED_SIGNED_RED_RGTC1,
+  pattern GL_COMPRESSED_SIGNED_RG_RGTC2,
+  pattern GL_COMPRESSED_SLUMINANCE,
+  pattern GL_COMPRESSED_SLUMINANCE_ALPHA,
+  pattern GL_COMPRESSED_SRGB,
+  pattern GL_COMPRESSED_SRGB_ALPHA,
+  pattern GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM,
+  pattern GL_COMPRESSED_TEXTURE_FORMATS,
+  pattern GL_CONDITION_SATISFIED,
+  pattern GL_CONSTANT,
+  pattern GL_CONSTANT_ALPHA,
+  pattern GL_CONSTANT_ATTENUATION,
+  pattern GL_CONSTANT_COLOR,
+  pattern GL_CONTEXT_COMPATIBILITY_PROFILE_BIT,
+  pattern GL_CONTEXT_CORE_PROFILE_BIT,
+  pattern GL_CONTEXT_FLAGS,
+  pattern GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT,
+  pattern GL_CONTEXT_PROFILE_MASK,
+  pattern GL_COORD_REPLACE,
+  pattern GL_COPY,
+  pattern GL_COPY_INVERTED,
+  pattern GL_COPY_PIXEL_TOKEN,
+  pattern GL_COPY_READ_BUFFER,
+  pattern GL_COPY_READ_BUFFER_BINDING,
+  pattern GL_COPY_WRITE_BUFFER,
+  pattern GL_COPY_WRITE_BUFFER_BINDING,
+  pattern GL_CULL_FACE,
+  pattern GL_CULL_FACE_MODE,
+  pattern GL_CURRENT_BIT,
+  pattern GL_CURRENT_COLOR,
+  pattern GL_CURRENT_FOG_COORD,
+  pattern GL_CURRENT_FOG_COORDINATE,
+  pattern GL_CURRENT_INDEX,
+  pattern GL_CURRENT_NORMAL,
+  pattern GL_CURRENT_PROGRAM,
+  pattern GL_CURRENT_QUERY,
+  pattern GL_CURRENT_RASTER_COLOR,
+  pattern GL_CURRENT_RASTER_DISTANCE,
+  pattern GL_CURRENT_RASTER_INDEX,
+  pattern GL_CURRENT_RASTER_POSITION,
+  pattern GL_CURRENT_RASTER_POSITION_VALID,
+  pattern GL_CURRENT_RASTER_SECONDARY_COLOR,
+  pattern GL_CURRENT_RASTER_TEXTURE_COORDS,
+  pattern GL_CURRENT_SECONDARY_COLOR,
+  pattern GL_CURRENT_TEXTURE_COORDS,
+  pattern GL_CURRENT_VERTEX_ATTRIB,
+  pattern GL_CW,
+  pattern GL_DECAL,
+  pattern GL_DECR,
+  pattern GL_DECR_WRAP,
+  pattern GL_DELETE_STATUS,
+  pattern GL_DEPTH,
+  pattern GL_DEPTH24_STENCIL8,
+  pattern GL_DEPTH32F_STENCIL8,
+  pattern GL_DEPTH_ATTACHMENT,
+  pattern GL_DEPTH_BIAS,
+  pattern GL_DEPTH_BITS,
+  pattern GL_DEPTH_BUFFER_BIT,
+  pattern GL_DEPTH_CLAMP,
+  pattern GL_DEPTH_CLEAR_VALUE,
+  pattern GL_DEPTH_COMPONENT,
+  pattern GL_DEPTH_COMPONENT16,
+  pattern GL_DEPTH_COMPONENT24,
+  pattern GL_DEPTH_COMPONENT32,
+  pattern GL_DEPTH_COMPONENT32F,
+  pattern GL_DEPTH_FUNC,
+  pattern GL_DEPTH_RANGE,
+  pattern GL_DEPTH_SCALE,
+  pattern GL_DEPTH_STENCIL,
+  pattern GL_DEPTH_STENCIL_ATTACHMENT,
+  pattern GL_DEPTH_TEST,
+  pattern GL_DEPTH_TEXTURE_MODE,
+  pattern GL_DEPTH_WRITEMASK,
+  pattern GL_DIFFUSE,
+  pattern GL_DITHER,
+  pattern GL_DOMAIN,
+  pattern GL_DONT_CARE,
+  pattern GL_DOT3_RGB,
+  pattern GL_DOT3_RGBA,
+  pattern GL_DOUBLE,
+  pattern GL_DOUBLEBUFFER,
+  pattern GL_DOUBLE_MAT2,
+  pattern GL_DOUBLE_MAT2x3,
+  pattern GL_DOUBLE_MAT2x4,
+  pattern GL_DOUBLE_MAT3,
+  pattern GL_DOUBLE_MAT3x2,
+  pattern GL_DOUBLE_MAT3x4,
+  pattern GL_DOUBLE_MAT4,
+  pattern GL_DOUBLE_MAT4x2,
+  pattern GL_DOUBLE_MAT4x3,
+  pattern GL_DOUBLE_VEC2,
+  pattern GL_DOUBLE_VEC3,
+  pattern GL_DOUBLE_VEC4,
+  pattern GL_DRAW_BUFFER,
+  pattern GL_DRAW_BUFFER0,
+  pattern GL_DRAW_BUFFER1,
+  pattern GL_DRAW_BUFFER10,
+  pattern GL_DRAW_BUFFER11,
+  pattern GL_DRAW_BUFFER12,
+  pattern GL_DRAW_BUFFER13,
+  pattern GL_DRAW_BUFFER14,
+  pattern GL_DRAW_BUFFER15,
+  pattern GL_DRAW_BUFFER2,
+  pattern GL_DRAW_BUFFER3,
+  pattern GL_DRAW_BUFFER4,
+  pattern GL_DRAW_BUFFER5,
+  pattern GL_DRAW_BUFFER6,
+  pattern GL_DRAW_BUFFER7,
+  pattern GL_DRAW_BUFFER8,
+  pattern GL_DRAW_BUFFER9,
+  pattern GL_DRAW_FRAMEBUFFER,
+  pattern GL_DRAW_FRAMEBUFFER_BINDING,
+  pattern GL_DRAW_INDIRECT_BUFFER,
+  pattern GL_DRAW_INDIRECT_BUFFER_BINDING,
+  pattern GL_DRAW_PIXEL_TOKEN,
+  pattern GL_DST_ALPHA,
+  pattern GL_DST_COLOR,
+  pattern GL_DYNAMIC_COPY,
+  pattern GL_DYNAMIC_DRAW,
+  pattern GL_DYNAMIC_READ,
+  pattern GL_EDGE_FLAG,
+  pattern GL_EDGE_FLAG_ARRAY,
+  pattern GL_EDGE_FLAG_ARRAY_BUFFER_BINDING,
+  pattern GL_EDGE_FLAG_ARRAY_POINTER,
+  pattern GL_EDGE_FLAG_ARRAY_STRIDE,
+  pattern GL_ELEMENT_ARRAY_BARRIER_BIT,
+  pattern GL_ELEMENT_ARRAY_BUFFER,
+  pattern GL_ELEMENT_ARRAY_BUFFER_BINDING,
+  pattern GL_EMISSION,
+  pattern GL_ENABLE_BIT,
+  pattern GL_EQUAL,
+  pattern GL_EQUIV,
+  pattern GL_EVAL_BIT,
+  pattern GL_EXP,
+  pattern GL_EXP2,
+  pattern GL_EXTENSIONS,
+  pattern GL_EYE_LINEAR,
+  pattern GL_EYE_PLANE,
+  pattern GL_FALSE,
+  pattern GL_FASTEST,
+  pattern GL_FEEDBACK,
+  pattern GL_FEEDBACK_BUFFER_POINTER,
+  pattern GL_FEEDBACK_BUFFER_SIZE,
+  pattern GL_FEEDBACK_BUFFER_TYPE,
+  pattern GL_FILL,
+  pattern GL_FIRST_VERTEX_CONVENTION,
+  pattern GL_FIXED,
+  pattern GL_FIXED_ONLY,
+  pattern GL_FLAT,
+  pattern GL_FLOAT,
+  pattern GL_FLOAT_32_UNSIGNED_INT_24_8_REV,
+  pattern GL_FLOAT_MAT2,
+  pattern GL_FLOAT_MAT2x3,
+  pattern GL_FLOAT_MAT2x4,
+  pattern GL_FLOAT_MAT3,
+  pattern GL_FLOAT_MAT3x2,
+  pattern GL_FLOAT_MAT3x4,
+  pattern GL_FLOAT_MAT4,
+  pattern GL_FLOAT_MAT4x2,
+  pattern GL_FLOAT_MAT4x3,
+  pattern GL_FLOAT_VEC2,
+  pattern GL_FLOAT_VEC3,
+  pattern GL_FLOAT_VEC4,
+  pattern GL_FOG,
+  pattern GL_FOG_BIT,
+  pattern GL_FOG_COLOR,
+  pattern GL_FOG_COORD,
+  pattern GL_FOG_COORDINATE,
+  pattern GL_FOG_COORDINATE_ARRAY,
+  pattern GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING,
+  pattern GL_FOG_COORDINATE_ARRAY_POINTER,
+  pattern GL_FOG_COORDINATE_ARRAY_STRIDE,
+  pattern GL_FOG_COORDINATE_ARRAY_TYPE,
+  pattern GL_FOG_COORDINATE_SOURCE,
+  pattern GL_FOG_COORD_ARRAY,
+  pattern GL_FOG_COORD_ARRAY_BUFFER_BINDING,
+  pattern GL_FOG_COORD_ARRAY_POINTER,
+  pattern GL_FOG_COORD_ARRAY_STRIDE,
+  pattern GL_FOG_COORD_ARRAY_TYPE,
+  pattern GL_FOG_COORD_SRC,
+  pattern GL_FOG_DENSITY,
+  pattern GL_FOG_END,
+  pattern GL_FOG_HINT,
+  pattern GL_FOG_INDEX,
+  pattern GL_FOG_MODE,
+  pattern GL_FOG_START,
+  pattern GL_FRACTIONAL_EVEN,
+  pattern GL_FRACTIONAL_ODD,
+  pattern GL_FRAGMENT_DEPTH,
+  pattern GL_FRAGMENT_INTERPOLATION_OFFSET_BITS,
+  pattern GL_FRAGMENT_SHADER,
+  pattern GL_FRAGMENT_SHADER_BIT,
+  pattern GL_FRAGMENT_SHADER_DERIVATIVE_HINT,
+  pattern GL_FRAMEBUFFER,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL,
+  pattern GL_FRAMEBUFFER_BARRIER_BIT,
+  pattern GL_FRAMEBUFFER_BINDING,
+  pattern GL_FRAMEBUFFER_COMPLETE,
+  pattern GL_FRAMEBUFFER_DEFAULT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER,
+  pattern GL_FRAMEBUFFER_SRGB,
+  pattern GL_FRAMEBUFFER_UNDEFINED,
+  pattern GL_FRAMEBUFFER_UNSUPPORTED,
+  pattern GL_FRONT,
+  pattern GL_FRONT_AND_BACK,
+  pattern GL_FRONT_FACE,
+  pattern GL_FRONT_LEFT,
+  pattern GL_FRONT_RIGHT,
+  pattern GL_FUNC_ADD,
+  pattern GL_FUNC_REVERSE_SUBTRACT,
+  pattern GL_FUNC_SUBTRACT,
+  pattern GL_GENERATE_MIPMAP,
+  pattern GL_GENERATE_MIPMAP_HINT,
+  pattern GL_GEOMETRY_INPUT_TYPE,
+  pattern GL_GEOMETRY_OUTPUT_TYPE,
+  pattern GL_GEOMETRY_SHADER,
+  pattern GL_GEOMETRY_SHADER_BIT,
+  pattern GL_GEOMETRY_SHADER_INVOCATIONS,
+  pattern GL_GEOMETRY_VERTICES_OUT,
+  pattern GL_GEQUAL,
+  pattern GL_GREATER,
+  pattern GL_GREEN,
+  pattern GL_GREEN_BIAS,
+  pattern GL_GREEN_BITS,
+  pattern GL_GREEN_INTEGER,
+  pattern GL_GREEN_SCALE,
+  pattern GL_HALF_FLOAT,
+  pattern GL_HIGH_FLOAT,
+  pattern GL_HIGH_INT,
+  pattern GL_HINT_BIT,
+  pattern GL_IMAGE_1D,
+  pattern GL_IMAGE_1D_ARRAY,
+  pattern GL_IMAGE_2D,
+  pattern GL_IMAGE_2D_ARRAY,
+  pattern GL_IMAGE_2D_MULTISAMPLE,
+  pattern GL_IMAGE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_IMAGE_2D_RECT,
+  pattern GL_IMAGE_3D,
+  pattern GL_IMAGE_BINDING_ACCESS,
+  pattern GL_IMAGE_BINDING_FORMAT,
+  pattern GL_IMAGE_BINDING_LAYER,
+  pattern GL_IMAGE_BINDING_LAYERED,
+  pattern GL_IMAGE_BINDING_LEVEL,
+  pattern GL_IMAGE_BINDING_NAME,
+  pattern GL_IMAGE_BUFFER,
+  pattern GL_IMAGE_CUBE,
+  pattern GL_IMAGE_CUBE_MAP_ARRAY,
+  pattern GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS,
+  pattern GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE,
+  pattern GL_IMAGE_FORMAT_COMPATIBILITY_TYPE,
+  pattern GL_IMPLEMENTATION_COLOR_READ_FORMAT,
+  pattern GL_IMPLEMENTATION_COLOR_READ_TYPE,
+  pattern GL_INCR,
+  pattern GL_INCR_WRAP,
+  pattern GL_INDEX,
+  pattern GL_INDEX_ARRAY,
+  pattern GL_INDEX_ARRAY_BUFFER_BINDING,
+  pattern GL_INDEX_ARRAY_POINTER,
+  pattern GL_INDEX_ARRAY_STRIDE,
+  pattern GL_INDEX_ARRAY_TYPE,
+  pattern GL_INDEX_BITS,
+  pattern GL_INDEX_CLEAR_VALUE,
+  pattern GL_INDEX_LOGIC_OP,
+  pattern GL_INDEX_MODE,
+  pattern GL_INDEX_OFFSET,
+  pattern GL_INDEX_SHIFT,
+  pattern GL_INDEX_WRITEMASK,
+  pattern GL_INFO_LOG_LENGTH,
+  pattern GL_INT,
+  pattern GL_INTENSITY,
+  pattern GL_INTENSITY12,
+  pattern GL_INTENSITY16,
+  pattern GL_INTENSITY4,
+  pattern GL_INTENSITY8,
+  pattern GL_INTERLEAVED_ATTRIBS,
+  pattern GL_INTERPOLATE,
+  pattern GL_INT_2_10_10_10_REV,
+  pattern GL_INT_IMAGE_1D,
+  pattern GL_INT_IMAGE_1D_ARRAY,
+  pattern GL_INT_IMAGE_2D,
+  pattern GL_INT_IMAGE_2D_ARRAY,
+  pattern GL_INT_IMAGE_2D_MULTISAMPLE,
+  pattern GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_INT_IMAGE_2D_RECT,
+  pattern GL_INT_IMAGE_3D,
+  pattern GL_INT_IMAGE_BUFFER,
+  pattern GL_INT_IMAGE_CUBE,
+  pattern GL_INT_IMAGE_CUBE_MAP_ARRAY,
+  pattern GL_INT_SAMPLER_1D,
+  pattern GL_INT_SAMPLER_1D_ARRAY,
+  pattern GL_INT_SAMPLER_2D,
+  pattern GL_INT_SAMPLER_2D_ARRAY,
+  pattern GL_INT_SAMPLER_2D_MULTISAMPLE,
+  pattern GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY,
+  pattern GL_INT_SAMPLER_2D_RECT,
+  pattern GL_INT_SAMPLER_3D,
+  pattern GL_INT_SAMPLER_BUFFER,
+  pattern GL_INT_SAMPLER_CUBE,
+  pattern GL_INT_SAMPLER_CUBE_MAP_ARRAY,
+  pattern GL_INT_VEC2,
+  pattern GL_INT_VEC3,
+  pattern GL_INT_VEC4,
+  pattern GL_INVALID_ENUM,
+  pattern GL_INVALID_FRAMEBUFFER_OPERATION,
+  pattern GL_INVALID_INDEX,
+  pattern GL_INVALID_OPERATION,
+  pattern GL_INVALID_VALUE,
+  pattern GL_INVERT,
+  pattern GL_ISOLINES,
+  pattern GL_KEEP,
+  pattern GL_LAST_VERTEX_CONVENTION,
+  pattern GL_LAYER_PROVOKING_VERTEX,
+  pattern GL_LEFT,
+  pattern GL_LEQUAL,
+  pattern GL_LESS,
+  pattern GL_LIGHT0,
+  pattern GL_LIGHT1,
+  pattern GL_LIGHT2,
+  pattern GL_LIGHT3,
+  pattern GL_LIGHT4,
+  pattern GL_LIGHT5,
+  pattern GL_LIGHT6,
+  pattern GL_LIGHT7,
+  pattern GL_LIGHTING,
+  pattern GL_LIGHTING_BIT,
+  pattern GL_LIGHT_MODEL_AMBIENT,
+  pattern GL_LIGHT_MODEL_COLOR_CONTROL,
+  pattern GL_LIGHT_MODEL_LOCAL_VIEWER,
+  pattern GL_LIGHT_MODEL_TWO_SIDE,
+  pattern GL_LINE,
+  pattern GL_LINEAR,
+  pattern GL_LINEAR_ATTENUATION,
+  pattern GL_LINEAR_MIPMAP_LINEAR,
+  pattern GL_LINEAR_MIPMAP_NEAREST,
+  pattern GL_LINES,
+  pattern GL_LINES_ADJACENCY,
+  pattern GL_LINE_BIT,
+  pattern GL_LINE_LOOP,
+  pattern GL_LINE_RESET_TOKEN,
+  pattern GL_LINE_SMOOTH,
+  pattern GL_LINE_SMOOTH_HINT,
+  pattern GL_LINE_STIPPLE,
+  pattern GL_LINE_STIPPLE_PATTERN,
+  pattern GL_LINE_STIPPLE_REPEAT,
+  pattern GL_LINE_STRIP,
+  pattern GL_LINE_STRIP_ADJACENCY,
+  pattern GL_LINE_TOKEN,
+  pattern GL_LINE_WIDTH,
+  pattern GL_LINE_WIDTH_GRANULARITY,
+  pattern GL_LINE_WIDTH_RANGE,
+  pattern GL_LINK_STATUS,
+  pattern GL_LIST_BASE,
+  pattern GL_LIST_BIT,
+  pattern GL_LIST_INDEX,
+  pattern GL_LIST_MODE,
+  pattern GL_LOAD,
+  pattern GL_LOGIC_OP,
+  pattern GL_LOGIC_OP_MODE,
+  pattern GL_LOWER_LEFT,
+  pattern GL_LOW_FLOAT,
+  pattern GL_LOW_INT,
+  pattern GL_LUMINANCE,
+  pattern GL_LUMINANCE12,
+  pattern GL_LUMINANCE12_ALPHA12,
+  pattern GL_LUMINANCE12_ALPHA4,
+  pattern GL_LUMINANCE16,
+  pattern GL_LUMINANCE16_ALPHA16,
+  pattern GL_LUMINANCE4,
+  pattern GL_LUMINANCE4_ALPHA4,
+  pattern GL_LUMINANCE6_ALPHA2,
+  pattern GL_LUMINANCE8,
+  pattern GL_LUMINANCE8_ALPHA8,
+  pattern GL_LUMINANCE_ALPHA,
+  pattern GL_MAJOR_VERSION,
+  pattern GL_MAP1_COLOR_4,
+  pattern GL_MAP1_GRID_DOMAIN,
+  pattern GL_MAP1_GRID_SEGMENTS,
+  pattern GL_MAP1_INDEX,
+  pattern GL_MAP1_NORMAL,
+  pattern GL_MAP1_TEXTURE_COORD_1,
+  pattern GL_MAP1_TEXTURE_COORD_2,
+  pattern GL_MAP1_TEXTURE_COORD_3,
+  pattern GL_MAP1_TEXTURE_COORD_4,
+  pattern GL_MAP1_VERTEX_3,
+  pattern GL_MAP1_VERTEX_4,
+  pattern GL_MAP2_COLOR_4,
+  pattern GL_MAP2_GRID_DOMAIN,
+  pattern GL_MAP2_GRID_SEGMENTS,
+  pattern GL_MAP2_INDEX,
+  pattern GL_MAP2_NORMAL,
+  pattern GL_MAP2_TEXTURE_COORD_1,
+  pattern GL_MAP2_TEXTURE_COORD_2,
+  pattern GL_MAP2_TEXTURE_COORD_3,
+  pattern GL_MAP2_TEXTURE_COORD_4,
+  pattern GL_MAP2_VERTEX_3,
+  pattern GL_MAP2_VERTEX_4,
+  pattern GL_MAP_COLOR,
+  pattern GL_MAP_FLUSH_EXPLICIT_BIT,
+  pattern GL_MAP_INVALIDATE_BUFFER_BIT,
+  pattern GL_MAP_INVALIDATE_RANGE_BIT,
+  pattern GL_MAP_READ_BIT,
+  pattern GL_MAP_STENCIL,
+  pattern GL_MAP_UNSYNCHRONIZED_BIT,
+  pattern GL_MAP_WRITE_BIT,
+  pattern GL_MATRIX_MODE,
+  pattern GL_MAX,
+  pattern GL_MAX_3D_TEXTURE_SIZE,
+  pattern GL_MAX_ARRAY_TEXTURE_LAYERS,
+  pattern GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS,
+  pattern GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE,
+  pattern GL_MAX_ATTRIB_STACK_DEPTH,
+  pattern GL_MAX_CLIENT_ATTRIB_STACK_DEPTH,
+  pattern GL_MAX_CLIP_DISTANCES,
+  pattern GL_MAX_CLIP_PLANES,
+  pattern GL_MAX_COLOR_ATTACHMENTS,
+  pattern GL_MAX_COLOR_TEXTURE_SAMPLES,
+  pattern GL_MAX_COMBINED_ATOMIC_COUNTERS,
+  pattern GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_IMAGE_UNIFORMS,
+  pattern GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS,
+  pattern GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_COMBINED_UNIFORM_BLOCKS,
+  pattern GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS,
+  pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE,
+  pattern GL_MAX_DEPTH_TEXTURE_SAMPLES,
+  pattern GL_MAX_DRAW_BUFFERS,
+  pattern GL_MAX_DUAL_SOURCE_DRAW_BUFFERS,
+  pattern GL_MAX_ELEMENTS_INDICES,
+  pattern GL_MAX_ELEMENTS_VERTICES,
+  pattern GL_MAX_EVAL_ORDER,
+  pattern GL_MAX_FRAGMENT_ATOMIC_COUNTERS,
+  pattern GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_FRAGMENT_IMAGE_UNIFORMS,
+  pattern GL_MAX_FRAGMENT_INPUT_COMPONENTS,
+  pattern GL_MAX_FRAGMENT_INTERPOLATION_OFFSET,
+  pattern GL_MAX_FRAGMENT_UNIFORM_BLOCKS,
+  pattern GL_MAX_FRAGMENT_UNIFORM_COMPONENTS,
+  pattern GL_MAX_FRAGMENT_UNIFORM_VECTORS,
+  pattern GL_MAX_GEOMETRY_ATOMIC_COUNTERS,
+  pattern GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_GEOMETRY_IMAGE_UNIFORMS,
+  pattern GL_MAX_GEOMETRY_INPUT_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_OUTPUT_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_OUTPUT_VERTICES,
+  pattern GL_MAX_GEOMETRY_SHADER_INVOCATIONS,
+  pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_UNIFORM_BLOCKS,
+  pattern GL_MAX_GEOMETRY_UNIFORM_COMPONENTS,
+  pattern GL_MAX_IMAGE_SAMPLES,
+  pattern GL_MAX_IMAGE_UNITS,
+  pattern GL_MAX_INTEGER_SAMPLES,
+  pattern GL_MAX_LIGHTS,
+  pattern GL_MAX_LIST_NESTING,
+  pattern GL_MAX_MODELVIEW_STACK_DEPTH,
+  pattern GL_MAX_NAME_STACK_DEPTH,
+  pattern GL_MAX_PATCH_VERTICES,
+  pattern GL_MAX_PIXEL_MAP_TABLE,
+  pattern GL_MAX_PROGRAM_TEXEL_OFFSET,
+  pattern GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET,
+  pattern GL_MAX_PROJECTION_STACK_DEPTH,
+  pattern GL_MAX_RECTANGLE_TEXTURE_SIZE,
+  pattern GL_MAX_RENDERBUFFER_SIZE,
+  pattern GL_MAX_SAMPLES,
+  pattern GL_MAX_SAMPLE_MASK_WORDS,
+  pattern GL_MAX_SERVER_WAIT_TIMEOUT,
+  pattern GL_MAX_SUBROUTINES,
+  pattern GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS,
+  pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS,
+  pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS,
+  pattern GL_MAX_TESS_CONTROL_INPUT_COMPONENTS,
+  pattern GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS,
+  pattern GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS,
+  pattern GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS,
+  pattern GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS,
+  pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS,
+  pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS,
+  pattern GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS,
+  pattern GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS,
+  pattern GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS,
+  pattern GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS,
+  pattern GL_MAX_TESS_GEN_LEVEL,
+  pattern GL_MAX_TESS_PATCH_COMPONENTS,
+  pattern GL_MAX_TEXTURE_BUFFER_SIZE,
+  pattern GL_MAX_TEXTURE_COORDS,
+  pattern GL_MAX_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_TEXTURE_LOD_BIAS,
+  pattern GL_MAX_TEXTURE_SIZE,
+  pattern GL_MAX_TEXTURE_STACK_DEPTH,
+  pattern GL_MAX_TEXTURE_UNITS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_BUFFERS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS,
+  pattern GL_MAX_UNIFORM_BLOCK_SIZE,
+  pattern GL_MAX_UNIFORM_BUFFER_BINDINGS,
+  pattern GL_MAX_VARYING_COMPONENTS,
+  pattern GL_MAX_VARYING_FLOATS,
+  pattern GL_MAX_VARYING_VECTORS,
+  pattern GL_MAX_VERTEX_ATOMIC_COUNTERS,
+  pattern GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_VERTEX_ATTRIBS,
+  pattern GL_MAX_VERTEX_IMAGE_UNIFORMS,
+  pattern GL_MAX_VERTEX_OUTPUT_COMPONENTS,
+  pattern GL_MAX_VERTEX_STREAMS,
+  pattern GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_VERTEX_UNIFORM_BLOCKS,
+  pattern GL_MAX_VERTEX_UNIFORM_COMPONENTS,
+  pattern GL_MAX_VERTEX_UNIFORM_VECTORS,
+  pattern GL_MAX_VIEWPORTS,
+  pattern GL_MAX_VIEWPORT_DIMS,
+  pattern GL_MEDIUM_FLOAT,
+  pattern GL_MEDIUM_INT,
+  pattern GL_MIN,
+  pattern GL_MINOR_VERSION,
+  pattern GL_MIN_FRAGMENT_INTERPOLATION_OFFSET,
+  pattern GL_MIN_MAP_BUFFER_ALIGNMENT,
+  pattern GL_MIN_PROGRAM_TEXEL_OFFSET,
+  pattern GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET,
+  pattern GL_MIN_SAMPLE_SHADING_VALUE,
+  pattern GL_MIRRORED_REPEAT,
+  pattern GL_MODELVIEW,
+  pattern GL_MODELVIEW_MATRIX,
+  pattern GL_MODELVIEW_STACK_DEPTH,
+  pattern GL_MODULATE,
+  pattern GL_MULT,
+  pattern GL_MULTISAMPLE,
+  pattern GL_MULTISAMPLE_BIT,
+  pattern GL_N3F_V3F,
+  pattern GL_NAME_STACK_DEPTH,
+  pattern GL_NAND,
+  pattern GL_NEAREST,
+  pattern GL_NEAREST_MIPMAP_LINEAR,
+  pattern GL_NEAREST_MIPMAP_NEAREST,
+  pattern GL_NEVER,
+  pattern GL_NICEST,
+  pattern GL_NONE,
+  pattern GL_NOOP,
+  pattern GL_NOR,
+  pattern GL_NORMALIZE,
+  pattern GL_NORMAL_ARRAY,
+  pattern GL_NORMAL_ARRAY_BUFFER_BINDING,
+  pattern GL_NORMAL_ARRAY_POINTER,
+  pattern GL_NORMAL_ARRAY_STRIDE,
+  pattern GL_NORMAL_ARRAY_TYPE,
+  pattern GL_NORMAL_MAP,
+  pattern GL_NOTEQUAL,
+  pattern GL_NO_ERROR,
+  pattern GL_NUM_COMPATIBLE_SUBROUTINES,
+  pattern GL_NUM_COMPRESSED_TEXTURE_FORMATS,
+  pattern GL_NUM_EXTENSIONS,
+  pattern GL_NUM_PROGRAM_BINARY_FORMATS,
+  pattern GL_NUM_SAMPLE_COUNTS,
+  pattern GL_NUM_SHADER_BINARY_FORMATS,
+  pattern GL_OBJECT_LINEAR,
+  pattern GL_OBJECT_PLANE,
+  pattern GL_OBJECT_TYPE,
+  pattern GL_ONE,
+  pattern GL_ONE_MINUS_CONSTANT_ALPHA,
+  pattern GL_ONE_MINUS_CONSTANT_COLOR,
+  pattern GL_ONE_MINUS_DST_ALPHA,
+  pattern GL_ONE_MINUS_DST_COLOR,
+  pattern GL_ONE_MINUS_SRC1_ALPHA,
+  pattern GL_ONE_MINUS_SRC1_COLOR,
+  pattern GL_ONE_MINUS_SRC_ALPHA,
+  pattern GL_ONE_MINUS_SRC_COLOR,
+  pattern GL_OPERAND0_ALPHA,
+  pattern GL_OPERAND0_RGB,
+  pattern GL_OPERAND1_ALPHA,
+  pattern GL_OPERAND1_RGB,
+  pattern GL_OPERAND2_ALPHA,
+  pattern GL_OPERAND2_RGB,
+  pattern GL_OR,
+  pattern GL_ORDER,
+  pattern GL_OR_INVERTED,
+  pattern GL_OR_REVERSE,
+  pattern GL_OUT_OF_MEMORY,
+  pattern GL_PACK_ALIGNMENT,
+  pattern GL_PACK_COMPRESSED_BLOCK_DEPTH,
+  pattern GL_PACK_COMPRESSED_BLOCK_HEIGHT,
+  pattern GL_PACK_COMPRESSED_BLOCK_SIZE,
+  pattern GL_PACK_COMPRESSED_BLOCK_WIDTH,
+  pattern GL_PACK_IMAGE_HEIGHT,
+  pattern GL_PACK_LSB_FIRST,
+  pattern GL_PACK_ROW_LENGTH,
+  pattern GL_PACK_SKIP_IMAGES,
+  pattern GL_PACK_SKIP_PIXELS,
+  pattern GL_PACK_SKIP_ROWS,
+  pattern GL_PACK_SWAP_BYTES,
+  pattern GL_PASS_THROUGH_TOKEN,
+  pattern GL_PATCHES,
+  pattern GL_PATCH_DEFAULT_INNER_LEVEL,
+  pattern GL_PATCH_DEFAULT_OUTER_LEVEL,
+  pattern GL_PATCH_VERTICES,
+  pattern GL_PERSPECTIVE_CORRECTION_HINT,
+  pattern GL_PIXEL_BUFFER_BARRIER_BIT,
+  pattern GL_PIXEL_MAP_A_TO_A,
+  pattern GL_PIXEL_MAP_A_TO_A_SIZE,
+  pattern GL_PIXEL_MAP_B_TO_B,
+  pattern GL_PIXEL_MAP_B_TO_B_SIZE,
+  pattern GL_PIXEL_MAP_G_TO_G,
+  pattern GL_PIXEL_MAP_G_TO_G_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_A,
+  pattern GL_PIXEL_MAP_I_TO_A_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_B,
+  pattern GL_PIXEL_MAP_I_TO_B_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_G,
+  pattern GL_PIXEL_MAP_I_TO_G_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_I,
+  pattern GL_PIXEL_MAP_I_TO_I_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_R,
+  pattern GL_PIXEL_MAP_I_TO_R_SIZE,
+  pattern GL_PIXEL_MAP_R_TO_R,
+  pattern GL_PIXEL_MAP_R_TO_R_SIZE,
+  pattern GL_PIXEL_MAP_S_TO_S,
+  pattern GL_PIXEL_MAP_S_TO_S_SIZE,
+  pattern GL_PIXEL_MODE_BIT,
+  pattern GL_PIXEL_PACK_BUFFER,
+  pattern GL_PIXEL_PACK_BUFFER_BINDING,
+  pattern GL_PIXEL_UNPACK_BUFFER,
+  pattern GL_PIXEL_UNPACK_BUFFER_BINDING,
+  pattern GL_POINT,
+  pattern GL_POINTS,
+  pattern GL_POINT_BIT,
+  pattern GL_POINT_DISTANCE_ATTENUATION,
+  pattern GL_POINT_FADE_THRESHOLD_SIZE,
+  pattern GL_POINT_SIZE,
+  pattern GL_POINT_SIZE_GRANULARITY,
+  pattern GL_POINT_SIZE_MAX,
+  pattern GL_POINT_SIZE_MIN,
+  pattern GL_POINT_SIZE_RANGE,
+  pattern GL_POINT_SMOOTH,
+  pattern GL_POINT_SMOOTH_HINT,
+  pattern GL_POINT_SPRITE,
+  pattern GL_POINT_SPRITE_COORD_ORIGIN,
+  pattern GL_POINT_TOKEN,
+  pattern GL_POLYGON,
+  pattern GL_POLYGON_BIT,
+  pattern GL_POLYGON_MODE,
+  pattern GL_POLYGON_OFFSET_FACTOR,
+  pattern GL_POLYGON_OFFSET_FILL,
+  pattern GL_POLYGON_OFFSET_LINE,
+  pattern GL_POLYGON_OFFSET_POINT,
+  pattern GL_POLYGON_OFFSET_UNITS,
+  pattern GL_POLYGON_SMOOTH,
+  pattern GL_POLYGON_SMOOTH_HINT,
+  pattern GL_POLYGON_STIPPLE,
+  pattern GL_POLYGON_STIPPLE_BIT,
+  pattern GL_POLYGON_TOKEN,
+  pattern GL_POSITION,
+  pattern GL_PREVIOUS,
+  pattern GL_PRIMARY_COLOR,
+  pattern GL_PRIMITIVES_GENERATED,
+  pattern GL_PRIMITIVE_RESTART,
+  pattern GL_PRIMITIVE_RESTART_INDEX,
+  pattern GL_PROGRAM_BINARY_FORMATS,
+  pattern GL_PROGRAM_BINARY_LENGTH,
+  pattern GL_PROGRAM_BINARY_RETRIEVABLE_HINT,
+  pattern GL_PROGRAM_PIPELINE_BINDING,
+  pattern GL_PROGRAM_POINT_SIZE,
+  pattern GL_PROGRAM_SEPARABLE,
+  pattern GL_PROJECTION,
+  pattern GL_PROJECTION_MATRIX,
+  pattern GL_PROJECTION_STACK_DEPTH,
+  pattern GL_PROVOKING_VERTEX,
+  pattern GL_PROXY_TEXTURE_1D,
+  pattern GL_PROXY_TEXTURE_1D_ARRAY,
+  pattern GL_PROXY_TEXTURE_2D,
+  pattern GL_PROXY_TEXTURE_2D_ARRAY,
+  pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE,
+  pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_PROXY_TEXTURE_3D,
+  pattern GL_PROXY_TEXTURE_CUBE_MAP,
+  pattern GL_PROXY_TEXTURE_CUBE_MAP_ARRAY,
+  pattern GL_PROXY_TEXTURE_RECTANGLE,
+  pattern GL_Q,
+  pattern GL_QUADRATIC_ATTENUATION,
+  pattern GL_QUADS,
+  pattern GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION,
+  pattern GL_QUAD_STRIP,
+  pattern GL_QUERY_BY_REGION_NO_WAIT,
+  pattern GL_QUERY_BY_REGION_WAIT,
+  pattern GL_QUERY_COUNTER_BITS,
+  pattern GL_QUERY_NO_WAIT,
+  pattern GL_QUERY_RESULT,
+  pattern GL_QUERY_RESULT_AVAILABLE,
+  pattern GL_QUERY_WAIT,
+  pattern GL_R,
+  pattern GL_R11F_G11F_B10F,
+  pattern GL_R16,
+  pattern GL_R16F,
+  pattern GL_R16I,
+  pattern GL_R16UI,
+  pattern GL_R16_SNORM,
+  pattern GL_R32F,
+  pattern GL_R32I,
+  pattern GL_R32UI,
+  pattern GL_R3_G3_B2,
+  pattern GL_R8,
+  pattern GL_R8I,
+  pattern GL_R8UI,
+  pattern GL_R8_SNORM,
+  pattern GL_RASTERIZER_DISCARD,
+  pattern GL_READ_BUFFER,
+  pattern GL_READ_FRAMEBUFFER,
+  pattern GL_READ_FRAMEBUFFER_BINDING,
+  pattern GL_READ_ONLY,
+  pattern GL_READ_WRITE,
+  pattern GL_RED,
+  pattern GL_RED_BIAS,
+  pattern GL_RED_BITS,
+  pattern GL_RED_INTEGER,
+  pattern GL_RED_SCALE,
+  pattern GL_REFLECTION_MAP,
+  pattern GL_RENDER,
+  pattern GL_RENDERBUFFER,
+  pattern GL_RENDERBUFFER_ALPHA_SIZE,
+  pattern GL_RENDERBUFFER_BINDING,
+  pattern GL_RENDERBUFFER_BLUE_SIZE,
+  pattern GL_RENDERBUFFER_DEPTH_SIZE,
+  pattern GL_RENDERBUFFER_GREEN_SIZE,
+  pattern GL_RENDERBUFFER_HEIGHT,
+  pattern GL_RENDERBUFFER_INTERNAL_FORMAT,
+  pattern GL_RENDERBUFFER_RED_SIZE,
+  pattern GL_RENDERBUFFER_SAMPLES,
+  pattern GL_RENDERBUFFER_STENCIL_SIZE,
+  pattern GL_RENDERBUFFER_WIDTH,
+  pattern GL_RENDERER,
+  pattern GL_RENDER_MODE,
+  pattern GL_REPEAT,
+  pattern GL_REPLACE,
+  pattern GL_RESCALE_NORMAL,
+  pattern GL_RETURN,
+  pattern GL_RG,
+  pattern GL_RG16,
+  pattern GL_RG16F,
+  pattern GL_RG16I,
+  pattern GL_RG16UI,
+  pattern GL_RG16_SNORM,
+  pattern GL_RG32F,
+  pattern GL_RG32I,
+  pattern GL_RG32UI,
+  pattern GL_RG8,
+  pattern GL_RG8I,
+  pattern GL_RG8UI,
+  pattern GL_RG8_SNORM,
+  pattern GL_RGB,
+  pattern GL_RGB10,
+  pattern GL_RGB10_A2,
+  pattern GL_RGB10_A2UI,
+  pattern GL_RGB12,
+  pattern GL_RGB16,
+  pattern GL_RGB16F,
+  pattern GL_RGB16I,
+  pattern GL_RGB16UI,
+  pattern GL_RGB16_SNORM,
+  pattern GL_RGB32F,
+  pattern GL_RGB32I,
+  pattern GL_RGB32UI,
+  pattern GL_RGB4,
+  pattern GL_RGB5,
+  pattern GL_RGB565,
+  pattern GL_RGB5_A1,
+  pattern GL_RGB8,
+  pattern GL_RGB8I,
+  pattern GL_RGB8UI,
+  pattern GL_RGB8_SNORM,
+  pattern GL_RGB9_E5,
+  pattern GL_RGBA,
+  pattern GL_RGBA12,
+  pattern GL_RGBA16,
+  pattern GL_RGBA16F,
+  pattern GL_RGBA16I,
+  pattern GL_RGBA16UI,
+  pattern GL_RGBA16_SNORM,
+  pattern GL_RGBA2,
+  pattern GL_RGBA32F,
+  pattern GL_RGBA32I,
+  pattern GL_RGBA32UI,
+  pattern GL_RGBA4,
+  pattern GL_RGBA8,
+  pattern GL_RGBA8I,
+  pattern GL_RGBA8UI,
+  pattern GL_RGBA8_SNORM,
+  pattern GL_RGBA_INTEGER,
+  pattern GL_RGBA_MODE,
+  pattern GL_RGB_INTEGER,
+  pattern GL_RGB_SCALE,
+  pattern GL_RG_INTEGER,
+  pattern GL_RIGHT,
+  pattern GL_S,
+  pattern GL_SAMPLER_1D,
+  pattern GL_SAMPLER_1D_ARRAY,
+  pattern GL_SAMPLER_1D_ARRAY_SHADOW,
+  pattern GL_SAMPLER_1D_SHADOW,
+  pattern GL_SAMPLER_2D,
+  pattern GL_SAMPLER_2D_ARRAY,
+  pattern GL_SAMPLER_2D_ARRAY_SHADOW,
+  pattern GL_SAMPLER_2D_MULTISAMPLE,
+  pattern GL_SAMPLER_2D_MULTISAMPLE_ARRAY,
+  pattern GL_SAMPLER_2D_RECT,
+  pattern GL_SAMPLER_2D_RECT_SHADOW,
+  pattern GL_SAMPLER_2D_SHADOW,
+  pattern GL_SAMPLER_3D,
+  pattern GL_SAMPLER_BINDING,
+  pattern GL_SAMPLER_BUFFER,
+  pattern GL_SAMPLER_CUBE,
+  pattern GL_SAMPLER_CUBE_MAP_ARRAY,
+  pattern GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW,
+  pattern GL_SAMPLER_CUBE_SHADOW,
+  pattern GL_SAMPLES,
+  pattern GL_SAMPLES_PASSED,
+  pattern GL_SAMPLE_ALPHA_TO_COVERAGE,
+  pattern GL_SAMPLE_ALPHA_TO_ONE,
+  pattern GL_SAMPLE_BUFFERS,
+  pattern GL_SAMPLE_COVERAGE,
+  pattern GL_SAMPLE_COVERAGE_INVERT,
+  pattern GL_SAMPLE_COVERAGE_VALUE,
+  pattern GL_SAMPLE_MASK,
+  pattern GL_SAMPLE_MASK_VALUE,
+  pattern GL_SAMPLE_POSITION,
+  pattern GL_SAMPLE_SHADING,
+  pattern GL_SCISSOR_BIT,
+  pattern GL_SCISSOR_BOX,
+  pattern GL_SCISSOR_TEST,
+  pattern GL_SECONDARY_COLOR_ARRAY,
+  pattern GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING,
+  pattern GL_SECONDARY_COLOR_ARRAY_POINTER,
+  pattern GL_SECONDARY_COLOR_ARRAY_SIZE,
+  pattern GL_SECONDARY_COLOR_ARRAY_STRIDE,
+  pattern GL_SECONDARY_COLOR_ARRAY_TYPE,
+  pattern GL_SELECT,
+  pattern GL_SELECTION_BUFFER_POINTER,
+  pattern GL_SELECTION_BUFFER_SIZE,
+  pattern GL_SEPARATE_ATTRIBS,
+  pattern GL_SEPARATE_SPECULAR_COLOR,
+  pattern GL_SET,
+  pattern GL_SHADER_BINARY_FORMATS,
+  pattern GL_SHADER_COMPILER,
+  pattern GL_SHADER_IMAGE_ACCESS_BARRIER_BIT,
+  pattern GL_SHADER_SOURCE_LENGTH,
+  pattern GL_SHADER_TYPE,
+  pattern GL_SHADE_MODEL,
+  pattern GL_SHADING_LANGUAGE_VERSION,
+  pattern GL_SHININESS,
+  pattern GL_SHORT,
+  pattern GL_SIGNALED,
+  pattern GL_SIGNED_NORMALIZED,
+  pattern GL_SINGLE_COLOR,
+  pattern GL_SLUMINANCE,
+  pattern GL_SLUMINANCE8,
+  pattern GL_SLUMINANCE8_ALPHA8,
+  pattern GL_SLUMINANCE_ALPHA,
+  pattern GL_SMOOTH,
+  pattern GL_SMOOTH_LINE_WIDTH_GRANULARITY,
+  pattern GL_SMOOTH_LINE_WIDTH_RANGE,
+  pattern GL_SMOOTH_POINT_SIZE_GRANULARITY,
+  pattern GL_SMOOTH_POINT_SIZE_RANGE,
+  pattern GL_SOURCE0_ALPHA,
+  pattern GL_SOURCE0_RGB,
+  pattern GL_SOURCE1_ALPHA,
+  pattern GL_SOURCE1_RGB,
+  pattern GL_SOURCE2_ALPHA,
+  pattern GL_SOURCE2_RGB,
+  pattern GL_SPECULAR,
+  pattern GL_SPHERE_MAP,
+  pattern GL_SPOT_CUTOFF,
+  pattern GL_SPOT_DIRECTION,
+  pattern GL_SPOT_EXPONENT,
+  pattern GL_SRC0_ALPHA,
+  pattern GL_SRC0_RGB,
+  pattern GL_SRC1_ALPHA,
+  pattern GL_SRC1_COLOR,
+  pattern GL_SRC1_RGB,
+  pattern GL_SRC2_ALPHA,
+  pattern GL_SRC2_RGB,
+  pattern GL_SRC_ALPHA,
+  pattern GL_SRC_ALPHA_SATURATE,
+  pattern GL_SRC_COLOR,
+  pattern GL_SRGB,
+  pattern GL_SRGB8,
+  pattern GL_SRGB8_ALPHA8,
+  pattern GL_SRGB_ALPHA,
+  pattern GL_STACK_OVERFLOW,
+  pattern GL_STACK_UNDERFLOW,
+  pattern GL_STATIC_COPY,
+  pattern GL_STATIC_DRAW,
+  pattern GL_STATIC_READ,
+  pattern GL_STENCIL,
+  pattern GL_STENCIL_ATTACHMENT,
+  pattern GL_STENCIL_BACK_FAIL,
+  pattern GL_STENCIL_BACK_FUNC,
+  pattern GL_STENCIL_BACK_PASS_DEPTH_FAIL,
+  pattern GL_STENCIL_BACK_PASS_DEPTH_PASS,
+  pattern GL_STENCIL_BACK_REF,
+  pattern GL_STENCIL_BACK_VALUE_MASK,
+  pattern GL_STENCIL_BACK_WRITEMASK,
+  pattern GL_STENCIL_BITS,
+  pattern GL_STENCIL_BUFFER_BIT,
+  pattern GL_STENCIL_CLEAR_VALUE,
+  pattern GL_STENCIL_FAIL,
+  pattern GL_STENCIL_FUNC,
+  pattern GL_STENCIL_INDEX,
+  pattern GL_STENCIL_INDEX1,
+  pattern GL_STENCIL_INDEX16,
+  pattern GL_STENCIL_INDEX4,
+  pattern GL_STENCIL_INDEX8,
+  pattern GL_STENCIL_PASS_DEPTH_FAIL,
+  pattern GL_STENCIL_PASS_DEPTH_PASS,
+  pattern GL_STENCIL_REF,
+  pattern GL_STENCIL_TEST,
+  pattern GL_STENCIL_VALUE_MASK,
+  pattern GL_STENCIL_WRITEMASK,
+  pattern GL_STEREO,
+  pattern GL_STREAM_COPY,
+  pattern GL_STREAM_DRAW,
+  pattern GL_STREAM_READ,
+  pattern GL_SUBPIXEL_BITS,
+  pattern GL_SUBTRACT,
+  pattern GL_SYNC_CONDITION,
+  pattern GL_SYNC_FENCE,
+  pattern GL_SYNC_FLAGS,
+  pattern GL_SYNC_FLUSH_COMMANDS_BIT,
+  pattern GL_SYNC_GPU_COMMANDS_COMPLETE,
+  pattern GL_SYNC_STATUS,
+  pattern GL_T,
+  pattern GL_T2F_C3F_V3F,
+  pattern GL_T2F_C4F_N3F_V3F,
+  pattern GL_T2F_C4UB_V3F,
+  pattern GL_T2F_N3F_V3F,
+  pattern GL_T2F_V3F,
+  pattern GL_T4F_C4F_N3F_V4F,
+  pattern GL_T4F_V4F,
+  pattern GL_TESS_CONTROL_OUTPUT_VERTICES,
+  pattern GL_TESS_CONTROL_SHADER,
+  pattern GL_TESS_CONTROL_SHADER_BIT,
+  pattern GL_TESS_EVALUATION_SHADER,
+  pattern GL_TESS_EVALUATION_SHADER_BIT,
+  pattern GL_TESS_GEN_MODE,
+  pattern GL_TESS_GEN_POINT_MODE,
+  pattern GL_TESS_GEN_SPACING,
+  pattern GL_TESS_GEN_VERTEX_ORDER,
+  pattern GL_TEXTURE,
+  pattern GL_TEXTURE0,
+  pattern GL_TEXTURE1,
+  pattern GL_TEXTURE10,
+  pattern GL_TEXTURE11,
+  pattern GL_TEXTURE12,
+  pattern GL_TEXTURE13,
+  pattern GL_TEXTURE14,
+  pattern GL_TEXTURE15,
+  pattern GL_TEXTURE16,
+  pattern GL_TEXTURE17,
+  pattern GL_TEXTURE18,
+  pattern GL_TEXTURE19,
+  pattern GL_TEXTURE2,
+  pattern GL_TEXTURE20,
+  pattern GL_TEXTURE21,
+  pattern GL_TEXTURE22,
+  pattern GL_TEXTURE23,
+  pattern GL_TEXTURE24,
+  pattern GL_TEXTURE25,
+  pattern GL_TEXTURE26,
+  pattern GL_TEXTURE27,
+  pattern GL_TEXTURE28,
+  pattern GL_TEXTURE29,
+  pattern GL_TEXTURE3,
+  pattern GL_TEXTURE30,
+  pattern GL_TEXTURE31,
+  pattern GL_TEXTURE4,
+  pattern GL_TEXTURE5,
+  pattern GL_TEXTURE6,
+  pattern GL_TEXTURE7,
+  pattern GL_TEXTURE8,
+  pattern GL_TEXTURE9,
+  pattern GL_TEXTURE_1D,
+  pattern GL_TEXTURE_1D_ARRAY,
+  pattern GL_TEXTURE_2D,
+  pattern GL_TEXTURE_2D_ARRAY,
+  pattern GL_TEXTURE_2D_MULTISAMPLE,
+  pattern GL_TEXTURE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_TEXTURE_3D,
+  pattern GL_TEXTURE_ALPHA_SIZE,
+  pattern GL_TEXTURE_ALPHA_TYPE,
+  pattern GL_TEXTURE_BASE_LEVEL,
+  pattern GL_TEXTURE_BINDING_1D,
+  pattern GL_TEXTURE_BINDING_1D_ARRAY,
+  pattern GL_TEXTURE_BINDING_2D,
+  pattern GL_TEXTURE_BINDING_2D_ARRAY,
+  pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE,
+  pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY,
+  pattern GL_TEXTURE_BINDING_3D,
+  pattern GL_TEXTURE_BINDING_BUFFER,
+  pattern GL_TEXTURE_BINDING_CUBE_MAP,
+  pattern GL_TEXTURE_BINDING_CUBE_MAP_ARRAY,
+  pattern GL_TEXTURE_BINDING_RECTANGLE,
+  pattern GL_TEXTURE_BIT,
+  pattern GL_TEXTURE_BLUE_SIZE,
+  pattern GL_TEXTURE_BLUE_TYPE,
+  pattern GL_TEXTURE_BORDER,
+  pattern GL_TEXTURE_BORDER_COLOR,
+  pattern GL_TEXTURE_BUFFER,
+  pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING,
+  pattern GL_TEXTURE_COMPARE_FUNC,
+  pattern GL_TEXTURE_COMPARE_MODE,
+  pattern GL_TEXTURE_COMPONENTS,
+  pattern GL_TEXTURE_COMPRESSED,
+  pattern GL_TEXTURE_COMPRESSED_IMAGE_SIZE,
+  pattern GL_TEXTURE_COMPRESSION_HINT,
+  pattern GL_TEXTURE_COORD_ARRAY,
+  pattern GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING,
+  pattern GL_TEXTURE_COORD_ARRAY_POINTER,
+  pattern GL_TEXTURE_COORD_ARRAY_SIZE,
+  pattern GL_TEXTURE_COORD_ARRAY_STRIDE,
+  pattern GL_TEXTURE_COORD_ARRAY_TYPE,
+  pattern GL_TEXTURE_CUBE_MAP,
+  pattern GL_TEXTURE_CUBE_MAP_ARRAY,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z,
+  pattern GL_TEXTURE_CUBE_MAP_SEAMLESS,
+  pattern GL_TEXTURE_DEPTH,
+  pattern GL_TEXTURE_DEPTH_SIZE,
+  pattern GL_TEXTURE_DEPTH_TYPE,
+  pattern GL_TEXTURE_ENV,
+  pattern GL_TEXTURE_ENV_COLOR,
+  pattern GL_TEXTURE_ENV_MODE,
+  pattern GL_TEXTURE_FETCH_BARRIER_BIT,
+  pattern GL_TEXTURE_FILTER_CONTROL,
+  pattern GL_TEXTURE_FIXED_SAMPLE_LOCATIONS,
+  pattern GL_TEXTURE_GEN_MODE,
+  pattern GL_TEXTURE_GEN_Q,
+  pattern GL_TEXTURE_GEN_R,
+  pattern GL_TEXTURE_GEN_S,
+  pattern GL_TEXTURE_GEN_T,
+  pattern GL_TEXTURE_GREEN_SIZE,
+  pattern GL_TEXTURE_GREEN_TYPE,
+  pattern GL_TEXTURE_HEIGHT,
+  pattern GL_TEXTURE_IMMUTABLE_FORMAT,
+  pattern GL_TEXTURE_INTENSITY_SIZE,
+  pattern GL_TEXTURE_INTENSITY_TYPE,
+  pattern GL_TEXTURE_INTERNAL_FORMAT,
+  pattern GL_TEXTURE_LOD_BIAS,
+  pattern GL_TEXTURE_LUMINANCE_SIZE,
+  pattern GL_TEXTURE_LUMINANCE_TYPE,
+  pattern GL_TEXTURE_MAG_FILTER,
+  pattern GL_TEXTURE_MATRIX,
+  pattern GL_TEXTURE_MAX_LEVEL,
+  pattern GL_TEXTURE_MAX_LOD,
+  pattern GL_TEXTURE_MIN_FILTER,
+  pattern GL_TEXTURE_MIN_LOD,
+  pattern GL_TEXTURE_PRIORITY,
+  pattern GL_TEXTURE_RECTANGLE,
+  pattern GL_TEXTURE_RED_SIZE,
+  pattern GL_TEXTURE_RED_TYPE,
+  pattern GL_TEXTURE_RESIDENT,
+  pattern GL_TEXTURE_SAMPLES,
+  pattern GL_TEXTURE_SHARED_SIZE,
+  pattern GL_TEXTURE_STACK_DEPTH,
+  pattern GL_TEXTURE_STENCIL_SIZE,
+  pattern GL_TEXTURE_SWIZZLE_A,
+  pattern GL_TEXTURE_SWIZZLE_B,
+  pattern GL_TEXTURE_SWIZZLE_G,
+  pattern GL_TEXTURE_SWIZZLE_R,
+  pattern GL_TEXTURE_SWIZZLE_RGBA,
+  pattern GL_TEXTURE_UPDATE_BARRIER_BIT,
+  pattern GL_TEXTURE_WIDTH,
+  pattern GL_TEXTURE_WRAP_R,
+  pattern GL_TEXTURE_WRAP_S,
+  pattern GL_TEXTURE_WRAP_T,
+  pattern GL_TIMEOUT_EXPIRED,
+  pattern GL_TIMEOUT_IGNORED,
+  pattern GL_TIMESTAMP,
+  pattern GL_TIME_ELAPSED,
+  pattern GL_TRANSFORM_BIT,
+  pattern GL_TRANSFORM_FEEDBACK,
+  pattern GL_TRANSFORM_FEEDBACK_ACTIVE,
+  pattern GL_TRANSFORM_FEEDBACK_BARRIER_BIT,
+  pattern GL_TRANSFORM_FEEDBACK_BINDING,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_BINDING,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_MODE,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_SIZE,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_START,
+  pattern GL_TRANSFORM_FEEDBACK_PAUSED,
+  pattern GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN,
+  pattern GL_TRANSFORM_FEEDBACK_VARYINGS,
+  pattern GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH,
+  pattern GL_TRANSPOSE_COLOR_MATRIX,
+  pattern GL_TRANSPOSE_MODELVIEW_MATRIX,
+  pattern GL_TRANSPOSE_PROJECTION_MATRIX,
+  pattern GL_TRANSPOSE_TEXTURE_MATRIX,
+  pattern GL_TRIANGLES,
+  pattern GL_TRIANGLES_ADJACENCY,
+  pattern GL_TRIANGLE_FAN,
+  pattern GL_TRIANGLE_STRIP,
+  pattern GL_TRIANGLE_STRIP_ADJACENCY,
+  pattern GL_TRUE,
+  pattern GL_UNDEFINED_VERTEX,
+  pattern GL_UNIFORM_ARRAY_STRIDE,
+  pattern GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX,
+  pattern GL_UNIFORM_BARRIER_BIT,
+  pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS,
+  pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES,
+  pattern GL_UNIFORM_BLOCK_BINDING,
+  pattern GL_UNIFORM_BLOCK_DATA_SIZE,
+  pattern GL_UNIFORM_BLOCK_INDEX,
+  pattern GL_UNIFORM_BLOCK_NAME_LENGTH,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER,
+  pattern GL_UNIFORM_BUFFER,
+  pattern GL_UNIFORM_BUFFER_BINDING,
+  pattern GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT,
+  pattern GL_UNIFORM_BUFFER_SIZE,
+  pattern GL_UNIFORM_BUFFER_START,
+  pattern GL_UNIFORM_IS_ROW_MAJOR,
+  pattern GL_UNIFORM_MATRIX_STRIDE,
+  pattern GL_UNIFORM_NAME_LENGTH,
+  pattern GL_UNIFORM_OFFSET,
+  pattern GL_UNIFORM_SIZE,
+  pattern GL_UNIFORM_TYPE,
+  pattern GL_UNPACK_ALIGNMENT,
+  pattern GL_UNPACK_COMPRESSED_BLOCK_DEPTH,
+  pattern GL_UNPACK_COMPRESSED_BLOCK_HEIGHT,
+  pattern GL_UNPACK_COMPRESSED_BLOCK_SIZE,
+  pattern GL_UNPACK_COMPRESSED_BLOCK_WIDTH,
+  pattern GL_UNPACK_IMAGE_HEIGHT,
+  pattern GL_UNPACK_LSB_FIRST,
+  pattern GL_UNPACK_ROW_LENGTH,
+  pattern GL_UNPACK_SKIP_IMAGES,
+  pattern GL_UNPACK_SKIP_PIXELS,
+  pattern GL_UNPACK_SKIP_ROWS,
+  pattern GL_UNPACK_SWAP_BYTES,
+  pattern GL_UNSIGNALED,
+  pattern GL_UNSIGNED_BYTE,
+  pattern GL_UNSIGNED_BYTE_2_3_3_REV,
+  pattern GL_UNSIGNED_BYTE_3_3_2,
+  pattern GL_UNSIGNED_INT,
+  pattern GL_UNSIGNED_INT_10F_11F_11F_REV,
+  pattern GL_UNSIGNED_INT_10_10_10_2,
+  pattern GL_UNSIGNED_INT_24_8,
+  pattern GL_UNSIGNED_INT_2_10_10_10_REV,
+  pattern GL_UNSIGNED_INT_5_9_9_9_REV,
+  pattern GL_UNSIGNED_INT_8_8_8_8,
+  pattern GL_UNSIGNED_INT_8_8_8_8_REV,
+  pattern GL_UNSIGNED_INT_ATOMIC_COUNTER,
+  pattern GL_UNSIGNED_INT_IMAGE_1D,
+  pattern GL_UNSIGNED_INT_IMAGE_1D_ARRAY,
+  pattern GL_UNSIGNED_INT_IMAGE_2D,
+  pattern GL_UNSIGNED_INT_IMAGE_2D_ARRAY,
+  pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE,
+  pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_UNSIGNED_INT_IMAGE_2D_RECT,
+  pattern GL_UNSIGNED_INT_IMAGE_3D,
+  pattern GL_UNSIGNED_INT_IMAGE_BUFFER,
+  pattern GL_UNSIGNED_INT_IMAGE_CUBE,
+  pattern GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_1D,
+  pattern GL_UNSIGNED_INT_SAMPLER_1D_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_RECT,
+  pattern GL_UNSIGNED_INT_SAMPLER_3D,
+  pattern GL_UNSIGNED_INT_SAMPLER_BUFFER,
+  pattern GL_UNSIGNED_INT_SAMPLER_CUBE,
+  pattern GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY,
+  pattern GL_UNSIGNED_INT_VEC2,
+  pattern GL_UNSIGNED_INT_VEC3,
+  pattern GL_UNSIGNED_INT_VEC4,
+  pattern GL_UNSIGNED_NORMALIZED,
+  pattern GL_UNSIGNED_SHORT,
+  pattern GL_UNSIGNED_SHORT_1_5_5_5_REV,
+  pattern GL_UNSIGNED_SHORT_4_4_4_4,
+  pattern GL_UNSIGNED_SHORT_4_4_4_4_REV,
+  pattern GL_UNSIGNED_SHORT_5_5_5_1,
+  pattern GL_UNSIGNED_SHORT_5_6_5,
+  pattern GL_UNSIGNED_SHORT_5_6_5_REV,
+  pattern GL_UPPER_LEFT,
+  pattern GL_V2F,
+  pattern GL_V3F,
+  pattern GL_VALIDATE_STATUS,
+  pattern GL_VENDOR,
+  pattern GL_VERSION,
+  pattern GL_VERTEX_ARRAY,
+  pattern GL_VERTEX_ARRAY_BINDING,
+  pattern GL_VERTEX_ARRAY_BUFFER_BINDING,
+  pattern GL_VERTEX_ARRAY_POINTER,
+  pattern GL_VERTEX_ARRAY_SIZE,
+  pattern GL_VERTEX_ARRAY_STRIDE,
+  pattern GL_VERTEX_ARRAY_TYPE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT,
+  pattern GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING,
+  pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR,
+  pattern GL_VERTEX_ATTRIB_ARRAY_ENABLED,
+  pattern GL_VERTEX_ATTRIB_ARRAY_INTEGER,
+  pattern GL_VERTEX_ATTRIB_ARRAY_NORMALIZED,
+  pattern GL_VERTEX_ATTRIB_ARRAY_POINTER,
+  pattern GL_VERTEX_ATTRIB_ARRAY_SIZE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_STRIDE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_TYPE,
+  pattern GL_VERTEX_PROGRAM_POINT_SIZE,
+  pattern GL_VERTEX_PROGRAM_TWO_SIDE,
+  pattern GL_VERTEX_SHADER,
+  pattern GL_VERTEX_SHADER_BIT,
+  pattern GL_VIEWPORT,
+  pattern GL_VIEWPORT_BIT,
+  pattern GL_VIEWPORT_BOUNDS_RANGE,
+  pattern GL_VIEWPORT_INDEX_PROVOKING_VERTEX,
+  pattern GL_VIEWPORT_SUBPIXEL_BITS,
+  pattern GL_WAIT_FAILED,
+  pattern GL_WEIGHT_ARRAY_BUFFER_BINDING,
+  pattern GL_WRITE_ONLY,
+  pattern GL_XOR,
+  pattern GL_ZERO,
+  pattern GL_ZOOM_X,
+  pattern GL_ZOOM_Y,
+  -- * Functions
+  glAccum,
+  glActiveShaderProgram,
+  glActiveTexture,
+  glAlphaFunc,
+  glAreTexturesResident,
+  glArrayElement,
+  glAttachShader,
+  glBegin,
+  glBeginConditionalRender,
+  glBeginQuery,
+  glBeginQueryIndexed,
+  glBeginTransformFeedback,
+  glBindAttribLocation,
+  glBindBuffer,
+  glBindBufferBase,
+  glBindBufferRange,
+  glBindFragDataLocation,
+  glBindFragDataLocationIndexed,
+  glBindFramebuffer,
+  glBindImageTexture,
+  glBindProgramPipeline,
+  glBindRenderbuffer,
+  glBindSampler,
+  glBindTexture,
+  glBindTransformFeedback,
+  glBindVertexArray,
+  glBitmap,
+  glBlendColor,
+  glBlendEquation,
+  glBlendEquationSeparate,
+  glBlendEquationSeparatei,
+  glBlendEquationi,
+  glBlendFunc,
+  glBlendFuncSeparate,
+  glBlendFuncSeparatei,
+  glBlendFunci,
+  glBlitFramebuffer,
+  glBufferData,
+  glBufferSubData,
+  glCallList,
+  glCallLists,
+  glCheckFramebufferStatus,
+  glClampColor,
+  glClear,
+  glClearAccum,
+  glClearBufferfi,
+  glClearBufferfv,
+  glClearBufferiv,
+  glClearBufferuiv,
+  glClearColor,
+  glClearDepth,
+  glClearDepthf,
+  glClearIndex,
+  glClearStencil,
+  glClientActiveTexture,
+  glClientWaitSync,
+  glClipPlane,
+  glColor3b,
+  glColor3bv,
+  glColor3d,
+  glColor3dv,
+  glColor3f,
+  glColor3fv,
+  glColor3i,
+  glColor3iv,
+  glColor3s,
+  glColor3sv,
+  glColor3ub,
+  glColor3ubv,
+  glColor3ui,
+  glColor3uiv,
+  glColor3us,
+  glColor3usv,
+  glColor4b,
+  glColor4bv,
+  glColor4d,
+  glColor4dv,
+  glColor4f,
+  glColor4fv,
+  glColor4i,
+  glColor4iv,
+  glColor4s,
+  glColor4sv,
+  glColor4ub,
+  glColor4ubv,
+  glColor4ui,
+  glColor4uiv,
+  glColor4us,
+  glColor4usv,
+  glColorMask,
+  glColorMaski,
+  glColorMaterial,
+  glColorP3ui,
+  glColorP3uiv,
+  glColorP4ui,
+  glColorP4uiv,
+  glColorPointer,
+  glCompileShader,
+  glCompressedTexImage1D,
+  glCompressedTexImage2D,
+  glCompressedTexImage3D,
+  glCompressedTexSubImage1D,
+  glCompressedTexSubImage2D,
+  glCompressedTexSubImage3D,
+  glCopyBufferSubData,
+  glCopyPixels,
+  glCopyTexImage1D,
+  glCopyTexImage2D,
+  glCopyTexSubImage1D,
+  glCopyTexSubImage2D,
+  glCopyTexSubImage3D,
+  glCreateProgram,
+  glCreateShader,
+  glCreateShaderProgramv,
+  glCullFace,
+  glDeleteBuffers,
+  glDeleteFramebuffers,
+  glDeleteLists,
+  glDeleteProgram,
+  glDeleteProgramPipelines,
+  glDeleteQueries,
+  glDeleteRenderbuffers,
+  glDeleteSamplers,
+  glDeleteShader,
+  glDeleteSync,
+  glDeleteTextures,
+  glDeleteTransformFeedbacks,
+  glDeleteVertexArrays,
+  glDepthFunc,
+  glDepthMask,
+  glDepthRange,
+  glDepthRangeArrayv,
+  glDepthRangeIndexed,
+  glDepthRangef,
+  glDetachShader,
+  glDisable,
+  glDisableClientState,
+  glDisableVertexAttribArray,
+  glDisablei,
+  glDrawArrays,
+  glDrawArraysIndirect,
+  glDrawArraysInstanced,
+  glDrawArraysInstancedBaseInstance,
+  glDrawBuffer,
+  glDrawBuffers,
+  glDrawElements,
+  glDrawElementsBaseVertex,
+  glDrawElementsIndirect,
+  glDrawElementsInstanced,
+  glDrawElementsInstancedBaseInstance,
+  glDrawElementsInstancedBaseVertex,
+  glDrawElementsInstancedBaseVertexBaseInstance,
+  glDrawPixels,
+  glDrawRangeElements,
+  glDrawRangeElementsBaseVertex,
+  glDrawTransformFeedback,
+  glDrawTransformFeedbackInstanced,
+  glDrawTransformFeedbackStream,
+  glDrawTransformFeedbackStreamInstanced,
+  glEdgeFlag,
+  glEdgeFlagPointer,
+  glEdgeFlagv,
+  glEnable,
+  glEnableClientState,
+  glEnableVertexAttribArray,
+  glEnablei,
+  glEnd,
+  glEndConditionalRender,
+  glEndList,
+  glEndQuery,
+  glEndQueryIndexed,
+  glEndTransformFeedback,
+  glEvalCoord1d,
+  glEvalCoord1dv,
+  glEvalCoord1f,
+  glEvalCoord1fv,
+  glEvalCoord2d,
+  glEvalCoord2dv,
+  glEvalCoord2f,
+  glEvalCoord2fv,
+  glEvalMesh1,
+  glEvalMesh2,
+  glEvalPoint1,
+  glEvalPoint2,
+  glFeedbackBuffer,
+  glFenceSync,
+  glFinish,
+  glFlush,
+  glFlushMappedBufferRange,
+  glFogCoordPointer,
+  glFogCoordd,
+  glFogCoorddv,
+  glFogCoordf,
+  glFogCoordfv,
+  glFogf,
+  glFogfv,
+  glFogi,
+  glFogiv,
+  glFramebufferRenderbuffer,
+  glFramebufferTexture,
+  glFramebufferTexture1D,
+  glFramebufferTexture2D,
+  glFramebufferTexture3D,
+  glFramebufferTextureLayer,
+  glFrontFace,
+  glFrustum,
+  glGenBuffers,
+  glGenFramebuffers,
+  glGenLists,
+  glGenProgramPipelines,
+  glGenQueries,
+  glGenRenderbuffers,
+  glGenSamplers,
+  glGenTextures,
+  glGenTransformFeedbacks,
+  glGenVertexArrays,
+  glGenerateMipmap,
+  glGetActiveAtomicCounterBufferiv,
+  glGetActiveAttrib,
+  glGetActiveSubroutineName,
+  glGetActiveSubroutineUniformName,
+  glGetActiveSubroutineUniformiv,
+  glGetActiveUniform,
+  glGetActiveUniformBlockName,
+  glGetActiveUniformBlockiv,
+  glGetActiveUniformName,
+  glGetActiveUniformsiv,
+  glGetAttachedShaders,
+  glGetAttribLocation,
+  glGetBooleani_v,
+  glGetBooleanv,
+  glGetBufferParameteri64v,
+  glGetBufferParameteriv,
+  glGetBufferPointerv,
+  glGetBufferSubData,
+  glGetClipPlane,
+  glGetCompressedTexImage,
+  glGetDoublei_v,
+  glGetDoublev,
+  glGetError,
+  glGetFloati_v,
+  glGetFloatv,
+  glGetFragDataIndex,
+  glGetFragDataLocation,
+  glGetFramebufferAttachmentParameteriv,
+  glGetInteger64i_v,
+  glGetInteger64v,
+  glGetIntegeri_v,
+  glGetIntegerv,
+  glGetInternalformativ,
+  glGetLightfv,
+  glGetLightiv,
+  glGetMapdv,
+  glGetMapfv,
+  glGetMapiv,
+  glGetMaterialfv,
+  glGetMaterialiv,
+  glGetMultisamplefv,
+  glGetPixelMapfv,
+  glGetPixelMapuiv,
+  glGetPixelMapusv,
+  glGetPointerv,
+  glGetPolygonStipple,
+  glGetProgramBinary,
+  glGetProgramInfoLog,
+  glGetProgramPipelineInfoLog,
+  glGetProgramPipelineiv,
+  glGetProgramStageiv,
+  glGetProgramiv,
+  glGetQueryIndexediv,
+  glGetQueryObjecti64v,
+  glGetQueryObjectiv,
+  glGetQueryObjectui64v,
+  glGetQueryObjectuiv,
+  glGetQueryiv,
+  glGetRenderbufferParameteriv,
+  glGetSamplerParameterIiv,
+  glGetSamplerParameterIuiv,
+  glGetSamplerParameterfv,
+  glGetSamplerParameteriv,
+  glGetShaderInfoLog,
+  glGetShaderPrecisionFormat,
+  glGetShaderSource,
+  glGetShaderiv,
+  glGetString,
+  glGetStringi,
+  glGetSubroutineIndex,
+  glGetSubroutineUniformLocation,
+  glGetSynciv,
+  glGetTexEnvfv,
+  glGetTexEnviv,
+  glGetTexGendv,
+  glGetTexGenfv,
+  glGetTexGeniv,
+  glGetTexImage,
+  glGetTexLevelParameterfv,
+  glGetTexLevelParameteriv,
+  glGetTexParameterIiv,
+  glGetTexParameterIuiv,
+  glGetTexParameterfv,
+  glGetTexParameteriv,
+  glGetTransformFeedbackVarying,
+  glGetUniformBlockIndex,
+  glGetUniformIndices,
+  glGetUniformLocation,
+  glGetUniformSubroutineuiv,
+  glGetUniformdv,
+  glGetUniformfv,
+  glGetUniformiv,
+  glGetUniformuiv,
+  glGetVertexAttribIiv,
+  glGetVertexAttribIuiv,
+  glGetVertexAttribLdv,
+  glGetVertexAttribPointerv,
+  glGetVertexAttribdv,
+  glGetVertexAttribfv,
+  glGetVertexAttribiv,
+  glHint,
+  glIndexMask,
+  glIndexPointer,
+  glIndexd,
+  glIndexdv,
+  glIndexf,
+  glIndexfv,
+  glIndexi,
+  glIndexiv,
+  glIndexs,
+  glIndexsv,
+  glIndexub,
+  glIndexubv,
+  glInitNames,
+  glInterleavedArrays,
+  glIsBuffer,
+  glIsEnabled,
+  glIsEnabledi,
+  glIsFramebuffer,
+  glIsList,
+  glIsProgram,
+  glIsProgramPipeline,
+  glIsQuery,
+  glIsRenderbuffer,
+  glIsSampler,
+  glIsShader,
+  glIsSync,
+  glIsTexture,
+  glIsTransformFeedback,
+  glIsVertexArray,
+  glLightModelf,
+  glLightModelfv,
+  glLightModeli,
+  glLightModeliv,
+  glLightf,
+  glLightfv,
+  glLighti,
+  glLightiv,
+  glLineStipple,
+  glLineWidth,
+  glLinkProgram,
+  glListBase,
+  glLoadIdentity,
+  glLoadMatrixd,
+  glLoadMatrixf,
+  glLoadName,
+  glLoadTransposeMatrixd,
+  glLoadTransposeMatrixf,
+  glLogicOp,
+  glMap1d,
+  glMap1f,
+  glMap2d,
+  glMap2f,
+  glMapBuffer,
+  glMapBufferRange,
+  glMapGrid1d,
+  glMapGrid1f,
+  glMapGrid2d,
+  glMapGrid2f,
+  glMaterialf,
+  glMaterialfv,
+  glMateriali,
+  glMaterialiv,
+  glMatrixMode,
+  glMemoryBarrier,
+  glMinSampleShading,
+  glMultMatrixd,
+  glMultMatrixf,
+  glMultTransposeMatrixd,
+  glMultTransposeMatrixf,
+  glMultiDrawArrays,
+  glMultiDrawElements,
+  glMultiDrawElementsBaseVertex,
+  glMultiTexCoord1d,
+  glMultiTexCoord1dv,
+  glMultiTexCoord1f,
+  glMultiTexCoord1fv,
+  glMultiTexCoord1i,
+  glMultiTexCoord1iv,
+  glMultiTexCoord1s,
+  glMultiTexCoord1sv,
+  glMultiTexCoord2d,
+  glMultiTexCoord2dv,
+  glMultiTexCoord2f,
+  glMultiTexCoord2fv,
+  glMultiTexCoord2i,
+  glMultiTexCoord2iv,
+  glMultiTexCoord2s,
+  glMultiTexCoord2sv,
+  glMultiTexCoord3d,
+  glMultiTexCoord3dv,
+  glMultiTexCoord3f,
+  glMultiTexCoord3fv,
+  glMultiTexCoord3i,
+  glMultiTexCoord3iv,
+  glMultiTexCoord3s,
+  glMultiTexCoord3sv,
+  glMultiTexCoord4d,
+  glMultiTexCoord4dv,
+  glMultiTexCoord4f,
+  glMultiTexCoord4fv,
+  glMultiTexCoord4i,
+  glMultiTexCoord4iv,
+  glMultiTexCoord4s,
+  glMultiTexCoord4sv,
+  glMultiTexCoordP1ui,
+  glMultiTexCoordP1uiv,
+  glMultiTexCoordP2ui,
+  glMultiTexCoordP2uiv,
+  glMultiTexCoordP3ui,
+  glMultiTexCoordP3uiv,
+  glMultiTexCoordP4ui,
+  glMultiTexCoordP4uiv,
+  glNewList,
+  glNormal3b,
+  glNormal3bv,
+  glNormal3d,
+  glNormal3dv,
+  glNormal3f,
+  glNormal3fv,
+  glNormal3i,
+  glNormal3iv,
+  glNormal3s,
+  glNormal3sv,
+  glNormalP3ui,
+  glNormalP3uiv,
+  glNormalPointer,
+  glOrtho,
+  glPassThrough,
+  glPatchParameterfv,
+  glPatchParameteri,
+  glPauseTransformFeedback,
+  glPixelMapfv,
+  glPixelMapuiv,
+  glPixelMapusv,
+  glPixelStoref,
+  glPixelStorei,
+  glPixelTransferf,
+  glPixelTransferi,
+  glPixelZoom,
+  glPointParameterf,
+  glPointParameterfv,
+  glPointParameteri,
+  glPointParameteriv,
+  glPointSize,
+  glPolygonMode,
+  glPolygonOffset,
+  glPolygonStipple,
+  glPopAttrib,
+  glPopClientAttrib,
+  glPopMatrix,
+  glPopName,
+  glPrimitiveRestartIndex,
+  glPrioritizeTextures,
+  glProgramBinary,
+  glProgramParameteri,
+  glProgramUniform1d,
+  glProgramUniform1dv,
+  glProgramUniform1f,
+  glProgramUniform1fv,
+  glProgramUniform1i,
+  glProgramUniform1iv,
+  glProgramUniform1ui,
+  glProgramUniform1uiv,
+  glProgramUniform2d,
+  glProgramUniform2dv,
+  glProgramUniform2f,
+  glProgramUniform2fv,
+  glProgramUniform2i,
+  glProgramUniform2iv,
+  glProgramUniform2ui,
+  glProgramUniform2uiv,
+  glProgramUniform3d,
+  glProgramUniform3dv,
+  glProgramUniform3f,
+  glProgramUniform3fv,
+  glProgramUniform3i,
+  glProgramUniform3iv,
+  glProgramUniform3ui,
+  glProgramUniform3uiv,
+  glProgramUniform4d,
+  glProgramUniform4dv,
+  glProgramUniform4f,
+  glProgramUniform4fv,
+  glProgramUniform4i,
+  glProgramUniform4iv,
+  glProgramUniform4ui,
+  glProgramUniform4uiv,
+  glProgramUniformMatrix2dv,
+  glProgramUniformMatrix2fv,
+  glProgramUniformMatrix2x3dv,
+  glProgramUniformMatrix2x3fv,
+  glProgramUniformMatrix2x4dv,
+  glProgramUniformMatrix2x4fv,
+  glProgramUniformMatrix3dv,
+  glProgramUniformMatrix3fv,
+  glProgramUniformMatrix3x2dv,
+  glProgramUniformMatrix3x2fv,
+  glProgramUniformMatrix3x4dv,
+  glProgramUniformMatrix3x4fv,
+  glProgramUniformMatrix4dv,
+  glProgramUniformMatrix4fv,
+  glProgramUniformMatrix4x2dv,
+  glProgramUniformMatrix4x2fv,
+  glProgramUniformMatrix4x3dv,
+  glProgramUniformMatrix4x3fv,
+  glProvokingVertex,
+  glPushAttrib,
+  glPushClientAttrib,
+  glPushMatrix,
+  glPushName,
+  glQueryCounter,
+  glRasterPos2d,
+  glRasterPos2dv,
+  glRasterPos2f,
+  glRasterPos2fv,
+  glRasterPos2i,
+  glRasterPos2iv,
+  glRasterPos2s,
+  glRasterPos2sv,
+  glRasterPos3d,
+  glRasterPos3dv,
+  glRasterPos3f,
+  glRasterPos3fv,
+  glRasterPos3i,
+  glRasterPos3iv,
+  glRasterPos3s,
+  glRasterPos3sv,
+  glRasterPos4d,
+  glRasterPos4dv,
+  glRasterPos4f,
+  glRasterPos4fv,
+  glRasterPos4i,
+  glRasterPos4iv,
+  glRasterPos4s,
+  glRasterPos4sv,
+  glReadBuffer,
+  glReadPixels,
+  glRectd,
+  glRectdv,
+  glRectf,
+  glRectfv,
+  glRecti,
+  glRectiv,
+  glRects,
+  glRectsv,
+  glReleaseShaderCompiler,
+  glRenderMode,
+  glRenderbufferStorage,
+  glRenderbufferStorageMultisample,
+  glResumeTransformFeedback,
+  glRotated,
+  glRotatef,
+  glSampleCoverage,
+  glSampleMaski,
+  glSamplerParameterIiv,
+  glSamplerParameterIuiv,
+  glSamplerParameterf,
+  glSamplerParameterfv,
+  glSamplerParameteri,
+  glSamplerParameteriv,
+  glScaled,
+  glScalef,
+  glScissor,
+  glScissorArrayv,
+  glScissorIndexed,
+  glScissorIndexedv,
+  glSecondaryColor3b,
+  glSecondaryColor3bv,
+  glSecondaryColor3d,
+  glSecondaryColor3dv,
+  glSecondaryColor3f,
+  glSecondaryColor3fv,
+  glSecondaryColor3i,
+  glSecondaryColor3iv,
+  glSecondaryColor3s,
+  glSecondaryColor3sv,
+  glSecondaryColor3ub,
+  glSecondaryColor3ubv,
+  glSecondaryColor3ui,
+  glSecondaryColor3uiv,
+  glSecondaryColor3us,
+  glSecondaryColor3usv,
+  glSecondaryColorP3ui,
+  glSecondaryColorP3uiv,
+  glSecondaryColorPointer,
+  glSelectBuffer,
+  glShadeModel,
+  glShaderBinary,
+  glShaderSource,
+  glStencilFunc,
+  glStencilFuncSeparate,
+  glStencilMask,
+  glStencilMaskSeparate,
+  glStencilOp,
+  glStencilOpSeparate,
+  glTexBuffer,
+  glTexCoord1d,
+  glTexCoord1dv,
+  glTexCoord1f,
+  glTexCoord1fv,
+  glTexCoord1i,
+  glTexCoord1iv,
+  glTexCoord1s,
+  glTexCoord1sv,
+  glTexCoord2d,
+  glTexCoord2dv,
+  glTexCoord2f,
+  glTexCoord2fv,
+  glTexCoord2i,
+  glTexCoord2iv,
+  glTexCoord2s,
+  glTexCoord2sv,
+  glTexCoord3d,
+  glTexCoord3dv,
+  glTexCoord3f,
+  glTexCoord3fv,
+  glTexCoord3i,
+  glTexCoord3iv,
+  glTexCoord3s,
+  glTexCoord3sv,
+  glTexCoord4d,
+  glTexCoord4dv,
+  glTexCoord4f,
+  glTexCoord4fv,
+  glTexCoord4i,
+  glTexCoord4iv,
+  glTexCoord4s,
+  glTexCoord4sv,
+  glTexCoordP1ui,
+  glTexCoordP1uiv,
+  glTexCoordP2ui,
+  glTexCoordP2uiv,
+  glTexCoordP3ui,
+  glTexCoordP3uiv,
+  glTexCoordP4ui,
+  glTexCoordP4uiv,
+  glTexCoordPointer,
+  glTexEnvf,
+  glTexEnvfv,
+  glTexEnvi,
+  glTexEnviv,
+  glTexGend,
+  glTexGendv,
+  glTexGenf,
+  glTexGenfv,
+  glTexGeni,
+  glTexGeniv,
+  glTexImage1D,
+  glTexImage2D,
+  glTexImage2DMultisample,
+  glTexImage3D,
+  glTexImage3DMultisample,
+  glTexParameterIiv,
+  glTexParameterIuiv,
+  glTexParameterf,
+  glTexParameterfv,
+  glTexParameteri,
+  glTexParameteriv,
+  glTexStorage1D,
+  glTexStorage2D,
+  glTexStorage3D,
+  glTexSubImage1D,
+  glTexSubImage2D,
+  glTexSubImage3D,
+  glTransformFeedbackVaryings,
+  glTranslated,
+  glTranslatef,
+  glUniform1d,
+  glUniform1dv,
+  glUniform1f,
+  glUniform1fv,
+  glUniform1i,
+  glUniform1iv,
+  glUniform1ui,
+  glUniform1uiv,
+  glUniform2d,
+  glUniform2dv,
+  glUniform2f,
+  glUniform2fv,
+  glUniform2i,
+  glUniform2iv,
+  glUniform2ui,
+  glUniform2uiv,
+  glUniform3d,
+  glUniform3dv,
+  glUniform3f,
+  glUniform3fv,
+  glUniform3i,
+  glUniform3iv,
+  glUniform3ui,
+  glUniform3uiv,
+  glUniform4d,
+  glUniform4dv,
+  glUniform4f,
+  glUniform4fv,
+  glUniform4i,
+  glUniform4iv,
+  glUniform4ui,
+  glUniform4uiv,
+  glUniformBlockBinding,
+  glUniformMatrix2dv,
+  glUniformMatrix2fv,
+  glUniformMatrix2x3dv,
+  glUniformMatrix2x3fv,
+  glUniformMatrix2x4dv,
+  glUniformMatrix2x4fv,
+  glUniformMatrix3dv,
+  glUniformMatrix3fv,
+  glUniformMatrix3x2dv,
+  glUniformMatrix3x2fv,
+  glUniformMatrix3x4dv,
+  glUniformMatrix3x4fv,
+  glUniformMatrix4dv,
+  glUniformMatrix4fv,
+  glUniformMatrix4x2dv,
+  glUniformMatrix4x2fv,
+  glUniformMatrix4x3dv,
+  glUniformMatrix4x3fv,
+  glUniformSubroutinesuiv,
+  glUnmapBuffer,
+  glUseProgram,
+  glUseProgramStages,
+  glValidateProgram,
+  glValidateProgramPipeline,
+  glVertex2d,
+  glVertex2dv,
+  glVertex2f,
+  glVertex2fv,
+  glVertex2i,
+  glVertex2iv,
+  glVertex2s,
+  glVertex2sv,
+  glVertex3d,
+  glVertex3dv,
+  glVertex3f,
+  glVertex3fv,
+  glVertex3i,
+  glVertex3iv,
+  glVertex3s,
+  glVertex3sv,
+  glVertex4d,
+  glVertex4dv,
+  glVertex4f,
+  glVertex4fv,
+  glVertex4i,
+  glVertex4iv,
+  glVertex4s,
+  glVertex4sv,
+  glVertexAttrib1d,
+  glVertexAttrib1dv,
+  glVertexAttrib1f,
+  glVertexAttrib1fv,
+  glVertexAttrib1s,
+  glVertexAttrib1sv,
+  glVertexAttrib2d,
+  glVertexAttrib2dv,
+  glVertexAttrib2f,
+  glVertexAttrib2fv,
+  glVertexAttrib2s,
+  glVertexAttrib2sv,
+  glVertexAttrib3d,
+  glVertexAttrib3dv,
+  glVertexAttrib3f,
+  glVertexAttrib3fv,
+  glVertexAttrib3s,
+  glVertexAttrib3sv,
+  glVertexAttrib4Nbv,
+  glVertexAttrib4Niv,
+  glVertexAttrib4Nsv,
+  glVertexAttrib4Nub,
+  glVertexAttrib4Nubv,
+  glVertexAttrib4Nuiv,
+  glVertexAttrib4Nusv,
+  glVertexAttrib4bv,
+  glVertexAttrib4d,
+  glVertexAttrib4dv,
+  glVertexAttrib4f,
+  glVertexAttrib4fv,
+  glVertexAttrib4iv,
+  glVertexAttrib4s,
+  glVertexAttrib4sv,
+  glVertexAttrib4ubv,
+  glVertexAttrib4uiv,
+  glVertexAttrib4usv,
+  glVertexAttribDivisor,
+  glVertexAttribI1i,
+  glVertexAttribI1iv,
+  glVertexAttribI1ui,
+  glVertexAttribI1uiv,
+  glVertexAttribI2i,
+  glVertexAttribI2iv,
+  glVertexAttribI2ui,
+  glVertexAttribI2uiv,
+  glVertexAttribI3i,
+  glVertexAttribI3iv,
+  glVertexAttribI3ui,
+  glVertexAttribI3uiv,
+  glVertexAttribI4bv,
+  glVertexAttribI4i,
+  glVertexAttribI4iv,
+  glVertexAttribI4sv,
+  glVertexAttribI4ubv,
+  glVertexAttribI4ui,
+  glVertexAttribI4uiv,
+  glVertexAttribI4usv,
+  glVertexAttribIPointer,
+  glVertexAttribL1d,
+  glVertexAttribL1dv,
+  glVertexAttribL2d,
+  glVertexAttribL2dv,
+  glVertexAttribL3d,
+  glVertexAttribL3dv,
+  glVertexAttribL4d,
+  glVertexAttribL4dv,
+  glVertexAttribLPointer,
+  glVertexAttribP1ui,
+  glVertexAttribP1uiv,
+  glVertexAttribP2ui,
+  glVertexAttribP2uiv,
+  glVertexAttribP3ui,
+  glVertexAttribP3uiv,
+  glVertexAttribP4ui,
+  glVertexAttribP4uiv,
+  glVertexAttribPointer,
+  glVertexP2ui,
+  glVertexP2uiv,
+  glVertexP3ui,
+  glVertexP3uiv,
+  glVertexP4ui,
+  glVertexP4uiv,
+  glVertexPointer,
+  glViewport,
+  glViewportArrayv,
+  glViewportIndexedf,
+  glViewportIndexedfv,
+  glWaitSync,
+  glWindowPos2d,
+  glWindowPos2dv,
+  glWindowPos2f,
+  glWindowPos2fv,
+  glWindowPos2i,
+  glWindowPos2iv,
+  glWindowPos2s,
+  glWindowPos2sv,
+  glWindowPos3d,
+  glWindowPos3dv,
+  glWindowPos3f,
+  glWindowPos3fv,
+  glWindowPos3i,
+  glWindowPos3iv,
+  glWindowPos3s,
+  glWindowPos3sv
+) where
+
+import Graphics.GL.Types
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/Compatibility43.hs b/src/Graphics/GL/Compatibility43.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Compatibility43.hs
@@ -0,0 +1,2693 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Compatibility43
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Compatibility43 (
+  -- * Types
+  GLDEBUGPROC,
+  GLDEBUGPROCFunc,
+  GLbitfield,
+  GLboolean,
+  GLbyte,
+  GLchar,
+  GLclampd,
+  GLclampf,
+  GLdouble,
+  GLenum,
+  GLfloat,
+  GLhalf,
+  GLint,
+  GLint64,
+  GLintptr,
+  GLshort,
+  GLsizei,
+  GLsizeiptr,
+  GLsync,
+  GLubyte,
+  GLuint,
+  GLuint64,
+  GLushort,
+  GLvoid,
+  makeGLDEBUGPROC,
+  -- * Enums
+  pattern GL_2D,
+  pattern GL_2_BYTES,
+  pattern GL_3D,
+  pattern GL_3D_COLOR,
+  pattern GL_3D_COLOR_TEXTURE,
+  pattern GL_3_BYTES,
+  pattern GL_4D_COLOR_TEXTURE,
+  pattern GL_4_BYTES,
+  pattern GL_ACCUM,
+  pattern GL_ACCUM_ALPHA_BITS,
+  pattern GL_ACCUM_BLUE_BITS,
+  pattern GL_ACCUM_BUFFER_BIT,
+  pattern GL_ACCUM_CLEAR_VALUE,
+  pattern GL_ACCUM_GREEN_BITS,
+  pattern GL_ACCUM_RED_BITS,
+  pattern GL_ACTIVE_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_ACTIVE_ATTRIBUTES,
+  pattern GL_ACTIVE_ATTRIBUTE_MAX_LENGTH,
+  pattern GL_ACTIVE_PROGRAM,
+  pattern GL_ACTIVE_RESOURCES,
+  pattern GL_ACTIVE_SUBROUTINES,
+  pattern GL_ACTIVE_SUBROUTINE_MAX_LENGTH,
+  pattern GL_ACTIVE_SUBROUTINE_UNIFORMS,
+  pattern GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS,
+  pattern GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH,
+  pattern GL_ACTIVE_TEXTURE,
+  pattern GL_ACTIVE_UNIFORMS,
+  pattern GL_ACTIVE_UNIFORM_BLOCKS,
+  pattern GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH,
+  pattern GL_ACTIVE_UNIFORM_MAX_LENGTH,
+  pattern GL_ACTIVE_VARIABLES,
+  pattern GL_ADD,
+  pattern GL_ADD_SIGNED,
+  pattern GL_ALIASED_LINE_WIDTH_RANGE,
+  pattern GL_ALIASED_POINT_SIZE_RANGE,
+  pattern GL_ALL_ATTRIB_BITS,
+  pattern GL_ALL_BARRIER_BITS,
+  pattern GL_ALL_SHADER_BITS,
+  pattern GL_ALPHA,
+  pattern GL_ALPHA12,
+  pattern GL_ALPHA16,
+  pattern GL_ALPHA4,
+  pattern GL_ALPHA8,
+  pattern GL_ALPHA_BIAS,
+  pattern GL_ALPHA_BITS,
+  pattern GL_ALPHA_INTEGER,
+  pattern GL_ALPHA_SCALE,
+  pattern GL_ALPHA_TEST,
+  pattern GL_ALPHA_TEST_FUNC,
+  pattern GL_ALPHA_TEST_REF,
+  pattern GL_ALREADY_SIGNALED,
+  pattern GL_ALWAYS,
+  pattern GL_AMBIENT,
+  pattern GL_AMBIENT_AND_DIFFUSE,
+  pattern GL_AND,
+  pattern GL_AND_INVERTED,
+  pattern GL_AND_REVERSE,
+  pattern GL_ANY_SAMPLES_PASSED,
+  pattern GL_ANY_SAMPLES_PASSED_CONSERVATIVE,
+  pattern GL_ARRAY_BUFFER,
+  pattern GL_ARRAY_BUFFER_BINDING,
+  pattern GL_ARRAY_SIZE,
+  pattern GL_ARRAY_STRIDE,
+  pattern GL_ATOMIC_COUNTER_BARRIER_BIT,
+  pattern GL_ATOMIC_COUNTER_BUFFER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS,
+  pattern GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES,
+  pattern GL_ATOMIC_COUNTER_BUFFER_BINDING,
+  pattern GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE,
+  pattern GL_ATOMIC_COUNTER_BUFFER_INDEX,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_SIZE,
+  pattern GL_ATOMIC_COUNTER_BUFFER_START,
+  pattern GL_ATTACHED_SHADERS,
+  pattern GL_ATTRIB_STACK_DEPTH,
+  pattern GL_AUTO_GENERATE_MIPMAP,
+  pattern GL_AUTO_NORMAL,
+  pattern GL_AUX0,
+  pattern GL_AUX1,
+  pattern GL_AUX2,
+  pattern GL_AUX3,
+  pattern GL_AUX_BUFFERS,
+  pattern GL_BACK,
+  pattern GL_BACK_LEFT,
+  pattern GL_BACK_RIGHT,
+  pattern GL_BGR,
+  pattern GL_BGRA,
+  pattern GL_BGRA_INTEGER,
+  pattern GL_BGR_INTEGER,
+  pattern GL_BITMAP,
+  pattern GL_BITMAP_TOKEN,
+  pattern GL_BLEND,
+  pattern GL_BLEND_COLOR,
+  pattern GL_BLEND_DST,
+  pattern GL_BLEND_DST_ALPHA,
+  pattern GL_BLEND_DST_RGB,
+  pattern GL_BLEND_EQUATION,
+  pattern GL_BLEND_EQUATION_ALPHA,
+  pattern GL_BLEND_EQUATION_RGB,
+  pattern GL_BLEND_SRC,
+  pattern GL_BLEND_SRC_ALPHA,
+  pattern GL_BLEND_SRC_RGB,
+  pattern GL_BLOCK_INDEX,
+  pattern GL_BLUE,
+  pattern GL_BLUE_BIAS,
+  pattern GL_BLUE_BITS,
+  pattern GL_BLUE_INTEGER,
+  pattern GL_BLUE_SCALE,
+  pattern GL_BOOL,
+  pattern GL_BOOL_VEC2,
+  pattern GL_BOOL_VEC3,
+  pattern GL_BOOL_VEC4,
+  pattern GL_BUFFER,
+  pattern GL_BUFFER_ACCESS,
+  pattern GL_BUFFER_ACCESS_FLAGS,
+  pattern GL_BUFFER_BINDING,
+  pattern GL_BUFFER_DATA_SIZE,
+  pattern GL_BUFFER_MAPPED,
+  pattern GL_BUFFER_MAP_LENGTH,
+  pattern GL_BUFFER_MAP_OFFSET,
+  pattern GL_BUFFER_MAP_POINTER,
+  pattern GL_BUFFER_SIZE,
+  pattern GL_BUFFER_UPDATE_BARRIER_BIT,
+  pattern GL_BUFFER_USAGE,
+  pattern GL_BUFFER_VARIABLE,
+  pattern GL_BYTE,
+  pattern GL_C3F_V3F,
+  pattern GL_C4F_N3F_V3F,
+  pattern GL_C4UB_V2F,
+  pattern GL_C4UB_V3F,
+  pattern GL_CAVEAT_SUPPORT,
+  pattern GL_CCW,
+  pattern GL_CLAMP,
+  pattern GL_CLAMP_FRAGMENT_COLOR,
+  pattern GL_CLAMP_READ_COLOR,
+  pattern GL_CLAMP_TO_BORDER,
+  pattern GL_CLAMP_TO_EDGE,
+  pattern GL_CLAMP_VERTEX_COLOR,
+  pattern GL_CLEAR,
+  pattern GL_CLEAR_BUFFER,
+  pattern GL_CLIENT_ACTIVE_TEXTURE,
+  pattern GL_CLIENT_ALL_ATTRIB_BITS,
+  pattern GL_CLIENT_ATTRIB_STACK_DEPTH,
+  pattern GL_CLIENT_PIXEL_STORE_BIT,
+  pattern GL_CLIENT_VERTEX_ARRAY_BIT,
+  pattern GL_CLIP_DISTANCE0,
+  pattern GL_CLIP_DISTANCE1,
+  pattern GL_CLIP_DISTANCE2,
+  pattern GL_CLIP_DISTANCE3,
+  pattern GL_CLIP_DISTANCE4,
+  pattern GL_CLIP_DISTANCE5,
+  pattern GL_CLIP_DISTANCE6,
+  pattern GL_CLIP_DISTANCE7,
+  pattern GL_CLIP_PLANE0,
+  pattern GL_CLIP_PLANE1,
+  pattern GL_CLIP_PLANE2,
+  pattern GL_CLIP_PLANE3,
+  pattern GL_CLIP_PLANE4,
+  pattern GL_CLIP_PLANE5,
+  pattern GL_COEFF,
+  pattern GL_COLOR,
+  pattern GL_COLOR_ARRAY,
+  pattern GL_COLOR_ARRAY_BUFFER_BINDING,
+  pattern GL_COLOR_ARRAY_POINTER,
+  pattern GL_COLOR_ARRAY_SIZE,
+  pattern GL_COLOR_ARRAY_STRIDE,
+  pattern GL_COLOR_ARRAY_TYPE,
+  pattern GL_COLOR_ATTACHMENT0,
+  pattern GL_COLOR_ATTACHMENT1,
+  pattern GL_COLOR_ATTACHMENT10,
+  pattern GL_COLOR_ATTACHMENT11,
+  pattern GL_COLOR_ATTACHMENT12,
+  pattern GL_COLOR_ATTACHMENT13,
+  pattern GL_COLOR_ATTACHMENT14,
+  pattern GL_COLOR_ATTACHMENT15,
+  pattern GL_COLOR_ATTACHMENT16,
+  pattern GL_COLOR_ATTACHMENT17,
+  pattern GL_COLOR_ATTACHMENT18,
+  pattern GL_COLOR_ATTACHMENT19,
+  pattern GL_COLOR_ATTACHMENT2,
+  pattern GL_COLOR_ATTACHMENT20,
+  pattern GL_COLOR_ATTACHMENT21,
+  pattern GL_COLOR_ATTACHMENT22,
+  pattern GL_COLOR_ATTACHMENT23,
+  pattern GL_COLOR_ATTACHMENT24,
+  pattern GL_COLOR_ATTACHMENT25,
+  pattern GL_COLOR_ATTACHMENT26,
+  pattern GL_COLOR_ATTACHMENT27,
+  pattern GL_COLOR_ATTACHMENT28,
+  pattern GL_COLOR_ATTACHMENT29,
+  pattern GL_COLOR_ATTACHMENT3,
+  pattern GL_COLOR_ATTACHMENT30,
+  pattern GL_COLOR_ATTACHMENT31,
+  pattern GL_COLOR_ATTACHMENT4,
+  pattern GL_COLOR_ATTACHMENT5,
+  pattern GL_COLOR_ATTACHMENT6,
+  pattern GL_COLOR_ATTACHMENT7,
+  pattern GL_COLOR_ATTACHMENT8,
+  pattern GL_COLOR_ATTACHMENT9,
+  pattern GL_COLOR_BUFFER_BIT,
+  pattern GL_COLOR_CLEAR_VALUE,
+  pattern GL_COLOR_COMPONENTS,
+  pattern GL_COLOR_ENCODING,
+  pattern GL_COLOR_INDEX,
+  pattern GL_COLOR_INDEXES,
+  pattern GL_COLOR_LOGIC_OP,
+  pattern GL_COLOR_MATERIAL,
+  pattern GL_COLOR_MATERIAL_FACE,
+  pattern GL_COLOR_MATERIAL_PARAMETER,
+  pattern GL_COLOR_RENDERABLE,
+  pattern GL_COLOR_SUM,
+  pattern GL_COLOR_WRITEMASK,
+  pattern GL_COMBINE,
+  pattern GL_COMBINE_ALPHA,
+  pattern GL_COMBINE_RGB,
+  pattern GL_COMMAND_BARRIER_BIT,
+  pattern GL_COMPARE_REF_TO_TEXTURE,
+  pattern GL_COMPARE_R_TO_TEXTURE,
+  pattern GL_COMPATIBLE_SUBROUTINES,
+  pattern GL_COMPILE,
+  pattern GL_COMPILE_AND_EXECUTE,
+  pattern GL_COMPILE_STATUS,
+  pattern GL_COMPRESSED_ALPHA,
+  pattern GL_COMPRESSED_INTENSITY,
+  pattern GL_COMPRESSED_LUMINANCE,
+  pattern GL_COMPRESSED_LUMINANCE_ALPHA,
+  pattern GL_COMPRESSED_R11_EAC,
+  pattern GL_COMPRESSED_RED,
+  pattern GL_COMPRESSED_RED_RGTC1,
+  pattern GL_COMPRESSED_RG,
+  pattern GL_COMPRESSED_RG11_EAC,
+  pattern GL_COMPRESSED_RGB,
+  pattern GL_COMPRESSED_RGB8_ETC2,
+  pattern GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,
+  pattern GL_COMPRESSED_RGBA,
+  pattern GL_COMPRESSED_RGBA8_ETC2_EAC,
+  pattern GL_COMPRESSED_RGBA_BPTC_UNORM,
+  pattern GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT,
+  pattern GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT,
+  pattern GL_COMPRESSED_RG_RGTC2,
+  pattern GL_COMPRESSED_SIGNED_R11_EAC,
+  pattern GL_COMPRESSED_SIGNED_RED_RGTC1,
+  pattern GL_COMPRESSED_SIGNED_RG11_EAC,
+  pattern GL_COMPRESSED_SIGNED_RG_RGTC2,
+  pattern GL_COMPRESSED_SLUMINANCE,
+  pattern GL_COMPRESSED_SLUMINANCE_ALPHA,
+  pattern GL_COMPRESSED_SRGB,
+  pattern GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,
+  pattern GL_COMPRESSED_SRGB8_ETC2,
+  pattern GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,
+  pattern GL_COMPRESSED_SRGB_ALPHA,
+  pattern GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM,
+  pattern GL_COMPRESSED_TEXTURE_FORMATS,
+  pattern GL_COMPUTE_SHADER,
+  pattern GL_COMPUTE_SHADER_BIT,
+  pattern GL_COMPUTE_SUBROUTINE,
+  pattern GL_COMPUTE_SUBROUTINE_UNIFORM,
+  pattern GL_COMPUTE_TEXTURE,
+  pattern GL_COMPUTE_WORK_GROUP_SIZE,
+  pattern GL_CONDITION_SATISFIED,
+  pattern GL_CONSTANT,
+  pattern GL_CONSTANT_ALPHA,
+  pattern GL_CONSTANT_ATTENUATION,
+  pattern GL_CONSTANT_COLOR,
+  pattern GL_CONTEXT_COMPATIBILITY_PROFILE_BIT,
+  pattern GL_CONTEXT_CORE_PROFILE_BIT,
+  pattern GL_CONTEXT_FLAGS,
+  pattern GL_CONTEXT_FLAG_DEBUG_BIT,
+  pattern GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT,
+  pattern GL_CONTEXT_PROFILE_MASK,
+  pattern GL_COORD_REPLACE,
+  pattern GL_COPY,
+  pattern GL_COPY_INVERTED,
+  pattern GL_COPY_PIXEL_TOKEN,
+  pattern GL_COPY_READ_BUFFER,
+  pattern GL_COPY_READ_BUFFER_BINDING,
+  pattern GL_COPY_WRITE_BUFFER,
+  pattern GL_COPY_WRITE_BUFFER_BINDING,
+  pattern GL_CULL_FACE,
+  pattern GL_CULL_FACE_MODE,
+  pattern GL_CURRENT_BIT,
+  pattern GL_CURRENT_COLOR,
+  pattern GL_CURRENT_FOG_COORD,
+  pattern GL_CURRENT_FOG_COORDINATE,
+  pattern GL_CURRENT_INDEX,
+  pattern GL_CURRENT_NORMAL,
+  pattern GL_CURRENT_PROGRAM,
+  pattern GL_CURRENT_QUERY,
+  pattern GL_CURRENT_RASTER_COLOR,
+  pattern GL_CURRENT_RASTER_DISTANCE,
+  pattern GL_CURRENT_RASTER_INDEX,
+  pattern GL_CURRENT_RASTER_POSITION,
+  pattern GL_CURRENT_RASTER_POSITION_VALID,
+  pattern GL_CURRENT_RASTER_SECONDARY_COLOR,
+  pattern GL_CURRENT_RASTER_TEXTURE_COORDS,
+  pattern GL_CURRENT_SECONDARY_COLOR,
+  pattern GL_CURRENT_TEXTURE_COORDS,
+  pattern GL_CURRENT_VERTEX_ATTRIB,
+  pattern GL_CW,
+  pattern GL_DEBUG_CALLBACK_FUNCTION,
+  pattern GL_DEBUG_CALLBACK_USER_PARAM,
+  pattern GL_DEBUG_GROUP_STACK_DEPTH,
+  pattern GL_DEBUG_LOGGED_MESSAGES,
+  pattern GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH,
+  pattern GL_DEBUG_OUTPUT,
+  pattern GL_DEBUG_OUTPUT_SYNCHRONOUS,
+  pattern GL_DEBUG_SEVERITY_HIGH,
+  pattern GL_DEBUG_SEVERITY_LOW,
+  pattern GL_DEBUG_SEVERITY_MEDIUM,
+  pattern GL_DEBUG_SEVERITY_NOTIFICATION,
+  pattern GL_DEBUG_SOURCE_API,
+  pattern GL_DEBUG_SOURCE_APPLICATION,
+  pattern GL_DEBUG_SOURCE_OTHER,
+  pattern GL_DEBUG_SOURCE_SHADER_COMPILER,
+  pattern GL_DEBUG_SOURCE_THIRD_PARTY,
+  pattern GL_DEBUG_SOURCE_WINDOW_SYSTEM,
+  pattern GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR,
+  pattern GL_DEBUG_TYPE_ERROR,
+  pattern GL_DEBUG_TYPE_MARKER,
+  pattern GL_DEBUG_TYPE_OTHER,
+  pattern GL_DEBUG_TYPE_PERFORMANCE,
+  pattern GL_DEBUG_TYPE_POP_GROUP,
+  pattern GL_DEBUG_TYPE_PORTABILITY,
+  pattern GL_DEBUG_TYPE_PUSH_GROUP,
+  pattern GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR,
+  pattern GL_DECAL,
+  pattern GL_DECR,
+  pattern GL_DECR_WRAP,
+  pattern GL_DELETE_STATUS,
+  pattern GL_DEPTH,
+  pattern GL_DEPTH24_STENCIL8,
+  pattern GL_DEPTH32F_STENCIL8,
+  pattern GL_DEPTH_ATTACHMENT,
+  pattern GL_DEPTH_BIAS,
+  pattern GL_DEPTH_BITS,
+  pattern GL_DEPTH_BUFFER_BIT,
+  pattern GL_DEPTH_CLAMP,
+  pattern GL_DEPTH_CLEAR_VALUE,
+  pattern GL_DEPTH_COMPONENT,
+  pattern GL_DEPTH_COMPONENT16,
+  pattern GL_DEPTH_COMPONENT24,
+  pattern GL_DEPTH_COMPONENT32,
+  pattern GL_DEPTH_COMPONENT32F,
+  pattern GL_DEPTH_COMPONENTS,
+  pattern GL_DEPTH_FUNC,
+  pattern GL_DEPTH_RANGE,
+  pattern GL_DEPTH_RENDERABLE,
+  pattern GL_DEPTH_SCALE,
+  pattern GL_DEPTH_STENCIL,
+  pattern GL_DEPTH_STENCIL_ATTACHMENT,
+  pattern GL_DEPTH_STENCIL_TEXTURE_MODE,
+  pattern GL_DEPTH_TEST,
+  pattern GL_DEPTH_TEXTURE_MODE,
+  pattern GL_DEPTH_WRITEMASK,
+  pattern GL_DIFFUSE,
+  pattern GL_DISPATCH_INDIRECT_BUFFER,
+  pattern GL_DISPATCH_INDIRECT_BUFFER_BINDING,
+  pattern GL_DISPLAY_LIST,
+  pattern GL_DITHER,
+  pattern GL_DOMAIN,
+  pattern GL_DONT_CARE,
+  pattern GL_DOT3_RGB,
+  pattern GL_DOT3_RGBA,
+  pattern GL_DOUBLE,
+  pattern GL_DOUBLEBUFFER,
+  pattern GL_DOUBLE_MAT2,
+  pattern GL_DOUBLE_MAT2x3,
+  pattern GL_DOUBLE_MAT2x4,
+  pattern GL_DOUBLE_MAT3,
+  pattern GL_DOUBLE_MAT3x2,
+  pattern GL_DOUBLE_MAT3x4,
+  pattern GL_DOUBLE_MAT4,
+  pattern GL_DOUBLE_MAT4x2,
+  pattern GL_DOUBLE_MAT4x3,
+  pattern GL_DOUBLE_VEC2,
+  pattern GL_DOUBLE_VEC3,
+  pattern GL_DOUBLE_VEC4,
+  pattern GL_DRAW_BUFFER,
+  pattern GL_DRAW_BUFFER0,
+  pattern GL_DRAW_BUFFER1,
+  pattern GL_DRAW_BUFFER10,
+  pattern GL_DRAW_BUFFER11,
+  pattern GL_DRAW_BUFFER12,
+  pattern GL_DRAW_BUFFER13,
+  pattern GL_DRAW_BUFFER14,
+  pattern GL_DRAW_BUFFER15,
+  pattern GL_DRAW_BUFFER2,
+  pattern GL_DRAW_BUFFER3,
+  pattern GL_DRAW_BUFFER4,
+  pattern GL_DRAW_BUFFER5,
+  pattern GL_DRAW_BUFFER6,
+  pattern GL_DRAW_BUFFER7,
+  pattern GL_DRAW_BUFFER8,
+  pattern GL_DRAW_BUFFER9,
+  pattern GL_DRAW_FRAMEBUFFER,
+  pattern GL_DRAW_FRAMEBUFFER_BINDING,
+  pattern GL_DRAW_INDIRECT_BUFFER,
+  pattern GL_DRAW_INDIRECT_BUFFER_BINDING,
+  pattern GL_DRAW_PIXEL_TOKEN,
+  pattern GL_DST_ALPHA,
+  pattern GL_DST_COLOR,
+  pattern GL_DYNAMIC_COPY,
+  pattern GL_DYNAMIC_DRAW,
+  pattern GL_DYNAMIC_READ,
+  pattern GL_EDGE_FLAG,
+  pattern GL_EDGE_FLAG_ARRAY,
+  pattern GL_EDGE_FLAG_ARRAY_BUFFER_BINDING,
+  pattern GL_EDGE_FLAG_ARRAY_POINTER,
+  pattern GL_EDGE_FLAG_ARRAY_STRIDE,
+  pattern GL_ELEMENT_ARRAY_BARRIER_BIT,
+  pattern GL_ELEMENT_ARRAY_BUFFER,
+  pattern GL_ELEMENT_ARRAY_BUFFER_BINDING,
+  pattern GL_EMISSION,
+  pattern GL_ENABLE_BIT,
+  pattern GL_EQUAL,
+  pattern GL_EQUIV,
+  pattern GL_EVAL_BIT,
+  pattern GL_EXP,
+  pattern GL_EXP2,
+  pattern GL_EXTENSIONS,
+  pattern GL_EYE_LINEAR,
+  pattern GL_EYE_PLANE,
+  pattern GL_FALSE,
+  pattern GL_FASTEST,
+  pattern GL_FEEDBACK,
+  pattern GL_FEEDBACK_BUFFER_POINTER,
+  pattern GL_FEEDBACK_BUFFER_SIZE,
+  pattern GL_FEEDBACK_BUFFER_TYPE,
+  pattern GL_FILL,
+  pattern GL_FILTER,
+  pattern GL_FIRST_VERTEX_CONVENTION,
+  pattern GL_FIXED,
+  pattern GL_FIXED_ONLY,
+  pattern GL_FLAT,
+  pattern GL_FLOAT,
+  pattern GL_FLOAT_32_UNSIGNED_INT_24_8_REV,
+  pattern GL_FLOAT_MAT2,
+  pattern GL_FLOAT_MAT2x3,
+  pattern GL_FLOAT_MAT2x4,
+  pattern GL_FLOAT_MAT3,
+  pattern GL_FLOAT_MAT3x2,
+  pattern GL_FLOAT_MAT3x4,
+  pattern GL_FLOAT_MAT4,
+  pattern GL_FLOAT_MAT4x2,
+  pattern GL_FLOAT_MAT4x3,
+  pattern GL_FLOAT_VEC2,
+  pattern GL_FLOAT_VEC3,
+  pattern GL_FLOAT_VEC4,
+  pattern GL_FOG,
+  pattern GL_FOG_BIT,
+  pattern GL_FOG_COLOR,
+  pattern GL_FOG_COORD,
+  pattern GL_FOG_COORDINATE,
+  pattern GL_FOG_COORDINATE_ARRAY,
+  pattern GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING,
+  pattern GL_FOG_COORDINATE_ARRAY_POINTER,
+  pattern GL_FOG_COORDINATE_ARRAY_STRIDE,
+  pattern GL_FOG_COORDINATE_ARRAY_TYPE,
+  pattern GL_FOG_COORDINATE_SOURCE,
+  pattern GL_FOG_COORD_ARRAY,
+  pattern GL_FOG_COORD_ARRAY_BUFFER_BINDING,
+  pattern GL_FOG_COORD_ARRAY_POINTER,
+  pattern GL_FOG_COORD_ARRAY_STRIDE,
+  pattern GL_FOG_COORD_ARRAY_TYPE,
+  pattern GL_FOG_COORD_SRC,
+  pattern GL_FOG_DENSITY,
+  pattern GL_FOG_END,
+  pattern GL_FOG_HINT,
+  pattern GL_FOG_INDEX,
+  pattern GL_FOG_MODE,
+  pattern GL_FOG_START,
+  pattern GL_FRACTIONAL_EVEN,
+  pattern GL_FRACTIONAL_ODD,
+  pattern GL_FRAGMENT_DEPTH,
+  pattern GL_FRAGMENT_INTERPOLATION_OFFSET_BITS,
+  pattern GL_FRAGMENT_SHADER,
+  pattern GL_FRAGMENT_SHADER_BIT,
+  pattern GL_FRAGMENT_SHADER_DERIVATIVE_HINT,
+  pattern GL_FRAGMENT_SUBROUTINE,
+  pattern GL_FRAGMENT_SUBROUTINE_UNIFORM,
+  pattern GL_FRAGMENT_TEXTURE,
+  pattern GL_FRAMEBUFFER,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL,
+  pattern GL_FRAMEBUFFER_BARRIER_BIT,
+  pattern GL_FRAMEBUFFER_BINDING,
+  pattern GL_FRAMEBUFFER_BLEND,
+  pattern GL_FRAMEBUFFER_COMPLETE,
+  pattern GL_FRAMEBUFFER_DEFAULT,
+  pattern GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS,
+  pattern GL_FRAMEBUFFER_DEFAULT_HEIGHT,
+  pattern GL_FRAMEBUFFER_DEFAULT_LAYERS,
+  pattern GL_FRAMEBUFFER_DEFAULT_SAMPLES,
+  pattern GL_FRAMEBUFFER_DEFAULT_WIDTH,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER,
+  pattern GL_FRAMEBUFFER_RENDERABLE,
+  pattern GL_FRAMEBUFFER_RENDERABLE_LAYERED,
+  pattern GL_FRAMEBUFFER_SRGB,
+  pattern GL_FRAMEBUFFER_UNDEFINED,
+  pattern GL_FRAMEBUFFER_UNSUPPORTED,
+  pattern GL_FRONT,
+  pattern GL_FRONT_AND_BACK,
+  pattern GL_FRONT_FACE,
+  pattern GL_FRONT_LEFT,
+  pattern GL_FRONT_RIGHT,
+  pattern GL_FULL_SUPPORT,
+  pattern GL_FUNC_ADD,
+  pattern GL_FUNC_REVERSE_SUBTRACT,
+  pattern GL_FUNC_SUBTRACT,
+  pattern GL_GENERATE_MIPMAP,
+  pattern GL_GENERATE_MIPMAP_HINT,
+  pattern GL_GEOMETRY_INPUT_TYPE,
+  pattern GL_GEOMETRY_OUTPUT_TYPE,
+  pattern GL_GEOMETRY_SHADER,
+  pattern GL_GEOMETRY_SHADER_BIT,
+  pattern GL_GEOMETRY_SHADER_INVOCATIONS,
+  pattern GL_GEOMETRY_SUBROUTINE,
+  pattern GL_GEOMETRY_SUBROUTINE_UNIFORM,
+  pattern GL_GEOMETRY_TEXTURE,
+  pattern GL_GEOMETRY_VERTICES_OUT,
+  pattern GL_GEQUAL,
+  pattern GL_GET_TEXTURE_IMAGE_FORMAT,
+  pattern GL_GET_TEXTURE_IMAGE_TYPE,
+  pattern GL_GREATER,
+  pattern GL_GREEN,
+  pattern GL_GREEN_BIAS,
+  pattern GL_GREEN_BITS,
+  pattern GL_GREEN_INTEGER,
+  pattern GL_GREEN_SCALE,
+  pattern GL_HALF_FLOAT,
+  pattern GL_HIGH_FLOAT,
+  pattern GL_HIGH_INT,
+  pattern GL_HINT_BIT,
+  pattern GL_IMAGE_1D,
+  pattern GL_IMAGE_1D_ARRAY,
+  pattern GL_IMAGE_2D,
+  pattern GL_IMAGE_2D_ARRAY,
+  pattern GL_IMAGE_2D_MULTISAMPLE,
+  pattern GL_IMAGE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_IMAGE_2D_RECT,
+  pattern GL_IMAGE_3D,
+  pattern GL_IMAGE_BINDING_ACCESS,
+  pattern GL_IMAGE_BINDING_FORMAT,
+  pattern GL_IMAGE_BINDING_LAYER,
+  pattern GL_IMAGE_BINDING_LAYERED,
+  pattern GL_IMAGE_BINDING_LEVEL,
+  pattern GL_IMAGE_BINDING_NAME,
+  pattern GL_IMAGE_BUFFER,
+  pattern GL_IMAGE_CLASS_10_10_10_2,
+  pattern GL_IMAGE_CLASS_11_11_10,
+  pattern GL_IMAGE_CLASS_1_X_16,
+  pattern GL_IMAGE_CLASS_1_X_32,
+  pattern GL_IMAGE_CLASS_1_X_8,
+  pattern GL_IMAGE_CLASS_2_X_16,
+  pattern GL_IMAGE_CLASS_2_X_32,
+  pattern GL_IMAGE_CLASS_2_X_8,
+  pattern GL_IMAGE_CLASS_4_X_16,
+  pattern GL_IMAGE_CLASS_4_X_32,
+  pattern GL_IMAGE_CLASS_4_X_8,
+  pattern GL_IMAGE_COMPATIBILITY_CLASS,
+  pattern GL_IMAGE_CUBE,
+  pattern GL_IMAGE_CUBE_MAP_ARRAY,
+  pattern GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS,
+  pattern GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE,
+  pattern GL_IMAGE_FORMAT_COMPATIBILITY_TYPE,
+  pattern GL_IMAGE_PIXEL_FORMAT,
+  pattern GL_IMAGE_PIXEL_TYPE,
+  pattern GL_IMAGE_TEXEL_SIZE,
+  pattern GL_IMPLEMENTATION_COLOR_READ_FORMAT,
+  pattern GL_IMPLEMENTATION_COLOR_READ_TYPE,
+  pattern GL_INCR,
+  pattern GL_INCR_WRAP,
+  pattern GL_INDEX,
+  pattern GL_INDEX_ARRAY,
+  pattern GL_INDEX_ARRAY_BUFFER_BINDING,
+  pattern GL_INDEX_ARRAY_POINTER,
+  pattern GL_INDEX_ARRAY_STRIDE,
+  pattern GL_INDEX_ARRAY_TYPE,
+  pattern GL_INDEX_BITS,
+  pattern GL_INDEX_CLEAR_VALUE,
+  pattern GL_INDEX_LOGIC_OP,
+  pattern GL_INDEX_MODE,
+  pattern GL_INDEX_OFFSET,
+  pattern GL_INDEX_SHIFT,
+  pattern GL_INDEX_WRITEMASK,
+  pattern GL_INFO_LOG_LENGTH,
+  pattern GL_INT,
+  pattern GL_INTENSITY,
+  pattern GL_INTENSITY12,
+  pattern GL_INTENSITY16,
+  pattern GL_INTENSITY4,
+  pattern GL_INTENSITY8,
+  pattern GL_INTERLEAVED_ATTRIBS,
+  pattern GL_INTERNALFORMAT_ALPHA_SIZE,
+  pattern GL_INTERNALFORMAT_ALPHA_TYPE,
+  pattern GL_INTERNALFORMAT_BLUE_SIZE,
+  pattern GL_INTERNALFORMAT_BLUE_TYPE,
+  pattern GL_INTERNALFORMAT_DEPTH_SIZE,
+  pattern GL_INTERNALFORMAT_DEPTH_TYPE,
+  pattern GL_INTERNALFORMAT_GREEN_SIZE,
+  pattern GL_INTERNALFORMAT_GREEN_TYPE,
+  pattern GL_INTERNALFORMAT_PREFERRED,
+  pattern GL_INTERNALFORMAT_RED_SIZE,
+  pattern GL_INTERNALFORMAT_RED_TYPE,
+  pattern GL_INTERNALFORMAT_SHARED_SIZE,
+  pattern GL_INTERNALFORMAT_STENCIL_SIZE,
+  pattern GL_INTERNALFORMAT_STENCIL_TYPE,
+  pattern GL_INTERNALFORMAT_SUPPORTED,
+  pattern GL_INTERPOLATE,
+  pattern GL_INT_2_10_10_10_REV,
+  pattern GL_INT_IMAGE_1D,
+  pattern GL_INT_IMAGE_1D_ARRAY,
+  pattern GL_INT_IMAGE_2D,
+  pattern GL_INT_IMAGE_2D_ARRAY,
+  pattern GL_INT_IMAGE_2D_MULTISAMPLE,
+  pattern GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_INT_IMAGE_2D_RECT,
+  pattern GL_INT_IMAGE_3D,
+  pattern GL_INT_IMAGE_BUFFER,
+  pattern GL_INT_IMAGE_CUBE,
+  pattern GL_INT_IMAGE_CUBE_MAP_ARRAY,
+  pattern GL_INT_SAMPLER_1D,
+  pattern GL_INT_SAMPLER_1D_ARRAY,
+  pattern GL_INT_SAMPLER_2D,
+  pattern GL_INT_SAMPLER_2D_ARRAY,
+  pattern GL_INT_SAMPLER_2D_MULTISAMPLE,
+  pattern GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY,
+  pattern GL_INT_SAMPLER_2D_RECT,
+  pattern GL_INT_SAMPLER_3D,
+  pattern GL_INT_SAMPLER_BUFFER,
+  pattern GL_INT_SAMPLER_CUBE,
+  pattern GL_INT_SAMPLER_CUBE_MAP_ARRAY,
+  pattern GL_INT_VEC2,
+  pattern GL_INT_VEC3,
+  pattern GL_INT_VEC4,
+  pattern GL_INVALID_ENUM,
+  pattern GL_INVALID_FRAMEBUFFER_OPERATION,
+  pattern GL_INVALID_INDEX,
+  pattern GL_INVALID_OPERATION,
+  pattern GL_INVALID_VALUE,
+  pattern GL_INVERT,
+  pattern GL_ISOLINES,
+  pattern GL_IS_PER_PATCH,
+  pattern GL_IS_ROW_MAJOR,
+  pattern GL_KEEP,
+  pattern GL_LAST_VERTEX_CONVENTION,
+  pattern GL_LAYER_PROVOKING_VERTEX,
+  pattern GL_LEFT,
+  pattern GL_LEQUAL,
+  pattern GL_LESS,
+  pattern GL_LIGHT0,
+  pattern GL_LIGHT1,
+  pattern GL_LIGHT2,
+  pattern GL_LIGHT3,
+  pattern GL_LIGHT4,
+  pattern GL_LIGHT5,
+  pattern GL_LIGHT6,
+  pattern GL_LIGHT7,
+  pattern GL_LIGHTING,
+  pattern GL_LIGHTING_BIT,
+  pattern GL_LIGHT_MODEL_AMBIENT,
+  pattern GL_LIGHT_MODEL_COLOR_CONTROL,
+  pattern GL_LIGHT_MODEL_LOCAL_VIEWER,
+  pattern GL_LIGHT_MODEL_TWO_SIDE,
+  pattern GL_LINE,
+  pattern GL_LINEAR,
+  pattern GL_LINEAR_ATTENUATION,
+  pattern GL_LINEAR_MIPMAP_LINEAR,
+  pattern GL_LINEAR_MIPMAP_NEAREST,
+  pattern GL_LINES,
+  pattern GL_LINES_ADJACENCY,
+  pattern GL_LINE_BIT,
+  pattern GL_LINE_LOOP,
+  pattern GL_LINE_RESET_TOKEN,
+  pattern GL_LINE_SMOOTH,
+  pattern GL_LINE_SMOOTH_HINT,
+  pattern GL_LINE_STIPPLE,
+  pattern GL_LINE_STIPPLE_PATTERN,
+  pattern GL_LINE_STIPPLE_REPEAT,
+  pattern GL_LINE_STRIP,
+  pattern GL_LINE_STRIP_ADJACENCY,
+  pattern GL_LINE_TOKEN,
+  pattern GL_LINE_WIDTH,
+  pattern GL_LINE_WIDTH_GRANULARITY,
+  pattern GL_LINE_WIDTH_RANGE,
+  pattern GL_LINK_STATUS,
+  pattern GL_LIST_BASE,
+  pattern GL_LIST_BIT,
+  pattern GL_LIST_INDEX,
+  pattern GL_LIST_MODE,
+  pattern GL_LOAD,
+  pattern GL_LOCATION,
+  pattern GL_LOCATION_INDEX,
+  pattern GL_LOGIC_OP,
+  pattern GL_LOGIC_OP_MODE,
+  pattern GL_LOWER_LEFT,
+  pattern GL_LOW_FLOAT,
+  pattern GL_LOW_INT,
+  pattern GL_LUMINANCE,
+  pattern GL_LUMINANCE12,
+  pattern GL_LUMINANCE12_ALPHA12,
+  pattern GL_LUMINANCE12_ALPHA4,
+  pattern GL_LUMINANCE16,
+  pattern GL_LUMINANCE16_ALPHA16,
+  pattern GL_LUMINANCE4,
+  pattern GL_LUMINANCE4_ALPHA4,
+  pattern GL_LUMINANCE6_ALPHA2,
+  pattern GL_LUMINANCE8,
+  pattern GL_LUMINANCE8_ALPHA8,
+  pattern GL_LUMINANCE_ALPHA,
+  pattern GL_MAJOR_VERSION,
+  pattern GL_MANUAL_GENERATE_MIPMAP,
+  pattern GL_MAP1_COLOR_4,
+  pattern GL_MAP1_GRID_DOMAIN,
+  pattern GL_MAP1_GRID_SEGMENTS,
+  pattern GL_MAP1_INDEX,
+  pattern GL_MAP1_NORMAL,
+  pattern GL_MAP1_TEXTURE_COORD_1,
+  pattern GL_MAP1_TEXTURE_COORD_2,
+  pattern GL_MAP1_TEXTURE_COORD_3,
+  pattern GL_MAP1_TEXTURE_COORD_4,
+  pattern GL_MAP1_VERTEX_3,
+  pattern GL_MAP1_VERTEX_4,
+  pattern GL_MAP2_COLOR_4,
+  pattern GL_MAP2_GRID_DOMAIN,
+  pattern GL_MAP2_GRID_SEGMENTS,
+  pattern GL_MAP2_INDEX,
+  pattern GL_MAP2_NORMAL,
+  pattern GL_MAP2_TEXTURE_COORD_1,
+  pattern GL_MAP2_TEXTURE_COORD_2,
+  pattern GL_MAP2_TEXTURE_COORD_3,
+  pattern GL_MAP2_TEXTURE_COORD_4,
+  pattern GL_MAP2_VERTEX_3,
+  pattern GL_MAP2_VERTEX_4,
+  pattern GL_MAP_COLOR,
+  pattern GL_MAP_FLUSH_EXPLICIT_BIT,
+  pattern GL_MAP_INVALIDATE_BUFFER_BIT,
+  pattern GL_MAP_INVALIDATE_RANGE_BIT,
+  pattern GL_MAP_READ_BIT,
+  pattern GL_MAP_STENCIL,
+  pattern GL_MAP_UNSYNCHRONIZED_BIT,
+  pattern GL_MAP_WRITE_BIT,
+  pattern GL_MATRIX_MODE,
+  pattern GL_MATRIX_STRIDE,
+  pattern GL_MAX,
+  pattern GL_MAX_3D_TEXTURE_SIZE,
+  pattern GL_MAX_ARRAY_TEXTURE_LAYERS,
+  pattern GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS,
+  pattern GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE,
+  pattern GL_MAX_ATTRIB_STACK_DEPTH,
+  pattern GL_MAX_CLIENT_ATTRIB_STACK_DEPTH,
+  pattern GL_MAX_CLIP_DISTANCES,
+  pattern GL_MAX_CLIP_PLANES,
+  pattern GL_MAX_COLOR_ATTACHMENTS,
+  pattern GL_MAX_COLOR_TEXTURE_SAMPLES,
+  pattern GL_MAX_COMBINED_ATOMIC_COUNTERS,
+  pattern GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_DIMENSIONS,
+  pattern GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_IMAGE_UNIFORMS,
+  pattern GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS,
+  pattern GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES,
+  pattern GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_COMBINED_UNIFORM_BLOCKS,
+  pattern GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMPUTE_ATOMIC_COUNTERS,
+  pattern GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_COMPUTE_IMAGE_UNIFORMS,
+  pattern GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_COMPUTE_SHARED_MEMORY_SIZE,
+  pattern GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_COMPUTE_UNIFORM_BLOCKS,
+  pattern GL_MAX_COMPUTE_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMPUTE_WORK_GROUP_COUNT,
+  pattern GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS,
+  pattern GL_MAX_COMPUTE_WORK_GROUP_SIZE,
+  pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE,
+  pattern GL_MAX_DEBUG_GROUP_STACK_DEPTH,
+  pattern GL_MAX_DEBUG_LOGGED_MESSAGES,
+  pattern GL_MAX_DEBUG_MESSAGE_LENGTH,
+  pattern GL_MAX_DEPTH,
+  pattern GL_MAX_DEPTH_TEXTURE_SAMPLES,
+  pattern GL_MAX_DRAW_BUFFERS,
+  pattern GL_MAX_DUAL_SOURCE_DRAW_BUFFERS,
+  pattern GL_MAX_ELEMENTS_INDICES,
+  pattern GL_MAX_ELEMENTS_VERTICES,
+  pattern GL_MAX_ELEMENT_INDEX,
+  pattern GL_MAX_EVAL_ORDER,
+  pattern GL_MAX_FRAGMENT_ATOMIC_COUNTERS,
+  pattern GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_FRAGMENT_IMAGE_UNIFORMS,
+  pattern GL_MAX_FRAGMENT_INPUT_COMPONENTS,
+  pattern GL_MAX_FRAGMENT_INTERPOLATION_OFFSET,
+  pattern GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_FRAGMENT_UNIFORM_BLOCKS,
+  pattern GL_MAX_FRAGMENT_UNIFORM_COMPONENTS,
+  pattern GL_MAX_FRAGMENT_UNIFORM_VECTORS,
+  pattern GL_MAX_FRAMEBUFFER_HEIGHT,
+  pattern GL_MAX_FRAMEBUFFER_LAYERS,
+  pattern GL_MAX_FRAMEBUFFER_SAMPLES,
+  pattern GL_MAX_FRAMEBUFFER_WIDTH,
+  pattern GL_MAX_GEOMETRY_ATOMIC_COUNTERS,
+  pattern GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_GEOMETRY_IMAGE_UNIFORMS,
+  pattern GL_MAX_GEOMETRY_INPUT_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_OUTPUT_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_OUTPUT_VERTICES,
+  pattern GL_MAX_GEOMETRY_SHADER_INVOCATIONS,
+  pattern GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_UNIFORM_BLOCKS,
+  pattern GL_MAX_GEOMETRY_UNIFORM_COMPONENTS,
+  pattern GL_MAX_HEIGHT,
+  pattern GL_MAX_IMAGE_SAMPLES,
+  pattern GL_MAX_IMAGE_UNITS,
+  pattern GL_MAX_INTEGER_SAMPLES,
+  pattern GL_MAX_LABEL_LENGTH,
+  pattern GL_MAX_LAYERS,
+  pattern GL_MAX_LIGHTS,
+  pattern GL_MAX_LIST_NESTING,
+  pattern GL_MAX_MODELVIEW_STACK_DEPTH,
+  pattern GL_MAX_NAME_LENGTH,
+  pattern GL_MAX_NAME_STACK_DEPTH,
+  pattern GL_MAX_NUM_ACTIVE_VARIABLES,
+  pattern GL_MAX_NUM_COMPATIBLE_SUBROUTINES,
+  pattern GL_MAX_PATCH_VERTICES,
+  pattern GL_MAX_PIXEL_MAP_TABLE,
+  pattern GL_MAX_PROGRAM_TEXEL_OFFSET,
+  pattern GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET,
+  pattern GL_MAX_PROJECTION_STACK_DEPTH,
+  pattern GL_MAX_RECTANGLE_TEXTURE_SIZE,
+  pattern GL_MAX_RENDERBUFFER_SIZE,
+  pattern GL_MAX_SAMPLES,
+  pattern GL_MAX_SAMPLE_MASK_WORDS,
+  pattern GL_MAX_SERVER_WAIT_TIMEOUT,
+  pattern GL_MAX_SHADER_STORAGE_BLOCK_SIZE,
+  pattern GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS,
+  pattern GL_MAX_SUBROUTINES,
+  pattern GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS,
+  pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS,
+  pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS,
+  pattern GL_MAX_TESS_CONTROL_INPUT_COMPONENTS,
+  pattern GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS,
+  pattern GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS,
+  pattern GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS,
+  pattern GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS,
+  pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS,
+  pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS,
+  pattern GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS,
+  pattern GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS,
+  pattern GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS,
+  pattern GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS,
+  pattern GL_MAX_TESS_GEN_LEVEL,
+  pattern GL_MAX_TESS_PATCH_COMPONENTS,
+  pattern GL_MAX_TEXTURE_BUFFER_SIZE,
+  pattern GL_MAX_TEXTURE_COORDS,
+  pattern GL_MAX_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_TEXTURE_LOD_BIAS,
+  pattern GL_MAX_TEXTURE_SIZE,
+  pattern GL_MAX_TEXTURE_STACK_DEPTH,
+  pattern GL_MAX_TEXTURE_UNITS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_BUFFERS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS,
+  pattern GL_MAX_UNIFORM_BLOCK_SIZE,
+  pattern GL_MAX_UNIFORM_BUFFER_BINDINGS,
+  pattern GL_MAX_UNIFORM_LOCATIONS,
+  pattern GL_MAX_VARYING_COMPONENTS,
+  pattern GL_MAX_VARYING_FLOATS,
+  pattern GL_MAX_VARYING_VECTORS,
+  pattern GL_MAX_VERTEX_ATOMIC_COUNTERS,
+  pattern GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_VERTEX_ATTRIBS,
+  pattern GL_MAX_VERTEX_ATTRIB_BINDINGS,
+  pattern GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET,
+  pattern GL_MAX_VERTEX_IMAGE_UNIFORMS,
+  pattern GL_MAX_VERTEX_OUTPUT_COMPONENTS,
+  pattern GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_VERTEX_STREAMS,
+  pattern GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_VERTEX_UNIFORM_BLOCKS,
+  pattern GL_MAX_VERTEX_UNIFORM_COMPONENTS,
+  pattern GL_MAX_VERTEX_UNIFORM_VECTORS,
+  pattern GL_MAX_VIEWPORTS,
+  pattern GL_MAX_VIEWPORT_DIMS,
+  pattern GL_MAX_WIDTH,
+  pattern GL_MEDIUM_FLOAT,
+  pattern GL_MEDIUM_INT,
+  pattern GL_MIN,
+  pattern GL_MINOR_VERSION,
+  pattern GL_MIN_FRAGMENT_INTERPOLATION_OFFSET,
+  pattern GL_MIN_MAP_BUFFER_ALIGNMENT,
+  pattern GL_MIN_PROGRAM_TEXEL_OFFSET,
+  pattern GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET,
+  pattern GL_MIN_SAMPLE_SHADING_VALUE,
+  pattern GL_MIPMAP,
+  pattern GL_MIRRORED_REPEAT,
+  pattern GL_MODELVIEW,
+  pattern GL_MODELVIEW_MATRIX,
+  pattern GL_MODELVIEW_STACK_DEPTH,
+  pattern GL_MODULATE,
+  pattern GL_MULT,
+  pattern GL_MULTISAMPLE,
+  pattern GL_MULTISAMPLE_BIT,
+  pattern GL_N3F_V3F,
+  pattern GL_NAME_LENGTH,
+  pattern GL_NAME_STACK_DEPTH,
+  pattern GL_NAND,
+  pattern GL_NEAREST,
+  pattern GL_NEAREST_MIPMAP_LINEAR,
+  pattern GL_NEAREST_MIPMAP_NEAREST,
+  pattern GL_NEVER,
+  pattern GL_NICEST,
+  pattern GL_NONE,
+  pattern GL_NOOP,
+  pattern GL_NOR,
+  pattern GL_NORMALIZE,
+  pattern GL_NORMAL_ARRAY,
+  pattern GL_NORMAL_ARRAY_BUFFER_BINDING,
+  pattern GL_NORMAL_ARRAY_POINTER,
+  pattern GL_NORMAL_ARRAY_STRIDE,
+  pattern GL_NORMAL_ARRAY_TYPE,
+  pattern GL_NORMAL_MAP,
+  pattern GL_NOTEQUAL,
+  pattern GL_NO_ERROR,
+  pattern GL_NUM_ACTIVE_VARIABLES,
+  pattern GL_NUM_COMPATIBLE_SUBROUTINES,
+  pattern GL_NUM_COMPRESSED_TEXTURE_FORMATS,
+  pattern GL_NUM_EXTENSIONS,
+  pattern GL_NUM_PROGRAM_BINARY_FORMATS,
+  pattern GL_NUM_SAMPLE_COUNTS,
+  pattern GL_NUM_SHADER_BINARY_FORMATS,
+  pattern GL_NUM_SHADING_LANGUAGE_VERSIONS,
+  pattern GL_OBJECT_LINEAR,
+  pattern GL_OBJECT_PLANE,
+  pattern GL_OBJECT_TYPE,
+  pattern GL_OFFSET,
+  pattern GL_ONE,
+  pattern GL_ONE_MINUS_CONSTANT_ALPHA,
+  pattern GL_ONE_MINUS_CONSTANT_COLOR,
+  pattern GL_ONE_MINUS_DST_ALPHA,
+  pattern GL_ONE_MINUS_DST_COLOR,
+  pattern GL_ONE_MINUS_SRC1_ALPHA,
+  pattern GL_ONE_MINUS_SRC1_COLOR,
+  pattern GL_ONE_MINUS_SRC_ALPHA,
+  pattern GL_ONE_MINUS_SRC_COLOR,
+  pattern GL_OPERAND0_ALPHA,
+  pattern GL_OPERAND0_RGB,
+  pattern GL_OPERAND1_ALPHA,
+  pattern GL_OPERAND1_RGB,
+  pattern GL_OPERAND2_ALPHA,
+  pattern GL_OPERAND2_RGB,
+  pattern GL_OR,
+  pattern GL_ORDER,
+  pattern GL_OR_INVERTED,
+  pattern GL_OR_REVERSE,
+  pattern GL_OUT_OF_MEMORY,
+  pattern GL_PACK_ALIGNMENT,
+  pattern GL_PACK_COMPRESSED_BLOCK_DEPTH,
+  pattern GL_PACK_COMPRESSED_BLOCK_HEIGHT,
+  pattern GL_PACK_COMPRESSED_BLOCK_SIZE,
+  pattern GL_PACK_COMPRESSED_BLOCK_WIDTH,
+  pattern GL_PACK_IMAGE_HEIGHT,
+  pattern GL_PACK_LSB_FIRST,
+  pattern GL_PACK_ROW_LENGTH,
+  pattern GL_PACK_SKIP_IMAGES,
+  pattern GL_PACK_SKIP_PIXELS,
+  pattern GL_PACK_SKIP_ROWS,
+  pattern GL_PACK_SWAP_BYTES,
+  pattern GL_PASS_THROUGH_TOKEN,
+  pattern GL_PATCHES,
+  pattern GL_PATCH_DEFAULT_INNER_LEVEL,
+  pattern GL_PATCH_DEFAULT_OUTER_LEVEL,
+  pattern GL_PATCH_VERTICES,
+  pattern GL_PERSPECTIVE_CORRECTION_HINT,
+  pattern GL_PIXEL_BUFFER_BARRIER_BIT,
+  pattern GL_PIXEL_MAP_A_TO_A,
+  pattern GL_PIXEL_MAP_A_TO_A_SIZE,
+  pattern GL_PIXEL_MAP_B_TO_B,
+  pattern GL_PIXEL_MAP_B_TO_B_SIZE,
+  pattern GL_PIXEL_MAP_G_TO_G,
+  pattern GL_PIXEL_MAP_G_TO_G_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_A,
+  pattern GL_PIXEL_MAP_I_TO_A_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_B,
+  pattern GL_PIXEL_MAP_I_TO_B_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_G,
+  pattern GL_PIXEL_MAP_I_TO_G_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_I,
+  pattern GL_PIXEL_MAP_I_TO_I_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_R,
+  pattern GL_PIXEL_MAP_I_TO_R_SIZE,
+  pattern GL_PIXEL_MAP_R_TO_R,
+  pattern GL_PIXEL_MAP_R_TO_R_SIZE,
+  pattern GL_PIXEL_MAP_S_TO_S,
+  pattern GL_PIXEL_MAP_S_TO_S_SIZE,
+  pattern GL_PIXEL_MODE_BIT,
+  pattern GL_PIXEL_PACK_BUFFER,
+  pattern GL_PIXEL_PACK_BUFFER_BINDING,
+  pattern GL_PIXEL_UNPACK_BUFFER,
+  pattern GL_PIXEL_UNPACK_BUFFER_BINDING,
+  pattern GL_POINT,
+  pattern GL_POINTS,
+  pattern GL_POINT_BIT,
+  pattern GL_POINT_DISTANCE_ATTENUATION,
+  pattern GL_POINT_FADE_THRESHOLD_SIZE,
+  pattern GL_POINT_SIZE,
+  pattern GL_POINT_SIZE_GRANULARITY,
+  pattern GL_POINT_SIZE_MAX,
+  pattern GL_POINT_SIZE_MIN,
+  pattern GL_POINT_SIZE_RANGE,
+  pattern GL_POINT_SMOOTH,
+  pattern GL_POINT_SMOOTH_HINT,
+  pattern GL_POINT_SPRITE,
+  pattern GL_POINT_SPRITE_COORD_ORIGIN,
+  pattern GL_POINT_TOKEN,
+  pattern GL_POLYGON,
+  pattern GL_POLYGON_BIT,
+  pattern GL_POLYGON_MODE,
+  pattern GL_POLYGON_OFFSET_FACTOR,
+  pattern GL_POLYGON_OFFSET_FILL,
+  pattern GL_POLYGON_OFFSET_LINE,
+  pattern GL_POLYGON_OFFSET_POINT,
+  pattern GL_POLYGON_OFFSET_UNITS,
+  pattern GL_POLYGON_SMOOTH,
+  pattern GL_POLYGON_SMOOTH_HINT,
+  pattern GL_POLYGON_STIPPLE,
+  pattern GL_POLYGON_STIPPLE_BIT,
+  pattern GL_POLYGON_TOKEN,
+  pattern GL_POSITION,
+  pattern GL_PREVIOUS,
+  pattern GL_PRIMARY_COLOR,
+  pattern GL_PRIMITIVES_GENERATED,
+  pattern GL_PRIMITIVE_RESTART,
+  pattern GL_PRIMITIVE_RESTART_FIXED_INDEX,
+  pattern GL_PRIMITIVE_RESTART_INDEX,
+  pattern GL_PROGRAM,
+  pattern GL_PROGRAM_BINARY_FORMATS,
+  pattern GL_PROGRAM_BINARY_LENGTH,
+  pattern GL_PROGRAM_BINARY_RETRIEVABLE_HINT,
+  pattern GL_PROGRAM_INPUT,
+  pattern GL_PROGRAM_OUTPUT,
+  pattern GL_PROGRAM_PIPELINE,
+  pattern GL_PROGRAM_PIPELINE_BINDING,
+  pattern GL_PROGRAM_POINT_SIZE,
+  pattern GL_PROGRAM_SEPARABLE,
+  pattern GL_PROJECTION,
+  pattern GL_PROJECTION_MATRIX,
+  pattern GL_PROJECTION_STACK_DEPTH,
+  pattern GL_PROVOKING_VERTEX,
+  pattern GL_PROXY_TEXTURE_1D,
+  pattern GL_PROXY_TEXTURE_1D_ARRAY,
+  pattern GL_PROXY_TEXTURE_2D,
+  pattern GL_PROXY_TEXTURE_2D_ARRAY,
+  pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE,
+  pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_PROXY_TEXTURE_3D,
+  pattern GL_PROXY_TEXTURE_CUBE_MAP,
+  pattern GL_PROXY_TEXTURE_CUBE_MAP_ARRAY,
+  pattern GL_PROXY_TEXTURE_RECTANGLE,
+  pattern GL_Q,
+  pattern GL_QUADRATIC_ATTENUATION,
+  pattern GL_QUADS,
+  pattern GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION,
+  pattern GL_QUAD_STRIP,
+  pattern GL_QUERY,
+  pattern GL_QUERY_BY_REGION_NO_WAIT,
+  pattern GL_QUERY_BY_REGION_WAIT,
+  pattern GL_QUERY_COUNTER_BITS,
+  pattern GL_QUERY_NO_WAIT,
+  pattern GL_QUERY_RESULT,
+  pattern GL_QUERY_RESULT_AVAILABLE,
+  pattern GL_QUERY_WAIT,
+  pattern GL_R,
+  pattern GL_R11F_G11F_B10F,
+  pattern GL_R16,
+  pattern GL_R16F,
+  pattern GL_R16I,
+  pattern GL_R16UI,
+  pattern GL_R16_SNORM,
+  pattern GL_R32F,
+  pattern GL_R32I,
+  pattern GL_R32UI,
+  pattern GL_R3_G3_B2,
+  pattern GL_R8,
+  pattern GL_R8I,
+  pattern GL_R8UI,
+  pattern GL_R8_SNORM,
+  pattern GL_RASTERIZER_DISCARD,
+  pattern GL_READ_BUFFER,
+  pattern GL_READ_FRAMEBUFFER,
+  pattern GL_READ_FRAMEBUFFER_BINDING,
+  pattern GL_READ_ONLY,
+  pattern GL_READ_PIXELS,
+  pattern GL_READ_PIXELS_FORMAT,
+  pattern GL_READ_PIXELS_TYPE,
+  pattern GL_READ_WRITE,
+  pattern GL_RED,
+  pattern GL_RED_BIAS,
+  pattern GL_RED_BITS,
+  pattern GL_RED_INTEGER,
+  pattern GL_RED_SCALE,
+  pattern GL_REFERENCED_BY_COMPUTE_SHADER,
+  pattern GL_REFERENCED_BY_FRAGMENT_SHADER,
+  pattern GL_REFERENCED_BY_GEOMETRY_SHADER,
+  pattern GL_REFERENCED_BY_TESS_CONTROL_SHADER,
+  pattern GL_REFERENCED_BY_TESS_EVALUATION_SHADER,
+  pattern GL_REFERENCED_BY_VERTEX_SHADER,
+  pattern GL_REFLECTION_MAP,
+  pattern GL_RENDER,
+  pattern GL_RENDERBUFFER,
+  pattern GL_RENDERBUFFER_ALPHA_SIZE,
+  pattern GL_RENDERBUFFER_BINDING,
+  pattern GL_RENDERBUFFER_BLUE_SIZE,
+  pattern GL_RENDERBUFFER_DEPTH_SIZE,
+  pattern GL_RENDERBUFFER_GREEN_SIZE,
+  pattern GL_RENDERBUFFER_HEIGHT,
+  pattern GL_RENDERBUFFER_INTERNAL_FORMAT,
+  pattern GL_RENDERBUFFER_RED_SIZE,
+  pattern GL_RENDERBUFFER_SAMPLES,
+  pattern GL_RENDERBUFFER_STENCIL_SIZE,
+  pattern GL_RENDERBUFFER_WIDTH,
+  pattern GL_RENDERER,
+  pattern GL_RENDER_MODE,
+  pattern GL_REPEAT,
+  pattern GL_REPLACE,
+  pattern GL_RESCALE_NORMAL,
+  pattern GL_RETURN,
+  pattern GL_RG,
+  pattern GL_RG16,
+  pattern GL_RG16F,
+  pattern GL_RG16I,
+  pattern GL_RG16UI,
+  pattern GL_RG16_SNORM,
+  pattern GL_RG32F,
+  pattern GL_RG32I,
+  pattern GL_RG32UI,
+  pattern GL_RG8,
+  pattern GL_RG8I,
+  pattern GL_RG8UI,
+  pattern GL_RG8_SNORM,
+  pattern GL_RGB,
+  pattern GL_RGB10,
+  pattern GL_RGB10_A2,
+  pattern GL_RGB10_A2UI,
+  pattern GL_RGB12,
+  pattern GL_RGB16,
+  pattern GL_RGB16F,
+  pattern GL_RGB16I,
+  pattern GL_RGB16UI,
+  pattern GL_RGB16_SNORM,
+  pattern GL_RGB32F,
+  pattern GL_RGB32I,
+  pattern GL_RGB32UI,
+  pattern GL_RGB4,
+  pattern GL_RGB5,
+  pattern GL_RGB565,
+  pattern GL_RGB5_A1,
+  pattern GL_RGB8,
+  pattern GL_RGB8I,
+  pattern GL_RGB8UI,
+  pattern GL_RGB8_SNORM,
+  pattern GL_RGB9_E5,
+  pattern GL_RGBA,
+  pattern GL_RGBA12,
+  pattern GL_RGBA16,
+  pattern GL_RGBA16F,
+  pattern GL_RGBA16I,
+  pattern GL_RGBA16UI,
+  pattern GL_RGBA16_SNORM,
+  pattern GL_RGBA2,
+  pattern GL_RGBA32F,
+  pattern GL_RGBA32I,
+  pattern GL_RGBA32UI,
+  pattern GL_RGBA4,
+  pattern GL_RGBA8,
+  pattern GL_RGBA8I,
+  pattern GL_RGBA8UI,
+  pattern GL_RGBA8_SNORM,
+  pattern GL_RGBA_INTEGER,
+  pattern GL_RGBA_MODE,
+  pattern GL_RGB_INTEGER,
+  pattern GL_RGB_SCALE,
+  pattern GL_RG_INTEGER,
+  pattern GL_RIGHT,
+  pattern GL_S,
+  pattern GL_SAMPLER,
+  pattern GL_SAMPLER_1D,
+  pattern GL_SAMPLER_1D_ARRAY,
+  pattern GL_SAMPLER_1D_ARRAY_SHADOW,
+  pattern GL_SAMPLER_1D_SHADOW,
+  pattern GL_SAMPLER_2D,
+  pattern GL_SAMPLER_2D_ARRAY,
+  pattern GL_SAMPLER_2D_ARRAY_SHADOW,
+  pattern GL_SAMPLER_2D_MULTISAMPLE,
+  pattern GL_SAMPLER_2D_MULTISAMPLE_ARRAY,
+  pattern GL_SAMPLER_2D_RECT,
+  pattern GL_SAMPLER_2D_RECT_SHADOW,
+  pattern GL_SAMPLER_2D_SHADOW,
+  pattern GL_SAMPLER_3D,
+  pattern GL_SAMPLER_BINDING,
+  pattern GL_SAMPLER_BUFFER,
+  pattern GL_SAMPLER_CUBE,
+  pattern GL_SAMPLER_CUBE_MAP_ARRAY,
+  pattern GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW,
+  pattern GL_SAMPLER_CUBE_SHADOW,
+  pattern GL_SAMPLES,
+  pattern GL_SAMPLES_PASSED,
+  pattern GL_SAMPLE_ALPHA_TO_COVERAGE,
+  pattern GL_SAMPLE_ALPHA_TO_ONE,
+  pattern GL_SAMPLE_BUFFERS,
+  pattern GL_SAMPLE_COVERAGE,
+  pattern GL_SAMPLE_COVERAGE_INVERT,
+  pattern GL_SAMPLE_COVERAGE_VALUE,
+  pattern GL_SAMPLE_MASK,
+  pattern GL_SAMPLE_MASK_VALUE,
+  pattern GL_SAMPLE_POSITION,
+  pattern GL_SAMPLE_SHADING,
+  pattern GL_SCISSOR_BIT,
+  pattern GL_SCISSOR_BOX,
+  pattern GL_SCISSOR_TEST,
+  pattern GL_SECONDARY_COLOR_ARRAY,
+  pattern GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING,
+  pattern GL_SECONDARY_COLOR_ARRAY_POINTER,
+  pattern GL_SECONDARY_COLOR_ARRAY_SIZE,
+  pattern GL_SECONDARY_COLOR_ARRAY_STRIDE,
+  pattern GL_SECONDARY_COLOR_ARRAY_TYPE,
+  pattern GL_SELECT,
+  pattern GL_SELECTION_BUFFER_POINTER,
+  pattern GL_SELECTION_BUFFER_SIZE,
+  pattern GL_SEPARATE_ATTRIBS,
+  pattern GL_SEPARATE_SPECULAR_COLOR,
+  pattern GL_SET,
+  pattern GL_SHADER,
+  pattern GL_SHADER_BINARY_FORMATS,
+  pattern GL_SHADER_COMPILER,
+  pattern GL_SHADER_IMAGE_ACCESS_BARRIER_BIT,
+  pattern GL_SHADER_IMAGE_ATOMIC,
+  pattern GL_SHADER_IMAGE_LOAD,
+  pattern GL_SHADER_IMAGE_STORE,
+  pattern GL_SHADER_SOURCE_LENGTH,
+  pattern GL_SHADER_STORAGE_BARRIER_BIT,
+  pattern GL_SHADER_STORAGE_BLOCK,
+  pattern GL_SHADER_STORAGE_BUFFER,
+  pattern GL_SHADER_STORAGE_BUFFER_BINDING,
+  pattern GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT,
+  pattern GL_SHADER_STORAGE_BUFFER_SIZE,
+  pattern GL_SHADER_STORAGE_BUFFER_START,
+  pattern GL_SHADER_TYPE,
+  pattern GL_SHADE_MODEL,
+  pattern GL_SHADING_LANGUAGE_VERSION,
+  pattern GL_SHININESS,
+  pattern GL_SHORT,
+  pattern GL_SIGNALED,
+  pattern GL_SIGNED_NORMALIZED,
+  pattern GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST,
+  pattern GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE,
+  pattern GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST,
+  pattern GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE,
+  pattern GL_SINGLE_COLOR,
+  pattern GL_SLUMINANCE,
+  pattern GL_SLUMINANCE8,
+  pattern GL_SLUMINANCE8_ALPHA8,
+  pattern GL_SLUMINANCE_ALPHA,
+  pattern GL_SMOOTH,
+  pattern GL_SMOOTH_LINE_WIDTH_GRANULARITY,
+  pattern GL_SMOOTH_LINE_WIDTH_RANGE,
+  pattern GL_SMOOTH_POINT_SIZE_GRANULARITY,
+  pattern GL_SMOOTH_POINT_SIZE_RANGE,
+  pattern GL_SOURCE0_ALPHA,
+  pattern GL_SOURCE0_RGB,
+  pattern GL_SOURCE1_ALPHA,
+  pattern GL_SOURCE1_RGB,
+  pattern GL_SOURCE2_ALPHA,
+  pattern GL_SOURCE2_RGB,
+  pattern GL_SPECULAR,
+  pattern GL_SPHERE_MAP,
+  pattern GL_SPOT_CUTOFF,
+  pattern GL_SPOT_DIRECTION,
+  pattern GL_SPOT_EXPONENT,
+  pattern GL_SRC0_ALPHA,
+  pattern GL_SRC0_RGB,
+  pattern GL_SRC1_ALPHA,
+  pattern GL_SRC1_COLOR,
+  pattern GL_SRC1_RGB,
+  pattern GL_SRC2_ALPHA,
+  pattern GL_SRC2_RGB,
+  pattern GL_SRC_ALPHA,
+  pattern GL_SRC_ALPHA_SATURATE,
+  pattern GL_SRC_COLOR,
+  pattern GL_SRGB,
+  pattern GL_SRGB8,
+  pattern GL_SRGB8_ALPHA8,
+  pattern GL_SRGB_ALPHA,
+  pattern GL_SRGB_READ,
+  pattern GL_SRGB_WRITE,
+  pattern GL_STACK_OVERFLOW,
+  pattern GL_STACK_UNDERFLOW,
+  pattern GL_STATIC_COPY,
+  pattern GL_STATIC_DRAW,
+  pattern GL_STATIC_READ,
+  pattern GL_STENCIL,
+  pattern GL_STENCIL_ATTACHMENT,
+  pattern GL_STENCIL_BACK_FAIL,
+  pattern GL_STENCIL_BACK_FUNC,
+  pattern GL_STENCIL_BACK_PASS_DEPTH_FAIL,
+  pattern GL_STENCIL_BACK_PASS_DEPTH_PASS,
+  pattern GL_STENCIL_BACK_REF,
+  pattern GL_STENCIL_BACK_VALUE_MASK,
+  pattern GL_STENCIL_BACK_WRITEMASK,
+  pattern GL_STENCIL_BITS,
+  pattern GL_STENCIL_BUFFER_BIT,
+  pattern GL_STENCIL_CLEAR_VALUE,
+  pattern GL_STENCIL_COMPONENTS,
+  pattern GL_STENCIL_FAIL,
+  pattern GL_STENCIL_FUNC,
+  pattern GL_STENCIL_INDEX,
+  pattern GL_STENCIL_INDEX1,
+  pattern GL_STENCIL_INDEX16,
+  pattern GL_STENCIL_INDEX4,
+  pattern GL_STENCIL_INDEX8,
+  pattern GL_STENCIL_PASS_DEPTH_FAIL,
+  pattern GL_STENCIL_PASS_DEPTH_PASS,
+  pattern GL_STENCIL_REF,
+  pattern GL_STENCIL_RENDERABLE,
+  pattern GL_STENCIL_TEST,
+  pattern GL_STENCIL_VALUE_MASK,
+  pattern GL_STENCIL_WRITEMASK,
+  pattern GL_STEREO,
+  pattern GL_STREAM_COPY,
+  pattern GL_STREAM_DRAW,
+  pattern GL_STREAM_READ,
+  pattern GL_SUBPIXEL_BITS,
+  pattern GL_SUBTRACT,
+  pattern GL_SYNC_CONDITION,
+  pattern GL_SYNC_FENCE,
+  pattern GL_SYNC_FLAGS,
+  pattern GL_SYNC_FLUSH_COMMANDS_BIT,
+  pattern GL_SYNC_GPU_COMMANDS_COMPLETE,
+  pattern GL_SYNC_STATUS,
+  pattern GL_T,
+  pattern GL_T2F_C3F_V3F,
+  pattern GL_T2F_C4F_N3F_V3F,
+  pattern GL_T2F_C4UB_V3F,
+  pattern GL_T2F_N3F_V3F,
+  pattern GL_T2F_V3F,
+  pattern GL_T4F_C4F_N3F_V4F,
+  pattern GL_T4F_V4F,
+  pattern GL_TESS_CONTROL_OUTPUT_VERTICES,
+  pattern GL_TESS_CONTROL_SHADER,
+  pattern GL_TESS_CONTROL_SHADER_BIT,
+  pattern GL_TESS_CONTROL_SUBROUTINE,
+  pattern GL_TESS_CONTROL_SUBROUTINE_UNIFORM,
+  pattern GL_TESS_CONTROL_TEXTURE,
+  pattern GL_TESS_EVALUATION_SHADER,
+  pattern GL_TESS_EVALUATION_SHADER_BIT,
+  pattern GL_TESS_EVALUATION_SUBROUTINE,
+  pattern GL_TESS_EVALUATION_SUBROUTINE_UNIFORM,
+  pattern GL_TESS_EVALUATION_TEXTURE,
+  pattern GL_TESS_GEN_MODE,
+  pattern GL_TESS_GEN_POINT_MODE,
+  pattern GL_TESS_GEN_SPACING,
+  pattern GL_TESS_GEN_VERTEX_ORDER,
+  pattern GL_TEXTURE,
+  pattern GL_TEXTURE0,
+  pattern GL_TEXTURE1,
+  pattern GL_TEXTURE10,
+  pattern GL_TEXTURE11,
+  pattern GL_TEXTURE12,
+  pattern GL_TEXTURE13,
+  pattern GL_TEXTURE14,
+  pattern GL_TEXTURE15,
+  pattern GL_TEXTURE16,
+  pattern GL_TEXTURE17,
+  pattern GL_TEXTURE18,
+  pattern GL_TEXTURE19,
+  pattern GL_TEXTURE2,
+  pattern GL_TEXTURE20,
+  pattern GL_TEXTURE21,
+  pattern GL_TEXTURE22,
+  pattern GL_TEXTURE23,
+  pattern GL_TEXTURE24,
+  pattern GL_TEXTURE25,
+  pattern GL_TEXTURE26,
+  pattern GL_TEXTURE27,
+  pattern GL_TEXTURE28,
+  pattern GL_TEXTURE29,
+  pattern GL_TEXTURE3,
+  pattern GL_TEXTURE30,
+  pattern GL_TEXTURE31,
+  pattern GL_TEXTURE4,
+  pattern GL_TEXTURE5,
+  pattern GL_TEXTURE6,
+  pattern GL_TEXTURE7,
+  pattern GL_TEXTURE8,
+  pattern GL_TEXTURE9,
+  pattern GL_TEXTURE_1D,
+  pattern GL_TEXTURE_1D_ARRAY,
+  pattern GL_TEXTURE_2D,
+  pattern GL_TEXTURE_2D_ARRAY,
+  pattern GL_TEXTURE_2D_MULTISAMPLE,
+  pattern GL_TEXTURE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_TEXTURE_3D,
+  pattern GL_TEXTURE_ALPHA_SIZE,
+  pattern GL_TEXTURE_ALPHA_TYPE,
+  pattern GL_TEXTURE_BASE_LEVEL,
+  pattern GL_TEXTURE_BINDING_1D,
+  pattern GL_TEXTURE_BINDING_1D_ARRAY,
+  pattern GL_TEXTURE_BINDING_2D,
+  pattern GL_TEXTURE_BINDING_2D_ARRAY,
+  pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE,
+  pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY,
+  pattern GL_TEXTURE_BINDING_3D,
+  pattern GL_TEXTURE_BINDING_BUFFER,
+  pattern GL_TEXTURE_BINDING_CUBE_MAP,
+  pattern GL_TEXTURE_BINDING_CUBE_MAP_ARRAY,
+  pattern GL_TEXTURE_BINDING_RECTANGLE,
+  pattern GL_TEXTURE_BIT,
+  pattern GL_TEXTURE_BLUE_SIZE,
+  pattern GL_TEXTURE_BLUE_TYPE,
+  pattern GL_TEXTURE_BORDER,
+  pattern GL_TEXTURE_BORDER_COLOR,
+  pattern GL_TEXTURE_BUFFER,
+  pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING,
+  pattern GL_TEXTURE_BUFFER_OFFSET,
+  pattern GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT,
+  pattern GL_TEXTURE_BUFFER_SIZE,
+  pattern GL_TEXTURE_COMPARE_FUNC,
+  pattern GL_TEXTURE_COMPARE_MODE,
+  pattern GL_TEXTURE_COMPONENTS,
+  pattern GL_TEXTURE_COMPRESSED,
+  pattern GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT,
+  pattern GL_TEXTURE_COMPRESSED_BLOCK_SIZE,
+  pattern GL_TEXTURE_COMPRESSED_BLOCK_WIDTH,
+  pattern GL_TEXTURE_COMPRESSED_IMAGE_SIZE,
+  pattern GL_TEXTURE_COMPRESSION_HINT,
+  pattern GL_TEXTURE_COORD_ARRAY,
+  pattern GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING,
+  pattern GL_TEXTURE_COORD_ARRAY_POINTER,
+  pattern GL_TEXTURE_COORD_ARRAY_SIZE,
+  pattern GL_TEXTURE_COORD_ARRAY_STRIDE,
+  pattern GL_TEXTURE_COORD_ARRAY_TYPE,
+  pattern GL_TEXTURE_CUBE_MAP,
+  pattern GL_TEXTURE_CUBE_MAP_ARRAY,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z,
+  pattern GL_TEXTURE_CUBE_MAP_SEAMLESS,
+  pattern GL_TEXTURE_DEPTH,
+  pattern GL_TEXTURE_DEPTH_SIZE,
+  pattern GL_TEXTURE_DEPTH_TYPE,
+  pattern GL_TEXTURE_ENV,
+  pattern GL_TEXTURE_ENV_COLOR,
+  pattern GL_TEXTURE_ENV_MODE,
+  pattern GL_TEXTURE_FETCH_BARRIER_BIT,
+  pattern GL_TEXTURE_FILTER_CONTROL,
+  pattern GL_TEXTURE_FIXED_SAMPLE_LOCATIONS,
+  pattern GL_TEXTURE_GATHER,
+  pattern GL_TEXTURE_GATHER_SHADOW,
+  pattern GL_TEXTURE_GEN_MODE,
+  pattern GL_TEXTURE_GEN_Q,
+  pattern GL_TEXTURE_GEN_R,
+  pattern GL_TEXTURE_GEN_S,
+  pattern GL_TEXTURE_GEN_T,
+  pattern GL_TEXTURE_GREEN_SIZE,
+  pattern GL_TEXTURE_GREEN_TYPE,
+  pattern GL_TEXTURE_HEIGHT,
+  pattern GL_TEXTURE_IMAGE_FORMAT,
+  pattern GL_TEXTURE_IMAGE_TYPE,
+  pattern GL_TEXTURE_IMMUTABLE_FORMAT,
+  pattern GL_TEXTURE_IMMUTABLE_LEVELS,
+  pattern GL_TEXTURE_INTENSITY_SIZE,
+  pattern GL_TEXTURE_INTENSITY_TYPE,
+  pattern GL_TEXTURE_INTERNAL_FORMAT,
+  pattern GL_TEXTURE_LOD_BIAS,
+  pattern GL_TEXTURE_LUMINANCE_SIZE,
+  pattern GL_TEXTURE_LUMINANCE_TYPE,
+  pattern GL_TEXTURE_MAG_FILTER,
+  pattern GL_TEXTURE_MATRIX,
+  pattern GL_TEXTURE_MAX_LEVEL,
+  pattern GL_TEXTURE_MAX_LOD,
+  pattern GL_TEXTURE_MIN_FILTER,
+  pattern GL_TEXTURE_MIN_LOD,
+  pattern GL_TEXTURE_PRIORITY,
+  pattern GL_TEXTURE_RECTANGLE,
+  pattern GL_TEXTURE_RED_SIZE,
+  pattern GL_TEXTURE_RED_TYPE,
+  pattern GL_TEXTURE_RESIDENT,
+  pattern GL_TEXTURE_SAMPLES,
+  pattern GL_TEXTURE_SHADOW,
+  pattern GL_TEXTURE_SHARED_SIZE,
+  pattern GL_TEXTURE_STACK_DEPTH,
+  pattern GL_TEXTURE_STENCIL_SIZE,
+  pattern GL_TEXTURE_SWIZZLE_A,
+  pattern GL_TEXTURE_SWIZZLE_B,
+  pattern GL_TEXTURE_SWIZZLE_G,
+  pattern GL_TEXTURE_SWIZZLE_R,
+  pattern GL_TEXTURE_SWIZZLE_RGBA,
+  pattern GL_TEXTURE_UPDATE_BARRIER_BIT,
+  pattern GL_TEXTURE_VIEW,
+  pattern GL_TEXTURE_VIEW_MIN_LAYER,
+  pattern GL_TEXTURE_VIEW_MIN_LEVEL,
+  pattern GL_TEXTURE_VIEW_NUM_LAYERS,
+  pattern GL_TEXTURE_VIEW_NUM_LEVELS,
+  pattern GL_TEXTURE_WIDTH,
+  pattern GL_TEXTURE_WRAP_R,
+  pattern GL_TEXTURE_WRAP_S,
+  pattern GL_TEXTURE_WRAP_T,
+  pattern GL_TIMEOUT_EXPIRED,
+  pattern GL_TIMEOUT_IGNORED,
+  pattern GL_TIMESTAMP,
+  pattern GL_TIME_ELAPSED,
+  pattern GL_TOP_LEVEL_ARRAY_SIZE,
+  pattern GL_TOP_LEVEL_ARRAY_STRIDE,
+  pattern GL_TRANSFORM_BIT,
+  pattern GL_TRANSFORM_FEEDBACK,
+  pattern GL_TRANSFORM_FEEDBACK_ACTIVE,
+  pattern GL_TRANSFORM_FEEDBACK_BARRIER_BIT,
+  pattern GL_TRANSFORM_FEEDBACK_BINDING,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_BINDING,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_MODE,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_SIZE,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_START,
+  pattern GL_TRANSFORM_FEEDBACK_PAUSED,
+  pattern GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN,
+  pattern GL_TRANSFORM_FEEDBACK_VARYING,
+  pattern GL_TRANSFORM_FEEDBACK_VARYINGS,
+  pattern GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH,
+  pattern GL_TRANSPOSE_COLOR_MATRIX,
+  pattern GL_TRANSPOSE_MODELVIEW_MATRIX,
+  pattern GL_TRANSPOSE_PROJECTION_MATRIX,
+  pattern GL_TRANSPOSE_TEXTURE_MATRIX,
+  pattern GL_TRIANGLES,
+  pattern GL_TRIANGLES_ADJACENCY,
+  pattern GL_TRIANGLE_FAN,
+  pattern GL_TRIANGLE_STRIP,
+  pattern GL_TRIANGLE_STRIP_ADJACENCY,
+  pattern GL_TRUE,
+  pattern GL_TYPE,
+  pattern GL_UNDEFINED_VERTEX,
+  pattern GL_UNIFORM,
+  pattern GL_UNIFORM_ARRAY_STRIDE,
+  pattern GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX,
+  pattern GL_UNIFORM_BARRIER_BIT,
+  pattern GL_UNIFORM_BLOCK,
+  pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS,
+  pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES,
+  pattern GL_UNIFORM_BLOCK_BINDING,
+  pattern GL_UNIFORM_BLOCK_DATA_SIZE,
+  pattern GL_UNIFORM_BLOCK_INDEX,
+  pattern GL_UNIFORM_BLOCK_NAME_LENGTH,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER,
+  pattern GL_UNIFORM_BUFFER,
+  pattern GL_UNIFORM_BUFFER_BINDING,
+  pattern GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT,
+  pattern GL_UNIFORM_BUFFER_SIZE,
+  pattern GL_UNIFORM_BUFFER_START,
+  pattern GL_UNIFORM_IS_ROW_MAJOR,
+  pattern GL_UNIFORM_MATRIX_STRIDE,
+  pattern GL_UNIFORM_NAME_LENGTH,
+  pattern GL_UNIFORM_OFFSET,
+  pattern GL_UNIFORM_SIZE,
+  pattern GL_UNIFORM_TYPE,
+  pattern GL_UNPACK_ALIGNMENT,
+  pattern GL_UNPACK_COMPRESSED_BLOCK_DEPTH,
+  pattern GL_UNPACK_COMPRESSED_BLOCK_HEIGHT,
+  pattern GL_UNPACK_COMPRESSED_BLOCK_SIZE,
+  pattern GL_UNPACK_COMPRESSED_BLOCK_WIDTH,
+  pattern GL_UNPACK_IMAGE_HEIGHT,
+  pattern GL_UNPACK_LSB_FIRST,
+  pattern GL_UNPACK_ROW_LENGTH,
+  pattern GL_UNPACK_SKIP_IMAGES,
+  pattern GL_UNPACK_SKIP_PIXELS,
+  pattern GL_UNPACK_SKIP_ROWS,
+  pattern GL_UNPACK_SWAP_BYTES,
+  pattern GL_UNSIGNALED,
+  pattern GL_UNSIGNED_BYTE,
+  pattern GL_UNSIGNED_BYTE_2_3_3_REV,
+  pattern GL_UNSIGNED_BYTE_3_3_2,
+  pattern GL_UNSIGNED_INT,
+  pattern GL_UNSIGNED_INT_10F_11F_11F_REV,
+  pattern GL_UNSIGNED_INT_10_10_10_2,
+  pattern GL_UNSIGNED_INT_24_8,
+  pattern GL_UNSIGNED_INT_2_10_10_10_REV,
+  pattern GL_UNSIGNED_INT_5_9_9_9_REV,
+  pattern GL_UNSIGNED_INT_8_8_8_8,
+  pattern GL_UNSIGNED_INT_8_8_8_8_REV,
+  pattern GL_UNSIGNED_INT_ATOMIC_COUNTER,
+  pattern GL_UNSIGNED_INT_IMAGE_1D,
+  pattern GL_UNSIGNED_INT_IMAGE_1D_ARRAY,
+  pattern GL_UNSIGNED_INT_IMAGE_2D,
+  pattern GL_UNSIGNED_INT_IMAGE_2D_ARRAY,
+  pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE,
+  pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_UNSIGNED_INT_IMAGE_2D_RECT,
+  pattern GL_UNSIGNED_INT_IMAGE_3D,
+  pattern GL_UNSIGNED_INT_IMAGE_BUFFER,
+  pattern GL_UNSIGNED_INT_IMAGE_CUBE,
+  pattern GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_1D,
+  pattern GL_UNSIGNED_INT_SAMPLER_1D_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_RECT,
+  pattern GL_UNSIGNED_INT_SAMPLER_3D,
+  pattern GL_UNSIGNED_INT_SAMPLER_BUFFER,
+  pattern GL_UNSIGNED_INT_SAMPLER_CUBE,
+  pattern GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY,
+  pattern GL_UNSIGNED_INT_VEC2,
+  pattern GL_UNSIGNED_INT_VEC3,
+  pattern GL_UNSIGNED_INT_VEC4,
+  pattern GL_UNSIGNED_NORMALIZED,
+  pattern GL_UNSIGNED_SHORT,
+  pattern GL_UNSIGNED_SHORT_1_5_5_5_REV,
+  pattern GL_UNSIGNED_SHORT_4_4_4_4,
+  pattern GL_UNSIGNED_SHORT_4_4_4_4_REV,
+  pattern GL_UNSIGNED_SHORT_5_5_5_1,
+  pattern GL_UNSIGNED_SHORT_5_6_5,
+  pattern GL_UNSIGNED_SHORT_5_6_5_REV,
+  pattern GL_UPPER_LEFT,
+  pattern GL_V2F,
+  pattern GL_V3F,
+  pattern GL_VALIDATE_STATUS,
+  pattern GL_VENDOR,
+  pattern GL_VERSION,
+  pattern GL_VERTEX_ARRAY,
+  pattern GL_VERTEX_ARRAY_BINDING,
+  pattern GL_VERTEX_ARRAY_BUFFER_BINDING,
+  pattern GL_VERTEX_ARRAY_POINTER,
+  pattern GL_VERTEX_ARRAY_SIZE,
+  pattern GL_VERTEX_ARRAY_STRIDE,
+  pattern GL_VERTEX_ARRAY_TYPE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT,
+  pattern GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING,
+  pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR,
+  pattern GL_VERTEX_ATTRIB_ARRAY_ENABLED,
+  pattern GL_VERTEX_ATTRIB_ARRAY_INTEGER,
+  pattern GL_VERTEX_ATTRIB_ARRAY_LONG,
+  pattern GL_VERTEX_ATTRIB_ARRAY_NORMALIZED,
+  pattern GL_VERTEX_ATTRIB_ARRAY_POINTER,
+  pattern GL_VERTEX_ATTRIB_ARRAY_SIZE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_STRIDE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_TYPE,
+  pattern GL_VERTEX_ATTRIB_BINDING,
+  pattern GL_VERTEX_ATTRIB_RELATIVE_OFFSET,
+  pattern GL_VERTEX_BINDING_BUFFER,
+  pattern GL_VERTEX_BINDING_DIVISOR,
+  pattern GL_VERTEX_BINDING_OFFSET,
+  pattern GL_VERTEX_BINDING_STRIDE,
+  pattern GL_VERTEX_PROGRAM_POINT_SIZE,
+  pattern GL_VERTEX_PROGRAM_TWO_SIDE,
+  pattern GL_VERTEX_SHADER,
+  pattern GL_VERTEX_SHADER_BIT,
+  pattern GL_VERTEX_SUBROUTINE,
+  pattern GL_VERTEX_SUBROUTINE_UNIFORM,
+  pattern GL_VERTEX_TEXTURE,
+  pattern GL_VIEWPORT,
+  pattern GL_VIEWPORT_BIT,
+  pattern GL_VIEWPORT_BOUNDS_RANGE,
+  pattern GL_VIEWPORT_INDEX_PROVOKING_VERTEX,
+  pattern GL_VIEWPORT_SUBPIXEL_BITS,
+  pattern GL_VIEW_CLASS_128_BITS,
+  pattern GL_VIEW_CLASS_16_BITS,
+  pattern GL_VIEW_CLASS_24_BITS,
+  pattern GL_VIEW_CLASS_32_BITS,
+  pattern GL_VIEW_CLASS_48_BITS,
+  pattern GL_VIEW_CLASS_64_BITS,
+  pattern GL_VIEW_CLASS_8_BITS,
+  pattern GL_VIEW_CLASS_96_BITS,
+  pattern GL_VIEW_CLASS_BPTC_FLOAT,
+  pattern GL_VIEW_CLASS_BPTC_UNORM,
+  pattern GL_VIEW_CLASS_RGTC1_RED,
+  pattern GL_VIEW_CLASS_RGTC2_RG,
+  pattern GL_VIEW_CLASS_S3TC_DXT1_RGB,
+  pattern GL_VIEW_CLASS_S3TC_DXT1_RGBA,
+  pattern GL_VIEW_CLASS_S3TC_DXT3_RGBA,
+  pattern GL_VIEW_CLASS_S3TC_DXT5_RGBA,
+  pattern GL_VIEW_COMPATIBILITY_CLASS,
+  pattern GL_WAIT_FAILED,
+  pattern GL_WEIGHT_ARRAY_BUFFER_BINDING,
+  pattern GL_WRITE_ONLY,
+  pattern GL_XOR,
+  pattern GL_ZERO,
+  pattern GL_ZOOM_X,
+  pattern GL_ZOOM_Y,
+  -- * Functions
+  glAccum,
+  glActiveShaderProgram,
+  glActiveTexture,
+  glAlphaFunc,
+  glAreTexturesResident,
+  glArrayElement,
+  glAttachShader,
+  glBegin,
+  glBeginConditionalRender,
+  glBeginQuery,
+  glBeginQueryIndexed,
+  glBeginTransformFeedback,
+  glBindAttribLocation,
+  glBindBuffer,
+  glBindBufferBase,
+  glBindBufferRange,
+  glBindFragDataLocation,
+  glBindFragDataLocationIndexed,
+  glBindFramebuffer,
+  glBindImageTexture,
+  glBindProgramPipeline,
+  glBindRenderbuffer,
+  glBindSampler,
+  glBindTexture,
+  glBindTransformFeedback,
+  glBindVertexArray,
+  glBindVertexBuffer,
+  glBitmap,
+  glBlendColor,
+  glBlendEquation,
+  glBlendEquationSeparate,
+  glBlendEquationSeparatei,
+  glBlendEquationi,
+  glBlendFunc,
+  glBlendFuncSeparate,
+  glBlendFuncSeparatei,
+  glBlendFunci,
+  glBlitFramebuffer,
+  glBufferData,
+  glBufferSubData,
+  glCallList,
+  glCallLists,
+  glCheckFramebufferStatus,
+  glClampColor,
+  glClear,
+  glClearAccum,
+  glClearBufferData,
+  glClearBufferSubData,
+  glClearBufferfi,
+  glClearBufferfv,
+  glClearBufferiv,
+  glClearBufferuiv,
+  glClearColor,
+  glClearDepth,
+  glClearDepthf,
+  glClearIndex,
+  glClearStencil,
+  glClientActiveTexture,
+  glClientWaitSync,
+  glClipPlane,
+  glColor3b,
+  glColor3bv,
+  glColor3d,
+  glColor3dv,
+  glColor3f,
+  glColor3fv,
+  glColor3i,
+  glColor3iv,
+  glColor3s,
+  glColor3sv,
+  glColor3ub,
+  glColor3ubv,
+  glColor3ui,
+  glColor3uiv,
+  glColor3us,
+  glColor3usv,
+  glColor4b,
+  glColor4bv,
+  glColor4d,
+  glColor4dv,
+  glColor4f,
+  glColor4fv,
+  glColor4i,
+  glColor4iv,
+  glColor4s,
+  glColor4sv,
+  glColor4ub,
+  glColor4ubv,
+  glColor4ui,
+  glColor4uiv,
+  glColor4us,
+  glColor4usv,
+  glColorMask,
+  glColorMaski,
+  glColorMaterial,
+  glColorP3ui,
+  glColorP3uiv,
+  glColorP4ui,
+  glColorP4uiv,
+  glColorPointer,
+  glCompileShader,
+  glCompressedTexImage1D,
+  glCompressedTexImage2D,
+  glCompressedTexImage3D,
+  glCompressedTexSubImage1D,
+  glCompressedTexSubImage2D,
+  glCompressedTexSubImage3D,
+  glCopyBufferSubData,
+  glCopyImageSubData,
+  glCopyPixels,
+  glCopyTexImage1D,
+  glCopyTexImage2D,
+  glCopyTexSubImage1D,
+  glCopyTexSubImage2D,
+  glCopyTexSubImage3D,
+  glCreateProgram,
+  glCreateShader,
+  glCreateShaderProgramv,
+  glCullFace,
+  glDebugMessageCallback,
+  glDebugMessageControl,
+  glDebugMessageInsert,
+  glDeleteBuffers,
+  glDeleteFramebuffers,
+  glDeleteLists,
+  glDeleteProgram,
+  glDeleteProgramPipelines,
+  glDeleteQueries,
+  glDeleteRenderbuffers,
+  glDeleteSamplers,
+  glDeleteShader,
+  glDeleteSync,
+  glDeleteTextures,
+  glDeleteTransformFeedbacks,
+  glDeleteVertexArrays,
+  glDepthFunc,
+  glDepthMask,
+  glDepthRange,
+  glDepthRangeArrayv,
+  glDepthRangeIndexed,
+  glDepthRangef,
+  glDetachShader,
+  glDisable,
+  glDisableClientState,
+  glDisableVertexAttribArray,
+  glDisablei,
+  glDispatchCompute,
+  glDispatchComputeIndirect,
+  glDrawArrays,
+  glDrawArraysIndirect,
+  glDrawArraysInstanced,
+  glDrawArraysInstancedBaseInstance,
+  glDrawBuffer,
+  glDrawBuffers,
+  glDrawElements,
+  glDrawElementsBaseVertex,
+  glDrawElementsIndirect,
+  glDrawElementsInstanced,
+  glDrawElementsInstancedBaseInstance,
+  glDrawElementsInstancedBaseVertex,
+  glDrawElementsInstancedBaseVertexBaseInstance,
+  glDrawPixels,
+  glDrawRangeElements,
+  glDrawRangeElementsBaseVertex,
+  glDrawTransformFeedback,
+  glDrawTransformFeedbackInstanced,
+  glDrawTransformFeedbackStream,
+  glDrawTransformFeedbackStreamInstanced,
+  glEdgeFlag,
+  glEdgeFlagPointer,
+  glEdgeFlagv,
+  glEnable,
+  glEnableClientState,
+  glEnableVertexAttribArray,
+  glEnablei,
+  glEnd,
+  glEndConditionalRender,
+  glEndList,
+  glEndQuery,
+  glEndQueryIndexed,
+  glEndTransformFeedback,
+  glEvalCoord1d,
+  glEvalCoord1dv,
+  glEvalCoord1f,
+  glEvalCoord1fv,
+  glEvalCoord2d,
+  glEvalCoord2dv,
+  glEvalCoord2f,
+  glEvalCoord2fv,
+  glEvalMesh1,
+  glEvalMesh2,
+  glEvalPoint1,
+  glEvalPoint2,
+  glFeedbackBuffer,
+  glFenceSync,
+  glFinish,
+  glFlush,
+  glFlushMappedBufferRange,
+  glFogCoordPointer,
+  glFogCoordd,
+  glFogCoorddv,
+  glFogCoordf,
+  glFogCoordfv,
+  glFogf,
+  glFogfv,
+  glFogi,
+  glFogiv,
+  glFramebufferParameteri,
+  glFramebufferRenderbuffer,
+  glFramebufferTexture,
+  glFramebufferTexture1D,
+  glFramebufferTexture2D,
+  glFramebufferTexture3D,
+  glFramebufferTextureLayer,
+  glFrontFace,
+  glFrustum,
+  glGenBuffers,
+  glGenFramebuffers,
+  glGenLists,
+  glGenProgramPipelines,
+  glGenQueries,
+  glGenRenderbuffers,
+  glGenSamplers,
+  glGenTextures,
+  glGenTransformFeedbacks,
+  glGenVertexArrays,
+  glGenerateMipmap,
+  glGetActiveAtomicCounterBufferiv,
+  glGetActiveAttrib,
+  glGetActiveSubroutineName,
+  glGetActiveSubroutineUniformName,
+  glGetActiveSubroutineUniformiv,
+  glGetActiveUniform,
+  glGetActiveUniformBlockName,
+  glGetActiveUniformBlockiv,
+  glGetActiveUniformName,
+  glGetActiveUniformsiv,
+  glGetAttachedShaders,
+  glGetAttribLocation,
+  glGetBooleani_v,
+  glGetBooleanv,
+  glGetBufferParameteri64v,
+  glGetBufferParameteriv,
+  glGetBufferPointerv,
+  glGetBufferSubData,
+  glGetClipPlane,
+  glGetCompressedTexImage,
+  glGetDebugMessageLog,
+  glGetDoublei_v,
+  glGetDoublev,
+  glGetError,
+  glGetFloati_v,
+  glGetFloatv,
+  glGetFragDataIndex,
+  glGetFragDataLocation,
+  glGetFramebufferAttachmentParameteriv,
+  glGetFramebufferParameteriv,
+  glGetInteger64i_v,
+  glGetInteger64v,
+  glGetIntegeri_v,
+  glGetIntegerv,
+  glGetInternalformati64v,
+  glGetInternalformativ,
+  glGetLightfv,
+  glGetLightiv,
+  glGetMapdv,
+  glGetMapfv,
+  glGetMapiv,
+  glGetMaterialfv,
+  glGetMaterialiv,
+  glGetMultisamplefv,
+  glGetObjectLabel,
+  glGetObjectPtrLabel,
+  glGetPixelMapfv,
+  glGetPixelMapuiv,
+  glGetPixelMapusv,
+  glGetPointerv,
+  glGetPolygonStipple,
+  glGetProgramBinary,
+  glGetProgramInfoLog,
+  glGetProgramInterfaceiv,
+  glGetProgramPipelineInfoLog,
+  glGetProgramPipelineiv,
+  glGetProgramResourceIndex,
+  glGetProgramResourceLocation,
+  glGetProgramResourceLocationIndex,
+  glGetProgramResourceName,
+  glGetProgramResourceiv,
+  glGetProgramStageiv,
+  glGetProgramiv,
+  glGetQueryIndexediv,
+  glGetQueryObjecti64v,
+  glGetQueryObjectiv,
+  glGetQueryObjectui64v,
+  glGetQueryObjectuiv,
+  glGetQueryiv,
+  glGetRenderbufferParameteriv,
+  glGetSamplerParameterIiv,
+  glGetSamplerParameterIuiv,
+  glGetSamplerParameterfv,
+  glGetSamplerParameteriv,
+  glGetShaderInfoLog,
+  glGetShaderPrecisionFormat,
+  glGetShaderSource,
+  glGetShaderiv,
+  glGetString,
+  glGetStringi,
+  glGetSubroutineIndex,
+  glGetSubroutineUniformLocation,
+  glGetSynciv,
+  glGetTexEnvfv,
+  glGetTexEnviv,
+  glGetTexGendv,
+  glGetTexGenfv,
+  glGetTexGeniv,
+  glGetTexImage,
+  glGetTexLevelParameterfv,
+  glGetTexLevelParameteriv,
+  glGetTexParameterIiv,
+  glGetTexParameterIuiv,
+  glGetTexParameterfv,
+  glGetTexParameteriv,
+  glGetTransformFeedbackVarying,
+  glGetUniformBlockIndex,
+  glGetUniformIndices,
+  glGetUniformLocation,
+  glGetUniformSubroutineuiv,
+  glGetUniformdv,
+  glGetUniformfv,
+  glGetUniformiv,
+  glGetUniformuiv,
+  glGetVertexAttribIiv,
+  glGetVertexAttribIuiv,
+  glGetVertexAttribLdv,
+  glGetVertexAttribPointerv,
+  glGetVertexAttribdv,
+  glGetVertexAttribfv,
+  glGetVertexAttribiv,
+  glHint,
+  glIndexMask,
+  glIndexPointer,
+  glIndexd,
+  glIndexdv,
+  glIndexf,
+  glIndexfv,
+  glIndexi,
+  glIndexiv,
+  glIndexs,
+  glIndexsv,
+  glIndexub,
+  glIndexubv,
+  glInitNames,
+  glInterleavedArrays,
+  glInvalidateBufferData,
+  glInvalidateBufferSubData,
+  glInvalidateFramebuffer,
+  glInvalidateSubFramebuffer,
+  glInvalidateTexImage,
+  glInvalidateTexSubImage,
+  glIsBuffer,
+  glIsEnabled,
+  glIsEnabledi,
+  glIsFramebuffer,
+  glIsList,
+  glIsProgram,
+  glIsProgramPipeline,
+  glIsQuery,
+  glIsRenderbuffer,
+  glIsSampler,
+  glIsShader,
+  glIsSync,
+  glIsTexture,
+  glIsTransformFeedback,
+  glIsVertexArray,
+  glLightModelf,
+  glLightModelfv,
+  glLightModeli,
+  glLightModeliv,
+  glLightf,
+  glLightfv,
+  glLighti,
+  glLightiv,
+  glLineStipple,
+  glLineWidth,
+  glLinkProgram,
+  glListBase,
+  glLoadIdentity,
+  glLoadMatrixd,
+  glLoadMatrixf,
+  glLoadName,
+  glLoadTransposeMatrixd,
+  glLoadTransposeMatrixf,
+  glLogicOp,
+  glMap1d,
+  glMap1f,
+  glMap2d,
+  glMap2f,
+  glMapBuffer,
+  glMapBufferRange,
+  glMapGrid1d,
+  glMapGrid1f,
+  glMapGrid2d,
+  glMapGrid2f,
+  glMaterialf,
+  glMaterialfv,
+  glMateriali,
+  glMaterialiv,
+  glMatrixMode,
+  glMemoryBarrier,
+  glMinSampleShading,
+  glMultMatrixd,
+  glMultMatrixf,
+  glMultTransposeMatrixd,
+  glMultTransposeMatrixf,
+  glMultiDrawArrays,
+  glMultiDrawArraysIndirect,
+  glMultiDrawElements,
+  glMultiDrawElementsBaseVertex,
+  glMultiDrawElementsIndirect,
+  glMultiTexCoord1d,
+  glMultiTexCoord1dv,
+  glMultiTexCoord1f,
+  glMultiTexCoord1fv,
+  glMultiTexCoord1i,
+  glMultiTexCoord1iv,
+  glMultiTexCoord1s,
+  glMultiTexCoord1sv,
+  glMultiTexCoord2d,
+  glMultiTexCoord2dv,
+  glMultiTexCoord2f,
+  glMultiTexCoord2fv,
+  glMultiTexCoord2i,
+  glMultiTexCoord2iv,
+  glMultiTexCoord2s,
+  glMultiTexCoord2sv,
+  glMultiTexCoord3d,
+  glMultiTexCoord3dv,
+  glMultiTexCoord3f,
+  glMultiTexCoord3fv,
+  glMultiTexCoord3i,
+  glMultiTexCoord3iv,
+  glMultiTexCoord3s,
+  glMultiTexCoord3sv,
+  glMultiTexCoord4d,
+  glMultiTexCoord4dv,
+  glMultiTexCoord4f,
+  glMultiTexCoord4fv,
+  glMultiTexCoord4i,
+  glMultiTexCoord4iv,
+  glMultiTexCoord4s,
+  glMultiTexCoord4sv,
+  glMultiTexCoordP1ui,
+  glMultiTexCoordP1uiv,
+  glMultiTexCoordP2ui,
+  glMultiTexCoordP2uiv,
+  glMultiTexCoordP3ui,
+  glMultiTexCoordP3uiv,
+  glMultiTexCoordP4ui,
+  glMultiTexCoordP4uiv,
+  glNewList,
+  glNormal3b,
+  glNormal3bv,
+  glNormal3d,
+  glNormal3dv,
+  glNormal3f,
+  glNormal3fv,
+  glNormal3i,
+  glNormal3iv,
+  glNormal3s,
+  glNormal3sv,
+  glNormalP3ui,
+  glNormalP3uiv,
+  glNormalPointer,
+  glObjectLabel,
+  glObjectPtrLabel,
+  glOrtho,
+  glPassThrough,
+  glPatchParameterfv,
+  glPatchParameteri,
+  glPauseTransformFeedback,
+  glPixelMapfv,
+  glPixelMapuiv,
+  glPixelMapusv,
+  glPixelStoref,
+  glPixelStorei,
+  glPixelTransferf,
+  glPixelTransferi,
+  glPixelZoom,
+  glPointParameterf,
+  glPointParameterfv,
+  glPointParameteri,
+  glPointParameteriv,
+  glPointSize,
+  glPolygonMode,
+  glPolygonOffset,
+  glPolygonStipple,
+  glPopAttrib,
+  glPopClientAttrib,
+  glPopDebugGroup,
+  glPopMatrix,
+  glPopName,
+  glPrimitiveRestartIndex,
+  glPrioritizeTextures,
+  glProgramBinary,
+  glProgramParameteri,
+  glProgramUniform1d,
+  glProgramUniform1dv,
+  glProgramUniform1f,
+  glProgramUniform1fv,
+  glProgramUniform1i,
+  glProgramUniform1iv,
+  glProgramUniform1ui,
+  glProgramUniform1uiv,
+  glProgramUniform2d,
+  glProgramUniform2dv,
+  glProgramUniform2f,
+  glProgramUniform2fv,
+  glProgramUniform2i,
+  glProgramUniform2iv,
+  glProgramUniform2ui,
+  glProgramUniform2uiv,
+  glProgramUniform3d,
+  glProgramUniform3dv,
+  glProgramUniform3f,
+  glProgramUniform3fv,
+  glProgramUniform3i,
+  glProgramUniform3iv,
+  glProgramUniform3ui,
+  glProgramUniform3uiv,
+  glProgramUniform4d,
+  glProgramUniform4dv,
+  glProgramUniform4f,
+  glProgramUniform4fv,
+  glProgramUniform4i,
+  glProgramUniform4iv,
+  glProgramUniform4ui,
+  glProgramUniform4uiv,
+  glProgramUniformMatrix2dv,
+  glProgramUniformMatrix2fv,
+  glProgramUniformMatrix2x3dv,
+  glProgramUniformMatrix2x3fv,
+  glProgramUniformMatrix2x4dv,
+  glProgramUniformMatrix2x4fv,
+  glProgramUniformMatrix3dv,
+  glProgramUniformMatrix3fv,
+  glProgramUniformMatrix3x2dv,
+  glProgramUniformMatrix3x2fv,
+  glProgramUniformMatrix3x4dv,
+  glProgramUniformMatrix3x4fv,
+  glProgramUniformMatrix4dv,
+  glProgramUniformMatrix4fv,
+  glProgramUniformMatrix4x2dv,
+  glProgramUniformMatrix4x2fv,
+  glProgramUniformMatrix4x3dv,
+  glProgramUniformMatrix4x3fv,
+  glProvokingVertex,
+  glPushAttrib,
+  glPushClientAttrib,
+  glPushDebugGroup,
+  glPushMatrix,
+  glPushName,
+  glQueryCounter,
+  glRasterPos2d,
+  glRasterPos2dv,
+  glRasterPos2f,
+  glRasterPos2fv,
+  glRasterPos2i,
+  glRasterPos2iv,
+  glRasterPos2s,
+  glRasterPos2sv,
+  glRasterPos3d,
+  glRasterPos3dv,
+  glRasterPos3f,
+  glRasterPos3fv,
+  glRasterPos3i,
+  glRasterPos3iv,
+  glRasterPos3s,
+  glRasterPos3sv,
+  glRasterPos4d,
+  glRasterPos4dv,
+  glRasterPos4f,
+  glRasterPos4fv,
+  glRasterPos4i,
+  glRasterPos4iv,
+  glRasterPos4s,
+  glRasterPos4sv,
+  glReadBuffer,
+  glReadPixels,
+  glRectd,
+  glRectdv,
+  glRectf,
+  glRectfv,
+  glRecti,
+  glRectiv,
+  glRects,
+  glRectsv,
+  glReleaseShaderCompiler,
+  glRenderMode,
+  glRenderbufferStorage,
+  glRenderbufferStorageMultisample,
+  glResumeTransformFeedback,
+  glRotated,
+  glRotatef,
+  glSampleCoverage,
+  glSampleMaski,
+  glSamplerParameterIiv,
+  glSamplerParameterIuiv,
+  glSamplerParameterf,
+  glSamplerParameterfv,
+  glSamplerParameteri,
+  glSamplerParameteriv,
+  glScaled,
+  glScalef,
+  glScissor,
+  glScissorArrayv,
+  glScissorIndexed,
+  glScissorIndexedv,
+  glSecondaryColor3b,
+  glSecondaryColor3bv,
+  glSecondaryColor3d,
+  glSecondaryColor3dv,
+  glSecondaryColor3f,
+  glSecondaryColor3fv,
+  glSecondaryColor3i,
+  glSecondaryColor3iv,
+  glSecondaryColor3s,
+  glSecondaryColor3sv,
+  glSecondaryColor3ub,
+  glSecondaryColor3ubv,
+  glSecondaryColor3ui,
+  glSecondaryColor3uiv,
+  glSecondaryColor3us,
+  glSecondaryColor3usv,
+  glSecondaryColorP3ui,
+  glSecondaryColorP3uiv,
+  glSecondaryColorPointer,
+  glSelectBuffer,
+  glShadeModel,
+  glShaderBinary,
+  glShaderSource,
+  glShaderStorageBlockBinding,
+  glStencilFunc,
+  glStencilFuncSeparate,
+  glStencilMask,
+  glStencilMaskSeparate,
+  glStencilOp,
+  glStencilOpSeparate,
+  glTexBuffer,
+  glTexBufferRange,
+  glTexCoord1d,
+  glTexCoord1dv,
+  glTexCoord1f,
+  glTexCoord1fv,
+  glTexCoord1i,
+  glTexCoord1iv,
+  glTexCoord1s,
+  glTexCoord1sv,
+  glTexCoord2d,
+  glTexCoord2dv,
+  glTexCoord2f,
+  glTexCoord2fv,
+  glTexCoord2i,
+  glTexCoord2iv,
+  glTexCoord2s,
+  glTexCoord2sv,
+  glTexCoord3d,
+  glTexCoord3dv,
+  glTexCoord3f,
+  glTexCoord3fv,
+  glTexCoord3i,
+  glTexCoord3iv,
+  glTexCoord3s,
+  glTexCoord3sv,
+  glTexCoord4d,
+  glTexCoord4dv,
+  glTexCoord4f,
+  glTexCoord4fv,
+  glTexCoord4i,
+  glTexCoord4iv,
+  glTexCoord4s,
+  glTexCoord4sv,
+  glTexCoordP1ui,
+  glTexCoordP1uiv,
+  glTexCoordP2ui,
+  glTexCoordP2uiv,
+  glTexCoordP3ui,
+  glTexCoordP3uiv,
+  glTexCoordP4ui,
+  glTexCoordP4uiv,
+  glTexCoordPointer,
+  glTexEnvf,
+  glTexEnvfv,
+  glTexEnvi,
+  glTexEnviv,
+  glTexGend,
+  glTexGendv,
+  glTexGenf,
+  glTexGenfv,
+  glTexGeni,
+  glTexGeniv,
+  glTexImage1D,
+  glTexImage2D,
+  glTexImage2DMultisample,
+  glTexImage3D,
+  glTexImage3DMultisample,
+  glTexParameterIiv,
+  glTexParameterIuiv,
+  glTexParameterf,
+  glTexParameterfv,
+  glTexParameteri,
+  glTexParameteriv,
+  glTexStorage1D,
+  glTexStorage2D,
+  glTexStorage2DMultisample,
+  glTexStorage3D,
+  glTexStorage3DMultisample,
+  glTexSubImage1D,
+  glTexSubImage2D,
+  glTexSubImage3D,
+  glTextureView,
+  glTransformFeedbackVaryings,
+  glTranslated,
+  glTranslatef,
+  glUniform1d,
+  glUniform1dv,
+  glUniform1f,
+  glUniform1fv,
+  glUniform1i,
+  glUniform1iv,
+  glUniform1ui,
+  glUniform1uiv,
+  glUniform2d,
+  glUniform2dv,
+  glUniform2f,
+  glUniform2fv,
+  glUniform2i,
+  glUniform2iv,
+  glUniform2ui,
+  glUniform2uiv,
+  glUniform3d,
+  glUniform3dv,
+  glUniform3f,
+  glUniform3fv,
+  glUniform3i,
+  glUniform3iv,
+  glUniform3ui,
+  glUniform3uiv,
+  glUniform4d,
+  glUniform4dv,
+  glUniform4f,
+  glUniform4fv,
+  glUniform4i,
+  glUniform4iv,
+  glUniform4ui,
+  glUniform4uiv,
+  glUniformBlockBinding,
+  glUniformMatrix2dv,
+  glUniformMatrix2fv,
+  glUniformMatrix2x3dv,
+  glUniformMatrix2x3fv,
+  glUniformMatrix2x4dv,
+  glUniformMatrix2x4fv,
+  glUniformMatrix3dv,
+  glUniformMatrix3fv,
+  glUniformMatrix3x2dv,
+  glUniformMatrix3x2fv,
+  glUniformMatrix3x4dv,
+  glUniformMatrix3x4fv,
+  glUniformMatrix4dv,
+  glUniformMatrix4fv,
+  glUniformMatrix4x2dv,
+  glUniformMatrix4x2fv,
+  glUniformMatrix4x3dv,
+  glUniformMatrix4x3fv,
+  glUniformSubroutinesuiv,
+  glUnmapBuffer,
+  glUseProgram,
+  glUseProgramStages,
+  glValidateProgram,
+  glValidateProgramPipeline,
+  glVertex2d,
+  glVertex2dv,
+  glVertex2f,
+  glVertex2fv,
+  glVertex2i,
+  glVertex2iv,
+  glVertex2s,
+  glVertex2sv,
+  glVertex3d,
+  glVertex3dv,
+  glVertex3f,
+  glVertex3fv,
+  glVertex3i,
+  glVertex3iv,
+  glVertex3s,
+  glVertex3sv,
+  glVertex4d,
+  glVertex4dv,
+  glVertex4f,
+  glVertex4fv,
+  glVertex4i,
+  glVertex4iv,
+  glVertex4s,
+  glVertex4sv,
+  glVertexAttrib1d,
+  glVertexAttrib1dv,
+  glVertexAttrib1f,
+  glVertexAttrib1fv,
+  glVertexAttrib1s,
+  glVertexAttrib1sv,
+  glVertexAttrib2d,
+  glVertexAttrib2dv,
+  glVertexAttrib2f,
+  glVertexAttrib2fv,
+  glVertexAttrib2s,
+  glVertexAttrib2sv,
+  glVertexAttrib3d,
+  glVertexAttrib3dv,
+  glVertexAttrib3f,
+  glVertexAttrib3fv,
+  glVertexAttrib3s,
+  glVertexAttrib3sv,
+  glVertexAttrib4Nbv,
+  glVertexAttrib4Niv,
+  glVertexAttrib4Nsv,
+  glVertexAttrib4Nub,
+  glVertexAttrib4Nubv,
+  glVertexAttrib4Nuiv,
+  glVertexAttrib4Nusv,
+  glVertexAttrib4bv,
+  glVertexAttrib4d,
+  glVertexAttrib4dv,
+  glVertexAttrib4f,
+  glVertexAttrib4fv,
+  glVertexAttrib4iv,
+  glVertexAttrib4s,
+  glVertexAttrib4sv,
+  glVertexAttrib4ubv,
+  glVertexAttrib4uiv,
+  glVertexAttrib4usv,
+  glVertexAttribBinding,
+  glVertexAttribDivisor,
+  glVertexAttribFormat,
+  glVertexAttribI1i,
+  glVertexAttribI1iv,
+  glVertexAttribI1ui,
+  glVertexAttribI1uiv,
+  glVertexAttribI2i,
+  glVertexAttribI2iv,
+  glVertexAttribI2ui,
+  glVertexAttribI2uiv,
+  glVertexAttribI3i,
+  glVertexAttribI3iv,
+  glVertexAttribI3ui,
+  glVertexAttribI3uiv,
+  glVertexAttribI4bv,
+  glVertexAttribI4i,
+  glVertexAttribI4iv,
+  glVertexAttribI4sv,
+  glVertexAttribI4ubv,
+  glVertexAttribI4ui,
+  glVertexAttribI4uiv,
+  glVertexAttribI4usv,
+  glVertexAttribIFormat,
+  glVertexAttribIPointer,
+  glVertexAttribL1d,
+  glVertexAttribL1dv,
+  glVertexAttribL2d,
+  glVertexAttribL2dv,
+  glVertexAttribL3d,
+  glVertexAttribL3dv,
+  glVertexAttribL4d,
+  glVertexAttribL4dv,
+  glVertexAttribLFormat,
+  glVertexAttribLPointer,
+  glVertexAttribP1ui,
+  glVertexAttribP1uiv,
+  glVertexAttribP2ui,
+  glVertexAttribP2uiv,
+  glVertexAttribP3ui,
+  glVertexAttribP3uiv,
+  glVertexAttribP4ui,
+  glVertexAttribP4uiv,
+  glVertexAttribPointer,
+  glVertexBindingDivisor,
+  glVertexP2ui,
+  glVertexP2uiv,
+  glVertexP3ui,
+  glVertexP3uiv,
+  glVertexP4ui,
+  glVertexP4uiv,
+  glVertexPointer,
+  glViewport,
+  glViewportArrayv,
+  glViewportIndexedf,
+  glViewportIndexedfv,
+  glWaitSync,
+  glWindowPos2d,
+  glWindowPos2dv,
+  glWindowPos2f,
+  glWindowPos2fv,
+  glWindowPos2i,
+  glWindowPos2iv,
+  glWindowPos2s,
+  glWindowPos2sv,
+  glWindowPos3d,
+  glWindowPos3dv,
+  glWindowPos3f,
+  glWindowPos3fv,
+  glWindowPos3i,
+  glWindowPos3iv,
+  glWindowPos3s,
+  glWindowPos3sv
+) where
+
+import Graphics.GL.Types
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/Compatibility44.hs b/src/Graphics/GL/Compatibility44.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Compatibility44.hs
@@ -0,0 +1,2721 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Compatibility44
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Compatibility44 (
+  -- * Types
+  GLDEBUGPROC,
+  GLDEBUGPROCFunc,
+  GLbitfield,
+  GLboolean,
+  GLbyte,
+  GLchar,
+  GLclampd,
+  GLclampf,
+  GLdouble,
+  GLenum,
+  GLfloat,
+  GLhalf,
+  GLint,
+  GLint64,
+  GLintptr,
+  GLshort,
+  GLsizei,
+  GLsizeiptr,
+  GLsync,
+  GLubyte,
+  GLuint,
+  GLuint64,
+  GLushort,
+  GLvoid,
+  makeGLDEBUGPROC,
+  -- * Enums
+  pattern GL_2D,
+  pattern GL_2_BYTES,
+  pattern GL_3D,
+  pattern GL_3D_COLOR,
+  pattern GL_3D_COLOR_TEXTURE,
+  pattern GL_3_BYTES,
+  pattern GL_4D_COLOR_TEXTURE,
+  pattern GL_4_BYTES,
+  pattern GL_ACCUM,
+  pattern GL_ACCUM_ALPHA_BITS,
+  pattern GL_ACCUM_BLUE_BITS,
+  pattern GL_ACCUM_BUFFER_BIT,
+  pattern GL_ACCUM_CLEAR_VALUE,
+  pattern GL_ACCUM_GREEN_BITS,
+  pattern GL_ACCUM_RED_BITS,
+  pattern GL_ACTIVE_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_ACTIVE_ATTRIBUTES,
+  pattern GL_ACTIVE_ATTRIBUTE_MAX_LENGTH,
+  pattern GL_ACTIVE_PROGRAM,
+  pattern GL_ACTIVE_RESOURCES,
+  pattern GL_ACTIVE_SUBROUTINES,
+  pattern GL_ACTIVE_SUBROUTINE_MAX_LENGTH,
+  pattern GL_ACTIVE_SUBROUTINE_UNIFORMS,
+  pattern GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS,
+  pattern GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH,
+  pattern GL_ACTIVE_TEXTURE,
+  pattern GL_ACTIVE_UNIFORMS,
+  pattern GL_ACTIVE_UNIFORM_BLOCKS,
+  pattern GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH,
+  pattern GL_ACTIVE_UNIFORM_MAX_LENGTH,
+  pattern GL_ACTIVE_VARIABLES,
+  pattern GL_ADD,
+  pattern GL_ADD_SIGNED,
+  pattern GL_ALIASED_LINE_WIDTH_RANGE,
+  pattern GL_ALIASED_POINT_SIZE_RANGE,
+  pattern GL_ALL_ATTRIB_BITS,
+  pattern GL_ALL_BARRIER_BITS,
+  pattern GL_ALL_SHADER_BITS,
+  pattern GL_ALPHA,
+  pattern GL_ALPHA12,
+  pattern GL_ALPHA16,
+  pattern GL_ALPHA4,
+  pattern GL_ALPHA8,
+  pattern GL_ALPHA_BIAS,
+  pattern GL_ALPHA_BITS,
+  pattern GL_ALPHA_INTEGER,
+  pattern GL_ALPHA_SCALE,
+  pattern GL_ALPHA_TEST,
+  pattern GL_ALPHA_TEST_FUNC,
+  pattern GL_ALPHA_TEST_REF,
+  pattern GL_ALREADY_SIGNALED,
+  pattern GL_ALWAYS,
+  pattern GL_AMBIENT,
+  pattern GL_AMBIENT_AND_DIFFUSE,
+  pattern GL_AND,
+  pattern GL_AND_INVERTED,
+  pattern GL_AND_REVERSE,
+  pattern GL_ANY_SAMPLES_PASSED,
+  pattern GL_ANY_SAMPLES_PASSED_CONSERVATIVE,
+  pattern GL_ARRAY_BUFFER,
+  pattern GL_ARRAY_BUFFER_BINDING,
+  pattern GL_ARRAY_SIZE,
+  pattern GL_ARRAY_STRIDE,
+  pattern GL_ATOMIC_COUNTER_BARRIER_BIT,
+  pattern GL_ATOMIC_COUNTER_BUFFER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS,
+  pattern GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES,
+  pattern GL_ATOMIC_COUNTER_BUFFER_BINDING,
+  pattern GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE,
+  pattern GL_ATOMIC_COUNTER_BUFFER_INDEX,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_SIZE,
+  pattern GL_ATOMIC_COUNTER_BUFFER_START,
+  pattern GL_ATTACHED_SHADERS,
+  pattern GL_ATTRIB_STACK_DEPTH,
+  pattern GL_AUTO_GENERATE_MIPMAP,
+  pattern GL_AUTO_NORMAL,
+  pattern GL_AUX0,
+  pattern GL_AUX1,
+  pattern GL_AUX2,
+  pattern GL_AUX3,
+  pattern GL_AUX_BUFFERS,
+  pattern GL_BACK,
+  pattern GL_BACK_LEFT,
+  pattern GL_BACK_RIGHT,
+  pattern GL_BGR,
+  pattern GL_BGRA,
+  pattern GL_BGRA_INTEGER,
+  pattern GL_BGR_INTEGER,
+  pattern GL_BITMAP,
+  pattern GL_BITMAP_TOKEN,
+  pattern GL_BLEND,
+  pattern GL_BLEND_COLOR,
+  pattern GL_BLEND_DST,
+  pattern GL_BLEND_DST_ALPHA,
+  pattern GL_BLEND_DST_RGB,
+  pattern GL_BLEND_EQUATION,
+  pattern GL_BLEND_EQUATION_ALPHA,
+  pattern GL_BLEND_EQUATION_RGB,
+  pattern GL_BLEND_SRC,
+  pattern GL_BLEND_SRC_ALPHA,
+  pattern GL_BLEND_SRC_RGB,
+  pattern GL_BLOCK_INDEX,
+  pattern GL_BLUE,
+  pattern GL_BLUE_BIAS,
+  pattern GL_BLUE_BITS,
+  pattern GL_BLUE_INTEGER,
+  pattern GL_BLUE_SCALE,
+  pattern GL_BOOL,
+  pattern GL_BOOL_VEC2,
+  pattern GL_BOOL_VEC3,
+  pattern GL_BOOL_VEC4,
+  pattern GL_BUFFER,
+  pattern GL_BUFFER_ACCESS,
+  pattern GL_BUFFER_ACCESS_FLAGS,
+  pattern GL_BUFFER_BINDING,
+  pattern GL_BUFFER_DATA_SIZE,
+  pattern GL_BUFFER_IMMUTABLE_STORAGE,
+  pattern GL_BUFFER_MAPPED,
+  pattern GL_BUFFER_MAP_LENGTH,
+  pattern GL_BUFFER_MAP_OFFSET,
+  pattern GL_BUFFER_MAP_POINTER,
+  pattern GL_BUFFER_SIZE,
+  pattern GL_BUFFER_STORAGE_FLAGS,
+  pattern GL_BUFFER_UPDATE_BARRIER_BIT,
+  pattern GL_BUFFER_USAGE,
+  pattern GL_BUFFER_VARIABLE,
+  pattern GL_BYTE,
+  pattern GL_C3F_V3F,
+  pattern GL_C4F_N3F_V3F,
+  pattern GL_C4UB_V2F,
+  pattern GL_C4UB_V3F,
+  pattern GL_CAVEAT_SUPPORT,
+  pattern GL_CCW,
+  pattern GL_CLAMP,
+  pattern GL_CLAMP_FRAGMENT_COLOR,
+  pattern GL_CLAMP_READ_COLOR,
+  pattern GL_CLAMP_TO_BORDER,
+  pattern GL_CLAMP_TO_EDGE,
+  pattern GL_CLAMP_VERTEX_COLOR,
+  pattern GL_CLEAR,
+  pattern GL_CLEAR_BUFFER,
+  pattern GL_CLEAR_TEXTURE,
+  pattern GL_CLIENT_ACTIVE_TEXTURE,
+  pattern GL_CLIENT_ALL_ATTRIB_BITS,
+  pattern GL_CLIENT_ATTRIB_STACK_DEPTH,
+  pattern GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT,
+  pattern GL_CLIENT_PIXEL_STORE_BIT,
+  pattern GL_CLIENT_STORAGE_BIT,
+  pattern GL_CLIENT_VERTEX_ARRAY_BIT,
+  pattern GL_CLIP_DISTANCE0,
+  pattern GL_CLIP_DISTANCE1,
+  pattern GL_CLIP_DISTANCE2,
+  pattern GL_CLIP_DISTANCE3,
+  pattern GL_CLIP_DISTANCE4,
+  pattern GL_CLIP_DISTANCE5,
+  pattern GL_CLIP_DISTANCE6,
+  pattern GL_CLIP_DISTANCE7,
+  pattern GL_CLIP_PLANE0,
+  pattern GL_CLIP_PLANE1,
+  pattern GL_CLIP_PLANE2,
+  pattern GL_CLIP_PLANE3,
+  pattern GL_CLIP_PLANE4,
+  pattern GL_CLIP_PLANE5,
+  pattern GL_COEFF,
+  pattern GL_COLOR,
+  pattern GL_COLOR_ARRAY,
+  pattern GL_COLOR_ARRAY_BUFFER_BINDING,
+  pattern GL_COLOR_ARRAY_POINTER,
+  pattern GL_COLOR_ARRAY_SIZE,
+  pattern GL_COLOR_ARRAY_STRIDE,
+  pattern GL_COLOR_ARRAY_TYPE,
+  pattern GL_COLOR_ATTACHMENT0,
+  pattern GL_COLOR_ATTACHMENT1,
+  pattern GL_COLOR_ATTACHMENT10,
+  pattern GL_COLOR_ATTACHMENT11,
+  pattern GL_COLOR_ATTACHMENT12,
+  pattern GL_COLOR_ATTACHMENT13,
+  pattern GL_COLOR_ATTACHMENT14,
+  pattern GL_COLOR_ATTACHMENT15,
+  pattern GL_COLOR_ATTACHMENT16,
+  pattern GL_COLOR_ATTACHMENT17,
+  pattern GL_COLOR_ATTACHMENT18,
+  pattern GL_COLOR_ATTACHMENT19,
+  pattern GL_COLOR_ATTACHMENT2,
+  pattern GL_COLOR_ATTACHMENT20,
+  pattern GL_COLOR_ATTACHMENT21,
+  pattern GL_COLOR_ATTACHMENT22,
+  pattern GL_COLOR_ATTACHMENT23,
+  pattern GL_COLOR_ATTACHMENT24,
+  pattern GL_COLOR_ATTACHMENT25,
+  pattern GL_COLOR_ATTACHMENT26,
+  pattern GL_COLOR_ATTACHMENT27,
+  pattern GL_COLOR_ATTACHMENT28,
+  pattern GL_COLOR_ATTACHMENT29,
+  pattern GL_COLOR_ATTACHMENT3,
+  pattern GL_COLOR_ATTACHMENT30,
+  pattern GL_COLOR_ATTACHMENT31,
+  pattern GL_COLOR_ATTACHMENT4,
+  pattern GL_COLOR_ATTACHMENT5,
+  pattern GL_COLOR_ATTACHMENT6,
+  pattern GL_COLOR_ATTACHMENT7,
+  pattern GL_COLOR_ATTACHMENT8,
+  pattern GL_COLOR_ATTACHMENT9,
+  pattern GL_COLOR_BUFFER_BIT,
+  pattern GL_COLOR_CLEAR_VALUE,
+  pattern GL_COLOR_COMPONENTS,
+  pattern GL_COLOR_ENCODING,
+  pattern GL_COLOR_INDEX,
+  pattern GL_COLOR_INDEXES,
+  pattern GL_COLOR_LOGIC_OP,
+  pattern GL_COLOR_MATERIAL,
+  pattern GL_COLOR_MATERIAL_FACE,
+  pattern GL_COLOR_MATERIAL_PARAMETER,
+  pattern GL_COLOR_RENDERABLE,
+  pattern GL_COLOR_SUM,
+  pattern GL_COLOR_WRITEMASK,
+  pattern GL_COMBINE,
+  pattern GL_COMBINE_ALPHA,
+  pattern GL_COMBINE_RGB,
+  pattern GL_COMMAND_BARRIER_BIT,
+  pattern GL_COMPARE_REF_TO_TEXTURE,
+  pattern GL_COMPARE_R_TO_TEXTURE,
+  pattern GL_COMPATIBLE_SUBROUTINES,
+  pattern GL_COMPILE,
+  pattern GL_COMPILE_AND_EXECUTE,
+  pattern GL_COMPILE_STATUS,
+  pattern GL_COMPRESSED_ALPHA,
+  pattern GL_COMPRESSED_INTENSITY,
+  pattern GL_COMPRESSED_LUMINANCE,
+  pattern GL_COMPRESSED_LUMINANCE_ALPHA,
+  pattern GL_COMPRESSED_R11_EAC,
+  pattern GL_COMPRESSED_RED,
+  pattern GL_COMPRESSED_RED_RGTC1,
+  pattern GL_COMPRESSED_RG,
+  pattern GL_COMPRESSED_RG11_EAC,
+  pattern GL_COMPRESSED_RGB,
+  pattern GL_COMPRESSED_RGB8_ETC2,
+  pattern GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,
+  pattern GL_COMPRESSED_RGBA,
+  pattern GL_COMPRESSED_RGBA8_ETC2_EAC,
+  pattern GL_COMPRESSED_RGBA_BPTC_UNORM,
+  pattern GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT,
+  pattern GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT,
+  pattern GL_COMPRESSED_RG_RGTC2,
+  pattern GL_COMPRESSED_SIGNED_R11_EAC,
+  pattern GL_COMPRESSED_SIGNED_RED_RGTC1,
+  pattern GL_COMPRESSED_SIGNED_RG11_EAC,
+  pattern GL_COMPRESSED_SIGNED_RG_RGTC2,
+  pattern GL_COMPRESSED_SLUMINANCE,
+  pattern GL_COMPRESSED_SLUMINANCE_ALPHA,
+  pattern GL_COMPRESSED_SRGB,
+  pattern GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,
+  pattern GL_COMPRESSED_SRGB8_ETC2,
+  pattern GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,
+  pattern GL_COMPRESSED_SRGB_ALPHA,
+  pattern GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM,
+  pattern GL_COMPRESSED_TEXTURE_FORMATS,
+  pattern GL_COMPUTE_SHADER,
+  pattern GL_COMPUTE_SHADER_BIT,
+  pattern GL_COMPUTE_SUBROUTINE,
+  pattern GL_COMPUTE_SUBROUTINE_UNIFORM,
+  pattern GL_COMPUTE_TEXTURE,
+  pattern GL_COMPUTE_WORK_GROUP_SIZE,
+  pattern GL_CONDITION_SATISFIED,
+  pattern GL_CONSTANT,
+  pattern GL_CONSTANT_ALPHA,
+  pattern GL_CONSTANT_ATTENUATION,
+  pattern GL_CONSTANT_COLOR,
+  pattern GL_CONTEXT_COMPATIBILITY_PROFILE_BIT,
+  pattern GL_CONTEXT_CORE_PROFILE_BIT,
+  pattern GL_CONTEXT_FLAGS,
+  pattern GL_CONTEXT_FLAG_DEBUG_BIT,
+  pattern GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT,
+  pattern GL_CONTEXT_PROFILE_MASK,
+  pattern GL_COORD_REPLACE,
+  pattern GL_COPY,
+  pattern GL_COPY_INVERTED,
+  pattern GL_COPY_PIXEL_TOKEN,
+  pattern GL_COPY_READ_BUFFER,
+  pattern GL_COPY_READ_BUFFER_BINDING,
+  pattern GL_COPY_WRITE_BUFFER,
+  pattern GL_COPY_WRITE_BUFFER_BINDING,
+  pattern GL_CULL_FACE,
+  pattern GL_CULL_FACE_MODE,
+  pattern GL_CURRENT_BIT,
+  pattern GL_CURRENT_COLOR,
+  pattern GL_CURRENT_FOG_COORD,
+  pattern GL_CURRENT_FOG_COORDINATE,
+  pattern GL_CURRENT_INDEX,
+  pattern GL_CURRENT_NORMAL,
+  pattern GL_CURRENT_PROGRAM,
+  pattern GL_CURRENT_QUERY,
+  pattern GL_CURRENT_RASTER_COLOR,
+  pattern GL_CURRENT_RASTER_DISTANCE,
+  pattern GL_CURRENT_RASTER_INDEX,
+  pattern GL_CURRENT_RASTER_POSITION,
+  pattern GL_CURRENT_RASTER_POSITION_VALID,
+  pattern GL_CURRENT_RASTER_SECONDARY_COLOR,
+  pattern GL_CURRENT_RASTER_TEXTURE_COORDS,
+  pattern GL_CURRENT_SECONDARY_COLOR,
+  pattern GL_CURRENT_TEXTURE_COORDS,
+  pattern GL_CURRENT_VERTEX_ATTRIB,
+  pattern GL_CW,
+  pattern GL_DEBUG_CALLBACK_FUNCTION,
+  pattern GL_DEBUG_CALLBACK_USER_PARAM,
+  pattern GL_DEBUG_GROUP_STACK_DEPTH,
+  pattern GL_DEBUG_LOGGED_MESSAGES,
+  pattern GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH,
+  pattern GL_DEBUG_OUTPUT,
+  pattern GL_DEBUG_OUTPUT_SYNCHRONOUS,
+  pattern GL_DEBUG_SEVERITY_HIGH,
+  pattern GL_DEBUG_SEVERITY_LOW,
+  pattern GL_DEBUG_SEVERITY_MEDIUM,
+  pattern GL_DEBUG_SEVERITY_NOTIFICATION,
+  pattern GL_DEBUG_SOURCE_API,
+  pattern GL_DEBUG_SOURCE_APPLICATION,
+  pattern GL_DEBUG_SOURCE_OTHER,
+  pattern GL_DEBUG_SOURCE_SHADER_COMPILER,
+  pattern GL_DEBUG_SOURCE_THIRD_PARTY,
+  pattern GL_DEBUG_SOURCE_WINDOW_SYSTEM,
+  pattern GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR,
+  pattern GL_DEBUG_TYPE_ERROR,
+  pattern GL_DEBUG_TYPE_MARKER,
+  pattern GL_DEBUG_TYPE_OTHER,
+  pattern GL_DEBUG_TYPE_PERFORMANCE,
+  pattern GL_DEBUG_TYPE_POP_GROUP,
+  pattern GL_DEBUG_TYPE_PORTABILITY,
+  pattern GL_DEBUG_TYPE_PUSH_GROUP,
+  pattern GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR,
+  pattern GL_DECAL,
+  pattern GL_DECR,
+  pattern GL_DECR_WRAP,
+  pattern GL_DELETE_STATUS,
+  pattern GL_DEPTH,
+  pattern GL_DEPTH24_STENCIL8,
+  pattern GL_DEPTH32F_STENCIL8,
+  pattern GL_DEPTH_ATTACHMENT,
+  pattern GL_DEPTH_BIAS,
+  pattern GL_DEPTH_BITS,
+  pattern GL_DEPTH_BUFFER_BIT,
+  pattern GL_DEPTH_CLAMP,
+  pattern GL_DEPTH_CLEAR_VALUE,
+  pattern GL_DEPTH_COMPONENT,
+  pattern GL_DEPTH_COMPONENT16,
+  pattern GL_DEPTH_COMPONENT24,
+  pattern GL_DEPTH_COMPONENT32,
+  pattern GL_DEPTH_COMPONENT32F,
+  pattern GL_DEPTH_COMPONENTS,
+  pattern GL_DEPTH_FUNC,
+  pattern GL_DEPTH_RANGE,
+  pattern GL_DEPTH_RENDERABLE,
+  pattern GL_DEPTH_SCALE,
+  pattern GL_DEPTH_STENCIL,
+  pattern GL_DEPTH_STENCIL_ATTACHMENT,
+  pattern GL_DEPTH_STENCIL_TEXTURE_MODE,
+  pattern GL_DEPTH_TEST,
+  pattern GL_DEPTH_TEXTURE_MODE,
+  pattern GL_DEPTH_WRITEMASK,
+  pattern GL_DIFFUSE,
+  pattern GL_DISPATCH_INDIRECT_BUFFER,
+  pattern GL_DISPATCH_INDIRECT_BUFFER_BINDING,
+  pattern GL_DISPLAY_LIST,
+  pattern GL_DITHER,
+  pattern GL_DOMAIN,
+  pattern GL_DONT_CARE,
+  pattern GL_DOT3_RGB,
+  pattern GL_DOT3_RGBA,
+  pattern GL_DOUBLE,
+  pattern GL_DOUBLEBUFFER,
+  pattern GL_DOUBLE_MAT2,
+  pattern GL_DOUBLE_MAT2x3,
+  pattern GL_DOUBLE_MAT2x4,
+  pattern GL_DOUBLE_MAT3,
+  pattern GL_DOUBLE_MAT3x2,
+  pattern GL_DOUBLE_MAT3x4,
+  pattern GL_DOUBLE_MAT4,
+  pattern GL_DOUBLE_MAT4x2,
+  pattern GL_DOUBLE_MAT4x3,
+  pattern GL_DOUBLE_VEC2,
+  pattern GL_DOUBLE_VEC3,
+  pattern GL_DOUBLE_VEC4,
+  pattern GL_DRAW_BUFFER,
+  pattern GL_DRAW_BUFFER0,
+  pattern GL_DRAW_BUFFER1,
+  pattern GL_DRAW_BUFFER10,
+  pattern GL_DRAW_BUFFER11,
+  pattern GL_DRAW_BUFFER12,
+  pattern GL_DRAW_BUFFER13,
+  pattern GL_DRAW_BUFFER14,
+  pattern GL_DRAW_BUFFER15,
+  pattern GL_DRAW_BUFFER2,
+  pattern GL_DRAW_BUFFER3,
+  pattern GL_DRAW_BUFFER4,
+  pattern GL_DRAW_BUFFER5,
+  pattern GL_DRAW_BUFFER6,
+  pattern GL_DRAW_BUFFER7,
+  pattern GL_DRAW_BUFFER8,
+  pattern GL_DRAW_BUFFER9,
+  pattern GL_DRAW_FRAMEBUFFER,
+  pattern GL_DRAW_FRAMEBUFFER_BINDING,
+  pattern GL_DRAW_INDIRECT_BUFFER,
+  pattern GL_DRAW_INDIRECT_BUFFER_BINDING,
+  pattern GL_DRAW_PIXEL_TOKEN,
+  pattern GL_DST_ALPHA,
+  pattern GL_DST_COLOR,
+  pattern GL_DYNAMIC_COPY,
+  pattern GL_DYNAMIC_DRAW,
+  pattern GL_DYNAMIC_READ,
+  pattern GL_DYNAMIC_STORAGE_BIT,
+  pattern GL_EDGE_FLAG,
+  pattern GL_EDGE_FLAG_ARRAY,
+  pattern GL_EDGE_FLAG_ARRAY_BUFFER_BINDING,
+  pattern GL_EDGE_FLAG_ARRAY_POINTER,
+  pattern GL_EDGE_FLAG_ARRAY_STRIDE,
+  pattern GL_ELEMENT_ARRAY_BARRIER_BIT,
+  pattern GL_ELEMENT_ARRAY_BUFFER,
+  pattern GL_ELEMENT_ARRAY_BUFFER_BINDING,
+  pattern GL_EMISSION,
+  pattern GL_ENABLE_BIT,
+  pattern GL_EQUAL,
+  pattern GL_EQUIV,
+  pattern GL_EVAL_BIT,
+  pattern GL_EXP,
+  pattern GL_EXP2,
+  pattern GL_EXTENSIONS,
+  pattern GL_EYE_LINEAR,
+  pattern GL_EYE_PLANE,
+  pattern GL_FALSE,
+  pattern GL_FASTEST,
+  pattern GL_FEEDBACK,
+  pattern GL_FEEDBACK_BUFFER_POINTER,
+  pattern GL_FEEDBACK_BUFFER_SIZE,
+  pattern GL_FEEDBACK_BUFFER_TYPE,
+  pattern GL_FILL,
+  pattern GL_FILTER,
+  pattern GL_FIRST_VERTEX_CONVENTION,
+  pattern GL_FIXED,
+  pattern GL_FIXED_ONLY,
+  pattern GL_FLAT,
+  pattern GL_FLOAT,
+  pattern GL_FLOAT_32_UNSIGNED_INT_24_8_REV,
+  pattern GL_FLOAT_MAT2,
+  pattern GL_FLOAT_MAT2x3,
+  pattern GL_FLOAT_MAT2x4,
+  pattern GL_FLOAT_MAT3,
+  pattern GL_FLOAT_MAT3x2,
+  pattern GL_FLOAT_MAT3x4,
+  pattern GL_FLOAT_MAT4,
+  pattern GL_FLOAT_MAT4x2,
+  pattern GL_FLOAT_MAT4x3,
+  pattern GL_FLOAT_VEC2,
+  pattern GL_FLOAT_VEC3,
+  pattern GL_FLOAT_VEC4,
+  pattern GL_FOG,
+  pattern GL_FOG_BIT,
+  pattern GL_FOG_COLOR,
+  pattern GL_FOG_COORD,
+  pattern GL_FOG_COORDINATE,
+  pattern GL_FOG_COORDINATE_ARRAY,
+  pattern GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING,
+  pattern GL_FOG_COORDINATE_ARRAY_POINTER,
+  pattern GL_FOG_COORDINATE_ARRAY_STRIDE,
+  pattern GL_FOG_COORDINATE_ARRAY_TYPE,
+  pattern GL_FOG_COORDINATE_SOURCE,
+  pattern GL_FOG_COORD_ARRAY,
+  pattern GL_FOG_COORD_ARRAY_BUFFER_BINDING,
+  pattern GL_FOG_COORD_ARRAY_POINTER,
+  pattern GL_FOG_COORD_ARRAY_STRIDE,
+  pattern GL_FOG_COORD_ARRAY_TYPE,
+  pattern GL_FOG_COORD_SRC,
+  pattern GL_FOG_DENSITY,
+  pattern GL_FOG_END,
+  pattern GL_FOG_HINT,
+  pattern GL_FOG_INDEX,
+  pattern GL_FOG_MODE,
+  pattern GL_FOG_START,
+  pattern GL_FRACTIONAL_EVEN,
+  pattern GL_FRACTIONAL_ODD,
+  pattern GL_FRAGMENT_DEPTH,
+  pattern GL_FRAGMENT_INTERPOLATION_OFFSET_BITS,
+  pattern GL_FRAGMENT_SHADER,
+  pattern GL_FRAGMENT_SHADER_BIT,
+  pattern GL_FRAGMENT_SHADER_DERIVATIVE_HINT,
+  pattern GL_FRAGMENT_SUBROUTINE,
+  pattern GL_FRAGMENT_SUBROUTINE_UNIFORM,
+  pattern GL_FRAGMENT_TEXTURE,
+  pattern GL_FRAMEBUFFER,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL,
+  pattern GL_FRAMEBUFFER_BARRIER_BIT,
+  pattern GL_FRAMEBUFFER_BINDING,
+  pattern GL_FRAMEBUFFER_BLEND,
+  pattern GL_FRAMEBUFFER_COMPLETE,
+  pattern GL_FRAMEBUFFER_DEFAULT,
+  pattern GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS,
+  pattern GL_FRAMEBUFFER_DEFAULT_HEIGHT,
+  pattern GL_FRAMEBUFFER_DEFAULT_LAYERS,
+  pattern GL_FRAMEBUFFER_DEFAULT_SAMPLES,
+  pattern GL_FRAMEBUFFER_DEFAULT_WIDTH,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER,
+  pattern GL_FRAMEBUFFER_RENDERABLE,
+  pattern GL_FRAMEBUFFER_RENDERABLE_LAYERED,
+  pattern GL_FRAMEBUFFER_SRGB,
+  pattern GL_FRAMEBUFFER_UNDEFINED,
+  pattern GL_FRAMEBUFFER_UNSUPPORTED,
+  pattern GL_FRONT,
+  pattern GL_FRONT_AND_BACK,
+  pattern GL_FRONT_FACE,
+  pattern GL_FRONT_LEFT,
+  pattern GL_FRONT_RIGHT,
+  pattern GL_FULL_SUPPORT,
+  pattern GL_FUNC_ADD,
+  pattern GL_FUNC_REVERSE_SUBTRACT,
+  pattern GL_FUNC_SUBTRACT,
+  pattern GL_GENERATE_MIPMAP,
+  pattern GL_GENERATE_MIPMAP_HINT,
+  pattern GL_GEOMETRY_INPUT_TYPE,
+  pattern GL_GEOMETRY_OUTPUT_TYPE,
+  pattern GL_GEOMETRY_SHADER,
+  pattern GL_GEOMETRY_SHADER_BIT,
+  pattern GL_GEOMETRY_SHADER_INVOCATIONS,
+  pattern GL_GEOMETRY_SUBROUTINE,
+  pattern GL_GEOMETRY_SUBROUTINE_UNIFORM,
+  pattern GL_GEOMETRY_TEXTURE,
+  pattern GL_GEOMETRY_VERTICES_OUT,
+  pattern GL_GEQUAL,
+  pattern GL_GET_TEXTURE_IMAGE_FORMAT,
+  pattern GL_GET_TEXTURE_IMAGE_TYPE,
+  pattern GL_GREATER,
+  pattern GL_GREEN,
+  pattern GL_GREEN_BIAS,
+  pattern GL_GREEN_BITS,
+  pattern GL_GREEN_INTEGER,
+  pattern GL_GREEN_SCALE,
+  pattern GL_HALF_FLOAT,
+  pattern GL_HIGH_FLOAT,
+  pattern GL_HIGH_INT,
+  pattern GL_HINT_BIT,
+  pattern GL_IMAGE_1D,
+  pattern GL_IMAGE_1D_ARRAY,
+  pattern GL_IMAGE_2D,
+  pattern GL_IMAGE_2D_ARRAY,
+  pattern GL_IMAGE_2D_MULTISAMPLE,
+  pattern GL_IMAGE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_IMAGE_2D_RECT,
+  pattern GL_IMAGE_3D,
+  pattern GL_IMAGE_BINDING_ACCESS,
+  pattern GL_IMAGE_BINDING_FORMAT,
+  pattern GL_IMAGE_BINDING_LAYER,
+  pattern GL_IMAGE_BINDING_LAYERED,
+  pattern GL_IMAGE_BINDING_LEVEL,
+  pattern GL_IMAGE_BINDING_NAME,
+  pattern GL_IMAGE_BUFFER,
+  pattern GL_IMAGE_CLASS_10_10_10_2,
+  pattern GL_IMAGE_CLASS_11_11_10,
+  pattern GL_IMAGE_CLASS_1_X_16,
+  pattern GL_IMAGE_CLASS_1_X_32,
+  pattern GL_IMAGE_CLASS_1_X_8,
+  pattern GL_IMAGE_CLASS_2_X_16,
+  pattern GL_IMAGE_CLASS_2_X_32,
+  pattern GL_IMAGE_CLASS_2_X_8,
+  pattern GL_IMAGE_CLASS_4_X_16,
+  pattern GL_IMAGE_CLASS_4_X_32,
+  pattern GL_IMAGE_CLASS_4_X_8,
+  pattern GL_IMAGE_COMPATIBILITY_CLASS,
+  pattern GL_IMAGE_CUBE,
+  pattern GL_IMAGE_CUBE_MAP_ARRAY,
+  pattern GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS,
+  pattern GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE,
+  pattern GL_IMAGE_FORMAT_COMPATIBILITY_TYPE,
+  pattern GL_IMAGE_PIXEL_FORMAT,
+  pattern GL_IMAGE_PIXEL_TYPE,
+  pattern GL_IMAGE_TEXEL_SIZE,
+  pattern GL_IMPLEMENTATION_COLOR_READ_FORMAT,
+  pattern GL_IMPLEMENTATION_COLOR_READ_TYPE,
+  pattern GL_INCR,
+  pattern GL_INCR_WRAP,
+  pattern GL_INDEX,
+  pattern GL_INDEX_ARRAY,
+  pattern GL_INDEX_ARRAY_BUFFER_BINDING,
+  pattern GL_INDEX_ARRAY_POINTER,
+  pattern GL_INDEX_ARRAY_STRIDE,
+  pattern GL_INDEX_ARRAY_TYPE,
+  pattern GL_INDEX_BITS,
+  pattern GL_INDEX_CLEAR_VALUE,
+  pattern GL_INDEX_LOGIC_OP,
+  pattern GL_INDEX_MODE,
+  pattern GL_INDEX_OFFSET,
+  pattern GL_INDEX_SHIFT,
+  pattern GL_INDEX_WRITEMASK,
+  pattern GL_INFO_LOG_LENGTH,
+  pattern GL_INT,
+  pattern GL_INTENSITY,
+  pattern GL_INTENSITY12,
+  pattern GL_INTENSITY16,
+  pattern GL_INTENSITY4,
+  pattern GL_INTENSITY8,
+  pattern GL_INTERLEAVED_ATTRIBS,
+  pattern GL_INTERNALFORMAT_ALPHA_SIZE,
+  pattern GL_INTERNALFORMAT_ALPHA_TYPE,
+  pattern GL_INTERNALFORMAT_BLUE_SIZE,
+  pattern GL_INTERNALFORMAT_BLUE_TYPE,
+  pattern GL_INTERNALFORMAT_DEPTH_SIZE,
+  pattern GL_INTERNALFORMAT_DEPTH_TYPE,
+  pattern GL_INTERNALFORMAT_GREEN_SIZE,
+  pattern GL_INTERNALFORMAT_GREEN_TYPE,
+  pattern GL_INTERNALFORMAT_PREFERRED,
+  pattern GL_INTERNALFORMAT_RED_SIZE,
+  pattern GL_INTERNALFORMAT_RED_TYPE,
+  pattern GL_INTERNALFORMAT_SHARED_SIZE,
+  pattern GL_INTERNALFORMAT_STENCIL_SIZE,
+  pattern GL_INTERNALFORMAT_STENCIL_TYPE,
+  pattern GL_INTERNALFORMAT_SUPPORTED,
+  pattern GL_INTERPOLATE,
+  pattern GL_INT_2_10_10_10_REV,
+  pattern GL_INT_IMAGE_1D,
+  pattern GL_INT_IMAGE_1D_ARRAY,
+  pattern GL_INT_IMAGE_2D,
+  pattern GL_INT_IMAGE_2D_ARRAY,
+  pattern GL_INT_IMAGE_2D_MULTISAMPLE,
+  pattern GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_INT_IMAGE_2D_RECT,
+  pattern GL_INT_IMAGE_3D,
+  pattern GL_INT_IMAGE_BUFFER,
+  pattern GL_INT_IMAGE_CUBE,
+  pattern GL_INT_IMAGE_CUBE_MAP_ARRAY,
+  pattern GL_INT_SAMPLER_1D,
+  pattern GL_INT_SAMPLER_1D_ARRAY,
+  pattern GL_INT_SAMPLER_2D,
+  pattern GL_INT_SAMPLER_2D_ARRAY,
+  pattern GL_INT_SAMPLER_2D_MULTISAMPLE,
+  pattern GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY,
+  pattern GL_INT_SAMPLER_2D_RECT,
+  pattern GL_INT_SAMPLER_3D,
+  pattern GL_INT_SAMPLER_BUFFER,
+  pattern GL_INT_SAMPLER_CUBE,
+  pattern GL_INT_SAMPLER_CUBE_MAP_ARRAY,
+  pattern GL_INT_VEC2,
+  pattern GL_INT_VEC3,
+  pattern GL_INT_VEC4,
+  pattern GL_INVALID_ENUM,
+  pattern GL_INVALID_FRAMEBUFFER_OPERATION,
+  pattern GL_INVALID_INDEX,
+  pattern GL_INVALID_OPERATION,
+  pattern GL_INVALID_VALUE,
+  pattern GL_INVERT,
+  pattern GL_ISOLINES,
+  pattern GL_IS_PER_PATCH,
+  pattern GL_IS_ROW_MAJOR,
+  pattern GL_KEEP,
+  pattern GL_LAST_VERTEX_CONVENTION,
+  pattern GL_LAYER_PROVOKING_VERTEX,
+  pattern GL_LEFT,
+  pattern GL_LEQUAL,
+  pattern GL_LESS,
+  pattern GL_LIGHT0,
+  pattern GL_LIGHT1,
+  pattern GL_LIGHT2,
+  pattern GL_LIGHT3,
+  pattern GL_LIGHT4,
+  pattern GL_LIGHT5,
+  pattern GL_LIGHT6,
+  pattern GL_LIGHT7,
+  pattern GL_LIGHTING,
+  pattern GL_LIGHTING_BIT,
+  pattern GL_LIGHT_MODEL_AMBIENT,
+  pattern GL_LIGHT_MODEL_COLOR_CONTROL,
+  pattern GL_LIGHT_MODEL_LOCAL_VIEWER,
+  pattern GL_LIGHT_MODEL_TWO_SIDE,
+  pattern GL_LINE,
+  pattern GL_LINEAR,
+  pattern GL_LINEAR_ATTENUATION,
+  pattern GL_LINEAR_MIPMAP_LINEAR,
+  pattern GL_LINEAR_MIPMAP_NEAREST,
+  pattern GL_LINES,
+  pattern GL_LINES_ADJACENCY,
+  pattern GL_LINE_BIT,
+  pattern GL_LINE_LOOP,
+  pattern GL_LINE_RESET_TOKEN,
+  pattern GL_LINE_SMOOTH,
+  pattern GL_LINE_SMOOTH_HINT,
+  pattern GL_LINE_STIPPLE,
+  pattern GL_LINE_STIPPLE_PATTERN,
+  pattern GL_LINE_STIPPLE_REPEAT,
+  pattern GL_LINE_STRIP,
+  pattern GL_LINE_STRIP_ADJACENCY,
+  pattern GL_LINE_TOKEN,
+  pattern GL_LINE_WIDTH,
+  pattern GL_LINE_WIDTH_GRANULARITY,
+  pattern GL_LINE_WIDTH_RANGE,
+  pattern GL_LINK_STATUS,
+  pattern GL_LIST_BASE,
+  pattern GL_LIST_BIT,
+  pattern GL_LIST_INDEX,
+  pattern GL_LIST_MODE,
+  pattern GL_LOAD,
+  pattern GL_LOCATION,
+  pattern GL_LOCATION_COMPONENT,
+  pattern GL_LOCATION_INDEX,
+  pattern GL_LOGIC_OP,
+  pattern GL_LOGIC_OP_MODE,
+  pattern GL_LOWER_LEFT,
+  pattern GL_LOW_FLOAT,
+  pattern GL_LOW_INT,
+  pattern GL_LUMINANCE,
+  pattern GL_LUMINANCE12,
+  pattern GL_LUMINANCE12_ALPHA12,
+  pattern GL_LUMINANCE12_ALPHA4,
+  pattern GL_LUMINANCE16,
+  pattern GL_LUMINANCE16_ALPHA16,
+  pattern GL_LUMINANCE4,
+  pattern GL_LUMINANCE4_ALPHA4,
+  pattern GL_LUMINANCE6_ALPHA2,
+  pattern GL_LUMINANCE8,
+  pattern GL_LUMINANCE8_ALPHA8,
+  pattern GL_LUMINANCE_ALPHA,
+  pattern GL_MAJOR_VERSION,
+  pattern GL_MANUAL_GENERATE_MIPMAP,
+  pattern GL_MAP1_COLOR_4,
+  pattern GL_MAP1_GRID_DOMAIN,
+  pattern GL_MAP1_GRID_SEGMENTS,
+  pattern GL_MAP1_INDEX,
+  pattern GL_MAP1_NORMAL,
+  pattern GL_MAP1_TEXTURE_COORD_1,
+  pattern GL_MAP1_TEXTURE_COORD_2,
+  pattern GL_MAP1_TEXTURE_COORD_3,
+  pattern GL_MAP1_TEXTURE_COORD_4,
+  pattern GL_MAP1_VERTEX_3,
+  pattern GL_MAP1_VERTEX_4,
+  pattern GL_MAP2_COLOR_4,
+  pattern GL_MAP2_GRID_DOMAIN,
+  pattern GL_MAP2_GRID_SEGMENTS,
+  pattern GL_MAP2_INDEX,
+  pattern GL_MAP2_NORMAL,
+  pattern GL_MAP2_TEXTURE_COORD_1,
+  pattern GL_MAP2_TEXTURE_COORD_2,
+  pattern GL_MAP2_TEXTURE_COORD_3,
+  pattern GL_MAP2_TEXTURE_COORD_4,
+  pattern GL_MAP2_VERTEX_3,
+  pattern GL_MAP2_VERTEX_4,
+  pattern GL_MAP_COHERENT_BIT,
+  pattern GL_MAP_COLOR,
+  pattern GL_MAP_FLUSH_EXPLICIT_BIT,
+  pattern GL_MAP_INVALIDATE_BUFFER_BIT,
+  pattern GL_MAP_INVALIDATE_RANGE_BIT,
+  pattern GL_MAP_PERSISTENT_BIT,
+  pattern GL_MAP_READ_BIT,
+  pattern GL_MAP_STENCIL,
+  pattern GL_MAP_UNSYNCHRONIZED_BIT,
+  pattern GL_MAP_WRITE_BIT,
+  pattern GL_MATRIX_MODE,
+  pattern GL_MATRIX_STRIDE,
+  pattern GL_MAX,
+  pattern GL_MAX_3D_TEXTURE_SIZE,
+  pattern GL_MAX_ARRAY_TEXTURE_LAYERS,
+  pattern GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS,
+  pattern GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE,
+  pattern GL_MAX_ATTRIB_STACK_DEPTH,
+  pattern GL_MAX_CLIENT_ATTRIB_STACK_DEPTH,
+  pattern GL_MAX_CLIP_DISTANCES,
+  pattern GL_MAX_CLIP_PLANES,
+  pattern GL_MAX_COLOR_ATTACHMENTS,
+  pattern GL_MAX_COLOR_TEXTURE_SAMPLES,
+  pattern GL_MAX_COMBINED_ATOMIC_COUNTERS,
+  pattern GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_DIMENSIONS,
+  pattern GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_IMAGE_UNIFORMS,
+  pattern GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS,
+  pattern GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES,
+  pattern GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_COMBINED_UNIFORM_BLOCKS,
+  pattern GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMPUTE_ATOMIC_COUNTERS,
+  pattern GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_COMPUTE_IMAGE_UNIFORMS,
+  pattern GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_COMPUTE_SHARED_MEMORY_SIZE,
+  pattern GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_COMPUTE_UNIFORM_BLOCKS,
+  pattern GL_MAX_COMPUTE_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMPUTE_WORK_GROUP_COUNT,
+  pattern GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS,
+  pattern GL_MAX_COMPUTE_WORK_GROUP_SIZE,
+  pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE,
+  pattern GL_MAX_DEBUG_GROUP_STACK_DEPTH,
+  pattern GL_MAX_DEBUG_LOGGED_MESSAGES,
+  pattern GL_MAX_DEBUG_MESSAGE_LENGTH,
+  pattern GL_MAX_DEPTH,
+  pattern GL_MAX_DEPTH_TEXTURE_SAMPLES,
+  pattern GL_MAX_DRAW_BUFFERS,
+  pattern GL_MAX_DUAL_SOURCE_DRAW_BUFFERS,
+  pattern GL_MAX_ELEMENTS_INDICES,
+  pattern GL_MAX_ELEMENTS_VERTICES,
+  pattern GL_MAX_ELEMENT_INDEX,
+  pattern GL_MAX_EVAL_ORDER,
+  pattern GL_MAX_FRAGMENT_ATOMIC_COUNTERS,
+  pattern GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_FRAGMENT_IMAGE_UNIFORMS,
+  pattern GL_MAX_FRAGMENT_INPUT_COMPONENTS,
+  pattern GL_MAX_FRAGMENT_INTERPOLATION_OFFSET,
+  pattern GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_FRAGMENT_UNIFORM_BLOCKS,
+  pattern GL_MAX_FRAGMENT_UNIFORM_COMPONENTS,
+  pattern GL_MAX_FRAGMENT_UNIFORM_VECTORS,
+  pattern GL_MAX_FRAMEBUFFER_HEIGHT,
+  pattern GL_MAX_FRAMEBUFFER_LAYERS,
+  pattern GL_MAX_FRAMEBUFFER_SAMPLES,
+  pattern GL_MAX_FRAMEBUFFER_WIDTH,
+  pattern GL_MAX_GEOMETRY_ATOMIC_COUNTERS,
+  pattern GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_GEOMETRY_IMAGE_UNIFORMS,
+  pattern GL_MAX_GEOMETRY_INPUT_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_OUTPUT_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_OUTPUT_VERTICES,
+  pattern GL_MAX_GEOMETRY_SHADER_INVOCATIONS,
+  pattern GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_UNIFORM_BLOCKS,
+  pattern GL_MAX_GEOMETRY_UNIFORM_COMPONENTS,
+  pattern GL_MAX_HEIGHT,
+  pattern GL_MAX_IMAGE_SAMPLES,
+  pattern GL_MAX_IMAGE_UNITS,
+  pattern GL_MAX_INTEGER_SAMPLES,
+  pattern GL_MAX_LABEL_LENGTH,
+  pattern GL_MAX_LAYERS,
+  pattern GL_MAX_LIGHTS,
+  pattern GL_MAX_LIST_NESTING,
+  pattern GL_MAX_MODELVIEW_STACK_DEPTH,
+  pattern GL_MAX_NAME_LENGTH,
+  pattern GL_MAX_NAME_STACK_DEPTH,
+  pattern GL_MAX_NUM_ACTIVE_VARIABLES,
+  pattern GL_MAX_NUM_COMPATIBLE_SUBROUTINES,
+  pattern GL_MAX_PATCH_VERTICES,
+  pattern GL_MAX_PIXEL_MAP_TABLE,
+  pattern GL_MAX_PROGRAM_TEXEL_OFFSET,
+  pattern GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET,
+  pattern GL_MAX_PROJECTION_STACK_DEPTH,
+  pattern GL_MAX_RECTANGLE_TEXTURE_SIZE,
+  pattern GL_MAX_RENDERBUFFER_SIZE,
+  pattern GL_MAX_SAMPLES,
+  pattern GL_MAX_SAMPLE_MASK_WORDS,
+  pattern GL_MAX_SERVER_WAIT_TIMEOUT,
+  pattern GL_MAX_SHADER_STORAGE_BLOCK_SIZE,
+  pattern GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS,
+  pattern GL_MAX_SUBROUTINES,
+  pattern GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS,
+  pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS,
+  pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS,
+  pattern GL_MAX_TESS_CONTROL_INPUT_COMPONENTS,
+  pattern GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS,
+  pattern GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS,
+  pattern GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS,
+  pattern GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS,
+  pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS,
+  pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS,
+  pattern GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS,
+  pattern GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS,
+  pattern GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS,
+  pattern GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS,
+  pattern GL_MAX_TESS_GEN_LEVEL,
+  pattern GL_MAX_TESS_PATCH_COMPONENTS,
+  pattern GL_MAX_TEXTURE_BUFFER_SIZE,
+  pattern GL_MAX_TEXTURE_COORDS,
+  pattern GL_MAX_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_TEXTURE_LOD_BIAS,
+  pattern GL_MAX_TEXTURE_SIZE,
+  pattern GL_MAX_TEXTURE_STACK_DEPTH,
+  pattern GL_MAX_TEXTURE_UNITS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_BUFFERS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS,
+  pattern GL_MAX_UNIFORM_BLOCK_SIZE,
+  pattern GL_MAX_UNIFORM_BUFFER_BINDINGS,
+  pattern GL_MAX_UNIFORM_LOCATIONS,
+  pattern GL_MAX_VARYING_COMPONENTS,
+  pattern GL_MAX_VARYING_FLOATS,
+  pattern GL_MAX_VARYING_VECTORS,
+  pattern GL_MAX_VERTEX_ATOMIC_COUNTERS,
+  pattern GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_VERTEX_ATTRIBS,
+  pattern GL_MAX_VERTEX_ATTRIB_BINDINGS,
+  pattern GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET,
+  pattern GL_MAX_VERTEX_ATTRIB_STRIDE,
+  pattern GL_MAX_VERTEX_IMAGE_UNIFORMS,
+  pattern GL_MAX_VERTEX_OUTPUT_COMPONENTS,
+  pattern GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_VERTEX_STREAMS,
+  pattern GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_VERTEX_UNIFORM_BLOCKS,
+  pattern GL_MAX_VERTEX_UNIFORM_COMPONENTS,
+  pattern GL_MAX_VERTEX_UNIFORM_VECTORS,
+  pattern GL_MAX_VIEWPORTS,
+  pattern GL_MAX_VIEWPORT_DIMS,
+  pattern GL_MAX_WIDTH,
+  pattern GL_MEDIUM_FLOAT,
+  pattern GL_MEDIUM_INT,
+  pattern GL_MIN,
+  pattern GL_MINOR_VERSION,
+  pattern GL_MIN_FRAGMENT_INTERPOLATION_OFFSET,
+  pattern GL_MIN_MAP_BUFFER_ALIGNMENT,
+  pattern GL_MIN_PROGRAM_TEXEL_OFFSET,
+  pattern GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET,
+  pattern GL_MIN_SAMPLE_SHADING_VALUE,
+  pattern GL_MIPMAP,
+  pattern GL_MIRRORED_REPEAT,
+  pattern GL_MIRROR_CLAMP_TO_EDGE,
+  pattern GL_MODELVIEW,
+  pattern GL_MODELVIEW_MATRIX,
+  pattern GL_MODELVIEW_STACK_DEPTH,
+  pattern GL_MODULATE,
+  pattern GL_MULT,
+  pattern GL_MULTISAMPLE,
+  pattern GL_MULTISAMPLE_BIT,
+  pattern GL_N3F_V3F,
+  pattern GL_NAME_LENGTH,
+  pattern GL_NAME_STACK_DEPTH,
+  pattern GL_NAND,
+  pattern GL_NEAREST,
+  pattern GL_NEAREST_MIPMAP_LINEAR,
+  pattern GL_NEAREST_MIPMAP_NEAREST,
+  pattern GL_NEVER,
+  pattern GL_NICEST,
+  pattern GL_NONE,
+  pattern GL_NOOP,
+  pattern GL_NOR,
+  pattern GL_NORMALIZE,
+  pattern GL_NORMAL_ARRAY,
+  pattern GL_NORMAL_ARRAY_BUFFER_BINDING,
+  pattern GL_NORMAL_ARRAY_POINTER,
+  pattern GL_NORMAL_ARRAY_STRIDE,
+  pattern GL_NORMAL_ARRAY_TYPE,
+  pattern GL_NORMAL_MAP,
+  pattern GL_NOTEQUAL,
+  pattern GL_NO_ERROR,
+  pattern GL_NUM_ACTIVE_VARIABLES,
+  pattern GL_NUM_COMPATIBLE_SUBROUTINES,
+  pattern GL_NUM_COMPRESSED_TEXTURE_FORMATS,
+  pattern GL_NUM_EXTENSIONS,
+  pattern GL_NUM_PROGRAM_BINARY_FORMATS,
+  pattern GL_NUM_SAMPLE_COUNTS,
+  pattern GL_NUM_SHADER_BINARY_FORMATS,
+  pattern GL_NUM_SHADING_LANGUAGE_VERSIONS,
+  pattern GL_OBJECT_LINEAR,
+  pattern GL_OBJECT_PLANE,
+  pattern GL_OBJECT_TYPE,
+  pattern GL_OFFSET,
+  pattern GL_ONE,
+  pattern GL_ONE_MINUS_CONSTANT_ALPHA,
+  pattern GL_ONE_MINUS_CONSTANT_COLOR,
+  pattern GL_ONE_MINUS_DST_ALPHA,
+  pattern GL_ONE_MINUS_DST_COLOR,
+  pattern GL_ONE_MINUS_SRC1_ALPHA,
+  pattern GL_ONE_MINUS_SRC1_COLOR,
+  pattern GL_ONE_MINUS_SRC_ALPHA,
+  pattern GL_ONE_MINUS_SRC_COLOR,
+  pattern GL_OPERAND0_ALPHA,
+  pattern GL_OPERAND0_RGB,
+  pattern GL_OPERAND1_ALPHA,
+  pattern GL_OPERAND1_RGB,
+  pattern GL_OPERAND2_ALPHA,
+  pattern GL_OPERAND2_RGB,
+  pattern GL_OR,
+  pattern GL_ORDER,
+  pattern GL_OR_INVERTED,
+  pattern GL_OR_REVERSE,
+  pattern GL_OUT_OF_MEMORY,
+  pattern GL_PACK_ALIGNMENT,
+  pattern GL_PACK_COMPRESSED_BLOCK_DEPTH,
+  pattern GL_PACK_COMPRESSED_BLOCK_HEIGHT,
+  pattern GL_PACK_COMPRESSED_BLOCK_SIZE,
+  pattern GL_PACK_COMPRESSED_BLOCK_WIDTH,
+  pattern GL_PACK_IMAGE_HEIGHT,
+  pattern GL_PACK_LSB_FIRST,
+  pattern GL_PACK_ROW_LENGTH,
+  pattern GL_PACK_SKIP_IMAGES,
+  pattern GL_PACK_SKIP_PIXELS,
+  pattern GL_PACK_SKIP_ROWS,
+  pattern GL_PACK_SWAP_BYTES,
+  pattern GL_PASS_THROUGH_TOKEN,
+  pattern GL_PATCHES,
+  pattern GL_PATCH_DEFAULT_INNER_LEVEL,
+  pattern GL_PATCH_DEFAULT_OUTER_LEVEL,
+  pattern GL_PATCH_VERTICES,
+  pattern GL_PERSPECTIVE_CORRECTION_HINT,
+  pattern GL_PIXEL_BUFFER_BARRIER_BIT,
+  pattern GL_PIXEL_MAP_A_TO_A,
+  pattern GL_PIXEL_MAP_A_TO_A_SIZE,
+  pattern GL_PIXEL_MAP_B_TO_B,
+  pattern GL_PIXEL_MAP_B_TO_B_SIZE,
+  pattern GL_PIXEL_MAP_G_TO_G,
+  pattern GL_PIXEL_MAP_G_TO_G_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_A,
+  pattern GL_PIXEL_MAP_I_TO_A_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_B,
+  pattern GL_PIXEL_MAP_I_TO_B_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_G,
+  pattern GL_PIXEL_MAP_I_TO_G_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_I,
+  pattern GL_PIXEL_MAP_I_TO_I_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_R,
+  pattern GL_PIXEL_MAP_I_TO_R_SIZE,
+  pattern GL_PIXEL_MAP_R_TO_R,
+  pattern GL_PIXEL_MAP_R_TO_R_SIZE,
+  pattern GL_PIXEL_MAP_S_TO_S,
+  pattern GL_PIXEL_MAP_S_TO_S_SIZE,
+  pattern GL_PIXEL_MODE_BIT,
+  pattern GL_PIXEL_PACK_BUFFER,
+  pattern GL_PIXEL_PACK_BUFFER_BINDING,
+  pattern GL_PIXEL_UNPACK_BUFFER,
+  pattern GL_PIXEL_UNPACK_BUFFER_BINDING,
+  pattern GL_POINT,
+  pattern GL_POINTS,
+  pattern GL_POINT_BIT,
+  pattern GL_POINT_DISTANCE_ATTENUATION,
+  pattern GL_POINT_FADE_THRESHOLD_SIZE,
+  pattern GL_POINT_SIZE,
+  pattern GL_POINT_SIZE_GRANULARITY,
+  pattern GL_POINT_SIZE_MAX,
+  pattern GL_POINT_SIZE_MIN,
+  pattern GL_POINT_SIZE_RANGE,
+  pattern GL_POINT_SMOOTH,
+  pattern GL_POINT_SMOOTH_HINT,
+  pattern GL_POINT_SPRITE,
+  pattern GL_POINT_SPRITE_COORD_ORIGIN,
+  pattern GL_POINT_TOKEN,
+  pattern GL_POLYGON,
+  pattern GL_POLYGON_BIT,
+  pattern GL_POLYGON_MODE,
+  pattern GL_POLYGON_OFFSET_FACTOR,
+  pattern GL_POLYGON_OFFSET_FILL,
+  pattern GL_POLYGON_OFFSET_LINE,
+  pattern GL_POLYGON_OFFSET_POINT,
+  pattern GL_POLYGON_OFFSET_UNITS,
+  pattern GL_POLYGON_SMOOTH,
+  pattern GL_POLYGON_SMOOTH_HINT,
+  pattern GL_POLYGON_STIPPLE,
+  pattern GL_POLYGON_STIPPLE_BIT,
+  pattern GL_POLYGON_TOKEN,
+  pattern GL_POSITION,
+  pattern GL_PREVIOUS,
+  pattern GL_PRIMARY_COLOR,
+  pattern GL_PRIMITIVES_GENERATED,
+  pattern GL_PRIMITIVE_RESTART,
+  pattern GL_PRIMITIVE_RESTART_FIXED_INDEX,
+  pattern GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED,
+  pattern GL_PRIMITIVE_RESTART_INDEX,
+  pattern GL_PROGRAM,
+  pattern GL_PROGRAM_BINARY_FORMATS,
+  pattern GL_PROGRAM_BINARY_LENGTH,
+  pattern GL_PROGRAM_BINARY_RETRIEVABLE_HINT,
+  pattern GL_PROGRAM_INPUT,
+  pattern GL_PROGRAM_OUTPUT,
+  pattern GL_PROGRAM_PIPELINE,
+  pattern GL_PROGRAM_PIPELINE_BINDING,
+  pattern GL_PROGRAM_POINT_SIZE,
+  pattern GL_PROGRAM_SEPARABLE,
+  pattern GL_PROJECTION,
+  pattern GL_PROJECTION_MATRIX,
+  pattern GL_PROJECTION_STACK_DEPTH,
+  pattern GL_PROVOKING_VERTEX,
+  pattern GL_PROXY_TEXTURE_1D,
+  pattern GL_PROXY_TEXTURE_1D_ARRAY,
+  pattern GL_PROXY_TEXTURE_2D,
+  pattern GL_PROXY_TEXTURE_2D_ARRAY,
+  pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE,
+  pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_PROXY_TEXTURE_3D,
+  pattern GL_PROXY_TEXTURE_CUBE_MAP,
+  pattern GL_PROXY_TEXTURE_CUBE_MAP_ARRAY,
+  pattern GL_PROXY_TEXTURE_RECTANGLE,
+  pattern GL_Q,
+  pattern GL_QUADRATIC_ATTENUATION,
+  pattern GL_QUADS,
+  pattern GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION,
+  pattern GL_QUAD_STRIP,
+  pattern GL_QUERY,
+  pattern GL_QUERY_BUFFER,
+  pattern GL_QUERY_BUFFER_BARRIER_BIT,
+  pattern GL_QUERY_BUFFER_BINDING,
+  pattern GL_QUERY_BY_REGION_NO_WAIT,
+  pattern GL_QUERY_BY_REGION_WAIT,
+  pattern GL_QUERY_COUNTER_BITS,
+  pattern GL_QUERY_NO_WAIT,
+  pattern GL_QUERY_RESULT,
+  pattern GL_QUERY_RESULT_AVAILABLE,
+  pattern GL_QUERY_RESULT_NO_WAIT,
+  pattern GL_QUERY_WAIT,
+  pattern GL_R,
+  pattern GL_R11F_G11F_B10F,
+  pattern GL_R16,
+  pattern GL_R16F,
+  pattern GL_R16I,
+  pattern GL_R16UI,
+  pattern GL_R16_SNORM,
+  pattern GL_R32F,
+  pattern GL_R32I,
+  pattern GL_R32UI,
+  pattern GL_R3_G3_B2,
+  pattern GL_R8,
+  pattern GL_R8I,
+  pattern GL_R8UI,
+  pattern GL_R8_SNORM,
+  pattern GL_RASTERIZER_DISCARD,
+  pattern GL_READ_BUFFER,
+  pattern GL_READ_FRAMEBUFFER,
+  pattern GL_READ_FRAMEBUFFER_BINDING,
+  pattern GL_READ_ONLY,
+  pattern GL_READ_PIXELS,
+  pattern GL_READ_PIXELS_FORMAT,
+  pattern GL_READ_PIXELS_TYPE,
+  pattern GL_READ_WRITE,
+  pattern GL_RED,
+  pattern GL_RED_BIAS,
+  pattern GL_RED_BITS,
+  pattern GL_RED_INTEGER,
+  pattern GL_RED_SCALE,
+  pattern GL_REFERENCED_BY_COMPUTE_SHADER,
+  pattern GL_REFERENCED_BY_FRAGMENT_SHADER,
+  pattern GL_REFERENCED_BY_GEOMETRY_SHADER,
+  pattern GL_REFERENCED_BY_TESS_CONTROL_SHADER,
+  pattern GL_REFERENCED_BY_TESS_EVALUATION_SHADER,
+  pattern GL_REFERENCED_BY_VERTEX_SHADER,
+  pattern GL_REFLECTION_MAP,
+  pattern GL_RENDER,
+  pattern GL_RENDERBUFFER,
+  pattern GL_RENDERBUFFER_ALPHA_SIZE,
+  pattern GL_RENDERBUFFER_BINDING,
+  pattern GL_RENDERBUFFER_BLUE_SIZE,
+  pattern GL_RENDERBUFFER_DEPTH_SIZE,
+  pattern GL_RENDERBUFFER_GREEN_SIZE,
+  pattern GL_RENDERBUFFER_HEIGHT,
+  pattern GL_RENDERBUFFER_INTERNAL_FORMAT,
+  pattern GL_RENDERBUFFER_RED_SIZE,
+  pattern GL_RENDERBUFFER_SAMPLES,
+  pattern GL_RENDERBUFFER_STENCIL_SIZE,
+  pattern GL_RENDERBUFFER_WIDTH,
+  pattern GL_RENDERER,
+  pattern GL_RENDER_MODE,
+  pattern GL_REPEAT,
+  pattern GL_REPLACE,
+  pattern GL_RESCALE_NORMAL,
+  pattern GL_RETURN,
+  pattern GL_RG,
+  pattern GL_RG16,
+  pattern GL_RG16F,
+  pattern GL_RG16I,
+  pattern GL_RG16UI,
+  pattern GL_RG16_SNORM,
+  pattern GL_RG32F,
+  pattern GL_RG32I,
+  pattern GL_RG32UI,
+  pattern GL_RG8,
+  pattern GL_RG8I,
+  pattern GL_RG8UI,
+  pattern GL_RG8_SNORM,
+  pattern GL_RGB,
+  pattern GL_RGB10,
+  pattern GL_RGB10_A2,
+  pattern GL_RGB10_A2UI,
+  pattern GL_RGB12,
+  pattern GL_RGB16,
+  pattern GL_RGB16F,
+  pattern GL_RGB16I,
+  pattern GL_RGB16UI,
+  pattern GL_RGB16_SNORM,
+  pattern GL_RGB32F,
+  pattern GL_RGB32I,
+  pattern GL_RGB32UI,
+  pattern GL_RGB4,
+  pattern GL_RGB5,
+  pattern GL_RGB565,
+  pattern GL_RGB5_A1,
+  pattern GL_RGB8,
+  pattern GL_RGB8I,
+  pattern GL_RGB8UI,
+  pattern GL_RGB8_SNORM,
+  pattern GL_RGB9_E5,
+  pattern GL_RGBA,
+  pattern GL_RGBA12,
+  pattern GL_RGBA16,
+  pattern GL_RGBA16F,
+  pattern GL_RGBA16I,
+  pattern GL_RGBA16UI,
+  pattern GL_RGBA16_SNORM,
+  pattern GL_RGBA2,
+  pattern GL_RGBA32F,
+  pattern GL_RGBA32I,
+  pattern GL_RGBA32UI,
+  pattern GL_RGBA4,
+  pattern GL_RGBA8,
+  pattern GL_RGBA8I,
+  pattern GL_RGBA8UI,
+  pattern GL_RGBA8_SNORM,
+  pattern GL_RGBA_INTEGER,
+  pattern GL_RGBA_MODE,
+  pattern GL_RGB_INTEGER,
+  pattern GL_RGB_SCALE,
+  pattern GL_RG_INTEGER,
+  pattern GL_RIGHT,
+  pattern GL_S,
+  pattern GL_SAMPLER,
+  pattern GL_SAMPLER_1D,
+  pattern GL_SAMPLER_1D_ARRAY,
+  pattern GL_SAMPLER_1D_ARRAY_SHADOW,
+  pattern GL_SAMPLER_1D_SHADOW,
+  pattern GL_SAMPLER_2D,
+  pattern GL_SAMPLER_2D_ARRAY,
+  pattern GL_SAMPLER_2D_ARRAY_SHADOW,
+  pattern GL_SAMPLER_2D_MULTISAMPLE,
+  pattern GL_SAMPLER_2D_MULTISAMPLE_ARRAY,
+  pattern GL_SAMPLER_2D_RECT,
+  pattern GL_SAMPLER_2D_RECT_SHADOW,
+  pattern GL_SAMPLER_2D_SHADOW,
+  pattern GL_SAMPLER_3D,
+  pattern GL_SAMPLER_BINDING,
+  pattern GL_SAMPLER_BUFFER,
+  pattern GL_SAMPLER_CUBE,
+  pattern GL_SAMPLER_CUBE_MAP_ARRAY,
+  pattern GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW,
+  pattern GL_SAMPLER_CUBE_SHADOW,
+  pattern GL_SAMPLES,
+  pattern GL_SAMPLES_PASSED,
+  pattern GL_SAMPLE_ALPHA_TO_COVERAGE,
+  pattern GL_SAMPLE_ALPHA_TO_ONE,
+  pattern GL_SAMPLE_BUFFERS,
+  pattern GL_SAMPLE_COVERAGE,
+  pattern GL_SAMPLE_COVERAGE_INVERT,
+  pattern GL_SAMPLE_COVERAGE_VALUE,
+  pattern GL_SAMPLE_MASK,
+  pattern GL_SAMPLE_MASK_VALUE,
+  pattern GL_SAMPLE_POSITION,
+  pattern GL_SAMPLE_SHADING,
+  pattern GL_SCISSOR_BIT,
+  pattern GL_SCISSOR_BOX,
+  pattern GL_SCISSOR_TEST,
+  pattern GL_SECONDARY_COLOR_ARRAY,
+  pattern GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING,
+  pattern GL_SECONDARY_COLOR_ARRAY_POINTER,
+  pattern GL_SECONDARY_COLOR_ARRAY_SIZE,
+  pattern GL_SECONDARY_COLOR_ARRAY_STRIDE,
+  pattern GL_SECONDARY_COLOR_ARRAY_TYPE,
+  pattern GL_SELECT,
+  pattern GL_SELECTION_BUFFER_POINTER,
+  pattern GL_SELECTION_BUFFER_SIZE,
+  pattern GL_SEPARATE_ATTRIBS,
+  pattern GL_SEPARATE_SPECULAR_COLOR,
+  pattern GL_SET,
+  pattern GL_SHADER,
+  pattern GL_SHADER_BINARY_FORMATS,
+  pattern GL_SHADER_COMPILER,
+  pattern GL_SHADER_IMAGE_ACCESS_BARRIER_BIT,
+  pattern GL_SHADER_IMAGE_ATOMIC,
+  pattern GL_SHADER_IMAGE_LOAD,
+  pattern GL_SHADER_IMAGE_STORE,
+  pattern GL_SHADER_SOURCE_LENGTH,
+  pattern GL_SHADER_STORAGE_BARRIER_BIT,
+  pattern GL_SHADER_STORAGE_BLOCK,
+  pattern GL_SHADER_STORAGE_BUFFER,
+  pattern GL_SHADER_STORAGE_BUFFER_BINDING,
+  pattern GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT,
+  pattern GL_SHADER_STORAGE_BUFFER_SIZE,
+  pattern GL_SHADER_STORAGE_BUFFER_START,
+  pattern GL_SHADER_TYPE,
+  pattern GL_SHADE_MODEL,
+  pattern GL_SHADING_LANGUAGE_VERSION,
+  pattern GL_SHININESS,
+  pattern GL_SHORT,
+  pattern GL_SIGNALED,
+  pattern GL_SIGNED_NORMALIZED,
+  pattern GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST,
+  pattern GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE,
+  pattern GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST,
+  pattern GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE,
+  pattern GL_SINGLE_COLOR,
+  pattern GL_SLUMINANCE,
+  pattern GL_SLUMINANCE8,
+  pattern GL_SLUMINANCE8_ALPHA8,
+  pattern GL_SLUMINANCE_ALPHA,
+  pattern GL_SMOOTH,
+  pattern GL_SMOOTH_LINE_WIDTH_GRANULARITY,
+  pattern GL_SMOOTH_LINE_WIDTH_RANGE,
+  pattern GL_SMOOTH_POINT_SIZE_GRANULARITY,
+  pattern GL_SMOOTH_POINT_SIZE_RANGE,
+  pattern GL_SOURCE0_ALPHA,
+  pattern GL_SOURCE0_RGB,
+  pattern GL_SOURCE1_ALPHA,
+  pattern GL_SOURCE1_RGB,
+  pattern GL_SOURCE2_ALPHA,
+  pattern GL_SOURCE2_RGB,
+  pattern GL_SPECULAR,
+  pattern GL_SPHERE_MAP,
+  pattern GL_SPOT_CUTOFF,
+  pattern GL_SPOT_DIRECTION,
+  pattern GL_SPOT_EXPONENT,
+  pattern GL_SRC0_ALPHA,
+  pattern GL_SRC0_RGB,
+  pattern GL_SRC1_ALPHA,
+  pattern GL_SRC1_COLOR,
+  pattern GL_SRC1_RGB,
+  pattern GL_SRC2_ALPHA,
+  pattern GL_SRC2_RGB,
+  pattern GL_SRC_ALPHA,
+  pattern GL_SRC_ALPHA_SATURATE,
+  pattern GL_SRC_COLOR,
+  pattern GL_SRGB,
+  pattern GL_SRGB8,
+  pattern GL_SRGB8_ALPHA8,
+  pattern GL_SRGB_ALPHA,
+  pattern GL_SRGB_READ,
+  pattern GL_SRGB_WRITE,
+  pattern GL_STACK_OVERFLOW,
+  pattern GL_STACK_UNDERFLOW,
+  pattern GL_STATIC_COPY,
+  pattern GL_STATIC_DRAW,
+  pattern GL_STATIC_READ,
+  pattern GL_STENCIL,
+  pattern GL_STENCIL_ATTACHMENT,
+  pattern GL_STENCIL_BACK_FAIL,
+  pattern GL_STENCIL_BACK_FUNC,
+  pattern GL_STENCIL_BACK_PASS_DEPTH_FAIL,
+  pattern GL_STENCIL_BACK_PASS_DEPTH_PASS,
+  pattern GL_STENCIL_BACK_REF,
+  pattern GL_STENCIL_BACK_VALUE_MASK,
+  pattern GL_STENCIL_BACK_WRITEMASK,
+  pattern GL_STENCIL_BITS,
+  pattern GL_STENCIL_BUFFER_BIT,
+  pattern GL_STENCIL_CLEAR_VALUE,
+  pattern GL_STENCIL_COMPONENTS,
+  pattern GL_STENCIL_FAIL,
+  pattern GL_STENCIL_FUNC,
+  pattern GL_STENCIL_INDEX,
+  pattern GL_STENCIL_INDEX1,
+  pattern GL_STENCIL_INDEX16,
+  pattern GL_STENCIL_INDEX4,
+  pattern GL_STENCIL_INDEX8,
+  pattern GL_STENCIL_PASS_DEPTH_FAIL,
+  pattern GL_STENCIL_PASS_DEPTH_PASS,
+  pattern GL_STENCIL_REF,
+  pattern GL_STENCIL_RENDERABLE,
+  pattern GL_STENCIL_TEST,
+  pattern GL_STENCIL_VALUE_MASK,
+  pattern GL_STENCIL_WRITEMASK,
+  pattern GL_STEREO,
+  pattern GL_STREAM_COPY,
+  pattern GL_STREAM_DRAW,
+  pattern GL_STREAM_READ,
+  pattern GL_SUBPIXEL_BITS,
+  pattern GL_SUBTRACT,
+  pattern GL_SYNC_CONDITION,
+  pattern GL_SYNC_FENCE,
+  pattern GL_SYNC_FLAGS,
+  pattern GL_SYNC_FLUSH_COMMANDS_BIT,
+  pattern GL_SYNC_GPU_COMMANDS_COMPLETE,
+  pattern GL_SYNC_STATUS,
+  pattern GL_T,
+  pattern GL_T2F_C3F_V3F,
+  pattern GL_T2F_C4F_N3F_V3F,
+  pattern GL_T2F_C4UB_V3F,
+  pattern GL_T2F_N3F_V3F,
+  pattern GL_T2F_V3F,
+  pattern GL_T4F_C4F_N3F_V4F,
+  pattern GL_T4F_V4F,
+  pattern GL_TESS_CONTROL_OUTPUT_VERTICES,
+  pattern GL_TESS_CONTROL_SHADER,
+  pattern GL_TESS_CONTROL_SHADER_BIT,
+  pattern GL_TESS_CONTROL_SUBROUTINE,
+  pattern GL_TESS_CONTROL_SUBROUTINE_UNIFORM,
+  pattern GL_TESS_CONTROL_TEXTURE,
+  pattern GL_TESS_EVALUATION_SHADER,
+  pattern GL_TESS_EVALUATION_SHADER_BIT,
+  pattern GL_TESS_EVALUATION_SUBROUTINE,
+  pattern GL_TESS_EVALUATION_SUBROUTINE_UNIFORM,
+  pattern GL_TESS_EVALUATION_TEXTURE,
+  pattern GL_TESS_GEN_MODE,
+  pattern GL_TESS_GEN_POINT_MODE,
+  pattern GL_TESS_GEN_SPACING,
+  pattern GL_TESS_GEN_VERTEX_ORDER,
+  pattern GL_TEXTURE,
+  pattern GL_TEXTURE0,
+  pattern GL_TEXTURE1,
+  pattern GL_TEXTURE10,
+  pattern GL_TEXTURE11,
+  pattern GL_TEXTURE12,
+  pattern GL_TEXTURE13,
+  pattern GL_TEXTURE14,
+  pattern GL_TEXTURE15,
+  pattern GL_TEXTURE16,
+  pattern GL_TEXTURE17,
+  pattern GL_TEXTURE18,
+  pattern GL_TEXTURE19,
+  pattern GL_TEXTURE2,
+  pattern GL_TEXTURE20,
+  pattern GL_TEXTURE21,
+  pattern GL_TEXTURE22,
+  pattern GL_TEXTURE23,
+  pattern GL_TEXTURE24,
+  pattern GL_TEXTURE25,
+  pattern GL_TEXTURE26,
+  pattern GL_TEXTURE27,
+  pattern GL_TEXTURE28,
+  pattern GL_TEXTURE29,
+  pattern GL_TEXTURE3,
+  pattern GL_TEXTURE30,
+  pattern GL_TEXTURE31,
+  pattern GL_TEXTURE4,
+  pattern GL_TEXTURE5,
+  pattern GL_TEXTURE6,
+  pattern GL_TEXTURE7,
+  pattern GL_TEXTURE8,
+  pattern GL_TEXTURE9,
+  pattern GL_TEXTURE_1D,
+  pattern GL_TEXTURE_1D_ARRAY,
+  pattern GL_TEXTURE_2D,
+  pattern GL_TEXTURE_2D_ARRAY,
+  pattern GL_TEXTURE_2D_MULTISAMPLE,
+  pattern GL_TEXTURE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_TEXTURE_3D,
+  pattern GL_TEXTURE_ALPHA_SIZE,
+  pattern GL_TEXTURE_ALPHA_TYPE,
+  pattern GL_TEXTURE_BASE_LEVEL,
+  pattern GL_TEXTURE_BINDING_1D,
+  pattern GL_TEXTURE_BINDING_1D_ARRAY,
+  pattern GL_TEXTURE_BINDING_2D,
+  pattern GL_TEXTURE_BINDING_2D_ARRAY,
+  pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE,
+  pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY,
+  pattern GL_TEXTURE_BINDING_3D,
+  pattern GL_TEXTURE_BINDING_BUFFER,
+  pattern GL_TEXTURE_BINDING_CUBE_MAP,
+  pattern GL_TEXTURE_BINDING_CUBE_MAP_ARRAY,
+  pattern GL_TEXTURE_BINDING_RECTANGLE,
+  pattern GL_TEXTURE_BIT,
+  pattern GL_TEXTURE_BLUE_SIZE,
+  pattern GL_TEXTURE_BLUE_TYPE,
+  pattern GL_TEXTURE_BORDER,
+  pattern GL_TEXTURE_BORDER_COLOR,
+  pattern GL_TEXTURE_BUFFER,
+  pattern GL_TEXTURE_BUFFER_BINDING,
+  pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING,
+  pattern GL_TEXTURE_BUFFER_OFFSET,
+  pattern GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT,
+  pattern GL_TEXTURE_BUFFER_SIZE,
+  pattern GL_TEXTURE_COMPARE_FUNC,
+  pattern GL_TEXTURE_COMPARE_MODE,
+  pattern GL_TEXTURE_COMPONENTS,
+  pattern GL_TEXTURE_COMPRESSED,
+  pattern GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT,
+  pattern GL_TEXTURE_COMPRESSED_BLOCK_SIZE,
+  pattern GL_TEXTURE_COMPRESSED_BLOCK_WIDTH,
+  pattern GL_TEXTURE_COMPRESSED_IMAGE_SIZE,
+  pattern GL_TEXTURE_COMPRESSION_HINT,
+  pattern GL_TEXTURE_COORD_ARRAY,
+  pattern GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING,
+  pattern GL_TEXTURE_COORD_ARRAY_POINTER,
+  pattern GL_TEXTURE_COORD_ARRAY_SIZE,
+  pattern GL_TEXTURE_COORD_ARRAY_STRIDE,
+  pattern GL_TEXTURE_COORD_ARRAY_TYPE,
+  pattern GL_TEXTURE_CUBE_MAP,
+  pattern GL_TEXTURE_CUBE_MAP_ARRAY,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z,
+  pattern GL_TEXTURE_CUBE_MAP_SEAMLESS,
+  pattern GL_TEXTURE_DEPTH,
+  pattern GL_TEXTURE_DEPTH_SIZE,
+  pattern GL_TEXTURE_DEPTH_TYPE,
+  pattern GL_TEXTURE_ENV,
+  pattern GL_TEXTURE_ENV_COLOR,
+  pattern GL_TEXTURE_ENV_MODE,
+  pattern GL_TEXTURE_FETCH_BARRIER_BIT,
+  pattern GL_TEXTURE_FILTER_CONTROL,
+  pattern GL_TEXTURE_FIXED_SAMPLE_LOCATIONS,
+  pattern GL_TEXTURE_GATHER,
+  pattern GL_TEXTURE_GATHER_SHADOW,
+  pattern GL_TEXTURE_GEN_MODE,
+  pattern GL_TEXTURE_GEN_Q,
+  pattern GL_TEXTURE_GEN_R,
+  pattern GL_TEXTURE_GEN_S,
+  pattern GL_TEXTURE_GEN_T,
+  pattern GL_TEXTURE_GREEN_SIZE,
+  pattern GL_TEXTURE_GREEN_TYPE,
+  pattern GL_TEXTURE_HEIGHT,
+  pattern GL_TEXTURE_IMAGE_FORMAT,
+  pattern GL_TEXTURE_IMAGE_TYPE,
+  pattern GL_TEXTURE_IMMUTABLE_FORMAT,
+  pattern GL_TEXTURE_IMMUTABLE_LEVELS,
+  pattern GL_TEXTURE_INTENSITY_SIZE,
+  pattern GL_TEXTURE_INTENSITY_TYPE,
+  pattern GL_TEXTURE_INTERNAL_FORMAT,
+  pattern GL_TEXTURE_LOD_BIAS,
+  pattern GL_TEXTURE_LUMINANCE_SIZE,
+  pattern GL_TEXTURE_LUMINANCE_TYPE,
+  pattern GL_TEXTURE_MAG_FILTER,
+  pattern GL_TEXTURE_MATRIX,
+  pattern GL_TEXTURE_MAX_LEVEL,
+  pattern GL_TEXTURE_MAX_LOD,
+  pattern GL_TEXTURE_MIN_FILTER,
+  pattern GL_TEXTURE_MIN_LOD,
+  pattern GL_TEXTURE_PRIORITY,
+  pattern GL_TEXTURE_RECTANGLE,
+  pattern GL_TEXTURE_RED_SIZE,
+  pattern GL_TEXTURE_RED_TYPE,
+  pattern GL_TEXTURE_RESIDENT,
+  pattern GL_TEXTURE_SAMPLES,
+  pattern GL_TEXTURE_SHADOW,
+  pattern GL_TEXTURE_SHARED_SIZE,
+  pattern GL_TEXTURE_STACK_DEPTH,
+  pattern GL_TEXTURE_STENCIL_SIZE,
+  pattern GL_TEXTURE_SWIZZLE_A,
+  pattern GL_TEXTURE_SWIZZLE_B,
+  pattern GL_TEXTURE_SWIZZLE_G,
+  pattern GL_TEXTURE_SWIZZLE_R,
+  pattern GL_TEXTURE_SWIZZLE_RGBA,
+  pattern GL_TEXTURE_UPDATE_BARRIER_BIT,
+  pattern GL_TEXTURE_VIEW,
+  pattern GL_TEXTURE_VIEW_MIN_LAYER,
+  pattern GL_TEXTURE_VIEW_MIN_LEVEL,
+  pattern GL_TEXTURE_VIEW_NUM_LAYERS,
+  pattern GL_TEXTURE_VIEW_NUM_LEVELS,
+  pattern GL_TEXTURE_WIDTH,
+  pattern GL_TEXTURE_WRAP_R,
+  pattern GL_TEXTURE_WRAP_S,
+  pattern GL_TEXTURE_WRAP_T,
+  pattern GL_TIMEOUT_EXPIRED,
+  pattern GL_TIMEOUT_IGNORED,
+  pattern GL_TIMESTAMP,
+  pattern GL_TIME_ELAPSED,
+  pattern GL_TOP_LEVEL_ARRAY_SIZE,
+  pattern GL_TOP_LEVEL_ARRAY_STRIDE,
+  pattern GL_TRANSFORM_BIT,
+  pattern GL_TRANSFORM_FEEDBACK,
+  pattern GL_TRANSFORM_FEEDBACK_ACTIVE,
+  pattern GL_TRANSFORM_FEEDBACK_BARRIER_BIT,
+  pattern GL_TRANSFORM_FEEDBACK_BINDING,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_BINDING,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_INDEX,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_MODE,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_SIZE,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_START,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE,
+  pattern GL_TRANSFORM_FEEDBACK_PAUSED,
+  pattern GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN,
+  pattern GL_TRANSFORM_FEEDBACK_VARYING,
+  pattern GL_TRANSFORM_FEEDBACK_VARYINGS,
+  pattern GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH,
+  pattern GL_TRANSPOSE_COLOR_MATRIX,
+  pattern GL_TRANSPOSE_MODELVIEW_MATRIX,
+  pattern GL_TRANSPOSE_PROJECTION_MATRIX,
+  pattern GL_TRANSPOSE_TEXTURE_MATRIX,
+  pattern GL_TRIANGLES,
+  pattern GL_TRIANGLES_ADJACENCY,
+  pattern GL_TRIANGLE_FAN,
+  pattern GL_TRIANGLE_STRIP,
+  pattern GL_TRIANGLE_STRIP_ADJACENCY,
+  pattern GL_TRUE,
+  pattern GL_TYPE,
+  pattern GL_UNDEFINED_VERTEX,
+  pattern GL_UNIFORM,
+  pattern GL_UNIFORM_ARRAY_STRIDE,
+  pattern GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX,
+  pattern GL_UNIFORM_BARRIER_BIT,
+  pattern GL_UNIFORM_BLOCK,
+  pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS,
+  pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES,
+  pattern GL_UNIFORM_BLOCK_BINDING,
+  pattern GL_UNIFORM_BLOCK_DATA_SIZE,
+  pattern GL_UNIFORM_BLOCK_INDEX,
+  pattern GL_UNIFORM_BLOCK_NAME_LENGTH,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER,
+  pattern GL_UNIFORM_BUFFER,
+  pattern GL_UNIFORM_BUFFER_BINDING,
+  pattern GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT,
+  pattern GL_UNIFORM_BUFFER_SIZE,
+  pattern GL_UNIFORM_BUFFER_START,
+  pattern GL_UNIFORM_IS_ROW_MAJOR,
+  pattern GL_UNIFORM_MATRIX_STRIDE,
+  pattern GL_UNIFORM_NAME_LENGTH,
+  pattern GL_UNIFORM_OFFSET,
+  pattern GL_UNIFORM_SIZE,
+  pattern GL_UNIFORM_TYPE,
+  pattern GL_UNPACK_ALIGNMENT,
+  pattern GL_UNPACK_COMPRESSED_BLOCK_DEPTH,
+  pattern GL_UNPACK_COMPRESSED_BLOCK_HEIGHT,
+  pattern GL_UNPACK_COMPRESSED_BLOCK_SIZE,
+  pattern GL_UNPACK_COMPRESSED_BLOCK_WIDTH,
+  pattern GL_UNPACK_IMAGE_HEIGHT,
+  pattern GL_UNPACK_LSB_FIRST,
+  pattern GL_UNPACK_ROW_LENGTH,
+  pattern GL_UNPACK_SKIP_IMAGES,
+  pattern GL_UNPACK_SKIP_PIXELS,
+  pattern GL_UNPACK_SKIP_ROWS,
+  pattern GL_UNPACK_SWAP_BYTES,
+  pattern GL_UNSIGNALED,
+  pattern GL_UNSIGNED_BYTE,
+  pattern GL_UNSIGNED_BYTE_2_3_3_REV,
+  pattern GL_UNSIGNED_BYTE_3_3_2,
+  pattern GL_UNSIGNED_INT,
+  pattern GL_UNSIGNED_INT_10F_11F_11F_REV,
+  pattern GL_UNSIGNED_INT_10_10_10_2,
+  pattern GL_UNSIGNED_INT_24_8,
+  pattern GL_UNSIGNED_INT_2_10_10_10_REV,
+  pattern GL_UNSIGNED_INT_5_9_9_9_REV,
+  pattern GL_UNSIGNED_INT_8_8_8_8,
+  pattern GL_UNSIGNED_INT_8_8_8_8_REV,
+  pattern GL_UNSIGNED_INT_ATOMIC_COUNTER,
+  pattern GL_UNSIGNED_INT_IMAGE_1D,
+  pattern GL_UNSIGNED_INT_IMAGE_1D_ARRAY,
+  pattern GL_UNSIGNED_INT_IMAGE_2D,
+  pattern GL_UNSIGNED_INT_IMAGE_2D_ARRAY,
+  pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE,
+  pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_UNSIGNED_INT_IMAGE_2D_RECT,
+  pattern GL_UNSIGNED_INT_IMAGE_3D,
+  pattern GL_UNSIGNED_INT_IMAGE_BUFFER,
+  pattern GL_UNSIGNED_INT_IMAGE_CUBE,
+  pattern GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_1D,
+  pattern GL_UNSIGNED_INT_SAMPLER_1D_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_RECT,
+  pattern GL_UNSIGNED_INT_SAMPLER_3D,
+  pattern GL_UNSIGNED_INT_SAMPLER_BUFFER,
+  pattern GL_UNSIGNED_INT_SAMPLER_CUBE,
+  pattern GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY,
+  pattern GL_UNSIGNED_INT_VEC2,
+  pattern GL_UNSIGNED_INT_VEC3,
+  pattern GL_UNSIGNED_INT_VEC4,
+  pattern GL_UNSIGNED_NORMALIZED,
+  pattern GL_UNSIGNED_SHORT,
+  pattern GL_UNSIGNED_SHORT_1_5_5_5_REV,
+  pattern GL_UNSIGNED_SHORT_4_4_4_4,
+  pattern GL_UNSIGNED_SHORT_4_4_4_4_REV,
+  pattern GL_UNSIGNED_SHORT_5_5_5_1,
+  pattern GL_UNSIGNED_SHORT_5_6_5,
+  pattern GL_UNSIGNED_SHORT_5_6_5_REV,
+  pattern GL_UPPER_LEFT,
+  pattern GL_V2F,
+  pattern GL_V3F,
+  pattern GL_VALIDATE_STATUS,
+  pattern GL_VENDOR,
+  pattern GL_VERSION,
+  pattern GL_VERTEX_ARRAY,
+  pattern GL_VERTEX_ARRAY_BINDING,
+  pattern GL_VERTEX_ARRAY_BUFFER_BINDING,
+  pattern GL_VERTEX_ARRAY_POINTER,
+  pattern GL_VERTEX_ARRAY_SIZE,
+  pattern GL_VERTEX_ARRAY_STRIDE,
+  pattern GL_VERTEX_ARRAY_TYPE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT,
+  pattern GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING,
+  pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR,
+  pattern GL_VERTEX_ATTRIB_ARRAY_ENABLED,
+  pattern GL_VERTEX_ATTRIB_ARRAY_INTEGER,
+  pattern GL_VERTEX_ATTRIB_ARRAY_LONG,
+  pattern GL_VERTEX_ATTRIB_ARRAY_NORMALIZED,
+  pattern GL_VERTEX_ATTRIB_ARRAY_POINTER,
+  pattern GL_VERTEX_ATTRIB_ARRAY_SIZE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_STRIDE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_TYPE,
+  pattern GL_VERTEX_ATTRIB_BINDING,
+  pattern GL_VERTEX_ATTRIB_RELATIVE_OFFSET,
+  pattern GL_VERTEX_BINDING_BUFFER,
+  pattern GL_VERTEX_BINDING_DIVISOR,
+  pattern GL_VERTEX_BINDING_OFFSET,
+  pattern GL_VERTEX_BINDING_STRIDE,
+  pattern GL_VERTEX_PROGRAM_POINT_SIZE,
+  pattern GL_VERTEX_PROGRAM_TWO_SIDE,
+  pattern GL_VERTEX_SHADER,
+  pattern GL_VERTEX_SHADER_BIT,
+  pattern GL_VERTEX_SUBROUTINE,
+  pattern GL_VERTEX_SUBROUTINE_UNIFORM,
+  pattern GL_VERTEX_TEXTURE,
+  pattern GL_VIEWPORT,
+  pattern GL_VIEWPORT_BIT,
+  pattern GL_VIEWPORT_BOUNDS_RANGE,
+  pattern GL_VIEWPORT_INDEX_PROVOKING_VERTEX,
+  pattern GL_VIEWPORT_SUBPIXEL_BITS,
+  pattern GL_VIEW_CLASS_128_BITS,
+  pattern GL_VIEW_CLASS_16_BITS,
+  pattern GL_VIEW_CLASS_24_BITS,
+  pattern GL_VIEW_CLASS_32_BITS,
+  pattern GL_VIEW_CLASS_48_BITS,
+  pattern GL_VIEW_CLASS_64_BITS,
+  pattern GL_VIEW_CLASS_8_BITS,
+  pattern GL_VIEW_CLASS_96_BITS,
+  pattern GL_VIEW_CLASS_BPTC_FLOAT,
+  pattern GL_VIEW_CLASS_BPTC_UNORM,
+  pattern GL_VIEW_CLASS_RGTC1_RED,
+  pattern GL_VIEW_CLASS_RGTC2_RG,
+  pattern GL_VIEW_CLASS_S3TC_DXT1_RGB,
+  pattern GL_VIEW_CLASS_S3TC_DXT1_RGBA,
+  pattern GL_VIEW_CLASS_S3TC_DXT3_RGBA,
+  pattern GL_VIEW_CLASS_S3TC_DXT5_RGBA,
+  pattern GL_VIEW_COMPATIBILITY_CLASS,
+  pattern GL_WAIT_FAILED,
+  pattern GL_WEIGHT_ARRAY_BUFFER_BINDING,
+  pattern GL_WRITE_ONLY,
+  pattern GL_XOR,
+  pattern GL_ZERO,
+  pattern GL_ZOOM_X,
+  pattern GL_ZOOM_Y,
+  -- * Functions
+  glAccum,
+  glActiveShaderProgram,
+  glActiveTexture,
+  glAlphaFunc,
+  glAreTexturesResident,
+  glArrayElement,
+  glAttachShader,
+  glBegin,
+  glBeginConditionalRender,
+  glBeginQuery,
+  glBeginQueryIndexed,
+  glBeginTransformFeedback,
+  glBindAttribLocation,
+  glBindBuffer,
+  glBindBufferBase,
+  glBindBufferRange,
+  glBindBuffersBase,
+  glBindBuffersRange,
+  glBindFragDataLocation,
+  glBindFragDataLocationIndexed,
+  glBindFramebuffer,
+  glBindImageTexture,
+  glBindImageTextures,
+  glBindProgramPipeline,
+  glBindRenderbuffer,
+  glBindSampler,
+  glBindSamplers,
+  glBindTexture,
+  glBindTextures,
+  glBindTransformFeedback,
+  glBindVertexArray,
+  glBindVertexBuffer,
+  glBindVertexBuffers,
+  glBitmap,
+  glBlendColor,
+  glBlendEquation,
+  glBlendEquationSeparate,
+  glBlendEquationSeparatei,
+  glBlendEquationi,
+  glBlendFunc,
+  glBlendFuncSeparate,
+  glBlendFuncSeparatei,
+  glBlendFunci,
+  glBlitFramebuffer,
+  glBufferData,
+  glBufferStorage,
+  glBufferSubData,
+  glCallList,
+  glCallLists,
+  glCheckFramebufferStatus,
+  glClampColor,
+  glClear,
+  glClearAccum,
+  glClearBufferData,
+  glClearBufferSubData,
+  glClearBufferfi,
+  glClearBufferfv,
+  glClearBufferiv,
+  glClearBufferuiv,
+  glClearColor,
+  glClearDepth,
+  glClearDepthf,
+  glClearIndex,
+  glClearStencil,
+  glClearTexImage,
+  glClearTexSubImage,
+  glClientActiveTexture,
+  glClientWaitSync,
+  glClipPlane,
+  glColor3b,
+  glColor3bv,
+  glColor3d,
+  glColor3dv,
+  glColor3f,
+  glColor3fv,
+  glColor3i,
+  glColor3iv,
+  glColor3s,
+  glColor3sv,
+  glColor3ub,
+  glColor3ubv,
+  glColor3ui,
+  glColor3uiv,
+  glColor3us,
+  glColor3usv,
+  glColor4b,
+  glColor4bv,
+  glColor4d,
+  glColor4dv,
+  glColor4f,
+  glColor4fv,
+  glColor4i,
+  glColor4iv,
+  glColor4s,
+  glColor4sv,
+  glColor4ub,
+  glColor4ubv,
+  glColor4ui,
+  glColor4uiv,
+  glColor4us,
+  glColor4usv,
+  glColorMask,
+  glColorMaski,
+  glColorMaterial,
+  glColorP3ui,
+  glColorP3uiv,
+  glColorP4ui,
+  glColorP4uiv,
+  glColorPointer,
+  glCompileShader,
+  glCompressedTexImage1D,
+  glCompressedTexImage2D,
+  glCompressedTexImage3D,
+  glCompressedTexSubImage1D,
+  glCompressedTexSubImage2D,
+  glCompressedTexSubImage3D,
+  glCopyBufferSubData,
+  glCopyImageSubData,
+  glCopyPixels,
+  glCopyTexImage1D,
+  glCopyTexImage2D,
+  glCopyTexSubImage1D,
+  glCopyTexSubImage2D,
+  glCopyTexSubImage3D,
+  glCreateProgram,
+  glCreateShader,
+  glCreateShaderProgramv,
+  glCullFace,
+  glDebugMessageCallback,
+  glDebugMessageControl,
+  glDebugMessageInsert,
+  glDeleteBuffers,
+  glDeleteFramebuffers,
+  glDeleteLists,
+  glDeleteProgram,
+  glDeleteProgramPipelines,
+  glDeleteQueries,
+  glDeleteRenderbuffers,
+  glDeleteSamplers,
+  glDeleteShader,
+  glDeleteSync,
+  glDeleteTextures,
+  glDeleteTransformFeedbacks,
+  glDeleteVertexArrays,
+  glDepthFunc,
+  glDepthMask,
+  glDepthRange,
+  glDepthRangeArrayv,
+  glDepthRangeIndexed,
+  glDepthRangef,
+  glDetachShader,
+  glDisable,
+  glDisableClientState,
+  glDisableVertexAttribArray,
+  glDisablei,
+  glDispatchCompute,
+  glDispatchComputeIndirect,
+  glDrawArrays,
+  glDrawArraysIndirect,
+  glDrawArraysInstanced,
+  glDrawArraysInstancedBaseInstance,
+  glDrawBuffer,
+  glDrawBuffers,
+  glDrawElements,
+  glDrawElementsBaseVertex,
+  glDrawElementsIndirect,
+  glDrawElementsInstanced,
+  glDrawElementsInstancedBaseInstance,
+  glDrawElementsInstancedBaseVertex,
+  glDrawElementsInstancedBaseVertexBaseInstance,
+  glDrawPixels,
+  glDrawRangeElements,
+  glDrawRangeElementsBaseVertex,
+  glDrawTransformFeedback,
+  glDrawTransformFeedbackInstanced,
+  glDrawTransformFeedbackStream,
+  glDrawTransformFeedbackStreamInstanced,
+  glEdgeFlag,
+  glEdgeFlagPointer,
+  glEdgeFlagv,
+  glEnable,
+  glEnableClientState,
+  glEnableVertexAttribArray,
+  glEnablei,
+  glEnd,
+  glEndConditionalRender,
+  glEndList,
+  glEndQuery,
+  glEndQueryIndexed,
+  glEndTransformFeedback,
+  glEvalCoord1d,
+  glEvalCoord1dv,
+  glEvalCoord1f,
+  glEvalCoord1fv,
+  glEvalCoord2d,
+  glEvalCoord2dv,
+  glEvalCoord2f,
+  glEvalCoord2fv,
+  glEvalMesh1,
+  glEvalMesh2,
+  glEvalPoint1,
+  glEvalPoint2,
+  glFeedbackBuffer,
+  glFenceSync,
+  glFinish,
+  glFlush,
+  glFlushMappedBufferRange,
+  glFogCoordPointer,
+  glFogCoordd,
+  glFogCoorddv,
+  glFogCoordf,
+  glFogCoordfv,
+  glFogf,
+  glFogfv,
+  glFogi,
+  glFogiv,
+  glFramebufferParameteri,
+  glFramebufferRenderbuffer,
+  glFramebufferTexture,
+  glFramebufferTexture1D,
+  glFramebufferTexture2D,
+  glFramebufferTexture3D,
+  glFramebufferTextureLayer,
+  glFrontFace,
+  glFrustum,
+  glGenBuffers,
+  glGenFramebuffers,
+  glGenLists,
+  glGenProgramPipelines,
+  glGenQueries,
+  glGenRenderbuffers,
+  glGenSamplers,
+  glGenTextures,
+  glGenTransformFeedbacks,
+  glGenVertexArrays,
+  glGenerateMipmap,
+  glGetActiveAtomicCounterBufferiv,
+  glGetActiveAttrib,
+  glGetActiveSubroutineName,
+  glGetActiveSubroutineUniformName,
+  glGetActiveSubroutineUniformiv,
+  glGetActiveUniform,
+  glGetActiveUniformBlockName,
+  glGetActiveUniformBlockiv,
+  glGetActiveUniformName,
+  glGetActiveUniformsiv,
+  glGetAttachedShaders,
+  glGetAttribLocation,
+  glGetBooleani_v,
+  glGetBooleanv,
+  glGetBufferParameteri64v,
+  glGetBufferParameteriv,
+  glGetBufferPointerv,
+  glGetBufferSubData,
+  glGetClipPlane,
+  glGetCompressedTexImage,
+  glGetDebugMessageLog,
+  glGetDoublei_v,
+  glGetDoublev,
+  glGetError,
+  glGetFloati_v,
+  glGetFloatv,
+  glGetFragDataIndex,
+  glGetFragDataLocation,
+  glGetFramebufferAttachmentParameteriv,
+  glGetFramebufferParameteriv,
+  glGetInteger64i_v,
+  glGetInteger64v,
+  glGetIntegeri_v,
+  glGetIntegerv,
+  glGetInternalformati64v,
+  glGetInternalformativ,
+  glGetLightfv,
+  glGetLightiv,
+  glGetMapdv,
+  glGetMapfv,
+  glGetMapiv,
+  glGetMaterialfv,
+  glGetMaterialiv,
+  glGetMultisamplefv,
+  glGetObjectLabel,
+  glGetObjectPtrLabel,
+  glGetPixelMapfv,
+  glGetPixelMapuiv,
+  glGetPixelMapusv,
+  glGetPointerv,
+  glGetPolygonStipple,
+  glGetProgramBinary,
+  glGetProgramInfoLog,
+  glGetProgramInterfaceiv,
+  glGetProgramPipelineInfoLog,
+  glGetProgramPipelineiv,
+  glGetProgramResourceIndex,
+  glGetProgramResourceLocation,
+  glGetProgramResourceLocationIndex,
+  glGetProgramResourceName,
+  glGetProgramResourceiv,
+  glGetProgramStageiv,
+  glGetProgramiv,
+  glGetQueryIndexediv,
+  glGetQueryObjecti64v,
+  glGetQueryObjectiv,
+  glGetQueryObjectui64v,
+  glGetQueryObjectuiv,
+  glGetQueryiv,
+  glGetRenderbufferParameteriv,
+  glGetSamplerParameterIiv,
+  glGetSamplerParameterIuiv,
+  glGetSamplerParameterfv,
+  glGetSamplerParameteriv,
+  glGetShaderInfoLog,
+  glGetShaderPrecisionFormat,
+  glGetShaderSource,
+  glGetShaderiv,
+  glGetString,
+  glGetStringi,
+  glGetSubroutineIndex,
+  glGetSubroutineUniformLocation,
+  glGetSynciv,
+  glGetTexEnvfv,
+  glGetTexEnviv,
+  glGetTexGendv,
+  glGetTexGenfv,
+  glGetTexGeniv,
+  glGetTexImage,
+  glGetTexLevelParameterfv,
+  glGetTexLevelParameteriv,
+  glGetTexParameterIiv,
+  glGetTexParameterIuiv,
+  glGetTexParameterfv,
+  glGetTexParameteriv,
+  glGetTransformFeedbackVarying,
+  glGetUniformBlockIndex,
+  glGetUniformIndices,
+  glGetUniformLocation,
+  glGetUniformSubroutineuiv,
+  glGetUniformdv,
+  glGetUniformfv,
+  glGetUniformiv,
+  glGetUniformuiv,
+  glGetVertexAttribIiv,
+  glGetVertexAttribIuiv,
+  glGetVertexAttribLdv,
+  glGetVertexAttribPointerv,
+  glGetVertexAttribdv,
+  glGetVertexAttribfv,
+  glGetVertexAttribiv,
+  glHint,
+  glIndexMask,
+  glIndexPointer,
+  glIndexd,
+  glIndexdv,
+  glIndexf,
+  glIndexfv,
+  glIndexi,
+  glIndexiv,
+  glIndexs,
+  glIndexsv,
+  glIndexub,
+  glIndexubv,
+  glInitNames,
+  glInterleavedArrays,
+  glInvalidateBufferData,
+  glInvalidateBufferSubData,
+  glInvalidateFramebuffer,
+  glInvalidateSubFramebuffer,
+  glInvalidateTexImage,
+  glInvalidateTexSubImage,
+  glIsBuffer,
+  glIsEnabled,
+  glIsEnabledi,
+  glIsFramebuffer,
+  glIsList,
+  glIsProgram,
+  glIsProgramPipeline,
+  glIsQuery,
+  glIsRenderbuffer,
+  glIsSampler,
+  glIsShader,
+  glIsSync,
+  glIsTexture,
+  glIsTransformFeedback,
+  glIsVertexArray,
+  glLightModelf,
+  glLightModelfv,
+  glLightModeli,
+  glLightModeliv,
+  glLightf,
+  glLightfv,
+  glLighti,
+  glLightiv,
+  glLineStipple,
+  glLineWidth,
+  glLinkProgram,
+  glListBase,
+  glLoadIdentity,
+  glLoadMatrixd,
+  glLoadMatrixf,
+  glLoadName,
+  glLoadTransposeMatrixd,
+  glLoadTransposeMatrixf,
+  glLogicOp,
+  glMap1d,
+  glMap1f,
+  glMap2d,
+  glMap2f,
+  glMapBuffer,
+  glMapBufferRange,
+  glMapGrid1d,
+  glMapGrid1f,
+  glMapGrid2d,
+  glMapGrid2f,
+  glMaterialf,
+  glMaterialfv,
+  glMateriali,
+  glMaterialiv,
+  glMatrixMode,
+  glMemoryBarrier,
+  glMinSampleShading,
+  glMultMatrixd,
+  glMultMatrixf,
+  glMultTransposeMatrixd,
+  glMultTransposeMatrixf,
+  glMultiDrawArrays,
+  glMultiDrawArraysIndirect,
+  glMultiDrawElements,
+  glMultiDrawElementsBaseVertex,
+  glMultiDrawElementsIndirect,
+  glMultiTexCoord1d,
+  glMultiTexCoord1dv,
+  glMultiTexCoord1f,
+  glMultiTexCoord1fv,
+  glMultiTexCoord1i,
+  glMultiTexCoord1iv,
+  glMultiTexCoord1s,
+  glMultiTexCoord1sv,
+  glMultiTexCoord2d,
+  glMultiTexCoord2dv,
+  glMultiTexCoord2f,
+  glMultiTexCoord2fv,
+  glMultiTexCoord2i,
+  glMultiTexCoord2iv,
+  glMultiTexCoord2s,
+  glMultiTexCoord2sv,
+  glMultiTexCoord3d,
+  glMultiTexCoord3dv,
+  glMultiTexCoord3f,
+  glMultiTexCoord3fv,
+  glMultiTexCoord3i,
+  glMultiTexCoord3iv,
+  glMultiTexCoord3s,
+  glMultiTexCoord3sv,
+  glMultiTexCoord4d,
+  glMultiTexCoord4dv,
+  glMultiTexCoord4f,
+  glMultiTexCoord4fv,
+  glMultiTexCoord4i,
+  glMultiTexCoord4iv,
+  glMultiTexCoord4s,
+  glMultiTexCoord4sv,
+  glMultiTexCoordP1ui,
+  glMultiTexCoordP1uiv,
+  glMultiTexCoordP2ui,
+  glMultiTexCoordP2uiv,
+  glMultiTexCoordP3ui,
+  glMultiTexCoordP3uiv,
+  glMultiTexCoordP4ui,
+  glMultiTexCoordP4uiv,
+  glNewList,
+  glNormal3b,
+  glNormal3bv,
+  glNormal3d,
+  glNormal3dv,
+  glNormal3f,
+  glNormal3fv,
+  glNormal3i,
+  glNormal3iv,
+  glNormal3s,
+  glNormal3sv,
+  glNormalP3ui,
+  glNormalP3uiv,
+  glNormalPointer,
+  glObjectLabel,
+  glObjectPtrLabel,
+  glOrtho,
+  glPassThrough,
+  glPatchParameterfv,
+  glPatchParameteri,
+  glPauseTransformFeedback,
+  glPixelMapfv,
+  glPixelMapuiv,
+  glPixelMapusv,
+  glPixelStoref,
+  glPixelStorei,
+  glPixelTransferf,
+  glPixelTransferi,
+  glPixelZoom,
+  glPointParameterf,
+  glPointParameterfv,
+  glPointParameteri,
+  glPointParameteriv,
+  glPointSize,
+  glPolygonMode,
+  glPolygonOffset,
+  glPolygonStipple,
+  glPopAttrib,
+  glPopClientAttrib,
+  glPopDebugGroup,
+  glPopMatrix,
+  glPopName,
+  glPrimitiveRestartIndex,
+  glPrioritizeTextures,
+  glProgramBinary,
+  glProgramParameteri,
+  glProgramUniform1d,
+  glProgramUniform1dv,
+  glProgramUniform1f,
+  glProgramUniform1fv,
+  glProgramUniform1i,
+  glProgramUniform1iv,
+  glProgramUniform1ui,
+  glProgramUniform1uiv,
+  glProgramUniform2d,
+  glProgramUniform2dv,
+  glProgramUniform2f,
+  glProgramUniform2fv,
+  glProgramUniform2i,
+  glProgramUniform2iv,
+  glProgramUniform2ui,
+  glProgramUniform2uiv,
+  glProgramUniform3d,
+  glProgramUniform3dv,
+  glProgramUniform3f,
+  glProgramUniform3fv,
+  glProgramUniform3i,
+  glProgramUniform3iv,
+  glProgramUniform3ui,
+  glProgramUniform3uiv,
+  glProgramUniform4d,
+  glProgramUniform4dv,
+  glProgramUniform4f,
+  glProgramUniform4fv,
+  glProgramUniform4i,
+  glProgramUniform4iv,
+  glProgramUniform4ui,
+  glProgramUniform4uiv,
+  glProgramUniformMatrix2dv,
+  glProgramUniformMatrix2fv,
+  glProgramUniformMatrix2x3dv,
+  glProgramUniformMatrix2x3fv,
+  glProgramUniformMatrix2x4dv,
+  glProgramUniformMatrix2x4fv,
+  glProgramUniformMatrix3dv,
+  glProgramUniformMatrix3fv,
+  glProgramUniformMatrix3x2dv,
+  glProgramUniformMatrix3x2fv,
+  glProgramUniformMatrix3x4dv,
+  glProgramUniformMatrix3x4fv,
+  glProgramUniformMatrix4dv,
+  glProgramUniformMatrix4fv,
+  glProgramUniformMatrix4x2dv,
+  glProgramUniformMatrix4x2fv,
+  glProgramUniformMatrix4x3dv,
+  glProgramUniformMatrix4x3fv,
+  glProvokingVertex,
+  glPushAttrib,
+  glPushClientAttrib,
+  glPushDebugGroup,
+  glPushMatrix,
+  glPushName,
+  glQueryCounter,
+  glRasterPos2d,
+  glRasterPos2dv,
+  glRasterPos2f,
+  glRasterPos2fv,
+  glRasterPos2i,
+  glRasterPos2iv,
+  glRasterPos2s,
+  glRasterPos2sv,
+  glRasterPos3d,
+  glRasterPos3dv,
+  glRasterPos3f,
+  glRasterPos3fv,
+  glRasterPos3i,
+  glRasterPos3iv,
+  glRasterPos3s,
+  glRasterPos3sv,
+  glRasterPos4d,
+  glRasterPos4dv,
+  glRasterPos4f,
+  glRasterPos4fv,
+  glRasterPos4i,
+  glRasterPos4iv,
+  glRasterPos4s,
+  glRasterPos4sv,
+  glReadBuffer,
+  glReadPixels,
+  glRectd,
+  glRectdv,
+  glRectf,
+  glRectfv,
+  glRecti,
+  glRectiv,
+  glRects,
+  glRectsv,
+  glReleaseShaderCompiler,
+  glRenderMode,
+  glRenderbufferStorage,
+  glRenderbufferStorageMultisample,
+  glResumeTransformFeedback,
+  glRotated,
+  glRotatef,
+  glSampleCoverage,
+  glSampleMaski,
+  glSamplerParameterIiv,
+  glSamplerParameterIuiv,
+  glSamplerParameterf,
+  glSamplerParameterfv,
+  glSamplerParameteri,
+  glSamplerParameteriv,
+  glScaled,
+  glScalef,
+  glScissor,
+  glScissorArrayv,
+  glScissorIndexed,
+  glScissorIndexedv,
+  glSecondaryColor3b,
+  glSecondaryColor3bv,
+  glSecondaryColor3d,
+  glSecondaryColor3dv,
+  glSecondaryColor3f,
+  glSecondaryColor3fv,
+  glSecondaryColor3i,
+  glSecondaryColor3iv,
+  glSecondaryColor3s,
+  glSecondaryColor3sv,
+  glSecondaryColor3ub,
+  glSecondaryColor3ubv,
+  glSecondaryColor3ui,
+  glSecondaryColor3uiv,
+  glSecondaryColor3us,
+  glSecondaryColor3usv,
+  glSecondaryColorP3ui,
+  glSecondaryColorP3uiv,
+  glSecondaryColorPointer,
+  glSelectBuffer,
+  glShadeModel,
+  glShaderBinary,
+  glShaderSource,
+  glShaderStorageBlockBinding,
+  glStencilFunc,
+  glStencilFuncSeparate,
+  glStencilMask,
+  glStencilMaskSeparate,
+  glStencilOp,
+  glStencilOpSeparate,
+  glTexBuffer,
+  glTexBufferRange,
+  glTexCoord1d,
+  glTexCoord1dv,
+  glTexCoord1f,
+  glTexCoord1fv,
+  glTexCoord1i,
+  glTexCoord1iv,
+  glTexCoord1s,
+  glTexCoord1sv,
+  glTexCoord2d,
+  glTexCoord2dv,
+  glTexCoord2f,
+  glTexCoord2fv,
+  glTexCoord2i,
+  glTexCoord2iv,
+  glTexCoord2s,
+  glTexCoord2sv,
+  glTexCoord3d,
+  glTexCoord3dv,
+  glTexCoord3f,
+  glTexCoord3fv,
+  glTexCoord3i,
+  glTexCoord3iv,
+  glTexCoord3s,
+  glTexCoord3sv,
+  glTexCoord4d,
+  glTexCoord4dv,
+  glTexCoord4f,
+  glTexCoord4fv,
+  glTexCoord4i,
+  glTexCoord4iv,
+  glTexCoord4s,
+  glTexCoord4sv,
+  glTexCoordP1ui,
+  glTexCoordP1uiv,
+  glTexCoordP2ui,
+  glTexCoordP2uiv,
+  glTexCoordP3ui,
+  glTexCoordP3uiv,
+  glTexCoordP4ui,
+  glTexCoordP4uiv,
+  glTexCoordPointer,
+  glTexEnvf,
+  glTexEnvfv,
+  glTexEnvi,
+  glTexEnviv,
+  glTexGend,
+  glTexGendv,
+  glTexGenf,
+  glTexGenfv,
+  glTexGeni,
+  glTexGeniv,
+  glTexImage1D,
+  glTexImage2D,
+  glTexImage2DMultisample,
+  glTexImage3D,
+  glTexImage3DMultisample,
+  glTexParameterIiv,
+  glTexParameterIuiv,
+  glTexParameterf,
+  glTexParameterfv,
+  glTexParameteri,
+  glTexParameteriv,
+  glTexStorage1D,
+  glTexStorage2D,
+  glTexStorage2DMultisample,
+  glTexStorage3D,
+  glTexStorage3DMultisample,
+  glTexSubImage1D,
+  glTexSubImage2D,
+  glTexSubImage3D,
+  glTextureView,
+  glTransformFeedbackVaryings,
+  glTranslated,
+  glTranslatef,
+  glUniform1d,
+  glUniform1dv,
+  glUniform1f,
+  glUniform1fv,
+  glUniform1i,
+  glUniform1iv,
+  glUniform1ui,
+  glUniform1uiv,
+  glUniform2d,
+  glUniform2dv,
+  glUniform2f,
+  glUniform2fv,
+  glUniform2i,
+  glUniform2iv,
+  glUniform2ui,
+  glUniform2uiv,
+  glUniform3d,
+  glUniform3dv,
+  glUniform3f,
+  glUniform3fv,
+  glUniform3i,
+  glUniform3iv,
+  glUniform3ui,
+  glUniform3uiv,
+  glUniform4d,
+  glUniform4dv,
+  glUniform4f,
+  glUniform4fv,
+  glUniform4i,
+  glUniform4iv,
+  glUniform4ui,
+  glUniform4uiv,
+  glUniformBlockBinding,
+  glUniformMatrix2dv,
+  glUniformMatrix2fv,
+  glUniformMatrix2x3dv,
+  glUniformMatrix2x3fv,
+  glUniformMatrix2x4dv,
+  glUniformMatrix2x4fv,
+  glUniformMatrix3dv,
+  glUniformMatrix3fv,
+  glUniformMatrix3x2dv,
+  glUniformMatrix3x2fv,
+  glUniformMatrix3x4dv,
+  glUniformMatrix3x4fv,
+  glUniformMatrix4dv,
+  glUniformMatrix4fv,
+  glUniformMatrix4x2dv,
+  glUniformMatrix4x2fv,
+  glUniformMatrix4x3dv,
+  glUniformMatrix4x3fv,
+  glUniformSubroutinesuiv,
+  glUnmapBuffer,
+  glUseProgram,
+  glUseProgramStages,
+  glValidateProgram,
+  glValidateProgramPipeline,
+  glVertex2d,
+  glVertex2dv,
+  glVertex2f,
+  glVertex2fv,
+  glVertex2i,
+  glVertex2iv,
+  glVertex2s,
+  glVertex2sv,
+  glVertex3d,
+  glVertex3dv,
+  glVertex3f,
+  glVertex3fv,
+  glVertex3i,
+  glVertex3iv,
+  glVertex3s,
+  glVertex3sv,
+  glVertex4d,
+  glVertex4dv,
+  glVertex4f,
+  glVertex4fv,
+  glVertex4i,
+  glVertex4iv,
+  glVertex4s,
+  glVertex4sv,
+  glVertexAttrib1d,
+  glVertexAttrib1dv,
+  glVertexAttrib1f,
+  glVertexAttrib1fv,
+  glVertexAttrib1s,
+  glVertexAttrib1sv,
+  glVertexAttrib2d,
+  glVertexAttrib2dv,
+  glVertexAttrib2f,
+  glVertexAttrib2fv,
+  glVertexAttrib2s,
+  glVertexAttrib2sv,
+  glVertexAttrib3d,
+  glVertexAttrib3dv,
+  glVertexAttrib3f,
+  glVertexAttrib3fv,
+  glVertexAttrib3s,
+  glVertexAttrib3sv,
+  glVertexAttrib4Nbv,
+  glVertexAttrib4Niv,
+  glVertexAttrib4Nsv,
+  glVertexAttrib4Nub,
+  glVertexAttrib4Nubv,
+  glVertexAttrib4Nuiv,
+  glVertexAttrib4Nusv,
+  glVertexAttrib4bv,
+  glVertexAttrib4d,
+  glVertexAttrib4dv,
+  glVertexAttrib4f,
+  glVertexAttrib4fv,
+  glVertexAttrib4iv,
+  glVertexAttrib4s,
+  glVertexAttrib4sv,
+  glVertexAttrib4ubv,
+  glVertexAttrib4uiv,
+  glVertexAttrib4usv,
+  glVertexAttribBinding,
+  glVertexAttribDivisor,
+  glVertexAttribFormat,
+  glVertexAttribI1i,
+  glVertexAttribI1iv,
+  glVertexAttribI1ui,
+  glVertexAttribI1uiv,
+  glVertexAttribI2i,
+  glVertexAttribI2iv,
+  glVertexAttribI2ui,
+  glVertexAttribI2uiv,
+  glVertexAttribI3i,
+  glVertexAttribI3iv,
+  glVertexAttribI3ui,
+  glVertexAttribI3uiv,
+  glVertexAttribI4bv,
+  glVertexAttribI4i,
+  glVertexAttribI4iv,
+  glVertexAttribI4sv,
+  glVertexAttribI4ubv,
+  glVertexAttribI4ui,
+  glVertexAttribI4uiv,
+  glVertexAttribI4usv,
+  glVertexAttribIFormat,
+  glVertexAttribIPointer,
+  glVertexAttribL1d,
+  glVertexAttribL1dv,
+  glVertexAttribL2d,
+  glVertexAttribL2dv,
+  glVertexAttribL3d,
+  glVertexAttribL3dv,
+  glVertexAttribL4d,
+  glVertexAttribL4dv,
+  glVertexAttribLFormat,
+  glVertexAttribLPointer,
+  glVertexAttribP1ui,
+  glVertexAttribP1uiv,
+  glVertexAttribP2ui,
+  glVertexAttribP2uiv,
+  glVertexAttribP3ui,
+  glVertexAttribP3uiv,
+  glVertexAttribP4ui,
+  glVertexAttribP4uiv,
+  glVertexAttribPointer,
+  glVertexBindingDivisor,
+  glVertexP2ui,
+  glVertexP2uiv,
+  glVertexP3ui,
+  glVertexP3uiv,
+  glVertexP4ui,
+  glVertexP4uiv,
+  glVertexPointer,
+  glViewport,
+  glViewportArrayv,
+  glViewportIndexedf,
+  glViewportIndexedfv,
+  glWaitSync,
+  glWindowPos2d,
+  glWindowPos2dv,
+  glWindowPos2f,
+  glWindowPos2fv,
+  glWindowPos2i,
+  glWindowPos2iv,
+  glWindowPos2s,
+  glWindowPos2sv,
+  glWindowPos3d,
+  glWindowPos3dv,
+  glWindowPos3f,
+  glWindowPos3fv,
+  glWindowPos3i,
+  glWindowPos3iv,
+  glWindowPos3s,
+  glWindowPos3sv
+) where
+
+import Graphics.GL.Types
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/Compatibility45.hs b/src/Graphics/GL/Compatibility45.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Compatibility45.hs
@@ -0,0 +1,2865 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Compatibility45
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Compatibility45 (
+  -- * Types
+  GLDEBUGPROC,
+  GLDEBUGPROCFunc,
+  GLbitfield,
+  GLboolean,
+  GLbyte,
+  GLchar,
+  GLclampd,
+  GLclampf,
+  GLdouble,
+  GLenum,
+  GLfloat,
+  GLhalf,
+  GLint,
+  GLint64,
+  GLintptr,
+  GLshort,
+  GLsizei,
+  GLsizeiptr,
+  GLsync,
+  GLubyte,
+  GLuint,
+  GLuint64,
+  GLushort,
+  GLvoid,
+  makeGLDEBUGPROC,
+  -- * Enums
+  pattern GL_2D,
+  pattern GL_2_BYTES,
+  pattern GL_3D,
+  pattern GL_3D_COLOR,
+  pattern GL_3D_COLOR_TEXTURE,
+  pattern GL_3_BYTES,
+  pattern GL_4D_COLOR_TEXTURE,
+  pattern GL_4_BYTES,
+  pattern GL_ACCUM,
+  pattern GL_ACCUM_ALPHA_BITS,
+  pattern GL_ACCUM_BLUE_BITS,
+  pattern GL_ACCUM_BUFFER_BIT,
+  pattern GL_ACCUM_CLEAR_VALUE,
+  pattern GL_ACCUM_GREEN_BITS,
+  pattern GL_ACCUM_RED_BITS,
+  pattern GL_ACTIVE_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_ACTIVE_ATTRIBUTES,
+  pattern GL_ACTIVE_ATTRIBUTE_MAX_LENGTH,
+  pattern GL_ACTIVE_PROGRAM,
+  pattern GL_ACTIVE_RESOURCES,
+  pattern GL_ACTIVE_SUBROUTINES,
+  pattern GL_ACTIVE_SUBROUTINE_MAX_LENGTH,
+  pattern GL_ACTIVE_SUBROUTINE_UNIFORMS,
+  pattern GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS,
+  pattern GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH,
+  pattern GL_ACTIVE_TEXTURE,
+  pattern GL_ACTIVE_UNIFORMS,
+  pattern GL_ACTIVE_UNIFORM_BLOCKS,
+  pattern GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH,
+  pattern GL_ACTIVE_UNIFORM_MAX_LENGTH,
+  pattern GL_ACTIVE_VARIABLES,
+  pattern GL_ADD,
+  pattern GL_ADD_SIGNED,
+  pattern GL_ALIASED_LINE_WIDTH_RANGE,
+  pattern GL_ALIASED_POINT_SIZE_RANGE,
+  pattern GL_ALL_ATTRIB_BITS,
+  pattern GL_ALL_BARRIER_BITS,
+  pattern GL_ALL_SHADER_BITS,
+  pattern GL_ALPHA,
+  pattern GL_ALPHA12,
+  pattern GL_ALPHA16,
+  pattern GL_ALPHA4,
+  pattern GL_ALPHA8,
+  pattern GL_ALPHA_BIAS,
+  pattern GL_ALPHA_BITS,
+  pattern GL_ALPHA_INTEGER,
+  pattern GL_ALPHA_SCALE,
+  pattern GL_ALPHA_TEST,
+  pattern GL_ALPHA_TEST_FUNC,
+  pattern GL_ALPHA_TEST_REF,
+  pattern GL_ALREADY_SIGNALED,
+  pattern GL_ALWAYS,
+  pattern GL_AMBIENT,
+  pattern GL_AMBIENT_AND_DIFFUSE,
+  pattern GL_AND,
+  pattern GL_AND_INVERTED,
+  pattern GL_AND_REVERSE,
+  pattern GL_ANY_SAMPLES_PASSED,
+  pattern GL_ANY_SAMPLES_PASSED_CONSERVATIVE,
+  pattern GL_ARRAY_BUFFER,
+  pattern GL_ARRAY_BUFFER_BINDING,
+  pattern GL_ARRAY_SIZE,
+  pattern GL_ARRAY_STRIDE,
+  pattern GL_ATOMIC_COUNTER_BARRIER_BIT,
+  pattern GL_ATOMIC_COUNTER_BUFFER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS,
+  pattern GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES,
+  pattern GL_ATOMIC_COUNTER_BUFFER_BINDING,
+  pattern GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE,
+  pattern GL_ATOMIC_COUNTER_BUFFER_INDEX,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_SIZE,
+  pattern GL_ATOMIC_COUNTER_BUFFER_START,
+  pattern GL_ATTACHED_SHADERS,
+  pattern GL_ATTRIB_STACK_DEPTH,
+  pattern GL_AUTO_GENERATE_MIPMAP,
+  pattern GL_AUTO_NORMAL,
+  pattern GL_AUX0,
+  pattern GL_AUX1,
+  pattern GL_AUX2,
+  pattern GL_AUX3,
+  pattern GL_AUX_BUFFERS,
+  pattern GL_BACK,
+  pattern GL_BACK_LEFT,
+  pattern GL_BACK_RIGHT,
+  pattern GL_BGR,
+  pattern GL_BGRA,
+  pattern GL_BGRA_INTEGER,
+  pattern GL_BGR_INTEGER,
+  pattern GL_BITMAP,
+  pattern GL_BITMAP_TOKEN,
+  pattern GL_BLEND,
+  pattern GL_BLEND_COLOR,
+  pattern GL_BLEND_DST,
+  pattern GL_BLEND_DST_ALPHA,
+  pattern GL_BLEND_DST_RGB,
+  pattern GL_BLEND_EQUATION,
+  pattern GL_BLEND_EQUATION_ALPHA,
+  pattern GL_BLEND_EQUATION_RGB,
+  pattern GL_BLEND_SRC,
+  pattern GL_BLEND_SRC_ALPHA,
+  pattern GL_BLEND_SRC_RGB,
+  pattern GL_BLOCK_INDEX,
+  pattern GL_BLUE,
+  pattern GL_BLUE_BIAS,
+  pattern GL_BLUE_BITS,
+  pattern GL_BLUE_INTEGER,
+  pattern GL_BLUE_SCALE,
+  pattern GL_BOOL,
+  pattern GL_BOOL_VEC2,
+  pattern GL_BOOL_VEC3,
+  pattern GL_BOOL_VEC4,
+  pattern GL_BUFFER,
+  pattern GL_BUFFER_ACCESS,
+  pattern GL_BUFFER_ACCESS_FLAGS,
+  pattern GL_BUFFER_BINDING,
+  pattern GL_BUFFER_DATA_SIZE,
+  pattern GL_BUFFER_IMMUTABLE_STORAGE,
+  pattern GL_BUFFER_MAPPED,
+  pattern GL_BUFFER_MAP_LENGTH,
+  pattern GL_BUFFER_MAP_OFFSET,
+  pattern GL_BUFFER_MAP_POINTER,
+  pattern GL_BUFFER_SIZE,
+  pattern GL_BUFFER_STORAGE_FLAGS,
+  pattern GL_BUFFER_UPDATE_BARRIER_BIT,
+  pattern GL_BUFFER_USAGE,
+  pattern GL_BUFFER_VARIABLE,
+  pattern GL_BYTE,
+  pattern GL_C3F_V3F,
+  pattern GL_C4F_N3F_V3F,
+  pattern GL_C4UB_V2F,
+  pattern GL_C4UB_V3F,
+  pattern GL_CAVEAT_SUPPORT,
+  pattern GL_CCW,
+  pattern GL_CLAMP,
+  pattern GL_CLAMP_FRAGMENT_COLOR,
+  pattern GL_CLAMP_READ_COLOR,
+  pattern GL_CLAMP_TO_BORDER,
+  pattern GL_CLAMP_TO_EDGE,
+  pattern GL_CLAMP_VERTEX_COLOR,
+  pattern GL_CLEAR,
+  pattern GL_CLEAR_BUFFER,
+  pattern GL_CLEAR_TEXTURE,
+  pattern GL_CLIENT_ACTIVE_TEXTURE,
+  pattern GL_CLIENT_ALL_ATTRIB_BITS,
+  pattern GL_CLIENT_ATTRIB_STACK_DEPTH,
+  pattern GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT,
+  pattern GL_CLIENT_PIXEL_STORE_BIT,
+  pattern GL_CLIENT_STORAGE_BIT,
+  pattern GL_CLIENT_VERTEX_ARRAY_BIT,
+  pattern GL_CLIP_DEPTH_MODE,
+  pattern GL_CLIP_DISTANCE0,
+  pattern GL_CLIP_DISTANCE1,
+  pattern GL_CLIP_DISTANCE2,
+  pattern GL_CLIP_DISTANCE3,
+  pattern GL_CLIP_DISTANCE4,
+  pattern GL_CLIP_DISTANCE5,
+  pattern GL_CLIP_DISTANCE6,
+  pattern GL_CLIP_DISTANCE7,
+  pattern GL_CLIP_ORIGIN,
+  pattern GL_CLIP_PLANE0,
+  pattern GL_CLIP_PLANE1,
+  pattern GL_CLIP_PLANE2,
+  pattern GL_CLIP_PLANE3,
+  pattern GL_CLIP_PLANE4,
+  pattern GL_CLIP_PLANE5,
+  pattern GL_COEFF,
+  pattern GL_COLOR,
+  pattern GL_COLOR_ARRAY,
+  pattern GL_COLOR_ARRAY_BUFFER_BINDING,
+  pattern GL_COLOR_ARRAY_POINTER,
+  pattern GL_COLOR_ARRAY_SIZE,
+  pattern GL_COLOR_ARRAY_STRIDE,
+  pattern GL_COLOR_ARRAY_TYPE,
+  pattern GL_COLOR_ATTACHMENT0,
+  pattern GL_COLOR_ATTACHMENT1,
+  pattern GL_COLOR_ATTACHMENT10,
+  pattern GL_COLOR_ATTACHMENT11,
+  pattern GL_COLOR_ATTACHMENT12,
+  pattern GL_COLOR_ATTACHMENT13,
+  pattern GL_COLOR_ATTACHMENT14,
+  pattern GL_COLOR_ATTACHMENT15,
+  pattern GL_COLOR_ATTACHMENT16,
+  pattern GL_COLOR_ATTACHMENT17,
+  pattern GL_COLOR_ATTACHMENT18,
+  pattern GL_COLOR_ATTACHMENT19,
+  pattern GL_COLOR_ATTACHMENT2,
+  pattern GL_COLOR_ATTACHMENT20,
+  pattern GL_COLOR_ATTACHMENT21,
+  pattern GL_COLOR_ATTACHMENT22,
+  pattern GL_COLOR_ATTACHMENT23,
+  pattern GL_COLOR_ATTACHMENT24,
+  pattern GL_COLOR_ATTACHMENT25,
+  pattern GL_COLOR_ATTACHMENT26,
+  pattern GL_COLOR_ATTACHMENT27,
+  pattern GL_COLOR_ATTACHMENT28,
+  pattern GL_COLOR_ATTACHMENT29,
+  pattern GL_COLOR_ATTACHMENT3,
+  pattern GL_COLOR_ATTACHMENT30,
+  pattern GL_COLOR_ATTACHMENT31,
+  pattern GL_COLOR_ATTACHMENT4,
+  pattern GL_COLOR_ATTACHMENT5,
+  pattern GL_COLOR_ATTACHMENT6,
+  pattern GL_COLOR_ATTACHMENT7,
+  pattern GL_COLOR_ATTACHMENT8,
+  pattern GL_COLOR_ATTACHMENT9,
+  pattern GL_COLOR_BUFFER_BIT,
+  pattern GL_COLOR_CLEAR_VALUE,
+  pattern GL_COLOR_COMPONENTS,
+  pattern GL_COLOR_ENCODING,
+  pattern GL_COLOR_INDEX,
+  pattern GL_COLOR_INDEXES,
+  pattern GL_COLOR_LOGIC_OP,
+  pattern GL_COLOR_MATERIAL,
+  pattern GL_COLOR_MATERIAL_FACE,
+  pattern GL_COLOR_MATERIAL_PARAMETER,
+  pattern GL_COLOR_RENDERABLE,
+  pattern GL_COLOR_SUM,
+  pattern GL_COLOR_WRITEMASK,
+  pattern GL_COMBINE,
+  pattern GL_COMBINE_ALPHA,
+  pattern GL_COMBINE_RGB,
+  pattern GL_COMMAND_BARRIER_BIT,
+  pattern GL_COMPARE_REF_TO_TEXTURE,
+  pattern GL_COMPARE_R_TO_TEXTURE,
+  pattern GL_COMPATIBLE_SUBROUTINES,
+  pattern GL_COMPILE,
+  pattern GL_COMPILE_AND_EXECUTE,
+  pattern GL_COMPILE_STATUS,
+  pattern GL_COMPRESSED_ALPHA,
+  pattern GL_COMPRESSED_INTENSITY,
+  pattern GL_COMPRESSED_LUMINANCE,
+  pattern GL_COMPRESSED_LUMINANCE_ALPHA,
+  pattern GL_COMPRESSED_R11_EAC,
+  pattern GL_COMPRESSED_RED,
+  pattern GL_COMPRESSED_RED_RGTC1,
+  pattern GL_COMPRESSED_RG,
+  pattern GL_COMPRESSED_RG11_EAC,
+  pattern GL_COMPRESSED_RGB,
+  pattern GL_COMPRESSED_RGB8_ETC2,
+  pattern GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,
+  pattern GL_COMPRESSED_RGBA,
+  pattern GL_COMPRESSED_RGBA8_ETC2_EAC,
+  pattern GL_COMPRESSED_RGBA_BPTC_UNORM,
+  pattern GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT,
+  pattern GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT,
+  pattern GL_COMPRESSED_RG_RGTC2,
+  pattern GL_COMPRESSED_SIGNED_R11_EAC,
+  pattern GL_COMPRESSED_SIGNED_RED_RGTC1,
+  pattern GL_COMPRESSED_SIGNED_RG11_EAC,
+  pattern GL_COMPRESSED_SIGNED_RG_RGTC2,
+  pattern GL_COMPRESSED_SLUMINANCE,
+  pattern GL_COMPRESSED_SLUMINANCE_ALPHA,
+  pattern GL_COMPRESSED_SRGB,
+  pattern GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,
+  pattern GL_COMPRESSED_SRGB8_ETC2,
+  pattern GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,
+  pattern GL_COMPRESSED_SRGB_ALPHA,
+  pattern GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM,
+  pattern GL_COMPRESSED_TEXTURE_FORMATS,
+  pattern GL_COMPUTE_SHADER,
+  pattern GL_COMPUTE_SHADER_BIT,
+  pattern GL_COMPUTE_SUBROUTINE,
+  pattern GL_COMPUTE_SUBROUTINE_UNIFORM,
+  pattern GL_COMPUTE_TEXTURE,
+  pattern GL_COMPUTE_WORK_GROUP_SIZE,
+  pattern GL_CONDITION_SATISFIED,
+  pattern GL_CONSTANT,
+  pattern GL_CONSTANT_ALPHA,
+  pattern GL_CONSTANT_ATTENUATION,
+  pattern GL_CONSTANT_COLOR,
+  pattern GL_CONTEXT_COMPATIBILITY_PROFILE_BIT,
+  pattern GL_CONTEXT_CORE_PROFILE_BIT,
+  pattern GL_CONTEXT_FLAGS,
+  pattern GL_CONTEXT_FLAG_DEBUG_BIT,
+  pattern GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT,
+  pattern GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT,
+  pattern GL_CONTEXT_LOST,
+  pattern GL_CONTEXT_PROFILE_MASK,
+  pattern GL_CONTEXT_RELEASE_BEHAVIOR,
+  pattern GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH,
+  pattern GL_COORD_REPLACE,
+  pattern GL_COPY,
+  pattern GL_COPY_INVERTED,
+  pattern GL_COPY_PIXEL_TOKEN,
+  pattern GL_COPY_READ_BUFFER,
+  pattern GL_COPY_READ_BUFFER_BINDING,
+  pattern GL_COPY_WRITE_BUFFER,
+  pattern GL_COPY_WRITE_BUFFER_BINDING,
+  pattern GL_CULL_FACE,
+  pattern GL_CULL_FACE_MODE,
+  pattern GL_CURRENT_BIT,
+  pattern GL_CURRENT_COLOR,
+  pattern GL_CURRENT_FOG_COORD,
+  pattern GL_CURRENT_FOG_COORDINATE,
+  pattern GL_CURRENT_INDEX,
+  pattern GL_CURRENT_NORMAL,
+  pattern GL_CURRENT_PROGRAM,
+  pattern GL_CURRENT_QUERY,
+  pattern GL_CURRENT_RASTER_COLOR,
+  pattern GL_CURRENT_RASTER_DISTANCE,
+  pattern GL_CURRENT_RASTER_INDEX,
+  pattern GL_CURRENT_RASTER_POSITION,
+  pattern GL_CURRENT_RASTER_POSITION_VALID,
+  pattern GL_CURRENT_RASTER_SECONDARY_COLOR,
+  pattern GL_CURRENT_RASTER_TEXTURE_COORDS,
+  pattern GL_CURRENT_SECONDARY_COLOR,
+  pattern GL_CURRENT_TEXTURE_COORDS,
+  pattern GL_CURRENT_VERTEX_ATTRIB,
+  pattern GL_CW,
+  pattern GL_DEBUG_CALLBACK_FUNCTION,
+  pattern GL_DEBUG_CALLBACK_USER_PARAM,
+  pattern GL_DEBUG_GROUP_STACK_DEPTH,
+  pattern GL_DEBUG_LOGGED_MESSAGES,
+  pattern GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH,
+  pattern GL_DEBUG_OUTPUT,
+  pattern GL_DEBUG_OUTPUT_SYNCHRONOUS,
+  pattern GL_DEBUG_SEVERITY_HIGH,
+  pattern GL_DEBUG_SEVERITY_LOW,
+  pattern GL_DEBUG_SEVERITY_MEDIUM,
+  pattern GL_DEBUG_SEVERITY_NOTIFICATION,
+  pattern GL_DEBUG_SOURCE_API,
+  pattern GL_DEBUG_SOURCE_APPLICATION,
+  pattern GL_DEBUG_SOURCE_OTHER,
+  pattern GL_DEBUG_SOURCE_SHADER_COMPILER,
+  pattern GL_DEBUG_SOURCE_THIRD_PARTY,
+  pattern GL_DEBUG_SOURCE_WINDOW_SYSTEM,
+  pattern GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR,
+  pattern GL_DEBUG_TYPE_ERROR,
+  pattern GL_DEBUG_TYPE_MARKER,
+  pattern GL_DEBUG_TYPE_OTHER,
+  pattern GL_DEBUG_TYPE_PERFORMANCE,
+  pattern GL_DEBUG_TYPE_POP_GROUP,
+  pattern GL_DEBUG_TYPE_PORTABILITY,
+  pattern GL_DEBUG_TYPE_PUSH_GROUP,
+  pattern GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR,
+  pattern GL_DECAL,
+  pattern GL_DECR,
+  pattern GL_DECR_WRAP,
+  pattern GL_DELETE_STATUS,
+  pattern GL_DEPTH,
+  pattern GL_DEPTH24_STENCIL8,
+  pattern GL_DEPTH32F_STENCIL8,
+  pattern GL_DEPTH_ATTACHMENT,
+  pattern GL_DEPTH_BIAS,
+  pattern GL_DEPTH_BITS,
+  pattern GL_DEPTH_BUFFER_BIT,
+  pattern GL_DEPTH_CLAMP,
+  pattern GL_DEPTH_CLEAR_VALUE,
+  pattern GL_DEPTH_COMPONENT,
+  pattern GL_DEPTH_COMPONENT16,
+  pattern GL_DEPTH_COMPONENT24,
+  pattern GL_DEPTH_COMPONENT32,
+  pattern GL_DEPTH_COMPONENT32F,
+  pattern GL_DEPTH_COMPONENTS,
+  pattern GL_DEPTH_FUNC,
+  pattern GL_DEPTH_RANGE,
+  pattern GL_DEPTH_RENDERABLE,
+  pattern GL_DEPTH_SCALE,
+  pattern GL_DEPTH_STENCIL,
+  pattern GL_DEPTH_STENCIL_ATTACHMENT,
+  pattern GL_DEPTH_STENCIL_TEXTURE_MODE,
+  pattern GL_DEPTH_TEST,
+  pattern GL_DEPTH_TEXTURE_MODE,
+  pattern GL_DEPTH_WRITEMASK,
+  pattern GL_DIFFUSE,
+  pattern GL_DISPATCH_INDIRECT_BUFFER,
+  pattern GL_DISPATCH_INDIRECT_BUFFER_BINDING,
+  pattern GL_DISPLAY_LIST,
+  pattern GL_DITHER,
+  pattern GL_DOMAIN,
+  pattern GL_DONT_CARE,
+  pattern GL_DOT3_RGB,
+  pattern GL_DOT3_RGBA,
+  pattern GL_DOUBLE,
+  pattern GL_DOUBLEBUFFER,
+  pattern GL_DOUBLE_MAT2,
+  pattern GL_DOUBLE_MAT2x3,
+  pattern GL_DOUBLE_MAT2x4,
+  pattern GL_DOUBLE_MAT3,
+  pattern GL_DOUBLE_MAT3x2,
+  pattern GL_DOUBLE_MAT3x4,
+  pattern GL_DOUBLE_MAT4,
+  pattern GL_DOUBLE_MAT4x2,
+  pattern GL_DOUBLE_MAT4x3,
+  pattern GL_DOUBLE_VEC2,
+  pattern GL_DOUBLE_VEC3,
+  pattern GL_DOUBLE_VEC4,
+  pattern GL_DRAW_BUFFER,
+  pattern GL_DRAW_BUFFER0,
+  pattern GL_DRAW_BUFFER1,
+  pattern GL_DRAW_BUFFER10,
+  pattern GL_DRAW_BUFFER11,
+  pattern GL_DRAW_BUFFER12,
+  pattern GL_DRAW_BUFFER13,
+  pattern GL_DRAW_BUFFER14,
+  pattern GL_DRAW_BUFFER15,
+  pattern GL_DRAW_BUFFER2,
+  pattern GL_DRAW_BUFFER3,
+  pattern GL_DRAW_BUFFER4,
+  pattern GL_DRAW_BUFFER5,
+  pattern GL_DRAW_BUFFER6,
+  pattern GL_DRAW_BUFFER7,
+  pattern GL_DRAW_BUFFER8,
+  pattern GL_DRAW_BUFFER9,
+  pattern GL_DRAW_FRAMEBUFFER,
+  pattern GL_DRAW_FRAMEBUFFER_BINDING,
+  pattern GL_DRAW_INDIRECT_BUFFER,
+  pattern GL_DRAW_INDIRECT_BUFFER_BINDING,
+  pattern GL_DRAW_PIXEL_TOKEN,
+  pattern GL_DST_ALPHA,
+  pattern GL_DST_COLOR,
+  pattern GL_DYNAMIC_COPY,
+  pattern GL_DYNAMIC_DRAW,
+  pattern GL_DYNAMIC_READ,
+  pattern GL_DYNAMIC_STORAGE_BIT,
+  pattern GL_EDGE_FLAG,
+  pattern GL_EDGE_FLAG_ARRAY,
+  pattern GL_EDGE_FLAG_ARRAY_BUFFER_BINDING,
+  pattern GL_EDGE_FLAG_ARRAY_POINTER,
+  pattern GL_EDGE_FLAG_ARRAY_STRIDE,
+  pattern GL_ELEMENT_ARRAY_BARRIER_BIT,
+  pattern GL_ELEMENT_ARRAY_BUFFER,
+  pattern GL_ELEMENT_ARRAY_BUFFER_BINDING,
+  pattern GL_EMISSION,
+  pattern GL_ENABLE_BIT,
+  pattern GL_EQUAL,
+  pattern GL_EQUIV,
+  pattern GL_EVAL_BIT,
+  pattern GL_EXP,
+  pattern GL_EXP2,
+  pattern GL_EXTENSIONS,
+  pattern GL_EYE_LINEAR,
+  pattern GL_EYE_PLANE,
+  pattern GL_FALSE,
+  pattern GL_FASTEST,
+  pattern GL_FEEDBACK,
+  pattern GL_FEEDBACK_BUFFER_POINTER,
+  pattern GL_FEEDBACK_BUFFER_SIZE,
+  pattern GL_FEEDBACK_BUFFER_TYPE,
+  pattern GL_FILL,
+  pattern GL_FILTER,
+  pattern GL_FIRST_VERTEX_CONVENTION,
+  pattern GL_FIXED,
+  pattern GL_FIXED_ONLY,
+  pattern GL_FLAT,
+  pattern GL_FLOAT,
+  pattern GL_FLOAT_32_UNSIGNED_INT_24_8_REV,
+  pattern GL_FLOAT_MAT2,
+  pattern GL_FLOAT_MAT2x3,
+  pattern GL_FLOAT_MAT2x4,
+  pattern GL_FLOAT_MAT3,
+  pattern GL_FLOAT_MAT3x2,
+  pattern GL_FLOAT_MAT3x4,
+  pattern GL_FLOAT_MAT4,
+  pattern GL_FLOAT_MAT4x2,
+  pattern GL_FLOAT_MAT4x3,
+  pattern GL_FLOAT_VEC2,
+  pattern GL_FLOAT_VEC3,
+  pattern GL_FLOAT_VEC4,
+  pattern GL_FOG,
+  pattern GL_FOG_BIT,
+  pattern GL_FOG_COLOR,
+  pattern GL_FOG_COORD,
+  pattern GL_FOG_COORDINATE,
+  pattern GL_FOG_COORDINATE_ARRAY,
+  pattern GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING,
+  pattern GL_FOG_COORDINATE_ARRAY_POINTER,
+  pattern GL_FOG_COORDINATE_ARRAY_STRIDE,
+  pattern GL_FOG_COORDINATE_ARRAY_TYPE,
+  pattern GL_FOG_COORDINATE_SOURCE,
+  pattern GL_FOG_COORD_ARRAY,
+  pattern GL_FOG_COORD_ARRAY_BUFFER_BINDING,
+  pattern GL_FOG_COORD_ARRAY_POINTER,
+  pattern GL_FOG_COORD_ARRAY_STRIDE,
+  pattern GL_FOG_COORD_ARRAY_TYPE,
+  pattern GL_FOG_COORD_SRC,
+  pattern GL_FOG_DENSITY,
+  pattern GL_FOG_END,
+  pattern GL_FOG_HINT,
+  pattern GL_FOG_INDEX,
+  pattern GL_FOG_MODE,
+  pattern GL_FOG_START,
+  pattern GL_FRACTIONAL_EVEN,
+  pattern GL_FRACTIONAL_ODD,
+  pattern GL_FRAGMENT_DEPTH,
+  pattern GL_FRAGMENT_INTERPOLATION_OFFSET_BITS,
+  pattern GL_FRAGMENT_SHADER,
+  pattern GL_FRAGMENT_SHADER_BIT,
+  pattern GL_FRAGMENT_SHADER_DERIVATIVE_HINT,
+  pattern GL_FRAGMENT_SUBROUTINE,
+  pattern GL_FRAGMENT_SUBROUTINE_UNIFORM,
+  pattern GL_FRAGMENT_TEXTURE,
+  pattern GL_FRAMEBUFFER,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL,
+  pattern GL_FRAMEBUFFER_BARRIER_BIT,
+  pattern GL_FRAMEBUFFER_BINDING,
+  pattern GL_FRAMEBUFFER_BLEND,
+  pattern GL_FRAMEBUFFER_COMPLETE,
+  pattern GL_FRAMEBUFFER_DEFAULT,
+  pattern GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS,
+  pattern GL_FRAMEBUFFER_DEFAULT_HEIGHT,
+  pattern GL_FRAMEBUFFER_DEFAULT_LAYERS,
+  pattern GL_FRAMEBUFFER_DEFAULT_SAMPLES,
+  pattern GL_FRAMEBUFFER_DEFAULT_WIDTH,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER,
+  pattern GL_FRAMEBUFFER_RENDERABLE,
+  pattern GL_FRAMEBUFFER_RENDERABLE_LAYERED,
+  pattern GL_FRAMEBUFFER_SRGB,
+  pattern GL_FRAMEBUFFER_UNDEFINED,
+  pattern GL_FRAMEBUFFER_UNSUPPORTED,
+  pattern GL_FRONT,
+  pattern GL_FRONT_AND_BACK,
+  pattern GL_FRONT_FACE,
+  pattern GL_FRONT_LEFT,
+  pattern GL_FRONT_RIGHT,
+  pattern GL_FULL_SUPPORT,
+  pattern GL_FUNC_ADD,
+  pattern GL_FUNC_REVERSE_SUBTRACT,
+  pattern GL_FUNC_SUBTRACT,
+  pattern GL_GENERATE_MIPMAP,
+  pattern GL_GENERATE_MIPMAP_HINT,
+  pattern GL_GEOMETRY_INPUT_TYPE,
+  pattern GL_GEOMETRY_OUTPUT_TYPE,
+  pattern GL_GEOMETRY_SHADER,
+  pattern GL_GEOMETRY_SHADER_BIT,
+  pattern GL_GEOMETRY_SHADER_INVOCATIONS,
+  pattern GL_GEOMETRY_SUBROUTINE,
+  pattern GL_GEOMETRY_SUBROUTINE_UNIFORM,
+  pattern GL_GEOMETRY_TEXTURE,
+  pattern GL_GEOMETRY_VERTICES_OUT,
+  pattern GL_GEQUAL,
+  pattern GL_GET_TEXTURE_IMAGE_FORMAT,
+  pattern GL_GET_TEXTURE_IMAGE_TYPE,
+  pattern GL_GREATER,
+  pattern GL_GREEN,
+  pattern GL_GREEN_BIAS,
+  pattern GL_GREEN_BITS,
+  pattern GL_GREEN_INTEGER,
+  pattern GL_GREEN_SCALE,
+  pattern GL_GUILTY_CONTEXT_RESET,
+  pattern GL_HALF_FLOAT,
+  pattern GL_HIGH_FLOAT,
+  pattern GL_HIGH_INT,
+  pattern GL_HINT_BIT,
+  pattern GL_IMAGE_1D,
+  pattern GL_IMAGE_1D_ARRAY,
+  pattern GL_IMAGE_2D,
+  pattern GL_IMAGE_2D_ARRAY,
+  pattern GL_IMAGE_2D_MULTISAMPLE,
+  pattern GL_IMAGE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_IMAGE_2D_RECT,
+  pattern GL_IMAGE_3D,
+  pattern GL_IMAGE_BINDING_ACCESS,
+  pattern GL_IMAGE_BINDING_FORMAT,
+  pattern GL_IMAGE_BINDING_LAYER,
+  pattern GL_IMAGE_BINDING_LAYERED,
+  pattern GL_IMAGE_BINDING_LEVEL,
+  pattern GL_IMAGE_BINDING_NAME,
+  pattern GL_IMAGE_BUFFER,
+  pattern GL_IMAGE_CLASS_10_10_10_2,
+  pattern GL_IMAGE_CLASS_11_11_10,
+  pattern GL_IMAGE_CLASS_1_X_16,
+  pattern GL_IMAGE_CLASS_1_X_32,
+  pattern GL_IMAGE_CLASS_1_X_8,
+  pattern GL_IMAGE_CLASS_2_X_16,
+  pattern GL_IMAGE_CLASS_2_X_32,
+  pattern GL_IMAGE_CLASS_2_X_8,
+  pattern GL_IMAGE_CLASS_4_X_16,
+  pattern GL_IMAGE_CLASS_4_X_32,
+  pattern GL_IMAGE_CLASS_4_X_8,
+  pattern GL_IMAGE_COMPATIBILITY_CLASS,
+  pattern GL_IMAGE_CUBE,
+  pattern GL_IMAGE_CUBE_MAP_ARRAY,
+  pattern GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS,
+  pattern GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE,
+  pattern GL_IMAGE_FORMAT_COMPATIBILITY_TYPE,
+  pattern GL_IMAGE_PIXEL_FORMAT,
+  pattern GL_IMAGE_PIXEL_TYPE,
+  pattern GL_IMAGE_TEXEL_SIZE,
+  pattern GL_IMPLEMENTATION_COLOR_READ_FORMAT,
+  pattern GL_IMPLEMENTATION_COLOR_READ_TYPE,
+  pattern GL_INCR,
+  pattern GL_INCR_WRAP,
+  pattern GL_INDEX,
+  pattern GL_INDEX_ARRAY,
+  pattern GL_INDEX_ARRAY_BUFFER_BINDING,
+  pattern GL_INDEX_ARRAY_POINTER,
+  pattern GL_INDEX_ARRAY_STRIDE,
+  pattern GL_INDEX_ARRAY_TYPE,
+  pattern GL_INDEX_BITS,
+  pattern GL_INDEX_CLEAR_VALUE,
+  pattern GL_INDEX_LOGIC_OP,
+  pattern GL_INDEX_MODE,
+  pattern GL_INDEX_OFFSET,
+  pattern GL_INDEX_SHIFT,
+  pattern GL_INDEX_WRITEMASK,
+  pattern GL_INFO_LOG_LENGTH,
+  pattern GL_INNOCENT_CONTEXT_RESET,
+  pattern GL_INT,
+  pattern GL_INTENSITY,
+  pattern GL_INTENSITY12,
+  pattern GL_INTENSITY16,
+  pattern GL_INTENSITY4,
+  pattern GL_INTENSITY8,
+  pattern GL_INTERLEAVED_ATTRIBS,
+  pattern GL_INTERNALFORMAT_ALPHA_SIZE,
+  pattern GL_INTERNALFORMAT_ALPHA_TYPE,
+  pattern GL_INTERNALFORMAT_BLUE_SIZE,
+  pattern GL_INTERNALFORMAT_BLUE_TYPE,
+  pattern GL_INTERNALFORMAT_DEPTH_SIZE,
+  pattern GL_INTERNALFORMAT_DEPTH_TYPE,
+  pattern GL_INTERNALFORMAT_GREEN_SIZE,
+  pattern GL_INTERNALFORMAT_GREEN_TYPE,
+  pattern GL_INTERNALFORMAT_PREFERRED,
+  pattern GL_INTERNALFORMAT_RED_SIZE,
+  pattern GL_INTERNALFORMAT_RED_TYPE,
+  pattern GL_INTERNALFORMAT_SHARED_SIZE,
+  pattern GL_INTERNALFORMAT_STENCIL_SIZE,
+  pattern GL_INTERNALFORMAT_STENCIL_TYPE,
+  pattern GL_INTERNALFORMAT_SUPPORTED,
+  pattern GL_INTERPOLATE,
+  pattern GL_INT_2_10_10_10_REV,
+  pattern GL_INT_IMAGE_1D,
+  pattern GL_INT_IMAGE_1D_ARRAY,
+  pattern GL_INT_IMAGE_2D,
+  pattern GL_INT_IMAGE_2D_ARRAY,
+  pattern GL_INT_IMAGE_2D_MULTISAMPLE,
+  pattern GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_INT_IMAGE_2D_RECT,
+  pattern GL_INT_IMAGE_3D,
+  pattern GL_INT_IMAGE_BUFFER,
+  pattern GL_INT_IMAGE_CUBE,
+  pattern GL_INT_IMAGE_CUBE_MAP_ARRAY,
+  pattern GL_INT_SAMPLER_1D,
+  pattern GL_INT_SAMPLER_1D_ARRAY,
+  pattern GL_INT_SAMPLER_2D,
+  pattern GL_INT_SAMPLER_2D_ARRAY,
+  pattern GL_INT_SAMPLER_2D_MULTISAMPLE,
+  pattern GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY,
+  pattern GL_INT_SAMPLER_2D_RECT,
+  pattern GL_INT_SAMPLER_3D,
+  pattern GL_INT_SAMPLER_BUFFER,
+  pattern GL_INT_SAMPLER_CUBE,
+  pattern GL_INT_SAMPLER_CUBE_MAP_ARRAY,
+  pattern GL_INT_VEC2,
+  pattern GL_INT_VEC3,
+  pattern GL_INT_VEC4,
+  pattern GL_INVALID_ENUM,
+  pattern GL_INVALID_FRAMEBUFFER_OPERATION,
+  pattern GL_INVALID_INDEX,
+  pattern GL_INVALID_OPERATION,
+  pattern GL_INVALID_VALUE,
+  pattern GL_INVERT,
+  pattern GL_ISOLINES,
+  pattern GL_IS_PER_PATCH,
+  pattern GL_IS_ROW_MAJOR,
+  pattern GL_KEEP,
+  pattern GL_LAST_VERTEX_CONVENTION,
+  pattern GL_LAYER_PROVOKING_VERTEX,
+  pattern GL_LEFT,
+  pattern GL_LEQUAL,
+  pattern GL_LESS,
+  pattern GL_LIGHT0,
+  pattern GL_LIGHT1,
+  pattern GL_LIGHT2,
+  pattern GL_LIGHT3,
+  pattern GL_LIGHT4,
+  pattern GL_LIGHT5,
+  pattern GL_LIGHT6,
+  pattern GL_LIGHT7,
+  pattern GL_LIGHTING,
+  pattern GL_LIGHTING_BIT,
+  pattern GL_LIGHT_MODEL_AMBIENT,
+  pattern GL_LIGHT_MODEL_COLOR_CONTROL,
+  pattern GL_LIGHT_MODEL_LOCAL_VIEWER,
+  pattern GL_LIGHT_MODEL_TWO_SIDE,
+  pattern GL_LINE,
+  pattern GL_LINEAR,
+  pattern GL_LINEAR_ATTENUATION,
+  pattern GL_LINEAR_MIPMAP_LINEAR,
+  pattern GL_LINEAR_MIPMAP_NEAREST,
+  pattern GL_LINES,
+  pattern GL_LINES_ADJACENCY,
+  pattern GL_LINE_BIT,
+  pattern GL_LINE_LOOP,
+  pattern GL_LINE_RESET_TOKEN,
+  pattern GL_LINE_SMOOTH,
+  pattern GL_LINE_SMOOTH_HINT,
+  pattern GL_LINE_STIPPLE,
+  pattern GL_LINE_STIPPLE_PATTERN,
+  pattern GL_LINE_STIPPLE_REPEAT,
+  pattern GL_LINE_STRIP,
+  pattern GL_LINE_STRIP_ADJACENCY,
+  pattern GL_LINE_TOKEN,
+  pattern GL_LINE_WIDTH,
+  pattern GL_LINE_WIDTH_GRANULARITY,
+  pattern GL_LINE_WIDTH_RANGE,
+  pattern GL_LINK_STATUS,
+  pattern GL_LIST_BASE,
+  pattern GL_LIST_BIT,
+  pattern GL_LIST_INDEX,
+  pattern GL_LIST_MODE,
+  pattern GL_LOAD,
+  pattern GL_LOCATION,
+  pattern GL_LOCATION_COMPONENT,
+  pattern GL_LOCATION_INDEX,
+  pattern GL_LOGIC_OP,
+  pattern GL_LOGIC_OP_MODE,
+  pattern GL_LOSE_CONTEXT_ON_RESET,
+  pattern GL_LOWER_LEFT,
+  pattern GL_LOW_FLOAT,
+  pattern GL_LOW_INT,
+  pattern GL_LUMINANCE,
+  pattern GL_LUMINANCE12,
+  pattern GL_LUMINANCE12_ALPHA12,
+  pattern GL_LUMINANCE12_ALPHA4,
+  pattern GL_LUMINANCE16,
+  pattern GL_LUMINANCE16_ALPHA16,
+  pattern GL_LUMINANCE4,
+  pattern GL_LUMINANCE4_ALPHA4,
+  pattern GL_LUMINANCE6_ALPHA2,
+  pattern GL_LUMINANCE8,
+  pattern GL_LUMINANCE8_ALPHA8,
+  pattern GL_LUMINANCE_ALPHA,
+  pattern GL_MAJOR_VERSION,
+  pattern GL_MANUAL_GENERATE_MIPMAP,
+  pattern GL_MAP1_COLOR_4,
+  pattern GL_MAP1_GRID_DOMAIN,
+  pattern GL_MAP1_GRID_SEGMENTS,
+  pattern GL_MAP1_INDEX,
+  pattern GL_MAP1_NORMAL,
+  pattern GL_MAP1_TEXTURE_COORD_1,
+  pattern GL_MAP1_TEXTURE_COORD_2,
+  pattern GL_MAP1_TEXTURE_COORD_3,
+  pattern GL_MAP1_TEXTURE_COORD_4,
+  pattern GL_MAP1_VERTEX_3,
+  pattern GL_MAP1_VERTEX_4,
+  pattern GL_MAP2_COLOR_4,
+  pattern GL_MAP2_GRID_DOMAIN,
+  pattern GL_MAP2_GRID_SEGMENTS,
+  pattern GL_MAP2_INDEX,
+  pattern GL_MAP2_NORMAL,
+  pattern GL_MAP2_TEXTURE_COORD_1,
+  pattern GL_MAP2_TEXTURE_COORD_2,
+  pattern GL_MAP2_TEXTURE_COORD_3,
+  pattern GL_MAP2_TEXTURE_COORD_4,
+  pattern GL_MAP2_VERTEX_3,
+  pattern GL_MAP2_VERTEX_4,
+  pattern GL_MAP_COHERENT_BIT,
+  pattern GL_MAP_COLOR,
+  pattern GL_MAP_FLUSH_EXPLICIT_BIT,
+  pattern GL_MAP_INVALIDATE_BUFFER_BIT,
+  pattern GL_MAP_INVALIDATE_RANGE_BIT,
+  pattern GL_MAP_PERSISTENT_BIT,
+  pattern GL_MAP_READ_BIT,
+  pattern GL_MAP_STENCIL,
+  pattern GL_MAP_UNSYNCHRONIZED_BIT,
+  pattern GL_MAP_WRITE_BIT,
+  pattern GL_MATRIX_MODE,
+  pattern GL_MATRIX_STRIDE,
+  pattern GL_MAX,
+  pattern GL_MAX_3D_TEXTURE_SIZE,
+  pattern GL_MAX_ARRAY_TEXTURE_LAYERS,
+  pattern GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS,
+  pattern GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE,
+  pattern GL_MAX_ATTRIB_STACK_DEPTH,
+  pattern GL_MAX_CLIENT_ATTRIB_STACK_DEPTH,
+  pattern GL_MAX_CLIP_DISTANCES,
+  pattern GL_MAX_CLIP_PLANES,
+  pattern GL_MAX_COLOR_ATTACHMENTS,
+  pattern GL_MAX_COLOR_TEXTURE_SAMPLES,
+  pattern GL_MAX_COMBINED_ATOMIC_COUNTERS,
+  pattern GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES,
+  pattern GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_DIMENSIONS,
+  pattern GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_IMAGE_UNIFORMS,
+  pattern GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS,
+  pattern GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES,
+  pattern GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_COMBINED_UNIFORM_BLOCKS,
+  pattern GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMPUTE_ATOMIC_COUNTERS,
+  pattern GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_COMPUTE_IMAGE_UNIFORMS,
+  pattern GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_COMPUTE_SHARED_MEMORY_SIZE,
+  pattern GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_COMPUTE_UNIFORM_BLOCKS,
+  pattern GL_MAX_COMPUTE_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMPUTE_WORK_GROUP_COUNT,
+  pattern GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS,
+  pattern GL_MAX_COMPUTE_WORK_GROUP_SIZE,
+  pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE,
+  pattern GL_MAX_CULL_DISTANCES,
+  pattern GL_MAX_DEBUG_GROUP_STACK_DEPTH,
+  pattern GL_MAX_DEBUG_LOGGED_MESSAGES,
+  pattern GL_MAX_DEBUG_MESSAGE_LENGTH,
+  pattern GL_MAX_DEPTH,
+  pattern GL_MAX_DEPTH_TEXTURE_SAMPLES,
+  pattern GL_MAX_DRAW_BUFFERS,
+  pattern GL_MAX_DUAL_SOURCE_DRAW_BUFFERS,
+  pattern GL_MAX_ELEMENTS_INDICES,
+  pattern GL_MAX_ELEMENTS_VERTICES,
+  pattern GL_MAX_ELEMENT_INDEX,
+  pattern GL_MAX_EVAL_ORDER,
+  pattern GL_MAX_FRAGMENT_ATOMIC_COUNTERS,
+  pattern GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_FRAGMENT_IMAGE_UNIFORMS,
+  pattern GL_MAX_FRAGMENT_INPUT_COMPONENTS,
+  pattern GL_MAX_FRAGMENT_INTERPOLATION_OFFSET,
+  pattern GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_FRAGMENT_UNIFORM_BLOCKS,
+  pattern GL_MAX_FRAGMENT_UNIFORM_COMPONENTS,
+  pattern GL_MAX_FRAGMENT_UNIFORM_VECTORS,
+  pattern GL_MAX_FRAMEBUFFER_HEIGHT,
+  pattern GL_MAX_FRAMEBUFFER_LAYERS,
+  pattern GL_MAX_FRAMEBUFFER_SAMPLES,
+  pattern GL_MAX_FRAMEBUFFER_WIDTH,
+  pattern GL_MAX_GEOMETRY_ATOMIC_COUNTERS,
+  pattern GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_GEOMETRY_IMAGE_UNIFORMS,
+  pattern GL_MAX_GEOMETRY_INPUT_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_OUTPUT_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_OUTPUT_VERTICES,
+  pattern GL_MAX_GEOMETRY_SHADER_INVOCATIONS,
+  pattern GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_UNIFORM_BLOCKS,
+  pattern GL_MAX_GEOMETRY_UNIFORM_COMPONENTS,
+  pattern GL_MAX_HEIGHT,
+  pattern GL_MAX_IMAGE_SAMPLES,
+  pattern GL_MAX_IMAGE_UNITS,
+  pattern GL_MAX_INTEGER_SAMPLES,
+  pattern GL_MAX_LABEL_LENGTH,
+  pattern GL_MAX_LAYERS,
+  pattern GL_MAX_LIGHTS,
+  pattern GL_MAX_LIST_NESTING,
+  pattern GL_MAX_MODELVIEW_STACK_DEPTH,
+  pattern GL_MAX_NAME_LENGTH,
+  pattern GL_MAX_NAME_STACK_DEPTH,
+  pattern GL_MAX_NUM_ACTIVE_VARIABLES,
+  pattern GL_MAX_NUM_COMPATIBLE_SUBROUTINES,
+  pattern GL_MAX_PATCH_VERTICES,
+  pattern GL_MAX_PIXEL_MAP_TABLE,
+  pattern GL_MAX_PROGRAM_TEXEL_OFFSET,
+  pattern GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET,
+  pattern GL_MAX_PROJECTION_STACK_DEPTH,
+  pattern GL_MAX_RECTANGLE_TEXTURE_SIZE,
+  pattern GL_MAX_RENDERBUFFER_SIZE,
+  pattern GL_MAX_SAMPLES,
+  pattern GL_MAX_SAMPLE_MASK_WORDS,
+  pattern GL_MAX_SERVER_WAIT_TIMEOUT,
+  pattern GL_MAX_SHADER_STORAGE_BLOCK_SIZE,
+  pattern GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS,
+  pattern GL_MAX_SUBROUTINES,
+  pattern GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS,
+  pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS,
+  pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS,
+  pattern GL_MAX_TESS_CONTROL_INPUT_COMPONENTS,
+  pattern GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS,
+  pattern GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS,
+  pattern GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS,
+  pattern GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS,
+  pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS,
+  pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS,
+  pattern GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS,
+  pattern GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS,
+  pattern GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS,
+  pattern GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS,
+  pattern GL_MAX_TESS_GEN_LEVEL,
+  pattern GL_MAX_TESS_PATCH_COMPONENTS,
+  pattern GL_MAX_TEXTURE_BUFFER_SIZE,
+  pattern GL_MAX_TEXTURE_COORDS,
+  pattern GL_MAX_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_TEXTURE_LOD_BIAS,
+  pattern GL_MAX_TEXTURE_SIZE,
+  pattern GL_MAX_TEXTURE_STACK_DEPTH,
+  pattern GL_MAX_TEXTURE_UNITS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_BUFFERS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS,
+  pattern GL_MAX_UNIFORM_BLOCK_SIZE,
+  pattern GL_MAX_UNIFORM_BUFFER_BINDINGS,
+  pattern GL_MAX_UNIFORM_LOCATIONS,
+  pattern GL_MAX_VARYING_COMPONENTS,
+  pattern GL_MAX_VARYING_FLOATS,
+  pattern GL_MAX_VARYING_VECTORS,
+  pattern GL_MAX_VERTEX_ATOMIC_COUNTERS,
+  pattern GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_VERTEX_ATTRIBS,
+  pattern GL_MAX_VERTEX_ATTRIB_BINDINGS,
+  pattern GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET,
+  pattern GL_MAX_VERTEX_ATTRIB_STRIDE,
+  pattern GL_MAX_VERTEX_IMAGE_UNIFORMS,
+  pattern GL_MAX_VERTEX_OUTPUT_COMPONENTS,
+  pattern GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_VERTEX_STREAMS,
+  pattern GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_VERTEX_UNIFORM_BLOCKS,
+  pattern GL_MAX_VERTEX_UNIFORM_COMPONENTS,
+  pattern GL_MAX_VERTEX_UNIFORM_VECTORS,
+  pattern GL_MAX_VIEWPORTS,
+  pattern GL_MAX_VIEWPORT_DIMS,
+  pattern GL_MAX_WIDTH,
+  pattern GL_MEDIUM_FLOAT,
+  pattern GL_MEDIUM_INT,
+  pattern GL_MIN,
+  pattern GL_MINOR_VERSION,
+  pattern GL_MIN_FRAGMENT_INTERPOLATION_OFFSET,
+  pattern GL_MIN_MAP_BUFFER_ALIGNMENT,
+  pattern GL_MIN_PROGRAM_TEXEL_OFFSET,
+  pattern GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET,
+  pattern GL_MIN_SAMPLE_SHADING_VALUE,
+  pattern GL_MIPMAP,
+  pattern GL_MIRRORED_REPEAT,
+  pattern GL_MIRROR_CLAMP_TO_EDGE,
+  pattern GL_MODELVIEW,
+  pattern GL_MODELVIEW_MATRIX,
+  pattern GL_MODELVIEW_STACK_DEPTH,
+  pattern GL_MODULATE,
+  pattern GL_MULT,
+  pattern GL_MULTISAMPLE,
+  pattern GL_MULTISAMPLE_BIT,
+  pattern GL_N3F_V3F,
+  pattern GL_NAME_LENGTH,
+  pattern GL_NAME_STACK_DEPTH,
+  pattern GL_NAND,
+  pattern GL_NEAREST,
+  pattern GL_NEAREST_MIPMAP_LINEAR,
+  pattern GL_NEAREST_MIPMAP_NEAREST,
+  pattern GL_NEGATIVE_ONE_TO_ONE,
+  pattern GL_NEVER,
+  pattern GL_NICEST,
+  pattern GL_NONE,
+  pattern GL_NOOP,
+  pattern GL_NOR,
+  pattern GL_NORMALIZE,
+  pattern GL_NORMAL_ARRAY,
+  pattern GL_NORMAL_ARRAY_BUFFER_BINDING,
+  pattern GL_NORMAL_ARRAY_POINTER,
+  pattern GL_NORMAL_ARRAY_STRIDE,
+  pattern GL_NORMAL_ARRAY_TYPE,
+  pattern GL_NORMAL_MAP,
+  pattern GL_NOTEQUAL,
+  pattern GL_NO_ERROR,
+  pattern GL_NO_RESET_NOTIFICATION,
+  pattern GL_NUM_ACTIVE_VARIABLES,
+  pattern GL_NUM_COMPATIBLE_SUBROUTINES,
+  pattern GL_NUM_COMPRESSED_TEXTURE_FORMATS,
+  pattern GL_NUM_EXTENSIONS,
+  pattern GL_NUM_PROGRAM_BINARY_FORMATS,
+  pattern GL_NUM_SAMPLE_COUNTS,
+  pattern GL_NUM_SHADER_BINARY_FORMATS,
+  pattern GL_NUM_SHADING_LANGUAGE_VERSIONS,
+  pattern GL_OBJECT_LINEAR,
+  pattern GL_OBJECT_PLANE,
+  pattern GL_OBJECT_TYPE,
+  pattern GL_OFFSET,
+  pattern GL_ONE,
+  pattern GL_ONE_MINUS_CONSTANT_ALPHA,
+  pattern GL_ONE_MINUS_CONSTANT_COLOR,
+  pattern GL_ONE_MINUS_DST_ALPHA,
+  pattern GL_ONE_MINUS_DST_COLOR,
+  pattern GL_ONE_MINUS_SRC1_ALPHA,
+  pattern GL_ONE_MINUS_SRC1_COLOR,
+  pattern GL_ONE_MINUS_SRC_ALPHA,
+  pattern GL_ONE_MINUS_SRC_COLOR,
+  pattern GL_OPERAND0_ALPHA,
+  pattern GL_OPERAND0_RGB,
+  pattern GL_OPERAND1_ALPHA,
+  pattern GL_OPERAND1_RGB,
+  pattern GL_OPERAND2_ALPHA,
+  pattern GL_OPERAND2_RGB,
+  pattern GL_OR,
+  pattern GL_ORDER,
+  pattern GL_OR_INVERTED,
+  pattern GL_OR_REVERSE,
+  pattern GL_OUT_OF_MEMORY,
+  pattern GL_PACK_ALIGNMENT,
+  pattern GL_PACK_COMPRESSED_BLOCK_DEPTH,
+  pattern GL_PACK_COMPRESSED_BLOCK_HEIGHT,
+  pattern GL_PACK_COMPRESSED_BLOCK_SIZE,
+  pattern GL_PACK_COMPRESSED_BLOCK_WIDTH,
+  pattern GL_PACK_IMAGE_HEIGHT,
+  pattern GL_PACK_LSB_FIRST,
+  pattern GL_PACK_ROW_LENGTH,
+  pattern GL_PACK_SKIP_IMAGES,
+  pattern GL_PACK_SKIP_PIXELS,
+  pattern GL_PACK_SKIP_ROWS,
+  pattern GL_PACK_SWAP_BYTES,
+  pattern GL_PASS_THROUGH_TOKEN,
+  pattern GL_PATCHES,
+  pattern GL_PATCH_DEFAULT_INNER_LEVEL,
+  pattern GL_PATCH_DEFAULT_OUTER_LEVEL,
+  pattern GL_PATCH_VERTICES,
+  pattern GL_PERSPECTIVE_CORRECTION_HINT,
+  pattern GL_PIXEL_BUFFER_BARRIER_BIT,
+  pattern GL_PIXEL_MAP_A_TO_A,
+  pattern GL_PIXEL_MAP_A_TO_A_SIZE,
+  pattern GL_PIXEL_MAP_B_TO_B,
+  pattern GL_PIXEL_MAP_B_TO_B_SIZE,
+  pattern GL_PIXEL_MAP_G_TO_G,
+  pattern GL_PIXEL_MAP_G_TO_G_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_A,
+  pattern GL_PIXEL_MAP_I_TO_A_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_B,
+  pattern GL_PIXEL_MAP_I_TO_B_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_G,
+  pattern GL_PIXEL_MAP_I_TO_G_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_I,
+  pattern GL_PIXEL_MAP_I_TO_I_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_R,
+  pattern GL_PIXEL_MAP_I_TO_R_SIZE,
+  pattern GL_PIXEL_MAP_R_TO_R,
+  pattern GL_PIXEL_MAP_R_TO_R_SIZE,
+  pattern GL_PIXEL_MAP_S_TO_S,
+  pattern GL_PIXEL_MAP_S_TO_S_SIZE,
+  pattern GL_PIXEL_MODE_BIT,
+  pattern GL_PIXEL_PACK_BUFFER,
+  pattern GL_PIXEL_PACK_BUFFER_BINDING,
+  pattern GL_PIXEL_UNPACK_BUFFER,
+  pattern GL_PIXEL_UNPACK_BUFFER_BINDING,
+  pattern GL_POINT,
+  pattern GL_POINTS,
+  pattern GL_POINT_BIT,
+  pattern GL_POINT_DISTANCE_ATTENUATION,
+  pattern GL_POINT_FADE_THRESHOLD_SIZE,
+  pattern GL_POINT_SIZE,
+  pattern GL_POINT_SIZE_GRANULARITY,
+  pattern GL_POINT_SIZE_MAX,
+  pattern GL_POINT_SIZE_MIN,
+  pattern GL_POINT_SIZE_RANGE,
+  pattern GL_POINT_SMOOTH,
+  pattern GL_POINT_SMOOTH_HINT,
+  pattern GL_POINT_SPRITE,
+  pattern GL_POINT_SPRITE_COORD_ORIGIN,
+  pattern GL_POINT_TOKEN,
+  pattern GL_POLYGON,
+  pattern GL_POLYGON_BIT,
+  pattern GL_POLYGON_MODE,
+  pattern GL_POLYGON_OFFSET_FACTOR,
+  pattern GL_POLYGON_OFFSET_FILL,
+  pattern GL_POLYGON_OFFSET_LINE,
+  pattern GL_POLYGON_OFFSET_POINT,
+  pattern GL_POLYGON_OFFSET_UNITS,
+  pattern GL_POLYGON_SMOOTH,
+  pattern GL_POLYGON_SMOOTH_HINT,
+  pattern GL_POLYGON_STIPPLE,
+  pattern GL_POLYGON_STIPPLE_BIT,
+  pattern GL_POLYGON_TOKEN,
+  pattern GL_POSITION,
+  pattern GL_PREVIOUS,
+  pattern GL_PRIMARY_COLOR,
+  pattern GL_PRIMITIVES_GENERATED,
+  pattern GL_PRIMITIVE_RESTART,
+  pattern GL_PRIMITIVE_RESTART_FIXED_INDEX,
+  pattern GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED,
+  pattern GL_PRIMITIVE_RESTART_INDEX,
+  pattern GL_PROGRAM,
+  pattern GL_PROGRAM_BINARY_FORMATS,
+  pattern GL_PROGRAM_BINARY_LENGTH,
+  pattern GL_PROGRAM_BINARY_RETRIEVABLE_HINT,
+  pattern GL_PROGRAM_INPUT,
+  pattern GL_PROGRAM_OUTPUT,
+  pattern GL_PROGRAM_PIPELINE,
+  pattern GL_PROGRAM_PIPELINE_BINDING,
+  pattern GL_PROGRAM_POINT_SIZE,
+  pattern GL_PROGRAM_SEPARABLE,
+  pattern GL_PROJECTION,
+  pattern GL_PROJECTION_MATRIX,
+  pattern GL_PROJECTION_STACK_DEPTH,
+  pattern GL_PROVOKING_VERTEX,
+  pattern GL_PROXY_TEXTURE_1D,
+  pattern GL_PROXY_TEXTURE_1D_ARRAY,
+  pattern GL_PROXY_TEXTURE_2D,
+  pattern GL_PROXY_TEXTURE_2D_ARRAY,
+  pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE,
+  pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_PROXY_TEXTURE_3D,
+  pattern GL_PROXY_TEXTURE_CUBE_MAP,
+  pattern GL_PROXY_TEXTURE_CUBE_MAP_ARRAY,
+  pattern GL_PROXY_TEXTURE_RECTANGLE,
+  pattern GL_Q,
+  pattern GL_QUADRATIC_ATTENUATION,
+  pattern GL_QUADS,
+  pattern GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION,
+  pattern GL_QUAD_STRIP,
+  pattern GL_QUERY,
+  pattern GL_QUERY_BUFFER,
+  pattern GL_QUERY_BUFFER_BARRIER_BIT,
+  pattern GL_QUERY_BUFFER_BINDING,
+  pattern GL_QUERY_BY_REGION_NO_WAIT,
+  pattern GL_QUERY_BY_REGION_NO_WAIT_INVERTED,
+  pattern GL_QUERY_BY_REGION_WAIT,
+  pattern GL_QUERY_BY_REGION_WAIT_INVERTED,
+  pattern GL_QUERY_COUNTER_BITS,
+  pattern GL_QUERY_NO_WAIT,
+  pattern GL_QUERY_NO_WAIT_INVERTED,
+  pattern GL_QUERY_RESULT,
+  pattern GL_QUERY_RESULT_AVAILABLE,
+  pattern GL_QUERY_RESULT_NO_WAIT,
+  pattern GL_QUERY_TARGET,
+  pattern GL_QUERY_WAIT,
+  pattern GL_QUERY_WAIT_INVERTED,
+  pattern GL_R,
+  pattern GL_R11F_G11F_B10F,
+  pattern GL_R16,
+  pattern GL_R16F,
+  pattern GL_R16I,
+  pattern GL_R16UI,
+  pattern GL_R16_SNORM,
+  pattern GL_R32F,
+  pattern GL_R32I,
+  pattern GL_R32UI,
+  pattern GL_R3_G3_B2,
+  pattern GL_R8,
+  pattern GL_R8I,
+  pattern GL_R8UI,
+  pattern GL_R8_SNORM,
+  pattern GL_RASTERIZER_DISCARD,
+  pattern GL_READ_BUFFER,
+  pattern GL_READ_FRAMEBUFFER,
+  pattern GL_READ_FRAMEBUFFER_BINDING,
+  pattern GL_READ_ONLY,
+  pattern GL_READ_PIXELS,
+  pattern GL_READ_PIXELS_FORMAT,
+  pattern GL_READ_PIXELS_TYPE,
+  pattern GL_READ_WRITE,
+  pattern GL_RED,
+  pattern GL_RED_BIAS,
+  pattern GL_RED_BITS,
+  pattern GL_RED_INTEGER,
+  pattern GL_RED_SCALE,
+  pattern GL_REFERENCED_BY_COMPUTE_SHADER,
+  pattern GL_REFERENCED_BY_FRAGMENT_SHADER,
+  pattern GL_REFERENCED_BY_GEOMETRY_SHADER,
+  pattern GL_REFERENCED_BY_TESS_CONTROL_SHADER,
+  pattern GL_REFERENCED_BY_TESS_EVALUATION_SHADER,
+  pattern GL_REFERENCED_BY_VERTEX_SHADER,
+  pattern GL_REFLECTION_MAP,
+  pattern GL_RENDER,
+  pattern GL_RENDERBUFFER,
+  pattern GL_RENDERBUFFER_ALPHA_SIZE,
+  pattern GL_RENDERBUFFER_BINDING,
+  pattern GL_RENDERBUFFER_BLUE_SIZE,
+  pattern GL_RENDERBUFFER_DEPTH_SIZE,
+  pattern GL_RENDERBUFFER_GREEN_SIZE,
+  pattern GL_RENDERBUFFER_HEIGHT,
+  pattern GL_RENDERBUFFER_INTERNAL_FORMAT,
+  pattern GL_RENDERBUFFER_RED_SIZE,
+  pattern GL_RENDERBUFFER_SAMPLES,
+  pattern GL_RENDERBUFFER_STENCIL_SIZE,
+  pattern GL_RENDERBUFFER_WIDTH,
+  pattern GL_RENDERER,
+  pattern GL_RENDER_MODE,
+  pattern GL_REPEAT,
+  pattern GL_REPLACE,
+  pattern GL_RESCALE_NORMAL,
+  pattern GL_RESET_NOTIFICATION_STRATEGY,
+  pattern GL_RETURN,
+  pattern GL_RG,
+  pattern GL_RG16,
+  pattern GL_RG16F,
+  pattern GL_RG16I,
+  pattern GL_RG16UI,
+  pattern GL_RG16_SNORM,
+  pattern GL_RG32F,
+  pattern GL_RG32I,
+  pattern GL_RG32UI,
+  pattern GL_RG8,
+  pattern GL_RG8I,
+  pattern GL_RG8UI,
+  pattern GL_RG8_SNORM,
+  pattern GL_RGB,
+  pattern GL_RGB10,
+  pattern GL_RGB10_A2,
+  pattern GL_RGB10_A2UI,
+  pattern GL_RGB12,
+  pattern GL_RGB16,
+  pattern GL_RGB16F,
+  pattern GL_RGB16I,
+  pattern GL_RGB16UI,
+  pattern GL_RGB16_SNORM,
+  pattern GL_RGB32F,
+  pattern GL_RGB32I,
+  pattern GL_RGB32UI,
+  pattern GL_RGB4,
+  pattern GL_RGB5,
+  pattern GL_RGB565,
+  pattern GL_RGB5_A1,
+  pattern GL_RGB8,
+  pattern GL_RGB8I,
+  pattern GL_RGB8UI,
+  pattern GL_RGB8_SNORM,
+  pattern GL_RGB9_E5,
+  pattern GL_RGBA,
+  pattern GL_RGBA12,
+  pattern GL_RGBA16,
+  pattern GL_RGBA16F,
+  pattern GL_RGBA16I,
+  pattern GL_RGBA16UI,
+  pattern GL_RGBA16_SNORM,
+  pattern GL_RGBA2,
+  pattern GL_RGBA32F,
+  pattern GL_RGBA32I,
+  pattern GL_RGBA32UI,
+  pattern GL_RGBA4,
+  pattern GL_RGBA8,
+  pattern GL_RGBA8I,
+  pattern GL_RGBA8UI,
+  pattern GL_RGBA8_SNORM,
+  pattern GL_RGBA_INTEGER,
+  pattern GL_RGBA_MODE,
+  pattern GL_RGB_INTEGER,
+  pattern GL_RGB_SCALE,
+  pattern GL_RG_INTEGER,
+  pattern GL_RIGHT,
+  pattern GL_S,
+  pattern GL_SAMPLER,
+  pattern GL_SAMPLER_1D,
+  pattern GL_SAMPLER_1D_ARRAY,
+  pattern GL_SAMPLER_1D_ARRAY_SHADOW,
+  pattern GL_SAMPLER_1D_SHADOW,
+  pattern GL_SAMPLER_2D,
+  pattern GL_SAMPLER_2D_ARRAY,
+  pattern GL_SAMPLER_2D_ARRAY_SHADOW,
+  pattern GL_SAMPLER_2D_MULTISAMPLE,
+  pattern GL_SAMPLER_2D_MULTISAMPLE_ARRAY,
+  pattern GL_SAMPLER_2D_RECT,
+  pattern GL_SAMPLER_2D_RECT_SHADOW,
+  pattern GL_SAMPLER_2D_SHADOW,
+  pattern GL_SAMPLER_3D,
+  pattern GL_SAMPLER_BINDING,
+  pattern GL_SAMPLER_BUFFER,
+  pattern GL_SAMPLER_CUBE,
+  pattern GL_SAMPLER_CUBE_MAP_ARRAY,
+  pattern GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW,
+  pattern GL_SAMPLER_CUBE_SHADOW,
+  pattern GL_SAMPLES,
+  pattern GL_SAMPLES_PASSED,
+  pattern GL_SAMPLE_ALPHA_TO_COVERAGE,
+  pattern GL_SAMPLE_ALPHA_TO_ONE,
+  pattern GL_SAMPLE_BUFFERS,
+  pattern GL_SAMPLE_COVERAGE,
+  pattern GL_SAMPLE_COVERAGE_INVERT,
+  pattern GL_SAMPLE_COVERAGE_VALUE,
+  pattern GL_SAMPLE_MASK,
+  pattern GL_SAMPLE_MASK_VALUE,
+  pattern GL_SAMPLE_POSITION,
+  pattern GL_SAMPLE_SHADING,
+  pattern GL_SCISSOR_BIT,
+  pattern GL_SCISSOR_BOX,
+  pattern GL_SCISSOR_TEST,
+  pattern GL_SECONDARY_COLOR_ARRAY,
+  pattern GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING,
+  pattern GL_SECONDARY_COLOR_ARRAY_POINTER,
+  pattern GL_SECONDARY_COLOR_ARRAY_SIZE,
+  pattern GL_SECONDARY_COLOR_ARRAY_STRIDE,
+  pattern GL_SECONDARY_COLOR_ARRAY_TYPE,
+  pattern GL_SELECT,
+  pattern GL_SELECTION_BUFFER_POINTER,
+  pattern GL_SELECTION_BUFFER_SIZE,
+  pattern GL_SEPARATE_ATTRIBS,
+  pattern GL_SEPARATE_SPECULAR_COLOR,
+  pattern GL_SET,
+  pattern GL_SHADER,
+  pattern GL_SHADER_BINARY_FORMATS,
+  pattern GL_SHADER_COMPILER,
+  pattern GL_SHADER_IMAGE_ACCESS_BARRIER_BIT,
+  pattern GL_SHADER_IMAGE_ATOMIC,
+  pattern GL_SHADER_IMAGE_LOAD,
+  pattern GL_SHADER_IMAGE_STORE,
+  pattern GL_SHADER_SOURCE_LENGTH,
+  pattern GL_SHADER_STORAGE_BARRIER_BIT,
+  pattern GL_SHADER_STORAGE_BLOCK,
+  pattern GL_SHADER_STORAGE_BUFFER,
+  pattern GL_SHADER_STORAGE_BUFFER_BINDING,
+  pattern GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT,
+  pattern GL_SHADER_STORAGE_BUFFER_SIZE,
+  pattern GL_SHADER_STORAGE_BUFFER_START,
+  pattern GL_SHADER_TYPE,
+  pattern GL_SHADE_MODEL,
+  pattern GL_SHADING_LANGUAGE_VERSION,
+  pattern GL_SHININESS,
+  pattern GL_SHORT,
+  pattern GL_SIGNALED,
+  pattern GL_SIGNED_NORMALIZED,
+  pattern GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST,
+  pattern GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE,
+  pattern GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST,
+  pattern GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE,
+  pattern GL_SINGLE_COLOR,
+  pattern GL_SLUMINANCE,
+  pattern GL_SLUMINANCE8,
+  pattern GL_SLUMINANCE8_ALPHA8,
+  pattern GL_SLUMINANCE_ALPHA,
+  pattern GL_SMOOTH,
+  pattern GL_SMOOTH_LINE_WIDTH_GRANULARITY,
+  pattern GL_SMOOTH_LINE_WIDTH_RANGE,
+  pattern GL_SMOOTH_POINT_SIZE_GRANULARITY,
+  pattern GL_SMOOTH_POINT_SIZE_RANGE,
+  pattern GL_SOURCE0_ALPHA,
+  pattern GL_SOURCE0_RGB,
+  pattern GL_SOURCE1_ALPHA,
+  pattern GL_SOURCE1_RGB,
+  pattern GL_SOURCE2_ALPHA,
+  pattern GL_SOURCE2_RGB,
+  pattern GL_SPECULAR,
+  pattern GL_SPHERE_MAP,
+  pattern GL_SPOT_CUTOFF,
+  pattern GL_SPOT_DIRECTION,
+  pattern GL_SPOT_EXPONENT,
+  pattern GL_SRC0_ALPHA,
+  pattern GL_SRC0_RGB,
+  pattern GL_SRC1_ALPHA,
+  pattern GL_SRC1_COLOR,
+  pattern GL_SRC1_RGB,
+  pattern GL_SRC2_ALPHA,
+  pattern GL_SRC2_RGB,
+  pattern GL_SRC_ALPHA,
+  pattern GL_SRC_ALPHA_SATURATE,
+  pattern GL_SRC_COLOR,
+  pattern GL_SRGB,
+  pattern GL_SRGB8,
+  pattern GL_SRGB8_ALPHA8,
+  pattern GL_SRGB_ALPHA,
+  pattern GL_SRGB_READ,
+  pattern GL_SRGB_WRITE,
+  pattern GL_STACK_OVERFLOW,
+  pattern GL_STACK_UNDERFLOW,
+  pattern GL_STATIC_COPY,
+  pattern GL_STATIC_DRAW,
+  pattern GL_STATIC_READ,
+  pattern GL_STENCIL,
+  pattern GL_STENCIL_ATTACHMENT,
+  pattern GL_STENCIL_BACK_FAIL,
+  pattern GL_STENCIL_BACK_FUNC,
+  pattern GL_STENCIL_BACK_PASS_DEPTH_FAIL,
+  pattern GL_STENCIL_BACK_PASS_DEPTH_PASS,
+  pattern GL_STENCIL_BACK_REF,
+  pattern GL_STENCIL_BACK_VALUE_MASK,
+  pattern GL_STENCIL_BACK_WRITEMASK,
+  pattern GL_STENCIL_BITS,
+  pattern GL_STENCIL_BUFFER_BIT,
+  pattern GL_STENCIL_CLEAR_VALUE,
+  pattern GL_STENCIL_COMPONENTS,
+  pattern GL_STENCIL_FAIL,
+  pattern GL_STENCIL_FUNC,
+  pattern GL_STENCIL_INDEX,
+  pattern GL_STENCIL_INDEX1,
+  pattern GL_STENCIL_INDEX16,
+  pattern GL_STENCIL_INDEX4,
+  pattern GL_STENCIL_INDEX8,
+  pattern GL_STENCIL_PASS_DEPTH_FAIL,
+  pattern GL_STENCIL_PASS_DEPTH_PASS,
+  pattern GL_STENCIL_REF,
+  pattern GL_STENCIL_RENDERABLE,
+  pattern GL_STENCIL_TEST,
+  pattern GL_STENCIL_VALUE_MASK,
+  pattern GL_STENCIL_WRITEMASK,
+  pattern GL_STEREO,
+  pattern GL_STREAM_COPY,
+  pattern GL_STREAM_DRAW,
+  pattern GL_STREAM_READ,
+  pattern GL_SUBPIXEL_BITS,
+  pattern GL_SUBTRACT,
+  pattern GL_SYNC_CONDITION,
+  pattern GL_SYNC_FENCE,
+  pattern GL_SYNC_FLAGS,
+  pattern GL_SYNC_FLUSH_COMMANDS_BIT,
+  pattern GL_SYNC_GPU_COMMANDS_COMPLETE,
+  pattern GL_SYNC_STATUS,
+  pattern GL_T,
+  pattern GL_T2F_C3F_V3F,
+  pattern GL_T2F_C4F_N3F_V3F,
+  pattern GL_T2F_C4UB_V3F,
+  pattern GL_T2F_N3F_V3F,
+  pattern GL_T2F_V3F,
+  pattern GL_T4F_C4F_N3F_V4F,
+  pattern GL_T4F_V4F,
+  pattern GL_TESS_CONTROL_OUTPUT_VERTICES,
+  pattern GL_TESS_CONTROL_SHADER,
+  pattern GL_TESS_CONTROL_SHADER_BIT,
+  pattern GL_TESS_CONTROL_SUBROUTINE,
+  pattern GL_TESS_CONTROL_SUBROUTINE_UNIFORM,
+  pattern GL_TESS_CONTROL_TEXTURE,
+  pattern GL_TESS_EVALUATION_SHADER,
+  pattern GL_TESS_EVALUATION_SHADER_BIT,
+  pattern GL_TESS_EVALUATION_SUBROUTINE,
+  pattern GL_TESS_EVALUATION_SUBROUTINE_UNIFORM,
+  pattern GL_TESS_EVALUATION_TEXTURE,
+  pattern GL_TESS_GEN_MODE,
+  pattern GL_TESS_GEN_POINT_MODE,
+  pattern GL_TESS_GEN_SPACING,
+  pattern GL_TESS_GEN_VERTEX_ORDER,
+  pattern GL_TEXTURE,
+  pattern GL_TEXTURE0,
+  pattern GL_TEXTURE1,
+  pattern GL_TEXTURE10,
+  pattern GL_TEXTURE11,
+  pattern GL_TEXTURE12,
+  pattern GL_TEXTURE13,
+  pattern GL_TEXTURE14,
+  pattern GL_TEXTURE15,
+  pattern GL_TEXTURE16,
+  pattern GL_TEXTURE17,
+  pattern GL_TEXTURE18,
+  pattern GL_TEXTURE19,
+  pattern GL_TEXTURE2,
+  pattern GL_TEXTURE20,
+  pattern GL_TEXTURE21,
+  pattern GL_TEXTURE22,
+  pattern GL_TEXTURE23,
+  pattern GL_TEXTURE24,
+  pattern GL_TEXTURE25,
+  pattern GL_TEXTURE26,
+  pattern GL_TEXTURE27,
+  pattern GL_TEXTURE28,
+  pattern GL_TEXTURE29,
+  pattern GL_TEXTURE3,
+  pattern GL_TEXTURE30,
+  pattern GL_TEXTURE31,
+  pattern GL_TEXTURE4,
+  pattern GL_TEXTURE5,
+  pattern GL_TEXTURE6,
+  pattern GL_TEXTURE7,
+  pattern GL_TEXTURE8,
+  pattern GL_TEXTURE9,
+  pattern GL_TEXTURE_1D,
+  pattern GL_TEXTURE_1D_ARRAY,
+  pattern GL_TEXTURE_2D,
+  pattern GL_TEXTURE_2D_ARRAY,
+  pattern GL_TEXTURE_2D_MULTISAMPLE,
+  pattern GL_TEXTURE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_TEXTURE_3D,
+  pattern GL_TEXTURE_ALPHA_SIZE,
+  pattern GL_TEXTURE_ALPHA_TYPE,
+  pattern GL_TEXTURE_BASE_LEVEL,
+  pattern GL_TEXTURE_BINDING_1D,
+  pattern GL_TEXTURE_BINDING_1D_ARRAY,
+  pattern GL_TEXTURE_BINDING_2D,
+  pattern GL_TEXTURE_BINDING_2D_ARRAY,
+  pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE,
+  pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY,
+  pattern GL_TEXTURE_BINDING_3D,
+  pattern GL_TEXTURE_BINDING_BUFFER,
+  pattern GL_TEXTURE_BINDING_CUBE_MAP,
+  pattern GL_TEXTURE_BINDING_CUBE_MAP_ARRAY,
+  pattern GL_TEXTURE_BINDING_RECTANGLE,
+  pattern GL_TEXTURE_BIT,
+  pattern GL_TEXTURE_BLUE_SIZE,
+  pattern GL_TEXTURE_BLUE_TYPE,
+  pattern GL_TEXTURE_BORDER,
+  pattern GL_TEXTURE_BORDER_COLOR,
+  pattern GL_TEXTURE_BUFFER,
+  pattern GL_TEXTURE_BUFFER_BINDING,
+  pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING,
+  pattern GL_TEXTURE_BUFFER_OFFSET,
+  pattern GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT,
+  pattern GL_TEXTURE_BUFFER_SIZE,
+  pattern GL_TEXTURE_COMPARE_FUNC,
+  pattern GL_TEXTURE_COMPARE_MODE,
+  pattern GL_TEXTURE_COMPONENTS,
+  pattern GL_TEXTURE_COMPRESSED,
+  pattern GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT,
+  pattern GL_TEXTURE_COMPRESSED_BLOCK_SIZE,
+  pattern GL_TEXTURE_COMPRESSED_BLOCK_WIDTH,
+  pattern GL_TEXTURE_COMPRESSED_IMAGE_SIZE,
+  pattern GL_TEXTURE_COMPRESSION_HINT,
+  pattern GL_TEXTURE_COORD_ARRAY,
+  pattern GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING,
+  pattern GL_TEXTURE_COORD_ARRAY_POINTER,
+  pattern GL_TEXTURE_COORD_ARRAY_SIZE,
+  pattern GL_TEXTURE_COORD_ARRAY_STRIDE,
+  pattern GL_TEXTURE_COORD_ARRAY_TYPE,
+  pattern GL_TEXTURE_CUBE_MAP,
+  pattern GL_TEXTURE_CUBE_MAP_ARRAY,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z,
+  pattern GL_TEXTURE_CUBE_MAP_SEAMLESS,
+  pattern GL_TEXTURE_DEPTH,
+  pattern GL_TEXTURE_DEPTH_SIZE,
+  pattern GL_TEXTURE_DEPTH_TYPE,
+  pattern GL_TEXTURE_ENV,
+  pattern GL_TEXTURE_ENV_COLOR,
+  pattern GL_TEXTURE_ENV_MODE,
+  pattern GL_TEXTURE_FETCH_BARRIER_BIT,
+  pattern GL_TEXTURE_FILTER_CONTROL,
+  pattern GL_TEXTURE_FIXED_SAMPLE_LOCATIONS,
+  pattern GL_TEXTURE_GATHER,
+  pattern GL_TEXTURE_GATHER_SHADOW,
+  pattern GL_TEXTURE_GEN_MODE,
+  pattern GL_TEXTURE_GEN_Q,
+  pattern GL_TEXTURE_GEN_R,
+  pattern GL_TEXTURE_GEN_S,
+  pattern GL_TEXTURE_GEN_T,
+  pattern GL_TEXTURE_GREEN_SIZE,
+  pattern GL_TEXTURE_GREEN_TYPE,
+  pattern GL_TEXTURE_HEIGHT,
+  pattern GL_TEXTURE_IMAGE_FORMAT,
+  pattern GL_TEXTURE_IMAGE_TYPE,
+  pattern GL_TEXTURE_IMMUTABLE_FORMAT,
+  pattern GL_TEXTURE_IMMUTABLE_LEVELS,
+  pattern GL_TEXTURE_INTENSITY_SIZE,
+  pattern GL_TEXTURE_INTENSITY_TYPE,
+  pattern GL_TEXTURE_INTERNAL_FORMAT,
+  pattern GL_TEXTURE_LOD_BIAS,
+  pattern GL_TEXTURE_LUMINANCE_SIZE,
+  pattern GL_TEXTURE_LUMINANCE_TYPE,
+  pattern GL_TEXTURE_MAG_FILTER,
+  pattern GL_TEXTURE_MATRIX,
+  pattern GL_TEXTURE_MAX_LEVEL,
+  pattern GL_TEXTURE_MAX_LOD,
+  pattern GL_TEXTURE_MIN_FILTER,
+  pattern GL_TEXTURE_MIN_LOD,
+  pattern GL_TEXTURE_PRIORITY,
+  pattern GL_TEXTURE_RECTANGLE,
+  pattern GL_TEXTURE_RED_SIZE,
+  pattern GL_TEXTURE_RED_TYPE,
+  pattern GL_TEXTURE_RESIDENT,
+  pattern GL_TEXTURE_SAMPLES,
+  pattern GL_TEXTURE_SHADOW,
+  pattern GL_TEXTURE_SHARED_SIZE,
+  pattern GL_TEXTURE_STACK_DEPTH,
+  pattern GL_TEXTURE_STENCIL_SIZE,
+  pattern GL_TEXTURE_SWIZZLE_A,
+  pattern GL_TEXTURE_SWIZZLE_B,
+  pattern GL_TEXTURE_SWIZZLE_G,
+  pattern GL_TEXTURE_SWIZZLE_R,
+  pattern GL_TEXTURE_SWIZZLE_RGBA,
+  pattern GL_TEXTURE_TARGET,
+  pattern GL_TEXTURE_UPDATE_BARRIER_BIT,
+  pattern GL_TEXTURE_VIEW,
+  pattern GL_TEXTURE_VIEW_MIN_LAYER,
+  pattern GL_TEXTURE_VIEW_MIN_LEVEL,
+  pattern GL_TEXTURE_VIEW_NUM_LAYERS,
+  pattern GL_TEXTURE_VIEW_NUM_LEVELS,
+  pattern GL_TEXTURE_WIDTH,
+  pattern GL_TEXTURE_WRAP_R,
+  pattern GL_TEXTURE_WRAP_S,
+  pattern GL_TEXTURE_WRAP_T,
+  pattern GL_TIMEOUT_EXPIRED,
+  pattern GL_TIMEOUT_IGNORED,
+  pattern GL_TIMESTAMP,
+  pattern GL_TIME_ELAPSED,
+  pattern GL_TOP_LEVEL_ARRAY_SIZE,
+  pattern GL_TOP_LEVEL_ARRAY_STRIDE,
+  pattern GL_TRANSFORM_BIT,
+  pattern GL_TRANSFORM_FEEDBACK,
+  pattern GL_TRANSFORM_FEEDBACK_ACTIVE,
+  pattern GL_TRANSFORM_FEEDBACK_BARRIER_BIT,
+  pattern GL_TRANSFORM_FEEDBACK_BINDING,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_BINDING,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_INDEX,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_MODE,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_SIZE,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_START,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE,
+  pattern GL_TRANSFORM_FEEDBACK_PAUSED,
+  pattern GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN,
+  pattern GL_TRANSFORM_FEEDBACK_VARYING,
+  pattern GL_TRANSFORM_FEEDBACK_VARYINGS,
+  pattern GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH,
+  pattern GL_TRANSPOSE_COLOR_MATRIX,
+  pattern GL_TRANSPOSE_MODELVIEW_MATRIX,
+  pattern GL_TRANSPOSE_PROJECTION_MATRIX,
+  pattern GL_TRANSPOSE_TEXTURE_MATRIX,
+  pattern GL_TRIANGLES,
+  pattern GL_TRIANGLES_ADJACENCY,
+  pattern GL_TRIANGLE_FAN,
+  pattern GL_TRIANGLE_STRIP,
+  pattern GL_TRIANGLE_STRIP_ADJACENCY,
+  pattern GL_TRUE,
+  pattern GL_TYPE,
+  pattern GL_UNDEFINED_VERTEX,
+  pattern GL_UNIFORM,
+  pattern GL_UNIFORM_ARRAY_STRIDE,
+  pattern GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX,
+  pattern GL_UNIFORM_BARRIER_BIT,
+  pattern GL_UNIFORM_BLOCK,
+  pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS,
+  pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES,
+  pattern GL_UNIFORM_BLOCK_BINDING,
+  pattern GL_UNIFORM_BLOCK_DATA_SIZE,
+  pattern GL_UNIFORM_BLOCK_INDEX,
+  pattern GL_UNIFORM_BLOCK_NAME_LENGTH,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER,
+  pattern GL_UNIFORM_BUFFER,
+  pattern GL_UNIFORM_BUFFER_BINDING,
+  pattern GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT,
+  pattern GL_UNIFORM_BUFFER_SIZE,
+  pattern GL_UNIFORM_BUFFER_START,
+  pattern GL_UNIFORM_IS_ROW_MAJOR,
+  pattern GL_UNIFORM_MATRIX_STRIDE,
+  pattern GL_UNIFORM_NAME_LENGTH,
+  pattern GL_UNIFORM_OFFSET,
+  pattern GL_UNIFORM_SIZE,
+  pattern GL_UNIFORM_TYPE,
+  pattern GL_UNKNOWN_CONTEXT_RESET,
+  pattern GL_UNPACK_ALIGNMENT,
+  pattern GL_UNPACK_COMPRESSED_BLOCK_DEPTH,
+  pattern GL_UNPACK_COMPRESSED_BLOCK_HEIGHT,
+  pattern GL_UNPACK_COMPRESSED_BLOCK_SIZE,
+  pattern GL_UNPACK_COMPRESSED_BLOCK_WIDTH,
+  pattern GL_UNPACK_IMAGE_HEIGHT,
+  pattern GL_UNPACK_LSB_FIRST,
+  pattern GL_UNPACK_ROW_LENGTH,
+  pattern GL_UNPACK_SKIP_IMAGES,
+  pattern GL_UNPACK_SKIP_PIXELS,
+  pattern GL_UNPACK_SKIP_ROWS,
+  pattern GL_UNPACK_SWAP_BYTES,
+  pattern GL_UNSIGNALED,
+  pattern GL_UNSIGNED_BYTE,
+  pattern GL_UNSIGNED_BYTE_2_3_3_REV,
+  pattern GL_UNSIGNED_BYTE_3_3_2,
+  pattern GL_UNSIGNED_INT,
+  pattern GL_UNSIGNED_INT_10F_11F_11F_REV,
+  pattern GL_UNSIGNED_INT_10_10_10_2,
+  pattern GL_UNSIGNED_INT_24_8,
+  pattern GL_UNSIGNED_INT_2_10_10_10_REV,
+  pattern GL_UNSIGNED_INT_5_9_9_9_REV,
+  pattern GL_UNSIGNED_INT_8_8_8_8,
+  pattern GL_UNSIGNED_INT_8_8_8_8_REV,
+  pattern GL_UNSIGNED_INT_ATOMIC_COUNTER,
+  pattern GL_UNSIGNED_INT_IMAGE_1D,
+  pattern GL_UNSIGNED_INT_IMAGE_1D_ARRAY,
+  pattern GL_UNSIGNED_INT_IMAGE_2D,
+  pattern GL_UNSIGNED_INT_IMAGE_2D_ARRAY,
+  pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE,
+  pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_UNSIGNED_INT_IMAGE_2D_RECT,
+  pattern GL_UNSIGNED_INT_IMAGE_3D,
+  pattern GL_UNSIGNED_INT_IMAGE_BUFFER,
+  pattern GL_UNSIGNED_INT_IMAGE_CUBE,
+  pattern GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_1D,
+  pattern GL_UNSIGNED_INT_SAMPLER_1D_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_RECT,
+  pattern GL_UNSIGNED_INT_SAMPLER_3D,
+  pattern GL_UNSIGNED_INT_SAMPLER_BUFFER,
+  pattern GL_UNSIGNED_INT_SAMPLER_CUBE,
+  pattern GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY,
+  pattern GL_UNSIGNED_INT_VEC2,
+  pattern GL_UNSIGNED_INT_VEC3,
+  pattern GL_UNSIGNED_INT_VEC4,
+  pattern GL_UNSIGNED_NORMALIZED,
+  pattern GL_UNSIGNED_SHORT,
+  pattern GL_UNSIGNED_SHORT_1_5_5_5_REV,
+  pattern GL_UNSIGNED_SHORT_4_4_4_4,
+  pattern GL_UNSIGNED_SHORT_4_4_4_4_REV,
+  pattern GL_UNSIGNED_SHORT_5_5_5_1,
+  pattern GL_UNSIGNED_SHORT_5_6_5,
+  pattern GL_UNSIGNED_SHORT_5_6_5_REV,
+  pattern GL_UPPER_LEFT,
+  pattern GL_V2F,
+  pattern GL_V3F,
+  pattern GL_VALIDATE_STATUS,
+  pattern GL_VENDOR,
+  pattern GL_VERSION,
+  pattern GL_VERTEX_ARRAY,
+  pattern GL_VERTEX_ARRAY_BINDING,
+  pattern GL_VERTEX_ARRAY_BUFFER_BINDING,
+  pattern GL_VERTEX_ARRAY_POINTER,
+  pattern GL_VERTEX_ARRAY_SIZE,
+  pattern GL_VERTEX_ARRAY_STRIDE,
+  pattern GL_VERTEX_ARRAY_TYPE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT,
+  pattern GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING,
+  pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR,
+  pattern GL_VERTEX_ATTRIB_ARRAY_ENABLED,
+  pattern GL_VERTEX_ATTRIB_ARRAY_INTEGER,
+  pattern GL_VERTEX_ATTRIB_ARRAY_LONG,
+  pattern GL_VERTEX_ATTRIB_ARRAY_NORMALIZED,
+  pattern GL_VERTEX_ATTRIB_ARRAY_POINTER,
+  pattern GL_VERTEX_ATTRIB_ARRAY_SIZE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_STRIDE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_TYPE,
+  pattern GL_VERTEX_ATTRIB_BINDING,
+  pattern GL_VERTEX_ATTRIB_RELATIVE_OFFSET,
+  pattern GL_VERTEX_BINDING_BUFFER,
+  pattern GL_VERTEX_BINDING_DIVISOR,
+  pattern GL_VERTEX_BINDING_OFFSET,
+  pattern GL_VERTEX_BINDING_STRIDE,
+  pattern GL_VERTEX_PROGRAM_POINT_SIZE,
+  pattern GL_VERTEX_PROGRAM_TWO_SIDE,
+  pattern GL_VERTEX_SHADER,
+  pattern GL_VERTEX_SHADER_BIT,
+  pattern GL_VERTEX_SUBROUTINE,
+  pattern GL_VERTEX_SUBROUTINE_UNIFORM,
+  pattern GL_VERTEX_TEXTURE,
+  pattern GL_VIEWPORT,
+  pattern GL_VIEWPORT_BIT,
+  pattern GL_VIEWPORT_BOUNDS_RANGE,
+  pattern GL_VIEWPORT_INDEX_PROVOKING_VERTEX,
+  pattern GL_VIEWPORT_SUBPIXEL_BITS,
+  pattern GL_VIEW_CLASS_128_BITS,
+  pattern GL_VIEW_CLASS_16_BITS,
+  pattern GL_VIEW_CLASS_24_BITS,
+  pattern GL_VIEW_CLASS_32_BITS,
+  pattern GL_VIEW_CLASS_48_BITS,
+  pattern GL_VIEW_CLASS_64_BITS,
+  pattern GL_VIEW_CLASS_8_BITS,
+  pattern GL_VIEW_CLASS_96_BITS,
+  pattern GL_VIEW_CLASS_BPTC_FLOAT,
+  pattern GL_VIEW_CLASS_BPTC_UNORM,
+  pattern GL_VIEW_CLASS_RGTC1_RED,
+  pattern GL_VIEW_CLASS_RGTC2_RG,
+  pattern GL_VIEW_CLASS_S3TC_DXT1_RGB,
+  pattern GL_VIEW_CLASS_S3TC_DXT1_RGBA,
+  pattern GL_VIEW_CLASS_S3TC_DXT3_RGBA,
+  pattern GL_VIEW_CLASS_S3TC_DXT5_RGBA,
+  pattern GL_VIEW_COMPATIBILITY_CLASS,
+  pattern GL_WAIT_FAILED,
+  pattern GL_WEIGHT_ARRAY_BUFFER_BINDING,
+  pattern GL_WRITE_ONLY,
+  pattern GL_XOR,
+  pattern GL_ZERO,
+  pattern GL_ZERO_TO_ONE,
+  pattern GL_ZOOM_X,
+  pattern GL_ZOOM_Y,
+  -- * Functions
+  glAccum,
+  glActiveShaderProgram,
+  glActiveTexture,
+  glAlphaFunc,
+  glAreTexturesResident,
+  glArrayElement,
+  glAttachShader,
+  glBegin,
+  glBeginConditionalRender,
+  glBeginQuery,
+  glBeginQueryIndexed,
+  glBeginTransformFeedback,
+  glBindAttribLocation,
+  glBindBuffer,
+  glBindBufferBase,
+  glBindBufferRange,
+  glBindBuffersBase,
+  glBindBuffersRange,
+  glBindFragDataLocation,
+  glBindFragDataLocationIndexed,
+  glBindFramebuffer,
+  glBindImageTexture,
+  glBindImageTextures,
+  glBindProgramPipeline,
+  glBindRenderbuffer,
+  glBindSampler,
+  glBindSamplers,
+  glBindTexture,
+  glBindTextureUnit,
+  glBindTextures,
+  glBindTransformFeedback,
+  glBindVertexArray,
+  glBindVertexBuffer,
+  glBindVertexBuffers,
+  glBitmap,
+  glBlendColor,
+  glBlendEquation,
+  glBlendEquationSeparate,
+  glBlendEquationSeparatei,
+  glBlendEquationi,
+  glBlendFunc,
+  glBlendFuncSeparate,
+  glBlendFuncSeparatei,
+  glBlendFunci,
+  glBlitFramebuffer,
+  glBlitNamedFramebuffer,
+  glBufferData,
+  glBufferStorage,
+  glBufferSubData,
+  glCallList,
+  glCallLists,
+  glCheckFramebufferStatus,
+  glCheckNamedFramebufferStatus,
+  glClampColor,
+  glClear,
+  glClearAccum,
+  glClearBufferData,
+  glClearBufferSubData,
+  glClearBufferfi,
+  glClearBufferfv,
+  glClearBufferiv,
+  glClearBufferuiv,
+  glClearColor,
+  glClearDepth,
+  glClearDepthf,
+  glClearIndex,
+  glClearNamedBufferData,
+  glClearNamedBufferSubData,
+  glClearNamedFramebufferfi,
+  glClearNamedFramebufferfv,
+  glClearNamedFramebufferiv,
+  glClearNamedFramebufferuiv,
+  glClearStencil,
+  glClearTexImage,
+  glClearTexSubImage,
+  glClientActiveTexture,
+  glClientWaitSync,
+  glClipControl,
+  glClipPlane,
+  glColor3b,
+  glColor3bv,
+  glColor3d,
+  glColor3dv,
+  glColor3f,
+  glColor3fv,
+  glColor3i,
+  glColor3iv,
+  glColor3s,
+  glColor3sv,
+  glColor3ub,
+  glColor3ubv,
+  glColor3ui,
+  glColor3uiv,
+  glColor3us,
+  glColor3usv,
+  glColor4b,
+  glColor4bv,
+  glColor4d,
+  glColor4dv,
+  glColor4f,
+  glColor4fv,
+  glColor4i,
+  glColor4iv,
+  glColor4s,
+  glColor4sv,
+  glColor4ub,
+  glColor4ubv,
+  glColor4ui,
+  glColor4uiv,
+  glColor4us,
+  glColor4usv,
+  glColorMask,
+  glColorMaski,
+  glColorMaterial,
+  glColorP3ui,
+  glColorP3uiv,
+  glColorP4ui,
+  glColorP4uiv,
+  glColorPointer,
+  glCompileShader,
+  glCompressedTexImage1D,
+  glCompressedTexImage2D,
+  glCompressedTexImage3D,
+  glCompressedTexSubImage1D,
+  glCompressedTexSubImage2D,
+  glCompressedTexSubImage3D,
+  glCompressedTextureSubImage1D,
+  glCompressedTextureSubImage2D,
+  glCompressedTextureSubImage3D,
+  glCopyBufferSubData,
+  glCopyImageSubData,
+  glCopyNamedBufferSubData,
+  glCopyPixels,
+  glCopyTexImage1D,
+  glCopyTexImage2D,
+  glCopyTexSubImage1D,
+  glCopyTexSubImage2D,
+  glCopyTexSubImage3D,
+  glCopyTextureSubImage1D,
+  glCopyTextureSubImage2D,
+  glCopyTextureSubImage3D,
+  glCreateBuffers,
+  glCreateFramebuffers,
+  glCreateProgram,
+  glCreateProgramPipelines,
+  glCreateQueries,
+  glCreateRenderbuffers,
+  glCreateSamplers,
+  glCreateShader,
+  glCreateShaderProgramv,
+  glCreateTextures,
+  glCreateTransformFeedbacks,
+  glCreateVertexArrays,
+  glCullFace,
+  glDebugMessageCallback,
+  glDebugMessageControl,
+  glDebugMessageInsert,
+  glDeleteBuffers,
+  glDeleteFramebuffers,
+  glDeleteLists,
+  glDeleteProgram,
+  glDeleteProgramPipelines,
+  glDeleteQueries,
+  glDeleteRenderbuffers,
+  glDeleteSamplers,
+  glDeleteShader,
+  glDeleteSync,
+  glDeleteTextures,
+  glDeleteTransformFeedbacks,
+  glDeleteVertexArrays,
+  glDepthFunc,
+  glDepthMask,
+  glDepthRange,
+  glDepthRangeArrayv,
+  glDepthRangeIndexed,
+  glDepthRangef,
+  glDetachShader,
+  glDisable,
+  glDisableClientState,
+  glDisableVertexArrayAttrib,
+  glDisableVertexAttribArray,
+  glDisablei,
+  glDispatchCompute,
+  glDispatchComputeIndirect,
+  glDrawArrays,
+  glDrawArraysIndirect,
+  glDrawArraysInstanced,
+  glDrawArraysInstancedBaseInstance,
+  glDrawBuffer,
+  glDrawBuffers,
+  glDrawElements,
+  glDrawElementsBaseVertex,
+  glDrawElementsIndirect,
+  glDrawElementsInstanced,
+  glDrawElementsInstancedBaseInstance,
+  glDrawElementsInstancedBaseVertex,
+  glDrawElementsInstancedBaseVertexBaseInstance,
+  glDrawPixels,
+  glDrawRangeElements,
+  glDrawRangeElementsBaseVertex,
+  glDrawTransformFeedback,
+  glDrawTransformFeedbackInstanced,
+  glDrawTransformFeedbackStream,
+  glDrawTransformFeedbackStreamInstanced,
+  glEdgeFlag,
+  glEdgeFlagPointer,
+  glEdgeFlagv,
+  glEnable,
+  glEnableClientState,
+  glEnableVertexArrayAttrib,
+  glEnableVertexAttribArray,
+  glEnablei,
+  glEnd,
+  glEndConditionalRender,
+  glEndList,
+  glEndQuery,
+  glEndQueryIndexed,
+  glEndTransformFeedback,
+  glEvalCoord1d,
+  glEvalCoord1dv,
+  glEvalCoord1f,
+  glEvalCoord1fv,
+  glEvalCoord2d,
+  glEvalCoord2dv,
+  glEvalCoord2f,
+  glEvalCoord2fv,
+  glEvalMesh1,
+  glEvalMesh2,
+  glEvalPoint1,
+  glEvalPoint2,
+  glFeedbackBuffer,
+  glFenceSync,
+  glFinish,
+  glFlush,
+  glFlushMappedBufferRange,
+  glFlushMappedNamedBufferRange,
+  glFogCoordPointer,
+  glFogCoordd,
+  glFogCoorddv,
+  glFogCoordf,
+  glFogCoordfv,
+  glFogf,
+  glFogfv,
+  glFogi,
+  glFogiv,
+  glFramebufferParameteri,
+  glFramebufferRenderbuffer,
+  glFramebufferTexture,
+  glFramebufferTexture1D,
+  glFramebufferTexture2D,
+  glFramebufferTexture3D,
+  glFramebufferTextureLayer,
+  glFrontFace,
+  glFrustum,
+  glGenBuffers,
+  glGenFramebuffers,
+  glGenLists,
+  glGenProgramPipelines,
+  glGenQueries,
+  glGenRenderbuffers,
+  glGenSamplers,
+  glGenTextures,
+  glGenTransformFeedbacks,
+  glGenVertexArrays,
+  glGenerateMipmap,
+  glGenerateTextureMipmap,
+  glGetActiveAtomicCounterBufferiv,
+  glGetActiveAttrib,
+  glGetActiveSubroutineName,
+  glGetActiveSubroutineUniformName,
+  glGetActiveSubroutineUniformiv,
+  glGetActiveUniform,
+  glGetActiveUniformBlockName,
+  glGetActiveUniformBlockiv,
+  glGetActiveUniformName,
+  glGetActiveUniformsiv,
+  glGetAttachedShaders,
+  glGetAttribLocation,
+  glGetBooleani_v,
+  glGetBooleanv,
+  glGetBufferParameteri64v,
+  glGetBufferParameteriv,
+  glGetBufferPointerv,
+  glGetBufferSubData,
+  glGetClipPlane,
+  glGetCompressedTexImage,
+  glGetCompressedTextureImage,
+  glGetCompressedTextureSubImage,
+  glGetDebugMessageLog,
+  glGetDoublei_v,
+  glGetDoublev,
+  glGetError,
+  glGetFloati_v,
+  glGetFloatv,
+  glGetFragDataIndex,
+  glGetFragDataLocation,
+  glGetFramebufferAttachmentParameteriv,
+  glGetFramebufferParameteriv,
+  glGetGraphicsResetStatus,
+  glGetInteger64i_v,
+  glGetInteger64v,
+  glGetIntegeri_v,
+  glGetIntegerv,
+  glGetInternalformati64v,
+  glGetInternalformativ,
+  glGetLightfv,
+  glGetLightiv,
+  glGetMapdv,
+  glGetMapfv,
+  glGetMapiv,
+  glGetMaterialfv,
+  glGetMaterialiv,
+  glGetMultisamplefv,
+  glGetNamedBufferParameteri64v,
+  glGetNamedBufferParameteriv,
+  glGetNamedBufferPointerv,
+  glGetNamedBufferSubData,
+  glGetNamedFramebufferAttachmentParameteriv,
+  glGetNamedFramebufferParameteriv,
+  glGetNamedRenderbufferParameteriv,
+  glGetObjectLabel,
+  glGetObjectPtrLabel,
+  glGetPixelMapfv,
+  glGetPixelMapuiv,
+  glGetPixelMapusv,
+  glGetPointerv,
+  glGetPolygonStipple,
+  glGetProgramBinary,
+  glGetProgramInfoLog,
+  glGetProgramInterfaceiv,
+  glGetProgramPipelineInfoLog,
+  glGetProgramPipelineiv,
+  glGetProgramResourceIndex,
+  glGetProgramResourceLocation,
+  glGetProgramResourceLocationIndex,
+  glGetProgramResourceName,
+  glGetProgramResourceiv,
+  glGetProgramStageiv,
+  glGetProgramiv,
+  glGetQueryBufferObjecti64v,
+  glGetQueryBufferObjectiv,
+  glGetQueryBufferObjectui64v,
+  glGetQueryBufferObjectuiv,
+  glGetQueryIndexediv,
+  glGetQueryObjecti64v,
+  glGetQueryObjectiv,
+  glGetQueryObjectui64v,
+  glGetQueryObjectuiv,
+  glGetQueryiv,
+  glGetRenderbufferParameteriv,
+  glGetSamplerParameterIiv,
+  glGetSamplerParameterIuiv,
+  glGetSamplerParameterfv,
+  glGetSamplerParameteriv,
+  glGetShaderInfoLog,
+  glGetShaderPrecisionFormat,
+  glGetShaderSource,
+  glGetShaderiv,
+  glGetString,
+  glGetStringi,
+  glGetSubroutineIndex,
+  glGetSubroutineUniformLocation,
+  glGetSynciv,
+  glGetTexEnvfv,
+  glGetTexEnviv,
+  glGetTexGendv,
+  glGetTexGenfv,
+  glGetTexGeniv,
+  glGetTexImage,
+  glGetTexLevelParameterfv,
+  glGetTexLevelParameteriv,
+  glGetTexParameterIiv,
+  glGetTexParameterIuiv,
+  glGetTexParameterfv,
+  glGetTexParameteriv,
+  glGetTextureImage,
+  glGetTextureLevelParameterfv,
+  glGetTextureLevelParameteriv,
+  glGetTextureParameterIiv,
+  glGetTextureParameterIuiv,
+  glGetTextureParameterfv,
+  glGetTextureParameteriv,
+  glGetTextureSubImage,
+  glGetTransformFeedbackVarying,
+  glGetTransformFeedbacki64_v,
+  glGetTransformFeedbacki_v,
+  glGetTransformFeedbackiv,
+  glGetUniformBlockIndex,
+  glGetUniformIndices,
+  glGetUniformLocation,
+  glGetUniformSubroutineuiv,
+  glGetUniformdv,
+  glGetUniformfv,
+  glGetUniformiv,
+  glGetUniformuiv,
+  glGetVertexArrayIndexed64iv,
+  glGetVertexArrayIndexediv,
+  glGetVertexArrayiv,
+  glGetVertexAttribIiv,
+  glGetVertexAttribIuiv,
+  glGetVertexAttribLdv,
+  glGetVertexAttribPointerv,
+  glGetVertexAttribdv,
+  glGetVertexAttribfv,
+  glGetVertexAttribiv,
+  glGetnColorTable,
+  glGetnCompressedTexImage,
+  glGetnConvolutionFilter,
+  glGetnHistogram,
+  glGetnMapdv,
+  glGetnMapfv,
+  glGetnMapiv,
+  glGetnMinmax,
+  glGetnPixelMapfv,
+  glGetnPixelMapuiv,
+  glGetnPixelMapusv,
+  glGetnPolygonStipple,
+  glGetnSeparableFilter,
+  glGetnTexImage,
+  glGetnUniformdv,
+  glGetnUniformfv,
+  glGetnUniformiv,
+  glGetnUniformuiv,
+  glHint,
+  glIndexMask,
+  glIndexPointer,
+  glIndexd,
+  glIndexdv,
+  glIndexf,
+  glIndexfv,
+  glIndexi,
+  glIndexiv,
+  glIndexs,
+  glIndexsv,
+  glIndexub,
+  glIndexubv,
+  glInitNames,
+  glInterleavedArrays,
+  glInvalidateBufferData,
+  glInvalidateBufferSubData,
+  glInvalidateFramebuffer,
+  glInvalidateNamedFramebufferData,
+  glInvalidateNamedFramebufferSubData,
+  glInvalidateSubFramebuffer,
+  glInvalidateTexImage,
+  glInvalidateTexSubImage,
+  glIsBuffer,
+  glIsEnabled,
+  glIsEnabledi,
+  glIsFramebuffer,
+  glIsList,
+  glIsProgram,
+  glIsProgramPipeline,
+  glIsQuery,
+  glIsRenderbuffer,
+  glIsSampler,
+  glIsShader,
+  glIsSync,
+  glIsTexture,
+  glIsTransformFeedback,
+  glIsVertexArray,
+  glLightModelf,
+  glLightModelfv,
+  glLightModeli,
+  glLightModeliv,
+  glLightf,
+  glLightfv,
+  glLighti,
+  glLightiv,
+  glLineStipple,
+  glLineWidth,
+  glLinkProgram,
+  glListBase,
+  glLoadIdentity,
+  glLoadMatrixd,
+  glLoadMatrixf,
+  glLoadName,
+  glLoadTransposeMatrixd,
+  glLoadTransposeMatrixf,
+  glLogicOp,
+  glMap1d,
+  glMap1f,
+  glMap2d,
+  glMap2f,
+  glMapBuffer,
+  glMapBufferRange,
+  glMapGrid1d,
+  glMapGrid1f,
+  glMapGrid2d,
+  glMapGrid2f,
+  glMapNamedBuffer,
+  glMapNamedBufferRange,
+  glMaterialf,
+  glMaterialfv,
+  glMateriali,
+  glMaterialiv,
+  glMatrixMode,
+  glMemoryBarrier,
+  glMemoryBarrierByRegion,
+  glMinSampleShading,
+  glMultMatrixd,
+  glMultMatrixf,
+  glMultTransposeMatrixd,
+  glMultTransposeMatrixf,
+  glMultiDrawArrays,
+  glMultiDrawArraysIndirect,
+  glMultiDrawElements,
+  glMultiDrawElementsBaseVertex,
+  glMultiDrawElementsIndirect,
+  glMultiTexCoord1d,
+  glMultiTexCoord1dv,
+  glMultiTexCoord1f,
+  glMultiTexCoord1fv,
+  glMultiTexCoord1i,
+  glMultiTexCoord1iv,
+  glMultiTexCoord1s,
+  glMultiTexCoord1sv,
+  glMultiTexCoord2d,
+  glMultiTexCoord2dv,
+  glMultiTexCoord2f,
+  glMultiTexCoord2fv,
+  glMultiTexCoord2i,
+  glMultiTexCoord2iv,
+  glMultiTexCoord2s,
+  glMultiTexCoord2sv,
+  glMultiTexCoord3d,
+  glMultiTexCoord3dv,
+  glMultiTexCoord3f,
+  glMultiTexCoord3fv,
+  glMultiTexCoord3i,
+  glMultiTexCoord3iv,
+  glMultiTexCoord3s,
+  glMultiTexCoord3sv,
+  glMultiTexCoord4d,
+  glMultiTexCoord4dv,
+  glMultiTexCoord4f,
+  glMultiTexCoord4fv,
+  glMultiTexCoord4i,
+  glMultiTexCoord4iv,
+  glMultiTexCoord4s,
+  glMultiTexCoord4sv,
+  glMultiTexCoordP1ui,
+  glMultiTexCoordP1uiv,
+  glMultiTexCoordP2ui,
+  glMultiTexCoordP2uiv,
+  glMultiTexCoordP3ui,
+  glMultiTexCoordP3uiv,
+  glMultiTexCoordP4ui,
+  glMultiTexCoordP4uiv,
+  glNamedBufferData,
+  glNamedBufferStorage,
+  glNamedBufferSubData,
+  glNamedFramebufferDrawBuffer,
+  glNamedFramebufferDrawBuffers,
+  glNamedFramebufferParameteri,
+  glNamedFramebufferReadBuffer,
+  glNamedFramebufferRenderbuffer,
+  glNamedFramebufferTexture,
+  glNamedFramebufferTextureLayer,
+  glNamedRenderbufferStorage,
+  glNamedRenderbufferStorageMultisample,
+  glNewList,
+  glNormal3b,
+  glNormal3bv,
+  glNormal3d,
+  glNormal3dv,
+  glNormal3f,
+  glNormal3fv,
+  glNormal3i,
+  glNormal3iv,
+  glNormal3s,
+  glNormal3sv,
+  glNormalP3ui,
+  glNormalP3uiv,
+  glNormalPointer,
+  glObjectLabel,
+  glObjectPtrLabel,
+  glOrtho,
+  glPassThrough,
+  glPatchParameterfv,
+  glPatchParameteri,
+  glPauseTransformFeedback,
+  glPixelMapfv,
+  glPixelMapuiv,
+  glPixelMapusv,
+  glPixelStoref,
+  glPixelStorei,
+  glPixelTransferf,
+  glPixelTransferi,
+  glPixelZoom,
+  glPointParameterf,
+  glPointParameterfv,
+  glPointParameteri,
+  glPointParameteriv,
+  glPointSize,
+  glPolygonMode,
+  glPolygonOffset,
+  glPolygonStipple,
+  glPopAttrib,
+  glPopClientAttrib,
+  glPopDebugGroup,
+  glPopMatrix,
+  glPopName,
+  glPrimitiveRestartIndex,
+  glPrioritizeTextures,
+  glProgramBinary,
+  glProgramParameteri,
+  glProgramUniform1d,
+  glProgramUniform1dv,
+  glProgramUniform1f,
+  glProgramUniform1fv,
+  glProgramUniform1i,
+  glProgramUniform1iv,
+  glProgramUniform1ui,
+  glProgramUniform1uiv,
+  glProgramUniform2d,
+  glProgramUniform2dv,
+  glProgramUniform2f,
+  glProgramUniform2fv,
+  glProgramUniform2i,
+  glProgramUniform2iv,
+  glProgramUniform2ui,
+  glProgramUniform2uiv,
+  glProgramUniform3d,
+  glProgramUniform3dv,
+  glProgramUniform3f,
+  glProgramUniform3fv,
+  glProgramUniform3i,
+  glProgramUniform3iv,
+  glProgramUniform3ui,
+  glProgramUniform3uiv,
+  glProgramUniform4d,
+  glProgramUniform4dv,
+  glProgramUniform4f,
+  glProgramUniform4fv,
+  glProgramUniform4i,
+  glProgramUniform4iv,
+  glProgramUniform4ui,
+  glProgramUniform4uiv,
+  glProgramUniformMatrix2dv,
+  glProgramUniformMatrix2fv,
+  glProgramUniformMatrix2x3dv,
+  glProgramUniformMatrix2x3fv,
+  glProgramUniformMatrix2x4dv,
+  glProgramUniformMatrix2x4fv,
+  glProgramUniformMatrix3dv,
+  glProgramUniformMatrix3fv,
+  glProgramUniformMatrix3x2dv,
+  glProgramUniformMatrix3x2fv,
+  glProgramUniformMatrix3x4dv,
+  glProgramUniformMatrix3x4fv,
+  glProgramUniformMatrix4dv,
+  glProgramUniformMatrix4fv,
+  glProgramUniformMatrix4x2dv,
+  glProgramUniformMatrix4x2fv,
+  glProgramUniformMatrix4x3dv,
+  glProgramUniformMatrix4x3fv,
+  glProvokingVertex,
+  glPushAttrib,
+  glPushClientAttrib,
+  glPushDebugGroup,
+  glPushMatrix,
+  glPushName,
+  glQueryCounter,
+  glRasterPos2d,
+  glRasterPos2dv,
+  glRasterPos2f,
+  glRasterPos2fv,
+  glRasterPos2i,
+  glRasterPos2iv,
+  glRasterPos2s,
+  glRasterPos2sv,
+  glRasterPos3d,
+  glRasterPos3dv,
+  glRasterPos3f,
+  glRasterPos3fv,
+  glRasterPos3i,
+  glRasterPos3iv,
+  glRasterPos3s,
+  glRasterPos3sv,
+  glRasterPos4d,
+  glRasterPos4dv,
+  glRasterPos4f,
+  glRasterPos4fv,
+  glRasterPos4i,
+  glRasterPos4iv,
+  glRasterPos4s,
+  glRasterPos4sv,
+  glReadBuffer,
+  glReadPixels,
+  glReadnPixels,
+  glRectd,
+  glRectdv,
+  glRectf,
+  glRectfv,
+  glRecti,
+  glRectiv,
+  glRects,
+  glRectsv,
+  glReleaseShaderCompiler,
+  glRenderMode,
+  glRenderbufferStorage,
+  glRenderbufferStorageMultisample,
+  glResumeTransformFeedback,
+  glRotated,
+  glRotatef,
+  glSampleCoverage,
+  glSampleMaski,
+  glSamplerParameterIiv,
+  glSamplerParameterIuiv,
+  glSamplerParameterf,
+  glSamplerParameterfv,
+  glSamplerParameteri,
+  glSamplerParameteriv,
+  glScaled,
+  glScalef,
+  glScissor,
+  glScissorArrayv,
+  glScissorIndexed,
+  glScissorIndexedv,
+  glSecondaryColor3b,
+  glSecondaryColor3bv,
+  glSecondaryColor3d,
+  glSecondaryColor3dv,
+  glSecondaryColor3f,
+  glSecondaryColor3fv,
+  glSecondaryColor3i,
+  glSecondaryColor3iv,
+  glSecondaryColor3s,
+  glSecondaryColor3sv,
+  glSecondaryColor3ub,
+  glSecondaryColor3ubv,
+  glSecondaryColor3ui,
+  glSecondaryColor3uiv,
+  glSecondaryColor3us,
+  glSecondaryColor3usv,
+  glSecondaryColorP3ui,
+  glSecondaryColorP3uiv,
+  glSecondaryColorPointer,
+  glSelectBuffer,
+  glShadeModel,
+  glShaderBinary,
+  glShaderSource,
+  glShaderStorageBlockBinding,
+  glStencilFunc,
+  glStencilFuncSeparate,
+  glStencilMask,
+  glStencilMaskSeparate,
+  glStencilOp,
+  glStencilOpSeparate,
+  glTexBuffer,
+  glTexBufferRange,
+  glTexCoord1d,
+  glTexCoord1dv,
+  glTexCoord1f,
+  glTexCoord1fv,
+  glTexCoord1i,
+  glTexCoord1iv,
+  glTexCoord1s,
+  glTexCoord1sv,
+  glTexCoord2d,
+  glTexCoord2dv,
+  glTexCoord2f,
+  glTexCoord2fv,
+  glTexCoord2i,
+  glTexCoord2iv,
+  glTexCoord2s,
+  glTexCoord2sv,
+  glTexCoord3d,
+  glTexCoord3dv,
+  glTexCoord3f,
+  glTexCoord3fv,
+  glTexCoord3i,
+  glTexCoord3iv,
+  glTexCoord3s,
+  glTexCoord3sv,
+  glTexCoord4d,
+  glTexCoord4dv,
+  glTexCoord4f,
+  glTexCoord4fv,
+  glTexCoord4i,
+  glTexCoord4iv,
+  glTexCoord4s,
+  glTexCoord4sv,
+  glTexCoordP1ui,
+  glTexCoordP1uiv,
+  glTexCoordP2ui,
+  glTexCoordP2uiv,
+  glTexCoordP3ui,
+  glTexCoordP3uiv,
+  glTexCoordP4ui,
+  glTexCoordP4uiv,
+  glTexCoordPointer,
+  glTexEnvf,
+  glTexEnvfv,
+  glTexEnvi,
+  glTexEnviv,
+  glTexGend,
+  glTexGendv,
+  glTexGenf,
+  glTexGenfv,
+  glTexGeni,
+  glTexGeniv,
+  glTexImage1D,
+  glTexImage2D,
+  glTexImage2DMultisample,
+  glTexImage3D,
+  glTexImage3DMultisample,
+  glTexParameterIiv,
+  glTexParameterIuiv,
+  glTexParameterf,
+  glTexParameterfv,
+  glTexParameteri,
+  glTexParameteriv,
+  glTexStorage1D,
+  glTexStorage2D,
+  glTexStorage2DMultisample,
+  glTexStorage3D,
+  glTexStorage3DMultisample,
+  glTexSubImage1D,
+  glTexSubImage2D,
+  glTexSubImage3D,
+  glTextureBarrier,
+  glTextureBuffer,
+  glTextureBufferRange,
+  glTextureParameterIiv,
+  glTextureParameterIuiv,
+  glTextureParameterf,
+  glTextureParameterfv,
+  glTextureParameteri,
+  glTextureParameteriv,
+  glTextureStorage1D,
+  glTextureStorage2D,
+  glTextureStorage2DMultisample,
+  glTextureStorage3D,
+  glTextureStorage3DMultisample,
+  glTextureSubImage1D,
+  glTextureSubImage2D,
+  glTextureSubImage3D,
+  glTextureView,
+  glTransformFeedbackBufferBase,
+  glTransformFeedbackBufferRange,
+  glTransformFeedbackVaryings,
+  glTranslated,
+  glTranslatef,
+  glUniform1d,
+  glUniform1dv,
+  glUniform1f,
+  glUniform1fv,
+  glUniform1i,
+  glUniform1iv,
+  glUniform1ui,
+  glUniform1uiv,
+  glUniform2d,
+  glUniform2dv,
+  glUniform2f,
+  glUniform2fv,
+  glUniform2i,
+  glUniform2iv,
+  glUniform2ui,
+  glUniform2uiv,
+  glUniform3d,
+  glUniform3dv,
+  glUniform3f,
+  glUniform3fv,
+  glUniform3i,
+  glUniform3iv,
+  glUniform3ui,
+  glUniform3uiv,
+  glUniform4d,
+  glUniform4dv,
+  glUniform4f,
+  glUniform4fv,
+  glUniform4i,
+  glUniform4iv,
+  glUniform4ui,
+  glUniform4uiv,
+  glUniformBlockBinding,
+  glUniformMatrix2dv,
+  glUniformMatrix2fv,
+  glUniformMatrix2x3dv,
+  glUniformMatrix2x3fv,
+  glUniformMatrix2x4dv,
+  glUniformMatrix2x4fv,
+  glUniformMatrix3dv,
+  glUniformMatrix3fv,
+  glUniformMatrix3x2dv,
+  glUniformMatrix3x2fv,
+  glUniformMatrix3x4dv,
+  glUniformMatrix3x4fv,
+  glUniformMatrix4dv,
+  glUniformMatrix4fv,
+  glUniformMatrix4x2dv,
+  glUniformMatrix4x2fv,
+  glUniformMatrix4x3dv,
+  glUniformMatrix4x3fv,
+  glUniformSubroutinesuiv,
+  glUnmapBuffer,
+  glUnmapNamedBuffer,
+  glUseProgram,
+  glUseProgramStages,
+  glValidateProgram,
+  glValidateProgramPipeline,
+  glVertex2d,
+  glVertex2dv,
+  glVertex2f,
+  glVertex2fv,
+  glVertex2i,
+  glVertex2iv,
+  glVertex2s,
+  glVertex2sv,
+  glVertex3d,
+  glVertex3dv,
+  glVertex3f,
+  glVertex3fv,
+  glVertex3i,
+  glVertex3iv,
+  glVertex3s,
+  glVertex3sv,
+  glVertex4d,
+  glVertex4dv,
+  glVertex4f,
+  glVertex4fv,
+  glVertex4i,
+  glVertex4iv,
+  glVertex4s,
+  glVertex4sv,
+  glVertexArrayAttribBinding,
+  glVertexArrayAttribFormat,
+  glVertexArrayAttribIFormat,
+  glVertexArrayAttribLFormat,
+  glVertexArrayBindingDivisor,
+  glVertexArrayElementBuffer,
+  glVertexArrayVertexBuffer,
+  glVertexArrayVertexBuffers,
+  glVertexAttrib1d,
+  glVertexAttrib1dv,
+  glVertexAttrib1f,
+  glVertexAttrib1fv,
+  glVertexAttrib1s,
+  glVertexAttrib1sv,
+  glVertexAttrib2d,
+  glVertexAttrib2dv,
+  glVertexAttrib2f,
+  glVertexAttrib2fv,
+  glVertexAttrib2s,
+  glVertexAttrib2sv,
+  glVertexAttrib3d,
+  glVertexAttrib3dv,
+  glVertexAttrib3f,
+  glVertexAttrib3fv,
+  glVertexAttrib3s,
+  glVertexAttrib3sv,
+  glVertexAttrib4Nbv,
+  glVertexAttrib4Niv,
+  glVertexAttrib4Nsv,
+  glVertexAttrib4Nub,
+  glVertexAttrib4Nubv,
+  glVertexAttrib4Nuiv,
+  glVertexAttrib4Nusv,
+  glVertexAttrib4bv,
+  glVertexAttrib4d,
+  glVertexAttrib4dv,
+  glVertexAttrib4f,
+  glVertexAttrib4fv,
+  glVertexAttrib4iv,
+  glVertexAttrib4s,
+  glVertexAttrib4sv,
+  glVertexAttrib4ubv,
+  glVertexAttrib4uiv,
+  glVertexAttrib4usv,
+  glVertexAttribBinding,
+  glVertexAttribDivisor,
+  glVertexAttribFormat,
+  glVertexAttribI1i,
+  glVertexAttribI1iv,
+  glVertexAttribI1ui,
+  glVertexAttribI1uiv,
+  glVertexAttribI2i,
+  glVertexAttribI2iv,
+  glVertexAttribI2ui,
+  glVertexAttribI2uiv,
+  glVertexAttribI3i,
+  glVertexAttribI3iv,
+  glVertexAttribI3ui,
+  glVertexAttribI3uiv,
+  glVertexAttribI4bv,
+  glVertexAttribI4i,
+  glVertexAttribI4iv,
+  glVertexAttribI4sv,
+  glVertexAttribI4ubv,
+  glVertexAttribI4ui,
+  glVertexAttribI4uiv,
+  glVertexAttribI4usv,
+  glVertexAttribIFormat,
+  glVertexAttribIPointer,
+  glVertexAttribL1d,
+  glVertexAttribL1dv,
+  glVertexAttribL2d,
+  glVertexAttribL2dv,
+  glVertexAttribL3d,
+  glVertexAttribL3dv,
+  glVertexAttribL4d,
+  glVertexAttribL4dv,
+  glVertexAttribLFormat,
+  glVertexAttribLPointer,
+  glVertexAttribP1ui,
+  glVertexAttribP1uiv,
+  glVertexAttribP2ui,
+  glVertexAttribP2uiv,
+  glVertexAttribP3ui,
+  glVertexAttribP3uiv,
+  glVertexAttribP4ui,
+  glVertexAttribP4uiv,
+  glVertexAttribPointer,
+  glVertexBindingDivisor,
+  glVertexP2ui,
+  glVertexP2uiv,
+  glVertexP3ui,
+  glVertexP3uiv,
+  glVertexP4ui,
+  glVertexP4uiv,
+  glVertexPointer,
+  glViewport,
+  glViewportArrayv,
+  glViewportIndexedf,
+  glViewportIndexedfv,
+  glWaitSync,
+  glWindowPos2d,
+  glWindowPos2dv,
+  glWindowPos2f,
+  glWindowPos2fv,
+  glWindowPos2i,
+  glWindowPos2iv,
+  glWindowPos2s,
+  glWindowPos2sv,
+  glWindowPos3d,
+  glWindowPos3dv,
+  glWindowPos3f,
+  glWindowPos3fv,
+  glWindowPos3i,
+  glWindowPos3iv,
+  glWindowPos3s,
+  glWindowPos3sv
+) where
+
+import Graphics.GL.Types
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/Compatibility46.hs b/src/Graphics/GL/Compatibility46.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Compatibility46.hs
@@ -0,0 +1,2891 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Compatibility46
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Compatibility46 (
+  -- * Types
+  GLDEBUGPROC,
+  GLDEBUGPROCFunc,
+  GLbitfield,
+  GLboolean,
+  GLbyte,
+  GLchar,
+  GLclampd,
+  GLclampf,
+  GLdouble,
+  GLenum,
+  GLfloat,
+  GLhalf,
+  GLint,
+  GLint64,
+  GLintptr,
+  GLshort,
+  GLsizei,
+  GLsizeiptr,
+  GLsync,
+  GLubyte,
+  GLuint,
+  GLuint64,
+  GLushort,
+  GLvoid,
+  makeGLDEBUGPROC,
+  -- * Enums
+  pattern GL_2D,
+  pattern GL_2_BYTES,
+  pattern GL_3D,
+  pattern GL_3D_COLOR,
+  pattern GL_3D_COLOR_TEXTURE,
+  pattern GL_3_BYTES,
+  pattern GL_4D_COLOR_TEXTURE,
+  pattern GL_4_BYTES,
+  pattern GL_ACCUM,
+  pattern GL_ACCUM_ALPHA_BITS,
+  pattern GL_ACCUM_BLUE_BITS,
+  pattern GL_ACCUM_BUFFER_BIT,
+  pattern GL_ACCUM_CLEAR_VALUE,
+  pattern GL_ACCUM_GREEN_BITS,
+  pattern GL_ACCUM_RED_BITS,
+  pattern GL_ACTIVE_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_ACTIVE_ATTRIBUTES,
+  pattern GL_ACTIVE_ATTRIBUTE_MAX_LENGTH,
+  pattern GL_ACTIVE_PROGRAM,
+  pattern GL_ACTIVE_RESOURCES,
+  pattern GL_ACTIVE_SUBROUTINES,
+  pattern GL_ACTIVE_SUBROUTINE_MAX_LENGTH,
+  pattern GL_ACTIVE_SUBROUTINE_UNIFORMS,
+  pattern GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS,
+  pattern GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH,
+  pattern GL_ACTIVE_TEXTURE,
+  pattern GL_ACTIVE_UNIFORMS,
+  pattern GL_ACTIVE_UNIFORM_BLOCKS,
+  pattern GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH,
+  pattern GL_ACTIVE_UNIFORM_MAX_LENGTH,
+  pattern GL_ACTIVE_VARIABLES,
+  pattern GL_ADD,
+  pattern GL_ADD_SIGNED,
+  pattern GL_ALIASED_LINE_WIDTH_RANGE,
+  pattern GL_ALIASED_POINT_SIZE_RANGE,
+  pattern GL_ALL_ATTRIB_BITS,
+  pattern GL_ALL_BARRIER_BITS,
+  pattern GL_ALL_SHADER_BITS,
+  pattern GL_ALPHA,
+  pattern GL_ALPHA12,
+  pattern GL_ALPHA16,
+  pattern GL_ALPHA4,
+  pattern GL_ALPHA8,
+  pattern GL_ALPHA_BIAS,
+  pattern GL_ALPHA_BITS,
+  pattern GL_ALPHA_INTEGER,
+  pattern GL_ALPHA_SCALE,
+  pattern GL_ALPHA_TEST,
+  pattern GL_ALPHA_TEST_FUNC,
+  pattern GL_ALPHA_TEST_REF,
+  pattern GL_ALREADY_SIGNALED,
+  pattern GL_ALWAYS,
+  pattern GL_AMBIENT,
+  pattern GL_AMBIENT_AND_DIFFUSE,
+  pattern GL_AND,
+  pattern GL_AND_INVERTED,
+  pattern GL_AND_REVERSE,
+  pattern GL_ANY_SAMPLES_PASSED,
+  pattern GL_ANY_SAMPLES_PASSED_CONSERVATIVE,
+  pattern GL_ARRAY_BUFFER,
+  pattern GL_ARRAY_BUFFER_BINDING,
+  pattern GL_ARRAY_SIZE,
+  pattern GL_ARRAY_STRIDE,
+  pattern GL_ATOMIC_COUNTER_BARRIER_BIT,
+  pattern GL_ATOMIC_COUNTER_BUFFER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS,
+  pattern GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES,
+  pattern GL_ATOMIC_COUNTER_BUFFER_BINDING,
+  pattern GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE,
+  pattern GL_ATOMIC_COUNTER_BUFFER_INDEX,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_SIZE,
+  pattern GL_ATOMIC_COUNTER_BUFFER_START,
+  pattern GL_ATTACHED_SHADERS,
+  pattern GL_ATTRIB_STACK_DEPTH,
+  pattern GL_AUTO_GENERATE_MIPMAP,
+  pattern GL_AUTO_NORMAL,
+  pattern GL_AUX0,
+  pattern GL_AUX1,
+  pattern GL_AUX2,
+  pattern GL_AUX3,
+  pattern GL_AUX_BUFFERS,
+  pattern GL_BACK,
+  pattern GL_BACK_LEFT,
+  pattern GL_BACK_RIGHT,
+  pattern GL_BGR,
+  pattern GL_BGRA,
+  pattern GL_BGRA_INTEGER,
+  pattern GL_BGR_INTEGER,
+  pattern GL_BITMAP,
+  pattern GL_BITMAP_TOKEN,
+  pattern GL_BLEND,
+  pattern GL_BLEND_COLOR,
+  pattern GL_BLEND_DST,
+  pattern GL_BLEND_DST_ALPHA,
+  pattern GL_BLEND_DST_RGB,
+  pattern GL_BLEND_EQUATION,
+  pattern GL_BLEND_EQUATION_ALPHA,
+  pattern GL_BLEND_EQUATION_RGB,
+  pattern GL_BLEND_SRC,
+  pattern GL_BLEND_SRC_ALPHA,
+  pattern GL_BLEND_SRC_RGB,
+  pattern GL_BLOCK_INDEX,
+  pattern GL_BLUE,
+  pattern GL_BLUE_BIAS,
+  pattern GL_BLUE_BITS,
+  pattern GL_BLUE_INTEGER,
+  pattern GL_BLUE_SCALE,
+  pattern GL_BOOL,
+  pattern GL_BOOL_VEC2,
+  pattern GL_BOOL_VEC3,
+  pattern GL_BOOL_VEC4,
+  pattern GL_BUFFER,
+  pattern GL_BUFFER_ACCESS,
+  pattern GL_BUFFER_ACCESS_FLAGS,
+  pattern GL_BUFFER_BINDING,
+  pattern GL_BUFFER_DATA_SIZE,
+  pattern GL_BUFFER_IMMUTABLE_STORAGE,
+  pattern GL_BUFFER_MAPPED,
+  pattern GL_BUFFER_MAP_LENGTH,
+  pattern GL_BUFFER_MAP_OFFSET,
+  pattern GL_BUFFER_MAP_POINTER,
+  pattern GL_BUFFER_SIZE,
+  pattern GL_BUFFER_STORAGE_FLAGS,
+  pattern GL_BUFFER_UPDATE_BARRIER_BIT,
+  pattern GL_BUFFER_USAGE,
+  pattern GL_BUFFER_VARIABLE,
+  pattern GL_BYTE,
+  pattern GL_C3F_V3F,
+  pattern GL_C4F_N3F_V3F,
+  pattern GL_C4UB_V2F,
+  pattern GL_C4UB_V3F,
+  pattern GL_CAVEAT_SUPPORT,
+  pattern GL_CCW,
+  pattern GL_CLAMP,
+  pattern GL_CLAMP_FRAGMENT_COLOR,
+  pattern GL_CLAMP_READ_COLOR,
+  pattern GL_CLAMP_TO_BORDER,
+  pattern GL_CLAMP_TO_EDGE,
+  pattern GL_CLAMP_VERTEX_COLOR,
+  pattern GL_CLEAR,
+  pattern GL_CLEAR_BUFFER,
+  pattern GL_CLEAR_TEXTURE,
+  pattern GL_CLIENT_ACTIVE_TEXTURE,
+  pattern GL_CLIENT_ALL_ATTRIB_BITS,
+  pattern GL_CLIENT_ATTRIB_STACK_DEPTH,
+  pattern GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT,
+  pattern GL_CLIENT_PIXEL_STORE_BIT,
+  pattern GL_CLIENT_STORAGE_BIT,
+  pattern GL_CLIENT_VERTEX_ARRAY_BIT,
+  pattern GL_CLIPPING_INPUT_PRIMITIVES,
+  pattern GL_CLIPPING_OUTPUT_PRIMITIVES,
+  pattern GL_CLIP_DEPTH_MODE,
+  pattern GL_CLIP_DISTANCE0,
+  pattern GL_CLIP_DISTANCE1,
+  pattern GL_CLIP_DISTANCE2,
+  pattern GL_CLIP_DISTANCE3,
+  pattern GL_CLIP_DISTANCE4,
+  pattern GL_CLIP_DISTANCE5,
+  pattern GL_CLIP_DISTANCE6,
+  pattern GL_CLIP_DISTANCE7,
+  pattern GL_CLIP_ORIGIN,
+  pattern GL_CLIP_PLANE0,
+  pattern GL_CLIP_PLANE1,
+  pattern GL_CLIP_PLANE2,
+  pattern GL_CLIP_PLANE3,
+  pattern GL_CLIP_PLANE4,
+  pattern GL_CLIP_PLANE5,
+  pattern GL_COEFF,
+  pattern GL_COLOR,
+  pattern GL_COLOR_ARRAY,
+  pattern GL_COLOR_ARRAY_BUFFER_BINDING,
+  pattern GL_COLOR_ARRAY_POINTER,
+  pattern GL_COLOR_ARRAY_SIZE,
+  pattern GL_COLOR_ARRAY_STRIDE,
+  pattern GL_COLOR_ARRAY_TYPE,
+  pattern GL_COLOR_ATTACHMENT0,
+  pattern GL_COLOR_ATTACHMENT1,
+  pattern GL_COLOR_ATTACHMENT10,
+  pattern GL_COLOR_ATTACHMENT11,
+  pattern GL_COLOR_ATTACHMENT12,
+  pattern GL_COLOR_ATTACHMENT13,
+  pattern GL_COLOR_ATTACHMENT14,
+  pattern GL_COLOR_ATTACHMENT15,
+  pattern GL_COLOR_ATTACHMENT16,
+  pattern GL_COLOR_ATTACHMENT17,
+  pattern GL_COLOR_ATTACHMENT18,
+  pattern GL_COLOR_ATTACHMENT19,
+  pattern GL_COLOR_ATTACHMENT2,
+  pattern GL_COLOR_ATTACHMENT20,
+  pattern GL_COLOR_ATTACHMENT21,
+  pattern GL_COLOR_ATTACHMENT22,
+  pattern GL_COLOR_ATTACHMENT23,
+  pattern GL_COLOR_ATTACHMENT24,
+  pattern GL_COLOR_ATTACHMENT25,
+  pattern GL_COLOR_ATTACHMENT26,
+  pattern GL_COLOR_ATTACHMENT27,
+  pattern GL_COLOR_ATTACHMENT28,
+  pattern GL_COLOR_ATTACHMENT29,
+  pattern GL_COLOR_ATTACHMENT3,
+  pattern GL_COLOR_ATTACHMENT30,
+  pattern GL_COLOR_ATTACHMENT31,
+  pattern GL_COLOR_ATTACHMENT4,
+  pattern GL_COLOR_ATTACHMENT5,
+  pattern GL_COLOR_ATTACHMENT6,
+  pattern GL_COLOR_ATTACHMENT7,
+  pattern GL_COLOR_ATTACHMENT8,
+  pattern GL_COLOR_ATTACHMENT9,
+  pattern GL_COLOR_BUFFER_BIT,
+  pattern GL_COLOR_CLEAR_VALUE,
+  pattern GL_COLOR_COMPONENTS,
+  pattern GL_COLOR_ENCODING,
+  pattern GL_COLOR_INDEX,
+  pattern GL_COLOR_INDEXES,
+  pattern GL_COLOR_LOGIC_OP,
+  pattern GL_COLOR_MATERIAL,
+  pattern GL_COLOR_MATERIAL_FACE,
+  pattern GL_COLOR_MATERIAL_PARAMETER,
+  pattern GL_COLOR_RENDERABLE,
+  pattern GL_COLOR_SUM,
+  pattern GL_COLOR_WRITEMASK,
+  pattern GL_COMBINE,
+  pattern GL_COMBINE_ALPHA,
+  pattern GL_COMBINE_RGB,
+  pattern GL_COMMAND_BARRIER_BIT,
+  pattern GL_COMPARE_REF_TO_TEXTURE,
+  pattern GL_COMPARE_R_TO_TEXTURE,
+  pattern GL_COMPATIBLE_SUBROUTINES,
+  pattern GL_COMPILE,
+  pattern GL_COMPILE_AND_EXECUTE,
+  pattern GL_COMPILE_STATUS,
+  pattern GL_COMPRESSED_ALPHA,
+  pattern GL_COMPRESSED_INTENSITY,
+  pattern GL_COMPRESSED_LUMINANCE,
+  pattern GL_COMPRESSED_LUMINANCE_ALPHA,
+  pattern GL_COMPRESSED_R11_EAC,
+  pattern GL_COMPRESSED_RED,
+  pattern GL_COMPRESSED_RED_RGTC1,
+  pattern GL_COMPRESSED_RG,
+  pattern GL_COMPRESSED_RG11_EAC,
+  pattern GL_COMPRESSED_RGB,
+  pattern GL_COMPRESSED_RGB8_ETC2,
+  pattern GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,
+  pattern GL_COMPRESSED_RGBA,
+  pattern GL_COMPRESSED_RGBA8_ETC2_EAC,
+  pattern GL_COMPRESSED_RGBA_BPTC_UNORM,
+  pattern GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT,
+  pattern GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT,
+  pattern GL_COMPRESSED_RG_RGTC2,
+  pattern GL_COMPRESSED_SIGNED_R11_EAC,
+  pattern GL_COMPRESSED_SIGNED_RED_RGTC1,
+  pattern GL_COMPRESSED_SIGNED_RG11_EAC,
+  pattern GL_COMPRESSED_SIGNED_RG_RGTC2,
+  pattern GL_COMPRESSED_SLUMINANCE,
+  pattern GL_COMPRESSED_SLUMINANCE_ALPHA,
+  pattern GL_COMPRESSED_SRGB,
+  pattern GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,
+  pattern GL_COMPRESSED_SRGB8_ETC2,
+  pattern GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,
+  pattern GL_COMPRESSED_SRGB_ALPHA,
+  pattern GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM,
+  pattern GL_COMPRESSED_TEXTURE_FORMATS,
+  pattern GL_COMPUTE_SHADER,
+  pattern GL_COMPUTE_SHADER_BIT,
+  pattern GL_COMPUTE_SHADER_INVOCATIONS,
+  pattern GL_COMPUTE_SUBROUTINE,
+  pattern GL_COMPUTE_SUBROUTINE_UNIFORM,
+  pattern GL_COMPUTE_TEXTURE,
+  pattern GL_COMPUTE_WORK_GROUP_SIZE,
+  pattern GL_CONDITION_SATISFIED,
+  pattern GL_CONSTANT,
+  pattern GL_CONSTANT_ALPHA,
+  pattern GL_CONSTANT_ATTENUATION,
+  pattern GL_CONSTANT_COLOR,
+  pattern GL_CONTEXT_COMPATIBILITY_PROFILE_BIT,
+  pattern GL_CONTEXT_CORE_PROFILE_BIT,
+  pattern GL_CONTEXT_FLAGS,
+  pattern GL_CONTEXT_FLAG_DEBUG_BIT,
+  pattern GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT,
+  pattern GL_CONTEXT_FLAG_NO_ERROR_BIT,
+  pattern GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT,
+  pattern GL_CONTEXT_LOST,
+  pattern GL_CONTEXT_PROFILE_MASK,
+  pattern GL_CONTEXT_RELEASE_BEHAVIOR,
+  pattern GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH,
+  pattern GL_COORD_REPLACE,
+  pattern GL_COPY,
+  pattern GL_COPY_INVERTED,
+  pattern GL_COPY_PIXEL_TOKEN,
+  pattern GL_COPY_READ_BUFFER,
+  pattern GL_COPY_READ_BUFFER_BINDING,
+  pattern GL_COPY_WRITE_BUFFER,
+  pattern GL_COPY_WRITE_BUFFER_BINDING,
+  pattern GL_CULL_FACE,
+  pattern GL_CULL_FACE_MODE,
+  pattern GL_CURRENT_BIT,
+  pattern GL_CURRENT_COLOR,
+  pattern GL_CURRENT_FOG_COORD,
+  pattern GL_CURRENT_FOG_COORDINATE,
+  pattern GL_CURRENT_INDEX,
+  pattern GL_CURRENT_NORMAL,
+  pattern GL_CURRENT_PROGRAM,
+  pattern GL_CURRENT_QUERY,
+  pattern GL_CURRENT_RASTER_COLOR,
+  pattern GL_CURRENT_RASTER_DISTANCE,
+  pattern GL_CURRENT_RASTER_INDEX,
+  pattern GL_CURRENT_RASTER_POSITION,
+  pattern GL_CURRENT_RASTER_POSITION_VALID,
+  pattern GL_CURRENT_RASTER_SECONDARY_COLOR,
+  pattern GL_CURRENT_RASTER_TEXTURE_COORDS,
+  pattern GL_CURRENT_SECONDARY_COLOR,
+  pattern GL_CURRENT_TEXTURE_COORDS,
+  pattern GL_CURRENT_VERTEX_ATTRIB,
+  pattern GL_CW,
+  pattern GL_DEBUG_CALLBACK_FUNCTION,
+  pattern GL_DEBUG_CALLBACK_USER_PARAM,
+  pattern GL_DEBUG_GROUP_STACK_DEPTH,
+  pattern GL_DEBUG_LOGGED_MESSAGES,
+  pattern GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH,
+  pattern GL_DEBUG_OUTPUT,
+  pattern GL_DEBUG_OUTPUT_SYNCHRONOUS,
+  pattern GL_DEBUG_SEVERITY_HIGH,
+  pattern GL_DEBUG_SEVERITY_LOW,
+  pattern GL_DEBUG_SEVERITY_MEDIUM,
+  pattern GL_DEBUG_SEVERITY_NOTIFICATION,
+  pattern GL_DEBUG_SOURCE_API,
+  pattern GL_DEBUG_SOURCE_APPLICATION,
+  pattern GL_DEBUG_SOURCE_OTHER,
+  pattern GL_DEBUG_SOURCE_SHADER_COMPILER,
+  pattern GL_DEBUG_SOURCE_THIRD_PARTY,
+  pattern GL_DEBUG_SOURCE_WINDOW_SYSTEM,
+  pattern GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR,
+  pattern GL_DEBUG_TYPE_ERROR,
+  pattern GL_DEBUG_TYPE_MARKER,
+  pattern GL_DEBUG_TYPE_OTHER,
+  pattern GL_DEBUG_TYPE_PERFORMANCE,
+  pattern GL_DEBUG_TYPE_POP_GROUP,
+  pattern GL_DEBUG_TYPE_PORTABILITY,
+  pattern GL_DEBUG_TYPE_PUSH_GROUP,
+  pattern GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR,
+  pattern GL_DECAL,
+  pattern GL_DECR,
+  pattern GL_DECR_WRAP,
+  pattern GL_DELETE_STATUS,
+  pattern GL_DEPTH,
+  pattern GL_DEPTH24_STENCIL8,
+  pattern GL_DEPTH32F_STENCIL8,
+  pattern GL_DEPTH_ATTACHMENT,
+  pattern GL_DEPTH_BIAS,
+  pattern GL_DEPTH_BITS,
+  pattern GL_DEPTH_BUFFER_BIT,
+  pattern GL_DEPTH_CLAMP,
+  pattern GL_DEPTH_CLEAR_VALUE,
+  pattern GL_DEPTH_COMPONENT,
+  pattern GL_DEPTH_COMPONENT16,
+  pattern GL_DEPTH_COMPONENT24,
+  pattern GL_DEPTH_COMPONENT32,
+  pattern GL_DEPTH_COMPONENT32F,
+  pattern GL_DEPTH_COMPONENTS,
+  pattern GL_DEPTH_FUNC,
+  pattern GL_DEPTH_RANGE,
+  pattern GL_DEPTH_RENDERABLE,
+  pattern GL_DEPTH_SCALE,
+  pattern GL_DEPTH_STENCIL,
+  pattern GL_DEPTH_STENCIL_ATTACHMENT,
+  pattern GL_DEPTH_STENCIL_TEXTURE_MODE,
+  pattern GL_DEPTH_TEST,
+  pattern GL_DEPTH_TEXTURE_MODE,
+  pattern GL_DEPTH_WRITEMASK,
+  pattern GL_DIFFUSE,
+  pattern GL_DISPATCH_INDIRECT_BUFFER,
+  pattern GL_DISPATCH_INDIRECT_BUFFER_BINDING,
+  pattern GL_DISPLAY_LIST,
+  pattern GL_DITHER,
+  pattern GL_DOMAIN,
+  pattern GL_DONT_CARE,
+  pattern GL_DOT3_RGB,
+  pattern GL_DOT3_RGBA,
+  pattern GL_DOUBLE,
+  pattern GL_DOUBLEBUFFER,
+  pattern GL_DOUBLE_MAT2,
+  pattern GL_DOUBLE_MAT2x3,
+  pattern GL_DOUBLE_MAT2x4,
+  pattern GL_DOUBLE_MAT3,
+  pattern GL_DOUBLE_MAT3x2,
+  pattern GL_DOUBLE_MAT3x4,
+  pattern GL_DOUBLE_MAT4,
+  pattern GL_DOUBLE_MAT4x2,
+  pattern GL_DOUBLE_MAT4x3,
+  pattern GL_DOUBLE_VEC2,
+  pattern GL_DOUBLE_VEC3,
+  pattern GL_DOUBLE_VEC4,
+  pattern GL_DRAW_BUFFER,
+  pattern GL_DRAW_BUFFER0,
+  pattern GL_DRAW_BUFFER1,
+  pattern GL_DRAW_BUFFER10,
+  pattern GL_DRAW_BUFFER11,
+  pattern GL_DRAW_BUFFER12,
+  pattern GL_DRAW_BUFFER13,
+  pattern GL_DRAW_BUFFER14,
+  pattern GL_DRAW_BUFFER15,
+  pattern GL_DRAW_BUFFER2,
+  pattern GL_DRAW_BUFFER3,
+  pattern GL_DRAW_BUFFER4,
+  pattern GL_DRAW_BUFFER5,
+  pattern GL_DRAW_BUFFER6,
+  pattern GL_DRAW_BUFFER7,
+  pattern GL_DRAW_BUFFER8,
+  pattern GL_DRAW_BUFFER9,
+  pattern GL_DRAW_FRAMEBUFFER,
+  pattern GL_DRAW_FRAMEBUFFER_BINDING,
+  pattern GL_DRAW_INDIRECT_BUFFER,
+  pattern GL_DRAW_INDIRECT_BUFFER_BINDING,
+  pattern GL_DRAW_PIXEL_TOKEN,
+  pattern GL_DST_ALPHA,
+  pattern GL_DST_COLOR,
+  pattern GL_DYNAMIC_COPY,
+  pattern GL_DYNAMIC_DRAW,
+  pattern GL_DYNAMIC_READ,
+  pattern GL_DYNAMIC_STORAGE_BIT,
+  pattern GL_EDGE_FLAG,
+  pattern GL_EDGE_FLAG_ARRAY,
+  pattern GL_EDGE_FLAG_ARRAY_BUFFER_BINDING,
+  pattern GL_EDGE_FLAG_ARRAY_POINTER,
+  pattern GL_EDGE_FLAG_ARRAY_STRIDE,
+  pattern GL_ELEMENT_ARRAY_BARRIER_BIT,
+  pattern GL_ELEMENT_ARRAY_BUFFER,
+  pattern GL_ELEMENT_ARRAY_BUFFER_BINDING,
+  pattern GL_EMISSION,
+  pattern GL_ENABLE_BIT,
+  pattern GL_EQUAL,
+  pattern GL_EQUIV,
+  pattern GL_EVAL_BIT,
+  pattern GL_EXP,
+  pattern GL_EXP2,
+  pattern GL_EXTENSIONS,
+  pattern GL_EYE_LINEAR,
+  pattern GL_EYE_PLANE,
+  pattern GL_FALSE,
+  pattern GL_FASTEST,
+  pattern GL_FEEDBACK,
+  pattern GL_FEEDBACK_BUFFER_POINTER,
+  pattern GL_FEEDBACK_BUFFER_SIZE,
+  pattern GL_FEEDBACK_BUFFER_TYPE,
+  pattern GL_FILL,
+  pattern GL_FILTER,
+  pattern GL_FIRST_VERTEX_CONVENTION,
+  pattern GL_FIXED,
+  pattern GL_FIXED_ONLY,
+  pattern GL_FLAT,
+  pattern GL_FLOAT,
+  pattern GL_FLOAT_32_UNSIGNED_INT_24_8_REV,
+  pattern GL_FLOAT_MAT2,
+  pattern GL_FLOAT_MAT2x3,
+  pattern GL_FLOAT_MAT2x4,
+  pattern GL_FLOAT_MAT3,
+  pattern GL_FLOAT_MAT3x2,
+  pattern GL_FLOAT_MAT3x4,
+  pattern GL_FLOAT_MAT4,
+  pattern GL_FLOAT_MAT4x2,
+  pattern GL_FLOAT_MAT4x3,
+  pattern GL_FLOAT_VEC2,
+  pattern GL_FLOAT_VEC3,
+  pattern GL_FLOAT_VEC4,
+  pattern GL_FOG,
+  pattern GL_FOG_BIT,
+  pattern GL_FOG_COLOR,
+  pattern GL_FOG_COORD,
+  pattern GL_FOG_COORDINATE,
+  pattern GL_FOG_COORDINATE_ARRAY,
+  pattern GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING,
+  pattern GL_FOG_COORDINATE_ARRAY_POINTER,
+  pattern GL_FOG_COORDINATE_ARRAY_STRIDE,
+  pattern GL_FOG_COORDINATE_ARRAY_TYPE,
+  pattern GL_FOG_COORDINATE_SOURCE,
+  pattern GL_FOG_COORD_ARRAY,
+  pattern GL_FOG_COORD_ARRAY_BUFFER_BINDING,
+  pattern GL_FOG_COORD_ARRAY_POINTER,
+  pattern GL_FOG_COORD_ARRAY_STRIDE,
+  pattern GL_FOG_COORD_ARRAY_TYPE,
+  pattern GL_FOG_COORD_SRC,
+  pattern GL_FOG_DENSITY,
+  pattern GL_FOG_END,
+  pattern GL_FOG_HINT,
+  pattern GL_FOG_INDEX,
+  pattern GL_FOG_MODE,
+  pattern GL_FOG_START,
+  pattern GL_FRACTIONAL_EVEN,
+  pattern GL_FRACTIONAL_ODD,
+  pattern GL_FRAGMENT_DEPTH,
+  pattern GL_FRAGMENT_INTERPOLATION_OFFSET_BITS,
+  pattern GL_FRAGMENT_SHADER,
+  pattern GL_FRAGMENT_SHADER_BIT,
+  pattern GL_FRAGMENT_SHADER_DERIVATIVE_HINT,
+  pattern GL_FRAGMENT_SHADER_INVOCATIONS,
+  pattern GL_FRAGMENT_SUBROUTINE,
+  pattern GL_FRAGMENT_SUBROUTINE_UNIFORM,
+  pattern GL_FRAGMENT_TEXTURE,
+  pattern GL_FRAMEBUFFER,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL,
+  pattern GL_FRAMEBUFFER_BARRIER_BIT,
+  pattern GL_FRAMEBUFFER_BINDING,
+  pattern GL_FRAMEBUFFER_BLEND,
+  pattern GL_FRAMEBUFFER_COMPLETE,
+  pattern GL_FRAMEBUFFER_DEFAULT,
+  pattern GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS,
+  pattern GL_FRAMEBUFFER_DEFAULT_HEIGHT,
+  pattern GL_FRAMEBUFFER_DEFAULT_LAYERS,
+  pattern GL_FRAMEBUFFER_DEFAULT_SAMPLES,
+  pattern GL_FRAMEBUFFER_DEFAULT_WIDTH,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER,
+  pattern GL_FRAMEBUFFER_RENDERABLE,
+  pattern GL_FRAMEBUFFER_RENDERABLE_LAYERED,
+  pattern GL_FRAMEBUFFER_SRGB,
+  pattern GL_FRAMEBUFFER_UNDEFINED,
+  pattern GL_FRAMEBUFFER_UNSUPPORTED,
+  pattern GL_FRONT,
+  pattern GL_FRONT_AND_BACK,
+  pattern GL_FRONT_FACE,
+  pattern GL_FRONT_LEFT,
+  pattern GL_FRONT_RIGHT,
+  pattern GL_FULL_SUPPORT,
+  pattern GL_FUNC_ADD,
+  pattern GL_FUNC_REVERSE_SUBTRACT,
+  pattern GL_FUNC_SUBTRACT,
+  pattern GL_GENERATE_MIPMAP,
+  pattern GL_GENERATE_MIPMAP_HINT,
+  pattern GL_GEOMETRY_INPUT_TYPE,
+  pattern GL_GEOMETRY_OUTPUT_TYPE,
+  pattern GL_GEOMETRY_SHADER,
+  pattern GL_GEOMETRY_SHADER_BIT,
+  pattern GL_GEOMETRY_SHADER_INVOCATIONS,
+  pattern GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED,
+  pattern GL_GEOMETRY_SUBROUTINE,
+  pattern GL_GEOMETRY_SUBROUTINE_UNIFORM,
+  pattern GL_GEOMETRY_TEXTURE,
+  pattern GL_GEOMETRY_VERTICES_OUT,
+  pattern GL_GEQUAL,
+  pattern GL_GET_TEXTURE_IMAGE_FORMAT,
+  pattern GL_GET_TEXTURE_IMAGE_TYPE,
+  pattern GL_GREATER,
+  pattern GL_GREEN,
+  pattern GL_GREEN_BIAS,
+  pattern GL_GREEN_BITS,
+  pattern GL_GREEN_INTEGER,
+  pattern GL_GREEN_SCALE,
+  pattern GL_GUILTY_CONTEXT_RESET,
+  pattern GL_HALF_FLOAT,
+  pattern GL_HIGH_FLOAT,
+  pattern GL_HIGH_INT,
+  pattern GL_HINT_BIT,
+  pattern GL_IMAGE_1D,
+  pattern GL_IMAGE_1D_ARRAY,
+  pattern GL_IMAGE_2D,
+  pattern GL_IMAGE_2D_ARRAY,
+  pattern GL_IMAGE_2D_MULTISAMPLE,
+  pattern GL_IMAGE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_IMAGE_2D_RECT,
+  pattern GL_IMAGE_3D,
+  pattern GL_IMAGE_BINDING_ACCESS,
+  pattern GL_IMAGE_BINDING_FORMAT,
+  pattern GL_IMAGE_BINDING_LAYER,
+  pattern GL_IMAGE_BINDING_LAYERED,
+  pattern GL_IMAGE_BINDING_LEVEL,
+  pattern GL_IMAGE_BINDING_NAME,
+  pattern GL_IMAGE_BUFFER,
+  pattern GL_IMAGE_CLASS_10_10_10_2,
+  pattern GL_IMAGE_CLASS_11_11_10,
+  pattern GL_IMAGE_CLASS_1_X_16,
+  pattern GL_IMAGE_CLASS_1_X_32,
+  pattern GL_IMAGE_CLASS_1_X_8,
+  pattern GL_IMAGE_CLASS_2_X_16,
+  pattern GL_IMAGE_CLASS_2_X_32,
+  pattern GL_IMAGE_CLASS_2_X_8,
+  pattern GL_IMAGE_CLASS_4_X_16,
+  pattern GL_IMAGE_CLASS_4_X_32,
+  pattern GL_IMAGE_CLASS_4_X_8,
+  pattern GL_IMAGE_COMPATIBILITY_CLASS,
+  pattern GL_IMAGE_CUBE,
+  pattern GL_IMAGE_CUBE_MAP_ARRAY,
+  pattern GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS,
+  pattern GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE,
+  pattern GL_IMAGE_FORMAT_COMPATIBILITY_TYPE,
+  pattern GL_IMAGE_PIXEL_FORMAT,
+  pattern GL_IMAGE_PIXEL_TYPE,
+  pattern GL_IMAGE_TEXEL_SIZE,
+  pattern GL_IMPLEMENTATION_COLOR_READ_FORMAT,
+  pattern GL_IMPLEMENTATION_COLOR_READ_TYPE,
+  pattern GL_INCR,
+  pattern GL_INCR_WRAP,
+  pattern GL_INDEX,
+  pattern GL_INDEX_ARRAY,
+  pattern GL_INDEX_ARRAY_BUFFER_BINDING,
+  pattern GL_INDEX_ARRAY_POINTER,
+  pattern GL_INDEX_ARRAY_STRIDE,
+  pattern GL_INDEX_ARRAY_TYPE,
+  pattern GL_INDEX_BITS,
+  pattern GL_INDEX_CLEAR_VALUE,
+  pattern GL_INDEX_LOGIC_OP,
+  pattern GL_INDEX_MODE,
+  pattern GL_INDEX_OFFSET,
+  pattern GL_INDEX_SHIFT,
+  pattern GL_INDEX_WRITEMASK,
+  pattern GL_INFO_LOG_LENGTH,
+  pattern GL_INNOCENT_CONTEXT_RESET,
+  pattern GL_INT,
+  pattern GL_INTENSITY,
+  pattern GL_INTENSITY12,
+  pattern GL_INTENSITY16,
+  pattern GL_INTENSITY4,
+  pattern GL_INTENSITY8,
+  pattern GL_INTERLEAVED_ATTRIBS,
+  pattern GL_INTERNALFORMAT_ALPHA_SIZE,
+  pattern GL_INTERNALFORMAT_ALPHA_TYPE,
+  pattern GL_INTERNALFORMAT_BLUE_SIZE,
+  pattern GL_INTERNALFORMAT_BLUE_TYPE,
+  pattern GL_INTERNALFORMAT_DEPTH_SIZE,
+  pattern GL_INTERNALFORMAT_DEPTH_TYPE,
+  pattern GL_INTERNALFORMAT_GREEN_SIZE,
+  pattern GL_INTERNALFORMAT_GREEN_TYPE,
+  pattern GL_INTERNALFORMAT_PREFERRED,
+  pattern GL_INTERNALFORMAT_RED_SIZE,
+  pattern GL_INTERNALFORMAT_RED_TYPE,
+  pattern GL_INTERNALFORMAT_SHARED_SIZE,
+  pattern GL_INTERNALFORMAT_STENCIL_SIZE,
+  pattern GL_INTERNALFORMAT_STENCIL_TYPE,
+  pattern GL_INTERNALFORMAT_SUPPORTED,
+  pattern GL_INTERPOLATE,
+  pattern GL_INT_2_10_10_10_REV,
+  pattern GL_INT_IMAGE_1D,
+  pattern GL_INT_IMAGE_1D_ARRAY,
+  pattern GL_INT_IMAGE_2D,
+  pattern GL_INT_IMAGE_2D_ARRAY,
+  pattern GL_INT_IMAGE_2D_MULTISAMPLE,
+  pattern GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_INT_IMAGE_2D_RECT,
+  pattern GL_INT_IMAGE_3D,
+  pattern GL_INT_IMAGE_BUFFER,
+  pattern GL_INT_IMAGE_CUBE,
+  pattern GL_INT_IMAGE_CUBE_MAP_ARRAY,
+  pattern GL_INT_SAMPLER_1D,
+  pattern GL_INT_SAMPLER_1D_ARRAY,
+  pattern GL_INT_SAMPLER_2D,
+  pattern GL_INT_SAMPLER_2D_ARRAY,
+  pattern GL_INT_SAMPLER_2D_MULTISAMPLE,
+  pattern GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY,
+  pattern GL_INT_SAMPLER_2D_RECT,
+  pattern GL_INT_SAMPLER_3D,
+  pattern GL_INT_SAMPLER_BUFFER,
+  pattern GL_INT_SAMPLER_CUBE,
+  pattern GL_INT_SAMPLER_CUBE_MAP_ARRAY,
+  pattern GL_INT_VEC2,
+  pattern GL_INT_VEC3,
+  pattern GL_INT_VEC4,
+  pattern GL_INVALID_ENUM,
+  pattern GL_INVALID_FRAMEBUFFER_OPERATION,
+  pattern GL_INVALID_INDEX,
+  pattern GL_INVALID_OPERATION,
+  pattern GL_INVALID_VALUE,
+  pattern GL_INVERT,
+  pattern GL_ISOLINES,
+  pattern GL_IS_PER_PATCH,
+  pattern GL_IS_ROW_MAJOR,
+  pattern GL_KEEP,
+  pattern GL_LAST_VERTEX_CONVENTION,
+  pattern GL_LAYER_PROVOKING_VERTEX,
+  pattern GL_LEFT,
+  pattern GL_LEQUAL,
+  pattern GL_LESS,
+  pattern GL_LIGHT0,
+  pattern GL_LIGHT1,
+  pattern GL_LIGHT2,
+  pattern GL_LIGHT3,
+  pattern GL_LIGHT4,
+  pattern GL_LIGHT5,
+  pattern GL_LIGHT6,
+  pattern GL_LIGHT7,
+  pattern GL_LIGHTING,
+  pattern GL_LIGHTING_BIT,
+  pattern GL_LIGHT_MODEL_AMBIENT,
+  pattern GL_LIGHT_MODEL_COLOR_CONTROL,
+  pattern GL_LIGHT_MODEL_LOCAL_VIEWER,
+  pattern GL_LIGHT_MODEL_TWO_SIDE,
+  pattern GL_LINE,
+  pattern GL_LINEAR,
+  pattern GL_LINEAR_ATTENUATION,
+  pattern GL_LINEAR_MIPMAP_LINEAR,
+  pattern GL_LINEAR_MIPMAP_NEAREST,
+  pattern GL_LINES,
+  pattern GL_LINES_ADJACENCY,
+  pattern GL_LINE_BIT,
+  pattern GL_LINE_LOOP,
+  pattern GL_LINE_RESET_TOKEN,
+  pattern GL_LINE_SMOOTH,
+  pattern GL_LINE_SMOOTH_HINT,
+  pattern GL_LINE_STIPPLE,
+  pattern GL_LINE_STIPPLE_PATTERN,
+  pattern GL_LINE_STIPPLE_REPEAT,
+  pattern GL_LINE_STRIP,
+  pattern GL_LINE_STRIP_ADJACENCY,
+  pattern GL_LINE_TOKEN,
+  pattern GL_LINE_WIDTH,
+  pattern GL_LINE_WIDTH_GRANULARITY,
+  pattern GL_LINE_WIDTH_RANGE,
+  pattern GL_LINK_STATUS,
+  pattern GL_LIST_BASE,
+  pattern GL_LIST_BIT,
+  pattern GL_LIST_INDEX,
+  pattern GL_LIST_MODE,
+  pattern GL_LOAD,
+  pattern GL_LOCATION,
+  pattern GL_LOCATION_COMPONENT,
+  pattern GL_LOCATION_INDEX,
+  pattern GL_LOGIC_OP,
+  pattern GL_LOGIC_OP_MODE,
+  pattern GL_LOSE_CONTEXT_ON_RESET,
+  pattern GL_LOWER_LEFT,
+  pattern GL_LOW_FLOAT,
+  pattern GL_LOW_INT,
+  pattern GL_LUMINANCE,
+  pattern GL_LUMINANCE12,
+  pattern GL_LUMINANCE12_ALPHA12,
+  pattern GL_LUMINANCE12_ALPHA4,
+  pattern GL_LUMINANCE16,
+  pattern GL_LUMINANCE16_ALPHA16,
+  pattern GL_LUMINANCE4,
+  pattern GL_LUMINANCE4_ALPHA4,
+  pattern GL_LUMINANCE6_ALPHA2,
+  pattern GL_LUMINANCE8,
+  pattern GL_LUMINANCE8_ALPHA8,
+  pattern GL_LUMINANCE_ALPHA,
+  pattern GL_MAJOR_VERSION,
+  pattern GL_MANUAL_GENERATE_MIPMAP,
+  pattern GL_MAP1_COLOR_4,
+  pattern GL_MAP1_GRID_DOMAIN,
+  pattern GL_MAP1_GRID_SEGMENTS,
+  pattern GL_MAP1_INDEX,
+  pattern GL_MAP1_NORMAL,
+  pattern GL_MAP1_TEXTURE_COORD_1,
+  pattern GL_MAP1_TEXTURE_COORD_2,
+  pattern GL_MAP1_TEXTURE_COORD_3,
+  pattern GL_MAP1_TEXTURE_COORD_4,
+  pattern GL_MAP1_VERTEX_3,
+  pattern GL_MAP1_VERTEX_4,
+  pattern GL_MAP2_COLOR_4,
+  pattern GL_MAP2_GRID_DOMAIN,
+  pattern GL_MAP2_GRID_SEGMENTS,
+  pattern GL_MAP2_INDEX,
+  pattern GL_MAP2_NORMAL,
+  pattern GL_MAP2_TEXTURE_COORD_1,
+  pattern GL_MAP2_TEXTURE_COORD_2,
+  pattern GL_MAP2_TEXTURE_COORD_3,
+  pattern GL_MAP2_TEXTURE_COORD_4,
+  pattern GL_MAP2_VERTEX_3,
+  pattern GL_MAP2_VERTEX_4,
+  pattern GL_MAP_COHERENT_BIT,
+  pattern GL_MAP_COLOR,
+  pattern GL_MAP_FLUSH_EXPLICIT_BIT,
+  pattern GL_MAP_INVALIDATE_BUFFER_BIT,
+  pattern GL_MAP_INVALIDATE_RANGE_BIT,
+  pattern GL_MAP_PERSISTENT_BIT,
+  pattern GL_MAP_READ_BIT,
+  pattern GL_MAP_STENCIL,
+  pattern GL_MAP_UNSYNCHRONIZED_BIT,
+  pattern GL_MAP_WRITE_BIT,
+  pattern GL_MATRIX_MODE,
+  pattern GL_MATRIX_STRIDE,
+  pattern GL_MAX,
+  pattern GL_MAX_3D_TEXTURE_SIZE,
+  pattern GL_MAX_ARRAY_TEXTURE_LAYERS,
+  pattern GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS,
+  pattern GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE,
+  pattern GL_MAX_ATTRIB_STACK_DEPTH,
+  pattern GL_MAX_CLIENT_ATTRIB_STACK_DEPTH,
+  pattern GL_MAX_CLIP_DISTANCES,
+  pattern GL_MAX_CLIP_PLANES,
+  pattern GL_MAX_COLOR_ATTACHMENTS,
+  pattern GL_MAX_COLOR_TEXTURE_SAMPLES,
+  pattern GL_MAX_COMBINED_ATOMIC_COUNTERS,
+  pattern GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES,
+  pattern GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_DIMENSIONS,
+  pattern GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_IMAGE_UNIFORMS,
+  pattern GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS,
+  pattern GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES,
+  pattern GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_COMBINED_UNIFORM_BLOCKS,
+  pattern GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMPUTE_ATOMIC_COUNTERS,
+  pattern GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_COMPUTE_IMAGE_UNIFORMS,
+  pattern GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_COMPUTE_SHARED_MEMORY_SIZE,
+  pattern GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_COMPUTE_UNIFORM_BLOCKS,
+  pattern GL_MAX_COMPUTE_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMPUTE_WORK_GROUP_COUNT,
+  pattern GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS,
+  pattern GL_MAX_COMPUTE_WORK_GROUP_SIZE,
+  pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE,
+  pattern GL_MAX_CULL_DISTANCES,
+  pattern GL_MAX_DEBUG_GROUP_STACK_DEPTH,
+  pattern GL_MAX_DEBUG_LOGGED_MESSAGES,
+  pattern GL_MAX_DEBUG_MESSAGE_LENGTH,
+  pattern GL_MAX_DEPTH,
+  pattern GL_MAX_DEPTH_TEXTURE_SAMPLES,
+  pattern GL_MAX_DRAW_BUFFERS,
+  pattern GL_MAX_DUAL_SOURCE_DRAW_BUFFERS,
+  pattern GL_MAX_ELEMENTS_INDICES,
+  pattern GL_MAX_ELEMENTS_VERTICES,
+  pattern GL_MAX_ELEMENT_INDEX,
+  pattern GL_MAX_EVAL_ORDER,
+  pattern GL_MAX_FRAGMENT_ATOMIC_COUNTERS,
+  pattern GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_FRAGMENT_IMAGE_UNIFORMS,
+  pattern GL_MAX_FRAGMENT_INPUT_COMPONENTS,
+  pattern GL_MAX_FRAGMENT_INTERPOLATION_OFFSET,
+  pattern GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_FRAGMENT_UNIFORM_BLOCKS,
+  pattern GL_MAX_FRAGMENT_UNIFORM_COMPONENTS,
+  pattern GL_MAX_FRAGMENT_UNIFORM_VECTORS,
+  pattern GL_MAX_FRAMEBUFFER_HEIGHT,
+  pattern GL_MAX_FRAMEBUFFER_LAYERS,
+  pattern GL_MAX_FRAMEBUFFER_SAMPLES,
+  pattern GL_MAX_FRAMEBUFFER_WIDTH,
+  pattern GL_MAX_GEOMETRY_ATOMIC_COUNTERS,
+  pattern GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_GEOMETRY_IMAGE_UNIFORMS,
+  pattern GL_MAX_GEOMETRY_INPUT_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_OUTPUT_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_OUTPUT_VERTICES,
+  pattern GL_MAX_GEOMETRY_SHADER_INVOCATIONS,
+  pattern GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_UNIFORM_BLOCKS,
+  pattern GL_MAX_GEOMETRY_UNIFORM_COMPONENTS,
+  pattern GL_MAX_HEIGHT,
+  pattern GL_MAX_IMAGE_SAMPLES,
+  pattern GL_MAX_IMAGE_UNITS,
+  pattern GL_MAX_INTEGER_SAMPLES,
+  pattern GL_MAX_LABEL_LENGTH,
+  pattern GL_MAX_LAYERS,
+  pattern GL_MAX_LIGHTS,
+  pattern GL_MAX_LIST_NESTING,
+  pattern GL_MAX_MODELVIEW_STACK_DEPTH,
+  pattern GL_MAX_NAME_LENGTH,
+  pattern GL_MAX_NAME_STACK_DEPTH,
+  pattern GL_MAX_NUM_ACTIVE_VARIABLES,
+  pattern GL_MAX_NUM_COMPATIBLE_SUBROUTINES,
+  pattern GL_MAX_PATCH_VERTICES,
+  pattern GL_MAX_PIXEL_MAP_TABLE,
+  pattern GL_MAX_PROGRAM_TEXEL_OFFSET,
+  pattern GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET,
+  pattern GL_MAX_PROJECTION_STACK_DEPTH,
+  pattern GL_MAX_RECTANGLE_TEXTURE_SIZE,
+  pattern GL_MAX_RENDERBUFFER_SIZE,
+  pattern GL_MAX_SAMPLES,
+  pattern GL_MAX_SAMPLE_MASK_WORDS,
+  pattern GL_MAX_SERVER_WAIT_TIMEOUT,
+  pattern GL_MAX_SHADER_STORAGE_BLOCK_SIZE,
+  pattern GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS,
+  pattern GL_MAX_SUBROUTINES,
+  pattern GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS,
+  pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS,
+  pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS,
+  pattern GL_MAX_TESS_CONTROL_INPUT_COMPONENTS,
+  pattern GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS,
+  pattern GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS,
+  pattern GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS,
+  pattern GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS,
+  pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS,
+  pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS,
+  pattern GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS,
+  pattern GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS,
+  pattern GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS,
+  pattern GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS,
+  pattern GL_MAX_TESS_GEN_LEVEL,
+  pattern GL_MAX_TESS_PATCH_COMPONENTS,
+  pattern GL_MAX_TEXTURE_BUFFER_SIZE,
+  pattern GL_MAX_TEXTURE_COORDS,
+  pattern GL_MAX_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_TEXTURE_LOD_BIAS,
+  pattern GL_MAX_TEXTURE_MAX_ANISOTROPY,
+  pattern GL_MAX_TEXTURE_SIZE,
+  pattern GL_MAX_TEXTURE_STACK_DEPTH,
+  pattern GL_MAX_TEXTURE_UNITS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_BUFFERS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS,
+  pattern GL_MAX_UNIFORM_BLOCK_SIZE,
+  pattern GL_MAX_UNIFORM_BUFFER_BINDINGS,
+  pattern GL_MAX_UNIFORM_LOCATIONS,
+  pattern GL_MAX_VARYING_COMPONENTS,
+  pattern GL_MAX_VARYING_FLOATS,
+  pattern GL_MAX_VARYING_VECTORS,
+  pattern GL_MAX_VERTEX_ATOMIC_COUNTERS,
+  pattern GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_VERTEX_ATTRIBS,
+  pattern GL_MAX_VERTEX_ATTRIB_BINDINGS,
+  pattern GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET,
+  pattern GL_MAX_VERTEX_ATTRIB_STRIDE,
+  pattern GL_MAX_VERTEX_IMAGE_UNIFORMS,
+  pattern GL_MAX_VERTEX_OUTPUT_COMPONENTS,
+  pattern GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_VERTEX_STREAMS,
+  pattern GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_VERTEX_UNIFORM_BLOCKS,
+  pattern GL_MAX_VERTEX_UNIFORM_COMPONENTS,
+  pattern GL_MAX_VERTEX_UNIFORM_VECTORS,
+  pattern GL_MAX_VIEWPORTS,
+  pattern GL_MAX_VIEWPORT_DIMS,
+  pattern GL_MAX_WIDTH,
+  pattern GL_MEDIUM_FLOAT,
+  pattern GL_MEDIUM_INT,
+  pattern GL_MIN,
+  pattern GL_MINOR_VERSION,
+  pattern GL_MIN_FRAGMENT_INTERPOLATION_OFFSET,
+  pattern GL_MIN_MAP_BUFFER_ALIGNMENT,
+  pattern GL_MIN_PROGRAM_TEXEL_OFFSET,
+  pattern GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET,
+  pattern GL_MIN_SAMPLE_SHADING_VALUE,
+  pattern GL_MIPMAP,
+  pattern GL_MIRRORED_REPEAT,
+  pattern GL_MIRROR_CLAMP_TO_EDGE,
+  pattern GL_MODELVIEW,
+  pattern GL_MODELVIEW_MATRIX,
+  pattern GL_MODELVIEW_STACK_DEPTH,
+  pattern GL_MODULATE,
+  pattern GL_MULT,
+  pattern GL_MULTISAMPLE,
+  pattern GL_MULTISAMPLE_BIT,
+  pattern GL_N3F_V3F,
+  pattern GL_NAME_LENGTH,
+  pattern GL_NAME_STACK_DEPTH,
+  pattern GL_NAND,
+  pattern GL_NEAREST,
+  pattern GL_NEAREST_MIPMAP_LINEAR,
+  pattern GL_NEAREST_MIPMAP_NEAREST,
+  pattern GL_NEGATIVE_ONE_TO_ONE,
+  pattern GL_NEVER,
+  pattern GL_NICEST,
+  pattern GL_NONE,
+  pattern GL_NOOP,
+  pattern GL_NOR,
+  pattern GL_NORMALIZE,
+  pattern GL_NORMAL_ARRAY,
+  pattern GL_NORMAL_ARRAY_BUFFER_BINDING,
+  pattern GL_NORMAL_ARRAY_POINTER,
+  pattern GL_NORMAL_ARRAY_STRIDE,
+  pattern GL_NORMAL_ARRAY_TYPE,
+  pattern GL_NORMAL_MAP,
+  pattern GL_NOTEQUAL,
+  pattern GL_NO_ERROR,
+  pattern GL_NO_RESET_NOTIFICATION,
+  pattern GL_NUM_ACTIVE_VARIABLES,
+  pattern GL_NUM_COMPATIBLE_SUBROUTINES,
+  pattern GL_NUM_COMPRESSED_TEXTURE_FORMATS,
+  pattern GL_NUM_EXTENSIONS,
+  pattern GL_NUM_PROGRAM_BINARY_FORMATS,
+  pattern GL_NUM_SAMPLE_COUNTS,
+  pattern GL_NUM_SHADER_BINARY_FORMATS,
+  pattern GL_NUM_SHADING_LANGUAGE_VERSIONS,
+  pattern GL_NUM_SPIR_V_EXTENSIONS,
+  pattern GL_OBJECT_LINEAR,
+  pattern GL_OBJECT_PLANE,
+  pattern GL_OBJECT_TYPE,
+  pattern GL_OFFSET,
+  pattern GL_ONE,
+  pattern GL_ONE_MINUS_CONSTANT_ALPHA,
+  pattern GL_ONE_MINUS_CONSTANT_COLOR,
+  pattern GL_ONE_MINUS_DST_ALPHA,
+  pattern GL_ONE_MINUS_DST_COLOR,
+  pattern GL_ONE_MINUS_SRC1_ALPHA,
+  pattern GL_ONE_MINUS_SRC1_COLOR,
+  pattern GL_ONE_MINUS_SRC_ALPHA,
+  pattern GL_ONE_MINUS_SRC_COLOR,
+  pattern GL_OPERAND0_ALPHA,
+  pattern GL_OPERAND0_RGB,
+  pattern GL_OPERAND1_ALPHA,
+  pattern GL_OPERAND1_RGB,
+  pattern GL_OPERAND2_ALPHA,
+  pattern GL_OPERAND2_RGB,
+  pattern GL_OR,
+  pattern GL_ORDER,
+  pattern GL_OR_INVERTED,
+  pattern GL_OR_REVERSE,
+  pattern GL_OUT_OF_MEMORY,
+  pattern GL_PACK_ALIGNMENT,
+  pattern GL_PACK_COMPRESSED_BLOCK_DEPTH,
+  pattern GL_PACK_COMPRESSED_BLOCK_HEIGHT,
+  pattern GL_PACK_COMPRESSED_BLOCK_SIZE,
+  pattern GL_PACK_COMPRESSED_BLOCK_WIDTH,
+  pattern GL_PACK_IMAGE_HEIGHT,
+  pattern GL_PACK_LSB_FIRST,
+  pattern GL_PACK_ROW_LENGTH,
+  pattern GL_PACK_SKIP_IMAGES,
+  pattern GL_PACK_SKIP_PIXELS,
+  pattern GL_PACK_SKIP_ROWS,
+  pattern GL_PACK_SWAP_BYTES,
+  pattern GL_PARAMETER_BUFFER,
+  pattern GL_PARAMETER_BUFFER_BINDING,
+  pattern GL_PASS_THROUGH_TOKEN,
+  pattern GL_PATCHES,
+  pattern GL_PATCH_DEFAULT_INNER_LEVEL,
+  pattern GL_PATCH_DEFAULT_OUTER_LEVEL,
+  pattern GL_PATCH_VERTICES,
+  pattern GL_PERSPECTIVE_CORRECTION_HINT,
+  pattern GL_PIXEL_BUFFER_BARRIER_BIT,
+  pattern GL_PIXEL_MAP_A_TO_A,
+  pattern GL_PIXEL_MAP_A_TO_A_SIZE,
+  pattern GL_PIXEL_MAP_B_TO_B,
+  pattern GL_PIXEL_MAP_B_TO_B_SIZE,
+  pattern GL_PIXEL_MAP_G_TO_G,
+  pattern GL_PIXEL_MAP_G_TO_G_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_A,
+  pattern GL_PIXEL_MAP_I_TO_A_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_B,
+  pattern GL_PIXEL_MAP_I_TO_B_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_G,
+  pattern GL_PIXEL_MAP_I_TO_G_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_I,
+  pattern GL_PIXEL_MAP_I_TO_I_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_R,
+  pattern GL_PIXEL_MAP_I_TO_R_SIZE,
+  pattern GL_PIXEL_MAP_R_TO_R,
+  pattern GL_PIXEL_MAP_R_TO_R_SIZE,
+  pattern GL_PIXEL_MAP_S_TO_S,
+  pattern GL_PIXEL_MAP_S_TO_S_SIZE,
+  pattern GL_PIXEL_MODE_BIT,
+  pattern GL_PIXEL_PACK_BUFFER,
+  pattern GL_PIXEL_PACK_BUFFER_BINDING,
+  pattern GL_PIXEL_UNPACK_BUFFER,
+  pattern GL_PIXEL_UNPACK_BUFFER_BINDING,
+  pattern GL_POINT,
+  pattern GL_POINTS,
+  pattern GL_POINT_BIT,
+  pattern GL_POINT_DISTANCE_ATTENUATION,
+  pattern GL_POINT_FADE_THRESHOLD_SIZE,
+  pattern GL_POINT_SIZE,
+  pattern GL_POINT_SIZE_GRANULARITY,
+  pattern GL_POINT_SIZE_MAX,
+  pattern GL_POINT_SIZE_MIN,
+  pattern GL_POINT_SIZE_RANGE,
+  pattern GL_POINT_SMOOTH,
+  pattern GL_POINT_SMOOTH_HINT,
+  pattern GL_POINT_SPRITE,
+  pattern GL_POINT_SPRITE_COORD_ORIGIN,
+  pattern GL_POINT_TOKEN,
+  pattern GL_POLYGON,
+  pattern GL_POLYGON_BIT,
+  pattern GL_POLYGON_MODE,
+  pattern GL_POLYGON_OFFSET_CLAMP,
+  pattern GL_POLYGON_OFFSET_FACTOR,
+  pattern GL_POLYGON_OFFSET_FILL,
+  pattern GL_POLYGON_OFFSET_LINE,
+  pattern GL_POLYGON_OFFSET_POINT,
+  pattern GL_POLYGON_OFFSET_UNITS,
+  pattern GL_POLYGON_SMOOTH,
+  pattern GL_POLYGON_SMOOTH_HINT,
+  pattern GL_POLYGON_STIPPLE,
+  pattern GL_POLYGON_STIPPLE_BIT,
+  pattern GL_POLYGON_TOKEN,
+  pattern GL_POSITION,
+  pattern GL_PREVIOUS,
+  pattern GL_PRIMARY_COLOR,
+  pattern GL_PRIMITIVES_GENERATED,
+  pattern GL_PRIMITIVES_SUBMITTED,
+  pattern GL_PRIMITIVE_RESTART,
+  pattern GL_PRIMITIVE_RESTART_FIXED_INDEX,
+  pattern GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED,
+  pattern GL_PRIMITIVE_RESTART_INDEX,
+  pattern GL_PROGRAM,
+  pattern GL_PROGRAM_BINARY_FORMATS,
+  pattern GL_PROGRAM_BINARY_LENGTH,
+  pattern GL_PROGRAM_BINARY_RETRIEVABLE_HINT,
+  pattern GL_PROGRAM_INPUT,
+  pattern GL_PROGRAM_OUTPUT,
+  pattern GL_PROGRAM_PIPELINE,
+  pattern GL_PROGRAM_PIPELINE_BINDING,
+  pattern GL_PROGRAM_POINT_SIZE,
+  pattern GL_PROGRAM_SEPARABLE,
+  pattern GL_PROJECTION,
+  pattern GL_PROJECTION_MATRIX,
+  pattern GL_PROJECTION_STACK_DEPTH,
+  pattern GL_PROVOKING_VERTEX,
+  pattern GL_PROXY_TEXTURE_1D,
+  pattern GL_PROXY_TEXTURE_1D_ARRAY,
+  pattern GL_PROXY_TEXTURE_2D,
+  pattern GL_PROXY_TEXTURE_2D_ARRAY,
+  pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE,
+  pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_PROXY_TEXTURE_3D,
+  pattern GL_PROXY_TEXTURE_CUBE_MAP,
+  pattern GL_PROXY_TEXTURE_CUBE_MAP_ARRAY,
+  pattern GL_PROXY_TEXTURE_RECTANGLE,
+  pattern GL_Q,
+  pattern GL_QUADRATIC_ATTENUATION,
+  pattern GL_QUADS,
+  pattern GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION,
+  pattern GL_QUAD_STRIP,
+  pattern GL_QUERY,
+  pattern GL_QUERY_BUFFER,
+  pattern GL_QUERY_BUFFER_BARRIER_BIT,
+  pattern GL_QUERY_BUFFER_BINDING,
+  pattern GL_QUERY_BY_REGION_NO_WAIT,
+  pattern GL_QUERY_BY_REGION_NO_WAIT_INVERTED,
+  pattern GL_QUERY_BY_REGION_WAIT,
+  pattern GL_QUERY_BY_REGION_WAIT_INVERTED,
+  pattern GL_QUERY_COUNTER_BITS,
+  pattern GL_QUERY_NO_WAIT,
+  pattern GL_QUERY_NO_WAIT_INVERTED,
+  pattern GL_QUERY_RESULT,
+  pattern GL_QUERY_RESULT_AVAILABLE,
+  pattern GL_QUERY_RESULT_NO_WAIT,
+  pattern GL_QUERY_TARGET,
+  pattern GL_QUERY_WAIT,
+  pattern GL_QUERY_WAIT_INVERTED,
+  pattern GL_R,
+  pattern GL_R11F_G11F_B10F,
+  pattern GL_R16,
+  pattern GL_R16F,
+  pattern GL_R16I,
+  pattern GL_R16UI,
+  pattern GL_R16_SNORM,
+  pattern GL_R32F,
+  pattern GL_R32I,
+  pattern GL_R32UI,
+  pattern GL_R3_G3_B2,
+  pattern GL_R8,
+  pattern GL_R8I,
+  pattern GL_R8UI,
+  pattern GL_R8_SNORM,
+  pattern GL_RASTERIZER_DISCARD,
+  pattern GL_READ_BUFFER,
+  pattern GL_READ_FRAMEBUFFER,
+  pattern GL_READ_FRAMEBUFFER_BINDING,
+  pattern GL_READ_ONLY,
+  pattern GL_READ_PIXELS,
+  pattern GL_READ_PIXELS_FORMAT,
+  pattern GL_READ_PIXELS_TYPE,
+  pattern GL_READ_WRITE,
+  pattern GL_RED,
+  pattern GL_RED_BIAS,
+  pattern GL_RED_BITS,
+  pattern GL_RED_INTEGER,
+  pattern GL_RED_SCALE,
+  pattern GL_REFERENCED_BY_COMPUTE_SHADER,
+  pattern GL_REFERENCED_BY_FRAGMENT_SHADER,
+  pattern GL_REFERENCED_BY_GEOMETRY_SHADER,
+  pattern GL_REFERENCED_BY_TESS_CONTROL_SHADER,
+  pattern GL_REFERENCED_BY_TESS_EVALUATION_SHADER,
+  pattern GL_REFERENCED_BY_VERTEX_SHADER,
+  pattern GL_REFLECTION_MAP,
+  pattern GL_RENDER,
+  pattern GL_RENDERBUFFER,
+  pattern GL_RENDERBUFFER_ALPHA_SIZE,
+  pattern GL_RENDERBUFFER_BINDING,
+  pattern GL_RENDERBUFFER_BLUE_SIZE,
+  pattern GL_RENDERBUFFER_DEPTH_SIZE,
+  pattern GL_RENDERBUFFER_GREEN_SIZE,
+  pattern GL_RENDERBUFFER_HEIGHT,
+  pattern GL_RENDERBUFFER_INTERNAL_FORMAT,
+  pattern GL_RENDERBUFFER_RED_SIZE,
+  pattern GL_RENDERBUFFER_SAMPLES,
+  pattern GL_RENDERBUFFER_STENCIL_SIZE,
+  pattern GL_RENDERBUFFER_WIDTH,
+  pattern GL_RENDERER,
+  pattern GL_RENDER_MODE,
+  pattern GL_REPEAT,
+  pattern GL_REPLACE,
+  pattern GL_RESCALE_NORMAL,
+  pattern GL_RESET_NOTIFICATION_STRATEGY,
+  pattern GL_RETURN,
+  pattern GL_RG,
+  pattern GL_RG16,
+  pattern GL_RG16F,
+  pattern GL_RG16I,
+  pattern GL_RG16UI,
+  pattern GL_RG16_SNORM,
+  pattern GL_RG32F,
+  pattern GL_RG32I,
+  pattern GL_RG32UI,
+  pattern GL_RG8,
+  pattern GL_RG8I,
+  pattern GL_RG8UI,
+  pattern GL_RG8_SNORM,
+  pattern GL_RGB,
+  pattern GL_RGB10,
+  pattern GL_RGB10_A2,
+  pattern GL_RGB10_A2UI,
+  pattern GL_RGB12,
+  pattern GL_RGB16,
+  pattern GL_RGB16F,
+  pattern GL_RGB16I,
+  pattern GL_RGB16UI,
+  pattern GL_RGB16_SNORM,
+  pattern GL_RGB32F,
+  pattern GL_RGB32I,
+  pattern GL_RGB32UI,
+  pattern GL_RGB4,
+  pattern GL_RGB5,
+  pattern GL_RGB565,
+  pattern GL_RGB5_A1,
+  pattern GL_RGB8,
+  pattern GL_RGB8I,
+  pattern GL_RGB8UI,
+  pattern GL_RGB8_SNORM,
+  pattern GL_RGB9_E5,
+  pattern GL_RGBA,
+  pattern GL_RGBA12,
+  pattern GL_RGBA16,
+  pattern GL_RGBA16F,
+  pattern GL_RGBA16I,
+  pattern GL_RGBA16UI,
+  pattern GL_RGBA16_SNORM,
+  pattern GL_RGBA2,
+  pattern GL_RGBA32F,
+  pattern GL_RGBA32I,
+  pattern GL_RGBA32UI,
+  pattern GL_RGBA4,
+  pattern GL_RGBA8,
+  pattern GL_RGBA8I,
+  pattern GL_RGBA8UI,
+  pattern GL_RGBA8_SNORM,
+  pattern GL_RGBA_INTEGER,
+  pattern GL_RGBA_MODE,
+  pattern GL_RGB_INTEGER,
+  pattern GL_RGB_SCALE,
+  pattern GL_RG_INTEGER,
+  pattern GL_RIGHT,
+  pattern GL_S,
+  pattern GL_SAMPLER,
+  pattern GL_SAMPLER_1D,
+  pattern GL_SAMPLER_1D_ARRAY,
+  pattern GL_SAMPLER_1D_ARRAY_SHADOW,
+  pattern GL_SAMPLER_1D_SHADOW,
+  pattern GL_SAMPLER_2D,
+  pattern GL_SAMPLER_2D_ARRAY,
+  pattern GL_SAMPLER_2D_ARRAY_SHADOW,
+  pattern GL_SAMPLER_2D_MULTISAMPLE,
+  pattern GL_SAMPLER_2D_MULTISAMPLE_ARRAY,
+  pattern GL_SAMPLER_2D_RECT,
+  pattern GL_SAMPLER_2D_RECT_SHADOW,
+  pattern GL_SAMPLER_2D_SHADOW,
+  pattern GL_SAMPLER_3D,
+  pattern GL_SAMPLER_BINDING,
+  pattern GL_SAMPLER_BUFFER,
+  pattern GL_SAMPLER_CUBE,
+  pattern GL_SAMPLER_CUBE_MAP_ARRAY,
+  pattern GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW,
+  pattern GL_SAMPLER_CUBE_SHADOW,
+  pattern GL_SAMPLES,
+  pattern GL_SAMPLES_PASSED,
+  pattern GL_SAMPLE_ALPHA_TO_COVERAGE,
+  pattern GL_SAMPLE_ALPHA_TO_ONE,
+  pattern GL_SAMPLE_BUFFERS,
+  pattern GL_SAMPLE_COVERAGE,
+  pattern GL_SAMPLE_COVERAGE_INVERT,
+  pattern GL_SAMPLE_COVERAGE_VALUE,
+  pattern GL_SAMPLE_MASK,
+  pattern GL_SAMPLE_MASK_VALUE,
+  pattern GL_SAMPLE_POSITION,
+  pattern GL_SAMPLE_SHADING,
+  pattern GL_SCISSOR_BIT,
+  pattern GL_SCISSOR_BOX,
+  pattern GL_SCISSOR_TEST,
+  pattern GL_SECONDARY_COLOR_ARRAY,
+  pattern GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING,
+  pattern GL_SECONDARY_COLOR_ARRAY_POINTER,
+  pattern GL_SECONDARY_COLOR_ARRAY_SIZE,
+  pattern GL_SECONDARY_COLOR_ARRAY_STRIDE,
+  pattern GL_SECONDARY_COLOR_ARRAY_TYPE,
+  pattern GL_SELECT,
+  pattern GL_SELECTION_BUFFER_POINTER,
+  pattern GL_SELECTION_BUFFER_SIZE,
+  pattern GL_SEPARATE_ATTRIBS,
+  pattern GL_SEPARATE_SPECULAR_COLOR,
+  pattern GL_SET,
+  pattern GL_SHADER,
+  pattern GL_SHADER_BINARY_FORMATS,
+  pattern GL_SHADER_BINARY_FORMAT_SPIR_V,
+  pattern GL_SHADER_COMPILER,
+  pattern GL_SHADER_IMAGE_ACCESS_BARRIER_BIT,
+  pattern GL_SHADER_IMAGE_ATOMIC,
+  pattern GL_SHADER_IMAGE_LOAD,
+  pattern GL_SHADER_IMAGE_STORE,
+  pattern GL_SHADER_SOURCE_LENGTH,
+  pattern GL_SHADER_STORAGE_BARRIER_BIT,
+  pattern GL_SHADER_STORAGE_BLOCK,
+  pattern GL_SHADER_STORAGE_BUFFER,
+  pattern GL_SHADER_STORAGE_BUFFER_BINDING,
+  pattern GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT,
+  pattern GL_SHADER_STORAGE_BUFFER_SIZE,
+  pattern GL_SHADER_STORAGE_BUFFER_START,
+  pattern GL_SHADER_TYPE,
+  pattern GL_SHADE_MODEL,
+  pattern GL_SHADING_LANGUAGE_VERSION,
+  pattern GL_SHININESS,
+  pattern GL_SHORT,
+  pattern GL_SIGNALED,
+  pattern GL_SIGNED_NORMALIZED,
+  pattern GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST,
+  pattern GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE,
+  pattern GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST,
+  pattern GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE,
+  pattern GL_SINGLE_COLOR,
+  pattern GL_SLUMINANCE,
+  pattern GL_SLUMINANCE8,
+  pattern GL_SLUMINANCE8_ALPHA8,
+  pattern GL_SLUMINANCE_ALPHA,
+  pattern GL_SMOOTH,
+  pattern GL_SMOOTH_LINE_WIDTH_GRANULARITY,
+  pattern GL_SMOOTH_LINE_WIDTH_RANGE,
+  pattern GL_SMOOTH_POINT_SIZE_GRANULARITY,
+  pattern GL_SMOOTH_POINT_SIZE_RANGE,
+  pattern GL_SOURCE0_ALPHA,
+  pattern GL_SOURCE0_RGB,
+  pattern GL_SOURCE1_ALPHA,
+  pattern GL_SOURCE1_RGB,
+  pattern GL_SOURCE2_ALPHA,
+  pattern GL_SOURCE2_RGB,
+  pattern GL_SPECULAR,
+  pattern GL_SPHERE_MAP,
+  pattern GL_SPIR_V_BINARY,
+  pattern GL_SPIR_V_EXTENSIONS,
+  pattern GL_SPOT_CUTOFF,
+  pattern GL_SPOT_DIRECTION,
+  pattern GL_SPOT_EXPONENT,
+  pattern GL_SRC0_ALPHA,
+  pattern GL_SRC0_RGB,
+  pattern GL_SRC1_ALPHA,
+  pattern GL_SRC1_COLOR,
+  pattern GL_SRC1_RGB,
+  pattern GL_SRC2_ALPHA,
+  pattern GL_SRC2_RGB,
+  pattern GL_SRC_ALPHA,
+  pattern GL_SRC_ALPHA_SATURATE,
+  pattern GL_SRC_COLOR,
+  pattern GL_SRGB,
+  pattern GL_SRGB8,
+  pattern GL_SRGB8_ALPHA8,
+  pattern GL_SRGB_ALPHA,
+  pattern GL_SRGB_READ,
+  pattern GL_SRGB_WRITE,
+  pattern GL_STACK_OVERFLOW,
+  pattern GL_STACK_UNDERFLOW,
+  pattern GL_STATIC_COPY,
+  pattern GL_STATIC_DRAW,
+  pattern GL_STATIC_READ,
+  pattern GL_STENCIL,
+  pattern GL_STENCIL_ATTACHMENT,
+  pattern GL_STENCIL_BACK_FAIL,
+  pattern GL_STENCIL_BACK_FUNC,
+  pattern GL_STENCIL_BACK_PASS_DEPTH_FAIL,
+  pattern GL_STENCIL_BACK_PASS_DEPTH_PASS,
+  pattern GL_STENCIL_BACK_REF,
+  pattern GL_STENCIL_BACK_VALUE_MASK,
+  pattern GL_STENCIL_BACK_WRITEMASK,
+  pattern GL_STENCIL_BITS,
+  pattern GL_STENCIL_BUFFER_BIT,
+  pattern GL_STENCIL_CLEAR_VALUE,
+  pattern GL_STENCIL_COMPONENTS,
+  pattern GL_STENCIL_FAIL,
+  pattern GL_STENCIL_FUNC,
+  pattern GL_STENCIL_INDEX,
+  pattern GL_STENCIL_INDEX1,
+  pattern GL_STENCIL_INDEX16,
+  pattern GL_STENCIL_INDEX4,
+  pattern GL_STENCIL_INDEX8,
+  pattern GL_STENCIL_PASS_DEPTH_FAIL,
+  pattern GL_STENCIL_PASS_DEPTH_PASS,
+  pattern GL_STENCIL_REF,
+  pattern GL_STENCIL_RENDERABLE,
+  pattern GL_STENCIL_TEST,
+  pattern GL_STENCIL_VALUE_MASK,
+  pattern GL_STENCIL_WRITEMASK,
+  pattern GL_STEREO,
+  pattern GL_STREAM_COPY,
+  pattern GL_STREAM_DRAW,
+  pattern GL_STREAM_READ,
+  pattern GL_SUBPIXEL_BITS,
+  pattern GL_SUBTRACT,
+  pattern GL_SYNC_CONDITION,
+  pattern GL_SYNC_FENCE,
+  pattern GL_SYNC_FLAGS,
+  pattern GL_SYNC_FLUSH_COMMANDS_BIT,
+  pattern GL_SYNC_GPU_COMMANDS_COMPLETE,
+  pattern GL_SYNC_STATUS,
+  pattern GL_T,
+  pattern GL_T2F_C3F_V3F,
+  pattern GL_T2F_C4F_N3F_V3F,
+  pattern GL_T2F_C4UB_V3F,
+  pattern GL_T2F_N3F_V3F,
+  pattern GL_T2F_V3F,
+  pattern GL_T4F_C4F_N3F_V4F,
+  pattern GL_T4F_V4F,
+  pattern GL_TESS_CONTROL_OUTPUT_VERTICES,
+  pattern GL_TESS_CONTROL_SHADER,
+  pattern GL_TESS_CONTROL_SHADER_BIT,
+  pattern GL_TESS_CONTROL_SHADER_PATCHES,
+  pattern GL_TESS_CONTROL_SUBROUTINE,
+  pattern GL_TESS_CONTROL_SUBROUTINE_UNIFORM,
+  pattern GL_TESS_CONTROL_TEXTURE,
+  pattern GL_TESS_EVALUATION_SHADER,
+  pattern GL_TESS_EVALUATION_SHADER_BIT,
+  pattern GL_TESS_EVALUATION_SHADER_INVOCATIONS,
+  pattern GL_TESS_EVALUATION_SUBROUTINE,
+  pattern GL_TESS_EVALUATION_SUBROUTINE_UNIFORM,
+  pattern GL_TESS_EVALUATION_TEXTURE,
+  pattern GL_TESS_GEN_MODE,
+  pattern GL_TESS_GEN_POINT_MODE,
+  pattern GL_TESS_GEN_SPACING,
+  pattern GL_TESS_GEN_VERTEX_ORDER,
+  pattern GL_TEXTURE,
+  pattern GL_TEXTURE0,
+  pattern GL_TEXTURE1,
+  pattern GL_TEXTURE10,
+  pattern GL_TEXTURE11,
+  pattern GL_TEXTURE12,
+  pattern GL_TEXTURE13,
+  pattern GL_TEXTURE14,
+  pattern GL_TEXTURE15,
+  pattern GL_TEXTURE16,
+  pattern GL_TEXTURE17,
+  pattern GL_TEXTURE18,
+  pattern GL_TEXTURE19,
+  pattern GL_TEXTURE2,
+  pattern GL_TEXTURE20,
+  pattern GL_TEXTURE21,
+  pattern GL_TEXTURE22,
+  pattern GL_TEXTURE23,
+  pattern GL_TEXTURE24,
+  pattern GL_TEXTURE25,
+  pattern GL_TEXTURE26,
+  pattern GL_TEXTURE27,
+  pattern GL_TEXTURE28,
+  pattern GL_TEXTURE29,
+  pattern GL_TEXTURE3,
+  pattern GL_TEXTURE30,
+  pattern GL_TEXTURE31,
+  pattern GL_TEXTURE4,
+  pattern GL_TEXTURE5,
+  pattern GL_TEXTURE6,
+  pattern GL_TEXTURE7,
+  pattern GL_TEXTURE8,
+  pattern GL_TEXTURE9,
+  pattern GL_TEXTURE_1D,
+  pattern GL_TEXTURE_1D_ARRAY,
+  pattern GL_TEXTURE_2D,
+  pattern GL_TEXTURE_2D_ARRAY,
+  pattern GL_TEXTURE_2D_MULTISAMPLE,
+  pattern GL_TEXTURE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_TEXTURE_3D,
+  pattern GL_TEXTURE_ALPHA_SIZE,
+  pattern GL_TEXTURE_ALPHA_TYPE,
+  pattern GL_TEXTURE_BASE_LEVEL,
+  pattern GL_TEXTURE_BINDING_1D,
+  pattern GL_TEXTURE_BINDING_1D_ARRAY,
+  pattern GL_TEXTURE_BINDING_2D,
+  pattern GL_TEXTURE_BINDING_2D_ARRAY,
+  pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE,
+  pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY,
+  pattern GL_TEXTURE_BINDING_3D,
+  pattern GL_TEXTURE_BINDING_BUFFER,
+  pattern GL_TEXTURE_BINDING_CUBE_MAP,
+  pattern GL_TEXTURE_BINDING_CUBE_MAP_ARRAY,
+  pattern GL_TEXTURE_BINDING_RECTANGLE,
+  pattern GL_TEXTURE_BIT,
+  pattern GL_TEXTURE_BLUE_SIZE,
+  pattern GL_TEXTURE_BLUE_TYPE,
+  pattern GL_TEXTURE_BORDER,
+  pattern GL_TEXTURE_BORDER_COLOR,
+  pattern GL_TEXTURE_BUFFER,
+  pattern GL_TEXTURE_BUFFER_BINDING,
+  pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING,
+  pattern GL_TEXTURE_BUFFER_OFFSET,
+  pattern GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT,
+  pattern GL_TEXTURE_BUFFER_SIZE,
+  pattern GL_TEXTURE_COMPARE_FUNC,
+  pattern GL_TEXTURE_COMPARE_MODE,
+  pattern GL_TEXTURE_COMPONENTS,
+  pattern GL_TEXTURE_COMPRESSED,
+  pattern GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT,
+  pattern GL_TEXTURE_COMPRESSED_BLOCK_SIZE,
+  pattern GL_TEXTURE_COMPRESSED_BLOCK_WIDTH,
+  pattern GL_TEXTURE_COMPRESSED_IMAGE_SIZE,
+  pattern GL_TEXTURE_COMPRESSION_HINT,
+  pattern GL_TEXTURE_COORD_ARRAY,
+  pattern GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING,
+  pattern GL_TEXTURE_COORD_ARRAY_POINTER,
+  pattern GL_TEXTURE_COORD_ARRAY_SIZE,
+  pattern GL_TEXTURE_COORD_ARRAY_STRIDE,
+  pattern GL_TEXTURE_COORD_ARRAY_TYPE,
+  pattern GL_TEXTURE_CUBE_MAP,
+  pattern GL_TEXTURE_CUBE_MAP_ARRAY,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z,
+  pattern GL_TEXTURE_CUBE_MAP_SEAMLESS,
+  pattern GL_TEXTURE_DEPTH,
+  pattern GL_TEXTURE_DEPTH_SIZE,
+  pattern GL_TEXTURE_DEPTH_TYPE,
+  pattern GL_TEXTURE_ENV,
+  pattern GL_TEXTURE_ENV_COLOR,
+  pattern GL_TEXTURE_ENV_MODE,
+  pattern GL_TEXTURE_FETCH_BARRIER_BIT,
+  pattern GL_TEXTURE_FILTER_CONTROL,
+  pattern GL_TEXTURE_FIXED_SAMPLE_LOCATIONS,
+  pattern GL_TEXTURE_GATHER,
+  pattern GL_TEXTURE_GATHER_SHADOW,
+  pattern GL_TEXTURE_GEN_MODE,
+  pattern GL_TEXTURE_GEN_Q,
+  pattern GL_TEXTURE_GEN_R,
+  pattern GL_TEXTURE_GEN_S,
+  pattern GL_TEXTURE_GEN_T,
+  pattern GL_TEXTURE_GREEN_SIZE,
+  pattern GL_TEXTURE_GREEN_TYPE,
+  pattern GL_TEXTURE_HEIGHT,
+  pattern GL_TEXTURE_IMAGE_FORMAT,
+  pattern GL_TEXTURE_IMAGE_TYPE,
+  pattern GL_TEXTURE_IMMUTABLE_FORMAT,
+  pattern GL_TEXTURE_IMMUTABLE_LEVELS,
+  pattern GL_TEXTURE_INTENSITY_SIZE,
+  pattern GL_TEXTURE_INTENSITY_TYPE,
+  pattern GL_TEXTURE_INTERNAL_FORMAT,
+  pattern GL_TEXTURE_LOD_BIAS,
+  pattern GL_TEXTURE_LUMINANCE_SIZE,
+  pattern GL_TEXTURE_LUMINANCE_TYPE,
+  pattern GL_TEXTURE_MAG_FILTER,
+  pattern GL_TEXTURE_MATRIX,
+  pattern GL_TEXTURE_MAX_ANISOTROPY,
+  pattern GL_TEXTURE_MAX_LEVEL,
+  pattern GL_TEXTURE_MAX_LOD,
+  pattern GL_TEXTURE_MIN_FILTER,
+  pattern GL_TEXTURE_MIN_LOD,
+  pattern GL_TEXTURE_PRIORITY,
+  pattern GL_TEXTURE_RECTANGLE,
+  pattern GL_TEXTURE_RED_SIZE,
+  pattern GL_TEXTURE_RED_TYPE,
+  pattern GL_TEXTURE_RESIDENT,
+  pattern GL_TEXTURE_SAMPLES,
+  pattern GL_TEXTURE_SHADOW,
+  pattern GL_TEXTURE_SHARED_SIZE,
+  pattern GL_TEXTURE_STACK_DEPTH,
+  pattern GL_TEXTURE_STENCIL_SIZE,
+  pattern GL_TEXTURE_SWIZZLE_A,
+  pattern GL_TEXTURE_SWIZZLE_B,
+  pattern GL_TEXTURE_SWIZZLE_G,
+  pattern GL_TEXTURE_SWIZZLE_R,
+  pattern GL_TEXTURE_SWIZZLE_RGBA,
+  pattern GL_TEXTURE_TARGET,
+  pattern GL_TEXTURE_UPDATE_BARRIER_BIT,
+  pattern GL_TEXTURE_VIEW,
+  pattern GL_TEXTURE_VIEW_MIN_LAYER,
+  pattern GL_TEXTURE_VIEW_MIN_LEVEL,
+  pattern GL_TEXTURE_VIEW_NUM_LAYERS,
+  pattern GL_TEXTURE_VIEW_NUM_LEVELS,
+  pattern GL_TEXTURE_WIDTH,
+  pattern GL_TEXTURE_WRAP_R,
+  pattern GL_TEXTURE_WRAP_S,
+  pattern GL_TEXTURE_WRAP_T,
+  pattern GL_TIMEOUT_EXPIRED,
+  pattern GL_TIMEOUT_IGNORED,
+  pattern GL_TIMESTAMP,
+  pattern GL_TIME_ELAPSED,
+  pattern GL_TOP_LEVEL_ARRAY_SIZE,
+  pattern GL_TOP_LEVEL_ARRAY_STRIDE,
+  pattern GL_TRANSFORM_BIT,
+  pattern GL_TRANSFORM_FEEDBACK,
+  pattern GL_TRANSFORM_FEEDBACK_ACTIVE,
+  pattern GL_TRANSFORM_FEEDBACK_BARRIER_BIT,
+  pattern GL_TRANSFORM_FEEDBACK_BINDING,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_BINDING,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_INDEX,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_MODE,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_SIZE,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_START,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE,
+  pattern GL_TRANSFORM_FEEDBACK_OVERFLOW,
+  pattern GL_TRANSFORM_FEEDBACK_PAUSED,
+  pattern GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN,
+  pattern GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW,
+  pattern GL_TRANSFORM_FEEDBACK_VARYING,
+  pattern GL_TRANSFORM_FEEDBACK_VARYINGS,
+  pattern GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH,
+  pattern GL_TRANSPOSE_COLOR_MATRIX,
+  pattern GL_TRANSPOSE_MODELVIEW_MATRIX,
+  pattern GL_TRANSPOSE_PROJECTION_MATRIX,
+  pattern GL_TRANSPOSE_TEXTURE_MATRIX,
+  pattern GL_TRIANGLES,
+  pattern GL_TRIANGLES_ADJACENCY,
+  pattern GL_TRIANGLE_FAN,
+  pattern GL_TRIANGLE_STRIP,
+  pattern GL_TRIANGLE_STRIP_ADJACENCY,
+  pattern GL_TRUE,
+  pattern GL_TYPE,
+  pattern GL_UNDEFINED_VERTEX,
+  pattern GL_UNIFORM,
+  pattern GL_UNIFORM_ARRAY_STRIDE,
+  pattern GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX,
+  pattern GL_UNIFORM_BARRIER_BIT,
+  pattern GL_UNIFORM_BLOCK,
+  pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS,
+  pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES,
+  pattern GL_UNIFORM_BLOCK_BINDING,
+  pattern GL_UNIFORM_BLOCK_DATA_SIZE,
+  pattern GL_UNIFORM_BLOCK_INDEX,
+  pattern GL_UNIFORM_BLOCK_NAME_LENGTH,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER,
+  pattern GL_UNIFORM_BUFFER,
+  pattern GL_UNIFORM_BUFFER_BINDING,
+  pattern GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT,
+  pattern GL_UNIFORM_BUFFER_SIZE,
+  pattern GL_UNIFORM_BUFFER_START,
+  pattern GL_UNIFORM_IS_ROW_MAJOR,
+  pattern GL_UNIFORM_MATRIX_STRIDE,
+  pattern GL_UNIFORM_NAME_LENGTH,
+  pattern GL_UNIFORM_OFFSET,
+  pattern GL_UNIFORM_SIZE,
+  pattern GL_UNIFORM_TYPE,
+  pattern GL_UNKNOWN_CONTEXT_RESET,
+  pattern GL_UNPACK_ALIGNMENT,
+  pattern GL_UNPACK_COMPRESSED_BLOCK_DEPTH,
+  pattern GL_UNPACK_COMPRESSED_BLOCK_HEIGHT,
+  pattern GL_UNPACK_COMPRESSED_BLOCK_SIZE,
+  pattern GL_UNPACK_COMPRESSED_BLOCK_WIDTH,
+  pattern GL_UNPACK_IMAGE_HEIGHT,
+  pattern GL_UNPACK_LSB_FIRST,
+  pattern GL_UNPACK_ROW_LENGTH,
+  pattern GL_UNPACK_SKIP_IMAGES,
+  pattern GL_UNPACK_SKIP_PIXELS,
+  pattern GL_UNPACK_SKIP_ROWS,
+  pattern GL_UNPACK_SWAP_BYTES,
+  pattern GL_UNSIGNALED,
+  pattern GL_UNSIGNED_BYTE,
+  pattern GL_UNSIGNED_BYTE_2_3_3_REV,
+  pattern GL_UNSIGNED_BYTE_3_3_2,
+  pattern GL_UNSIGNED_INT,
+  pattern GL_UNSIGNED_INT_10F_11F_11F_REV,
+  pattern GL_UNSIGNED_INT_10_10_10_2,
+  pattern GL_UNSIGNED_INT_24_8,
+  pattern GL_UNSIGNED_INT_2_10_10_10_REV,
+  pattern GL_UNSIGNED_INT_5_9_9_9_REV,
+  pattern GL_UNSIGNED_INT_8_8_8_8,
+  pattern GL_UNSIGNED_INT_8_8_8_8_REV,
+  pattern GL_UNSIGNED_INT_ATOMIC_COUNTER,
+  pattern GL_UNSIGNED_INT_IMAGE_1D,
+  pattern GL_UNSIGNED_INT_IMAGE_1D_ARRAY,
+  pattern GL_UNSIGNED_INT_IMAGE_2D,
+  pattern GL_UNSIGNED_INT_IMAGE_2D_ARRAY,
+  pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE,
+  pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_UNSIGNED_INT_IMAGE_2D_RECT,
+  pattern GL_UNSIGNED_INT_IMAGE_3D,
+  pattern GL_UNSIGNED_INT_IMAGE_BUFFER,
+  pattern GL_UNSIGNED_INT_IMAGE_CUBE,
+  pattern GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_1D,
+  pattern GL_UNSIGNED_INT_SAMPLER_1D_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_RECT,
+  pattern GL_UNSIGNED_INT_SAMPLER_3D,
+  pattern GL_UNSIGNED_INT_SAMPLER_BUFFER,
+  pattern GL_UNSIGNED_INT_SAMPLER_CUBE,
+  pattern GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY,
+  pattern GL_UNSIGNED_INT_VEC2,
+  pattern GL_UNSIGNED_INT_VEC3,
+  pattern GL_UNSIGNED_INT_VEC4,
+  pattern GL_UNSIGNED_NORMALIZED,
+  pattern GL_UNSIGNED_SHORT,
+  pattern GL_UNSIGNED_SHORT_1_5_5_5_REV,
+  pattern GL_UNSIGNED_SHORT_4_4_4_4,
+  pattern GL_UNSIGNED_SHORT_4_4_4_4_REV,
+  pattern GL_UNSIGNED_SHORT_5_5_5_1,
+  pattern GL_UNSIGNED_SHORT_5_6_5,
+  pattern GL_UNSIGNED_SHORT_5_6_5_REV,
+  pattern GL_UPPER_LEFT,
+  pattern GL_V2F,
+  pattern GL_V3F,
+  pattern GL_VALIDATE_STATUS,
+  pattern GL_VENDOR,
+  pattern GL_VERSION,
+  pattern GL_VERTEX_ARRAY,
+  pattern GL_VERTEX_ARRAY_BINDING,
+  pattern GL_VERTEX_ARRAY_BUFFER_BINDING,
+  pattern GL_VERTEX_ARRAY_POINTER,
+  pattern GL_VERTEX_ARRAY_SIZE,
+  pattern GL_VERTEX_ARRAY_STRIDE,
+  pattern GL_VERTEX_ARRAY_TYPE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT,
+  pattern GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING,
+  pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR,
+  pattern GL_VERTEX_ATTRIB_ARRAY_ENABLED,
+  pattern GL_VERTEX_ATTRIB_ARRAY_INTEGER,
+  pattern GL_VERTEX_ATTRIB_ARRAY_LONG,
+  pattern GL_VERTEX_ATTRIB_ARRAY_NORMALIZED,
+  pattern GL_VERTEX_ATTRIB_ARRAY_POINTER,
+  pattern GL_VERTEX_ATTRIB_ARRAY_SIZE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_STRIDE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_TYPE,
+  pattern GL_VERTEX_ATTRIB_BINDING,
+  pattern GL_VERTEX_ATTRIB_RELATIVE_OFFSET,
+  pattern GL_VERTEX_BINDING_BUFFER,
+  pattern GL_VERTEX_BINDING_DIVISOR,
+  pattern GL_VERTEX_BINDING_OFFSET,
+  pattern GL_VERTEX_BINDING_STRIDE,
+  pattern GL_VERTEX_PROGRAM_POINT_SIZE,
+  pattern GL_VERTEX_PROGRAM_TWO_SIDE,
+  pattern GL_VERTEX_SHADER,
+  pattern GL_VERTEX_SHADER_BIT,
+  pattern GL_VERTEX_SHADER_INVOCATIONS,
+  pattern GL_VERTEX_SUBROUTINE,
+  pattern GL_VERTEX_SUBROUTINE_UNIFORM,
+  pattern GL_VERTEX_TEXTURE,
+  pattern GL_VERTICES_SUBMITTED,
+  pattern GL_VIEWPORT,
+  pattern GL_VIEWPORT_BIT,
+  pattern GL_VIEWPORT_BOUNDS_RANGE,
+  pattern GL_VIEWPORT_INDEX_PROVOKING_VERTEX,
+  pattern GL_VIEWPORT_SUBPIXEL_BITS,
+  pattern GL_VIEW_CLASS_128_BITS,
+  pattern GL_VIEW_CLASS_16_BITS,
+  pattern GL_VIEW_CLASS_24_BITS,
+  pattern GL_VIEW_CLASS_32_BITS,
+  pattern GL_VIEW_CLASS_48_BITS,
+  pattern GL_VIEW_CLASS_64_BITS,
+  pattern GL_VIEW_CLASS_8_BITS,
+  pattern GL_VIEW_CLASS_96_BITS,
+  pattern GL_VIEW_CLASS_BPTC_FLOAT,
+  pattern GL_VIEW_CLASS_BPTC_UNORM,
+  pattern GL_VIEW_CLASS_RGTC1_RED,
+  pattern GL_VIEW_CLASS_RGTC2_RG,
+  pattern GL_VIEW_CLASS_S3TC_DXT1_RGB,
+  pattern GL_VIEW_CLASS_S3TC_DXT1_RGBA,
+  pattern GL_VIEW_CLASS_S3TC_DXT3_RGBA,
+  pattern GL_VIEW_CLASS_S3TC_DXT5_RGBA,
+  pattern GL_VIEW_COMPATIBILITY_CLASS,
+  pattern GL_WAIT_FAILED,
+  pattern GL_WEIGHT_ARRAY_BUFFER_BINDING,
+  pattern GL_WRITE_ONLY,
+  pattern GL_XOR,
+  pattern GL_ZERO,
+  pattern GL_ZERO_TO_ONE,
+  pattern GL_ZOOM_X,
+  pattern GL_ZOOM_Y,
+  -- * Functions
+  glAccum,
+  glActiveShaderProgram,
+  glActiveTexture,
+  glAlphaFunc,
+  glAreTexturesResident,
+  glArrayElement,
+  glAttachShader,
+  glBegin,
+  glBeginConditionalRender,
+  glBeginQuery,
+  glBeginQueryIndexed,
+  glBeginTransformFeedback,
+  glBindAttribLocation,
+  glBindBuffer,
+  glBindBufferBase,
+  glBindBufferRange,
+  glBindBuffersBase,
+  glBindBuffersRange,
+  glBindFragDataLocation,
+  glBindFragDataLocationIndexed,
+  glBindFramebuffer,
+  glBindImageTexture,
+  glBindImageTextures,
+  glBindProgramPipeline,
+  glBindRenderbuffer,
+  glBindSampler,
+  glBindSamplers,
+  glBindTexture,
+  glBindTextureUnit,
+  glBindTextures,
+  glBindTransformFeedback,
+  glBindVertexArray,
+  glBindVertexBuffer,
+  glBindVertexBuffers,
+  glBitmap,
+  glBlendColor,
+  glBlendEquation,
+  glBlendEquationSeparate,
+  glBlendEquationSeparatei,
+  glBlendEquationi,
+  glBlendFunc,
+  glBlendFuncSeparate,
+  glBlendFuncSeparatei,
+  glBlendFunci,
+  glBlitFramebuffer,
+  glBlitNamedFramebuffer,
+  glBufferData,
+  glBufferStorage,
+  glBufferSubData,
+  glCallList,
+  glCallLists,
+  glCheckFramebufferStatus,
+  glCheckNamedFramebufferStatus,
+  glClampColor,
+  glClear,
+  glClearAccum,
+  glClearBufferData,
+  glClearBufferSubData,
+  glClearBufferfi,
+  glClearBufferfv,
+  glClearBufferiv,
+  glClearBufferuiv,
+  glClearColor,
+  glClearDepth,
+  glClearDepthf,
+  glClearIndex,
+  glClearNamedBufferData,
+  glClearNamedBufferSubData,
+  glClearNamedFramebufferfi,
+  glClearNamedFramebufferfv,
+  glClearNamedFramebufferiv,
+  glClearNamedFramebufferuiv,
+  glClearStencil,
+  glClearTexImage,
+  glClearTexSubImage,
+  glClientActiveTexture,
+  glClientWaitSync,
+  glClipControl,
+  glClipPlane,
+  glColor3b,
+  glColor3bv,
+  glColor3d,
+  glColor3dv,
+  glColor3f,
+  glColor3fv,
+  glColor3i,
+  glColor3iv,
+  glColor3s,
+  glColor3sv,
+  glColor3ub,
+  glColor3ubv,
+  glColor3ui,
+  glColor3uiv,
+  glColor3us,
+  glColor3usv,
+  glColor4b,
+  glColor4bv,
+  glColor4d,
+  glColor4dv,
+  glColor4f,
+  glColor4fv,
+  glColor4i,
+  glColor4iv,
+  glColor4s,
+  glColor4sv,
+  glColor4ub,
+  glColor4ubv,
+  glColor4ui,
+  glColor4uiv,
+  glColor4us,
+  glColor4usv,
+  glColorMask,
+  glColorMaski,
+  glColorMaterial,
+  glColorP3ui,
+  glColorP3uiv,
+  glColorP4ui,
+  glColorP4uiv,
+  glColorPointer,
+  glCompileShader,
+  glCompressedTexImage1D,
+  glCompressedTexImage2D,
+  glCompressedTexImage3D,
+  glCompressedTexSubImage1D,
+  glCompressedTexSubImage2D,
+  glCompressedTexSubImage3D,
+  glCompressedTextureSubImage1D,
+  glCompressedTextureSubImage2D,
+  glCompressedTextureSubImage3D,
+  glCopyBufferSubData,
+  glCopyImageSubData,
+  glCopyNamedBufferSubData,
+  glCopyPixels,
+  glCopyTexImage1D,
+  glCopyTexImage2D,
+  glCopyTexSubImage1D,
+  glCopyTexSubImage2D,
+  glCopyTexSubImage3D,
+  glCopyTextureSubImage1D,
+  glCopyTextureSubImage2D,
+  glCopyTextureSubImage3D,
+  glCreateBuffers,
+  glCreateFramebuffers,
+  glCreateProgram,
+  glCreateProgramPipelines,
+  glCreateQueries,
+  glCreateRenderbuffers,
+  glCreateSamplers,
+  glCreateShader,
+  glCreateShaderProgramv,
+  glCreateTextures,
+  glCreateTransformFeedbacks,
+  glCreateVertexArrays,
+  glCullFace,
+  glDebugMessageCallback,
+  glDebugMessageControl,
+  glDebugMessageInsert,
+  glDeleteBuffers,
+  glDeleteFramebuffers,
+  glDeleteLists,
+  glDeleteProgram,
+  glDeleteProgramPipelines,
+  glDeleteQueries,
+  glDeleteRenderbuffers,
+  glDeleteSamplers,
+  glDeleteShader,
+  glDeleteSync,
+  glDeleteTextures,
+  glDeleteTransformFeedbacks,
+  glDeleteVertexArrays,
+  glDepthFunc,
+  glDepthMask,
+  glDepthRange,
+  glDepthRangeArrayv,
+  glDepthRangeIndexed,
+  glDepthRangef,
+  glDetachShader,
+  glDisable,
+  glDisableClientState,
+  glDisableVertexArrayAttrib,
+  glDisableVertexAttribArray,
+  glDisablei,
+  glDispatchCompute,
+  glDispatchComputeIndirect,
+  glDrawArrays,
+  glDrawArraysIndirect,
+  glDrawArraysInstanced,
+  glDrawArraysInstancedBaseInstance,
+  glDrawBuffer,
+  glDrawBuffers,
+  glDrawElements,
+  glDrawElementsBaseVertex,
+  glDrawElementsIndirect,
+  glDrawElementsInstanced,
+  glDrawElementsInstancedBaseInstance,
+  glDrawElementsInstancedBaseVertex,
+  glDrawElementsInstancedBaseVertexBaseInstance,
+  glDrawPixels,
+  glDrawRangeElements,
+  glDrawRangeElementsBaseVertex,
+  glDrawTransformFeedback,
+  glDrawTransformFeedbackInstanced,
+  glDrawTransformFeedbackStream,
+  glDrawTransformFeedbackStreamInstanced,
+  glEdgeFlag,
+  glEdgeFlagPointer,
+  glEdgeFlagv,
+  glEnable,
+  glEnableClientState,
+  glEnableVertexArrayAttrib,
+  glEnableVertexAttribArray,
+  glEnablei,
+  glEnd,
+  glEndConditionalRender,
+  glEndList,
+  glEndQuery,
+  glEndQueryIndexed,
+  glEndTransformFeedback,
+  glEvalCoord1d,
+  glEvalCoord1dv,
+  glEvalCoord1f,
+  glEvalCoord1fv,
+  glEvalCoord2d,
+  glEvalCoord2dv,
+  glEvalCoord2f,
+  glEvalCoord2fv,
+  glEvalMesh1,
+  glEvalMesh2,
+  glEvalPoint1,
+  glEvalPoint2,
+  glFeedbackBuffer,
+  glFenceSync,
+  glFinish,
+  glFlush,
+  glFlushMappedBufferRange,
+  glFlushMappedNamedBufferRange,
+  glFogCoordPointer,
+  glFogCoordd,
+  glFogCoorddv,
+  glFogCoordf,
+  glFogCoordfv,
+  glFogf,
+  glFogfv,
+  glFogi,
+  glFogiv,
+  glFramebufferParameteri,
+  glFramebufferRenderbuffer,
+  glFramebufferTexture,
+  glFramebufferTexture1D,
+  glFramebufferTexture2D,
+  glFramebufferTexture3D,
+  glFramebufferTextureLayer,
+  glFrontFace,
+  glFrustum,
+  glGenBuffers,
+  glGenFramebuffers,
+  glGenLists,
+  glGenProgramPipelines,
+  glGenQueries,
+  glGenRenderbuffers,
+  glGenSamplers,
+  glGenTextures,
+  glGenTransformFeedbacks,
+  glGenVertexArrays,
+  glGenerateMipmap,
+  glGenerateTextureMipmap,
+  glGetActiveAtomicCounterBufferiv,
+  glGetActiveAttrib,
+  glGetActiveSubroutineName,
+  glGetActiveSubroutineUniformName,
+  glGetActiveSubroutineUniformiv,
+  glGetActiveUniform,
+  glGetActiveUniformBlockName,
+  glGetActiveUniformBlockiv,
+  glGetActiveUniformName,
+  glGetActiveUniformsiv,
+  glGetAttachedShaders,
+  glGetAttribLocation,
+  glGetBooleani_v,
+  glGetBooleanv,
+  glGetBufferParameteri64v,
+  glGetBufferParameteriv,
+  glGetBufferPointerv,
+  glGetBufferSubData,
+  glGetClipPlane,
+  glGetCompressedTexImage,
+  glGetCompressedTextureImage,
+  glGetCompressedTextureSubImage,
+  glGetDebugMessageLog,
+  glGetDoublei_v,
+  glGetDoublev,
+  glGetError,
+  glGetFloati_v,
+  glGetFloatv,
+  glGetFragDataIndex,
+  glGetFragDataLocation,
+  glGetFramebufferAttachmentParameteriv,
+  glGetFramebufferParameteriv,
+  glGetGraphicsResetStatus,
+  glGetInteger64i_v,
+  glGetInteger64v,
+  glGetIntegeri_v,
+  glGetIntegerv,
+  glGetInternalformati64v,
+  glGetInternalformativ,
+  glGetLightfv,
+  glGetLightiv,
+  glGetMapdv,
+  glGetMapfv,
+  glGetMapiv,
+  glGetMaterialfv,
+  glGetMaterialiv,
+  glGetMultisamplefv,
+  glGetNamedBufferParameteri64v,
+  glGetNamedBufferParameteriv,
+  glGetNamedBufferPointerv,
+  glGetNamedBufferSubData,
+  glGetNamedFramebufferAttachmentParameteriv,
+  glGetNamedFramebufferParameteriv,
+  glGetNamedRenderbufferParameteriv,
+  glGetObjectLabel,
+  glGetObjectPtrLabel,
+  glGetPixelMapfv,
+  glGetPixelMapuiv,
+  glGetPixelMapusv,
+  glGetPointerv,
+  glGetPolygonStipple,
+  glGetProgramBinary,
+  glGetProgramInfoLog,
+  glGetProgramInterfaceiv,
+  glGetProgramPipelineInfoLog,
+  glGetProgramPipelineiv,
+  glGetProgramResourceIndex,
+  glGetProgramResourceLocation,
+  glGetProgramResourceLocationIndex,
+  glGetProgramResourceName,
+  glGetProgramResourceiv,
+  glGetProgramStageiv,
+  glGetProgramiv,
+  glGetQueryBufferObjecti64v,
+  glGetQueryBufferObjectiv,
+  glGetQueryBufferObjectui64v,
+  glGetQueryBufferObjectuiv,
+  glGetQueryIndexediv,
+  glGetQueryObjecti64v,
+  glGetQueryObjectiv,
+  glGetQueryObjectui64v,
+  glGetQueryObjectuiv,
+  glGetQueryiv,
+  glGetRenderbufferParameteriv,
+  glGetSamplerParameterIiv,
+  glGetSamplerParameterIuiv,
+  glGetSamplerParameterfv,
+  glGetSamplerParameteriv,
+  glGetShaderInfoLog,
+  glGetShaderPrecisionFormat,
+  glGetShaderSource,
+  glGetShaderiv,
+  glGetString,
+  glGetStringi,
+  glGetSubroutineIndex,
+  glGetSubroutineUniformLocation,
+  glGetSynciv,
+  glGetTexEnvfv,
+  glGetTexEnviv,
+  glGetTexGendv,
+  glGetTexGenfv,
+  glGetTexGeniv,
+  glGetTexImage,
+  glGetTexLevelParameterfv,
+  glGetTexLevelParameteriv,
+  glGetTexParameterIiv,
+  glGetTexParameterIuiv,
+  glGetTexParameterfv,
+  glGetTexParameteriv,
+  glGetTextureImage,
+  glGetTextureLevelParameterfv,
+  glGetTextureLevelParameteriv,
+  glGetTextureParameterIiv,
+  glGetTextureParameterIuiv,
+  glGetTextureParameterfv,
+  glGetTextureParameteriv,
+  glGetTextureSubImage,
+  glGetTransformFeedbackVarying,
+  glGetTransformFeedbacki64_v,
+  glGetTransformFeedbacki_v,
+  glGetTransformFeedbackiv,
+  glGetUniformBlockIndex,
+  glGetUniformIndices,
+  glGetUniformLocation,
+  glGetUniformSubroutineuiv,
+  glGetUniformdv,
+  glGetUniformfv,
+  glGetUniformiv,
+  glGetUniformuiv,
+  glGetVertexArrayIndexed64iv,
+  glGetVertexArrayIndexediv,
+  glGetVertexArrayiv,
+  glGetVertexAttribIiv,
+  glGetVertexAttribIuiv,
+  glGetVertexAttribLdv,
+  glGetVertexAttribPointerv,
+  glGetVertexAttribdv,
+  glGetVertexAttribfv,
+  glGetVertexAttribiv,
+  glGetnColorTable,
+  glGetnCompressedTexImage,
+  glGetnConvolutionFilter,
+  glGetnHistogram,
+  glGetnMapdv,
+  glGetnMapfv,
+  glGetnMapiv,
+  glGetnMinmax,
+  glGetnPixelMapfv,
+  glGetnPixelMapuiv,
+  glGetnPixelMapusv,
+  glGetnPolygonStipple,
+  glGetnSeparableFilter,
+  glGetnTexImage,
+  glGetnUniformdv,
+  glGetnUniformfv,
+  glGetnUniformiv,
+  glGetnUniformuiv,
+  glHint,
+  glIndexMask,
+  glIndexPointer,
+  glIndexd,
+  glIndexdv,
+  glIndexf,
+  glIndexfv,
+  glIndexi,
+  glIndexiv,
+  glIndexs,
+  glIndexsv,
+  glIndexub,
+  glIndexubv,
+  glInitNames,
+  glInterleavedArrays,
+  glInvalidateBufferData,
+  glInvalidateBufferSubData,
+  glInvalidateFramebuffer,
+  glInvalidateNamedFramebufferData,
+  glInvalidateNamedFramebufferSubData,
+  glInvalidateSubFramebuffer,
+  glInvalidateTexImage,
+  glInvalidateTexSubImage,
+  glIsBuffer,
+  glIsEnabled,
+  glIsEnabledi,
+  glIsFramebuffer,
+  glIsList,
+  glIsProgram,
+  glIsProgramPipeline,
+  glIsQuery,
+  glIsRenderbuffer,
+  glIsSampler,
+  glIsShader,
+  glIsSync,
+  glIsTexture,
+  glIsTransformFeedback,
+  glIsVertexArray,
+  glLightModelf,
+  glLightModelfv,
+  glLightModeli,
+  glLightModeliv,
+  glLightf,
+  glLightfv,
+  glLighti,
+  glLightiv,
+  glLineStipple,
+  glLineWidth,
+  glLinkProgram,
+  glListBase,
+  glLoadIdentity,
+  glLoadMatrixd,
+  glLoadMatrixf,
+  glLoadName,
+  glLoadTransposeMatrixd,
+  glLoadTransposeMatrixf,
+  glLogicOp,
+  glMap1d,
+  glMap1f,
+  glMap2d,
+  glMap2f,
+  glMapBuffer,
+  glMapBufferRange,
+  glMapGrid1d,
+  glMapGrid1f,
+  glMapGrid2d,
+  glMapGrid2f,
+  glMapNamedBuffer,
+  glMapNamedBufferRange,
+  glMaterialf,
+  glMaterialfv,
+  glMateriali,
+  glMaterialiv,
+  glMatrixMode,
+  glMemoryBarrier,
+  glMemoryBarrierByRegion,
+  glMinSampleShading,
+  glMultMatrixd,
+  glMultMatrixf,
+  glMultTransposeMatrixd,
+  glMultTransposeMatrixf,
+  glMultiDrawArrays,
+  glMultiDrawArraysIndirect,
+  glMultiDrawArraysIndirectCount,
+  glMultiDrawElements,
+  glMultiDrawElementsBaseVertex,
+  glMultiDrawElementsIndirect,
+  glMultiDrawElementsIndirectCount,
+  glMultiTexCoord1d,
+  glMultiTexCoord1dv,
+  glMultiTexCoord1f,
+  glMultiTexCoord1fv,
+  glMultiTexCoord1i,
+  glMultiTexCoord1iv,
+  glMultiTexCoord1s,
+  glMultiTexCoord1sv,
+  glMultiTexCoord2d,
+  glMultiTexCoord2dv,
+  glMultiTexCoord2f,
+  glMultiTexCoord2fv,
+  glMultiTexCoord2i,
+  glMultiTexCoord2iv,
+  glMultiTexCoord2s,
+  glMultiTexCoord2sv,
+  glMultiTexCoord3d,
+  glMultiTexCoord3dv,
+  glMultiTexCoord3f,
+  glMultiTexCoord3fv,
+  glMultiTexCoord3i,
+  glMultiTexCoord3iv,
+  glMultiTexCoord3s,
+  glMultiTexCoord3sv,
+  glMultiTexCoord4d,
+  glMultiTexCoord4dv,
+  glMultiTexCoord4f,
+  glMultiTexCoord4fv,
+  glMultiTexCoord4i,
+  glMultiTexCoord4iv,
+  glMultiTexCoord4s,
+  glMultiTexCoord4sv,
+  glMultiTexCoordP1ui,
+  glMultiTexCoordP1uiv,
+  glMultiTexCoordP2ui,
+  glMultiTexCoordP2uiv,
+  glMultiTexCoordP3ui,
+  glMultiTexCoordP3uiv,
+  glMultiTexCoordP4ui,
+  glMultiTexCoordP4uiv,
+  glNamedBufferData,
+  glNamedBufferStorage,
+  glNamedBufferSubData,
+  glNamedFramebufferDrawBuffer,
+  glNamedFramebufferDrawBuffers,
+  glNamedFramebufferParameteri,
+  glNamedFramebufferReadBuffer,
+  glNamedFramebufferRenderbuffer,
+  glNamedFramebufferTexture,
+  glNamedFramebufferTextureLayer,
+  glNamedRenderbufferStorage,
+  glNamedRenderbufferStorageMultisample,
+  glNewList,
+  glNormal3b,
+  glNormal3bv,
+  glNormal3d,
+  glNormal3dv,
+  glNormal3f,
+  glNormal3fv,
+  glNormal3i,
+  glNormal3iv,
+  glNormal3s,
+  glNormal3sv,
+  glNormalP3ui,
+  glNormalP3uiv,
+  glNormalPointer,
+  glObjectLabel,
+  glObjectPtrLabel,
+  glOrtho,
+  glPassThrough,
+  glPatchParameterfv,
+  glPatchParameteri,
+  glPauseTransformFeedback,
+  glPixelMapfv,
+  glPixelMapuiv,
+  glPixelMapusv,
+  glPixelStoref,
+  glPixelStorei,
+  glPixelTransferf,
+  glPixelTransferi,
+  glPixelZoom,
+  glPointParameterf,
+  glPointParameterfv,
+  glPointParameteri,
+  glPointParameteriv,
+  glPointSize,
+  glPolygonMode,
+  glPolygonOffset,
+  glPolygonOffsetClamp,
+  glPolygonStipple,
+  glPopAttrib,
+  glPopClientAttrib,
+  glPopDebugGroup,
+  glPopMatrix,
+  glPopName,
+  glPrimitiveRestartIndex,
+  glPrioritizeTextures,
+  glProgramBinary,
+  glProgramParameteri,
+  glProgramUniform1d,
+  glProgramUniform1dv,
+  glProgramUniform1f,
+  glProgramUniform1fv,
+  glProgramUniform1i,
+  glProgramUniform1iv,
+  glProgramUniform1ui,
+  glProgramUniform1uiv,
+  glProgramUniform2d,
+  glProgramUniform2dv,
+  glProgramUniform2f,
+  glProgramUniform2fv,
+  glProgramUniform2i,
+  glProgramUniform2iv,
+  glProgramUniform2ui,
+  glProgramUniform2uiv,
+  glProgramUniform3d,
+  glProgramUniform3dv,
+  glProgramUniform3f,
+  glProgramUniform3fv,
+  glProgramUniform3i,
+  glProgramUniform3iv,
+  glProgramUniform3ui,
+  glProgramUniform3uiv,
+  glProgramUniform4d,
+  glProgramUniform4dv,
+  glProgramUniform4f,
+  glProgramUniform4fv,
+  glProgramUniform4i,
+  glProgramUniform4iv,
+  glProgramUniform4ui,
+  glProgramUniform4uiv,
+  glProgramUniformMatrix2dv,
+  glProgramUniformMatrix2fv,
+  glProgramUniformMatrix2x3dv,
+  glProgramUniformMatrix2x3fv,
+  glProgramUniformMatrix2x4dv,
+  glProgramUniformMatrix2x4fv,
+  glProgramUniformMatrix3dv,
+  glProgramUniformMatrix3fv,
+  glProgramUniformMatrix3x2dv,
+  glProgramUniformMatrix3x2fv,
+  glProgramUniformMatrix3x4dv,
+  glProgramUniformMatrix3x4fv,
+  glProgramUniformMatrix4dv,
+  glProgramUniformMatrix4fv,
+  glProgramUniformMatrix4x2dv,
+  glProgramUniformMatrix4x2fv,
+  glProgramUniformMatrix4x3dv,
+  glProgramUniformMatrix4x3fv,
+  glProvokingVertex,
+  glPushAttrib,
+  glPushClientAttrib,
+  glPushDebugGroup,
+  glPushMatrix,
+  glPushName,
+  glQueryCounter,
+  glRasterPos2d,
+  glRasterPos2dv,
+  glRasterPos2f,
+  glRasterPos2fv,
+  glRasterPos2i,
+  glRasterPos2iv,
+  glRasterPos2s,
+  glRasterPos2sv,
+  glRasterPos3d,
+  glRasterPos3dv,
+  glRasterPos3f,
+  glRasterPos3fv,
+  glRasterPos3i,
+  glRasterPos3iv,
+  glRasterPos3s,
+  glRasterPos3sv,
+  glRasterPos4d,
+  glRasterPos4dv,
+  glRasterPos4f,
+  glRasterPos4fv,
+  glRasterPos4i,
+  glRasterPos4iv,
+  glRasterPos4s,
+  glRasterPos4sv,
+  glReadBuffer,
+  glReadPixels,
+  glReadnPixels,
+  glRectd,
+  glRectdv,
+  glRectf,
+  glRectfv,
+  glRecti,
+  glRectiv,
+  glRects,
+  glRectsv,
+  glReleaseShaderCompiler,
+  glRenderMode,
+  glRenderbufferStorage,
+  glRenderbufferStorageMultisample,
+  glResumeTransformFeedback,
+  glRotated,
+  glRotatef,
+  glSampleCoverage,
+  glSampleMaski,
+  glSamplerParameterIiv,
+  glSamplerParameterIuiv,
+  glSamplerParameterf,
+  glSamplerParameterfv,
+  glSamplerParameteri,
+  glSamplerParameteriv,
+  glScaled,
+  glScalef,
+  glScissor,
+  glScissorArrayv,
+  glScissorIndexed,
+  glScissorIndexedv,
+  glSecondaryColor3b,
+  glSecondaryColor3bv,
+  glSecondaryColor3d,
+  glSecondaryColor3dv,
+  glSecondaryColor3f,
+  glSecondaryColor3fv,
+  glSecondaryColor3i,
+  glSecondaryColor3iv,
+  glSecondaryColor3s,
+  glSecondaryColor3sv,
+  glSecondaryColor3ub,
+  glSecondaryColor3ubv,
+  glSecondaryColor3ui,
+  glSecondaryColor3uiv,
+  glSecondaryColor3us,
+  glSecondaryColor3usv,
+  glSecondaryColorP3ui,
+  glSecondaryColorP3uiv,
+  glSecondaryColorPointer,
+  glSelectBuffer,
+  glShadeModel,
+  glShaderBinary,
+  glShaderSource,
+  glShaderStorageBlockBinding,
+  glSpecializeShader,
+  glStencilFunc,
+  glStencilFuncSeparate,
+  glStencilMask,
+  glStencilMaskSeparate,
+  glStencilOp,
+  glStencilOpSeparate,
+  glTexBuffer,
+  glTexBufferRange,
+  glTexCoord1d,
+  glTexCoord1dv,
+  glTexCoord1f,
+  glTexCoord1fv,
+  glTexCoord1i,
+  glTexCoord1iv,
+  glTexCoord1s,
+  glTexCoord1sv,
+  glTexCoord2d,
+  glTexCoord2dv,
+  glTexCoord2f,
+  glTexCoord2fv,
+  glTexCoord2i,
+  glTexCoord2iv,
+  glTexCoord2s,
+  glTexCoord2sv,
+  glTexCoord3d,
+  glTexCoord3dv,
+  glTexCoord3f,
+  glTexCoord3fv,
+  glTexCoord3i,
+  glTexCoord3iv,
+  glTexCoord3s,
+  glTexCoord3sv,
+  glTexCoord4d,
+  glTexCoord4dv,
+  glTexCoord4f,
+  glTexCoord4fv,
+  glTexCoord4i,
+  glTexCoord4iv,
+  glTexCoord4s,
+  glTexCoord4sv,
+  glTexCoordP1ui,
+  glTexCoordP1uiv,
+  glTexCoordP2ui,
+  glTexCoordP2uiv,
+  glTexCoordP3ui,
+  glTexCoordP3uiv,
+  glTexCoordP4ui,
+  glTexCoordP4uiv,
+  glTexCoordPointer,
+  glTexEnvf,
+  glTexEnvfv,
+  glTexEnvi,
+  glTexEnviv,
+  glTexGend,
+  glTexGendv,
+  glTexGenf,
+  glTexGenfv,
+  glTexGeni,
+  glTexGeniv,
+  glTexImage1D,
+  glTexImage2D,
+  glTexImage2DMultisample,
+  glTexImage3D,
+  glTexImage3DMultisample,
+  glTexParameterIiv,
+  glTexParameterIuiv,
+  glTexParameterf,
+  glTexParameterfv,
+  glTexParameteri,
+  glTexParameteriv,
+  glTexStorage1D,
+  glTexStorage2D,
+  glTexStorage2DMultisample,
+  glTexStorage3D,
+  glTexStorage3DMultisample,
+  glTexSubImage1D,
+  glTexSubImage2D,
+  glTexSubImage3D,
+  glTextureBarrier,
+  glTextureBuffer,
+  glTextureBufferRange,
+  glTextureParameterIiv,
+  glTextureParameterIuiv,
+  glTextureParameterf,
+  glTextureParameterfv,
+  glTextureParameteri,
+  glTextureParameteriv,
+  glTextureStorage1D,
+  glTextureStorage2D,
+  glTextureStorage2DMultisample,
+  glTextureStorage3D,
+  glTextureStorage3DMultisample,
+  glTextureSubImage1D,
+  glTextureSubImage2D,
+  glTextureSubImage3D,
+  glTextureView,
+  glTransformFeedbackBufferBase,
+  glTransformFeedbackBufferRange,
+  glTransformFeedbackVaryings,
+  glTranslated,
+  glTranslatef,
+  glUniform1d,
+  glUniform1dv,
+  glUniform1f,
+  glUniform1fv,
+  glUniform1i,
+  glUniform1iv,
+  glUniform1ui,
+  glUniform1uiv,
+  glUniform2d,
+  glUniform2dv,
+  glUniform2f,
+  glUniform2fv,
+  glUniform2i,
+  glUniform2iv,
+  glUniform2ui,
+  glUniform2uiv,
+  glUniform3d,
+  glUniform3dv,
+  glUniform3f,
+  glUniform3fv,
+  glUniform3i,
+  glUniform3iv,
+  glUniform3ui,
+  glUniform3uiv,
+  glUniform4d,
+  glUniform4dv,
+  glUniform4f,
+  glUniform4fv,
+  glUniform4i,
+  glUniform4iv,
+  glUniform4ui,
+  glUniform4uiv,
+  glUniformBlockBinding,
+  glUniformMatrix2dv,
+  glUniformMatrix2fv,
+  glUniformMatrix2x3dv,
+  glUniformMatrix2x3fv,
+  glUniformMatrix2x4dv,
+  glUniformMatrix2x4fv,
+  glUniformMatrix3dv,
+  glUniformMatrix3fv,
+  glUniformMatrix3x2dv,
+  glUniformMatrix3x2fv,
+  glUniformMatrix3x4dv,
+  glUniformMatrix3x4fv,
+  glUniformMatrix4dv,
+  glUniformMatrix4fv,
+  glUniformMatrix4x2dv,
+  glUniformMatrix4x2fv,
+  glUniformMatrix4x3dv,
+  glUniformMatrix4x3fv,
+  glUniformSubroutinesuiv,
+  glUnmapBuffer,
+  glUnmapNamedBuffer,
+  glUseProgram,
+  glUseProgramStages,
+  glValidateProgram,
+  glValidateProgramPipeline,
+  glVertex2d,
+  glVertex2dv,
+  glVertex2f,
+  glVertex2fv,
+  glVertex2i,
+  glVertex2iv,
+  glVertex2s,
+  glVertex2sv,
+  glVertex3d,
+  glVertex3dv,
+  glVertex3f,
+  glVertex3fv,
+  glVertex3i,
+  glVertex3iv,
+  glVertex3s,
+  glVertex3sv,
+  glVertex4d,
+  glVertex4dv,
+  glVertex4f,
+  glVertex4fv,
+  glVertex4i,
+  glVertex4iv,
+  glVertex4s,
+  glVertex4sv,
+  glVertexArrayAttribBinding,
+  glVertexArrayAttribFormat,
+  glVertexArrayAttribIFormat,
+  glVertexArrayAttribLFormat,
+  glVertexArrayBindingDivisor,
+  glVertexArrayElementBuffer,
+  glVertexArrayVertexBuffer,
+  glVertexArrayVertexBuffers,
+  glVertexAttrib1d,
+  glVertexAttrib1dv,
+  glVertexAttrib1f,
+  glVertexAttrib1fv,
+  glVertexAttrib1s,
+  glVertexAttrib1sv,
+  glVertexAttrib2d,
+  glVertexAttrib2dv,
+  glVertexAttrib2f,
+  glVertexAttrib2fv,
+  glVertexAttrib2s,
+  glVertexAttrib2sv,
+  glVertexAttrib3d,
+  glVertexAttrib3dv,
+  glVertexAttrib3f,
+  glVertexAttrib3fv,
+  glVertexAttrib3s,
+  glVertexAttrib3sv,
+  glVertexAttrib4Nbv,
+  glVertexAttrib4Niv,
+  glVertexAttrib4Nsv,
+  glVertexAttrib4Nub,
+  glVertexAttrib4Nubv,
+  glVertexAttrib4Nuiv,
+  glVertexAttrib4Nusv,
+  glVertexAttrib4bv,
+  glVertexAttrib4d,
+  glVertexAttrib4dv,
+  glVertexAttrib4f,
+  glVertexAttrib4fv,
+  glVertexAttrib4iv,
+  glVertexAttrib4s,
+  glVertexAttrib4sv,
+  glVertexAttrib4ubv,
+  glVertexAttrib4uiv,
+  glVertexAttrib4usv,
+  glVertexAttribBinding,
+  glVertexAttribDivisor,
+  glVertexAttribFormat,
+  glVertexAttribI1i,
+  glVertexAttribI1iv,
+  glVertexAttribI1ui,
+  glVertexAttribI1uiv,
+  glVertexAttribI2i,
+  glVertexAttribI2iv,
+  glVertexAttribI2ui,
+  glVertexAttribI2uiv,
+  glVertexAttribI3i,
+  glVertexAttribI3iv,
+  glVertexAttribI3ui,
+  glVertexAttribI3uiv,
+  glVertexAttribI4bv,
+  glVertexAttribI4i,
+  glVertexAttribI4iv,
+  glVertexAttribI4sv,
+  glVertexAttribI4ubv,
+  glVertexAttribI4ui,
+  glVertexAttribI4uiv,
+  glVertexAttribI4usv,
+  glVertexAttribIFormat,
+  glVertexAttribIPointer,
+  glVertexAttribL1d,
+  glVertexAttribL1dv,
+  glVertexAttribL2d,
+  glVertexAttribL2dv,
+  glVertexAttribL3d,
+  glVertexAttribL3dv,
+  glVertexAttribL4d,
+  glVertexAttribL4dv,
+  glVertexAttribLFormat,
+  glVertexAttribLPointer,
+  glVertexAttribP1ui,
+  glVertexAttribP1uiv,
+  glVertexAttribP2ui,
+  glVertexAttribP2uiv,
+  glVertexAttribP3ui,
+  glVertexAttribP3uiv,
+  glVertexAttribP4ui,
+  glVertexAttribP4uiv,
+  glVertexAttribPointer,
+  glVertexBindingDivisor,
+  glVertexP2ui,
+  glVertexP2uiv,
+  glVertexP3ui,
+  glVertexP3uiv,
+  glVertexP4ui,
+  glVertexP4uiv,
+  glVertexPointer,
+  glViewport,
+  glViewportArrayv,
+  glViewportIndexedf,
+  glViewportIndexedfv,
+  glWaitSync,
+  glWindowPos2d,
+  glWindowPos2dv,
+  glWindowPos2f,
+  glWindowPos2fv,
+  glWindowPos2i,
+  glWindowPos2iv,
+  glWindowPos2s,
+  glWindowPos2sv,
+  glWindowPos3d,
+  glWindowPos3dv,
+  glWindowPos3f,
+  glWindowPos3fv,
+  glWindowPos3i,
+  glWindowPos3iv,
+  glWindowPos3s,
+  glWindowPos3sv
+) where
+
+import Graphics.GL.Types
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/Core30.hs b/src/Graphics/GL/Core30.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Core30.hs
@@ -0,0 +1,1785 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Core30
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Core30 (
+  -- * Types
+  GLbitfield,
+  GLboolean,
+  GLbyte,
+  GLchar,
+  GLclampd,
+  GLclampf,
+  GLdouble,
+  GLenum,
+  GLfloat,
+  GLhalf,
+  GLint,
+  GLintptr,
+  GLshort,
+  GLsizei,
+  GLsizeiptr,
+  GLubyte,
+  GLuint,
+  GLushort,
+  GLvoid,
+  -- * Enums
+  pattern GL_2D,
+  pattern GL_2_BYTES,
+  pattern GL_3D,
+  pattern GL_3D_COLOR,
+  pattern GL_3D_COLOR_TEXTURE,
+  pattern GL_3_BYTES,
+  pattern GL_4D_COLOR_TEXTURE,
+  pattern GL_4_BYTES,
+  pattern GL_ACCUM,
+  pattern GL_ACCUM_ALPHA_BITS,
+  pattern GL_ACCUM_BLUE_BITS,
+  pattern GL_ACCUM_BUFFER_BIT,
+  pattern GL_ACCUM_CLEAR_VALUE,
+  pattern GL_ACCUM_GREEN_BITS,
+  pattern GL_ACCUM_RED_BITS,
+  pattern GL_ACTIVE_ATTRIBUTES,
+  pattern GL_ACTIVE_ATTRIBUTE_MAX_LENGTH,
+  pattern GL_ACTIVE_TEXTURE,
+  pattern GL_ACTIVE_UNIFORMS,
+  pattern GL_ACTIVE_UNIFORM_MAX_LENGTH,
+  pattern GL_ADD,
+  pattern GL_ADD_SIGNED,
+  pattern GL_ALIASED_LINE_WIDTH_RANGE,
+  pattern GL_ALIASED_POINT_SIZE_RANGE,
+  pattern GL_ALL_ATTRIB_BITS,
+  pattern GL_ALPHA,
+  pattern GL_ALPHA12,
+  pattern GL_ALPHA16,
+  pattern GL_ALPHA4,
+  pattern GL_ALPHA8,
+  pattern GL_ALPHA_BIAS,
+  pattern GL_ALPHA_BITS,
+  pattern GL_ALPHA_INTEGER,
+  pattern GL_ALPHA_SCALE,
+  pattern GL_ALPHA_TEST,
+  pattern GL_ALPHA_TEST_FUNC,
+  pattern GL_ALPHA_TEST_REF,
+  pattern GL_ALWAYS,
+  pattern GL_AMBIENT,
+  pattern GL_AMBIENT_AND_DIFFUSE,
+  pattern GL_AND,
+  pattern GL_AND_INVERTED,
+  pattern GL_AND_REVERSE,
+  pattern GL_ARRAY_BUFFER,
+  pattern GL_ARRAY_BUFFER_BINDING,
+  pattern GL_ATTACHED_SHADERS,
+  pattern GL_ATTRIB_STACK_DEPTH,
+  pattern GL_AUTO_NORMAL,
+  pattern GL_AUX0,
+  pattern GL_AUX1,
+  pattern GL_AUX2,
+  pattern GL_AUX3,
+  pattern GL_AUX_BUFFERS,
+  pattern GL_BACK,
+  pattern GL_BACK_LEFT,
+  pattern GL_BACK_RIGHT,
+  pattern GL_BGR,
+  pattern GL_BGRA,
+  pattern GL_BGRA_INTEGER,
+  pattern GL_BGR_INTEGER,
+  pattern GL_BITMAP,
+  pattern GL_BITMAP_TOKEN,
+  pattern GL_BLEND,
+  pattern GL_BLEND_COLOR,
+  pattern GL_BLEND_DST,
+  pattern GL_BLEND_DST_ALPHA,
+  pattern GL_BLEND_DST_RGB,
+  pattern GL_BLEND_EQUATION,
+  pattern GL_BLEND_EQUATION_ALPHA,
+  pattern GL_BLEND_EQUATION_RGB,
+  pattern GL_BLEND_SRC,
+  pattern GL_BLEND_SRC_ALPHA,
+  pattern GL_BLEND_SRC_RGB,
+  pattern GL_BLUE,
+  pattern GL_BLUE_BIAS,
+  pattern GL_BLUE_BITS,
+  pattern GL_BLUE_INTEGER,
+  pattern GL_BLUE_SCALE,
+  pattern GL_BOOL,
+  pattern GL_BOOL_VEC2,
+  pattern GL_BOOL_VEC3,
+  pattern GL_BOOL_VEC4,
+  pattern GL_BUFFER_ACCESS,
+  pattern GL_BUFFER_ACCESS_FLAGS,
+  pattern GL_BUFFER_MAPPED,
+  pattern GL_BUFFER_MAP_LENGTH,
+  pattern GL_BUFFER_MAP_OFFSET,
+  pattern GL_BUFFER_MAP_POINTER,
+  pattern GL_BUFFER_SIZE,
+  pattern GL_BUFFER_USAGE,
+  pattern GL_BYTE,
+  pattern GL_C3F_V3F,
+  pattern GL_C4F_N3F_V3F,
+  pattern GL_C4UB_V2F,
+  pattern GL_C4UB_V3F,
+  pattern GL_CCW,
+  pattern GL_CLAMP,
+  pattern GL_CLAMP_FRAGMENT_COLOR,
+  pattern GL_CLAMP_READ_COLOR,
+  pattern GL_CLAMP_TO_BORDER,
+  pattern GL_CLAMP_TO_EDGE,
+  pattern GL_CLAMP_VERTEX_COLOR,
+  pattern GL_CLEAR,
+  pattern GL_CLIENT_ACTIVE_TEXTURE,
+  pattern GL_CLIENT_ALL_ATTRIB_BITS,
+  pattern GL_CLIENT_ATTRIB_STACK_DEPTH,
+  pattern GL_CLIENT_PIXEL_STORE_BIT,
+  pattern GL_CLIENT_VERTEX_ARRAY_BIT,
+  pattern GL_CLIP_DISTANCE0,
+  pattern GL_CLIP_DISTANCE1,
+  pattern GL_CLIP_DISTANCE2,
+  pattern GL_CLIP_DISTANCE3,
+  pattern GL_CLIP_DISTANCE4,
+  pattern GL_CLIP_DISTANCE5,
+  pattern GL_CLIP_DISTANCE6,
+  pattern GL_CLIP_DISTANCE7,
+  pattern GL_CLIP_PLANE0,
+  pattern GL_CLIP_PLANE1,
+  pattern GL_CLIP_PLANE2,
+  pattern GL_CLIP_PLANE3,
+  pattern GL_CLIP_PLANE4,
+  pattern GL_CLIP_PLANE5,
+  pattern GL_COEFF,
+  pattern GL_COLOR,
+  pattern GL_COLOR_ARRAY,
+  pattern GL_COLOR_ARRAY_BUFFER_BINDING,
+  pattern GL_COLOR_ARRAY_POINTER,
+  pattern GL_COLOR_ARRAY_SIZE,
+  pattern GL_COLOR_ARRAY_STRIDE,
+  pattern GL_COLOR_ARRAY_TYPE,
+  pattern GL_COLOR_ATTACHMENT0,
+  pattern GL_COLOR_ATTACHMENT1,
+  pattern GL_COLOR_ATTACHMENT10,
+  pattern GL_COLOR_ATTACHMENT11,
+  pattern GL_COLOR_ATTACHMENT12,
+  pattern GL_COLOR_ATTACHMENT13,
+  pattern GL_COLOR_ATTACHMENT14,
+  pattern GL_COLOR_ATTACHMENT15,
+  pattern GL_COLOR_ATTACHMENT16,
+  pattern GL_COLOR_ATTACHMENT17,
+  pattern GL_COLOR_ATTACHMENT18,
+  pattern GL_COLOR_ATTACHMENT19,
+  pattern GL_COLOR_ATTACHMENT2,
+  pattern GL_COLOR_ATTACHMENT20,
+  pattern GL_COLOR_ATTACHMENT21,
+  pattern GL_COLOR_ATTACHMENT22,
+  pattern GL_COLOR_ATTACHMENT23,
+  pattern GL_COLOR_ATTACHMENT24,
+  pattern GL_COLOR_ATTACHMENT25,
+  pattern GL_COLOR_ATTACHMENT26,
+  pattern GL_COLOR_ATTACHMENT27,
+  pattern GL_COLOR_ATTACHMENT28,
+  pattern GL_COLOR_ATTACHMENT29,
+  pattern GL_COLOR_ATTACHMENT3,
+  pattern GL_COLOR_ATTACHMENT30,
+  pattern GL_COLOR_ATTACHMENT31,
+  pattern GL_COLOR_ATTACHMENT4,
+  pattern GL_COLOR_ATTACHMENT5,
+  pattern GL_COLOR_ATTACHMENT6,
+  pattern GL_COLOR_ATTACHMENT7,
+  pattern GL_COLOR_ATTACHMENT8,
+  pattern GL_COLOR_ATTACHMENT9,
+  pattern GL_COLOR_BUFFER_BIT,
+  pattern GL_COLOR_CLEAR_VALUE,
+  pattern GL_COLOR_INDEX,
+  pattern GL_COLOR_INDEXES,
+  pattern GL_COLOR_LOGIC_OP,
+  pattern GL_COLOR_MATERIAL,
+  pattern GL_COLOR_MATERIAL_FACE,
+  pattern GL_COLOR_MATERIAL_PARAMETER,
+  pattern GL_COLOR_SUM,
+  pattern GL_COLOR_WRITEMASK,
+  pattern GL_COMBINE,
+  pattern GL_COMBINE_ALPHA,
+  pattern GL_COMBINE_RGB,
+  pattern GL_COMPARE_REF_TO_TEXTURE,
+  pattern GL_COMPARE_R_TO_TEXTURE,
+  pattern GL_COMPILE,
+  pattern GL_COMPILE_AND_EXECUTE,
+  pattern GL_COMPILE_STATUS,
+  pattern GL_COMPRESSED_ALPHA,
+  pattern GL_COMPRESSED_INTENSITY,
+  pattern GL_COMPRESSED_LUMINANCE,
+  pattern GL_COMPRESSED_LUMINANCE_ALPHA,
+  pattern GL_COMPRESSED_RED,
+  pattern GL_COMPRESSED_RED_RGTC1,
+  pattern GL_COMPRESSED_RG,
+  pattern GL_COMPRESSED_RGB,
+  pattern GL_COMPRESSED_RGBA,
+  pattern GL_COMPRESSED_RG_RGTC2,
+  pattern GL_COMPRESSED_SIGNED_RED_RGTC1,
+  pattern GL_COMPRESSED_SIGNED_RG_RGTC2,
+  pattern GL_COMPRESSED_SLUMINANCE,
+  pattern GL_COMPRESSED_SLUMINANCE_ALPHA,
+  pattern GL_COMPRESSED_SRGB,
+  pattern GL_COMPRESSED_SRGB_ALPHA,
+  pattern GL_COMPRESSED_TEXTURE_FORMATS,
+  pattern GL_CONSTANT,
+  pattern GL_CONSTANT_ALPHA,
+  pattern GL_CONSTANT_ATTENUATION,
+  pattern GL_CONSTANT_COLOR,
+  pattern GL_CONTEXT_FLAGS,
+  pattern GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT,
+  pattern GL_COORD_REPLACE,
+  pattern GL_COPY,
+  pattern GL_COPY_INVERTED,
+  pattern GL_COPY_PIXEL_TOKEN,
+  pattern GL_CULL_FACE,
+  pattern GL_CULL_FACE_MODE,
+  pattern GL_CURRENT_BIT,
+  pattern GL_CURRENT_COLOR,
+  pattern GL_CURRENT_FOG_COORD,
+  pattern GL_CURRENT_FOG_COORDINATE,
+  pattern GL_CURRENT_INDEX,
+  pattern GL_CURRENT_NORMAL,
+  pattern GL_CURRENT_PROGRAM,
+  pattern GL_CURRENT_QUERY,
+  pattern GL_CURRENT_RASTER_COLOR,
+  pattern GL_CURRENT_RASTER_DISTANCE,
+  pattern GL_CURRENT_RASTER_INDEX,
+  pattern GL_CURRENT_RASTER_POSITION,
+  pattern GL_CURRENT_RASTER_POSITION_VALID,
+  pattern GL_CURRENT_RASTER_SECONDARY_COLOR,
+  pattern GL_CURRENT_RASTER_TEXTURE_COORDS,
+  pattern GL_CURRENT_SECONDARY_COLOR,
+  pattern GL_CURRENT_TEXTURE_COORDS,
+  pattern GL_CURRENT_VERTEX_ATTRIB,
+  pattern GL_CW,
+  pattern GL_DECAL,
+  pattern GL_DECR,
+  pattern GL_DECR_WRAP,
+  pattern GL_DELETE_STATUS,
+  pattern GL_DEPTH,
+  pattern GL_DEPTH24_STENCIL8,
+  pattern GL_DEPTH32F_STENCIL8,
+  pattern GL_DEPTH_ATTACHMENT,
+  pattern GL_DEPTH_BIAS,
+  pattern GL_DEPTH_BITS,
+  pattern GL_DEPTH_BUFFER_BIT,
+  pattern GL_DEPTH_CLEAR_VALUE,
+  pattern GL_DEPTH_COMPONENT,
+  pattern GL_DEPTH_COMPONENT16,
+  pattern GL_DEPTH_COMPONENT24,
+  pattern GL_DEPTH_COMPONENT32,
+  pattern GL_DEPTH_COMPONENT32F,
+  pattern GL_DEPTH_FUNC,
+  pattern GL_DEPTH_RANGE,
+  pattern GL_DEPTH_SCALE,
+  pattern GL_DEPTH_STENCIL,
+  pattern GL_DEPTH_STENCIL_ATTACHMENT,
+  pattern GL_DEPTH_TEST,
+  pattern GL_DEPTH_TEXTURE_MODE,
+  pattern GL_DEPTH_WRITEMASK,
+  pattern GL_DIFFUSE,
+  pattern GL_DITHER,
+  pattern GL_DOMAIN,
+  pattern GL_DONT_CARE,
+  pattern GL_DOT3_RGB,
+  pattern GL_DOT3_RGBA,
+  pattern GL_DOUBLE,
+  pattern GL_DOUBLEBUFFER,
+  pattern GL_DRAW_BUFFER,
+  pattern GL_DRAW_BUFFER0,
+  pattern GL_DRAW_BUFFER1,
+  pattern GL_DRAW_BUFFER10,
+  pattern GL_DRAW_BUFFER11,
+  pattern GL_DRAW_BUFFER12,
+  pattern GL_DRAW_BUFFER13,
+  pattern GL_DRAW_BUFFER14,
+  pattern GL_DRAW_BUFFER15,
+  pattern GL_DRAW_BUFFER2,
+  pattern GL_DRAW_BUFFER3,
+  pattern GL_DRAW_BUFFER4,
+  pattern GL_DRAW_BUFFER5,
+  pattern GL_DRAW_BUFFER6,
+  pattern GL_DRAW_BUFFER7,
+  pattern GL_DRAW_BUFFER8,
+  pattern GL_DRAW_BUFFER9,
+  pattern GL_DRAW_FRAMEBUFFER,
+  pattern GL_DRAW_FRAMEBUFFER_BINDING,
+  pattern GL_DRAW_PIXEL_TOKEN,
+  pattern GL_DST_ALPHA,
+  pattern GL_DST_COLOR,
+  pattern GL_DYNAMIC_COPY,
+  pattern GL_DYNAMIC_DRAW,
+  pattern GL_DYNAMIC_READ,
+  pattern GL_EDGE_FLAG,
+  pattern GL_EDGE_FLAG_ARRAY,
+  pattern GL_EDGE_FLAG_ARRAY_BUFFER_BINDING,
+  pattern GL_EDGE_FLAG_ARRAY_POINTER,
+  pattern GL_EDGE_FLAG_ARRAY_STRIDE,
+  pattern GL_ELEMENT_ARRAY_BUFFER,
+  pattern GL_ELEMENT_ARRAY_BUFFER_BINDING,
+  pattern GL_EMISSION,
+  pattern GL_ENABLE_BIT,
+  pattern GL_EQUAL,
+  pattern GL_EQUIV,
+  pattern GL_EVAL_BIT,
+  pattern GL_EXP,
+  pattern GL_EXP2,
+  pattern GL_EXTENSIONS,
+  pattern GL_EYE_LINEAR,
+  pattern GL_EYE_PLANE,
+  pattern GL_FALSE,
+  pattern GL_FASTEST,
+  pattern GL_FEEDBACK,
+  pattern GL_FEEDBACK_BUFFER_POINTER,
+  pattern GL_FEEDBACK_BUFFER_SIZE,
+  pattern GL_FEEDBACK_BUFFER_TYPE,
+  pattern GL_FILL,
+  pattern GL_FIXED_ONLY,
+  pattern GL_FLAT,
+  pattern GL_FLOAT,
+  pattern GL_FLOAT_32_UNSIGNED_INT_24_8_REV,
+  pattern GL_FLOAT_MAT2,
+  pattern GL_FLOAT_MAT2x3,
+  pattern GL_FLOAT_MAT2x4,
+  pattern GL_FLOAT_MAT3,
+  pattern GL_FLOAT_MAT3x2,
+  pattern GL_FLOAT_MAT3x4,
+  pattern GL_FLOAT_MAT4,
+  pattern GL_FLOAT_MAT4x2,
+  pattern GL_FLOAT_MAT4x3,
+  pattern GL_FLOAT_VEC2,
+  pattern GL_FLOAT_VEC3,
+  pattern GL_FLOAT_VEC4,
+  pattern GL_FOG,
+  pattern GL_FOG_BIT,
+  pattern GL_FOG_COLOR,
+  pattern GL_FOG_COORD,
+  pattern GL_FOG_COORDINATE,
+  pattern GL_FOG_COORDINATE_ARRAY,
+  pattern GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING,
+  pattern GL_FOG_COORDINATE_ARRAY_POINTER,
+  pattern GL_FOG_COORDINATE_ARRAY_STRIDE,
+  pattern GL_FOG_COORDINATE_ARRAY_TYPE,
+  pattern GL_FOG_COORDINATE_SOURCE,
+  pattern GL_FOG_COORD_ARRAY,
+  pattern GL_FOG_COORD_ARRAY_BUFFER_BINDING,
+  pattern GL_FOG_COORD_ARRAY_POINTER,
+  pattern GL_FOG_COORD_ARRAY_STRIDE,
+  pattern GL_FOG_COORD_ARRAY_TYPE,
+  pattern GL_FOG_COORD_SRC,
+  pattern GL_FOG_DENSITY,
+  pattern GL_FOG_END,
+  pattern GL_FOG_HINT,
+  pattern GL_FOG_INDEX,
+  pattern GL_FOG_MODE,
+  pattern GL_FOG_START,
+  pattern GL_FRAGMENT_DEPTH,
+  pattern GL_FRAGMENT_SHADER,
+  pattern GL_FRAGMENT_SHADER_DERIVATIVE_HINT,
+  pattern GL_FRAMEBUFFER,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL,
+  pattern GL_FRAMEBUFFER_BINDING,
+  pattern GL_FRAMEBUFFER_COMPLETE,
+  pattern GL_FRAMEBUFFER_DEFAULT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER,
+  pattern GL_FRAMEBUFFER_SRGB,
+  pattern GL_FRAMEBUFFER_UNDEFINED,
+  pattern GL_FRAMEBUFFER_UNSUPPORTED,
+  pattern GL_FRONT,
+  pattern GL_FRONT_AND_BACK,
+  pattern GL_FRONT_FACE,
+  pattern GL_FRONT_LEFT,
+  pattern GL_FRONT_RIGHT,
+  pattern GL_FUNC_ADD,
+  pattern GL_FUNC_REVERSE_SUBTRACT,
+  pattern GL_FUNC_SUBTRACT,
+  pattern GL_GENERATE_MIPMAP,
+  pattern GL_GENERATE_MIPMAP_HINT,
+  pattern GL_GEQUAL,
+  pattern GL_GREATER,
+  pattern GL_GREEN,
+  pattern GL_GREEN_BIAS,
+  pattern GL_GREEN_BITS,
+  pattern GL_GREEN_INTEGER,
+  pattern GL_GREEN_SCALE,
+  pattern GL_HALF_FLOAT,
+  pattern GL_HINT_BIT,
+  pattern GL_INCR,
+  pattern GL_INCR_WRAP,
+  pattern GL_INDEX,
+  pattern GL_INDEX_ARRAY,
+  pattern GL_INDEX_ARRAY_BUFFER_BINDING,
+  pattern GL_INDEX_ARRAY_POINTER,
+  pattern GL_INDEX_ARRAY_STRIDE,
+  pattern GL_INDEX_ARRAY_TYPE,
+  pattern GL_INDEX_BITS,
+  pattern GL_INDEX_CLEAR_VALUE,
+  pattern GL_INDEX_LOGIC_OP,
+  pattern GL_INDEX_MODE,
+  pattern GL_INDEX_OFFSET,
+  pattern GL_INDEX_SHIFT,
+  pattern GL_INDEX_WRITEMASK,
+  pattern GL_INFO_LOG_LENGTH,
+  pattern GL_INT,
+  pattern GL_INTENSITY,
+  pattern GL_INTENSITY12,
+  pattern GL_INTENSITY16,
+  pattern GL_INTENSITY4,
+  pattern GL_INTENSITY8,
+  pattern GL_INTERLEAVED_ATTRIBS,
+  pattern GL_INTERPOLATE,
+  pattern GL_INT_SAMPLER_1D,
+  pattern GL_INT_SAMPLER_1D_ARRAY,
+  pattern GL_INT_SAMPLER_2D,
+  pattern GL_INT_SAMPLER_2D_ARRAY,
+  pattern GL_INT_SAMPLER_3D,
+  pattern GL_INT_SAMPLER_CUBE,
+  pattern GL_INT_VEC2,
+  pattern GL_INT_VEC3,
+  pattern GL_INT_VEC4,
+  pattern GL_INVALID_ENUM,
+  pattern GL_INVALID_FRAMEBUFFER_OPERATION,
+  pattern GL_INVALID_OPERATION,
+  pattern GL_INVALID_VALUE,
+  pattern GL_INVERT,
+  pattern GL_KEEP,
+  pattern GL_LEFT,
+  pattern GL_LEQUAL,
+  pattern GL_LESS,
+  pattern GL_LIGHT0,
+  pattern GL_LIGHT1,
+  pattern GL_LIGHT2,
+  pattern GL_LIGHT3,
+  pattern GL_LIGHT4,
+  pattern GL_LIGHT5,
+  pattern GL_LIGHT6,
+  pattern GL_LIGHT7,
+  pattern GL_LIGHTING,
+  pattern GL_LIGHTING_BIT,
+  pattern GL_LIGHT_MODEL_AMBIENT,
+  pattern GL_LIGHT_MODEL_COLOR_CONTROL,
+  pattern GL_LIGHT_MODEL_LOCAL_VIEWER,
+  pattern GL_LIGHT_MODEL_TWO_SIDE,
+  pattern GL_LINE,
+  pattern GL_LINEAR,
+  pattern GL_LINEAR_ATTENUATION,
+  pattern GL_LINEAR_MIPMAP_LINEAR,
+  pattern GL_LINEAR_MIPMAP_NEAREST,
+  pattern GL_LINES,
+  pattern GL_LINE_BIT,
+  pattern GL_LINE_LOOP,
+  pattern GL_LINE_RESET_TOKEN,
+  pattern GL_LINE_SMOOTH,
+  pattern GL_LINE_SMOOTH_HINT,
+  pattern GL_LINE_STIPPLE,
+  pattern GL_LINE_STIPPLE_PATTERN,
+  pattern GL_LINE_STIPPLE_REPEAT,
+  pattern GL_LINE_STRIP,
+  pattern GL_LINE_TOKEN,
+  pattern GL_LINE_WIDTH,
+  pattern GL_LINE_WIDTH_GRANULARITY,
+  pattern GL_LINE_WIDTH_RANGE,
+  pattern GL_LINK_STATUS,
+  pattern GL_LIST_BASE,
+  pattern GL_LIST_BIT,
+  pattern GL_LIST_INDEX,
+  pattern GL_LIST_MODE,
+  pattern GL_LOAD,
+  pattern GL_LOGIC_OP,
+  pattern GL_LOGIC_OP_MODE,
+  pattern GL_LOWER_LEFT,
+  pattern GL_LUMINANCE,
+  pattern GL_LUMINANCE12,
+  pattern GL_LUMINANCE12_ALPHA12,
+  pattern GL_LUMINANCE12_ALPHA4,
+  pattern GL_LUMINANCE16,
+  pattern GL_LUMINANCE16_ALPHA16,
+  pattern GL_LUMINANCE4,
+  pattern GL_LUMINANCE4_ALPHA4,
+  pattern GL_LUMINANCE6_ALPHA2,
+  pattern GL_LUMINANCE8,
+  pattern GL_LUMINANCE8_ALPHA8,
+  pattern GL_LUMINANCE_ALPHA,
+  pattern GL_MAJOR_VERSION,
+  pattern GL_MAP1_COLOR_4,
+  pattern GL_MAP1_GRID_DOMAIN,
+  pattern GL_MAP1_GRID_SEGMENTS,
+  pattern GL_MAP1_INDEX,
+  pattern GL_MAP1_NORMAL,
+  pattern GL_MAP1_TEXTURE_COORD_1,
+  pattern GL_MAP1_TEXTURE_COORD_2,
+  pattern GL_MAP1_TEXTURE_COORD_3,
+  pattern GL_MAP1_TEXTURE_COORD_4,
+  pattern GL_MAP1_VERTEX_3,
+  pattern GL_MAP1_VERTEX_4,
+  pattern GL_MAP2_COLOR_4,
+  pattern GL_MAP2_GRID_DOMAIN,
+  pattern GL_MAP2_GRID_SEGMENTS,
+  pattern GL_MAP2_INDEX,
+  pattern GL_MAP2_NORMAL,
+  pattern GL_MAP2_TEXTURE_COORD_1,
+  pattern GL_MAP2_TEXTURE_COORD_2,
+  pattern GL_MAP2_TEXTURE_COORD_3,
+  pattern GL_MAP2_TEXTURE_COORD_4,
+  pattern GL_MAP2_VERTEX_3,
+  pattern GL_MAP2_VERTEX_4,
+  pattern GL_MAP_COLOR,
+  pattern GL_MAP_FLUSH_EXPLICIT_BIT,
+  pattern GL_MAP_INVALIDATE_BUFFER_BIT,
+  pattern GL_MAP_INVALIDATE_RANGE_BIT,
+  pattern GL_MAP_READ_BIT,
+  pattern GL_MAP_STENCIL,
+  pattern GL_MAP_UNSYNCHRONIZED_BIT,
+  pattern GL_MAP_WRITE_BIT,
+  pattern GL_MATRIX_MODE,
+  pattern GL_MAX,
+  pattern GL_MAX_3D_TEXTURE_SIZE,
+  pattern GL_MAX_ARRAY_TEXTURE_LAYERS,
+  pattern GL_MAX_ATTRIB_STACK_DEPTH,
+  pattern GL_MAX_CLIENT_ATTRIB_STACK_DEPTH,
+  pattern GL_MAX_CLIP_DISTANCES,
+  pattern GL_MAX_CLIP_PLANES,
+  pattern GL_MAX_COLOR_ATTACHMENTS,
+  pattern GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE,
+  pattern GL_MAX_DRAW_BUFFERS,
+  pattern GL_MAX_ELEMENTS_INDICES,
+  pattern GL_MAX_ELEMENTS_VERTICES,
+  pattern GL_MAX_EVAL_ORDER,
+  pattern GL_MAX_FRAGMENT_UNIFORM_COMPONENTS,
+  pattern GL_MAX_LIGHTS,
+  pattern GL_MAX_LIST_NESTING,
+  pattern GL_MAX_MODELVIEW_STACK_DEPTH,
+  pattern GL_MAX_NAME_STACK_DEPTH,
+  pattern GL_MAX_PIXEL_MAP_TABLE,
+  pattern GL_MAX_PROGRAM_TEXEL_OFFSET,
+  pattern GL_MAX_PROJECTION_STACK_DEPTH,
+  pattern GL_MAX_RENDERBUFFER_SIZE,
+  pattern GL_MAX_SAMPLES,
+  pattern GL_MAX_TEXTURE_COORDS,
+  pattern GL_MAX_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_TEXTURE_LOD_BIAS,
+  pattern GL_MAX_TEXTURE_SIZE,
+  pattern GL_MAX_TEXTURE_STACK_DEPTH,
+  pattern GL_MAX_TEXTURE_UNITS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS,
+  pattern GL_MAX_VARYING_COMPONENTS,
+  pattern GL_MAX_VARYING_FLOATS,
+  pattern GL_MAX_VERTEX_ATTRIBS,
+  pattern GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_VERTEX_UNIFORM_COMPONENTS,
+  pattern GL_MAX_VIEWPORT_DIMS,
+  pattern GL_MIN,
+  pattern GL_MINOR_VERSION,
+  pattern GL_MIN_PROGRAM_TEXEL_OFFSET,
+  pattern GL_MIRRORED_REPEAT,
+  pattern GL_MODELVIEW,
+  pattern GL_MODELVIEW_MATRIX,
+  pattern GL_MODELVIEW_STACK_DEPTH,
+  pattern GL_MODULATE,
+  pattern GL_MULT,
+  pattern GL_MULTISAMPLE,
+  pattern GL_MULTISAMPLE_BIT,
+  pattern GL_N3F_V3F,
+  pattern GL_NAME_STACK_DEPTH,
+  pattern GL_NAND,
+  pattern GL_NEAREST,
+  pattern GL_NEAREST_MIPMAP_LINEAR,
+  pattern GL_NEAREST_MIPMAP_NEAREST,
+  pattern GL_NEVER,
+  pattern GL_NICEST,
+  pattern GL_NONE,
+  pattern GL_NOOP,
+  pattern GL_NOR,
+  pattern GL_NORMALIZE,
+  pattern GL_NORMAL_ARRAY,
+  pattern GL_NORMAL_ARRAY_BUFFER_BINDING,
+  pattern GL_NORMAL_ARRAY_POINTER,
+  pattern GL_NORMAL_ARRAY_STRIDE,
+  pattern GL_NORMAL_ARRAY_TYPE,
+  pattern GL_NORMAL_MAP,
+  pattern GL_NOTEQUAL,
+  pattern GL_NO_ERROR,
+  pattern GL_NUM_COMPRESSED_TEXTURE_FORMATS,
+  pattern GL_NUM_EXTENSIONS,
+  pattern GL_OBJECT_LINEAR,
+  pattern GL_OBJECT_PLANE,
+  pattern GL_ONE,
+  pattern GL_ONE_MINUS_CONSTANT_ALPHA,
+  pattern GL_ONE_MINUS_CONSTANT_COLOR,
+  pattern GL_ONE_MINUS_DST_ALPHA,
+  pattern GL_ONE_MINUS_DST_COLOR,
+  pattern GL_ONE_MINUS_SRC_ALPHA,
+  pattern GL_ONE_MINUS_SRC_COLOR,
+  pattern GL_OPERAND0_ALPHA,
+  pattern GL_OPERAND0_RGB,
+  pattern GL_OPERAND1_ALPHA,
+  pattern GL_OPERAND1_RGB,
+  pattern GL_OPERAND2_ALPHA,
+  pattern GL_OPERAND2_RGB,
+  pattern GL_OR,
+  pattern GL_ORDER,
+  pattern GL_OR_INVERTED,
+  pattern GL_OR_REVERSE,
+  pattern GL_OUT_OF_MEMORY,
+  pattern GL_PACK_ALIGNMENT,
+  pattern GL_PACK_IMAGE_HEIGHT,
+  pattern GL_PACK_LSB_FIRST,
+  pattern GL_PACK_ROW_LENGTH,
+  pattern GL_PACK_SKIP_IMAGES,
+  pattern GL_PACK_SKIP_PIXELS,
+  pattern GL_PACK_SKIP_ROWS,
+  pattern GL_PACK_SWAP_BYTES,
+  pattern GL_PASS_THROUGH_TOKEN,
+  pattern GL_PERSPECTIVE_CORRECTION_HINT,
+  pattern GL_PIXEL_MAP_A_TO_A,
+  pattern GL_PIXEL_MAP_A_TO_A_SIZE,
+  pattern GL_PIXEL_MAP_B_TO_B,
+  pattern GL_PIXEL_MAP_B_TO_B_SIZE,
+  pattern GL_PIXEL_MAP_G_TO_G,
+  pattern GL_PIXEL_MAP_G_TO_G_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_A,
+  pattern GL_PIXEL_MAP_I_TO_A_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_B,
+  pattern GL_PIXEL_MAP_I_TO_B_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_G,
+  pattern GL_PIXEL_MAP_I_TO_G_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_I,
+  pattern GL_PIXEL_MAP_I_TO_I_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_R,
+  pattern GL_PIXEL_MAP_I_TO_R_SIZE,
+  pattern GL_PIXEL_MAP_R_TO_R,
+  pattern GL_PIXEL_MAP_R_TO_R_SIZE,
+  pattern GL_PIXEL_MAP_S_TO_S,
+  pattern GL_PIXEL_MAP_S_TO_S_SIZE,
+  pattern GL_PIXEL_MODE_BIT,
+  pattern GL_PIXEL_PACK_BUFFER,
+  pattern GL_PIXEL_PACK_BUFFER_BINDING,
+  pattern GL_PIXEL_UNPACK_BUFFER,
+  pattern GL_PIXEL_UNPACK_BUFFER_BINDING,
+  pattern GL_POINT,
+  pattern GL_POINTS,
+  pattern GL_POINT_BIT,
+  pattern GL_POINT_DISTANCE_ATTENUATION,
+  pattern GL_POINT_FADE_THRESHOLD_SIZE,
+  pattern GL_POINT_SIZE,
+  pattern GL_POINT_SIZE_GRANULARITY,
+  pattern GL_POINT_SIZE_MAX,
+  pattern GL_POINT_SIZE_MIN,
+  pattern GL_POINT_SIZE_RANGE,
+  pattern GL_POINT_SMOOTH,
+  pattern GL_POINT_SMOOTH_HINT,
+  pattern GL_POINT_SPRITE,
+  pattern GL_POINT_SPRITE_COORD_ORIGIN,
+  pattern GL_POINT_TOKEN,
+  pattern GL_POLYGON,
+  pattern GL_POLYGON_BIT,
+  pattern GL_POLYGON_MODE,
+  pattern GL_POLYGON_OFFSET_FACTOR,
+  pattern GL_POLYGON_OFFSET_FILL,
+  pattern GL_POLYGON_OFFSET_LINE,
+  pattern GL_POLYGON_OFFSET_POINT,
+  pattern GL_POLYGON_OFFSET_UNITS,
+  pattern GL_POLYGON_SMOOTH,
+  pattern GL_POLYGON_SMOOTH_HINT,
+  pattern GL_POLYGON_STIPPLE,
+  pattern GL_POLYGON_STIPPLE_BIT,
+  pattern GL_POLYGON_TOKEN,
+  pattern GL_POSITION,
+  pattern GL_PREVIOUS,
+  pattern GL_PRIMARY_COLOR,
+  pattern GL_PRIMITIVES_GENERATED,
+  pattern GL_PROJECTION,
+  pattern GL_PROJECTION_MATRIX,
+  pattern GL_PROJECTION_STACK_DEPTH,
+  pattern GL_PROXY_TEXTURE_1D,
+  pattern GL_PROXY_TEXTURE_1D_ARRAY,
+  pattern GL_PROXY_TEXTURE_2D,
+  pattern GL_PROXY_TEXTURE_2D_ARRAY,
+  pattern GL_PROXY_TEXTURE_3D,
+  pattern GL_PROXY_TEXTURE_CUBE_MAP,
+  pattern GL_Q,
+  pattern GL_QUADRATIC_ATTENUATION,
+  pattern GL_QUADS,
+  pattern GL_QUAD_STRIP,
+  pattern GL_QUERY_BY_REGION_NO_WAIT,
+  pattern GL_QUERY_BY_REGION_WAIT,
+  pattern GL_QUERY_COUNTER_BITS,
+  pattern GL_QUERY_NO_WAIT,
+  pattern GL_QUERY_RESULT,
+  pattern GL_QUERY_RESULT_AVAILABLE,
+  pattern GL_QUERY_WAIT,
+  pattern GL_R,
+  pattern GL_R11F_G11F_B10F,
+  pattern GL_R16,
+  pattern GL_R16F,
+  pattern GL_R16I,
+  pattern GL_R16UI,
+  pattern GL_R32F,
+  pattern GL_R32I,
+  pattern GL_R32UI,
+  pattern GL_R3_G3_B2,
+  pattern GL_R8,
+  pattern GL_R8I,
+  pattern GL_R8UI,
+  pattern GL_RASTERIZER_DISCARD,
+  pattern GL_READ_BUFFER,
+  pattern GL_READ_FRAMEBUFFER,
+  pattern GL_READ_FRAMEBUFFER_BINDING,
+  pattern GL_READ_ONLY,
+  pattern GL_READ_WRITE,
+  pattern GL_RED,
+  pattern GL_RED_BIAS,
+  pattern GL_RED_BITS,
+  pattern GL_RED_INTEGER,
+  pattern GL_RED_SCALE,
+  pattern GL_REFLECTION_MAP,
+  pattern GL_RENDER,
+  pattern GL_RENDERBUFFER,
+  pattern GL_RENDERBUFFER_ALPHA_SIZE,
+  pattern GL_RENDERBUFFER_BINDING,
+  pattern GL_RENDERBUFFER_BLUE_SIZE,
+  pattern GL_RENDERBUFFER_DEPTH_SIZE,
+  pattern GL_RENDERBUFFER_GREEN_SIZE,
+  pattern GL_RENDERBUFFER_HEIGHT,
+  pattern GL_RENDERBUFFER_INTERNAL_FORMAT,
+  pattern GL_RENDERBUFFER_RED_SIZE,
+  pattern GL_RENDERBUFFER_SAMPLES,
+  pattern GL_RENDERBUFFER_STENCIL_SIZE,
+  pattern GL_RENDERBUFFER_WIDTH,
+  pattern GL_RENDERER,
+  pattern GL_RENDER_MODE,
+  pattern GL_REPEAT,
+  pattern GL_REPLACE,
+  pattern GL_RESCALE_NORMAL,
+  pattern GL_RETURN,
+  pattern GL_RG,
+  pattern GL_RG16,
+  pattern GL_RG16F,
+  pattern GL_RG16I,
+  pattern GL_RG16UI,
+  pattern GL_RG32F,
+  pattern GL_RG32I,
+  pattern GL_RG32UI,
+  pattern GL_RG8,
+  pattern GL_RG8I,
+  pattern GL_RG8UI,
+  pattern GL_RGB,
+  pattern GL_RGB10,
+  pattern GL_RGB10_A2,
+  pattern GL_RGB12,
+  pattern GL_RGB16,
+  pattern GL_RGB16F,
+  pattern GL_RGB16I,
+  pattern GL_RGB16UI,
+  pattern GL_RGB32F,
+  pattern GL_RGB32I,
+  pattern GL_RGB32UI,
+  pattern GL_RGB4,
+  pattern GL_RGB5,
+  pattern GL_RGB5_A1,
+  pattern GL_RGB8,
+  pattern GL_RGB8I,
+  pattern GL_RGB8UI,
+  pattern GL_RGB9_E5,
+  pattern GL_RGBA,
+  pattern GL_RGBA12,
+  pattern GL_RGBA16,
+  pattern GL_RGBA16F,
+  pattern GL_RGBA16I,
+  pattern GL_RGBA16UI,
+  pattern GL_RGBA2,
+  pattern GL_RGBA32F,
+  pattern GL_RGBA32I,
+  pattern GL_RGBA32UI,
+  pattern GL_RGBA4,
+  pattern GL_RGBA8,
+  pattern GL_RGBA8I,
+  pattern GL_RGBA8UI,
+  pattern GL_RGBA_INTEGER,
+  pattern GL_RGBA_MODE,
+  pattern GL_RGB_INTEGER,
+  pattern GL_RGB_SCALE,
+  pattern GL_RG_INTEGER,
+  pattern GL_RIGHT,
+  pattern GL_S,
+  pattern GL_SAMPLER_1D,
+  pattern GL_SAMPLER_1D_ARRAY,
+  pattern GL_SAMPLER_1D_ARRAY_SHADOW,
+  pattern GL_SAMPLER_1D_SHADOW,
+  pattern GL_SAMPLER_2D,
+  pattern GL_SAMPLER_2D_ARRAY,
+  pattern GL_SAMPLER_2D_ARRAY_SHADOW,
+  pattern GL_SAMPLER_2D_SHADOW,
+  pattern GL_SAMPLER_3D,
+  pattern GL_SAMPLER_CUBE,
+  pattern GL_SAMPLER_CUBE_SHADOW,
+  pattern GL_SAMPLES,
+  pattern GL_SAMPLES_PASSED,
+  pattern GL_SAMPLE_ALPHA_TO_COVERAGE,
+  pattern GL_SAMPLE_ALPHA_TO_ONE,
+  pattern GL_SAMPLE_BUFFERS,
+  pattern GL_SAMPLE_COVERAGE,
+  pattern GL_SAMPLE_COVERAGE_INVERT,
+  pattern GL_SAMPLE_COVERAGE_VALUE,
+  pattern GL_SCISSOR_BIT,
+  pattern GL_SCISSOR_BOX,
+  pattern GL_SCISSOR_TEST,
+  pattern GL_SECONDARY_COLOR_ARRAY,
+  pattern GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING,
+  pattern GL_SECONDARY_COLOR_ARRAY_POINTER,
+  pattern GL_SECONDARY_COLOR_ARRAY_SIZE,
+  pattern GL_SECONDARY_COLOR_ARRAY_STRIDE,
+  pattern GL_SECONDARY_COLOR_ARRAY_TYPE,
+  pattern GL_SELECT,
+  pattern GL_SELECTION_BUFFER_POINTER,
+  pattern GL_SELECTION_BUFFER_SIZE,
+  pattern GL_SEPARATE_ATTRIBS,
+  pattern GL_SEPARATE_SPECULAR_COLOR,
+  pattern GL_SET,
+  pattern GL_SHADER_SOURCE_LENGTH,
+  pattern GL_SHADER_TYPE,
+  pattern GL_SHADE_MODEL,
+  pattern GL_SHADING_LANGUAGE_VERSION,
+  pattern GL_SHININESS,
+  pattern GL_SHORT,
+  pattern GL_SINGLE_COLOR,
+  pattern GL_SLUMINANCE,
+  pattern GL_SLUMINANCE8,
+  pattern GL_SLUMINANCE8_ALPHA8,
+  pattern GL_SLUMINANCE_ALPHA,
+  pattern GL_SMOOTH,
+  pattern GL_SMOOTH_LINE_WIDTH_GRANULARITY,
+  pattern GL_SMOOTH_LINE_WIDTH_RANGE,
+  pattern GL_SMOOTH_POINT_SIZE_GRANULARITY,
+  pattern GL_SMOOTH_POINT_SIZE_RANGE,
+  pattern GL_SOURCE0_ALPHA,
+  pattern GL_SOURCE0_RGB,
+  pattern GL_SOURCE1_ALPHA,
+  pattern GL_SOURCE1_RGB,
+  pattern GL_SOURCE2_ALPHA,
+  pattern GL_SOURCE2_RGB,
+  pattern GL_SPECULAR,
+  pattern GL_SPHERE_MAP,
+  pattern GL_SPOT_CUTOFF,
+  pattern GL_SPOT_DIRECTION,
+  pattern GL_SPOT_EXPONENT,
+  pattern GL_SRC0_ALPHA,
+  pattern GL_SRC0_RGB,
+  pattern GL_SRC1_ALPHA,
+  pattern GL_SRC1_RGB,
+  pattern GL_SRC2_ALPHA,
+  pattern GL_SRC2_RGB,
+  pattern GL_SRC_ALPHA,
+  pattern GL_SRC_ALPHA_SATURATE,
+  pattern GL_SRC_COLOR,
+  pattern GL_SRGB,
+  pattern GL_SRGB8,
+  pattern GL_SRGB8_ALPHA8,
+  pattern GL_SRGB_ALPHA,
+  pattern GL_STACK_OVERFLOW,
+  pattern GL_STACK_UNDERFLOW,
+  pattern GL_STATIC_COPY,
+  pattern GL_STATIC_DRAW,
+  pattern GL_STATIC_READ,
+  pattern GL_STENCIL,
+  pattern GL_STENCIL_ATTACHMENT,
+  pattern GL_STENCIL_BACK_FAIL,
+  pattern GL_STENCIL_BACK_FUNC,
+  pattern GL_STENCIL_BACK_PASS_DEPTH_FAIL,
+  pattern GL_STENCIL_BACK_PASS_DEPTH_PASS,
+  pattern GL_STENCIL_BACK_REF,
+  pattern GL_STENCIL_BACK_VALUE_MASK,
+  pattern GL_STENCIL_BACK_WRITEMASK,
+  pattern GL_STENCIL_BITS,
+  pattern GL_STENCIL_BUFFER_BIT,
+  pattern GL_STENCIL_CLEAR_VALUE,
+  pattern GL_STENCIL_FAIL,
+  pattern GL_STENCIL_FUNC,
+  pattern GL_STENCIL_INDEX,
+  pattern GL_STENCIL_INDEX1,
+  pattern GL_STENCIL_INDEX16,
+  pattern GL_STENCIL_INDEX4,
+  pattern GL_STENCIL_INDEX8,
+  pattern GL_STENCIL_PASS_DEPTH_FAIL,
+  pattern GL_STENCIL_PASS_DEPTH_PASS,
+  pattern GL_STENCIL_REF,
+  pattern GL_STENCIL_TEST,
+  pattern GL_STENCIL_VALUE_MASK,
+  pattern GL_STENCIL_WRITEMASK,
+  pattern GL_STEREO,
+  pattern GL_STREAM_COPY,
+  pattern GL_STREAM_DRAW,
+  pattern GL_STREAM_READ,
+  pattern GL_SUBPIXEL_BITS,
+  pattern GL_SUBTRACT,
+  pattern GL_T,
+  pattern GL_T2F_C3F_V3F,
+  pattern GL_T2F_C4F_N3F_V3F,
+  pattern GL_T2F_C4UB_V3F,
+  pattern GL_T2F_N3F_V3F,
+  pattern GL_T2F_V3F,
+  pattern GL_T4F_C4F_N3F_V4F,
+  pattern GL_T4F_V4F,
+  pattern GL_TEXTURE,
+  pattern GL_TEXTURE0,
+  pattern GL_TEXTURE1,
+  pattern GL_TEXTURE10,
+  pattern GL_TEXTURE11,
+  pattern GL_TEXTURE12,
+  pattern GL_TEXTURE13,
+  pattern GL_TEXTURE14,
+  pattern GL_TEXTURE15,
+  pattern GL_TEXTURE16,
+  pattern GL_TEXTURE17,
+  pattern GL_TEXTURE18,
+  pattern GL_TEXTURE19,
+  pattern GL_TEXTURE2,
+  pattern GL_TEXTURE20,
+  pattern GL_TEXTURE21,
+  pattern GL_TEXTURE22,
+  pattern GL_TEXTURE23,
+  pattern GL_TEXTURE24,
+  pattern GL_TEXTURE25,
+  pattern GL_TEXTURE26,
+  pattern GL_TEXTURE27,
+  pattern GL_TEXTURE28,
+  pattern GL_TEXTURE29,
+  pattern GL_TEXTURE3,
+  pattern GL_TEXTURE30,
+  pattern GL_TEXTURE31,
+  pattern GL_TEXTURE4,
+  pattern GL_TEXTURE5,
+  pattern GL_TEXTURE6,
+  pattern GL_TEXTURE7,
+  pattern GL_TEXTURE8,
+  pattern GL_TEXTURE9,
+  pattern GL_TEXTURE_1D,
+  pattern GL_TEXTURE_1D_ARRAY,
+  pattern GL_TEXTURE_2D,
+  pattern GL_TEXTURE_2D_ARRAY,
+  pattern GL_TEXTURE_3D,
+  pattern GL_TEXTURE_ALPHA_SIZE,
+  pattern GL_TEXTURE_ALPHA_TYPE,
+  pattern GL_TEXTURE_BASE_LEVEL,
+  pattern GL_TEXTURE_BINDING_1D,
+  pattern GL_TEXTURE_BINDING_1D_ARRAY,
+  pattern GL_TEXTURE_BINDING_2D,
+  pattern GL_TEXTURE_BINDING_2D_ARRAY,
+  pattern GL_TEXTURE_BINDING_3D,
+  pattern GL_TEXTURE_BINDING_CUBE_MAP,
+  pattern GL_TEXTURE_BIT,
+  pattern GL_TEXTURE_BLUE_SIZE,
+  pattern GL_TEXTURE_BLUE_TYPE,
+  pattern GL_TEXTURE_BORDER,
+  pattern GL_TEXTURE_BORDER_COLOR,
+  pattern GL_TEXTURE_COMPARE_FUNC,
+  pattern GL_TEXTURE_COMPARE_MODE,
+  pattern GL_TEXTURE_COMPONENTS,
+  pattern GL_TEXTURE_COMPRESSED,
+  pattern GL_TEXTURE_COMPRESSED_IMAGE_SIZE,
+  pattern GL_TEXTURE_COMPRESSION_HINT,
+  pattern GL_TEXTURE_COORD_ARRAY,
+  pattern GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING,
+  pattern GL_TEXTURE_COORD_ARRAY_POINTER,
+  pattern GL_TEXTURE_COORD_ARRAY_SIZE,
+  pattern GL_TEXTURE_COORD_ARRAY_STRIDE,
+  pattern GL_TEXTURE_COORD_ARRAY_TYPE,
+  pattern GL_TEXTURE_CUBE_MAP,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z,
+  pattern GL_TEXTURE_DEPTH,
+  pattern GL_TEXTURE_DEPTH_SIZE,
+  pattern GL_TEXTURE_DEPTH_TYPE,
+  pattern GL_TEXTURE_ENV,
+  pattern GL_TEXTURE_ENV_COLOR,
+  pattern GL_TEXTURE_ENV_MODE,
+  pattern GL_TEXTURE_FILTER_CONTROL,
+  pattern GL_TEXTURE_GEN_MODE,
+  pattern GL_TEXTURE_GEN_Q,
+  pattern GL_TEXTURE_GEN_R,
+  pattern GL_TEXTURE_GEN_S,
+  pattern GL_TEXTURE_GEN_T,
+  pattern GL_TEXTURE_GREEN_SIZE,
+  pattern GL_TEXTURE_GREEN_TYPE,
+  pattern GL_TEXTURE_HEIGHT,
+  pattern GL_TEXTURE_INTENSITY_SIZE,
+  pattern GL_TEXTURE_INTENSITY_TYPE,
+  pattern GL_TEXTURE_INTERNAL_FORMAT,
+  pattern GL_TEXTURE_LOD_BIAS,
+  pattern GL_TEXTURE_LUMINANCE_SIZE,
+  pattern GL_TEXTURE_LUMINANCE_TYPE,
+  pattern GL_TEXTURE_MAG_FILTER,
+  pattern GL_TEXTURE_MATRIX,
+  pattern GL_TEXTURE_MAX_LEVEL,
+  pattern GL_TEXTURE_MAX_LOD,
+  pattern GL_TEXTURE_MIN_FILTER,
+  pattern GL_TEXTURE_MIN_LOD,
+  pattern GL_TEXTURE_PRIORITY,
+  pattern GL_TEXTURE_RED_SIZE,
+  pattern GL_TEXTURE_RED_TYPE,
+  pattern GL_TEXTURE_RESIDENT,
+  pattern GL_TEXTURE_SHARED_SIZE,
+  pattern GL_TEXTURE_STACK_DEPTH,
+  pattern GL_TEXTURE_STENCIL_SIZE,
+  pattern GL_TEXTURE_WIDTH,
+  pattern GL_TEXTURE_WRAP_R,
+  pattern GL_TEXTURE_WRAP_S,
+  pattern GL_TEXTURE_WRAP_T,
+  pattern GL_TRANSFORM_BIT,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_BINDING,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_MODE,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_SIZE,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_START,
+  pattern GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN,
+  pattern GL_TRANSFORM_FEEDBACK_VARYINGS,
+  pattern GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH,
+  pattern GL_TRANSPOSE_COLOR_MATRIX,
+  pattern GL_TRANSPOSE_MODELVIEW_MATRIX,
+  pattern GL_TRANSPOSE_PROJECTION_MATRIX,
+  pattern GL_TRANSPOSE_TEXTURE_MATRIX,
+  pattern GL_TRIANGLES,
+  pattern GL_TRIANGLE_FAN,
+  pattern GL_TRIANGLE_STRIP,
+  pattern GL_TRUE,
+  pattern GL_UNPACK_ALIGNMENT,
+  pattern GL_UNPACK_IMAGE_HEIGHT,
+  pattern GL_UNPACK_LSB_FIRST,
+  pattern GL_UNPACK_ROW_LENGTH,
+  pattern GL_UNPACK_SKIP_IMAGES,
+  pattern GL_UNPACK_SKIP_PIXELS,
+  pattern GL_UNPACK_SKIP_ROWS,
+  pattern GL_UNPACK_SWAP_BYTES,
+  pattern GL_UNSIGNED_BYTE,
+  pattern GL_UNSIGNED_BYTE_2_3_3_REV,
+  pattern GL_UNSIGNED_BYTE_3_3_2,
+  pattern GL_UNSIGNED_INT,
+  pattern GL_UNSIGNED_INT_10F_11F_11F_REV,
+  pattern GL_UNSIGNED_INT_10_10_10_2,
+  pattern GL_UNSIGNED_INT_24_8,
+  pattern GL_UNSIGNED_INT_2_10_10_10_REV,
+  pattern GL_UNSIGNED_INT_5_9_9_9_REV,
+  pattern GL_UNSIGNED_INT_8_8_8_8,
+  pattern GL_UNSIGNED_INT_8_8_8_8_REV,
+  pattern GL_UNSIGNED_INT_SAMPLER_1D,
+  pattern GL_UNSIGNED_INT_SAMPLER_1D_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_3D,
+  pattern GL_UNSIGNED_INT_SAMPLER_CUBE,
+  pattern GL_UNSIGNED_INT_VEC2,
+  pattern GL_UNSIGNED_INT_VEC3,
+  pattern GL_UNSIGNED_INT_VEC4,
+  pattern GL_UNSIGNED_NORMALIZED,
+  pattern GL_UNSIGNED_SHORT,
+  pattern GL_UNSIGNED_SHORT_1_5_5_5_REV,
+  pattern GL_UNSIGNED_SHORT_4_4_4_4,
+  pattern GL_UNSIGNED_SHORT_4_4_4_4_REV,
+  pattern GL_UNSIGNED_SHORT_5_5_5_1,
+  pattern GL_UNSIGNED_SHORT_5_6_5,
+  pattern GL_UNSIGNED_SHORT_5_6_5_REV,
+  pattern GL_UPPER_LEFT,
+  pattern GL_V2F,
+  pattern GL_V3F,
+  pattern GL_VALIDATE_STATUS,
+  pattern GL_VENDOR,
+  pattern GL_VERSION,
+  pattern GL_VERTEX_ARRAY,
+  pattern GL_VERTEX_ARRAY_BINDING,
+  pattern GL_VERTEX_ARRAY_BUFFER_BINDING,
+  pattern GL_VERTEX_ARRAY_POINTER,
+  pattern GL_VERTEX_ARRAY_SIZE,
+  pattern GL_VERTEX_ARRAY_STRIDE,
+  pattern GL_VERTEX_ARRAY_TYPE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING,
+  pattern GL_VERTEX_ATTRIB_ARRAY_ENABLED,
+  pattern GL_VERTEX_ATTRIB_ARRAY_INTEGER,
+  pattern GL_VERTEX_ATTRIB_ARRAY_NORMALIZED,
+  pattern GL_VERTEX_ATTRIB_ARRAY_POINTER,
+  pattern GL_VERTEX_ATTRIB_ARRAY_SIZE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_STRIDE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_TYPE,
+  pattern GL_VERTEX_PROGRAM_POINT_SIZE,
+  pattern GL_VERTEX_PROGRAM_TWO_SIDE,
+  pattern GL_VERTEX_SHADER,
+  pattern GL_VIEWPORT,
+  pattern GL_VIEWPORT_BIT,
+  pattern GL_WEIGHT_ARRAY_BUFFER_BINDING,
+  pattern GL_WRITE_ONLY,
+  pattern GL_XOR,
+  pattern GL_ZERO,
+  pattern GL_ZOOM_X,
+  pattern GL_ZOOM_Y,
+  -- * Functions
+  glAccum,
+  glActiveTexture,
+  glAlphaFunc,
+  glAreTexturesResident,
+  glArrayElement,
+  glAttachShader,
+  glBegin,
+  glBeginConditionalRender,
+  glBeginQuery,
+  glBeginTransformFeedback,
+  glBindAttribLocation,
+  glBindBuffer,
+  glBindBufferBase,
+  glBindBufferRange,
+  glBindFragDataLocation,
+  glBindFramebuffer,
+  glBindRenderbuffer,
+  glBindTexture,
+  glBindVertexArray,
+  glBitmap,
+  glBlendColor,
+  glBlendEquation,
+  glBlendEquationSeparate,
+  glBlendFunc,
+  glBlendFuncSeparate,
+  glBlitFramebuffer,
+  glBufferData,
+  glBufferSubData,
+  glCallList,
+  glCallLists,
+  glCheckFramebufferStatus,
+  glClampColor,
+  glClear,
+  glClearAccum,
+  glClearBufferfi,
+  glClearBufferfv,
+  glClearBufferiv,
+  glClearBufferuiv,
+  glClearColor,
+  glClearDepth,
+  glClearIndex,
+  glClearStencil,
+  glClientActiveTexture,
+  glClipPlane,
+  glColor3b,
+  glColor3bv,
+  glColor3d,
+  glColor3dv,
+  glColor3f,
+  glColor3fv,
+  glColor3i,
+  glColor3iv,
+  glColor3s,
+  glColor3sv,
+  glColor3ub,
+  glColor3ubv,
+  glColor3ui,
+  glColor3uiv,
+  glColor3us,
+  glColor3usv,
+  glColor4b,
+  glColor4bv,
+  glColor4d,
+  glColor4dv,
+  glColor4f,
+  glColor4fv,
+  glColor4i,
+  glColor4iv,
+  glColor4s,
+  glColor4sv,
+  glColor4ub,
+  glColor4ubv,
+  glColor4ui,
+  glColor4uiv,
+  glColor4us,
+  glColor4usv,
+  glColorMask,
+  glColorMaski,
+  glColorMaterial,
+  glColorPointer,
+  glCompileShader,
+  glCompressedTexImage1D,
+  glCompressedTexImage2D,
+  glCompressedTexImage3D,
+  glCompressedTexSubImage1D,
+  glCompressedTexSubImage2D,
+  glCompressedTexSubImage3D,
+  glCopyPixels,
+  glCopyTexImage1D,
+  glCopyTexImage2D,
+  glCopyTexSubImage1D,
+  glCopyTexSubImage2D,
+  glCopyTexSubImage3D,
+  glCreateProgram,
+  glCreateShader,
+  glCullFace,
+  glDeleteBuffers,
+  glDeleteFramebuffers,
+  glDeleteLists,
+  glDeleteProgram,
+  glDeleteQueries,
+  glDeleteRenderbuffers,
+  glDeleteShader,
+  glDeleteTextures,
+  glDeleteVertexArrays,
+  glDepthFunc,
+  glDepthMask,
+  glDepthRange,
+  glDetachShader,
+  glDisable,
+  glDisableClientState,
+  glDisableVertexAttribArray,
+  glDisablei,
+  glDrawArrays,
+  glDrawBuffer,
+  glDrawBuffers,
+  glDrawElements,
+  glDrawPixels,
+  glDrawRangeElements,
+  glEdgeFlag,
+  glEdgeFlagPointer,
+  glEdgeFlagv,
+  glEnable,
+  glEnableClientState,
+  glEnableVertexAttribArray,
+  glEnablei,
+  glEnd,
+  glEndConditionalRender,
+  glEndList,
+  glEndQuery,
+  glEndTransformFeedback,
+  glEvalCoord1d,
+  glEvalCoord1dv,
+  glEvalCoord1f,
+  glEvalCoord1fv,
+  glEvalCoord2d,
+  glEvalCoord2dv,
+  glEvalCoord2f,
+  glEvalCoord2fv,
+  glEvalMesh1,
+  glEvalMesh2,
+  glEvalPoint1,
+  glEvalPoint2,
+  glFeedbackBuffer,
+  glFinish,
+  glFlush,
+  glFlushMappedBufferRange,
+  glFogCoordPointer,
+  glFogCoordd,
+  glFogCoorddv,
+  glFogCoordf,
+  glFogCoordfv,
+  glFogf,
+  glFogfv,
+  glFogi,
+  glFogiv,
+  glFramebufferRenderbuffer,
+  glFramebufferTexture1D,
+  glFramebufferTexture2D,
+  glFramebufferTexture3D,
+  glFramebufferTextureLayer,
+  glFrontFace,
+  glFrustum,
+  glGenBuffers,
+  glGenFramebuffers,
+  glGenLists,
+  glGenQueries,
+  glGenRenderbuffers,
+  glGenTextures,
+  glGenVertexArrays,
+  glGenerateMipmap,
+  glGetActiveAttrib,
+  glGetActiveUniform,
+  glGetAttachedShaders,
+  glGetAttribLocation,
+  glGetBooleani_v,
+  glGetBooleanv,
+  glGetBufferParameteriv,
+  glGetBufferPointerv,
+  glGetBufferSubData,
+  glGetClipPlane,
+  glGetCompressedTexImage,
+  glGetDoublev,
+  glGetError,
+  glGetFloatv,
+  glGetFragDataLocation,
+  glGetFramebufferAttachmentParameteriv,
+  glGetIntegeri_v,
+  glGetIntegerv,
+  glGetLightfv,
+  glGetLightiv,
+  glGetMapdv,
+  glGetMapfv,
+  glGetMapiv,
+  glGetMaterialfv,
+  glGetMaterialiv,
+  glGetPixelMapfv,
+  glGetPixelMapuiv,
+  glGetPixelMapusv,
+  glGetPointerv,
+  glGetPolygonStipple,
+  glGetProgramInfoLog,
+  glGetProgramiv,
+  glGetQueryObjectiv,
+  glGetQueryObjectuiv,
+  glGetQueryiv,
+  glGetRenderbufferParameteriv,
+  glGetShaderInfoLog,
+  glGetShaderSource,
+  glGetShaderiv,
+  glGetString,
+  glGetStringi,
+  glGetTexEnvfv,
+  glGetTexEnviv,
+  glGetTexGendv,
+  glGetTexGenfv,
+  glGetTexGeniv,
+  glGetTexImage,
+  glGetTexLevelParameterfv,
+  glGetTexLevelParameteriv,
+  glGetTexParameterIiv,
+  glGetTexParameterIuiv,
+  glGetTexParameterfv,
+  glGetTexParameteriv,
+  glGetTransformFeedbackVarying,
+  glGetUniformLocation,
+  glGetUniformfv,
+  glGetUniformiv,
+  glGetUniformuiv,
+  glGetVertexAttribIiv,
+  glGetVertexAttribIuiv,
+  glGetVertexAttribPointerv,
+  glGetVertexAttribdv,
+  glGetVertexAttribfv,
+  glGetVertexAttribiv,
+  glHint,
+  glIndexMask,
+  glIndexPointer,
+  glIndexd,
+  glIndexdv,
+  glIndexf,
+  glIndexfv,
+  glIndexi,
+  glIndexiv,
+  glIndexs,
+  glIndexsv,
+  glIndexub,
+  glIndexubv,
+  glInitNames,
+  glInterleavedArrays,
+  glIsBuffer,
+  glIsEnabled,
+  glIsEnabledi,
+  glIsFramebuffer,
+  glIsList,
+  glIsProgram,
+  glIsQuery,
+  glIsRenderbuffer,
+  glIsShader,
+  glIsTexture,
+  glIsVertexArray,
+  glLightModelf,
+  glLightModelfv,
+  glLightModeli,
+  glLightModeliv,
+  glLightf,
+  glLightfv,
+  glLighti,
+  glLightiv,
+  glLineStipple,
+  glLineWidth,
+  glLinkProgram,
+  glListBase,
+  glLoadIdentity,
+  glLoadMatrixd,
+  glLoadMatrixf,
+  glLoadName,
+  glLoadTransposeMatrixd,
+  glLoadTransposeMatrixf,
+  glLogicOp,
+  glMap1d,
+  glMap1f,
+  glMap2d,
+  glMap2f,
+  glMapBuffer,
+  glMapBufferRange,
+  glMapGrid1d,
+  glMapGrid1f,
+  glMapGrid2d,
+  glMapGrid2f,
+  glMaterialf,
+  glMaterialfv,
+  glMateriali,
+  glMaterialiv,
+  glMatrixMode,
+  glMultMatrixd,
+  glMultMatrixf,
+  glMultTransposeMatrixd,
+  glMultTransposeMatrixf,
+  glMultiDrawArrays,
+  glMultiDrawElements,
+  glMultiTexCoord1d,
+  glMultiTexCoord1dv,
+  glMultiTexCoord1f,
+  glMultiTexCoord1fv,
+  glMultiTexCoord1i,
+  glMultiTexCoord1iv,
+  glMultiTexCoord1s,
+  glMultiTexCoord1sv,
+  glMultiTexCoord2d,
+  glMultiTexCoord2dv,
+  glMultiTexCoord2f,
+  glMultiTexCoord2fv,
+  glMultiTexCoord2i,
+  glMultiTexCoord2iv,
+  glMultiTexCoord2s,
+  glMultiTexCoord2sv,
+  glMultiTexCoord3d,
+  glMultiTexCoord3dv,
+  glMultiTexCoord3f,
+  glMultiTexCoord3fv,
+  glMultiTexCoord3i,
+  glMultiTexCoord3iv,
+  glMultiTexCoord3s,
+  glMultiTexCoord3sv,
+  glMultiTexCoord4d,
+  glMultiTexCoord4dv,
+  glMultiTexCoord4f,
+  glMultiTexCoord4fv,
+  glMultiTexCoord4i,
+  glMultiTexCoord4iv,
+  glMultiTexCoord4s,
+  glMultiTexCoord4sv,
+  glNewList,
+  glNormal3b,
+  glNormal3bv,
+  glNormal3d,
+  glNormal3dv,
+  glNormal3f,
+  glNormal3fv,
+  glNormal3i,
+  glNormal3iv,
+  glNormal3s,
+  glNormal3sv,
+  glNormalPointer,
+  glOrtho,
+  glPassThrough,
+  glPixelMapfv,
+  glPixelMapuiv,
+  glPixelMapusv,
+  glPixelStoref,
+  glPixelStorei,
+  glPixelTransferf,
+  glPixelTransferi,
+  glPixelZoom,
+  glPointParameterf,
+  glPointParameterfv,
+  glPointParameteri,
+  glPointParameteriv,
+  glPointSize,
+  glPolygonMode,
+  glPolygonOffset,
+  glPolygonStipple,
+  glPopAttrib,
+  glPopClientAttrib,
+  glPopMatrix,
+  glPopName,
+  glPrioritizeTextures,
+  glPushAttrib,
+  glPushClientAttrib,
+  glPushMatrix,
+  glPushName,
+  glRasterPos2d,
+  glRasterPos2dv,
+  glRasterPos2f,
+  glRasterPos2fv,
+  glRasterPos2i,
+  glRasterPos2iv,
+  glRasterPos2s,
+  glRasterPos2sv,
+  glRasterPos3d,
+  glRasterPos3dv,
+  glRasterPos3f,
+  glRasterPos3fv,
+  glRasterPos3i,
+  glRasterPos3iv,
+  glRasterPos3s,
+  glRasterPos3sv,
+  glRasterPos4d,
+  glRasterPos4dv,
+  glRasterPos4f,
+  glRasterPos4fv,
+  glRasterPos4i,
+  glRasterPos4iv,
+  glRasterPos4s,
+  glRasterPos4sv,
+  glReadBuffer,
+  glReadPixels,
+  glRectd,
+  glRectdv,
+  glRectf,
+  glRectfv,
+  glRecti,
+  glRectiv,
+  glRects,
+  glRectsv,
+  glRenderMode,
+  glRenderbufferStorage,
+  glRenderbufferStorageMultisample,
+  glRotated,
+  glRotatef,
+  glSampleCoverage,
+  glScaled,
+  glScalef,
+  glScissor,
+  glSecondaryColor3b,
+  glSecondaryColor3bv,
+  glSecondaryColor3d,
+  glSecondaryColor3dv,
+  glSecondaryColor3f,
+  glSecondaryColor3fv,
+  glSecondaryColor3i,
+  glSecondaryColor3iv,
+  glSecondaryColor3s,
+  glSecondaryColor3sv,
+  glSecondaryColor3ub,
+  glSecondaryColor3ubv,
+  glSecondaryColor3ui,
+  glSecondaryColor3uiv,
+  glSecondaryColor3us,
+  glSecondaryColor3usv,
+  glSecondaryColorPointer,
+  glSelectBuffer,
+  glShadeModel,
+  glShaderSource,
+  glStencilFunc,
+  glStencilFuncSeparate,
+  glStencilMask,
+  glStencilMaskSeparate,
+  glStencilOp,
+  glStencilOpSeparate,
+  glTexCoord1d,
+  glTexCoord1dv,
+  glTexCoord1f,
+  glTexCoord1fv,
+  glTexCoord1i,
+  glTexCoord1iv,
+  glTexCoord1s,
+  glTexCoord1sv,
+  glTexCoord2d,
+  glTexCoord2dv,
+  glTexCoord2f,
+  glTexCoord2fv,
+  glTexCoord2i,
+  glTexCoord2iv,
+  glTexCoord2s,
+  glTexCoord2sv,
+  glTexCoord3d,
+  glTexCoord3dv,
+  glTexCoord3f,
+  glTexCoord3fv,
+  glTexCoord3i,
+  glTexCoord3iv,
+  glTexCoord3s,
+  glTexCoord3sv,
+  glTexCoord4d,
+  glTexCoord4dv,
+  glTexCoord4f,
+  glTexCoord4fv,
+  glTexCoord4i,
+  glTexCoord4iv,
+  glTexCoord4s,
+  glTexCoord4sv,
+  glTexCoordPointer,
+  glTexEnvf,
+  glTexEnvfv,
+  glTexEnvi,
+  glTexEnviv,
+  glTexGend,
+  glTexGendv,
+  glTexGenf,
+  glTexGenfv,
+  glTexGeni,
+  glTexGeniv,
+  glTexImage1D,
+  glTexImage2D,
+  glTexImage3D,
+  glTexParameterIiv,
+  glTexParameterIuiv,
+  glTexParameterf,
+  glTexParameterfv,
+  glTexParameteri,
+  glTexParameteriv,
+  glTexSubImage1D,
+  glTexSubImage2D,
+  glTexSubImage3D,
+  glTransformFeedbackVaryings,
+  glTranslated,
+  glTranslatef,
+  glUniform1f,
+  glUniform1fv,
+  glUniform1i,
+  glUniform1iv,
+  glUniform1ui,
+  glUniform1uiv,
+  glUniform2f,
+  glUniform2fv,
+  glUniform2i,
+  glUniform2iv,
+  glUniform2ui,
+  glUniform2uiv,
+  glUniform3f,
+  glUniform3fv,
+  glUniform3i,
+  glUniform3iv,
+  glUniform3ui,
+  glUniform3uiv,
+  glUniform4f,
+  glUniform4fv,
+  glUniform4i,
+  glUniform4iv,
+  glUniform4ui,
+  glUniform4uiv,
+  glUniformMatrix2fv,
+  glUniformMatrix2x3fv,
+  glUniformMatrix2x4fv,
+  glUniformMatrix3fv,
+  glUniformMatrix3x2fv,
+  glUniformMatrix3x4fv,
+  glUniformMatrix4fv,
+  glUniformMatrix4x2fv,
+  glUniformMatrix4x3fv,
+  glUnmapBuffer,
+  glUseProgram,
+  glValidateProgram,
+  glVertex2d,
+  glVertex2dv,
+  glVertex2f,
+  glVertex2fv,
+  glVertex2i,
+  glVertex2iv,
+  glVertex2s,
+  glVertex2sv,
+  glVertex3d,
+  glVertex3dv,
+  glVertex3f,
+  glVertex3fv,
+  glVertex3i,
+  glVertex3iv,
+  glVertex3s,
+  glVertex3sv,
+  glVertex4d,
+  glVertex4dv,
+  glVertex4f,
+  glVertex4fv,
+  glVertex4i,
+  glVertex4iv,
+  glVertex4s,
+  glVertex4sv,
+  glVertexAttrib1d,
+  glVertexAttrib1dv,
+  glVertexAttrib1f,
+  glVertexAttrib1fv,
+  glVertexAttrib1s,
+  glVertexAttrib1sv,
+  glVertexAttrib2d,
+  glVertexAttrib2dv,
+  glVertexAttrib2f,
+  glVertexAttrib2fv,
+  glVertexAttrib2s,
+  glVertexAttrib2sv,
+  glVertexAttrib3d,
+  glVertexAttrib3dv,
+  glVertexAttrib3f,
+  glVertexAttrib3fv,
+  glVertexAttrib3s,
+  glVertexAttrib3sv,
+  glVertexAttrib4Nbv,
+  glVertexAttrib4Niv,
+  glVertexAttrib4Nsv,
+  glVertexAttrib4Nub,
+  glVertexAttrib4Nubv,
+  glVertexAttrib4Nuiv,
+  glVertexAttrib4Nusv,
+  glVertexAttrib4bv,
+  glVertexAttrib4d,
+  glVertexAttrib4dv,
+  glVertexAttrib4f,
+  glVertexAttrib4fv,
+  glVertexAttrib4iv,
+  glVertexAttrib4s,
+  glVertexAttrib4sv,
+  glVertexAttrib4ubv,
+  glVertexAttrib4uiv,
+  glVertexAttrib4usv,
+  glVertexAttribI1i,
+  glVertexAttribI1iv,
+  glVertexAttribI1ui,
+  glVertexAttribI1uiv,
+  glVertexAttribI2i,
+  glVertexAttribI2iv,
+  glVertexAttribI2ui,
+  glVertexAttribI2uiv,
+  glVertexAttribI3i,
+  glVertexAttribI3iv,
+  glVertexAttribI3ui,
+  glVertexAttribI3uiv,
+  glVertexAttribI4bv,
+  glVertexAttribI4i,
+  glVertexAttribI4iv,
+  glVertexAttribI4sv,
+  glVertexAttribI4ubv,
+  glVertexAttribI4ui,
+  glVertexAttribI4uiv,
+  glVertexAttribI4usv,
+  glVertexAttribIPointer,
+  glVertexAttribPointer,
+  glVertexPointer,
+  glViewport,
+  glWindowPos2d,
+  glWindowPos2dv,
+  glWindowPos2f,
+  glWindowPos2fv,
+  glWindowPos2i,
+  glWindowPos2iv,
+  glWindowPos2s,
+  glWindowPos2sv,
+  glWindowPos3d,
+  glWindowPos3dv,
+  glWindowPos3f,
+  glWindowPos3fv,
+  glWindowPos3i,
+  glWindowPos3iv,
+  glWindowPos3s,
+  glWindowPos3sv
+) where
+
+import Graphics.GL.Types
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/Core31.hs b/src/Graphics/GL/Core31.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Core31.hs
@@ -0,0 +1,1858 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Core31
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Core31 (
+  -- * Types
+  GLbitfield,
+  GLboolean,
+  GLbyte,
+  GLchar,
+  GLclampd,
+  GLclampf,
+  GLdouble,
+  GLenum,
+  GLfloat,
+  GLhalf,
+  GLint,
+  GLintptr,
+  GLshort,
+  GLsizei,
+  GLsizeiptr,
+  GLubyte,
+  GLuint,
+  GLushort,
+  GLvoid,
+  -- * Enums
+  pattern GL_2D,
+  pattern GL_2_BYTES,
+  pattern GL_3D,
+  pattern GL_3D_COLOR,
+  pattern GL_3D_COLOR_TEXTURE,
+  pattern GL_3_BYTES,
+  pattern GL_4D_COLOR_TEXTURE,
+  pattern GL_4_BYTES,
+  pattern GL_ACCUM,
+  pattern GL_ACCUM_ALPHA_BITS,
+  pattern GL_ACCUM_BLUE_BITS,
+  pattern GL_ACCUM_BUFFER_BIT,
+  pattern GL_ACCUM_CLEAR_VALUE,
+  pattern GL_ACCUM_GREEN_BITS,
+  pattern GL_ACCUM_RED_BITS,
+  pattern GL_ACTIVE_ATTRIBUTES,
+  pattern GL_ACTIVE_ATTRIBUTE_MAX_LENGTH,
+  pattern GL_ACTIVE_TEXTURE,
+  pattern GL_ACTIVE_UNIFORMS,
+  pattern GL_ACTIVE_UNIFORM_BLOCKS,
+  pattern GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH,
+  pattern GL_ACTIVE_UNIFORM_MAX_LENGTH,
+  pattern GL_ADD,
+  pattern GL_ADD_SIGNED,
+  pattern GL_ALIASED_LINE_WIDTH_RANGE,
+  pattern GL_ALIASED_POINT_SIZE_RANGE,
+  pattern GL_ALL_ATTRIB_BITS,
+  pattern GL_ALPHA,
+  pattern GL_ALPHA12,
+  pattern GL_ALPHA16,
+  pattern GL_ALPHA4,
+  pattern GL_ALPHA8,
+  pattern GL_ALPHA_BIAS,
+  pattern GL_ALPHA_BITS,
+  pattern GL_ALPHA_INTEGER,
+  pattern GL_ALPHA_SCALE,
+  pattern GL_ALPHA_TEST,
+  pattern GL_ALPHA_TEST_FUNC,
+  pattern GL_ALPHA_TEST_REF,
+  pattern GL_ALWAYS,
+  pattern GL_AMBIENT,
+  pattern GL_AMBIENT_AND_DIFFUSE,
+  pattern GL_AND,
+  pattern GL_AND_INVERTED,
+  pattern GL_AND_REVERSE,
+  pattern GL_ARRAY_BUFFER,
+  pattern GL_ARRAY_BUFFER_BINDING,
+  pattern GL_ATTACHED_SHADERS,
+  pattern GL_ATTRIB_STACK_DEPTH,
+  pattern GL_AUTO_NORMAL,
+  pattern GL_AUX0,
+  pattern GL_AUX1,
+  pattern GL_AUX2,
+  pattern GL_AUX3,
+  pattern GL_AUX_BUFFERS,
+  pattern GL_BACK,
+  pattern GL_BACK_LEFT,
+  pattern GL_BACK_RIGHT,
+  pattern GL_BGR,
+  pattern GL_BGRA,
+  pattern GL_BGRA_INTEGER,
+  pattern GL_BGR_INTEGER,
+  pattern GL_BITMAP,
+  pattern GL_BITMAP_TOKEN,
+  pattern GL_BLEND,
+  pattern GL_BLEND_COLOR,
+  pattern GL_BLEND_DST,
+  pattern GL_BLEND_DST_ALPHA,
+  pattern GL_BLEND_DST_RGB,
+  pattern GL_BLEND_EQUATION,
+  pattern GL_BLEND_EQUATION_ALPHA,
+  pattern GL_BLEND_EQUATION_RGB,
+  pattern GL_BLEND_SRC,
+  pattern GL_BLEND_SRC_ALPHA,
+  pattern GL_BLEND_SRC_RGB,
+  pattern GL_BLUE,
+  pattern GL_BLUE_BIAS,
+  pattern GL_BLUE_BITS,
+  pattern GL_BLUE_INTEGER,
+  pattern GL_BLUE_SCALE,
+  pattern GL_BOOL,
+  pattern GL_BOOL_VEC2,
+  pattern GL_BOOL_VEC3,
+  pattern GL_BOOL_VEC4,
+  pattern GL_BUFFER_ACCESS,
+  pattern GL_BUFFER_ACCESS_FLAGS,
+  pattern GL_BUFFER_MAPPED,
+  pattern GL_BUFFER_MAP_LENGTH,
+  pattern GL_BUFFER_MAP_OFFSET,
+  pattern GL_BUFFER_MAP_POINTER,
+  pattern GL_BUFFER_SIZE,
+  pattern GL_BUFFER_USAGE,
+  pattern GL_BYTE,
+  pattern GL_C3F_V3F,
+  pattern GL_C4F_N3F_V3F,
+  pattern GL_C4UB_V2F,
+  pattern GL_C4UB_V3F,
+  pattern GL_CCW,
+  pattern GL_CLAMP,
+  pattern GL_CLAMP_FRAGMENT_COLOR,
+  pattern GL_CLAMP_READ_COLOR,
+  pattern GL_CLAMP_TO_BORDER,
+  pattern GL_CLAMP_TO_EDGE,
+  pattern GL_CLAMP_VERTEX_COLOR,
+  pattern GL_CLEAR,
+  pattern GL_CLIENT_ACTIVE_TEXTURE,
+  pattern GL_CLIENT_ALL_ATTRIB_BITS,
+  pattern GL_CLIENT_ATTRIB_STACK_DEPTH,
+  pattern GL_CLIENT_PIXEL_STORE_BIT,
+  pattern GL_CLIENT_VERTEX_ARRAY_BIT,
+  pattern GL_CLIP_DISTANCE0,
+  pattern GL_CLIP_DISTANCE1,
+  pattern GL_CLIP_DISTANCE2,
+  pattern GL_CLIP_DISTANCE3,
+  pattern GL_CLIP_DISTANCE4,
+  pattern GL_CLIP_DISTANCE5,
+  pattern GL_CLIP_DISTANCE6,
+  pattern GL_CLIP_DISTANCE7,
+  pattern GL_CLIP_PLANE0,
+  pattern GL_CLIP_PLANE1,
+  pattern GL_CLIP_PLANE2,
+  pattern GL_CLIP_PLANE3,
+  pattern GL_CLIP_PLANE4,
+  pattern GL_CLIP_PLANE5,
+  pattern GL_COEFF,
+  pattern GL_COLOR,
+  pattern GL_COLOR_ARRAY,
+  pattern GL_COLOR_ARRAY_BUFFER_BINDING,
+  pattern GL_COLOR_ARRAY_POINTER,
+  pattern GL_COLOR_ARRAY_SIZE,
+  pattern GL_COLOR_ARRAY_STRIDE,
+  pattern GL_COLOR_ARRAY_TYPE,
+  pattern GL_COLOR_ATTACHMENT0,
+  pattern GL_COLOR_ATTACHMENT1,
+  pattern GL_COLOR_ATTACHMENT10,
+  pattern GL_COLOR_ATTACHMENT11,
+  pattern GL_COLOR_ATTACHMENT12,
+  pattern GL_COLOR_ATTACHMENT13,
+  pattern GL_COLOR_ATTACHMENT14,
+  pattern GL_COLOR_ATTACHMENT15,
+  pattern GL_COLOR_ATTACHMENT16,
+  pattern GL_COLOR_ATTACHMENT17,
+  pattern GL_COLOR_ATTACHMENT18,
+  pattern GL_COLOR_ATTACHMENT19,
+  pattern GL_COLOR_ATTACHMENT2,
+  pattern GL_COLOR_ATTACHMENT20,
+  pattern GL_COLOR_ATTACHMENT21,
+  pattern GL_COLOR_ATTACHMENT22,
+  pattern GL_COLOR_ATTACHMENT23,
+  pattern GL_COLOR_ATTACHMENT24,
+  pattern GL_COLOR_ATTACHMENT25,
+  pattern GL_COLOR_ATTACHMENT26,
+  pattern GL_COLOR_ATTACHMENT27,
+  pattern GL_COLOR_ATTACHMENT28,
+  pattern GL_COLOR_ATTACHMENT29,
+  pattern GL_COLOR_ATTACHMENT3,
+  pattern GL_COLOR_ATTACHMENT30,
+  pattern GL_COLOR_ATTACHMENT31,
+  pattern GL_COLOR_ATTACHMENT4,
+  pattern GL_COLOR_ATTACHMENT5,
+  pattern GL_COLOR_ATTACHMENT6,
+  pattern GL_COLOR_ATTACHMENT7,
+  pattern GL_COLOR_ATTACHMENT8,
+  pattern GL_COLOR_ATTACHMENT9,
+  pattern GL_COLOR_BUFFER_BIT,
+  pattern GL_COLOR_CLEAR_VALUE,
+  pattern GL_COLOR_INDEX,
+  pattern GL_COLOR_INDEXES,
+  pattern GL_COLOR_LOGIC_OP,
+  pattern GL_COLOR_MATERIAL,
+  pattern GL_COLOR_MATERIAL_FACE,
+  pattern GL_COLOR_MATERIAL_PARAMETER,
+  pattern GL_COLOR_SUM,
+  pattern GL_COLOR_WRITEMASK,
+  pattern GL_COMBINE,
+  pattern GL_COMBINE_ALPHA,
+  pattern GL_COMBINE_RGB,
+  pattern GL_COMPARE_REF_TO_TEXTURE,
+  pattern GL_COMPARE_R_TO_TEXTURE,
+  pattern GL_COMPILE,
+  pattern GL_COMPILE_AND_EXECUTE,
+  pattern GL_COMPILE_STATUS,
+  pattern GL_COMPRESSED_ALPHA,
+  pattern GL_COMPRESSED_INTENSITY,
+  pattern GL_COMPRESSED_LUMINANCE,
+  pattern GL_COMPRESSED_LUMINANCE_ALPHA,
+  pattern GL_COMPRESSED_RED,
+  pattern GL_COMPRESSED_RED_RGTC1,
+  pattern GL_COMPRESSED_RG,
+  pattern GL_COMPRESSED_RGB,
+  pattern GL_COMPRESSED_RGBA,
+  pattern GL_COMPRESSED_RG_RGTC2,
+  pattern GL_COMPRESSED_SIGNED_RED_RGTC1,
+  pattern GL_COMPRESSED_SIGNED_RG_RGTC2,
+  pattern GL_COMPRESSED_SLUMINANCE,
+  pattern GL_COMPRESSED_SLUMINANCE_ALPHA,
+  pattern GL_COMPRESSED_SRGB,
+  pattern GL_COMPRESSED_SRGB_ALPHA,
+  pattern GL_COMPRESSED_TEXTURE_FORMATS,
+  pattern GL_CONSTANT,
+  pattern GL_CONSTANT_ALPHA,
+  pattern GL_CONSTANT_ATTENUATION,
+  pattern GL_CONSTANT_COLOR,
+  pattern GL_CONTEXT_FLAGS,
+  pattern GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT,
+  pattern GL_COORD_REPLACE,
+  pattern GL_COPY,
+  pattern GL_COPY_INVERTED,
+  pattern GL_COPY_PIXEL_TOKEN,
+  pattern GL_COPY_READ_BUFFER,
+  pattern GL_COPY_WRITE_BUFFER,
+  pattern GL_CULL_FACE,
+  pattern GL_CULL_FACE_MODE,
+  pattern GL_CURRENT_BIT,
+  pattern GL_CURRENT_COLOR,
+  pattern GL_CURRENT_FOG_COORD,
+  pattern GL_CURRENT_FOG_COORDINATE,
+  pattern GL_CURRENT_INDEX,
+  pattern GL_CURRENT_NORMAL,
+  pattern GL_CURRENT_PROGRAM,
+  pattern GL_CURRENT_QUERY,
+  pattern GL_CURRENT_RASTER_COLOR,
+  pattern GL_CURRENT_RASTER_DISTANCE,
+  pattern GL_CURRENT_RASTER_INDEX,
+  pattern GL_CURRENT_RASTER_POSITION,
+  pattern GL_CURRENT_RASTER_POSITION_VALID,
+  pattern GL_CURRENT_RASTER_SECONDARY_COLOR,
+  pattern GL_CURRENT_RASTER_TEXTURE_COORDS,
+  pattern GL_CURRENT_SECONDARY_COLOR,
+  pattern GL_CURRENT_TEXTURE_COORDS,
+  pattern GL_CURRENT_VERTEX_ATTRIB,
+  pattern GL_CW,
+  pattern GL_DECAL,
+  pattern GL_DECR,
+  pattern GL_DECR_WRAP,
+  pattern GL_DELETE_STATUS,
+  pattern GL_DEPTH,
+  pattern GL_DEPTH24_STENCIL8,
+  pattern GL_DEPTH32F_STENCIL8,
+  pattern GL_DEPTH_ATTACHMENT,
+  pattern GL_DEPTH_BIAS,
+  pattern GL_DEPTH_BITS,
+  pattern GL_DEPTH_BUFFER_BIT,
+  pattern GL_DEPTH_CLEAR_VALUE,
+  pattern GL_DEPTH_COMPONENT,
+  pattern GL_DEPTH_COMPONENT16,
+  pattern GL_DEPTH_COMPONENT24,
+  pattern GL_DEPTH_COMPONENT32,
+  pattern GL_DEPTH_COMPONENT32F,
+  pattern GL_DEPTH_FUNC,
+  pattern GL_DEPTH_RANGE,
+  pattern GL_DEPTH_SCALE,
+  pattern GL_DEPTH_STENCIL,
+  pattern GL_DEPTH_STENCIL_ATTACHMENT,
+  pattern GL_DEPTH_TEST,
+  pattern GL_DEPTH_TEXTURE_MODE,
+  pattern GL_DEPTH_WRITEMASK,
+  pattern GL_DIFFUSE,
+  pattern GL_DITHER,
+  pattern GL_DOMAIN,
+  pattern GL_DONT_CARE,
+  pattern GL_DOT3_RGB,
+  pattern GL_DOT3_RGBA,
+  pattern GL_DOUBLE,
+  pattern GL_DOUBLEBUFFER,
+  pattern GL_DRAW_BUFFER,
+  pattern GL_DRAW_BUFFER0,
+  pattern GL_DRAW_BUFFER1,
+  pattern GL_DRAW_BUFFER10,
+  pattern GL_DRAW_BUFFER11,
+  pattern GL_DRAW_BUFFER12,
+  pattern GL_DRAW_BUFFER13,
+  pattern GL_DRAW_BUFFER14,
+  pattern GL_DRAW_BUFFER15,
+  pattern GL_DRAW_BUFFER2,
+  pattern GL_DRAW_BUFFER3,
+  pattern GL_DRAW_BUFFER4,
+  pattern GL_DRAW_BUFFER5,
+  pattern GL_DRAW_BUFFER6,
+  pattern GL_DRAW_BUFFER7,
+  pattern GL_DRAW_BUFFER8,
+  pattern GL_DRAW_BUFFER9,
+  pattern GL_DRAW_FRAMEBUFFER,
+  pattern GL_DRAW_FRAMEBUFFER_BINDING,
+  pattern GL_DRAW_PIXEL_TOKEN,
+  pattern GL_DST_ALPHA,
+  pattern GL_DST_COLOR,
+  pattern GL_DYNAMIC_COPY,
+  pattern GL_DYNAMIC_DRAW,
+  pattern GL_DYNAMIC_READ,
+  pattern GL_EDGE_FLAG,
+  pattern GL_EDGE_FLAG_ARRAY,
+  pattern GL_EDGE_FLAG_ARRAY_BUFFER_BINDING,
+  pattern GL_EDGE_FLAG_ARRAY_POINTER,
+  pattern GL_EDGE_FLAG_ARRAY_STRIDE,
+  pattern GL_ELEMENT_ARRAY_BUFFER,
+  pattern GL_ELEMENT_ARRAY_BUFFER_BINDING,
+  pattern GL_EMISSION,
+  pattern GL_ENABLE_BIT,
+  pattern GL_EQUAL,
+  pattern GL_EQUIV,
+  pattern GL_EVAL_BIT,
+  pattern GL_EXP,
+  pattern GL_EXP2,
+  pattern GL_EXTENSIONS,
+  pattern GL_EYE_LINEAR,
+  pattern GL_EYE_PLANE,
+  pattern GL_FALSE,
+  pattern GL_FASTEST,
+  pattern GL_FEEDBACK,
+  pattern GL_FEEDBACK_BUFFER_POINTER,
+  pattern GL_FEEDBACK_BUFFER_SIZE,
+  pattern GL_FEEDBACK_BUFFER_TYPE,
+  pattern GL_FILL,
+  pattern GL_FIXED_ONLY,
+  pattern GL_FLAT,
+  pattern GL_FLOAT,
+  pattern GL_FLOAT_32_UNSIGNED_INT_24_8_REV,
+  pattern GL_FLOAT_MAT2,
+  pattern GL_FLOAT_MAT2x3,
+  pattern GL_FLOAT_MAT2x4,
+  pattern GL_FLOAT_MAT3,
+  pattern GL_FLOAT_MAT3x2,
+  pattern GL_FLOAT_MAT3x4,
+  pattern GL_FLOAT_MAT4,
+  pattern GL_FLOAT_MAT4x2,
+  pattern GL_FLOAT_MAT4x3,
+  pattern GL_FLOAT_VEC2,
+  pattern GL_FLOAT_VEC3,
+  pattern GL_FLOAT_VEC4,
+  pattern GL_FOG,
+  pattern GL_FOG_BIT,
+  pattern GL_FOG_COLOR,
+  pattern GL_FOG_COORD,
+  pattern GL_FOG_COORDINATE,
+  pattern GL_FOG_COORDINATE_ARRAY,
+  pattern GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING,
+  pattern GL_FOG_COORDINATE_ARRAY_POINTER,
+  pattern GL_FOG_COORDINATE_ARRAY_STRIDE,
+  pattern GL_FOG_COORDINATE_ARRAY_TYPE,
+  pattern GL_FOG_COORDINATE_SOURCE,
+  pattern GL_FOG_COORD_ARRAY,
+  pattern GL_FOG_COORD_ARRAY_BUFFER_BINDING,
+  pattern GL_FOG_COORD_ARRAY_POINTER,
+  pattern GL_FOG_COORD_ARRAY_STRIDE,
+  pattern GL_FOG_COORD_ARRAY_TYPE,
+  pattern GL_FOG_COORD_SRC,
+  pattern GL_FOG_DENSITY,
+  pattern GL_FOG_END,
+  pattern GL_FOG_HINT,
+  pattern GL_FOG_INDEX,
+  pattern GL_FOG_MODE,
+  pattern GL_FOG_START,
+  pattern GL_FRAGMENT_DEPTH,
+  pattern GL_FRAGMENT_SHADER,
+  pattern GL_FRAGMENT_SHADER_DERIVATIVE_HINT,
+  pattern GL_FRAMEBUFFER,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL,
+  pattern GL_FRAMEBUFFER_BINDING,
+  pattern GL_FRAMEBUFFER_COMPLETE,
+  pattern GL_FRAMEBUFFER_DEFAULT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER,
+  pattern GL_FRAMEBUFFER_SRGB,
+  pattern GL_FRAMEBUFFER_UNDEFINED,
+  pattern GL_FRAMEBUFFER_UNSUPPORTED,
+  pattern GL_FRONT,
+  pattern GL_FRONT_AND_BACK,
+  pattern GL_FRONT_FACE,
+  pattern GL_FRONT_LEFT,
+  pattern GL_FRONT_RIGHT,
+  pattern GL_FUNC_ADD,
+  pattern GL_FUNC_REVERSE_SUBTRACT,
+  pattern GL_FUNC_SUBTRACT,
+  pattern GL_GENERATE_MIPMAP,
+  pattern GL_GENERATE_MIPMAP_HINT,
+  pattern GL_GEQUAL,
+  pattern GL_GREATER,
+  pattern GL_GREEN,
+  pattern GL_GREEN_BIAS,
+  pattern GL_GREEN_BITS,
+  pattern GL_GREEN_INTEGER,
+  pattern GL_GREEN_SCALE,
+  pattern GL_HALF_FLOAT,
+  pattern GL_HINT_BIT,
+  pattern GL_INCR,
+  pattern GL_INCR_WRAP,
+  pattern GL_INDEX,
+  pattern GL_INDEX_ARRAY,
+  pattern GL_INDEX_ARRAY_BUFFER_BINDING,
+  pattern GL_INDEX_ARRAY_POINTER,
+  pattern GL_INDEX_ARRAY_STRIDE,
+  pattern GL_INDEX_ARRAY_TYPE,
+  pattern GL_INDEX_BITS,
+  pattern GL_INDEX_CLEAR_VALUE,
+  pattern GL_INDEX_LOGIC_OP,
+  pattern GL_INDEX_MODE,
+  pattern GL_INDEX_OFFSET,
+  pattern GL_INDEX_SHIFT,
+  pattern GL_INDEX_WRITEMASK,
+  pattern GL_INFO_LOG_LENGTH,
+  pattern GL_INT,
+  pattern GL_INTENSITY,
+  pattern GL_INTENSITY12,
+  pattern GL_INTENSITY16,
+  pattern GL_INTENSITY4,
+  pattern GL_INTENSITY8,
+  pattern GL_INTERLEAVED_ATTRIBS,
+  pattern GL_INTERPOLATE,
+  pattern GL_INT_SAMPLER_1D,
+  pattern GL_INT_SAMPLER_1D_ARRAY,
+  pattern GL_INT_SAMPLER_2D,
+  pattern GL_INT_SAMPLER_2D_ARRAY,
+  pattern GL_INT_SAMPLER_2D_RECT,
+  pattern GL_INT_SAMPLER_3D,
+  pattern GL_INT_SAMPLER_BUFFER,
+  pattern GL_INT_SAMPLER_CUBE,
+  pattern GL_INT_VEC2,
+  pattern GL_INT_VEC3,
+  pattern GL_INT_VEC4,
+  pattern GL_INVALID_ENUM,
+  pattern GL_INVALID_FRAMEBUFFER_OPERATION,
+  pattern GL_INVALID_INDEX,
+  pattern GL_INVALID_OPERATION,
+  pattern GL_INVALID_VALUE,
+  pattern GL_INVERT,
+  pattern GL_KEEP,
+  pattern GL_LEFT,
+  pattern GL_LEQUAL,
+  pattern GL_LESS,
+  pattern GL_LIGHT0,
+  pattern GL_LIGHT1,
+  pattern GL_LIGHT2,
+  pattern GL_LIGHT3,
+  pattern GL_LIGHT4,
+  pattern GL_LIGHT5,
+  pattern GL_LIGHT6,
+  pattern GL_LIGHT7,
+  pattern GL_LIGHTING,
+  pattern GL_LIGHTING_BIT,
+  pattern GL_LIGHT_MODEL_AMBIENT,
+  pattern GL_LIGHT_MODEL_COLOR_CONTROL,
+  pattern GL_LIGHT_MODEL_LOCAL_VIEWER,
+  pattern GL_LIGHT_MODEL_TWO_SIDE,
+  pattern GL_LINE,
+  pattern GL_LINEAR,
+  pattern GL_LINEAR_ATTENUATION,
+  pattern GL_LINEAR_MIPMAP_LINEAR,
+  pattern GL_LINEAR_MIPMAP_NEAREST,
+  pattern GL_LINES,
+  pattern GL_LINE_BIT,
+  pattern GL_LINE_LOOP,
+  pattern GL_LINE_RESET_TOKEN,
+  pattern GL_LINE_SMOOTH,
+  pattern GL_LINE_SMOOTH_HINT,
+  pattern GL_LINE_STIPPLE,
+  pattern GL_LINE_STIPPLE_PATTERN,
+  pattern GL_LINE_STIPPLE_REPEAT,
+  pattern GL_LINE_STRIP,
+  pattern GL_LINE_TOKEN,
+  pattern GL_LINE_WIDTH,
+  pattern GL_LINE_WIDTH_GRANULARITY,
+  pattern GL_LINE_WIDTH_RANGE,
+  pattern GL_LINK_STATUS,
+  pattern GL_LIST_BASE,
+  pattern GL_LIST_BIT,
+  pattern GL_LIST_INDEX,
+  pattern GL_LIST_MODE,
+  pattern GL_LOAD,
+  pattern GL_LOGIC_OP,
+  pattern GL_LOGIC_OP_MODE,
+  pattern GL_LOWER_LEFT,
+  pattern GL_LUMINANCE,
+  pattern GL_LUMINANCE12,
+  pattern GL_LUMINANCE12_ALPHA12,
+  pattern GL_LUMINANCE12_ALPHA4,
+  pattern GL_LUMINANCE16,
+  pattern GL_LUMINANCE16_ALPHA16,
+  pattern GL_LUMINANCE4,
+  pattern GL_LUMINANCE4_ALPHA4,
+  pattern GL_LUMINANCE6_ALPHA2,
+  pattern GL_LUMINANCE8,
+  pattern GL_LUMINANCE8_ALPHA8,
+  pattern GL_LUMINANCE_ALPHA,
+  pattern GL_MAJOR_VERSION,
+  pattern GL_MAP1_COLOR_4,
+  pattern GL_MAP1_GRID_DOMAIN,
+  pattern GL_MAP1_GRID_SEGMENTS,
+  pattern GL_MAP1_INDEX,
+  pattern GL_MAP1_NORMAL,
+  pattern GL_MAP1_TEXTURE_COORD_1,
+  pattern GL_MAP1_TEXTURE_COORD_2,
+  pattern GL_MAP1_TEXTURE_COORD_3,
+  pattern GL_MAP1_TEXTURE_COORD_4,
+  pattern GL_MAP1_VERTEX_3,
+  pattern GL_MAP1_VERTEX_4,
+  pattern GL_MAP2_COLOR_4,
+  pattern GL_MAP2_GRID_DOMAIN,
+  pattern GL_MAP2_GRID_SEGMENTS,
+  pattern GL_MAP2_INDEX,
+  pattern GL_MAP2_NORMAL,
+  pattern GL_MAP2_TEXTURE_COORD_1,
+  pattern GL_MAP2_TEXTURE_COORD_2,
+  pattern GL_MAP2_TEXTURE_COORD_3,
+  pattern GL_MAP2_TEXTURE_COORD_4,
+  pattern GL_MAP2_VERTEX_3,
+  pattern GL_MAP2_VERTEX_4,
+  pattern GL_MAP_COLOR,
+  pattern GL_MAP_FLUSH_EXPLICIT_BIT,
+  pattern GL_MAP_INVALIDATE_BUFFER_BIT,
+  pattern GL_MAP_INVALIDATE_RANGE_BIT,
+  pattern GL_MAP_READ_BIT,
+  pattern GL_MAP_STENCIL,
+  pattern GL_MAP_UNSYNCHRONIZED_BIT,
+  pattern GL_MAP_WRITE_BIT,
+  pattern GL_MATRIX_MODE,
+  pattern GL_MAX,
+  pattern GL_MAX_3D_TEXTURE_SIZE,
+  pattern GL_MAX_ARRAY_TEXTURE_LAYERS,
+  pattern GL_MAX_ATTRIB_STACK_DEPTH,
+  pattern GL_MAX_CLIENT_ATTRIB_STACK_DEPTH,
+  pattern GL_MAX_CLIP_DISTANCES,
+  pattern GL_MAX_CLIP_PLANES,
+  pattern GL_MAX_COLOR_ATTACHMENTS,
+  pattern GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_COMBINED_UNIFORM_BLOCKS,
+  pattern GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS,
+  pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE,
+  pattern GL_MAX_DRAW_BUFFERS,
+  pattern GL_MAX_ELEMENTS_INDICES,
+  pattern GL_MAX_ELEMENTS_VERTICES,
+  pattern GL_MAX_EVAL_ORDER,
+  pattern GL_MAX_FRAGMENT_UNIFORM_BLOCKS,
+  pattern GL_MAX_FRAGMENT_UNIFORM_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_UNIFORM_BLOCKS,
+  pattern GL_MAX_LIGHTS,
+  pattern GL_MAX_LIST_NESTING,
+  pattern GL_MAX_MODELVIEW_STACK_DEPTH,
+  pattern GL_MAX_NAME_STACK_DEPTH,
+  pattern GL_MAX_PIXEL_MAP_TABLE,
+  pattern GL_MAX_PROGRAM_TEXEL_OFFSET,
+  pattern GL_MAX_PROJECTION_STACK_DEPTH,
+  pattern GL_MAX_RECTANGLE_TEXTURE_SIZE,
+  pattern GL_MAX_RENDERBUFFER_SIZE,
+  pattern GL_MAX_SAMPLES,
+  pattern GL_MAX_TEXTURE_BUFFER_SIZE,
+  pattern GL_MAX_TEXTURE_COORDS,
+  pattern GL_MAX_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_TEXTURE_LOD_BIAS,
+  pattern GL_MAX_TEXTURE_SIZE,
+  pattern GL_MAX_TEXTURE_STACK_DEPTH,
+  pattern GL_MAX_TEXTURE_UNITS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS,
+  pattern GL_MAX_UNIFORM_BLOCK_SIZE,
+  pattern GL_MAX_UNIFORM_BUFFER_BINDINGS,
+  pattern GL_MAX_VARYING_COMPONENTS,
+  pattern GL_MAX_VARYING_FLOATS,
+  pattern GL_MAX_VERTEX_ATTRIBS,
+  pattern GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_VERTEX_UNIFORM_BLOCKS,
+  pattern GL_MAX_VERTEX_UNIFORM_COMPONENTS,
+  pattern GL_MAX_VIEWPORT_DIMS,
+  pattern GL_MIN,
+  pattern GL_MINOR_VERSION,
+  pattern GL_MIN_PROGRAM_TEXEL_OFFSET,
+  pattern GL_MIRRORED_REPEAT,
+  pattern GL_MODELVIEW,
+  pattern GL_MODELVIEW_MATRIX,
+  pattern GL_MODELVIEW_STACK_DEPTH,
+  pattern GL_MODULATE,
+  pattern GL_MULT,
+  pattern GL_MULTISAMPLE,
+  pattern GL_MULTISAMPLE_BIT,
+  pattern GL_N3F_V3F,
+  pattern GL_NAME_STACK_DEPTH,
+  pattern GL_NAND,
+  pattern GL_NEAREST,
+  pattern GL_NEAREST_MIPMAP_LINEAR,
+  pattern GL_NEAREST_MIPMAP_NEAREST,
+  pattern GL_NEVER,
+  pattern GL_NICEST,
+  pattern GL_NONE,
+  pattern GL_NOOP,
+  pattern GL_NOR,
+  pattern GL_NORMALIZE,
+  pattern GL_NORMAL_ARRAY,
+  pattern GL_NORMAL_ARRAY_BUFFER_BINDING,
+  pattern GL_NORMAL_ARRAY_POINTER,
+  pattern GL_NORMAL_ARRAY_STRIDE,
+  pattern GL_NORMAL_ARRAY_TYPE,
+  pattern GL_NORMAL_MAP,
+  pattern GL_NOTEQUAL,
+  pattern GL_NO_ERROR,
+  pattern GL_NUM_COMPRESSED_TEXTURE_FORMATS,
+  pattern GL_NUM_EXTENSIONS,
+  pattern GL_OBJECT_LINEAR,
+  pattern GL_OBJECT_PLANE,
+  pattern GL_ONE,
+  pattern GL_ONE_MINUS_CONSTANT_ALPHA,
+  pattern GL_ONE_MINUS_CONSTANT_COLOR,
+  pattern GL_ONE_MINUS_DST_ALPHA,
+  pattern GL_ONE_MINUS_DST_COLOR,
+  pattern GL_ONE_MINUS_SRC_ALPHA,
+  pattern GL_ONE_MINUS_SRC_COLOR,
+  pattern GL_OPERAND0_ALPHA,
+  pattern GL_OPERAND0_RGB,
+  pattern GL_OPERAND1_ALPHA,
+  pattern GL_OPERAND1_RGB,
+  pattern GL_OPERAND2_ALPHA,
+  pattern GL_OPERAND2_RGB,
+  pattern GL_OR,
+  pattern GL_ORDER,
+  pattern GL_OR_INVERTED,
+  pattern GL_OR_REVERSE,
+  pattern GL_OUT_OF_MEMORY,
+  pattern GL_PACK_ALIGNMENT,
+  pattern GL_PACK_IMAGE_HEIGHT,
+  pattern GL_PACK_LSB_FIRST,
+  pattern GL_PACK_ROW_LENGTH,
+  pattern GL_PACK_SKIP_IMAGES,
+  pattern GL_PACK_SKIP_PIXELS,
+  pattern GL_PACK_SKIP_ROWS,
+  pattern GL_PACK_SWAP_BYTES,
+  pattern GL_PASS_THROUGH_TOKEN,
+  pattern GL_PERSPECTIVE_CORRECTION_HINT,
+  pattern GL_PIXEL_MAP_A_TO_A,
+  pattern GL_PIXEL_MAP_A_TO_A_SIZE,
+  pattern GL_PIXEL_MAP_B_TO_B,
+  pattern GL_PIXEL_MAP_B_TO_B_SIZE,
+  pattern GL_PIXEL_MAP_G_TO_G,
+  pattern GL_PIXEL_MAP_G_TO_G_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_A,
+  pattern GL_PIXEL_MAP_I_TO_A_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_B,
+  pattern GL_PIXEL_MAP_I_TO_B_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_G,
+  pattern GL_PIXEL_MAP_I_TO_G_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_I,
+  pattern GL_PIXEL_MAP_I_TO_I_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_R,
+  pattern GL_PIXEL_MAP_I_TO_R_SIZE,
+  pattern GL_PIXEL_MAP_R_TO_R,
+  pattern GL_PIXEL_MAP_R_TO_R_SIZE,
+  pattern GL_PIXEL_MAP_S_TO_S,
+  pattern GL_PIXEL_MAP_S_TO_S_SIZE,
+  pattern GL_PIXEL_MODE_BIT,
+  pattern GL_PIXEL_PACK_BUFFER,
+  pattern GL_PIXEL_PACK_BUFFER_BINDING,
+  pattern GL_PIXEL_UNPACK_BUFFER,
+  pattern GL_PIXEL_UNPACK_BUFFER_BINDING,
+  pattern GL_POINT,
+  pattern GL_POINTS,
+  pattern GL_POINT_BIT,
+  pattern GL_POINT_DISTANCE_ATTENUATION,
+  pattern GL_POINT_FADE_THRESHOLD_SIZE,
+  pattern GL_POINT_SIZE,
+  pattern GL_POINT_SIZE_GRANULARITY,
+  pattern GL_POINT_SIZE_MAX,
+  pattern GL_POINT_SIZE_MIN,
+  pattern GL_POINT_SIZE_RANGE,
+  pattern GL_POINT_SMOOTH,
+  pattern GL_POINT_SMOOTH_HINT,
+  pattern GL_POINT_SPRITE,
+  pattern GL_POINT_SPRITE_COORD_ORIGIN,
+  pattern GL_POINT_TOKEN,
+  pattern GL_POLYGON,
+  pattern GL_POLYGON_BIT,
+  pattern GL_POLYGON_MODE,
+  pattern GL_POLYGON_OFFSET_FACTOR,
+  pattern GL_POLYGON_OFFSET_FILL,
+  pattern GL_POLYGON_OFFSET_LINE,
+  pattern GL_POLYGON_OFFSET_POINT,
+  pattern GL_POLYGON_OFFSET_UNITS,
+  pattern GL_POLYGON_SMOOTH,
+  pattern GL_POLYGON_SMOOTH_HINT,
+  pattern GL_POLYGON_STIPPLE,
+  pattern GL_POLYGON_STIPPLE_BIT,
+  pattern GL_POLYGON_TOKEN,
+  pattern GL_POSITION,
+  pattern GL_PREVIOUS,
+  pattern GL_PRIMARY_COLOR,
+  pattern GL_PRIMITIVES_GENERATED,
+  pattern GL_PRIMITIVE_RESTART,
+  pattern GL_PRIMITIVE_RESTART_INDEX,
+  pattern GL_PROJECTION,
+  pattern GL_PROJECTION_MATRIX,
+  pattern GL_PROJECTION_STACK_DEPTH,
+  pattern GL_PROXY_TEXTURE_1D,
+  pattern GL_PROXY_TEXTURE_1D_ARRAY,
+  pattern GL_PROXY_TEXTURE_2D,
+  pattern GL_PROXY_TEXTURE_2D_ARRAY,
+  pattern GL_PROXY_TEXTURE_3D,
+  pattern GL_PROXY_TEXTURE_CUBE_MAP,
+  pattern GL_PROXY_TEXTURE_RECTANGLE,
+  pattern GL_Q,
+  pattern GL_QUADRATIC_ATTENUATION,
+  pattern GL_QUADS,
+  pattern GL_QUAD_STRIP,
+  pattern GL_QUERY_BY_REGION_NO_WAIT,
+  pattern GL_QUERY_BY_REGION_WAIT,
+  pattern GL_QUERY_COUNTER_BITS,
+  pattern GL_QUERY_NO_WAIT,
+  pattern GL_QUERY_RESULT,
+  pattern GL_QUERY_RESULT_AVAILABLE,
+  pattern GL_QUERY_WAIT,
+  pattern GL_R,
+  pattern GL_R11F_G11F_B10F,
+  pattern GL_R16,
+  pattern GL_R16F,
+  pattern GL_R16I,
+  pattern GL_R16UI,
+  pattern GL_R16_SNORM,
+  pattern GL_R32F,
+  pattern GL_R32I,
+  pattern GL_R32UI,
+  pattern GL_R3_G3_B2,
+  pattern GL_R8,
+  pattern GL_R8I,
+  pattern GL_R8UI,
+  pattern GL_R8_SNORM,
+  pattern GL_RASTERIZER_DISCARD,
+  pattern GL_READ_BUFFER,
+  pattern GL_READ_FRAMEBUFFER,
+  pattern GL_READ_FRAMEBUFFER_BINDING,
+  pattern GL_READ_ONLY,
+  pattern GL_READ_WRITE,
+  pattern GL_RED,
+  pattern GL_RED_BIAS,
+  pattern GL_RED_BITS,
+  pattern GL_RED_INTEGER,
+  pattern GL_RED_SCALE,
+  pattern GL_REFLECTION_MAP,
+  pattern GL_RENDER,
+  pattern GL_RENDERBUFFER,
+  pattern GL_RENDERBUFFER_ALPHA_SIZE,
+  pattern GL_RENDERBUFFER_BINDING,
+  pattern GL_RENDERBUFFER_BLUE_SIZE,
+  pattern GL_RENDERBUFFER_DEPTH_SIZE,
+  pattern GL_RENDERBUFFER_GREEN_SIZE,
+  pattern GL_RENDERBUFFER_HEIGHT,
+  pattern GL_RENDERBUFFER_INTERNAL_FORMAT,
+  pattern GL_RENDERBUFFER_RED_SIZE,
+  pattern GL_RENDERBUFFER_SAMPLES,
+  pattern GL_RENDERBUFFER_STENCIL_SIZE,
+  pattern GL_RENDERBUFFER_WIDTH,
+  pattern GL_RENDERER,
+  pattern GL_RENDER_MODE,
+  pattern GL_REPEAT,
+  pattern GL_REPLACE,
+  pattern GL_RESCALE_NORMAL,
+  pattern GL_RETURN,
+  pattern GL_RG,
+  pattern GL_RG16,
+  pattern GL_RG16F,
+  pattern GL_RG16I,
+  pattern GL_RG16UI,
+  pattern GL_RG16_SNORM,
+  pattern GL_RG32F,
+  pattern GL_RG32I,
+  pattern GL_RG32UI,
+  pattern GL_RG8,
+  pattern GL_RG8I,
+  pattern GL_RG8UI,
+  pattern GL_RG8_SNORM,
+  pattern GL_RGB,
+  pattern GL_RGB10,
+  pattern GL_RGB10_A2,
+  pattern GL_RGB12,
+  pattern GL_RGB16,
+  pattern GL_RGB16F,
+  pattern GL_RGB16I,
+  pattern GL_RGB16UI,
+  pattern GL_RGB16_SNORM,
+  pattern GL_RGB32F,
+  pattern GL_RGB32I,
+  pattern GL_RGB32UI,
+  pattern GL_RGB4,
+  pattern GL_RGB5,
+  pattern GL_RGB5_A1,
+  pattern GL_RGB8,
+  pattern GL_RGB8I,
+  pattern GL_RGB8UI,
+  pattern GL_RGB8_SNORM,
+  pattern GL_RGB9_E5,
+  pattern GL_RGBA,
+  pattern GL_RGBA12,
+  pattern GL_RGBA16,
+  pattern GL_RGBA16F,
+  pattern GL_RGBA16I,
+  pattern GL_RGBA16UI,
+  pattern GL_RGBA16_SNORM,
+  pattern GL_RGBA2,
+  pattern GL_RGBA32F,
+  pattern GL_RGBA32I,
+  pattern GL_RGBA32UI,
+  pattern GL_RGBA4,
+  pattern GL_RGBA8,
+  pattern GL_RGBA8I,
+  pattern GL_RGBA8UI,
+  pattern GL_RGBA8_SNORM,
+  pattern GL_RGBA_INTEGER,
+  pattern GL_RGBA_MODE,
+  pattern GL_RGB_INTEGER,
+  pattern GL_RGB_SCALE,
+  pattern GL_RG_INTEGER,
+  pattern GL_RIGHT,
+  pattern GL_S,
+  pattern GL_SAMPLER_1D,
+  pattern GL_SAMPLER_1D_ARRAY,
+  pattern GL_SAMPLER_1D_ARRAY_SHADOW,
+  pattern GL_SAMPLER_1D_SHADOW,
+  pattern GL_SAMPLER_2D,
+  pattern GL_SAMPLER_2D_ARRAY,
+  pattern GL_SAMPLER_2D_ARRAY_SHADOW,
+  pattern GL_SAMPLER_2D_RECT,
+  pattern GL_SAMPLER_2D_RECT_SHADOW,
+  pattern GL_SAMPLER_2D_SHADOW,
+  pattern GL_SAMPLER_3D,
+  pattern GL_SAMPLER_BUFFER,
+  pattern GL_SAMPLER_CUBE,
+  pattern GL_SAMPLER_CUBE_SHADOW,
+  pattern GL_SAMPLES,
+  pattern GL_SAMPLES_PASSED,
+  pattern GL_SAMPLE_ALPHA_TO_COVERAGE,
+  pattern GL_SAMPLE_ALPHA_TO_ONE,
+  pattern GL_SAMPLE_BUFFERS,
+  pattern GL_SAMPLE_COVERAGE,
+  pattern GL_SAMPLE_COVERAGE_INVERT,
+  pattern GL_SAMPLE_COVERAGE_VALUE,
+  pattern GL_SCISSOR_BIT,
+  pattern GL_SCISSOR_BOX,
+  pattern GL_SCISSOR_TEST,
+  pattern GL_SECONDARY_COLOR_ARRAY,
+  pattern GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING,
+  pattern GL_SECONDARY_COLOR_ARRAY_POINTER,
+  pattern GL_SECONDARY_COLOR_ARRAY_SIZE,
+  pattern GL_SECONDARY_COLOR_ARRAY_STRIDE,
+  pattern GL_SECONDARY_COLOR_ARRAY_TYPE,
+  pattern GL_SELECT,
+  pattern GL_SELECTION_BUFFER_POINTER,
+  pattern GL_SELECTION_BUFFER_SIZE,
+  pattern GL_SEPARATE_ATTRIBS,
+  pattern GL_SEPARATE_SPECULAR_COLOR,
+  pattern GL_SET,
+  pattern GL_SHADER_SOURCE_LENGTH,
+  pattern GL_SHADER_TYPE,
+  pattern GL_SHADE_MODEL,
+  pattern GL_SHADING_LANGUAGE_VERSION,
+  pattern GL_SHININESS,
+  pattern GL_SHORT,
+  pattern GL_SIGNED_NORMALIZED,
+  pattern GL_SINGLE_COLOR,
+  pattern GL_SLUMINANCE,
+  pattern GL_SLUMINANCE8,
+  pattern GL_SLUMINANCE8_ALPHA8,
+  pattern GL_SLUMINANCE_ALPHA,
+  pattern GL_SMOOTH,
+  pattern GL_SMOOTH_LINE_WIDTH_GRANULARITY,
+  pattern GL_SMOOTH_LINE_WIDTH_RANGE,
+  pattern GL_SMOOTH_POINT_SIZE_GRANULARITY,
+  pattern GL_SMOOTH_POINT_SIZE_RANGE,
+  pattern GL_SOURCE0_ALPHA,
+  pattern GL_SOURCE0_RGB,
+  pattern GL_SOURCE1_ALPHA,
+  pattern GL_SOURCE1_RGB,
+  pattern GL_SOURCE2_ALPHA,
+  pattern GL_SOURCE2_RGB,
+  pattern GL_SPECULAR,
+  pattern GL_SPHERE_MAP,
+  pattern GL_SPOT_CUTOFF,
+  pattern GL_SPOT_DIRECTION,
+  pattern GL_SPOT_EXPONENT,
+  pattern GL_SRC0_ALPHA,
+  pattern GL_SRC0_RGB,
+  pattern GL_SRC1_ALPHA,
+  pattern GL_SRC1_RGB,
+  pattern GL_SRC2_ALPHA,
+  pattern GL_SRC2_RGB,
+  pattern GL_SRC_ALPHA,
+  pattern GL_SRC_ALPHA_SATURATE,
+  pattern GL_SRC_COLOR,
+  pattern GL_SRGB,
+  pattern GL_SRGB8,
+  pattern GL_SRGB8_ALPHA8,
+  pattern GL_SRGB_ALPHA,
+  pattern GL_STACK_OVERFLOW,
+  pattern GL_STACK_UNDERFLOW,
+  pattern GL_STATIC_COPY,
+  pattern GL_STATIC_DRAW,
+  pattern GL_STATIC_READ,
+  pattern GL_STENCIL,
+  pattern GL_STENCIL_ATTACHMENT,
+  pattern GL_STENCIL_BACK_FAIL,
+  pattern GL_STENCIL_BACK_FUNC,
+  pattern GL_STENCIL_BACK_PASS_DEPTH_FAIL,
+  pattern GL_STENCIL_BACK_PASS_DEPTH_PASS,
+  pattern GL_STENCIL_BACK_REF,
+  pattern GL_STENCIL_BACK_VALUE_MASK,
+  pattern GL_STENCIL_BACK_WRITEMASK,
+  pattern GL_STENCIL_BITS,
+  pattern GL_STENCIL_BUFFER_BIT,
+  pattern GL_STENCIL_CLEAR_VALUE,
+  pattern GL_STENCIL_FAIL,
+  pattern GL_STENCIL_FUNC,
+  pattern GL_STENCIL_INDEX,
+  pattern GL_STENCIL_INDEX1,
+  pattern GL_STENCIL_INDEX16,
+  pattern GL_STENCIL_INDEX4,
+  pattern GL_STENCIL_INDEX8,
+  pattern GL_STENCIL_PASS_DEPTH_FAIL,
+  pattern GL_STENCIL_PASS_DEPTH_PASS,
+  pattern GL_STENCIL_REF,
+  pattern GL_STENCIL_TEST,
+  pattern GL_STENCIL_VALUE_MASK,
+  pattern GL_STENCIL_WRITEMASK,
+  pattern GL_STEREO,
+  pattern GL_STREAM_COPY,
+  pattern GL_STREAM_DRAW,
+  pattern GL_STREAM_READ,
+  pattern GL_SUBPIXEL_BITS,
+  pattern GL_SUBTRACT,
+  pattern GL_T,
+  pattern GL_T2F_C3F_V3F,
+  pattern GL_T2F_C4F_N3F_V3F,
+  pattern GL_T2F_C4UB_V3F,
+  pattern GL_T2F_N3F_V3F,
+  pattern GL_T2F_V3F,
+  pattern GL_T4F_C4F_N3F_V4F,
+  pattern GL_T4F_V4F,
+  pattern GL_TEXTURE,
+  pattern GL_TEXTURE0,
+  pattern GL_TEXTURE1,
+  pattern GL_TEXTURE10,
+  pattern GL_TEXTURE11,
+  pattern GL_TEXTURE12,
+  pattern GL_TEXTURE13,
+  pattern GL_TEXTURE14,
+  pattern GL_TEXTURE15,
+  pattern GL_TEXTURE16,
+  pattern GL_TEXTURE17,
+  pattern GL_TEXTURE18,
+  pattern GL_TEXTURE19,
+  pattern GL_TEXTURE2,
+  pattern GL_TEXTURE20,
+  pattern GL_TEXTURE21,
+  pattern GL_TEXTURE22,
+  pattern GL_TEXTURE23,
+  pattern GL_TEXTURE24,
+  pattern GL_TEXTURE25,
+  pattern GL_TEXTURE26,
+  pattern GL_TEXTURE27,
+  pattern GL_TEXTURE28,
+  pattern GL_TEXTURE29,
+  pattern GL_TEXTURE3,
+  pattern GL_TEXTURE30,
+  pattern GL_TEXTURE31,
+  pattern GL_TEXTURE4,
+  pattern GL_TEXTURE5,
+  pattern GL_TEXTURE6,
+  pattern GL_TEXTURE7,
+  pattern GL_TEXTURE8,
+  pattern GL_TEXTURE9,
+  pattern GL_TEXTURE_1D,
+  pattern GL_TEXTURE_1D_ARRAY,
+  pattern GL_TEXTURE_2D,
+  pattern GL_TEXTURE_2D_ARRAY,
+  pattern GL_TEXTURE_3D,
+  pattern GL_TEXTURE_ALPHA_SIZE,
+  pattern GL_TEXTURE_ALPHA_TYPE,
+  pattern GL_TEXTURE_BASE_LEVEL,
+  pattern GL_TEXTURE_BINDING_1D,
+  pattern GL_TEXTURE_BINDING_1D_ARRAY,
+  pattern GL_TEXTURE_BINDING_2D,
+  pattern GL_TEXTURE_BINDING_2D_ARRAY,
+  pattern GL_TEXTURE_BINDING_3D,
+  pattern GL_TEXTURE_BINDING_BUFFER,
+  pattern GL_TEXTURE_BINDING_CUBE_MAP,
+  pattern GL_TEXTURE_BINDING_RECTANGLE,
+  pattern GL_TEXTURE_BIT,
+  pattern GL_TEXTURE_BLUE_SIZE,
+  pattern GL_TEXTURE_BLUE_TYPE,
+  pattern GL_TEXTURE_BORDER,
+  pattern GL_TEXTURE_BORDER_COLOR,
+  pattern GL_TEXTURE_BUFFER,
+  pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING,
+  pattern GL_TEXTURE_COMPARE_FUNC,
+  pattern GL_TEXTURE_COMPARE_MODE,
+  pattern GL_TEXTURE_COMPONENTS,
+  pattern GL_TEXTURE_COMPRESSED,
+  pattern GL_TEXTURE_COMPRESSED_IMAGE_SIZE,
+  pattern GL_TEXTURE_COMPRESSION_HINT,
+  pattern GL_TEXTURE_COORD_ARRAY,
+  pattern GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING,
+  pattern GL_TEXTURE_COORD_ARRAY_POINTER,
+  pattern GL_TEXTURE_COORD_ARRAY_SIZE,
+  pattern GL_TEXTURE_COORD_ARRAY_STRIDE,
+  pattern GL_TEXTURE_COORD_ARRAY_TYPE,
+  pattern GL_TEXTURE_CUBE_MAP,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z,
+  pattern GL_TEXTURE_DEPTH,
+  pattern GL_TEXTURE_DEPTH_SIZE,
+  pattern GL_TEXTURE_DEPTH_TYPE,
+  pattern GL_TEXTURE_ENV,
+  pattern GL_TEXTURE_ENV_COLOR,
+  pattern GL_TEXTURE_ENV_MODE,
+  pattern GL_TEXTURE_FILTER_CONTROL,
+  pattern GL_TEXTURE_GEN_MODE,
+  pattern GL_TEXTURE_GEN_Q,
+  pattern GL_TEXTURE_GEN_R,
+  pattern GL_TEXTURE_GEN_S,
+  pattern GL_TEXTURE_GEN_T,
+  pattern GL_TEXTURE_GREEN_SIZE,
+  pattern GL_TEXTURE_GREEN_TYPE,
+  pattern GL_TEXTURE_HEIGHT,
+  pattern GL_TEXTURE_INTENSITY_SIZE,
+  pattern GL_TEXTURE_INTENSITY_TYPE,
+  pattern GL_TEXTURE_INTERNAL_FORMAT,
+  pattern GL_TEXTURE_LOD_BIAS,
+  pattern GL_TEXTURE_LUMINANCE_SIZE,
+  pattern GL_TEXTURE_LUMINANCE_TYPE,
+  pattern GL_TEXTURE_MAG_FILTER,
+  pattern GL_TEXTURE_MATRIX,
+  pattern GL_TEXTURE_MAX_LEVEL,
+  pattern GL_TEXTURE_MAX_LOD,
+  pattern GL_TEXTURE_MIN_FILTER,
+  pattern GL_TEXTURE_MIN_LOD,
+  pattern GL_TEXTURE_PRIORITY,
+  pattern GL_TEXTURE_RECTANGLE,
+  pattern GL_TEXTURE_RED_SIZE,
+  pattern GL_TEXTURE_RED_TYPE,
+  pattern GL_TEXTURE_RESIDENT,
+  pattern GL_TEXTURE_SHARED_SIZE,
+  pattern GL_TEXTURE_STACK_DEPTH,
+  pattern GL_TEXTURE_STENCIL_SIZE,
+  pattern GL_TEXTURE_WIDTH,
+  pattern GL_TEXTURE_WRAP_R,
+  pattern GL_TEXTURE_WRAP_S,
+  pattern GL_TEXTURE_WRAP_T,
+  pattern GL_TRANSFORM_BIT,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_BINDING,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_MODE,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_SIZE,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_START,
+  pattern GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN,
+  pattern GL_TRANSFORM_FEEDBACK_VARYINGS,
+  pattern GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH,
+  pattern GL_TRANSPOSE_COLOR_MATRIX,
+  pattern GL_TRANSPOSE_MODELVIEW_MATRIX,
+  pattern GL_TRANSPOSE_PROJECTION_MATRIX,
+  pattern GL_TRANSPOSE_TEXTURE_MATRIX,
+  pattern GL_TRIANGLES,
+  pattern GL_TRIANGLE_FAN,
+  pattern GL_TRIANGLE_STRIP,
+  pattern GL_TRUE,
+  pattern GL_UNIFORM_ARRAY_STRIDE,
+  pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS,
+  pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES,
+  pattern GL_UNIFORM_BLOCK_BINDING,
+  pattern GL_UNIFORM_BLOCK_DATA_SIZE,
+  pattern GL_UNIFORM_BLOCK_INDEX,
+  pattern GL_UNIFORM_BLOCK_NAME_LENGTH,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER,
+  pattern GL_UNIFORM_BUFFER,
+  pattern GL_UNIFORM_BUFFER_BINDING,
+  pattern GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT,
+  pattern GL_UNIFORM_BUFFER_SIZE,
+  pattern GL_UNIFORM_BUFFER_START,
+  pattern GL_UNIFORM_IS_ROW_MAJOR,
+  pattern GL_UNIFORM_MATRIX_STRIDE,
+  pattern GL_UNIFORM_NAME_LENGTH,
+  pattern GL_UNIFORM_OFFSET,
+  pattern GL_UNIFORM_SIZE,
+  pattern GL_UNIFORM_TYPE,
+  pattern GL_UNPACK_ALIGNMENT,
+  pattern GL_UNPACK_IMAGE_HEIGHT,
+  pattern GL_UNPACK_LSB_FIRST,
+  pattern GL_UNPACK_ROW_LENGTH,
+  pattern GL_UNPACK_SKIP_IMAGES,
+  pattern GL_UNPACK_SKIP_PIXELS,
+  pattern GL_UNPACK_SKIP_ROWS,
+  pattern GL_UNPACK_SWAP_BYTES,
+  pattern GL_UNSIGNED_BYTE,
+  pattern GL_UNSIGNED_BYTE_2_3_3_REV,
+  pattern GL_UNSIGNED_BYTE_3_3_2,
+  pattern GL_UNSIGNED_INT,
+  pattern GL_UNSIGNED_INT_10F_11F_11F_REV,
+  pattern GL_UNSIGNED_INT_10_10_10_2,
+  pattern GL_UNSIGNED_INT_24_8,
+  pattern GL_UNSIGNED_INT_2_10_10_10_REV,
+  pattern GL_UNSIGNED_INT_5_9_9_9_REV,
+  pattern GL_UNSIGNED_INT_8_8_8_8,
+  pattern GL_UNSIGNED_INT_8_8_8_8_REV,
+  pattern GL_UNSIGNED_INT_SAMPLER_1D,
+  pattern GL_UNSIGNED_INT_SAMPLER_1D_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_RECT,
+  pattern GL_UNSIGNED_INT_SAMPLER_3D,
+  pattern GL_UNSIGNED_INT_SAMPLER_BUFFER,
+  pattern GL_UNSIGNED_INT_SAMPLER_CUBE,
+  pattern GL_UNSIGNED_INT_VEC2,
+  pattern GL_UNSIGNED_INT_VEC3,
+  pattern GL_UNSIGNED_INT_VEC4,
+  pattern GL_UNSIGNED_NORMALIZED,
+  pattern GL_UNSIGNED_SHORT,
+  pattern GL_UNSIGNED_SHORT_1_5_5_5_REV,
+  pattern GL_UNSIGNED_SHORT_4_4_4_4,
+  pattern GL_UNSIGNED_SHORT_4_4_4_4_REV,
+  pattern GL_UNSIGNED_SHORT_5_5_5_1,
+  pattern GL_UNSIGNED_SHORT_5_6_5,
+  pattern GL_UNSIGNED_SHORT_5_6_5_REV,
+  pattern GL_UPPER_LEFT,
+  pattern GL_V2F,
+  pattern GL_V3F,
+  pattern GL_VALIDATE_STATUS,
+  pattern GL_VENDOR,
+  pattern GL_VERSION,
+  pattern GL_VERTEX_ARRAY,
+  pattern GL_VERTEX_ARRAY_BINDING,
+  pattern GL_VERTEX_ARRAY_BUFFER_BINDING,
+  pattern GL_VERTEX_ARRAY_POINTER,
+  pattern GL_VERTEX_ARRAY_SIZE,
+  pattern GL_VERTEX_ARRAY_STRIDE,
+  pattern GL_VERTEX_ARRAY_TYPE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING,
+  pattern GL_VERTEX_ATTRIB_ARRAY_ENABLED,
+  pattern GL_VERTEX_ATTRIB_ARRAY_INTEGER,
+  pattern GL_VERTEX_ATTRIB_ARRAY_NORMALIZED,
+  pattern GL_VERTEX_ATTRIB_ARRAY_POINTER,
+  pattern GL_VERTEX_ATTRIB_ARRAY_SIZE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_STRIDE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_TYPE,
+  pattern GL_VERTEX_PROGRAM_POINT_SIZE,
+  pattern GL_VERTEX_PROGRAM_TWO_SIDE,
+  pattern GL_VERTEX_SHADER,
+  pattern GL_VIEWPORT,
+  pattern GL_VIEWPORT_BIT,
+  pattern GL_WEIGHT_ARRAY_BUFFER_BINDING,
+  pattern GL_WRITE_ONLY,
+  pattern GL_XOR,
+  pattern GL_ZERO,
+  pattern GL_ZOOM_X,
+  pattern GL_ZOOM_Y,
+  -- * Functions
+  glAccum,
+  glActiveTexture,
+  glAlphaFunc,
+  glAreTexturesResident,
+  glArrayElement,
+  glAttachShader,
+  glBegin,
+  glBeginConditionalRender,
+  glBeginQuery,
+  glBeginTransformFeedback,
+  glBindAttribLocation,
+  glBindBuffer,
+  glBindBufferBase,
+  glBindBufferRange,
+  glBindFragDataLocation,
+  glBindFramebuffer,
+  glBindRenderbuffer,
+  glBindTexture,
+  glBindVertexArray,
+  glBitmap,
+  glBlendColor,
+  glBlendEquation,
+  glBlendEquationSeparate,
+  glBlendFunc,
+  glBlendFuncSeparate,
+  glBlitFramebuffer,
+  glBufferData,
+  glBufferSubData,
+  glCallList,
+  glCallLists,
+  glCheckFramebufferStatus,
+  glClampColor,
+  glClear,
+  glClearAccum,
+  glClearBufferfi,
+  glClearBufferfv,
+  glClearBufferiv,
+  glClearBufferuiv,
+  glClearColor,
+  glClearDepth,
+  glClearIndex,
+  glClearStencil,
+  glClientActiveTexture,
+  glClipPlane,
+  glColor3b,
+  glColor3bv,
+  glColor3d,
+  glColor3dv,
+  glColor3f,
+  glColor3fv,
+  glColor3i,
+  glColor3iv,
+  glColor3s,
+  glColor3sv,
+  glColor3ub,
+  glColor3ubv,
+  glColor3ui,
+  glColor3uiv,
+  glColor3us,
+  glColor3usv,
+  glColor4b,
+  glColor4bv,
+  glColor4d,
+  glColor4dv,
+  glColor4f,
+  glColor4fv,
+  glColor4i,
+  glColor4iv,
+  glColor4s,
+  glColor4sv,
+  glColor4ub,
+  glColor4ubv,
+  glColor4ui,
+  glColor4uiv,
+  glColor4us,
+  glColor4usv,
+  glColorMask,
+  glColorMaski,
+  glColorMaterial,
+  glColorPointer,
+  glCompileShader,
+  glCompressedTexImage1D,
+  glCompressedTexImage2D,
+  glCompressedTexImage3D,
+  glCompressedTexSubImage1D,
+  glCompressedTexSubImage2D,
+  glCompressedTexSubImage3D,
+  glCopyBufferSubData,
+  glCopyPixels,
+  glCopyTexImage1D,
+  glCopyTexImage2D,
+  glCopyTexSubImage1D,
+  glCopyTexSubImage2D,
+  glCopyTexSubImage3D,
+  glCreateProgram,
+  glCreateShader,
+  glCullFace,
+  glDeleteBuffers,
+  glDeleteFramebuffers,
+  glDeleteLists,
+  glDeleteProgram,
+  glDeleteQueries,
+  glDeleteRenderbuffers,
+  glDeleteShader,
+  glDeleteTextures,
+  glDeleteVertexArrays,
+  glDepthFunc,
+  glDepthMask,
+  glDepthRange,
+  glDetachShader,
+  glDisable,
+  glDisableClientState,
+  glDisableVertexAttribArray,
+  glDisablei,
+  glDrawArrays,
+  glDrawArraysInstanced,
+  glDrawBuffer,
+  glDrawBuffers,
+  glDrawElements,
+  glDrawElementsInstanced,
+  glDrawPixels,
+  glDrawRangeElements,
+  glEdgeFlag,
+  glEdgeFlagPointer,
+  glEdgeFlagv,
+  glEnable,
+  glEnableClientState,
+  glEnableVertexAttribArray,
+  glEnablei,
+  glEnd,
+  glEndConditionalRender,
+  glEndList,
+  glEndQuery,
+  glEndTransformFeedback,
+  glEvalCoord1d,
+  glEvalCoord1dv,
+  glEvalCoord1f,
+  glEvalCoord1fv,
+  glEvalCoord2d,
+  glEvalCoord2dv,
+  glEvalCoord2f,
+  glEvalCoord2fv,
+  glEvalMesh1,
+  glEvalMesh2,
+  glEvalPoint1,
+  glEvalPoint2,
+  glFeedbackBuffer,
+  glFinish,
+  glFlush,
+  glFlushMappedBufferRange,
+  glFogCoordPointer,
+  glFogCoordd,
+  glFogCoorddv,
+  glFogCoordf,
+  glFogCoordfv,
+  glFogf,
+  glFogfv,
+  glFogi,
+  glFogiv,
+  glFramebufferRenderbuffer,
+  glFramebufferTexture1D,
+  glFramebufferTexture2D,
+  glFramebufferTexture3D,
+  glFramebufferTextureLayer,
+  glFrontFace,
+  glFrustum,
+  glGenBuffers,
+  glGenFramebuffers,
+  glGenLists,
+  glGenQueries,
+  glGenRenderbuffers,
+  glGenTextures,
+  glGenVertexArrays,
+  glGenerateMipmap,
+  glGetActiveAttrib,
+  glGetActiveUniform,
+  glGetActiveUniformBlockName,
+  glGetActiveUniformBlockiv,
+  glGetActiveUniformName,
+  glGetActiveUniformsiv,
+  glGetAttachedShaders,
+  glGetAttribLocation,
+  glGetBooleani_v,
+  glGetBooleanv,
+  glGetBufferParameteriv,
+  glGetBufferPointerv,
+  glGetBufferSubData,
+  glGetClipPlane,
+  glGetCompressedTexImage,
+  glGetDoublev,
+  glGetError,
+  glGetFloatv,
+  glGetFragDataLocation,
+  glGetFramebufferAttachmentParameteriv,
+  glGetIntegeri_v,
+  glGetIntegerv,
+  glGetLightfv,
+  glGetLightiv,
+  glGetMapdv,
+  glGetMapfv,
+  glGetMapiv,
+  glGetMaterialfv,
+  glGetMaterialiv,
+  glGetPixelMapfv,
+  glGetPixelMapuiv,
+  glGetPixelMapusv,
+  glGetPointerv,
+  glGetPolygonStipple,
+  glGetProgramInfoLog,
+  glGetProgramiv,
+  glGetQueryObjectiv,
+  glGetQueryObjectuiv,
+  glGetQueryiv,
+  glGetRenderbufferParameteriv,
+  glGetShaderInfoLog,
+  glGetShaderSource,
+  glGetShaderiv,
+  glGetString,
+  glGetStringi,
+  glGetTexEnvfv,
+  glGetTexEnviv,
+  glGetTexGendv,
+  glGetTexGenfv,
+  glGetTexGeniv,
+  glGetTexImage,
+  glGetTexLevelParameterfv,
+  glGetTexLevelParameteriv,
+  glGetTexParameterIiv,
+  glGetTexParameterIuiv,
+  glGetTexParameterfv,
+  glGetTexParameteriv,
+  glGetTransformFeedbackVarying,
+  glGetUniformBlockIndex,
+  glGetUniformIndices,
+  glGetUniformLocation,
+  glGetUniformfv,
+  glGetUniformiv,
+  glGetUniformuiv,
+  glGetVertexAttribIiv,
+  glGetVertexAttribIuiv,
+  glGetVertexAttribPointerv,
+  glGetVertexAttribdv,
+  glGetVertexAttribfv,
+  glGetVertexAttribiv,
+  glHint,
+  glIndexMask,
+  glIndexPointer,
+  glIndexd,
+  glIndexdv,
+  glIndexf,
+  glIndexfv,
+  glIndexi,
+  glIndexiv,
+  glIndexs,
+  glIndexsv,
+  glIndexub,
+  glIndexubv,
+  glInitNames,
+  glInterleavedArrays,
+  glIsBuffer,
+  glIsEnabled,
+  glIsEnabledi,
+  glIsFramebuffer,
+  glIsList,
+  glIsProgram,
+  glIsQuery,
+  glIsRenderbuffer,
+  glIsShader,
+  glIsTexture,
+  glIsVertexArray,
+  glLightModelf,
+  glLightModelfv,
+  glLightModeli,
+  glLightModeliv,
+  glLightf,
+  glLightfv,
+  glLighti,
+  glLightiv,
+  glLineStipple,
+  glLineWidth,
+  glLinkProgram,
+  glListBase,
+  glLoadIdentity,
+  glLoadMatrixd,
+  glLoadMatrixf,
+  glLoadName,
+  glLoadTransposeMatrixd,
+  glLoadTransposeMatrixf,
+  glLogicOp,
+  glMap1d,
+  glMap1f,
+  glMap2d,
+  glMap2f,
+  glMapBuffer,
+  glMapBufferRange,
+  glMapGrid1d,
+  glMapGrid1f,
+  glMapGrid2d,
+  glMapGrid2f,
+  glMaterialf,
+  glMaterialfv,
+  glMateriali,
+  glMaterialiv,
+  glMatrixMode,
+  glMultMatrixd,
+  glMultMatrixf,
+  glMultTransposeMatrixd,
+  glMultTransposeMatrixf,
+  glMultiDrawArrays,
+  glMultiDrawElements,
+  glMultiTexCoord1d,
+  glMultiTexCoord1dv,
+  glMultiTexCoord1f,
+  glMultiTexCoord1fv,
+  glMultiTexCoord1i,
+  glMultiTexCoord1iv,
+  glMultiTexCoord1s,
+  glMultiTexCoord1sv,
+  glMultiTexCoord2d,
+  glMultiTexCoord2dv,
+  glMultiTexCoord2f,
+  glMultiTexCoord2fv,
+  glMultiTexCoord2i,
+  glMultiTexCoord2iv,
+  glMultiTexCoord2s,
+  glMultiTexCoord2sv,
+  glMultiTexCoord3d,
+  glMultiTexCoord3dv,
+  glMultiTexCoord3f,
+  glMultiTexCoord3fv,
+  glMultiTexCoord3i,
+  glMultiTexCoord3iv,
+  glMultiTexCoord3s,
+  glMultiTexCoord3sv,
+  glMultiTexCoord4d,
+  glMultiTexCoord4dv,
+  glMultiTexCoord4f,
+  glMultiTexCoord4fv,
+  glMultiTexCoord4i,
+  glMultiTexCoord4iv,
+  glMultiTexCoord4s,
+  glMultiTexCoord4sv,
+  glNewList,
+  glNormal3b,
+  glNormal3bv,
+  glNormal3d,
+  glNormal3dv,
+  glNormal3f,
+  glNormal3fv,
+  glNormal3i,
+  glNormal3iv,
+  glNormal3s,
+  glNormal3sv,
+  glNormalPointer,
+  glOrtho,
+  glPassThrough,
+  glPixelMapfv,
+  glPixelMapuiv,
+  glPixelMapusv,
+  glPixelStoref,
+  glPixelStorei,
+  glPixelTransferf,
+  glPixelTransferi,
+  glPixelZoom,
+  glPointParameterf,
+  glPointParameterfv,
+  glPointParameteri,
+  glPointParameteriv,
+  glPointSize,
+  glPolygonMode,
+  glPolygonOffset,
+  glPolygonStipple,
+  glPopAttrib,
+  glPopClientAttrib,
+  glPopMatrix,
+  glPopName,
+  glPrimitiveRestartIndex,
+  glPrioritizeTextures,
+  glPushAttrib,
+  glPushClientAttrib,
+  glPushMatrix,
+  glPushName,
+  glRasterPos2d,
+  glRasterPos2dv,
+  glRasterPos2f,
+  glRasterPos2fv,
+  glRasterPos2i,
+  glRasterPos2iv,
+  glRasterPos2s,
+  glRasterPos2sv,
+  glRasterPos3d,
+  glRasterPos3dv,
+  glRasterPos3f,
+  glRasterPos3fv,
+  glRasterPos3i,
+  glRasterPos3iv,
+  glRasterPos3s,
+  glRasterPos3sv,
+  glRasterPos4d,
+  glRasterPos4dv,
+  glRasterPos4f,
+  glRasterPos4fv,
+  glRasterPos4i,
+  glRasterPos4iv,
+  glRasterPos4s,
+  glRasterPos4sv,
+  glReadBuffer,
+  glReadPixels,
+  glRectd,
+  glRectdv,
+  glRectf,
+  glRectfv,
+  glRecti,
+  glRectiv,
+  glRects,
+  glRectsv,
+  glRenderMode,
+  glRenderbufferStorage,
+  glRenderbufferStorageMultisample,
+  glRotated,
+  glRotatef,
+  glSampleCoverage,
+  glScaled,
+  glScalef,
+  glScissor,
+  glSecondaryColor3b,
+  glSecondaryColor3bv,
+  glSecondaryColor3d,
+  glSecondaryColor3dv,
+  glSecondaryColor3f,
+  glSecondaryColor3fv,
+  glSecondaryColor3i,
+  glSecondaryColor3iv,
+  glSecondaryColor3s,
+  glSecondaryColor3sv,
+  glSecondaryColor3ub,
+  glSecondaryColor3ubv,
+  glSecondaryColor3ui,
+  glSecondaryColor3uiv,
+  glSecondaryColor3us,
+  glSecondaryColor3usv,
+  glSecondaryColorPointer,
+  glSelectBuffer,
+  glShadeModel,
+  glShaderSource,
+  glStencilFunc,
+  glStencilFuncSeparate,
+  glStencilMask,
+  glStencilMaskSeparate,
+  glStencilOp,
+  glStencilOpSeparate,
+  glTexBuffer,
+  glTexCoord1d,
+  glTexCoord1dv,
+  glTexCoord1f,
+  glTexCoord1fv,
+  glTexCoord1i,
+  glTexCoord1iv,
+  glTexCoord1s,
+  glTexCoord1sv,
+  glTexCoord2d,
+  glTexCoord2dv,
+  glTexCoord2f,
+  glTexCoord2fv,
+  glTexCoord2i,
+  glTexCoord2iv,
+  glTexCoord2s,
+  glTexCoord2sv,
+  glTexCoord3d,
+  glTexCoord3dv,
+  glTexCoord3f,
+  glTexCoord3fv,
+  glTexCoord3i,
+  glTexCoord3iv,
+  glTexCoord3s,
+  glTexCoord3sv,
+  glTexCoord4d,
+  glTexCoord4dv,
+  glTexCoord4f,
+  glTexCoord4fv,
+  glTexCoord4i,
+  glTexCoord4iv,
+  glTexCoord4s,
+  glTexCoord4sv,
+  glTexCoordPointer,
+  glTexEnvf,
+  glTexEnvfv,
+  glTexEnvi,
+  glTexEnviv,
+  glTexGend,
+  glTexGendv,
+  glTexGenf,
+  glTexGenfv,
+  glTexGeni,
+  glTexGeniv,
+  glTexImage1D,
+  glTexImage2D,
+  glTexImage3D,
+  glTexParameterIiv,
+  glTexParameterIuiv,
+  glTexParameterf,
+  glTexParameterfv,
+  glTexParameteri,
+  glTexParameteriv,
+  glTexSubImage1D,
+  glTexSubImage2D,
+  glTexSubImage3D,
+  glTransformFeedbackVaryings,
+  glTranslated,
+  glTranslatef,
+  glUniform1f,
+  glUniform1fv,
+  glUniform1i,
+  glUniform1iv,
+  glUniform1ui,
+  glUniform1uiv,
+  glUniform2f,
+  glUniform2fv,
+  glUniform2i,
+  glUniform2iv,
+  glUniform2ui,
+  glUniform2uiv,
+  glUniform3f,
+  glUniform3fv,
+  glUniform3i,
+  glUniform3iv,
+  glUniform3ui,
+  glUniform3uiv,
+  glUniform4f,
+  glUniform4fv,
+  glUniform4i,
+  glUniform4iv,
+  glUniform4ui,
+  glUniform4uiv,
+  glUniformBlockBinding,
+  glUniformMatrix2fv,
+  glUniformMatrix2x3fv,
+  glUniformMatrix2x4fv,
+  glUniformMatrix3fv,
+  glUniformMatrix3x2fv,
+  glUniformMatrix3x4fv,
+  glUniformMatrix4fv,
+  glUniformMatrix4x2fv,
+  glUniformMatrix4x3fv,
+  glUnmapBuffer,
+  glUseProgram,
+  glValidateProgram,
+  glVertex2d,
+  glVertex2dv,
+  glVertex2f,
+  glVertex2fv,
+  glVertex2i,
+  glVertex2iv,
+  glVertex2s,
+  glVertex2sv,
+  glVertex3d,
+  glVertex3dv,
+  glVertex3f,
+  glVertex3fv,
+  glVertex3i,
+  glVertex3iv,
+  glVertex3s,
+  glVertex3sv,
+  glVertex4d,
+  glVertex4dv,
+  glVertex4f,
+  glVertex4fv,
+  glVertex4i,
+  glVertex4iv,
+  glVertex4s,
+  glVertex4sv,
+  glVertexAttrib1d,
+  glVertexAttrib1dv,
+  glVertexAttrib1f,
+  glVertexAttrib1fv,
+  glVertexAttrib1s,
+  glVertexAttrib1sv,
+  glVertexAttrib2d,
+  glVertexAttrib2dv,
+  glVertexAttrib2f,
+  glVertexAttrib2fv,
+  glVertexAttrib2s,
+  glVertexAttrib2sv,
+  glVertexAttrib3d,
+  glVertexAttrib3dv,
+  glVertexAttrib3f,
+  glVertexAttrib3fv,
+  glVertexAttrib3s,
+  glVertexAttrib3sv,
+  glVertexAttrib4Nbv,
+  glVertexAttrib4Niv,
+  glVertexAttrib4Nsv,
+  glVertexAttrib4Nub,
+  glVertexAttrib4Nubv,
+  glVertexAttrib4Nuiv,
+  glVertexAttrib4Nusv,
+  glVertexAttrib4bv,
+  glVertexAttrib4d,
+  glVertexAttrib4dv,
+  glVertexAttrib4f,
+  glVertexAttrib4fv,
+  glVertexAttrib4iv,
+  glVertexAttrib4s,
+  glVertexAttrib4sv,
+  glVertexAttrib4ubv,
+  glVertexAttrib4uiv,
+  glVertexAttrib4usv,
+  glVertexAttribI1i,
+  glVertexAttribI1iv,
+  glVertexAttribI1ui,
+  glVertexAttribI1uiv,
+  glVertexAttribI2i,
+  glVertexAttribI2iv,
+  glVertexAttribI2ui,
+  glVertexAttribI2uiv,
+  glVertexAttribI3i,
+  glVertexAttribI3iv,
+  glVertexAttribI3ui,
+  glVertexAttribI3uiv,
+  glVertexAttribI4bv,
+  glVertexAttribI4i,
+  glVertexAttribI4iv,
+  glVertexAttribI4sv,
+  glVertexAttribI4ubv,
+  glVertexAttribI4ui,
+  glVertexAttribI4uiv,
+  glVertexAttribI4usv,
+  glVertexAttribIPointer,
+  glVertexAttribPointer,
+  glVertexPointer,
+  glViewport,
+  glWindowPos2d,
+  glWindowPos2dv,
+  glWindowPos2f,
+  glWindowPos2fv,
+  glWindowPos2i,
+  glWindowPos2iv,
+  glWindowPos2s,
+  glWindowPos2sv,
+  glWindowPos3d,
+  glWindowPos3dv,
+  glWindowPos3f,
+  glWindowPos3fv,
+  glWindowPos3i,
+  glWindowPos3iv,
+  glWindowPos3s,
+  glWindowPos3sv
+) where
+
+import Graphics.GL.Types
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/Core32.hs b/src/Graphics/GL/Core32.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Core32.hs
@@ -0,0 +1,1162 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Core32
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Core32 (
+  -- * Types
+  GLbitfield,
+  GLboolean,
+  GLbyte,
+  GLchar,
+  GLclampd,
+  GLclampf,
+  GLdouble,
+  GLenum,
+  GLfloat,
+  GLhalf,
+  GLint,
+  GLint64,
+  GLintptr,
+  GLshort,
+  GLsizei,
+  GLsizeiptr,
+  GLsync,
+  GLubyte,
+  GLuint,
+  GLuint64,
+  GLushort,
+  GLvoid,
+  -- * Enums
+  pattern GL_ACTIVE_ATTRIBUTES,
+  pattern GL_ACTIVE_ATTRIBUTE_MAX_LENGTH,
+  pattern GL_ACTIVE_TEXTURE,
+  pattern GL_ACTIVE_UNIFORMS,
+  pattern GL_ACTIVE_UNIFORM_BLOCKS,
+  pattern GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH,
+  pattern GL_ACTIVE_UNIFORM_MAX_LENGTH,
+  pattern GL_ALIASED_LINE_WIDTH_RANGE,
+  pattern GL_ALPHA,
+  pattern GL_ALREADY_SIGNALED,
+  pattern GL_ALWAYS,
+  pattern GL_AND,
+  pattern GL_AND_INVERTED,
+  pattern GL_AND_REVERSE,
+  pattern GL_ARRAY_BUFFER,
+  pattern GL_ARRAY_BUFFER_BINDING,
+  pattern GL_ATTACHED_SHADERS,
+  pattern GL_BACK,
+  pattern GL_BACK_LEFT,
+  pattern GL_BACK_RIGHT,
+  pattern GL_BGR,
+  pattern GL_BGRA,
+  pattern GL_BGRA_INTEGER,
+  pattern GL_BGR_INTEGER,
+  pattern GL_BLEND,
+  pattern GL_BLEND_COLOR,
+  pattern GL_BLEND_DST,
+  pattern GL_BLEND_DST_ALPHA,
+  pattern GL_BLEND_DST_RGB,
+  pattern GL_BLEND_EQUATION,
+  pattern GL_BLEND_EQUATION_ALPHA,
+  pattern GL_BLEND_EQUATION_RGB,
+  pattern GL_BLEND_SRC,
+  pattern GL_BLEND_SRC_ALPHA,
+  pattern GL_BLEND_SRC_RGB,
+  pattern GL_BLUE,
+  pattern GL_BLUE_INTEGER,
+  pattern GL_BOOL,
+  pattern GL_BOOL_VEC2,
+  pattern GL_BOOL_VEC3,
+  pattern GL_BOOL_VEC4,
+  pattern GL_BUFFER_ACCESS,
+  pattern GL_BUFFER_ACCESS_FLAGS,
+  pattern GL_BUFFER_MAPPED,
+  pattern GL_BUFFER_MAP_LENGTH,
+  pattern GL_BUFFER_MAP_OFFSET,
+  pattern GL_BUFFER_MAP_POINTER,
+  pattern GL_BUFFER_SIZE,
+  pattern GL_BUFFER_USAGE,
+  pattern GL_BYTE,
+  pattern GL_CCW,
+  pattern GL_CLAMP_READ_COLOR,
+  pattern GL_CLAMP_TO_BORDER,
+  pattern GL_CLAMP_TO_EDGE,
+  pattern GL_CLEAR,
+  pattern GL_CLIP_DISTANCE0,
+  pattern GL_CLIP_DISTANCE1,
+  pattern GL_CLIP_DISTANCE2,
+  pattern GL_CLIP_DISTANCE3,
+  pattern GL_CLIP_DISTANCE4,
+  pattern GL_CLIP_DISTANCE5,
+  pattern GL_CLIP_DISTANCE6,
+  pattern GL_CLIP_DISTANCE7,
+  pattern GL_COLOR,
+  pattern GL_COLOR_ATTACHMENT0,
+  pattern GL_COLOR_ATTACHMENT1,
+  pattern GL_COLOR_ATTACHMENT10,
+  pattern GL_COLOR_ATTACHMENT11,
+  pattern GL_COLOR_ATTACHMENT12,
+  pattern GL_COLOR_ATTACHMENT13,
+  pattern GL_COLOR_ATTACHMENT14,
+  pattern GL_COLOR_ATTACHMENT15,
+  pattern GL_COLOR_ATTACHMENT16,
+  pattern GL_COLOR_ATTACHMENT17,
+  pattern GL_COLOR_ATTACHMENT18,
+  pattern GL_COLOR_ATTACHMENT19,
+  pattern GL_COLOR_ATTACHMENT2,
+  pattern GL_COLOR_ATTACHMENT20,
+  pattern GL_COLOR_ATTACHMENT21,
+  pattern GL_COLOR_ATTACHMENT22,
+  pattern GL_COLOR_ATTACHMENT23,
+  pattern GL_COLOR_ATTACHMENT24,
+  pattern GL_COLOR_ATTACHMENT25,
+  pattern GL_COLOR_ATTACHMENT26,
+  pattern GL_COLOR_ATTACHMENT27,
+  pattern GL_COLOR_ATTACHMENT28,
+  pattern GL_COLOR_ATTACHMENT29,
+  pattern GL_COLOR_ATTACHMENT3,
+  pattern GL_COLOR_ATTACHMENT30,
+  pattern GL_COLOR_ATTACHMENT31,
+  pattern GL_COLOR_ATTACHMENT4,
+  pattern GL_COLOR_ATTACHMENT5,
+  pattern GL_COLOR_ATTACHMENT6,
+  pattern GL_COLOR_ATTACHMENT7,
+  pattern GL_COLOR_ATTACHMENT8,
+  pattern GL_COLOR_ATTACHMENT9,
+  pattern GL_COLOR_BUFFER_BIT,
+  pattern GL_COLOR_CLEAR_VALUE,
+  pattern GL_COLOR_LOGIC_OP,
+  pattern GL_COLOR_WRITEMASK,
+  pattern GL_COMPARE_REF_TO_TEXTURE,
+  pattern GL_COMPILE_STATUS,
+  pattern GL_COMPRESSED_RED,
+  pattern GL_COMPRESSED_RED_RGTC1,
+  pattern GL_COMPRESSED_RG,
+  pattern GL_COMPRESSED_RGB,
+  pattern GL_COMPRESSED_RGBA,
+  pattern GL_COMPRESSED_RG_RGTC2,
+  pattern GL_COMPRESSED_SIGNED_RED_RGTC1,
+  pattern GL_COMPRESSED_SIGNED_RG_RGTC2,
+  pattern GL_COMPRESSED_SRGB,
+  pattern GL_COMPRESSED_SRGB_ALPHA,
+  pattern GL_COMPRESSED_TEXTURE_FORMATS,
+  pattern GL_CONDITION_SATISFIED,
+  pattern GL_CONSTANT_ALPHA,
+  pattern GL_CONSTANT_COLOR,
+  pattern GL_CONTEXT_COMPATIBILITY_PROFILE_BIT,
+  pattern GL_CONTEXT_CORE_PROFILE_BIT,
+  pattern GL_CONTEXT_FLAGS,
+  pattern GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT,
+  pattern GL_CONTEXT_PROFILE_MASK,
+  pattern GL_COPY,
+  pattern GL_COPY_INVERTED,
+  pattern GL_COPY_READ_BUFFER,
+  pattern GL_COPY_WRITE_BUFFER,
+  pattern GL_CULL_FACE,
+  pattern GL_CULL_FACE_MODE,
+  pattern GL_CURRENT_PROGRAM,
+  pattern GL_CURRENT_QUERY,
+  pattern GL_CURRENT_VERTEX_ATTRIB,
+  pattern GL_CW,
+  pattern GL_DECR,
+  pattern GL_DECR_WRAP,
+  pattern GL_DELETE_STATUS,
+  pattern GL_DEPTH,
+  pattern GL_DEPTH24_STENCIL8,
+  pattern GL_DEPTH32F_STENCIL8,
+  pattern GL_DEPTH_ATTACHMENT,
+  pattern GL_DEPTH_BUFFER_BIT,
+  pattern GL_DEPTH_CLAMP,
+  pattern GL_DEPTH_CLEAR_VALUE,
+  pattern GL_DEPTH_COMPONENT,
+  pattern GL_DEPTH_COMPONENT16,
+  pattern GL_DEPTH_COMPONENT24,
+  pattern GL_DEPTH_COMPONENT32,
+  pattern GL_DEPTH_COMPONENT32F,
+  pattern GL_DEPTH_FUNC,
+  pattern GL_DEPTH_RANGE,
+  pattern GL_DEPTH_STENCIL,
+  pattern GL_DEPTH_STENCIL_ATTACHMENT,
+  pattern GL_DEPTH_TEST,
+  pattern GL_DEPTH_WRITEMASK,
+  pattern GL_DITHER,
+  pattern GL_DONT_CARE,
+  pattern GL_DOUBLE,
+  pattern GL_DOUBLEBUFFER,
+  pattern GL_DRAW_BUFFER,
+  pattern GL_DRAW_BUFFER0,
+  pattern GL_DRAW_BUFFER1,
+  pattern GL_DRAW_BUFFER10,
+  pattern GL_DRAW_BUFFER11,
+  pattern GL_DRAW_BUFFER12,
+  pattern GL_DRAW_BUFFER13,
+  pattern GL_DRAW_BUFFER14,
+  pattern GL_DRAW_BUFFER15,
+  pattern GL_DRAW_BUFFER2,
+  pattern GL_DRAW_BUFFER3,
+  pattern GL_DRAW_BUFFER4,
+  pattern GL_DRAW_BUFFER5,
+  pattern GL_DRAW_BUFFER6,
+  pattern GL_DRAW_BUFFER7,
+  pattern GL_DRAW_BUFFER8,
+  pattern GL_DRAW_BUFFER9,
+  pattern GL_DRAW_FRAMEBUFFER,
+  pattern GL_DRAW_FRAMEBUFFER_BINDING,
+  pattern GL_DST_ALPHA,
+  pattern GL_DST_COLOR,
+  pattern GL_DYNAMIC_COPY,
+  pattern GL_DYNAMIC_DRAW,
+  pattern GL_DYNAMIC_READ,
+  pattern GL_ELEMENT_ARRAY_BUFFER,
+  pattern GL_ELEMENT_ARRAY_BUFFER_BINDING,
+  pattern GL_EQUAL,
+  pattern GL_EQUIV,
+  pattern GL_EXTENSIONS,
+  pattern GL_FALSE,
+  pattern GL_FASTEST,
+  pattern GL_FILL,
+  pattern GL_FIRST_VERTEX_CONVENTION,
+  pattern GL_FIXED_ONLY,
+  pattern GL_FLOAT,
+  pattern GL_FLOAT_32_UNSIGNED_INT_24_8_REV,
+  pattern GL_FLOAT_MAT2,
+  pattern GL_FLOAT_MAT2x3,
+  pattern GL_FLOAT_MAT2x4,
+  pattern GL_FLOAT_MAT3,
+  pattern GL_FLOAT_MAT3x2,
+  pattern GL_FLOAT_MAT3x4,
+  pattern GL_FLOAT_MAT4,
+  pattern GL_FLOAT_MAT4x2,
+  pattern GL_FLOAT_MAT4x3,
+  pattern GL_FLOAT_VEC2,
+  pattern GL_FLOAT_VEC3,
+  pattern GL_FLOAT_VEC4,
+  pattern GL_FRAGMENT_SHADER,
+  pattern GL_FRAGMENT_SHADER_DERIVATIVE_HINT,
+  pattern GL_FRAMEBUFFER,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL,
+  pattern GL_FRAMEBUFFER_BINDING,
+  pattern GL_FRAMEBUFFER_COMPLETE,
+  pattern GL_FRAMEBUFFER_DEFAULT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER,
+  pattern GL_FRAMEBUFFER_SRGB,
+  pattern GL_FRAMEBUFFER_UNDEFINED,
+  pattern GL_FRAMEBUFFER_UNSUPPORTED,
+  pattern GL_FRONT,
+  pattern GL_FRONT_AND_BACK,
+  pattern GL_FRONT_FACE,
+  pattern GL_FRONT_LEFT,
+  pattern GL_FRONT_RIGHT,
+  pattern GL_FUNC_ADD,
+  pattern GL_FUNC_REVERSE_SUBTRACT,
+  pattern GL_FUNC_SUBTRACT,
+  pattern GL_GEOMETRY_INPUT_TYPE,
+  pattern GL_GEOMETRY_OUTPUT_TYPE,
+  pattern GL_GEOMETRY_SHADER,
+  pattern GL_GEOMETRY_VERTICES_OUT,
+  pattern GL_GEQUAL,
+  pattern GL_GREATER,
+  pattern GL_GREEN,
+  pattern GL_GREEN_INTEGER,
+  pattern GL_HALF_FLOAT,
+  pattern GL_INCR,
+  pattern GL_INCR_WRAP,
+  pattern GL_INFO_LOG_LENGTH,
+  pattern GL_INT,
+  pattern GL_INTERLEAVED_ATTRIBS,
+  pattern GL_INT_SAMPLER_1D,
+  pattern GL_INT_SAMPLER_1D_ARRAY,
+  pattern GL_INT_SAMPLER_2D,
+  pattern GL_INT_SAMPLER_2D_ARRAY,
+  pattern GL_INT_SAMPLER_2D_MULTISAMPLE,
+  pattern GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY,
+  pattern GL_INT_SAMPLER_2D_RECT,
+  pattern GL_INT_SAMPLER_3D,
+  pattern GL_INT_SAMPLER_BUFFER,
+  pattern GL_INT_SAMPLER_CUBE,
+  pattern GL_INT_VEC2,
+  pattern GL_INT_VEC3,
+  pattern GL_INT_VEC4,
+  pattern GL_INVALID_ENUM,
+  pattern GL_INVALID_FRAMEBUFFER_OPERATION,
+  pattern GL_INVALID_INDEX,
+  pattern GL_INVALID_OPERATION,
+  pattern GL_INVALID_VALUE,
+  pattern GL_INVERT,
+  pattern GL_KEEP,
+  pattern GL_LAST_VERTEX_CONVENTION,
+  pattern GL_LEFT,
+  pattern GL_LEQUAL,
+  pattern GL_LESS,
+  pattern GL_LINE,
+  pattern GL_LINEAR,
+  pattern GL_LINEAR_MIPMAP_LINEAR,
+  pattern GL_LINEAR_MIPMAP_NEAREST,
+  pattern GL_LINES,
+  pattern GL_LINES_ADJACENCY,
+  pattern GL_LINE_LOOP,
+  pattern GL_LINE_SMOOTH,
+  pattern GL_LINE_SMOOTH_HINT,
+  pattern GL_LINE_STRIP,
+  pattern GL_LINE_STRIP_ADJACENCY,
+  pattern GL_LINE_WIDTH,
+  pattern GL_LINE_WIDTH_GRANULARITY,
+  pattern GL_LINE_WIDTH_RANGE,
+  pattern GL_LINK_STATUS,
+  pattern GL_LOGIC_OP_MODE,
+  pattern GL_LOWER_LEFT,
+  pattern GL_MAJOR_VERSION,
+  pattern GL_MAP_FLUSH_EXPLICIT_BIT,
+  pattern GL_MAP_INVALIDATE_BUFFER_BIT,
+  pattern GL_MAP_INVALIDATE_RANGE_BIT,
+  pattern GL_MAP_READ_BIT,
+  pattern GL_MAP_UNSYNCHRONIZED_BIT,
+  pattern GL_MAP_WRITE_BIT,
+  pattern GL_MAX,
+  pattern GL_MAX_3D_TEXTURE_SIZE,
+  pattern GL_MAX_ARRAY_TEXTURE_LAYERS,
+  pattern GL_MAX_CLIP_DISTANCES,
+  pattern GL_MAX_COLOR_ATTACHMENTS,
+  pattern GL_MAX_COLOR_TEXTURE_SAMPLES,
+  pattern GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_COMBINED_UNIFORM_BLOCKS,
+  pattern GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS,
+  pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE,
+  pattern GL_MAX_DEPTH_TEXTURE_SAMPLES,
+  pattern GL_MAX_DRAW_BUFFERS,
+  pattern GL_MAX_ELEMENTS_INDICES,
+  pattern GL_MAX_ELEMENTS_VERTICES,
+  pattern GL_MAX_FRAGMENT_INPUT_COMPONENTS,
+  pattern GL_MAX_FRAGMENT_UNIFORM_BLOCKS,
+  pattern GL_MAX_FRAGMENT_UNIFORM_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_INPUT_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_OUTPUT_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_OUTPUT_VERTICES,
+  pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_UNIFORM_BLOCKS,
+  pattern GL_MAX_GEOMETRY_UNIFORM_COMPONENTS,
+  pattern GL_MAX_INTEGER_SAMPLES,
+  pattern GL_MAX_PROGRAM_TEXEL_OFFSET,
+  pattern GL_MAX_RECTANGLE_TEXTURE_SIZE,
+  pattern GL_MAX_RENDERBUFFER_SIZE,
+  pattern GL_MAX_SAMPLES,
+  pattern GL_MAX_SAMPLE_MASK_WORDS,
+  pattern GL_MAX_SERVER_WAIT_TIMEOUT,
+  pattern GL_MAX_TEXTURE_BUFFER_SIZE,
+  pattern GL_MAX_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_TEXTURE_LOD_BIAS,
+  pattern GL_MAX_TEXTURE_SIZE,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS,
+  pattern GL_MAX_UNIFORM_BLOCK_SIZE,
+  pattern GL_MAX_UNIFORM_BUFFER_BINDINGS,
+  pattern GL_MAX_VARYING_COMPONENTS,
+  pattern GL_MAX_VARYING_FLOATS,
+  pattern GL_MAX_VERTEX_ATTRIBS,
+  pattern GL_MAX_VERTEX_OUTPUT_COMPONENTS,
+  pattern GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_VERTEX_UNIFORM_BLOCKS,
+  pattern GL_MAX_VERTEX_UNIFORM_COMPONENTS,
+  pattern GL_MAX_VIEWPORT_DIMS,
+  pattern GL_MIN,
+  pattern GL_MINOR_VERSION,
+  pattern GL_MIN_PROGRAM_TEXEL_OFFSET,
+  pattern GL_MIRRORED_REPEAT,
+  pattern GL_MULTISAMPLE,
+  pattern GL_NAND,
+  pattern GL_NEAREST,
+  pattern GL_NEAREST_MIPMAP_LINEAR,
+  pattern GL_NEAREST_MIPMAP_NEAREST,
+  pattern GL_NEVER,
+  pattern GL_NICEST,
+  pattern GL_NONE,
+  pattern GL_NOOP,
+  pattern GL_NOR,
+  pattern GL_NOTEQUAL,
+  pattern GL_NO_ERROR,
+  pattern GL_NUM_COMPRESSED_TEXTURE_FORMATS,
+  pattern GL_NUM_EXTENSIONS,
+  pattern GL_OBJECT_TYPE,
+  pattern GL_ONE,
+  pattern GL_ONE_MINUS_CONSTANT_ALPHA,
+  pattern GL_ONE_MINUS_CONSTANT_COLOR,
+  pattern GL_ONE_MINUS_DST_ALPHA,
+  pattern GL_ONE_MINUS_DST_COLOR,
+  pattern GL_ONE_MINUS_SRC_ALPHA,
+  pattern GL_ONE_MINUS_SRC_COLOR,
+  pattern GL_OR,
+  pattern GL_OR_INVERTED,
+  pattern GL_OR_REVERSE,
+  pattern GL_OUT_OF_MEMORY,
+  pattern GL_PACK_ALIGNMENT,
+  pattern GL_PACK_IMAGE_HEIGHT,
+  pattern GL_PACK_LSB_FIRST,
+  pattern GL_PACK_ROW_LENGTH,
+  pattern GL_PACK_SKIP_IMAGES,
+  pattern GL_PACK_SKIP_PIXELS,
+  pattern GL_PACK_SKIP_ROWS,
+  pattern GL_PACK_SWAP_BYTES,
+  pattern GL_PIXEL_PACK_BUFFER,
+  pattern GL_PIXEL_PACK_BUFFER_BINDING,
+  pattern GL_PIXEL_UNPACK_BUFFER,
+  pattern GL_PIXEL_UNPACK_BUFFER_BINDING,
+  pattern GL_POINT,
+  pattern GL_POINTS,
+  pattern GL_POINT_FADE_THRESHOLD_SIZE,
+  pattern GL_POINT_SIZE,
+  pattern GL_POINT_SIZE_GRANULARITY,
+  pattern GL_POINT_SIZE_RANGE,
+  pattern GL_POINT_SPRITE_COORD_ORIGIN,
+  pattern GL_POLYGON_MODE,
+  pattern GL_POLYGON_OFFSET_FACTOR,
+  pattern GL_POLYGON_OFFSET_FILL,
+  pattern GL_POLYGON_OFFSET_LINE,
+  pattern GL_POLYGON_OFFSET_POINT,
+  pattern GL_POLYGON_OFFSET_UNITS,
+  pattern GL_POLYGON_SMOOTH,
+  pattern GL_POLYGON_SMOOTH_HINT,
+  pattern GL_PRIMITIVES_GENERATED,
+  pattern GL_PRIMITIVE_RESTART,
+  pattern GL_PRIMITIVE_RESTART_INDEX,
+  pattern GL_PROGRAM_POINT_SIZE,
+  pattern GL_PROVOKING_VERTEX,
+  pattern GL_PROXY_TEXTURE_1D,
+  pattern GL_PROXY_TEXTURE_1D_ARRAY,
+  pattern GL_PROXY_TEXTURE_2D,
+  pattern GL_PROXY_TEXTURE_2D_ARRAY,
+  pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE,
+  pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_PROXY_TEXTURE_3D,
+  pattern GL_PROXY_TEXTURE_CUBE_MAP,
+  pattern GL_PROXY_TEXTURE_RECTANGLE,
+  pattern GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION,
+  pattern GL_QUERY_BY_REGION_NO_WAIT,
+  pattern GL_QUERY_BY_REGION_WAIT,
+  pattern GL_QUERY_COUNTER_BITS,
+  pattern GL_QUERY_NO_WAIT,
+  pattern GL_QUERY_RESULT,
+  pattern GL_QUERY_RESULT_AVAILABLE,
+  pattern GL_QUERY_WAIT,
+  pattern GL_R11F_G11F_B10F,
+  pattern GL_R16,
+  pattern GL_R16F,
+  pattern GL_R16I,
+  pattern GL_R16UI,
+  pattern GL_R16_SNORM,
+  pattern GL_R32F,
+  pattern GL_R32I,
+  pattern GL_R32UI,
+  pattern GL_R3_G3_B2,
+  pattern GL_R8,
+  pattern GL_R8I,
+  pattern GL_R8UI,
+  pattern GL_R8_SNORM,
+  pattern GL_RASTERIZER_DISCARD,
+  pattern GL_READ_BUFFER,
+  pattern GL_READ_FRAMEBUFFER,
+  pattern GL_READ_FRAMEBUFFER_BINDING,
+  pattern GL_READ_ONLY,
+  pattern GL_READ_WRITE,
+  pattern GL_RED,
+  pattern GL_RED_INTEGER,
+  pattern GL_RENDERBUFFER,
+  pattern GL_RENDERBUFFER_ALPHA_SIZE,
+  pattern GL_RENDERBUFFER_BINDING,
+  pattern GL_RENDERBUFFER_BLUE_SIZE,
+  pattern GL_RENDERBUFFER_DEPTH_SIZE,
+  pattern GL_RENDERBUFFER_GREEN_SIZE,
+  pattern GL_RENDERBUFFER_HEIGHT,
+  pattern GL_RENDERBUFFER_INTERNAL_FORMAT,
+  pattern GL_RENDERBUFFER_RED_SIZE,
+  pattern GL_RENDERBUFFER_SAMPLES,
+  pattern GL_RENDERBUFFER_STENCIL_SIZE,
+  pattern GL_RENDERBUFFER_WIDTH,
+  pattern GL_RENDERER,
+  pattern GL_REPEAT,
+  pattern GL_REPLACE,
+  pattern GL_RG,
+  pattern GL_RG16,
+  pattern GL_RG16F,
+  pattern GL_RG16I,
+  pattern GL_RG16UI,
+  pattern GL_RG16_SNORM,
+  pattern GL_RG32F,
+  pattern GL_RG32I,
+  pattern GL_RG32UI,
+  pattern GL_RG8,
+  pattern GL_RG8I,
+  pattern GL_RG8UI,
+  pattern GL_RG8_SNORM,
+  pattern GL_RGB,
+  pattern GL_RGB10,
+  pattern GL_RGB10_A2,
+  pattern GL_RGB12,
+  pattern GL_RGB16,
+  pattern GL_RGB16F,
+  pattern GL_RGB16I,
+  pattern GL_RGB16UI,
+  pattern GL_RGB16_SNORM,
+  pattern GL_RGB32F,
+  pattern GL_RGB32I,
+  pattern GL_RGB32UI,
+  pattern GL_RGB4,
+  pattern GL_RGB5,
+  pattern GL_RGB5_A1,
+  pattern GL_RGB8,
+  pattern GL_RGB8I,
+  pattern GL_RGB8UI,
+  pattern GL_RGB8_SNORM,
+  pattern GL_RGB9_E5,
+  pattern GL_RGBA,
+  pattern GL_RGBA12,
+  pattern GL_RGBA16,
+  pattern GL_RGBA16F,
+  pattern GL_RGBA16I,
+  pattern GL_RGBA16UI,
+  pattern GL_RGBA16_SNORM,
+  pattern GL_RGBA2,
+  pattern GL_RGBA32F,
+  pattern GL_RGBA32I,
+  pattern GL_RGBA32UI,
+  pattern GL_RGBA4,
+  pattern GL_RGBA8,
+  pattern GL_RGBA8I,
+  pattern GL_RGBA8UI,
+  pattern GL_RGBA8_SNORM,
+  pattern GL_RGBA_INTEGER,
+  pattern GL_RGB_INTEGER,
+  pattern GL_RG_INTEGER,
+  pattern GL_RIGHT,
+  pattern GL_SAMPLER_1D,
+  pattern GL_SAMPLER_1D_ARRAY,
+  pattern GL_SAMPLER_1D_ARRAY_SHADOW,
+  pattern GL_SAMPLER_1D_SHADOW,
+  pattern GL_SAMPLER_2D,
+  pattern GL_SAMPLER_2D_ARRAY,
+  pattern GL_SAMPLER_2D_ARRAY_SHADOW,
+  pattern GL_SAMPLER_2D_MULTISAMPLE,
+  pattern GL_SAMPLER_2D_MULTISAMPLE_ARRAY,
+  pattern GL_SAMPLER_2D_RECT,
+  pattern GL_SAMPLER_2D_RECT_SHADOW,
+  pattern GL_SAMPLER_2D_SHADOW,
+  pattern GL_SAMPLER_3D,
+  pattern GL_SAMPLER_BUFFER,
+  pattern GL_SAMPLER_CUBE,
+  pattern GL_SAMPLER_CUBE_SHADOW,
+  pattern GL_SAMPLES,
+  pattern GL_SAMPLES_PASSED,
+  pattern GL_SAMPLE_ALPHA_TO_COVERAGE,
+  pattern GL_SAMPLE_ALPHA_TO_ONE,
+  pattern GL_SAMPLE_BUFFERS,
+  pattern GL_SAMPLE_COVERAGE,
+  pattern GL_SAMPLE_COVERAGE_INVERT,
+  pattern GL_SAMPLE_COVERAGE_VALUE,
+  pattern GL_SAMPLE_MASK,
+  pattern GL_SAMPLE_MASK_VALUE,
+  pattern GL_SAMPLE_POSITION,
+  pattern GL_SCISSOR_BOX,
+  pattern GL_SCISSOR_TEST,
+  pattern GL_SEPARATE_ATTRIBS,
+  pattern GL_SET,
+  pattern GL_SHADER_SOURCE_LENGTH,
+  pattern GL_SHADER_TYPE,
+  pattern GL_SHADING_LANGUAGE_VERSION,
+  pattern GL_SHORT,
+  pattern GL_SIGNALED,
+  pattern GL_SIGNED_NORMALIZED,
+  pattern GL_SMOOTH_LINE_WIDTH_GRANULARITY,
+  pattern GL_SMOOTH_LINE_WIDTH_RANGE,
+  pattern GL_SMOOTH_POINT_SIZE_GRANULARITY,
+  pattern GL_SMOOTH_POINT_SIZE_RANGE,
+  pattern GL_SRC1_ALPHA,
+  pattern GL_SRC_ALPHA,
+  pattern GL_SRC_ALPHA_SATURATE,
+  pattern GL_SRC_COLOR,
+  pattern GL_SRGB,
+  pattern GL_SRGB8,
+  pattern GL_SRGB8_ALPHA8,
+  pattern GL_SRGB_ALPHA,
+  pattern GL_STATIC_COPY,
+  pattern GL_STATIC_DRAW,
+  pattern GL_STATIC_READ,
+  pattern GL_STENCIL,
+  pattern GL_STENCIL_ATTACHMENT,
+  pattern GL_STENCIL_BACK_FAIL,
+  pattern GL_STENCIL_BACK_FUNC,
+  pattern GL_STENCIL_BACK_PASS_DEPTH_FAIL,
+  pattern GL_STENCIL_BACK_PASS_DEPTH_PASS,
+  pattern GL_STENCIL_BACK_REF,
+  pattern GL_STENCIL_BACK_VALUE_MASK,
+  pattern GL_STENCIL_BACK_WRITEMASK,
+  pattern GL_STENCIL_BUFFER_BIT,
+  pattern GL_STENCIL_CLEAR_VALUE,
+  pattern GL_STENCIL_FAIL,
+  pattern GL_STENCIL_FUNC,
+  pattern GL_STENCIL_INDEX,
+  pattern GL_STENCIL_INDEX1,
+  pattern GL_STENCIL_INDEX16,
+  pattern GL_STENCIL_INDEX4,
+  pattern GL_STENCIL_INDEX8,
+  pattern GL_STENCIL_PASS_DEPTH_FAIL,
+  pattern GL_STENCIL_PASS_DEPTH_PASS,
+  pattern GL_STENCIL_REF,
+  pattern GL_STENCIL_TEST,
+  pattern GL_STENCIL_VALUE_MASK,
+  pattern GL_STENCIL_WRITEMASK,
+  pattern GL_STEREO,
+  pattern GL_STREAM_COPY,
+  pattern GL_STREAM_DRAW,
+  pattern GL_STREAM_READ,
+  pattern GL_SUBPIXEL_BITS,
+  pattern GL_SYNC_CONDITION,
+  pattern GL_SYNC_FENCE,
+  pattern GL_SYNC_FLAGS,
+  pattern GL_SYNC_FLUSH_COMMANDS_BIT,
+  pattern GL_SYNC_GPU_COMMANDS_COMPLETE,
+  pattern GL_SYNC_STATUS,
+  pattern GL_TEXTURE,
+  pattern GL_TEXTURE0,
+  pattern GL_TEXTURE1,
+  pattern GL_TEXTURE10,
+  pattern GL_TEXTURE11,
+  pattern GL_TEXTURE12,
+  pattern GL_TEXTURE13,
+  pattern GL_TEXTURE14,
+  pattern GL_TEXTURE15,
+  pattern GL_TEXTURE16,
+  pattern GL_TEXTURE17,
+  pattern GL_TEXTURE18,
+  pattern GL_TEXTURE19,
+  pattern GL_TEXTURE2,
+  pattern GL_TEXTURE20,
+  pattern GL_TEXTURE21,
+  pattern GL_TEXTURE22,
+  pattern GL_TEXTURE23,
+  pattern GL_TEXTURE24,
+  pattern GL_TEXTURE25,
+  pattern GL_TEXTURE26,
+  pattern GL_TEXTURE27,
+  pattern GL_TEXTURE28,
+  pattern GL_TEXTURE29,
+  pattern GL_TEXTURE3,
+  pattern GL_TEXTURE30,
+  pattern GL_TEXTURE31,
+  pattern GL_TEXTURE4,
+  pattern GL_TEXTURE5,
+  pattern GL_TEXTURE6,
+  pattern GL_TEXTURE7,
+  pattern GL_TEXTURE8,
+  pattern GL_TEXTURE9,
+  pattern GL_TEXTURE_1D,
+  pattern GL_TEXTURE_1D_ARRAY,
+  pattern GL_TEXTURE_2D,
+  pattern GL_TEXTURE_2D_ARRAY,
+  pattern GL_TEXTURE_2D_MULTISAMPLE,
+  pattern GL_TEXTURE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_TEXTURE_3D,
+  pattern GL_TEXTURE_ALPHA_SIZE,
+  pattern GL_TEXTURE_ALPHA_TYPE,
+  pattern GL_TEXTURE_BASE_LEVEL,
+  pattern GL_TEXTURE_BINDING_1D,
+  pattern GL_TEXTURE_BINDING_1D_ARRAY,
+  pattern GL_TEXTURE_BINDING_2D,
+  pattern GL_TEXTURE_BINDING_2D_ARRAY,
+  pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE,
+  pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY,
+  pattern GL_TEXTURE_BINDING_3D,
+  pattern GL_TEXTURE_BINDING_BUFFER,
+  pattern GL_TEXTURE_BINDING_CUBE_MAP,
+  pattern GL_TEXTURE_BINDING_RECTANGLE,
+  pattern GL_TEXTURE_BLUE_SIZE,
+  pattern GL_TEXTURE_BLUE_TYPE,
+  pattern GL_TEXTURE_BORDER_COLOR,
+  pattern GL_TEXTURE_BUFFER,
+  pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING,
+  pattern GL_TEXTURE_COMPARE_FUNC,
+  pattern GL_TEXTURE_COMPARE_MODE,
+  pattern GL_TEXTURE_COMPRESSED,
+  pattern GL_TEXTURE_COMPRESSED_IMAGE_SIZE,
+  pattern GL_TEXTURE_COMPRESSION_HINT,
+  pattern GL_TEXTURE_CUBE_MAP,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z,
+  pattern GL_TEXTURE_CUBE_MAP_SEAMLESS,
+  pattern GL_TEXTURE_DEPTH,
+  pattern GL_TEXTURE_DEPTH_SIZE,
+  pattern GL_TEXTURE_DEPTH_TYPE,
+  pattern GL_TEXTURE_FIXED_SAMPLE_LOCATIONS,
+  pattern GL_TEXTURE_GREEN_SIZE,
+  pattern GL_TEXTURE_GREEN_TYPE,
+  pattern GL_TEXTURE_HEIGHT,
+  pattern GL_TEXTURE_INTERNAL_FORMAT,
+  pattern GL_TEXTURE_LOD_BIAS,
+  pattern GL_TEXTURE_MAG_FILTER,
+  pattern GL_TEXTURE_MAX_LEVEL,
+  pattern GL_TEXTURE_MAX_LOD,
+  pattern GL_TEXTURE_MIN_FILTER,
+  pattern GL_TEXTURE_MIN_LOD,
+  pattern GL_TEXTURE_RECTANGLE,
+  pattern GL_TEXTURE_RED_SIZE,
+  pattern GL_TEXTURE_RED_TYPE,
+  pattern GL_TEXTURE_SAMPLES,
+  pattern GL_TEXTURE_SHARED_SIZE,
+  pattern GL_TEXTURE_STENCIL_SIZE,
+  pattern GL_TEXTURE_WIDTH,
+  pattern GL_TEXTURE_WRAP_R,
+  pattern GL_TEXTURE_WRAP_S,
+  pattern GL_TEXTURE_WRAP_T,
+  pattern GL_TIMEOUT_EXPIRED,
+  pattern GL_TIMEOUT_IGNORED,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_BINDING,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_MODE,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_SIZE,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_START,
+  pattern GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN,
+  pattern GL_TRANSFORM_FEEDBACK_VARYINGS,
+  pattern GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH,
+  pattern GL_TRIANGLES,
+  pattern GL_TRIANGLES_ADJACENCY,
+  pattern GL_TRIANGLE_FAN,
+  pattern GL_TRIANGLE_STRIP,
+  pattern GL_TRIANGLE_STRIP_ADJACENCY,
+  pattern GL_TRUE,
+  pattern GL_UNIFORM_ARRAY_STRIDE,
+  pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS,
+  pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES,
+  pattern GL_UNIFORM_BLOCK_BINDING,
+  pattern GL_UNIFORM_BLOCK_DATA_SIZE,
+  pattern GL_UNIFORM_BLOCK_INDEX,
+  pattern GL_UNIFORM_BLOCK_NAME_LENGTH,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER,
+  pattern GL_UNIFORM_BUFFER,
+  pattern GL_UNIFORM_BUFFER_BINDING,
+  pattern GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT,
+  pattern GL_UNIFORM_BUFFER_SIZE,
+  pattern GL_UNIFORM_BUFFER_START,
+  pattern GL_UNIFORM_IS_ROW_MAJOR,
+  pattern GL_UNIFORM_MATRIX_STRIDE,
+  pattern GL_UNIFORM_NAME_LENGTH,
+  pattern GL_UNIFORM_OFFSET,
+  pattern GL_UNIFORM_SIZE,
+  pattern GL_UNIFORM_TYPE,
+  pattern GL_UNPACK_ALIGNMENT,
+  pattern GL_UNPACK_IMAGE_HEIGHT,
+  pattern GL_UNPACK_LSB_FIRST,
+  pattern GL_UNPACK_ROW_LENGTH,
+  pattern GL_UNPACK_SKIP_IMAGES,
+  pattern GL_UNPACK_SKIP_PIXELS,
+  pattern GL_UNPACK_SKIP_ROWS,
+  pattern GL_UNPACK_SWAP_BYTES,
+  pattern GL_UNSIGNALED,
+  pattern GL_UNSIGNED_BYTE,
+  pattern GL_UNSIGNED_BYTE_2_3_3_REV,
+  pattern GL_UNSIGNED_BYTE_3_3_2,
+  pattern GL_UNSIGNED_INT,
+  pattern GL_UNSIGNED_INT_10F_11F_11F_REV,
+  pattern GL_UNSIGNED_INT_10_10_10_2,
+  pattern GL_UNSIGNED_INT_24_8,
+  pattern GL_UNSIGNED_INT_2_10_10_10_REV,
+  pattern GL_UNSIGNED_INT_5_9_9_9_REV,
+  pattern GL_UNSIGNED_INT_8_8_8_8,
+  pattern GL_UNSIGNED_INT_8_8_8_8_REV,
+  pattern GL_UNSIGNED_INT_SAMPLER_1D,
+  pattern GL_UNSIGNED_INT_SAMPLER_1D_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_RECT,
+  pattern GL_UNSIGNED_INT_SAMPLER_3D,
+  pattern GL_UNSIGNED_INT_SAMPLER_BUFFER,
+  pattern GL_UNSIGNED_INT_SAMPLER_CUBE,
+  pattern GL_UNSIGNED_INT_VEC2,
+  pattern GL_UNSIGNED_INT_VEC3,
+  pattern GL_UNSIGNED_INT_VEC4,
+  pattern GL_UNSIGNED_NORMALIZED,
+  pattern GL_UNSIGNED_SHORT,
+  pattern GL_UNSIGNED_SHORT_1_5_5_5_REV,
+  pattern GL_UNSIGNED_SHORT_4_4_4_4,
+  pattern GL_UNSIGNED_SHORT_4_4_4_4_REV,
+  pattern GL_UNSIGNED_SHORT_5_5_5_1,
+  pattern GL_UNSIGNED_SHORT_5_6_5,
+  pattern GL_UNSIGNED_SHORT_5_6_5_REV,
+  pattern GL_UPPER_LEFT,
+  pattern GL_VALIDATE_STATUS,
+  pattern GL_VENDOR,
+  pattern GL_VERSION,
+  pattern GL_VERTEX_ARRAY_BINDING,
+  pattern GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING,
+  pattern GL_VERTEX_ATTRIB_ARRAY_ENABLED,
+  pattern GL_VERTEX_ATTRIB_ARRAY_INTEGER,
+  pattern GL_VERTEX_ATTRIB_ARRAY_NORMALIZED,
+  pattern GL_VERTEX_ATTRIB_ARRAY_POINTER,
+  pattern GL_VERTEX_ATTRIB_ARRAY_SIZE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_STRIDE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_TYPE,
+  pattern GL_VERTEX_PROGRAM_POINT_SIZE,
+  pattern GL_VERTEX_SHADER,
+  pattern GL_VIEWPORT,
+  pattern GL_WAIT_FAILED,
+  pattern GL_WRITE_ONLY,
+  pattern GL_XOR,
+  pattern GL_ZERO,
+  -- * Functions
+  glActiveTexture,
+  glAttachShader,
+  glBeginConditionalRender,
+  glBeginQuery,
+  glBeginTransformFeedback,
+  glBindAttribLocation,
+  glBindBuffer,
+  glBindBufferBase,
+  glBindBufferRange,
+  glBindFragDataLocation,
+  glBindFramebuffer,
+  glBindRenderbuffer,
+  glBindTexture,
+  glBindVertexArray,
+  glBlendColor,
+  glBlendEquation,
+  glBlendEquationSeparate,
+  glBlendFunc,
+  glBlendFuncSeparate,
+  glBlitFramebuffer,
+  glBufferData,
+  glBufferSubData,
+  glCheckFramebufferStatus,
+  glClampColor,
+  glClear,
+  glClearBufferfi,
+  glClearBufferfv,
+  glClearBufferiv,
+  glClearBufferuiv,
+  glClearColor,
+  glClearDepth,
+  glClearStencil,
+  glClientWaitSync,
+  glColorMask,
+  glColorMaski,
+  glCompileShader,
+  glCompressedTexImage1D,
+  glCompressedTexImage2D,
+  glCompressedTexImage3D,
+  glCompressedTexSubImage1D,
+  glCompressedTexSubImage2D,
+  glCompressedTexSubImage3D,
+  glCopyBufferSubData,
+  glCopyTexImage1D,
+  glCopyTexImage2D,
+  glCopyTexSubImage1D,
+  glCopyTexSubImage2D,
+  glCopyTexSubImage3D,
+  glCreateProgram,
+  glCreateShader,
+  glCullFace,
+  glDeleteBuffers,
+  glDeleteFramebuffers,
+  glDeleteProgram,
+  glDeleteQueries,
+  glDeleteRenderbuffers,
+  glDeleteShader,
+  glDeleteSync,
+  glDeleteTextures,
+  glDeleteVertexArrays,
+  glDepthFunc,
+  glDepthMask,
+  glDepthRange,
+  glDetachShader,
+  glDisable,
+  glDisableVertexAttribArray,
+  glDisablei,
+  glDrawArrays,
+  glDrawArraysInstanced,
+  glDrawBuffer,
+  glDrawBuffers,
+  glDrawElements,
+  glDrawElementsBaseVertex,
+  glDrawElementsInstanced,
+  glDrawElementsInstancedBaseVertex,
+  glDrawRangeElements,
+  glDrawRangeElementsBaseVertex,
+  glEnable,
+  glEnableVertexAttribArray,
+  glEnablei,
+  glEndConditionalRender,
+  glEndQuery,
+  glEndTransformFeedback,
+  glFenceSync,
+  glFinish,
+  glFlush,
+  glFlushMappedBufferRange,
+  glFramebufferRenderbuffer,
+  glFramebufferTexture,
+  glFramebufferTexture1D,
+  glFramebufferTexture2D,
+  glFramebufferTexture3D,
+  glFramebufferTextureLayer,
+  glFrontFace,
+  glGenBuffers,
+  glGenFramebuffers,
+  glGenQueries,
+  glGenRenderbuffers,
+  glGenTextures,
+  glGenVertexArrays,
+  glGenerateMipmap,
+  glGetActiveAttrib,
+  glGetActiveUniform,
+  glGetActiveUniformBlockName,
+  glGetActiveUniformBlockiv,
+  glGetActiveUniformName,
+  glGetActiveUniformsiv,
+  glGetAttachedShaders,
+  glGetAttribLocation,
+  glGetBooleani_v,
+  glGetBooleanv,
+  glGetBufferParameteri64v,
+  glGetBufferParameteriv,
+  glGetBufferPointerv,
+  glGetBufferSubData,
+  glGetCompressedTexImage,
+  glGetDoublev,
+  glGetError,
+  glGetFloatv,
+  glGetFragDataLocation,
+  glGetFramebufferAttachmentParameteriv,
+  glGetInteger64i_v,
+  glGetInteger64v,
+  glGetIntegeri_v,
+  glGetIntegerv,
+  glGetMultisamplefv,
+  glGetProgramInfoLog,
+  glGetProgramiv,
+  glGetQueryObjectiv,
+  glGetQueryObjectuiv,
+  glGetQueryiv,
+  glGetRenderbufferParameteriv,
+  glGetShaderInfoLog,
+  glGetShaderSource,
+  glGetShaderiv,
+  glGetString,
+  glGetStringi,
+  glGetSynciv,
+  glGetTexImage,
+  glGetTexLevelParameterfv,
+  glGetTexLevelParameteriv,
+  glGetTexParameterIiv,
+  glGetTexParameterIuiv,
+  glGetTexParameterfv,
+  glGetTexParameteriv,
+  glGetTransformFeedbackVarying,
+  glGetUniformBlockIndex,
+  glGetUniformIndices,
+  glGetUniformLocation,
+  glGetUniformfv,
+  glGetUniformiv,
+  glGetUniformuiv,
+  glGetVertexAttribIiv,
+  glGetVertexAttribIuiv,
+  glGetVertexAttribPointerv,
+  glGetVertexAttribdv,
+  glGetVertexAttribfv,
+  glGetVertexAttribiv,
+  glHint,
+  glIsBuffer,
+  glIsEnabled,
+  glIsEnabledi,
+  glIsFramebuffer,
+  glIsProgram,
+  glIsQuery,
+  glIsRenderbuffer,
+  glIsShader,
+  glIsSync,
+  glIsTexture,
+  glIsVertexArray,
+  glLineWidth,
+  glLinkProgram,
+  glLogicOp,
+  glMapBuffer,
+  glMapBufferRange,
+  glMultiDrawArrays,
+  glMultiDrawElements,
+  glMultiDrawElementsBaseVertex,
+  glPixelStoref,
+  glPixelStorei,
+  glPointParameterf,
+  glPointParameterfv,
+  glPointParameteri,
+  glPointParameteriv,
+  glPointSize,
+  glPolygonMode,
+  glPolygonOffset,
+  glPrimitiveRestartIndex,
+  glProvokingVertex,
+  glReadBuffer,
+  glReadPixels,
+  glRenderbufferStorage,
+  glRenderbufferStorageMultisample,
+  glSampleCoverage,
+  glSampleMaski,
+  glScissor,
+  glShaderSource,
+  glStencilFunc,
+  glStencilFuncSeparate,
+  glStencilMask,
+  glStencilMaskSeparate,
+  glStencilOp,
+  glStencilOpSeparate,
+  glTexBuffer,
+  glTexImage1D,
+  glTexImage2D,
+  glTexImage2DMultisample,
+  glTexImage3D,
+  glTexImage3DMultisample,
+  glTexParameterIiv,
+  glTexParameterIuiv,
+  glTexParameterf,
+  glTexParameterfv,
+  glTexParameteri,
+  glTexParameteriv,
+  glTexSubImage1D,
+  glTexSubImage2D,
+  glTexSubImage3D,
+  glTransformFeedbackVaryings,
+  glUniform1f,
+  glUniform1fv,
+  glUniform1i,
+  glUniform1iv,
+  glUniform1ui,
+  glUniform1uiv,
+  glUniform2f,
+  glUniform2fv,
+  glUniform2i,
+  glUniform2iv,
+  glUniform2ui,
+  glUniform2uiv,
+  glUniform3f,
+  glUniform3fv,
+  glUniform3i,
+  glUniform3iv,
+  glUniform3ui,
+  glUniform3uiv,
+  glUniform4f,
+  glUniform4fv,
+  glUniform4i,
+  glUniform4iv,
+  glUniform4ui,
+  glUniform4uiv,
+  glUniformBlockBinding,
+  glUniformMatrix2fv,
+  glUniformMatrix2x3fv,
+  glUniformMatrix2x4fv,
+  glUniformMatrix3fv,
+  glUniformMatrix3x2fv,
+  glUniformMatrix3x4fv,
+  glUniformMatrix4fv,
+  glUniformMatrix4x2fv,
+  glUniformMatrix4x3fv,
+  glUnmapBuffer,
+  glUseProgram,
+  glValidateProgram,
+  glVertexAttrib1d,
+  glVertexAttrib1dv,
+  glVertexAttrib1f,
+  glVertexAttrib1fv,
+  glVertexAttrib1s,
+  glVertexAttrib1sv,
+  glVertexAttrib2d,
+  glVertexAttrib2dv,
+  glVertexAttrib2f,
+  glVertexAttrib2fv,
+  glVertexAttrib2s,
+  glVertexAttrib2sv,
+  glVertexAttrib3d,
+  glVertexAttrib3dv,
+  glVertexAttrib3f,
+  glVertexAttrib3fv,
+  glVertexAttrib3s,
+  glVertexAttrib3sv,
+  glVertexAttrib4Nbv,
+  glVertexAttrib4Niv,
+  glVertexAttrib4Nsv,
+  glVertexAttrib4Nub,
+  glVertexAttrib4Nubv,
+  glVertexAttrib4Nuiv,
+  glVertexAttrib4Nusv,
+  glVertexAttrib4bv,
+  glVertexAttrib4d,
+  glVertexAttrib4dv,
+  glVertexAttrib4f,
+  glVertexAttrib4fv,
+  glVertexAttrib4iv,
+  glVertexAttrib4s,
+  glVertexAttrib4sv,
+  glVertexAttrib4ubv,
+  glVertexAttrib4uiv,
+  glVertexAttrib4usv,
+  glVertexAttribI1i,
+  glVertexAttribI1iv,
+  glVertexAttribI1ui,
+  glVertexAttribI1uiv,
+  glVertexAttribI2i,
+  glVertexAttribI2iv,
+  glVertexAttribI2ui,
+  glVertexAttribI2uiv,
+  glVertexAttribI3i,
+  glVertexAttribI3iv,
+  glVertexAttribI3ui,
+  glVertexAttribI3uiv,
+  glVertexAttribI4bv,
+  glVertexAttribI4i,
+  glVertexAttribI4iv,
+  glVertexAttribI4sv,
+  glVertexAttribI4ubv,
+  glVertexAttribI4ui,
+  glVertexAttribI4uiv,
+  glVertexAttribI4usv,
+  glVertexAttribIPointer,
+  glVertexAttribPointer,
+  glViewport,
+  glWaitSync
+) where
+
+import Graphics.GL.Types
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/Core33.hs b/src/Graphics/GL/Core33.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Core33.hs
@@ -0,0 +1,1206 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Core33
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Core33 (
+  -- * Types
+  GLbitfield,
+  GLboolean,
+  GLbyte,
+  GLchar,
+  GLclampd,
+  GLclampf,
+  GLdouble,
+  GLenum,
+  GLfloat,
+  GLhalf,
+  GLint,
+  GLint64,
+  GLintptr,
+  GLshort,
+  GLsizei,
+  GLsizeiptr,
+  GLsync,
+  GLubyte,
+  GLuint,
+  GLuint64,
+  GLushort,
+  GLvoid,
+  -- * Enums
+  pattern GL_ACTIVE_ATTRIBUTES,
+  pattern GL_ACTIVE_ATTRIBUTE_MAX_LENGTH,
+  pattern GL_ACTIVE_TEXTURE,
+  pattern GL_ACTIVE_UNIFORMS,
+  pattern GL_ACTIVE_UNIFORM_BLOCKS,
+  pattern GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH,
+  pattern GL_ACTIVE_UNIFORM_MAX_LENGTH,
+  pattern GL_ALIASED_LINE_WIDTH_RANGE,
+  pattern GL_ALPHA,
+  pattern GL_ALREADY_SIGNALED,
+  pattern GL_ALWAYS,
+  pattern GL_AND,
+  pattern GL_AND_INVERTED,
+  pattern GL_AND_REVERSE,
+  pattern GL_ANY_SAMPLES_PASSED,
+  pattern GL_ARRAY_BUFFER,
+  pattern GL_ARRAY_BUFFER_BINDING,
+  pattern GL_ATTACHED_SHADERS,
+  pattern GL_BACK,
+  pattern GL_BACK_LEFT,
+  pattern GL_BACK_RIGHT,
+  pattern GL_BGR,
+  pattern GL_BGRA,
+  pattern GL_BGRA_INTEGER,
+  pattern GL_BGR_INTEGER,
+  pattern GL_BLEND,
+  pattern GL_BLEND_COLOR,
+  pattern GL_BLEND_DST,
+  pattern GL_BLEND_DST_ALPHA,
+  pattern GL_BLEND_DST_RGB,
+  pattern GL_BLEND_EQUATION,
+  pattern GL_BLEND_EQUATION_ALPHA,
+  pattern GL_BLEND_EQUATION_RGB,
+  pattern GL_BLEND_SRC,
+  pattern GL_BLEND_SRC_ALPHA,
+  pattern GL_BLEND_SRC_RGB,
+  pattern GL_BLUE,
+  pattern GL_BLUE_INTEGER,
+  pattern GL_BOOL,
+  pattern GL_BOOL_VEC2,
+  pattern GL_BOOL_VEC3,
+  pattern GL_BOOL_VEC4,
+  pattern GL_BUFFER_ACCESS,
+  pattern GL_BUFFER_ACCESS_FLAGS,
+  pattern GL_BUFFER_MAPPED,
+  pattern GL_BUFFER_MAP_LENGTH,
+  pattern GL_BUFFER_MAP_OFFSET,
+  pattern GL_BUFFER_MAP_POINTER,
+  pattern GL_BUFFER_SIZE,
+  pattern GL_BUFFER_USAGE,
+  pattern GL_BYTE,
+  pattern GL_CCW,
+  pattern GL_CLAMP_READ_COLOR,
+  pattern GL_CLAMP_TO_BORDER,
+  pattern GL_CLAMP_TO_EDGE,
+  pattern GL_CLEAR,
+  pattern GL_CLIP_DISTANCE0,
+  pattern GL_CLIP_DISTANCE1,
+  pattern GL_CLIP_DISTANCE2,
+  pattern GL_CLIP_DISTANCE3,
+  pattern GL_CLIP_DISTANCE4,
+  pattern GL_CLIP_DISTANCE5,
+  pattern GL_CLIP_DISTANCE6,
+  pattern GL_CLIP_DISTANCE7,
+  pattern GL_COLOR,
+  pattern GL_COLOR_ATTACHMENT0,
+  pattern GL_COLOR_ATTACHMENT1,
+  pattern GL_COLOR_ATTACHMENT10,
+  pattern GL_COLOR_ATTACHMENT11,
+  pattern GL_COLOR_ATTACHMENT12,
+  pattern GL_COLOR_ATTACHMENT13,
+  pattern GL_COLOR_ATTACHMENT14,
+  pattern GL_COLOR_ATTACHMENT15,
+  pattern GL_COLOR_ATTACHMENT16,
+  pattern GL_COLOR_ATTACHMENT17,
+  pattern GL_COLOR_ATTACHMENT18,
+  pattern GL_COLOR_ATTACHMENT19,
+  pattern GL_COLOR_ATTACHMENT2,
+  pattern GL_COLOR_ATTACHMENT20,
+  pattern GL_COLOR_ATTACHMENT21,
+  pattern GL_COLOR_ATTACHMENT22,
+  pattern GL_COLOR_ATTACHMENT23,
+  pattern GL_COLOR_ATTACHMENT24,
+  pattern GL_COLOR_ATTACHMENT25,
+  pattern GL_COLOR_ATTACHMENT26,
+  pattern GL_COLOR_ATTACHMENT27,
+  pattern GL_COLOR_ATTACHMENT28,
+  pattern GL_COLOR_ATTACHMENT29,
+  pattern GL_COLOR_ATTACHMENT3,
+  pattern GL_COLOR_ATTACHMENT30,
+  pattern GL_COLOR_ATTACHMENT31,
+  pattern GL_COLOR_ATTACHMENT4,
+  pattern GL_COLOR_ATTACHMENT5,
+  pattern GL_COLOR_ATTACHMENT6,
+  pattern GL_COLOR_ATTACHMENT7,
+  pattern GL_COLOR_ATTACHMENT8,
+  pattern GL_COLOR_ATTACHMENT9,
+  pattern GL_COLOR_BUFFER_BIT,
+  pattern GL_COLOR_CLEAR_VALUE,
+  pattern GL_COLOR_LOGIC_OP,
+  pattern GL_COLOR_WRITEMASK,
+  pattern GL_COMPARE_REF_TO_TEXTURE,
+  pattern GL_COMPILE_STATUS,
+  pattern GL_COMPRESSED_RED,
+  pattern GL_COMPRESSED_RED_RGTC1,
+  pattern GL_COMPRESSED_RG,
+  pattern GL_COMPRESSED_RGB,
+  pattern GL_COMPRESSED_RGBA,
+  pattern GL_COMPRESSED_RG_RGTC2,
+  pattern GL_COMPRESSED_SIGNED_RED_RGTC1,
+  pattern GL_COMPRESSED_SIGNED_RG_RGTC2,
+  pattern GL_COMPRESSED_SRGB,
+  pattern GL_COMPRESSED_SRGB_ALPHA,
+  pattern GL_COMPRESSED_TEXTURE_FORMATS,
+  pattern GL_CONDITION_SATISFIED,
+  pattern GL_CONSTANT_ALPHA,
+  pattern GL_CONSTANT_COLOR,
+  pattern GL_CONTEXT_COMPATIBILITY_PROFILE_BIT,
+  pattern GL_CONTEXT_CORE_PROFILE_BIT,
+  pattern GL_CONTEXT_FLAGS,
+  pattern GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT,
+  pattern GL_CONTEXT_PROFILE_MASK,
+  pattern GL_COPY,
+  pattern GL_COPY_INVERTED,
+  pattern GL_COPY_READ_BUFFER,
+  pattern GL_COPY_WRITE_BUFFER,
+  pattern GL_CULL_FACE,
+  pattern GL_CULL_FACE_MODE,
+  pattern GL_CURRENT_PROGRAM,
+  pattern GL_CURRENT_QUERY,
+  pattern GL_CURRENT_VERTEX_ATTRIB,
+  pattern GL_CW,
+  pattern GL_DECR,
+  pattern GL_DECR_WRAP,
+  pattern GL_DELETE_STATUS,
+  pattern GL_DEPTH,
+  pattern GL_DEPTH24_STENCIL8,
+  pattern GL_DEPTH32F_STENCIL8,
+  pattern GL_DEPTH_ATTACHMENT,
+  pattern GL_DEPTH_BUFFER_BIT,
+  pattern GL_DEPTH_CLAMP,
+  pattern GL_DEPTH_CLEAR_VALUE,
+  pattern GL_DEPTH_COMPONENT,
+  pattern GL_DEPTH_COMPONENT16,
+  pattern GL_DEPTH_COMPONENT24,
+  pattern GL_DEPTH_COMPONENT32,
+  pattern GL_DEPTH_COMPONENT32F,
+  pattern GL_DEPTH_FUNC,
+  pattern GL_DEPTH_RANGE,
+  pattern GL_DEPTH_STENCIL,
+  pattern GL_DEPTH_STENCIL_ATTACHMENT,
+  pattern GL_DEPTH_TEST,
+  pattern GL_DEPTH_WRITEMASK,
+  pattern GL_DITHER,
+  pattern GL_DONT_CARE,
+  pattern GL_DOUBLE,
+  pattern GL_DOUBLEBUFFER,
+  pattern GL_DRAW_BUFFER,
+  pattern GL_DRAW_BUFFER0,
+  pattern GL_DRAW_BUFFER1,
+  pattern GL_DRAW_BUFFER10,
+  pattern GL_DRAW_BUFFER11,
+  pattern GL_DRAW_BUFFER12,
+  pattern GL_DRAW_BUFFER13,
+  pattern GL_DRAW_BUFFER14,
+  pattern GL_DRAW_BUFFER15,
+  pattern GL_DRAW_BUFFER2,
+  pattern GL_DRAW_BUFFER3,
+  pattern GL_DRAW_BUFFER4,
+  pattern GL_DRAW_BUFFER5,
+  pattern GL_DRAW_BUFFER6,
+  pattern GL_DRAW_BUFFER7,
+  pattern GL_DRAW_BUFFER8,
+  pattern GL_DRAW_BUFFER9,
+  pattern GL_DRAW_FRAMEBUFFER,
+  pattern GL_DRAW_FRAMEBUFFER_BINDING,
+  pattern GL_DST_ALPHA,
+  pattern GL_DST_COLOR,
+  pattern GL_DYNAMIC_COPY,
+  pattern GL_DYNAMIC_DRAW,
+  pattern GL_DYNAMIC_READ,
+  pattern GL_ELEMENT_ARRAY_BUFFER,
+  pattern GL_ELEMENT_ARRAY_BUFFER_BINDING,
+  pattern GL_EQUAL,
+  pattern GL_EQUIV,
+  pattern GL_EXTENSIONS,
+  pattern GL_FALSE,
+  pattern GL_FASTEST,
+  pattern GL_FILL,
+  pattern GL_FIRST_VERTEX_CONVENTION,
+  pattern GL_FIXED_ONLY,
+  pattern GL_FLOAT,
+  pattern GL_FLOAT_32_UNSIGNED_INT_24_8_REV,
+  pattern GL_FLOAT_MAT2,
+  pattern GL_FLOAT_MAT2x3,
+  pattern GL_FLOAT_MAT2x4,
+  pattern GL_FLOAT_MAT3,
+  pattern GL_FLOAT_MAT3x2,
+  pattern GL_FLOAT_MAT3x4,
+  pattern GL_FLOAT_MAT4,
+  pattern GL_FLOAT_MAT4x2,
+  pattern GL_FLOAT_MAT4x3,
+  pattern GL_FLOAT_VEC2,
+  pattern GL_FLOAT_VEC3,
+  pattern GL_FLOAT_VEC4,
+  pattern GL_FRAGMENT_SHADER,
+  pattern GL_FRAGMENT_SHADER_DERIVATIVE_HINT,
+  pattern GL_FRAMEBUFFER,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL,
+  pattern GL_FRAMEBUFFER_BINDING,
+  pattern GL_FRAMEBUFFER_COMPLETE,
+  pattern GL_FRAMEBUFFER_DEFAULT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER,
+  pattern GL_FRAMEBUFFER_SRGB,
+  pattern GL_FRAMEBUFFER_UNDEFINED,
+  pattern GL_FRAMEBUFFER_UNSUPPORTED,
+  pattern GL_FRONT,
+  pattern GL_FRONT_AND_BACK,
+  pattern GL_FRONT_FACE,
+  pattern GL_FRONT_LEFT,
+  pattern GL_FRONT_RIGHT,
+  pattern GL_FUNC_ADD,
+  pattern GL_FUNC_REVERSE_SUBTRACT,
+  pattern GL_FUNC_SUBTRACT,
+  pattern GL_GEOMETRY_INPUT_TYPE,
+  pattern GL_GEOMETRY_OUTPUT_TYPE,
+  pattern GL_GEOMETRY_SHADER,
+  pattern GL_GEOMETRY_VERTICES_OUT,
+  pattern GL_GEQUAL,
+  pattern GL_GREATER,
+  pattern GL_GREEN,
+  pattern GL_GREEN_INTEGER,
+  pattern GL_HALF_FLOAT,
+  pattern GL_INCR,
+  pattern GL_INCR_WRAP,
+  pattern GL_INFO_LOG_LENGTH,
+  pattern GL_INT,
+  pattern GL_INTERLEAVED_ATTRIBS,
+  pattern GL_INT_2_10_10_10_REV,
+  pattern GL_INT_SAMPLER_1D,
+  pattern GL_INT_SAMPLER_1D_ARRAY,
+  pattern GL_INT_SAMPLER_2D,
+  pattern GL_INT_SAMPLER_2D_ARRAY,
+  pattern GL_INT_SAMPLER_2D_MULTISAMPLE,
+  pattern GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY,
+  pattern GL_INT_SAMPLER_2D_RECT,
+  pattern GL_INT_SAMPLER_3D,
+  pattern GL_INT_SAMPLER_BUFFER,
+  pattern GL_INT_SAMPLER_CUBE,
+  pattern GL_INT_VEC2,
+  pattern GL_INT_VEC3,
+  pattern GL_INT_VEC4,
+  pattern GL_INVALID_ENUM,
+  pattern GL_INVALID_FRAMEBUFFER_OPERATION,
+  pattern GL_INVALID_INDEX,
+  pattern GL_INVALID_OPERATION,
+  pattern GL_INVALID_VALUE,
+  pattern GL_INVERT,
+  pattern GL_KEEP,
+  pattern GL_LAST_VERTEX_CONVENTION,
+  pattern GL_LEFT,
+  pattern GL_LEQUAL,
+  pattern GL_LESS,
+  pattern GL_LINE,
+  pattern GL_LINEAR,
+  pattern GL_LINEAR_MIPMAP_LINEAR,
+  pattern GL_LINEAR_MIPMAP_NEAREST,
+  pattern GL_LINES,
+  pattern GL_LINES_ADJACENCY,
+  pattern GL_LINE_LOOP,
+  pattern GL_LINE_SMOOTH,
+  pattern GL_LINE_SMOOTH_HINT,
+  pattern GL_LINE_STRIP,
+  pattern GL_LINE_STRIP_ADJACENCY,
+  pattern GL_LINE_WIDTH,
+  pattern GL_LINE_WIDTH_GRANULARITY,
+  pattern GL_LINE_WIDTH_RANGE,
+  pattern GL_LINK_STATUS,
+  pattern GL_LOGIC_OP_MODE,
+  pattern GL_LOWER_LEFT,
+  pattern GL_MAJOR_VERSION,
+  pattern GL_MAP_FLUSH_EXPLICIT_BIT,
+  pattern GL_MAP_INVALIDATE_BUFFER_BIT,
+  pattern GL_MAP_INVALIDATE_RANGE_BIT,
+  pattern GL_MAP_READ_BIT,
+  pattern GL_MAP_UNSYNCHRONIZED_BIT,
+  pattern GL_MAP_WRITE_BIT,
+  pattern GL_MAX,
+  pattern GL_MAX_3D_TEXTURE_SIZE,
+  pattern GL_MAX_ARRAY_TEXTURE_LAYERS,
+  pattern GL_MAX_CLIP_DISTANCES,
+  pattern GL_MAX_COLOR_ATTACHMENTS,
+  pattern GL_MAX_COLOR_TEXTURE_SAMPLES,
+  pattern GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_COMBINED_UNIFORM_BLOCKS,
+  pattern GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS,
+  pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE,
+  pattern GL_MAX_DEPTH_TEXTURE_SAMPLES,
+  pattern GL_MAX_DRAW_BUFFERS,
+  pattern GL_MAX_DUAL_SOURCE_DRAW_BUFFERS,
+  pattern GL_MAX_ELEMENTS_INDICES,
+  pattern GL_MAX_ELEMENTS_VERTICES,
+  pattern GL_MAX_FRAGMENT_INPUT_COMPONENTS,
+  pattern GL_MAX_FRAGMENT_UNIFORM_BLOCKS,
+  pattern GL_MAX_FRAGMENT_UNIFORM_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_INPUT_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_OUTPUT_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_OUTPUT_VERTICES,
+  pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_UNIFORM_BLOCKS,
+  pattern GL_MAX_GEOMETRY_UNIFORM_COMPONENTS,
+  pattern GL_MAX_INTEGER_SAMPLES,
+  pattern GL_MAX_PROGRAM_TEXEL_OFFSET,
+  pattern GL_MAX_RECTANGLE_TEXTURE_SIZE,
+  pattern GL_MAX_RENDERBUFFER_SIZE,
+  pattern GL_MAX_SAMPLES,
+  pattern GL_MAX_SAMPLE_MASK_WORDS,
+  pattern GL_MAX_SERVER_WAIT_TIMEOUT,
+  pattern GL_MAX_TEXTURE_BUFFER_SIZE,
+  pattern GL_MAX_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_TEXTURE_LOD_BIAS,
+  pattern GL_MAX_TEXTURE_SIZE,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS,
+  pattern GL_MAX_UNIFORM_BLOCK_SIZE,
+  pattern GL_MAX_UNIFORM_BUFFER_BINDINGS,
+  pattern GL_MAX_VARYING_COMPONENTS,
+  pattern GL_MAX_VARYING_FLOATS,
+  pattern GL_MAX_VERTEX_ATTRIBS,
+  pattern GL_MAX_VERTEX_OUTPUT_COMPONENTS,
+  pattern GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_VERTEX_UNIFORM_BLOCKS,
+  pattern GL_MAX_VERTEX_UNIFORM_COMPONENTS,
+  pattern GL_MAX_VIEWPORT_DIMS,
+  pattern GL_MIN,
+  pattern GL_MINOR_VERSION,
+  pattern GL_MIN_PROGRAM_TEXEL_OFFSET,
+  pattern GL_MIRRORED_REPEAT,
+  pattern GL_MULTISAMPLE,
+  pattern GL_NAND,
+  pattern GL_NEAREST,
+  pattern GL_NEAREST_MIPMAP_LINEAR,
+  pattern GL_NEAREST_MIPMAP_NEAREST,
+  pattern GL_NEVER,
+  pattern GL_NICEST,
+  pattern GL_NONE,
+  pattern GL_NOOP,
+  pattern GL_NOR,
+  pattern GL_NOTEQUAL,
+  pattern GL_NO_ERROR,
+  pattern GL_NUM_COMPRESSED_TEXTURE_FORMATS,
+  pattern GL_NUM_EXTENSIONS,
+  pattern GL_OBJECT_TYPE,
+  pattern GL_ONE,
+  pattern GL_ONE_MINUS_CONSTANT_ALPHA,
+  pattern GL_ONE_MINUS_CONSTANT_COLOR,
+  pattern GL_ONE_MINUS_DST_ALPHA,
+  pattern GL_ONE_MINUS_DST_COLOR,
+  pattern GL_ONE_MINUS_SRC1_ALPHA,
+  pattern GL_ONE_MINUS_SRC1_COLOR,
+  pattern GL_ONE_MINUS_SRC_ALPHA,
+  pattern GL_ONE_MINUS_SRC_COLOR,
+  pattern GL_OR,
+  pattern GL_OR_INVERTED,
+  pattern GL_OR_REVERSE,
+  pattern GL_OUT_OF_MEMORY,
+  pattern GL_PACK_ALIGNMENT,
+  pattern GL_PACK_IMAGE_HEIGHT,
+  pattern GL_PACK_LSB_FIRST,
+  pattern GL_PACK_ROW_LENGTH,
+  pattern GL_PACK_SKIP_IMAGES,
+  pattern GL_PACK_SKIP_PIXELS,
+  pattern GL_PACK_SKIP_ROWS,
+  pattern GL_PACK_SWAP_BYTES,
+  pattern GL_PIXEL_PACK_BUFFER,
+  pattern GL_PIXEL_PACK_BUFFER_BINDING,
+  pattern GL_PIXEL_UNPACK_BUFFER,
+  pattern GL_PIXEL_UNPACK_BUFFER_BINDING,
+  pattern GL_POINT,
+  pattern GL_POINTS,
+  pattern GL_POINT_FADE_THRESHOLD_SIZE,
+  pattern GL_POINT_SIZE,
+  pattern GL_POINT_SIZE_GRANULARITY,
+  pattern GL_POINT_SIZE_RANGE,
+  pattern GL_POINT_SPRITE_COORD_ORIGIN,
+  pattern GL_POLYGON_MODE,
+  pattern GL_POLYGON_OFFSET_FACTOR,
+  pattern GL_POLYGON_OFFSET_FILL,
+  pattern GL_POLYGON_OFFSET_LINE,
+  pattern GL_POLYGON_OFFSET_POINT,
+  pattern GL_POLYGON_OFFSET_UNITS,
+  pattern GL_POLYGON_SMOOTH,
+  pattern GL_POLYGON_SMOOTH_HINT,
+  pattern GL_PRIMITIVES_GENERATED,
+  pattern GL_PRIMITIVE_RESTART,
+  pattern GL_PRIMITIVE_RESTART_INDEX,
+  pattern GL_PROGRAM_POINT_SIZE,
+  pattern GL_PROVOKING_VERTEX,
+  pattern GL_PROXY_TEXTURE_1D,
+  pattern GL_PROXY_TEXTURE_1D_ARRAY,
+  pattern GL_PROXY_TEXTURE_2D,
+  pattern GL_PROXY_TEXTURE_2D_ARRAY,
+  pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE,
+  pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_PROXY_TEXTURE_3D,
+  pattern GL_PROXY_TEXTURE_CUBE_MAP,
+  pattern GL_PROXY_TEXTURE_RECTANGLE,
+  pattern GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION,
+  pattern GL_QUERY_BY_REGION_NO_WAIT,
+  pattern GL_QUERY_BY_REGION_WAIT,
+  pattern GL_QUERY_COUNTER_BITS,
+  pattern GL_QUERY_NO_WAIT,
+  pattern GL_QUERY_RESULT,
+  pattern GL_QUERY_RESULT_AVAILABLE,
+  pattern GL_QUERY_WAIT,
+  pattern GL_R11F_G11F_B10F,
+  pattern GL_R16,
+  pattern GL_R16F,
+  pattern GL_R16I,
+  pattern GL_R16UI,
+  pattern GL_R16_SNORM,
+  pattern GL_R32F,
+  pattern GL_R32I,
+  pattern GL_R32UI,
+  pattern GL_R3_G3_B2,
+  pattern GL_R8,
+  pattern GL_R8I,
+  pattern GL_R8UI,
+  pattern GL_R8_SNORM,
+  pattern GL_RASTERIZER_DISCARD,
+  pattern GL_READ_BUFFER,
+  pattern GL_READ_FRAMEBUFFER,
+  pattern GL_READ_FRAMEBUFFER_BINDING,
+  pattern GL_READ_ONLY,
+  pattern GL_READ_WRITE,
+  pattern GL_RED,
+  pattern GL_RED_INTEGER,
+  pattern GL_RENDERBUFFER,
+  pattern GL_RENDERBUFFER_ALPHA_SIZE,
+  pattern GL_RENDERBUFFER_BINDING,
+  pattern GL_RENDERBUFFER_BLUE_SIZE,
+  pattern GL_RENDERBUFFER_DEPTH_SIZE,
+  pattern GL_RENDERBUFFER_GREEN_SIZE,
+  pattern GL_RENDERBUFFER_HEIGHT,
+  pattern GL_RENDERBUFFER_INTERNAL_FORMAT,
+  pattern GL_RENDERBUFFER_RED_SIZE,
+  pattern GL_RENDERBUFFER_SAMPLES,
+  pattern GL_RENDERBUFFER_STENCIL_SIZE,
+  pattern GL_RENDERBUFFER_WIDTH,
+  pattern GL_RENDERER,
+  pattern GL_REPEAT,
+  pattern GL_REPLACE,
+  pattern GL_RG,
+  pattern GL_RG16,
+  pattern GL_RG16F,
+  pattern GL_RG16I,
+  pattern GL_RG16UI,
+  pattern GL_RG16_SNORM,
+  pattern GL_RG32F,
+  pattern GL_RG32I,
+  pattern GL_RG32UI,
+  pattern GL_RG8,
+  pattern GL_RG8I,
+  pattern GL_RG8UI,
+  pattern GL_RG8_SNORM,
+  pattern GL_RGB,
+  pattern GL_RGB10,
+  pattern GL_RGB10_A2,
+  pattern GL_RGB10_A2UI,
+  pattern GL_RGB12,
+  pattern GL_RGB16,
+  pattern GL_RGB16F,
+  pattern GL_RGB16I,
+  pattern GL_RGB16UI,
+  pattern GL_RGB16_SNORM,
+  pattern GL_RGB32F,
+  pattern GL_RGB32I,
+  pattern GL_RGB32UI,
+  pattern GL_RGB4,
+  pattern GL_RGB5,
+  pattern GL_RGB5_A1,
+  pattern GL_RGB8,
+  pattern GL_RGB8I,
+  pattern GL_RGB8UI,
+  pattern GL_RGB8_SNORM,
+  pattern GL_RGB9_E5,
+  pattern GL_RGBA,
+  pattern GL_RGBA12,
+  pattern GL_RGBA16,
+  pattern GL_RGBA16F,
+  pattern GL_RGBA16I,
+  pattern GL_RGBA16UI,
+  pattern GL_RGBA16_SNORM,
+  pattern GL_RGBA2,
+  pattern GL_RGBA32F,
+  pattern GL_RGBA32I,
+  pattern GL_RGBA32UI,
+  pattern GL_RGBA4,
+  pattern GL_RGBA8,
+  pattern GL_RGBA8I,
+  pattern GL_RGBA8UI,
+  pattern GL_RGBA8_SNORM,
+  pattern GL_RGBA_INTEGER,
+  pattern GL_RGB_INTEGER,
+  pattern GL_RG_INTEGER,
+  pattern GL_RIGHT,
+  pattern GL_SAMPLER_1D,
+  pattern GL_SAMPLER_1D_ARRAY,
+  pattern GL_SAMPLER_1D_ARRAY_SHADOW,
+  pattern GL_SAMPLER_1D_SHADOW,
+  pattern GL_SAMPLER_2D,
+  pattern GL_SAMPLER_2D_ARRAY,
+  pattern GL_SAMPLER_2D_ARRAY_SHADOW,
+  pattern GL_SAMPLER_2D_MULTISAMPLE,
+  pattern GL_SAMPLER_2D_MULTISAMPLE_ARRAY,
+  pattern GL_SAMPLER_2D_RECT,
+  pattern GL_SAMPLER_2D_RECT_SHADOW,
+  pattern GL_SAMPLER_2D_SHADOW,
+  pattern GL_SAMPLER_3D,
+  pattern GL_SAMPLER_BINDING,
+  pattern GL_SAMPLER_BUFFER,
+  pattern GL_SAMPLER_CUBE,
+  pattern GL_SAMPLER_CUBE_SHADOW,
+  pattern GL_SAMPLES,
+  pattern GL_SAMPLES_PASSED,
+  pattern GL_SAMPLE_ALPHA_TO_COVERAGE,
+  pattern GL_SAMPLE_ALPHA_TO_ONE,
+  pattern GL_SAMPLE_BUFFERS,
+  pattern GL_SAMPLE_COVERAGE,
+  pattern GL_SAMPLE_COVERAGE_INVERT,
+  pattern GL_SAMPLE_COVERAGE_VALUE,
+  pattern GL_SAMPLE_MASK,
+  pattern GL_SAMPLE_MASK_VALUE,
+  pattern GL_SAMPLE_POSITION,
+  pattern GL_SCISSOR_BOX,
+  pattern GL_SCISSOR_TEST,
+  pattern GL_SEPARATE_ATTRIBS,
+  pattern GL_SET,
+  pattern GL_SHADER_SOURCE_LENGTH,
+  pattern GL_SHADER_TYPE,
+  pattern GL_SHADING_LANGUAGE_VERSION,
+  pattern GL_SHORT,
+  pattern GL_SIGNALED,
+  pattern GL_SIGNED_NORMALIZED,
+  pattern GL_SMOOTH_LINE_WIDTH_GRANULARITY,
+  pattern GL_SMOOTH_LINE_WIDTH_RANGE,
+  pattern GL_SMOOTH_POINT_SIZE_GRANULARITY,
+  pattern GL_SMOOTH_POINT_SIZE_RANGE,
+  pattern GL_SRC1_ALPHA,
+  pattern GL_SRC1_COLOR,
+  pattern GL_SRC_ALPHA,
+  pattern GL_SRC_ALPHA_SATURATE,
+  pattern GL_SRC_COLOR,
+  pattern GL_SRGB,
+  pattern GL_SRGB8,
+  pattern GL_SRGB8_ALPHA8,
+  pattern GL_SRGB_ALPHA,
+  pattern GL_STATIC_COPY,
+  pattern GL_STATIC_DRAW,
+  pattern GL_STATIC_READ,
+  pattern GL_STENCIL,
+  pattern GL_STENCIL_ATTACHMENT,
+  pattern GL_STENCIL_BACK_FAIL,
+  pattern GL_STENCIL_BACK_FUNC,
+  pattern GL_STENCIL_BACK_PASS_DEPTH_FAIL,
+  pattern GL_STENCIL_BACK_PASS_DEPTH_PASS,
+  pattern GL_STENCIL_BACK_REF,
+  pattern GL_STENCIL_BACK_VALUE_MASK,
+  pattern GL_STENCIL_BACK_WRITEMASK,
+  pattern GL_STENCIL_BUFFER_BIT,
+  pattern GL_STENCIL_CLEAR_VALUE,
+  pattern GL_STENCIL_FAIL,
+  pattern GL_STENCIL_FUNC,
+  pattern GL_STENCIL_INDEX,
+  pattern GL_STENCIL_INDEX1,
+  pattern GL_STENCIL_INDEX16,
+  pattern GL_STENCIL_INDEX4,
+  pattern GL_STENCIL_INDEX8,
+  pattern GL_STENCIL_PASS_DEPTH_FAIL,
+  pattern GL_STENCIL_PASS_DEPTH_PASS,
+  pattern GL_STENCIL_REF,
+  pattern GL_STENCIL_TEST,
+  pattern GL_STENCIL_VALUE_MASK,
+  pattern GL_STENCIL_WRITEMASK,
+  pattern GL_STEREO,
+  pattern GL_STREAM_COPY,
+  pattern GL_STREAM_DRAW,
+  pattern GL_STREAM_READ,
+  pattern GL_SUBPIXEL_BITS,
+  pattern GL_SYNC_CONDITION,
+  pattern GL_SYNC_FENCE,
+  pattern GL_SYNC_FLAGS,
+  pattern GL_SYNC_FLUSH_COMMANDS_BIT,
+  pattern GL_SYNC_GPU_COMMANDS_COMPLETE,
+  pattern GL_SYNC_STATUS,
+  pattern GL_TEXTURE,
+  pattern GL_TEXTURE0,
+  pattern GL_TEXTURE1,
+  pattern GL_TEXTURE10,
+  pattern GL_TEXTURE11,
+  pattern GL_TEXTURE12,
+  pattern GL_TEXTURE13,
+  pattern GL_TEXTURE14,
+  pattern GL_TEXTURE15,
+  pattern GL_TEXTURE16,
+  pattern GL_TEXTURE17,
+  pattern GL_TEXTURE18,
+  pattern GL_TEXTURE19,
+  pattern GL_TEXTURE2,
+  pattern GL_TEXTURE20,
+  pattern GL_TEXTURE21,
+  pattern GL_TEXTURE22,
+  pattern GL_TEXTURE23,
+  pattern GL_TEXTURE24,
+  pattern GL_TEXTURE25,
+  pattern GL_TEXTURE26,
+  pattern GL_TEXTURE27,
+  pattern GL_TEXTURE28,
+  pattern GL_TEXTURE29,
+  pattern GL_TEXTURE3,
+  pattern GL_TEXTURE30,
+  pattern GL_TEXTURE31,
+  pattern GL_TEXTURE4,
+  pattern GL_TEXTURE5,
+  pattern GL_TEXTURE6,
+  pattern GL_TEXTURE7,
+  pattern GL_TEXTURE8,
+  pattern GL_TEXTURE9,
+  pattern GL_TEXTURE_1D,
+  pattern GL_TEXTURE_1D_ARRAY,
+  pattern GL_TEXTURE_2D,
+  pattern GL_TEXTURE_2D_ARRAY,
+  pattern GL_TEXTURE_2D_MULTISAMPLE,
+  pattern GL_TEXTURE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_TEXTURE_3D,
+  pattern GL_TEXTURE_ALPHA_SIZE,
+  pattern GL_TEXTURE_ALPHA_TYPE,
+  pattern GL_TEXTURE_BASE_LEVEL,
+  pattern GL_TEXTURE_BINDING_1D,
+  pattern GL_TEXTURE_BINDING_1D_ARRAY,
+  pattern GL_TEXTURE_BINDING_2D,
+  pattern GL_TEXTURE_BINDING_2D_ARRAY,
+  pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE,
+  pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY,
+  pattern GL_TEXTURE_BINDING_3D,
+  pattern GL_TEXTURE_BINDING_BUFFER,
+  pattern GL_TEXTURE_BINDING_CUBE_MAP,
+  pattern GL_TEXTURE_BINDING_RECTANGLE,
+  pattern GL_TEXTURE_BLUE_SIZE,
+  pattern GL_TEXTURE_BLUE_TYPE,
+  pattern GL_TEXTURE_BORDER_COLOR,
+  pattern GL_TEXTURE_BUFFER,
+  pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING,
+  pattern GL_TEXTURE_COMPARE_FUNC,
+  pattern GL_TEXTURE_COMPARE_MODE,
+  pattern GL_TEXTURE_COMPRESSED,
+  pattern GL_TEXTURE_COMPRESSED_IMAGE_SIZE,
+  pattern GL_TEXTURE_COMPRESSION_HINT,
+  pattern GL_TEXTURE_CUBE_MAP,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z,
+  pattern GL_TEXTURE_CUBE_MAP_SEAMLESS,
+  pattern GL_TEXTURE_DEPTH,
+  pattern GL_TEXTURE_DEPTH_SIZE,
+  pattern GL_TEXTURE_DEPTH_TYPE,
+  pattern GL_TEXTURE_FIXED_SAMPLE_LOCATIONS,
+  pattern GL_TEXTURE_GREEN_SIZE,
+  pattern GL_TEXTURE_GREEN_TYPE,
+  pattern GL_TEXTURE_HEIGHT,
+  pattern GL_TEXTURE_INTERNAL_FORMAT,
+  pattern GL_TEXTURE_LOD_BIAS,
+  pattern GL_TEXTURE_MAG_FILTER,
+  pattern GL_TEXTURE_MAX_LEVEL,
+  pattern GL_TEXTURE_MAX_LOD,
+  pattern GL_TEXTURE_MIN_FILTER,
+  pattern GL_TEXTURE_MIN_LOD,
+  pattern GL_TEXTURE_RECTANGLE,
+  pattern GL_TEXTURE_RED_SIZE,
+  pattern GL_TEXTURE_RED_TYPE,
+  pattern GL_TEXTURE_SAMPLES,
+  pattern GL_TEXTURE_SHARED_SIZE,
+  pattern GL_TEXTURE_STENCIL_SIZE,
+  pattern GL_TEXTURE_SWIZZLE_A,
+  pattern GL_TEXTURE_SWIZZLE_B,
+  pattern GL_TEXTURE_SWIZZLE_G,
+  pattern GL_TEXTURE_SWIZZLE_R,
+  pattern GL_TEXTURE_SWIZZLE_RGBA,
+  pattern GL_TEXTURE_WIDTH,
+  pattern GL_TEXTURE_WRAP_R,
+  pattern GL_TEXTURE_WRAP_S,
+  pattern GL_TEXTURE_WRAP_T,
+  pattern GL_TIMEOUT_EXPIRED,
+  pattern GL_TIMEOUT_IGNORED,
+  pattern GL_TIMESTAMP,
+  pattern GL_TIME_ELAPSED,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_BINDING,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_MODE,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_SIZE,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_START,
+  pattern GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN,
+  pattern GL_TRANSFORM_FEEDBACK_VARYINGS,
+  pattern GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH,
+  pattern GL_TRIANGLES,
+  pattern GL_TRIANGLES_ADJACENCY,
+  pattern GL_TRIANGLE_FAN,
+  pattern GL_TRIANGLE_STRIP,
+  pattern GL_TRIANGLE_STRIP_ADJACENCY,
+  pattern GL_TRUE,
+  pattern GL_UNIFORM_ARRAY_STRIDE,
+  pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS,
+  pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES,
+  pattern GL_UNIFORM_BLOCK_BINDING,
+  pattern GL_UNIFORM_BLOCK_DATA_SIZE,
+  pattern GL_UNIFORM_BLOCK_INDEX,
+  pattern GL_UNIFORM_BLOCK_NAME_LENGTH,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER,
+  pattern GL_UNIFORM_BUFFER,
+  pattern GL_UNIFORM_BUFFER_BINDING,
+  pattern GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT,
+  pattern GL_UNIFORM_BUFFER_SIZE,
+  pattern GL_UNIFORM_BUFFER_START,
+  pattern GL_UNIFORM_IS_ROW_MAJOR,
+  pattern GL_UNIFORM_MATRIX_STRIDE,
+  pattern GL_UNIFORM_NAME_LENGTH,
+  pattern GL_UNIFORM_OFFSET,
+  pattern GL_UNIFORM_SIZE,
+  pattern GL_UNIFORM_TYPE,
+  pattern GL_UNPACK_ALIGNMENT,
+  pattern GL_UNPACK_IMAGE_HEIGHT,
+  pattern GL_UNPACK_LSB_FIRST,
+  pattern GL_UNPACK_ROW_LENGTH,
+  pattern GL_UNPACK_SKIP_IMAGES,
+  pattern GL_UNPACK_SKIP_PIXELS,
+  pattern GL_UNPACK_SKIP_ROWS,
+  pattern GL_UNPACK_SWAP_BYTES,
+  pattern GL_UNSIGNALED,
+  pattern GL_UNSIGNED_BYTE,
+  pattern GL_UNSIGNED_BYTE_2_3_3_REV,
+  pattern GL_UNSIGNED_BYTE_3_3_2,
+  pattern GL_UNSIGNED_INT,
+  pattern GL_UNSIGNED_INT_10F_11F_11F_REV,
+  pattern GL_UNSIGNED_INT_10_10_10_2,
+  pattern GL_UNSIGNED_INT_24_8,
+  pattern GL_UNSIGNED_INT_2_10_10_10_REV,
+  pattern GL_UNSIGNED_INT_5_9_9_9_REV,
+  pattern GL_UNSIGNED_INT_8_8_8_8,
+  pattern GL_UNSIGNED_INT_8_8_8_8_REV,
+  pattern GL_UNSIGNED_INT_SAMPLER_1D,
+  pattern GL_UNSIGNED_INT_SAMPLER_1D_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_RECT,
+  pattern GL_UNSIGNED_INT_SAMPLER_3D,
+  pattern GL_UNSIGNED_INT_SAMPLER_BUFFER,
+  pattern GL_UNSIGNED_INT_SAMPLER_CUBE,
+  pattern GL_UNSIGNED_INT_VEC2,
+  pattern GL_UNSIGNED_INT_VEC3,
+  pattern GL_UNSIGNED_INT_VEC4,
+  pattern GL_UNSIGNED_NORMALIZED,
+  pattern GL_UNSIGNED_SHORT,
+  pattern GL_UNSIGNED_SHORT_1_5_5_5_REV,
+  pattern GL_UNSIGNED_SHORT_4_4_4_4,
+  pattern GL_UNSIGNED_SHORT_4_4_4_4_REV,
+  pattern GL_UNSIGNED_SHORT_5_5_5_1,
+  pattern GL_UNSIGNED_SHORT_5_6_5,
+  pattern GL_UNSIGNED_SHORT_5_6_5_REV,
+  pattern GL_UPPER_LEFT,
+  pattern GL_VALIDATE_STATUS,
+  pattern GL_VENDOR,
+  pattern GL_VERSION,
+  pattern GL_VERTEX_ARRAY_BINDING,
+  pattern GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING,
+  pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR,
+  pattern GL_VERTEX_ATTRIB_ARRAY_ENABLED,
+  pattern GL_VERTEX_ATTRIB_ARRAY_INTEGER,
+  pattern GL_VERTEX_ATTRIB_ARRAY_NORMALIZED,
+  pattern GL_VERTEX_ATTRIB_ARRAY_POINTER,
+  pattern GL_VERTEX_ATTRIB_ARRAY_SIZE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_STRIDE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_TYPE,
+  pattern GL_VERTEX_PROGRAM_POINT_SIZE,
+  pattern GL_VERTEX_SHADER,
+  pattern GL_VIEWPORT,
+  pattern GL_WAIT_FAILED,
+  pattern GL_WRITE_ONLY,
+  pattern GL_XOR,
+  pattern GL_ZERO,
+  -- * Functions
+  glActiveTexture,
+  glAttachShader,
+  glBeginConditionalRender,
+  glBeginQuery,
+  glBeginTransformFeedback,
+  glBindAttribLocation,
+  glBindBuffer,
+  glBindBufferBase,
+  glBindBufferRange,
+  glBindFragDataLocation,
+  glBindFragDataLocationIndexed,
+  glBindFramebuffer,
+  glBindRenderbuffer,
+  glBindSampler,
+  glBindTexture,
+  glBindVertexArray,
+  glBlendColor,
+  glBlendEquation,
+  glBlendEquationSeparate,
+  glBlendFunc,
+  glBlendFuncSeparate,
+  glBlitFramebuffer,
+  glBufferData,
+  glBufferSubData,
+  glCheckFramebufferStatus,
+  glClampColor,
+  glClear,
+  glClearBufferfi,
+  glClearBufferfv,
+  glClearBufferiv,
+  glClearBufferuiv,
+  glClearColor,
+  glClearDepth,
+  glClearStencil,
+  glClientWaitSync,
+  glColorMask,
+  glColorMaski,
+  glCompileShader,
+  glCompressedTexImage1D,
+  glCompressedTexImage2D,
+  glCompressedTexImage3D,
+  glCompressedTexSubImage1D,
+  glCompressedTexSubImage2D,
+  glCompressedTexSubImage3D,
+  glCopyBufferSubData,
+  glCopyTexImage1D,
+  glCopyTexImage2D,
+  glCopyTexSubImage1D,
+  glCopyTexSubImage2D,
+  glCopyTexSubImage3D,
+  glCreateProgram,
+  glCreateShader,
+  glCullFace,
+  glDeleteBuffers,
+  glDeleteFramebuffers,
+  glDeleteProgram,
+  glDeleteQueries,
+  glDeleteRenderbuffers,
+  glDeleteSamplers,
+  glDeleteShader,
+  glDeleteSync,
+  glDeleteTextures,
+  glDeleteVertexArrays,
+  glDepthFunc,
+  glDepthMask,
+  glDepthRange,
+  glDetachShader,
+  glDisable,
+  glDisableVertexAttribArray,
+  glDisablei,
+  glDrawArrays,
+  glDrawArraysInstanced,
+  glDrawBuffer,
+  glDrawBuffers,
+  glDrawElements,
+  glDrawElementsBaseVertex,
+  glDrawElementsInstanced,
+  glDrawElementsInstancedBaseVertex,
+  glDrawRangeElements,
+  glDrawRangeElementsBaseVertex,
+  glEnable,
+  glEnableVertexAttribArray,
+  glEnablei,
+  glEndConditionalRender,
+  glEndQuery,
+  glEndTransformFeedback,
+  glFenceSync,
+  glFinish,
+  glFlush,
+  glFlushMappedBufferRange,
+  glFramebufferRenderbuffer,
+  glFramebufferTexture,
+  glFramebufferTexture1D,
+  glFramebufferTexture2D,
+  glFramebufferTexture3D,
+  glFramebufferTextureLayer,
+  glFrontFace,
+  glGenBuffers,
+  glGenFramebuffers,
+  glGenQueries,
+  glGenRenderbuffers,
+  glGenSamplers,
+  glGenTextures,
+  glGenVertexArrays,
+  glGenerateMipmap,
+  glGetActiveAttrib,
+  glGetActiveUniform,
+  glGetActiveUniformBlockName,
+  glGetActiveUniformBlockiv,
+  glGetActiveUniformName,
+  glGetActiveUniformsiv,
+  glGetAttachedShaders,
+  glGetAttribLocation,
+  glGetBooleani_v,
+  glGetBooleanv,
+  glGetBufferParameteri64v,
+  glGetBufferParameteriv,
+  glGetBufferPointerv,
+  glGetBufferSubData,
+  glGetCompressedTexImage,
+  glGetDoublev,
+  glGetError,
+  glGetFloatv,
+  glGetFragDataIndex,
+  glGetFragDataLocation,
+  glGetFramebufferAttachmentParameteriv,
+  glGetInteger64i_v,
+  glGetInteger64v,
+  glGetIntegeri_v,
+  glGetIntegerv,
+  glGetMultisamplefv,
+  glGetProgramInfoLog,
+  glGetProgramiv,
+  glGetQueryObjecti64v,
+  glGetQueryObjectiv,
+  glGetQueryObjectui64v,
+  glGetQueryObjectuiv,
+  glGetQueryiv,
+  glGetRenderbufferParameteriv,
+  glGetSamplerParameterIiv,
+  glGetSamplerParameterIuiv,
+  glGetSamplerParameterfv,
+  glGetSamplerParameteriv,
+  glGetShaderInfoLog,
+  glGetShaderSource,
+  glGetShaderiv,
+  glGetString,
+  glGetStringi,
+  glGetSynciv,
+  glGetTexImage,
+  glGetTexLevelParameterfv,
+  glGetTexLevelParameteriv,
+  glGetTexParameterIiv,
+  glGetTexParameterIuiv,
+  glGetTexParameterfv,
+  glGetTexParameteriv,
+  glGetTransformFeedbackVarying,
+  glGetUniformBlockIndex,
+  glGetUniformIndices,
+  glGetUniformLocation,
+  glGetUniformfv,
+  glGetUniformiv,
+  glGetUniformuiv,
+  glGetVertexAttribIiv,
+  glGetVertexAttribIuiv,
+  glGetVertexAttribPointerv,
+  glGetVertexAttribdv,
+  glGetVertexAttribfv,
+  glGetVertexAttribiv,
+  glHint,
+  glIsBuffer,
+  glIsEnabled,
+  glIsEnabledi,
+  glIsFramebuffer,
+  glIsProgram,
+  glIsQuery,
+  glIsRenderbuffer,
+  glIsSampler,
+  glIsShader,
+  glIsSync,
+  glIsTexture,
+  glIsVertexArray,
+  glLineWidth,
+  glLinkProgram,
+  glLogicOp,
+  glMapBuffer,
+  glMapBufferRange,
+  glMultiDrawArrays,
+  glMultiDrawElements,
+  glMultiDrawElementsBaseVertex,
+  glPixelStoref,
+  glPixelStorei,
+  glPointParameterf,
+  glPointParameterfv,
+  glPointParameteri,
+  glPointParameteriv,
+  glPointSize,
+  glPolygonMode,
+  glPolygonOffset,
+  glPrimitiveRestartIndex,
+  glProvokingVertex,
+  glQueryCounter,
+  glReadBuffer,
+  glReadPixels,
+  glRenderbufferStorage,
+  glRenderbufferStorageMultisample,
+  glSampleCoverage,
+  glSampleMaski,
+  glSamplerParameterIiv,
+  glSamplerParameterIuiv,
+  glSamplerParameterf,
+  glSamplerParameterfv,
+  glSamplerParameteri,
+  glSamplerParameteriv,
+  glScissor,
+  glShaderSource,
+  glStencilFunc,
+  glStencilFuncSeparate,
+  glStencilMask,
+  glStencilMaskSeparate,
+  glStencilOp,
+  glStencilOpSeparate,
+  glTexBuffer,
+  glTexImage1D,
+  glTexImage2D,
+  glTexImage2DMultisample,
+  glTexImage3D,
+  glTexImage3DMultisample,
+  glTexParameterIiv,
+  glTexParameterIuiv,
+  glTexParameterf,
+  glTexParameterfv,
+  glTexParameteri,
+  glTexParameteriv,
+  glTexSubImage1D,
+  glTexSubImage2D,
+  glTexSubImage3D,
+  glTransformFeedbackVaryings,
+  glUniform1f,
+  glUniform1fv,
+  glUniform1i,
+  glUniform1iv,
+  glUniform1ui,
+  glUniform1uiv,
+  glUniform2f,
+  glUniform2fv,
+  glUniform2i,
+  glUniform2iv,
+  glUniform2ui,
+  glUniform2uiv,
+  glUniform3f,
+  glUniform3fv,
+  glUniform3i,
+  glUniform3iv,
+  glUniform3ui,
+  glUniform3uiv,
+  glUniform4f,
+  glUniform4fv,
+  glUniform4i,
+  glUniform4iv,
+  glUniform4ui,
+  glUniform4uiv,
+  glUniformBlockBinding,
+  glUniformMatrix2fv,
+  glUniformMatrix2x3fv,
+  glUniformMatrix2x4fv,
+  glUniformMatrix3fv,
+  glUniformMatrix3x2fv,
+  glUniformMatrix3x4fv,
+  glUniformMatrix4fv,
+  glUniformMatrix4x2fv,
+  glUniformMatrix4x3fv,
+  glUnmapBuffer,
+  glUseProgram,
+  glValidateProgram,
+  glVertexAttrib1d,
+  glVertexAttrib1dv,
+  glVertexAttrib1f,
+  glVertexAttrib1fv,
+  glVertexAttrib1s,
+  glVertexAttrib1sv,
+  glVertexAttrib2d,
+  glVertexAttrib2dv,
+  glVertexAttrib2f,
+  glVertexAttrib2fv,
+  glVertexAttrib2s,
+  glVertexAttrib2sv,
+  glVertexAttrib3d,
+  glVertexAttrib3dv,
+  glVertexAttrib3f,
+  glVertexAttrib3fv,
+  glVertexAttrib3s,
+  glVertexAttrib3sv,
+  glVertexAttrib4Nbv,
+  glVertexAttrib4Niv,
+  glVertexAttrib4Nsv,
+  glVertexAttrib4Nub,
+  glVertexAttrib4Nubv,
+  glVertexAttrib4Nuiv,
+  glVertexAttrib4Nusv,
+  glVertexAttrib4bv,
+  glVertexAttrib4d,
+  glVertexAttrib4dv,
+  glVertexAttrib4f,
+  glVertexAttrib4fv,
+  glVertexAttrib4iv,
+  glVertexAttrib4s,
+  glVertexAttrib4sv,
+  glVertexAttrib4ubv,
+  glVertexAttrib4uiv,
+  glVertexAttrib4usv,
+  glVertexAttribDivisor,
+  glVertexAttribI1i,
+  glVertexAttribI1iv,
+  glVertexAttribI1ui,
+  glVertexAttribI1uiv,
+  glVertexAttribI2i,
+  glVertexAttribI2iv,
+  glVertexAttribI2ui,
+  glVertexAttribI2uiv,
+  glVertexAttribI3i,
+  glVertexAttribI3iv,
+  glVertexAttribI3ui,
+  glVertexAttribI3uiv,
+  glVertexAttribI4bv,
+  glVertexAttribI4i,
+  glVertexAttribI4iv,
+  glVertexAttribI4sv,
+  glVertexAttribI4ubv,
+  glVertexAttribI4ui,
+  glVertexAttribI4uiv,
+  glVertexAttribI4usv,
+  glVertexAttribIPointer,
+  glVertexAttribP1ui,
+  glVertexAttribP1uiv,
+  glVertexAttribP2ui,
+  glVertexAttribP2uiv,
+  glVertexAttribP3ui,
+  glVertexAttribP3uiv,
+  glVertexAttribP4ui,
+  glVertexAttribP4uiv,
+  glVertexAttribPointer,
+  glViewport,
+  glWaitSync
+) where
+
+import Graphics.GL.Types
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/Core40.hs b/src/Graphics/GL/Core40.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Core40.hs
@@ -0,0 +1,1330 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Core40
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Core40 (
+  -- * Types
+  GLbitfield,
+  GLboolean,
+  GLbyte,
+  GLchar,
+  GLclampd,
+  GLclampf,
+  GLdouble,
+  GLenum,
+  GLfloat,
+  GLhalf,
+  GLint,
+  GLint64,
+  GLintptr,
+  GLshort,
+  GLsizei,
+  GLsizeiptr,
+  GLsync,
+  GLubyte,
+  GLuint,
+  GLuint64,
+  GLushort,
+  GLvoid,
+  -- * Enums
+  pattern GL_ACTIVE_ATTRIBUTES,
+  pattern GL_ACTIVE_ATTRIBUTE_MAX_LENGTH,
+  pattern GL_ACTIVE_SUBROUTINES,
+  pattern GL_ACTIVE_SUBROUTINE_MAX_LENGTH,
+  pattern GL_ACTIVE_SUBROUTINE_UNIFORMS,
+  pattern GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS,
+  pattern GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH,
+  pattern GL_ACTIVE_TEXTURE,
+  pattern GL_ACTIVE_UNIFORMS,
+  pattern GL_ACTIVE_UNIFORM_BLOCKS,
+  pattern GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH,
+  pattern GL_ACTIVE_UNIFORM_MAX_LENGTH,
+  pattern GL_ALIASED_LINE_WIDTH_RANGE,
+  pattern GL_ALPHA,
+  pattern GL_ALREADY_SIGNALED,
+  pattern GL_ALWAYS,
+  pattern GL_AND,
+  pattern GL_AND_INVERTED,
+  pattern GL_AND_REVERSE,
+  pattern GL_ANY_SAMPLES_PASSED,
+  pattern GL_ARRAY_BUFFER,
+  pattern GL_ARRAY_BUFFER_BINDING,
+  pattern GL_ATTACHED_SHADERS,
+  pattern GL_BACK,
+  pattern GL_BACK_LEFT,
+  pattern GL_BACK_RIGHT,
+  pattern GL_BGR,
+  pattern GL_BGRA,
+  pattern GL_BGRA_INTEGER,
+  pattern GL_BGR_INTEGER,
+  pattern GL_BLEND,
+  pattern GL_BLEND_COLOR,
+  pattern GL_BLEND_DST,
+  pattern GL_BLEND_DST_ALPHA,
+  pattern GL_BLEND_DST_RGB,
+  pattern GL_BLEND_EQUATION,
+  pattern GL_BLEND_EQUATION_ALPHA,
+  pattern GL_BLEND_EQUATION_RGB,
+  pattern GL_BLEND_SRC,
+  pattern GL_BLEND_SRC_ALPHA,
+  pattern GL_BLEND_SRC_RGB,
+  pattern GL_BLUE,
+  pattern GL_BLUE_INTEGER,
+  pattern GL_BOOL,
+  pattern GL_BOOL_VEC2,
+  pattern GL_BOOL_VEC3,
+  pattern GL_BOOL_VEC4,
+  pattern GL_BUFFER_ACCESS,
+  pattern GL_BUFFER_ACCESS_FLAGS,
+  pattern GL_BUFFER_MAPPED,
+  pattern GL_BUFFER_MAP_LENGTH,
+  pattern GL_BUFFER_MAP_OFFSET,
+  pattern GL_BUFFER_MAP_POINTER,
+  pattern GL_BUFFER_SIZE,
+  pattern GL_BUFFER_USAGE,
+  pattern GL_BYTE,
+  pattern GL_CCW,
+  pattern GL_CLAMP_READ_COLOR,
+  pattern GL_CLAMP_TO_BORDER,
+  pattern GL_CLAMP_TO_EDGE,
+  pattern GL_CLEAR,
+  pattern GL_CLIP_DISTANCE0,
+  pattern GL_CLIP_DISTANCE1,
+  pattern GL_CLIP_DISTANCE2,
+  pattern GL_CLIP_DISTANCE3,
+  pattern GL_CLIP_DISTANCE4,
+  pattern GL_CLIP_DISTANCE5,
+  pattern GL_CLIP_DISTANCE6,
+  pattern GL_CLIP_DISTANCE7,
+  pattern GL_COLOR,
+  pattern GL_COLOR_ATTACHMENT0,
+  pattern GL_COLOR_ATTACHMENT1,
+  pattern GL_COLOR_ATTACHMENT10,
+  pattern GL_COLOR_ATTACHMENT11,
+  pattern GL_COLOR_ATTACHMENT12,
+  pattern GL_COLOR_ATTACHMENT13,
+  pattern GL_COLOR_ATTACHMENT14,
+  pattern GL_COLOR_ATTACHMENT15,
+  pattern GL_COLOR_ATTACHMENT16,
+  pattern GL_COLOR_ATTACHMENT17,
+  pattern GL_COLOR_ATTACHMENT18,
+  pattern GL_COLOR_ATTACHMENT19,
+  pattern GL_COLOR_ATTACHMENT2,
+  pattern GL_COLOR_ATTACHMENT20,
+  pattern GL_COLOR_ATTACHMENT21,
+  pattern GL_COLOR_ATTACHMENT22,
+  pattern GL_COLOR_ATTACHMENT23,
+  pattern GL_COLOR_ATTACHMENT24,
+  pattern GL_COLOR_ATTACHMENT25,
+  pattern GL_COLOR_ATTACHMENT26,
+  pattern GL_COLOR_ATTACHMENT27,
+  pattern GL_COLOR_ATTACHMENT28,
+  pattern GL_COLOR_ATTACHMENT29,
+  pattern GL_COLOR_ATTACHMENT3,
+  pattern GL_COLOR_ATTACHMENT30,
+  pattern GL_COLOR_ATTACHMENT31,
+  pattern GL_COLOR_ATTACHMENT4,
+  pattern GL_COLOR_ATTACHMENT5,
+  pattern GL_COLOR_ATTACHMENT6,
+  pattern GL_COLOR_ATTACHMENT7,
+  pattern GL_COLOR_ATTACHMENT8,
+  pattern GL_COLOR_ATTACHMENT9,
+  pattern GL_COLOR_BUFFER_BIT,
+  pattern GL_COLOR_CLEAR_VALUE,
+  pattern GL_COLOR_LOGIC_OP,
+  pattern GL_COLOR_WRITEMASK,
+  pattern GL_COMPARE_REF_TO_TEXTURE,
+  pattern GL_COMPATIBLE_SUBROUTINES,
+  pattern GL_COMPILE_STATUS,
+  pattern GL_COMPRESSED_RED,
+  pattern GL_COMPRESSED_RED_RGTC1,
+  pattern GL_COMPRESSED_RG,
+  pattern GL_COMPRESSED_RGB,
+  pattern GL_COMPRESSED_RGBA,
+  pattern GL_COMPRESSED_RG_RGTC2,
+  pattern GL_COMPRESSED_SIGNED_RED_RGTC1,
+  pattern GL_COMPRESSED_SIGNED_RG_RGTC2,
+  pattern GL_COMPRESSED_SRGB,
+  pattern GL_COMPRESSED_SRGB_ALPHA,
+  pattern GL_COMPRESSED_TEXTURE_FORMATS,
+  pattern GL_CONDITION_SATISFIED,
+  pattern GL_CONSTANT_ALPHA,
+  pattern GL_CONSTANT_COLOR,
+  pattern GL_CONTEXT_COMPATIBILITY_PROFILE_BIT,
+  pattern GL_CONTEXT_CORE_PROFILE_BIT,
+  pattern GL_CONTEXT_FLAGS,
+  pattern GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT,
+  pattern GL_CONTEXT_PROFILE_MASK,
+  pattern GL_COPY,
+  pattern GL_COPY_INVERTED,
+  pattern GL_COPY_READ_BUFFER,
+  pattern GL_COPY_WRITE_BUFFER,
+  pattern GL_CULL_FACE,
+  pattern GL_CULL_FACE_MODE,
+  pattern GL_CURRENT_PROGRAM,
+  pattern GL_CURRENT_QUERY,
+  pattern GL_CURRENT_VERTEX_ATTRIB,
+  pattern GL_CW,
+  pattern GL_DECR,
+  pattern GL_DECR_WRAP,
+  pattern GL_DELETE_STATUS,
+  pattern GL_DEPTH,
+  pattern GL_DEPTH24_STENCIL8,
+  pattern GL_DEPTH32F_STENCIL8,
+  pattern GL_DEPTH_ATTACHMENT,
+  pattern GL_DEPTH_BUFFER_BIT,
+  pattern GL_DEPTH_CLAMP,
+  pattern GL_DEPTH_CLEAR_VALUE,
+  pattern GL_DEPTH_COMPONENT,
+  pattern GL_DEPTH_COMPONENT16,
+  pattern GL_DEPTH_COMPONENT24,
+  pattern GL_DEPTH_COMPONENT32,
+  pattern GL_DEPTH_COMPONENT32F,
+  pattern GL_DEPTH_FUNC,
+  pattern GL_DEPTH_RANGE,
+  pattern GL_DEPTH_STENCIL,
+  pattern GL_DEPTH_STENCIL_ATTACHMENT,
+  pattern GL_DEPTH_TEST,
+  pattern GL_DEPTH_WRITEMASK,
+  pattern GL_DITHER,
+  pattern GL_DONT_CARE,
+  pattern GL_DOUBLE,
+  pattern GL_DOUBLEBUFFER,
+  pattern GL_DOUBLE_MAT2,
+  pattern GL_DOUBLE_MAT2x3,
+  pattern GL_DOUBLE_MAT2x4,
+  pattern GL_DOUBLE_MAT3,
+  pattern GL_DOUBLE_MAT3x2,
+  pattern GL_DOUBLE_MAT3x4,
+  pattern GL_DOUBLE_MAT4,
+  pattern GL_DOUBLE_MAT4x2,
+  pattern GL_DOUBLE_MAT4x3,
+  pattern GL_DOUBLE_VEC2,
+  pattern GL_DOUBLE_VEC3,
+  pattern GL_DOUBLE_VEC4,
+  pattern GL_DRAW_BUFFER,
+  pattern GL_DRAW_BUFFER0,
+  pattern GL_DRAW_BUFFER1,
+  pattern GL_DRAW_BUFFER10,
+  pattern GL_DRAW_BUFFER11,
+  pattern GL_DRAW_BUFFER12,
+  pattern GL_DRAW_BUFFER13,
+  pattern GL_DRAW_BUFFER14,
+  pattern GL_DRAW_BUFFER15,
+  pattern GL_DRAW_BUFFER2,
+  pattern GL_DRAW_BUFFER3,
+  pattern GL_DRAW_BUFFER4,
+  pattern GL_DRAW_BUFFER5,
+  pattern GL_DRAW_BUFFER6,
+  pattern GL_DRAW_BUFFER7,
+  pattern GL_DRAW_BUFFER8,
+  pattern GL_DRAW_BUFFER9,
+  pattern GL_DRAW_FRAMEBUFFER,
+  pattern GL_DRAW_FRAMEBUFFER_BINDING,
+  pattern GL_DRAW_INDIRECT_BUFFER,
+  pattern GL_DRAW_INDIRECT_BUFFER_BINDING,
+  pattern GL_DST_ALPHA,
+  pattern GL_DST_COLOR,
+  pattern GL_DYNAMIC_COPY,
+  pattern GL_DYNAMIC_DRAW,
+  pattern GL_DYNAMIC_READ,
+  pattern GL_ELEMENT_ARRAY_BUFFER,
+  pattern GL_ELEMENT_ARRAY_BUFFER_BINDING,
+  pattern GL_EQUAL,
+  pattern GL_EQUIV,
+  pattern GL_EXTENSIONS,
+  pattern GL_FALSE,
+  pattern GL_FASTEST,
+  pattern GL_FILL,
+  pattern GL_FIRST_VERTEX_CONVENTION,
+  pattern GL_FIXED_ONLY,
+  pattern GL_FLOAT,
+  pattern GL_FLOAT_32_UNSIGNED_INT_24_8_REV,
+  pattern GL_FLOAT_MAT2,
+  pattern GL_FLOAT_MAT2x3,
+  pattern GL_FLOAT_MAT2x4,
+  pattern GL_FLOAT_MAT3,
+  pattern GL_FLOAT_MAT3x2,
+  pattern GL_FLOAT_MAT3x4,
+  pattern GL_FLOAT_MAT4,
+  pattern GL_FLOAT_MAT4x2,
+  pattern GL_FLOAT_MAT4x3,
+  pattern GL_FLOAT_VEC2,
+  pattern GL_FLOAT_VEC3,
+  pattern GL_FLOAT_VEC4,
+  pattern GL_FRACTIONAL_EVEN,
+  pattern GL_FRACTIONAL_ODD,
+  pattern GL_FRAGMENT_INTERPOLATION_OFFSET_BITS,
+  pattern GL_FRAGMENT_SHADER,
+  pattern GL_FRAGMENT_SHADER_DERIVATIVE_HINT,
+  pattern GL_FRAMEBUFFER,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL,
+  pattern GL_FRAMEBUFFER_BINDING,
+  pattern GL_FRAMEBUFFER_COMPLETE,
+  pattern GL_FRAMEBUFFER_DEFAULT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER,
+  pattern GL_FRAMEBUFFER_SRGB,
+  pattern GL_FRAMEBUFFER_UNDEFINED,
+  pattern GL_FRAMEBUFFER_UNSUPPORTED,
+  pattern GL_FRONT,
+  pattern GL_FRONT_AND_BACK,
+  pattern GL_FRONT_FACE,
+  pattern GL_FRONT_LEFT,
+  pattern GL_FRONT_RIGHT,
+  pattern GL_FUNC_ADD,
+  pattern GL_FUNC_REVERSE_SUBTRACT,
+  pattern GL_FUNC_SUBTRACT,
+  pattern GL_GEOMETRY_INPUT_TYPE,
+  pattern GL_GEOMETRY_OUTPUT_TYPE,
+  pattern GL_GEOMETRY_SHADER,
+  pattern GL_GEOMETRY_SHADER_INVOCATIONS,
+  pattern GL_GEOMETRY_VERTICES_OUT,
+  pattern GL_GEQUAL,
+  pattern GL_GREATER,
+  pattern GL_GREEN,
+  pattern GL_GREEN_INTEGER,
+  pattern GL_HALF_FLOAT,
+  pattern GL_INCR,
+  pattern GL_INCR_WRAP,
+  pattern GL_INFO_LOG_LENGTH,
+  pattern GL_INT,
+  pattern GL_INTERLEAVED_ATTRIBS,
+  pattern GL_INT_2_10_10_10_REV,
+  pattern GL_INT_SAMPLER_1D,
+  pattern GL_INT_SAMPLER_1D_ARRAY,
+  pattern GL_INT_SAMPLER_2D,
+  pattern GL_INT_SAMPLER_2D_ARRAY,
+  pattern GL_INT_SAMPLER_2D_MULTISAMPLE,
+  pattern GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY,
+  pattern GL_INT_SAMPLER_2D_RECT,
+  pattern GL_INT_SAMPLER_3D,
+  pattern GL_INT_SAMPLER_BUFFER,
+  pattern GL_INT_SAMPLER_CUBE,
+  pattern GL_INT_SAMPLER_CUBE_MAP_ARRAY,
+  pattern GL_INT_VEC2,
+  pattern GL_INT_VEC3,
+  pattern GL_INT_VEC4,
+  pattern GL_INVALID_ENUM,
+  pattern GL_INVALID_FRAMEBUFFER_OPERATION,
+  pattern GL_INVALID_INDEX,
+  pattern GL_INVALID_OPERATION,
+  pattern GL_INVALID_VALUE,
+  pattern GL_INVERT,
+  pattern GL_ISOLINES,
+  pattern GL_KEEP,
+  pattern GL_LAST_VERTEX_CONVENTION,
+  pattern GL_LEFT,
+  pattern GL_LEQUAL,
+  pattern GL_LESS,
+  pattern GL_LINE,
+  pattern GL_LINEAR,
+  pattern GL_LINEAR_MIPMAP_LINEAR,
+  pattern GL_LINEAR_MIPMAP_NEAREST,
+  pattern GL_LINES,
+  pattern GL_LINES_ADJACENCY,
+  pattern GL_LINE_LOOP,
+  pattern GL_LINE_SMOOTH,
+  pattern GL_LINE_SMOOTH_HINT,
+  pattern GL_LINE_STRIP,
+  pattern GL_LINE_STRIP_ADJACENCY,
+  pattern GL_LINE_WIDTH,
+  pattern GL_LINE_WIDTH_GRANULARITY,
+  pattern GL_LINE_WIDTH_RANGE,
+  pattern GL_LINK_STATUS,
+  pattern GL_LOGIC_OP_MODE,
+  pattern GL_LOWER_LEFT,
+  pattern GL_MAJOR_VERSION,
+  pattern GL_MAP_FLUSH_EXPLICIT_BIT,
+  pattern GL_MAP_INVALIDATE_BUFFER_BIT,
+  pattern GL_MAP_INVALIDATE_RANGE_BIT,
+  pattern GL_MAP_READ_BIT,
+  pattern GL_MAP_UNSYNCHRONIZED_BIT,
+  pattern GL_MAP_WRITE_BIT,
+  pattern GL_MAX,
+  pattern GL_MAX_3D_TEXTURE_SIZE,
+  pattern GL_MAX_ARRAY_TEXTURE_LAYERS,
+  pattern GL_MAX_CLIP_DISTANCES,
+  pattern GL_MAX_COLOR_ATTACHMENTS,
+  pattern GL_MAX_COLOR_TEXTURE_SAMPLES,
+  pattern GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_COMBINED_UNIFORM_BLOCKS,
+  pattern GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS,
+  pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE,
+  pattern GL_MAX_DEPTH_TEXTURE_SAMPLES,
+  pattern GL_MAX_DRAW_BUFFERS,
+  pattern GL_MAX_DUAL_SOURCE_DRAW_BUFFERS,
+  pattern GL_MAX_ELEMENTS_INDICES,
+  pattern GL_MAX_ELEMENTS_VERTICES,
+  pattern GL_MAX_FRAGMENT_INPUT_COMPONENTS,
+  pattern GL_MAX_FRAGMENT_INTERPOLATION_OFFSET,
+  pattern GL_MAX_FRAGMENT_UNIFORM_BLOCKS,
+  pattern GL_MAX_FRAGMENT_UNIFORM_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_INPUT_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_OUTPUT_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_OUTPUT_VERTICES,
+  pattern GL_MAX_GEOMETRY_SHADER_INVOCATIONS,
+  pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_UNIFORM_BLOCKS,
+  pattern GL_MAX_GEOMETRY_UNIFORM_COMPONENTS,
+  pattern GL_MAX_INTEGER_SAMPLES,
+  pattern GL_MAX_PATCH_VERTICES,
+  pattern GL_MAX_PROGRAM_TEXEL_OFFSET,
+  pattern GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET,
+  pattern GL_MAX_RECTANGLE_TEXTURE_SIZE,
+  pattern GL_MAX_RENDERBUFFER_SIZE,
+  pattern GL_MAX_SAMPLES,
+  pattern GL_MAX_SAMPLE_MASK_WORDS,
+  pattern GL_MAX_SERVER_WAIT_TIMEOUT,
+  pattern GL_MAX_SUBROUTINES,
+  pattern GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS,
+  pattern GL_MAX_TESS_CONTROL_INPUT_COMPONENTS,
+  pattern GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS,
+  pattern GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS,
+  pattern GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS,
+  pattern GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS,
+  pattern GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS,
+  pattern GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS,
+  pattern GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS,
+  pattern GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS,
+  pattern GL_MAX_TESS_GEN_LEVEL,
+  pattern GL_MAX_TESS_PATCH_COMPONENTS,
+  pattern GL_MAX_TEXTURE_BUFFER_SIZE,
+  pattern GL_MAX_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_TEXTURE_LOD_BIAS,
+  pattern GL_MAX_TEXTURE_SIZE,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_BUFFERS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS,
+  pattern GL_MAX_UNIFORM_BLOCK_SIZE,
+  pattern GL_MAX_UNIFORM_BUFFER_BINDINGS,
+  pattern GL_MAX_VARYING_COMPONENTS,
+  pattern GL_MAX_VARYING_FLOATS,
+  pattern GL_MAX_VERTEX_ATTRIBS,
+  pattern GL_MAX_VERTEX_OUTPUT_COMPONENTS,
+  pattern GL_MAX_VERTEX_STREAMS,
+  pattern GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_VERTEX_UNIFORM_BLOCKS,
+  pattern GL_MAX_VERTEX_UNIFORM_COMPONENTS,
+  pattern GL_MAX_VIEWPORT_DIMS,
+  pattern GL_MIN,
+  pattern GL_MINOR_VERSION,
+  pattern GL_MIN_FRAGMENT_INTERPOLATION_OFFSET,
+  pattern GL_MIN_PROGRAM_TEXEL_OFFSET,
+  pattern GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET,
+  pattern GL_MIN_SAMPLE_SHADING_VALUE,
+  pattern GL_MIRRORED_REPEAT,
+  pattern GL_MULTISAMPLE,
+  pattern GL_NAND,
+  pattern GL_NEAREST,
+  pattern GL_NEAREST_MIPMAP_LINEAR,
+  pattern GL_NEAREST_MIPMAP_NEAREST,
+  pattern GL_NEVER,
+  pattern GL_NICEST,
+  pattern GL_NONE,
+  pattern GL_NOOP,
+  pattern GL_NOR,
+  pattern GL_NOTEQUAL,
+  pattern GL_NO_ERROR,
+  pattern GL_NUM_COMPATIBLE_SUBROUTINES,
+  pattern GL_NUM_COMPRESSED_TEXTURE_FORMATS,
+  pattern GL_NUM_EXTENSIONS,
+  pattern GL_OBJECT_TYPE,
+  pattern GL_ONE,
+  pattern GL_ONE_MINUS_CONSTANT_ALPHA,
+  pattern GL_ONE_MINUS_CONSTANT_COLOR,
+  pattern GL_ONE_MINUS_DST_ALPHA,
+  pattern GL_ONE_MINUS_DST_COLOR,
+  pattern GL_ONE_MINUS_SRC1_ALPHA,
+  pattern GL_ONE_MINUS_SRC1_COLOR,
+  pattern GL_ONE_MINUS_SRC_ALPHA,
+  pattern GL_ONE_MINUS_SRC_COLOR,
+  pattern GL_OR,
+  pattern GL_OR_INVERTED,
+  pattern GL_OR_REVERSE,
+  pattern GL_OUT_OF_MEMORY,
+  pattern GL_PACK_ALIGNMENT,
+  pattern GL_PACK_IMAGE_HEIGHT,
+  pattern GL_PACK_LSB_FIRST,
+  pattern GL_PACK_ROW_LENGTH,
+  pattern GL_PACK_SKIP_IMAGES,
+  pattern GL_PACK_SKIP_PIXELS,
+  pattern GL_PACK_SKIP_ROWS,
+  pattern GL_PACK_SWAP_BYTES,
+  pattern GL_PATCHES,
+  pattern GL_PATCH_DEFAULT_INNER_LEVEL,
+  pattern GL_PATCH_DEFAULT_OUTER_LEVEL,
+  pattern GL_PATCH_VERTICES,
+  pattern GL_PIXEL_PACK_BUFFER,
+  pattern GL_PIXEL_PACK_BUFFER_BINDING,
+  pattern GL_PIXEL_UNPACK_BUFFER,
+  pattern GL_PIXEL_UNPACK_BUFFER_BINDING,
+  pattern GL_POINT,
+  pattern GL_POINTS,
+  pattern GL_POINT_FADE_THRESHOLD_SIZE,
+  pattern GL_POINT_SIZE,
+  pattern GL_POINT_SIZE_GRANULARITY,
+  pattern GL_POINT_SIZE_RANGE,
+  pattern GL_POINT_SPRITE_COORD_ORIGIN,
+  pattern GL_POLYGON_MODE,
+  pattern GL_POLYGON_OFFSET_FACTOR,
+  pattern GL_POLYGON_OFFSET_FILL,
+  pattern GL_POLYGON_OFFSET_LINE,
+  pattern GL_POLYGON_OFFSET_POINT,
+  pattern GL_POLYGON_OFFSET_UNITS,
+  pattern GL_POLYGON_SMOOTH,
+  pattern GL_POLYGON_SMOOTH_HINT,
+  pattern GL_PRIMITIVES_GENERATED,
+  pattern GL_PRIMITIVE_RESTART,
+  pattern GL_PRIMITIVE_RESTART_INDEX,
+  pattern GL_PROGRAM_POINT_SIZE,
+  pattern GL_PROVOKING_VERTEX,
+  pattern GL_PROXY_TEXTURE_1D,
+  pattern GL_PROXY_TEXTURE_1D_ARRAY,
+  pattern GL_PROXY_TEXTURE_2D,
+  pattern GL_PROXY_TEXTURE_2D_ARRAY,
+  pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE,
+  pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_PROXY_TEXTURE_3D,
+  pattern GL_PROXY_TEXTURE_CUBE_MAP,
+  pattern GL_PROXY_TEXTURE_CUBE_MAP_ARRAY,
+  pattern GL_PROXY_TEXTURE_RECTANGLE,
+  pattern GL_QUADS,
+  pattern GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION,
+  pattern GL_QUERY_BY_REGION_NO_WAIT,
+  pattern GL_QUERY_BY_REGION_WAIT,
+  pattern GL_QUERY_COUNTER_BITS,
+  pattern GL_QUERY_NO_WAIT,
+  pattern GL_QUERY_RESULT,
+  pattern GL_QUERY_RESULT_AVAILABLE,
+  pattern GL_QUERY_WAIT,
+  pattern GL_R11F_G11F_B10F,
+  pattern GL_R16,
+  pattern GL_R16F,
+  pattern GL_R16I,
+  pattern GL_R16UI,
+  pattern GL_R16_SNORM,
+  pattern GL_R32F,
+  pattern GL_R32I,
+  pattern GL_R32UI,
+  pattern GL_R3_G3_B2,
+  pattern GL_R8,
+  pattern GL_R8I,
+  pattern GL_R8UI,
+  pattern GL_R8_SNORM,
+  pattern GL_RASTERIZER_DISCARD,
+  pattern GL_READ_BUFFER,
+  pattern GL_READ_FRAMEBUFFER,
+  pattern GL_READ_FRAMEBUFFER_BINDING,
+  pattern GL_READ_ONLY,
+  pattern GL_READ_WRITE,
+  pattern GL_RED,
+  pattern GL_RED_INTEGER,
+  pattern GL_RENDERBUFFER,
+  pattern GL_RENDERBUFFER_ALPHA_SIZE,
+  pattern GL_RENDERBUFFER_BINDING,
+  pattern GL_RENDERBUFFER_BLUE_SIZE,
+  pattern GL_RENDERBUFFER_DEPTH_SIZE,
+  pattern GL_RENDERBUFFER_GREEN_SIZE,
+  pattern GL_RENDERBUFFER_HEIGHT,
+  pattern GL_RENDERBUFFER_INTERNAL_FORMAT,
+  pattern GL_RENDERBUFFER_RED_SIZE,
+  pattern GL_RENDERBUFFER_SAMPLES,
+  pattern GL_RENDERBUFFER_STENCIL_SIZE,
+  pattern GL_RENDERBUFFER_WIDTH,
+  pattern GL_RENDERER,
+  pattern GL_REPEAT,
+  pattern GL_REPLACE,
+  pattern GL_RG,
+  pattern GL_RG16,
+  pattern GL_RG16F,
+  pattern GL_RG16I,
+  pattern GL_RG16UI,
+  pattern GL_RG16_SNORM,
+  pattern GL_RG32F,
+  pattern GL_RG32I,
+  pattern GL_RG32UI,
+  pattern GL_RG8,
+  pattern GL_RG8I,
+  pattern GL_RG8UI,
+  pattern GL_RG8_SNORM,
+  pattern GL_RGB,
+  pattern GL_RGB10,
+  pattern GL_RGB10_A2,
+  pattern GL_RGB10_A2UI,
+  pattern GL_RGB12,
+  pattern GL_RGB16,
+  pattern GL_RGB16F,
+  pattern GL_RGB16I,
+  pattern GL_RGB16UI,
+  pattern GL_RGB16_SNORM,
+  pattern GL_RGB32F,
+  pattern GL_RGB32I,
+  pattern GL_RGB32UI,
+  pattern GL_RGB4,
+  pattern GL_RGB5,
+  pattern GL_RGB5_A1,
+  pattern GL_RGB8,
+  pattern GL_RGB8I,
+  pattern GL_RGB8UI,
+  pattern GL_RGB8_SNORM,
+  pattern GL_RGB9_E5,
+  pattern GL_RGBA,
+  pattern GL_RGBA12,
+  pattern GL_RGBA16,
+  pattern GL_RGBA16F,
+  pattern GL_RGBA16I,
+  pattern GL_RGBA16UI,
+  pattern GL_RGBA16_SNORM,
+  pattern GL_RGBA2,
+  pattern GL_RGBA32F,
+  pattern GL_RGBA32I,
+  pattern GL_RGBA32UI,
+  pattern GL_RGBA4,
+  pattern GL_RGBA8,
+  pattern GL_RGBA8I,
+  pattern GL_RGBA8UI,
+  pattern GL_RGBA8_SNORM,
+  pattern GL_RGBA_INTEGER,
+  pattern GL_RGB_INTEGER,
+  pattern GL_RG_INTEGER,
+  pattern GL_RIGHT,
+  pattern GL_SAMPLER_1D,
+  pattern GL_SAMPLER_1D_ARRAY,
+  pattern GL_SAMPLER_1D_ARRAY_SHADOW,
+  pattern GL_SAMPLER_1D_SHADOW,
+  pattern GL_SAMPLER_2D,
+  pattern GL_SAMPLER_2D_ARRAY,
+  pattern GL_SAMPLER_2D_ARRAY_SHADOW,
+  pattern GL_SAMPLER_2D_MULTISAMPLE,
+  pattern GL_SAMPLER_2D_MULTISAMPLE_ARRAY,
+  pattern GL_SAMPLER_2D_RECT,
+  pattern GL_SAMPLER_2D_RECT_SHADOW,
+  pattern GL_SAMPLER_2D_SHADOW,
+  pattern GL_SAMPLER_3D,
+  pattern GL_SAMPLER_BINDING,
+  pattern GL_SAMPLER_BUFFER,
+  pattern GL_SAMPLER_CUBE,
+  pattern GL_SAMPLER_CUBE_MAP_ARRAY,
+  pattern GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW,
+  pattern GL_SAMPLER_CUBE_SHADOW,
+  pattern GL_SAMPLES,
+  pattern GL_SAMPLES_PASSED,
+  pattern GL_SAMPLE_ALPHA_TO_COVERAGE,
+  pattern GL_SAMPLE_ALPHA_TO_ONE,
+  pattern GL_SAMPLE_BUFFERS,
+  pattern GL_SAMPLE_COVERAGE,
+  pattern GL_SAMPLE_COVERAGE_INVERT,
+  pattern GL_SAMPLE_COVERAGE_VALUE,
+  pattern GL_SAMPLE_MASK,
+  pattern GL_SAMPLE_MASK_VALUE,
+  pattern GL_SAMPLE_POSITION,
+  pattern GL_SAMPLE_SHADING,
+  pattern GL_SCISSOR_BOX,
+  pattern GL_SCISSOR_TEST,
+  pattern GL_SEPARATE_ATTRIBS,
+  pattern GL_SET,
+  pattern GL_SHADER_SOURCE_LENGTH,
+  pattern GL_SHADER_TYPE,
+  pattern GL_SHADING_LANGUAGE_VERSION,
+  pattern GL_SHORT,
+  pattern GL_SIGNALED,
+  pattern GL_SIGNED_NORMALIZED,
+  pattern GL_SMOOTH_LINE_WIDTH_GRANULARITY,
+  pattern GL_SMOOTH_LINE_WIDTH_RANGE,
+  pattern GL_SMOOTH_POINT_SIZE_GRANULARITY,
+  pattern GL_SMOOTH_POINT_SIZE_RANGE,
+  pattern GL_SRC1_ALPHA,
+  pattern GL_SRC1_COLOR,
+  pattern GL_SRC_ALPHA,
+  pattern GL_SRC_ALPHA_SATURATE,
+  pattern GL_SRC_COLOR,
+  pattern GL_SRGB,
+  pattern GL_SRGB8,
+  pattern GL_SRGB8_ALPHA8,
+  pattern GL_SRGB_ALPHA,
+  pattern GL_STATIC_COPY,
+  pattern GL_STATIC_DRAW,
+  pattern GL_STATIC_READ,
+  pattern GL_STENCIL,
+  pattern GL_STENCIL_ATTACHMENT,
+  pattern GL_STENCIL_BACK_FAIL,
+  pattern GL_STENCIL_BACK_FUNC,
+  pattern GL_STENCIL_BACK_PASS_DEPTH_FAIL,
+  pattern GL_STENCIL_BACK_PASS_DEPTH_PASS,
+  pattern GL_STENCIL_BACK_REF,
+  pattern GL_STENCIL_BACK_VALUE_MASK,
+  pattern GL_STENCIL_BACK_WRITEMASK,
+  pattern GL_STENCIL_BUFFER_BIT,
+  pattern GL_STENCIL_CLEAR_VALUE,
+  pattern GL_STENCIL_FAIL,
+  pattern GL_STENCIL_FUNC,
+  pattern GL_STENCIL_INDEX,
+  pattern GL_STENCIL_INDEX1,
+  pattern GL_STENCIL_INDEX16,
+  pattern GL_STENCIL_INDEX4,
+  pattern GL_STENCIL_INDEX8,
+  pattern GL_STENCIL_PASS_DEPTH_FAIL,
+  pattern GL_STENCIL_PASS_DEPTH_PASS,
+  pattern GL_STENCIL_REF,
+  pattern GL_STENCIL_TEST,
+  pattern GL_STENCIL_VALUE_MASK,
+  pattern GL_STENCIL_WRITEMASK,
+  pattern GL_STEREO,
+  pattern GL_STREAM_COPY,
+  pattern GL_STREAM_DRAW,
+  pattern GL_STREAM_READ,
+  pattern GL_SUBPIXEL_BITS,
+  pattern GL_SYNC_CONDITION,
+  pattern GL_SYNC_FENCE,
+  pattern GL_SYNC_FLAGS,
+  pattern GL_SYNC_FLUSH_COMMANDS_BIT,
+  pattern GL_SYNC_GPU_COMMANDS_COMPLETE,
+  pattern GL_SYNC_STATUS,
+  pattern GL_TESS_CONTROL_OUTPUT_VERTICES,
+  pattern GL_TESS_CONTROL_SHADER,
+  pattern GL_TESS_EVALUATION_SHADER,
+  pattern GL_TESS_GEN_MODE,
+  pattern GL_TESS_GEN_POINT_MODE,
+  pattern GL_TESS_GEN_SPACING,
+  pattern GL_TESS_GEN_VERTEX_ORDER,
+  pattern GL_TEXTURE,
+  pattern GL_TEXTURE0,
+  pattern GL_TEXTURE1,
+  pattern GL_TEXTURE10,
+  pattern GL_TEXTURE11,
+  pattern GL_TEXTURE12,
+  pattern GL_TEXTURE13,
+  pattern GL_TEXTURE14,
+  pattern GL_TEXTURE15,
+  pattern GL_TEXTURE16,
+  pattern GL_TEXTURE17,
+  pattern GL_TEXTURE18,
+  pattern GL_TEXTURE19,
+  pattern GL_TEXTURE2,
+  pattern GL_TEXTURE20,
+  pattern GL_TEXTURE21,
+  pattern GL_TEXTURE22,
+  pattern GL_TEXTURE23,
+  pattern GL_TEXTURE24,
+  pattern GL_TEXTURE25,
+  pattern GL_TEXTURE26,
+  pattern GL_TEXTURE27,
+  pattern GL_TEXTURE28,
+  pattern GL_TEXTURE29,
+  pattern GL_TEXTURE3,
+  pattern GL_TEXTURE30,
+  pattern GL_TEXTURE31,
+  pattern GL_TEXTURE4,
+  pattern GL_TEXTURE5,
+  pattern GL_TEXTURE6,
+  pattern GL_TEXTURE7,
+  pattern GL_TEXTURE8,
+  pattern GL_TEXTURE9,
+  pattern GL_TEXTURE_1D,
+  pattern GL_TEXTURE_1D_ARRAY,
+  pattern GL_TEXTURE_2D,
+  pattern GL_TEXTURE_2D_ARRAY,
+  pattern GL_TEXTURE_2D_MULTISAMPLE,
+  pattern GL_TEXTURE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_TEXTURE_3D,
+  pattern GL_TEXTURE_ALPHA_SIZE,
+  pattern GL_TEXTURE_ALPHA_TYPE,
+  pattern GL_TEXTURE_BASE_LEVEL,
+  pattern GL_TEXTURE_BINDING_1D,
+  pattern GL_TEXTURE_BINDING_1D_ARRAY,
+  pattern GL_TEXTURE_BINDING_2D,
+  pattern GL_TEXTURE_BINDING_2D_ARRAY,
+  pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE,
+  pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY,
+  pattern GL_TEXTURE_BINDING_3D,
+  pattern GL_TEXTURE_BINDING_BUFFER,
+  pattern GL_TEXTURE_BINDING_CUBE_MAP,
+  pattern GL_TEXTURE_BINDING_CUBE_MAP_ARRAY,
+  pattern GL_TEXTURE_BINDING_RECTANGLE,
+  pattern GL_TEXTURE_BLUE_SIZE,
+  pattern GL_TEXTURE_BLUE_TYPE,
+  pattern GL_TEXTURE_BORDER_COLOR,
+  pattern GL_TEXTURE_BUFFER,
+  pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING,
+  pattern GL_TEXTURE_COMPARE_FUNC,
+  pattern GL_TEXTURE_COMPARE_MODE,
+  pattern GL_TEXTURE_COMPRESSED,
+  pattern GL_TEXTURE_COMPRESSED_IMAGE_SIZE,
+  pattern GL_TEXTURE_COMPRESSION_HINT,
+  pattern GL_TEXTURE_CUBE_MAP,
+  pattern GL_TEXTURE_CUBE_MAP_ARRAY,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z,
+  pattern GL_TEXTURE_CUBE_MAP_SEAMLESS,
+  pattern GL_TEXTURE_DEPTH,
+  pattern GL_TEXTURE_DEPTH_SIZE,
+  pattern GL_TEXTURE_DEPTH_TYPE,
+  pattern GL_TEXTURE_FIXED_SAMPLE_LOCATIONS,
+  pattern GL_TEXTURE_GREEN_SIZE,
+  pattern GL_TEXTURE_GREEN_TYPE,
+  pattern GL_TEXTURE_HEIGHT,
+  pattern GL_TEXTURE_INTERNAL_FORMAT,
+  pattern GL_TEXTURE_LOD_BIAS,
+  pattern GL_TEXTURE_MAG_FILTER,
+  pattern GL_TEXTURE_MAX_LEVEL,
+  pattern GL_TEXTURE_MAX_LOD,
+  pattern GL_TEXTURE_MIN_FILTER,
+  pattern GL_TEXTURE_MIN_LOD,
+  pattern GL_TEXTURE_RECTANGLE,
+  pattern GL_TEXTURE_RED_SIZE,
+  pattern GL_TEXTURE_RED_TYPE,
+  pattern GL_TEXTURE_SAMPLES,
+  pattern GL_TEXTURE_SHARED_SIZE,
+  pattern GL_TEXTURE_STENCIL_SIZE,
+  pattern GL_TEXTURE_SWIZZLE_A,
+  pattern GL_TEXTURE_SWIZZLE_B,
+  pattern GL_TEXTURE_SWIZZLE_G,
+  pattern GL_TEXTURE_SWIZZLE_R,
+  pattern GL_TEXTURE_SWIZZLE_RGBA,
+  pattern GL_TEXTURE_WIDTH,
+  pattern GL_TEXTURE_WRAP_R,
+  pattern GL_TEXTURE_WRAP_S,
+  pattern GL_TEXTURE_WRAP_T,
+  pattern GL_TIMEOUT_EXPIRED,
+  pattern GL_TIMEOUT_IGNORED,
+  pattern GL_TIMESTAMP,
+  pattern GL_TIME_ELAPSED,
+  pattern GL_TRANSFORM_FEEDBACK,
+  pattern GL_TRANSFORM_FEEDBACK_BINDING,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_BINDING,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_MODE,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_SIZE,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_START,
+  pattern GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN,
+  pattern GL_TRANSFORM_FEEDBACK_VARYINGS,
+  pattern GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH,
+  pattern GL_TRIANGLES,
+  pattern GL_TRIANGLES_ADJACENCY,
+  pattern GL_TRIANGLE_FAN,
+  pattern GL_TRIANGLE_STRIP,
+  pattern GL_TRIANGLE_STRIP_ADJACENCY,
+  pattern GL_TRUE,
+  pattern GL_UNIFORM_ARRAY_STRIDE,
+  pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS,
+  pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES,
+  pattern GL_UNIFORM_BLOCK_BINDING,
+  pattern GL_UNIFORM_BLOCK_DATA_SIZE,
+  pattern GL_UNIFORM_BLOCK_INDEX,
+  pattern GL_UNIFORM_BLOCK_NAME_LENGTH,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER,
+  pattern GL_UNIFORM_BUFFER,
+  pattern GL_UNIFORM_BUFFER_BINDING,
+  pattern GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT,
+  pattern GL_UNIFORM_BUFFER_SIZE,
+  pattern GL_UNIFORM_BUFFER_START,
+  pattern GL_UNIFORM_IS_ROW_MAJOR,
+  pattern GL_UNIFORM_MATRIX_STRIDE,
+  pattern GL_UNIFORM_NAME_LENGTH,
+  pattern GL_UNIFORM_OFFSET,
+  pattern GL_UNIFORM_SIZE,
+  pattern GL_UNIFORM_TYPE,
+  pattern GL_UNPACK_ALIGNMENT,
+  pattern GL_UNPACK_IMAGE_HEIGHT,
+  pattern GL_UNPACK_LSB_FIRST,
+  pattern GL_UNPACK_ROW_LENGTH,
+  pattern GL_UNPACK_SKIP_IMAGES,
+  pattern GL_UNPACK_SKIP_PIXELS,
+  pattern GL_UNPACK_SKIP_ROWS,
+  pattern GL_UNPACK_SWAP_BYTES,
+  pattern GL_UNSIGNALED,
+  pattern GL_UNSIGNED_BYTE,
+  pattern GL_UNSIGNED_BYTE_2_3_3_REV,
+  pattern GL_UNSIGNED_BYTE_3_3_2,
+  pattern GL_UNSIGNED_INT,
+  pattern GL_UNSIGNED_INT_10F_11F_11F_REV,
+  pattern GL_UNSIGNED_INT_10_10_10_2,
+  pattern GL_UNSIGNED_INT_24_8,
+  pattern GL_UNSIGNED_INT_2_10_10_10_REV,
+  pattern GL_UNSIGNED_INT_5_9_9_9_REV,
+  pattern GL_UNSIGNED_INT_8_8_8_8,
+  pattern GL_UNSIGNED_INT_8_8_8_8_REV,
+  pattern GL_UNSIGNED_INT_SAMPLER_1D,
+  pattern GL_UNSIGNED_INT_SAMPLER_1D_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_RECT,
+  pattern GL_UNSIGNED_INT_SAMPLER_3D,
+  pattern GL_UNSIGNED_INT_SAMPLER_BUFFER,
+  pattern GL_UNSIGNED_INT_SAMPLER_CUBE,
+  pattern GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY,
+  pattern GL_UNSIGNED_INT_VEC2,
+  pattern GL_UNSIGNED_INT_VEC3,
+  pattern GL_UNSIGNED_INT_VEC4,
+  pattern GL_UNSIGNED_NORMALIZED,
+  pattern GL_UNSIGNED_SHORT,
+  pattern GL_UNSIGNED_SHORT_1_5_5_5_REV,
+  pattern GL_UNSIGNED_SHORT_4_4_4_4,
+  pattern GL_UNSIGNED_SHORT_4_4_4_4_REV,
+  pattern GL_UNSIGNED_SHORT_5_5_5_1,
+  pattern GL_UNSIGNED_SHORT_5_6_5,
+  pattern GL_UNSIGNED_SHORT_5_6_5_REV,
+  pattern GL_UPPER_LEFT,
+  pattern GL_VALIDATE_STATUS,
+  pattern GL_VENDOR,
+  pattern GL_VERSION,
+  pattern GL_VERTEX_ARRAY_BINDING,
+  pattern GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING,
+  pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR,
+  pattern GL_VERTEX_ATTRIB_ARRAY_ENABLED,
+  pattern GL_VERTEX_ATTRIB_ARRAY_INTEGER,
+  pattern GL_VERTEX_ATTRIB_ARRAY_NORMALIZED,
+  pattern GL_VERTEX_ATTRIB_ARRAY_POINTER,
+  pattern GL_VERTEX_ATTRIB_ARRAY_SIZE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_STRIDE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_TYPE,
+  pattern GL_VERTEX_PROGRAM_POINT_SIZE,
+  pattern GL_VERTEX_SHADER,
+  pattern GL_VIEWPORT,
+  pattern GL_WAIT_FAILED,
+  pattern GL_WRITE_ONLY,
+  pattern GL_XOR,
+  pattern GL_ZERO,
+  -- * Functions
+  glActiveTexture,
+  glAttachShader,
+  glBeginConditionalRender,
+  glBeginQuery,
+  glBeginQueryIndexed,
+  glBeginTransformFeedback,
+  glBindAttribLocation,
+  glBindBuffer,
+  glBindBufferBase,
+  glBindBufferRange,
+  glBindFragDataLocation,
+  glBindFragDataLocationIndexed,
+  glBindFramebuffer,
+  glBindRenderbuffer,
+  glBindSampler,
+  glBindTexture,
+  glBindTransformFeedback,
+  glBindVertexArray,
+  glBlendColor,
+  glBlendEquation,
+  glBlendEquationSeparate,
+  glBlendEquationSeparatei,
+  glBlendEquationi,
+  glBlendFunc,
+  glBlendFuncSeparate,
+  glBlendFuncSeparatei,
+  glBlendFunci,
+  glBlitFramebuffer,
+  glBufferData,
+  glBufferSubData,
+  glCheckFramebufferStatus,
+  glClampColor,
+  glClear,
+  glClearBufferfi,
+  glClearBufferfv,
+  glClearBufferiv,
+  glClearBufferuiv,
+  glClearColor,
+  glClearDepth,
+  glClearStencil,
+  glClientWaitSync,
+  glColorMask,
+  glColorMaski,
+  glCompileShader,
+  glCompressedTexImage1D,
+  glCompressedTexImage2D,
+  glCompressedTexImage3D,
+  glCompressedTexSubImage1D,
+  glCompressedTexSubImage2D,
+  glCompressedTexSubImage3D,
+  glCopyBufferSubData,
+  glCopyTexImage1D,
+  glCopyTexImage2D,
+  glCopyTexSubImage1D,
+  glCopyTexSubImage2D,
+  glCopyTexSubImage3D,
+  glCreateProgram,
+  glCreateShader,
+  glCullFace,
+  glDeleteBuffers,
+  glDeleteFramebuffers,
+  glDeleteProgram,
+  glDeleteQueries,
+  glDeleteRenderbuffers,
+  glDeleteSamplers,
+  glDeleteShader,
+  glDeleteSync,
+  glDeleteTextures,
+  glDeleteTransformFeedbacks,
+  glDeleteVertexArrays,
+  glDepthFunc,
+  glDepthMask,
+  glDepthRange,
+  glDetachShader,
+  glDisable,
+  glDisableVertexAttribArray,
+  glDisablei,
+  glDrawArrays,
+  glDrawArraysIndirect,
+  glDrawArraysInstanced,
+  glDrawBuffer,
+  glDrawBuffers,
+  glDrawElements,
+  glDrawElementsBaseVertex,
+  glDrawElementsIndirect,
+  glDrawElementsInstanced,
+  glDrawElementsInstancedBaseVertex,
+  glDrawRangeElements,
+  glDrawRangeElementsBaseVertex,
+  glDrawTransformFeedback,
+  glDrawTransformFeedbackStream,
+  glEnable,
+  glEnableVertexAttribArray,
+  glEnablei,
+  glEndConditionalRender,
+  glEndQuery,
+  glEndQueryIndexed,
+  glEndTransformFeedback,
+  glFenceSync,
+  glFinish,
+  glFlush,
+  glFlushMappedBufferRange,
+  glFramebufferRenderbuffer,
+  glFramebufferTexture,
+  glFramebufferTexture1D,
+  glFramebufferTexture2D,
+  glFramebufferTexture3D,
+  glFramebufferTextureLayer,
+  glFrontFace,
+  glGenBuffers,
+  glGenFramebuffers,
+  glGenQueries,
+  glGenRenderbuffers,
+  glGenSamplers,
+  glGenTextures,
+  glGenTransformFeedbacks,
+  glGenVertexArrays,
+  glGenerateMipmap,
+  glGetActiveAttrib,
+  glGetActiveSubroutineName,
+  glGetActiveSubroutineUniformName,
+  glGetActiveSubroutineUniformiv,
+  glGetActiveUniform,
+  glGetActiveUniformBlockName,
+  glGetActiveUniformBlockiv,
+  glGetActiveUniformName,
+  glGetActiveUniformsiv,
+  glGetAttachedShaders,
+  glGetAttribLocation,
+  glGetBooleani_v,
+  glGetBooleanv,
+  glGetBufferParameteri64v,
+  glGetBufferParameteriv,
+  glGetBufferPointerv,
+  glGetBufferSubData,
+  glGetCompressedTexImage,
+  glGetDoublev,
+  glGetError,
+  glGetFloatv,
+  glGetFragDataIndex,
+  glGetFragDataLocation,
+  glGetFramebufferAttachmentParameteriv,
+  glGetInteger64i_v,
+  glGetInteger64v,
+  glGetIntegeri_v,
+  glGetIntegerv,
+  glGetMultisamplefv,
+  glGetProgramInfoLog,
+  glGetProgramStageiv,
+  glGetProgramiv,
+  glGetQueryIndexediv,
+  glGetQueryObjecti64v,
+  glGetQueryObjectiv,
+  glGetQueryObjectui64v,
+  glGetQueryObjectuiv,
+  glGetQueryiv,
+  glGetRenderbufferParameteriv,
+  glGetSamplerParameterIiv,
+  glGetSamplerParameterIuiv,
+  glGetSamplerParameterfv,
+  glGetSamplerParameteriv,
+  glGetShaderInfoLog,
+  glGetShaderSource,
+  glGetShaderiv,
+  glGetString,
+  glGetStringi,
+  glGetSubroutineIndex,
+  glGetSubroutineUniformLocation,
+  glGetSynciv,
+  glGetTexImage,
+  glGetTexLevelParameterfv,
+  glGetTexLevelParameteriv,
+  glGetTexParameterIiv,
+  glGetTexParameterIuiv,
+  glGetTexParameterfv,
+  glGetTexParameteriv,
+  glGetTransformFeedbackVarying,
+  glGetUniformBlockIndex,
+  glGetUniformIndices,
+  glGetUniformLocation,
+  glGetUniformSubroutineuiv,
+  glGetUniformdv,
+  glGetUniformfv,
+  glGetUniformiv,
+  glGetUniformuiv,
+  glGetVertexAttribIiv,
+  glGetVertexAttribIuiv,
+  glGetVertexAttribPointerv,
+  glGetVertexAttribdv,
+  glGetVertexAttribfv,
+  glGetVertexAttribiv,
+  glHint,
+  glIsBuffer,
+  glIsEnabled,
+  glIsEnabledi,
+  glIsFramebuffer,
+  glIsProgram,
+  glIsQuery,
+  glIsRenderbuffer,
+  glIsSampler,
+  glIsShader,
+  glIsSync,
+  glIsTexture,
+  glIsTransformFeedback,
+  glIsVertexArray,
+  glLineWidth,
+  glLinkProgram,
+  glLogicOp,
+  glMapBuffer,
+  glMapBufferRange,
+  glMinSampleShading,
+  glMultiDrawArrays,
+  glMultiDrawElements,
+  glMultiDrawElementsBaseVertex,
+  glPatchParameterfv,
+  glPatchParameteri,
+  glPauseTransformFeedback,
+  glPixelStoref,
+  glPixelStorei,
+  glPointParameterf,
+  glPointParameterfv,
+  glPointParameteri,
+  glPointParameteriv,
+  glPointSize,
+  glPolygonMode,
+  glPolygonOffset,
+  glPrimitiveRestartIndex,
+  glProvokingVertex,
+  glQueryCounter,
+  glReadBuffer,
+  glReadPixels,
+  glRenderbufferStorage,
+  glRenderbufferStorageMultisample,
+  glResumeTransformFeedback,
+  glSampleCoverage,
+  glSampleMaski,
+  glSamplerParameterIiv,
+  glSamplerParameterIuiv,
+  glSamplerParameterf,
+  glSamplerParameterfv,
+  glSamplerParameteri,
+  glSamplerParameteriv,
+  glScissor,
+  glShaderSource,
+  glStencilFunc,
+  glStencilFuncSeparate,
+  glStencilMask,
+  glStencilMaskSeparate,
+  glStencilOp,
+  glStencilOpSeparate,
+  glTexBuffer,
+  glTexImage1D,
+  glTexImage2D,
+  glTexImage2DMultisample,
+  glTexImage3D,
+  glTexImage3DMultisample,
+  glTexParameterIiv,
+  glTexParameterIuiv,
+  glTexParameterf,
+  glTexParameterfv,
+  glTexParameteri,
+  glTexParameteriv,
+  glTexSubImage1D,
+  glTexSubImage2D,
+  glTexSubImage3D,
+  glTransformFeedbackVaryings,
+  glUniform1d,
+  glUniform1dv,
+  glUniform1f,
+  glUniform1fv,
+  glUniform1i,
+  glUniform1iv,
+  glUniform1ui,
+  glUniform1uiv,
+  glUniform2d,
+  glUniform2dv,
+  glUniform2f,
+  glUniform2fv,
+  glUniform2i,
+  glUniform2iv,
+  glUniform2ui,
+  glUniform2uiv,
+  glUniform3d,
+  glUniform3dv,
+  glUniform3f,
+  glUniform3fv,
+  glUniform3i,
+  glUniform3iv,
+  glUniform3ui,
+  glUniform3uiv,
+  glUniform4d,
+  glUniform4dv,
+  glUniform4f,
+  glUniform4fv,
+  glUniform4i,
+  glUniform4iv,
+  glUniform4ui,
+  glUniform4uiv,
+  glUniformBlockBinding,
+  glUniformMatrix2dv,
+  glUniformMatrix2fv,
+  glUniformMatrix2x3dv,
+  glUniformMatrix2x3fv,
+  glUniformMatrix2x4dv,
+  glUniformMatrix2x4fv,
+  glUniformMatrix3dv,
+  glUniformMatrix3fv,
+  glUniformMatrix3x2dv,
+  glUniformMatrix3x2fv,
+  glUniformMatrix3x4dv,
+  glUniformMatrix3x4fv,
+  glUniformMatrix4dv,
+  glUniformMatrix4fv,
+  glUniformMatrix4x2dv,
+  glUniformMatrix4x2fv,
+  glUniformMatrix4x3dv,
+  glUniformMatrix4x3fv,
+  glUniformSubroutinesuiv,
+  glUnmapBuffer,
+  glUseProgram,
+  glValidateProgram,
+  glVertexAttrib1d,
+  glVertexAttrib1dv,
+  glVertexAttrib1f,
+  glVertexAttrib1fv,
+  glVertexAttrib1s,
+  glVertexAttrib1sv,
+  glVertexAttrib2d,
+  glVertexAttrib2dv,
+  glVertexAttrib2f,
+  glVertexAttrib2fv,
+  glVertexAttrib2s,
+  glVertexAttrib2sv,
+  glVertexAttrib3d,
+  glVertexAttrib3dv,
+  glVertexAttrib3f,
+  glVertexAttrib3fv,
+  glVertexAttrib3s,
+  glVertexAttrib3sv,
+  glVertexAttrib4Nbv,
+  glVertexAttrib4Niv,
+  glVertexAttrib4Nsv,
+  glVertexAttrib4Nub,
+  glVertexAttrib4Nubv,
+  glVertexAttrib4Nuiv,
+  glVertexAttrib4Nusv,
+  glVertexAttrib4bv,
+  glVertexAttrib4d,
+  glVertexAttrib4dv,
+  glVertexAttrib4f,
+  glVertexAttrib4fv,
+  glVertexAttrib4iv,
+  glVertexAttrib4s,
+  glVertexAttrib4sv,
+  glVertexAttrib4ubv,
+  glVertexAttrib4uiv,
+  glVertexAttrib4usv,
+  glVertexAttribDivisor,
+  glVertexAttribI1i,
+  glVertexAttribI1iv,
+  glVertexAttribI1ui,
+  glVertexAttribI1uiv,
+  glVertexAttribI2i,
+  glVertexAttribI2iv,
+  glVertexAttribI2ui,
+  glVertexAttribI2uiv,
+  glVertexAttribI3i,
+  glVertexAttribI3iv,
+  glVertexAttribI3ui,
+  glVertexAttribI3uiv,
+  glVertexAttribI4bv,
+  glVertexAttribI4i,
+  glVertexAttribI4iv,
+  glVertexAttribI4sv,
+  glVertexAttribI4ubv,
+  glVertexAttribI4ui,
+  glVertexAttribI4uiv,
+  glVertexAttribI4usv,
+  glVertexAttribIPointer,
+  glVertexAttribP1ui,
+  glVertexAttribP1uiv,
+  glVertexAttribP2ui,
+  glVertexAttribP2uiv,
+  glVertexAttribP3ui,
+  glVertexAttribP3uiv,
+  glVertexAttribP4ui,
+  glVertexAttribP4uiv,
+  glVertexAttribPointer,
+  glViewport,
+  glWaitSync
+) where
+
+import Graphics.GL.Types
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/Core41.hs b/src/Graphics/GL/Core41.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Core41.hs
@@ -0,0 +1,1453 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Core41
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Core41 (
+  -- * Types
+  GLbitfield,
+  GLboolean,
+  GLbyte,
+  GLchar,
+  GLclampd,
+  GLclampf,
+  GLdouble,
+  GLenum,
+  GLfloat,
+  GLhalf,
+  GLint,
+  GLint64,
+  GLintptr,
+  GLshort,
+  GLsizei,
+  GLsizeiptr,
+  GLsync,
+  GLubyte,
+  GLuint,
+  GLuint64,
+  GLushort,
+  GLvoid,
+  -- * Enums
+  pattern GL_ACTIVE_ATTRIBUTES,
+  pattern GL_ACTIVE_ATTRIBUTE_MAX_LENGTH,
+  pattern GL_ACTIVE_PROGRAM,
+  pattern GL_ACTIVE_SUBROUTINES,
+  pattern GL_ACTIVE_SUBROUTINE_MAX_LENGTH,
+  pattern GL_ACTIVE_SUBROUTINE_UNIFORMS,
+  pattern GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS,
+  pattern GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH,
+  pattern GL_ACTIVE_TEXTURE,
+  pattern GL_ACTIVE_UNIFORMS,
+  pattern GL_ACTIVE_UNIFORM_BLOCKS,
+  pattern GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH,
+  pattern GL_ACTIVE_UNIFORM_MAX_LENGTH,
+  pattern GL_ALIASED_LINE_WIDTH_RANGE,
+  pattern GL_ALL_SHADER_BITS,
+  pattern GL_ALPHA,
+  pattern GL_ALREADY_SIGNALED,
+  pattern GL_ALWAYS,
+  pattern GL_AND,
+  pattern GL_AND_INVERTED,
+  pattern GL_AND_REVERSE,
+  pattern GL_ANY_SAMPLES_PASSED,
+  pattern GL_ARRAY_BUFFER,
+  pattern GL_ARRAY_BUFFER_BINDING,
+  pattern GL_ATTACHED_SHADERS,
+  pattern GL_BACK,
+  pattern GL_BACK_LEFT,
+  pattern GL_BACK_RIGHT,
+  pattern GL_BGR,
+  pattern GL_BGRA,
+  pattern GL_BGRA_INTEGER,
+  pattern GL_BGR_INTEGER,
+  pattern GL_BLEND,
+  pattern GL_BLEND_COLOR,
+  pattern GL_BLEND_DST,
+  pattern GL_BLEND_DST_ALPHA,
+  pattern GL_BLEND_DST_RGB,
+  pattern GL_BLEND_EQUATION,
+  pattern GL_BLEND_EQUATION_ALPHA,
+  pattern GL_BLEND_EQUATION_RGB,
+  pattern GL_BLEND_SRC,
+  pattern GL_BLEND_SRC_ALPHA,
+  pattern GL_BLEND_SRC_RGB,
+  pattern GL_BLUE,
+  pattern GL_BLUE_INTEGER,
+  pattern GL_BOOL,
+  pattern GL_BOOL_VEC2,
+  pattern GL_BOOL_VEC3,
+  pattern GL_BOOL_VEC4,
+  pattern GL_BUFFER_ACCESS,
+  pattern GL_BUFFER_ACCESS_FLAGS,
+  pattern GL_BUFFER_MAPPED,
+  pattern GL_BUFFER_MAP_LENGTH,
+  pattern GL_BUFFER_MAP_OFFSET,
+  pattern GL_BUFFER_MAP_POINTER,
+  pattern GL_BUFFER_SIZE,
+  pattern GL_BUFFER_USAGE,
+  pattern GL_BYTE,
+  pattern GL_CCW,
+  pattern GL_CLAMP_READ_COLOR,
+  pattern GL_CLAMP_TO_BORDER,
+  pattern GL_CLAMP_TO_EDGE,
+  pattern GL_CLEAR,
+  pattern GL_CLIP_DISTANCE0,
+  pattern GL_CLIP_DISTANCE1,
+  pattern GL_CLIP_DISTANCE2,
+  pattern GL_CLIP_DISTANCE3,
+  pattern GL_CLIP_DISTANCE4,
+  pattern GL_CLIP_DISTANCE5,
+  pattern GL_CLIP_DISTANCE6,
+  pattern GL_CLIP_DISTANCE7,
+  pattern GL_COLOR,
+  pattern GL_COLOR_ATTACHMENT0,
+  pattern GL_COLOR_ATTACHMENT1,
+  pattern GL_COLOR_ATTACHMENT10,
+  pattern GL_COLOR_ATTACHMENT11,
+  pattern GL_COLOR_ATTACHMENT12,
+  pattern GL_COLOR_ATTACHMENT13,
+  pattern GL_COLOR_ATTACHMENT14,
+  pattern GL_COLOR_ATTACHMENT15,
+  pattern GL_COLOR_ATTACHMENT16,
+  pattern GL_COLOR_ATTACHMENT17,
+  pattern GL_COLOR_ATTACHMENT18,
+  pattern GL_COLOR_ATTACHMENT19,
+  pattern GL_COLOR_ATTACHMENT2,
+  pattern GL_COLOR_ATTACHMENT20,
+  pattern GL_COLOR_ATTACHMENT21,
+  pattern GL_COLOR_ATTACHMENT22,
+  pattern GL_COLOR_ATTACHMENT23,
+  pattern GL_COLOR_ATTACHMENT24,
+  pattern GL_COLOR_ATTACHMENT25,
+  pattern GL_COLOR_ATTACHMENT26,
+  pattern GL_COLOR_ATTACHMENT27,
+  pattern GL_COLOR_ATTACHMENT28,
+  pattern GL_COLOR_ATTACHMENT29,
+  pattern GL_COLOR_ATTACHMENT3,
+  pattern GL_COLOR_ATTACHMENT30,
+  pattern GL_COLOR_ATTACHMENT31,
+  pattern GL_COLOR_ATTACHMENT4,
+  pattern GL_COLOR_ATTACHMENT5,
+  pattern GL_COLOR_ATTACHMENT6,
+  pattern GL_COLOR_ATTACHMENT7,
+  pattern GL_COLOR_ATTACHMENT8,
+  pattern GL_COLOR_ATTACHMENT9,
+  pattern GL_COLOR_BUFFER_BIT,
+  pattern GL_COLOR_CLEAR_VALUE,
+  pattern GL_COLOR_LOGIC_OP,
+  pattern GL_COLOR_WRITEMASK,
+  pattern GL_COMPARE_REF_TO_TEXTURE,
+  pattern GL_COMPATIBLE_SUBROUTINES,
+  pattern GL_COMPILE_STATUS,
+  pattern GL_COMPRESSED_RED,
+  pattern GL_COMPRESSED_RED_RGTC1,
+  pattern GL_COMPRESSED_RG,
+  pattern GL_COMPRESSED_RGB,
+  pattern GL_COMPRESSED_RGBA,
+  pattern GL_COMPRESSED_RG_RGTC2,
+  pattern GL_COMPRESSED_SIGNED_RED_RGTC1,
+  pattern GL_COMPRESSED_SIGNED_RG_RGTC2,
+  pattern GL_COMPRESSED_SRGB,
+  pattern GL_COMPRESSED_SRGB_ALPHA,
+  pattern GL_COMPRESSED_TEXTURE_FORMATS,
+  pattern GL_CONDITION_SATISFIED,
+  pattern GL_CONSTANT_ALPHA,
+  pattern GL_CONSTANT_COLOR,
+  pattern GL_CONTEXT_COMPATIBILITY_PROFILE_BIT,
+  pattern GL_CONTEXT_CORE_PROFILE_BIT,
+  pattern GL_CONTEXT_FLAGS,
+  pattern GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT,
+  pattern GL_CONTEXT_PROFILE_MASK,
+  pattern GL_COPY,
+  pattern GL_COPY_INVERTED,
+  pattern GL_COPY_READ_BUFFER,
+  pattern GL_COPY_WRITE_BUFFER,
+  pattern GL_CULL_FACE,
+  pattern GL_CULL_FACE_MODE,
+  pattern GL_CURRENT_PROGRAM,
+  pattern GL_CURRENT_QUERY,
+  pattern GL_CURRENT_VERTEX_ATTRIB,
+  pattern GL_CW,
+  pattern GL_DECR,
+  pattern GL_DECR_WRAP,
+  pattern GL_DELETE_STATUS,
+  pattern GL_DEPTH,
+  pattern GL_DEPTH24_STENCIL8,
+  pattern GL_DEPTH32F_STENCIL8,
+  pattern GL_DEPTH_ATTACHMENT,
+  pattern GL_DEPTH_BUFFER_BIT,
+  pattern GL_DEPTH_CLAMP,
+  pattern GL_DEPTH_CLEAR_VALUE,
+  pattern GL_DEPTH_COMPONENT,
+  pattern GL_DEPTH_COMPONENT16,
+  pattern GL_DEPTH_COMPONENT24,
+  pattern GL_DEPTH_COMPONENT32,
+  pattern GL_DEPTH_COMPONENT32F,
+  pattern GL_DEPTH_FUNC,
+  pattern GL_DEPTH_RANGE,
+  pattern GL_DEPTH_STENCIL,
+  pattern GL_DEPTH_STENCIL_ATTACHMENT,
+  pattern GL_DEPTH_TEST,
+  pattern GL_DEPTH_WRITEMASK,
+  pattern GL_DITHER,
+  pattern GL_DONT_CARE,
+  pattern GL_DOUBLE,
+  pattern GL_DOUBLEBUFFER,
+  pattern GL_DOUBLE_MAT2,
+  pattern GL_DOUBLE_MAT2x3,
+  pattern GL_DOUBLE_MAT2x4,
+  pattern GL_DOUBLE_MAT3,
+  pattern GL_DOUBLE_MAT3x2,
+  pattern GL_DOUBLE_MAT3x4,
+  pattern GL_DOUBLE_MAT4,
+  pattern GL_DOUBLE_MAT4x2,
+  pattern GL_DOUBLE_MAT4x3,
+  pattern GL_DOUBLE_VEC2,
+  pattern GL_DOUBLE_VEC3,
+  pattern GL_DOUBLE_VEC4,
+  pattern GL_DRAW_BUFFER,
+  pattern GL_DRAW_BUFFER0,
+  pattern GL_DRAW_BUFFER1,
+  pattern GL_DRAW_BUFFER10,
+  pattern GL_DRAW_BUFFER11,
+  pattern GL_DRAW_BUFFER12,
+  pattern GL_DRAW_BUFFER13,
+  pattern GL_DRAW_BUFFER14,
+  pattern GL_DRAW_BUFFER15,
+  pattern GL_DRAW_BUFFER2,
+  pattern GL_DRAW_BUFFER3,
+  pattern GL_DRAW_BUFFER4,
+  pattern GL_DRAW_BUFFER5,
+  pattern GL_DRAW_BUFFER6,
+  pattern GL_DRAW_BUFFER7,
+  pattern GL_DRAW_BUFFER8,
+  pattern GL_DRAW_BUFFER9,
+  pattern GL_DRAW_FRAMEBUFFER,
+  pattern GL_DRAW_FRAMEBUFFER_BINDING,
+  pattern GL_DRAW_INDIRECT_BUFFER,
+  pattern GL_DRAW_INDIRECT_BUFFER_BINDING,
+  pattern GL_DST_ALPHA,
+  pattern GL_DST_COLOR,
+  pattern GL_DYNAMIC_COPY,
+  pattern GL_DYNAMIC_DRAW,
+  pattern GL_DYNAMIC_READ,
+  pattern GL_ELEMENT_ARRAY_BUFFER,
+  pattern GL_ELEMENT_ARRAY_BUFFER_BINDING,
+  pattern GL_EQUAL,
+  pattern GL_EQUIV,
+  pattern GL_EXTENSIONS,
+  pattern GL_FALSE,
+  pattern GL_FASTEST,
+  pattern GL_FILL,
+  pattern GL_FIRST_VERTEX_CONVENTION,
+  pattern GL_FIXED,
+  pattern GL_FIXED_ONLY,
+  pattern GL_FLOAT,
+  pattern GL_FLOAT_32_UNSIGNED_INT_24_8_REV,
+  pattern GL_FLOAT_MAT2,
+  pattern GL_FLOAT_MAT2x3,
+  pattern GL_FLOAT_MAT2x4,
+  pattern GL_FLOAT_MAT3,
+  pattern GL_FLOAT_MAT3x2,
+  pattern GL_FLOAT_MAT3x4,
+  pattern GL_FLOAT_MAT4,
+  pattern GL_FLOAT_MAT4x2,
+  pattern GL_FLOAT_MAT4x3,
+  pattern GL_FLOAT_VEC2,
+  pattern GL_FLOAT_VEC3,
+  pattern GL_FLOAT_VEC4,
+  pattern GL_FRACTIONAL_EVEN,
+  pattern GL_FRACTIONAL_ODD,
+  pattern GL_FRAGMENT_INTERPOLATION_OFFSET_BITS,
+  pattern GL_FRAGMENT_SHADER,
+  pattern GL_FRAGMENT_SHADER_BIT,
+  pattern GL_FRAGMENT_SHADER_DERIVATIVE_HINT,
+  pattern GL_FRAMEBUFFER,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL,
+  pattern GL_FRAMEBUFFER_BINDING,
+  pattern GL_FRAMEBUFFER_COMPLETE,
+  pattern GL_FRAMEBUFFER_DEFAULT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER,
+  pattern GL_FRAMEBUFFER_SRGB,
+  pattern GL_FRAMEBUFFER_UNDEFINED,
+  pattern GL_FRAMEBUFFER_UNSUPPORTED,
+  pattern GL_FRONT,
+  pattern GL_FRONT_AND_BACK,
+  pattern GL_FRONT_FACE,
+  pattern GL_FRONT_LEFT,
+  pattern GL_FRONT_RIGHT,
+  pattern GL_FUNC_ADD,
+  pattern GL_FUNC_REVERSE_SUBTRACT,
+  pattern GL_FUNC_SUBTRACT,
+  pattern GL_GEOMETRY_INPUT_TYPE,
+  pattern GL_GEOMETRY_OUTPUT_TYPE,
+  pattern GL_GEOMETRY_SHADER,
+  pattern GL_GEOMETRY_SHADER_BIT,
+  pattern GL_GEOMETRY_SHADER_INVOCATIONS,
+  pattern GL_GEOMETRY_VERTICES_OUT,
+  pattern GL_GEQUAL,
+  pattern GL_GREATER,
+  pattern GL_GREEN,
+  pattern GL_GREEN_INTEGER,
+  pattern GL_HALF_FLOAT,
+  pattern GL_HIGH_FLOAT,
+  pattern GL_HIGH_INT,
+  pattern GL_IMPLEMENTATION_COLOR_READ_FORMAT,
+  pattern GL_IMPLEMENTATION_COLOR_READ_TYPE,
+  pattern GL_INCR,
+  pattern GL_INCR_WRAP,
+  pattern GL_INFO_LOG_LENGTH,
+  pattern GL_INT,
+  pattern GL_INTERLEAVED_ATTRIBS,
+  pattern GL_INT_2_10_10_10_REV,
+  pattern GL_INT_SAMPLER_1D,
+  pattern GL_INT_SAMPLER_1D_ARRAY,
+  pattern GL_INT_SAMPLER_2D,
+  pattern GL_INT_SAMPLER_2D_ARRAY,
+  pattern GL_INT_SAMPLER_2D_MULTISAMPLE,
+  pattern GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY,
+  pattern GL_INT_SAMPLER_2D_RECT,
+  pattern GL_INT_SAMPLER_3D,
+  pattern GL_INT_SAMPLER_BUFFER,
+  pattern GL_INT_SAMPLER_CUBE,
+  pattern GL_INT_SAMPLER_CUBE_MAP_ARRAY,
+  pattern GL_INT_VEC2,
+  pattern GL_INT_VEC3,
+  pattern GL_INT_VEC4,
+  pattern GL_INVALID_ENUM,
+  pattern GL_INVALID_FRAMEBUFFER_OPERATION,
+  pattern GL_INVALID_INDEX,
+  pattern GL_INVALID_OPERATION,
+  pattern GL_INVALID_VALUE,
+  pattern GL_INVERT,
+  pattern GL_ISOLINES,
+  pattern GL_KEEP,
+  pattern GL_LAST_VERTEX_CONVENTION,
+  pattern GL_LAYER_PROVOKING_VERTEX,
+  pattern GL_LEFT,
+  pattern GL_LEQUAL,
+  pattern GL_LESS,
+  pattern GL_LINE,
+  pattern GL_LINEAR,
+  pattern GL_LINEAR_MIPMAP_LINEAR,
+  pattern GL_LINEAR_MIPMAP_NEAREST,
+  pattern GL_LINES,
+  pattern GL_LINES_ADJACENCY,
+  pattern GL_LINE_LOOP,
+  pattern GL_LINE_SMOOTH,
+  pattern GL_LINE_SMOOTH_HINT,
+  pattern GL_LINE_STRIP,
+  pattern GL_LINE_STRIP_ADJACENCY,
+  pattern GL_LINE_WIDTH,
+  pattern GL_LINE_WIDTH_GRANULARITY,
+  pattern GL_LINE_WIDTH_RANGE,
+  pattern GL_LINK_STATUS,
+  pattern GL_LOGIC_OP_MODE,
+  pattern GL_LOWER_LEFT,
+  pattern GL_LOW_FLOAT,
+  pattern GL_LOW_INT,
+  pattern GL_MAJOR_VERSION,
+  pattern GL_MAP_FLUSH_EXPLICIT_BIT,
+  pattern GL_MAP_INVALIDATE_BUFFER_BIT,
+  pattern GL_MAP_INVALIDATE_RANGE_BIT,
+  pattern GL_MAP_READ_BIT,
+  pattern GL_MAP_UNSYNCHRONIZED_BIT,
+  pattern GL_MAP_WRITE_BIT,
+  pattern GL_MAX,
+  pattern GL_MAX_3D_TEXTURE_SIZE,
+  pattern GL_MAX_ARRAY_TEXTURE_LAYERS,
+  pattern GL_MAX_CLIP_DISTANCES,
+  pattern GL_MAX_COLOR_ATTACHMENTS,
+  pattern GL_MAX_COLOR_TEXTURE_SAMPLES,
+  pattern GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_COMBINED_UNIFORM_BLOCKS,
+  pattern GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS,
+  pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE,
+  pattern GL_MAX_DEPTH_TEXTURE_SAMPLES,
+  pattern GL_MAX_DRAW_BUFFERS,
+  pattern GL_MAX_DUAL_SOURCE_DRAW_BUFFERS,
+  pattern GL_MAX_ELEMENTS_INDICES,
+  pattern GL_MAX_ELEMENTS_VERTICES,
+  pattern GL_MAX_FRAGMENT_INPUT_COMPONENTS,
+  pattern GL_MAX_FRAGMENT_INTERPOLATION_OFFSET,
+  pattern GL_MAX_FRAGMENT_UNIFORM_BLOCKS,
+  pattern GL_MAX_FRAGMENT_UNIFORM_COMPONENTS,
+  pattern GL_MAX_FRAGMENT_UNIFORM_VECTORS,
+  pattern GL_MAX_GEOMETRY_INPUT_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_OUTPUT_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_OUTPUT_VERTICES,
+  pattern GL_MAX_GEOMETRY_SHADER_INVOCATIONS,
+  pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_UNIFORM_BLOCKS,
+  pattern GL_MAX_GEOMETRY_UNIFORM_COMPONENTS,
+  pattern GL_MAX_INTEGER_SAMPLES,
+  pattern GL_MAX_PATCH_VERTICES,
+  pattern GL_MAX_PROGRAM_TEXEL_OFFSET,
+  pattern GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET,
+  pattern GL_MAX_RECTANGLE_TEXTURE_SIZE,
+  pattern GL_MAX_RENDERBUFFER_SIZE,
+  pattern GL_MAX_SAMPLES,
+  pattern GL_MAX_SAMPLE_MASK_WORDS,
+  pattern GL_MAX_SERVER_WAIT_TIMEOUT,
+  pattern GL_MAX_SUBROUTINES,
+  pattern GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS,
+  pattern GL_MAX_TESS_CONTROL_INPUT_COMPONENTS,
+  pattern GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS,
+  pattern GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS,
+  pattern GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS,
+  pattern GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS,
+  pattern GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS,
+  pattern GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS,
+  pattern GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS,
+  pattern GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS,
+  pattern GL_MAX_TESS_GEN_LEVEL,
+  pattern GL_MAX_TESS_PATCH_COMPONENTS,
+  pattern GL_MAX_TEXTURE_BUFFER_SIZE,
+  pattern GL_MAX_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_TEXTURE_LOD_BIAS,
+  pattern GL_MAX_TEXTURE_SIZE,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_BUFFERS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS,
+  pattern GL_MAX_UNIFORM_BLOCK_SIZE,
+  pattern GL_MAX_UNIFORM_BUFFER_BINDINGS,
+  pattern GL_MAX_VARYING_COMPONENTS,
+  pattern GL_MAX_VARYING_FLOATS,
+  pattern GL_MAX_VARYING_VECTORS,
+  pattern GL_MAX_VERTEX_ATTRIBS,
+  pattern GL_MAX_VERTEX_OUTPUT_COMPONENTS,
+  pattern GL_MAX_VERTEX_STREAMS,
+  pattern GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_VERTEX_UNIFORM_BLOCKS,
+  pattern GL_MAX_VERTEX_UNIFORM_COMPONENTS,
+  pattern GL_MAX_VERTEX_UNIFORM_VECTORS,
+  pattern GL_MAX_VIEWPORTS,
+  pattern GL_MAX_VIEWPORT_DIMS,
+  pattern GL_MEDIUM_FLOAT,
+  pattern GL_MEDIUM_INT,
+  pattern GL_MIN,
+  pattern GL_MINOR_VERSION,
+  pattern GL_MIN_FRAGMENT_INTERPOLATION_OFFSET,
+  pattern GL_MIN_PROGRAM_TEXEL_OFFSET,
+  pattern GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET,
+  pattern GL_MIN_SAMPLE_SHADING_VALUE,
+  pattern GL_MIRRORED_REPEAT,
+  pattern GL_MULTISAMPLE,
+  pattern GL_NAND,
+  pattern GL_NEAREST,
+  pattern GL_NEAREST_MIPMAP_LINEAR,
+  pattern GL_NEAREST_MIPMAP_NEAREST,
+  pattern GL_NEVER,
+  pattern GL_NICEST,
+  pattern GL_NONE,
+  pattern GL_NOOP,
+  pattern GL_NOR,
+  pattern GL_NOTEQUAL,
+  pattern GL_NO_ERROR,
+  pattern GL_NUM_COMPATIBLE_SUBROUTINES,
+  pattern GL_NUM_COMPRESSED_TEXTURE_FORMATS,
+  pattern GL_NUM_EXTENSIONS,
+  pattern GL_NUM_PROGRAM_BINARY_FORMATS,
+  pattern GL_NUM_SHADER_BINARY_FORMATS,
+  pattern GL_OBJECT_TYPE,
+  pattern GL_ONE,
+  pattern GL_ONE_MINUS_CONSTANT_ALPHA,
+  pattern GL_ONE_MINUS_CONSTANT_COLOR,
+  pattern GL_ONE_MINUS_DST_ALPHA,
+  pattern GL_ONE_MINUS_DST_COLOR,
+  pattern GL_ONE_MINUS_SRC1_ALPHA,
+  pattern GL_ONE_MINUS_SRC1_COLOR,
+  pattern GL_ONE_MINUS_SRC_ALPHA,
+  pattern GL_ONE_MINUS_SRC_COLOR,
+  pattern GL_OR,
+  pattern GL_OR_INVERTED,
+  pattern GL_OR_REVERSE,
+  pattern GL_OUT_OF_MEMORY,
+  pattern GL_PACK_ALIGNMENT,
+  pattern GL_PACK_IMAGE_HEIGHT,
+  pattern GL_PACK_LSB_FIRST,
+  pattern GL_PACK_ROW_LENGTH,
+  pattern GL_PACK_SKIP_IMAGES,
+  pattern GL_PACK_SKIP_PIXELS,
+  pattern GL_PACK_SKIP_ROWS,
+  pattern GL_PACK_SWAP_BYTES,
+  pattern GL_PATCHES,
+  pattern GL_PATCH_DEFAULT_INNER_LEVEL,
+  pattern GL_PATCH_DEFAULT_OUTER_LEVEL,
+  pattern GL_PATCH_VERTICES,
+  pattern GL_PIXEL_PACK_BUFFER,
+  pattern GL_PIXEL_PACK_BUFFER_BINDING,
+  pattern GL_PIXEL_UNPACK_BUFFER,
+  pattern GL_PIXEL_UNPACK_BUFFER_BINDING,
+  pattern GL_POINT,
+  pattern GL_POINTS,
+  pattern GL_POINT_FADE_THRESHOLD_SIZE,
+  pattern GL_POINT_SIZE,
+  pattern GL_POINT_SIZE_GRANULARITY,
+  pattern GL_POINT_SIZE_RANGE,
+  pattern GL_POINT_SPRITE_COORD_ORIGIN,
+  pattern GL_POLYGON_MODE,
+  pattern GL_POLYGON_OFFSET_FACTOR,
+  pattern GL_POLYGON_OFFSET_FILL,
+  pattern GL_POLYGON_OFFSET_LINE,
+  pattern GL_POLYGON_OFFSET_POINT,
+  pattern GL_POLYGON_OFFSET_UNITS,
+  pattern GL_POLYGON_SMOOTH,
+  pattern GL_POLYGON_SMOOTH_HINT,
+  pattern GL_PRIMITIVES_GENERATED,
+  pattern GL_PRIMITIVE_RESTART,
+  pattern GL_PRIMITIVE_RESTART_INDEX,
+  pattern GL_PROGRAM_BINARY_FORMATS,
+  pattern GL_PROGRAM_BINARY_LENGTH,
+  pattern GL_PROGRAM_BINARY_RETRIEVABLE_HINT,
+  pattern GL_PROGRAM_PIPELINE_BINDING,
+  pattern GL_PROGRAM_POINT_SIZE,
+  pattern GL_PROGRAM_SEPARABLE,
+  pattern GL_PROVOKING_VERTEX,
+  pattern GL_PROXY_TEXTURE_1D,
+  pattern GL_PROXY_TEXTURE_1D_ARRAY,
+  pattern GL_PROXY_TEXTURE_2D,
+  pattern GL_PROXY_TEXTURE_2D_ARRAY,
+  pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE,
+  pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_PROXY_TEXTURE_3D,
+  pattern GL_PROXY_TEXTURE_CUBE_MAP,
+  pattern GL_PROXY_TEXTURE_CUBE_MAP_ARRAY,
+  pattern GL_PROXY_TEXTURE_RECTANGLE,
+  pattern GL_QUADS,
+  pattern GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION,
+  pattern GL_QUERY_BY_REGION_NO_WAIT,
+  pattern GL_QUERY_BY_REGION_WAIT,
+  pattern GL_QUERY_COUNTER_BITS,
+  pattern GL_QUERY_NO_WAIT,
+  pattern GL_QUERY_RESULT,
+  pattern GL_QUERY_RESULT_AVAILABLE,
+  pattern GL_QUERY_WAIT,
+  pattern GL_R11F_G11F_B10F,
+  pattern GL_R16,
+  pattern GL_R16F,
+  pattern GL_R16I,
+  pattern GL_R16UI,
+  pattern GL_R16_SNORM,
+  pattern GL_R32F,
+  pattern GL_R32I,
+  pattern GL_R32UI,
+  pattern GL_R3_G3_B2,
+  pattern GL_R8,
+  pattern GL_R8I,
+  pattern GL_R8UI,
+  pattern GL_R8_SNORM,
+  pattern GL_RASTERIZER_DISCARD,
+  pattern GL_READ_BUFFER,
+  pattern GL_READ_FRAMEBUFFER,
+  pattern GL_READ_FRAMEBUFFER_BINDING,
+  pattern GL_READ_ONLY,
+  pattern GL_READ_WRITE,
+  pattern GL_RED,
+  pattern GL_RED_INTEGER,
+  pattern GL_RENDERBUFFER,
+  pattern GL_RENDERBUFFER_ALPHA_SIZE,
+  pattern GL_RENDERBUFFER_BINDING,
+  pattern GL_RENDERBUFFER_BLUE_SIZE,
+  pattern GL_RENDERBUFFER_DEPTH_SIZE,
+  pattern GL_RENDERBUFFER_GREEN_SIZE,
+  pattern GL_RENDERBUFFER_HEIGHT,
+  pattern GL_RENDERBUFFER_INTERNAL_FORMAT,
+  pattern GL_RENDERBUFFER_RED_SIZE,
+  pattern GL_RENDERBUFFER_SAMPLES,
+  pattern GL_RENDERBUFFER_STENCIL_SIZE,
+  pattern GL_RENDERBUFFER_WIDTH,
+  pattern GL_RENDERER,
+  pattern GL_REPEAT,
+  pattern GL_REPLACE,
+  pattern GL_RG,
+  pattern GL_RG16,
+  pattern GL_RG16F,
+  pattern GL_RG16I,
+  pattern GL_RG16UI,
+  pattern GL_RG16_SNORM,
+  pattern GL_RG32F,
+  pattern GL_RG32I,
+  pattern GL_RG32UI,
+  pattern GL_RG8,
+  pattern GL_RG8I,
+  pattern GL_RG8UI,
+  pattern GL_RG8_SNORM,
+  pattern GL_RGB,
+  pattern GL_RGB10,
+  pattern GL_RGB10_A2,
+  pattern GL_RGB10_A2UI,
+  pattern GL_RGB12,
+  pattern GL_RGB16,
+  pattern GL_RGB16F,
+  pattern GL_RGB16I,
+  pattern GL_RGB16UI,
+  pattern GL_RGB16_SNORM,
+  pattern GL_RGB32F,
+  pattern GL_RGB32I,
+  pattern GL_RGB32UI,
+  pattern GL_RGB4,
+  pattern GL_RGB5,
+  pattern GL_RGB565,
+  pattern GL_RGB5_A1,
+  pattern GL_RGB8,
+  pattern GL_RGB8I,
+  pattern GL_RGB8UI,
+  pattern GL_RGB8_SNORM,
+  pattern GL_RGB9_E5,
+  pattern GL_RGBA,
+  pattern GL_RGBA12,
+  pattern GL_RGBA16,
+  pattern GL_RGBA16F,
+  pattern GL_RGBA16I,
+  pattern GL_RGBA16UI,
+  pattern GL_RGBA16_SNORM,
+  pattern GL_RGBA2,
+  pattern GL_RGBA32F,
+  pattern GL_RGBA32I,
+  pattern GL_RGBA32UI,
+  pattern GL_RGBA4,
+  pattern GL_RGBA8,
+  pattern GL_RGBA8I,
+  pattern GL_RGBA8UI,
+  pattern GL_RGBA8_SNORM,
+  pattern GL_RGBA_INTEGER,
+  pattern GL_RGB_INTEGER,
+  pattern GL_RG_INTEGER,
+  pattern GL_RIGHT,
+  pattern GL_SAMPLER_1D,
+  pattern GL_SAMPLER_1D_ARRAY,
+  pattern GL_SAMPLER_1D_ARRAY_SHADOW,
+  pattern GL_SAMPLER_1D_SHADOW,
+  pattern GL_SAMPLER_2D,
+  pattern GL_SAMPLER_2D_ARRAY,
+  pattern GL_SAMPLER_2D_ARRAY_SHADOW,
+  pattern GL_SAMPLER_2D_MULTISAMPLE,
+  pattern GL_SAMPLER_2D_MULTISAMPLE_ARRAY,
+  pattern GL_SAMPLER_2D_RECT,
+  pattern GL_SAMPLER_2D_RECT_SHADOW,
+  pattern GL_SAMPLER_2D_SHADOW,
+  pattern GL_SAMPLER_3D,
+  pattern GL_SAMPLER_BINDING,
+  pattern GL_SAMPLER_BUFFER,
+  pattern GL_SAMPLER_CUBE,
+  pattern GL_SAMPLER_CUBE_MAP_ARRAY,
+  pattern GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW,
+  pattern GL_SAMPLER_CUBE_SHADOW,
+  pattern GL_SAMPLES,
+  pattern GL_SAMPLES_PASSED,
+  pattern GL_SAMPLE_ALPHA_TO_COVERAGE,
+  pattern GL_SAMPLE_ALPHA_TO_ONE,
+  pattern GL_SAMPLE_BUFFERS,
+  pattern GL_SAMPLE_COVERAGE,
+  pattern GL_SAMPLE_COVERAGE_INVERT,
+  pattern GL_SAMPLE_COVERAGE_VALUE,
+  pattern GL_SAMPLE_MASK,
+  pattern GL_SAMPLE_MASK_VALUE,
+  pattern GL_SAMPLE_POSITION,
+  pattern GL_SAMPLE_SHADING,
+  pattern GL_SCISSOR_BOX,
+  pattern GL_SCISSOR_TEST,
+  pattern GL_SEPARATE_ATTRIBS,
+  pattern GL_SET,
+  pattern GL_SHADER_BINARY_FORMATS,
+  pattern GL_SHADER_COMPILER,
+  pattern GL_SHADER_SOURCE_LENGTH,
+  pattern GL_SHADER_TYPE,
+  pattern GL_SHADING_LANGUAGE_VERSION,
+  pattern GL_SHORT,
+  pattern GL_SIGNALED,
+  pattern GL_SIGNED_NORMALIZED,
+  pattern GL_SMOOTH_LINE_WIDTH_GRANULARITY,
+  pattern GL_SMOOTH_LINE_WIDTH_RANGE,
+  pattern GL_SMOOTH_POINT_SIZE_GRANULARITY,
+  pattern GL_SMOOTH_POINT_SIZE_RANGE,
+  pattern GL_SRC1_ALPHA,
+  pattern GL_SRC1_COLOR,
+  pattern GL_SRC_ALPHA,
+  pattern GL_SRC_ALPHA_SATURATE,
+  pattern GL_SRC_COLOR,
+  pattern GL_SRGB,
+  pattern GL_SRGB8,
+  pattern GL_SRGB8_ALPHA8,
+  pattern GL_SRGB_ALPHA,
+  pattern GL_STATIC_COPY,
+  pattern GL_STATIC_DRAW,
+  pattern GL_STATIC_READ,
+  pattern GL_STENCIL,
+  pattern GL_STENCIL_ATTACHMENT,
+  pattern GL_STENCIL_BACK_FAIL,
+  pattern GL_STENCIL_BACK_FUNC,
+  pattern GL_STENCIL_BACK_PASS_DEPTH_FAIL,
+  pattern GL_STENCIL_BACK_PASS_DEPTH_PASS,
+  pattern GL_STENCIL_BACK_REF,
+  pattern GL_STENCIL_BACK_VALUE_MASK,
+  pattern GL_STENCIL_BACK_WRITEMASK,
+  pattern GL_STENCIL_BUFFER_BIT,
+  pattern GL_STENCIL_CLEAR_VALUE,
+  pattern GL_STENCIL_FAIL,
+  pattern GL_STENCIL_FUNC,
+  pattern GL_STENCIL_INDEX,
+  pattern GL_STENCIL_INDEX1,
+  pattern GL_STENCIL_INDEX16,
+  pattern GL_STENCIL_INDEX4,
+  pattern GL_STENCIL_INDEX8,
+  pattern GL_STENCIL_PASS_DEPTH_FAIL,
+  pattern GL_STENCIL_PASS_DEPTH_PASS,
+  pattern GL_STENCIL_REF,
+  pattern GL_STENCIL_TEST,
+  pattern GL_STENCIL_VALUE_MASK,
+  pattern GL_STENCIL_WRITEMASK,
+  pattern GL_STEREO,
+  pattern GL_STREAM_COPY,
+  pattern GL_STREAM_DRAW,
+  pattern GL_STREAM_READ,
+  pattern GL_SUBPIXEL_BITS,
+  pattern GL_SYNC_CONDITION,
+  pattern GL_SYNC_FENCE,
+  pattern GL_SYNC_FLAGS,
+  pattern GL_SYNC_FLUSH_COMMANDS_BIT,
+  pattern GL_SYNC_GPU_COMMANDS_COMPLETE,
+  pattern GL_SYNC_STATUS,
+  pattern GL_TESS_CONTROL_OUTPUT_VERTICES,
+  pattern GL_TESS_CONTROL_SHADER,
+  pattern GL_TESS_CONTROL_SHADER_BIT,
+  pattern GL_TESS_EVALUATION_SHADER,
+  pattern GL_TESS_EVALUATION_SHADER_BIT,
+  pattern GL_TESS_GEN_MODE,
+  pattern GL_TESS_GEN_POINT_MODE,
+  pattern GL_TESS_GEN_SPACING,
+  pattern GL_TESS_GEN_VERTEX_ORDER,
+  pattern GL_TEXTURE,
+  pattern GL_TEXTURE0,
+  pattern GL_TEXTURE1,
+  pattern GL_TEXTURE10,
+  pattern GL_TEXTURE11,
+  pattern GL_TEXTURE12,
+  pattern GL_TEXTURE13,
+  pattern GL_TEXTURE14,
+  pattern GL_TEXTURE15,
+  pattern GL_TEXTURE16,
+  pattern GL_TEXTURE17,
+  pattern GL_TEXTURE18,
+  pattern GL_TEXTURE19,
+  pattern GL_TEXTURE2,
+  pattern GL_TEXTURE20,
+  pattern GL_TEXTURE21,
+  pattern GL_TEXTURE22,
+  pattern GL_TEXTURE23,
+  pattern GL_TEXTURE24,
+  pattern GL_TEXTURE25,
+  pattern GL_TEXTURE26,
+  pattern GL_TEXTURE27,
+  pattern GL_TEXTURE28,
+  pattern GL_TEXTURE29,
+  pattern GL_TEXTURE3,
+  pattern GL_TEXTURE30,
+  pattern GL_TEXTURE31,
+  pattern GL_TEXTURE4,
+  pattern GL_TEXTURE5,
+  pattern GL_TEXTURE6,
+  pattern GL_TEXTURE7,
+  pattern GL_TEXTURE8,
+  pattern GL_TEXTURE9,
+  pattern GL_TEXTURE_1D,
+  pattern GL_TEXTURE_1D_ARRAY,
+  pattern GL_TEXTURE_2D,
+  pattern GL_TEXTURE_2D_ARRAY,
+  pattern GL_TEXTURE_2D_MULTISAMPLE,
+  pattern GL_TEXTURE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_TEXTURE_3D,
+  pattern GL_TEXTURE_ALPHA_SIZE,
+  pattern GL_TEXTURE_ALPHA_TYPE,
+  pattern GL_TEXTURE_BASE_LEVEL,
+  pattern GL_TEXTURE_BINDING_1D,
+  pattern GL_TEXTURE_BINDING_1D_ARRAY,
+  pattern GL_TEXTURE_BINDING_2D,
+  pattern GL_TEXTURE_BINDING_2D_ARRAY,
+  pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE,
+  pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY,
+  pattern GL_TEXTURE_BINDING_3D,
+  pattern GL_TEXTURE_BINDING_BUFFER,
+  pattern GL_TEXTURE_BINDING_CUBE_MAP,
+  pattern GL_TEXTURE_BINDING_CUBE_MAP_ARRAY,
+  pattern GL_TEXTURE_BINDING_RECTANGLE,
+  pattern GL_TEXTURE_BLUE_SIZE,
+  pattern GL_TEXTURE_BLUE_TYPE,
+  pattern GL_TEXTURE_BORDER_COLOR,
+  pattern GL_TEXTURE_BUFFER,
+  pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING,
+  pattern GL_TEXTURE_COMPARE_FUNC,
+  pattern GL_TEXTURE_COMPARE_MODE,
+  pattern GL_TEXTURE_COMPRESSED,
+  pattern GL_TEXTURE_COMPRESSED_IMAGE_SIZE,
+  pattern GL_TEXTURE_COMPRESSION_HINT,
+  pattern GL_TEXTURE_CUBE_MAP,
+  pattern GL_TEXTURE_CUBE_MAP_ARRAY,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z,
+  pattern GL_TEXTURE_CUBE_MAP_SEAMLESS,
+  pattern GL_TEXTURE_DEPTH,
+  pattern GL_TEXTURE_DEPTH_SIZE,
+  pattern GL_TEXTURE_DEPTH_TYPE,
+  pattern GL_TEXTURE_FIXED_SAMPLE_LOCATIONS,
+  pattern GL_TEXTURE_GREEN_SIZE,
+  pattern GL_TEXTURE_GREEN_TYPE,
+  pattern GL_TEXTURE_HEIGHT,
+  pattern GL_TEXTURE_INTERNAL_FORMAT,
+  pattern GL_TEXTURE_LOD_BIAS,
+  pattern GL_TEXTURE_MAG_FILTER,
+  pattern GL_TEXTURE_MAX_LEVEL,
+  pattern GL_TEXTURE_MAX_LOD,
+  pattern GL_TEXTURE_MIN_FILTER,
+  pattern GL_TEXTURE_MIN_LOD,
+  pattern GL_TEXTURE_RECTANGLE,
+  pattern GL_TEXTURE_RED_SIZE,
+  pattern GL_TEXTURE_RED_TYPE,
+  pattern GL_TEXTURE_SAMPLES,
+  pattern GL_TEXTURE_SHARED_SIZE,
+  pattern GL_TEXTURE_STENCIL_SIZE,
+  pattern GL_TEXTURE_SWIZZLE_A,
+  pattern GL_TEXTURE_SWIZZLE_B,
+  pattern GL_TEXTURE_SWIZZLE_G,
+  pattern GL_TEXTURE_SWIZZLE_R,
+  pattern GL_TEXTURE_SWIZZLE_RGBA,
+  pattern GL_TEXTURE_WIDTH,
+  pattern GL_TEXTURE_WRAP_R,
+  pattern GL_TEXTURE_WRAP_S,
+  pattern GL_TEXTURE_WRAP_T,
+  pattern GL_TIMEOUT_EXPIRED,
+  pattern GL_TIMEOUT_IGNORED,
+  pattern GL_TIMESTAMP,
+  pattern GL_TIME_ELAPSED,
+  pattern GL_TRANSFORM_FEEDBACK,
+  pattern GL_TRANSFORM_FEEDBACK_BINDING,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_BINDING,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_MODE,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_SIZE,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_START,
+  pattern GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN,
+  pattern GL_TRANSFORM_FEEDBACK_VARYINGS,
+  pattern GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH,
+  pattern GL_TRIANGLES,
+  pattern GL_TRIANGLES_ADJACENCY,
+  pattern GL_TRIANGLE_FAN,
+  pattern GL_TRIANGLE_STRIP,
+  pattern GL_TRIANGLE_STRIP_ADJACENCY,
+  pattern GL_TRUE,
+  pattern GL_UNDEFINED_VERTEX,
+  pattern GL_UNIFORM_ARRAY_STRIDE,
+  pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS,
+  pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES,
+  pattern GL_UNIFORM_BLOCK_BINDING,
+  pattern GL_UNIFORM_BLOCK_DATA_SIZE,
+  pattern GL_UNIFORM_BLOCK_INDEX,
+  pattern GL_UNIFORM_BLOCK_NAME_LENGTH,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER,
+  pattern GL_UNIFORM_BUFFER,
+  pattern GL_UNIFORM_BUFFER_BINDING,
+  pattern GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT,
+  pattern GL_UNIFORM_BUFFER_SIZE,
+  pattern GL_UNIFORM_BUFFER_START,
+  pattern GL_UNIFORM_IS_ROW_MAJOR,
+  pattern GL_UNIFORM_MATRIX_STRIDE,
+  pattern GL_UNIFORM_NAME_LENGTH,
+  pattern GL_UNIFORM_OFFSET,
+  pattern GL_UNIFORM_SIZE,
+  pattern GL_UNIFORM_TYPE,
+  pattern GL_UNPACK_ALIGNMENT,
+  pattern GL_UNPACK_IMAGE_HEIGHT,
+  pattern GL_UNPACK_LSB_FIRST,
+  pattern GL_UNPACK_ROW_LENGTH,
+  pattern GL_UNPACK_SKIP_IMAGES,
+  pattern GL_UNPACK_SKIP_PIXELS,
+  pattern GL_UNPACK_SKIP_ROWS,
+  pattern GL_UNPACK_SWAP_BYTES,
+  pattern GL_UNSIGNALED,
+  pattern GL_UNSIGNED_BYTE,
+  pattern GL_UNSIGNED_BYTE_2_3_3_REV,
+  pattern GL_UNSIGNED_BYTE_3_3_2,
+  pattern GL_UNSIGNED_INT,
+  pattern GL_UNSIGNED_INT_10F_11F_11F_REV,
+  pattern GL_UNSIGNED_INT_10_10_10_2,
+  pattern GL_UNSIGNED_INT_24_8,
+  pattern GL_UNSIGNED_INT_2_10_10_10_REV,
+  pattern GL_UNSIGNED_INT_5_9_9_9_REV,
+  pattern GL_UNSIGNED_INT_8_8_8_8,
+  pattern GL_UNSIGNED_INT_8_8_8_8_REV,
+  pattern GL_UNSIGNED_INT_SAMPLER_1D,
+  pattern GL_UNSIGNED_INT_SAMPLER_1D_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_RECT,
+  pattern GL_UNSIGNED_INT_SAMPLER_3D,
+  pattern GL_UNSIGNED_INT_SAMPLER_BUFFER,
+  pattern GL_UNSIGNED_INT_SAMPLER_CUBE,
+  pattern GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY,
+  pattern GL_UNSIGNED_INT_VEC2,
+  pattern GL_UNSIGNED_INT_VEC3,
+  pattern GL_UNSIGNED_INT_VEC4,
+  pattern GL_UNSIGNED_NORMALIZED,
+  pattern GL_UNSIGNED_SHORT,
+  pattern GL_UNSIGNED_SHORT_1_5_5_5_REV,
+  pattern GL_UNSIGNED_SHORT_4_4_4_4,
+  pattern GL_UNSIGNED_SHORT_4_4_4_4_REV,
+  pattern GL_UNSIGNED_SHORT_5_5_5_1,
+  pattern GL_UNSIGNED_SHORT_5_6_5,
+  pattern GL_UNSIGNED_SHORT_5_6_5_REV,
+  pattern GL_UPPER_LEFT,
+  pattern GL_VALIDATE_STATUS,
+  pattern GL_VENDOR,
+  pattern GL_VERSION,
+  pattern GL_VERTEX_ARRAY_BINDING,
+  pattern GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING,
+  pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR,
+  pattern GL_VERTEX_ATTRIB_ARRAY_ENABLED,
+  pattern GL_VERTEX_ATTRIB_ARRAY_INTEGER,
+  pattern GL_VERTEX_ATTRIB_ARRAY_NORMALIZED,
+  pattern GL_VERTEX_ATTRIB_ARRAY_POINTER,
+  pattern GL_VERTEX_ATTRIB_ARRAY_SIZE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_STRIDE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_TYPE,
+  pattern GL_VERTEX_PROGRAM_POINT_SIZE,
+  pattern GL_VERTEX_SHADER,
+  pattern GL_VERTEX_SHADER_BIT,
+  pattern GL_VIEWPORT,
+  pattern GL_VIEWPORT_BOUNDS_RANGE,
+  pattern GL_VIEWPORT_INDEX_PROVOKING_VERTEX,
+  pattern GL_VIEWPORT_SUBPIXEL_BITS,
+  pattern GL_WAIT_FAILED,
+  pattern GL_WRITE_ONLY,
+  pattern GL_XOR,
+  pattern GL_ZERO,
+  -- * Functions
+  glActiveShaderProgram,
+  glActiveTexture,
+  glAttachShader,
+  glBeginConditionalRender,
+  glBeginQuery,
+  glBeginQueryIndexed,
+  glBeginTransformFeedback,
+  glBindAttribLocation,
+  glBindBuffer,
+  glBindBufferBase,
+  glBindBufferRange,
+  glBindFragDataLocation,
+  glBindFragDataLocationIndexed,
+  glBindFramebuffer,
+  glBindProgramPipeline,
+  glBindRenderbuffer,
+  glBindSampler,
+  glBindTexture,
+  glBindTransformFeedback,
+  glBindVertexArray,
+  glBlendColor,
+  glBlendEquation,
+  glBlendEquationSeparate,
+  glBlendEquationSeparatei,
+  glBlendEquationi,
+  glBlendFunc,
+  glBlendFuncSeparate,
+  glBlendFuncSeparatei,
+  glBlendFunci,
+  glBlitFramebuffer,
+  glBufferData,
+  glBufferSubData,
+  glCheckFramebufferStatus,
+  glClampColor,
+  glClear,
+  glClearBufferfi,
+  glClearBufferfv,
+  glClearBufferiv,
+  glClearBufferuiv,
+  glClearColor,
+  glClearDepth,
+  glClearDepthf,
+  glClearStencil,
+  glClientWaitSync,
+  glColorMask,
+  glColorMaski,
+  glCompileShader,
+  glCompressedTexImage1D,
+  glCompressedTexImage2D,
+  glCompressedTexImage3D,
+  glCompressedTexSubImage1D,
+  glCompressedTexSubImage2D,
+  glCompressedTexSubImage3D,
+  glCopyBufferSubData,
+  glCopyTexImage1D,
+  glCopyTexImage2D,
+  glCopyTexSubImage1D,
+  glCopyTexSubImage2D,
+  glCopyTexSubImage3D,
+  glCreateProgram,
+  glCreateShader,
+  glCreateShaderProgramv,
+  glCullFace,
+  glDeleteBuffers,
+  glDeleteFramebuffers,
+  glDeleteProgram,
+  glDeleteProgramPipelines,
+  glDeleteQueries,
+  glDeleteRenderbuffers,
+  glDeleteSamplers,
+  glDeleteShader,
+  glDeleteSync,
+  glDeleteTextures,
+  glDeleteTransformFeedbacks,
+  glDeleteVertexArrays,
+  glDepthFunc,
+  glDepthMask,
+  glDepthRange,
+  glDepthRangeArrayv,
+  glDepthRangeIndexed,
+  glDepthRangef,
+  glDetachShader,
+  glDisable,
+  glDisableVertexAttribArray,
+  glDisablei,
+  glDrawArrays,
+  glDrawArraysIndirect,
+  glDrawArraysInstanced,
+  glDrawBuffer,
+  glDrawBuffers,
+  glDrawElements,
+  glDrawElementsBaseVertex,
+  glDrawElementsIndirect,
+  glDrawElementsInstanced,
+  glDrawElementsInstancedBaseVertex,
+  glDrawRangeElements,
+  glDrawRangeElementsBaseVertex,
+  glDrawTransformFeedback,
+  glDrawTransformFeedbackStream,
+  glEnable,
+  glEnableVertexAttribArray,
+  glEnablei,
+  glEndConditionalRender,
+  glEndQuery,
+  glEndQueryIndexed,
+  glEndTransformFeedback,
+  glFenceSync,
+  glFinish,
+  glFlush,
+  glFlushMappedBufferRange,
+  glFramebufferRenderbuffer,
+  glFramebufferTexture,
+  glFramebufferTexture1D,
+  glFramebufferTexture2D,
+  glFramebufferTexture3D,
+  glFramebufferTextureLayer,
+  glFrontFace,
+  glGenBuffers,
+  glGenFramebuffers,
+  glGenProgramPipelines,
+  glGenQueries,
+  glGenRenderbuffers,
+  glGenSamplers,
+  glGenTextures,
+  glGenTransformFeedbacks,
+  glGenVertexArrays,
+  glGenerateMipmap,
+  glGetActiveAttrib,
+  glGetActiveSubroutineName,
+  glGetActiveSubroutineUniformName,
+  glGetActiveSubroutineUniformiv,
+  glGetActiveUniform,
+  glGetActiveUniformBlockName,
+  glGetActiveUniformBlockiv,
+  glGetActiveUniformName,
+  glGetActiveUniformsiv,
+  glGetAttachedShaders,
+  glGetAttribLocation,
+  glGetBooleani_v,
+  glGetBooleanv,
+  glGetBufferParameteri64v,
+  glGetBufferParameteriv,
+  glGetBufferPointerv,
+  glGetBufferSubData,
+  glGetCompressedTexImage,
+  glGetDoublei_v,
+  glGetDoublev,
+  glGetError,
+  glGetFloati_v,
+  glGetFloatv,
+  glGetFragDataIndex,
+  glGetFragDataLocation,
+  glGetFramebufferAttachmentParameteriv,
+  glGetInteger64i_v,
+  glGetInteger64v,
+  glGetIntegeri_v,
+  glGetIntegerv,
+  glGetMultisamplefv,
+  glGetProgramBinary,
+  glGetProgramInfoLog,
+  glGetProgramPipelineInfoLog,
+  glGetProgramPipelineiv,
+  glGetProgramStageiv,
+  glGetProgramiv,
+  glGetQueryIndexediv,
+  glGetQueryObjecti64v,
+  glGetQueryObjectiv,
+  glGetQueryObjectui64v,
+  glGetQueryObjectuiv,
+  glGetQueryiv,
+  glGetRenderbufferParameteriv,
+  glGetSamplerParameterIiv,
+  glGetSamplerParameterIuiv,
+  glGetSamplerParameterfv,
+  glGetSamplerParameteriv,
+  glGetShaderInfoLog,
+  glGetShaderPrecisionFormat,
+  glGetShaderSource,
+  glGetShaderiv,
+  glGetString,
+  glGetStringi,
+  glGetSubroutineIndex,
+  glGetSubroutineUniformLocation,
+  glGetSynciv,
+  glGetTexImage,
+  glGetTexLevelParameterfv,
+  glGetTexLevelParameteriv,
+  glGetTexParameterIiv,
+  glGetTexParameterIuiv,
+  glGetTexParameterfv,
+  glGetTexParameteriv,
+  glGetTransformFeedbackVarying,
+  glGetUniformBlockIndex,
+  glGetUniformIndices,
+  glGetUniformLocation,
+  glGetUniformSubroutineuiv,
+  glGetUniformdv,
+  glGetUniformfv,
+  glGetUniformiv,
+  glGetUniformuiv,
+  glGetVertexAttribIiv,
+  glGetVertexAttribIuiv,
+  glGetVertexAttribLdv,
+  glGetVertexAttribPointerv,
+  glGetVertexAttribdv,
+  glGetVertexAttribfv,
+  glGetVertexAttribiv,
+  glHint,
+  glIsBuffer,
+  glIsEnabled,
+  glIsEnabledi,
+  glIsFramebuffer,
+  glIsProgram,
+  glIsProgramPipeline,
+  glIsQuery,
+  glIsRenderbuffer,
+  glIsSampler,
+  glIsShader,
+  glIsSync,
+  glIsTexture,
+  glIsTransformFeedback,
+  glIsVertexArray,
+  glLineWidth,
+  glLinkProgram,
+  glLogicOp,
+  glMapBuffer,
+  glMapBufferRange,
+  glMinSampleShading,
+  glMultiDrawArrays,
+  glMultiDrawElements,
+  glMultiDrawElementsBaseVertex,
+  glPatchParameterfv,
+  glPatchParameteri,
+  glPauseTransformFeedback,
+  glPixelStoref,
+  glPixelStorei,
+  glPointParameterf,
+  glPointParameterfv,
+  glPointParameteri,
+  glPointParameteriv,
+  glPointSize,
+  glPolygonMode,
+  glPolygonOffset,
+  glPrimitiveRestartIndex,
+  glProgramBinary,
+  glProgramParameteri,
+  glProgramUniform1d,
+  glProgramUniform1dv,
+  glProgramUniform1f,
+  glProgramUniform1fv,
+  glProgramUniform1i,
+  glProgramUniform1iv,
+  glProgramUniform1ui,
+  glProgramUniform1uiv,
+  glProgramUniform2d,
+  glProgramUniform2dv,
+  glProgramUniform2f,
+  glProgramUniform2fv,
+  glProgramUniform2i,
+  glProgramUniform2iv,
+  glProgramUniform2ui,
+  glProgramUniform2uiv,
+  glProgramUniform3d,
+  glProgramUniform3dv,
+  glProgramUniform3f,
+  glProgramUniform3fv,
+  glProgramUniform3i,
+  glProgramUniform3iv,
+  glProgramUniform3ui,
+  glProgramUniform3uiv,
+  glProgramUniform4d,
+  glProgramUniform4dv,
+  glProgramUniform4f,
+  glProgramUniform4fv,
+  glProgramUniform4i,
+  glProgramUniform4iv,
+  glProgramUniform4ui,
+  glProgramUniform4uiv,
+  glProgramUniformMatrix2dv,
+  glProgramUniformMatrix2fv,
+  glProgramUniformMatrix2x3dv,
+  glProgramUniformMatrix2x3fv,
+  glProgramUniformMatrix2x4dv,
+  glProgramUniformMatrix2x4fv,
+  glProgramUniformMatrix3dv,
+  glProgramUniformMatrix3fv,
+  glProgramUniformMatrix3x2dv,
+  glProgramUniformMatrix3x2fv,
+  glProgramUniformMatrix3x4dv,
+  glProgramUniformMatrix3x4fv,
+  glProgramUniformMatrix4dv,
+  glProgramUniformMatrix4fv,
+  glProgramUniformMatrix4x2dv,
+  glProgramUniformMatrix4x2fv,
+  glProgramUniformMatrix4x3dv,
+  glProgramUniformMatrix4x3fv,
+  glProvokingVertex,
+  glQueryCounter,
+  glReadBuffer,
+  glReadPixels,
+  glReleaseShaderCompiler,
+  glRenderbufferStorage,
+  glRenderbufferStorageMultisample,
+  glResumeTransformFeedback,
+  glSampleCoverage,
+  glSampleMaski,
+  glSamplerParameterIiv,
+  glSamplerParameterIuiv,
+  glSamplerParameterf,
+  glSamplerParameterfv,
+  glSamplerParameteri,
+  glSamplerParameteriv,
+  glScissor,
+  glScissorArrayv,
+  glScissorIndexed,
+  glScissorIndexedv,
+  glShaderBinary,
+  glShaderSource,
+  glStencilFunc,
+  glStencilFuncSeparate,
+  glStencilMask,
+  glStencilMaskSeparate,
+  glStencilOp,
+  glStencilOpSeparate,
+  glTexBuffer,
+  glTexImage1D,
+  glTexImage2D,
+  glTexImage2DMultisample,
+  glTexImage3D,
+  glTexImage3DMultisample,
+  glTexParameterIiv,
+  glTexParameterIuiv,
+  glTexParameterf,
+  glTexParameterfv,
+  glTexParameteri,
+  glTexParameteriv,
+  glTexSubImage1D,
+  glTexSubImage2D,
+  glTexSubImage3D,
+  glTransformFeedbackVaryings,
+  glUniform1d,
+  glUniform1dv,
+  glUniform1f,
+  glUniform1fv,
+  glUniform1i,
+  glUniform1iv,
+  glUniform1ui,
+  glUniform1uiv,
+  glUniform2d,
+  glUniform2dv,
+  glUniform2f,
+  glUniform2fv,
+  glUniform2i,
+  glUniform2iv,
+  glUniform2ui,
+  glUniform2uiv,
+  glUniform3d,
+  glUniform3dv,
+  glUniform3f,
+  glUniform3fv,
+  glUniform3i,
+  glUniform3iv,
+  glUniform3ui,
+  glUniform3uiv,
+  glUniform4d,
+  glUniform4dv,
+  glUniform4f,
+  glUniform4fv,
+  glUniform4i,
+  glUniform4iv,
+  glUniform4ui,
+  glUniform4uiv,
+  glUniformBlockBinding,
+  glUniformMatrix2dv,
+  glUniformMatrix2fv,
+  glUniformMatrix2x3dv,
+  glUniformMatrix2x3fv,
+  glUniformMatrix2x4dv,
+  glUniformMatrix2x4fv,
+  glUniformMatrix3dv,
+  glUniformMatrix3fv,
+  glUniformMatrix3x2dv,
+  glUniformMatrix3x2fv,
+  glUniformMatrix3x4dv,
+  glUniformMatrix3x4fv,
+  glUniformMatrix4dv,
+  glUniformMatrix4fv,
+  glUniformMatrix4x2dv,
+  glUniformMatrix4x2fv,
+  glUniformMatrix4x3dv,
+  glUniformMatrix4x3fv,
+  glUniformSubroutinesuiv,
+  glUnmapBuffer,
+  glUseProgram,
+  glUseProgramStages,
+  glValidateProgram,
+  glValidateProgramPipeline,
+  glVertexAttrib1d,
+  glVertexAttrib1dv,
+  glVertexAttrib1f,
+  glVertexAttrib1fv,
+  glVertexAttrib1s,
+  glVertexAttrib1sv,
+  glVertexAttrib2d,
+  glVertexAttrib2dv,
+  glVertexAttrib2f,
+  glVertexAttrib2fv,
+  glVertexAttrib2s,
+  glVertexAttrib2sv,
+  glVertexAttrib3d,
+  glVertexAttrib3dv,
+  glVertexAttrib3f,
+  glVertexAttrib3fv,
+  glVertexAttrib3s,
+  glVertexAttrib3sv,
+  glVertexAttrib4Nbv,
+  glVertexAttrib4Niv,
+  glVertexAttrib4Nsv,
+  glVertexAttrib4Nub,
+  glVertexAttrib4Nubv,
+  glVertexAttrib4Nuiv,
+  glVertexAttrib4Nusv,
+  glVertexAttrib4bv,
+  glVertexAttrib4d,
+  glVertexAttrib4dv,
+  glVertexAttrib4f,
+  glVertexAttrib4fv,
+  glVertexAttrib4iv,
+  glVertexAttrib4s,
+  glVertexAttrib4sv,
+  glVertexAttrib4ubv,
+  glVertexAttrib4uiv,
+  glVertexAttrib4usv,
+  glVertexAttribDivisor,
+  glVertexAttribI1i,
+  glVertexAttribI1iv,
+  glVertexAttribI1ui,
+  glVertexAttribI1uiv,
+  glVertexAttribI2i,
+  glVertexAttribI2iv,
+  glVertexAttribI2ui,
+  glVertexAttribI2uiv,
+  glVertexAttribI3i,
+  glVertexAttribI3iv,
+  glVertexAttribI3ui,
+  glVertexAttribI3uiv,
+  glVertexAttribI4bv,
+  glVertexAttribI4i,
+  glVertexAttribI4iv,
+  glVertexAttribI4sv,
+  glVertexAttribI4ubv,
+  glVertexAttribI4ui,
+  glVertexAttribI4uiv,
+  glVertexAttribI4usv,
+  glVertexAttribIPointer,
+  glVertexAttribL1d,
+  glVertexAttribL1dv,
+  glVertexAttribL2d,
+  glVertexAttribL2dv,
+  glVertexAttribL3d,
+  glVertexAttribL3dv,
+  glVertexAttribL4d,
+  glVertexAttribL4dv,
+  glVertexAttribLPointer,
+  glVertexAttribP1ui,
+  glVertexAttribP1uiv,
+  glVertexAttribP2ui,
+  glVertexAttribP2uiv,
+  glVertexAttribP3ui,
+  glVertexAttribP3uiv,
+  glVertexAttribP4ui,
+  glVertexAttribP4uiv,
+  glVertexAttribPointer,
+  glViewport,
+  glViewportArrayv,
+  glViewportIndexedf,
+  glViewportIndexedfv,
+  glWaitSync
+) where
+
+import Graphics.GL.Types
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/Core42.hs b/src/Graphics/GL/Core42.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Core42.hs
@@ -0,0 +1,1577 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Core42
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Core42 (
+  -- * Types
+  GLbitfield,
+  GLboolean,
+  GLbyte,
+  GLchar,
+  GLclampd,
+  GLclampf,
+  GLdouble,
+  GLenum,
+  GLfloat,
+  GLhalf,
+  GLint,
+  GLint64,
+  GLintptr,
+  GLshort,
+  GLsizei,
+  GLsizeiptr,
+  GLsync,
+  GLubyte,
+  GLuint,
+  GLuint64,
+  GLushort,
+  GLvoid,
+  -- * Enums
+  pattern GL_ACTIVE_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_ACTIVE_ATTRIBUTES,
+  pattern GL_ACTIVE_ATTRIBUTE_MAX_LENGTH,
+  pattern GL_ACTIVE_PROGRAM,
+  pattern GL_ACTIVE_SUBROUTINES,
+  pattern GL_ACTIVE_SUBROUTINE_MAX_LENGTH,
+  pattern GL_ACTIVE_SUBROUTINE_UNIFORMS,
+  pattern GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS,
+  pattern GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH,
+  pattern GL_ACTIVE_TEXTURE,
+  pattern GL_ACTIVE_UNIFORMS,
+  pattern GL_ACTIVE_UNIFORM_BLOCKS,
+  pattern GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH,
+  pattern GL_ACTIVE_UNIFORM_MAX_LENGTH,
+  pattern GL_ALIASED_LINE_WIDTH_RANGE,
+  pattern GL_ALL_BARRIER_BITS,
+  pattern GL_ALL_SHADER_BITS,
+  pattern GL_ALPHA,
+  pattern GL_ALREADY_SIGNALED,
+  pattern GL_ALWAYS,
+  pattern GL_AND,
+  pattern GL_AND_INVERTED,
+  pattern GL_AND_REVERSE,
+  pattern GL_ANY_SAMPLES_PASSED,
+  pattern GL_ARRAY_BUFFER,
+  pattern GL_ARRAY_BUFFER_BINDING,
+  pattern GL_ATOMIC_COUNTER_BARRIER_BIT,
+  pattern GL_ATOMIC_COUNTER_BUFFER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS,
+  pattern GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES,
+  pattern GL_ATOMIC_COUNTER_BUFFER_BINDING,
+  pattern GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_SIZE,
+  pattern GL_ATOMIC_COUNTER_BUFFER_START,
+  pattern GL_ATTACHED_SHADERS,
+  pattern GL_BACK,
+  pattern GL_BACK_LEFT,
+  pattern GL_BACK_RIGHT,
+  pattern GL_BGR,
+  pattern GL_BGRA,
+  pattern GL_BGRA_INTEGER,
+  pattern GL_BGR_INTEGER,
+  pattern GL_BLEND,
+  pattern GL_BLEND_COLOR,
+  pattern GL_BLEND_DST,
+  pattern GL_BLEND_DST_ALPHA,
+  pattern GL_BLEND_DST_RGB,
+  pattern GL_BLEND_EQUATION,
+  pattern GL_BLEND_EQUATION_ALPHA,
+  pattern GL_BLEND_EQUATION_RGB,
+  pattern GL_BLEND_SRC,
+  pattern GL_BLEND_SRC_ALPHA,
+  pattern GL_BLEND_SRC_RGB,
+  pattern GL_BLUE,
+  pattern GL_BLUE_INTEGER,
+  pattern GL_BOOL,
+  pattern GL_BOOL_VEC2,
+  pattern GL_BOOL_VEC3,
+  pattern GL_BOOL_VEC4,
+  pattern GL_BUFFER_ACCESS,
+  pattern GL_BUFFER_ACCESS_FLAGS,
+  pattern GL_BUFFER_MAPPED,
+  pattern GL_BUFFER_MAP_LENGTH,
+  pattern GL_BUFFER_MAP_OFFSET,
+  pattern GL_BUFFER_MAP_POINTER,
+  pattern GL_BUFFER_SIZE,
+  pattern GL_BUFFER_UPDATE_BARRIER_BIT,
+  pattern GL_BUFFER_USAGE,
+  pattern GL_BYTE,
+  pattern GL_CCW,
+  pattern GL_CLAMP_READ_COLOR,
+  pattern GL_CLAMP_TO_BORDER,
+  pattern GL_CLAMP_TO_EDGE,
+  pattern GL_CLEAR,
+  pattern GL_CLIP_DISTANCE0,
+  pattern GL_CLIP_DISTANCE1,
+  pattern GL_CLIP_DISTANCE2,
+  pattern GL_CLIP_DISTANCE3,
+  pattern GL_CLIP_DISTANCE4,
+  pattern GL_CLIP_DISTANCE5,
+  pattern GL_CLIP_DISTANCE6,
+  pattern GL_CLIP_DISTANCE7,
+  pattern GL_COLOR,
+  pattern GL_COLOR_ATTACHMENT0,
+  pattern GL_COLOR_ATTACHMENT1,
+  pattern GL_COLOR_ATTACHMENT10,
+  pattern GL_COLOR_ATTACHMENT11,
+  pattern GL_COLOR_ATTACHMENT12,
+  pattern GL_COLOR_ATTACHMENT13,
+  pattern GL_COLOR_ATTACHMENT14,
+  pattern GL_COLOR_ATTACHMENT15,
+  pattern GL_COLOR_ATTACHMENT16,
+  pattern GL_COLOR_ATTACHMENT17,
+  pattern GL_COLOR_ATTACHMENT18,
+  pattern GL_COLOR_ATTACHMENT19,
+  pattern GL_COLOR_ATTACHMENT2,
+  pattern GL_COLOR_ATTACHMENT20,
+  pattern GL_COLOR_ATTACHMENT21,
+  pattern GL_COLOR_ATTACHMENT22,
+  pattern GL_COLOR_ATTACHMENT23,
+  pattern GL_COLOR_ATTACHMENT24,
+  pattern GL_COLOR_ATTACHMENT25,
+  pattern GL_COLOR_ATTACHMENT26,
+  pattern GL_COLOR_ATTACHMENT27,
+  pattern GL_COLOR_ATTACHMENT28,
+  pattern GL_COLOR_ATTACHMENT29,
+  pattern GL_COLOR_ATTACHMENT3,
+  pattern GL_COLOR_ATTACHMENT30,
+  pattern GL_COLOR_ATTACHMENT31,
+  pattern GL_COLOR_ATTACHMENT4,
+  pattern GL_COLOR_ATTACHMENT5,
+  pattern GL_COLOR_ATTACHMENT6,
+  pattern GL_COLOR_ATTACHMENT7,
+  pattern GL_COLOR_ATTACHMENT8,
+  pattern GL_COLOR_ATTACHMENT9,
+  pattern GL_COLOR_BUFFER_BIT,
+  pattern GL_COLOR_CLEAR_VALUE,
+  pattern GL_COLOR_LOGIC_OP,
+  pattern GL_COLOR_WRITEMASK,
+  pattern GL_COMMAND_BARRIER_BIT,
+  pattern GL_COMPARE_REF_TO_TEXTURE,
+  pattern GL_COMPATIBLE_SUBROUTINES,
+  pattern GL_COMPILE_STATUS,
+  pattern GL_COMPRESSED_RED,
+  pattern GL_COMPRESSED_RED_RGTC1,
+  pattern GL_COMPRESSED_RG,
+  pattern GL_COMPRESSED_RGB,
+  pattern GL_COMPRESSED_RGBA,
+  pattern GL_COMPRESSED_RGBA_BPTC_UNORM,
+  pattern GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT,
+  pattern GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT,
+  pattern GL_COMPRESSED_RG_RGTC2,
+  pattern GL_COMPRESSED_SIGNED_RED_RGTC1,
+  pattern GL_COMPRESSED_SIGNED_RG_RGTC2,
+  pattern GL_COMPRESSED_SRGB,
+  pattern GL_COMPRESSED_SRGB_ALPHA,
+  pattern GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM,
+  pattern GL_COMPRESSED_TEXTURE_FORMATS,
+  pattern GL_CONDITION_SATISFIED,
+  pattern GL_CONSTANT_ALPHA,
+  pattern GL_CONSTANT_COLOR,
+  pattern GL_CONTEXT_COMPATIBILITY_PROFILE_BIT,
+  pattern GL_CONTEXT_CORE_PROFILE_BIT,
+  pattern GL_CONTEXT_FLAGS,
+  pattern GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT,
+  pattern GL_CONTEXT_PROFILE_MASK,
+  pattern GL_COPY,
+  pattern GL_COPY_INVERTED,
+  pattern GL_COPY_READ_BUFFER,
+  pattern GL_COPY_READ_BUFFER_BINDING,
+  pattern GL_COPY_WRITE_BUFFER,
+  pattern GL_COPY_WRITE_BUFFER_BINDING,
+  pattern GL_CULL_FACE,
+  pattern GL_CULL_FACE_MODE,
+  pattern GL_CURRENT_PROGRAM,
+  pattern GL_CURRENT_QUERY,
+  pattern GL_CURRENT_VERTEX_ATTRIB,
+  pattern GL_CW,
+  pattern GL_DECR,
+  pattern GL_DECR_WRAP,
+  pattern GL_DELETE_STATUS,
+  pattern GL_DEPTH,
+  pattern GL_DEPTH24_STENCIL8,
+  pattern GL_DEPTH32F_STENCIL8,
+  pattern GL_DEPTH_ATTACHMENT,
+  pattern GL_DEPTH_BUFFER_BIT,
+  pattern GL_DEPTH_CLAMP,
+  pattern GL_DEPTH_CLEAR_VALUE,
+  pattern GL_DEPTH_COMPONENT,
+  pattern GL_DEPTH_COMPONENT16,
+  pattern GL_DEPTH_COMPONENT24,
+  pattern GL_DEPTH_COMPONENT32,
+  pattern GL_DEPTH_COMPONENT32F,
+  pattern GL_DEPTH_FUNC,
+  pattern GL_DEPTH_RANGE,
+  pattern GL_DEPTH_STENCIL,
+  pattern GL_DEPTH_STENCIL_ATTACHMENT,
+  pattern GL_DEPTH_TEST,
+  pattern GL_DEPTH_WRITEMASK,
+  pattern GL_DITHER,
+  pattern GL_DONT_CARE,
+  pattern GL_DOUBLE,
+  pattern GL_DOUBLEBUFFER,
+  pattern GL_DOUBLE_MAT2,
+  pattern GL_DOUBLE_MAT2x3,
+  pattern GL_DOUBLE_MAT2x4,
+  pattern GL_DOUBLE_MAT3,
+  pattern GL_DOUBLE_MAT3x2,
+  pattern GL_DOUBLE_MAT3x4,
+  pattern GL_DOUBLE_MAT4,
+  pattern GL_DOUBLE_MAT4x2,
+  pattern GL_DOUBLE_MAT4x3,
+  pattern GL_DOUBLE_VEC2,
+  pattern GL_DOUBLE_VEC3,
+  pattern GL_DOUBLE_VEC4,
+  pattern GL_DRAW_BUFFER,
+  pattern GL_DRAW_BUFFER0,
+  pattern GL_DRAW_BUFFER1,
+  pattern GL_DRAW_BUFFER10,
+  pattern GL_DRAW_BUFFER11,
+  pattern GL_DRAW_BUFFER12,
+  pattern GL_DRAW_BUFFER13,
+  pattern GL_DRAW_BUFFER14,
+  pattern GL_DRAW_BUFFER15,
+  pattern GL_DRAW_BUFFER2,
+  pattern GL_DRAW_BUFFER3,
+  pattern GL_DRAW_BUFFER4,
+  pattern GL_DRAW_BUFFER5,
+  pattern GL_DRAW_BUFFER6,
+  pattern GL_DRAW_BUFFER7,
+  pattern GL_DRAW_BUFFER8,
+  pattern GL_DRAW_BUFFER9,
+  pattern GL_DRAW_FRAMEBUFFER,
+  pattern GL_DRAW_FRAMEBUFFER_BINDING,
+  pattern GL_DRAW_INDIRECT_BUFFER,
+  pattern GL_DRAW_INDIRECT_BUFFER_BINDING,
+  pattern GL_DST_ALPHA,
+  pattern GL_DST_COLOR,
+  pattern GL_DYNAMIC_COPY,
+  pattern GL_DYNAMIC_DRAW,
+  pattern GL_DYNAMIC_READ,
+  pattern GL_ELEMENT_ARRAY_BARRIER_BIT,
+  pattern GL_ELEMENT_ARRAY_BUFFER,
+  pattern GL_ELEMENT_ARRAY_BUFFER_BINDING,
+  pattern GL_EQUAL,
+  pattern GL_EQUIV,
+  pattern GL_EXTENSIONS,
+  pattern GL_FALSE,
+  pattern GL_FASTEST,
+  pattern GL_FILL,
+  pattern GL_FIRST_VERTEX_CONVENTION,
+  pattern GL_FIXED,
+  pattern GL_FIXED_ONLY,
+  pattern GL_FLOAT,
+  pattern GL_FLOAT_32_UNSIGNED_INT_24_8_REV,
+  pattern GL_FLOAT_MAT2,
+  pattern GL_FLOAT_MAT2x3,
+  pattern GL_FLOAT_MAT2x4,
+  pattern GL_FLOAT_MAT3,
+  pattern GL_FLOAT_MAT3x2,
+  pattern GL_FLOAT_MAT3x4,
+  pattern GL_FLOAT_MAT4,
+  pattern GL_FLOAT_MAT4x2,
+  pattern GL_FLOAT_MAT4x3,
+  pattern GL_FLOAT_VEC2,
+  pattern GL_FLOAT_VEC3,
+  pattern GL_FLOAT_VEC4,
+  pattern GL_FRACTIONAL_EVEN,
+  pattern GL_FRACTIONAL_ODD,
+  pattern GL_FRAGMENT_INTERPOLATION_OFFSET_BITS,
+  pattern GL_FRAGMENT_SHADER,
+  pattern GL_FRAGMENT_SHADER_BIT,
+  pattern GL_FRAGMENT_SHADER_DERIVATIVE_HINT,
+  pattern GL_FRAMEBUFFER,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL,
+  pattern GL_FRAMEBUFFER_BARRIER_BIT,
+  pattern GL_FRAMEBUFFER_BINDING,
+  pattern GL_FRAMEBUFFER_COMPLETE,
+  pattern GL_FRAMEBUFFER_DEFAULT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER,
+  pattern GL_FRAMEBUFFER_SRGB,
+  pattern GL_FRAMEBUFFER_UNDEFINED,
+  pattern GL_FRAMEBUFFER_UNSUPPORTED,
+  pattern GL_FRONT,
+  pattern GL_FRONT_AND_BACK,
+  pattern GL_FRONT_FACE,
+  pattern GL_FRONT_LEFT,
+  pattern GL_FRONT_RIGHT,
+  pattern GL_FUNC_ADD,
+  pattern GL_FUNC_REVERSE_SUBTRACT,
+  pattern GL_FUNC_SUBTRACT,
+  pattern GL_GEOMETRY_INPUT_TYPE,
+  pattern GL_GEOMETRY_OUTPUT_TYPE,
+  pattern GL_GEOMETRY_SHADER,
+  pattern GL_GEOMETRY_SHADER_BIT,
+  pattern GL_GEOMETRY_SHADER_INVOCATIONS,
+  pattern GL_GEOMETRY_VERTICES_OUT,
+  pattern GL_GEQUAL,
+  pattern GL_GREATER,
+  pattern GL_GREEN,
+  pattern GL_GREEN_INTEGER,
+  pattern GL_HALF_FLOAT,
+  pattern GL_HIGH_FLOAT,
+  pattern GL_HIGH_INT,
+  pattern GL_IMAGE_1D,
+  pattern GL_IMAGE_1D_ARRAY,
+  pattern GL_IMAGE_2D,
+  pattern GL_IMAGE_2D_ARRAY,
+  pattern GL_IMAGE_2D_MULTISAMPLE,
+  pattern GL_IMAGE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_IMAGE_2D_RECT,
+  pattern GL_IMAGE_3D,
+  pattern GL_IMAGE_BINDING_ACCESS,
+  pattern GL_IMAGE_BINDING_FORMAT,
+  pattern GL_IMAGE_BINDING_LAYER,
+  pattern GL_IMAGE_BINDING_LAYERED,
+  pattern GL_IMAGE_BINDING_LEVEL,
+  pattern GL_IMAGE_BINDING_NAME,
+  pattern GL_IMAGE_BUFFER,
+  pattern GL_IMAGE_CUBE,
+  pattern GL_IMAGE_CUBE_MAP_ARRAY,
+  pattern GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS,
+  pattern GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE,
+  pattern GL_IMAGE_FORMAT_COMPATIBILITY_TYPE,
+  pattern GL_IMPLEMENTATION_COLOR_READ_FORMAT,
+  pattern GL_IMPLEMENTATION_COLOR_READ_TYPE,
+  pattern GL_INCR,
+  pattern GL_INCR_WRAP,
+  pattern GL_INFO_LOG_LENGTH,
+  pattern GL_INT,
+  pattern GL_INTERLEAVED_ATTRIBS,
+  pattern GL_INT_2_10_10_10_REV,
+  pattern GL_INT_IMAGE_1D,
+  pattern GL_INT_IMAGE_1D_ARRAY,
+  pattern GL_INT_IMAGE_2D,
+  pattern GL_INT_IMAGE_2D_ARRAY,
+  pattern GL_INT_IMAGE_2D_MULTISAMPLE,
+  pattern GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_INT_IMAGE_2D_RECT,
+  pattern GL_INT_IMAGE_3D,
+  pattern GL_INT_IMAGE_BUFFER,
+  pattern GL_INT_IMAGE_CUBE,
+  pattern GL_INT_IMAGE_CUBE_MAP_ARRAY,
+  pattern GL_INT_SAMPLER_1D,
+  pattern GL_INT_SAMPLER_1D_ARRAY,
+  pattern GL_INT_SAMPLER_2D,
+  pattern GL_INT_SAMPLER_2D_ARRAY,
+  pattern GL_INT_SAMPLER_2D_MULTISAMPLE,
+  pattern GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY,
+  pattern GL_INT_SAMPLER_2D_RECT,
+  pattern GL_INT_SAMPLER_3D,
+  pattern GL_INT_SAMPLER_BUFFER,
+  pattern GL_INT_SAMPLER_CUBE,
+  pattern GL_INT_SAMPLER_CUBE_MAP_ARRAY,
+  pattern GL_INT_VEC2,
+  pattern GL_INT_VEC3,
+  pattern GL_INT_VEC4,
+  pattern GL_INVALID_ENUM,
+  pattern GL_INVALID_FRAMEBUFFER_OPERATION,
+  pattern GL_INVALID_INDEX,
+  pattern GL_INVALID_OPERATION,
+  pattern GL_INVALID_VALUE,
+  pattern GL_INVERT,
+  pattern GL_ISOLINES,
+  pattern GL_KEEP,
+  pattern GL_LAST_VERTEX_CONVENTION,
+  pattern GL_LAYER_PROVOKING_VERTEX,
+  pattern GL_LEFT,
+  pattern GL_LEQUAL,
+  pattern GL_LESS,
+  pattern GL_LINE,
+  pattern GL_LINEAR,
+  pattern GL_LINEAR_MIPMAP_LINEAR,
+  pattern GL_LINEAR_MIPMAP_NEAREST,
+  pattern GL_LINES,
+  pattern GL_LINES_ADJACENCY,
+  pattern GL_LINE_LOOP,
+  pattern GL_LINE_SMOOTH,
+  pattern GL_LINE_SMOOTH_HINT,
+  pattern GL_LINE_STRIP,
+  pattern GL_LINE_STRIP_ADJACENCY,
+  pattern GL_LINE_WIDTH,
+  pattern GL_LINE_WIDTH_GRANULARITY,
+  pattern GL_LINE_WIDTH_RANGE,
+  pattern GL_LINK_STATUS,
+  pattern GL_LOGIC_OP_MODE,
+  pattern GL_LOWER_LEFT,
+  pattern GL_LOW_FLOAT,
+  pattern GL_LOW_INT,
+  pattern GL_MAJOR_VERSION,
+  pattern GL_MAP_FLUSH_EXPLICIT_BIT,
+  pattern GL_MAP_INVALIDATE_BUFFER_BIT,
+  pattern GL_MAP_INVALIDATE_RANGE_BIT,
+  pattern GL_MAP_READ_BIT,
+  pattern GL_MAP_UNSYNCHRONIZED_BIT,
+  pattern GL_MAP_WRITE_BIT,
+  pattern GL_MAX,
+  pattern GL_MAX_3D_TEXTURE_SIZE,
+  pattern GL_MAX_ARRAY_TEXTURE_LAYERS,
+  pattern GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS,
+  pattern GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE,
+  pattern GL_MAX_CLIP_DISTANCES,
+  pattern GL_MAX_COLOR_ATTACHMENTS,
+  pattern GL_MAX_COLOR_TEXTURE_SAMPLES,
+  pattern GL_MAX_COMBINED_ATOMIC_COUNTERS,
+  pattern GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_IMAGE_UNIFORMS,
+  pattern GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS,
+  pattern GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_COMBINED_UNIFORM_BLOCKS,
+  pattern GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS,
+  pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE,
+  pattern GL_MAX_DEPTH_TEXTURE_SAMPLES,
+  pattern GL_MAX_DRAW_BUFFERS,
+  pattern GL_MAX_DUAL_SOURCE_DRAW_BUFFERS,
+  pattern GL_MAX_ELEMENTS_INDICES,
+  pattern GL_MAX_ELEMENTS_VERTICES,
+  pattern GL_MAX_FRAGMENT_ATOMIC_COUNTERS,
+  pattern GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_FRAGMENT_IMAGE_UNIFORMS,
+  pattern GL_MAX_FRAGMENT_INPUT_COMPONENTS,
+  pattern GL_MAX_FRAGMENT_INTERPOLATION_OFFSET,
+  pattern GL_MAX_FRAGMENT_UNIFORM_BLOCKS,
+  pattern GL_MAX_FRAGMENT_UNIFORM_COMPONENTS,
+  pattern GL_MAX_FRAGMENT_UNIFORM_VECTORS,
+  pattern GL_MAX_GEOMETRY_ATOMIC_COUNTERS,
+  pattern GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_GEOMETRY_IMAGE_UNIFORMS,
+  pattern GL_MAX_GEOMETRY_INPUT_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_OUTPUT_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_OUTPUT_VERTICES,
+  pattern GL_MAX_GEOMETRY_SHADER_INVOCATIONS,
+  pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_UNIFORM_BLOCKS,
+  pattern GL_MAX_GEOMETRY_UNIFORM_COMPONENTS,
+  pattern GL_MAX_IMAGE_SAMPLES,
+  pattern GL_MAX_IMAGE_UNITS,
+  pattern GL_MAX_INTEGER_SAMPLES,
+  pattern GL_MAX_PATCH_VERTICES,
+  pattern GL_MAX_PROGRAM_TEXEL_OFFSET,
+  pattern GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET,
+  pattern GL_MAX_RECTANGLE_TEXTURE_SIZE,
+  pattern GL_MAX_RENDERBUFFER_SIZE,
+  pattern GL_MAX_SAMPLES,
+  pattern GL_MAX_SAMPLE_MASK_WORDS,
+  pattern GL_MAX_SERVER_WAIT_TIMEOUT,
+  pattern GL_MAX_SUBROUTINES,
+  pattern GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS,
+  pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS,
+  pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS,
+  pattern GL_MAX_TESS_CONTROL_INPUT_COMPONENTS,
+  pattern GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS,
+  pattern GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS,
+  pattern GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS,
+  pattern GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS,
+  pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS,
+  pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS,
+  pattern GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS,
+  pattern GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS,
+  pattern GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS,
+  pattern GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS,
+  pattern GL_MAX_TESS_GEN_LEVEL,
+  pattern GL_MAX_TESS_PATCH_COMPONENTS,
+  pattern GL_MAX_TEXTURE_BUFFER_SIZE,
+  pattern GL_MAX_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_TEXTURE_LOD_BIAS,
+  pattern GL_MAX_TEXTURE_SIZE,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_BUFFERS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS,
+  pattern GL_MAX_UNIFORM_BLOCK_SIZE,
+  pattern GL_MAX_UNIFORM_BUFFER_BINDINGS,
+  pattern GL_MAX_VARYING_COMPONENTS,
+  pattern GL_MAX_VARYING_FLOATS,
+  pattern GL_MAX_VARYING_VECTORS,
+  pattern GL_MAX_VERTEX_ATOMIC_COUNTERS,
+  pattern GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_VERTEX_ATTRIBS,
+  pattern GL_MAX_VERTEX_IMAGE_UNIFORMS,
+  pattern GL_MAX_VERTEX_OUTPUT_COMPONENTS,
+  pattern GL_MAX_VERTEX_STREAMS,
+  pattern GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_VERTEX_UNIFORM_BLOCKS,
+  pattern GL_MAX_VERTEX_UNIFORM_COMPONENTS,
+  pattern GL_MAX_VERTEX_UNIFORM_VECTORS,
+  pattern GL_MAX_VIEWPORTS,
+  pattern GL_MAX_VIEWPORT_DIMS,
+  pattern GL_MEDIUM_FLOAT,
+  pattern GL_MEDIUM_INT,
+  pattern GL_MIN,
+  pattern GL_MINOR_VERSION,
+  pattern GL_MIN_FRAGMENT_INTERPOLATION_OFFSET,
+  pattern GL_MIN_MAP_BUFFER_ALIGNMENT,
+  pattern GL_MIN_PROGRAM_TEXEL_OFFSET,
+  pattern GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET,
+  pattern GL_MIN_SAMPLE_SHADING_VALUE,
+  pattern GL_MIRRORED_REPEAT,
+  pattern GL_MULTISAMPLE,
+  pattern GL_NAND,
+  pattern GL_NEAREST,
+  pattern GL_NEAREST_MIPMAP_LINEAR,
+  pattern GL_NEAREST_MIPMAP_NEAREST,
+  pattern GL_NEVER,
+  pattern GL_NICEST,
+  pattern GL_NONE,
+  pattern GL_NOOP,
+  pattern GL_NOR,
+  pattern GL_NOTEQUAL,
+  pattern GL_NO_ERROR,
+  pattern GL_NUM_COMPATIBLE_SUBROUTINES,
+  pattern GL_NUM_COMPRESSED_TEXTURE_FORMATS,
+  pattern GL_NUM_EXTENSIONS,
+  pattern GL_NUM_PROGRAM_BINARY_FORMATS,
+  pattern GL_NUM_SAMPLE_COUNTS,
+  pattern GL_NUM_SHADER_BINARY_FORMATS,
+  pattern GL_OBJECT_TYPE,
+  pattern GL_ONE,
+  pattern GL_ONE_MINUS_CONSTANT_ALPHA,
+  pattern GL_ONE_MINUS_CONSTANT_COLOR,
+  pattern GL_ONE_MINUS_DST_ALPHA,
+  pattern GL_ONE_MINUS_DST_COLOR,
+  pattern GL_ONE_MINUS_SRC1_ALPHA,
+  pattern GL_ONE_MINUS_SRC1_COLOR,
+  pattern GL_ONE_MINUS_SRC_ALPHA,
+  pattern GL_ONE_MINUS_SRC_COLOR,
+  pattern GL_OR,
+  pattern GL_OR_INVERTED,
+  pattern GL_OR_REVERSE,
+  pattern GL_OUT_OF_MEMORY,
+  pattern GL_PACK_ALIGNMENT,
+  pattern GL_PACK_COMPRESSED_BLOCK_DEPTH,
+  pattern GL_PACK_COMPRESSED_BLOCK_HEIGHT,
+  pattern GL_PACK_COMPRESSED_BLOCK_SIZE,
+  pattern GL_PACK_COMPRESSED_BLOCK_WIDTH,
+  pattern GL_PACK_IMAGE_HEIGHT,
+  pattern GL_PACK_LSB_FIRST,
+  pattern GL_PACK_ROW_LENGTH,
+  pattern GL_PACK_SKIP_IMAGES,
+  pattern GL_PACK_SKIP_PIXELS,
+  pattern GL_PACK_SKIP_ROWS,
+  pattern GL_PACK_SWAP_BYTES,
+  pattern GL_PATCHES,
+  pattern GL_PATCH_DEFAULT_INNER_LEVEL,
+  pattern GL_PATCH_DEFAULT_OUTER_LEVEL,
+  pattern GL_PATCH_VERTICES,
+  pattern GL_PIXEL_BUFFER_BARRIER_BIT,
+  pattern GL_PIXEL_PACK_BUFFER,
+  pattern GL_PIXEL_PACK_BUFFER_BINDING,
+  pattern GL_PIXEL_UNPACK_BUFFER,
+  pattern GL_PIXEL_UNPACK_BUFFER_BINDING,
+  pattern GL_POINT,
+  pattern GL_POINTS,
+  pattern GL_POINT_FADE_THRESHOLD_SIZE,
+  pattern GL_POINT_SIZE,
+  pattern GL_POINT_SIZE_GRANULARITY,
+  pattern GL_POINT_SIZE_RANGE,
+  pattern GL_POINT_SPRITE_COORD_ORIGIN,
+  pattern GL_POLYGON_MODE,
+  pattern GL_POLYGON_OFFSET_FACTOR,
+  pattern GL_POLYGON_OFFSET_FILL,
+  pattern GL_POLYGON_OFFSET_LINE,
+  pattern GL_POLYGON_OFFSET_POINT,
+  pattern GL_POLYGON_OFFSET_UNITS,
+  pattern GL_POLYGON_SMOOTH,
+  pattern GL_POLYGON_SMOOTH_HINT,
+  pattern GL_PRIMITIVES_GENERATED,
+  pattern GL_PRIMITIVE_RESTART,
+  pattern GL_PRIMITIVE_RESTART_INDEX,
+  pattern GL_PROGRAM_BINARY_FORMATS,
+  pattern GL_PROGRAM_BINARY_LENGTH,
+  pattern GL_PROGRAM_BINARY_RETRIEVABLE_HINT,
+  pattern GL_PROGRAM_PIPELINE_BINDING,
+  pattern GL_PROGRAM_POINT_SIZE,
+  pattern GL_PROGRAM_SEPARABLE,
+  pattern GL_PROVOKING_VERTEX,
+  pattern GL_PROXY_TEXTURE_1D,
+  pattern GL_PROXY_TEXTURE_1D_ARRAY,
+  pattern GL_PROXY_TEXTURE_2D,
+  pattern GL_PROXY_TEXTURE_2D_ARRAY,
+  pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE,
+  pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_PROXY_TEXTURE_3D,
+  pattern GL_PROXY_TEXTURE_CUBE_MAP,
+  pattern GL_PROXY_TEXTURE_CUBE_MAP_ARRAY,
+  pattern GL_PROXY_TEXTURE_RECTANGLE,
+  pattern GL_QUADS,
+  pattern GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION,
+  pattern GL_QUERY_BY_REGION_NO_WAIT,
+  pattern GL_QUERY_BY_REGION_WAIT,
+  pattern GL_QUERY_COUNTER_BITS,
+  pattern GL_QUERY_NO_WAIT,
+  pattern GL_QUERY_RESULT,
+  pattern GL_QUERY_RESULT_AVAILABLE,
+  pattern GL_QUERY_WAIT,
+  pattern GL_R11F_G11F_B10F,
+  pattern GL_R16,
+  pattern GL_R16F,
+  pattern GL_R16I,
+  pattern GL_R16UI,
+  pattern GL_R16_SNORM,
+  pattern GL_R32F,
+  pattern GL_R32I,
+  pattern GL_R32UI,
+  pattern GL_R3_G3_B2,
+  pattern GL_R8,
+  pattern GL_R8I,
+  pattern GL_R8UI,
+  pattern GL_R8_SNORM,
+  pattern GL_RASTERIZER_DISCARD,
+  pattern GL_READ_BUFFER,
+  pattern GL_READ_FRAMEBUFFER,
+  pattern GL_READ_FRAMEBUFFER_BINDING,
+  pattern GL_READ_ONLY,
+  pattern GL_READ_WRITE,
+  pattern GL_RED,
+  pattern GL_RED_INTEGER,
+  pattern GL_RENDERBUFFER,
+  pattern GL_RENDERBUFFER_ALPHA_SIZE,
+  pattern GL_RENDERBUFFER_BINDING,
+  pattern GL_RENDERBUFFER_BLUE_SIZE,
+  pattern GL_RENDERBUFFER_DEPTH_SIZE,
+  pattern GL_RENDERBUFFER_GREEN_SIZE,
+  pattern GL_RENDERBUFFER_HEIGHT,
+  pattern GL_RENDERBUFFER_INTERNAL_FORMAT,
+  pattern GL_RENDERBUFFER_RED_SIZE,
+  pattern GL_RENDERBUFFER_SAMPLES,
+  pattern GL_RENDERBUFFER_STENCIL_SIZE,
+  pattern GL_RENDERBUFFER_WIDTH,
+  pattern GL_RENDERER,
+  pattern GL_REPEAT,
+  pattern GL_REPLACE,
+  pattern GL_RG,
+  pattern GL_RG16,
+  pattern GL_RG16F,
+  pattern GL_RG16I,
+  pattern GL_RG16UI,
+  pattern GL_RG16_SNORM,
+  pattern GL_RG32F,
+  pattern GL_RG32I,
+  pattern GL_RG32UI,
+  pattern GL_RG8,
+  pattern GL_RG8I,
+  pattern GL_RG8UI,
+  pattern GL_RG8_SNORM,
+  pattern GL_RGB,
+  pattern GL_RGB10,
+  pattern GL_RGB10_A2,
+  pattern GL_RGB10_A2UI,
+  pattern GL_RGB12,
+  pattern GL_RGB16,
+  pattern GL_RGB16F,
+  pattern GL_RGB16I,
+  pattern GL_RGB16UI,
+  pattern GL_RGB16_SNORM,
+  pattern GL_RGB32F,
+  pattern GL_RGB32I,
+  pattern GL_RGB32UI,
+  pattern GL_RGB4,
+  pattern GL_RGB5,
+  pattern GL_RGB565,
+  pattern GL_RGB5_A1,
+  pattern GL_RGB8,
+  pattern GL_RGB8I,
+  pattern GL_RGB8UI,
+  pattern GL_RGB8_SNORM,
+  pattern GL_RGB9_E5,
+  pattern GL_RGBA,
+  pattern GL_RGBA12,
+  pattern GL_RGBA16,
+  pattern GL_RGBA16F,
+  pattern GL_RGBA16I,
+  pattern GL_RGBA16UI,
+  pattern GL_RGBA16_SNORM,
+  pattern GL_RGBA2,
+  pattern GL_RGBA32F,
+  pattern GL_RGBA32I,
+  pattern GL_RGBA32UI,
+  pattern GL_RGBA4,
+  pattern GL_RGBA8,
+  pattern GL_RGBA8I,
+  pattern GL_RGBA8UI,
+  pattern GL_RGBA8_SNORM,
+  pattern GL_RGBA_INTEGER,
+  pattern GL_RGB_INTEGER,
+  pattern GL_RG_INTEGER,
+  pattern GL_RIGHT,
+  pattern GL_SAMPLER_1D,
+  pattern GL_SAMPLER_1D_ARRAY,
+  pattern GL_SAMPLER_1D_ARRAY_SHADOW,
+  pattern GL_SAMPLER_1D_SHADOW,
+  pattern GL_SAMPLER_2D,
+  pattern GL_SAMPLER_2D_ARRAY,
+  pattern GL_SAMPLER_2D_ARRAY_SHADOW,
+  pattern GL_SAMPLER_2D_MULTISAMPLE,
+  pattern GL_SAMPLER_2D_MULTISAMPLE_ARRAY,
+  pattern GL_SAMPLER_2D_RECT,
+  pattern GL_SAMPLER_2D_RECT_SHADOW,
+  pattern GL_SAMPLER_2D_SHADOW,
+  pattern GL_SAMPLER_3D,
+  pattern GL_SAMPLER_BINDING,
+  pattern GL_SAMPLER_BUFFER,
+  pattern GL_SAMPLER_CUBE,
+  pattern GL_SAMPLER_CUBE_MAP_ARRAY,
+  pattern GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW,
+  pattern GL_SAMPLER_CUBE_SHADOW,
+  pattern GL_SAMPLES,
+  pattern GL_SAMPLES_PASSED,
+  pattern GL_SAMPLE_ALPHA_TO_COVERAGE,
+  pattern GL_SAMPLE_ALPHA_TO_ONE,
+  pattern GL_SAMPLE_BUFFERS,
+  pattern GL_SAMPLE_COVERAGE,
+  pattern GL_SAMPLE_COVERAGE_INVERT,
+  pattern GL_SAMPLE_COVERAGE_VALUE,
+  pattern GL_SAMPLE_MASK,
+  pattern GL_SAMPLE_MASK_VALUE,
+  pattern GL_SAMPLE_POSITION,
+  pattern GL_SAMPLE_SHADING,
+  pattern GL_SCISSOR_BOX,
+  pattern GL_SCISSOR_TEST,
+  pattern GL_SEPARATE_ATTRIBS,
+  pattern GL_SET,
+  pattern GL_SHADER_BINARY_FORMATS,
+  pattern GL_SHADER_COMPILER,
+  pattern GL_SHADER_IMAGE_ACCESS_BARRIER_BIT,
+  pattern GL_SHADER_SOURCE_LENGTH,
+  pattern GL_SHADER_TYPE,
+  pattern GL_SHADING_LANGUAGE_VERSION,
+  pattern GL_SHORT,
+  pattern GL_SIGNALED,
+  pattern GL_SIGNED_NORMALIZED,
+  pattern GL_SMOOTH_LINE_WIDTH_GRANULARITY,
+  pattern GL_SMOOTH_LINE_WIDTH_RANGE,
+  pattern GL_SMOOTH_POINT_SIZE_GRANULARITY,
+  pattern GL_SMOOTH_POINT_SIZE_RANGE,
+  pattern GL_SRC1_ALPHA,
+  pattern GL_SRC1_COLOR,
+  pattern GL_SRC_ALPHA,
+  pattern GL_SRC_ALPHA_SATURATE,
+  pattern GL_SRC_COLOR,
+  pattern GL_SRGB,
+  pattern GL_SRGB8,
+  pattern GL_SRGB8_ALPHA8,
+  pattern GL_SRGB_ALPHA,
+  pattern GL_STATIC_COPY,
+  pattern GL_STATIC_DRAW,
+  pattern GL_STATIC_READ,
+  pattern GL_STENCIL,
+  pattern GL_STENCIL_ATTACHMENT,
+  pattern GL_STENCIL_BACK_FAIL,
+  pattern GL_STENCIL_BACK_FUNC,
+  pattern GL_STENCIL_BACK_PASS_DEPTH_FAIL,
+  pattern GL_STENCIL_BACK_PASS_DEPTH_PASS,
+  pattern GL_STENCIL_BACK_REF,
+  pattern GL_STENCIL_BACK_VALUE_MASK,
+  pattern GL_STENCIL_BACK_WRITEMASK,
+  pattern GL_STENCIL_BUFFER_BIT,
+  pattern GL_STENCIL_CLEAR_VALUE,
+  pattern GL_STENCIL_FAIL,
+  pattern GL_STENCIL_FUNC,
+  pattern GL_STENCIL_INDEX,
+  pattern GL_STENCIL_INDEX1,
+  pattern GL_STENCIL_INDEX16,
+  pattern GL_STENCIL_INDEX4,
+  pattern GL_STENCIL_INDEX8,
+  pattern GL_STENCIL_PASS_DEPTH_FAIL,
+  pattern GL_STENCIL_PASS_DEPTH_PASS,
+  pattern GL_STENCIL_REF,
+  pattern GL_STENCIL_TEST,
+  pattern GL_STENCIL_VALUE_MASK,
+  pattern GL_STENCIL_WRITEMASK,
+  pattern GL_STEREO,
+  pattern GL_STREAM_COPY,
+  pattern GL_STREAM_DRAW,
+  pattern GL_STREAM_READ,
+  pattern GL_SUBPIXEL_BITS,
+  pattern GL_SYNC_CONDITION,
+  pattern GL_SYNC_FENCE,
+  pattern GL_SYNC_FLAGS,
+  pattern GL_SYNC_FLUSH_COMMANDS_BIT,
+  pattern GL_SYNC_GPU_COMMANDS_COMPLETE,
+  pattern GL_SYNC_STATUS,
+  pattern GL_TESS_CONTROL_OUTPUT_VERTICES,
+  pattern GL_TESS_CONTROL_SHADER,
+  pattern GL_TESS_CONTROL_SHADER_BIT,
+  pattern GL_TESS_EVALUATION_SHADER,
+  pattern GL_TESS_EVALUATION_SHADER_BIT,
+  pattern GL_TESS_GEN_MODE,
+  pattern GL_TESS_GEN_POINT_MODE,
+  pattern GL_TESS_GEN_SPACING,
+  pattern GL_TESS_GEN_VERTEX_ORDER,
+  pattern GL_TEXTURE,
+  pattern GL_TEXTURE0,
+  pattern GL_TEXTURE1,
+  pattern GL_TEXTURE10,
+  pattern GL_TEXTURE11,
+  pattern GL_TEXTURE12,
+  pattern GL_TEXTURE13,
+  pattern GL_TEXTURE14,
+  pattern GL_TEXTURE15,
+  pattern GL_TEXTURE16,
+  pattern GL_TEXTURE17,
+  pattern GL_TEXTURE18,
+  pattern GL_TEXTURE19,
+  pattern GL_TEXTURE2,
+  pattern GL_TEXTURE20,
+  pattern GL_TEXTURE21,
+  pattern GL_TEXTURE22,
+  pattern GL_TEXTURE23,
+  pattern GL_TEXTURE24,
+  pattern GL_TEXTURE25,
+  pattern GL_TEXTURE26,
+  pattern GL_TEXTURE27,
+  pattern GL_TEXTURE28,
+  pattern GL_TEXTURE29,
+  pattern GL_TEXTURE3,
+  pattern GL_TEXTURE30,
+  pattern GL_TEXTURE31,
+  pattern GL_TEXTURE4,
+  pattern GL_TEXTURE5,
+  pattern GL_TEXTURE6,
+  pattern GL_TEXTURE7,
+  pattern GL_TEXTURE8,
+  pattern GL_TEXTURE9,
+  pattern GL_TEXTURE_1D,
+  pattern GL_TEXTURE_1D_ARRAY,
+  pattern GL_TEXTURE_2D,
+  pattern GL_TEXTURE_2D_ARRAY,
+  pattern GL_TEXTURE_2D_MULTISAMPLE,
+  pattern GL_TEXTURE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_TEXTURE_3D,
+  pattern GL_TEXTURE_ALPHA_SIZE,
+  pattern GL_TEXTURE_ALPHA_TYPE,
+  pattern GL_TEXTURE_BASE_LEVEL,
+  pattern GL_TEXTURE_BINDING_1D,
+  pattern GL_TEXTURE_BINDING_1D_ARRAY,
+  pattern GL_TEXTURE_BINDING_2D,
+  pattern GL_TEXTURE_BINDING_2D_ARRAY,
+  pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE,
+  pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY,
+  pattern GL_TEXTURE_BINDING_3D,
+  pattern GL_TEXTURE_BINDING_BUFFER,
+  pattern GL_TEXTURE_BINDING_CUBE_MAP,
+  pattern GL_TEXTURE_BINDING_CUBE_MAP_ARRAY,
+  pattern GL_TEXTURE_BINDING_RECTANGLE,
+  pattern GL_TEXTURE_BLUE_SIZE,
+  pattern GL_TEXTURE_BLUE_TYPE,
+  pattern GL_TEXTURE_BORDER_COLOR,
+  pattern GL_TEXTURE_BUFFER,
+  pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING,
+  pattern GL_TEXTURE_COMPARE_FUNC,
+  pattern GL_TEXTURE_COMPARE_MODE,
+  pattern GL_TEXTURE_COMPRESSED,
+  pattern GL_TEXTURE_COMPRESSED_IMAGE_SIZE,
+  pattern GL_TEXTURE_COMPRESSION_HINT,
+  pattern GL_TEXTURE_CUBE_MAP,
+  pattern GL_TEXTURE_CUBE_MAP_ARRAY,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z,
+  pattern GL_TEXTURE_CUBE_MAP_SEAMLESS,
+  pattern GL_TEXTURE_DEPTH,
+  pattern GL_TEXTURE_DEPTH_SIZE,
+  pattern GL_TEXTURE_DEPTH_TYPE,
+  pattern GL_TEXTURE_FETCH_BARRIER_BIT,
+  pattern GL_TEXTURE_FIXED_SAMPLE_LOCATIONS,
+  pattern GL_TEXTURE_GREEN_SIZE,
+  pattern GL_TEXTURE_GREEN_TYPE,
+  pattern GL_TEXTURE_HEIGHT,
+  pattern GL_TEXTURE_IMMUTABLE_FORMAT,
+  pattern GL_TEXTURE_INTERNAL_FORMAT,
+  pattern GL_TEXTURE_LOD_BIAS,
+  pattern GL_TEXTURE_MAG_FILTER,
+  pattern GL_TEXTURE_MAX_LEVEL,
+  pattern GL_TEXTURE_MAX_LOD,
+  pattern GL_TEXTURE_MIN_FILTER,
+  pattern GL_TEXTURE_MIN_LOD,
+  pattern GL_TEXTURE_RECTANGLE,
+  pattern GL_TEXTURE_RED_SIZE,
+  pattern GL_TEXTURE_RED_TYPE,
+  pattern GL_TEXTURE_SAMPLES,
+  pattern GL_TEXTURE_SHARED_SIZE,
+  pattern GL_TEXTURE_STENCIL_SIZE,
+  pattern GL_TEXTURE_SWIZZLE_A,
+  pattern GL_TEXTURE_SWIZZLE_B,
+  pattern GL_TEXTURE_SWIZZLE_G,
+  pattern GL_TEXTURE_SWIZZLE_R,
+  pattern GL_TEXTURE_SWIZZLE_RGBA,
+  pattern GL_TEXTURE_UPDATE_BARRIER_BIT,
+  pattern GL_TEXTURE_WIDTH,
+  pattern GL_TEXTURE_WRAP_R,
+  pattern GL_TEXTURE_WRAP_S,
+  pattern GL_TEXTURE_WRAP_T,
+  pattern GL_TIMEOUT_EXPIRED,
+  pattern GL_TIMEOUT_IGNORED,
+  pattern GL_TIMESTAMP,
+  pattern GL_TIME_ELAPSED,
+  pattern GL_TRANSFORM_FEEDBACK,
+  pattern GL_TRANSFORM_FEEDBACK_ACTIVE,
+  pattern GL_TRANSFORM_FEEDBACK_BARRIER_BIT,
+  pattern GL_TRANSFORM_FEEDBACK_BINDING,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_BINDING,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_MODE,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_SIZE,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_START,
+  pattern GL_TRANSFORM_FEEDBACK_PAUSED,
+  pattern GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN,
+  pattern GL_TRANSFORM_FEEDBACK_VARYINGS,
+  pattern GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH,
+  pattern GL_TRIANGLES,
+  pattern GL_TRIANGLES_ADJACENCY,
+  pattern GL_TRIANGLE_FAN,
+  pattern GL_TRIANGLE_STRIP,
+  pattern GL_TRIANGLE_STRIP_ADJACENCY,
+  pattern GL_TRUE,
+  pattern GL_UNDEFINED_VERTEX,
+  pattern GL_UNIFORM_ARRAY_STRIDE,
+  pattern GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX,
+  pattern GL_UNIFORM_BARRIER_BIT,
+  pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS,
+  pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES,
+  pattern GL_UNIFORM_BLOCK_BINDING,
+  pattern GL_UNIFORM_BLOCK_DATA_SIZE,
+  pattern GL_UNIFORM_BLOCK_INDEX,
+  pattern GL_UNIFORM_BLOCK_NAME_LENGTH,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER,
+  pattern GL_UNIFORM_BUFFER,
+  pattern GL_UNIFORM_BUFFER_BINDING,
+  pattern GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT,
+  pattern GL_UNIFORM_BUFFER_SIZE,
+  pattern GL_UNIFORM_BUFFER_START,
+  pattern GL_UNIFORM_IS_ROW_MAJOR,
+  pattern GL_UNIFORM_MATRIX_STRIDE,
+  pattern GL_UNIFORM_NAME_LENGTH,
+  pattern GL_UNIFORM_OFFSET,
+  pattern GL_UNIFORM_SIZE,
+  pattern GL_UNIFORM_TYPE,
+  pattern GL_UNPACK_ALIGNMENT,
+  pattern GL_UNPACK_COMPRESSED_BLOCK_DEPTH,
+  pattern GL_UNPACK_COMPRESSED_BLOCK_HEIGHT,
+  pattern GL_UNPACK_COMPRESSED_BLOCK_SIZE,
+  pattern GL_UNPACK_COMPRESSED_BLOCK_WIDTH,
+  pattern GL_UNPACK_IMAGE_HEIGHT,
+  pattern GL_UNPACK_LSB_FIRST,
+  pattern GL_UNPACK_ROW_LENGTH,
+  pattern GL_UNPACK_SKIP_IMAGES,
+  pattern GL_UNPACK_SKIP_PIXELS,
+  pattern GL_UNPACK_SKIP_ROWS,
+  pattern GL_UNPACK_SWAP_BYTES,
+  pattern GL_UNSIGNALED,
+  pattern GL_UNSIGNED_BYTE,
+  pattern GL_UNSIGNED_BYTE_2_3_3_REV,
+  pattern GL_UNSIGNED_BYTE_3_3_2,
+  pattern GL_UNSIGNED_INT,
+  pattern GL_UNSIGNED_INT_10F_11F_11F_REV,
+  pattern GL_UNSIGNED_INT_10_10_10_2,
+  pattern GL_UNSIGNED_INT_24_8,
+  pattern GL_UNSIGNED_INT_2_10_10_10_REV,
+  pattern GL_UNSIGNED_INT_5_9_9_9_REV,
+  pattern GL_UNSIGNED_INT_8_8_8_8,
+  pattern GL_UNSIGNED_INT_8_8_8_8_REV,
+  pattern GL_UNSIGNED_INT_ATOMIC_COUNTER,
+  pattern GL_UNSIGNED_INT_IMAGE_1D,
+  pattern GL_UNSIGNED_INT_IMAGE_1D_ARRAY,
+  pattern GL_UNSIGNED_INT_IMAGE_2D,
+  pattern GL_UNSIGNED_INT_IMAGE_2D_ARRAY,
+  pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE,
+  pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_UNSIGNED_INT_IMAGE_2D_RECT,
+  pattern GL_UNSIGNED_INT_IMAGE_3D,
+  pattern GL_UNSIGNED_INT_IMAGE_BUFFER,
+  pattern GL_UNSIGNED_INT_IMAGE_CUBE,
+  pattern GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_1D,
+  pattern GL_UNSIGNED_INT_SAMPLER_1D_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_RECT,
+  pattern GL_UNSIGNED_INT_SAMPLER_3D,
+  pattern GL_UNSIGNED_INT_SAMPLER_BUFFER,
+  pattern GL_UNSIGNED_INT_SAMPLER_CUBE,
+  pattern GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY,
+  pattern GL_UNSIGNED_INT_VEC2,
+  pattern GL_UNSIGNED_INT_VEC3,
+  pattern GL_UNSIGNED_INT_VEC4,
+  pattern GL_UNSIGNED_NORMALIZED,
+  pattern GL_UNSIGNED_SHORT,
+  pattern GL_UNSIGNED_SHORT_1_5_5_5_REV,
+  pattern GL_UNSIGNED_SHORT_4_4_4_4,
+  pattern GL_UNSIGNED_SHORT_4_4_4_4_REV,
+  pattern GL_UNSIGNED_SHORT_5_5_5_1,
+  pattern GL_UNSIGNED_SHORT_5_6_5,
+  pattern GL_UNSIGNED_SHORT_5_6_5_REV,
+  pattern GL_UPPER_LEFT,
+  pattern GL_VALIDATE_STATUS,
+  pattern GL_VENDOR,
+  pattern GL_VERSION,
+  pattern GL_VERTEX_ARRAY_BINDING,
+  pattern GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT,
+  pattern GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING,
+  pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR,
+  pattern GL_VERTEX_ATTRIB_ARRAY_ENABLED,
+  pattern GL_VERTEX_ATTRIB_ARRAY_INTEGER,
+  pattern GL_VERTEX_ATTRIB_ARRAY_NORMALIZED,
+  pattern GL_VERTEX_ATTRIB_ARRAY_POINTER,
+  pattern GL_VERTEX_ATTRIB_ARRAY_SIZE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_STRIDE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_TYPE,
+  pattern GL_VERTEX_PROGRAM_POINT_SIZE,
+  pattern GL_VERTEX_SHADER,
+  pattern GL_VERTEX_SHADER_BIT,
+  pattern GL_VIEWPORT,
+  pattern GL_VIEWPORT_BOUNDS_RANGE,
+  pattern GL_VIEWPORT_INDEX_PROVOKING_VERTEX,
+  pattern GL_VIEWPORT_SUBPIXEL_BITS,
+  pattern GL_WAIT_FAILED,
+  pattern GL_WRITE_ONLY,
+  pattern GL_XOR,
+  pattern GL_ZERO,
+  -- * Functions
+  glActiveShaderProgram,
+  glActiveTexture,
+  glAttachShader,
+  glBeginConditionalRender,
+  glBeginQuery,
+  glBeginQueryIndexed,
+  glBeginTransformFeedback,
+  glBindAttribLocation,
+  glBindBuffer,
+  glBindBufferBase,
+  glBindBufferRange,
+  glBindFragDataLocation,
+  glBindFragDataLocationIndexed,
+  glBindFramebuffer,
+  glBindImageTexture,
+  glBindProgramPipeline,
+  glBindRenderbuffer,
+  glBindSampler,
+  glBindTexture,
+  glBindTransformFeedback,
+  glBindVertexArray,
+  glBlendColor,
+  glBlendEquation,
+  glBlendEquationSeparate,
+  glBlendEquationSeparatei,
+  glBlendEquationi,
+  glBlendFunc,
+  glBlendFuncSeparate,
+  glBlendFuncSeparatei,
+  glBlendFunci,
+  glBlitFramebuffer,
+  glBufferData,
+  glBufferSubData,
+  glCheckFramebufferStatus,
+  glClampColor,
+  glClear,
+  glClearBufferfi,
+  glClearBufferfv,
+  glClearBufferiv,
+  glClearBufferuiv,
+  glClearColor,
+  glClearDepth,
+  glClearDepthf,
+  glClearStencil,
+  glClientWaitSync,
+  glColorMask,
+  glColorMaski,
+  glCompileShader,
+  glCompressedTexImage1D,
+  glCompressedTexImage2D,
+  glCompressedTexImage3D,
+  glCompressedTexSubImage1D,
+  glCompressedTexSubImage2D,
+  glCompressedTexSubImage3D,
+  glCopyBufferSubData,
+  glCopyTexImage1D,
+  glCopyTexImage2D,
+  glCopyTexSubImage1D,
+  glCopyTexSubImage2D,
+  glCopyTexSubImage3D,
+  glCreateProgram,
+  glCreateShader,
+  glCreateShaderProgramv,
+  glCullFace,
+  glDeleteBuffers,
+  glDeleteFramebuffers,
+  glDeleteProgram,
+  glDeleteProgramPipelines,
+  glDeleteQueries,
+  glDeleteRenderbuffers,
+  glDeleteSamplers,
+  glDeleteShader,
+  glDeleteSync,
+  glDeleteTextures,
+  glDeleteTransformFeedbacks,
+  glDeleteVertexArrays,
+  glDepthFunc,
+  glDepthMask,
+  glDepthRange,
+  glDepthRangeArrayv,
+  glDepthRangeIndexed,
+  glDepthRangef,
+  glDetachShader,
+  glDisable,
+  glDisableVertexAttribArray,
+  glDisablei,
+  glDrawArrays,
+  glDrawArraysIndirect,
+  glDrawArraysInstanced,
+  glDrawArraysInstancedBaseInstance,
+  glDrawBuffer,
+  glDrawBuffers,
+  glDrawElements,
+  glDrawElementsBaseVertex,
+  glDrawElementsIndirect,
+  glDrawElementsInstanced,
+  glDrawElementsInstancedBaseInstance,
+  glDrawElementsInstancedBaseVertex,
+  glDrawElementsInstancedBaseVertexBaseInstance,
+  glDrawRangeElements,
+  glDrawRangeElementsBaseVertex,
+  glDrawTransformFeedback,
+  glDrawTransformFeedbackInstanced,
+  glDrawTransformFeedbackStream,
+  glDrawTransformFeedbackStreamInstanced,
+  glEnable,
+  glEnableVertexAttribArray,
+  glEnablei,
+  glEndConditionalRender,
+  glEndQuery,
+  glEndQueryIndexed,
+  glEndTransformFeedback,
+  glFenceSync,
+  glFinish,
+  glFlush,
+  glFlushMappedBufferRange,
+  glFramebufferRenderbuffer,
+  glFramebufferTexture,
+  glFramebufferTexture1D,
+  glFramebufferTexture2D,
+  glFramebufferTexture3D,
+  glFramebufferTextureLayer,
+  glFrontFace,
+  glGenBuffers,
+  glGenFramebuffers,
+  glGenProgramPipelines,
+  glGenQueries,
+  glGenRenderbuffers,
+  glGenSamplers,
+  glGenTextures,
+  glGenTransformFeedbacks,
+  glGenVertexArrays,
+  glGenerateMipmap,
+  glGetActiveAtomicCounterBufferiv,
+  glGetActiveAttrib,
+  glGetActiveSubroutineName,
+  glGetActiveSubroutineUniformName,
+  glGetActiveSubroutineUniformiv,
+  glGetActiveUniform,
+  glGetActiveUniformBlockName,
+  glGetActiveUniformBlockiv,
+  glGetActiveUniformName,
+  glGetActiveUniformsiv,
+  glGetAttachedShaders,
+  glGetAttribLocation,
+  glGetBooleani_v,
+  glGetBooleanv,
+  glGetBufferParameteri64v,
+  glGetBufferParameteriv,
+  glGetBufferPointerv,
+  glGetBufferSubData,
+  glGetCompressedTexImage,
+  glGetDoublei_v,
+  glGetDoublev,
+  glGetError,
+  glGetFloati_v,
+  glGetFloatv,
+  glGetFragDataIndex,
+  glGetFragDataLocation,
+  glGetFramebufferAttachmentParameteriv,
+  glGetInteger64i_v,
+  glGetInteger64v,
+  glGetIntegeri_v,
+  glGetIntegerv,
+  glGetInternalformativ,
+  glGetMultisamplefv,
+  glGetProgramBinary,
+  glGetProgramInfoLog,
+  glGetProgramPipelineInfoLog,
+  glGetProgramPipelineiv,
+  glGetProgramStageiv,
+  glGetProgramiv,
+  glGetQueryIndexediv,
+  glGetQueryObjecti64v,
+  glGetQueryObjectiv,
+  glGetQueryObjectui64v,
+  glGetQueryObjectuiv,
+  glGetQueryiv,
+  glGetRenderbufferParameteriv,
+  glGetSamplerParameterIiv,
+  glGetSamplerParameterIuiv,
+  glGetSamplerParameterfv,
+  glGetSamplerParameteriv,
+  glGetShaderInfoLog,
+  glGetShaderPrecisionFormat,
+  glGetShaderSource,
+  glGetShaderiv,
+  glGetString,
+  glGetStringi,
+  glGetSubroutineIndex,
+  glGetSubroutineUniformLocation,
+  glGetSynciv,
+  glGetTexImage,
+  glGetTexLevelParameterfv,
+  glGetTexLevelParameteriv,
+  glGetTexParameterIiv,
+  glGetTexParameterIuiv,
+  glGetTexParameterfv,
+  glGetTexParameteriv,
+  glGetTransformFeedbackVarying,
+  glGetUniformBlockIndex,
+  glGetUniformIndices,
+  glGetUniformLocation,
+  glGetUniformSubroutineuiv,
+  glGetUniformdv,
+  glGetUniformfv,
+  glGetUniformiv,
+  glGetUniformuiv,
+  glGetVertexAttribIiv,
+  glGetVertexAttribIuiv,
+  glGetVertexAttribLdv,
+  glGetVertexAttribPointerv,
+  glGetVertexAttribdv,
+  glGetVertexAttribfv,
+  glGetVertexAttribiv,
+  glHint,
+  glIsBuffer,
+  glIsEnabled,
+  glIsEnabledi,
+  glIsFramebuffer,
+  glIsProgram,
+  glIsProgramPipeline,
+  glIsQuery,
+  glIsRenderbuffer,
+  glIsSampler,
+  glIsShader,
+  glIsSync,
+  glIsTexture,
+  glIsTransformFeedback,
+  glIsVertexArray,
+  glLineWidth,
+  glLinkProgram,
+  glLogicOp,
+  glMapBuffer,
+  glMapBufferRange,
+  glMemoryBarrier,
+  glMinSampleShading,
+  glMultiDrawArrays,
+  glMultiDrawElements,
+  glMultiDrawElementsBaseVertex,
+  glPatchParameterfv,
+  glPatchParameteri,
+  glPauseTransformFeedback,
+  glPixelStoref,
+  glPixelStorei,
+  glPointParameterf,
+  glPointParameterfv,
+  glPointParameteri,
+  glPointParameteriv,
+  glPointSize,
+  glPolygonMode,
+  glPolygonOffset,
+  glPrimitiveRestartIndex,
+  glProgramBinary,
+  glProgramParameteri,
+  glProgramUniform1d,
+  glProgramUniform1dv,
+  glProgramUniform1f,
+  glProgramUniform1fv,
+  glProgramUniform1i,
+  glProgramUniform1iv,
+  glProgramUniform1ui,
+  glProgramUniform1uiv,
+  glProgramUniform2d,
+  glProgramUniform2dv,
+  glProgramUniform2f,
+  glProgramUniform2fv,
+  glProgramUniform2i,
+  glProgramUniform2iv,
+  glProgramUniform2ui,
+  glProgramUniform2uiv,
+  glProgramUniform3d,
+  glProgramUniform3dv,
+  glProgramUniform3f,
+  glProgramUniform3fv,
+  glProgramUniform3i,
+  glProgramUniform3iv,
+  glProgramUniform3ui,
+  glProgramUniform3uiv,
+  glProgramUniform4d,
+  glProgramUniform4dv,
+  glProgramUniform4f,
+  glProgramUniform4fv,
+  glProgramUniform4i,
+  glProgramUniform4iv,
+  glProgramUniform4ui,
+  glProgramUniform4uiv,
+  glProgramUniformMatrix2dv,
+  glProgramUniformMatrix2fv,
+  glProgramUniformMatrix2x3dv,
+  glProgramUniformMatrix2x3fv,
+  glProgramUniformMatrix2x4dv,
+  glProgramUniformMatrix2x4fv,
+  glProgramUniformMatrix3dv,
+  glProgramUniformMatrix3fv,
+  glProgramUniformMatrix3x2dv,
+  glProgramUniformMatrix3x2fv,
+  glProgramUniformMatrix3x4dv,
+  glProgramUniformMatrix3x4fv,
+  glProgramUniformMatrix4dv,
+  glProgramUniformMatrix4fv,
+  glProgramUniformMatrix4x2dv,
+  glProgramUniformMatrix4x2fv,
+  glProgramUniformMatrix4x3dv,
+  glProgramUniformMatrix4x3fv,
+  glProvokingVertex,
+  glQueryCounter,
+  glReadBuffer,
+  glReadPixels,
+  glReleaseShaderCompiler,
+  glRenderbufferStorage,
+  glRenderbufferStorageMultisample,
+  glResumeTransformFeedback,
+  glSampleCoverage,
+  glSampleMaski,
+  glSamplerParameterIiv,
+  glSamplerParameterIuiv,
+  glSamplerParameterf,
+  glSamplerParameterfv,
+  glSamplerParameteri,
+  glSamplerParameteriv,
+  glScissor,
+  glScissorArrayv,
+  glScissorIndexed,
+  glScissorIndexedv,
+  glShaderBinary,
+  glShaderSource,
+  glStencilFunc,
+  glStencilFuncSeparate,
+  glStencilMask,
+  glStencilMaskSeparate,
+  glStencilOp,
+  glStencilOpSeparate,
+  glTexBuffer,
+  glTexImage1D,
+  glTexImage2D,
+  glTexImage2DMultisample,
+  glTexImage3D,
+  glTexImage3DMultisample,
+  glTexParameterIiv,
+  glTexParameterIuiv,
+  glTexParameterf,
+  glTexParameterfv,
+  glTexParameteri,
+  glTexParameteriv,
+  glTexStorage1D,
+  glTexStorage2D,
+  glTexStorage3D,
+  glTexSubImage1D,
+  glTexSubImage2D,
+  glTexSubImage3D,
+  glTransformFeedbackVaryings,
+  glUniform1d,
+  glUniform1dv,
+  glUniform1f,
+  glUniform1fv,
+  glUniform1i,
+  glUniform1iv,
+  glUniform1ui,
+  glUniform1uiv,
+  glUniform2d,
+  glUniform2dv,
+  glUniform2f,
+  glUniform2fv,
+  glUniform2i,
+  glUniform2iv,
+  glUniform2ui,
+  glUniform2uiv,
+  glUniform3d,
+  glUniform3dv,
+  glUniform3f,
+  glUniform3fv,
+  glUniform3i,
+  glUniform3iv,
+  glUniform3ui,
+  glUniform3uiv,
+  glUniform4d,
+  glUniform4dv,
+  glUniform4f,
+  glUniform4fv,
+  glUniform4i,
+  glUniform4iv,
+  glUniform4ui,
+  glUniform4uiv,
+  glUniformBlockBinding,
+  glUniformMatrix2dv,
+  glUniformMatrix2fv,
+  glUniformMatrix2x3dv,
+  glUniformMatrix2x3fv,
+  glUniformMatrix2x4dv,
+  glUniformMatrix2x4fv,
+  glUniformMatrix3dv,
+  glUniformMatrix3fv,
+  glUniformMatrix3x2dv,
+  glUniformMatrix3x2fv,
+  glUniformMatrix3x4dv,
+  glUniformMatrix3x4fv,
+  glUniformMatrix4dv,
+  glUniformMatrix4fv,
+  glUniformMatrix4x2dv,
+  glUniformMatrix4x2fv,
+  glUniformMatrix4x3dv,
+  glUniformMatrix4x3fv,
+  glUniformSubroutinesuiv,
+  glUnmapBuffer,
+  glUseProgram,
+  glUseProgramStages,
+  glValidateProgram,
+  glValidateProgramPipeline,
+  glVertexAttrib1d,
+  glVertexAttrib1dv,
+  glVertexAttrib1f,
+  glVertexAttrib1fv,
+  glVertexAttrib1s,
+  glVertexAttrib1sv,
+  glVertexAttrib2d,
+  glVertexAttrib2dv,
+  glVertexAttrib2f,
+  glVertexAttrib2fv,
+  glVertexAttrib2s,
+  glVertexAttrib2sv,
+  glVertexAttrib3d,
+  glVertexAttrib3dv,
+  glVertexAttrib3f,
+  glVertexAttrib3fv,
+  glVertexAttrib3s,
+  glVertexAttrib3sv,
+  glVertexAttrib4Nbv,
+  glVertexAttrib4Niv,
+  glVertexAttrib4Nsv,
+  glVertexAttrib4Nub,
+  glVertexAttrib4Nubv,
+  glVertexAttrib4Nuiv,
+  glVertexAttrib4Nusv,
+  glVertexAttrib4bv,
+  glVertexAttrib4d,
+  glVertexAttrib4dv,
+  glVertexAttrib4f,
+  glVertexAttrib4fv,
+  glVertexAttrib4iv,
+  glVertexAttrib4s,
+  glVertexAttrib4sv,
+  glVertexAttrib4ubv,
+  glVertexAttrib4uiv,
+  glVertexAttrib4usv,
+  glVertexAttribDivisor,
+  glVertexAttribI1i,
+  glVertexAttribI1iv,
+  glVertexAttribI1ui,
+  glVertexAttribI1uiv,
+  glVertexAttribI2i,
+  glVertexAttribI2iv,
+  glVertexAttribI2ui,
+  glVertexAttribI2uiv,
+  glVertexAttribI3i,
+  glVertexAttribI3iv,
+  glVertexAttribI3ui,
+  glVertexAttribI3uiv,
+  glVertexAttribI4bv,
+  glVertexAttribI4i,
+  glVertexAttribI4iv,
+  glVertexAttribI4sv,
+  glVertexAttribI4ubv,
+  glVertexAttribI4ui,
+  glVertexAttribI4uiv,
+  glVertexAttribI4usv,
+  glVertexAttribIPointer,
+  glVertexAttribL1d,
+  glVertexAttribL1dv,
+  glVertexAttribL2d,
+  glVertexAttribL2dv,
+  glVertexAttribL3d,
+  glVertexAttribL3dv,
+  glVertexAttribL4d,
+  glVertexAttribL4dv,
+  glVertexAttribLPointer,
+  glVertexAttribP1ui,
+  glVertexAttribP1uiv,
+  glVertexAttribP2ui,
+  glVertexAttribP2uiv,
+  glVertexAttribP3ui,
+  glVertexAttribP3uiv,
+  glVertexAttribP4ui,
+  glVertexAttribP4uiv,
+  glVertexAttribPointer,
+  glViewport,
+  glViewportArrayv,
+  glViewportIndexedf,
+  glViewportIndexedfv,
+  glWaitSync
+) where
+
+import Graphics.GL.Types
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/Core43.hs b/src/Graphics/GL/Core43.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Core43.hs
@@ -0,0 +1,1885 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Core43
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Core43 (
+  -- * Types
+  GLDEBUGPROC,
+  GLDEBUGPROCFunc,
+  GLbitfield,
+  GLboolean,
+  GLbyte,
+  GLchar,
+  GLclampd,
+  GLclampf,
+  GLdouble,
+  GLenum,
+  GLfloat,
+  GLhalf,
+  GLint,
+  GLint64,
+  GLintptr,
+  GLshort,
+  GLsizei,
+  GLsizeiptr,
+  GLsync,
+  GLubyte,
+  GLuint,
+  GLuint64,
+  GLushort,
+  GLvoid,
+  makeGLDEBUGPROC,
+  -- * Enums
+  pattern GL_ACTIVE_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_ACTIVE_ATTRIBUTES,
+  pattern GL_ACTIVE_ATTRIBUTE_MAX_LENGTH,
+  pattern GL_ACTIVE_PROGRAM,
+  pattern GL_ACTIVE_RESOURCES,
+  pattern GL_ACTIVE_SUBROUTINES,
+  pattern GL_ACTIVE_SUBROUTINE_MAX_LENGTH,
+  pattern GL_ACTIVE_SUBROUTINE_UNIFORMS,
+  pattern GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS,
+  pattern GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH,
+  pattern GL_ACTIVE_TEXTURE,
+  pattern GL_ACTIVE_UNIFORMS,
+  pattern GL_ACTIVE_UNIFORM_BLOCKS,
+  pattern GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH,
+  pattern GL_ACTIVE_UNIFORM_MAX_LENGTH,
+  pattern GL_ACTIVE_VARIABLES,
+  pattern GL_ALIASED_LINE_WIDTH_RANGE,
+  pattern GL_ALL_BARRIER_BITS,
+  pattern GL_ALL_SHADER_BITS,
+  pattern GL_ALPHA,
+  pattern GL_ALREADY_SIGNALED,
+  pattern GL_ALWAYS,
+  pattern GL_AND,
+  pattern GL_AND_INVERTED,
+  pattern GL_AND_REVERSE,
+  pattern GL_ANY_SAMPLES_PASSED,
+  pattern GL_ANY_SAMPLES_PASSED_CONSERVATIVE,
+  pattern GL_ARRAY_BUFFER,
+  pattern GL_ARRAY_BUFFER_BINDING,
+  pattern GL_ARRAY_SIZE,
+  pattern GL_ARRAY_STRIDE,
+  pattern GL_ATOMIC_COUNTER_BARRIER_BIT,
+  pattern GL_ATOMIC_COUNTER_BUFFER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS,
+  pattern GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES,
+  pattern GL_ATOMIC_COUNTER_BUFFER_BINDING,
+  pattern GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE,
+  pattern GL_ATOMIC_COUNTER_BUFFER_INDEX,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_SIZE,
+  pattern GL_ATOMIC_COUNTER_BUFFER_START,
+  pattern GL_ATTACHED_SHADERS,
+  pattern GL_AUTO_GENERATE_MIPMAP,
+  pattern GL_BACK,
+  pattern GL_BACK_LEFT,
+  pattern GL_BACK_RIGHT,
+  pattern GL_BGR,
+  pattern GL_BGRA,
+  pattern GL_BGRA_INTEGER,
+  pattern GL_BGR_INTEGER,
+  pattern GL_BLEND,
+  pattern GL_BLEND_COLOR,
+  pattern GL_BLEND_DST,
+  pattern GL_BLEND_DST_ALPHA,
+  pattern GL_BLEND_DST_RGB,
+  pattern GL_BLEND_EQUATION,
+  pattern GL_BLEND_EQUATION_ALPHA,
+  pattern GL_BLEND_EQUATION_RGB,
+  pattern GL_BLEND_SRC,
+  pattern GL_BLEND_SRC_ALPHA,
+  pattern GL_BLEND_SRC_RGB,
+  pattern GL_BLOCK_INDEX,
+  pattern GL_BLUE,
+  pattern GL_BLUE_INTEGER,
+  pattern GL_BOOL,
+  pattern GL_BOOL_VEC2,
+  pattern GL_BOOL_VEC3,
+  pattern GL_BOOL_VEC4,
+  pattern GL_BUFFER,
+  pattern GL_BUFFER_ACCESS,
+  pattern GL_BUFFER_ACCESS_FLAGS,
+  pattern GL_BUFFER_BINDING,
+  pattern GL_BUFFER_DATA_SIZE,
+  pattern GL_BUFFER_MAPPED,
+  pattern GL_BUFFER_MAP_LENGTH,
+  pattern GL_BUFFER_MAP_OFFSET,
+  pattern GL_BUFFER_MAP_POINTER,
+  pattern GL_BUFFER_SIZE,
+  pattern GL_BUFFER_UPDATE_BARRIER_BIT,
+  pattern GL_BUFFER_USAGE,
+  pattern GL_BUFFER_VARIABLE,
+  pattern GL_BYTE,
+  pattern GL_CAVEAT_SUPPORT,
+  pattern GL_CCW,
+  pattern GL_CLAMP_READ_COLOR,
+  pattern GL_CLAMP_TO_BORDER,
+  pattern GL_CLAMP_TO_EDGE,
+  pattern GL_CLEAR,
+  pattern GL_CLEAR_BUFFER,
+  pattern GL_CLIP_DISTANCE0,
+  pattern GL_CLIP_DISTANCE1,
+  pattern GL_CLIP_DISTANCE2,
+  pattern GL_CLIP_DISTANCE3,
+  pattern GL_CLIP_DISTANCE4,
+  pattern GL_CLIP_DISTANCE5,
+  pattern GL_CLIP_DISTANCE6,
+  pattern GL_CLIP_DISTANCE7,
+  pattern GL_COLOR,
+  pattern GL_COLOR_ATTACHMENT0,
+  pattern GL_COLOR_ATTACHMENT1,
+  pattern GL_COLOR_ATTACHMENT10,
+  pattern GL_COLOR_ATTACHMENT11,
+  pattern GL_COLOR_ATTACHMENT12,
+  pattern GL_COLOR_ATTACHMENT13,
+  pattern GL_COLOR_ATTACHMENT14,
+  pattern GL_COLOR_ATTACHMENT15,
+  pattern GL_COLOR_ATTACHMENT16,
+  pattern GL_COLOR_ATTACHMENT17,
+  pattern GL_COLOR_ATTACHMENT18,
+  pattern GL_COLOR_ATTACHMENT19,
+  pattern GL_COLOR_ATTACHMENT2,
+  pattern GL_COLOR_ATTACHMENT20,
+  pattern GL_COLOR_ATTACHMENT21,
+  pattern GL_COLOR_ATTACHMENT22,
+  pattern GL_COLOR_ATTACHMENT23,
+  pattern GL_COLOR_ATTACHMENT24,
+  pattern GL_COLOR_ATTACHMENT25,
+  pattern GL_COLOR_ATTACHMENT26,
+  pattern GL_COLOR_ATTACHMENT27,
+  pattern GL_COLOR_ATTACHMENT28,
+  pattern GL_COLOR_ATTACHMENT29,
+  pattern GL_COLOR_ATTACHMENT3,
+  pattern GL_COLOR_ATTACHMENT30,
+  pattern GL_COLOR_ATTACHMENT31,
+  pattern GL_COLOR_ATTACHMENT4,
+  pattern GL_COLOR_ATTACHMENT5,
+  pattern GL_COLOR_ATTACHMENT6,
+  pattern GL_COLOR_ATTACHMENT7,
+  pattern GL_COLOR_ATTACHMENT8,
+  pattern GL_COLOR_ATTACHMENT9,
+  pattern GL_COLOR_BUFFER_BIT,
+  pattern GL_COLOR_CLEAR_VALUE,
+  pattern GL_COLOR_COMPONENTS,
+  pattern GL_COLOR_ENCODING,
+  pattern GL_COLOR_LOGIC_OP,
+  pattern GL_COLOR_RENDERABLE,
+  pattern GL_COLOR_WRITEMASK,
+  pattern GL_COMMAND_BARRIER_BIT,
+  pattern GL_COMPARE_REF_TO_TEXTURE,
+  pattern GL_COMPATIBLE_SUBROUTINES,
+  pattern GL_COMPILE_STATUS,
+  pattern GL_COMPRESSED_R11_EAC,
+  pattern GL_COMPRESSED_RED,
+  pattern GL_COMPRESSED_RED_RGTC1,
+  pattern GL_COMPRESSED_RG,
+  pattern GL_COMPRESSED_RG11_EAC,
+  pattern GL_COMPRESSED_RGB,
+  pattern GL_COMPRESSED_RGB8_ETC2,
+  pattern GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,
+  pattern GL_COMPRESSED_RGBA,
+  pattern GL_COMPRESSED_RGBA8_ETC2_EAC,
+  pattern GL_COMPRESSED_RGBA_BPTC_UNORM,
+  pattern GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT,
+  pattern GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT,
+  pattern GL_COMPRESSED_RG_RGTC2,
+  pattern GL_COMPRESSED_SIGNED_R11_EAC,
+  pattern GL_COMPRESSED_SIGNED_RED_RGTC1,
+  pattern GL_COMPRESSED_SIGNED_RG11_EAC,
+  pattern GL_COMPRESSED_SIGNED_RG_RGTC2,
+  pattern GL_COMPRESSED_SRGB,
+  pattern GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,
+  pattern GL_COMPRESSED_SRGB8_ETC2,
+  pattern GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,
+  pattern GL_COMPRESSED_SRGB_ALPHA,
+  pattern GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM,
+  pattern GL_COMPRESSED_TEXTURE_FORMATS,
+  pattern GL_COMPUTE_SHADER,
+  pattern GL_COMPUTE_SHADER_BIT,
+  pattern GL_COMPUTE_SUBROUTINE,
+  pattern GL_COMPUTE_SUBROUTINE_UNIFORM,
+  pattern GL_COMPUTE_TEXTURE,
+  pattern GL_COMPUTE_WORK_GROUP_SIZE,
+  pattern GL_CONDITION_SATISFIED,
+  pattern GL_CONSTANT_ALPHA,
+  pattern GL_CONSTANT_COLOR,
+  pattern GL_CONTEXT_COMPATIBILITY_PROFILE_BIT,
+  pattern GL_CONTEXT_CORE_PROFILE_BIT,
+  pattern GL_CONTEXT_FLAGS,
+  pattern GL_CONTEXT_FLAG_DEBUG_BIT,
+  pattern GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT,
+  pattern GL_CONTEXT_PROFILE_MASK,
+  pattern GL_COPY,
+  pattern GL_COPY_INVERTED,
+  pattern GL_COPY_READ_BUFFER,
+  pattern GL_COPY_READ_BUFFER_BINDING,
+  pattern GL_COPY_WRITE_BUFFER,
+  pattern GL_COPY_WRITE_BUFFER_BINDING,
+  pattern GL_CULL_FACE,
+  pattern GL_CULL_FACE_MODE,
+  pattern GL_CURRENT_PROGRAM,
+  pattern GL_CURRENT_QUERY,
+  pattern GL_CURRENT_VERTEX_ATTRIB,
+  pattern GL_CW,
+  pattern GL_DEBUG_CALLBACK_FUNCTION,
+  pattern GL_DEBUG_CALLBACK_USER_PARAM,
+  pattern GL_DEBUG_GROUP_STACK_DEPTH,
+  pattern GL_DEBUG_LOGGED_MESSAGES,
+  pattern GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH,
+  pattern GL_DEBUG_OUTPUT,
+  pattern GL_DEBUG_OUTPUT_SYNCHRONOUS,
+  pattern GL_DEBUG_SEVERITY_HIGH,
+  pattern GL_DEBUG_SEVERITY_LOW,
+  pattern GL_DEBUG_SEVERITY_MEDIUM,
+  pattern GL_DEBUG_SEVERITY_NOTIFICATION,
+  pattern GL_DEBUG_SOURCE_API,
+  pattern GL_DEBUG_SOURCE_APPLICATION,
+  pattern GL_DEBUG_SOURCE_OTHER,
+  pattern GL_DEBUG_SOURCE_SHADER_COMPILER,
+  pattern GL_DEBUG_SOURCE_THIRD_PARTY,
+  pattern GL_DEBUG_SOURCE_WINDOW_SYSTEM,
+  pattern GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR,
+  pattern GL_DEBUG_TYPE_ERROR,
+  pattern GL_DEBUG_TYPE_MARKER,
+  pattern GL_DEBUG_TYPE_OTHER,
+  pattern GL_DEBUG_TYPE_PERFORMANCE,
+  pattern GL_DEBUG_TYPE_POP_GROUP,
+  pattern GL_DEBUG_TYPE_PORTABILITY,
+  pattern GL_DEBUG_TYPE_PUSH_GROUP,
+  pattern GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR,
+  pattern GL_DECR,
+  pattern GL_DECR_WRAP,
+  pattern GL_DELETE_STATUS,
+  pattern GL_DEPTH,
+  pattern GL_DEPTH24_STENCIL8,
+  pattern GL_DEPTH32F_STENCIL8,
+  pattern GL_DEPTH_ATTACHMENT,
+  pattern GL_DEPTH_BUFFER_BIT,
+  pattern GL_DEPTH_CLAMP,
+  pattern GL_DEPTH_CLEAR_VALUE,
+  pattern GL_DEPTH_COMPONENT,
+  pattern GL_DEPTH_COMPONENT16,
+  pattern GL_DEPTH_COMPONENT24,
+  pattern GL_DEPTH_COMPONENT32,
+  pattern GL_DEPTH_COMPONENT32F,
+  pattern GL_DEPTH_COMPONENTS,
+  pattern GL_DEPTH_FUNC,
+  pattern GL_DEPTH_RANGE,
+  pattern GL_DEPTH_RENDERABLE,
+  pattern GL_DEPTH_STENCIL,
+  pattern GL_DEPTH_STENCIL_ATTACHMENT,
+  pattern GL_DEPTH_STENCIL_TEXTURE_MODE,
+  pattern GL_DEPTH_TEST,
+  pattern GL_DEPTH_WRITEMASK,
+  pattern GL_DISPATCH_INDIRECT_BUFFER,
+  pattern GL_DISPATCH_INDIRECT_BUFFER_BINDING,
+  pattern GL_DITHER,
+  pattern GL_DONT_CARE,
+  pattern GL_DOUBLE,
+  pattern GL_DOUBLEBUFFER,
+  pattern GL_DOUBLE_MAT2,
+  pattern GL_DOUBLE_MAT2x3,
+  pattern GL_DOUBLE_MAT2x4,
+  pattern GL_DOUBLE_MAT3,
+  pattern GL_DOUBLE_MAT3x2,
+  pattern GL_DOUBLE_MAT3x4,
+  pattern GL_DOUBLE_MAT4,
+  pattern GL_DOUBLE_MAT4x2,
+  pattern GL_DOUBLE_MAT4x3,
+  pattern GL_DOUBLE_VEC2,
+  pattern GL_DOUBLE_VEC3,
+  pattern GL_DOUBLE_VEC4,
+  pattern GL_DRAW_BUFFER,
+  pattern GL_DRAW_BUFFER0,
+  pattern GL_DRAW_BUFFER1,
+  pattern GL_DRAW_BUFFER10,
+  pattern GL_DRAW_BUFFER11,
+  pattern GL_DRAW_BUFFER12,
+  pattern GL_DRAW_BUFFER13,
+  pattern GL_DRAW_BUFFER14,
+  pattern GL_DRAW_BUFFER15,
+  pattern GL_DRAW_BUFFER2,
+  pattern GL_DRAW_BUFFER3,
+  pattern GL_DRAW_BUFFER4,
+  pattern GL_DRAW_BUFFER5,
+  pattern GL_DRAW_BUFFER6,
+  pattern GL_DRAW_BUFFER7,
+  pattern GL_DRAW_BUFFER8,
+  pattern GL_DRAW_BUFFER9,
+  pattern GL_DRAW_FRAMEBUFFER,
+  pattern GL_DRAW_FRAMEBUFFER_BINDING,
+  pattern GL_DRAW_INDIRECT_BUFFER,
+  pattern GL_DRAW_INDIRECT_BUFFER_BINDING,
+  pattern GL_DST_ALPHA,
+  pattern GL_DST_COLOR,
+  pattern GL_DYNAMIC_COPY,
+  pattern GL_DYNAMIC_DRAW,
+  pattern GL_DYNAMIC_READ,
+  pattern GL_ELEMENT_ARRAY_BARRIER_BIT,
+  pattern GL_ELEMENT_ARRAY_BUFFER,
+  pattern GL_ELEMENT_ARRAY_BUFFER_BINDING,
+  pattern GL_EQUAL,
+  pattern GL_EQUIV,
+  pattern GL_EXTENSIONS,
+  pattern GL_FALSE,
+  pattern GL_FASTEST,
+  pattern GL_FILL,
+  pattern GL_FILTER,
+  pattern GL_FIRST_VERTEX_CONVENTION,
+  pattern GL_FIXED,
+  pattern GL_FIXED_ONLY,
+  pattern GL_FLOAT,
+  pattern GL_FLOAT_32_UNSIGNED_INT_24_8_REV,
+  pattern GL_FLOAT_MAT2,
+  pattern GL_FLOAT_MAT2x3,
+  pattern GL_FLOAT_MAT2x4,
+  pattern GL_FLOAT_MAT3,
+  pattern GL_FLOAT_MAT3x2,
+  pattern GL_FLOAT_MAT3x4,
+  pattern GL_FLOAT_MAT4,
+  pattern GL_FLOAT_MAT4x2,
+  pattern GL_FLOAT_MAT4x3,
+  pattern GL_FLOAT_VEC2,
+  pattern GL_FLOAT_VEC3,
+  pattern GL_FLOAT_VEC4,
+  pattern GL_FRACTIONAL_EVEN,
+  pattern GL_FRACTIONAL_ODD,
+  pattern GL_FRAGMENT_INTERPOLATION_OFFSET_BITS,
+  pattern GL_FRAGMENT_SHADER,
+  pattern GL_FRAGMENT_SHADER_BIT,
+  pattern GL_FRAGMENT_SHADER_DERIVATIVE_HINT,
+  pattern GL_FRAGMENT_SUBROUTINE,
+  pattern GL_FRAGMENT_SUBROUTINE_UNIFORM,
+  pattern GL_FRAGMENT_TEXTURE,
+  pattern GL_FRAMEBUFFER,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL,
+  pattern GL_FRAMEBUFFER_BARRIER_BIT,
+  pattern GL_FRAMEBUFFER_BINDING,
+  pattern GL_FRAMEBUFFER_BLEND,
+  pattern GL_FRAMEBUFFER_COMPLETE,
+  pattern GL_FRAMEBUFFER_DEFAULT,
+  pattern GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS,
+  pattern GL_FRAMEBUFFER_DEFAULT_HEIGHT,
+  pattern GL_FRAMEBUFFER_DEFAULT_LAYERS,
+  pattern GL_FRAMEBUFFER_DEFAULT_SAMPLES,
+  pattern GL_FRAMEBUFFER_DEFAULT_WIDTH,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER,
+  pattern GL_FRAMEBUFFER_RENDERABLE,
+  pattern GL_FRAMEBUFFER_RENDERABLE_LAYERED,
+  pattern GL_FRAMEBUFFER_SRGB,
+  pattern GL_FRAMEBUFFER_UNDEFINED,
+  pattern GL_FRAMEBUFFER_UNSUPPORTED,
+  pattern GL_FRONT,
+  pattern GL_FRONT_AND_BACK,
+  pattern GL_FRONT_FACE,
+  pattern GL_FRONT_LEFT,
+  pattern GL_FRONT_RIGHT,
+  pattern GL_FULL_SUPPORT,
+  pattern GL_FUNC_ADD,
+  pattern GL_FUNC_REVERSE_SUBTRACT,
+  pattern GL_FUNC_SUBTRACT,
+  pattern GL_GEOMETRY_INPUT_TYPE,
+  pattern GL_GEOMETRY_OUTPUT_TYPE,
+  pattern GL_GEOMETRY_SHADER,
+  pattern GL_GEOMETRY_SHADER_BIT,
+  pattern GL_GEOMETRY_SHADER_INVOCATIONS,
+  pattern GL_GEOMETRY_SUBROUTINE,
+  pattern GL_GEOMETRY_SUBROUTINE_UNIFORM,
+  pattern GL_GEOMETRY_TEXTURE,
+  pattern GL_GEOMETRY_VERTICES_OUT,
+  pattern GL_GEQUAL,
+  pattern GL_GET_TEXTURE_IMAGE_FORMAT,
+  pattern GL_GET_TEXTURE_IMAGE_TYPE,
+  pattern GL_GREATER,
+  pattern GL_GREEN,
+  pattern GL_GREEN_INTEGER,
+  pattern GL_HALF_FLOAT,
+  pattern GL_HIGH_FLOAT,
+  pattern GL_HIGH_INT,
+  pattern GL_IMAGE_1D,
+  pattern GL_IMAGE_1D_ARRAY,
+  pattern GL_IMAGE_2D,
+  pattern GL_IMAGE_2D_ARRAY,
+  pattern GL_IMAGE_2D_MULTISAMPLE,
+  pattern GL_IMAGE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_IMAGE_2D_RECT,
+  pattern GL_IMAGE_3D,
+  pattern GL_IMAGE_BINDING_ACCESS,
+  pattern GL_IMAGE_BINDING_FORMAT,
+  pattern GL_IMAGE_BINDING_LAYER,
+  pattern GL_IMAGE_BINDING_LAYERED,
+  pattern GL_IMAGE_BINDING_LEVEL,
+  pattern GL_IMAGE_BINDING_NAME,
+  pattern GL_IMAGE_BUFFER,
+  pattern GL_IMAGE_CLASS_10_10_10_2,
+  pattern GL_IMAGE_CLASS_11_11_10,
+  pattern GL_IMAGE_CLASS_1_X_16,
+  pattern GL_IMAGE_CLASS_1_X_32,
+  pattern GL_IMAGE_CLASS_1_X_8,
+  pattern GL_IMAGE_CLASS_2_X_16,
+  pattern GL_IMAGE_CLASS_2_X_32,
+  pattern GL_IMAGE_CLASS_2_X_8,
+  pattern GL_IMAGE_CLASS_4_X_16,
+  pattern GL_IMAGE_CLASS_4_X_32,
+  pattern GL_IMAGE_CLASS_4_X_8,
+  pattern GL_IMAGE_COMPATIBILITY_CLASS,
+  pattern GL_IMAGE_CUBE,
+  pattern GL_IMAGE_CUBE_MAP_ARRAY,
+  pattern GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS,
+  pattern GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE,
+  pattern GL_IMAGE_FORMAT_COMPATIBILITY_TYPE,
+  pattern GL_IMAGE_PIXEL_FORMAT,
+  pattern GL_IMAGE_PIXEL_TYPE,
+  pattern GL_IMAGE_TEXEL_SIZE,
+  pattern GL_IMPLEMENTATION_COLOR_READ_FORMAT,
+  pattern GL_IMPLEMENTATION_COLOR_READ_TYPE,
+  pattern GL_INCR,
+  pattern GL_INCR_WRAP,
+  pattern GL_INFO_LOG_LENGTH,
+  pattern GL_INT,
+  pattern GL_INTERLEAVED_ATTRIBS,
+  pattern GL_INTERNALFORMAT_ALPHA_SIZE,
+  pattern GL_INTERNALFORMAT_ALPHA_TYPE,
+  pattern GL_INTERNALFORMAT_BLUE_SIZE,
+  pattern GL_INTERNALFORMAT_BLUE_TYPE,
+  pattern GL_INTERNALFORMAT_DEPTH_SIZE,
+  pattern GL_INTERNALFORMAT_DEPTH_TYPE,
+  pattern GL_INTERNALFORMAT_GREEN_SIZE,
+  pattern GL_INTERNALFORMAT_GREEN_TYPE,
+  pattern GL_INTERNALFORMAT_PREFERRED,
+  pattern GL_INTERNALFORMAT_RED_SIZE,
+  pattern GL_INTERNALFORMAT_RED_TYPE,
+  pattern GL_INTERNALFORMAT_SHARED_SIZE,
+  pattern GL_INTERNALFORMAT_STENCIL_SIZE,
+  pattern GL_INTERNALFORMAT_STENCIL_TYPE,
+  pattern GL_INTERNALFORMAT_SUPPORTED,
+  pattern GL_INT_2_10_10_10_REV,
+  pattern GL_INT_IMAGE_1D,
+  pattern GL_INT_IMAGE_1D_ARRAY,
+  pattern GL_INT_IMAGE_2D,
+  pattern GL_INT_IMAGE_2D_ARRAY,
+  pattern GL_INT_IMAGE_2D_MULTISAMPLE,
+  pattern GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_INT_IMAGE_2D_RECT,
+  pattern GL_INT_IMAGE_3D,
+  pattern GL_INT_IMAGE_BUFFER,
+  pattern GL_INT_IMAGE_CUBE,
+  pattern GL_INT_IMAGE_CUBE_MAP_ARRAY,
+  pattern GL_INT_SAMPLER_1D,
+  pattern GL_INT_SAMPLER_1D_ARRAY,
+  pattern GL_INT_SAMPLER_2D,
+  pattern GL_INT_SAMPLER_2D_ARRAY,
+  pattern GL_INT_SAMPLER_2D_MULTISAMPLE,
+  pattern GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY,
+  pattern GL_INT_SAMPLER_2D_RECT,
+  pattern GL_INT_SAMPLER_3D,
+  pattern GL_INT_SAMPLER_BUFFER,
+  pattern GL_INT_SAMPLER_CUBE,
+  pattern GL_INT_SAMPLER_CUBE_MAP_ARRAY,
+  pattern GL_INT_VEC2,
+  pattern GL_INT_VEC3,
+  pattern GL_INT_VEC4,
+  pattern GL_INVALID_ENUM,
+  pattern GL_INVALID_FRAMEBUFFER_OPERATION,
+  pattern GL_INVALID_INDEX,
+  pattern GL_INVALID_OPERATION,
+  pattern GL_INVALID_VALUE,
+  pattern GL_INVERT,
+  pattern GL_ISOLINES,
+  pattern GL_IS_PER_PATCH,
+  pattern GL_IS_ROW_MAJOR,
+  pattern GL_KEEP,
+  pattern GL_LAST_VERTEX_CONVENTION,
+  pattern GL_LAYER_PROVOKING_VERTEX,
+  pattern GL_LEFT,
+  pattern GL_LEQUAL,
+  pattern GL_LESS,
+  pattern GL_LINE,
+  pattern GL_LINEAR,
+  pattern GL_LINEAR_MIPMAP_LINEAR,
+  pattern GL_LINEAR_MIPMAP_NEAREST,
+  pattern GL_LINES,
+  pattern GL_LINES_ADJACENCY,
+  pattern GL_LINE_LOOP,
+  pattern GL_LINE_SMOOTH,
+  pattern GL_LINE_SMOOTH_HINT,
+  pattern GL_LINE_STRIP,
+  pattern GL_LINE_STRIP_ADJACENCY,
+  pattern GL_LINE_WIDTH,
+  pattern GL_LINE_WIDTH_GRANULARITY,
+  pattern GL_LINE_WIDTH_RANGE,
+  pattern GL_LINK_STATUS,
+  pattern GL_LOCATION,
+  pattern GL_LOCATION_INDEX,
+  pattern GL_LOGIC_OP_MODE,
+  pattern GL_LOWER_LEFT,
+  pattern GL_LOW_FLOAT,
+  pattern GL_LOW_INT,
+  pattern GL_MAJOR_VERSION,
+  pattern GL_MANUAL_GENERATE_MIPMAP,
+  pattern GL_MAP_FLUSH_EXPLICIT_BIT,
+  pattern GL_MAP_INVALIDATE_BUFFER_BIT,
+  pattern GL_MAP_INVALIDATE_RANGE_BIT,
+  pattern GL_MAP_READ_BIT,
+  pattern GL_MAP_UNSYNCHRONIZED_BIT,
+  pattern GL_MAP_WRITE_BIT,
+  pattern GL_MATRIX_STRIDE,
+  pattern GL_MAX,
+  pattern GL_MAX_3D_TEXTURE_SIZE,
+  pattern GL_MAX_ARRAY_TEXTURE_LAYERS,
+  pattern GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS,
+  pattern GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE,
+  pattern GL_MAX_CLIP_DISTANCES,
+  pattern GL_MAX_COLOR_ATTACHMENTS,
+  pattern GL_MAX_COLOR_TEXTURE_SAMPLES,
+  pattern GL_MAX_COMBINED_ATOMIC_COUNTERS,
+  pattern GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_DIMENSIONS,
+  pattern GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_IMAGE_UNIFORMS,
+  pattern GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS,
+  pattern GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES,
+  pattern GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_COMBINED_UNIFORM_BLOCKS,
+  pattern GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMPUTE_ATOMIC_COUNTERS,
+  pattern GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_COMPUTE_IMAGE_UNIFORMS,
+  pattern GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_COMPUTE_SHARED_MEMORY_SIZE,
+  pattern GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_COMPUTE_UNIFORM_BLOCKS,
+  pattern GL_MAX_COMPUTE_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMPUTE_WORK_GROUP_COUNT,
+  pattern GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS,
+  pattern GL_MAX_COMPUTE_WORK_GROUP_SIZE,
+  pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE,
+  pattern GL_MAX_DEBUG_GROUP_STACK_DEPTH,
+  pattern GL_MAX_DEBUG_LOGGED_MESSAGES,
+  pattern GL_MAX_DEBUG_MESSAGE_LENGTH,
+  pattern GL_MAX_DEPTH,
+  pattern GL_MAX_DEPTH_TEXTURE_SAMPLES,
+  pattern GL_MAX_DRAW_BUFFERS,
+  pattern GL_MAX_DUAL_SOURCE_DRAW_BUFFERS,
+  pattern GL_MAX_ELEMENTS_INDICES,
+  pattern GL_MAX_ELEMENTS_VERTICES,
+  pattern GL_MAX_ELEMENT_INDEX,
+  pattern GL_MAX_FRAGMENT_ATOMIC_COUNTERS,
+  pattern GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_FRAGMENT_IMAGE_UNIFORMS,
+  pattern GL_MAX_FRAGMENT_INPUT_COMPONENTS,
+  pattern GL_MAX_FRAGMENT_INTERPOLATION_OFFSET,
+  pattern GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_FRAGMENT_UNIFORM_BLOCKS,
+  pattern GL_MAX_FRAGMENT_UNIFORM_COMPONENTS,
+  pattern GL_MAX_FRAGMENT_UNIFORM_VECTORS,
+  pattern GL_MAX_FRAMEBUFFER_HEIGHT,
+  pattern GL_MAX_FRAMEBUFFER_LAYERS,
+  pattern GL_MAX_FRAMEBUFFER_SAMPLES,
+  pattern GL_MAX_FRAMEBUFFER_WIDTH,
+  pattern GL_MAX_GEOMETRY_ATOMIC_COUNTERS,
+  pattern GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_GEOMETRY_IMAGE_UNIFORMS,
+  pattern GL_MAX_GEOMETRY_INPUT_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_OUTPUT_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_OUTPUT_VERTICES,
+  pattern GL_MAX_GEOMETRY_SHADER_INVOCATIONS,
+  pattern GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_UNIFORM_BLOCKS,
+  pattern GL_MAX_GEOMETRY_UNIFORM_COMPONENTS,
+  pattern GL_MAX_HEIGHT,
+  pattern GL_MAX_IMAGE_SAMPLES,
+  pattern GL_MAX_IMAGE_UNITS,
+  pattern GL_MAX_INTEGER_SAMPLES,
+  pattern GL_MAX_LABEL_LENGTH,
+  pattern GL_MAX_LAYERS,
+  pattern GL_MAX_NAME_LENGTH,
+  pattern GL_MAX_NUM_ACTIVE_VARIABLES,
+  pattern GL_MAX_NUM_COMPATIBLE_SUBROUTINES,
+  pattern GL_MAX_PATCH_VERTICES,
+  pattern GL_MAX_PROGRAM_TEXEL_OFFSET,
+  pattern GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET,
+  pattern GL_MAX_RECTANGLE_TEXTURE_SIZE,
+  pattern GL_MAX_RENDERBUFFER_SIZE,
+  pattern GL_MAX_SAMPLES,
+  pattern GL_MAX_SAMPLE_MASK_WORDS,
+  pattern GL_MAX_SERVER_WAIT_TIMEOUT,
+  pattern GL_MAX_SHADER_STORAGE_BLOCK_SIZE,
+  pattern GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS,
+  pattern GL_MAX_SUBROUTINES,
+  pattern GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS,
+  pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS,
+  pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS,
+  pattern GL_MAX_TESS_CONTROL_INPUT_COMPONENTS,
+  pattern GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS,
+  pattern GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS,
+  pattern GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS,
+  pattern GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS,
+  pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS,
+  pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS,
+  pattern GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS,
+  pattern GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS,
+  pattern GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS,
+  pattern GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS,
+  pattern GL_MAX_TESS_GEN_LEVEL,
+  pattern GL_MAX_TESS_PATCH_COMPONENTS,
+  pattern GL_MAX_TEXTURE_BUFFER_SIZE,
+  pattern GL_MAX_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_TEXTURE_LOD_BIAS,
+  pattern GL_MAX_TEXTURE_SIZE,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_BUFFERS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS,
+  pattern GL_MAX_UNIFORM_BLOCK_SIZE,
+  pattern GL_MAX_UNIFORM_BUFFER_BINDINGS,
+  pattern GL_MAX_UNIFORM_LOCATIONS,
+  pattern GL_MAX_VARYING_COMPONENTS,
+  pattern GL_MAX_VARYING_FLOATS,
+  pattern GL_MAX_VARYING_VECTORS,
+  pattern GL_MAX_VERTEX_ATOMIC_COUNTERS,
+  pattern GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_VERTEX_ATTRIBS,
+  pattern GL_MAX_VERTEX_ATTRIB_BINDINGS,
+  pattern GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET,
+  pattern GL_MAX_VERTEX_IMAGE_UNIFORMS,
+  pattern GL_MAX_VERTEX_OUTPUT_COMPONENTS,
+  pattern GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_VERTEX_STREAMS,
+  pattern GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_VERTEX_UNIFORM_BLOCKS,
+  pattern GL_MAX_VERTEX_UNIFORM_COMPONENTS,
+  pattern GL_MAX_VERTEX_UNIFORM_VECTORS,
+  pattern GL_MAX_VIEWPORTS,
+  pattern GL_MAX_VIEWPORT_DIMS,
+  pattern GL_MAX_WIDTH,
+  pattern GL_MEDIUM_FLOAT,
+  pattern GL_MEDIUM_INT,
+  pattern GL_MIN,
+  pattern GL_MINOR_VERSION,
+  pattern GL_MIN_FRAGMENT_INTERPOLATION_OFFSET,
+  pattern GL_MIN_MAP_BUFFER_ALIGNMENT,
+  pattern GL_MIN_PROGRAM_TEXEL_OFFSET,
+  pattern GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET,
+  pattern GL_MIN_SAMPLE_SHADING_VALUE,
+  pattern GL_MIPMAP,
+  pattern GL_MIRRORED_REPEAT,
+  pattern GL_MULTISAMPLE,
+  pattern GL_NAME_LENGTH,
+  pattern GL_NAND,
+  pattern GL_NEAREST,
+  pattern GL_NEAREST_MIPMAP_LINEAR,
+  pattern GL_NEAREST_MIPMAP_NEAREST,
+  pattern GL_NEVER,
+  pattern GL_NICEST,
+  pattern GL_NONE,
+  pattern GL_NOOP,
+  pattern GL_NOR,
+  pattern GL_NOTEQUAL,
+  pattern GL_NO_ERROR,
+  pattern GL_NUM_ACTIVE_VARIABLES,
+  pattern GL_NUM_COMPATIBLE_SUBROUTINES,
+  pattern GL_NUM_COMPRESSED_TEXTURE_FORMATS,
+  pattern GL_NUM_EXTENSIONS,
+  pattern GL_NUM_PROGRAM_BINARY_FORMATS,
+  pattern GL_NUM_SAMPLE_COUNTS,
+  pattern GL_NUM_SHADER_BINARY_FORMATS,
+  pattern GL_NUM_SHADING_LANGUAGE_VERSIONS,
+  pattern GL_OBJECT_TYPE,
+  pattern GL_OFFSET,
+  pattern GL_ONE,
+  pattern GL_ONE_MINUS_CONSTANT_ALPHA,
+  pattern GL_ONE_MINUS_CONSTANT_COLOR,
+  pattern GL_ONE_MINUS_DST_ALPHA,
+  pattern GL_ONE_MINUS_DST_COLOR,
+  pattern GL_ONE_MINUS_SRC1_ALPHA,
+  pattern GL_ONE_MINUS_SRC1_COLOR,
+  pattern GL_ONE_MINUS_SRC_ALPHA,
+  pattern GL_ONE_MINUS_SRC_COLOR,
+  pattern GL_OR,
+  pattern GL_OR_INVERTED,
+  pattern GL_OR_REVERSE,
+  pattern GL_OUT_OF_MEMORY,
+  pattern GL_PACK_ALIGNMENT,
+  pattern GL_PACK_COMPRESSED_BLOCK_DEPTH,
+  pattern GL_PACK_COMPRESSED_BLOCK_HEIGHT,
+  pattern GL_PACK_COMPRESSED_BLOCK_SIZE,
+  pattern GL_PACK_COMPRESSED_BLOCK_WIDTH,
+  pattern GL_PACK_IMAGE_HEIGHT,
+  pattern GL_PACK_LSB_FIRST,
+  pattern GL_PACK_ROW_LENGTH,
+  pattern GL_PACK_SKIP_IMAGES,
+  pattern GL_PACK_SKIP_PIXELS,
+  pattern GL_PACK_SKIP_ROWS,
+  pattern GL_PACK_SWAP_BYTES,
+  pattern GL_PATCHES,
+  pattern GL_PATCH_DEFAULT_INNER_LEVEL,
+  pattern GL_PATCH_DEFAULT_OUTER_LEVEL,
+  pattern GL_PATCH_VERTICES,
+  pattern GL_PIXEL_BUFFER_BARRIER_BIT,
+  pattern GL_PIXEL_PACK_BUFFER,
+  pattern GL_PIXEL_PACK_BUFFER_BINDING,
+  pattern GL_PIXEL_UNPACK_BUFFER,
+  pattern GL_PIXEL_UNPACK_BUFFER_BINDING,
+  pattern GL_POINT,
+  pattern GL_POINTS,
+  pattern GL_POINT_FADE_THRESHOLD_SIZE,
+  pattern GL_POINT_SIZE,
+  pattern GL_POINT_SIZE_GRANULARITY,
+  pattern GL_POINT_SIZE_RANGE,
+  pattern GL_POINT_SPRITE_COORD_ORIGIN,
+  pattern GL_POLYGON_MODE,
+  pattern GL_POLYGON_OFFSET_FACTOR,
+  pattern GL_POLYGON_OFFSET_FILL,
+  pattern GL_POLYGON_OFFSET_LINE,
+  pattern GL_POLYGON_OFFSET_POINT,
+  pattern GL_POLYGON_OFFSET_UNITS,
+  pattern GL_POLYGON_SMOOTH,
+  pattern GL_POLYGON_SMOOTH_HINT,
+  pattern GL_PRIMITIVES_GENERATED,
+  pattern GL_PRIMITIVE_RESTART,
+  pattern GL_PRIMITIVE_RESTART_FIXED_INDEX,
+  pattern GL_PRIMITIVE_RESTART_INDEX,
+  pattern GL_PROGRAM,
+  pattern GL_PROGRAM_BINARY_FORMATS,
+  pattern GL_PROGRAM_BINARY_LENGTH,
+  pattern GL_PROGRAM_BINARY_RETRIEVABLE_HINT,
+  pattern GL_PROGRAM_INPUT,
+  pattern GL_PROGRAM_OUTPUT,
+  pattern GL_PROGRAM_PIPELINE,
+  pattern GL_PROGRAM_PIPELINE_BINDING,
+  pattern GL_PROGRAM_POINT_SIZE,
+  pattern GL_PROGRAM_SEPARABLE,
+  pattern GL_PROVOKING_VERTEX,
+  pattern GL_PROXY_TEXTURE_1D,
+  pattern GL_PROXY_TEXTURE_1D_ARRAY,
+  pattern GL_PROXY_TEXTURE_2D,
+  pattern GL_PROXY_TEXTURE_2D_ARRAY,
+  pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE,
+  pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_PROXY_TEXTURE_3D,
+  pattern GL_PROXY_TEXTURE_CUBE_MAP,
+  pattern GL_PROXY_TEXTURE_CUBE_MAP_ARRAY,
+  pattern GL_PROXY_TEXTURE_RECTANGLE,
+  pattern GL_QUADS,
+  pattern GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION,
+  pattern GL_QUERY,
+  pattern GL_QUERY_BY_REGION_NO_WAIT,
+  pattern GL_QUERY_BY_REGION_WAIT,
+  pattern GL_QUERY_COUNTER_BITS,
+  pattern GL_QUERY_NO_WAIT,
+  pattern GL_QUERY_RESULT,
+  pattern GL_QUERY_RESULT_AVAILABLE,
+  pattern GL_QUERY_WAIT,
+  pattern GL_R11F_G11F_B10F,
+  pattern GL_R16,
+  pattern GL_R16F,
+  pattern GL_R16I,
+  pattern GL_R16UI,
+  pattern GL_R16_SNORM,
+  pattern GL_R32F,
+  pattern GL_R32I,
+  pattern GL_R32UI,
+  pattern GL_R3_G3_B2,
+  pattern GL_R8,
+  pattern GL_R8I,
+  pattern GL_R8UI,
+  pattern GL_R8_SNORM,
+  pattern GL_RASTERIZER_DISCARD,
+  pattern GL_READ_BUFFER,
+  pattern GL_READ_FRAMEBUFFER,
+  pattern GL_READ_FRAMEBUFFER_BINDING,
+  pattern GL_READ_ONLY,
+  pattern GL_READ_PIXELS,
+  pattern GL_READ_PIXELS_FORMAT,
+  pattern GL_READ_PIXELS_TYPE,
+  pattern GL_READ_WRITE,
+  pattern GL_RED,
+  pattern GL_RED_INTEGER,
+  pattern GL_REFERENCED_BY_COMPUTE_SHADER,
+  pattern GL_REFERENCED_BY_FRAGMENT_SHADER,
+  pattern GL_REFERENCED_BY_GEOMETRY_SHADER,
+  pattern GL_REFERENCED_BY_TESS_CONTROL_SHADER,
+  pattern GL_REFERENCED_BY_TESS_EVALUATION_SHADER,
+  pattern GL_REFERENCED_BY_VERTEX_SHADER,
+  pattern GL_RENDERBUFFER,
+  pattern GL_RENDERBUFFER_ALPHA_SIZE,
+  pattern GL_RENDERBUFFER_BINDING,
+  pattern GL_RENDERBUFFER_BLUE_SIZE,
+  pattern GL_RENDERBUFFER_DEPTH_SIZE,
+  pattern GL_RENDERBUFFER_GREEN_SIZE,
+  pattern GL_RENDERBUFFER_HEIGHT,
+  pattern GL_RENDERBUFFER_INTERNAL_FORMAT,
+  pattern GL_RENDERBUFFER_RED_SIZE,
+  pattern GL_RENDERBUFFER_SAMPLES,
+  pattern GL_RENDERBUFFER_STENCIL_SIZE,
+  pattern GL_RENDERBUFFER_WIDTH,
+  pattern GL_RENDERER,
+  pattern GL_REPEAT,
+  pattern GL_REPLACE,
+  pattern GL_RG,
+  pattern GL_RG16,
+  pattern GL_RG16F,
+  pattern GL_RG16I,
+  pattern GL_RG16UI,
+  pattern GL_RG16_SNORM,
+  pattern GL_RG32F,
+  pattern GL_RG32I,
+  pattern GL_RG32UI,
+  pattern GL_RG8,
+  pattern GL_RG8I,
+  pattern GL_RG8UI,
+  pattern GL_RG8_SNORM,
+  pattern GL_RGB,
+  pattern GL_RGB10,
+  pattern GL_RGB10_A2,
+  pattern GL_RGB10_A2UI,
+  pattern GL_RGB12,
+  pattern GL_RGB16,
+  pattern GL_RGB16F,
+  pattern GL_RGB16I,
+  pattern GL_RGB16UI,
+  pattern GL_RGB16_SNORM,
+  pattern GL_RGB32F,
+  pattern GL_RGB32I,
+  pattern GL_RGB32UI,
+  pattern GL_RGB4,
+  pattern GL_RGB5,
+  pattern GL_RGB565,
+  pattern GL_RGB5_A1,
+  pattern GL_RGB8,
+  pattern GL_RGB8I,
+  pattern GL_RGB8UI,
+  pattern GL_RGB8_SNORM,
+  pattern GL_RGB9_E5,
+  pattern GL_RGBA,
+  pattern GL_RGBA12,
+  pattern GL_RGBA16,
+  pattern GL_RGBA16F,
+  pattern GL_RGBA16I,
+  pattern GL_RGBA16UI,
+  pattern GL_RGBA16_SNORM,
+  pattern GL_RGBA2,
+  pattern GL_RGBA32F,
+  pattern GL_RGBA32I,
+  pattern GL_RGBA32UI,
+  pattern GL_RGBA4,
+  pattern GL_RGBA8,
+  pattern GL_RGBA8I,
+  pattern GL_RGBA8UI,
+  pattern GL_RGBA8_SNORM,
+  pattern GL_RGBA_INTEGER,
+  pattern GL_RGB_INTEGER,
+  pattern GL_RG_INTEGER,
+  pattern GL_RIGHT,
+  pattern GL_SAMPLER,
+  pattern GL_SAMPLER_1D,
+  pattern GL_SAMPLER_1D_ARRAY,
+  pattern GL_SAMPLER_1D_ARRAY_SHADOW,
+  pattern GL_SAMPLER_1D_SHADOW,
+  pattern GL_SAMPLER_2D,
+  pattern GL_SAMPLER_2D_ARRAY,
+  pattern GL_SAMPLER_2D_ARRAY_SHADOW,
+  pattern GL_SAMPLER_2D_MULTISAMPLE,
+  pattern GL_SAMPLER_2D_MULTISAMPLE_ARRAY,
+  pattern GL_SAMPLER_2D_RECT,
+  pattern GL_SAMPLER_2D_RECT_SHADOW,
+  pattern GL_SAMPLER_2D_SHADOW,
+  pattern GL_SAMPLER_3D,
+  pattern GL_SAMPLER_BINDING,
+  pattern GL_SAMPLER_BUFFER,
+  pattern GL_SAMPLER_CUBE,
+  pattern GL_SAMPLER_CUBE_MAP_ARRAY,
+  pattern GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW,
+  pattern GL_SAMPLER_CUBE_SHADOW,
+  pattern GL_SAMPLES,
+  pattern GL_SAMPLES_PASSED,
+  pattern GL_SAMPLE_ALPHA_TO_COVERAGE,
+  pattern GL_SAMPLE_ALPHA_TO_ONE,
+  pattern GL_SAMPLE_BUFFERS,
+  pattern GL_SAMPLE_COVERAGE,
+  pattern GL_SAMPLE_COVERAGE_INVERT,
+  pattern GL_SAMPLE_COVERAGE_VALUE,
+  pattern GL_SAMPLE_MASK,
+  pattern GL_SAMPLE_MASK_VALUE,
+  pattern GL_SAMPLE_POSITION,
+  pattern GL_SAMPLE_SHADING,
+  pattern GL_SCISSOR_BOX,
+  pattern GL_SCISSOR_TEST,
+  pattern GL_SEPARATE_ATTRIBS,
+  pattern GL_SET,
+  pattern GL_SHADER,
+  pattern GL_SHADER_BINARY_FORMATS,
+  pattern GL_SHADER_COMPILER,
+  pattern GL_SHADER_IMAGE_ACCESS_BARRIER_BIT,
+  pattern GL_SHADER_IMAGE_ATOMIC,
+  pattern GL_SHADER_IMAGE_LOAD,
+  pattern GL_SHADER_IMAGE_STORE,
+  pattern GL_SHADER_SOURCE_LENGTH,
+  pattern GL_SHADER_STORAGE_BARRIER_BIT,
+  pattern GL_SHADER_STORAGE_BLOCK,
+  pattern GL_SHADER_STORAGE_BUFFER,
+  pattern GL_SHADER_STORAGE_BUFFER_BINDING,
+  pattern GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT,
+  pattern GL_SHADER_STORAGE_BUFFER_SIZE,
+  pattern GL_SHADER_STORAGE_BUFFER_START,
+  pattern GL_SHADER_TYPE,
+  pattern GL_SHADING_LANGUAGE_VERSION,
+  pattern GL_SHORT,
+  pattern GL_SIGNALED,
+  pattern GL_SIGNED_NORMALIZED,
+  pattern GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST,
+  pattern GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE,
+  pattern GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST,
+  pattern GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE,
+  pattern GL_SMOOTH_LINE_WIDTH_GRANULARITY,
+  pattern GL_SMOOTH_LINE_WIDTH_RANGE,
+  pattern GL_SMOOTH_POINT_SIZE_GRANULARITY,
+  pattern GL_SMOOTH_POINT_SIZE_RANGE,
+  pattern GL_SRC1_ALPHA,
+  pattern GL_SRC1_COLOR,
+  pattern GL_SRC_ALPHA,
+  pattern GL_SRC_ALPHA_SATURATE,
+  pattern GL_SRC_COLOR,
+  pattern GL_SRGB,
+  pattern GL_SRGB8,
+  pattern GL_SRGB8_ALPHA8,
+  pattern GL_SRGB_ALPHA,
+  pattern GL_SRGB_READ,
+  pattern GL_SRGB_WRITE,
+  pattern GL_STACK_OVERFLOW,
+  pattern GL_STACK_UNDERFLOW,
+  pattern GL_STATIC_COPY,
+  pattern GL_STATIC_DRAW,
+  pattern GL_STATIC_READ,
+  pattern GL_STENCIL,
+  pattern GL_STENCIL_ATTACHMENT,
+  pattern GL_STENCIL_BACK_FAIL,
+  pattern GL_STENCIL_BACK_FUNC,
+  pattern GL_STENCIL_BACK_PASS_DEPTH_FAIL,
+  pattern GL_STENCIL_BACK_PASS_DEPTH_PASS,
+  pattern GL_STENCIL_BACK_REF,
+  pattern GL_STENCIL_BACK_VALUE_MASK,
+  pattern GL_STENCIL_BACK_WRITEMASK,
+  pattern GL_STENCIL_BUFFER_BIT,
+  pattern GL_STENCIL_CLEAR_VALUE,
+  pattern GL_STENCIL_COMPONENTS,
+  pattern GL_STENCIL_FAIL,
+  pattern GL_STENCIL_FUNC,
+  pattern GL_STENCIL_INDEX,
+  pattern GL_STENCIL_INDEX1,
+  pattern GL_STENCIL_INDEX16,
+  pattern GL_STENCIL_INDEX4,
+  pattern GL_STENCIL_INDEX8,
+  pattern GL_STENCIL_PASS_DEPTH_FAIL,
+  pattern GL_STENCIL_PASS_DEPTH_PASS,
+  pattern GL_STENCIL_REF,
+  pattern GL_STENCIL_RENDERABLE,
+  pattern GL_STENCIL_TEST,
+  pattern GL_STENCIL_VALUE_MASK,
+  pattern GL_STENCIL_WRITEMASK,
+  pattern GL_STEREO,
+  pattern GL_STREAM_COPY,
+  pattern GL_STREAM_DRAW,
+  pattern GL_STREAM_READ,
+  pattern GL_SUBPIXEL_BITS,
+  pattern GL_SYNC_CONDITION,
+  pattern GL_SYNC_FENCE,
+  pattern GL_SYNC_FLAGS,
+  pattern GL_SYNC_FLUSH_COMMANDS_BIT,
+  pattern GL_SYNC_GPU_COMMANDS_COMPLETE,
+  pattern GL_SYNC_STATUS,
+  pattern GL_TESS_CONTROL_OUTPUT_VERTICES,
+  pattern GL_TESS_CONTROL_SHADER,
+  pattern GL_TESS_CONTROL_SHADER_BIT,
+  pattern GL_TESS_CONTROL_SUBROUTINE,
+  pattern GL_TESS_CONTROL_SUBROUTINE_UNIFORM,
+  pattern GL_TESS_CONTROL_TEXTURE,
+  pattern GL_TESS_EVALUATION_SHADER,
+  pattern GL_TESS_EVALUATION_SHADER_BIT,
+  pattern GL_TESS_EVALUATION_SUBROUTINE,
+  pattern GL_TESS_EVALUATION_SUBROUTINE_UNIFORM,
+  pattern GL_TESS_EVALUATION_TEXTURE,
+  pattern GL_TESS_GEN_MODE,
+  pattern GL_TESS_GEN_POINT_MODE,
+  pattern GL_TESS_GEN_SPACING,
+  pattern GL_TESS_GEN_VERTEX_ORDER,
+  pattern GL_TEXTURE,
+  pattern GL_TEXTURE0,
+  pattern GL_TEXTURE1,
+  pattern GL_TEXTURE10,
+  pattern GL_TEXTURE11,
+  pattern GL_TEXTURE12,
+  pattern GL_TEXTURE13,
+  pattern GL_TEXTURE14,
+  pattern GL_TEXTURE15,
+  pattern GL_TEXTURE16,
+  pattern GL_TEXTURE17,
+  pattern GL_TEXTURE18,
+  pattern GL_TEXTURE19,
+  pattern GL_TEXTURE2,
+  pattern GL_TEXTURE20,
+  pattern GL_TEXTURE21,
+  pattern GL_TEXTURE22,
+  pattern GL_TEXTURE23,
+  pattern GL_TEXTURE24,
+  pattern GL_TEXTURE25,
+  pattern GL_TEXTURE26,
+  pattern GL_TEXTURE27,
+  pattern GL_TEXTURE28,
+  pattern GL_TEXTURE29,
+  pattern GL_TEXTURE3,
+  pattern GL_TEXTURE30,
+  pattern GL_TEXTURE31,
+  pattern GL_TEXTURE4,
+  pattern GL_TEXTURE5,
+  pattern GL_TEXTURE6,
+  pattern GL_TEXTURE7,
+  pattern GL_TEXTURE8,
+  pattern GL_TEXTURE9,
+  pattern GL_TEXTURE_1D,
+  pattern GL_TEXTURE_1D_ARRAY,
+  pattern GL_TEXTURE_2D,
+  pattern GL_TEXTURE_2D_ARRAY,
+  pattern GL_TEXTURE_2D_MULTISAMPLE,
+  pattern GL_TEXTURE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_TEXTURE_3D,
+  pattern GL_TEXTURE_ALPHA_SIZE,
+  pattern GL_TEXTURE_ALPHA_TYPE,
+  pattern GL_TEXTURE_BASE_LEVEL,
+  pattern GL_TEXTURE_BINDING_1D,
+  pattern GL_TEXTURE_BINDING_1D_ARRAY,
+  pattern GL_TEXTURE_BINDING_2D,
+  pattern GL_TEXTURE_BINDING_2D_ARRAY,
+  pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE,
+  pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY,
+  pattern GL_TEXTURE_BINDING_3D,
+  pattern GL_TEXTURE_BINDING_BUFFER,
+  pattern GL_TEXTURE_BINDING_CUBE_MAP,
+  pattern GL_TEXTURE_BINDING_CUBE_MAP_ARRAY,
+  pattern GL_TEXTURE_BINDING_RECTANGLE,
+  pattern GL_TEXTURE_BLUE_SIZE,
+  pattern GL_TEXTURE_BLUE_TYPE,
+  pattern GL_TEXTURE_BORDER_COLOR,
+  pattern GL_TEXTURE_BUFFER,
+  pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING,
+  pattern GL_TEXTURE_BUFFER_OFFSET,
+  pattern GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT,
+  pattern GL_TEXTURE_BUFFER_SIZE,
+  pattern GL_TEXTURE_COMPARE_FUNC,
+  pattern GL_TEXTURE_COMPARE_MODE,
+  pattern GL_TEXTURE_COMPRESSED,
+  pattern GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT,
+  pattern GL_TEXTURE_COMPRESSED_BLOCK_SIZE,
+  pattern GL_TEXTURE_COMPRESSED_BLOCK_WIDTH,
+  pattern GL_TEXTURE_COMPRESSED_IMAGE_SIZE,
+  pattern GL_TEXTURE_COMPRESSION_HINT,
+  pattern GL_TEXTURE_CUBE_MAP,
+  pattern GL_TEXTURE_CUBE_MAP_ARRAY,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z,
+  pattern GL_TEXTURE_CUBE_MAP_SEAMLESS,
+  pattern GL_TEXTURE_DEPTH,
+  pattern GL_TEXTURE_DEPTH_SIZE,
+  pattern GL_TEXTURE_DEPTH_TYPE,
+  pattern GL_TEXTURE_FETCH_BARRIER_BIT,
+  pattern GL_TEXTURE_FIXED_SAMPLE_LOCATIONS,
+  pattern GL_TEXTURE_GATHER,
+  pattern GL_TEXTURE_GATHER_SHADOW,
+  pattern GL_TEXTURE_GREEN_SIZE,
+  pattern GL_TEXTURE_GREEN_TYPE,
+  pattern GL_TEXTURE_HEIGHT,
+  pattern GL_TEXTURE_IMAGE_FORMAT,
+  pattern GL_TEXTURE_IMAGE_TYPE,
+  pattern GL_TEXTURE_IMMUTABLE_FORMAT,
+  pattern GL_TEXTURE_IMMUTABLE_LEVELS,
+  pattern GL_TEXTURE_INTERNAL_FORMAT,
+  pattern GL_TEXTURE_LOD_BIAS,
+  pattern GL_TEXTURE_MAG_FILTER,
+  pattern GL_TEXTURE_MAX_LEVEL,
+  pattern GL_TEXTURE_MAX_LOD,
+  pattern GL_TEXTURE_MIN_FILTER,
+  pattern GL_TEXTURE_MIN_LOD,
+  pattern GL_TEXTURE_RECTANGLE,
+  pattern GL_TEXTURE_RED_SIZE,
+  pattern GL_TEXTURE_RED_TYPE,
+  pattern GL_TEXTURE_SAMPLES,
+  pattern GL_TEXTURE_SHADOW,
+  pattern GL_TEXTURE_SHARED_SIZE,
+  pattern GL_TEXTURE_STENCIL_SIZE,
+  pattern GL_TEXTURE_SWIZZLE_A,
+  pattern GL_TEXTURE_SWIZZLE_B,
+  pattern GL_TEXTURE_SWIZZLE_G,
+  pattern GL_TEXTURE_SWIZZLE_R,
+  pattern GL_TEXTURE_SWIZZLE_RGBA,
+  pattern GL_TEXTURE_UPDATE_BARRIER_BIT,
+  pattern GL_TEXTURE_VIEW,
+  pattern GL_TEXTURE_VIEW_MIN_LAYER,
+  pattern GL_TEXTURE_VIEW_MIN_LEVEL,
+  pattern GL_TEXTURE_VIEW_NUM_LAYERS,
+  pattern GL_TEXTURE_VIEW_NUM_LEVELS,
+  pattern GL_TEXTURE_WIDTH,
+  pattern GL_TEXTURE_WRAP_R,
+  pattern GL_TEXTURE_WRAP_S,
+  pattern GL_TEXTURE_WRAP_T,
+  pattern GL_TIMEOUT_EXPIRED,
+  pattern GL_TIMEOUT_IGNORED,
+  pattern GL_TIMESTAMP,
+  pattern GL_TIME_ELAPSED,
+  pattern GL_TOP_LEVEL_ARRAY_SIZE,
+  pattern GL_TOP_LEVEL_ARRAY_STRIDE,
+  pattern GL_TRANSFORM_FEEDBACK,
+  pattern GL_TRANSFORM_FEEDBACK_ACTIVE,
+  pattern GL_TRANSFORM_FEEDBACK_BARRIER_BIT,
+  pattern GL_TRANSFORM_FEEDBACK_BINDING,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_BINDING,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_MODE,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_SIZE,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_START,
+  pattern GL_TRANSFORM_FEEDBACK_PAUSED,
+  pattern GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN,
+  pattern GL_TRANSFORM_FEEDBACK_VARYING,
+  pattern GL_TRANSFORM_FEEDBACK_VARYINGS,
+  pattern GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH,
+  pattern GL_TRIANGLES,
+  pattern GL_TRIANGLES_ADJACENCY,
+  pattern GL_TRIANGLE_FAN,
+  pattern GL_TRIANGLE_STRIP,
+  pattern GL_TRIANGLE_STRIP_ADJACENCY,
+  pattern GL_TRUE,
+  pattern GL_TYPE,
+  pattern GL_UNDEFINED_VERTEX,
+  pattern GL_UNIFORM,
+  pattern GL_UNIFORM_ARRAY_STRIDE,
+  pattern GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX,
+  pattern GL_UNIFORM_BARRIER_BIT,
+  pattern GL_UNIFORM_BLOCK,
+  pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS,
+  pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES,
+  pattern GL_UNIFORM_BLOCK_BINDING,
+  pattern GL_UNIFORM_BLOCK_DATA_SIZE,
+  pattern GL_UNIFORM_BLOCK_INDEX,
+  pattern GL_UNIFORM_BLOCK_NAME_LENGTH,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER,
+  pattern GL_UNIFORM_BUFFER,
+  pattern GL_UNIFORM_BUFFER_BINDING,
+  pattern GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT,
+  pattern GL_UNIFORM_BUFFER_SIZE,
+  pattern GL_UNIFORM_BUFFER_START,
+  pattern GL_UNIFORM_IS_ROW_MAJOR,
+  pattern GL_UNIFORM_MATRIX_STRIDE,
+  pattern GL_UNIFORM_NAME_LENGTH,
+  pattern GL_UNIFORM_OFFSET,
+  pattern GL_UNIFORM_SIZE,
+  pattern GL_UNIFORM_TYPE,
+  pattern GL_UNPACK_ALIGNMENT,
+  pattern GL_UNPACK_COMPRESSED_BLOCK_DEPTH,
+  pattern GL_UNPACK_COMPRESSED_BLOCK_HEIGHT,
+  pattern GL_UNPACK_COMPRESSED_BLOCK_SIZE,
+  pattern GL_UNPACK_COMPRESSED_BLOCK_WIDTH,
+  pattern GL_UNPACK_IMAGE_HEIGHT,
+  pattern GL_UNPACK_LSB_FIRST,
+  pattern GL_UNPACK_ROW_LENGTH,
+  pattern GL_UNPACK_SKIP_IMAGES,
+  pattern GL_UNPACK_SKIP_PIXELS,
+  pattern GL_UNPACK_SKIP_ROWS,
+  pattern GL_UNPACK_SWAP_BYTES,
+  pattern GL_UNSIGNALED,
+  pattern GL_UNSIGNED_BYTE,
+  pattern GL_UNSIGNED_BYTE_2_3_3_REV,
+  pattern GL_UNSIGNED_BYTE_3_3_2,
+  pattern GL_UNSIGNED_INT,
+  pattern GL_UNSIGNED_INT_10F_11F_11F_REV,
+  pattern GL_UNSIGNED_INT_10_10_10_2,
+  pattern GL_UNSIGNED_INT_24_8,
+  pattern GL_UNSIGNED_INT_2_10_10_10_REV,
+  pattern GL_UNSIGNED_INT_5_9_9_9_REV,
+  pattern GL_UNSIGNED_INT_8_8_8_8,
+  pattern GL_UNSIGNED_INT_8_8_8_8_REV,
+  pattern GL_UNSIGNED_INT_ATOMIC_COUNTER,
+  pattern GL_UNSIGNED_INT_IMAGE_1D,
+  pattern GL_UNSIGNED_INT_IMAGE_1D_ARRAY,
+  pattern GL_UNSIGNED_INT_IMAGE_2D,
+  pattern GL_UNSIGNED_INT_IMAGE_2D_ARRAY,
+  pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE,
+  pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_UNSIGNED_INT_IMAGE_2D_RECT,
+  pattern GL_UNSIGNED_INT_IMAGE_3D,
+  pattern GL_UNSIGNED_INT_IMAGE_BUFFER,
+  pattern GL_UNSIGNED_INT_IMAGE_CUBE,
+  pattern GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_1D,
+  pattern GL_UNSIGNED_INT_SAMPLER_1D_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_RECT,
+  pattern GL_UNSIGNED_INT_SAMPLER_3D,
+  pattern GL_UNSIGNED_INT_SAMPLER_BUFFER,
+  pattern GL_UNSIGNED_INT_SAMPLER_CUBE,
+  pattern GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY,
+  pattern GL_UNSIGNED_INT_VEC2,
+  pattern GL_UNSIGNED_INT_VEC3,
+  pattern GL_UNSIGNED_INT_VEC4,
+  pattern GL_UNSIGNED_NORMALIZED,
+  pattern GL_UNSIGNED_SHORT,
+  pattern GL_UNSIGNED_SHORT_1_5_5_5_REV,
+  pattern GL_UNSIGNED_SHORT_4_4_4_4,
+  pattern GL_UNSIGNED_SHORT_4_4_4_4_REV,
+  pattern GL_UNSIGNED_SHORT_5_5_5_1,
+  pattern GL_UNSIGNED_SHORT_5_6_5,
+  pattern GL_UNSIGNED_SHORT_5_6_5_REV,
+  pattern GL_UPPER_LEFT,
+  pattern GL_VALIDATE_STATUS,
+  pattern GL_VENDOR,
+  pattern GL_VERSION,
+  pattern GL_VERTEX_ARRAY,
+  pattern GL_VERTEX_ARRAY_BINDING,
+  pattern GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT,
+  pattern GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING,
+  pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR,
+  pattern GL_VERTEX_ATTRIB_ARRAY_ENABLED,
+  pattern GL_VERTEX_ATTRIB_ARRAY_INTEGER,
+  pattern GL_VERTEX_ATTRIB_ARRAY_LONG,
+  pattern GL_VERTEX_ATTRIB_ARRAY_NORMALIZED,
+  pattern GL_VERTEX_ATTRIB_ARRAY_POINTER,
+  pattern GL_VERTEX_ATTRIB_ARRAY_SIZE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_STRIDE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_TYPE,
+  pattern GL_VERTEX_ATTRIB_BINDING,
+  pattern GL_VERTEX_ATTRIB_RELATIVE_OFFSET,
+  pattern GL_VERTEX_BINDING_BUFFER,
+  pattern GL_VERTEX_BINDING_DIVISOR,
+  pattern GL_VERTEX_BINDING_OFFSET,
+  pattern GL_VERTEX_BINDING_STRIDE,
+  pattern GL_VERTEX_PROGRAM_POINT_SIZE,
+  pattern GL_VERTEX_SHADER,
+  pattern GL_VERTEX_SHADER_BIT,
+  pattern GL_VERTEX_SUBROUTINE,
+  pattern GL_VERTEX_SUBROUTINE_UNIFORM,
+  pattern GL_VERTEX_TEXTURE,
+  pattern GL_VIEWPORT,
+  pattern GL_VIEWPORT_BOUNDS_RANGE,
+  pattern GL_VIEWPORT_INDEX_PROVOKING_VERTEX,
+  pattern GL_VIEWPORT_SUBPIXEL_BITS,
+  pattern GL_VIEW_CLASS_128_BITS,
+  pattern GL_VIEW_CLASS_16_BITS,
+  pattern GL_VIEW_CLASS_24_BITS,
+  pattern GL_VIEW_CLASS_32_BITS,
+  pattern GL_VIEW_CLASS_48_BITS,
+  pattern GL_VIEW_CLASS_64_BITS,
+  pattern GL_VIEW_CLASS_8_BITS,
+  pattern GL_VIEW_CLASS_96_BITS,
+  pattern GL_VIEW_CLASS_BPTC_FLOAT,
+  pattern GL_VIEW_CLASS_BPTC_UNORM,
+  pattern GL_VIEW_CLASS_RGTC1_RED,
+  pattern GL_VIEW_CLASS_RGTC2_RG,
+  pattern GL_VIEW_CLASS_S3TC_DXT1_RGB,
+  pattern GL_VIEW_CLASS_S3TC_DXT1_RGBA,
+  pattern GL_VIEW_CLASS_S3TC_DXT3_RGBA,
+  pattern GL_VIEW_CLASS_S3TC_DXT5_RGBA,
+  pattern GL_VIEW_COMPATIBILITY_CLASS,
+  pattern GL_WAIT_FAILED,
+  pattern GL_WRITE_ONLY,
+  pattern GL_XOR,
+  pattern GL_ZERO,
+  -- * Functions
+  glActiveShaderProgram,
+  glActiveTexture,
+  glAttachShader,
+  glBeginConditionalRender,
+  glBeginQuery,
+  glBeginQueryIndexed,
+  glBeginTransformFeedback,
+  glBindAttribLocation,
+  glBindBuffer,
+  glBindBufferBase,
+  glBindBufferRange,
+  glBindFragDataLocation,
+  glBindFragDataLocationIndexed,
+  glBindFramebuffer,
+  glBindImageTexture,
+  glBindProgramPipeline,
+  glBindRenderbuffer,
+  glBindSampler,
+  glBindTexture,
+  glBindTransformFeedback,
+  glBindVertexArray,
+  glBindVertexBuffer,
+  glBlendColor,
+  glBlendEquation,
+  glBlendEquationSeparate,
+  glBlendEquationSeparatei,
+  glBlendEquationi,
+  glBlendFunc,
+  glBlendFuncSeparate,
+  glBlendFuncSeparatei,
+  glBlendFunci,
+  glBlitFramebuffer,
+  glBufferData,
+  glBufferSubData,
+  glCheckFramebufferStatus,
+  glClampColor,
+  glClear,
+  glClearBufferData,
+  glClearBufferSubData,
+  glClearBufferfi,
+  glClearBufferfv,
+  glClearBufferiv,
+  glClearBufferuiv,
+  glClearColor,
+  glClearDepth,
+  glClearDepthf,
+  glClearStencil,
+  glClientWaitSync,
+  glColorMask,
+  glColorMaski,
+  glCompileShader,
+  glCompressedTexImage1D,
+  glCompressedTexImage2D,
+  glCompressedTexImage3D,
+  glCompressedTexSubImage1D,
+  glCompressedTexSubImage2D,
+  glCompressedTexSubImage3D,
+  glCopyBufferSubData,
+  glCopyImageSubData,
+  glCopyTexImage1D,
+  glCopyTexImage2D,
+  glCopyTexSubImage1D,
+  glCopyTexSubImage2D,
+  glCopyTexSubImage3D,
+  glCreateProgram,
+  glCreateShader,
+  glCreateShaderProgramv,
+  glCullFace,
+  glDebugMessageCallback,
+  glDebugMessageControl,
+  glDebugMessageInsert,
+  glDeleteBuffers,
+  glDeleteFramebuffers,
+  glDeleteProgram,
+  glDeleteProgramPipelines,
+  glDeleteQueries,
+  glDeleteRenderbuffers,
+  glDeleteSamplers,
+  glDeleteShader,
+  glDeleteSync,
+  glDeleteTextures,
+  glDeleteTransformFeedbacks,
+  glDeleteVertexArrays,
+  glDepthFunc,
+  glDepthMask,
+  glDepthRange,
+  glDepthRangeArrayv,
+  glDepthRangeIndexed,
+  glDepthRangef,
+  glDetachShader,
+  glDisable,
+  glDisableVertexAttribArray,
+  glDisablei,
+  glDispatchCompute,
+  glDispatchComputeIndirect,
+  glDrawArrays,
+  glDrawArraysIndirect,
+  glDrawArraysInstanced,
+  glDrawArraysInstancedBaseInstance,
+  glDrawBuffer,
+  glDrawBuffers,
+  glDrawElements,
+  glDrawElementsBaseVertex,
+  glDrawElementsIndirect,
+  glDrawElementsInstanced,
+  glDrawElementsInstancedBaseInstance,
+  glDrawElementsInstancedBaseVertex,
+  glDrawElementsInstancedBaseVertexBaseInstance,
+  glDrawRangeElements,
+  glDrawRangeElementsBaseVertex,
+  glDrawTransformFeedback,
+  glDrawTransformFeedbackInstanced,
+  glDrawTransformFeedbackStream,
+  glDrawTransformFeedbackStreamInstanced,
+  glEnable,
+  glEnableVertexAttribArray,
+  glEnablei,
+  glEndConditionalRender,
+  glEndQuery,
+  glEndQueryIndexed,
+  glEndTransformFeedback,
+  glFenceSync,
+  glFinish,
+  glFlush,
+  glFlushMappedBufferRange,
+  glFramebufferParameteri,
+  glFramebufferRenderbuffer,
+  glFramebufferTexture,
+  glFramebufferTexture1D,
+  glFramebufferTexture2D,
+  glFramebufferTexture3D,
+  glFramebufferTextureLayer,
+  glFrontFace,
+  glGenBuffers,
+  glGenFramebuffers,
+  glGenProgramPipelines,
+  glGenQueries,
+  glGenRenderbuffers,
+  glGenSamplers,
+  glGenTextures,
+  glGenTransformFeedbacks,
+  glGenVertexArrays,
+  glGenerateMipmap,
+  glGetActiveAtomicCounterBufferiv,
+  glGetActiveAttrib,
+  glGetActiveSubroutineName,
+  glGetActiveSubroutineUniformName,
+  glGetActiveSubroutineUniformiv,
+  glGetActiveUniform,
+  glGetActiveUniformBlockName,
+  glGetActiveUniformBlockiv,
+  glGetActiveUniformName,
+  glGetActiveUniformsiv,
+  glGetAttachedShaders,
+  glGetAttribLocation,
+  glGetBooleani_v,
+  glGetBooleanv,
+  glGetBufferParameteri64v,
+  glGetBufferParameteriv,
+  glGetBufferPointerv,
+  glGetBufferSubData,
+  glGetCompressedTexImage,
+  glGetDebugMessageLog,
+  glGetDoublei_v,
+  glGetDoublev,
+  glGetError,
+  glGetFloati_v,
+  glGetFloatv,
+  glGetFragDataIndex,
+  glGetFragDataLocation,
+  glGetFramebufferAttachmentParameteriv,
+  glGetFramebufferParameteriv,
+  glGetInteger64i_v,
+  glGetInteger64v,
+  glGetIntegeri_v,
+  glGetIntegerv,
+  glGetInternalformati64v,
+  glGetInternalformativ,
+  glGetMultisamplefv,
+  glGetObjectLabel,
+  glGetObjectPtrLabel,
+  glGetPointerv,
+  glGetProgramBinary,
+  glGetProgramInfoLog,
+  glGetProgramInterfaceiv,
+  glGetProgramPipelineInfoLog,
+  glGetProgramPipelineiv,
+  glGetProgramResourceIndex,
+  glGetProgramResourceLocation,
+  glGetProgramResourceLocationIndex,
+  glGetProgramResourceName,
+  glGetProgramResourceiv,
+  glGetProgramStageiv,
+  glGetProgramiv,
+  glGetQueryIndexediv,
+  glGetQueryObjecti64v,
+  glGetQueryObjectiv,
+  glGetQueryObjectui64v,
+  glGetQueryObjectuiv,
+  glGetQueryiv,
+  glGetRenderbufferParameteriv,
+  glGetSamplerParameterIiv,
+  glGetSamplerParameterIuiv,
+  glGetSamplerParameterfv,
+  glGetSamplerParameteriv,
+  glGetShaderInfoLog,
+  glGetShaderPrecisionFormat,
+  glGetShaderSource,
+  glGetShaderiv,
+  glGetString,
+  glGetStringi,
+  glGetSubroutineIndex,
+  glGetSubroutineUniformLocation,
+  glGetSynciv,
+  glGetTexImage,
+  glGetTexLevelParameterfv,
+  glGetTexLevelParameteriv,
+  glGetTexParameterIiv,
+  glGetTexParameterIuiv,
+  glGetTexParameterfv,
+  glGetTexParameteriv,
+  glGetTransformFeedbackVarying,
+  glGetUniformBlockIndex,
+  glGetUniformIndices,
+  glGetUniformLocation,
+  glGetUniformSubroutineuiv,
+  glGetUniformdv,
+  glGetUniformfv,
+  glGetUniformiv,
+  glGetUniformuiv,
+  glGetVertexAttribIiv,
+  glGetVertexAttribIuiv,
+  glGetVertexAttribLdv,
+  glGetVertexAttribPointerv,
+  glGetVertexAttribdv,
+  glGetVertexAttribfv,
+  glGetVertexAttribiv,
+  glHint,
+  glInvalidateBufferData,
+  glInvalidateBufferSubData,
+  glInvalidateFramebuffer,
+  glInvalidateSubFramebuffer,
+  glInvalidateTexImage,
+  glInvalidateTexSubImage,
+  glIsBuffer,
+  glIsEnabled,
+  glIsEnabledi,
+  glIsFramebuffer,
+  glIsProgram,
+  glIsProgramPipeline,
+  glIsQuery,
+  glIsRenderbuffer,
+  glIsSampler,
+  glIsShader,
+  glIsSync,
+  glIsTexture,
+  glIsTransformFeedback,
+  glIsVertexArray,
+  glLineWidth,
+  glLinkProgram,
+  glLogicOp,
+  glMapBuffer,
+  glMapBufferRange,
+  glMemoryBarrier,
+  glMinSampleShading,
+  glMultiDrawArrays,
+  glMultiDrawArraysIndirect,
+  glMultiDrawElements,
+  glMultiDrawElementsBaseVertex,
+  glMultiDrawElementsIndirect,
+  glObjectLabel,
+  glObjectPtrLabel,
+  glPatchParameterfv,
+  glPatchParameteri,
+  glPauseTransformFeedback,
+  glPixelStoref,
+  glPixelStorei,
+  glPointParameterf,
+  glPointParameterfv,
+  glPointParameteri,
+  glPointParameteriv,
+  glPointSize,
+  glPolygonMode,
+  glPolygonOffset,
+  glPopDebugGroup,
+  glPrimitiveRestartIndex,
+  glProgramBinary,
+  glProgramParameteri,
+  glProgramUniform1d,
+  glProgramUniform1dv,
+  glProgramUniform1f,
+  glProgramUniform1fv,
+  glProgramUniform1i,
+  glProgramUniform1iv,
+  glProgramUniform1ui,
+  glProgramUniform1uiv,
+  glProgramUniform2d,
+  glProgramUniform2dv,
+  glProgramUniform2f,
+  glProgramUniform2fv,
+  glProgramUniform2i,
+  glProgramUniform2iv,
+  glProgramUniform2ui,
+  glProgramUniform2uiv,
+  glProgramUniform3d,
+  glProgramUniform3dv,
+  glProgramUniform3f,
+  glProgramUniform3fv,
+  glProgramUniform3i,
+  glProgramUniform3iv,
+  glProgramUniform3ui,
+  glProgramUniform3uiv,
+  glProgramUniform4d,
+  glProgramUniform4dv,
+  glProgramUniform4f,
+  glProgramUniform4fv,
+  glProgramUniform4i,
+  glProgramUniform4iv,
+  glProgramUniform4ui,
+  glProgramUniform4uiv,
+  glProgramUniformMatrix2dv,
+  glProgramUniformMatrix2fv,
+  glProgramUniformMatrix2x3dv,
+  glProgramUniformMatrix2x3fv,
+  glProgramUniformMatrix2x4dv,
+  glProgramUniformMatrix2x4fv,
+  glProgramUniformMatrix3dv,
+  glProgramUniformMatrix3fv,
+  glProgramUniformMatrix3x2dv,
+  glProgramUniformMatrix3x2fv,
+  glProgramUniformMatrix3x4dv,
+  glProgramUniformMatrix3x4fv,
+  glProgramUniformMatrix4dv,
+  glProgramUniformMatrix4fv,
+  glProgramUniformMatrix4x2dv,
+  glProgramUniformMatrix4x2fv,
+  glProgramUniformMatrix4x3dv,
+  glProgramUniformMatrix4x3fv,
+  glProvokingVertex,
+  glPushDebugGroup,
+  glQueryCounter,
+  glReadBuffer,
+  glReadPixels,
+  glReleaseShaderCompiler,
+  glRenderbufferStorage,
+  glRenderbufferStorageMultisample,
+  glResumeTransformFeedback,
+  glSampleCoverage,
+  glSampleMaski,
+  glSamplerParameterIiv,
+  glSamplerParameterIuiv,
+  glSamplerParameterf,
+  glSamplerParameterfv,
+  glSamplerParameteri,
+  glSamplerParameteriv,
+  glScissor,
+  glScissorArrayv,
+  glScissorIndexed,
+  glScissorIndexedv,
+  glShaderBinary,
+  glShaderSource,
+  glShaderStorageBlockBinding,
+  glStencilFunc,
+  glStencilFuncSeparate,
+  glStencilMask,
+  glStencilMaskSeparate,
+  glStencilOp,
+  glStencilOpSeparate,
+  glTexBuffer,
+  glTexBufferRange,
+  glTexImage1D,
+  glTexImage2D,
+  glTexImage2DMultisample,
+  glTexImage3D,
+  glTexImage3DMultisample,
+  glTexParameterIiv,
+  glTexParameterIuiv,
+  glTexParameterf,
+  glTexParameterfv,
+  glTexParameteri,
+  glTexParameteriv,
+  glTexStorage1D,
+  glTexStorage2D,
+  glTexStorage2DMultisample,
+  glTexStorage3D,
+  glTexStorage3DMultisample,
+  glTexSubImage1D,
+  glTexSubImage2D,
+  glTexSubImage3D,
+  glTextureView,
+  glTransformFeedbackVaryings,
+  glUniform1d,
+  glUniform1dv,
+  glUniform1f,
+  glUniform1fv,
+  glUniform1i,
+  glUniform1iv,
+  glUniform1ui,
+  glUniform1uiv,
+  glUniform2d,
+  glUniform2dv,
+  glUniform2f,
+  glUniform2fv,
+  glUniform2i,
+  glUniform2iv,
+  glUniform2ui,
+  glUniform2uiv,
+  glUniform3d,
+  glUniform3dv,
+  glUniform3f,
+  glUniform3fv,
+  glUniform3i,
+  glUniform3iv,
+  glUniform3ui,
+  glUniform3uiv,
+  glUniform4d,
+  glUniform4dv,
+  glUniform4f,
+  glUniform4fv,
+  glUniform4i,
+  glUniform4iv,
+  glUniform4ui,
+  glUniform4uiv,
+  glUniformBlockBinding,
+  glUniformMatrix2dv,
+  glUniformMatrix2fv,
+  glUniformMatrix2x3dv,
+  glUniformMatrix2x3fv,
+  glUniformMatrix2x4dv,
+  glUniformMatrix2x4fv,
+  glUniformMatrix3dv,
+  glUniformMatrix3fv,
+  glUniformMatrix3x2dv,
+  glUniformMatrix3x2fv,
+  glUniformMatrix3x4dv,
+  glUniformMatrix3x4fv,
+  glUniformMatrix4dv,
+  glUniformMatrix4fv,
+  glUniformMatrix4x2dv,
+  glUniformMatrix4x2fv,
+  glUniformMatrix4x3dv,
+  glUniformMatrix4x3fv,
+  glUniformSubroutinesuiv,
+  glUnmapBuffer,
+  glUseProgram,
+  glUseProgramStages,
+  glValidateProgram,
+  glValidateProgramPipeline,
+  glVertexAttrib1d,
+  glVertexAttrib1dv,
+  glVertexAttrib1f,
+  glVertexAttrib1fv,
+  glVertexAttrib1s,
+  glVertexAttrib1sv,
+  glVertexAttrib2d,
+  glVertexAttrib2dv,
+  glVertexAttrib2f,
+  glVertexAttrib2fv,
+  glVertexAttrib2s,
+  glVertexAttrib2sv,
+  glVertexAttrib3d,
+  glVertexAttrib3dv,
+  glVertexAttrib3f,
+  glVertexAttrib3fv,
+  glVertexAttrib3s,
+  glVertexAttrib3sv,
+  glVertexAttrib4Nbv,
+  glVertexAttrib4Niv,
+  glVertexAttrib4Nsv,
+  glVertexAttrib4Nub,
+  glVertexAttrib4Nubv,
+  glVertexAttrib4Nuiv,
+  glVertexAttrib4Nusv,
+  glVertexAttrib4bv,
+  glVertexAttrib4d,
+  glVertexAttrib4dv,
+  glVertexAttrib4f,
+  glVertexAttrib4fv,
+  glVertexAttrib4iv,
+  glVertexAttrib4s,
+  glVertexAttrib4sv,
+  glVertexAttrib4ubv,
+  glVertexAttrib4uiv,
+  glVertexAttrib4usv,
+  glVertexAttribBinding,
+  glVertexAttribDivisor,
+  glVertexAttribFormat,
+  glVertexAttribI1i,
+  glVertexAttribI1iv,
+  glVertexAttribI1ui,
+  glVertexAttribI1uiv,
+  glVertexAttribI2i,
+  glVertexAttribI2iv,
+  glVertexAttribI2ui,
+  glVertexAttribI2uiv,
+  glVertexAttribI3i,
+  glVertexAttribI3iv,
+  glVertexAttribI3ui,
+  glVertexAttribI3uiv,
+  glVertexAttribI4bv,
+  glVertexAttribI4i,
+  glVertexAttribI4iv,
+  glVertexAttribI4sv,
+  glVertexAttribI4ubv,
+  glVertexAttribI4ui,
+  glVertexAttribI4uiv,
+  glVertexAttribI4usv,
+  glVertexAttribIFormat,
+  glVertexAttribIPointer,
+  glVertexAttribL1d,
+  glVertexAttribL1dv,
+  glVertexAttribL2d,
+  glVertexAttribL2dv,
+  glVertexAttribL3d,
+  glVertexAttribL3dv,
+  glVertexAttribL4d,
+  glVertexAttribL4dv,
+  glVertexAttribLFormat,
+  glVertexAttribLPointer,
+  glVertexAttribP1ui,
+  glVertexAttribP1uiv,
+  glVertexAttribP2ui,
+  glVertexAttribP2uiv,
+  glVertexAttribP3ui,
+  glVertexAttribP3uiv,
+  glVertexAttribP4ui,
+  glVertexAttribP4uiv,
+  glVertexAttribPointer,
+  glVertexBindingDivisor,
+  glViewport,
+  glViewportArrayv,
+  glViewportIndexedf,
+  glViewportIndexedfv,
+  glWaitSync
+) where
+
+import Graphics.GL.Types
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/Core44.hs b/src/Graphics/GL/Core44.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Core44.hs
@@ -0,0 +1,1913 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Core44
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Core44 (
+  -- * Types
+  GLDEBUGPROC,
+  GLDEBUGPROCFunc,
+  GLbitfield,
+  GLboolean,
+  GLbyte,
+  GLchar,
+  GLclampd,
+  GLclampf,
+  GLdouble,
+  GLenum,
+  GLfloat,
+  GLhalf,
+  GLint,
+  GLint64,
+  GLintptr,
+  GLshort,
+  GLsizei,
+  GLsizeiptr,
+  GLsync,
+  GLubyte,
+  GLuint,
+  GLuint64,
+  GLushort,
+  GLvoid,
+  makeGLDEBUGPROC,
+  -- * Enums
+  pattern GL_ACTIVE_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_ACTIVE_ATTRIBUTES,
+  pattern GL_ACTIVE_ATTRIBUTE_MAX_LENGTH,
+  pattern GL_ACTIVE_PROGRAM,
+  pattern GL_ACTIVE_RESOURCES,
+  pattern GL_ACTIVE_SUBROUTINES,
+  pattern GL_ACTIVE_SUBROUTINE_MAX_LENGTH,
+  pattern GL_ACTIVE_SUBROUTINE_UNIFORMS,
+  pattern GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS,
+  pattern GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH,
+  pattern GL_ACTIVE_TEXTURE,
+  pattern GL_ACTIVE_UNIFORMS,
+  pattern GL_ACTIVE_UNIFORM_BLOCKS,
+  pattern GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH,
+  pattern GL_ACTIVE_UNIFORM_MAX_LENGTH,
+  pattern GL_ACTIVE_VARIABLES,
+  pattern GL_ALIASED_LINE_WIDTH_RANGE,
+  pattern GL_ALL_BARRIER_BITS,
+  pattern GL_ALL_SHADER_BITS,
+  pattern GL_ALPHA,
+  pattern GL_ALREADY_SIGNALED,
+  pattern GL_ALWAYS,
+  pattern GL_AND,
+  pattern GL_AND_INVERTED,
+  pattern GL_AND_REVERSE,
+  pattern GL_ANY_SAMPLES_PASSED,
+  pattern GL_ANY_SAMPLES_PASSED_CONSERVATIVE,
+  pattern GL_ARRAY_BUFFER,
+  pattern GL_ARRAY_BUFFER_BINDING,
+  pattern GL_ARRAY_SIZE,
+  pattern GL_ARRAY_STRIDE,
+  pattern GL_ATOMIC_COUNTER_BARRIER_BIT,
+  pattern GL_ATOMIC_COUNTER_BUFFER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS,
+  pattern GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES,
+  pattern GL_ATOMIC_COUNTER_BUFFER_BINDING,
+  pattern GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE,
+  pattern GL_ATOMIC_COUNTER_BUFFER_INDEX,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_SIZE,
+  pattern GL_ATOMIC_COUNTER_BUFFER_START,
+  pattern GL_ATTACHED_SHADERS,
+  pattern GL_AUTO_GENERATE_MIPMAP,
+  pattern GL_BACK,
+  pattern GL_BACK_LEFT,
+  pattern GL_BACK_RIGHT,
+  pattern GL_BGR,
+  pattern GL_BGRA,
+  pattern GL_BGRA_INTEGER,
+  pattern GL_BGR_INTEGER,
+  pattern GL_BLEND,
+  pattern GL_BLEND_COLOR,
+  pattern GL_BLEND_DST,
+  pattern GL_BLEND_DST_ALPHA,
+  pattern GL_BLEND_DST_RGB,
+  pattern GL_BLEND_EQUATION,
+  pattern GL_BLEND_EQUATION_ALPHA,
+  pattern GL_BLEND_EQUATION_RGB,
+  pattern GL_BLEND_SRC,
+  pattern GL_BLEND_SRC_ALPHA,
+  pattern GL_BLEND_SRC_RGB,
+  pattern GL_BLOCK_INDEX,
+  pattern GL_BLUE,
+  pattern GL_BLUE_INTEGER,
+  pattern GL_BOOL,
+  pattern GL_BOOL_VEC2,
+  pattern GL_BOOL_VEC3,
+  pattern GL_BOOL_VEC4,
+  pattern GL_BUFFER,
+  pattern GL_BUFFER_ACCESS,
+  pattern GL_BUFFER_ACCESS_FLAGS,
+  pattern GL_BUFFER_BINDING,
+  pattern GL_BUFFER_DATA_SIZE,
+  pattern GL_BUFFER_IMMUTABLE_STORAGE,
+  pattern GL_BUFFER_MAPPED,
+  pattern GL_BUFFER_MAP_LENGTH,
+  pattern GL_BUFFER_MAP_OFFSET,
+  pattern GL_BUFFER_MAP_POINTER,
+  pattern GL_BUFFER_SIZE,
+  pattern GL_BUFFER_STORAGE_FLAGS,
+  pattern GL_BUFFER_UPDATE_BARRIER_BIT,
+  pattern GL_BUFFER_USAGE,
+  pattern GL_BUFFER_VARIABLE,
+  pattern GL_BYTE,
+  pattern GL_CAVEAT_SUPPORT,
+  pattern GL_CCW,
+  pattern GL_CLAMP_READ_COLOR,
+  pattern GL_CLAMP_TO_BORDER,
+  pattern GL_CLAMP_TO_EDGE,
+  pattern GL_CLEAR,
+  pattern GL_CLEAR_BUFFER,
+  pattern GL_CLEAR_TEXTURE,
+  pattern GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT,
+  pattern GL_CLIENT_STORAGE_BIT,
+  pattern GL_CLIP_DISTANCE0,
+  pattern GL_CLIP_DISTANCE1,
+  pattern GL_CLIP_DISTANCE2,
+  pattern GL_CLIP_DISTANCE3,
+  pattern GL_CLIP_DISTANCE4,
+  pattern GL_CLIP_DISTANCE5,
+  pattern GL_CLIP_DISTANCE6,
+  pattern GL_CLIP_DISTANCE7,
+  pattern GL_COLOR,
+  pattern GL_COLOR_ATTACHMENT0,
+  pattern GL_COLOR_ATTACHMENT1,
+  pattern GL_COLOR_ATTACHMENT10,
+  pattern GL_COLOR_ATTACHMENT11,
+  pattern GL_COLOR_ATTACHMENT12,
+  pattern GL_COLOR_ATTACHMENT13,
+  pattern GL_COLOR_ATTACHMENT14,
+  pattern GL_COLOR_ATTACHMENT15,
+  pattern GL_COLOR_ATTACHMENT16,
+  pattern GL_COLOR_ATTACHMENT17,
+  pattern GL_COLOR_ATTACHMENT18,
+  pattern GL_COLOR_ATTACHMENT19,
+  pattern GL_COLOR_ATTACHMENT2,
+  pattern GL_COLOR_ATTACHMENT20,
+  pattern GL_COLOR_ATTACHMENT21,
+  pattern GL_COLOR_ATTACHMENT22,
+  pattern GL_COLOR_ATTACHMENT23,
+  pattern GL_COLOR_ATTACHMENT24,
+  pattern GL_COLOR_ATTACHMENT25,
+  pattern GL_COLOR_ATTACHMENT26,
+  pattern GL_COLOR_ATTACHMENT27,
+  pattern GL_COLOR_ATTACHMENT28,
+  pattern GL_COLOR_ATTACHMENT29,
+  pattern GL_COLOR_ATTACHMENT3,
+  pattern GL_COLOR_ATTACHMENT30,
+  pattern GL_COLOR_ATTACHMENT31,
+  pattern GL_COLOR_ATTACHMENT4,
+  pattern GL_COLOR_ATTACHMENT5,
+  pattern GL_COLOR_ATTACHMENT6,
+  pattern GL_COLOR_ATTACHMENT7,
+  pattern GL_COLOR_ATTACHMENT8,
+  pattern GL_COLOR_ATTACHMENT9,
+  pattern GL_COLOR_BUFFER_BIT,
+  pattern GL_COLOR_CLEAR_VALUE,
+  pattern GL_COLOR_COMPONENTS,
+  pattern GL_COLOR_ENCODING,
+  pattern GL_COLOR_LOGIC_OP,
+  pattern GL_COLOR_RENDERABLE,
+  pattern GL_COLOR_WRITEMASK,
+  pattern GL_COMMAND_BARRIER_BIT,
+  pattern GL_COMPARE_REF_TO_TEXTURE,
+  pattern GL_COMPATIBLE_SUBROUTINES,
+  pattern GL_COMPILE_STATUS,
+  pattern GL_COMPRESSED_R11_EAC,
+  pattern GL_COMPRESSED_RED,
+  pattern GL_COMPRESSED_RED_RGTC1,
+  pattern GL_COMPRESSED_RG,
+  pattern GL_COMPRESSED_RG11_EAC,
+  pattern GL_COMPRESSED_RGB,
+  pattern GL_COMPRESSED_RGB8_ETC2,
+  pattern GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,
+  pattern GL_COMPRESSED_RGBA,
+  pattern GL_COMPRESSED_RGBA8_ETC2_EAC,
+  pattern GL_COMPRESSED_RGBA_BPTC_UNORM,
+  pattern GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT,
+  pattern GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT,
+  pattern GL_COMPRESSED_RG_RGTC2,
+  pattern GL_COMPRESSED_SIGNED_R11_EAC,
+  pattern GL_COMPRESSED_SIGNED_RED_RGTC1,
+  pattern GL_COMPRESSED_SIGNED_RG11_EAC,
+  pattern GL_COMPRESSED_SIGNED_RG_RGTC2,
+  pattern GL_COMPRESSED_SRGB,
+  pattern GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,
+  pattern GL_COMPRESSED_SRGB8_ETC2,
+  pattern GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,
+  pattern GL_COMPRESSED_SRGB_ALPHA,
+  pattern GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM,
+  pattern GL_COMPRESSED_TEXTURE_FORMATS,
+  pattern GL_COMPUTE_SHADER,
+  pattern GL_COMPUTE_SHADER_BIT,
+  pattern GL_COMPUTE_SUBROUTINE,
+  pattern GL_COMPUTE_SUBROUTINE_UNIFORM,
+  pattern GL_COMPUTE_TEXTURE,
+  pattern GL_COMPUTE_WORK_GROUP_SIZE,
+  pattern GL_CONDITION_SATISFIED,
+  pattern GL_CONSTANT_ALPHA,
+  pattern GL_CONSTANT_COLOR,
+  pattern GL_CONTEXT_COMPATIBILITY_PROFILE_BIT,
+  pattern GL_CONTEXT_CORE_PROFILE_BIT,
+  pattern GL_CONTEXT_FLAGS,
+  pattern GL_CONTEXT_FLAG_DEBUG_BIT,
+  pattern GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT,
+  pattern GL_CONTEXT_PROFILE_MASK,
+  pattern GL_COPY,
+  pattern GL_COPY_INVERTED,
+  pattern GL_COPY_READ_BUFFER,
+  pattern GL_COPY_READ_BUFFER_BINDING,
+  pattern GL_COPY_WRITE_BUFFER,
+  pattern GL_COPY_WRITE_BUFFER_BINDING,
+  pattern GL_CULL_FACE,
+  pattern GL_CULL_FACE_MODE,
+  pattern GL_CURRENT_PROGRAM,
+  pattern GL_CURRENT_QUERY,
+  pattern GL_CURRENT_VERTEX_ATTRIB,
+  pattern GL_CW,
+  pattern GL_DEBUG_CALLBACK_FUNCTION,
+  pattern GL_DEBUG_CALLBACK_USER_PARAM,
+  pattern GL_DEBUG_GROUP_STACK_DEPTH,
+  pattern GL_DEBUG_LOGGED_MESSAGES,
+  pattern GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH,
+  pattern GL_DEBUG_OUTPUT,
+  pattern GL_DEBUG_OUTPUT_SYNCHRONOUS,
+  pattern GL_DEBUG_SEVERITY_HIGH,
+  pattern GL_DEBUG_SEVERITY_LOW,
+  pattern GL_DEBUG_SEVERITY_MEDIUM,
+  pattern GL_DEBUG_SEVERITY_NOTIFICATION,
+  pattern GL_DEBUG_SOURCE_API,
+  pattern GL_DEBUG_SOURCE_APPLICATION,
+  pattern GL_DEBUG_SOURCE_OTHER,
+  pattern GL_DEBUG_SOURCE_SHADER_COMPILER,
+  pattern GL_DEBUG_SOURCE_THIRD_PARTY,
+  pattern GL_DEBUG_SOURCE_WINDOW_SYSTEM,
+  pattern GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR,
+  pattern GL_DEBUG_TYPE_ERROR,
+  pattern GL_DEBUG_TYPE_MARKER,
+  pattern GL_DEBUG_TYPE_OTHER,
+  pattern GL_DEBUG_TYPE_PERFORMANCE,
+  pattern GL_DEBUG_TYPE_POP_GROUP,
+  pattern GL_DEBUG_TYPE_PORTABILITY,
+  pattern GL_DEBUG_TYPE_PUSH_GROUP,
+  pattern GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR,
+  pattern GL_DECR,
+  pattern GL_DECR_WRAP,
+  pattern GL_DELETE_STATUS,
+  pattern GL_DEPTH,
+  pattern GL_DEPTH24_STENCIL8,
+  pattern GL_DEPTH32F_STENCIL8,
+  pattern GL_DEPTH_ATTACHMENT,
+  pattern GL_DEPTH_BUFFER_BIT,
+  pattern GL_DEPTH_CLAMP,
+  pattern GL_DEPTH_CLEAR_VALUE,
+  pattern GL_DEPTH_COMPONENT,
+  pattern GL_DEPTH_COMPONENT16,
+  pattern GL_DEPTH_COMPONENT24,
+  pattern GL_DEPTH_COMPONENT32,
+  pattern GL_DEPTH_COMPONENT32F,
+  pattern GL_DEPTH_COMPONENTS,
+  pattern GL_DEPTH_FUNC,
+  pattern GL_DEPTH_RANGE,
+  pattern GL_DEPTH_RENDERABLE,
+  pattern GL_DEPTH_STENCIL,
+  pattern GL_DEPTH_STENCIL_ATTACHMENT,
+  pattern GL_DEPTH_STENCIL_TEXTURE_MODE,
+  pattern GL_DEPTH_TEST,
+  pattern GL_DEPTH_WRITEMASK,
+  pattern GL_DISPATCH_INDIRECT_BUFFER,
+  pattern GL_DISPATCH_INDIRECT_BUFFER_BINDING,
+  pattern GL_DITHER,
+  pattern GL_DONT_CARE,
+  pattern GL_DOUBLE,
+  pattern GL_DOUBLEBUFFER,
+  pattern GL_DOUBLE_MAT2,
+  pattern GL_DOUBLE_MAT2x3,
+  pattern GL_DOUBLE_MAT2x4,
+  pattern GL_DOUBLE_MAT3,
+  pattern GL_DOUBLE_MAT3x2,
+  pattern GL_DOUBLE_MAT3x4,
+  pattern GL_DOUBLE_MAT4,
+  pattern GL_DOUBLE_MAT4x2,
+  pattern GL_DOUBLE_MAT4x3,
+  pattern GL_DOUBLE_VEC2,
+  pattern GL_DOUBLE_VEC3,
+  pattern GL_DOUBLE_VEC4,
+  pattern GL_DRAW_BUFFER,
+  pattern GL_DRAW_BUFFER0,
+  pattern GL_DRAW_BUFFER1,
+  pattern GL_DRAW_BUFFER10,
+  pattern GL_DRAW_BUFFER11,
+  pattern GL_DRAW_BUFFER12,
+  pattern GL_DRAW_BUFFER13,
+  pattern GL_DRAW_BUFFER14,
+  pattern GL_DRAW_BUFFER15,
+  pattern GL_DRAW_BUFFER2,
+  pattern GL_DRAW_BUFFER3,
+  pattern GL_DRAW_BUFFER4,
+  pattern GL_DRAW_BUFFER5,
+  pattern GL_DRAW_BUFFER6,
+  pattern GL_DRAW_BUFFER7,
+  pattern GL_DRAW_BUFFER8,
+  pattern GL_DRAW_BUFFER9,
+  pattern GL_DRAW_FRAMEBUFFER,
+  pattern GL_DRAW_FRAMEBUFFER_BINDING,
+  pattern GL_DRAW_INDIRECT_BUFFER,
+  pattern GL_DRAW_INDIRECT_BUFFER_BINDING,
+  pattern GL_DST_ALPHA,
+  pattern GL_DST_COLOR,
+  pattern GL_DYNAMIC_COPY,
+  pattern GL_DYNAMIC_DRAW,
+  pattern GL_DYNAMIC_READ,
+  pattern GL_DYNAMIC_STORAGE_BIT,
+  pattern GL_ELEMENT_ARRAY_BARRIER_BIT,
+  pattern GL_ELEMENT_ARRAY_BUFFER,
+  pattern GL_ELEMENT_ARRAY_BUFFER_BINDING,
+  pattern GL_EQUAL,
+  pattern GL_EQUIV,
+  pattern GL_EXTENSIONS,
+  pattern GL_FALSE,
+  pattern GL_FASTEST,
+  pattern GL_FILL,
+  pattern GL_FILTER,
+  pattern GL_FIRST_VERTEX_CONVENTION,
+  pattern GL_FIXED,
+  pattern GL_FIXED_ONLY,
+  pattern GL_FLOAT,
+  pattern GL_FLOAT_32_UNSIGNED_INT_24_8_REV,
+  pattern GL_FLOAT_MAT2,
+  pattern GL_FLOAT_MAT2x3,
+  pattern GL_FLOAT_MAT2x4,
+  pattern GL_FLOAT_MAT3,
+  pattern GL_FLOAT_MAT3x2,
+  pattern GL_FLOAT_MAT3x4,
+  pattern GL_FLOAT_MAT4,
+  pattern GL_FLOAT_MAT4x2,
+  pattern GL_FLOAT_MAT4x3,
+  pattern GL_FLOAT_VEC2,
+  pattern GL_FLOAT_VEC3,
+  pattern GL_FLOAT_VEC4,
+  pattern GL_FRACTIONAL_EVEN,
+  pattern GL_FRACTIONAL_ODD,
+  pattern GL_FRAGMENT_INTERPOLATION_OFFSET_BITS,
+  pattern GL_FRAGMENT_SHADER,
+  pattern GL_FRAGMENT_SHADER_BIT,
+  pattern GL_FRAGMENT_SHADER_DERIVATIVE_HINT,
+  pattern GL_FRAGMENT_SUBROUTINE,
+  pattern GL_FRAGMENT_SUBROUTINE_UNIFORM,
+  pattern GL_FRAGMENT_TEXTURE,
+  pattern GL_FRAMEBUFFER,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL,
+  pattern GL_FRAMEBUFFER_BARRIER_BIT,
+  pattern GL_FRAMEBUFFER_BINDING,
+  pattern GL_FRAMEBUFFER_BLEND,
+  pattern GL_FRAMEBUFFER_COMPLETE,
+  pattern GL_FRAMEBUFFER_DEFAULT,
+  pattern GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS,
+  pattern GL_FRAMEBUFFER_DEFAULT_HEIGHT,
+  pattern GL_FRAMEBUFFER_DEFAULT_LAYERS,
+  pattern GL_FRAMEBUFFER_DEFAULT_SAMPLES,
+  pattern GL_FRAMEBUFFER_DEFAULT_WIDTH,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER,
+  pattern GL_FRAMEBUFFER_RENDERABLE,
+  pattern GL_FRAMEBUFFER_RENDERABLE_LAYERED,
+  pattern GL_FRAMEBUFFER_SRGB,
+  pattern GL_FRAMEBUFFER_UNDEFINED,
+  pattern GL_FRAMEBUFFER_UNSUPPORTED,
+  pattern GL_FRONT,
+  pattern GL_FRONT_AND_BACK,
+  pattern GL_FRONT_FACE,
+  pattern GL_FRONT_LEFT,
+  pattern GL_FRONT_RIGHT,
+  pattern GL_FULL_SUPPORT,
+  pattern GL_FUNC_ADD,
+  pattern GL_FUNC_REVERSE_SUBTRACT,
+  pattern GL_FUNC_SUBTRACT,
+  pattern GL_GEOMETRY_INPUT_TYPE,
+  pattern GL_GEOMETRY_OUTPUT_TYPE,
+  pattern GL_GEOMETRY_SHADER,
+  pattern GL_GEOMETRY_SHADER_BIT,
+  pattern GL_GEOMETRY_SHADER_INVOCATIONS,
+  pattern GL_GEOMETRY_SUBROUTINE,
+  pattern GL_GEOMETRY_SUBROUTINE_UNIFORM,
+  pattern GL_GEOMETRY_TEXTURE,
+  pattern GL_GEOMETRY_VERTICES_OUT,
+  pattern GL_GEQUAL,
+  pattern GL_GET_TEXTURE_IMAGE_FORMAT,
+  pattern GL_GET_TEXTURE_IMAGE_TYPE,
+  pattern GL_GREATER,
+  pattern GL_GREEN,
+  pattern GL_GREEN_INTEGER,
+  pattern GL_HALF_FLOAT,
+  pattern GL_HIGH_FLOAT,
+  pattern GL_HIGH_INT,
+  pattern GL_IMAGE_1D,
+  pattern GL_IMAGE_1D_ARRAY,
+  pattern GL_IMAGE_2D,
+  pattern GL_IMAGE_2D_ARRAY,
+  pattern GL_IMAGE_2D_MULTISAMPLE,
+  pattern GL_IMAGE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_IMAGE_2D_RECT,
+  pattern GL_IMAGE_3D,
+  pattern GL_IMAGE_BINDING_ACCESS,
+  pattern GL_IMAGE_BINDING_FORMAT,
+  pattern GL_IMAGE_BINDING_LAYER,
+  pattern GL_IMAGE_BINDING_LAYERED,
+  pattern GL_IMAGE_BINDING_LEVEL,
+  pattern GL_IMAGE_BINDING_NAME,
+  pattern GL_IMAGE_BUFFER,
+  pattern GL_IMAGE_CLASS_10_10_10_2,
+  pattern GL_IMAGE_CLASS_11_11_10,
+  pattern GL_IMAGE_CLASS_1_X_16,
+  pattern GL_IMAGE_CLASS_1_X_32,
+  pattern GL_IMAGE_CLASS_1_X_8,
+  pattern GL_IMAGE_CLASS_2_X_16,
+  pattern GL_IMAGE_CLASS_2_X_32,
+  pattern GL_IMAGE_CLASS_2_X_8,
+  pattern GL_IMAGE_CLASS_4_X_16,
+  pattern GL_IMAGE_CLASS_4_X_32,
+  pattern GL_IMAGE_CLASS_4_X_8,
+  pattern GL_IMAGE_COMPATIBILITY_CLASS,
+  pattern GL_IMAGE_CUBE,
+  pattern GL_IMAGE_CUBE_MAP_ARRAY,
+  pattern GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS,
+  pattern GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE,
+  pattern GL_IMAGE_FORMAT_COMPATIBILITY_TYPE,
+  pattern GL_IMAGE_PIXEL_FORMAT,
+  pattern GL_IMAGE_PIXEL_TYPE,
+  pattern GL_IMAGE_TEXEL_SIZE,
+  pattern GL_IMPLEMENTATION_COLOR_READ_FORMAT,
+  pattern GL_IMPLEMENTATION_COLOR_READ_TYPE,
+  pattern GL_INCR,
+  pattern GL_INCR_WRAP,
+  pattern GL_INFO_LOG_LENGTH,
+  pattern GL_INT,
+  pattern GL_INTERLEAVED_ATTRIBS,
+  pattern GL_INTERNALFORMAT_ALPHA_SIZE,
+  pattern GL_INTERNALFORMAT_ALPHA_TYPE,
+  pattern GL_INTERNALFORMAT_BLUE_SIZE,
+  pattern GL_INTERNALFORMAT_BLUE_TYPE,
+  pattern GL_INTERNALFORMAT_DEPTH_SIZE,
+  pattern GL_INTERNALFORMAT_DEPTH_TYPE,
+  pattern GL_INTERNALFORMAT_GREEN_SIZE,
+  pattern GL_INTERNALFORMAT_GREEN_TYPE,
+  pattern GL_INTERNALFORMAT_PREFERRED,
+  pattern GL_INTERNALFORMAT_RED_SIZE,
+  pattern GL_INTERNALFORMAT_RED_TYPE,
+  pattern GL_INTERNALFORMAT_SHARED_SIZE,
+  pattern GL_INTERNALFORMAT_STENCIL_SIZE,
+  pattern GL_INTERNALFORMAT_STENCIL_TYPE,
+  pattern GL_INTERNALFORMAT_SUPPORTED,
+  pattern GL_INT_2_10_10_10_REV,
+  pattern GL_INT_IMAGE_1D,
+  pattern GL_INT_IMAGE_1D_ARRAY,
+  pattern GL_INT_IMAGE_2D,
+  pattern GL_INT_IMAGE_2D_ARRAY,
+  pattern GL_INT_IMAGE_2D_MULTISAMPLE,
+  pattern GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_INT_IMAGE_2D_RECT,
+  pattern GL_INT_IMAGE_3D,
+  pattern GL_INT_IMAGE_BUFFER,
+  pattern GL_INT_IMAGE_CUBE,
+  pattern GL_INT_IMAGE_CUBE_MAP_ARRAY,
+  pattern GL_INT_SAMPLER_1D,
+  pattern GL_INT_SAMPLER_1D_ARRAY,
+  pattern GL_INT_SAMPLER_2D,
+  pattern GL_INT_SAMPLER_2D_ARRAY,
+  pattern GL_INT_SAMPLER_2D_MULTISAMPLE,
+  pattern GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY,
+  pattern GL_INT_SAMPLER_2D_RECT,
+  pattern GL_INT_SAMPLER_3D,
+  pattern GL_INT_SAMPLER_BUFFER,
+  pattern GL_INT_SAMPLER_CUBE,
+  pattern GL_INT_SAMPLER_CUBE_MAP_ARRAY,
+  pattern GL_INT_VEC2,
+  pattern GL_INT_VEC3,
+  pattern GL_INT_VEC4,
+  pattern GL_INVALID_ENUM,
+  pattern GL_INVALID_FRAMEBUFFER_OPERATION,
+  pattern GL_INVALID_INDEX,
+  pattern GL_INVALID_OPERATION,
+  pattern GL_INVALID_VALUE,
+  pattern GL_INVERT,
+  pattern GL_ISOLINES,
+  pattern GL_IS_PER_PATCH,
+  pattern GL_IS_ROW_MAJOR,
+  pattern GL_KEEP,
+  pattern GL_LAST_VERTEX_CONVENTION,
+  pattern GL_LAYER_PROVOKING_VERTEX,
+  pattern GL_LEFT,
+  pattern GL_LEQUAL,
+  pattern GL_LESS,
+  pattern GL_LINE,
+  pattern GL_LINEAR,
+  pattern GL_LINEAR_MIPMAP_LINEAR,
+  pattern GL_LINEAR_MIPMAP_NEAREST,
+  pattern GL_LINES,
+  pattern GL_LINES_ADJACENCY,
+  pattern GL_LINE_LOOP,
+  pattern GL_LINE_SMOOTH,
+  pattern GL_LINE_SMOOTH_HINT,
+  pattern GL_LINE_STRIP,
+  pattern GL_LINE_STRIP_ADJACENCY,
+  pattern GL_LINE_WIDTH,
+  pattern GL_LINE_WIDTH_GRANULARITY,
+  pattern GL_LINE_WIDTH_RANGE,
+  pattern GL_LINK_STATUS,
+  pattern GL_LOCATION,
+  pattern GL_LOCATION_COMPONENT,
+  pattern GL_LOCATION_INDEX,
+  pattern GL_LOGIC_OP_MODE,
+  pattern GL_LOWER_LEFT,
+  pattern GL_LOW_FLOAT,
+  pattern GL_LOW_INT,
+  pattern GL_MAJOR_VERSION,
+  pattern GL_MANUAL_GENERATE_MIPMAP,
+  pattern GL_MAP_COHERENT_BIT,
+  pattern GL_MAP_FLUSH_EXPLICIT_BIT,
+  pattern GL_MAP_INVALIDATE_BUFFER_BIT,
+  pattern GL_MAP_INVALIDATE_RANGE_BIT,
+  pattern GL_MAP_PERSISTENT_BIT,
+  pattern GL_MAP_READ_BIT,
+  pattern GL_MAP_UNSYNCHRONIZED_BIT,
+  pattern GL_MAP_WRITE_BIT,
+  pattern GL_MATRIX_STRIDE,
+  pattern GL_MAX,
+  pattern GL_MAX_3D_TEXTURE_SIZE,
+  pattern GL_MAX_ARRAY_TEXTURE_LAYERS,
+  pattern GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS,
+  pattern GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE,
+  pattern GL_MAX_CLIP_DISTANCES,
+  pattern GL_MAX_COLOR_ATTACHMENTS,
+  pattern GL_MAX_COLOR_TEXTURE_SAMPLES,
+  pattern GL_MAX_COMBINED_ATOMIC_COUNTERS,
+  pattern GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_DIMENSIONS,
+  pattern GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_IMAGE_UNIFORMS,
+  pattern GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS,
+  pattern GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES,
+  pattern GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_COMBINED_UNIFORM_BLOCKS,
+  pattern GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMPUTE_ATOMIC_COUNTERS,
+  pattern GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_COMPUTE_IMAGE_UNIFORMS,
+  pattern GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_COMPUTE_SHARED_MEMORY_SIZE,
+  pattern GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_COMPUTE_UNIFORM_BLOCKS,
+  pattern GL_MAX_COMPUTE_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMPUTE_WORK_GROUP_COUNT,
+  pattern GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS,
+  pattern GL_MAX_COMPUTE_WORK_GROUP_SIZE,
+  pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE,
+  pattern GL_MAX_DEBUG_GROUP_STACK_DEPTH,
+  pattern GL_MAX_DEBUG_LOGGED_MESSAGES,
+  pattern GL_MAX_DEBUG_MESSAGE_LENGTH,
+  pattern GL_MAX_DEPTH,
+  pattern GL_MAX_DEPTH_TEXTURE_SAMPLES,
+  pattern GL_MAX_DRAW_BUFFERS,
+  pattern GL_MAX_DUAL_SOURCE_DRAW_BUFFERS,
+  pattern GL_MAX_ELEMENTS_INDICES,
+  pattern GL_MAX_ELEMENTS_VERTICES,
+  pattern GL_MAX_ELEMENT_INDEX,
+  pattern GL_MAX_FRAGMENT_ATOMIC_COUNTERS,
+  pattern GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_FRAGMENT_IMAGE_UNIFORMS,
+  pattern GL_MAX_FRAGMENT_INPUT_COMPONENTS,
+  pattern GL_MAX_FRAGMENT_INTERPOLATION_OFFSET,
+  pattern GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_FRAGMENT_UNIFORM_BLOCKS,
+  pattern GL_MAX_FRAGMENT_UNIFORM_COMPONENTS,
+  pattern GL_MAX_FRAGMENT_UNIFORM_VECTORS,
+  pattern GL_MAX_FRAMEBUFFER_HEIGHT,
+  pattern GL_MAX_FRAMEBUFFER_LAYERS,
+  pattern GL_MAX_FRAMEBUFFER_SAMPLES,
+  pattern GL_MAX_FRAMEBUFFER_WIDTH,
+  pattern GL_MAX_GEOMETRY_ATOMIC_COUNTERS,
+  pattern GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_GEOMETRY_IMAGE_UNIFORMS,
+  pattern GL_MAX_GEOMETRY_INPUT_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_OUTPUT_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_OUTPUT_VERTICES,
+  pattern GL_MAX_GEOMETRY_SHADER_INVOCATIONS,
+  pattern GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_UNIFORM_BLOCKS,
+  pattern GL_MAX_GEOMETRY_UNIFORM_COMPONENTS,
+  pattern GL_MAX_HEIGHT,
+  pattern GL_MAX_IMAGE_SAMPLES,
+  pattern GL_MAX_IMAGE_UNITS,
+  pattern GL_MAX_INTEGER_SAMPLES,
+  pattern GL_MAX_LABEL_LENGTH,
+  pattern GL_MAX_LAYERS,
+  pattern GL_MAX_NAME_LENGTH,
+  pattern GL_MAX_NUM_ACTIVE_VARIABLES,
+  pattern GL_MAX_NUM_COMPATIBLE_SUBROUTINES,
+  pattern GL_MAX_PATCH_VERTICES,
+  pattern GL_MAX_PROGRAM_TEXEL_OFFSET,
+  pattern GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET,
+  pattern GL_MAX_RECTANGLE_TEXTURE_SIZE,
+  pattern GL_MAX_RENDERBUFFER_SIZE,
+  pattern GL_MAX_SAMPLES,
+  pattern GL_MAX_SAMPLE_MASK_WORDS,
+  pattern GL_MAX_SERVER_WAIT_TIMEOUT,
+  pattern GL_MAX_SHADER_STORAGE_BLOCK_SIZE,
+  pattern GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS,
+  pattern GL_MAX_SUBROUTINES,
+  pattern GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS,
+  pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS,
+  pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS,
+  pattern GL_MAX_TESS_CONTROL_INPUT_COMPONENTS,
+  pattern GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS,
+  pattern GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS,
+  pattern GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS,
+  pattern GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS,
+  pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS,
+  pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS,
+  pattern GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS,
+  pattern GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS,
+  pattern GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS,
+  pattern GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS,
+  pattern GL_MAX_TESS_GEN_LEVEL,
+  pattern GL_MAX_TESS_PATCH_COMPONENTS,
+  pattern GL_MAX_TEXTURE_BUFFER_SIZE,
+  pattern GL_MAX_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_TEXTURE_LOD_BIAS,
+  pattern GL_MAX_TEXTURE_SIZE,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_BUFFERS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS,
+  pattern GL_MAX_UNIFORM_BLOCK_SIZE,
+  pattern GL_MAX_UNIFORM_BUFFER_BINDINGS,
+  pattern GL_MAX_UNIFORM_LOCATIONS,
+  pattern GL_MAX_VARYING_COMPONENTS,
+  pattern GL_MAX_VARYING_FLOATS,
+  pattern GL_MAX_VARYING_VECTORS,
+  pattern GL_MAX_VERTEX_ATOMIC_COUNTERS,
+  pattern GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_VERTEX_ATTRIBS,
+  pattern GL_MAX_VERTEX_ATTRIB_BINDINGS,
+  pattern GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET,
+  pattern GL_MAX_VERTEX_ATTRIB_STRIDE,
+  pattern GL_MAX_VERTEX_IMAGE_UNIFORMS,
+  pattern GL_MAX_VERTEX_OUTPUT_COMPONENTS,
+  pattern GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_VERTEX_STREAMS,
+  pattern GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_VERTEX_UNIFORM_BLOCKS,
+  pattern GL_MAX_VERTEX_UNIFORM_COMPONENTS,
+  pattern GL_MAX_VERTEX_UNIFORM_VECTORS,
+  pattern GL_MAX_VIEWPORTS,
+  pattern GL_MAX_VIEWPORT_DIMS,
+  pattern GL_MAX_WIDTH,
+  pattern GL_MEDIUM_FLOAT,
+  pattern GL_MEDIUM_INT,
+  pattern GL_MIN,
+  pattern GL_MINOR_VERSION,
+  pattern GL_MIN_FRAGMENT_INTERPOLATION_OFFSET,
+  pattern GL_MIN_MAP_BUFFER_ALIGNMENT,
+  pattern GL_MIN_PROGRAM_TEXEL_OFFSET,
+  pattern GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET,
+  pattern GL_MIN_SAMPLE_SHADING_VALUE,
+  pattern GL_MIPMAP,
+  pattern GL_MIRRORED_REPEAT,
+  pattern GL_MIRROR_CLAMP_TO_EDGE,
+  pattern GL_MULTISAMPLE,
+  pattern GL_NAME_LENGTH,
+  pattern GL_NAND,
+  pattern GL_NEAREST,
+  pattern GL_NEAREST_MIPMAP_LINEAR,
+  pattern GL_NEAREST_MIPMAP_NEAREST,
+  pattern GL_NEVER,
+  pattern GL_NICEST,
+  pattern GL_NONE,
+  pattern GL_NOOP,
+  pattern GL_NOR,
+  pattern GL_NOTEQUAL,
+  pattern GL_NO_ERROR,
+  pattern GL_NUM_ACTIVE_VARIABLES,
+  pattern GL_NUM_COMPATIBLE_SUBROUTINES,
+  pattern GL_NUM_COMPRESSED_TEXTURE_FORMATS,
+  pattern GL_NUM_EXTENSIONS,
+  pattern GL_NUM_PROGRAM_BINARY_FORMATS,
+  pattern GL_NUM_SAMPLE_COUNTS,
+  pattern GL_NUM_SHADER_BINARY_FORMATS,
+  pattern GL_NUM_SHADING_LANGUAGE_VERSIONS,
+  pattern GL_OBJECT_TYPE,
+  pattern GL_OFFSET,
+  pattern GL_ONE,
+  pattern GL_ONE_MINUS_CONSTANT_ALPHA,
+  pattern GL_ONE_MINUS_CONSTANT_COLOR,
+  pattern GL_ONE_MINUS_DST_ALPHA,
+  pattern GL_ONE_MINUS_DST_COLOR,
+  pattern GL_ONE_MINUS_SRC1_ALPHA,
+  pattern GL_ONE_MINUS_SRC1_COLOR,
+  pattern GL_ONE_MINUS_SRC_ALPHA,
+  pattern GL_ONE_MINUS_SRC_COLOR,
+  pattern GL_OR,
+  pattern GL_OR_INVERTED,
+  pattern GL_OR_REVERSE,
+  pattern GL_OUT_OF_MEMORY,
+  pattern GL_PACK_ALIGNMENT,
+  pattern GL_PACK_COMPRESSED_BLOCK_DEPTH,
+  pattern GL_PACK_COMPRESSED_BLOCK_HEIGHT,
+  pattern GL_PACK_COMPRESSED_BLOCK_SIZE,
+  pattern GL_PACK_COMPRESSED_BLOCK_WIDTH,
+  pattern GL_PACK_IMAGE_HEIGHT,
+  pattern GL_PACK_LSB_FIRST,
+  pattern GL_PACK_ROW_LENGTH,
+  pattern GL_PACK_SKIP_IMAGES,
+  pattern GL_PACK_SKIP_PIXELS,
+  pattern GL_PACK_SKIP_ROWS,
+  pattern GL_PACK_SWAP_BYTES,
+  pattern GL_PATCHES,
+  pattern GL_PATCH_DEFAULT_INNER_LEVEL,
+  pattern GL_PATCH_DEFAULT_OUTER_LEVEL,
+  pattern GL_PATCH_VERTICES,
+  pattern GL_PIXEL_BUFFER_BARRIER_BIT,
+  pattern GL_PIXEL_PACK_BUFFER,
+  pattern GL_PIXEL_PACK_BUFFER_BINDING,
+  pattern GL_PIXEL_UNPACK_BUFFER,
+  pattern GL_PIXEL_UNPACK_BUFFER_BINDING,
+  pattern GL_POINT,
+  pattern GL_POINTS,
+  pattern GL_POINT_FADE_THRESHOLD_SIZE,
+  pattern GL_POINT_SIZE,
+  pattern GL_POINT_SIZE_GRANULARITY,
+  pattern GL_POINT_SIZE_RANGE,
+  pattern GL_POINT_SPRITE_COORD_ORIGIN,
+  pattern GL_POLYGON_MODE,
+  pattern GL_POLYGON_OFFSET_FACTOR,
+  pattern GL_POLYGON_OFFSET_FILL,
+  pattern GL_POLYGON_OFFSET_LINE,
+  pattern GL_POLYGON_OFFSET_POINT,
+  pattern GL_POLYGON_OFFSET_UNITS,
+  pattern GL_POLYGON_SMOOTH,
+  pattern GL_POLYGON_SMOOTH_HINT,
+  pattern GL_PRIMITIVES_GENERATED,
+  pattern GL_PRIMITIVE_RESTART,
+  pattern GL_PRIMITIVE_RESTART_FIXED_INDEX,
+  pattern GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED,
+  pattern GL_PRIMITIVE_RESTART_INDEX,
+  pattern GL_PROGRAM,
+  pattern GL_PROGRAM_BINARY_FORMATS,
+  pattern GL_PROGRAM_BINARY_LENGTH,
+  pattern GL_PROGRAM_BINARY_RETRIEVABLE_HINT,
+  pattern GL_PROGRAM_INPUT,
+  pattern GL_PROGRAM_OUTPUT,
+  pattern GL_PROGRAM_PIPELINE,
+  pattern GL_PROGRAM_PIPELINE_BINDING,
+  pattern GL_PROGRAM_POINT_SIZE,
+  pattern GL_PROGRAM_SEPARABLE,
+  pattern GL_PROVOKING_VERTEX,
+  pattern GL_PROXY_TEXTURE_1D,
+  pattern GL_PROXY_TEXTURE_1D_ARRAY,
+  pattern GL_PROXY_TEXTURE_2D,
+  pattern GL_PROXY_TEXTURE_2D_ARRAY,
+  pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE,
+  pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_PROXY_TEXTURE_3D,
+  pattern GL_PROXY_TEXTURE_CUBE_MAP,
+  pattern GL_PROXY_TEXTURE_CUBE_MAP_ARRAY,
+  pattern GL_PROXY_TEXTURE_RECTANGLE,
+  pattern GL_QUADS,
+  pattern GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION,
+  pattern GL_QUERY,
+  pattern GL_QUERY_BUFFER,
+  pattern GL_QUERY_BUFFER_BARRIER_BIT,
+  pattern GL_QUERY_BUFFER_BINDING,
+  pattern GL_QUERY_BY_REGION_NO_WAIT,
+  pattern GL_QUERY_BY_REGION_WAIT,
+  pattern GL_QUERY_COUNTER_BITS,
+  pattern GL_QUERY_NO_WAIT,
+  pattern GL_QUERY_RESULT,
+  pattern GL_QUERY_RESULT_AVAILABLE,
+  pattern GL_QUERY_RESULT_NO_WAIT,
+  pattern GL_QUERY_WAIT,
+  pattern GL_R11F_G11F_B10F,
+  pattern GL_R16,
+  pattern GL_R16F,
+  pattern GL_R16I,
+  pattern GL_R16UI,
+  pattern GL_R16_SNORM,
+  pattern GL_R32F,
+  pattern GL_R32I,
+  pattern GL_R32UI,
+  pattern GL_R3_G3_B2,
+  pattern GL_R8,
+  pattern GL_R8I,
+  pattern GL_R8UI,
+  pattern GL_R8_SNORM,
+  pattern GL_RASTERIZER_DISCARD,
+  pattern GL_READ_BUFFER,
+  pattern GL_READ_FRAMEBUFFER,
+  pattern GL_READ_FRAMEBUFFER_BINDING,
+  pattern GL_READ_ONLY,
+  pattern GL_READ_PIXELS,
+  pattern GL_READ_PIXELS_FORMAT,
+  pattern GL_READ_PIXELS_TYPE,
+  pattern GL_READ_WRITE,
+  pattern GL_RED,
+  pattern GL_RED_INTEGER,
+  pattern GL_REFERENCED_BY_COMPUTE_SHADER,
+  pattern GL_REFERENCED_BY_FRAGMENT_SHADER,
+  pattern GL_REFERENCED_BY_GEOMETRY_SHADER,
+  pattern GL_REFERENCED_BY_TESS_CONTROL_SHADER,
+  pattern GL_REFERENCED_BY_TESS_EVALUATION_SHADER,
+  pattern GL_REFERENCED_BY_VERTEX_SHADER,
+  pattern GL_RENDERBUFFER,
+  pattern GL_RENDERBUFFER_ALPHA_SIZE,
+  pattern GL_RENDERBUFFER_BINDING,
+  pattern GL_RENDERBUFFER_BLUE_SIZE,
+  pattern GL_RENDERBUFFER_DEPTH_SIZE,
+  pattern GL_RENDERBUFFER_GREEN_SIZE,
+  pattern GL_RENDERBUFFER_HEIGHT,
+  pattern GL_RENDERBUFFER_INTERNAL_FORMAT,
+  pattern GL_RENDERBUFFER_RED_SIZE,
+  pattern GL_RENDERBUFFER_SAMPLES,
+  pattern GL_RENDERBUFFER_STENCIL_SIZE,
+  pattern GL_RENDERBUFFER_WIDTH,
+  pattern GL_RENDERER,
+  pattern GL_REPEAT,
+  pattern GL_REPLACE,
+  pattern GL_RG,
+  pattern GL_RG16,
+  pattern GL_RG16F,
+  pattern GL_RG16I,
+  pattern GL_RG16UI,
+  pattern GL_RG16_SNORM,
+  pattern GL_RG32F,
+  pattern GL_RG32I,
+  pattern GL_RG32UI,
+  pattern GL_RG8,
+  pattern GL_RG8I,
+  pattern GL_RG8UI,
+  pattern GL_RG8_SNORM,
+  pattern GL_RGB,
+  pattern GL_RGB10,
+  pattern GL_RGB10_A2,
+  pattern GL_RGB10_A2UI,
+  pattern GL_RGB12,
+  pattern GL_RGB16,
+  pattern GL_RGB16F,
+  pattern GL_RGB16I,
+  pattern GL_RGB16UI,
+  pattern GL_RGB16_SNORM,
+  pattern GL_RGB32F,
+  pattern GL_RGB32I,
+  pattern GL_RGB32UI,
+  pattern GL_RGB4,
+  pattern GL_RGB5,
+  pattern GL_RGB565,
+  pattern GL_RGB5_A1,
+  pattern GL_RGB8,
+  pattern GL_RGB8I,
+  pattern GL_RGB8UI,
+  pattern GL_RGB8_SNORM,
+  pattern GL_RGB9_E5,
+  pattern GL_RGBA,
+  pattern GL_RGBA12,
+  pattern GL_RGBA16,
+  pattern GL_RGBA16F,
+  pattern GL_RGBA16I,
+  pattern GL_RGBA16UI,
+  pattern GL_RGBA16_SNORM,
+  pattern GL_RGBA2,
+  pattern GL_RGBA32F,
+  pattern GL_RGBA32I,
+  pattern GL_RGBA32UI,
+  pattern GL_RGBA4,
+  pattern GL_RGBA8,
+  pattern GL_RGBA8I,
+  pattern GL_RGBA8UI,
+  pattern GL_RGBA8_SNORM,
+  pattern GL_RGBA_INTEGER,
+  pattern GL_RGB_INTEGER,
+  pattern GL_RG_INTEGER,
+  pattern GL_RIGHT,
+  pattern GL_SAMPLER,
+  pattern GL_SAMPLER_1D,
+  pattern GL_SAMPLER_1D_ARRAY,
+  pattern GL_SAMPLER_1D_ARRAY_SHADOW,
+  pattern GL_SAMPLER_1D_SHADOW,
+  pattern GL_SAMPLER_2D,
+  pattern GL_SAMPLER_2D_ARRAY,
+  pattern GL_SAMPLER_2D_ARRAY_SHADOW,
+  pattern GL_SAMPLER_2D_MULTISAMPLE,
+  pattern GL_SAMPLER_2D_MULTISAMPLE_ARRAY,
+  pattern GL_SAMPLER_2D_RECT,
+  pattern GL_SAMPLER_2D_RECT_SHADOW,
+  pattern GL_SAMPLER_2D_SHADOW,
+  pattern GL_SAMPLER_3D,
+  pattern GL_SAMPLER_BINDING,
+  pattern GL_SAMPLER_BUFFER,
+  pattern GL_SAMPLER_CUBE,
+  pattern GL_SAMPLER_CUBE_MAP_ARRAY,
+  pattern GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW,
+  pattern GL_SAMPLER_CUBE_SHADOW,
+  pattern GL_SAMPLES,
+  pattern GL_SAMPLES_PASSED,
+  pattern GL_SAMPLE_ALPHA_TO_COVERAGE,
+  pattern GL_SAMPLE_ALPHA_TO_ONE,
+  pattern GL_SAMPLE_BUFFERS,
+  pattern GL_SAMPLE_COVERAGE,
+  pattern GL_SAMPLE_COVERAGE_INVERT,
+  pattern GL_SAMPLE_COVERAGE_VALUE,
+  pattern GL_SAMPLE_MASK,
+  pattern GL_SAMPLE_MASK_VALUE,
+  pattern GL_SAMPLE_POSITION,
+  pattern GL_SAMPLE_SHADING,
+  pattern GL_SCISSOR_BOX,
+  pattern GL_SCISSOR_TEST,
+  pattern GL_SEPARATE_ATTRIBS,
+  pattern GL_SET,
+  pattern GL_SHADER,
+  pattern GL_SHADER_BINARY_FORMATS,
+  pattern GL_SHADER_COMPILER,
+  pattern GL_SHADER_IMAGE_ACCESS_BARRIER_BIT,
+  pattern GL_SHADER_IMAGE_ATOMIC,
+  pattern GL_SHADER_IMAGE_LOAD,
+  pattern GL_SHADER_IMAGE_STORE,
+  pattern GL_SHADER_SOURCE_LENGTH,
+  pattern GL_SHADER_STORAGE_BARRIER_BIT,
+  pattern GL_SHADER_STORAGE_BLOCK,
+  pattern GL_SHADER_STORAGE_BUFFER,
+  pattern GL_SHADER_STORAGE_BUFFER_BINDING,
+  pattern GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT,
+  pattern GL_SHADER_STORAGE_BUFFER_SIZE,
+  pattern GL_SHADER_STORAGE_BUFFER_START,
+  pattern GL_SHADER_TYPE,
+  pattern GL_SHADING_LANGUAGE_VERSION,
+  pattern GL_SHORT,
+  pattern GL_SIGNALED,
+  pattern GL_SIGNED_NORMALIZED,
+  pattern GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST,
+  pattern GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE,
+  pattern GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST,
+  pattern GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE,
+  pattern GL_SMOOTH_LINE_WIDTH_GRANULARITY,
+  pattern GL_SMOOTH_LINE_WIDTH_RANGE,
+  pattern GL_SMOOTH_POINT_SIZE_GRANULARITY,
+  pattern GL_SMOOTH_POINT_SIZE_RANGE,
+  pattern GL_SRC1_ALPHA,
+  pattern GL_SRC1_COLOR,
+  pattern GL_SRC_ALPHA,
+  pattern GL_SRC_ALPHA_SATURATE,
+  pattern GL_SRC_COLOR,
+  pattern GL_SRGB,
+  pattern GL_SRGB8,
+  pattern GL_SRGB8_ALPHA8,
+  pattern GL_SRGB_ALPHA,
+  pattern GL_SRGB_READ,
+  pattern GL_SRGB_WRITE,
+  pattern GL_STACK_OVERFLOW,
+  pattern GL_STACK_UNDERFLOW,
+  pattern GL_STATIC_COPY,
+  pattern GL_STATIC_DRAW,
+  pattern GL_STATIC_READ,
+  pattern GL_STENCIL,
+  pattern GL_STENCIL_ATTACHMENT,
+  pattern GL_STENCIL_BACK_FAIL,
+  pattern GL_STENCIL_BACK_FUNC,
+  pattern GL_STENCIL_BACK_PASS_DEPTH_FAIL,
+  pattern GL_STENCIL_BACK_PASS_DEPTH_PASS,
+  pattern GL_STENCIL_BACK_REF,
+  pattern GL_STENCIL_BACK_VALUE_MASK,
+  pattern GL_STENCIL_BACK_WRITEMASK,
+  pattern GL_STENCIL_BUFFER_BIT,
+  pattern GL_STENCIL_CLEAR_VALUE,
+  pattern GL_STENCIL_COMPONENTS,
+  pattern GL_STENCIL_FAIL,
+  pattern GL_STENCIL_FUNC,
+  pattern GL_STENCIL_INDEX,
+  pattern GL_STENCIL_INDEX1,
+  pattern GL_STENCIL_INDEX16,
+  pattern GL_STENCIL_INDEX4,
+  pattern GL_STENCIL_INDEX8,
+  pattern GL_STENCIL_PASS_DEPTH_FAIL,
+  pattern GL_STENCIL_PASS_DEPTH_PASS,
+  pattern GL_STENCIL_REF,
+  pattern GL_STENCIL_RENDERABLE,
+  pattern GL_STENCIL_TEST,
+  pattern GL_STENCIL_VALUE_MASK,
+  pattern GL_STENCIL_WRITEMASK,
+  pattern GL_STEREO,
+  pattern GL_STREAM_COPY,
+  pattern GL_STREAM_DRAW,
+  pattern GL_STREAM_READ,
+  pattern GL_SUBPIXEL_BITS,
+  pattern GL_SYNC_CONDITION,
+  pattern GL_SYNC_FENCE,
+  pattern GL_SYNC_FLAGS,
+  pattern GL_SYNC_FLUSH_COMMANDS_BIT,
+  pattern GL_SYNC_GPU_COMMANDS_COMPLETE,
+  pattern GL_SYNC_STATUS,
+  pattern GL_TESS_CONTROL_OUTPUT_VERTICES,
+  pattern GL_TESS_CONTROL_SHADER,
+  pattern GL_TESS_CONTROL_SHADER_BIT,
+  pattern GL_TESS_CONTROL_SUBROUTINE,
+  pattern GL_TESS_CONTROL_SUBROUTINE_UNIFORM,
+  pattern GL_TESS_CONTROL_TEXTURE,
+  pattern GL_TESS_EVALUATION_SHADER,
+  pattern GL_TESS_EVALUATION_SHADER_BIT,
+  pattern GL_TESS_EVALUATION_SUBROUTINE,
+  pattern GL_TESS_EVALUATION_SUBROUTINE_UNIFORM,
+  pattern GL_TESS_EVALUATION_TEXTURE,
+  pattern GL_TESS_GEN_MODE,
+  pattern GL_TESS_GEN_POINT_MODE,
+  pattern GL_TESS_GEN_SPACING,
+  pattern GL_TESS_GEN_VERTEX_ORDER,
+  pattern GL_TEXTURE,
+  pattern GL_TEXTURE0,
+  pattern GL_TEXTURE1,
+  pattern GL_TEXTURE10,
+  pattern GL_TEXTURE11,
+  pattern GL_TEXTURE12,
+  pattern GL_TEXTURE13,
+  pattern GL_TEXTURE14,
+  pattern GL_TEXTURE15,
+  pattern GL_TEXTURE16,
+  pattern GL_TEXTURE17,
+  pattern GL_TEXTURE18,
+  pattern GL_TEXTURE19,
+  pattern GL_TEXTURE2,
+  pattern GL_TEXTURE20,
+  pattern GL_TEXTURE21,
+  pattern GL_TEXTURE22,
+  pattern GL_TEXTURE23,
+  pattern GL_TEXTURE24,
+  pattern GL_TEXTURE25,
+  pattern GL_TEXTURE26,
+  pattern GL_TEXTURE27,
+  pattern GL_TEXTURE28,
+  pattern GL_TEXTURE29,
+  pattern GL_TEXTURE3,
+  pattern GL_TEXTURE30,
+  pattern GL_TEXTURE31,
+  pattern GL_TEXTURE4,
+  pattern GL_TEXTURE5,
+  pattern GL_TEXTURE6,
+  pattern GL_TEXTURE7,
+  pattern GL_TEXTURE8,
+  pattern GL_TEXTURE9,
+  pattern GL_TEXTURE_1D,
+  pattern GL_TEXTURE_1D_ARRAY,
+  pattern GL_TEXTURE_2D,
+  pattern GL_TEXTURE_2D_ARRAY,
+  pattern GL_TEXTURE_2D_MULTISAMPLE,
+  pattern GL_TEXTURE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_TEXTURE_3D,
+  pattern GL_TEXTURE_ALPHA_SIZE,
+  pattern GL_TEXTURE_ALPHA_TYPE,
+  pattern GL_TEXTURE_BASE_LEVEL,
+  pattern GL_TEXTURE_BINDING_1D,
+  pattern GL_TEXTURE_BINDING_1D_ARRAY,
+  pattern GL_TEXTURE_BINDING_2D,
+  pattern GL_TEXTURE_BINDING_2D_ARRAY,
+  pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE,
+  pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY,
+  pattern GL_TEXTURE_BINDING_3D,
+  pattern GL_TEXTURE_BINDING_BUFFER,
+  pattern GL_TEXTURE_BINDING_CUBE_MAP,
+  pattern GL_TEXTURE_BINDING_CUBE_MAP_ARRAY,
+  pattern GL_TEXTURE_BINDING_RECTANGLE,
+  pattern GL_TEXTURE_BLUE_SIZE,
+  pattern GL_TEXTURE_BLUE_TYPE,
+  pattern GL_TEXTURE_BORDER_COLOR,
+  pattern GL_TEXTURE_BUFFER,
+  pattern GL_TEXTURE_BUFFER_BINDING,
+  pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING,
+  pattern GL_TEXTURE_BUFFER_OFFSET,
+  pattern GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT,
+  pattern GL_TEXTURE_BUFFER_SIZE,
+  pattern GL_TEXTURE_COMPARE_FUNC,
+  pattern GL_TEXTURE_COMPARE_MODE,
+  pattern GL_TEXTURE_COMPRESSED,
+  pattern GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT,
+  pattern GL_TEXTURE_COMPRESSED_BLOCK_SIZE,
+  pattern GL_TEXTURE_COMPRESSED_BLOCK_WIDTH,
+  pattern GL_TEXTURE_COMPRESSED_IMAGE_SIZE,
+  pattern GL_TEXTURE_COMPRESSION_HINT,
+  pattern GL_TEXTURE_CUBE_MAP,
+  pattern GL_TEXTURE_CUBE_MAP_ARRAY,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z,
+  pattern GL_TEXTURE_CUBE_MAP_SEAMLESS,
+  pattern GL_TEXTURE_DEPTH,
+  pattern GL_TEXTURE_DEPTH_SIZE,
+  pattern GL_TEXTURE_DEPTH_TYPE,
+  pattern GL_TEXTURE_FETCH_BARRIER_BIT,
+  pattern GL_TEXTURE_FIXED_SAMPLE_LOCATIONS,
+  pattern GL_TEXTURE_GATHER,
+  pattern GL_TEXTURE_GATHER_SHADOW,
+  pattern GL_TEXTURE_GREEN_SIZE,
+  pattern GL_TEXTURE_GREEN_TYPE,
+  pattern GL_TEXTURE_HEIGHT,
+  pattern GL_TEXTURE_IMAGE_FORMAT,
+  pattern GL_TEXTURE_IMAGE_TYPE,
+  pattern GL_TEXTURE_IMMUTABLE_FORMAT,
+  pattern GL_TEXTURE_IMMUTABLE_LEVELS,
+  pattern GL_TEXTURE_INTERNAL_FORMAT,
+  pattern GL_TEXTURE_LOD_BIAS,
+  pattern GL_TEXTURE_MAG_FILTER,
+  pattern GL_TEXTURE_MAX_LEVEL,
+  pattern GL_TEXTURE_MAX_LOD,
+  pattern GL_TEXTURE_MIN_FILTER,
+  pattern GL_TEXTURE_MIN_LOD,
+  pattern GL_TEXTURE_RECTANGLE,
+  pattern GL_TEXTURE_RED_SIZE,
+  pattern GL_TEXTURE_RED_TYPE,
+  pattern GL_TEXTURE_SAMPLES,
+  pattern GL_TEXTURE_SHADOW,
+  pattern GL_TEXTURE_SHARED_SIZE,
+  pattern GL_TEXTURE_STENCIL_SIZE,
+  pattern GL_TEXTURE_SWIZZLE_A,
+  pattern GL_TEXTURE_SWIZZLE_B,
+  pattern GL_TEXTURE_SWIZZLE_G,
+  pattern GL_TEXTURE_SWIZZLE_R,
+  pattern GL_TEXTURE_SWIZZLE_RGBA,
+  pattern GL_TEXTURE_UPDATE_BARRIER_BIT,
+  pattern GL_TEXTURE_VIEW,
+  pattern GL_TEXTURE_VIEW_MIN_LAYER,
+  pattern GL_TEXTURE_VIEW_MIN_LEVEL,
+  pattern GL_TEXTURE_VIEW_NUM_LAYERS,
+  pattern GL_TEXTURE_VIEW_NUM_LEVELS,
+  pattern GL_TEXTURE_WIDTH,
+  pattern GL_TEXTURE_WRAP_R,
+  pattern GL_TEXTURE_WRAP_S,
+  pattern GL_TEXTURE_WRAP_T,
+  pattern GL_TIMEOUT_EXPIRED,
+  pattern GL_TIMEOUT_IGNORED,
+  pattern GL_TIMESTAMP,
+  pattern GL_TIME_ELAPSED,
+  pattern GL_TOP_LEVEL_ARRAY_SIZE,
+  pattern GL_TOP_LEVEL_ARRAY_STRIDE,
+  pattern GL_TRANSFORM_FEEDBACK,
+  pattern GL_TRANSFORM_FEEDBACK_ACTIVE,
+  pattern GL_TRANSFORM_FEEDBACK_BARRIER_BIT,
+  pattern GL_TRANSFORM_FEEDBACK_BINDING,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_BINDING,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_INDEX,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_MODE,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_SIZE,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_START,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE,
+  pattern GL_TRANSFORM_FEEDBACK_PAUSED,
+  pattern GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN,
+  pattern GL_TRANSFORM_FEEDBACK_VARYING,
+  pattern GL_TRANSFORM_FEEDBACK_VARYINGS,
+  pattern GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH,
+  pattern GL_TRIANGLES,
+  pattern GL_TRIANGLES_ADJACENCY,
+  pattern GL_TRIANGLE_FAN,
+  pattern GL_TRIANGLE_STRIP,
+  pattern GL_TRIANGLE_STRIP_ADJACENCY,
+  pattern GL_TRUE,
+  pattern GL_TYPE,
+  pattern GL_UNDEFINED_VERTEX,
+  pattern GL_UNIFORM,
+  pattern GL_UNIFORM_ARRAY_STRIDE,
+  pattern GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX,
+  pattern GL_UNIFORM_BARRIER_BIT,
+  pattern GL_UNIFORM_BLOCK,
+  pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS,
+  pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES,
+  pattern GL_UNIFORM_BLOCK_BINDING,
+  pattern GL_UNIFORM_BLOCK_DATA_SIZE,
+  pattern GL_UNIFORM_BLOCK_INDEX,
+  pattern GL_UNIFORM_BLOCK_NAME_LENGTH,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER,
+  pattern GL_UNIFORM_BUFFER,
+  pattern GL_UNIFORM_BUFFER_BINDING,
+  pattern GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT,
+  pattern GL_UNIFORM_BUFFER_SIZE,
+  pattern GL_UNIFORM_BUFFER_START,
+  pattern GL_UNIFORM_IS_ROW_MAJOR,
+  pattern GL_UNIFORM_MATRIX_STRIDE,
+  pattern GL_UNIFORM_NAME_LENGTH,
+  pattern GL_UNIFORM_OFFSET,
+  pattern GL_UNIFORM_SIZE,
+  pattern GL_UNIFORM_TYPE,
+  pattern GL_UNPACK_ALIGNMENT,
+  pattern GL_UNPACK_COMPRESSED_BLOCK_DEPTH,
+  pattern GL_UNPACK_COMPRESSED_BLOCK_HEIGHT,
+  pattern GL_UNPACK_COMPRESSED_BLOCK_SIZE,
+  pattern GL_UNPACK_COMPRESSED_BLOCK_WIDTH,
+  pattern GL_UNPACK_IMAGE_HEIGHT,
+  pattern GL_UNPACK_LSB_FIRST,
+  pattern GL_UNPACK_ROW_LENGTH,
+  pattern GL_UNPACK_SKIP_IMAGES,
+  pattern GL_UNPACK_SKIP_PIXELS,
+  pattern GL_UNPACK_SKIP_ROWS,
+  pattern GL_UNPACK_SWAP_BYTES,
+  pattern GL_UNSIGNALED,
+  pattern GL_UNSIGNED_BYTE,
+  pattern GL_UNSIGNED_BYTE_2_3_3_REV,
+  pattern GL_UNSIGNED_BYTE_3_3_2,
+  pattern GL_UNSIGNED_INT,
+  pattern GL_UNSIGNED_INT_10F_11F_11F_REV,
+  pattern GL_UNSIGNED_INT_10_10_10_2,
+  pattern GL_UNSIGNED_INT_24_8,
+  pattern GL_UNSIGNED_INT_2_10_10_10_REV,
+  pattern GL_UNSIGNED_INT_5_9_9_9_REV,
+  pattern GL_UNSIGNED_INT_8_8_8_8,
+  pattern GL_UNSIGNED_INT_8_8_8_8_REV,
+  pattern GL_UNSIGNED_INT_ATOMIC_COUNTER,
+  pattern GL_UNSIGNED_INT_IMAGE_1D,
+  pattern GL_UNSIGNED_INT_IMAGE_1D_ARRAY,
+  pattern GL_UNSIGNED_INT_IMAGE_2D,
+  pattern GL_UNSIGNED_INT_IMAGE_2D_ARRAY,
+  pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE,
+  pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_UNSIGNED_INT_IMAGE_2D_RECT,
+  pattern GL_UNSIGNED_INT_IMAGE_3D,
+  pattern GL_UNSIGNED_INT_IMAGE_BUFFER,
+  pattern GL_UNSIGNED_INT_IMAGE_CUBE,
+  pattern GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_1D,
+  pattern GL_UNSIGNED_INT_SAMPLER_1D_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_RECT,
+  pattern GL_UNSIGNED_INT_SAMPLER_3D,
+  pattern GL_UNSIGNED_INT_SAMPLER_BUFFER,
+  pattern GL_UNSIGNED_INT_SAMPLER_CUBE,
+  pattern GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY,
+  pattern GL_UNSIGNED_INT_VEC2,
+  pattern GL_UNSIGNED_INT_VEC3,
+  pattern GL_UNSIGNED_INT_VEC4,
+  pattern GL_UNSIGNED_NORMALIZED,
+  pattern GL_UNSIGNED_SHORT,
+  pattern GL_UNSIGNED_SHORT_1_5_5_5_REV,
+  pattern GL_UNSIGNED_SHORT_4_4_4_4,
+  pattern GL_UNSIGNED_SHORT_4_4_4_4_REV,
+  pattern GL_UNSIGNED_SHORT_5_5_5_1,
+  pattern GL_UNSIGNED_SHORT_5_6_5,
+  pattern GL_UNSIGNED_SHORT_5_6_5_REV,
+  pattern GL_UPPER_LEFT,
+  pattern GL_VALIDATE_STATUS,
+  pattern GL_VENDOR,
+  pattern GL_VERSION,
+  pattern GL_VERTEX_ARRAY,
+  pattern GL_VERTEX_ARRAY_BINDING,
+  pattern GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT,
+  pattern GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING,
+  pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR,
+  pattern GL_VERTEX_ATTRIB_ARRAY_ENABLED,
+  pattern GL_VERTEX_ATTRIB_ARRAY_INTEGER,
+  pattern GL_VERTEX_ATTRIB_ARRAY_LONG,
+  pattern GL_VERTEX_ATTRIB_ARRAY_NORMALIZED,
+  pattern GL_VERTEX_ATTRIB_ARRAY_POINTER,
+  pattern GL_VERTEX_ATTRIB_ARRAY_SIZE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_STRIDE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_TYPE,
+  pattern GL_VERTEX_ATTRIB_BINDING,
+  pattern GL_VERTEX_ATTRIB_RELATIVE_OFFSET,
+  pattern GL_VERTEX_BINDING_BUFFER,
+  pattern GL_VERTEX_BINDING_DIVISOR,
+  pattern GL_VERTEX_BINDING_OFFSET,
+  pattern GL_VERTEX_BINDING_STRIDE,
+  pattern GL_VERTEX_PROGRAM_POINT_SIZE,
+  pattern GL_VERTEX_SHADER,
+  pattern GL_VERTEX_SHADER_BIT,
+  pattern GL_VERTEX_SUBROUTINE,
+  pattern GL_VERTEX_SUBROUTINE_UNIFORM,
+  pattern GL_VERTEX_TEXTURE,
+  pattern GL_VIEWPORT,
+  pattern GL_VIEWPORT_BOUNDS_RANGE,
+  pattern GL_VIEWPORT_INDEX_PROVOKING_VERTEX,
+  pattern GL_VIEWPORT_SUBPIXEL_BITS,
+  pattern GL_VIEW_CLASS_128_BITS,
+  pattern GL_VIEW_CLASS_16_BITS,
+  pattern GL_VIEW_CLASS_24_BITS,
+  pattern GL_VIEW_CLASS_32_BITS,
+  pattern GL_VIEW_CLASS_48_BITS,
+  pattern GL_VIEW_CLASS_64_BITS,
+  pattern GL_VIEW_CLASS_8_BITS,
+  pattern GL_VIEW_CLASS_96_BITS,
+  pattern GL_VIEW_CLASS_BPTC_FLOAT,
+  pattern GL_VIEW_CLASS_BPTC_UNORM,
+  pattern GL_VIEW_CLASS_RGTC1_RED,
+  pattern GL_VIEW_CLASS_RGTC2_RG,
+  pattern GL_VIEW_CLASS_S3TC_DXT1_RGB,
+  pattern GL_VIEW_CLASS_S3TC_DXT1_RGBA,
+  pattern GL_VIEW_CLASS_S3TC_DXT3_RGBA,
+  pattern GL_VIEW_CLASS_S3TC_DXT5_RGBA,
+  pattern GL_VIEW_COMPATIBILITY_CLASS,
+  pattern GL_WAIT_FAILED,
+  pattern GL_WRITE_ONLY,
+  pattern GL_XOR,
+  pattern GL_ZERO,
+  -- * Functions
+  glActiveShaderProgram,
+  glActiveTexture,
+  glAttachShader,
+  glBeginConditionalRender,
+  glBeginQuery,
+  glBeginQueryIndexed,
+  glBeginTransformFeedback,
+  glBindAttribLocation,
+  glBindBuffer,
+  glBindBufferBase,
+  glBindBufferRange,
+  glBindBuffersBase,
+  glBindBuffersRange,
+  glBindFragDataLocation,
+  glBindFragDataLocationIndexed,
+  glBindFramebuffer,
+  glBindImageTexture,
+  glBindImageTextures,
+  glBindProgramPipeline,
+  glBindRenderbuffer,
+  glBindSampler,
+  glBindSamplers,
+  glBindTexture,
+  glBindTextures,
+  glBindTransformFeedback,
+  glBindVertexArray,
+  glBindVertexBuffer,
+  glBindVertexBuffers,
+  glBlendColor,
+  glBlendEquation,
+  glBlendEquationSeparate,
+  glBlendEquationSeparatei,
+  glBlendEquationi,
+  glBlendFunc,
+  glBlendFuncSeparate,
+  glBlendFuncSeparatei,
+  glBlendFunci,
+  glBlitFramebuffer,
+  glBufferData,
+  glBufferStorage,
+  glBufferSubData,
+  glCheckFramebufferStatus,
+  glClampColor,
+  glClear,
+  glClearBufferData,
+  glClearBufferSubData,
+  glClearBufferfi,
+  glClearBufferfv,
+  glClearBufferiv,
+  glClearBufferuiv,
+  glClearColor,
+  glClearDepth,
+  glClearDepthf,
+  glClearStencil,
+  glClearTexImage,
+  glClearTexSubImage,
+  glClientWaitSync,
+  glColorMask,
+  glColorMaski,
+  glCompileShader,
+  glCompressedTexImage1D,
+  glCompressedTexImage2D,
+  glCompressedTexImage3D,
+  glCompressedTexSubImage1D,
+  glCompressedTexSubImage2D,
+  glCompressedTexSubImage3D,
+  glCopyBufferSubData,
+  glCopyImageSubData,
+  glCopyTexImage1D,
+  glCopyTexImage2D,
+  glCopyTexSubImage1D,
+  glCopyTexSubImage2D,
+  glCopyTexSubImage3D,
+  glCreateProgram,
+  glCreateShader,
+  glCreateShaderProgramv,
+  glCullFace,
+  glDebugMessageCallback,
+  glDebugMessageControl,
+  glDebugMessageInsert,
+  glDeleteBuffers,
+  glDeleteFramebuffers,
+  glDeleteProgram,
+  glDeleteProgramPipelines,
+  glDeleteQueries,
+  glDeleteRenderbuffers,
+  glDeleteSamplers,
+  glDeleteShader,
+  glDeleteSync,
+  glDeleteTextures,
+  glDeleteTransformFeedbacks,
+  glDeleteVertexArrays,
+  glDepthFunc,
+  glDepthMask,
+  glDepthRange,
+  glDepthRangeArrayv,
+  glDepthRangeIndexed,
+  glDepthRangef,
+  glDetachShader,
+  glDisable,
+  glDisableVertexAttribArray,
+  glDisablei,
+  glDispatchCompute,
+  glDispatchComputeIndirect,
+  glDrawArrays,
+  glDrawArraysIndirect,
+  glDrawArraysInstanced,
+  glDrawArraysInstancedBaseInstance,
+  glDrawBuffer,
+  glDrawBuffers,
+  glDrawElements,
+  glDrawElementsBaseVertex,
+  glDrawElementsIndirect,
+  glDrawElementsInstanced,
+  glDrawElementsInstancedBaseInstance,
+  glDrawElementsInstancedBaseVertex,
+  glDrawElementsInstancedBaseVertexBaseInstance,
+  glDrawRangeElements,
+  glDrawRangeElementsBaseVertex,
+  glDrawTransformFeedback,
+  glDrawTransformFeedbackInstanced,
+  glDrawTransformFeedbackStream,
+  glDrawTransformFeedbackStreamInstanced,
+  glEnable,
+  glEnableVertexAttribArray,
+  glEnablei,
+  glEndConditionalRender,
+  glEndQuery,
+  glEndQueryIndexed,
+  glEndTransformFeedback,
+  glFenceSync,
+  glFinish,
+  glFlush,
+  glFlushMappedBufferRange,
+  glFramebufferParameteri,
+  glFramebufferRenderbuffer,
+  glFramebufferTexture,
+  glFramebufferTexture1D,
+  glFramebufferTexture2D,
+  glFramebufferTexture3D,
+  glFramebufferTextureLayer,
+  glFrontFace,
+  glGenBuffers,
+  glGenFramebuffers,
+  glGenProgramPipelines,
+  glGenQueries,
+  glGenRenderbuffers,
+  glGenSamplers,
+  glGenTextures,
+  glGenTransformFeedbacks,
+  glGenVertexArrays,
+  glGenerateMipmap,
+  glGetActiveAtomicCounterBufferiv,
+  glGetActiveAttrib,
+  glGetActiveSubroutineName,
+  glGetActiveSubroutineUniformName,
+  glGetActiveSubroutineUniformiv,
+  glGetActiveUniform,
+  glGetActiveUniformBlockName,
+  glGetActiveUniformBlockiv,
+  glGetActiveUniformName,
+  glGetActiveUniformsiv,
+  glGetAttachedShaders,
+  glGetAttribLocation,
+  glGetBooleani_v,
+  glGetBooleanv,
+  glGetBufferParameteri64v,
+  glGetBufferParameteriv,
+  glGetBufferPointerv,
+  glGetBufferSubData,
+  glGetCompressedTexImage,
+  glGetDebugMessageLog,
+  glGetDoublei_v,
+  glGetDoublev,
+  glGetError,
+  glGetFloati_v,
+  glGetFloatv,
+  glGetFragDataIndex,
+  glGetFragDataLocation,
+  glGetFramebufferAttachmentParameteriv,
+  glGetFramebufferParameteriv,
+  glGetInteger64i_v,
+  glGetInteger64v,
+  glGetIntegeri_v,
+  glGetIntegerv,
+  glGetInternalformati64v,
+  glGetInternalformativ,
+  glGetMultisamplefv,
+  glGetObjectLabel,
+  glGetObjectPtrLabel,
+  glGetPointerv,
+  glGetProgramBinary,
+  glGetProgramInfoLog,
+  glGetProgramInterfaceiv,
+  glGetProgramPipelineInfoLog,
+  glGetProgramPipelineiv,
+  glGetProgramResourceIndex,
+  glGetProgramResourceLocation,
+  glGetProgramResourceLocationIndex,
+  glGetProgramResourceName,
+  glGetProgramResourceiv,
+  glGetProgramStageiv,
+  glGetProgramiv,
+  glGetQueryIndexediv,
+  glGetQueryObjecti64v,
+  glGetQueryObjectiv,
+  glGetQueryObjectui64v,
+  glGetQueryObjectuiv,
+  glGetQueryiv,
+  glGetRenderbufferParameteriv,
+  glGetSamplerParameterIiv,
+  glGetSamplerParameterIuiv,
+  glGetSamplerParameterfv,
+  glGetSamplerParameteriv,
+  glGetShaderInfoLog,
+  glGetShaderPrecisionFormat,
+  glGetShaderSource,
+  glGetShaderiv,
+  glGetString,
+  glGetStringi,
+  glGetSubroutineIndex,
+  glGetSubroutineUniformLocation,
+  glGetSynciv,
+  glGetTexImage,
+  glGetTexLevelParameterfv,
+  glGetTexLevelParameteriv,
+  glGetTexParameterIiv,
+  glGetTexParameterIuiv,
+  glGetTexParameterfv,
+  glGetTexParameteriv,
+  glGetTransformFeedbackVarying,
+  glGetUniformBlockIndex,
+  glGetUniformIndices,
+  glGetUniformLocation,
+  glGetUniformSubroutineuiv,
+  glGetUniformdv,
+  glGetUniformfv,
+  glGetUniformiv,
+  glGetUniformuiv,
+  glGetVertexAttribIiv,
+  glGetVertexAttribIuiv,
+  glGetVertexAttribLdv,
+  glGetVertexAttribPointerv,
+  glGetVertexAttribdv,
+  glGetVertexAttribfv,
+  glGetVertexAttribiv,
+  glHint,
+  glInvalidateBufferData,
+  glInvalidateBufferSubData,
+  glInvalidateFramebuffer,
+  glInvalidateSubFramebuffer,
+  glInvalidateTexImage,
+  glInvalidateTexSubImage,
+  glIsBuffer,
+  glIsEnabled,
+  glIsEnabledi,
+  glIsFramebuffer,
+  glIsProgram,
+  glIsProgramPipeline,
+  glIsQuery,
+  glIsRenderbuffer,
+  glIsSampler,
+  glIsShader,
+  glIsSync,
+  glIsTexture,
+  glIsTransformFeedback,
+  glIsVertexArray,
+  glLineWidth,
+  glLinkProgram,
+  glLogicOp,
+  glMapBuffer,
+  glMapBufferRange,
+  glMemoryBarrier,
+  glMinSampleShading,
+  glMultiDrawArrays,
+  glMultiDrawArraysIndirect,
+  glMultiDrawElements,
+  glMultiDrawElementsBaseVertex,
+  glMultiDrawElementsIndirect,
+  glObjectLabel,
+  glObjectPtrLabel,
+  glPatchParameterfv,
+  glPatchParameteri,
+  glPauseTransformFeedback,
+  glPixelStoref,
+  glPixelStorei,
+  glPointParameterf,
+  glPointParameterfv,
+  glPointParameteri,
+  glPointParameteriv,
+  glPointSize,
+  glPolygonMode,
+  glPolygonOffset,
+  glPopDebugGroup,
+  glPrimitiveRestartIndex,
+  glProgramBinary,
+  glProgramParameteri,
+  glProgramUniform1d,
+  glProgramUniform1dv,
+  glProgramUniform1f,
+  glProgramUniform1fv,
+  glProgramUniform1i,
+  glProgramUniform1iv,
+  glProgramUniform1ui,
+  glProgramUniform1uiv,
+  glProgramUniform2d,
+  glProgramUniform2dv,
+  glProgramUniform2f,
+  glProgramUniform2fv,
+  glProgramUniform2i,
+  glProgramUniform2iv,
+  glProgramUniform2ui,
+  glProgramUniform2uiv,
+  glProgramUniform3d,
+  glProgramUniform3dv,
+  glProgramUniform3f,
+  glProgramUniform3fv,
+  glProgramUniform3i,
+  glProgramUniform3iv,
+  glProgramUniform3ui,
+  glProgramUniform3uiv,
+  glProgramUniform4d,
+  glProgramUniform4dv,
+  glProgramUniform4f,
+  glProgramUniform4fv,
+  glProgramUniform4i,
+  glProgramUniform4iv,
+  glProgramUniform4ui,
+  glProgramUniform4uiv,
+  glProgramUniformMatrix2dv,
+  glProgramUniformMatrix2fv,
+  glProgramUniformMatrix2x3dv,
+  glProgramUniformMatrix2x3fv,
+  glProgramUniformMatrix2x4dv,
+  glProgramUniformMatrix2x4fv,
+  glProgramUniformMatrix3dv,
+  glProgramUniformMatrix3fv,
+  glProgramUniformMatrix3x2dv,
+  glProgramUniformMatrix3x2fv,
+  glProgramUniformMatrix3x4dv,
+  glProgramUniformMatrix3x4fv,
+  glProgramUniformMatrix4dv,
+  glProgramUniformMatrix4fv,
+  glProgramUniformMatrix4x2dv,
+  glProgramUniformMatrix4x2fv,
+  glProgramUniformMatrix4x3dv,
+  glProgramUniformMatrix4x3fv,
+  glProvokingVertex,
+  glPushDebugGroup,
+  glQueryCounter,
+  glReadBuffer,
+  glReadPixels,
+  glReleaseShaderCompiler,
+  glRenderbufferStorage,
+  glRenderbufferStorageMultisample,
+  glResumeTransformFeedback,
+  glSampleCoverage,
+  glSampleMaski,
+  glSamplerParameterIiv,
+  glSamplerParameterIuiv,
+  glSamplerParameterf,
+  glSamplerParameterfv,
+  glSamplerParameteri,
+  glSamplerParameteriv,
+  glScissor,
+  glScissorArrayv,
+  glScissorIndexed,
+  glScissorIndexedv,
+  glShaderBinary,
+  glShaderSource,
+  glShaderStorageBlockBinding,
+  glStencilFunc,
+  glStencilFuncSeparate,
+  glStencilMask,
+  glStencilMaskSeparate,
+  glStencilOp,
+  glStencilOpSeparate,
+  glTexBuffer,
+  glTexBufferRange,
+  glTexImage1D,
+  glTexImage2D,
+  glTexImage2DMultisample,
+  glTexImage3D,
+  glTexImage3DMultisample,
+  glTexParameterIiv,
+  glTexParameterIuiv,
+  glTexParameterf,
+  glTexParameterfv,
+  glTexParameteri,
+  glTexParameteriv,
+  glTexStorage1D,
+  glTexStorage2D,
+  glTexStorage2DMultisample,
+  glTexStorage3D,
+  glTexStorage3DMultisample,
+  glTexSubImage1D,
+  glTexSubImage2D,
+  glTexSubImage3D,
+  glTextureView,
+  glTransformFeedbackVaryings,
+  glUniform1d,
+  glUniform1dv,
+  glUniform1f,
+  glUniform1fv,
+  glUniform1i,
+  glUniform1iv,
+  glUniform1ui,
+  glUniform1uiv,
+  glUniform2d,
+  glUniform2dv,
+  glUniform2f,
+  glUniform2fv,
+  glUniform2i,
+  glUniform2iv,
+  glUniform2ui,
+  glUniform2uiv,
+  glUniform3d,
+  glUniform3dv,
+  glUniform3f,
+  glUniform3fv,
+  glUniform3i,
+  glUniform3iv,
+  glUniform3ui,
+  glUniform3uiv,
+  glUniform4d,
+  glUniform4dv,
+  glUniform4f,
+  glUniform4fv,
+  glUniform4i,
+  glUniform4iv,
+  glUniform4ui,
+  glUniform4uiv,
+  glUniformBlockBinding,
+  glUniformMatrix2dv,
+  glUniformMatrix2fv,
+  glUniformMatrix2x3dv,
+  glUniformMatrix2x3fv,
+  glUniformMatrix2x4dv,
+  glUniformMatrix2x4fv,
+  glUniformMatrix3dv,
+  glUniformMatrix3fv,
+  glUniformMatrix3x2dv,
+  glUniformMatrix3x2fv,
+  glUniformMatrix3x4dv,
+  glUniformMatrix3x4fv,
+  glUniformMatrix4dv,
+  glUniformMatrix4fv,
+  glUniformMatrix4x2dv,
+  glUniformMatrix4x2fv,
+  glUniformMatrix4x3dv,
+  glUniformMatrix4x3fv,
+  glUniformSubroutinesuiv,
+  glUnmapBuffer,
+  glUseProgram,
+  glUseProgramStages,
+  glValidateProgram,
+  glValidateProgramPipeline,
+  glVertexAttrib1d,
+  glVertexAttrib1dv,
+  glVertexAttrib1f,
+  glVertexAttrib1fv,
+  glVertexAttrib1s,
+  glVertexAttrib1sv,
+  glVertexAttrib2d,
+  glVertexAttrib2dv,
+  glVertexAttrib2f,
+  glVertexAttrib2fv,
+  glVertexAttrib2s,
+  glVertexAttrib2sv,
+  glVertexAttrib3d,
+  glVertexAttrib3dv,
+  glVertexAttrib3f,
+  glVertexAttrib3fv,
+  glVertexAttrib3s,
+  glVertexAttrib3sv,
+  glVertexAttrib4Nbv,
+  glVertexAttrib4Niv,
+  glVertexAttrib4Nsv,
+  glVertexAttrib4Nub,
+  glVertexAttrib4Nubv,
+  glVertexAttrib4Nuiv,
+  glVertexAttrib4Nusv,
+  glVertexAttrib4bv,
+  glVertexAttrib4d,
+  glVertexAttrib4dv,
+  glVertexAttrib4f,
+  glVertexAttrib4fv,
+  glVertexAttrib4iv,
+  glVertexAttrib4s,
+  glVertexAttrib4sv,
+  glVertexAttrib4ubv,
+  glVertexAttrib4uiv,
+  glVertexAttrib4usv,
+  glVertexAttribBinding,
+  glVertexAttribDivisor,
+  glVertexAttribFormat,
+  glVertexAttribI1i,
+  glVertexAttribI1iv,
+  glVertexAttribI1ui,
+  glVertexAttribI1uiv,
+  glVertexAttribI2i,
+  glVertexAttribI2iv,
+  glVertexAttribI2ui,
+  glVertexAttribI2uiv,
+  glVertexAttribI3i,
+  glVertexAttribI3iv,
+  glVertexAttribI3ui,
+  glVertexAttribI3uiv,
+  glVertexAttribI4bv,
+  glVertexAttribI4i,
+  glVertexAttribI4iv,
+  glVertexAttribI4sv,
+  glVertexAttribI4ubv,
+  glVertexAttribI4ui,
+  glVertexAttribI4uiv,
+  glVertexAttribI4usv,
+  glVertexAttribIFormat,
+  glVertexAttribIPointer,
+  glVertexAttribL1d,
+  glVertexAttribL1dv,
+  glVertexAttribL2d,
+  glVertexAttribL2dv,
+  glVertexAttribL3d,
+  glVertexAttribL3dv,
+  glVertexAttribL4d,
+  glVertexAttribL4dv,
+  glVertexAttribLFormat,
+  glVertexAttribLPointer,
+  glVertexAttribP1ui,
+  glVertexAttribP1uiv,
+  glVertexAttribP2ui,
+  glVertexAttribP2uiv,
+  glVertexAttribP3ui,
+  glVertexAttribP3uiv,
+  glVertexAttribP4ui,
+  glVertexAttribP4uiv,
+  glVertexAttribPointer,
+  glVertexBindingDivisor,
+  glViewport,
+  glViewportArrayv,
+  glViewportIndexedf,
+  glViewportIndexedfv,
+  glWaitSync
+) where
+
+import Graphics.GL.Types
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/Core45.hs b/src/Graphics/GL/Core45.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Core45.hs
@@ -0,0 +1,2045 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Core45
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Core45 (
+  -- * Types
+  GLDEBUGPROC,
+  GLDEBUGPROCFunc,
+  GLbitfield,
+  GLboolean,
+  GLbyte,
+  GLchar,
+  GLclampd,
+  GLclampf,
+  GLdouble,
+  GLenum,
+  GLfloat,
+  GLhalf,
+  GLint,
+  GLint64,
+  GLintptr,
+  GLshort,
+  GLsizei,
+  GLsizeiptr,
+  GLsync,
+  GLubyte,
+  GLuint,
+  GLuint64,
+  GLushort,
+  GLvoid,
+  makeGLDEBUGPROC,
+  -- * Enums
+  pattern GL_ACTIVE_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_ACTIVE_ATTRIBUTES,
+  pattern GL_ACTIVE_ATTRIBUTE_MAX_LENGTH,
+  pattern GL_ACTIVE_PROGRAM,
+  pattern GL_ACTIVE_RESOURCES,
+  pattern GL_ACTIVE_SUBROUTINES,
+  pattern GL_ACTIVE_SUBROUTINE_MAX_LENGTH,
+  pattern GL_ACTIVE_SUBROUTINE_UNIFORMS,
+  pattern GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS,
+  pattern GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH,
+  pattern GL_ACTIVE_TEXTURE,
+  pattern GL_ACTIVE_UNIFORMS,
+  pattern GL_ACTIVE_UNIFORM_BLOCKS,
+  pattern GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH,
+  pattern GL_ACTIVE_UNIFORM_MAX_LENGTH,
+  pattern GL_ACTIVE_VARIABLES,
+  pattern GL_ALIASED_LINE_WIDTH_RANGE,
+  pattern GL_ALL_BARRIER_BITS,
+  pattern GL_ALL_SHADER_BITS,
+  pattern GL_ALPHA,
+  pattern GL_ALREADY_SIGNALED,
+  pattern GL_ALWAYS,
+  pattern GL_AND,
+  pattern GL_AND_INVERTED,
+  pattern GL_AND_REVERSE,
+  pattern GL_ANY_SAMPLES_PASSED,
+  pattern GL_ANY_SAMPLES_PASSED_CONSERVATIVE,
+  pattern GL_ARRAY_BUFFER,
+  pattern GL_ARRAY_BUFFER_BINDING,
+  pattern GL_ARRAY_SIZE,
+  pattern GL_ARRAY_STRIDE,
+  pattern GL_ATOMIC_COUNTER_BARRIER_BIT,
+  pattern GL_ATOMIC_COUNTER_BUFFER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS,
+  pattern GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES,
+  pattern GL_ATOMIC_COUNTER_BUFFER_BINDING,
+  pattern GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE,
+  pattern GL_ATOMIC_COUNTER_BUFFER_INDEX,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_SIZE,
+  pattern GL_ATOMIC_COUNTER_BUFFER_START,
+  pattern GL_ATTACHED_SHADERS,
+  pattern GL_AUTO_GENERATE_MIPMAP,
+  pattern GL_BACK,
+  pattern GL_BACK_LEFT,
+  pattern GL_BACK_RIGHT,
+  pattern GL_BGR,
+  pattern GL_BGRA,
+  pattern GL_BGRA_INTEGER,
+  pattern GL_BGR_INTEGER,
+  pattern GL_BLEND,
+  pattern GL_BLEND_COLOR,
+  pattern GL_BLEND_DST,
+  pattern GL_BLEND_DST_ALPHA,
+  pattern GL_BLEND_DST_RGB,
+  pattern GL_BLEND_EQUATION,
+  pattern GL_BLEND_EQUATION_ALPHA,
+  pattern GL_BLEND_EQUATION_RGB,
+  pattern GL_BLEND_SRC,
+  pattern GL_BLEND_SRC_ALPHA,
+  pattern GL_BLEND_SRC_RGB,
+  pattern GL_BLOCK_INDEX,
+  pattern GL_BLUE,
+  pattern GL_BLUE_INTEGER,
+  pattern GL_BOOL,
+  pattern GL_BOOL_VEC2,
+  pattern GL_BOOL_VEC3,
+  pattern GL_BOOL_VEC4,
+  pattern GL_BUFFER,
+  pattern GL_BUFFER_ACCESS,
+  pattern GL_BUFFER_ACCESS_FLAGS,
+  pattern GL_BUFFER_BINDING,
+  pattern GL_BUFFER_DATA_SIZE,
+  pattern GL_BUFFER_IMMUTABLE_STORAGE,
+  pattern GL_BUFFER_MAPPED,
+  pattern GL_BUFFER_MAP_LENGTH,
+  pattern GL_BUFFER_MAP_OFFSET,
+  pattern GL_BUFFER_MAP_POINTER,
+  pattern GL_BUFFER_SIZE,
+  pattern GL_BUFFER_STORAGE_FLAGS,
+  pattern GL_BUFFER_UPDATE_BARRIER_BIT,
+  pattern GL_BUFFER_USAGE,
+  pattern GL_BUFFER_VARIABLE,
+  pattern GL_BYTE,
+  pattern GL_CAVEAT_SUPPORT,
+  pattern GL_CCW,
+  pattern GL_CLAMP_READ_COLOR,
+  pattern GL_CLAMP_TO_BORDER,
+  pattern GL_CLAMP_TO_EDGE,
+  pattern GL_CLEAR,
+  pattern GL_CLEAR_BUFFER,
+  pattern GL_CLEAR_TEXTURE,
+  pattern GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT,
+  pattern GL_CLIENT_STORAGE_BIT,
+  pattern GL_CLIP_DEPTH_MODE,
+  pattern GL_CLIP_DISTANCE0,
+  pattern GL_CLIP_DISTANCE1,
+  pattern GL_CLIP_DISTANCE2,
+  pattern GL_CLIP_DISTANCE3,
+  pattern GL_CLIP_DISTANCE4,
+  pattern GL_CLIP_DISTANCE5,
+  pattern GL_CLIP_DISTANCE6,
+  pattern GL_CLIP_DISTANCE7,
+  pattern GL_CLIP_ORIGIN,
+  pattern GL_COLOR,
+  pattern GL_COLOR_ATTACHMENT0,
+  pattern GL_COLOR_ATTACHMENT1,
+  pattern GL_COLOR_ATTACHMENT10,
+  pattern GL_COLOR_ATTACHMENT11,
+  pattern GL_COLOR_ATTACHMENT12,
+  pattern GL_COLOR_ATTACHMENT13,
+  pattern GL_COLOR_ATTACHMENT14,
+  pattern GL_COLOR_ATTACHMENT15,
+  pattern GL_COLOR_ATTACHMENT16,
+  pattern GL_COLOR_ATTACHMENT17,
+  pattern GL_COLOR_ATTACHMENT18,
+  pattern GL_COLOR_ATTACHMENT19,
+  pattern GL_COLOR_ATTACHMENT2,
+  pattern GL_COLOR_ATTACHMENT20,
+  pattern GL_COLOR_ATTACHMENT21,
+  pattern GL_COLOR_ATTACHMENT22,
+  pattern GL_COLOR_ATTACHMENT23,
+  pattern GL_COLOR_ATTACHMENT24,
+  pattern GL_COLOR_ATTACHMENT25,
+  pattern GL_COLOR_ATTACHMENT26,
+  pattern GL_COLOR_ATTACHMENT27,
+  pattern GL_COLOR_ATTACHMENT28,
+  pattern GL_COLOR_ATTACHMENT29,
+  pattern GL_COLOR_ATTACHMENT3,
+  pattern GL_COLOR_ATTACHMENT30,
+  pattern GL_COLOR_ATTACHMENT31,
+  pattern GL_COLOR_ATTACHMENT4,
+  pattern GL_COLOR_ATTACHMENT5,
+  pattern GL_COLOR_ATTACHMENT6,
+  pattern GL_COLOR_ATTACHMENT7,
+  pattern GL_COLOR_ATTACHMENT8,
+  pattern GL_COLOR_ATTACHMENT9,
+  pattern GL_COLOR_BUFFER_BIT,
+  pattern GL_COLOR_CLEAR_VALUE,
+  pattern GL_COLOR_COMPONENTS,
+  pattern GL_COLOR_ENCODING,
+  pattern GL_COLOR_LOGIC_OP,
+  pattern GL_COLOR_RENDERABLE,
+  pattern GL_COLOR_WRITEMASK,
+  pattern GL_COMMAND_BARRIER_BIT,
+  pattern GL_COMPARE_REF_TO_TEXTURE,
+  pattern GL_COMPATIBLE_SUBROUTINES,
+  pattern GL_COMPILE_STATUS,
+  pattern GL_COMPRESSED_R11_EAC,
+  pattern GL_COMPRESSED_RED,
+  pattern GL_COMPRESSED_RED_RGTC1,
+  pattern GL_COMPRESSED_RG,
+  pattern GL_COMPRESSED_RG11_EAC,
+  pattern GL_COMPRESSED_RGB,
+  pattern GL_COMPRESSED_RGB8_ETC2,
+  pattern GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,
+  pattern GL_COMPRESSED_RGBA,
+  pattern GL_COMPRESSED_RGBA8_ETC2_EAC,
+  pattern GL_COMPRESSED_RGBA_BPTC_UNORM,
+  pattern GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT,
+  pattern GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT,
+  pattern GL_COMPRESSED_RG_RGTC2,
+  pattern GL_COMPRESSED_SIGNED_R11_EAC,
+  pattern GL_COMPRESSED_SIGNED_RED_RGTC1,
+  pattern GL_COMPRESSED_SIGNED_RG11_EAC,
+  pattern GL_COMPRESSED_SIGNED_RG_RGTC2,
+  pattern GL_COMPRESSED_SRGB,
+  pattern GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,
+  pattern GL_COMPRESSED_SRGB8_ETC2,
+  pattern GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,
+  pattern GL_COMPRESSED_SRGB_ALPHA,
+  pattern GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM,
+  pattern GL_COMPRESSED_TEXTURE_FORMATS,
+  pattern GL_COMPUTE_SHADER,
+  pattern GL_COMPUTE_SHADER_BIT,
+  pattern GL_COMPUTE_SUBROUTINE,
+  pattern GL_COMPUTE_SUBROUTINE_UNIFORM,
+  pattern GL_COMPUTE_TEXTURE,
+  pattern GL_COMPUTE_WORK_GROUP_SIZE,
+  pattern GL_CONDITION_SATISFIED,
+  pattern GL_CONSTANT_ALPHA,
+  pattern GL_CONSTANT_COLOR,
+  pattern GL_CONTEXT_COMPATIBILITY_PROFILE_BIT,
+  pattern GL_CONTEXT_CORE_PROFILE_BIT,
+  pattern GL_CONTEXT_FLAGS,
+  pattern GL_CONTEXT_FLAG_DEBUG_BIT,
+  pattern GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT,
+  pattern GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT,
+  pattern GL_CONTEXT_LOST,
+  pattern GL_CONTEXT_PROFILE_MASK,
+  pattern GL_CONTEXT_RELEASE_BEHAVIOR,
+  pattern GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH,
+  pattern GL_COPY,
+  pattern GL_COPY_INVERTED,
+  pattern GL_COPY_READ_BUFFER,
+  pattern GL_COPY_READ_BUFFER_BINDING,
+  pattern GL_COPY_WRITE_BUFFER,
+  pattern GL_COPY_WRITE_BUFFER_BINDING,
+  pattern GL_CULL_FACE,
+  pattern GL_CULL_FACE_MODE,
+  pattern GL_CURRENT_PROGRAM,
+  pattern GL_CURRENT_QUERY,
+  pattern GL_CURRENT_VERTEX_ATTRIB,
+  pattern GL_CW,
+  pattern GL_DEBUG_CALLBACK_FUNCTION,
+  pattern GL_DEBUG_CALLBACK_USER_PARAM,
+  pattern GL_DEBUG_GROUP_STACK_DEPTH,
+  pattern GL_DEBUG_LOGGED_MESSAGES,
+  pattern GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH,
+  pattern GL_DEBUG_OUTPUT,
+  pattern GL_DEBUG_OUTPUT_SYNCHRONOUS,
+  pattern GL_DEBUG_SEVERITY_HIGH,
+  pattern GL_DEBUG_SEVERITY_LOW,
+  pattern GL_DEBUG_SEVERITY_MEDIUM,
+  pattern GL_DEBUG_SEVERITY_NOTIFICATION,
+  pattern GL_DEBUG_SOURCE_API,
+  pattern GL_DEBUG_SOURCE_APPLICATION,
+  pattern GL_DEBUG_SOURCE_OTHER,
+  pattern GL_DEBUG_SOURCE_SHADER_COMPILER,
+  pattern GL_DEBUG_SOURCE_THIRD_PARTY,
+  pattern GL_DEBUG_SOURCE_WINDOW_SYSTEM,
+  pattern GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR,
+  pattern GL_DEBUG_TYPE_ERROR,
+  pattern GL_DEBUG_TYPE_MARKER,
+  pattern GL_DEBUG_TYPE_OTHER,
+  pattern GL_DEBUG_TYPE_PERFORMANCE,
+  pattern GL_DEBUG_TYPE_POP_GROUP,
+  pattern GL_DEBUG_TYPE_PORTABILITY,
+  pattern GL_DEBUG_TYPE_PUSH_GROUP,
+  pattern GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR,
+  pattern GL_DECR,
+  pattern GL_DECR_WRAP,
+  pattern GL_DELETE_STATUS,
+  pattern GL_DEPTH,
+  pattern GL_DEPTH24_STENCIL8,
+  pattern GL_DEPTH32F_STENCIL8,
+  pattern GL_DEPTH_ATTACHMENT,
+  pattern GL_DEPTH_BUFFER_BIT,
+  pattern GL_DEPTH_CLAMP,
+  pattern GL_DEPTH_CLEAR_VALUE,
+  pattern GL_DEPTH_COMPONENT,
+  pattern GL_DEPTH_COMPONENT16,
+  pattern GL_DEPTH_COMPONENT24,
+  pattern GL_DEPTH_COMPONENT32,
+  pattern GL_DEPTH_COMPONENT32F,
+  pattern GL_DEPTH_COMPONENTS,
+  pattern GL_DEPTH_FUNC,
+  pattern GL_DEPTH_RANGE,
+  pattern GL_DEPTH_RENDERABLE,
+  pattern GL_DEPTH_STENCIL,
+  pattern GL_DEPTH_STENCIL_ATTACHMENT,
+  pattern GL_DEPTH_STENCIL_TEXTURE_MODE,
+  pattern GL_DEPTH_TEST,
+  pattern GL_DEPTH_WRITEMASK,
+  pattern GL_DISPATCH_INDIRECT_BUFFER,
+  pattern GL_DISPATCH_INDIRECT_BUFFER_BINDING,
+  pattern GL_DITHER,
+  pattern GL_DONT_CARE,
+  pattern GL_DOUBLE,
+  pattern GL_DOUBLEBUFFER,
+  pattern GL_DOUBLE_MAT2,
+  pattern GL_DOUBLE_MAT2x3,
+  pattern GL_DOUBLE_MAT2x4,
+  pattern GL_DOUBLE_MAT3,
+  pattern GL_DOUBLE_MAT3x2,
+  pattern GL_DOUBLE_MAT3x4,
+  pattern GL_DOUBLE_MAT4,
+  pattern GL_DOUBLE_MAT4x2,
+  pattern GL_DOUBLE_MAT4x3,
+  pattern GL_DOUBLE_VEC2,
+  pattern GL_DOUBLE_VEC3,
+  pattern GL_DOUBLE_VEC4,
+  pattern GL_DRAW_BUFFER,
+  pattern GL_DRAW_BUFFER0,
+  pattern GL_DRAW_BUFFER1,
+  pattern GL_DRAW_BUFFER10,
+  pattern GL_DRAW_BUFFER11,
+  pattern GL_DRAW_BUFFER12,
+  pattern GL_DRAW_BUFFER13,
+  pattern GL_DRAW_BUFFER14,
+  pattern GL_DRAW_BUFFER15,
+  pattern GL_DRAW_BUFFER2,
+  pattern GL_DRAW_BUFFER3,
+  pattern GL_DRAW_BUFFER4,
+  pattern GL_DRAW_BUFFER5,
+  pattern GL_DRAW_BUFFER6,
+  pattern GL_DRAW_BUFFER7,
+  pattern GL_DRAW_BUFFER8,
+  pattern GL_DRAW_BUFFER9,
+  pattern GL_DRAW_FRAMEBUFFER,
+  pattern GL_DRAW_FRAMEBUFFER_BINDING,
+  pattern GL_DRAW_INDIRECT_BUFFER,
+  pattern GL_DRAW_INDIRECT_BUFFER_BINDING,
+  pattern GL_DST_ALPHA,
+  pattern GL_DST_COLOR,
+  pattern GL_DYNAMIC_COPY,
+  pattern GL_DYNAMIC_DRAW,
+  pattern GL_DYNAMIC_READ,
+  pattern GL_DYNAMIC_STORAGE_BIT,
+  pattern GL_ELEMENT_ARRAY_BARRIER_BIT,
+  pattern GL_ELEMENT_ARRAY_BUFFER,
+  pattern GL_ELEMENT_ARRAY_BUFFER_BINDING,
+  pattern GL_EQUAL,
+  pattern GL_EQUIV,
+  pattern GL_EXTENSIONS,
+  pattern GL_FALSE,
+  pattern GL_FASTEST,
+  pattern GL_FILL,
+  pattern GL_FILTER,
+  pattern GL_FIRST_VERTEX_CONVENTION,
+  pattern GL_FIXED,
+  pattern GL_FIXED_ONLY,
+  pattern GL_FLOAT,
+  pattern GL_FLOAT_32_UNSIGNED_INT_24_8_REV,
+  pattern GL_FLOAT_MAT2,
+  pattern GL_FLOAT_MAT2x3,
+  pattern GL_FLOAT_MAT2x4,
+  pattern GL_FLOAT_MAT3,
+  pattern GL_FLOAT_MAT3x2,
+  pattern GL_FLOAT_MAT3x4,
+  pattern GL_FLOAT_MAT4,
+  pattern GL_FLOAT_MAT4x2,
+  pattern GL_FLOAT_MAT4x3,
+  pattern GL_FLOAT_VEC2,
+  pattern GL_FLOAT_VEC3,
+  pattern GL_FLOAT_VEC4,
+  pattern GL_FRACTIONAL_EVEN,
+  pattern GL_FRACTIONAL_ODD,
+  pattern GL_FRAGMENT_INTERPOLATION_OFFSET_BITS,
+  pattern GL_FRAGMENT_SHADER,
+  pattern GL_FRAGMENT_SHADER_BIT,
+  pattern GL_FRAGMENT_SHADER_DERIVATIVE_HINT,
+  pattern GL_FRAGMENT_SUBROUTINE,
+  pattern GL_FRAGMENT_SUBROUTINE_UNIFORM,
+  pattern GL_FRAGMENT_TEXTURE,
+  pattern GL_FRAMEBUFFER,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL,
+  pattern GL_FRAMEBUFFER_BARRIER_BIT,
+  pattern GL_FRAMEBUFFER_BINDING,
+  pattern GL_FRAMEBUFFER_BLEND,
+  pattern GL_FRAMEBUFFER_COMPLETE,
+  pattern GL_FRAMEBUFFER_DEFAULT,
+  pattern GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS,
+  pattern GL_FRAMEBUFFER_DEFAULT_HEIGHT,
+  pattern GL_FRAMEBUFFER_DEFAULT_LAYERS,
+  pattern GL_FRAMEBUFFER_DEFAULT_SAMPLES,
+  pattern GL_FRAMEBUFFER_DEFAULT_WIDTH,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER,
+  pattern GL_FRAMEBUFFER_RENDERABLE,
+  pattern GL_FRAMEBUFFER_RENDERABLE_LAYERED,
+  pattern GL_FRAMEBUFFER_SRGB,
+  pattern GL_FRAMEBUFFER_UNDEFINED,
+  pattern GL_FRAMEBUFFER_UNSUPPORTED,
+  pattern GL_FRONT,
+  pattern GL_FRONT_AND_BACK,
+  pattern GL_FRONT_FACE,
+  pattern GL_FRONT_LEFT,
+  pattern GL_FRONT_RIGHT,
+  pattern GL_FULL_SUPPORT,
+  pattern GL_FUNC_ADD,
+  pattern GL_FUNC_REVERSE_SUBTRACT,
+  pattern GL_FUNC_SUBTRACT,
+  pattern GL_GEOMETRY_INPUT_TYPE,
+  pattern GL_GEOMETRY_OUTPUT_TYPE,
+  pattern GL_GEOMETRY_SHADER,
+  pattern GL_GEOMETRY_SHADER_BIT,
+  pattern GL_GEOMETRY_SHADER_INVOCATIONS,
+  pattern GL_GEOMETRY_SUBROUTINE,
+  pattern GL_GEOMETRY_SUBROUTINE_UNIFORM,
+  pattern GL_GEOMETRY_TEXTURE,
+  pattern GL_GEOMETRY_VERTICES_OUT,
+  pattern GL_GEQUAL,
+  pattern GL_GET_TEXTURE_IMAGE_FORMAT,
+  pattern GL_GET_TEXTURE_IMAGE_TYPE,
+  pattern GL_GREATER,
+  pattern GL_GREEN,
+  pattern GL_GREEN_INTEGER,
+  pattern GL_GUILTY_CONTEXT_RESET,
+  pattern GL_HALF_FLOAT,
+  pattern GL_HIGH_FLOAT,
+  pattern GL_HIGH_INT,
+  pattern GL_IMAGE_1D,
+  pattern GL_IMAGE_1D_ARRAY,
+  pattern GL_IMAGE_2D,
+  pattern GL_IMAGE_2D_ARRAY,
+  pattern GL_IMAGE_2D_MULTISAMPLE,
+  pattern GL_IMAGE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_IMAGE_2D_RECT,
+  pattern GL_IMAGE_3D,
+  pattern GL_IMAGE_BINDING_ACCESS,
+  pattern GL_IMAGE_BINDING_FORMAT,
+  pattern GL_IMAGE_BINDING_LAYER,
+  pattern GL_IMAGE_BINDING_LAYERED,
+  pattern GL_IMAGE_BINDING_LEVEL,
+  pattern GL_IMAGE_BINDING_NAME,
+  pattern GL_IMAGE_BUFFER,
+  pattern GL_IMAGE_CLASS_10_10_10_2,
+  pattern GL_IMAGE_CLASS_11_11_10,
+  pattern GL_IMAGE_CLASS_1_X_16,
+  pattern GL_IMAGE_CLASS_1_X_32,
+  pattern GL_IMAGE_CLASS_1_X_8,
+  pattern GL_IMAGE_CLASS_2_X_16,
+  pattern GL_IMAGE_CLASS_2_X_32,
+  pattern GL_IMAGE_CLASS_2_X_8,
+  pattern GL_IMAGE_CLASS_4_X_16,
+  pattern GL_IMAGE_CLASS_4_X_32,
+  pattern GL_IMAGE_CLASS_4_X_8,
+  pattern GL_IMAGE_COMPATIBILITY_CLASS,
+  pattern GL_IMAGE_CUBE,
+  pattern GL_IMAGE_CUBE_MAP_ARRAY,
+  pattern GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS,
+  pattern GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE,
+  pattern GL_IMAGE_FORMAT_COMPATIBILITY_TYPE,
+  pattern GL_IMAGE_PIXEL_FORMAT,
+  pattern GL_IMAGE_PIXEL_TYPE,
+  pattern GL_IMAGE_TEXEL_SIZE,
+  pattern GL_IMPLEMENTATION_COLOR_READ_FORMAT,
+  pattern GL_IMPLEMENTATION_COLOR_READ_TYPE,
+  pattern GL_INCR,
+  pattern GL_INCR_WRAP,
+  pattern GL_INFO_LOG_LENGTH,
+  pattern GL_INNOCENT_CONTEXT_RESET,
+  pattern GL_INT,
+  pattern GL_INTERLEAVED_ATTRIBS,
+  pattern GL_INTERNALFORMAT_ALPHA_SIZE,
+  pattern GL_INTERNALFORMAT_ALPHA_TYPE,
+  pattern GL_INTERNALFORMAT_BLUE_SIZE,
+  pattern GL_INTERNALFORMAT_BLUE_TYPE,
+  pattern GL_INTERNALFORMAT_DEPTH_SIZE,
+  pattern GL_INTERNALFORMAT_DEPTH_TYPE,
+  pattern GL_INTERNALFORMAT_GREEN_SIZE,
+  pattern GL_INTERNALFORMAT_GREEN_TYPE,
+  pattern GL_INTERNALFORMAT_PREFERRED,
+  pattern GL_INTERNALFORMAT_RED_SIZE,
+  pattern GL_INTERNALFORMAT_RED_TYPE,
+  pattern GL_INTERNALFORMAT_SHARED_SIZE,
+  pattern GL_INTERNALFORMAT_STENCIL_SIZE,
+  pattern GL_INTERNALFORMAT_STENCIL_TYPE,
+  pattern GL_INTERNALFORMAT_SUPPORTED,
+  pattern GL_INT_2_10_10_10_REV,
+  pattern GL_INT_IMAGE_1D,
+  pattern GL_INT_IMAGE_1D_ARRAY,
+  pattern GL_INT_IMAGE_2D,
+  pattern GL_INT_IMAGE_2D_ARRAY,
+  pattern GL_INT_IMAGE_2D_MULTISAMPLE,
+  pattern GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_INT_IMAGE_2D_RECT,
+  pattern GL_INT_IMAGE_3D,
+  pattern GL_INT_IMAGE_BUFFER,
+  pattern GL_INT_IMAGE_CUBE,
+  pattern GL_INT_IMAGE_CUBE_MAP_ARRAY,
+  pattern GL_INT_SAMPLER_1D,
+  pattern GL_INT_SAMPLER_1D_ARRAY,
+  pattern GL_INT_SAMPLER_2D,
+  pattern GL_INT_SAMPLER_2D_ARRAY,
+  pattern GL_INT_SAMPLER_2D_MULTISAMPLE,
+  pattern GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY,
+  pattern GL_INT_SAMPLER_2D_RECT,
+  pattern GL_INT_SAMPLER_3D,
+  pattern GL_INT_SAMPLER_BUFFER,
+  pattern GL_INT_SAMPLER_CUBE,
+  pattern GL_INT_SAMPLER_CUBE_MAP_ARRAY,
+  pattern GL_INT_VEC2,
+  pattern GL_INT_VEC3,
+  pattern GL_INT_VEC4,
+  pattern GL_INVALID_ENUM,
+  pattern GL_INVALID_FRAMEBUFFER_OPERATION,
+  pattern GL_INVALID_INDEX,
+  pattern GL_INVALID_OPERATION,
+  pattern GL_INVALID_VALUE,
+  pattern GL_INVERT,
+  pattern GL_ISOLINES,
+  pattern GL_IS_PER_PATCH,
+  pattern GL_IS_ROW_MAJOR,
+  pattern GL_KEEP,
+  pattern GL_LAST_VERTEX_CONVENTION,
+  pattern GL_LAYER_PROVOKING_VERTEX,
+  pattern GL_LEFT,
+  pattern GL_LEQUAL,
+  pattern GL_LESS,
+  pattern GL_LINE,
+  pattern GL_LINEAR,
+  pattern GL_LINEAR_MIPMAP_LINEAR,
+  pattern GL_LINEAR_MIPMAP_NEAREST,
+  pattern GL_LINES,
+  pattern GL_LINES_ADJACENCY,
+  pattern GL_LINE_LOOP,
+  pattern GL_LINE_SMOOTH,
+  pattern GL_LINE_SMOOTH_HINT,
+  pattern GL_LINE_STRIP,
+  pattern GL_LINE_STRIP_ADJACENCY,
+  pattern GL_LINE_WIDTH,
+  pattern GL_LINE_WIDTH_GRANULARITY,
+  pattern GL_LINE_WIDTH_RANGE,
+  pattern GL_LINK_STATUS,
+  pattern GL_LOCATION,
+  pattern GL_LOCATION_COMPONENT,
+  pattern GL_LOCATION_INDEX,
+  pattern GL_LOGIC_OP_MODE,
+  pattern GL_LOSE_CONTEXT_ON_RESET,
+  pattern GL_LOWER_LEFT,
+  pattern GL_LOW_FLOAT,
+  pattern GL_LOW_INT,
+  pattern GL_MAJOR_VERSION,
+  pattern GL_MANUAL_GENERATE_MIPMAP,
+  pattern GL_MAP_COHERENT_BIT,
+  pattern GL_MAP_FLUSH_EXPLICIT_BIT,
+  pattern GL_MAP_INVALIDATE_BUFFER_BIT,
+  pattern GL_MAP_INVALIDATE_RANGE_BIT,
+  pattern GL_MAP_PERSISTENT_BIT,
+  pattern GL_MAP_READ_BIT,
+  pattern GL_MAP_UNSYNCHRONIZED_BIT,
+  pattern GL_MAP_WRITE_BIT,
+  pattern GL_MATRIX_STRIDE,
+  pattern GL_MAX,
+  pattern GL_MAX_3D_TEXTURE_SIZE,
+  pattern GL_MAX_ARRAY_TEXTURE_LAYERS,
+  pattern GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS,
+  pattern GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE,
+  pattern GL_MAX_CLIP_DISTANCES,
+  pattern GL_MAX_COLOR_ATTACHMENTS,
+  pattern GL_MAX_COLOR_TEXTURE_SAMPLES,
+  pattern GL_MAX_COMBINED_ATOMIC_COUNTERS,
+  pattern GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES,
+  pattern GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_DIMENSIONS,
+  pattern GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_IMAGE_UNIFORMS,
+  pattern GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS,
+  pattern GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES,
+  pattern GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_COMBINED_UNIFORM_BLOCKS,
+  pattern GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMPUTE_ATOMIC_COUNTERS,
+  pattern GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_COMPUTE_IMAGE_UNIFORMS,
+  pattern GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_COMPUTE_SHARED_MEMORY_SIZE,
+  pattern GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_COMPUTE_UNIFORM_BLOCKS,
+  pattern GL_MAX_COMPUTE_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMPUTE_WORK_GROUP_COUNT,
+  pattern GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS,
+  pattern GL_MAX_COMPUTE_WORK_GROUP_SIZE,
+  pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE,
+  pattern GL_MAX_CULL_DISTANCES,
+  pattern GL_MAX_DEBUG_GROUP_STACK_DEPTH,
+  pattern GL_MAX_DEBUG_LOGGED_MESSAGES,
+  pattern GL_MAX_DEBUG_MESSAGE_LENGTH,
+  pattern GL_MAX_DEPTH,
+  pattern GL_MAX_DEPTH_TEXTURE_SAMPLES,
+  pattern GL_MAX_DRAW_BUFFERS,
+  pattern GL_MAX_DUAL_SOURCE_DRAW_BUFFERS,
+  pattern GL_MAX_ELEMENTS_INDICES,
+  pattern GL_MAX_ELEMENTS_VERTICES,
+  pattern GL_MAX_ELEMENT_INDEX,
+  pattern GL_MAX_FRAGMENT_ATOMIC_COUNTERS,
+  pattern GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_FRAGMENT_IMAGE_UNIFORMS,
+  pattern GL_MAX_FRAGMENT_INPUT_COMPONENTS,
+  pattern GL_MAX_FRAGMENT_INTERPOLATION_OFFSET,
+  pattern GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_FRAGMENT_UNIFORM_BLOCKS,
+  pattern GL_MAX_FRAGMENT_UNIFORM_COMPONENTS,
+  pattern GL_MAX_FRAGMENT_UNIFORM_VECTORS,
+  pattern GL_MAX_FRAMEBUFFER_HEIGHT,
+  pattern GL_MAX_FRAMEBUFFER_LAYERS,
+  pattern GL_MAX_FRAMEBUFFER_SAMPLES,
+  pattern GL_MAX_FRAMEBUFFER_WIDTH,
+  pattern GL_MAX_GEOMETRY_ATOMIC_COUNTERS,
+  pattern GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_GEOMETRY_IMAGE_UNIFORMS,
+  pattern GL_MAX_GEOMETRY_INPUT_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_OUTPUT_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_OUTPUT_VERTICES,
+  pattern GL_MAX_GEOMETRY_SHADER_INVOCATIONS,
+  pattern GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_UNIFORM_BLOCKS,
+  pattern GL_MAX_GEOMETRY_UNIFORM_COMPONENTS,
+  pattern GL_MAX_HEIGHT,
+  pattern GL_MAX_IMAGE_SAMPLES,
+  pattern GL_MAX_IMAGE_UNITS,
+  pattern GL_MAX_INTEGER_SAMPLES,
+  pattern GL_MAX_LABEL_LENGTH,
+  pattern GL_MAX_LAYERS,
+  pattern GL_MAX_NAME_LENGTH,
+  pattern GL_MAX_NUM_ACTIVE_VARIABLES,
+  pattern GL_MAX_NUM_COMPATIBLE_SUBROUTINES,
+  pattern GL_MAX_PATCH_VERTICES,
+  pattern GL_MAX_PROGRAM_TEXEL_OFFSET,
+  pattern GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET,
+  pattern GL_MAX_RECTANGLE_TEXTURE_SIZE,
+  pattern GL_MAX_RENDERBUFFER_SIZE,
+  pattern GL_MAX_SAMPLES,
+  pattern GL_MAX_SAMPLE_MASK_WORDS,
+  pattern GL_MAX_SERVER_WAIT_TIMEOUT,
+  pattern GL_MAX_SHADER_STORAGE_BLOCK_SIZE,
+  pattern GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS,
+  pattern GL_MAX_SUBROUTINES,
+  pattern GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS,
+  pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS,
+  pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS,
+  pattern GL_MAX_TESS_CONTROL_INPUT_COMPONENTS,
+  pattern GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS,
+  pattern GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS,
+  pattern GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS,
+  pattern GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS,
+  pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS,
+  pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS,
+  pattern GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS,
+  pattern GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS,
+  pattern GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS,
+  pattern GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS,
+  pattern GL_MAX_TESS_GEN_LEVEL,
+  pattern GL_MAX_TESS_PATCH_COMPONENTS,
+  pattern GL_MAX_TEXTURE_BUFFER_SIZE,
+  pattern GL_MAX_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_TEXTURE_LOD_BIAS,
+  pattern GL_MAX_TEXTURE_SIZE,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_BUFFERS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS,
+  pattern GL_MAX_UNIFORM_BLOCK_SIZE,
+  pattern GL_MAX_UNIFORM_BUFFER_BINDINGS,
+  pattern GL_MAX_UNIFORM_LOCATIONS,
+  pattern GL_MAX_VARYING_COMPONENTS,
+  pattern GL_MAX_VARYING_FLOATS,
+  pattern GL_MAX_VARYING_VECTORS,
+  pattern GL_MAX_VERTEX_ATOMIC_COUNTERS,
+  pattern GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_VERTEX_ATTRIBS,
+  pattern GL_MAX_VERTEX_ATTRIB_BINDINGS,
+  pattern GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET,
+  pattern GL_MAX_VERTEX_ATTRIB_STRIDE,
+  pattern GL_MAX_VERTEX_IMAGE_UNIFORMS,
+  pattern GL_MAX_VERTEX_OUTPUT_COMPONENTS,
+  pattern GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_VERTEX_STREAMS,
+  pattern GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_VERTEX_UNIFORM_BLOCKS,
+  pattern GL_MAX_VERTEX_UNIFORM_COMPONENTS,
+  pattern GL_MAX_VERTEX_UNIFORM_VECTORS,
+  pattern GL_MAX_VIEWPORTS,
+  pattern GL_MAX_VIEWPORT_DIMS,
+  pattern GL_MAX_WIDTH,
+  pattern GL_MEDIUM_FLOAT,
+  pattern GL_MEDIUM_INT,
+  pattern GL_MIN,
+  pattern GL_MINOR_VERSION,
+  pattern GL_MIN_FRAGMENT_INTERPOLATION_OFFSET,
+  pattern GL_MIN_MAP_BUFFER_ALIGNMENT,
+  pattern GL_MIN_PROGRAM_TEXEL_OFFSET,
+  pattern GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET,
+  pattern GL_MIN_SAMPLE_SHADING_VALUE,
+  pattern GL_MIPMAP,
+  pattern GL_MIRRORED_REPEAT,
+  pattern GL_MIRROR_CLAMP_TO_EDGE,
+  pattern GL_MULTISAMPLE,
+  pattern GL_NAME_LENGTH,
+  pattern GL_NAND,
+  pattern GL_NEAREST,
+  pattern GL_NEAREST_MIPMAP_LINEAR,
+  pattern GL_NEAREST_MIPMAP_NEAREST,
+  pattern GL_NEGATIVE_ONE_TO_ONE,
+  pattern GL_NEVER,
+  pattern GL_NICEST,
+  pattern GL_NONE,
+  pattern GL_NOOP,
+  pattern GL_NOR,
+  pattern GL_NOTEQUAL,
+  pattern GL_NO_ERROR,
+  pattern GL_NO_RESET_NOTIFICATION,
+  pattern GL_NUM_ACTIVE_VARIABLES,
+  pattern GL_NUM_COMPATIBLE_SUBROUTINES,
+  pattern GL_NUM_COMPRESSED_TEXTURE_FORMATS,
+  pattern GL_NUM_EXTENSIONS,
+  pattern GL_NUM_PROGRAM_BINARY_FORMATS,
+  pattern GL_NUM_SAMPLE_COUNTS,
+  pattern GL_NUM_SHADER_BINARY_FORMATS,
+  pattern GL_NUM_SHADING_LANGUAGE_VERSIONS,
+  pattern GL_OBJECT_TYPE,
+  pattern GL_OFFSET,
+  pattern GL_ONE,
+  pattern GL_ONE_MINUS_CONSTANT_ALPHA,
+  pattern GL_ONE_MINUS_CONSTANT_COLOR,
+  pattern GL_ONE_MINUS_DST_ALPHA,
+  pattern GL_ONE_MINUS_DST_COLOR,
+  pattern GL_ONE_MINUS_SRC1_ALPHA,
+  pattern GL_ONE_MINUS_SRC1_COLOR,
+  pattern GL_ONE_MINUS_SRC_ALPHA,
+  pattern GL_ONE_MINUS_SRC_COLOR,
+  pattern GL_OR,
+  pattern GL_OR_INVERTED,
+  pattern GL_OR_REVERSE,
+  pattern GL_OUT_OF_MEMORY,
+  pattern GL_PACK_ALIGNMENT,
+  pattern GL_PACK_COMPRESSED_BLOCK_DEPTH,
+  pattern GL_PACK_COMPRESSED_BLOCK_HEIGHT,
+  pattern GL_PACK_COMPRESSED_BLOCK_SIZE,
+  pattern GL_PACK_COMPRESSED_BLOCK_WIDTH,
+  pattern GL_PACK_IMAGE_HEIGHT,
+  pattern GL_PACK_LSB_FIRST,
+  pattern GL_PACK_ROW_LENGTH,
+  pattern GL_PACK_SKIP_IMAGES,
+  pattern GL_PACK_SKIP_PIXELS,
+  pattern GL_PACK_SKIP_ROWS,
+  pattern GL_PACK_SWAP_BYTES,
+  pattern GL_PATCHES,
+  pattern GL_PATCH_DEFAULT_INNER_LEVEL,
+  pattern GL_PATCH_DEFAULT_OUTER_LEVEL,
+  pattern GL_PATCH_VERTICES,
+  pattern GL_PIXEL_BUFFER_BARRIER_BIT,
+  pattern GL_PIXEL_PACK_BUFFER,
+  pattern GL_PIXEL_PACK_BUFFER_BINDING,
+  pattern GL_PIXEL_UNPACK_BUFFER,
+  pattern GL_PIXEL_UNPACK_BUFFER_BINDING,
+  pattern GL_POINT,
+  pattern GL_POINTS,
+  pattern GL_POINT_FADE_THRESHOLD_SIZE,
+  pattern GL_POINT_SIZE,
+  pattern GL_POINT_SIZE_GRANULARITY,
+  pattern GL_POINT_SIZE_RANGE,
+  pattern GL_POINT_SPRITE_COORD_ORIGIN,
+  pattern GL_POLYGON_MODE,
+  pattern GL_POLYGON_OFFSET_FACTOR,
+  pattern GL_POLYGON_OFFSET_FILL,
+  pattern GL_POLYGON_OFFSET_LINE,
+  pattern GL_POLYGON_OFFSET_POINT,
+  pattern GL_POLYGON_OFFSET_UNITS,
+  pattern GL_POLYGON_SMOOTH,
+  pattern GL_POLYGON_SMOOTH_HINT,
+  pattern GL_PRIMITIVES_GENERATED,
+  pattern GL_PRIMITIVE_RESTART,
+  pattern GL_PRIMITIVE_RESTART_FIXED_INDEX,
+  pattern GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED,
+  pattern GL_PRIMITIVE_RESTART_INDEX,
+  pattern GL_PROGRAM,
+  pattern GL_PROGRAM_BINARY_FORMATS,
+  pattern GL_PROGRAM_BINARY_LENGTH,
+  pattern GL_PROGRAM_BINARY_RETRIEVABLE_HINT,
+  pattern GL_PROGRAM_INPUT,
+  pattern GL_PROGRAM_OUTPUT,
+  pattern GL_PROGRAM_PIPELINE,
+  pattern GL_PROGRAM_PIPELINE_BINDING,
+  pattern GL_PROGRAM_POINT_SIZE,
+  pattern GL_PROGRAM_SEPARABLE,
+  pattern GL_PROVOKING_VERTEX,
+  pattern GL_PROXY_TEXTURE_1D,
+  pattern GL_PROXY_TEXTURE_1D_ARRAY,
+  pattern GL_PROXY_TEXTURE_2D,
+  pattern GL_PROXY_TEXTURE_2D_ARRAY,
+  pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE,
+  pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_PROXY_TEXTURE_3D,
+  pattern GL_PROXY_TEXTURE_CUBE_MAP,
+  pattern GL_PROXY_TEXTURE_CUBE_MAP_ARRAY,
+  pattern GL_PROXY_TEXTURE_RECTANGLE,
+  pattern GL_QUADS,
+  pattern GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION,
+  pattern GL_QUERY,
+  pattern GL_QUERY_BUFFER,
+  pattern GL_QUERY_BUFFER_BARRIER_BIT,
+  pattern GL_QUERY_BUFFER_BINDING,
+  pattern GL_QUERY_BY_REGION_NO_WAIT,
+  pattern GL_QUERY_BY_REGION_NO_WAIT_INVERTED,
+  pattern GL_QUERY_BY_REGION_WAIT,
+  pattern GL_QUERY_BY_REGION_WAIT_INVERTED,
+  pattern GL_QUERY_COUNTER_BITS,
+  pattern GL_QUERY_NO_WAIT,
+  pattern GL_QUERY_NO_WAIT_INVERTED,
+  pattern GL_QUERY_RESULT,
+  pattern GL_QUERY_RESULT_AVAILABLE,
+  pattern GL_QUERY_RESULT_NO_WAIT,
+  pattern GL_QUERY_TARGET,
+  pattern GL_QUERY_WAIT,
+  pattern GL_QUERY_WAIT_INVERTED,
+  pattern GL_R11F_G11F_B10F,
+  pattern GL_R16,
+  pattern GL_R16F,
+  pattern GL_R16I,
+  pattern GL_R16UI,
+  pattern GL_R16_SNORM,
+  pattern GL_R32F,
+  pattern GL_R32I,
+  pattern GL_R32UI,
+  pattern GL_R3_G3_B2,
+  pattern GL_R8,
+  pattern GL_R8I,
+  pattern GL_R8UI,
+  pattern GL_R8_SNORM,
+  pattern GL_RASTERIZER_DISCARD,
+  pattern GL_READ_BUFFER,
+  pattern GL_READ_FRAMEBUFFER,
+  pattern GL_READ_FRAMEBUFFER_BINDING,
+  pattern GL_READ_ONLY,
+  pattern GL_READ_PIXELS,
+  pattern GL_READ_PIXELS_FORMAT,
+  pattern GL_READ_PIXELS_TYPE,
+  pattern GL_READ_WRITE,
+  pattern GL_RED,
+  pattern GL_RED_INTEGER,
+  pattern GL_REFERENCED_BY_COMPUTE_SHADER,
+  pattern GL_REFERENCED_BY_FRAGMENT_SHADER,
+  pattern GL_REFERENCED_BY_GEOMETRY_SHADER,
+  pattern GL_REFERENCED_BY_TESS_CONTROL_SHADER,
+  pattern GL_REFERENCED_BY_TESS_EVALUATION_SHADER,
+  pattern GL_REFERENCED_BY_VERTEX_SHADER,
+  pattern GL_RENDERBUFFER,
+  pattern GL_RENDERBUFFER_ALPHA_SIZE,
+  pattern GL_RENDERBUFFER_BINDING,
+  pattern GL_RENDERBUFFER_BLUE_SIZE,
+  pattern GL_RENDERBUFFER_DEPTH_SIZE,
+  pattern GL_RENDERBUFFER_GREEN_SIZE,
+  pattern GL_RENDERBUFFER_HEIGHT,
+  pattern GL_RENDERBUFFER_INTERNAL_FORMAT,
+  pattern GL_RENDERBUFFER_RED_SIZE,
+  pattern GL_RENDERBUFFER_SAMPLES,
+  pattern GL_RENDERBUFFER_STENCIL_SIZE,
+  pattern GL_RENDERBUFFER_WIDTH,
+  pattern GL_RENDERER,
+  pattern GL_REPEAT,
+  pattern GL_REPLACE,
+  pattern GL_RESET_NOTIFICATION_STRATEGY,
+  pattern GL_RG,
+  pattern GL_RG16,
+  pattern GL_RG16F,
+  pattern GL_RG16I,
+  pattern GL_RG16UI,
+  pattern GL_RG16_SNORM,
+  pattern GL_RG32F,
+  pattern GL_RG32I,
+  pattern GL_RG32UI,
+  pattern GL_RG8,
+  pattern GL_RG8I,
+  pattern GL_RG8UI,
+  pattern GL_RG8_SNORM,
+  pattern GL_RGB,
+  pattern GL_RGB10,
+  pattern GL_RGB10_A2,
+  pattern GL_RGB10_A2UI,
+  pattern GL_RGB12,
+  pattern GL_RGB16,
+  pattern GL_RGB16F,
+  pattern GL_RGB16I,
+  pattern GL_RGB16UI,
+  pattern GL_RGB16_SNORM,
+  pattern GL_RGB32F,
+  pattern GL_RGB32I,
+  pattern GL_RGB32UI,
+  pattern GL_RGB4,
+  pattern GL_RGB5,
+  pattern GL_RGB565,
+  pattern GL_RGB5_A1,
+  pattern GL_RGB8,
+  pattern GL_RGB8I,
+  pattern GL_RGB8UI,
+  pattern GL_RGB8_SNORM,
+  pattern GL_RGB9_E5,
+  pattern GL_RGBA,
+  pattern GL_RGBA12,
+  pattern GL_RGBA16,
+  pattern GL_RGBA16F,
+  pattern GL_RGBA16I,
+  pattern GL_RGBA16UI,
+  pattern GL_RGBA16_SNORM,
+  pattern GL_RGBA2,
+  pattern GL_RGBA32F,
+  pattern GL_RGBA32I,
+  pattern GL_RGBA32UI,
+  pattern GL_RGBA4,
+  pattern GL_RGBA8,
+  pattern GL_RGBA8I,
+  pattern GL_RGBA8UI,
+  pattern GL_RGBA8_SNORM,
+  pattern GL_RGBA_INTEGER,
+  pattern GL_RGB_INTEGER,
+  pattern GL_RG_INTEGER,
+  pattern GL_RIGHT,
+  pattern GL_SAMPLER,
+  pattern GL_SAMPLER_1D,
+  pattern GL_SAMPLER_1D_ARRAY,
+  pattern GL_SAMPLER_1D_ARRAY_SHADOW,
+  pattern GL_SAMPLER_1D_SHADOW,
+  pattern GL_SAMPLER_2D,
+  pattern GL_SAMPLER_2D_ARRAY,
+  pattern GL_SAMPLER_2D_ARRAY_SHADOW,
+  pattern GL_SAMPLER_2D_MULTISAMPLE,
+  pattern GL_SAMPLER_2D_MULTISAMPLE_ARRAY,
+  pattern GL_SAMPLER_2D_RECT,
+  pattern GL_SAMPLER_2D_RECT_SHADOW,
+  pattern GL_SAMPLER_2D_SHADOW,
+  pattern GL_SAMPLER_3D,
+  pattern GL_SAMPLER_BINDING,
+  pattern GL_SAMPLER_BUFFER,
+  pattern GL_SAMPLER_CUBE,
+  pattern GL_SAMPLER_CUBE_MAP_ARRAY,
+  pattern GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW,
+  pattern GL_SAMPLER_CUBE_SHADOW,
+  pattern GL_SAMPLES,
+  pattern GL_SAMPLES_PASSED,
+  pattern GL_SAMPLE_ALPHA_TO_COVERAGE,
+  pattern GL_SAMPLE_ALPHA_TO_ONE,
+  pattern GL_SAMPLE_BUFFERS,
+  pattern GL_SAMPLE_COVERAGE,
+  pattern GL_SAMPLE_COVERAGE_INVERT,
+  pattern GL_SAMPLE_COVERAGE_VALUE,
+  pattern GL_SAMPLE_MASK,
+  pattern GL_SAMPLE_MASK_VALUE,
+  pattern GL_SAMPLE_POSITION,
+  pattern GL_SAMPLE_SHADING,
+  pattern GL_SCISSOR_BOX,
+  pattern GL_SCISSOR_TEST,
+  pattern GL_SEPARATE_ATTRIBS,
+  pattern GL_SET,
+  pattern GL_SHADER,
+  pattern GL_SHADER_BINARY_FORMATS,
+  pattern GL_SHADER_COMPILER,
+  pattern GL_SHADER_IMAGE_ACCESS_BARRIER_BIT,
+  pattern GL_SHADER_IMAGE_ATOMIC,
+  pattern GL_SHADER_IMAGE_LOAD,
+  pattern GL_SHADER_IMAGE_STORE,
+  pattern GL_SHADER_SOURCE_LENGTH,
+  pattern GL_SHADER_STORAGE_BARRIER_BIT,
+  pattern GL_SHADER_STORAGE_BLOCK,
+  pattern GL_SHADER_STORAGE_BUFFER,
+  pattern GL_SHADER_STORAGE_BUFFER_BINDING,
+  pattern GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT,
+  pattern GL_SHADER_STORAGE_BUFFER_SIZE,
+  pattern GL_SHADER_STORAGE_BUFFER_START,
+  pattern GL_SHADER_TYPE,
+  pattern GL_SHADING_LANGUAGE_VERSION,
+  pattern GL_SHORT,
+  pattern GL_SIGNALED,
+  pattern GL_SIGNED_NORMALIZED,
+  pattern GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST,
+  pattern GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE,
+  pattern GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST,
+  pattern GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE,
+  pattern GL_SMOOTH_LINE_WIDTH_GRANULARITY,
+  pattern GL_SMOOTH_LINE_WIDTH_RANGE,
+  pattern GL_SMOOTH_POINT_SIZE_GRANULARITY,
+  pattern GL_SMOOTH_POINT_SIZE_RANGE,
+  pattern GL_SRC1_ALPHA,
+  pattern GL_SRC1_COLOR,
+  pattern GL_SRC_ALPHA,
+  pattern GL_SRC_ALPHA_SATURATE,
+  pattern GL_SRC_COLOR,
+  pattern GL_SRGB,
+  pattern GL_SRGB8,
+  pattern GL_SRGB8_ALPHA8,
+  pattern GL_SRGB_ALPHA,
+  pattern GL_SRGB_READ,
+  pattern GL_SRGB_WRITE,
+  pattern GL_STACK_OVERFLOW,
+  pattern GL_STACK_UNDERFLOW,
+  pattern GL_STATIC_COPY,
+  pattern GL_STATIC_DRAW,
+  pattern GL_STATIC_READ,
+  pattern GL_STENCIL,
+  pattern GL_STENCIL_ATTACHMENT,
+  pattern GL_STENCIL_BACK_FAIL,
+  pattern GL_STENCIL_BACK_FUNC,
+  pattern GL_STENCIL_BACK_PASS_DEPTH_FAIL,
+  pattern GL_STENCIL_BACK_PASS_DEPTH_PASS,
+  pattern GL_STENCIL_BACK_REF,
+  pattern GL_STENCIL_BACK_VALUE_MASK,
+  pattern GL_STENCIL_BACK_WRITEMASK,
+  pattern GL_STENCIL_BUFFER_BIT,
+  pattern GL_STENCIL_CLEAR_VALUE,
+  pattern GL_STENCIL_COMPONENTS,
+  pattern GL_STENCIL_FAIL,
+  pattern GL_STENCIL_FUNC,
+  pattern GL_STENCIL_INDEX,
+  pattern GL_STENCIL_INDEX1,
+  pattern GL_STENCIL_INDEX16,
+  pattern GL_STENCIL_INDEX4,
+  pattern GL_STENCIL_INDEX8,
+  pattern GL_STENCIL_PASS_DEPTH_FAIL,
+  pattern GL_STENCIL_PASS_DEPTH_PASS,
+  pattern GL_STENCIL_REF,
+  pattern GL_STENCIL_RENDERABLE,
+  pattern GL_STENCIL_TEST,
+  pattern GL_STENCIL_VALUE_MASK,
+  pattern GL_STENCIL_WRITEMASK,
+  pattern GL_STEREO,
+  pattern GL_STREAM_COPY,
+  pattern GL_STREAM_DRAW,
+  pattern GL_STREAM_READ,
+  pattern GL_SUBPIXEL_BITS,
+  pattern GL_SYNC_CONDITION,
+  pattern GL_SYNC_FENCE,
+  pattern GL_SYNC_FLAGS,
+  pattern GL_SYNC_FLUSH_COMMANDS_BIT,
+  pattern GL_SYNC_GPU_COMMANDS_COMPLETE,
+  pattern GL_SYNC_STATUS,
+  pattern GL_TESS_CONTROL_OUTPUT_VERTICES,
+  pattern GL_TESS_CONTROL_SHADER,
+  pattern GL_TESS_CONTROL_SHADER_BIT,
+  pattern GL_TESS_CONTROL_SUBROUTINE,
+  pattern GL_TESS_CONTROL_SUBROUTINE_UNIFORM,
+  pattern GL_TESS_CONTROL_TEXTURE,
+  pattern GL_TESS_EVALUATION_SHADER,
+  pattern GL_TESS_EVALUATION_SHADER_BIT,
+  pattern GL_TESS_EVALUATION_SUBROUTINE,
+  pattern GL_TESS_EVALUATION_SUBROUTINE_UNIFORM,
+  pattern GL_TESS_EVALUATION_TEXTURE,
+  pattern GL_TESS_GEN_MODE,
+  pattern GL_TESS_GEN_POINT_MODE,
+  pattern GL_TESS_GEN_SPACING,
+  pattern GL_TESS_GEN_VERTEX_ORDER,
+  pattern GL_TEXTURE,
+  pattern GL_TEXTURE0,
+  pattern GL_TEXTURE1,
+  pattern GL_TEXTURE10,
+  pattern GL_TEXTURE11,
+  pattern GL_TEXTURE12,
+  pattern GL_TEXTURE13,
+  pattern GL_TEXTURE14,
+  pattern GL_TEXTURE15,
+  pattern GL_TEXTURE16,
+  pattern GL_TEXTURE17,
+  pattern GL_TEXTURE18,
+  pattern GL_TEXTURE19,
+  pattern GL_TEXTURE2,
+  pattern GL_TEXTURE20,
+  pattern GL_TEXTURE21,
+  pattern GL_TEXTURE22,
+  pattern GL_TEXTURE23,
+  pattern GL_TEXTURE24,
+  pattern GL_TEXTURE25,
+  pattern GL_TEXTURE26,
+  pattern GL_TEXTURE27,
+  pattern GL_TEXTURE28,
+  pattern GL_TEXTURE29,
+  pattern GL_TEXTURE3,
+  pattern GL_TEXTURE30,
+  pattern GL_TEXTURE31,
+  pattern GL_TEXTURE4,
+  pattern GL_TEXTURE5,
+  pattern GL_TEXTURE6,
+  pattern GL_TEXTURE7,
+  pattern GL_TEXTURE8,
+  pattern GL_TEXTURE9,
+  pattern GL_TEXTURE_1D,
+  pattern GL_TEXTURE_1D_ARRAY,
+  pattern GL_TEXTURE_2D,
+  pattern GL_TEXTURE_2D_ARRAY,
+  pattern GL_TEXTURE_2D_MULTISAMPLE,
+  pattern GL_TEXTURE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_TEXTURE_3D,
+  pattern GL_TEXTURE_ALPHA_SIZE,
+  pattern GL_TEXTURE_ALPHA_TYPE,
+  pattern GL_TEXTURE_BASE_LEVEL,
+  pattern GL_TEXTURE_BINDING_1D,
+  pattern GL_TEXTURE_BINDING_1D_ARRAY,
+  pattern GL_TEXTURE_BINDING_2D,
+  pattern GL_TEXTURE_BINDING_2D_ARRAY,
+  pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE,
+  pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY,
+  pattern GL_TEXTURE_BINDING_3D,
+  pattern GL_TEXTURE_BINDING_BUFFER,
+  pattern GL_TEXTURE_BINDING_CUBE_MAP,
+  pattern GL_TEXTURE_BINDING_CUBE_MAP_ARRAY,
+  pattern GL_TEXTURE_BINDING_RECTANGLE,
+  pattern GL_TEXTURE_BLUE_SIZE,
+  pattern GL_TEXTURE_BLUE_TYPE,
+  pattern GL_TEXTURE_BORDER_COLOR,
+  pattern GL_TEXTURE_BUFFER,
+  pattern GL_TEXTURE_BUFFER_BINDING,
+  pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING,
+  pattern GL_TEXTURE_BUFFER_OFFSET,
+  pattern GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT,
+  pattern GL_TEXTURE_BUFFER_SIZE,
+  pattern GL_TEXTURE_COMPARE_FUNC,
+  pattern GL_TEXTURE_COMPARE_MODE,
+  pattern GL_TEXTURE_COMPRESSED,
+  pattern GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT,
+  pattern GL_TEXTURE_COMPRESSED_BLOCK_SIZE,
+  pattern GL_TEXTURE_COMPRESSED_BLOCK_WIDTH,
+  pattern GL_TEXTURE_COMPRESSED_IMAGE_SIZE,
+  pattern GL_TEXTURE_COMPRESSION_HINT,
+  pattern GL_TEXTURE_CUBE_MAP,
+  pattern GL_TEXTURE_CUBE_MAP_ARRAY,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z,
+  pattern GL_TEXTURE_CUBE_MAP_SEAMLESS,
+  pattern GL_TEXTURE_DEPTH,
+  pattern GL_TEXTURE_DEPTH_SIZE,
+  pattern GL_TEXTURE_DEPTH_TYPE,
+  pattern GL_TEXTURE_FETCH_BARRIER_BIT,
+  pattern GL_TEXTURE_FIXED_SAMPLE_LOCATIONS,
+  pattern GL_TEXTURE_GATHER,
+  pattern GL_TEXTURE_GATHER_SHADOW,
+  pattern GL_TEXTURE_GREEN_SIZE,
+  pattern GL_TEXTURE_GREEN_TYPE,
+  pattern GL_TEXTURE_HEIGHT,
+  pattern GL_TEXTURE_IMAGE_FORMAT,
+  pattern GL_TEXTURE_IMAGE_TYPE,
+  pattern GL_TEXTURE_IMMUTABLE_FORMAT,
+  pattern GL_TEXTURE_IMMUTABLE_LEVELS,
+  pattern GL_TEXTURE_INTERNAL_FORMAT,
+  pattern GL_TEXTURE_LOD_BIAS,
+  pattern GL_TEXTURE_MAG_FILTER,
+  pattern GL_TEXTURE_MAX_LEVEL,
+  pattern GL_TEXTURE_MAX_LOD,
+  pattern GL_TEXTURE_MIN_FILTER,
+  pattern GL_TEXTURE_MIN_LOD,
+  pattern GL_TEXTURE_RECTANGLE,
+  pattern GL_TEXTURE_RED_SIZE,
+  pattern GL_TEXTURE_RED_TYPE,
+  pattern GL_TEXTURE_SAMPLES,
+  pattern GL_TEXTURE_SHADOW,
+  pattern GL_TEXTURE_SHARED_SIZE,
+  pattern GL_TEXTURE_STENCIL_SIZE,
+  pattern GL_TEXTURE_SWIZZLE_A,
+  pattern GL_TEXTURE_SWIZZLE_B,
+  pattern GL_TEXTURE_SWIZZLE_G,
+  pattern GL_TEXTURE_SWIZZLE_R,
+  pattern GL_TEXTURE_SWIZZLE_RGBA,
+  pattern GL_TEXTURE_TARGET,
+  pattern GL_TEXTURE_UPDATE_BARRIER_BIT,
+  pattern GL_TEXTURE_VIEW,
+  pattern GL_TEXTURE_VIEW_MIN_LAYER,
+  pattern GL_TEXTURE_VIEW_MIN_LEVEL,
+  pattern GL_TEXTURE_VIEW_NUM_LAYERS,
+  pattern GL_TEXTURE_VIEW_NUM_LEVELS,
+  pattern GL_TEXTURE_WIDTH,
+  pattern GL_TEXTURE_WRAP_R,
+  pattern GL_TEXTURE_WRAP_S,
+  pattern GL_TEXTURE_WRAP_T,
+  pattern GL_TIMEOUT_EXPIRED,
+  pattern GL_TIMEOUT_IGNORED,
+  pattern GL_TIMESTAMP,
+  pattern GL_TIME_ELAPSED,
+  pattern GL_TOP_LEVEL_ARRAY_SIZE,
+  pattern GL_TOP_LEVEL_ARRAY_STRIDE,
+  pattern GL_TRANSFORM_FEEDBACK,
+  pattern GL_TRANSFORM_FEEDBACK_ACTIVE,
+  pattern GL_TRANSFORM_FEEDBACK_BARRIER_BIT,
+  pattern GL_TRANSFORM_FEEDBACK_BINDING,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_BINDING,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_INDEX,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_MODE,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_SIZE,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_START,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE,
+  pattern GL_TRANSFORM_FEEDBACK_PAUSED,
+  pattern GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN,
+  pattern GL_TRANSFORM_FEEDBACK_VARYING,
+  pattern GL_TRANSFORM_FEEDBACK_VARYINGS,
+  pattern GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH,
+  pattern GL_TRIANGLES,
+  pattern GL_TRIANGLES_ADJACENCY,
+  pattern GL_TRIANGLE_FAN,
+  pattern GL_TRIANGLE_STRIP,
+  pattern GL_TRIANGLE_STRIP_ADJACENCY,
+  pattern GL_TRUE,
+  pattern GL_TYPE,
+  pattern GL_UNDEFINED_VERTEX,
+  pattern GL_UNIFORM,
+  pattern GL_UNIFORM_ARRAY_STRIDE,
+  pattern GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX,
+  pattern GL_UNIFORM_BARRIER_BIT,
+  pattern GL_UNIFORM_BLOCK,
+  pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS,
+  pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES,
+  pattern GL_UNIFORM_BLOCK_BINDING,
+  pattern GL_UNIFORM_BLOCK_DATA_SIZE,
+  pattern GL_UNIFORM_BLOCK_INDEX,
+  pattern GL_UNIFORM_BLOCK_NAME_LENGTH,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER,
+  pattern GL_UNIFORM_BUFFER,
+  pattern GL_UNIFORM_BUFFER_BINDING,
+  pattern GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT,
+  pattern GL_UNIFORM_BUFFER_SIZE,
+  pattern GL_UNIFORM_BUFFER_START,
+  pattern GL_UNIFORM_IS_ROW_MAJOR,
+  pattern GL_UNIFORM_MATRIX_STRIDE,
+  pattern GL_UNIFORM_NAME_LENGTH,
+  pattern GL_UNIFORM_OFFSET,
+  pattern GL_UNIFORM_SIZE,
+  pattern GL_UNIFORM_TYPE,
+  pattern GL_UNKNOWN_CONTEXT_RESET,
+  pattern GL_UNPACK_ALIGNMENT,
+  pattern GL_UNPACK_COMPRESSED_BLOCK_DEPTH,
+  pattern GL_UNPACK_COMPRESSED_BLOCK_HEIGHT,
+  pattern GL_UNPACK_COMPRESSED_BLOCK_SIZE,
+  pattern GL_UNPACK_COMPRESSED_BLOCK_WIDTH,
+  pattern GL_UNPACK_IMAGE_HEIGHT,
+  pattern GL_UNPACK_LSB_FIRST,
+  pattern GL_UNPACK_ROW_LENGTH,
+  pattern GL_UNPACK_SKIP_IMAGES,
+  pattern GL_UNPACK_SKIP_PIXELS,
+  pattern GL_UNPACK_SKIP_ROWS,
+  pattern GL_UNPACK_SWAP_BYTES,
+  pattern GL_UNSIGNALED,
+  pattern GL_UNSIGNED_BYTE,
+  pattern GL_UNSIGNED_BYTE_2_3_3_REV,
+  pattern GL_UNSIGNED_BYTE_3_3_2,
+  pattern GL_UNSIGNED_INT,
+  pattern GL_UNSIGNED_INT_10F_11F_11F_REV,
+  pattern GL_UNSIGNED_INT_10_10_10_2,
+  pattern GL_UNSIGNED_INT_24_8,
+  pattern GL_UNSIGNED_INT_2_10_10_10_REV,
+  pattern GL_UNSIGNED_INT_5_9_9_9_REV,
+  pattern GL_UNSIGNED_INT_8_8_8_8,
+  pattern GL_UNSIGNED_INT_8_8_8_8_REV,
+  pattern GL_UNSIGNED_INT_ATOMIC_COUNTER,
+  pattern GL_UNSIGNED_INT_IMAGE_1D,
+  pattern GL_UNSIGNED_INT_IMAGE_1D_ARRAY,
+  pattern GL_UNSIGNED_INT_IMAGE_2D,
+  pattern GL_UNSIGNED_INT_IMAGE_2D_ARRAY,
+  pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE,
+  pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_UNSIGNED_INT_IMAGE_2D_RECT,
+  pattern GL_UNSIGNED_INT_IMAGE_3D,
+  pattern GL_UNSIGNED_INT_IMAGE_BUFFER,
+  pattern GL_UNSIGNED_INT_IMAGE_CUBE,
+  pattern GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_1D,
+  pattern GL_UNSIGNED_INT_SAMPLER_1D_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_RECT,
+  pattern GL_UNSIGNED_INT_SAMPLER_3D,
+  pattern GL_UNSIGNED_INT_SAMPLER_BUFFER,
+  pattern GL_UNSIGNED_INT_SAMPLER_CUBE,
+  pattern GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY,
+  pattern GL_UNSIGNED_INT_VEC2,
+  pattern GL_UNSIGNED_INT_VEC3,
+  pattern GL_UNSIGNED_INT_VEC4,
+  pattern GL_UNSIGNED_NORMALIZED,
+  pattern GL_UNSIGNED_SHORT,
+  pattern GL_UNSIGNED_SHORT_1_5_5_5_REV,
+  pattern GL_UNSIGNED_SHORT_4_4_4_4,
+  pattern GL_UNSIGNED_SHORT_4_4_4_4_REV,
+  pattern GL_UNSIGNED_SHORT_5_5_5_1,
+  pattern GL_UNSIGNED_SHORT_5_6_5,
+  pattern GL_UNSIGNED_SHORT_5_6_5_REV,
+  pattern GL_UPPER_LEFT,
+  pattern GL_VALIDATE_STATUS,
+  pattern GL_VENDOR,
+  pattern GL_VERSION,
+  pattern GL_VERTEX_ARRAY,
+  pattern GL_VERTEX_ARRAY_BINDING,
+  pattern GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT,
+  pattern GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING,
+  pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR,
+  pattern GL_VERTEX_ATTRIB_ARRAY_ENABLED,
+  pattern GL_VERTEX_ATTRIB_ARRAY_INTEGER,
+  pattern GL_VERTEX_ATTRIB_ARRAY_LONG,
+  pattern GL_VERTEX_ATTRIB_ARRAY_NORMALIZED,
+  pattern GL_VERTEX_ATTRIB_ARRAY_POINTER,
+  pattern GL_VERTEX_ATTRIB_ARRAY_SIZE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_STRIDE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_TYPE,
+  pattern GL_VERTEX_ATTRIB_BINDING,
+  pattern GL_VERTEX_ATTRIB_RELATIVE_OFFSET,
+  pattern GL_VERTEX_BINDING_BUFFER,
+  pattern GL_VERTEX_BINDING_DIVISOR,
+  pattern GL_VERTEX_BINDING_OFFSET,
+  pattern GL_VERTEX_BINDING_STRIDE,
+  pattern GL_VERTEX_PROGRAM_POINT_SIZE,
+  pattern GL_VERTEX_SHADER,
+  pattern GL_VERTEX_SHADER_BIT,
+  pattern GL_VERTEX_SUBROUTINE,
+  pattern GL_VERTEX_SUBROUTINE_UNIFORM,
+  pattern GL_VERTEX_TEXTURE,
+  pattern GL_VIEWPORT,
+  pattern GL_VIEWPORT_BOUNDS_RANGE,
+  pattern GL_VIEWPORT_INDEX_PROVOKING_VERTEX,
+  pattern GL_VIEWPORT_SUBPIXEL_BITS,
+  pattern GL_VIEW_CLASS_128_BITS,
+  pattern GL_VIEW_CLASS_16_BITS,
+  pattern GL_VIEW_CLASS_24_BITS,
+  pattern GL_VIEW_CLASS_32_BITS,
+  pattern GL_VIEW_CLASS_48_BITS,
+  pattern GL_VIEW_CLASS_64_BITS,
+  pattern GL_VIEW_CLASS_8_BITS,
+  pattern GL_VIEW_CLASS_96_BITS,
+  pattern GL_VIEW_CLASS_BPTC_FLOAT,
+  pattern GL_VIEW_CLASS_BPTC_UNORM,
+  pattern GL_VIEW_CLASS_RGTC1_RED,
+  pattern GL_VIEW_CLASS_RGTC2_RG,
+  pattern GL_VIEW_CLASS_S3TC_DXT1_RGB,
+  pattern GL_VIEW_CLASS_S3TC_DXT1_RGBA,
+  pattern GL_VIEW_CLASS_S3TC_DXT3_RGBA,
+  pattern GL_VIEW_CLASS_S3TC_DXT5_RGBA,
+  pattern GL_VIEW_COMPATIBILITY_CLASS,
+  pattern GL_WAIT_FAILED,
+  pattern GL_WRITE_ONLY,
+  pattern GL_XOR,
+  pattern GL_ZERO,
+  pattern GL_ZERO_TO_ONE,
+  -- * Functions
+  glActiveShaderProgram,
+  glActiveTexture,
+  glAttachShader,
+  glBeginConditionalRender,
+  glBeginQuery,
+  glBeginQueryIndexed,
+  glBeginTransformFeedback,
+  glBindAttribLocation,
+  glBindBuffer,
+  glBindBufferBase,
+  glBindBufferRange,
+  glBindBuffersBase,
+  glBindBuffersRange,
+  glBindFragDataLocation,
+  glBindFragDataLocationIndexed,
+  glBindFramebuffer,
+  glBindImageTexture,
+  glBindImageTextures,
+  glBindProgramPipeline,
+  glBindRenderbuffer,
+  glBindSampler,
+  glBindSamplers,
+  glBindTexture,
+  glBindTextureUnit,
+  glBindTextures,
+  glBindTransformFeedback,
+  glBindVertexArray,
+  glBindVertexBuffer,
+  glBindVertexBuffers,
+  glBlendColor,
+  glBlendEquation,
+  glBlendEquationSeparate,
+  glBlendEquationSeparatei,
+  glBlendEquationi,
+  glBlendFunc,
+  glBlendFuncSeparate,
+  glBlendFuncSeparatei,
+  glBlendFunci,
+  glBlitFramebuffer,
+  glBlitNamedFramebuffer,
+  glBufferData,
+  glBufferStorage,
+  glBufferSubData,
+  glCheckFramebufferStatus,
+  glCheckNamedFramebufferStatus,
+  glClampColor,
+  glClear,
+  glClearBufferData,
+  glClearBufferSubData,
+  glClearBufferfi,
+  glClearBufferfv,
+  glClearBufferiv,
+  glClearBufferuiv,
+  glClearColor,
+  glClearDepth,
+  glClearDepthf,
+  glClearNamedBufferData,
+  glClearNamedBufferSubData,
+  glClearNamedFramebufferfi,
+  glClearNamedFramebufferfv,
+  glClearNamedFramebufferiv,
+  glClearNamedFramebufferuiv,
+  glClearStencil,
+  glClearTexImage,
+  glClearTexSubImage,
+  glClientWaitSync,
+  glClipControl,
+  glColorMask,
+  glColorMaski,
+  glCompileShader,
+  glCompressedTexImage1D,
+  glCompressedTexImage2D,
+  glCompressedTexImage3D,
+  glCompressedTexSubImage1D,
+  glCompressedTexSubImage2D,
+  glCompressedTexSubImage3D,
+  glCompressedTextureSubImage1D,
+  glCompressedTextureSubImage2D,
+  glCompressedTextureSubImage3D,
+  glCopyBufferSubData,
+  glCopyImageSubData,
+  glCopyNamedBufferSubData,
+  glCopyTexImage1D,
+  glCopyTexImage2D,
+  glCopyTexSubImage1D,
+  glCopyTexSubImage2D,
+  glCopyTexSubImage3D,
+  glCopyTextureSubImage1D,
+  glCopyTextureSubImage2D,
+  glCopyTextureSubImage3D,
+  glCreateBuffers,
+  glCreateFramebuffers,
+  glCreateProgram,
+  glCreateProgramPipelines,
+  glCreateQueries,
+  glCreateRenderbuffers,
+  glCreateSamplers,
+  glCreateShader,
+  glCreateShaderProgramv,
+  glCreateTextures,
+  glCreateTransformFeedbacks,
+  glCreateVertexArrays,
+  glCullFace,
+  glDebugMessageCallback,
+  glDebugMessageControl,
+  glDebugMessageInsert,
+  glDeleteBuffers,
+  glDeleteFramebuffers,
+  glDeleteProgram,
+  glDeleteProgramPipelines,
+  glDeleteQueries,
+  glDeleteRenderbuffers,
+  glDeleteSamplers,
+  glDeleteShader,
+  glDeleteSync,
+  glDeleteTextures,
+  glDeleteTransformFeedbacks,
+  glDeleteVertexArrays,
+  glDepthFunc,
+  glDepthMask,
+  glDepthRange,
+  glDepthRangeArrayv,
+  glDepthRangeIndexed,
+  glDepthRangef,
+  glDetachShader,
+  glDisable,
+  glDisableVertexArrayAttrib,
+  glDisableVertexAttribArray,
+  glDisablei,
+  glDispatchCompute,
+  glDispatchComputeIndirect,
+  glDrawArrays,
+  glDrawArraysIndirect,
+  glDrawArraysInstanced,
+  glDrawArraysInstancedBaseInstance,
+  glDrawBuffer,
+  glDrawBuffers,
+  glDrawElements,
+  glDrawElementsBaseVertex,
+  glDrawElementsIndirect,
+  glDrawElementsInstanced,
+  glDrawElementsInstancedBaseInstance,
+  glDrawElementsInstancedBaseVertex,
+  glDrawElementsInstancedBaseVertexBaseInstance,
+  glDrawRangeElements,
+  glDrawRangeElementsBaseVertex,
+  glDrawTransformFeedback,
+  glDrawTransformFeedbackInstanced,
+  glDrawTransformFeedbackStream,
+  glDrawTransformFeedbackStreamInstanced,
+  glEnable,
+  glEnableVertexArrayAttrib,
+  glEnableVertexAttribArray,
+  glEnablei,
+  glEndConditionalRender,
+  glEndQuery,
+  glEndQueryIndexed,
+  glEndTransformFeedback,
+  glFenceSync,
+  glFinish,
+  glFlush,
+  glFlushMappedBufferRange,
+  glFlushMappedNamedBufferRange,
+  glFramebufferParameteri,
+  glFramebufferRenderbuffer,
+  glFramebufferTexture,
+  glFramebufferTexture1D,
+  glFramebufferTexture2D,
+  glFramebufferTexture3D,
+  glFramebufferTextureLayer,
+  glFrontFace,
+  glGenBuffers,
+  glGenFramebuffers,
+  glGenProgramPipelines,
+  glGenQueries,
+  glGenRenderbuffers,
+  glGenSamplers,
+  glGenTextures,
+  glGenTransformFeedbacks,
+  glGenVertexArrays,
+  glGenerateMipmap,
+  glGenerateTextureMipmap,
+  glGetActiveAtomicCounterBufferiv,
+  glGetActiveAttrib,
+  glGetActiveSubroutineName,
+  glGetActiveSubroutineUniformName,
+  glGetActiveSubroutineUniformiv,
+  glGetActiveUniform,
+  glGetActiveUniformBlockName,
+  glGetActiveUniformBlockiv,
+  glGetActiveUniformName,
+  glGetActiveUniformsiv,
+  glGetAttachedShaders,
+  glGetAttribLocation,
+  glGetBooleani_v,
+  glGetBooleanv,
+  glGetBufferParameteri64v,
+  glGetBufferParameteriv,
+  glGetBufferPointerv,
+  glGetBufferSubData,
+  glGetCompressedTexImage,
+  glGetCompressedTextureImage,
+  glGetCompressedTextureSubImage,
+  glGetDebugMessageLog,
+  glGetDoublei_v,
+  glGetDoublev,
+  glGetError,
+  glGetFloati_v,
+  glGetFloatv,
+  glGetFragDataIndex,
+  glGetFragDataLocation,
+  glGetFramebufferAttachmentParameteriv,
+  glGetFramebufferParameteriv,
+  glGetGraphicsResetStatus,
+  glGetInteger64i_v,
+  glGetInteger64v,
+  glGetIntegeri_v,
+  glGetIntegerv,
+  glGetInternalformati64v,
+  glGetInternalformativ,
+  glGetMultisamplefv,
+  glGetNamedBufferParameteri64v,
+  glGetNamedBufferParameteriv,
+  glGetNamedBufferPointerv,
+  glGetNamedBufferSubData,
+  glGetNamedFramebufferAttachmentParameteriv,
+  glGetNamedFramebufferParameteriv,
+  glGetNamedRenderbufferParameteriv,
+  glGetObjectLabel,
+  glGetObjectPtrLabel,
+  glGetPointerv,
+  glGetProgramBinary,
+  glGetProgramInfoLog,
+  glGetProgramInterfaceiv,
+  glGetProgramPipelineInfoLog,
+  glGetProgramPipelineiv,
+  glGetProgramResourceIndex,
+  glGetProgramResourceLocation,
+  glGetProgramResourceLocationIndex,
+  glGetProgramResourceName,
+  glGetProgramResourceiv,
+  glGetProgramStageiv,
+  glGetProgramiv,
+  glGetQueryBufferObjecti64v,
+  glGetQueryBufferObjectiv,
+  glGetQueryBufferObjectui64v,
+  glGetQueryBufferObjectuiv,
+  glGetQueryIndexediv,
+  glGetQueryObjecti64v,
+  glGetQueryObjectiv,
+  glGetQueryObjectui64v,
+  glGetQueryObjectuiv,
+  glGetQueryiv,
+  glGetRenderbufferParameteriv,
+  glGetSamplerParameterIiv,
+  glGetSamplerParameterIuiv,
+  glGetSamplerParameterfv,
+  glGetSamplerParameteriv,
+  glGetShaderInfoLog,
+  glGetShaderPrecisionFormat,
+  glGetShaderSource,
+  glGetShaderiv,
+  glGetString,
+  glGetStringi,
+  glGetSubroutineIndex,
+  glGetSubroutineUniformLocation,
+  glGetSynciv,
+  glGetTexImage,
+  glGetTexLevelParameterfv,
+  glGetTexLevelParameteriv,
+  glGetTexParameterIiv,
+  glGetTexParameterIuiv,
+  glGetTexParameterfv,
+  glGetTexParameteriv,
+  glGetTextureImage,
+  glGetTextureLevelParameterfv,
+  glGetTextureLevelParameteriv,
+  glGetTextureParameterIiv,
+  glGetTextureParameterIuiv,
+  glGetTextureParameterfv,
+  glGetTextureParameteriv,
+  glGetTextureSubImage,
+  glGetTransformFeedbackVarying,
+  glGetTransformFeedbacki64_v,
+  glGetTransformFeedbacki_v,
+  glGetTransformFeedbackiv,
+  glGetUniformBlockIndex,
+  glGetUniformIndices,
+  glGetUniformLocation,
+  glGetUniformSubroutineuiv,
+  glGetUniformdv,
+  glGetUniformfv,
+  glGetUniformiv,
+  glGetUniformuiv,
+  glGetVertexArrayIndexed64iv,
+  glGetVertexArrayIndexediv,
+  glGetVertexArrayiv,
+  glGetVertexAttribIiv,
+  glGetVertexAttribIuiv,
+  glGetVertexAttribLdv,
+  glGetVertexAttribPointerv,
+  glGetVertexAttribdv,
+  glGetVertexAttribfv,
+  glGetVertexAttribiv,
+  glGetnCompressedTexImage,
+  glGetnTexImage,
+  glGetnUniformdv,
+  glGetnUniformfv,
+  glGetnUniformiv,
+  glGetnUniformuiv,
+  glHint,
+  glInvalidateBufferData,
+  glInvalidateBufferSubData,
+  glInvalidateFramebuffer,
+  glInvalidateNamedFramebufferData,
+  glInvalidateNamedFramebufferSubData,
+  glInvalidateSubFramebuffer,
+  glInvalidateTexImage,
+  glInvalidateTexSubImage,
+  glIsBuffer,
+  glIsEnabled,
+  glIsEnabledi,
+  glIsFramebuffer,
+  glIsProgram,
+  glIsProgramPipeline,
+  glIsQuery,
+  glIsRenderbuffer,
+  glIsSampler,
+  glIsShader,
+  glIsSync,
+  glIsTexture,
+  glIsTransformFeedback,
+  glIsVertexArray,
+  glLineWidth,
+  glLinkProgram,
+  glLogicOp,
+  glMapBuffer,
+  glMapBufferRange,
+  glMapNamedBuffer,
+  glMapNamedBufferRange,
+  glMemoryBarrier,
+  glMemoryBarrierByRegion,
+  glMinSampleShading,
+  glMultiDrawArrays,
+  glMultiDrawArraysIndirect,
+  glMultiDrawElements,
+  glMultiDrawElementsBaseVertex,
+  glMultiDrawElementsIndirect,
+  glNamedBufferData,
+  glNamedBufferStorage,
+  glNamedBufferSubData,
+  glNamedFramebufferDrawBuffer,
+  glNamedFramebufferDrawBuffers,
+  glNamedFramebufferParameteri,
+  glNamedFramebufferReadBuffer,
+  glNamedFramebufferRenderbuffer,
+  glNamedFramebufferTexture,
+  glNamedFramebufferTextureLayer,
+  glNamedRenderbufferStorage,
+  glNamedRenderbufferStorageMultisample,
+  glObjectLabel,
+  glObjectPtrLabel,
+  glPatchParameterfv,
+  glPatchParameteri,
+  glPauseTransformFeedback,
+  glPixelStoref,
+  glPixelStorei,
+  glPointParameterf,
+  glPointParameterfv,
+  glPointParameteri,
+  glPointParameteriv,
+  glPointSize,
+  glPolygonMode,
+  glPolygonOffset,
+  glPopDebugGroup,
+  glPrimitiveRestartIndex,
+  glProgramBinary,
+  glProgramParameteri,
+  glProgramUniform1d,
+  glProgramUniform1dv,
+  glProgramUniform1f,
+  glProgramUniform1fv,
+  glProgramUniform1i,
+  glProgramUniform1iv,
+  glProgramUniform1ui,
+  glProgramUniform1uiv,
+  glProgramUniform2d,
+  glProgramUniform2dv,
+  glProgramUniform2f,
+  glProgramUniform2fv,
+  glProgramUniform2i,
+  glProgramUniform2iv,
+  glProgramUniform2ui,
+  glProgramUniform2uiv,
+  glProgramUniform3d,
+  glProgramUniform3dv,
+  glProgramUniform3f,
+  glProgramUniform3fv,
+  glProgramUniform3i,
+  glProgramUniform3iv,
+  glProgramUniform3ui,
+  glProgramUniform3uiv,
+  glProgramUniform4d,
+  glProgramUniform4dv,
+  glProgramUniform4f,
+  glProgramUniform4fv,
+  glProgramUniform4i,
+  glProgramUniform4iv,
+  glProgramUniform4ui,
+  glProgramUniform4uiv,
+  glProgramUniformMatrix2dv,
+  glProgramUniformMatrix2fv,
+  glProgramUniformMatrix2x3dv,
+  glProgramUniformMatrix2x3fv,
+  glProgramUniformMatrix2x4dv,
+  glProgramUniformMatrix2x4fv,
+  glProgramUniformMatrix3dv,
+  glProgramUniformMatrix3fv,
+  glProgramUniformMatrix3x2dv,
+  glProgramUniformMatrix3x2fv,
+  glProgramUniformMatrix3x4dv,
+  glProgramUniformMatrix3x4fv,
+  glProgramUniformMatrix4dv,
+  glProgramUniformMatrix4fv,
+  glProgramUniformMatrix4x2dv,
+  glProgramUniformMatrix4x2fv,
+  glProgramUniformMatrix4x3dv,
+  glProgramUniformMatrix4x3fv,
+  glProvokingVertex,
+  glPushDebugGroup,
+  glQueryCounter,
+  glReadBuffer,
+  glReadPixels,
+  glReadnPixels,
+  glReleaseShaderCompiler,
+  glRenderbufferStorage,
+  glRenderbufferStorageMultisample,
+  glResumeTransformFeedback,
+  glSampleCoverage,
+  glSampleMaski,
+  glSamplerParameterIiv,
+  glSamplerParameterIuiv,
+  glSamplerParameterf,
+  glSamplerParameterfv,
+  glSamplerParameteri,
+  glSamplerParameteriv,
+  glScissor,
+  glScissorArrayv,
+  glScissorIndexed,
+  glScissorIndexedv,
+  glShaderBinary,
+  glShaderSource,
+  glShaderStorageBlockBinding,
+  glStencilFunc,
+  glStencilFuncSeparate,
+  glStencilMask,
+  glStencilMaskSeparate,
+  glStencilOp,
+  glStencilOpSeparate,
+  glTexBuffer,
+  glTexBufferRange,
+  glTexImage1D,
+  glTexImage2D,
+  glTexImage2DMultisample,
+  glTexImage3D,
+  glTexImage3DMultisample,
+  glTexParameterIiv,
+  glTexParameterIuiv,
+  glTexParameterf,
+  glTexParameterfv,
+  glTexParameteri,
+  glTexParameteriv,
+  glTexStorage1D,
+  glTexStorage2D,
+  glTexStorage2DMultisample,
+  glTexStorage3D,
+  glTexStorage3DMultisample,
+  glTexSubImage1D,
+  glTexSubImage2D,
+  glTexSubImage3D,
+  glTextureBarrier,
+  glTextureBuffer,
+  glTextureBufferRange,
+  glTextureParameterIiv,
+  glTextureParameterIuiv,
+  glTextureParameterf,
+  glTextureParameterfv,
+  glTextureParameteri,
+  glTextureParameteriv,
+  glTextureStorage1D,
+  glTextureStorage2D,
+  glTextureStorage2DMultisample,
+  glTextureStorage3D,
+  glTextureStorage3DMultisample,
+  glTextureSubImage1D,
+  glTextureSubImage2D,
+  glTextureSubImage3D,
+  glTextureView,
+  glTransformFeedbackBufferBase,
+  glTransformFeedbackBufferRange,
+  glTransformFeedbackVaryings,
+  glUniform1d,
+  glUniform1dv,
+  glUniform1f,
+  glUniform1fv,
+  glUniform1i,
+  glUniform1iv,
+  glUniform1ui,
+  glUniform1uiv,
+  glUniform2d,
+  glUniform2dv,
+  glUniform2f,
+  glUniform2fv,
+  glUniform2i,
+  glUniform2iv,
+  glUniform2ui,
+  glUniform2uiv,
+  glUniform3d,
+  glUniform3dv,
+  glUniform3f,
+  glUniform3fv,
+  glUniform3i,
+  glUniform3iv,
+  glUniform3ui,
+  glUniform3uiv,
+  glUniform4d,
+  glUniform4dv,
+  glUniform4f,
+  glUniform4fv,
+  glUniform4i,
+  glUniform4iv,
+  glUniform4ui,
+  glUniform4uiv,
+  glUniformBlockBinding,
+  glUniformMatrix2dv,
+  glUniformMatrix2fv,
+  glUniformMatrix2x3dv,
+  glUniformMatrix2x3fv,
+  glUniformMatrix2x4dv,
+  glUniformMatrix2x4fv,
+  glUniformMatrix3dv,
+  glUniformMatrix3fv,
+  glUniformMatrix3x2dv,
+  glUniformMatrix3x2fv,
+  glUniformMatrix3x4dv,
+  glUniformMatrix3x4fv,
+  glUniformMatrix4dv,
+  glUniformMatrix4fv,
+  glUniformMatrix4x2dv,
+  glUniformMatrix4x2fv,
+  glUniformMatrix4x3dv,
+  glUniformMatrix4x3fv,
+  glUniformSubroutinesuiv,
+  glUnmapBuffer,
+  glUnmapNamedBuffer,
+  glUseProgram,
+  glUseProgramStages,
+  glValidateProgram,
+  glValidateProgramPipeline,
+  glVertexArrayAttribBinding,
+  glVertexArrayAttribFormat,
+  glVertexArrayAttribIFormat,
+  glVertexArrayAttribLFormat,
+  glVertexArrayBindingDivisor,
+  glVertexArrayElementBuffer,
+  glVertexArrayVertexBuffer,
+  glVertexArrayVertexBuffers,
+  glVertexAttrib1d,
+  glVertexAttrib1dv,
+  glVertexAttrib1f,
+  glVertexAttrib1fv,
+  glVertexAttrib1s,
+  glVertexAttrib1sv,
+  glVertexAttrib2d,
+  glVertexAttrib2dv,
+  glVertexAttrib2f,
+  glVertexAttrib2fv,
+  glVertexAttrib2s,
+  glVertexAttrib2sv,
+  glVertexAttrib3d,
+  glVertexAttrib3dv,
+  glVertexAttrib3f,
+  glVertexAttrib3fv,
+  glVertexAttrib3s,
+  glVertexAttrib3sv,
+  glVertexAttrib4Nbv,
+  glVertexAttrib4Niv,
+  glVertexAttrib4Nsv,
+  glVertexAttrib4Nub,
+  glVertexAttrib4Nubv,
+  glVertexAttrib4Nuiv,
+  glVertexAttrib4Nusv,
+  glVertexAttrib4bv,
+  glVertexAttrib4d,
+  glVertexAttrib4dv,
+  glVertexAttrib4f,
+  glVertexAttrib4fv,
+  glVertexAttrib4iv,
+  glVertexAttrib4s,
+  glVertexAttrib4sv,
+  glVertexAttrib4ubv,
+  glVertexAttrib4uiv,
+  glVertexAttrib4usv,
+  glVertexAttribBinding,
+  glVertexAttribDivisor,
+  glVertexAttribFormat,
+  glVertexAttribI1i,
+  glVertexAttribI1iv,
+  glVertexAttribI1ui,
+  glVertexAttribI1uiv,
+  glVertexAttribI2i,
+  glVertexAttribI2iv,
+  glVertexAttribI2ui,
+  glVertexAttribI2uiv,
+  glVertexAttribI3i,
+  glVertexAttribI3iv,
+  glVertexAttribI3ui,
+  glVertexAttribI3uiv,
+  glVertexAttribI4bv,
+  glVertexAttribI4i,
+  glVertexAttribI4iv,
+  glVertexAttribI4sv,
+  glVertexAttribI4ubv,
+  glVertexAttribI4ui,
+  glVertexAttribI4uiv,
+  glVertexAttribI4usv,
+  glVertexAttribIFormat,
+  glVertexAttribIPointer,
+  glVertexAttribL1d,
+  glVertexAttribL1dv,
+  glVertexAttribL2d,
+  glVertexAttribL2dv,
+  glVertexAttribL3d,
+  glVertexAttribL3dv,
+  glVertexAttribL4d,
+  glVertexAttribL4dv,
+  glVertexAttribLFormat,
+  glVertexAttribLPointer,
+  glVertexAttribP1ui,
+  glVertexAttribP1uiv,
+  glVertexAttribP2ui,
+  glVertexAttribP2uiv,
+  glVertexAttribP3ui,
+  glVertexAttribP3uiv,
+  glVertexAttribP4ui,
+  glVertexAttribP4uiv,
+  glVertexAttribPointer,
+  glVertexBindingDivisor,
+  glViewport,
+  glViewportArrayv,
+  glViewportIndexedf,
+  glViewportIndexedfv,
+  glWaitSync
+) where
+
+import Graphics.GL.Types
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/Core46.hs b/src/Graphics/GL/Core46.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Core46.hs
@@ -0,0 +1,2071 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Core46
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Core46 (
+  -- * Types
+  GLDEBUGPROC,
+  GLDEBUGPROCFunc,
+  GLbitfield,
+  GLboolean,
+  GLbyte,
+  GLchar,
+  GLclampd,
+  GLclampf,
+  GLdouble,
+  GLenum,
+  GLfloat,
+  GLhalf,
+  GLint,
+  GLint64,
+  GLintptr,
+  GLshort,
+  GLsizei,
+  GLsizeiptr,
+  GLsync,
+  GLubyte,
+  GLuint,
+  GLuint64,
+  GLushort,
+  GLvoid,
+  makeGLDEBUGPROC,
+  -- * Enums
+  pattern GL_ACTIVE_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_ACTIVE_ATTRIBUTES,
+  pattern GL_ACTIVE_ATTRIBUTE_MAX_LENGTH,
+  pattern GL_ACTIVE_PROGRAM,
+  pattern GL_ACTIVE_RESOURCES,
+  pattern GL_ACTIVE_SUBROUTINES,
+  pattern GL_ACTIVE_SUBROUTINE_MAX_LENGTH,
+  pattern GL_ACTIVE_SUBROUTINE_UNIFORMS,
+  pattern GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS,
+  pattern GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH,
+  pattern GL_ACTIVE_TEXTURE,
+  pattern GL_ACTIVE_UNIFORMS,
+  pattern GL_ACTIVE_UNIFORM_BLOCKS,
+  pattern GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH,
+  pattern GL_ACTIVE_UNIFORM_MAX_LENGTH,
+  pattern GL_ACTIVE_VARIABLES,
+  pattern GL_ALIASED_LINE_WIDTH_RANGE,
+  pattern GL_ALL_BARRIER_BITS,
+  pattern GL_ALL_SHADER_BITS,
+  pattern GL_ALPHA,
+  pattern GL_ALREADY_SIGNALED,
+  pattern GL_ALWAYS,
+  pattern GL_AND,
+  pattern GL_AND_INVERTED,
+  pattern GL_AND_REVERSE,
+  pattern GL_ANY_SAMPLES_PASSED,
+  pattern GL_ANY_SAMPLES_PASSED_CONSERVATIVE,
+  pattern GL_ARRAY_BUFFER,
+  pattern GL_ARRAY_BUFFER_BINDING,
+  pattern GL_ARRAY_SIZE,
+  pattern GL_ARRAY_STRIDE,
+  pattern GL_ATOMIC_COUNTER_BARRIER_BIT,
+  pattern GL_ATOMIC_COUNTER_BUFFER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS,
+  pattern GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES,
+  pattern GL_ATOMIC_COUNTER_BUFFER_BINDING,
+  pattern GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE,
+  pattern GL_ATOMIC_COUNTER_BUFFER_INDEX,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER,
+  pattern GL_ATOMIC_COUNTER_BUFFER_SIZE,
+  pattern GL_ATOMIC_COUNTER_BUFFER_START,
+  pattern GL_ATTACHED_SHADERS,
+  pattern GL_AUTO_GENERATE_MIPMAP,
+  pattern GL_BACK,
+  pattern GL_BACK_LEFT,
+  pattern GL_BACK_RIGHT,
+  pattern GL_BGR,
+  pattern GL_BGRA,
+  pattern GL_BGRA_INTEGER,
+  pattern GL_BGR_INTEGER,
+  pattern GL_BLEND,
+  pattern GL_BLEND_COLOR,
+  pattern GL_BLEND_DST,
+  pattern GL_BLEND_DST_ALPHA,
+  pattern GL_BLEND_DST_RGB,
+  pattern GL_BLEND_EQUATION,
+  pattern GL_BLEND_EQUATION_ALPHA,
+  pattern GL_BLEND_EQUATION_RGB,
+  pattern GL_BLEND_SRC,
+  pattern GL_BLEND_SRC_ALPHA,
+  pattern GL_BLEND_SRC_RGB,
+  pattern GL_BLOCK_INDEX,
+  pattern GL_BLUE,
+  pattern GL_BLUE_INTEGER,
+  pattern GL_BOOL,
+  pattern GL_BOOL_VEC2,
+  pattern GL_BOOL_VEC3,
+  pattern GL_BOOL_VEC4,
+  pattern GL_BUFFER,
+  pattern GL_BUFFER_ACCESS,
+  pattern GL_BUFFER_ACCESS_FLAGS,
+  pattern GL_BUFFER_BINDING,
+  pattern GL_BUFFER_DATA_SIZE,
+  pattern GL_BUFFER_IMMUTABLE_STORAGE,
+  pattern GL_BUFFER_MAPPED,
+  pattern GL_BUFFER_MAP_LENGTH,
+  pattern GL_BUFFER_MAP_OFFSET,
+  pattern GL_BUFFER_MAP_POINTER,
+  pattern GL_BUFFER_SIZE,
+  pattern GL_BUFFER_STORAGE_FLAGS,
+  pattern GL_BUFFER_UPDATE_BARRIER_BIT,
+  pattern GL_BUFFER_USAGE,
+  pattern GL_BUFFER_VARIABLE,
+  pattern GL_BYTE,
+  pattern GL_CAVEAT_SUPPORT,
+  pattern GL_CCW,
+  pattern GL_CLAMP_READ_COLOR,
+  pattern GL_CLAMP_TO_BORDER,
+  pattern GL_CLAMP_TO_EDGE,
+  pattern GL_CLEAR,
+  pattern GL_CLEAR_BUFFER,
+  pattern GL_CLEAR_TEXTURE,
+  pattern GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT,
+  pattern GL_CLIENT_STORAGE_BIT,
+  pattern GL_CLIPPING_INPUT_PRIMITIVES,
+  pattern GL_CLIPPING_OUTPUT_PRIMITIVES,
+  pattern GL_CLIP_DEPTH_MODE,
+  pattern GL_CLIP_DISTANCE0,
+  pattern GL_CLIP_DISTANCE1,
+  pattern GL_CLIP_DISTANCE2,
+  pattern GL_CLIP_DISTANCE3,
+  pattern GL_CLIP_DISTANCE4,
+  pattern GL_CLIP_DISTANCE5,
+  pattern GL_CLIP_DISTANCE6,
+  pattern GL_CLIP_DISTANCE7,
+  pattern GL_CLIP_ORIGIN,
+  pattern GL_COLOR,
+  pattern GL_COLOR_ATTACHMENT0,
+  pattern GL_COLOR_ATTACHMENT1,
+  pattern GL_COLOR_ATTACHMENT10,
+  pattern GL_COLOR_ATTACHMENT11,
+  pattern GL_COLOR_ATTACHMENT12,
+  pattern GL_COLOR_ATTACHMENT13,
+  pattern GL_COLOR_ATTACHMENT14,
+  pattern GL_COLOR_ATTACHMENT15,
+  pattern GL_COLOR_ATTACHMENT16,
+  pattern GL_COLOR_ATTACHMENT17,
+  pattern GL_COLOR_ATTACHMENT18,
+  pattern GL_COLOR_ATTACHMENT19,
+  pattern GL_COLOR_ATTACHMENT2,
+  pattern GL_COLOR_ATTACHMENT20,
+  pattern GL_COLOR_ATTACHMENT21,
+  pattern GL_COLOR_ATTACHMENT22,
+  pattern GL_COLOR_ATTACHMENT23,
+  pattern GL_COLOR_ATTACHMENT24,
+  pattern GL_COLOR_ATTACHMENT25,
+  pattern GL_COLOR_ATTACHMENT26,
+  pattern GL_COLOR_ATTACHMENT27,
+  pattern GL_COLOR_ATTACHMENT28,
+  pattern GL_COLOR_ATTACHMENT29,
+  pattern GL_COLOR_ATTACHMENT3,
+  pattern GL_COLOR_ATTACHMENT30,
+  pattern GL_COLOR_ATTACHMENT31,
+  pattern GL_COLOR_ATTACHMENT4,
+  pattern GL_COLOR_ATTACHMENT5,
+  pattern GL_COLOR_ATTACHMENT6,
+  pattern GL_COLOR_ATTACHMENT7,
+  pattern GL_COLOR_ATTACHMENT8,
+  pattern GL_COLOR_ATTACHMENT9,
+  pattern GL_COLOR_BUFFER_BIT,
+  pattern GL_COLOR_CLEAR_VALUE,
+  pattern GL_COLOR_COMPONENTS,
+  pattern GL_COLOR_ENCODING,
+  pattern GL_COLOR_LOGIC_OP,
+  pattern GL_COLOR_RENDERABLE,
+  pattern GL_COLOR_WRITEMASK,
+  pattern GL_COMMAND_BARRIER_BIT,
+  pattern GL_COMPARE_REF_TO_TEXTURE,
+  pattern GL_COMPATIBLE_SUBROUTINES,
+  pattern GL_COMPILE_STATUS,
+  pattern GL_COMPRESSED_R11_EAC,
+  pattern GL_COMPRESSED_RED,
+  pattern GL_COMPRESSED_RED_RGTC1,
+  pattern GL_COMPRESSED_RG,
+  pattern GL_COMPRESSED_RG11_EAC,
+  pattern GL_COMPRESSED_RGB,
+  pattern GL_COMPRESSED_RGB8_ETC2,
+  pattern GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,
+  pattern GL_COMPRESSED_RGBA,
+  pattern GL_COMPRESSED_RGBA8_ETC2_EAC,
+  pattern GL_COMPRESSED_RGBA_BPTC_UNORM,
+  pattern GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT,
+  pattern GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT,
+  pattern GL_COMPRESSED_RG_RGTC2,
+  pattern GL_COMPRESSED_SIGNED_R11_EAC,
+  pattern GL_COMPRESSED_SIGNED_RED_RGTC1,
+  pattern GL_COMPRESSED_SIGNED_RG11_EAC,
+  pattern GL_COMPRESSED_SIGNED_RG_RGTC2,
+  pattern GL_COMPRESSED_SRGB,
+  pattern GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,
+  pattern GL_COMPRESSED_SRGB8_ETC2,
+  pattern GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,
+  pattern GL_COMPRESSED_SRGB_ALPHA,
+  pattern GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM,
+  pattern GL_COMPRESSED_TEXTURE_FORMATS,
+  pattern GL_COMPUTE_SHADER,
+  pattern GL_COMPUTE_SHADER_BIT,
+  pattern GL_COMPUTE_SHADER_INVOCATIONS,
+  pattern GL_COMPUTE_SUBROUTINE,
+  pattern GL_COMPUTE_SUBROUTINE_UNIFORM,
+  pattern GL_COMPUTE_TEXTURE,
+  pattern GL_COMPUTE_WORK_GROUP_SIZE,
+  pattern GL_CONDITION_SATISFIED,
+  pattern GL_CONSTANT_ALPHA,
+  pattern GL_CONSTANT_COLOR,
+  pattern GL_CONTEXT_COMPATIBILITY_PROFILE_BIT,
+  pattern GL_CONTEXT_CORE_PROFILE_BIT,
+  pattern GL_CONTEXT_FLAGS,
+  pattern GL_CONTEXT_FLAG_DEBUG_BIT,
+  pattern GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT,
+  pattern GL_CONTEXT_FLAG_NO_ERROR_BIT,
+  pattern GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT,
+  pattern GL_CONTEXT_LOST,
+  pattern GL_CONTEXT_PROFILE_MASK,
+  pattern GL_CONTEXT_RELEASE_BEHAVIOR,
+  pattern GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH,
+  pattern GL_COPY,
+  pattern GL_COPY_INVERTED,
+  pattern GL_COPY_READ_BUFFER,
+  pattern GL_COPY_READ_BUFFER_BINDING,
+  pattern GL_COPY_WRITE_BUFFER,
+  pattern GL_COPY_WRITE_BUFFER_BINDING,
+  pattern GL_CULL_FACE,
+  pattern GL_CULL_FACE_MODE,
+  pattern GL_CURRENT_PROGRAM,
+  pattern GL_CURRENT_QUERY,
+  pattern GL_CURRENT_VERTEX_ATTRIB,
+  pattern GL_CW,
+  pattern GL_DEBUG_CALLBACK_FUNCTION,
+  pattern GL_DEBUG_CALLBACK_USER_PARAM,
+  pattern GL_DEBUG_GROUP_STACK_DEPTH,
+  pattern GL_DEBUG_LOGGED_MESSAGES,
+  pattern GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH,
+  pattern GL_DEBUG_OUTPUT,
+  pattern GL_DEBUG_OUTPUT_SYNCHRONOUS,
+  pattern GL_DEBUG_SEVERITY_HIGH,
+  pattern GL_DEBUG_SEVERITY_LOW,
+  pattern GL_DEBUG_SEVERITY_MEDIUM,
+  pattern GL_DEBUG_SEVERITY_NOTIFICATION,
+  pattern GL_DEBUG_SOURCE_API,
+  pattern GL_DEBUG_SOURCE_APPLICATION,
+  pattern GL_DEBUG_SOURCE_OTHER,
+  pattern GL_DEBUG_SOURCE_SHADER_COMPILER,
+  pattern GL_DEBUG_SOURCE_THIRD_PARTY,
+  pattern GL_DEBUG_SOURCE_WINDOW_SYSTEM,
+  pattern GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR,
+  pattern GL_DEBUG_TYPE_ERROR,
+  pattern GL_DEBUG_TYPE_MARKER,
+  pattern GL_DEBUG_TYPE_OTHER,
+  pattern GL_DEBUG_TYPE_PERFORMANCE,
+  pattern GL_DEBUG_TYPE_POP_GROUP,
+  pattern GL_DEBUG_TYPE_PORTABILITY,
+  pattern GL_DEBUG_TYPE_PUSH_GROUP,
+  pattern GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR,
+  pattern GL_DECR,
+  pattern GL_DECR_WRAP,
+  pattern GL_DELETE_STATUS,
+  pattern GL_DEPTH,
+  pattern GL_DEPTH24_STENCIL8,
+  pattern GL_DEPTH32F_STENCIL8,
+  pattern GL_DEPTH_ATTACHMENT,
+  pattern GL_DEPTH_BUFFER_BIT,
+  pattern GL_DEPTH_CLAMP,
+  pattern GL_DEPTH_CLEAR_VALUE,
+  pattern GL_DEPTH_COMPONENT,
+  pattern GL_DEPTH_COMPONENT16,
+  pattern GL_DEPTH_COMPONENT24,
+  pattern GL_DEPTH_COMPONENT32,
+  pattern GL_DEPTH_COMPONENT32F,
+  pattern GL_DEPTH_COMPONENTS,
+  pattern GL_DEPTH_FUNC,
+  pattern GL_DEPTH_RANGE,
+  pattern GL_DEPTH_RENDERABLE,
+  pattern GL_DEPTH_STENCIL,
+  pattern GL_DEPTH_STENCIL_ATTACHMENT,
+  pattern GL_DEPTH_STENCIL_TEXTURE_MODE,
+  pattern GL_DEPTH_TEST,
+  pattern GL_DEPTH_WRITEMASK,
+  pattern GL_DISPATCH_INDIRECT_BUFFER,
+  pattern GL_DISPATCH_INDIRECT_BUFFER_BINDING,
+  pattern GL_DITHER,
+  pattern GL_DONT_CARE,
+  pattern GL_DOUBLE,
+  pattern GL_DOUBLEBUFFER,
+  pattern GL_DOUBLE_MAT2,
+  pattern GL_DOUBLE_MAT2x3,
+  pattern GL_DOUBLE_MAT2x4,
+  pattern GL_DOUBLE_MAT3,
+  pattern GL_DOUBLE_MAT3x2,
+  pattern GL_DOUBLE_MAT3x4,
+  pattern GL_DOUBLE_MAT4,
+  pattern GL_DOUBLE_MAT4x2,
+  pattern GL_DOUBLE_MAT4x3,
+  pattern GL_DOUBLE_VEC2,
+  pattern GL_DOUBLE_VEC3,
+  pattern GL_DOUBLE_VEC4,
+  pattern GL_DRAW_BUFFER,
+  pattern GL_DRAW_BUFFER0,
+  pattern GL_DRAW_BUFFER1,
+  pattern GL_DRAW_BUFFER10,
+  pattern GL_DRAW_BUFFER11,
+  pattern GL_DRAW_BUFFER12,
+  pattern GL_DRAW_BUFFER13,
+  pattern GL_DRAW_BUFFER14,
+  pattern GL_DRAW_BUFFER15,
+  pattern GL_DRAW_BUFFER2,
+  pattern GL_DRAW_BUFFER3,
+  pattern GL_DRAW_BUFFER4,
+  pattern GL_DRAW_BUFFER5,
+  pattern GL_DRAW_BUFFER6,
+  pattern GL_DRAW_BUFFER7,
+  pattern GL_DRAW_BUFFER8,
+  pattern GL_DRAW_BUFFER9,
+  pattern GL_DRAW_FRAMEBUFFER,
+  pattern GL_DRAW_FRAMEBUFFER_BINDING,
+  pattern GL_DRAW_INDIRECT_BUFFER,
+  pattern GL_DRAW_INDIRECT_BUFFER_BINDING,
+  pattern GL_DST_ALPHA,
+  pattern GL_DST_COLOR,
+  pattern GL_DYNAMIC_COPY,
+  pattern GL_DYNAMIC_DRAW,
+  pattern GL_DYNAMIC_READ,
+  pattern GL_DYNAMIC_STORAGE_BIT,
+  pattern GL_ELEMENT_ARRAY_BARRIER_BIT,
+  pattern GL_ELEMENT_ARRAY_BUFFER,
+  pattern GL_ELEMENT_ARRAY_BUFFER_BINDING,
+  pattern GL_EQUAL,
+  pattern GL_EQUIV,
+  pattern GL_EXTENSIONS,
+  pattern GL_FALSE,
+  pattern GL_FASTEST,
+  pattern GL_FILL,
+  pattern GL_FILTER,
+  pattern GL_FIRST_VERTEX_CONVENTION,
+  pattern GL_FIXED,
+  pattern GL_FIXED_ONLY,
+  pattern GL_FLOAT,
+  pattern GL_FLOAT_32_UNSIGNED_INT_24_8_REV,
+  pattern GL_FLOAT_MAT2,
+  pattern GL_FLOAT_MAT2x3,
+  pattern GL_FLOAT_MAT2x4,
+  pattern GL_FLOAT_MAT3,
+  pattern GL_FLOAT_MAT3x2,
+  pattern GL_FLOAT_MAT3x4,
+  pattern GL_FLOAT_MAT4,
+  pattern GL_FLOAT_MAT4x2,
+  pattern GL_FLOAT_MAT4x3,
+  pattern GL_FLOAT_VEC2,
+  pattern GL_FLOAT_VEC3,
+  pattern GL_FLOAT_VEC4,
+  pattern GL_FRACTIONAL_EVEN,
+  pattern GL_FRACTIONAL_ODD,
+  pattern GL_FRAGMENT_INTERPOLATION_OFFSET_BITS,
+  pattern GL_FRAGMENT_SHADER,
+  pattern GL_FRAGMENT_SHADER_BIT,
+  pattern GL_FRAGMENT_SHADER_DERIVATIVE_HINT,
+  pattern GL_FRAGMENT_SHADER_INVOCATIONS,
+  pattern GL_FRAGMENT_SUBROUTINE,
+  pattern GL_FRAGMENT_SUBROUTINE_UNIFORM,
+  pattern GL_FRAGMENT_TEXTURE,
+  pattern GL_FRAMEBUFFER,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL,
+  pattern GL_FRAMEBUFFER_BARRIER_BIT,
+  pattern GL_FRAMEBUFFER_BINDING,
+  pattern GL_FRAMEBUFFER_BLEND,
+  pattern GL_FRAMEBUFFER_COMPLETE,
+  pattern GL_FRAMEBUFFER_DEFAULT,
+  pattern GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS,
+  pattern GL_FRAMEBUFFER_DEFAULT_HEIGHT,
+  pattern GL_FRAMEBUFFER_DEFAULT_LAYERS,
+  pattern GL_FRAMEBUFFER_DEFAULT_SAMPLES,
+  pattern GL_FRAMEBUFFER_DEFAULT_WIDTH,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER,
+  pattern GL_FRAMEBUFFER_RENDERABLE,
+  pattern GL_FRAMEBUFFER_RENDERABLE_LAYERED,
+  pattern GL_FRAMEBUFFER_SRGB,
+  pattern GL_FRAMEBUFFER_UNDEFINED,
+  pattern GL_FRAMEBUFFER_UNSUPPORTED,
+  pattern GL_FRONT,
+  pattern GL_FRONT_AND_BACK,
+  pattern GL_FRONT_FACE,
+  pattern GL_FRONT_LEFT,
+  pattern GL_FRONT_RIGHT,
+  pattern GL_FULL_SUPPORT,
+  pattern GL_FUNC_ADD,
+  pattern GL_FUNC_REVERSE_SUBTRACT,
+  pattern GL_FUNC_SUBTRACT,
+  pattern GL_GEOMETRY_INPUT_TYPE,
+  pattern GL_GEOMETRY_OUTPUT_TYPE,
+  pattern GL_GEOMETRY_SHADER,
+  pattern GL_GEOMETRY_SHADER_BIT,
+  pattern GL_GEOMETRY_SHADER_INVOCATIONS,
+  pattern GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED,
+  pattern GL_GEOMETRY_SUBROUTINE,
+  pattern GL_GEOMETRY_SUBROUTINE_UNIFORM,
+  pattern GL_GEOMETRY_TEXTURE,
+  pattern GL_GEOMETRY_VERTICES_OUT,
+  pattern GL_GEQUAL,
+  pattern GL_GET_TEXTURE_IMAGE_FORMAT,
+  pattern GL_GET_TEXTURE_IMAGE_TYPE,
+  pattern GL_GREATER,
+  pattern GL_GREEN,
+  pattern GL_GREEN_INTEGER,
+  pattern GL_GUILTY_CONTEXT_RESET,
+  pattern GL_HALF_FLOAT,
+  pattern GL_HIGH_FLOAT,
+  pattern GL_HIGH_INT,
+  pattern GL_IMAGE_1D,
+  pattern GL_IMAGE_1D_ARRAY,
+  pattern GL_IMAGE_2D,
+  pattern GL_IMAGE_2D_ARRAY,
+  pattern GL_IMAGE_2D_MULTISAMPLE,
+  pattern GL_IMAGE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_IMAGE_2D_RECT,
+  pattern GL_IMAGE_3D,
+  pattern GL_IMAGE_BINDING_ACCESS,
+  pattern GL_IMAGE_BINDING_FORMAT,
+  pattern GL_IMAGE_BINDING_LAYER,
+  pattern GL_IMAGE_BINDING_LAYERED,
+  pattern GL_IMAGE_BINDING_LEVEL,
+  pattern GL_IMAGE_BINDING_NAME,
+  pattern GL_IMAGE_BUFFER,
+  pattern GL_IMAGE_CLASS_10_10_10_2,
+  pattern GL_IMAGE_CLASS_11_11_10,
+  pattern GL_IMAGE_CLASS_1_X_16,
+  pattern GL_IMAGE_CLASS_1_X_32,
+  pattern GL_IMAGE_CLASS_1_X_8,
+  pattern GL_IMAGE_CLASS_2_X_16,
+  pattern GL_IMAGE_CLASS_2_X_32,
+  pattern GL_IMAGE_CLASS_2_X_8,
+  pattern GL_IMAGE_CLASS_4_X_16,
+  pattern GL_IMAGE_CLASS_4_X_32,
+  pattern GL_IMAGE_CLASS_4_X_8,
+  pattern GL_IMAGE_COMPATIBILITY_CLASS,
+  pattern GL_IMAGE_CUBE,
+  pattern GL_IMAGE_CUBE_MAP_ARRAY,
+  pattern GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS,
+  pattern GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE,
+  pattern GL_IMAGE_FORMAT_COMPATIBILITY_TYPE,
+  pattern GL_IMAGE_PIXEL_FORMAT,
+  pattern GL_IMAGE_PIXEL_TYPE,
+  pattern GL_IMAGE_TEXEL_SIZE,
+  pattern GL_IMPLEMENTATION_COLOR_READ_FORMAT,
+  pattern GL_IMPLEMENTATION_COLOR_READ_TYPE,
+  pattern GL_INCR,
+  pattern GL_INCR_WRAP,
+  pattern GL_INFO_LOG_LENGTH,
+  pattern GL_INNOCENT_CONTEXT_RESET,
+  pattern GL_INT,
+  pattern GL_INTERLEAVED_ATTRIBS,
+  pattern GL_INTERNALFORMAT_ALPHA_SIZE,
+  pattern GL_INTERNALFORMAT_ALPHA_TYPE,
+  pattern GL_INTERNALFORMAT_BLUE_SIZE,
+  pattern GL_INTERNALFORMAT_BLUE_TYPE,
+  pattern GL_INTERNALFORMAT_DEPTH_SIZE,
+  pattern GL_INTERNALFORMAT_DEPTH_TYPE,
+  pattern GL_INTERNALFORMAT_GREEN_SIZE,
+  pattern GL_INTERNALFORMAT_GREEN_TYPE,
+  pattern GL_INTERNALFORMAT_PREFERRED,
+  pattern GL_INTERNALFORMAT_RED_SIZE,
+  pattern GL_INTERNALFORMAT_RED_TYPE,
+  pattern GL_INTERNALFORMAT_SHARED_SIZE,
+  pattern GL_INTERNALFORMAT_STENCIL_SIZE,
+  pattern GL_INTERNALFORMAT_STENCIL_TYPE,
+  pattern GL_INTERNALFORMAT_SUPPORTED,
+  pattern GL_INT_2_10_10_10_REV,
+  pattern GL_INT_IMAGE_1D,
+  pattern GL_INT_IMAGE_1D_ARRAY,
+  pattern GL_INT_IMAGE_2D,
+  pattern GL_INT_IMAGE_2D_ARRAY,
+  pattern GL_INT_IMAGE_2D_MULTISAMPLE,
+  pattern GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_INT_IMAGE_2D_RECT,
+  pattern GL_INT_IMAGE_3D,
+  pattern GL_INT_IMAGE_BUFFER,
+  pattern GL_INT_IMAGE_CUBE,
+  pattern GL_INT_IMAGE_CUBE_MAP_ARRAY,
+  pattern GL_INT_SAMPLER_1D,
+  pattern GL_INT_SAMPLER_1D_ARRAY,
+  pattern GL_INT_SAMPLER_2D,
+  pattern GL_INT_SAMPLER_2D_ARRAY,
+  pattern GL_INT_SAMPLER_2D_MULTISAMPLE,
+  pattern GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY,
+  pattern GL_INT_SAMPLER_2D_RECT,
+  pattern GL_INT_SAMPLER_3D,
+  pattern GL_INT_SAMPLER_BUFFER,
+  pattern GL_INT_SAMPLER_CUBE,
+  pattern GL_INT_SAMPLER_CUBE_MAP_ARRAY,
+  pattern GL_INT_VEC2,
+  pattern GL_INT_VEC3,
+  pattern GL_INT_VEC4,
+  pattern GL_INVALID_ENUM,
+  pattern GL_INVALID_FRAMEBUFFER_OPERATION,
+  pattern GL_INVALID_INDEX,
+  pattern GL_INVALID_OPERATION,
+  pattern GL_INVALID_VALUE,
+  pattern GL_INVERT,
+  pattern GL_ISOLINES,
+  pattern GL_IS_PER_PATCH,
+  pattern GL_IS_ROW_MAJOR,
+  pattern GL_KEEP,
+  pattern GL_LAST_VERTEX_CONVENTION,
+  pattern GL_LAYER_PROVOKING_VERTEX,
+  pattern GL_LEFT,
+  pattern GL_LEQUAL,
+  pattern GL_LESS,
+  pattern GL_LINE,
+  pattern GL_LINEAR,
+  pattern GL_LINEAR_MIPMAP_LINEAR,
+  pattern GL_LINEAR_MIPMAP_NEAREST,
+  pattern GL_LINES,
+  pattern GL_LINES_ADJACENCY,
+  pattern GL_LINE_LOOP,
+  pattern GL_LINE_SMOOTH,
+  pattern GL_LINE_SMOOTH_HINT,
+  pattern GL_LINE_STRIP,
+  pattern GL_LINE_STRIP_ADJACENCY,
+  pattern GL_LINE_WIDTH,
+  pattern GL_LINE_WIDTH_GRANULARITY,
+  pattern GL_LINE_WIDTH_RANGE,
+  pattern GL_LINK_STATUS,
+  pattern GL_LOCATION,
+  pattern GL_LOCATION_COMPONENT,
+  pattern GL_LOCATION_INDEX,
+  pattern GL_LOGIC_OP_MODE,
+  pattern GL_LOSE_CONTEXT_ON_RESET,
+  pattern GL_LOWER_LEFT,
+  pattern GL_LOW_FLOAT,
+  pattern GL_LOW_INT,
+  pattern GL_MAJOR_VERSION,
+  pattern GL_MANUAL_GENERATE_MIPMAP,
+  pattern GL_MAP_COHERENT_BIT,
+  pattern GL_MAP_FLUSH_EXPLICIT_BIT,
+  pattern GL_MAP_INVALIDATE_BUFFER_BIT,
+  pattern GL_MAP_INVALIDATE_RANGE_BIT,
+  pattern GL_MAP_PERSISTENT_BIT,
+  pattern GL_MAP_READ_BIT,
+  pattern GL_MAP_UNSYNCHRONIZED_BIT,
+  pattern GL_MAP_WRITE_BIT,
+  pattern GL_MATRIX_STRIDE,
+  pattern GL_MAX,
+  pattern GL_MAX_3D_TEXTURE_SIZE,
+  pattern GL_MAX_ARRAY_TEXTURE_LAYERS,
+  pattern GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS,
+  pattern GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE,
+  pattern GL_MAX_CLIP_DISTANCES,
+  pattern GL_MAX_COLOR_ATTACHMENTS,
+  pattern GL_MAX_COLOR_TEXTURE_SAMPLES,
+  pattern GL_MAX_COMBINED_ATOMIC_COUNTERS,
+  pattern GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES,
+  pattern GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_DIMENSIONS,
+  pattern GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_IMAGE_UNIFORMS,
+  pattern GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS,
+  pattern GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES,
+  pattern GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_COMBINED_UNIFORM_BLOCKS,
+  pattern GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMPUTE_ATOMIC_COUNTERS,
+  pattern GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_COMPUTE_IMAGE_UNIFORMS,
+  pattern GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_COMPUTE_SHARED_MEMORY_SIZE,
+  pattern GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_COMPUTE_UNIFORM_BLOCKS,
+  pattern GL_MAX_COMPUTE_UNIFORM_COMPONENTS,
+  pattern GL_MAX_COMPUTE_WORK_GROUP_COUNT,
+  pattern GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS,
+  pattern GL_MAX_COMPUTE_WORK_GROUP_SIZE,
+  pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE,
+  pattern GL_MAX_CULL_DISTANCES,
+  pattern GL_MAX_DEBUG_GROUP_STACK_DEPTH,
+  pattern GL_MAX_DEBUG_LOGGED_MESSAGES,
+  pattern GL_MAX_DEBUG_MESSAGE_LENGTH,
+  pattern GL_MAX_DEPTH,
+  pattern GL_MAX_DEPTH_TEXTURE_SAMPLES,
+  pattern GL_MAX_DRAW_BUFFERS,
+  pattern GL_MAX_DUAL_SOURCE_DRAW_BUFFERS,
+  pattern GL_MAX_ELEMENTS_INDICES,
+  pattern GL_MAX_ELEMENTS_VERTICES,
+  pattern GL_MAX_ELEMENT_INDEX,
+  pattern GL_MAX_FRAGMENT_ATOMIC_COUNTERS,
+  pattern GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_FRAGMENT_IMAGE_UNIFORMS,
+  pattern GL_MAX_FRAGMENT_INPUT_COMPONENTS,
+  pattern GL_MAX_FRAGMENT_INTERPOLATION_OFFSET,
+  pattern GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_FRAGMENT_UNIFORM_BLOCKS,
+  pattern GL_MAX_FRAGMENT_UNIFORM_COMPONENTS,
+  pattern GL_MAX_FRAGMENT_UNIFORM_VECTORS,
+  pattern GL_MAX_FRAMEBUFFER_HEIGHT,
+  pattern GL_MAX_FRAMEBUFFER_LAYERS,
+  pattern GL_MAX_FRAMEBUFFER_SAMPLES,
+  pattern GL_MAX_FRAMEBUFFER_WIDTH,
+  pattern GL_MAX_GEOMETRY_ATOMIC_COUNTERS,
+  pattern GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_GEOMETRY_IMAGE_UNIFORMS,
+  pattern GL_MAX_GEOMETRY_INPUT_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_OUTPUT_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_OUTPUT_VERTICES,
+  pattern GL_MAX_GEOMETRY_SHADER_INVOCATIONS,
+  pattern GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS,
+  pattern GL_MAX_GEOMETRY_UNIFORM_BLOCKS,
+  pattern GL_MAX_GEOMETRY_UNIFORM_COMPONENTS,
+  pattern GL_MAX_HEIGHT,
+  pattern GL_MAX_IMAGE_SAMPLES,
+  pattern GL_MAX_IMAGE_UNITS,
+  pattern GL_MAX_INTEGER_SAMPLES,
+  pattern GL_MAX_LABEL_LENGTH,
+  pattern GL_MAX_LAYERS,
+  pattern GL_MAX_NAME_LENGTH,
+  pattern GL_MAX_NUM_ACTIVE_VARIABLES,
+  pattern GL_MAX_NUM_COMPATIBLE_SUBROUTINES,
+  pattern GL_MAX_PATCH_VERTICES,
+  pattern GL_MAX_PROGRAM_TEXEL_OFFSET,
+  pattern GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET,
+  pattern GL_MAX_RECTANGLE_TEXTURE_SIZE,
+  pattern GL_MAX_RENDERBUFFER_SIZE,
+  pattern GL_MAX_SAMPLES,
+  pattern GL_MAX_SAMPLE_MASK_WORDS,
+  pattern GL_MAX_SERVER_WAIT_TIMEOUT,
+  pattern GL_MAX_SHADER_STORAGE_BLOCK_SIZE,
+  pattern GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS,
+  pattern GL_MAX_SUBROUTINES,
+  pattern GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS,
+  pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS,
+  pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS,
+  pattern GL_MAX_TESS_CONTROL_INPUT_COMPONENTS,
+  pattern GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS,
+  pattern GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS,
+  pattern GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS,
+  pattern GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS,
+  pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS,
+  pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS,
+  pattern GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS,
+  pattern GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS,
+  pattern GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS,
+  pattern GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS,
+  pattern GL_MAX_TESS_GEN_LEVEL,
+  pattern GL_MAX_TESS_PATCH_COMPONENTS,
+  pattern GL_MAX_TEXTURE_BUFFER_SIZE,
+  pattern GL_MAX_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_TEXTURE_LOD_BIAS,
+  pattern GL_MAX_TEXTURE_MAX_ANISOTROPY,
+  pattern GL_MAX_TEXTURE_SIZE,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_BUFFERS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS,
+  pattern GL_MAX_UNIFORM_BLOCK_SIZE,
+  pattern GL_MAX_UNIFORM_BUFFER_BINDINGS,
+  pattern GL_MAX_UNIFORM_LOCATIONS,
+  pattern GL_MAX_VARYING_COMPONENTS,
+  pattern GL_MAX_VARYING_FLOATS,
+  pattern GL_MAX_VARYING_VECTORS,
+  pattern GL_MAX_VERTEX_ATOMIC_COUNTERS,
+  pattern GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS,
+  pattern GL_MAX_VERTEX_ATTRIBS,
+  pattern GL_MAX_VERTEX_ATTRIB_BINDINGS,
+  pattern GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET,
+  pattern GL_MAX_VERTEX_ATTRIB_STRIDE,
+  pattern GL_MAX_VERTEX_IMAGE_UNIFORMS,
+  pattern GL_MAX_VERTEX_OUTPUT_COMPONENTS,
+  pattern GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS,
+  pattern GL_MAX_VERTEX_STREAMS,
+  pattern GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_VERTEX_UNIFORM_BLOCKS,
+  pattern GL_MAX_VERTEX_UNIFORM_COMPONENTS,
+  pattern GL_MAX_VERTEX_UNIFORM_VECTORS,
+  pattern GL_MAX_VIEWPORTS,
+  pattern GL_MAX_VIEWPORT_DIMS,
+  pattern GL_MAX_WIDTH,
+  pattern GL_MEDIUM_FLOAT,
+  pattern GL_MEDIUM_INT,
+  pattern GL_MIN,
+  pattern GL_MINOR_VERSION,
+  pattern GL_MIN_FRAGMENT_INTERPOLATION_OFFSET,
+  pattern GL_MIN_MAP_BUFFER_ALIGNMENT,
+  pattern GL_MIN_PROGRAM_TEXEL_OFFSET,
+  pattern GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET,
+  pattern GL_MIN_SAMPLE_SHADING_VALUE,
+  pattern GL_MIPMAP,
+  pattern GL_MIRRORED_REPEAT,
+  pattern GL_MIRROR_CLAMP_TO_EDGE,
+  pattern GL_MULTISAMPLE,
+  pattern GL_NAME_LENGTH,
+  pattern GL_NAND,
+  pattern GL_NEAREST,
+  pattern GL_NEAREST_MIPMAP_LINEAR,
+  pattern GL_NEAREST_MIPMAP_NEAREST,
+  pattern GL_NEGATIVE_ONE_TO_ONE,
+  pattern GL_NEVER,
+  pattern GL_NICEST,
+  pattern GL_NONE,
+  pattern GL_NOOP,
+  pattern GL_NOR,
+  pattern GL_NOTEQUAL,
+  pattern GL_NO_ERROR,
+  pattern GL_NO_RESET_NOTIFICATION,
+  pattern GL_NUM_ACTIVE_VARIABLES,
+  pattern GL_NUM_COMPATIBLE_SUBROUTINES,
+  pattern GL_NUM_COMPRESSED_TEXTURE_FORMATS,
+  pattern GL_NUM_EXTENSIONS,
+  pattern GL_NUM_PROGRAM_BINARY_FORMATS,
+  pattern GL_NUM_SAMPLE_COUNTS,
+  pattern GL_NUM_SHADER_BINARY_FORMATS,
+  pattern GL_NUM_SHADING_LANGUAGE_VERSIONS,
+  pattern GL_NUM_SPIR_V_EXTENSIONS,
+  pattern GL_OBJECT_TYPE,
+  pattern GL_OFFSET,
+  pattern GL_ONE,
+  pattern GL_ONE_MINUS_CONSTANT_ALPHA,
+  pattern GL_ONE_MINUS_CONSTANT_COLOR,
+  pattern GL_ONE_MINUS_DST_ALPHA,
+  pattern GL_ONE_MINUS_DST_COLOR,
+  pattern GL_ONE_MINUS_SRC1_ALPHA,
+  pattern GL_ONE_MINUS_SRC1_COLOR,
+  pattern GL_ONE_MINUS_SRC_ALPHA,
+  pattern GL_ONE_MINUS_SRC_COLOR,
+  pattern GL_OR,
+  pattern GL_OR_INVERTED,
+  pattern GL_OR_REVERSE,
+  pattern GL_OUT_OF_MEMORY,
+  pattern GL_PACK_ALIGNMENT,
+  pattern GL_PACK_COMPRESSED_BLOCK_DEPTH,
+  pattern GL_PACK_COMPRESSED_BLOCK_HEIGHT,
+  pattern GL_PACK_COMPRESSED_BLOCK_SIZE,
+  pattern GL_PACK_COMPRESSED_BLOCK_WIDTH,
+  pattern GL_PACK_IMAGE_HEIGHT,
+  pattern GL_PACK_LSB_FIRST,
+  pattern GL_PACK_ROW_LENGTH,
+  pattern GL_PACK_SKIP_IMAGES,
+  pattern GL_PACK_SKIP_PIXELS,
+  pattern GL_PACK_SKIP_ROWS,
+  pattern GL_PACK_SWAP_BYTES,
+  pattern GL_PARAMETER_BUFFER,
+  pattern GL_PARAMETER_BUFFER_BINDING,
+  pattern GL_PATCHES,
+  pattern GL_PATCH_DEFAULT_INNER_LEVEL,
+  pattern GL_PATCH_DEFAULT_OUTER_LEVEL,
+  pattern GL_PATCH_VERTICES,
+  pattern GL_PIXEL_BUFFER_BARRIER_BIT,
+  pattern GL_PIXEL_PACK_BUFFER,
+  pattern GL_PIXEL_PACK_BUFFER_BINDING,
+  pattern GL_PIXEL_UNPACK_BUFFER,
+  pattern GL_PIXEL_UNPACK_BUFFER_BINDING,
+  pattern GL_POINT,
+  pattern GL_POINTS,
+  pattern GL_POINT_FADE_THRESHOLD_SIZE,
+  pattern GL_POINT_SIZE,
+  pattern GL_POINT_SIZE_GRANULARITY,
+  pattern GL_POINT_SIZE_RANGE,
+  pattern GL_POINT_SPRITE_COORD_ORIGIN,
+  pattern GL_POLYGON_MODE,
+  pattern GL_POLYGON_OFFSET_CLAMP,
+  pattern GL_POLYGON_OFFSET_FACTOR,
+  pattern GL_POLYGON_OFFSET_FILL,
+  pattern GL_POLYGON_OFFSET_LINE,
+  pattern GL_POLYGON_OFFSET_POINT,
+  pattern GL_POLYGON_OFFSET_UNITS,
+  pattern GL_POLYGON_SMOOTH,
+  pattern GL_POLYGON_SMOOTH_HINT,
+  pattern GL_PRIMITIVES_GENERATED,
+  pattern GL_PRIMITIVES_SUBMITTED,
+  pattern GL_PRIMITIVE_RESTART,
+  pattern GL_PRIMITIVE_RESTART_FIXED_INDEX,
+  pattern GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED,
+  pattern GL_PRIMITIVE_RESTART_INDEX,
+  pattern GL_PROGRAM,
+  pattern GL_PROGRAM_BINARY_FORMATS,
+  pattern GL_PROGRAM_BINARY_LENGTH,
+  pattern GL_PROGRAM_BINARY_RETRIEVABLE_HINT,
+  pattern GL_PROGRAM_INPUT,
+  pattern GL_PROGRAM_OUTPUT,
+  pattern GL_PROGRAM_PIPELINE,
+  pattern GL_PROGRAM_PIPELINE_BINDING,
+  pattern GL_PROGRAM_POINT_SIZE,
+  pattern GL_PROGRAM_SEPARABLE,
+  pattern GL_PROVOKING_VERTEX,
+  pattern GL_PROXY_TEXTURE_1D,
+  pattern GL_PROXY_TEXTURE_1D_ARRAY,
+  pattern GL_PROXY_TEXTURE_2D,
+  pattern GL_PROXY_TEXTURE_2D_ARRAY,
+  pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE,
+  pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_PROXY_TEXTURE_3D,
+  pattern GL_PROXY_TEXTURE_CUBE_MAP,
+  pattern GL_PROXY_TEXTURE_CUBE_MAP_ARRAY,
+  pattern GL_PROXY_TEXTURE_RECTANGLE,
+  pattern GL_QUADS,
+  pattern GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION,
+  pattern GL_QUERY,
+  pattern GL_QUERY_BUFFER,
+  pattern GL_QUERY_BUFFER_BARRIER_BIT,
+  pattern GL_QUERY_BUFFER_BINDING,
+  pattern GL_QUERY_BY_REGION_NO_WAIT,
+  pattern GL_QUERY_BY_REGION_NO_WAIT_INVERTED,
+  pattern GL_QUERY_BY_REGION_WAIT,
+  pattern GL_QUERY_BY_REGION_WAIT_INVERTED,
+  pattern GL_QUERY_COUNTER_BITS,
+  pattern GL_QUERY_NO_WAIT,
+  pattern GL_QUERY_NO_WAIT_INVERTED,
+  pattern GL_QUERY_RESULT,
+  pattern GL_QUERY_RESULT_AVAILABLE,
+  pattern GL_QUERY_RESULT_NO_WAIT,
+  pattern GL_QUERY_TARGET,
+  pattern GL_QUERY_WAIT,
+  pattern GL_QUERY_WAIT_INVERTED,
+  pattern GL_R11F_G11F_B10F,
+  pattern GL_R16,
+  pattern GL_R16F,
+  pattern GL_R16I,
+  pattern GL_R16UI,
+  pattern GL_R16_SNORM,
+  pattern GL_R32F,
+  pattern GL_R32I,
+  pattern GL_R32UI,
+  pattern GL_R3_G3_B2,
+  pattern GL_R8,
+  pattern GL_R8I,
+  pattern GL_R8UI,
+  pattern GL_R8_SNORM,
+  pattern GL_RASTERIZER_DISCARD,
+  pattern GL_READ_BUFFER,
+  pattern GL_READ_FRAMEBUFFER,
+  pattern GL_READ_FRAMEBUFFER_BINDING,
+  pattern GL_READ_ONLY,
+  pattern GL_READ_PIXELS,
+  pattern GL_READ_PIXELS_FORMAT,
+  pattern GL_READ_PIXELS_TYPE,
+  pattern GL_READ_WRITE,
+  pattern GL_RED,
+  pattern GL_RED_INTEGER,
+  pattern GL_REFERENCED_BY_COMPUTE_SHADER,
+  pattern GL_REFERENCED_BY_FRAGMENT_SHADER,
+  pattern GL_REFERENCED_BY_GEOMETRY_SHADER,
+  pattern GL_REFERENCED_BY_TESS_CONTROL_SHADER,
+  pattern GL_REFERENCED_BY_TESS_EVALUATION_SHADER,
+  pattern GL_REFERENCED_BY_VERTEX_SHADER,
+  pattern GL_RENDERBUFFER,
+  pattern GL_RENDERBUFFER_ALPHA_SIZE,
+  pattern GL_RENDERBUFFER_BINDING,
+  pattern GL_RENDERBUFFER_BLUE_SIZE,
+  pattern GL_RENDERBUFFER_DEPTH_SIZE,
+  pattern GL_RENDERBUFFER_GREEN_SIZE,
+  pattern GL_RENDERBUFFER_HEIGHT,
+  pattern GL_RENDERBUFFER_INTERNAL_FORMAT,
+  pattern GL_RENDERBUFFER_RED_SIZE,
+  pattern GL_RENDERBUFFER_SAMPLES,
+  pattern GL_RENDERBUFFER_STENCIL_SIZE,
+  pattern GL_RENDERBUFFER_WIDTH,
+  pattern GL_RENDERER,
+  pattern GL_REPEAT,
+  pattern GL_REPLACE,
+  pattern GL_RESET_NOTIFICATION_STRATEGY,
+  pattern GL_RG,
+  pattern GL_RG16,
+  pattern GL_RG16F,
+  pattern GL_RG16I,
+  pattern GL_RG16UI,
+  pattern GL_RG16_SNORM,
+  pattern GL_RG32F,
+  pattern GL_RG32I,
+  pattern GL_RG32UI,
+  pattern GL_RG8,
+  pattern GL_RG8I,
+  pattern GL_RG8UI,
+  pattern GL_RG8_SNORM,
+  pattern GL_RGB,
+  pattern GL_RGB10,
+  pattern GL_RGB10_A2,
+  pattern GL_RGB10_A2UI,
+  pattern GL_RGB12,
+  pattern GL_RGB16,
+  pattern GL_RGB16F,
+  pattern GL_RGB16I,
+  pattern GL_RGB16UI,
+  pattern GL_RGB16_SNORM,
+  pattern GL_RGB32F,
+  pattern GL_RGB32I,
+  pattern GL_RGB32UI,
+  pattern GL_RGB4,
+  pattern GL_RGB5,
+  pattern GL_RGB565,
+  pattern GL_RGB5_A1,
+  pattern GL_RGB8,
+  pattern GL_RGB8I,
+  pattern GL_RGB8UI,
+  pattern GL_RGB8_SNORM,
+  pattern GL_RGB9_E5,
+  pattern GL_RGBA,
+  pattern GL_RGBA12,
+  pattern GL_RGBA16,
+  pattern GL_RGBA16F,
+  pattern GL_RGBA16I,
+  pattern GL_RGBA16UI,
+  pattern GL_RGBA16_SNORM,
+  pattern GL_RGBA2,
+  pattern GL_RGBA32F,
+  pattern GL_RGBA32I,
+  pattern GL_RGBA32UI,
+  pattern GL_RGBA4,
+  pattern GL_RGBA8,
+  pattern GL_RGBA8I,
+  pattern GL_RGBA8UI,
+  pattern GL_RGBA8_SNORM,
+  pattern GL_RGBA_INTEGER,
+  pattern GL_RGB_INTEGER,
+  pattern GL_RG_INTEGER,
+  pattern GL_RIGHT,
+  pattern GL_SAMPLER,
+  pattern GL_SAMPLER_1D,
+  pattern GL_SAMPLER_1D_ARRAY,
+  pattern GL_SAMPLER_1D_ARRAY_SHADOW,
+  pattern GL_SAMPLER_1D_SHADOW,
+  pattern GL_SAMPLER_2D,
+  pattern GL_SAMPLER_2D_ARRAY,
+  pattern GL_SAMPLER_2D_ARRAY_SHADOW,
+  pattern GL_SAMPLER_2D_MULTISAMPLE,
+  pattern GL_SAMPLER_2D_MULTISAMPLE_ARRAY,
+  pattern GL_SAMPLER_2D_RECT,
+  pattern GL_SAMPLER_2D_RECT_SHADOW,
+  pattern GL_SAMPLER_2D_SHADOW,
+  pattern GL_SAMPLER_3D,
+  pattern GL_SAMPLER_BINDING,
+  pattern GL_SAMPLER_BUFFER,
+  pattern GL_SAMPLER_CUBE,
+  pattern GL_SAMPLER_CUBE_MAP_ARRAY,
+  pattern GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW,
+  pattern GL_SAMPLER_CUBE_SHADOW,
+  pattern GL_SAMPLES,
+  pattern GL_SAMPLES_PASSED,
+  pattern GL_SAMPLE_ALPHA_TO_COVERAGE,
+  pattern GL_SAMPLE_ALPHA_TO_ONE,
+  pattern GL_SAMPLE_BUFFERS,
+  pattern GL_SAMPLE_COVERAGE,
+  pattern GL_SAMPLE_COVERAGE_INVERT,
+  pattern GL_SAMPLE_COVERAGE_VALUE,
+  pattern GL_SAMPLE_MASK,
+  pattern GL_SAMPLE_MASK_VALUE,
+  pattern GL_SAMPLE_POSITION,
+  pattern GL_SAMPLE_SHADING,
+  pattern GL_SCISSOR_BOX,
+  pattern GL_SCISSOR_TEST,
+  pattern GL_SEPARATE_ATTRIBS,
+  pattern GL_SET,
+  pattern GL_SHADER,
+  pattern GL_SHADER_BINARY_FORMATS,
+  pattern GL_SHADER_BINARY_FORMAT_SPIR_V,
+  pattern GL_SHADER_COMPILER,
+  pattern GL_SHADER_IMAGE_ACCESS_BARRIER_BIT,
+  pattern GL_SHADER_IMAGE_ATOMIC,
+  pattern GL_SHADER_IMAGE_LOAD,
+  pattern GL_SHADER_IMAGE_STORE,
+  pattern GL_SHADER_SOURCE_LENGTH,
+  pattern GL_SHADER_STORAGE_BARRIER_BIT,
+  pattern GL_SHADER_STORAGE_BLOCK,
+  pattern GL_SHADER_STORAGE_BUFFER,
+  pattern GL_SHADER_STORAGE_BUFFER_BINDING,
+  pattern GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT,
+  pattern GL_SHADER_STORAGE_BUFFER_SIZE,
+  pattern GL_SHADER_STORAGE_BUFFER_START,
+  pattern GL_SHADER_TYPE,
+  pattern GL_SHADING_LANGUAGE_VERSION,
+  pattern GL_SHORT,
+  pattern GL_SIGNALED,
+  pattern GL_SIGNED_NORMALIZED,
+  pattern GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST,
+  pattern GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE,
+  pattern GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST,
+  pattern GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE,
+  pattern GL_SMOOTH_LINE_WIDTH_GRANULARITY,
+  pattern GL_SMOOTH_LINE_WIDTH_RANGE,
+  pattern GL_SMOOTH_POINT_SIZE_GRANULARITY,
+  pattern GL_SMOOTH_POINT_SIZE_RANGE,
+  pattern GL_SPIR_V_BINARY,
+  pattern GL_SPIR_V_EXTENSIONS,
+  pattern GL_SRC1_ALPHA,
+  pattern GL_SRC1_COLOR,
+  pattern GL_SRC_ALPHA,
+  pattern GL_SRC_ALPHA_SATURATE,
+  pattern GL_SRC_COLOR,
+  pattern GL_SRGB,
+  pattern GL_SRGB8,
+  pattern GL_SRGB8_ALPHA8,
+  pattern GL_SRGB_ALPHA,
+  pattern GL_SRGB_READ,
+  pattern GL_SRGB_WRITE,
+  pattern GL_STACK_OVERFLOW,
+  pattern GL_STACK_UNDERFLOW,
+  pattern GL_STATIC_COPY,
+  pattern GL_STATIC_DRAW,
+  pattern GL_STATIC_READ,
+  pattern GL_STENCIL,
+  pattern GL_STENCIL_ATTACHMENT,
+  pattern GL_STENCIL_BACK_FAIL,
+  pattern GL_STENCIL_BACK_FUNC,
+  pattern GL_STENCIL_BACK_PASS_DEPTH_FAIL,
+  pattern GL_STENCIL_BACK_PASS_DEPTH_PASS,
+  pattern GL_STENCIL_BACK_REF,
+  pattern GL_STENCIL_BACK_VALUE_MASK,
+  pattern GL_STENCIL_BACK_WRITEMASK,
+  pattern GL_STENCIL_BUFFER_BIT,
+  pattern GL_STENCIL_CLEAR_VALUE,
+  pattern GL_STENCIL_COMPONENTS,
+  pattern GL_STENCIL_FAIL,
+  pattern GL_STENCIL_FUNC,
+  pattern GL_STENCIL_INDEX,
+  pattern GL_STENCIL_INDEX1,
+  pattern GL_STENCIL_INDEX16,
+  pattern GL_STENCIL_INDEX4,
+  pattern GL_STENCIL_INDEX8,
+  pattern GL_STENCIL_PASS_DEPTH_FAIL,
+  pattern GL_STENCIL_PASS_DEPTH_PASS,
+  pattern GL_STENCIL_REF,
+  pattern GL_STENCIL_RENDERABLE,
+  pattern GL_STENCIL_TEST,
+  pattern GL_STENCIL_VALUE_MASK,
+  pattern GL_STENCIL_WRITEMASK,
+  pattern GL_STEREO,
+  pattern GL_STREAM_COPY,
+  pattern GL_STREAM_DRAW,
+  pattern GL_STREAM_READ,
+  pattern GL_SUBPIXEL_BITS,
+  pattern GL_SYNC_CONDITION,
+  pattern GL_SYNC_FENCE,
+  pattern GL_SYNC_FLAGS,
+  pattern GL_SYNC_FLUSH_COMMANDS_BIT,
+  pattern GL_SYNC_GPU_COMMANDS_COMPLETE,
+  pattern GL_SYNC_STATUS,
+  pattern GL_TESS_CONTROL_OUTPUT_VERTICES,
+  pattern GL_TESS_CONTROL_SHADER,
+  pattern GL_TESS_CONTROL_SHADER_BIT,
+  pattern GL_TESS_CONTROL_SHADER_PATCHES,
+  pattern GL_TESS_CONTROL_SUBROUTINE,
+  pattern GL_TESS_CONTROL_SUBROUTINE_UNIFORM,
+  pattern GL_TESS_CONTROL_TEXTURE,
+  pattern GL_TESS_EVALUATION_SHADER,
+  pattern GL_TESS_EVALUATION_SHADER_BIT,
+  pattern GL_TESS_EVALUATION_SHADER_INVOCATIONS,
+  pattern GL_TESS_EVALUATION_SUBROUTINE,
+  pattern GL_TESS_EVALUATION_SUBROUTINE_UNIFORM,
+  pattern GL_TESS_EVALUATION_TEXTURE,
+  pattern GL_TESS_GEN_MODE,
+  pattern GL_TESS_GEN_POINT_MODE,
+  pattern GL_TESS_GEN_SPACING,
+  pattern GL_TESS_GEN_VERTEX_ORDER,
+  pattern GL_TEXTURE,
+  pattern GL_TEXTURE0,
+  pattern GL_TEXTURE1,
+  pattern GL_TEXTURE10,
+  pattern GL_TEXTURE11,
+  pattern GL_TEXTURE12,
+  pattern GL_TEXTURE13,
+  pattern GL_TEXTURE14,
+  pattern GL_TEXTURE15,
+  pattern GL_TEXTURE16,
+  pattern GL_TEXTURE17,
+  pattern GL_TEXTURE18,
+  pattern GL_TEXTURE19,
+  pattern GL_TEXTURE2,
+  pattern GL_TEXTURE20,
+  pattern GL_TEXTURE21,
+  pattern GL_TEXTURE22,
+  pattern GL_TEXTURE23,
+  pattern GL_TEXTURE24,
+  pattern GL_TEXTURE25,
+  pattern GL_TEXTURE26,
+  pattern GL_TEXTURE27,
+  pattern GL_TEXTURE28,
+  pattern GL_TEXTURE29,
+  pattern GL_TEXTURE3,
+  pattern GL_TEXTURE30,
+  pattern GL_TEXTURE31,
+  pattern GL_TEXTURE4,
+  pattern GL_TEXTURE5,
+  pattern GL_TEXTURE6,
+  pattern GL_TEXTURE7,
+  pattern GL_TEXTURE8,
+  pattern GL_TEXTURE9,
+  pattern GL_TEXTURE_1D,
+  pattern GL_TEXTURE_1D_ARRAY,
+  pattern GL_TEXTURE_2D,
+  pattern GL_TEXTURE_2D_ARRAY,
+  pattern GL_TEXTURE_2D_MULTISAMPLE,
+  pattern GL_TEXTURE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_TEXTURE_3D,
+  pattern GL_TEXTURE_ALPHA_SIZE,
+  pattern GL_TEXTURE_ALPHA_TYPE,
+  pattern GL_TEXTURE_BASE_LEVEL,
+  pattern GL_TEXTURE_BINDING_1D,
+  pattern GL_TEXTURE_BINDING_1D_ARRAY,
+  pattern GL_TEXTURE_BINDING_2D,
+  pattern GL_TEXTURE_BINDING_2D_ARRAY,
+  pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE,
+  pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY,
+  pattern GL_TEXTURE_BINDING_3D,
+  pattern GL_TEXTURE_BINDING_BUFFER,
+  pattern GL_TEXTURE_BINDING_CUBE_MAP,
+  pattern GL_TEXTURE_BINDING_CUBE_MAP_ARRAY,
+  pattern GL_TEXTURE_BINDING_RECTANGLE,
+  pattern GL_TEXTURE_BLUE_SIZE,
+  pattern GL_TEXTURE_BLUE_TYPE,
+  pattern GL_TEXTURE_BORDER_COLOR,
+  pattern GL_TEXTURE_BUFFER,
+  pattern GL_TEXTURE_BUFFER_BINDING,
+  pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING,
+  pattern GL_TEXTURE_BUFFER_OFFSET,
+  pattern GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT,
+  pattern GL_TEXTURE_BUFFER_SIZE,
+  pattern GL_TEXTURE_COMPARE_FUNC,
+  pattern GL_TEXTURE_COMPARE_MODE,
+  pattern GL_TEXTURE_COMPRESSED,
+  pattern GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT,
+  pattern GL_TEXTURE_COMPRESSED_BLOCK_SIZE,
+  pattern GL_TEXTURE_COMPRESSED_BLOCK_WIDTH,
+  pattern GL_TEXTURE_COMPRESSED_IMAGE_SIZE,
+  pattern GL_TEXTURE_COMPRESSION_HINT,
+  pattern GL_TEXTURE_CUBE_MAP,
+  pattern GL_TEXTURE_CUBE_MAP_ARRAY,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z,
+  pattern GL_TEXTURE_CUBE_MAP_SEAMLESS,
+  pattern GL_TEXTURE_DEPTH,
+  pattern GL_TEXTURE_DEPTH_SIZE,
+  pattern GL_TEXTURE_DEPTH_TYPE,
+  pattern GL_TEXTURE_FETCH_BARRIER_BIT,
+  pattern GL_TEXTURE_FIXED_SAMPLE_LOCATIONS,
+  pattern GL_TEXTURE_GATHER,
+  pattern GL_TEXTURE_GATHER_SHADOW,
+  pattern GL_TEXTURE_GREEN_SIZE,
+  pattern GL_TEXTURE_GREEN_TYPE,
+  pattern GL_TEXTURE_HEIGHT,
+  pattern GL_TEXTURE_IMAGE_FORMAT,
+  pattern GL_TEXTURE_IMAGE_TYPE,
+  pattern GL_TEXTURE_IMMUTABLE_FORMAT,
+  pattern GL_TEXTURE_IMMUTABLE_LEVELS,
+  pattern GL_TEXTURE_INTERNAL_FORMAT,
+  pattern GL_TEXTURE_LOD_BIAS,
+  pattern GL_TEXTURE_MAG_FILTER,
+  pattern GL_TEXTURE_MAX_ANISOTROPY,
+  pattern GL_TEXTURE_MAX_LEVEL,
+  pattern GL_TEXTURE_MAX_LOD,
+  pattern GL_TEXTURE_MIN_FILTER,
+  pattern GL_TEXTURE_MIN_LOD,
+  pattern GL_TEXTURE_RECTANGLE,
+  pattern GL_TEXTURE_RED_SIZE,
+  pattern GL_TEXTURE_RED_TYPE,
+  pattern GL_TEXTURE_SAMPLES,
+  pattern GL_TEXTURE_SHADOW,
+  pattern GL_TEXTURE_SHARED_SIZE,
+  pattern GL_TEXTURE_STENCIL_SIZE,
+  pattern GL_TEXTURE_SWIZZLE_A,
+  pattern GL_TEXTURE_SWIZZLE_B,
+  pattern GL_TEXTURE_SWIZZLE_G,
+  pattern GL_TEXTURE_SWIZZLE_R,
+  pattern GL_TEXTURE_SWIZZLE_RGBA,
+  pattern GL_TEXTURE_TARGET,
+  pattern GL_TEXTURE_UPDATE_BARRIER_BIT,
+  pattern GL_TEXTURE_VIEW,
+  pattern GL_TEXTURE_VIEW_MIN_LAYER,
+  pattern GL_TEXTURE_VIEW_MIN_LEVEL,
+  pattern GL_TEXTURE_VIEW_NUM_LAYERS,
+  pattern GL_TEXTURE_VIEW_NUM_LEVELS,
+  pattern GL_TEXTURE_WIDTH,
+  pattern GL_TEXTURE_WRAP_R,
+  pattern GL_TEXTURE_WRAP_S,
+  pattern GL_TEXTURE_WRAP_T,
+  pattern GL_TIMEOUT_EXPIRED,
+  pattern GL_TIMEOUT_IGNORED,
+  pattern GL_TIMESTAMP,
+  pattern GL_TIME_ELAPSED,
+  pattern GL_TOP_LEVEL_ARRAY_SIZE,
+  pattern GL_TOP_LEVEL_ARRAY_STRIDE,
+  pattern GL_TRANSFORM_FEEDBACK,
+  pattern GL_TRANSFORM_FEEDBACK_ACTIVE,
+  pattern GL_TRANSFORM_FEEDBACK_BARRIER_BIT,
+  pattern GL_TRANSFORM_FEEDBACK_BINDING,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_BINDING,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_INDEX,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_MODE,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_SIZE,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_START,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE,
+  pattern GL_TRANSFORM_FEEDBACK_OVERFLOW,
+  pattern GL_TRANSFORM_FEEDBACK_PAUSED,
+  pattern GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN,
+  pattern GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW,
+  pattern GL_TRANSFORM_FEEDBACK_VARYING,
+  pattern GL_TRANSFORM_FEEDBACK_VARYINGS,
+  pattern GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH,
+  pattern GL_TRIANGLES,
+  pattern GL_TRIANGLES_ADJACENCY,
+  pattern GL_TRIANGLE_FAN,
+  pattern GL_TRIANGLE_STRIP,
+  pattern GL_TRIANGLE_STRIP_ADJACENCY,
+  pattern GL_TRUE,
+  pattern GL_TYPE,
+  pattern GL_UNDEFINED_VERTEX,
+  pattern GL_UNIFORM,
+  pattern GL_UNIFORM_ARRAY_STRIDE,
+  pattern GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX,
+  pattern GL_UNIFORM_BARRIER_BIT,
+  pattern GL_UNIFORM_BLOCK,
+  pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS,
+  pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES,
+  pattern GL_UNIFORM_BLOCK_BINDING,
+  pattern GL_UNIFORM_BLOCK_DATA_SIZE,
+  pattern GL_UNIFORM_BLOCK_INDEX,
+  pattern GL_UNIFORM_BLOCK_NAME_LENGTH,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER,
+  pattern GL_UNIFORM_BUFFER,
+  pattern GL_UNIFORM_BUFFER_BINDING,
+  pattern GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT,
+  pattern GL_UNIFORM_BUFFER_SIZE,
+  pattern GL_UNIFORM_BUFFER_START,
+  pattern GL_UNIFORM_IS_ROW_MAJOR,
+  pattern GL_UNIFORM_MATRIX_STRIDE,
+  pattern GL_UNIFORM_NAME_LENGTH,
+  pattern GL_UNIFORM_OFFSET,
+  pattern GL_UNIFORM_SIZE,
+  pattern GL_UNIFORM_TYPE,
+  pattern GL_UNKNOWN_CONTEXT_RESET,
+  pattern GL_UNPACK_ALIGNMENT,
+  pattern GL_UNPACK_COMPRESSED_BLOCK_DEPTH,
+  pattern GL_UNPACK_COMPRESSED_BLOCK_HEIGHT,
+  pattern GL_UNPACK_COMPRESSED_BLOCK_SIZE,
+  pattern GL_UNPACK_COMPRESSED_BLOCK_WIDTH,
+  pattern GL_UNPACK_IMAGE_HEIGHT,
+  pattern GL_UNPACK_LSB_FIRST,
+  pattern GL_UNPACK_ROW_LENGTH,
+  pattern GL_UNPACK_SKIP_IMAGES,
+  pattern GL_UNPACK_SKIP_PIXELS,
+  pattern GL_UNPACK_SKIP_ROWS,
+  pattern GL_UNPACK_SWAP_BYTES,
+  pattern GL_UNSIGNALED,
+  pattern GL_UNSIGNED_BYTE,
+  pattern GL_UNSIGNED_BYTE_2_3_3_REV,
+  pattern GL_UNSIGNED_BYTE_3_3_2,
+  pattern GL_UNSIGNED_INT,
+  pattern GL_UNSIGNED_INT_10F_11F_11F_REV,
+  pattern GL_UNSIGNED_INT_10_10_10_2,
+  pattern GL_UNSIGNED_INT_24_8,
+  pattern GL_UNSIGNED_INT_2_10_10_10_REV,
+  pattern GL_UNSIGNED_INT_5_9_9_9_REV,
+  pattern GL_UNSIGNED_INT_8_8_8_8,
+  pattern GL_UNSIGNED_INT_8_8_8_8_REV,
+  pattern GL_UNSIGNED_INT_ATOMIC_COUNTER,
+  pattern GL_UNSIGNED_INT_IMAGE_1D,
+  pattern GL_UNSIGNED_INT_IMAGE_1D_ARRAY,
+  pattern GL_UNSIGNED_INT_IMAGE_2D,
+  pattern GL_UNSIGNED_INT_IMAGE_2D_ARRAY,
+  pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE,
+  pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY,
+  pattern GL_UNSIGNED_INT_IMAGE_2D_RECT,
+  pattern GL_UNSIGNED_INT_IMAGE_3D,
+  pattern GL_UNSIGNED_INT_IMAGE_BUFFER,
+  pattern GL_UNSIGNED_INT_IMAGE_CUBE,
+  pattern GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_1D,
+  pattern GL_UNSIGNED_INT_SAMPLER_1D_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_RECT,
+  pattern GL_UNSIGNED_INT_SAMPLER_3D,
+  pattern GL_UNSIGNED_INT_SAMPLER_BUFFER,
+  pattern GL_UNSIGNED_INT_SAMPLER_CUBE,
+  pattern GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY,
+  pattern GL_UNSIGNED_INT_VEC2,
+  pattern GL_UNSIGNED_INT_VEC3,
+  pattern GL_UNSIGNED_INT_VEC4,
+  pattern GL_UNSIGNED_NORMALIZED,
+  pattern GL_UNSIGNED_SHORT,
+  pattern GL_UNSIGNED_SHORT_1_5_5_5_REV,
+  pattern GL_UNSIGNED_SHORT_4_4_4_4,
+  pattern GL_UNSIGNED_SHORT_4_4_4_4_REV,
+  pattern GL_UNSIGNED_SHORT_5_5_5_1,
+  pattern GL_UNSIGNED_SHORT_5_6_5,
+  pattern GL_UNSIGNED_SHORT_5_6_5_REV,
+  pattern GL_UPPER_LEFT,
+  pattern GL_VALIDATE_STATUS,
+  pattern GL_VENDOR,
+  pattern GL_VERSION,
+  pattern GL_VERTEX_ARRAY,
+  pattern GL_VERTEX_ARRAY_BINDING,
+  pattern GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT,
+  pattern GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING,
+  pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR,
+  pattern GL_VERTEX_ATTRIB_ARRAY_ENABLED,
+  pattern GL_VERTEX_ATTRIB_ARRAY_INTEGER,
+  pattern GL_VERTEX_ATTRIB_ARRAY_LONG,
+  pattern GL_VERTEX_ATTRIB_ARRAY_NORMALIZED,
+  pattern GL_VERTEX_ATTRIB_ARRAY_POINTER,
+  pattern GL_VERTEX_ATTRIB_ARRAY_SIZE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_STRIDE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_TYPE,
+  pattern GL_VERTEX_ATTRIB_BINDING,
+  pattern GL_VERTEX_ATTRIB_RELATIVE_OFFSET,
+  pattern GL_VERTEX_BINDING_BUFFER,
+  pattern GL_VERTEX_BINDING_DIVISOR,
+  pattern GL_VERTEX_BINDING_OFFSET,
+  pattern GL_VERTEX_BINDING_STRIDE,
+  pattern GL_VERTEX_PROGRAM_POINT_SIZE,
+  pattern GL_VERTEX_SHADER,
+  pattern GL_VERTEX_SHADER_BIT,
+  pattern GL_VERTEX_SHADER_INVOCATIONS,
+  pattern GL_VERTEX_SUBROUTINE,
+  pattern GL_VERTEX_SUBROUTINE_UNIFORM,
+  pattern GL_VERTEX_TEXTURE,
+  pattern GL_VERTICES_SUBMITTED,
+  pattern GL_VIEWPORT,
+  pattern GL_VIEWPORT_BOUNDS_RANGE,
+  pattern GL_VIEWPORT_INDEX_PROVOKING_VERTEX,
+  pattern GL_VIEWPORT_SUBPIXEL_BITS,
+  pattern GL_VIEW_CLASS_128_BITS,
+  pattern GL_VIEW_CLASS_16_BITS,
+  pattern GL_VIEW_CLASS_24_BITS,
+  pattern GL_VIEW_CLASS_32_BITS,
+  pattern GL_VIEW_CLASS_48_BITS,
+  pattern GL_VIEW_CLASS_64_BITS,
+  pattern GL_VIEW_CLASS_8_BITS,
+  pattern GL_VIEW_CLASS_96_BITS,
+  pattern GL_VIEW_CLASS_BPTC_FLOAT,
+  pattern GL_VIEW_CLASS_BPTC_UNORM,
+  pattern GL_VIEW_CLASS_RGTC1_RED,
+  pattern GL_VIEW_CLASS_RGTC2_RG,
+  pattern GL_VIEW_CLASS_S3TC_DXT1_RGB,
+  pattern GL_VIEW_CLASS_S3TC_DXT1_RGBA,
+  pattern GL_VIEW_CLASS_S3TC_DXT3_RGBA,
+  pattern GL_VIEW_CLASS_S3TC_DXT5_RGBA,
+  pattern GL_VIEW_COMPATIBILITY_CLASS,
+  pattern GL_WAIT_FAILED,
+  pattern GL_WRITE_ONLY,
+  pattern GL_XOR,
+  pattern GL_ZERO,
+  pattern GL_ZERO_TO_ONE,
+  -- * Functions
+  glActiveShaderProgram,
+  glActiveTexture,
+  glAttachShader,
+  glBeginConditionalRender,
+  glBeginQuery,
+  glBeginQueryIndexed,
+  glBeginTransformFeedback,
+  glBindAttribLocation,
+  glBindBuffer,
+  glBindBufferBase,
+  glBindBufferRange,
+  glBindBuffersBase,
+  glBindBuffersRange,
+  glBindFragDataLocation,
+  glBindFragDataLocationIndexed,
+  glBindFramebuffer,
+  glBindImageTexture,
+  glBindImageTextures,
+  glBindProgramPipeline,
+  glBindRenderbuffer,
+  glBindSampler,
+  glBindSamplers,
+  glBindTexture,
+  glBindTextureUnit,
+  glBindTextures,
+  glBindTransformFeedback,
+  glBindVertexArray,
+  glBindVertexBuffer,
+  glBindVertexBuffers,
+  glBlendColor,
+  glBlendEquation,
+  glBlendEquationSeparate,
+  glBlendEquationSeparatei,
+  glBlendEquationi,
+  glBlendFunc,
+  glBlendFuncSeparate,
+  glBlendFuncSeparatei,
+  glBlendFunci,
+  glBlitFramebuffer,
+  glBlitNamedFramebuffer,
+  glBufferData,
+  glBufferStorage,
+  glBufferSubData,
+  glCheckFramebufferStatus,
+  glCheckNamedFramebufferStatus,
+  glClampColor,
+  glClear,
+  glClearBufferData,
+  glClearBufferSubData,
+  glClearBufferfi,
+  glClearBufferfv,
+  glClearBufferiv,
+  glClearBufferuiv,
+  glClearColor,
+  glClearDepth,
+  glClearDepthf,
+  glClearNamedBufferData,
+  glClearNamedBufferSubData,
+  glClearNamedFramebufferfi,
+  glClearNamedFramebufferfv,
+  glClearNamedFramebufferiv,
+  glClearNamedFramebufferuiv,
+  glClearStencil,
+  glClearTexImage,
+  glClearTexSubImage,
+  glClientWaitSync,
+  glClipControl,
+  glColorMask,
+  glColorMaski,
+  glCompileShader,
+  glCompressedTexImage1D,
+  glCompressedTexImage2D,
+  glCompressedTexImage3D,
+  glCompressedTexSubImage1D,
+  glCompressedTexSubImage2D,
+  glCompressedTexSubImage3D,
+  glCompressedTextureSubImage1D,
+  glCompressedTextureSubImage2D,
+  glCompressedTextureSubImage3D,
+  glCopyBufferSubData,
+  glCopyImageSubData,
+  glCopyNamedBufferSubData,
+  glCopyTexImage1D,
+  glCopyTexImage2D,
+  glCopyTexSubImage1D,
+  glCopyTexSubImage2D,
+  glCopyTexSubImage3D,
+  glCopyTextureSubImage1D,
+  glCopyTextureSubImage2D,
+  glCopyTextureSubImage3D,
+  glCreateBuffers,
+  glCreateFramebuffers,
+  glCreateProgram,
+  glCreateProgramPipelines,
+  glCreateQueries,
+  glCreateRenderbuffers,
+  glCreateSamplers,
+  glCreateShader,
+  glCreateShaderProgramv,
+  glCreateTextures,
+  glCreateTransformFeedbacks,
+  glCreateVertexArrays,
+  glCullFace,
+  glDebugMessageCallback,
+  glDebugMessageControl,
+  glDebugMessageInsert,
+  glDeleteBuffers,
+  glDeleteFramebuffers,
+  glDeleteProgram,
+  glDeleteProgramPipelines,
+  glDeleteQueries,
+  glDeleteRenderbuffers,
+  glDeleteSamplers,
+  glDeleteShader,
+  glDeleteSync,
+  glDeleteTextures,
+  glDeleteTransformFeedbacks,
+  glDeleteVertexArrays,
+  glDepthFunc,
+  glDepthMask,
+  glDepthRange,
+  glDepthRangeArrayv,
+  glDepthRangeIndexed,
+  glDepthRangef,
+  glDetachShader,
+  glDisable,
+  glDisableVertexArrayAttrib,
+  glDisableVertexAttribArray,
+  glDisablei,
+  glDispatchCompute,
+  glDispatchComputeIndirect,
+  glDrawArrays,
+  glDrawArraysIndirect,
+  glDrawArraysInstanced,
+  glDrawArraysInstancedBaseInstance,
+  glDrawBuffer,
+  glDrawBuffers,
+  glDrawElements,
+  glDrawElementsBaseVertex,
+  glDrawElementsIndirect,
+  glDrawElementsInstanced,
+  glDrawElementsInstancedBaseInstance,
+  glDrawElementsInstancedBaseVertex,
+  glDrawElementsInstancedBaseVertexBaseInstance,
+  glDrawRangeElements,
+  glDrawRangeElementsBaseVertex,
+  glDrawTransformFeedback,
+  glDrawTransformFeedbackInstanced,
+  glDrawTransformFeedbackStream,
+  glDrawTransformFeedbackStreamInstanced,
+  glEnable,
+  glEnableVertexArrayAttrib,
+  glEnableVertexAttribArray,
+  glEnablei,
+  glEndConditionalRender,
+  glEndQuery,
+  glEndQueryIndexed,
+  glEndTransformFeedback,
+  glFenceSync,
+  glFinish,
+  glFlush,
+  glFlushMappedBufferRange,
+  glFlushMappedNamedBufferRange,
+  glFramebufferParameteri,
+  glFramebufferRenderbuffer,
+  glFramebufferTexture,
+  glFramebufferTexture1D,
+  glFramebufferTexture2D,
+  glFramebufferTexture3D,
+  glFramebufferTextureLayer,
+  glFrontFace,
+  glGenBuffers,
+  glGenFramebuffers,
+  glGenProgramPipelines,
+  glGenQueries,
+  glGenRenderbuffers,
+  glGenSamplers,
+  glGenTextures,
+  glGenTransformFeedbacks,
+  glGenVertexArrays,
+  glGenerateMipmap,
+  glGenerateTextureMipmap,
+  glGetActiveAtomicCounterBufferiv,
+  glGetActiveAttrib,
+  glGetActiveSubroutineName,
+  glGetActiveSubroutineUniformName,
+  glGetActiveSubroutineUniformiv,
+  glGetActiveUniform,
+  glGetActiveUniformBlockName,
+  glGetActiveUniformBlockiv,
+  glGetActiveUniformName,
+  glGetActiveUniformsiv,
+  glGetAttachedShaders,
+  glGetAttribLocation,
+  glGetBooleani_v,
+  glGetBooleanv,
+  glGetBufferParameteri64v,
+  glGetBufferParameteriv,
+  glGetBufferPointerv,
+  glGetBufferSubData,
+  glGetCompressedTexImage,
+  glGetCompressedTextureImage,
+  glGetCompressedTextureSubImage,
+  glGetDebugMessageLog,
+  glGetDoublei_v,
+  glGetDoublev,
+  glGetError,
+  glGetFloati_v,
+  glGetFloatv,
+  glGetFragDataIndex,
+  glGetFragDataLocation,
+  glGetFramebufferAttachmentParameteriv,
+  glGetFramebufferParameteriv,
+  glGetGraphicsResetStatus,
+  glGetInteger64i_v,
+  glGetInteger64v,
+  glGetIntegeri_v,
+  glGetIntegerv,
+  glGetInternalformati64v,
+  glGetInternalformativ,
+  glGetMultisamplefv,
+  glGetNamedBufferParameteri64v,
+  glGetNamedBufferParameteriv,
+  glGetNamedBufferPointerv,
+  glGetNamedBufferSubData,
+  glGetNamedFramebufferAttachmentParameteriv,
+  glGetNamedFramebufferParameteriv,
+  glGetNamedRenderbufferParameteriv,
+  glGetObjectLabel,
+  glGetObjectPtrLabel,
+  glGetPointerv,
+  glGetProgramBinary,
+  glGetProgramInfoLog,
+  glGetProgramInterfaceiv,
+  glGetProgramPipelineInfoLog,
+  glGetProgramPipelineiv,
+  glGetProgramResourceIndex,
+  glGetProgramResourceLocation,
+  glGetProgramResourceLocationIndex,
+  glGetProgramResourceName,
+  glGetProgramResourceiv,
+  glGetProgramStageiv,
+  glGetProgramiv,
+  glGetQueryBufferObjecti64v,
+  glGetQueryBufferObjectiv,
+  glGetQueryBufferObjectui64v,
+  glGetQueryBufferObjectuiv,
+  glGetQueryIndexediv,
+  glGetQueryObjecti64v,
+  glGetQueryObjectiv,
+  glGetQueryObjectui64v,
+  glGetQueryObjectuiv,
+  glGetQueryiv,
+  glGetRenderbufferParameteriv,
+  glGetSamplerParameterIiv,
+  glGetSamplerParameterIuiv,
+  glGetSamplerParameterfv,
+  glGetSamplerParameteriv,
+  glGetShaderInfoLog,
+  glGetShaderPrecisionFormat,
+  glGetShaderSource,
+  glGetShaderiv,
+  glGetString,
+  glGetStringi,
+  glGetSubroutineIndex,
+  glGetSubroutineUniformLocation,
+  glGetSynciv,
+  glGetTexImage,
+  glGetTexLevelParameterfv,
+  glGetTexLevelParameteriv,
+  glGetTexParameterIiv,
+  glGetTexParameterIuiv,
+  glGetTexParameterfv,
+  glGetTexParameteriv,
+  glGetTextureImage,
+  glGetTextureLevelParameterfv,
+  glGetTextureLevelParameteriv,
+  glGetTextureParameterIiv,
+  glGetTextureParameterIuiv,
+  glGetTextureParameterfv,
+  glGetTextureParameteriv,
+  glGetTextureSubImage,
+  glGetTransformFeedbackVarying,
+  glGetTransformFeedbacki64_v,
+  glGetTransformFeedbacki_v,
+  glGetTransformFeedbackiv,
+  glGetUniformBlockIndex,
+  glGetUniformIndices,
+  glGetUniformLocation,
+  glGetUniformSubroutineuiv,
+  glGetUniformdv,
+  glGetUniformfv,
+  glGetUniformiv,
+  glGetUniformuiv,
+  glGetVertexArrayIndexed64iv,
+  glGetVertexArrayIndexediv,
+  glGetVertexArrayiv,
+  glGetVertexAttribIiv,
+  glGetVertexAttribIuiv,
+  glGetVertexAttribLdv,
+  glGetVertexAttribPointerv,
+  glGetVertexAttribdv,
+  glGetVertexAttribfv,
+  glGetVertexAttribiv,
+  glGetnCompressedTexImage,
+  glGetnTexImage,
+  glGetnUniformdv,
+  glGetnUniformfv,
+  glGetnUniformiv,
+  glGetnUniformuiv,
+  glHint,
+  glInvalidateBufferData,
+  glInvalidateBufferSubData,
+  glInvalidateFramebuffer,
+  glInvalidateNamedFramebufferData,
+  glInvalidateNamedFramebufferSubData,
+  glInvalidateSubFramebuffer,
+  glInvalidateTexImage,
+  glInvalidateTexSubImage,
+  glIsBuffer,
+  glIsEnabled,
+  glIsEnabledi,
+  glIsFramebuffer,
+  glIsProgram,
+  glIsProgramPipeline,
+  glIsQuery,
+  glIsRenderbuffer,
+  glIsSampler,
+  glIsShader,
+  glIsSync,
+  glIsTexture,
+  glIsTransformFeedback,
+  glIsVertexArray,
+  glLineWidth,
+  glLinkProgram,
+  glLogicOp,
+  glMapBuffer,
+  glMapBufferRange,
+  glMapNamedBuffer,
+  glMapNamedBufferRange,
+  glMemoryBarrier,
+  glMemoryBarrierByRegion,
+  glMinSampleShading,
+  glMultiDrawArrays,
+  glMultiDrawArraysIndirect,
+  glMultiDrawArraysIndirectCount,
+  glMultiDrawElements,
+  glMultiDrawElementsBaseVertex,
+  glMultiDrawElementsIndirect,
+  glMultiDrawElementsIndirectCount,
+  glNamedBufferData,
+  glNamedBufferStorage,
+  glNamedBufferSubData,
+  glNamedFramebufferDrawBuffer,
+  glNamedFramebufferDrawBuffers,
+  glNamedFramebufferParameteri,
+  glNamedFramebufferReadBuffer,
+  glNamedFramebufferRenderbuffer,
+  glNamedFramebufferTexture,
+  glNamedFramebufferTextureLayer,
+  glNamedRenderbufferStorage,
+  glNamedRenderbufferStorageMultisample,
+  glObjectLabel,
+  glObjectPtrLabel,
+  glPatchParameterfv,
+  glPatchParameteri,
+  glPauseTransformFeedback,
+  glPixelStoref,
+  glPixelStorei,
+  glPointParameterf,
+  glPointParameterfv,
+  glPointParameteri,
+  glPointParameteriv,
+  glPointSize,
+  glPolygonMode,
+  glPolygonOffset,
+  glPolygonOffsetClamp,
+  glPopDebugGroup,
+  glPrimitiveRestartIndex,
+  glProgramBinary,
+  glProgramParameteri,
+  glProgramUniform1d,
+  glProgramUniform1dv,
+  glProgramUniform1f,
+  glProgramUniform1fv,
+  glProgramUniform1i,
+  glProgramUniform1iv,
+  glProgramUniform1ui,
+  glProgramUniform1uiv,
+  glProgramUniform2d,
+  glProgramUniform2dv,
+  glProgramUniform2f,
+  glProgramUniform2fv,
+  glProgramUniform2i,
+  glProgramUniform2iv,
+  glProgramUniform2ui,
+  glProgramUniform2uiv,
+  glProgramUniform3d,
+  glProgramUniform3dv,
+  glProgramUniform3f,
+  glProgramUniform3fv,
+  glProgramUniform3i,
+  glProgramUniform3iv,
+  glProgramUniform3ui,
+  glProgramUniform3uiv,
+  glProgramUniform4d,
+  glProgramUniform4dv,
+  glProgramUniform4f,
+  glProgramUniform4fv,
+  glProgramUniform4i,
+  glProgramUniform4iv,
+  glProgramUniform4ui,
+  glProgramUniform4uiv,
+  glProgramUniformMatrix2dv,
+  glProgramUniformMatrix2fv,
+  glProgramUniformMatrix2x3dv,
+  glProgramUniformMatrix2x3fv,
+  glProgramUniformMatrix2x4dv,
+  glProgramUniformMatrix2x4fv,
+  glProgramUniformMatrix3dv,
+  glProgramUniformMatrix3fv,
+  glProgramUniformMatrix3x2dv,
+  glProgramUniformMatrix3x2fv,
+  glProgramUniformMatrix3x4dv,
+  glProgramUniformMatrix3x4fv,
+  glProgramUniformMatrix4dv,
+  glProgramUniformMatrix4fv,
+  glProgramUniformMatrix4x2dv,
+  glProgramUniformMatrix4x2fv,
+  glProgramUniformMatrix4x3dv,
+  glProgramUniformMatrix4x3fv,
+  glProvokingVertex,
+  glPushDebugGroup,
+  glQueryCounter,
+  glReadBuffer,
+  glReadPixels,
+  glReadnPixels,
+  glReleaseShaderCompiler,
+  glRenderbufferStorage,
+  glRenderbufferStorageMultisample,
+  glResumeTransformFeedback,
+  glSampleCoverage,
+  glSampleMaski,
+  glSamplerParameterIiv,
+  glSamplerParameterIuiv,
+  glSamplerParameterf,
+  glSamplerParameterfv,
+  glSamplerParameteri,
+  glSamplerParameteriv,
+  glScissor,
+  glScissorArrayv,
+  glScissorIndexed,
+  glScissorIndexedv,
+  glShaderBinary,
+  glShaderSource,
+  glShaderStorageBlockBinding,
+  glSpecializeShader,
+  glStencilFunc,
+  glStencilFuncSeparate,
+  glStencilMask,
+  glStencilMaskSeparate,
+  glStencilOp,
+  glStencilOpSeparate,
+  glTexBuffer,
+  glTexBufferRange,
+  glTexImage1D,
+  glTexImage2D,
+  glTexImage2DMultisample,
+  glTexImage3D,
+  glTexImage3DMultisample,
+  glTexParameterIiv,
+  glTexParameterIuiv,
+  glTexParameterf,
+  glTexParameterfv,
+  glTexParameteri,
+  glTexParameteriv,
+  glTexStorage1D,
+  glTexStorage2D,
+  glTexStorage2DMultisample,
+  glTexStorage3D,
+  glTexStorage3DMultisample,
+  glTexSubImage1D,
+  glTexSubImage2D,
+  glTexSubImage3D,
+  glTextureBarrier,
+  glTextureBuffer,
+  glTextureBufferRange,
+  glTextureParameterIiv,
+  glTextureParameterIuiv,
+  glTextureParameterf,
+  glTextureParameterfv,
+  glTextureParameteri,
+  glTextureParameteriv,
+  glTextureStorage1D,
+  glTextureStorage2D,
+  glTextureStorage2DMultisample,
+  glTextureStorage3D,
+  glTextureStorage3DMultisample,
+  glTextureSubImage1D,
+  glTextureSubImage2D,
+  glTextureSubImage3D,
+  glTextureView,
+  glTransformFeedbackBufferBase,
+  glTransformFeedbackBufferRange,
+  glTransformFeedbackVaryings,
+  glUniform1d,
+  glUniform1dv,
+  glUniform1f,
+  glUniform1fv,
+  glUniform1i,
+  glUniform1iv,
+  glUniform1ui,
+  glUniform1uiv,
+  glUniform2d,
+  glUniform2dv,
+  glUniform2f,
+  glUniform2fv,
+  glUniform2i,
+  glUniform2iv,
+  glUniform2ui,
+  glUniform2uiv,
+  glUniform3d,
+  glUniform3dv,
+  glUniform3f,
+  glUniform3fv,
+  glUniform3i,
+  glUniform3iv,
+  glUniform3ui,
+  glUniform3uiv,
+  glUniform4d,
+  glUniform4dv,
+  glUniform4f,
+  glUniform4fv,
+  glUniform4i,
+  glUniform4iv,
+  glUniform4ui,
+  glUniform4uiv,
+  glUniformBlockBinding,
+  glUniformMatrix2dv,
+  glUniformMatrix2fv,
+  glUniformMatrix2x3dv,
+  glUniformMatrix2x3fv,
+  glUniformMatrix2x4dv,
+  glUniformMatrix2x4fv,
+  glUniformMatrix3dv,
+  glUniformMatrix3fv,
+  glUniformMatrix3x2dv,
+  glUniformMatrix3x2fv,
+  glUniformMatrix3x4dv,
+  glUniformMatrix3x4fv,
+  glUniformMatrix4dv,
+  glUniformMatrix4fv,
+  glUniformMatrix4x2dv,
+  glUniformMatrix4x2fv,
+  glUniformMatrix4x3dv,
+  glUniformMatrix4x3fv,
+  glUniformSubroutinesuiv,
+  glUnmapBuffer,
+  glUnmapNamedBuffer,
+  glUseProgram,
+  glUseProgramStages,
+  glValidateProgram,
+  glValidateProgramPipeline,
+  glVertexArrayAttribBinding,
+  glVertexArrayAttribFormat,
+  glVertexArrayAttribIFormat,
+  glVertexArrayAttribLFormat,
+  glVertexArrayBindingDivisor,
+  glVertexArrayElementBuffer,
+  glVertexArrayVertexBuffer,
+  glVertexArrayVertexBuffers,
+  glVertexAttrib1d,
+  glVertexAttrib1dv,
+  glVertexAttrib1f,
+  glVertexAttrib1fv,
+  glVertexAttrib1s,
+  glVertexAttrib1sv,
+  glVertexAttrib2d,
+  glVertexAttrib2dv,
+  glVertexAttrib2f,
+  glVertexAttrib2fv,
+  glVertexAttrib2s,
+  glVertexAttrib2sv,
+  glVertexAttrib3d,
+  glVertexAttrib3dv,
+  glVertexAttrib3f,
+  glVertexAttrib3fv,
+  glVertexAttrib3s,
+  glVertexAttrib3sv,
+  glVertexAttrib4Nbv,
+  glVertexAttrib4Niv,
+  glVertexAttrib4Nsv,
+  glVertexAttrib4Nub,
+  glVertexAttrib4Nubv,
+  glVertexAttrib4Nuiv,
+  glVertexAttrib4Nusv,
+  glVertexAttrib4bv,
+  glVertexAttrib4d,
+  glVertexAttrib4dv,
+  glVertexAttrib4f,
+  glVertexAttrib4fv,
+  glVertexAttrib4iv,
+  glVertexAttrib4s,
+  glVertexAttrib4sv,
+  glVertexAttrib4ubv,
+  glVertexAttrib4uiv,
+  glVertexAttrib4usv,
+  glVertexAttribBinding,
+  glVertexAttribDivisor,
+  glVertexAttribFormat,
+  glVertexAttribI1i,
+  glVertexAttribI1iv,
+  glVertexAttribI1ui,
+  glVertexAttribI1uiv,
+  glVertexAttribI2i,
+  glVertexAttribI2iv,
+  glVertexAttribI2ui,
+  glVertexAttribI2uiv,
+  glVertexAttribI3i,
+  glVertexAttribI3iv,
+  glVertexAttribI3ui,
+  glVertexAttribI3uiv,
+  glVertexAttribI4bv,
+  glVertexAttribI4i,
+  glVertexAttribI4iv,
+  glVertexAttribI4sv,
+  glVertexAttribI4ubv,
+  glVertexAttribI4ui,
+  glVertexAttribI4uiv,
+  glVertexAttribI4usv,
+  glVertexAttribIFormat,
+  glVertexAttribIPointer,
+  glVertexAttribL1d,
+  glVertexAttribL1dv,
+  glVertexAttribL2d,
+  glVertexAttribL2dv,
+  glVertexAttribL3d,
+  glVertexAttribL3dv,
+  glVertexAttribL4d,
+  glVertexAttribL4dv,
+  glVertexAttribLFormat,
+  glVertexAttribLPointer,
+  glVertexAttribP1ui,
+  glVertexAttribP1uiv,
+  glVertexAttribP2ui,
+  glVertexAttribP2uiv,
+  glVertexAttribP3ui,
+  glVertexAttribP3uiv,
+  glVertexAttribP4ui,
+  glVertexAttribP4uiv,
+  glVertexAttribPointer,
+  glVertexBindingDivisor,
+  glViewport,
+  glViewportArrayv,
+  glViewportIndexedf,
+  glViewportIndexedfv,
+  glWaitSync
+) where
+
+import Graphics.GL.Types
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT.hs b/src/Graphics/GL/EXT.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT.hs
@@ -0,0 +1,225 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- A convenience module, combining all raw modules containing EXT extensions.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT (
+  module Graphics.GL.EXT.ABGR,
+  module Graphics.GL.EXT.BGRA,
+  module Graphics.GL.EXT.BindableUniform,
+  module Graphics.GL.EXT.BlendColor,
+  module Graphics.GL.EXT.BlendEquationSeparate,
+  module Graphics.GL.EXT.BlendFuncSeparate,
+  module Graphics.GL.EXT.BlendMinmax,
+  module Graphics.GL.EXT.BlendSubtract,
+  module Graphics.GL.EXT.CMYKA,
+  module Graphics.GL.EXT.ClipVolumeHint,
+  module Graphics.GL.EXT.ColorSubtable,
+  module Graphics.GL.EXT.CompiledVertexArray,
+  module Graphics.GL.EXT.Convolution,
+  module Graphics.GL.EXT.CoordinateFrame,
+  module Graphics.GL.EXT.CopyTexture,
+  module Graphics.GL.EXT.CullVertex,
+  module Graphics.GL.EXT.DebugLabel,
+  module Graphics.GL.EXT.DebugMarker,
+  module Graphics.GL.EXT.DepthBoundsTest,
+  module Graphics.GL.EXT.DirectStateAccess,
+  module Graphics.GL.EXT.DrawBuffers2,
+  module Graphics.GL.EXT.DrawInstanced,
+  module Graphics.GL.EXT.DrawRangeElements,
+  module Graphics.GL.EXT.EglImageStorage,
+  module Graphics.GL.EXT.ExternalBuffer,
+  module Graphics.GL.EXT.FogCoord,
+  module Graphics.GL.EXT.FourTwoTwoPixels,
+  module Graphics.GL.EXT.FramebufferBlit,
+  module Graphics.GL.EXT.FramebufferMultisample,
+  module Graphics.GL.EXT.FramebufferMultisampleBlitScaled,
+  module Graphics.GL.EXT.FramebufferObject,
+  module Graphics.GL.EXT.FramebufferSRGB,
+  module Graphics.GL.EXT.GPUProgramParameters,
+  module Graphics.GL.EXT.GPUShader4,
+  module Graphics.GL.EXT.GeometryShader4,
+  module Graphics.GL.EXT.Histogram,
+  module Graphics.GL.EXT.IndexArrayFormats,
+  module Graphics.GL.EXT.IndexFunc,
+  module Graphics.GL.EXT.IndexMaterial,
+  module Graphics.GL.EXT.LightTexture,
+  module Graphics.GL.EXT.MemoryObject,
+  module Graphics.GL.EXT.MemoryObjectFd,
+  module Graphics.GL.EXT.MemoryObjectWin32,
+  module Graphics.GL.EXT.MultiDrawArrays,
+  module Graphics.GL.EXT.Multisample,
+  module Graphics.GL.EXT.PackedDepthStencil,
+  module Graphics.GL.EXT.PackedFloat,
+  module Graphics.GL.EXT.PackedPixels,
+  module Graphics.GL.EXT.PalettedTexture,
+  module Graphics.GL.EXT.PixelBufferObject,
+  module Graphics.GL.EXT.PixelTransform,
+  module Graphics.GL.EXT.PointParameters,
+  module Graphics.GL.EXT.PolygonOffset,
+  module Graphics.GL.EXT.PolygonOffsetClamp,
+  module Graphics.GL.EXT.ProvokingVertex,
+  module Graphics.GL.EXT.RasterMultisample,
+  module Graphics.GL.EXT.RescaleNormal,
+  module Graphics.GL.EXT.SecondaryColor,
+  module Graphics.GL.EXT.Semaphore,
+  module Graphics.GL.EXT.SemaphoreFd,
+  module Graphics.GL.EXT.SemaphoreWin32,
+  module Graphics.GL.EXT.SeparateShaderObjects,
+  module Graphics.GL.EXT.SeparateSpecularColor,
+  module Graphics.GL.EXT.ShaderFramebufferFetch,
+  module Graphics.GL.EXT.ShaderFramebufferFetchNonCoherent,
+  module Graphics.GL.EXT.ShaderImageLoadStore,
+  module Graphics.GL.EXT.SharedTexturePalette,
+  module Graphics.GL.EXT.StencilClearTag,
+  module Graphics.GL.EXT.StencilTwoSide,
+  module Graphics.GL.EXT.StencilWrap,
+  module Graphics.GL.EXT.Subtexture,
+  module Graphics.GL.EXT.Texture,
+  module Graphics.GL.EXT.Texture3D,
+  module Graphics.GL.EXT.TextureArray,
+  module Graphics.GL.EXT.TextureBufferObject,
+  module Graphics.GL.EXT.TextureCompressionLATC,
+  module Graphics.GL.EXT.TextureCompressionRGTC,
+  module Graphics.GL.EXT.TextureCompressionS3TC,
+  module Graphics.GL.EXT.TextureCubeMap,
+  module Graphics.GL.EXT.TextureEnvCombine,
+  module Graphics.GL.EXT.TextureEnvDot3,
+  module Graphics.GL.EXT.TextureFilterAnisotropic,
+  module Graphics.GL.EXT.TextureFilterMinmax,
+  module Graphics.GL.EXT.TextureInteger,
+  module Graphics.GL.EXT.TextureLODBias,
+  module Graphics.GL.EXT.TextureMirrorClamp,
+  module Graphics.GL.EXT.TextureObject,
+  module Graphics.GL.EXT.TexturePerturbNormal,
+  module Graphics.GL.EXT.TextureSNorm,
+  module Graphics.GL.EXT.TextureSRGB,
+  module Graphics.GL.EXT.TextureSRGBDecode,
+  module Graphics.GL.EXT.TextureSRGBR8,
+  module Graphics.GL.EXT.TextureSharedExponent,
+  module Graphics.GL.EXT.TextureSwizzle,
+  module Graphics.GL.EXT.TimerQuery,
+  module Graphics.GL.EXT.TransformFeedback,
+  module Graphics.GL.EXT.VertexArray,
+  module Graphics.GL.EXT.VertexArrayBGRA,
+  module Graphics.GL.EXT.VertexAttrib64Bit,
+  module Graphics.GL.EXT.VertexShader,
+  module Graphics.GL.EXT.VertexWeighting,
+  module Graphics.GL.EXT.Win32KeyedMutex,
+  module Graphics.GL.EXT.WindowRectangles,
+  module Graphics.GL.EXT.X11SyncObject
+) where
+
+import Graphics.GL.EXT.ABGR
+import Graphics.GL.EXT.BGRA
+import Graphics.GL.EXT.BindableUniform
+import Graphics.GL.EXT.BlendColor
+import Graphics.GL.EXT.BlendEquationSeparate
+import Graphics.GL.EXT.BlendFuncSeparate
+import Graphics.GL.EXT.BlendMinmax
+import Graphics.GL.EXT.BlendSubtract
+import Graphics.GL.EXT.CMYKA
+import Graphics.GL.EXT.ClipVolumeHint
+import Graphics.GL.EXT.ColorSubtable
+import Graphics.GL.EXT.CompiledVertexArray
+import Graphics.GL.EXT.Convolution
+import Graphics.GL.EXT.CoordinateFrame
+import Graphics.GL.EXT.CopyTexture
+import Graphics.GL.EXT.CullVertex
+import Graphics.GL.EXT.DebugLabel
+import Graphics.GL.EXT.DebugMarker
+import Graphics.GL.EXT.DepthBoundsTest
+import Graphics.GL.EXT.DirectStateAccess
+import Graphics.GL.EXT.DrawBuffers2
+import Graphics.GL.EXT.DrawInstanced
+import Graphics.GL.EXT.DrawRangeElements
+import Graphics.GL.EXT.EglImageStorage
+import Graphics.GL.EXT.ExternalBuffer
+import Graphics.GL.EXT.FogCoord
+import Graphics.GL.EXT.FourTwoTwoPixels
+import Graphics.GL.EXT.FramebufferBlit
+import Graphics.GL.EXT.FramebufferMultisample
+import Graphics.GL.EXT.FramebufferMultisampleBlitScaled
+import Graphics.GL.EXT.FramebufferObject
+import Graphics.GL.EXT.FramebufferSRGB
+import Graphics.GL.EXT.GPUProgramParameters
+import Graphics.GL.EXT.GPUShader4
+import Graphics.GL.EXT.GeometryShader4
+import Graphics.GL.EXT.Histogram
+import Graphics.GL.EXT.IndexArrayFormats
+import Graphics.GL.EXT.IndexFunc
+import Graphics.GL.EXT.IndexMaterial
+import Graphics.GL.EXT.LightTexture
+import Graphics.GL.EXT.MemoryObject
+import Graphics.GL.EXT.MemoryObjectFd
+import Graphics.GL.EXT.MemoryObjectWin32
+import Graphics.GL.EXT.MultiDrawArrays
+import Graphics.GL.EXT.Multisample
+import Graphics.GL.EXT.PackedDepthStencil
+import Graphics.GL.EXT.PackedFloat
+import Graphics.GL.EXT.PackedPixels
+import Graphics.GL.EXT.PalettedTexture
+import Graphics.GL.EXT.PixelBufferObject
+import Graphics.GL.EXT.PixelTransform
+import Graphics.GL.EXT.PointParameters
+import Graphics.GL.EXT.PolygonOffset
+import Graphics.GL.EXT.PolygonOffsetClamp
+import Graphics.GL.EXT.ProvokingVertex
+import Graphics.GL.EXT.RasterMultisample
+import Graphics.GL.EXT.RescaleNormal
+import Graphics.GL.EXT.SecondaryColor
+import Graphics.GL.EXT.Semaphore
+import Graphics.GL.EXT.SemaphoreFd
+import Graphics.GL.EXT.SemaphoreWin32
+import Graphics.GL.EXT.SeparateShaderObjects
+import Graphics.GL.EXT.SeparateSpecularColor
+import Graphics.GL.EXT.ShaderFramebufferFetch
+import Graphics.GL.EXT.ShaderFramebufferFetchNonCoherent
+import Graphics.GL.EXT.ShaderImageLoadStore
+import Graphics.GL.EXT.SharedTexturePalette
+import Graphics.GL.EXT.StencilClearTag
+import Graphics.GL.EXT.StencilTwoSide
+import Graphics.GL.EXT.StencilWrap
+import Graphics.GL.EXT.Subtexture
+import Graphics.GL.EXT.Texture
+import Graphics.GL.EXT.Texture3D
+import Graphics.GL.EXT.TextureArray
+import Graphics.GL.EXT.TextureBufferObject
+import Graphics.GL.EXT.TextureCompressionLATC
+import Graphics.GL.EXT.TextureCompressionRGTC
+import Graphics.GL.EXT.TextureCompressionS3TC
+import Graphics.GL.EXT.TextureCubeMap
+import Graphics.GL.EXT.TextureEnvCombine
+import Graphics.GL.EXT.TextureEnvDot3
+import Graphics.GL.EXT.TextureFilterAnisotropic
+import Graphics.GL.EXT.TextureFilterMinmax
+import Graphics.GL.EXT.TextureInteger
+import Graphics.GL.EXT.TextureLODBias
+import Graphics.GL.EXT.TextureMirrorClamp
+import Graphics.GL.EXT.TextureObject
+import Graphics.GL.EXT.TexturePerturbNormal
+import Graphics.GL.EXT.TextureSNorm
+import Graphics.GL.EXT.TextureSRGB
+import Graphics.GL.EXT.TextureSRGBDecode
+import Graphics.GL.EXT.TextureSRGBR8
+import Graphics.GL.EXT.TextureSharedExponent
+import Graphics.GL.EXT.TextureSwizzle
+import Graphics.GL.EXT.TimerQuery
+import Graphics.GL.EXT.TransformFeedback
+import Graphics.GL.EXT.VertexArray
+import Graphics.GL.EXT.VertexArrayBGRA
+import Graphics.GL.EXT.VertexAttrib64Bit
+import Graphics.GL.EXT.VertexShader
+import Graphics.GL.EXT.VertexWeighting
+import Graphics.GL.EXT.Win32KeyedMutex
+import Graphics.GL.EXT.WindowRectangles
+import Graphics.GL.EXT.X11SyncObject
diff --git a/src/Graphics/GL/EXT/ABGR.hs b/src/Graphics/GL/EXT/ABGR.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/ABGR.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.ABGR
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.ABGR (
+  -- * Extension Support
+  glGetEXTABGR,
+  gl_EXT_abgr,
+  -- * Enums
+  pattern GL_ABGR_EXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/EXT/BGRA.hs b/src/Graphics/GL/EXT/BGRA.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/BGRA.hs
@@ -0,0 +1,24 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.BGRA
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.BGRA (
+  -- * Extension Support
+  glGetEXTBGRA,
+  gl_EXT_bgra,
+  -- * Enums
+  pattern GL_BGRA_EXT,
+  pattern GL_BGR_EXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/EXT/BindableUniform.hs b/src/Graphics/GL/EXT/BindableUniform.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/BindableUniform.hs
@@ -0,0 +1,33 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.BindableUniform
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.BindableUniform (
+  -- * Extension Support
+  glGetEXTBindableUniform,
+  gl_EXT_bindable_uniform,
+  -- * Enums
+  pattern GL_MAX_BINDABLE_UNIFORM_SIZE_EXT,
+  pattern GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT,
+  pattern GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT,
+  pattern GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT,
+  pattern GL_UNIFORM_BUFFER_BINDING_EXT,
+  pattern GL_UNIFORM_BUFFER_EXT,
+  -- * Functions
+  glGetUniformBufferSizeEXT,
+  glGetUniformOffsetEXT,
+  glUniformBufferEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/BlendColor.hs b/src/Graphics/GL/EXT/BlendColor.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/BlendColor.hs
@@ -0,0 +1,30 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.BlendColor
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.BlendColor (
+  -- * Extension Support
+  glGetEXTBlendColor,
+  gl_EXT_blend_color,
+  -- * Enums
+  pattern GL_BLEND_COLOR_EXT,
+  pattern GL_CONSTANT_ALPHA_EXT,
+  pattern GL_CONSTANT_COLOR_EXT,
+  pattern GL_ONE_MINUS_CONSTANT_ALPHA_EXT,
+  pattern GL_ONE_MINUS_CONSTANT_COLOR_EXT,
+  -- * Functions
+  glBlendColorEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/BlendEquationSeparate.hs b/src/Graphics/GL/EXT/BlendEquationSeparate.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/BlendEquationSeparate.hs
@@ -0,0 +1,27 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.BlendEquationSeparate
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.BlendEquationSeparate (
+  -- * Extension Support
+  glGetEXTBlendEquationSeparate,
+  gl_EXT_blend_equation_separate,
+  -- * Enums
+  pattern GL_BLEND_EQUATION_ALPHA_EXT,
+  pattern GL_BLEND_EQUATION_RGB_EXT,
+  -- * Functions
+  glBlendEquationSeparateEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/BlendFuncSeparate.hs b/src/Graphics/GL/EXT/BlendFuncSeparate.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/BlendFuncSeparate.hs
@@ -0,0 +1,29 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.BlendFuncSeparate
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.BlendFuncSeparate (
+  -- * Extension Support
+  glGetEXTBlendFuncSeparate,
+  gl_EXT_blend_func_separate,
+  -- * Enums
+  pattern GL_BLEND_DST_ALPHA_EXT,
+  pattern GL_BLEND_DST_RGB_EXT,
+  pattern GL_BLEND_SRC_ALPHA_EXT,
+  pattern GL_BLEND_SRC_RGB_EXT,
+  -- * Functions
+  glBlendFuncSeparateEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/BlendMinmax.hs b/src/Graphics/GL/EXT/BlendMinmax.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/BlendMinmax.hs
@@ -0,0 +1,29 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.BlendMinmax
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.BlendMinmax (
+  -- * Extension Support
+  glGetEXTBlendMinmax,
+  gl_EXT_blend_minmax,
+  -- * Enums
+  pattern GL_BLEND_EQUATION_EXT,
+  pattern GL_FUNC_ADD_EXT,
+  pattern GL_MAX_EXT,
+  pattern GL_MIN_EXT,
+  -- * Functions
+  glBlendEquationEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/BlendSubtract.hs b/src/Graphics/GL/EXT/BlendSubtract.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/BlendSubtract.hs
@@ -0,0 +1,24 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.BlendSubtract
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.BlendSubtract (
+  -- * Extension Support
+  glGetEXTBlendSubtract,
+  gl_EXT_blend_subtract,
+  -- * Enums
+  pattern GL_FUNC_REVERSE_SUBTRACT_EXT,
+  pattern GL_FUNC_SUBTRACT_EXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/EXT/CMYKA.hs b/src/Graphics/GL/EXT/CMYKA.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/CMYKA.hs
@@ -0,0 +1,26 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.CMYKA
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.CMYKA (
+  -- * Extension Support
+  glGetEXTCMYKA,
+  gl_EXT_cmyka,
+  -- * Enums
+  pattern GL_CMYKA_EXT,
+  pattern GL_CMYK_EXT,
+  pattern GL_PACK_CMYK_HINT_EXT,
+  pattern GL_UNPACK_CMYK_HINT_EXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/EXT/ClipVolumeHint.hs b/src/Graphics/GL/EXT/ClipVolumeHint.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/ClipVolumeHint.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.ClipVolumeHint
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.ClipVolumeHint (
+  -- * Extension Support
+  glGetEXTClipVolumeHint,
+  gl_EXT_clip_volume_hint,
+  -- * Enums
+  pattern GL_CLIP_VOLUME_CLIPPING_HINT_EXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/EXT/ColorSubtable.hs b/src/Graphics/GL/EXT/ColorSubtable.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/ColorSubtable.hs
@@ -0,0 +1,23 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.ColorSubtable
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.ColorSubtable (
+  -- * Extension Support
+  glGetEXTColorSubtable,
+  gl_EXT_color_subtable,
+  -- * Functions
+  glColorSubTableEXT,
+  glCopyColorSubTableEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/CompiledVertexArray.hs b/src/Graphics/GL/EXT/CompiledVertexArray.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/CompiledVertexArray.hs
@@ -0,0 +1,28 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.CompiledVertexArray
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.CompiledVertexArray (
+  -- * Extension Support
+  glGetEXTCompiledVertexArray,
+  gl_EXT_compiled_vertex_array,
+  -- * Enums
+  pattern GL_ARRAY_ELEMENT_LOCK_COUNT_EXT,
+  pattern GL_ARRAY_ELEMENT_LOCK_FIRST_EXT,
+  -- * Functions
+  glLockArraysEXT,
+  glUnlockArraysEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/Convolution.hs b/src/Graphics/GL/EXT/Convolution.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/Convolution.hs
@@ -0,0 +1,57 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.Convolution
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.Convolution (
+  -- * Extension Support
+  glGetEXTConvolution,
+  gl_EXT_convolution,
+  -- * Enums
+  pattern GL_CONVOLUTION_1D_EXT,
+  pattern GL_CONVOLUTION_2D_EXT,
+  pattern GL_CONVOLUTION_BORDER_MODE_EXT,
+  pattern GL_CONVOLUTION_FILTER_BIAS_EXT,
+  pattern GL_CONVOLUTION_FILTER_SCALE_EXT,
+  pattern GL_CONVOLUTION_FORMAT_EXT,
+  pattern GL_CONVOLUTION_HEIGHT_EXT,
+  pattern GL_CONVOLUTION_WIDTH_EXT,
+  pattern GL_MAX_CONVOLUTION_HEIGHT_EXT,
+  pattern GL_MAX_CONVOLUTION_WIDTH_EXT,
+  pattern GL_POST_CONVOLUTION_ALPHA_BIAS_EXT,
+  pattern GL_POST_CONVOLUTION_ALPHA_SCALE_EXT,
+  pattern GL_POST_CONVOLUTION_BLUE_BIAS_EXT,
+  pattern GL_POST_CONVOLUTION_BLUE_SCALE_EXT,
+  pattern GL_POST_CONVOLUTION_GREEN_BIAS_EXT,
+  pattern GL_POST_CONVOLUTION_GREEN_SCALE_EXT,
+  pattern GL_POST_CONVOLUTION_RED_BIAS_EXT,
+  pattern GL_POST_CONVOLUTION_RED_SCALE_EXT,
+  pattern GL_REDUCE_EXT,
+  pattern GL_SEPARABLE_2D_EXT,
+  -- * Functions
+  glConvolutionFilter1DEXT,
+  glConvolutionFilter2DEXT,
+  glConvolutionParameterfEXT,
+  glConvolutionParameterfvEXT,
+  glConvolutionParameteriEXT,
+  glConvolutionParameterivEXT,
+  glCopyConvolutionFilter1DEXT,
+  glCopyConvolutionFilter2DEXT,
+  glGetConvolutionFilterEXT,
+  glGetConvolutionParameterfvEXT,
+  glGetConvolutionParameterivEXT,
+  glGetSeparableFilterEXT,
+  glSeparableFilter2DEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/CoordinateFrame.hs b/src/Graphics/GL/EXT/CoordinateFrame.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/CoordinateFrame.hs
@@ -0,0 +1,60 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.CoordinateFrame
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.CoordinateFrame (
+  -- * Extension Support
+  glGetEXTCoordinateFrame,
+  gl_EXT_coordinate_frame,
+  -- * Enums
+  pattern GL_BINORMAL_ARRAY_EXT,
+  pattern GL_BINORMAL_ARRAY_POINTER_EXT,
+  pattern GL_BINORMAL_ARRAY_STRIDE_EXT,
+  pattern GL_BINORMAL_ARRAY_TYPE_EXT,
+  pattern GL_CURRENT_BINORMAL_EXT,
+  pattern GL_CURRENT_TANGENT_EXT,
+  pattern GL_MAP1_BINORMAL_EXT,
+  pattern GL_MAP1_TANGENT_EXT,
+  pattern GL_MAP2_BINORMAL_EXT,
+  pattern GL_MAP2_TANGENT_EXT,
+  pattern GL_TANGENT_ARRAY_EXT,
+  pattern GL_TANGENT_ARRAY_POINTER_EXT,
+  pattern GL_TANGENT_ARRAY_STRIDE_EXT,
+  pattern GL_TANGENT_ARRAY_TYPE_EXT,
+  -- * Functions
+  glBinormal3bEXT,
+  glBinormal3bvEXT,
+  glBinormal3dEXT,
+  glBinormal3dvEXT,
+  glBinormal3fEXT,
+  glBinormal3fvEXT,
+  glBinormal3iEXT,
+  glBinormal3ivEXT,
+  glBinormal3sEXT,
+  glBinormal3svEXT,
+  glBinormalPointerEXT,
+  glTangent3bEXT,
+  glTangent3bvEXT,
+  glTangent3dEXT,
+  glTangent3dvEXT,
+  glTangent3fEXT,
+  glTangent3fvEXT,
+  glTangent3iEXT,
+  glTangent3ivEXT,
+  glTangent3sEXT,
+  glTangent3svEXT,
+  glTangentPointerEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/CopyTexture.hs b/src/Graphics/GL/EXT/CopyTexture.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/CopyTexture.hs
@@ -0,0 +1,26 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.CopyTexture
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.CopyTexture (
+  -- * Extension Support
+  glGetEXTCopyTexture,
+  gl_EXT_copy_texture,
+  -- * Functions
+  glCopyTexImage1DEXT,
+  glCopyTexImage2DEXT,
+  glCopyTexSubImage1DEXT,
+  glCopyTexSubImage2DEXT,
+  glCopyTexSubImage3DEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/CullVertex.hs b/src/Graphics/GL/EXT/CullVertex.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/CullVertex.hs
@@ -0,0 +1,29 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.CullVertex
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.CullVertex (
+  -- * Extension Support
+  glGetEXTCullVertex,
+  gl_EXT_cull_vertex,
+  -- * Enums
+  pattern GL_CULL_VERTEX_EXT,
+  pattern GL_CULL_VERTEX_EYE_POSITION_EXT,
+  pattern GL_CULL_VERTEX_OBJECT_POSITION_EXT,
+  -- * Functions
+  glCullParameterdvEXT,
+  glCullParameterfvEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/DebugLabel.hs b/src/Graphics/GL/EXT/DebugLabel.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/DebugLabel.hs
@@ -0,0 +1,34 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.DebugLabel
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.DebugLabel (
+  -- * Extension Support
+  glGetEXTDebugLabel,
+  gl_EXT_debug_label,
+  -- * Enums
+  pattern GL_BUFFER_OBJECT_EXT,
+  pattern GL_PROGRAM_OBJECT_EXT,
+  pattern GL_PROGRAM_PIPELINE_OBJECT_EXT,
+  pattern GL_QUERY_OBJECT_EXT,
+  pattern GL_SAMPLER,
+  pattern GL_SHADER_OBJECT_EXT,
+  pattern GL_TRANSFORM_FEEDBACK,
+  pattern GL_VERTEX_ARRAY_OBJECT_EXT,
+  -- * Functions
+  glGetObjectLabelEXT,
+  glLabelObjectEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/DebugMarker.hs b/src/Graphics/GL/EXT/DebugMarker.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/DebugMarker.hs
@@ -0,0 +1,24 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.DebugMarker
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.DebugMarker (
+  -- * Extension Support
+  glGetEXTDebugMarker,
+  gl_EXT_debug_marker,
+  -- * Functions
+  glInsertEventMarkerEXT,
+  glPopGroupMarkerEXT,
+  glPushGroupMarkerEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/DepthBoundsTest.hs b/src/Graphics/GL/EXT/DepthBoundsTest.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/DepthBoundsTest.hs
@@ -0,0 +1,27 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.DepthBoundsTest
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.DepthBoundsTest (
+  -- * Extension Support
+  glGetEXTDepthBoundsTest,
+  gl_EXT_depth_bounds_test,
+  -- * Enums
+  pattern GL_DEPTH_BOUNDS_EXT,
+  pattern GL_DEPTH_BOUNDS_TEST_EXT,
+  -- * Functions
+  glDepthBoundsEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/DirectStateAccess.hs b/src/Graphics/GL/EXT/DirectStateAccess.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/DirectStateAccess.hs
@@ -0,0 +1,282 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.DirectStateAccess
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.DirectStateAccess (
+  -- * Extension Support
+  glGetEXTDirectStateAccess,
+  gl_EXT_direct_state_access,
+  -- * Enums
+  pattern GL_PROGRAM_MATRIX_EXT,
+  pattern GL_PROGRAM_MATRIX_STACK_DEPTH_EXT,
+  pattern GL_TRANSPOSE_PROGRAM_MATRIX_EXT,
+  -- * Functions
+  glBindMultiTextureEXT,
+  glCheckNamedFramebufferStatusEXT,
+  glClearNamedBufferDataEXT,
+  glClearNamedBufferSubDataEXT,
+  glClientAttribDefaultEXT,
+  glCompressedMultiTexImage1DEXT,
+  glCompressedMultiTexImage2DEXT,
+  glCompressedMultiTexImage3DEXT,
+  glCompressedMultiTexSubImage1DEXT,
+  glCompressedMultiTexSubImage2DEXT,
+  glCompressedMultiTexSubImage3DEXT,
+  glCompressedTextureImage1DEXT,
+  glCompressedTextureImage2DEXT,
+  glCompressedTextureImage3DEXT,
+  glCompressedTextureSubImage1DEXT,
+  glCompressedTextureSubImage2DEXT,
+  glCompressedTextureSubImage3DEXT,
+  glCopyMultiTexImage1DEXT,
+  glCopyMultiTexImage2DEXT,
+  glCopyMultiTexSubImage1DEXT,
+  glCopyMultiTexSubImage2DEXT,
+  glCopyMultiTexSubImage3DEXT,
+  glCopyTextureImage1DEXT,
+  glCopyTextureImage2DEXT,
+  glCopyTextureSubImage1DEXT,
+  glCopyTextureSubImage2DEXT,
+  glCopyTextureSubImage3DEXT,
+  glDisableClientStateIndexedEXT,
+  glDisableClientStateiEXT,
+  glDisableIndexedEXT,
+  glDisableVertexArrayAttribEXT,
+  glDisableVertexArrayEXT,
+  glEnableClientStateIndexedEXT,
+  glEnableClientStateiEXT,
+  glEnableIndexedEXT,
+  glEnableVertexArrayAttribEXT,
+  glEnableVertexArrayEXT,
+  glFlushMappedNamedBufferRangeEXT,
+  glFramebufferDrawBufferEXT,
+  glFramebufferDrawBuffersEXT,
+  glFramebufferReadBufferEXT,
+  glGenerateMultiTexMipmapEXT,
+  glGenerateTextureMipmapEXT,
+  glGetBooleanIndexedvEXT,
+  glGetCompressedMultiTexImageEXT,
+  glGetCompressedTextureImageEXT,
+  glGetDoubleIndexedvEXT,
+  glGetDoublei_vEXT,
+  glGetFloatIndexedvEXT,
+  glGetFloati_vEXT,
+  glGetFramebufferParameterivEXT,
+  glGetIntegerIndexedvEXT,
+  glGetMultiTexEnvfvEXT,
+  glGetMultiTexEnvivEXT,
+  glGetMultiTexGendvEXT,
+  glGetMultiTexGenfvEXT,
+  glGetMultiTexGenivEXT,
+  glGetMultiTexImageEXT,
+  glGetMultiTexLevelParameterfvEXT,
+  glGetMultiTexLevelParameterivEXT,
+  glGetMultiTexParameterIivEXT,
+  glGetMultiTexParameterIuivEXT,
+  glGetMultiTexParameterfvEXT,
+  glGetMultiTexParameterivEXT,
+  glGetNamedBufferParameterivEXT,
+  glGetNamedBufferPointervEXT,
+  glGetNamedBufferSubDataEXT,
+  glGetNamedFramebufferAttachmentParameterivEXT,
+  glGetNamedFramebufferParameterivEXT,
+  glGetNamedProgramLocalParameterIivEXT,
+  glGetNamedProgramLocalParameterIuivEXT,
+  glGetNamedProgramLocalParameterdvEXT,
+  glGetNamedProgramLocalParameterfvEXT,
+  glGetNamedProgramStringEXT,
+  glGetNamedProgramivEXT,
+  glGetNamedRenderbufferParameterivEXT,
+  glGetPointerIndexedvEXT,
+  glGetPointeri_vEXT,
+  glGetTextureImageEXT,
+  glGetTextureLevelParameterfvEXT,
+  glGetTextureLevelParameterivEXT,
+  glGetTextureParameterIivEXT,
+  glGetTextureParameterIuivEXT,
+  glGetTextureParameterfvEXT,
+  glGetTextureParameterivEXT,
+  glGetVertexArrayIntegeri_vEXT,
+  glGetVertexArrayIntegervEXT,
+  glGetVertexArrayPointeri_vEXT,
+  glGetVertexArrayPointervEXT,
+  glIsEnabledIndexedEXT,
+  glMapNamedBufferEXT,
+  glMapNamedBufferRangeEXT,
+  glMatrixFrustumEXT,
+  glMatrixLoadIdentityEXT,
+  glMatrixLoadTransposedEXT,
+  glMatrixLoadTransposefEXT,
+  glMatrixLoaddEXT,
+  glMatrixLoadfEXT,
+  glMatrixMultTransposedEXT,
+  glMatrixMultTransposefEXT,
+  glMatrixMultdEXT,
+  glMatrixMultfEXT,
+  glMatrixOrthoEXT,
+  glMatrixPopEXT,
+  glMatrixPushEXT,
+  glMatrixRotatedEXT,
+  glMatrixRotatefEXT,
+  glMatrixScaledEXT,
+  glMatrixScalefEXT,
+  glMatrixTranslatedEXT,
+  glMatrixTranslatefEXT,
+  glMultiTexBufferEXT,
+  glMultiTexCoordPointerEXT,
+  glMultiTexEnvfEXT,
+  glMultiTexEnvfvEXT,
+  glMultiTexEnviEXT,
+  glMultiTexEnvivEXT,
+  glMultiTexGendEXT,
+  glMultiTexGendvEXT,
+  glMultiTexGenfEXT,
+  glMultiTexGenfvEXT,
+  glMultiTexGeniEXT,
+  glMultiTexGenivEXT,
+  glMultiTexImage1DEXT,
+  glMultiTexImage2DEXT,
+  glMultiTexImage3DEXT,
+  glMultiTexParameterIivEXT,
+  glMultiTexParameterIuivEXT,
+  glMultiTexParameterfEXT,
+  glMultiTexParameterfvEXT,
+  glMultiTexParameteriEXT,
+  glMultiTexParameterivEXT,
+  glMultiTexRenderbufferEXT,
+  glMultiTexSubImage1DEXT,
+  glMultiTexSubImage2DEXT,
+  glMultiTexSubImage3DEXT,
+  glNamedBufferDataEXT,
+  glNamedBufferStorageEXT,
+  glNamedBufferSubDataEXT,
+  glNamedCopyBufferSubDataEXT,
+  glNamedFramebufferParameteriEXT,
+  glNamedFramebufferRenderbufferEXT,
+  glNamedFramebufferTexture1DEXT,
+  glNamedFramebufferTexture2DEXT,
+  glNamedFramebufferTexture3DEXT,
+  glNamedFramebufferTextureEXT,
+  glNamedFramebufferTextureFaceEXT,
+  glNamedFramebufferTextureLayerEXT,
+  glNamedProgramLocalParameter4dEXT,
+  glNamedProgramLocalParameter4dvEXT,
+  glNamedProgramLocalParameter4fEXT,
+  glNamedProgramLocalParameter4fvEXT,
+  glNamedProgramLocalParameterI4iEXT,
+  glNamedProgramLocalParameterI4ivEXT,
+  glNamedProgramLocalParameterI4uiEXT,
+  glNamedProgramLocalParameterI4uivEXT,
+  glNamedProgramLocalParameters4fvEXT,
+  glNamedProgramLocalParametersI4ivEXT,
+  glNamedProgramLocalParametersI4uivEXT,
+  glNamedProgramStringEXT,
+  glNamedRenderbufferStorageEXT,
+  glNamedRenderbufferStorageMultisampleCoverageEXT,
+  glNamedRenderbufferStorageMultisampleEXT,
+  glProgramUniform1dEXT,
+  glProgramUniform1dvEXT,
+  glProgramUniform1fEXT,
+  glProgramUniform1fvEXT,
+  glProgramUniform1iEXT,
+  glProgramUniform1ivEXT,
+  glProgramUniform1uiEXT,
+  glProgramUniform1uivEXT,
+  glProgramUniform2dEXT,
+  glProgramUniform2dvEXT,
+  glProgramUniform2fEXT,
+  glProgramUniform2fvEXT,
+  glProgramUniform2iEXT,
+  glProgramUniform2ivEXT,
+  glProgramUniform2uiEXT,
+  glProgramUniform2uivEXT,
+  glProgramUniform3dEXT,
+  glProgramUniform3dvEXT,
+  glProgramUniform3fEXT,
+  glProgramUniform3fvEXT,
+  glProgramUniform3iEXT,
+  glProgramUniform3ivEXT,
+  glProgramUniform3uiEXT,
+  glProgramUniform3uivEXT,
+  glProgramUniform4dEXT,
+  glProgramUniform4dvEXT,
+  glProgramUniform4fEXT,
+  glProgramUniform4fvEXT,
+  glProgramUniform4iEXT,
+  glProgramUniform4ivEXT,
+  glProgramUniform4uiEXT,
+  glProgramUniform4uivEXT,
+  glProgramUniformMatrix2dvEXT,
+  glProgramUniformMatrix2fvEXT,
+  glProgramUniformMatrix2x3dvEXT,
+  glProgramUniformMatrix2x3fvEXT,
+  glProgramUniformMatrix2x4dvEXT,
+  glProgramUniformMatrix2x4fvEXT,
+  glProgramUniformMatrix3dvEXT,
+  glProgramUniformMatrix3fvEXT,
+  glProgramUniformMatrix3x2dvEXT,
+  glProgramUniformMatrix3x2fvEXT,
+  glProgramUniformMatrix3x4dvEXT,
+  glProgramUniformMatrix3x4fvEXT,
+  glProgramUniformMatrix4dvEXT,
+  glProgramUniformMatrix4fvEXT,
+  glProgramUniformMatrix4x2dvEXT,
+  glProgramUniformMatrix4x2fvEXT,
+  glProgramUniformMatrix4x3dvEXT,
+  glProgramUniformMatrix4x3fvEXT,
+  glPushClientAttribDefaultEXT,
+  glTextureBufferEXT,
+  glTextureBufferRangeEXT,
+  glTextureImage1DEXT,
+  glTextureImage2DEXT,
+  glTextureImage3DEXT,
+  glTexturePageCommitmentEXT,
+  glTextureParameterIivEXT,
+  glTextureParameterIuivEXT,
+  glTextureParameterfEXT,
+  glTextureParameterfvEXT,
+  glTextureParameteriEXT,
+  glTextureParameterivEXT,
+  glTextureRenderbufferEXT,
+  glTextureStorage1DEXT,
+  glTextureStorage2DEXT,
+  glTextureStorage2DMultisampleEXT,
+  glTextureStorage3DEXT,
+  glTextureStorage3DMultisampleEXT,
+  glTextureSubImage1DEXT,
+  glTextureSubImage2DEXT,
+  glTextureSubImage3DEXT,
+  glUnmapNamedBufferEXT,
+  glVertexArrayBindVertexBufferEXT,
+  glVertexArrayColorOffsetEXT,
+  glVertexArrayEdgeFlagOffsetEXT,
+  glVertexArrayFogCoordOffsetEXT,
+  glVertexArrayIndexOffsetEXT,
+  glVertexArrayMultiTexCoordOffsetEXT,
+  glVertexArrayNormalOffsetEXT,
+  glVertexArraySecondaryColorOffsetEXT,
+  glVertexArrayTexCoordOffsetEXT,
+  glVertexArrayVertexAttribBindingEXT,
+  glVertexArrayVertexAttribDivisorEXT,
+  glVertexArrayVertexAttribFormatEXT,
+  glVertexArrayVertexAttribIFormatEXT,
+  glVertexArrayVertexAttribIOffsetEXT,
+  glVertexArrayVertexAttribLFormatEXT,
+  glVertexArrayVertexAttribLOffsetEXT,
+  glVertexArrayVertexAttribOffsetEXT,
+  glVertexArrayVertexBindingDivisorEXT,
+  glVertexArrayVertexOffsetEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/DrawBuffers2.hs b/src/Graphics/GL/EXT/DrawBuffers2.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/DrawBuffers2.hs
@@ -0,0 +1,27 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.DrawBuffers2
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.DrawBuffers2 (
+  -- * Extension Support
+  glGetEXTDrawBuffers2,
+  gl_EXT_draw_buffers2,
+  -- * Functions
+  glColorMaskIndexedEXT,
+  glDisableIndexedEXT,
+  glEnableIndexedEXT,
+  glGetBooleanIndexedvEXT,
+  glGetIntegerIndexedvEXT,
+  glIsEnabledIndexedEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/DrawInstanced.hs b/src/Graphics/GL/EXT/DrawInstanced.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/DrawInstanced.hs
@@ -0,0 +1,23 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.DrawInstanced
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.DrawInstanced (
+  -- * Extension Support
+  glGetEXTDrawInstanced,
+  gl_EXT_draw_instanced,
+  -- * Functions
+  glDrawArraysInstancedEXT,
+  glDrawElementsInstancedEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/DrawRangeElements.hs b/src/Graphics/GL/EXT/DrawRangeElements.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/DrawRangeElements.hs
@@ -0,0 +1,27 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.DrawRangeElements
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.DrawRangeElements (
+  -- * Extension Support
+  glGetEXTDrawRangeElements,
+  gl_EXT_draw_range_elements,
+  -- * Enums
+  pattern GL_MAX_ELEMENTS_INDICES_EXT,
+  pattern GL_MAX_ELEMENTS_VERTICES_EXT,
+  -- * Functions
+  glDrawRangeElementsEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/EglImageStorage.hs b/src/Graphics/GL/EXT/EglImageStorage.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/EglImageStorage.hs
@@ -0,0 +1,26 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.EglImageStorage
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.EglImageStorage (
+  -- * Extension Support
+  glGetEXTEglImageStorage,
+  gl_EXT_EGL_image_storage,
+  -- * Types
+  GLeglImageOES,
+  -- * Functions
+  glEGLImageTargetTexStorageEXT,
+  glEGLImageTargetTextureStorageEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Types
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/ExternalBuffer.hs b/src/Graphics/GL/EXT/ExternalBuffer.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/ExternalBuffer.hs
@@ -0,0 +1,23 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.ExternalBuffer
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.ExternalBuffer (
+  -- * Extension Support
+  glGetEXTExternalBuffer,
+  gl_EXT_external_buffer,
+  -- * Functions
+  glBufferStorageExternalEXT,
+  glNamedBufferStorageExternalEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/FogCoord.hs b/src/Graphics/GL/EXT/FogCoord.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/FogCoord.hs
@@ -0,0 +1,37 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.FogCoord
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.FogCoord (
+  -- * Extension Support
+  glGetEXTFogCoord,
+  gl_EXT_fog_coord,
+  -- * Enums
+  pattern GL_CURRENT_FOG_COORDINATE_EXT,
+  pattern GL_FOG_COORDINATE_ARRAY_EXT,
+  pattern GL_FOG_COORDINATE_ARRAY_POINTER_EXT,
+  pattern GL_FOG_COORDINATE_ARRAY_STRIDE_EXT,
+  pattern GL_FOG_COORDINATE_ARRAY_TYPE_EXT,
+  pattern GL_FOG_COORDINATE_EXT,
+  pattern GL_FOG_COORDINATE_SOURCE_EXT,
+  pattern GL_FRAGMENT_DEPTH_EXT,
+  -- * Functions
+  glFogCoordPointerEXT,
+  glFogCoorddEXT,
+  glFogCoorddvEXT,
+  glFogCoordfEXT,
+  glFogCoordfvEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/FourTwoTwoPixels.hs b/src/Graphics/GL/EXT/FourTwoTwoPixels.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/FourTwoTwoPixels.hs
@@ -0,0 +1,26 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.FourTwoTwoPixels
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.FourTwoTwoPixels (
+  -- * Extension Support
+  glGetEXTFourTwoTwoPixels,
+  gl_EXT_422_pixels,
+  -- * Enums
+  pattern GL_422_AVERAGE_EXT,
+  pattern GL_422_EXT,
+  pattern GL_422_REV_AVERAGE_EXT,
+  pattern GL_422_REV_EXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/EXT/FramebufferBlit.hs b/src/Graphics/GL/EXT/FramebufferBlit.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/FramebufferBlit.hs
@@ -0,0 +1,29 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.FramebufferBlit
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.FramebufferBlit (
+  -- * Extension Support
+  glGetEXTFramebufferBlit,
+  gl_EXT_framebuffer_blit,
+  -- * Enums
+  pattern GL_DRAW_FRAMEBUFFER_BINDING_EXT,
+  pattern GL_DRAW_FRAMEBUFFER_EXT,
+  pattern GL_READ_FRAMEBUFFER_BINDING_EXT,
+  pattern GL_READ_FRAMEBUFFER_EXT,
+  -- * Functions
+  glBlitFramebufferEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/FramebufferMultisample.hs b/src/Graphics/GL/EXT/FramebufferMultisample.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/FramebufferMultisample.hs
@@ -0,0 +1,28 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.FramebufferMultisample
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.FramebufferMultisample (
+  -- * Extension Support
+  glGetEXTFramebufferMultisample,
+  gl_EXT_framebuffer_multisample,
+  -- * Enums
+  pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT,
+  pattern GL_MAX_SAMPLES_EXT,
+  pattern GL_RENDERBUFFER_SAMPLES_EXT,
+  -- * Functions
+  glRenderbufferStorageMultisampleEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/FramebufferMultisampleBlitScaled.hs b/src/Graphics/GL/EXT/FramebufferMultisampleBlitScaled.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/FramebufferMultisampleBlitScaled.hs
@@ -0,0 +1,24 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.FramebufferMultisampleBlitScaled
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.FramebufferMultisampleBlitScaled (
+  -- * Extension Support
+  glGetEXTFramebufferMultisampleBlitScaled,
+  gl_EXT_framebuffer_multisample_blit_scaled,
+  -- * Enums
+  pattern GL_SCALED_RESOLVE_FASTEST_EXT,
+  pattern GL_SCALED_RESOLVE_NICEST_EXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/EXT/FramebufferObject.hs b/src/Graphics/GL/EXT/FramebufferObject.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/FramebufferObject.hs
@@ -0,0 +1,92 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.FramebufferObject
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.FramebufferObject (
+  -- * Extension Support
+  glGetEXTFramebufferObject,
+  gl_EXT_framebuffer_object,
+  -- * Enums
+  pattern GL_COLOR_ATTACHMENT0_EXT,
+  pattern GL_COLOR_ATTACHMENT10_EXT,
+  pattern GL_COLOR_ATTACHMENT11_EXT,
+  pattern GL_COLOR_ATTACHMENT12_EXT,
+  pattern GL_COLOR_ATTACHMENT13_EXT,
+  pattern GL_COLOR_ATTACHMENT14_EXT,
+  pattern GL_COLOR_ATTACHMENT15_EXT,
+  pattern GL_COLOR_ATTACHMENT1_EXT,
+  pattern GL_COLOR_ATTACHMENT2_EXT,
+  pattern GL_COLOR_ATTACHMENT3_EXT,
+  pattern GL_COLOR_ATTACHMENT4_EXT,
+  pattern GL_COLOR_ATTACHMENT5_EXT,
+  pattern GL_COLOR_ATTACHMENT6_EXT,
+  pattern GL_COLOR_ATTACHMENT7_EXT,
+  pattern GL_COLOR_ATTACHMENT8_EXT,
+  pattern GL_COLOR_ATTACHMENT9_EXT,
+  pattern GL_DEPTH_ATTACHMENT_EXT,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT,
+  pattern GL_FRAMEBUFFER_BINDING_EXT,
+  pattern GL_FRAMEBUFFER_COMPLETE_EXT,
+  pattern GL_FRAMEBUFFER_EXT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT,
+  pattern GL_FRAMEBUFFER_UNSUPPORTED_EXT,
+  pattern GL_INVALID_FRAMEBUFFER_OPERATION_EXT,
+  pattern GL_MAX_COLOR_ATTACHMENTS_EXT,
+  pattern GL_MAX_RENDERBUFFER_SIZE_EXT,
+  pattern GL_RENDERBUFFER_ALPHA_SIZE_EXT,
+  pattern GL_RENDERBUFFER_BINDING_EXT,
+  pattern GL_RENDERBUFFER_BLUE_SIZE_EXT,
+  pattern GL_RENDERBUFFER_DEPTH_SIZE_EXT,
+  pattern GL_RENDERBUFFER_EXT,
+  pattern GL_RENDERBUFFER_GREEN_SIZE_EXT,
+  pattern GL_RENDERBUFFER_HEIGHT_EXT,
+  pattern GL_RENDERBUFFER_INTERNAL_FORMAT_EXT,
+  pattern GL_RENDERBUFFER_RED_SIZE_EXT,
+  pattern GL_RENDERBUFFER_STENCIL_SIZE_EXT,
+  pattern GL_RENDERBUFFER_WIDTH_EXT,
+  pattern GL_STENCIL_ATTACHMENT_EXT,
+  pattern GL_STENCIL_INDEX16_EXT,
+  pattern GL_STENCIL_INDEX1_EXT,
+  pattern GL_STENCIL_INDEX4_EXT,
+  pattern GL_STENCIL_INDEX8_EXT,
+  -- * Functions
+  glBindFramebufferEXT,
+  glBindRenderbufferEXT,
+  glCheckFramebufferStatusEXT,
+  glDeleteFramebuffersEXT,
+  glDeleteRenderbuffersEXT,
+  glFramebufferRenderbufferEXT,
+  glFramebufferTexture1DEXT,
+  glFramebufferTexture2DEXT,
+  glFramebufferTexture3DEXT,
+  glGenFramebuffersEXT,
+  glGenRenderbuffersEXT,
+  glGenerateMipmapEXT,
+  glGetFramebufferAttachmentParameterivEXT,
+  glGetRenderbufferParameterivEXT,
+  glIsFramebufferEXT,
+  glIsRenderbufferEXT,
+  glRenderbufferStorageEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/FramebufferSRGB.hs b/src/Graphics/GL/EXT/FramebufferSRGB.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/FramebufferSRGB.hs
@@ -0,0 +1,24 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.FramebufferSRGB
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.FramebufferSRGB (
+  -- * Extension Support
+  glGetEXTFramebufferSRGB,
+  gl_EXT_framebuffer_sRGB,
+  -- * Enums
+  pattern GL_FRAMEBUFFER_SRGB_CAPABLE_EXT,
+  pattern GL_FRAMEBUFFER_SRGB_EXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/EXT/GPUProgramParameters.hs b/src/Graphics/GL/EXT/GPUProgramParameters.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/GPUProgramParameters.hs
@@ -0,0 +1,23 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.GPUProgramParameters
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.GPUProgramParameters (
+  -- * Extension Support
+  glGetEXTGPUProgramParameters,
+  gl_EXT_gpu_program_parameters,
+  -- * Functions
+  glProgramEnvParameters4fvEXT,
+  glProgramLocalParameters4fvEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/GPUShader4.hs b/src/Graphics/GL/EXT/GPUShader4.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/GPUShader4.hs
@@ -0,0 +1,63 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.GPUShader4
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.GPUShader4 (
+  -- * Extension Support
+  glGetEXTGPUShader4,
+  gl_EXT_gpu_shader4,
+  -- * Enums
+  pattern GL_INT_SAMPLER_1D_ARRAY_EXT,
+  pattern GL_INT_SAMPLER_1D_EXT,
+  pattern GL_INT_SAMPLER_2D_ARRAY_EXT,
+  pattern GL_INT_SAMPLER_2D_EXT,
+  pattern GL_INT_SAMPLER_2D_RECT_EXT,
+  pattern GL_INT_SAMPLER_3D_EXT,
+  pattern GL_INT_SAMPLER_BUFFER_EXT,
+  pattern GL_INT_SAMPLER_CUBE_EXT,
+  pattern GL_MAX_PROGRAM_TEXEL_OFFSET_EXT,
+  pattern GL_MIN_PROGRAM_TEXEL_OFFSET_EXT,
+  pattern GL_SAMPLER_1D_ARRAY_EXT,
+  pattern GL_SAMPLER_1D_ARRAY_SHADOW_EXT,
+  pattern GL_SAMPLER_2D_ARRAY_EXT,
+  pattern GL_SAMPLER_2D_ARRAY_SHADOW_EXT,
+  pattern GL_SAMPLER_BUFFER_EXT,
+  pattern GL_SAMPLER_CUBE_SHADOW_EXT,
+  pattern GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT,
+  pattern GL_UNSIGNED_INT_SAMPLER_1D_EXT,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_EXT,
+  pattern GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT,
+  pattern GL_UNSIGNED_INT_SAMPLER_3D_EXT,
+  pattern GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT,
+  pattern GL_UNSIGNED_INT_SAMPLER_CUBE_EXT,
+  pattern GL_UNSIGNED_INT_VEC2_EXT,
+  pattern GL_UNSIGNED_INT_VEC3_EXT,
+  pattern GL_UNSIGNED_INT_VEC4_EXT,
+  pattern GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT,
+  -- * Functions
+  glBindFragDataLocationEXT,
+  glGetFragDataLocationEXT,
+  glGetUniformuivEXT,
+  glUniform1uiEXT,
+  glUniform1uivEXT,
+  glUniform2uiEXT,
+  glUniform2uivEXT,
+  glUniform3uiEXT,
+  glUniform3uivEXT,
+  glUniform4uiEXT,
+  glUniform4uivEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/GeometryShader4.hs b/src/Graphics/GL/EXT/GeometryShader4.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/GeometryShader4.hs
@@ -0,0 +1,45 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.GeometryShader4
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.GeometryShader4 (
+  -- * Extension Support
+  glGetEXTGeometryShader4,
+  gl_EXT_geometry_shader4,
+  -- * Enums
+  pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT,
+  pattern GL_GEOMETRY_INPUT_TYPE_EXT,
+  pattern GL_GEOMETRY_OUTPUT_TYPE_EXT,
+  pattern GL_GEOMETRY_SHADER_EXT,
+  pattern GL_GEOMETRY_VERTICES_OUT_EXT,
+  pattern GL_LINES_ADJACENCY_EXT,
+  pattern GL_LINE_STRIP_ADJACENCY_EXT,
+  pattern GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT,
+  pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT,
+  pattern GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT,
+  pattern GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT,
+  pattern GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT,
+  pattern GL_MAX_VARYING_COMPONENTS_EXT,
+  pattern GL_MAX_VERTEX_VARYING_COMPONENTS_EXT,
+  pattern GL_PROGRAM_POINT_SIZE_EXT,
+  pattern GL_TRIANGLES_ADJACENCY_EXT,
+  pattern GL_TRIANGLE_STRIP_ADJACENCY_EXT,
+  -- * Functions
+  glProgramParameteriEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/Histogram.hs b/src/Graphics/GL/EXT/Histogram.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/Histogram.hs
@@ -0,0 +1,48 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.Histogram
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.Histogram (
+  -- * Extension Support
+  glGetEXTHistogram,
+  gl_EXT_histogram,
+  -- * Enums
+  pattern GL_HISTOGRAM_ALPHA_SIZE_EXT,
+  pattern GL_HISTOGRAM_BLUE_SIZE_EXT,
+  pattern GL_HISTOGRAM_EXT,
+  pattern GL_HISTOGRAM_FORMAT_EXT,
+  pattern GL_HISTOGRAM_GREEN_SIZE_EXT,
+  pattern GL_HISTOGRAM_LUMINANCE_SIZE_EXT,
+  pattern GL_HISTOGRAM_RED_SIZE_EXT,
+  pattern GL_HISTOGRAM_SINK_EXT,
+  pattern GL_HISTOGRAM_WIDTH_EXT,
+  pattern GL_MINMAX_EXT,
+  pattern GL_MINMAX_FORMAT_EXT,
+  pattern GL_MINMAX_SINK_EXT,
+  pattern GL_PROXY_HISTOGRAM_EXT,
+  pattern GL_TABLE_TOO_LARGE_EXT,
+  -- * Functions
+  glGetHistogramEXT,
+  glGetHistogramParameterfvEXT,
+  glGetHistogramParameterivEXT,
+  glGetMinmaxEXT,
+  glGetMinmaxParameterfvEXT,
+  glGetMinmaxParameterivEXT,
+  glHistogramEXT,
+  glMinmaxEXT,
+  glResetHistogramEXT,
+  glResetMinmaxEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/IndexArrayFormats.hs b/src/Graphics/GL/EXT/IndexArrayFormats.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/IndexArrayFormats.hs
@@ -0,0 +1,30 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.IndexArrayFormats
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.IndexArrayFormats (
+  -- * Extension Support
+  glGetEXTIndexArrayFormats,
+  gl_EXT_index_array_formats,
+  -- * Enums
+  pattern GL_IUI_N3F_V2F_EXT,
+  pattern GL_IUI_N3F_V3F_EXT,
+  pattern GL_IUI_V2F_EXT,
+  pattern GL_IUI_V3F_EXT,
+  pattern GL_T2F_IUI_N3F_V2F_EXT,
+  pattern GL_T2F_IUI_N3F_V3F_EXT,
+  pattern GL_T2F_IUI_V2F_EXT,
+  pattern GL_T2F_IUI_V3F_EXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/EXT/IndexFunc.hs b/src/Graphics/GL/EXT/IndexFunc.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/IndexFunc.hs
@@ -0,0 +1,28 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.IndexFunc
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.IndexFunc (
+  -- * Extension Support
+  glGetEXTIndexFunc,
+  gl_EXT_index_func,
+  -- * Enums
+  pattern GL_INDEX_TEST_EXT,
+  pattern GL_INDEX_TEST_FUNC_EXT,
+  pattern GL_INDEX_TEST_REF_EXT,
+  -- * Functions
+  glIndexFuncEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/IndexMaterial.hs b/src/Graphics/GL/EXT/IndexMaterial.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/IndexMaterial.hs
@@ -0,0 +1,28 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.IndexMaterial
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.IndexMaterial (
+  -- * Extension Support
+  glGetEXTIndexMaterial,
+  gl_EXT_index_material,
+  -- * Enums
+  pattern GL_INDEX_MATERIAL_EXT,
+  pattern GL_INDEX_MATERIAL_FACE_EXT,
+  pattern GL_INDEX_MATERIAL_PARAMETER_EXT,
+  -- * Functions
+  glIndexMaterialEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/LightTexture.hs b/src/Graphics/GL/EXT/LightTexture.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/LightTexture.hs
@@ -0,0 +1,37 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.LightTexture
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.LightTexture (
+  -- * Extension Support
+  glGetEXTLightTexture,
+  gl_EXT_light_texture,
+  -- * Enums
+  pattern GL_ATTENUATION_EXT,
+  pattern GL_FRAGMENT_COLOR_EXT,
+  pattern GL_FRAGMENT_DEPTH_EXT,
+  pattern GL_FRAGMENT_MATERIAL_EXT,
+  pattern GL_FRAGMENT_NORMAL_EXT,
+  pattern GL_SHADOW_ATTENUATION_EXT,
+  pattern GL_TEXTURE_APPLICATION_MODE_EXT,
+  pattern GL_TEXTURE_LIGHT_EXT,
+  pattern GL_TEXTURE_MATERIAL_FACE_EXT,
+  pattern GL_TEXTURE_MATERIAL_PARAMETER_EXT,
+  -- * Functions
+  glApplyTextureEXT,
+  glTextureLightEXT,
+  glTextureMaterialEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/MemoryObject.hs b/src/Graphics/GL/EXT/MemoryObject.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/MemoryObject.hs
@@ -0,0 +1,54 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.MemoryObject
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.MemoryObject (
+  -- * Extension Support
+  glGetEXTMemoryObject,
+  gl_EXT_memory_object,
+  -- * Enums
+  pattern GL_DEDICATED_MEMORY_OBJECT_EXT,
+  pattern GL_DEVICE_UUID_EXT,
+  pattern GL_DRIVER_UUID_EXT,
+  pattern GL_LINEAR_TILING_EXT,
+  pattern GL_NUM_DEVICE_UUIDS_EXT,
+  pattern GL_NUM_TILING_TYPES_EXT,
+  pattern GL_OPTIMAL_TILING_EXT,
+  pattern GL_PROTECTED_MEMORY_OBJECT_EXT,
+  pattern GL_TEXTURE_TILING_EXT,
+  pattern GL_TILING_TYPES_EXT,
+  pattern GL_UUID_SIZE_EXT,
+  -- * Functions
+  glBufferStorageMemEXT,
+  glCreateMemoryObjectsEXT,
+  glDeleteMemoryObjectsEXT,
+  glGetMemoryObjectParameterivEXT,
+  glGetUnsignedBytei_vEXT,
+  glGetUnsignedBytevEXT,
+  glIsMemoryObjectEXT,
+  glMemoryObjectParameterivEXT,
+  glNamedBufferStorageMemEXT,
+  glTexStorageMem1DEXT,
+  glTexStorageMem2DEXT,
+  glTexStorageMem2DMultisampleEXT,
+  glTexStorageMem3DEXT,
+  glTexStorageMem3DMultisampleEXT,
+  glTextureStorageMem1DEXT,
+  glTextureStorageMem2DEXT,
+  glTextureStorageMem2DMultisampleEXT,
+  glTextureStorageMem3DEXT,
+  glTextureStorageMem3DMultisampleEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/MemoryObjectFd.hs b/src/Graphics/GL/EXT/MemoryObjectFd.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/MemoryObjectFd.hs
@@ -0,0 +1,26 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.MemoryObjectFd
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.MemoryObjectFd (
+  -- * Extension Support
+  glGetEXTMemoryObjectFd,
+  gl_EXT_memory_object_fd,
+  -- * Enums
+  pattern GL_HANDLE_TYPE_OPAQUE_FD_EXT,
+  -- * Functions
+  glImportMemoryFdEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/MemoryObjectWin32.hs b/src/Graphics/GL/EXT/MemoryObjectWin32.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/MemoryObjectWin32.hs
@@ -0,0 +1,35 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.MemoryObjectWin32
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.MemoryObjectWin32 (
+  -- * Extension Support
+  glGetEXTMemoryObjectWin32,
+  gl_EXT_memory_object_win32,
+  -- * Enums
+  pattern GL_DEVICE_LUID_EXT,
+  pattern GL_DEVICE_NODE_MASK_EXT,
+  pattern GL_HANDLE_TYPE_D3D11_IMAGE_EXT,
+  pattern GL_HANDLE_TYPE_D3D11_IMAGE_KMT_EXT,
+  pattern GL_HANDLE_TYPE_D3D12_RESOURCE_EXT,
+  pattern GL_HANDLE_TYPE_D3D12_TILEPOOL_EXT,
+  pattern GL_HANDLE_TYPE_OPAQUE_WIN32_EXT,
+  pattern GL_HANDLE_TYPE_OPAQUE_WIN32_KMT_EXT,
+  pattern GL_LUID_SIZE_EXT,
+  -- * Functions
+  glImportMemoryWin32HandleEXT,
+  glImportMemoryWin32NameEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/MultiDrawArrays.hs b/src/Graphics/GL/EXT/MultiDrawArrays.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/MultiDrawArrays.hs
@@ -0,0 +1,23 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.MultiDrawArrays
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.MultiDrawArrays (
+  -- * Extension Support
+  glGetEXTMultiDrawArrays,
+  gl_EXT_multi_draw_arrays,
+  -- * Functions
+  glMultiDrawArraysEXT,
+  glMultiDrawElementsEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/Multisample.hs b/src/Graphics/GL/EXT/Multisample.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/Multisample.hs
@@ -0,0 +1,43 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.Multisample
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.Multisample (
+  -- * Extension Support
+  glGetEXTMultisample,
+  gl_EXT_multisample,
+  -- * Enums
+  pattern GL_1PASS_EXT,
+  pattern GL_2PASS_0_EXT,
+  pattern GL_2PASS_1_EXT,
+  pattern GL_4PASS_0_EXT,
+  pattern GL_4PASS_1_EXT,
+  pattern GL_4PASS_2_EXT,
+  pattern GL_4PASS_3_EXT,
+  pattern GL_MULTISAMPLE_BIT_EXT,
+  pattern GL_MULTISAMPLE_EXT,
+  pattern GL_SAMPLES_EXT,
+  pattern GL_SAMPLE_ALPHA_TO_MASK_EXT,
+  pattern GL_SAMPLE_ALPHA_TO_ONE_EXT,
+  pattern GL_SAMPLE_BUFFERS_EXT,
+  pattern GL_SAMPLE_MASK_EXT,
+  pattern GL_SAMPLE_MASK_INVERT_EXT,
+  pattern GL_SAMPLE_MASK_VALUE_EXT,
+  pattern GL_SAMPLE_PATTERN_EXT,
+  -- * Functions
+  glSampleMaskEXT,
+  glSamplePatternEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/PackedDepthStencil.hs b/src/Graphics/GL/EXT/PackedDepthStencil.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/PackedDepthStencil.hs
@@ -0,0 +1,26 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.PackedDepthStencil
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.PackedDepthStencil (
+  -- * Extension Support
+  glGetEXTPackedDepthStencil,
+  gl_EXT_packed_depth_stencil,
+  -- * Enums
+  pattern GL_DEPTH24_STENCIL8_EXT,
+  pattern GL_DEPTH_STENCIL_EXT,
+  pattern GL_TEXTURE_STENCIL_SIZE_EXT,
+  pattern GL_UNSIGNED_INT_24_8_EXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/EXT/PackedFloat.hs b/src/Graphics/GL/EXT/PackedFloat.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/PackedFloat.hs
@@ -0,0 +1,25 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.PackedFloat
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.PackedFloat (
+  -- * Extension Support
+  glGetEXTPackedFloat,
+  gl_EXT_packed_float,
+  -- * Enums
+  pattern GL_R11F_G11F_B10F_EXT,
+  pattern GL_RGBA_SIGNED_COMPONENTS_EXT,
+  pattern GL_UNSIGNED_INT_10F_11F_11F_REV_EXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/EXT/PackedPixels.hs b/src/Graphics/GL/EXT/PackedPixels.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/PackedPixels.hs
@@ -0,0 +1,27 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.PackedPixels
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.PackedPixels (
+  -- * Extension Support
+  glGetEXTPackedPixels,
+  gl_EXT_packed_pixels,
+  -- * Enums
+  pattern GL_UNSIGNED_BYTE_3_3_2_EXT,
+  pattern GL_UNSIGNED_INT_10_10_10_2_EXT,
+  pattern GL_UNSIGNED_INT_8_8_8_8_EXT,
+  pattern GL_UNSIGNED_SHORT_4_4_4_4_EXT,
+  pattern GL_UNSIGNED_SHORT_5_5_5_1_EXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/EXT/PalettedTexture.hs b/src/Graphics/GL/EXT/PalettedTexture.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/PalettedTexture.hs
@@ -0,0 +1,35 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.PalettedTexture
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.PalettedTexture (
+  -- * Extension Support
+  glGetEXTPalettedTexture,
+  gl_EXT_paletted_texture,
+  -- * Enums
+  pattern GL_COLOR_INDEX12_EXT,
+  pattern GL_COLOR_INDEX16_EXT,
+  pattern GL_COLOR_INDEX1_EXT,
+  pattern GL_COLOR_INDEX2_EXT,
+  pattern GL_COLOR_INDEX4_EXT,
+  pattern GL_COLOR_INDEX8_EXT,
+  pattern GL_TEXTURE_INDEX_SIZE_EXT,
+  -- * Functions
+  glColorTableEXT,
+  glGetColorTableEXT,
+  glGetColorTableParameterfvEXT,
+  glGetColorTableParameterivEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/PixelBufferObject.hs b/src/Graphics/GL/EXT/PixelBufferObject.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/PixelBufferObject.hs
@@ -0,0 +1,26 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.PixelBufferObject
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.PixelBufferObject (
+  -- * Extension Support
+  glGetEXTPixelBufferObject,
+  gl_EXT_pixel_buffer_object,
+  -- * Enums
+  pattern GL_PIXEL_PACK_BUFFER_BINDING_EXT,
+  pattern GL_PIXEL_PACK_BUFFER_EXT,
+  pattern GL_PIXEL_UNPACK_BUFFER_BINDING_EXT,
+  pattern GL_PIXEL_UNPACK_BUFFER_EXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/EXT/PixelTransform.hs b/src/Graphics/GL/EXT/PixelTransform.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/PixelTransform.hs
@@ -0,0 +1,39 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.PixelTransform
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.PixelTransform (
+  -- * Extension Support
+  glGetEXTPixelTransform,
+  gl_EXT_pixel_transform,
+  -- * Enums
+  pattern GL_AVERAGE_EXT,
+  pattern GL_CUBIC_EXT,
+  pattern GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT,
+  pattern GL_PIXEL_CUBIC_WEIGHT_EXT,
+  pattern GL_PIXEL_MAG_FILTER_EXT,
+  pattern GL_PIXEL_MIN_FILTER_EXT,
+  pattern GL_PIXEL_TRANSFORM_2D_EXT,
+  pattern GL_PIXEL_TRANSFORM_2D_MATRIX_EXT,
+  pattern GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT,
+  -- * Functions
+  glGetPixelTransformParameterfvEXT,
+  glGetPixelTransformParameterivEXT,
+  glPixelTransformParameterfEXT,
+  glPixelTransformParameterfvEXT,
+  glPixelTransformParameteriEXT,
+  glPixelTransformParameterivEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/PointParameters.hs b/src/Graphics/GL/EXT/PointParameters.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/PointParameters.hs
@@ -0,0 +1,30 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.PointParameters
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.PointParameters (
+  -- * Extension Support
+  glGetEXTPointParameters,
+  gl_EXT_point_parameters,
+  -- * Enums
+  pattern GL_DISTANCE_ATTENUATION_EXT,
+  pattern GL_POINT_FADE_THRESHOLD_SIZE_EXT,
+  pattern GL_POINT_SIZE_MAX_EXT,
+  pattern GL_POINT_SIZE_MIN_EXT,
+  -- * Functions
+  glPointParameterfEXT,
+  glPointParameterfvEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/PolygonOffset.hs b/src/Graphics/GL/EXT/PolygonOffset.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/PolygonOffset.hs
@@ -0,0 +1,28 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.PolygonOffset
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.PolygonOffset (
+  -- * Extension Support
+  glGetEXTPolygonOffset,
+  gl_EXT_polygon_offset,
+  -- * Enums
+  pattern GL_POLYGON_OFFSET_BIAS_EXT,
+  pattern GL_POLYGON_OFFSET_EXT,
+  pattern GL_POLYGON_OFFSET_FACTOR_EXT,
+  -- * Functions
+  glPolygonOffsetEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/PolygonOffsetClamp.hs b/src/Graphics/GL/EXT/PolygonOffsetClamp.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/PolygonOffsetClamp.hs
@@ -0,0 +1,26 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.PolygonOffsetClamp
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.PolygonOffsetClamp (
+  -- * Extension Support
+  glGetEXTPolygonOffsetClamp,
+  gl_EXT_polygon_offset_clamp,
+  -- * Enums
+  pattern GL_POLYGON_OFFSET_CLAMP_EXT,
+  -- * Functions
+  glPolygonOffsetClampEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/ProvokingVertex.hs b/src/Graphics/GL/EXT/ProvokingVertex.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/ProvokingVertex.hs
@@ -0,0 +1,29 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.ProvokingVertex
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.ProvokingVertex (
+  -- * Extension Support
+  glGetEXTProvokingVertex,
+  gl_EXT_provoking_vertex,
+  -- * Enums
+  pattern GL_FIRST_VERTEX_CONVENTION_EXT,
+  pattern GL_LAST_VERTEX_CONVENTION_EXT,
+  pattern GL_PROVOKING_VERTEX_EXT,
+  pattern GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT,
+  -- * Functions
+  glProvokingVertexEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/RasterMultisample.hs b/src/Graphics/GL/EXT/RasterMultisample.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/RasterMultisample.hs
@@ -0,0 +1,31 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.RasterMultisample
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.RasterMultisample (
+  -- * Extension Support
+  glGetEXTRasterMultisample,
+  gl_EXT_raster_multisample,
+  -- * Enums
+  pattern GL_EFFECTIVE_RASTER_SAMPLES_EXT,
+  pattern GL_MAX_RASTER_SAMPLES_EXT,
+  pattern GL_MULTISAMPLE_RASTERIZATION_ALLOWED_EXT,
+  pattern GL_RASTER_FIXED_SAMPLE_LOCATIONS_EXT,
+  pattern GL_RASTER_MULTISAMPLE_EXT,
+  pattern GL_RASTER_SAMPLES_EXT,
+  -- * Functions
+  glRasterSamplesEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/RescaleNormal.hs b/src/Graphics/GL/EXT/RescaleNormal.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/RescaleNormal.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.RescaleNormal
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.RescaleNormal (
+  -- * Extension Support
+  glGetEXTRescaleNormal,
+  gl_EXT_rescale_normal,
+  -- * Enums
+  pattern GL_RESCALE_NORMAL_EXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/EXT/SecondaryColor.hs b/src/Graphics/GL/EXT/SecondaryColor.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/SecondaryColor.hs
@@ -0,0 +1,48 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.SecondaryColor
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.SecondaryColor (
+  -- * Extension Support
+  glGetEXTSecondaryColor,
+  gl_EXT_secondary_color,
+  -- * Enums
+  pattern GL_COLOR_SUM_EXT,
+  pattern GL_CURRENT_SECONDARY_COLOR_EXT,
+  pattern GL_SECONDARY_COLOR_ARRAY_EXT,
+  pattern GL_SECONDARY_COLOR_ARRAY_POINTER_EXT,
+  pattern GL_SECONDARY_COLOR_ARRAY_SIZE_EXT,
+  pattern GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT,
+  pattern GL_SECONDARY_COLOR_ARRAY_TYPE_EXT,
+  -- * Functions
+  glSecondaryColor3bEXT,
+  glSecondaryColor3bvEXT,
+  glSecondaryColor3dEXT,
+  glSecondaryColor3dvEXT,
+  glSecondaryColor3fEXT,
+  glSecondaryColor3fvEXT,
+  glSecondaryColor3iEXT,
+  glSecondaryColor3ivEXT,
+  glSecondaryColor3sEXT,
+  glSecondaryColor3svEXT,
+  glSecondaryColor3ubEXT,
+  glSecondaryColor3ubvEXT,
+  glSecondaryColor3uiEXT,
+  glSecondaryColor3uivEXT,
+  glSecondaryColor3usEXT,
+  glSecondaryColor3usvEXT,
+  glSecondaryColorPointerEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/Semaphore.hs b/src/Graphics/GL/EXT/Semaphore.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/Semaphore.hs
@@ -0,0 +1,46 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.Semaphore
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.Semaphore (
+  -- * Extension Support
+  glGetEXTSemaphore,
+  gl_EXT_semaphore,
+  -- * Enums
+  pattern GL_DEVICE_UUID_EXT,
+  pattern GL_DRIVER_UUID_EXT,
+  pattern GL_LAYOUT_COLOR_ATTACHMENT_EXT,
+  pattern GL_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_EXT,
+  pattern GL_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_EXT,
+  pattern GL_LAYOUT_DEPTH_STENCIL_ATTACHMENT_EXT,
+  pattern GL_LAYOUT_DEPTH_STENCIL_READ_ONLY_EXT,
+  pattern GL_LAYOUT_GENERAL_EXT,
+  pattern GL_LAYOUT_SHADER_READ_ONLY_EXT,
+  pattern GL_LAYOUT_TRANSFER_DST_EXT,
+  pattern GL_LAYOUT_TRANSFER_SRC_EXT,
+  pattern GL_NUM_DEVICE_UUIDS_EXT,
+  pattern GL_UUID_SIZE_EXT,
+  -- * Functions
+  glDeleteSemaphoresEXT,
+  glGenSemaphoresEXT,
+  glGetSemaphoreParameterui64vEXT,
+  glGetUnsignedBytei_vEXT,
+  glGetUnsignedBytevEXT,
+  glIsSemaphoreEXT,
+  glSemaphoreParameterui64vEXT,
+  glSignalSemaphoreEXT,
+  glWaitSemaphoreEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/SemaphoreFd.hs b/src/Graphics/GL/EXT/SemaphoreFd.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/SemaphoreFd.hs
@@ -0,0 +1,26 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.SemaphoreFd
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.SemaphoreFd (
+  -- * Extension Support
+  glGetEXTSemaphoreFd,
+  gl_EXT_semaphore_fd,
+  -- * Enums
+  pattern GL_HANDLE_TYPE_OPAQUE_FD_EXT,
+  -- * Functions
+  glImportSemaphoreFdEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/SemaphoreWin32.hs b/src/Graphics/GL/EXT/SemaphoreWin32.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/SemaphoreWin32.hs
@@ -0,0 +1,33 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.SemaphoreWin32
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.SemaphoreWin32 (
+  -- * Extension Support
+  glGetEXTSemaphoreWin32,
+  gl_EXT_semaphore_win32,
+  -- * Enums
+  pattern GL_D3D12_FENCE_VALUE_EXT,
+  pattern GL_DEVICE_LUID_EXT,
+  pattern GL_DEVICE_NODE_MASK_EXT,
+  pattern GL_HANDLE_TYPE_D3D12_FENCE_EXT,
+  pattern GL_HANDLE_TYPE_OPAQUE_WIN32_EXT,
+  pattern GL_HANDLE_TYPE_OPAQUE_WIN32_KMT_EXT,
+  pattern GL_LUID_SIZE_EXT,
+  -- * Functions
+  glImportSemaphoreWin32HandleEXT,
+  glImportSemaphoreWin32NameEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/SeparateShaderObjects.hs b/src/Graphics/GL/EXT/SeparateShaderObjects.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/SeparateShaderObjects.hs
@@ -0,0 +1,28 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.SeparateShaderObjects
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.SeparateShaderObjects (
+  -- * Extension Support
+  glGetEXTSeparateShaderObjects,
+  gl_EXT_separate_shader_objects,
+  -- * Enums
+  pattern GL_ACTIVE_PROGRAM_EXT,
+  -- * Functions
+  glActiveProgramEXT,
+  glCreateShaderProgramEXT,
+  glUseShaderProgramEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/SeparateSpecularColor.hs b/src/Graphics/GL/EXT/SeparateSpecularColor.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/SeparateSpecularColor.hs
@@ -0,0 +1,25 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.SeparateSpecularColor
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.SeparateSpecularColor (
+  -- * Extension Support
+  glGetEXTSeparateSpecularColor,
+  gl_EXT_separate_specular_color,
+  -- * Enums
+  pattern GL_LIGHT_MODEL_COLOR_CONTROL_EXT,
+  pattern GL_SEPARATE_SPECULAR_COLOR_EXT,
+  pattern GL_SINGLE_COLOR_EXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/EXT/ShaderFramebufferFetch.hs b/src/Graphics/GL/EXT/ShaderFramebufferFetch.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/ShaderFramebufferFetch.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.ShaderFramebufferFetch
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.ShaderFramebufferFetch (
+  -- * Extension Support
+  glGetEXTShaderFramebufferFetch,
+  gl_EXT_shader_framebuffer_fetch,
+  -- * Enums
+  pattern GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/EXT/ShaderFramebufferFetchNonCoherent.hs b/src/Graphics/GL/EXT/ShaderFramebufferFetchNonCoherent.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/ShaderFramebufferFetchNonCoherent.hs
@@ -0,0 +1,26 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.ShaderFramebufferFetchNonCoherent
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.ShaderFramebufferFetchNonCoherent (
+  -- * Extension Support
+  glGetEXTShaderFramebufferFetchNonCoherent,
+  gl_EXT_shader_framebuffer_fetch_non_coherent,
+  -- * Enums
+  pattern GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT,
+  -- * Functions
+  glFramebufferFetchBarrierEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/ShaderImageLoadStore.hs b/src/Graphics/GL/EXT/ShaderImageLoadStore.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/ShaderImageLoadStore.hs
@@ -0,0 +1,81 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.ShaderImageLoadStore
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.ShaderImageLoadStore (
+  -- * Extension Support
+  glGetEXTShaderImageLoadStore,
+  gl_EXT_shader_image_load_store,
+  -- * Enums
+  pattern GL_ALL_BARRIER_BITS_EXT,
+  pattern GL_ATOMIC_COUNTER_BARRIER_BIT_EXT,
+  pattern GL_BUFFER_UPDATE_BARRIER_BIT_EXT,
+  pattern GL_COMMAND_BARRIER_BIT_EXT,
+  pattern GL_ELEMENT_ARRAY_BARRIER_BIT_EXT,
+  pattern GL_FRAMEBUFFER_BARRIER_BIT_EXT,
+  pattern GL_IMAGE_1D_ARRAY_EXT,
+  pattern GL_IMAGE_1D_EXT,
+  pattern GL_IMAGE_2D_ARRAY_EXT,
+  pattern GL_IMAGE_2D_EXT,
+  pattern GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXT,
+  pattern GL_IMAGE_2D_MULTISAMPLE_EXT,
+  pattern GL_IMAGE_2D_RECT_EXT,
+  pattern GL_IMAGE_3D_EXT,
+  pattern GL_IMAGE_BINDING_ACCESS_EXT,
+  pattern GL_IMAGE_BINDING_FORMAT_EXT,
+  pattern GL_IMAGE_BINDING_LAYERED_EXT,
+  pattern GL_IMAGE_BINDING_LAYER_EXT,
+  pattern GL_IMAGE_BINDING_LEVEL_EXT,
+  pattern GL_IMAGE_BINDING_NAME_EXT,
+  pattern GL_IMAGE_BUFFER_EXT,
+  pattern GL_IMAGE_CUBE_EXT,
+  pattern GL_IMAGE_CUBE_MAP_ARRAY_EXT,
+  pattern GL_INT_IMAGE_1D_ARRAY_EXT,
+  pattern GL_INT_IMAGE_1D_EXT,
+  pattern GL_INT_IMAGE_2D_ARRAY_EXT,
+  pattern GL_INT_IMAGE_2D_EXT,
+  pattern GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT,
+  pattern GL_INT_IMAGE_2D_MULTISAMPLE_EXT,
+  pattern GL_INT_IMAGE_2D_RECT_EXT,
+  pattern GL_INT_IMAGE_3D_EXT,
+  pattern GL_INT_IMAGE_BUFFER_EXT,
+  pattern GL_INT_IMAGE_CUBE_EXT,
+  pattern GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT,
+  pattern GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT,
+  pattern GL_MAX_IMAGE_SAMPLES_EXT,
+  pattern GL_MAX_IMAGE_UNITS_EXT,
+  pattern GL_PIXEL_BUFFER_BARRIER_BIT_EXT,
+  pattern GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT,
+  pattern GL_TEXTURE_FETCH_BARRIER_BIT_EXT,
+  pattern GL_TEXTURE_UPDATE_BARRIER_BIT_EXT,
+  pattern GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT,
+  pattern GL_UNIFORM_BARRIER_BIT_EXT,
+  pattern GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT,
+  pattern GL_UNSIGNED_INT_IMAGE_1D_EXT,
+  pattern GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT,
+  pattern GL_UNSIGNED_INT_IMAGE_2D_EXT,
+  pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT,
+  pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT,
+  pattern GL_UNSIGNED_INT_IMAGE_2D_RECT_EXT,
+  pattern GL_UNSIGNED_INT_IMAGE_3D_EXT,
+  pattern GL_UNSIGNED_INT_IMAGE_BUFFER_EXT,
+  pattern GL_UNSIGNED_INT_IMAGE_CUBE_EXT,
+  pattern GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT,
+  pattern GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT,
+  -- * Functions
+  glBindImageTextureEXT,
+  glMemoryBarrierEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/SharedTexturePalette.hs b/src/Graphics/GL/EXT/SharedTexturePalette.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/SharedTexturePalette.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.SharedTexturePalette
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.SharedTexturePalette (
+  -- * Extension Support
+  glGetEXTSharedTexturePalette,
+  gl_EXT_shared_texture_palette,
+  -- * Enums
+  pattern GL_SHARED_TEXTURE_PALETTE_EXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/EXT/StencilClearTag.hs b/src/Graphics/GL/EXT/StencilClearTag.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/StencilClearTag.hs
@@ -0,0 +1,27 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.StencilClearTag
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.StencilClearTag (
+  -- * Extension Support
+  glGetEXTStencilClearTag,
+  gl_EXT_stencil_clear_tag,
+  -- * Enums
+  pattern GL_STENCIL_CLEAR_TAG_VALUE_EXT,
+  pattern GL_STENCIL_TAG_BITS_EXT,
+  -- * Functions
+  glStencilClearTagEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/StencilTwoSide.hs b/src/Graphics/GL/EXT/StencilTwoSide.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/StencilTwoSide.hs
@@ -0,0 +1,27 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.StencilTwoSide
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.StencilTwoSide (
+  -- * Extension Support
+  glGetEXTStencilTwoSide,
+  gl_EXT_stencil_two_side,
+  -- * Enums
+  pattern GL_ACTIVE_STENCIL_FACE_EXT,
+  pattern GL_STENCIL_TEST_TWO_SIDE_EXT,
+  -- * Functions
+  glActiveStencilFaceEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/StencilWrap.hs b/src/Graphics/GL/EXT/StencilWrap.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/StencilWrap.hs
@@ -0,0 +1,24 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.StencilWrap
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.StencilWrap (
+  -- * Extension Support
+  glGetEXTStencilWrap,
+  gl_EXT_stencil_wrap,
+  -- * Enums
+  pattern GL_DECR_WRAP_EXT,
+  pattern GL_INCR_WRAP_EXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/EXT/Subtexture.hs b/src/Graphics/GL/EXT/Subtexture.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/Subtexture.hs
@@ -0,0 +1,23 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.Subtexture
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.Subtexture (
+  -- * Extension Support
+  glGetEXTSubtexture,
+  gl_EXT_subtexture,
+  -- * Functions
+  glTexSubImage1DEXT,
+  glTexSubImage2DEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/Texture.hs b/src/Graphics/GL/EXT/Texture.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/Texture.hs
@@ -0,0 +1,65 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.Texture
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.Texture (
+  -- * Extension Support
+  glGetEXTTexture,
+  gl_EXT_texture,
+  -- * Enums
+  pattern GL_ALPHA12_EXT,
+  pattern GL_ALPHA16_EXT,
+  pattern GL_ALPHA4_EXT,
+  pattern GL_ALPHA8_EXT,
+  pattern GL_INTENSITY12_EXT,
+  pattern GL_INTENSITY16_EXT,
+  pattern GL_INTENSITY4_EXT,
+  pattern GL_INTENSITY8_EXT,
+  pattern GL_INTENSITY_EXT,
+  pattern GL_LUMINANCE12_ALPHA12_EXT,
+  pattern GL_LUMINANCE12_ALPHA4_EXT,
+  pattern GL_LUMINANCE12_EXT,
+  pattern GL_LUMINANCE16_ALPHA16_EXT,
+  pattern GL_LUMINANCE16_EXT,
+  pattern GL_LUMINANCE4_ALPHA4_EXT,
+  pattern GL_LUMINANCE4_EXT,
+  pattern GL_LUMINANCE6_ALPHA2_EXT,
+  pattern GL_LUMINANCE8_ALPHA8_EXT,
+  pattern GL_LUMINANCE8_EXT,
+  pattern GL_PROXY_TEXTURE_1D_EXT,
+  pattern GL_PROXY_TEXTURE_2D_EXT,
+  pattern GL_REPLACE_EXT,
+  pattern GL_RGB10_A2_EXT,
+  pattern GL_RGB10_EXT,
+  pattern GL_RGB12_EXT,
+  pattern GL_RGB16_EXT,
+  pattern GL_RGB2_EXT,
+  pattern GL_RGB4_EXT,
+  pattern GL_RGB5_A1_EXT,
+  pattern GL_RGB5_EXT,
+  pattern GL_RGB8_EXT,
+  pattern GL_RGBA12_EXT,
+  pattern GL_RGBA16_EXT,
+  pattern GL_RGBA2_EXT,
+  pattern GL_RGBA4_EXT,
+  pattern GL_RGBA8_EXT,
+  pattern GL_TEXTURE_ALPHA_SIZE_EXT,
+  pattern GL_TEXTURE_BLUE_SIZE_EXT,
+  pattern GL_TEXTURE_GREEN_SIZE_EXT,
+  pattern GL_TEXTURE_INTENSITY_SIZE_EXT,
+  pattern GL_TEXTURE_LUMINANCE_SIZE_EXT,
+  pattern GL_TEXTURE_RED_SIZE_EXT,
+  pattern GL_TEXTURE_TOO_LARGE_EXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/EXT/Texture3D.hs b/src/Graphics/GL/EXT/Texture3D.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/Texture3D.hs
@@ -0,0 +1,35 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.Texture3D
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.Texture3D (
+  -- * Extension Support
+  glGetEXTTexture3D,
+  gl_EXT_texture3D,
+  -- * Enums
+  pattern GL_MAX_3D_TEXTURE_SIZE_EXT,
+  pattern GL_PACK_IMAGE_HEIGHT_EXT,
+  pattern GL_PACK_SKIP_IMAGES_EXT,
+  pattern GL_PROXY_TEXTURE_3D_EXT,
+  pattern GL_TEXTURE_3D_EXT,
+  pattern GL_TEXTURE_DEPTH_EXT,
+  pattern GL_TEXTURE_WRAP_R_EXT,
+  pattern GL_UNPACK_IMAGE_HEIGHT_EXT,
+  pattern GL_UNPACK_SKIP_IMAGES_EXT,
+  -- * Functions
+  glTexImage3DEXT,
+  glTexSubImage3DEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/TextureArray.hs b/src/Graphics/GL/EXT/TextureArray.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/TextureArray.hs
@@ -0,0 +1,34 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.TextureArray
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.TextureArray (
+  -- * Extension Support
+  glGetEXTTextureArray,
+  gl_EXT_texture_array,
+  -- * Enums
+  pattern GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT,
+  pattern GL_MAX_ARRAY_TEXTURE_LAYERS_EXT,
+  pattern GL_PROXY_TEXTURE_1D_ARRAY_EXT,
+  pattern GL_PROXY_TEXTURE_2D_ARRAY_EXT,
+  pattern GL_TEXTURE_1D_ARRAY_EXT,
+  pattern GL_TEXTURE_2D_ARRAY_EXT,
+  pattern GL_TEXTURE_BINDING_1D_ARRAY_EXT,
+  pattern GL_TEXTURE_BINDING_2D_ARRAY_EXT,
+  -- * Functions
+  glFramebufferTextureLayerEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/TextureBufferObject.hs b/src/Graphics/GL/EXT/TextureBufferObject.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/TextureBufferObject.hs
@@ -0,0 +1,30 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.TextureBufferObject
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.TextureBufferObject (
+  -- * Extension Support
+  glGetEXTTextureBufferObject,
+  gl_EXT_texture_buffer_object,
+  -- * Enums
+  pattern GL_MAX_TEXTURE_BUFFER_SIZE_EXT,
+  pattern GL_TEXTURE_BINDING_BUFFER_EXT,
+  pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT,
+  pattern GL_TEXTURE_BUFFER_EXT,
+  pattern GL_TEXTURE_BUFFER_FORMAT_EXT,
+  -- * Functions
+  glTexBufferEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/TextureCompressionLATC.hs b/src/Graphics/GL/EXT/TextureCompressionLATC.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/TextureCompressionLATC.hs
@@ -0,0 +1,26 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.TextureCompressionLATC
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.TextureCompressionLATC (
+  -- * Extension Support
+  glGetEXTTextureCompressionLATC,
+  gl_EXT_texture_compression_latc,
+  -- * Enums
+  pattern GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT,
+  pattern GL_COMPRESSED_LUMINANCE_LATC1_EXT,
+  pattern GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT,
+  pattern GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/EXT/TextureCompressionRGTC.hs b/src/Graphics/GL/EXT/TextureCompressionRGTC.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/TextureCompressionRGTC.hs
@@ -0,0 +1,26 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.TextureCompressionRGTC
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.TextureCompressionRGTC (
+  -- * Extension Support
+  glGetEXTTextureCompressionRGTC,
+  gl_EXT_texture_compression_rgtc,
+  -- * Enums
+  pattern GL_COMPRESSED_RED_GREEN_RGTC2_EXT,
+  pattern GL_COMPRESSED_RED_RGTC1_EXT,
+  pattern GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT,
+  pattern GL_COMPRESSED_SIGNED_RED_RGTC1_EXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/EXT/TextureCompressionS3TC.hs b/src/Graphics/GL/EXT/TextureCompressionS3TC.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/TextureCompressionS3TC.hs
@@ -0,0 +1,26 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.TextureCompressionS3TC
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.TextureCompressionS3TC (
+  -- * Extension Support
+  glGetEXTTextureCompressionS3TC,
+  gl_EXT_texture_compression_s3tc,
+  -- * Enums
+  pattern GL_COMPRESSED_RGBA_S3TC_DXT1_EXT,
+  pattern GL_COMPRESSED_RGBA_S3TC_DXT3_EXT,
+  pattern GL_COMPRESSED_RGBA_S3TC_DXT5_EXT,
+  pattern GL_COMPRESSED_RGB_S3TC_DXT1_EXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/EXT/TextureCubeMap.hs b/src/Graphics/GL/EXT/TextureCubeMap.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/TextureCubeMap.hs
@@ -0,0 +1,34 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.TextureCubeMap
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.TextureCubeMap (
+  -- * Extension Support
+  glGetEXTTextureCubeMap,
+  gl_EXT_texture_cube_map,
+  -- * Enums
+  pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT,
+  pattern GL_NORMAL_MAP_EXT,
+  pattern GL_PROXY_TEXTURE_CUBE_MAP_EXT,
+  pattern GL_REFLECTION_MAP_EXT,
+  pattern GL_TEXTURE_BINDING_CUBE_MAP_EXT,
+  pattern GL_TEXTURE_CUBE_MAP_EXT,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/EXT/TextureEnvCombine.hs b/src/Graphics/GL/EXT/TextureEnvCombine.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/TextureEnvCombine.hs
@@ -0,0 +1,43 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.TextureEnvCombine
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.TextureEnvCombine (
+  -- * Extension Support
+  glGetEXTTextureEnvCombine,
+  gl_EXT_texture_env_combine,
+  -- * Enums
+  pattern GL_ADD_SIGNED_EXT,
+  pattern GL_COMBINE_ALPHA_EXT,
+  pattern GL_COMBINE_EXT,
+  pattern GL_COMBINE_RGB_EXT,
+  pattern GL_CONSTANT_EXT,
+  pattern GL_INTERPOLATE_EXT,
+  pattern GL_OPERAND0_ALPHA_EXT,
+  pattern GL_OPERAND0_RGB_EXT,
+  pattern GL_OPERAND1_ALPHA_EXT,
+  pattern GL_OPERAND1_RGB_EXT,
+  pattern GL_OPERAND2_ALPHA_EXT,
+  pattern GL_OPERAND2_RGB_EXT,
+  pattern GL_PREVIOUS_EXT,
+  pattern GL_PRIMARY_COLOR_EXT,
+  pattern GL_RGB_SCALE_EXT,
+  pattern GL_SOURCE0_ALPHA_EXT,
+  pattern GL_SOURCE0_RGB_EXT,
+  pattern GL_SOURCE1_ALPHA_EXT,
+  pattern GL_SOURCE1_RGB_EXT,
+  pattern GL_SOURCE2_ALPHA_EXT,
+  pattern GL_SOURCE2_RGB_EXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/EXT/TextureEnvDot3.hs b/src/Graphics/GL/EXT/TextureEnvDot3.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/TextureEnvDot3.hs
@@ -0,0 +1,24 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.TextureEnvDot3
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.TextureEnvDot3 (
+  -- * Extension Support
+  glGetEXTTextureEnvDot3,
+  gl_EXT_texture_env_dot3,
+  -- * Enums
+  pattern GL_DOT3_RGBA_EXT,
+  pattern GL_DOT3_RGB_EXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/EXT/TextureFilterAnisotropic.hs b/src/Graphics/GL/EXT/TextureFilterAnisotropic.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/TextureFilterAnisotropic.hs
@@ -0,0 +1,24 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.TextureFilterAnisotropic
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.TextureFilterAnisotropic (
+  -- * Extension Support
+  glGetEXTTextureFilterAnisotropic,
+  gl_EXT_texture_filter_anisotropic,
+  -- * Enums
+  pattern GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT,
+  pattern GL_TEXTURE_MAX_ANISOTROPY_EXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/EXT/TextureFilterMinmax.hs b/src/Graphics/GL/EXT/TextureFilterMinmax.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/TextureFilterMinmax.hs
@@ -0,0 +1,24 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.TextureFilterMinmax
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.TextureFilterMinmax (
+  -- * Extension Support
+  glGetEXTTextureFilterMinmax,
+  gl_EXT_texture_filter_minmax,
+  -- * Enums
+  pattern GL_TEXTURE_REDUCTION_MODE_EXT,
+  pattern GL_WEIGHTED_AVERAGE_EXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/EXT/TextureInteger.hs b/src/Graphics/GL/EXT/TextureInteger.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/TextureInteger.hs
@@ -0,0 +1,77 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.TextureInteger
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.TextureInteger (
+  -- * Extension Support
+  glGetEXTTextureInteger,
+  gl_EXT_texture_integer,
+  -- * Enums
+  pattern GL_ALPHA16I_EXT,
+  pattern GL_ALPHA16UI_EXT,
+  pattern GL_ALPHA32I_EXT,
+  pattern GL_ALPHA32UI_EXT,
+  pattern GL_ALPHA8I_EXT,
+  pattern GL_ALPHA8UI_EXT,
+  pattern GL_ALPHA_INTEGER_EXT,
+  pattern GL_BGRA_INTEGER_EXT,
+  pattern GL_BGR_INTEGER_EXT,
+  pattern GL_BLUE_INTEGER_EXT,
+  pattern GL_GREEN_INTEGER_EXT,
+  pattern GL_INTENSITY16I_EXT,
+  pattern GL_INTENSITY16UI_EXT,
+  pattern GL_INTENSITY32I_EXT,
+  pattern GL_INTENSITY32UI_EXT,
+  pattern GL_INTENSITY8I_EXT,
+  pattern GL_INTENSITY8UI_EXT,
+  pattern GL_LUMINANCE16I_EXT,
+  pattern GL_LUMINANCE16UI_EXT,
+  pattern GL_LUMINANCE32I_EXT,
+  pattern GL_LUMINANCE32UI_EXT,
+  pattern GL_LUMINANCE8I_EXT,
+  pattern GL_LUMINANCE8UI_EXT,
+  pattern GL_LUMINANCE_ALPHA16I_EXT,
+  pattern GL_LUMINANCE_ALPHA16UI_EXT,
+  pattern GL_LUMINANCE_ALPHA32I_EXT,
+  pattern GL_LUMINANCE_ALPHA32UI_EXT,
+  pattern GL_LUMINANCE_ALPHA8I_EXT,
+  pattern GL_LUMINANCE_ALPHA8UI_EXT,
+  pattern GL_LUMINANCE_ALPHA_INTEGER_EXT,
+  pattern GL_LUMINANCE_INTEGER_EXT,
+  pattern GL_RED_INTEGER_EXT,
+  pattern GL_RGB16I_EXT,
+  pattern GL_RGB16UI_EXT,
+  pattern GL_RGB32I_EXT,
+  pattern GL_RGB32UI_EXT,
+  pattern GL_RGB8I_EXT,
+  pattern GL_RGB8UI_EXT,
+  pattern GL_RGBA16I_EXT,
+  pattern GL_RGBA16UI_EXT,
+  pattern GL_RGBA32I_EXT,
+  pattern GL_RGBA32UI_EXT,
+  pattern GL_RGBA8I_EXT,
+  pattern GL_RGBA8UI_EXT,
+  pattern GL_RGBA_INTEGER_EXT,
+  pattern GL_RGBA_INTEGER_MODE_EXT,
+  pattern GL_RGB_INTEGER_EXT,
+  -- * Functions
+  glClearColorIiEXT,
+  glClearColorIuiEXT,
+  glGetTexParameterIivEXT,
+  glGetTexParameterIuivEXT,
+  glTexParameterIivEXT,
+  glTexParameterIuivEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/TextureLODBias.hs b/src/Graphics/GL/EXT/TextureLODBias.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/TextureLODBias.hs
@@ -0,0 +1,25 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.TextureLODBias
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.TextureLODBias (
+  -- * Extension Support
+  glGetEXTTextureLODBias,
+  gl_EXT_texture_lod_bias,
+  -- * Enums
+  pattern GL_MAX_TEXTURE_LOD_BIAS_EXT,
+  pattern GL_TEXTURE_FILTER_CONTROL_EXT,
+  pattern GL_TEXTURE_LOD_BIAS_EXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/EXT/TextureMirrorClamp.hs b/src/Graphics/GL/EXT/TextureMirrorClamp.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/TextureMirrorClamp.hs
@@ -0,0 +1,25 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.TextureMirrorClamp
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.TextureMirrorClamp (
+  -- * Extension Support
+  glGetEXTTextureMirrorClamp,
+  gl_EXT_texture_mirror_clamp,
+  -- * Enums
+  pattern GL_MIRROR_CLAMP_EXT,
+  pattern GL_MIRROR_CLAMP_TO_BORDER_EXT,
+  pattern GL_MIRROR_CLAMP_TO_EDGE_EXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/EXT/TextureObject.hs b/src/Graphics/GL/EXT/TextureObject.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/TextureObject.hs
@@ -0,0 +1,35 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.TextureObject
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.TextureObject (
+  -- * Extension Support
+  glGetEXTTextureObject,
+  gl_EXT_texture_object,
+  -- * Enums
+  pattern GL_TEXTURE_1D_BINDING_EXT,
+  pattern GL_TEXTURE_2D_BINDING_EXT,
+  pattern GL_TEXTURE_3D_BINDING_EXT,
+  pattern GL_TEXTURE_PRIORITY_EXT,
+  pattern GL_TEXTURE_RESIDENT_EXT,
+  -- * Functions
+  glAreTexturesResidentEXT,
+  glBindTextureEXT,
+  glDeleteTexturesEXT,
+  glGenTexturesEXT,
+  glIsTextureEXT,
+  glPrioritizeTexturesEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/TexturePerturbNormal.hs b/src/Graphics/GL/EXT/TexturePerturbNormal.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/TexturePerturbNormal.hs
@@ -0,0 +1,27 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.TexturePerturbNormal
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.TexturePerturbNormal (
+  -- * Extension Support
+  glGetEXTTexturePerturbNormal,
+  gl_EXT_texture_perturb_normal,
+  -- * Enums
+  pattern GL_PERTURB_EXT,
+  pattern GL_TEXTURE_NORMAL_EXT,
+  -- * Functions
+  glTextureNormalEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/TextureSNorm.hs b/src/Graphics/GL/EXT/TextureSNorm.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/TextureSNorm.hs
@@ -0,0 +1,47 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.TextureSNorm
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.TextureSNorm (
+  -- * Extension Support
+  glGetEXTTextureSNorm,
+  gl_EXT_texture_snorm,
+  -- * Enums
+  pattern GL_ALPHA16_SNORM,
+  pattern GL_ALPHA8_SNORM,
+  pattern GL_ALPHA_SNORM,
+  pattern GL_INTENSITY16_SNORM,
+  pattern GL_INTENSITY8_SNORM,
+  pattern GL_INTENSITY_SNORM,
+  pattern GL_LUMINANCE16_ALPHA16_SNORM,
+  pattern GL_LUMINANCE16_SNORM,
+  pattern GL_LUMINANCE8_ALPHA8_SNORM,
+  pattern GL_LUMINANCE8_SNORM,
+  pattern GL_LUMINANCE_ALPHA_SNORM,
+  pattern GL_LUMINANCE_SNORM,
+  pattern GL_R16_SNORM,
+  pattern GL_R8_SNORM,
+  pattern GL_RED_SNORM,
+  pattern GL_RG16_SNORM,
+  pattern GL_RG8_SNORM,
+  pattern GL_RGB16_SNORM,
+  pattern GL_RGB8_SNORM,
+  pattern GL_RGBA16_SNORM,
+  pattern GL_RGBA8_SNORM,
+  pattern GL_RGBA_SNORM,
+  pattern GL_RGB_SNORM,
+  pattern GL_RG_SNORM,
+  pattern GL_SIGNED_NORMALIZED
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/EXT/TextureSRGB.hs b/src/Graphics/GL/EXT/TextureSRGB.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/TextureSRGB.hs
@@ -0,0 +1,38 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.TextureSRGB
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.TextureSRGB (
+  -- * Extension Support
+  glGetEXTTextureSRGB,
+  gl_EXT_texture_sRGB,
+  -- * Enums
+  pattern GL_COMPRESSED_SLUMINANCE_ALPHA_EXT,
+  pattern GL_COMPRESSED_SLUMINANCE_EXT,
+  pattern GL_COMPRESSED_SRGB_ALPHA_EXT,
+  pattern GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT,
+  pattern GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,
+  pattern GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT,
+  pattern GL_COMPRESSED_SRGB_EXT,
+  pattern GL_COMPRESSED_SRGB_S3TC_DXT1_EXT,
+  pattern GL_SLUMINANCE8_ALPHA8_EXT,
+  pattern GL_SLUMINANCE8_EXT,
+  pattern GL_SLUMINANCE_ALPHA_EXT,
+  pattern GL_SLUMINANCE_EXT,
+  pattern GL_SRGB8_ALPHA8_EXT,
+  pattern GL_SRGB8_EXT,
+  pattern GL_SRGB_ALPHA_EXT,
+  pattern GL_SRGB_EXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/EXT/TextureSRGBDecode.hs b/src/Graphics/GL/EXT/TextureSRGBDecode.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/TextureSRGBDecode.hs
@@ -0,0 +1,25 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.TextureSRGBDecode
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.TextureSRGBDecode (
+  -- * Extension Support
+  glGetEXTTextureSRGBDecode,
+  gl_EXT_texture_sRGB_decode,
+  -- * Enums
+  pattern GL_DECODE_EXT,
+  pattern GL_SKIP_DECODE_EXT,
+  pattern GL_TEXTURE_SRGB_DECODE_EXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/EXT/TextureSRGBR8.hs b/src/Graphics/GL/EXT/TextureSRGBR8.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/TextureSRGBR8.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.TextureSRGBR8
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.TextureSRGBR8 (
+  -- * Extension Support
+  glGetEXTTextureSRGBR8,
+  gl_EXT_texture_sRGB_R8,
+  -- * Enums
+  pattern GL_SR8_EXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/EXT/TextureSharedExponent.hs b/src/Graphics/GL/EXT/TextureSharedExponent.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/TextureSharedExponent.hs
@@ -0,0 +1,25 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.TextureSharedExponent
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.TextureSharedExponent (
+  -- * Extension Support
+  glGetEXTTextureSharedExponent,
+  gl_EXT_texture_shared_exponent,
+  -- * Enums
+  pattern GL_RGB9_E5_EXT,
+  pattern GL_TEXTURE_SHARED_SIZE_EXT,
+  pattern GL_UNSIGNED_INT_5_9_9_9_REV_EXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/EXT/TextureSwizzle.hs b/src/Graphics/GL/EXT/TextureSwizzle.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/TextureSwizzle.hs
@@ -0,0 +1,27 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.TextureSwizzle
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.TextureSwizzle (
+  -- * Extension Support
+  glGetEXTTextureSwizzle,
+  gl_EXT_texture_swizzle,
+  -- * Enums
+  pattern GL_TEXTURE_SWIZZLE_A_EXT,
+  pattern GL_TEXTURE_SWIZZLE_B_EXT,
+  pattern GL_TEXTURE_SWIZZLE_G_EXT,
+  pattern GL_TEXTURE_SWIZZLE_RGBA_EXT,
+  pattern GL_TEXTURE_SWIZZLE_R_EXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/EXT/TimerQuery.hs b/src/Graphics/GL/EXT/TimerQuery.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/TimerQuery.hs
@@ -0,0 +1,27 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.TimerQuery
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.TimerQuery (
+  -- * Extension Support
+  glGetEXTTimerQuery,
+  gl_EXT_timer_query,
+  -- * Enums
+  pattern GL_TIME_ELAPSED_EXT,
+  -- * Functions
+  glGetQueryObjecti64vEXT,
+  glGetQueryObjectui64vEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/TransformFeedback.hs b/src/Graphics/GL/EXT/TransformFeedback.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/TransformFeedback.hs
@@ -0,0 +1,46 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.TransformFeedback
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.TransformFeedback (
+  -- * Extension Support
+  glGetEXTTransformFeedback,
+  gl_EXT_transform_feedback,
+  -- * Enums
+  pattern GL_INTERLEAVED_ATTRIBS_EXT,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT,
+  pattern GL_PRIMITIVES_GENERATED_EXT,
+  pattern GL_RASTERIZER_DISCARD_EXT,
+  pattern GL_SEPARATE_ATTRIBS_EXT,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_EXT,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT,
+  pattern GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT,
+  pattern GL_TRANSFORM_FEEDBACK_VARYINGS_EXT,
+  pattern GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT,
+  -- * Functions
+  glBeginTransformFeedbackEXT,
+  glBindBufferBaseEXT,
+  glBindBufferOffsetEXT,
+  glBindBufferRangeEXT,
+  glEndTransformFeedbackEXT,
+  glGetTransformFeedbackVaryingEXT,
+  glTransformFeedbackVaryingsEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/VertexArray.hs b/src/Graphics/GL/EXT/VertexArray.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/VertexArray.hs
@@ -0,0 +1,65 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.VertexArray
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.VertexArray (
+  -- * Extension Support
+  glGetEXTVertexArray,
+  gl_EXT_vertex_array,
+  -- * Enums
+  pattern GL_COLOR_ARRAY_COUNT_EXT,
+  pattern GL_COLOR_ARRAY_EXT,
+  pattern GL_COLOR_ARRAY_POINTER_EXT,
+  pattern GL_COLOR_ARRAY_SIZE_EXT,
+  pattern GL_COLOR_ARRAY_STRIDE_EXT,
+  pattern GL_COLOR_ARRAY_TYPE_EXT,
+  pattern GL_EDGE_FLAG_ARRAY_COUNT_EXT,
+  pattern GL_EDGE_FLAG_ARRAY_EXT,
+  pattern GL_EDGE_FLAG_ARRAY_POINTER_EXT,
+  pattern GL_EDGE_FLAG_ARRAY_STRIDE_EXT,
+  pattern GL_INDEX_ARRAY_COUNT_EXT,
+  pattern GL_INDEX_ARRAY_EXT,
+  pattern GL_INDEX_ARRAY_POINTER_EXT,
+  pattern GL_INDEX_ARRAY_STRIDE_EXT,
+  pattern GL_INDEX_ARRAY_TYPE_EXT,
+  pattern GL_NORMAL_ARRAY_COUNT_EXT,
+  pattern GL_NORMAL_ARRAY_EXT,
+  pattern GL_NORMAL_ARRAY_POINTER_EXT,
+  pattern GL_NORMAL_ARRAY_STRIDE_EXT,
+  pattern GL_NORMAL_ARRAY_TYPE_EXT,
+  pattern GL_TEXTURE_COORD_ARRAY_COUNT_EXT,
+  pattern GL_TEXTURE_COORD_ARRAY_EXT,
+  pattern GL_TEXTURE_COORD_ARRAY_POINTER_EXT,
+  pattern GL_TEXTURE_COORD_ARRAY_SIZE_EXT,
+  pattern GL_TEXTURE_COORD_ARRAY_STRIDE_EXT,
+  pattern GL_TEXTURE_COORD_ARRAY_TYPE_EXT,
+  pattern GL_VERTEX_ARRAY_COUNT_EXT,
+  pattern GL_VERTEX_ARRAY_EXT,
+  pattern GL_VERTEX_ARRAY_POINTER_EXT,
+  pattern GL_VERTEX_ARRAY_SIZE_EXT,
+  pattern GL_VERTEX_ARRAY_STRIDE_EXT,
+  pattern GL_VERTEX_ARRAY_TYPE_EXT,
+  -- * Functions
+  glArrayElementEXT,
+  glColorPointerEXT,
+  glDrawArraysEXT,
+  glEdgeFlagPointerEXT,
+  glGetPointervEXT,
+  glIndexPointerEXT,
+  glNormalPointerEXT,
+  glTexCoordPointerEXT,
+  glVertexPointerEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/VertexArrayBGRA.hs b/src/Graphics/GL/EXT/VertexArrayBGRA.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/VertexArrayBGRA.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.VertexArrayBGRA
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.VertexArrayBGRA (
+  -- * Extension Support
+  glGetEXTVertexArrayBGRA,
+  gl_EXT_vertex_array_bgra,
+  -- * Enums
+  pattern GL_BGRA
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/EXT/VertexAttrib64Bit.hs b/src/Graphics/GL/EXT/VertexAttrib64Bit.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/VertexAttrib64Bit.hs
@@ -0,0 +1,47 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.VertexAttrib64Bit
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.VertexAttrib64Bit (
+  -- * Extension Support
+  glGetEXTVertexAttrib64Bit,
+  gl_EXT_vertex_attrib_64bit,
+  -- * Enums
+  pattern GL_DOUBLE,
+  pattern GL_DOUBLE_MAT2_EXT,
+  pattern GL_DOUBLE_MAT2x3_EXT,
+  pattern GL_DOUBLE_MAT2x4_EXT,
+  pattern GL_DOUBLE_MAT3_EXT,
+  pattern GL_DOUBLE_MAT3x2_EXT,
+  pattern GL_DOUBLE_MAT3x4_EXT,
+  pattern GL_DOUBLE_MAT4_EXT,
+  pattern GL_DOUBLE_MAT4x2_EXT,
+  pattern GL_DOUBLE_MAT4x3_EXT,
+  pattern GL_DOUBLE_VEC2_EXT,
+  pattern GL_DOUBLE_VEC3_EXT,
+  pattern GL_DOUBLE_VEC4_EXT,
+  -- * Functions
+  glGetVertexAttribLdvEXT,
+  glVertexAttribL1dEXT,
+  glVertexAttribL1dvEXT,
+  glVertexAttribL2dEXT,
+  glVertexAttribL2dvEXT,
+  glVertexAttribL3dEXT,
+  glVertexAttribL3dvEXT,
+  glVertexAttribL4dEXT,
+  glVertexAttribL4dvEXT,
+  glVertexAttribLPointerEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/VertexShader.hs b/src/Graphics/GL/EXT/VertexShader.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/VertexShader.hs
@@ -0,0 +1,176 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.VertexShader
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.VertexShader (
+  -- * Extension Support
+  glGetEXTVertexShader,
+  gl_EXT_vertex_shader,
+  -- * Enums
+  pattern GL_CURRENT_VERTEX_EXT,
+  pattern GL_FULL_RANGE_EXT,
+  pattern GL_INVARIANT_DATATYPE_EXT,
+  pattern GL_INVARIANT_EXT,
+  pattern GL_INVARIANT_VALUE_EXT,
+  pattern GL_LOCAL_CONSTANT_DATATYPE_EXT,
+  pattern GL_LOCAL_CONSTANT_EXT,
+  pattern GL_LOCAL_CONSTANT_VALUE_EXT,
+  pattern GL_LOCAL_EXT,
+  pattern GL_MATRIX_EXT,
+  pattern GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT,
+  pattern GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT,
+  pattern GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT,
+  pattern GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT,
+  pattern GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT,
+  pattern GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT,
+  pattern GL_MAX_VERTEX_SHADER_INVARIANTS_EXT,
+  pattern GL_MAX_VERTEX_SHADER_LOCALS_EXT,
+  pattern GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT,
+  pattern GL_MAX_VERTEX_SHADER_VARIANTS_EXT,
+  pattern GL_MVP_MATRIX_EXT,
+  pattern GL_NEGATIVE_ONE_EXT,
+  pattern GL_NEGATIVE_W_EXT,
+  pattern GL_NEGATIVE_X_EXT,
+  pattern GL_NEGATIVE_Y_EXT,
+  pattern GL_NEGATIVE_Z_EXT,
+  pattern GL_NORMALIZED_RANGE_EXT,
+  pattern GL_ONE_EXT,
+  pattern GL_OP_ADD_EXT,
+  pattern GL_OP_CLAMP_EXT,
+  pattern GL_OP_CROSS_PRODUCT_EXT,
+  pattern GL_OP_DOT3_EXT,
+  pattern GL_OP_DOT4_EXT,
+  pattern GL_OP_EXP_BASE_2_EXT,
+  pattern GL_OP_FLOOR_EXT,
+  pattern GL_OP_FRAC_EXT,
+  pattern GL_OP_INDEX_EXT,
+  pattern GL_OP_LOG_BASE_2_EXT,
+  pattern GL_OP_MADD_EXT,
+  pattern GL_OP_MAX_EXT,
+  pattern GL_OP_MIN_EXT,
+  pattern GL_OP_MOV_EXT,
+  pattern GL_OP_MULTIPLY_MATRIX_EXT,
+  pattern GL_OP_MUL_EXT,
+  pattern GL_OP_NEGATE_EXT,
+  pattern GL_OP_POWER_EXT,
+  pattern GL_OP_RECIP_EXT,
+  pattern GL_OP_RECIP_SQRT_EXT,
+  pattern GL_OP_ROUND_EXT,
+  pattern GL_OP_SET_GE_EXT,
+  pattern GL_OP_SET_LT_EXT,
+  pattern GL_OP_SUB_EXT,
+  pattern GL_OUTPUT_COLOR0_EXT,
+  pattern GL_OUTPUT_COLOR1_EXT,
+  pattern GL_OUTPUT_FOG_EXT,
+  pattern GL_OUTPUT_TEXTURE_COORD0_EXT,
+  pattern GL_OUTPUT_TEXTURE_COORD10_EXT,
+  pattern GL_OUTPUT_TEXTURE_COORD11_EXT,
+  pattern GL_OUTPUT_TEXTURE_COORD12_EXT,
+  pattern GL_OUTPUT_TEXTURE_COORD13_EXT,
+  pattern GL_OUTPUT_TEXTURE_COORD14_EXT,
+  pattern GL_OUTPUT_TEXTURE_COORD15_EXT,
+  pattern GL_OUTPUT_TEXTURE_COORD16_EXT,
+  pattern GL_OUTPUT_TEXTURE_COORD17_EXT,
+  pattern GL_OUTPUT_TEXTURE_COORD18_EXT,
+  pattern GL_OUTPUT_TEXTURE_COORD19_EXT,
+  pattern GL_OUTPUT_TEXTURE_COORD1_EXT,
+  pattern GL_OUTPUT_TEXTURE_COORD20_EXT,
+  pattern GL_OUTPUT_TEXTURE_COORD21_EXT,
+  pattern GL_OUTPUT_TEXTURE_COORD22_EXT,
+  pattern GL_OUTPUT_TEXTURE_COORD23_EXT,
+  pattern GL_OUTPUT_TEXTURE_COORD24_EXT,
+  pattern GL_OUTPUT_TEXTURE_COORD25_EXT,
+  pattern GL_OUTPUT_TEXTURE_COORD26_EXT,
+  pattern GL_OUTPUT_TEXTURE_COORD27_EXT,
+  pattern GL_OUTPUT_TEXTURE_COORD28_EXT,
+  pattern GL_OUTPUT_TEXTURE_COORD29_EXT,
+  pattern GL_OUTPUT_TEXTURE_COORD2_EXT,
+  pattern GL_OUTPUT_TEXTURE_COORD30_EXT,
+  pattern GL_OUTPUT_TEXTURE_COORD31_EXT,
+  pattern GL_OUTPUT_TEXTURE_COORD3_EXT,
+  pattern GL_OUTPUT_TEXTURE_COORD4_EXT,
+  pattern GL_OUTPUT_TEXTURE_COORD5_EXT,
+  pattern GL_OUTPUT_TEXTURE_COORD6_EXT,
+  pattern GL_OUTPUT_TEXTURE_COORD7_EXT,
+  pattern GL_OUTPUT_TEXTURE_COORD8_EXT,
+  pattern GL_OUTPUT_TEXTURE_COORD9_EXT,
+  pattern GL_OUTPUT_VERTEX_EXT,
+  pattern GL_SCALAR_EXT,
+  pattern GL_VARIANT_ARRAY_EXT,
+  pattern GL_VARIANT_ARRAY_POINTER_EXT,
+  pattern GL_VARIANT_ARRAY_STRIDE_EXT,
+  pattern GL_VARIANT_ARRAY_TYPE_EXT,
+  pattern GL_VARIANT_DATATYPE_EXT,
+  pattern GL_VARIANT_EXT,
+  pattern GL_VARIANT_VALUE_EXT,
+  pattern GL_VECTOR_EXT,
+  pattern GL_VERTEX_SHADER_BINDING_EXT,
+  pattern GL_VERTEX_SHADER_EXT,
+  pattern GL_VERTEX_SHADER_INSTRUCTIONS_EXT,
+  pattern GL_VERTEX_SHADER_INVARIANTS_EXT,
+  pattern GL_VERTEX_SHADER_LOCALS_EXT,
+  pattern GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT,
+  pattern GL_VERTEX_SHADER_OPTIMIZED_EXT,
+  pattern GL_VERTEX_SHADER_VARIANTS_EXT,
+  pattern GL_W_EXT,
+  pattern GL_X_EXT,
+  pattern GL_Y_EXT,
+  pattern GL_ZERO_EXT,
+  pattern GL_Z_EXT,
+  -- * Functions
+  glBeginVertexShaderEXT,
+  glBindLightParameterEXT,
+  glBindMaterialParameterEXT,
+  glBindParameterEXT,
+  glBindTexGenParameterEXT,
+  glBindTextureUnitParameterEXT,
+  glBindVertexShaderEXT,
+  glDeleteVertexShaderEXT,
+  glDisableVariantClientStateEXT,
+  glEnableVariantClientStateEXT,
+  glEndVertexShaderEXT,
+  glExtractComponentEXT,
+  glGenSymbolsEXT,
+  glGenVertexShadersEXT,
+  glGetInvariantBooleanvEXT,
+  glGetInvariantFloatvEXT,
+  glGetInvariantIntegervEXT,
+  glGetLocalConstantBooleanvEXT,
+  glGetLocalConstantFloatvEXT,
+  glGetLocalConstantIntegervEXT,
+  glGetVariantBooleanvEXT,
+  glGetVariantFloatvEXT,
+  glGetVariantIntegervEXT,
+  glGetVariantPointervEXT,
+  glInsertComponentEXT,
+  glIsVariantEnabledEXT,
+  glSetInvariantEXT,
+  glSetLocalConstantEXT,
+  glShaderOp1EXT,
+  glShaderOp2EXT,
+  glShaderOp3EXT,
+  glSwizzleEXT,
+  glVariantPointerEXT,
+  glVariantbvEXT,
+  glVariantdvEXT,
+  glVariantfvEXT,
+  glVariantivEXT,
+  glVariantsvEXT,
+  glVariantubvEXT,
+  glVariantuivEXT,
+  glVariantusvEXT,
+  glWriteMaskEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/VertexWeighting.hs b/src/Graphics/GL/EXT/VertexWeighting.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/VertexWeighting.hs
@@ -0,0 +1,40 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.VertexWeighting
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.VertexWeighting (
+  -- * Extension Support
+  glGetEXTVertexWeighting,
+  gl_EXT_vertex_weighting,
+  -- * Enums
+  pattern GL_CURRENT_VERTEX_WEIGHT_EXT,
+  pattern GL_MODELVIEW0_EXT,
+  pattern GL_MODELVIEW0_MATRIX_EXT,
+  pattern GL_MODELVIEW0_STACK_DEPTH_EXT,
+  pattern GL_MODELVIEW1_EXT,
+  pattern GL_MODELVIEW1_MATRIX_EXT,
+  pattern GL_MODELVIEW1_STACK_DEPTH_EXT,
+  pattern GL_VERTEX_WEIGHTING_EXT,
+  pattern GL_VERTEX_WEIGHT_ARRAY_EXT,
+  pattern GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT,
+  pattern GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT,
+  pattern GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT,
+  pattern GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT,
+  -- * Functions
+  glVertexWeightPointerEXT,
+  glVertexWeightfEXT,
+  glVertexWeightfvEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/Win32KeyedMutex.hs b/src/Graphics/GL/EXT/Win32KeyedMutex.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/Win32KeyedMutex.hs
@@ -0,0 +1,23 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.Win32KeyedMutex
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.Win32KeyedMutex (
+  -- * Extension Support
+  glGetEXTWin32KeyedMutex,
+  gl_EXT_win32_keyed_mutex,
+  -- * Functions
+  glAcquireKeyedMutexWin32EXT,
+  glReleaseKeyedMutexWin32EXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/WindowRectangles.hs b/src/Graphics/GL/EXT/WindowRectangles.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/WindowRectangles.hs
@@ -0,0 +1,31 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.WindowRectangles
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.WindowRectangles (
+  -- * Extension Support
+  glGetEXTWindowRectangles,
+  gl_EXT_window_rectangles,
+  -- * Enums
+  pattern GL_EXCLUSIVE_EXT,
+  pattern GL_INCLUSIVE_EXT,
+  pattern GL_MAX_WINDOW_RECTANGLES_EXT,
+  pattern GL_NUM_WINDOW_RECTANGLES_EXT,
+  pattern GL_WINDOW_RECTANGLE_EXT,
+  pattern GL_WINDOW_RECTANGLE_MODE_EXT,
+  -- * Functions
+  glWindowRectanglesEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/EXT/X11SyncObject.hs b/src/Graphics/GL/EXT/X11SyncObject.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/EXT/X11SyncObject.hs
@@ -0,0 +1,26 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.EXT.X11SyncObject
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.EXT.X11SyncObject (
+  -- * Extension Support
+  glGetEXTX11SyncObject,
+  gl_EXT_x11_sync_object,
+  -- * Enums
+  pattern GL_SYNC_X11_FENCE_EXT,
+  -- * Functions
+  glImportSyncEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ExtensionPredicates.hs b/src/Graphics/GL/ExtensionPredicates.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ExtensionPredicates.hs
@@ -0,0 +1,5652 @@
+{-# OPTIONS_HADDOCK hide #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ExtensionPredicates
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- Extension support predicates.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ExtensionPredicates where
+
+import Control.Monad.IO.Class ( MonadIO(..) )
+import Data.Set ( member )
+import Graphics.GL.GetProcAddress ( getExtensions, extensions )
+
+-- | Is the <https://www.opengl.org/registry/specs/3DFX/3dfx_multisample.txt 3DFX_multisample> extension supported?
+glGetThreeDFXMultisample :: MonadIO m => m Bool
+glGetThreeDFXMultisample = getExtensions >>= (return . member "GL_3DFX_multisample")
+
+-- | Is the <https://www.opengl.org/registry/specs/3DFX/3dfx_multisample.txt 3DFX_multisample> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetThreeDFXMultisample' in those cases instead.
+gl_3DFX_multisample :: Bool
+gl_3DFX_multisample = member "GL_3DFX_multisample" extensions
+{-# NOINLINE gl_3DFX_multisample #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/3DFX/tbuffer.txt 3DFX_tbuffer> extension supported?
+glGetThreeDFXTbuffer :: MonadIO m => m Bool
+glGetThreeDFXTbuffer = getExtensions >>= (return . member "GL_3DFX_tbuffer")
+
+-- | Is the <https://www.opengl.org/registry/specs/3DFX/tbuffer.txt 3DFX_tbuffer> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetThreeDFXTbuffer' in those cases instead.
+gl_3DFX_tbuffer :: Bool
+gl_3DFX_tbuffer = member "GL_3DFX_tbuffer" extensions
+{-# NOINLINE gl_3DFX_tbuffer #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/3DFX/texture_compression_FXT1.txt 3DFX_texture_compression_FXT1> extension supported?
+glGetThreeDFXTextureCompressionFXT1 :: MonadIO m => m Bool
+glGetThreeDFXTextureCompressionFXT1 = getExtensions >>= (return . member "GL_3DFX_texture_compression_FXT1")
+
+-- | Is the <https://www.opengl.org/registry/specs/3DFX/texture_compression_FXT1.txt 3DFX_texture_compression_FXT1> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetThreeDFXTextureCompressionFXT1' in those cases instead.
+gl_3DFX_texture_compression_FXT1 :: Bool
+gl_3DFX_texture_compression_FXT1 = member "GL_3DFX_texture_compression_FXT1" extensions
+{-# NOINLINE gl_3DFX_texture_compression_FXT1 #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/AMD/blend_minmax_factor.txt AMD_blend_minmax_factor> extension supported?
+glGetAMDBlendMinmaxFactor :: MonadIO m => m Bool
+glGetAMDBlendMinmaxFactor = getExtensions >>= (return . member "GL_AMD_blend_minmax_factor")
+
+-- | Is the <https://www.opengl.org/registry/specs/AMD/blend_minmax_factor.txt AMD_blend_minmax_factor> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetAMDBlendMinmaxFactor' in those cases instead.
+gl_AMD_blend_minmax_factor :: Bool
+gl_AMD_blend_minmax_factor = member "GL_AMD_blend_minmax_factor" extensions
+{-# NOINLINE gl_AMD_blend_minmax_factor #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/AMD/debug_output.txt AMD_debug_output> extension supported?
+glGetAMDDebugOutput :: MonadIO m => m Bool
+glGetAMDDebugOutput = getExtensions >>= (return . member "GL_AMD_debug_output")
+
+-- | Is the <https://www.opengl.org/registry/specs/AMD/debug_output.txt AMD_debug_output> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetAMDDebugOutput' in those cases instead.
+gl_AMD_debug_output :: Bool
+gl_AMD_debug_output = member "GL_AMD_debug_output" extensions
+{-# NOINLINE gl_AMD_debug_output #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/AMD/depth_clamp_separate.txt AMD_depth_clamp_separate> extension supported?
+glGetAMDDepthClampSeparate :: MonadIO m => m Bool
+glGetAMDDepthClampSeparate = getExtensions >>= (return . member "GL_AMD_depth_clamp_separate")
+
+-- | Is the <https://www.opengl.org/registry/specs/AMD/depth_clamp_separate.txt AMD_depth_clamp_separate> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetAMDDepthClampSeparate' in those cases instead.
+gl_AMD_depth_clamp_separate :: Bool
+gl_AMD_depth_clamp_separate = member "GL_AMD_depth_clamp_separate" extensions
+{-# NOINLINE gl_AMD_depth_clamp_separate #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/AMD/draw_buffers_blend.txt AMD_draw_buffers_blend> extension supported?
+glGetAMDDrawBuffersBlend :: MonadIO m => m Bool
+glGetAMDDrawBuffersBlend = getExtensions >>= (return . member "GL_AMD_draw_buffers_blend")
+
+-- | Is the <https://www.opengl.org/registry/specs/AMD/draw_buffers_blend.txt AMD_draw_buffers_blend> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetAMDDrawBuffersBlend' in those cases instead.
+gl_AMD_draw_buffers_blend :: Bool
+gl_AMD_draw_buffers_blend = member "GL_AMD_draw_buffers_blend" extensions
+{-# NOINLINE gl_AMD_draw_buffers_blend #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/AMD/framebuffer_multisample_advanced.txt AMD_framebuffer_multisample_advanced> extension supported?
+glGetAMDFramebufferMultisampleAdvanced :: MonadIO m => m Bool
+glGetAMDFramebufferMultisampleAdvanced = getExtensions >>= (return . member "GL_AMD_framebuffer_multisample_advanced")
+
+-- | Is the <https://www.opengl.org/registry/specs/AMD/framebuffer_multisample_advanced.txt AMD_framebuffer_multisample_advanced> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetAMDFramebufferMultisampleAdvanced' in those cases instead.
+gl_AMD_framebuffer_multisample_advanced :: Bool
+gl_AMD_framebuffer_multisample_advanced = member "GL_AMD_framebuffer_multisample_advanced" extensions
+{-# NOINLINE gl_AMD_framebuffer_multisample_advanced #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/AMD/framebuffer_sample_positions.txt AMD_framebuffer_sample_positions> extension supported?
+glGetAMDFramebufferSamplePositions :: MonadIO m => m Bool
+glGetAMDFramebufferSamplePositions = getExtensions >>= (return . member "GL_AMD_framebuffer_sample_positions")
+
+-- | Is the <https://www.opengl.org/registry/specs/AMD/framebuffer_sample_positions.txt AMD_framebuffer_sample_positions> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetAMDFramebufferSamplePositions' in those cases instead.
+gl_AMD_framebuffer_sample_positions :: Bool
+gl_AMD_framebuffer_sample_positions = member "GL_AMD_framebuffer_sample_positions" extensions
+{-# NOINLINE gl_AMD_framebuffer_sample_positions #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/AMD/gpu_shader_half_float.txt AMD_gpu_shader_half_float> extension supported?
+glGetAMDGPUShaderHalfFloat :: MonadIO m => m Bool
+glGetAMDGPUShaderHalfFloat = getExtensions >>= (return . member "GL_AMD_gpu_shader_half_float")
+
+-- | Is the <https://www.opengl.org/registry/specs/AMD/gpu_shader_half_float.txt AMD_gpu_shader_half_float> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetAMDGPUShaderHalfFloat' in those cases instead.
+gl_AMD_gpu_shader_half_float :: Bool
+gl_AMD_gpu_shader_half_float = member "GL_AMD_gpu_shader_half_float" extensions
+{-# NOINLINE gl_AMD_gpu_shader_half_float #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/AMD/gpu_shader_int64.txt AMD_gpu_shader_int64> extension supported?
+glGetAMDGPUShaderInt64 :: MonadIO m => m Bool
+glGetAMDGPUShaderInt64 = getExtensions >>= (return . member "GL_AMD_gpu_shader_int64")
+
+-- | Is the <https://www.opengl.org/registry/specs/AMD/gpu_shader_int64.txt AMD_gpu_shader_int64> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetAMDGPUShaderInt64' in those cases instead.
+gl_AMD_gpu_shader_int64 :: Bool
+gl_AMD_gpu_shader_int64 = member "GL_AMD_gpu_shader_int64" extensions
+{-# NOINLINE gl_AMD_gpu_shader_int64 #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/AMD/interleaved_elements.txt AMD_interleaved_elements> extension supported?
+glGetAMDInterleavedElements :: MonadIO m => m Bool
+glGetAMDInterleavedElements = getExtensions >>= (return . member "GL_AMD_interleaved_elements")
+
+-- | Is the <https://www.opengl.org/registry/specs/AMD/interleaved_elements.txt AMD_interleaved_elements> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetAMDInterleavedElements' in those cases instead.
+gl_AMD_interleaved_elements :: Bool
+gl_AMD_interleaved_elements = member "GL_AMD_interleaved_elements" extensions
+{-# NOINLINE gl_AMD_interleaved_elements #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/AMD/multi_draw_indirect.txt AMD_multi_draw_indirect> extension supported?
+glGetAMDMultiDrawIndirect :: MonadIO m => m Bool
+glGetAMDMultiDrawIndirect = getExtensions >>= (return . member "GL_AMD_multi_draw_indirect")
+
+-- | Is the <https://www.opengl.org/registry/specs/AMD/multi_draw_indirect.txt AMD_multi_draw_indirect> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetAMDMultiDrawIndirect' in those cases instead.
+gl_AMD_multi_draw_indirect :: Bool
+gl_AMD_multi_draw_indirect = member "GL_AMD_multi_draw_indirect" extensions
+{-# NOINLINE gl_AMD_multi_draw_indirect #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/AMD/name_gen_delete.txt AMD_name_gen_delete> extension supported?
+glGetAMDNameGenDelete :: MonadIO m => m Bool
+glGetAMDNameGenDelete = getExtensions >>= (return . member "GL_AMD_name_gen_delete")
+
+-- | Is the <https://www.opengl.org/registry/specs/AMD/name_gen_delete.txt AMD_name_gen_delete> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetAMDNameGenDelete' in those cases instead.
+gl_AMD_name_gen_delete :: Bool
+gl_AMD_name_gen_delete = member "GL_AMD_name_gen_delete" extensions
+{-# NOINLINE gl_AMD_name_gen_delete #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/AMD/occlusion_query_event.txt AMD_occlusion_query_event> extension supported?
+glGetAMDOcclusionQueryEvent :: MonadIO m => m Bool
+glGetAMDOcclusionQueryEvent = getExtensions >>= (return . member "GL_AMD_occlusion_query_event")
+
+-- | Is the <https://www.opengl.org/registry/specs/AMD/occlusion_query_event.txt AMD_occlusion_query_event> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetAMDOcclusionQueryEvent' in those cases instead.
+gl_AMD_occlusion_query_event :: Bool
+gl_AMD_occlusion_query_event = member "GL_AMD_occlusion_query_event" extensions
+{-# NOINLINE gl_AMD_occlusion_query_event #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/AMD/performance_monitor.txt AMD_performance_monitor> extension supported?
+glGetAMDPerformanceMonitor :: MonadIO m => m Bool
+glGetAMDPerformanceMonitor = getExtensions >>= (return . member "GL_AMD_performance_monitor")
+
+-- | Is the <https://www.opengl.org/registry/specs/AMD/performance_monitor.txt AMD_performance_monitor> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetAMDPerformanceMonitor' in those cases instead.
+gl_AMD_performance_monitor :: Bool
+gl_AMD_performance_monitor = member "GL_AMD_performance_monitor" extensions
+{-# NOINLINE gl_AMD_performance_monitor #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/AMD/pinned_memory.txt AMD_pinned_memory> extension supported?
+glGetAMDPinnedMemory :: MonadIO m => m Bool
+glGetAMDPinnedMemory = getExtensions >>= (return . member "GL_AMD_pinned_memory")
+
+-- | Is the <https://www.opengl.org/registry/specs/AMD/pinned_memory.txt AMD_pinned_memory> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetAMDPinnedMemory' in those cases instead.
+gl_AMD_pinned_memory :: Bool
+gl_AMD_pinned_memory = member "GL_AMD_pinned_memory" extensions
+{-# NOINLINE gl_AMD_pinned_memory #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/AMD/query_buffer_object.txt AMD_query_buffer_object> extension supported?
+glGetAMDQueryBufferObject :: MonadIO m => m Bool
+glGetAMDQueryBufferObject = getExtensions >>= (return . member "GL_AMD_query_buffer_object")
+
+-- | Is the <https://www.opengl.org/registry/specs/AMD/query_buffer_object.txt AMD_query_buffer_object> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetAMDQueryBufferObject' in those cases instead.
+gl_AMD_query_buffer_object :: Bool
+gl_AMD_query_buffer_object = member "GL_AMD_query_buffer_object" extensions
+{-# NOINLINE gl_AMD_query_buffer_object #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/AMD/sample_positions.txt AMD_sample_positions> extension supported?
+glGetAMDSamplePositions :: MonadIO m => m Bool
+glGetAMDSamplePositions = getExtensions >>= (return . member "GL_AMD_sample_positions")
+
+-- | Is the <https://www.opengl.org/registry/specs/AMD/sample_positions.txt AMD_sample_positions> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetAMDSamplePositions' in those cases instead.
+gl_AMD_sample_positions :: Bool
+gl_AMD_sample_positions = member "GL_AMD_sample_positions" extensions
+{-# NOINLINE gl_AMD_sample_positions #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/AMD/seamless_cubemap_per_texture.txt AMD_seamless_cubemap_per_texture> extension supported?
+glGetAMDSeamlessCubemapPerTexture :: MonadIO m => m Bool
+glGetAMDSeamlessCubemapPerTexture = getExtensions >>= (return . member "GL_AMD_seamless_cubemap_per_texture")
+
+-- | Is the <https://www.opengl.org/registry/specs/AMD/seamless_cubemap_per_texture.txt AMD_seamless_cubemap_per_texture> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetAMDSeamlessCubemapPerTexture' in those cases instead.
+gl_AMD_seamless_cubemap_per_texture :: Bool
+gl_AMD_seamless_cubemap_per_texture = member "GL_AMD_seamless_cubemap_per_texture" extensions
+{-# NOINLINE gl_AMD_seamless_cubemap_per_texture #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/AMD/sparse_texture.txt AMD_sparse_texture> extension supported?
+glGetAMDSparseTexture :: MonadIO m => m Bool
+glGetAMDSparseTexture = getExtensions >>= (return . member "GL_AMD_sparse_texture")
+
+-- | Is the <https://www.opengl.org/registry/specs/AMD/sparse_texture.txt AMD_sparse_texture> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetAMDSparseTexture' in those cases instead.
+gl_AMD_sparse_texture :: Bool
+gl_AMD_sparse_texture = member "GL_AMD_sparse_texture" extensions
+{-# NOINLINE gl_AMD_sparse_texture #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/AMD/stencil_operation_extended.txt AMD_stencil_operation_extended> extension supported?
+glGetAMDStencilOperationExtended :: MonadIO m => m Bool
+glGetAMDStencilOperationExtended = getExtensions >>= (return . member "GL_AMD_stencil_operation_extended")
+
+-- | Is the <https://www.opengl.org/registry/specs/AMD/stencil_operation_extended.txt AMD_stencil_operation_extended> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetAMDStencilOperationExtended' in those cases instead.
+gl_AMD_stencil_operation_extended :: Bool
+gl_AMD_stencil_operation_extended = member "GL_AMD_stencil_operation_extended" extensions
+{-# NOINLINE gl_AMD_stencil_operation_extended #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/AMD/transform_feedback4.txt AMD_transform_feedback4> extension supported?
+glGetAMDTransformFeedback4 :: MonadIO m => m Bool
+glGetAMDTransformFeedback4 = getExtensions >>= (return . member "GL_AMD_transform_feedback4")
+
+-- | Is the <https://www.opengl.org/registry/specs/AMD/transform_feedback4.txt AMD_transform_feedback4> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetAMDTransformFeedback4' in those cases instead.
+gl_AMD_transform_feedback4 :: Bool
+gl_AMD_transform_feedback4 = member "GL_AMD_transform_feedback4" extensions
+{-# NOINLINE gl_AMD_transform_feedback4 #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/AMD/vertex_shader_tessellator.txt AMD_vertex_shader_tessellator> extension supported?
+glGetAMDVertexShaderTessellator :: MonadIO m => m Bool
+glGetAMDVertexShaderTessellator = getExtensions >>= (return . member "GL_AMD_vertex_shader_tessellator")
+
+-- | Is the <https://www.opengl.org/registry/specs/AMD/vertex_shader_tessellator.txt AMD_vertex_shader_tessellator> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetAMDVertexShaderTessellator' in those cases instead.
+gl_AMD_vertex_shader_tessellator :: Bool
+gl_AMD_vertex_shader_tessellator = member "GL_AMD_vertex_shader_tessellator" extensions
+{-# NOINLINE gl_AMD_vertex_shader_tessellator #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/APPLE/aux_depth_stencil.txt APPLE_aux_depth_stencil> extension supported?
+glGetAPPLEAuxDepthStencil :: MonadIO m => m Bool
+glGetAPPLEAuxDepthStencil = getExtensions >>= (return . member "GL_APPLE_aux_depth_stencil")
+
+-- | Is the <https://www.opengl.org/registry/specs/APPLE/aux_depth_stencil.txt APPLE_aux_depth_stencil> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetAPPLEAuxDepthStencil' in those cases instead.
+gl_APPLE_aux_depth_stencil :: Bool
+gl_APPLE_aux_depth_stencil = member "GL_APPLE_aux_depth_stencil" extensions
+{-# NOINLINE gl_APPLE_aux_depth_stencil #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/APPLE/client_storage.txt APPLE_client_storage> extension supported?
+glGetAPPLEClientStorage :: MonadIO m => m Bool
+glGetAPPLEClientStorage = getExtensions >>= (return . member "GL_APPLE_client_storage")
+
+-- | Is the <https://www.opengl.org/registry/specs/APPLE/client_storage.txt APPLE_client_storage> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetAPPLEClientStorage' in those cases instead.
+gl_APPLE_client_storage :: Bool
+gl_APPLE_client_storage = member "GL_APPLE_client_storage" extensions
+{-# NOINLINE gl_APPLE_client_storage #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/APPLE/element_array.txt APPLE_element_array> extension supported?
+glGetAPPLEElementArray :: MonadIO m => m Bool
+glGetAPPLEElementArray = getExtensions >>= (return . member "GL_APPLE_element_array")
+
+-- | Is the <https://www.opengl.org/registry/specs/APPLE/element_array.txt APPLE_element_array> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetAPPLEElementArray' in those cases instead.
+gl_APPLE_element_array :: Bool
+gl_APPLE_element_array = member "GL_APPLE_element_array" extensions
+{-# NOINLINE gl_APPLE_element_array #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/APPLE/fence.txt APPLE_fence> extension supported?
+glGetAPPLEFence :: MonadIO m => m Bool
+glGetAPPLEFence = getExtensions >>= (return . member "GL_APPLE_fence")
+
+-- | Is the <https://www.opengl.org/registry/specs/APPLE/fence.txt APPLE_fence> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetAPPLEFence' in those cases instead.
+gl_APPLE_fence :: Bool
+gl_APPLE_fence = member "GL_APPLE_fence" extensions
+{-# NOINLINE gl_APPLE_fence #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/APPLE/float_pixels.txt APPLE_float_pixels> extension supported?
+glGetAPPLEFloatPixels :: MonadIO m => m Bool
+glGetAPPLEFloatPixels = getExtensions >>= (return . member "GL_APPLE_float_pixels")
+
+-- | Is the <https://www.opengl.org/registry/specs/APPLE/float_pixels.txt APPLE_float_pixels> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetAPPLEFloatPixels' in those cases instead.
+gl_APPLE_float_pixels :: Bool
+gl_APPLE_float_pixels = member "GL_APPLE_float_pixels" extensions
+{-# NOINLINE gl_APPLE_float_pixels #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/APPLE/flush_buffer_range.txt APPLE_flush_buffer_range> extension supported?
+glGetAPPLEFlushBufferRange :: MonadIO m => m Bool
+glGetAPPLEFlushBufferRange = getExtensions >>= (return . member "GL_APPLE_flush_buffer_range")
+
+-- | Is the <https://www.opengl.org/registry/specs/APPLE/flush_buffer_range.txt APPLE_flush_buffer_range> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetAPPLEFlushBufferRange' in those cases instead.
+gl_APPLE_flush_buffer_range :: Bool
+gl_APPLE_flush_buffer_range = member "GL_APPLE_flush_buffer_range" extensions
+{-# NOINLINE gl_APPLE_flush_buffer_range #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/APPLE/object_purgeable.txt APPLE_object_purgeable> extension supported?
+glGetAPPLEObjectPurgeable :: MonadIO m => m Bool
+glGetAPPLEObjectPurgeable = getExtensions >>= (return . member "GL_APPLE_object_purgeable")
+
+-- | Is the <https://www.opengl.org/registry/specs/APPLE/object_purgeable.txt APPLE_object_purgeable> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetAPPLEObjectPurgeable' in those cases instead.
+gl_APPLE_object_purgeable :: Bool
+gl_APPLE_object_purgeable = member "GL_APPLE_object_purgeable" extensions
+{-# NOINLINE gl_APPLE_object_purgeable #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/APPLE/rgb_422.txt APPLE_rgb_422> extension supported?
+glGetAPPLERGB422 :: MonadIO m => m Bool
+glGetAPPLERGB422 = getExtensions >>= (return . member "GL_APPLE_rgb_422")
+
+-- | Is the <https://www.opengl.org/registry/specs/APPLE/rgb_422.txt APPLE_rgb_422> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetAPPLERGB422' in those cases instead.
+gl_APPLE_rgb_422 :: Bool
+gl_APPLE_rgb_422 = member "GL_APPLE_rgb_422" extensions
+{-# NOINLINE gl_APPLE_rgb_422 #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/APPLE/row_bytes.txt APPLE_row_bytes> extension supported?
+glGetAPPLERowBytes :: MonadIO m => m Bool
+glGetAPPLERowBytes = getExtensions >>= (return . member "GL_APPLE_row_bytes")
+
+-- | Is the <https://www.opengl.org/registry/specs/APPLE/row_bytes.txt APPLE_row_bytes> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetAPPLERowBytes' in those cases instead.
+gl_APPLE_row_bytes :: Bool
+gl_APPLE_row_bytes = member "GL_APPLE_row_bytes" extensions
+{-# NOINLINE gl_APPLE_row_bytes #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/APPLE/specular_vector.txt APPLE_specular_vector> extension supported?
+glGetAPPLESpecularVector :: MonadIO m => m Bool
+glGetAPPLESpecularVector = getExtensions >>= (return . member "GL_APPLE_specular_vector")
+
+-- | Is the <https://www.opengl.org/registry/specs/APPLE/specular_vector.txt APPLE_specular_vector> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetAPPLESpecularVector' in those cases instead.
+gl_APPLE_specular_vector :: Bool
+gl_APPLE_specular_vector = member "GL_APPLE_specular_vector" extensions
+{-# NOINLINE gl_APPLE_specular_vector #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/APPLE/texture_range.txt APPLE_texture_range> extension supported?
+glGetAPPLETextureRange :: MonadIO m => m Bool
+glGetAPPLETextureRange = getExtensions >>= (return . member "GL_APPLE_texture_range")
+
+-- | Is the <https://www.opengl.org/registry/specs/APPLE/texture_range.txt APPLE_texture_range> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetAPPLETextureRange' in those cases instead.
+gl_APPLE_texture_range :: Bool
+gl_APPLE_texture_range = member "GL_APPLE_texture_range" extensions
+{-# NOINLINE gl_APPLE_texture_range #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/APPLE/transform_hint.txt APPLE_transform_hint> extension supported?
+glGetAPPLETransformHint :: MonadIO m => m Bool
+glGetAPPLETransformHint = getExtensions >>= (return . member "GL_APPLE_transform_hint")
+
+-- | Is the <https://www.opengl.org/registry/specs/APPLE/transform_hint.txt APPLE_transform_hint> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetAPPLETransformHint' in those cases instead.
+gl_APPLE_transform_hint :: Bool
+gl_APPLE_transform_hint = member "GL_APPLE_transform_hint" extensions
+{-# NOINLINE gl_APPLE_transform_hint #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/APPLE/vertex_array_object.txt APPLE_vertex_array_object> extension supported?
+glGetAPPLEVertexArrayObject :: MonadIO m => m Bool
+glGetAPPLEVertexArrayObject = getExtensions >>= (return . member "GL_APPLE_vertex_array_object")
+
+-- | Is the <https://www.opengl.org/registry/specs/APPLE/vertex_array_object.txt APPLE_vertex_array_object> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetAPPLEVertexArrayObject' in those cases instead.
+gl_APPLE_vertex_array_object :: Bool
+gl_APPLE_vertex_array_object = member "GL_APPLE_vertex_array_object" extensions
+{-# NOINLINE gl_APPLE_vertex_array_object #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/APPLE/vertex_array_range.txt APPLE_vertex_array_range> extension supported?
+glGetAPPLEVertexArrayRange :: MonadIO m => m Bool
+glGetAPPLEVertexArrayRange = getExtensions >>= (return . member "GL_APPLE_vertex_array_range")
+
+-- | Is the <https://www.opengl.org/registry/specs/APPLE/vertex_array_range.txt APPLE_vertex_array_range> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetAPPLEVertexArrayRange' in those cases instead.
+gl_APPLE_vertex_array_range :: Bool
+gl_APPLE_vertex_array_range = member "GL_APPLE_vertex_array_range" extensions
+{-# NOINLINE gl_APPLE_vertex_array_range #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/APPLE/vertex_program_evaluators.txt APPLE_vertex_program_evaluators> extension supported?
+glGetAPPLEVertexProgramEvaluators :: MonadIO m => m Bool
+glGetAPPLEVertexProgramEvaluators = getExtensions >>= (return . member "GL_APPLE_vertex_program_evaluators")
+
+-- | Is the <https://www.opengl.org/registry/specs/APPLE/vertex_program_evaluators.txt APPLE_vertex_program_evaluators> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetAPPLEVertexProgramEvaluators' in those cases instead.
+gl_APPLE_vertex_program_evaluators :: Bool
+gl_APPLE_vertex_program_evaluators = member "GL_APPLE_vertex_program_evaluators" extensions
+{-# NOINLINE gl_APPLE_vertex_program_evaluators #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/APPLE/ycbcr_422.txt APPLE_ycbcr_422> extension supported?
+glGetAPPLEYCbCr422 :: MonadIO m => m Bool
+glGetAPPLEYCbCr422 = getExtensions >>= (return . member "GL_APPLE_ycbcr_422")
+
+-- | Is the <https://www.opengl.org/registry/specs/APPLE/ycbcr_422.txt APPLE_ycbcr_422> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetAPPLEYCbCr422' in those cases instead.
+gl_APPLE_ycbcr_422 :: Bool
+gl_APPLE_ycbcr_422 = member "GL_APPLE_ycbcr_422" extensions
+{-# NOINLINE gl_APPLE_ycbcr_422 #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/ES2_compatibility.txt ARB_ES2_compatibility> extension supported?
+glGetARBES2Compatibility :: MonadIO m => m Bool
+glGetARBES2Compatibility = getExtensions >>= (return . member "GL_ARB_ES2_compatibility")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/ES2_compatibility.txt ARB_ES2_compatibility> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBES2Compatibility' in those cases instead.
+gl_ARB_ES2_compatibility :: Bool
+gl_ARB_ES2_compatibility = member "GL_ARB_ES2_compatibility" extensions
+{-# NOINLINE gl_ARB_ES2_compatibility #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/ES3_1_compatibility.txt ARB_ES3_1_compatibility> extension supported?
+glGetARBES31Compatibility :: MonadIO m => m Bool
+glGetARBES31Compatibility = getExtensions >>= (return . member "GL_ARB_ES3_1_compatibility")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/ES3_1_compatibility.txt ARB_ES3_1_compatibility> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBES31Compatibility' in those cases instead.
+gl_ARB_ES3_1_compatibility :: Bool
+gl_ARB_ES3_1_compatibility = member "GL_ARB_ES3_1_compatibility" extensions
+{-# NOINLINE gl_ARB_ES3_1_compatibility #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/ES3_2_compatibility.txt ARB_ES3_2_compatibility> extension supported?
+glGetARBES32Compatibility :: MonadIO m => m Bool
+glGetARBES32Compatibility = getExtensions >>= (return . member "GL_ARB_ES3_2_compatibility")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/ES3_2_compatibility.txt ARB_ES3_2_compatibility> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBES32Compatibility' in those cases instead.
+gl_ARB_ES3_2_compatibility :: Bool
+gl_ARB_ES3_2_compatibility = member "GL_ARB_ES3_2_compatibility" extensions
+{-# NOINLINE gl_ARB_ES3_2_compatibility #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/ES3_compatibility.txt ARB_ES3_compatibility> extension supported?
+glGetARBES3Compatibility :: MonadIO m => m Bool
+glGetARBES3Compatibility = getExtensions >>= (return . member "GL_ARB_ES3_compatibility")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/ES3_compatibility.txt ARB_ES3_compatibility> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBES3Compatibility' in those cases instead.
+gl_ARB_ES3_compatibility :: Bool
+gl_ARB_ES3_compatibility = member "GL_ARB_ES3_compatibility" extensions
+{-# NOINLINE gl_ARB_ES3_compatibility #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/base_instance.txt ARB_base_instance> extension supported?
+glGetARBBaseInstance :: MonadIO m => m Bool
+glGetARBBaseInstance = getExtensions >>= (return . member "GL_ARB_base_instance")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/base_instance.txt ARB_base_instance> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBBaseInstance' in those cases instead.
+gl_ARB_base_instance :: Bool
+gl_ARB_base_instance = member "GL_ARB_base_instance" extensions
+{-# NOINLINE gl_ARB_base_instance #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/bindless_texture.txt ARB_bindless_texture> extension supported?
+glGetARBBindlessTexture :: MonadIO m => m Bool
+glGetARBBindlessTexture = getExtensions >>= (return . member "GL_ARB_bindless_texture")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/bindless_texture.txt ARB_bindless_texture> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBBindlessTexture' in those cases instead.
+gl_ARB_bindless_texture :: Bool
+gl_ARB_bindless_texture = member "GL_ARB_bindless_texture" extensions
+{-# NOINLINE gl_ARB_bindless_texture #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/blend_func_extended.txt ARB_blend_func_extended> extension supported?
+glGetARBBlendFuncExtended :: MonadIO m => m Bool
+glGetARBBlendFuncExtended = getExtensions >>= (return . member "GL_ARB_blend_func_extended")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/blend_func_extended.txt ARB_blend_func_extended> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBBlendFuncExtended' in those cases instead.
+gl_ARB_blend_func_extended :: Bool
+gl_ARB_blend_func_extended = member "GL_ARB_blend_func_extended" extensions
+{-# NOINLINE gl_ARB_blend_func_extended #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/buffer_storage.txt ARB_buffer_storage> extension supported?
+glGetARBBufferStorage :: MonadIO m => m Bool
+glGetARBBufferStorage = getExtensions >>= (return . member "GL_ARB_buffer_storage")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/buffer_storage.txt ARB_buffer_storage> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBBufferStorage' in those cases instead.
+gl_ARB_buffer_storage :: Bool
+gl_ARB_buffer_storage = member "GL_ARB_buffer_storage" extensions
+{-# NOINLINE gl_ARB_buffer_storage #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/cl_event.txt ARB_cl_event> extension supported?
+glGetARBCLEvent :: MonadIO m => m Bool
+glGetARBCLEvent = getExtensions >>= (return . member "GL_ARB_cl_event")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/cl_event.txt ARB_cl_event> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBCLEvent' in those cases instead.
+gl_ARB_cl_event :: Bool
+gl_ARB_cl_event = member "GL_ARB_cl_event" extensions
+{-# NOINLINE gl_ARB_cl_event #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/clear_buffer_object.txt ARB_clear_buffer_object> extension supported?
+glGetARBClearBufferObject :: MonadIO m => m Bool
+glGetARBClearBufferObject = getExtensions >>= (return . member "GL_ARB_clear_buffer_object")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/clear_buffer_object.txt ARB_clear_buffer_object> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBClearBufferObject' in those cases instead.
+gl_ARB_clear_buffer_object :: Bool
+gl_ARB_clear_buffer_object = member "GL_ARB_clear_buffer_object" extensions
+{-# NOINLINE gl_ARB_clear_buffer_object #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/clear_texture.txt ARB_clear_texture> extension supported?
+glGetARBClearTexture :: MonadIO m => m Bool
+glGetARBClearTexture = getExtensions >>= (return . member "GL_ARB_clear_texture")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/clear_texture.txt ARB_clear_texture> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBClearTexture' in those cases instead.
+gl_ARB_clear_texture :: Bool
+gl_ARB_clear_texture = member "GL_ARB_clear_texture" extensions
+{-# NOINLINE gl_ARB_clear_texture #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/clip_control.txt ARB_clip_control> extension supported?
+glGetARBClipControl :: MonadIO m => m Bool
+glGetARBClipControl = getExtensions >>= (return . member "GL_ARB_clip_control")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/clip_control.txt ARB_clip_control> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBClipControl' in those cases instead.
+gl_ARB_clip_control :: Bool
+gl_ARB_clip_control = member "GL_ARB_clip_control" extensions
+{-# NOINLINE gl_ARB_clip_control #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/color_buffer_float.txt ARB_color_buffer_float> extension supported?
+glGetARBColorBufferFloat :: MonadIO m => m Bool
+glGetARBColorBufferFloat = getExtensions >>= (return . member "GL_ARB_color_buffer_float")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/color_buffer_float.txt ARB_color_buffer_float> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBColorBufferFloat' in those cases instead.
+gl_ARB_color_buffer_float :: Bool
+gl_ARB_color_buffer_float = member "GL_ARB_color_buffer_float" extensions
+{-# NOINLINE gl_ARB_color_buffer_float #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/compressed_texture_pixel_storage.txt ARB_compressed_texture_pixel_storage> extension supported?
+glGetARBCompressedTexturePixelStorage :: MonadIO m => m Bool
+glGetARBCompressedTexturePixelStorage = getExtensions >>= (return . member "GL_ARB_compressed_texture_pixel_storage")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/compressed_texture_pixel_storage.txt ARB_compressed_texture_pixel_storage> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBCompressedTexturePixelStorage' in those cases instead.
+gl_ARB_compressed_texture_pixel_storage :: Bool
+gl_ARB_compressed_texture_pixel_storage = member "GL_ARB_compressed_texture_pixel_storage" extensions
+{-# NOINLINE gl_ARB_compressed_texture_pixel_storage #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/compute_shader.txt ARB_compute_shader> extension supported?
+glGetARBComputeShader :: MonadIO m => m Bool
+glGetARBComputeShader = getExtensions >>= (return . member "GL_ARB_compute_shader")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/compute_shader.txt ARB_compute_shader> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBComputeShader' in those cases instead.
+gl_ARB_compute_shader :: Bool
+gl_ARB_compute_shader = member "GL_ARB_compute_shader" extensions
+{-# NOINLINE gl_ARB_compute_shader #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/compute_variable_group_size.txt ARB_compute_variable_group_size> extension supported?
+glGetARBComputeVariableGroupSize :: MonadIO m => m Bool
+glGetARBComputeVariableGroupSize = getExtensions >>= (return . member "GL_ARB_compute_variable_group_size")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/compute_variable_group_size.txt ARB_compute_variable_group_size> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBComputeVariableGroupSize' in those cases instead.
+gl_ARB_compute_variable_group_size :: Bool
+gl_ARB_compute_variable_group_size = member "GL_ARB_compute_variable_group_size" extensions
+{-# NOINLINE gl_ARB_compute_variable_group_size #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/conditional_render_inverted.txt ARB_conditional_render_inverted> extension supported?
+glGetARBConditionalRenderInverted :: MonadIO m => m Bool
+glGetARBConditionalRenderInverted = getExtensions >>= (return . member "GL_ARB_conditional_render_inverted")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/conditional_render_inverted.txt ARB_conditional_render_inverted> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBConditionalRenderInverted' in those cases instead.
+gl_ARB_conditional_render_inverted :: Bool
+gl_ARB_conditional_render_inverted = member "GL_ARB_conditional_render_inverted" extensions
+{-# NOINLINE gl_ARB_conditional_render_inverted #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/copy_buffer.txt ARB_copy_buffer> extension supported?
+glGetARBCopyBuffer :: MonadIO m => m Bool
+glGetARBCopyBuffer = getExtensions >>= (return . member "GL_ARB_copy_buffer")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/copy_buffer.txt ARB_copy_buffer> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBCopyBuffer' in those cases instead.
+gl_ARB_copy_buffer :: Bool
+gl_ARB_copy_buffer = member "GL_ARB_copy_buffer" extensions
+{-# NOINLINE gl_ARB_copy_buffer #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/copy_image.txt ARB_copy_image> extension supported?
+glGetARBCopyImage :: MonadIO m => m Bool
+glGetARBCopyImage = getExtensions >>= (return . member "GL_ARB_copy_image")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/copy_image.txt ARB_copy_image> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBCopyImage' in those cases instead.
+gl_ARB_copy_image :: Bool
+gl_ARB_copy_image = member "GL_ARB_copy_image" extensions
+{-# NOINLINE gl_ARB_copy_image #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/cull_distance.txt ARB_cull_distance> extension supported?
+glGetARBCullDistance :: MonadIO m => m Bool
+glGetARBCullDistance = getExtensions >>= (return . member "GL_ARB_cull_distance")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/cull_distance.txt ARB_cull_distance> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBCullDistance' in those cases instead.
+gl_ARB_cull_distance :: Bool
+gl_ARB_cull_distance = member "GL_ARB_cull_distance" extensions
+{-# NOINLINE gl_ARB_cull_distance #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/debug_output.txt ARB_debug_output> extension supported?
+glGetARBDebugOutput :: MonadIO m => m Bool
+glGetARBDebugOutput = getExtensions >>= (return . member "GL_ARB_debug_output")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/debug_output.txt ARB_debug_output> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBDebugOutput' in those cases instead.
+gl_ARB_debug_output :: Bool
+gl_ARB_debug_output = member "GL_ARB_debug_output" extensions
+{-# NOINLINE gl_ARB_debug_output #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/depth_buffer_float.txt ARB_depth_buffer_float> extension supported?
+glGetARBDepthBufferFloat :: MonadIO m => m Bool
+glGetARBDepthBufferFloat = getExtensions >>= (return . member "GL_ARB_depth_buffer_float")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/depth_buffer_float.txt ARB_depth_buffer_float> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBDepthBufferFloat' in those cases instead.
+gl_ARB_depth_buffer_float :: Bool
+gl_ARB_depth_buffer_float = member "GL_ARB_depth_buffer_float" extensions
+{-# NOINLINE gl_ARB_depth_buffer_float #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/depth_clamp.txt ARB_depth_clamp> extension supported?
+glGetARBDepthClamp :: MonadIO m => m Bool
+glGetARBDepthClamp = getExtensions >>= (return . member "GL_ARB_depth_clamp")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/depth_clamp.txt ARB_depth_clamp> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBDepthClamp' in those cases instead.
+gl_ARB_depth_clamp :: Bool
+gl_ARB_depth_clamp = member "GL_ARB_depth_clamp" extensions
+{-# NOINLINE gl_ARB_depth_clamp #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/depth_texture.txt ARB_depth_texture> extension supported?
+glGetARBDepthTexture :: MonadIO m => m Bool
+glGetARBDepthTexture = getExtensions >>= (return . member "GL_ARB_depth_texture")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/depth_texture.txt ARB_depth_texture> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBDepthTexture' in those cases instead.
+gl_ARB_depth_texture :: Bool
+gl_ARB_depth_texture = member "GL_ARB_depth_texture" extensions
+{-# NOINLINE gl_ARB_depth_texture #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/direct_state_access.txt ARB_direct_state_access> extension supported?
+glGetARBDirectStateAccess :: MonadIO m => m Bool
+glGetARBDirectStateAccess = getExtensions >>= (return . member "GL_ARB_direct_state_access")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/direct_state_access.txt ARB_direct_state_access> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBDirectStateAccess' in those cases instead.
+gl_ARB_direct_state_access :: Bool
+gl_ARB_direct_state_access = member "GL_ARB_direct_state_access" extensions
+{-# NOINLINE gl_ARB_direct_state_access #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/draw_buffers.txt ARB_draw_buffers> extension supported?
+glGetARBDrawBuffers :: MonadIO m => m Bool
+glGetARBDrawBuffers = getExtensions >>= (return . member "GL_ARB_draw_buffers")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/draw_buffers.txt ARB_draw_buffers> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBDrawBuffers' in those cases instead.
+gl_ARB_draw_buffers :: Bool
+gl_ARB_draw_buffers = member "GL_ARB_draw_buffers" extensions
+{-# NOINLINE gl_ARB_draw_buffers #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/draw_buffers_blend.txt ARB_draw_buffers_blend> extension supported?
+glGetARBDrawBuffersBlend :: MonadIO m => m Bool
+glGetARBDrawBuffersBlend = getExtensions >>= (return . member "GL_ARB_draw_buffers_blend")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/draw_buffers_blend.txt ARB_draw_buffers_blend> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBDrawBuffersBlend' in those cases instead.
+gl_ARB_draw_buffers_blend :: Bool
+gl_ARB_draw_buffers_blend = member "GL_ARB_draw_buffers_blend" extensions
+{-# NOINLINE gl_ARB_draw_buffers_blend #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/draw_elements_base_vertex.txt ARB_draw_elements_base_vertex> extension supported?
+glGetARBDrawElementsBaseVertex :: MonadIO m => m Bool
+glGetARBDrawElementsBaseVertex = getExtensions >>= (return . member "GL_ARB_draw_elements_base_vertex")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/draw_elements_base_vertex.txt ARB_draw_elements_base_vertex> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBDrawElementsBaseVertex' in those cases instead.
+gl_ARB_draw_elements_base_vertex :: Bool
+gl_ARB_draw_elements_base_vertex = member "GL_ARB_draw_elements_base_vertex" extensions
+{-# NOINLINE gl_ARB_draw_elements_base_vertex #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/draw_indirect.txt ARB_draw_indirect> extension supported?
+glGetARBDrawIndirect :: MonadIO m => m Bool
+glGetARBDrawIndirect = getExtensions >>= (return . member "GL_ARB_draw_indirect")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/draw_indirect.txt ARB_draw_indirect> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBDrawIndirect' in those cases instead.
+gl_ARB_draw_indirect :: Bool
+gl_ARB_draw_indirect = member "GL_ARB_draw_indirect" extensions
+{-# NOINLINE gl_ARB_draw_indirect #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/draw_instanced.txt ARB_draw_instanced> extension supported?
+glGetARBDrawInstanced :: MonadIO m => m Bool
+glGetARBDrawInstanced = getExtensions >>= (return . member "GL_ARB_draw_instanced")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/draw_instanced.txt ARB_draw_instanced> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBDrawInstanced' in those cases instead.
+gl_ARB_draw_instanced :: Bool
+gl_ARB_draw_instanced = member "GL_ARB_draw_instanced" extensions
+{-# NOINLINE gl_ARB_draw_instanced #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/enhanced_layouts.txt ARB_enhanced_layouts> extension supported?
+glGetARBEnhancedLayouts :: MonadIO m => m Bool
+glGetARBEnhancedLayouts = getExtensions >>= (return . member "GL_ARB_enhanced_layouts")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/enhanced_layouts.txt ARB_enhanced_layouts> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBEnhancedLayouts' in those cases instead.
+gl_ARB_enhanced_layouts :: Bool
+gl_ARB_enhanced_layouts = member "GL_ARB_enhanced_layouts" extensions
+{-# NOINLINE gl_ARB_enhanced_layouts #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/explicit_uniform_location.txt ARB_explicit_uniform_location> extension supported?
+glGetARBExplicitUniformLocation :: MonadIO m => m Bool
+glGetARBExplicitUniformLocation = getExtensions >>= (return . member "GL_ARB_explicit_uniform_location")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/explicit_uniform_location.txt ARB_explicit_uniform_location> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBExplicitUniformLocation' in those cases instead.
+gl_ARB_explicit_uniform_location :: Bool
+gl_ARB_explicit_uniform_location = member "GL_ARB_explicit_uniform_location" extensions
+{-# NOINLINE gl_ARB_explicit_uniform_location #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/fragment_program.txt ARB_fragment_program> extension supported?
+glGetARBFragmentProgram :: MonadIO m => m Bool
+glGetARBFragmentProgram = getExtensions >>= (return . member "GL_ARB_fragment_program")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/fragment_program.txt ARB_fragment_program> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBFragmentProgram' in those cases instead.
+gl_ARB_fragment_program :: Bool
+gl_ARB_fragment_program = member "GL_ARB_fragment_program" extensions
+{-# NOINLINE gl_ARB_fragment_program #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/fragment_shader.txt ARB_fragment_shader> extension supported?
+glGetARBFragmentShader :: MonadIO m => m Bool
+glGetARBFragmentShader = getExtensions >>= (return . member "GL_ARB_fragment_shader")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/fragment_shader.txt ARB_fragment_shader> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBFragmentShader' in those cases instead.
+gl_ARB_fragment_shader :: Bool
+gl_ARB_fragment_shader = member "GL_ARB_fragment_shader" extensions
+{-# NOINLINE gl_ARB_fragment_shader #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/framebuffer_no_attachments.txt ARB_framebuffer_no_attachments> extension supported?
+glGetARBFramebufferNoAttachments :: MonadIO m => m Bool
+glGetARBFramebufferNoAttachments = getExtensions >>= (return . member "GL_ARB_framebuffer_no_attachments")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/framebuffer_no_attachments.txt ARB_framebuffer_no_attachments> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBFramebufferNoAttachments' in those cases instead.
+gl_ARB_framebuffer_no_attachments :: Bool
+gl_ARB_framebuffer_no_attachments = member "GL_ARB_framebuffer_no_attachments" extensions
+{-# NOINLINE gl_ARB_framebuffer_no_attachments #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/framebuffer_object.txt ARB_framebuffer_object> extension supported?
+glGetARBFramebufferObject :: MonadIO m => m Bool
+glGetARBFramebufferObject = getExtensions >>= (return . member "GL_ARB_framebuffer_object")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/framebuffer_object.txt ARB_framebuffer_object> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBFramebufferObject' in those cases instead.
+gl_ARB_framebuffer_object :: Bool
+gl_ARB_framebuffer_object = member "GL_ARB_framebuffer_object" extensions
+{-# NOINLINE gl_ARB_framebuffer_object #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/framebuffer_sRGB.txt ARB_framebuffer_sRGB> extension supported?
+glGetARBFramebufferSRGB :: MonadIO m => m Bool
+glGetARBFramebufferSRGB = getExtensions >>= (return . member "GL_ARB_framebuffer_sRGB")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/framebuffer_sRGB.txt ARB_framebuffer_sRGB> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBFramebufferSRGB' in those cases instead.
+gl_ARB_framebuffer_sRGB :: Bool
+gl_ARB_framebuffer_sRGB = member "GL_ARB_framebuffer_sRGB" extensions
+{-# NOINLINE gl_ARB_framebuffer_sRGB #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/geometry_shader4.txt ARB_geometry_shader4> extension supported?
+glGetARBGeometryShader4 :: MonadIO m => m Bool
+glGetARBGeometryShader4 = getExtensions >>= (return . member "GL_ARB_geometry_shader4")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/geometry_shader4.txt ARB_geometry_shader4> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBGeometryShader4' in those cases instead.
+gl_ARB_geometry_shader4 :: Bool
+gl_ARB_geometry_shader4 = member "GL_ARB_geometry_shader4" extensions
+{-# NOINLINE gl_ARB_geometry_shader4 #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/get_program_binary.txt ARB_get_program_binary> extension supported?
+glGetARBGetProgramBinary :: MonadIO m => m Bool
+glGetARBGetProgramBinary = getExtensions >>= (return . member "GL_ARB_get_program_binary")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/get_program_binary.txt ARB_get_program_binary> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBGetProgramBinary' in those cases instead.
+gl_ARB_get_program_binary :: Bool
+gl_ARB_get_program_binary = member "GL_ARB_get_program_binary" extensions
+{-# NOINLINE gl_ARB_get_program_binary #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/get_texture_sub_image.txt ARB_get_texture_sub_image> extension supported?
+glGetARBGetTextureSubImage :: MonadIO m => m Bool
+glGetARBGetTextureSubImage = getExtensions >>= (return . member "GL_ARB_get_texture_sub_image")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/get_texture_sub_image.txt ARB_get_texture_sub_image> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBGetTextureSubImage' in those cases instead.
+gl_ARB_get_texture_sub_image :: Bool
+gl_ARB_get_texture_sub_image = member "GL_ARB_get_texture_sub_image" extensions
+{-# NOINLINE gl_ARB_get_texture_sub_image #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/gl_spirv.txt ARB_gl_spirv> extension supported?
+glGetARBGlSpirv :: MonadIO m => m Bool
+glGetARBGlSpirv = getExtensions >>= (return . member "GL_ARB_gl_spirv")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/gl_spirv.txt ARB_gl_spirv> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBGlSpirv' in those cases instead.
+gl_ARB_gl_spirv :: Bool
+gl_ARB_gl_spirv = member "GL_ARB_gl_spirv" extensions
+{-# NOINLINE gl_ARB_gl_spirv #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/gpu_shader5.txt ARB_gpu_shader5> extension supported?
+glGetARBGPUShader5 :: MonadIO m => m Bool
+glGetARBGPUShader5 = getExtensions >>= (return . member "GL_ARB_gpu_shader5")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/gpu_shader5.txt ARB_gpu_shader5> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBGPUShader5' in those cases instead.
+gl_ARB_gpu_shader5 :: Bool
+gl_ARB_gpu_shader5 = member "GL_ARB_gpu_shader5" extensions
+{-# NOINLINE gl_ARB_gpu_shader5 #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt ARB_gpu_shader_fp64> extension supported?
+glGetARBGPUShaderFP64 :: MonadIO m => m Bool
+glGetARBGPUShaderFP64 = getExtensions >>= (return . member "GL_ARB_gpu_shader_fp64")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/gpu_shader_fp64.txt ARB_gpu_shader_fp64> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBGPUShaderFP64' in those cases instead.
+gl_ARB_gpu_shader_fp64 :: Bool
+gl_ARB_gpu_shader_fp64 = member "GL_ARB_gpu_shader_fp64" extensions
+{-# NOINLINE gl_ARB_gpu_shader_fp64 #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/gpu_shader_int64.txt ARB_gpu_shader_int64> extension supported?
+glGetARBGPUShaderInt64 :: MonadIO m => m Bool
+glGetARBGPUShaderInt64 = getExtensions >>= (return . member "GL_ARB_gpu_shader_int64")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/gpu_shader_int64.txt ARB_gpu_shader_int64> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBGPUShaderInt64' in those cases instead.
+gl_ARB_gpu_shader_int64 :: Bool
+gl_ARB_gpu_shader_int64 = member "GL_ARB_gpu_shader_int64" extensions
+{-# NOINLINE gl_ARB_gpu_shader_int64 #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/half_float_pixel.txt ARB_half_float_pixel> extension supported?
+glGetARBHalfFloatPixel :: MonadIO m => m Bool
+glGetARBHalfFloatPixel = getExtensions >>= (return . member "GL_ARB_half_float_pixel")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/half_float_pixel.txt ARB_half_float_pixel> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBHalfFloatPixel' in those cases instead.
+gl_ARB_half_float_pixel :: Bool
+gl_ARB_half_float_pixel = member "GL_ARB_half_float_pixel" extensions
+{-# NOINLINE gl_ARB_half_float_pixel #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/half_float_vertex.txt ARB_half_float_vertex> extension supported?
+glGetARBHalfFloatVertex :: MonadIO m => m Bool
+glGetARBHalfFloatVertex = getExtensions >>= (return . member "GL_ARB_half_float_vertex")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/half_float_vertex.txt ARB_half_float_vertex> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBHalfFloatVertex' in those cases instead.
+gl_ARB_half_float_vertex :: Bool
+gl_ARB_half_float_vertex = member "GL_ARB_half_float_vertex" extensions
+{-# NOINLINE gl_ARB_half_float_vertex #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/imaging.txt ARB_imaging> extension supported?
+glGetARBImaging :: MonadIO m => m Bool
+glGetARBImaging = getExtensions >>= (return . member "GL_ARB_imaging")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/imaging.txt ARB_imaging> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBImaging' in those cases instead.
+gl_ARB_imaging :: Bool
+gl_ARB_imaging = member "GL_ARB_imaging" extensions
+{-# NOINLINE gl_ARB_imaging #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/indirect_parameters.txt ARB_indirect_parameters> extension supported?
+glGetARBIndirectParameters :: MonadIO m => m Bool
+glGetARBIndirectParameters = getExtensions >>= (return . member "GL_ARB_indirect_parameters")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/indirect_parameters.txt ARB_indirect_parameters> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBIndirectParameters' in those cases instead.
+gl_ARB_indirect_parameters :: Bool
+gl_ARB_indirect_parameters = member "GL_ARB_indirect_parameters" extensions
+{-# NOINLINE gl_ARB_indirect_parameters #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/instanced_arrays.txt ARB_instanced_arrays> extension supported?
+glGetARBInstancedArrays :: MonadIO m => m Bool
+glGetARBInstancedArrays = getExtensions >>= (return . member "GL_ARB_instanced_arrays")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/instanced_arrays.txt ARB_instanced_arrays> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBInstancedArrays' in those cases instead.
+gl_ARB_instanced_arrays :: Bool
+gl_ARB_instanced_arrays = member "GL_ARB_instanced_arrays" extensions
+{-# NOINLINE gl_ARB_instanced_arrays #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/internalformat_query.txt ARB_internalformat_query> extension supported?
+glGetARBInternalformatQuery :: MonadIO m => m Bool
+glGetARBInternalformatQuery = getExtensions >>= (return . member "GL_ARB_internalformat_query")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/internalformat_query.txt ARB_internalformat_query> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBInternalformatQuery' in those cases instead.
+gl_ARB_internalformat_query :: Bool
+gl_ARB_internalformat_query = member "GL_ARB_internalformat_query" extensions
+{-# NOINLINE gl_ARB_internalformat_query #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/internalformat_query2.txt ARB_internalformat_query2> extension supported?
+glGetARBInternalformatQuery2 :: MonadIO m => m Bool
+glGetARBInternalformatQuery2 = getExtensions >>= (return . member "GL_ARB_internalformat_query2")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/internalformat_query2.txt ARB_internalformat_query2> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBInternalformatQuery2' in those cases instead.
+gl_ARB_internalformat_query2 :: Bool
+gl_ARB_internalformat_query2 = member "GL_ARB_internalformat_query2" extensions
+{-# NOINLINE gl_ARB_internalformat_query2 #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/invalidate_subdata.txt ARB_invalidate_subdata> extension supported?
+glGetARBInvalidateSubdata :: MonadIO m => m Bool
+glGetARBInvalidateSubdata = getExtensions >>= (return . member "GL_ARB_invalidate_subdata")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/invalidate_subdata.txt ARB_invalidate_subdata> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBInvalidateSubdata' in those cases instead.
+gl_ARB_invalidate_subdata :: Bool
+gl_ARB_invalidate_subdata = member "GL_ARB_invalidate_subdata" extensions
+{-# NOINLINE gl_ARB_invalidate_subdata #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/map_buffer_alignment.txt ARB_map_buffer_alignment> extension supported?
+glGetARBMapBufferAlignment :: MonadIO m => m Bool
+glGetARBMapBufferAlignment = getExtensions >>= (return . member "GL_ARB_map_buffer_alignment")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/map_buffer_alignment.txt ARB_map_buffer_alignment> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBMapBufferAlignment' in those cases instead.
+gl_ARB_map_buffer_alignment :: Bool
+gl_ARB_map_buffer_alignment = member "GL_ARB_map_buffer_alignment" extensions
+{-# NOINLINE gl_ARB_map_buffer_alignment #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/map_buffer_range.txt ARB_map_buffer_range> extension supported?
+glGetARBMapBufferRange :: MonadIO m => m Bool
+glGetARBMapBufferRange = getExtensions >>= (return . member "GL_ARB_map_buffer_range")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/map_buffer_range.txt ARB_map_buffer_range> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBMapBufferRange' in those cases instead.
+gl_ARB_map_buffer_range :: Bool
+gl_ARB_map_buffer_range = member "GL_ARB_map_buffer_range" extensions
+{-# NOINLINE gl_ARB_map_buffer_range #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/matrix_palette.txt ARB_matrix_palette> extension supported?
+glGetARBMatrixPalette :: MonadIO m => m Bool
+glGetARBMatrixPalette = getExtensions >>= (return . member "GL_ARB_matrix_palette")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/matrix_palette.txt ARB_matrix_palette> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBMatrixPalette' in those cases instead.
+gl_ARB_matrix_palette :: Bool
+gl_ARB_matrix_palette = member "GL_ARB_matrix_palette" extensions
+{-# NOINLINE gl_ARB_matrix_palette #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/multi_bind.txt ARB_multi_bind> extension supported?
+glGetARBMultiBind :: MonadIO m => m Bool
+glGetARBMultiBind = getExtensions >>= (return . member "GL_ARB_multi_bind")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/multi_bind.txt ARB_multi_bind> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBMultiBind' in those cases instead.
+gl_ARB_multi_bind :: Bool
+gl_ARB_multi_bind = member "GL_ARB_multi_bind" extensions
+{-# NOINLINE gl_ARB_multi_bind #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/multi_draw_indirect.txt ARB_multi_draw_indirect> extension supported?
+glGetARBMultiDrawIndirect :: MonadIO m => m Bool
+glGetARBMultiDrawIndirect = getExtensions >>= (return . member "GL_ARB_multi_draw_indirect")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/multi_draw_indirect.txt ARB_multi_draw_indirect> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBMultiDrawIndirect' in those cases instead.
+gl_ARB_multi_draw_indirect :: Bool
+gl_ARB_multi_draw_indirect = member "GL_ARB_multi_draw_indirect" extensions
+{-# NOINLINE gl_ARB_multi_draw_indirect #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/multisample.txt ARB_multisample> extension supported?
+glGetARBMultisample :: MonadIO m => m Bool
+glGetARBMultisample = getExtensions >>= (return . member "GL_ARB_multisample")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/multisample.txt ARB_multisample> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBMultisample' in those cases instead.
+gl_ARB_multisample :: Bool
+gl_ARB_multisample = member "GL_ARB_multisample" extensions
+{-# NOINLINE gl_ARB_multisample #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/multitexture.txt ARB_multitexture> extension supported?
+glGetARBMultitexture :: MonadIO m => m Bool
+glGetARBMultitexture = getExtensions >>= (return . member "GL_ARB_multitexture")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/multitexture.txt ARB_multitexture> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBMultitexture' in those cases instead.
+gl_ARB_multitexture :: Bool
+gl_ARB_multitexture = member "GL_ARB_multitexture" extensions
+{-# NOINLINE gl_ARB_multitexture #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/occlusion_query.txt ARB_occlusion_query> extension supported?
+glGetARBOcclusionQuery :: MonadIO m => m Bool
+glGetARBOcclusionQuery = getExtensions >>= (return . member "GL_ARB_occlusion_query")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/occlusion_query.txt ARB_occlusion_query> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBOcclusionQuery' in those cases instead.
+gl_ARB_occlusion_query :: Bool
+gl_ARB_occlusion_query = member "GL_ARB_occlusion_query" extensions
+{-# NOINLINE gl_ARB_occlusion_query #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/occlusion_query2.txt ARB_occlusion_query2> extension supported?
+glGetARBOcclusionQuery2 :: MonadIO m => m Bool
+glGetARBOcclusionQuery2 = getExtensions >>= (return . member "GL_ARB_occlusion_query2")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/occlusion_query2.txt ARB_occlusion_query2> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBOcclusionQuery2' in those cases instead.
+gl_ARB_occlusion_query2 :: Bool
+gl_ARB_occlusion_query2 = member "GL_ARB_occlusion_query2" extensions
+{-# NOINLINE gl_ARB_occlusion_query2 #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/parallel_shader_compile.txt ARB_parallel_shader_compile> extension supported?
+glGetARBParallelShaderCompile :: MonadIO m => m Bool
+glGetARBParallelShaderCompile = getExtensions >>= (return . member "GL_ARB_parallel_shader_compile")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/parallel_shader_compile.txt ARB_parallel_shader_compile> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBParallelShaderCompile' in those cases instead.
+gl_ARB_parallel_shader_compile :: Bool
+gl_ARB_parallel_shader_compile = member "GL_ARB_parallel_shader_compile" extensions
+{-# NOINLINE gl_ARB_parallel_shader_compile #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/pipeline_statistics_query.txt ARB_pipeline_statistics_query> extension supported?
+glGetARBPipelineStatisticsQuery :: MonadIO m => m Bool
+glGetARBPipelineStatisticsQuery = getExtensions >>= (return . member "GL_ARB_pipeline_statistics_query")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/pipeline_statistics_query.txt ARB_pipeline_statistics_query> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBPipelineStatisticsQuery' in those cases instead.
+gl_ARB_pipeline_statistics_query :: Bool
+gl_ARB_pipeline_statistics_query = member "GL_ARB_pipeline_statistics_query" extensions
+{-# NOINLINE gl_ARB_pipeline_statistics_query #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/pixel_buffer_object.txt ARB_pixel_buffer_object> extension supported?
+glGetARBPixelBufferObject :: MonadIO m => m Bool
+glGetARBPixelBufferObject = getExtensions >>= (return . member "GL_ARB_pixel_buffer_object")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/pixel_buffer_object.txt ARB_pixel_buffer_object> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBPixelBufferObject' in those cases instead.
+gl_ARB_pixel_buffer_object :: Bool
+gl_ARB_pixel_buffer_object = member "GL_ARB_pixel_buffer_object" extensions
+{-# NOINLINE gl_ARB_pixel_buffer_object #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/point_parameters.txt ARB_point_parameters> extension supported?
+glGetARBPointParameters :: MonadIO m => m Bool
+glGetARBPointParameters = getExtensions >>= (return . member "GL_ARB_point_parameters")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/point_parameters.txt ARB_point_parameters> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBPointParameters' in those cases instead.
+gl_ARB_point_parameters :: Bool
+gl_ARB_point_parameters = member "GL_ARB_point_parameters" extensions
+{-# NOINLINE gl_ARB_point_parameters #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/point_sprite.txt ARB_point_sprite> extension supported?
+glGetARBPointSprite :: MonadIO m => m Bool
+glGetARBPointSprite = getExtensions >>= (return . member "GL_ARB_point_sprite")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/point_sprite.txt ARB_point_sprite> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBPointSprite' in those cases instead.
+gl_ARB_point_sprite :: Bool
+gl_ARB_point_sprite = member "GL_ARB_point_sprite" extensions
+{-# NOINLINE gl_ARB_point_sprite #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/polygon_offset_clamp.txt ARB_polygon_offset_clamp> extension supported?
+glGetARBPolygonOffsetClamp :: MonadIO m => m Bool
+glGetARBPolygonOffsetClamp = getExtensions >>= (return . member "GL_ARB_polygon_offset_clamp")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/polygon_offset_clamp.txt ARB_polygon_offset_clamp> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBPolygonOffsetClamp' in those cases instead.
+gl_ARB_polygon_offset_clamp :: Bool
+gl_ARB_polygon_offset_clamp = member "GL_ARB_polygon_offset_clamp" extensions
+{-# NOINLINE gl_ARB_polygon_offset_clamp #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/program_interface_query.txt ARB_program_interface_query> extension supported?
+glGetARBProgramInterfaceQuery :: MonadIO m => m Bool
+glGetARBProgramInterfaceQuery = getExtensions >>= (return . member "GL_ARB_program_interface_query")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/program_interface_query.txt ARB_program_interface_query> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBProgramInterfaceQuery' in those cases instead.
+gl_ARB_program_interface_query :: Bool
+gl_ARB_program_interface_query = member "GL_ARB_program_interface_query" extensions
+{-# NOINLINE gl_ARB_program_interface_query #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/provoking_vertex.txt ARB_provoking_vertex> extension supported?
+glGetARBProvokingVertex :: MonadIO m => m Bool
+glGetARBProvokingVertex = getExtensions >>= (return . member "GL_ARB_provoking_vertex")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/provoking_vertex.txt ARB_provoking_vertex> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBProvokingVertex' in those cases instead.
+gl_ARB_provoking_vertex :: Bool
+gl_ARB_provoking_vertex = member "GL_ARB_provoking_vertex" extensions
+{-# NOINLINE gl_ARB_provoking_vertex #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/query_buffer_object.txt ARB_query_buffer_object> extension supported?
+glGetARBQueryBufferObject :: MonadIO m => m Bool
+glGetARBQueryBufferObject = getExtensions >>= (return . member "GL_ARB_query_buffer_object")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/query_buffer_object.txt ARB_query_buffer_object> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBQueryBufferObject' in those cases instead.
+gl_ARB_query_buffer_object :: Bool
+gl_ARB_query_buffer_object = member "GL_ARB_query_buffer_object" extensions
+{-# NOINLINE gl_ARB_query_buffer_object #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/robustness.txt ARB_robustness> extension supported?
+glGetARBRobustness :: MonadIO m => m Bool
+glGetARBRobustness = getExtensions >>= (return . member "GL_ARB_robustness")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/robustness.txt ARB_robustness> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBRobustness' in those cases instead.
+gl_ARB_robustness :: Bool
+gl_ARB_robustness = member "GL_ARB_robustness" extensions
+{-# NOINLINE gl_ARB_robustness #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/sample_locations.txt ARB_sample_locations> extension supported?
+glGetARBSampleLocations :: MonadIO m => m Bool
+glGetARBSampleLocations = getExtensions >>= (return . member "GL_ARB_sample_locations")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/sample_locations.txt ARB_sample_locations> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBSampleLocations' in those cases instead.
+gl_ARB_sample_locations :: Bool
+gl_ARB_sample_locations = member "GL_ARB_sample_locations" extensions
+{-# NOINLINE gl_ARB_sample_locations #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/sample_shading.txt ARB_sample_shading> extension supported?
+glGetARBSampleShading :: MonadIO m => m Bool
+glGetARBSampleShading = getExtensions >>= (return . member "GL_ARB_sample_shading")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/sample_shading.txt ARB_sample_shading> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBSampleShading' in those cases instead.
+gl_ARB_sample_shading :: Bool
+gl_ARB_sample_shading = member "GL_ARB_sample_shading" extensions
+{-# NOINLINE gl_ARB_sample_shading #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/sampler_objects.txt ARB_sampler_objects> extension supported?
+glGetARBSamplerObjects :: MonadIO m => m Bool
+glGetARBSamplerObjects = getExtensions >>= (return . member "GL_ARB_sampler_objects")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/sampler_objects.txt ARB_sampler_objects> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBSamplerObjects' in those cases instead.
+gl_ARB_sampler_objects :: Bool
+gl_ARB_sampler_objects = member "GL_ARB_sampler_objects" extensions
+{-# NOINLINE gl_ARB_sampler_objects #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/seamless_cube_map.txt ARB_seamless_cube_map> extension supported?
+glGetARBSeamlessCubeMap :: MonadIO m => m Bool
+glGetARBSeamlessCubeMap = getExtensions >>= (return . member "GL_ARB_seamless_cube_map")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/seamless_cube_map.txt ARB_seamless_cube_map> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBSeamlessCubeMap' in those cases instead.
+gl_ARB_seamless_cube_map :: Bool
+gl_ARB_seamless_cube_map = member "GL_ARB_seamless_cube_map" extensions
+{-# NOINLINE gl_ARB_seamless_cube_map #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/seamless_cubemap_per_texture.txt ARB_seamless_cubemap_per_texture> extension supported?
+glGetARBSeamlessCubemapPerTexture :: MonadIO m => m Bool
+glGetARBSeamlessCubemapPerTexture = getExtensions >>= (return . member "GL_ARB_seamless_cubemap_per_texture")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/seamless_cubemap_per_texture.txt ARB_seamless_cubemap_per_texture> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBSeamlessCubemapPerTexture' in those cases instead.
+gl_ARB_seamless_cubemap_per_texture :: Bool
+gl_ARB_seamless_cubemap_per_texture = member "GL_ARB_seamless_cubemap_per_texture" extensions
+{-# NOINLINE gl_ARB_seamless_cubemap_per_texture #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt ARB_separate_shader_objects> extension supported?
+glGetARBSeparateShaderObjects :: MonadIO m => m Bool
+glGetARBSeparateShaderObjects = getExtensions >>= (return . member "GL_ARB_separate_shader_objects")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt ARB_separate_shader_objects> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBSeparateShaderObjects' in those cases instead.
+gl_ARB_separate_shader_objects :: Bool
+gl_ARB_separate_shader_objects = member "GL_ARB_separate_shader_objects" extensions
+{-# NOINLINE gl_ARB_separate_shader_objects #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/shader_atomic_counters.txt ARB_shader_atomic_counters> extension supported?
+glGetARBShaderAtomicCounters :: MonadIO m => m Bool
+glGetARBShaderAtomicCounters = getExtensions >>= (return . member "GL_ARB_shader_atomic_counters")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/shader_atomic_counters.txt ARB_shader_atomic_counters> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBShaderAtomicCounters' in those cases instead.
+gl_ARB_shader_atomic_counters :: Bool
+gl_ARB_shader_atomic_counters = member "GL_ARB_shader_atomic_counters" extensions
+{-# NOINLINE gl_ARB_shader_atomic_counters #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/shader_image_load_store.txt ARB_shader_image_load_store> extension supported?
+glGetARBShaderImageLoadStore :: MonadIO m => m Bool
+glGetARBShaderImageLoadStore = getExtensions >>= (return . member "GL_ARB_shader_image_load_store")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/shader_image_load_store.txt ARB_shader_image_load_store> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBShaderImageLoadStore' in those cases instead.
+gl_ARB_shader_image_load_store :: Bool
+gl_ARB_shader_image_load_store = member "GL_ARB_shader_image_load_store" extensions
+{-# NOINLINE gl_ARB_shader_image_load_store #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/shader_objects.txt ARB_shader_objects> extension supported?
+glGetARBShaderObjects :: MonadIO m => m Bool
+glGetARBShaderObjects = getExtensions >>= (return . member "GL_ARB_shader_objects")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/shader_objects.txt ARB_shader_objects> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBShaderObjects' in those cases instead.
+gl_ARB_shader_objects :: Bool
+gl_ARB_shader_objects = member "GL_ARB_shader_objects" extensions
+{-# NOINLINE gl_ARB_shader_objects #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/shader_storage_buffer_object.txt ARB_shader_storage_buffer_object> extension supported?
+glGetARBShaderStorageBufferObject :: MonadIO m => m Bool
+glGetARBShaderStorageBufferObject = getExtensions >>= (return . member "GL_ARB_shader_storage_buffer_object")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/shader_storage_buffer_object.txt ARB_shader_storage_buffer_object> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBShaderStorageBufferObject' in those cases instead.
+gl_ARB_shader_storage_buffer_object :: Bool
+gl_ARB_shader_storage_buffer_object = member "GL_ARB_shader_storage_buffer_object" extensions
+{-# NOINLINE gl_ARB_shader_storage_buffer_object #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/shader_subroutine.txt ARB_shader_subroutine> extension supported?
+glGetARBShaderSubroutine :: MonadIO m => m Bool
+glGetARBShaderSubroutine = getExtensions >>= (return . member "GL_ARB_shader_subroutine")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/shader_subroutine.txt ARB_shader_subroutine> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBShaderSubroutine' in those cases instead.
+gl_ARB_shader_subroutine :: Bool
+gl_ARB_shader_subroutine = member "GL_ARB_shader_subroutine" extensions
+{-# NOINLINE gl_ARB_shader_subroutine #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/shading_language_100.txt ARB_shading_language_100> extension supported?
+glGetARBShadingLanguage100 :: MonadIO m => m Bool
+glGetARBShadingLanguage100 = getExtensions >>= (return . member "GL_ARB_shading_language_100")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/shading_language_100.txt ARB_shading_language_100> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBShadingLanguage100' in those cases instead.
+gl_ARB_shading_language_100 :: Bool
+gl_ARB_shading_language_100 = member "GL_ARB_shading_language_100" extensions
+{-# NOINLINE gl_ARB_shading_language_100 #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/shading_language_include.txt ARB_shading_language_include> extension supported?
+glGetARBShadingLanguageInclude :: MonadIO m => m Bool
+glGetARBShadingLanguageInclude = getExtensions >>= (return . member "GL_ARB_shading_language_include")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/shading_language_include.txt ARB_shading_language_include> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBShadingLanguageInclude' in those cases instead.
+gl_ARB_shading_language_include :: Bool
+gl_ARB_shading_language_include = member "GL_ARB_shading_language_include" extensions
+{-# NOINLINE gl_ARB_shading_language_include #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/shadow.txt ARB_shadow> extension supported?
+glGetARBShadow :: MonadIO m => m Bool
+glGetARBShadow = getExtensions >>= (return . member "GL_ARB_shadow")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/shadow.txt ARB_shadow> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBShadow' in those cases instead.
+gl_ARB_shadow :: Bool
+gl_ARB_shadow = member "GL_ARB_shadow" extensions
+{-# NOINLINE gl_ARB_shadow #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/shadow_ambient.txt ARB_shadow_ambient> extension supported?
+glGetARBShadowAmbient :: MonadIO m => m Bool
+glGetARBShadowAmbient = getExtensions >>= (return . member "GL_ARB_shadow_ambient")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/shadow_ambient.txt ARB_shadow_ambient> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBShadowAmbient' in those cases instead.
+gl_ARB_shadow_ambient :: Bool
+gl_ARB_shadow_ambient = member "GL_ARB_shadow_ambient" extensions
+{-# NOINLINE gl_ARB_shadow_ambient #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/sparse_buffer.txt ARB_sparse_buffer> extension supported?
+glGetARBSparseBuffer :: MonadIO m => m Bool
+glGetARBSparseBuffer = getExtensions >>= (return . member "GL_ARB_sparse_buffer")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/sparse_buffer.txt ARB_sparse_buffer> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBSparseBuffer' in those cases instead.
+gl_ARB_sparse_buffer :: Bool
+gl_ARB_sparse_buffer = member "GL_ARB_sparse_buffer" extensions
+{-# NOINLINE gl_ARB_sparse_buffer #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/sparse_texture.txt ARB_sparse_texture> extension supported?
+glGetARBSparseTexture :: MonadIO m => m Bool
+glGetARBSparseTexture = getExtensions >>= (return . member "GL_ARB_sparse_texture")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/sparse_texture.txt ARB_sparse_texture> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBSparseTexture' in those cases instead.
+gl_ARB_sparse_texture :: Bool
+gl_ARB_sparse_texture = member "GL_ARB_sparse_texture" extensions
+{-# NOINLINE gl_ARB_sparse_texture #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/spirv_extensions.txt ARB_spirv_extensions> extension supported?
+glGetARBSpirvExtensions :: MonadIO m => m Bool
+glGetARBSpirvExtensions = getExtensions >>= (return . member "GL_ARB_spirv_extensions")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/spirv_extensions.txt ARB_spirv_extensions> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBSpirvExtensions' in those cases instead.
+gl_ARB_spirv_extensions :: Bool
+gl_ARB_spirv_extensions = member "GL_ARB_spirv_extensions" extensions
+{-# NOINLINE gl_ARB_spirv_extensions #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/stencil_texturing.txt ARB_stencil_texturing> extension supported?
+glGetARBStencilTexturing :: MonadIO m => m Bool
+glGetARBStencilTexturing = getExtensions >>= (return . member "GL_ARB_stencil_texturing")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/stencil_texturing.txt ARB_stencil_texturing> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBStencilTexturing' in those cases instead.
+gl_ARB_stencil_texturing :: Bool
+gl_ARB_stencil_texturing = member "GL_ARB_stencil_texturing" extensions
+{-# NOINLINE gl_ARB_stencil_texturing #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/sync.txt ARB_sync> extension supported?
+glGetARBSync :: MonadIO m => m Bool
+glGetARBSync = getExtensions >>= (return . member "GL_ARB_sync")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/sync.txt ARB_sync> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBSync' in those cases instead.
+gl_ARB_sync :: Bool
+gl_ARB_sync = member "GL_ARB_sync" extensions
+{-# NOINLINE gl_ARB_sync #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/tessellation_shader.txt ARB_tessellation_shader> extension supported?
+glGetARBTessellationShader :: MonadIO m => m Bool
+glGetARBTessellationShader = getExtensions >>= (return . member "GL_ARB_tessellation_shader")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/tessellation_shader.txt ARB_tessellation_shader> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBTessellationShader' in those cases instead.
+gl_ARB_tessellation_shader :: Bool
+gl_ARB_tessellation_shader = member "GL_ARB_tessellation_shader" extensions
+{-# NOINLINE gl_ARB_tessellation_shader #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/texture_barrier.txt ARB_texture_barrier> extension supported?
+glGetARBTextureBarrier :: MonadIO m => m Bool
+glGetARBTextureBarrier = getExtensions >>= (return . member "GL_ARB_texture_barrier")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/texture_barrier.txt ARB_texture_barrier> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBTextureBarrier' in those cases instead.
+gl_ARB_texture_barrier :: Bool
+gl_ARB_texture_barrier = member "GL_ARB_texture_barrier" extensions
+{-# NOINLINE gl_ARB_texture_barrier #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/texture_border_clamp.txt ARB_texture_border_clamp> extension supported?
+glGetARBTextureBorderClamp :: MonadIO m => m Bool
+glGetARBTextureBorderClamp = getExtensions >>= (return . member "GL_ARB_texture_border_clamp")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/texture_border_clamp.txt ARB_texture_border_clamp> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBTextureBorderClamp' in those cases instead.
+gl_ARB_texture_border_clamp :: Bool
+gl_ARB_texture_border_clamp = member "GL_ARB_texture_border_clamp" extensions
+{-# NOINLINE gl_ARB_texture_border_clamp #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/texture_buffer_object.txt ARB_texture_buffer_object> extension supported?
+glGetARBTextureBufferObject :: MonadIO m => m Bool
+glGetARBTextureBufferObject = getExtensions >>= (return . member "GL_ARB_texture_buffer_object")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/texture_buffer_object.txt ARB_texture_buffer_object> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBTextureBufferObject' in those cases instead.
+gl_ARB_texture_buffer_object :: Bool
+gl_ARB_texture_buffer_object = member "GL_ARB_texture_buffer_object" extensions
+{-# NOINLINE gl_ARB_texture_buffer_object #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/texture_buffer_object_rgb32.txt ARB_texture_buffer_object_rgb32> extension supported?
+glGetARBTextureBufferObjectRGB32 :: MonadIO m => m Bool
+glGetARBTextureBufferObjectRGB32 = getExtensions >>= (return . member "GL_ARB_texture_buffer_object_rgb32")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/texture_buffer_object_rgb32.txt ARB_texture_buffer_object_rgb32> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBTextureBufferObjectRGB32' in those cases instead.
+gl_ARB_texture_buffer_object_rgb32 :: Bool
+gl_ARB_texture_buffer_object_rgb32 = member "GL_ARB_texture_buffer_object_rgb32" extensions
+{-# NOINLINE gl_ARB_texture_buffer_object_rgb32 #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/texture_buffer_range.txt ARB_texture_buffer_range> extension supported?
+glGetARBTextureBufferRange :: MonadIO m => m Bool
+glGetARBTextureBufferRange = getExtensions >>= (return . member "GL_ARB_texture_buffer_range")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/texture_buffer_range.txt ARB_texture_buffer_range> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBTextureBufferRange' in those cases instead.
+gl_ARB_texture_buffer_range :: Bool
+gl_ARB_texture_buffer_range = member "GL_ARB_texture_buffer_range" extensions
+{-# NOINLINE gl_ARB_texture_buffer_range #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/texture_compression.txt ARB_texture_compression> extension supported?
+glGetARBTextureCompression :: MonadIO m => m Bool
+glGetARBTextureCompression = getExtensions >>= (return . member "GL_ARB_texture_compression")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/texture_compression.txt ARB_texture_compression> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBTextureCompression' in those cases instead.
+gl_ARB_texture_compression :: Bool
+gl_ARB_texture_compression = member "GL_ARB_texture_compression" extensions
+{-# NOINLINE gl_ARB_texture_compression #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/texture_compression_bptc.txt ARB_texture_compression_bptc> extension supported?
+glGetARBTextureCompressionBPTC :: MonadIO m => m Bool
+glGetARBTextureCompressionBPTC = getExtensions >>= (return . member "GL_ARB_texture_compression_bptc")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/texture_compression_bptc.txt ARB_texture_compression_bptc> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBTextureCompressionBPTC' in those cases instead.
+gl_ARB_texture_compression_bptc :: Bool
+gl_ARB_texture_compression_bptc = member "GL_ARB_texture_compression_bptc" extensions
+{-# NOINLINE gl_ARB_texture_compression_bptc #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/texture_compression_rgtc.txt ARB_texture_compression_rgtc> extension supported?
+glGetARBTextureCompressionRGTC :: MonadIO m => m Bool
+glGetARBTextureCompressionRGTC = getExtensions >>= (return . member "GL_ARB_texture_compression_rgtc")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/texture_compression_rgtc.txt ARB_texture_compression_rgtc> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBTextureCompressionRGTC' in those cases instead.
+gl_ARB_texture_compression_rgtc :: Bool
+gl_ARB_texture_compression_rgtc = member "GL_ARB_texture_compression_rgtc" extensions
+{-# NOINLINE gl_ARB_texture_compression_rgtc #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/texture_cube_map.txt ARB_texture_cube_map> extension supported?
+glGetARBTextureCubeMap :: MonadIO m => m Bool
+glGetARBTextureCubeMap = getExtensions >>= (return . member "GL_ARB_texture_cube_map")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/texture_cube_map.txt ARB_texture_cube_map> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBTextureCubeMap' in those cases instead.
+gl_ARB_texture_cube_map :: Bool
+gl_ARB_texture_cube_map = member "GL_ARB_texture_cube_map" extensions
+{-# NOINLINE gl_ARB_texture_cube_map #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/texture_cube_map_array.txt ARB_texture_cube_map_array> extension supported?
+glGetARBTextureCubeMapArray :: MonadIO m => m Bool
+glGetARBTextureCubeMapArray = getExtensions >>= (return . member "GL_ARB_texture_cube_map_array")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/texture_cube_map_array.txt ARB_texture_cube_map_array> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBTextureCubeMapArray' in those cases instead.
+gl_ARB_texture_cube_map_array :: Bool
+gl_ARB_texture_cube_map_array = member "GL_ARB_texture_cube_map_array" extensions
+{-# NOINLINE gl_ARB_texture_cube_map_array #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/texture_env_combine.txt ARB_texture_env_combine> extension supported?
+glGetARBTextureEnvCombine :: MonadIO m => m Bool
+glGetARBTextureEnvCombine = getExtensions >>= (return . member "GL_ARB_texture_env_combine")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/texture_env_combine.txt ARB_texture_env_combine> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBTextureEnvCombine' in those cases instead.
+gl_ARB_texture_env_combine :: Bool
+gl_ARB_texture_env_combine = member "GL_ARB_texture_env_combine" extensions
+{-# NOINLINE gl_ARB_texture_env_combine #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/texture_env_dot3.txt ARB_texture_env_dot3> extension supported?
+glGetARBTextureEnvDot3 :: MonadIO m => m Bool
+glGetARBTextureEnvDot3 = getExtensions >>= (return . member "GL_ARB_texture_env_dot3")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/texture_env_dot3.txt ARB_texture_env_dot3> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBTextureEnvDot3' in those cases instead.
+gl_ARB_texture_env_dot3 :: Bool
+gl_ARB_texture_env_dot3 = member "GL_ARB_texture_env_dot3" extensions
+{-# NOINLINE gl_ARB_texture_env_dot3 #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/texture_filter_anisotropic.txt ARB_texture_filter_anisotropic> extension supported?
+glGetARBTextureFilterAnisotropic :: MonadIO m => m Bool
+glGetARBTextureFilterAnisotropic = getExtensions >>= (return . member "GL_ARB_texture_filter_anisotropic")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/texture_filter_anisotropic.txt ARB_texture_filter_anisotropic> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBTextureFilterAnisotropic' in those cases instead.
+gl_ARB_texture_filter_anisotropic :: Bool
+gl_ARB_texture_filter_anisotropic = member "GL_ARB_texture_filter_anisotropic" extensions
+{-# NOINLINE gl_ARB_texture_filter_anisotropic #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/texture_filter_minmax.txt ARB_texture_filter_minmax> extension supported?
+glGetARBTextureFilterMinmax :: MonadIO m => m Bool
+glGetARBTextureFilterMinmax = getExtensions >>= (return . member "GL_ARB_texture_filter_minmax")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/texture_filter_minmax.txt ARB_texture_filter_minmax> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBTextureFilterMinmax' in those cases instead.
+gl_ARB_texture_filter_minmax :: Bool
+gl_ARB_texture_filter_minmax = member "GL_ARB_texture_filter_minmax" extensions
+{-# NOINLINE gl_ARB_texture_filter_minmax #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/texture_float.txt ARB_texture_float> extension supported?
+glGetARBTextureFloat :: MonadIO m => m Bool
+glGetARBTextureFloat = getExtensions >>= (return . member "GL_ARB_texture_float")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/texture_float.txt ARB_texture_float> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBTextureFloat' in those cases instead.
+gl_ARB_texture_float :: Bool
+gl_ARB_texture_float = member "GL_ARB_texture_float" extensions
+{-# NOINLINE gl_ARB_texture_float #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/texture_gather.txt ARB_texture_gather> extension supported?
+glGetARBTextureGather :: MonadIO m => m Bool
+glGetARBTextureGather = getExtensions >>= (return . member "GL_ARB_texture_gather")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/texture_gather.txt ARB_texture_gather> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBTextureGather' in those cases instead.
+gl_ARB_texture_gather :: Bool
+gl_ARB_texture_gather = member "GL_ARB_texture_gather" extensions
+{-# NOINLINE gl_ARB_texture_gather #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/texture_mirror_clamp_to_edge.txt ARB_texture_mirror_clamp_to_edge> extension supported?
+glGetARBTextureMirrorClampToEdge :: MonadIO m => m Bool
+glGetARBTextureMirrorClampToEdge = getExtensions >>= (return . member "GL_ARB_texture_mirror_clamp_to_edge")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/texture_mirror_clamp_to_edge.txt ARB_texture_mirror_clamp_to_edge> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBTextureMirrorClampToEdge' in those cases instead.
+gl_ARB_texture_mirror_clamp_to_edge :: Bool
+gl_ARB_texture_mirror_clamp_to_edge = member "GL_ARB_texture_mirror_clamp_to_edge" extensions
+{-# NOINLINE gl_ARB_texture_mirror_clamp_to_edge #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/texture_mirrored_repeat.txt ARB_texture_mirrored_repeat> extension supported?
+glGetARBTextureMirroredRepeat :: MonadIO m => m Bool
+glGetARBTextureMirroredRepeat = getExtensions >>= (return . member "GL_ARB_texture_mirrored_repeat")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/texture_mirrored_repeat.txt ARB_texture_mirrored_repeat> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBTextureMirroredRepeat' in those cases instead.
+gl_ARB_texture_mirrored_repeat :: Bool
+gl_ARB_texture_mirrored_repeat = member "GL_ARB_texture_mirrored_repeat" extensions
+{-# NOINLINE gl_ARB_texture_mirrored_repeat #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/texture_multisample.txt ARB_texture_multisample> extension supported?
+glGetARBTextureMultisample :: MonadIO m => m Bool
+glGetARBTextureMultisample = getExtensions >>= (return . member "GL_ARB_texture_multisample")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/texture_multisample.txt ARB_texture_multisample> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBTextureMultisample' in those cases instead.
+gl_ARB_texture_multisample :: Bool
+gl_ARB_texture_multisample = member "GL_ARB_texture_multisample" extensions
+{-# NOINLINE gl_ARB_texture_multisample #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/texture_rectangle.txt ARB_texture_rectangle> extension supported?
+glGetARBTextureRectangle :: MonadIO m => m Bool
+glGetARBTextureRectangle = getExtensions >>= (return . member "GL_ARB_texture_rectangle")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/texture_rectangle.txt ARB_texture_rectangle> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBTextureRectangle' in those cases instead.
+gl_ARB_texture_rectangle :: Bool
+gl_ARB_texture_rectangle = member "GL_ARB_texture_rectangle" extensions
+{-# NOINLINE gl_ARB_texture_rectangle #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/texture_rg.txt ARB_texture_rg> extension supported?
+glGetARBTextureRG :: MonadIO m => m Bool
+glGetARBTextureRG = getExtensions >>= (return . member "GL_ARB_texture_rg")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/texture_rg.txt ARB_texture_rg> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBTextureRG' in those cases instead.
+gl_ARB_texture_rg :: Bool
+gl_ARB_texture_rg = member "GL_ARB_texture_rg" extensions
+{-# NOINLINE gl_ARB_texture_rg #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/texture_rgb10_a2ui.txt ARB_texture_rgb10_a2ui> extension supported?
+glGetARBTextureRGB10A2UI :: MonadIO m => m Bool
+glGetARBTextureRGB10A2UI = getExtensions >>= (return . member "GL_ARB_texture_rgb10_a2ui")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/texture_rgb10_a2ui.txt ARB_texture_rgb10_a2ui> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBTextureRGB10A2UI' in those cases instead.
+gl_ARB_texture_rgb10_a2ui :: Bool
+gl_ARB_texture_rgb10_a2ui = member "GL_ARB_texture_rgb10_a2ui" extensions
+{-# NOINLINE gl_ARB_texture_rgb10_a2ui #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/texture_stencil8.txt ARB_texture_stencil8> extension supported?
+glGetARBTextureStencil8 :: MonadIO m => m Bool
+glGetARBTextureStencil8 = getExtensions >>= (return . member "GL_ARB_texture_stencil8")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/texture_stencil8.txt ARB_texture_stencil8> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBTextureStencil8' in those cases instead.
+gl_ARB_texture_stencil8 :: Bool
+gl_ARB_texture_stencil8 = member "GL_ARB_texture_stencil8" extensions
+{-# NOINLINE gl_ARB_texture_stencil8 #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/texture_storage.txt ARB_texture_storage> extension supported?
+glGetARBTextureStorage :: MonadIO m => m Bool
+glGetARBTextureStorage = getExtensions >>= (return . member "GL_ARB_texture_storage")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/texture_storage.txt ARB_texture_storage> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBTextureStorage' in those cases instead.
+gl_ARB_texture_storage :: Bool
+gl_ARB_texture_storage = member "GL_ARB_texture_storage" extensions
+{-# NOINLINE gl_ARB_texture_storage #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/texture_storage_multisample.txt ARB_texture_storage_multisample> extension supported?
+glGetARBTextureStorageMultisample :: MonadIO m => m Bool
+glGetARBTextureStorageMultisample = getExtensions >>= (return . member "GL_ARB_texture_storage_multisample")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/texture_storage_multisample.txt ARB_texture_storage_multisample> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBTextureStorageMultisample' in those cases instead.
+gl_ARB_texture_storage_multisample :: Bool
+gl_ARB_texture_storage_multisample = member "GL_ARB_texture_storage_multisample" extensions
+{-# NOINLINE gl_ARB_texture_storage_multisample #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/texture_swizzle.txt ARB_texture_swizzle> extension supported?
+glGetARBTextureSwizzle :: MonadIO m => m Bool
+glGetARBTextureSwizzle = getExtensions >>= (return . member "GL_ARB_texture_swizzle")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/texture_swizzle.txt ARB_texture_swizzle> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBTextureSwizzle' in those cases instead.
+gl_ARB_texture_swizzle :: Bool
+gl_ARB_texture_swizzle = member "GL_ARB_texture_swizzle" extensions
+{-# NOINLINE gl_ARB_texture_swizzle #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/texture_view.txt ARB_texture_view> extension supported?
+glGetARBTextureView :: MonadIO m => m Bool
+glGetARBTextureView = getExtensions >>= (return . member "GL_ARB_texture_view")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/texture_view.txt ARB_texture_view> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBTextureView' in those cases instead.
+gl_ARB_texture_view :: Bool
+gl_ARB_texture_view = member "GL_ARB_texture_view" extensions
+{-# NOINLINE gl_ARB_texture_view #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/timer_query.txt ARB_timer_query> extension supported?
+glGetARBTimerQuery :: MonadIO m => m Bool
+glGetARBTimerQuery = getExtensions >>= (return . member "GL_ARB_timer_query")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/timer_query.txt ARB_timer_query> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBTimerQuery' in those cases instead.
+gl_ARB_timer_query :: Bool
+gl_ARB_timer_query = member "GL_ARB_timer_query" extensions
+{-# NOINLINE gl_ARB_timer_query #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/transform_feedback2.txt ARB_transform_feedback2> extension supported?
+glGetARBTransformFeedback2 :: MonadIO m => m Bool
+glGetARBTransformFeedback2 = getExtensions >>= (return . member "GL_ARB_transform_feedback2")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/transform_feedback2.txt ARB_transform_feedback2> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBTransformFeedback2' in those cases instead.
+gl_ARB_transform_feedback2 :: Bool
+gl_ARB_transform_feedback2 = member "GL_ARB_transform_feedback2" extensions
+{-# NOINLINE gl_ARB_transform_feedback2 #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/transform_feedback3.txt ARB_transform_feedback3> extension supported?
+glGetARBTransformFeedback3 :: MonadIO m => m Bool
+glGetARBTransformFeedback3 = getExtensions >>= (return . member "GL_ARB_transform_feedback3")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/transform_feedback3.txt ARB_transform_feedback3> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBTransformFeedback3' in those cases instead.
+gl_ARB_transform_feedback3 :: Bool
+gl_ARB_transform_feedback3 = member "GL_ARB_transform_feedback3" extensions
+{-# NOINLINE gl_ARB_transform_feedback3 #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/transform_feedback_instanced.txt ARB_transform_feedback_instanced> extension supported?
+glGetARBTransformFeedbackInstanced :: MonadIO m => m Bool
+glGetARBTransformFeedbackInstanced = getExtensions >>= (return . member "GL_ARB_transform_feedback_instanced")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/transform_feedback_instanced.txt ARB_transform_feedback_instanced> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBTransformFeedbackInstanced' in those cases instead.
+gl_ARB_transform_feedback_instanced :: Bool
+gl_ARB_transform_feedback_instanced = member "GL_ARB_transform_feedback_instanced" extensions
+{-# NOINLINE gl_ARB_transform_feedback_instanced #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/transform_feedback_overflow_query.txt ARB_transform_feedback_overflow_query> extension supported?
+glGetARBTransformFeedbackOverflowQuery :: MonadIO m => m Bool
+glGetARBTransformFeedbackOverflowQuery = getExtensions >>= (return . member "GL_ARB_transform_feedback_overflow_query")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/transform_feedback_overflow_query.txt ARB_transform_feedback_overflow_query> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBTransformFeedbackOverflowQuery' in those cases instead.
+gl_ARB_transform_feedback_overflow_query :: Bool
+gl_ARB_transform_feedback_overflow_query = member "GL_ARB_transform_feedback_overflow_query" extensions
+{-# NOINLINE gl_ARB_transform_feedback_overflow_query #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/transpose_matrix.txt ARB_transpose_matrix> extension supported?
+glGetARBTransposeMatrix :: MonadIO m => m Bool
+glGetARBTransposeMatrix = getExtensions >>= (return . member "GL_ARB_transpose_matrix")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/transpose_matrix.txt ARB_transpose_matrix> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBTransposeMatrix' in those cases instead.
+gl_ARB_transpose_matrix :: Bool
+gl_ARB_transpose_matrix = member "GL_ARB_transpose_matrix" extensions
+{-# NOINLINE gl_ARB_transpose_matrix #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/uniform_buffer_object.txt ARB_uniform_buffer_object> extension supported?
+glGetARBUniformBufferObject :: MonadIO m => m Bool
+glGetARBUniformBufferObject = getExtensions >>= (return . member "GL_ARB_uniform_buffer_object")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/uniform_buffer_object.txt ARB_uniform_buffer_object> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBUniformBufferObject' in those cases instead.
+gl_ARB_uniform_buffer_object :: Bool
+gl_ARB_uniform_buffer_object = member "GL_ARB_uniform_buffer_object" extensions
+{-# NOINLINE gl_ARB_uniform_buffer_object #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/vertex_array_bgra.txt ARB_vertex_array_bgra> extension supported?
+glGetARBVertexArrayBGRA :: MonadIO m => m Bool
+glGetARBVertexArrayBGRA = getExtensions >>= (return . member "GL_ARB_vertex_array_bgra")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/vertex_array_bgra.txt ARB_vertex_array_bgra> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBVertexArrayBGRA' in those cases instead.
+gl_ARB_vertex_array_bgra :: Bool
+gl_ARB_vertex_array_bgra = member "GL_ARB_vertex_array_bgra" extensions
+{-# NOINLINE gl_ARB_vertex_array_bgra #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/vertex_array_object.txt ARB_vertex_array_object> extension supported?
+glGetARBVertexArrayObject :: MonadIO m => m Bool
+glGetARBVertexArrayObject = getExtensions >>= (return . member "GL_ARB_vertex_array_object")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/vertex_array_object.txt ARB_vertex_array_object> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBVertexArrayObject' in those cases instead.
+gl_ARB_vertex_array_object :: Bool
+gl_ARB_vertex_array_object = member "GL_ARB_vertex_array_object" extensions
+{-# NOINLINE gl_ARB_vertex_array_object #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/vertex_attrib_64bit.txt ARB_vertex_attrib_64bit> extension supported?
+glGetARBVertexAttrib64Bit :: MonadIO m => m Bool
+glGetARBVertexAttrib64Bit = getExtensions >>= (return . member "GL_ARB_vertex_attrib_64bit")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/vertex_attrib_64bit.txt ARB_vertex_attrib_64bit> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBVertexAttrib64Bit' in those cases instead.
+gl_ARB_vertex_attrib_64bit :: Bool
+gl_ARB_vertex_attrib_64bit = member "GL_ARB_vertex_attrib_64bit" extensions
+{-# NOINLINE gl_ARB_vertex_attrib_64bit #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/vertex_attrib_binding.txt ARB_vertex_attrib_binding> extension supported?
+glGetARBVertexAttribBinding :: MonadIO m => m Bool
+glGetARBVertexAttribBinding = getExtensions >>= (return . member "GL_ARB_vertex_attrib_binding")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/vertex_attrib_binding.txt ARB_vertex_attrib_binding> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBVertexAttribBinding' in those cases instead.
+gl_ARB_vertex_attrib_binding :: Bool
+gl_ARB_vertex_attrib_binding = member "GL_ARB_vertex_attrib_binding" extensions
+{-# NOINLINE gl_ARB_vertex_attrib_binding #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/vertex_blend.txt ARB_vertex_blend> extension supported?
+glGetARBVertexBlend :: MonadIO m => m Bool
+glGetARBVertexBlend = getExtensions >>= (return . member "GL_ARB_vertex_blend")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/vertex_blend.txt ARB_vertex_blend> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBVertexBlend' in those cases instead.
+gl_ARB_vertex_blend :: Bool
+gl_ARB_vertex_blend = member "GL_ARB_vertex_blend" extensions
+{-# NOINLINE gl_ARB_vertex_blend #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/vertex_buffer_object.txt ARB_vertex_buffer_object> extension supported?
+glGetARBVertexBufferObject :: MonadIO m => m Bool
+glGetARBVertexBufferObject = getExtensions >>= (return . member "GL_ARB_vertex_buffer_object")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/vertex_buffer_object.txt ARB_vertex_buffer_object> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBVertexBufferObject' in those cases instead.
+gl_ARB_vertex_buffer_object :: Bool
+gl_ARB_vertex_buffer_object = member "GL_ARB_vertex_buffer_object" extensions
+{-# NOINLINE gl_ARB_vertex_buffer_object #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/vertex_program.txt ARB_vertex_program> extension supported?
+glGetARBVertexProgram :: MonadIO m => m Bool
+glGetARBVertexProgram = getExtensions >>= (return . member "GL_ARB_vertex_program")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/vertex_program.txt ARB_vertex_program> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBVertexProgram' in those cases instead.
+gl_ARB_vertex_program :: Bool
+gl_ARB_vertex_program = member "GL_ARB_vertex_program" extensions
+{-# NOINLINE gl_ARB_vertex_program #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/vertex_shader.txt ARB_vertex_shader> extension supported?
+glGetARBVertexShader :: MonadIO m => m Bool
+glGetARBVertexShader = getExtensions >>= (return . member "GL_ARB_vertex_shader")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/vertex_shader.txt ARB_vertex_shader> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBVertexShader' in those cases instead.
+gl_ARB_vertex_shader :: Bool
+gl_ARB_vertex_shader = member "GL_ARB_vertex_shader" extensions
+{-# NOINLINE gl_ARB_vertex_shader #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/vertex_type_10f_11f_11f_rev.txt ARB_vertex_type_10f_11f_11f_rev> extension supported?
+glGetARBVertexType10f11f11fRev :: MonadIO m => m Bool
+glGetARBVertexType10f11f11fRev = getExtensions >>= (return . member "GL_ARB_vertex_type_10f_11f_11f_rev")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/vertex_type_10f_11f_11f_rev.txt ARB_vertex_type_10f_11f_11f_rev> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBVertexType10f11f11fRev' in those cases instead.
+gl_ARB_vertex_type_10f_11f_11f_rev :: Bool
+gl_ARB_vertex_type_10f_11f_11f_rev = member "GL_ARB_vertex_type_10f_11f_11f_rev" extensions
+{-# NOINLINE gl_ARB_vertex_type_10f_11f_11f_rev #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt ARB_vertex_type_2_10_10_10_rev> extension supported?
+glGetARBVertexType2101010Rev :: MonadIO m => m Bool
+glGetARBVertexType2101010Rev = getExtensions >>= (return . member "GL_ARB_vertex_type_2_10_10_10_rev")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt ARB_vertex_type_2_10_10_10_rev> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBVertexType2101010Rev' in those cases instead.
+gl_ARB_vertex_type_2_10_10_10_rev :: Bool
+gl_ARB_vertex_type_2_10_10_10_rev = member "GL_ARB_vertex_type_2_10_10_10_rev" extensions
+{-# NOINLINE gl_ARB_vertex_type_2_10_10_10_rev #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/viewport_array.txt ARB_viewport_array> extension supported?
+glGetARBViewportArray :: MonadIO m => m Bool
+glGetARBViewportArray = getExtensions >>= (return . member "GL_ARB_viewport_array")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/viewport_array.txt ARB_viewport_array> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBViewportArray' in those cases instead.
+gl_ARB_viewport_array :: Bool
+gl_ARB_viewport_array = member "GL_ARB_viewport_array" extensions
+{-# NOINLINE gl_ARB_viewport_array #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/window_pos.txt ARB_window_pos> extension supported?
+glGetARBWindowPos :: MonadIO m => m Bool
+glGetARBWindowPos = getExtensions >>= (return . member "GL_ARB_window_pos")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/window_pos.txt ARB_window_pos> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetARBWindowPos' in those cases instead.
+gl_ARB_window_pos :: Bool
+gl_ARB_window_pos = member "GL_ARB_window_pos" extensions
+{-# NOINLINE gl_ARB_window_pos #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ATI/draw_buffers.txt ATI_draw_buffers> extension supported?
+glGetATIDrawBuffers :: MonadIO m => m Bool
+glGetATIDrawBuffers = getExtensions >>= (return . member "GL_ATI_draw_buffers")
+
+-- | Is the <https://www.opengl.org/registry/specs/ATI/draw_buffers.txt ATI_draw_buffers> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetATIDrawBuffers' in those cases instead.
+gl_ATI_draw_buffers :: Bool
+gl_ATI_draw_buffers = member "GL_ATI_draw_buffers" extensions
+{-# NOINLINE gl_ATI_draw_buffers #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ATI/element_array.txt ATI_element_array> extension supported?
+glGetATIElementArray :: MonadIO m => m Bool
+glGetATIElementArray = getExtensions >>= (return . member "GL_ATI_element_array")
+
+-- | Is the <https://www.opengl.org/registry/specs/ATI/element_array.txt ATI_element_array> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetATIElementArray' in those cases instead.
+gl_ATI_element_array :: Bool
+gl_ATI_element_array = member "GL_ATI_element_array" extensions
+{-# NOINLINE gl_ATI_element_array #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ATI/envmap_bumpmap.txt ATI_envmap_bumpmap> extension supported?
+glGetATIEnvmapBumpmap :: MonadIO m => m Bool
+glGetATIEnvmapBumpmap = getExtensions >>= (return . member "GL_ATI_envmap_bumpmap")
+
+-- | Is the <https://www.opengl.org/registry/specs/ATI/envmap_bumpmap.txt ATI_envmap_bumpmap> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetATIEnvmapBumpmap' in those cases instead.
+gl_ATI_envmap_bumpmap :: Bool
+gl_ATI_envmap_bumpmap = member "GL_ATI_envmap_bumpmap" extensions
+{-# NOINLINE gl_ATI_envmap_bumpmap #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ATI/fragment_shader.txt ATI_fragment_shader> extension supported?
+glGetATIFragmentShader :: MonadIO m => m Bool
+glGetATIFragmentShader = getExtensions >>= (return . member "GL_ATI_fragment_shader")
+
+-- | Is the <https://www.opengl.org/registry/specs/ATI/fragment_shader.txt ATI_fragment_shader> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetATIFragmentShader' in those cases instead.
+gl_ATI_fragment_shader :: Bool
+gl_ATI_fragment_shader = member "GL_ATI_fragment_shader" extensions
+{-# NOINLINE gl_ATI_fragment_shader #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ATI/map_object_buffer.txt ATI_map_object_buffer> extension supported?
+glGetATIMapObjectBuffer :: MonadIO m => m Bool
+glGetATIMapObjectBuffer = getExtensions >>= (return . member "GL_ATI_map_object_buffer")
+
+-- | Is the <https://www.opengl.org/registry/specs/ATI/map_object_buffer.txt ATI_map_object_buffer> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetATIMapObjectBuffer' in those cases instead.
+gl_ATI_map_object_buffer :: Bool
+gl_ATI_map_object_buffer = member "GL_ATI_map_object_buffer" extensions
+{-# NOINLINE gl_ATI_map_object_buffer #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ATI/meminfo.txt ATI_meminfo> extension supported?
+glGetATIMeminfo :: MonadIO m => m Bool
+glGetATIMeminfo = getExtensions >>= (return . member "GL_ATI_meminfo")
+
+-- | Is the <https://www.opengl.org/registry/specs/ATI/meminfo.txt ATI_meminfo> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetATIMeminfo' in those cases instead.
+gl_ATI_meminfo :: Bool
+gl_ATI_meminfo = member "GL_ATI_meminfo" extensions
+{-# NOINLINE gl_ATI_meminfo #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ATI/pixel_format_float.txt ATI_pixel_format_float> extension supported?
+glGetATIPixelFormatFloat :: MonadIO m => m Bool
+glGetATIPixelFormatFloat = getExtensions >>= (return . member "GL_ATI_pixel_format_float")
+
+-- | Is the <https://www.opengl.org/registry/specs/ATI/pixel_format_float.txt ATI_pixel_format_float> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetATIPixelFormatFloat' in those cases instead.
+gl_ATI_pixel_format_float :: Bool
+gl_ATI_pixel_format_float = member "GL_ATI_pixel_format_float" extensions
+{-# NOINLINE gl_ATI_pixel_format_float #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ATI/pn_triangles.txt ATI_pn_triangles> extension supported?
+glGetATIPNTriangles :: MonadIO m => m Bool
+glGetATIPNTriangles = getExtensions >>= (return . member "GL_ATI_pn_triangles")
+
+-- | Is the <https://www.opengl.org/registry/specs/ATI/pn_triangles.txt ATI_pn_triangles> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetATIPNTriangles' in those cases instead.
+gl_ATI_pn_triangles :: Bool
+gl_ATI_pn_triangles = member "GL_ATI_pn_triangles" extensions
+{-# NOINLINE gl_ATI_pn_triangles #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ATI/separate_stencil.txt ATI_separate_stencil> extension supported?
+glGetATISeparateStencil :: MonadIO m => m Bool
+glGetATISeparateStencil = getExtensions >>= (return . member "GL_ATI_separate_stencil")
+
+-- | Is the <https://www.opengl.org/registry/specs/ATI/separate_stencil.txt ATI_separate_stencil> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetATISeparateStencil' in those cases instead.
+gl_ATI_separate_stencil :: Bool
+gl_ATI_separate_stencil = member "GL_ATI_separate_stencil" extensions
+{-# NOINLINE gl_ATI_separate_stencil #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ATI/text_fragment_shader.txt ATI_text_fragment_shader> extension supported?
+glGetATITextFragmentShader :: MonadIO m => m Bool
+glGetATITextFragmentShader = getExtensions >>= (return . member "GL_ATI_text_fragment_shader")
+
+-- | Is the <https://www.opengl.org/registry/specs/ATI/text_fragment_shader.txt ATI_text_fragment_shader> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetATITextFragmentShader' in those cases instead.
+gl_ATI_text_fragment_shader :: Bool
+gl_ATI_text_fragment_shader = member "GL_ATI_text_fragment_shader" extensions
+{-# NOINLINE gl_ATI_text_fragment_shader #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ATI/texture_env_combine3.txt ATI_texture_env_combine3> extension supported?
+glGetATITextureEnvCombine3 :: MonadIO m => m Bool
+glGetATITextureEnvCombine3 = getExtensions >>= (return . member "GL_ATI_texture_env_combine3")
+
+-- | Is the <https://www.opengl.org/registry/specs/ATI/texture_env_combine3.txt ATI_texture_env_combine3> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetATITextureEnvCombine3' in those cases instead.
+gl_ATI_texture_env_combine3 :: Bool
+gl_ATI_texture_env_combine3 = member "GL_ATI_texture_env_combine3" extensions
+{-# NOINLINE gl_ATI_texture_env_combine3 #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ATI/texture_float.txt ATI_texture_float> extension supported?
+glGetATITextureFloat :: MonadIO m => m Bool
+glGetATITextureFloat = getExtensions >>= (return . member "GL_ATI_texture_float")
+
+-- | Is the <https://www.opengl.org/registry/specs/ATI/texture_float.txt ATI_texture_float> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetATITextureFloat' in those cases instead.
+gl_ATI_texture_float :: Bool
+gl_ATI_texture_float = member "GL_ATI_texture_float" extensions
+{-# NOINLINE gl_ATI_texture_float #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ATI/texture_mirror_once.txt ATI_texture_mirror_once> extension supported?
+glGetATITextureMirrorOnce :: MonadIO m => m Bool
+glGetATITextureMirrorOnce = getExtensions >>= (return . member "GL_ATI_texture_mirror_once")
+
+-- | Is the <https://www.opengl.org/registry/specs/ATI/texture_mirror_once.txt ATI_texture_mirror_once> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetATITextureMirrorOnce' in those cases instead.
+gl_ATI_texture_mirror_once :: Bool
+gl_ATI_texture_mirror_once = member "GL_ATI_texture_mirror_once" extensions
+{-# NOINLINE gl_ATI_texture_mirror_once #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ATI/vertex_array_object.txt ATI_vertex_array_object> extension supported?
+glGetATIVertexArrayObject :: MonadIO m => m Bool
+glGetATIVertexArrayObject = getExtensions >>= (return . member "GL_ATI_vertex_array_object")
+
+-- | Is the <https://www.opengl.org/registry/specs/ATI/vertex_array_object.txt ATI_vertex_array_object> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetATIVertexArrayObject' in those cases instead.
+gl_ATI_vertex_array_object :: Bool
+gl_ATI_vertex_array_object = member "GL_ATI_vertex_array_object" extensions
+{-# NOINLINE gl_ATI_vertex_array_object #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ATI/vertex_attrib_array_object.txt ATI_vertex_attrib_array_object> extension supported?
+glGetATIVertexAttribArrayObject :: MonadIO m => m Bool
+glGetATIVertexAttribArrayObject = getExtensions >>= (return . member "GL_ATI_vertex_attrib_array_object")
+
+-- | Is the <https://www.opengl.org/registry/specs/ATI/vertex_attrib_array_object.txt ATI_vertex_attrib_array_object> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetATIVertexAttribArrayObject' in those cases instead.
+gl_ATI_vertex_attrib_array_object :: Bool
+gl_ATI_vertex_attrib_array_object = member "GL_ATI_vertex_attrib_array_object" extensions
+{-# NOINLINE gl_ATI_vertex_attrib_array_object #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ATI/vertex_streams.txt ATI_vertex_streams> extension supported?
+glGetATIVertexStreams :: MonadIO m => m Bool
+glGetATIVertexStreams = getExtensions >>= (return . member "GL_ATI_vertex_streams")
+
+-- | Is the <https://www.opengl.org/registry/specs/ATI/vertex_streams.txt ATI_vertex_streams> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetATIVertexStreams' in those cases instead.
+gl_ATI_vertex_streams :: Bool
+gl_ATI_vertex_streams = member "GL_ATI_vertex_streams" extensions
+{-# NOINLINE gl_ATI_vertex_streams #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/422_pixels.txt EXT_422_pixels> extension supported?
+glGetEXTFourTwoTwoPixels :: MonadIO m => m Bool
+glGetEXTFourTwoTwoPixels = getExtensions >>= (return . member "GL_EXT_422_pixels")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/422_pixels.txt EXT_422_pixels> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTFourTwoTwoPixels' in those cases instead.
+gl_EXT_422_pixels :: Bool
+gl_EXT_422_pixels = member "GL_EXT_422_pixels" extensions
+{-# NOINLINE gl_EXT_422_pixels #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/EGL_image_storage.txt EXT_EGL_image_storage> extension supported?
+glGetEXTEglImageStorage :: MonadIO m => m Bool
+glGetEXTEglImageStorage = getExtensions >>= (return . member "GL_EXT_EGL_image_storage")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/EGL_image_storage.txt EXT_EGL_image_storage> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTEglImageStorage' in those cases instead.
+gl_EXT_EGL_image_storage :: Bool
+gl_EXT_EGL_image_storage = member "GL_EXT_EGL_image_storage" extensions
+{-# NOINLINE gl_EXT_EGL_image_storage #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/abgr.txt EXT_abgr> extension supported?
+glGetEXTABGR :: MonadIO m => m Bool
+glGetEXTABGR = getExtensions >>= (return . member "GL_EXT_abgr")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/abgr.txt EXT_abgr> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTABGR' in those cases instead.
+gl_EXT_abgr :: Bool
+gl_EXT_abgr = member "GL_EXT_abgr" extensions
+{-# NOINLINE gl_EXT_abgr #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/bgra.txt EXT_bgra> extension supported?
+glGetEXTBGRA :: MonadIO m => m Bool
+glGetEXTBGRA = getExtensions >>= (return . member "GL_EXT_bgra")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/bgra.txt EXT_bgra> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTBGRA' in those cases instead.
+gl_EXT_bgra :: Bool
+gl_EXT_bgra = member "GL_EXT_bgra" extensions
+{-# NOINLINE gl_EXT_bgra #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/bindable_uniform.txt EXT_bindable_uniform> extension supported?
+glGetEXTBindableUniform :: MonadIO m => m Bool
+glGetEXTBindableUniform = getExtensions >>= (return . member "GL_EXT_bindable_uniform")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/bindable_uniform.txt EXT_bindable_uniform> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTBindableUniform' in those cases instead.
+gl_EXT_bindable_uniform :: Bool
+gl_EXT_bindable_uniform = member "GL_EXT_bindable_uniform" extensions
+{-# NOINLINE gl_EXT_bindable_uniform #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/blend_color.txt EXT_blend_color> extension supported?
+glGetEXTBlendColor :: MonadIO m => m Bool
+glGetEXTBlendColor = getExtensions >>= (return . member "GL_EXT_blend_color")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/blend_color.txt EXT_blend_color> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTBlendColor' in those cases instead.
+gl_EXT_blend_color :: Bool
+gl_EXT_blend_color = member "GL_EXT_blend_color" extensions
+{-# NOINLINE gl_EXT_blend_color #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/blend_equation_separate.txt EXT_blend_equation_separate> extension supported?
+glGetEXTBlendEquationSeparate :: MonadIO m => m Bool
+glGetEXTBlendEquationSeparate = getExtensions >>= (return . member "GL_EXT_blend_equation_separate")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/blend_equation_separate.txt EXT_blend_equation_separate> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTBlendEquationSeparate' in those cases instead.
+gl_EXT_blend_equation_separate :: Bool
+gl_EXT_blend_equation_separate = member "GL_EXT_blend_equation_separate" extensions
+{-# NOINLINE gl_EXT_blend_equation_separate #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/blend_func_separate.txt EXT_blend_func_separate> extension supported?
+glGetEXTBlendFuncSeparate :: MonadIO m => m Bool
+glGetEXTBlendFuncSeparate = getExtensions >>= (return . member "GL_EXT_blend_func_separate")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/blend_func_separate.txt EXT_blend_func_separate> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTBlendFuncSeparate' in those cases instead.
+gl_EXT_blend_func_separate :: Bool
+gl_EXT_blend_func_separate = member "GL_EXT_blend_func_separate" extensions
+{-# NOINLINE gl_EXT_blend_func_separate #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/blend_minmax.txt EXT_blend_minmax> extension supported?
+glGetEXTBlendMinmax :: MonadIO m => m Bool
+glGetEXTBlendMinmax = getExtensions >>= (return . member "GL_EXT_blend_minmax")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/blend_minmax.txt EXT_blend_minmax> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTBlendMinmax' in those cases instead.
+gl_EXT_blend_minmax :: Bool
+gl_EXT_blend_minmax = member "GL_EXT_blend_minmax" extensions
+{-# NOINLINE gl_EXT_blend_minmax #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/blend_subtract.txt EXT_blend_subtract> extension supported?
+glGetEXTBlendSubtract :: MonadIO m => m Bool
+glGetEXTBlendSubtract = getExtensions >>= (return . member "GL_EXT_blend_subtract")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/blend_subtract.txt EXT_blend_subtract> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTBlendSubtract' in those cases instead.
+gl_EXT_blend_subtract :: Bool
+gl_EXT_blend_subtract = member "GL_EXT_blend_subtract" extensions
+{-# NOINLINE gl_EXT_blend_subtract #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/clip_volume_hint.txt EXT_clip_volume_hint> extension supported?
+glGetEXTClipVolumeHint :: MonadIO m => m Bool
+glGetEXTClipVolumeHint = getExtensions >>= (return . member "GL_EXT_clip_volume_hint")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/clip_volume_hint.txt EXT_clip_volume_hint> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTClipVolumeHint' in those cases instead.
+gl_EXT_clip_volume_hint :: Bool
+gl_EXT_clip_volume_hint = member "GL_EXT_clip_volume_hint" extensions
+{-# NOINLINE gl_EXT_clip_volume_hint #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/cmyka.txt EXT_cmyka> extension supported?
+glGetEXTCMYKA :: MonadIO m => m Bool
+glGetEXTCMYKA = getExtensions >>= (return . member "GL_EXT_cmyka")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/cmyka.txt EXT_cmyka> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTCMYKA' in those cases instead.
+gl_EXT_cmyka :: Bool
+gl_EXT_cmyka = member "GL_EXT_cmyka" extensions
+{-# NOINLINE gl_EXT_cmyka #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/color_subtable.txt EXT_color_subtable> extension supported?
+glGetEXTColorSubtable :: MonadIO m => m Bool
+glGetEXTColorSubtable = getExtensions >>= (return . member "GL_EXT_color_subtable")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/color_subtable.txt EXT_color_subtable> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTColorSubtable' in those cases instead.
+gl_EXT_color_subtable :: Bool
+gl_EXT_color_subtable = member "GL_EXT_color_subtable" extensions
+{-# NOINLINE gl_EXT_color_subtable #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/compiled_vertex_array.txt EXT_compiled_vertex_array> extension supported?
+glGetEXTCompiledVertexArray :: MonadIO m => m Bool
+glGetEXTCompiledVertexArray = getExtensions >>= (return . member "GL_EXT_compiled_vertex_array")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/compiled_vertex_array.txt EXT_compiled_vertex_array> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTCompiledVertexArray' in those cases instead.
+gl_EXT_compiled_vertex_array :: Bool
+gl_EXT_compiled_vertex_array = member "GL_EXT_compiled_vertex_array" extensions
+{-# NOINLINE gl_EXT_compiled_vertex_array #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/convolution.txt EXT_convolution> extension supported?
+glGetEXTConvolution :: MonadIO m => m Bool
+glGetEXTConvolution = getExtensions >>= (return . member "GL_EXT_convolution")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/convolution.txt EXT_convolution> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTConvolution' in those cases instead.
+gl_EXT_convolution :: Bool
+gl_EXT_convolution = member "GL_EXT_convolution" extensions
+{-# NOINLINE gl_EXT_convolution #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/coordinate_frame.txt EXT_coordinate_frame> extension supported?
+glGetEXTCoordinateFrame :: MonadIO m => m Bool
+glGetEXTCoordinateFrame = getExtensions >>= (return . member "GL_EXT_coordinate_frame")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/coordinate_frame.txt EXT_coordinate_frame> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTCoordinateFrame' in those cases instead.
+gl_EXT_coordinate_frame :: Bool
+gl_EXT_coordinate_frame = member "GL_EXT_coordinate_frame" extensions
+{-# NOINLINE gl_EXT_coordinate_frame #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/copy_texture.txt EXT_copy_texture> extension supported?
+glGetEXTCopyTexture :: MonadIO m => m Bool
+glGetEXTCopyTexture = getExtensions >>= (return . member "GL_EXT_copy_texture")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/copy_texture.txt EXT_copy_texture> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTCopyTexture' in those cases instead.
+gl_EXT_copy_texture :: Bool
+gl_EXT_copy_texture = member "GL_EXT_copy_texture" extensions
+{-# NOINLINE gl_EXT_copy_texture #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/cull_vertex.txt EXT_cull_vertex> extension supported?
+glGetEXTCullVertex :: MonadIO m => m Bool
+glGetEXTCullVertex = getExtensions >>= (return . member "GL_EXT_cull_vertex")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/cull_vertex.txt EXT_cull_vertex> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTCullVertex' in those cases instead.
+gl_EXT_cull_vertex :: Bool
+gl_EXT_cull_vertex = member "GL_EXT_cull_vertex" extensions
+{-# NOINLINE gl_EXT_cull_vertex #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/EXT_debug_label.txt EXT_debug_label> extension supported?
+glGetEXTDebugLabel :: MonadIO m => m Bool
+glGetEXTDebugLabel = getExtensions >>= (return . member "GL_EXT_debug_label")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/EXT_debug_label.txt EXT_debug_label> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTDebugLabel' in those cases instead.
+gl_EXT_debug_label :: Bool
+gl_EXT_debug_label = member "GL_EXT_debug_label" extensions
+{-# NOINLINE gl_EXT_debug_label #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/EXT_debug_marker.txt EXT_debug_marker> extension supported?
+glGetEXTDebugMarker :: MonadIO m => m Bool
+glGetEXTDebugMarker = getExtensions >>= (return . member "GL_EXT_debug_marker")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/EXT_debug_marker.txt EXT_debug_marker> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTDebugMarker' in those cases instead.
+gl_EXT_debug_marker :: Bool
+gl_EXT_debug_marker = member "GL_EXT_debug_marker" extensions
+{-# NOINLINE gl_EXT_debug_marker #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/depth_bounds_test.txt EXT_depth_bounds_test> extension supported?
+glGetEXTDepthBoundsTest :: MonadIO m => m Bool
+glGetEXTDepthBoundsTest = getExtensions >>= (return . member "GL_EXT_depth_bounds_test")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/depth_bounds_test.txt EXT_depth_bounds_test> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTDepthBoundsTest' in those cases instead.
+gl_EXT_depth_bounds_test :: Bool
+gl_EXT_depth_bounds_test = member "GL_EXT_depth_bounds_test" extensions
+{-# NOINLINE gl_EXT_depth_bounds_test #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/direct_state_access.txt EXT_direct_state_access> extension supported?
+glGetEXTDirectStateAccess :: MonadIO m => m Bool
+glGetEXTDirectStateAccess = getExtensions >>= (return . member "GL_EXT_direct_state_access")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/direct_state_access.txt EXT_direct_state_access> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTDirectStateAccess' in those cases instead.
+gl_EXT_direct_state_access :: Bool
+gl_EXT_direct_state_access = member "GL_EXT_direct_state_access" extensions
+{-# NOINLINE gl_EXT_direct_state_access #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/draw_buffers2.txt EXT_draw_buffers2> extension supported?
+glGetEXTDrawBuffers2 :: MonadIO m => m Bool
+glGetEXTDrawBuffers2 = getExtensions >>= (return . member "GL_EXT_draw_buffers2")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/draw_buffers2.txt EXT_draw_buffers2> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTDrawBuffers2' in those cases instead.
+gl_EXT_draw_buffers2 :: Bool
+gl_EXT_draw_buffers2 = member "GL_EXT_draw_buffers2" extensions
+{-# NOINLINE gl_EXT_draw_buffers2 #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/draw_instanced.txt EXT_draw_instanced> extension supported?
+glGetEXTDrawInstanced :: MonadIO m => m Bool
+glGetEXTDrawInstanced = getExtensions >>= (return . member "GL_EXT_draw_instanced")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/draw_instanced.txt EXT_draw_instanced> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTDrawInstanced' in those cases instead.
+gl_EXT_draw_instanced :: Bool
+gl_EXT_draw_instanced = member "GL_EXT_draw_instanced" extensions
+{-# NOINLINE gl_EXT_draw_instanced #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/draw_range_elements.txt EXT_draw_range_elements> extension supported?
+glGetEXTDrawRangeElements :: MonadIO m => m Bool
+glGetEXTDrawRangeElements = getExtensions >>= (return . member "GL_EXT_draw_range_elements")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/draw_range_elements.txt EXT_draw_range_elements> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTDrawRangeElements' in those cases instead.
+gl_EXT_draw_range_elements :: Bool
+gl_EXT_draw_range_elements = member "GL_EXT_draw_range_elements" extensions
+{-# NOINLINE gl_EXT_draw_range_elements #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/external_buffer.txt EXT_external_buffer> extension supported?
+glGetEXTExternalBuffer :: MonadIO m => m Bool
+glGetEXTExternalBuffer = getExtensions >>= (return . member "GL_EXT_external_buffer")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/external_buffer.txt EXT_external_buffer> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTExternalBuffer' in those cases instead.
+gl_EXT_external_buffer :: Bool
+gl_EXT_external_buffer = member "GL_EXT_external_buffer" extensions
+{-# NOINLINE gl_EXT_external_buffer #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/fog_coord.txt EXT_fog_coord> extension supported?
+glGetEXTFogCoord :: MonadIO m => m Bool
+glGetEXTFogCoord = getExtensions >>= (return . member "GL_EXT_fog_coord")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/fog_coord.txt EXT_fog_coord> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTFogCoord' in those cases instead.
+gl_EXT_fog_coord :: Bool
+gl_EXT_fog_coord = member "GL_EXT_fog_coord" extensions
+{-# NOINLINE gl_EXT_fog_coord #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/framebuffer_blit.txt EXT_framebuffer_blit> extension supported?
+glGetEXTFramebufferBlit :: MonadIO m => m Bool
+glGetEXTFramebufferBlit = getExtensions >>= (return . member "GL_EXT_framebuffer_blit")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/framebuffer_blit.txt EXT_framebuffer_blit> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTFramebufferBlit' in those cases instead.
+gl_EXT_framebuffer_blit :: Bool
+gl_EXT_framebuffer_blit = member "GL_EXT_framebuffer_blit" extensions
+{-# NOINLINE gl_EXT_framebuffer_blit #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/framebuffer_multisample.txt EXT_framebuffer_multisample> extension supported?
+glGetEXTFramebufferMultisample :: MonadIO m => m Bool
+glGetEXTFramebufferMultisample = getExtensions >>= (return . member "GL_EXT_framebuffer_multisample")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/framebuffer_multisample.txt EXT_framebuffer_multisample> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTFramebufferMultisample' in those cases instead.
+gl_EXT_framebuffer_multisample :: Bool
+gl_EXT_framebuffer_multisample = member "GL_EXT_framebuffer_multisample" extensions
+{-# NOINLINE gl_EXT_framebuffer_multisample #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/framebuffer_multisample_blit_scaled.txt EXT_framebuffer_multisample_blit_scaled> extension supported?
+glGetEXTFramebufferMultisampleBlitScaled :: MonadIO m => m Bool
+glGetEXTFramebufferMultisampleBlitScaled = getExtensions >>= (return . member "GL_EXT_framebuffer_multisample_blit_scaled")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/framebuffer_multisample_blit_scaled.txt EXT_framebuffer_multisample_blit_scaled> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTFramebufferMultisampleBlitScaled' in those cases instead.
+gl_EXT_framebuffer_multisample_blit_scaled :: Bool
+gl_EXT_framebuffer_multisample_blit_scaled = member "GL_EXT_framebuffer_multisample_blit_scaled" extensions
+{-# NOINLINE gl_EXT_framebuffer_multisample_blit_scaled #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/framebuffer_object.txt EXT_framebuffer_object> extension supported?
+glGetEXTFramebufferObject :: MonadIO m => m Bool
+glGetEXTFramebufferObject = getExtensions >>= (return . member "GL_EXT_framebuffer_object")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/framebuffer_object.txt EXT_framebuffer_object> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTFramebufferObject' in those cases instead.
+gl_EXT_framebuffer_object :: Bool
+gl_EXT_framebuffer_object = member "GL_EXT_framebuffer_object" extensions
+{-# NOINLINE gl_EXT_framebuffer_object #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/framebuffer_sRGB.txt EXT_framebuffer_sRGB> extension supported?
+glGetEXTFramebufferSRGB :: MonadIO m => m Bool
+glGetEXTFramebufferSRGB = getExtensions >>= (return . member "GL_EXT_framebuffer_sRGB")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/framebuffer_sRGB.txt EXT_framebuffer_sRGB> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTFramebufferSRGB' in those cases instead.
+gl_EXT_framebuffer_sRGB :: Bool
+gl_EXT_framebuffer_sRGB = member "GL_EXT_framebuffer_sRGB" extensions
+{-# NOINLINE gl_EXT_framebuffer_sRGB #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/geometry_shader4.txt EXT_geometry_shader4> extension supported?
+glGetEXTGeometryShader4 :: MonadIO m => m Bool
+glGetEXTGeometryShader4 = getExtensions >>= (return . member "GL_EXT_geometry_shader4")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/geometry_shader4.txt EXT_geometry_shader4> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTGeometryShader4' in those cases instead.
+gl_EXT_geometry_shader4 :: Bool
+gl_EXT_geometry_shader4 = member "GL_EXT_geometry_shader4" extensions
+{-# NOINLINE gl_EXT_geometry_shader4 #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/gpu_program_parameters.txt EXT_gpu_program_parameters> extension supported?
+glGetEXTGPUProgramParameters :: MonadIO m => m Bool
+glGetEXTGPUProgramParameters = getExtensions >>= (return . member "GL_EXT_gpu_program_parameters")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/gpu_program_parameters.txt EXT_gpu_program_parameters> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTGPUProgramParameters' in those cases instead.
+gl_EXT_gpu_program_parameters :: Bool
+gl_EXT_gpu_program_parameters = member "GL_EXT_gpu_program_parameters" extensions
+{-# NOINLINE gl_EXT_gpu_program_parameters #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/gpu_shader4.txt EXT_gpu_shader4> extension supported?
+glGetEXTGPUShader4 :: MonadIO m => m Bool
+glGetEXTGPUShader4 = getExtensions >>= (return . member "GL_EXT_gpu_shader4")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/gpu_shader4.txt EXT_gpu_shader4> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTGPUShader4' in those cases instead.
+gl_EXT_gpu_shader4 :: Bool
+gl_EXT_gpu_shader4 = member "GL_EXT_gpu_shader4" extensions
+{-# NOINLINE gl_EXT_gpu_shader4 #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/histogram.txt EXT_histogram> extension supported?
+glGetEXTHistogram :: MonadIO m => m Bool
+glGetEXTHistogram = getExtensions >>= (return . member "GL_EXT_histogram")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/histogram.txt EXT_histogram> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTHistogram' in those cases instead.
+gl_EXT_histogram :: Bool
+gl_EXT_histogram = member "GL_EXT_histogram" extensions
+{-# NOINLINE gl_EXT_histogram #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/index_array_formats.txt EXT_index_array_formats> extension supported?
+glGetEXTIndexArrayFormats :: MonadIO m => m Bool
+glGetEXTIndexArrayFormats = getExtensions >>= (return . member "GL_EXT_index_array_formats")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/index_array_formats.txt EXT_index_array_formats> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTIndexArrayFormats' in those cases instead.
+gl_EXT_index_array_formats :: Bool
+gl_EXT_index_array_formats = member "GL_EXT_index_array_formats" extensions
+{-# NOINLINE gl_EXT_index_array_formats #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/index_func.txt EXT_index_func> extension supported?
+glGetEXTIndexFunc :: MonadIO m => m Bool
+glGetEXTIndexFunc = getExtensions >>= (return . member "GL_EXT_index_func")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/index_func.txt EXT_index_func> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTIndexFunc' in those cases instead.
+gl_EXT_index_func :: Bool
+gl_EXT_index_func = member "GL_EXT_index_func" extensions
+{-# NOINLINE gl_EXT_index_func #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/index_material.txt EXT_index_material> extension supported?
+glGetEXTIndexMaterial :: MonadIO m => m Bool
+glGetEXTIndexMaterial = getExtensions >>= (return . member "GL_EXT_index_material")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/index_material.txt EXT_index_material> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTIndexMaterial' in those cases instead.
+gl_EXT_index_material :: Bool
+gl_EXT_index_material = member "GL_EXT_index_material" extensions
+{-# NOINLINE gl_EXT_index_material #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/light_texture.txt EXT_light_texture> extension supported?
+glGetEXTLightTexture :: MonadIO m => m Bool
+glGetEXTLightTexture = getExtensions >>= (return . member "GL_EXT_light_texture")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/light_texture.txt EXT_light_texture> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTLightTexture' in those cases instead.
+gl_EXT_light_texture :: Bool
+gl_EXT_light_texture = member "GL_EXT_light_texture" extensions
+{-# NOINLINE gl_EXT_light_texture #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/memory_object.txt EXT_memory_object> extension supported?
+glGetEXTMemoryObject :: MonadIO m => m Bool
+glGetEXTMemoryObject = getExtensions >>= (return . member "GL_EXT_memory_object")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/memory_object.txt EXT_memory_object> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTMemoryObject' in those cases instead.
+gl_EXT_memory_object :: Bool
+gl_EXT_memory_object = member "GL_EXT_memory_object" extensions
+{-# NOINLINE gl_EXT_memory_object #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/memory_object_fd.txt EXT_memory_object_fd> extension supported?
+glGetEXTMemoryObjectFd :: MonadIO m => m Bool
+glGetEXTMemoryObjectFd = getExtensions >>= (return . member "GL_EXT_memory_object_fd")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/memory_object_fd.txt EXT_memory_object_fd> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTMemoryObjectFd' in those cases instead.
+gl_EXT_memory_object_fd :: Bool
+gl_EXT_memory_object_fd = member "GL_EXT_memory_object_fd" extensions
+{-# NOINLINE gl_EXT_memory_object_fd #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/memory_object_win32.txt EXT_memory_object_win32> extension supported?
+glGetEXTMemoryObjectWin32 :: MonadIO m => m Bool
+glGetEXTMemoryObjectWin32 = getExtensions >>= (return . member "GL_EXT_memory_object_win32")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/memory_object_win32.txt EXT_memory_object_win32> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTMemoryObjectWin32' in those cases instead.
+gl_EXT_memory_object_win32 :: Bool
+gl_EXT_memory_object_win32 = member "GL_EXT_memory_object_win32" extensions
+{-# NOINLINE gl_EXT_memory_object_win32 #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/multi_draw_arrays.txt EXT_multi_draw_arrays> extension supported?
+glGetEXTMultiDrawArrays :: MonadIO m => m Bool
+glGetEXTMultiDrawArrays = getExtensions >>= (return . member "GL_EXT_multi_draw_arrays")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/multi_draw_arrays.txt EXT_multi_draw_arrays> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTMultiDrawArrays' in those cases instead.
+gl_EXT_multi_draw_arrays :: Bool
+gl_EXT_multi_draw_arrays = member "GL_EXT_multi_draw_arrays" extensions
+{-# NOINLINE gl_EXT_multi_draw_arrays #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/wgl_multisample.txt EXT_multisample> extension supported?
+glGetEXTMultisample :: MonadIO m => m Bool
+glGetEXTMultisample = getExtensions >>= (return . member "GL_EXT_multisample")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/wgl_multisample.txt EXT_multisample> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTMultisample' in those cases instead.
+gl_EXT_multisample :: Bool
+gl_EXT_multisample = member "GL_EXT_multisample" extensions
+{-# NOINLINE gl_EXT_multisample #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/packed_depth_stencil.txt EXT_packed_depth_stencil> extension supported?
+glGetEXTPackedDepthStencil :: MonadIO m => m Bool
+glGetEXTPackedDepthStencil = getExtensions >>= (return . member "GL_EXT_packed_depth_stencil")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/packed_depth_stencil.txt EXT_packed_depth_stencil> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTPackedDepthStencil' in those cases instead.
+gl_EXT_packed_depth_stencil :: Bool
+gl_EXT_packed_depth_stencil = member "GL_EXT_packed_depth_stencil" extensions
+{-# NOINLINE gl_EXT_packed_depth_stencil #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/packed_float.txt EXT_packed_float> extension supported?
+glGetEXTPackedFloat :: MonadIO m => m Bool
+glGetEXTPackedFloat = getExtensions >>= (return . member "GL_EXT_packed_float")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/packed_float.txt EXT_packed_float> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTPackedFloat' in those cases instead.
+gl_EXT_packed_float :: Bool
+gl_EXT_packed_float = member "GL_EXT_packed_float" extensions
+{-# NOINLINE gl_EXT_packed_float #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/packed_pixels.txt EXT_packed_pixels> extension supported?
+glGetEXTPackedPixels :: MonadIO m => m Bool
+glGetEXTPackedPixels = getExtensions >>= (return . member "GL_EXT_packed_pixels")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/packed_pixels.txt EXT_packed_pixels> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTPackedPixels' in those cases instead.
+gl_EXT_packed_pixels :: Bool
+gl_EXT_packed_pixels = member "GL_EXT_packed_pixels" extensions
+{-# NOINLINE gl_EXT_packed_pixels #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/paletted_texture.txt EXT_paletted_texture> extension supported?
+glGetEXTPalettedTexture :: MonadIO m => m Bool
+glGetEXTPalettedTexture = getExtensions >>= (return . member "GL_EXT_paletted_texture")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/paletted_texture.txt EXT_paletted_texture> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTPalettedTexture' in those cases instead.
+gl_EXT_paletted_texture :: Bool
+gl_EXT_paletted_texture = member "GL_EXT_paletted_texture" extensions
+{-# NOINLINE gl_EXT_paletted_texture #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/pixel_buffer_object.txt EXT_pixel_buffer_object> extension supported?
+glGetEXTPixelBufferObject :: MonadIO m => m Bool
+glGetEXTPixelBufferObject = getExtensions >>= (return . member "GL_EXT_pixel_buffer_object")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/pixel_buffer_object.txt EXT_pixel_buffer_object> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTPixelBufferObject' in those cases instead.
+gl_EXT_pixel_buffer_object :: Bool
+gl_EXT_pixel_buffer_object = member "GL_EXT_pixel_buffer_object" extensions
+{-# NOINLINE gl_EXT_pixel_buffer_object #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/pixel_transform.txt EXT_pixel_transform> extension supported?
+glGetEXTPixelTransform :: MonadIO m => m Bool
+glGetEXTPixelTransform = getExtensions >>= (return . member "GL_EXT_pixel_transform")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/pixel_transform.txt EXT_pixel_transform> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTPixelTransform' in those cases instead.
+gl_EXT_pixel_transform :: Bool
+gl_EXT_pixel_transform = member "GL_EXT_pixel_transform" extensions
+{-# NOINLINE gl_EXT_pixel_transform #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/point_parameters.txt EXT_point_parameters> extension supported?
+glGetEXTPointParameters :: MonadIO m => m Bool
+glGetEXTPointParameters = getExtensions >>= (return . member "GL_EXT_point_parameters")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/point_parameters.txt EXT_point_parameters> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTPointParameters' in those cases instead.
+gl_EXT_point_parameters :: Bool
+gl_EXT_point_parameters = member "GL_EXT_point_parameters" extensions
+{-# NOINLINE gl_EXT_point_parameters #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/polygon_offset.txt EXT_polygon_offset> extension supported?
+glGetEXTPolygonOffset :: MonadIO m => m Bool
+glGetEXTPolygonOffset = getExtensions >>= (return . member "GL_EXT_polygon_offset")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/polygon_offset.txt EXT_polygon_offset> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTPolygonOffset' in those cases instead.
+gl_EXT_polygon_offset :: Bool
+gl_EXT_polygon_offset = member "GL_EXT_polygon_offset" extensions
+{-# NOINLINE gl_EXT_polygon_offset #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/polygon_offset_clamp.txt EXT_polygon_offset_clamp> extension supported?
+glGetEXTPolygonOffsetClamp :: MonadIO m => m Bool
+glGetEXTPolygonOffsetClamp = getExtensions >>= (return . member "GL_EXT_polygon_offset_clamp")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/polygon_offset_clamp.txt EXT_polygon_offset_clamp> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTPolygonOffsetClamp' in those cases instead.
+gl_EXT_polygon_offset_clamp :: Bool
+gl_EXT_polygon_offset_clamp = member "GL_EXT_polygon_offset_clamp" extensions
+{-# NOINLINE gl_EXT_polygon_offset_clamp #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/provoking_vertex.txt EXT_provoking_vertex> extension supported?
+glGetEXTProvokingVertex :: MonadIO m => m Bool
+glGetEXTProvokingVertex = getExtensions >>= (return . member "GL_EXT_provoking_vertex")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/provoking_vertex.txt EXT_provoking_vertex> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTProvokingVertex' in those cases instead.
+gl_EXT_provoking_vertex :: Bool
+gl_EXT_provoking_vertex = member "GL_EXT_provoking_vertex" extensions
+{-# NOINLINE gl_EXT_provoking_vertex #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/raster_multisample.txt EXT_raster_multisample> extension supported?
+glGetEXTRasterMultisample :: MonadIO m => m Bool
+glGetEXTRasterMultisample = getExtensions >>= (return . member "GL_EXT_raster_multisample")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/raster_multisample.txt EXT_raster_multisample> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTRasterMultisample' in those cases instead.
+gl_EXT_raster_multisample :: Bool
+gl_EXT_raster_multisample = member "GL_EXT_raster_multisample" extensions
+{-# NOINLINE gl_EXT_raster_multisample #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/rescale_normal.txt EXT_rescale_normal> extension supported?
+glGetEXTRescaleNormal :: MonadIO m => m Bool
+glGetEXTRescaleNormal = getExtensions >>= (return . member "GL_EXT_rescale_normal")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/rescale_normal.txt EXT_rescale_normal> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTRescaleNormal' in those cases instead.
+gl_EXT_rescale_normal :: Bool
+gl_EXT_rescale_normal = member "GL_EXT_rescale_normal" extensions
+{-# NOINLINE gl_EXT_rescale_normal #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/secondary_color.txt EXT_secondary_color> extension supported?
+glGetEXTSecondaryColor :: MonadIO m => m Bool
+glGetEXTSecondaryColor = getExtensions >>= (return . member "GL_EXT_secondary_color")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/secondary_color.txt EXT_secondary_color> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTSecondaryColor' in those cases instead.
+gl_EXT_secondary_color :: Bool
+gl_EXT_secondary_color = member "GL_EXT_secondary_color" extensions
+{-# NOINLINE gl_EXT_secondary_color #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/semaphore.txt EXT_semaphore> extension supported?
+glGetEXTSemaphore :: MonadIO m => m Bool
+glGetEXTSemaphore = getExtensions >>= (return . member "GL_EXT_semaphore")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/semaphore.txt EXT_semaphore> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTSemaphore' in those cases instead.
+gl_EXT_semaphore :: Bool
+gl_EXT_semaphore = member "GL_EXT_semaphore" extensions
+{-# NOINLINE gl_EXT_semaphore #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/semaphore_fd.txt EXT_semaphore_fd> extension supported?
+glGetEXTSemaphoreFd :: MonadIO m => m Bool
+glGetEXTSemaphoreFd = getExtensions >>= (return . member "GL_EXT_semaphore_fd")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/semaphore_fd.txt EXT_semaphore_fd> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTSemaphoreFd' in those cases instead.
+gl_EXT_semaphore_fd :: Bool
+gl_EXT_semaphore_fd = member "GL_EXT_semaphore_fd" extensions
+{-# NOINLINE gl_EXT_semaphore_fd #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/semaphore_win32.txt EXT_semaphore_win32> extension supported?
+glGetEXTSemaphoreWin32 :: MonadIO m => m Bool
+glGetEXTSemaphoreWin32 = getExtensions >>= (return . member "GL_EXT_semaphore_win32")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/semaphore_win32.txt EXT_semaphore_win32> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTSemaphoreWin32' in those cases instead.
+gl_EXT_semaphore_win32 :: Bool
+gl_EXT_semaphore_win32 = member "GL_EXT_semaphore_win32" extensions
+{-# NOINLINE gl_EXT_semaphore_win32 #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/separate_shader_objects.txt EXT_separate_shader_objects> extension supported?
+glGetEXTSeparateShaderObjects :: MonadIO m => m Bool
+glGetEXTSeparateShaderObjects = getExtensions >>= (return . member "GL_EXT_separate_shader_objects")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/separate_shader_objects.txt EXT_separate_shader_objects> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTSeparateShaderObjects' in those cases instead.
+gl_EXT_separate_shader_objects :: Bool
+gl_EXT_separate_shader_objects = member "GL_EXT_separate_shader_objects" extensions
+{-# NOINLINE gl_EXT_separate_shader_objects #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/separate_specular_color.txt EXT_separate_specular_color> extension supported?
+glGetEXTSeparateSpecularColor :: MonadIO m => m Bool
+glGetEXTSeparateSpecularColor = getExtensions >>= (return . member "GL_EXT_separate_specular_color")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/separate_specular_color.txt EXT_separate_specular_color> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTSeparateSpecularColor' in those cases instead.
+gl_EXT_separate_specular_color :: Bool
+gl_EXT_separate_specular_color = member "GL_EXT_separate_specular_color" extensions
+{-# NOINLINE gl_EXT_separate_specular_color #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/shader_framebuffer_fetch.txt EXT_shader_framebuffer_fetch> extension supported?
+glGetEXTShaderFramebufferFetch :: MonadIO m => m Bool
+glGetEXTShaderFramebufferFetch = getExtensions >>= (return . member "GL_EXT_shader_framebuffer_fetch")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/shader_framebuffer_fetch.txt EXT_shader_framebuffer_fetch> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTShaderFramebufferFetch' in those cases instead.
+gl_EXT_shader_framebuffer_fetch :: Bool
+gl_EXT_shader_framebuffer_fetch = member "GL_EXT_shader_framebuffer_fetch" extensions
+{-# NOINLINE gl_EXT_shader_framebuffer_fetch #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/shader_framebuffer_fetch_non_coherent.txt EXT_shader_framebuffer_fetch_non_coherent> extension supported?
+glGetEXTShaderFramebufferFetchNonCoherent :: MonadIO m => m Bool
+glGetEXTShaderFramebufferFetchNonCoherent = getExtensions >>= (return . member "GL_EXT_shader_framebuffer_fetch_non_coherent")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/shader_framebuffer_fetch_non_coherent.txt EXT_shader_framebuffer_fetch_non_coherent> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTShaderFramebufferFetchNonCoherent' in those cases instead.
+gl_EXT_shader_framebuffer_fetch_non_coherent :: Bool
+gl_EXT_shader_framebuffer_fetch_non_coherent = member "GL_EXT_shader_framebuffer_fetch_non_coherent" extensions
+{-# NOINLINE gl_EXT_shader_framebuffer_fetch_non_coherent #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/shader_image_load_store.txt EXT_shader_image_load_store> extension supported?
+glGetEXTShaderImageLoadStore :: MonadIO m => m Bool
+glGetEXTShaderImageLoadStore = getExtensions >>= (return . member "GL_EXT_shader_image_load_store")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/shader_image_load_store.txt EXT_shader_image_load_store> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTShaderImageLoadStore' in those cases instead.
+gl_EXT_shader_image_load_store :: Bool
+gl_EXT_shader_image_load_store = member "GL_EXT_shader_image_load_store" extensions
+{-# NOINLINE gl_EXT_shader_image_load_store #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/shared_texture_palette.txt EXT_shared_texture_palette> extension supported?
+glGetEXTSharedTexturePalette :: MonadIO m => m Bool
+glGetEXTSharedTexturePalette = getExtensions >>= (return . member "GL_EXT_shared_texture_palette")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/shared_texture_palette.txt EXT_shared_texture_palette> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTSharedTexturePalette' in those cases instead.
+gl_EXT_shared_texture_palette :: Bool
+gl_EXT_shared_texture_palette = member "GL_EXT_shared_texture_palette" extensions
+{-# NOINLINE gl_EXT_shared_texture_palette #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/stencil_clear_tag.txt EXT_stencil_clear_tag> extension supported?
+glGetEXTStencilClearTag :: MonadIO m => m Bool
+glGetEXTStencilClearTag = getExtensions >>= (return . member "GL_EXT_stencil_clear_tag")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/stencil_clear_tag.txt EXT_stencil_clear_tag> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTStencilClearTag' in those cases instead.
+gl_EXT_stencil_clear_tag :: Bool
+gl_EXT_stencil_clear_tag = member "GL_EXT_stencil_clear_tag" extensions
+{-# NOINLINE gl_EXT_stencil_clear_tag #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/stencil_two_side.txt EXT_stencil_two_side> extension supported?
+glGetEXTStencilTwoSide :: MonadIO m => m Bool
+glGetEXTStencilTwoSide = getExtensions >>= (return . member "GL_EXT_stencil_two_side")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/stencil_two_side.txt EXT_stencil_two_side> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTStencilTwoSide' in those cases instead.
+gl_EXT_stencil_two_side :: Bool
+gl_EXT_stencil_two_side = member "GL_EXT_stencil_two_side" extensions
+{-# NOINLINE gl_EXT_stencil_two_side #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/stencil_wrap.txt EXT_stencil_wrap> extension supported?
+glGetEXTStencilWrap :: MonadIO m => m Bool
+glGetEXTStencilWrap = getExtensions >>= (return . member "GL_EXT_stencil_wrap")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/stencil_wrap.txt EXT_stencil_wrap> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTStencilWrap' in those cases instead.
+gl_EXT_stencil_wrap :: Bool
+gl_EXT_stencil_wrap = member "GL_EXT_stencil_wrap" extensions
+{-# NOINLINE gl_EXT_stencil_wrap #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/subtexture.txt EXT_subtexture> extension supported?
+glGetEXTSubtexture :: MonadIO m => m Bool
+glGetEXTSubtexture = getExtensions >>= (return . member "GL_EXT_subtexture")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/subtexture.txt EXT_subtexture> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTSubtexture' in those cases instead.
+gl_EXT_subtexture :: Bool
+gl_EXT_subtexture = member "GL_EXT_subtexture" extensions
+{-# NOINLINE gl_EXT_subtexture #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/texture.txt EXT_texture> extension supported?
+glGetEXTTexture :: MonadIO m => m Bool
+glGetEXTTexture = getExtensions >>= (return . member "GL_EXT_texture")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/texture.txt EXT_texture> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTTexture' in those cases instead.
+gl_EXT_texture :: Bool
+gl_EXT_texture = member "GL_EXT_texture" extensions
+{-# NOINLINE gl_EXT_texture #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/texture3D.txt EXT_texture3D> extension supported?
+glGetEXTTexture3D :: MonadIO m => m Bool
+glGetEXTTexture3D = getExtensions >>= (return . member "GL_EXT_texture3D")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/texture3D.txt EXT_texture3D> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTTexture3D' in those cases instead.
+gl_EXT_texture3D :: Bool
+gl_EXT_texture3D = member "GL_EXT_texture3D" extensions
+{-# NOINLINE gl_EXT_texture3D #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/texture_array.txt EXT_texture_array> extension supported?
+glGetEXTTextureArray :: MonadIO m => m Bool
+glGetEXTTextureArray = getExtensions >>= (return . member "GL_EXT_texture_array")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/texture_array.txt EXT_texture_array> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTTextureArray' in those cases instead.
+gl_EXT_texture_array :: Bool
+gl_EXT_texture_array = member "GL_EXT_texture_array" extensions
+{-# NOINLINE gl_EXT_texture_array #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/texture_buffer_object.txt EXT_texture_buffer_object> extension supported?
+glGetEXTTextureBufferObject :: MonadIO m => m Bool
+glGetEXTTextureBufferObject = getExtensions >>= (return . member "GL_EXT_texture_buffer_object")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/texture_buffer_object.txt EXT_texture_buffer_object> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTTextureBufferObject' in those cases instead.
+gl_EXT_texture_buffer_object :: Bool
+gl_EXT_texture_buffer_object = member "GL_EXT_texture_buffer_object" extensions
+{-# NOINLINE gl_EXT_texture_buffer_object #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/texture_compression_latc.txt EXT_texture_compression_latc> extension supported?
+glGetEXTTextureCompressionLATC :: MonadIO m => m Bool
+glGetEXTTextureCompressionLATC = getExtensions >>= (return . member "GL_EXT_texture_compression_latc")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/texture_compression_latc.txt EXT_texture_compression_latc> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTTextureCompressionLATC' in those cases instead.
+gl_EXT_texture_compression_latc :: Bool
+gl_EXT_texture_compression_latc = member "GL_EXT_texture_compression_latc" extensions
+{-# NOINLINE gl_EXT_texture_compression_latc #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/texture_compression_rgtc.txt EXT_texture_compression_rgtc> extension supported?
+glGetEXTTextureCompressionRGTC :: MonadIO m => m Bool
+glGetEXTTextureCompressionRGTC = getExtensions >>= (return . member "GL_EXT_texture_compression_rgtc")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/texture_compression_rgtc.txt EXT_texture_compression_rgtc> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTTextureCompressionRGTC' in those cases instead.
+gl_EXT_texture_compression_rgtc :: Bool
+gl_EXT_texture_compression_rgtc = member "GL_EXT_texture_compression_rgtc" extensions
+{-# NOINLINE gl_EXT_texture_compression_rgtc #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/texture_compression_s3tc.txt EXT_texture_compression_s3tc> extension supported?
+glGetEXTTextureCompressionS3TC :: MonadIO m => m Bool
+glGetEXTTextureCompressionS3TC = getExtensions >>= (return . member "GL_EXT_texture_compression_s3tc")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/texture_compression_s3tc.txt EXT_texture_compression_s3tc> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTTextureCompressionS3TC' in those cases instead.
+gl_EXT_texture_compression_s3tc :: Bool
+gl_EXT_texture_compression_s3tc = member "GL_EXT_texture_compression_s3tc" extensions
+{-# NOINLINE gl_EXT_texture_compression_s3tc #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/texture_cube_map.txt EXT_texture_cube_map> extension supported?
+glGetEXTTextureCubeMap :: MonadIO m => m Bool
+glGetEXTTextureCubeMap = getExtensions >>= (return . member "GL_EXT_texture_cube_map")
+
+-- | Is the <https://www.opengl.org/registry/specs/ARB/texture_cube_map.txt EXT_texture_cube_map> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTTextureCubeMap' in those cases instead.
+gl_EXT_texture_cube_map :: Bool
+gl_EXT_texture_cube_map = member "GL_EXT_texture_cube_map" extensions
+{-# NOINLINE gl_EXT_texture_cube_map #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/texture_env_combine.txt EXT_texture_env_combine> extension supported?
+glGetEXTTextureEnvCombine :: MonadIO m => m Bool
+glGetEXTTextureEnvCombine = getExtensions >>= (return . member "GL_EXT_texture_env_combine")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/texture_env_combine.txt EXT_texture_env_combine> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTTextureEnvCombine' in those cases instead.
+gl_EXT_texture_env_combine :: Bool
+gl_EXT_texture_env_combine = member "GL_EXT_texture_env_combine" extensions
+{-# NOINLINE gl_EXT_texture_env_combine #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/texture_env_dot3.txt EXT_texture_env_dot3> extension supported?
+glGetEXTTextureEnvDot3 :: MonadIO m => m Bool
+glGetEXTTextureEnvDot3 = getExtensions >>= (return . member "GL_EXT_texture_env_dot3")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/texture_env_dot3.txt EXT_texture_env_dot3> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTTextureEnvDot3' in those cases instead.
+gl_EXT_texture_env_dot3 :: Bool
+gl_EXT_texture_env_dot3 = member "GL_EXT_texture_env_dot3" extensions
+{-# NOINLINE gl_EXT_texture_env_dot3 #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/texture_filter_anisotropic.txt EXT_texture_filter_anisotropic> extension supported?
+glGetEXTTextureFilterAnisotropic :: MonadIO m => m Bool
+glGetEXTTextureFilterAnisotropic = getExtensions >>= (return . member "GL_EXT_texture_filter_anisotropic")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/texture_filter_anisotropic.txt EXT_texture_filter_anisotropic> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTTextureFilterAnisotropic' in those cases instead.
+gl_EXT_texture_filter_anisotropic :: Bool
+gl_EXT_texture_filter_anisotropic = member "GL_EXT_texture_filter_anisotropic" extensions
+{-# NOINLINE gl_EXT_texture_filter_anisotropic #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/texture_filter_minmax.txt EXT_texture_filter_minmax> extension supported?
+glGetEXTTextureFilterMinmax :: MonadIO m => m Bool
+glGetEXTTextureFilterMinmax = getExtensions >>= (return . member "GL_EXT_texture_filter_minmax")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/texture_filter_minmax.txt EXT_texture_filter_minmax> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTTextureFilterMinmax' in those cases instead.
+gl_EXT_texture_filter_minmax :: Bool
+gl_EXT_texture_filter_minmax = member "GL_EXT_texture_filter_minmax" extensions
+{-# NOINLINE gl_EXT_texture_filter_minmax #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/texture_integer.txt EXT_texture_integer> extension supported?
+glGetEXTTextureInteger :: MonadIO m => m Bool
+glGetEXTTextureInteger = getExtensions >>= (return . member "GL_EXT_texture_integer")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/texture_integer.txt EXT_texture_integer> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTTextureInteger' in those cases instead.
+gl_EXT_texture_integer :: Bool
+gl_EXT_texture_integer = member "GL_EXT_texture_integer" extensions
+{-# NOINLINE gl_EXT_texture_integer #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/texture_lod_bias.txt EXT_texture_lod_bias> extension supported?
+glGetEXTTextureLODBias :: MonadIO m => m Bool
+glGetEXTTextureLODBias = getExtensions >>= (return . member "GL_EXT_texture_lod_bias")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/texture_lod_bias.txt EXT_texture_lod_bias> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTTextureLODBias' in those cases instead.
+gl_EXT_texture_lod_bias :: Bool
+gl_EXT_texture_lod_bias = member "GL_EXT_texture_lod_bias" extensions
+{-# NOINLINE gl_EXT_texture_lod_bias #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/texture_mirror_clamp.txt EXT_texture_mirror_clamp> extension supported?
+glGetEXTTextureMirrorClamp :: MonadIO m => m Bool
+glGetEXTTextureMirrorClamp = getExtensions >>= (return . member "GL_EXT_texture_mirror_clamp")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/texture_mirror_clamp.txt EXT_texture_mirror_clamp> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTTextureMirrorClamp' in those cases instead.
+gl_EXT_texture_mirror_clamp :: Bool
+gl_EXT_texture_mirror_clamp = member "GL_EXT_texture_mirror_clamp" extensions
+{-# NOINLINE gl_EXT_texture_mirror_clamp #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/texture_object.txt EXT_texture_object> extension supported?
+glGetEXTTextureObject :: MonadIO m => m Bool
+glGetEXTTextureObject = getExtensions >>= (return . member "GL_EXT_texture_object")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/texture_object.txt EXT_texture_object> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTTextureObject' in those cases instead.
+gl_EXT_texture_object :: Bool
+gl_EXT_texture_object = member "GL_EXT_texture_object" extensions
+{-# NOINLINE gl_EXT_texture_object #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/texture_perturb_normal.txt EXT_texture_perturb_normal> extension supported?
+glGetEXTTexturePerturbNormal :: MonadIO m => m Bool
+glGetEXTTexturePerturbNormal = getExtensions >>= (return . member "GL_EXT_texture_perturb_normal")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/texture_perturb_normal.txt EXT_texture_perturb_normal> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTTexturePerturbNormal' in those cases instead.
+gl_EXT_texture_perturb_normal :: Bool
+gl_EXT_texture_perturb_normal = member "GL_EXT_texture_perturb_normal" extensions
+{-# NOINLINE gl_EXT_texture_perturb_normal #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/texture_sRGB.txt EXT_texture_sRGB> extension supported?
+glGetEXTTextureSRGB :: MonadIO m => m Bool
+glGetEXTTextureSRGB = getExtensions >>= (return . member "GL_EXT_texture_sRGB")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/texture_sRGB.txt EXT_texture_sRGB> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTTextureSRGB' in those cases instead.
+gl_EXT_texture_sRGB :: Bool
+gl_EXT_texture_sRGB = member "GL_EXT_texture_sRGB" extensions
+{-# NOINLINE gl_EXT_texture_sRGB #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/texture_sRGB_R8.txt EXT_texture_sRGB_R8> extension supported?
+glGetEXTTextureSRGBR8 :: MonadIO m => m Bool
+glGetEXTTextureSRGBR8 = getExtensions >>= (return . member "GL_EXT_texture_sRGB_R8")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/texture_sRGB_R8.txt EXT_texture_sRGB_R8> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTTextureSRGBR8' in those cases instead.
+gl_EXT_texture_sRGB_R8 :: Bool
+gl_EXT_texture_sRGB_R8 = member "GL_EXT_texture_sRGB_R8" extensions
+{-# NOINLINE gl_EXT_texture_sRGB_R8 #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/texture_sRGB_decode.txt EXT_texture_sRGB_decode> extension supported?
+glGetEXTTextureSRGBDecode :: MonadIO m => m Bool
+glGetEXTTextureSRGBDecode = getExtensions >>= (return . member "GL_EXT_texture_sRGB_decode")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/texture_sRGB_decode.txt EXT_texture_sRGB_decode> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTTextureSRGBDecode' in those cases instead.
+gl_EXT_texture_sRGB_decode :: Bool
+gl_EXT_texture_sRGB_decode = member "GL_EXT_texture_sRGB_decode" extensions
+{-# NOINLINE gl_EXT_texture_sRGB_decode #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/texture_shared_exponent.txt EXT_texture_shared_exponent> extension supported?
+glGetEXTTextureSharedExponent :: MonadIO m => m Bool
+glGetEXTTextureSharedExponent = getExtensions >>= (return . member "GL_EXT_texture_shared_exponent")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/texture_shared_exponent.txt EXT_texture_shared_exponent> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTTextureSharedExponent' in those cases instead.
+gl_EXT_texture_shared_exponent :: Bool
+gl_EXT_texture_shared_exponent = member "GL_EXT_texture_shared_exponent" extensions
+{-# NOINLINE gl_EXT_texture_shared_exponent #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/texture_snorm.txt EXT_texture_snorm> extension supported?
+glGetEXTTextureSNorm :: MonadIO m => m Bool
+glGetEXTTextureSNorm = getExtensions >>= (return . member "GL_EXT_texture_snorm")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/texture_snorm.txt EXT_texture_snorm> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTTextureSNorm' in those cases instead.
+gl_EXT_texture_snorm :: Bool
+gl_EXT_texture_snorm = member "GL_EXT_texture_snorm" extensions
+{-# NOINLINE gl_EXT_texture_snorm #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/texture_swizzle.txt EXT_texture_swizzle> extension supported?
+glGetEXTTextureSwizzle :: MonadIO m => m Bool
+glGetEXTTextureSwizzle = getExtensions >>= (return . member "GL_EXT_texture_swizzle")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/texture_swizzle.txt EXT_texture_swizzle> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTTextureSwizzle' in those cases instead.
+gl_EXT_texture_swizzle :: Bool
+gl_EXT_texture_swizzle = member "GL_EXT_texture_swizzle" extensions
+{-# NOINLINE gl_EXT_texture_swizzle #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/timer_query.txt EXT_timer_query> extension supported?
+glGetEXTTimerQuery :: MonadIO m => m Bool
+glGetEXTTimerQuery = getExtensions >>= (return . member "GL_EXT_timer_query")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/timer_query.txt EXT_timer_query> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTTimerQuery' in those cases instead.
+gl_EXT_timer_query :: Bool
+gl_EXT_timer_query = member "GL_EXT_timer_query" extensions
+{-# NOINLINE gl_EXT_timer_query #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/transform_feedback.txt EXT_transform_feedback> extension supported?
+glGetEXTTransformFeedback :: MonadIO m => m Bool
+glGetEXTTransformFeedback = getExtensions >>= (return . member "GL_EXT_transform_feedback")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/transform_feedback.txt EXT_transform_feedback> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTTransformFeedback' in those cases instead.
+gl_EXT_transform_feedback :: Bool
+gl_EXT_transform_feedback = member "GL_EXT_transform_feedback" extensions
+{-# NOINLINE gl_EXT_transform_feedback #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/vertex_array.txt EXT_vertex_array> extension supported?
+glGetEXTVertexArray :: MonadIO m => m Bool
+glGetEXTVertexArray = getExtensions >>= (return . member "GL_EXT_vertex_array")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/vertex_array.txt EXT_vertex_array> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTVertexArray' in those cases instead.
+gl_EXT_vertex_array :: Bool
+gl_EXT_vertex_array = member "GL_EXT_vertex_array" extensions
+{-# NOINLINE gl_EXT_vertex_array #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/vertex_array_bgra.txt EXT_vertex_array_bgra> extension supported?
+glGetEXTVertexArrayBGRA :: MonadIO m => m Bool
+glGetEXTVertexArrayBGRA = getExtensions >>= (return . member "GL_EXT_vertex_array_bgra")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/vertex_array_bgra.txt EXT_vertex_array_bgra> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTVertexArrayBGRA' in those cases instead.
+gl_EXT_vertex_array_bgra :: Bool
+gl_EXT_vertex_array_bgra = member "GL_EXT_vertex_array_bgra" extensions
+{-# NOINLINE gl_EXT_vertex_array_bgra #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/vertex_attrib_64bit.txt EXT_vertex_attrib_64bit> extension supported?
+glGetEXTVertexAttrib64Bit :: MonadIO m => m Bool
+glGetEXTVertexAttrib64Bit = getExtensions >>= (return . member "GL_EXT_vertex_attrib_64bit")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/vertex_attrib_64bit.txt EXT_vertex_attrib_64bit> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTVertexAttrib64Bit' in those cases instead.
+gl_EXT_vertex_attrib_64bit :: Bool
+gl_EXT_vertex_attrib_64bit = member "GL_EXT_vertex_attrib_64bit" extensions
+{-# NOINLINE gl_EXT_vertex_attrib_64bit #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/vertex_shader.txt EXT_vertex_shader> extension supported?
+glGetEXTVertexShader :: MonadIO m => m Bool
+glGetEXTVertexShader = getExtensions >>= (return . member "GL_EXT_vertex_shader")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/vertex_shader.txt EXT_vertex_shader> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTVertexShader' in those cases instead.
+gl_EXT_vertex_shader :: Bool
+gl_EXT_vertex_shader = member "GL_EXT_vertex_shader" extensions
+{-# NOINLINE gl_EXT_vertex_shader #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/vertex_weighting.txt EXT_vertex_weighting> extension supported?
+glGetEXTVertexWeighting :: MonadIO m => m Bool
+glGetEXTVertexWeighting = getExtensions >>= (return . member "GL_EXT_vertex_weighting")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/vertex_weighting.txt EXT_vertex_weighting> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTVertexWeighting' in those cases instead.
+gl_EXT_vertex_weighting :: Bool
+gl_EXT_vertex_weighting = member "GL_EXT_vertex_weighting" extensions
+{-# NOINLINE gl_EXT_vertex_weighting #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/win32_keyed_mutex.txt EXT_win32_keyed_mutex> extension supported?
+glGetEXTWin32KeyedMutex :: MonadIO m => m Bool
+glGetEXTWin32KeyedMutex = getExtensions >>= (return . member "GL_EXT_win32_keyed_mutex")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/win32_keyed_mutex.txt EXT_win32_keyed_mutex> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTWin32KeyedMutex' in those cases instead.
+gl_EXT_win32_keyed_mutex :: Bool
+gl_EXT_win32_keyed_mutex = member "GL_EXT_win32_keyed_mutex" extensions
+{-# NOINLINE gl_EXT_win32_keyed_mutex #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/window_rectangles.txt EXT_window_rectangles> extension supported?
+glGetEXTWindowRectangles :: MonadIO m => m Bool
+glGetEXTWindowRectangles = getExtensions >>= (return . member "GL_EXT_window_rectangles")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/window_rectangles.txt EXT_window_rectangles> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTWindowRectangles' in those cases instead.
+gl_EXT_window_rectangles :: Bool
+gl_EXT_window_rectangles = member "GL_EXT_window_rectangles" extensions
+{-# NOINLINE gl_EXT_window_rectangles #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/x11_sync_object.txt EXT_x11_sync_object> extension supported?
+glGetEXTX11SyncObject :: MonadIO m => m Bool
+glGetEXTX11SyncObject = getExtensions >>= (return . member "GL_EXT_x11_sync_object")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/x11_sync_object.txt EXT_x11_sync_object> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetEXTX11SyncObject' in those cases instead.
+gl_EXT_x11_sync_object :: Bool
+gl_EXT_x11_sync_object = member "GL_EXT_x11_sync_object" extensions
+{-# NOINLINE gl_EXT_x11_sync_object #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/GREMEDY/frame_terminator.txt GREMEDY_frame_terminator> extension supported?
+glGetGREMEDYFrameTerminator :: MonadIO m => m Bool
+glGetGREMEDYFrameTerminator = getExtensions >>= (return . member "GL_GREMEDY_frame_terminator")
+
+-- | Is the <https://www.opengl.org/registry/specs/GREMEDY/frame_terminator.txt GREMEDY_frame_terminator> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetGREMEDYFrameTerminator' in those cases instead.
+gl_GREMEDY_frame_terminator :: Bool
+gl_GREMEDY_frame_terminator = member "GL_GREMEDY_frame_terminator" extensions
+{-# NOINLINE gl_GREMEDY_frame_terminator #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/GREMEDY/string_marker.txt GREMEDY_string_marker> extension supported?
+glGetGREMEDYStringMarker :: MonadIO m => m Bool
+glGetGREMEDYStringMarker = getExtensions >>= (return . member "GL_GREMEDY_string_marker")
+
+-- | Is the <https://www.opengl.org/registry/specs/GREMEDY/string_marker.txt GREMEDY_string_marker> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetGREMEDYStringMarker' in those cases instead.
+gl_GREMEDY_string_marker :: Bool
+gl_GREMEDY_string_marker = member "GL_GREMEDY_string_marker" extensions
+{-# NOINLINE gl_GREMEDY_string_marker #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/HP/convolution_border_modes.txt HP_convolution_border_modes> extension supported?
+glGetHPConvolutionBorderModes :: MonadIO m => m Bool
+glGetHPConvolutionBorderModes = getExtensions >>= (return . member "GL_HP_convolution_border_modes")
+
+-- | Is the <https://www.opengl.org/registry/specs/HP/convolution_border_modes.txt HP_convolution_border_modes> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetHPConvolutionBorderModes' in those cases instead.
+gl_HP_convolution_border_modes :: Bool
+gl_HP_convolution_border_modes = member "GL_HP_convolution_border_modes" extensions
+{-# NOINLINE gl_HP_convolution_border_modes #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/HP/image_transform.txt HP_image_transform> extension supported?
+glGetHPImageTransform :: MonadIO m => m Bool
+glGetHPImageTransform = getExtensions >>= (return . member "GL_HP_image_transform")
+
+-- | Is the <https://www.opengl.org/registry/specs/HP/image_transform.txt HP_image_transform> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetHPImageTransform' in those cases instead.
+gl_HP_image_transform :: Bool
+gl_HP_image_transform = member "GL_HP_image_transform" extensions
+{-# NOINLINE gl_HP_image_transform #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/HP/occlusion_test.txt HP_occlusion_test> extension supported?
+glGetHPOcclusionTest :: MonadIO m => m Bool
+glGetHPOcclusionTest = getExtensions >>= (return . member "GL_HP_occlusion_test")
+
+-- | Is the <https://www.opengl.org/registry/specs/HP/occlusion_test.txt HP_occlusion_test> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetHPOcclusionTest' in those cases instead.
+gl_HP_occlusion_test :: Bool
+gl_HP_occlusion_test = member "GL_HP_occlusion_test" extensions
+{-# NOINLINE gl_HP_occlusion_test #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/HP/texture_lighting.txt HP_texture_lighting> extension supported?
+glGetHPTextureLighting :: MonadIO m => m Bool
+glGetHPTextureLighting = getExtensions >>= (return . member "GL_HP_texture_lighting")
+
+-- | Is the <https://www.opengl.org/registry/specs/HP/texture_lighting.txt HP_texture_lighting> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetHPTextureLighting' in those cases instead.
+gl_HP_texture_lighting :: Bool
+gl_HP_texture_lighting = member "GL_HP_texture_lighting" extensions
+{-# NOINLINE gl_HP_texture_lighting #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/IBM/cull_vertex.txt IBM_cull_vertex> extension supported?
+glGetIBMCullVertex :: MonadIO m => m Bool
+glGetIBMCullVertex = getExtensions >>= (return . member "GL_IBM_cull_vertex")
+
+-- | Is the <https://www.opengl.org/registry/specs/IBM/cull_vertex.txt IBM_cull_vertex> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetIBMCullVertex' in those cases instead.
+gl_IBM_cull_vertex :: Bool
+gl_IBM_cull_vertex = member "GL_IBM_cull_vertex" extensions
+{-# NOINLINE gl_IBM_cull_vertex #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/IBM/multimode_draw_arrays.txt IBM_multimode_draw_arrays> extension supported?
+glGetIBMMultimodeDrawArrays :: MonadIO m => m Bool
+glGetIBMMultimodeDrawArrays = getExtensions >>= (return . member "GL_IBM_multimode_draw_arrays")
+
+-- | Is the <https://www.opengl.org/registry/specs/IBM/multimode_draw_arrays.txt IBM_multimode_draw_arrays> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetIBMMultimodeDrawArrays' in those cases instead.
+gl_IBM_multimode_draw_arrays :: Bool
+gl_IBM_multimode_draw_arrays = member "GL_IBM_multimode_draw_arrays" extensions
+{-# NOINLINE gl_IBM_multimode_draw_arrays #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/IBM/rasterpos_clip.txt IBM_rasterpos_clip> extension supported?
+glGetIBMRasterposClip :: MonadIO m => m Bool
+glGetIBMRasterposClip = getExtensions >>= (return . member "GL_IBM_rasterpos_clip")
+
+-- | Is the <https://www.opengl.org/registry/specs/IBM/rasterpos_clip.txt IBM_rasterpos_clip> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetIBMRasterposClip' in those cases instead.
+gl_IBM_rasterpos_clip :: Bool
+gl_IBM_rasterpos_clip = member "GL_IBM_rasterpos_clip" extensions
+{-# NOINLINE gl_IBM_rasterpos_clip #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/IBM/static_data.txt IBM_static_data> extension supported?
+glGetIBMStaticData :: MonadIO m => m Bool
+glGetIBMStaticData = getExtensions >>= (return . member "GL_IBM_static_data")
+
+-- | Is the <https://www.opengl.org/registry/specs/IBM/static_data.txt IBM_static_data> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetIBMStaticData' in those cases instead.
+gl_IBM_static_data :: Bool
+gl_IBM_static_data = member "GL_IBM_static_data" extensions
+{-# NOINLINE gl_IBM_static_data #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/IBM/texture_mirrored_repeat.txt IBM_texture_mirrored_repeat> extension supported?
+glGetIBMTextureMirroredRepeat :: MonadIO m => m Bool
+glGetIBMTextureMirroredRepeat = getExtensions >>= (return . member "GL_IBM_texture_mirrored_repeat")
+
+-- | Is the <https://www.opengl.org/registry/specs/IBM/texture_mirrored_repeat.txt IBM_texture_mirrored_repeat> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetIBMTextureMirroredRepeat' in those cases instead.
+gl_IBM_texture_mirrored_repeat :: Bool
+gl_IBM_texture_mirrored_repeat = member "GL_IBM_texture_mirrored_repeat" extensions
+{-# NOINLINE gl_IBM_texture_mirrored_repeat #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/IBM/vertex_array_lists.txt IBM_vertex_array_lists> extension supported?
+glGetIBMVertexArrayLists :: MonadIO m => m Bool
+glGetIBMVertexArrayLists = getExtensions >>= (return . member "GL_IBM_vertex_array_lists")
+
+-- | Is the <https://www.opengl.org/registry/specs/IBM/vertex_array_lists.txt IBM_vertex_array_lists> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetIBMVertexArrayLists' in those cases instead.
+gl_IBM_vertex_array_lists :: Bool
+gl_IBM_vertex_array_lists = member "GL_IBM_vertex_array_lists" extensions
+{-# NOINLINE gl_IBM_vertex_array_lists #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/blend_func_separate.txt INGR_blend_func_separate> extension supported?
+glGetINGRBlendFuncSeparate :: MonadIO m => m Bool
+glGetINGRBlendFuncSeparate = getExtensions >>= (return . member "GL_INGR_blend_func_separate")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/blend_func_separate.txt INGR_blend_func_separate> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetINGRBlendFuncSeparate' in those cases instead.
+gl_INGR_blend_func_separate :: Bool
+gl_INGR_blend_func_separate = member "GL_INGR_blend_func_separate" extensions
+{-# NOINLINE gl_INGR_blend_func_separate #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/INGR/color_clamp.txt INGR_color_clamp> extension supported?
+glGetINGRColorClamp :: MonadIO m => m Bool
+glGetINGRColorClamp = getExtensions >>= (return . member "GL_INGR_color_clamp")
+
+-- | Is the <https://www.opengl.org/registry/specs/INGR/color_clamp.txt INGR_color_clamp> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetINGRColorClamp' in those cases instead.
+gl_INGR_color_clamp :: Bool
+gl_INGR_color_clamp = member "GL_INGR_color_clamp" extensions
+{-# NOINLINE gl_INGR_color_clamp #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/INGR/interlace_read.txt INGR_interlace_read> extension supported?
+glGetINGRInterlaceRead :: MonadIO m => m Bool
+glGetINGRInterlaceRead = getExtensions >>= (return . member "GL_INGR_interlace_read")
+
+-- | Is the <https://www.opengl.org/registry/specs/INGR/interlace_read.txt INGR_interlace_read> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetINGRInterlaceRead' in those cases instead.
+gl_INGR_interlace_read :: Bool
+gl_INGR_interlace_read = member "GL_INGR_interlace_read" extensions
+{-# NOINLINE gl_INGR_interlace_read #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/INTEL/blackhole_render.txt INTEL_blackhole_render> extension supported?
+glGetINTELBlackholeRender :: MonadIO m => m Bool
+glGetINTELBlackholeRender = getExtensions >>= (return . member "GL_INTEL_blackhole_render")
+
+-- | Is the <https://www.opengl.org/registry/specs/INTEL/blackhole_render.txt INTEL_blackhole_render> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetINTELBlackholeRender' in those cases instead.
+gl_INTEL_blackhole_render :: Bool
+gl_INTEL_blackhole_render = member "GL_INTEL_blackhole_render" extensions
+{-# NOINLINE gl_INTEL_blackhole_render #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/INTEL/conservative_rasterization.txt INTEL_conservative_rasterization> extension supported?
+glGetINTELConservativeRasterization :: MonadIO m => m Bool
+glGetINTELConservativeRasterization = getExtensions >>= (return . member "GL_INTEL_conservative_rasterization")
+
+-- | Is the <https://www.opengl.org/registry/specs/INTEL/conservative_rasterization.txt INTEL_conservative_rasterization> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetINTELConservativeRasterization' in those cases instead.
+gl_INTEL_conservative_rasterization :: Bool
+gl_INTEL_conservative_rasterization = member "GL_INTEL_conservative_rasterization" extensions
+{-# NOINLINE gl_INTEL_conservative_rasterization #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/INTEL/framebuffer_CMAA.txt INTEL_framebuffer_CMAA> extension supported?
+glGetINTELFramebufferCmaa :: MonadIO m => m Bool
+glGetINTELFramebufferCmaa = getExtensions >>= (return . member "GL_INTEL_framebuffer_CMAA")
+
+-- | Is the <https://www.opengl.org/registry/specs/INTEL/framebuffer_CMAA.txt INTEL_framebuffer_CMAA> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetINTELFramebufferCmaa' in those cases instead.
+gl_INTEL_framebuffer_CMAA :: Bool
+gl_INTEL_framebuffer_CMAA = member "GL_INTEL_framebuffer_CMAA" extensions
+{-# NOINLINE gl_INTEL_framebuffer_CMAA #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/INTEL/map_texture.txt INTEL_map_texture> extension supported?
+glGetINTELMapTexture :: MonadIO m => m Bool
+glGetINTELMapTexture = getExtensions >>= (return . member "GL_INTEL_map_texture")
+
+-- | Is the <https://www.opengl.org/registry/specs/INTEL/map_texture.txt INTEL_map_texture> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetINTELMapTexture' in those cases instead.
+gl_INTEL_map_texture :: Bool
+gl_INTEL_map_texture = member "GL_INTEL_map_texture" extensions
+{-# NOINLINE gl_INTEL_map_texture #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/INTEL/parallel_arrays.txt INTEL_parallel_arrays> extension supported?
+glGetINTELParallelArrays :: MonadIO m => m Bool
+glGetINTELParallelArrays = getExtensions >>= (return . member "GL_INTEL_parallel_arrays")
+
+-- | Is the <https://www.opengl.org/registry/specs/INTEL/parallel_arrays.txt INTEL_parallel_arrays> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetINTELParallelArrays' in those cases instead.
+gl_INTEL_parallel_arrays :: Bool
+gl_INTEL_parallel_arrays = member "GL_INTEL_parallel_arrays" extensions
+{-# NOINLINE gl_INTEL_parallel_arrays #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/INTEL/performance_query.txt INTEL_performance_query> extension supported?
+glGetINTELPerformanceQuery :: MonadIO m => m Bool
+glGetINTELPerformanceQuery = getExtensions >>= (return . member "GL_INTEL_performance_query")
+
+-- | Is the <https://www.opengl.org/registry/specs/INTEL/performance_query.txt INTEL_performance_query> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetINTELPerformanceQuery' in those cases instead.
+gl_INTEL_performance_query :: Bool
+gl_INTEL_performance_query = member "GL_INTEL_performance_query" extensions
+{-# NOINLINE gl_INTEL_performance_query #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/KHR/blend_equation_advanced.txt KHR_blend_equation_advanced> extension supported?
+glGetKHRBlendEquationAdvanced :: MonadIO m => m Bool
+glGetKHRBlendEquationAdvanced = getExtensions >>= (return . member "GL_KHR_blend_equation_advanced")
+
+-- | Is the <https://www.opengl.org/registry/specs/KHR/blend_equation_advanced.txt KHR_blend_equation_advanced> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetKHRBlendEquationAdvanced' in those cases instead.
+gl_KHR_blend_equation_advanced :: Bool
+gl_KHR_blend_equation_advanced = member "GL_KHR_blend_equation_advanced" extensions
+{-# NOINLINE gl_KHR_blend_equation_advanced #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/KHR/blend_equation_advanced.txt KHR_blend_equation_advanced_coherent> extension supported?
+glGetKHRBlendEquationAdvancedCoherent :: MonadIO m => m Bool
+glGetKHRBlendEquationAdvancedCoherent = getExtensions >>= (return . member "GL_KHR_blend_equation_advanced_coherent")
+
+-- | Is the <https://www.opengl.org/registry/specs/KHR/blend_equation_advanced.txt KHR_blend_equation_advanced_coherent> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetKHRBlendEquationAdvancedCoherent' in those cases instead.
+gl_KHR_blend_equation_advanced_coherent :: Bool
+gl_KHR_blend_equation_advanced_coherent = member "GL_KHR_blend_equation_advanced_coherent" extensions
+{-# NOINLINE gl_KHR_blend_equation_advanced_coherent #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/KHR/context_flush_control.txt KHR_context_flush_control> extension supported?
+glGetKHRContextFlushControl :: MonadIO m => m Bool
+glGetKHRContextFlushControl = getExtensions >>= (return . member "GL_KHR_context_flush_control")
+
+-- | Is the <https://www.opengl.org/registry/specs/KHR/context_flush_control.txt KHR_context_flush_control> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetKHRContextFlushControl' in those cases instead.
+gl_KHR_context_flush_control :: Bool
+gl_KHR_context_flush_control = member "GL_KHR_context_flush_control" extensions
+{-# NOINLINE gl_KHR_context_flush_control #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/KHR/debug.txt KHR_debug> extension supported?
+glGetKHRDebug :: MonadIO m => m Bool
+glGetKHRDebug = getExtensions >>= (return . member "GL_KHR_debug")
+
+-- | Is the <https://www.opengl.org/registry/specs/KHR/debug.txt KHR_debug> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetKHRDebug' in those cases instead.
+gl_KHR_debug :: Bool
+gl_KHR_debug = member "GL_KHR_debug" extensions
+{-# NOINLINE gl_KHR_debug #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/KHR/no_error.txt KHR_no_error> extension supported?
+glGetKHRNoError :: MonadIO m => m Bool
+glGetKHRNoError = getExtensions >>= (return . member "GL_KHR_no_error")
+
+-- | Is the <https://www.opengl.org/registry/specs/KHR/no_error.txt KHR_no_error> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetKHRNoError' in those cases instead.
+gl_KHR_no_error :: Bool
+gl_KHR_no_error = member "GL_KHR_no_error" extensions
+{-# NOINLINE gl_KHR_no_error #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/KHR/parallel_shader_compile.txt KHR_parallel_shader_compile> extension supported?
+glGetKHRParallelShaderCompile :: MonadIO m => m Bool
+glGetKHRParallelShaderCompile = getExtensions >>= (return . member "GL_KHR_parallel_shader_compile")
+
+-- | Is the <https://www.opengl.org/registry/specs/KHR/parallel_shader_compile.txt KHR_parallel_shader_compile> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetKHRParallelShaderCompile' in those cases instead.
+gl_KHR_parallel_shader_compile :: Bool
+gl_KHR_parallel_shader_compile = member "GL_KHR_parallel_shader_compile" extensions
+{-# NOINLINE gl_KHR_parallel_shader_compile #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/KHR/robustness.txt KHR_robustness> extension supported?
+glGetKHRRobustness :: MonadIO m => m Bool
+glGetKHRRobustness = getExtensions >>= (return . member "GL_KHR_robustness")
+
+-- | Is the <https://www.opengl.org/registry/specs/KHR/robustness.txt KHR_robustness> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetKHRRobustness' in those cases instead.
+gl_KHR_robustness :: Bool
+gl_KHR_robustness = member "GL_KHR_robustness" extensions
+{-# NOINLINE gl_KHR_robustness #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/KHR/shader_subgroup.txt KHR_shader_subgroup> extension supported?
+glGetKHRShaderSubgroup :: MonadIO m => m Bool
+glGetKHRShaderSubgroup = getExtensions >>= (return . member "GL_KHR_shader_subgroup")
+
+-- | Is the <https://www.opengl.org/registry/specs/KHR/shader_subgroup.txt KHR_shader_subgroup> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetKHRShaderSubgroup' in those cases instead.
+gl_KHR_shader_subgroup :: Bool
+gl_KHR_shader_subgroup = member "GL_KHR_shader_subgroup" extensions
+{-# NOINLINE gl_KHR_shader_subgroup #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/KHR/texture_compression_astc_hdr.txt KHR_texture_compression_astc_hdr> extension supported?
+glGetKHRTextureCompressionASTCHDR :: MonadIO m => m Bool
+glGetKHRTextureCompressionASTCHDR = getExtensions >>= (return . member "GL_KHR_texture_compression_astc_hdr")
+
+-- | Is the <https://www.opengl.org/registry/specs/KHR/texture_compression_astc_hdr.txt KHR_texture_compression_astc_hdr> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetKHRTextureCompressionASTCHDR' in those cases instead.
+gl_KHR_texture_compression_astc_hdr :: Bool
+gl_KHR_texture_compression_astc_hdr = member "GL_KHR_texture_compression_astc_hdr" extensions
+{-# NOINLINE gl_KHR_texture_compression_astc_hdr #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/KHR/texture_compression_astc_hdr.txt KHR_texture_compression_astc_ldr> extension supported?
+glGetKHRTextureCompressionASTCLDR :: MonadIO m => m Bool
+glGetKHRTextureCompressionASTCLDR = getExtensions >>= (return . member "GL_KHR_texture_compression_astc_ldr")
+
+-- | Is the <https://www.opengl.org/registry/specs/KHR/texture_compression_astc_hdr.txt KHR_texture_compression_astc_ldr> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetKHRTextureCompressionASTCLDR' in those cases instead.
+gl_KHR_texture_compression_astc_ldr :: Bool
+gl_KHR_texture_compression_astc_ldr = member "GL_KHR_texture_compression_astc_ldr" extensions
+{-# NOINLINE gl_KHR_texture_compression_astc_ldr #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/MESA/framebuffer_flip_y.txt MESA_framebuffer_flip_y> extension supported?
+glGetMESAFramebufferFlipY :: MonadIO m => m Bool
+glGetMESAFramebufferFlipY = getExtensions >>= (return . member "GL_MESA_framebuffer_flip_y")
+
+-- | Is the <https://www.opengl.org/registry/specs/MESA/framebuffer_flip_y.txt MESA_framebuffer_flip_y> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetMESAFramebufferFlipY' in those cases instead.
+gl_MESA_framebuffer_flip_y :: Bool
+gl_MESA_framebuffer_flip_y = member "GL_MESA_framebuffer_flip_y" extensions
+{-# NOINLINE gl_MESA_framebuffer_flip_y #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/MESA/pack_invert.txt MESA_pack_invert> extension supported?
+glGetMESAPackInvert :: MonadIO m => m Bool
+glGetMESAPackInvert = getExtensions >>= (return . member "GL_MESA_pack_invert")
+
+-- | Is the <https://www.opengl.org/registry/specs/MESA/pack_invert.txt MESA_pack_invert> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetMESAPackInvert' in those cases instead.
+gl_MESA_pack_invert :: Bool
+gl_MESA_pack_invert = member "GL_MESA_pack_invert" extensions
+{-# NOINLINE gl_MESA_pack_invert #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/MESA/program_binary_formats.txt MESA_program_binary_formats> extension supported?
+glGetMESAProgramBinaryFormats :: MonadIO m => m Bool
+glGetMESAProgramBinaryFormats = getExtensions >>= (return . member "GL_MESA_program_binary_formats")
+
+-- | Is the <https://www.opengl.org/registry/specs/MESA/program_binary_formats.txt MESA_program_binary_formats> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetMESAProgramBinaryFormats' in those cases instead.
+gl_MESA_program_binary_formats :: Bool
+gl_MESA_program_binary_formats = member "GL_MESA_program_binary_formats" extensions
+{-# NOINLINE gl_MESA_program_binary_formats #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/MESA/resize_buffers.txt MESA_resize_buffers> extension supported?
+glGetMESAResizeBuffers :: MonadIO m => m Bool
+glGetMESAResizeBuffers = getExtensions >>= (return . member "GL_MESA_resize_buffers")
+
+-- | Is the <https://www.opengl.org/registry/specs/MESA/resize_buffers.txt MESA_resize_buffers> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetMESAResizeBuffers' in those cases instead.
+gl_MESA_resize_buffers :: Bool
+gl_MESA_resize_buffers = member "GL_MESA_resize_buffers" extensions
+{-# NOINLINE gl_MESA_resize_buffers #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/MESA/tile_raster_order.txt MESA_tile_raster_order> extension supported?
+glGetMESATileRasterOrder :: MonadIO m => m Bool
+glGetMESATileRasterOrder = getExtensions >>= (return . member "GL_MESA_tile_raster_order")
+
+-- | Is the <https://www.opengl.org/registry/specs/MESA/tile_raster_order.txt MESA_tile_raster_order> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetMESATileRasterOrder' in those cases instead.
+gl_MESA_tile_raster_order :: Bool
+gl_MESA_tile_raster_order = member "GL_MESA_tile_raster_order" extensions
+{-# NOINLINE gl_MESA_tile_raster_order #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/MESA/window_pos.txt MESA_window_pos> extension supported?
+glGetMESAWindowPos :: MonadIO m => m Bool
+glGetMESAWindowPos = getExtensions >>= (return . member "GL_MESA_window_pos")
+
+-- | Is the <https://www.opengl.org/registry/specs/MESA/window_pos.txt MESA_window_pos> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetMESAWindowPos' in those cases instead.
+gl_MESA_window_pos :: Bool
+gl_MESA_window_pos = member "GL_MESA_window_pos" extensions
+{-# NOINLINE gl_MESA_window_pos #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/MESA/ycbcr_texture.txt MESA_ycbcr_texture> extension supported?
+glGetMESAYCbCrTexture :: MonadIO m => m Bool
+glGetMESAYCbCrTexture = getExtensions >>= (return . member "GL_MESA_ycbcr_texture")
+
+-- | Is the <https://www.opengl.org/registry/specs/MESA/ycbcr_texture.txt MESA_ycbcr_texture> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetMESAYCbCrTexture' in those cases instead.
+gl_MESA_ycbcr_texture :: Bool
+gl_MESA_ycbcr_texture = member "GL_MESA_ycbcr_texture" extensions
+{-# NOINLINE gl_MESA_ycbcr_texture #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/MESAX/texture_stack.txt MESAX_texture_stack> extension supported?
+glGetMESAXTextureStack :: MonadIO m => m Bool
+glGetMESAXTextureStack = getExtensions >>= (return . member "GL_MESAX_texture_stack")
+
+-- | Is the <https://www.opengl.org/registry/specs/MESAX/texture_stack.txt MESAX_texture_stack> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetMESAXTextureStack' in those cases instead.
+gl_MESAX_texture_stack :: Bool
+gl_MESAX_texture_stack = member "GL_MESAX_texture_stack" extensions
+{-# NOINLINE gl_MESAX_texture_stack #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/alpha_to_coverage_dither_control.txt NV_alpha_to_coverage_dither_control> extension supported?
+glGetNVAlphaToCoverageDitherControl :: MonadIO m => m Bool
+glGetNVAlphaToCoverageDitherControl = getExtensions >>= (return . member "GL_NV_alpha_to_coverage_dither_control")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/alpha_to_coverage_dither_control.txt NV_alpha_to_coverage_dither_control> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVAlphaToCoverageDitherControl' in those cases instead.
+gl_NV_alpha_to_coverage_dither_control :: Bool
+gl_NV_alpha_to_coverage_dither_control = member "GL_NV_alpha_to_coverage_dither_control" extensions
+{-# NOINLINE gl_NV_alpha_to_coverage_dither_control #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/bindless_multi_draw_indirect.txt NV_bindless_multi_draw_indirect> extension supported?
+glGetNVBindlessMultiDrawIndirect :: MonadIO m => m Bool
+glGetNVBindlessMultiDrawIndirect = getExtensions >>= (return . member "GL_NV_bindless_multi_draw_indirect")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/bindless_multi_draw_indirect.txt NV_bindless_multi_draw_indirect> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVBindlessMultiDrawIndirect' in those cases instead.
+gl_NV_bindless_multi_draw_indirect :: Bool
+gl_NV_bindless_multi_draw_indirect = member "GL_NV_bindless_multi_draw_indirect" extensions
+{-# NOINLINE gl_NV_bindless_multi_draw_indirect #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/bindless_multi_draw_indirect_count.txt NV_bindless_multi_draw_indirect_count> extension supported?
+glGetNVBindlessMultiDrawIndirectCount :: MonadIO m => m Bool
+glGetNVBindlessMultiDrawIndirectCount = getExtensions >>= (return . member "GL_NV_bindless_multi_draw_indirect_count")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/bindless_multi_draw_indirect_count.txt NV_bindless_multi_draw_indirect_count> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVBindlessMultiDrawIndirectCount' in those cases instead.
+gl_NV_bindless_multi_draw_indirect_count :: Bool
+gl_NV_bindless_multi_draw_indirect_count = member "GL_NV_bindless_multi_draw_indirect_count" extensions
+{-# NOINLINE gl_NV_bindless_multi_draw_indirect_count #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/bindless_texture.txt NV_bindless_texture> extension supported?
+glGetNVBindlessTexture :: MonadIO m => m Bool
+glGetNVBindlessTexture = getExtensions >>= (return . member "GL_NV_bindless_texture")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/bindless_texture.txt NV_bindless_texture> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVBindlessTexture' in those cases instead.
+gl_NV_bindless_texture :: Bool
+gl_NV_bindless_texture = member "GL_NV_bindless_texture" extensions
+{-# NOINLINE gl_NV_bindless_texture #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/blend_equation_advanced.txt NV_blend_equation_advanced> extension supported?
+glGetNVBlendEquationAdvanced :: MonadIO m => m Bool
+glGetNVBlendEquationAdvanced = getExtensions >>= (return . member "GL_NV_blend_equation_advanced")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/blend_equation_advanced.txt NV_blend_equation_advanced> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVBlendEquationAdvanced' in those cases instead.
+gl_NV_blend_equation_advanced :: Bool
+gl_NV_blend_equation_advanced = member "GL_NV_blend_equation_advanced" extensions
+{-# NOINLINE gl_NV_blend_equation_advanced #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/blend_equation_advanced.txt NV_blend_equation_advanced_coherent> extension supported?
+glGetNVBlendEquationAdvancedCoherent :: MonadIO m => m Bool
+glGetNVBlendEquationAdvancedCoherent = getExtensions >>= (return . member "GL_NV_blend_equation_advanced_coherent")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/blend_equation_advanced.txt NV_blend_equation_advanced_coherent> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVBlendEquationAdvancedCoherent' in those cases instead.
+gl_NV_blend_equation_advanced_coherent :: Bool
+gl_NV_blend_equation_advanced_coherent = member "GL_NV_blend_equation_advanced_coherent" extensions
+{-# NOINLINE gl_NV_blend_equation_advanced_coherent #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/blend_minmax_factor.txt NV_blend_minmax_factor> extension supported?
+glGetNVBlendMinmaxFactor :: MonadIO m => m Bool
+glGetNVBlendMinmaxFactor = getExtensions >>= (return . member "GL_NV_blend_minmax_factor")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/blend_minmax_factor.txt NV_blend_minmax_factor> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVBlendMinmaxFactor' in those cases instead.
+gl_NV_blend_minmax_factor :: Bool
+gl_NV_blend_minmax_factor = member "GL_NV_blend_minmax_factor" extensions
+{-# NOINLINE gl_NV_blend_minmax_factor #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/clip_space_w_scaling.txt NV_clip_space_w_scaling> extension supported?
+glGetNVClipSpaceWScaling :: MonadIO m => m Bool
+glGetNVClipSpaceWScaling = getExtensions >>= (return . member "GL_NV_clip_space_w_scaling")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/clip_space_w_scaling.txt NV_clip_space_w_scaling> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVClipSpaceWScaling' in those cases instead.
+gl_NV_clip_space_w_scaling :: Bool
+gl_NV_clip_space_w_scaling = member "GL_NV_clip_space_w_scaling" extensions
+{-# NOINLINE gl_NV_clip_space_w_scaling #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/command_list.txt NV_command_list> extension supported?
+glGetNVCommandList :: MonadIO m => m Bool
+glGetNVCommandList = getExtensions >>= (return . member "GL_NV_command_list")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/command_list.txt NV_command_list> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVCommandList' in those cases instead.
+gl_NV_command_list :: Bool
+gl_NV_command_list = member "GL_NV_command_list" extensions
+{-# NOINLINE gl_NV_command_list #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/compute_program5.txt NV_compute_program5> extension supported?
+glGetNVComputeProgram5 :: MonadIO m => m Bool
+glGetNVComputeProgram5 = getExtensions >>= (return . member "GL_NV_compute_program5")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/compute_program5.txt NV_compute_program5> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVComputeProgram5' in those cases instead.
+gl_NV_compute_program5 :: Bool
+gl_NV_compute_program5 = member "GL_NV_compute_program5" extensions
+{-# NOINLINE gl_NV_compute_program5 #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/conditional_render.txt NV_conditional_render> extension supported?
+glGetNVConditionalRender :: MonadIO m => m Bool
+glGetNVConditionalRender = getExtensions >>= (return . member "GL_NV_conditional_render")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/conditional_render.txt NV_conditional_render> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVConditionalRender' in those cases instead.
+gl_NV_conditional_render :: Bool
+gl_NV_conditional_render = member "GL_NV_conditional_render" extensions
+{-# NOINLINE gl_NV_conditional_render #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/conservative_raster.txt NV_conservative_raster> extension supported?
+glGetNVConservativeRaster :: MonadIO m => m Bool
+glGetNVConservativeRaster = getExtensions >>= (return . member "GL_NV_conservative_raster")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/conservative_raster.txt NV_conservative_raster> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVConservativeRaster' in those cases instead.
+gl_NV_conservative_raster :: Bool
+gl_NV_conservative_raster = member "GL_NV_conservative_raster" extensions
+{-# NOINLINE gl_NV_conservative_raster #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/conservative_raster_dilate.txt NV_conservative_raster_dilate> extension supported?
+glGetNVConservativeRasterDilate :: MonadIO m => m Bool
+glGetNVConservativeRasterDilate = getExtensions >>= (return . member "GL_NV_conservative_raster_dilate")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/conservative_raster_dilate.txt NV_conservative_raster_dilate> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVConservativeRasterDilate' in those cases instead.
+gl_NV_conservative_raster_dilate :: Bool
+gl_NV_conservative_raster_dilate = member "GL_NV_conservative_raster_dilate" extensions
+{-# NOINLINE gl_NV_conservative_raster_dilate #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/conservative_raster_pre_snap.txt NV_conservative_raster_pre_snap> extension supported?
+glGetNVConservativeRasterPreSnap :: MonadIO m => m Bool
+glGetNVConservativeRasterPreSnap = getExtensions >>= (return . member "GL_NV_conservative_raster_pre_snap")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/conservative_raster_pre_snap.txt NV_conservative_raster_pre_snap> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVConservativeRasterPreSnap' in those cases instead.
+gl_NV_conservative_raster_pre_snap :: Bool
+gl_NV_conservative_raster_pre_snap = member "GL_NV_conservative_raster_pre_snap" extensions
+{-# NOINLINE gl_NV_conservative_raster_pre_snap #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/conservative_raster_pre_snap_triangles.txt NV_conservative_raster_pre_snap_triangles> extension supported?
+glGetNVConservativeRasterPreSnapTriangles :: MonadIO m => m Bool
+glGetNVConservativeRasterPreSnapTriangles = getExtensions >>= (return . member "GL_NV_conservative_raster_pre_snap_triangles")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/conservative_raster_pre_snap_triangles.txt NV_conservative_raster_pre_snap_triangles> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVConservativeRasterPreSnapTriangles' in those cases instead.
+gl_NV_conservative_raster_pre_snap_triangles :: Bool
+gl_NV_conservative_raster_pre_snap_triangles = member "GL_NV_conservative_raster_pre_snap_triangles" extensions
+{-# NOINLINE gl_NV_conservative_raster_pre_snap_triangles #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/copy_depth_to_color.txt NV_copy_depth_to_color> extension supported?
+glGetNVCopyDepthToColor :: MonadIO m => m Bool
+glGetNVCopyDepthToColor = getExtensions >>= (return . member "GL_NV_copy_depth_to_color")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/copy_depth_to_color.txt NV_copy_depth_to_color> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVCopyDepthToColor' in those cases instead.
+gl_NV_copy_depth_to_color :: Bool
+gl_NV_copy_depth_to_color = member "GL_NV_copy_depth_to_color" extensions
+{-# NOINLINE gl_NV_copy_depth_to_color #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/copy_image.txt NV_copy_image> extension supported?
+glGetNVCopyImage :: MonadIO m => m Bool
+glGetNVCopyImage = getExtensions >>= (return . member "GL_NV_copy_image")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/copy_image.txt NV_copy_image> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVCopyImage' in those cases instead.
+gl_NV_copy_image :: Bool
+gl_NV_copy_image = member "GL_NV_copy_image" extensions
+{-# NOINLINE gl_NV_copy_image #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/deep_texture3D.txt NV_deep_texture3D> extension supported?
+glGetNVDeepTexture3D :: MonadIO m => m Bool
+glGetNVDeepTexture3D = getExtensions >>= (return . member "GL_NV_deep_texture3D")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/deep_texture3D.txt NV_deep_texture3D> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVDeepTexture3D' in those cases instead.
+gl_NV_deep_texture3D :: Bool
+gl_NV_deep_texture3D = member "GL_NV_deep_texture3D" extensions
+{-# NOINLINE gl_NV_deep_texture3D #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/depth_buffer_float.txt NV_depth_buffer_float> extension supported?
+glGetNVDepthBufferFloat :: MonadIO m => m Bool
+glGetNVDepthBufferFloat = getExtensions >>= (return . member "GL_NV_depth_buffer_float")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/depth_buffer_float.txt NV_depth_buffer_float> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVDepthBufferFloat' in those cases instead.
+gl_NV_depth_buffer_float :: Bool
+gl_NV_depth_buffer_float = member "GL_NV_depth_buffer_float" extensions
+{-# NOINLINE gl_NV_depth_buffer_float #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/depth_clamp.txt NV_depth_clamp> extension supported?
+glGetNVDepthClamp :: MonadIO m => m Bool
+glGetNVDepthClamp = getExtensions >>= (return . member "GL_NV_depth_clamp")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/depth_clamp.txt NV_depth_clamp> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVDepthClamp' in those cases instead.
+gl_NV_depth_clamp :: Bool
+gl_NV_depth_clamp = member "GL_NV_depth_clamp" extensions
+{-# NOINLINE gl_NV_depth_clamp #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/draw_texture.txt NV_draw_texture> extension supported?
+glGetNVDrawTexture :: MonadIO m => m Bool
+glGetNVDrawTexture = getExtensions >>= (return . member "GL_NV_draw_texture")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/draw_texture.txt NV_draw_texture> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVDrawTexture' in those cases instead.
+gl_NV_draw_texture :: Bool
+gl_NV_draw_texture = member "GL_NV_draw_texture" extensions
+{-# NOINLINE gl_NV_draw_texture #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/draw_vulkan_image.txt NV_draw_vulkan_image> extension supported?
+glGetNVDrawVulkanImage :: MonadIO m => m Bool
+glGetNVDrawVulkanImage = getExtensions >>= (return . member "GL_NV_draw_vulkan_image")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/draw_vulkan_image.txt NV_draw_vulkan_image> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVDrawVulkanImage' in those cases instead.
+gl_NV_draw_vulkan_image :: Bool
+gl_NV_draw_vulkan_image = member "GL_NV_draw_vulkan_image" extensions
+{-# NOINLINE gl_NV_draw_vulkan_image #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/evaluators.txt NV_evaluators> extension supported?
+glGetNVEvaluators :: MonadIO m => m Bool
+glGetNVEvaluators = getExtensions >>= (return . member "GL_NV_evaluators")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/evaluators.txt NV_evaluators> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVEvaluators' in those cases instead.
+gl_NV_evaluators :: Bool
+gl_NV_evaluators = member "GL_NV_evaluators" extensions
+{-# NOINLINE gl_NV_evaluators #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/explicit_multisample.txt NV_explicit_multisample> extension supported?
+glGetNVExplicitMultisample :: MonadIO m => m Bool
+glGetNVExplicitMultisample = getExtensions >>= (return . member "GL_NV_explicit_multisample")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/explicit_multisample.txt NV_explicit_multisample> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVExplicitMultisample' in those cases instead.
+gl_NV_explicit_multisample :: Bool
+gl_NV_explicit_multisample = member "GL_NV_explicit_multisample" extensions
+{-# NOINLINE gl_NV_explicit_multisample #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/fence.txt NV_fence> extension supported?
+glGetNVFence :: MonadIO m => m Bool
+glGetNVFence = getExtensions >>= (return . member "GL_NV_fence")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/fence.txt NV_fence> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVFence' in those cases instead.
+gl_NV_fence :: Bool
+gl_NV_fence = member "GL_NV_fence" extensions
+{-# NOINLINE gl_NV_fence #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/fill_rectangle.txt NV_fill_rectangle> extension supported?
+glGetNVFillRectangle :: MonadIO m => m Bool
+glGetNVFillRectangle = getExtensions >>= (return . member "GL_NV_fill_rectangle")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/fill_rectangle.txt NV_fill_rectangle> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVFillRectangle' in those cases instead.
+gl_NV_fill_rectangle :: Bool
+gl_NV_fill_rectangle = member "GL_NV_fill_rectangle" extensions
+{-# NOINLINE gl_NV_fill_rectangle #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/float_buffer.txt NV_float_buffer> extension supported?
+glGetNVFloatBuffer :: MonadIO m => m Bool
+glGetNVFloatBuffer = getExtensions >>= (return . member "GL_NV_float_buffer")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/float_buffer.txt NV_float_buffer> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVFloatBuffer' in those cases instead.
+gl_NV_float_buffer :: Bool
+gl_NV_float_buffer = member "GL_NV_float_buffer" extensions
+{-# NOINLINE gl_NV_float_buffer #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/fog_distance.txt NV_fog_distance> extension supported?
+glGetNVFogDistance :: MonadIO m => m Bool
+glGetNVFogDistance = getExtensions >>= (return . member "GL_NV_fog_distance")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/fog_distance.txt NV_fog_distance> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVFogDistance' in those cases instead.
+gl_NV_fog_distance :: Bool
+gl_NV_fog_distance = member "GL_NV_fog_distance" extensions
+{-# NOINLINE gl_NV_fog_distance #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/fragment_coverage_to_color.txt NV_fragment_coverage_to_color> extension supported?
+glGetNVFragmentCoverageToColor :: MonadIO m => m Bool
+glGetNVFragmentCoverageToColor = getExtensions >>= (return . member "GL_NV_fragment_coverage_to_color")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/fragment_coverage_to_color.txt NV_fragment_coverage_to_color> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVFragmentCoverageToColor' in those cases instead.
+gl_NV_fragment_coverage_to_color :: Bool
+gl_NV_fragment_coverage_to_color = member "GL_NV_fragment_coverage_to_color" extensions
+{-# NOINLINE gl_NV_fragment_coverage_to_color #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/fragment_program.txt NV_fragment_program> extension supported?
+glGetNVFragmentProgram :: MonadIO m => m Bool
+glGetNVFragmentProgram = getExtensions >>= (return . member "GL_NV_fragment_program")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/fragment_program.txt NV_fragment_program> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVFragmentProgram' in those cases instead.
+gl_NV_fragment_program :: Bool
+gl_NV_fragment_program = member "GL_NV_fragment_program" extensions
+{-# NOINLINE gl_NV_fragment_program #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/fragment_program2.txt NV_fragment_program2> extension supported?
+glGetNVFragmentProgram2 :: MonadIO m => m Bool
+glGetNVFragmentProgram2 = getExtensions >>= (return . member "GL_NV_fragment_program2")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/fragment_program2.txt NV_fragment_program2> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVFragmentProgram2' in those cases instead.
+gl_NV_fragment_program2 :: Bool
+gl_NV_fragment_program2 = member "GL_NV_fragment_program2" extensions
+{-# NOINLINE gl_NV_fragment_program2 #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/framebuffer_mixed_samples.txt NV_framebuffer_mixed_samples> extension supported?
+glGetNVFramebufferMixedSamples :: MonadIO m => m Bool
+glGetNVFramebufferMixedSamples = getExtensions >>= (return . member "GL_NV_framebuffer_mixed_samples")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/framebuffer_mixed_samples.txt NV_framebuffer_mixed_samples> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVFramebufferMixedSamples' in those cases instead.
+gl_NV_framebuffer_mixed_samples :: Bool
+gl_NV_framebuffer_mixed_samples = member "GL_NV_framebuffer_mixed_samples" extensions
+{-# NOINLINE gl_NV_framebuffer_mixed_samples #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/framebuffer_multisample_coverage.txt NV_framebuffer_multisample_coverage> extension supported?
+glGetNVFramebufferMultisampleCoverage :: MonadIO m => m Bool
+glGetNVFramebufferMultisampleCoverage = getExtensions >>= (return . member "GL_NV_framebuffer_multisample_coverage")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/framebuffer_multisample_coverage.txt NV_framebuffer_multisample_coverage> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVFramebufferMultisampleCoverage' in those cases instead.
+gl_NV_framebuffer_multisample_coverage :: Bool
+gl_NV_framebuffer_multisample_coverage = member "GL_NV_framebuffer_multisample_coverage" extensions
+{-# NOINLINE gl_NV_framebuffer_multisample_coverage #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/geometry_program4.txt NV_geometry_program4> extension supported?
+glGetNVGeometryProgram4 :: MonadIO m => m Bool
+glGetNVGeometryProgram4 = getExtensions >>= (return . member "GL_NV_geometry_program4")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/geometry_program4.txt NV_geometry_program4> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVGeometryProgram4' in those cases instead.
+gl_NV_geometry_program4 :: Bool
+gl_NV_geometry_program4 = member "GL_NV_geometry_program4" extensions
+{-# NOINLINE gl_NV_geometry_program4 #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/gpu_multicast.txt NV_gpu_multicast> extension supported?
+glGetNVGPUMulticast :: MonadIO m => m Bool
+glGetNVGPUMulticast = getExtensions >>= (return . member "GL_NV_gpu_multicast")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/gpu_multicast.txt NV_gpu_multicast> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVGPUMulticast' in those cases instead.
+gl_NV_gpu_multicast :: Bool
+gl_NV_gpu_multicast = member "GL_NV_gpu_multicast" extensions
+{-# NOINLINE gl_NV_gpu_multicast #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/gpu_program4.txt NV_gpu_program4> extension supported?
+glGetNVGPUProgram4 :: MonadIO m => m Bool
+glGetNVGPUProgram4 = getExtensions >>= (return . member "GL_NV_gpu_program4")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/gpu_program4.txt NV_gpu_program4> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVGPUProgram4' in those cases instead.
+gl_NV_gpu_program4 :: Bool
+gl_NV_gpu_program4 = member "GL_NV_gpu_program4" extensions
+{-# NOINLINE gl_NV_gpu_program4 #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/gpu_program5.txt NV_gpu_program5> extension supported?
+glGetNVGPUProgram5 :: MonadIO m => m Bool
+glGetNVGPUProgram5 = getExtensions >>= (return . member "GL_NV_gpu_program5")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/gpu_program5.txt NV_gpu_program5> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVGPUProgram5' in those cases instead.
+gl_NV_gpu_program5 :: Bool
+gl_NV_gpu_program5 = member "GL_NV_gpu_program5" extensions
+{-# NOINLINE gl_NV_gpu_program5 #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/gpu_shader5.txt NV_gpu_shader5> extension supported?
+glGetNVGPUShader5 :: MonadIO m => m Bool
+glGetNVGPUShader5 = getExtensions >>= (return . member "GL_NV_gpu_shader5")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/gpu_shader5.txt NV_gpu_shader5> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVGPUShader5' in those cases instead.
+gl_NV_gpu_shader5 :: Bool
+gl_NV_gpu_shader5 = member "GL_NV_gpu_shader5" extensions
+{-# NOINLINE gl_NV_gpu_shader5 #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/half_float.txt NV_half_float> extension supported?
+glGetNVHalfFloat :: MonadIO m => m Bool
+glGetNVHalfFloat = getExtensions >>= (return . member "GL_NV_half_float")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/half_float.txt NV_half_float> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVHalfFloat' in those cases instead.
+gl_NV_half_float :: Bool
+gl_NV_half_float = member "GL_NV_half_float" extensions
+{-# NOINLINE gl_NV_half_float #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/internalformat_sample_query.txt NV_internalformat_sample_query> extension supported?
+glGetNVInternalformatSampleQuery :: MonadIO m => m Bool
+glGetNVInternalformatSampleQuery = getExtensions >>= (return . member "GL_NV_internalformat_sample_query")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/internalformat_sample_query.txt NV_internalformat_sample_query> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVInternalformatSampleQuery' in those cases instead.
+gl_NV_internalformat_sample_query :: Bool
+gl_NV_internalformat_sample_query = member "GL_NV_internalformat_sample_query" extensions
+{-# NOINLINE gl_NV_internalformat_sample_query #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/light_max_exponent.txt NV_light_max_exponent> extension supported?
+glGetNVLightMaxExponent :: MonadIO m => m Bool
+glGetNVLightMaxExponent = getExtensions >>= (return . member "GL_NV_light_max_exponent")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/light_max_exponent.txt NV_light_max_exponent> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVLightMaxExponent' in those cases instead.
+gl_NV_light_max_exponent :: Bool
+gl_NV_light_max_exponent = member "GL_NV_light_max_exponent" extensions
+{-# NOINLINE gl_NV_light_max_exponent #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/memory_attachment.txt NV_memory_attachment> extension supported?
+glGetNVMemoryAttachment :: MonadIO m => m Bool
+glGetNVMemoryAttachment = getExtensions >>= (return . member "GL_NV_memory_attachment")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/memory_attachment.txt NV_memory_attachment> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVMemoryAttachment' in those cases instead.
+gl_NV_memory_attachment :: Bool
+gl_NV_memory_attachment = member "GL_NV_memory_attachment" extensions
+{-# NOINLINE gl_NV_memory_attachment #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/mesh_shader.txt NV_mesh_shader> extension supported?
+glGetNVMeshShader :: MonadIO m => m Bool
+glGetNVMeshShader = getExtensions >>= (return . member "GL_NV_mesh_shader")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/mesh_shader.txt NV_mesh_shader> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVMeshShader' in those cases instead.
+gl_NV_mesh_shader :: Bool
+gl_NV_mesh_shader = member "GL_NV_mesh_shader" extensions
+{-# NOINLINE gl_NV_mesh_shader #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/multisample_coverage.txt NV_multisample_coverage> extension supported?
+glGetNVMultisampleCoverage :: MonadIO m => m Bool
+glGetNVMultisampleCoverage = getExtensions >>= (return . member "GL_NV_multisample_coverage")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/multisample_coverage.txt NV_multisample_coverage> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVMultisampleCoverage' in those cases instead.
+gl_NV_multisample_coverage :: Bool
+gl_NV_multisample_coverage = member "GL_NV_multisample_coverage" extensions
+{-# NOINLINE gl_NV_multisample_coverage #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/multisample_filter_hint.txt NV_multisample_filter_hint> extension supported?
+glGetNVMultisampleFilterHint :: MonadIO m => m Bool
+glGetNVMultisampleFilterHint = getExtensions >>= (return . member "GL_NV_multisample_filter_hint")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/multisample_filter_hint.txt NV_multisample_filter_hint> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVMultisampleFilterHint' in those cases instead.
+gl_NV_multisample_filter_hint :: Bool
+gl_NV_multisample_filter_hint = member "GL_NV_multisample_filter_hint" extensions
+{-# NOINLINE gl_NV_multisample_filter_hint #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/occlusion_query.txt NV_occlusion_query> extension supported?
+glGetNVOcclusionQuery :: MonadIO m => m Bool
+glGetNVOcclusionQuery = getExtensions >>= (return . member "GL_NV_occlusion_query")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/occlusion_query.txt NV_occlusion_query> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVOcclusionQuery' in those cases instead.
+gl_NV_occlusion_query :: Bool
+gl_NV_occlusion_query = member "GL_NV_occlusion_query" extensions
+{-# NOINLINE gl_NV_occlusion_query #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/packed_depth_stencil.txt NV_packed_depth_stencil> extension supported?
+glGetNVPackedDepthStencil :: MonadIO m => m Bool
+glGetNVPackedDepthStencil = getExtensions >>= (return . member "GL_NV_packed_depth_stencil")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/packed_depth_stencil.txt NV_packed_depth_stencil> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVPackedDepthStencil' in those cases instead.
+gl_NV_packed_depth_stencil :: Bool
+gl_NV_packed_depth_stencil = member "GL_NV_packed_depth_stencil" extensions
+{-# NOINLINE gl_NV_packed_depth_stencil #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/parameter_buffer_object.txt NV_parameter_buffer_object> extension supported?
+glGetNVParameterBufferObject :: MonadIO m => m Bool
+glGetNVParameterBufferObject = getExtensions >>= (return . member "GL_NV_parameter_buffer_object")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/parameter_buffer_object.txt NV_parameter_buffer_object> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVParameterBufferObject' in those cases instead.
+gl_NV_parameter_buffer_object :: Bool
+gl_NV_parameter_buffer_object = member "GL_NV_parameter_buffer_object" extensions
+{-# NOINLINE gl_NV_parameter_buffer_object #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/path_rendering.txt NV_path_rendering> extension supported?
+glGetNVPathRendering :: MonadIO m => m Bool
+glGetNVPathRendering = getExtensions >>= (return . member "GL_NV_path_rendering")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/path_rendering.txt NV_path_rendering> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVPathRendering' in those cases instead.
+gl_NV_path_rendering :: Bool
+gl_NV_path_rendering = member "GL_NV_path_rendering" extensions
+{-# NOINLINE gl_NV_path_rendering #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/path_rendering_shared_edge.txt NV_path_rendering_shared_edge> extension supported?
+glGetNVPathRenderingSharedEdge :: MonadIO m => m Bool
+glGetNVPathRenderingSharedEdge = getExtensions >>= (return . member "GL_NV_path_rendering_shared_edge")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/path_rendering_shared_edge.txt NV_path_rendering_shared_edge> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVPathRenderingSharedEdge' in those cases instead.
+gl_NV_path_rendering_shared_edge :: Bool
+gl_NV_path_rendering_shared_edge = member "GL_NV_path_rendering_shared_edge" extensions
+{-# NOINLINE gl_NV_path_rendering_shared_edge #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/pixel_data_range.txt NV_pixel_data_range> extension supported?
+glGetNVPixelDataRange :: MonadIO m => m Bool
+glGetNVPixelDataRange = getExtensions >>= (return . member "GL_NV_pixel_data_range")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/pixel_data_range.txt NV_pixel_data_range> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVPixelDataRange' in those cases instead.
+gl_NV_pixel_data_range :: Bool
+gl_NV_pixel_data_range = member "GL_NV_pixel_data_range" extensions
+{-# NOINLINE gl_NV_pixel_data_range #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/point_sprite.txt NV_point_sprite> extension supported?
+glGetNVPointSprite :: MonadIO m => m Bool
+glGetNVPointSprite = getExtensions >>= (return . member "GL_NV_point_sprite")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/point_sprite.txt NV_point_sprite> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVPointSprite' in those cases instead.
+gl_NV_point_sprite :: Bool
+gl_NV_point_sprite = member "GL_NV_point_sprite" extensions
+{-# NOINLINE gl_NV_point_sprite #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/present_video.txt NV_present_video> extension supported?
+glGetNVPresentVideo :: MonadIO m => m Bool
+glGetNVPresentVideo = getExtensions >>= (return . member "GL_NV_present_video")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/present_video.txt NV_present_video> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVPresentVideo' in those cases instead.
+gl_NV_present_video :: Bool
+gl_NV_present_video = member "GL_NV_present_video" extensions
+{-# NOINLINE gl_NV_present_video #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/primitive_restart.txt NV_primitive_restart> extension supported?
+glGetNVPrimitiveRestart :: MonadIO m => m Bool
+glGetNVPrimitiveRestart = getExtensions >>= (return . member "GL_NV_primitive_restart")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/primitive_restart.txt NV_primitive_restart> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVPrimitiveRestart' in those cases instead.
+gl_NV_primitive_restart :: Bool
+gl_NV_primitive_restart = member "GL_NV_primitive_restart" extensions
+{-# NOINLINE gl_NV_primitive_restart #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/query_resource.txt NV_query_resource> extension supported?
+glGetNVQueryResource :: MonadIO m => m Bool
+glGetNVQueryResource = getExtensions >>= (return . member "GL_NV_query_resource")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/query_resource.txt NV_query_resource> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVQueryResource' in those cases instead.
+gl_NV_query_resource :: Bool
+gl_NV_query_resource = member "GL_NV_query_resource" extensions
+{-# NOINLINE gl_NV_query_resource #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/query_resource_tag.txt NV_query_resource_tag> extension supported?
+glGetNVQueryResourceTag :: MonadIO m => m Bool
+glGetNVQueryResourceTag = getExtensions >>= (return . member "GL_NV_query_resource_tag")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/query_resource_tag.txt NV_query_resource_tag> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVQueryResourceTag' in those cases instead.
+gl_NV_query_resource_tag :: Bool
+gl_NV_query_resource_tag = member "GL_NV_query_resource_tag" extensions
+{-# NOINLINE gl_NV_query_resource_tag #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/register_combiners.txt NV_register_combiners> extension supported?
+glGetNVRegisterCombiners :: MonadIO m => m Bool
+glGetNVRegisterCombiners = getExtensions >>= (return . member "GL_NV_register_combiners")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/register_combiners.txt NV_register_combiners> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVRegisterCombiners' in those cases instead.
+gl_NV_register_combiners :: Bool
+gl_NV_register_combiners = member "GL_NV_register_combiners" extensions
+{-# NOINLINE gl_NV_register_combiners #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/register_combiners2.txt NV_register_combiners2> extension supported?
+glGetNVRegisterCombiners2 :: MonadIO m => m Bool
+glGetNVRegisterCombiners2 = getExtensions >>= (return . member "GL_NV_register_combiners2")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/register_combiners2.txt NV_register_combiners2> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVRegisterCombiners2' in those cases instead.
+gl_NV_register_combiners2 :: Bool
+gl_NV_register_combiners2 = member "GL_NV_register_combiners2" extensions
+{-# NOINLINE gl_NV_register_combiners2 #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/representative_fragment_test.txt NV_representative_fragment_test> extension supported?
+glGetNVRepresentativeFragmentTest :: MonadIO m => m Bool
+glGetNVRepresentativeFragmentTest = getExtensions >>= (return . member "GL_NV_representative_fragment_test")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/representative_fragment_test.txt NV_representative_fragment_test> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVRepresentativeFragmentTest' in those cases instead.
+gl_NV_representative_fragment_test :: Bool
+gl_NV_representative_fragment_test = member "GL_NV_representative_fragment_test" extensions
+{-# NOINLINE gl_NV_representative_fragment_test #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/robustness_video_memory_purge.txt NV_robustness_video_memory_purge> extension supported?
+glGetNVRobustnessVideoMemoryPurge :: MonadIO m => m Bool
+glGetNVRobustnessVideoMemoryPurge = getExtensions >>= (return . member "GL_NV_robustness_video_memory_purge")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/robustness_video_memory_purge.txt NV_robustness_video_memory_purge> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVRobustnessVideoMemoryPurge' in those cases instead.
+gl_NV_robustness_video_memory_purge :: Bool
+gl_NV_robustness_video_memory_purge = member "GL_NV_robustness_video_memory_purge" extensions
+{-# NOINLINE gl_NV_robustness_video_memory_purge #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/sample_locations.txt NV_sample_locations> extension supported?
+glGetNVSampleLocations :: MonadIO m => m Bool
+glGetNVSampleLocations = getExtensions >>= (return . member "GL_NV_sample_locations")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/sample_locations.txt NV_sample_locations> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVSampleLocations' in those cases instead.
+gl_NV_sample_locations :: Bool
+gl_NV_sample_locations = member "GL_NV_sample_locations" extensions
+{-# NOINLINE gl_NV_sample_locations #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/scissor_exclusive.txt NV_scissor_exclusive> extension supported?
+glGetNVScissorExclusive :: MonadIO m => m Bool
+glGetNVScissorExclusive = getExtensions >>= (return . member "GL_NV_scissor_exclusive")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/scissor_exclusive.txt NV_scissor_exclusive> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVScissorExclusive' in those cases instead.
+gl_NV_scissor_exclusive :: Bool
+gl_NV_scissor_exclusive = member "GL_NV_scissor_exclusive" extensions
+{-# NOINLINE gl_NV_scissor_exclusive #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/shader_buffer_load.txt NV_shader_buffer_load> extension supported?
+glGetNVShaderBufferLoad :: MonadIO m => m Bool
+glGetNVShaderBufferLoad = getExtensions >>= (return . member "GL_NV_shader_buffer_load")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/shader_buffer_load.txt NV_shader_buffer_load> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVShaderBufferLoad' in those cases instead.
+gl_NV_shader_buffer_load :: Bool
+gl_NV_shader_buffer_load = member "GL_NV_shader_buffer_load" extensions
+{-# NOINLINE gl_NV_shader_buffer_load #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/shader_buffer_store.txt NV_shader_buffer_store> extension supported?
+glGetNVShaderBufferStore :: MonadIO m => m Bool
+glGetNVShaderBufferStore = getExtensions >>= (return . member "GL_NV_shader_buffer_store")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/shader_buffer_store.txt NV_shader_buffer_store> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVShaderBufferStore' in those cases instead.
+gl_NV_shader_buffer_store :: Bool
+gl_NV_shader_buffer_store = member "GL_NV_shader_buffer_store" extensions
+{-# NOINLINE gl_NV_shader_buffer_store #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/shader_subgroup_partitioned.txt NV_shader_subgroup_partitioned> extension supported?
+glGetNVShaderSubgroupPartitioned :: MonadIO m => m Bool
+glGetNVShaderSubgroupPartitioned = getExtensions >>= (return . member "GL_NV_shader_subgroup_partitioned")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/shader_subgroup_partitioned.txt NV_shader_subgroup_partitioned> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVShaderSubgroupPartitioned' in those cases instead.
+gl_NV_shader_subgroup_partitioned :: Bool
+gl_NV_shader_subgroup_partitioned = member "GL_NV_shader_subgroup_partitioned" extensions
+{-# NOINLINE gl_NV_shader_subgroup_partitioned #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/shader_thread_group.txt NV_shader_thread_group> extension supported?
+glGetNVShaderThreadGroup :: MonadIO m => m Bool
+glGetNVShaderThreadGroup = getExtensions >>= (return . member "GL_NV_shader_thread_group")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/shader_thread_group.txt NV_shader_thread_group> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVShaderThreadGroup' in those cases instead.
+gl_NV_shader_thread_group :: Bool
+gl_NV_shader_thread_group = member "GL_NV_shader_thread_group" extensions
+{-# NOINLINE gl_NV_shader_thread_group #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/shading_rate_image.txt NV_shading_rate_image> extension supported?
+glGetNVShadingRateImage :: MonadIO m => m Bool
+glGetNVShadingRateImage = getExtensions >>= (return . member "GL_NV_shading_rate_image")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/shading_rate_image.txt NV_shading_rate_image> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVShadingRateImage' in those cases instead.
+gl_NV_shading_rate_image :: Bool
+gl_NV_shading_rate_image = member "GL_NV_shading_rate_image" extensions
+{-# NOINLINE gl_NV_shading_rate_image #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/tessellation_program5.txt NV_tessellation_program5> extension supported?
+glGetNVTessellationProgram5 :: MonadIO m => m Bool
+glGetNVTessellationProgram5 = getExtensions >>= (return . member "GL_NV_tessellation_program5")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/tessellation_program5.txt NV_tessellation_program5> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVTessellationProgram5' in those cases instead.
+gl_NV_tessellation_program5 :: Bool
+gl_NV_tessellation_program5 = member "GL_NV_tessellation_program5" extensions
+{-# NOINLINE gl_NV_tessellation_program5 #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/texgen_emboss.txt NV_texgen_emboss> extension supported?
+glGetNVTexgenEmboss :: MonadIO m => m Bool
+glGetNVTexgenEmboss = getExtensions >>= (return . member "GL_NV_texgen_emboss")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/texgen_emboss.txt NV_texgen_emboss> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVTexgenEmboss' in those cases instead.
+gl_NV_texgen_emboss :: Bool
+gl_NV_texgen_emboss = member "GL_NV_texgen_emboss" extensions
+{-# NOINLINE gl_NV_texgen_emboss #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/texgen_reflection.txt NV_texgen_reflection> extension supported?
+glGetNVTexgenReflection :: MonadIO m => m Bool
+glGetNVTexgenReflection = getExtensions >>= (return . member "GL_NV_texgen_reflection")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/texgen_reflection.txt NV_texgen_reflection> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVTexgenReflection' in those cases instead.
+gl_NV_texgen_reflection :: Bool
+gl_NV_texgen_reflection = member "GL_NV_texgen_reflection" extensions
+{-# NOINLINE gl_NV_texgen_reflection #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/texture_barrier.txt NV_texture_barrier> extension supported?
+glGetNVTextureBarrier :: MonadIO m => m Bool
+glGetNVTextureBarrier = getExtensions >>= (return . member "GL_NV_texture_barrier")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/texture_barrier.txt NV_texture_barrier> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVTextureBarrier' in those cases instead.
+gl_NV_texture_barrier :: Bool
+gl_NV_texture_barrier = member "GL_NV_texture_barrier" extensions
+{-# NOINLINE gl_NV_texture_barrier #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/texture_env_combine4.txt NV_texture_env_combine4> extension supported?
+glGetNVTextureEnvCombine4 :: MonadIO m => m Bool
+glGetNVTextureEnvCombine4 = getExtensions >>= (return . member "GL_NV_texture_env_combine4")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/texture_env_combine4.txt NV_texture_env_combine4> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVTextureEnvCombine4' in those cases instead.
+gl_NV_texture_env_combine4 :: Bool
+gl_NV_texture_env_combine4 = member "GL_NV_texture_env_combine4" extensions
+{-# NOINLINE gl_NV_texture_env_combine4 #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/texture_expand_normal.txt NV_texture_expand_normal> extension supported?
+glGetNVTextureExpandNormal :: MonadIO m => m Bool
+glGetNVTextureExpandNormal = getExtensions >>= (return . member "GL_NV_texture_expand_normal")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/texture_expand_normal.txt NV_texture_expand_normal> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVTextureExpandNormal' in those cases instead.
+gl_NV_texture_expand_normal :: Bool
+gl_NV_texture_expand_normal = member "GL_NV_texture_expand_normal" extensions
+{-# NOINLINE gl_NV_texture_expand_normal #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/texture_multisample.txt NV_texture_multisample> extension supported?
+glGetNVTextureMultisample :: MonadIO m => m Bool
+glGetNVTextureMultisample = getExtensions >>= (return . member "GL_NV_texture_multisample")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/texture_multisample.txt NV_texture_multisample> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVTextureMultisample' in those cases instead.
+gl_NV_texture_multisample :: Bool
+gl_NV_texture_multisample = member "GL_NV_texture_multisample" extensions
+{-# NOINLINE gl_NV_texture_multisample #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/texture_rectangle.txt NV_texture_rectangle> extension supported?
+glGetNVTextureRectangle :: MonadIO m => m Bool
+glGetNVTextureRectangle = getExtensions >>= (return . member "GL_NV_texture_rectangle")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/texture_rectangle.txt NV_texture_rectangle> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVTextureRectangle' in those cases instead.
+gl_NV_texture_rectangle :: Bool
+gl_NV_texture_rectangle = member "GL_NV_texture_rectangle" extensions
+{-# NOINLINE gl_NV_texture_rectangle #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/texture_shader.txt NV_texture_shader> extension supported?
+glGetNVTextureShader :: MonadIO m => m Bool
+glGetNVTextureShader = getExtensions >>= (return . member "GL_NV_texture_shader")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/texture_shader.txt NV_texture_shader> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVTextureShader' in those cases instead.
+gl_NV_texture_shader :: Bool
+gl_NV_texture_shader = member "GL_NV_texture_shader" extensions
+{-# NOINLINE gl_NV_texture_shader #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/texture_shader2.txt NV_texture_shader2> extension supported?
+glGetNVTextureShader2 :: MonadIO m => m Bool
+glGetNVTextureShader2 = getExtensions >>= (return . member "GL_NV_texture_shader2")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/texture_shader2.txt NV_texture_shader2> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVTextureShader2' in those cases instead.
+gl_NV_texture_shader2 :: Bool
+gl_NV_texture_shader2 = member "GL_NV_texture_shader2" extensions
+{-# NOINLINE gl_NV_texture_shader2 #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/texture_shader3.txt NV_texture_shader3> extension supported?
+glGetNVTextureShader3 :: MonadIO m => m Bool
+glGetNVTextureShader3 = getExtensions >>= (return . member "GL_NV_texture_shader3")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/texture_shader3.txt NV_texture_shader3> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVTextureShader3' in those cases instead.
+gl_NV_texture_shader3 :: Bool
+gl_NV_texture_shader3 = member "GL_NV_texture_shader3" extensions
+{-# NOINLINE gl_NV_texture_shader3 #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/transform_feedback.txt NV_transform_feedback> extension supported?
+glGetNVTransformFeedback :: MonadIO m => m Bool
+glGetNVTransformFeedback = getExtensions >>= (return . member "GL_NV_transform_feedback")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/transform_feedback.txt NV_transform_feedback> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVTransformFeedback' in those cases instead.
+gl_NV_transform_feedback :: Bool
+gl_NV_transform_feedback = member "GL_NV_transform_feedback" extensions
+{-# NOINLINE gl_NV_transform_feedback #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/transform_feedback2.txt NV_transform_feedback2> extension supported?
+glGetNVTransformFeedback2 :: MonadIO m => m Bool
+glGetNVTransformFeedback2 = getExtensions >>= (return . member "GL_NV_transform_feedback2")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/transform_feedback2.txt NV_transform_feedback2> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVTransformFeedback2' in those cases instead.
+gl_NV_transform_feedback2 :: Bool
+gl_NV_transform_feedback2 = member "GL_NV_transform_feedback2" extensions
+{-# NOINLINE gl_NV_transform_feedback2 #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/uniform_buffer_unified_memory.txt NV_uniform_buffer_unified_memory> extension supported?
+glGetNVUniformBufferUnifiedMemory :: MonadIO m => m Bool
+glGetNVUniformBufferUnifiedMemory = getExtensions >>= (return . member "GL_NV_uniform_buffer_unified_memory")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/uniform_buffer_unified_memory.txt NV_uniform_buffer_unified_memory> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVUniformBufferUnifiedMemory' in those cases instead.
+gl_NV_uniform_buffer_unified_memory :: Bool
+gl_NV_uniform_buffer_unified_memory = member "GL_NV_uniform_buffer_unified_memory" extensions
+{-# NOINLINE gl_NV_uniform_buffer_unified_memory #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/vdpau_interop.txt NV_vdpau_interop> extension supported?
+glGetNVVDPAUInterop :: MonadIO m => m Bool
+glGetNVVDPAUInterop = getExtensions >>= (return . member "GL_NV_vdpau_interop")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/vdpau_interop.txt NV_vdpau_interop> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVVDPAUInterop' in those cases instead.
+gl_NV_vdpau_interop :: Bool
+gl_NV_vdpau_interop = member "GL_NV_vdpau_interop" extensions
+{-# NOINLINE gl_NV_vdpau_interop #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/vdpau_interop2.txt NV_vdpau_interop2> extension supported?
+glGetNVVDPAUInterop2 :: MonadIO m => m Bool
+glGetNVVDPAUInterop2 = getExtensions >>= (return . member "GL_NV_vdpau_interop2")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/vdpau_interop2.txt NV_vdpau_interop2> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVVDPAUInterop2' in those cases instead.
+gl_NV_vdpau_interop2 :: Bool
+gl_NV_vdpau_interop2 = member "GL_NV_vdpau_interop2" extensions
+{-# NOINLINE gl_NV_vdpau_interop2 #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/vertex_array_range.txt NV_vertex_array_range> extension supported?
+glGetNVVertexArrayRange :: MonadIO m => m Bool
+glGetNVVertexArrayRange = getExtensions >>= (return . member "GL_NV_vertex_array_range")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/vertex_array_range.txt NV_vertex_array_range> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVVertexArrayRange' in those cases instead.
+gl_NV_vertex_array_range :: Bool
+gl_NV_vertex_array_range = member "GL_NV_vertex_array_range" extensions
+{-# NOINLINE gl_NV_vertex_array_range #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/vertex_array_range2.txt NV_vertex_array_range2> extension supported?
+glGetNVVertexArrayRange2 :: MonadIO m => m Bool
+glGetNVVertexArrayRange2 = getExtensions >>= (return . member "GL_NV_vertex_array_range2")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/vertex_array_range2.txt NV_vertex_array_range2> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVVertexArrayRange2' in those cases instead.
+gl_NV_vertex_array_range2 :: Bool
+gl_NV_vertex_array_range2 = member "GL_NV_vertex_array_range2" extensions
+{-# NOINLINE gl_NV_vertex_array_range2 #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/vertex_attrib_integer_64bit.txt NV_vertex_attrib_integer_64bit> extension supported?
+glGetNVVertexAttribInteger64Bit :: MonadIO m => m Bool
+glGetNVVertexAttribInteger64Bit = getExtensions >>= (return . member "GL_NV_vertex_attrib_integer_64bit")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/vertex_attrib_integer_64bit.txt NV_vertex_attrib_integer_64bit> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVVertexAttribInteger64Bit' in those cases instead.
+gl_NV_vertex_attrib_integer_64bit :: Bool
+gl_NV_vertex_attrib_integer_64bit = member "GL_NV_vertex_attrib_integer_64bit" extensions
+{-# NOINLINE gl_NV_vertex_attrib_integer_64bit #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/vertex_buffer_unified_memory.txt NV_vertex_buffer_unified_memory> extension supported?
+glGetNVVertexBufferUnifiedMemory :: MonadIO m => m Bool
+glGetNVVertexBufferUnifiedMemory = getExtensions >>= (return . member "GL_NV_vertex_buffer_unified_memory")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/vertex_buffer_unified_memory.txt NV_vertex_buffer_unified_memory> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVVertexBufferUnifiedMemory' in those cases instead.
+gl_NV_vertex_buffer_unified_memory :: Bool
+gl_NV_vertex_buffer_unified_memory = member "GL_NV_vertex_buffer_unified_memory" extensions
+{-# NOINLINE gl_NV_vertex_buffer_unified_memory #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/vertex_program.txt NV_vertex_program> extension supported?
+glGetNVVertexProgram :: MonadIO m => m Bool
+glGetNVVertexProgram = getExtensions >>= (return . member "GL_NV_vertex_program")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/vertex_program.txt NV_vertex_program> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVVertexProgram' in those cases instead.
+gl_NV_vertex_program :: Bool
+gl_NV_vertex_program = member "GL_NV_vertex_program" extensions
+{-# NOINLINE gl_NV_vertex_program #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/vertex_program2_option.txt NV_vertex_program2_option> extension supported?
+glGetNVVertexProgram2Option :: MonadIO m => m Bool
+glGetNVVertexProgram2Option = getExtensions >>= (return . member "GL_NV_vertex_program2_option")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/vertex_program2_option.txt NV_vertex_program2_option> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVVertexProgram2Option' in those cases instead.
+gl_NV_vertex_program2_option :: Bool
+gl_NV_vertex_program2_option = member "GL_NV_vertex_program2_option" extensions
+{-# NOINLINE gl_NV_vertex_program2_option #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/vertex_program3.txt NV_vertex_program3> extension supported?
+glGetNVVertexProgram3 :: MonadIO m => m Bool
+glGetNVVertexProgram3 = getExtensions >>= (return . member "GL_NV_vertex_program3")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/vertex_program3.txt NV_vertex_program3> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVVertexProgram3' in those cases instead.
+gl_NV_vertex_program3 :: Bool
+gl_NV_vertex_program3 = member "GL_NV_vertex_program3" extensions
+{-# NOINLINE gl_NV_vertex_program3 #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/vertex_program4.txt NV_vertex_program4> extension supported?
+glGetNVVertexProgram4 :: MonadIO m => m Bool
+glGetNVVertexProgram4 = getExtensions >>= (return . member "GL_NV_vertex_program4")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/vertex_program4.txt NV_vertex_program4> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVVertexProgram4' in those cases instead.
+gl_NV_vertex_program4 :: Bool
+gl_NV_vertex_program4 = member "GL_NV_vertex_program4" extensions
+{-# NOINLINE gl_NV_vertex_program4 #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/video_capture.txt NV_video_capture> extension supported?
+glGetNVVideoCapture :: MonadIO m => m Bool
+glGetNVVideoCapture = getExtensions >>= (return . member "GL_NV_video_capture")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/video_capture.txt NV_video_capture> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVVideoCapture' in those cases instead.
+gl_NV_video_capture :: Bool
+gl_NV_video_capture = member "GL_NV_video_capture" extensions
+{-# NOINLINE gl_NV_video_capture #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/viewport_swizzle.txt NV_viewport_swizzle> extension supported?
+glGetNVViewportSwizzle :: MonadIO m => m Bool
+glGetNVViewportSwizzle = getExtensions >>= (return . member "GL_NV_viewport_swizzle")
+
+-- | Is the <https://www.opengl.org/registry/specs/NV/viewport_swizzle.txt NV_viewport_swizzle> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVViewportSwizzle' in those cases instead.
+gl_NV_viewport_swizzle :: Bool
+gl_NV_viewport_swizzle = member "GL_NV_viewport_swizzle" extensions
+{-# NOINLINE gl_NV_viewport_swizzle #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NVX/nvx_conditional_render.txt NVX_conditional_render> extension supported?
+glGetNVXConditionalRender :: MonadIO m => m Bool
+glGetNVXConditionalRender = getExtensions >>= (return . member "GL_NVX_conditional_render")
+
+-- | Is the <https://www.opengl.org/registry/specs/NVX/nvx_conditional_render.txt NVX_conditional_render> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVXConditionalRender' in those cases instead.
+gl_NVX_conditional_render :: Bool
+gl_NVX_conditional_render = member "GL_NVX_conditional_render" extensions
+{-# NOINLINE gl_NVX_conditional_render #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NVX/gpu_memory_info.txt NVX_gpu_memory_info> extension supported?
+glGetNVXGPUMemoryInfo :: MonadIO m => m Bool
+glGetNVXGPUMemoryInfo = getExtensions >>= (return . member "GL_NVX_gpu_memory_info")
+
+-- | Is the <https://www.opengl.org/registry/specs/NVX/gpu_memory_info.txt NVX_gpu_memory_info> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVXGPUMemoryInfo' in those cases instead.
+gl_NVX_gpu_memory_info :: Bool
+gl_NVX_gpu_memory_info = member "GL_NVX_gpu_memory_info" extensions
+{-# NOINLINE gl_NVX_gpu_memory_info #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NVX/gpu_multicast2.txt NVX_gpu_multicast2> extension supported?
+glGetNVXGPUMulticast2 :: MonadIO m => m Bool
+glGetNVXGPUMulticast2 = getExtensions >>= (return . member "GL_NVX_gpu_multicast2")
+
+-- | Is the <https://www.opengl.org/registry/specs/NVX/gpu_multicast2.txt NVX_gpu_multicast2> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVXGPUMulticast2' in those cases instead.
+gl_NVX_gpu_multicast2 :: Bool
+gl_NVX_gpu_multicast2 = member "GL_NVX_gpu_multicast2" extensions
+{-# NOINLINE gl_NVX_gpu_multicast2 #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NVX/linked_gpu_multicast.txt NVX_linked_gpu_multicast> extension supported?
+glGetNVXLinkedGPUMulticast :: MonadIO m => m Bool
+glGetNVXLinkedGPUMulticast = getExtensions >>= (return . member "GL_NVX_linked_gpu_multicast")
+
+-- | Is the <https://www.opengl.org/registry/specs/NVX/linked_gpu_multicast.txt NVX_linked_gpu_multicast> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVXLinkedGPUMulticast' in those cases instead.
+gl_NVX_linked_gpu_multicast :: Bool
+gl_NVX_linked_gpu_multicast = member "GL_NVX_linked_gpu_multicast" extensions
+{-# NOINLINE gl_NVX_linked_gpu_multicast #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/NVX/progress_fence.txt NVX_progress_fence> extension supported?
+glGetNVXProgressFence :: MonadIO m => m Bool
+glGetNVXProgressFence = getExtensions >>= (return . member "GL_NVX_progress_fence")
+
+-- | Is the <https://www.opengl.org/registry/specs/NVX/progress_fence.txt NVX_progress_fence> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetNVXProgressFence' in those cases instead.
+gl_NVX_progress_fence :: Bool
+gl_NVX_progress_fence = member "GL_NVX_progress_fence" extensions
+{-# NOINLINE gl_NVX_progress_fence #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/OES/OES_byte_coordinates.txt OES_byte_coordinates> extension supported?
+glGetOESByteCoordinates :: MonadIO m => m Bool
+glGetOESByteCoordinates = getExtensions >>= (return . member "GL_OES_byte_coordinates")
+
+-- | Is the <https://www.opengl.org/registry/specs/OES/OES_byte_coordinates.txt OES_byte_coordinates> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetOESByteCoordinates' in those cases instead.
+gl_OES_byte_coordinates :: Bool
+gl_OES_byte_coordinates = member "GL_OES_byte_coordinates" extensions
+{-# NOINLINE gl_OES_byte_coordinates #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/OES/OES_compressed_paletted_texture.txt OES_compressed_paletted_texture> extension supported?
+glGetOESCompressedPalettedTexture :: MonadIO m => m Bool
+glGetOESCompressedPalettedTexture = getExtensions >>= (return . member "GL_OES_compressed_paletted_texture")
+
+-- | Is the <https://www.opengl.org/registry/specs/OES/OES_compressed_paletted_texture.txt OES_compressed_paletted_texture> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetOESCompressedPalettedTexture' in those cases instead.
+gl_OES_compressed_paletted_texture :: Bool
+gl_OES_compressed_paletted_texture = member "GL_OES_compressed_paletted_texture" extensions
+{-# NOINLINE gl_OES_compressed_paletted_texture #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/OES/OES_fixed_point.txt OES_fixed_point> extension supported?
+glGetOESFixedPoint :: MonadIO m => m Bool
+glGetOESFixedPoint = getExtensions >>= (return . member "GL_OES_fixed_point")
+
+-- | Is the <https://www.opengl.org/registry/specs/OES/OES_fixed_point.txt OES_fixed_point> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetOESFixedPoint' in those cases instead.
+gl_OES_fixed_point :: Bool
+gl_OES_fixed_point = member "GL_OES_fixed_point" extensions
+{-# NOINLINE gl_OES_fixed_point #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/OES/OES_query_matrix.txt OES_query_matrix> extension supported?
+glGetOESQueryMatrix :: MonadIO m => m Bool
+glGetOESQueryMatrix = getExtensions >>= (return . member "GL_OES_query_matrix")
+
+-- | Is the <https://www.opengl.org/registry/specs/OES/OES_query_matrix.txt OES_query_matrix> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetOESQueryMatrix' in those cases instead.
+gl_OES_query_matrix :: Bool
+gl_OES_query_matrix = member "GL_OES_query_matrix" extensions
+{-# NOINLINE gl_OES_query_matrix #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/OES/OES_read_format.txt OES_read_format> extension supported?
+glGetOESReadFormat :: MonadIO m => m Bool
+glGetOESReadFormat = getExtensions >>= (return . member "GL_OES_read_format")
+
+-- | Is the <https://www.opengl.org/registry/specs/OES/OES_read_format.txt OES_read_format> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetOESReadFormat' in those cases instead.
+gl_OES_read_format :: Bool
+gl_OES_read_format = member "GL_OES_read_format" extensions
+{-# NOINLINE gl_OES_read_format #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/OES/OES_single_precision.txt OES_single_precision> extension supported?
+glGetOESSinglePrecision :: MonadIO m => m Bool
+glGetOESSinglePrecision = getExtensions >>= (return . member "GL_OES_single_precision")
+
+-- | Is the <https://www.opengl.org/registry/specs/OES/OES_single_precision.txt OES_single_precision> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetOESSinglePrecision' in those cases instead.
+gl_OES_single_precision :: Bool
+gl_OES_single_precision = member "GL_OES_single_precision" extensions
+{-# NOINLINE gl_OES_single_precision #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/OML/interlace.txt OML_interlace> extension supported?
+glGetOMLInterlace :: MonadIO m => m Bool
+glGetOMLInterlace = getExtensions >>= (return . member "GL_OML_interlace")
+
+-- | Is the <https://www.opengl.org/registry/specs/OML/interlace.txt OML_interlace> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetOMLInterlace' in those cases instead.
+gl_OML_interlace :: Bool
+gl_OML_interlace = member "GL_OML_interlace" extensions
+{-# NOINLINE gl_OML_interlace #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/OML/resample.txt OML_resample> extension supported?
+glGetOMLResample :: MonadIO m => m Bool
+glGetOMLResample = getExtensions >>= (return . member "GL_OML_resample")
+
+-- | Is the <https://www.opengl.org/registry/specs/OML/resample.txt OML_resample> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetOMLResample' in those cases instead.
+gl_OML_resample :: Bool
+gl_OML_resample = member "GL_OML_resample" extensions
+{-# NOINLINE gl_OML_resample #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/OML/subsample.txt OML_subsample> extension supported?
+glGetOMLSubsample :: MonadIO m => m Bool
+glGetOMLSubsample = getExtensions >>= (return . member "GL_OML_subsample")
+
+-- | Is the <https://www.opengl.org/registry/specs/OML/subsample.txt OML_subsample> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetOMLSubsample' in those cases instead.
+gl_OML_subsample :: Bool
+gl_OML_subsample = member "GL_OML_subsample" extensions
+{-# NOINLINE gl_OML_subsample #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/OVR/multiview.txt OVR_multiview> extension supported?
+glGetOVRMultiview :: MonadIO m => m Bool
+glGetOVRMultiview = getExtensions >>= (return . member "GL_OVR_multiview")
+
+-- | Is the <https://www.opengl.org/registry/specs/OVR/multiview.txt OVR_multiview> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetOVRMultiview' in those cases instead.
+gl_OVR_multiview :: Bool
+gl_OVR_multiview = member "GL_OVR_multiview" extensions
+{-# NOINLINE gl_OVR_multiview #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/PGI/misc_hints.txt PGI_misc_hints> extension supported?
+glGetPGIMiscHints :: MonadIO m => m Bool
+glGetPGIMiscHints = getExtensions >>= (return . member "GL_PGI_misc_hints")
+
+-- | Is the <https://www.opengl.org/registry/specs/PGI/misc_hints.txt PGI_misc_hints> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetPGIMiscHints' in those cases instead.
+gl_PGI_misc_hints :: Bool
+gl_PGI_misc_hints = member "GL_PGI_misc_hints" extensions
+{-# NOINLINE gl_PGI_misc_hints #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/PGI/vertex_hints.txt PGI_vertex_hints> extension supported?
+glGetPGIVertexHints :: MonadIO m => m Bool
+glGetPGIVertexHints = getExtensions >>= (return . member "GL_PGI_vertex_hints")
+
+-- | Is the <https://www.opengl.org/registry/specs/PGI/vertex_hints.txt PGI_vertex_hints> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetPGIVertexHints' in those cases instead.
+gl_PGI_vertex_hints :: Bool
+gl_PGI_vertex_hints = member "GL_PGI_vertex_hints" extensions
+{-# NOINLINE gl_PGI_vertex_hints #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/REND/screen_coordinates.txt REND_screen_coordinates> extension supported?
+glGetRENDScreenCoordinates :: MonadIO m => m Bool
+glGetRENDScreenCoordinates = getExtensions >>= (return . member "GL_REND_screen_coordinates")
+
+-- | Is the <https://www.opengl.org/registry/specs/REND/screen_coordinates.txt REND_screen_coordinates> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetRENDScreenCoordinates' in those cases instead.
+gl_REND_screen_coordinates :: Bool
+gl_REND_screen_coordinates = member "GL_REND_screen_coordinates" extensions
+{-# NOINLINE gl_REND_screen_coordinates #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/S3/s3tc.txt S3_s3tc> extension supported?
+glGetS3S3TC :: MonadIO m => m Bool
+glGetS3S3TC = getExtensions >>= (return . member "GL_S3_s3tc")
+
+-- | Is the <https://www.opengl.org/registry/specs/S3/s3tc.txt S3_s3tc> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetS3S3TC' in those cases instead.
+gl_S3_s3tc :: Bool
+gl_S3_s3tc = member "GL_S3_s3tc" extensions
+{-# NOINLINE gl_S3_s3tc #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/SGI/color_matrix.txt SGI_color_matrix> extension supported?
+glGetSGIColorMatrix :: MonadIO m => m Bool
+glGetSGIColorMatrix = getExtensions >>= (return . member "GL_SGI_color_matrix")
+
+-- | Is the <https://www.opengl.org/registry/specs/SGI/color_matrix.txt SGI_color_matrix> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetSGIColorMatrix' in those cases instead.
+gl_SGI_color_matrix :: Bool
+gl_SGI_color_matrix = member "GL_SGI_color_matrix" extensions
+{-# NOINLINE gl_SGI_color_matrix #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/SGI/color_table.txt SGI_color_table> extension supported?
+glGetSGIColorTable :: MonadIO m => m Bool
+glGetSGIColorTable = getExtensions >>= (return . member "GL_SGI_color_table")
+
+-- | Is the <https://www.opengl.org/registry/specs/SGI/color_table.txt SGI_color_table> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetSGIColorTable' in those cases instead.
+gl_SGI_color_table :: Bool
+gl_SGI_color_table = member "GL_SGI_color_table" extensions
+{-# NOINLINE gl_SGI_color_table #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/SGI/texture_color_table.txt SGI_texture_color_table> extension supported?
+glGetSGITextureColorTable :: MonadIO m => m Bool
+glGetSGITextureColorTable = getExtensions >>= (return . member "GL_SGI_texture_color_table")
+
+-- | Is the <https://www.opengl.org/registry/specs/SGI/texture_color_table.txt SGI_texture_color_table> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetSGITextureColorTable' in those cases instead.
+gl_SGI_texture_color_table :: Bool
+gl_SGI_texture_color_table = member "GL_SGI_texture_color_table" extensions
+{-# NOINLINE gl_SGI_texture_color_table #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIS/detail_texture.txt SGIS_detail_texture> extension supported?
+glGetSGISDetailTexture :: MonadIO m => m Bool
+glGetSGISDetailTexture = getExtensions >>= (return . member "GL_SGIS_detail_texture")
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIS/detail_texture.txt SGIS_detail_texture> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetSGISDetailTexture' in those cases instead.
+gl_SGIS_detail_texture :: Bool
+gl_SGIS_detail_texture = member "GL_SGIS_detail_texture" extensions
+{-# NOINLINE gl_SGIS_detail_texture #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIS/fog_func.txt SGIS_fog_function> extension supported?
+glGetSGISFogFunction :: MonadIO m => m Bool
+glGetSGISFogFunction = getExtensions >>= (return . member "GL_SGIS_fog_function")
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIS/fog_func.txt SGIS_fog_function> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetSGISFogFunction' in those cases instead.
+gl_SGIS_fog_function :: Bool
+gl_SGIS_fog_function = member "GL_SGIS_fog_function" extensions
+{-# NOINLINE gl_SGIS_fog_function #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIS/generate_mipmap.txt SGIS_generate_mipmap> extension supported?
+glGetSGISGenerateMipmap :: MonadIO m => m Bool
+glGetSGISGenerateMipmap = getExtensions >>= (return . member "GL_SGIS_generate_mipmap")
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIS/generate_mipmap.txt SGIS_generate_mipmap> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetSGISGenerateMipmap' in those cases instead.
+gl_SGIS_generate_mipmap :: Bool
+gl_SGIS_generate_mipmap = member "GL_SGIS_generate_mipmap" extensions
+{-# NOINLINE gl_SGIS_generate_mipmap #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIS/multisample.txt SGIS_multisample> extension supported?
+glGetSGISMultisample :: MonadIO m => m Bool
+glGetSGISMultisample = getExtensions >>= (return . member "GL_SGIS_multisample")
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIS/multisample.txt SGIS_multisample> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetSGISMultisample' in those cases instead.
+gl_SGIS_multisample :: Bool
+gl_SGIS_multisample = member "GL_SGIS_multisample" extensions
+{-# NOINLINE gl_SGIS_multisample #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIS/pixel_texture.txt SGIS_pixel_texture> extension supported?
+glGetSGISPixelTexture :: MonadIO m => m Bool
+glGetSGISPixelTexture = getExtensions >>= (return . member "GL_SGIS_pixel_texture")
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIS/pixel_texture.txt SGIS_pixel_texture> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetSGISPixelTexture' in those cases instead.
+gl_SGIS_pixel_texture :: Bool
+gl_SGIS_pixel_texture = member "GL_SGIS_pixel_texture" extensions
+{-# NOINLINE gl_SGIS_pixel_texture #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIS/point_line_texgen.txt SGIS_point_line_texgen> extension supported?
+glGetSGISPointLineTexgen :: MonadIO m => m Bool
+glGetSGISPointLineTexgen = getExtensions >>= (return . member "GL_SGIS_point_line_texgen")
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIS/point_line_texgen.txt SGIS_point_line_texgen> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetSGISPointLineTexgen' in those cases instead.
+gl_SGIS_point_line_texgen :: Bool
+gl_SGIS_point_line_texgen = member "GL_SGIS_point_line_texgen" extensions
+{-# NOINLINE gl_SGIS_point_line_texgen #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/point_parameters.txt SGIS_point_parameters> extension supported?
+glGetSGISPointParameters :: MonadIO m => m Bool
+glGetSGISPointParameters = getExtensions >>= (return . member "GL_SGIS_point_parameters")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/point_parameters.txt SGIS_point_parameters> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetSGISPointParameters' in those cases instead.
+gl_SGIS_point_parameters :: Bool
+gl_SGIS_point_parameters = member "GL_SGIS_point_parameters" extensions
+{-# NOINLINE gl_SGIS_point_parameters #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIS/sharpen_texture.txt SGIS_sharpen_texture> extension supported?
+glGetSGISSharpenTexture :: MonadIO m => m Bool
+glGetSGISSharpenTexture = getExtensions >>= (return . member "GL_SGIS_sharpen_texture")
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIS/sharpen_texture.txt SGIS_sharpen_texture> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetSGISSharpenTexture' in those cases instead.
+gl_SGIS_sharpen_texture :: Bool
+gl_SGIS_sharpen_texture = member "GL_SGIS_sharpen_texture" extensions
+{-# NOINLINE gl_SGIS_sharpen_texture #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIS/texture4D.txt SGIS_texture4D> extension supported?
+glGetSGISTexture4D :: MonadIO m => m Bool
+glGetSGISTexture4D = getExtensions >>= (return . member "GL_SGIS_texture4D")
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIS/texture4D.txt SGIS_texture4D> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetSGISTexture4D' in those cases instead.
+gl_SGIS_texture4D :: Bool
+gl_SGIS_texture4D = member "GL_SGIS_texture4D" extensions
+{-# NOINLINE gl_SGIS_texture4D #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIS/texture_border_clamp.txt SGIS_texture_border_clamp> extension supported?
+glGetSGISTextureBorderClamp :: MonadIO m => m Bool
+glGetSGISTextureBorderClamp = getExtensions >>= (return . member "GL_SGIS_texture_border_clamp")
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIS/texture_border_clamp.txt SGIS_texture_border_clamp> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetSGISTextureBorderClamp' in those cases instead.
+gl_SGIS_texture_border_clamp :: Bool
+gl_SGIS_texture_border_clamp = member "GL_SGIS_texture_border_clamp" extensions
+{-# NOINLINE gl_SGIS_texture_border_clamp #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIS/texture_color_mask.txt SGIS_texture_color_mask> extension supported?
+glGetSGISTextureColorMask :: MonadIO m => m Bool
+glGetSGISTextureColorMask = getExtensions >>= (return . member "GL_SGIS_texture_color_mask")
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIS/texture_color_mask.txt SGIS_texture_color_mask> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetSGISTextureColorMask' in those cases instead.
+gl_SGIS_texture_color_mask :: Bool
+gl_SGIS_texture_color_mask = member "GL_SGIS_texture_color_mask" extensions
+{-# NOINLINE gl_SGIS_texture_color_mask #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIS/texture_edge_clamp.txt SGIS_texture_edge_clamp> extension supported?
+glGetSGISTextureEdgeClamp :: MonadIO m => m Bool
+glGetSGISTextureEdgeClamp = getExtensions >>= (return . member "GL_SGIS_texture_edge_clamp")
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIS/texture_edge_clamp.txt SGIS_texture_edge_clamp> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetSGISTextureEdgeClamp' in those cases instead.
+gl_SGIS_texture_edge_clamp :: Bool
+gl_SGIS_texture_edge_clamp = member "GL_SGIS_texture_edge_clamp" extensions
+{-# NOINLINE gl_SGIS_texture_edge_clamp #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIS/texture_filter4.txt SGIS_texture_filter4> extension supported?
+glGetSGISTextureFilter4 :: MonadIO m => m Bool
+glGetSGISTextureFilter4 = getExtensions >>= (return . member "GL_SGIS_texture_filter4")
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIS/texture_filter4.txt SGIS_texture_filter4> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetSGISTextureFilter4' in those cases instead.
+gl_SGIS_texture_filter4 :: Bool
+gl_SGIS_texture_filter4 = member "GL_SGIS_texture_filter4" extensions
+{-# NOINLINE gl_SGIS_texture_filter4 #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIS/texture_lod.txt SGIS_texture_lod> extension supported?
+glGetSGISTextureLOD :: MonadIO m => m Bool
+glGetSGISTextureLOD = getExtensions >>= (return . member "GL_SGIS_texture_lod")
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIS/texture_lod.txt SGIS_texture_lod> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetSGISTextureLOD' in those cases instead.
+gl_SGIS_texture_lod :: Bool
+gl_SGIS_texture_lod = member "GL_SGIS_texture_lod" extensions
+{-# NOINLINE gl_SGIS_texture_lod #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIS/texture_select.txt SGIS_texture_select> extension supported?
+glGetSGISTextureSelect :: MonadIO m => m Bool
+glGetSGISTextureSelect = getExtensions >>= (return . member "GL_SGIS_texture_select")
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIS/texture_select.txt SGIS_texture_select> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetSGISTextureSelect' in those cases instead.
+gl_SGIS_texture_select :: Bool
+gl_SGIS_texture_select = member "GL_SGIS_texture_select" extensions
+{-# NOINLINE gl_SGIS_texture_select #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/async.txt SGIX_async> extension supported?
+glGetSGIXAsync :: MonadIO m => m Bool
+glGetSGIXAsync = getExtensions >>= (return . member "GL_SGIX_async")
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/async.txt SGIX_async> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetSGIXAsync' in those cases instead.
+gl_SGIX_async :: Bool
+gl_SGIX_async = member "GL_SGIX_async" extensions
+{-# NOINLINE gl_SGIX_async #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/async_histogram.txt SGIX_async_histogram> extension supported?
+glGetSGIXAsyncHistogram :: MonadIO m => m Bool
+glGetSGIXAsyncHistogram = getExtensions >>= (return . member "GL_SGIX_async_histogram")
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/async_histogram.txt SGIX_async_histogram> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetSGIXAsyncHistogram' in those cases instead.
+gl_SGIX_async_histogram :: Bool
+gl_SGIX_async_histogram = member "GL_SGIX_async_histogram" extensions
+{-# NOINLINE gl_SGIX_async_histogram #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/async_pixel.txt SGIX_async_pixel> extension supported?
+glGetSGIXAsyncPixel :: MonadIO m => m Bool
+glGetSGIXAsyncPixel = getExtensions >>= (return . member "GL_SGIX_async_pixel")
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/async_pixel.txt SGIX_async_pixel> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetSGIXAsyncPixel' in those cases instead.
+gl_SGIX_async_pixel :: Bool
+gl_SGIX_async_pixel = member "GL_SGIX_async_pixel" extensions
+{-# NOINLINE gl_SGIX_async_pixel #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/blend_alpha_minmax.txt SGIX_blend_alpha_minmax> extension supported?
+glGetSGIXBlendAlphaMinmax :: MonadIO m => m Bool
+glGetSGIXBlendAlphaMinmax = getExtensions >>= (return . member "GL_SGIX_blend_alpha_minmax")
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/blend_alpha_minmax.txt SGIX_blend_alpha_minmax> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetSGIXBlendAlphaMinmax' in those cases instead.
+gl_SGIX_blend_alpha_minmax :: Bool
+gl_SGIX_blend_alpha_minmax = member "GL_SGIX_blend_alpha_minmax" extensions
+{-# NOINLINE gl_SGIX_blend_alpha_minmax #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/calligraphic_fragment.txt SGIX_calligraphic_fragment> extension supported?
+glGetSGIXCalligraphicFragment :: MonadIO m => m Bool
+glGetSGIXCalligraphicFragment = getExtensions >>= (return . member "GL_SGIX_calligraphic_fragment")
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/calligraphic_fragment.txt SGIX_calligraphic_fragment> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetSGIXCalligraphicFragment' in those cases instead.
+gl_SGIX_calligraphic_fragment :: Bool
+gl_SGIX_calligraphic_fragment = member "GL_SGIX_calligraphic_fragment" extensions
+{-# NOINLINE gl_SGIX_calligraphic_fragment #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/clipmap.txt SGIX_clipmap> extension supported?
+glGetSGIXClipmap :: MonadIO m => m Bool
+glGetSGIXClipmap = getExtensions >>= (return . member "GL_SGIX_clipmap")
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/clipmap.txt SGIX_clipmap> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetSGIXClipmap' in those cases instead.
+gl_SGIX_clipmap :: Bool
+gl_SGIX_clipmap = member "GL_SGIX_clipmap" extensions
+{-# NOINLINE gl_SGIX_clipmap #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/convolution_accuracy.txt SGIX_convolution_accuracy> extension supported?
+glGetSGIXConvolutionAccuracy :: MonadIO m => m Bool
+glGetSGIXConvolutionAccuracy = getExtensions >>= (return . member "GL_SGIX_convolution_accuracy")
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/convolution_accuracy.txt SGIX_convolution_accuracy> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetSGIXConvolutionAccuracy' in those cases instead.
+gl_SGIX_convolution_accuracy :: Bool
+gl_SGIX_convolution_accuracy = member "GL_SGIX_convolution_accuracy" extensions
+{-# NOINLINE gl_SGIX_convolution_accuracy #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/depth_texture.txt SGIX_depth_texture> extension supported?
+glGetSGIXDepthTexture :: MonadIO m => m Bool
+glGetSGIXDepthTexture = getExtensions >>= (return . member "GL_SGIX_depth_texture")
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/depth_texture.txt SGIX_depth_texture> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetSGIXDepthTexture' in those cases instead.
+gl_SGIX_depth_texture :: Bool
+gl_SGIX_depth_texture = member "GL_SGIX_depth_texture" extensions
+{-# NOINLINE gl_SGIX_depth_texture #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/flush_raster.txt SGIX_flush_raster> extension supported?
+glGetSGIXFlushRaster :: MonadIO m => m Bool
+glGetSGIXFlushRaster = getExtensions >>= (return . member "GL_SGIX_flush_raster")
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/flush_raster.txt SGIX_flush_raster> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetSGIXFlushRaster' in those cases instead.
+gl_SGIX_flush_raster :: Bool
+gl_SGIX_flush_raster = member "GL_SGIX_flush_raster" extensions
+{-# NOINLINE gl_SGIX_flush_raster #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/fog_offset.txt SGIX_fog_offset> extension supported?
+glGetSGIXFogOffset :: MonadIO m => m Bool
+glGetSGIXFogOffset = getExtensions >>= (return . member "GL_SGIX_fog_offset")
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/fog_offset.txt SGIX_fog_offset> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetSGIXFogOffset' in those cases instead.
+gl_SGIX_fog_offset :: Bool
+gl_SGIX_fog_offset = member "GL_SGIX_fog_offset" extensions
+{-# NOINLINE gl_SGIX_fog_offset #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/fragment_lighting.txt SGIX_fragment_lighting> extension supported?
+glGetSGIXFragmentLighting :: MonadIO m => m Bool
+glGetSGIXFragmentLighting = getExtensions >>= (return . member "GL_SGIX_fragment_lighting")
+
+-- | Is the <https://www.opengl.org/registry/specs/EXT/fragment_lighting.txt SGIX_fragment_lighting> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetSGIXFragmentLighting' in those cases instead.
+gl_SGIX_fragment_lighting :: Bool
+gl_SGIX_fragment_lighting = member "GL_SGIX_fragment_lighting" extensions
+{-# NOINLINE gl_SGIX_fragment_lighting #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/framezoom.txt SGIX_framezoom> extension supported?
+glGetSGIXFramezoom :: MonadIO m => m Bool
+glGetSGIXFramezoom = getExtensions >>= (return . member "GL_SGIX_framezoom")
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/framezoom.txt SGIX_framezoom> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetSGIXFramezoom' in those cases instead.
+gl_SGIX_framezoom :: Bool
+gl_SGIX_framezoom = member "GL_SGIX_framezoom" extensions
+{-# NOINLINE gl_SGIX_framezoom #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/igloo_interface.txt SGIX_igloo_interface> extension supported?
+glGetSGIXIglooInterface :: MonadIO m => m Bool
+glGetSGIXIglooInterface = getExtensions >>= (return . member "GL_SGIX_igloo_interface")
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/igloo_interface.txt SGIX_igloo_interface> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetSGIXIglooInterface' in those cases instead.
+gl_SGIX_igloo_interface :: Bool
+gl_SGIX_igloo_interface = member "GL_SGIX_igloo_interface" extensions
+{-# NOINLINE gl_SGIX_igloo_interface #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/instruments.txt SGIX_instruments> extension supported?
+glGetSGIXInstruments :: MonadIO m => m Bool
+glGetSGIXInstruments = getExtensions >>= (return . member "GL_SGIX_instruments")
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/instruments.txt SGIX_instruments> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetSGIXInstruments' in those cases instead.
+gl_SGIX_instruments :: Bool
+gl_SGIX_instruments = member "GL_SGIX_instruments" extensions
+{-# NOINLINE gl_SGIX_instruments #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/interlace.txt SGIX_interlace> extension supported?
+glGetSGIXInterlace :: MonadIO m => m Bool
+glGetSGIXInterlace = getExtensions >>= (return . member "GL_SGIX_interlace")
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/interlace.txt SGIX_interlace> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetSGIXInterlace' in those cases instead.
+gl_SGIX_interlace :: Bool
+gl_SGIX_interlace = member "GL_SGIX_interlace" extensions
+{-# NOINLINE gl_SGIX_interlace #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/ir_instrument1.txt SGIX_ir_instrument1> extension supported?
+glGetSGIXIrInstrument1 :: MonadIO m => m Bool
+glGetSGIXIrInstrument1 = getExtensions >>= (return . member "GL_SGIX_ir_instrument1")
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/ir_instrument1.txt SGIX_ir_instrument1> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetSGIXIrInstrument1' in those cases instead.
+gl_SGIX_ir_instrument1 :: Bool
+gl_SGIX_ir_instrument1 = member "GL_SGIX_ir_instrument1" extensions
+{-# NOINLINE gl_SGIX_ir_instrument1 #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/list_priority.txt SGIX_list_priority> extension supported?
+glGetSGIXListPriority :: MonadIO m => m Bool
+glGetSGIXListPriority = getExtensions >>= (return . member "GL_SGIX_list_priority")
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/list_priority.txt SGIX_list_priority> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetSGIXListPriority' in those cases instead.
+gl_SGIX_list_priority :: Bool
+gl_SGIX_list_priority = member "GL_SGIX_list_priority" extensions
+{-# NOINLINE gl_SGIX_list_priority #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/sgix_pixel_texture.txt SGIX_pixel_texture> extension supported?
+glGetSGIXPixelTexture :: MonadIO m => m Bool
+glGetSGIXPixelTexture = getExtensions >>= (return . member "GL_SGIX_pixel_texture")
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/sgix_pixel_texture.txt SGIX_pixel_texture> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetSGIXPixelTexture' in those cases instead.
+gl_SGIX_pixel_texture :: Bool
+gl_SGIX_pixel_texture = member "GL_SGIX_pixel_texture" extensions
+{-# NOINLINE gl_SGIX_pixel_texture #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/pixel_tiles.txt SGIX_pixel_tiles> extension supported?
+glGetSGIXPixelTiles :: MonadIO m => m Bool
+glGetSGIXPixelTiles = getExtensions >>= (return . member "GL_SGIX_pixel_tiles")
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/pixel_tiles.txt SGIX_pixel_tiles> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetSGIXPixelTiles' in those cases instead.
+gl_SGIX_pixel_tiles :: Bool
+gl_SGIX_pixel_tiles = member "GL_SGIX_pixel_tiles" extensions
+{-# NOINLINE gl_SGIX_pixel_tiles #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/polynomial_ffd.txt SGIX_polynomial_ffd> extension supported?
+glGetSGIXPolynomialFFD :: MonadIO m => m Bool
+glGetSGIXPolynomialFFD = getExtensions >>= (return . member "GL_SGIX_polynomial_ffd")
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/polynomial_ffd.txt SGIX_polynomial_ffd> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetSGIXPolynomialFFD' in those cases instead.
+gl_SGIX_polynomial_ffd :: Bool
+gl_SGIX_polynomial_ffd = member "GL_SGIX_polynomial_ffd" extensions
+{-# NOINLINE gl_SGIX_polynomial_ffd #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/reference_plane.txt SGIX_reference_plane> extension supported?
+glGetSGIXReferencePlane :: MonadIO m => m Bool
+glGetSGIXReferencePlane = getExtensions >>= (return . member "GL_SGIX_reference_plane")
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/reference_plane.txt SGIX_reference_plane> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetSGIXReferencePlane' in those cases instead.
+gl_SGIX_reference_plane :: Bool
+gl_SGIX_reference_plane = member "GL_SGIX_reference_plane" extensions
+{-# NOINLINE gl_SGIX_reference_plane #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/resample.txt SGIX_resample> extension supported?
+glGetSGIXResample :: MonadIO m => m Bool
+glGetSGIXResample = getExtensions >>= (return . member "GL_SGIX_resample")
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/resample.txt SGIX_resample> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetSGIXResample' in those cases instead.
+gl_SGIX_resample :: Bool
+gl_SGIX_resample = member "GL_SGIX_resample" extensions
+{-# NOINLINE gl_SGIX_resample #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/scalebias_hint.txt SGIX_scalebias_hint> extension supported?
+glGetSGIXScalebiasHint :: MonadIO m => m Bool
+glGetSGIXScalebiasHint = getExtensions >>= (return . member "GL_SGIX_scalebias_hint")
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/scalebias_hint.txt SGIX_scalebias_hint> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetSGIXScalebiasHint' in those cases instead.
+gl_SGIX_scalebias_hint :: Bool
+gl_SGIX_scalebias_hint = member "GL_SGIX_scalebias_hint" extensions
+{-# NOINLINE gl_SGIX_scalebias_hint #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/shadow.txt SGIX_shadow> extension supported?
+glGetSGIXShadow :: MonadIO m => m Bool
+glGetSGIXShadow = getExtensions >>= (return . member "GL_SGIX_shadow")
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/shadow.txt SGIX_shadow> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetSGIXShadow' in those cases instead.
+gl_SGIX_shadow :: Bool
+gl_SGIX_shadow = member "GL_SGIX_shadow" extensions
+{-# NOINLINE gl_SGIX_shadow #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/shadow_ambient.txt SGIX_shadow_ambient> extension supported?
+glGetSGIXShadowAmbient :: MonadIO m => m Bool
+glGetSGIXShadowAmbient = getExtensions >>= (return . member "GL_SGIX_shadow_ambient")
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/shadow_ambient.txt SGIX_shadow_ambient> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetSGIXShadowAmbient' in those cases instead.
+gl_SGIX_shadow_ambient :: Bool
+gl_SGIX_shadow_ambient = member "GL_SGIX_shadow_ambient" extensions
+{-# NOINLINE gl_SGIX_shadow_ambient #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/sprite.txt SGIX_sprite> extension supported?
+glGetSGIXSprite :: MonadIO m => m Bool
+glGetSGIXSprite = getExtensions >>= (return . member "GL_SGIX_sprite")
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/sprite.txt SGIX_sprite> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetSGIXSprite' in those cases instead.
+gl_SGIX_sprite :: Bool
+gl_SGIX_sprite = member "GL_SGIX_sprite" extensions
+{-# NOINLINE gl_SGIX_sprite #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/subsample.txt SGIX_subsample> extension supported?
+glGetSGIXSubsample :: MonadIO m => m Bool
+glGetSGIXSubsample = getExtensions >>= (return . member "GL_SGIX_subsample")
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/subsample.txt SGIX_subsample> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetSGIXSubsample' in those cases instead.
+gl_SGIX_subsample :: Bool
+gl_SGIX_subsample = member "GL_SGIX_subsample" extensions
+{-# NOINLINE gl_SGIX_subsample #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/tag_sample_buffer.txt SGIX_tag_sample_buffer> extension supported?
+glGetSGIXTagSampleBuffer :: MonadIO m => m Bool
+glGetSGIXTagSampleBuffer = getExtensions >>= (return . member "GL_SGIX_tag_sample_buffer")
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/tag_sample_buffer.txt SGIX_tag_sample_buffer> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetSGIXTagSampleBuffer' in those cases instead.
+gl_SGIX_tag_sample_buffer :: Bool
+gl_SGIX_tag_sample_buffer = member "GL_SGIX_tag_sample_buffer" extensions
+{-# NOINLINE gl_SGIX_tag_sample_buffer #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/texture_env_add.txt SGIX_texture_add_env> extension supported?
+glGetSGIXTextureAddEnv :: MonadIO m => m Bool
+glGetSGIXTextureAddEnv = getExtensions >>= (return . member "GL_SGIX_texture_add_env")
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/texture_env_add.txt SGIX_texture_add_env> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetSGIXTextureAddEnv' in those cases instead.
+gl_SGIX_texture_add_env :: Bool
+gl_SGIX_texture_add_env = member "GL_SGIX_texture_add_env" extensions
+{-# NOINLINE gl_SGIX_texture_add_env #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/texture_coordinate_clamp.txt SGIX_texture_coordinate_clamp> extension supported?
+glGetSGIXTextureCoordinateClamp :: MonadIO m => m Bool
+glGetSGIXTextureCoordinateClamp = getExtensions >>= (return . member "GL_SGIX_texture_coordinate_clamp")
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/texture_coordinate_clamp.txt SGIX_texture_coordinate_clamp> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetSGIXTextureCoordinateClamp' in those cases instead.
+gl_SGIX_texture_coordinate_clamp :: Bool
+gl_SGIX_texture_coordinate_clamp = member "GL_SGIX_texture_coordinate_clamp" extensions
+{-# NOINLINE gl_SGIX_texture_coordinate_clamp #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/texture_lod_bias.txt SGIX_texture_lod_bias> extension supported?
+glGetSGIXTextureLODBias :: MonadIO m => m Bool
+glGetSGIXTextureLODBias = getExtensions >>= (return . member "GL_SGIX_texture_lod_bias")
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/texture_lod_bias.txt SGIX_texture_lod_bias> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetSGIXTextureLODBias' in those cases instead.
+gl_SGIX_texture_lod_bias :: Bool
+gl_SGIX_texture_lod_bias = member "GL_SGIX_texture_lod_bias" extensions
+{-# NOINLINE gl_SGIX_texture_lod_bias #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/texture_multi_buffer.txt SGIX_texture_multi_buffer> extension supported?
+glGetSGIXTextureMultiBuffer :: MonadIO m => m Bool
+glGetSGIXTextureMultiBuffer = getExtensions >>= (return . member "GL_SGIX_texture_multi_buffer")
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/texture_multi_buffer.txt SGIX_texture_multi_buffer> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetSGIXTextureMultiBuffer' in those cases instead.
+gl_SGIX_texture_multi_buffer :: Bool
+gl_SGIX_texture_multi_buffer = member "GL_SGIX_texture_multi_buffer" extensions
+{-# NOINLINE gl_SGIX_texture_multi_buffer #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/texture_scale_bias.txt SGIX_texture_scale_bias> extension supported?
+glGetSGIXTextureScaleBias :: MonadIO m => m Bool
+glGetSGIXTextureScaleBias = getExtensions >>= (return . member "GL_SGIX_texture_scale_bias")
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/texture_scale_bias.txt SGIX_texture_scale_bias> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetSGIXTextureScaleBias' in those cases instead.
+gl_SGIX_texture_scale_bias :: Bool
+gl_SGIX_texture_scale_bias = member "GL_SGIX_texture_scale_bias" extensions
+{-# NOINLINE gl_SGIX_texture_scale_bias #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/vertex_preclip.txt SGIX_vertex_preclip> extension supported?
+glGetSGIXVertexPreclip :: MonadIO m => m Bool
+glGetSGIXVertexPreclip = getExtensions >>= (return . member "GL_SGIX_vertex_preclip")
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/vertex_preclip.txt SGIX_vertex_preclip> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetSGIXVertexPreclip' in those cases instead.
+gl_SGIX_vertex_preclip :: Bool
+gl_SGIX_vertex_preclip = member "GL_SGIX_vertex_preclip" extensions
+{-# NOINLINE gl_SGIX_vertex_preclip #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/ycrcb.txt SGIX_ycrcb> extension supported?
+glGetSGIXYCrCb :: MonadIO m => m Bool
+glGetSGIXYCrCb = getExtensions >>= (return . member "GL_SGIX_ycrcb")
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/ycrcb.txt SGIX_ycrcb> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetSGIXYCrCb' in those cases instead.
+gl_SGIX_ycrcb :: Bool
+gl_SGIX_ycrcb = member "GL_SGIX_ycrcb" extensions
+{-# NOINLINE gl_SGIX_ycrcb #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/ycrcba.txt SGIX_ycrcba> extension supported?
+glGetSGIXYCrCbA :: MonadIO m => m Bool
+glGetSGIXYCrCbA = getExtensions >>= (return . member "GL_SGIX_ycrcba")
+
+-- | Is the <https://www.opengl.org/registry/specs/SGIX/ycrcba.txt SGIX_ycrcba> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetSGIXYCrCbA' in those cases instead.
+gl_SGIX_ycrcba :: Bool
+gl_SGIX_ycrcba = member "GL_SGIX_ycrcba" extensions
+{-# NOINLINE gl_SGIX_ycrcba #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/SUN/convolution_border_modes.txt SUN_convolution_border_modes> extension supported?
+glGetSUNConvolutionBorderModes :: MonadIO m => m Bool
+glGetSUNConvolutionBorderModes = getExtensions >>= (return . member "GL_SUN_convolution_border_modes")
+
+-- | Is the <https://www.opengl.org/registry/specs/SUN/convolution_border_modes.txt SUN_convolution_border_modes> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetSUNConvolutionBorderModes' in those cases instead.
+gl_SUN_convolution_border_modes :: Bool
+gl_SUN_convolution_border_modes = member "GL_SUN_convolution_border_modes" extensions
+{-# NOINLINE gl_SUN_convolution_border_modes #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/SUN/global_alpha.txt SUN_global_alpha> extension supported?
+glGetSUNGlobalAlpha :: MonadIO m => m Bool
+glGetSUNGlobalAlpha = getExtensions >>= (return . member "GL_SUN_global_alpha")
+
+-- | Is the <https://www.opengl.org/registry/specs/SUN/global_alpha.txt SUN_global_alpha> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetSUNGlobalAlpha' in those cases instead.
+gl_SUN_global_alpha :: Bool
+gl_SUN_global_alpha = member "GL_SUN_global_alpha" extensions
+{-# NOINLINE gl_SUN_global_alpha #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/SUN/mesh_array.txt SUN_mesh_array> extension supported?
+glGetSUNMeshArray :: MonadIO m => m Bool
+glGetSUNMeshArray = getExtensions >>= (return . member "GL_SUN_mesh_array")
+
+-- | Is the <https://www.opengl.org/registry/specs/SUN/mesh_array.txt SUN_mesh_array> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetSUNMeshArray' in those cases instead.
+gl_SUN_mesh_array :: Bool
+gl_SUN_mesh_array = member "GL_SUN_mesh_array" extensions
+{-# NOINLINE gl_SUN_mesh_array #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/SUN/slice_accum.txt SUN_slice_accum> extension supported?
+glGetSUNSliceAccum :: MonadIO m => m Bool
+glGetSUNSliceAccum = getExtensions >>= (return . member "GL_SUN_slice_accum")
+
+-- | Is the <https://www.opengl.org/registry/specs/SUN/slice_accum.txt SUN_slice_accum> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetSUNSliceAccum' in those cases instead.
+gl_SUN_slice_accum :: Bool
+gl_SUN_slice_accum = member "GL_SUN_slice_accum" extensions
+{-# NOINLINE gl_SUN_slice_accum #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/SUN/triangle_list.txt SUN_triangle_list> extension supported?
+glGetSUNTriangleList :: MonadIO m => m Bool
+glGetSUNTriangleList = getExtensions >>= (return . member "GL_SUN_triangle_list")
+
+-- | Is the <https://www.opengl.org/registry/specs/SUN/triangle_list.txt SUN_triangle_list> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetSUNTriangleList' in those cases instead.
+gl_SUN_triangle_list :: Bool
+gl_SUN_triangle_list = member "GL_SUN_triangle_list" extensions
+{-# NOINLINE gl_SUN_triangle_list #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/SUN/vertex.txt SUN_vertex> extension supported?
+glGetSUNVertex :: MonadIO m => m Bool
+glGetSUNVertex = getExtensions >>= (return . member "GL_SUN_vertex")
+
+-- | Is the <https://www.opengl.org/registry/specs/SUN/vertex.txt SUN_vertex> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetSUNVertex' in those cases instead.
+gl_SUN_vertex :: Bool
+gl_SUN_vertex = member "GL_SUN_vertex" extensions
+{-# NOINLINE gl_SUN_vertex #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/SUNX/constant_data.txt SUNX_constant_data> extension supported?
+glGetSUNXConstantData :: MonadIO m => m Bool
+glGetSUNXConstantData = getExtensions >>= (return . member "GL_SUNX_constant_data")
+
+-- | Is the <https://www.opengl.org/registry/specs/SUNX/constant_data.txt SUNX_constant_data> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetSUNXConstantData' in those cases instead.
+gl_SUNX_constant_data :: Bool
+gl_SUNX_constant_data = member "GL_SUNX_constant_data" extensions
+{-# NOINLINE gl_SUNX_constant_data #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/WIN/phong_shading.txt WIN_phong_shading> extension supported?
+glGetWINPhongShading :: MonadIO m => m Bool
+glGetWINPhongShading = getExtensions >>= (return . member "GL_WIN_phong_shading")
+
+-- | Is the <https://www.opengl.org/registry/specs/WIN/phong_shading.txt WIN_phong_shading> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetWINPhongShading' in those cases instead.
+gl_WIN_phong_shading :: Bool
+gl_WIN_phong_shading = member "GL_WIN_phong_shading" extensions
+{-# NOINLINE gl_WIN_phong_shading #-}
+
+-- | Is the <https://www.opengl.org/registry/specs/WIN/specular_fog.txt WIN_specular_fog> extension supported?
+glGetWINSpecularFog :: MonadIO m => m Bool
+glGetWINSpecularFog = getExtensions >>= (return . member "GL_WIN_specular_fog")
+
+-- | Is the <https://www.opengl.org/registry/specs/WIN/specular_fog.txt WIN_specular_fog> extension supported?
+-- Note that in the presence of multiple contexts with different capabilities,
+-- this might be wrong. Use 'glGetWINSpecularFog' in those cases instead.
+gl_WIN_specular_fog :: Bool
+gl_WIN_specular_fog = member "GL_WIN_specular_fog" extensions
+{-# NOINLINE gl_WIN_specular_fog #-}
diff --git a/src/Graphics/GL/Foreign.hs b/src/Graphics/GL/Foreign.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Foreign.hs
@@ -0,0 +1,3800 @@
+{-# LANGUAGE CPP #-}
+{-# OPTIONS_HADDOCK hide #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Foreign
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- All foreign imports.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Foreign where
+
+import Foreign.C.Types
+import Foreign.Marshal.Error ( throwIf )
+import Foreign.Ptr
+import Graphics.GL.GetProcAddress ( getProcAddress )
+import Graphics.GL.Types
+import Numeric.Fixed
+import Numeric.Half
+
+getCommand :: String -> IO (FunPtr a)
+getCommand cmd =
+  throwIfNullFunPtr ("unknown OpenGL command " ++ cmd) $ getProcAddress cmd
+  where throwIfNullFunPtr :: String -> IO (FunPtr a) -> IO (FunPtr a)
+        throwIfNullFunPtr = throwIf (== nullFunPtr) . const
+
+foreign import CALLCONV "dynamic" dyn209
+  :: FunPtr (GLDEBUGPROC -> Ptr a -> IO ())
+  ->         GLDEBUGPROC -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn210
+  :: FunPtr (GLDEBUGPROCAMD -> Ptr a -> IO ())
+  ->         GLDEBUGPROCAMD -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn211
+  :: FunPtr (GLDEBUGPROCARB -> Ptr a -> IO ())
+  ->         GLDEBUGPROCARB -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn212
+  :: FunPtr (GLDEBUGPROCKHR -> Ptr a -> IO ())
+  ->         GLDEBUGPROCKHR -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn397
+  :: FunPtr (GLbitfield -> GLsizei -> GLenum -> Ptr a -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+  ->         GLbitfield -> GLsizei -> GLenum -> Ptr a -> GLuint -> GLsizei -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn510
+  :: FunPtr (GLbitfield -> GLuint -> GLintptr -> GLsizeiptr -> Ptr a -> IO ())
+  ->         GLbitfield -> GLuint -> GLintptr -> GLsizeiptr -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn396
+  :: FunPtr (GLbitfield -> GLuint -> GLsizei -> GLsizei -> Ptr GLfloat -> IO ())
+  ->         GLbitfield -> GLuint -> GLsizei -> GLsizei -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn75
+  :: FunPtr (GLbitfield -> IO ())
+  ->         GLbitfield -> IO ()
+
+foreign import CALLCONV "dynamic" dyn130
+  :: FunPtr (GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ())
+  ->         GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ()
+
+foreign import CALLCONV "dynamic" dyn198
+  :: FunPtr (GLboolean -> IO ())
+  ->         GLboolean -> IO ()
+
+foreign import CALLCONV "dynamic" dyn115
+  :: FunPtr (GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ())
+  ->         GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ()
+
+foreign import CALLCONV "dynamic" dyn39
+  :: FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
+  ->         GLbyte -> GLbyte -> GLbyte -> IO ()
+
+foreign import CALLCONV "dynamic" dyn765
+  :: FunPtr (GLbyte -> GLbyte -> IO ())
+  ->         GLbyte -> GLbyte -> IO ()
+
+foreign import CALLCONV "dynamic" dyn484
+  :: FunPtr (GLbyte -> IO ())
+  ->         GLbyte -> IO ()
+
+foreign import CALLCONV "dynamic" dyn224
+  :: FunPtr (GLclampd -> GLclampd -> IO ())
+  ->         GLclampd -> GLclampd -> IO ()
+
+foreign import CALLCONV "dynamic" dyn737
+  :: FunPtr (GLclampf -> GLboolean -> IO ())
+  ->         GLclampf -> GLboolean -> IO ()
+
+foreign import CALLCONV "dynamic" dyn231
+  :: FunPtr (GLclampf -> GLclampf -> IO ())
+  ->         GLclampf -> GLclampf -> IO ()
+
+foreign import CALLCONV "dynamic" dyn86
+  :: FunPtr (GLclampf -> IO ())
+  ->         GLclampf -> IO ()
+
+foreign import CALLCONV "dynamic" dyn736
+  :: FunPtr (GLclampx -> GLboolean -> IO ())
+  ->         GLclampx -> GLboolean -> IO ()
+
+foreign import CALLCONV "dynamic" dyn309
+  :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+  ->         GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()
+
+foreign import CALLCONV "dynamic" dyn116
+  :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+  ->         GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()
+
+foreign import CALLCONV "dynamic" dyn41
+  :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
+  ->         GLdouble -> GLdouble -> GLdouble -> IO ()
+
+foreign import CALLCONV "dynamic" dyn225
+  :: FunPtr (GLdouble -> GLdouble -> IO ())
+  ->         GLdouble -> GLdouble -> IO ()
+
+foreign import CALLCONV "dynamic" dyn84
+  :: FunPtr (GLdouble -> IO ())
+  ->         GLdouble -> IO ()
+
+foreign import CALLCONV "dynamic" dyn287
+  :: FunPtr (GLenum -> GLbitfield -> IO GLsync)
+  ->         GLenum -> GLbitfield -> IO GLsync
+
+foreign import CALLCONV "dynamic" dyn470
+  :: FunPtr (GLenum -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr a -> IO ())
+  ->         GLenum -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn351
+  :: FunPtr (GLenum -> GLboolean -> GLenum -> GLenum -> Ptr a -> IO ())
+  ->         GLenum -> GLboolean -> GLenum -> GLenum -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn585
+  :: FunPtr (GLenum -> GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ())
+  ->         GLenum -> GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ()
+
+foreign import CALLCONV "dynamic" dyn580
+  :: FunPtr (GLenum -> GLbyte -> GLbyte -> GLbyte -> IO ())
+  ->         GLenum -> GLbyte -> GLbyte -> GLbyte -> IO ()
+
+foreign import CALLCONV "dynamic" dyn574
+  :: FunPtr (GLenum -> GLbyte -> GLbyte -> IO ())
+  ->         GLenum -> GLbyte -> GLbyte -> IO ()
+
+foreign import CALLCONV "dynamic" dyn567
+  :: FunPtr (GLenum -> GLbyte -> IO ())
+  ->         GLenum -> GLbyte -> IO ()
+
+foreign import CALLCONV "dynamic" dyn10
+  :: FunPtr (GLenum -> GLclampf -> IO ())
+  ->         GLenum -> GLclampf -> IO ()
+
+foreign import CALLCONV "dynamic" dyn542
+  :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+  ->         GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()
+
+foreign import CALLCONV "dynamic" dyn546
+  :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+  ->         GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()
+
+foreign import CALLCONV "dynamic" dyn548
+  :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> IO ())
+  ->         GLenum -> GLdouble -> GLdouble -> GLdouble -> IO ()
+
+foreign import CALLCONV "dynamic" dyn217
+  :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ())
+  ->         GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ()
+
+foreign import CALLCONV "dynamic" dyn522
+  :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ())
+  ->         GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ()
+
+foreign import CALLCONV "dynamic" dyn519
+  :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ())
+  ->         GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ()
+
+foreign import CALLCONV "dynamic" dyn575
+  :: FunPtr (GLenum -> GLdouble -> GLdouble -> IO ())
+  ->         GLenum -> GLdouble -> GLdouble -> IO ()
+
+foreign import CALLCONV "dynamic" dyn569
+  :: FunPtr (GLenum -> GLdouble -> IO ())
+  ->         GLenum -> GLdouble -> IO ()
+
+foreign import CALLCONV "dynamic" dyn267
+  :: FunPtr (GLenum -> GLeglImageOES -> IO ())
+  ->         GLenum -> GLeglImageOES -> IO ()
+
+foreign import CALLCONV "dynamic" dyn268
+  :: FunPtr (GLenum -> GLeglImageOES -> Ptr GLint -> IO ())
+  ->         GLenum -> GLeglImageOES -> Ptr GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn550
+  :: FunPtr (GLenum -> GLenum -> GLboolean -> IO ())
+  ->         GLenum -> GLenum -> GLboolean -> IO ()
+
+foreign import CALLCONV "dynamic" dyn772
+  :: FunPtr (GLenum -> GLenum -> GLdouble -> IO ())
+  ->         GLenum -> GLenum -> GLdouble -> IO ()
+
+foreign import CALLCONV "dynamic" dyn592
+  :: FunPtr (GLenum -> GLenum -> GLenum -> GLdouble -> IO ())
+  ->         GLenum -> GLenum -> GLenum -> GLdouble -> IO ()
+
+foreign import CALLCONV "dynamic" dyn142
+  :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLboolean -> GLboolean -> GLboolean -> IO ())
+  ->         GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLboolean -> GLboolean -> GLboolean -> IO ()
+
+foreign import CALLCONV "dynamic" dyn141
+  :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
+  ->         GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> IO ()
+
+foreign import CALLCONV "dynamic" dyn56
+  :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ())
+  ->         GLenum -> GLenum -> GLenum -> GLenum -> IO ()
+
+foreign import CALLCONV "dynamic" dyn332
+  :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
+  ->         GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn333
+  :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
+  ->         GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn76
+  :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> Ptr a -> IO ())
+  ->         GLenum -> GLenum -> GLenum -> GLenum -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn590
+  :: FunPtr (GLenum -> GLenum -> GLenum -> GLfloat -> IO ())
+  ->         GLenum -> GLenum -> GLenum -> GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn591
+  :: FunPtr (GLenum -> GLenum -> GLenum -> GLint -> IO ())
+  ->         GLenum -> GLenum -> GLenum -> GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn362
+  :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint -> IO ())
+  ->         GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn361
+  :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint64 -> IO ())
+  ->         GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint64 -> IO ()
+
+foreign import CALLCONV "dynamic" dyn213
+  :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> IO ())
+  ->         GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> IO ()
+
+foreign import CALLCONV "dynamic" dyn476
+  :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr a -> GLsizei -> Ptr b -> Ptr c -> IO ())
+  ->         GLenum -> GLenum -> GLenum -> GLsizei -> Ptr a -> GLsizei -> Ptr b -> Ptr c -> IO ()
+
+foreign import CALLCONV "dynamic" dyn468
+  :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr a -> IO ())
+  ->         GLenum -> GLenum -> GLenum -> GLsizei -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn301
+  :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> GLint -> IO ())
+  ->         GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn303
+  :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ())
+  ->         GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn302
+  :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLsizei -> IO ())
+  ->         GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn300
+  :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> IO ())
+  ->         GLenum -> GLenum -> GLenum -> GLuint -> GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn296
+  :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> IO ())
+  ->         GLenum -> GLenum -> GLenum -> GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn313
+  :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> IO GLuint)
+  ->         GLenum -> GLenum -> GLenum -> GLuint -> IO GLuint
+
+foreign import CALLCONV "dynamic" dyn757
+  :: FunPtr (GLenum -> GLenum -> GLenum -> IO ())
+  ->         GLenum -> GLenum -> GLenum -> IO ()
+
+foreign import CALLCONV "dynamic" dyn34
+  :: FunPtr (GLenum -> GLenum -> GLenum -> IO GLuint)
+  ->         GLenum -> GLenum -> GLenum -> IO GLuint
+
+foreign import CALLCONV "dynamic" dyn370
+  :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLdouble -> IO ())
+  ->         GLenum -> GLenum -> GLenum -> Ptr GLdouble -> IO ()
+
+foreign import CALLCONV "dynamic" dyn334
+  :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
+  ->         GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn335
+  :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
+  ->         GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn374
+  :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLuint -> IO ())
+  ->         GLenum -> GLenum -> GLenum -> Ptr GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn331
+  :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr a -> IO ())
+  ->         GLenum -> GLenum -> GLenum -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn420
+  :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr a -> Ptr b -> Ptr c -> IO ())
+  ->         GLenum -> GLenum -> GLenum -> Ptr a -> Ptr b -> Ptr c -> IO ()
+
+foreign import CALLCONV "dynamic" dyn169
+  :: FunPtr (GLenum -> GLenum -> GLfixed -> IO ())
+  ->         GLenum -> GLenum -> GLfixed -> IO ()
+
+foreign import CALLCONV "dynamic" dyn168
+  :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
+  ->         GLenum -> GLenum -> GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn371
+  :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> IO ())
+  ->         GLenum -> GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn176
+  :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> IO ())
+  ->         GLenum -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn177
+  :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> IO ())
+  ->         GLenum -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn146
+  :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr a -> IO ())
+  ->         GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn147
+  :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> IO ())
+  ->         GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn148
+  :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> IO ())
+  ->         GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn372
+  :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ())
+  ->         GLenum -> GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn373
+  :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> Ptr GLint -> IO ())
+  ->         GLenum -> GLenum -> GLint -> GLenum -> Ptr GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn180
+  :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+  ->         GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn179
+  :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+  ->         GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn598
+  :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
+  ->         GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn151
+  :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> IO ())
+  ->         GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn178
+  :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ())
+  ->         GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn597
+  :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
+  ->         GLenum -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn150
+  :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> IO ())
+  ->         GLenum -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn596
+  :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
+  ->         GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn149
+  :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr a -> IO ())
+  ->         GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn593
+  :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> IO ())
+  ->         GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn594
+  :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> IO ())
+  ->         GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn595
+  :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> IO ())
+  ->         GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn174
+  :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+  ->         GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn173
+  :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> IO ())
+  ->         GLenum -> GLenum -> GLint -> GLint -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn756
+  :: FunPtr (GLenum -> GLenum -> GLint -> GLuint -> IO ())
+  ->         GLenum -> GLenum -> GLint -> GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn66
+  :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
+  ->         GLenum -> GLenum -> GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn647
+  :: FunPtr (GLenum -> GLenum -> GLint -> Ptr GLfloat -> IO ())
+  ->         GLenum -> GLenum -> GLint -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn337
+  :: FunPtr (GLenum -> GLenum -> GLint -> Ptr a -> IO ())
+  ->         GLenum -> GLenum -> GLint -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn171
+  :: FunPtr (GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> IO ())
+  ->         GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> IO ()
+
+foreign import CALLCONV "dynamic" dyn77
+  :: FunPtr (GLenum -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr a -> IO ())
+  ->         GLenum -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn138
+  :: FunPtr (GLenum -> GLenum -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
+  ->         GLenum -> GLenum -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn360
+  :: FunPtr (GLenum -> GLenum -> GLsizei -> GLenum -> GLsizei -> Ptr GLint -> IO ())
+  ->         GLenum -> GLenum -> GLsizei -> GLenum -> GLsizei -> Ptr GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn167
+  :: FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
+  ->         GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn743
+  :: FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> Ptr b -> IO ())
+  ->         GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> Ptr b -> IO ()
+
+foreign import CALLCONV "dynamic" dyn790
+  :: FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLbitfield -> IO ())
+  ->         GLenum -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLbitfield -> IO ()
+
+foreign import CALLCONV "dynamic" dyn719
+  :: FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> IO ())
+  ->         GLenum -> GLenum -> GLsizei -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn471
+  :: FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLdouble -> IO ())
+  ->         GLenum -> GLenum -> GLsizei -> Ptr GLdouble -> IO ()
+
+foreign import CALLCONV "dynamic" dyn472
+  :: FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLfloat -> IO ())
+  ->         GLenum -> GLenum -> GLsizei -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn473
+  :: FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLint -> IO ())
+  ->         GLenum -> GLenum -> GLsizei -> Ptr GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn214
+  :: FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> IO ())
+  ->         GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> IO ()
+
+foreign import CALLCONV "dynamic" dyn669
+  :: FunPtr (GLenum -> GLenum -> GLsizei -> Ptr a -> IO ())
+  ->         GLenum -> GLenum -> GLsizei -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn215
+  :: FunPtr (GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> IO ())
+  ->         GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> IO ()
+
+foreign import CALLCONV "dynamic" dyn304
+  :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLenum -> IO ())
+  ->         GLenum -> GLenum -> GLuint -> GLint -> GLenum -> IO ()
+
+foreign import CALLCONV "dynamic" dyn306
+  :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
+  ->         GLenum -> GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn308
+  :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLint -> GLsizei -> IO ())
+  ->         GLenum -> GLenum -> GLuint -> GLint -> GLint -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn305
+  :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ())
+  ->         GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn307
+  :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLsizei -> GLint -> GLsizei -> IO ())
+  ->         GLenum -> GLenum -> GLuint -> GLint -> GLsizei -> GLint -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn299
+  :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> IO ())
+  ->         GLenum -> GLenum -> GLuint -> GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn764
+  :: FunPtr (GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> IO ())
+  ->         GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> IO ()
+
+foreign import CALLCONV "dynamic" dyn216
+  :: FunPtr (GLenum -> GLenum -> GLuint -> GLsizei -> Ptr GLchar -> IO ())
+  ->         GLenum -> GLenum -> GLuint -> GLsizei -> Ptr GLchar -> IO ()
+
+foreign import CALLCONV "dynamic" dyn349
+  :: FunPtr (GLenum -> GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+  ->         GLenum -> GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn32
+  :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
+  ->         GLenum -> GLenum -> GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn54
+  :: FunPtr (GLenum -> GLenum -> IO ())
+  ->         GLenum -> GLenum -> IO ()
+
+foreign import CALLCONV "dynamic" dyn525
+  :: FunPtr (GLenum -> GLenum -> IO (Ptr a))
+  ->         GLenum -> GLenum -> IO (Ptr a)
+
+foreign import CALLCONV "dynamic" dyn31
+  :: FunPtr (GLenum -> GLenum -> IO GLuint)
+  ->         GLenum -> GLenum -> IO GLuint
+
+foreign import CALLCONV "dynamic" dyn330
+  :: FunPtr (GLenum -> GLenum -> Ptr (Ptr a) -> IO ())
+  ->         GLenum -> GLenum -> Ptr (Ptr a) -> IO ()
+
+foreign import CALLCONV "dynamic" dyn368
+  :: FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ())
+  ->         GLenum -> GLenum -> Ptr GLdouble -> IO ()
+
+foreign import CALLCONV "dynamic" dyn170
+  :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+  ->         GLenum -> GLenum -> Ptr GLfixed -> IO ()
+
+foreign import CALLCONV "dynamic" dyn139
+  :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+  ->         GLenum -> GLenum -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn140
+  :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+  ->         GLenum -> GLenum -> Ptr GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn421
+  :: FunPtr (GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> IO ())
+  ->         GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn328
+  :: FunPtr (GLenum -> GLenum -> Ptr GLint64 -> IO ())
+  ->         GLenum -> GLenum -> Ptr GLint64 -> IO ()
+
+foreign import CALLCONV "dynamic" dyn432
+  :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
+  ->         GLenum -> GLenum -> Ptr GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn329
+  :: FunPtr (GLenum -> GLenum -> Ptr GLuint64EXT -> IO ())
+  ->         GLenum -> GLenum -> Ptr GLuint64EXT -> IO ()
+
+foreign import CALLCONV "dynamic" dyn561
+  :: FunPtr (GLenum -> GLenum -> Ptr a -> GLintptr -> GLsizei -> GLsizei -> IO ())
+  ->         GLenum -> GLenum -> Ptr a -> GLintptr -> GLsizei -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn560
+  :: FunPtr (GLenum -> GLenum -> Ptr a -> GLsizei -> GLsizei -> GLint -> IO ())
+  ->         GLenum -> GLenum -> Ptr a -> GLsizei -> GLsizei -> GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn559
+  :: FunPtr (GLenum -> GLenum -> Ptr a -> GLsizei -> GLsizei -> GLsizei -> GLint -> IO ())
+  ->         GLenum -> GLenum -> Ptr a -> GLsizei -> GLsizei -> GLsizei -> GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn558
+  :: FunPtr (GLenum -> GLenum -> Ptr a -> GLsizei -> GLsizei -> IO ())
+  ->         GLenum -> GLenum -> Ptr a -> GLsizei -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn250
+  :: FunPtr (GLenum -> GLenum -> Ptr a -> IO ())
+  ->         GLenum -> GLenum -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn588
+  :: FunPtr (GLenum -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
+  ->         GLenum -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ()
+
+foreign import CALLCONV "dynamic" dyn584
+  :: FunPtr (GLenum -> GLfixed -> GLfixed -> GLfixed -> IO ())
+  ->         GLenum -> GLfixed -> GLfixed -> GLfixed -> IO ()
+
+foreign import CALLCONV "dynamic" dyn524
+  :: FunPtr (GLenum -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> IO ())
+  ->         GLenum -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> IO ()
+
+foreign import CALLCONV "dynamic" dyn521
+  :: FunPtr (GLenum -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> IO ())
+  ->         GLenum -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> IO ()
+
+foreign import CALLCONV "dynamic" dyn579
+  :: FunPtr (GLenum -> GLfixed -> GLfixed -> IO ())
+  ->         GLenum -> GLfixed -> GLfixed -> IO ()
+
+foreign import CALLCONV "dynamic" dyn1
+  :: FunPtr (GLenum -> GLfixed -> IO ())
+  ->         GLenum -> GLfixed -> IO ()
+
+foreign import CALLCONV "dynamic" dyn547
+  :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+  ->         GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn549
+  :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> IO ())
+  ->         GLenum -> GLfloat -> GLfloat -> GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn218
+  :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ())
+  ->         GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn523
+  :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ())
+  ->         GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn520
+  :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ())
+  ->         GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn576
+  :: FunPtr (GLenum -> GLfloat -> GLfloat -> IO ())
+  ->         GLenum -> GLfloat -> GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn0
+  :: FunPtr (GLenum -> GLfloat -> IO ())
+  ->         GLenum -> GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn586
+  :: FunPtr (GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
+  ->         GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()
+
+foreign import CALLCONV "dynamic" dyn581
+  :: FunPtr (GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
+  ->         GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()
+
+foreign import CALLCONV "dynamic" dyn577
+  :: FunPtr (GLenum -> GLhalfNV -> GLhalfNV -> IO ())
+  ->         GLenum -> GLhalfNV -> GLhalfNV -> IO ()
+
+foreign import CALLCONV "dynamic" dyn570
+  :: FunPtr (GLenum -> GLhalfNV -> IO ())
+  ->         GLenum -> GLhalfNV -> IO ()
+
+foreign import CALLCONV "dynamic" dyn477
+  :: FunPtr (GLenum -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr a -> IO ())
+  ->         GLenum -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn428
+  :: FunPtr (GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> IO ())
+  ->         GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn183
+  :: FunPtr (GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> IO ())
+  ->         GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn184
+  :: FunPtr (GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> IO ())
+  ->         GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn152
+  :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr a -> IO ())
+  ->         GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn153
+  :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> IO ())
+  ->         GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn778
+  :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> IO ())
+  ->         GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn154
+  :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> IO ())
+  ->         GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn781
+  :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> IO ())
+  ->         GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn14
+  :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLuint -> GLuint -> IO ())
+  ->         GLenum -> GLint -> GLenum -> GLsizei -> GLuint -> GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn589
+  :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> Ptr a -> IO ())
+  ->         GLenum -> GLint -> GLenum -> GLsizei -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn431
+  :: FunPtr (GLenum -> GLint -> GLenum -> Ptr GLfixed -> IO ())
+  ->         GLenum -> GLint -> GLenum -> Ptr GLfixed -> IO ()
+
+foreign import CALLCONV "dynamic" dyn429
+  :: FunPtr (GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ())
+  ->         GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn430
+  :: FunPtr (GLenum -> GLint -> GLenum -> Ptr GLint -> IO ())
+  ->         GLenum -> GLint -> GLenum -> Ptr GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn78
+  :: FunPtr (GLenum -> GLint -> GLfloat -> GLint -> IO ())
+  ->         GLenum -> GLint -> GLfloat -> GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn187
+  :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+  ->         GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn793
+  :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
+  ->         GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn186
+  :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+  ->         GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn782
+  :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
+  ->         GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()
+
+foreign import CALLCONV "dynamic" dyn283
+  :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
+  ->         GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn157
+  :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> IO ())
+  ->         GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn185
+  :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ())
+  ->         GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn276
+  :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> IO ())
+  ->         GLenum -> GLint -> GLint -> GLint -> GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn792
+  :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
+  ->         GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn156
+  :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> IO ())
+  ->         GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn582
+  :: FunPtr (GLenum -> GLint -> GLint -> GLint -> IO ())
+  ->         GLenum -> GLint -> GLint -> GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn791
+  :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
+  ->         GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn155
+  :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr a -> IO ())
+  ->         GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn773
+  :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> IO ())
+  ->         GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn774
+  :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> IO ())
+  ->         GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn777
+  :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> IO ())
+  ->         GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn275
+  :: FunPtr (GLenum -> GLint -> GLint -> IO ())
+  ->         GLenum -> GLint -> GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn240
+  :: FunPtr (GLenum -> GLint -> GLsizei -> GLsizei -> GLuint -> IO ())
+  ->         GLenum -> GLint -> GLsizei -> GLsizei -> GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn239
+  :: FunPtr (GLenum -> GLint -> GLsizei -> GLsizei -> IO ())
+  ->         GLenum -> GLint -> GLsizei -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn237
+  :: FunPtr (GLenum -> GLint -> GLsizei -> IO ())
+  ->         GLenum -> GLint -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn469
+  :: FunPtr (GLenum -> GLint -> GLsizei -> Ptr a -> IO ())
+  ->         GLenum -> GLint -> GLsizei -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn643
+  :: FunPtr (GLenum -> GLint -> GLuint -> IO ())
+  ->         GLenum -> GLint -> GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn708
+  :: FunPtr (GLenum -> GLint -> GLuint -> Ptr GLint -> IO GLint)
+  ->         GLenum -> GLint -> GLuint -> Ptr GLint -> IO GLint
+
+foreign import CALLCONV "dynamic" dyn58
+  :: FunPtr (GLenum -> GLint -> IO ())
+  ->         GLenum -> GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn291
+  :: FunPtr (GLenum -> GLint -> Ptr (Ptr a) -> GLint -> IO ())
+  ->         GLenum -> GLint -> Ptr (Ptr a) -> GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn631
+  :: FunPtr (GLenum -> GLint -> Ptr GLchar -> GLint -> Ptr GLchar -> IO ())
+  ->         GLenum -> GLint -> Ptr GLchar -> GLint -> Ptr GLchar -> IO ()
+
+foreign import CALLCONV "dynamic" dyn407
+  :: FunPtr (GLenum -> GLint -> Ptr GLfixed -> IO ())
+  ->         GLenum -> GLint -> Ptr GLfixed -> IO ()
+
+foreign import CALLCONV "dynamic" dyn79
+  :: FunPtr (GLenum -> GLint -> Ptr GLfloat -> IO ())
+  ->         GLenum -> GLint -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn80
+  :: FunPtr (GLenum -> GLint -> Ptr GLint -> IO ())
+  ->         GLenum -> GLint -> Ptr GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn81
+  :: FunPtr (GLenum -> GLint -> Ptr GLuint -> IO ())
+  ->         GLenum -> GLint -> Ptr GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn338
+  :: FunPtr (GLenum -> GLint -> Ptr a -> IO ())
+  ->         GLenum -> GLint -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn493
+  :: FunPtr (GLenum -> GLintptr -> GLbitfield -> IO GLsync)
+  ->         GLenum -> GLintptr -> GLbitfield -> IO GLsync
+
+foreign import CALLCONV "dynamic" dyn526
+  :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> IO (Ptr a))
+  ->         GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> IO (Ptr a)
+
+foreign import CALLCONV "dynamic" dyn65
+  :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> GLboolean -> IO ())
+  ->         GLenum -> GLintptr -> GLsizeiptr -> GLboolean -> IO ()
+
+foreign import CALLCONV "dynamic" dyn68
+  :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> GLeglClientBufferEXT -> GLbitfield -> IO ())
+  ->         GLenum -> GLintptr -> GLsizeiptr -> GLeglClientBufferEXT -> GLbitfield -> IO ()
+
+foreign import CALLCONV "dynamic" dyn289
+  :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> IO ())
+  ->         GLenum -> GLintptr -> GLsizeiptr -> IO ()
+
+foreign import CALLCONV "dynamic" dyn70
+  :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> Ptr a -> IO ())
+  ->         GLenum -> GLintptr -> GLsizeiptr -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn71
+  :: FunPtr (GLenum -> GLintptrARB -> GLsizeiptrARB -> Ptr a -> IO ())
+  ->         GLenum -> GLintptrARB -> GLsizeiptrARB -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn587
+  :: FunPtr (GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> IO ())
+  ->         GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> IO ()
+
+foreign import CALLCONV "dynamic" dyn583
+  :: FunPtr (GLenum -> GLshort -> GLshort -> GLshort -> IO ())
+  ->         GLenum -> GLshort -> GLshort -> GLshort -> IO ()
+
+foreign import CALLCONV "dynamic" dyn578
+  :: FunPtr (GLenum -> GLshort -> GLshort -> IO ())
+  ->         GLenum -> GLshort -> GLshort -> IO ()
+
+foreign import CALLCONV "dynamic" dyn572
+  :: FunPtr (GLenum -> GLshort -> IO ())
+  ->         GLenum -> GLshort -> IO ()
+
+foreign import CALLCONV "dynamic" dyn488
+  :: FunPtr (GLenum -> GLsizei -> GLenum -> GLboolean -> IO ())
+  ->         GLenum -> GLsizei -> GLenum -> GLboolean -> IO ()
+
+foreign import CALLCONV "dynamic" dyn787
+  :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> GLuint -> GLuint64 -> IO ())
+  ->         GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> GLuint -> GLuint64 -> IO ()
+
+foreign import CALLCONV "dynamic" dyn775
+  :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> IO ())
+  ->         GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> IO ()
+
+foreign import CALLCONV "dynamic" dyn789
+  :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> GLuint -> GLuint64 -> IO ())
+  ->         GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> GLuint -> GLuint64 -> IO ()
+
+foreign import CALLCONV "dynamic" dyn779
+  :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
+  ->         GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()
+
+foreign import CALLCONV "dynamic" dyn788
+  :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLuint -> GLuint64 -> IO ())
+  ->         GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLuint -> GLuint64 -> IO ()
+
+foreign import CALLCONV "dynamic" dyn784
+  :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ())
+  ->         GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn786
+  :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLuint -> GLuint64 -> IO ())
+  ->         GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLuint -> GLuint64 -> IO ()
+
+foreign import CALLCONV "dynamic" dyn720
+  :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
+  ->         GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn785
+  :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLuint -> GLuint64 -> IO ())
+  ->         GLenum -> GLsizei -> GLenum -> GLsizei -> GLuint -> GLuint64 -> IO ()
+
+foreign import CALLCONV "dynamic" dyn783
+  :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> IO ())
+  ->         GLenum -> GLsizei -> GLenum -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn249
+  :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr a -> GLint -> IO ())
+  ->         GLenum -> GLsizei -> GLenum -> Ptr a -> GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn254
+  :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLint -> GLuint -> IO ())
+  ->         GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLint -> GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn253
+  :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLint -> IO ())
+  ->         GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn252
+  :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLuint -> IO ())
+  ->         GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn251
+  :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> IO ())
+  ->         GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn398
+  :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr a -> GLuint -> GLfloat -> GLfloat -> GLenum -> Ptr GLfloat -> IO ())
+  ->         GLenum -> GLsizei -> GLenum -> Ptr a -> GLuint -> GLfloat -> GLfloat -> GLenum -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn248
+  :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr a -> IO ())
+  ->         GLenum -> GLsizei -> GLenum -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn172
+  :: FunPtr (GLenum -> GLsizei -> GLint -> GLint -> GLsizei -> IO ())
+  ->         GLenum -> GLsizei -> GLint -> GLint -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn137
+  :: FunPtr (GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
+  ->         GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn721
+  :: FunPtr (GLenum -> GLsizei -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
+  ->         GLenum -> GLsizei -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn776
+  :: FunPtr (GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> IO ())
+  ->         GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> IO ()
+
+foreign import CALLCONV "dynamic" dyn780
+  :: FunPtr (GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
+  ->         GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()
+
+foreign import CALLCONV "dynamic" dyn494
+  :: FunPtr (GLenum -> GLsizei -> GLsizei -> Ptr a -> IO ())
+  ->         GLenum -> GLsizei -> GLsizei -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn247
+  :: FunPtr (GLenum -> GLsizei -> IO ())
+  ->         GLenum -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn207
+  :: FunPtr (GLenum -> GLsizei -> Ptr (Ptr GLchar) -> IO GLuint)
+  ->         GLenum -> GLsizei -> Ptr (Ptr GLchar) -> IO GLuint
+
+foreign import CALLCONV "dynamic" dyn722
+  :: FunPtr (GLenum -> GLsizei -> Ptr (Ptr a) -> IO ())
+  ->         GLenum -> GLsizei -> Ptr (Ptr a) -> IO ()
+
+foreign import CALLCONV "dynamic" dyn498
+  :: FunPtr (GLenum -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+  ->         GLenum -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn234
+  :: FunPtr (GLenum -> GLsizei -> Ptr GLenum -> IO ())
+  ->         GLenum -> GLsizei -> Ptr GLenum -> IO ()
+
+foreign import CALLCONV "dynamic" dyn233
+  :: FunPtr (GLenum -> GLsizei -> Ptr GLfloat -> IO ())
+  ->         GLenum -> GLsizei -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn941
+  :: FunPtr (GLenum -> GLsizei -> Ptr GLint -> IO ())
+  ->         GLenum -> GLsizei -> Ptr GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn204
+  :: FunPtr (GLenum -> GLsizei -> Ptr GLuint -> IO ())
+  ->         GLenum -> GLsizei -> Ptr GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn474
+  :: FunPtr (GLenum -> GLsizei -> Ptr GLushort -> IO ())
+  ->         GLenum -> GLsizei -> Ptr GLushort -> IO ()
+
+foreign import CALLCONV "dynamic" dyn49
+  :: FunPtr (GLenum -> GLsizei -> Ptr a -> IO ())
+  ->         GLenum -> GLsizei -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn69
+  :: FunPtr (GLenum -> GLsizeiptr -> GLuint -> GLuint64 -> IO ())
+  ->         GLenum -> GLsizeiptr -> GLuint -> GLuint64 -> IO ()
+
+foreign import CALLCONV "dynamic" dyn67
+  :: FunPtr (GLenum -> GLsizeiptr -> Ptr a -> GLbitfield -> IO ())
+  ->         GLenum -> GLsizeiptr -> Ptr a -> GLbitfield -> IO ()
+
+foreign import CALLCONV "dynamic" dyn63
+  :: FunPtr (GLenum -> GLsizeiptr -> Ptr a -> GLenum -> IO ())
+  ->         GLenum -> GLsizeiptr -> Ptr a -> GLenum -> IO ()
+
+foreign import CALLCONV "dynamic" dyn64
+  :: FunPtr (GLenum -> GLsizeiptrARB -> Ptr a -> GLenum -> IO ())
+  ->         GLenum -> GLsizeiptrARB -> Ptr a -> GLenum -> IO ()
+
+foreign import CALLCONV "dynamic" dyn661
+  :: FunPtr (GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+  ->         GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()
+
+foreign import CALLCONV "dynamic" dyn827
+  :: FunPtr (GLenum -> GLuint -> GLenum -> GLenum -> IO ())
+  ->         GLenum -> GLuint -> GLenum -> GLenum -> IO ()
+
+foreign import CALLCONV "dynamic" dyn367
+  :: FunPtr (GLenum -> GLuint -> GLenum -> GLsizei -> GLsizei -> GLboolean -> Ptr a -> IO ())
+  ->         GLenum -> GLuint -> GLenum -> GLsizei -> GLsizei -> GLboolean -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn527
+  :: FunPtr (GLenum -> GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLint -> GLboolean -> Ptr a -> IO ())
+  ->         GLenum -> GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLint -> GLboolean -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn707
+  :: FunPtr (GLenum -> GLuint -> GLenum -> GLuint -> IO ())
+  ->         GLenum -> GLuint -> GLenum -> GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn634
+  :: FunPtr (GLenum -> GLuint -> GLenum -> IO GLenum)
+  ->         GLenum -> GLuint -> GLenum -> IO GLenum
+
+foreign import CALLCONV "dynamic" dyn412
+  :: FunPtr (GLenum -> GLuint -> GLenum -> Ptr GLdouble -> IO ())
+  ->         GLenum -> GLuint -> GLenum -> Ptr GLdouble -> IO ()
+
+foreign import CALLCONV "dynamic" dyn365
+  :: FunPtr (GLenum -> GLuint -> GLenum -> Ptr GLfloat -> IO ())
+  ->         GLenum -> GLuint -> GLenum -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn366
+  :: FunPtr (GLenum -> GLuint -> GLenum -> Ptr GLint -> IO ())
+  ->         GLenum -> GLuint -> GLenum -> Ptr GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn662
+  :: FunPtr (GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+  ->         GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn663
+  :: FunPtr (GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
+  ->         GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn265
+  :: FunPtr (GLenum -> GLuint -> GLsizei -> IO ())
+  ->         GLenum -> GLuint -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn511
+  :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLchar -> IO ())
+  ->         GLenum -> GLuint -> GLsizei -> Ptr GLchar -> IO ()
+
+foreign import CALLCONV "dynamic" dyn667
+  :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLdouble -> IO ())
+  ->         GLenum -> GLuint -> GLsizei -> Ptr GLdouble -> IO ()
+
+foreign import CALLCONV "dynamic" dyn297
+  :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+  ->         GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn664
+  :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLint -> IO ())
+  ->         GLenum -> GLuint -> GLsizei -> Ptr GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn388
+  :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+  ->         GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ()
+
+foreign import CALLCONV "dynamic" dyn515
+  :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLubyte -> IO ())
+  ->         GLenum -> GLuint -> GLsizei -> Ptr GLubyte -> IO ()
+
+foreign import CALLCONV "dynamic" dyn25
+  :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLuint -> IO ())
+  ->         GLenum -> GLuint -> GLsizei -> Ptr GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn26
+  :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizeiptr -> IO ())
+  ->         GLenum -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizeiptr -> IO ()
+
+foreign import CALLCONV "dynamic" dyn256
+  :: FunPtr (GLenum -> GLuint -> GLuint -> GLint -> GLsizei -> IO ())
+  ->         GLenum -> GLuint -> GLuint -> GLint -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn24
+  :: FunPtr (GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> IO ())
+  ->         GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> IO ()
+
+foreign import CALLCONV "dynamic" dyn23
+  :: FunPtr (GLenum -> GLuint -> GLuint -> GLintptr -> IO ())
+  ->         GLenum -> GLuint -> GLuint -> GLintptr -> IO ()
+
+foreign import CALLCONV "dynamic" dyn259
+  :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> GLint -> IO ())
+  ->         GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn258
+  :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> IO ())
+  ->         GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn257
+  :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> IO ())
+  ->         GLenum -> GLuint -> GLuint -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn660
+  :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+  ->         GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn658
+  :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLint -> IO ())
+  ->         GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn659
+  :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLuint -> IO ())
+  ->         GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn129
+  :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+  ->         GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn9
+  :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+  ->         GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn128
+  :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+  ->         GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn8
+  :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+  ->         GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn127
+  :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+  ->         GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn7
+  :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+  ->         GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn746
+  :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+  ->         GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn745
+  :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> IO ())
+  ->         GLenum -> GLuint -> GLuint -> GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn20
+  :: FunPtr (GLenum -> GLuint -> GLuint -> IO ())
+  ->         GLenum -> GLuint -> GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn298
+  :: FunPtr (GLenum -> GLuint -> GLuint -> Ptr GLfloat -> IO ())
+  ->         GLenum -> GLuint -> GLuint -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn423
+  :: FunPtr (GLenum -> GLuint -> GLuint -> Ptr GLint -> IO ())
+  ->         GLenum -> GLuint -> GLuint -> Ptr GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn564
+  :: FunPtr (GLenum -> GLuint -> GLuint -> Ptr GLint -> Ptr GLsizei -> GLsizei -> IO ())
+  ->         GLenum -> GLuint -> GLuint -> Ptr GLint -> Ptr GLsizei -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn62
+  :: FunPtr (GLenum -> GLuint -> GLuint64 -> IO ())
+  ->         GLenum -> GLuint -> GLuint64 -> IO ()
+
+foreign import CALLCONV "dynamic" dyn61
+  :: FunPtr (GLenum -> GLuint -> GLuint64EXT -> GLsizeiptr -> IO ())
+  ->         GLenum -> GLuint -> GLuint64EXT -> GLsizeiptr -> IO ()
+
+foreign import CALLCONV "dynamic" dyn19
+  :: FunPtr (GLenum -> GLuint -> IO ())
+  ->         GLenum -> GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn426
+  :: FunPtr (GLenum -> GLuint -> IO (Ptr GLubyte))
+  ->         GLenum -> GLuint -> IO (Ptr GLubyte)
+
+foreign import CALLCONV "dynamic" dyn502
+  :: FunPtr (GLenum -> GLuint -> IO GLboolean)
+  ->         GLenum -> GLuint -> IO GLboolean
+
+foreign import CALLCONV "dynamic" dyn336
+  :: FunPtr (GLenum -> GLuint -> IO GLuint)
+  ->         GLenum -> GLuint -> IO GLuint
+
+foreign import CALLCONV "dynamic" dyn408
+  :: FunPtr (GLenum -> GLuint -> Ptr (Ptr a) -> IO ())
+  ->         GLenum -> GLuint -> Ptr (Ptr a) -> IO ()
+
+foreign import CALLCONV "dynamic" dyn326
+  :: FunPtr (GLenum -> GLuint -> Ptr GLboolean -> IO ())
+  ->         GLenum -> GLuint -> Ptr GLboolean -> IO ()
+
+foreign import CALLCONV "dynamic" dyn344
+  :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())
+  ->         GLenum -> GLuint -> Ptr GLdouble -> IO ()
+
+foreign import CALLCONV "dynamic" dyn278
+  :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
+  ->         GLenum -> GLuint -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn357
+  :: FunPtr (GLenum -> GLuint -> Ptr GLint -> IO ())
+  ->         GLenum -> GLuint -> Ptr GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn355
+  :: FunPtr (GLenum -> GLuint -> Ptr GLint64 -> IO ())
+  ->         GLenum -> GLuint -> Ptr GLint64 -> IO ()
+
+foreign import CALLCONV "dynamic" dyn244
+  :: FunPtr (GLenum -> GLuint -> Ptr GLintptr -> Ptr GLsizei -> GLuint -> IO ())
+  ->         GLenum -> GLuint -> Ptr GLintptr -> Ptr GLsizei -> GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn459
+  :: FunPtr (GLenum -> GLuint -> Ptr GLubyte -> IO ())
+  ->         GLenum -> GLuint -> Ptr GLubyte -> IO ()
+
+foreign import CALLCONV "dynamic" dyn221
+  :: FunPtr (GLenum -> GLuint -> Ptr GLuint -> IO ())
+  ->         GLenum -> GLuint -> Ptr GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn358
+  :: FunPtr (GLenum -> GLuint -> Ptr GLuint64EXT -> IO ())
+  ->         GLenum -> GLuint -> Ptr GLuint64EXT -> IO ()
+
+foreign import CALLCONV "dynamic" dyn5
+  :: FunPtr (GLenum -> IO ())
+  ->         GLenum -> IO ()
+
+foreign import CALLCONV "dynamic" dyn425
+  :: FunPtr (GLenum -> IO (Ptr GLubyte))
+  ->         GLenum -> IO (Ptr GLubyte)
+
+foreign import CALLCONV "dynamic" dyn501
+  :: FunPtr (GLenum -> IO GLboolean)
+  ->         GLenum -> IO GLboolean
+
+foreign import CALLCONV "dynamic" dyn73
+  :: FunPtr (GLenum -> IO GLenum)
+  ->         GLenum -> IO GLenum
+
+foreign import CALLCONV "dynamic" dyn205
+  :: FunPtr (GLenum -> IO GLhandleARB)
+  ->         GLenum -> IO GLhandleARB
+
+foreign import CALLCONV "dynamic" dyn718
+  :: FunPtr (GLenum -> IO GLint)
+  ->         GLenum -> IO GLint
+
+foreign import CALLCONV "dynamic" dyn33
+  :: FunPtr (GLenum -> IO GLuint)
+  ->         GLenum -> IO GLuint
+
+foreign import CALLCONV "dynamic" dyn424
+  :: FunPtr (GLenum -> IO GLushort)
+  ->         GLenum -> IO GLushort
+
+foreign import CALLCONV "dynamic" dyn279
+  :: FunPtr (GLenum -> Ptr (Ptr a) -> IO ())
+  ->         GLenum -> Ptr (Ptr a) -> IO ()
+
+foreign import CALLCONV "dynamic" dyn327
+  :: FunPtr (GLenum -> Ptr GLboolean -> IO ())
+  ->         GLenum -> Ptr GLboolean -> IO ()
+
+foreign import CALLCONV "dynamic" dyn568
+  :: FunPtr (GLenum -> Ptr GLbyte -> IO ())
+  ->         GLenum -> Ptr GLbyte -> IO ()
+
+foreign import CALLCONV "dynamic" dyn206
+  :: FunPtr (GLenum -> Ptr GLchar -> IO GLuint)
+  ->         GLenum -> Ptr GLchar -> IO GLuint
+
+foreign import CALLCONV "dynamic" dyn100
+  :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+  ->         GLenum -> Ptr GLdouble -> IO ()
+
+foreign import CALLCONV "dynamic" dyn102
+  :: FunPtr (GLenum -> Ptr GLfixed -> IO ())
+  ->         GLenum -> Ptr GLfixed -> IO ()
+
+foreign import CALLCONV "dynamic" dyn101
+  :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+  ->         GLenum -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn571
+  :: FunPtr (GLenum -> Ptr GLhalfNV -> IO ())
+  ->         GLenum -> Ptr GLhalfNV -> IO ()
+
+foreign import CALLCONV "dynamic" dyn143
+  :: FunPtr (GLenum -> Ptr GLint -> IO ())
+  ->         GLenum -> Ptr GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn551
+  :: FunPtr (GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> IO ())
+  ->         GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn356
+  :: FunPtr (GLenum -> Ptr GLint64 -> IO ())
+  ->         GLenum -> Ptr GLint64 -> IO ()
+
+foreign import CALLCONV "dynamic" dyn573
+  :: FunPtr (GLenum -> Ptr GLshort -> IO ())
+  ->         GLenum -> Ptr GLshort -> IO ()
+
+foreign import CALLCONV "dynamic" dyn556
+  :: FunPtr (GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> IO ())
+  ->         GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn557
+  :: FunPtr (GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> Ptr GLint -> IO ())
+  ->         GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> Ptr GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn460
+  :: FunPtr (GLenum -> Ptr GLubyte -> IO ())
+  ->         GLenum -> Ptr GLubyte -> IO ()
+
+foreign import CALLCONV "dynamic" dyn132
+  :: FunPtr (GLenum -> Ptr GLuint -> IO ())
+  ->         GLenum -> Ptr GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn243
+  :: FunPtr (GLenum -> Ptr GLuint64 -> Ptr GLsizei -> GLuint -> IO ())
+  ->         GLenum -> Ptr GLuint64 -> Ptr GLsizei -> GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn359
+  :: FunPtr (GLenum -> Ptr GLuint64EXT -> IO ())
+  ->         GLenum -> Ptr GLuint64EXT -> IO ()
+
+foreign import CALLCONV "dynamic" dyn406
+  :: FunPtr (GLenum -> Ptr GLushort -> IO ())
+  ->         GLenum -> Ptr GLushort -> IO ()
+
+foreign import CALLCONV "dynamic" dyn639
+  :: FunPtr (GLenum -> Ptr a -> GLbitfield -> GLuint -> GLfloat -> Ptr GLuint -> IO GLenum)
+  ->         GLenum -> Ptr a -> GLbitfield -> GLuint -> GLfloat -> Ptr GLuint -> IO GLenum
+
+foreign import CALLCONV "dynamic" dyn555
+  :: FunPtr (GLenum -> Ptr a -> GLintptr -> GLsizei -> GLsizei -> IO ())
+  ->         GLenum -> Ptr a -> GLintptr -> GLsizei -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn554
+  :: FunPtr (GLenum -> Ptr a -> GLsizei -> GLsizei -> GLint -> IO ())
+  ->         GLenum -> Ptr a -> GLsizei -> GLsizei -> GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn553
+  :: FunPtr (GLenum -> Ptr a -> GLsizei -> GLsizei -> GLsizei -> GLint -> IO ())
+  ->         GLenum -> Ptr a -> GLsizei -> GLsizei -> GLsizei -> GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn552
+  :: FunPtr (GLenum -> Ptr a -> GLsizei -> GLsizei -> IO ())
+  ->         GLenum -> Ptr a -> GLsizei -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn238
+  :: FunPtr (GLenum -> Ptr a -> IO ())
+  ->         GLenum -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn310
+  :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
+  ->         GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ()
+
+foreign import CALLCONV "dynamic" dyn264
+  :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
+  ->         GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ()
+
+foreign import CALLCONV "dynamic" dyn53
+  :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
+  ->         GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ()
+
+foreign import CALLCONV "dynamic" dyn113
+  :: FunPtr (GLfixed -> GLfixed -> GLfixed -> IO ())
+  ->         GLfixed -> GLfixed -> GLfixed -> IO ()
+
+foreign import CALLCONV "dynamic" dyn232
+  :: FunPtr (GLfixed -> GLfixed -> IO ())
+  ->         GLfixed -> GLfixed -> IO ()
+
+foreign import CALLCONV "dynamic" dyn87
+  :: FunPtr (GLfixed -> IO ())
+  ->         GLfixed -> IO ()
+
+foreign import CALLCONV "dynamic" dyn735
+  :: FunPtr (GLfloat -> GLboolean -> IO ())
+  ->         GLfloat -> GLboolean -> IO ()
+
+foreign import CALLCONV "dynamic" dyn771
+  :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+  ->         GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn766
+  :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+  ->         GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn117
+  :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+  ->         GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn652
+  :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+  ->         GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn103
+  :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+  ->         GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn260
+  :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+  ->         GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn52
+  :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+  ->         GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn43
+  :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
+  ->         GLfloat -> GLfloat -> GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn768
+  :: FunPtr (GLfloat -> GLfloat -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> IO ())
+  ->         GLfloat -> GLfloat -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn230
+  :: FunPtr (GLfloat -> GLfloat -> IO ())
+  ->         GLfloat -> GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn85
+  :: FunPtr (GLfloat -> IO ())
+  ->         GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn119
+  :: FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
+  ->         GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()
+
+foreign import CALLCONV "dynamic" dyn105
+  :: FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
+  ->         GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()
+
+foreign import CALLCONV "dynamic" dyn770
+  :: FunPtr (GLhalfNV -> GLhalfNV -> IO ())
+  ->         GLhalfNV -> GLhalfNV -> IO ()
+
+foreign import CALLCONV "dynamic" dyn292
+  :: FunPtr (GLhalfNV -> IO ())
+  ->         GLhalfNV -> IO ()
+
+foreign import CALLCONV "dynamic" dyn389
+  :: FunPtr (GLhandleARB -> GLenum -> Ptr GLfloat -> IO ())
+  ->         GLhandleARB -> GLenum -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn390
+  :: FunPtr (GLhandleARB -> GLenum -> Ptr GLint -> IO ())
+  ->         GLhandleARB -> GLenum -> Ptr GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn17
+  :: FunPtr (GLhandleARB -> GLhandleARB -> IO ())
+  ->         GLhandleARB -> GLhandleARB -> IO ()
+
+foreign import CALLCONV "dynamic" dyn451
+  :: FunPtr (GLhandleARB -> GLint -> Ptr GLfloat -> IO ())
+  ->         GLhandleARB -> GLint -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn455
+  :: FunPtr (GLhandleARB -> GLint -> Ptr GLint -> IO ())
+  ->         GLhandleARB -> GLint -> Ptr GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn747
+  :: FunPtr (GLhandleARB -> GLsizei -> Ptr (Ptr GLcharARB) -> Ptr GLint -> IO ())
+  ->         GLhandleARB -> GLsizei -> Ptr (Ptr GLcharARB) -> Ptr GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn353
+  :: FunPtr (GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLcharARB -> IO ())
+  ->         GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLcharARB -> IO ()
+
+foreign import CALLCONV "dynamic" dyn322
+  :: FunPtr (GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLhandleARB -> IO ())
+  ->         GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLhandleARB -> IO ()
+
+foreign import CALLCONV "dynamic" dyn316
+  :: FunPtr (GLhandleARB -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLcharARB -> IO ())
+  ->         GLhandleARB -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLcharARB -> IO ()
+
+foreign import CALLCONV "dynamic" dyn22
+  :: FunPtr (GLhandleARB -> GLuint -> Ptr GLcharARB -> IO ())
+  ->         GLhandleARB -> GLuint -> Ptr GLcharARB -> IO ()
+
+foreign import CALLCONV "dynamic" dyn144
+  :: FunPtr (GLhandleARB -> IO ())
+  ->         GLhandleARB -> IO ()
+
+foreign import CALLCONV "dynamic" dyn325
+  :: FunPtr (GLhandleARB -> Ptr GLcharARB -> IO GLint)
+  ->         GLhandleARB -> Ptr GLcharARB -> IO GLint
+
+foreign import CALLCONV "dynamic" dyn860
+  :: FunPtr (GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+  ->         GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()
+
+foreign import CALLCONV "dynamic" dyn853
+  :: FunPtr (GLint -> GLdouble -> GLdouble -> GLdouble -> IO ())
+  ->         GLint -> GLdouble -> GLdouble -> GLdouble -> IO ()
+
+foreign import CALLCONV "dynamic" dyn531
+  :: FunPtr (GLint -> GLdouble -> GLdouble -> GLint -> GLdouble -> GLdouble -> IO ())
+  ->         GLint -> GLdouble -> GLdouble -> GLint -> GLdouble -> GLdouble -> IO ()
+
+foreign import CALLCONV "dynamic" dyn528
+  :: FunPtr (GLint -> GLdouble -> GLdouble -> IO ())
+  ->         GLint -> GLdouble -> GLdouble -> IO ()
+
+foreign import CALLCONV "dynamic" dyn833
+  :: FunPtr (GLint -> GLdouble -> IO ())
+  ->         GLint -> GLdouble -> IO ()
+
+foreign import CALLCONV "dynamic" dyn135
+  :: FunPtr (GLint -> GLenum -> GLint -> Ptr (Ptr a) -> GLint -> IO ())
+  ->         GLint -> GLenum -> GLint -> Ptr (Ptr a) -> GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn134
+  :: FunPtr (GLint -> GLenum -> GLsizei -> GLsizei -> Ptr a -> IO ())
+  ->         GLint -> GLenum -> GLsizei -> GLsizei -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn126
+  :: FunPtr (GLint -> GLenum -> GLsizei -> IO ())
+  ->         GLint -> GLenum -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn133
+  :: FunPtr (GLint -> GLenum -> GLsizei -> Ptr a -> IO ())
+  ->         GLint -> GLenum -> GLsizei -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn136
+  :: FunPtr (GLint -> GLenum -> Ptr (Ptr a) -> IO ())
+  ->         GLint -> GLenum -> Ptr (Ptr a) -> IO ()
+
+foreign import CALLCONV "dynamic" dyn533
+  :: FunPtr (GLint -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
+  ->         GLint -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ()
+
+foreign import CALLCONV "dynamic" dyn530
+  :: FunPtr (GLint -> GLfixed -> GLfixed -> IO ())
+  ->         GLint -> GLfixed -> GLfixed -> IO ()
+
+foreign import CALLCONV "dynamic" dyn861
+  :: FunPtr (GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+  ->         GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn854
+  :: FunPtr (GLint -> GLfloat -> GLfloat -> GLfloat -> IO ())
+  ->         GLint -> GLfloat -> GLfloat -> GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn532
+  :: FunPtr (GLint -> GLfloat -> GLfloat -> GLint -> GLfloat -> GLfloat -> IO ())
+  ->         GLint -> GLfloat -> GLfloat -> GLint -> GLfloat -> GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn529
+  :: FunPtr (GLint -> GLfloat -> GLfloat -> IO ())
+  ->         GLint -> GLfloat -> GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn835
+  :: FunPtr (GLint -> GLfloat -> IO ())
+  ->         GLint -> GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn59
+  :: FunPtr (GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> IO ())
+  ->         GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> IO ()
+
+foreign import CALLCONV "dynamic" dyn261
+  :: FunPtr (GLint -> GLint -> GLint -> GLint -> GLint -> IO ())
+  ->         GLint -> GLint -> GLint -> GLint -> GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn82
+  :: FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())
+  ->         GLint -> GLint -> GLint -> GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn45
+  :: FunPtr (GLint -> GLint -> GLint -> IO ())
+  ->         GLint -> GLint -> GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn712
+  :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr a -> IO ())
+  ->         GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn711
+  :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
+  ->         GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn182
+  :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> IO ())
+  ->         GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> IO ()
+
+foreign import CALLCONV "dynamic" dyn738
+  :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+  ->         GLint -> GLint -> GLsizei -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn277
+  :: FunPtr (GLint -> GLint -> IO ())
+  ->         GLint -> GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn862
+  :: FunPtr (GLint -> GLint64 -> GLint64 -> GLint64 -> GLint64 -> IO ())
+  ->         GLint -> GLint64 -> GLint64 -> GLint64 -> GLint64 -> IO ()
+
+foreign import CALLCONV "dynamic" dyn855
+  :: FunPtr (GLint -> GLint64 -> GLint64 -> GLint64 -> IO ())
+  ->         GLint -> GLint64 -> GLint64 -> GLint64 -> IO ()
+
+foreign import CALLCONV "dynamic" dyn848
+  :: FunPtr (GLint -> GLint64 -> GLint64 -> IO ())
+  ->         GLint -> GLint64 -> GLint64 -> IO ()
+
+foreign import CALLCONV "dynamic" dyn837
+  :: FunPtr (GLint -> GLint64 -> IO ())
+  ->         GLint -> GLint64 -> IO ()
+
+foreign import CALLCONV "dynamic" dyn863
+  :: FunPtr (GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ())
+  ->         GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ()
+
+foreign import CALLCONV "dynamic" dyn856
+  :: FunPtr (GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ())
+  ->         GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ()
+
+foreign import CALLCONV "dynamic" dyn849
+  :: FunPtr (GLint -> GLint64EXT -> GLint64EXT -> IO ())
+  ->         GLint -> GLint64EXT -> GLint64EXT -> IO ()
+
+foreign import CALLCONV "dynamic" dyn838
+  :: FunPtr (GLint -> GLint64EXT -> IO ())
+  ->         GLint -> GLint64EXT -> IO ()
+
+foreign import CALLCONV "dynamic" dyn867
+  :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+  ->         GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ()
+
+foreign import CALLCONV "dynamic" dyn868
+  :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+  ->         GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn516
+  :: FunPtr (GLint -> GLsizei -> IO ())
+  ->         GLint -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn834
+  :: FunPtr (GLint -> GLsizei -> Ptr GLdouble -> IO ())
+  ->         GLint -> GLsizei -> Ptr GLdouble -> IO ()
+
+foreign import CALLCONV "dynamic" dyn836
+  :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ())
+  ->         GLint -> GLsizei -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn841
+  :: FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ())
+  ->         GLint -> GLsizei -> Ptr GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn839
+  :: FunPtr (GLint -> GLsizei -> Ptr GLint64 -> IO ())
+  ->         GLint -> GLsizei -> Ptr GLint64 -> IO ()
+
+foreign import CALLCONV "dynamic" dyn840
+  :: FunPtr (GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
+  ->         GLint -> GLsizei -> Ptr GLint64EXT -> IO ()
+
+foreign import CALLCONV "dynamic" dyn847
+  :: FunPtr (GLint -> GLsizei -> Ptr GLuint -> IO ())
+  ->         GLint -> GLsizei -> Ptr GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn845
+  :: FunPtr (GLint -> GLsizei -> Ptr GLuint64 -> IO ())
+  ->         GLint -> GLsizei -> Ptr GLuint64 -> IO ()
+
+foreign import CALLCONV "dynamic" dyn846
+  :: FunPtr (GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
+  ->         GLint -> GLsizei -> Ptr GLuint64EXT -> IO ()
+
+foreign import CALLCONV "dynamic" dyn864
+  :: FunPtr (GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+  ->         GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn857
+  :: FunPtr (GLint -> GLuint -> GLuint -> GLuint -> IO ())
+  ->         GLint -> GLuint -> GLuint -> GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn850
+  :: FunPtr (GLint -> GLuint -> GLuint -> IO ())
+  ->         GLint -> GLuint -> GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn842
+  :: FunPtr (GLint -> GLuint -> IO ())
+  ->         GLint -> GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn865
+  :: FunPtr (GLint -> GLuint64 -> GLuint64 -> GLuint64 -> GLuint64 -> IO ())
+  ->         GLint -> GLuint64 -> GLuint64 -> GLuint64 -> GLuint64 -> IO ()
+
+foreign import CALLCONV "dynamic" dyn858
+  :: FunPtr (GLint -> GLuint64 -> GLuint64 -> GLuint64 -> IO ())
+  ->         GLint -> GLuint64 -> GLuint64 -> GLuint64 -> IO ()
+
+foreign import CALLCONV "dynamic" dyn851
+  :: FunPtr (GLint -> GLuint64 -> GLuint64 -> IO ())
+  ->         GLint -> GLuint64 -> GLuint64 -> IO ()
+
+foreign import CALLCONV "dynamic" dyn843
+  :: FunPtr (GLint -> GLuint64 -> IO ())
+  ->         GLint -> GLuint64 -> IO ()
+
+foreign import CALLCONV "dynamic" dyn866
+  :: FunPtr (GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ())
+  ->         GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ()
+
+foreign import CALLCONV "dynamic" dyn859
+  :: FunPtr (GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ())
+  ->         GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ()
+
+foreign import CALLCONV "dynamic" dyn852
+  :: FunPtr (GLint -> GLuint64EXT -> GLuint64EXT -> IO ())
+  ->         GLint -> GLuint64EXT -> GLuint64EXT -> IO ()
+
+foreign import CALLCONV "dynamic" dyn844
+  :: FunPtr (GLint -> GLuint64EXT -> IO ())
+  ->         GLint -> GLuint64EXT -> IO ()
+
+foreign import CALLCONV "dynamic" dyn512
+  :: FunPtr (GLint -> GLushort -> IO ())
+  ->         GLint -> GLushort -> IO ()
+
+foreign import CALLCONV "dynamic" dyn13
+  :: FunPtr (GLint -> IO ())
+  ->         GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn273
+  :: FunPtr (GLint -> Ptr (Ptr GLboolean) -> GLint -> IO ())
+  ->         GLint -> Ptr (Ptr GLboolean) -> GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn936
+  :: FunPtr (GLint -> Ptr GLbyte -> IO ())
+  ->         GLint -> Ptr GLbyte -> IO ()
+
+foreign import CALLCONV "dynamic" dyn387
+  :: FunPtr (GLint -> Ptr GLchar -> GLenum -> Ptr GLint -> IO ())
+  ->         GLint -> Ptr GLchar -> GLenum -> Ptr GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn386
+  :: FunPtr (GLint -> Ptr GLchar -> GLsizei -> Ptr GLint -> Ptr GLchar -> IO ())
+  ->         GLint -> Ptr GLchar -> GLsizei -> Ptr GLint -> Ptr GLchar -> IO ()
+
+foreign import CALLCONV "dynamic" dyn220
+  :: FunPtr (GLint -> Ptr GLchar -> IO ())
+  ->         GLint -> Ptr GLchar -> IO ()
+
+foreign import CALLCONV "dynamic" dyn504
+  :: FunPtr (GLint -> Ptr GLchar -> IO GLboolean)
+  ->         GLint -> Ptr GLchar -> IO GLboolean
+
+foreign import CALLCONV "dynamic" dyn937
+  :: FunPtr (GLint -> Ptr GLdouble -> IO ())
+  ->         GLint -> Ptr GLdouble -> IO ()
+
+foreign import CALLCONV "dynamic" dyn242
+  :: FunPtr (GLint -> Ptr GLenum -> Ptr GLint -> IO ())
+  ->         GLint -> Ptr GLenum -> Ptr GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn938
+  :: FunPtr (GLint -> Ptr GLfloat -> IO ())
+  ->         GLint -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn939
+  :: FunPtr (GLint -> Ptr GLint -> IO ())
+  ->         GLint -> Ptr GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn940
+  :: FunPtr (GLint -> Ptr GLshort -> IO ())
+  ->         GLint -> Ptr GLshort -> IO ()
+
+foreign import CALLCONV "dynamic" dyn543
+  :: FunPtr (GLint -> Ptr GLubyte -> IO ())
+  ->         GLint -> Ptr GLubyte -> IO ()
+
+foreign import CALLCONV "dynamic" dyn544
+  :: FunPtr (GLint -> Ptr GLuint -> IO ())
+  ->         GLint -> Ptr GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn545
+  :: FunPtr (GLint -> Ptr GLushort -> IO ())
+  ->         GLint -> Ptr GLushort -> IO ()
+
+foreign import CALLCONV "dynamic" dyn562
+  :: FunPtr (GLintptr -> GLintptr -> GLsizei -> GLsizei -> IO ())
+  ->         GLintptr -> GLintptr -> GLsizei -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn563
+  :: FunPtr (GLintptr -> GLsizei -> GLsizei -> IO ())
+  ->         GLintptr -> GLsizei -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn236
+  :: FunPtr (GLintptr -> IO ())
+  ->         GLintptr -> IO ()
+
+foreign import CALLCONV "dynamic" dyn262
+  :: FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> GLshort -> IO ())
+  ->         GLshort -> GLshort -> GLshort -> GLshort -> GLshort -> IO ()
+
+foreign import CALLCONV "dynamic" dyn120
+  :: FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> IO ())
+  ->         GLshort -> GLshort -> GLshort -> GLshort -> IO ()
+
+foreign import CALLCONV "dynamic" dyn47
+  :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
+  ->         GLshort -> GLshort -> GLshort -> IO ()
+
+foreign import CALLCONV "dynamic" dyn709
+  :: FunPtr (GLshort -> GLshort -> IO ())
+  ->         GLshort -> GLshort -> IO ()
+
+foreign import CALLCONV "dynamic" dyn485
+  :: FunPtr (GLshort -> IO ())
+  ->         GLshort -> IO ()
+
+foreign import CALLCONV "dynamic" dyn286
+  :: FunPtr (GLsizei -> GLenum -> Ptr GLfixed -> IO ())
+  ->         GLsizei -> GLenum -> Ptr GLfixed -> IO ()
+
+foreign import CALLCONV "dynamic" dyn285
+  :: FunPtr (GLsizei -> GLenum -> Ptr GLfloat -> IO ())
+  ->         GLsizei -> GLenum -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn197
+  :: FunPtr (GLsizei -> GLenum -> Ptr a -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
+  ->         GLsizei -> GLenum -> Ptr a -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn759
+  :: FunPtr (GLsizei -> GLenum -> Ptr a -> GLuint -> GLenum -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
+  ->         GLsizei -> GLenum -> Ptr a -> GLuint -> GLenum -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn754
+  :: FunPtr (GLsizei -> GLenum -> Ptr a -> GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLfloat -> IO ())
+  ->         GLsizei -> GLenum -> Ptr a -> GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn761
+  :: FunPtr (GLsizei -> GLenum -> Ptr a -> GLuint -> GLint -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
+  ->         GLsizei -> GLenum -> Ptr a -> GLuint -> GLint -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn758
+  :: FunPtr (GLsizei -> GLenum -> Ptr a -> GLuint -> GLint -> GLuint -> GLenum -> Ptr GLfloat -> IO ())
+  ->         GLsizei -> GLenum -> Ptr a -> GLuint -> GLint -> GLuint -> GLenum -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn72
+  :: FunPtr (GLsizei -> GLenum -> Ptr a -> IO ())
+  ->         GLsizei -> GLenum -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn255
+  :: FunPtr (GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
+  ->         GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn51
+  :: FunPtr (GLsizei -> GLsizei -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> Ptr GLubyte -> IO ())
+  ->         GLsizei -> GLsizei -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> Ptr GLubyte -> IO ()
+
+foreign import CALLCONV "dynamic" dyn50
+  :: FunPtr (GLsizei -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> Ptr GLubyte -> IO ())
+  ->         GLsizei -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> Ptr GLubyte -> IO ()
+
+foreign import CALLCONV "dynamic" dyn272
+  :: FunPtr (GLsizei -> GLsizei -> Ptr GLboolean -> IO ())
+  ->         GLsizei -> GLsizei -> Ptr GLboolean -> IO ()
+
+foreign import CALLCONV "dynamic" dyn95
+  :: FunPtr (GLsizei -> GLsizei -> Ptr GLuint -> IO ())
+  ->         GLsizei -> GLsizei -> Ptr GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn753
+  :: FunPtr (GLsizei -> GLuint -> IO ())
+  ->         GLsizei -> GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn270
+  :: FunPtr (GLsizei -> IO ())
+  ->         GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn311
+  :: FunPtr (GLsizei -> IO GLuint)
+  ->         GLsizei -> IO GLuint
+
+foreign import CALLCONV "dynamic" dyn495
+  :: FunPtr (GLsizei -> Ptr GLchar -> IO ())
+  ->         GLsizei -> Ptr GLchar -> IO ()
+
+foreign import CALLCONV "dynamic" dyn241
+  :: FunPtr (GLsizei -> Ptr GLenum -> IO ())
+  ->         GLsizei -> Ptr GLenum -> IO ()
+
+foreign import CALLCONV "dynamic" dyn199
+  :: FunPtr (GLsizei -> Ptr GLfloat -> IO ())
+  ->         GLsizei -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn828
+  :: FunPtr (GLsizei -> Ptr GLint -> GLenum -> IO ())
+  ->         GLsizei -> Ptr GLint -> GLenum -> IO ()
+
+foreign import CALLCONV "dynamic" dyn830
+  :: FunPtr (GLsizei -> Ptr GLint -> GLsizei -> Ptr GLint -> GLenum -> IO ())
+  ->         GLsizei -> Ptr GLint -> GLsizei -> Ptr GLint -> GLenum -> IO ()
+
+foreign import CALLCONV "dynamic" dyn222
+  :: FunPtr (GLsizei -> Ptr GLint -> IO ())
+  ->         GLsizei -> Ptr GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn475
+  :: FunPtr (GLsizei -> Ptr GLubyte -> IO ())
+  ->         GLsizei -> Ptr GLubyte -> IO ()
+
+foreign import CALLCONV "dynamic" dyn744
+  :: FunPtr (GLsizei -> Ptr GLuint -> GLenum -> Ptr a -> GLsizei -> IO ())
+  ->         GLsizei -> Ptr GLuint -> GLenum -> Ptr a -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn200
+  :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+  ->         GLsizei -> Ptr GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn12
+  :: FunPtr (GLsizei -> Ptr GLuint -> Ptr GLboolean -> IO GLboolean)
+  ->         GLsizei -> Ptr GLuint -> Ptr GLboolean -> IO GLboolean
+
+foreign import CALLCONV "dynamic" dyn654
+  :: FunPtr (GLsizei -> Ptr GLuint -> Ptr GLclampf -> IO ())
+  ->         GLsizei -> Ptr GLuint -> Ptr GLclampf -> IO ()
+
+foreign import CALLCONV "dynamic" dyn655
+  :: FunPtr (GLsizei -> Ptr GLuint -> Ptr GLfixed -> IO ())
+  ->         GLsizei -> Ptr GLuint -> Ptr GLfixed -> IO ()
+
+foreign import CALLCONV "dynamic" dyn653
+  :: FunPtr (GLsizei -> Ptr GLuint -> Ptr GLfloat -> IO ())
+  ->         GLsizei -> Ptr GLuint -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn16
+  :: FunPtr (GLsizei -> Ptr GLuint -> Ptr GLuint64 -> GLuint -> GLbitfield -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> Ptr GLuint -> Ptr GLuint64 -> IO GLuint)
+  ->         GLsizei -> Ptr GLuint -> Ptr GLuint64 -> GLuint -> GLbitfield -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> Ptr GLuint -> Ptr GLuint64 -> IO GLuint
+
+foreign import CALLCONV "dynamic" dyn15
+  :: FunPtr (GLsizei -> Ptr GLuint -> Ptr GLuint64 -> GLuint -> GLbitfield -> GLuint -> GLuint -> GLintptr -> GLintptr -> GLsizeiptr -> GLsizei -> Ptr GLuint -> Ptr GLuint64 -> IO GLuint)
+  ->         GLsizei -> Ptr GLuint -> Ptr GLuint64 -> GLuint -> GLbitfield -> GLuint -> GLuint -> GLintptr -> GLintptr -> GLsizeiptr -> GLsizei -> Ptr GLuint -> Ptr GLuint64 -> IO GLuint
+
+foreign import CALLCONV "dynamic" dyn98
+  :: FunPtr (GLsizei -> Ptr GLuint -> Ptr GLuint64 -> IO ())
+  ->         GLsizei -> Ptr GLuint -> Ptr GLuint64 -> IO ()
+
+foreign import CALLCONV "dynamic" dyn874
+  :: FunPtr (GLsizei -> Ptr GLvdpauSurfaceNV -> IO ())
+  ->         GLsizei -> Ptr GLvdpauSurfaceNV -> IO ()
+
+foreign import CALLCONV "dynamic" dyn632
+  :: FunPtr (GLsizei -> Ptr a -> GLenum -> IO GLuint)
+  ->         GLsizei -> Ptr a -> GLenum -> IO GLuint
+
+foreign import CALLCONV "dynamic" dyn271
+  :: FunPtr (GLsizei -> Ptr a -> IO ())
+  ->         GLsizei -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn934
+  :: FunPtr (GLsync -> GLbitfield -> GLuint64 -> IO ())
+  ->         GLsync -> GLbitfield -> GLuint64 -> IO ()
+
+foreign import CALLCONV "dynamic" dyn99
+  :: FunPtr (GLsync -> GLbitfield -> GLuint64 -> IO GLenum)
+  ->         GLsync -> GLbitfield -> GLuint64 -> IO GLenum
+
+foreign import CALLCONV "dynamic" dyn427
+  :: FunPtr (GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> IO ())
+  ->         GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn223
+  :: FunPtr (GLsync -> IO ())
+  ->         GLsync -> IO ()
+
+foreign import CALLCONV "dynamic" dyn507
+  :: FunPtr (GLsync -> IO GLboolean)
+  ->         GLsync -> IO GLboolean
+
+foreign import CALLCONV "dynamic" dyn124
+  :: FunPtr (GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> IO ())
+  ->         GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn122
+  :: FunPtr (GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> IO ())
+  ->         GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn121
+  :: FunPtr (GLubyte -> GLubyte -> GLubyte -> GLubyte -> IO ())
+  ->         GLubyte -> GLubyte -> GLubyte -> GLubyte -> IO ()
+
+foreign import CALLCONV "dynamic" dyn107
+  :: FunPtr (GLubyte -> GLubyte -> GLubyte -> IO ())
+  ->         GLubyte -> GLubyte -> GLubyte -> IO ()
+
+foreign import CALLCONV "dynamic" dyn486
+  :: FunPtr (GLubyte -> IO ())
+  ->         GLubyte -> IO ()
+
+foreign import CALLCONV "dynamic" dyn509
+  :: FunPtr (GLuint -> GLbitfield -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> IO ())
+  ->         GLuint -> GLbitfield -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn599
+  :: FunPtr (GLuint -> GLbitfield -> GLuint -> GLuint -> GLintptr -> GLintptr -> GLsizeiptr -> IO ())
+  ->         GLuint -> GLbitfield -> GLuint -> GLuint -> GLintptr -> GLintptr -> GLsizeiptr -> IO ()
+
+foreign import CALLCONV "dynamic" dyn870
+  :: FunPtr (GLuint -> GLbitfield -> GLuint -> IO ())
+  ->         GLuint -> GLbitfield -> GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn606
+  :: FunPtr (GLuint -> GLbitfield -> IO ())
+  ->         GLuint -> GLbitfield -> IO ()
+
+foreign import CALLCONV "dynamic" dyn131
+  :: FunPtr (GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ())
+  ->         GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ()
+
+foreign import CALLCONV "dynamic" dyn742
+  :: FunPtr (GLuint -> GLboolean -> GLuint -> GLint -> Ptr GLuint -> IO ())
+  ->         GLuint -> GLboolean -> GLuint -> GLint -> Ptr GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn710
+  :: FunPtr (GLuint -> GLboolean -> IO ())
+  ->         GLuint -> GLboolean -> IO ()
+
+foreign import CALLCONV "dynamic" dyn906
+  :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+  ->         GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()
+
+foreign import CALLCONV "dynamic" dyn902
+  :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> IO ())
+  ->         GLuint -> GLdouble -> GLdouble -> GLdouble -> IO ()
+
+foreign import CALLCONV "dynamic" dyn228
+  :: FunPtr (GLuint -> GLdouble -> GLdouble -> IO ())
+  ->         GLuint -> GLdouble -> GLdouble -> IO ()
+
+foreign import CALLCONV "dynamic" dyn895
+  :: FunPtr (GLuint -> GLdouble -> IO ())
+  ->         GLuint -> GLdouble -> IO ()
+
+foreign import CALLCONV "dynamic" dyn269
+  :: FunPtr (GLuint -> GLeglImageOES -> Ptr GLint -> IO ())
+  ->         GLuint -> GLeglImageOES -> Ptr GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn927
+  :: FunPtr (GLuint -> GLenum -> GLboolean -> GLuint -> IO ())
+  ->         GLuint -> GLenum -> GLboolean -> GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn928
+  :: FunPtr (GLuint -> GLenum -> GLboolean -> Ptr GLuint -> IO ())
+  ->         GLuint -> GLenum -> GLboolean -> Ptr GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn57
+  :: FunPtr (GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
+  ->         GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> IO ()
+
+foreign import CALLCONV "dynamic" dyn88
+  :: FunPtr (GLuint -> GLenum -> GLenum -> GLenum -> Ptr a -> IO ())
+  ->         GLuint -> GLenum -> GLenum -> GLenum -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn804
+  :: FunPtr (GLuint -> GLenum -> GLenum -> GLfloat -> IO ())
+  ->         GLuint -> GLenum -> GLenum -> GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn805
+  :: FunPtr (GLuint -> GLenum -> GLenum -> GLint -> IO ())
+  ->         GLuint -> GLenum -> GLenum -> GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn820
+  :: FunPtr (GLuint -> GLenum -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLbitfield -> IO ())
+  ->         GLuint -> GLenum -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLbitfield -> IO ()
+
+foreign import CALLCONV "dynamic" dyn627
+  :: FunPtr (GLuint -> GLenum -> GLenum -> GLsizei -> Ptr a -> IO ())
+  ->         GLuint -> GLenum -> GLenum -> GLsizei -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn617
+  :: FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ())
+  ->         GLuint -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn616
+  :: FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> GLint -> IO ())
+  ->         GLuint -> GLenum -> GLenum -> GLuint -> GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn795
+  :: FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> IO ())
+  ->         GLuint -> GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> IO ()
+
+foreign import CALLCONV "dynamic" dyn613
+  :: FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> IO ())
+  ->         GLuint -> GLenum -> GLenum -> GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn55
+  :: FunPtr (GLuint -> GLenum -> GLenum -> IO ())
+  ->         GLuint -> GLenum -> GLenum -> IO ()
+
+foreign import CALLCONV "dynamic" dyn440
+  :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
+  ->         GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn379
+  :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
+  ->         GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn439
+  :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLuint -> IO ())
+  ->         GLuint -> GLenum -> GLenum -> Ptr GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn385
+  :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr a -> IO ())
+  ->         GLuint -> GLenum -> GLenum -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn514
+  :: FunPtr (GLuint -> GLenum -> GLfloat -> IO ())
+  ->         GLuint -> GLenum -> GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn435
+  :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> IO ())
+  ->         GLuint -> GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn188
+  :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> IO ())
+  ->         GLuint -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn189
+  :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> IO ())
+  ->         GLuint -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn158
+  :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr a -> IO ())
+  ->         GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn159
+  :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> IO ())
+  ->         GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn160
+  :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> IO ())
+  ->         GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn437
+  :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ())
+  ->         GLuint -> GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn282
+  :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> Ptr GLint -> IO ())
+  ->         GLuint -> GLenum -> GLint -> GLenum -> Ptr GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn91
+  :: FunPtr (GLuint -> GLenum -> GLint -> GLfloat -> GLint -> IO ())
+  ->         GLuint -> GLenum -> GLint -> GLfloat -> GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn196
+  :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+  ->         GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn194
+  :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+  ->         GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn825
+  :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
+  ->         GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn166
+  :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> IO ())
+  ->         GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn192
+  :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ())
+  ->         GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn175
+  :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> IO ())
+  ->         GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn824
+  :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
+  ->         GLuint -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn164
+  :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> IO ())
+  ->         GLuint -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn822
+  :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
+  ->         GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn162
+  :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr a -> IO ())
+  ->         GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn796
+  :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> IO ())
+  ->         GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn797
+  :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> IO ())
+  ->         GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn800
+  :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> IO ())
+  ->         GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn369
+  :: FunPtr (GLuint -> GLenum -> GLint -> GLsizei -> Ptr GLuint -> IO ())
+  ->         GLuint -> GLenum -> GLint -> GLsizei -> Ptr GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn491
+  :: FunPtr (GLuint -> GLenum -> GLint -> IO ())
+  ->         GLuint -> GLenum -> GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn92
+  :: FunPtr (GLuint -> GLenum -> GLint -> Ptr GLfloat -> IO ())
+  ->         GLuint -> GLenum -> GLint -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn93
+  :: FunPtr (GLuint -> GLenum -> GLint -> Ptr GLint -> IO ())
+  ->         GLuint -> GLenum -> GLint -> Ptr GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn94
+  :: FunPtr (GLuint -> GLenum -> GLint -> Ptr GLuint -> IO ())
+  ->         GLuint -> GLenum -> GLint -> Ptr GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn340
+  :: FunPtr (GLuint -> GLenum -> GLint -> Ptr a -> IO ())
+  ->         GLuint -> GLenum -> GLint -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn89
+  :: FunPtr (GLuint -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr a -> IO ())
+  ->         GLuint -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn810
+  :: FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> IO ())
+  ->         GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> IO ()
+
+foreign import CALLCONV "dynamic" dyn814
+  :: FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
+  ->         GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()
+
+foreign import CALLCONV "dynamic" dyn812
+  :: FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ())
+  ->         GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn808
+  :: FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
+  ->         GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn807
+  :: FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> IO ())
+  ->         GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn799
+  :: FunPtr (GLuint -> GLenum -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> IO ())
+  ->         GLuint -> GLenum -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> IO ()
+
+foreign import CALLCONV "dynamic" dyn802
+  :: FunPtr (GLuint -> GLenum -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
+  ->         GLuint -> GLenum -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()
+
+foreign import CALLCONV "dynamic" dyn798
+  :: FunPtr (GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> IO ())
+  ->         GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> IO ()
+
+foreign import CALLCONV "dynamic" dyn801
+  :: FunPtr (GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
+  ->         GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()
+
+foreign import CALLCONV "dynamic" dyn628
+  :: FunPtr (GLuint -> GLenum -> GLsizei -> GLsizei -> IO ())
+  ->         GLuint -> GLenum -> GLsizei -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn879
+  :: FunPtr (GLuint -> GLenum -> GLsizei -> GLuint -> GLuint -> IO ())
+  ->         GLuint -> GLenum -> GLsizei -> GLuint -> GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn400
+  :: FunPtr (GLuint -> GLenum -> GLsizei -> Ptr GLuint -> Ptr GLint -> IO ())
+  ->         GLuint -> GLenum -> GLsizei -> Ptr GLuint -> Ptr GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn644
+  :: FunPtr (GLuint -> GLenum -> GLsizei -> Ptr a -> IO ())
+  ->         GLuint -> GLenum -> GLsizei -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn90
+  :: FunPtr (GLuint -> GLenum -> GLsizeiptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr a -> IO ())
+  ->         GLuint -> GLenum -> GLsizeiptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn642
+  :: FunPtr (GLuint -> GLenum -> GLsizeiptr -> Ptr a -> GLsizei -> GLuint -> GLsizei -> GLuint -> GLfloat -> IO GLenum)
+  ->         GLuint -> GLenum -> GLsizeiptr -> Ptr a -> GLsizei -> GLuint -> GLsizei -> GLuint -> GLfloat -> IO GLenum
+
+foreign import CALLCONV "dynamic" dyn620
+  :: FunPtr (GLuint -> GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+  ->         GLuint -> GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()
+
+foreign import CALLCONV "dynamic" dyn826
+  :: FunPtr (GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+  ->         GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn760
+  :: FunPtr (GLuint -> GLenum -> GLuint -> GLenum -> IO ())
+  ->         GLuint -> GLenum -> GLuint -> GLenum -> IO ()
+
+foreign import CALLCONV "dynamic" dyn318
+  :: FunPtr (GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLint -> IO ())
+  ->         GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn621
+  :: FunPtr (GLuint -> GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+  ->         GLuint -> GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn618
+  :: FunPtr (GLuint -> GLenum -> GLuint -> GLint -> GLenum -> IO ())
+  ->         GLuint -> GLenum -> GLuint -> GLint -> GLenum -> IO ()
+
+foreign import CALLCONV "dynamic" dyn622
+  :: FunPtr (GLuint -> GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
+  ->         GLuint -> GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn619
+  :: FunPtr (GLuint -> GLenum -> GLuint -> GLint -> GLint -> IO ())
+  ->         GLuint -> GLenum -> GLuint -> GLint -> GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn615
+  :: FunPtr (GLuint -> GLenum -> GLuint -> GLint -> IO ())
+  ->         GLuint -> GLenum -> GLuint -> GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn794
+  :: FunPtr (GLuint -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> IO ())
+  ->         GLuint -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> IO ()
+
+foreign import CALLCONV "dynamic" dyn415
+  :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLfloat -> IO ())
+  ->         GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn416
+  :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> IO ())
+  ->         GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn624
+  :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+  ->         GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn625
+  :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLint -> IO ())
+  ->         GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn317
+  :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+  ->         GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ()
+
+foreign import CALLCONV "dynamic" dyn626
+  :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLuint -> IO ())
+  ->         GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn380
+  :: FunPtr (GLuint -> GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+  ->         GLuint -> GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn623
+  :: FunPtr (GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+  ->         GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn755
+  :: FunPtr (GLuint -> GLenum -> GLuint -> IO ())
+  ->         GLuint -> GLenum -> GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn383
+  :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLdouble -> IO ())
+  ->         GLuint -> GLenum -> GLuint -> Ptr GLdouble -> IO ()
+
+foreign import CALLCONV "dynamic" dyn384
+  :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLfloat -> IO ())
+  ->         GLuint -> GLenum -> GLuint -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn381
+  :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLint -> IO ())
+  ->         GLuint -> GLenum -> GLuint -> Ptr GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn444
+  :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLint64 -> IO ())
+  ->         GLuint -> GLenum -> GLuint -> Ptr GLint64 -> IO ()
+
+foreign import CALLCONV "dynamic" dyn382
+  :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLuint -> IO ())
+  ->         GLuint -> GLenum -> GLuint -> Ptr GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn880
+  :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr a -> IO ())
+  ->         GLuint -> GLenum -> GLuint -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn18
+  :: FunPtr (GLuint -> GLenum -> IO ())
+  ->         GLuint -> GLenum -> IO ()
+
+foreign import CALLCONV "dynamic" dyn534
+  :: FunPtr (GLuint -> GLenum -> IO (Ptr a))
+  ->         GLuint -> GLenum -> IO (Ptr a)
+
+foreign import CALLCONV "dynamic" dyn508
+  :: FunPtr (GLuint -> GLenum -> IO GLboolean)
+  ->         GLuint -> GLenum -> IO GLboolean
+
+foreign import CALLCONV "dynamic" dyn74
+  :: FunPtr (GLuint -> GLenum -> IO GLenum)
+  ->         GLuint -> GLenum -> IO GLenum
+
+foreign import CALLCONV "dynamic" dyn377
+  :: FunPtr (GLuint -> GLenum -> Ptr (Ptr a) -> IO ())
+  ->         GLuint -> GLenum -> Ptr (Ptr a) -> IO ()
+
+foreign import CALLCONV "dynamic" dyn363
+  :: FunPtr (GLuint -> GLenum -> Ptr GLboolean -> IO ())
+  ->         GLuint -> GLenum -> Ptr GLboolean -> IO ()
+
+foreign import CALLCONV "dynamic" dyn414
+  :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLint)
+  ->         GLuint -> GLenum -> Ptr GLchar -> IO GLint
+
+foreign import CALLCONV "dynamic" dyn413
+  :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLuint)
+  ->         GLuint -> GLenum -> Ptr GLchar -> IO GLuint
+
+foreign import CALLCONV "dynamic" dyn281
+  :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> Ptr GLint -> IO ())
+  ->         GLuint -> GLenum -> Ptr GLchar -> Ptr GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn463
+  :: FunPtr (GLuint -> GLenum -> Ptr GLdouble -> IO ())
+  ->         GLuint -> GLenum -> Ptr GLdouble -> IO ()
+
+foreign import CALLCONV "dynamic" dyn364
+  :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
+  ->         GLuint -> GLenum -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn348
+  :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+  ->         GLuint -> GLenum -> Ptr GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn375
+  :: FunPtr (GLuint -> GLenum -> Ptr GLint64 -> IO ())
+  ->         GLuint -> GLenum -> Ptr GLint64 -> IO ()
+
+foreign import CALLCONV "dynamic" dyn464
+  :: FunPtr (GLuint -> GLenum -> Ptr GLint64EXT -> IO ())
+  ->         GLuint -> GLenum -> Ptr GLint64EXT -> IO ()
+
+foreign import CALLCONV "dynamic" dyn417
+  :: FunPtr (GLuint -> GLenum -> Ptr GLubyte -> IO ())
+  ->         GLuint -> GLenum -> Ptr GLubyte -> IO ()
+
+foreign import CALLCONV "dynamic" dyn392
+  :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
+  ->         GLuint -> GLenum -> Ptr GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn419
+  :: FunPtr (GLuint -> GLenum -> Ptr GLuint64 -> IO ())
+  ->         GLuint -> GLenum -> Ptr GLuint64 -> IO ()
+
+foreign import CALLCONV "dynamic" dyn376
+  :: FunPtr (GLuint -> GLenum -> Ptr GLuint64EXT -> IO ())
+  ->         GLuint -> GLenum -> Ptr GLuint64EXT -> IO ()
+
+foreign import CALLCONV "dynamic" dyn641
+  :: FunPtr (GLuint -> GLenum -> Ptr a -> GLbitfield -> GLsizei -> GLenum -> Ptr b -> GLenum -> GLuint -> GLfloat -> IO ())
+  ->         GLuint -> GLenum -> Ptr a -> GLbitfield -> GLsizei -> GLenum -> Ptr b -> GLenum -> GLuint -> GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn640
+  :: FunPtr (GLuint -> GLenum -> Ptr a -> GLbitfield -> GLuint -> GLsizei -> GLenum -> GLuint -> GLfloat -> IO ())
+  ->         GLuint -> GLenum -> Ptr a -> GLbitfield -> GLuint -> GLsizei -> GLenum -> GLuint -> GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn638
+  :: FunPtr (GLuint -> GLenum -> Ptr a -> GLbitfield -> GLuint -> GLsizei -> GLuint -> GLfloat -> IO GLenum)
+  ->         GLuint -> GLenum -> Ptr a -> GLbitfield -> GLuint -> GLsizei -> GLuint -> GLfloat -> IO GLenum
+
+foreign import CALLCONV "dynamic" dyn657
+  :: FunPtr (GLuint -> GLenum -> Ptr a -> GLint -> IO ())
+  ->         GLuint -> GLenum -> Ptr a -> GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn656
+  :: FunPtr (GLuint -> GLenum -> Ptr a -> GLsizei -> IO ())
+  ->         GLuint -> GLenum -> Ptr a -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn492
+  :: FunPtr (GLuint -> GLenum -> Ptr a -> IO ())
+  ->         GLuint -> GLenum -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn729
+  :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+  ->         GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn725
+  :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+  ->         GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn731
+  :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+  ->         GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn723
+  :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+  ->         GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn732
+  :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+  ->         GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn907
+  :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+  ->         GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn733
+  :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> IO ())
+  ->         GLuint -> GLfloat -> GLfloat -> GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn229
+  :: FunPtr (GLuint -> GLfloat -> GLfloat -> IO ())
+  ->         GLuint -> GLfloat -> GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn506
+  :: FunPtr (GLuint -> GLfloat -> GLfloat -> IO GLboolean)
+  ->         GLuint -> GLfloat -> GLfloat -> IO GLboolean
+
+foreign import CALLCONV "dynamic" dyn896
+  :: FunPtr (GLuint -> GLfloat -> IO ())
+  ->         GLuint -> GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn908
+  :: FunPtr (GLuint -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
+  ->         GLuint -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()
+
+foreign import CALLCONV "dynamic" dyn903
+  :: FunPtr (GLuint -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
+  ->         GLuint -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ()
+
+foreign import CALLCONV "dynamic" dyn900
+  :: FunPtr (GLuint -> GLhalfNV -> GLhalfNV -> IO ())
+  ->         GLuint -> GLhalfNV -> GLhalfNV -> IO ()
+
+foreign import CALLCONV "dynamic" dyn897
+  :: FunPtr (GLuint -> GLhalfNV -> IO ())
+  ->         GLuint -> GLhalfNV -> IO ()
+
+foreign import CALLCONV "dynamic" dyn537
+  :: FunPtr (GLuint -> GLint -> GLbitfield -> Ptr GLint -> Ptr GLenum -> IO (Ptr a))
+  ->         GLuint -> GLint -> GLbitfield -> Ptr GLint -> Ptr GLenum -> IO (Ptr a)
+
+foreign import CALLCONV "dynamic" dyn352
+  :: FunPtr (GLuint -> GLint -> GLboolean -> GLint -> GLenum -> IO GLuint64)
+  ->         GLuint -> GLint -> GLboolean -> GLint -> GLenum -> IO GLuint64
+
+foreign import CALLCONV "dynamic" dyn696
+  :: FunPtr (GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+  ->         GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()
+
+foreign import CALLCONV "dynamic" dyn688
+  :: FunPtr (GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> IO ())
+  ->         GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> IO ()
+
+foreign import CALLCONV "dynamic" dyn680
+  :: FunPtr (GLuint -> GLint -> GLdouble -> GLdouble -> IO ())
+  ->         GLuint -> GLint -> GLdouble -> GLdouble -> IO ()
+
+foreign import CALLCONV "dynamic" dyn670
+  :: FunPtr (GLuint -> GLint -> GLdouble -> IO ())
+  ->         GLuint -> GLint -> GLdouble -> IO ()
+
+foreign import CALLCONV "dynamic" dyn910
+  :: FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> GLuint -> GLuint -> IO ())
+  ->         GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> GLuint -> GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn912
+  :: FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> IO ())
+  ->         GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn929
+  :: FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr a -> IO ())
+  ->         GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn911
+  :: FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> IO ())
+  ->         GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn434
+  :: FunPtr (GLuint -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr a -> IO ())
+  ->         GLuint -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn96
+  :: FunPtr (GLuint -> GLint -> GLenum -> GLenum -> Ptr a -> IO ())
+  ->         GLuint -> GLint -> GLenum -> GLenum -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn668
+  :: FunPtr (GLuint -> GLint -> GLenum -> GLint -> Ptr GLfloat -> IO ())
+  ->         GLuint -> GLint -> GLenum -> GLint -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn915
+  :: FunPtr (GLuint -> GLint -> GLenum -> GLsizei -> IO ())
+  ->         GLuint -> GLint -> GLenum -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn916
+  :: FunPtr (GLuint -> GLint -> GLenum -> GLsizei -> Ptr a -> IO ())
+  ->         GLuint -> GLint -> GLenum -> GLsizei -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn914
+  :: FunPtr (GLuint -> GLint -> GLenum -> GLuint -> IO ())
+  ->         GLuint -> GLint -> GLenum -> GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn436
+  :: FunPtr (GLuint -> GLint -> GLenum -> Ptr GLfloat -> IO ())
+  ->         GLuint -> GLint -> GLenum -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn438
+  :: FunPtr (GLuint -> GLint -> GLenum -> Ptr GLint -> IO ())
+  ->         GLuint -> GLint -> GLenum -> Ptr GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn697
+  :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+  ->         GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn689
+  :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> IO ())
+  ->         GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn681
+  :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> IO ())
+  ->         GLuint -> GLint -> GLfloat -> GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn671
+  :: FunPtr (GLuint -> GLint -> GLfloat -> IO ())
+  ->         GLuint -> GLint -> GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn195
+  :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+  ->         GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn193
+  :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+  ->         GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn698
+  :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> IO ())
+  ->         GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn803
+  :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
+  ->         GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()
+
+foreign import CALLCONV "dynamic" dyn442
+  :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr a -> IO ())
+  ->         GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn97
+  :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
+  ->         GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn165
+  :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> IO ())
+  ->         GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn341
+  :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> Ptr a -> IO ())
+  ->         GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn500
+  :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> IO ())
+  ->         GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn191
+  :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ())
+  ->         GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn690
+  :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
+  ->         GLuint -> GLint -> GLint -> GLint -> GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn823
+  :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
+  ->         GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn163
+  :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> IO ())
+  ->         GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn682
+  :: FunPtr (GLuint -> GLint -> GLint -> GLint -> IO ())
+  ->         GLuint -> GLint -> GLint -> GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn821
+  :: FunPtr (GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
+  ->         GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn161
+  :: FunPtr (GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr a -> IO ())
+  ->         GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn740
+  :: FunPtr (GLuint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+  ->         GLuint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn672
+  :: FunPtr (GLuint -> GLint -> GLint -> IO ())
+  ->         GLuint -> GLint -> GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn699
+  :: FunPtr (GLuint -> GLint -> GLint64 -> GLint64 -> GLint64 -> GLint64 -> IO ())
+  ->         GLuint -> GLint -> GLint64 -> GLint64 -> GLint64 -> GLint64 -> IO ()
+
+foreign import CALLCONV "dynamic" dyn691
+  :: FunPtr (GLuint -> GLint -> GLint64 -> GLint64 -> GLint64 -> IO ())
+  ->         GLuint -> GLint -> GLint64 -> GLint64 -> GLint64 -> IO ()
+
+foreign import CALLCONV "dynamic" dyn683
+  :: FunPtr (GLuint -> GLint -> GLint64 -> GLint64 -> IO ())
+  ->         GLuint -> GLint -> GLint64 -> GLint64 -> IO ()
+
+foreign import CALLCONV "dynamic" dyn673
+  :: FunPtr (GLuint -> GLint -> GLint64 -> IO ())
+  ->         GLuint -> GLint -> GLint64 -> IO ()
+
+foreign import CALLCONV "dynamic" dyn700
+  :: FunPtr (GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ())
+  ->         GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ()
+
+foreign import CALLCONV "dynamic" dyn692
+  :: FunPtr (GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ())
+  ->         GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ()
+
+foreign import CALLCONV "dynamic" dyn684
+  :: FunPtr (GLuint -> GLint -> GLint64EXT -> GLint64EXT -> IO ())
+  ->         GLuint -> GLint -> GLint64EXT -> GLint64EXT -> IO ()
+
+foreign import CALLCONV "dynamic" dyn674
+  :: FunPtr (GLuint -> GLint -> GLint64EXT -> IO ())
+  ->         GLuint -> GLint -> GLint64EXT -> IO ()
+
+foreign import CALLCONV "dynamic" dyn704
+  :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+  ->         GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ()
+
+foreign import CALLCONV "dynamic" dyn705
+  :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+  ->         GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn478
+  :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())
+  ->         GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ()
+
+foreign import CALLCONV "dynamic" dyn479
+  :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
+  ->         GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn481
+  :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
+  ->         GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn480
+  :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64 -> IO ())
+  ->         GLuint -> GLint -> GLsizei -> Ptr GLint64 -> IO ()
+
+foreign import CALLCONV "dynamic" dyn675
+  :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
+  ->         GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> IO ()
+
+foreign import CALLCONV "dynamic" dyn483
+  :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
+  ->         GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn482
+  :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> IO ())
+  ->         GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> IO ()
+
+foreign import CALLCONV "dynamic" dyn679
+  :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
+  ->         GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> IO ()
+
+foreign import CALLCONV "dynamic" dyn339
+  :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr a -> IO ())
+  ->         GLuint -> GLint -> GLsizei -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn762
+  :: FunPtr (GLuint -> GLint -> GLuint -> GLenum -> IO ())
+  ->         GLuint -> GLint -> GLuint -> GLenum -> IO ()
+
+foreign import CALLCONV "dynamic" dyn701
+  :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+  ->         GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn693
+  :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> GLuint -> IO ())
+  ->         GLuint -> GLint -> GLuint -> GLuint -> GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn685
+  :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> IO ())
+  ->         GLuint -> GLint -> GLuint -> GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn676
+  :: FunPtr (GLuint -> GLint -> GLuint -> IO ())
+  ->         GLuint -> GLint -> GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn702
+  :: FunPtr (GLuint -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> GLuint64 -> IO ())
+  ->         GLuint -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> GLuint64 -> IO ()
+
+foreign import CALLCONV "dynamic" dyn694
+  :: FunPtr (GLuint -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> IO ())
+  ->         GLuint -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> IO ()
+
+foreign import CALLCONV "dynamic" dyn686
+  :: FunPtr (GLuint -> GLint -> GLuint64 -> GLuint64 -> IO ())
+  ->         GLuint -> GLint -> GLuint64 -> GLuint64 -> IO ()
+
+foreign import CALLCONV "dynamic" dyn677
+  :: FunPtr (GLuint -> GLint -> GLuint64 -> IO ())
+  ->         GLuint -> GLint -> GLuint64 -> IO ()
+
+foreign import CALLCONV "dynamic" dyn703
+  :: FunPtr (GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ())
+  ->         GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ()
+
+foreign import CALLCONV "dynamic" dyn695
+  :: FunPtr (GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ())
+  ->         GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ()
+
+foreign import CALLCONV "dynamic" dyn687
+  :: FunPtr (GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> IO ())
+  ->         GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> IO ()
+
+foreign import CALLCONV "dynamic" dyn678
+  :: FunPtr (GLuint -> GLint -> GLuint64EXT -> IO ())
+  ->         GLuint -> GLint -> GLuint64EXT -> IO ()
+
+foreign import CALLCONV "dynamic" dyn499
+  :: FunPtr (GLuint -> GLint -> IO ())
+  ->         GLuint -> GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn446
+  :: FunPtr (GLuint -> GLint -> IO GLint)
+  ->         GLuint -> GLint -> IO GLint
+
+foreign import CALLCONV "dynamic" dyn448
+  :: FunPtr (GLuint -> GLint -> IO GLintptr)
+  ->         GLuint -> GLint -> IO GLintptr
+
+foreign import CALLCONV "dynamic" dyn449
+  :: FunPtr (GLuint -> GLint -> Ptr GLdouble -> IO ())
+  ->         GLuint -> GLint -> Ptr GLdouble -> IO ()
+
+foreign import CALLCONV "dynamic" dyn450
+  :: FunPtr (GLuint -> GLint -> Ptr GLfloat -> IO ())
+  ->         GLuint -> GLint -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn454
+  :: FunPtr (GLuint -> GLint -> Ptr GLint -> IO ())
+  ->         GLuint -> GLint -> Ptr GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn452
+  :: FunPtr (GLuint -> GLint -> Ptr GLint64 -> IO ())
+  ->         GLuint -> GLint -> Ptr GLint64 -> IO ()
+
+foreign import CALLCONV "dynamic" dyn453
+  :: FunPtr (GLuint -> GLint -> Ptr GLint64EXT -> IO ())
+  ->         GLuint -> GLint -> Ptr GLint64EXT -> IO ()
+
+foreign import CALLCONV "dynamic" dyn458
+  :: FunPtr (GLuint -> GLint -> Ptr GLuint -> IO ())
+  ->         GLuint -> GLint -> Ptr GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn456
+  :: FunPtr (GLuint -> GLint -> Ptr GLuint64 -> IO ())
+  ->         GLuint -> GLint -> Ptr GLuint64 -> IO ()
+
+foreign import CALLCONV "dynamic" dyn457
+  :: FunPtr (GLuint -> GLint -> Ptr GLuint64EXT -> IO ())
+  ->         GLuint -> GLint -> Ptr GLuint64EXT -> IO ()
+
+foreign import CALLCONV "dynamic" dyn925
+  :: FunPtr (GLuint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ())
+  ->         GLuint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ()
+
+foreign import CALLCONV "dynamic" dyn923
+  :: FunPtr (GLuint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ())
+  ->         GLuint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ()
+
+foreign import CALLCONV "dynamic" dyn921
+  :: FunPtr (GLuint -> GLint64EXT -> GLint64EXT -> IO ())
+  ->         GLuint -> GLint64EXT -> GLint64EXT -> IO ()
+
+foreign import CALLCONV "dynamic" dyn917
+  :: FunPtr (GLuint -> GLint64EXT -> IO ())
+  ->         GLuint -> GLint64EXT -> IO ()
+
+foreign import CALLCONV "dynamic" dyn535
+  :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> GLbitfield -> IO (Ptr a))
+  ->         GLuint -> GLintptr -> GLsizeiptr -> GLbitfield -> IO (Ptr a)
+
+foreign import CALLCONV "dynamic" dyn609
+  :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> GLboolean -> IO ())
+  ->         GLuint -> GLintptr -> GLsizeiptr -> GLboolean -> IO ()
+
+foreign import CALLCONV "dynamic" dyn611
+  :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> GLeglClientBufferEXT -> GLbitfield -> IO ())
+  ->         GLuint -> GLintptr -> GLsizeiptr -> GLeglClientBufferEXT -> GLbitfield -> IO ()
+
+foreign import CALLCONV "dynamic" dyn290
+  :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> IO ())
+  ->         GLuint -> GLintptr -> GLsizeiptr -> IO ()
+
+foreign import CALLCONV "dynamic" dyn378
+  :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> Ptr a -> IO ())
+  ->         GLuint -> GLintptr -> GLsizeiptr -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn909
+  :: FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> IO ())
+  ->         GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> IO ()
+
+foreign import CALLCONV "dynamic" dyn904
+  :: FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> IO ())
+  ->         GLuint -> GLshort -> GLshort -> GLshort -> IO ()
+
+foreign import CALLCONV "dynamic" dyn901
+  :: FunPtr (GLuint -> GLshort -> GLshort -> IO ())
+  ->         GLuint -> GLshort -> GLshort -> IO ()
+
+foreign import CALLCONV "dynamic" dyn899
+  :: FunPtr (GLuint -> GLshort -> IO ())
+  ->         GLuint -> GLshort -> IO ()
+
+foreign import CALLCONV "dynamic" dyn817
+  :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> GLuint -> GLuint64 -> IO ())
+  ->         GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> GLuint -> GLuint64 -> IO ()
+
+foreign import CALLCONV "dynamic" dyn809
+  :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> IO ())
+  ->         GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> IO ()
+
+foreign import CALLCONV "dynamic" dyn819
+  :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> GLuint -> GLuint64 -> IO ())
+  ->         GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> GLuint -> GLuint64 -> IO ()
+
+foreign import CALLCONV "dynamic" dyn813
+  :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
+  ->         GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ()
+
+foreign import CALLCONV "dynamic" dyn818
+  :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLuint -> GLuint64 -> IO ())
+  ->         GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLuint -> GLuint64 -> IO ()
+
+foreign import CALLCONV "dynamic" dyn811
+  :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ())
+  ->         GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn816
+  :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLuint -> GLuint64 -> IO ())
+  ->         GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLuint -> GLuint64 -> IO ()
+
+foreign import CALLCONV "dynamic" dyn629
+  :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
+  ->         GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn815
+  :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLuint -> GLuint64 -> IO ())
+  ->         GLuint -> GLsizei -> GLenum -> GLsizei -> GLuint -> GLuint64 -> IO ()
+
+foreign import CALLCONV "dynamic" dyn806
+  :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> IO ())
+  ->         GLuint -> GLsizei -> GLenum -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn637
+  :: FunPtr (GLuint -> GLsizei -> GLenum -> Ptr a -> IO ())
+  ->         GLuint -> GLsizei -> GLenum -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn630
+  :: FunPtr (GLuint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
+  ->         GLuint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn646
+  :: FunPtr (GLuint -> GLsizei -> GLsizei -> GLenum -> Ptr a -> IO ())
+  ->         GLuint -> GLsizei -> GLsizei -> GLenum -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn648
+  :: FunPtr (GLuint -> GLsizei -> GLsizei -> GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO GLboolean)
+  ->         GLuint -> GLsizei -> GLsizei -> GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO GLboolean
+
+foreign import CALLCONV "dynamic" dyn645
+  :: FunPtr (GLuint -> GLsizei -> GLsizei -> GLsizei -> Ptr GLubyte -> GLsizei -> GLenum -> Ptr a -> IO ())
+  ->         GLuint -> GLsizei -> GLsizei -> GLsizei -> Ptr GLubyte -> GLsizei -> GLenum -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn395
+  :: FunPtr (GLuint -> GLsizei -> GLsizei -> IO GLfloat)
+  ->         GLuint -> GLsizei -> GLsizei -> IO GLfloat
+
+foreign import CALLCONV "dynamic" dyn219
+  :: FunPtr (GLuint -> GLsizei -> IO ())
+  ->         GLuint -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn831
+  :: FunPtr (GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> IO ())
+  ->         GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> IO ()
+
+foreign import CALLCONV "dynamic" dyn145
+  :: FunPtr (GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> IO ())
+  ->         GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn447
+  :: FunPtr (GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLuint -> IO ())
+  ->         GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn227
+  :: FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ())
+  ->         GLuint -> GLsizei -> Ptr GLdouble -> IO ()
+
+foreign import CALLCONV "dynamic" dyn497
+  :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+  ->         GLuint -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn293
+  :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> IO ())
+  ->         GLuint -> GLsizei -> Ptr GLenum -> IO ()
+
+foreign import CALLCONV "dynamic" dyn342
+  :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> IO GLuint)
+  ->         GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> IO GLuint
+
+foreign import CALLCONV "dynamic" dyn343
+  :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> Ptr GLuint -> Ptr GLuint -> Ptr GLsizei -> Ptr GLchar -> IO GLuint)
+  ->         GLuint -> GLsizei -> Ptr GLenum -> Ptr GLuint -> Ptr GLuint -> Ptr GLsizei -> Ptr GLchar -> IO GLuint
+
+foreign import CALLCONV "dynamic" dyn226
+  :: FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+  ->         GLuint -> GLsizei -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn930
+  :: FunPtr (GLuint -> GLsizei -> Ptr GLhalfNV -> IO ())
+  ->         GLuint -> GLsizei -> Ptr GLhalfNV -> IO ()
+
+foreign import CALLCONV "dynamic" dyn832
+  :: FunPtr (GLuint -> GLsizei -> Ptr GLint -> GLenum -> IO ())
+  ->         GLuint -> GLsizei -> Ptr GLint -> GLenum -> IO ()
+
+foreign import CALLCONV "dynamic" dyn739
+  :: FunPtr (GLuint -> GLsizei -> Ptr GLint -> IO ())
+  ->         GLuint -> GLsizei -> Ptr GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn931
+  :: FunPtr (GLuint -> GLsizei -> Ptr GLshort -> IO ())
+  ->         GLuint -> GLsizei -> Ptr GLshort -> IO ()
+
+foreign import CALLCONV "dynamic" dyn345
+  :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+  ->         GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ()
+
+foreign import CALLCONV "dynamic" dyn409
+  :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr a -> IO ())
+  ->         GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn323
+  :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> IO ())
+  ->         GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn665
+  :: FunPtr (GLuint -> GLsizei -> Ptr GLubyte -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+  ->         GLuint -> GLsizei -> Ptr GLubyte -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()
+
+foreign import CALLCONV "dynamic" dyn666
+  :: FunPtr (GLuint -> GLsizei -> Ptr GLubyte -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+  ->         GLuint -> GLsizei -> Ptr GLubyte -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn636
+  :: FunPtr (GLuint -> GLsizei -> Ptr GLubyte -> GLsizei -> GLenum -> Ptr a -> IO ())
+  ->         GLuint -> GLsizei -> Ptr GLubyte -> GLsizei -> GLenum -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn932
+  :: FunPtr (GLuint -> GLsizei -> Ptr GLubyte -> IO ())
+  ->         GLuint -> GLsizei -> Ptr GLubyte -> IO ()
+
+foreign import CALLCONV "dynamic" dyn410
+  :: FunPtr (GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLdouble -> IO ())
+  ->         GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLdouble -> IO ()
+
+foreign import CALLCONV "dynamic" dyn411
+  :: FunPtr (GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLfloat -> IO ())
+  ->         GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn320
+  :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> GLenum -> Ptr GLint -> IO ())
+  ->         GLuint -> GLsizei -> Ptr GLuint -> GLenum -> Ptr GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn30
+  :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> IO ())
+  ->         GLuint -> GLsizei -> Ptr GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn935
+  :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> Ptr GLfloat -> IO ())
+  ->         GLuint -> GLsizei -> Ptr GLuint -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn36
+  :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> IO ())
+  ->         GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn750
+  :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> Ptr GLuint64 -> IO ())
+  ->         GLuint -> GLsizei -> Ptr GLuint -> Ptr GLuint64 -> IO ()
+
+foreign import CALLCONV "dynamic" dyn612
+  :: FunPtr (GLuint -> GLsizeiptr -> GLuint -> GLuint64 -> IO ())
+  ->         GLuint -> GLsizeiptr -> GLuint -> GLuint64 -> IO ()
+
+foreign import CALLCONV "dynamic" dyn610
+  :: FunPtr (GLuint -> GLsizeiptr -> Ptr a -> GLbitfield -> IO ())
+  ->         GLuint -> GLsizeiptr -> Ptr a -> GLbitfield -> IO ()
+
+foreign import CALLCONV "dynamic" dyn608
+  :: FunPtr (GLuint -> GLsizeiptr -> Ptr a -> GLenum -> IO ())
+  ->         GLuint -> GLsizeiptr -> Ptr a -> GLenum -> IO ()
+
+foreign import CALLCONV "dynamic" dyn727
+  :: FunPtr (GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> IO ())
+  ->         GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn905
+  :: FunPtr (GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> IO ())
+  ->         GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> IO ()
+
+foreign import CALLCONV "dynamic" dyn540
+  :: FunPtr (GLuint -> GLuint -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ())
+  ->         GLuint -> GLuint -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ()
+
+foreign import CALLCONV "dynamic" dyn538
+  :: FunPtr (GLuint -> GLuint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ())
+  ->         GLuint -> GLuint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ()
+
+foreign import CALLCONV "dynamic" dyn763
+  :: FunPtr (GLuint -> GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
+  ->         GLuint -> GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> IO ()
+
+foreign import CALLCONV "dynamic" dyn38
+  :: FunPtr (GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> IO ())
+  ->         GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn891
+  :: FunPtr (GLuint -> GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLintptr -> IO ())
+  ->         GLuint -> GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLintptr -> IO ()
+
+foreign import CALLCONV "dynamic" dyn418
+  :: FunPtr (GLuint -> GLuint -> GLenum -> GLintptr -> IO ())
+  ->         GLuint -> GLuint -> GLenum -> GLintptr -> IO ()
+
+foreign import CALLCONV "dynamic" dyn37
+  :: FunPtr (GLuint -> GLuint -> GLenum -> GLintptrARB -> IO ())
+  ->         GLuint -> GLuint -> GLenum -> GLintptrARB -> IO ()
+
+foreign import CALLCONV "dynamic" dyn890
+  :: FunPtr (GLuint -> GLuint -> GLenum -> GLsizei -> GLintptr -> IO ())
+  ->         GLuint -> GLuint -> GLenum -> GLsizei -> GLintptr -> IO ()
+
+foreign import CALLCONV "dynamic" dyn635
+  :: FunPtr (GLuint -> GLuint -> GLenum -> IO ())
+  ->         GLuint -> GLuint -> GLenum -> IO ()
+
+foreign import CALLCONV "dynamic" dyn462
+  :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr (Ptr a) -> IO ())
+  ->         GLuint -> GLuint -> GLenum -> Ptr (Ptr a) -> IO ()
+
+foreign import CALLCONV "dynamic" dyn465
+  :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLdouble -> IO ())
+  ->         GLuint -> GLuint -> GLenum -> Ptr GLdouble -> IO ()
+
+foreign import CALLCONV "dynamic" dyn466
+  :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLfloat -> IO ())
+  ->         GLuint -> GLuint -> GLenum -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn314
+  :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint -> IO ())
+  ->         GLuint -> GLuint -> GLenum -> Ptr GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn461
+  :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint64 -> IO ())
+  ->         GLuint -> GLuint -> GLenum -> Ptr GLint64 -> IO ()
+
+foreign import CALLCONV "dynamic" dyn602
+  :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLuint -> IO ())
+  ->         GLuint -> GLuint -> GLenum -> Ptr GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn601
+  :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLuint64 -> IO ())
+  ->         GLuint -> GLuint -> GLenum -> Ptr GLuint64 -> IO ()
+
+foreign import CALLCONV "dynamic" dyn401
+  :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr a -> IO ())
+  ->         GLuint -> GLuint -> GLenum -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn263
+  :: FunPtr (GLuint -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+  ->         GLuint -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn541
+  :: FunPtr (GLuint -> GLuint -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ())
+  ->         GLuint -> GLuint -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn539
+  :: FunPtr (GLuint -> GLuint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ())
+  ->         GLuint -> GLuint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn605
+  :: FunPtr (GLuint -> GLuint -> GLfloat -> GLfloat -> IO ())
+  ->         GLuint -> GLuint -> GLfloat -> GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn505
+  :: FunPtr (GLuint -> GLuint -> GLfloat -> GLfloat -> IO GLboolean)
+  ->         GLuint -> GLuint -> GLfloat -> GLfloat -> IO GLboolean
+
+foreign import CALLCONV "dynamic" dyn28
+  :: FunPtr (GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLenum -> IO ())
+  ->         GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLenum -> IO ()
+
+foreign import CALLCONV "dynamic" dyn29
+  :: FunPtr (GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLint -> IO ())
+  ->         GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn885
+  :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> IO ())
+  ->         GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn888
+  :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> IO ())
+  ->         GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> IO ()
+
+foreign import CALLCONV "dynamic" dyn886
+  :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLuint -> IO ())
+  ->         GLuint -> GLuint -> GLint -> GLenum -> GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn60
+  :: FunPtr (GLuint -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> IO ())
+  ->         GLuint -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> IO ()
+
+foreign import CALLCONV "dynamic" dyn190
+  :: FunPtr (GLuint -> GLuint -> GLint -> GLsizei -> IO ())
+  ->         GLuint -> GLuint -> GLint -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn181
+  :: FunPtr (GLuint -> GLuint -> GLintptr -> GLintptr -> GLsizeiptr -> IO ())
+  ->         GLuint -> GLuint -> GLintptr -> GLintptr -> GLsizeiptr -> IO ()
+
+foreign import CALLCONV "dynamic" dyn35
+  :: FunPtr (GLuint -> GLuint -> GLintptr -> GLsizei -> IO ())
+  ->         GLuint -> GLuint -> GLintptr -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn889
+  :: FunPtr (GLuint -> GLuint -> GLsizei -> GLintptr -> IO ())
+  ->         GLuint -> GLuint -> GLsizei -> GLintptr -> IO ()
+
+foreign import CALLCONV "dynamic" dyn748
+  :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLenum -> IO ())
+  ->         GLuint -> GLuint -> GLsizei -> Ptr GLenum -> IO ()
+
+foreign import CALLCONV "dynamic" dyn604
+  :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+  ->         GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn603
+  :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLint -> IO ())
+  ->         GLuint -> GLuint -> GLsizei -> Ptr GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn319
+  :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+  ->         GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ()
+
+foreign import CALLCONV "dynamic" dyn315
+  :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> IO ())
+  ->         GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> IO ()
+
+foreign import CALLCONV "dynamic" dyn321
+  :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> IO ())
+  ->         GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> IO ()
+
+foreign import CALLCONV "dynamic" dyn894
+  :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> IO ())
+  ->         GLuint -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn869
+  :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr a -> GLenum -> IO ())
+  ->         GLuint -> GLuint -> GLsizei -> Ptr a -> GLenum -> IO ()
+
+foreign import CALLCONV "dynamic" dyn403
+  :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr a -> Ptr GLuint -> IO ())
+  ->         GLuint -> GLuint -> GLsizei -> Ptr a -> Ptr GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn295
+  :: FunPtr (GLuint -> GLuint -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+  ->         GLuint -> GLuint -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn496
+  :: FunPtr (GLuint -> GLuint -> GLuint -> GLfloat -> IO ())
+  ->         GLuint -> GLuint -> GLuint -> GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn893
+  :: FunPtr (GLuint -> GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> GLintptr -> IO ())
+  ->         GLuint -> GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> GLintptr -> IO ()
+
+foreign import CALLCONV "dynamic" dyn892
+  :: FunPtr (GLuint -> GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> IO ())
+  ->         GLuint -> GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> IO ()
+
+foreign import CALLCONV "dynamic" dyn887
+  :: FunPtr (GLuint -> GLuint -> GLuint -> GLintptr -> GLsizei -> IO ())
+  ->         GLuint -> GLuint -> GLuint -> GLintptr -> GLsizei -> IO ()
+
+foreign import CALLCONV "dynamic" dyn829
+  :: FunPtr (GLuint -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> IO ())
+  ->         GLuint -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> IO ()
+
+foreign import CALLCONV "dynamic" dyn600
+  :: FunPtr (GLuint -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+  ->         GLuint -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn752
+  :: FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> GLbitfield -> IO ())
+  ->         GLuint -> GLuint -> GLuint -> GLuint -> GLbitfield -> IO ()
+
+foreign import CALLCONV "dynamic" dyn235
+  :: FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+  ->         GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn913
+  :: FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+  ->         GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn83
+  :: FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+  ->         GLuint -> GLuint -> GLuint -> GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn294
+  :: FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> Ptr GLuint -> IO ())
+  ->         GLuint -> GLuint -> GLuint -> GLuint -> Ptr GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn109
+  :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
+  ->         GLuint -> GLuint -> GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn399
+  :: FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLchar -> GLuint -> Ptr GLchar -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint64 -> IO ())
+  ->         GLuint -> GLuint -> GLuint -> Ptr GLchar -> GLuint -> Ptr GLchar -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint64 -> IO ()
+
+foreign import CALLCONV "dynamic" dyn27
+  :: FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLchar -> IO ())
+  ->         GLuint -> GLuint -> GLuint -> Ptr GLchar -> IO ()
+
+foreign import CALLCONV "dynamic" dyn614
+  :: FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLfloat -> IO ())
+  ->         GLuint -> GLuint -> GLuint -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn607
+  :: FunPtr (GLuint -> GLuint -> GLuint64 -> IO ())
+  ->         GLuint -> GLuint -> GLuint64 -> IO ()
+
+foreign import CALLCONV "dynamic" dyn4
+  :: FunPtr (GLuint -> GLuint -> IO ())
+  ->         GLuint -> GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn441
+  :: FunPtr (GLuint -> GLuint -> IO GLuint64)
+  ->         GLuint -> GLuint -> IO GLuint64
+
+foreign import CALLCONV "dynamic" dyn513
+  :: FunPtr (GLuint -> GLuint -> Ptr (Ptr a) -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> IO ())
+  ->         GLuint -> GLuint -> Ptr (Ptr a) -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn21
+  :: FunPtr (GLuint -> GLuint -> Ptr GLchar -> IO ())
+  ->         GLuint -> GLuint -> Ptr GLchar -> IO ()
+
+foreign import CALLCONV "dynamic" dyn405
+  :: FunPtr (GLuint -> GLuint -> Ptr GLchar -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> IO ())
+  ->         GLuint -> GLuint -> Ptr GLchar -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn422
+  :: FunPtr (GLuint -> GLuint -> Ptr GLenum -> IO ())
+  ->         GLuint -> GLuint -> Ptr GLenum -> IO ()
+
+foreign import CALLCONV "dynamic" dyn443
+  :: FunPtr (GLuint -> GLuint -> Ptr GLint -> IO ())
+  ->         GLuint -> GLuint -> Ptr GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn749
+  :: FunPtr (GLuint -> GLuint -> Ptr GLuint -> GLuint -> Ptr GLuint -> Ptr GLenum -> IO ())
+  ->         GLuint -> GLuint -> Ptr GLuint -> GLuint -> Ptr GLuint -> Ptr GLenum -> IO ()
+
+foreign import CALLCONV "dynamic" dyn489
+  :: FunPtr (GLuint -> GLuint64 -> GLenum -> GLint -> IO ())
+  ->         GLuint -> GLuint64 -> GLenum -> GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn490
+  :: FunPtr (GLuint -> GLuint64 -> GLenum -> Ptr a -> IO ())
+  ->         GLuint -> GLuint64 -> GLenum -> Ptr a -> IO ()
+
+foreign import CALLCONV "dynamic" dyn2
+  :: FunPtr (GLuint -> GLuint64 -> GLuint -> IO GLboolean)
+  ->         GLuint -> GLuint64 -> GLuint -> IO GLboolean
+
+foreign import CALLCONV "dynamic" dyn717
+  :: FunPtr (GLuint -> GLuint64 -> IO GLboolean)
+  ->         GLuint -> GLuint64 -> IO GLboolean
+
+foreign import CALLCONV "dynamic" dyn650
+  :: FunPtr (GLuint -> GLuint64EXT -> GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> IO ())
+  ->         GLuint -> GLuint64EXT -> GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn651
+  :: FunPtr (GLuint -> GLuint64EXT -> GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> GLuint -> GLenum -> GLuint -> GLuint -> IO ())
+  ->         GLuint -> GLuint64EXT -> GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> GLuint -> GLenum -> GLuint -> GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn926
+  :: FunPtr (GLuint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ())
+  ->         GLuint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ()
+
+foreign import CALLCONV "dynamic" dyn924
+  :: FunPtr (GLuint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ())
+  ->         GLuint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ()
+
+foreign import CALLCONV "dynamic" dyn922
+  :: FunPtr (GLuint -> GLuint64EXT -> GLuint64EXT -> IO ())
+  ->         GLuint -> GLuint64EXT -> GLuint64EXT -> IO ()
+
+foreign import CALLCONV "dynamic" dyn919
+  :: FunPtr (GLuint -> GLuint64EXT -> IO ())
+  ->         GLuint -> GLuint64EXT -> IO ()
+
+foreign import CALLCONV "dynamic" dyn3
+  :: FunPtr (GLuint -> IO ())
+  ->         GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn536
+  :: FunPtr (GLuint -> IO (Ptr a))
+  ->         GLuint -> IO (Ptr a)
+
+foreign import CALLCONV "dynamic" dyn284
+  :: FunPtr (GLuint -> IO GLboolean)
+  ->         GLuint -> IO GLboolean
+
+foreign import CALLCONV "dynamic" dyn350
+  :: FunPtr (GLuint -> IO GLsizei)
+  ->         GLuint -> IO GLsizei
+
+foreign import CALLCONV "dynamic" dyn312
+  :: FunPtr (GLuint -> IO GLuint)
+  ->         GLuint -> IO GLuint
+
+foreign import CALLCONV "dynamic" dyn433
+  :: FunPtr (GLuint -> IO GLuint64)
+  ->         GLuint -> IO GLuint64
+
+foreign import CALLCONV "dynamic" dyn881
+  :: FunPtr (GLuint -> Ptr GLbyte -> IO ())
+  ->         GLuint -> Ptr GLbyte -> IO ()
+
+foreign import CALLCONV "dynamic" dyn751
+  :: FunPtr (GLuint -> Ptr GLchar -> GLuint -> Ptr GLuint -> Ptr GLuint -> IO ())
+  ->         GLuint -> Ptr GLchar -> GLuint -> Ptr GLuint -> Ptr GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn6
+  :: FunPtr (GLuint -> Ptr GLchar -> IO ())
+  ->         GLuint -> Ptr GLchar -> IO ()
+
+foreign import CALLCONV "dynamic" dyn324
+  :: FunPtr (GLuint -> Ptr GLchar -> IO GLint)
+  ->         GLuint -> Ptr GLchar -> IO GLint
+
+foreign import CALLCONV "dynamic" dyn445
+  :: FunPtr (GLuint -> Ptr GLchar -> IO GLuint)
+  ->         GLuint -> Ptr GLchar -> IO GLuint
+
+foreign import CALLCONV "dynamic" dyn882
+  :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+  ->         GLuint -> Ptr GLdouble -> IO ()
+
+foreign import CALLCONV "dynamic" dyn394
+  :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+  ->         GLuint -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn898
+  :: FunPtr (GLuint -> Ptr GLhalfNV -> IO ())
+  ->         GLuint -> Ptr GLhalfNV -> IO ()
+
+foreign import CALLCONV "dynamic" dyn741
+  :: FunPtr (GLuint -> Ptr GLint -> IO ())
+  ->         GLuint -> Ptr GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn402
+  :: FunPtr (GLuint -> Ptr GLint -> Ptr GLint -> GLsizei -> Ptr GLuint -> IO ())
+  ->         GLuint -> Ptr GLint -> Ptr GLint -> GLsizei -> Ptr GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn918
+  :: FunPtr (GLuint -> Ptr GLint64EXT -> IO ())
+  ->         GLuint -> Ptr GLint64EXT -> IO ()
+
+foreign import CALLCONV "dynamic" dyn246
+  :: FunPtr (GLuint -> Ptr GLintptr -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> IO ())
+  ->         GLuint -> Ptr GLintptr -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn883
+  :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+  ->         GLuint -> Ptr GLshort -> IO ()
+
+foreign import CALLCONV "dynamic" dyn393
+  :: FunPtr (GLuint -> Ptr GLubyte -> IO ())
+  ->         GLuint -> Ptr GLubyte -> IO ()
+
+foreign import CALLCONV "dynamic" dyn201
+  :: FunPtr (GLuint -> Ptr GLuint -> IO ())
+  ->         GLuint -> Ptr GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn933
+  :: FunPtr (GLuint -> Ptr GLuint -> Ptr GLuint64EXT -> IO GLenum)
+  ->         GLuint -> Ptr GLuint -> Ptr GLuint64EXT -> IO GLenum
+
+foreign import CALLCONV "dynamic" dyn920
+  :: FunPtr (GLuint -> Ptr GLuint64EXT -> IO ())
+  ->         GLuint -> Ptr GLuint64EXT -> IO ()
+
+foreign import CALLCONV "dynamic" dyn884
+  :: FunPtr (GLuint -> Ptr GLushort -> IO ())
+  ->         GLuint -> Ptr GLushort -> IO ()
+
+foreign import CALLCONV "dynamic" dyn518
+  :: FunPtr (GLuint64 -> GLenum -> IO ())
+  ->         GLuint64 -> GLenum -> IO ()
+
+foreign import CALLCONV "dynamic" dyn266
+  :: FunPtr (GLuint64 -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+  ->         GLuint64 -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn517
+  :: FunPtr (GLuint64 -> IO ())
+  ->         GLuint64 -> IO ()
+
+foreign import CALLCONV "dynamic" dyn503
+  :: FunPtr (GLuint64 -> IO GLboolean)
+  ->         GLuint64 -> IO GLboolean
+
+foreign import CALLCONV "dynamic" dyn125
+  :: FunPtr (GLushort -> GLushort -> GLushort -> GLushort -> IO ())
+  ->         GLushort -> GLushort -> GLushort -> GLushort -> IO ()
+
+foreign import CALLCONV "dynamic" dyn111
+  :: FunPtr (GLushort -> GLushort -> GLushort -> IO ())
+  ->         GLushort -> GLushort -> GLushort -> IO ()
+
+foreign import CALLCONV "dynamic" dyn487
+  :: FunPtr (GLushort -> IO ())
+  ->         GLushort -> IO ()
+
+foreign import CALLCONV "dynamic" dyn871
+  :: FunPtr (GLvdpauSurfaceNV -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> IO ())
+  ->         GLvdpauSurfaceNV -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn877
+  :: FunPtr (GLvdpauSurfaceNV -> GLenum -> IO ())
+  ->         GLvdpauSurfaceNV -> GLenum -> IO ()
+
+foreign import CALLCONV "dynamic" dyn878
+  :: FunPtr (GLvdpauSurfaceNV -> IO ())
+  ->         GLvdpauSurfaceNV -> IO ()
+
+foreign import CALLCONV "dynamic" dyn873
+  :: FunPtr (GLvdpauSurfaceNV -> IO GLboolean)
+  ->         GLvdpauSurfaceNV -> IO GLboolean
+
+foreign import CALLCONV "dynamic" dyn11
+  :: FunPtr (IO ())
+  ->         IO ()
+
+foreign import CALLCONV "dynamic" dyn347
+  :: FunPtr (IO GLenum)
+  ->         IO GLenum
+
+foreign import CALLCONV "dynamic" dyn203
+  :: FunPtr (IO GLhandleARB)
+  ->         IO GLhandleARB
+
+foreign import CALLCONV "dynamic" dyn354
+  :: FunPtr (IO GLint)
+  ->         IO GLint
+
+foreign import CALLCONV "dynamic" dyn202
+  :: FunPtr (IO GLuint)
+  ->         IO GLuint
+
+foreign import CALLCONV "dynamic" dyn274
+  :: FunPtr (Ptr GLboolean -> IO ())
+  ->         Ptr GLboolean -> IO ()
+
+foreign import CALLCONV "dynamic" dyn40
+  :: FunPtr (Ptr GLbyte -> IO ())
+  ->         Ptr GLbyte -> IO ()
+
+foreign import CALLCONV "dynamic" dyn467
+  :: FunPtr (Ptr GLchar -> IO GLVULKANPROCNV)
+  ->         Ptr GLchar -> IO GLVULKANPROCNV
+
+foreign import CALLCONV "dynamic" dyn404
+  :: FunPtr (Ptr GLchar -> Ptr GLuint -> IO ())
+  ->         Ptr GLchar -> Ptr GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn42
+  :: FunPtr (Ptr GLdouble -> IO ())
+  ->         Ptr GLdouble -> IO ()
+
+foreign import CALLCONV "dynamic" dyn713
+  :: FunPtr (Ptr GLdouble -> Ptr GLdouble -> IO ())
+  ->         Ptr GLdouble -> Ptr GLdouble -> IO ()
+
+foreign import CALLCONV "dynamic" dyn565
+  :: FunPtr (Ptr GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> GLint -> IO ())
+  ->         Ptr GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn566
+  :: FunPtr (Ptr GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> GLint -> IO ())
+  ->         Ptr GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn114
+  :: FunPtr (Ptr GLfixed -> IO ())
+  ->         Ptr GLfixed -> IO ()
+
+foreign import CALLCONV "dynamic" dyn716
+  :: FunPtr (Ptr GLfixed -> Ptr GLfixed -> IO ())
+  ->         Ptr GLfixed -> Ptr GLfixed -> IO ()
+
+foreign import CALLCONV "dynamic" dyn706
+  :: FunPtr (Ptr GLfixed -> Ptr GLint -> IO GLbitfield)
+  ->         Ptr GLfixed -> Ptr GLint -> IO GLbitfield
+
+foreign import CALLCONV "dynamic" dyn44
+  :: FunPtr (Ptr GLfloat -> IO ())
+  ->         Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn104
+  :: FunPtr (Ptr GLfloat -> Ptr GLfloat -> IO ())
+  ->         Ptr GLfloat -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn118
+  :: FunPtr (Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ())
+  ->         Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn767
+  :: FunPtr (Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ())
+  ->         Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn769
+  :: FunPtr (Ptr GLfloat -> Ptr GLubyte -> Ptr GLfloat -> IO ())
+  ->         Ptr GLfloat -> Ptr GLubyte -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn106
+  :: FunPtr (Ptr GLhalfNV -> IO ())
+  ->         Ptr GLhalfNV -> IO ()
+
+foreign import CALLCONV "dynamic" dyn346
+  :: FunPtr (Ptr GLint -> GLsizei -> Ptr GLuint -> IO ())
+  ->         Ptr GLint -> GLsizei -> Ptr GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn46
+  :: FunPtr (Ptr GLint -> IO ())
+  ->         Ptr GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn649
+  :: FunPtr (Ptr GLint -> IO GLint)
+  ->         Ptr GLint -> IO GLint
+
+foreign import CALLCONV "dynamic" dyn714
+  :: FunPtr (Ptr GLint -> Ptr GLint -> IO ())
+  ->         Ptr GLint -> Ptr GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn48
+  :: FunPtr (Ptr GLshort -> IO ())
+  ->         Ptr GLshort -> IO ()
+
+foreign import CALLCONV "dynamic" dyn715
+  :: FunPtr (Ptr GLshort -> Ptr GLshort -> IO ())
+  ->         Ptr GLshort -> Ptr GLshort -> IO ()
+
+foreign import CALLCONV "dynamic" dyn108
+  :: FunPtr (Ptr GLubyte -> IO ())
+  ->         Ptr GLubyte -> IO ()
+
+foreign import CALLCONV "dynamic" dyn123
+  :: FunPtr (Ptr GLubyte -> Ptr GLfloat -> IO ())
+  ->         Ptr GLubyte -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn280
+  :: FunPtr (Ptr GLuint -> GLint -> Ptr GLint -> IO ())
+  ->         Ptr GLuint -> GLint -> Ptr GLint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn110
+  :: FunPtr (Ptr GLuint -> IO ())
+  ->         Ptr GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn288
+  :: FunPtr (Ptr GLuint -> IO GLint)
+  ->         Ptr GLuint -> IO GLint
+
+foreign import CALLCONV "dynamic" dyn734
+  :: FunPtr (Ptr GLuint -> Ptr GLfloat -> IO ())
+  ->         Ptr GLuint -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn724
+  :: FunPtr (Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> IO ())
+  ->         Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn726
+  :: FunPtr (Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ())
+  ->         Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn730
+  :: FunPtr (Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ())
+  ->         Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn728
+  :: FunPtr (Ptr GLuint -> Ptr GLubyte -> Ptr GLfloat -> IO ())
+  ->         Ptr GLuint -> Ptr GLubyte -> Ptr GLfloat -> IO ()
+
+foreign import CALLCONV "dynamic" dyn245
+  :: FunPtr (Ptr GLuint64 -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> IO ())
+  ->         Ptr GLuint64 -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> IO ()
+
+foreign import CALLCONV "dynamic" dyn112
+  :: FunPtr (Ptr GLushort -> IO ())
+  ->         Ptr GLushort -> IO ()
+
+foreign import CALLCONV "dynamic" dyn876
+  :: FunPtr (Ptr a -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> IO GLvdpauSurfaceNV)
+  ->         Ptr a -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> IO GLvdpauSurfaceNV
+
+foreign import CALLCONV "dynamic" dyn875
+  :: FunPtr (Ptr a -> GLenum -> GLsizei -> Ptr GLuint -> IO GLvdpauSurfaceNV)
+  ->         Ptr a -> GLenum -> GLsizei -> Ptr GLuint -> IO GLvdpauSurfaceNV
+
+foreign import CALLCONV "dynamic" dyn633
+  :: FunPtr (Ptr a -> GLsizei -> Ptr GLchar -> IO ())
+  ->         Ptr a -> GLsizei -> Ptr GLchar -> IO ()
+
+foreign import CALLCONV "dynamic" dyn391
+  :: FunPtr (Ptr a -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+  ->         Ptr a -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ()
+
+foreign import CALLCONV "dynamic" dyn208
+  :: FunPtr (Ptr a -> Ptr b -> GLbitfield -> IO GLsync)
+  ->         Ptr a -> Ptr b -> GLbitfield -> IO GLsync
+
+foreign import CALLCONV "dynamic" dyn872
+  :: FunPtr (Ptr a -> Ptr b -> IO ())
+  ->         Ptr a -> Ptr b -> IO ()
+
diff --git a/src/Graphics/GL/Functions.hs b/src/Graphics/GL/Functions.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Functions.hs
@@ -0,0 +1,84 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Functions
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- All raw functions from the
+-- <http://www.opengl.org/registry/ OpenGL registry>.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Functions (
+  module Graphics.GL.Functions.F01,
+  module Graphics.GL.Functions.F02,
+  module Graphics.GL.Functions.F03,
+  module Graphics.GL.Functions.F04,
+  module Graphics.GL.Functions.F05,
+  module Graphics.GL.Functions.F06,
+  module Graphics.GL.Functions.F07,
+  module Graphics.GL.Functions.F08,
+  module Graphics.GL.Functions.F09,
+  module Graphics.GL.Functions.F10,
+  module Graphics.GL.Functions.F11,
+  module Graphics.GL.Functions.F12,
+  module Graphics.GL.Functions.F13,
+  module Graphics.GL.Functions.F14,
+  module Graphics.GL.Functions.F15,
+  module Graphics.GL.Functions.F16,
+  module Graphics.GL.Functions.F17,
+  module Graphics.GL.Functions.F18,
+  module Graphics.GL.Functions.F19,
+  module Graphics.GL.Functions.F20,
+  module Graphics.GL.Functions.F21,
+  module Graphics.GL.Functions.F22,
+  module Graphics.GL.Functions.F23,
+  module Graphics.GL.Functions.F24,
+  module Graphics.GL.Functions.F25,
+  module Graphics.GL.Functions.F26,
+  module Graphics.GL.Functions.F27,
+  module Graphics.GL.Functions.F28,
+  module Graphics.GL.Functions.F29,
+  module Graphics.GL.Functions.F30,
+  module Graphics.GL.Functions.F31,
+  module Graphics.GL.Functions.F32,
+  module Graphics.GL.Functions.F33
+) where
+
+import Graphics.GL.Functions.F01
+import Graphics.GL.Functions.F02
+import Graphics.GL.Functions.F03
+import Graphics.GL.Functions.F04
+import Graphics.GL.Functions.F05
+import Graphics.GL.Functions.F06
+import Graphics.GL.Functions.F07
+import Graphics.GL.Functions.F08
+import Graphics.GL.Functions.F09
+import Graphics.GL.Functions.F10
+import Graphics.GL.Functions.F11
+import Graphics.GL.Functions.F12
+import Graphics.GL.Functions.F13
+import Graphics.GL.Functions.F14
+import Graphics.GL.Functions.F15
+import Graphics.GL.Functions.F16
+import Graphics.GL.Functions.F17
+import Graphics.GL.Functions.F18
+import Graphics.GL.Functions.F19
+import Graphics.GL.Functions.F20
+import Graphics.GL.Functions.F21
+import Graphics.GL.Functions.F22
+import Graphics.GL.Functions.F23
+import Graphics.GL.Functions.F24
+import Graphics.GL.Functions.F25
+import Graphics.GL.Functions.F26
+import Graphics.GL.Functions.F27
+import Graphics.GL.Functions.F28
+import Graphics.GL.Functions.F29
+import Graphics.GL.Functions.F30
+import Graphics.GL.Functions.F31
+import Graphics.GL.Functions.F32
+import Graphics.GL.Functions.F33
diff --git a/src/Graphics/GL/Functions/F01.hs b/src/Graphics/GL/Functions/F01.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Functions/F01.hs
@@ -0,0 +1,1558 @@
+{-# OPTIONS_HADDOCK hide #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Functions.F01
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- Raw functions from the
+-- <http://www.opengl.org/registry/ OpenGL registry>.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Functions.F01 (
+  glAccum,
+  glAccumxOES,
+  glAcquireKeyedMutexWin32EXT,
+  glActiveProgramEXT,
+  glActiveShaderProgram,
+  glActiveShaderProgramEXT,
+  glActiveStencilFaceEXT,
+  glActiveTexture,
+  glActiveTextureARB,
+  glActiveVaryingNV,
+  glAlphaFragmentOp1ATI,
+  glAlphaFragmentOp2ATI,
+  glAlphaFragmentOp3ATI,
+  glAlphaFunc,
+  glAlphaFuncQCOM,
+  glAlphaFuncx,
+  glAlphaFuncxOES,
+  glAlphaToCoverageDitherControlNV,
+  glApplyFramebufferAttachmentCMAAINTEL,
+  glApplyTextureEXT,
+  glAreProgramsResidentNV,
+  glAreTexturesResident,
+  glAreTexturesResidentEXT,
+  glArrayElement,
+  glArrayElementEXT,
+  glArrayObjectATI,
+  glAsyncCopyBufferSubDataNVX,
+  glAsyncCopyImageSubDataNVX,
+  glAsyncMarkerSGIX,
+  glAttachObjectARB,
+  glAttachShader,
+  glBegin,
+  glBeginConditionalRender,
+  glBeginConditionalRenderNV,
+  glBeginConditionalRenderNVX,
+  glBeginFragmentShaderATI,
+  glBeginOcclusionQueryNV,
+  glBeginPerfMonitorAMD,
+  glBeginPerfQueryINTEL,
+  glBeginQuery,
+  glBeginQueryARB,
+  glBeginQueryEXT,
+  glBeginQueryIndexed,
+  glBeginTransformFeedback,
+  glBeginTransformFeedbackEXT,
+  glBeginTransformFeedbackNV,
+  glBeginVertexShaderEXT,
+  glBeginVideoCaptureNV,
+  glBindAttribLocation,
+  glBindAttribLocationARB,
+  glBindBuffer,
+  glBindBufferARB,
+  glBindBufferBase,
+  glBindBufferBaseEXT,
+  glBindBufferBaseNV,
+  glBindBufferOffsetEXT,
+  glBindBufferOffsetNV,
+  glBindBufferRange,
+  glBindBufferRangeEXT,
+  glBindBufferRangeNV,
+  glBindBuffersBase,
+  glBindBuffersRange,
+  glBindFragDataLocation,
+  glBindFragDataLocationEXT,
+  glBindFragDataLocationIndexed,
+  glBindFragDataLocationIndexedEXT,
+  glBindFragmentShaderATI,
+  glBindFramebuffer,
+  glBindFramebufferEXT,
+  glBindFramebufferOES,
+  glBindImageTexture,
+  glBindImageTextureEXT,
+  glBindImageTextures,
+  glBindLightParameterEXT,
+  glBindMaterialParameterEXT,
+  glBindMultiTextureEXT,
+  glBindParameterEXT,
+  glBindProgramARB,
+  glBindProgramNV,
+  glBindProgramPipeline,
+  glBindProgramPipelineEXT,
+  glBindRenderbuffer,
+  glBindRenderbufferEXT,
+  glBindRenderbufferOES,
+  glBindSampler,
+  glBindSamplers,
+  glBindShadingRateImageNV,
+  glBindTexGenParameterEXT,
+  glBindTexture,
+  glBindTextureEXT,
+  glBindTextureUnit,
+  glBindTextureUnitParameterEXT,
+  glBindTextures,
+  glBindTransformFeedback,
+  glBindTransformFeedbackNV,
+  glBindVertexArray,
+  glBindVertexArrayAPPLE,
+  glBindVertexArrayOES,
+  glBindVertexBuffer,
+  glBindVertexBuffers
+) where
+
+import Control.Monad.IO.Class ( MonadIO(..) )
+import Foreign.Ptr
+import Graphics.GL.Foreign
+import Graphics.GL.Types
+import System.IO.Unsafe ( unsafePerformIO )
+
+-- glAccum ---------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glAccum.xml OpenGL 2.x>.
+glAccum
+  :: MonadIO m
+  => GLenum -- ^ @op@ of type [AccumOp](Graphics-GL-Groups.html#AccumOp).
+  -> GLfloat -- ^ @value@ of type @CoordF@.
+  -> m ()
+glAccum v1 v2 = liftIO $ dyn0 ptr_glAccum v1 v2
+
+{-# NOINLINE ptr_glAccum #-}
+ptr_glAccum :: FunPtr (GLenum -> GLfloat -> IO ())
+ptr_glAccum = unsafePerformIO $ getCommand "glAccum"
+
+-- glAccumxOES -----------------------------------------------------------------
+
+glAccumxOES
+  :: MonadIO m
+  => GLenum -- ^ @op@.
+  -> GLfixed -- ^ @value@.
+  -> m ()
+glAccumxOES v1 v2 = liftIO $ dyn1 ptr_glAccumxOES v1 v2
+
+{-# NOINLINE ptr_glAccumxOES #-}
+ptr_glAccumxOES :: FunPtr (GLenum -> GLfixed -> IO ())
+ptr_glAccumxOES = unsafePerformIO $ getCommand "glAccumxOES"
+
+-- glAcquireKeyedMutexWin32EXT -------------------------------------------------
+
+glAcquireKeyedMutexWin32EXT
+  :: MonadIO m
+  => GLuint -- ^ @memory@.
+  -> GLuint64 -- ^ @key@.
+  -> GLuint -- ^ @timeout@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glAcquireKeyedMutexWin32EXT v1 v2 v3 = liftIO $ dyn2 ptr_glAcquireKeyedMutexWin32EXT v1 v2 v3
+
+{-# NOINLINE ptr_glAcquireKeyedMutexWin32EXT #-}
+ptr_glAcquireKeyedMutexWin32EXT :: FunPtr (GLuint -> GLuint64 -> GLuint -> IO GLboolean)
+ptr_glAcquireKeyedMutexWin32EXT = unsafePerformIO $ getCommand "glAcquireKeyedMutexWin32EXT"
+
+-- glActiveProgramEXT ----------------------------------------------------------
+
+glActiveProgramEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> m ()
+glActiveProgramEXT v1 = liftIO $ dyn3 ptr_glActiveProgramEXT v1
+
+{-# NOINLINE ptr_glActiveProgramEXT #-}
+ptr_glActiveProgramEXT :: FunPtr (GLuint -> IO ())
+ptr_glActiveProgramEXT = unsafePerformIO $ getCommand "glActiveProgramEXT"
+
+-- glActiveShaderProgram -------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glActiveShaderProgram.xhtml OpenGL 4.x>.
+glActiveShaderProgram
+  :: MonadIO m
+  => GLuint -- ^ @pipeline@.
+  -> GLuint -- ^ @program@.
+  -> m ()
+glActiveShaderProgram v1 v2 = liftIO $ dyn4 ptr_glActiveShaderProgram v1 v2
+
+{-# NOINLINE ptr_glActiveShaderProgram #-}
+ptr_glActiveShaderProgram :: FunPtr (GLuint -> GLuint -> IO ())
+ptr_glActiveShaderProgram = unsafePerformIO $ getCommand "glActiveShaderProgram"
+
+-- glActiveShaderProgramEXT ----------------------------------------------------
+
+glActiveShaderProgramEXT
+  :: MonadIO m
+  => GLuint -- ^ @pipeline@.
+  -> GLuint -- ^ @program@.
+  -> m ()
+glActiveShaderProgramEXT v1 v2 = liftIO $ dyn4 ptr_glActiveShaderProgramEXT v1 v2
+
+{-# NOINLINE ptr_glActiveShaderProgramEXT #-}
+ptr_glActiveShaderProgramEXT :: FunPtr (GLuint -> GLuint -> IO ())
+ptr_glActiveShaderProgramEXT = unsafePerformIO $ getCommand "glActiveShaderProgramEXT"
+
+-- glActiveStencilFaceEXT ------------------------------------------------------
+
+glActiveStencilFaceEXT
+  :: MonadIO m
+  => GLenum -- ^ @face@ of type [StencilFaceDirection](Graphics-GL-Groups.html#StencilFaceDirection).
+  -> m ()
+glActiveStencilFaceEXT v1 = liftIO $ dyn5 ptr_glActiveStencilFaceEXT v1
+
+{-# NOINLINE ptr_glActiveStencilFaceEXT #-}
+ptr_glActiveStencilFaceEXT :: FunPtr (GLenum -> IO ())
+ptr_glActiveStencilFaceEXT = unsafePerformIO $ getCommand "glActiveStencilFaceEXT"
+
+-- glActiveTexture -------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glActiveTexture.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glActiveTexture.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glActiveTexture.xhtml OpenGL 4.x>.
+glActiveTexture
+  :: MonadIO m
+  => GLenum -- ^ @texture@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> m ()
+glActiveTexture v1 = liftIO $ dyn5 ptr_glActiveTexture v1
+
+{-# NOINLINE ptr_glActiveTexture #-}
+ptr_glActiveTexture :: FunPtr (GLenum -> IO ())
+ptr_glActiveTexture = unsafePerformIO $ getCommand "glActiveTexture"
+
+-- glActiveTextureARB ----------------------------------------------------------
+
+-- | This command is an alias for 'glActiveTexture'.
+glActiveTextureARB
+  :: MonadIO m
+  => GLenum -- ^ @texture@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> m ()
+glActiveTextureARB v1 = liftIO $ dyn5 ptr_glActiveTextureARB v1
+
+{-# NOINLINE ptr_glActiveTextureARB #-}
+ptr_glActiveTextureARB :: FunPtr (GLenum -> IO ())
+ptr_glActiveTextureARB = unsafePerformIO $ getCommand "glActiveTextureARB"
+
+-- glActiveVaryingNV -----------------------------------------------------------
+
+glActiveVaryingNV
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> Ptr GLchar -- ^ @name@ pointing to @COMPSIZE(name)@ elements of type @GLchar@.
+  -> m ()
+glActiveVaryingNV v1 v2 = liftIO $ dyn6 ptr_glActiveVaryingNV v1 v2
+
+{-# NOINLINE ptr_glActiveVaryingNV #-}
+ptr_glActiveVaryingNV :: FunPtr (GLuint -> Ptr GLchar -> IO ())
+ptr_glActiveVaryingNV = unsafePerformIO $ getCommand "glActiveVaryingNV"
+
+-- glAlphaFragmentOp1ATI -------------------------------------------------------
+
+glAlphaFragmentOp1ATI
+  :: MonadIO m
+  => GLenum -- ^ @op@ of type [FragmentOpATI](Graphics-GL-Groups.html#FragmentOpATI).
+  -> GLuint -- ^ @dst@.
+  -> GLuint -- ^ @dstMod@.
+  -> GLuint -- ^ @arg1@.
+  -> GLuint -- ^ @arg1Rep@.
+  -> GLuint -- ^ @arg1Mod@.
+  -> m ()
+glAlphaFragmentOp1ATI v1 v2 v3 v4 v5 v6 = liftIO $ dyn7 ptr_glAlphaFragmentOp1ATI v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glAlphaFragmentOp1ATI #-}
+ptr_glAlphaFragmentOp1ATI :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+ptr_glAlphaFragmentOp1ATI = unsafePerformIO $ getCommand "glAlphaFragmentOp1ATI"
+
+-- glAlphaFragmentOp2ATI -------------------------------------------------------
+
+glAlphaFragmentOp2ATI
+  :: MonadIO m
+  => GLenum -- ^ @op@ of type [FragmentOpATI](Graphics-GL-Groups.html#FragmentOpATI).
+  -> GLuint -- ^ @dst@.
+  -> GLuint -- ^ @dstMod@.
+  -> GLuint -- ^ @arg1@.
+  -> GLuint -- ^ @arg1Rep@.
+  -> GLuint -- ^ @arg1Mod@.
+  -> GLuint -- ^ @arg2@.
+  -> GLuint -- ^ @arg2Rep@.
+  -> GLuint -- ^ @arg2Mod@.
+  -> m ()
+glAlphaFragmentOp2ATI v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO $ dyn8 ptr_glAlphaFragmentOp2ATI v1 v2 v3 v4 v5 v6 v7 v8 v9
+
+{-# NOINLINE ptr_glAlphaFragmentOp2ATI #-}
+ptr_glAlphaFragmentOp2ATI :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+ptr_glAlphaFragmentOp2ATI = unsafePerformIO $ getCommand "glAlphaFragmentOp2ATI"
+
+-- glAlphaFragmentOp3ATI -------------------------------------------------------
+
+glAlphaFragmentOp3ATI
+  :: MonadIO m
+  => GLenum -- ^ @op@ of type [FragmentOpATI](Graphics-GL-Groups.html#FragmentOpATI).
+  -> GLuint -- ^ @dst@.
+  -> GLuint -- ^ @dstMod@.
+  -> GLuint -- ^ @arg1@.
+  -> GLuint -- ^ @arg1Rep@.
+  -> GLuint -- ^ @arg1Mod@.
+  -> GLuint -- ^ @arg2@.
+  -> GLuint -- ^ @arg2Rep@.
+  -> GLuint -- ^ @arg2Mod@.
+  -> GLuint -- ^ @arg3@.
+  -> GLuint -- ^ @arg3Rep@.
+  -> GLuint -- ^ @arg3Mod@.
+  -> m ()
+glAlphaFragmentOp3ATI v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 = liftIO $ dyn9 ptr_glAlphaFragmentOp3ATI v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12
+
+{-# NOINLINE ptr_glAlphaFragmentOp3ATI #-}
+ptr_glAlphaFragmentOp3ATI :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+ptr_glAlphaFragmentOp3ATI = unsafePerformIO $ getCommand "glAlphaFragmentOp3ATI"
+
+-- glAlphaFunc -----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glAlphaFunc.xml OpenGL 2.x>.
+glAlphaFunc
+  :: MonadIO m
+  => GLenum -- ^ @func@ of type [AlphaFunction](Graphics-GL-Groups.html#AlphaFunction).
+  -> GLfloat -- ^ @ref@.
+  -> m ()
+glAlphaFunc v1 v2 = liftIO $ dyn0 ptr_glAlphaFunc v1 v2
+
+{-# NOINLINE ptr_glAlphaFunc #-}
+ptr_glAlphaFunc :: FunPtr (GLenum -> GLfloat -> IO ())
+ptr_glAlphaFunc = unsafePerformIO $ getCommand "glAlphaFunc"
+
+-- glAlphaFuncQCOM -------------------------------------------------------------
+
+glAlphaFuncQCOM
+  :: MonadIO m
+  => GLenum -- ^ @func@.
+  -> GLclampf -- ^ @ref@.
+  -> m ()
+glAlphaFuncQCOM v1 v2 = liftIO $ dyn10 ptr_glAlphaFuncQCOM v1 v2
+
+{-# NOINLINE ptr_glAlphaFuncQCOM #-}
+ptr_glAlphaFuncQCOM :: FunPtr (GLenum -> GLclampf -> IO ())
+ptr_glAlphaFuncQCOM = unsafePerformIO $ getCommand "glAlphaFuncQCOM"
+
+-- glAlphaFuncx ----------------------------------------------------------------
+
+glAlphaFuncx
+  :: MonadIO m
+  => GLenum -- ^ @func@ of type [AlphaFunction](Graphics-GL-Groups.html#AlphaFunction).
+  -> GLfixed -- ^ @ref@.
+  -> m ()
+glAlphaFuncx v1 v2 = liftIO $ dyn1 ptr_glAlphaFuncx v1 v2
+
+{-# NOINLINE ptr_glAlphaFuncx #-}
+ptr_glAlphaFuncx :: FunPtr (GLenum -> GLfixed -> IO ())
+ptr_glAlphaFuncx = unsafePerformIO $ getCommand "glAlphaFuncx"
+
+-- glAlphaFuncxOES -------------------------------------------------------------
+
+glAlphaFuncxOES
+  :: MonadIO m
+  => GLenum -- ^ @func@ of type [AlphaFunction](Graphics-GL-Groups.html#AlphaFunction).
+  -> GLfixed -- ^ @ref@ of type @ClampedFixed@.
+  -> m ()
+glAlphaFuncxOES v1 v2 = liftIO $ dyn1 ptr_glAlphaFuncxOES v1 v2
+
+{-# NOINLINE ptr_glAlphaFuncxOES #-}
+ptr_glAlphaFuncxOES :: FunPtr (GLenum -> GLfixed -> IO ())
+ptr_glAlphaFuncxOES = unsafePerformIO $ getCommand "glAlphaFuncxOES"
+
+-- glAlphaToCoverageDitherControlNV --------------------------------------------
+
+glAlphaToCoverageDitherControlNV
+  :: MonadIO m
+  => GLenum -- ^ @mode@.
+  -> m ()
+glAlphaToCoverageDitherControlNV v1 = liftIO $ dyn5 ptr_glAlphaToCoverageDitherControlNV v1
+
+{-# NOINLINE ptr_glAlphaToCoverageDitherControlNV #-}
+ptr_glAlphaToCoverageDitherControlNV :: FunPtr (GLenum -> IO ())
+ptr_glAlphaToCoverageDitherControlNV = unsafePerformIO $ getCommand "glAlphaToCoverageDitherControlNV"
+
+-- glApplyFramebufferAttachmentCMAAINTEL ---------------------------------------
+
+glApplyFramebufferAttachmentCMAAINTEL
+  :: MonadIO m
+  => m ()
+glApplyFramebufferAttachmentCMAAINTEL = liftIO $ dyn11 ptr_glApplyFramebufferAttachmentCMAAINTEL
+
+{-# NOINLINE ptr_glApplyFramebufferAttachmentCMAAINTEL #-}
+ptr_glApplyFramebufferAttachmentCMAAINTEL :: FunPtr (IO ())
+ptr_glApplyFramebufferAttachmentCMAAINTEL = unsafePerformIO $ getCommand "glApplyFramebufferAttachmentCMAAINTEL"
+
+-- glApplyTextureEXT -----------------------------------------------------------
+
+glApplyTextureEXT
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [LightTextureModeEXT](Graphics-GL-Groups.html#LightTextureModeEXT).
+  -> m ()
+glApplyTextureEXT v1 = liftIO $ dyn5 ptr_glApplyTextureEXT v1
+
+{-# NOINLINE ptr_glApplyTextureEXT #-}
+ptr_glApplyTextureEXT :: FunPtr (GLenum -> IO ())
+ptr_glApplyTextureEXT = unsafePerformIO $ getCommand "glApplyTextureEXT"
+
+-- glAreProgramsResidentNV -----------------------------------------------------
+
+glAreProgramsResidentNV
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @programs@ pointing to @n@ elements of type @GLuint@.
+  -> Ptr GLboolean -- ^ @residences@ pointing to @n@ elements of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glAreProgramsResidentNV v1 v2 v3 = liftIO $ dyn12 ptr_glAreProgramsResidentNV v1 v2 v3
+
+{-# NOINLINE ptr_glAreProgramsResidentNV #-}
+ptr_glAreProgramsResidentNV :: FunPtr (GLsizei -> Ptr GLuint -> Ptr GLboolean -> IO GLboolean)
+ptr_glAreProgramsResidentNV = unsafePerformIO $ getCommand "glAreProgramsResidentNV"
+
+-- glAreTexturesResident -------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glAreTexturesResident.xml OpenGL 2.x>.
+glAreTexturesResident
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @textures@ pointing to @n@ elements of type @Texture@.
+  -> Ptr GLboolean -- ^ @residences@ pointing to @n@ elements of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glAreTexturesResident v1 v2 v3 = liftIO $ dyn12 ptr_glAreTexturesResident v1 v2 v3
+
+{-# NOINLINE ptr_glAreTexturesResident #-}
+ptr_glAreTexturesResident :: FunPtr (GLsizei -> Ptr GLuint -> Ptr GLboolean -> IO GLboolean)
+ptr_glAreTexturesResident = unsafePerformIO $ getCommand "glAreTexturesResident"
+
+-- glAreTexturesResidentEXT ----------------------------------------------------
+
+glAreTexturesResidentEXT
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @textures@ pointing to @n@ elements of type @Texture@.
+  -> Ptr GLboolean -- ^ @residences@ pointing to @n@ elements of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glAreTexturesResidentEXT v1 v2 v3 = liftIO $ dyn12 ptr_glAreTexturesResidentEXT v1 v2 v3
+
+{-# NOINLINE ptr_glAreTexturesResidentEXT #-}
+ptr_glAreTexturesResidentEXT :: FunPtr (GLsizei -> Ptr GLuint -> Ptr GLboolean -> IO GLboolean)
+ptr_glAreTexturesResidentEXT = unsafePerformIO $ getCommand "glAreTexturesResidentEXT"
+
+-- glArrayElement --------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glArrayElement.xml OpenGL 2.x>.
+glArrayElement
+  :: MonadIO m
+  => GLint -- ^ @i@.
+  -> m ()
+glArrayElement v1 = liftIO $ dyn13 ptr_glArrayElement v1
+
+{-# NOINLINE ptr_glArrayElement #-}
+ptr_glArrayElement :: FunPtr (GLint -> IO ())
+ptr_glArrayElement = unsafePerformIO $ getCommand "glArrayElement"
+
+-- glArrayElementEXT -----------------------------------------------------------
+
+-- | This command is an alias for 'glArrayElement'.
+glArrayElementEXT
+  :: MonadIO m
+  => GLint -- ^ @i@.
+  -> m ()
+glArrayElementEXT v1 = liftIO $ dyn13 ptr_glArrayElementEXT v1
+
+{-# NOINLINE ptr_glArrayElementEXT #-}
+ptr_glArrayElementEXT :: FunPtr (GLint -> IO ())
+ptr_glArrayElementEXT = unsafePerformIO $ getCommand "glArrayElementEXT"
+
+-- glArrayObjectATI ------------------------------------------------------------
+
+glArrayObjectATI
+  :: MonadIO m
+  => GLenum -- ^ @array@ of type [EnableCap](Graphics-GL-Groups.html#EnableCap).
+  -> GLint -- ^ @size@.
+  -> GLenum -- ^ @type@ of type [ScalarType](Graphics-GL-Groups.html#ScalarType).
+  -> GLsizei -- ^ @stride@.
+  -> GLuint -- ^ @buffer@.
+  -> GLuint -- ^ @offset@.
+  -> m ()
+glArrayObjectATI v1 v2 v3 v4 v5 v6 = liftIO $ dyn14 ptr_glArrayObjectATI v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glArrayObjectATI #-}
+ptr_glArrayObjectATI :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLuint -> GLuint -> IO ())
+ptr_glArrayObjectATI = unsafePerformIO $ getCommand "glArrayObjectATI"
+
+-- glAsyncCopyBufferSubDataNVX -------------------------------------------------
+
+glAsyncCopyBufferSubDataNVX
+  :: MonadIO m
+  => GLsizei -- ^ @waitSemaphoreCount@.
+  -> Ptr GLuint -- ^ @waitSemaphoreArray@ pointing to @waitSemaphoreCount@ elements of type @GLuint@.
+  -> Ptr GLuint64 -- ^ @fenceValueArray@ pointing to @waitSemaphoreCount@ elements of type @GLuint64@.
+  -> GLuint -- ^ @readGpu@.
+  -> GLbitfield -- ^ @writeGpuMask@.
+  -> GLuint -- ^ @readBuffer@.
+  -> GLuint -- ^ @writeBuffer@.
+  -> GLintptr -- ^ @readOffset@.
+  -> GLintptr -- ^ @writeOffset@.
+  -> GLsizeiptr -- ^ @size@.
+  -> GLsizei -- ^ @signalSemaphoreCount@.
+  -> Ptr GLuint -- ^ @signalSemaphoreArray@ pointing to @signalSemaphoreCount@ elements of type @GLuint@.
+  -> Ptr GLuint64 -- ^ @signalValueArray@ pointing to @signalSemaphoreCount@ elements of type @GLuint64@.
+  -> m GLuint
+glAsyncCopyBufferSubDataNVX v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 = liftIO $ dyn15 ptr_glAsyncCopyBufferSubDataNVX v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13
+
+{-# NOINLINE ptr_glAsyncCopyBufferSubDataNVX #-}
+ptr_glAsyncCopyBufferSubDataNVX :: FunPtr (GLsizei -> Ptr GLuint -> Ptr GLuint64 -> GLuint -> GLbitfield -> GLuint -> GLuint -> GLintptr -> GLintptr -> GLsizeiptr -> GLsizei -> Ptr GLuint -> Ptr GLuint64 -> IO GLuint)
+ptr_glAsyncCopyBufferSubDataNVX = unsafePerformIO $ getCommand "glAsyncCopyBufferSubDataNVX"
+
+-- glAsyncCopyImageSubDataNVX --------------------------------------------------
+
+glAsyncCopyImageSubDataNVX
+  :: MonadIO m
+  => GLsizei -- ^ @waitSemaphoreCount@.
+  -> Ptr GLuint -- ^ @waitSemaphoreArray@ pointing to @waitSemaphoreCount@ elements of type @GLuint@.
+  -> Ptr GLuint64 -- ^ @waitValueArray@ pointing to @waitSemaphoreCount@ elements of type @GLuint64@.
+  -> GLuint -- ^ @srcGpu@.
+  -> GLbitfield -- ^ @dstGpuMask@.
+  -> GLuint -- ^ @srcName@.
+  -> GLenum -- ^ @srcTarget@.
+  -> GLint -- ^ @srcLevel@.
+  -> GLint -- ^ @srcX@.
+  -> GLint -- ^ @srcY@.
+  -> GLint -- ^ @srcZ@.
+  -> GLuint -- ^ @dstName@.
+  -> GLenum -- ^ @dstTarget@.
+  -> GLint -- ^ @dstLevel@.
+  -> GLint -- ^ @dstX@.
+  -> GLint -- ^ @dstY@.
+  -> GLint -- ^ @dstZ@.
+  -> GLsizei -- ^ @srcWidth@.
+  -> GLsizei -- ^ @srcHeight@.
+  -> GLsizei -- ^ @srcDepth@.
+  -> GLsizei -- ^ @signalSemaphoreCount@.
+  -> Ptr GLuint -- ^ @signalSemaphoreArray@ pointing to @signalSemaphoreCount@ elements of type @GLuint@.
+  -> Ptr GLuint64 -- ^ @signalValueArray@ pointing to @signalSemaphoreCount@ elements of type @GLuint64@.
+  -> m GLuint
+glAsyncCopyImageSubDataNVX v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 = liftIO $ dyn16 ptr_glAsyncCopyImageSubDataNVX v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23
+
+{-# NOINLINE ptr_glAsyncCopyImageSubDataNVX #-}
+ptr_glAsyncCopyImageSubDataNVX :: FunPtr (GLsizei -> Ptr GLuint -> Ptr GLuint64 -> GLuint -> GLbitfield -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> Ptr GLuint -> Ptr GLuint64 -> IO GLuint)
+ptr_glAsyncCopyImageSubDataNVX = unsafePerformIO $ getCommand "glAsyncCopyImageSubDataNVX"
+
+-- glAsyncMarkerSGIX -----------------------------------------------------------
+
+glAsyncMarkerSGIX
+  :: MonadIO m
+  => GLuint -- ^ @marker@.
+  -> m ()
+glAsyncMarkerSGIX v1 = liftIO $ dyn3 ptr_glAsyncMarkerSGIX v1
+
+{-# NOINLINE ptr_glAsyncMarkerSGIX #-}
+ptr_glAsyncMarkerSGIX :: FunPtr (GLuint -> IO ())
+ptr_glAsyncMarkerSGIX = unsafePerformIO $ getCommand "glAsyncMarkerSGIX"
+
+-- glAttachObjectARB -----------------------------------------------------------
+
+-- | This command is an alias for 'glAttachShader'.
+glAttachObjectARB
+  :: MonadIO m
+  => GLhandleARB -- ^ @containerObj@ of type @handleARB@.
+  -> GLhandleARB -- ^ @obj@ of type @handleARB@.
+  -> m ()
+glAttachObjectARB v1 v2 = liftIO $ dyn17 ptr_glAttachObjectARB v1 v2
+
+{-# NOINLINE ptr_glAttachObjectARB #-}
+ptr_glAttachObjectARB :: FunPtr (GLhandleARB -> GLhandleARB -> IO ())
+ptr_glAttachObjectARB = unsafePerformIO $ getCommand "glAttachObjectARB"
+
+-- glAttachShader --------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glAttachShader.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glAttachShader.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glAttachShader.xhtml OpenGL 4.x>.
+glAttachShader
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLuint -- ^ @shader@.
+  -> m ()
+glAttachShader v1 v2 = liftIO $ dyn4 ptr_glAttachShader v1 v2
+
+{-# NOINLINE ptr_glAttachShader #-}
+ptr_glAttachShader :: FunPtr (GLuint -> GLuint -> IO ())
+ptr_glAttachShader = unsafePerformIO $ getCommand "glAttachShader"
+
+-- glBegin ---------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glBegin.xml OpenGL 2.x>.
+glBegin
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> m ()
+glBegin v1 = liftIO $ dyn5 ptr_glBegin v1
+
+{-# NOINLINE ptr_glBegin #-}
+ptr_glBegin :: FunPtr (GLenum -> IO ())
+ptr_glBegin = unsafePerformIO $ getCommand "glBegin"
+
+-- glBeginConditionalRender ----------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glBeginConditionalRender.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glBeginConditionalRender.xhtml OpenGL 4.x>.
+glBeginConditionalRender
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> GLenum -- ^ @mode@ of type [ConditionalRenderMode](Graphics-GL-Groups.html#ConditionalRenderMode).
+  -> m ()
+glBeginConditionalRender v1 v2 = liftIO $ dyn18 ptr_glBeginConditionalRender v1 v2
+
+{-# NOINLINE ptr_glBeginConditionalRender #-}
+ptr_glBeginConditionalRender :: FunPtr (GLuint -> GLenum -> IO ())
+ptr_glBeginConditionalRender = unsafePerformIO $ getCommand "glBeginConditionalRender"
+
+-- glBeginConditionalRenderNV --------------------------------------------------
+
+-- | This command is an alias for 'glBeginConditionalRender'.
+glBeginConditionalRenderNV
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> GLenum -- ^ @mode@ of type [ConditionalRenderMode](Graphics-GL-Groups.html#ConditionalRenderMode).
+  -> m ()
+glBeginConditionalRenderNV v1 v2 = liftIO $ dyn18 ptr_glBeginConditionalRenderNV v1 v2
+
+{-# NOINLINE ptr_glBeginConditionalRenderNV #-}
+ptr_glBeginConditionalRenderNV :: FunPtr (GLuint -> GLenum -> IO ())
+ptr_glBeginConditionalRenderNV = unsafePerformIO $ getCommand "glBeginConditionalRenderNV"
+
+-- glBeginConditionalRenderNVX -------------------------------------------------
+
+glBeginConditionalRenderNVX
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> m ()
+glBeginConditionalRenderNVX v1 = liftIO $ dyn3 ptr_glBeginConditionalRenderNVX v1
+
+{-# NOINLINE ptr_glBeginConditionalRenderNVX #-}
+ptr_glBeginConditionalRenderNVX :: FunPtr (GLuint -> IO ())
+ptr_glBeginConditionalRenderNVX = unsafePerformIO $ getCommand "glBeginConditionalRenderNVX"
+
+-- glBeginFragmentShaderATI ----------------------------------------------------
+
+glBeginFragmentShaderATI
+  :: MonadIO m
+  => m ()
+glBeginFragmentShaderATI = liftIO $ dyn11 ptr_glBeginFragmentShaderATI
+
+{-# NOINLINE ptr_glBeginFragmentShaderATI #-}
+ptr_glBeginFragmentShaderATI :: FunPtr (IO ())
+ptr_glBeginFragmentShaderATI = unsafePerformIO $ getCommand "glBeginFragmentShaderATI"
+
+-- glBeginOcclusionQueryNV -----------------------------------------------------
+
+glBeginOcclusionQueryNV
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> m ()
+glBeginOcclusionQueryNV v1 = liftIO $ dyn3 ptr_glBeginOcclusionQueryNV v1
+
+{-# NOINLINE ptr_glBeginOcclusionQueryNV #-}
+ptr_glBeginOcclusionQueryNV :: FunPtr (GLuint -> IO ())
+ptr_glBeginOcclusionQueryNV = unsafePerformIO $ getCommand "glBeginOcclusionQueryNV"
+
+-- glBeginPerfMonitorAMD -------------------------------------------------------
+
+glBeginPerfMonitorAMD
+  :: MonadIO m
+  => GLuint -- ^ @monitor@.
+  -> m ()
+glBeginPerfMonitorAMD v1 = liftIO $ dyn3 ptr_glBeginPerfMonitorAMD v1
+
+{-# NOINLINE ptr_glBeginPerfMonitorAMD #-}
+ptr_glBeginPerfMonitorAMD :: FunPtr (GLuint -> IO ())
+ptr_glBeginPerfMonitorAMD = unsafePerformIO $ getCommand "glBeginPerfMonitorAMD"
+
+-- glBeginPerfQueryINTEL -------------------------------------------------------
+
+glBeginPerfQueryINTEL
+  :: MonadIO m
+  => GLuint -- ^ @queryHandle@.
+  -> m ()
+glBeginPerfQueryINTEL v1 = liftIO $ dyn3 ptr_glBeginPerfQueryINTEL v1
+
+{-# NOINLINE ptr_glBeginPerfQueryINTEL #-}
+ptr_glBeginPerfQueryINTEL :: FunPtr (GLuint -> IO ())
+ptr_glBeginPerfQueryINTEL = unsafePerformIO $ getCommand "glBeginPerfQueryINTEL"
+
+-- glBeginQuery ----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glBeginQuery.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glBeginQuery.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glBeginQuery.xhtml OpenGL 4.x>.
+glBeginQuery
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [QueryTarget](Graphics-GL-Groups.html#QueryTarget).
+  -> GLuint -- ^ @id@.
+  -> m ()
+glBeginQuery v1 v2 = liftIO $ dyn19 ptr_glBeginQuery v1 v2
+
+{-# NOINLINE ptr_glBeginQuery #-}
+ptr_glBeginQuery :: FunPtr (GLenum -> GLuint -> IO ())
+ptr_glBeginQuery = unsafePerformIO $ getCommand "glBeginQuery"
+
+-- glBeginQueryARB -------------------------------------------------------------
+
+-- | This command is an alias for 'glBeginQuery'.
+glBeginQueryARB
+  :: MonadIO m
+  => GLenum -- ^ @target@.
+  -> GLuint -- ^ @id@.
+  -> m ()
+glBeginQueryARB v1 v2 = liftIO $ dyn19 ptr_glBeginQueryARB v1 v2
+
+{-# NOINLINE ptr_glBeginQueryARB #-}
+ptr_glBeginQueryARB :: FunPtr (GLenum -> GLuint -> IO ())
+ptr_glBeginQueryARB = unsafePerformIO $ getCommand "glBeginQueryARB"
+
+-- glBeginQueryEXT -------------------------------------------------------------
+
+glBeginQueryEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [QueryTarget](Graphics-GL-Groups.html#QueryTarget).
+  -> GLuint -- ^ @id@.
+  -> m ()
+glBeginQueryEXT v1 v2 = liftIO $ dyn19 ptr_glBeginQueryEXT v1 v2
+
+{-# NOINLINE ptr_glBeginQueryEXT #-}
+ptr_glBeginQueryEXT :: FunPtr (GLenum -> GLuint -> IO ())
+ptr_glBeginQueryEXT = unsafePerformIO $ getCommand "glBeginQueryEXT"
+
+-- glBeginQueryIndexed ---------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glBeginQueryIndexed.xhtml OpenGL 4.x>.
+glBeginQueryIndexed
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [QueryTarget](Graphics-GL-Groups.html#QueryTarget).
+  -> GLuint -- ^ @index@.
+  -> GLuint -- ^ @id@.
+  -> m ()
+glBeginQueryIndexed v1 v2 v3 = liftIO $ dyn20 ptr_glBeginQueryIndexed v1 v2 v3
+
+{-# NOINLINE ptr_glBeginQueryIndexed #-}
+ptr_glBeginQueryIndexed :: FunPtr (GLenum -> GLuint -> GLuint -> IO ())
+ptr_glBeginQueryIndexed = unsafePerformIO $ getCommand "glBeginQueryIndexed"
+
+-- glBeginTransformFeedback ----------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glBeginTransformFeedback.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glBeginTransformFeedback.xhtml OpenGL 4.x>.
+glBeginTransformFeedback
+  :: MonadIO m
+  => GLenum -- ^ @primitiveMode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> m ()
+glBeginTransformFeedback v1 = liftIO $ dyn5 ptr_glBeginTransformFeedback v1
+
+{-# NOINLINE ptr_glBeginTransformFeedback #-}
+ptr_glBeginTransformFeedback :: FunPtr (GLenum -> IO ())
+ptr_glBeginTransformFeedback = unsafePerformIO $ getCommand "glBeginTransformFeedback"
+
+-- glBeginTransformFeedbackEXT -------------------------------------------------
+
+-- | This command is an alias for 'glBeginTransformFeedback'.
+glBeginTransformFeedbackEXT
+  :: MonadIO m
+  => GLenum -- ^ @primitiveMode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> m ()
+glBeginTransformFeedbackEXT v1 = liftIO $ dyn5 ptr_glBeginTransformFeedbackEXT v1
+
+{-# NOINLINE ptr_glBeginTransformFeedbackEXT #-}
+ptr_glBeginTransformFeedbackEXT :: FunPtr (GLenum -> IO ())
+ptr_glBeginTransformFeedbackEXT = unsafePerformIO $ getCommand "glBeginTransformFeedbackEXT"
+
+-- glBeginTransformFeedbackNV --------------------------------------------------
+
+-- | This command is an alias for 'glBeginTransformFeedback'.
+glBeginTransformFeedbackNV
+  :: MonadIO m
+  => GLenum -- ^ @primitiveMode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> m ()
+glBeginTransformFeedbackNV v1 = liftIO $ dyn5 ptr_glBeginTransformFeedbackNV v1
+
+{-# NOINLINE ptr_glBeginTransformFeedbackNV #-}
+ptr_glBeginTransformFeedbackNV :: FunPtr (GLenum -> IO ())
+ptr_glBeginTransformFeedbackNV = unsafePerformIO $ getCommand "glBeginTransformFeedbackNV"
+
+-- glBeginVertexShaderEXT ------------------------------------------------------
+
+glBeginVertexShaderEXT
+  :: MonadIO m
+  => m ()
+glBeginVertexShaderEXT = liftIO $ dyn11 ptr_glBeginVertexShaderEXT
+
+{-# NOINLINE ptr_glBeginVertexShaderEXT #-}
+ptr_glBeginVertexShaderEXT :: FunPtr (IO ())
+ptr_glBeginVertexShaderEXT = unsafePerformIO $ getCommand "glBeginVertexShaderEXT"
+
+-- glBeginVideoCaptureNV -------------------------------------------------------
+
+glBeginVideoCaptureNV
+  :: MonadIO m
+  => GLuint -- ^ @video_capture_slot@.
+  -> m ()
+glBeginVideoCaptureNV v1 = liftIO $ dyn3 ptr_glBeginVideoCaptureNV v1
+
+{-# NOINLINE ptr_glBeginVideoCaptureNV #-}
+ptr_glBeginVideoCaptureNV :: FunPtr (GLuint -> IO ())
+ptr_glBeginVideoCaptureNV = unsafePerformIO $ getCommand "glBeginVideoCaptureNV"
+
+-- glBindAttribLocation --------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glBindAttribLocation.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glBindAttribLocation.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glBindAttribLocation.xhtml OpenGL 4.x>.
+glBindAttribLocation
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLuint -- ^ @index@.
+  -> Ptr GLchar -- ^ @name@.
+  -> m ()
+glBindAttribLocation v1 v2 v3 = liftIO $ dyn21 ptr_glBindAttribLocation v1 v2 v3
+
+{-# NOINLINE ptr_glBindAttribLocation #-}
+ptr_glBindAttribLocation :: FunPtr (GLuint -> GLuint -> Ptr GLchar -> IO ())
+ptr_glBindAttribLocation = unsafePerformIO $ getCommand "glBindAttribLocation"
+
+-- glBindAttribLocationARB -----------------------------------------------------
+
+-- | This command is an alias for 'glBindAttribLocation'.
+glBindAttribLocationARB
+  :: MonadIO m
+  => GLhandleARB -- ^ @programObj@ of type @handleARB@.
+  -> GLuint -- ^ @index@.
+  -> Ptr GLcharARB -- ^ @name@.
+  -> m ()
+glBindAttribLocationARB v1 v2 v3 = liftIO $ dyn22 ptr_glBindAttribLocationARB v1 v2 v3
+
+{-# NOINLINE ptr_glBindAttribLocationARB #-}
+ptr_glBindAttribLocationARB :: FunPtr (GLhandleARB -> GLuint -> Ptr GLcharARB -> IO ())
+ptr_glBindAttribLocationARB = unsafePerformIO $ getCommand "glBindAttribLocationARB"
+
+-- glBindBuffer ----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glBindBuffer.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glBindBuffer.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glBindBuffer.xhtml OpenGL 4.x>.
+glBindBuffer
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
+  -> GLuint -- ^ @buffer@.
+  -> m ()
+glBindBuffer v1 v2 = liftIO $ dyn19 ptr_glBindBuffer v1 v2
+
+{-# NOINLINE ptr_glBindBuffer #-}
+ptr_glBindBuffer :: FunPtr (GLenum -> GLuint -> IO ())
+ptr_glBindBuffer = unsafePerformIO $ getCommand "glBindBuffer"
+
+-- glBindBufferARB -------------------------------------------------------------
+
+-- | This command is an alias for 'glBindBuffer'.
+glBindBufferARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
+  -> GLuint -- ^ @buffer@.
+  -> m ()
+glBindBufferARB v1 v2 = liftIO $ dyn19 ptr_glBindBufferARB v1 v2
+
+{-# NOINLINE ptr_glBindBufferARB #-}
+ptr_glBindBufferARB :: FunPtr (GLenum -> GLuint -> IO ())
+ptr_glBindBufferARB = unsafePerformIO $ getCommand "glBindBufferARB"
+
+-- glBindBufferBase ------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glBindBufferBase.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glBindBufferBase.xhtml OpenGL 4.x>.
+glBindBufferBase
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
+  -> GLuint -- ^ @index@.
+  -> GLuint -- ^ @buffer@.
+  -> m ()
+glBindBufferBase v1 v2 v3 = liftIO $ dyn20 ptr_glBindBufferBase v1 v2 v3
+
+{-# NOINLINE ptr_glBindBufferBase #-}
+ptr_glBindBufferBase :: FunPtr (GLenum -> GLuint -> GLuint -> IO ())
+ptr_glBindBufferBase = unsafePerformIO $ getCommand "glBindBufferBase"
+
+-- glBindBufferBaseEXT ---------------------------------------------------------
+
+-- | This command is an alias for 'glBindBufferBase'.
+glBindBufferBaseEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
+  -> GLuint -- ^ @index@.
+  -> GLuint -- ^ @buffer@.
+  -> m ()
+glBindBufferBaseEXT v1 v2 v3 = liftIO $ dyn20 ptr_glBindBufferBaseEXT v1 v2 v3
+
+{-# NOINLINE ptr_glBindBufferBaseEXT #-}
+ptr_glBindBufferBaseEXT :: FunPtr (GLenum -> GLuint -> GLuint -> IO ())
+ptr_glBindBufferBaseEXT = unsafePerformIO $ getCommand "glBindBufferBaseEXT"
+
+-- glBindBufferBaseNV ----------------------------------------------------------
+
+-- | This command is an alias for 'glBindBufferBase'.
+glBindBufferBaseNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
+  -> GLuint -- ^ @index@.
+  -> GLuint -- ^ @buffer@.
+  -> m ()
+glBindBufferBaseNV v1 v2 v3 = liftIO $ dyn20 ptr_glBindBufferBaseNV v1 v2 v3
+
+{-# NOINLINE ptr_glBindBufferBaseNV #-}
+ptr_glBindBufferBaseNV :: FunPtr (GLenum -> GLuint -> GLuint -> IO ())
+ptr_glBindBufferBaseNV = unsafePerformIO $ getCommand "glBindBufferBaseNV"
+
+-- glBindBufferOffsetEXT -------------------------------------------------------
+
+glBindBufferOffsetEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
+  -> GLuint -- ^ @index@.
+  -> GLuint -- ^ @buffer@.
+  -> GLintptr -- ^ @offset@ of type @BufferOffset@.
+  -> m ()
+glBindBufferOffsetEXT v1 v2 v3 v4 = liftIO $ dyn23 ptr_glBindBufferOffsetEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glBindBufferOffsetEXT #-}
+ptr_glBindBufferOffsetEXT :: FunPtr (GLenum -> GLuint -> GLuint -> GLintptr -> IO ())
+ptr_glBindBufferOffsetEXT = unsafePerformIO $ getCommand "glBindBufferOffsetEXT"
+
+-- glBindBufferOffsetNV --------------------------------------------------------
+
+-- | This command is an alias for 'glBindBufferOffsetEXT'.
+glBindBufferOffsetNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
+  -> GLuint -- ^ @index@.
+  -> GLuint -- ^ @buffer@.
+  -> GLintptr -- ^ @offset@ of type @BufferOffset@.
+  -> m ()
+glBindBufferOffsetNV v1 v2 v3 v4 = liftIO $ dyn23 ptr_glBindBufferOffsetNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glBindBufferOffsetNV #-}
+ptr_glBindBufferOffsetNV :: FunPtr (GLenum -> GLuint -> GLuint -> GLintptr -> IO ())
+ptr_glBindBufferOffsetNV = unsafePerformIO $ getCommand "glBindBufferOffsetNV"
+
+-- glBindBufferRange -----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glBindBufferRange.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glBindBufferRange.xhtml OpenGL 4.x>.
+glBindBufferRange
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
+  -> GLuint -- ^ @index@.
+  -> GLuint -- ^ @buffer@.
+  -> GLintptr -- ^ @offset@ of type @BufferOffset@.
+  -> GLsizeiptr -- ^ @size@ of type @BufferSize@.
+  -> m ()
+glBindBufferRange v1 v2 v3 v4 v5 = liftIO $ dyn24 ptr_glBindBufferRange v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glBindBufferRange #-}
+ptr_glBindBufferRange :: FunPtr (GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> IO ())
+ptr_glBindBufferRange = unsafePerformIO $ getCommand "glBindBufferRange"
+
+-- glBindBufferRangeEXT --------------------------------------------------------
+
+-- | This command is an alias for 'glBindBufferRange'.
+glBindBufferRangeEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
+  -> GLuint -- ^ @index@.
+  -> GLuint -- ^ @buffer@.
+  -> GLintptr -- ^ @offset@ of type @BufferOffset@.
+  -> GLsizeiptr -- ^ @size@ of type @BufferSize@.
+  -> m ()
+glBindBufferRangeEXT v1 v2 v3 v4 v5 = liftIO $ dyn24 ptr_glBindBufferRangeEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glBindBufferRangeEXT #-}
+ptr_glBindBufferRangeEXT :: FunPtr (GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> IO ())
+ptr_glBindBufferRangeEXT = unsafePerformIO $ getCommand "glBindBufferRangeEXT"
+
+-- glBindBufferRangeNV ---------------------------------------------------------
+
+-- | This command is an alias for 'glBindBufferRange'.
+glBindBufferRangeNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
+  -> GLuint -- ^ @index@.
+  -> GLuint -- ^ @buffer@.
+  -> GLintptr -- ^ @offset@ of type @BufferOffset@.
+  -> GLsizeiptr -- ^ @size@ of type @BufferSize@.
+  -> m ()
+glBindBufferRangeNV v1 v2 v3 v4 v5 = liftIO $ dyn24 ptr_glBindBufferRangeNV v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glBindBufferRangeNV #-}
+ptr_glBindBufferRangeNV :: FunPtr (GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> IO ())
+ptr_glBindBufferRangeNV = unsafePerformIO $ getCommand "glBindBufferRangeNV"
+
+-- glBindBuffersBase -----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glBindBuffersBase.xhtml OpenGL 4.x>.
+glBindBuffersBase
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
+  -> GLuint -- ^ @first@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLuint -- ^ @buffers@ pointing to @count@ elements of type @GLuint@.
+  -> m ()
+glBindBuffersBase v1 v2 v3 v4 = liftIO $ dyn25 ptr_glBindBuffersBase v1 v2 v3 v4
+
+{-# NOINLINE ptr_glBindBuffersBase #-}
+ptr_glBindBuffersBase :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLuint -> IO ())
+ptr_glBindBuffersBase = unsafePerformIO $ getCommand "glBindBuffersBase"
+
+-- glBindBuffersRange ----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glBindBuffersRange.xhtml OpenGL 4.x>.
+glBindBuffersRange
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
+  -> GLuint -- ^ @first@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLuint -- ^ @buffers@ pointing to @count@ elements of type @GLuint@.
+  -> Ptr GLintptr -- ^ @offsets@ pointing to @count@ elements of type @GLintptr@.
+  -> Ptr GLsizeiptr -- ^ @sizes@ pointing to @count@ elements of type @GLsizeiptr@.
+  -> m ()
+glBindBuffersRange v1 v2 v3 v4 v5 v6 = liftIO $ dyn26 ptr_glBindBuffersRange v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glBindBuffersRange #-}
+ptr_glBindBuffersRange :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizeiptr -> IO ())
+ptr_glBindBuffersRange = unsafePerformIO $ getCommand "glBindBuffersRange"
+
+-- glBindFragDataLocation ------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glBindFragDataLocation.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glBindFragDataLocation.xhtml OpenGL 4.x>.
+glBindFragDataLocation
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLuint -- ^ @color@.
+  -> Ptr GLchar -- ^ @name@ pointing to @COMPSIZE(name)@ elements of type @GLchar@.
+  -> m ()
+glBindFragDataLocation v1 v2 v3 = liftIO $ dyn21 ptr_glBindFragDataLocation v1 v2 v3
+
+{-# NOINLINE ptr_glBindFragDataLocation #-}
+ptr_glBindFragDataLocation :: FunPtr (GLuint -> GLuint -> Ptr GLchar -> IO ())
+ptr_glBindFragDataLocation = unsafePerformIO $ getCommand "glBindFragDataLocation"
+
+-- glBindFragDataLocationEXT ---------------------------------------------------
+
+-- | This command is an alias for 'glBindFragDataLocation'.
+glBindFragDataLocationEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLuint -- ^ @color@.
+  -> Ptr GLchar -- ^ @name@ pointing to @COMPSIZE(name)@ elements of type @GLchar@.
+  -> m ()
+glBindFragDataLocationEXT v1 v2 v3 = liftIO $ dyn21 ptr_glBindFragDataLocationEXT v1 v2 v3
+
+{-# NOINLINE ptr_glBindFragDataLocationEXT #-}
+ptr_glBindFragDataLocationEXT :: FunPtr (GLuint -> GLuint -> Ptr GLchar -> IO ())
+ptr_glBindFragDataLocationEXT = unsafePerformIO $ getCommand "glBindFragDataLocationEXT"
+
+-- glBindFragDataLocationIndexed -----------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glBindFragDataLocationIndexed.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glBindFragDataLocationIndexed.xhtml OpenGL 4.x>.
+glBindFragDataLocationIndexed
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLuint -- ^ @colorNumber@.
+  -> GLuint -- ^ @index@.
+  -> Ptr GLchar -- ^ @name@.
+  -> m ()
+glBindFragDataLocationIndexed v1 v2 v3 v4 = liftIO $ dyn27 ptr_glBindFragDataLocationIndexed v1 v2 v3 v4
+
+{-# NOINLINE ptr_glBindFragDataLocationIndexed #-}
+ptr_glBindFragDataLocationIndexed :: FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLchar -> IO ())
+ptr_glBindFragDataLocationIndexed = unsafePerformIO $ getCommand "glBindFragDataLocationIndexed"
+
+-- glBindFragDataLocationIndexedEXT --------------------------------------------
+
+-- | This command is an alias for 'glBindFragDataLocationIndexed'.
+glBindFragDataLocationIndexedEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLuint -- ^ @colorNumber@.
+  -> GLuint -- ^ @index@.
+  -> Ptr GLchar -- ^ @name@.
+  -> m ()
+glBindFragDataLocationIndexedEXT v1 v2 v3 v4 = liftIO $ dyn27 ptr_glBindFragDataLocationIndexedEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glBindFragDataLocationIndexedEXT #-}
+ptr_glBindFragDataLocationIndexedEXT :: FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLchar -> IO ())
+ptr_glBindFragDataLocationIndexedEXT = unsafePerformIO $ getCommand "glBindFragDataLocationIndexedEXT"
+
+-- glBindFragmentShaderATI -----------------------------------------------------
+
+glBindFragmentShaderATI
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> m ()
+glBindFragmentShaderATI v1 = liftIO $ dyn3 ptr_glBindFragmentShaderATI v1
+
+{-# NOINLINE ptr_glBindFragmentShaderATI #-}
+ptr_glBindFragmentShaderATI :: FunPtr (GLuint -> IO ())
+ptr_glBindFragmentShaderATI = unsafePerformIO $ getCommand "glBindFragmentShaderATI"
+
+-- glBindFramebuffer -----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glBindFramebuffer.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glBindFramebuffer.xhtml OpenGL 4.x>.
+glBindFramebuffer
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [FramebufferTarget](Graphics-GL-Groups.html#FramebufferTarget).
+  -> GLuint -- ^ @framebuffer@.
+  -> m ()
+glBindFramebuffer v1 v2 = liftIO $ dyn19 ptr_glBindFramebuffer v1 v2
+
+{-# NOINLINE ptr_glBindFramebuffer #-}
+ptr_glBindFramebuffer :: FunPtr (GLenum -> GLuint -> IO ())
+ptr_glBindFramebuffer = unsafePerformIO $ getCommand "glBindFramebuffer"
+
+-- glBindFramebufferEXT --------------------------------------------------------
+
+glBindFramebufferEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [FramebufferTarget](Graphics-GL-Groups.html#FramebufferTarget).
+  -> GLuint -- ^ @framebuffer@.
+  -> m ()
+glBindFramebufferEXT v1 v2 = liftIO $ dyn19 ptr_glBindFramebufferEXT v1 v2
+
+{-# NOINLINE ptr_glBindFramebufferEXT #-}
+ptr_glBindFramebufferEXT :: FunPtr (GLenum -> GLuint -> IO ())
+ptr_glBindFramebufferEXT = unsafePerformIO $ getCommand "glBindFramebufferEXT"
+
+-- glBindFramebufferOES --------------------------------------------------------
+
+glBindFramebufferOES
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [FramebufferTarget](Graphics-GL-Groups.html#FramebufferTarget).
+  -> GLuint -- ^ @framebuffer@.
+  -> m ()
+glBindFramebufferOES v1 v2 = liftIO $ dyn19 ptr_glBindFramebufferOES v1 v2
+
+{-# NOINLINE ptr_glBindFramebufferOES #-}
+ptr_glBindFramebufferOES :: FunPtr (GLenum -> GLuint -> IO ())
+ptr_glBindFramebufferOES = unsafePerformIO $ getCommand "glBindFramebufferOES"
+
+-- glBindImageTexture ----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glBindImageTexture.xhtml OpenGL 4.x>.
+glBindImageTexture
+  :: MonadIO m
+  => GLuint -- ^ @unit@.
+  -> GLuint -- ^ @texture@.
+  -> GLint -- ^ @level@.
+  -> GLboolean -- ^ @layered@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> GLint -- ^ @layer@.
+  -> GLenum -- ^ @access@ of type [BufferAccessARB](Graphics-GL-Groups.html#BufferAccessARB).
+  -> GLenum -- ^ @format@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> m ()
+glBindImageTexture v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn28 ptr_glBindImageTexture v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glBindImageTexture #-}
+ptr_glBindImageTexture :: FunPtr (GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLenum -> IO ())
+ptr_glBindImageTexture = unsafePerformIO $ getCommand "glBindImageTexture"
+
+-- glBindImageTextureEXT -------------------------------------------------------
+
+glBindImageTextureEXT
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLuint -- ^ @texture@.
+  -> GLint -- ^ @level@.
+  -> GLboolean -- ^ @layered@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> GLint -- ^ @layer@.
+  -> GLenum -- ^ @access@ of type [BufferAccessARB](Graphics-GL-Groups.html#BufferAccessARB).
+  -> GLint -- ^ @format@.
+  -> m ()
+glBindImageTextureEXT v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn29 ptr_glBindImageTextureEXT v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glBindImageTextureEXT #-}
+ptr_glBindImageTextureEXT :: FunPtr (GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLint -> IO ())
+ptr_glBindImageTextureEXT = unsafePerformIO $ getCommand "glBindImageTextureEXT"
+
+-- glBindImageTextures ---------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glBindImageTextures.xhtml OpenGL 4.x>.
+glBindImageTextures
+  :: MonadIO m
+  => GLuint -- ^ @first@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLuint -- ^ @textures@ pointing to @count@ elements of type @GLuint@.
+  -> m ()
+glBindImageTextures v1 v2 v3 = liftIO $ dyn30 ptr_glBindImageTextures v1 v2 v3
+
+{-# NOINLINE ptr_glBindImageTextures #-}
+ptr_glBindImageTextures :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> IO ())
+ptr_glBindImageTextures = unsafePerformIO $ getCommand "glBindImageTextures"
+
+-- glBindLightParameterEXT -----------------------------------------------------
+
+glBindLightParameterEXT
+  :: MonadIO m
+  => GLenum -- ^ @light@ of type [LightName](Graphics-GL-Groups.html#LightName).
+  -> GLenum -- ^ @value@ of type [LightParameter](Graphics-GL-Groups.html#LightParameter).
+  -> m GLuint
+glBindLightParameterEXT v1 v2 = liftIO $ dyn31 ptr_glBindLightParameterEXT v1 v2
+
+{-# NOINLINE ptr_glBindLightParameterEXT #-}
+ptr_glBindLightParameterEXT :: FunPtr (GLenum -> GLenum -> IO GLuint)
+ptr_glBindLightParameterEXT = unsafePerformIO $ getCommand "glBindLightParameterEXT"
+
+-- glBindMaterialParameterEXT --------------------------------------------------
+
+glBindMaterialParameterEXT
+  :: MonadIO m
+  => GLenum -- ^ @face@ of type [MaterialFace](Graphics-GL-Groups.html#MaterialFace).
+  -> GLenum -- ^ @value@ of type [MaterialParameter](Graphics-GL-Groups.html#MaterialParameter).
+  -> m GLuint
+glBindMaterialParameterEXT v1 v2 = liftIO $ dyn31 ptr_glBindMaterialParameterEXT v1 v2
+
+{-# NOINLINE ptr_glBindMaterialParameterEXT #-}
+ptr_glBindMaterialParameterEXT :: FunPtr (GLenum -> GLenum -> IO GLuint)
+ptr_glBindMaterialParameterEXT = unsafePerformIO $ getCommand "glBindMaterialParameterEXT"
+
+-- glBindMultiTextureEXT -------------------------------------------------------
+
+glBindMultiTextureEXT
+  :: MonadIO m
+  => GLenum -- ^ @texunit@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLuint -- ^ @texture@ of type @Texture@.
+  -> m ()
+glBindMultiTextureEXT v1 v2 v3 = liftIO $ dyn32 ptr_glBindMultiTextureEXT v1 v2 v3
+
+{-# NOINLINE ptr_glBindMultiTextureEXT #-}
+ptr_glBindMultiTextureEXT :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
+ptr_glBindMultiTextureEXT = unsafePerformIO $ getCommand "glBindMultiTextureEXT"
+
+-- glBindParameterEXT ----------------------------------------------------------
+
+glBindParameterEXT
+  :: MonadIO m
+  => GLenum -- ^ @value@ of type [VertexShaderParameterEXT](Graphics-GL-Groups.html#VertexShaderParameterEXT).
+  -> m GLuint
+glBindParameterEXT v1 = liftIO $ dyn33 ptr_glBindParameterEXT v1
+
+{-# NOINLINE ptr_glBindParameterEXT #-}
+ptr_glBindParameterEXT :: FunPtr (GLenum -> IO GLuint)
+ptr_glBindParameterEXT = unsafePerformIO $ getCommand "glBindParameterEXT"
+
+-- glBindProgramARB ------------------------------------------------------------
+
+glBindProgramARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
+  -> GLuint -- ^ @program@.
+  -> m ()
+glBindProgramARB v1 v2 = liftIO $ dyn19 ptr_glBindProgramARB v1 v2
+
+{-# NOINLINE ptr_glBindProgramARB #-}
+ptr_glBindProgramARB :: FunPtr (GLenum -> GLuint -> IO ())
+ptr_glBindProgramARB = unsafePerformIO $ getCommand "glBindProgramARB"
+
+-- glBindProgramNV -------------------------------------------------------------
+
+-- | This command is an alias for 'glBindProgramARB'.
+glBindProgramNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [VertexAttribEnumNV](Graphics-GL-Groups.html#VertexAttribEnumNV).
+  -> GLuint -- ^ @id@.
+  -> m ()
+glBindProgramNV v1 v2 = liftIO $ dyn19 ptr_glBindProgramNV v1 v2
+
+{-# NOINLINE ptr_glBindProgramNV #-}
+ptr_glBindProgramNV :: FunPtr (GLenum -> GLuint -> IO ())
+ptr_glBindProgramNV = unsafePerformIO $ getCommand "glBindProgramNV"
+
+-- glBindProgramPipeline -------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glBindProgramPipeline.xhtml OpenGL 4.x>.
+glBindProgramPipeline
+  :: MonadIO m
+  => GLuint -- ^ @pipeline@.
+  -> m ()
+glBindProgramPipeline v1 = liftIO $ dyn3 ptr_glBindProgramPipeline v1
+
+{-# NOINLINE ptr_glBindProgramPipeline #-}
+ptr_glBindProgramPipeline :: FunPtr (GLuint -> IO ())
+ptr_glBindProgramPipeline = unsafePerformIO $ getCommand "glBindProgramPipeline"
+
+-- glBindProgramPipelineEXT ----------------------------------------------------
+
+glBindProgramPipelineEXT
+  :: MonadIO m
+  => GLuint -- ^ @pipeline@.
+  -> m ()
+glBindProgramPipelineEXT v1 = liftIO $ dyn3 ptr_glBindProgramPipelineEXT v1
+
+{-# NOINLINE ptr_glBindProgramPipelineEXT #-}
+ptr_glBindProgramPipelineEXT :: FunPtr (GLuint -> IO ())
+ptr_glBindProgramPipelineEXT = unsafePerformIO $ getCommand "glBindProgramPipelineEXT"
+
+-- glBindRenderbuffer ----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glBindRenderbuffer.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glBindRenderbuffer.xhtml OpenGL 4.x>.
+glBindRenderbuffer
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [RenderbufferTarget](Graphics-GL-Groups.html#RenderbufferTarget).
+  -> GLuint -- ^ @renderbuffer@.
+  -> m ()
+glBindRenderbuffer v1 v2 = liftIO $ dyn19 ptr_glBindRenderbuffer v1 v2
+
+{-# NOINLINE ptr_glBindRenderbuffer #-}
+ptr_glBindRenderbuffer :: FunPtr (GLenum -> GLuint -> IO ())
+ptr_glBindRenderbuffer = unsafePerformIO $ getCommand "glBindRenderbuffer"
+
+-- glBindRenderbufferEXT -------------------------------------------------------
+
+glBindRenderbufferEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [RenderbufferTarget](Graphics-GL-Groups.html#RenderbufferTarget).
+  -> GLuint -- ^ @renderbuffer@.
+  -> m ()
+glBindRenderbufferEXT v1 v2 = liftIO $ dyn19 ptr_glBindRenderbufferEXT v1 v2
+
+{-# NOINLINE ptr_glBindRenderbufferEXT #-}
+ptr_glBindRenderbufferEXT :: FunPtr (GLenum -> GLuint -> IO ())
+ptr_glBindRenderbufferEXT = unsafePerformIO $ getCommand "glBindRenderbufferEXT"
+
+-- glBindRenderbufferOES -------------------------------------------------------
+
+glBindRenderbufferOES
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [RenderbufferTarget](Graphics-GL-Groups.html#RenderbufferTarget).
+  -> GLuint -- ^ @renderbuffer@.
+  -> m ()
+glBindRenderbufferOES v1 v2 = liftIO $ dyn19 ptr_glBindRenderbufferOES v1 v2
+
+{-# NOINLINE ptr_glBindRenderbufferOES #-}
+ptr_glBindRenderbufferOES :: FunPtr (GLenum -> GLuint -> IO ())
+ptr_glBindRenderbufferOES = unsafePerformIO $ getCommand "glBindRenderbufferOES"
+
+-- glBindSampler ---------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glBindSampler.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glBindSampler.xhtml OpenGL 4.x>.
+glBindSampler
+  :: MonadIO m
+  => GLuint -- ^ @unit@.
+  -> GLuint -- ^ @sampler@.
+  -> m ()
+glBindSampler v1 v2 = liftIO $ dyn4 ptr_glBindSampler v1 v2
+
+{-# NOINLINE ptr_glBindSampler #-}
+ptr_glBindSampler :: FunPtr (GLuint -> GLuint -> IO ())
+ptr_glBindSampler = unsafePerformIO $ getCommand "glBindSampler"
+
+-- glBindSamplers --------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glBindSamplers.xhtml OpenGL 4.x>.
+glBindSamplers
+  :: MonadIO m
+  => GLuint -- ^ @first@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLuint -- ^ @samplers@ pointing to @count@ elements of type @GLuint@.
+  -> m ()
+glBindSamplers v1 v2 v3 = liftIO $ dyn30 ptr_glBindSamplers v1 v2 v3
+
+{-# NOINLINE ptr_glBindSamplers #-}
+ptr_glBindSamplers :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> IO ())
+ptr_glBindSamplers = unsafePerformIO $ getCommand "glBindSamplers"
+
+-- glBindShadingRateImageNV ----------------------------------------------------
+
+glBindShadingRateImageNV
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> m ()
+glBindShadingRateImageNV v1 = liftIO $ dyn3 ptr_glBindShadingRateImageNV v1
+
+{-# NOINLINE ptr_glBindShadingRateImageNV #-}
+ptr_glBindShadingRateImageNV :: FunPtr (GLuint -> IO ())
+ptr_glBindShadingRateImageNV = unsafePerformIO $ getCommand "glBindShadingRateImageNV"
+
+-- glBindTexGenParameterEXT ----------------------------------------------------
+
+glBindTexGenParameterEXT
+  :: MonadIO m
+  => GLenum -- ^ @unit@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @coord@ of type [TextureCoordName](Graphics-GL-Groups.html#TextureCoordName).
+  -> GLenum -- ^ @value@ of type [TextureGenParameter](Graphics-GL-Groups.html#TextureGenParameter).
+  -> m GLuint
+glBindTexGenParameterEXT v1 v2 v3 = liftIO $ dyn34 ptr_glBindTexGenParameterEXT v1 v2 v3
+
+{-# NOINLINE ptr_glBindTexGenParameterEXT #-}
+ptr_glBindTexGenParameterEXT :: FunPtr (GLenum -> GLenum -> GLenum -> IO GLuint)
+ptr_glBindTexGenParameterEXT = unsafePerformIO $ getCommand "glBindTexGenParameterEXT"
+
+-- glBindTexture ---------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glBindTexture.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glBindTexture.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glBindTexture.xhtml OpenGL 4.x>.
+glBindTexture
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLuint -- ^ @texture@ of type @Texture@.
+  -> m ()
+glBindTexture v1 v2 = liftIO $ dyn19 ptr_glBindTexture v1 v2
+
+{-# NOINLINE ptr_glBindTexture #-}
+ptr_glBindTexture :: FunPtr (GLenum -> GLuint -> IO ())
+ptr_glBindTexture = unsafePerformIO $ getCommand "glBindTexture"
+
+-- glBindTextureEXT ------------------------------------------------------------
+
+-- | This command is an alias for 'glBindTexture'.
+glBindTextureEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLuint -- ^ @texture@ of type @Texture@.
+  -> m ()
+glBindTextureEXT v1 v2 = liftIO $ dyn19 ptr_glBindTextureEXT v1 v2
+
+{-# NOINLINE ptr_glBindTextureEXT #-}
+ptr_glBindTextureEXT :: FunPtr (GLenum -> GLuint -> IO ())
+ptr_glBindTextureEXT = unsafePerformIO $ getCommand "glBindTextureEXT"
+
+-- glBindTextureUnit -----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glBindTextureUnit.xhtml OpenGL 4.x>.
+glBindTextureUnit
+  :: MonadIO m
+  => GLuint -- ^ @unit@.
+  -> GLuint -- ^ @texture@.
+  -> m ()
+glBindTextureUnit v1 v2 = liftIO $ dyn4 ptr_glBindTextureUnit v1 v2
+
+{-# NOINLINE ptr_glBindTextureUnit #-}
+ptr_glBindTextureUnit :: FunPtr (GLuint -> GLuint -> IO ())
+ptr_glBindTextureUnit = unsafePerformIO $ getCommand "glBindTextureUnit"
+
+-- glBindTextureUnitParameterEXT -----------------------------------------------
+
+glBindTextureUnitParameterEXT
+  :: MonadIO m
+  => GLenum -- ^ @unit@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @value@ of type [VertexShaderTextureUnitParameter](Graphics-GL-Groups.html#VertexShaderTextureUnitParameter).
+  -> m GLuint
+glBindTextureUnitParameterEXT v1 v2 = liftIO $ dyn31 ptr_glBindTextureUnitParameterEXT v1 v2
+
+{-# NOINLINE ptr_glBindTextureUnitParameterEXT #-}
+ptr_glBindTextureUnitParameterEXT :: FunPtr (GLenum -> GLenum -> IO GLuint)
+ptr_glBindTextureUnitParameterEXT = unsafePerformIO $ getCommand "glBindTextureUnitParameterEXT"
+
+-- glBindTextures --------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glBindTextures.xhtml OpenGL 4.x>.
+glBindTextures
+  :: MonadIO m
+  => GLuint -- ^ @first@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLuint -- ^ @textures@ pointing to @count@ elements of type @GLuint@.
+  -> m ()
+glBindTextures v1 v2 v3 = liftIO $ dyn30 ptr_glBindTextures v1 v2 v3
+
+{-# NOINLINE ptr_glBindTextures #-}
+ptr_glBindTextures :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> IO ())
+ptr_glBindTextures = unsafePerformIO $ getCommand "glBindTextures"
+
+-- glBindTransformFeedback -----------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glBindTransformFeedback.xhtml OpenGL 4.x>.
+glBindTransformFeedback
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [BindTransformFeedbackTarget](Graphics-GL-Groups.html#BindTransformFeedbackTarget).
+  -> GLuint -- ^ @id@.
+  -> m ()
+glBindTransformFeedback v1 v2 = liftIO $ dyn19 ptr_glBindTransformFeedback v1 v2
+
+{-# NOINLINE ptr_glBindTransformFeedback #-}
+ptr_glBindTransformFeedback :: FunPtr (GLenum -> GLuint -> IO ())
+ptr_glBindTransformFeedback = unsafePerformIO $ getCommand "glBindTransformFeedback"
+
+-- glBindTransformFeedbackNV ---------------------------------------------------
+
+glBindTransformFeedbackNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
+  -> GLuint -- ^ @id@.
+  -> m ()
+glBindTransformFeedbackNV v1 v2 = liftIO $ dyn19 ptr_glBindTransformFeedbackNV v1 v2
+
+{-# NOINLINE ptr_glBindTransformFeedbackNV #-}
+ptr_glBindTransformFeedbackNV :: FunPtr (GLenum -> GLuint -> IO ())
+ptr_glBindTransformFeedbackNV = unsafePerformIO $ getCommand "glBindTransformFeedbackNV"
+
+-- glBindVertexArray -----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glBindVertexArray.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glBindVertexArray.xhtml OpenGL 4.x>.
+glBindVertexArray
+  :: MonadIO m
+  => GLuint -- ^ @array@.
+  -> m ()
+glBindVertexArray v1 = liftIO $ dyn3 ptr_glBindVertexArray v1
+
+{-# NOINLINE ptr_glBindVertexArray #-}
+ptr_glBindVertexArray :: FunPtr (GLuint -> IO ())
+ptr_glBindVertexArray = unsafePerformIO $ getCommand "glBindVertexArray"
+
+-- glBindVertexArrayAPPLE ------------------------------------------------------
+
+glBindVertexArrayAPPLE
+  :: MonadIO m
+  => GLuint -- ^ @array@.
+  -> m ()
+glBindVertexArrayAPPLE v1 = liftIO $ dyn3 ptr_glBindVertexArrayAPPLE v1
+
+{-# NOINLINE ptr_glBindVertexArrayAPPLE #-}
+ptr_glBindVertexArrayAPPLE :: FunPtr (GLuint -> IO ())
+ptr_glBindVertexArrayAPPLE = unsafePerformIO $ getCommand "glBindVertexArrayAPPLE"
+
+-- glBindVertexArrayOES --------------------------------------------------------
+
+-- | This command is an alias for 'glBindVertexArray'.
+glBindVertexArrayOES
+  :: MonadIO m
+  => GLuint -- ^ @array@.
+  -> m ()
+glBindVertexArrayOES v1 = liftIO $ dyn3 ptr_glBindVertexArrayOES v1
+
+{-# NOINLINE ptr_glBindVertexArrayOES #-}
+ptr_glBindVertexArrayOES :: FunPtr (GLuint -> IO ())
+ptr_glBindVertexArrayOES = unsafePerformIO $ getCommand "glBindVertexArrayOES"
+
+-- glBindVertexBuffer ----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glBindVertexBuffer.xhtml OpenGL 4.x>.
+glBindVertexBuffer
+  :: MonadIO m
+  => GLuint -- ^ @bindingindex@.
+  -> GLuint -- ^ @buffer@.
+  -> GLintptr -- ^ @offset@ of type @BufferOffset@.
+  -> GLsizei -- ^ @stride@.
+  -> m ()
+glBindVertexBuffer v1 v2 v3 v4 = liftIO $ dyn35 ptr_glBindVertexBuffer v1 v2 v3 v4
+
+{-# NOINLINE ptr_glBindVertexBuffer #-}
+ptr_glBindVertexBuffer :: FunPtr (GLuint -> GLuint -> GLintptr -> GLsizei -> IO ())
+ptr_glBindVertexBuffer = unsafePerformIO $ getCommand "glBindVertexBuffer"
+
+-- glBindVertexBuffers ---------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glBindVertexBuffers.xhtml OpenGL 4.x>.
+glBindVertexBuffers
+  :: MonadIO m
+  => GLuint -- ^ @first@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLuint -- ^ @buffers@ pointing to @count@ elements of type @GLuint@.
+  -> Ptr GLintptr -- ^ @offsets@ pointing to @count@ elements of type @GLintptr@.
+  -> Ptr GLsizei -- ^ @strides@ pointing to @count@ elements of type @GLsizei@.
+  -> m ()
+glBindVertexBuffers v1 v2 v3 v4 v5 = liftIO $ dyn36 ptr_glBindVertexBuffers v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glBindVertexBuffers #-}
+ptr_glBindVertexBuffers :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> IO ())
+ptr_glBindVertexBuffers = unsafePerformIO $ getCommand "glBindVertexBuffers"
+
diff --git a/src/Graphics/GL/Functions/F02.hs b/src/Graphics/GL/Functions/F02.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Functions/F02.hs
@@ -0,0 +1,1619 @@
+{-# OPTIONS_HADDOCK hide #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Functions.F02
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- Raw functions from the
+-- <http://www.opengl.org/registry/ OpenGL registry>.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Functions.F02 (
+  glBindVertexShaderEXT,
+  glBindVideoCaptureStreamBufferNV,
+  glBindVideoCaptureStreamTextureNV,
+  glBinormal3bEXT,
+  glBinormal3bvEXT,
+  glBinormal3dEXT,
+  glBinormal3dvEXT,
+  glBinormal3fEXT,
+  glBinormal3fvEXT,
+  glBinormal3iEXT,
+  glBinormal3ivEXT,
+  glBinormal3sEXT,
+  glBinormal3svEXT,
+  glBinormalPointerEXT,
+  glBitmap,
+  glBitmapxOES,
+  glBlendBarrier,
+  glBlendBarrierKHR,
+  glBlendBarrierNV,
+  glBlendColor,
+  glBlendColorEXT,
+  glBlendColorxOES,
+  glBlendEquation,
+  glBlendEquationEXT,
+  glBlendEquationIndexedAMD,
+  glBlendEquationOES,
+  glBlendEquationSeparate,
+  glBlendEquationSeparateEXT,
+  glBlendEquationSeparateIndexedAMD,
+  glBlendEquationSeparateOES,
+  glBlendEquationSeparatei,
+  glBlendEquationSeparateiARB,
+  glBlendEquationSeparateiEXT,
+  glBlendEquationSeparateiOES,
+  glBlendEquationi,
+  glBlendEquationiARB,
+  glBlendEquationiEXT,
+  glBlendEquationiOES,
+  glBlendFunc,
+  glBlendFuncIndexedAMD,
+  glBlendFuncSeparate,
+  glBlendFuncSeparateEXT,
+  glBlendFuncSeparateINGR,
+  glBlendFuncSeparateIndexedAMD,
+  glBlendFuncSeparateOES,
+  glBlendFuncSeparatei,
+  glBlendFuncSeparateiARB,
+  glBlendFuncSeparateiEXT,
+  glBlendFuncSeparateiOES,
+  glBlendFunci,
+  glBlendFunciARB,
+  glBlendFunciEXT,
+  glBlendFunciOES,
+  glBlendParameteriNV,
+  glBlitFramebuffer,
+  glBlitFramebufferANGLE,
+  glBlitFramebufferEXT,
+  glBlitFramebufferNV,
+  glBlitNamedFramebuffer,
+  glBufferAddressRangeNV,
+  glBufferAttachMemoryNV,
+  glBufferData,
+  glBufferDataARB,
+  glBufferPageCommitmentARB,
+  glBufferParameteriAPPLE,
+  glBufferStorage,
+  glBufferStorageEXT,
+  glBufferStorageExternalEXT,
+  glBufferStorageMemEXT,
+  glBufferSubData,
+  glBufferSubDataARB,
+  glCallCommandListNV,
+  glCallList,
+  glCallLists,
+  glCheckFramebufferStatus,
+  glCheckFramebufferStatusEXT,
+  glCheckFramebufferStatusOES,
+  glCheckNamedFramebufferStatus,
+  glCheckNamedFramebufferStatusEXT,
+  glClampColor,
+  glClampColorARB,
+  glClear,
+  glClearAccum,
+  glClearAccumxOES,
+  glClearBufferData,
+  glClearBufferSubData,
+  glClearBufferfi,
+  glClearBufferfv,
+  glClearBufferiv,
+  glClearBufferuiv,
+  glClearColor,
+  glClearColorIiEXT,
+  glClearColorIuiEXT,
+  glClearColorx,
+  glClearColorxOES,
+  glClearDepth,
+  glClearDepthdNV,
+  glClearDepthf,
+  glClearDepthfOES,
+  glClearDepthx
+) where
+
+import Control.Monad.IO.Class ( MonadIO(..) )
+import Foreign.Ptr
+import Graphics.GL.Foreign
+import Graphics.GL.Types
+import System.IO.Unsafe ( unsafePerformIO )
+
+-- glBindVertexShaderEXT -------------------------------------------------------
+
+glBindVertexShaderEXT
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> m ()
+glBindVertexShaderEXT v1 = liftIO $ dyn3 ptr_glBindVertexShaderEXT v1
+
+{-# NOINLINE ptr_glBindVertexShaderEXT #-}
+ptr_glBindVertexShaderEXT :: FunPtr (GLuint -> IO ())
+ptr_glBindVertexShaderEXT = unsafePerformIO $ getCommand "glBindVertexShaderEXT"
+
+-- glBindVideoCaptureStreamBufferNV --------------------------------------------
+
+glBindVideoCaptureStreamBufferNV
+  :: MonadIO m
+  => GLuint -- ^ @video_capture_slot@.
+  -> GLuint -- ^ @stream@.
+  -> GLenum -- ^ @frame_region@.
+  -> GLintptrARB -- ^ @offset@ of type @BufferOffsetARB@.
+  -> m ()
+glBindVideoCaptureStreamBufferNV v1 v2 v3 v4 = liftIO $ dyn37 ptr_glBindVideoCaptureStreamBufferNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glBindVideoCaptureStreamBufferNV #-}
+ptr_glBindVideoCaptureStreamBufferNV :: FunPtr (GLuint -> GLuint -> GLenum -> GLintptrARB -> IO ())
+ptr_glBindVideoCaptureStreamBufferNV = unsafePerformIO $ getCommand "glBindVideoCaptureStreamBufferNV"
+
+-- glBindVideoCaptureStreamTextureNV -------------------------------------------
+
+glBindVideoCaptureStreamTextureNV
+  :: MonadIO m
+  => GLuint -- ^ @video_capture_slot@.
+  -> GLuint -- ^ @stream@.
+  -> GLenum -- ^ @frame_region@.
+  -> GLenum -- ^ @target@.
+  -> GLuint -- ^ @texture@.
+  -> m ()
+glBindVideoCaptureStreamTextureNV v1 v2 v3 v4 v5 = liftIO $ dyn38 ptr_glBindVideoCaptureStreamTextureNV v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glBindVideoCaptureStreamTextureNV #-}
+ptr_glBindVideoCaptureStreamTextureNV :: FunPtr (GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> IO ())
+ptr_glBindVideoCaptureStreamTextureNV = unsafePerformIO $ getCommand "glBindVideoCaptureStreamTextureNV"
+
+-- glBinormal3bEXT -------------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glBinormal3bvEXT'.
+glBinormal3bEXT
+  :: MonadIO m
+  => GLbyte -- ^ @bx@.
+  -> GLbyte -- ^ @by@.
+  -> GLbyte -- ^ @bz@.
+  -> m ()
+glBinormal3bEXT v1 v2 v3 = liftIO $ dyn39 ptr_glBinormal3bEXT v1 v2 v3
+
+{-# NOINLINE ptr_glBinormal3bEXT #-}
+ptr_glBinormal3bEXT :: FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
+ptr_glBinormal3bEXT = unsafePerformIO $ getCommand "glBinormal3bEXT"
+
+-- glBinormal3bvEXT ------------------------------------------------------------
+
+glBinormal3bvEXT
+  :: MonadIO m
+  => Ptr GLbyte -- ^ @v@ pointing to @3@ elements of type @GLbyte@.
+  -> m ()
+glBinormal3bvEXT v1 = liftIO $ dyn40 ptr_glBinormal3bvEXT v1
+
+{-# NOINLINE ptr_glBinormal3bvEXT #-}
+ptr_glBinormal3bvEXT :: FunPtr (Ptr GLbyte -> IO ())
+ptr_glBinormal3bvEXT = unsafePerformIO $ getCommand "glBinormal3bvEXT"
+
+-- glBinormal3dEXT -------------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glBinormal3dvEXT'.
+glBinormal3dEXT
+  :: MonadIO m
+  => GLdouble -- ^ @bx@ of type @CoordD@.
+  -> GLdouble -- ^ @by@ of type @CoordD@.
+  -> GLdouble -- ^ @bz@ of type @CoordD@.
+  -> m ()
+glBinormal3dEXT v1 v2 v3 = liftIO $ dyn41 ptr_glBinormal3dEXT v1 v2 v3
+
+{-# NOINLINE ptr_glBinormal3dEXT #-}
+ptr_glBinormal3dEXT :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
+ptr_glBinormal3dEXT = unsafePerformIO $ getCommand "glBinormal3dEXT"
+
+-- glBinormal3dvEXT ------------------------------------------------------------
+
+glBinormal3dvEXT
+  :: MonadIO m
+  => Ptr GLdouble -- ^ @v@ pointing to @3@ elements of type @CoordD@.
+  -> m ()
+glBinormal3dvEXT v1 = liftIO $ dyn42 ptr_glBinormal3dvEXT v1
+
+{-# NOINLINE ptr_glBinormal3dvEXT #-}
+ptr_glBinormal3dvEXT :: FunPtr (Ptr GLdouble -> IO ())
+ptr_glBinormal3dvEXT = unsafePerformIO $ getCommand "glBinormal3dvEXT"
+
+-- glBinormal3fEXT -------------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glBinormal3fvEXT'.
+glBinormal3fEXT
+  :: MonadIO m
+  => GLfloat -- ^ @bx@ of type @CoordF@.
+  -> GLfloat -- ^ @by@ of type @CoordF@.
+  -> GLfloat -- ^ @bz@ of type @CoordF@.
+  -> m ()
+glBinormal3fEXT v1 v2 v3 = liftIO $ dyn43 ptr_glBinormal3fEXT v1 v2 v3
+
+{-# NOINLINE ptr_glBinormal3fEXT #-}
+ptr_glBinormal3fEXT :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glBinormal3fEXT = unsafePerformIO $ getCommand "glBinormal3fEXT"
+
+-- glBinormal3fvEXT ------------------------------------------------------------
+
+glBinormal3fvEXT
+  :: MonadIO m
+  => Ptr GLfloat -- ^ @v@ pointing to @3@ elements of type @CoordF@.
+  -> m ()
+glBinormal3fvEXT v1 = liftIO $ dyn44 ptr_glBinormal3fvEXT v1
+
+{-# NOINLINE ptr_glBinormal3fvEXT #-}
+ptr_glBinormal3fvEXT :: FunPtr (Ptr GLfloat -> IO ())
+ptr_glBinormal3fvEXT = unsafePerformIO $ getCommand "glBinormal3fvEXT"
+
+-- glBinormal3iEXT -------------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glBinormal3ivEXT'.
+glBinormal3iEXT
+  :: MonadIO m
+  => GLint -- ^ @bx@.
+  -> GLint -- ^ @by@.
+  -> GLint -- ^ @bz@.
+  -> m ()
+glBinormal3iEXT v1 v2 v3 = liftIO $ dyn45 ptr_glBinormal3iEXT v1 v2 v3
+
+{-# NOINLINE ptr_glBinormal3iEXT #-}
+ptr_glBinormal3iEXT :: FunPtr (GLint -> GLint -> GLint -> IO ())
+ptr_glBinormal3iEXT = unsafePerformIO $ getCommand "glBinormal3iEXT"
+
+-- glBinormal3ivEXT ------------------------------------------------------------
+
+glBinormal3ivEXT
+  :: MonadIO m
+  => Ptr GLint -- ^ @v@ pointing to @3@ elements of type @GLint@.
+  -> m ()
+glBinormal3ivEXT v1 = liftIO $ dyn46 ptr_glBinormal3ivEXT v1
+
+{-# NOINLINE ptr_glBinormal3ivEXT #-}
+ptr_glBinormal3ivEXT :: FunPtr (Ptr GLint -> IO ())
+ptr_glBinormal3ivEXT = unsafePerformIO $ getCommand "glBinormal3ivEXT"
+
+-- glBinormal3sEXT -------------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glBinormal3svEXT'.
+glBinormal3sEXT
+  :: MonadIO m
+  => GLshort -- ^ @bx@.
+  -> GLshort -- ^ @by@.
+  -> GLshort -- ^ @bz@.
+  -> m ()
+glBinormal3sEXT v1 v2 v3 = liftIO $ dyn47 ptr_glBinormal3sEXT v1 v2 v3
+
+{-# NOINLINE ptr_glBinormal3sEXT #-}
+ptr_glBinormal3sEXT :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
+ptr_glBinormal3sEXT = unsafePerformIO $ getCommand "glBinormal3sEXT"
+
+-- glBinormal3svEXT ------------------------------------------------------------
+
+glBinormal3svEXT
+  :: MonadIO m
+  => Ptr GLshort -- ^ @v@ pointing to @3@ elements of type @GLshort@.
+  -> m ()
+glBinormal3svEXT v1 = liftIO $ dyn48 ptr_glBinormal3svEXT v1
+
+{-# NOINLINE ptr_glBinormal3svEXT #-}
+ptr_glBinormal3svEXT :: FunPtr (Ptr GLshort -> IO ())
+ptr_glBinormal3svEXT = unsafePerformIO $ getCommand "glBinormal3svEXT"
+
+-- glBinormalPointerEXT --------------------------------------------------------
+
+glBinormalPointerEXT
+  :: MonadIO m
+  => GLenum -- ^ @type@ of type [BinormalPointerTypeEXT](Graphics-GL-Groups.html#BinormalPointerTypeEXT).
+  -> GLsizei -- ^ @stride@.
+  -> Ptr a -- ^ @pointer@ pointing to @COMPSIZE(type,stride)@ elements of type @a@.
+  -> m ()
+glBinormalPointerEXT v1 v2 v3 = liftIO $ dyn49 ptr_glBinormalPointerEXT v1 v2 v3
+
+{-# NOINLINE ptr_glBinormalPointerEXT #-}
+ptr_glBinormalPointerEXT :: FunPtr (GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glBinormalPointerEXT = unsafePerformIO $ getCommand "glBinormalPointerEXT"
+
+-- glBitmap --------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glBitmap.xml OpenGL 2.x>.
+glBitmap
+  :: MonadIO m
+  => GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLfloat -- ^ @xorig@ of type @CoordF@.
+  -> GLfloat -- ^ @yorig@ of type @CoordF@.
+  -> GLfloat -- ^ @xmove@ of type @CoordF@.
+  -> GLfloat -- ^ @ymove@ of type @CoordF@.
+  -> Ptr GLubyte -- ^ @bitmap@ pointing to @COMPSIZE(width,height)@ elements of type @GLubyte@.
+  -> m ()
+glBitmap v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn50 ptr_glBitmap v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glBitmap #-}
+ptr_glBitmap :: FunPtr (GLsizei -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> Ptr GLubyte -> IO ())
+ptr_glBitmap = unsafePerformIO $ getCommand "glBitmap"
+
+-- glBitmapxOES ----------------------------------------------------------------
+
+glBitmapxOES
+  :: MonadIO m
+  => GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLfixed -- ^ @xorig@.
+  -> GLfixed -- ^ @yorig@.
+  -> GLfixed -- ^ @xmove@.
+  -> GLfixed -- ^ @ymove@.
+  -> Ptr GLubyte -- ^ @bitmap@ pointing to @COMPSIZE(width,height)@ elements of type @GLubyte@.
+  -> m ()
+glBitmapxOES v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn51 ptr_glBitmapxOES v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glBitmapxOES #-}
+ptr_glBitmapxOES :: FunPtr (GLsizei -> GLsizei -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> Ptr GLubyte -> IO ())
+ptr_glBitmapxOES = unsafePerformIO $ getCommand "glBitmapxOES"
+
+-- glBlendBarrier --------------------------------------------------------------
+
+glBlendBarrier
+  :: MonadIO m
+  => m ()
+glBlendBarrier = liftIO $ dyn11 ptr_glBlendBarrier
+
+{-# NOINLINE ptr_glBlendBarrier #-}
+ptr_glBlendBarrier :: FunPtr (IO ())
+ptr_glBlendBarrier = unsafePerformIO $ getCommand "glBlendBarrier"
+
+-- glBlendBarrierKHR -----------------------------------------------------------
+
+-- | This command is an alias for 'glBlendBarrier'.
+glBlendBarrierKHR
+  :: MonadIO m
+  => m ()
+glBlendBarrierKHR = liftIO $ dyn11 ptr_glBlendBarrierKHR
+
+{-# NOINLINE ptr_glBlendBarrierKHR #-}
+ptr_glBlendBarrierKHR :: FunPtr (IO ())
+ptr_glBlendBarrierKHR = unsafePerformIO $ getCommand "glBlendBarrierKHR"
+
+-- glBlendBarrierNV ------------------------------------------------------------
+
+-- | This command is an alias for 'glBlendBarrier'.
+glBlendBarrierNV
+  :: MonadIO m
+  => m ()
+glBlendBarrierNV = liftIO $ dyn11 ptr_glBlendBarrierNV
+
+{-# NOINLINE ptr_glBlendBarrierNV #-}
+ptr_glBlendBarrierNV :: FunPtr (IO ())
+ptr_glBlendBarrierNV = unsafePerformIO $ getCommand "glBlendBarrierNV"
+
+-- glBlendColor ----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glBlendColor.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glBlendColor.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glBlendColor.xhtml OpenGL 4.x>.
+glBlendColor
+  :: MonadIO m
+  => GLfloat -- ^ @red@ of type @ColorF@.
+  -> GLfloat -- ^ @green@ of type @ColorF@.
+  -> GLfloat -- ^ @blue@ of type @ColorF@.
+  -> GLfloat -- ^ @alpha@ of type @ColorF@.
+  -> m ()
+glBlendColor v1 v2 v3 v4 = liftIO $ dyn52 ptr_glBlendColor v1 v2 v3 v4
+
+{-# NOINLINE ptr_glBlendColor #-}
+ptr_glBlendColor :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glBlendColor = unsafePerformIO $ getCommand "glBlendColor"
+
+-- glBlendColorEXT -------------------------------------------------------------
+
+-- | This command is an alias for 'glBlendColor'.
+glBlendColorEXT
+  :: MonadIO m
+  => GLfloat -- ^ @red@ of type @ColorF@.
+  -> GLfloat -- ^ @green@ of type @ColorF@.
+  -> GLfloat -- ^ @blue@ of type @ColorF@.
+  -> GLfloat -- ^ @alpha@ of type @ColorF@.
+  -> m ()
+glBlendColorEXT v1 v2 v3 v4 = liftIO $ dyn52 ptr_glBlendColorEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glBlendColorEXT #-}
+ptr_glBlendColorEXT :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glBlendColorEXT = unsafePerformIO $ getCommand "glBlendColorEXT"
+
+-- glBlendColorxOES ------------------------------------------------------------
+
+glBlendColorxOES
+  :: MonadIO m
+  => GLfixed -- ^ @red@ of type @ClampedFixed@.
+  -> GLfixed -- ^ @green@ of type @ClampedFixed@.
+  -> GLfixed -- ^ @blue@ of type @ClampedFixed@.
+  -> GLfixed -- ^ @alpha@ of type @ClampedFixed@.
+  -> m ()
+glBlendColorxOES v1 v2 v3 v4 = liftIO $ dyn53 ptr_glBlendColorxOES v1 v2 v3 v4
+
+{-# NOINLINE ptr_glBlendColorxOES #-}
+ptr_glBlendColorxOES :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
+ptr_glBlendColorxOES = unsafePerformIO $ getCommand "glBlendColorxOES"
+
+-- glBlendEquation -------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glBlendEquation.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glBlendEquation.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glBlendEquation.xhtml OpenGL 4.x>.
+glBlendEquation
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [BlendEquationModeEXT](Graphics-GL-Groups.html#BlendEquationModeEXT).
+  -> m ()
+glBlendEquation v1 = liftIO $ dyn5 ptr_glBlendEquation v1
+
+{-# NOINLINE ptr_glBlendEquation #-}
+ptr_glBlendEquation :: FunPtr (GLenum -> IO ())
+ptr_glBlendEquation = unsafePerformIO $ getCommand "glBlendEquation"
+
+-- glBlendEquationEXT ----------------------------------------------------------
+
+-- | This command is an alias for 'glBlendEquation'.
+glBlendEquationEXT
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [BlendEquationModeEXT](Graphics-GL-Groups.html#BlendEquationModeEXT).
+  -> m ()
+glBlendEquationEXT v1 = liftIO $ dyn5 ptr_glBlendEquationEXT v1
+
+{-# NOINLINE ptr_glBlendEquationEXT #-}
+ptr_glBlendEquationEXT :: FunPtr (GLenum -> IO ())
+ptr_glBlendEquationEXT = unsafePerformIO $ getCommand "glBlendEquationEXT"
+
+-- glBlendEquationIndexedAMD ---------------------------------------------------
+
+-- | This command is an alias for 'glBlendEquationi'.
+glBlendEquationIndexedAMD
+  :: MonadIO m
+  => GLuint -- ^ @buf@.
+  -> GLenum -- ^ @mode@ of type [BlendEquationModeEXT](Graphics-GL-Groups.html#BlendEquationModeEXT).
+  -> m ()
+glBlendEquationIndexedAMD v1 v2 = liftIO $ dyn18 ptr_glBlendEquationIndexedAMD v1 v2
+
+{-# NOINLINE ptr_glBlendEquationIndexedAMD #-}
+ptr_glBlendEquationIndexedAMD :: FunPtr (GLuint -> GLenum -> IO ())
+ptr_glBlendEquationIndexedAMD = unsafePerformIO $ getCommand "glBlendEquationIndexedAMD"
+
+-- glBlendEquationOES ----------------------------------------------------------
+
+glBlendEquationOES
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [BlendEquationModeEXT](Graphics-GL-Groups.html#BlendEquationModeEXT).
+  -> m ()
+glBlendEquationOES v1 = liftIO $ dyn5 ptr_glBlendEquationOES v1
+
+{-# NOINLINE ptr_glBlendEquationOES #-}
+ptr_glBlendEquationOES :: FunPtr (GLenum -> IO ())
+ptr_glBlendEquationOES = unsafePerformIO $ getCommand "glBlendEquationOES"
+
+-- glBlendEquationSeparate -----------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glBlendEquationSeparate.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glBlendEquationSeparate.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glBlendEquationSeparate.xhtml OpenGL 4.x>.
+glBlendEquationSeparate
+  :: MonadIO m
+  => GLenum -- ^ @modeRGB@ of type [BlendEquationModeEXT](Graphics-GL-Groups.html#BlendEquationModeEXT).
+  -> GLenum -- ^ @modeAlpha@ of type [BlendEquationModeEXT](Graphics-GL-Groups.html#BlendEquationModeEXT).
+  -> m ()
+glBlendEquationSeparate v1 v2 = liftIO $ dyn54 ptr_glBlendEquationSeparate v1 v2
+
+{-# NOINLINE ptr_glBlendEquationSeparate #-}
+ptr_glBlendEquationSeparate :: FunPtr (GLenum -> GLenum -> IO ())
+ptr_glBlendEquationSeparate = unsafePerformIO $ getCommand "glBlendEquationSeparate"
+
+-- glBlendEquationSeparateEXT --------------------------------------------------
+
+-- | This command is an alias for 'glBlendEquationSeparate'.
+glBlendEquationSeparateEXT
+  :: MonadIO m
+  => GLenum -- ^ @modeRGB@ of type [BlendEquationModeEXT](Graphics-GL-Groups.html#BlendEquationModeEXT).
+  -> GLenum -- ^ @modeAlpha@ of type [BlendEquationModeEXT](Graphics-GL-Groups.html#BlendEquationModeEXT).
+  -> m ()
+glBlendEquationSeparateEXT v1 v2 = liftIO $ dyn54 ptr_glBlendEquationSeparateEXT v1 v2
+
+{-# NOINLINE ptr_glBlendEquationSeparateEXT #-}
+ptr_glBlendEquationSeparateEXT :: FunPtr (GLenum -> GLenum -> IO ())
+ptr_glBlendEquationSeparateEXT = unsafePerformIO $ getCommand "glBlendEquationSeparateEXT"
+
+-- glBlendEquationSeparateIndexedAMD -------------------------------------------
+
+-- | This command is an alias for 'glBlendEquationSeparatei'.
+glBlendEquationSeparateIndexedAMD
+  :: MonadIO m
+  => GLuint -- ^ @buf@.
+  -> GLenum -- ^ @modeRGB@ of type [BlendEquationModeEXT](Graphics-GL-Groups.html#BlendEquationModeEXT).
+  -> GLenum -- ^ @modeAlpha@ of type [BlendEquationModeEXT](Graphics-GL-Groups.html#BlendEquationModeEXT).
+  -> m ()
+glBlendEquationSeparateIndexedAMD v1 v2 v3 = liftIO $ dyn55 ptr_glBlendEquationSeparateIndexedAMD v1 v2 v3
+
+{-# NOINLINE ptr_glBlendEquationSeparateIndexedAMD #-}
+ptr_glBlendEquationSeparateIndexedAMD :: FunPtr (GLuint -> GLenum -> GLenum -> IO ())
+ptr_glBlendEquationSeparateIndexedAMD = unsafePerformIO $ getCommand "glBlendEquationSeparateIndexedAMD"
+
+-- glBlendEquationSeparateOES --------------------------------------------------
+
+glBlendEquationSeparateOES
+  :: MonadIO m
+  => GLenum -- ^ @modeRGB@ of type [BlendEquationModeEXT](Graphics-GL-Groups.html#BlendEquationModeEXT).
+  -> GLenum -- ^ @modeAlpha@ of type [BlendEquationModeEXT](Graphics-GL-Groups.html#BlendEquationModeEXT).
+  -> m ()
+glBlendEquationSeparateOES v1 v2 = liftIO $ dyn54 ptr_glBlendEquationSeparateOES v1 v2
+
+{-# NOINLINE ptr_glBlendEquationSeparateOES #-}
+ptr_glBlendEquationSeparateOES :: FunPtr (GLenum -> GLenum -> IO ())
+ptr_glBlendEquationSeparateOES = unsafePerformIO $ getCommand "glBlendEquationSeparateOES"
+
+-- glBlendEquationSeparatei ----------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glBlendEquationSeparate.xhtml OpenGL 4.x>.
+glBlendEquationSeparatei
+  :: MonadIO m
+  => GLuint -- ^ @buf@.
+  -> GLenum -- ^ @modeRGB@ of type [BlendEquationModeEXT](Graphics-GL-Groups.html#BlendEquationModeEXT).
+  -> GLenum -- ^ @modeAlpha@ of type [BlendEquationModeEXT](Graphics-GL-Groups.html#BlendEquationModeEXT).
+  -> m ()
+glBlendEquationSeparatei v1 v2 v3 = liftIO $ dyn55 ptr_glBlendEquationSeparatei v1 v2 v3
+
+{-# NOINLINE ptr_glBlendEquationSeparatei #-}
+ptr_glBlendEquationSeparatei :: FunPtr (GLuint -> GLenum -> GLenum -> IO ())
+ptr_glBlendEquationSeparatei = unsafePerformIO $ getCommand "glBlendEquationSeparatei"
+
+-- glBlendEquationSeparateiARB -------------------------------------------------
+
+-- | This command is an alias for 'glBlendEquationSeparatei'.
+glBlendEquationSeparateiARB
+  :: MonadIO m
+  => GLuint -- ^ @buf@.
+  -> GLenum -- ^ @modeRGB@ of type [BlendEquationModeEXT](Graphics-GL-Groups.html#BlendEquationModeEXT).
+  -> GLenum -- ^ @modeAlpha@ of type [BlendEquationModeEXT](Graphics-GL-Groups.html#BlendEquationModeEXT).
+  -> m ()
+glBlendEquationSeparateiARB v1 v2 v3 = liftIO $ dyn55 ptr_glBlendEquationSeparateiARB v1 v2 v3
+
+{-# NOINLINE ptr_glBlendEquationSeparateiARB #-}
+ptr_glBlendEquationSeparateiARB :: FunPtr (GLuint -> GLenum -> GLenum -> IO ())
+ptr_glBlendEquationSeparateiARB = unsafePerformIO $ getCommand "glBlendEquationSeparateiARB"
+
+-- glBlendEquationSeparateiEXT -------------------------------------------------
+
+-- | This command is an alias for 'glBlendEquationSeparatei'.
+glBlendEquationSeparateiEXT
+  :: MonadIO m
+  => GLuint -- ^ @buf@.
+  -> GLenum -- ^ @modeRGB@ of type [BlendEquationModeEXT](Graphics-GL-Groups.html#BlendEquationModeEXT).
+  -> GLenum -- ^ @modeAlpha@ of type [BlendEquationModeEXT](Graphics-GL-Groups.html#BlendEquationModeEXT).
+  -> m ()
+glBlendEquationSeparateiEXT v1 v2 v3 = liftIO $ dyn55 ptr_glBlendEquationSeparateiEXT v1 v2 v3
+
+{-# NOINLINE ptr_glBlendEquationSeparateiEXT #-}
+ptr_glBlendEquationSeparateiEXT :: FunPtr (GLuint -> GLenum -> GLenum -> IO ())
+ptr_glBlendEquationSeparateiEXT = unsafePerformIO $ getCommand "glBlendEquationSeparateiEXT"
+
+-- glBlendEquationSeparateiOES -------------------------------------------------
+
+-- | This command is an alias for 'glBlendEquationSeparatei'.
+glBlendEquationSeparateiOES
+  :: MonadIO m
+  => GLuint -- ^ @buf@.
+  -> GLenum -- ^ @modeRGB@ of type [BlendEquationModeEXT](Graphics-GL-Groups.html#BlendEquationModeEXT).
+  -> GLenum -- ^ @modeAlpha@ of type [BlendEquationModeEXT](Graphics-GL-Groups.html#BlendEquationModeEXT).
+  -> m ()
+glBlendEquationSeparateiOES v1 v2 v3 = liftIO $ dyn55 ptr_glBlendEquationSeparateiOES v1 v2 v3
+
+{-# NOINLINE ptr_glBlendEquationSeparateiOES #-}
+ptr_glBlendEquationSeparateiOES :: FunPtr (GLuint -> GLenum -> GLenum -> IO ())
+ptr_glBlendEquationSeparateiOES = unsafePerformIO $ getCommand "glBlendEquationSeparateiOES"
+
+-- glBlendEquationi ------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glBlendEquation.xhtml OpenGL 4.x>.
+glBlendEquationi
+  :: MonadIO m
+  => GLuint -- ^ @buf@.
+  -> GLenum -- ^ @mode@ of type [BlendEquationModeEXT](Graphics-GL-Groups.html#BlendEquationModeEXT).
+  -> m ()
+glBlendEquationi v1 v2 = liftIO $ dyn18 ptr_glBlendEquationi v1 v2
+
+{-# NOINLINE ptr_glBlendEquationi #-}
+ptr_glBlendEquationi :: FunPtr (GLuint -> GLenum -> IO ())
+ptr_glBlendEquationi = unsafePerformIO $ getCommand "glBlendEquationi"
+
+-- glBlendEquationiARB ---------------------------------------------------------
+
+-- | This command is an alias for 'glBlendEquationi'.
+glBlendEquationiARB
+  :: MonadIO m
+  => GLuint -- ^ @buf@.
+  -> GLenum -- ^ @mode@ of type [BlendEquationModeEXT](Graphics-GL-Groups.html#BlendEquationModeEXT).
+  -> m ()
+glBlendEquationiARB v1 v2 = liftIO $ dyn18 ptr_glBlendEquationiARB v1 v2
+
+{-# NOINLINE ptr_glBlendEquationiARB #-}
+ptr_glBlendEquationiARB :: FunPtr (GLuint -> GLenum -> IO ())
+ptr_glBlendEquationiARB = unsafePerformIO $ getCommand "glBlendEquationiARB"
+
+-- glBlendEquationiEXT ---------------------------------------------------------
+
+-- | This command is an alias for 'glBlendEquationi'.
+glBlendEquationiEXT
+  :: MonadIO m
+  => GLuint -- ^ @buf@.
+  -> GLenum -- ^ @mode@ of type [BlendEquationModeEXT](Graphics-GL-Groups.html#BlendEquationModeEXT).
+  -> m ()
+glBlendEquationiEXT v1 v2 = liftIO $ dyn18 ptr_glBlendEquationiEXT v1 v2
+
+{-# NOINLINE ptr_glBlendEquationiEXT #-}
+ptr_glBlendEquationiEXT :: FunPtr (GLuint -> GLenum -> IO ())
+ptr_glBlendEquationiEXT = unsafePerformIO $ getCommand "glBlendEquationiEXT"
+
+-- glBlendEquationiOES ---------------------------------------------------------
+
+-- | This command is an alias for 'glBlendEquationi'.
+glBlendEquationiOES
+  :: MonadIO m
+  => GLuint -- ^ @buf@.
+  -> GLenum -- ^ @mode@ of type [BlendEquationModeEXT](Graphics-GL-Groups.html#BlendEquationModeEXT).
+  -> m ()
+glBlendEquationiOES v1 v2 = liftIO $ dyn18 ptr_glBlendEquationiOES v1 v2
+
+{-# NOINLINE ptr_glBlendEquationiOES #-}
+ptr_glBlendEquationiOES :: FunPtr (GLuint -> GLenum -> IO ())
+ptr_glBlendEquationiOES = unsafePerformIO $ getCommand "glBlendEquationiOES"
+
+-- glBlendFunc -----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glBlendFunc.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glBlendFunc.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glBlendFunc.xhtml OpenGL 4.x>.
+glBlendFunc
+  :: MonadIO m
+  => GLenum -- ^ @sfactor@ of type [BlendingFactor](Graphics-GL-Groups.html#BlendingFactor).
+  -> GLenum -- ^ @dfactor@ of type [BlendingFactor](Graphics-GL-Groups.html#BlendingFactor).
+  -> m ()
+glBlendFunc v1 v2 = liftIO $ dyn54 ptr_glBlendFunc v1 v2
+
+{-# NOINLINE ptr_glBlendFunc #-}
+ptr_glBlendFunc :: FunPtr (GLenum -> GLenum -> IO ())
+ptr_glBlendFunc = unsafePerformIO $ getCommand "glBlendFunc"
+
+-- glBlendFuncIndexedAMD -------------------------------------------------------
+
+-- | This command is an alias for 'glBlendFunci'.
+glBlendFuncIndexedAMD
+  :: MonadIO m
+  => GLuint -- ^ @buf@.
+  -> GLenum -- ^ @src@.
+  -> GLenum -- ^ @dst@.
+  -> m ()
+glBlendFuncIndexedAMD v1 v2 v3 = liftIO $ dyn55 ptr_glBlendFuncIndexedAMD v1 v2 v3
+
+{-# NOINLINE ptr_glBlendFuncIndexedAMD #-}
+ptr_glBlendFuncIndexedAMD :: FunPtr (GLuint -> GLenum -> GLenum -> IO ())
+ptr_glBlendFuncIndexedAMD = unsafePerformIO $ getCommand "glBlendFuncIndexedAMD"
+
+-- glBlendFuncSeparate ---------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glBlendFuncSeparate.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glBlendFuncSeparate.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glBlendFuncSeparate.xhtml OpenGL 4.x>.
+glBlendFuncSeparate
+  :: MonadIO m
+  => GLenum -- ^ @sfactorRGB@ of type [BlendingFactor](Graphics-GL-Groups.html#BlendingFactor).
+  -> GLenum -- ^ @dfactorRGB@ of type [BlendingFactor](Graphics-GL-Groups.html#BlendingFactor).
+  -> GLenum -- ^ @sfactorAlpha@ of type [BlendingFactor](Graphics-GL-Groups.html#BlendingFactor).
+  -> GLenum -- ^ @dfactorAlpha@ of type [BlendingFactor](Graphics-GL-Groups.html#BlendingFactor).
+  -> m ()
+glBlendFuncSeparate v1 v2 v3 v4 = liftIO $ dyn56 ptr_glBlendFuncSeparate v1 v2 v3 v4
+
+{-# NOINLINE ptr_glBlendFuncSeparate #-}
+ptr_glBlendFuncSeparate :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ())
+ptr_glBlendFuncSeparate = unsafePerformIO $ getCommand "glBlendFuncSeparate"
+
+-- glBlendFuncSeparateEXT ------------------------------------------------------
+
+-- | This command is an alias for 'glBlendFuncSeparate'.
+glBlendFuncSeparateEXT
+  :: MonadIO m
+  => GLenum -- ^ @sfactorRGB@ of type [BlendingFactor](Graphics-GL-Groups.html#BlendingFactor).
+  -> GLenum -- ^ @dfactorRGB@ of type [BlendingFactor](Graphics-GL-Groups.html#BlendingFactor).
+  -> GLenum -- ^ @sfactorAlpha@ of type [BlendingFactor](Graphics-GL-Groups.html#BlendingFactor).
+  -> GLenum -- ^ @dfactorAlpha@ of type [BlendingFactor](Graphics-GL-Groups.html#BlendingFactor).
+  -> m ()
+glBlendFuncSeparateEXT v1 v2 v3 v4 = liftIO $ dyn56 ptr_glBlendFuncSeparateEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glBlendFuncSeparateEXT #-}
+ptr_glBlendFuncSeparateEXT :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ())
+ptr_glBlendFuncSeparateEXT = unsafePerformIO $ getCommand "glBlendFuncSeparateEXT"
+
+-- glBlendFuncSeparateINGR -----------------------------------------------------
+
+-- | This command is an alias for 'glBlendFuncSeparate'.
+glBlendFuncSeparateINGR
+  :: MonadIO m
+  => GLenum -- ^ @sfactorRGB@ of type [BlendingFactor](Graphics-GL-Groups.html#BlendingFactor).
+  -> GLenum -- ^ @dfactorRGB@ of type [BlendingFactor](Graphics-GL-Groups.html#BlendingFactor).
+  -> GLenum -- ^ @sfactorAlpha@ of type [BlendingFactor](Graphics-GL-Groups.html#BlendingFactor).
+  -> GLenum -- ^ @dfactorAlpha@ of type [BlendingFactor](Graphics-GL-Groups.html#BlendingFactor).
+  -> m ()
+glBlendFuncSeparateINGR v1 v2 v3 v4 = liftIO $ dyn56 ptr_glBlendFuncSeparateINGR v1 v2 v3 v4
+
+{-# NOINLINE ptr_glBlendFuncSeparateINGR #-}
+ptr_glBlendFuncSeparateINGR :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ())
+ptr_glBlendFuncSeparateINGR = unsafePerformIO $ getCommand "glBlendFuncSeparateINGR"
+
+-- glBlendFuncSeparateIndexedAMD -----------------------------------------------
+
+-- | This command is an alias for 'glBlendFuncSeparatei'.
+glBlendFuncSeparateIndexedAMD
+  :: MonadIO m
+  => GLuint -- ^ @buf@.
+  -> GLenum -- ^ @srcRGB@ of type [BlendingFactor](Graphics-GL-Groups.html#BlendingFactor).
+  -> GLenum -- ^ @dstRGB@ of type [BlendingFactor](Graphics-GL-Groups.html#BlendingFactor).
+  -> GLenum -- ^ @srcAlpha@ of type [BlendingFactor](Graphics-GL-Groups.html#BlendingFactor).
+  -> GLenum -- ^ @dstAlpha@ of type [BlendingFactor](Graphics-GL-Groups.html#BlendingFactor).
+  -> m ()
+glBlendFuncSeparateIndexedAMD v1 v2 v3 v4 v5 = liftIO $ dyn57 ptr_glBlendFuncSeparateIndexedAMD v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glBlendFuncSeparateIndexedAMD #-}
+ptr_glBlendFuncSeparateIndexedAMD :: FunPtr (GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
+ptr_glBlendFuncSeparateIndexedAMD = unsafePerformIO $ getCommand "glBlendFuncSeparateIndexedAMD"
+
+-- glBlendFuncSeparateOES ------------------------------------------------------
+
+glBlendFuncSeparateOES
+  :: MonadIO m
+  => GLenum -- ^ @srcRGB@ of type [BlendingFactor](Graphics-GL-Groups.html#BlendingFactor).
+  -> GLenum -- ^ @dstRGB@ of type [BlendingFactor](Graphics-GL-Groups.html#BlendingFactor).
+  -> GLenum -- ^ @srcAlpha@ of type [BlendingFactor](Graphics-GL-Groups.html#BlendingFactor).
+  -> GLenum -- ^ @dstAlpha@ of type [BlendingFactor](Graphics-GL-Groups.html#BlendingFactor).
+  -> m ()
+glBlendFuncSeparateOES v1 v2 v3 v4 = liftIO $ dyn56 ptr_glBlendFuncSeparateOES v1 v2 v3 v4
+
+{-# NOINLINE ptr_glBlendFuncSeparateOES #-}
+ptr_glBlendFuncSeparateOES :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ())
+ptr_glBlendFuncSeparateOES = unsafePerformIO $ getCommand "glBlendFuncSeparateOES"
+
+-- glBlendFuncSeparatei --------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glBlendFuncSeparate.xhtml OpenGL 4.x>.
+glBlendFuncSeparatei
+  :: MonadIO m
+  => GLuint -- ^ @buf@.
+  -> GLenum -- ^ @srcRGB@ of type [BlendingFactor](Graphics-GL-Groups.html#BlendingFactor).
+  -> GLenum -- ^ @dstRGB@ of type [BlendingFactor](Graphics-GL-Groups.html#BlendingFactor).
+  -> GLenum -- ^ @srcAlpha@ of type [BlendingFactor](Graphics-GL-Groups.html#BlendingFactor).
+  -> GLenum -- ^ @dstAlpha@ of type [BlendingFactor](Graphics-GL-Groups.html#BlendingFactor).
+  -> m ()
+glBlendFuncSeparatei v1 v2 v3 v4 v5 = liftIO $ dyn57 ptr_glBlendFuncSeparatei v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glBlendFuncSeparatei #-}
+ptr_glBlendFuncSeparatei :: FunPtr (GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
+ptr_glBlendFuncSeparatei = unsafePerformIO $ getCommand "glBlendFuncSeparatei"
+
+-- glBlendFuncSeparateiARB -----------------------------------------------------
+
+-- | This command is an alias for 'glBlendFuncSeparatei'.
+glBlendFuncSeparateiARB
+  :: MonadIO m
+  => GLuint -- ^ @buf@.
+  -> GLenum -- ^ @srcRGB@ of type [BlendingFactor](Graphics-GL-Groups.html#BlendingFactor).
+  -> GLenum -- ^ @dstRGB@ of type [BlendingFactor](Graphics-GL-Groups.html#BlendingFactor).
+  -> GLenum -- ^ @srcAlpha@ of type [BlendingFactor](Graphics-GL-Groups.html#BlendingFactor).
+  -> GLenum -- ^ @dstAlpha@ of type [BlendingFactor](Graphics-GL-Groups.html#BlendingFactor).
+  -> m ()
+glBlendFuncSeparateiARB v1 v2 v3 v4 v5 = liftIO $ dyn57 ptr_glBlendFuncSeparateiARB v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glBlendFuncSeparateiARB #-}
+ptr_glBlendFuncSeparateiARB :: FunPtr (GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
+ptr_glBlendFuncSeparateiARB = unsafePerformIO $ getCommand "glBlendFuncSeparateiARB"
+
+-- glBlendFuncSeparateiEXT -----------------------------------------------------
+
+-- | This command is an alias for 'glBlendFuncSeparatei'.
+glBlendFuncSeparateiEXT
+  :: MonadIO m
+  => GLuint -- ^ @buf@.
+  -> GLenum -- ^ @srcRGB@ of type [BlendingFactor](Graphics-GL-Groups.html#BlendingFactor).
+  -> GLenum -- ^ @dstRGB@ of type [BlendingFactor](Graphics-GL-Groups.html#BlendingFactor).
+  -> GLenum -- ^ @srcAlpha@ of type [BlendingFactor](Graphics-GL-Groups.html#BlendingFactor).
+  -> GLenum -- ^ @dstAlpha@ of type [BlendingFactor](Graphics-GL-Groups.html#BlendingFactor).
+  -> m ()
+glBlendFuncSeparateiEXT v1 v2 v3 v4 v5 = liftIO $ dyn57 ptr_glBlendFuncSeparateiEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glBlendFuncSeparateiEXT #-}
+ptr_glBlendFuncSeparateiEXT :: FunPtr (GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
+ptr_glBlendFuncSeparateiEXT = unsafePerformIO $ getCommand "glBlendFuncSeparateiEXT"
+
+-- glBlendFuncSeparateiOES -----------------------------------------------------
+
+-- | This command is an alias for 'glBlendFuncSeparatei'.
+glBlendFuncSeparateiOES
+  :: MonadIO m
+  => GLuint -- ^ @buf@.
+  -> GLenum -- ^ @srcRGB@ of type [BlendingFactor](Graphics-GL-Groups.html#BlendingFactor).
+  -> GLenum -- ^ @dstRGB@ of type [BlendingFactor](Graphics-GL-Groups.html#BlendingFactor).
+  -> GLenum -- ^ @srcAlpha@ of type [BlendingFactor](Graphics-GL-Groups.html#BlendingFactor).
+  -> GLenum -- ^ @dstAlpha@ of type [BlendingFactor](Graphics-GL-Groups.html#BlendingFactor).
+  -> m ()
+glBlendFuncSeparateiOES v1 v2 v3 v4 v5 = liftIO $ dyn57 ptr_glBlendFuncSeparateiOES v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glBlendFuncSeparateiOES #-}
+ptr_glBlendFuncSeparateiOES :: FunPtr (GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
+ptr_glBlendFuncSeparateiOES = unsafePerformIO $ getCommand "glBlendFuncSeparateiOES"
+
+-- glBlendFunci ----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glBlendFunc.xhtml OpenGL 4.x>.
+glBlendFunci
+  :: MonadIO m
+  => GLuint -- ^ @buf@.
+  -> GLenum -- ^ @src@ of type [BlendingFactor](Graphics-GL-Groups.html#BlendingFactor).
+  -> GLenum -- ^ @dst@ of type [BlendingFactor](Graphics-GL-Groups.html#BlendingFactor).
+  -> m ()
+glBlendFunci v1 v2 v3 = liftIO $ dyn55 ptr_glBlendFunci v1 v2 v3
+
+{-# NOINLINE ptr_glBlendFunci #-}
+ptr_glBlendFunci :: FunPtr (GLuint -> GLenum -> GLenum -> IO ())
+ptr_glBlendFunci = unsafePerformIO $ getCommand "glBlendFunci"
+
+-- glBlendFunciARB -------------------------------------------------------------
+
+-- | This command is an alias for 'glBlendFunci'.
+glBlendFunciARB
+  :: MonadIO m
+  => GLuint -- ^ @buf@.
+  -> GLenum -- ^ @src@ of type [BlendingFactor](Graphics-GL-Groups.html#BlendingFactor).
+  -> GLenum -- ^ @dst@ of type [BlendingFactor](Graphics-GL-Groups.html#BlendingFactor).
+  -> m ()
+glBlendFunciARB v1 v2 v3 = liftIO $ dyn55 ptr_glBlendFunciARB v1 v2 v3
+
+{-# NOINLINE ptr_glBlendFunciARB #-}
+ptr_glBlendFunciARB :: FunPtr (GLuint -> GLenum -> GLenum -> IO ())
+ptr_glBlendFunciARB = unsafePerformIO $ getCommand "glBlendFunciARB"
+
+-- glBlendFunciEXT -------------------------------------------------------------
+
+-- | This command is an alias for 'glBlendFunci'.
+glBlendFunciEXT
+  :: MonadIO m
+  => GLuint -- ^ @buf@.
+  -> GLenum -- ^ @src@ of type [BlendingFactor](Graphics-GL-Groups.html#BlendingFactor).
+  -> GLenum -- ^ @dst@ of type [BlendingFactor](Graphics-GL-Groups.html#BlendingFactor).
+  -> m ()
+glBlendFunciEXT v1 v2 v3 = liftIO $ dyn55 ptr_glBlendFunciEXT v1 v2 v3
+
+{-# NOINLINE ptr_glBlendFunciEXT #-}
+ptr_glBlendFunciEXT :: FunPtr (GLuint -> GLenum -> GLenum -> IO ())
+ptr_glBlendFunciEXT = unsafePerformIO $ getCommand "glBlendFunciEXT"
+
+-- glBlendFunciOES -------------------------------------------------------------
+
+-- | This command is an alias for 'glBlendFunci'.
+glBlendFunciOES
+  :: MonadIO m
+  => GLuint -- ^ @buf@.
+  -> GLenum -- ^ @src@ of type [BlendingFactor](Graphics-GL-Groups.html#BlendingFactor).
+  -> GLenum -- ^ @dst@ of type [BlendingFactor](Graphics-GL-Groups.html#BlendingFactor).
+  -> m ()
+glBlendFunciOES v1 v2 v3 = liftIO $ dyn55 ptr_glBlendFunciOES v1 v2 v3
+
+{-# NOINLINE ptr_glBlendFunciOES #-}
+ptr_glBlendFunciOES :: FunPtr (GLuint -> GLenum -> GLenum -> IO ())
+ptr_glBlendFunciOES = unsafePerformIO $ getCommand "glBlendFunciOES"
+
+-- glBlendParameteriNV ---------------------------------------------------------
+
+glBlendParameteriNV
+  :: MonadIO m
+  => GLenum -- ^ @pname@.
+  -> GLint -- ^ @value@.
+  -> m ()
+glBlendParameteriNV v1 v2 = liftIO $ dyn58 ptr_glBlendParameteriNV v1 v2
+
+{-# NOINLINE ptr_glBlendParameteriNV #-}
+ptr_glBlendParameteriNV :: FunPtr (GLenum -> GLint -> IO ())
+ptr_glBlendParameteriNV = unsafePerformIO $ getCommand "glBlendParameteriNV"
+
+-- glBlitFramebuffer -----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glBlitFramebuffer.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glBlitFramebuffer.xhtml OpenGL 4.x>.
+glBlitFramebuffer
+  :: MonadIO m
+  => GLint -- ^ @srcX0@.
+  -> GLint -- ^ @srcY0@.
+  -> GLint -- ^ @srcX1@.
+  -> GLint -- ^ @srcY1@.
+  -> GLint -- ^ @dstX0@.
+  -> GLint -- ^ @dstY0@.
+  -> GLint -- ^ @dstX1@.
+  -> GLint -- ^ @dstY1@.
+  -> GLbitfield -- ^ @mask@ of type [ClearBufferMask](Graphics-GL-Groups.html#ClearBufferMask).
+  -> GLenum -- ^ @filter@ of type [BlitFramebufferFilter](Graphics-GL-Groups.html#BlitFramebufferFilter).
+  -> m ()
+glBlitFramebuffer v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 = liftIO $ dyn59 ptr_glBlitFramebuffer v1 v2 v3 v4 v5 v6 v7 v8 v9 v10
+
+{-# NOINLINE ptr_glBlitFramebuffer #-}
+ptr_glBlitFramebuffer :: FunPtr (GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> IO ())
+ptr_glBlitFramebuffer = unsafePerformIO $ getCommand "glBlitFramebuffer"
+
+-- glBlitFramebufferANGLE ------------------------------------------------------
+
+glBlitFramebufferANGLE
+  :: MonadIO m
+  => GLint -- ^ @srcX0@.
+  -> GLint -- ^ @srcY0@.
+  -> GLint -- ^ @srcX1@.
+  -> GLint -- ^ @srcY1@.
+  -> GLint -- ^ @dstX0@.
+  -> GLint -- ^ @dstY0@.
+  -> GLint -- ^ @dstX1@.
+  -> GLint -- ^ @dstY1@.
+  -> GLbitfield -- ^ @mask@ of type [ClearBufferMask](Graphics-GL-Groups.html#ClearBufferMask).
+  -> GLenum -- ^ @filter@ of type [BlitFramebufferFilter](Graphics-GL-Groups.html#BlitFramebufferFilter).
+  -> m ()
+glBlitFramebufferANGLE v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 = liftIO $ dyn59 ptr_glBlitFramebufferANGLE v1 v2 v3 v4 v5 v6 v7 v8 v9 v10
+
+{-# NOINLINE ptr_glBlitFramebufferANGLE #-}
+ptr_glBlitFramebufferANGLE :: FunPtr (GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> IO ())
+ptr_glBlitFramebufferANGLE = unsafePerformIO $ getCommand "glBlitFramebufferANGLE"
+
+-- glBlitFramebufferEXT --------------------------------------------------------
+
+-- | This command is an alias for 'glBlitFramebuffer'.
+glBlitFramebufferEXT
+  :: MonadIO m
+  => GLint -- ^ @srcX0@.
+  -> GLint -- ^ @srcY0@.
+  -> GLint -- ^ @srcX1@.
+  -> GLint -- ^ @srcY1@.
+  -> GLint -- ^ @dstX0@.
+  -> GLint -- ^ @dstY0@.
+  -> GLint -- ^ @dstX1@.
+  -> GLint -- ^ @dstY1@.
+  -> GLbitfield -- ^ @mask@ of type [ClearBufferMask](Graphics-GL-Groups.html#ClearBufferMask).
+  -> GLenum -- ^ @filter@ of type [BlitFramebufferFilter](Graphics-GL-Groups.html#BlitFramebufferFilter).
+  -> m ()
+glBlitFramebufferEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 = liftIO $ dyn59 ptr_glBlitFramebufferEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 v10
+
+{-# NOINLINE ptr_glBlitFramebufferEXT #-}
+ptr_glBlitFramebufferEXT :: FunPtr (GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> IO ())
+ptr_glBlitFramebufferEXT = unsafePerformIO $ getCommand "glBlitFramebufferEXT"
+
+-- glBlitFramebufferNV ---------------------------------------------------------
+
+-- | This command is an alias for 'glBlitFramebuffer'.
+glBlitFramebufferNV
+  :: MonadIO m
+  => GLint -- ^ @srcX0@.
+  -> GLint -- ^ @srcY0@.
+  -> GLint -- ^ @srcX1@.
+  -> GLint -- ^ @srcY1@.
+  -> GLint -- ^ @dstX0@.
+  -> GLint -- ^ @dstY0@.
+  -> GLint -- ^ @dstX1@.
+  -> GLint -- ^ @dstY1@.
+  -> GLbitfield -- ^ @mask@ of type [ClearBufferMask](Graphics-GL-Groups.html#ClearBufferMask).
+  -> GLenum -- ^ @filter@ of type [BlitFramebufferFilter](Graphics-GL-Groups.html#BlitFramebufferFilter).
+  -> m ()
+glBlitFramebufferNV v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 = liftIO $ dyn59 ptr_glBlitFramebufferNV v1 v2 v3 v4 v5 v6 v7 v8 v9 v10
+
+{-# NOINLINE ptr_glBlitFramebufferNV #-}
+ptr_glBlitFramebufferNV :: FunPtr (GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> IO ())
+ptr_glBlitFramebufferNV = unsafePerformIO $ getCommand "glBlitFramebufferNV"
+
+-- glBlitNamedFramebuffer ------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glBlitFramebuffer.xhtml OpenGL 4.x>.
+glBlitNamedFramebuffer
+  :: MonadIO m
+  => GLuint -- ^ @readFramebuffer@.
+  -> GLuint -- ^ @drawFramebuffer@.
+  -> GLint -- ^ @srcX0@.
+  -> GLint -- ^ @srcY0@.
+  -> GLint -- ^ @srcX1@.
+  -> GLint -- ^ @srcY1@.
+  -> GLint -- ^ @dstX0@.
+  -> GLint -- ^ @dstY0@.
+  -> GLint -- ^ @dstX1@.
+  -> GLint -- ^ @dstY1@.
+  -> GLbitfield -- ^ @mask@ of type [ClearBufferMask](Graphics-GL-Groups.html#ClearBufferMask).
+  -> GLenum -- ^ @filter@ of type [BlitFramebufferFilter](Graphics-GL-Groups.html#BlitFramebufferFilter).
+  -> m ()
+glBlitNamedFramebuffer v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 = liftIO $ dyn60 ptr_glBlitNamedFramebuffer v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12
+
+{-# NOINLINE ptr_glBlitNamedFramebuffer #-}
+ptr_glBlitNamedFramebuffer :: FunPtr (GLuint -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> IO ())
+ptr_glBlitNamedFramebuffer = unsafePerformIO $ getCommand "glBlitNamedFramebuffer"
+
+-- glBufferAddressRangeNV ------------------------------------------------------
+
+glBufferAddressRangeNV
+  :: MonadIO m
+  => GLenum -- ^ @pname@.
+  -> GLuint -- ^ @index@.
+  -> GLuint64EXT -- ^ @address@.
+  -> GLsizeiptr -- ^ @length@ of type @BufferSize@.
+  -> m ()
+glBufferAddressRangeNV v1 v2 v3 v4 = liftIO $ dyn61 ptr_glBufferAddressRangeNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glBufferAddressRangeNV #-}
+ptr_glBufferAddressRangeNV :: FunPtr (GLenum -> GLuint -> GLuint64EXT -> GLsizeiptr -> IO ())
+ptr_glBufferAddressRangeNV = unsafePerformIO $ getCommand "glBufferAddressRangeNV"
+
+-- glBufferAttachMemoryNV ------------------------------------------------------
+
+glBufferAttachMemoryNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
+  -> GLuint -- ^ @memory@.
+  -> GLuint64 -- ^ @offset@.
+  -> m ()
+glBufferAttachMemoryNV v1 v2 v3 = liftIO $ dyn62 ptr_glBufferAttachMemoryNV v1 v2 v3
+
+{-# NOINLINE ptr_glBufferAttachMemoryNV #-}
+ptr_glBufferAttachMemoryNV :: FunPtr (GLenum -> GLuint -> GLuint64 -> IO ())
+ptr_glBufferAttachMemoryNV = unsafePerformIO $ getCommand "glBufferAttachMemoryNV"
+
+-- glBufferData ----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glBufferData.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glBufferData.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glBufferData.xhtml OpenGL 4.x>.
+glBufferData
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
+  -> GLsizeiptr -- ^ @size@ of type @BufferSize@.
+  -> Ptr a -- ^ @data@ pointing to @size@ elements of type @a@.
+  -> GLenum -- ^ @usage@ of type [BufferUsageARB](Graphics-GL-Groups.html#BufferUsageARB).
+  -> m ()
+glBufferData v1 v2 v3 v4 = liftIO $ dyn63 ptr_glBufferData v1 v2 v3 v4
+
+{-# NOINLINE ptr_glBufferData #-}
+ptr_glBufferData :: FunPtr (GLenum -> GLsizeiptr -> Ptr a -> GLenum -> IO ())
+ptr_glBufferData = unsafePerformIO $ getCommand "glBufferData"
+
+-- glBufferDataARB -------------------------------------------------------------
+
+-- | This command is an alias for 'glBufferData'.
+glBufferDataARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
+  -> GLsizeiptrARB -- ^ @size@ of type @BufferSizeARB@.
+  -> Ptr a -- ^ @data@ pointing to @size@ elements of type @a@.
+  -> GLenum -- ^ @usage@ of type [BufferUsageARB](Graphics-GL-Groups.html#BufferUsageARB).
+  -> m ()
+glBufferDataARB v1 v2 v3 v4 = liftIO $ dyn64 ptr_glBufferDataARB v1 v2 v3 v4
+
+{-# NOINLINE ptr_glBufferDataARB #-}
+ptr_glBufferDataARB :: FunPtr (GLenum -> GLsizeiptrARB -> Ptr a -> GLenum -> IO ())
+ptr_glBufferDataARB = unsafePerformIO $ getCommand "glBufferDataARB"
+
+-- glBufferPageCommitmentARB ---------------------------------------------------
+
+glBufferPageCommitmentARB
+  :: MonadIO m
+  => GLenum -- ^ @target@.
+  -> GLintptr -- ^ @offset@.
+  -> GLsizeiptr -- ^ @size@.
+  -> GLboolean -- ^ @commit@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m ()
+glBufferPageCommitmentARB v1 v2 v3 v4 = liftIO $ dyn65 ptr_glBufferPageCommitmentARB v1 v2 v3 v4
+
+{-# NOINLINE ptr_glBufferPageCommitmentARB #-}
+ptr_glBufferPageCommitmentARB :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> GLboolean -> IO ())
+ptr_glBufferPageCommitmentARB = unsafePerformIO $ getCommand "glBufferPageCommitmentARB"
+
+-- glBufferParameteriAPPLE -----------------------------------------------------
+
+glBufferParameteriAPPLE
+  :: MonadIO m
+  => GLenum -- ^ @target@.
+  -> GLenum -- ^ @pname@.
+  -> GLint -- ^ @param@.
+  -> m ()
+glBufferParameteriAPPLE v1 v2 v3 = liftIO $ dyn66 ptr_glBufferParameteriAPPLE v1 v2 v3
+
+{-# NOINLINE ptr_glBufferParameteriAPPLE #-}
+ptr_glBufferParameteriAPPLE :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
+ptr_glBufferParameteriAPPLE = unsafePerformIO $ getCommand "glBufferParameteriAPPLE"
+
+-- glBufferStorage -------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glBufferStorage.xhtml OpenGL 4.x>.
+glBufferStorage
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [BufferStorageTarget](Graphics-GL-Groups.html#BufferStorageTarget).
+  -> GLsizeiptr -- ^ @size@.
+  -> Ptr a -- ^ @data@ pointing to @size@ elements of type @a@.
+  -> GLbitfield -- ^ @flags@ of type [BufferStorageMask](Graphics-GL-Groups.html#BufferStorageMask).
+  -> m ()
+glBufferStorage v1 v2 v3 v4 = liftIO $ dyn67 ptr_glBufferStorage v1 v2 v3 v4
+
+{-# NOINLINE ptr_glBufferStorage #-}
+ptr_glBufferStorage :: FunPtr (GLenum -> GLsizeiptr -> Ptr a -> GLbitfield -> IO ())
+ptr_glBufferStorage = unsafePerformIO $ getCommand "glBufferStorage"
+
+-- glBufferStorageEXT ----------------------------------------------------------
+
+-- | This command is an alias for 'glBufferStorage'.
+glBufferStorageEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [BufferStorageTarget](Graphics-GL-Groups.html#BufferStorageTarget).
+  -> GLsizeiptr -- ^ @size@.
+  -> Ptr a -- ^ @data@ pointing to @size@ elements of type @a@.
+  -> GLbitfield -- ^ @flags@ of type [BufferStorageMask](Graphics-GL-Groups.html#BufferStorageMask).
+  -> m ()
+glBufferStorageEXT v1 v2 v3 v4 = liftIO $ dyn67 ptr_glBufferStorageEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glBufferStorageEXT #-}
+ptr_glBufferStorageEXT :: FunPtr (GLenum -> GLsizeiptr -> Ptr a -> GLbitfield -> IO ())
+ptr_glBufferStorageEXT = unsafePerformIO $ getCommand "glBufferStorageEXT"
+
+-- glBufferStorageExternalEXT --------------------------------------------------
+
+glBufferStorageExternalEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@.
+  -> GLintptr -- ^ @offset@.
+  -> GLsizeiptr -- ^ @size@.
+  -> GLeglClientBufferEXT -- ^ @clientBuffer@.
+  -> GLbitfield -- ^ @flags@ of type [BufferStorageMask](Graphics-GL-Groups.html#BufferStorageMask).
+  -> m ()
+glBufferStorageExternalEXT v1 v2 v3 v4 v5 = liftIO $ dyn68 ptr_glBufferStorageExternalEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glBufferStorageExternalEXT #-}
+ptr_glBufferStorageExternalEXT :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> GLeglClientBufferEXT -> GLbitfield -> IO ())
+ptr_glBufferStorageExternalEXT = unsafePerformIO $ getCommand "glBufferStorageExternalEXT"
+
+-- glBufferStorageMemEXT -------------------------------------------------------
+
+glBufferStorageMemEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
+  -> GLsizeiptr -- ^ @size@ of type @BufferSize@.
+  -> GLuint -- ^ @memory@.
+  -> GLuint64 -- ^ @offset@.
+  -> m ()
+glBufferStorageMemEXT v1 v2 v3 v4 = liftIO $ dyn69 ptr_glBufferStorageMemEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glBufferStorageMemEXT #-}
+ptr_glBufferStorageMemEXT :: FunPtr (GLenum -> GLsizeiptr -> GLuint -> GLuint64 -> IO ())
+ptr_glBufferStorageMemEXT = unsafePerformIO $ getCommand "glBufferStorageMemEXT"
+
+-- glBufferSubData -------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glBufferSubData.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glBufferSubData.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glBufferSubData.xhtml OpenGL 4.x>.
+glBufferSubData
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
+  -> GLintptr -- ^ @offset@ of type @BufferOffset@.
+  -> GLsizeiptr -- ^ @size@ of type @BufferSize@.
+  -> Ptr a -- ^ @data@ pointing to @size@ elements of type @a@.
+  -> m ()
+glBufferSubData v1 v2 v3 v4 = liftIO $ dyn70 ptr_glBufferSubData v1 v2 v3 v4
+
+{-# NOINLINE ptr_glBufferSubData #-}
+ptr_glBufferSubData :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> Ptr a -> IO ())
+ptr_glBufferSubData = unsafePerformIO $ getCommand "glBufferSubData"
+
+-- glBufferSubDataARB ----------------------------------------------------------
+
+-- | This command is an alias for 'glBufferSubData'.
+glBufferSubDataARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
+  -> GLintptrARB -- ^ @offset@ of type @BufferOffsetARB@.
+  -> GLsizeiptrARB -- ^ @size@ of type @BufferSizeARB@.
+  -> Ptr a -- ^ @data@ pointing to @size@ elements of type @a@.
+  -> m ()
+glBufferSubDataARB v1 v2 v3 v4 = liftIO $ dyn71 ptr_glBufferSubDataARB v1 v2 v3 v4
+
+{-# NOINLINE ptr_glBufferSubDataARB #-}
+ptr_glBufferSubDataARB :: FunPtr (GLenum -> GLintptrARB -> GLsizeiptrARB -> Ptr a -> IO ())
+ptr_glBufferSubDataARB = unsafePerformIO $ getCommand "glBufferSubDataARB"
+
+-- glCallCommandListNV ---------------------------------------------------------
+
+glCallCommandListNV
+  :: MonadIO m
+  => GLuint -- ^ @list@.
+  -> m ()
+glCallCommandListNV v1 = liftIO $ dyn3 ptr_glCallCommandListNV v1
+
+{-# NOINLINE ptr_glCallCommandListNV #-}
+ptr_glCallCommandListNV :: FunPtr (GLuint -> IO ())
+ptr_glCallCommandListNV = unsafePerformIO $ getCommand "glCallCommandListNV"
+
+-- glCallList ------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glCallList.xml OpenGL 2.x>.
+glCallList
+  :: MonadIO m
+  => GLuint -- ^ @list@ of type @List@.
+  -> m ()
+glCallList v1 = liftIO $ dyn3 ptr_glCallList v1
+
+{-# NOINLINE ptr_glCallList #-}
+ptr_glCallList :: FunPtr (GLuint -> IO ())
+ptr_glCallList = unsafePerformIO $ getCommand "glCallList"
+
+-- glCallLists -----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glCallLists.xml OpenGL 2.x>.
+glCallLists
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> GLenum -- ^ @type@ of type [ListNameType](Graphics-GL-Groups.html#ListNameType).
+  -> Ptr a -- ^ @lists@ pointing to @COMPSIZE(n,type)@ elements of type @a@.
+  -> m ()
+glCallLists v1 v2 v3 = liftIO $ dyn72 ptr_glCallLists v1 v2 v3
+
+{-# NOINLINE ptr_glCallLists #-}
+ptr_glCallLists :: FunPtr (GLsizei -> GLenum -> Ptr a -> IO ())
+ptr_glCallLists = unsafePerformIO $ getCommand "glCallLists"
+
+-- glCheckFramebufferStatus ----------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glCheckFramebufferStatus.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glCheckFramebufferStatus.xhtml OpenGL 4.x>.
+glCheckFramebufferStatus
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [FramebufferTarget](Graphics-GL-Groups.html#FramebufferTarget).
+  -> m GLenum -- ^ of type [FramebufferStatus](Graphics-GL-Groups.html#FramebufferStatus).
+glCheckFramebufferStatus v1 = liftIO $ dyn73 ptr_glCheckFramebufferStatus v1
+
+{-# NOINLINE ptr_glCheckFramebufferStatus #-}
+ptr_glCheckFramebufferStatus :: FunPtr (GLenum -> IO GLenum)
+ptr_glCheckFramebufferStatus = unsafePerformIO $ getCommand "glCheckFramebufferStatus"
+
+-- glCheckFramebufferStatusEXT -------------------------------------------------
+
+-- | This command is an alias for 'glCheckFramebufferStatus'.
+glCheckFramebufferStatusEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [FramebufferTarget](Graphics-GL-Groups.html#FramebufferTarget).
+  -> m GLenum -- ^ of type [FramebufferStatus](Graphics-GL-Groups.html#FramebufferStatus).
+glCheckFramebufferStatusEXT v1 = liftIO $ dyn73 ptr_glCheckFramebufferStatusEXT v1
+
+{-# NOINLINE ptr_glCheckFramebufferStatusEXT #-}
+ptr_glCheckFramebufferStatusEXT :: FunPtr (GLenum -> IO GLenum)
+ptr_glCheckFramebufferStatusEXT = unsafePerformIO $ getCommand "glCheckFramebufferStatusEXT"
+
+-- glCheckFramebufferStatusOES -------------------------------------------------
+
+glCheckFramebufferStatusOES
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [FramebufferTarget](Graphics-GL-Groups.html#FramebufferTarget).
+  -> m GLenum -- ^ of type [FramebufferStatus](Graphics-GL-Groups.html#FramebufferStatus).
+glCheckFramebufferStatusOES v1 = liftIO $ dyn73 ptr_glCheckFramebufferStatusOES v1
+
+{-# NOINLINE ptr_glCheckFramebufferStatusOES #-}
+ptr_glCheckFramebufferStatusOES :: FunPtr (GLenum -> IO GLenum)
+ptr_glCheckFramebufferStatusOES = unsafePerformIO $ getCommand "glCheckFramebufferStatusOES"
+
+-- glCheckNamedFramebufferStatus -----------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glCheckFramebufferStatus.xhtml OpenGL 4.x>.
+glCheckNamedFramebufferStatus
+  :: MonadIO m
+  => GLuint -- ^ @framebuffer@.
+  -> GLenum -- ^ @target@ of type [FramebufferTarget](Graphics-GL-Groups.html#FramebufferTarget).
+  -> m GLenum -- ^ of type [FramebufferStatus](Graphics-GL-Groups.html#FramebufferStatus).
+glCheckNamedFramebufferStatus v1 v2 = liftIO $ dyn74 ptr_glCheckNamedFramebufferStatus v1 v2
+
+{-# NOINLINE ptr_glCheckNamedFramebufferStatus #-}
+ptr_glCheckNamedFramebufferStatus :: FunPtr (GLuint -> GLenum -> IO GLenum)
+ptr_glCheckNamedFramebufferStatus = unsafePerformIO $ getCommand "glCheckNamedFramebufferStatus"
+
+-- glCheckNamedFramebufferStatusEXT --------------------------------------------
+
+glCheckNamedFramebufferStatusEXT
+  :: MonadIO m
+  => GLuint -- ^ @framebuffer@ of type @Framebuffer@.
+  -> GLenum -- ^ @target@ of type [FramebufferTarget](Graphics-GL-Groups.html#FramebufferTarget).
+  -> m GLenum -- ^ of type [FramebufferStatus](Graphics-GL-Groups.html#FramebufferStatus).
+glCheckNamedFramebufferStatusEXT v1 v2 = liftIO $ dyn74 ptr_glCheckNamedFramebufferStatusEXT v1 v2
+
+{-# NOINLINE ptr_glCheckNamedFramebufferStatusEXT #-}
+ptr_glCheckNamedFramebufferStatusEXT :: FunPtr (GLuint -> GLenum -> IO GLenum)
+ptr_glCheckNamedFramebufferStatusEXT = unsafePerformIO $ getCommand "glCheckNamedFramebufferStatusEXT"
+
+-- glClampColor ----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glClampColor.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glClampColor.xhtml OpenGL 4.x>.
+glClampColor
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ClampColorTargetARB](Graphics-GL-Groups.html#ClampColorTargetARB).
+  -> GLenum -- ^ @clamp@ of type [ClampColorModeARB](Graphics-GL-Groups.html#ClampColorModeARB).
+  -> m ()
+glClampColor v1 v2 = liftIO $ dyn54 ptr_glClampColor v1 v2
+
+{-# NOINLINE ptr_glClampColor #-}
+ptr_glClampColor :: FunPtr (GLenum -> GLenum -> IO ())
+ptr_glClampColor = unsafePerformIO $ getCommand "glClampColor"
+
+-- glClampColorARB -------------------------------------------------------------
+
+-- | This command is an alias for 'glClampColor'.
+glClampColorARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ClampColorTargetARB](Graphics-GL-Groups.html#ClampColorTargetARB).
+  -> GLenum -- ^ @clamp@ of type [ClampColorModeARB](Graphics-GL-Groups.html#ClampColorModeARB).
+  -> m ()
+glClampColorARB v1 v2 = liftIO $ dyn54 ptr_glClampColorARB v1 v2
+
+{-# NOINLINE ptr_glClampColorARB #-}
+ptr_glClampColorARB :: FunPtr (GLenum -> GLenum -> IO ())
+ptr_glClampColorARB = unsafePerformIO $ getCommand "glClampColorARB"
+
+-- glClear ---------------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glClear.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glClear.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glClear.xhtml OpenGL 4.x>.
+glClear
+  :: MonadIO m
+  => GLbitfield -- ^ @mask@ of type [ClearBufferMask](Graphics-GL-Groups.html#ClearBufferMask).
+  -> m ()
+glClear v1 = liftIO $ dyn75 ptr_glClear v1
+
+{-# NOINLINE ptr_glClear #-}
+ptr_glClear :: FunPtr (GLbitfield -> IO ())
+ptr_glClear = unsafePerformIO $ getCommand "glClear"
+
+-- glClearAccum ----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glClearAccum.xml OpenGL 2.x>.
+glClearAccum
+  :: MonadIO m
+  => GLfloat -- ^ @red@.
+  -> GLfloat -- ^ @green@.
+  -> GLfloat -- ^ @blue@.
+  -> GLfloat -- ^ @alpha@.
+  -> m ()
+glClearAccum v1 v2 v3 v4 = liftIO $ dyn52 ptr_glClearAccum v1 v2 v3 v4
+
+{-# NOINLINE ptr_glClearAccum #-}
+ptr_glClearAccum :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glClearAccum = unsafePerformIO $ getCommand "glClearAccum"
+
+-- glClearAccumxOES ------------------------------------------------------------
+
+glClearAccumxOES
+  :: MonadIO m
+  => GLfixed -- ^ @red@ of type @ClampedFixed@.
+  -> GLfixed -- ^ @green@ of type @ClampedFixed@.
+  -> GLfixed -- ^ @blue@ of type @ClampedFixed@.
+  -> GLfixed -- ^ @alpha@ of type @ClampedFixed@.
+  -> m ()
+glClearAccumxOES v1 v2 v3 v4 = liftIO $ dyn53 ptr_glClearAccumxOES v1 v2 v3 v4
+
+{-# NOINLINE ptr_glClearAccumxOES #-}
+ptr_glClearAccumxOES :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
+ptr_glClearAccumxOES = unsafePerformIO $ getCommand "glClearAccumxOES"
+
+-- glClearBufferData -----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glClearBufferData.xhtml OpenGL 4.x>.
+glClearBufferData
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [BufferStorageTarget](Graphics-GL-Groups.html#BufferStorageTarget).
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @data@ pointing to @COMPSIZE(format,type)@ elements of type @a@.
+  -> m ()
+glClearBufferData v1 v2 v3 v4 v5 = liftIO $ dyn76 ptr_glClearBufferData v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glClearBufferData #-}
+ptr_glClearBufferData :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glClearBufferData = unsafePerformIO $ getCommand "glClearBufferData"
+
+-- glClearBufferSubData --------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glClearBufferSubData.xhtml OpenGL 4.x>.
+glClearBufferSubData
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLintptr -- ^ @offset@ of type @BufferOffset@.
+  -> GLsizeiptr -- ^ @size@ of type @BufferSize@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @data@ pointing to @COMPSIZE(format,type)@ elements of type @a@.
+  -> m ()
+glClearBufferSubData v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn77 ptr_glClearBufferSubData v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glClearBufferSubData #-}
+ptr_glClearBufferSubData :: FunPtr (GLenum -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glClearBufferSubData = unsafePerformIO $ getCommand "glClearBufferSubData"
+
+-- glClearBufferfi -------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glClearBuffer.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glClearBuffer.xhtml OpenGL 4.x>.
+glClearBufferfi
+  :: MonadIO m
+  => GLenum -- ^ @buffer@ of type [Buffer](Graphics-GL-Groups.html#Buffer).
+  -> GLint -- ^ @drawbuffer@ of type @DrawBufferName@.
+  -> GLfloat -- ^ @depth@.
+  -> GLint -- ^ @stencil@.
+  -> m ()
+glClearBufferfi v1 v2 v3 v4 = liftIO $ dyn78 ptr_glClearBufferfi v1 v2 v3 v4
+
+{-# NOINLINE ptr_glClearBufferfi #-}
+ptr_glClearBufferfi :: FunPtr (GLenum -> GLint -> GLfloat -> GLint -> IO ())
+ptr_glClearBufferfi = unsafePerformIO $ getCommand "glClearBufferfi"
+
+-- glClearBufferfv -------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glClearBuffer.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glClearBuffer.xhtml OpenGL 4.x>.
+glClearBufferfv
+  :: MonadIO m
+  => GLenum -- ^ @buffer@ of type [Buffer](Graphics-GL-Groups.html#Buffer).
+  -> GLint -- ^ @drawbuffer@ of type @DrawBufferName@.
+  -> Ptr GLfloat -- ^ @value@ pointing to @COMPSIZE(buffer)@ elements of type @GLfloat@.
+  -> m ()
+glClearBufferfv v1 v2 v3 = liftIO $ dyn79 ptr_glClearBufferfv v1 v2 v3
+
+{-# NOINLINE ptr_glClearBufferfv #-}
+ptr_glClearBufferfv :: FunPtr (GLenum -> GLint -> Ptr GLfloat -> IO ())
+ptr_glClearBufferfv = unsafePerformIO $ getCommand "glClearBufferfv"
+
+-- glClearBufferiv -------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glClearBuffer.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glClearBuffer.xhtml OpenGL 4.x>.
+glClearBufferiv
+  :: MonadIO m
+  => GLenum -- ^ @buffer@ of type [Buffer](Graphics-GL-Groups.html#Buffer).
+  -> GLint -- ^ @drawbuffer@ of type @DrawBufferName@.
+  -> Ptr GLint -- ^ @value@ pointing to @COMPSIZE(buffer)@ elements of type @GLint@.
+  -> m ()
+glClearBufferiv v1 v2 v3 = liftIO $ dyn80 ptr_glClearBufferiv v1 v2 v3
+
+{-# NOINLINE ptr_glClearBufferiv #-}
+ptr_glClearBufferiv :: FunPtr (GLenum -> GLint -> Ptr GLint -> IO ())
+ptr_glClearBufferiv = unsafePerformIO $ getCommand "glClearBufferiv"
+
+-- glClearBufferuiv ------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glClearBuffer.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glClearBuffer.xhtml OpenGL 4.x>.
+glClearBufferuiv
+  :: MonadIO m
+  => GLenum -- ^ @buffer@ of type [Buffer](Graphics-GL-Groups.html#Buffer).
+  -> GLint -- ^ @drawbuffer@ of type @DrawBufferName@.
+  -> Ptr GLuint -- ^ @value@ pointing to @COMPSIZE(buffer)@ elements of type @GLuint@.
+  -> m ()
+glClearBufferuiv v1 v2 v3 = liftIO $ dyn81 ptr_glClearBufferuiv v1 v2 v3
+
+{-# NOINLINE ptr_glClearBufferuiv #-}
+ptr_glClearBufferuiv :: FunPtr (GLenum -> GLint -> Ptr GLuint -> IO ())
+ptr_glClearBufferuiv = unsafePerformIO $ getCommand "glClearBufferuiv"
+
+-- glClearColor ----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glClearColor.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glClearColor.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glClearColor.xhtml OpenGL 4.x>.
+glClearColor
+  :: MonadIO m
+  => GLfloat -- ^ @red@ of type @ColorF@.
+  -> GLfloat -- ^ @green@ of type @ColorF@.
+  -> GLfloat -- ^ @blue@ of type @ColorF@.
+  -> GLfloat -- ^ @alpha@ of type @ColorF@.
+  -> m ()
+glClearColor v1 v2 v3 v4 = liftIO $ dyn52 ptr_glClearColor v1 v2 v3 v4
+
+{-# NOINLINE ptr_glClearColor #-}
+ptr_glClearColor :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glClearColor = unsafePerformIO $ getCommand "glClearColor"
+
+-- glClearColorIiEXT -----------------------------------------------------------
+
+glClearColorIiEXT
+  :: MonadIO m
+  => GLint -- ^ @red@.
+  -> GLint -- ^ @green@.
+  -> GLint -- ^ @blue@.
+  -> GLint -- ^ @alpha@.
+  -> m ()
+glClearColorIiEXT v1 v2 v3 v4 = liftIO $ dyn82 ptr_glClearColorIiEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glClearColorIiEXT #-}
+ptr_glClearColorIiEXT :: FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())
+ptr_glClearColorIiEXT = unsafePerformIO $ getCommand "glClearColorIiEXT"
+
+-- glClearColorIuiEXT ----------------------------------------------------------
+
+glClearColorIuiEXT
+  :: MonadIO m
+  => GLuint -- ^ @red@.
+  -> GLuint -- ^ @green@.
+  -> GLuint -- ^ @blue@.
+  -> GLuint -- ^ @alpha@.
+  -> m ()
+glClearColorIuiEXT v1 v2 v3 v4 = liftIO $ dyn83 ptr_glClearColorIuiEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glClearColorIuiEXT #-}
+ptr_glClearColorIuiEXT :: FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+ptr_glClearColorIuiEXT = unsafePerformIO $ getCommand "glClearColorIuiEXT"
+
+-- glClearColorx ---------------------------------------------------------------
+
+glClearColorx
+  :: MonadIO m
+  => GLfixed -- ^ @red@.
+  -> GLfixed -- ^ @green@.
+  -> GLfixed -- ^ @blue@.
+  -> GLfixed -- ^ @alpha@.
+  -> m ()
+glClearColorx v1 v2 v3 v4 = liftIO $ dyn53 ptr_glClearColorx v1 v2 v3 v4
+
+{-# NOINLINE ptr_glClearColorx #-}
+ptr_glClearColorx :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
+ptr_glClearColorx = unsafePerformIO $ getCommand "glClearColorx"
+
+-- glClearColorxOES ------------------------------------------------------------
+
+glClearColorxOES
+  :: MonadIO m
+  => GLfixed -- ^ @red@ of type @ClampedFixed@.
+  -> GLfixed -- ^ @green@ of type @ClampedFixed@.
+  -> GLfixed -- ^ @blue@ of type @ClampedFixed@.
+  -> GLfixed -- ^ @alpha@ of type @ClampedFixed@.
+  -> m ()
+glClearColorxOES v1 v2 v3 v4 = liftIO $ dyn53 ptr_glClearColorxOES v1 v2 v3 v4
+
+{-# NOINLINE ptr_glClearColorxOES #-}
+ptr_glClearColorxOES :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
+ptr_glClearColorxOES = unsafePerformIO $ getCommand "glClearColorxOES"
+
+-- glClearDepth ----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glClearDepth.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glClearDepth.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glClearDepth.xhtml OpenGL 4.x>.
+glClearDepth
+  :: MonadIO m
+  => GLdouble -- ^ @depth@.
+  -> m ()
+glClearDepth v1 = liftIO $ dyn84 ptr_glClearDepth v1
+
+{-# NOINLINE ptr_glClearDepth #-}
+ptr_glClearDepth :: FunPtr (GLdouble -> IO ())
+ptr_glClearDepth = unsafePerformIO $ getCommand "glClearDepth"
+
+-- glClearDepthdNV -------------------------------------------------------------
+
+glClearDepthdNV
+  :: MonadIO m
+  => GLdouble -- ^ @depth@.
+  -> m ()
+glClearDepthdNV v1 = liftIO $ dyn84 ptr_glClearDepthdNV v1
+
+{-# NOINLINE ptr_glClearDepthdNV #-}
+ptr_glClearDepthdNV :: FunPtr (GLdouble -> IO ())
+ptr_glClearDepthdNV = unsafePerformIO $ getCommand "glClearDepthdNV"
+
+-- glClearDepthf ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glClearDepth.xhtml OpenGL 4.x>.
+glClearDepthf
+  :: MonadIO m
+  => GLfloat -- ^ @d@.
+  -> m ()
+glClearDepthf v1 = liftIO $ dyn85 ptr_glClearDepthf v1
+
+{-# NOINLINE ptr_glClearDepthf #-}
+ptr_glClearDepthf :: FunPtr (GLfloat -> IO ())
+ptr_glClearDepthf = unsafePerformIO $ getCommand "glClearDepthf"
+
+-- glClearDepthfOES ------------------------------------------------------------
+
+-- | This command is an alias for 'glClearDepthf'.
+glClearDepthfOES
+  :: MonadIO m
+  => GLclampf -- ^ @depth@ of type @ClampedFloat32@.
+  -> m ()
+glClearDepthfOES v1 = liftIO $ dyn86 ptr_glClearDepthfOES v1
+
+{-# NOINLINE ptr_glClearDepthfOES #-}
+ptr_glClearDepthfOES :: FunPtr (GLclampf -> IO ())
+ptr_glClearDepthfOES = unsafePerformIO $ getCommand "glClearDepthfOES"
+
+-- glClearDepthx ---------------------------------------------------------------
+
+glClearDepthx
+  :: MonadIO m
+  => GLfixed -- ^ @depth@.
+  -> m ()
+glClearDepthx v1 = liftIO $ dyn87 ptr_glClearDepthx v1
+
+{-# NOINLINE ptr_glClearDepthx #-}
+ptr_glClearDepthx :: FunPtr (GLfixed -> IO ())
+ptr_glClearDepthx = unsafePerformIO $ getCommand "glClearDepthx"
+
diff --git a/src/Graphics/GL/Functions/F03.hs b/src/Graphics/GL/Functions/F03.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Functions/F03.hs
@@ -0,0 +1,1618 @@
+{-# OPTIONS_HADDOCK hide #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Functions.F03
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- Raw functions from the
+-- <http://www.opengl.org/registry/ OpenGL registry>.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Functions.F03 (
+  glClearDepthxOES,
+  glClearIndex,
+  glClearNamedBufferData,
+  glClearNamedBufferDataEXT,
+  glClearNamedBufferSubData,
+  glClearNamedBufferSubDataEXT,
+  glClearNamedFramebufferfi,
+  glClearNamedFramebufferfv,
+  glClearNamedFramebufferiv,
+  glClearNamedFramebufferuiv,
+  glClearPixelLocalStorageuiEXT,
+  glClearStencil,
+  glClearTexImage,
+  glClearTexImageEXT,
+  glClearTexSubImage,
+  glClearTexSubImageEXT,
+  glClientActiveTexture,
+  glClientActiveTextureARB,
+  glClientActiveVertexStreamATI,
+  glClientAttribDefaultEXT,
+  glClientWaitSemaphoreui64NVX,
+  glClientWaitSync,
+  glClientWaitSyncAPPLE,
+  glClipControl,
+  glClipControlEXT,
+  glClipPlane,
+  glClipPlanef,
+  glClipPlanefIMG,
+  glClipPlanefOES,
+  glClipPlanex,
+  glClipPlanexIMG,
+  glClipPlanexOES,
+  glColor3b,
+  glColor3bv,
+  glColor3d,
+  glColor3dv,
+  glColor3f,
+  glColor3fVertex3fSUN,
+  glColor3fVertex3fvSUN,
+  glColor3fv,
+  glColor3hNV,
+  glColor3hvNV,
+  glColor3i,
+  glColor3iv,
+  glColor3s,
+  glColor3sv,
+  glColor3ub,
+  glColor3ubv,
+  glColor3ui,
+  glColor3uiv,
+  glColor3us,
+  glColor3usv,
+  glColor3xOES,
+  glColor3xvOES,
+  glColor4b,
+  glColor4bv,
+  glColor4d,
+  glColor4dv,
+  glColor4f,
+  glColor4fNormal3fVertex3fSUN,
+  glColor4fNormal3fVertex3fvSUN,
+  glColor4fv,
+  glColor4hNV,
+  glColor4hvNV,
+  glColor4i,
+  glColor4iv,
+  glColor4s,
+  glColor4sv,
+  glColor4ub,
+  glColor4ubVertex2fSUN,
+  glColor4ubVertex2fvSUN,
+  glColor4ubVertex3fSUN,
+  glColor4ubVertex3fvSUN,
+  glColor4ubv,
+  glColor4ui,
+  glColor4uiv,
+  glColor4us,
+  glColor4usv,
+  glColor4x,
+  glColor4xOES,
+  glColor4xvOES,
+  glColorFormatNV,
+  glColorFragmentOp1ATI,
+  glColorFragmentOp2ATI,
+  glColorFragmentOp3ATI,
+  glColorMask,
+  glColorMaskIndexedEXT,
+  glColorMaski,
+  glColorMaskiEXT,
+  glColorMaskiOES,
+  glColorMaterial,
+  glColorP3ui,
+  glColorP3uiv,
+  glColorP4ui,
+  glColorP4uiv,
+  glColorPointer,
+  glColorPointerEXT,
+  glColorPointerListIBM,
+  glColorPointervINTEL,
+  glColorSubTable
+) where
+
+import Control.Monad.IO.Class ( MonadIO(..) )
+import Foreign.Ptr
+import Graphics.GL.Foreign
+import Graphics.GL.Types
+import System.IO.Unsafe ( unsafePerformIO )
+
+-- glClearDepthxOES ------------------------------------------------------------
+
+glClearDepthxOES
+  :: MonadIO m
+  => GLfixed -- ^ @depth@ of type @ClampedFixed@.
+  -> m ()
+glClearDepthxOES v1 = liftIO $ dyn87 ptr_glClearDepthxOES v1
+
+{-# NOINLINE ptr_glClearDepthxOES #-}
+ptr_glClearDepthxOES :: FunPtr (GLfixed -> IO ())
+ptr_glClearDepthxOES = unsafePerformIO $ getCommand "glClearDepthxOES"
+
+-- glClearIndex ----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glClearIndex.xml OpenGL 2.x>.
+glClearIndex
+  :: MonadIO m
+  => GLfloat -- ^ @c@ of type @MaskedColorIndexValueF@.
+  -> m ()
+glClearIndex v1 = liftIO $ dyn85 ptr_glClearIndex v1
+
+{-# NOINLINE ptr_glClearIndex #-}
+ptr_glClearIndex :: FunPtr (GLfloat -> IO ())
+ptr_glClearIndex = unsafePerformIO $ getCommand "glClearIndex"
+
+-- glClearNamedBufferData ------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glClearBufferData.xhtml OpenGL 4.x>.
+glClearNamedBufferData
+  :: MonadIO m
+  => GLuint -- ^ @buffer@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @data@.
+  -> m ()
+glClearNamedBufferData v1 v2 v3 v4 v5 = liftIO $ dyn88 ptr_glClearNamedBufferData v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glClearNamedBufferData #-}
+ptr_glClearNamedBufferData :: FunPtr (GLuint -> GLenum -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glClearNamedBufferData = unsafePerformIO $ getCommand "glClearNamedBufferData"
+
+-- glClearNamedBufferDataEXT ---------------------------------------------------
+
+glClearNamedBufferDataEXT
+  :: MonadIO m
+  => GLuint -- ^ @buffer@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @data@ pointing to @COMPSIZE(format,type)@ elements of type @a@.
+  -> m ()
+glClearNamedBufferDataEXT v1 v2 v3 v4 v5 = liftIO $ dyn88 ptr_glClearNamedBufferDataEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glClearNamedBufferDataEXT #-}
+ptr_glClearNamedBufferDataEXT :: FunPtr (GLuint -> GLenum -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glClearNamedBufferDataEXT = unsafePerformIO $ getCommand "glClearNamedBufferDataEXT"
+
+-- glClearNamedBufferSubData ---------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glClearBufferSubData.xhtml OpenGL 4.x>.
+glClearNamedBufferSubData
+  :: MonadIO m
+  => GLuint -- ^ @buffer@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLintptr -- ^ @offset@.
+  -> GLsizeiptr -- ^ @size@ of type @BufferSize@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @data@.
+  -> m ()
+glClearNamedBufferSubData v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn89 ptr_glClearNamedBufferSubData v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glClearNamedBufferSubData #-}
+ptr_glClearNamedBufferSubData :: FunPtr (GLuint -> GLenum -> GLintptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glClearNamedBufferSubData = unsafePerformIO $ getCommand "glClearNamedBufferSubData"
+
+-- glClearNamedBufferSubDataEXT ------------------------------------------------
+
+glClearNamedBufferSubDataEXT
+  :: MonadIO m
+  => GLuint -- ^ @buffer@.
+  -> GLenum -- ^ @internalformat@.
+  -> GLsizeiptr -- ^ @offset@ of type @BufferSize@.
+  -> GLsizeiptr -- ^ @size@ of type @BufferSize@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @data@ pointing to @COMPSIZE(format,type)@ elements of type @a@.
+  -> m ()
+glClearNamedBufferSubDataEXT v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn90 ptr_glClearNamedBufferSubDataEXT v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glClearNamedBufferSubDataEXT #-}
+ptr_glClearNamedBufferSubDataEXT :: FunPtr (GLuint -> GLenum -> GLsizeiptr -> GLsizeiptr -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glClearNamedBufferSubDataEXT = unsafePerformIO $ getCommand "glClearNamedBufferSubDataEXT"
+
+-- glClearNamedFramebufferfi ---------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glClearBuffer.xhtml OpenGL 4.x>.
+glClearNamedFramebufferfi
+  :: MonadIO m
+  => GLuint -- ^ @framebuffer@.
+  -> GLenum -- ^ @buffer@ of type [Buffer](Graphics-GL-Groups.html#Buffer).
+  -> GLint -- ^ @drawbuffer@.
+  -> GLfloat -- ^ @depth@.
+  -> GLint -- ^ @stencil@.
+  -> m ()
+glClearNamedFramebufferfi v1 v2 v3 v4 v5 = liftIO $ dyn91 ptr_glClearNamedFramebufferfi v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glClearNamedFramebufferfi #-}
+ptr_glClearNamedFramebufferfi :: FunPtr (GLuint -> GLenum -> GLint -> GLfloat -> GLint -> IO ())
+ptr_glClearNamedFramebufferfi = unsafePerformIO $ getCommand "glClearNamedFramebufferfi"
+
+-- glClearNamedFramebufferfv ---------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glClearBuffer.xhtml OpenGL 4.x>.
+glClearNamedFramebufferfv
+  :: MonadIO m
+  => GLuint -- ^ @framebuffer@.
+  -> GLenum -- ^ @buffer@ of type [Buffer](Graphics-GL-Groups.html#Buffer).
+  -> GLint -- ^ @drawbuffer@.
+  -> Ptr GLfloat -- ^ @value@.
+  -> m ()
+glClearNamedFramebufferfv v1 v2 v3 v4 = liftIO $ dyn92 ptr_glClearNamedFramebufferfv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glClearNamedFramebufferfv #-}
+ptr_glClearNamedFramebufferfv :: FunPtr (GLuint -> GLenum -> GLint -> Ptr GLfloat -> IO ())
+ptr_glClearNamedFramebufferfv = unsafePerformIO $ getCommand "glClearNamedFramebufferfv"
+
+-- glClearNamedFramebufferiv ---------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glClearBuffer.xhtml OpenGL 4.x>.
+glClearNamedFramebufferiv
+  :: MonadIO m
+  => GLuint -- ^ @framebuffer@.
+  -> GLenum -- ^ @buffer@ of type [Buffer](Graphics-GL-Groups.html#Buffer).
+  -> GLint -- ^ @drawbuffer@.
+  -> Ptr GLint -- ^ @value@.
+  -> m ()
+glClearNamedFramebufferiv v1 v2 v3 v4 = liftIO $ dyn93 ptr_glClearNamedFramebufferiv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glClearNamedFramebufferiv #-}
+ptr_glClearNamedFramebufferiv :: FunPtr (GLuint -> GLenum -> GLint -> Ptr GLint -> IO ())
+ptr_glClearNamedFramebufferiv = unsafePerformIO $ getCommand "glClearNamedFramebufferiv"
+
+-- glClearNamedFramebufferuiv --------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glClearBuffer.xhtml OpenGL 4.x>.
+glClearNamedFramebufferuiv
+  :: MonadIO m
+  => GLuint -- ^ @framebuffer@.
+  -> GLenum -- ^ @buffer@ of type [Buffer](Graphics-GL-Groups.html#Buffer).
+  -> GLint -- ^ @drawbuffer@.
+  -> Ptr GLuint -- ^ @value@.
+  -> m ()
+glClearNamedFramebufferuiv v1 v2 v3 v4 = liftIO $ dyn94 ptr_glClearNamedFramebufferuiv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glClearNamedFramebufferuiv #-}
+ptr_glClearNamedFramebufferuiv :: FunPtr (GLuint -> GLenum -> GLint -> Ptr GLuint -> IO ())
+ptr_glClearNamedFramebufferuiv = unsafePerformIO $ getCommand "glClearNamedFramebufferuiv"
+
+-- glClearPixelLocalStorageuiEXT -----------------------------------------------
+
+glClearPixelLocalStorageuiEXT
+  :: MonadIO m
+  => GLsizei -- ^ @offset@.
+  -> GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @values@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glClearPixelLocalStorageuiEXT v1 v2 v3 = liftIO $ dyn95 ptr_glClearPixelLocalStorageuiEXT v1 v2 v3
+
+{-# NOINLINE ptr_glClearPixelLocalStorageuiEXT #-}
+ptr_glClearPixelLocalStorageuiEXT :: FunPtr (GLsizei -> GLsizei -> Ptr GLuint -> IO ())
+ptr_glClearPixelLocalStorageuiEXT = unsafePerformIO $ getCommand "glClearPixelLocalStorageuiEXT"
+
+-- glClearStencil --------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glClearStencil.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glClearStencil.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glClearStencil.xhtml OpenGL 4.x>.
+glClearStencil
+  :: MonadIO m
+  => GLint -- ^ @s@ of type @StencilValue@.
+  -> m ()
+glClearStencil v1 = liftIO $ dyn13 ptr_glClearStencil v1
+
+{-# NOINLINE ptr_glClearStencil #-}
+ptr_glClearStencil :: FunPtr (GLint -> IO ())
+ptr_glClearStencil = unsafePerformIO $ getCommand "glClearStencil"
+
+-- glClearTexImage -------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glClearTexImage.xhtml OpenGL 4.x>.
+glClearTexImage
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLint -- ^ @level@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @data@ pointing to @COMPSIZE(format,type)@ elements of type @a@.
+  -> m ()
+glClearTexImage v1 v2 v3 v4 v5 = liftIO $ dyn96 ptr_glClearTexImage v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glClearTexImage #-}
+ptr_glClearTexImage :: FunPtr (GLuint -> GLint -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glClearTexImage = unsafePerformIO $ getCommand "glClearTexImage"
+
+-- glClearTexImageEXT ----------------------------------------------------------
+
+-- | This command is an alias for 'glClearTexImage'.
+glClearTexImageEXT
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLint -- ^ @level@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @data@ pointing to @COMPSIZE(format,type)@ elements of type @a@.
+  -> m ()
+glClearTexImageEXT v1 v2 v3 v4 v5 = liftIO $ dyn96 ptr_glClearTexImageEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glClearTexImageEXT #-}
+ptr_glClearTexImageEXT :: FunPtr (GLuint -> GLint -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glClearTexImageEXT = unsafePerformIO $ getCommand "glClearTexImageEXT"
+
+-- glClearTexSubImage ----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glClearTexSubImage.xhtml OpenGL 4.x>.
+glClearTexSubImage
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLint -- ^ @level@.
+  -> GLint -- ^ @xoffset@.
+  -> GLint -- ^ @yoffset@.
+  -> GLint -- ^ @zoffset@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLsizei -- ^ @depth@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @data@ pointing to @COMPSIZE(format,type)@ elements of type @a@.
+  -> m ()
+glClearTexSubImage v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 = liftIO $ dyn97 ptr_glClearTexSubImage v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11
+
+{-# NOINLINE ptr_glClearTexSubImage #-}
+ptr_glClearTexSubImage :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glClearTexSubImage = unsafePerformIO $ getCommand "glClearTexSubImage"
+
+-- glClearTexSubImageEXT -------------------------------------------------------
+
+-- | This command is an alias for 'glClearTexSubImage'.
+glClearTexSubImageEXT
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLint -- ^ @level@.
+  -> GLint -- ^ @xoffset@.
+  -> GLint -- ^ @yoffset@.
+  -> GLint -- ^ @zoffset@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLsizei -- ^ @depth@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @data@ pointing to @COMPSIZE(format,type)@ elements of type @a@.
+  -> m ()
+glClearTexSubImageEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 = liftIO $ dyn97 ptr_glClearTexSubImageEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11
+
+{-# NOINLINE ptr_glClearTexSubImageEXT #-}
+ptr_glClearTexSubImageEXT :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glClearTexSubImageEXT = unsafePerformIO $ getCommand "glClearTexSubImageEXT"
+
+-- glClientActiveTexture -------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glClientActiveTexture.xml OpenGL 2.x>.
+glClientActiveTexture
+  :: MonadIO m
+  => GLenum -- ^ @texture@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> m ()
+glClientActiveTexture v1 = liftIO $ dyn5 ptr_glClientActiveTexture v1
+
+{-# NOINLINE ptr_glClientActiveTexture #-}
+ptr_glClientActiveTexture :: FunPtr (GLenum -> IO ())
+ptr_glClientActiveTexture = unsafePerformIO $ getCommand "glClientActiveTexture"
+
+-- glClientActiveTextureARB ----------------------------------------------------
+
+-- | This command is an alias for 'glClientActiveTexture'.
+glClientActiveTextureARB
+  :: MonadIO m
+  => GLenum -- ^ @texture@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> m ()
+glClientActiveTextureARB v1 = liftIO $ dyn5 ptr_glClientActiveTextureARB v1
+
+{-# NOINLINE ptr_glClientActiveTextureARB #-}
+ptr_glClientActiveTextureARB :: FunPtr (GLenum -> IO ())
+ptr_glClientActiveTextureARB = unsafePerformIO $ getCommand "glClientActiveTextureARB"
+
+-- glClientActiveVertexStreamATI -----------------------------------------------
+
+glClientActiveVertexStreamATI
+  :: MonadIO m
+  => GLenum -- ^ @stream@ of type [VertexStreamATI](Graphics-GL-Groups.html#VertexStreamATI).
+  -> m ()
+glClientActiveVertexStreamATI v1 = liftIO $ dyn5 ptr_glClientActiveVertexStreamATI v1
+
+{-# NOINLINE ptr_glClientActiveVertexStreamATI #-}
+ptr_glClientActiveVertexStreamATI :: FunPtr (GLenum -> IO ())
+ptr_glClientActiveVertexStreamATI = unsafePerformIO $ getCommand "glClientActiveVertexStreamATI"
+
+-- glClientAttribDefaultEXT ----------------------------------------------------
+
+glClientAttribDefaultEXT
+  :: MonadIO m
+  => GLbitfield -- ^ @mask@ of type [ClientAttribMask](Graphics-GL-Groups.html#ClientAttribMask).
+  -> m ()
+glClientAttribDefaultEXT v1 = liftIO $ dyn75 ptr_glClientAttribDefaultEXT v1
+
+{-# NOINLINE ptr_glClientAttribDefaultEXT #-}
+ptr_glClientAttribDefaultEXT :: FunPtr (GLbitfield -> IO ())
+ptr_glClientAttribDefaultEXT = unsafePerformIO $ getCommand "glClientAttribDefaultEXT"
+
+-- glClientWaitSemaphoreui64NVX ------------------------------------------------
+
+glClientWaitSemaphoreui64NVX
+  :: MonadIO m
+  => GLsizei -- ^ @fenceObjectCount@.
+  -> Ptr GLuint -- ^ @semaphoreArray@ pointing to @fenceObjectCount@ elements of type @GLuint@.
+  -> Ptr GLuint64 -- ^ @fenceValueArray@ pointing to @fenceObjectCount@ elements of type @GLuint64@.
+  -> m ()
+glClientWaitSemaphoreui64NVX v1 v2 v3 = liftIO $ dyn98 ptr_glClientWaitSemaphoreui64NVX v1 v2 v3
+
+{-# NOINLINE ptr_glClientWaitSemaphoreui64NVX #-}
+ptr_glClientWaitSemaphoreui64NVX :: FunPtr (GLsizei -> Ptr GLuint -> Ptr GLuint64 -> IO ())
+ptr_glClientWaitSemaphoreui64NVX = unsafePerformIO $ getCommand "glClientWaitSemaphoreui64NVX"
+
+-- glClientWaitSync ------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glClientWaitSync.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glClientWaitSync.xhtml OpenGL 4.x>.
+glClientWaitSync
+  :: MonadIO m
+  => GLsync -- ^ @sync@ of type @sync@.
+  -> GLbitfield -- ^ @flags@ of type [SyncObjectMask](Graphics-GL-Groups.html#SyncObjectMask).
+  -> GLuint64 -- ^ @timeout@.
+  -> m GLenum -- ^ of type [SyncStatus](Graphics-GL-Groups.html#SyncStatus).
+glClientWaitSync v1 v2 v3 = liftIO $ dyn99 ptr_glClientWaitSync v1 v2 v3
+
+{-# NOINLINE ptr_glClientWaitSync #-}
+ptr_glClientWaitSync :: FunPtr (GLsync -> GLbitfield -> GLuint64 -> IO GLenum)
+ptr_glClientWaitSync = unsafePerformIO $ getCommand "glClientWaitSync"
+
+-- glClientWaitSyncAPPLE -------------------------------------------------------
+
+-- | This command is an alias for 'glClientWaitSync'.
+glClientWaitSyncAPPLE
+  :: MonadIO m
+  => GLsync -- ^ @sync@.
+  -> GLbitfield -- ^ @flags@ of type [SyncObjectMask](Graphics-GL-Groups.html#SyncObjectMask).
+  -> GLuint64 -- ^ @timeout@.
+  -> m GLenum -- ^ of type [SyncStatus](Graphics-GL-Groups.html#SyncStatus).
+glClientWaitSyncAPPLE v1 v2 v3 = liftIO $ dyn99 ptr_glClientWaitSyncAPPLE v1 v2 v3
+
+{-# NOINLINE ptr_glClientWaitSyncAPPLE #-}
+ptr_glClientWaitSyncAPPLE :: FunPtr (GLsync -> GLbitfield -> GLuint64 -> IO GLenum)
+ptr_glClientWaitSyncAPPLE = unsafePerformIO $ getCommand "glClientWaitSyncAPPLE"
+
+-- glClipControl ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glClipControl.xhtml OpenGL 4.x>.
+glClipControl
+  :: MonadIO m
+  => GLenum -- ^ @origin@ of type [ClipControlOrigin](Graphics-GL-Groups.html#ClipControlOrigin).
+  -> GLenum -- ^ @depth@ of type [ClipControlDepth](Graphics-GL-Groups.html#ClipControlDepth).
+  -> m ()
+glClipControl v1 v2 = liftIO $ dyn54 ptr_glClipControl v1 v2
+
+{-# NOINLINE ptr_glClipControl #-}
+ptr_glClipControl :: FunPtr (GLenum -> GLenum -> IO ())
+ptr_glClipControl = unsafePerformIO $ getCommand "glClipControl"
+
+-- glClipControlEXT ------------------------------------------------------------
+
+-- | This command is an alias for 'glClipControl'.
+glClipControlEXT
+  :: MonadIO m
+  => GLenum -- ^ @origin@.
+  -> GLenum -- ^ @depth@.
+  -> m ()
+glClipControlEXT v1 v2 = liftIO $ dyn54 ptr_glClipControlEXT v1 v2
+
+{-# NOINLINE ptr_glClipControlEXT #-}
+ptr_glClipControlEXT :: FunPtr (GLenum -> GLenum -> IO ())
+ptr_glClipControlEXT = unsafePerformIO $ getCommand "glClipControlEXT"
+
+-- glClipPlane -----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glClipPlane.xml OpenGL 2.x>.
+glClipPlane
+  :: MonadIO m
+  => GLenum -- ^ @plane@ of type [ClipPlaneName](Graphics-GL-Groups.html#ClipPlaneName).
+  -> Ptr GLdouble -- ^ @equation@ pointing to @4@ elements of type @GLdouble@.
+  -> m ()
+glClipPlane v1 v2 = liftIO $ dyn100 ptr_glClipPlane v1 v2
+
+{-# NOINLINE ptr_glClipPlane #-}
+ptr_glClipPlane :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+ptr_glClipPlane = unsafePerformIO $ getCommand "glClipPlane"
+
+-- glClipPlanef ----------------------------------------------------------------
+
+glClipPlanef
+  :: MonadIO m
+  => GLenum -- ^ @p@ of type [ClipPlaneName](Graphics-GL-Groups.html#ClipPlaneName).
+  -> Ptr GLfloat -- ^ @eqn@ pointing to @4@ elements of type @GLfloat@.
+  -> m ()
+glClipPlanef v1 v2 = liftIO $ dyn101 ptr_glClipPlanef v1 v2
+
+{-# NOINLINE ptr_glClipPlanef #-}
+ptr_glClipPlanef :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+ptr_glClipPlanef = unsafePerformIO $ getCommand "glClipPlanef"
+
+-- glClipPlanefIMG -------------------------------------------------------------
+
+glClipPlanefIMG
+  :: MonadIO m
+  => GLenum -- ^ @p@ of type [ClipPlaneName](Graphics-GL-Groups.html#ClipPlaneName).
+  -> Ptr GLfloat -- ^ @eqn@ pointing to @4@ elements of type @GLfloat@.
+  -> m ()
+glClipPlanefIMG v1 v2 = liftIO $ dyn101 ptr_glClipPlanefIMG v1 v2
+
+{-# NOINLINE ptr_glClipPlanefIMG #-}
+ptr_glClipPlanefIMG :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+ptr_glClipPlanefIMG = unsafePerformIO $ getCommand "glClipPlanefIMG"
+
+-- glClipPlanefOES -------------------------------------------------------------
+
+glClipPlanefOES
+  :: MonadIO m
+  => GLenum -- ^ @plane@ of type [ClipPlaneName](Graphics-GL-Groups.html#ClipPlaneName).
+  -> Ptr GLfloat -- ^ @equation@ pointing to @4@ elements of type @GLfloat@.
+  -> m ()
+glClipPlanefOES v1 v2 = liftIO $ dyn101 ptr_glClipPlanefOES v1 v2
+
+{-# NOINLINE ptr_glClipPlanefOES #-}
+ptr_glClipPlanefOES :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+ptr_glClipPlanefOES = unsafePerformIO $ getCommand "glClipPlanefOES"
+
+-- glClipPlanex ----------------------------------------------------------------
+
+glClipPlanex
+  :: MonadIO m
+  => GLenum -- ^ @plane@ of type [ClipPlaneName](Graphics-GL-Groups.html#ClipPlaneName).
+  -> Ptr GLfixed -- ^ @equation@ pointing to @4@ elements of type @GLfixed@.
+  -> m ()
+glClipPlanex v1 v2 = liftIO $ dyn102 ptr_glClipPlanex v1 v2
+
+{-# NOINLINE ptr_glClipPlanex #-}
+ptr_glClipPlanex :: FunPtr (GLenum -> Ptr GLfixed -> IO ())
+ptr_glClipPlanex = unsafePerformIO $ getCommand "glClipPlanex"
+
+-- glClipPlanexIMG -------------------------------------------------------------
+
+glClipPlanexIMG
+  :: MonadIO m
+  => GLenum -- ^ @p@ of type [ClipPlaneName](Graphics-GL-Groups.html#ClipPlaneName).
+  -> Ptr GLfixed -- ^ @eqn@ pointing to @4@ elements of type @GLfixed@.
+  -> m ()
+glClipPlanexIMG v1 v2 = liftIO $ dyn102 ptr_glClipPlanexIMG v1 v2
+
+{-# NOINLINE ptr_glClipPlanexIMG #-}
+ptr_glClipPlanexIMG :: FunPtr (GLenum -> Ptr GLfixed -> IO ())
+ptr_glClipPlanexIMG = unsafePerformIO $ getCommand "glClipPlanexIMG"
+
+-- glClipPlanexOES -------------------------------------------------------------
+
+glClipPlanexOES
+  :: MonadIO m
+  => GLenum -- ^ @plane@ of type [ClipPlaneName](Graphics-GL-Groups.html#ClipPlaneName).
+  -> Ptr GLfixed -- ^ @equation@ pointing to @4@ elements of type @GLfixed@.
+  -> m ()
+glClipPlanexOES v1 v2 = liftIO $ dyn102 ptr_glClipPlanexOES v1 v2
+
+{-# NOINLINE ptr_glClipPlanexOES #-}
+ptr_glClipPlanexOES :: FunPtr (GLenum -> Ptr GLfixed -> IO ())
+ptr_glClipPlanexOES = unsafePerformIO $ getCommand "glClipPlanexOES"
+
+-- glColor3b -------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glColor.xml OpenGL 2.x>. The vector equivalent of this command is 'glColor3bv'.
+glColor3b
+  :: MonadIO m
+  => GLbyte -- ^ @red@ of type @ColorB@.
+  -> GLbyte -- ^ @green@ of type @ColorB@.
+  -> GLbyte -- ^ @blue@ of type @ColorB@.
+  -> m ()
+glColor3b v1 v2 v3 = liftIO $ dyn39 ptr_glColor3b v1 v2 v3
+
+{-# NOINLINE ptr_glColor3b #-}
+ptr_glColor3b :: FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
+ptr_glColor3b = unsafePerformIO $ getCommand "glColor3b"
+
+-- glColor3bv ------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glColor.xml OpenGL 2.x>.
+glColor3bv
+  :: MonadIO m
+  => Ptr GLbyte -- ^ @v@ pointing to @3@ elements of type @ColorB@.
+  -> m ()
+glColor3bv v1 = liftIO $ dyn40 ptr_glColor3bv v1
+
+{-# NOINLINE ptr_glColor3bv #-}
+ptr_glColor3bv :: FunPtr (Ptr GLbyte -> IO ())
+ptr_glColor3bv = unsafePerformIO $ getCommand "glColor3bv"
+
+-- glColor3d -------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glColor.xml OpenGL 2.x>. The vector equivalent of this command is 'glColor3dv'.
+glColor3d
+  :: MonadIO m
+  => GLdouble -- ^ @red@ of type @ColorD@.
+  -> GLdouble -- ^ @green@ of type @ColorD@.
+  -> GLdouble -- ^ @blue@ of type @ColorD@.
+  -> m ()
+glColor3d v1 v2 v3 = liftIO $ dyn41 ptr_glColor3d v1 v2 v3
+
+{-# NOINLINE ptr_glColor3d #-}
+ptr_glColor3d :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
+ptr_glColor3d = unsafePerformIO $ getCommand "glColor3d"
+
+-- glColor3dv ------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glColor.xml OpenGL 2.x>.
+glColor3dv
+  :: MonadIO m
+  => Ptr GLdouble -- ^ @v@ pointing to @3@ elements of type @ColorD@.
+  -> m ()
+glColor3dv v1 = liftIO $ dyn42 ptr_glColor3dv v1
+
+{-# NOINLINE ptr_glColor3dv #-}
+ptr_glColor3dv :: FunPtr (Ptr GLdouble -> IO ())
+ptr_glColor3dv = unsafePerformIO $ getCommand "glColor3dv"
+
+-- glColor3f -------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glColor.xml OpenGL 2.x>. The vector equivalent of this command is 'glColor3fv'.
+glColor3f
+  :: MonadIO m
+  => GLfloat -- ^ @red@ of type @ColorF@.
+  -> GLfloat -- ^ @green@ of type @ColorF@.
+  -> GLfloat -- ^ @blue@ of type @ColorF@.
+  -> m ()
+glColor3f v1 v2 v3 = liftIO $ dyn43 ptr_glColor3f v1 v2 v3
+
+{-# NOINLINE ptr_glColor3f #-}
+ptr_glColor3f :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glColor3f = unsafePerformIO $ getCommand "glColor3f"
+
+-- glColor3fVertex3fSUN --------------------------------------------------------
+
+glColor3fVertex3fSUN
+  :: MonadIO m
+  => GLfloat -- ^ @r@.
+  -> GLfloat -- ^ @g@.
+  -> GLfloat -- ^ @b@.
+  -> GLfloat -- ^ @x@.
+  -> GLfloat -- ^ @y@.
+  -> GLfloat -- ^ @z@.
+  -> m ()
+glColor3fVertex3fSUN v1 v2 v3 v4 v5 v6 = liftIO $ dyn103 ptr_glColor3fVertex3fSUN v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glColor3fVertex3fSUN #-}
+ptr_glColor3fVertex3fSUN :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glColor3fVertex3fSUN = unsafePerformIO $ getCommand "glColor3fVertex3fSUN"
+
+-- glColor3fVertex3fvSUN -------------------------------------------------------
+
+glColor3fVertex3fvSUN
+  :: MonadIO m
+  => Ptr GLfloat -- ^ @c@ pointing to @3@ elements of type @GLfloat@.
+  -> Ptr GLfloat -- ^ @v@ pointing to @3@ elements of type @GLfloat@.
+  -> m ()
+glColor3fVertex3fvSUN v1 v2 = liftIO $ dyn104 ptr_glColor3fVertex3fvSUN v1 v2
+
+{-# NOINLINE ptr_glColor3fVertex3fvSUN #-}
+ptr_glColor3fVertex3fvSUN :: FunPtr (Ptr GLfloat -> Ptr GLfloat -> IO ())
+ptr_glColor3fVertex3fvSUN = unsafePerformIO $ getCommand "glColor3fVertex3fvSUN"
+
+-- glColor3fv ------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glColor.xml OpenGL 2.x>.
+glColor3fv
+  :: MonadIO m
+  => Ptr GLfloat -- ^ @v@ pointing to @3@ elements of type @ColorF@.
+  -> m ()
+glColor3fv v1 = liftIO $ dyn44 ptr_glColor3fv v1
+
+{-# NOINLINE ptr_glColor3fv #-}
+ptr_glColor3fv :: FunPtr (Ptr GLfloat -> IO ())
+ptr_glColor3fv = unsafePerformIO $ getCommand "glColor3fv"
+
+-- glColor3hNV -----------------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glColor3hvNV'.
+glColor3hNV
+  :: MonadIO m
+  => GLhalfNV -- ^ @red@ of type @Half16NV@.
+  -> GLhalfNV -- ^ @green@ of type @Half16NV@.
+  -> GLhalfNV -- ^ @blue@ of type @Half16NV@.
+  -> m ()
+glColor3hNV v1 v2 v3 = liftIO $ dyn105 ptr_glColor3hNV v1 v2 v3
+
+{-# NOINLINE ptr_glColor3hNV #-}
+ptr_glColor3hNV :: FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
+ptr_glColor3hNV = unsafePerformIO $ getCommand "glColor3hNV"
+
+-- glColor3hvNV ----------------------------------------------------------------
+
+glColor3hvNV
+  :: MonadIO m
+  => Ptr GLhalfNV -- ^ @v@ pointing to @3@ elements of type @Half16NV@.
+  -> m ()
+glColor3hvNV v1 = liftIO $ dyn106 ptr_glColor3hvNV v1
+
+{-# NOINLINE ptr_glColor3hvNV #-}
+ptr_glColor3hvNV :: FunPtr (Ptr GLhalfNV -> IO ())
+ptr_glColor3hvNV = unsafePerformIO $ getCommand "glColor3hvNV"
+
+-- glColor3i -------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glColor.xml OpenGL 2.x>. The vector equivalent of this command is 'glColor3iv'.
+glColor3i
+  :: MonadIO m
+  => GLint -- ^ @red@ of type @ColorI@.
+  -> GLint -- ^ @green@ of type @ColorI@.
+  -> GLint -- ^ @blue@ of type @ColorI@.
+  -> m ()
+glColor3i v1 v2 v3 = liftIO $ dyn45 ptr_glColor3i v1 v2 v3
+
+{-# NOINLINE ptr_glColor3i #-}
+ptr_glColor3i :: FunPtr (GLint -> GLint -> GLint -> IO ())
+ptr_glColor3i = unsafePerformIO $ getCommand "glColor3i"
+
+-- glColor3iv ------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glColor.xml OpenGL 2.x>.
+glColor3iv
+  :: MonadIO m
+  => Ptr GLint -- ^ @v@ pointing to @3@ elements of type @ColorI@.
+  -> m ()
+glColor3iv v1 = liftIO $ dyn46 ptr_glColor3iv v1
+
+{-# NOINLINE ptr_glColor3iv #-}
+ptr_glColor3iv :: FunPtr (Ptr GLint -> IO ())
+ptr_glColor3iv = unsafePerformIO $ getCommand "glColor3iv"
+
+-- glColor3s -------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glColor.xml OpenGL 2.x>. The vector equivalent of this command is 'glColor3sv'.
+glColor3s
+  :: MonadIO m
+  => GLshort -- ^ @red@ of type @ColorS@.
+  -> GLshort -- ^ @green@ of type @ColorS@.
+  -> GLshort -- ^ @blue@ of type @ColorS@.
+  -> m ()
+glColor3s v1 v2 v3 = liftIO $ dyn47 ptr_glColor3s v1 v2 v3
+
+{-# NOINLINE ptr_glColor3s #-}
+ptr_glColor3s :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
+ptr_glColor3s = unsafePerformIO $ getCommand "glColor3s"
+
+-- glColor3sv ------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glColor.xml OpenGL 2.x>.
+glColor3sv
+  :: MonadIO m
+  => Ptr GLshort -- ^ @v@ pointing to @3@ elements of type @ColorS@.
+  -> m ()
+glColor3sv v1 = liftIO $ dyn48 ptr_glColor3sv v1
+
+{-# NOINLINE ptr_glColor3sv #-}
+ptr_glColor3sv :: FunPtr (Ptr GLshort -> IO ())
+ptr_glColor3sv = unsafePerformIO $ getCommand "glColor3sv"
+
+-- glColor3ub ------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glColor.xml OpenGL 2.x>. The vector equivalent of this command is 'glColor3ubv'.
+glColor3ub
+  :: MonadIO m
+  => GLubyte -- ^ @red@ of type @ColorUB@.
+  -> GLubyte -- ^ @green@ of type @ColorUB@.
+  -> GLubyte -- ^ @blue@ of type @ColorUB@.
+  -> m ()
+glColor3ub v1 v2 v3 = liftIO $ dyn107 ptr_glColor3ub v1 v2 v3
+
+{-# NOINLINE ptr_glColor3ub #-}
+ptr_glColor3ub :: FunPtr (GLubyte -> GLubyte -> GLubyte -> IO ())
+ptr_glColor3ub = unsafePerformIO $ getCommand "glColor3ub"
+
+-- glColor3ubv -----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glColor.xml OpenGL 2.x>.
+glColor3ubv
+  :: MonadIO m
+  => Ptr GLubyte -- ^ @v@ pointing to @3@ elements of type @ColorUB@.
+  -> m ()
+glColor3ubv v1 = liftIO $ dyn108 ptr_glColor3ubv v1
+
+{-# NOINLINE ptr_glColor3ubv #-}
+ptr_glColor3ubv :: FunPtr (Ptr GLubyte -> IO ())
+ptr_glColor3ubv = unsafePerformIO $ getCommand "glColor3ubv"
+
+-- glColor3ui ------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glColor.xml OpenGL 2.x>. The vector equivalent of this command is 'glColor3uiv'.
+glColor3ui
+  :: MonadIO m
+  => GLuint -- ^ @red@ of type @ColorUI@.
+  -> GLuint -- ^ @green@ of type @ColorUI@.
+  -> GLuint -- ^ @blue@ of type @ColorUI@.
+  -> m ()
+glColor3ui v1 v2 v3 = liftIO $ dyn109 ptr_glColor3ui v1 v2 v3
+
+{-# NOINLINE ptr_glColor3ui #-}
+ptr_glColor3ui :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
+ptr_glColor3ui = unsafePerformIO $ getCommand "glColor3ui"
+
+-- glColor3uiv -----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glColor.xml OpenGL 2.x>.
+glColor3uiv
+  :: MonadIO m
+  => Ptr GLuint -- ^ @v@ pointing to @3@ elements of type @ColorUI@.
+  -> m ()
+glColor3uiv v1 = liftIO $ dyn110 ptr_glColor3uiv v1
+
+{-# NOINLINE ptr_glColor3uiv #-}
+ptr_glColor3uiv :: FunPtr (Ptr GLuint -> IO ())
+ptr_glColor3uiv = unsafePerformIO $ getCommand "glColor3uiv"
+
+-- glColor3us ------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glColor.xml OpenGL 2.x>. The vector equivalent of this command is 'glColor3usv'.
+glColor3us
+  :: MonadIO m
+  => GLushort -- ^ @red@ of type @ColorUS@.
+  -> GLushort -- ^ @green@ of type @ColorUS@.
+  -> GLushort -- ^ @blue@ of type @ColorUS@.
+  -> m ()
+glColor3us v1 v2 v3 = liftIO $ dyn111 ptr_glColor3us v1 v2 v3
+
+{-# NOINLINE ptr_glColor3us #-}
+ptr_glColor3us :: FunPtr (GLushort -> GLushort -> GLushort -> IO ())
+ptr_glColor3us = unsafePerformIO $ getCommand "glColor3us"
+
+-- glColor3usv -----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glColor.xml OpenGL 2.x>.
+glColor3usv
+  :: MonadIO m
+  => Ptr GLushort -- ^ @v@ pointing to @3@ elements of type @ColorUS@.
+  -> m ()
+glColor3usv v1 = liftIO $ dyn112 ptr_glColor3usv v1
+
+{-# NOINLINE ptr_glColor3usv #-}
+ptr_glColor3usv :: FunPtr (Ptr GLushort -> IO ())
+ptr_glColor3usv = unsafePerformIO $ getCommand "glColor3usv"
+
+-- glColor3xOES ----------------------------------------------------------------
+
+glColor3xOES
+  :: MonadIO m
+  => GLfixed -- ^ @red@.
+  -> GLfixed -- ^ @green@.
+  -> GLfixed -- ^ @blue@.
+  -> m ()
+glColor3xOES v1 v2 v3 = liftIO $ dyn113 ptr_glColor3xOES v1 v2 v3
+
+{-# NOINLINE ptr_glColor3xOES #-}
+ptr_glColor3xOES :: FunPtr (GLfixed -> GLfixed -> GLfixed -> IO ())
+ptr_glColor3xOES = unsafePerformIO $ getCommand "glColor3xOES"
+
+-- glColor3xvOES ---------------------------------------------------------------
+
+glColor3xvOES
+  :: MonadIO m
+  => Ptr GLfixed -- ^ @components@ pointing to @3@ elements of type @GLfixed@.
+  -> m ()
+glColor3xvOES v1 = liftIO $ dyn114 ptr_glColor3xvOES v1
+
+{-# NOINLINE ptr_glColor3xvOES #-}
+ptr_glColor3xvOES :: FunPtr (Ptr GLfixed -> IO ())
+ptr_glColor3xvOES = unsafePerformIO $ getCommand "glColor3xvOES"
+
+-- glColor4b -------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glColor.xml OpenGL 2.x>. The vector equivalent of this command is 'glColor4bv'.
+glColor4b
+  :: MonadIO m
+  => GLbyte -- ^ @red@ of type @ColorB@.
+  -> GLbyte -- ^ @green@ of type @ColorB@.
+  -> GLbyte -- ^ @blue@ of type @ColorB@.
+  -> GLbyte -- ^ @alpha@ of type @ColorB@.
+  -> m ()
+glColor4b v1 v2 v3 v4 = liftIO $ dyn115 ptr_glColor4b v1 v2 v3 v4
+
+{-# NOINLINE ptr_glColor4b #-}
+ptr_glColor4b :: FunPtr (GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ())
+ptr_glColor4b = unsafePerformIO $ getCommand "glColor4b"
+
+-- glColor4bv ------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glColor.xml OpenGL 2.x>.
+glColor4bv
+  :: MonadIO m
+  => Ptr GLbyte -- ^ @v@ pointing to @4@ elements of type @ColorB@.
+  -> m ()
+glColor4bv v1 = liftIO $ dyn40 ptr_glColor4bv v1
+
+{-# NOINLINE ptr_glColor4bv #-}
+ptr_glColor4bv :: FunPtr (Ptr GLbyte -> IO ())
+ptr_glColor4bv = unsafePerformIO $ getCommand "glColor4bv"
+
+-- glColor4d -------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glColor.xml OpenGL 2.x>. The vector equivalent of this command is 'glColor4dv'.
+glColor4d
+  :: MonadIO m
+  => GLdouble -- ^ @red@ of type @ColorD@.
+  -> GLdouble -- ^ @green@ of type @ColorD@.
+  -> GLdouble -- ^ @blue@ of type @ColorD@.
+  -> GLdouble -- ^ @alpha@ of type @ColorD@.
+  -> m ()
+glColor4d v1 v2 v3 v4 = liftIO $ dyn116 ptr_glColor4d v1 v2 v3 v4
+
+{-# NOINLINE ptr_glColor4d #-}
+ptr_glColor4d :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+ptr_glColor4d = unsafePerformIO $ getCommand "glColor4d"
+
+-- glColor4dv ------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glColor.xml OpenGL 2.x>.
+glColor4dv
+  :: MonadIO m
+  => Ptr GLdouble -- ^ @v@ pointing to @4@ elements of type @ColorD@.
+  -> m ()
+glColor4dv v1 = liftIO $ dyn42 ptr_glColor4dv v1
+
+{-# NOINLINE ptr_glColor4dv #-}
+ptr_glColor4dv :: FunPtr (Ptr GLdouble -> IO ())
+ptr_glColor4dv = unsafePerformIO $ getCommand "glColor4dv"
+
+-- glColor4f -------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glColor.xml OpenGL 2.x>. The vector equivalent of this command is 'glColor4fv'.
+glColor4f
+  :: MonadIO m
+  => GLfloat -- ^ @red@ of type @ColorF@.
+  -> GLfloat -- ^ @green@ of type @ColorF@.
+  -> GLfloat -- ^ @blue@ of type @ColorF@.
+  -> GLfloat -- ^ @alpha@ of type @ColorF@.
+  -> m ()
+glColor4f v1 v2 v3 v4 = liftIO $ dyn52 ptr_glColor4f v1 v2 v3 v4
+
+{-# NOINLINE ptr_glColor4f #-}
+ptr_glColor4f :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glColor4f = unsafePerformIO $ getCommand "glColor4f"
+
+-- glColor4fNormal3fVertex3fSUN ------------------------------------------------
+
+glColor4fNormal3fVertex3fSUN
+  :: MonadIO m
+  => GLfloat -- ^ @r@.
+  -> GLfloat -- ^ @g@.
+  -> GLfloat -- ^ @b@.
+  -> GLfloat -- ^ @a@.
+  -> GLfloat -- ^ @nx@.
+  -> GLfloat -- ^ @ny@.
+  -> GLfloat -- ^ @nz@.
+  -> GLfloat -- ^ @x@.
+  -> GLfloat -- ^ @y@.
+  -> GLfloat -- ^ @z@.
+  -> m ()
+glColor4fNormal3fVertex3fSUN v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 = liftIO $ dyn117 ptr_glColor4fNormal3fVertex3fSUN v1 v2 v3 v4 v5 v6 v7 v8 v9 v10
+
+{-# NOINLINE ptr_glColor4fNormal3fVertex3fSUN #-}
+ptr_glColor4fNormal3fVertex3fSUN :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glColor4fNormal3fVertex3fSUN = unsafePerformIO $ getCommand "glColor4fNormal3fVertex3fSUN"
+
+-- glColor4fNormal3fVertex3fvSUN -----------------------------------------------
+
+glColor4fNormal3fVertex3fvSUN
+  :: MonadIO m
+  => Ptr GLfloat -- ^ @c@ pointing to @4@ elements of type @GLfloat@.
+  -> Ptr GLfloat -- ^ @n@ pointing to @3@ elements of type @GLfloat@.
+  -> Ptr GLfloat -- ^ @v@ pointing to @3@ elements of type @GLfloat@.
+  -> m ()
+glColor4fNormal3fVertex3fvSUN v1 v2 v3 = liftIO $ dyn118 ptr_glColor4fNormal3fVertex3fvSUN v1 v2 v3
+
+{-# NOINLINE ptr_glColor4fNormal3fVertex3fvSUN #-}
+ptr_glColor4fNormal3fVertex3fvSUN :: FunPtr (Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ())
+ptr_glColor4fNormal3fVertex3fvSUN = unsafePerformIO $ getCommand "glColor4fNormal3fVertex3fvSUN"
+
+-- glColor4fv ------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glColor.xml OpenGL 2.x>.
+glColor4fv
+  :: MonadIO m
+  => Ptr GLfloat -- ^ @v@ pointing to @4@ elements of type @ColorF@.
+  -> m ()
+glColor4fv v1 = liftIO $ dyn44 ptr_glColor4fv v1
+
+{-# NOINLINE ptr_glColor4fv #-}
+ptr_glColor4fv :: FunPtr (Ptr GLfloat -> IO ())
+ptr_glColor4fv = unsafePerformIO $ getCommand "glColor4fv"
+
+-- glColor4hNV -----------------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glColor4hvNV'.
+glColor4hNV
+  :: MonadIO m
+  => GLhalfNV -- ^ @red@ of type @Half16NV@.
+  -> GLhalfNV -- ^ @green@ of type @Half16NV@.
+  -> GLhalfNV -- ^ @blue@ of type @Half16NV@.
+  -> GLhalfNV -- ^ @alpha@ of type @Half16NV@.
+  -> m ()
+glColor4hNV v1 v2 v3 v4 = liftIO $ dyn119 ptr_glColor4hNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glColor4hNV #-}
+ptr_glColor4hNV :: FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
+ptr_glColor4hNV = unsafePerformIO $ getCommand "glColor4hNV"
+
+-- glColor4hvNV ----------------------------------------------------------------
+
+glColor4hvNV
+  :: MonadIO m
+  => Ptr GLhalfNV -- ^ @v@ pointing to @4@ elements of type @Half16NV@.
+  -> m ()
+glColor4hvNV v1 = liftIO $ dyn106 ptr_glColor4hvNV v1
+
+{-# NOINLINE ptr_glColor4hvNV #-}
+ptr_glColor4hvNV :: FunPtr (Ptr GLhalfNV -> IO ())
+ptr_glColor4hvNV = unsafePerformIO $ getCommand "glColor4hvNV"
+
+-- glColor4i -------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glColor.xml OpenGL 2.x>. The vector equivalent of this command is 'glColor4iv'.
+glColor4i
+  :: MonadIO m
+  => GLint -- ^ @red@ of type @ColorI@.
+  -> GLint -- ^ @green@ of type @ColorI@.
+  -> GLint -- ^ @blue@ of type @ColorI@.
+  -> GLint -- ^ @alpha@ of type @ColorI@.
+  -> m ()
+glColor4i v1 v2 v3 v4 = liftIO $ dyn82 ptr_glColor4i v1 v2 v3 v4
+
+{-# NOINLINE ptr_glColor4i #-}
+ptr_glColor4i :: FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())
+ptr_glColor4i = unsafePerformIO $ getCommand "glColor4i"
+
+-- glColor4iv ------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glColor.xml OpenGL 2.x>.
+glColor4iv
+  :: MonadIO m
+  => Ptr GLint -- ^ @v@ pointing to @4@ elements of type @ColorI@.
+  -> m ()
+glColor4iv v1 = liftIO $ dyn46 ptr_glColor4iv v1
+
+{-# NOINLINE ptr_glColor4iv #-}
+ptr_glColor4iv :: FunPtr (Ptr GLint -> IO ())
+ptr_glColor4iv = unsafePerformIO $ getCommand "glColor4iv"
+
+-- glColor4s -------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glColor.xml OpenGL 2.x>. The vector equivalent of this command is 'glColor4sv'.
+glColor4s
+  :: MonadIO m
+  => GLshort -- ^ @red@ of type @ColorS@.
+  -> GLshort -- ^ @green@ of type @ColorS@.
+  -> GLshort -- ^ @blue@ of type @ColorS@.
+  -> GLshort -- ^ @alpha@ of type @ColorS@.
+  -> m ()
+glColor4s v1 v2 v3 v4 = liftIO $ dyn120 ptr_glColor4s v1 v2 v3 v4
+
+{-# NOINLINE ptr_glColor4s #-}
+ptr_glColor4s :: FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> IO ())
+ptr_glColor4s = unsafePerformIO $ getCommand "glColor4s"
+
+-- glColor4sv ------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glColor.xml OpenGL 2.x>.
+glColor4sv
+  :: MonadIO m
+  => Ptr GLshort -- ^ @v@ pointing to @4@ elements of type @ColorS@.
+  -> m ()
+glColor4sv v1 = liftIO $ dyn48 ptr_glColor4sv v1
+
+{-# NOINLINE ptr_glColor4sv #-}
+ptr_glColor4sv :: FunPtr (Ptr GLshort -> IO ())
+ptr_glColor4sv = unsafePerformIO $ getCommand "glColor4sv"
+
+-- glColor4ub ------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glColor.xml OpenGL 2.x>. The vector equivalent of this command is 'glColor4ubv'.
+glColor4ub
+  :: MonadIO m
+  => GLubyte -- ^ @red@ of type @ColorUB@.
+  -> GLubyte -- ^ @green@ of type @ColorUB@.
+  -> GLubyte -- ^ @blue@ of type @ColorUB@.
+  -> GLubyte -- ^ @alpha@ of type @ColorUB@.
+  -> m ()
+glColor4ub v1 v2 v3 v4 = liftIO $ dyn121 ptr_glColor4ub v1 v2 v3 v4
+
+{-# NOINLINE ptr_glColor4ub #-}
+ptr_glColor4ub :: FunPtr (GLubyte -> GLubyte -> GLubyte -> GLubyte -> IO ())
+ptr_glColor4ub = unsafePerformIO $ getCommand "glColor4ub"
+
+-- glColor4ubVertex2fSUN -------------------------------------------------------
+
+glColor4ubVertex2fSUN
+  :: MonadIO m
+  => GLubyte -- ^ @r@.
+  -> GLubyte -- ^ @g@.
+  -> GLubyte -- ^ @b@.
+  -> GLubyte -- ^ @a@.
+  -> GLfloat -- ^ @x@.
+  -> GLfloat -- ^ @y@.
+  -> m ()
+glColor4ubVertex2fSUN v1 v2 v3 v4 v5 v6 = liftIO $ dyn122 ptr_glColor4ubVertex2fSUN v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glColor4ubVertex2fSUN #-}
+ptr_glColor4ubVertex2fSUN :: FunPtr (GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> IO ())
+ptr_glColor4ubVertex2fSUN = unsafePerformIO $ getCommand "glColor4ubVertex2fSUN"
+
+-- glColor4ubVertex2fvSUN ------------------------------------------------------
+
+glColor4ubVertex2fvSUN
+  :: MonadIO m
+  => Ptr GLubyte -- ^ @c@ pointing to @4@ elements of type @GLubyte@.
+  -> Ptr GLfloat -- ^ @v@ pointing to @2@ elements of type @GLfloat@.
+  -> m ()
+glColor4ubVertex2fvSUN v1 v2 = liftIO $ dyn123 ptr_glColor4ubVertex2fvSUN v1 v2
+
+{-# NOINLINE ptr_glColor4ubVertex2fvSUN #-}
+ptr_glColor4ubVertex2fvSUN :: FunPtr (Ptr GLubyte -> Ptr GLfloat -> IO ())
+ptr_glColor4ubVertex2fvSUN = unsafePerformIO $ getCommand "glColor4ubVertex2fvSUN"
+
+-- glColor4ubVertex3fSUN -------------------------------------------------------
+
+glColor4ubVertex3fSUN
+  :: MonadIO m
+  => GLubyte -- ^ @r@.
+  -> GLubyte -- ^ @g@.
+  -> GLubyte -- ^ @b@.
+  -> GLubyte -- ^ @a@.
+  -> GLfloat -- ^ @x@.
+  -> GLfloat -- ^ @y@.
+  -> GLfloat -- ^ @z@.
+  -> m ()
+glColor4ubVertex3fSUN v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn124 ptr_glColor4ubVertex3fSUN v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glColor4ubVertex3fSUN #-}
+ptr_glColor4ubVertex3fSUN :: FunPtr (GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glColor4ubVertex3fSUN = unsafePerformIO $ getCommand "glColor4ubVertex3fSUN"
+
+-- glColor4ubVertex3fvSUN ------------------------------------------------------
+
+glColor4ubVertex3fvSUN
+  :: MonadIO m
+  => Ptr GLubyte -- ^ @c@ pointing to @4@ elements of type @GLubyte@.
+  -> Ptr GLfloat -- ^ @v@ pointing to @3@ elements of type @GLfloat@.
+  -> m ()
+glColor4ubVertex3fvSUN v1 v2 = liftIO $ dyn123 ptr_glColor4ubVertex3fvSUN v1 v2
+
+{-# NOINLINE ptr_glColor4ubVertex3fvSUN #-}
+ptr_glColor4ubVertex3fvSUN :: FunPtr (Ptr GLubyte -> Ptr GLfloat -> IO ())
+ptr_glColor4ubVertex3fvSUN = unsafePerformIO $ getCommand "glColor4ubVertex3fvSUN"
+
+-- glColor4ubv -----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glColor.xml OpenGL 2.x>.
+glColor4ubv
+  :: MonadIO m
+  => Ptr GLubyte -- ^ @v@ pointing to @4@ elements of type @ColorUB@.
+  -> m ()
+glColor4ubv v1 = liftIO $ dyn108 ptr_glColor4ubv v1
+
+{-# NOINLINE ptr_glColor4ubv #-}
+ptr_glColor4ubv :: FunPtr (Ptr GLubyte -> IO ())
+ptr_glColor4ubv = unsafePerformIO $ getCommand "glColor4ubv"
+
+-- glColor4ui ------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glColor.xml OpenGL 2.x>. The vector equivalent of this command is 'glColor4uiv'.
+glColor4ui
+  :: MonadIO m
+  => GLuint -- ^ @red@ of type @ColorUI@.
+  -> GLuint -- ^ @green@ of type @ColorUI@.
+  -> GLuint -- ^ @blue@ of type @ColorUI@.
+  -> GLuint -- ^ @alpha@ of type @ColorUI@.
+  -> m ()
+glColor4ui v1 v2 v3 v4 = liftIO $ dyn83 ptr_glColor4ui v1 v2 v3 v4
+
+{-# NOINLINE ptr_glColor4ui #-}
+ptr_glColor4ui :: FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+ptr_glColor4ui = unsafePerformIO $ getCommand "glColor4ui"
+
+-- glColor4uiv -----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glColor.xml OpenGL 2.x>.
+glColor4uiv
+  :: MonadIO m
+  => Ptr GLuint -- ^ @v@ pointing to @4@ elements of type @ColorUI@.
+  -> m ()
+glColor4uiv v1 = liftIO $ dyn110 ptr_glColor4uiv v1
+
+{-# NOINLINE ptr_glColor4uiv #-}
+ptr_glColor4uiv :: FunPtr (Ptr GLuint -> IO ())
+ptr_glColor4uiv = unsafePerformIO $ getCommand "glColor4uiv"
+
+-- glColor4us ------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glColor.xml OpenGL 2.x>. The vector equivalent of this command is 'glColor4usv'.
+glColor4us
+  :: MonadIO m
+  => GLushort -- ^ @red@ of type @ColorUS@.
+  -> GLushort -- ^ @green@ of type @ColorUS@.
+  -> GLushort -- ^ @blue@ of type @ColorUS@.
+  -> GLushort -- ^ @alpha@ of type @ColorUS@.
+  -> m ()
+glColor4us v1 v2 v3 v4 = liftIO $ dyn125 ptr_glColor4us v1 v2 v3 v4
+
+{-# NOINLINE ptr_glColor4us #-}
+ptr_glColor4us :: FunPtr (GLushort -> GLushort -> GLushort -> GLushort -> IO ())
+ptr_glColor4us = unsafePerformIO $ getCommand "glColor4us"
+
+-- glColor4usv -----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glColor.xml OpenGL 2.x>.
+glColor4usv
+  :: MonadIO m
+  => Ptr GLushort -- ^ @v@ pointing to @4@ elements of type @ColorUS@.
+  -> m ()
+glColor4usv v1 = liftIO $ dyn112 ptr_glColor4usv v1
+
+{-# NOINLINE ptr_glColor4usv #-}
+ptr_glColor4usv :: FunPtr (Ptr GLushort -> IO ())
+ptr_glColor4usv = unsafePerformIO $ getCommand "glColor4usv"
+
+-- glColor4x -------------------------------------------------------------------
+
+glColor4x
+  :: MonadIO m
+  => GLfixed -- ^ @red@.
+  -> GLfixed -- ^ @green@.
+  -> GLfixed -- ^ @blue@.
+  -> GLfixed -- ^ @alpha@.
+  -> m ()
+glColor4x v1 v2 v3 v4 = liftIO $ dyn53 ptr_glColor4x v1 v2 v3 v4
+
+{-# NOINLINE ptr_glColor4x #-}
+ptr_glColor4x :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
+ptr_glColor4x = unsafePerformIO $ getCommand "glColor4x"
+
+-- glColor4xOES ----------------------------------------------------------------
+
+glColor4xOES
+  :: MonadIO m
+  => GLfixed -- ^ @red@.
+  -> GLfixed -- ^ @green@.
+  -> GLfixed -- ^ @blue@.
+  -> GLfixed -- ^ @alpha@.
+  -> m ()
+glColor4xOES v1 v2 v3 v4 = liftIO $ dyn53 ptr_glColor4xOES v1 v2 v3 v4
+
+{-# NOINLINE ptr_glColor4xOES #-}
+ptr_glColor4xOES :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
+ptr_glColor4xOES = unsafePerformIO $ getCommand "glColor4xOES"
+
+-- glColor4xvOES ---------------------------------------------------------------
+
+glColor4xvOES
+  :: MonadIO m
+  => Ptr GLfixed -- ^ @components@ pointing to @4@ elements of type @GLfixed@.
+  -> m ()
+glColor4xvOES v1 = liftIO $ dyn114 ptr_glColor4xvOES v1
+
+{-# NOINLINE ptr_glColor4xvOES #-}
+ptr_glColor4xvOES :: FunPtr (Ptr GLfixed -> IO ())
+ptr_glColor4xvOES = unsafePerformIO $ getCommand "glColor4xvOES"
+
+-- glColorFormatNV -------------------------------------------------------------
+
+glColorFormatNV
+  :: MonadIO m
+  => GLint -- ^ @size@.
+  -> GLenum -- ^ @type@.
+  -> GLsizei -- ^ @stride@.
+  -> m ()
+glColorFormatNV v1 v2 v3 = liftIO $ dyn126 ptr_glColorFormatNV v1 v2 v3
+
+{-# NOINLINE ptr_glColorFormatNV #-}
+ptr_glColorFormatNV :: FunPtr (GLint -> GLenum -> GLsizei -> IO ())
+ptr_glColorFormatNV = unsafePerformIO $ getCommand "glColorFormatNV"
+
+-- glColorFragmentOp1ATI -------------------------------------------------------
+
+glColorFragmentOp1ATI
+  :: MonadIO m
+  => GLenum -- ^ @op@ of type [FragmentOpATI](Graphics-GL-Groups.html#FragmentOpATI).
+  -> GLuint -- ^ @dst@.
+  -> GLuint -- ^ @dstMask@.
+  -> GLuint -- ^ @dstMod@.
+  -> GLuint -- ^ @arg1@.
+  -> GLuint -- ^ @arg1Rep@.
+  -> GLuint -- ^ @arg1Mod@.
+  -> m ()
+glColorFragmentOp1ATI v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn127 ptr_glColorFragmentOp1ATI v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glColorFragmentOp1ATI #-}
+ptr_glColorFragmentOp1ATI :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+ptr_glColorFragmentOp1ATI = unsafePerformIO $ getCommand "glColorFragmentOp1ATI"
+
+-- glColorFragmentOp2ATI -------------------------------------------------------
+
+glColorFragmentOp2ATI
+  :: MonadIO m
+  => GLenum -- ^ @op@ of type [FragmentOpATI](Graphics-GL-Groups.html#FragmentOpATI).
+  -> GLuint -- ^ @dst@.
+  -> GLuint -- ^ @dstMask@.
+  -> GLuint -- ^ @dstMod@.
+  -> GLuint -- ^ @arg1@.
+  -> GLuint -- ^ @arg1Rep@.
+  -> GLuint -- ^ @arg1Mod@.
+  -> GLuint -- ^ @arg2@.
+  -> GLuint -- ^ @arg2Rep@.
+  -> GLuint -- ^ @arg2Mod@.
+  -> m ()
+glColorFragmentOp2ATI v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 = liftIO $ dyn128 ptr_glColorFragmentOp2ATI v1 v2 v3 v4 v5 v6 v7 v8 v9 v10
+
+{-# NOINLINE ptr_glColorFragmentOp2ATI #-}
+ptr_glColorFragmentOp2ATI :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+ptr_glColorFragmentOp2ATI = unsafePerformIO $ getCommand "glColorFragmentOp2ATI"
+
+-- glColorFragmentOp3ATI -------------------------------------------------------
+
+glColorFragmentOp3ATI
+  :: MonadIO m
+  => GLenum -- ^ @op@ of type [FragmentOpATI](Graphics-GL-Groups.html#FragmentOpATI).
+  -> GLuint -- ^ @dst@.
+  -> GLuint -- ^ @dstMask@.
+  -> GLuint -- ^ @dstMod@.
+  -> GLuint -- ^ @arg1@.
+  -> GLuint -- ^ @arg1Rep@.
+  -> GLuint -- ^ @arg1Mod@.
+  -> GLuint -- ^ @arg2@.
+  -> GLuint -- ^ @arg2Rep@.
+  -> GLuint -- ^ @arg2Mod@.
+  -> GLuint -- ^ @arg3@.
+  -> GLuint -- ^ @arg3Rep@.
+  -> GLuint -- ^ @arg3Mod@.
+  -> m ()
+glColorFragmentOp3ATI v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 = liftIO $ dyn129 ptr_glColorFragmentOp3ATI v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13
+
+{-# NOINLINE ptr_glColorFragmentOp3ATI #-}
+ptr_glColorFragmentOp3ATI :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+ptr_glColorFragmentOp3ATI = unsafePerformIO $ getCommand "glColorFragmentOp3ATI"
+
+-- glColorMask -----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glColorMask.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glColorMask.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glColorMask.xhtml OpenGL 4.x>.
+glColorMask
+  :: MonadIO m
+  => GLboolean -- ^ @red@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> GLboolean -- ^ @green@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> GLboolean -- ^ @blue@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> GLboolean -- ^ @alpha@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m ()
+glColorMask v1 v2 v3 v4 = liftIO $ dyn130 ptr_glColorMask v1 v2 v3 v4
+
+{-# NOINLINE ptr_glColorMask #-}
+ptr_glColorMask :: FunPtr (GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ())
+ptr_glColorMask = unsafePerformIO $ getCommand "glColorMask"
+
+-- glColorMaskIndexedEXT -------------------------------------------------------
+
+-- | This command is an alias for 'glColorMaski'.
+glColorMaskIndexedEXT
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLboolean -- ^ @r@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> GLboolean -- ^ @g@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> GLboolean -- ^ @b@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> GLboolean -- ^ @a@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m ()
+glColorMaskIndexedEXT v1 v2 v3 v4 v5 = liftIO $ dyn131 ptr_glColorMaskIndexedEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glColorMaskIndexedEXT #-}
+ptr_glColorMaskIndexedEXT :: FunPtr (GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ())
+ptr_glColorMaskIndexedEXT = unsafePerformIO $ getCommand "glColorMaskIndexedEXT"
+
+-- glColorMaski ----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glColorMask.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glColorMask.xhtml OpenGL 4.x>.
+glColorMaski
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLboolean -- ^ @r@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> GLboolean -- ^ @g@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> GLboolean -- ^ @b@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> GLboolean -- ^ @a@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m ()
+glColorMaski v1 v2 v3 v4 v5 = liftIO $ dyn131 ptr_glColorMaski v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glColorMaski #-}
+ptr_glColorMaski :: FunPtr (GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ())
+ptr_glColorMaski = unsafePerformIO $ getCommand "glColorMaski"
+
+-- glColorMaskiEXT -------------------------------------------------------------
+
+-- | This command is an alias for 'glColorMaski'.
+glColorMaskiEXT
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLboolean -- ^ @r@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> GLboolean -- ^ @g@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> GLboolean -- ^ @b@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> GLboolean -- ^ @a@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m ()
+glColorMaskiEXT v1 v2 v3 v4 v5 = liftIO $ dyn131 ptr_glColorMaskiEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glColorMaskiEXT #-}
+ptr_glColorMaskiEXT :: FunPtr (GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ())
+ptr_glColorMaskiEXT = unsafePerformIO $ getCommand "glColorMaskiEXT"
+
+-- glColorMaskiOES -------------------------------------------------------------
+
+-- | This command is an alias for 'glColorMaski'.
+glColorMaskiOES
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLboolean -- ^ @r@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> GLboolean -- ^ @g@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> GLboolean -- ^ @b@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> GLboolean -- ^ @a@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m ()
+glColorMaskiOES v1 v2 v3 v4 v5 = liftIO $ dyn131 ptr_glColorMaskiOES v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glColorMaskiOES #-}
+ptr_glColorMaskiOES :: FunPtr (GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ())
+ptr_glColorMaskiOES = unsafePerformIO $ getCommand "glColorMaskiOES"
+
+-- glColorMaterial -------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glColorMaterial.xml OpenGL 2.x>.
+glColorMaterial
+  :: MonadIO m
+  => GLenum -- ^ @face@ of type [MaterialFace](Graphics-GL-Groups.html#MaterialFace).
+  -> GLenum -- ^ @mode@ of type [ColorMaterialParameter](Graphics-GL-Groups.html#ColorMaterialParameter).
+  -> m ()
+glColorMaterial v1 v2 = liftIO $ dyn54 ptr_glColorMaterial v1 v2
+
+{-# NOINLINE ptr_glColorMaterial #-}
+ptr_glColorMaterial :: FunPtr (GLenum -> GLenum -> IO ())
+ptr_glColorMaterial = unsafePerformIO $ getCommand "glColorMaterial"
+
+-- glColorP3ui -----------------------------------------------------------------
+
+glColorP3ui
+  :: MonadIO m
+  => GLenum -- ^ @type@ of type [ColorPointerType](Graphics-GL-Groups.html#ColorPointerType).
+  -> GLuint -- ^ @color@.
+  -> m ()
+glColorP3ui v1 v2 = liftIO $ dyn19 ptr_glColorP3ui v1 v2
+
+{-# NOINLINE ptr_glColorP3ui #-}
+ptr_glColorP3ui :: FunPtr (GLenum -> GLuint -> IO ())
+ptr_glColorP3ui = unsafePerformIO $ getCommand "glColorP3ui"
+
+-- glColorP3uiv ----------------------------------------------------------------
+
+glColorP3uiv
+  :: MonadIO m
+  => GLenum -- ^ @type@ of type [ColorPointerType](Graphics-GL-Groups.html#ColorPointerType).
+  -> Ptr GLuint -- ^ @color@ pointing to @1@ element of type @GLuint@.
+  -> m ()
+glColorP3uiv v1 v2 = liftIO $ dyn132 ptr_glColorP3uiv v1 v2
+
+{-# NOINLINE ptr_glColorP3uiv #-}
+ptr_glColorP3uiv :: FunPtr (GLenum -> Ptr GLuint -> IO ())
+ptr_glColorP3uiv = unsafePerformIO $ getCommand "glColorP3uiv"
+
+-- glColorP4ui -----------------------------------------------------------------
+
+glColorP4ui
+  :: MonadIO m
+  => GLenum -- ^ @type@ of type [ColorPointerType](Graphics-GL-Groups.html#ColorPointerType).
+  -> GLuint -- ^ @color@.
+  -> m ()
+glColorP4ui v1 v2 = liftIO $ dyn19 ptr_glColorP4ui v1 v2
+
+{-# NOINLINE ptr_glColorP4ui #-}
+ptr_glColorP4ui :: FunPtr (GLenum -> GLuint -> IO ())
+ptr_glColorP4ui = unsafePerformIO $ getCommand "glColorP4ui"
+
+-- glColorP4uiv ----------------------------------------------------------------
+
+glColorP4uiv
+  :: MonadIO m
+  => GLenum -- ^ @type@ of type [ColorPointerType](Graphics-GL-Groups.html#ColorPointerType).
+  -> Ptr GLuint -- ^ @color@ pointing to @1@ element of type @GLuint@.
+  -> m ()
+glColorP4uiv v1 v2 = liftIO $ dyn132 ptr_glColorP4uiv v1 v2
+
+{-# NOINLINE ptr_glColorP4uiv #-}
+ptr_glColorP4uiv :: FunPtr (GLenum -> Ptr GLuint -> IO ())
+ptr_glColorP4uiv = unsafePerformIO $ getCommand "glColorP4uiv"
+
+-- glColorPointer --------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glColorPointer.xml OpenGL 2.x>.
+glColorPointer
+  :: MonadIO m
+  => GLint -- ^ @size@.
+  -> GLenum -- ^ @type@ of type [ColorPointerType](Graphics-GL-Groups.html#ColorPointerType).
+  -> GLsizei -- ^ @stride@.
+  -> Ptr a -- ^ @pointer@ pointing to @COMPSIZE(size,type,stride)@ elements of type @a@.
+  -> m ()
+glColorPointer v1 v2 v3 v4 = liftIO $ dyn133 ptr_glColorPointer v1 v2 v3 v4
+
+{-# NOINLINE ptr_glColorPointer #-}
+ptr_glColorPointer :: FunPtr (GLint -> GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glColorPointer = unsafePerformIO $ getCommand "glColorPointer"
+
+-- glColorPointerEXT -----------------------------------------------------------
+
+glColorPointerEXT
+  :: MonadIO m
+  => GLint -- ^ @size@.
+  -> GLenum -- ^ @type@ of type [ColorPointerType](Graphics-GL-Groups.html#ColorPointerType).
+  -> GLsizei -- ^ @stride@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr a -- ^ @pointer@ pointing to @COMPSIZE(size,type,stride,count)@ elements of type @a@.
+  -> m ()
+glColorPointerEXT v1 v2 v3 v4 v5 = liftIO $ dyn134 ptr_glColorPointerEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glColorPointerEXT #-}
+ptr_glColorPointerEXT :: FunPtr (GLint -> GLenum -> GLsizei -> GLsizei -> Ptr a -> IO ())
+ptr_glColorPointerEXT = unsafePerformIO $ getCommand "glColorPointerEXT"
+
+-- glColorPointerListIBM -------------------------------------------------------
+
+glColorPointerListIBM
+  :: MonadIO m
+  => GLint -- ^ @size@.
+  -> GLenum -- ^ @type@ of type [ColorPointerType](Graphics-GL-Groups.html#ColorPointerType).
+  -> GLint -- ^ @stride@.
+  -> Ptr (Ptr a) -- ^ @pointer@ pointing to @COMPSIZE(size,type,stride)@ elements of type @Ptr a@.
+  -> GLint -- ^ @ptrstride@.
+  -> m ()
+glColorPointerListIBM v1 v2 v3 v4 v5 = liftIO $ dyn135 ptr_glColorPointerListIBM v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glColorPointerListIBM #-}
+ptr_glColorPointerListIBM :: FunPtr (GLint -> GLenum -> GLint -> Ptr (Ptr a) -> GLint -> IO ())
+ptr_glColorPointerListIBM = unsafePerformIO $ getCommand "glColorPointerListIBM"
+
+-- glColorPointervINTEL --------------------------------------------------------
+
+glColorPointervINTEL
+  :: MonadIO m
+  => GLint -- ^ @size@.
+  -> GLenum -- ^ @type@ of type [VertexPointerType](Graphics-GL-Groups.html#VertexPointerType).
+  -> Ptr (Ptr a) -- ^ @pointer@ pointing to @4@ elements of type @Ptr a@.
+  -> m ()
+glColorPointervINTEL v1 v2 v3 = liftIO $ dyn136 ptr_glColorPointervINTEL v1 v2 v3
+
+{-# NOINLINE ptr_glColorPointervINTEL #-}
+ptr_glColorPointervINTEL :: FunPtr (GLint -> GLenum -> Ptr (Ptr a) -> IO ())
+ptr_glColorPointervINTEL = unsafePerformIO $ getCommand "glColorPointervINTEL"
+
+-- glColorSubTable -------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glColorSubTable.xml OpenGL 2.x>.
+glColorSubTable
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ColorTableTarget](Graphics-GL-Groups.html#ColorTableTarget).
+  -> GLsizei -- ^ @start@.
+  -> GLsizei -- ^ @count@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @data@ pointing to @COMPSIZE(format,type,count)@ elements of type @a@.
+  -> m ()
+glColorSubTable v1 v2 v3 v4 v5 v6 = liftIO $ dyn137 ptr_glColorSubTable v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glColorSubTable #-}
+ptr_glColorSubTable :: FunPtr (GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glColorSubTable = unsafePerformIO $ getCommand "glColorSubTable"
+
diff --git a/src/Graphics/GL/Functions/F04.hs b/src/Graphics/GL/Functions/F04.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Functions/F04.hs
@@ -0,0 +1,1951 @@
+{-# OPTIONS_HADDOCK hide #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Functions.F04
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- Raw functions from the
+-- <http://www.opengl.org/registry/ OpenGL registry>.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Functions.F04 (
+  glColorSubTableEXT,
+  glColorTable,
+  glColorTableEXT,
+  glColorTableParameterfv,
+  glColorTableParameterfvSGI,
+  glColorTableParameteriv,
+  glColorTableParameterivSGI,
+  glColorTableSGI,
+  glCombinerInputNV,
+  glCombinerOutputNV,
+  glCombinerParameterfNV,
+  glCombinerParameterfvNV,
+  glCombinerParameteriNV,
+  glCombinerParameterivNV,
+  glCombinerStageParameterfvNV,
+  glCommandListSegmentsNV,
+  glCompileCommandListNV,
+  glCompileShader,
+  glCompileShaderARB,
+  glCompileShaderIncludeARB,
+  glCompressedMultiTexImage1DEXT,
+  glCompressedMultiTexImage2DEXT,
+  glCompressedMultiTexImage3DEXT,
+  glCompressedMultiTexSubImage1DEXT,
+  glCompressedMultiTexSubImage2DEXT,
+  glCompressedMultiTexSubImage3DEXT,
+  glCompressedTexImage1D,
+  glCompressedTexImage1DARB,
+  glCompressedTexImage2D,
+  glCompressedTexImage2DARB,
+  glCompressedTexImage3D,
+  glCompressedTexImage3DARB,
+  glCompressedTexImage3DOES,
+  glCompressedTexSubImage1D,
+  glCompressedTexSubImage1DARB,
+  glCompressedTexSubImage2D,
+  glCompressedTexSubImage2DARB,
+  glCompressedTexSubImage3D,
+  glCompressedTexSubImage3DARB,
+  glCompressedTexSubImage3DOES,
+  glCompressedTextureImage1DEXT,
+  glCompressedTextureImage2DEXT,
+  glCompressedTextureImage3DEXT,
+  glCompressedTextureSubImage1D,
+  glCompressedTextureSubImage1DEXT,
+  glCompressedTextureSubImage2D,
+  glCompressedTextureSubImage2DEXT,
+  glCompressedTextureSubImage3D,
+  glCompressedTextureSubImage3DEXT,
+  glConservativeRasterParameterfNV,
+  glConservativeRasterParameteriNV,
+  glConvolutionFilter1D,
+  glConvolutionFilter1DEXT,
+  glConvolutionFilter2D,
+  glConvolutionFilter2DEXT,
+  glConvolutionParameterf,
+  glConvolutionParameterfEXT,
+  glConvolutionParameterfv,
+  glConvolutionParameterfvEXT,
+  glConvolutionParameteri,
+  glConvolutionParameteriEXT,
+  glConvolutionParameteriv,
+  glConvolutionParameterivEXT,
+  glConvolutionParameterxOES,
+  glConvolutionParameterxvOES,
+  glCopyBufferSubData,
+  glCopyBufferSubDataNV,
+  glCopyColorSubTable,
+  glCopyColorSubTableEXT,
+  glCopyColorTable,
+  glCopyColorTableSGI,
+  glCopyConvolutionFilter1D,
+  glCopyConvolutionFilter1DEXT,
+  glCopyConvolutionFilter2D,
+  glCopyConvolutionFilter2DEXT,
+  glCopyImageSubData,
+  glCopyImageSubDataEXT,
+  glCopyImageSubDataNV,
+  glCopyImageSubDataOES,
+  glCopyMultiTexImage1DEXT,
+  glCopyMultiTexImage2DEXT,
+  glCopyMultiTexSubImage1DEXT,
+  glCopyMultiTexSubImage2DEXT,
+  glCopyMultiTexSubImage3DEXT,
+  glCopyNamedBufferSubData,
+  glCopyPathNV,
+  glCopyPixels,
+  glCopyTexImage1D,
+  glCopyTexImage1DEXT,
+  glCopyTexImage2D,
+  glCopyTexImage2DEXT,
+  glCopyTexSubImage1D,
+  glCopyTexSubImage1DEXT,
+  glCopyTexSubImage2D,
+  glCopyTexSubImage2DEXT,
+  glCopyTexSubImage3D,
+  glCopyTexSubImage3DEXT,
+  glCopyTexSubImage3DOES,
+  glCopyTextureImage1DEXT,
+  glCopyTextureImage2DEXT
+) where
+
+import Control.Monad.IO.Class ( MonadIO(..) )
+import Foreign.Ptr
+import Graphics.GL.Foreign
+import Graphics.GL.Types
+import System.IO.Unsafe ( unsafePerformIO )
+
+-- glColorSubTableEXT ----------------------------------------------------------
+
+-- | This command is an alias for 'glColorSubTable'.
+glColorSubTableEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ColorTableTarget](Graphics-GL-Groups.html#ColorTableTarget).
+  -> GLsizei -- ^ @start@.
+  -> GLsizei -- ^ @count@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @data@ pointing to @COMPSIZE(format,type,count)@ elements of type @a@.
+  -> m ()
+glColorSubTableEXT v1 v2 v3 v4 v5 v6 = liftIO $ dyn137 ptr_glColorSubTableEXT v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glColorSubTableEXT #-}
+ptr_glColorSubTableEXT :: FunPtr (GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glColorSubTableEXT = unsafePerformIO $ getCommand "glColorSubTableEXT"
+
+-- glColorTable ----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glColorTable.xml OpenGL 2.x>.
+glColorTable
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ColorTableTarget](Graphics-GL-Groups.html#ColorTableTarget).
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @table@ pointing to @COMPSIZE(format,type,width)@ elements of type @a@.
+  -> m ()
+glColorTable v1 v2 v3 v4 v5 v6 = liftIO $ dyn138 ptr_glColorTable v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glColorTable #-}
+ptr_glColorTable :: FunPtr (GLenum -> GLenum -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glColorTable = unsafePerformIO $ getCommand "glColorTable"
+
+-- glColorTableEXT -------------------------------------------------------------
+
+-- | This command is an alias for 'glColorTable'.
+glColorTableEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ColorTableTarget](Graphics-GL-Groups.html#ColorTableTarget).
+  -> GLenum -- ^ @internalFormat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @table@ pointing to @COMPSIZE(format,type,width)@ elements of type @a@.
+  -> m ()
+glColorTableEXT v1 v2 v3 v4 v5 v6 = liftIO $ dyn138 ptr_glColorTableEXT v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glColorTableEXT #-}
+ptr_glColorTableEXT :: FunPtr (GLenum -> GLenum -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glColorTableEXT = unsafePerformIO $ getCommand "glColorTableEXT"
+
+-- glColorTableParameterfv -----------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glColorTableParameter.xml OpenGL 2.x>.
+glColorTableParameterfv
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ColorTableTarget](Graphics-GL-Groups.html#ColorTableTarget).
+  -> GLenum -- ^ @pname@ of type [ColorTableParameterPNameSGI](Graphics-GL-Groups.html#ColorTableParameterPNameSGI).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @CheckedFloat32@.
+  -> m ()
+glColorTableParameterfv v1 v2 v3 = liftIO $ dyn139 ptr_glColorTableParameterfv v1 v2 v3
+
+{-# NOINLINE ptr_glColorTableParameterfv #-}
+ptr_glColorTableParameterfv :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glColorTableParameterfv = unsafePerformIO $ getCommand "glColorTableParameterfv"
+
+-- glColorTableParameterfvSGI --------------------------------------------------
+
+-- | This command is an alias for 'glColorTableParameterfv'.
+glColorTableParameterfvSGI
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ColorTableTargetSGI](Graphics-GL-Groups.html#ColorTableTargetSGI).
+  -> GLenum -- ^ @pname@ of type [ColorTableParameterPNameSGI](Graphics-GL-Groups.html#ColorTableParameterPNameSGI).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @CheckedFloat32@.
+  -> m ()
+glColorTableParameterfvSGI v1 v2 v3 = liftIO $ dyn139 ptr_glColorTableParameterfvSGI v1 v2 v3
+
+{-# NOINLINE ptr_glColorTableParameterfvSGI #-}
+ptr_glColorTableParameterfvSGI :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glColorTableParameterfvSGI = unsafePerformIO $ getCommand "glColorTableParameterfvSGI"
+
+-- glColorTableParameteriv -----------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glColorTableParameter.xml OpenGL 2.x>.
+glColorTableParameteriv
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ColorTableTarget](Graphics-GL-Groups.html#ColorTableTarget).
+  -> GLenum -- ^ @pname@ of type [ColorTableParameterPNameSGI](Graphics-GL-Groups.html#ColorTableParameterPNameSGI).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @CheckedInt32@.
+  -> m ()
+glColorTableParameteriv v1 v2 v3 = liftIO $ dyn140 ptr_glColorTableParameteriv v1 v2 v3
+
+{-# NOINLINE ptr_glColorTableParameteriv #-}
+ptr_glColorTableParameteriv :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glColorTableParameteriv = unsafePerformIO $ getCommand "glColorTableParameteriv"
+
+-- glColorTableParameterivSGI --------------------------------------------------
+
+-- | This command is an alias for 'glColorTableParameteriv'.
+glColorTableParameterivSGI
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ColorTableTargetSGI](Graphics-GL-Groups.html#ColorTableTargetSGI).
+  -> GLenum -- ^ @pname@ of type [ColorTableParameterPNameSGI](Graphics-GL-Groups.html#ColorTableParameterPNameSGI).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @CheckedInt32@.
+  -> m ()
+glColorTableParameterivSGI v1 v2 v3 = liftIO $ dyn140 ptr_glColorTableParameterivSGI v1 v2 v3
+
+{-# NOINLINE ptr_glColorTableParameterivSGI #-}
+ptr_glColorTableParameterivSGI :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glColorTableParameterivSGI = unsafePerformIO $ getCommand "glColorTableParameterivSGI"
+
+-- glColorTableSGI -------------------------------------------------------------
+
+-- | This command is an alias for 'glColorTable'.
+glColorTableSGI
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ColorTableTargetSGI](Graphics-GL-Groups.html#ColorTableTargetSGI).
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @table@ pointing to @COMPSIZE(format,type,width)@ elements of type @a@.
+  -> m ()
+glColorTableSGI v1 v2 v3 v4 v5 v6 = liftIO $ dyn138 ptr_glColorTableSGI v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glColorTableSGI #-}
+ptr_glColorTableSGI :: FunPtr (GLenum -> GLenum -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glColorTableSGI = unsafePerformIO $ getCommand "glColorTableSGI"
+
+-- glCombinerInputNV -----------------------------------------------------------
+
+glCombinerInputNV
+  :: MonadIO m
+  => GLenum -- ^ @stage@ of type [CombinerStageNV](Graphics-GL-Groups.html#CombinerStageNV).
+  -> GLenum -- ^ @portion@ of type [CombinerPortionNV](Graphics-GL-Groups.html#CombinerPortionNV).
+  -> GLenum -- ^ @variable@ of type [CombinerVariableNV](Graphics-GL-Groups.html#CombinerVariableNV).
+  -> GLenum -- ^ @input@ of type [CombinerRegisterNV](Graphics-GL-Groups.html#CombinerRegisterNV).
+  -> GLenum -- ^ @mapping@ of type [CombinerMappingNV](Graphics-GL-Groups.html#CombinerMappingNV).
+  -> GLenum -- ^ @componentUsage@ of type [CombinerComponentUsageNV](Graphics-GL-Groups.html#CombinerComponentUsageNV).
+  -> m ()
+glCombinerInputNV v1 v2 v3 v4 v5 v6 = liftIO $ dyn141 ptr_glCombinerInputNV v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glCombinerInputNV #-}
+ptr_glCombinerInputNV :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
+ptr_glCombinerInputNV = unsafePerformIO $ getCommand "glCombinerInputNV"
+
+-- glCombinerOutputNV ----------------------------------------------------------
+
+glCombinerOutputNV
+  :: MonadIO m
+  => GLenum -- ^ @stage@ of type [CombinerStageNV](Graphics-GL-Groups.html#CombinerStageNV).
+  -> GLenum -- ^ @portion@ of type [CombinerPortionNV](Graphics-GL-Groups.html#CombinerPortionNV).
+  -> GLenum -- ^ @abOutput@ of type [CombinerRegisterNV](Graphics-GL-Groups.html#CombinerRegisterNV).
+  -> GLenum -- ^ @cdOutput@ of type [CombinerRegisterNV](Graphics-GL-Groups.html#CombinerRegisterNV).
+  -> GLenum -- ^ @sumOutput@ of type [CombinerRegisterNV](Graphics-GL-Groups.html#CombinerRegisterNV).
+  -> GLenum -- ^ @scale@ of type [CombinerScaleNV](Graphics-GL-Groups.html#CombinerScaleNV).
+  -> GLenum -- ^ @bias@ of type [CombinerBiasNV](Graphics-GL-Groups.html#CombinerBiasNV).
+  -> GLboolean -- ^ @abDotProduct@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> GLboolean -- ^ @cdDotProduct@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> GLboolean -- ^ @muxSum@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m ()
+glCombinerOutputNV v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 = liftIO $ dyn142 ptr_glCombinerOutputNV v1 v2 v3 v4 v5 v6 v7 v8 v9 v10
+
+{-# NOINLINE ptr_glCombinerOutputNV #-}
+ptr_glCombinerOutputNV :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLboolean -> GLboolean -> GLboolean -> IO ())
+ptr_glCombinerOutputNV = unsafePerformIO $ getCommand "glCombinerOutputNV"
+
+-- glCombinerParameterfNV ------------------------------------------------------
+
+glCombinerParameterfNV
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [CombinerParameterNV](Graphics-GL-Groups.html#CombinerParameterNV).
+  -> GLfloat -- ^ @param@.
+  -> m ()
+glCombinerParameterfNV v1 v2 = liftIO $ dyn0 ptr_glCombinerParameterfNV v1 v2
+
+{-# NOINLINE ptr_glCombinerParameterfNV #-}
+ptr_glCombinerParameterfNV :: FunPtr (GLenum -> GLfloat -> IO ())
+ptr_glCombinerParameterfNV = unsafePerformIO $ getCommand "glCombinerParameterfNV"
+
+-- glCombinerParameterfvNV -----------------------------------------------------
+
+glCombinerParameterfvNV
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [CombinerParameterNV](Graphics-GL-Groups.html#CombinerParameterNV).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @CheckedFloat32@.
+  -> m ()
+glCombinerParameterfvNV v1 v2 = liftIO $ dyn101 ptr_glCombinerParameterfvNV v1 v2
+
+{-# NOINLINE ptr_glCombinerParameterfvNV #-}
+ptr_glCombinerParameterfvNV :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+ptr_glCombinerParameterfvNV = unsafePerformIO $ getCommand "glCombinerParameterfvNV"
+
+-- glCombinerParameteriNV ------------------------------------------------------
+
+glCombinerParameteriNV
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [CombinerParameterNV](Graphics-GL-Groups.html#CombinerParameterNV).
+  -> GLint -- ^ @param@.
+  -> m ()
+glCombinerParameteriNV v1 v2 = liftIO $ dyn58 ptr_glCombinerParameteriNV v1 v2
+
+{-# NOINLINE ptr_glCombinerParameteriNV #-}
+ptr_glCombinerParameteriNV :: FunPtr (GLenum -> GLint -> IO ())
+ptr_glCombinerParameteriNV = unsafePerformIO $ getCommand "glCombinerParameteriNV"
+
+-- glCombinerParameterivNV -----------------------------------------------------
+
+glCombinerParameterivNV
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [CombinerParameterNV](Graphics-GL-Groups.html#CombinerParameterNV).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @CheckedInt32@.
+  -> m ()
+glCombinerParameterivNV v1 v2 = liftIO $ dyn143 ptr_glCombinerParameterivNV v1 v2
+
+{-# NOINLINE ptr_glCombinerParameterivNV #-}
+ptr_glCombinerParameterivNV :: FunPtr (GLenum -> Ptr GLint -> IO ())
+ptr_glCombinerParameterivNV = unsafePerformIO $ getCommand "glCombinerParameterivNV"
+
+-- glCombinerStageParameterfvNV ------------------------------------------------
+
+glCombinerStageParameterfvNV
+  :: MonadIO m
+  => GLenum -- ^ @stage@ of type [CombinerStageNV](Graphics-GL-Groups.html#CombinerStageNV).
+  -> GLenum -- ^ @pname@ of type [CombinerParameterNV](Graphics-GL-Groups.html#CombinerParameterNV).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @CheckedFloat32@.
+  -> m ()
+glCombinerStageParameterfvNV v1 v2 v3 = liftIO $ dyn139 ptr_glCombinerStageParameterfvNV v1 v2 v3
+
+{-# NOINLINE ptr_glCombinerStageParameterfvNV #-}
+ptr_glCombinerStageParameterfvNV :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glCombinerStageParameterfvNV = unsafePerformIO $ getCommand "glCombinerStageParameterfvNV"
+
+-- glCommandListSegmentsNV -----------------------------------------------------
+
+glCommandListSegmentsNV
+  :: MonadIO m
+  => GLuint -- ^ @list@.
+  -> GLuint -- ^ @segments@.
+  -> m ()
+glCommandListSegmentsNV v1 v2 = liftIO $ dyn4 ptr_glCommandListSegmentsNV v1 v2
+
+{-# NOINLINE ptr_glCommandListSegmentsNV #-}
+ptr_glCommandListSegmentsNV :: FunPtr (GLuint -> GLuint -> IO ())
+ptr_glCommandListSegmentsNV = unsafePerformIO $ getCommand "glCommandListSegmentsNV"
+
+-- glCompileCommandListNV ------------------------------------------------------
+
+glCompileCommandListNV
+  :: MonadIO m
+  => GLuint -- ^ @list@.
+  -> m ()
+glCompileCommandListNV v1 = liftIO $ dyn3 ptr_glCompileCommandListNV v1
+
+{-# NOINLINE ptr_glCompileCommandListNV #-}
+ptr_glCompileCommandListNV :: FunPtr (GLuint -> IO ())
+ptr_glCompileCommandListNV = unsafePerformIO $ getCommand "glCompileCommandListNV"
+
+-- glCompileShader -------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glCompileShader.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glCompileShader.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glCompileShader.xhtml OpenGL 4.x>.
+glCompileShader
+  :: MonadIO m
+  => GLuint -- ^ @shader@.
+  -> m ()
+glCompileShader v1 = liftIO $ dyn3 ptr_glCompileShader v1
+
+{-# NOINLINE ptr_glCompileShader #-}
+ptr_glCompileShader :: FunPtr (GLuint -> IO ())
+ptr_glCompileShader = unsafePerformIO $ getCommand "glCompileShader"
+
+-- glCompileShaderARB ----------------------------------------------------------
+
+-- | This command is an alias for 'glCompileShader'.
+glCompileShaderARB
+  :: MonadIO m
+  => GLhandleARB -- ^ @shaderObj@ of type @handleARB@.
+  -> m ()
+glCompileShaderARB v1 = liftIO $ dyn144 ptr_glCompileShaderARB v1
+
+{-# NOINLINE ptr_glCompileShaderARB #-}
+ptr_glCompileShaderARB :: FunPtr (GLhandleARB -> IO ())
+ptr_glCompileShaderARB = unsafePerformIO $ getCommand "glCompileShaderARB"
+
+-- glCompileShaderIncludeARB ---------------------------------------------------
+
+glCompileShaderIncludeARB
+  :: MonadIO m
+  => GLuint -- ^ @shader@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr (Ptr GLchar) -- ^ @path@ pointing to @count@ elements of type @Ptr GLchar@.
+  -> Ptr GLint -- ^ @length@ pointing to @count@ elements of type @GLint@.
+  -> m ()
+glCompileShaderIncludeARB v1 v2 v3 v4 = liftIO $ dyn145 ptr_glCompileShaderIncludeARB v1 v2 v3 v4
+
+{-# NOINLINE ptr_glCompileShaderIncludeARB #-}
+ptr_glCompileShaderIncludeARB :: FunPtr (GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> IO ())
+ptr_glCompileShaderIncludeARB = unsafePerformIO $ getCommand "glCompileShaderIncludeARB"
+
+-- glCompressedMultiTexImage1DEXT ----------------------------------------------
+
+glCompressedMultiTexImage1DEXT
+  :: MonadIO m
+  => GLenum -- ^ @texunit@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLint -- ^ @border@ of type @CheckedInt32@.
+  -> GLsizei -- ^ @imageSize@.
+  -> Ptr a -- ^ @bits@ pointing to @imageSize@ elements of type @a@.
+  -> m ()
+glCompressedMultiTexImage1DEXT v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn146 ptr_glCompressedMultiTexImage1DEXT v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glCompressedMultiTexImage1DEXT #-}
+ptr_glCompressedMultiTexImage1DEXT :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr a -> IO ())
+ptr_glCompressedMultiTexImage1DEXT = unsafePerformIO $ getCommand "glCompressedMultiTexImage1DEXT"
+
+-- glCompressedMultiTexImage2DEXT ----------------------------------------------
+
+glCompressedMultiTexImage2DEXT
+  :: MonadIO m
+  => GLenum -- ^ @texunit@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLint -- ^ @border@ of type @CheckedInt32@.
+  -> GLsizei -- ^ @imageSize@.
+  -> Ptr a -- ^ @bits@ pointing to @imageSize@ elements of type @a@.
+  -> m ()
+glCompressedMultiTexImage2DEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO $ dyn147 ptr_glCompressedMultiTexImage2DEXT v1 v2 v3 v4 v5 v6 v7 v8 v9
+
+{-# NOINLINE ptr_glCompressedMultiTexImage2DEXT #-}
+ptr_glCompressedMultiTexImage2DEXT :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> IO ())
+ptr_glCompressedMultiTexImage2DEXT = unsafePerformIO $ getCommand "glCompressedMultiTexImage2DEXT"
+
+-- glCompressedMultiTexImage3DEXT ----------------------------------------------
+
+glCompressedMultiTexImage3DEXT
+  :: MonadIO m
+  => GLenum -- ^ @texunit@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLsizei -- ^ @depth@.
+  -> GLint -- ^ @border@ of type @CheckedInt32@.
+  -> GLsizei -- ^ @imageSize@.
+  -> Ptr a -- ^ @bits@ pointing to @imageSize@ elements of type @a@.
+  -> m ()
+glCompressedMultiTexImage3DEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 = liftIO $ dyn148 ptr_glCompressedMultiTexImage3DEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 v10
+
+{-# NOINLINE ptr_glCompressedMultiTexImage3DEXT #-}
+ptr_glCompressedMultiTexImage3DEXT :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> IO ())
+ptr_glCompressedMultiTexImage3DEXT = unsafePerformIO $ getCommand "glCompressedMultiTexImage3DEXT"
+
+-- glCompressedMultiTexSubImage1DEXT -------------------------------------------
+
+glCompressedMultiTexSubImage1DEXT
+  :: MonadIO m
+  => GLenum -- ^ @texunit@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLint -- ^ @xoffset@ of type @CheckedInt32@.
+  -> GLsizei -- ^ @width@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLsizei -- ^ @imageSize@.
+  -> Ptr a -- ^ @bits@ pointing to @imageSize@ elements of type @a@.
+  -> m ()
+glCompressedMultiTexSubImage1DEXT v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn149 ptr_glCompressedMultiTexSubImage1DEXT v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glCompressedMultiTexSubImage1DEXT #-}
+ptr_glCompressedMultiTexSubImage1DEXT :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glCompressedMultiTexSubImage1DEXT = unsafePerformIO $ getCommand "glCompressedMultiTexSubImage1DEXT"
+
+-- glCompressedMultiTexSubImage2DEXT -------------------------------------------
+
+glCompressedMultiTexSubImage2DEXT
+  :: MonadIO m
+  => GLenum -- ^ @texunit@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLint -- ^ @xoffset@ of type @CheckedInt32@.
+  -> GLint -- ^ @yoffset@ of type @CheckedInt32@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLsizei -- ^ @imageSize@.
+  -> Ptr a -- ^ @bits@ pointing to @imageSize@ elements of type @a@.
+  -> m ()
+glCompressedMultiTexSubImage2DEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 = liftIO $ dyn150 ptr_glCompressedMultiTexSubImage2DEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 v10
+
+{-# NOINLINE ptr_glCompressedMultiTexSubImage2DEXT #-}
+ptr_glCompressedMultiTexSubImage2DEXT :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glCompressedMultiTexSubImage2DEXT = unsafePerformIO $ getCommand "glCompressedMultiTexSubImage2DEXT"
+
+-- glCompressedMultiTexSubImage3DEXT -------------------------------------------
+
+glCompressedMultiTexSubImage3DEXT
+  :: MonadIO m
+  => GLenum -- ^ @texunit@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLint -- ^ @xoffset@ of type @CheckedInt32@.
+  -> GLint -- ^ @yoffset@ of type @CheckedInt32@.
+  -> GLint -- ^ @zoffset@ of type @CheckedInt32@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLsizei -- ^ @depth@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLsizei -- ^ @imageSize@.
+  -> Ptr a -- ^ @bits@ pointing to @imageSize@ elements of type @a@.
+  -> m ()
+glCompressedMultiTexSubImage3DEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 = liftIO $ dyn151 ptr_glCompressedMultiTexSubImage3DEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12
+
+{-# NOINLINE ptr_glCompressedMultiTexSubImage3DEXT #-}
+ptr_glCompressedMultiTexSubImage3DEXT :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glCompressedMultiTexSubImage3DEXT = unsafePerformIO $ getCommand "glCompressedMultiTexSubImage3DEXT"
+
+-- glCompressedTexImage1D ------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glCompressedTexImage1D.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glCompressedTexImage1D.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glCompressedTexImage1D.xhtml OpenGL 4.x>.
+glCompressedTexImage1D
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLint -- ^ @border@ of type @CheckedInt32@.
+  -> GLsizei -- ^ @imageSize@.
+  -> Ptr a -- ^ @data@ pointing to @imageSize@ elements of type @CompressedTextureARB@.
+  -> m ()
+glCompressedTexImage1D v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn152 ptr_glCompressedTexImage1D v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glCompressedTexImage1D #-}
+ptr_glCompressedTexImage1D :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr a -> IO ())
+ptr_glCompressedTexImage1D = unsafePerformIO $ getCommand "glCompressedTexImage1D"
+
+-- glCompressedTexImage1DARB ---------------------------------------------------
+
+-- | This command is an alias for 'glCompressedTexImage1D'.
+glCompressedTexImage1DARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLint -- ^ @border@ of type @CheckedInt32@.
+  -> GLsizei -- ^ @imageSize@.
+  -> Ptr a -- ^ @data@ pointing to @imageSize@ elements of type @CompressedTextureARB@.
+  -> m ()
+glCompressedTexImage1DARB v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn152 ptr_glCompressedTexImage1DARB v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glCompressedTexImage1DARB #-}
+ptr_glCompressedTexImage1DARB :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr a -> IO ())
+ptr_glCompressedTexImage1DARB = unsafePerformIO $ getCommand "glCompressedTexImage1DARB"
+
+-- glCompressedTexImage2D ------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glCompressedTexImage2D.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glCompressedTexImage2D.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glCompressedTexImage2D.xhtml OpenGL 4.x>.
+glCompressedTexImage2D
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLint -- ^ @border@ of type @CheckedInt32@.
+  -> GLsizei -- ^ @imageSize@.
+  -> Ptr a -- ^ @data@ pointing to @imageSize@ elements of type @CompressedTextureARB@.
+  -> m ()
+glCompressedTexImage2D v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn153 ptr_glCompressedTexImage2D v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glCompressedTexImage2D #-}
+ptr_glCompressedTexImage2D :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> IO ())
+ptr_glCompressedTexImage2D = unsafePerformIO $ getCommand "glCompressedTexImage2D"
+
+-- glCompressedTexImage2DARB ---------------------------------------------------
+
+-- | This command is an alias for 'glCompressedTexImage2D'.
+glCompressedTexImage2DARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLint -- ^ @border@ of type @CheckedInt32@.
+  -> GLsizei -- ^ @imageSize@.
+  -> Ptr a -- ^ @data@ pointing to @imageSize@ elements of type @CompressedTextureARB@.
+  -> m ()
+glCompressedTexImage2DARB v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn153 ptr_glCompressedTexImage2DARB v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glCompressedTexImage2DARB #-}
+ptr_glCompressedTexImage2DARB :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> IO ())
+ptr_glCompressedTexImage2DARB = unsafePerformIO $ getCommand "glCompressedTexImage2DARB"
+
+-- glCompressedTexImage3D ------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glCompressedTexImage3D.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glCompressedTexImage3D.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glCompressedTexImage3D.xhtml OpenGL 4.x>.
+glCompressedTexImage3D
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLsizei -- ^ @depth@.
+  -> GLint -- ^ @border@ of type @CheckedInt32@.
+  -> GLsizei -- ^ @imageSize@.
+  -> Ptr a -- ^ @data@ pointing to @imageSize@ elements of type @CompressedTextureARB@.
+  -> m ()
+glCompressedTexImage3D v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO $ dyn154 ptr_glCompressedTexImage3D v1 v2 v3 v4 v5 v6 v7 v8 v9
+
+{-# NOINLINE ptr_glCompressedTexImage3D #-}
+ptr_glCompressedTexImage3D :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> IO ())
+ptr_glCompressedTexImage3D = unsafePerformIO $ getCommand "glCompressedTexImage3D"
+
+-- glCompressedTexImage3DARB ---------------------------------------------------
+
+-- | This command is an alias for 'glCompressedTexImage3D'.
+glCompressedTexImage3DARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLsizei -- ^ @depth@.
+  -> GLint -- ^ @border@ of type @CheckedInt32@.
+  -> GLsizei -- ^ @imageSize@.
+  -> Ptr a -- ^ @data@ pointing to @imageSize@ elements of type @CompressedTextureARB@.
+  -> m ()
+glCompressedTexImage3DARB v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO $ dyn154 ptr_glCompressedTexImage3DARB v1 v2 v3 v4 v5 v6 v7 v8 v9
+
+{-# NOINLINE ptr_glCompressedTexImage3DARB #-}
+ptr_glCompressedTexImage3DARB :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> IO ())
+ptr_glCompressedTexImage3DARB = unsafePerformIO $ getCommand "glCompressedTexImage3DARB"
+
+-- glCompressedTexImage3DOES ---------------------------------------------------
+
+glCompressedTexImage3DOES
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLsizei -- ^ @depth@.
+  -> GLint -- ^ @border@.
+  -> GLsizei -- ^ @imageSize@.
+  -> Ptr a -- ^ @data@ pointing to @imageSize@ elements of type @a@.
+  -> m ()
+glCompressedTexImage3DOES v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO $ dyn154 ptr_glCompressedTexImage3DOES v1 v2 v3 v4 v5 v6 v7 v8 v9
+
+{-# NOINLINE ptr_glCompressedTexImage3DOES #-}
+ptr_glCompressedTexImage3DOES :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> IO ())
+ptr_glCompressedTexImage3DOES = unsafePerformIO $ getCommand "glCompressedTexImage3DOES"
+
+-- glCompressedTexSubImage1D ---------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glCompressedTexSubImage1D.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glCompressedTexSubImage1D.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glCompressedTexSubImage1D.xhtml OpenGL 4.x>.
+glCompressedTexSubImage1D
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLint -- ^ @xoffset@ of type @CheckedInt32@.
+  -> GLsizei -- ^ @width@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLsizei -- ^ @imageSize@.
+  -> Ptr a -- ^ @data@ pointing to @imageSize@ elements of type @CompressedTextureARB@.
+  -> m ()
+glCompressedTexSubImage1D v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn155 ptr_glCompressedTexSubImage1D v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glCompressedTexSubImage1D #-}
+ptr_glCompressedTexSubImage1D :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glCompressedTexSubImage1D = unsafePerformIO $ getCommand "glCompressedTexSubImage1D"
+
+-- glCompressedTexSubImage1DARB ------------------------------------------------
+
+-- | This command is an alias for 'glCompressedTexSubImage1D'.
+glCompressedTexSubImage1DARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLint -- ^ @xoffset@ of type @CheckedInt32@.
+  -> GLsizei -- ^ @width@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLsizei -- ^ @imageSize@.
+  -> Ptr a -- ^ @data@ pointing to @imageSize@ elements of type @CompressedTextureARB@.
+  -> m ()
+glCompressedTexSubImage1DARB v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn155 ptr_glCompressedTexSubImage1DARB v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glCompressedTexSubImage1DARB #-}
+ptr_glCompressedTexSubImage1DARB :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glCompressedTexSubImage1DARB = unsafePerformIO $ getCommand "glCompressedTexSubImage1DARB"
+
+-- glCompressedTexSubImage2D ---------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glCompressedTexSubImage2D.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glCompressedTexSubImage2D.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glCompressedTexSubImage2D.xhtml OpenGL 4.x>.
+glCompressedTexSubImage2D
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLint -- ^ @xoffset@ of type @CheckedInt32@.
+  -> GLint -- ^ @yoffset@ of type @CheckedInt32@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLsizei -- ^ @imageSize@.
+  -> Ptr a -- ^ @data@ pointing to @imageSize@ elements of type @CompressedTextureARB@.
+  -> m ()
+glCompressedTexSubImage2D v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO $ dyn156 ptr_glCompressedTexSubImage2D v1 v2 v3 v4 v5 v6 v7 v8 v9
+
+{-# NOINLINE ptr_glCompressedTexSubImage2D #-}
+ptr_glCompressedTexSubImage2D :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glCompressedTexSubImage2D = unsafePerformIO $ getCommand "glCompressedTexSubImage2D"
+
+-- glCompressedTexSubImage2DARB ------------------------------------------------
+
+-- | This command is an alias for 'glCompressedTexSubImage2D'.
+glCompressedTexSubImage2DARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLint -- ^ @xoffset@ of type @CheckedInt32@.
+  -> GLint -- ^ @yoffset@ of type @CheckedInt32@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLsizei -- ^ @imageSize@.
+  -> Ptr a -- ^ @data@ pointing to @imageSize@ elements of type @CompressedTextureARB@.
+  -> m ()
+glCompressedTexSubImage2DARB v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO $ dyn156 ptr_glCompressedTexSubImage2DARB v1 v2 v3 v4 v5 v6 v7 v8 v9
+
+{-# NOINLINE ptr_glCompressedTexSubImage2DARB #-}
+ptr_glCompressedTexSubImage2DARB :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glCompressedTexSubImage2DARB = unsafePerformIO $ getCommand "glCompressedTexSubImage2DARB"
+
+-- glCompressedTexSubImage3D ---------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glCompressedTexSubImage3D.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glCompressedTexSubImage3D.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glCompressedTexSubImage3D.xhtml OpenGL 4.x>.
+glCompressedTexSubImage3D
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLint -- ^ @xoffset@ of type @CheckedInt32@.
+  -> GLint -- ^ @yoffset@ of type @CheckedInt32@.
+  -> GLint -- ^ @zoffset@ of type @CheckedInt32@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLsizei -- ^ @depth@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLsizei -- ^ @imageSize@.
+  -> Ptr a -- ^ @data@ pointing to @imageSize@ elements of type @CompressedTextureARB@.
+  -> m ()
+glCompressedTexSubImage3D v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 = liftIO $ dyn157 ptr_glCompressedTexSubImage3D v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11
+
+{-# NOINLINE ptr_glCompressedTexSubImage3D #-}
+ptr_glCompressedTexSubImage3D :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glCompressedTexSubImage3D = unsafePerformIO $ getCommand "glCompressedTexSubImage3D"
+
+-- glCompressedTexSubImage3DARB ------------------------------------------------
+
+-- | This command is an alias for 'glCompressedTexSubImage3D'.
+glCompressedTexSubImage3DARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLint -- ^ @xoffset@ of type @CheckedInt32@.
+  -> GLint -- ^ @yoffset@ of type @CheckedInt32@.
+  -> GLint -- ^ @zoffset@ of type @CheckedInt32@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLsizei -- ^ @depth@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLsizei -- ^ @imageSize@.
+  -> Ptr a -- ^ @data@ pointing to @imageSize@ elements of type @CompressedTextureARB@.
+  -> m ()
+glCompressedTexSubImage3DARB v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 = liftIO $ dyn157 ptr_glCompressedTexSubImage3DARB v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11
+
+{-# NOINLINE ptr_glCompressedTexSubImage3DARB #-}
+ptr_glCompressedTexSubImage3DARB :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glCompressedTexSubImage3DARB = unsafePerformIO $ getCommand "glCompressedTexSubImage3DARB"
+
+-- glCompressedTexSubImage3DOES ------------------------------------------------
+
+glCompressedTexSubImage3DOES
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@.
+  -> GLint -- ^ @xoffset@.
+  -> GLint -- ^ @yoffset@.
+  -> GLint -- ^ @zoffset@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLsizei -- ^ @depth@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLsizei -- ^ @imageSize@.
+  -> Ptr a -- ^ @data@ pointing to @imageSize@ elements of type @a@.
+  -> m ()
+glCompressedTexSubImage3DOES v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 = liftIO $ dyn157 ptr_glCompressedTexSubImage3DOES v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11
+
+{-# NOINLINE ptr_glCompressedTexSubImage3DOES #-}
+ptr_glCompressedTexSubImage3DOES :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glCompressedTexSubImage3DOES = unsafePerformIO $ getCommand "glCompressedTexSubImage3DOES"
+
+-- glCompressedTextureImage1DEXT -----------------------------------------------
+
+glCompressedTextureImage1DEXT
+  :: MonadIO m
+  => GLuint -- ^ @texture@ of type @Texture@.
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLint -- ^ @border@ of type @CheckedInt32@.
+  -> GLsizei -- ^ @imageSize@.
+  -> Ptr a -- ^ @bits@ pointing to @imageSize@ elements of type @a@.
+  -> m ()
+glCompressedTextureImage1DEXT v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn158 ptr_glCompressedTextureImage1DEXT v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glCompressedTextureImage1DEXT #-}
+ptr_glCompressedTextureImage1DEXT :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr a -> IO ())
+ptr_glCompressedTextureImage1DEXT = unsafePerformIO $ getCommand "glCompressedTextureImage1DEXT"
+
+-- glCompressedTextureImage2DEXT -----------------------------------------------
+
+glCompressedTextureImage2DEXT
+  :: MonadIO m
+  => GLuint -- ^ @texture@ of type @Texture@.
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLint -- ^ @border@ of type @CheckedInt32@.
+  -> GLsizei -- ^ @imageSize@.
+  -> Ptr a -- ^ @bits@ pointing to @imageSize@ elements of type @a@.
+  -> m ()
+glCompressedTextureImage2DEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO $ dyn159 ptr_glCompressedTextureImage2DEXT v1 v2 v3 v4 v5 v6 v7 v8 v9
+
+{-# NOINLINE ptr_glCompressedTextureImage2DEXT #-}
+ptr_glCompressedTextureImage2DEXT :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> IO ())
+ptr_glCompressedTextureImage2DEXT = unsafePerformIO $ getCommand "glCompressedTextureImage2DEXT"
+
+-- glCompressedTextureImage3DEXT -----------------------------------------------
+
+glCompressedTextureImage3DEXT
+  :: MonadIO m
+  => GLuint -- ^ @texture@ of type @Texture@.
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLsizei -- ^ @depth@.
+  -> GLint -- ^ @border@ of type @CheckedInt32@.
+  -> GLsizei -- ^ @imageSize@.
+  -> Ptr a -- ^ @bits@ pointing to @imageSize@ elements of type @a@.
+  -> m ()
+glCompressedTextureImage3DEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 = liftIO $ dyn160 ptr_glCompressedTextureImage3DEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 v10
+
+{-# NOINLINE ptr_glCompressedTextureImage3DEXT #-}
+ptr_glCompressedTextureImage3DEXT :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> IO ())
+ptr_glCompressedTextureImage3DEXT = unsafePerformIO $ getCommand "glCompressedTextureImage3DEXT"
+
+-- glCompressedTextureSubImage1D -----------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glCompressedTexSubImage1D.xhtml OpenGL 4.x>.
+glCompressedTextureSubImage1D
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLint -- ^ @level@.
+  -> GLint -- ^ @xoffset@.
+  -> GLsizei -- ^ @width@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLsizei -- ^ @imageSize@.
+  -> Ptr a -- ^ @data@.
+  -> m ()
+glCompressedTextureSubImage1D v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn161 ptr_glCompressedTextureSubImage1D v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glCompressedTextureSubImage1D #-}
+ptr_glCompressedTextureSubImage1D :: FunPtr (GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glCompressedTextureSubImage1D = unsafePerformIO $ getCommand "glCompressedTextureSubImage1D"
+
+-- glCompressedTextureSubImage1DEXT --------------------------------------------
+
+glCompressedTextureSubImage1DEXT
+  :: MonadIO m
+  => GLuint -- ^ @texture@ of type @Texture@.
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLint -- ^ @xoffset@ of type @CheckedInt32@.
+  -> GLsizei -- ^ @width@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLsizei -- ^ @imageSize@.
+  -> Ptr a -- ^ @bits@ pointing to @imageSize@ elements of type @a@.
+  -> m ()
+glCompressedTextureSubImage1DEXT v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn162 ptr_glCompressedTextureSubImage1DEXT v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glCompressedTextureSubImage1DEXT #-}
+ptr_glCompressedTextureSubImage1DEXT :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glCompressedTextureSubImage1DEXT = unsafePerformIO $ getCommand "glCompressedTextureSubImage1DEXT"
+
+-- glCompressedTextureSubImage2D -----------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glCompressedTexSubImage2D.xhtml OpenGL 4.x>.
+glCompressedTextureSubImage2D
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLint -- ^ @level@.
+  -> GLint -- ^ @xoffset@.
+  -> GLint -- ^ @yoffset@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLsizei -- ^ @imageSize@.
+  -> Ptr a -- ^ @data@.
+  -> m ()
+glCompressedTextureSubImage2D v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO $ dyn163 ptr_glCompressedTextureSubImage2D v1 v2 v3 v4 v5 v6 v7 v8 v9
+
+{-# NOINLINE ptr_glCompressedTextureSubImage2D #-}
+ptr_glCompressedTextureSubImage2D :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glCompressedTextureSubImage2D = unsafePerformIO $ getCommand "glCompressedTextureSubImage2D"
+
+-- glCompressedTextureSubImage2DEXT --------------------------------------------
+
+glCompressedTextureSubImage2DEXT
+  :: MonadIO m
+  => GLuint -- ^ @texture@ of type @Texture@.
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLint -- ^ @xoffset@ of type @CheckedInt32@.
+  -> GLint -- ^ @yoffset@ of type @CheckedInt32@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLsizei -- ^ @imageSize@.
+  -> Ptr a -- ^ @bits@ pointing to @imageSize@ elements of type @a@.
+  -> m ()
+glCompressedTextureSubImage2DEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 = liftIO $ dyn164 ptr_glCompressedTextureSubImage2DEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 v10
+
+{-# NOINLINE ptr_glCompressedTextureSubImage2DEXT #-}
+ptr_glCompressedTextureSubImage2DEXT :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glCompressedTextureSubImage2DEXT = unsafePerformIO $ getCommand "glCompressedTextureSubImage2DEXT"
+
+-- glCompressedTextureSubImage3D -----------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glCompressedTexSubImage3D.xhtml OpenGL 4.x>.
+glCompressedTextureSubImage3D
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLint -- ^ @level@.
+  -> GLint -- ^ @xoffset@.
+  -> GLint -- ^ @yoffset@.
+  -> GLint -- ^ @zoffset@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLsizei -- ^ @depth@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLsizei -- ^ @imageSize@.
+  -> Ptr a -- ^ @data@.
+  -> m ()
+glCompressedTextureSubImage3D v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 = liftIO $ dyn165 ptr_glCompressedTextureSubImage3D v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11
+
+{-# NOINLINE ptr_glCompressedTextureSubImage3D #-}
+ptr_glCompressedTextureSubImage3D :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glCompressedTextureSubImage3D = unsafePerformIO $ getCommand "glCompressedTextureSubImage3D"
+
+-- glCompressedTextureSubImage3DEXT --------------------------------------------
+
+glCompressedTextureSubImage3DEXT
+  :: MonadIO m
+  => GLuint -- ^ @texture@ of type @Texture@.
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLint -- ^ @xoffset@ of type @CheckedInt32@.
+  -> GLint -- ^ @yoffset@ of type @CheckedInt32@.
+  -> GLint -- ^ @zoffset@ of type @CheckedInt32@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLsizei -- ^ @depth@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLsizei -- ^ @imageSize@.
+  -> Ptr a -- ^ @bits@ pointing to @imageSize@ elements of type @a@.
+  -> m ()
+glCompressedTextureSubImage3DEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 = liftIO $ dyn166 ptr_glCompressedTextureSubImage3DEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12
+
+{-# NOINLINE ptr_glCompressedTextureSubImage3DEXT #-}
+ptr_glCompressedTextureSubImage3DEXT :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glCompressedTextureSubImage3DEXT = unsafePerformIO $ getCommand "glCompressedTextureSubImage3DEXT"
+
+-- glConservativeRasterParameterfNV --------------------------------------------
+
+glConservativeRasterParameterfNV
+  :: MonadIO m
+  => GLenum -- ^ @pname@.
+  -> GLfloat -- ^ @value@.
+  -> m ()
+glConservativeRasterParameterfNV v1 v2 = liftIO $ dyn0 ptr_glConservativeRasterParameterfNV v1 v2
+
+{-# NOINLINE ptr_glConservativeRasterParameterfNV #-}
+ptr_glConservativeRasterParameterfNV :: FunPtr (GLenum -> GLfloat -> IO ())
+ptr_glConservativeRasterParameterfNV = unsafePerformIO $ getCommand "glConservativeRasterParameterfNV"
+
+-- glConservativeRasterParameteriNV --------------------------------------------
+
+glConservativeRasterParameteriNV
+  :: MonadIO m
+  => GLenum -- ^ @pname@.
+  -> GLint -- ^ @param@.
+  -> m ()
+glConservativeRasterParameteriNV v1 v2 = liftIO $ dyn58 ptr_glConservativeRasterParameteriNV v1 v2
+
+{-# NOINLINE ptr_glConservativeRasterParameteriNV #-}
+ptr_glConservativeRasterParameteriNV :: FunPtr (GLenum -> GLint -> IO ())
+ptr_glConservativeRasterParameteriNV = unsafePerformIO $ getCommand "glConservativeRasterParameteriNV"
+
+-- glConvolutionFilter1D -------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glConvolutionFilter1D.xml OpenGL 2.x>.
+glConvolutionFilter1D
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ConvolutionTarget](Graphics-GL-Groups.html#ConvolutionTarget).
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @image@ pointing to @COMPSIZE(format,type,width)@ elements of type @a@.
+  -> m ()
+glConvolutionFilter1D v1 v2 v3 v4 v5 v6 = liftIO $ dyn138 ptr_glConvolutionFilter1D v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glConvolutionFilter1D #-}
+ptr_glConvolutionFilter1D :: FunPtr (GLenum -> GLenum -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glConvolutionFilter1D = unsafePerformIO $ getCommand "glConvolutionFilter1D"
+
+-- glConvolutionFilter1DEXT ----------------------------------------------------
+
+-- | This command is an alias for 'glConvolutionFilter1D'.
+glConvolutionFilter1DEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ConvolutionTargetEXT](Graphics-GL-Groups.html#ConvolutionTargetEXT).
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @image@ pointing to @COMPSIZE(format,type,width)@ elements of type @a@.
+  -> m ()
+glConvolutionFilter1DEXT v1 v2 v3 v4 v5 v6 = liftIO $ dyn138 ptr_glConvolutionFilter1DEXT v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glConvolutionFilter1DEXT #-}
+ptr_glConvolutionFilter1DEXT :: FunPtr (GLenum -> GLenum -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glConvolutionFilter1DEXT = unsafePerformIO $ getCommand "glConvolutionFilter1DEXT"
+
+-- glConvolutionFilter2D -------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glConvolutionFilter2D.xml OpenGL 2.x>.
+glConvolutionFilter2D
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ConvolutionTarget](Graphics-GL-Groups.html#ConvolutionTarget).
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @image@ pointing to @COMPSIZE(format,type,width,height)@ elements of type @a@.
+  -> m ()
+glConvolutionFilter2D v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn167 ptr_glConvolutionFilter2D v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glConvolutionFilter2D #-}
+ptr_glConvolutionFilter2D :: FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glConvolutionFilter2D = unsafePerformIO $ getCommand "glConvolutionFilter2D"
+
+-- glConvolutionFilter2DEXT ----------------------------------------------------
+
+-- | This command is an alias for 'glConvolutionFilter2D'.
+glConvolutionFilter2DEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ConvolutionTargetEXT](Graphics-GL-Groups.html#ConvolutionTargetEXT).
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @image@ pointing to @COMPSIZE(format,type,width,height)@ elements of type @a@.
+  -> m ()
+glConvolutionFilter2DEXT v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn167 ptr_glConvolutionFilter2DEXT v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glConvolutionFilter2DEXT #-}
+ptr_glConvolutionFilter2DEXT :: FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glConvolutionFilter2DEXT = unsafePerformIO $ getCommand "glConvolutionFilter2DEXT"
+
+-- glConvolutionParameterf -----------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glConvolutionParameter.xml OpenGL 2.x>.
+glConvolutionParameterf
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ConvolutionTarget](Graphics-GL-Groups.html#ConvolutionTarget).
+  -> GLenum -- ^ @pname@ of type [ConvolutionParameterEXT](Graphics-GL-Groups.html#ConvolutionParameterEXT).
+  -> GLfloat -- ^ @params@ of type @CheckedFloat32@.
+  -> m ()
+glConvolutionParameterf v1 v2 v3 = liftIO $ dyn168 ptr_glConvolutionParameterf v1 v2 v3
+
+{-# NOINLINE ptr_glConvolutionParameterf #-}
+ptr_glConvolutionParameterf :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
+ptr_glConvolutionParameterf = unsafePerformIO $ getCommand "glConvolutionParameterf"
+
+-- glConvolutionParameterfEXT --------------------------------------------------
+
+-- | This command is an alias for 'glConvolutionParameterf'.
+glConvolutionParameterfEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ConvolutionTargetEXT](Graphics-GL-Groups.html#ConvolutionTargetEXT).
+  -> GLenum -- ^ @pname@ of type [ConvolutionParameterEXT](Graphics-GL-Groups.html#ConvolutionParameterEXT).
+  -> GLfloat -- ^ @params@ of type @CheckedFloat32@.
+  -> m ()
+glConvolutionParameterfEXT v1 v2 v3 = liftIO $ dyn168 ptr_glConvolutionParameterfEXT v1 v2 v3
+
+{-# NOINLINE ptr_glConvolutionParameterfEXT #-}
+ptr_glConvolutionParameterfEXT :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
+ptr_glConvolutionParameterfEXT = unsafePerformIO $ getCommand "glConvolutionParameterfEXT"
+
+-- glConvolutionParameterfv ----------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glConvolutionParameter.xml OpenGL 2.x>.
+glConvolutionParameterfv
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ConvolutionTarget](Graphics-GL-Groups.html#ConvolutionTarget).
+  -> GLenum -- ^ @pname@ of type [ConvolutionParameterEXT](Graphics-GL-Groups.html#ConvolutionParameterEXT).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @CheckedFloat32@.
+  -> m ()
+glConvolutionParameterfv v1 v2 v3 = liftIO $ dyn139 ptr_glConvolutionParameterfv v1 v2 v3
+
+{-# NOINLINE ptr_glConvolutionParameterfv #-}
+ptr_glConvolutionParameterfv :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glConvolutionParameterfv = unsafePerformIO $ getCommand "glConvolutionParameterfv"
+
+-- glConvolutionParameterfvEXT -------------------------------------------------
+
+-- | This command is an alias for 'glConvolutionParameterfv'.
+glConvolutionParameterfvEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ConvolutionTargetEXT](Graphics-GL-Groups.html#ConvolutionTargetEXT).
+  -> GLenum -- ^ @pname@ of type [ConvolutionParameterEXT](Graphics-GL-Groups.html#ConvolutionParameterEXT).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @CheckedFloat32@.
+  -> m ()
+glConvolutionParameterfvEXT v1 v2 v3 = liftIO $ dyn139 ptr_glConvolutionParameterfvEXT v1 v2 v3
+
+{-# NOINLINE ptr_glConvolutionParameterfvEXT #-}
+ptr_glConvolutionParameterfvEXT :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glConvolutionParameterfvEXT = unsafePerformIO $ getCommand "glConvolutionParameterfvEXT"
+
+-- glConvolutionParameteri -----------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glConvolutionParameter.xml OpenGL 2.x>.
+glConvolutionParameteri
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ConvolutionTarget](Graphics-GL-Groups.html#ConvolutionTarget).
+  -> GLenum -- ^ @pname@ of type [ConvolutionParameterEXT](Graphics-GL-Groups.html#ConvolutionParameterEXT).
+  -> GLint -- ^ @params@ of type @CheckedInt32@.
+  -> m ()
+glConvolutionParameteri v1 v2 v3 = liftIO $ dyn66 ptr_glConvolutionParameteri v1 v2 v3
+
+{-# NOINLINE ptr_glConvolutionParameteri #-}
+ptr_glConvolutionParameteri :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
+ptr_glConvolutionParameteri = unsafePerformIO $ getCommand "glConvolutionParameteri"
+
+-- glConvolutionParameteriEXT --------------------------------------------------
+
+-- | This command is an alias for 'glConvolutionParameteri'.
+glConvolutionParameteriEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ConvolutionTargetEXT](Graphics-GL-Groups.html#ConvolutionTargetEXT).
+  -> GLenum -- ^ @pname@ of type [ConvolutionParameterEXT](Graphics-GL-Groups.html#ConvolutionParameterEXT).
+  -> GLint -- ^ @params@ of type @CheckedInt32@.
+  -> m ()
+glConvolutionParameteriEXT v1 v2 v3 = liftIO $ dyn66 ptr_glConvolutionParameteriEXT v1 v2 v3
+
+{-# NOINLINE ptr_glConvolutionParameteriEXT #-}
+ptr_glConvolutionParameteriEXT :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
+ptr_glConvolutionParameteriEXT = unsafePerformIO $ getCommand "glConvolutionParameteriEXT"
+
+-- glConvolutionParameteriv ----------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glConvolutionParameter.xml OpenGL 2.x>.
+glConvolutionParameteriv
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ConvolutionTarget](Graphics-GL-Groups.html#ConvolutionTarget).
+  -> GLenum -- ^ @pname@ of type [ConvolutionParameterEXT](Graphics-GL-Groups.html#ConvolutionParameterEXT).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @CheckedInt32@.
+  -> m ()
+glConvolutionParameteriv v1 v2 v3 = liftIO $ dyn140 ptr_glConvolutionParameteriv v1 v2 v3
+
+{-# NOINLINE ptr_glConvolutionParameteriv #-}
+ptr_glConvolutionParameteriv :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glConvolutionParameteriv = unsafePerformIO $ getCommand "glConvolutionParameteriv"
+
+-- glConvolutionParameterivEXT -------------------------------------------------
+
+-- | This command is an alias for 'glConvolutionParameteriv'.
+glConvolutionParameterivEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ConvolutionTargetEXT](Graphics-GL-Groups.html#ConvolutionTargetEXT).
+  -> GLenum -- ^ @pname@ of type [ConvolutionParameterEXT](Graphics-GL-Groups.html#ConvolutionParameterEXT).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @CheckedInt32@.
+  -> m ()
+glConvolutionParameterivEXT v1 v2 v3 = liftIO $ dyn140 ptr_glConvolutionParameterivEXT v1 v2 v3
+
+{-# NOINLINE ptr_glConvolutionParameterivEXT #-}
+ptr_glConvolutionParameterivEXT :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glConvolutionParameterivEXT = unsafePerformIO $ getCommand "glConvolutionParameterivEXT"
+
+-- glConvolutionParameterxOES --------------------------------------------------
+
+glConvolutionParameterxOES
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ConvolutionTargetEXT](Graphics-GL-Groups.html#ConvolutionTargetEXT).
+  -> GLenum -- ^ @pname@ of type [ConvolutionParameterEXT](Graphics-GL-Groups.html#ConvolutionParameterEXT).
+  -> GLfixed -- ^ @param@.
+  -> m ()
+glConvolutionParameterxOES v1 v2 v3 = liftIO $ dyn169 ptr_glConvolutionParameterxOES v1 v2 v3
+
+{-# NOINLINE ptr_glConvolutionParameterxOES #-}
+ptr_glConvolutionParameterxOES :: FunPtr (GLenum -> GLenum -> GLfixed -> IO ())
+ptr_glConvolutionParameterxOES = unsafePerformIO $ getCommand "glConvolutionParameterxOES"
+
+-- glConvolutionParameterxvOES -------------------------------------------------
+
+glConvolutionParameterxvOES
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ConvolutionTargetEXT](Graphics-GL-Groups.html#ConvolutionTargetEXT).
+  -> GLenum -- ^ @pname@ of type [ConvolutionParameterEXT](Graphics-GL-Groups.html#ConvolutionParameterEXT).
+  -> Ptr GLfixed -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfixed@.
+  -> m ()
+glConvolutionParameterxvOES v1 v2 v3 = liftIO $ dyn170 ptr_glConvolutionParameterxvOES v1 v2 v3
+
+{-# NOINLINE ptr_glConvolutionParameterxvOES #-}
+ptr_glConvolutionParameterxvOES :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+ptr_glConvolutionParameterxvOES = unsafePerformIO $ getCommand "glConvolutionParameterxvOES"
+
+-- glCopyBufferSubData ---------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glCopyBufferSubData.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glCopyBufferSubData.xhtml OpenGL 4.x>.
+glCopyBufferSubData
+  :: MonadIO m
+  => GLenum -- ^ @readTarget@ of type [CopyBufferSubDataTarget](Graphics-GL-Groups.html#CopyBufferSubDataTarget).
+  -> GLenum -- ^ @writeTarget@ of type [CopyBufferSubDataTarget](Graphics-GL-Groups.html#CopyBufferSubDataTarget).
+  -> GLintptr -- ^ @readOffset@ of type @BufferOffset@.
+  -> GLintptr -- ^ @writeOffset@ of type @BufferOffset@.
+  -> GLsizeiptr -- ^ @size@ of type @BufferSize@.
+  -> m ()
+glCopyBufferSubData v1 v2 v3 v4 v5 = liftIO $ dyn171 ptr_glCopyBufferSubData v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glCopyBufferSubData #-}
+ptr_glCopyBufferSubData :: FunPtr (GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> IO ())
+ptr_glCopyBufferSubData = unsafePerformIO $ getCommand "glCopyBufferSubData"
+
+-- glCopyBufferSubDataNV -------------------------------------------------------
+
+-- | This command is an alias for 'glCopyBufferSubData'.
+glCopyBufferSubDataNV
+  :: MonadIO m
+  => GLenum -- ^ @readTarget@ of type [CopyBufferSubDataTarget](Graphics-GL-Groups.html#CopyBufferSubDataTarget).
+  -> GLenum -- ^ @writeTarget@ of type [CopyBufferSubDataTarget](Graphics-GL-Groups.html#CopyBufferSubDataTarget).
+  -> GLintptr -- ^ @readOffset@ of type @BufferOffset@.
+  -> GLintptr -- ^ @writeOffset@ of type @BufferOffset@.
+  -> GLsizeiptr -- ^ @size@ of type @BufferSize@.
+  -> m ()
+glCopyBufferSubDataNV v1 v2 v3 v4 v5 = liftIO $ dyn171 ptr_glCopyBufferSubDataNV v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glCopyBufferSubDataNV #-}
+ptr_glCopyBufferSubDataNV :: FunPtr (GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> IO ())
+ptr_glCopyBufferSubDataNV = unsafePerformIO $ getCommand "glCopyBufferSubDataNV"
+
+-- glCopyColorSubTable ---------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glCopyColorSubTable.xml OpenGL 2.x>.
+glCopyColorSubTable
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ColorTableTarget](Graphics-GL-Groups.html#ColorTableTarget).
+  -> GLsizei -- ^ @start@.
+  -> GLint -- ^ @x@ of type @WinCoord@.
+  -> GLint -- ^ @y@ of type @WinCoord@.
+  -> GLsizei -- ^ @width@.
+  -> m ()
+glCopyColorSubTable v1 v2 v3 v4 v5 = liftIO $ dyn172 ptr_glCopyColorSubTable v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glCopyColorSubTable #-}
+ptr_glCopyColorSubTable :: FunPtr (GLenum -> GLsizei -> GLint -> GLint -> GLsizei -> IO ())
+ptr_glCopyColorSubTable = unsafePerformIO $ getCommand "glCopyColorSubTable"
+
+-- glCopyColorSubTableEXT ------------------------------------------------------
+
+-- | This command is an alias for 'glCopyColorSubTable'.
+glCopyColorSubTableEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ColorTableTarget](Graphics-GL-Groups.html#ColorTableTarget).
+  -> GLsizei -- ^ @start@.
+  -> GLint -- ^ @x@ of type @WinCoord@.
+  -> GLint -- ^ @y@ of type @WinCoord@.
+  -> GLsizei -- ^ @width@.
+  -> m ()
+glCopyColorSubTableEXT v1 v2 v3 v4 v5 = liftIO $ dyn172 ptr_glCopyColorSubTableEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glCopyColorSubTableEXT #-}
+ptr_glCopyColorSubTableEXT :: FunPtr (GLenum -> GLsizei -> GLint -> GLint -> GLsizei -> IO ())
+ptr_glCopyColorSubTableEXT = unsafePerformIO $ getCommand "glCopyColorSubTableEXT"
+
+-- glCopyColorTable ------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glCopyColorTable.xml OpenGL 2.x>.
+glCopyColorTable
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ColorTableTarget](Graphics-GL-Groups.html#ColorTableTarget).
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLint -- ^ @x@ of type @WinCoord@.
+  -> GLint -- ^ @y@ of type @WinCoord@.
+  -> GLsizei -- ^ @width@.
+  -> m ()
+glCopyColorTable v1 v2 v3 v4 v5 = liftIO $ dyn173 ptr_glCopyColorTable v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glCopyColorTable #-}
+ptr_glCopyColorTable :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> IO ())
+ptr_glCopyColorTable = unsafePerformIO $ getCommand "glCopyColorTable"
+
+-- glCopyColorTableSGI ---------------------------------------------------------
+
+-- | This command is an alias for 'glCopyColorTable'.
+glCopyColorTableSGI
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ColorTableTargetSGI](Graphics-GL-Groups.html#ColorTableTargetSGI).
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLint -- ^ @x@ of type @WinCoord@.
+  -> GLint -- ^ @y@ of type @WinCoord@.
+  -> GLsizei -- ^ @width@.
+  -> m ()
+glCopyColorTableSGI v1 v2 v3 v4 v5 = liftIO $ dyn173 ptr_glCopyColorTableSGI v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glCopyColorTableSGI #-}
+ptr_glCopyColorTableSGI :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> IO ())
+ptr_glCopyColorTableSGI = unsafePerformIO $ getCommand "glCopyColorTableSGI"
+
+-- glCopyConvolutionFilter1D ---------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glCopyConvolutionFilter1D.xml OpenGL 2.x>.
+glCopyConvolutionFilter1D
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ConvolutionTarget](Graphics-GL-Groups.html#ConvolutionTarget).
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLint -- ^ @x@ of type @WinCoord@.
+  -> GLint -- ^ @y@ of type @WinCoord@.
+  -> GLsizei -- ^ @width@.
+  -> m ()
+glCopyConvolutionFilter1D v1 v2 v3 v4 v5 = liftIO $ dyn173 ptr_glCopyConvolutionFilter1D v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glCopyConvolutionFilter1D #-}
+ptr_glCopyConvolutionFilter1D :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> IO ())
+ptr_glCopyConvolutionFilter1D = unsafePerformIO $ getCommand "glCopyConvolutionFilter1D"
+
+-- glCopyConvolutionFilter1DEXT ------------------------------------------------
+
+-- | This command is an alias for 'glCopyConvolutionFilter1D'.
+glCopyConvolutionFilter1DEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ConvolutionTargetEXT](Graphics-GL-Groups.html#ConvolutionTargetEXT).
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLint -- ^ @x@ of type @WinCoord@.
+  -> GLint -- ^ @y@ of type @WinCoord@.
+  -> GLsizei -- ^ @width@.
+  -> m ()
+glCopyConvolutionFilter1DEXT v1 v2 v3 v4 v5 = liftIO $ dyn173 ptr_glCopyConvolutionFilter1DEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glCopyConvolutionFilter1DEXT #-}
+ptr_glCopyConvolutionFilter1DEXT :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> IO ())
+ptr_glCopyConvolutionFilter1DEXT = unsafePerformIO $ getCommand "glCopyConvolutionFilter1DEXT"
+
+-- glCopyConvolutionFilter2D ---------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glCopyConvolutionFilter2D.xml OpenGL 2.x>.
+glCopyConvolutionFilter2D
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ConvolutionTarget](Graphics-GL-Groups.html#ConvolutionTarget).
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLint -- ^ @x@ of type @WinCoord@.
+  -> GLint -- ^ @y@ of type @WinCoord@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> m ()
+glCopyConvolutionFilter2D v1 v2 v3 v4 v5 v6 = liftIO $ dyn174 ptr_glCopyConvolutionFilter2D v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glCopyConvolutionFilter2D #-}
+ptr_glCopyConvolutionFilter2D :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+ptr_glCopyConvolutionFilter2D = unsafePerformIO $ getCommand "glCopyConvolutionFilter2D"
+
+-- glCopyConvolutionFilter2DEXT ------------------------------------------------
+
+-- | This command is an alias for 'glCopyConvolutionFilter2D'.
+glCopyConvolutionFilter2DEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ConvolutionTargetEXT](Graphics-GL-Groups.html#ConvolutionTargetEXT).
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLint -- ^ @x@ of type @WinCoord@.
+  -> GLint -- ^ @y@ of type @WinCoord@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> m ()
+glCopyConvolutionFilter2DEXT v1 v2 v3 v4 v5 v6 = liftIO $ dyn174 ptr_glCopyConvolutionFilter2DEXT v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glCopyConvolutionFilter2DEXT #-}
+ptr_glCopyConvolutionFilter2DEXT :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+ptr_glCopyConvolutionFilter2DEXT = unsafePerformIO $ getCommand "glCopyConvolutionFilter2DEXT"
+
+-- glCopyImageSubData ----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glCopyImageSubData.xhtml OpenGL 4.x>.
+glCopyImageSubData
+  :: MonadIO m
+  => GLuint -- ^ @srcName@.
+  -> GLenum -- ^ @srcTarget@ of type [CopyImageSubDataTarget](Graphics-GL-Groups.html#CopyImageSubDataTarget).
+  -> GLint -- ^ @srcLevel@.
+  -> GLint -- ^ @srcX@.
+  -> GLint -- ^ @srcY@.
+  -> GLint -- ^ @srcZ@.
+  -> GLuint -- ^ @dstName@.
+  -> GLenum -- ^ @dstTarget@ of type [CopyImageSubDataTarget](Graphics-GL-Groups.html#CopyImageSubDataTarget).
+  -> GLint -- ^ @dstLevel@.
+  -> GLint -- ^ @dstX@.
+  -> GLint -- ^ @dstY@.
+  -> GLint -- ^ @dstZ@.
+  -> GLsizei -- ^ @srcWidth@.
+  -> GLsizei -- ^ @srcHeight@.
+  -> GLsizei -- ^ @srcDepth@.
+  -> m ()
+glCopyImageSubData v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 = liftIO $ dyn175 ptr_glCopyImageSubData v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15
+
+{-# NOINLINE ptr_glCopyImageSubData #-}
+ptr_glCopyImageSubData :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> IO ())
+ptr_glCopyImageSubData = unsafePerformIO $ getCommand "glCopyImageSubData"
+
+-- glCopyImageSubDataEXT -------------------------------------------------------
+
+-- | This command is an alias for 'glCopyImageSubData'.
+glCopyImageSubDataEXT
+  :: MonadIO m
+  => GLuint -- ^ @srcName@.
+  -> GLenum -- ^ @srcTarget@ of type [CopyBufferSubDataTarget](Graphics-GL-Groups.html#CopyBufferSubDataTarget).
+  -> GLint -- ^ @srcLevel@.
+  -> GLint -- ^ @srcX@.
+  -> GLint -- ^ @srcY@.
+  -> GLint -- ^ @srcZ@.
+  -> GLuint -- ^ @dstName@.
+  -> GLenum -- ^ @dstTarget@ of type [CopyBufferSubDataTarget](Graphics-GL-Groups.html#CopyBufferSubDataTarget).
+  -> GLint -- ^ @dstLevel@.
+  -> GLint -- ^ @dstX@.
+  -> GLint -- ^ @dstY@.
+  -> GLint -- ^ @dstZ@.
+  -> GLsizei -- ^ @srcWidth@.
+  -> GLsizei -- ^ @srcHeight@.
+  -> GLsizei -- ^ @srcDepth@.
+  -> m ()
+glCopyImageSubDataEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 = liftIO $ dyn175 ptr_glCopyImageSubDataEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15
+
+{-# NOINLINE ptr_glCopyImageSubDataEXT #-}
+ptr_glCopyImageSubDataEXT :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> IO ())
+ptr_glCopyImageSubDataEXT = unsafePerformIO $ getCommand "glCopyImageSubDataEXT"
+
+-- glCopyImageSubDataNV --------------------------------------------------------
+
+glCopyImageSubDataNV
+  :: MonadIO m
+  => GLuint -- ^ @srcName@.
+  -> GLenum -- ^ @srcTarget@ of type [CopyBufferSubDataTarget](Graphics-GL-Groups.html#CopyBufferSubDataTarget).
+  -> GLint -- ^ @srcLevel@.
+  -> GLint -- ^ @srcX@.
+  -> GLint -- ^ @srcY@.
+  -> GLint -- ^ @srcZ@.
+  -> GLuint -- ^ @dstName@.
+  -> GLenum -- ^ @dstTarget@ of type [CopyBufferSubDataTarget](Graphics-GL-Groups.html#CopyBufferSubDataTarget).
+  -> GLint -- ^ @dstLevel@.
+  -> GLint -- ^ @dstX@.
+  -> GLint -- ^ @dstY@.
+  -> GLint -- ^ @dstZ@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLsizei -- ^ @depth@.
+  -> m ()
+glCopyImageSubDataNV v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 = liftIO $ dyn175 ptr_glCopyImageSubDataNV v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15
+
+{-# NOINLINE ptr_glCopyImageSubDataNV #-}
+ptr_glCopyImageSubDataNV :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> IO ())
+ptr_glCopyImageSubDataNV = unsafePerformIO $ getCommand "glCopyImageSubDataNV"
+
+-- glCopyImageSubDataOES -------------------------------------------------------
+
+-- | This command is an alias for 'glCopyImageSubData'.
+glCopyImageSubDataOES
+  :: MonadIO m
+  => GLuint -- ^ @srcName@.
+  -> GLenum -- ^ @srcTarget@ of type [CopyBufferSubDataTarget](Graphics-GL-Groups.html#CopyBufferSubDataTarget).
+  -> GLint -- ^ @srcLevel@.
+  -> GLint -- ^ @srcX@.
+  -> GLint -- ^ @srcY@.
+  -> GLint -- ^ @srcZ@.
+  -> GLuint -- ^ @dstName@.
+  -> GLenum -- ^ @dstTarget@ of type [CopyBufferSubDataTarget](Graphics-GL-Groups.html#CopyBufferSubDataTarget).
+  -> GLint -- ^ @dstLevel@.
+  -> GLint -- ^ @dstX@.
+  -> GLint -- ^ @dstY@.
+  -> GLint -- ^ @dstZ@.
+  -> GLsizei -- ^ @srcWidth@.
+  -> GLsizei -- ^ @srcHeight@.
+  -> GLsizei -- ^ @srcDepth@.
+  -> m ()
+glCopyImageSubDataOES v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 = liftIO $ dyn175 ptr_glCopyImageSubDataOES v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15
+
+{-# NOINLINE ptr_glCopyImageSubDataOES #-}
+ptr_glCopyImageSubDataOES :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> IO ())
+ptr_glCopyImageSubDataOES = unsafePerformIO $ getCommand "glCopyImageSubDataOES"
+
+-- glCopyMultiTexImage1DEXT ----------------------------------------------------
+
+glCopyMultiTexImage1DEXT
+  :: MonadIO m
+  => GLenum -- ^ @texunit@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLint -- ^ @x@ of type @WinCoord@.
+  -> GLint -- ^ @y@ of type @WinCoord@.
+  -> GLsizei -- ^ @width@.
+  -> GLint -- ^ @border@ of type @CheckedInt32@.
+  -> m ()
+glCopyMultiTexImage1DEXT v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn176 ptr_glCopyMultiTexImage1DEXT v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glCopyMultiTexImage1DEXT #-}
+ptr_glCopyMultiTexImage1DEXT :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> IO ())
+ptr_glCopyMultiTexImage1DEXT = unsafePerformIO $ getCommand "glCopyMultiTexImage1DEXT"
+
+-- glCopyMultiTexImage2DEXT ----------------------------------------------------
+
+glCopyMultiTexImage2DEXT
+  :: MonadIO m
+  => GLenum -- ^ @texunit@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLint -- ^ @x@ of type @WinCoord@.
+  -> GLint -- ^ @y@ of type @WinCoord@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLint -- ^ @border@ of type @CheckedInt32@.
+  -> m ()
+glCopyMultiTexImage2DEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO $ dyn177 ptr_glCopyMultiTexImage2DEXT v1 v2 v3 v4 v5 v6 v7 v8 v9
+
+{-# NOINLINE ptr_glCopyMultiTexImage2DEXT #-}
+ptr_glCopyMultiTexImage2DEXT :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> IO ())
+ptr_glCopyMultiTexImage2DEXT = unsafePerformIO $ getCommand "glCopyMultiTexImage2DEXT"
+
+-- glCopyMultiTexSubImage1DEXT -------------------------------------------------
+
+glCopyMultiTexSubImage1DEXT
+  :: MonadIO m
+  => GLenum -- ^ @texunit@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLint -- ^ @xoffset@ of type @CheckedInt32@.
+  -> GLint -- ^ @x@ of type @WinCoord@.
+  -> GLint -- ^ @y@ of type @WinCoord@.
+  -> GLsizei -- ^ @width@.
+  -> m ()
+glCopyMultiTexSubImage1DEXT v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn178 ptr_glCopyMultiTexSubImage1DEXT v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glCopyMultiTexSubImage1DEXT #-}
+ptr_glCopyMultiTexSubImage1DEXT :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ())
+ptr_glCopyMultiTexSubImage1DEXT = unsafePerformIO $ getCommand "glCopyMultiTexSubImage1DEXT"
+
+-- glCopyMultiTexSubImage2DEXT -------------------------------------------------
+
+glCopyMultiTexSubImage2DEXT
+  :: MonadIO m
+  => GLenum -- ^ @texunit@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLint -- ^ @xoffset@ of type @CheckedInt32@.
+  -> GLint -- ^ @yoffset@ of type @CheckedInt32@.
+  -> GLint -- ^ @x@ of type @WinCoord@.
+  -> GLint -- ^ @y@ of type @WinCoord@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> m ()
+glCopyMultiTexSubImage2DEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO $ dyn179 ptr_glCopyMultiTexSubImage2DEXT v1 v2 v3 v4 v5 v6 v7 v8 v9
+
+{-# NOINLINE ptr_glCopyMultiTexSubImage2DEXT #-}
+ptr_glCopyMultiTexSubImage2DEXT :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+ptr_glCopyMultiTexSubImage2DEXT = unsafePerformIO $ getCommand "glCopyMultiTexSubImage2DEXT"
+
+-- glCopyMultiTexSubImage3DEXT -------------------------------------------------
+
+glCopyMultiTexSubImage3DEXT
+  :: MonadIO m
+  => GLenum -- ^ @texunit@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLint -- ^ @xoffset@ of type @CheckedInt32@.
+  -> GLint -- ^ @yoffset@ of type @CheckedInt32@.
+  -> GLint -- ^ @zoffset@ of type @CheckedInt32@.
+  -> GLint -- ^ @x@ of type @WinCoord@.
+  -> GLint -- ^ @y@ of type @WinCoord@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> m ()
+glCopyMultiTexSubImage3DEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 = liftIO $ dyn180 ptr_glCopyMultiTexSubImage3DEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 v10
+
+{-# NOINLINE ptr_glCopyMultiTexSubImage3DEXT #-}
+ptr_glCopyMultiTexSubImage3DEXT :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+ptr_glCopyMultiTexSubImage3DEXT = unsafePerformIO $ getCommand "glCopyMultiTexSubImage3DEXT"
+
+-- glCopyNamedBufferSubData ----------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glCopyBufferSubData.xhtml OpenGL 4.x>.
+glCopyNamedBufferSubData
+  :: MonadIO m
+  => GLuint -- ^ @readBuffer@.
+  -> GLuint -- ^ @writeBuffer@.
+  -> GLintptr -- ^ @readOffset@.
+  -> GLintptr -- ^ @writeOffset@.
+  -> GLsizeiptr -- ^ @size@ of type @BufferSize@.
+  -> m ()
+glCopyNamedBufferSubData v1 v2 v3 v4 v5 = liftIO $ dyn181 ptr_glCopyNamedBufferSubData v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glCopyNamedBufferSubData #-}
+ptr_glCopyNamedBufferSubData :: FunPtr (GLuint -> GLuint -> GLintptr -> GLintptr -> GLsizeiptr -> IO ())
+ptr_glCopyNamedBufferSubData = unsafePerformIO $ getCommand "glCopyNamedBufferSubData"
+
+-- glCopyPathNV ----------------------------------------------------------------
+
+glCopyPathNV
+  :: MonadIO m
+  => GLuint -- ^ @resultPath@ of type @Path@.
+  -> GLuint -- ^ @srcPath@ of type @Path@.
+  -> m ()
+glCopyPathNV v1 v2 = liftIO $ dyn4 ptr_glCopyPathNV v1 v2
+
+{-# NOINLINE ptr_glCopyPathNV #-}
+ptr_glCopyPathNV :: FunPtr (GLuint -> GLuint -> IO ())
+ptr_glCopyPathNV = unsafePerformIO $ getCommand "glCopyPathNV"
+
+-- glCopyPixels ----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glCopyPixels.xml OpenGL 2.x>.
+glCopyPixels
+  :: MonadIO m
+  => GLint -- ^ @x@ of type @WinCoord@.
+  -> GLint -- ^ @y@ of type @WinCoord@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLenum -- ^ @type@ of type [PixelCopyType](Graphics-GL-Groups.html#PixelCopyType).
+  -> m ()
+glCopyPixels v1 v2 v3 v4 v5 = liftIO $ dyn182 ptr_glCopyPixels v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glCopyPixels #-}
+ptr_glCopyPixels :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> IO ())
+ptr_glCopyPixels = unsafePerformIO $ getCommand "glCopyPixels"
+
+-- glCopyTexImage1D ------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glCopyTexImage1D.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glCopyTexImage1D.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glCopyTexImage1D.xhtml OpenGL 4.x>.
+glCopyTexImage1D
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLint -- ^ @x@ of type @WinCoord@.
+  -> GLint -- ^ @y@ of type @WinCoord@.
+  -> GLsizei -- ^ @width@.
+  -> GLint -- ^ @border@ of type @CheckedInt32@.
+  -> m ()
+glCopyTexImage1D v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn183 ptr_glCopyTexImage1D v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glCopyTexImage1D #-}
+ptr_glCopyTexImage1D :: FunPtr (GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> IO ())
+ptr_glCopyTexImage1D = unsafePerformIO $ getCommand "glCopyTexImage1D"
+
+-- glCopyTexImage1DEXT ---------------------------------------------------------
+
+-- | This command is an alias for 'glCopyTexImage1D'.
+glCopyTexImage1DEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLint -- ^ @x@ of type @WinCoord@.
+  -> GLint -- ^ @y@ of type @WinCoord@.
+  -> GLsizei -- ^ @width@.
+  -> GLint -- ^ @border@ of type @CheckedInt32@.
+  -> m ()
+glCopyTexImage1DEXT v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn183 ptr_glCopyTexImage1DEXT v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glCopyTexImage1DEXT #-}
+ptr_glCopyTexImage1DEXT :: FunPtr (GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> IO ())
+ptr_glCopyTexImage1DEXT = unsafePerformIO $ getCommand "glCopyTexImage1DEXT"
+
+-- glCopyTexImage2D ------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glCopyTexImage2D.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glCopyTexImage2D.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glCopyTexImage2D.xhtml OpenGL 4.x>.
+glCopyTexImage2D
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLint -- ^ @x@ of type @WinCoord@.
+  -> GLint -- ^ @y@ of type @WinCoord@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLint -- ^ @border@ of type @CheckedInt32@.
+  -> m ()
+glCopyTexImage2D v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn184 ptr_glCopyTexImage2D v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glCopyTexImage2D #-}
+ptr_glCopyTexImage2D :: FunPtr (GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> IO ())
+ptr_glCopyTexImage2D = unsafePerformIO $ getCommand "glCopyTexImage2D"
+
+-- glCopyTexImage2DEXT ---------------------------------------------------------
+
+-- | This command is an alias for 'glCopyTexImage2D'.
+glCopyTexImage2DEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLint -- ^ @x@ of type @WinCoord@.
+  -> GLint -- ^ @y@ of type @WinCoord@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLint -- ^ @border@ of type @CheckedInt32@.
+  -> m ()
+glCopyTexImage2DEXT v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn184 ptr_glCopyTexImage2DEXT v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glCopyTexImage2DEXT #-}
+ptr_glCopyTexImage2DEXT :: FunPtr (GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> IO ())
+ptr_glCopyTexImage2DEXT = unsafePerformIO $ getCommand "glCopyTexImage2DEXT"
+
+-- glCopyTexSubImage1D ---------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glCopyTexSubImage1D.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glCopyTexSubImage1D.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glCopyTexSubImage1D.xhtml OpenGL 4.x>.
+glCopyTexSubImage1D
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLint -- ^ @xoffset@ of type @CheckedInt32@.
+  -> GLint -- ^ @x@ of type @WinCoord@.
+  -> GLint -- ^ @y@ of type @WinCoord@.
+  -> GLsizei -- ^ @width@.
+  -> m ()
+glCopyTexSubImage1D v1 v2 v3 v4 v5 v6 = liftIO $ dyn185 ptr_glCopyTexSubImage1D v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glCopyTexSubImage1D #-}
+ptr_glCopyTexSubImage1D :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ())
+ptr_glCopyTexSubImage1D = unsafePerformIO $ getCommand "glCopyTexSubImage1D"
+
+-- glCopyTexSubImage1DEXT ------------------------------------------------------
+
+-- | This command is an alias for 'glCopyTexSubImage1D'.
+glCopyTexSubImage1DEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLint -- ^ @xoffset@ of type @CheckedInt32@.
+  -> GLint -- ^ @x@ of type @WinCoord@.
+  -> GLint -- ^ @y@ of type @WinCoord@.
+  -> GLsizei -- ^ @width@.
+  -> m ()
+glCopyTexSubImage1DEXT v1 v2 v3 v4 v5 v6 = liftIO $ dyn185 ptr_glCopyTexSubImage1DEXT v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glCopyTexSubImage1DEXT #-}
+ptr_glCopyTexSubImage1DEXT :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ())
+ptr_glCopyTexSubImage1DEXT = unsafePerformIO $ getCommand "glCopyTexSubImage1DEXT"
+
+-- glCopyTexSubImage2D ---------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glCopyTexSubImage2D.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glCopyTexSubImage2D.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glCopyTexSubImage2D.xhtml OpenGL 4.x>.
+glCopyTexSubImage2D
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLint -- ^ @xoffset@ of type @CheckedInt32@.
+  -> GLint -- ^ @yoffset@ of type @CheckedInt32@.
+  -> GLint -- ^ @x@ of type @WinCoord@.
+  -> GLint -- ^ @y@ of type @WinCoord@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> m ()
+glCopyTexSubImage2D v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn186 ptr_glCopyTexSubImage2D v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glCopyTexSubImage2D #-}
+ptr_glCopyTexSubImage2D :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+ptr_glCopyTexSubImage2D = unsafePerformIO $ getCommand "glCopyTexSubImage2D"
+
+-- glCopyTexSubImage2DEXT ------------------------------------------------------
+
+-- | This command is an alias for 'glCopyTexSubImage2D'.
+glCopyTexSubImage2DEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLint -- ^ @xoffset@ of type @CheckedInt32@.
+  -> GLint -- ^ @yoffset@ of type @CheckedInt32@.
+  -> GLint -- ^ @x@ of type @WinCoord@.
+  -> GLint -- ^ @y@ of type @WinCoord@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> m ()
+glCopyTexSubImage2DEXT v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn186 ptr_glCopyTexSubImage2DEXT v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glCopyTexSubImage2DEXT #-}
+ptr_glCopyTexSubImage2DEXT :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+ptr_glCopyTexSubImage2DEXT = unsafePerformIO $ getCommand "glCopyTexSubImage2DEXT"
+
+-- glCopyTexSubImage3D ---------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glCopyTexSubImage3D.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glCopyTexSubImage3D.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glCopyTexSubImage3D.xhtml OpenGL 4.x>.
+glCopyTexSubImage3D
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLint -- ^ @xoffset@ of type @CheckedInt32@.
+  -> GLint -- ^ @yoffset@ of type @CheckedInt32@.
+  -> GLint -- ^ @zoffset@ of type @CheckedInt32@.
+  -> GLint -- ^ @x@ of type @WinCoord@.
+  -> GLint -- ^ @y@ of type @WinCoord@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> m ()
+glCopyTexSubImage3D v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO $ dyn187 ptr_glCopyTexSubImage3D v1 v2 v3 v4 v5 v6 v7 v8 v9
+
+{-# NOINLINE ptr_glCopyTexSubImage3D #-}
+ptr_glCopyTexSubImage3D :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+ptr_glCopyTexSubImage3D = unsafePerformIO $ getCommand "glCopyTexSubImage3D"
+
+-- glCopyTexSubImage3DEXT ------------------------------------------------------
+
+-- | This command is an alias for 'glCopyTexSubImage3D'.
+glCopyTexSubImage3DEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLint -- ^ @xoffset@ of type @CheckedInt32@.
+  -> GLint -- ^ @yoffset@ of type @CheckedInt32@.
+  -> GLint -- ^ @zoffset@ of type @CheckedInt32@.
+  -> GLint -- ^ @x@ of type @WinCoord@.
+  -> GLint -- ^ @y@ of type @WinCoord@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> m ()
+glCopyTexSubImage3DEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO $ dyn187 ptr_glCopyTexSubImage3DEXT v1 v2 v3 v4 v5 v6 v7 v8 v9
+
+{-# NOINLINE ptr_glCopyTexSubImage3DEXT #-}
+ptr_glCopyTexSubImage3DEXT :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+ptr_glCopyTexSubImage3DEXT = unsafePerformIO $ getCommand "glCopyTexSubImage3DEXT"
+
+-- glCopyTexSubImage3DOES ------------------------------------------------------
+
+glCopyTexSubImage3DOES
+  :: MonadIO m
+  => GLenum -- ^ @target@.
+  -> GLint -- ^ @level@.
+  -> GLint -- ^ @xoffset@.
+  -> GLint -- ^ @yoffset@.
+  -> GLint -- ^ @zoffset@.
+  -> GLint -- ^ @x@.
+  -> GLint -- ^ @y@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> m ()
+glCopyTexSubImage3DOES v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO $ dyn187 ptr_glCopyTexSubImage3DOES v1 v2 v3 v4 v5 v6 v7 v8 v9
+
+{-# NOINLINE ptr_glCopyTexSubImage3DOES #-}
+ptr_glCopyTexSubImage3DOES :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+ptr_glCopyTexSubImage3DOES = unsafePerformIO $ getCommand "glCopyTexSubImage3DOES"
+
+-- glCopyTextureImage1DEXT -----------------------------------------------------
+
+glCopyTextureImage1DEXT
+  :: MonadIO m
+  => GLuint -- ^ @texture@ of type @Texture@.
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLint -- ^ @x@ of type @WinCoord@.
+  -> GLint -- ^ @y@ of type @WinCoord@.
+  -> GLsizei -- ^ @width@.
+  -> GLint -- ^ @border@ of type @CheckedInt32@.
+  -> m ()
+glCopyTextureImage1DEXT v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn188 ptr_glCopyTextureImage1DEXT v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glCopyTextureImage1DEXT #-}
+ptr_glCopyTextureImage1DEXT :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> IO ())
+ptr_glCopyTextureImage1DEXT = unsafePerformIO $ getCommand "glCopyTextureImage1DEXT"
+
+-- glCopyTextureImage2DEXT -----------------------------------------------------
+
+glCopyTextureImage2DEXT
+  :: MonadIO m
+  => GLuint -- ^ @texture@ of type @Texture@.
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLint -- ^ @x@ of type @WinCoord@.
+  -> GLint -- ^ @y@ of type @WinCoord@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLint -- ^ @border@ of type @CheckedInt32@.
+  -> m ()
+glCopyTextureImage2DEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO $ dyn189 ptr_glCopyTextureImage2DEXT v1 v2 v3 v4 v5 v6 v7 v8 v9
+
+{-# NOINLINE ptr_glCopyTextureImage2DEXT #-}
+ptr_glCopyTextureImage2DEXT :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> IO ())
+ptr_glCopyTextureImage2DEXT = unsafePerformIO $ getCommand "glCopyTextureImage2DEXT"
+
diff --git a/src/Graphics/GL/Functions/F05.hs b/src/Graphics/GL/Functions/F05.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Functions/F05.hs
@@ -0,0 +1,1560 @@
+{-# OPTIONS_HADDOCK hide #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Functions.F05
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- Raw functions from the
+-- <http://www.opengl.org/registry/ OpenGL registry>.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Functions.F05 (
+  glCopyTextureLevelsAPPLE,
+  glCopyTextureSubImage1D,
+  glCopyTextureSubImage1DEXT,
+  glCopyTextureSubImage2D,
+  glCopyTextureSubImage2DEXT,
+  glCopyTextureSubImage3D,
+  glCopyTextureSubImage3DEXT,
+  glCoverFillPathInstancedNV,
+  glCoverFillPathNV,
+  glCoverStrokePathInstancedNV,
+  glCoverStrokePathNV,
+  glCoverageMaskNV,
+  glCoverageModulationNV,
+  glCoverageModulationTableNV,
+  glCoverageOperationNV,
+  glCreateBuffers,
+  glCreateCommandListsNV,
+  glCreateFramebuffers,
+  glCreateMemoryObjectsEXT,
+  glCreatePerfQueryINTEL,
+  glCreateProgram,
+  glCreateProgramObjectARB,
+  glCreateProgramPipelines,
+  glCreateProgressFenceNVX,
+  glCreateQueries,
+  glCreateRenderbuffers,
+  glCreateSamplers,
+  glCreateShader,
+  glCreateShaderObjectARB,
+  glCreateShaderProgramEXT,
+  glCreateShaderProgramv,
+  glCreateShaderProgramvEXT,
+  glCreateStatesNV,
+  glCreateSyncFromCLeventARB,
+  glCreateTextures,
+  glCreateTransformFeedbacks,
+  glCreateVertexArrays,
+  glCullFace,
+  glCullParameterdvEXT,
+  glCullParameterfvEXT,
+  glCurrentPaletteMatrixARB,
+  glCurrentPaletteMatrixOES,
+  glDebugMessageCallback,
+  glDebugMessageCallbackAMD,
+  glDebugMessageCallbackARB,
+  glDebugMessageCallbackKHR,
+  glDebugMessageControl,
+  glDebugMessageControlARB,
+  glDebugMessageControlKHR,
+  glDebugMessageEnableAMD,
+  glDebugMessageInsert,
+  glDebugMessageInsertAMD,
+  glDebugMessageInsertARB,
+  glDebugMessageInsertKHR,
+  glDeformSGIX,
+  glDeformationMap3dSGIX,
+  glDeformationMap3fSGIX,
+  glDeleteAsyncMarkersSGIX,
+  glDeleteBuffers,
+  glDeleteBuffersARB,
+  glDeleteCommandListsNV,
+  glDeleteFencesAPPLE,
+  glDeleteFencesNV,
+  glDeleteFragmentShaderATI,
+  glDeleteFramebuffers,
+  glDeleteFramebuffersEXT,
+  glDeleteFramebuffersOES,
+  glDeleteLists,
+  glDeleteMemoryObjectsEXT,
+  glDeleteNamedStringARB,
+  glDeleteNamesAMD,
+  glDeleteObjectARB,
+  glDeleteOcclusionQueriesNV,
+  glDeletePathsNV,
+  glDeletePerfMonitorsAMD,
+  glDeletePerfQueryINTEL,
+  glDeleteProgram,
+  glDeleteProgramPipelines,
+  glDeleteProgramPipelinesEXT,
+  glDeleteProgramsARB,
+  glDeleteProgramsNV,
+  glDeleteQueries,
+  glDeleteQueriesARB,
+  glDeleteQueriesEXT,
+  glDeleteQueryResourceTagNV,
+  glDeleteRenderbuffers,
+  glDeleteRenderbuffersEXT,
+  glDeleteRenderbuffersOES,
+  glDeleteSamplers,
+  glDeleteSemaphoresEXT,
+  glDeleteShader,
+  glDeleteStatesNV,
+  glDeleteSync,
+  glDeleteSyncAPPLE,
+  glDeleteTextures,
+  glDeleteTexturesEXT,
+  glDeleteTransformFeedbacks,
+  glDeleteTransformFeedbacksNV,
+  glDeleteVertexArrays,
+  glDeleteVertexArraysAPPLE
+) where
+
+import Control.Monad.IO.Class ( MonadIO(..) )
+import Foreign.Ptr
+import Graphics.GL.Foreign
+import Graphics.GL.Types
+import System.IO.Unsafe ( unsafePerformIO )
+
+-- glCopyTextureLevelsAPPLE ----------------------------------------------------
+
+glCopyTextureLevelsAPPLE
+  :: MonadIO m
+  => GLuint -- ^ @destinationTexture@.
+  -> GLuint -- ^ @sourceTexture@.
+  -> GLint -- ^ @sourceBaseLevel@.
+  -> GLsizei -- ^ @sourceLevelCount@.
+  -> m ()
+glCopyTextureLevelsAPPLE v1 v2 v3 v4 = liftIO $ dyn190 ptr_glCopyTextureLevelsAPPLE v1 v2 v3 v4
+
+{-# NOINLINE ptr_glCopyTextureLevelsAPPLE #-}
+ptr_glCopyTextureLevelsAPPLE :: FunPtr (GLuint -> GLuint -> GLint -> GLsizei -> IO ())
+ptr_glCopyTextureLevelsAPPLE = unsafePerformIO $ getCommand "glCopyTextureLevelsAPPLE"
+
+-- glCopyTextureSubImage1D -----------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glCopyTexSubImage1D.xhtml OpenGL 4.x>.
+glCopyTextureSubImage1D
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLint -- ^ @level@.
+  -> GLint -- ^ @xoffset@.
+  -> GLint -- ^ @x@.
+  -> GLint -- ^ @y@.
+  -> GLsizei -- ^ @width@.
+  -> m ()
+glCopyTextureSubImage1D v1 v2 v3 v4 v5 v6 = liftIO $ dyn191 ptr_glCopyTextureSubImage1D v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glCopyTextureSubImage1D #-}
+ptr_glCopyTextureSubImage1D :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ())
+ptr_glCopyTextureSubImage1D = unsafePerformIO $ getCommand "glCopyTextureSubImage1D"
+
+-- glCopyTextureSubImage1DEXT --------------------------------------------------
+
+glCopyTextureSubImage1DEXT
+  :: MonadIO m
+  => GLuint -- ^ @texture@ of type @Texture@.
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLint -- ^ @xoffset@ of type @CheckedInt32@.
+  -> GLint -- ^ @x@ of type @WinCoord@.
+  -> GLint -- ^ @y@ of type @WinCoord@.
+  -> GLsizei -- ^ @width@.
+  -> m ()
+glCopyTextureSubImage1DEXT v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn192 ptr_glCopyTextureSubImage1DEXT v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glCopyTextureSubImage1DEXT #-}
+ptr_glCopyTextureSubImage1DEXT :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ())
+ptr_glCopyTextureSubImage1DEXT = unsafePerformIO $ getCommand "glCopyTextureSubImage1DEXT"
+
+-- glCopyTextureSubImage2D -----------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glCopyTexSubImage2D.xhtml OpenGL 4.x>.
+glCopyTextureSubImage2D
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLint -- ^ @level@.
+  -> GLint -- ^ @xoffset@.
+  -> GLint -- ^ @yoffset@.
+  -> GLint -- ^ @x@.
+  -> GLint -- ^ @y@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> m ()
+glCopyTextureSubImage2D v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn193 ptr_glCopyTextureSubImage2D v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glCopyTextureSubImage2D #-}
+ptr_glCopyTextureSubImage2D :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+ptr_glCopyTextureSubImage2D = unsafePerformIO $ getCommand "glCopyTextureSubImage2D"
+
+-- glCopyTextureSubImage2DEXT --------------------------------------------------
+
+glCopyTextureSubImage2DEXT
+  :: MonadIO m
+  => GLuint -- ^ @texture@ of type @Texture@.
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLint -- ^ @xoffset@ of type @CheckedInt32@.
+  -> GLint -- ^ @yoffset@ of type @CheckedInt32@.
+  -> GLint -- ^ @x@ of type @WinCoord@.
+  -> GLint -- ^ @y@ of type @WinCoord@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> m ()
+glCopyTextureSubImage2DEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO $ dyn194 ptr_glCopyTextureSubImage2DEXT v1 v2 v3 v4 v5 v6 v7 v8 v9
+
+{-# NOINLINE ptr_glCopyTextureSubImage2DEXT #-}
+ptr_glCopyTextureSubImage2DEXT :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+ptr_glCopyTextureSubImage2DEXT = unsafePerformIO $ getCommand "glCopyTextureSubImage2DEXT"
+
+-- glCopyTextureSubImage3D -----------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glCopyTexSubImage3D.xhtml OpenGL 4.x>.
+glCopyTextureSubImage3D
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLint -- ^ @level@.
+  -> GLint -- ^ @xoffset@.
+  -> GLint -- ^ @yoffset@.
+  -> GLint -- ^ @zoffset@.
+  -> GLint -- ^ @x@.
+  -> GLint -- ^ @y@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> m ()
+glCopyTextureSubImage3D v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO $ dyn195 ptr_glCopyTextureSubImage3D v1 v2 v3 v4 v5 v6 v7 v8 v9
+
+{-# NOINLINE ptr_glCopyTextureSubImage3D #-}
+ptr_glCopyTextureSubImage3D :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+ptr_glCopyTextureSubImage3D = unsafePerformIO $ getCommand "glCopyTextureSubImage3D"
+
+-- glCopyTextureSubImage3DEXT --------------------------------------------------
+
+glCopyTextureSubImage3DEXT
+  :: MonadIO m
+  => GLuint -- ^ @texture@ of type @Texture@.
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLint -- ^ @xoffset@ of type @CheckedInt32@.
+  -> GLint -- ^ @yoffset@ of type @CheckedInt32@.
+  -> GLint -- ^ @zoffset@ of type @CheckedInt32@.
+  -> GLint -- ^ @x@ of type @WinCoord@.
+  -> GLint -- ^ @y@ of type @WinCoord@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> m ()
+glCopyTextureSubImage3DEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 = liftIO $ dyn196 ptr_glCopyTextureSubImage3DEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 v10
+
+{-# NOINLINE ptr_glCopyTextureSubImage3DEXT #-}
+ptr_glCopyTextureSubImage3DEXT :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+ptr_glCopyTextureSubImage3DEXT = unsafePerformIO $ getCommand "glCopyTextureSubImage3DEXT"
+
+-- glCoverFillPathInstancedNV --------------------------------------------------
+
+glCoverFillPathInstancedNV
+  :: MonadIO m
+  => GLsizei -- ^ @numPaths@.
+  -> GLenum -- ^ @pathNameType@ of type [PathElementType](Graphics-GL-Groups.html#PathElementType).
+  -> Ptr a -- ^ @paths@ pointing to @COMPSIZE(numPaths,pathNameType,paths)@ elements of type @PathElement@.
+  -> GLuint -- ^ @pathBase@ of type @Path@.
+  -> GLenum -- ^ @coverMode@ of type [PathCoverMode](Graphics-GL-Groups.html#PathCoverMode).
+  -> GLenum -- ^ @transformType@ of type [PathTransformType](Graphics-GL-Groups.html#PathTransformType).
+  -> Ptr GLfloat -- ^ @transformValues@ pointing to @COMPSIZE(numPaths,transformType)@ elements of type @GLfloat@.
+  -> m ()
+glCoverFillPathInstancedNV v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn197 ptr_glCoverFillPathInstancedNV v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glCoverFillPathInstancedNV #-}
+ptr_glCoverFillPathInstancedNV :: FunPtr (GLsizei -> GLenum -> Ptr a -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glCoverFillPathInstancedNV = unsafePerformIO $ getCommand "glCoverFillPathInstancedNV"
+
+-- glCoverFillPathNV -----------------------------------------------------------
+
+glCoverFillPathNV
+  :: MonadIO m
+  => GLuint -- ^ @path@ of type @Path@.
+  -> GLenum -- ^ @coverMode@ of type [PathCoverMode](Graphics-GL-Groups.html#PathCoverMode).
+  -> m ()
+glCoverFillPathNV v1 v2 = liftIO $ dyn18 ptr_glCoverFillPathNV v1 v2
+
+{-# NOINLINE ptr_glCoverFillPathNV #-}
+ptr_glCoverFillPathNV :: FunPtr (GLuint -> GLenum -> IO ())
+ptr_glCoverFillPathNV = unsafePerformIO $ getCommand "glCoverFillPathNV"
+
+-- glCoverStrokePathInstancedNV ------------------------------------------------
+
+glCoverStrokePathInstancedNV
+  :: MonadIO m
+  => GLsizei -- ^ @numPaths@.
+  -> GLenum -- ^ @pathNameType@ of type [PathElementType](Graphics-GL-Groups.html#PathElementType).
+  -> Ptr a -- ^ @paths@ pointing to @COMPSIZE(numPaths,pathNameType,paths)@ elements of type @PathElement@.
+  -> GLuint -- ^ @pathBase@ of type @Path@.
+  -> GLenum -- ^ @coverMode@ of type [PathCoverMode](Graphics-GL-Groups.html#PathCoverMode).
+  -> GLenum -- ^ @transformType@ of type [PathTransformType](Graphics-GL-Groups.html#PathTransformType).
+  -> Ptr GLfloat -- ^ @transformValues@ pointing to @COMPSIZE(numPaths,transformType)@ elements of type @GLfloat@.
+  -> m ()
+glCoverStrokePathInstancedNV v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn197 ptr_glCoverStrokePathInstancedNV v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glCoverStrokePathInstancedNV #-}
+ptr_glCoverStrokePathInstancedNV :: FunPtr (GLsizei -> GLenum -> Ptr a -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glCoverStrokePathInstancedNV = unsafePerformIO $ getCommand "glCoverStrokePathInstancedNV"
+
+-- glCoverStrokePathNV ---------------------------------------------------------
+
+glCoverStrokePathNV
+  :: MonadIO m
+  => GLuint -- ^ @path@ of type @Path@.
+  -> GLenum -- ^ @coverMode@ of type [PathCoverMode](Graphics-GL-Groups.html#PathCoverMode).
+  -> m ()
+glCoverStrokePathNV v1 v2 = liftIO $ dyn18 ptr_glCoverStrokePathNV v1 v2
+
+{-# NOINLINE ptr_glCoverStrokePathNV #-}
+ptr_glCoverStrokePathNV :: FunPtr (GLuint -> GLenum -> IO ())
+ptr_glCoverStrokePathNV = unsafePerformIO $ getCommand "glCoverStrokePathNV"
+
+-- glCoverageMaskNV ------------------------------------------------------------
+
+glCoverageMaskNV
+  :: MonadIO m
+  => GLboolean -- ^ @mask@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m ()
+glCoverageMaskNV v1 = liftIO $ dyn198 ptr_glCoverageMaskNV v1
+
+{-# NOINLINE ptr_glCoverageMaskNV #-}
+ptr_glCoverageMaskNV :: FunPtr (GLboolean -> IO ())
+ptr_glCoverageMaskNV = unsafePerformIO $ getCommand "glCoverageMaskNV"
+
+-- glCoverageModulationNV ------------------------------------------------------
+
+glCoverageModulationNV
+  :: MonadIO m
+  => GLenum -- ^ @components@.
+  -> m ()
+glCoverageModulationNV v1 = liftIO $ dyn5 ptr_glCoverageModulationNV v1
+
+{-# NOINLINE ptr_glCoverageModulationNV #-}
+ptr_glCoverageModulationNV :: FunPtr (GLenum -> IO ())
+ptr_glCoverageModulationNV = unsafePerformIO $ getCommand "glCoverageModulationNV"
+
+-- glCoverageModulationTableNV -------------------------------------------------
+
+glCoverageModulationTableNV
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLfloat -- ^ @v@ pointing to @n@ elements of type @GLfloat@.
+  -> m ()
+glCoverageModulationTableNV v1 v2 = liftIO $ dyn199 ptr_glCoverageModulationTableNV v1 v2
+
+{-# NOINLINE ptr_glCoverageModulationTableNV #-}
+ptr_glCoverageModulationTableNV :: FunPtr (GLsizei -> Ptr GLfloat -> IO ())
+ptr_glCoverageModulationTableNV = unsafePerformIO $ getCommand "glCoverageModulationTableNV"
+
+-- glCoverageOperationNV -------------------------------------------------------
+
+glCoverageOperationNV
+  :: MonadIO m
+  => GLenum -- ^ @operation@.
+  -> m ()
+glCoverageOperationNV v1 = liftIO $ dyn5 ptr_glCoverageOperationNV v1
+
+{-# NOINLINE ptr_glCoverageOperationNV #-}
+ptr_glCoverageOperationNV :: FunPtr (GLenum -> IO ())
+ptr_glCoverageOperationNV = unsafePerformIO $ getCommand "glCoverageOperationNV"
+
+-- glCreateBuffers -------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glCreateBuffers.xhtml OpenGL 4.x>.
+glCreateBuffers
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @buffers@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glCreateBuffers v1 v2 = liftIO $ dyn200 ptr_glCreateBuffers v1 v2
+
+{-# NOINLINE ptr_glCreateBuffers #-}
+ptr_glCreateBuffers :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glCreateBuffers = unsafePerformIO $ getCommand "glCreateBuffers"
+
+-- glCreateCommandListsNV ------------------------------------------------------
+
+glCreateCommandListsNV
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @lists@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glCreateCommandListsNV v1 v2 = liftIO $ dyn200 ptr_glCreateCommandListsNV v1 v2
+
+{-# NOINLINE ptr_glCreateCommandListsNV #-}
+ptr_glCreateCommandListsNV :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glCreateCommandListsNV = unsafePerformIO $ getCommand "glCreateCommandListsNV"
+
+-- glCreateFramebuffers --------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glCreateFramebuffers.xhtml OpenGL 4.x>.
+glCreateFramebuffers
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @framebuffers@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glCreateFramebuffers v1 v2 = liftIO $ dyn200 ptr_glCreateFramebuffers v1 v2
+
+{-# NOINLINE ptr_glCreateFramebuffers #-}
+ptr_glCreateFramebuffers :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glCreateFramebuffers = unsafePerformIO $ getCommand "glCreateFramebuffers"
+
+-- glCreateMemoryObjectsEXT ----------------------------------------------------
+
+glCreateMemoryObjectsEXT
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @memoryObjects@.
+  -> m ()
+glCreateMemoryObjectsEXT v1 v2 = liftIO $ dyn200 ptr_glCreateMemoryObjectsEXT v1 v2
+
+{-# NOINLINE ptr_glCreateMemoryObjectsEXT #-}
+ptr_glCreateMemoryObjectsEXT :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glCreateMemoryObjectsEXT = unsafePerformIO $ getCommand "glCreateMemoryObjectsEXT"
+
+-- glCreatePerfQueryINTEL ------------------------------------------------------
+
+glCreatePerfQueryINTEL
+  :: MonadIO m
+  => GLuint -- ^ @queryId@.
+  -> Ptr GLuint -- ^ @queryHandle@.
+  -> m ()
+glCreatePerfQueryINTEL v1 v2 = liftIO $ dyn201 ptr_glCreatePerfQueryINTEL v1 v2
+
+{-# NOINLINE ptr_glCreatePerfQueryINTEL #-}
+ptr_glCreatePerfQueryINTEL :: FunPtr (GLuint -> Ptr GLuint -> IO ())
+ptr_glCreatePerfQueryINTEL = unsafePerformIO $ getCommand "glCreatePerfQueryINTEL"
+
+-- glCreateProgram -------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glCreateProgram.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glCreateProgram.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glCreateProgram.xhtml OpenGL 4.x>.
+glCreateProgram
+  :: MonadIO m
+  => m GLuint
+glCreateProgram = liftIO $ dyn202 ptr_glCreateProgram
+
+{-# NOINLINE ptr_glCreateProgram #-}
+ptr_glCreateProgram :: FunPtr (IO GLuint)
+ptr_glCreateProgram = unsafePerformIO $ getCommand "glCreateProgram"
+
+-- glCreateProgramObjectARB ----------------------------------------------------
+
+-- | This command is an alias for 'glCreateProgram'.
+glCreateProgramObjectARB
+  :: MonadIO m
+  => m GLhandleARB -- ^ of type @handleARB@.
+glCreateProgramObjectARB = liftIO $ dyn203 ptr_glCreateProgramObjectARB
+
+{-# NOINLINE ptr_glCreateProgramObjectARB #-}
+ptr_glCreateProgramObjectARB :: FunPtr (IO GLhandleARB)
+ptr_glCreateProgramObjectARB = unsafePerformIO $ getCommand "glCreateProgramObjectARB"
+
+-- glCreateProgramPipelines ----------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glCreateProgramPipelines.xhtml OpenGL 4.x>.
+glCreateProgramPipelines
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @pipelines@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glCreateProgramPipelines v1 v2 = liftIO $ dyn200 ptr_glCreateProgramPipelines v1 v2
+
+{-# NOINLINE ptr_glCreateProgramPipelines #-}
+ptr_glCreateProgramPipelines :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glCreateProgramPipelines = unsafePerformIO $ getCommand "glCreateProgramPipelines"
+
+-- glCreateProgressFenceNVX ----------------------------------------------------
+
+glCreateProgressFenceNVX
+  :: MonadIO m
+  => m GLuint
+glCreateProgressFenceNVX = liftIO $ dyn202 ptr_glCreateProgressFenceNVX
+
+{-# NOINLINE ptr_glCreateProgressFenceNVX #-}
+ptr_glCreateProgressFenceNVX :: FunPtr (IO GLuint)
+ptr_glCreateProgressFenceNVX = unsafePerformIO $ getCommand "glCreateProgressFenceNVX"
+
+-- glCreateQueries -------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glCreateQueries.xhtml OpenGL 4.x>.
+glCreateQueries
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [QueryTarget](Graphics-GL-Groups.html#QueryTarget).
+  -> GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @ids@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glCreateQueries v1 v2 v3 = liftIO $ dyn204 ptr_glCreateQueries v1 v2 v3
+
+{-# NOINLINE ptr_glCreateQueries #-}
+ptr_glCreateQueries :: FunPtr (GLenum -> GLsizei -> Ptr GLuint -> IO ())
+ptr_glCreateQueries = unsafePerformIO $ getCommand "glCreateQueries"
+
+-- glCreateRenderbuffers -------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glCreateRenderbuffers.xhtml OpenGL 4.x>.
+glCreateRenderbuffers
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @renderbuffers@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glCreateRenderbuffers v1 v2 = liftIO $ dyn200 ptr_glCreateRenderbuffers v1 v2
+
+{-# NOINLINE ptr_glCreateRenderbuffers #-}
+ptr_glCreateRenderbuffers :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glCreateRenderbuffers = unsafePerformIO $ getCommand "glCreateRenderbuffers"
+
+-- glCreateSamplers ------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glCreateSamplers.xhtml OpenGL 4.x>.
+glCreateSamplers
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @samplers@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glCreateSamplers v1 v2 = liftIO $ dyn200 ptr_glCreateSamplers v1 v2
+
+{-# NOINLINE ptr_glCreateSamplers #-}
+ptr_glCreateSamplers :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glCreateSamplers = unsafePerformIO $ getCommand "glCreateSamplers"
+
+-- glCreateShader --------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glCreateShader.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glCreateShader.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glCreateShader.xhtml OpenGL 4.x>.
+glCreateShader
+  :: MonadIO m
+  => GLenum -- ^ @type@ of type [ShaderType](Graphics-GL-Groups.html#ShaderType).
+  -> m GLuint
+glCreateShader v1 = liftIO $ dyn33 ptr_glCreateShader v1
+
+{-# NOINLINE ptr_glCreateShader #-}
+ptr_glCreateShader :: FunPtr (GLenum -> IO GLuint)
+ptr_glCreateShader = unsafePerformIO $ getCommand "glCreateShader"
+
+-- glCreateShaderObjectARB -----------------------------------------------------
+
+-- | This command is an alias for 'glCreateShader'.
+glCreateShaderObjectARB
+  :: MonadIO m
+  => GLenum -- ^ @shaderType@ of type [ShaderType](Graphics-GL-Groups.html#ShaderType).
+  -> m GLhandleARB -- ^ of type @handleARB@.
+glCreateShaderObjectARB v1 = liftIO $ dyn205 ptr_glCreateShaderObjectARB v1
+
+{-# NOINLINE ptr_glCreateShaderObjectARB #-}
+ptr_glCreateShaderObjectARB :: FunPtr (GLenum -> IO GLhandleARB)
+ptr_glCreateShaderObjectARB = unsafePerformIO $ getCommand "glCreateShaderObjectARB"
+
+-- glCreateShaderProgramEXT ----------------------------------------------------
+
+glCreateShaderProgramEXT
+  :: MonadIO m
+  => GLenum -- ^ @type@ of type [ShaderType](Graphics-GL-Groups.html#ShaderType).
+  -> Ptr GLchar -- ^ @string@.
+  -> m GLuint
+glCreateShaderProgramEXT v1 v2 = liftIO $ dyn206 ptr_glCreateShaderProgramEXT v1 v2
+
+{-# NOINLINE ptr_glCreateShaderProgramEXT #-}
+ptr_glCreateShaderProgramEXT :: FunPtr (GLenum -> Ptr GLchar -> IO GLuint)
+ptr_glCreateShaderProgramEXT = unsafePerformIO $ getCommand "glCreateShaderProgramEXT"
+
+-- glCreateShaderProgramv ------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glCreateShaderProgram.xhtml OpenGL 4.x>.
+glCreateShaderProgramv
+  :: MonadIO m
+  => GLenum -- ^ @type@ of type [ShaderType](Graphics-GL-Groups.html#ShaderType).
+  -> GLsizei -- ^ @count@.
+  -> Ptr (Ptr GLchar) -- ^ @strings@ pointing to @count@ elements of type @Ptr GLchar@.
+  -> m GLuint
+glCreateShaderProgramv v1 v2 v3 = liftIO $ dyn207 ptr_glCreateShaderProgramv v1 v2 v3
+
+{-# NOINLINE ptr_glCreateShaderProgramv #-}
+ptr_glCreateShaderProgramv :: FunPtr (GLenum -> GLsizei -> Ptr (Ptr GLchar) -> IO GLuint)
+ptr_glCreateShaderProgramv = unsafePerformIO $ getCommand "glCreateShaderProgramv"
+
+-- glCreateShaderProgramvEXT ---------------------------------------------------
+
+glCreateShaderProgramvEXT
+  :: MonadIO m
+  => GLenum -- ^ @type@ of type [ShaderType](Graphics-GL-Groups.html#ShaderType).
+  -> GLsizei -- ^ @count@.
+  -> Ptr (Ptr GLchar) -- ^ @strings@ pointing to @count@ elements of type @Ptr GLchar@.
+  -> m GLuint
+glCreateShaderProgramvEXT v1 v2 v3 = liftIO $ dyn207 ptr_glCreateShaderProgramvEXT v1 v2 v3
+
+{-# NOINLINE ptr_glCreateShaderProgramvEXT #-}
+ptr_glCreateShaderProgramvEXT :: FunPtr (GLenum -> GLsizei -> Ptr (Ptr GLchar) -> IO GLuint)
+ptr_glCreateShaderProgramvEXT = unsafePerformIO $ getCommand "glCreateShaderProgramvEXT"
+
+-- glCreateStatesNV ------------------------------------------------------------
+
+glCreateStatesNV
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @states@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glCreateStatesNV v1 v2 = liftIO $ dyn200 ptr_glCreateStatesNV v1 v2
+
+{-# NOINLINE ptr_glCreateStatesNV #-}
+ptr_glCreateStatesNV :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glCreateStatesNV = unsafePerformIO $ getCommand "glCreateStatesNV"
+
+-- glCreateSyncFromCLeventARB --------------------------------------------------
+
+glCreateSyncFromCLeventARB
+  :: MonadIO m
+  => Ptr a -- ^ @context@ pointing to elements of type @cl_context@.
+  -> Ptr b -- ^ @event@ pointing to elements of type @cl_event@.
+  -> GLbitfield -- ^ @flags@.
+  -> m GLsync -- ^ of type @sync@.
+glCreateSyncFromCLeventARB v1 v2 v3 = liftIO $ dyn208 ptr_glCreateSyncFromCLeventARB v1 v2 v3
+
+{-# NOINLINE ptr_glCreateSyncFromCLeventARB #-}
+ptr_glCreateSyncFromCLeventARB :: FunPtr (Ptr a -> Ptr b -> GLbitfield -> IO GLsync)
+ptr_glCreateSyncFromCLeventARB = unsafePerformIO $ getCommand "glCreateSyncFromCLeventARB"
+
+-- glCreateTextures ------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glCreateTextures.xhtml OpenGL 4.x>.
+glCreateTextures
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @textures@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glCreateTextures v1 v2 v3 = liftIO $ dyn204 ptr_glCreateTextures v1 v2 v3
+
+{-# NOINLINE ptr_glCreateTextures #-}
+ptr_glCreateTextures :: FunPtr (GLenum -> GLsizei -> Ptr GLuint -> IO ())
+ptr_glCreateTextures = unsafePerformIO $ getCommand "glCreateTextures"
+
+-- glCreateTransformFeedbacks --------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glCreateTransformFeedbacks.xhtml OpenGL 4.x>.
+glCreateTransformFeedbacks
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @ids@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glCreateTransformFeedbacks v1 v2 = liftIO $ dyn200 ptr_glCreateTransformFeedbacks v1 v2
+
+{-# NOINLINE ptr_glCreateTransformFeedbacks #-}
+ptr_glCreateTransformFeedbacks :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glCreateTransformFeedbacks = unsafePerformIO $ getCommand "glCreateTransformFeedbacks"
+
+-- glCreateVertexArrays --------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glCreateVertexArrays.xhtml OpenGL 4.x>.
+glCreateVertexArrays
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @arrays@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glCreateVertexArrays v1 v2 = liftIO $ dyn200 ptr_glCreateVertexArrays v1 v2
+
+{-# NOINLINE ptr_glCreateVertexArrays #-}
+ptr_glCreateVertexArrays :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glCreateVertexArrays = unsafePerformIO $ getCommand "glCreateVertexArrays"
+
+-- glCullFace ------------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glCullFace.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glCullFace.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glCullFace.xhtml OpenGL 4.x>.
+glCullFace
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [CullFaceMode](Graphics-GL-Groups.html#CullFaceMode).
+  -> m ()
+glCullFace v1 = liftIO $ dyn5 ptr_glCullFace v1
+
+{-# NOINLINE ptr_glCullFace #-}
+ptr_glCullFace :: FunPtr (GLenum -> IO ())
+ptr_glCullFace = unsafePerformIO $ getCommand "glCullFace"
+
+-- glCullParameterdvEXT --------------------------------------------------------
+
+glCullParameterdvEXT
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [CullParameterEXT](Graphics-GL-Groups.html#CullParameterEXT).
+  -> Ptr GLdouble -- ^ @params@ pointing to @4@ elements of type @GLdouble@.
+  -> m ()
+glCullParameterdvEXT v1 v2 = liftIO $ dyn100 ptr_glCullParameterdvEXT v1 v2
+
+{-# NOINLINE ptr_glCullParameterdvEXT #-}
+ptr_glCullParameterdvEXT :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+ptr_glCullParameterdvEXT = unsafePerformIO $ getCommand "glCullParameterdvEXT"
+
+-- glCullParameterfvEXT --------------------------------------------------------
+
+glCullParameterfvEXT
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [CullParameterEXT](Graphics-GL-Groups.html#CullParameterEXT).
+  -> Ptr GLfloat -- ^ @params@ pointing to @4@ elements of type @GLfloat@.
+  -> m ()
+glCullParameterfvEXT v1 v2 = liftIO $ dyn101 ptr_glCullParameterfvEXT v1 v2
+
+{-# NOINLINE ptr_glCullParameterfvEXT #-}
+ptr_glCullParameterfvEXT :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+ptr_glCullParameterfvEXT = unsafePerformIO $ getCommand "glCullParameterfvEXT"
+
+-- glCurrentPaletteMatrixARB ---------------------------------------------------
+
+glCurrentPaletteMatrixARB
+  :: MonadIO m
+  => GLint -- ^ @index@.
+  -> m ()
+glCurrentPaletteMatrixARB v1 = liftIO $ dyn13 ptr_glCurrentPaletteMatrixARB v1
+
+{-# NOINLINE ptr_glCurrentPaletteMatrixARB #-}
+ptr_glCurrentPaletteMatrixARB :: FunPtr (GLint -> IO ())
+ptr_glCurrentPaletteMatrixARB = unsafePerformIO $ getCommand "glCurrentPaletteMatrixARB"
+
+-- glCurrentPaletteMatrixOES ---------------------------------------------------
+
+glCurrentPaletteMatrixOES
+  :: MonadIO m
+  => GLuint -- ^ @matrixpaletteindex@.
+  -> m ()
+glCurrentPaletteMatrixOES v1 = liftIO $ dyn3 ptr_glCurrentPaletteMatrixOES v1
+
+{-# NOINLINE ptr_glCurrentPaletteMatrixOES #-}
+ptr_glCurrentPaletteMatrixOES :: FunPtr (GLuint -> IO ())
+ptr_glCurrentPaletteMatrixOES = unsafePerformIO $ getCommand "glCurrentPaletteMatrixOES"
+
+-- glDebugMessageCallback ------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glDebugMessageCallback.xhtml OpenGL 4.x>.
+glDebugMessageCallback
+  :: MonadIO m
+  => GLDEBUGPROC -- ^ @callback@.
+  -> Ptr a -- ^ @userParam@.
+  -> m ()
+glDebugMessageCallback v1 v2 = liftIO $ dyn209 ptr_glDebugMessageCallback v1 v2
+
+{-# NOINLINE ptr_glDebugMessageCallback #-}
+ptr_glDebugMessageCallback :: FunPtr (GLDEBUGPROC -> Ptr a -> IO ())
+ptr_glDebugMessageCallback = unsafePerformIO $ getCommand "glDebugMessageCallback"
+
+-- glDebugMessageCallbackAMD ---------------------------------------------------
+
+glDebugMessageCallbackAMD
+  :: MonadIO m
+  => GLDEBUGPROCAMD -- ^ @callback@.
+  -> Ptr a -- ^ @userParam@.
+  -> m ()
+glDebugMessageCallbackAMD v1 v2 = liftIO $ dyn210 ptr_glDebugMessageCallbackAMD v1 v2
+
+{-# NOINLINE ptr_glDebugMessageCallbackAMD #-}
+ptr_glDebugMessageCallbackAMD :: FunPtr (GLDEBUGPROCAMD -> Ptr a -> IO ())
+ptr_glDebugMessageCallbackAMD = unsafePerformIO $ getCommand "glDebugMessageCallbackAMD"
+
+-- glDebugMessageCallbackARB ---------------------------------------------------
+
+-- | This command is an alias for 'glDebugMessageCallback'.
+glDebugMessageCallbackARB
+  :: MonadIO m
+  => GLDEBUGPROCARB -- ^ @callback@.
+  -> Ptr a -- ^ @userParam@ pointing to @COMPSIZE(callback)@ elements of type @a@.
+  -> m ()
+glDebugMessageCallbackARB v1 v2 = liftIO $ dyn211 ptr_glDebugMessageCallbackARB v1 v2
+
+{-# NOINLINE ptr_glDebugMessageCallbackARB #-}
+ptr_glDebugMessageCallbackARB :: FunPtr (GLDEBUGPROCARB -> Ptr a -> IO ())
+ptr_glDebugMessageCallbackARB = unsafePerformIO $ getCommand "glDebugMessageCallbackARB"
+
+-- glDebugMessageCallbackKHR ---------------------------------------------------
+
+-- | This command is an alias for 'glDebugMessageCallback'.
+glDebugMessageCallbackKHR
+  :: MonadIO m
+  => GLDEBUGPROCKHR -- ^ @callback@.
+  -> Ptr a -- ^ @userParam@.
+  -> m ()
+glDebugMessageCallbackKHR v1 v2 = liftIO $ dyn212 ptr_glDebugMessageCallbackKHR v1 v2
+
+{-# NOINLINE ptr_glDebugMessageCallbackKHR #-}
+ptr_glDebugMessageCallbackKHR :: FunPtr (GLDEBUGPROCKHR -> Ptr a -> IO ())
+ptr_glDebugMessageCallbackKHR = unsafePerformIO $ getCommand "glDebugMessageCallbackKHR"
+
+-- glDebugMessageControl -------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glDebugMessageControl.xhtml OpenGL 4.x>.
+glDebugMessageControl
+  :: MonadIO m
+  => GLenum -- ^ @source@ of type [DebugSource](Graphics-GL-Groups.html#DebugSource).
+  -> GLenum -- ^ @type@ of type [DebugType](Graphics-GL-Groups.html#DebugType).
+  -> GLenum -- ^ @severity@ of type [DebugSeverity](Graphics-GL-Groups.html#DebugSeverity).
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLuint -- ^ @ids@ pointing to @count@ elements of type @GLuint@.
+  -> GLboolean -- ^ @enabled@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m ()
+glDebugMessageControl v1 v2 v3 v4 v5 v6 = liftIO $ dyn213 ptr_glDebugMessageControl v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glDebugMessageControl #-}
+ptr_glDebugMessageControl :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> IO ())
+ptr_glDebugMessageControl = unsafePerformIO $ getCommand "glDebugMessageControl"
+
+-- glDebugMessageControlARB ----------------------------------------------------
+
+-- | This command is an alias for 'glDebugMessageControl'.
+glDebugMessageControlARB
+  :: MonadIO m
+  => GLenum -- ^ @source@ of type [DebugSource](Graphics-GL-Groups.html#DebugSource).
+  -> GLenum -- ^ @type@ of type [DebugType](Graphics-GL-Groups.html#DebugType).
+  -> GLenum -- ^ @severity@ of type [DebugSeverity](Graphics-GL-Groups.html#DebugSeverity).
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLuint -- ^ @ids@ pointing to @count@ elements of type @GLuint@.
+  -> GLboolean -- ^ @enabled@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m ()
+glDebugMessageControlARB v1 v2 v3 v4 v5 v6 = liftIO $ dyn213 ptr_glDebugMessageControlARB v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glDebugMessageControlARB #-}
+ptr_glDebugMessageControlARB :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> IO ())
+ptr_glDebugMessageControlARB = unsafePerformIO $ getCommand "glDebugMessageControlARB"
+
+-- glDebugMessageControlKHR ----------------------------------------------------
+
+-- | This command is an alias for 'glDebugMessageControl'.
+glDebugMessageControlKHR
+  :: MonadIO m
+  => GLenum -- ^ @source@ of type [DebugSource](Graphics-GL-Groups.html#DebugSource).
+  -> GLenum -- ^ @type@ of type [DebugType](Graphics-GL-Groups.html#DebugType).
+  -> GLenum -- ^ @severity@ of type [DebugSeverity](Graphics-GL-Groups.html#DebugSeverity).
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLuint -- ^ @ids@.
+  -> GLboolean -- ^ @enabled@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m ()
+glDebugMessageControlKHR v1 v2 v3 v4 v5 v6 = liftIO $ dyn213 ptr_glDebugMessageControlKHR v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glDebugMessageControlKHR #-}
+ptr_glDebugMessageControlKHR :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> IO ())
+ptr_glDebugMessageControlKHR = unsafePerformIO $ getCommand "glDebugMessageControlKHR"
+
+-- glDebugMessageEnableAMD -----------------------------------------------------
+
+glDebugMessageEnableAMD
+  :: MonadIO m
+  => GLenum -- ^ @category@.
+  -> GLenum -- ^ @severity@ of type [DebugSeverity](Graphics-GL-Groups.html#DebugSeverity).
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLuint -- ^ @ids@ pointing to @count@ elements of type @GLuint@.
+  -> GLboolean -- ^ @enabled@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m ()
+glDebugMessageEnableAMD v1 v2 v3 v4 v5 = liftIO $ dyn214 ptr_glDebugMessageEnableAMD v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glDebugMessageEnableAMD #-}
+ptr_glDebugMessageEnableAMD :: FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> IO ())
+ptr_glDebugMessageEnableAMD = unsafePerformIO $ getCommand "glDebugMessageEnableAMD"
+
+-- glDebugMessageInsert --------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glDebugMessageInsert.xhtml OpenGL 4.x>.
+glDebugMessageInsert
+  :: MonadIO m
+  => GLenum -- ^ @source@ of type [DebugSource](Graphics-GL-Groups.html#DebugSource).
+  -> GLenum -- ^ @type@ of type [DebugType](Graphics-GL-Groups.html#DebugType).
+  -> GLuint -- ^ @id@.
+  -> GLenum -- ^ @severity@ of type [DebugSeverity](Graphics-GL-Groups.html#DebugSeverity).
+  -> GLsizei -- ^ @length@.
+  -> Ptr GLchar -- ^ @buf@ pointing to @COMPSIZE(buf,length)@ elements of type @GLchar@.
+  -> m ()
+glDebugMessageInsert v1 v2 v3 v4 v5 v6 = liftIO $ dyn215 ptr_glDebugMessageInsert v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glDebugMessageInsert #-}
+ptr_glDebugMessageInsert :: FunPtr (GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> IO ())
+ptr_glDebugMessageInsert = unsafePerformIO $ getCommand "glDebugMessageInsert"
+
+-- glDebugMessageInsertAMD -----------------------------------------------------
+
+glDebugMessageInsertAMD
+  :: MonadIO m
+  => GLenum -- ^ @category@.
+  -> GLenum -- ^ @severity@ of type [DebugSeverity](Graphics-GL-Groups.html#DebugSeverity).
+  -> GLuint -- ^ @id@.
+  -> GLsizei -- ^ @length@.
+  -> Ptr GLchar -- ^ @buf@ pointing to @length@ elements of type @GLchar@.
+  -> m ()
+glDebugMessageInsertAMD v1 v2 v3 v4 v5 = liftIO $ dyn216 ptr_glDebugMessageInsertAMD v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glDebugMessageInsertAMD #-}
+ptr_glDebugMessageInsertAMD :: FunPtr (GLenum -> GLenum -> GLuint -> GLsizei -> Ptr GLchar -> IO ())
+ptr_glDebugMessageInsertAMD = unsafePerformIO $ getCommand "glDebugMessageInsertAMD"
+
+-- glDebugMessageInsertARB -----------------------------------------------------
+
+-- | This command is an alias for 'glDebugMessageInsert'.
+glDebugMessageInsertARB
+  :: MonadIO m
+  => GLenum -- ^ @source@ of type [DebugSource](Graphics-GL-Groups.html#DebugSource).
+  -> GLenum -- ^ @type@ of type [DebugType](Graphics-GL-Groups.html#DebugType).
+  -> GLuint -- ^ @id@.
+  -> GLenum -- ^ @severity@ of type [DebugSeverity](Graphics-GL-Groups.html#DebugSeverity).
+  -> GLsizei -- ^ @length@.
+  -> Ptr GLchar -- ^ @buf@ pointing to @length@ elements of type @GLchar@.
+  -> m ()
+glDebugMessageInsertARB v1 v2 v3 v4 v5 v6 = liftIO $ dyn215 ptr_glDebugMessageInsertARB v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glDebugMessageInsertARB #-}
+ptr_glDebugMessageInsertARB :: FunPtr (GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> IO ())
+ptr_glDebugMessageInsertARB = unsafePerformIO $ getCommand "glDebugMessageInsertARB"
+
+-- glDebugMessageInsertKHR -----------------------------------------------------
+
+-- | This command is an alias for 'glDebugMessageInsert'.
+glDebugMessageInsertKHR
+  :: MonadIO m
+  => GLenum -- ^ @source@ of type [DebugSource](Graphics-GL-Groups.html#DebugSource).
+  -> GLenum -- ^ @type@ of type [DebugType](Graphics-GL-Groups.html#DebugType).
+  -> GLuint -- ^ @id@.
+  -> GLenum -- ^ @severity@ of type [DebugSeverity](Graphics-GL-Groups.html#DebugSeverity).
+  -> GLsizei -- ^ @length@.
+  -> Ptr GLchar -- ^ @buf@.
+  -> m ()
+glDebugMessageInsertKHR v1 v2 v3 v4 v5 v6 = liftIO $ dyn215 ptr_glDebugMessageInsertKHR v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glDebugMessageInsertKHR #-}
+ptr_glDebugMessageInsertKHR :: FunPtr (GLenum -> GLenum -> GLuint -> GLenum -> GLsizei -> Ptr GLchar -> IO ())
+ptr_glDebugMessageInsertKHR = unsafePerformIO $ getCommand "glDebugMessageInsertKHR"
+
+-- glDeformSGIX ----------------------------------------------------------------
+
+glDeformSGIX
+  :: MonadIO m
+  => GLbitfield -- ^ @mask@ of type [FfdMaskSGIX](Graphics-GL-Groups.html#FfdMaskSGIX).
+  -> m ()
+glDeformSGIX v1 = liftIO $ dyn75 ptr_glDeformSGIX v1
+
+{-# NOINLINE ptr_glDeformSGIX #-}
+ptr_glDeformSGIX :: FunPtr (GLbitfield -> IO ())
+ptr_glDeformSGIX = unsafePerformIO $ getCommand "glDeformSGIX"
+
+-- glDeformationMap3dSGIX ------------------------------------------------------
+
+glDeformationMap3dSGIX
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [FfdTargetSGIX](Graphics-GL-Groups.html#FfdTargetSGIX).
+  -> GLdouble -- ^ @u1@ of type @CoordD@.
+  -> GLdouble -- ^ @u2@ of type @CoordD@.
+  -> GLint -- ^ @ustride@.
+  -> GLint -- ^ @uorder@ of type @CheckedInt32@.
+  -> GLdouble -- ^ @v1@ of type @CoordD@.
+  -> GLdouble -- ^ @v2@ of type @CoordD@.
+  -> GLint -- ^ @vstride@.
+  -> GLint -- ^ @vorder@ of type @CheckedInt32@.
+  -> GLdouble -- ^ @w1@ of type @CoordD@.
+  -> GLdouble -- ^ @w2@ of type @CoordD@.
+  -> GLint -- ^ @wstride@.
+  -> GLint -- ^ @worder@ of type @CheckedInt32@.
+  -> Ptr GLdouble -- ^ @points@ pointing to @COMPSIZE(target,ustride,uorder,vstride,vorder,wstride,worder)@ elements of type @CoordD@.
+  -> m ()
+glDeformationMap3dSGIX v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 = liftIO $ dyn217 ptr_glDeformationMap3dSGIX v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14
+
+{-# NOINLINE ptr_glDeformationMap3dSGIX #-}
+ptr_glDeformationMap3dSGIX :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ())
+ptr_glDeformationMap3dSGIX = unsafePerformIO $ getCommand "glDeformationMap3dSGIX"
+
+-- glDeformationMap3fSGIX ------------------------------------------------------
+
+glDeformationMap3fSGIX
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [FfdTargetSGIX](Graphics-GL-Groups.html#FfdTargetSGIX).
+  -> GLfloat -- ^ @u1@ of type @CoordF@.
+  -> GLfloat -- ^ @u2@ of type @CoordF@.
+  -> GLint -- ^ @ustride@.
+  -> GLint -- ^ @uorder@ of type @CheckedInt32@.
+  -> GLfloat -- ^ @v1@ of type @CoordF@.
+  -> GLfloat -- ^ @v2@ of type @CoordF@.
+  -> GLint -- ^ @vstride@.
+  -> GLint -- ^ @vorder@ of type @CheckedInt32@.
+  -> GLfloat -- ^ @w1@ of type @CoordF@.
+  -> GLfloat -- ^ @w2@ of type @CoordF@.
+  -> GLint -- ^ @wstride@.
+  -> GLint -- ^ @worder@ of type @CheckedInt32@.
+  -> Ptr GLfloat -- ^ @points@ pointing to @COMPSIZE(target,ustride,uorder,vstride,vorder,wstride,worder)@ elements of type @CoordF@.
+  -> m ()
+glDeformationMap3fSGIX v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 = liftIO $ dyn218 ptr_glDeformationMap3fSGIX v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14
+
+{-# NOINLINE ptr_glDeformationMap3fSGIX #-}
+ptr_glDeformationMap3fSGIX :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ())
+ptr_glDeformationMap3fSGIX = unsafePerformIO $ getCommand "glDeformationMap3fSGIX"
+
+-- glDeleteAsyncMarkersSGIX ----------------------------------------------------
+
+glDeleteAsyncMarkersSGIX
+  :: MonadIO m
+  => GLuint -- ^ @marker@.
+  -> GLsizei -- ^ @range@.
+  -> m ()
+glDeleteAsyncMarkersSGIX v1 v2 = liftIO $ dyn219 ptr_glDeleteAsyncMarkersSGIX v1 v2
+
+{-# NOINLINE ptr_glDeleteAsyncMarkersSGIX #-}
+ptr_glDeleteAsyncMarkersSGIX :: FunPtr (GLuint -> GLsizei -> IO ())
+ptr_glDeleteAsyncMarkersSGIX = unsafePerformIO $ getCommand "glDeleteAsyncMarkersSGIX"
+
+-- glDeleteBuffers -------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glDeleteBuffers.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glDeleteBuffers.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glDeleteBuffers.xhtml OpenGL 4.x>.
+glDeleteBuffers
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @buffers@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glDeleteBuffers v1 v2 = liftIO $ dyn200 ptr_glDeleteBuffers v1 v2
+
+{-# NOINLINE ptr_glDeleteBuffers #-}
+ptr_glDeleteBuffers :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glDeleteBuffers = unsafePerformIO $ getCommand "glDeleteBuffers"
+
+-- glDeleteBuffersARB ----------------------------------------------------------
+
+-- | This command is an alias for 'glDeleteBuffers'.
+glDeleteBuffersARB
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @buffers@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glDeleteBuffersARB v1 v2 = liftIO $ dyn200 ptr_glDeleteBuffersARB v1 v2
+
+{-# NOINLINE ptr_glDeleteBuffersARB #-}
+ptr_glDeleteBuffersARB :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glDeleteBuffersARB = unsafePerformIO $ getCommand "glDeleteBuffersARB"
+
+-- glDeleteCommandListsNV ------------------------------------------------------
+
+glDeleteCommandListsNV
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @lists@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glDeleteCommandListsNV v1 v2 = liftIO $ dyn200 ptr_glDeleteCommandListsNV v1 v2
+
+{-# NOINLINE ptr_glDeleteCommandListsNV #-}
+ptr_glDeleteCommandListsNV :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glDeleteCommandListsNV = unsafePerformIO $ getCommand "glDeleteCommandListsNV"
+
+-- glDeleteFencesAPPLE ---------------------------------------------------------
+
+glDeleteFencesAPPLE
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @fences@ pointing to @n@ elements of type @FenceNV@.
+  -> m ()
+glDeleteFencesAPPLE v1 v2 = liftIO $ dyn200 ptr_glDeleteFencesAPPLE v1 v2
+
+{-# NOINLINE ptr_glDeleteFencesAPPLE #-}
+ptr_glDeleteFencesAPPLE :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glDeleteFencesAPPLE = unsafePerformIO $ getCommand "glDeleteFencesAPPLE"
+
+-- glDeleteFencesNV ------------------------------------------------------------
+
+glDeleteFencesNV
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @fences@ pointing to @n@ elements of type @FenceNV@.
+  -> m ()
+glDeleteFencesNV v1 v2 = liftIO $ dyn200 ptr_glDeleteFencesNV v1 v2
+
+{-# NOINLINE ptr_glDeleteFencesNV #-}
+ptr_glDeleteFencesNV :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glDeleteFencesNV = unsafePerformIO $ getCommand "glDeleteFencesNV"
+
+-- glDeleteFragmentShaderATI ---------------------------------------------------
+
+glDeleteFragmentShaderATI
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> m ()
+glDeleteFragmentShaderATI v1 = liftIO $ dyn3 ptr_glDeleteFragmentShaderATI v1
+
+{-# NOINLINE ptr_glDeleteFragmentShaderATI #-}
+ptr_glDeleteFragmentShaderATI :: FunPtr (GLuint -> IO ())
+ptr_glDeleteFragmentShaderATI = unsafePerformIO $ getCommand "glDeleteFragmentShaderATI"
+
+-- glDeleteFramebuffers --------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glDeleteFramebuffers.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glDeleteFramebuffers.xhtml OpenGL 4.x>.
+glDeleteFramebuffers
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @framebuffers@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glDeleteFramebuffers v1 v2 = liftIO $ dyn200 ptr_glDeleteFramebuffers v1 v2
+
+{-# NOINLINE ptr_glDeleteFramebuffers #-}
+ptr_glDeleteFramebuffers :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glDeleteFramebuffers = unsafePerformIO $ getCommand "glDeleteFramebuffers"
+
+-- glDeleteFramebuffersEXT -----------------------------------------------------
+
+-- | This command is an alias for 'glDeleteFramebuffers'.
+glDeleteFramebuffersEXT
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @framebuffers@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glDeleteFramebuffersEXT v1 v2 = liftIO $ dyn200 ptr_glDeleteFramebuffersEXT v1 v2
+
+{-# NOINLINE ptr_glDeleteFramebuffersEXT #-}
+ptr_glDeleteFramebuffersEXT :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glDeleteFramebuffersEXT = unsafePerformIO $ getCommand "glDeleteFramebuffersEXT"
+
+-- glDeleteFramebuffersOES -----------------------------------------------------
+
+glDeleteFramebuffersOES
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @framebuffers@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glDeleteFramebuffersOES v1 v2 = liftIO $ dyn200 ptr_glDeleteFramebuffersOES v1 v2
+
+{-# NOINLINE ptr_glDeleteFramebuffersOES #-}
+ptr_glDeleteFramebuffersOES :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glDeleteFramebuffersOES = unsafePerformIO $ getCommand "glDeleteFramebuffersOES"
+
+-- glDeleteLists ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glDeleteLists.xml OpenGL 2.x>.
+glDeleteLists
+  :: MonadIO m
+  => GLuint -- ^ @list@ of type @List@.
+  -> GLsizei -- ^ @range@.
+  -> m ()
+glDeleteLists v1 v2 = liftIO $ dyn219 ptr_glDeleteLists v1 v2
+
+{-# NOINLINE ptr_glDeleteLists #-}
+ptr_glDeleteLists :: FunPtr (GLuint -> GLsizei -> IO ())
+ptr_glDeleteLists = unsafePerformIO $ getCommand "glDeleteLists"
+
+-- glDeleteMemoryObjectsEXT ----------------------------------------------------
+
+glDeleteMemoryObjectsEXT
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @memoryObjects@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glDeleteMemoryObjectsEXT v1 v2 = liftIO $ dyn200 ptr_glDeleteMemoryObjectsEXT v1 v2
+
+{-# NOINLINE ptr_glDeleteMemoryObjectsEXT #-}
+ptr_glDeleteMemoryObjectsEXT :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glDeleteMemoryObjectsEXT = unsafePerformIO $ getCommand "glDeleteMemoryObjectsEXT"
+
+-- glDeleteNamedStringARB ------------------------------------------------------
+
+glDeleteNamedStringARB
+  :: MonadIO m
+  => GLint -- ^ @namelen@.
+  -> Ptr GLchar -- ^ @name@ pointing to @namelen@ elements of type @GLchar@.
+  -> m ()
+glDeleteNamedStringARB v1 v2 = liftIO $ dyn220 ptr_glDeleteNamedStringARB v1 v2
+
+{-# NOINLINE ptr_glDeleteNamedStringARB #-}
+ptr_glDeleteNamedStringARB :: FunPtr (GLint -> Ptr GLchar -> IO ())
+ptr_glDeleteNamedStringARB = unsafePerformIO $ getCommand "glDeleteNamedStringARB"
+
+-- glDeleteNamesAMD ------------------------------------------------------------
+
+glDeleteNamesAMD
+  :: MonadIO m
+  => GLenum -- ^ @identifier@.
+  -> GLuint -- ^ @num@.
+  -> Ptr GLuint -- ^ @names@ pointing to @num@ elements of type @GLuint@.
+  -> m ()
+glDeleteNamesAMD v1 v2 v3 = liftIO $ dyn221 ptr_glDeleteNamesAMD v1 v2 v3
+
+{-# NOINLINE ptr_glDeleteNamesAMD #-}
+ptr_glDeleteNamesAMD :: FunPtr (GLenum -> GLuint -> Ptr GLuint -> IO ())
+ptr_glDeleteNamesAMD = unsafePerformIO $ getCommand "glDeleteNamesAMD"
+
+-- glDeleteObjectARB -----------------------------------------------------------
+
+glDeleteObjectARB
+  :: MonadIO m
+  => GLhandleARB -- ^ @obj@ of type @handleARB@.
+  -> m ()
+glDeleteObjectARB v1 = liftIO $ dyn144 ptr_glDeleteObjectARB v1
+
+{-# NOINLINE ptr_glDeleteObjectARB #-}
+ptr_glDeleteObjectARB :: FunPtr (GLhandleARB -> IO ())
+ptr_glDeleteObjectARB = unsafePerformIO $ getCommand "glDeleteObjectARB"
+
+-- glDeleteOcclusionQueriesNV --------------------------------------------------
+
+glDeleteOcclusionQueriesNV
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @ids@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glDeleteOcclusionQueriesNV v1 v2 = liftIO $ dyn200 ptr_glDeleteOcclusionQueriesNV v1 v2
+
+{-# NOINLINE ptr_glDeleteOcclusionQueriesNV #-}
+ptr_glDeleteOcclusionQueriesNV :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glDeleteOcclusionQueriesNV = unsafePerformIO $ getCommand "glDeleteOcclusionQueriesNV"
+
+-- glDeletePathsNV -------------------------------------------------------------
+
+glDeletePathsNV
+  :: MonadIO m
+  => GLuint -- ^ @path@ of type @Path@.
+  -> GLsizei -- ^ @range@.
+  -> m ()
+glDeletePathsNV v1 v2 = liftIO $ dyn219 ptr_glDeletePathsNV v1 v2
+
+{-# NOINLINE ptr_glDeletePathsNV #-}
+ptr_glDeletePathsNV :: FunPtr (GLuint -> GLsizei -> IO ())
+ptr_glDeletePathsNV = unsafePerformIO $ getCommand "glDeletePathsNV"
+
+-- glDeletePerfMonitorsAMD -----------------------------------------------------
+
+glDeletePerfMonitorsAMD
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @monitors@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glDeletePerfMonitorsAMD v1 v2 = liftIO $ dyn200 ptr_glDeletePerfMonitorsAMD v1 v2
+
+{-# NOINLINE ptr_glDeletePerfMonitorsAMD #-}
+ptr_glDeletePerfMonitorsAMD :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glDeletePerfMonitorsAMD = unsafePerformIO $ getCommand "glDeletePerfMonitorsAMD"
+
+-- glDeletePerfQueryINTEL ------------------------------------------------------
+
+glDeletePerfQueryINTEL
+  :: MonadIO m
+  => GLuint -- ^ @queryHandle@.
+  -> m ()
+glDeletePerfQueryINTEL v1 = liftIO $ dyn3 ptr_glDeletePerfQueryINTEL v1
+
+{-# NOINLINE ptr_glDeletePerfQueryINTEL #-}
+ptr_glDeletePerfQueryINTEL :: FunPtr (GLuint -> IO ())
+ptr_glDeletePerfQueryINTEL = unsafePerformIO $ getCommand "glDeletePerfQueryINTEL"
+
+-- glDeleteProgram -------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glDeleteProgram.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glDeleteProgram.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glDeleteProgram.xhtml OpenGL 4.x>.
+glDeleteProgram
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> m ()
+glDeleteProgram v1 = liftIO $ dyn3 ptr_glDeleteProgram v1
+
+{-# NOINLINE ptr_glDeleteProgram #-}
+ptr_glDeleteProgram :: FunPtr (GLuint -> IO ())
+ptr_glDeleteProgram = unsafePerformIO $ getCommand "glDeleteProgram"
+
+-- glDeleteProgramPipelines ----------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glDeleteProgramPipelines.xhtml OpenGL 4.x>.
+glDeleteProgramPipelines
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @pipelines@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glDeleteProgramPipelines v1 v2 = liftIO $ dyn200 ptr_glDeleteProgramPipelines v1 v2
+
+{-# NOINLINE ptr_glDeleteProgramPipelines #-}
+ptr_glDeleteProgramPipelines :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glDeleteProgramPipelines = unsafePerformIO $ getCommand "glDeleteProgramPipelines"
+
+-- glDeleteProgramPipelinesEXT -------------------------------------------------
+
+glDeleteProgramPipelinesEXT
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @pipelines@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glDeleteProgramPipelinesEXT v1 v2 = liftIO $ dyn200 ptr_glDeleteProgramPipelinesEXT v1 v2
+
+{-# NOINLINE ptr_glDeleteProgramPipelinesEXT #-}
+ptr_glDeleteProgramPipelinesEXT :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glDeleteProgramPipelinesEXT = unsafePerformIO $ getCommand "glDeleteProgramPipelinesEXT"
+
+-- glDeleteProgramsARB ---------------------------------------------------------
+
+glDeleteProgramsARB
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @programs@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glDeleteProgramsARB v1 v2 = liftIO $ dyn200 ptr_glDeleteProgramsARB v1 v2
+
+{-# NOINLINE ptr_glDeleteProgramsARB #-}
+ptr_glDeleteProgramsARB :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glDeleteProgramsARB = unsafePerformIO $ getCommand "glDeleteProgramsARB"
+
+-- glDeleteProgramsNV ----------------------------------------------------------
+
+-- | This command is an alias for 'glDeleteProgramsARB'.
+glDeleteProgramsNV
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @programs@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glDeleteProgramsNV v1 v2 = liftIO $ dyn200 ptr_glDeleteProgramsNV v1 v2
+
+{-# NOINLINE ptr_glDeleteProgramsNV #-}
+ptr_glDeleteProgramsNV :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glDeleteProgramsNV = unsafePerformIO $ getCommand "glDeleteProgramsNV"
+
+-- glDeleteQueries -------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glDeleteQueries.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glDeleteQueries.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glDeleteQueries.xhtml OpenGL 4.x>.
+glDeleteQueries
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @ids@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glDeleteQueries v1 v2 = liftIO $ dyn200 ptr_glDeleteQueries v1 v2
+
+{-# NOINLINE ptr_glDeleteQueries #-}
+ptr_glDeleteQueries :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glDeleteQueries = unsafePerformIO $ getCommand "glDeleteQueries"
+
+-- glDeleteQueriesARB ----------------------------------------------------------
+
+-- | This command is an alias for 'glDeleteQueries'.
+glDeleteQueriesARB
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @ids@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glDeleteQueriesARB v1 v2 = liftIO $ dyn200 ptr_glDeleteQueriesARB v1 v2
+
+{-# NOINLINE ptr_glDeleteQueriesARB #-}
+ptr_glDeleteQueriesARB :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glDeleteQueriesARB = unsafePerformIO $ getCommand "glDeleteQueriesARB"
+
+-- glDeleteQueriesEXT ----------------------------------------------------------
+
+glDeleteQueriesEXT
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @ids@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glDeleteQueriesEXT v1 v2 = liftIO $ dyn200 ptr_glDeleteQueriesEXT v1 v2
+
+{-# NOINLINE ptr_glDeleteQueriesEXT #-}
+ptr_glDeleteQueriesEXT :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glDeleteQueriesEXT = unsafePerformIO $ getCommand "glDeleteQueriesEXT"
+
+-- glDeleteQueryResourceTagNV --------------------------------------------------
+
+glDeleteQueryResourceTagNV
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLint -- ^ @tagIds@ pointing to @n@ elements of type @GLint@.
+  -> m ()
+glDeleteQueryResourceTagNV v1 v2 = liftIO $ dyn222 ptr_glDeleteQueryResourceTagNV v1 v2
+
+{-# NOINLINE ptr_glDeleteQueryResourceTagNV #-}
+ptr_glDeleteQueryResourceTagNV :: FunPtr (GLsizei -> Ptr GLint -> IO ())
+ptr_glDeleteQueryResourceTagNV = unsafePerformIO $ getCommand "glDeleteQueryResourceTagNV"
+
+-- glDeleteRenderbuffers -------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glDeleteRenderbuffers.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glDeleteRenderbuffers.xhtml OpenGL 4.x>.
+glDeleteRenderbuffers
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @renderbuffers@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glDeleteRenderbuffers v1 v2 = liftIO $ dyn200 ptr_glDeleteRenderbuffers v1 v2
+
+{-# NOINLINE ptr_glDeleteRenderbuffers #-}
+ptr_glDeleteRenderbuffers :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glDeleteRenderbuffers = unsafePerformIO $ getCommand "glDeleteRenderbuffers"
+
+-- glDeleteRenderbuffersEXT ----------------------------------------------------
+
+-- | This command is an alias for 'glDeleteRenderbuffers'.
+glDeleteRenderbuffersEXT
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @renderbuffers@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glDeleteRenderbuffersEXT v1 v2 = liftIO $ dyn200 ptr_glDeleteRenderbuffersEXT v1 v2
+
+{-# NOINLINE ptr_glDeleteRenderbuffersEXT #-}
+ptr_glDeleteRenderbuffersEXT :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glDeleteRenderbuffersEXT = unsafePerformIO $ getCommand "glDeleteRenderbuffersEXT"
+
+-- glDeleteRenderbuffersOES ----------------------------------------------------
+
+glDeleteRenderbuffersOES
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @renderbuffers@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glDeleteRenderbuffersOES v1 v2 = liftIO $ dyn200 ptr_glDeleteRenderbuffersOES v1 v2
+
+{-# NOINLINE ptr_glDeleteRenderbuffersOES #-}
+ptr_glDeleteRenderbuffersOES :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glDeleteRenderbuffersOES = unsafePerformIO $ getCommand "glDeleteRenderbuffersOES"
+
+-- glDeleteSamplers ------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glDeleteSamplers.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glDeleteSamplers.xhtml OpenGL 4.x>.
+glDeleteSamplers
+  :: MonadIO m
+  => GLsizei -- ^ @count@.
+  -> Ptr GLuint -- ^ @samplers@ pointing to @count@ elements of type @GLuint@.
+  -> m ()
+glDeleteSamplers v1 v2 = liftIO $ dyn200 ptr_glDeleteSamplers v1 v2
+
+{-# NOINLINE ptr_glDeleteSamplers #-}
+ptr_glDeleteSamplers :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glDeleteSamplers = unsafePerformIO $ getCommand "glDeleteSamplers"
+
+-- glDeleteSemaphoresEXT -------------------------------------------------------
+
+glDeleteSemaphoresEXT
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @semaphores@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glDeleteSemaphoresEXT v1 v2 = liftIO $ dyn200 ptr_glDeleteSemaphoresEXT v1 v2
+
+{-# NOINLINE ptr_glDeleteSemaphoresEXT #-}
+ptr_glDeleteSemaphoresEXT :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glDeleteSemaphoresEXT = unsafePerformIO $ getCommand "glDeleteSemaphoresEXT"
+
+-- glDeleteShader --------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glDeleteShader.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glDeleteShader.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glDeleteShader.xhtml OpenGL 4.x>.
+glDeleteShader
+  :: MonadIO m
+  => GLuint -- ^ @shader@.
+  -> m ()
+glDeleteShader v1 = liftIO $ dyn3 ptr_glDeleteShader v1
+
+{-# NOINLINE ptr_glDeleteShader #-}
+ptr_glDeleteShader :: FunPtr (GLuint -> IO ())
+ptr_glDeleteShader = unsafePerformIO $ getCommand "glDeleteShader"
+
+-- glDeleteStatesNV ------------------------------------------------------------
+
+glDeleteStatesNV
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @states@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glDeleteStatesNV v1 v2 = liftIO $ dyn200 ptr_glDeleteStatesNV v1 v2
+
+{-# NOINLINE ptr_glDeleteStatesNV #-}
+ptr_glDeleteStatesNV :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glDeleteStatesNV = unsafePerformIO $ getCommand "glDeleteStatesNV"
+
+-- glDeleteSync ----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glDeleteSync.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glDeleteSync.xhtml OpenGL 4.x>.
+glDeleteSync
+  :: MonadIO m
+  => GLsync -- ^ @sync@ of type @sync@.
+  -> m ()
+glDeleteSync v1 = liftIO $ dyn223 ptr_glDeleteSync v1
+
+{-# NOINLINE ptr_glDeleteSync #-}
+ptr_glDeleteSync :: FunPtr (GLsync -> IO ())
+ptr_glDeleteSync = unsafePerformIO $ getCommand "glDeleteSync"
+
+-- glDeleteSyncAPPLE -----------------------------------------------------------
+
+-- | This command is an alias for 'glDeleteSync'.
+glDeleteSyncAPPLE
+  :: MonadIO m
+  => GLsync -- ^ @sync@.
+  -> m ()
+glDeleteSyncAPPLE v1 = liftIO $ dyn223 ptr_glDeleteSyncAPPLE v1
+
+{-# NOINLINE ptr_glDeleteSyncAPPLE #-}
+ptr_glDeleteSyncAPPLE :: FunPtr (GLsync -> IO ())
+ptr_glDeleteSyncAPPLE = unsafePerformIO $ getCommand "glDeleteSyncAPPLE"
+
+-- glDeleteTextures ------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glDeleteTextures.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glDeleteTextures.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glDeleteTextures.xhtml OpenGL 4.x>.
+glDeleteTextures
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @textures@ pointing to @n@ elements of type @Texture@.
+  -> m ()
+glDeleteTextures v1 v2 = liftIO $ dyn200 ptr_glDeleteTextures v1 v2
+
+{-# NOINLINE ptr_glDeleteTextures #-}
+ptr_glDeleteTextures :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glDeleteTextures = unsafePerformIO $ getCommand "glDeleteTextures"
+
+-- glDeleteTexturesEXT ---------------------------------------------------------
+
+glDeleteTexturesEXT
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @textures@ pointing to @n@ elements of type @Texture@.
+  -> m ()
+glDeleteTexturesEXT v1 v2 = liftIO $ dyn200 ptr_glDeleteTexturesEXT v1 v2
+
+{-# NOINLINE ptr_glDeleteTexturesEXT #-}
+ptr_glDeleteTexturesEXT :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glDeleteTexturesEXT = unsafePerformIO $ getCommand "glDeleteTexturesEXT"
+
+-- glDeleteTransformFeedbacks --------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glDeleteTransformFeedbacks.xhtml OpenGL 4.x>.
+glDeleteTransformFeedbacks
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @ids@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glDeleteTransformFeedbacks v1 v2 = liftIO $ dyn200 ptr_glDeleteTransformFeedbacks v1 v2
+
+{-# NOINLINE ptr_glDeleteTransformFeedbacks #-}
+ptr_glDeleteTransformFeedbacks :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glDeleteTransformFeedbacks = unsafePerformIO $ getCommand "glDeleteTransformFeedbacks"
+
+-- glDeleteTransformFeedbacksNV ------------------------------------------------
+
+-- | This command is an alias for 'glDeleteTransformFeedbacks'.
+glDeleteTransformFeedbacksNV
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @ids@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glDeleteTransformFeedbacksNV v1 v2 = liftIO $ dyn200 ptr_glDeleteTransformFeedbacksNV v1 v2
+
+{-# NOINLINE ptr_glDeleteTransformFeedbacksNV #-}
+ptr_glDeleteTransformFeedbacksNV :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glDeleteTransformFeedbacksNV = unsafePerformIO $ getCommand "glDeleteTransformFeedbacksNV"
+
+-- glDeleteVertexArrays --------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glDeleteVertexArrays.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glDeleteVertexArrays.xhtml OpenGL 4.x>.
+glDeleteVertexArrays
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @arrays@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glDeleteVertexArrays v1 v2 = liftIO $ dyn200 ptr_glDeleteVertexArrays v1 v2
+
+{-# NOINLINE ptr_glDeleteVertexArrays #-}
+ptr_glDeleteVertexArrays :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glDeleteVertexArrays = unsafePerformIO $ getCommand "glDeleteVertexArrays"
+
+-- glDeleteVertexArraysAPPLE ---------------------------------------------------
+
+-- | This command is an alias for 'glDeleteVertexArrays'.
+glDeleteVertexArraysAPPLE
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @arrays@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glDeleteVertexArraysAPPLE v1 v2 = liftIO $ dyn200 ptr_glDeleteVertexArraysAPPLE v1 v2
+
+{-# NOINLINE ptr_glDeleteVertexArraysAPPLE #-}
+ptr_glDeleteVertexArraysAPPLE :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glDeleteVertexArraysAPPLE = unsafePerformIO $ getCommand "glDeleteVertexArraysAPPLE"
+
diff --git a/src/Graphics/GL/Functions/F06.hs b/src/Graphics/GL/Functions/F06.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Functions/F06.hs
@@ -0,0 +1,1626 @@
+{-# OPTIONS_HADDOCK hide #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Functions.F06
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- Raw functions from the
+-- <http://www.opengl.org/registry/ OpenGL registry>.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Functions.F06 (
+  glDeleteVertexArraysOES,
+  glDeleteVertexShaderEXT,
+  glDepthBoundsEXT,
+  glDepthBoundsdNV,
+  glDepthFunc,
+  glDepthMask,
+  glDepthRange,
+  glDepthRangeArrayfvNV,
+  glDepthRangeArrayfvOES,
+  glDepthRangeArrayv,
+  glDepthRangeIndexed,
+  glDepthRangeIndexedfNV,
+  glDepthRangeIndexedfOES,
+  glDepthRangedNV,
+  glDepthRangef,
+  glDepthRangefOES,
+  glDepthRangex,
+  glDepthRangexOES,
+  glDetachObjectARB,
+  glDetachShader,
+  glDetailTexFuncSGIS,
+  glDisable,
+  glDisableClientState,
+  glDisableClientStateIndexedEXT,
+  glDisableClientStateiEXT,
+  glDisableDriverControlQCOM,
+  glDisableIndexedEXT,
+  glDisableVariantClientStateEXT,
+  glDisableVertexArrayAttrib,
+  glDisableVertexArrayAttribEXT,
+  glDisableVertexArrayEXT,
+  glDisableVertexAttribAPPLE,
+  glDisableVertexAttribArray,
+  glDisableVertexAttribArrayARB,
+  glDisablei,
+  glDisableiEXT,
+  glDisableiNV,
+  glDisableiOES,
+  glDiscardFramebufferEXT,
+  glDispatchCompute,
+  glDispatchComputeGroupSizeARB,
+  glDispatchComputeIndirect,
+  glDrawArrays,
+  glDrawArraysEXT,
+  glDrawArraysIndirect,
+  glDrawArraysInstanced,
+  glDrawArraysInstancedANGLE,
+  glDrawArraysInstancedARB,
+  glDrawArraysInstancedBaseInstance,
+  glDrawArraysInstancedBaseInstanceEXT,
+  glDrawArraysInstancedEXT,
+  glDrawArraysInstancedNV,
+  glDrawBuffer,
+  glDrawBuffers,
+  glDrawBuffersARB,
+  glDrawBuffersATI,
+  glDrawBuffersEXT,
+  glDrawBuffersIndexedEXT,
+  glDrawBuffersNV,
+  glDrawCommandsAddressNV,
+  glDrawCommandsNV,
+  glDrawCommandsStatesAddressNV,
+  glDrawCommandsStatesNV,
+  glDrawElementArrayAPPLE,
+  glDrawElementArrayATI,
+  glDrawElements,
+  glDrawElementsBaseVertex,
+  glDrawElementsBaseVertexEXT,
+  glDrawElementsBaseVertexOES,
+  glDrawElementsIndirect,
+  glDrawElementsInstanced,
+  glDrawElementsInstancedANGLE,
+  glDrawElementsInstancedARB,
+  glDrawElementsInstancedBaseInstance,
+  glDrawElementsInstancedBaseInstanceEXT,
+  glDrawElementsInstancedBaseVertex,
+  glDrawElementsInstancedBaseVertexBaseInstance,
+  glDrawElementsInstancedBaseVertexBaseInstanceEXT,
+  glDrawElementsInstancedBaseVertexEXT,
+  glDrawElementsInstancedBaseVertexOES,
+  glDrawElementsInstancedEXT,
+  glDrawElementsInstancedNV,
+  glDrawMeshArraysSUN,
+  glDrawMeshTasksIndirectNV,
+  glDrawMeshTasksNV,
+  glDrawPixels,
+  glDrawRangeElementArrayAPPLE,
+  glDrawRangeElementArrayATI,
+  glDrawRangeElements,
+  glDrawRangeElementsBaseVertex,
+  glDrawRangeElementsBaseVertexEXT,
+  glDrawRangeElementsBaseVertexOES,
+  glDrawRangeElementsEXT,
+  glDrawTexfOES,
+  glDrawTexfvOES,
+  glDrawTexiOES,
+  glDrawTexivOES,
+  glDrawTexsOES,
+  glDrawTexsvOES,
+  glDrawTextureNV
+) where
+
+import Control.Monad.IO.Class ( MonadIO(..) )
+import Foreign.Ptr
+import Graphics.GL.Foreign
+import Graphics.GL.Types
+import System.IO.Unsafe ( unsafePerformIO )
+
+-- glDeleteVertexArraysOES -----------------------------------------------------
+
+-- | This command is an alias for 'glDeleteVertexArrays'.
+glDeleteVertexArraysOES
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @arrays@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glDeleteVertexArraysOES v1 v2 = liftIO $ dyn200 ptr_glDeleteVertexArraysOES v1 v2
+
+{-# NOINLINE ptr_glDeleteVertexArraysOES #-}
+ptr_glDeleteVertexArraysOES :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glDeleteVertexArraysOES = unsafePerformIO $ getCommand "glDeleteVertexArraysOES"
+
+-- glDeleteVertexShaderEXT -----------------------------------------------------
+
+glDeleteVertexShaderEXT
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> m ()
+glDeleteVertexShaderEXT v1 = liftIO $ dyn3 ptr_glDeleteVertexShaderEXT v1
+
+{-# NOINLINE ptr_glDeleteVertexShaderEXT #-}
+ptr_glDeleteVertexShaderEXT :: FunPtr (GLuint -> IO ())
+ptr_glDeleteVertexShaderEXT = unsafePerformIO $ getCommand "glDeleteVertexShaderEXT"
+
+-- glDepthBoundsEXT ------------------------------------------------------------
+
+glDepthBoundsEXT
+  :: MonadIO m
+  => GLclampd -- ^ @zmin@ of type @ClampedFloat64@.
+  -> GLclampd -- ^ @zmax@ of type @ClampedFloat64@.
+  -> m ()
+glDepthBoundsEXT v1 v2 = liftIO $ dyn224 ptr_glDepthBoundsEXT v1 v2
+
+{-# NOINLINE ptr_glDepthBoundsEXT #-}
+ptr_glDepthBoundsEXT :: FunPtr (GLclampd -> GLclampd -> IO ())
+ptr_glDepthBoundsEXT = unsafePerformIO $ getCommand "glDepthBoundsEXT"
+
+-- glDepthBoundsdNV ------------------------------------------------------------
+
+glDepthBoundsdNV
+  :: MonadIO m
+  => GLdouble -- ^ @zmin@.
+  -> GLdouble -- ^ @zmax@.
+  -> m ()
+glDepthBoundsdNV v1 v2 = liftIO $ dyn225 ptr_glDepthBoundsdNV v1 v2
+
+{-# NOINLINE ptr_glDepthBoundsdNV #-}
+ptr_glDepthBoundsdNV :: FunPtr (GLdouble -> GLdouble -> IO ())
+ptr_glDepthBoundsdNV = unsafePerformIO $ getCommand "glDepthBoundsdNV"
+
+-- glDepthFunc -----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glDepthFunc.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glDepthFunc.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glDepthFunc.xhtml OpenGL 4.x>.
+glDepthFunc
+  :: MonadIO m
+  => GLenum -- ^ @func@ of type [DepthFunction](Graphics-GL-Groups.html#DepthFunction).
+  -> m ()
+glDepthFunc v1 = liftIO $ dyn5 ptr_glDepthFunc v1
+
+{-# NOINLINE ptr_glDepthFunc #-}
+ptr_glDepthFunc :: FunPtr (GLenum -> IO ())
+ptr_glDepthFunc = unsafePerformIO $ getCommand "glDepthFunc"
+
+-- glDepthMask -----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glDepthMask.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glDepthMask.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glDepthMask.xhtml OpenGL 4.x>.
+glDepthMask
+  :: MonadIO m
+  => GLboolean -- ^ @flag@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m ()
+glDepthMask v1 = liftIO $ dyn198 ptr_glDepthMask v1
+
+{-# NOINLINE ptr_glDepthMask #-}
+ptr_glDepthMask :: FunPtr (GLboolean -> IO ())
+ptr_glDepthMask = unsafePerformIO $ getCommand "glDepthMask"
+
+-- glDepthRange ----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glDepthRange.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glDepthRange.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glDepthRange.xhtml OpenGL 4.x>.
+glDepthRange
+  :: MonadIO m
+  => GLdouble -- ^ @n@.
+  -> GLdouble -- ^ @f@.
+  -> m ()
+glDepthRange v1 v2 = liftIO $ dyn225 ptr_glDepthRange v1 v2
+
+{-# NOINLINE ptr_glDepthRange #-}
+ptr_glDepthRange :: FunPtr (GLdouble -> GLdouble -> IO ())
+ptr_glDepthRange = unsafePerformIO $ getCommand "glDepthRange"
+
+-- glDepthRangeArrayfvNV -------------------------------------------------------
+
+glDepthRangeArrayfvNV
+  :: MonadIO m
+  => GLuint -- ^ @first@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLfloat -- ^ @v@.
+  -> m ()
+glDepthRangeArrayfvNV v1 v2 v3 = liftIO $ dyn226 ptr_glDepthRangeArrayfvNV v1 v2 v3
+
+{-# NOINLINE ptr_glDepthRangeArrayfvNV #-}
+ptr_glDepthRangeArrayfvNV :: FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+ptr_glDepthRangeArrayfvNV = unsafePerformIO $ getCommand "glDepthRangeArrayfvNV"
+
+-- glDepthRangeArrayfvOES ------------------------------------------------------
+
+glDepthRangeArrayfvOES
+  :: MonadIO m
+  => GLuint -- ^ @first@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLfloat -- ^ @v@.
+  -> m ()
+glDepthRangeArrayfvOES v1 v2 v3 = liftIO $ dyn226 ptr_glDepthRangeArrayfvOES v1 v2 v3
+
+{-# NOINLINE ptr_glDepthRangeArrayfvOES #-}
+ptr_glDepthRangeArrayfvOES :: FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+ptr_glDepthRangeArrayfvOES = unsafePerformIO $ getCommand "glDepthRangeArrayfvOES"
+
+-- glDepthRangeArrayv ----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glDepthRangeArray.xhtml OpenGL 4.x>.
+glDepthRangeArrayv
+  :: MonadIO m
+  => GLuint -- ^ @first@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLdouble -- ^ @v@ pointing to @COMPSIZE(count)@ elements of type @GLdouble@.
+  -> m ()
+glDepthRangeArrayv v1 v2 v3 = liftIO $ dyn227 ptr_glDepthRangeArrayv v1 v2 v3
+
+{-# NOINLINE ptr_glDepthRangeArrayv #-}
+ptr_glDepthRangeArrayv :: FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ())
+ptr_glDepthRangeArrayv = unsafePerformIO $ getCommand "glDepthRangeArrayv"
+
+-- glDepthRangeIndexed ---------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glDepthRangeIndexed.xhtml OpenGL 4.x>.
+glDepthRangeIndexed
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLdouble -- ^ @n@.
+  -> GLdouble -- ^ @f@.
+  -> m ()
+glDepthRangeIndexed v1 v2 v3 = liftIO $ dyn228 ptr_glDepthRangeIndexed v1 v2 v3
+
+{-# NOINLINE ptr_glDepthRangeIndexed #-}
+ptr_glDepthRangeIndexed :: FunPtr (GLuint -> GLdouble -> GLdouble -> IO ())
+ptr_glDepthRangeIndexed = unsafePerformIO $ getCommand "glDepthRangeIndexed"
+
+-- glDepthRangeIndexedfNV ------------------------------------------------------
+
+glDepthRangeIndexedfNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLfloat -- ^ @n@.
+  -> GLfloat -- ^ @f@.
+  -> m ()
+glDepthRangeIndexedfNV v1 v2 v3 = liftIO $ dyn229 ptr_glDepthRangeIndexedfNV v1 v2 v3
+
+{-# NOINLINE ptr_glDepthRangeIndexedfNV #-}
+ptr_glDepthRangeIndexedfNV :: FunPtr (GLuint -> GLfloat -> GLfloat -> IO ())
+ptr_glDepthRangeIndexedfNV = unsafePerformIO $ getCommand "glDepthRangeIndexedfNV"
+
+-- glDepthRangeIndexedfOES -----------------------------------------------------
+
+glDepthRangeIndexedfOES
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLfloat -- ^ @n@.
+  -> GLfloat -- ^ @f@.
+  -> m ()
+glDepthRangeIndexedfOES v1 v2 v3 = liftIO $ dyn229 ptr_glDepthRangeIndexedfOES v1 v2 v3
+
+{-# NOINLINE ptr_glDepthRangeIndexedfOES #-}
+ptr_glDepthRangeIndexedfOES :: FunPtr (GLuint -> GLfloat -> GLfloat -> IO ())
+ptr_glDepthRangeIndexedfOES = unsafePerformIO $ getCommand "glDepthRangeIndexedfOES"
+
+-- glDepthRangedNV -------------------------------------------------------------
+
+glDepthRangedNV
+  :: MonadIO m
+  => GLdouble -- ^ @zNear@.
+  -> GLdouble -- ^ @zFar@.
+  -> m ()
+glDepthRangedNV v1 v2 = liftIO $ dyn225 ptr_glDepthRangedNV v1 v2
+
+{-# NOINLINE ptr_glDepthRangedNV #-}
+ptr_glDepthRangedNV :: FunPtr (GLdouble -> GLdouble -> IO ())
+ptr_glDepthRangedNV = unsafePerformIO $ getCommand "glDepthRangedNV"
+
+-- glDepthRangef ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glDepthRange.xhtml OpenGL 4.x>.
+glDepthRangef
+  :: MonadIO m
+  => GLfloat -- ^ @n@.
+  -> GLfloat -- ^ @f@.
+  -> m ()
+glDepthRangef v1 v2 = liftIO $ dyn230 ptr_glDepthRangef v1 v2
+
+{-# NOINLINE ptr_glDepthRangef #-}
+ptr_glDepthRangef :: FunPtr (GLfloat -> GLfloat -> IO ())
+ptr_glDepthRangef = unsafePerformIO $ getCommand "glDepthRangef"
+
+-- glDepthRangefOES ------------------------------------------------------------
+
+-- | This command is an alias for 'glDepthRangef'.
+glDepthRangefOES
+  :: MonadIO m
+  => GLclampf -- ^ @n@ of type @ClampedFloat32@.
+  -> GLclampf -- ^ @f@ of type @ClampedFloat32@.
+  -> m ()
+glDepthRangefOES v1 v2 = liftIO $ dyn231 ptr_glDepthRangefOES v1 v2
+
+{-# NOINLINE ptr_glDepthRangefOES #-}
+ptr_glDepthRangefOES :: FunPtr (GLclampf -> GLclampf -> IO ())
+ptr_glDepthRangefOES = unsafePerformIO $ getCommand "glDepthRangefOES"
+
+-- glDepthRangex ---------------------------------------------------------------
+
+glDepthRangex
+  :: MonadIO m
+  => GLfixed -- ^ @n@.
+  -> GLfixed -- ^ @f@.
+  -> m ()
+glDepthRangex v1 v2 = liftIO $ dyn232 ptr_glDepthRangex v1 v2
+
+{-# NOINLINE ptr_glDepthRangex #-}
+ptr_glDepthRangex :: FunPtr (GLfixed -> GLfixed -> IO ())
+ptr_glDepthRangex = unsafePerformIO $ getCommand "glDepthRangex"
+
+-- glDepthRangexOES ------------------------------------------------------------
+
+glDepthRangexOES
+  :: MonadIO m
+  => GLfixed -- ^ @n@ of type @ClampedFixed@.
+  -> GLfixed -- ^ @f@ of type @ClampedFixed@.
+  -> m ()
+glDepthRangexOES v1 v2 = liftIO $ dyn232 ptr_glDepthRangexOES v1 v2
+
+{-# NOINLINE ptr_glDepthRangexOES #-}
+ptr_glDepthRangexOES :: FunPtr (GLfixed -> GLfixed -> IO ())
+ptr_glDepthRangexOES = unsafePerformIO $ getCommand "glDepthRangexOES"
+
+-- glDetachObjectARB -----------------------------------------------------------
+
+-- | This command is an alias for 'glDetachShader'.
+glDetachObjectARB
+  :: MonadIO m
+  => GLhandleARB -- ^ @containerObj@ of type @handleARB@.
+  -> GLhandleARB -- ^ @attachedObj@ of type @handleARB@.
+  -> m ()
+glDetachObjectARB v1 v2 = liftIO $ dyn17 ptr_glDetachObjectARB v1 v2
+
+{-# NOINLINE ptr_glDetachObjectARB #-}
+ptr_glDetachObjectARB :: FunPtr (GLhandleARB -> GLhandleARB -> IO ())
+ptr_glDetachObjectARB = unsafePerformIO $ getCommand "glDetachObjectARB"
+
+-- glDetachShader --------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glDetachShader.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glDetachShader.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glDetachShader.xhtml OpenGL 4.x>.
+glDetachShader
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLuint -- ^ @shader@.
+  -> m ()
+glDetachShader v1 v2 = liftIO $ dyn4 ptr_glDetachShader v1 v2
+
+{-# NOINLINE ptr_glDetachShader #-}
+ptr_glDetachShader :: FunPtr (GLuint -> GLuint -> IO ())
+ptr_glDetachShader = unsafePerformIO $ getCommand "glDetachShader"
+
+-- glDetailTexFuncSGIS ---------------------------------------------------------
+
+glDetailTexFuncSGIS
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLsizei -- ^ @n@.
+  -> Ptr GLfloat -- ^ @points@ pointing to @n*2@ elements of type @GLfloat@.
+  -> m ()
+glDetailTexFuncSGIS v1 v2 v3 = liftIO $ dyn233 ptr_glDetailTexFuncSGIS v1 v2 v3
+
+{-# NOINLINE ptr_glDetailTexFuncSGIS #-}
+ptr_glDetailTexFuncSGIS :: FunPtr (GLenum -> GLsizei -> Ptr GLfloat -> IO ())
+ptr_glDetailTexFuncSGIS = unsafePerformIO $ getCommand "glDetailTexFuncSGIS"
+
+-- glDisable -------------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glEnable.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glEnable.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glEnable.xhtml OpenGL 4.x>.
+glDisable
+  :: MonadIO m
+  => GLenum -- ^ @cap@ of type [EnableCap](Graphics-GL-Groups.html#EnableCap).
+  -> m ()
+glDisable v1 = liftIO $ dyn5 ptr_glDisable v1
+
+{-# NOINLINE ptr_glDisable #-}
+ptr_glDisable :: FunPtr (GLenum -> IO ())
+ptr_glDisable = unsafePerformIO $ getCommand "glDisable"
+
+-- glDisableClientState --------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glEnableClientState.xml OpenGL 2.x>.
+glDisableClientState
+  :: MonadIO m
+  => GLenum -- ^ @array@ of type [EnableCap](Graphics-GL-Groups.html#EnableCap).
+  -> m ()
+glDisableClientState v1 = liftIO $ dyn5 ptr_glDisableClientState v1
+
+{-# NOINLINE ptr_glDisableClientState #-}
+ptr_glDisableClientState :: FunPtr (GLenum -> IO ())
+ptr_glDisableClientState = unsafePerformIO $ getCommand "glDisableClientState"
+
+-- glDisableClientStateIndexedEXT ----------------------------------------------
+
+glDisableClientStateIndexedEXT
+  :: MonadIO m
+  => GLenum -- ^ @array@ of type [EnableCap](Graphics-GL-Groups.html#EnableCap).
+  -> GLuint -- ^ @index@.
+  -> m ()
+glDisableClientStateIndexedEXT v1 v2 = liftIO $ dyn19 ptr_glDisableClientStateIndexedEXT v1 v2
+
+{-# NOINLINE ptr_glDisableClientStateIndexedEXT #-}
+ptr_glDisableClientStateIndexedEXT :: FunPtr (GLenum -> GLuint -> IO ())
+ptr_glDisableClientStateIndexedEXT = unsafePerformIO $ getCommand "glDisableClientStateIndexedEXT"
+
+-- glDisableClientStateiEXT ----------------------------------------------------
+
+glDisableClientStateiEXT
+  :: MonadIO m
+  => GLenum -- ^ @array@ of type [EnableCap](Graphics-GL-Groups.html#EnableCap).
+  -> GLuint -- ^ @index@.
+  -> m ()
+glDisableClientStateiEXT v1 v2 = liftIO $ dyn19 ptr_glDisableClientStateiEXT v1 v2
+
+{-# NOINLINE ptr_glDisableClientStateiEXT #-}
+ptr_glDisableClientStateiEXT :: FunPtr (GLenum -> GLuint -> IO ())
+ptr_glDisableClientStateiEXT = unsafePerformIO $ getCommand "glDisableClientStateiEXT"
+
+-- glDisableDriverControlQCOM --------------------------------------------------
+
+glDisableDriverControlQCOM
+  :: MonadIO m
+  => GLuint -- ^ @driverControl@.
+  -> m ()
+glDisableDriverControlQCOM v1 = liftIO $ dyn3 ptr_glDisableDriverControlQCOM v1
+
+{-# NOINLINE ptr_glDisableDriverControlQCOM #-}
+ptr_glDisableDriverControlQCOM :: FunPtr (GLuint -> IO ())
+ptr_glDisableDriverControlQCOM = unsafePerformIO $ getCommand "glDisableDriverControlQCOM"
+
+-- glDisableIndexedEXT ---------------------------------------------------------
+
+-- | This command is an alias for 'glDisablei'.
+glDisableIndexedEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [EnableCap](Graphics-GL-Groups.html#EnableCap).
+  -> GLuint -- ^ @index@.
+  -> m ()
+glDisableIndexedEXT v1 v2 = liftIO $ dyn19 ptr_glDisableIndexedEXT v1 v2
+
+{-# NOINLINE ptr_glDisableIndexedEXT #-}
+ptr_glDisableIndexedEXT :: FunPtr (GLenum -> GLuint -> IO ())
+ptr_glDisableIndexedEXT = unsafePerformIO $ getCommand "glDisableIndexedEXT"
+
+-- glDisableVariantClientStateEXT ----------------------------------------------
+
+glDisableVariantClientStateEXT
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> m ()
+glDisableVariantClientStateEXT v1 = liftIO $ dyn3 ptr_glDisableVariantClientStateEXT v1
+
+{-# NOINLINE ptr_glDisableVariantClientStateEXT #-}
+ptr_glDisableVariantClientStateEXT :: FunPtr (GLuint -> IO ())
+ptr_glDisableVariantClientStateEXT = unsafePerformIO $ getCommand "glDisableVariantClientStateEXT"
+
+-- glDisableVertexArrayAttrib --------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glEnableVertexAttribArray.xhtml OpenGL 4.x>.
+glDisableVertexArrayAttrib
+  :: MonadIO m
+  => GLuint -- ^ @vaobj@.
+  -> GLuint -- ^ @index@.
+  -> m ()
+glDisableVertexArrayAttrib v1 v2 = liftIO $ dyn4 ptr_glDisableVertexArrayAttrib v1 v2
+
+{-# NOINLINE ptr_glDisableVertexArrayAttrib #-}
+ptr_glDisableVertexArrayAttrib :: FunPtr (GLuint -> GLuint -> IO ())
+ptr_glDisableVertexArrayAttrib = unsafePerformIO $ getCommand "glDisableVertexArrayAttrib"
+
+-- glDisableVertexArrayAttribEXT -----------------------------------------------
+
+glDisableVertexArrayAttribEXT
+  :: MonadIO m
+  => GLuint -- ^ @vaobj@.
+  -> GLuint -- ^ @index@.
+  -> m ()
+glDisableVertexArrayAttribEXT v1 v2 = liftIO $ dyn4 ptr_glDisableVertexArrayAttribEXT v1 v2
+
+{-# NOINLINE ptr_glDisableVertexArrayAttribEXT #-}
+ptr_glDisableVertexArrayAttribEXT :: FunPtr (GLuint -> GLuint -> IO ())
+ptr_glDisableVertexArrayAttribEXT = unsafePerformIO $ getCommand "glDisableVertexArrayAttribEXT"
+
+-- glDisableVertexArrayEXT -----------------------------------------------------
+
+glDisableVertexArrayEXT
+  :: MonadIO m
+  => GLuint -- ^ @vaobj@.
+  -> GLenum -- ^ @array@ of type [EnableCap](Graphics-GL-Groups.html#EnableCap).
+  -> m ()
+glDisableVertexArrayEXT v1 v2 = liftIO $ dyn18 ptr_glDisableVertexArrayEXT v1 v2
+
+{-# NOINLINE ptr_glDisableVertexArrayEXT #-}
+ptr_glDisableVertexArrayEXT :: FunPtr (GLuint -> GLenum -> IO ())
+ptr_glDisableVertexArrayEXT = unsafePerformIO $ getCommand "glDisableVertexArrayEXT"
+
+-- glDisableVertexAttribAPPLE --------------------------------------------------
+
+glDisableVertexAttribAPPLE
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLenum -- ^ @pname@.
+  -> m ()
+glDisableVertexAttribAPPLE v1 v2 = liftIO $ dyn18 ptr_glDisableVertexAttribAPPLE v1 v2
+
+{-# NOINLINE ptr_glDisableVertexAttribAPPLE #-}
+ptr_glDisableVertexAttribAPPLE :: FunPtr (GLuint -> GLenum -> IO ())
+ptr_glDisableVertexAttribAPPLE = unsafePerformIO $ getCommand "glDisableVertexAttribAPPLE"
+
+-- glDisableVertexAttribArray --------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glEnableVertexAttribArray.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glEnableVertexAttribArray.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glEnableVertexAttribArray.xhtml OpenGL 4.x>.
+glDisableVertexAttribArray
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> m ()
+glDisableVertexAttribArray v1 = liftIO $ dyn3 ptr_glDisableVertexAttribArray v1
+
+{-# NOINLINE ptr_glDisableVertexAttribArray #-}
+ptr_glDisableVertexAttribArray :: FunPtr (GLuint -> IO ())
+ptr_glDisableVertexAttribArray = unsafePerformIO $ getCommand "glDisableVertexAttribArray"
+
+-- glDisableVertexAttribArrayARB -----------------------------------------------
+
+-- | This command is an alias for 'glDisableVertexAttribArray'.
+glDisableVertexAttribArrayARB
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> m ()
+glDisableVertexAttribArrayARB v1 = liftIO $ dyn3 ptr_glDisableVertexAttribArrayARB v1
+
+{-# NOINLINE ptr_glDisableVertexAttribArrayARB #-}
+ptr_glDisableVertexAttribArrayARB :: FunPtr (GLuint -> IO ())
+ptr_glDisableVertexAttribArrayARB = unsafePerformIO $ getCommand "glDisableVertexAttribArrayARB"
+
+-- glDisablei ------------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glEnable.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glEnable.xhtml OpenGL 4.x>.
+glDisablei
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [EnableCap](Graphics-GL-Groups.html#EnableCap).
+  -> GLuint -- ^ @index@.
+  -> m ()
+glDisablei v1 v2 = liftIO $ dyn19 ptr_glDisablei v1 v2
+
+{-# NOINLINE ptr_glDisablei #-}
+ptr_glDisablei :: FunPtr (GLenum -> GLuint -> IO ())
+ptr_glDisablei = unsafePerformIO $ getCommand "glDisablei"
+
+-- glDisableiEXT ---------------------------------------------------------------
+
+-- | This command is an alias for 'glDisablei'.
+glDisableiEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [EnableCap](Graphics-GL-Groups.html#EnableCap).
+  -> GLuint -- ^ @index@.
+  -> m ()
+glDisableiEXT v1 v2 = liftIO $ dyn19 ptr_glDisableiEXT v1 v2
+
+{-# NOINLINE ptr_glDisableiEXT #-}
+ptr_glDisableiEXT :: FunPtr (GLenum -> GLuint -> IO ())
+ptr_glDisableiEXT = unsafePerformIO $ getCommand "glDisableiEXT"
+
+-- glDisableiNV ----------------------------------------------------------------
+
+-- | This command is an alias for 'glDisablei'.
+glDisableiNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [EnableCap](Graphics-GL-Groups.html#EnableCap).
+  -> GLuint -- ^ @index@.
+  -> m ()
+glDisableiNV v1 v2 = liftIO $ dyn19 ptr_glDisableiNV v1 v2
+
+{-# NOINLINE ptr_glDisableiNV #-}
+ptr_glDisableiNV :: FunPtr (GLenum -> GLuint -> IO ())
+ptr_glDisableiNV = unsafePerformIO $ getCommand "glDisableiNV"
+
+-- glDisableiOES ---------------------------------------------------------------
+
+-- | This command is an alias for 'glDisablei'.
+glDisableiOES
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [EnableCap](Graphics-GL-Groups.html#EnableCap).
+  -> GLuint -- ^ @index@.
+  -> m ()
+glDisableiOES v1 v2 = liftIO $ dyn19 ptr_glDisableiOES v1 v2
+
+{-# NOINLINE ptr_glDisableiOES #-}
+ptr_glDisableiOES :: FunPtr (GLenum -> GLuint -> IO ())
+ptr_glDisableiOES = unsafePerformIO $ getCommand "glDisableiOES"
+
+-- glDiscardFramebufferEXT -----------------------------------------------------
+
+glDiscardFramebufferEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [FramebufferTarget](Graphics-GL-Groups.html#FramebufferTarget).
+  -> GLsizei -- ^ @numAttachments@.
+  -> Ptr GLenum -- ^ @attachments@ pointing to @numAttachments@ elements of type [InvalidateFramebufferAttachment](Graphics-GL-Groups.html#InvalidateFramebufferAttachment).
+  -> m ()
+glDiscardFramebufferEXT v1 v2 v3 = liftIO $ dyn234 ptr_glDiscardFramebufferEXT v1 v2 v3
+
+{-# NOINLINE ptr_glDiscardFramebufferEXT #-}
+ptr_glDiscardFramebufferEXT :: FunPtr (GLenum -> GLsizei -> Ptr GLenum -> IO ())
+ptr_glDiscardFramebufferEXT = unsafePerformIO $ getCommand "glDiscardFramebufferEXT"
+
+-- glDispatchCompute -----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glDispatchCompute.xhtml OpenGL 4.x>.
+glDispatchCompute
+  :: MonadIO m
+  => GLuint -- ^ @num_groups_x@.
+  -> GLuint -- ^ @num_groups_y@.
+  -> GLuint -- ^ @num_groups_z@.
+  -> m ()
+glDispatchCompute v1 v2 v3 = liftIO $ dyn109 ptr_glDispatchCompute v1 v2 v3
+
+{-# NOINLINE ptr_glDispatchCompute #-}
+ptr_glDispatchCompute :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
+ptr_glDispatchCompute = unsafePerformIO $ getCommand "glDispatchCompute"
+
+-- glDispatchComputeGroupSizeARB -----------------------------------------------
+
+glDispatchComputeGroupSizeARB
+  :: MonadIO m
+  => GLuint -- ^ @num_groups_x@.
+  -> GLuint -- ^ @num_groups_y@.
+  -> GLuint -- ^ @num_groups_z@.
+  -> GLuint -- ^ @group_size_x@.
+  -> GLuint -- ^ @group_size_y@.
+  -> GLuint -- ^ @group_size_z@.
+  -> m ()
+glDispatchComputeGroupSizeARB v1 v2 v3 v4 v5 v6 = liftIO $ dyn235 ptr_glDispatchComputeGroupSizeARB v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glDispatchComputeGroupSizeARB #-}
+ptr_glDispatchComputeGroupSizeARB :: FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+ptr_glDispatchComputeGroupSizeARB = unsafePerformIO $ getCommand "glDispatchComputeGroupSizeARB"
+
+-- glDispatchComputeIndirect ---------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glDispatchComputeIndirect.xhtml OpenGL 4.x>.
+glDispatchComputeIndirect
+  :: MonadIO m
+  => GLintptr -- ^ @indirect@ of type @BufferOffset@.
+  -> m ()
+glDispatchComputeIndirect v1 = liftIO $ dyn236 ptr_glDispatchComputeIndirect v1
+
+{-# NOINLINE ptr_glDispatchComputeIndirect #-}
+ptr_glDispatchComputeIndirect :: FunPtr (GLintptr -> IO ())
+ptr_glDispatchComputeIndirect = unsafePerformIO $ getCommand "glDispatchComputeIndirect"
+
+-- glDrawArrays ----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glDrawArrays.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glDrawArrays.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glDrawArrays.xhtml OpenGL 4.x>.
+glDrawArrays
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> GLint -- ^ @first@.
+  -> GLsizei -- ^ @count@.
+  -> m ()
+glDrawArrays v1 v2 v3 = liftIO $ dyn237 ptr_glDrawArrays v1 v2 v3
+
+{-# NOINLINE ptr_glDrawArrays #-}
+ptr_glDrawArrays :: FunPtr (GLenum -> GLint -> GLsizei -> IO ())
+ptr_glDrawArrays = unsafePerformIO $ getCommand "glDrawArrays"
+
+-- glDrawArraysEXT -------------------------------------------------------------
+
+-- | This command is an alias for 'glDrawArrays'.
+glDrawArraysEXT
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> GLint -- ^ @first@.
+  -> GLsizei -- ^ @count@.
+  -> m ()
+glDrawArraysEXT v1 v2 v3 = liftIO $ dyn237 ptr_glDrawArraysEXT v1 v2 v3
+
+{-# NOINLINE ptr_glDrawArraysEXT #-}
+ptr_glDrawArraysEXT :: FunPtr (GLenum -> GLint -> GLsizei -> IO ())
+ptr_glDrawArraysEXT = unsafePerformIO $ getCommand "glDrawArraysEXT"
+
+-- glDrawArraysIndirect --------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glDrawArraysIndirect.xhtml OpenGL 4.x>.
+glDrawArraysIndirect
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> Ptr a -- ^ @indirect@.
+  -> m ()
+glDrawArraysIndirect v1 v2 = liftIO $ dyn238 ptr_glDrawArraysIndirect v1 v2
+
+{-# NOINLINE ptr_glDrawArraysIndirect #-}
+ptr_glDrawArraysIndirect :: FunPtr (GLenum -> Ptr a -> IO ())
+ptr_glDrawArraysIndirect = unsafePerformIO $ getCommand "glDrawArraysIndirect"
+
+-- glDrawArraysInstanced -------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glDrawArraysInstanced.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glDrawArraysInstanced.xhtml OpenGL 4.x>.
+glDrawArraysInstanced
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> GLint -- ^ @first@.
+  -> GLsizei -- ^ @count@.
+  -> GLsizei -- ^ @instancecount@.
+  -> m ()
+glDrawArraysInstanced v1 v2 v3 v4 = liftIO $ dyn239 ptr_glDrawArraysInstanced v1 v2 v3 v4
+
+{-# NOINLINE ptr_glDrawArraysInstanced #-}
+ptr_glDrawArraysInstanced :: FunPtr (GLenum -> GLint -> GLsizei -> GLsizei -> IO ())
+ptr_glDrawArraysInstanced = unsafePerformIO $ getCommand "glDrawArraysInstanced"
+
+-- glDrawArraysInstancedANGLE --------------------------------------------------
+
+-- | This command is an alias for 'glDrawArraysInstanced'.
+glDrawArraysInstancedANGLE
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> GLint -- ^ @first@.
+  -> GLsizei -- ^ @count@.
+  -> GLsizei -- ^ @primcount@.
+  -> m ()
+glDrawArraysInstancedANGLE v1 v2 v3 v4 = liftIO $ dyn239 ptr_glDrawArraysInstancedANGLE v1 v2 v3 v4
+
+{-# NOINLINE ptr_glDrawArraysInstancedANGLE #-}
+ptr_glDrawArraysInstancedANGLE :: FunPtr (GLenum -> GLint -> GLsizei -> GLsizei -> IO ())
+ptr_glDrawArraysInstancedANGLE = unsafePerformIO $ getCommand "glDrawArraysInstancedANGLE"
+
+-- glDrawArraysInstancedARB ----------------------------------------------------
+
+-- | This command is an alias for 'glDrawArraysInstanced'.
+glDrawArraysInstancedARB
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> GLint -- ^ @first@.
+  -> GLsizei -- ^ @count@.
+  -> GLsizei -- ^ @primcount@.
+  -> m ()
+glDrawArraysInstancedARB v1 v2 v3 v4 = liftIO $ dyn239 ptr_glDrawArraysInstancedARB v1 v2 v3 v4
+
+{-# NOINLINE ptr_glDrawArraysInstancedARB #-}
+ptr_glDrawArraysInstancedARB :: FunPtr (GLenum -> GLint -> GLsizei -> GLsizei -> IO ())
+ptr_glDrawArraysInstancedARB = unsafePerformIO $ getCommand "glDrawArraysInstancedARB"
+
+-- glDrawArraysInstancedBaseInstance -------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glDrawArraysInstancedBaseInstance.xhtml OpenGL 4.x>.
+glDrawArraysInstancedBaseInstance
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> GLint -- ^ @first@.
+  -> GLsizei -- ^ @count@.
+  -> GLsizei -- ^ @instancecount@.
+  -> GLuint -- ^ @baseinstance@.
+  -> m ()
+glDrawArraysInstancedBaseInstance v1 v2 v3 v4 v5 = liftIO $ dyn240 ptr_glDrawArraysInstancedBaseInstance v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glDrawArraysInstancedBaseInstance #-}
+ptr_glDrawArraysInstancedBaseInstance :: FunPtr (GLenum -> GLint -> GLsizei -> GLsizei -> GLuint -> IO ())
+ptr_glDrawArraysInstancedBaseInstance = unsafePerformIO $ getCommand "glDrawArraysInstancedBaseInstance"
+
+-- glDrawArraysInstancedBaseInstanceEXT ----------------------------------------
+
+-- | This command is an alias for 'glDrawArraysInstancedBaseInstance'.
+glDrawArraysInstancedBaseInstanceEXT
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> GLint -- ^ @first@.
+  -> GLsizei -- ^ @count@.
+  -> GLsizei -- ^ @instancecount@.
+  -> GLuint -- ^ @baseinstance@.
+  -> m ()
+glDrawArraysInstancedBaseInstanceEXT v1 v2 v3 v4 v5 = liftIO $ dyn240 ptr_glDrawArraysInstancedBaseInstanceEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glDrawArraysInstancedBaseInstanceEXT #-}
+ptr_glDrawArraysInstancedBaseInstanceEXT :: FunPtr (GLenum -> GLint -> GLsizei -> GLsizei -> GLuint -> IO ())
+ptr_glDrawArraysInstancedBaseInstanceEXT = unsafePerformIO $ getCommand "glDrawArraysInstancedBaseInstanceEXT"
+
+-- glDrawArraysInstancedEXT ----------------------------------------------------
+
+-- | This command is an alias for 'glDrawArraysInstanced'.
+glDrawArraysInstancedEXT
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> GLint -- ^ @start@.
+  -> GLsizei -- ^ @count@.
+  -> GLsizei -- ^ @primcount@.
+  -> m ()
+glDrawArraysInstancedEXT v1 v2 v3 v4 = liftIO $ dyn239 ptr_glDrawArraysInstancedEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glDrawArraysInstancedEXT #-}
+ptr_glDrawArraysInstancedEXT :: FunPtr (GLenum -> GLint -> GLsizei -> GLsizei -> IO ())
+ptr_glDrawArraysInstancedEXT = unsafePerformIO $ getCommand "glDrawArraysInstancedEXT"
+
+-- glDrawArraysInstancedNV -----------------------------------------------------
+
+-- | This command is an alias for 'glDrawArraysInstanced'.
+glDrawArraysInstancedNV
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> GLint -- ^ @first@.
+  -> GLsizei -- ^ @count@.
+  -> GLsizei -- ^ @primcount@.
+  -> m ()
+glDrawArraysInstancedNV v1 v2 v3 v4 = liftIO $ dyn239 ptr_glDrawArraysInstancedNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glDrawArraysInstancedNV #-}
+ptr_glDrawArraysInstancedNV :: FunPtr (GLenum -> GLint -> GLsizei -> GLsizei -> IO ())
+ptr_glDrawArraysInstancedNV = unsafePerformIO $ getCommand "glDrawArraysInstancedNV"
+
+-- glDrawBuffer ----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glDrawBuffer.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glDrawBuffer.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glDrawBuffer.xhtml OpenGL 4.x>.
+glDrawBuffer
+  :: MonadIO m
+  => GLenum -- ^ @buf@ of type [DrawBufferMode](Graphics-GL-Groups.html#DrawBufferMode).
+  -> m ()
+glDrawBuffer v1 = liftIO $ dyn5 ptr_glDrawBuffer v1
+
+{-# NOINLINE ptr_glDrawBuffer #-}
+ptr_glDrawBuffer :: FunPtr (GLenum -> IO ())
+ptr_glDrawBuffer = unsafePerformIO $ getCommand "glDrawBuffer"
+
+-- glDrawBuffers ---------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glDrawBuffers.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glDrawBuffers.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glDrawBuffers.xhtml OpenGL 4.x>.
+glDrawBuffers
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLenum -- ^ @bufs@ pointing to @n@ elements of type [DrawBufferMode](Graphics-GL-Groups.html#DrawBufferMode).
+  -> m ()
+glDrawBuffers v1 v2 = liftIO $ dyn241 ptr_glDrawBuffers v1 v2
+
+{-# NOINLINE ptr_glDrawBuffers #-}
+ptr_glDrawBuffers :: FunPtr (GLsizei -> Ptr GLenum -> IO ())
+ptr_glDrawBuffers = unsafePerformIO $ getCommand "glDrawBuffers"
+
+-- glDrawBuffersARB ------------------------------------------------------------
+
+-- | This command is an alias for 'glDrawBuffers'.
+glDrawBuffersARB
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLenum -- ^ @bufs@ pointing to @n@ elements of type [DrawBufferMode](Graphics-GL-Groups.html#DrawBufferMode).
+  -> m ()
+glDrawBuffersARB v1 v2 = liftIO $ dyn241 ptr_glDrawBuffersARB v1 v2
+
+{-# NOINLINE ptr_glDrawBuffersARB #-}
+ptr_glDrawBuffersARB :: FunPtr (GLsizei -> Ptr GLenum -> IO ())
+ptr_glDrawBuffersARB = unsafePerformIO $ getCommand "glDrawBuffersARB"
+
+-- glDrawBuffersATI ------------------------------------------------------------
+
+-- | This command is an alias for 'glDrawBuffers'.
+glDrawBuffersATI
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLenum -- ^ @bufs@ pointing to @n@ elements of type [DrawBufferMode](Graphics-GL-Groups.html#DrawBufferMode).
+  -> m ()
+glDrawBuffersATI v1 v2 = liftIO $ dyn241 ptr_glDrawBuffersATI v1 v2
+
+{-# NOINLINE ptr_glDrawBuffersATI #-}
+ptr_glDrawBuffersATI :: FunPtr (GLsizei -> Ptr GLenum -> IO ())
+ptr_glDrawBuffersATI = unsafePerformIO $ getCommand "glDrawBuffersATI"
+
+-- glDrawBuffersEXT ------------------------------------------------------------
+
+-- | This command is an alias for 'glDrawBuffers'.
+glDrawBuffersEXT
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLenum -- ^ @bufs@ pointing to @n@ elements of type @GLenum@.
+  -> m ()
+glDrawBuffersEXT v1 v2 = liftIO $ dyn241 ptr_glDrawBuffersEXT v1 v2
+
+{-# NOINLINE ptr_glDrawBuffersEXT #-}
+ptr_glDrawBuffersEXT :: FunPtr (GLsizei -> Ptr GLenum -> IO ())
+ptr_glDrawBuffersEXT = unsafePerformIO $ getCommand "glDrawBuffersEXT"
+
+-- glDrawBuffersIndexedEXT -----------------------------------------------------
+
+glDrawBuffersIndexedEXT
+  :: MonadIO m
+  => GLint -- ^ @n@.
+  -> Ptr GLenum -- ^ @location@ pointing to @n@ elements of type @GLenum@.
+  -> Ptr GLint -- ^ @indices@ pointing to @n@ elements of type @GLint@.
+  -> m ()
+glDrawBuffersIndexedEXT v1 v2 v3 = liftIO $ dyn242 ptr_glDrawBuffersIndexedEXT v1 v2 v3
+
+{-# NOINLINE ptr_glDrawBuffersIndexedEXT #-}
+ptr_glDrawBuffersIndexedEXT :: FunPtr (GLint -> Ptr GLenum -> Ptr GLint -> IO ())
+ptr_glDrawBuffersIndexedEXT = unsafePerformIO $ getCommand "glDrawBuffersIndexedEXT"
+
+-- glDrawBuffersNV -------------------------------------------------------------
+
+glDrawBuffersNV
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLenum -- ^ @bufs@ pointing to @n@ elements of type @GLenum@.
+  -> m ()
+glDrawBuffersNV v1 v2 = liftIO $ dyn241 ptr_glDrawBuffersNV v1 v2
+
+{-# NOINLINE ptr_glDrawBuffersNV #-}
+ptr_glDrawBuffersNV :: FunPtr (GLsizei -> Ptr GLenum -> IO ())
+ptr_glDrawBuffersNV = unsafePerformIO $ getCommand "glDrawBuffersNV"
+
+-- glDrawCommandsAddressNV -----------------------------------------------------
+
+glDrawCommandsAddressNV
+  :: MonadIO m
+  => GLenum -- ^ @primitiveMode@.
+  -> Ptr GLuint64 -- ^ @indirects@.
+  -> Ptr GLsizei -- ^ @sizes@.
+  -> GLuint -- ^ @count@.
+  -> m ()
+glDrawCommandsAddressNV v1 v2 v3 v4 = liftIO $ dyn243 ptr_glDrawCommandsAddressNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glDrawCommandsAddressNV #-}
+ptr_glDrawCommandsAddressNV :: FunPtr (GLenum -> Ptr GLuint64 -> Ptr GLsizei -> GLuint -> IO ())
+ptr_glDrawCommandsAddressNV = unsafePerformIO $ getCommand "glDrawCommandsAddressNV"
+
+-- glDrawCommandsNV ------------------------------------------------------------
+
+glDrawCommandsNV
+  :: MonadIO m
+  => GLenum -- ^ @primitiveMode@.
+  -> GLuint -- ^ @buffer@.
+  -> Ptr GLintptr -- ^ @indirects@.
+  -> Ptr GLsizei -- ^ @sizes@.
+  -> GLuint -- ^ @count@.
+  -> m ()
+glDrawCommandsNV v1 v2 v3 v4 v5 = liftIO $ dyn244 ptr_glDrawCommandsNV v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glDrawCommandsNV #-}
+ptr_glDrawCommandsNV :: FunPtr (GLenum -> GLuint -> Ptr GLintptr -> Ptr GLsizei -> GLuint -> IO ())
+ptr_glDrawCommandsNV = unsafePerformIO $ getCommand "glDrawCommandsNV"
+
+-- glDrawCommandsStatesAddressNV -----------------------------------------------
+
+glDrawCommandsStatesAddressNV
+  :: MonadIO m
+  => Ptr GLuint64 -- ^ @indirects@.
+  -> Ptr GLsizei -- ^ @sizes@.
+  -> Ptr GLuint -- ^ @states@.
+  -> Ptr GLuint -- ^ @fbos@.
+  -> GLuint -- ^ @count@.
+  -> m ()
+glDrawCommandsStatesAddressNV v1 v2 v3 v4 v5 = liftIO $ dyn245 ptr_glDrawCommandsStatesAddressNV v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glDrawCommandsStatesAddressNV #-}
+ptr_glDrawCommandsStatesAddressNV :: FunPtr (Ptr GLuint64 -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> IO ())
+ptr_glDrawCommandsStatesAddressNV = unsafePerformIO $ getCommand "glDrawCommandsStatesAddressNV"
+
+-- glDrawCommandsStatesNV ------------------------------------------------------
+
+glDrawCommandsStatesNV
+  :: MonadIO m
+  => GLuint -- ^ @buffer@.
+  -> Ptr GLintptr -- ^ @indirects@.
+  -> Ptr GLsizei -- ^ @sizes@.
+  -> Ptr GLuint -- ^ @states@.
+  -> Ptr GLuint -- ^ @fbos@.
+  -> GLuint -- ^ @count@.
+  -> m ()
+glDrawCommandsStatesNV v1 v2 v3 v4 v5 v6 = liftIO $ dyn246 ptr_glDrawCommandsStatesNV v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glDrawCommandsStatesNV #-}
+ptr_glDrawCommandsStatesNV :: FunPtr (GLuint -> Ptr GLintptr -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> IO ())
+ptr_glDrawCommandsStatesNV = unsafePerformIO $ getCommand "glDrawCommandsStatesNV"
+
+-- glDrawElementArrayAPPLE -----------------------------------------------------
+
+glDrawElementArrayAPPLE
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> GLint -- ^ @first@.
+  -> GLsizei -- ^ @count@.
+  -> m ()
+glDrawElementArrayAPPLE v1 v2 v3 = liftIO $ dyn237 ptr_glDrawElementArrayAPPLE v1 v2 v3
+
+{-# NOINLINE ptr_glDrawElementArrayAPPLE #-}
+ptr_glDrawElementArrayAPPLE :: FunPtr (GLenum -> GLint -> GLsizei -> IO ())
+ptr_glDrawElementArrayAPPLE = unsafePerformIO $ getCommand "glDrawElementArrayAPPLE"
+
+-- glDrawElementArrayATI -------------------------------------------------------
+
+glDrawElementArrayATI
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> GLsizei -- ^ @count@.
+  -> m ()
+glDrawElementArrayATI v1 v2 = liftIO $ dyn247 ptr_glDrawElementArrayATI v1 v2
+
+{-# NOINLINE ptr_glDrawElementArrayATI #-}
+ptr_glDrawElementArrayATI :: FunPtr (GLenum -> GLsizei -> IO ())
+ptr_glDrawElementArrayATI = unsafePerformIO $ getCommand "glDrawElementArrayATI"
+
+-- glDrawElements --------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glDrawElements.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glDrawElements.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glDrawElements.xhtml OpenGL 4.x>.
+glDrawElements
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> GLsizei -- ^ @count@.
+  -> GLenum -- ^ @type@ of type [DrawElementsType](Graphics-GL-Groups.html#DrawElementsType).
+  -> Ptr a -- ^ @indices@ pointing to @COMPSIZE(count,type)@ elements of type @a@.
+  -> m ()
+glDrawElements v1 v2 v3 v4 = liftIO $ dyn248 ptr_glDrawElements v1 v2 v3 v4
+
+{-# NOINLINE ptr_glDrawElements #-}
+ptr_glDrawElements :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr a -> IO ())
+ptr_glDrawElements = unsafePerformIO $ getCommand "glDrawElements"
+
+-- glDrawElementsBaseVertex ----------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glDrawElementsBaseVertex.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glDrawElementsBaseVertex.xhtml OpenGL 4.x>.
+glDrawElementsBaseVertex
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> GLsizei -- ^ @count@.
+  -> GLenum -- ^ @type@ of type [DrawElementsType](Graphics-GL-Groups.html#DrawElementsType).
+  -> Ptr a -- ^ @indices@ pointing to @COMPSIZE(count,type)@ elements of type @a@.
+  -> GLint -- ^ @basevertex@.
+  -> m ()
+glDrawElementsBaseVertex v1 v2 v3 v4 v5 = liftIO $ dyn249 ptr_glDrawElementsBaseVertex v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glDrawElementsBaseVertex #-}
+ptr_glDrawElementsBaseVertex :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr a -> GLint -> IO ())
+ptr_glDrawElementsBaseVertex = unsafePerformIO $ getCommand "glDrawElementsBaseVertex"
+
+-- glDrawElementsBaseVertexEXT -------------------------------------------------
+
+-- | This command is an alias for 'glDrawElementsBaseVertex'.
+glDrawElementsBaseVertexEXT
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> GLsizei -- ^ @count@.
+  -> GLenum -- ^ @type@ of type [DrawElementsType](Graphics-GL-Groups.html#DrawElementsType).
+  -> Ptr a -- ^ @indices@ pointing to @COMPSIZE(count,type)@ elements of type @a@.
+  -> GLint -- ^ @basevertex@.
+  -> m ()
+glDrawElementsBaseVertexEXT v1 v2 v3 v4 v5 = liftIO $ dyn249 ptr_glDrawElementsBaseVertexEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glDrawElementsBaseVertexEXT #-}
+ptr_glDrawElementsBaseVertexEXT :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr a -> GLint -> IO ())
+ptr_glDrawElementsBaseVertexEXT = unsafePerformIO $ getCommand "glDrawElementsBaseVertexEXT"
+
+-- glDrawElementsBaseVertexOES -------------------------------------------------
+
+-- | This command is an alias for 'glDrawElementsBaseVertex'.
+glDrawElementsBaseVertexOES
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> GLsizei -- ^ @count@.
+  -> GLenum -- ^ @type@ of type [DrawElementsType](Graphics-GL-Groups.html#DrawElementsType).
+  -> Ptr a -- ^ @indices@ pointing to @COMPSIZE(count,type)@ elements of type @a@.
+  -> GLint -- ^ @basevertex@.
+  -> m ()
+glDrawElementsBaseVertexOES v1 v2 v3 v4 v5 = liftIO $ dyn249 ptr_glDrawElementsBaseVertexOES v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glDrawElementsBaseVertexOES #-}
+ptr_glDrawElementsBaseVertexOES :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr a -> GLint -> IO ())
+ptr_glDrawElementsBaseVertexOES = unsafePerformIO $ getCommand "glDrawElementsBaseVertexOES"
+
+-- glDrawElementsIndirect ------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glDrawElementsIndirect.xhtml OpenGL 4.x>.
+glDrawElementsIndirect
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> GLenum -- ^ @type@ of type [DrawElementsType](Graphics-GL-Groups.html#DrawElementsType).
+  -> Ptr a -- ^ @indirect@.
+  -> m ()
+glDrawElementsIndirect v1 v2 v3 = liftIO $ dyn250 ptr_glDrawElementsIndirect v1 v2 v3
+
+{-# NOINLINE ptr_glDrawElementsIndirect #-}
+ptr_glDrawElementsIndirect :: FunPtr (GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glDrawElementsIndirect = unsafePerformIO $ getCommand "glDrawElementsIndirect"
+
+-- glDrawElementsInstanced -----------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glDrawElementsInstanced.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glDrawElementsInstanced.xhtml OpenGL 4.x>.
+glDrawElementsInstanced
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> GLsizei -- ^ @count@.
+  -> GLenum -- ^ @type@ of type [DrawElementsType](Graphics-GL-Groups.html#DrawElementsType).
+  -> Ptr a -- ^ @indices@ pointing to @COMPSIZE(count,type)@ elements of type @a@.
+  -> GLsizei -- ^ @instancecount@.
+  -> m ()
+glDrawElementsInstanced v1 v2 v3 v4 v5 = liftIO $ dyn251 ptr_glDrawElementsInstanced v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glDrawElementsInstanced #-}
+ptr_glDrawElementsInstanced :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> IO ())
+ptr_glDrawElementsInstanced = unsafePerformIO $ getCommand "glDrawElementsInstanced"
+
+-- glDrawElementsInstancedANGLE ------------------------------------------------
+
+-- | This command is an alias for 'glDrawElementsInstanced'.
+glDrawElementsInstancedANGLE
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> GLsizei -- ^ @count@.
+  -> GLenum -- ^ @type@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> Ptr a -- ^ @indices@ pointing to @COMPSIZE(count,type)@ elements of type @a@.
+  -> GLsizei -- ^ @primcount@.
+  -> m ()
+glDrawElementsInstancedANGLE v1 v2 v3 v4 v5 = liftIO $ dyn251 ptr_glDrawElementsInstancedANGLE v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glDrawElementsInstancedANGLE #-}
+ptr_glDrawElementsInstancedANGLE :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> IO ())
+ptr_glDrawElementsInstancedANGLE = unsafePerformIO $ getCommand "glDrawElementsInstancedANGLE"
+
+-- glDrawElementsInstancedARB --------------------------------------------------
+
+-- | This command is an alias for 'glDrawElementsInstanced'.
+glDrawElementsInstancedARB
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> GLsizei -- ^ @count@.
+  -> GLenum -- ^ @type@ of type [DrawElementsType](Graphics-GL-Groups.html#DrawElementsType).
+  -> Ptr a -- ^ @indices@ pointing to @COMPSIZE(count,type)@ elements of type @a@.
+  -> GLsizei -- ^ @primcount@.
+  -> m ()
+glDrawElementsInstancedARB v1 v2 v3 v4 v5 = liftIO $ dyn251 ptr_glDrawElementsInstancedARB v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glDrawElementsInstancedARB #-}
+ptr_glDrawElementsInstancedARB :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> IO ())
+ptr_glDrawElementsInstancedARB = unsafePerformIO $ getCommand "glDrawElementsInstancedARB"
+
+-- glDrawElementsInstancedBaseInstance -----------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glDrawElementsInstancedBaseInstance.xhtml OpenGL 4.x>.
+glDrawElementsInstancedBaseInstance
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> GLsizei -- ^ @count@.
+  -> GLenum -- ^ @type@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> Ptr a -- ^ @indices@ pointing to @count@ elements of type @a@.
+  -> GLsizei -- ^ @instancecount@.
+  -> GLuint -- ^ @baseinstance@.
+  -> m ()
+glDrawElementsInstancedBaseInstance v1 v2 v3 v4 v5 v6 = liftIO $ dyn252 ptr_glDrawElementsInstancedBaseInstance v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glDrawElementsInstancedBaseInstance #-}
+ptr_glDrawElementsInstancedBaseInstance :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLuint -> IO ())
+ptr_glDrawElementsInstancedBaseInstance = unsafePerformIO $ getCommand "glDrawElementsInstancedBaseInstance"
+
+-- glDrawElementsInstancedBaseInstanceEXT --------------------------------------
+
+-- | This command is an alias for 'glDrawElementsInstancedBaseInstance'.
+glDrawElementsInstancedBaseInstanceEXT
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> GLsizei -- ^ @count@.
+  -> GLenum -- ^ @type@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> Ptr a -- ^ @indices@ pointing to @count@ elements of type @a@.
+  -> GLsizei -- ^ @instancecount@.
+  -> GLuint -- ^ @baseinstance@.
+  -> m ()
+glDrawElementsInstancedBaseInstanceEXT v1 v2 v3 v4 v5 v6 = liftIO $ dyn252 ptr_glDrawElementsInstancedBaseInstanceEXT v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glDrawElementsInstancedBaseInstanceEXT #-}
+ptr_glDrawElementsInstancedBaseInstanceEXT :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLuint -> IO ())
+ptr_glDrawElementsInstancedBaseInstanceEXT = unsafePerformIO $ getCommand "glDrawElementsInstancedBaseInstanceEXT"
+
+-- glDrawElementsInstancedBaseVertex -------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glDrawElementsInstancedBaseVertex.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glDrawElementsInstancedBaseVertex.xhtml OpenGL 4.x>.
+glDrawElementsInstancedBaseVertex
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> GLsizei -- ^ @count@.
+  -> GLenum -- ^ @type@ of type [DrawElementsType](Graphics-GL-Groups.html#DrawElementsType).
+  -> Ptr a -- ^ @indices@ pointing to @COMPSIZE(count,type)@ elements of type @a@.
+  -> GLsizei -- ^ @instancecount@.
+  -> GLint -- ^ @basevertex@.
+  -> m ()
+glDrawElementsInstancedBaseVertex v1 v2 v3 v4 v5 v6 = liftIO $ dyn253 ptr_glDrawElementsInstancedBaseVertex v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glDrawElementsInstancedBaseVertex #-}
+ptr_glDrawElementsInstancedBaseVertex :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLint -> IO ())
+ptr_glDrawElementsInstancedBaseVertex = unsafePerformIO $ getCommand "glDrawElementsInstancedBaseVertex"
+
+-- glDrawElementsInstancedBaseVertexBaseInstance -------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glDrawElementsInstancedBaseVertexBaseInstance.xhtml OpenGL 4.x>.
+glDrawElementsInstancedBaseVertexBaseInstance
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> GLsizei -- ^ @count@.
+  -> GLenum -- ^ @type@ of type [DrawElementsType](Graphics-GL-Groups.html#DrawElementsType).
+  -> Ptr a -- ^ @indices@ pointing to @count@ elements of type @a@.
+  -> GLsizei -- ^ @instancecount@.
+  -> GLint -- ^ @basevertex@.
+  -> GLuint -- ^ @baseinstance@.
+  -> m ()
+glDrawElementsInstancedBaseVertexBaseInstance v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn254 ptr_glDrawElementsInstancedBaseVertexBaseInstance v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glDrawElementsInstancedBaseVertexBaseInstance #-}
+ptr_glDrawElementsInstancedBaseVertexBaseInstance :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLint -> GLuint -> IO ())
+ptr_glDrawElementsInstancedBaseVertexBaseInstance = unsafePerformIO $ getCommand "glDrawElementsInstancedBaseVertexBaseInstance"
+
+-- glDrawElementsInstancedBaseVertexBaseInstanceEXT ----------------------------
+
+-- | This command is an alias for 'glDrawElementsInstancedBaseVertexBaseInstance'.
+glDrawElementsInstancedBaseVertexBaseInstanceEXT
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> GLsizei -- ^ @count@.
+  -> GLenum -- ^ @type@ of type [DrawElementsType](Graphics-GL-Groups.html#DrawElementsType).
+  -> Ptr a -- ^ @indices@ pointing to @count@ elements of type @a@.
+  -> GLsizei -- ^ @instancecount@.
+  -> GLint -- ^ @basevertex@.
+  -> GLuint -- ^ @baseinstance@.
+  -> m ()
+glDrawElementsInstancedBaseVertexBaseInstanceEXT v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn254 ptr_glDrawElementsInstancedBaseVertexBaseInstanceEXT v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glDrawElementsInstancedBaseVertexBaseInstanceEXT #-}
+ptr_glDrawElementsInstancedBaseVertexBaseInstanceEXT :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLint -> GLuint -> IO ())
+ptr_glDrawElementsInstancedBaseVertexBaseInstanceEXT = unsafePerformIO $ getCommand "glDrawElementsInstancedBaseVertexBaseInstanceEXT"
+
+-- glDrawElementsInstancedBaseVertexEXT ----------------------------------------
+
+-- | This command is an alias for 'glDrawElementsInstancedBaseVertex'.
+glDrawElementsInstancedBaseVertexEXT
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> GLsizei -- ^ @count@.
+  -> GLenum -- ^ @type@ of type [DrawElementsType](Graphics-GL-Groups.html#DrawElementsType).
+  -> Ptr a -- ^ @indices@ pointing to @COMPSIZE(count,type)@ elements of type @a@.
+  -> GLsizei -- ^ @instancecount@.
+  -> GLint -- ^ @basevertex@.
+  -> m ()
+glDrawElementsInstancedBaseVertexEXT v1 v2 v3 v4 v5 v6 = liftIO $ dyn253 ptr_glDrawElementsInstancedBaseVertexEXT v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glDrawElementsInstancedBaseVertexEXT #-}
+ptr_glDrawElementsInstancedBaseVertexEXT :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLint -> IO ())
+ptr_glDrawElementsInstancedBaseVertexEXT = unsafePerformIO $ getCommand "glDrawElementsInstancedBaseVertexEXT"
+
+-- glDrawElementsInstancedBaseVertexOES ----------------------------------------
+
+-- | This command is an alias for 'glDrawElementsInstancedBaseVertex'.
+glDrawElementsInstancedBaseVertexOES
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> GLsizei -- ^ @count@.
+  -> GLenum -- ^ @type@ of type [DrawElementsType](Graphics-GL-Groups.html#DrawElementsType).
+  -> Ptr a -- ^ @indices@ pointing to @COMPSIZE(count,type)@ elements of type @a@.
+  -> GLsizei -- ^ @instancecount@.
+  -> GLint -- ^ @basevertex@.
+  -> m ()
+glDrawElementsInstancedBaseVertexOES v1 v2 v3 v4 v5 v6 = liftIO $ dyn253 ptr_glDrawElementsInstancedBaseVertexOES v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glDrawElementsInstancedBaseVertexOES #-}
+ptr_glDrawElementsInstancedBaseVertexOES :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLint -> IO ())
+ptr_glDrawElementsInstancedBaseVertexOES = unsafePerformIO $ getCommand "glDrawElementsInstancedBaseVertexOES"
+
+-- glDrawElementsInstancedEXT --------------------------------------------------
+
+-- | This command is an alias for 'glDrawElementsInstanced'.
+glDrawElementsInstancedEXT
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> GLsizei -- ^ @count@.
+  -> GLenum -- ^ @type@ of type [DrawElementsType](Graphics-GL-Groups.html#DrawElementsType).
+  -> Ptr a -- ^ @indices@ pointing to @COMPSIZE(count,type)@ elements of type @a@.
+  -> GLsizei -- ^ @primcount@.
+  -> m ()
+glDrawElementsInstancedEXT v1 v2 v3 v4 v5 = liftIO $ dyn251 ptr_glDrawElementsInstancedEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glDrawElementsInstancedEXT #-}
+ptr_glDrawElementsInstancedEXT :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> IO ())
+ptr_glDrawElementsInstancedEXT = unsafePerformIO $ getCommand "glDrawElementsInstancedEXT"
+
+-- glDrawElementsInstancedNV ---------------------------------------------------
+
+-- | This command is an alias for 'glDrawElementsInstanced'.
+glDrawElementsInstancedNV
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> GLsizei -- ^ @count@.
+  -> GLenum -- ^ @type@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> Ptr a -- ^ @indices@ pointing to @COMPSIZE(count,type)@ elements of type @a@.
+  -> GLsizei -- ^ @primcount@.
+  -> m ()
+glDrawElementsInstancedNV v1 v2 v3 v4 v5 = liftIO $ dyn251 ptr_glDrawElementsInstancedNV v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glDrawElementsInstancedNV #-}
+ptr_glDrawElementsInstancedNV :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> IO ())
+ptr_glDrawElementsInstancedNV = unsafePerformIO $ getCommand "glDrawElementsInstancedNV"
+
+-- glDrawMeshArraysSUN ---------------------------------------------------------
+
+glDrawMeshArraysSUN
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> GLint -- ^ @first@.
+  -> GLsizei -- ^ @count@.
+  -> GLsizei -- ^ @width@.
+  -> m ()
+glDrawMeshArraysSUN v1 v2 v3 v4 = liftIO $ dyn239 ptr_glDrawMeshArraysSUN v1 v2 v3 v4
+
+{-# NOINLINE ptr_glDrawMeshArraysSUN #-}
+ptr_glDrawMeshArraysSUN :: FunPtr (GLenum -> GLint -> GLsizei -> GLsizei -> IO ())
+ptr_glDrawMeshArraysSUN = unsafePerformIO $ getCommand "glDrawMeshArraysSUN"
+
+-- glDrawMeshTasksIndirectNV ---------------------------------------------------
+
+glDrawMeshTasksIndirectNV
+  :: MonadIO m
+  => GLintptr -- ^ @indirect@.
+  -> m ()
+glDrawMeshTasksIndirectNV v1 = liftIO $ dyn236 ptr_glDrawMeshTasksIndirectNV v1
+
+{-# NOINLINE ptr_glDrawMeshTasksIndirectNV #-}
+ptr_glDrawMeshTasksIndirectNV :: FunPtr (GLintptr -> IO ())
+ptr_glDrawMeshTasksIndirectNV = unsafePerformIO $ getCommand "glDrawMeshTasksIndirectNV"
+
+-- glDrawMeshTasksNV -----------------------------------------------------------
+
+glDrawMeshTasksNV
+  :: MonadIO m
+  => GLuint -- ^ @first@.
+  -> GLuint -- ^ @count@.
+  -> m ()
+glDrawMeshTasksNV v1 v2 = liftIO $ dyn4 ptr_glDrawMeshTasksNV v1 v2
+
+{-# NOINLINE ptr_glDrawMeshTasksNV #-}
+ptr_glDrawMeshTasksNV :: FunPtr (GLuint -> GLuint -> IO ())
+ptr_glDrawMeshTasksNV = unsafePerformIO $ getCommand "glDrawMeshTasksNV"
+
+-- glDrawPixels ----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glDrawPixels.xml OpenGL 2.x>.
+glDrawPixels
+  :: MonadIO m
+  => GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @pixels@ pointing to @COMPSIZE(format,type,width,height)@ elements of type @a@.
+  -> m ()
+glDrawPixels v1 v2 v3 v4 v5 = liftIO $ dyn255 ptr_glDrawPixels v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glDrawPixels #-}
+ptr_glDrawPixels :: FunPtr (GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glDrawPixels = unsafePerformIO $ getCommand "glDrawPixels"
+
+-- glDrawRangeElementArrayAPPLE ------------------------------------------------
+
+glDrawRangeElementArrayAPPLE
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> GLuint -- ^ @start@.
+  -> GLuint -- ^ @end@.
+  -> GLint -- ^ @first@.
+  -> GLsizei -- ^ @count@.
+  -> m ()
+glDrawRangeElementArrayAPPLE v1 v2 v3 v4 v5 = liftIO $ dyn256 ptr_glDrawRangeElementArrayAPPLE v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glDrawRangeElementArrayAPPLE #-}
+ptr_glDrawRangeElementArrayAPPLE :: FunPtr (GLenum -> GLuint -> GLuint -> GLint -> GLsizei -> IO ())
+ptr_glDrawRangeElementArrayAPPLE = unsafePerformIO $ getCommand "glDrawRangeElementArrayAPPLE"
+
+-- glDrawRangeElementArrayATI --------------------------------------------------
+
+glDrawRangeElementArrayATI
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> GLuint -- ^ @start@.
+  -> GLuint -- ^ @end@.
+  -> GLsizei -- ^ @count@.
+  -> m ()
+glDrawRangeElementArrayATI v1 v2 v3 v4 = liftIO $ dyn257 ptr_glDrawRangeElementArrayATI v1 v2 v3 v4
+
+{-# NOINLINE ptr_glDrawRangeElementArrayATI #-}
+ptr_glDrawRangeElementArrayATI :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> IO ())
+ptr_glDrawRangeElementArrayATI = unsafePerformIO $ getCommand "glDrawRangeElementArrayATI"
+
+-- glDrawRangeElements ---------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glDrawRangeElements.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glDrawRangeElements.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glDrawRangeElements.xhtml OpenGL 4.x>.
+glDrawRangeElements
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> GLuint -- ^ @start@.
+  -> GLuint -- ^ @end@.
+  -> GLsizei -- ^ @count@.
+  -> GLenum -- ^ @type@ of type [DrawElementsType](Graphics-GL-Groups.html#DrawElementsType).
+  -> Ptr a -- ^ @indices@ pointing to @COMPSIZE(count,type)@ elements of type @a@.
+  -> m ()
+glDrawRangeElements v1 v2 v3 v4 v5 v6 = liftIO $ dyn258 ptr_glDrawRangeElements v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glDrawRangeElements #-}
+ptr_glDrawRangeElements :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> IO ())
+ptr_glDrawRangeElements = unsafePerformIO $ getCommand "glDrawRangeElements"
+
+-- glDrawRangeElementsBaseVertex -----------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glDrawRangeElementsBaseVertex.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glDrawRangeElementsBaseVertex.xhtml OpenGL 4.x>.
+glDrawRangeElementsBaseVertex
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> GLuint -- ^ @start@.
+  -> GLuint -- ^ @end@.
+  -> GLsizei -- ^ @count@.
+  -> GLenum -- ^ @type@ of type [DrawElementsType](Graphics-GL-Groups.html#DrawElementsType).
+  -> Ptr a -- ^ @indices@ pointing to @COMPSIZE(count,type)@ elements of type @a@.
+  -> GLint -- ^ @basevertex@.
+  -> m ()
+glDrawRangeElementsBaseVertex v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn259 ptr_glDrawRangeElementsBaseVertex v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glDrawRangeElementsBaseVertex #-}
+ptr_glDrawRangeElementsBaseVertex :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> GLint -> IO ())
+ptr_glDrawRangeElementsBaseVertex = unsafePerformIO $ getCommand "glDrawRangeElementsBaseVertex"
+
+-- glDrawRangeElementsBaseVertexEXT --------------------------------------------
+
+-- | This command is an alias for 'glDrawRangeElementsBaseVertex'.
+glDrawRangeElementsBaseVertexEXT
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> GLuint -- ^ @start@.
+  -> GLuint -- ^ @end@.
+  -> GLsizei -- ^ @count@.
+  -> GLenum -- ^ @type@ of type [DrawElementsType](Graphics-GL-Groups.html#DrawElementsType).
+  -> Ptr a -- ^ @indices@ pointing to @COMPSIZE(count,type)@ elements of type @a@.
+  -> GLint -- ^ @basevertex@.
+  -> m ()
+glDrawRangeElementsBaseVertexEXT v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn259 ptr_glDrawRangeElementsBaseVertexEXT v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glDrawRangeElementsBaseVertexEXT #-}
+ptr_glDrawRangeElementsBaseVertexEXT :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> GLint -> IO ())
+ptr_glDrawRangeElementsBaseVertexEXT = unsafePerformIO $ getCommand "glDrawRangeElementsBaseVertexEXT"
+
+-- glDrawRangeElementsBaseVertexOES --------------------------------------------
+
+-- | This command is an alias for 'glDrawRangeElementsBaseVertex'.
+glDrawRangeElementsBaseVertexOES
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> GLuint -- ^ @start@.
+  -> GLuint -- ^ @end@.
+  -> GLsizei -- ^ @count@.
+  -> GLenum -- ^ @type@ of type [DrawElementsType](Graphics-GL-Groups.html#DrawElementsType).
+  -> Ptr a -- ^ @indices@ pointing to @COMPSIZE(count,type)@ elements of type @a@.
+  -> GLint -- ^ @basevertex@.
+  -> m ()
+glDrawRangeElementsBaseVertexOES v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn259 ptr_glDrawRangeElementsBaseVertexOES v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glDrawRangeElementsBaseVertexOES #-}
+ptr_glDrawRangeElementsBaseVertexOES :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> GLint -> IO ())
+ptr_glDrawRangeElementsBaseVertexOES = unsafePerformIO $ getCommand "glDrawRangeElementsBaseVertexOES"
+
+-- glDrawRangeElementsEXT ------------------------------------------------------
+
+-- | This command is an alias for 'glDrawRangeElements'.
+glDrawRangeElementsEXT
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> GLuint -- ^ @start@.
+  -> GLuint -- ^ @end@.
+  -> GLsizei -- ^ @count@.
+  -> GLenum -- ^ @type@ of type [DrawElementsType](Graphics-GL-Groups.html#DrawElementsType).
+  -> Ptr a -- ^ @indices@ pointing to @COMPSIZE(count,type)@ elements of type @a@.
+  -> m ()
+glDrawRangeElementsEXT v1 v2 v3 v4 v5 v6 = liftIO $ dyn258 ptr_glDrawRangeElementsEXT v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glDrawRangeElementsEXT #-}
+ptr_glDrawRangeElementsEXT :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> IO ())
+ptr_glDrawRangeElementsEXT = unsafePerformIO $ getCommand "glDrawRangeElementsEXT"
+
+-- glDrawTexfOES ---------------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glDrawTexfvOES'.
+glDrawTexfOES
+  :: MonadIO m
+  => GLfloat -- ^ @x@.
+  -> GLfloat -- ^ @y@.
+  -> GLfloat -- ^ @z@.
+  -> GLfloat -- ^ @width@.
+  -> GLfloat -- ^ @height@.
+  -> m ()
+glDrawTexfOES v1 v2 v3 v4 v5 = liftIO $ dyn260 ptr_glDrawTexfOES v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glDrawTexfOES #-}
+ptr_glDrawTexfOES :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glDrawTexfOES = unsafePerformIO $ getCommand "glDrawTexfOES"
+
+-- glDrawTexfvOES --------------------------------------------------------------
+
+glDrawTexfvOES
+  :: MonadIO m
+  => Ptr GLfloat -- ^ @coords@ pointing to @5@ elements of type @GLfloat@.
+  -> m ()
+glDrawTexfvOES v1 = liftIO $ dyn44 ptr_glDrawTexfvOES v1
+
+{-# NOINLINE ptr_glDrawTexfvOES #-}
+ptr_glDrawTexfvOES :: FunPtr (Ptr GLfloat -> IO ())
+ptr_glDrawTexfvOES = unsafePerformIO $ getCommand "glDrawTexfvOES"
+
+-- glDrawTexiOES ---------------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glDrawTexivOES'.
+glDrawTexiOES
+  :: MonadIO m
+  => GLint -- ^ @x@.
+  -> GLint -- ^ @y@.
+  -> GLint -- ^ @z@.
+  -> GLint -- ^ @width@.
+  -> GLint -- ^ @height@.
+  -> m ()
+glDrawTexiOES v1 v2 v3 v4 v5 = liftIO $ dyn261 ptr_glDrawTexiOES v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glDrawTexiOES #-}
+ptr_glDrawTexiOES :: FunPtr (GLint -> GLint -> GLint -> GLint -> GLint -> IO ())
+ptr_glDrawTexiOES = unsafePerformIO $ getCommand "glDrawTexiOES"
+
+-- glDrawTexivOES --------------------------------------------------------------
+
+glDrawTexivOES
+  :: MonadIO m
+  => Ptr GLint -- ^ @coords@ pointing to @5@ elements of type @GLint@.
+  -> m ()
+glDrawTexivOES v1 = liftIO $ dyn46 ptr_glDrawTexivOES v1
+
+{-# NOINLINE ptr_glDrawTexivOES #-}
+ptr_glDrawTexivOES :: FunPtr (Ptr GLint -> IO ())
+ptr_glDrawTexivOES = unsafePerformIO $ getCommand "glDrawTexivOES"
+
+-- glDrawTexsOES ---------------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glDrawTexsvOES'.
+glDrawTexsOES
+  :: MonadIO m
+  => GLshort -- ^ @x@.
+  -> GLshort -- ^ @y@.
+  -> GLshort -- ^ @z@.
+  -> GLshort -- ^ @width@.
+  -> GLshort -- ^ @height@.
+  -> m ()
+glDrawTexsOES v1 v2 v3 v4 v5 = liftIO $ dyn262 ptr_glDrawTexsOES v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glDrawTexsOES #-}
+ptr_glDrawTexsOES :: FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> GLshort -> IO ())
+ptr_glDrawTexsOES = unsafePerformIO $ getCommand "glDrawTexsOES"
+
+-- glDrawTexsvOES --------------------------------------------------------------
+
+glDrawTexsvOES
+  :: MonadIO m
+  => Ptr GLshort -- ^ @coords@ pointing to @5@ elements of type @GLshort@.
+  -> m ()
+glDrawTexsvOES v1 = liftIO $ dyn48 ptr_glDrawTexsvOES v1
+
+{-# NOINLINE ptr_glDrawTexsvOES #-}
+ptr_glDrawTexsvOES :: FunPtr (Ptr GLshort -> IO ())
+ptr_glDrawTexsvOES = unsafePerformIO $ getCommand "glDrawTexsvOES"
+
+-- glDrawTextureNV -------------------------------------------------------------
+
+glDrawTextureNV
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLuint -- ^ @sampler@.
+  -> GLfloat -- ^ @x0@.
+  -> GLfloat -- ^ @y0@.
+  -> GLfloat -- ^ @x1@.
+  -> GLfloat -- ^ @y1@.
+  -> GLfloat -- ^ @z@.
+  -> GLfloat -- ^ @s0@.
+  -> GLfloat -- ^ @t0@.
+  -> GLfloat -- ^ @s1@.
+  -> GLfloat -- ^ @t1@.
+  -> m ()
+glDrawTextureNV v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 = liftIO $ dyn263 ptr_glDrawTextureNV v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11
+
+{-# NOINLINE ptr_glDrawTextureNV #-}
+ptr_glDrawTextureNV :: FunPtr (GLuint -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glDrawTextureNV = unsafePerformIO $ getCommand "glDrawTextureNV"
+
diff --git a/src/Graphics/GL/Functions/F07.hs b/src/Graphics/GL/Functions/F07.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Functions/F07.hs
@@ -0,0 +1,1468 @@
+{-# OPTIONS_HADDOCK hide #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Functions.F07
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- Raw functions from the
+-- <http://www.opengl.org/registry/ OpenGL registry>.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Functions.F07 (
+  glDrawTexxOES,
+  glDrawTexxvOES,
+  glDrawTransformFeedback,
+  glDrawTransformFeedbackEXT,
+  glDrawTransformFeedbackInstanced,
+  glDrawTransformFeedbackInstancedEXT,
+  glDrawTransformFeedbackNV,
+  glDrawTransformFeedbackStream,
+  glDrawTransformFeedbackStreamInstanced,
+  glDrawVkImageNV,
+  glEGLImageTargetRenderbufferStorageOES,
+  glEGLImageTargetTexStorageEXT,
+  glEGLImageTargetTexture2DOES,
+  glEGLImageTargetTextureStorageEXT,
+  glEdgeFlag,
+  glEdgeFlagFormatNV,
+  glEdgeFlagPointer,
+  glEdgeFlagPointerEXT,
+  glEdgeFlagPointerListIBM,
+  glEdgeFlagv,
+  glElementPointerAPPLE,
+  glElementPointerATI,
+  glEnable,
+  glEnableClientState,
+  glEnableClientStateIndexedEXT,
+  glEnableClientStateiEXT,
+  glEnableDriverControlQCOM,
+  glEnableIndexedEXT,
+  glEnableVariantClientStateEXT,
+  glEnableVertexArrayAttrib,
+  glEnableVertexArrayAttribEXT,
+  glEnableVertexArrayEXT,
+  glEnableVertexAttribAPPLE,
+  glEnableVertexAttribArray,
+  glEnableVertexAttribArrayARB,
+  glEnablei,
+  glEnableiEXT,
+  glEnableiNV,
+  glEnableiOES,
+  glEnd,
+  glEndConditionalRender,
+  glEndConditionalRenderNV,
+  glEndConditionalRenderNVX,
+  glEndFragmentShaderATI,
+  glEndList,
+  glEndOcclusionQueryNV,
+  glEndPerfMonitorAMD,
+  glEndPerfQueryINTEL,
+  glEndQuery,
+  glEndQueryARB,
+  glEndQueryEXT,
+  glEndQueryIndexed,
+  glEndTilingQCOM,
+  glEndTransformFeedback,
+  glEndTransformFeedbackEXT,
+  glEndTransformFeedbackNV,
+  glEndVertexShaderEXT,
+  glEndVideoCaptureNV,
+  glEvalCoord1d,
+  glEvalCoord1dv,
+  glEvalCoord1f,
+  glEvalCoord1fv,
+  glEvalCoord1xOES,
+  glEvalCoord1xvOES,
+  glEvalCoord2d,
+  glEvalCoord2dv,
+  glEvalCoord2f,
+  glEvalCoord2fv,
+  glEvalCoord2xOES,
+  glEvalCoord2xvOES,
+  glEvalMapsNV,
+  glEvalMesh1,
+  glEvalMesh2,
+  glEvalPoint1,
+  glEvalPoint2,
+  glEvaluateDepthValuesARB,
+  glExecuteProgramNV,
+  glExtGetBufferPointervQCOM,
+  glExtGetBuffersQCOM,
+  glExtGetFramebuffersQCOM,
+  glExtGetProgramBinarySourceQCOM,
+  glExtGetProgramsQCOM,
+  glExtGetRenderbuffersQCOM,
+  glExtGetShadersQCOM,
+  glExtGetTexLevelParameterivQCOM,
+  glExtGetTexSubImageQCOM,
+  glExtGetTexturesQCOM,
+  glExtIsProgramBinaryQCOM,
+  glExtTexObjectStateOverrideiQCOM,
+  glExtractComponentEXT,
+  glFeedbackBuffer,
+  glFeedbackBufferxOES,
+  glFenceSync,
+  glFenceSyncAPPLE,
+  glFinalCombinerInputNV,
+  glFinish,
+  glFinishAsyncSGIX,
+  glFinishFenceAPPLE,
+  glFinishFenceNV,
+  glFinishObjectAPPLE
+) where
+
+import Control.Monad.IO.Class ( MonadIO(..) )
+import Foreign.Ptr
+import Graphics.GL.Foreign
+import Graphics.GL.Types
+import System.IO.Unsafe ( unsafePerformIO )
+
+-- glDrawTexxOES ---------------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glDrawTexxvOES'.
+glDrawTexxOES
+  :: MonadIO m
+  => GLfixed -- ^ @x@.
+  -> GLfixed -- ^ @y@.
+  -> GLfixed -- ^ @z@.
+  -> GLfixed -- ^ @width@.
+  -> GLfixed -- ^ @height@.
+  -> m ()
+glDrawTexxOES v1 v2 v3 v4 v5 = liftIO $ dyn264 ptr_glDrawTexxOES v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glDrawTexxOES #-}
+ptr_glDrawTexxOES :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
+ptr_glDrawTexxOES = unsafePerformIO $ getCommand "glDrawTexxOES"
+
+-- glDrawTexxvOES --------------------------------------------------------------
+
+glDrawTexxvOES
+  :: MonadIO m
+  => Ptr GLfixed -- ^ @coords@ pointing to @5@ elements of type @GLfixed@.
+  -> m ()
+glDrawTexxvOES v1 = liftIO $ dyn114 ptr_glDrawTexxvOES v1
+
+{-# NOINLINE ptr_glDrawTexxvOES #-}
+ptr_glDrawTexxvOES :: FunPtr (Ptr GLfixed -> IO ())
+ptr_glDrawTexxvOES = unsafePerformIO $ getCommand "glDrawTexxvOES"
+
+-- glDrawTransformFeedback -----------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glDrawTransformFeedback.xhtml OpenGL 4.x>.
+glDrawTransformFeedback
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> GLuint -- ^ @id@.
+  -> m ()
+glDrawTransformFeedback v1 v2 = liftIO $ dyn19 ptr_glDrawTransformFeedback v1 v2
+
+{-# NOINLINE ptr_glDrawTransformFeedback #-}
+ptr_glDrawTransformFeedback :: FunPtr (GLenum -> GLuint -> IO ())
+ptr_glDrawTransformFeedback = unsafePerformIO $ getCommand "glDrawTransformFeedback"
+
+-- glDrawTransformFeedbackEXT --------------------------------------------------
+
+-- | This command is an alias for 'glDrawTransformFeedback'.
+glDrawTransformFeedbackEXT
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> GLuint -- ^ @id@.
+  -> m ()
+glDrawTransformFeedbackEXT v1 v2 = liftIO $ dyn19 ptr_glDrawTransformFeedbackEXT v1 v2
+
+{-# NOINLINE ptr_glDrawTransformFeedbackEXT #-}
+ptr_glDrawTransformFeedbackEXT :: FunPtr (GLenum -> GLuint -> IO ())
+ptr_glDrawTransformFeedbackEXT = unsafePerformIO $ getCommand "glDrawTransformFeedbackEXT"
+
+-- glDrawTransformFeedbackInstanced --------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glDrawTransformFeedbackInstanced.xhtml OpenGL 4.x>.
+glDrawTransformFeedbackInstanced
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> GLuint -- ^ @id@.
+  -> GLsizei -- ^ @instancecount@.
+  -> m ()
+glDrawTransformFeedbackInstanced v1 v2 v3 = liftIO $ dyn265 ptr_glDrawTransformFeedbackInstanced v1 v2 v3
+
+{-# NOINLINE ptr_glDrawTransformFeedbackInstanced #-}
+ptr_glDrawTransformFeedbackInstanced :: FunPtr (GLenum -> GLuint -> GLsizei -> IO ())
+ptr_glDrawTransformFeedbackInstanced = unsafePerformIO $ getCommand "glDrawTransformFeedbackInstanced"
+
+-- glDrawTransformFeedbackInstancedEXT -----------------------------------------
+
+-- | This command is an alias for 'glDrawTransformFeedbackInstanced'.
+glDrawTransformFeedbackInstancedEXT
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> GLuint -- ^ @id@.
+  -> GLsizei -- ^ @instancecount@.
+  -> m ()
+glDrawTransformFeedbackInstancedEXT v1 v2 v3 = liftIO $ dyn265 ptr_glDrawTransformFeedbackInstancedEXT v1 v2 v3
+
+{-# NOINLINE ptr_glDrawTransformFeedbackInstancedEXT #-}
+ptr_glDrawTransformFeedbackInstancedEXT :: FunPtr (GLenum -> GLuint -> GLsizei -> IO ())
+ptr_glDrawTransformFeedbackInstancedEXT = unsafePerformIO $ getCommand "glDrawTransformFeedbackInstancedEXT"
+
+-- glDrawTransformFeedbackNV ---------------------------------------------------
+
+-- | This command is an alias for 'glDrawTransformFeedback'.
+glDrawTransformFeedbackNV
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> GLuint -- ^ @id@.
+  -> m ()
+glDrawTransformFeedbackNV v1 v2 = liftIO $ dyn19 ptr_glDrawTransformFeedbackNV v1 v2
+
+{-# NOINLINE ptr_glDrawTransformFeedbackNV #-}
+ptr_glDrawTransformFeedbackNV :: FunPtr (GLenum -> GLuint -> IO ())
+ptr_glDrawTransformFeedbackNV = unsafePerformIO $ getCommand "glDrawTransformFeedbackNV"
+
+-- glDrawTransformFeedbackStream -----------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glDrawTransformFeedbackStream.xhtml OpenGL 4.x>.
+glDrawTransformFeedbackStream
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> GLuint -- ^ @id@.
+  -> GLuint -- ^ @stream@.
+  -> m ()
+glDrawTransformFeedbackStream v1 v2 v3 = liftIO $ dyn20 ptr_glDrawTransformFeedbackStream v1 v2 v3
+
+{-# NOINLINE ptr_glDrawTransformFeedbackStream #-}
+ptr_glDrawTransformFeedbackStream :: FunPtr (GLenum -> GLuint -> GLuint -> IO ())
+ptr_glDrawTransformFeedbackStream = unsafePerformIO $ getCommand "glDrawTransformFeedbackStream"
+
+-- glDrawTransformFeedbackStreamInstanced --------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glDrawTransformFeedbackStreamInstanced.xhtml OpenGL 4.x>.
+glDrawTransformFeedbackStreamInstanced
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> GLuint -- ^ @id@.
+  -> GLuint -- ^ @stream@.
+  -> GLsizei -- ^ @instancecount@.
+  -> m ()
+glDrawTransformFeedbackStreamInstanced v1 v2 v3 v4 = liftIO $ dyn257 ptr_glDrawTransformFeedbackStreamInstanced v1 v2 v3 v4
+
+{-# NOINLINE ptr_glDrawTransformFeedbackStreamInstanced #-}
+ptr_glDrawTransformFeedbackStreamInstanced :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> IO ())
+ptr_glDrawTransformFeedbackStreamInstanced = unsafePerformIO $ getCommand "glDrawTransformFeedbackStreamInstanced"
+
+-- glDrawVkImageNV -------------------------------------------------------------
+
+glDrawVkImageNV
+  :: MonadIO m
+  => GLuint64 -- ^ @vkImage@.
+  -> GLuint -- ^ @sampler@.
+  -> GLfloat -- ^ @x0@.
+  -> GLfloat -- ^ @y0@.
+  -> GLfloat -- ^ @x1@.
+  -> GLfloat -- ^ @y1@.
+  -> GLfloat -- ^ @z@.
+  -> GLfloat -- ^ @s0@.
+  -> GLfloat -- ^ @t0@.
+  -> GLfloat -- ^ @s1@.
+  -> GLfloat -- ^ @t1@.
+  -> m ()
+glDrawVkImageNV v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 = liftIO $ dyn266 ptr_glDrawVkImageNV v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11
+
+{-# NOINLINE ptr_glDrawVkImageNV #-}
+ptr_glDrawVkImageNV :: FunPtr (GLuint64 -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glDrawVkImageNV = unsafePerformIO $ getCommand "glDrawVkImageNV"
+
+-- glEGLImageTargetRenderbufferStorageOES --------------------------------------
+
+glEGLImageTargetRenderbufferStorageOES
+  :: MonadIO m
+  => GLenum -- ^ @target@.
+  -> GLeglImageOES -- ^ @image@.
+  -> m ()
+glEGLImageTargetRenderbufferStorageOES v1 v2 = liftIO $ dyn267 ptr_glEGLImageTargetRenderbufferStorageOES v1 v2
+
+{-# NOINLINE ptr_glEGLImageTargetRenderbufferStorageOES #-}
+ptr_glEGLImageTargetRenderbufferStorageOES :: FunPtr (GLenum -> GLeglImageOES -> IO ())
+ptr_glEGLImageTargetRenderbufferStorageOES = unsafePerformIO $ getCommand "glEGLImageTargetRenderbufferStorageOES"
+
+-- glEGLImageTargetTexStorageEXT -----------------------------------------------
+
+glEGLImageTargetTexStorageEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@.
+  -> GLeglImageOES -- ^ @image@.
+  -> Ptr GLint -- ^ @attrib_list@.
+  -> m ()
+glEGLImageTargetTexStorageEXT v1 v2 v3 = liftIO $ dyn268 ptr_glEGLImageTargetTexStorageEXT v1 v2 v3
+
+{-# NOINLINE ptr_glEGLImageTargetTexStorageEXT #-}
+ptr_glEGLImageTargetTexStorageEXT :: FunPtr (GLenum -> GLeglImageOES -> Ptr GLint -> IO ())
+ptr_glEGLImageTargetTexStorageEXT = unsafePerformIO $ getCommand "glEGLImageTargetTexStorageEXT"
+
+-- glEGLImageTargetTexture2DOES ------------------------------------------------
+
+glEGLImageTargetTexture2DOES
+  :: MonadIO m
+  => GLenum -- ^ @target@.
+  -> GLeglImageOES -- ^ @image@.
+  -> m ()
+glEGLImageTargetTexture2DOES v1 v2 = liftIO $ dyn267 ptr_glEGLImageTargetTexture2DOES v1 v2
+
+{-# NOINLINE ptr_glEGLImageTargetTexture2DOES #-}
+ptr_glEGLImageTargetTexture2DOES :: FunPtr (GLenum -> GLeglImageOES -> IO ())
+ptr_glEGLImageTargetTexture2DOES = unsafePerformIO $ getCommand "glEGLImageTargetTexture2DOES"
+
+-- glEGLImageTargetTextureStorageEXT -------------------------------------------
+
+glEGLImageTargetTextureStorageEXT
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLeglImageOES -- ^ @image@.
+  -> Ptr GLint -- ^ @attrib_list@.
+  -> m ()
+glEGLImageTargetTextureStorageEXT v1 v2 v3 = liftIO $ dyn269 ptr_glEGLImageTargetTextureStorageEXT v1 v2 v3
+
+{-# NOINLINE ptr_glEGLImageTargetTextureStorageEXT #-}
+ptr_glEGLImageTargetTextureStorageEXT :: FunPtr (GLuint -> GLeglImageOES -> Ptr GLint -> IO ())
+ptr_glEGLImageTargetTextureStorageEXT = unsafePerformIO $ getCommand "glEGLImageTargetTextureStorageEXT"
+
+-- glEdgeFlag ------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glEdgeFlag.xml OpenGL 2.x>. The vector equivalent of this command is 'glEdgeFlagv'.
+glEdgeFlag
+  :: MonadIO m
+  => GLboolean -- ^ @flag@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m ()
+glEdgeFlag v1 = liftIO $ dyn198 ptr_glEdgeFlag v1
+
+{-# NOINLINE ptr_glEdgeFlag #-}
+ptr_glEdgeFlag :: FunPtr (GLboolean -> IO ())
+ptr_glEdgeFlag = unsafePerformIO $ getCommand "glEdgeFlag"
+
+-- glEdgeFlagFormatNV ----------------------------------------------------------
+
+glEdgeFlagFormatNV
+  :: MonadIO m
+  => GLsizei -- ^ @stride@.
+  -> m ()
+glEdgeFlagFormatNV v1 = liftIO $ dyn270 ptr_glEdgeFlagFormatNV v1
+
+{-# NOINLINE ptr_glEdgeFlagFormatNV #-}
+ptr_glEdgeFlagFormatNV :: FunPtr (GLsizei -> IO ())
+ptr_glEdgeFlagFormatNV = unsafePerformIO $ getCommand "glEdgeFlagFormatNV"
+
+-- glEdgeFlagPointer -----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glEdgeFlagPointer.xml OpenGL 2.x>.
+glEdgeFlagPointer
+  :: MonadIO m
+  => GLsizei -- ^ @stride@.
+  -> Ptr a -- ^ @pointer@ pointing to @COMPSIZE(stride)@ elements of type @a@.
+  -> m ()
+glEdgeFlagPointer v1 v2 = liftIO $ dyn271 ptr_glEdgeFlagPointer v1 v2
+
+{-# NOINLINE ptr_glEdgeFlagPointer #-}
+ptr_glEdgeFlagPointer :: FunPtr (GLsizei -> Ptr a -> IO ())
+ptr_glEdgeFlagPointer = unsafePerformIO $ getCommand "glEdgeFlagPointer"
+
+-- glEdgeFlagPointerEXT --------------------------------------------------------
+
+glEdgeFlagPointerEXT
+  :: MonadIO m
+  => GLsizei -- ^ @stride@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLboolean -- ^ @pointer@ pointing to @COMPSIZE(stride,count)@ elements of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m ()
+glEdgeFlagPointerEXT v1 v2 v3 = liftIO $ dyn272 ptr_glEdgeFlagPointerEXT v1 v2 v3
+
+{-# NOINLINE ptr_glEdgeFlagPointerEXT #-}
+ptr_glEdgeFlagPointerEXT :: FunPtr (GLsizei -> GLsizei -> Ptr GLboolean -> IO ())
+ptr_glEdgeFlagPointerEXT = unsafePerformIO $ getCommand "glEdgeFlagPointerEXT"
+
+-- glEdgeFlagPointerListIBM ----------------------------------------------------
+
+glEdgeFlagPointerListIBM
+  :: MonadIO m
+  => GLint -- ^ @stride@.
+  -> Ptr (Ptr GLboolean) -- ^ @pointer@ pointing to @COMPSIZE(stride)@ elements of type @Ptr BooleanPointer@.
+  -> GLint -- ^ @ptrstride@.
+  -> m ()
+glEdgeFlagPointerListIBM v1 v2 v3 = liftIO $ dyn273 ptr_glEdgeFlagPointerListIBM v1 v2 v3
+
+{-# NOINLINE ptr_glEdgeFlagPointerListIBM #-}
+ptr_glEdgeFlagPointerListIBM :: FunPtr (GLint -> Ptr (Ptr GLboolean) -> GLint -> IO ())
+ptr_glEdgeFlagPointerListIBM = unsafePerformIO $ getCommand "glEdgeFlagPointerListIBM"
+
+-- glEdgeFlagv -----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glEdgeFlag.xml OpenGL 2.x>.
+glEdgeFlagv
+  :: MonadIO m
+  => Ptr GLboolean -- ^ @flag@ pointing to @1@ element of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m ()
+glEdgeFlagv v1 = liftIO $ dyn274 ptr_glEdgeFlagv v1
+
+{-# NOINLINE ptr_glEdgeFlagv #-}
+ptr_glEdgeFlagv :: FunPtr (Ptr GLboolean -> IO ())
+ptr_glEdgeFlagv = unsafePerformIO $ getCommand "glEdgeFlagv"
+
+-- glElementPointerAPPLE -------------------------------------------------------
+
+glElementPointerAPPLE
+  :: MonadIO m
+  => GLenum -- ^ @type@ of type [ElementPointerTypeATI](Graphics-GL-Groups.html#ElementPointerTypeATI).
+  -> Ptr a -- ^ @pointer@ pointing to @COMPSIZE(type)@ elements of type @a@.
+  -> m ()
+glElementPointerAPPLE v1 v2 = liftIO $ dyn238 ptr_glElementPointerAPPLE v1 v2
+
+{-# NOINLINE ptr_glElementPointerAPPLE #-}
+ptr_glElementPointerAPPLE :: FunPtr (GLenum -> Ptr a -> IO ())
+ptr_glElementPointerAPPLE = unsafePerformIO $ getCommand "glElementPointerAPPLE"
+
+-- glElementPointerATI ---------------------------------------------------------
+
+glElementPointerATI
+  :: MonadIO m
+  => GLenum -- ^ @type@ of type [ElementPointerTypeATI](Graphics-GL-Groups.html#ElementPointerTypeATI).
+  -> Ptr a -- ^ @pointer@ pointing to @COMPSIZE(type)@ elements of type @a@.
+  -> m ()
+glElementPointerATI v1 v2 = liftIO $ dyn238 ptr_glElementPointerATI v1 v2
+
+{-# NOINLINE ptr_glElementPointerATI #-}
+ptr_glElementPointerATI :: FunPtr (GLenum -> Ptr a -> IO ())
+ptr_glElementPointerATI = unsafePerformIO $ getCommand "glElementPointerATI"
+
+-- glEnable --------------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glEnable.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glEnable.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glEnable.xhtml OpenGL 4.x>.
+glEnable
+  :: MonadIO m
+  => GLenum -- ^ @cap@ of type [EnableCap](Graphics-GL-Groups.html#EnableCap).
+  -> m ()
+glEnable v1 = liftIO $ dyn5 ptr_glEnable v1
+
+{-# NOINLINE ptr_glEnable #-}
+ptr_glEnable :: FunPtr (GLenum -> IO ())
+ptr_glEnable = unsafePerformIO $ getCommand "glEnable"
+
+-- glEnableClientState ---------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glEnableClientState.xml OpenGL 2.x>.
+glEnableClientState
+  :: MonadIO m
+  => GLenum -- ^ @array@ of type [EnableCap](Graphics-GL-Groups.html#EnableCap).
+  -> m ()
+glEnableClientState v1 = liftIO $ dyn5 ptr_glEnableClientState v1
+
+{-# NOINLINE ptr_glEnableClientState #-}
+ptr_glEnableClientState :: FunPtr (GLenum -> IO ())
+ptr_glEnableClientState = unsafePerformIO $ getCommand "glEnableClientState"
+
+-- glEnableClientStateIndexedEXT -----------------------------------------------
+
+glEnableClientStateIndexedEXT
+  :: MonadIO m
+  => GLenum -- ^ @array@ of type [EnableCap](Graphics-GL-Groups.html#EnableCap).
+  -> GLuint -- ^ @index@.
+  -> m ()
+glEnableClientStateIndexedEXT v1 v2 = liftIO $ dyn19 ptr_glEnableClientStateIndexedEXT v1 v2
+
+{-# NOINLINE ptr_glEnableClientStateIndexedEXT #-}
+ptr_glEnableClientStateIndexedEXT :: FunPtr (GLenum -> GLuint -> IO ())
+ptr_glEnableClientStateIndexedEXT = unsafePerformIO $ getCommand "glEnableClientStateIndexedEXT"
+
+-- glEnableClientStateiEXT -----------------------------------------------------
+
+glEnableClientStateiEXT
+  :: MonadIO m
+  => GLenum -- ^ @array@ of type [EnableCap](Graphics-GL-Groups.html#EnableCap).
+  -> GLuint -- ^ @index@.
+  -> m ()
+glEnableClientStateiEXT v1 v2 = liftIO $ dyn19 ptr_glEnableClientStateiEXT v1 v2
+
+{-# NOINLINE ptr_glEnableClientStateiEXT #-}
+ptr_glEnableClientStateiEXT :: FunPtr (GLenum -> GLuint -> IO ())
+ptr_glEnableClientStateiEXT = unsafePerformIO $ getCommand "glEnableClientStateiEXT"
+
+-- glEnableDriverControlQCOM ---------------------------------------------------
+
+glEnableDriverControlQCOM
+  :: MonadIO m
+  => GLuint -- ^ @driverControl@.
+  -> m ()
+glEnableDriverControlQCOM v1 = liftIO $ dyn3 ptr_glEnableDriverControlQCOM v1
+
+{-# NOINLINE ptr_glEnableDriverControlQCOM #-}
+ptr_glEnableDriverControlQCOM :: FunPtr (GLuint -> IO ())
+ptr_glEnableDriverControlQCOM = unsafePerformIO $ getCommand "glEnableDriverControlQCOM"
+
+-- glEnableIndexedEXT ----------------------------------------------------------
+
+-- | This command is an alias for 'glEnablei'.
+glEnableIndexedEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [EnableCap](Graphics-GL-Groups.html#EnableCap).
+  -> GLuint -- ^ @index@.
+  -> m ()
+glEnableIndexedEXT v1 v2 = liftIO $ dyn19 ptr_glEnableIndexedEXT v1 v2
+
+{-# NOINLINE ptr_glEnableIndexedEXT #-}
+ptr_glEnableIndexedEXT :: FunPtr (GLenum -> GLuint -> IO ())
+ptr_glEnableIndexedEXT = unsafePerformIO $ getCommand "glEnableIndexedEXT"
+
+-- glEnableVariantClientStateEXT -----------------------------------------------
+
+glEnableVariantClientStateEXT
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> m ()
+glEnableVariantClientStateEXT v1 = liftIO $ dyn3 ptr_glEnableVariantClientStateEXT v1
+
+{-# NOINLINE ptr_glEnableVariantClientStateEXT #-}
+ptr_glEnableVariantClientStateEXT :: FunPtr (GLuint -> IO ())
+ptr_glEnableVariantClientStateEXT = unsafePerformIO $ getCommand "glEnableVariantClientStateEXT"
+
+-- glEnableVertexArrayAttrib ---------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glEnableVertexAttribArray.xhtml OpenGL 4.x>.
+glEnableVertexArrayAttrib
+  :: MonadIO m
+  => GLuint -- ^ @vaobj@.
+  -> GLuint -- ^ @index@.
+  -> m ()
+glEnableVertexArrayAttrib v1 v2 = liftIO $ dyn4 ptr_glEnableVertexArrayAttrib v1 v2
+
+{-# NOINLINE ptr_glEnableVertexArrayAttrib #-}
+ptr_glEnableVertexArrayAttrib :: FunPtr (GLuint -> GLuint -> IO ())
+ptr_glEnableVertexArrayAttrib = unsafePerformIO $ getCommand "glEnableVertexArrayAttrib"
+
+-- glEnableVertexArrayAttribEXT ------------------------------------------------
+
+glEnableVertexArrayAttribEXT
+  :: MonadIO m
+  => GLuint -- ^ @vaobj@.
+  -> GLuint -- ^ @index@.
+  -> m ()
+glEnableVertexArrayAttribEXT v1 v2 = liftIO $ dyn4 ptr_glEnableVertexArrayAttribEXT v1 v2
+
+{-# NOINLINE ptr_glEnableVertexArrayAttribEXT #-}
+ptr_glEnableVertexArrayAttribEXT :: FunPtr (GLuint -> GLuint -> IO ())
+ptr_glEnableVertexArrayAttribEXT = unsafePerformIO $ getCommand "glEnableVertexArrayAttribEXT"
+
+-- glEnableVertexArrayEXT ------------------------------------------------------
+
+glEnableVertexArrayEXT
+  :: MonadIO m
+  => GLuint -- ^ @vaobj@.
+  -> GLenum -- ^ @array@ of type [EnableCap](Graphics-GL-Groups.html#EnableCap).
+  -> m ()
+glEnableVertexArrayEXT v1 v2 = liftIO $ dyn18 ptr_glEnableVertexArrayEXT v1 v2
+
+{-# NOINLINE ptr_glEnableVertexArrayEXT #-}
+ptr_glEnableVertexArrayEXT :: FunPtr (GLuint -> GLenum -> IO ())
+ptr_glEnableVertexArrayEXT = unsafePerformIO $ getCommand "glEnableVertexArrayEXT"
+
+-- glEnableVertexAttribAPPLE ---------------------------------------------------
+
+glEnableVertexAttribAPPLE
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLenum -- ^ @pname@.
+  -> m ()
+glEnableVertexAttribAPPLE v1 v2 = liftIO $ dyn18 ptr_glEnableVertexAttribAPPLE v1 v2
+
+{-# NOINLINE ptr_glEnableVertexAttribAPPLE #-}
+ptr_glEnableVertexAttribAPPLE :: FunPtr (GLuint -> GLenum -> IO ())
+ptr_glEnableVertexAttribAPPLE = unsafePerformIO $ getCommand "glEnableVertexAttribAPPLE"
+
+-- glEnableVertexAttribArray ---------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glEnableVertexAttribArray.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glEnableVertexAttribArray.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glEnableVertexAttribArray.xhtml OpenGL 4.x>.
+glEnableVertexAttribArray
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> m ()
+glEnableVertexAttribArray v1 = liftIO $ dyn3 ptr_glEnableVertexAttribArray v1
+
+{-# NOINLINE ptr_glEnableVertexAttribArray #-}
+ptr_glEnableVertexAttribArray :: FunPtr (GLuint -> IO ())
+ptr_glEnableVertexAttribArray = unsafePerformIO $ getCommand "glEnableVertexAttribArray"
+
+-- glEnableVertexAttribArrayARB ------------------------------------------------
+
+-- | This command is an alias for 'glEnableVertexAttribArray'.
+glEnableVertexAttribArrayARB
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> m ()
+glEnableVertexAttribArrayARB v1 = liftIO $ dyn3 ptr_glEnableVertexAttribArrayARB v1
+
+{-# NOINLINE ptr_glEnableVertexAttribArrayARB #-}
+ptr_glEnableVertexAttribArrayARB :: FunPtr (GLuint -> IO ())
+ptr_glEnableVertexAttribArrayARB = unsafePerformIO $ getCommand "glEnableVertexAttribArrayARB"
+
+-- glEnablei -------------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glEnable.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glEnable.xhtml OpenGL 4.x>.
+glEnablei
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [EnableCap](Graphics-GL-Groups.html#EnableCap).
+  -> GLuint -- ^ @index@.
+  -> m ()
+glEnablei v1 v2 = liftIO $ dyn19 ptr_glEnablei v1 v2
+
+{-# NOINLINE ptr_glEnablei #-}
+ptr_glEnablei :: FunPtr (GLenum -> GLuint -> IO ())
+ptr_glEnablei = unsafePerformIO $ getCommand "glEnablei"
+
+-- glEnableiEXT ----------------------------------------------------------------
+
+-- | This command is an alias for 'glEnablei'.
+glEnableiEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [EnableCap](Graphics-GL-Groups.html#EnableCap).
+  -> GLuint -- ^ @index@.
+  -> m ()
+glEnableiEXT v1 v2 = liftIO $ dyn19 ptr_glEnableiEXT v1 v2
+
+{-# NOINLINE ptr_glEnableiEXT #-}
+ptr_glEnableiEXT :: FunPtr (GLenum -> GLuint -> IO ())
+ptr_glEnableiEXT = unsafePerformIO $ getCommand "glEnableiEXT"
+
+-- glEnableiNV -----------------------------------------------------------------
+
+-- | This command is an alias for 'glEnablei'.
+glEnableiNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [EnableCap](Graphics-GL-Groups.html#EnableCap).
+  -> GLuint -- ^ @index@.
+  -> m ()
+glEnableiNV v1 v2 = liftIO $ dyn19 ptr_glEnableiNV v1 v2
+
+{-# NOINLINE ptr_glEnableiNV #-}
+ptr_glEnableiNV :: FunPtr (GLenum -> GLuint -> IO ())
+ptr_glEnableiNV = unsafePerformIO $ getCommand "glEnableiNV"
+
+-- glEnableiOES ----------------------------------------------------------------
+
+-- | This command is an alias for 'glEnablei'.
+glEnableiOES
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [EnableCap](Graphics-GL-Groups.html#EnableCap).
+  -> GLuint -- ^ @index@.
+  -> m ()
+glEnableiOES v1 v2 = liftIO $ dyn19 ptr_glEnableiOES v1 v2
+
+{-# NOINLINE ptr_glEnableiOES #-}
+ptr_glEnableiOES :: FunPtr (GLenum -> GLuint -> IO ())
+ptr_glEnableiOES = unsafePerformIO $ getCommand "glEnableiOES"
+
+-- glEnd -----------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glBegin.xml OpenGL 2.x>.
+glEnd
+  :: MonadIO m
+  => m ()
+glEnd = liftIO $ dyn11 ptr_glEnd
+
+{-# NOINLINE ptr_glEnd #-}
+ptr_glEnd :: FunPtr (IO ())
+ptr_glEnd = unsafePerformIO $ getCommand "glEnd"
+
+-- glEndConditionalRender ------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glBeginConditionalRender.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glBeginConditionalRender.xhtml OpenGL 4.x>.
+glEndConditionalRender
+  :: MonadIO m
+  => m ()
+glEndConditionalRender = liftIO $ dyn11 ptr_glEndConditionalRender
+
+{-# NOINLINE ptr_glEndConditionalRender #-}
+ptr_glEndConditionalRender :: FunPtr (IO ())
+ptr_glEndConditionalRender = unsafePerformIO $ getCommand "glEndConditionalRender"
+
+-- glEndConditionalRenderNV ----------------------------------------------------
+
+-- | This command is an alias for 'glEndConditionalRender'.
+glEndConditionalRenderNV
+  :: MonadIO m
+  => m ()
+glEndConditionalRenderNV = liftIO $ dyn11 ptr_glEndConditionalRenderNV
+
+{-# NOINLINE ptr_glEndConditionalRenderNV #-}
+ptr_glEndConditionalRenderNV :: FunPtr (IO ())
+ptr_glEndConditionalRenderNV = unsafePerformIO $ getCommand "glEndConditionalRenderNV"
+
+-- glEndConditionalRenderNVX ---------------------------------------------------
+
+-- | This command is an alias for 'glEndConditionalRender'.
+glEndConditionalRenderNVX
+  :: MonadIO m
+  => m ()
+glEndConditionalRenderNVX = liftIO $ dyn11 ptr_glEndConditionalRenderNVX
+
+{-# NOINLINE ptr_glEndConditionalRenderNVX #-}
+ptr_glEndConditionalRenderNVX :: FunPtr (IO ())
+ptr_glEndConditionalRenderNVX = unsafePerformIO $ getCommand "glEndConditionalRenderNVX"
+
+-- glEndFragmentShaderATI ------------------------------------------------------
+
+glEndFragmentShaderATI
+  :: MonadIO m
+  => m ()
+glEndFragmentShaderATI = liftIO $ dyn11 ptr_glEndFragmentShaderATI
+
+{-# NOINLINE ptr_glEndFragmentShaderATI #-}
+ptr_glEndFragmentShaderATI :: FunPtr (IO ())
+ptr_glEndFragmentShaderATI = unsafePerformIO $ getCommand "glEndFragmentShaderATI"
+
+-- glEndList -------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glNewList.xml OpenGL 2.x>.
+glEndList
+  :: MonadIO m
+  => m ()
+glEndList = liftIO $ dyn11 ptr_glEndList
+
+{-# NOINLINE ptr_glEndList #-}
+ptr_glEndList :: FunPtr (IO ())
+ptr_glEndList = unsafePerformIO $ getCommand "glEndList"
+
+-- glEndOcclusionQueryNV -------------------------------------------------------
+
+glEndOcclusionQueryNV
+  :: MonadIO m
+  => m ()
+glEndOcclusionQueryNV = liftIO $ dyn11 ptr_glEndOcclusionQueryNV
+
+{-# NOINLINE ptr_glEndOcclusionQueryNV #-}
+ptr_glEndOcclusionQueryNV :: FunPtr (IO ())
+ptr_glEndOcclusionQueryNV = unsafePerformIO $ getCommand "glEndOcclusionQueryNV"
+
+-- glEndPerfMonitorAMD ---------------------------------------------------------
+
+glEndPerfMonitorAMD
+  :: MonadIO m
+  => GLuint -- ^ @monitor@.
+  -> m ()
+glEndPerfMonitorAMD v1 = liftIO $ dyn3 ptr_glEndPerfMonitorAMD v1
+
+{-# NOINLINE ptr_glEndPerfMonitorAMD #-}
+ptr_glEndPerfMonitorAMD :: FunPtr (GLuint -> IO ())
+ptr_glEndPerfMonitorAMD = unsafePerformIO $ getCommand "glEndPerfMonitorAMD"
+
+-- glEndPerfQueryINTEL ---------------------------------------------------------
+
+glEndPerfQueryINTEL
+  :: MonadIO m
+  => GLuint -- ^ @queryHandle@.
+  -> m ()
+glEndPerfQueryINTEL v1 = liftIO $ dyn3 ptr_glEndPerfQueryINTEL v1
+
+{-# NOINLINE ptr_glEndPerfQueryINTEL #-}
+ptr_glEndPerfQueryINTEL :: FunPtr (GLuint -> IO ())
+ptr_glEndPerfQueryINTEL = unsafePerformIO $ getCommand "glEndPerfQueryINTEL"
+
+-- glEndQuery ------------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glBeginQuery.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glBeginQuery.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glBeginQuery.xhtml OpenGL 4.x>.
+glEndQuery
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [QueryTarget](Graphics-GL-Groups.html#QueryTarget).
+  -> m ()
+glEndQuery v1 = liftIO $ dyn5 ptr_glEndQuery v1
+
+{-# NOINLINE ptr_glEndQuery #-}
+ptr_glEndQuery :: FunPtr (GLenum -> IO ())
+ptr_glEndQuery = unsafePerformIO $ getCommand "glEndQuery"
+
+-- glEndQueryARB ---------------------------------------------------------------
+
+-- | This command is an alias for 'glEndQuery'.
+glEndQueryARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [QueryTarget](Graphics-GL-Groups.html#QueryTarget).
+  -> m ()
+glEndQueryARB v1 = liftIO $ dyn5 ptr_glEndQueryARB v1
+
+{-# NOINLINE ptr_glEndQueryARB #-}
+ptr_glEndQueryARB :: FunPtr (GLenum -> IO ())
+ptr_glEndQueryARB = unsafePerformIO $ getCommand "glEndQueryARB"
+
+-- glEndQueryEXT ---------------------------------------------------------------
+
+glEndQueryEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [QueryTarget](Graphics-GL-Groups.html#QueryTarget).
+  -> m ()
+glEndQueryEXT v1 = liftIO $ dyn5 ptr_glEndQueryEXT v1
+
+{-# NOINLINE ptr_glEndQueryEXT #-}
+ptr_glEndQueryEXT :: FunPtr (GLenum -> IO ())
+ptr_glEndQueryEXT = unsafePerformIO $ getCommand "glEndQueryEXT"
+
+-- glEndQueryIndexed -----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glBeginQueryIndexed.xhtml OpenGL 4.x>.
+glEndQueryIndexed
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [QueryTarget](Graphics-GL-Groups.html#QueryTarget).
+  -> GLuint -- ^ @index@.
+  -> m ()
+glEndQueryIndexed v1 v2 = liftIO $ dyn19 ptr_glEndQueryIndexed v1 v2
+
+{-# NOINLINE ptr_glEndQueryIndexed #-}
+ptr_glEndQueryIndexed :: FunPtr (GLenum -> GLuint -> IO ())
+ptr_glEndQueryIndexed = unsafePerformIO $ getCommand "glEndQueryIndexed"
+
+-- glEndTilingQCOM -------------------------------------------------------------
+
+glEndTilingQCOM
+  :: MonadIO m
+  => GLbitfield -- ^ @preserveMask@ of type [BufferBitQCOM](Graphics-GL-Groups.html#BufferBitQCOM).
+  -> m ()
+glEndTilingQCOM v1 = liftIO $ dyn75 ptr_glEndTilingQCOM v1
+
+{-# NOINLINE ptr_glEndTilingQCOM #-}
+ptr_glEndTilingQCOM :: FunPtr (GLbitfield -> IO ())
+ptr_glEndTilingQCOM = unsafePerformIO $ getCommand "glEndTilingQCOM"
+
+-- glEndTransformFeedback ------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glBeginTransformFeedback.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glBeginTransformFeedback.xhtml OpenGL 4.x>.
+glEndTransformFeedback
+  :: MonadIO m
+  => m ()
+glEndTransformFeedback = liftIO $ dyn11 ptr_glEndTransformFeedback
+
+{-# NOINLINE ptr_glEndTransformFeedback #-}
+ptr_glEndTransformFeedback :: FunPtr (IO ())
+ptr_glEndTransformFeedback = unsafePerformIO $ getCommand "glEndTransformFeedback"
+
+-- glEndTransformFeedbackEXT ---------------------------------------------------
+
+-- | This command is an alias for 'glEndTransformFeedback'.
+glEndTransformFeedbackEXT
+  :: MonadIO m
+  => m ()
+glEndTransformFeedbackEXT = liftIO $ dyn11 ptr_glEndTransformFeedbackEXT
+
+{-# NOINLINE ptr_glEndTransformFeedbackEXT #-}
+ptr_glEndTransformFeedbackEXT :: FunPtr (IO ())
+ptr_glEndTransformFeedbackEXT = unsafePerformIO $ getCommand "glEndTransformFeedbackEXT"
+
+-- glEndTransformFeedbackNV ----------------------------------------------------
+
+-- | This command is an alias for 'glEndTransformFeedback'.
+glEndTransformFeedbackNV
+  :: MonadIO m
+  => m ()
+glEndTransformFeedbackNV = liftIO $ dyn11 ptr_glEndTransformFeedbackNV
+
+{-# NOINLINE ptr_glEndTransformFeedbackNV #-}
+ptr_glEndTransformFeedbackNV :: FunPtr (IO ())
+ptr_glEndTransformFeedbackNV = unsafePerformIO $ getCommand "glEndTransformFeedbackNV"
+
+-- glEndVertexShaderEXT --------------------------------------------------------
+
+glEndVertexShaderEXT
+  :: MonadIO m
+  => m ()
+glEndVertexShaderEXT = liftIO $ dyn11 ptr_glEndVertexShaderEXT
+
+{-# NOINLINE ptr_glEndVertexShaderEXT #-}
+ptr_glEndVertexShaderEXT :: FunPtr (IO ())
+ptr_glEndVertexShaderEXT = unsafePerformIO $ getCommand "glEndVertexShaderEXT"
+
+-- glEndVideoCaptureNV ---------------------------------------------------------
+
+glEndVideoCaptureNV
+  :: MonadIO m
+  => GLuint -- ^ @video_capture_slot@.
+  -> m ()
+glEndVideoCaptureNV v1 = liftIO $ dyn3 ptr_glEndVideoCaptureNV v1
+
+{-# NOINLINE ptr_glEndVideoCaptureNV #-}
+ptr_glEndVideoCaptureNV :: FunPtr (GLuint -> IO ())
+ptr_glEndVideoCaptureNV = unsafePerformIO $ getCommand "glEndVideoCaptureNV"
+
+-- glEvalCoord1d ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord.xml OpenGL 2.x>. The vector equivalent of this command is 'glEvalCoord1dv'.
+glEvalCoord1d
+  :: MonadIO m
+  => GLdouble -- ^ @u@ of type @CoordD@.
+  -> m ()
+glEvalCoord1d v1 = liftIO $ dyn84 ptr_glEvalCoord1d v1
+
+{-# NOINLINE ptr_glEvalCoord1d #-}
+ptr_glEvalCoord1d :: FunPtr (GLdouble -> IO ())
+ptr_glEvalCoord1d = unsafePerformIO $ getCommand "glEvalCoord1d"
+
+-- glEvalCoord1dv --------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord.xml OpenGL 2.x>.
+glEvalCoord1dv
+  :: MonadIO m
+  => Ptr GLdouble -- ^ @u@ pointing to @1@ element of type @CoordD@.
+  -> m ()
+glEvalCoord1dv v1 = liftIO $ dyn42 ptr_glEvalCoord1dv v1
+
+{-# NOINLINE ptr_glEvalCoord1dv #-}
+ptr_glEvalCoord1dv :: FunPtr (Ptr GLdouble -> IO ())
+ptr_glEvalCoord1dv = unsafePerformIO $ getCommand "glEvalCoord1dv"
+
+-- glEvalCoord1f ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord.xml OpenGL 2.x>. The vector equivalent of this command is 'glEvalCoord1fv'.
+glEvalCoord1f
+  :: MonadIO m
+  => GLfloat -- ^ @u@ of type @CoordF@.
+  -> m ()
+glEvalCoord1f v1 = liftIO $ dyn85 ptr_glEvalCoord1f v1
+
+{-# NOINLINE ptr_glEvalCoord1f #-}
+ptr_glEvalCoord1f :: FunPtr (GLfloat -> IO ())
+ptr_glEvalCoord1f = unsafePerformIO $ getCommand "glEvalCoord1f"
+
+-- glEvalCoord1fv --------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord.xml OpenGL 2.x>.
+glEvalCoord1fv
+  :: MonadIO m
+  => Ptr GLfloat -- ^ @u@ pointing to @1@ element of type @CoordF@.
+  -> m ()
+glEvalCoord1fv v1 = liftIO $ dyn44 ptr_glEvalCoord1fv v1
+
+{-# NOINLINE ptr_glEvalCoord1fv #-}
+ptr_glEvalCoord1fv :: FunPtr (Ptr GLfloat -> IO ())
+ptr_glEvalCoord1fv = unsafePerformIO $ getCommand "glEvalCoord1fv"
+
+-- glEvalCoord1xOES ------------------------------------------------------------
+
+glEvalCoord1xOES
+  :: MonadIO m
+  => GLfixed -- ^ @u@.
+  -> m ()
+glEvalCoord1xOES v1 = liftIO $ dyn87 ptr_glEvalCoord1xOES v1
+
+{-# NOINLINE ptr_glEvalCoord1xOES #-}
+ptr_glEvalCoord1xOES :: FunPtr (GLfixed -> IO ())
+ptr_glEvalCoord1xOES = unsafePerformIO $ getCommand "glEvalCoord1xOES"
+
+-- glEvalCoord1xvOES -----------------------------------------------------------
+
+glEvalCoord1xvOES
+  :: MonadIO m
+  => Ptr GLfixed -- ^ @coords@ pointing to @1@ element of type @GLfixed@.
+  -> m ()
+glEvalCoord1xvOES v1 = liftIO $ dyn114 ptr_glEvalCoord1xvOES v1
+
+{-# NOINLINE ptr_glEvalCoord1xvOES #-}
+ptr_glEvalCoord1xvOES :: FunPtr (Ptr GLfixed -> IO ())
+ptr_glEvalCoord1xvOES = unsafePerformIO $ getCommand "glEvalCoord1xvOES"
+
+-- glEvalCoord2d ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord.xml OpenGL 2.x>. The vector equivalent of this command is 'glEvalCoord2dv'.
+glEvalCoord2d
+  :: MonadIO m
+  => GLdouble -- ^ @u@ of type @CoordD@.
+  -> GLdouble -- ^ @v@ of type @CoordD@.
+  -> m ()
+glEvalCoord2d v1 v2 = liftIO $ dyn225 ptr_glEvalCoord2d v1 v2
+
+{-# NOINLINE ptr_glEvalCoord2d #-}
+ptr_glEvalCoord2d :: FunPtr (GLdouble -> GLdouble -> IO ())
+ptr_glEvalCoord2d = unsafePerformIO $ getCommand "glEvalCoord2d"
+
+-- glEvalCoord2dv --------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord.xml OpenGL 2.x>.
+glEvalCoord2dv
+  :: MonadIO m
+  => Ptr GLdouble -- ^ @u@ pointing to @2@ elements of type @CoordD@.
+  -> m ()
+glEvalCoord2dv v1 = liftIO $ dyn42 ptr_glEvalCoord2dv v1
+
+{-# NOINLINE ptr_glEvalCoord2dv #-}
+ptr_glEvalCoord2dv :: FunPtr (Ptr GLdouble -> IO ())
+ptr_glEvalCoord2dv = unsafePerformIO $ getCommand "glEvalCoord2dv"
+
+-- glEvalCoord2f ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord.xml OpenGL 2.x>. The vector equivalent of this command is 'glEvalCoord2fv'.
+glEvalCoord2f
+  :: MonadIO m
+  => GLfloat -- ^ @u@ of type @CoordF@.
+  -> GLfloat -- ^ @v@ of type @CoordF@.
+  -> m ()
+glEvalCoord2f v1 v2 = liftIO $ dyn230 ptr_glEvalCoord2f v1 v2
+
+{-# NOINLINE ptr_glEvalCoord2f #-}
+ptr_glEvalCoord2f :: FunPtr (GLfloat -> GLfloat -> IO ())
+ptr_glEvalCoord2f = unsafePerformIO $ getCommand "glEvalCoord2f"
+
+-- glEvalCoord2fv --------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord.xml OpenGL 2.x>.
+glEvalCoord2fv
+  :: MonadIO m
+  => Ptr GLfloat -- ^ @u@ pointing to @2@ elements of type @CoordF@.
+  -> m ()
+glEvalCoord2fv v1 = liftIO $ dyn44 ptr_glEvalCoord2fv v1
+
+{-# NOINLINE ptr_glEvalCoord2fv #-}
+ptr_glEvalCoord2fv :: FunPtr (Ptr GLfloat -> IO ())
+ptr_glEvalCoord2fv = unsafePerformIO $ getCommand "glEvalCoord2fv"
+
+-- glEvalCoord2xOES ------------------------------------------------------------
+
+glEvalCoord2xOES
+  :: MonadIO m
+  => GLfixed -- ^ @u@.
+  -> GLfixed -- ^ @v@.
+  -> m ()
+glEvalCoord2xOES v1 v2 = liftIO $ dyn232 ptr_glEvalCoord2xOES v1 v2
+
+{-# NOINLINE ptr_glEvalCoord2xOES #-}
+ptr_glEvalCoord2xOES :: FunPtr (GLfixed -> GLfixed -> IO ())
+ptr_glEvalCoord2xOES = unsafePerformIO $ getCommand "glEvalCoord2xOES"
+
+-- glEvalCoord2xvOES -----------------------------------------------------------
+
+glEvalCoord2xvOES
+  :: MonadIO m
+  => Ptr GLfixed -- ^ @coords@ pointing to @2@ elements of type @GLfixed@.
+  -> m ()
+glEvalCoord2xvOES v1 = liftIO $ dyn114 ptr_glEvalCoord2xvOES v1
+
+{-# NOINLINE ptr_glEvalCoord2xvOES #-}
+ptr_glEvalCoord2xvOES :: FunPtr (Ptr GLfixed -> IO ())
+ptr_glEvalCoord2xvOES = unsafePerformIO $ getCommand "glEvalCoord2xvOES"
+
+-- glEvalMapsNV ----------------------------------------------------------------
+
+glEvalMapsNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [EvalTargetNV](Graphics-GL-Groups.html#EvalTargetNV).
+  -> GLenum -- ^ @mode@ of type [EvalMapsModeNV](Graphics-GL-Groups.html#EvalMapsModeNV).
+  -> m ()
+glEvalMapsNV v1 v2 = liftIO $ dyn54 ptr_glEvalMapsNV v1 v2
+
+{-# NOINLINE ptr_glEvalMapsNV #-}
+ptr_glEvalMapsNV :: FunPtr (GLenum -> GLenum -> IO ())
+ptr_glEvalMapsNV = unsafePerformIO $ getCommand "glEvalMapsNV"
+
+-- glEvalMesh1 -----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glEvalMesh.xml OpenGL 2.x>.
+glEvalMesh1
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [MeshMode1](Graphics-GL-Groups.html#MeshMode1).
+  -> GLint -- ^ @i1@ of type @CheckedInt32@.
+  -> GLint -- ^ @i2@ of type @CheckedInt32@.
+  -> m ()
+glEvalMesh1 v1 v2 v3 = liftIO $ dyn275 ptr_glEvalMesh1 v1 v2 v3
+
+{-# NOINLINE ptr_glEvalMesh1 #-}
+ptr_glEvalMesh1 :: FunPtr (GLenum -> GLint -> GLint -> IO ())
+ptr_glEvalMesh1 = unsafePerformIO $ getCommand "glEvalMesh1"
+
+-- glEvalMesh2 -----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glEvalMesh.xml OpenGL 2.x>.
+glEvalMesh2
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [MeshMode2](Graphics-GL-Groups.html#MeshMode2).
+  -> GLint -- ^ @i1@ of type @CheckedInt32@.
+  -> GLint -- ^ @i2@ of type @CheckedInt32@.
+  -> GLint -- ^ @j1@ of type @CheckedInt32@.
+  -> GLint -- ^ @j2@ of type @CheckedInt32@.
+  -> m ()
+glEvalMesh2 v1 v2 v3 v4 v5 = liftIO $ dyn276 ptr_glEvalMesh2 v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glEvalMesh2 #-}
+ptr_glEvalMesh2 :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> IO ())
+ptr_glEvalMesh2 = unsafePerformIO $ getCommand "glEvalMesh2"
+
+-- glEvalPoint1 ----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glEvalPoint.xml OpenGL 2.x>.
+glEvalPoint1
+  :: MonadIO m
+  => GLint -- ^ @i@.
+  -> m ()
+glEvalPoint1 v1 = liftIO $ dyn13 ptr_glEvalPoint1 v1
+
+{-# NOINLINE ptr_glEvalPoint1 #-}
+ptr_glEvalPoint1 :: FunPtr (GLint -> IO ())
+ptr_glEvalPoint1 = unsafePerformIO $ getCommand "glEvalPoint1"
+
+-- glEvalPoint2 ----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glEvalPoint.xml OpenGL 2.x>.
+glEvalPoint2
+  :: MonadIO m
+  => GLint -- ^ @i@ of type @CheckedInt32@.
+  -> GLint -- ^ @j@ of type @CheckedInt32@.
+  -> m ()
+glEvalPoint2 v1 v2 = liftIO $ dyn277 ptr_glEvalPoint2 v1 v2
+
+{-# NOINLINE ptr_glEvalPoint2 #-}
+ptr_glEvalPoint2 :: FunPtr (GLint -> GLint -> IO ())
+ptr_glEvalPoint2 = unsafePerformIO $ getCommand "glEvalPoint2"
+
+-- glEvaluateDepthValuesARB ----------------------------------------------------
+
+glEvaluateDepthValuesARB
+  :: MonadIO m
+  => m ()
+glEvaluateDepthValuesARB = liftIO $ dyn11 ptr_glEvaluateDepthValuesARB
+
+{-# NOINLINE ptr_glEvaluateDepthValuesARB #-}
+ptr_glEvaluateDepthValuesARB :: FunPtr (IO ())
+ptr_glEvaluateDepthValuesARB = unsafePerformIO $ getCommand "glEvaluateDepthValuesARB"
+
+-- glExecuteProgramNV ----------------------------------------------------------
+
+glExecuteProgramNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [VertexAttribEnumNV](Graphics-GL-Groups.html#VertexAttribEnumNV).
+  -> GLuint -- ^ @id@.
+  -> Ptr GLfloat -- ^ @params@ pointing to @4@ elements of type @GLfloat@.
+  -> m ()
+glExecuteProgramNV v1 v2 v3 = liftIO $ dyn278 ptr_glExecuteProgramNV v1 v2 v3
+
+{-# NOINLINE ptr_glExecuteProgramNV #-}
+ptr_glExecuteProgramNV :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
+ptr_glExecuteProgramNV = unsafePerformIO $ getCommand "glExecuteProgramNV"
+
+-- glExtGetBufferPointervQCOM --------------------------------------------------
+
+glExtGetBufferPointervQCOM
+  :: MonadIO m
+  => GLenum -- ^ @target@.
+  -> Ptr (Ptr a) -- ^ @params@.
+  -> m ()
+glExtGetBufferPointervQCOM v1 v2 = liftIO $ dyn279 ptr_glExtGetBufferPointervQCOM v1 v2
+
+{-# NOINLINE ptr_glExtGetBufferPointervQCOM #-}
+ptr_glExtGetBufferPointervQCOM :: FunPtr (GLenum -> Ptr (Ptr a) -> IO ())
+ptr_glExtGetBufferPointervQCOM = unsafePerformIO $ getCommand "glExtGetBufferPointervQCOM"
+
+-- glExtGetBuffersQCOM ---------------------------------------------------------
+
+glExtGetBuffersQCOM
+  :: MonadIO m
+  => Ptr GLuint -- ^ @buffers@ pointing to @maxBuffers@ elements of type @GLuint@.
+  -> GLint -- ^ @maxBuffers@.
+  -> Ptr GLint -- ^ @numBuffers@ pointing to @1@ element of type @GLint@.
+  -> m ()
+glExtGetBuffersQCOM v1 v2 v3 = liftIO $ dyn280 ptr_glExtGetBuffersQCOM v1 v2 v3
+
+{-# NOINLINE ptr_glExtGetBuffersQCOM #-}
+ptr_glExtGetBuffersQCOM :: FunPtr (Ptr GLuint -> GLint -> Ptr GLint -> IO ())
+ptr_glExtGetBuffersQCOM = unsafePerformIO $ getCommand "glExtGetBuffersQCOM"
+
+-- glExtGetFramebuffersQCOM ----------------------------------------------------
+
+glExtGetFramebuffersQCOM
+  :: MonadIO m
+  => Ptr GLuint -- ^ @framebuffers@ pointing to @maxFramebuffers@ elements of type @GLuint@.
+  -> GLint -- ^ @maxFramebuffers@.
+  -> Ptr GLint -- ^ @numFramebuffers@ pointing to @1@ element of type @GLint@.
+  -> m ()
+glExtGetFramebuffersQCOM v1 v2 v3 = liftIO $ dyn280 ptr_glExtGetFramebuffersQCOM v1 v2 v3
+
+{-# NOINLINE ptr_glExtGetFramebuffersQCOM #-}
+ptr_glExtGetFramebuffersQCOM :: FunPtr (Ptr GLuint -> GLint -> Ptr GLint -> IO ())
+ptr_glExtGetFramebuffersQCOM = unsafePerformIO $ getCommand "glExtGetFramebuffersQCOM"
+
+-- glExtGetProgramBinarySourceQCOM ---------------------------------------------
+
+glExtGetProgramBinarySourceQCOM
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLenum -- ^ @shadertype@ of type [ShaderType](Graphics-GL-Groups.html#ShaderType).
+  -> Ptr GLchar -- ^ @source@.
+  -> Ptr GLint -- ^ @length@.
+  -> m ()
+glExtGetProgramBinarySourceQCOM v1 v2 v3 v4 = liftIO $ dyn281 ptr_glExtGetProgramBinarySourceQCOM v1 v2 v3 v4
+
+{-# NOINLINE ptr_glExtGetProgramBinarySourceQCOM #-}
+ptr_glExtGetProgramBinarySourceQCOM :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> Ptr GLint -> IO ())
+ptr_glExtGetProgramBinarySourceQCOM = unsafePerformIO $ getCommand "glExtGetProgramBinarySourceQCOM"
+
+-- glExtGetProgramsQCOM --------------------------------------------------------
+
+glExtGetProgramsQCOM
+  :: MonadIO m
+  => Ptr GLuint -- ^ @programs@ pointing to @maxPrograms@ elements of type @GLuint@.
+  -> GLint -- ^ @maxPrograms@.
+  -> Ptr GLint -- ^ @numPrograms@ pointing to @1@ element of type @GLint@.
+  -> m ()
+glExtGetProgramsQCOM v1 v2 v3 = liftIO $ dyn280 ptr_glExtGetProgramsQCOM v1 v2 v3
+
+{-# NOINLINE ptr_glExtGetProgramsQCOM #-}
+ptr_glExtGetProgramsQCOM :: FunPtr (Ptr GLuint -> GLint -> Ptr GLint -> IO ())
+ptr_glExtGetProgramsQCOM = unsafePerformIO $ getCommand "glExtGetProgramsQCOM"
+
+-- glExtGetRenderbuffersQCOM ---------------------------------------------------
+
+glExtGetRenderbuffersQCOM
+  :: MonadIO m
+  => Ptr GLuint -- ^ @renderbuffers@ pointing to @maxRenderbuffers@ elements of type @GLuint@.
+  -> GLint -- ^ @maxRenderbuffers@.
+  -> Ptr GLint -- ^ @numRenderbuffers@ pointing to @1@ element of type @GLint@.
+  -> m ()
+glExtGetRenderbuffersQCOM v1 v2 v3 = liftIO $ dyn280 ptr_glExtGetRenderbuffersQCOM v1 v2 v3
+
+{-# NOINLINE ptr_glExtGetRenderbuffersQCOM #-}
+ptr_glExtGetRenderbuffersQCOM :: FunPtr (Ptr GLuint -> GLint -> Ptr GLint -> IO ())
+ptr_glExtGetRenderbuffersQCOM = unsafePerformIO $ getCommand "glExtGetRenderbuffersQCOM"
+
+-- glExtGetShadersQCOM ---------------------------------------------------------
+
+glExtGetShadersQCOM
+  :: MonadIO m
+  => Ptr GLuint -- ^ @shaders@ pointing to @maxShaders@ elements of type @GLuint@.
+  -> GLint -- ^ @maxShaders@.
+  -> Ptr GLint -- ^ @numShaders@ pointing to @1@ element of type @GLint@.
+  -> m ()
+glExtGetShadersQCOM v1 v2 v3 = liftIO $ dyn280 ptr_glExtGetShadersQCOM v1 v2 v3
+
+{-# NOINLINE ptr_glExtGetShadersQCOM #-}
+ptr_glExtGetShadersQCOM :: FunPtr (Ptr GLuint -> GLint -> Ptr GLint -> IO ())
+ptr_glExtGetShadersQCOM = unsafePerformIO $ getCommand "glExtGetShadersQCOM"
+
+-- glExtGetTexLevelParameterivQCOM ---------------------------------------------
+
+glExtGetTexLevelParameterivQCOM
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLenum -- ^ @face@.
+  -> GLint -- ^ @level@.
+  -> GLenum -- ^ @pname@.
+  -> Ptr GLint -- ^ @params@.
+  -> m ()
+glExtGetTexLevelParameterivQCOM v1 v2 v3 v4 v5 = liftIO $ dyn282 ptr_glExtGetTexLevelParameterivQCOM v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glExtGetTexLevelParameterivQCOM #-}
+ptr_glExtGetTexLevelParameterivQCOM :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> Ptr GLint -> IO ())
+ptr_glExtGetTexLevelParameterivQCOM = unsafePerformIO $ getCommand "glExtGetTexLevelParameterivQCOM"
+
+-- glExtGetTexSubImageQCOM -----------------------------------------------------
+
+glExtGetTexSubImageQCOM
+  :: MonadIO m
+  => GLenum -- ^ @target@.
+  -> GLint -- ^ @level@.
+  -> GLint -- ^ @xoffset@.
+  -> GLint -- ^ @yoffset@.
+  -> GLint -- ^ @zoffset@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLsizei -- ^ @depth@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @texels@.
+  -> m ()
+glExtGetTexSubImageQCOM v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 = liftIO $ dyn283 ptr_glExtGetTexSubImageQCOM v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11
+
+{-# NOINLINE ptr_glExtGetTexSubImageQCOM #-}
+ptr_glExtGetTexSubImageQCOM :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glExtGetTexSubImageQCOM = unsafePerformIO $ getCommand "glExtGetTexSubImageQCOM"
+
+-- glExtGetTexturesQCOM --------------------------------------------------------
+
+glExtGetTexturesQCOM
+  :: MonadIO m
+  => Ptr GLuint -- ^ @textures@.
+  -> GLint -- ^ @maxTextures@.
+  -> Ptr GLint -- ^ @numTextures@.
+  -> m ()
+glExtGetTexturesQCOM v1 v2 v3 = liftIO $ dyn280 ptr_glExtGetTexturesQCOM v1 v2 v3
+
+{-# NOINLINE ptr_glExtGetTexturesQCOM #-}
+ptr_glExtGetTexturesQCOM :: FunPtr (Ptr GLuint -> GLint -> Ptr GLint -> IO ())
+ptr_glExtGetTexturesQCOM = unsafePerformIO $ getCommand "glExtGetTexturesQCOM"
+
+-- glExtIsProgramBinaryQCOM ----------------------------------------------------
+
+glExtIsProgramBinaryQCOM
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glExtIsProgramBinaryQCOM v1 = liftIO $ dyn284 ptr_glExtIsProgramBinaryQCOM v1
+
+{-# NOINLINE ptr_glExtIsProgramBinaryQCOM #-}
+ptr_glExtIsProgramBinaryQCOM :: FunPtr (GLuint -> IO GLboolean)
+ptr_glExtIsProgramBinaryQCOM = unsafePerformIO $ getCommand "glExtIsProgramBinaryQCOM"
+
+-- glExtTexObjectStateOverrideiQCOM --------------------------------------------
+
+glExtTexObjectStateOverrideiQCOM
+  :: MonadIO m
+  => GLenum -- ^ @target@.
+  -> GLenum -- ^ @pname@.
+  -> GLint -- ^ @param@.
+  -> m ()
+glExtTexObjectStateOverrideiQCOM v1 v2 v3 = liftIO $ dyn66 ptr_glExtTexObjectStateOverrideiQCOM v1 v2 v3
+
+{-# NOINLINE ptr_glExtTexObjectStateOverrideiQCOM #-}
+ptr_glExtTexObjectStateOverrideiQCOM :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
+ptr_glExtTexObjectStateOverrideiQCOM = unsafePerformIO $ getCommand "glExtTexObjectStateOverrideiQCOM"
+
+-- glExtractComponentEXT -------------------------------------------------------
+
+glExtractComponentEXT
+  :: MonadIO m
+  => GLuint -- ^ @res@.
+  -> GLuint -- ^ @src@.
+  -> GLuint -- ^ @num@.
+  -> m ()
+glExtractComponentEXT v1 v2 v3 = liftIO $ dyn109 ptr_glExtractComponentEXT v1 v2 v3
+
+{-# NOINLINE ptr_glExtractComponentEXT #-}
+ptr_glExtractComponentEXT :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
+ptr_glExtractComponentEXT = unsafePerformIO $ getCommand "glExtractComponentEXT"
+
+-- glFeedbackBuffer ------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glFeedbackBuffer.xml OpenGL 2.x>.
+glFeedbackBuffer
+  :: MonadIO m
+  => GLsizei -- ^ @size@.
+  -> GLenum -- ^ @type@ of type [FeedbackType](Graphics-GL-Groups.html#FeedbackType).
+  -> Ptr GLfloat -- ^ @buffer@ pointing to @size@ elements of type @FeedbackElement@.
+  -> m ()
+glFeedbackBuffer v1 v2 v3 = liftIO $ dyn285 ptr_glFeedbackBuffer v1 v2 v3
+
+{-# NOINLINE ptr_glFeedbackBuffer #-}
+ptr_glFeedbackBuffer :: FunPtr (GLsizei -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glFeedbackBuffer = unsafePerformIO $ getCommand "glFeedbackBuffer"
+
+-- glFeedbackBufferxOES --------------------------------------------------------
+
+glFeedbackBufferxOES
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> GLenum -- ^ @type@.
+  -> Ptr GLfixed -- ^ @buffer@ pointing to @n@ elements of type @GLfixed@.
+  -> m ()
+glFeedbackBufferxOES v1 v2 v3 = liftIO $ dyn286 ptr_glFeedbackBufferxOES v1 v2 v3
+
+{-# NOINLINE ptr_glFeedbackBufferxOES #-}
+ptr_glFeedbackBufferxOES :: FunPtr (GLsizei -> GLenum -> Ptr GLfixed -> IO ())
+ptr_glFeedbackBufferxOES = unsafePerformIO $ getCommand "glFeedbackBufferxOES"
+
+-- glFenceSync -----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glFenceSync.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glFenceSync.xhtml OpenGL 4.x>.
+glFenceSync
+  :: MonadIO m
+  => GLenum -- ^ @condition@ of type [SyncCondition](Graphics-GL-Groups.html#SyncCondition).
+  -> GLbitfield -- ^ @flags@.
+  -> m GLsync -- ^ of type @sync@.
+glFenceSync v1 v2 = liftIO $ dyn287 ptr_glFenceSync v1 v2
+
+{-# NOINLINE ptr_glFenceSync #-}
+ptr_glFenceSync :: FunPtr (GLenum -> GLbitfield -> IO GLsync)
+ptr_glFenceSync = unsafePerformIO $ getCommand "glFenceSync"
+
+-- glFenceSyncAPPLE ------------------------------------------------------------
+
+-- | This command is an alias for 'glFenceSync'.
+glFenceSyncAPPLE
+  :: MonadIO m
+  => GLenum -- ^ @condition@ of type [SyncCondition](Graphics-GL-Groups.html#SyncCondition).
+  -> GLbitfield -- ^ @flags@.
+  -> m GLsync
+glFenceSyncAPPLE v1 v2 = liftIO $ dyn287 ptr_glFenceSyncAPPLE v1 v2
+
+{-# NOINLINE ptr_glFenceSyncAPPLE #-}
+ptr_glFenceSyncAPPLE :: FunPtr (GLenum -> GLbitfield -> IO GLsync)
+ptr_glFenceSyncAPPLE = unsafePerformIO $ getCommand "glFenceSyncAPPLE"
+
+-- glFinalCombinerInputNV ------------------------------------------------------
+
+glFinalCombinerInputNV
+  :: MonadIO m
+  => GLenum -- ^ @variable@ of type [CombinerVariableNV](Graphics-GL-Groups.html#CombinerVariableNV).
+  -> GLenum -- ^ @input@ of type [CombinerRegisterNV](Graphics-GL-Groups.html#CombinerRegisterNV).
+  -> GLenum -- ^ @mapping@ of type [CombinerMappingNV](Graphics-GL-Groups.html#CombinerMappingNV).
+  -> GLenum -- ^ @componentUsage@ of type [CombinerComponentUsageNV](Graphics-GL-Groups.html#CombinerComponentUsageNV).
+  -> m ()
+glFinalCombinerInputNV v1 v2 v3 v4 = liftIO $ dyn56 ptr_glFinalCombinerInputNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glFinalCombinerInputNV #-}
+ptr_glFinalCombinerInputNV :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ())
+ptr_glFinalCombinerInputNV = unsafePerformIO $ getCommand "glFinalCombinerInputNV"
+
+-- glFinish --------------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glFinish.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glFinish.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glFinish.xhtml OpenGL 4.x>.
+glFinish
+  :: MonadIO m
+  => m ()
+glFinish = liftIO $ dyn11 ptr_glFinish
+
+{-# NOINLINE ptr_glFinish #-}
+ptr_glFinish :: FunPtr (IO ())
+ptr_glFinish = unsafePerformIO $ getCommand "glFinish"
+
+-- glFinishAsyncSGIX -----------------------------------------------------------
+
+glFinishAsyncSGIX
+  :: MonadIO m
+  => Ptr GLuint -- ^ @markerp@ pointing to @1@ element of type @GLuint@.
+  -> m GLint
+glFinishAsyncSGIX v1 = liftIO $ dyn288 ptr_glFinishAsyncSGIX v1
+
+{-# NOINLINE ptr_glFinishAsyncSGIX #-}
+ptr_glFinishAsyncSGIX :: FunPtr (Ptr GLuint -> IO GLint)
+ptr_glFinishAsyncSGIX = unsafePerformIO $ getCommand "glFinishAsyncSGIX"
+
+-- glFinishFenceAPPLE ----------------------------------------------------------
+
+glFinishFenceAPPLE
+  :: MonadIO m
+  => GLuint -- ^ @fence@ of type @FenceNV@.
+  -> m ()
+glFinishFenceAPPLE v1 = liftIO $ dyn3 ptr_glFinishFenceAPPLE v1
+
+{-# NOINLINE ptr_glFinishFenceAPPLE #-}
+ptr_glFinishFenceAPPLE :: FunPtr (GLuint -> IO ())
+ptr_glFinishFenceAPPLE = unsafePerformIO $ getCommand "glFinishFenceAPPLE"
+
+-- glFinishFenceNV -------------------------------------------------------------
+
+glFinishFenceNV
+  :: MonadIO m
+  => GLuint -- ^ @fence@ of type @FenceNV@.
+  -> m ()
+glFinishFenceNV v1 = liftIO $ dyn3 ptr_glFinishFenceNV v1
+
+{-# NOINLINE ptr_glFinishFenceNV #-}
+ptr_glFinishFenceNV :: FunPtr (GLuint -> IO ())
+ptr_glFinishFenceNV = unsafePerformIO $ getCommand "glFinishFenceNV"
+
+-- glFinishObjectAPPLE ---------------------------------------------------------
+
+glFinishObjectAPPLE
+  :: MonadIO m
+  => GLenum -- ^ @object@ of type [ObjectTypeAPPLE](Graphics-GL-Groups.html#ObjectTypeAPPLE).
+  -> GLint -- ^ @name@.
+  -> m ()
+glFinishObjectAPPLE v1 v2 = liftIO $ dyn58 ptr_glFinishObjectAPPLE v1 v2
+
+{-# NOINLINE ptr_glFinishObjectAPPLE #-}
+ptr_glFinishObjectAPPLE :: FunPtr (GLenum -> GLint -> IO ())
+ptr_glFinishObjectAPPLE = unsafePerformIO $ getCommand "glFinishObjectAPPLE"
+
diff --git a/src/Graphics/GL/Functions/F08.hs b/src/Graphics/GL/Functions/F08.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Functions/F08.hs
@@ -0,0 +1,1573 @@
+{-# OPTIONS_HADDOCK hide #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Functions.F08
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- Raw functions from the
+-- <http://www.opengl.org/registry/ OpenGL registry>.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Functions.F08 (
+  glFinishTextureSUNX,
+  glFlush,
+  glFlushMappedBufferRange,
+  glFlushMappedBufferRangeAPPLE,
+  glFlushMappedBufferRangeEXT,
+  glFlushMappedNamedBufferRange,
+  glFlushMappedNamedBufferRangeEXT,
+  glFlushPixelDataRangeNV,
+  glFlushRasterSGIX,
+  glFlushStaticDataIBM,
+  glFlushVertexArrayRangeAPPLE,
+  glFlushVertexArrayRangeNV,
+  glFogCoordFormatNV,
+  glFogCoordPointer,
+  glFogCoordPointerEXT,
+  glFogCoordPointerListIBM,
+  glFogCoordd,
+  glFogCoorddEXT,
+  glFogCoorddv,
+  glFogCoorddvEXT,
+  glFogCoordf,
+  glFogCoordfEXT,
+  glFogCoordfv,
+  glFogCoordfvEXT,
+  glFogCoordhNV,
+  glFogCoordhvNV,
+  glFogFuncSGIS,
+  glFogf,
+  glFogfv,
+  glFogi,
+  glFogiv,
+  glFogx,
+  glFogxOES,
+  glFogxv,
+  glFogxvOES,
+  glFragmentColorMaterialSGIX,
+  glFragmentCoverageColorNV,
+  glFragmentLightModelfSGIX,
+  glFragmentLightModelfvSGIX,
+  glFragmentLightModeliSGIX,
+  glFragmentLightModelivSGIX,
+  glFragmentLightfSGIX,
+  glFragmentLightfvSGIX,
+  glFragmentLightiSGIX,
+  glFragmentLightivSGIX,
+  glFragmentMaterialfSGIX,
+  glFragmentMaterialfvSGIX,
+  glFragmentMaterialiSGIX,
+  glFragmentMaterialivSGIX,
+  glFrameTerminatorGREMEDY,
+  glFrameZoomSGIX,
+  glFramebufferDrawBufferEXT,
+  glFramebufferDrawBuffersEXT,
+  glFramebufferFetchBarrierEXT,
+  glFramebufferFetchBarrierQCOM,
+  glFramebufferFoveationConfigQCOM,
+  glFramebufferFoveationParametersQCOM,
+  glFramebufferParameteri,
+  glFramebufferParameteriMESA,
+  glFramebufferPixelLocalStorageSizeEXT,
+  glFramebufferReadBufferEXT,
+  glFramebufferRenderbuffer,
+  glFramebufferRenderbufferEXT,
+  glFramebufferRenderbufferOES,
+  glFramebufferSampleLocationsfvARB,
+  glFramebufferSampleLocationsfvNV,
+  glFramebufferSamplePositionsfvAMD,
+  glFramebufferTexture,
+  glFramebufferTexture1D,
+  glFramebufferTexture1DEXT,
+  glFramebufferTexture2D,
+  glFramebufferTexture2DDownsampleIMG,
+  glFramebufferTexture2DEXT,
+  glFramebufferTexture2DMultisampleEXT,
+  glFramebufferTexture2DMultisampleIMG,
+  glFramebufferTexture2DOES,
+  glFramebufferTexture3D,
+  glFramebufferTexture3DEXT,
+  glFramebufferTexture3DOES,
+  glFramebufferTextureARB,
+  glFramebufferTextureEXT,
+  glFramebufferTextureFaceARB,
+  glFramebufferTextureFaceEXT,
+  glFramebufferTextureLayer,
+  glFramebufferTextureLayerARB,
+  glFramebufferTextureLayerDownsampleIMG,
+  glFramebufferTextureLayerEXT,
+  glFramebufferTextureMultisampleMultiviewOVR,
+  glFramebufferTextureMultiviewOVR,
+  glFramebufferTextureOES,
+  glFreeObjectBufferATI,
+  glFrontFace,
+  glFrustum,
+  glFrustumf,
+  glFrustumfOES,
+  glFrustumx,
+  glFrustumxOES,
+  glGenAsyncMarkersSGIX,
+  glGenBuffers,
+  glGenBuffersARB
+) where
+
+import Control.Monad.IO.Class ( MonadIO(..) )
+import Foreign.Ptr
+import Graphics.GL.Foreign
+import Graphics.GL.Types
+import System.IO.Unsafe ( unsafePerformIO )
+
+-- glFinishTextureSUNX ---------------------------------------------------------
+
+glFinishTextureSUNX
+  :: MonadIO m
+  => m ()
+glFinishTextureSUNX = liftIO $ dyn11 ptr_glFinishTextureSUNX
+
+{-# NOINLINE ptr_glFinishTextureSUNX #-}
+ptr_glFinishTextureSUNX :: FunPtr (IO ())
+ptr_glFinishTextureSUNX = unsafePerformIO $ getCommand "glFinishTextureSUNX"
+
+-- glFlush ---------------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glFlush.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glFlush.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glFlush.xhtml OpenGL 4.x>.
+glFlush
+  :: MonadIO m
+  => m ()
+glFlush = liftIO $ dyn11 ptr_glFlush
+
+{-# NOINLINE ptr_glFlush #-}
+ptr_glFlush :: FunPtr (IO ())
+ptr_glFlush = unsafePerformIO $ getCommand "glFlush"
+
+-- glFlushMappedBufferRange ----------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glFlushMappedBufferRange.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glFlushMappedBufferRange.xhtml OpenGL 4.x>.
+glFlushMappedBufferRange
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
+  -> GLintptr -- ^ @offset@ of type @BufferOffset@.
+  -> GLsizeiptr -- ^ @length@ of type @BufferSize@.
+  -> m ()
+glFlushMappedBufferRange v1 v2 v3 = liftIO $ dyn289 ptr_glFlushMappedBufferRange v1 v2 v3
+
+{-# NOINLINE ptr_glFlushMappedBufferRange #-}
+ptr_glFlushMappedBufferRange :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> IO ())
+ptr_glFlushMappedBufferRange = unsafePerformIO $ getCommand "glFlushMappedBufferRange"
+
+-- glFlushMappedBufferRangeAPPLE -----------------------------------------------
+
+-- | This command is an alias for 'glFlushMappedBufferRange'.
+glFlushMappedBufferRangeAPPLE
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
+  -> GLintptr -- ^ @offset@ of type @BufferOffset@.
+  -> GLsizeiptr -- ^ @size@ of type @BufferSize@.
+  -> m ()
+glFlushMappedBufferRangeAPPLE v1 v2 v3 = liftIO $ dyn289 ptr_glFlushMappedBufferRangeAPPLE v1 v2 v3
+
+{-# NOINLINE ptr_glFlushMappedBufferRangeAPPLE #-}
+ptr_glFlushMappedBufferRangeAPPLE :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> IO ())
+ptr_glFlushMappedBufferRangeAPPLE = unsafePerformIO $ getCommand "glFlushMappedBufferRangeAPPLE"
+
+-- glFlushMappedBufferRangeEXT -------------------------------------------------
+
+-- | This command is an alias for 'glFlushMappedBufferRange'.
+glFlushMappedBufferRangeEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
+  -> GLintptr -- ^ @offset@.
+  -> GLsizeiptr -- ^ @length@.
+  -> m ()
+glFlushMappedBufferRangeEXT v1 v2 v3 = liftIO $ dyn289 ptr_glFlushMappedBufferRangeEXT v1 v2 v3
+
+{-# NOINLINE ptr_glFlushMappedBufferRangeEXT #-}
+ptr_glFlushMappedBufferRangeEXT :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> IO ())
+ptr_glFlushMappedBufferRangeEXT = unsafePerformIO $ getCommand "glFlushMappedBufferRangeEXT"
+
+-- glFlushMappedNamedBufferRange -----------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glFlushMappedBufferRange.xhtml OpenGL 4.x>.
+glFlushMappedNamedBufferRange
+  :: MonadIO m
+  => GLuint -- ^ @buffer@.
+  -> GLintptr -- ^ @offset@.
+  -> GLsizeiptr -- ^ @length@ of type @BufferSize@.
+  -> m ()
+glFlushMappedNamedBufferRange v1 v2 v3 = liftIO $ dyn290 ptr_glFlushMappedNamedBufferRange v1 v2 v3
+
+{-# NOINLINE ptr_glFlushMappedNamedBufferRange #-}
+ptr_glFlushMappedNamedBufferRange :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> IO ())
+ptr_glFlushMappedNamedBufferRange = unsafePerformIO $ getCommand "glFlushMappedNamedBufferRange"
+
+-- glFlushMappedNamedBufferRangeEXT --------------------------------------------
+
+glFlushMappedNamedBufferRangeEXT
+  :: MonadIO m
+  => GLuint -- ^ @buffer@.
+  -> GLintptr -- ^ @offset@.
+  -> GLsizeiptr -- ^ @length@.
+  -> m ()
+glFlushMappedNamedBufferRangeEXT v1 v2 v3 = liftIO $ dyn290 ptr_glFlushMappedNamedBufferRangeEXT v1 v2 v3
+
+{-# NOINLINE ptr_glFlushMappedNamedBufferRangeEXT #-}
+ptr_glFlushMappedNamedBufferRangeEXT :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> IO ())
+ptr_glFlushMappedNamedBufferRangeEXT = unsafePerformIO $ getCommand "glFlushMappedNamedBufferRangeEXT"
+
+-- glFlushPixelDataRangeNV -----------------------------------------------------
+
+glFlushPixelDataRangeNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [PixelDataRangeTargetNV](Graphics-GL-Groups.html#PixelDataRangeTargetNV).
+  -> m ()
+glFlushPixelDataRangeNV v1 = liftIO $ dyn5 ptr_glFlushPixelDataRangeNV v1
+
+{-# NOINLINE ptr_glFlushPixelDataRangeNV #-}
+ptr_glFlushPixelDataRangeNV :: FunPtr (GLenum -> IO ())
+ptr_glFlushPixelDataRangeNV = unsafePerformIO $ getCommand "glFlushPixelDataRangeNV"
+
+-- glFlushRasterSGIX -----------------------------------------------------------
+
+glFlushRasterSGIX
+  :: MonadIO m
+  => m ()
+glFlushRasterSGIX = liftIO $ dyn11 ptr_glFlushRasterSGIX
+
+{-# NOINLINE ptr_glFlushRasterSGIX #-}
+ptr_glFlushRasterSGIX :: FunPtr (IO ())
+ptr_glFlushRasterSGIX = unsafePerformIO $ getCommand "glFlushRasterSGIX"
+
+-- glFlushStaticDataIBM --------------------------------------------------------
+
+glFlushStaticDataIBM
+  :: MonadIO m
+  => GLenum -- ^ @target@.
+  -> m ()
+glFlushStaticDataIBM v1 = liftIO $ dyn5 ptr_glFlushStaticDataIBM v1
+
+{-# NOINLINE ptr_glFlushStaticDataIBM #-}
+ptr_glFlushStaticDataIBM :: FunPtr (GLenum -> IO ())
+ptr_glFlushStaticDataIBM = unsafePerformIO $ getCommand "glFlushStaticDataIBM"
+
+-- glFlushVertexArrayRangeAPPLE ------------------------------------------------
+
+glFlushVertexArrayRangeAPPLE
+  :: MonadIO m
+  => GLsizei -- ^ @length@.
+  -> Ptr a -- ^ @pointer@ pointing to @length@ elements of type @a@.
+  -> m ()
+glFlushVertexArrayRangeAPPLE v1 v2 = liftIO $ dyn271 ptr_glFlushVertexArrayRangeAPPLE v1 v2
+
+{-# NOINLINE ptr_glFlushVertexArrayRangeAPPLE #-}
+ptr_glFlushVertexArrayRangeAPPLE :: FunPtr (GLsizei -> Ptr a -> IO ())
+ptr_glFlushVertexArrayRangeAPPLE = unsafePerformIO $ getCommand "glFlushVertexArrayRangeAPPLE"
+
+-- glFlushVertexArrayRangeNV ---------------------------------------------------
+
+glFlushVertexArrayRangeNV
+  :: MonadIO m
+  => m ()
+glFlushVertexArrayRangeNV = liftIO $ dyn11 ptr_glFlushVertexArrayRangeNV
+
+{-# NOINLINE ptr_glFlushVertexArrayRangeNV #-}
+ptr_glFlushVertexArrayRangeNV :: FunPtr (IO ())
+ptr_glFlushVertexArrayRangeNV = unsafePerformIO $ getCommand "glFlushVertexArrayRangeNV"
+
+-- glFogCoordFormatNV ----------------------------------------------------------
+
+glFogCoordFormatNV
+  :: MonadIO m
+  => GLenum -- ^ @type@.
+  -> GLsizei -- ^ @stride@.
+  -> m ()
+glFogCoordFormatNV v1 v2 = liftIO $ dyn247 ptr_glFogCoordFormatNV v1 v2
+
+{-# NOINLINE ptr_glFogCoordFormatNV #-}
+ptr_glFogCoordFormatNV :: FunPtr (GLenum -> GLsizei -> IO ())
+ptr_glFogCoordFormatNV = unsafePerformIO $ getCommand "glFogCoordFormatNV"
+
+-- glFogCoordPointer -----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glFogCoordPointer.xml OpenGL 2.x>.
+glFogCoordPointer
+  :: MonadIO m
+  => GLenum -- ^ @type@ of type [FogPointerTypeEXT](Graphics-GL-Groups.html#FogPointerTypeEXT).
+  -> GLsizei -- ^ @stride@.
+  -> Ptr a -- ^ @pointer@ pointing to @COMPSIZE(type,stride)@ elements of type @a@.
+  -> m ()
+glFogCoordPointer v1 v2 v3 = liftIO $ dyn49 ptr_glFogCoordPointer v1 v2 v3
+
+{-# NOINLINE ptr_glFogCoordPointer #-}
+ptr_glFogCoordPointer :: FunPtr (GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glFogCoordPointer = unsafePerformIO $ getCommand "glFogCoordPointer"
+
+-- glFogCoordPointerEXT --------------------------------------------------------
+
+-- | This command is an alias for 'glFogCoordPointer'.
+glFogCoordPointerEXT
+  :: MonadIO m
+  => GLenum -- ^ @type@ of type [FogPointerTypeEXT](Graphics-GL-Groups.html#FogPointerTypeEXT).
+  -> GLsizei -- ^ @stride@.
+  -> Ptr a -- ^ @pointer@ pointing to @COMPSIZE(type,stride)@ elements of type @a@.
+  -> m ()
+glFogCoordPointerEXT v1 v2 v3 = liftIO $ dyn49 ptr_glFogCoordPointerEXT v1 v2 v3
+
+{-# NOINLINE ptr_glFogCoordPointerEXT #-}
+ptr_glFogCoordPointerEXT :: FunPtr (GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glFogCoordPointerEXT = unsafePerformIO $ getCommand "glFogCoordPointerEXT"
+
+-- glFogCoordPointerListIBM ----------------------------------------------------
+
+glFogCoordPointerListIBM
+  :: MonadIO m
+  => GLenum -- ^ @type@ of type [FogPointerTypeIBM](Graphics-GL-Groups.html#FogPointerTypeIBM).
+  -> GLint -- ^ @stride@.
+  -> Ptr (Ptr a) -- ^ @pointer@ pointing to @COMPSIZE(type,stride)@ elements of type @Ptr a@.
+  -> GLint -- ^ @ptrstride@.
+  -> m ()
+glFogCoordPointerListIBM v1 v2 v3 v4 = liftIO $ dyn291 ptr_glFogCoordPointerListIBM v1 v2 v3 v4
+
+{-# NOINLINE ptr_glFogCoordPointerListIBM #-}
+ptr_glFogCoordPointerListIBM :: FunPtr (GLenum -> GLint -> Ptr (Ptr a) -> GLint -> IO ())
+ptr_glFogCoordPointerListIBM = unsafePerformIO $ getCommand "glFogCoordPointerListIBM"
+
+-- glFogCoordd -----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glFogCoord.xml OpenGL 2.x>. The vector equivalent of this command is 'glFogCoorddv'.
+glFogCoordd
+  :: MonadIO m
+  => GLdouble -- ^ @coord@ of type @CoordD@.
+  -> m ()
+glFogCoordd v1 = liftIO $ dyn84 ptr_glFogCoordd v1
+
+{-# NOINLINE ptr_glFogCoordd #-}
+ptr_glFogCoordd :: FunPtr (GLdouble -> IO ())
+ptr_glFogCoordd = unsafePerformIO $ getCommand "glFogCoordd"
+
+-- glFogCoorddEXT --------------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glFogCoorddvEXT'. This command is an alias for 'glFogCoordd'.
+glFogCoorddEXT
+  :: MonadIO m
+  => GLdouble -- ^ @coord@ of type @CoordD@.
+  -> m ()
+glFogCoorddEXT v1 = liftIO $ dyn84 ptr_glFogCoorddEXT v1
+
+{-# NOINLINE ptr_glFogCoorddEXT #-}
+ptr_glFogCoorddEXT :: FunPtr (GLdouble -> IO ())
+ptr_glFogCoorddEXT = unsafePerformIO $ getCommand "glFogCoorddEXT"
+
+-- glFogCoorddv ----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glFogCoord.xml OpenGL 2.x>.
+glFogCoorddv
+  :: MonadIO m
+  => Ptr GLdouble -- ^ @coord@ pointing to @1@ element of type @CoordD@.
+  -> m ()
+glFogCoorddv v1 = liftIO $ dyn42 ptr_glFogCoorddv v1
+
+{-# NOINLINE ptr_glFogCoorddv #-}
+ptr_glFogCoorddv :: FunPtr (Ptr GLdouble -> IO ())
+ptr_glFogCoorddv = unsafePerformIO $ getCommand "glFogCoorddv"
+
+-- glFogCoorddvEXT -------------------------------------------------------------
+
+-- | This command is an alias for 'glFogCoorddv'.
+glFogCoorddvEXT
+  :: MonadIO m
+  => Ptr GLdouble -- ^ @coord@ pointing to @1@ element of type @CoordD@.
+  -> m ()
+glFogCoorddvEXT v1 = liftIO $ dyn42 ptr_glFogCoorddvEXT v1
+
+{-# NOINLINE ptr_glFogCoorddvEXT #-}
+ptr_glFogCoorddvEXT :: FunPtr (Ptr GLdouble -> IO ())
+ptr_glFogCoorddvEXT = unsafePerformIO $ getCommand "glFogCoorddvEXT"
+
+-- glFogCoordf -----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glFogCoord.xml OpenGL 2.x>. The vector equivalent of this command is 'glFogCoordfv'.
+glFogCoordf
+  :: MonadIO m
+  => GLfloat -- ^ @coord@ of type @CoordF@.
+  -> m ()
+glFogCoordf v1 = liftIO $ dyn85 ptr_glFogCoordf v1
+
+{-# NOINLINE ptr_glFogCoordf #-}
+ptr_glFogCoordf :: FunPtr (GLfloat -> IO ())
+ptr_glFogCoordf = unsafePerformIO $ getCommand "glFogCoordf"
+
+-- glFogCoordfEXT --------------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glFogCoordfvEXT'. This command is an alias for 'glFogCoordf'.
+glFogCoordfEXT
+  :: MonadIO m
+  => GLfloat -- ^ @coord@ of type @CoordF@.
+  -> m ()
+glFogCoordfEXT v1 = liftIO $ dyn85 ptr_glFogCoordfEXT v1
+
+{-# NOINLINE ptr_glFogCoordfEXT #-}
+ptr_glFogCoordfEXT :: FunPtr (GLfloat -> IO ())
+ptr_glFogCoordfEXT = unsafePerformIO $ getCommand "glFogCoordfEXT"
+
+-- glFogCoordfv ----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glFogCoord.xml OpenGL 2.x>.
+glFogCoordfv
+  :: MonadIO m
+  => Ptr GLfloat -- ^ @coord@ pointing to @1@ element of type @CoordF@.
+  -> m ()
+glFogCoordfv v1 = liftIO $ dyn44 ptr_glFogCoordfv v1
+
+{-# NOINLINE ptr_glFogCoordfv #-}
+ptr_glFogCoordfv :: FunPtr (Ptr GLfloat -> IO ())
+ptr_glFogCoordfv = unsafePerformIO $ getCommand "glFogCoordfv"
+
+-- glFogCoordfvEXT -------------------------------------------------------------
+
+-- | This command is an alias for 'glFogCoordfv'.
+glFogCoordfvEXT
+  :: MonadIO m
+  => Ptr GLfloat -- ^ @coord@ pointing to @1@ element of type @CoordF@.
+  -> m ()
+glFogCoordfvEXT v1 = liftIO $ dyn44 ptr_glFogCoordfvEXT v1
+
+{-# NOINLINE ptr_glFogCoordfvEXT #-}
+ptr_glFogCoordfvEXT :: FunPtr (Ptr GLfloat -> IO ())
+ptr_glFogCoordfvEXT = unsafePerformIO $ getCommand "glFogCoordfvEXT"
+
+-- glFogCoordhNV ---------------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glFogCoordhvNV'.
+glFogCoordhNV
+  :: MonadIO m
+  => GLhalfNV -- ^ @fog@ of type @Half16NV@.
+  -> m ()
+glFogCoordhNV v1 = liftIO $ dyn292 ptr_glFogCoordhNV v1
+
+{-# NOINLINE ptr_glFogCoordhNV #-}
+ptr_glFogCoordhNV :: FunPtr (GLhalfNV -> IO ())
+ptr_glFogCoordhNV = unsafePerformIO $ getCommand "glFogCoordhNV"
+
+-- glFogCoordhvNV --------------------------------------------------------------
+
+glFogCoordhvNV
+  :: MonadIO m
+  => Ptr GLhalfNV -- ^ @fog@ pointing to @1@ element of type @Half16NV@.
+  -> m ()
+glFogCoordhvNV v1 = liftIO $ dyn106 ptr_glFogCoordhvNV v1
+
+{-# NOINLINE ptr_glFogCoordhvNV #-}
+ptr_glFogCoordhvNV :: FunPtr (Ptr GLhalfNV -> IO ())
+ptr_glFogCoordhvNV = unsafePerformIO $ getCommand "glFogCoordhvNV"
+
+-- glFogFuncSGIS ---------------------------------------------------------------
+
+glFogFuncSGIS
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLfloat -- ^ @points@ pointing to @n*2@ elements of type @GLfloat@.
+  -> m ()
+glFogFuncSGIS v1 v2 = liftIO $ dyn199 ptr_glFogFuncSGIS v1 v2
+
+{-# NOINLINE ptr_glFogFuncSGIS #-}
+ptr_glFogFuncSGIS :: FunPtr (GLsizei -> Ptr GLfloat -> IO ())
+ptr_glFogFuncSGIS = unsafePerformIO $ getCommand "glFogFuncSGIS"
+
+-- glFogf ----------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glFog.xml OpenGL 2.x>.
+glFogf
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [FogParameter](Graphics-GL-Groups.html#FogParameter).
+  -> GLfloat -- ^ @param@ of type @CheckedFloat32@.
+  -> m ()
+glFogf v1 v2 = liftIO $ dyn0 ptr_glFogf v1 v2
+
+{-# NOINLINE ptr_glFogf #-}
+ptr_glFogf :: FunPtr (GLenum -> GLfloat -> IO ())
+ptr_glFogf = unsafePerformIO $ getCommand "glFogf"
+
+-- glFogfv ---------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glFog.xml OpenGL 2.x>.
+glFogfv
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [FogParameter](Graphics-GL-Groups.html#FogParameter).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @CheckedFloat32@.
+  -> m ()
+glFogfv v1 v2 = liftIO $ dyn101 ptr_glFogfv v1 v2
+
+{-# NOINLINE ptr_glFogfv #-}
+ptr_glFogfv :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+ptr_glFogfv = unsafePerformIO $ getCommand "glFogfv"
+
+-- glFogi ----------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glFog.xml OpenGL 2.x>.
+glFogi
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [FogParameter](Graphics-GL-Groups.html#FogParameter).
+  -> GLint -- ^ @param@ of type @CheckedInt32@.
+  -> m ()
+glFogi v1 v2 = liftIO $ dyn58 ptr_glFogi v1 v2
+
+{-# NOINLINE ptr_glFogi #-}
+ptr_glFogi :: FunPtr (GLenum -> GLint -> IO ())
+ptr_glFogi = unsafePerformIO $ getCommand "glFogi"
+
+-- glFogiv ---------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glFog.xml OpenGL 2.x>.
+glFogiv
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [FogParameter](Graphics-GL-Groups.html#FogParameter).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @CheckedInt32@.
+  -> m ()
+glFogiv v1 v2 = liftIO $ dyn143 ptr_glFogiv v1 v2
+
+{-# NOINLINE ptr_glFogiv #-}
+ptr_glFogiv :: FunPtr (GLenum -> Ptr GLint -> IO ())
+ptr_glFogiv = unsafePerformIO $ getCommand "glFogiv"
+
+-- glFogx ----------------------------------------------------------------------
+
+glFogx
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [FogPName](Graphics-GL-Groups.html#FogPName).
+  -> GLfixed -- ^ @param@.
+  -> m ()
+glFogx v1 v2 = liftIO $ dyn1 ptr_glFogx v1 v2
+
+{-# NOINLINE ptr_glFogx #-}
+ptr_glFogx :: FunPtr (GLenum -> GLfixed -> IO ())
+ptr_glFogx = unsafePerformIO $ getCommand "glFogx"
+
+-- glFogxOES -------------------------------------------------------------------
+
+glFogxOES
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [FogPName](Graphics-GL-Groups.html#FogPName).
+  -> GLfixed -- ^ @param@.
+  -> m ()
+glFogxOES v1 v2 = liftIO $ dyn1 ptr_glFogxOES v1 v2
+
+{-# NOINLINE ptr_glFogxOES #-}
+ptr_glFogxOES :: FunPtr (GLenum -> GLfixed -> IO ())
+ptr_glFogxOES = unsafePerformIO $ getCommand "glFogxOES"
+
+-- glFogxv ---------------------------------------------------------------------
+
+glFogxv
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [FogPName](Graphics-GL-Groups.html#FogPName).
+  -> Ptr GLfixed -- ^ @param@ pointing to @COMPSIZE(pname)@ elements of type @GLfixed@.
+  -> m ()
+glFogxv v1 v2 = liftIO $ dyn102 ptr_glFogxv v1 v2
+
+{-# NOINLINE ptr_glFogxv #-}
+ptr_glFogxv :: FunPtr (GLenum -> Ptr GLfixed -> IO ())
+ptr_glFogxv = unsafePerformIO $ getCommand "glFogxv"
+
+-- glFogxvOES ------------------------------------------------------------------
+
+glFogxvOES
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [FogPName](Graphics-GL-Groups.html#FogPName).
+  -> Ptr GLfixed -- ^ @param@ pointing to @COMPSIZE(pname)@ elements of type @GLfixed@.
+  -> m ()
+glFogxvOES v1 v2 = liftIO $ dyn102 ptr_glFogxvOES v1 v2
+
+{-# NOINLINE ptr_glFogxvOES #-}
+ptr_glFogxvOES :: FunPtr (GLenum -> Ptr GLfixed -> IO ())
+ptr_glFogxvOES = unsafePerformIO $ getCommand "glFogxvOES"
+
+-- glFragmentColorMaterialSGIX -------------------------------------------------
+
+glFragmentColorMaterialSGIX
+  :: MonadIO m
+  => GLenum -- ^ @face@ of type [MaterialFace](Graphics-GL-Groups.html#MaterialFace).
+  -> GLenum -- ^ @mode@ of type [MaterialParameter](Graphics-GL-Groups.html#MaterialParameter).
+  -> m ()
+glFragmentColorMaterialSGIX v1 v2 = liftIO $ dyn54 ptr_glFragmentColorMaterialSGIX v1 v2
+
+{-# NOINLINE ptr_glFragmentColorMaterialSGIX #-}
+ptr_glFragmentColorMaterialSGIX :: FunPtr (GLenum -> GLenum -> IO ())
+ptr_glFragmentColorMaterialSGIX = unsafePerformIO $ getCommand "glFragmentColorMaterialSGIX"
+
+-- glFragmentCoverageColorNV ---------------------------------------------------
+
+glFragmentCoverageColorNV
+  :: MonadIO m
+  => GLuint -- ^ @color@.
+  -> m ()
+glFragmentCoverageColorNV v1 = liftIO $ dyn3 ptr_glFragmentCoverageColorNV v1
+
+{-# NOINLINE ptr_glFragmentCoverageColorNV #-}
+ptr_glFragmentCoverageColorNV :: FunPtr (GLuint -> IO ())
+ptr_glFragmentCoverageColorNV = unsafePerformIO $ getCommand "glFragmentCoverageColorNV"
+
+-- glFragmentLightModelfSGIX ---------------------------------------------------
+
+glFragmentLightModelfSGIX
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [FragmentLightModelParameterSGIX](Graphics-GL-Groups.html#FragmentLightModelParameterSGIX).
+  -> GLfloat -- ^ @param@ of type @CheckedFloat32@.
+  -> m ()
+glFragmentLightModelfSGIX v1 v2 = liftIO $ dyn0 ptr_glFragmentLightModelfSGIX v1 v2
+
+{-# NOINLINE ptr_glFragmentLightModelfSGIX #-}
+ptr_glFragmentLightModelfSGIX :: FunPtr (GLenum -> GLfloat -> IO ())
+ptr_glFragmentLightModelfSGIX = unsafePerformIO $ getCommand "glFragmentLightModelfSGIX"
+
+-- glFragmentLightModelfvSGIX --------------------------------------------------
+
+glFragmentLightModelfvSGIX
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [FragmentLightModelParameterSGIX](Graphics-GL-Groups.html#FragmentLightModelParameterSGIX).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @CheckedFloat32@.
+  -> m ()
+glFragmentLightModelfvSGIX v1 v2 = liftIO $ dyn101 ptr_glFragmentLightModelfvSGIX v1 v2
+
+{-# NOINLINE ptr_glFragmentLightModelfvSGIX #-}
+ptr_glFragmentLightModelfvSGIX :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+ptr_glFragmentLightModelfvSGIX = unsafePerformIO $ getCommand "glFragmentLightModelfvSGIX"
+
+-- glFragmentLightModeliSGIX ---------------------------------------------------
+
+glFragmentLightModeliSGIX
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [FragmentLightModelParameterSGIX](Graphics-GL-Groups.html#FragmentLightModelParameterSGIX).
+  -> GLint -- ^ @param@ of type @CheckedInt32@.
+  -> m ()
+glFragmentLightModeliSGIX v1 v2 = liftIO $ dyn58 ptr_glFragmentLightModeliSGIX v1 v2
+
+{-# NOINLINE ptr_glFragmentLightModeliSGIX #-}
+ptr_glFragmentLightModeliSGIX :: FunPtr (GLenum -> GLint -> IO ())
+ptr_glFragmentLightModeliSGIX = unsafePerformIO $ getCommand "glFragmentLightModeliSGIX"
+
+-- glFragmentLightModelivSGIX --------------------------------------------------
+
+glFragmentLightModelivSGIX
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [FragmentLightModelParameterSGIX](Graphics-GL-Groups.html#FragmentLightModelParameterSGIX).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @CheckedInt32@.
+  -> m ()
+glFragmentLightModelivSGIX v1 v2 = liftIO $ dyn143 ptr_glFragmentLightModelivSGIX v1 v2
+
+{-# NOINLINE ptr_glFragmentLightModelivSGIX #-}
+ptr_glFragmentLightModelivSGIX :: FunPtr (GLenum -> Ptr GLint -> IO ())
+ptr_glFragmentLightModelivSGIX = unsafePerformIO $ getCommand "glFragmentLightModelivSGIX"
+
+-- glFragmentLightfSGIX --------------------------------------------------------
+
+glFragmentLightfSGIX
+  :: MonadIO m
+  => GLenum -- ^ @light@ of type [FragmentLightNameSGIX](Graphics-GL-Groups.html#FragmentLightNameSGIX).
+  -> GLenum -- ^ @pname@ of type [FragmentLightParameterSGIX](Graphics-GL-Groups.html#FragmentLightParameterSGIX).
+  -> GLfloat -- ^ @param@ of type @CheckedFloat32@.
+  -> m ()
+glFragmentLightfSGIX v1 v2 v3 = liftIO $ dyn168 ptr_glFragmentLightfSGIX v1 v2 v3
+
+{-# NOINLINE ptr_glFragmentLightfSGIX #-}
+ptr_glFragmentLightfSGIX :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
+ptr_glFragmentLightfSGIX = unsafePerformIO $ getCommand "glFragmentLightfSGIX"
+
+-- glFragmentLightfvSGIX -------------------------------------------------------
+
+glFragmentLightfvSGIX
+  :: MonadIO m
+  => GLenum -- ^ @light@ of type [FragmentLightNameSGIX](Graphics-GL-Groups.html#FragmentLightNameSGIX).
+  -> GLenum -- ^ @pname@ of type [FragmentLightParameterSGIX](Graphics-GL-Groups.html#FragmentLightParameterSGIX).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @CheckedFloat32@.
+  -> m ()
+glFragmentLightfvSGIX v1 v2 v3 = liftIO $ dyn139 ptr_glFragmentLightfvSGIX v1 v2 v3
+
+{-# NOINLINE ptr_glFragmentLightfvSGIX #-}
+ptr_glFragmentLightfvSGIX :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glFragmentLightfvSGIX = unsafePerformIO $ getCommand "glFragmentLightfvSGIX"
+
+-- glFragmentLightiSGIX --------------------------------------------------------
+
+glFragmentLightiSGIX
+  :: MonadIO m
+  => GLenum -- ^ @light@ of type [FragmentLightNameSGIX](Graphics-GL-Groups.html#FragmentLightNameSGIX).
+  -> GLenum -- ^ @pname@ of type [FragmentLightParameterSGIX](Graphics-GL-Groups.html#FragmentLightParameterSGIX).
+  -> GLint -- ^ @param@ of type @CheckedInt32@.
+  -> m ()
+glFragmentLightiSGIX v1 v2 v3 = liftIO $ dyn66 ptr_glFragmentLightiSGIX v1 v2 v3
+
+{-# NOINLINE ptr_glFragmentLightiSGIX #-}
+ptr_glFragmentLightiSGIX :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
+ptr_glFragmentLightiSGIX = unsafePerformIO $ getCommand "glFragmentLightiSGIX"
+
+-- glFragmentLightivSGIX -------------------------------------------------------
+
+glFragmentLightivSGIX
+  :: MonadIO m
+  => GLenum -- ^ @light@ of type [FragmentLightNameSGIX](Graphics-GL-Groups.html#FragmentLightNameSGIX).
+  -> GLenum -- ^ @pname@ of type [FragmentLightParameterSGIX](Graphics-GL-Groups.html#FragmentLightParameterSGIX).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @CheckedInt32@.
+  -> m ()
+glFragmentLightivSGIX v1 v2 v3 = liftIO $ dyn140 ptr_glFragmentLightivSGIX v1 v2 v3
+
+{-# NOINLINE ptr_glFragmentLightivSGIX #-}
+ptr_glFragmentLightivSGIX :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glFragmentLightivSGIX = unsafePerformIO $ getCommand "glFragmentLightivSGIX"
+
+-- glFragmentMaterialfSGIX -----------------------------------------------------
+
+glFragmentMaterialfSGIX
+  :: MonadIO m
+  => GLenum -- ^ @face@ of type [MaterialFace](Graphics-GL-Groups.html#MaterialFace).
+  -> GLenum -- ^ @pname@ of type [MaterialParameter](Graphics-GL-Groups.html#MaterialParameter).
+  -> GLfloat -- ^ @param@ of type @CheckedFloat32@.
+  -> m ()
+glFragmentMaterialfSGIX v1 v2 v3 = liftIO $ dyn168 ptr_glFragmentMaterialfSGIX v1 v2 v3
+
+{-# NOINLINE ptr_glFragmentMaterialfSGIX #-}
+ptr_glFragmentMaterialfSGIX :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
+ptr_glFragmentMaterialfSGIX = unsafePerformIO $ getCommand "glFragmentMaterialfSGIX"
+
+-- glFragmentMaterialfvSGIX ----------------------------------------------------
+
+glFragmentMaterialfvSGIX
+  :: MonadIO m
+  => GLenum -- ^ @face@ of type [MaterialFace](Graphics-GL-Groups.html#MaterialFace).
+  -> GLenum -- ^ @pname@ of type [MaterialParameter](Graphics-GL-Groups.html#MaterialParameter).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @CheckedFloat32@.
+  -> m ()
+glFragmentMaterialfvSGIX v1 v2 v3 = liftIO $ dyn139 ptr_glFragmentMaterialfvSGIX v1 v2 v3
+
+{-# NOINLINE ptr_glFragmentMaterialfvSGIX #-}
+ptr_glFragmentMaterialfvSGIX :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glFragmentMaterialfvSGIX = unsafePerformIO $ getCommand "glFragmentMaterialfvSGIX"
+
+-- glFragmentMaterialiSGIX -----------------------------------------------------
+
+glFragmentMaterialiSGIX
+  :: MonadIO m
+  => GLenum -- ^ @face@ of type [MaterialFace](Graphics-GL-Groups.html#MaterialFace).
+  -> GLenum -- ^ @pname@ of type [MaterialParameter](Graphics-GL-Groups.html#MaterialParameter).
+  -> GLint -- ^ @param@ of type @CheckedInt32@.
+  -> m ()
+glFragmentMaterialiSGIX v1 v2 v3 = liftIO $ dyn66 ptr_glFragmentMaterialiSGIX v1 v2 v3
+
+{-# NOINLINE ptr_glFragmentMaterialiSGIX #-}
+ptr_glFragmentMaterialiSGIX :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
+ptr_glFragmentMaterialiSGIX = unsafePerformIO $ getCommand "glFragmentMaterialiSGIX"
+
+-- glFragmentMaterialivSGIX ----------------------------------------------------
+
+glFragmentMaterialivSGIX
+  :: MonadIO m
+  => GLenum -- ^ @face@ of type [MaterialFace](Graphics-GL-Groups.html#MaterialFace).
+  -> GLenum -- ^ @pname@ of type [MaterialParameter](Graphics-GL-Groups.html#MaterialParameter).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @CheckedInt32@.
+  -> m ()
+glFragmentMaterialivSGIX v1 v2 v3 = liftIO $ dyn140 ptr_glFragmentMaterialivSGIX v1 v2 v3
+
+{-# NOINLINE ptr_glFragmentMaterialivSGIX #-}
+ptr_glFragmentMaterialivSGIX :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glFragmentMaterialivSGIX = unsafePerformIO $ getCommand "glFragmentMaterialivSGIX"
+
+-- glFrameTerminatorGREMEDY ----------------------------------------------------
+
+glFrameTerminatorGREMEDY
+  :: MonadIO m
+  => m ()
+glFrameTerminatorGREMEDY = liftIO $ dyn11 ptr_glFrameTerminatorGREMEDY
+
+{-# NOINLINE ptr_glFrameTerminatorGREMEDY #-}
+ptr_glFrameTerminatorGREMEDY :: FunPtr (IO ())
+ptr_glFrameTerminatorGREMEDY = unsafePerformIO $ getCommand "glFrameTerminatorGREMEDY"
+
+-- glFrameZoomSGIX -------------------------------------------------------------
+
+glFrameZoomSGIX
+  :: MonadIO m
+  => GLint -- ^ @factor@ of type @CheckedInt32@.
+  -> m ()
+glFrameZoomSGIX v1 = liftIO $ dyn13 ptr_glFrameZoomSGIX v1
+
+{-# NOINLINE ptr_glFrameZoomSGIX #-}
+ptr_glFrameZoomSGIX :: FunPtr (GLint -> IO ())
+ptr_glFrameZoomSGIX = unsafePerformIO $ getCommand "glFrameZoomSGIX"
+
+-- glFramebufferDrawBufferEXT --------------------------------------------------
+
+glFramebufferDrawBufferEXT
+  :: MonadIO m
+  => GLuint -- ^ @framebuffer@ of type @Framebuffer@.
+  -> GLenum -- ^ @mode@ of type [DrawBufferMode](Graphics-GL-Groups.html#DrawBufferMode).
+  -> m ()
+glFramebufferDrawBufferEXT v1 v2 = liftIO $ dyn18 ptr_glFramebufferDrawBufferEXT v1 v2
+
+{-# NOINLINE ptr_glFramebufferDrawBufferEXT #-}
+ptr_glFramebufferDrawBufferEXT :: FunPtr (GLuint -> GLenum -> IO ())
+ptr_glFramebufferDrawBufferEXT = unsafePerformIO $ getCommand "glFramebufferDrawBufferEXT"
+
+-- glFramebufferDrawBuffersEXT -------------------------------------------------
+
+glFramebufferDrawBuffersEXT
+  :: MonadIO m
+  => GLuint -- ^ @framebuffer@ of type @Framebuffer@.
+  -> GLsizei -- ^ @n@.
+  -> Ptr GLenum -- ^ @bufs@ pointing to @n@ elements of type [DrawBufferMode](Graphics-GL-Groups.html#DrawBufferMode).
+  -> m ()
+glFramebufferDrawBuffersEXT v1 v2 v3 = liftIO $ dyn293 ptr_glFramebufferDrawBuffersEXT v1 v2 v3
+
+{-# NOINLINE ptr_glFramebufferDrawBuffersEXT #-}
+ptr_glFramebufferDrawBuffersEXT :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> IO ())
+ptr_glFramebufferDrawBuffersEXT = unsafePerformIO $ getCommand "glFramebufferDrawBuffersEXT"
+
+-- glFramebufferFetchBarrierEXT ------------------------------------------------
+
+glFramebufferFetchBarrierEXT
+  :: MonadIO m
+  => m ()
+glFramebufferFetchBarrierEXT = liftIO $ dyn11 ptr_glFramebufferFetchBarrierEXT
+
+{-# NOINLINE ptr_glFramebufferFetchBarrierEXT #-}
+ptr_glFramebufferFetchBarrierEXT :: FunPtr (IO ())
+ptr_glFramebufferFetchBarrierEXT = unsafePerformIO $ getCommand "glFramebufferFetchBarrierEXT"
+
+-- glFramebufferFetchBarrierQCOM -----------------------------------------------
+
+glFramebufferFetchBarrierQCOM
+  :: MonadIO m
+  => m ()
+glFramebufferFetchBarrierQCOM = liftIO $ dyn11 ptr_glFramebufferFetchBarrierQCOM
+
+{-# NOINLINE ptr_glFramebufferFetchBarrierQCOM #-}
+ptr_glFramebufferFetchBarrierQCOM :: FunPtr (IO ())
+ptr_glFramebufferFetchBarrierQCOM = unsafePerformIO $ getCommand "glFramebufferFetchBarrierQCOM"
+
+-- glFramebufferFoveationConfigQCOM --------------------------------------------
+
+glFramebufferFoveationConfigQCOM
+  :: MonadIO m
+  => GLuint -- ^ @framebuffer@ of type @Framebuffer@.
+  -> GLuint -- ^ @numLayers@.
+  -> GLuint -- ^ @focalPointsPerLayer@.
+  -> GLuint -- ^ @requestedFeatures@.
+  -> Ptr GLuint -- ^ @providedFeatures@ pointing to @1@ element of type @GLuint@.
+  -> m ()
+glFramebufferFoveationConfigQCOM v1 v2 v3 v4 v5 = liftIO $ dyn294 ptr_glFramebufferFoveationConfigQCOM v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glFramebufferFoveationConfigQCOM #-}
+ptr_glFramebufferFoveationConfigQCOM :: FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> Ptr GLuint -> IO ())
+ptr_glFramebufferFoveationConfigQCOM = unsafePerformIO $ getCommand "glFramebufferFoveationConfigQCOM"
+
+-- glFramebufferFoveationParametersQCOM ----------------------------------------
+
+glFramebufferFoveationParametersQCOM
+  :: MonadIO m
+  => GLuint -- ^ @framebuffer@ of type @Framebuffer@.
+  -> GLuint -- ^ @layer@.
+  -> GLuint -- ^ @focalPoint@.
+  -> GLfloat -- ^ @focalX@ of type @CheckedFloat32@.
+  -> GLfloat -- ^ @focalY@ of type @CheckedFloat32@.
+  -> GLfloat -- ^ @gainX@ of type @CheckedFloat32@.
+  -> GLfloat -- ^ @gainY@ of type @CheckedFloat32@.
+  -> GLfloat -- ^ @foveaArea@ of type @CheckedFloat32@.
+  -> m ()
+glFramebufferFoveationParametersQCOM v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn295 ptr_glFramebufferFoveationParametersQCOM v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glFramebufferFoveationParametersQCOM #-}
+ptr_glFramebufferFoveationParametersQCOM :: FunPtr (GLuint -> GLuint -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glFramebufferFoveationParametersQCOM = unsafePerformIO $ getCommand "glFramebufferFoveationParametersQCOM"
+
+-- glFramebufferParameteri -----------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glFramebufferParameteri.xhtml OpenGL 4.x>.
+glFramebufferParameteri
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [FramebufferTarget](Graphics-GL-Groups.html#FramebufferTarget).
+  -> GLenum -- ^ @pname@ of type [FramebufferParameterName](Graphics-GL-Groups.html#FramebufferParameterName).
+  -> GLint -- ^ @param@.
+  -> m ()
+glFramebufferParameteri v1 v2 v3 = liftIO $ dyn66 ptr_glFramebufferParameteri v1 v2 v3
+
+{-# NOINLINE ptr_glFramebufferParameteri #-}
+ptr_glFramebufferParameteri :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
+ptr_glFramebufferParameteri = unsafePerformIO $ getCommand "glFramebufferParameteri"
+
+-- glFramebufferParameteriMESA -------------------------------------------------
+
+glFramebufferParameteriMESA
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [FramebufferTarget](Graphics-GL-Groups.html#FramebufferTarget).
+  -> GLenum -- ^ @pname@ of type [FramebufferParameterName](Graphics-GL-Groups.html#FramebufferParameterName).
+  -> GLint -- ^ @param@.
+  -> m ()
+glFramebufferParameteriMESA v1 v2 v3 = liftIO $ dyn66 ptr_glFramebufferParameteriMESA v1 v2 v3
+
+{-# NOINLINE ptr_glFramebufferParameteriMESA #-}
+ptr_glFramebufferParameteriMESA :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
+ptr_glFramebufferParameteriMESA = unsafePerformIO $ getCommand "glFramebufferParameteriMESA"
+
+-- glFramebufferPixelLocalStorageSizeEXT ---------------------------------------
+
+glFramebufferPixelLocalStorageSizeEXT
+  :: MonadIO m
+  => GLuint -- ^ @target@.
+  -> GLsizei -- ^ @size@.
+  -> m ()
+glFramebufferPixelLocalStorageSizeEXT v1 v2 = liftIO $ dyn219 ptr_glFramebufferPixelLocalStorageSizeEXT v1 v2
+
+{-# NOINLINE ptr_glFramebufferPixelLocalStorageSizeEXT #-}
+ptr_glFramebufferPixelLocalStorageSizeEXT :: FunPtr (GLuint -> GLsizei -> IO ())
+ptr_glFramebufferPixelLocalStorageSizeEXT = unsafePerformIO $ getCommand "glFramebufferPixelLocalStorageSizeEXT"
+
+-- glFramebufferReadBufferEXT --------------------------------------------------
+
+glFramebufferReadBufferEXT
+  :: MonadIO m
+  => GLuint -- ^ @framebuffer@ of type @Framebuffer@.
+  -> GLenum -- ^ @mode@ of type [ReadBufferMode](Graphics-GL-Groups.html#ReadBufferMode).
+  -> m ()
+glFramebufferReadBufferEXT v1 v2 = liftIO $ dyn18 ptr_glFramebufferReadBufferEXT v1 v2
+
+{-# NOINLINE ptr_glFramebufferReadBufferEXT #-}
+ptr_glFramebufferReadBufferEXT :: FunPtr (GLuint -> GLenum -> IO ())
+ptr_glFramebufferReadBufferEXT = unsafePerformIO $ getCommand "glFramebufferReadBufferEXT"
+
+-- glFramebufferRenderbuffer ---------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glFramebufferRenderbuffer.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glFramebufferRenderbuffer.xhtml OpenGL 4.x>.
+glFramebufferRenderbuffer
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [FramebufferTarget](Graphics-GL-Groups.html#FramebufferTarget).
+  -> GLenum -- ^ @attachment@ of type [FramebufferAttachment](Graphics-GL-Groups.html#FramebufferAttachment).
+  -> GLenum -- ^ @renderbuffertarget@ of type [RenderbufferTarget](Graphics-GL-Groups.html#RenderbufferTarget).
+  -> GLuint -- ^ @renderbuffer@.
+  -> m ()
+glFramebufferRenderbuffer v1 v2 v3 v4 = liftIO $ dyn296 ptr_glFramebufferRenderbuffer v1 v2 v3 v4
+
+{-# NOINLINE ptr_glFramebufferRenderbuffer #-}
+ptr_glFramebufferRenderbuffer :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> IO ())
+ptr_glFramebufferRenderbuffer = unsafePerformIO $ getCommand "glFramebufferRenderbuffer"
+
+-- glFramebufferRenderbufferEXT ------------------------------------------------
+
+-- | This command is an alias for 'glFramebufferRenderbuffer'.
+glFramebufferRenderbufferEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [FramebufferTarget](Graphics-GL-Groups.html#FramebufferTarget).
+  -> GLenum -- ^ @attachment@ of type [FramebufferAttachment](Graphics-GL-Groups.html#FramebufferAttachment).
+  -> GLenum -- ^ @renderbuffertarget@ of type [RenderbufferTarget](Graphics-GL-Groups.html#RenderbufferTarget).
+  -> GLuint -- ^ @renderbuffer@.
+  -> m ()
+glFramebufferRenderbufferEXT v1 v2 v3 v4 = liftIO $ dyn296 ptr_glFramebufferRenderbufferEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glFramebufferRenderbufferEXT #-}
+ptr_glFramebufferRenderbufferEXT :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> IO ())
+ptr_glFramebufferRenderbufferEXT = unsafePerformIO $ getCommand "glFramebufferRenderbufferEXT"
+
+-- glFramebufferRenderbufferOES ------------------------------------------------
+
+glFramebufferRenderbufferOES
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [FramebufferTarget](Graphics-GL-Groups.html#FramebufferTarget).
+  -> GLenum -- ^ @attachment@ of type [FramebufferAttachment](Graphics-GL-Groups.html#FramebufferAttachment).
+  -> GLenum -- ^ @renderbuffertarget@ of type [RenderbufferTarget](Graphics-GL-Groups.html#RenderbufferTarget).
+  -> GLuint -- ^ @renderbuffer@.
+  -> m ()
+glFramebufferRenderbufferOES v1 v2 v3 v4 = liftIO $ dyn296 ptr_glFramebufferRenderbufferOES v1 v2 v3 v4
+
+{-# NOINLINE ptr_glFramebufferRenderbufferOES #-}
+ptr_glFramebufferRenderbufferOES :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> IO ())
+ptr_glFramebufferRenderbufferOES = unsafePerformIO $ getCommand "glFramebufferRenderbufferOES"
+
+-- glFramebufferSampleLocationsfvARB -------------------------------------------
+
+glFramebufferSampleLocationsfvARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [FramebufferTarget](Graphics-GL-Groups.html#FramebufferTarget).
+  -> GLuint -- ^ @start@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLfloat -- ^ @v@.
+  -> m ()
+glFramebufferSampleLocationsfvARB v1 v2 v3 v4 = liftIO $ dyn297 ptr_glFramebufferSampleLocationsfvARB v1 v2 v3 v4
+
+{-# NOINLINE ptr_glFramebufferSampleLocationsfvARB #-}
+ptr_glFramebufferSampleLocationsfvARB :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+ptr_glFramebufferSampleLocationsfvARB = unsafePerformIO $ getCommand "glFramebufferSampleLocationsfvARB"
+
+-- glFramebufferSampleLocationsfvNV --------------------------------------------
+
+glFramebufferSampleLocationsfvNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [FramebufferTarget](Graphics-GL-Groups.html#FramebufferTarget).
+  -> GLuint -- ^ @start@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLfloat -- ^ @v@.
+  -> m ()
+glFramebufferSampleLocationsfvNV v1 v2 v3 v4 = liftIO $ dyn297 ptr_glFramebufferSampleLocationsfvNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glFramebufferSampleLocationsfvNV #-}
+ptr_glFramebufferSampleLocationsfvNV :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+ptr_glFramebufferSampleLocationsfvNV = unsafePerformIO $ getCommand "glFramebufferSampleLocationsfvNV"
+
+-- glFramebufferSamplePositionsfvAMD -------------------------------------------
+
+glFramebufferSamplePositionsfvAMD
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [FramebufferTarget](Graphics-GL-Groups.html#FramebufferTarget).
+  -> GLuint -- ^ @numsamples@.
+  -> GLuint -- ^ @pixelindex@.
+  -> Ptr GLfloat -- ^ @values@.
+  -> m ()
+glFramebufferSamplePositionsfvAMD v1 v2 v3 v4 = liftIO $ dyn298 ptr_glFramebufferSamplePositionsfvAMD v1 v2 v3 v4
+
+{-# NOINLINE ptr_glFramebufferSamplePositionsfvAMD #-}
+ptr_glFramebufferSamplePositionsfvAMD :: FunPtr (GLenum -> GLuint -> GLuint -> Ptr GLfloat -> IO ())
+ptr_glFramebufferSamplePositionsfvAMD = unsafePerformIO $ getCommand "glFramebufferSamplePositionsfvAMD"
+
+-- glFramebufferTexture --------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glFramebufferTexture.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glFramebufferTexture.xhtml OpenGL 4.x>.
+glFramebufferTexture
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [FramebufferTarget](Graphics-GL-Groups.html#FramebufferTarget).
+  -> GLenum -- ^ @attachment@ of type [FramebufferAttachment](Graphics-GL-Groups.html#FramebufferAttachment).
+  -> GLuint -- ^ @texture@.
+  -> GLint -- ^ @level@.
+  -> m ()
+glFramebufferTexture v1 v2 v3 v4 = liftIO $ dyn299 ptr_glFramebufferTexture v1 v2 v3 v4
+
+{-# NOINLINE ptr_glFramebufferTexture #-}
+ptr_glFramebufferTexture :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> IO ())
+ptr_glFramebufferTexture = unsafePerformIO $ getCommand "glFramebufferTexture"
+
+-- glFramebufferTexture1D ------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glFramebufferTexture.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glFramebufferTexture.xhtml OpenGL 4.x>.
+glFramebufferTexture1D
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [FramebufferTarget](Graphics-GL-Groups.html#FramebufferTarget).
+  -> GLenum -- ^ @attachment@ of type [FramebufferAttachment](Graphics-GL-Groups.html#FramebufferAttachment).
+  -> GLenum -- ^ @textarget@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLuint -- ^ @texture@.
+  -> GLint -- ^ @level@.
+  -> m ()
+glFramebufferTexture1D v1 v2 v3 v4 v5 = liftIO $ dyn300 ptr_glFramebufferTexture1D v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glFramebufferTexture1D #-}
+ptr_glFramebufferTexture1D :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> IO ())
+ptr_glFramebufferTexture1D = unsafePerformIO $ getCommand "glFramebufferTexture1D"
+
+-- glFramebufferTexture1DEXT ---------------------------------------------------
+
+-- | This command is an alias for 'glFramebufferTexture1D'.
+glFramebufferTexture1DEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [FramebufferTarget](Graphics-GL-Groups.html#FramebufferTarget).
+  -> GLenum -- ^ @attachment@ of type [FramebufferAttachment](Graphics-GL-Groups.html#FramebufferAttachment).
+  -> GLenum -- ^ @textarget@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLuint -- ^ @texture@.
+  -> GLint -- ^ @level@.
+  -> m ()
+glFramebufferTexture1DEXT v1 v2 v3 v4 v5 = liftIO $ dyn300 ptr_glFramebufferTexture1DEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glFramebufferTexture1DEXT #-}
+ptr_glFramebufferTexture1DEXT :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> IO ())
+ptr_glFramebufferTexture1DEXT = unsafePerformIO $ getCommand "glFramebufferTexture1DEXT"
+
+-- glFramebufferTexture2D ------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glFramebufferTexture.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glFramebufferTexture.xhtml OpenGL 4.x>.
+glFramebufferTexture2D
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [FramebufferTarget](Graphics-GL-Groups.html#FramebufferTarget).
+  -> GLenum -- ^ @attachment@ of type [FramebufferAttachment](Graphics-GL-Groups.html#FramebufferAttachment).
+  -> GLenum -- ^ @textarget@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLuint -- ^ @texture@.
+  -> GLint -- ^ @level@.
+  -> m ()
+glFramebufferTexture2D v1 v2 v3 v4 v5 = liftIO $ dyn300 ptr_glFramebufferTexture2D v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glFramebufferTexture2D #-}
+ptr_glFramebufferTexture2D :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> IO ())
+ptr_glFramebufferTexture2D = unsafePerformIO $ getCommand "glFramebufferTexture2D"
+
+-- glFramebufferTexture2DDownsampleIMG -----------------------------------------
+
+glFramebufferTexture2DDownsampleIMG
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [FramebufferTarget](Graphics-GL-Groups.html#FramebufferTarget).
+  -> GLenum -- ^ @attachment@ of type [FramebufferAttachment](Graphics-GL-Groups.html#FramebufferAttachment).
+  -> GLenum -- ^ @textarget@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLuint -- ^ @texture@.
+  -> GLint -- ^ @level@.
+  -> GLint -- ^ @xscale@.
+  -> GLint -- ^ @yscale@.
+  -> m ()
+glFramebufferTexture2DDownsampleIMG v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn301 ptr_glFramebufferTexture2DDownsampleIMG v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glFramebufferTexture2DDownsampleIMG #-}
+ptr_glFramebufferTexture2DDownsampleIMG :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> GLint -> IO ())
+ptr_glFramebufferTexture2DDownsampleIMG = unsafePerformIO $ getCommand "glFramebufferTexture2DDownsampleIMG"
+
+-- glFramebufferTexture2DEXT ---------------------------------------------------
+
+-- | This command is an alias for 'glFramebufferTexture2D'.
+glFramebufferTexture2DEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [FramebufferTarget](Graphics-GL-Groups.html#FramebufferTarget).
+  -> GLenum -- ^ @attachment@ of type [FramebufferAttachment](Graphics-GL-Groups.html#FramebufferAttachment).
+  -> GLenum -- ^ @textarget@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLuint -- ^ @texture@.
+  -> GLint -- ^ @level@.
+  -> m ()
+glFramebufferTexture2DEXT v1 v2 v3 v4 v5 = liftIO $ dyn300 ptr_glFramebufferTexture2DEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glFramebufferTexture2DEXT #-}
+ptr_glFramebufferTexture2DEXT :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> IO ())
+ptr_glFramebufferTexture2DEXT = unsafePerformIO $ getCommand "glFramebufferTexture2DEXT"
+
+-- glFramebufferTexture2DMultisampleEXT ----------------------------------------
+
+glFramebufferTexture2DMultisampleEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [FramebufferTarget](Graphics-GL-Groups.html#FramebufferTarget).
+  -> GLenum -- ^ @attachment@ of type [FramebufferAttachment](Graphics-GL-Groups.html#FramebufferAttachment).
+  -> GLenum -- ^ @textarget@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLuint -- ^ @texture@.
+  -> GLint -- ^ @level@.
+  -> GLsizei -- ^ @samples@.
+  -> m ()
+glFramebufferTexture2DMultisampleEXT v1 v2 v3 v4 v5 v6 = liftIO $ dyn302 ptr_glFramebufferTexture2DMultisampleEXT v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glFramebufferTexture2DMultisampleEXT #-}
+ptr_glFramebufferTexture2DMultisampleEXT :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLsizei -> IO ())
+ptr_glFramebufferTexture2DMultisampleEXT = unsafePerformIO $ getCommand "glFramebufferTexture2DMultisampleEXT"
+
+-- glFramebufferTexture2DMultisampleIMG ----------------------------------------
+
+glFramebufferTexture2DMultisampleIMG
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [FramebufferTarget](Graphics-GL-Groups.html#FramebufferTarget).
+  -> GLenum -- ^ @attachment@ of type [FramebufferAttachment](Graphics-GL-Groups.html#FramebufferAttachment).
+  -> GLenum -- ^ @textarget@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLuint -- ^ @texture@.
+  -> GLint -- ^ @level@.
+  -> GLsizei -- ^ @samples@.
+  -> m ()
+glFramebufferTexture2DMultisampleIMG v1 v2 v3 v4 v5 v6 = liftIO $ dyn302 ptr_glFramebufferTexture2DMultisampleIMG v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glFramebufferTexture2DMultisampleIMG #-}
+ptr_glFramebufferTexture2DMultisampleIMG :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLsizei -> IO ())
+ptr_glFramebufferTexture2DMultisampleIMG = unsafePerformIO $ getCommand "glFramebufferTexture2DMultisampleIMG"
+
+-- glFramebufferTexture2DOES ---------------------------------------------------
+
+glFramebufferTexture2DOES
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [FramebufferTarget](Graphics-GL-Groups.html#FramebufferTarget).
+  -> GLenum -- ^ @attachment@ of type [FramebufferAttachment](Graphics-GL-Groups.html#FramebufferAttachment).
+  -> GLenum -- ^ @textarget@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLuint -- ^ @texture@.
+  -> GLint -- ^ @level@.
+  -> m ()
+glFramebufferTexture2DOES v1 v2 v3 v4 v5 = liftIO $ dyn300 ptr_glFramebufferTexture2DOES v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glFramebufferTexture2DOES #-}
+ptr_glFramebufferTexture2DOES :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> IO ())
+ptr_glFramebufferTexture2DOES = unsafePerformIO $ getCommand "glFramebufferTexture2DOES"
+
+-- glFramebufferTexture3D ------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glFramebufferTexture.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glFramebufferTexture.xhtml OpenGL 4.x>.
+glFramebufferTexture3D
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [FramebufferTarget](Graphics-GL-Groups.html#FramebufferTarget).
+  -> GLenum -- ^ @attachment@ of type [FramebufferAttachment](Graphics-GL-Groups.html#FramebufferAttachment).
+  -> GLenum -- ^ @textarget@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLuint -- ^ @texture@.
+  -> GLint -- ^ @level@.
+  -> GLint -- ^ @zoffset@.
+  -> m ()
+glFramebufferTexture3D v1 v2 v3 v4 v5 v6 = liftIO $ dyn303 ptr_glFramebufferTexture3D v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glFramebufferTexture3D #-}
+ptr_glFramebufferTexture3D :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ())
+ptr_glFramebufferTexture3D = unsafePerformIO $ getCommand "glFramebufferTexture3D"
+
+-- glFramebufferTexture3DEXT ---------------------------------------------------
+
+-- | This command is an alias for 'glFramebufferTexture3D'.
+glFramebufferTexture3DEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [FramebufferTarget](Graphics-GL-Groups.html#FramebufferTarget).
+  -> GLenum -- ^ @attachment@ of type [FramebufferAttachment](Graphics-GL-Groups.html#FramebufferAttachment).
+  -> GLenum -- ^ @textarget@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLuint -- ^ @texture@.
+  -> GLint -- ^ @level@.
+  -> GLint -- ^ @zoffset@.
+  -> m ()
+glFramebufferTexture3DEXT v1 v2 v3 v4 v5 v6 = liftIO $ dyn303 ptr_glFramebufferTexture3DEXT v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glFramebufferTexture3DEXT #-}
+ptr_glFramebufferTexture3DEXT :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ())
+ptr_glFramebufferTexture3DEXT = unsafePerformIO $ getCommand "glFramebufferTexture3DEXT"
+
+-- glFramebufferTexture3DOES ---------------------------------------------------
+
+glFramebufferTexture3DOES
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [FramebufferTarget](Graphics-GL-Groups.html#FramebufferTarget).
+  -> GLenum -- ^ @attachment@ of type [FramebufferAttachment](Graphics-GL-Groups.html#FramebufferAttachment).
+  -> GLenum -- ^ @textarget@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLuint -- ^ @texture@.
+  -> GLint -- ^ @level@.
+  -> GLint -- ^ @zoffset@.
+  -> m ()
+glFramebufferTexture3DOES v1 v2 v3 v4 v5 v6 = liftIO $ dyn303 ptr_glFramebufferTexture3DOES v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glFramebufferTexture3DOES #-}
+ptr_glFramebufferTexture3DOES :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ())
+ptr_glFramebufferTexture3DOES = unsafePerformIO $ getCommand "glFramebufferTexture3DOES"
+
+-- glFramebufferTextureARB -----------------------------------------------------
+
+-- | This command is an alias for 'glFramebufferTexture'.
+glFramebufferTextureARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [FramebufferTarget](Graphics-GL-Groups.html#FramebufferTarget).
+  -> GLenum -- ^ @attachment@ of type [FramebufferAttachment](Graphics-GL-Groups.html#FramebufferAttachment).
+  -> GLuint -- ^ @texture@ of type @Texture@.
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> m ()
+glFramebufferTextureARB v1 v2 v3 v4 = liftIO $ dyn299 ptr_glFramebufferTextureARB v1 v2 v3 v4
+
+{-# NOINLINE ptr_glFramebufferTextureARB #-}
+ptr_glFramebufferTextureARB :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> IO ())
+ptr_glFramebufferTextureARB = unsafePerformIO $ getCommand "glFramebufferTextureARB"
+
+-- glFramebufferTextureEXT -----------------------------------------------------
+
+-- | This command is an alias for 'glFramebufferTexture'.
+glFramebufferTextureEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [FramebufferTarget](Graphics-GL-Groups.html#FramebufferTarget).
+  -> GLenum -- ^ @attachment@ of type [FramebufferAttachment](Graphics-GL-Groups.html#FramebufferAttachment).
+  -> GLuint -- ^ @texture@ of type @Texture@.
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> m ()
+glFramebufferTextureEXT v1 v2 v3 v4 = liftIO $ dyn299 ptr_glFramebufferTextureEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glFramebufferTextureEXT #-}
+ptr_glFramebufferTextureEXT :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> IO ())
+ptr_glFramebufferTextureEXT = unsafePerformIO $ getCommand "glFramebufferTextureEXT"
+
+-- glFramebufferTextureFaceARB -------------------------------------------------
+
+glFramebufferTextureFaceARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [FramebufferTarget](Graphics-GL-Groups.html#FramebufferTarget).
+  -> GLenum -- ^ @attachment@ of type [FramebufferAttachment](Graphics-GL-Groups.html#FramebufferAttachment).
+  -> GLuint -- ^ @texture@ of type @Texture@.
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLenum -- ^ @face@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> m ()
+glFramebufferTextureFaceARB v1 v2 v3 v4 v5 = liftIO $ dyn304 ptr_glFramebufferTextureFaceARB v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glFramebufferTextureFaceARB #-}
+ptr_glFramebufferTextureFaceARB :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLenum -> IO ())
+ptr_glFramebufferTextureFaceARB = unsafePerformIO $ getCommand "glFramebufferTextureFaceARB"
+
+-- glFramebufferTextureFaceEXT -------------------------------------------------
+
+-- | This command is an alias for 'glFramebufferTextureFaceARB'.
+glFramebufferTextureFaceEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [FramebufferTarget](Graphics-GL-Groups.html#FramebufferTarget).
+  -> GLenum -- ^ @attachment@ of type [FramebufferAttachment](Graphics-GL-Groups.html#FramebufferAttachment).
+  -> GLuint -- ^ @texture@ of type @Texture@.
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLenum -- ^ @face@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> m ()
+glFramebufferTextureFaceEXT v1 v2 v3 v4 v5 = liftIO $ dyn304 ptr_glFramebufferTextureFaceEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glFramebufferTextureFaceEXT #-}
+ptr_glFramebufferTextureFaceEXT :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLenum -> IO ())
+ptr_glFramebufferTextureFaceEXT = unsafePerformIO $ getCommand "glFramebufferTextureFaceEXT"
+
+-- glFramebufferTextureLayer ---------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glFramebufferTextureLayer.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glFramebufferTextureLayer.xhtml OpenGL 4.x>.
+glFramebufferTextureLayer
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [FramebufferTarget](Graphics-GL-Groups.html#FramebufferTarget).
+  -> GLenum -- ^ @attachment@ of type [FramebufferAttachment](Graphics-GL-Groups.html#FramebufferAttachment).
+  -> GLuint -- ^ @texture@ of type @Texture@.
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLint -- ^ @layer@ of type @CheckedInt32@.
+  -> m ()
+glFramebufferTextureLayer v1 v2 v3 v4 v5 = liftIO $ dyn305 ptr_glFramebufferTextureLayer v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glFramebufferTextureLayer #-}
+ptr_glFramebufferTextureLayer :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ())
+ptr_glFramebufferTextureLayer = unsafePerformIO $ getCommand "glFramebufferTextureLayer"
+
+-- glFramebufferTextureLayerARB ------------------------------------------------
+
+-- | This command is an alias for 'glFramebufferTextureLayer'.
+glFramebufferTextureLayerARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [FramebufferTarget](Graphics-GL-Groups.html#FramebufferTarget).
+  -> GLenum -- ^ @attachment@ of type [FramebufferAttachment](Graphics-GL-Groups.html#FramebufferAttachment).
+  -> GLuint -- ^ @texture@ of type @Texture@.
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLint -- ^ @layer@ of type @CheckedInt32@.
+  -> m ()
+glFramebufferTextureLayerARB v1 v2 v3 v4 v5 = liftIO $ dyn305 ptr_glFramebufferTextureLayerARB v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glFramebufferTextureLayerARB #-}
+ptr_glFramebufferTextureLayerARB :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ())
+ptr_glFramebufferTextureLayerARB = unsafePerformIO $ getCommand "glFramebufferTextureLayerARB"
+
+-- glFramebufferTextureLayerDownsampleIMG --------------------------------------
+
+glFramebufferTextureLayerDownsampleIMG
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [FramebufferTarget](Graphics-GL-Groups.html#FramebufferTarget).
+  -> GLenum -- ^ @attachment@ of type [FramebufferAttachment](Graphics-GL-Groups.html#FramebufferAttachment).
+  -> GLuint -- ^ @texture@ of type @Texture@.
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLint -- ^ @layer@ of type @CheckedInt32@.
+  -> GLint -- ^ @xscale@.
+  -> GLint -- ^ @yscale@.
+  -> m ()
+glFramebufferTextureLayerDownsampleIMG v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn306 ptr_glFramebufferTextureLayerDownsampleIMG v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glFramebufferTextureLayerDownsampleIMG #-}
+ptr_glFramebufferTextureLayerDownsampleIMG :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
+ptr_glFramebufferTextureLayerDownsampleIMG = unsafePerformIO $ getCommand "glFramebufferTextureLayerDownsampleIMG"
+
+-- glFramebufferTextureLayerEXT ------------------------------------------------
+
+-- | This command is an alias for 'glFramebufferTextureLayer'.
+glFramebufferTextureLayerEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [FramebufferTarget](Graphics-GL-Groups.html#FramebufferTarget).
+  -> GLenum -- ^ @attachment@ of type [FramebufferAttachment](Graphics-GL-Groups.html#FramebufferAttachment).
+  -> GLuint -- ^ @texture@ of type @Texture@.
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLint -- ^ @layer@ of type @CheckedInt32@.
+  -> m ()
+glFramebufferTextureLayerEXT v1 v2 v3 v4 v5 = liftIO $ dyn305 ptr_glFramebufferTextureLayerEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glFramebufferTextureLayerEXT #-}
+ptr_glFramebufferTextureLayerEXT :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ())
+ptr_glFramebufferTextureLayerEXT = unsafePerformIO $ getCommand "glFramebufferTextureLayerEXT"
+
+-- glFramebufferTextureMultisampleMultiviewOVR ---------------------------------
+
+glFramebufferTextureMultisampleMultiviewOVR
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [FramebufferTarget](Graphics-GL-Groups.html#FramebufferTarget).
+  -> GLenum -- ^ @attachment@ of type [FramebufferAttachment](Graphics-GL-Groups.html#FramebufferAttachment).
+  -> GLuint -- ^ @texture@ of type @Texture@.
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLsizei -- ^ @samples@.
+  -> GLint -- ^ @baseViewIndex@.
+  -> GLsizei -- ^ @numViews@.
+  -> m ()
+glFramebufferTextureMultisampleMultiviewOVR v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn307 ptr_glFramebufferTextureMultisampleMultiviewOVR v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glFramebufferTextureMultisampleMultiviewOVR #-}
+ptr_glFramebufferTextureMultisampleMultiviewOVR :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLsizei -> GLint -> GLsizei -> IO ())
+ptr_glFramebufferTextureMultisampleMultiviewOVR = unsafePerformIO $ getCommand "glFramebufferTextureMultisampleMultiviewOVR"
+
+-- glFramebufferTextureMultiviewOVR --------------------------------------------
+
+glFramebufferTextureMultiviewOVR
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [FramebufferTarget](Graphics-GL-Groups.html#FramebufferTarget).
+  -> GLenum -- ^ @attachment@ of type [FramebufferAttachment](Graphics-GL-Groups.html#FramebufferAttachment).
+  -> GLuint -- ^ @texture@ of type @Texture@.
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLint -- ^ @baseViewIndex@.
+  -> GLsizei -- ^ @numViews@.
+  -> m ()
+glFramebufferTextureMultiviewOVR v1 v2 v3 v4 v5 v6 = liftIO $ dyn308 ptr_glFramebufferTextureMultiviewOVR v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glFramebufferTextureMultiviewOVR #-}
+ptr_glFramebufferTextureMultiviewOVR :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> GLint -> GLsizei -> IO ())
+ptr_glFramebufferTextureMultiviewOVR = unsafePerformIO $ getCommand "glFramebufferTextureMultiviewOVR"
+
+-- glFramebufferTextureOES -----------------------------------------------------
+
+-- | This command is an alias for 'glFramebufferTexture'.
+glFramebufferTextureOES
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [FramebufferTarget](Graphics-GL-Groups.html#FramebufferTarget).
+  -> GLenum -- ^ @attachment@ of type [FramebufferAttachment](Graphics-GL-Groups.html#FramebufferAttachment).
+  -> GLuint -- ^ @texture@ of type @Texture@.
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> m ()
+glFramebufferTextureOES v1 v2 v3 v4 = liftIO $ dyn299 ptr_glFramebufferTextureOES v1 v2 v3 v4
+
+{-# NOINLINE ptr_glFramebufferTextureOES #-}
+ptr_glFramebufferTextureOES :: FunPtr (GLenum -> GLenum -> GLuint -> GLint -> IO ())
+ptr_glFramebufferTextureOES = unsafePerformIO $ getCommand "glFramebufferTextureOES"
+
+-- glFreeObjectBufferATI -------------------------------------------------------
+
+glFreeObjectBufferATI
+  :: MonadIO m
+  => GLuint -- ^ @buffer@.
+  -> m ()
+glFreeObjectBufferATI v1 = liftIO $ dyn3 ptr_glFreeObjectBufferATI v1
+
+{-# NOINLINE ptr_glFreeObjectBufferATI #-}
+ptr_glFreeObjectBufferATI :: FunPtr (GLuint -> IO ())
+ptr_glFreeObjectBufferATI = unsafePerformIO $ getCommand "glFreeObjectBufferATI"
+
+-- glFrontFace -----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glFrontFace.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glFrontFace.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glFrontFace.xhtml OpenGL 4.x>.
+glFrontFace
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [FrontFaceDirection](Graphics-GL-Groups.html#FrontFaceDirection).
+  -> m ()
+glFrontFace v1 = liftIO $ dyn5 ptr_glFrontFace v1
+
+{-# NOINLINE ptr_glFrontFace #-}
+ptr_glFrontFace :: FunPtr (GLenum -> IO ())
+ptr_glFrontFace = unsafePerformIO $ getCommand "glFrontFace"
+
+-- glFrustum -------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glFrustum.xml OpenGL 2.x>.
+glFrustum
+  :: MonadIO m
+  => GLdouble -- ^ @left@.
+  -> GLdouble -- ^ @right@.
+  -> GLdouble -- ^ @bottom@.
+  -> GLdouble -- ^ @top@.
+  -> GLdouble -- ^ @zNear@.
+  -> GLdouble -- ^ @zFar@.
+  -> m ()
+glFrustum v1 v2 v3 v4 v5 v6 = liftIO $ dyn309 ptr_glFrustum v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glFrustum #-}
+ptr_glFrustum :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+ptr_glFrustum = unsafePerformIO $ getCommand "glFrustum"
+
+-- glFrustumf ------------------------------------------------------------------
+
+glFrustumf
+  :: MonadIO m
+  => GLfloat -- ^ @l@.
+  -> GLfloat -- ^ @r@.
+  -> GLfloat -- ^ @b@.
+  -> GLfloat -- ^ @t@.
+  -> GLfloat -- ^ @n@.
+  -> GLfloat -- ^ @f@.
+  -> m ()
+glFrustumf v1 v2 v3 v4 v5 v6 = liftIO $ dyn103 ptr_glFrustumf v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glFrustumf #-}
+ptr_glFrustumf :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glFrustumf = unsafePerformIO $ getCommand "glFrustumf"
+
+-- glFrustumfOES ---------------------------------------------------------------
+
+glFrustumfOES
+  :: MonadIO m
+  => GLfloat -- ^ @l@.
+  -> GLfloat -- ^ @r@.
+  -> GLfloat -- ^ @b@.
+  -> GLfloat -- ^ @t@.
+  -> GLfloat -- ^ @n@.
+  -> GLfloat -- ^ @f@.
+  -> m ()
+glFrustumfOES v1 v2 v3 v4 v5 v6 = liftIO $ dyn103 ptr_glFrustumfOES v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glFrustumfOES #-}
+ptr_glFrustumfOES :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glFrustumfOES = unsafePerformIO $ getCommand "glFrustumfOES"
+
+-- glFrustumx ------------------------------------------------------------------
+
+glFrustumx
+  :: MonadIO m
+  => GLfixed -- ^ @l@.
+  -> GLfixed -- ^ @r@.
+  -> GLfixed -- ^ @b@.
+  -> GLfixed -- ^ @t@.
+  -> GLfixed -- ^ @n@.
+  -> GLfixed -- ^ @f@.
+  -> m ()
+glFrustumx v1 v2 v3 v4 v5 v6 = liftIO $ dyn310 ptr_glFrustumx v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glFrustumx #-}
+ptr_glFrustumx :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
+ptr_glFrustumx = unsafePerformIO $ getCommand "glFrustumx"
+
+-- glFrustumxOES ---------------------------------------------------------------
+
+glFrustumxOES
+  :: MonadIO m
+  => GLfixed -- ^ @l@.
+  -> GLfixed -- ^ @r@.
+  -> GLfixed -- ^ @b@.
+  -> GLfixed -- ^ @t@.
+  -> GLfixed -- ^ @n@.
+  -> GLfixed -- ^ @f@.
+  -> m ()
+glFrustumxOES v1 v2 v3 v4 v5 v6 = liftIO $ dyn310 ptr_glFrustumxOES v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glFrustumxOES #-}
+ptr_glFrustumxOES :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
+ptr_glFrustumxOES = unsafePerformIO $ getCommand "glFrustumxOES"
+
+-- glGenAsyncMarkersSGIX -------------------------------------------------------
+
+glGenAsyncMarkersSGIX
+  :: MonadIO m
+  => GLsizei -- ^ @range@.
+  -> m GLuint
+glGenAsyncMarkersSGIX v1 = liftIO $ dyn311 ptr_glGenAsyncMarkersSGIX v1
+
+{-# NOINLINE ptr_glGenAsyncMarkersSGIX #-}
+ptr_glGenAsyncMarkersSGIX :: FunPtr (GLsizei -> IO GLuint)
+ptr_glGenAsyncMarkersSGIX = unsafePerformIO $ getCommand "glGenAsyncMarkersSGIX"
+
+-- glGenBuffers ----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGenBuffers.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGenBuffers.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGenBuffers.xhtml OpenGL 4.x>.
+glGenBuffers
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @buffers@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glGenBuffers v1 v2 = liftIO $ dyn200 ptr_glGenBuffers v1 v2
+
+{-# NOINLINE ptr_glGenBuffers #-}
+ptr_glGenBuffers :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glGenBuffers = unsafePerformIO $ getCommand "glGenBuffers"
+
+-- glGenBuffersARB -------------------------------------------------------------
+
+-- | This command is an alias for 'glGenBuffers'.
+glGenBuffersARB
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @buffers@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glGenBuffersARB v1 v2 = liftIO $ dyn200 ptr_glGenBuffersARB v1 v2
+
+{-# NOINLINE ptr_glGenBuffersARB #-}
+ptr_glGenBuffersARB :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glGenBuffersARB = unsafePerformIO $ getCommand "glGenBuffersARB"
+
diff --git a/src/Graphics/GL/Functions/F09.hs b/src/Graphics/GL/Functions/F09.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Functions/F09.hs
@@ -0,0 +1,1591 @@
+{-# OPTIONS_HADDOCK hide #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Functions.F09
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- Raw functions from the
+-- <http://www.opengl.org/registry/ OpenGL registry>.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Functions.F09 (
+  glGenFencesAPPLE,
+  glGenFencesNV,
+  glGenFragmentShadersATI,
+  glGenFramebuffers,
+  glGenFramebuffersEXT,
+  glGenFramebuffersOES,
+  glGenLists,
+  glGenNamesAMD,
+  glGenOcclusionQueriesNV,
+  glGenPathsNV,
+  glGenPerfMonitorsAMD,
+  glGenProgramPipelines,
+  glGenProgramPipelinesEXT,
+  glGenProgramsARB,
+  glGenProgramsNV,
+  glGenQueries,
+  glGenQueriesARB,
+  glGenQueriesEXT,
+  glGenQueryResourceTagNV,
+  glGenRenderbuffers,
+  glGenRenderbuffersEXT,
+  glGenRenderbuffersOES,
+  glGenSamplers,
+  glGenSemaphoresEXT,
+  glGenSymbolsEXT,
+  glGenTextures,
+  glGenTexturesEXT,
+  glGenTransformFeedbacks,
+  glGenTransformFeedbacksNV,
+  glGenVertexArrays,
+  glGenVertexArraysAPPLE,
+  glGenVertexArraysOES,
+  glGenVertexShadersEXT,
+  glGenerateMipmap,
+  glGenerateMipmapEXT,
+  glGenerateMipmapOES,
+  glGenerateMultiTexMipmapEXT,
+  glGenerateTextureMipmap,
+  glGenerateTextureMipmapEXT,
+  glGetActiveAtomicCounterBufferiv,
+  glGetActiveAttrib,
+  glGetActiveAttribARB,
+  glGetActiveSubroutineName,
+  glGetActiveSubroutineUniformName,
+  glGetActiveSubroutineUniformiv,
+  glGetActiveUniform,
+  glGetActiveUniformARB,
+  glGetActiveUniformBlockName,
+  glGetActiveUniformBlockiv,
+  glGetActiveUniformName,
+  glGetActiveUniformsiv,
+  glGetActiveVaryingNV,
+  glGetArrayObjectfvATI,
+  glGetArrayObjectivATI,
+  glGetAttachedObjectsARB,
+  glGetAttachedShaders,
+  glGetAttribLocation,
+  glGetAttribLocationARB,
+  glGetBooleanIndexedvEXT,
+  glGetBooleani_v,
+  glGetBooleanv,
+  glGetBufferParameteri64v,
+  glGetBufferParameteriv,
+  glGetBufferParameterivARB,
+  glGetBufferParameterui64vNV,
+  glGetBufferPointerv,
+  glGetBufferPointervARB,
+  glGetBufferPointervOES,
+  glGetBufferSubData,
+  glGetBufferSubDataARB,
+  glGetClipPlane,
+  glGetClipPlanef,
+  glGetClipPlanefOES,
+  glGetClipPlanex,
+  glGetClipPlanexOES,
+  glGetColorTable,
+  glGetColorTableEXT,
+  glGetColorTableParameterfv,
+  glGetColorTableParameterfvEXT,
+  glGetColorTableParameterfvSGI,
+  glGetColorTableParameteriv,
+  glGetColorTableParameterivEXT,
+  glGetColorTableParameterivSGI,
+  glGetColorTableSGI,
+  glGetCombinerInputParameterfvNV,
+  glGetCombinerInputParameterivNV,
+  glGetCombinerOutputParameterfvNV,
+  glGetCombinerOutputParameterivNV,
+  glGetCombinerStageParameterfvNV,
+  glGetCommandHeaderNV,
+  glGetCompressedMultiTexImageEXT,
+  glGetCompressedTexImage,
+  glGetCompressedTexImageARB,
+  glGetCompressedTextureImage,
+  glGetCompressedTextureImageEXT,
+  glGetCompressedTextureSubImage,
+  glGetConvolutionFilter,
+  glGetConvolutionFilterEXT,
+  glGetConvolutionParameterfv,
+  glGetConvolutionParameterfvEXT
+) where
+
+import Control.Monad.IO.Class ( MonadIO(..) )
+import Foreign.Ptr
+import Graphics.GL.Foreign
+import Graphics.GL.Types
+import System.IO.Unsafe ( unsafePerformIO )
+
+-- glGenFencesAPPLE ------------------------------------------------------------
+
+glGenFencesAPPLE
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @fences@ pointing to @n@ elements of type @FenceNV@.
+  -> m ()
+glGenFencesAPPLE v1 v2 = liftIO $ dyn200 ptr_glGenFencesAPPLE v1 v2
+
+{-# NOINLINE ptr_glGenFencesAPPLE #-}
+ptr_glGenFencesAPPLE :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glGenFencesAPPLE = unsafePerformIO $ getCommand "glGenFencesAPPLE"
+
+-- glGenFencesNV ---------------------------------------------------------------
+
+glGenFencesNV
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @fences@ pointing to @n@ elements of type @FenceNV@.
+  -> m ()
+glGenFencesNV v1 v2 = liftIO $ dyn200 ptr_glGenFencesNV v1 v2
+
+{-# NOINLINE ptr_glGenFencesNV #-}
+ptr_glGenFencesNV :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glGenFencesNV = unsafePerformIO $ getCommand "glGenFencesNV"
+
+-- glGenFragmentShadersATI -----------------------------------------------------
+
+glGenFragmentShadersATI
+  :: MonadIO m
+  => GLuint -- ^ @range@.
+  -> m GLuint
+glGenFragmentShadersATI v1 = liftIO $ dyn312 ptr_glGenFragmentShadersATI v1
+
+{-# NOINLINE ptr_glGenFragmentShadersATI #-}
+ptr_glGenFragmentShadersATI :: FunPtr (GLuint -> IO GLuint)
+ptr_glGenFragmentShadersATI = unsafePerformIO $ getCommand "glGenFragmentShadersATI"
+
+-- glGenFramebuffers -----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGenFramebuffers.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGenFramebuffers.xhtml OpenGL 4.x>.
+glGenFramebuffers
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @framebuffers@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glGenFramebuffers v1 v2 = liftIO $ dyn200 ptr_glGenFramebuffers v1 v2
+
+{-# NOINLINE ptr_glGenFramebuffers #-}
+ptr_glGenFramebuffers :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glGenFramebuffers = unsafePerformIO $ getCommand "glGenFramebuffers"
+
+-- glGenFramebuffersEXT --------------------------------------------------------
+
+-- | This command is an alias for 'glGenFramebuffers'.
+glGenFramebuffersEXT
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @framebuffers@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glGenFramebuffersEXT v1 v2 = liftIO $ dyn200 ptr_glGenFramebuffersEXT v1 v2
+
+{-# NOINLINE ptr_glGenFramebuffersEXT #-}
+ptr_glGenFramebuffersEXT :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glGenFramebuffersEXT = unsafePerformIO $ getCommand "glGenFramebuffersEXT"
+
+-- glGenFramebuffersOES --------------------------------------------------------
+
+glGenFramebuffersOES
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @framebuffers@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glGenFramebuffersOES v1 v2 = liftIO $ dyn200 ptr_glGenFramebuffersOES v1 v2
+
+{-# NOINLINE ptr_glGenFramebuffersOES #-}
+ptr_glGenFramebuffersOES :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glGenFramebuffersOES = unsafePerformIO $ getCommand "glGenFramebuffersOES"
+
+-- glGenLists ------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glGenLists.xml OpenGL 2.x>.
+glGenLists
+  :: MonadIO m
+  => GLsizei -- ^ @range@.
+  -> m GLuint -- ^ of type @List@.
+glGenLists v1 = liftIO $ dyn311 ptr_glGenLists v1
+
+{-# NOINLINE ptr_glGenLists #-}
+ptr_glGenLists :: FunPtr (GLsizei -> IO GLuint)
+ptr_glGenLists = unsafePerformIO $ getCommand "glGenLists"
+
+-- glGenNamesAMD ---------------------------------------------------------------
+
+glGenNamesAMD
+  :: MonadIO m
+  => GLenum -- ^ @identifier@.
+  -> GLuint -- ^ @num@.
+  -> Ptr GLuint -- ^ @names@ pointing to @num@ elements of type @GLuint@.
+  -> m ()
+glGenNamesAMD v1 v2 v3 = liftIO $ dyn221 ptr_glGenNamesAMD v1 v2 v3
+
+{-# NOINLINE ptr_glGenNamesAMD #-}
+ptr_glGenNamesAMD :: FunPtr (GLenum -> GLuint -> Ptr GLuint -> IO ())
+ptr_glGenNamesAMD = unsafePerformIO $ getCommand "glGenNamesAMD"
+
+-- glGenOcclusionQueriesNV -----------------------------------------------------
+
+glGenOcclusionQueriesNV
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @ids@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glGenOcclusionQueriesNV v1 v2 = liftIO $ dyn200 ptr_glGenOcclusionQueriesNV v1 v2
+
+{-# NOINLINE ptr_glGenOcclusionQueriesNV #-}
+ptr_glGenOcclusionQueriesNV :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glGenOcclusionQueriesNV = unsafePerformIO $ getCommand "glGenOcclusionQueriesNV"
+
+-- glGenPathsNV ----------------------------------------------------------------
+
+glGenPathsNV
+  :: MonadIO m
+  => GLsizei -- ^ @range@.
+  -> m GLuint -- ^ of type @Path@.
+glGenPathsNV v1 = liftIO $ dyn311 ptr_glGenPathsNV v1
+
+{-# NOINLINE ptr_glGenPathsNV #-}
+ptr_glGenPathsNV :: FunPtr (GLsizei -> IO GLuint)
+ptr_glGenPathsNV = unsafePerformIO $ getCommand "glGenPathsNV"
+
+-- glGenPerfMonitorsAMD --------------------------------------------------------
+
+glGenPerfMonitorsAMD
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @monitors@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glGenPerfMonitorsAMD v1 v2 = liftIO $ dyn200 ptr_glGenPerfMonitorsAMD v1 v2
+
+{-# NOINLINE ptr_glGenPerfMonitorsAMD #-}
+ptr_glGenPerfMonitorsAMD :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glGenPerfMonitorsAMD = unsafePerformIO $ getCommand "glGenPerfMonitorsAMD"
+
+-- glGenProgramPipelines -------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGenProgramPipelines.xhtml OpenGL 4.x>.
+glGenProgramPipelines
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @pipelines@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glGenProgramPipelines v1 v2 = liftIO $ dyn200 ptr_glGenProgramPipelines v1 v2
+
+{-# NOINLINE ptr_glGenProgramPipelines #-}
+ptr_glGenProgramPipelines :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glGenProgramPipelines = unsafePerformIO $ getCommand "glGenProgramPipelines"
+
+-- glGenProgramPipelinesEXT ----------------------------------------------------
+
+glGenProgramPipelinesEXT
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @pipelines@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glGenProgramPipelinesEXT v1 v2 = liftIO $ dyn200 ptr_glGenProgramPipelinesEXT v1 v2
+
+{-# NOINLINE ptr_glGenProgramPipelinesEXT #-}
+ptr_glGenProgramPipelinesEXT :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glGenProgramPipelinesEXT = unsafePerformIO $ getCommand "glGenProgramPipelinesEXT"
+
+-- glGenProgramsARB ------------------------------------------------------------
+
+glGenProgramsARB
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @programs@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glGenProgramsARB v1 v2 = liftIO $ dyn200 ptr_glGenProgramsARB v1 v2
+
+{-# NOINLINE ptr_glGenProgramsARB #-}
+ptr_glGenProgramsARB :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glGenProgramsARB = unsafePerformIO $ getCommand "glGenProgramsARB"
+
+-- glGenProgramsNV -------------------------------------------------------------
+
+-- | This command is an alias for 'glGenProgramsARB'.
+glGenProgramsNV
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @programs@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glGenProgramsNV v1 v2 = liftIO $ dyn200 ptr_glGenProgramsNV v1 v2
+
+{-# NOINLINE ptr_glGenProgramsNV #-}
+ptr_glGenProgramsNV :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glGenProgramsNV = unsafePerformIO $ getCommand "glGenProgramsNV"
+
+-- glGenQueries ----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGenQueries.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGenQueries.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGenQueries.xhtml OpenGL 4.x>.
+glGenQueries
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @ids@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glGenQueries v1 v2 = liftIO $ dyn200 ptr_glGenQueries v1 v2
+
+{-# NOINLINE ptr_glGenQueries #-}
+ptr_glGenQueries :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glGenQueries = unsafePerformIO $ getCommand "glGenQueries"
+
+-- glGenQueriesARB -------------------------------------------------------------
+
+-- | This command is an alias for 'glGenQueries'.
+glGenQueriesARB
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @ids@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glGenQueriesARB v1 v2 = liftIO $ dyn200 ptr_glGenQueriesARB v1 v2
+
+{-# NOINLINE ptr_glGenQueriesARB #-}
+ptr_glGenQueriesARB :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glGenQueriesARB = unsafePerformIO $ getCommand "glGenQueriesARB"
+
+-- glGenQueriesEXT -------------------------------------------------------------
+
+glGenQueriesEXT
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @ids@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glGenQueriesEXT v1 v2 = liftIO $ dyn200 ptr_glGenQueriesEXT v1 v2
+
+{-# NOINLINE ptr_glGenQueriesEXT #-}
+ptr_glGenQueriesEXT :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glGenQueriesEXT = unsafePerformIO $ getCommand "glGenQueriesEXT"
+
+-- glGenQueryResourceTagNV -----------------------------------------------------
+
+glGenQueryResourceTagNV
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLint -- ^ @tagIds@ pointing to @n@ elements of type @GLint@.
+  -> m ()
+glGenQueryResourceTagNV v1 v2 = liftIO $ dyn222 ptr_glGenQueryResourceTagNV v1 v2
+
+{-# NOINLINE ptr_glGenQueryResourceTagNV #-}
+ptr_glGenQueryResourceTagNV :: FunPtr (GLsizei -> Ptr GLint -> IO ())
+ptr_glGenQueryResourceTagNV = unsafePerformIO $ getCommand "glGenQueryResourceTagNV"
+
+-- glGenRenderbuffers ----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGenRenderbuffers.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGenRenderbuffers.xhtml OpenGL 4.x>.
+glGenRenderbuffers
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @renderbuffers@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glGenRenderbuffers v1 v2 = liftIO $ dyn200 ptr_glGenRenderbuffers v1 v2
+
+{-# NOINLINE ptr_glGenRenderbuffers #-}
+ptr_glGenRenderbuffers :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glGenRenderbuffers = unsafePerformIO $ getCommand "glGenRenderbuffers"
+
+-- glGenRenderbuffersEXT -------------------------------------------------------
+
+-- | This command is an alias for 'glGenRenderbuffers'.
+glGenRenderbuffersEXT
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @renderbuffers@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glGenRenderbuffersEXT v1 v2 = liftIO $ dyn200 ptr_glGenRenderbuffersEXT v1 v2
+
+{-# NOINLINE ptr_glGenRenderbuffersEXT #-}
+ptr_glGenRenderbuffersEXT :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glGenRenderbuffersEXT = unsafePerformIO $ getCommand "glGenRenderbuffersEXT"
+
+-- glGenRenderbuffersOES -------------------------------------------------------
+
+glGenRenderbuffersOES
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @renderbuffers@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glGenRenderbuffersOES v1 v2 = liftIO $ dyn200 ptr_glGenRenderbuffersOES v1 v2
+
+{-# NOINLINE ptr_glGenRenderbuffersOES #-}
+ptr_glGenRenderbuffersOES :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glGenRenderbuffersOES = unsafePerformIO $ getCommand "glGenRenderbuffersOES"
+
+-- glGenSamplers ---------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGenSamplers.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGenSamplers.xhtml OpenGL 4.x>.
+glGenSamplers
+  :: MonadIO m
+  => GLsizei -- ^ @count@.
+  -> Ptr GLuint -- ^ @samplers@ pointing to @count@ elements of type @GLuint@.
+  -> m ()
+glGenSamplers v1 v2 = liftIO $ dyn200 ptr_glGenSamplers v1 v2
+
+{-# NOINLINE ptr_glGenSamplers #-}
+ptr_glGenSamplers :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glGenSamplers = unsafePerformIO $ getCommand "glGenSamplers"
+
+-- glGenSemaphoresEXT ----------------------------------------------------------
+
+glGenSemaphoresEXT
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @semaphores@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glGenSemaphoresEXT v1 v2 = liftIO $ dyn200 ptr_glGenSemaphoresEXT v1 v2
+
+{-# NOINLINE ptr_glGenSemaphoresEXT #-}
+ptr_glGenSemaphoresEXT :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glGenSemaphoresEXT = unsafePerformIO $ getCommand "glGenSemaphoresEXT"
+
+-- glGenSymbolsEXT -------------------------------------------------------------
+
+glGenSymbolsEXT
+  :: MonadIO m
+  => GLenum -- ^ @datatype@ of type [DataTypeEXT](Graphics-GL-Groups.html#DataTypeEXT).
+  -> GLenum -- ^ @storagetype@ of type [VertexShaderStorageTypeEXT](Graphics-GL-Groups.html#VertexShaderStorageTypeEXT).
+  -> GLenum -- ^ @range@ of type [ParameterRangeEXT](Graphics-GL-Groups.html#ParameterRangeEXT).
+  -> GLuint -- ^ @components@.
+  -> m GLuint
+glGenSymbolsEXT v1 v2 v3 v4 = liftIO $ dyn313 ptr_glGenSymbolsEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGenSymbolsEXT #-}
+ptr_glGenSymbolsEXT :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> IO GLuint)
+ptr_glGenSymbolsEXT = unsafePerformIO $ getCommand "glGenSymbolsEXT"
+
+-- glGenTextures ---------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGenTextures.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGenTextures.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGenTextures.xhtml OpenGL 4.x>.
+glGenTextures
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @textures@ pointing to @n@ elements of type @Texture@.
+  -> m ()
+glGenTextures v1 v2 = liftIO $ dyn200 ptr_glGenTextures v1 v2
+
+{-# NOINLINE ptr_glGenTextures #-}
+ptr_glGenTextures :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glGenTextures = unsafePerformIO $ getCommand "glGenTextures"
+
+-- glGenTexturesEXT ------------------------------------------------------------
+
+glGenTexturesEXT
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @textures@ pointing to @n@ elements of type @Texture@.
+  -> m ()
+glGenTexturesEXT v1 v2 = liftIO $ dyn200 ptr_glGenTexturesEXT v1 v2
+
+{-# NOINLINE ptr_glGenTexturesEXT #-}
+ptr_glGenTexturesEXT :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glGenTexturesEXT = unsafePerformIO $ getCommand "glGenTexturesEXT"
+
+-- glGenTransformFeedbacks -----------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGenTransformFeedbacks.xhtml OpenGL 4.x>.
+glGenTransformFeedbacks
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @ids@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glGenTransformFeedbacks v1 v2 = liftIO $ dyn200 ptr_glGenTransformFeedbacks v1 v2
+
+{-# NOINLINE ptr_glGenTransformFeedbacks #-}
+ptr_glGenTransformFeedbacks :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glGenTransformFeedbacks = unsafePerformIO $ getCommand "glGenTransformFeedbacks"
+
+-- glGenTransformFeedbacksNV ---------------------------------------------------
+
+-- | This command is an alias for 'glGenTransformFeedbacks'.
+glGenTransformFeedbacksNV
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @ids@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glGenTransformFeedbacksNV v1 v2 = liftIO $ dyn200 ptr_glGenTransformFeedbacksNV v1 v2
+
+{-# NOINLINE ptr_glGenTransformFeedbacksNV #-}
+ptr_glGenTransformFeedbacksNV :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glGenTransformFeedbacksNV = unsafePerformIO $ getCommand "glGenTransformFeedbacksNV"
+
+-- glGenVertexArrays -----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGenVertexArrays.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGenVertexArrays.xhtml OpenGL 4.x>.
+glGenVertexArrays
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @arrays@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glGenVertexArrays v1 v2 = liftIO $ dyn200 ptr_glGenVertexArrays v1 v2
+
+{-# NOINLINE ptr_glGenVertexArrays #-}
+ptr_glGenVertexArrays :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glGenVertexArrays = unsafePerformIO $ getCommand "glGenVertexArrays"
+
+-- glGenVertexArraysAPPLE ------------------------------------------------------
+
+-- | This command is an alias for 'glGenVertexArrays'.
+glGenVertexArraysAPPLE
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @arrays@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glGenVertexArraysAPPLE v1 v2 = liftIO $ dyn200 ptr_glGenVertexArraysAPPLE v1 v2
+
+{-# NOINLINE ptr_glGenVertexArraysAPPLE #-}
+ptr_glGenVertexArraysAPPLE :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glGenVertexArraysAPPLE = unsafePerformIO $ getCommand "glGenVertexArraysAPPLE"
+
+-- glGenVertexArraysOES --------------------------------------------------------
+
+-- | This command is an alias for 'glGenVertexArrays'.
+glGenVertexArraysOES
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @arrays@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glGenVertexArraysOES v1 v2 = liftIO $ dyn200 ptr_glGenVertexArraysOES v1 v2
+
+{-# NOINLINE ptr_glGenVertexArraysOES #-}
+ptr_glGenVertexArraysOES :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glGenVertexArraysOES = unsafePerformIO $ getCommand "glGenVertexArraysOES"
+
+-- glGenVertexShadersEXT -------------------------------------------------------
+
+glGenVertexShadersEXT
+  :: MonadIO m
+  => GLuint -- ^ @range@.
+  -> m GLuint
+glGenVertexShadersEXT v1 = liftIO $ dyn312 ptr_glGenVertexShadersEXT v1
+
+{-# NOINLINE ptr_glGenVertexShadersEXT #-}
+ptr_glGenVertexShadersEXT :: FunPtr (GLuint -> IO GLuint)
+ptr_glGenVertexShadersEXT = unsafePerformIO $ getCommand "glGenVertexShadersEXT"
+
+-- glGenerateMipmap ------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGenerateMipmap.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGenerateMipmap.xhtml OpenGL 4.x>.
+glGenerateMipmap
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> m ()
+glGenerateMipmap v1 = liftIO $ dyn5 ptr_glGenerateMipmap v1
+
+{-# NOINLINE ptr_glGenerateMipmap #-}
+ptr_glGenerateMipmap :: FunPtr (GLenum -> IO ())
+ptr_glGenerateMipmap = unsafePerformIO $ getCommand "glGenerateMipmap"
+
+-- glGenerateMipmapEXT ---------------------------------------------------------
+
+-- | This command is an alias for 'glGenerateMipmap'.
+glGenerateMipmapEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> m ()
+glGenerateMipmapEXT v1 = liftIO $ dyn5 ptr_glGenerateMipmapEXT v1
+
+{-# NOINLINE ptr_glGenerateMipmapEXT #-}
+ptr_glGenerateMipmapEXT :: FunPtr (GLenum -> IO ())
+ptr_glGenerateMipmapEXT = unsafePerformIO $ getCommand "glGenerateMipmapEXT"
+
+-- glGenerateMipmapOES ---------------------------------------------------------
+
+glGenerateMipmapOES
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> m ()
+glGenerateMipmapOES v1 = liftIO $ dyn5 ptr_glGenerateMipmapOES v1
+
+{-# NOINLINE ptr_glGenerateMipmapOES #-}
+ptr_glGenerateMipmapOES :: FunPtr (GLenum -> IO ())
+ptr_glGenerateMipmapOES = unsafePerformIO $ getCommand "glGenerateMipmapOES"
+
+-- glGenerateMultiTexMipmapEXT -------------------------------------------------
+
+glGenerateMultiTexMipmapEXT
+  :: MonadIO m
+  => GLenum -- ^ @texunit@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> m ()
+glGenerateMultiTexMipmapEXT v1 v2 = liftIO $ dyn54 ptr_glGenerateMultiTexMipmapEXT v1 v2
+
+{-# NOINLINE ptr_glGenerateMultiTexMipmapEXT #-}
+ptr_glGenerateMultiTexMipmapEXT :: FunPtr (GLenum -> GLenum -> IO ())
+ptr_glGenerateMultiTexMipmapEXT = unsafePerformIO $ getCommand "glGenerateMultiTexMipmapEXT"
+
+-- glGenerateTextureMipmap -----------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGenerateMipmap.xhtml OpenGL 4.x>.
+glGenerateTextureMipmap
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> m ()
+glGenerateTextureMipmap v1 = liftIO $ dyn3 ptr_glGenerateTextureMipmap v1
+
+{-# NOINLINE ptr_glGenerateTextureMipmap #-}
+ptr_glGenerateTextureMipmap :: FunPtr (GLuint -> IO ())
+ptr_glGenerateTextureMipmap = unsafePerformIO $ getCommand "glGenerateTextureMipmap"
+
+-- glGenerateTextureMipmapEXT --------------------------------------------------
+
+glGenerateTextureMipmapEXT
+  :: MonadIO m
+  => GLuint -- ^ @texture@ of type @Texture@.
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> m ()
+glGenerateTextureMipmapEXT v1 v2 = liftIO $ dyn18 ptr_glGenerateTextureMipmapEXT v1 v2
+
+{-# NOINLINE ptr_glGenerateTextureMipmapEXT #-}
+ptr_glGenerateTextureMipmapEXT :: FunPtr (GLuint -> GLenum -> IO ())
+ptr_glGenerateTextureMipmapEXT = unsafePerformIO $ getCommand "glGenerateTextureMipmapEXT"
+
+-- glGetActiveAtomicCounterBufferiv --------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetActiveAtomicCounterBufferiv.xhtml OpenGL 4.x>.
+glGetActiveAtomicCounterBufferiv
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLuint -- ^ @bufferIndex@.
+  -> GLenum -- ^ @pname@ of type [AtomicCounterBufferPName](Graphics-GL-Groups.html#AtomicCounterBufferPName).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetActiveAtomicCounterBufferiv v1 v2 v3 v4 = liftIO $ dyn314 ptr_glGetActiveAtomicCounterBufferiv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetActiveAtomicCounterBufferiv #-}
+ptr_glGetActiveAtomicCounterBufferiv :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetActiveAtomicCounterBufferiv = unsafePerformIO $ getCommand "glGetActiveAtomicCounterBufferiv"
+
+-- glGetActiveAttrib -----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetActiveAttrib.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGetActiveAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetActiveAttrib.xhtml OpenGL 4.x>.
+glGetActiveAttrib
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLuint -- ^ @index@.
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
+  -> Ptr GLint -- ^ @size@ pointing to @1@ element of type @GLint@.
+  -> Ptr GLenum -- ^ @type@ pointing to @1@ element of type [AttributeType](Graphics-GL-Groups.html#AttributeType).
+  -> Ptr GLchar -- ^ @name@ pointing to @bufSize@ elements of type @GLchar@.
+  -> m ()
+glGetActiveAttrib v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn315 ptr_glGetActiveAttrib v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glGetActiveAttrib #-}
+ptr_glGetActiveAttrib :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> IO ())
+ptr_glGetActiveAttrib = unsafePerformIO $ getCommand "glGetActiveAttrib"
+
+-- glGetActiveAttribARB --------------------------------------------------------
+
+-- | This command is an alias for 'glGetActiveAttrib'.
+glGetActiveAttribARB
+  :: MonadIO m
+  => GLhandleARB -- ^ @programObj@ of type @handleARB@.
+  -> GLuint -- ^ @index@.
+  -> GLsizei -- ^ @maxLength@.
+  -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
+  -> Ptr GLint -- ^ @size@ pointing to @1@ element of type @GLint@.
+  -> Ptr GLenum -- ^ @type@ pointing to @1@ element of type [AttributeType](Graphics-GL-Groups.html#AttributeType).
+  -> Ptr GLcharARB -- ^ @name@ pointing to @maxLength@ elements of type @GLcharARB@.
+  -> m ()
+glGetActiveAttribARB v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn316 ptr_glGetActiveAttribARB v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glGetActiveAttribARB #-}
+ptr_glGetActiveAttribARB :: FunPtr (GLhandleARB -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLcharARB -> IO ())
+ptr_glGetActiveAttribARB = unsafePerformIO $ getCommand "glGetActiveAttribARB"
+
+-- glGetActiveSubroutineName ---------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetActiveSubroutineName.xhtml OpenGL 4.x>.
+glGetActiveSubroutineName
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLenum -- ^ @shadertype@ of type [ShaderType](Graphics-GL-Groups.html#ShaderType).
+  -> GLuint -- ^ @index@.
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
+  -> Ptr GLchar -- ^ @name@ pointing to @bufSize@ elements of type @GLchar@.
+  -> m ()
+glGetActiveSubroutineName v1 v2 v3 v4 v5 v6 = liftIO $ dyn317 ptr_glGetActiveSubroutineName v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glGetActiveSubroutineName #-}
+ptr_glGetActiveSubroutineName :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+ptr_glGetActiveSubroutineName = unsafePerformIO $ getCommand "glGetActiveSubroutineName"
+
+-- glGetActiveSubroutineUniformName --------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetActiveSubroutineUniformName.xhtml OpenGL 4.x>.
+glGetActiveSubroutineUniformName
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLenum -- ^ @shadertype@ of type [ShaderType](Graphics-GL-Groups.html#ShaderType).
+  -> GLuint -- ^ @index@.
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
+  -> Ptr GLchar -- ^ @name@ pointing to @bufSize@ elements of type @GLchar@.
+  -> m ()
+glGetActiveSubroutineUniformName v1 v2 v3 v4 v5 v6 = liftIO $ dyn317 ptr_glGetActiveSubroutineUniformName v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glGetActiveSubroutineUniformName #-}
+ptr_glGetActiveSubroutineUniformName :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+ptr_glGetActiveSubroutineUniformName = unsafePerformIO $ getCommand "glGetActiveSubroutineUniformName"
+
+-- glGetActiveSubroutineUniformiv ----------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetActiveSubroutineUniform.xhtml OpenGL 4.x>.
+glGetActiveSubroutineUniformiv
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLenum -- ^ @shadertype@ of type [ShaderType](Graphics-GL-Groups.html#ShaderType).
+  -> GLuint -- ^ @index@.
+  -> GLenum -- ^ @pname@ of type [SubroutineParameterName](Graphics-GL-Groups.html#SubroutineParameterName).
+  -> Ptr GLint -- ^ @values@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetActiveSubroutineUniformiv v1 v2 v3 v4 v5 = liftIO $ dyn318 ptr_glGetActiveSubroutineUniformiv v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glGetActiveSubroutineUniformiv #-}
+ptr_glGetActiveSubroutineUniformiv :: FunPtr (GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetActiveSubroutineUniformiv = unsafePerformIO $ getCommand "glGetActiveSubroutineUniformiv"
+
+-- glGetActiveUniform ----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetActiveUniform.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGetActiveUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetActiveUniform.xhtml OpenGL 4.x>.
+glGetActiveUniform
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLuint -- ^ @index@.
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
+  -> Ptr GLint -- ^ @size@ pointing to @1@ element of type @GLint@.
+  -> Ptr GLenum -- ^ @type@ pointing to @1@ element of type [UniformType](Graphics-GL-Groups.html#UniformType).
+  -> Ptr GLchar -- ^ @name@ pointing to @bufSize@ elements of type @GLchar@.
+  -> m ()
+glGetActiveUniform v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn315 ptr_glGetActiveUniform v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glGetActiveUniform #-}
+ptr_glGetActiveUniform :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> IO ())
+ptr_glGetActiveUniform = unsafePerformIO $ getCommand "glGetActiveUniform"
+
+-- glGetActiveUniformARB -------------------------------------------------------
+
+-- | This command is an alias for 'glGetActiveUniform'.
+glGetActiveUniformARB
+  :: MonadIO m
+  => GLhandleARB -- ^ @programObj@ of type @handleARB@.
+  -> GLuint -- ^ @index@.
+  -> GLsizei -- ^ @maxLength@.
+  -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
+  -> Ptr GLint -- ^ @size@ pointing to @1@ element of type @GLint@.
+  -> Ptr GLenum -- ^ @type@ pointing to @1@ element of type [UniformType](Graphics-GL-Groups.html#UniformType).
+  -> Ptr GLcharARB -- ^ @name@ pointing to @maxLength@ elements of type @GLcharARB@.
+  -> m ()
+glGetActiveUniformARB v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn316 ptr_glGetActiveUniformARB v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glGetActiveUniformARB #-}
+ptr_glGetActiveUniformARB :: FunPtr (GLhandleARB -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLcharARB -> IO ())
+ptr_glGetActiveUniformARB = unsafePerformIO $ getCommand "glGetActiveUniformARB"
+
+-- glGetActiveUniformBlockName -------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGetActiveUniformBlockName.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetActiveUniformBlockName.xhtml OpenGL 4.x>.
+glGetActiveUniformBlockName
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLuint -- ^ @uniformBlockIndex@.
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
+  -> Ptr GLchar -- ^ @uniformBlockName@ pointing to @bufSize@ elements of type @GLchar@.
+  -> m ()
+glGetActiveUniformBlockName v1 v2 v3 v4 v5 = liftIO $ dyn319 ptr_glGetActiveUniformBlockName v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glGetActiveUniformBlockName #-}
+ptr_glGetActiveUniformBlockName :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+ptr_glGetActiveUniformBlockName = unsafePerformIO $ getCommand "glGetActiveUniformBlockName"
+
+-- glGetActiveUniformBlockiv ---------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGetActiveUniformBlock.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetActiveUniformBlock.xhtml OpenGL 4.x>.
+glGetActiveUniformBlockiv
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLuint -- ^ @uniformBlockIndex@.
+  -> GLenum -- ^ @pname@ of type [UniformBlockPName](Graphics-GL-Groups.html#UniformBlockPName).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(program,uniformBlockIndex,pname)@ elements of type @GLint@.
+  -> m ()
+glGetActiveUniformBlockiv v1 v2 v3 v4 = liftIO $ dyn314 ptr_glGetActiveUniformBlockiv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetActiveUniformBlockiv #-}
+ptr_glGetActiveUniformBlockiv :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetActiveUniformBlockiv = unsafePerformIO $ getCommand "glGetActiveUniformBlockiv"
+
+-- glGetActiveUniformName ------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGetActiveUniformName.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetActiveUniformName.xhtml OpenGL 4.x>.
+glGetActiveUniformName
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLuint -- ^ @uniformIndex@.
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
+  -> Ptr GLchar -- ^ @uniformName@ pointing to @bufSize@ elements of type @GLchar@.
+  -> m ()
+glGetActiveUniformName v1 v2 v3 v4 v5 = liftIO $ dyn319 ptr_glGetActiveUniformName v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glGetActiveUniformName #-}
+ptr_glGetActiveUniformName :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+ptr_glGetActiveUniformName = unsafePerformIO $ getCommand "glGetActiveUniformName"
+
+-- glGetActiveUniformsiv -------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGetActiveUniformsiv.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetActiveUniformsiv.xhtml OpenGL 4.x>.
+glGetActiveUniformsiv
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLsizei -- ^ @uniformCount@.
+  -> Ptr GLuint -- ^ @uniformIndices@ pointing to @uniformCount@ elements of type @GLuint@.
+  -> GLenum -- ^ @pname@ of type [UniformPName](Graphics-GL-Groups.html#UniformPName).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(uniformCount,pname)@ elements of type @GLint@.
+  -> m ()
+glGetActiveUniformsiv v1 v2 v3 v4 v5 = liftIO $ dyn320 ptr_glGetActiveUniformsiv v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glGetActiveUniformsiv #-}
+ptr_glGetActiveUniformsiv :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetActiveUniformsiv = unsafePerformIO $ getCommand "glGetActiveUniformsiv"
+
+-- glGetActiveVaryingNV --------------------------------------------------------
+
+glGetActiveVaryingNV
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLuint -- ^ @index@.
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
+  -> Ptr GLsizei -- ^ @size@ pointing to @1@ element of type @GLsizei@.
+  -> Ptr GLenum -- ^ @type@ pointing to @1@ element of type @GLenum@.
+  -> Ptr GLchar -- ^ @name@ pointing to @COMPSIZE(program,index,bufSize)@ elements of type @GLchar@.
+  -> m ()
+glGetActiveVaryingNV v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn321 ptr_glGetActiveVaryingNV v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glGetActiveVaryingNV #-}
+ptr_glGetActiveVaryingNV :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> IO ())
+ptr_glGetActiveVaryingNV = unsafePerformIO $ getCommand "glGetActiveVaryingNV"
+
+-- glGetArrayObjectfvATI -------------------------------------------------------
+
+glGetArrayObjectfvATI
+  :: MonadIO m
+  => GLenum -- ^ @array@ of type [EnableCap](Graphics-GL-Groups.html#EnableCap).
+  -> GLenum -- ^ @pname@ of type [ArrayObjectPNameATI](Graphics-GL-Groups.html#ArrayObjectPNameATI).
+  -> Ptr GLfloat -- ^ @params@ pointing to @1@ element of type @GLfloat@.
+  -> m ()
+glGetArrayObjectfvATI v1 v2 v3 = liftIO $ dyn139 ptr_glGetArrayObjectfvATI v1 v2 v3
+
+{-# NOINLINE ptr_glGetArrayObjectfvATI #-}
+ptr_glGetArrayObjectfvATI :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetArrayObjectfvATI = unsafePerformIO $ getCommand "glGetArrayObjectfvATI"
+
+-- glGetArrayObjectivATI -------------------------------------------------------
+
+glGetArrayObjectivATI
+  :: MonadIO m
+  => GLenum -- ^ @array@ of type [EnableCap](Graphics-GL-Groups.html#EnableCap).
+  -> GLenum -- ^ @pname@ of type [ArrayObjectPNameATI](Graphics-GL-Groups.html#ArrayObjectPNameATI).
+  -> Ptr GLint -- ^ @params@ pointing to @1@ element of type @GLint@.
+  -> m ()
+glGetArrayObjectivATI v1 v2 v3 = liftIO $ dyn140 ptr_glGetArrayObjectivATI v1 v2 v3
+
+{-# NOINLINE ptr_glGetArrayObjectivATI #-}
+ptr_glGetArrayObjectivATI :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetArrayObjectivATI = unsafePerformIO $ getCommand "glGetArrayObjectivATI"
+
+-- glGetAttachedObjectsARB -----------------------------------------------------
+
+glGetAttachedObjectsARB
+  :: MonadIO m
+  => GLhandleARB -- ^ @containerObj@ of type @handleARB@.
+  -> GLsizei -- ^ @maxCount@.
+  -> Ptr GLsizei -- ^ @count@ pointing to @1@ element of type @GLsizei@.
+  -> Ptr GLhandleARB -- ^ @obj@ pointing to @maxCount@ elements of type @handleARB@.
+  -> m ()
+glGetAttachedObjectsARB v1 v2 v3 v4 = liftIO $ dyn322 ptr_glGetAttachedObjectsARB v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetAttachedObjectsARB #-}
+ptr_glGetAttachedObjectsARB :: FunPtr (GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLhandleARB -> IO ())
+ptr_glGetAttachedObjectsARB = unsafePerformIO $ getCommand "glGetAttachedObjectsARB"
+
+-- glGetAttachedShaders --------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetAttachedShaders.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGetAttachedShaders.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetAttachedShaders.xhtml OpenGL 4.x>.
+glGetAttachedShaders
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLsizei -- ^ @maxCount@.
+  -> Ptr GLsizei -- ^ @count@ pointing to @1@ element of type @GLsizei@.
+  -> Ptr GLuint -- ^ @shaders@ pointing to @maxCount@ elements of type @GLuint@.
+  -> m ()
+glGetAttachedShaders v1 v2 v3 v4 = liftIO $ dyn323 ptr_glGetAttachedShaders v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetAttachedShaders #-}
+ptr_glGetAttachedShaders :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> IO ())
+ptr_glGetAttachedShaders = unsafePerformIO $ getCommand "glGetAttachedShaders"
+
+-- glGetAttribLocation ---------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetAttribLocation.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGetAttribLocation.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetAttribLocation.xhtml OpenGL 4.x>.
+glGetAttribLocation
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> Ptr GLchar -- ^ @name@.
+  -> m GLint
+glGetAttribLocation v1 v2 = liftIO $ dyn324 ptr_glGetAttribLocation v1 v2
+
+{-# NOINLINE ptr_glGetAttribLocation #-}
+ptr_glGetAttribLocation :: FunPtr (GLuint -> Ptr GLchar -> IO GLint)
+ptr_glGetAttribLocation = unsafePerformIO $ getCommand "glGetAttribLocation"
+
+-- glGetAttribLocationARB ------------------------------------------------------
+
+-- | This command is an alias for 'glGetAttribLocation'.
+glGetAttribLocationARB
+  :: MonadIO m
+  => GLhandleARB -- ^ @programObj@ of type @handleARB@.
+  -> Ptr GLcharARB -- ^ @name@.
+  -> m GLint
+glGetAttribLocationARB v1 v2 = liftIO $ dyn325 ptr_glGetAttribLocationARB v1 v2
+
+{-# NOINLINE ptr_glGetAttribLocationARB #-}
+ptr_glGetAttribLocationARB :: FunPtr (GLhandleARB -> Ptr GLcharARB -> IO GLint)
+ptr_glGetAttribLocationARB = unsafePerformIO $ getCommand "glGetAttribLocationARB"
+
+-- glGetBooleanIndexedvEXT -----------------------------------------------------
+
+-- | This command is an alias for 'glGetBooleani_v'.
+glGetBooleanIndexedvEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
+  -> GLuint -- ^ @index@.
+  -> Ptr GLboolean -- ^ @data@ pointing to @COMPSIZE(target)@ elements of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m ()
+glGetBooleanIndexedvEXT v1 v2 v3 = liftIO $ dyn326 ptr_glGetBooleanIndexedvEXT v1 v2 v3
+
+{-# NOINLINE ptr_glGetBooleanIndexedvEXT #-}
+ptr_glGetBooleanIndexedvEXT :: FunPtr (GLenum -> GLuint -> Ptr GLboolean -> IO ())
+ptr_glGetBooleanIndexedvEXT = unsafePerformIO $ getCommand "glGetBooleanIndexedvEXT"
+
+-- glGetBooleani_v -------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGet.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGet.xhtml OpenGL 4.x>.
+glGetBooleani_v
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
+  -> GLuint -- ^ @index@.
+  -> Ptr GLboolean -- ^ @data@ pointing to @COMPSIZE(target)@ elements of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m ()
+glGetBooleani_v v1 v2 v3 = liftIO $ dyn326 ptr_glGetBooleani_v v1 v2 v3
+
+{-# NOINLINE ptr_glGetBooleani_v #-}
+ptr_glGetBooleani_v :: FunPtr (GLenum -> GLuint -> Ptr GLboolean -> IO ())
+ptr_glGetBooleani_v = unsafePerformIO $ getCommand "glGetBooleani_v"
+
+-- glGetBooleanv ---------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGet.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGet.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGet.xhtml OpenGL 4.x>.
+glGetBooleanv
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [GetPName](Graphics-GL-Groups.html#GetPName).
+  -> Ptr GLboolean -- ^ @data@ pointing to @COMPSIZE(pname)@ elements of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m ()
+glGetBooleanv v1 v2 = liftIO $ dyn327 ptr_glGetBooleanv v1 v2
+
+{-# NOINLINE ptr_glGetBooleanv #-}
+ptr_glGetBooleanv :: FunPtr (GLenum -> Ptr GLboolean -> IO ())
+ptr_glGetBooleanv = unsafePerformIO $ getCommand "glGetBooleanv"
+
+-- glGetBufferParameteri64v ----------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGetBufferParameter.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetBufferParameter.xhtml OpenGL 4.x>.
+glGetBufferParameteri64v
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
+  -> GLenum -- ^ @pname@ of type [BufferPNameARB](Graphics-GL-Groups.html#BufferPNameARB).
+  -> Ptr GLint64 -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint64@.
+  -> m ()
+glGetBufferParameteri64v v1 v2 v3 = liftIO $ dyn328 ptr_glGetBufferParameteri64v v1 v2 v3
+
+{-# NOINLINE ptr_glGetBufferParameteri64v #-}
+ptr_glGetBufferParameteri64v :: FunPtr (GLenum -> GLenum -> Ptr GLint64 -> IO ())
+ptr_glGetBufferParameteri64v = unsafePerformIO $ getCommand "glGetBufferParameteri64v"
+
+-- glGetBufferParameteriv ------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetBufferParameteriv.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGetBufferParameter.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetBufferParameter.xhtml OpenGL 4.x>.
+glGetBufferParameteriv
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
+  -> GLenum -- ^ @pname@ of type [BufferPNameARB](Graphics-GL-Groups.html#BufferPNameARB).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetBufferParameteriv v1 v2 v3 = liftIO $ dyn140 ptr_glGetBufferParameteriv v1 v2 v3
+
+{-# NOINLINE ptr_glGetBufferParameteriv #-}
+ptr_glGetBufferParameteriv :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetBufferParameteriv = unsafePerformIO $ getCommand "glGetBufferParameteriv"
+
+-- glGetBufferParameterivARB ---------------------------------------------------
+
+-- | This command is an alias for 'glGetBufferParameteriv'.
+glGetBufferParameterivARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
+  -> GLenum -- ^ @pname@ of type [BufferPNameARB](Graphics-GL-Groups.html#BufferPNameARB).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetBufferParameterivARB v1 v2 v3 = liftIO $ dyn140 ptr_glGetBufferParameterivARB v1 v2 v3
+
+{-# NOINLINE ptr_glGetBufferParameterivARB #-}
+ptr_glGetBufferParameterivARB :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetBufferParameterivARB = unsafePerformIO $ getCommand "glGetBufferParameterivARB"
+
+-- glGetBufferParameterui64vNV -------------------------------------------------
+
+glGetBufferParameterui64vNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
+  -> GLenum -- ^ @pname@.
+  -> Ptr GLuint64EXT -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLuint64EXT@.
+  -> m ()
+glGetBufferParameterui64vNV v1 v2 v3 = liftIO $ dyn329 ptr_glGetBufferParameterui64vNV v1 v2 v3
+
+{-# NOINLINE ptr_glGetBufferParameterui64vNV #-}
+ptr_glGetBufferParameterui64vNV :: FunPtr (GLenum -> GLenum -> Ptr GLuint64EXT -> IO ())
+ptr_glGetBufferParameterui64vNV = unsafePerformIO $ getCommand "glGetBufferParameterui64vNV"
+
+-- glGetBufferPointerv ---------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetBufferPointerv.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGetBufferPointerv.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetBufferPointerv.xhtml OpenGL 4.x>.
+glGetBufferPointerv
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
+  -> GLenum -- ^ @pname@ of type [BufferPointerNameARB](Graphics-GL-Groups.html#BufferPointerNameARB).
+  -> Ptr (Ptr a) -- ^ @params@ pointing to @1@ element of type @Ptr a@.
+  -> m ()
+glGetBufferPointerv v1 v2 v3 = liftIO $ dyn330 ptr_glGetBufferPointerv v1 v2 v3
+
+{-# NOINLINE ptr_glGetBufferPointerv #-}
+ptr_glGetBufferPointerv :: FunPtr (GLenum -> GLenum -> Ptr (Ptr a) -> IO ())
+ptr_glGetBufferPointerv = unsafePerformIO $ getCommand "glGetBufferPointerv"
+
+-- glGetBufferPointervARB ------------------------------------------------------
+
+-- | This command is an alias for 'glGetBufferPointerv'.
+glGetBufferPointervARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
+  -> GLenum -- ^ @pname@ of type [BufferPointerNameARB](Graphics-GL-Groups.html#BufferPointerNameARB).
+  -> Ptr (Ptr a) -- ^ @params@ pointing to @1@ element of type @Ptr a@.
+  -> m ()
+glGetBufferPointervARB v1 v2 v3 = liftIO $ dyn330 ptr_glGetBufferPointervARB v1 v2 v3
+
+{-# NOINLINE ptr_glGetBufferPointervARB #-}
+ptr_glGetBufferPointervARB :: FunPtr (GLenum -> GLenum -> Ptr (Ptr a) -> IO ())
+ptr_glGetBufferPointervARB = unsafePerformIO $ getCommand "glGetBufferPointervARB"
+
+-- glGetBufferPointervOES ------------------------------------------------------
+
+-- | This command is an alias for 'glGetBufferPointerv'.
+glGetBufferPointervOES
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
+  -> GLenum -- ^ @pname@ of type [BufferPointerNameARB](Graphics-GL-Groups.html#BufferPointerNameARB).
+  -> Ptr (Ptr a) -- ^ @params@.
+  -> m ()
+glGetBufferPointervOES v1 v2 v3 = liftIO $ dyn330 ptr_glGetBufferPointervOES v1 v2 v3
+
+{-# NOINLINE ptr_glGetBufferPointervOES #-}
+ptr_glGetBufferPointervOES :: FunPtr (GLenum -> GLenum -> Ptr (Ptr a) -> IO ())
+ptr_glGetBufferPointervOES = unsafePerformIO $ getCommand "glGetBufferPointervOES"
+
+-- glGetBufferSubData ----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetBufferSubData.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGetBufferSubData.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetBufferSubData.xhtml OpenGL 4.x>.
+glGetBufferSubData
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
+  -> GLintptr -- ^ @offset@ of type @BufferOffset@.
+  -> GLsizeiptr -- ^ @size@ of type @BufferSize@.
+  -> Ptr a -- ^ @data@ pointing to @size@ elements of type @a@.
+  -> m ()
+glGetBufferSubData v1 v2 v3 v4 = liftIO $ dyn70 ptr_glGetBufferSubData v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetBufferSubData #-}
+ptr_glGetBufferSubData :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> Ptr a -> IO ())
+ptr_glGetBufferSubData = unsafePerformIO $ getCommand "glGetBufferSubData"
+
+-- glGetBufferSubDataARB -------------------------------------------------------
+
+-- | This command is an alias for 'glGetBufferSubData'.
+glGetBufferSubDataARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
+  -> GLintptrARB -- ^ @offset@ of type @BufferOffsetARB@.
+  -> GLsizeiptrARB -- ^ @size@ of type @BufferSizeARB@.
+  -> Ptr a -- ^ @data@ pointing to @size@ elements of type @a@.
+  -> m ()
+glGetBufferSubDataARB v1 v2 v3 v4 = liftIO $ dyn71 ptr_glGetBufferSubDataARB v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetBufferSubDataARB #-}
+ptr_glGetBufferSubDataARB :: FunPtr (GLenum -> GLintptrARB -> GLsizeiptrARB -> Ptr a -> IO ())
+ptr_glGetBufferSubDataARB = unsafePerformIO $ getCommand "glGetBufferSubDataARB"
+
+-- glGetClipPlane --------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetClipPlane.xml OpenGL 2.x>.
+glGetClipPlane
+  :: MonadIO m
+  => GLenum -- ^ @plane@ of type [ClipPlaneName](Graphics-GL-Groups.html#ClipPlaneName).
+  -> Ptr GLdouble -- ^ @equation@ pointing to @4@ elements of type @GLdouble@.
+  -> m ()
+glGetClipPlane v1 v2 = liftIO $ dyn100 ptr_glGetClipPlane v1 v2
+
+{-# NOINLINE ptr_glGetClipPlane #-}
+ptr_glGetClipPlane :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+ptr_glGetClipPlane = unsafePerformIO $ getCommand "glGetClipPlane"
+
+-- glGetClipPlanef -------------------------------------------------------------
+
+glGetClipPlanef
+  :: MonadIO m
+  => GLenum -- ^ @plane@ of type [ClipPlaneName](Graphics-GL-Groups.html#ClipPlaneName).
+  -> Ptr GLfloat -- ^ @equation@ pointing to @4@ elements of type @GLfloat@.
+  -> m ()
+glGetClipPlanef v1 v2 = liftIO $ dyn101 ptr_glGetClipPlanef v1 v2
+
+{-# NOINLINE ptr_glGetClipPlanef #-}
+ptr_glGetClipPlanef :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetClipPlanef = unsafePerformIO $ getCommand "glGetClipPlanef"
+
+-- glGetClipPlanefOES ----------------------------------------------------------
+
+glGetClipPlanefOES
+  :: MonadIO m
+  => GLenum -- ^ @plane@ of type [ClipPlaneName](Graphics-GL-Groups.html#ClipPlaneName).
+  -> Ptr GLfloat -- ^ @equation@ pointing to @4@ elements of type @GLfloat@.
+  -> m ()
+glGetClipPlanefOES v1 v2 = liftIO $ dyn101 ptr_glGetClipPlanefOES v1 v2
+
+{-# NOINLINE ptr_glGetClipPlanefOES #-}
+ptr_glGetClipPlanefOES :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetClipPlanefOES = unsafePerformIO $ getCommand "glGetClipPlanefOES"
+
+-- glGetClipPlanex -------------------------------------------------------------
+
+glGetClipPlanex
+  :: MonadIO m
+  => GLenum -- ^ @plane@ of type [ClipPlaneName](Graphics-GL-Groups.html#ClipPlaneName).
+  -> Ptr GLfixed -- ^ @equation@ pointing to @4@ elements of type @GLfixed@.
+  -> m ()
+glGetClipPlanex v1 v2 = liftIO $ dyn102 ptr_glGetClipPlanex v1 v2
+
+{-# NOINLINE ptr_glGetClipPlanex #-}
+ptr_glGetClipPlanex :: FunPtr (GLenum -> Ptr GLfixed -> IO ())
+ptr_glGetClipPlanex = unsafePerformIO $ getCommand "glGetClipPlanex"
+
+-- glGetClipPlanexOES ----------------------------------------------------------
+
+glGetClipPlanexOES
+  :: MonadIO m
+  => GLenum -- ^ @plane@ of type [ClipPlaneName](Graphics-GL-Groups.html#ClipPlaneName).
+  -> Ptr GLfixed -- ^ @equation@ pointing to @4@ elements of type @GLfixed@.
+  -> m ()
+glGetClipPlanexOES v1 v2 = liftIO $ dyn102 ptr_glGetClipPlanexOES v1 v2
+
+{-# NOINLINE ptr_glGetClipPlanexOES #-}
+ptr_glGetClipPlanexOES :: FunPtr (GLenum -> Ptr GLfixed -> IO ())
+ptr_glGetClipPlanexOES = unsafePerformIO $ getCommand "glGetClipPlanexOES"
+
+-- glGetColorTable -------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetColorTable.xml OpenGL 2.x>.
+glGetColorTable
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ColorTableTarget](Graphics-GL-Groups.html#ColorTableTarget).
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @table@ pointing to @COMPSIZE(target,format,type)@ elements of type @a@.
+  -> m ()
+glGetColorTable v1 v2 v3 v4 = liftIO $ dyn331 ptr_glGetColorTable v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetColorTable #-}
+ptr_glGetColorTable :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glGetColorTable = unsafePerformIO $ getCommand "glGetColorTable"
+
+-- glGetColorTableEXT ----------------------------------------------------------
+
+-- | This command is an alias for 'glGetColorTable'.
+glGetColorTableEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ColorTableTarget](Graphics-GL-Groups.html#ColorTableTarget).
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @data@ pointing to @COMPSIZE(target,format,type)@ elements of type @a@.
+  -> m ()
+glGetColorTableEXT v1 v2 v3 v4 = liftIO $ dyn331 ptr_glGetColorTableEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetColorTableEXT #-}
+ptr_glGetColorTableEXT :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glGetColorTableEXT = unsafePerformIO $ getCommand "glGetColorTableEXT"
+
+-- glGetColorTableParameterfv --------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetColorTableParameter.xml OpenGL 2.x>.
+glGetColorTableParameterfv
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ColorTableTarget](Graphics-GL-Groups.html#ColorTableTarget).
+  -> GLenum -- ^ @pname@ of type [GetColorTableParameterPNameSGI](Graphics-GL-Groups.html#GetColorTableParameterPNameSGI).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
+  -> m ()
+glGetColorTableParameterfv v1 v2 v3 = liftIO $ dyn139 ptr_glGetColorTableParameterfv v1 v2 v3
+
+{-# NOINLINE ptr_glGetColorTableParameterfv #-}
+ptr_glGetColorTableParameterfv :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetColorTableParameterfv = unsafePerformIO $ getCommand "glGetColorTableParameterfv"
+
+-- glGetColorTableParameterfvEXT -----------------------------------------------
+
+-- | This command is an alias for 'glGetColorTableParameterfv'.
+glGetColorTableParameterfvEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ColorTableTarget](Graphics-GL-Groups.html#ColorTableTarget).
+  -> GLenum -- ^ @pname@ of type [GetColorTableParameterPNameSGI](Graphics-GL-Groups.html#GetColorTableParameterPNameSGI).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
+  -> m ()
+glGetColorTableParameterfvEXT v1 v2 v3 = liftIO $ dyn139 ptr_glGetColorTableParameterfvEXT v1 v2 v3
+
+{-# NOINLINE ptr_glGetColorTableParameterfvEXT #-}
+ptr_glGetColorTableParameterfvEXT :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetColorTableParameterfvEXT = unsafePerformIO $ getCommand "glGetColorTableParameterfvEXT"
+
+-- glGetColorTableParameterfvSGI -----------------------------------------------
+
+glGetColorTableParameterfvSGI
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ColorTableTargetSGI](Graphics-GL-Groups.html#ColorTableTargetSGI).
+  -> GLenum -- ^ @pname@ of type [GetColorTableParameterPNameSGI](Graphics-GL-Groups.html#GetColorTableParameterPNameSGI).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
+  -> m ()
+glGetColorTableParameterfvSGI v1 v2 v3 = liftIO $ dyn139 ptr_glGetColorTableParameterfvSGI v1 v2 v3
+
+{-# NOINLINE ptr_glGetColorTableParameterfvSGI #-}
+ptr_glGetColorTableParameterfvSGI :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetColorTableParameterfvSGI = unsafePerformIO $ getCommand "glGetColorTableParameterfvSGI"
+
+-- glGetColorTableParameteriv --------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetColorTableParameter.xml OpenGL 2.x>.
+glGetColorTableParameteriv
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ColorTableTarget](Graphics-GL-Groups.html#ColorTableTarget).
+  -> GLenum -- ^ @pname@ of type [GetColorTableParameterPNameSGI](Graphics-GL-Groups.html#GetColorTableParameterPNameSGI).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetColorTableParameteriv v1 v2 v3 = liftIO $ dyn140 ptr_glGetColorTableParameteriv v1 v2 v3
+
+{-# NOINLINE ptr_glGetColorTableParameteriv #-}
+ptr_glGetColorTableParameteriv :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetColorTableParameteriv = unsafePerformIO $ getCommand "glGetColorTableParameteriv"
+
+-- glGetColorTableParameterivEXT -----------------------------------------------
+
+-- | This command is an alias for 'glGetColorTableParameteriv'.
+glGetColorTableParameterivEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ColorTableTarget](Graphics-GL-Groups.html#ColorTableTarget).
+  -> GLenum -- ^ @pname@ of type [GetColorTableParameterPNameSGI](Graphics-GL-Groups.html#GetColorTableParameterPNameSGI).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetColorTableParameterivEXT v1 v2 v3 = liftIO $ dyn140 ptr_glGetColorTableParameterivEXT v1 v2 v3
+
+{-# NOINLINE ptr_glGetColorTableParameterivEXT #-}
+ptr_glGetColorTableParameterivEXT :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetColorTableParameterivEXT = unsafePerformIO $ getCommand "glGetColorTableParameterivEXT"
+
+-- glGetColorTableParameterivSGI -----------------------------------------------
+
+glGetColorTableParameterivSGI
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ColorTableTargetSGI](Graphics-GL-Groups.html#ColorTableTargetSGI).
+  -> GLenum -- ^ @pname@ of type [GetColorTableParameterPNameSGI](Graphics-GL-Groups.html#GetColorTableParameterPNameSGI).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetColorTableParameterivSGI v1 v2 v3 = liftIO $ dyn140 ptr_glGetColorTableParameterivSGI v1 v2 v3
+
+{-# NOINLINE ptr_glGetColorTableParameterivSGI #-}
+ptr_glGetColorTableParameterivSGI :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetColorTableParameterivSGI = unsafePerformIO $ getCommand "glGetColorTableParameterivSGI"
+
+-- glGetColorTableSGI ----------------------------------------------------------
+
+glGetColorTableSGI
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ColorTableTargetSGI](Graphics-GL-Groups.html#ColorTableTargetSGI).
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @table@ pointing to @COMPSIZE(target,format,type)@ elements of type @a@.
+  -> m ()
+glGetColorTableSGI v1 v2 v3 v4 = liftIO $ dyn331 ptr_glGetColorTableSGI v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetColorTableSGI #-}
+ptr_glGetColorTableSGI :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glGetColorTableSGI = unsafePerformIO $ getCommand "glGetColorTableSGI"
+
+-- glGetCombinerInputParameterfvNV ---------------------------------------------
+
+glGetCombinerInputParameterfvNV
+  :: MonadIO m
+  => GLenum -- ^ @stage@ of type [CombinerStageNV](Graphics-GL-Groups.html#CombinerStageNV).
+  -> GLenum -- ^ @portion@ of type [CombinerPortionNV](Graphics-GL-Groups.html#CombinerPortionNV).
+  -> GLenum -- ^ @variable@ of type [CombinerVariableNV](Graphics-GL-Groups.html#CombinerVariableNV).
+  -> GLenum -- ^ @pname@ of type [CombinerParameterNV](Graphics-GL-Groups.html#CombinerParameterNV).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
+  -> m ()
+glGetCombinerInputParameterfvNV v1 v2 v3 v4 v5 = liftIO $ dyn332 ptr_glGetCombinerInputParameterfvNV v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glGetCombinerInputParameterfvNV #-}
+ptr_glGetCombinerInputParameterfvNV :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetCombinerInputParameterfvNV = unsafePerformIO $ getCommand "glGetCombinerInputParameterfvNV"
+
+-- glGetCombinerInputParameterivNV ---------------------------------------------
+
+glGetCombinerInputParameterivNV
+  :: MonadIO m
+  => GLenum -- ^ @stage@ of type [CombinerStageNV](Graphics-GL-Groups.html#CombinerStageNV).
+  -> GLenum -- ^ @portion@ of type [CombinerPortionNV](Graphics-GL-Groups.html#CombinerPortionNV).
+  -> GLenum -- ^ @variable@ of type [CombinerVariableNV](Graphics-GL-Groups.html#CombinerVariableNV).
+  -> GLenum -- ^ @pname@ of type [CombinerParameterNV](Graphics-GL-Groups.html#CombinerParameterNV).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetCombinerInputParameterivNV v1 v2 v3 v4 v5 = liftIO $ dyn333 ptr_glGetCombinerInputParameterivNV v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glGetCombinerInputParameterivNV #-}
+ptr_glGetCombinerInputParameterivNV :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetCombinerInputParameterivNV = unsafePerformIO $ getCommand "glGetCombinerInputParameterivNV"
+
+-- glGetCombinerOutputParameterfvNV --------------------------------------------
+
+glGetCombinerOutputParameterfvNV
+  :: MonadIO m
+  => GLenum -- ^ @stage@ of type [CombinerStageNV](Graphics-GL-Groups.html#CombinerStageNV).
+  -> GLenum -- ^ @portion@ of type [CombinerPortionNV](Graphics-GL-Groups.html#CombinerPortionNV).
+  -> GLenum -- ^ @pname@ of type [CombinerParameterNV](Graphics-GL-Groups.html#CombinerParameterNV).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
+  -> m ()
+glGetCombinerOutputParameterfvNV v1 v2 v3 v4 = liftIO $ dyn334 ptr_glGetCombinerOutputParameterfvNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetCombinerOutputParameterfvNV #-}
+ptr_glGetCombinerOutputParameterfvNV :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetCombinerOutputParameterfvNV = unsafePerformIO $ getCommand "glGetCombinerOutputParameterfvNV"
+
+-- glGetCombinerOutputParameterivNV --------------------------------------------
+
+glGetCombinerOutputParameterivNV
+  :: MonadIO m
+  => GLenum -- ^ @stage@ of type [CombinerStageNV](Graphics-GL-Groups.html#CombinerStageNV).
+  -> GLenum -- ^ @portion@ of type [CombinerPortionNV](Graphics-GL-Groups.html#CombinerPortionNV).
+  -> GLenum -- ^ @pname@ of type [CombinerParameterNV](Graphics-GL-Groups.html#CombinerParameterNV).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetCombinerOutputParameterivNV v1 v2 v3 v4 = liftIO $ dyn335 ptr_glGetCombinerOutputParameterivNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetCombinerOutputParameterivNV #-}
+ptr_glGetCombinerOutputParameterivNV :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetCombinerOutputParameterivNV = unsafePerformIO $ getCommand "glGetCombinerOutputParameterivNV"
+
+-- glGetCombinerStageParameterfvNV ---------------------------------------------
+
+glGetCombinerStageParameterfvNV
+  :: MonadIO m
+  => GLenum -- ^ @stage@ of type [CombinerStageNV](Graphics-GL-Groups.html#CombinerStageNV).
+  -> GLenum -- ^ @pname@ of type [CombinerParameterNV](Graphics-GL-Groups.html#CombinerParameterNV).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
+  -> m ()
+glGetCombinerStageParameterfvNV v1 v2 v3 = liftIO $ dyn139 ptr_glGetCombinerStageParameterfvNV v1 v2 v3
+
+{-# NOINLINE ptr_glGetCombinerStageParameterfvNV #-}
+ptr_glGetCombinerStageParameterfvNV :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetCombinerStageParameterfvNV = unsafePerformIO $ getCommand "glGetCombinerStageParameterfvNV"
+
+-- glGetCommandHeaderNV --------------------------------------------------------
+
+glGetCommandHeaderNV
+  :: MonadIO m
+  => GLenum -- ^ @tokenID@.
+  -> GLuint -- ^ @size@.
+  -> m GLuint
+glGetCommandHeaderNV v1 v2 = liftIO $ dyn336 ptr_glGetCommandHeaderNV v1 v2
+
+{-# NOINLINE ptr_glGetCommandHeaderNV #-}
+ptr_glGetCommandHeaderNV :: FunPtr (GLenum -> GLuint -> IO GLuint)
+ptr_glGetCommandHeaderNV = unsafePerformIO $ getCommand "glGetCommandHeaderNV"
+
+-- glGetCompressedMultiTexImageEXT ---------------------------------------------
+
+glGetCompressedMultiTexImageEXT
+  :: MonadIO m
+  => GLenum -- ^ @texunit@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @lod@ of type @CheckedInt32@.
+  -> Ptr a -- ^ @img@ pointing to @COMPSIZE(target,lod)@ elements of type @a@.
+  -> m ()
+glGetCompressedMultiTexImageEXT v1 v2 v3 v4 = liftIO $ dyn337 ptr_glGetCompressedMultiTexImageEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetCompressedMultiTexImageEXT #-}
+ptr_glGetCompressedMultiTexImageEXT :: FunPtr (GLenum -> GLenum -> GLint -> Ptr a -> IO ())
+ptr_glGetCompressedMultiTexImageEXT = unsafePerformIO $ getCommand "glGetCompressedMultiTexImageEXT"
+
+-- glGetCompressedTexImage -----------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetCompressedTexImage.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGetCompressedTexImage.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetCompressedTexImage.xhtml OpenGL 4.x>.
+glGetCompressedTexImage
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> Ptr a -- ^ @img@ pointing to @COMPSIZE(target,level)@ elements of type @CompressedTextureARB@.
+  -> m ()
+glGetCompressedTexImage v1 v2 v3 = liftIO $ dyn338 ptr_glGetCompressedTexImage v1 v2 v3
+
+{-# NOINLINE ptr_glGetCompressedTexImage #-}
+ptr_glGetCompressedTexImage :: FunPtr (GLenum -> GLint -> Ptr a -> IO ())
+ptr_glGetCompressedTexImage = unsafePerformIO $ getCommand "glGetCompressedTexImage"
+
+-- glGetCompressedTexImageARB --------------------------------------------------
+
+-- | This command is an alias for 'glGetCompressedTexImage'.
+glGetCompressedTexImageARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> Ptr a -- ^ @img@ pointing to @COMPSIZE(target,level)@ elements of type @CompressedTextureARB@.
+  -> m ()
+glGetCompressedTexImageARB v1 v2 v3 = liftIO $ dyn338 ptr_glGetCompressedTexImageARB v1 v2 v3
+
+{-# NOINLINE ptr_glGetCompressedTexImageARB #-}
+ptr_glGetCompressedTexImageARB :: FunPtr (GLenum -> GLint -> Ptr a -> IO ())
+ptr_glGetCompressedTexImageARB = unsafePerformIO $ getCommand "glGetCompressedTexImageARB"
+
+-- glGetCompressedTextureImage -------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetCompressedTexImage.xhtml OpenGL 4.x>.
+glGetCompressedTextureImage
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLint -- ^ @level@.
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr a -- ^ @pixels@.
+  -> m ()
+glGetCompressedTextureImage v1 v2 v3 v4 = liftIO $ dyn339 ptr_glGetCompressedTextureImage v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetCompressedTextureImage #-}
+ptr_glGetCompressedTextureImage :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr a -> IO ())
+ptr_glGetCompressedTextureImage = unsafePerformIO $ getCommand "glGetCompressedTextureImage"
+
+-- glGetCompressedTextureImageEXT ----------------------------------------------
+
+glGetCompressedTextureImageEXT
+  :: MonadIO m
+  => GLuint -- ^ @texture@ of type @Texture@.
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @lod@ of type @CheckedInt32@.
+  -> Ptr a -- ^ @img@ pointing to @COMPSIZE(target,lod)@ elements of type @a@.
+  -> m ()
+glGetCompressedTextureImageEXT v1 v2 v3 v4 = liftIO $ dyn340 ptr_glGetCompressedTextureImageEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetCompressedTextureImageEXT #-}
+ptr_glGetCompressedTextureImageEXT :: FunPtr (GLuint -> GLenum -> GLint -> Ptr a -> IO ())
+ptr_glGetCompressedTextureImageEXT = unsafePerformIO $ getCommand "glGetCompressedTextureImageEXT"
+
+-- glGetCompressedTextureSubImage ----------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetCompressedTextureSubImage.xhtml OpenGL 4.x>.
+glGetCompressedTextureSubImage
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLint -- ^ @level@.
+  -> GLint -- ^ @xoffset@.
+  -> GLint -- ^ @yoffset@.
+  -> GLint -- ^ @zoffset@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLsizei -- ^ @depth@.
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr a -- ^ @pixels@.
+  -> m ()
+glGetCompressedTextureSubImage v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 = liftIO $ dyn341 ptr_glGetCompressedTextureSubImage v1 v2 v3 v4 v5 v6 v7 v8 v9 v10
+
+{-# NOINLINE ptr_glGetCompressedTextureSubImage #-}
+ptr_glGetCompressedTextureSubImage :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> Ptr a -> IO ())
+ptr_glGetCompressedTextureSubImage = unsafePerformIO $ getCommand "glGetCompressedTextureSubImage"
+
+-- glGetConvolutionFilter ------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetConvolutionFilter.xml OpenGL 2.x>.
+glGetConvolutionFilter
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ConvolutionTarget](Graphics-GL-Groups.html#ConvolutionTarget).
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @image@ pointing to @COMPSIZE(target,format,type)@ elements of type @a@.
+  -> m ()
+glGetConvolutionFilter v1 v2 v3 v4 = liftIO $ dyn331 ptr_glGetConvolutionFilter v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetConvolutionFilter #-}
+ptr_glGetConvolutionFilter :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glGetConvolutionFilter = unsafePerformIO $ getCommand "glGetConvolutionFilter"
+
+-- glGetConvolutionFilterEXT ---------------------------------------------------
+
+glGetConvolutionFilterEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ConvolutionTargetEXT](Graphics-GL-Groups.html#ConvolutionTargetEXT).
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @image@ pointing to @COMPSIZE(target,format,type)@ elements of type @a@.
+  -> m ()
+glGetConvolutionFilterEXT v1 v2 v3 v4 = liftIO $ dyn331 ptr_glGetConvolutionFilterEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetConvolutionFilterEXT #-}
+ptr_glGetConvolutionFilterEXT :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glGetConvolutionFilterEXT = unsafePerformIO $ getCommand "glGetConvolutionFilterEXT"
+
+-- glGetConvolutionParameterfv -------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetConvolutionParameter.xml OpenGL 2.x>.
+glGetConvolutionParameterfv
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ConvolutionTarget](Graphics-GL-Groups.html#ConvolutionTarget).
+  -> GLenum -- ^ @pname@ of type [ConvolutionParameterEXT](Graphics-GL-Groups.html#ConvolutionParameterEXT).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
+  -> m ()
+glGetConvolutionParameterfv v1 v2 v3 = liftIO $ dyn139 ptr_glGetConvolutionParameterfv v1 v2 v3
+
+{-# NOINLINE ptr_glGetConvolutionParameterfv #-}
+ptr_glGetConvolutionParameterfv :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetConvolutionParameterfv = unsafePerformIO $ getCommand "glGetConvolutionParameterfv"
+
+-- glGetConvolutionParameterfvEXT ----------------------------------------------
+
+glGetConvolutionParameterfvEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ConvolutionTargetEXT](Graphics-GL-Groups.html#ConvolutionTargetEXT).
+  -> GLenum -- ^ @pname@ of type [ConvolutionParameterEXT](Graphics-GL-Groups.html#ConvolutionParameterEXT).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
+  -> m ()
+glGetConvolutionParameterfvEXT v1 v2 v3 = liftIO $ dyn139 ptr_glGetConvolutionParameterfvEXT v1 v2 v3
+
+{-# NOINLINE ptr_glGetConvolutionParameterfvEXT #-}
+ptr_glGetConvolutionParameterfvEXT :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetConvolutionParameterfvEXT = unsafePerformIO $ getCommand "glGetConvolutionParameterfvEXT"
+
diff --git a/src/Graphics/GL/Functions/F10.hs b/src/Graphics/GL/Functions/F10.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Functions/F10.hs
@@ -0,0 +1,1576 @@
+{-# OPTIONS_HADDOCK hide #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Functions.F10
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- Raw functions from the
+-- <http://www.opengl.org/registry/ OpenGL registry>.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Functions.F10 (
+  glGetConvolutionParameteriv,
+  glGetConvolutionParameterivEXT,
+  glGetConvolutionParameterxvOES,
+  glGetCoverageModulationTableNV,
+  glGetDebugMessageLog,
+  glGetDebugMessageLogAMD,
+  glGetDebugMessageLogARB,
+  glGetDebugMessageLogKHR,
+  glGetDetailTexFuncSGIS,
+  glGetDoubleIndexedvEXT,
+  glGetDoublei_v,
+  glGetDoublei_vEXT,
+  glGetDoublev,
+  glGetDriverControlStringQCOM,
+  glGetDriverControlsQCOM,
+  glGetError,
+  glGetFenceivNV,
+  glGetFinalCombinerInputParameterfvNV,
+  glGetFinalCombinerInputParameterivNV,
+  glGetFirstPerfQueryIdINTEL,
+  glGetFixedv,
+  glGetFixedvOES,
+  glGetFloatIndexedvEXT,
+  glGetFloati_v,
+  glGetFloati_vEXT,
+  glGetFloati_vNV,
+  glGetFloati_vOES,
+  glGetFloatv,
+  glGetFogFuncSGIS,
+  glGetFragDataIndex,
+  glGetFragDataIndexEXT,
+  glGetFragDataLocation,
+  glGetFragDataLocationEXT,
+  glGetFragmentLightfvSGIX,
+  glGetFragmentLightivSGIX,
+  glGetFragmentMaterialfvSGIX,
+  glGetFragmentMaterialivSGIX,
+  glGetFramebufferAttachmentParameteriv,
+  glGetFramebufferAttachmentParameterivEXT,
+  glGetFramebufferAttachmentParameterivOES,
+  glGetFramebufferParameterfvAMD,
+  glGetFramebufferParameteriv,
+  glGetFramebufferParameterivEXT,
+  glGetFramebufferParameterivMESA,
+  glGetFramebufferPixelLocalStorageSizeEXT,
+  glGetGraphicsResetStatus,
+  glGetGraphicsResetStatusARB,
+  glGetGraphicsResetStatusEXT,
+  glGetGraphicsResetStatusKHR,
+  glGetHandleARB,
+  glGetHistogram,
+  glGetHistogramEXT,
+  glGetHistogramParameterfv,
+  glGetHistogramParameterfvEXT,
+  glGetHistogramParameteriv,
+  glGetHistogramParameterivEXT,
+  glGetHistogramParameterxvOES,
+  glGetImageHandleARB,
+  glGetImageHandleNV,
+  glGetImageTransformParameterfvHP,
+  glGetImageTransformParameterivHP,
+  glGetInfoLogARB,
+  glGetInstrumentsSGIX,
+  glGetInteger64i_v,
+  glGetInteger64v,
+  glGetInteger64vAPPLE,
+  glGetInteger64vEXT,
+  glGetIntegerIndexedvEXT,
+  glGetIntegeri_v,
+  glGetIntegeri_vEXT,
+  glGetIntegerui64i_vNV,
+  glGetIntegerui64vNV,
+  glGetIntegerv,
+  glGetInternalformatSampleivNV,
+  glGetInternalformati64v,
+  glGetInternalformativ,
+  glGetInvariantBooleanvEXT,
+  glGetInvariantFloatvEXT,
+  glGetInvariantIntegervEXT,
+  glGetLightfv,
+  glGetLightiv,
+  glGetLightxOES,
+  glGetLightxv,
+  glGetLightxvOES,
+  glGetListParameterfvSGIX,
+  glGetListParameterivSGIX,
+  glGetLocalConstantBooleanvEXT,
+  glGetLocalConstantFloatvEXT,
+  glGetLocalConstantIntegervEXT,
+  glGetMapAttribParameterfvNV,
+  glGetMapAttribParameterivNV,
+  glGetMapControlPointsNV,
+  glGetMapParameterfvNV,
+  glGetMapParameterivNV,
+  glGetMapdv,
+  glGetMapfv,
+  glGetMapiv,
+  glGetMapxvOES,
+  glGetMaterialfv,
+  glGetMaterialiv
+) where
+
+import Control.Monad.IO.Class ( MonadIO(..) )
+import Foreign.Ptr
+import Graphics.GL.Foreign
+import Graphics.GL.Types
+import System.IO.Unsafe ( unsafePerformIO )
+
+-- glGetConvolutionParameteriv -------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetConvolutionParameter.xml OpenGL 2.x>.
+glGetConvolutionParameteriv
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ConvolutionTarget](Graphics-GL-Groups.html#ConvolutionTarget).
+  -> GLenum -- ^ @pname@ of type [ConvolutionParameterEXT](Graphics-GL-Groups.html#ConvolutionParameterEXT).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetConvolutionParameteriv v1 v2 v3 = liftIO $ dyn140 ptr_glGetConvolutionParameteriv v1 v2 v3
+
+{-# NOINLINE ptr_glGetConvolutionParameteriv #-}
+ptr_glGetConvolutionParameteriv :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetConvolutionParameteriv = unsafePerformIO $ getCommand "glGetConvolutionParameteriv"
+
+-- glGetConvolutionParameterivEXT ----------------------------------------------
+
+glGetConvolutionParameterivEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ConvolutionTargetEXT](Graphics-GL-Groups.html#ConvolutionTargetEXT).
+  -> GLenum -- ^ @pname@ of type [ConvolutionParameterEXT](Graphics-GL-Groups.html#ConvolutionParameterEXT).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetConvolutionParameterivEXT v1 v2 v3 = liftIO $ dyn140 ptr_glGetConvolutionParameterivEXT v1 v2 v3
+
+{-# NOINLINE ptr_glGetConvolutionParameterivEXT #-}
+ptr_glGetConvolutionParameterivEXT :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetConvolutionParameterivEXT = unsafePerformIO $ getCommand "glGetConvolutionParameterivEXT"
+
+-- glGetConvolutionParameterxvOES ----------------------------------------------
+
+glGetConvolutionParameterxvOES
+  :: MonadIO m
+  => GLenum -- ^ @target@.
+  -> GLenum -- ^ @pname@.
+  -> Ptr GLfixed -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfixed@.
+  -> m ()
+glGetConvolutionParameterxvOES v1 v2 v3 = liftIO $ dyn170 ptr_glGetConvolutionParameterxvOES v1 v2 v3
+
+{-# NOINLINE ptr_glGetConvolutionParameterxvOES #-}
+ptr_glGetConvolutionParameterxvOES :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+ptr_glGetConvolutionParameterxvOES = unsafePerformIO $ getCommand "glGetConvolutionParameterxvOES"
+
+-- glGetCoverageModulationTableNV ----------------------------------------------
+
+glGetCoverageModulationTableNV
+  :: MonadIO m
+  => GLsizei -- ^ @bufSize@.
+  -> Ptr GLfloat -- ^ @v@.
+  -> m ()
+glGetCoverageModulationTableNV v1 v2 = liftIO $ dyn199 ptr_glGetCoverageModulationTableNV v1 v2
+
+{-# NOINLINE ptr_glGetCoverageModulationTableNV #-}
+ptr_glGetCoverageModulationTableNV :: FunPtr (GLsizei -> Ptr GLfloat -> IO ())
+ptr_glGetCoverageModulationTableNV = unsafePerformIO $ getCommand "glGetCoverageModulationTableNV"
+
+-- glGetDebugMessageLog --------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetDebugMessageLog.xhtml OpenGL 4.x>.
+glGetDebugMessageLog
+  :: MonadIO m
+  => GLuint -- ^ @count@.
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr GLenum -- ^ @sources@ pointing to @count@ elements of type [DebugSource](Graphics-GL-Groups.html#DebugSource).
+  -> Ptr GLenum -- ^ @types@ pointing to @count@ elements of type [DebugType](Graphics-GL-Groups.html#DebugType).
+  -> Ptr GLuint -- ^ @ids@ pointing to @count@ elements of type @GLuint@.
+  -> Ptr GLenum -- ^ @severities@ pointing to @count@ elements of type [DebugSeverity](Graphics-GL-Groups.html#DebugSeverity).
+  -> Ptr GLsizei -- ^ @lengths@ pointing to @count@ elements of type @GLsizei@.
+  -> Ptr GLchar -- ^ @messageLog@ pointing to @bufSize@ elements of type @GLchar@.
+  -> m GLuint
+glGetDebugMessageLog v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn342 ptr_glGetDebugMessageLog v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glGetDebugMessageLog #-}
+ptr_glGetDebugMessageLog :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> IO GLuint)
+ptr_glGetDebugMessageLog = unsafePerformIO $ getCommand "glGetDebugMessageLog"
+
+-- glGetDebugMessageLogAMD -----------------------------------------------------
+
+glGetDebugMessageLogAMD
+  :: MonadIO m
+  => GLuint -- ^ @count@.
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr GLenum -- ^ @categories@ pointing to @count@ elements of type @GLenum@.
+  -> Ptr GLuint -- ^ @severities@ pointing to @count@ elements of type [DebugSeverity](Graphics-GL-Groups.html#DebugSeverity).
+  -> Ptr GLuint -- ^ @ids@ pointing to @count@ elements of type @GLuint@.
+  -> Ptr GLsizei -- ^ @lengths@ pointing to @count@ elements of type @GLsizei@.
+  -> Ptr GLchar -- ^ @message@ pointing to @bufSize@ elements of type @GLchar@.
+  -> m GLuint
+glGetDebugMessageLogAMD v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn343 ptr_glGetDebugMessageLogAMD v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glGetDebugMessageLogAMD #-}
+ptr_glGetDebugMessageLogAMD :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> Ptr GLuint -> Ptr GLuint -> Ptr GLsizei -> Ptr GLchar -> IO GLuint)
+ptr_glGetDebugMessageLogAMD = unsafePerformIO $ getCommand "glGetDebugMessageLogAMD"
+
+-- glGetDebugMessageLogARB -----------------------------------------------------
+
+-- | This command is an alias for 'glGetDebugMessageLog'.
+glGetDebugMessageLogARB
+  :: MonadIO m
+  => GLuint -- ^ @count@.
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr GLenum -- ^ @sources@ pointing to @count@ elements of type [DebugSource](Graphics-GL-Groups.html#DebugSource).
+  -> Ptr GLenum -- ^ @types@ pointing to @count@ elements of type [DebugType](Graphics-GL-Groups.html#DebugType).
+  -> Ptr GLuint -- ^ @ids@ pointing to @count@ elements of type @GLuint@.
+  -> Ptr GLenum -- ^ @severities@ pointing to @count@ elements of type [DebugSeverity](Graphics-GL-Groups.html#DebugSeverity).
+  -> Ptr GLsizei -- ^ @lengths@ pointing to @count@ elements of type @GLsizei@.
+  -> Ptr GLchar -- ^ @messageLog@ pointing to @bufSize@ elements of type @GLchar@.
+  -> m GLuint
+glGetDebugMessageLogARB v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn342 ptr_glGetDebugMessageLogARB v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glGetDebugMessageLogARB #-}
+ptr_glGetDebugMessageLogARB :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> IO GLuint)
+ptr_glGetDebugMessageLogARB = unsafePerformIO $ getCommand "glGetDebugMessageLogARB"
+
+-- glGetDebugMessageLogKHR -----------------------------------------------------
+
+-- | This command is an alias for 'glGetDebugMessageLog'.
+glGetDebugMessageLogKHR
+  :: MonadIO m
+  => GLuint -- ^ @count@.
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr GLenum -- ^ @sources@ pointing to @count@ elements of type [DebugSource](Graphics-GL-Groups.html#DebugSource).
+  -> Ptr GLenum -- ^ @types@ pointing to @count@ elements of type [DebugType](Graphics-GL-Groups.html#DebugType).
+  -> Ptr GLuint -- ^ @ids@ pointing to @count@ elements of type @GLuint@.
+  -> Ptr GLenum -- ^ @severities@ pointing to @count@ elements of type [DebugSeverity](Graphics-GL-Groups.html#DebugSeverity).
+  -> Ptr GLsizei -- ^ @lengths@ pointing to @count@ elements of type @GLsizei@.
+  -> Ptr GLchar -- ^ @messageLog@ pointing to @bufSize@ elements of type @GLchar@.
+  -> m GLuint
+glGetDebugMessageLogKHR v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn342 ptr_glGetDebugMessageLogKHR v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glGetDebugMessageLogKHR #-}
+ptr_glGetDebugMessageLogKHR :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> Ptr GLenum -> Ptr GLuint -> Ptr GLenum -> Ptr GLsizei -> Ptr GLchar -> IO GLuint)
+ptr_glGetDebugMessageLogKHR = unsafePerformIO $ getCommand "glGetDebugMessageLogKHR"
+
+-- glGetDetailTexFuncSGIS ------------------------------------------------------
+
+glGetDetailTexFuncSGIS
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> Ptr GLfloat -- ^ @points@ pointing to @COMPSIZE(target)@ elements of type @GLfloat@.
+  -> m ()
+glGetDetailTexFuncSGIS v1 v2 = liftIO $ dyn101 ptr_glGetDetailTexFuncSGIS v1 v2
+
+{-# NOINLINE ptr_glGetDetailTexFuncSGIS #-}
+ptr_glGetDetailTexFuncSGIS :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetDetailTexFuncSGIS = unsafePerformIO $ getCommand "glGetDetailTexFuncSGIS"
+
+-- glGetDoubleIndexedvEXT ------------------------------------------------------
+
+-- | This command is an alias for 'glGetDoublei_v'.
+glGetDoubleIndexedvEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@.
+  -> GLuint -- ^ @index@.
+  -> Ptr GLdouble -- ^ @data@ pointing to @COMPSIZE(target)@ elements of type @GLdouble@.
+  -> m ()
+glGetDoubleIndexedvEXT v1 v2 v3 = liftIO $ dyn344 ptr_glGetDoubleIndexedvEXT v1 v2 v3
+
+{-# NOINLINE ptr_glGetDoubleIndexedvEXT #-}
+ptr_glGetDoubleIndexedvEXT :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())
+ptr_glGetDoubleIndexedvEXT = unsafePerformIO $ getCommand "glGetDoubleIndexedvEXT"
+
+-- glGetDoublei_v --------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGet.xhtml OpenGL 4.x>.
+glGetDoublei_v
+  :: MonadIO m
+  => GLenum -- ^ @target@.
+  -> GLuint -- ^ @index@.
+  -> Ptr GLdouble -- ^ @data@ pointing to @COMPSIZE(target)@ elements of type @GLdouble@.
+  -> m ()
+glGetDoublei_v v1 v2 v3 = liftIO $ dyn344 ptr_glGetDoublei_v v1 v2 v3
+
+{-# NOINLINE ptr_glGetDoublei_v #-}
+ptr_glGetDoublei_v :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())
+ptr_glGetDoublei_v = unsafePerformIO $ getCommand "glGetDoublei_v"
+
+-- glGetDoublei_vEXT -----------------------------------------------------------
+
+-- | This command is an alias for 'glGetDoublei_v'.
+glGetDoublei_vEXT
+  :: MonadIO m
+  => GLenum -- ^ @pname@.
+  -> GLuint -- ^ @index@.
+  -> Ptr GLdouble -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLdouble@.
+  -> m ()
+glGetDoublei_vEXT v1 v2 v3 = liftIO $ dyn344 ptr_glGetDoublei_vEXT v1 v2 v3
+
+{-# NOINLINE ptr_glGetDoublei_vEXT #-}
+ptr_glGetDoublei_vEXT :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())
+ptr_glGetDoublei_vEXT = unsafePerformIO $ getCommand "glGetDoublei_vEXT"
+
+-- glGetDoublev ----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGet.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGet.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGet.xhtml OpenGL 4.x>.
+glGetDoublev
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [GetPName](Graphics-GL-Groups.html#GetPName).
+  -> Ptr GLdouble -- ^ @data@ pointing to @COMPSIZE(pname)@ elements of type @GLdouble@.
+  -> m ()
+glGetDoublev v1 v2 = liftIO $ dyn100 ptr_glGetDoublev v1 v2
+
+{-# NOINLINE ptr_glGetDoublev #-}
+ptr_glGetDoublev :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+ptr_glGetDoublev = unsafePerformIO $ getCommand "glGetDoublev"
+
+-- glGetDriverControlStringQCOM ------------------------------------------------
+
+glGetDriverControlStringQCOM
+  :: MonadIO m
+  => GLuint -- ^ @driverControl@.
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr GLsizei -- ^ @length@.
+  -> Ptr GLchar -- ^ @driverControlString@ pointing to @bufSize@ elements of type @GLchar@.
+  -> m ()
+glGetDriverControlStringQCOM v1 v2 v3 v4 = liftIO $ dyn345 ptr_glGetDriverControlStringQCOM v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetDriverControlStringQCOM #-}
+ptr_glGetDriverControlStringQCOM :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+ptr_glGetDriverControlStringQCOM = unsafePerformIO $ getCommand "glGetDriverControlStringQCOM"
+
+-- glGetDriverControlsQCOM -----------------------------------------------------
+
+glGetDriverControlsQCOM
+  :: MonadIO m
+  => Ptr GLint -- ^ @num@.
+  -> GLsizei -- ^ @size@.
+  -> Ptr GLuint -- ^ @driverControls@ pointing to @size@ elements of type @GLuint@.
+  -> m ()
+glGetDriverControlsQCOM v1 v2 v3 = liftIO $ dyn346 ptr_glGetDriverControlsQCOM v1 v2 v3
+
+{-# NOINLINE ptr_glGetDriverControlsQCOM #-}
+ptr_glGetDriverControlsQCOM :: FunPtr (Ptr GLint -> GLsizei -> Ptr GLuint -> IO ())
+ptr_glGetDriverControlsQCOM = unsafePerformIO $ getCommand "glGetDriverControlsQCOM"
+
+-- glGetError ------------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetError.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGetError.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetError.xhtml OpenGL 4.x>.
+glGetError
+  :: MonadIO m
+  => m GLenum -- ^ of type [ErrorCode](Graphics-GL-Groups.html#ErrorCode).
+glGetError = liftIO $ dyn347 ptr_glGetError
+
+{-# NOINLINE ptr_glGetError #-}
+ptr_glGetError :: FunPtr (IO GLenum)
+ptr_glGetError = unsafePerformIO $ getCommand "glGetError"
+
+-- glGetFenceivNV --------------------------------------------------------------
+
+glGetFenceivNV
+  :: MonadIO m
+  => GLuint -- ^ @fence@ of type @FenceNV@.
+  -> GLenum -- ^ @pname@ of type [FenceParameterNameNV](Graphics-GL-Groups.html#FenceParameterNameNV).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetFenceivNV v1 v2 v3 = liftIO $ dyn348 ptr_glGetFenceivNV v1 v2 v3
+
+{-# NOINLINE ptr_glGetFenceivNV #-}
+ptr_glGetFenceivNV :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetFenceivNV = unsafePerformIO $ getCommand "glGetFenceivNV"
+
+-- glGetFinalCombinerInputParameterfvNV ----------------------------------------
+
+glGetFinalCombinerInputParameterfvNV
+  :: MonadIO m
+  => GLenum -- ^ @variable@ of type [CombinerVariableNV](Graphics-GL-Groups.html#CombinerVariableNV).
+  -> GLenum -- ^ @pname@ of type [CombinerParameterNV](Graphics-GL-Groups.html#CombinerParameterNV).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
+  -> m ()
+glGetFinalCombinerInputParameterfvNV v1 v2 v3 = liftIO $ dyn139 ptr_glGetFinalCombinerInputParameterfvNV v1 v2 v3
+
+{-# NOINLINE ptr_glGetFinalCombinerInputParameterfvNV #-}
+ptr_glGetFinalCombinerInputParameterfvNV :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetFinalCombinerInputParameterfvNV = unsafePerformIO $ getCommand "glGetFinalCombinerInputParameterfvNV"
+
+-- glGetFinalCombinerInputParameterivNV ----------------------------------------
+
+glGetFinalCombinerInputParameterivNV
+  :: MonadIO m
+  => GLenum -- ^ @variable@ of type [CombinerVariableNV](Graphics-GL-Groups.html#CombinerVariableNV).
+  -> GLenum -- ^ @pname@ of type [CombinerParameterNV](Graphics-GL-Groups.html#CombinerParameterNV).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetFinalCombinerInputParameterivNV v1 v2 v3 = liftIO $ dyn140 ptr_glGetFinalCombinerInputParameterivNV v1 v2 v3
+
+{-# NOINLINE ptr_glGetFinalCombinerInputParameterivNV #-}
+ptr_glGetFinalCombinerInputParameterivNV :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetFinalCombinerInputParameterivNV = unsafePerformIO $ getCommand "glGetFinalCombinerInputParameterivNV"
+
+-- glGetFirstPerfQueryIdINTEL --------------------------------------------------
+
+glGetFirstPerfQueryIdINTEL
+  :: MonadIO m
+  => Ptr GLuint -- ^ @queryId@.
+  -> m ()
+glGetFirstPerfQueryIdINTEL v1 = liftIO $ dyn110 ptr_glGetFirstPerfQueryIdINTEL v1
+
+{-# NOINLINE ptr_glGetFirstPerfQueryIdINTEL #-}
+ptr_glGetFirstPerfQueryIdINTEL :: FunPtr (Ptr GLuint -> IO ())
+ptr_glGetFirstPerfQueryIdINTEL = unsafePerformIO $ getCommand "glGetFirstPerfQueryIdINTEL"
+
+-- glGetFixedv -----------------------------------------------------------------
+
+glGetFixedv
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [GetPName](Graphics-GL-Groups.html#GetPName).
+  -> Ptr GLfixed -- ^ @params@.
+  -> m ()
+glGetFixedv v1 v2 = liftIO $ dyn102 ptr_glGetFixedv v1 v2
+
+{-# NOINLINE ptr_glGetFixedv #-}
+ptr_glGetFixedv :: FunPtr (GLenum -> Ptr GLfixed -> IO ())
+ptr_glGetFixedv = unsafePerformIO $ getCommand "glGetFixedv"
+
+-- glGetFixedvOES --------------------------------------------------------------
+
+glGetFixedvOES
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [GetPName](Graphics-GL-Groups.html#GetPName).
+  -> Ptr GLfixed -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfixed@.
+  -> m ()
+glGetFixedvOES v1 v2 = liftIO $ dyn102 ptr_glGetFixedvOES v1 v2
+
+{-# NOINLINE ptr_glGetFixedvOES #-}
+ptr_glGetFixedvOES :: FunPtr (GLenum -> Ptr GLfixed -> IO ())
+ptr_glGetFixedvOES = unsafePerformIO $ getCommand "glGetFixedvOES"
+
+-- glGetFloatIndexedvEXT -------------------------------------------------------
+
+-- | This command is an alias for 'glGetFloati_v'.
+glGetFloatIndexedvEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@.
+  -> GLuint -- ^ @index@.
+  -> Ptr GLfloat -- ^ @data@ pointing to @COMPSIZE(target)@ elements of type @GLfloat@.
+  -> m ()
+glGetFloatIndexedvEXT v1 v2 v3 = liftIO $ dyn278 ptr_glGetFloatIndexedvEXT v1 v2 v3
+
+{-# NOINLINE ptr_glGetFloatIndexedvEXT #-}
+ptr_glGetFloatIndexedvEXT :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
+ptr_glGetFloatIndexedvEXT = unsafePerformIO $ getCommand "glGetFloatIndexedvEXT"
+
+-- glGetFloati_v ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGet.xhtml OpenGL 4.x>.
+glGetFloati_v
+  :: MonadIO m
+  => GLenum -- ^ @target@.
+  -> GLuint -- ^ @index@.
+  -> Ptr GLfloat -- ^ @data@ pointing to @COMPSIZE(target)@ elements of type @GLfloat@.
+  -> m ()
+glGetFloati_v v1 v2 v3 = liftIO $ dyn278 ptr_glGetFloati_v v1 v2 v3
+
+{-# NOINLINE ptr_glGetFloati_v #-}
+ptr_glGetFloati_v :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
+ptr_glGetFloati_v = unsafePerformIO $ getCommand "glGetFloati_v"
+
+-- glGetFloati_vEXT ------------------------------------------------------------
+
+-- | This command is an alias for 'glGetFloati_v'.
+glGetFloati_vEXT
+  :: MonadIO m
+  => GLenum -- ^ @pname@.
+  -> GLuint -- ^ @index@.
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
+  -> m ()
+glGetFloati_vEXT v1 v2 v3 = liftIO $ dyn278 ptr_glGetFloati_vEXT v1 v2 v3
+
+{-# NOINLINE ptr_glGetFloati_vEXT #-}
+ptr_glGetFloati_vEXT :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
+ptr_glGetFloati_vEXT = unsafePerformIO $ getCommand "glGetFloati_vEXT"
+
+-- glGetFloati_vNV -------------------------------------------------------------
+
+-- | This command is an alias for 'glGetFloati_v'.
+glGetFloati_vNV
+  :: MonadIO m
+  => GLenum -- ^ @target@.
+  -> GLuint -- ^ @index@.
+  -> Ptr GLfloat -- ^ @data@ pointing to @COMPSIZE(target)@ elements of type @GLfloat@.
+  -> m ()
+glGetFloati_vNV v1 v2 v3 = liftIO $ dyn278 ptr_glGetFloati_vNV v1 v2 v3
+
+{-# NOINLINE ptr_glGetFloati_vNV #-}
+ptr_glGetFloati_vNV :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
+ptr_glGetFloati_vNV = unsafePerformIO $ getCommand "glGetFloati_vNV"
+
+-- glGetFloati_vOES ------------------------------------------------------------
+
+-- | This command is an alias for 'glGetFloati_v'.
+glGetFloati_vOES
+  :: MonadIO m
+  => GLenum -- ^ @target@.
+  -> GLuint -- ^ @index@.
+  -> Ptr GLfloat -- ^ @data@ pointing to @COMPSIZE(target)@ elements of type @GLfloat@.
+  -> m ()
+glGetFloati_vOES v1 v2 v3 = liftIO $ dyn278 ptr_glGetFloati_vOES v1 v2 v3
+
+{-# NOINLINE ptr_glGetFloati_vOES #-}
+ptr_glGetFloati_vOES :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
+ptr_glGetFloati_vOES = unsafePerformIO $ getCommand "glGetFloati_vOES"
+
+-- glGetFloatv -----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGet.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGet.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGet.xhtml OpenGL 4.x>.
+glGetFloatv
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [GetPName](Graphics-GL-Groups.html#GetPName).
+  -> Ptr GLfloat -- ^ @data@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
+  -> m ()
+glGetFloatv v1 v2 = liftIO $ dyn101 ptr_glGetFloatv v1 v2
+
+{-# NOINLINE ptr_glGetFloatv #-}
+ptr_glGetFloatv :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetFloatv = unsafePerformIO $ getCommand "glGetFloatv"
+
+-- glGetFogFuncSGIS ------------------------------------------------------------
+
+glGetFogFuncSGIS
+  :: MonadIO m
+  => Ptr GLfloat -- ^ @points@ pointing to @COMPSIZE()@ elements of type @GLfloat@.
+  -> m ()
+glGetFogFuncSGIS v1 = liftIO $ dyn44 ptr_glGetFogFuncSGIS v1
+
+{-# NOINLINE ptr_glGetFogFuncSGIS #-}
+ptr_glGetFogFuncSGIS :: FunPtr (Ptr GLfloat -> IO ())
+ptr_glGetFogFuncSGIS = unsafePerformIO $ getCommand "glGetFogFuncSGIS"
+
+-- glGetFragDataIndex ----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGetFragDataIndex.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetFragDataIndex.xhtml OpenGL 4.x>.
+glGetFragDataIndex
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> Ptr GLchar -- ^ @name@.
+  -> m GLint
+glGetFragDataIndex v1 v2 = liftIO $ dyn324 ptr_glGetFragDataIndex v1 v2
+
+{-# NOINLINE ptr_glGetFragDataIndex #-}
+ptr_glGetFragDataIndex :: FunPtr (GLuint -> Ptr GLchar -> IO GLint)
+ptr_glGetFragDataIndex = unsafePerformIO $ getCommand "glGetFragDataIndex"
+
+-- glGetFragDataIndexEXT -------------------------------------------------------
+
+-- | This command is an alias for 'glGetFragDataIndex'.
+glGetFragDataIndexEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> Ptr GLchar -- ^ @name@.
+  -> m GLint
+glGetFragDataIndexEXT v1 v2 = liftIO $ dyn324 ptr_glGetFragDataIndexEXT v1 v2
+
+{-# NOINLINE ptr_glGetFragDataIndexEXT #-}
+ptr_glGetFragDataIndexEXT :: FunPtr (GLuint -> Ptr GLchar -> IO GLint)
+ptr_glGetFragDataIndexEXT = unsafePerformIO $ getCommand "glGetFragDataIndexEXT"
+
+-- glGetFragDataLocation -------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGetFragDataLocation.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetFragDataLocation.xhtml OpenGL 4.x>.
+glGetFragDataLocation
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> Ptr GLchar -- ^ @name@ pointing to @COMPSIZE(name)@ elements of type @GLchar@.
+  -> m GLint
+glGetFragDataLocation v1 v2 = liftIO $ dyn324 ptr_glGetFragDataLocation v1 v2
+
+{-# NOINLINE ptr_glGetFragDataLocation #-}
+ptr_glGetFragDataLocation :: FunPtr (GLuint -> Ptr GLchar -> IO GLint)
+ptr_glGetFragDataLocation = unsafePerformIO $ getCommand "glGetFragDataLocation"
+
+-- glGetFragDataLocationEXT ----------------------------------------------------
+
+-- | This command is an alias for 'glGetFragDataLocation'.
+glGetFragDataLocationEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> Ptr GLchar -- ^ @name@ pointing to @COMPSIZE(name)@ elements of type @GLchar@.
+  -> m GLint
+glGetFragDataLocationEXT v1 v2 = liftIO $ dyn324 ptr_glGetFragDataLocationEXT v1 v2
+
+{-# NOINLINE ptr_glGetFragDataLocationEXT #-}
+ptr_glGetFragDataLocationEXT :: FunPtr (GLuint -> Ptr GLchar -> IO GLint)
+ptr_glGetFragDataLocationEXT = unsafePerformIO $ getCommand "glGetFragDataLocationEXT"
+
+-- glGetFragmentLightfvSGIX ----------------------------------------------------
+
+glGetFragmentLightfvSGIX
+  :: MonadIO m
+  => GLenum -- ^ @light@ of type [FragmentLightNameSGIX](Graphics-GL-Groups.html#FragmentLightNameSGIX).
+  -> GLenum -- ^ @pname@ of type [FragmentLightParameterSGIX](Graphics-GL-Groups.html#FragmentLightParameterSGIX).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
+  -> m ()
+glGetFragmentLightfvSGIX v1 v2 v3 = liftIO $ dyn139 ptr_glGetFragmentLightfvSGIX v1 v2 v3
+
+{-# NOINLINE ptr_glGetFragmentLightfvSGIX #-}
+ptr_glGetFragmentLightfvSGIX :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetFragmentLightfvSGIX = unsafePerformIO $ getCommand "glGetFragmentLightfvSGIX"
+
+-- glGetFragmentLightivSGIX ----------------------------------------------------
+
+glGetFragmentLightivSGIX
+  :: MonadIO m
+  => GLenum -- ^ @light@ of type [FragmentLightNameSGIX](Graphics-GL-Groups.html#FragmentLightNameSGIX).
+  -> GLenum -- ^ @pname@ of type [FragmentLightParameterSGIX](Graphics-GL-Groups.html#FragmentLightParameterSGIX).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetFragmentLightivSGIX v1 v2 v3 = liftIO $ dyn140 ptr_glGetFragmentLightivSGIX v1 v2 v3
+
+{-# NOINLINE ptr_glGetFragmentLightivSGIX #-}
+ptr_glGetFragmentLightivSGIX :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetFragmentLightivSGIX = unsafePerformIO $ getCommand "glGetFragmentLightivSGIX"
+
+-- glGetFragmentMaterialfvSGIX -------------------------------------------------
+
+glGetFragmentMaterialfvSGIX
+  :: MonadIO m
+  => GLenum -- ^ @face@ of type [MaterialFace](Graphics-GL-Groups.html#MaterialFace).
+  -> GLenum -- ^ @pname@ of type [MaterialParameter](Graphics-GL-Groups.html#MaterialParameter).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
+  -> m ()
+glGetFragmentMaterialfvSGIX v1 v2 v3 = liftIO $ dyn139 ptr_glGetFragmentMaterialfvSGIX v1 v2 v3
+
+{-# NOINLINE ptr_glGetFragmentMaterialfvSGIX #-}
+ptr_glGetFragmentMaterialfvSGIX :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetFragmentMaterialfvSGIX = unsafePerformIO $ getCommand "glGetFragmentMaterialfvSGIX"
+
+-- glGetFragmentMaterialivSGIX -------------------------------------------------
+
+glGetFragmentMaterialivSGIX
+  :: MonadIO m
+  => GLenum -- ^ @face@ of type [MaterialFace](Graphics-GL-Groups.html#MaterialFace).
+  -> GLenum -- ^ @pname@ of type [MaterialParameter](Graphics-GL-Groups.html#MaterialParameter).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetFragmentMaterialivSGIX v1 v2 v3 = liftIO $ dyn140 ptr_glGetFragmentMaterialivSGIX v1 v2 v3
+
+{-# NOINLINE ptr_glGetFragmentMaterialivSGIX #-}
+ptr_glGetFragmentMaterialivSGIX :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetFragmentMaterialivSGIX = unsafePerformIO $ getCommand "glGetFragmentMaterialivSGIX"
+
+-- glGetFramebufferAttachmentParameteriv ---------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGetFramebufferAttachmentParameter.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetFramebufferAttachmentParameter.xhtml OpenGL 4.x>.
+glGetFramebufferAttachmentParameteriv
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [FramebufferTarget](Graphics-GL-Groups.html#FramebufferTarget).
+  -> GLenum -- ^ @attachment@ of type [FramebufferAttachment](Graphics-GL-Groups.html#FramebufferAttachment).
+  -> GLenum -- ^ @pname@ of type [FramebufferAttachmentParameterName](Graphics-GL-Groups.html#FramebufferAttachmentParameterName).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetFramebufferAttachmentParameteriv v1 v2 v3 v4 = liftIO $ dyn335 ptr_glGetFramebufferAttachmentParameteriv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetFramebufferAttachmentParameteriv #-}
+ptr_glGetFramebufferAttachmentParameteriv :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetFramebufferAttachmentParameteriv = unsafePerformIO $ getCommand "glGetFramebufferAttachmentParameteriv"
+
+-- glGetFramebufferAttachmentParameterivEXT ------------------------------------
+
+-- | This command is an alias for 'glGetFramebufferAttachmentParameteriv'.
+glGetFramebufferAttachmentParameterivEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [FramebufferTarget](Graphics-GL-Groups.html#FramebufferTarget).
+  -> GLenum -- ^ @attachment@ of type [FramebufferAttachment](Graphics-GL-Groups.html#FramebufferAttachment).
+  -> GLenum -- ^ @pname@ of type [FramebufferAttachmentParameterName](Graphics-GL-Groups.html#FramebufferAttachmentParameterName).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetFramebufferAttachmentParameterivEXT v1 v2 v3 v4 = liftIO $ dyn335 ptr_glGetFramebufferAttachmentParameterivEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetFramebufferAttachmentParameterivEXT #-}
+ptr_glGetFramebufferAttachmentParameterivEXT :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetFramebufferAttachmentParameterivEXT = unsafePerformIO $ getCommand "glGetFramebufferAttachmentParameterivEXT"
+
+-- glGetFramebufferAttachmentParameterivOES ------------------------------------
+
+glGetFramebufferAttachmentParameterivOES
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [FramebufferTarget](Graphics-GL-Groups.html#FramebufferTarget).
+  -> GLenum -- ^ @attachment@ of type [FramebufferAttachment](Graphics-GL-Groups.html#FramebufferAttachment).
+  -> GLenum -- ^ @pname@ of type [FramebufferAttachmentParameterName](Graphics-GL-Groups.html#FramebufferAttachmentParameterName).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetFramebufferAttachmentParameterivOES v1 v2 v3 v4 = liftIO $ dyn335 ptr_glGetFramebufferAttachmentParameterivOES v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetFramebufferAttachmentParameterivOES #-}
+ptr_glGetFramebufferAttachmentParameterivOES :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetFramebufferAttachmentParameterivOES = unsafePerformIO $ getCommand "glGetFramebufferAttachmentParameterivOES"
+
+-- glGetFramebufferParameterfvAMD ----------------------------------------------
+
+glGetFramebufferParameterfvAMD
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [FramebufferTarget](Graphics-GL-Groups.html#FramebufferTarget).
+  -> GLenum -- ^ @pname@ of type [FramebufferAttachmentParameterName](Graphics-GL-Groups.html#FramebufferAttachmentParameterName).
+  -> GLuint -- ^ @numsamples@.
+  -> GLuint -- ^ @pixelindex@.
+  -> GLsizei -- ^ @size@.
+  -> Ptr GLfloat -- ^ @values@.
+  -> m ()
+glGetFramebufferParameterfvAMD v1 v2 v3 v4 v5 v6 = liftIO $ dyn349 ptr_glGetFramebufferParameterfvAMD v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glGetFramebufferParameterfvAMD #-}
+ptr_glGetFramebufferParameterfvAMD :: FunPtr (GLenum -> GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+ptr_glGetFramebufferParameterfvAMD = unsafePerformIO $ getCommand "glGetFramebufferParameterfvAMD"
+
+-- glGetFramebufferParameteriv -------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetFramebufferParameter.xhtml OpenGL 4.x>.
+glGetFramebufferParameteriv
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [FramebufferTarget](Graphics-GL-Groups.html#FramebufferTarget).
+  -> GLenum -- ^ @pname@ of type [FramebufferAttachmentParameterName](Graphics-GL-Groups.html#FramebufferAttachmentParameterName).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetFramebufferParameteriv v1 v2 v3 = liftIO $ dyn140 ptr_glGetFramebufferParameteriv v1 v2 v3
+
+{-# NOINLINE ptr_glGetFramebufferParameteriv #-}
+ptr_glGetFramebufferParameteriv :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetFramebufferParameteriv = unsafePerformIO $ getCommand "glGetFramebufferParameteriv"
+
+-- glGetFramebufferParameterivEXT ----------------------------------------------
+
+glGetFramebufferParameterivEXT
+  :: MonadIO m
+  => GLuint -- ^ @framebuffer@ of type @Framebuffer@.
+  -> GLenum -- ^ @pname@ of type [GetFramebufferParameter](Graphics-GL-Groups.html#GetFramebufferParameter).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetFramebufferParameterivEXT v1 v2 v3 = liftIO $ dyn348 ptr_glGetFramebufferParameterivEXT v1 v2 v3
+
+{-# NOINLINE ptr_glGetFramebufferParameterivEXT #-}
+ptr_glGetFramebufferParameterivEXT :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetFramebufferParameterivEXT = unsafePerformIO $ getCommand "glGetFramebufferParameterivEXT"
+
+-- glGetFramebufferParameterivMESA ---------------------------------------------
+
+glGetFramebufferParameterivMESA
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [FramebufferTarget](Graphics-GL-Groups.html#FramebufferTarget).
+  -> GLenum -- ^ @pname@ of type [FramebufferAttachmentParameterName](Graphics-GL-Groups.html#FramebufferAttachmentParameterName).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetFramebufferParameterivMESA v1 v2 v3 = liftIO $ dyn140 ptr_glGetFramebufferParameterivMESA v1 v2 v3
+
+{-# NOINLINE ptr_glGetFramebufferParameterivMESA #-}
+ptr_glGetFramebufferParameterivMESA :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetFramebufferParameterivMESA = unsafePerformIO $ getCommand "glGetFramebufferParameterivMESA"
+
+-- glGetFramebufferPixelLocalStorageSizeEXT ------------------------------------
+
+glGetFramebufferPixelLocalStorageSizeEXT
+  :: MonadIO m
+  => GLuint -- ^ @target@ of type [FramebufferTarget](Graphics-GL-Groups.html#FramebufferTarget).
+  -> m GLsizei
+glGetFramebufferPixelLocalStorageSizeEXT v1 = liftIO $ dyn350 ptr_glGetFramebufferPixelLocalStorageSizeEXT v1
+
+{-# NOINLINE ptr_glGetFramebufferPixelLocalStorageSizeEXT #-}
+ptr_glGetFramebufferPixelLocalStorageSizeEXT :: FunPtr (GLuint -> IO GLsizei)
+ptr_glGetFramebufferPixelLocalStorageSizeEXT = unsafePerformIO $ getCommand "glGetFramebufferPixelLocalStorageSizeEXT"
+
+-- glGetGraphicsResetStatus ----------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetGraphicsResetStatus.xhtml OpenGL 4.x>.
+glGetGraphicsResetStatus
+  :: MonadIO m
+  => m GLenum -- ^ of type [GraphicsResetStatus](Graphics-GL-Groups.html#GraphicsResetStatus).
+glGetGraphicsResetStatus = liftIO $ dyn347 ptr_glGetGraphicsResetStatus
+
+{-# NOINLINE ptr_glGetGraphicsResetStatus #-}
+ptr_glGetGraphicsResetStatus :: FunPtr (IO GLenum)
+ptr_glGetGraphicsResetStatus = unsafePerformIO $ getCommand "glGetGraphicsResetStatus"
+
+-- glGetGraphicsResetStatusARB -------------------------------------------------
+
+glGetGraphicsResetStatusARB
+  :: MonadIO m
+  => m GLenum -- ^ of type [GraphicsResetStatus](Graphics-GL-Groups.html#GraphicsResetStatus).
+glGetGraphicsResetStatusARB = liftIO $ dyn347 ptr_glGetGraphicsResetStatusARB
+
+{-# NOINLINE ptr_glGetGraphicsResetStatusARB #-}
+ptr_glGetGraphicsResetStatusARB :: FunPtr (IO GLenum)
+ptr_glGetGraphicsResetStatusARB = unsafePerformIO $ getCommand "glGetGraphicsResetStatusARB"
+
+-- glGetGraphicsResetStatusEXT -------------------------------------------------
+
+-- | This command is an alias for 'glGetGraphicsResetStatus'.
+glGetGraphicsResetStatusEXT
+  :: MonadIO m
+  => m GLenum -- ^ of type [GraphicsResetStatus](Graphics-GL-Groups.html#GraphicsResetStatus).
+glGetGraphicsResetStatusEXT = liftIO $ dyn347 ptr_glGetGraphicsResetStatusEXT
+
+{-# NOINLINE ptr_glGetGraphicsResetStatusEXT #-}
+ptr_glGetGraphicsResetStatusEXT :: FunPtr (IO GLenum)
+ptr_glGetGraphicsResetStatusEXT = unsafePerformIO $ getCommand "glGetGraphicsResetStatusEXT"
+
+-- glGetGraphicsResetStatusKHR -------------------------------------------------
+
+-- | This command is an alias for 'glGetGraphicsResetStatus'.
+glGetGraphicsResetStatusKHR
+  :: MonadIO m
+  => m GLenum -- ^ of type [GraphicsResetStatus](Graphics-GL-Groups.html#GraphicsResetStatus).
+glGetGraphicsResetStatusKHR = liftIO $ dyn347 ptr_glGetGraphicsResetStatusKHR
+
+{-# NOINLINE ptr_glGetGraphicsResetStatusKHR #-}
+ptr_glGetGraphicsResetStatusKHR :: FunPtr (IO GLenum)
+ptr_glGetGraphicsResetStatusKHR = unsafePerformIO $ getCommand "glGetGraphicsResetStatusKHR"
+
+-- glGetHandleARB --------------------------------------------------------------
+
+glGetHandleARB
+  :: MonadIO m
+  => GLenum -- ^ @pname@.
+  -> m GLhandleARB -- ^ of type @handleARB@.
+glGetHandleARB v1 = liftIO $ dyn205 ptr_glGetHandleARB v1
+
+{-# NOINLINE ptr_glGetHandleARB #-}
+ptr_glGetHandleARB :: FunPtr (GLenum -> IO GLhandleARB)
+ptr_glGetHandleARB = unsafePerformIO $ getCommand "glGetHandleARB"
+
+-- glGetHistogram --------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetHistogram.xml OpenGL 2.x>.
+glGetHistogram
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [HistogramTargetEXT](Graphics-GL-Groups.html#HistogramTargetEXT).
+  -> GLboolean -- ^ @reset@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @values@ pointing to @COMPSIZE(target,format,type)@ elements of type @a@.
+  -> m ()
+glGetHistogram v1 v2 v3 v4 v5 = liftIO $ dyn351 ptr_glGetHistogram v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glGetHistogram #-}
+ptr_glGetHistogram :: FunPtr (GLenum -> GLboolean -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glGetHistogram = unsafePerformIO $ getCommand "glGetHistogram"
+
+-- glGetHistogramEXT -----------------------------------------------------------
+
+glGetHistogramEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [HistogramTargetEXT](Graphics-GL-Groups.html#HistogramTargetEXT).
+  -> GLboolean -- ^ @reset@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @values@ pointing to @COMPSIZE(target,format,type)@ elements of type @a@.
+  -> m ()
+glGetHistogramEXT v1 v2 v3 v4 v5 = liftIO $ dyn351 ptr_glGetHistogramEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glGetHistogramEXT #-}
+ptr_glGetHistogramEXT :: FunPtr (GLenum -> GLboolean -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glGetHistogramEXT = unsafePerformIO $ getCommand "glGetHistogramEXT"
+
+-- glGetHistogramParameterfv ---------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetHistogramParameter.xml OpenGL 2.x>.
+glGetHistogramParameterfv
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [HistogramTargetEXT](Graphics-GL-Groups.html#HistogramTargetEXT).
+  -> GLenum -- ^ @pname@ of type [GetHistogramParameterPNameEXT](Graphics-GL-Groups.html#GetHistogramParameterPNameEXT).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
+  -> m ()
+glGetHistogramParameterfv v1 v2 v3 = liftIO $ dyn139 ptr_glGetHistogramParameterfv v1 v2 v3
+
+{-# NOINLINE ptr_glGetHistogramParameterfv #-}
+ptr_glGetHistogramParameterfv :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetHistogramParameterfv = unsafePerformIO $ getCommand "glGetHistogramParameterfv"
+
+-- glGetHistogramParameterfvEXT ------------------------------------------------
+
+glGetHistogramParameterfvEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [HistogramTargetEXT](Graphics-GL-Groups.html#HistogramTargetEXT).
+  -> GLenum -- ^ @pname@ of type [GetHistogramParameterPNameEXT](Graphics-GL-Groups.html#GetHistogramParameterPNameEXT).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
+  -> m ()
+glGetHistogramParameterfvEXT v1 v2 v3 = liftIO $ dyn139 ptr_glGetHistogramParameterfvEXT v1 v2 v3
+
+{-# NOINLINE ptr_glGetHistogramParameterfvEXT #-}
+ptr_glGetHistogramParameterfvEXT :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetHistogramParameterfvEXT = unsafePerformIO $ getCommand "glGetHistogramParameterfvEXT"
+
+-- glGetHistogramParameteriv ---------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetHistogramParameter.xml OpenGL 2.x>.
+glGetHistogramParameteriv
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [HistogramTargetEXT](Graphics-GL-Groups.html#HistogramTargetEXT).
+  -> GLenum -- ^ @pname@ of type [GetHistogramParameterPNameEXT](Graphics-GL-Groups.html#GetHistogramParameterPNameEXT).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetHistogramParameteriv v1 v2 v3 = liftIO $ dyn140 ptr_glGetHistogramParameteriv v1 v2 v3
+
+{-# NOINLINE ptr_glGetHistogramParameteriv #-}
+ptr_glGetHistogramParameteriv :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetHistogramParameteriv = unsafePerformIO $ getCommand "glGetHistogramParameteriv"
+
+-- glGetHistogramParameterivEXT ------------------------------------------------
+
+glGetHistogramParameterivEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [HistogramTargetEXT](Graphics-GL-Groups.html#HistogramTargetEXT).
+  -> GLenum -- ^ @pname@ of type [GetHistogramParameterPNameEXT](Graphics-GL-Groups.html#GetHistogramParameterPNameEXT).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetHistogramParameterivEXT v1 v2 v3 = liftIO $ dyn140 ptr_glGetHistogramParameterivEXT v1 v2 v3
+
+{-# NOINLINE ptr_glGetHistogramParameterivEXT #-}
+ptr_glGetHistogramParameterivEXT :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetHistogramParameterivEXT = unsafePerformIO $ getCommand "glGetHistogramParameterivEXT"
+
+-- glGetHistogramParameterxvOES ------------------------------------------------
+
+glGetHistogramParameterxvOES
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [HistogramTargetEXT](Graphics-GL-Groups.html#HistogramTargetEXT).
+  -> GLenum -- ^ @pname@ of type [GetHistogramParameterPNameEXT](Graphics-GL-Groups.html#GetHistogramParameterPNameEXT).
+  -> Ptr GLfixed -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfixed@.
+  -> m ()
+glGetHistogramParameterxvOES v1 v2 v3 = liftIO $ dyn170 ptr_glGetHistogramParameterxvOES v1 v2 v3
+
+{-# NOINLINE ptr_glGetHistogramParameterxvOES #-}
+ptr_glGetHistogramParameterxvOES :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+ptr_glGetHistogramParameterxvOES = unsafePerformIO $ getCommand "glGetHistogramParameterxvOES"
+
+-- glGetImageHandleARB ---------------------------------------------------------
+
+glGetImageHandleARB
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLint -- ^ @level@.
+  -> GLboolean -- ^ @layered@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> GLint -- ^ @layer@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> m GLuint64
+glGetImageHandleARB v1 v2 v3 v4 v5 = liftIO $ dyn352 ptr_glGetImageHandleARB v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glGetImageHandleARB #-}
+ptr_glGetImageHandleARB :: FunPtr (GLuint -> GLint -> GLboolean -> GLint -> GLenum -> IO GLuint64)
+ptr_glGetImageHandleARB = unsafePerformIO $ getCommand "glGetImageHandleARB"
+
+-- glGetImageHandleNV ----------------------------------------------------------
+
+glGetImageHandleNV
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLint -- ^ @level@.
+  -> GLboolean -- ^ @layered@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> GLint -- ^ @layer@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> m GLuint64
+glGetImageHandleNV v1 v2 v3 v4 v5 = liftIO $ dyn352 ptr_glGetImageHandleNV v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glGetImageHandleNV #-}
+ptr_glGetImageHandleNV :: FunPtr (GLuint -> GLint -> GLboolean -> GLint -> GLenum -> IO GLuint64)
+ptr_glGetImageHandleNV = unsafePerformIO $ getCommand "glGetImageHandleNV"
+
+-- glGetImageTransformParameterfvHP --------------------------------------------
+
+glGetImageTransformParameterfvHP
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ImageTransformTargetHP](Graphics-GL-Groups.html#ImageTransformTargetHP).
+  -> GLenum -- ^ @pname@ of type [ImageTransformPNameHP](Graphics-GL-Groups.html#ImageTransformPNameHP).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
+  -> m ()
+glGetImageTransformParameterfvHP v1 v2 v3 = liftIO $ dyn139 ptr_glGetImageTransformParameterfvHP v1 v2 v3
+
+{-# NOINLINE ptr_glGetImageTransformParameterfvHP #-}
+ptr_glGetImageTransformParameterfvHP :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetImageTransformParameterfvHP = unsafePerformIO $ getCommand "glGetImageTransformParameterfvHP"
+
+-- glGetImageTransformParameterivHP --------------------------------------------
+
+glGetImageTransformParameterivHP
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ImageTransformTargetHP](Graphics-GL-Groups.html#ImageTransformTargetHP).
+  -> GLenum -- ^ @pname@ of type [ImageTransformPNameHP](Graphics-GL-Groups.html#ImageTransformPNameHP).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetImageTransformParameterivHP v1 v2 v3 = liftIO $ dyn140 ptr_glGetImageTransformParameterivHP v1 v2 v3
+
+{-# NOINLINE ptr_glGetImageTransformParameterivHP #-}
+ptr_glGetImageTransformParameterivHP :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetImageTransformParameterivHP = unsafePerformIO $ getCommand "glGetImageTransformParameterivHP"
+
+-- glGetInfoLogARB -------------------------------------------------------------
+
+glGetInfoLogARB
+  :: MonadIO m
+  => GLhandleARB -- ^ @obj@ of type @handleARB@.
+  -> GLsizei -- ^ @maxLength@.
+  -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
+  -> Ptr GLcharARB -- ^ @infoLog@ pointing to @maxLength@ elements of type @GLcharARB@.
+  -> m ()
+glGetInfoLogARB v1 v2 v3 v4 = liftIO $ dyn353 ptr_glGetInfoLogARB v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetInfoLogARB #-}
+ptr_glGetInfoLogARB :: FunPtr (GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLcharARB -> IO ())
+ptr_glGetInfoLogARB = unsafePerformIO $ getCommand "glGetInfoLogARB"
+
+-- glGetInstrumentsSGIX --------------------------------------------------------
+
+glGetInstrumentsSGIX
+  :: MonadIO m
+  => m GLint
+glGetInstrumentsSGIX = liftIO $ dyn354 ptr_glGetInstrumentsSGIX
+
+{-# NOINLINE ptr_glGetInstrumentsSGIX #-}
+ptr_glGetInstrumentsSGIX :: FunPtr (IO GLint)
+ptr_glGetInstrumentsSGIX = unsafePerformIO $ getCommand "glGetInstrumentsSGIX"
+
+-- glGetInteger64i_v -----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGet.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGet.xhtml OpenGL 4.x>.
+glGetInteger64i_v
+  :: MonadIO m
+  => GLenum -- ^ @target@.
+  -> GLuint -- ^ @index@.
+  -> Ptr GLint64 -- ^ @data@ pointing to @COMPSIZE(target)@ elements of type @GLint64@.
+  -> m ()
+glGetInteger64i_v v1 v2 v3 = liftIO $ dyn355 ptr_glGetInteger64i_v v1 v2 v3
+
+{-# NOINLINE ptr_glGetInteger64i_v #-}
+ptr_glGetInteger64i_v :: FunPtr (GLenum -> GLuint -> Ptr GLint64 -> IO ())
+ptr_glGetInteger64i_v = unsafePerformIO $ getCommand "glGetInteger64i_v"
+
+-- glGetInteger64v -------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGet.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGet.xhtml OpenGL 4.x>.
+glGetInteger64v
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [GetPName](Graphics-GL-Groups.html#GetPName).
+  -> Ptr GLint64 -- ^ @data@ pointing to @COMPSIZE(pname)@ elements of type @GLint64@.
+  -> m ()
+glGetInteger64v v1 v2 = liftIO $ dyn356 ptr_glGetInteger64v v1 v2
+
+{-# NOINLINE ptr_glGetInteger64v #-}
+ptr_glGetInteger64v :: FunPtr (GLenum -> Ptr GLint64 -> IO ())
+ptr_glGetInteger64v = unsafePerformIO $ getCommand "glGetInteger64v"
+
+-- glGetInteger64vAPPLE --------------------------------------------------------
+
+-- | This command is an alias for 'glGetInteger64v'.
+glGetInteger64vAPPLE
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [GetPName](Graphics-GL-Groups.html#GetPName).
+  -> Ptr GLint64 -- ^ @params@.
+  -> m ()
+glGetInteger64vAPPLE v1 v2 = liftIO $ dyn356 ptr_glGetInteger64vAPPLE v1 v2
+
+{-# NOINLINE ptr_glGetInteger64vAPPLE #-}
+ptr_glGetInteger64vAPPLE :: FunPtr (GLenum -> Ptr GLint64 -> IO ())
+ptr_glGetInteger64vAPPLE = unsafePerformIO $ getCommand "glGetInteger64vAPPLE"
+
+-- glGetInteger64vEXT ----------------------------------------------------------
+
+-- | This command is an alias for 'glGetInteger64v'.
+glGetInteger64vEXT
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [GetPName](Graphics-GL-Groups.html#GetPName).
+  -> Ptr GLint64 -- ^ @data@ pointing to @COMPSIZE(pname)@ elements of type @GLint64@.
+  -> m ()
+glGetInteger64vEXT v1 v2 = liftIO $ dyn356 ptr_glGetInteger64vEXT v1 v2
+
+{-# NOINLINE ptr_glGetInteger64vEXT #-}
+ptr_glGetInteger64vEXT :: FunPtr (GLenum -> Ptr GLint64 -> IO ())
+ptr_glGetInteger64vEXT = unsafePerformIO $ getCommand "glGetInteger64vEXT"
+
+-- glGetIntegerIndexedvEXT -----------------------------------------------------
+
+-- | This command is an alias for 'glGetIntegeri_v'.
+glGetIntegerIndexedvEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@.
+  -> GLuint -- ^ @index@.
+  -> Ptr GLint -- ^ @data@ pointing to @COMPSIZE(target)@ elements of type @GLint@.
+  -> m ()
+glGetIntegerIndexedvEXT v1 v2 v3 = liftIO $ dyn357 ptr_glGetIntegerIndexedvEXT v1 v2 v3
+
+{-# NOINLINE ptr_glGetIntegerIndexedvEXT #-}
+ptr_glGetIntegerIndexedvEXT :: FunPtr (GLenum -> GLuint -> Ptr GLint -> IO ())
+ptr_glGetIntegerIndexedvEXT = unsafePerformIO $ getCommand "glGetIntegerIndexedvEXT"
+
+-- glGetIntegeri_v -------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGet.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGet.xhtml OpenGL 4.x>.
+glGetIntegeri_v
+  :: MonadIO m
+  => GLenum -- ^ @target@.
+  -> GLuint -- ^ @index@.
+  -> Ptr GLint -- ^ @data@ pointing to @COMPSIZE(target)@ elements of type @GLint@.
+  -> m ()
+glGetIntegeri_v v1 v2 v3 = liftIO $ dyn357 ptr_glGetIntegeri_v v1 v2 v3
+
+{-# NOINLINE ptr_glGetIntegeri_v #-}
+ptr_glGetIntegeri_v :: FunPtr (GLenum -> GLuint -> Ptr GLint -> IO ())
+ptr_glGetIntegeri_v = unsafePerformIO $ getCommand "glGetIntegeri_v"
+
+-- glGetIntegeri_vEXT ----------------------------------------------------------
+
+glGetIntegeri_vEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@.
+  -> GLuint -- ^ @index@.
+  -> Ptr GLint -- ^ @data@.
+  -> m ()
+glGetIntegeri_vEXT v1 v2 v3 = liftIO $ dyn357 ptr_glGetIntegeri_vEXT v1 v2 v3
+
+{-# NOINLINE ptr_glGetIntegeri_vEXT #-}
+ptr_glGetIntegeri_vEXT :: FunPtr (GLenum -> GLuint -> Ptr GLint -> IO ())
+ptr_glGetIntegeri_vEXT = unsafePerformIO $ getCommand "glGetIntegeri_vEXT"
+
+-- glGetIntegerui64i_vNV -------------------------------------------------------
+
+glGetIntegerui64i_vNV
+  :: MonadIO m
+  => GLenum -- ^ @value@.
+  -> GLuint -- ^ @index@.
+  -> Ptr GLuint64EXT -- ^ @result@ pointing to @COMPSIZE(value)@ elements of type @GLuint64EXT@.
+  -> m ()
+glGetIntegerui64i_vNV v1 v2 v3 = liftIO $ dyn358 ptr_glGetIntegerui64i_vNV v1 v2 v3
+
+{-# NOINLINE ptr_glGetIntegerui64i_vNV #-}
+ptr_glGetIntegerui64i_vNV :: FunPtr (GLenum -> GLuint -> Ptr GLuint64EXT -> IO ())
+ptr_glGetIntegerui64i_vNV = unsafePerformIO $ getCommand "glGetIntegerui64i_vNV"
+
+-- glGetIntegerui64vNV ---------------------------------------------------------
+
+glGetIntegerui64vNV
+  :: MonadIO m
+  => GLenum -- ^ @value@.
+  -> Ptr GLuint64EXT -- ^ @result@ pointing to @COMPSIZE(value)@ elements of type @GLuint64EXT@.
+  -> m ()
+glGetIntegerui64vNV v1 v2 = liftIO $ dyn359 ptr_glGetIntegerui64vNV v1 v2
+
+{-# NOINLINE ptr_glGetIntegerui64vNV #-}
+ptr_glGetIntegerui64vNV :: FunPtr (GLenum -> Ptr GLuint64EXT -> IO ())
+ptr_glGetIntegerui64vNV = unsafePerformIO $ getCommand "glGetIntegerui64vNV"
+
+-- glGetIntegerv ---------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGet.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGet.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGet.xhtml OpenGL 4.x>.
+glGetIntegerv
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [GetPName](Graphics-GL-Groups.html#GetPName).
+  -> Ptr GLint -- ^ @data@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetIntegerv v1 v2 = liftIO $ dyn143 ptr_glGetIntegerv v1 v2
+
+{-# NOINLINE ptr_glGetIntegerv #-}
+ptr_glGetIntegerv :: FunPtr (GLenum -> Ptr GLint -> IO ())
+ptr_glGetIntegerv = unsafePerformIO $ getCommand "glGetIntegerv"
+
+-- glGetInternalformatSampleivNV -----------------------------------------------
+
+glGetInternalformatSampleivNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @samples@.
+  -> GLenum -- ^ @pname@ of type [InternalFormatPName](Graphics-GL-Groups.html#InternalFormatPName).
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLint -- ^ @params@ pointing to @count@ elements of type @GLint@.
+  -> m ()
+glGetInternalformatSampleivNV v1 v2 v3 v4 v5 v6 = liftIO $ dyn360 ptr_glGetInternalformatSampleivNV v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glGetInternalformatSampleivNV #-}
+ptr_glGetInternalformatSampleivNV :: FunPtr (GLenum -> GLenum -> GLsizei -> GLenum -> GLsizei -> Ptr GLint -> IO ())
+ptr_glGetInternalformatSampleivNV = unsafePerformIO $ getCommand "glGetInternalformatSampleivNV"
+
+-- glGetInternalformati64v -----------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetInternalformat.xhtml OpenGL 4.x>.
+glGetInternalformati64v
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLenum -- ^ @pname@ of type [InternalFormatPName](Graphics-GL-Groups.html#InternalFormatPName).
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLint64 -- ^ @params@ pointing to @count@ elements of type @GLint64@.
+  -> m ()
+glGetInternalformati64v v1 v2 v3 v4 v5 = liftIO $ dyn361 ptr_glGetInternalformati64v v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glGetInternalformati64v #-}
+ptr_glGetInternalformati64v :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint64 -> IO ())
+ptr_glGetInternalformati64v = unsafePerformIO $ getCommand "glGetInternalformati64v"
+
+-- glGetInternalformativ -------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetInternalformat.xhtml OpenGL 4.x>.
+glGetInternalformativ
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLenum -- ^ @pname@ of type [InternalFormatPName](Graphics-GL-Groups.html#InternalFormatPName).
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLint -- ^ @params@ pointing to @count@ elements of type @GLint@.
+  -> m ()
+glGetInternalformativ v1 v2 v3 v4 v5 = liftIO $ dyn362 ptr_glGetInternalformativ v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glGetInternalformativ #-}
+ptr_glGetInternalformativ :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint -> IO ())
+ptr_glGetInternalformativ = unsafePerformIO $ getCommand "glGetInternalformativ"
+
+-- glGetInvariantBooleanvEXT ---------------------------------------------------
+
+glGetInvariantBooleanvEXT
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> GLenum -- ^ @value@ of type [GetVariantValueEXT](Graphics-GL-Groups.html#GetVariantValueEXT).
+  -> Ptr GLboolean -- ^ @data@ pointing to @COMPSIZE(id)@ elements of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m ()
+glGetInvariantBooleanvEXT v1 v2 v3 = liftIO $ dyn363 ptr_glGetInvariantBooleanvEXT v1 v2 v3
+
+{-# NOINLINE ptr_glGetInvariantBooleanvEXT #-}
+ptr_glGetInvariantBooleanvEXT :: FunPtr (GLuint -> GLenum -> Ptr GLboolean -> IO ())
+ptr_glGetInvariantBooleanvEXT = unsafePerformIO $ getCommand "glGetInvariantBooleanvEXT"
+
+-- glGetInvariantFloatvEXT -----------------------------------------------------
+
+glGetInvariantFloatvEXT
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> GLenum -- ^ @value@ of type [GetVariantValueEXT](Graphics-GL-Groups.html#GetVariantValueEXT).
+  -> Ptr GLfloat -- ^ @data@ pointing to @COMPSIZE(id)@ elements of type @GLfloat@.
+  -> m ()
+glGetInvariantFloatvEXT v1 v2 v3 = liftIO $ dyn364 ptr_glGetInvariantFloatvEXT v1 v2 v3
+
+{-# NOINLINE ptr_glGetInvariantFloatvEXT #-}
+ptr_glGetInvariantFloatvEXT :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetInvariantFloatvEXT = unsafePerformIO $ getCommand "glGetInvariantFloatvEXT"
+
+-- glGetInvariantIntegervEXT ---------------------------------------------------
+
+glGetInvariantIntegervEXT
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> GLenum -- ^ @value@ of type [GetVariantValueEXT](Graphics-GL-Groups.html#GetVariantValueEXT).
+  -> Ptr GLint -- ^ @data@ pointing to @COMPSIZE(id)@ elements of type @GLint@.
+  -> m ()
+glGetInvariantIntegervEXT v1 v2 v3 = liftIO $ dyn348 ptr_glGetInvariantIntegervEXT v1 v2 v3
+
+{-# NOINLINE ptr_glGetInvariantIntegervEXT #-}
+ptr_glGetInvariantIntegervEXT :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetInvariantIntegervEXT = unsafePerformIO $ getCommand "glGetInvariantIntegervEXT"
+
+-- glGetLightfv ----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetLight.xml OpenGL 2.x>.
+glGetLightfv
+  :: MonadIO m
+  => GLenum -- ^ @light@ of type [LightName](Graphics-GL-Groups.html#LightName).
+  -> GLenum -- ^ @pname@ of type [LightParameter](Graphics-GL-Groups.html#LightParameter).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
+  -> m ()
+glGetLightfv v1 v2 v3 = liftIO $ dyn139 ptr_glGetLightfv v1 v2 v3
+
+{-# NOINLINE ptr_glGetLightfv #-}
+ptr_glGetLightfv :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetLightfv = unsafePerformIO $ getCommand "glGetLightfv"
+
+-- glGetLightiv ----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetLight.xml OpenGL 2.x>.
+glGetLightiv
+  :: MonadIO m
+  => GLenum -- ^ @light@ of type [LightName](Graphics-GL-Groups.html#LightName).
+  -> GLenum -- ^ @pname@ of type [LightParameter](Graphics-GL-Groups.html#LightParameter).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetLightiv v1 v2 v3 = liftIO $ dyn140 ptr_glGetLightiv v1 v2 v3
+
+{-# NOINLINE ptr_glGetLightiv #-}
+ptr_glGetLightiv :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetLightiv = unsafePerformIO $ getCommand "glGetLightiv"
+
+-- glGetLightxOES --------------------------------------------------------------
+
+glGetLightxOES
+  :: MonadIO m
+  => GLenum -- ^ @light@ of type [LightName](Graphics-GL-Groups.html#LightName).
+  -> GLenum -- ^ @pname@ of type [LightParameter](Graphics-GL-Groups.html#LightParameter).
+  -> Ptr GLfixed -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfixed@.
+  -> m ()
+glGetLightxOES v1 v2 v3 = liftIO $ dyn170 ptr_glGetLightxOES v1 v2 v3
+
+{-# NOINLINE ptr_glGetLightxOES #-}
+ptr_glGetLightxOES :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+ptr_glGetLightxOES = unsafePerformIO $ getCommand "glGetLightxOES"
+
+-- glGetLightxv ----------------------------------------------------------------
+
+glGetLightxv
+  :: MonadIO m
+  => GLenum -- ^ @light@ of type [LightName](Graphics-GL-Groups.html#LightName).
+  -> GLenum -- ^ @pname@ of type [LightParameter](Graphics-GL-Groups.html#LightParameter).
+  -> Ptr GLfixed -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfixed@.
+  -> m ()
+glGetLightxv v1 v2 v3 = liftIO $ dyn170 ptr_glGetLightxv v1 v2 v3
+
+{-# NOINLINE ptr_glGetLightxv #-}
+ptr_glGetLightxv :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+ptr_glGetLightxv = unsafePerformIO $ getCommand "glGetLightxv"
+
+-- glGetLightxvOES -------------------------------------------------------------
+
+glGetLightxvOES
+  :: MonadIO m
+  => GLenum -- ^ @light@ of type [LightName](Graphics-GL-Groups.html#LightName).
+  -> GLenum -- ^ @pname@ of type [LightParameter](Graphics-GL-Groups.html#LightParameter).
+  -> Ptr GLfixed -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfixed@.
+  -> m ()
+glGetLightxvOES v1 v2 v3 = liftIO $ dyn170 ptr_glGetLightxvOES v1 v2 v3
+
+{-# NOINLINE ptr_glGetLightxvOES #-}
+ptr_glGetLightxvOES :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+ptr_glGetLightxvOES = unsafePerformIO $ getCommand "glGetLightxvOES"
+
+-- glGetListParameterfvSGIX ----------------------------------------------------
+
+glGetListParameterfvSGIX
+  :: MonadIO m
+  => GLuint -- ^ @list@ of type @List@.
+  -> GLenum -- ^ @pname@ of type [ListParameterName](Graphics-GL-Groups.html#ListParameterName).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @CheckedFloat32@.
+  -> m ()
+glGetListParameterfvSGIX v1 v2 v3 = liftIO $ dyn364 ptr_glGetListParameterfvSGIX v1 v2 v3
+
+{-# NOINLINE ptr_glGetListParameterfvSGIX #-}
+ptr_glGetListParameterfvSGIX :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetListParameterfvSGIX = unsafePerformIO $ getCommand "glGetListParameterfvSGIX"
+
+-- glGetListParameterivSGIX ----------------------------------------------------
+
+glGetListParameterivSGIX
+  :: MonadIO m
+  => GLuint -- ^ @list@ of type @List@.
+  -> GLenum -- ^ @pname@ of type [ListParameterName](Graphics-GL-Groups.html#ListParameterName).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @CheckedInt32@.
+  -> m ()
+glGetListParameterivSGIX v1 v2 v3 = liftIO $ dyn348 ptr_glGetListParameterivSGIX v1 v2 v3
+
+{-# NOINLINE ptr_glGetListParameterivSGIX #-}
+ptr_glGetListParameterivSGIX :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetListParameterivSGIX = unsafePerformIO $ getCommand "glGetListParameterivSGIX"
+
+-- glGetLocalConstantBooleanvEXT -----------------------------------------------
+
+glGetLocalConstantBooleanvEXT
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> GLenum -- ^ @value@ of type [GetVariantValueEXT](Graphics-GL-Groups.html#GetVariantValueEXT).
+  -> Ptr GLboolean -- ^ @data@ pointing to @COMPSIZE(id)@ elements of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m ()
+glGetLocalConstantBooleanvEXT v1 v2 v3 = liftIO $ dyn363 ptr_glGetLocalConstantBooleanvEXT v1 v2 v3
+
+{-# NOINLINE ptr_glGetLocalConstantBooleanvEXT #-}
+ptr_glGetLocalConstantBooleanvEXT :: FunPtr (GLuint -> GLenum -> Ptr GLboolean -> IO ())
+ptr_glGetLocalConstantBooleanvEXT = unsafePerformIO $ getCommand "glGetLocalConstantBooleanvEXT"
+
+-- glGetLocalConstantFloatvEXT -------------------------------------------------
+
+glGetLocalConstantFloatvEXT
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> GLenum -- ^ @value@ of type [GetVariantValueEXT](Graphics-GL-Groups.html#GetVariantValueEXT).
+  -> Ptr GLfloat -- ^ @data@ pointing to @COMPSIZE(id)@ elements of type @GLfloat@.
+  -> m ()
+glGetLocalConstantFloatvEXT v1 v2 v3 = liftIO $ dyn364 ptr_glGetLocalConstantFloatvEXT v1 v2 v3
+
+{-# NOINLINE ptr_glGetLocalConstantFloatvEXT #-}
+ptr_glGetLocalConstantFloatvEXT :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetLocalConstantFloatvEXT = unsafePerformIO $ getCommand "glGetLocalConstantFloatvEXT"
+
+-- glGetLocalConstantIntegervEXT -----------------------------------------------
+
+glGetLocalConstantIntegervEXT
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> GLenum -- ^ @value@ of type [GetVariantValueEXT](Graphics-GL-Groups.html#GetVariantValueEXT).
+  -> Ptr GLint -- ^ @data@ pointing to @COMPSIZE(id)@ elements of type @GLint@.
+  -> m ()
+glGetLocalConstantIntegervEXT v1 v2 v3 = liftIO $ dyn348 ptr_glGetLocalConstantIntegervEXT v1 v2 v3
+
+{-# NOINLINE ptr_glGetLocalConstantIntegervEXT #-}
+ptr_glGetLocalConstantIntegervEXT :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetLocalConstantIntegervEXT = unsafePerformIO $ getCommand "glGetLocalConstantIntegervEXT"
+
+-- glGetMapAttribParameterfvNV -------------------------------------------------
+
+glGetMapAttribParameterfvNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [EvalTargetNV](Graphics-GL-Groups.html#EvalTargetNV).
+  -> GLuint -- ^ @index@.
+  -> GLenum -- ^ @pname@ of type [MapAttribParameterNV](Graphics-GL-Groups.html#MapAttribParameterNV).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
+  -> m ()
+glGetMapAttribParameterfvNV v1 v2 v3 v4 = liftIO $ dyn365 ptr_glGetMapAttribParameterfvNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetMapAttribParameterfvNV #-}
+ptr_glGetMapAttribParameterfvNV :: FunPtr (GLenum -> GLuint -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetMapAttribParameterfvNV = unsafePerformIO $ getCommand "glGetMapAttribParameterfvNV"
+
+-- glGetMapAttribParameterivNV -------------------------------------------------
+
+glGetMapAttribParameterivNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [EvalTargetNV](Graphics-GL-Groups.html#EvalTargetNV).
+  -> GLuint -- ^ @index@.
+  -> GLenum -- ^ @pname@ of type [MapAttribParameterNV](Graphics-GL-Groups.html#MapAttribParameterNV).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetMapAttribParameterivNV v1 v2 v3 v4 = liftIO $ dyn366 ptr_glGetMapAttribParameterivNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetMapAttribParameterivNV #-}
+ptr_glGetMapAttribParameterivNV :: FunPtr (GLenum -> GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetMapAttribParameterivNV = unsafePerformIO $ getCommand "glGetMapAttribParameterivNV"
+
+-- glGetMapControlPointsNV -----------------------------------------------------
+
+glGetMapControlPointsNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [EvalTargetNV](Graphics-GL-Groups.html#EvalTargetNV).
+  -> GLuint -- ^ @index@.
+  -> GLenum -- ^ @type@ of type [MapTypeNV](Graphics-GL-Groups.html#MapTypeNV).
+  -> GLsizei -- ^ @ustride@.
+  -> GLsizei -- ^ @vstride@.
+  -> GLboolean -- ^ @packed@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr a -- ^ @points@ pointing to @COMPSIZE(target)@ elements of type @a@.
+  -> m ()
+glGetMapControlPointsNV v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn367 ptr_glGetMapControlPointsNV v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glGetMapControlPointsNV #-}
+ptr_glGetMapControlPointsNV :: FunPtr (GLenum -> GLuint -> GLenum -> GLsizei -> GLsizei -> GLboolean -> Ptr a -> IO ())
+ptr_glGetMapControlPointsNV = unsafePerformIO $ getCommand "glGetMapControlPointsNV"
+
+-- glGetMapParameterfvNV -------------------------------------------------------
+
+glGetMapParameterfvNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [EvalTargetNV](Graphics-GL-Groups.html#EvalTargetNV).
+  -> GLenum -- ^ @pname@ of type [MapParameterNV](Graphics-GL-Groups.html#MapParameterNV).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(target,pname)@ elements of type @GLfloat@.
+  -> m ()
+glGetMapParameterfvNV v1 v2 v3 = liftIO $ dyn139 ptr_glGetMapParameterfvNV v1 v2 v3
+
+{-# NOINLINE ptr_glGetMapParameterfvNV #-}
+ptr_glGetMapParameterfvNV :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetMapParameterfvNV = unsafePerformIO $ getCommand "glGetMapParameterfvNV"
+
+-- glGetMapParameterivNV -------------------------------------------------------
+
+glGetMapParameterivNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [EvalTargetNV](Graphics-GL-Groups.html#EvalTargetNV).
+  -> GLenum -- ^ @pname@ of type [MapParameterNV](Graphics-GL-Groups.html#MapParameterNV).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(target,pname)@ elements of type @GLint@.
+  -> m ()
+glGetMapParameterivNV v1 v2 v3 = liftIO $ dyn140 ptr_glGetMapParameterivNV v1 v2 v3
+
+{-# NOINLINE ptr_glGetMapParameterivNV #-}
+ptr_glGetMapParameterivNV :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetMapParameterivNV = unsafePerformIO $ getCommand "glGetMapParameterivNV"
+
+-- glGetMapdv ------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetMap.xml OpenGL 2.x>.
+glGetMapdv
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [MapTarget](Graphics-GL-Groups.html#MapTarget).
+  -> GLenum -- ^ @query@ of type [GetMapQuery](Graphics-GL-Groups.html#GetMapQuery).
+  -> Ptr GLdouble -- ^ @v@ pointing to @COMPSIZE(target,query)@ elements of type @GLdouble@.
+  -> m ()
+glGetMapdv v1 v2 v3 = liftIO $ dyn368 ptr_glGetMapdv v1 v2 v3
+
+{-# NOINLINE ptr_glGetMapdv #-}
+ptr_glGetMapdv :: FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ())
+ptr_glGetMapdv = unsafePerformIO $ getCommand "glGetMapdv"
+
+-- glGetMapfv ------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetMap.xml OpenGL 2.x>.
+glGetMapfv
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [MapTarget](Graphics-GL-Groups.html#MapTarget).
+  -> GLenum -- ^ @query@ of type [GetMapQuery](Graphics-GL-Groups.html#GetMapQuery).
+  -> Ptr GLfloat -- ^ @v@ pointing to @COMPSIZE(target,query)@ elements of type @GLfloat@.
+  -> m ()
+glGetMapfv v1 v2 v3 = liftIO $ dyn139 ptr_glGetMapfv v1 v2 v3
+
+{-# NOINLINE ptr_glGetMapfv #-}
+ptr_glGetMapfv :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetMapfv = unsafePerformIO $ getCommand "glGetMapfv"
+
+-- glGetMapiv ------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetMap.xml OpenGL 2.x>.
+glGetMapiv
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [MapTarget](Graphics-GL-Groups.html#MapTarget).
+  -> GLenum -- ^ @query@ of type [GetMapQuery](Graphics-GL-Groups.html#GetMapQuery).
+  -> Ptr GLint -- ^ @v@ pointing to @COMPSIZE(target,query)@ elements of type @GLint@.
+  -> m ()
+glGetMapiv v1 v2 v3 = liftIO $ dyn140 ptr_glGetMapiv v1 v2 v3
+
+{-# NOINLINE ptr_glGetMapiv #-}
+ptr_glGetMapiv :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetMapiv = unsafePerformIO $ getCommand "glGetMapiv"
+
+-- glGetMapxvOES ---------------------------------------------------------------
+
+glGetMapxvOES
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [MapTarget](Graphics-GL-Groups.html#MapTarget).
+  -> GLenum -- ^ @query@ of type [GetMapQuery](Graphics-GL-Groups.html#GetMapQuery).
+  -> Ptr GLfixed -- ^ @v@ pointing to @COMPSIZE(query)@ elements of type @GLfixed@.
+  -> m ()
+glGetMapxvOES v1 v2 v3 = liftIO $ dyn170 ptr_glGetMapxvOES v1 v2 v3
+
+{-# NOINLINE ptr_glGetMapxvOES #-}
+ptr_glGetMapxvOES :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+ptr_glGetMapxvOES = unsafePerformIO $ getCommand "glGetMapxvOES"
+
+-- glGetMaterialfv -------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetMaterial.xml OpenGL 2.x>.
+glGetMaterialfv
+  :: MonadIO m
+  => GLenum -- ^ @face@ of type [MaterialFace](Graphics-GL-Groups.html#MaterialFace).
+  -> GLenum -- ^ @pname@ of type [MaterialParameter](Graphics-GL-Groups.html#MaterialParameter).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
+  -> m ()
+glGetMaterialfv v1 v2 v3 = liftIO $ dyn139 ptr_glGetMaterialfv v1 v2 v3
+
+{-# NOINLINE ptr_glGetMaterialfv #-}
+ptr_glGetMaterialfv :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetMaterialfv = unsafePerformIO $ getCommand "glGetMaterialfv"
+
+-- glGetMaterialiv -------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetMaterial.xml OpenGL 2.x>.
+glGetMaterialiv
+  :: MonadIO m
+  => GLenum -- ^ @face@ of type [MaterialFace](Graphics-GL-Groups.html#MaterialFace).
+  -> GLenum -- ^ @pname@ of type [MaterialParameter](Graphics-GL-Groups.html#MaterialParameter).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetMaterialiv v1 v2 v3 = liftIO $ dyn140 ptr_glGetMaterialiv v1 v2 v3
+
+{-# NOINLINE ptr_glGetMaterialiv #-}
+ptr_glGetMaterialiv :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetMaterialiv = unsafePerformIO $ getCommand "glGetMaterialiv"
+
diff --git a/src/Graphics/GL/Functions/F11.hs b/src/Graphics/GL/Functions/F11.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Functions/F11.hs
@@ -0,0 +1,1620 @@
+{-# OPTIONS_HADDOCK hide #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Functions.F11
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- Raw functions from the
+-- <http://www.opengl.org/registry/ OpenGL registry>.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Functions.F11 (
+  glGetMaterialxOES,
+  glGetMaterialxv,
+  glGetMaterialxvOES,
+  glGetMemoryObjectDetachedResourcesuivNV,
+  glGetMemoryObjectParameterivEXT,
+  glGetMinmax,
+  glGetMinmaxEXT,
+  glGetMinmaxParameterfv,
+  glGetMinmaxParameterfvEXT,
+  glGetMinmaxParameteriv,
+  glGetMinmaxParameterivEXT,
+  glGetMultiTexEnvfvEXT,
+  glGetMultiTexEnvivEXT,
+  glGetMultiTexGendvEXT,
+  glGetMultiTexGenfvEXT,
+  glGetMultiTexGenivEXT,
+  glGetMultiTexImageEXT,
+  glGetMultiTexLevelParameterfvEXT,
+  glGetMultiTexLevelParameterivEXT,
+  glGetMultiTexParameterIivEXT,
+  glGetMultiTexParameterIuivEXT,
+  glGetMultiTexParameterfvEXT,
+  glGetMultiTexParameterivEXT,
+  glGetMultisamplefv,
+  glGetMultisamplefvNV,
+  glGetNamedBufferParameteri64v,
+  glGetNamedBufferParameteriv,
+  glGetNamedBufferParameterivEXT,
+  glGetNamedBufferParameterui64vNV,
+  glGetNamedBufferPointerv,
+  glGetNamedBufferPointervEXT,
+  glGetNamedBufferSubData,
+  glGetNamedBufferSubDataEXT,
+  glGetNamedFramebufferAttachmentParameteriv,
+  glGetNamedFramebufferAttachmentParameterivEXT,
+  glGetNamedFramebufferParameterfvAMD,
+  glGetNamedFramebufferParameteriv,
+  glGetNamedFramebufferParameterivEXT,
+  glGetNamedProgramLocalParameterIivEXT,
+  glGetNamedProgramLocalParameterIuivEXT,
+  glGetNamedProgramLocalParameterdvEXT,
+  glGetNamedProgramLocalParameterfvEXT,
+  glGetNamedProgramStringEXT,
+  glGetNamedProgramivEXT,
+  glGetNamedRenderbufferParameteriv,
+  glGetNamedRenderbufferParameterivEXT,
+  glGetNamedStringARB,
+  glGetNamedStringivARB,
+  glGetNextPerfQueryIdINTEL,
+  glGetObjectBufferfvATI,
+  glGetObjectBufferivATI,
+  glGetObjectLabel,
+  glGetObjectLabelEXT,
+  glGetObjectLabelKHR,
+  glGetObjectParameterfvARB,
+  glGetObjectParameterivAPPLE,
+  glGetObjectParameterivARB,
+  glGetObjectPtrLabel,
+  glGetObjectPtrLabelKHR,
+  glGetOcclusionQueryivNV,
+  glGetOcclusionQueryuivNV,
+  glGetPathColorGenfvNV,
+  glGetPathColorGenivNV,
+  glGetPathCommandsNV,
+  glGetPathCoordsNV,
+  glGetPathDashArrayNV,
+  glGetPathLengthNV,
+  glGetPathMetricRangeNV,
+  glGetPathMetricsNV,
+  glGetPathParameterfvNV,
+  glGetPathParameterivNV,
+  glGetPathSpacingNV,
+  glGetPathTexGenfvNV,
+  glGetPathTexGenivNV,
+  glGetPerfCounterInfoINTEL,
+  glGetPerfMonitorCounterDataAMD,
+  glGetPerfMonitorCounterInfoAMD,
+  glGetPerfMonitorCounterStringAMD,
+  glGetPerfMonitorCountersAMD,
+  glGetPerfMonitorGroupStringAMD,
+  glGetPerfMonitorGroupsAMD,
+  glGetPerfQueryDataINTEL,
+  glGetPerfQueryIdByNameINTEL,
+  glGetPerfQueryInfoINTEL,
+  glGetPixelMapfv,
+  glGetPixelMapuiv,
+  glGetPixelMapusv,
+  glGetPixelMapxv,
+  glGetPixelTexGenParameterfvSGIS,
+  glGetPixelTexGenParameterivSGIS,
+  glGetPixelTransformParameterfvEXT,
+  glGetPixelTransformParameterivEXT,
+  glGetPointerIndexedvEXT,
+  glGetPointeri_vEXT,
+  glGetPointerv,
+  glGetPointervEXT,
+  glGetPointervKHR,
+  glGetPolygonStipple,
+  glGetProgramBinary,
+  glGetProgramBinaryOES
+) where
+
+import Control.Monad.IO.Class ( MonadIO(..) )
+import Foreign.Ptr
+import Graphics.GL.Foreign
+import Graphics.GL.Types
+import System.IO.Unsafe ( unsafePerformIO )
+
+-- glGetMaterialxOES -----------------------------------------------------------
+
+glGetMaterialxOES
+  :: MonadIO m
+  => GLenum -- ^ @face@ of type [MaterialFace](Graphics-GL-Groups.html#MaterialFace).
+  -> GLenum -- ^ @pname@ of type [MaterialParameter](Graphics-GL-Groups.html#MaterialParameter).
+  -> GLfixed -- ^ @param@.
+  -> m ()
+glGetMaterialxOES v1 v2 v3 = liftIO $ dyn169 ptr_glGetMaterialxOES v1 v2 v3
+
+{-# NOINLINE ptr_glGetMaterialxOES #-}
+ptr_glGetMaterialxOES :: FunPtr (GLenum -> GLenum -> GLfixed -> IO ())
+ptr_glGetMaterialxOES = unsafePerformIO $ getCommand "glGetMaterialxOES"
+
+-- glGetMaterialxv -------------------------------------------------------------
+
+glGetMaterialxv
+  :: MonadIO m
+  => GLenum -- ^ @face@ of type [MaterialFace](Graphics-GL-Groups.html#MaterialFace).
+  -> GLenum -- ^ @pname@ of type [MaterialParameter](Graphics-GL-Groups.html#MaterialParameter).
+  -> Ptr GLfixed -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfixed@.
+  -> m ()
+glGetMaterialxv v1 v2 v3 = liftIO $ dyn170 ptr_glGetMaterialxv v1 v2 v3
+
+{-# NOINLINE ptr_glGetMaterialxv #-}
+ptr_glGetMaterialxv :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+ptr_glGetMaterialxv = unsafePerformIO $ getCommand "glGetMaterialxv"
+
+-- glGetMaterialxvOES ----------------------------------------------------------
+
+glGetMaterialxvOES
+  :: MonadIO m
+  => GLenum -- ^ @face@ of type [MaterialFace](Graphics-GL-Groups.html#MaterialFace).
+  -> GLenum -- ^ @pname@ of type [MaterialParameter](Graphics-GL-Groups.html#MaterialParameter).
+  -> Ptr GLfixed -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfixed@.
+  -> m ()
+glGetMaterialxvOES v1 v2 v3 = liftIO $ dyn170 ptr_glGetMaterialxvOES v1 v2 v3
+
+{-# NOINLINE ptr_glGetMaterialxvOES #-}
+ptr_glGetMaterialxvOES :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+ptr_glGetMaterialxvOES = unsafePerformIO $ getCommand "glGetMaterialxvOES"
+
+-- glGetMemoryObjectDetachedResourcesuivNV -------------------------------------
+
+glGetMemoryObjectDetachedResourcesuivNV
+  :: MonadIO m
+  => GLuint -- ^ @memory@.
+  -> GLenum -- ^ @pname@.
+  -> GLint -- ^ @first@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLuint -- ^ @params@.
+  -> m ()
+glGetMemoryObjectDetachedResourcesuivNV v1 v2 v3 v4 v5 = liftIO $ dyn369 ptr_glGetMemoryObjectDetachedResourcesuivNV v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glGetMemoryObjectDetachedResourcesuivNV #-}
+ptr_glGetMemoryObjectDetachedResourcesuivNV :: FunPtr (GLuint -> GLenum -> GLint -> GLsizei -> Ptr GLuint -> IO ())
+ptr_glGetMemoryObjectDetachedResourcesuivNV = unsafePerformIO $ getCommand "glGetMemoryObjectDetachedResourcesuivNV"
+
+-- glGetMemoryObjectParameterivEXT ---------------------------------------------
+
+glGetMemoryObjectParameterivEXT
+  :: MonadIO m
+  => GLuint -- ^ @memoryObject@.
+  -> GLenum -- ^ @pname@ of type [MemoryObjectParameterName](Graphics-GL-Groups.html#MemoryObjectParameterName).
+  -> Ptr GLint -- ^ @params@.
+  -> m ()
+glGetMemoryObjectParameterivEXT v1 v2 v3 = liftIO $ dyn348 ptr_glGetMemoryObjectParameterivEXT v1 v2 v3
+
+{-# NOINLINE ptr_glGetMemoryObjectParameterivEXT #-}
+ptr_glGetMemoryObjectParameterivEXT :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetMemoryObjectParameterivEXT = unsafePerformIO $ getCommand "glGetMemoryObjectParameterivEXT"
+
+-- glGetMinmax -----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetMinmax.xml OpenGL 2.x>.
+glGetMinmax
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [MinmaxTargetEXT](Graphics-GL-Groups.html#MinmaxTargetEXT).
+  -> GLboolean -- ^ @reset@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @values@ pointing to @COMPSIZE(target,format,type)@ elements of type @a@.
+  -> m ()
+glGetMinmax v1 v2 v3 v4 v5 = liftIO $ dyn351 ptr_glGetMinmax v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glGetMinmax #-}
+ptr_glGetMinmax :: FunPtr (GLenum -> GLboolean -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glGetMinmax = unsafePerformIO $ getCommand "glGetMinmax"
+
+-- glGetMinmaxEXT --------------------------------------------------------------
+
+glGetMinmaxEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [MinmaxTargetEXT](Graphics-GL-Groups.html#MinmaxTargetEXT).
+  -> GLboolean -- ^ @reset@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @values@ pointing to @COMPSIZE(target,format,type)@ elements of type @a@.
+  -> m ()
+glGetMinmaxEXT v1 v2 v3 v4 v5 = liftIO $ dyn351 ptr_glGetMinmaxEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glGetMinmaxEXT #-}
+ptr_glGetMinmaxEXT :: FunPtr (GLenum -> GLboolean -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glGetMinmaxEXT = unsafePerformIO $ getCommand "glGetMinmaxEXT"
+
+-- glGetMinmaxParameterfv ------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetMinmaxParameter.xml OpenGL 2.x>.
+glGetMinmaxParameterfv
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [MinmaxTargetEXT](Graphics-GL-Groups.html#MinmaxTargetEXT).
+  -> GLenum -- ^ @pname@ of type [GetMinmaxParameterPNameEXT](Graphics-GL-Groups.html#GetMinmaxParameterPNameEXT).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
+  -> m ()
+glGetMinmaxParameterfv v1 v2 v3 = liftIO $ dyn139 ptr_glGetMinmaxParameterfv v1 v2 v3
+
+{-# NOINLINE ptr_glGetMinmaxParameterfv #-}
+ptr_glGetMinmaxParameterfv :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetMinmaxParameterfv = unsafePerformIO $ getCommand "glGetMinmaxParameterfv"
+
+-- glGetMinmaxParameterfvEXT ---------------------------------------------------
+
+glGetMinmaxParameterfvEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [MinmaxTargetEXT](Graphics-GL-Groups.html#MinmaxTargetEXT).
+  -> GLenum -- ^ @pname@ of type [GetMinmaxParameterPNameEXT](Graphics-GL-Groups.html#GetMinmaxParameterPNameEXT).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
+  -> m ()
+glGetMinmaxParameterfvEXT v1 v2 v3 = liftIO $ dyn139 ptr_glGetMinmaxParameterfvEXT v1 v2 v3
+
+{-# NOINLINE ptr_glGetMinmaxParameterfvEXT #-}
+ptr_glGetMinmaxParameterfvEXT :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetMinmaxParameterfvEXT = unsafePerformIO $ getCommand "glGetMinmaxParameterfvEXT"
+
+-- glGetMinmaxParameteriv ------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetMinmaxParameter.xml OpenGL 2.x>.
+glGetMinmaxParameteriv
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [MinmaxTargetEXT](Graphics-GL-Groups.html#MinmaxTargetEXT).
+  -> GLenum -- ^ @pname@ of type [GetMinmaxParameterPNameEXT](Graphics-GL-Groups.html#GetMinmaxParameterPNameEXT).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetMinmaxParameteriv v1 v2 v3 = liftIO $ dyn140 ptr_glGetMinmaxParameteriv v1 v2 v3
+
+{-# NOINLINE ptr_glGetMinmaxParameteriv #-}
+ptr_glGetMinmaxParameteriv :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetMinmaxParameteriv = unsafePerformIO $ getCommand "glGetMinmaxParameteriv"
+
+-- glGetMinmaxParameterivEXT ---------------------------------------------------
+
+glGetMinmaxParameterivEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [MinmaxTargetEXT](Graphics-GL-Groups.html#MinmaxTargetEXT).
+  -> GLenum -- ^ @pname@ of type [GetMinmaxParameterPNameEXT](Graphics-GL-Groups.html#GetMinmaxParameterPNameEXT).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetMinmaxParameterivEXT v1 v2 v3 = liftIO $ dyn140 ptr_glGetMinmaxParameterivEXT v1 v2 v3
+
+{-# NOINLINE ptr_glGetMinmaxParameterivEXT #-}
+ptr_glGetMinmaxParameterivEXT :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetMinmaxParameterivEXT = unsafePerformIO $ getCommand "glGetMinmaxParameterivEXT"
+
+-- glGetMultiTexEnvfvEXT -------------------------------------------------------
+
+glGetMultiTexEnvfvEXT
+  :: MonadIO m
+  => GLenum -- ^ @texunit@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @target@ of type [TextureEnvTarget](Graphics-GL-Groups.html#TextureEnvTarget).
+  -> GLenum -- ^ @pname@ of type [TextureEnvParameter](Graphics-GL-Groups.html#TextureEnvParameter).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
+  -> m ()
+glGetMultiTexEnvfvEXT v1 v2 v3 v4 = liftIO $ dyn334 ptr_glGetMultiTexEnvfvEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetMultiTexEnvfvEXT #-}
+ptr_glGetMultiTexEnvfvEXT :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetMultiTexEnvfvEXT = unsafePerformIO $ getCommand "glGetMultiTexEnvfvEXT"
+
+-- glGetMultiTexEnvivEXT -------------------------------------------------------
+
+glGetMultiTexEnvivEXT
+  :: MonadIO m
+  => GLenum -- ^ @texunit@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @target@ of type [TextureEnvTarget](Graphics-GL-Groups.html#TextureEnvTarget).
+  -> GLenum -- ^ @pname@ of type [TextureEnvParameter](Graphics-GL-Groups.html#TextureEnvParameter).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetMultiTexEnvivEXT v1 v2 v3 v4 = liftIO $ dyn335 ptr_glGetMultiTexEnvivEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetMultiTexEnvivEXT #-}
+ptr_glGetMultiTexEnvivEXT :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetMultiTexEnvivEXT = unsafePerformIO $ getCommand "glGetMultiTexEnvivEXT"
+
+-- glGetMultiTexGendvEXT -------------------------------------------------------
+
+glGetMultiTexGendvEXT
+  :: MonadIO m
+  => GLenum -- ^ @texunit@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @coord@ of type [TextureCoordName](Graphics-GL-Groups.html#TextureCoordName).
+  -> GLenum -- ^ @pname@ of type [TextureGenParameter](Graphics-GL-Groups.html#TextureGenParameter).
+  -> Ptr GLdouble -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLdouble@.
+  -> m ()
+glGetMultiTexGendvEXT v1 v2 v3 v4 = liftIO $ dyn370 ptr_glGetMultiTexGendvEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetMultiTexGendvEXT #-}
+ptr_glGetMultiTexGendvEXT :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLdouble -> IO ())
+ptr_glGetMultiTexGendvEXT = unsafePerformIO $ getCommand "glGetMultiTexGendvEXT"
+
+-- glGetMultiTexGenfvEXT -------------------------------------------------------
+
+glGetMultiTexGenfvEXT
+  :: MonadIO m
+  => GLenum -- ^ @texunit@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @coord@ of type [TextureCoordName](Graphics-GL-Groups.html#TextureCoordName).
+  -> GLenum -- ^ @pname@ of type [TextureGenParameter](Graphics-GL-Groups.html#TextureGenParameter).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
+  -> m ()
+glGetMultiTexGenfvEXT v1 v2 v3 v4 = liftIO $ dyn334 ptr_glGetMultiTexGenfvEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetMultiTexGenfvEXT #-}
+ptr_glGetMultiTexGenfvEXT :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetMultiTexGenfvEXT = unsafePerformIO $ getCommand "glGetMultiTexGenfvEXT"
+
+-- glGetMultiTexGenivEXT -------------------------------------------------------
+
+glGetMultiTexGenivEXT
+  :: MonadIO m
+  => GLenum -- ^ @texunit@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @coord@ of type [TextureCoordName](Graphics-GL-Groups.html#TextureCoordName).
+  -> GLenum -- ^ @pname@ of type [TextureGenParameter](Graphics-GL-Groups.html#TextureGenParameter).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetMultiTexGenivEXT v1 v2 v3 v4 = liftIO $ dyn335 ptr_glGetMultiTexGenivEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetMultiTexGenivEXT #-}
+ptr_glGetMultiTexGenivEXT :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetMultiTexGenivEXT = unsafePerformIO $ getCommand "glGetMultiTexGenivEXT"
+
+-- glGetMultiTexImageEXT -------------------------------------------------------
+
+glGetMultiTexImageEXT
+  :: MonadIO m
+  => GLenum -- ^ @texunit@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @pixels@ pointing to @COMPSIZE(target,level,format,type)@ elements of type @a@.
+  -> m ()
+glGetMultiTexImageEXT v1 v2 v3 v4 v5 v6 = liftIO $ dyn371 ptr_glGetMultiTexImageEXT v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glGetMultiTexImageEXT #-}
+ptr_glGetMultiTexImageEXT :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glGetMultiTexImageEXT = unsafePerformIO $ getCommand "glGetMultiTexImageEXT"
+
+-- glGetMultiTexLevelParameterfvEXT --------------------------------------------
+
+glGetMultiTexLevelParameterfvEXT
+  :: MonadIO m
+  => GLenum -- ^ @texunit@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLenum -- ^ @pname@ of type [GetTextureParameter](Graphics-GL-Groups.html#GetTextureParameter).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
+  -> m ()
+glGetMultiTexLevelParameterfvEXT v1 v2 v3 v4 v5 = liftIO $ dyn372 ptr_glGetMultiTexLevelParameterfvEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glGetMultiTexLevelParameterfvEXT #-}
+ptr_glGetMultiTexLevelParameterfvEXT :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetMultiTexLevelParameterfvEXT = unsafePerformIO $ getCommand "glGetMultiTexLevelParameterfvEXT"
+
+-- glGetMultiTexLevelParameterivEXT --------------------------------------------
+
+glGetMultiTexLevelParameterivEXT
+  :: MonadIO m
+  => GLenum -- ^ @texunit@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLenum -- ^ @pname@ of type [GetTextureParameter](Graphics-GL-Groups.html#GetTextureParameter).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetMultiTexLevelParameterivEXT v1 v2 v3 v4 v5 = liftIO $ dyn373 ptr_glGetMultiTexLevelParameterivEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glGetMultiTexLevelParameterivEXT #-}
+ptr_glGetMultiTexLevelParameterivEXT :: FunPtr (GLenum -> GLenum -> GLint -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetMultiTexLevelParameterivEXT = unsafePerformIO $ getCommand "glGetMultiTexLevelParameterivEXT"
+
+-- glGetMultiTexParameterIivEXT ------------------------------------------------
+
+glGetMultiTexParameterIivEXT
+  :: MonadIO m
+  => GLenum -- ^ @texunit@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLenum -- ^ @pname@ of type [GetTextureParameter](Graphics-GL-Groups.html#GetTextureParameter).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetMultiTexParameterIivEXT v1 v2 v3 v4 = liftIO $ dyn335 ptr_glGetMultiTexParameterIivEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetMultiTexParameterIivEXT #-}
+ptr_glGetMultiTexParameterIivEXT :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetMultiTexParameterIivEXT = unsafePerformIO $ getCommand "glGetMultiTexParameterIivEXT"
+
+-- glGetMultiTexParameterIuivEXT -----------------------------------------------
+
+glGetMultiTexParameterIuivEXT
+  :: MonadIO m
+  => GLenum -- ^ @texunit@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLenum -- ^ @pname@ of type [GetTextureParameter](Graphics-GL-Groups.html#GetTextureParameter).
+  -> Ptr GLuint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLuint@.
+  -> m ()
+glGetMultiTexParameterIuivEXT v1 v2 v3 v4 = liftIO $ dyn374 ptr_glGetMultiTexParameterIuivEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetMultiTexParameterIuivEXT #-}
+ptr_glGetMultiTexParameterIuivEXT :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLuint -> IO ())
+ptr_glGetMultiTexParameterIuivEXT = unsafePerformIO $ getCommand "glGetMultiTexParameterIuivEXT"
+
+-- glGetMultiTexParameterfvEXT -------------------------------------------------
+
+glGetMultiTexParameterfvEXT
+  :: MonadIO m
+  => GLenum -- ^ @texunit@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLenum -- ^ @pname@ of type [GetTextureParameter](Graphics-GL-Groups.html#GetTextureParameter).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
+  -> m ()
+glGetMultiTexParameterfvEXT v1 v2 v3 v4 = liftIO $ dyn334 ptr_glGetMultiTexParameterfvEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetMultiTexParameterfvEXT #-}
+ptr_glGetMultiTexParameterfvEXT :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetMultiTexParameterfvEXT = unsafePerformIO $ getCommand "glGetMultiTexParameterfvEXT"
+
+-- glGetMultiTexParameterivEXT -------------------------------------------------
+
+glGetMultiTexParameterivEXT
+  :: MonadIO m
+  => GLenum -- ^ @texunit@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLenum -- ^ @pname@ of type [GetTextureParameter](Graphics-GL-Groups.html#GetTextureParameter).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetMultiTexParameterivEXT v1 v2 v3 v4 = liftIO $ dyn335 ptr_glGetMultiTexParameterivEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetMultiTexParameterivEXT #-}
+ptr_glGetMultiTexParameterivEXT :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetMultiTexParameterivEXT = unsafePerformIO $ getCommand "glGetMultiTexParameterivEXT"
+
+-- glGetMultisamplefv ----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGetMultisample.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetMultisample.xhtml OpenGL 4.x>.
+glGetMultisamplefv
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [GetMultisamplePNameNV](Graphics-GL-Groups.html#GetMultisamplePNameNV).
+  -> GLuint -- ^ @index@.
+  -> Ptr GLfloat -- ^ @val@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
+  -> m ()
+glGetMultisamplefv v1 v2 v3 = liftIO $ dyn278 ptr_glGetMultisamplefv v1 v2 v3
+
+{-# NOINLINE ptr_glGetMultisamplefv #-}
+ptr_glGetMultisamplefv :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
+ptr_glGetMultisamplefv = unsafePerformIO $ getCommand "glGetMultisamplefv"
+
+-- glGetMultisamplefvNV --------------------------------------------------------
+
+-- | This command is an alias for 'glGetMultisamplefv'.
+glGetMultisamplefvNV
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [GetMultisamplePNameNV](Graphics-GL-Groups.html#GetMultisamplePNameNV).
+  -> GLuint -- ^ @index@.
+  -> Ptr GLfloat -- ^ @val@ pointing to @2@ elements of type @GLfloat@.
+  -> m ()
+glGetMultisamplefvNV v1 v2 v3 = liftIO $ dyn278 ptr_glGetMultisamplefvNV v1 v2 v3
+
+{-# NOINLINE ptr_glGetMultisamplefvNV #-}
+ptr_glGetMultisamplefvNV :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
+ptr_glGetMultisamplefvNV = unsafePerformIO $ getCommand "glGetMultisamplefvNV"
+
+-- glGetNamedBufferParameteri64v -----------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetBufferParameter.xhtml OpenGL 4.x>.
+glGetNamedBufferParameteri64v
+  :: MonadIO m
+  => GLuint -- ^ @buffer@.
+  -> GLenum -- ^ @pname@ of type [VertexBufferObjectParameter](Graphics-GL-Groups.html#VertexBufferObjectParameter).
+  -> Ptr GLint64 -- ^ @params@.
+  -> m ()
+glGetNamedBufferParameteri64v v1 v2 v3 = liftIO $ dyn375 ptr_glGetNamedBufferParameteri64v v1 v2 v3
+
+{-# NOINLINE ptr_glGetNamedBufferParameteri64v #-}
+ptr_glGetNamedBufferParameteri64v :: FunPtr (GLuint -> GLenum -> Ptr GLint64 -> IO ())
+ptr_glGetNamedBufferParameteri64v = unsafePerformIO $ getCommand "glGetNamedBufferParameteri64v"
+
+-- glGetNamedBufferParameteriv -------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetBufferParameter.xhtml OpenGL 4.x>.
+glGetNamedBufferParameteriv
+  :: MonadIO m
+  => GLuint -- ^ @buffer@.
+  -> GLenum -- ^ @pname@ of type [VertexBufferObjectParameter](Graphics-GL-Groups.html#VertexBufferObjectParameter).
+  -> Ptr GLint -- ^ @params@.
+  -> m ()
+glGetNamedBufferParameteriv v1 v2 v3 = liftIO $ dyn348 ptr_glGetNamedBufferParameteriv v1 v2 v3
+
+{-# NOINLINE ptr_glGetNamedBufferParameteriv #-}
+ptr_glGetNamedBufferParameteriv :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetNamedBufferParameteriv = unsafePerformIO $ getCommand "glGetNamedBufferParameteriv"
+
+-- glGetNamedBufferParameterivEXT ----------------------------------------------
+
+glGetNamedBufferParameterivEXT
+  :: MonadIO m
+  => GLuint -- ^ @buffer@.
+  -> GLenum -- ^ @pname@ of type [VertexBufferObjectParameter](Graphics-GL-Groups.html#VertexBufferObjectParameter).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetNamedBufferParameterivEXT v1 v2 v3 = liftIO $ dyn348 ptr_glGetNamedBufferParameterivEXT v1 v2 v3
+
+{-# NOINLINE ptr_glGetNamedBufferParameterivEXT #-}
+ptr_glGetNamedBufferParameterivEXT :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetNamedBufferParameterivEXT = unsafePerformIO $ getCommand "glGetNamedBufferParameterivEXT"
+
+-- glGetNamedBufferParameterui64vNV --------------------------------------------
+
+glGetNamedBufferParameterui64vNV
+  :: MonadIO m
+  => GLuint -- ^ @buffer@.
+  -> GLenum -- ^ @pname@ of type [VertexBufferObjectParameter](Graphics-GL-Groups.html#VertexBufferObjectParameter).
+  -> Ptr GLuint64EXT -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLuint64EXT@.
+  -> m ()
+glGetNamedBufferParameterui64vNV v1 v2 v3 = liftIO $ dyn376 ptr_glGetNamedBufferParameterui64vNV v1 v2 v3
+
+{-# NOINLINE ptr_glGetNamedBufferParameterui64vNV #-}
+ptr_glGetNamedBufferParameterui64vNV :: FunPtr (GLuint -> GLenum -> Ptr GLuint64EXT -> IO ())
+ptr_glGetNamedBufferParameterui64vNV = unsafePerformIO $ getCommand "glGetNamedBufferParameterui64vNV"
+
+-- glGetNamedBufferPointerv ----------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetBufferPointerv.xhtml OpenGL 4.x>.
+glGetNamedBufferPointerv
+  :: MonadIO m
+  => GLuint -- ^ @buffer@.
+  -> GLenum -- ^ @pname@ of type [VertexBufferObjectParameter](Graphics-GL-Groups.html#VertexBufferObjectParameter).
+  -> Ptr (Ptr a) -- ^ @params@.
+  -> m ()
+glGetNamedBufferPointerv v1 v2 v3 = liftIO $ dyn377 ptr_glGetNamedBufferPointerv v1 v2 v3
+
+{-# NOINLINE ptr_glGetNamedBufferPointerv #-}
+ptr_glGetNamedBufferPointerv :: FunPtr (GLuint -> GLenum -> Ptr (Ptr a) -> IO ())
+ptr_glGetNamedBufferPointerv = unsafePerformIO $ getCommand "glGetNamedBufferPointerv"
+
+-- glGetNamedBufferPointervEXT -------------------------------------------------
+
+glGetNamedBufferPointervEXT
+  :: MonadIO m
+  => GLuint -- ^ @buffer@.
+  -> GLenum -- ^ @pname@ of type [VertexBufferObjectParameter](Graphics-GL-Groups.html#VertexBufferObjectParameter).
+  -> Ptr (Ptr a) -- ^ @params@ pointing to @1@ element of type @Ptr a@.
+  -> m ()
+glGetNamedBufferPointervEXT v1 v2 v3 = liftIO $ dyn377 ptr_glGetNamedBufferPointervEXT v1 v2 v3
+
+{-# NOINLINE ptr_glGetNamedBufferPointervEXT #-}
+ptr_glGetNamedBufferPointervEXT :: FunPtr (GLuint -> GLenum -> Ptr (Ptr a) -> IO ())
+ptr_glGetNamedBufferPointervEXT = unsafePerformIO $ getCommand "glGetNamedBufferPointervEXT"
+
+-- glGetNamedBufferSubData -----------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetBufferSubData.xhtml OpenGL 4.x>.
+glGetNamedBufferSubData
+  :: MonadIO m
+  => GLuint -- ^ @buffer@.
+  -> GLintptr -- ^ @offset@.
+  -> GLsizeiptr -- ^ @size@ of type @BufferSize@.
+  -> Ptr a -- ^ @data@.
+  -> m ()
+glGetNamedBufferSubData v1 v2 v3 v4 = liftIO $ dyn378 ptr_glGetNamedBufferSubData v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetNamedBufferSubData #-}
+ptr_glGetNamedBufferSubData :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> Ptr a -> IO ())
+ptr_glGetNamedBufferSubData = unsafePerformIO $ getCommand "glGetNamedBufferSubData"
+
+-- glGetNamedBufferSubDataEXT --------------------------------------------------
+
+glGetNamedBufferSubDataEXT
+  :: MonadIO m
+  => GLuint -- ^ @buffer@.
+  -> GLintptr -- ^ @offset@.
+  -> GLsizeiptr -- ^ @size@.
+  -> Ptr a -- ^ @data@ pointing to @COMPSIZE(size)@ elements of type @a@.
+  -> m ()
+glGetNamedBufferSubDataEXT v1 v2 v3 v4 = liftIO $ dyn378 ptr_glGetNamedBufferSubDataEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetNamedBufferSubDataEXT #-}
+ptr_glGetNamedBufferSubDataEXT :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> Ptr a -> IO ())
+ptr_glGetNamedBufferSubDataEXT = unsafePerformIO $ getCommand "glGetNamedBufferSubDataEXT"
+
+-- glGetNamedFramebufferAttachmentParameteriv ----------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetFramebufferAttachmentParameter.xhtml OpenGL 4.x>.
+glGetNamedFramebufferAttachmentParameteriv
+  :: MonadIO m
+  => GLuint -- ^ @framebuffer@.
+  -> GLenum -- ^ @attachment@ of type [FramebufferAttachment](Graphics-GL-Groups.html#FramebufferAttachment).
+  -> GLenum -- ^ @pname@ of type [FramebufferAttachmentParameterName](Graphics-GL-Groups.html#FramebufferAttachmentParameterName).
+  -> Ptr GLint -- ^ @params@.
+  -> m ()
+glGetNamedFramebufferAttachmentParameteriv v1 v2 v3 v4 = liftIO $ dyn379 ptr_glGetNamedFramebufferAttachmentParameteriv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetNamedFramebufferAttachmentParameteriv #-}
+ptr_glGetNamedFramebufferAttachmentParameteriv :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetNamedFramebufferAttachmentParameteriv = unsafePerformIO $ getCommand "glGetNamedFramebufferAttachmentParameteriv"
+
+-- glGetNamedFramebufferAttachmentParameterivEXT -------------------------------
+
+glGetNamedFramebufferAttachmentParameterivEXT
+  :: MonadIO m
+  => GLuint -- ^ @framebuffer@ of type @Framebuffer@.
+  -> GLenum -- ^ @attachment@ of type [FramebufferAttachment](Graphics-GL-Groups.html#FramebufferAttachment).
+  -> GLenum -- ^ @pname@ of type [FramebufferAttachmentParameterName](Graphics-GL-Groups.html#FramebufferAttachmentParameterName).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetNamedFramebufferAttachmentParameterivEXT v1 v2 v3 v4 = liftIO $ dyn379 ptr_glGetNamedFramebufferAttachmentParameterivEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetNamedFramebufferAttachmentParameterivEXT #-}
+ptr_glGetNamedFramebufferAttachmentParameterivEXT :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetNamedFramebufferAttachmentParameterivEXT = unsafePerformIO $ getCommand "glGetNamedFramebufferAttachmentParameterivEXT"
+
+-- glGetNamedFramebufferParameterfvAMD -----------------------------------------
+
+glGetNamedFramebufferParameterfvAMD
+  :: MonadIO m
+  => GLuint -- ^ @framebuffer@.
+  -> GLenum -- ^ @pname@.
+  -> GLuint -- ^ @numsamples@.
+  -> GLuint -- ^ @pixelindex@.
+  -> GLsizei -- ^ @size@.
+  -> Ptr GLfloat -- ^ @values@.
+  -> m ()
+glGetNamedFramebufferParameterfvAMD v1 v2 v3 v4 v5 v6 = liftIO $ dyn380 ptr_glGetNamedFramebufferParameterfvAMD v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glGetNamedFramebufferParameterfvAMD #-}
+ptr_glGetNamedFramebufferParameterfvAMD :: FunPtr (GLuint -> GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+ptr_glGetNamedFramebufferParameterfvAMD = unsafePerformIO $ getCommand "glGetNamedFramebufferParameterfvAMD"
+
+-- glGetNamedFramebufferParameteriv --------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetFramebufferParameter.xhtml OpenGL 4.x>.
+glGetNamedFramebufferParameteriv
+  :: MonadIO m
+  => GLuint -- ^ @framebuffer@.
+  -> GLenum -- ^ @pname@ of type [GetFramebufferParameter](Graphics-GL-Groups.html#GetFramebufferParameter).
+  -> Ptr GLint -- ^ @param@.
+  -> m ()
+glGetNamedFramebufferParameteriv v1 v2 v3 = liftIO $ dyn348 ptr_glGetNamedFramebufferParameteriv v1 v2 v3
+
+{-# NOINLINE ptr_glGetNamedFramebufferParameteriv #-}
+ptr_glGetNamedFramebufferParameteriv :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetNamedFramebufferParameteriv = unsafePerformIO $ getCommand "glGetNamedFramebufferParameteriv"
+
+-- glGetNamedFramebufferParameterivEXT -----------------------------------------
+
+glGetNamedFramebufferParameterivEXT
+  :: MonadIO m
+  => GLuint -- ^ @framebuffer@ of type @Framebuffer@.
+  -> GLenum -- ^ @pname@ of type [GetFramebufferParameter](Graphics-GL-Groups.html#GetFramebufferParameter).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetNamedFramebufferParameterivEXT v1 v2 v3 = liftIO $ dyn348 ptr_glGetNamedFramebufferParameterivEXT v1 v2 v3
+
+{-# NOINLINE ptr_glGetNamedFramebufferParameterivEXT #-}
+ptr_glGetNamedFramebufferParameterivEXT :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetNamedFramebufferParameterivEXT = unsafePerformIO $ getCommand "glGetNamedFramebufferParameterivEXT"
+
+-- glGetNamedProgramLocalParameterIivEXT ---------------------------------------
+
+glGetNamedProgramLocalParameterIivEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
+  -> GLuint -- ^ @index@.
+  -> Ptr GLint -- ^ @params@ pointing to @4@ elements of type @GLint@.
+  -> m ()
+glGetNamedProgramLocalParameterIivEXT v1 v2 v3 v4 = liftIO $ dyn381 ptr_glGetNamedProgramLocalParameterIivEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetNamedProgramLocalParameterIivEXT #-}
+ptr_glGetNamedProgramLocalParameterIivEXT :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLint -> IO ())
+ptr_glGetNamedProgramLocalParameterIivEXT = unsafePerformIO $ getCommand "glGetNamedProgramLocalParameterIivEXT"
+
+-- glGetNamedProgramLocalParameterIuivEXT --------------------------------------
+
+glGetNamedProgramLocalParameterIuivEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
+  -> GLuint -- ^ @index@.
+  -> Ptr GLuint -- ^ @params@ pointing to @4@ elements of type @GLuint@.
+  -> m ()
+glGetNamedProgramLocalParameterIuivEXT v1 v2 v3 v4 = liftIO $ dyn382 ptr_glGetNamedProgramLocalParameterIuivEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetNamedProgramLocalParameterIuivEXT #-}
+ptr_glGetNamedProgramLocalParameterIuivEXT :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLuint -> IO ())
+ptr_glGetNamedProgramLocalParameterIuivEXT = unsafePerformIO $ getCommand "glGetNamedProgramLocalParameterIuivEXT"
+
+-- glGetNamedProgramLocalParameterdvEXT ----------------------------------------
+
+glGetNamedProgramLocalParameterdvEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
+  -> GLuint -- ^ @index@.
+  -> Ptr GLdouble -- ^ @params@ pointing to @4@ elements of type @GLdouble@.
+  -> m ()
+glGetNamedProgramLocalParameterdvEXT v1 v2 v3 v4 = liftIO $ dyn383 ptr_glGetNamedProgramLocalParameterdvEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetNamedProgramLocalParameterdvEXT #-}
+ptr_glGetNamedProgramLocalParameterdvEXT :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLdouble -> IO ())
+ptr_glGetNamedProgramLocalParameterdvEXT = unsafePerformIO $ getCommand "glGetNamedProgramLocalParameterdvEXT"
+
+-- glGetNamedProgramLocalParameterfvEXT ----------------------------------------
+
+glGetNamedProgramLocalParameterfvEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
+  -> GLuint -- ^ @index@.
+  -> Ptr GLfloat -- ^ @params@ pointing to @4@ elements of type @GLfloat@.
+  -> m ()
+glGetNamedProgramLocalParameterfvEXT v1 v2 v3 v4 = liftIO $ dyn384 ptr_glGetNamedProgramLocalParameterfvEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetNamedProgramLocalParameterfvEXT #-}
+ptr_glGetNamedProgramLocalParameterfvEXT :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLfloat -> IO ())
+ptr_glGetNamedProgramLocalParameterfvEXT = unsafePerformIO $ getCommand "glGetNamedProgramLocalParameterfvEXT"
+
+-- glGetNamedProgramStringEXT --------------------------------------------------
+
+glGetNamedProgramStringEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
+  -> GLenum -- ^ @pname@ of type [ProgramStringProperty](Graphics-GL-Groups.html#ProgramStringProperty).
+  -> Ptr a -- ^ @string@ pointing to @COMPSIZE(program,pname)@ elements of type @a@.
+  -> m ()
+glGetNamedProgramStringEXT v1 v2 v3 v4 = liftIO $ dyn385 ptr_glGetNamedProgramStringEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetNamedProgramStringEXT #-}
+ptr_glGetNamedProgramStringEXT :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glGetNamedProgramStringEXT = unsafePerformIO $ getCommand "glGetNamedProgramStringEXT"
+
+-- glGetNamedProgramivEXT ------------------------------------------------------
+
+glGetNamedProgramivEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
+  -> GLenum -- ^ @pname@ of type [ProgramPropertyARB](Graphics-GL-Groups.html#ProgramPropertyARB).
+  -> Ptr GLint -- ^ @params@ pointing to @1@ element of type @GLint@.
+  -> m ()
+glGetNamedProgramivEXT v1 v2 v3 v4 = liftIO $ dyn379 ptr_glGetNamedProgramivEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetNamedProgramivEXT #-}
+ptr_glGetNamedProgramivEXT :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetNamedProgramivEXT = unsafePerformIO $ getCommand "glGetNamedProgramivEXT"
+
+-- glGetNamedRenderbufferParameteriv -------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetRenderbufferParameter.xhtml OpenGL 4.x>.
+glGetNamedRenderbufferParameteriv
+  :: MonadIO m
+  => GLuint -- ^ @renderbuffer@.
+  -> GLenum -- ^ @pname@ of type [RenderbufferParameterName](Graphics-GL-Groups.html#RenderbufferParameterName).
+  -> Ptr GLint -- ^ @params@.
+  -> m ()
+glGetNamedRenderbufferParameteriv v1 v2 v3 = liftIO $ dyn348 ptr_glGetNamedRenderbufferParameteriv v1 v2 v3
+
+{-# NOINLINE ptr_glGetNamedRenderbufferParameteriv #-}
+ptr_glGetNamedRenderbufferParameteriv :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetNamedRenderbufferParameteriv = unsafePerformIO $ getCommand "glGetNamedRenderbufferParameteriv"
+
+-- glGetNamedRenderbufferParameterivEXT ----------------------------------------
+
+glGetNamedRenderbufferParameterivEXT
+  :: MonadIO m
+  => GLuint -- ^ @renderbuffer@ of type @Renderbuffer@.
+  -> GLenum -- ^ @pname@ of type [RenderbufferParameterName](Graphics-GL-Groups.html#RenderbufferParameterName).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetNamedRenderbufferParameterivEXT v1 v2 v3 = liftIO $ dyn348 ptr_glGetNamedRenderbufferParameterivEXT v1 v2 v3
+
+{-# NOINLINE ptr_glGetNamedRenderbufferParameterivEXT #-}
+ptr_glGetNamedRenderbufferParameterivEXT :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetNamedRenderbufferParameterivEXT = unsafePerformIO $ getCommand "glGetNamedRenderbufferParameterivEXT"
+
+-- glGetNamedStringARB ---------------------------------------------------------
+
+glGetNamedStringARB
+  :: MonadIO m
+  => GLint -- ^ @namelen@.
+  -> Ptr GLchar -- ^ @name@ pointing to @namelen@ elements of type @GLchar@.
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr GLint -- ^ @stringlen@ pointing to @1@ element of type @GLint@.
+  -> Ptr GLchar -- ^ @string@ pointing to @bufSize@ elements of type @GLchar@.
+  -> m ()
+glGetNamedStringARB v1 v2 v3 v4 v5 = liftIO $ dyn386 ptr_glGetNamedStringARB v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glGetNamedStringARB #-}
+ptr_glGetNamedStringARB :: FunPtr (GLint -> Ptr GLchar -> GLsizei -> Ptr GLint -> Ptr GLchar -> IO ())
+ptr_glGetNamedStringARB = unsafePerformIO $ getCommand "glGetNamedStringARB"
+
+-- glGetNamedStringivARB -------------------------------------------------------
+
+glGetNamedStringivARB
+  :: MonadIO m
+  => GLint -- ^ @namelen@.
+  -> Ptr GLchar -- ^ @name@ pointing to @namelen@ elements of type @GLchar@.
+  -> GLenum -- ^ @pname@.
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetNamedStringivARB v1 v2 v3 v4 = liftIO $ dyn387 ptr_glGetNamedStringivARB v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetNamedStringivARB #-}
+ptr_glGetNamedStringivARB :: FunPtr (GLint -> Ptr GLchar -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetNamedStringivARB = unsafePerformIO $ getCommand "glGetNamedStringivARB"
+
+-- glGetNextPerfQueryIdINTEL ---------------------------------------------------
+
+glGetNextPerfQueryIdINTEL
+  :: MonadIO m
+  => GLuint -- ^ @queryId@.
+  -> Ptr GLuint -- ^ @nextQueryId@.
+  -> m ()
+glGetNextPerfQueryIdINTEL v1 v2 = liftIO $ dyn201 ptr_glGetNextPerfQueryIdINTEL v1 v2
+
+{-# NOINLINE ptr_glGetNextPerfQueryIdINTEL #-}
+ptr_glGetNextPerfQueryIdINTEL :: FunPtr (GLuint -> Ptr GLuint -> IO ())
+ptr_glGetNextPerfQueryIdINTEL = unsafePerformIO $ getCommand "glGetNextPerfQueryIdINTEL"
+
+-- glGetObjectBufferfvATI ------------------------------------------------------
+
+glGetObjectBufferfvATI
+  :: MonadIO m
+  => GLuint -- ^ @buffer@.
+  -> GLenum -- ^ @pname@ of type [ArrayObjectPNameATI](Graphics-GL-Groups.html#ArrayObjectPNameATI).
+  -> Ptr GLfloat -- ^ @params@ pointing to @1@ element of type @GLfloat@.
+  -> m ()
+glGetObjectBufferfvATI v1 v2 v3 = liftIO $ dyn364 ptr_glGetObjectBufferfvATI v1 v2 v3
+
+{-# NOINLINE ptr_glGetObjectBufferfvATI #-}
+ptr_glGetObjectBufferfvATI :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetObjectBufferfvATI = unsafePerformIO $ getCommand "glGetObjectBufferfvATI"
+
+-- glGetObjectBufferivATI ------------------------------------------------------
+
+glGetObjectBufferivATI
+  :: MonadIO m
+  => GLuint -- ^ @buffer@.
+  -> GLenum -- ^ @pname@ of type [ArrayObjectPNameATI](Graphics-GL-Groups.html#ArrayObjectPNameATI).
+  -> Ptr GLint -- ^ @params@ pointing to @1@ element of type @GLint@.
+  -> m ()
+glGetObjectBufferivATI v1 v2 v3 = liftIO $ dyn348 ptr_glGetObjectBufferivATI v1 v2 v3
+
+{-# NOINLINE ptr_glGetObjectBufferivATI #-}
+ptr_glGetObjectBufferivATI :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetObjectBufferivATI = unsafePerformIO $ getCommand "glGetObjectBufferivATI"
+
+-- glGetObjectLabel ------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetObjectLabel.xhtml OpenGL 4.x>.
+glGetObjectLabel
+  :: MonadIO m
+  => GLenum -- ^ @identifier@ of type [ObjectIdentifier](Graphics-GL-Groups.html#ObjectIdentifier).
+  -> GLuint -- ^ @name@.
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
+  -> Ptr GLchar -- ^ @label@ pointing to @bufSize@ elements of type @GLchar@.
+  -> m ()
+glGetObjectLabel v1 v2 v3 v4 v5 = liftIO $ dyn388 ptr_glGetObjectLabel v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glGetObjectLabel #-}
+ptr_glGetObjectLabel :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+ptr_glGetObjectLabel = unsafePerformIO $ getCommand "glGetObjectLabel"
+
+-- glGetObjectLabelEXT ---------------------------------------------------------
+
+glGetObjectLabelEXT
+  :: MonadIO m
+  => GLenum -- ^ @type@.
+  -> GLuint -- ^ @object@.
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
+  -> Ptr GLchar -- ^ @label@ pointing to @bufSize@ elements of type @GLchar@.
+  -> m ()
+glGetObjectLabelEXT v1 v2 v3 v4 v5 = liftIO $ dyn388 ptr_glGetObjectLabelEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glGetObjectLabelEXT #-}
+ptr_glGetObjectLabelEXT :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+ptr_glGetObjectLabelEXT = unsafePerformIO $ getCommand "glGetObjectLabelEXT"
+
+-- glGetObjectLabelKHR ---------------------------------------------------------
+
+-- | This command is an alias for 'glGetObjectLabel'.
+glGetObjectLabelKHR
+  :: MonadIO m
+  => GLenum -- ^ @identifier@.
+  -> GLuint -- ^ @name@.
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr GLsizei -- ^ @length@.
+  -> Ptr GLchar -- ^ @label@ pointing to @bufSize@ elements of type @GLchar@.
+  -> m ()
+glGetObjectLabelKHR v1 v2 v3 v4 v5 = liftIO $ dyn388 ptr_glGetObjectLabelKHR v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glGetObjectLabelKHR #-}
+ptr_glGetObjectLabelKHR :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+ptr_glGetObjectLabelKHR = unsafePerformIO $ getCommand "glGetObjectLabelKHR"
+
+-- glGetObjectParameterfvARB ---------------------------------------------------
+
+glGetObjectParameterfvARB
+  :: MonadIO m
+  => GLhandleARB -- ^ @obj@ of type @handleARB@.
+  -> GLenum -- ^ @pname@.
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
+  -> m ()
+glGetObjectParameterfvARB v1 v2 v3 = liftIO $ dyn389 ptr_glGetObjectParameterfvARB v1 v2 v3
+
+{-# NOINLINE ptr_glGetObjectParameterfvARB #-}
+ptr_glGetObjectParameterfvARB :: FunPtr (GLhandleARB -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetObjectParameterfvARB = unsafePerformIO $ getCommand "glGetObjectParameterfvARB"
+
+-- glGetObjectParameterivAPPLE -------------------------------------------------
+
+glGetObjectParameterivAPPLE
+  :: MonadIO m
+  => GLenum -- ^ @objectType@.
+  -> GLuint -- ^ @name@.
+  -> GLenum -- ^ @pname@.
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetObjectParameterivAPPLE v1 v2 v3 v4 = liftIO $ dyn366 ptr_glGetObjectParameterivAPPLE v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetObjectParameterivAPPLE #-}
+ptr_glGetObjectParameterivAPPLE :: FunPtr (GLenum -> GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetObjectParameterivAPPLE = unsafePerformIO $ getCommand "glGetObjectParameterivAPPLE"
+
+-- glGetObjectParameterivARB ---------------------------------------------------
+
+glGetObjectParameterivARB
+  :: MonadIO m
+  => GLhandleARB -- ^ @obj@ of type @handleARB@.
+  -> GLenum -- ^ @pname@.
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetObjectParameterivARB v1 v2 v3 = liftIO $ dyn390 ptr_glGetObjectParameterivARB v1 v2 v3
+
+{-# NOINLINE ptr_glGetObjectParameterivARB #-}
+ptr_glGetObjectParameterivARB :: FunPtr (GLhandleARB -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetObjectParameterivARB = unsafePerformIO $ getCommand "glGetObjectParameterivARB"
+
+-- glGetObjectPtrLabel ---------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetObjectPtrLabel.xhtml OpenGL 4.x>.
+glGetObjectPtrLabel
+  :: MonadIO m
+  => Ptr a -- ^ @ptr@.
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
+  -> Ptr GLchar -- ^ @label@ pointing to @bufSize@ elements of type @GLchar@.
+  -> m ()
+glGetObjectPtrLabel v1 v2 v3 v4 = liftIO $ dyn391 ptr_glGetObjectPtrLabel v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetObjectPtrLabel #-}
+ptr_glGetObjectPtrLabel :: FunPtr (Ptr a -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+ptr_glGetObjectPtrLabel = unsafePerformIO $ getCommand "glGetObjectPtrLabel"
+
+-- glGetObjectPtrLabelKHR ------------------------------------------------------
+
+-- | This command is an alias for 'glGetObjectPtrLabel'.
+glGetObjectPtrLabelKHR
+  :: MonadIO m
+  => Ptr a -- ^ @ptr@.
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
+  -> Ptr GLchar -- ^ @label@ pointing to @bufSize@ elements of type @GLchar@.
+  -> m ()
+glGetObjectPtrLabelKHR v1 v2 v3 v4 = liftIO $ dyn391 ptr_glGetObjectPtrLabelKHR v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetObjectPtrLabelKHR #-}
+ptr_glGetObjectPtrLabelKHR :: FunPtr (Ptr a -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+ptr_glGetObjectPtrLabelKHR = unsafePerformIO $ getCommand "glGetObjectPtrLabelKHR"
+
+-- glGetOcclusionQueryivNV -----------------------------------------------------
+
+glGetOcclusionQueryivNV
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> GLenum -- ^ @pname@ of type [OcclusionQueryParameterNameNV](Graphics-GL-Groups.html#OcclusionQueryParameterNameNV).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetOcclusionQueryivNV v1 v2 v3 = liftIO $ dyn348 ptr_glGetOcclusionQueryivNV v1 v2 v3
+
+{-# NOINLINE ptr_glGetOcclusionQueryivNV #-}
+ptr_glGetOcclusionQueryivNV :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetOcclusionQueryivNV = unsafePerformIO $ getCommand "glGetOcclusionQueryivNV"
+
+-- glGetOcclusionQueryuivNV ----------------------------------------------------
+
+glGetOcclusionQueryuivNV
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> GLenum -- ^ @pname@ of type [OcclusionQueryParameterNameNV](Graphics-GL-Groups.html#OcclusionQueryParameterNameNV).
+  -> Ptr GLuint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLuint@.
+  -> m ()
+glGetOcclusionQueryuivNV v1 v2 v3 = liftIO $ dyn392 ptr_glGetOcclusionQueryuivNV v1 v2 v3
+
+{-# NOINLINE ptr_glGetOcclusionQueryuivNV #-}
+ptr_glGetOcclusionQueryuivNV :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
+ptr_glGetOcclusionQueryuivNV = unsafePerformIO $ getCommand "glGetOcclusionQueryuivNV"
+
+-- glGetPathColorGenfvNV -------------------------------------------------------
+
+glGetPathColorGenfvNV
+  :: MonadIO m
+  => GLenum -- ^ @color@ of type [PathColor](Graphics-GL-Groups.html#PathColor).
+  -> GLenum -- ^ @pname@ of type [PathGenMode](Graphics-GL-Groups.html#PathGenMode).
+  -> Ptr GLfloat -- ^ @value@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
+  -> m ()
+glGetPathColorGenfvNV v1 v2 v3 = liftIO $ dyn139 ptr_glGetPathColorGenfvNV v1 v2 v3
+
+{-# NOINLINE ptr_glGetPathColorGenfvNV #-}
+ptr_glGetPathColorGenfvNV :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetPathColorGenfvNV = unsafePerformIO $ getCommand "glGetPathColorGenfvNV"
+
+-- glGetPathColorGenivNV -------------------------------------------------------
+
+glGetPathColorGenivNV
+  :: MonadIO m
+  => GLenum -- ^ @color@ of type [PathColor](Graphics-GL-Groups.html#PathColor).
+  -> GLenum -- ^ @pname@ of type [PathGenMode](Graphics-GL-Groups.html#PathGenMode).
+  -> Ptr GLint -- ^ @value@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetPathColorGenivNV v1 v2 v3 = liftIO $ dyn140 ptr_glGetPathColorGenivNV v1 v2 v3
+
+{-# NOINLINE ptr_glGetPathColorGenivNV #-}
+ptr_glGetPathColorGenivNV :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetPathColorGenivNV = unsafePerformIO $ getCommand "glGetPathColorGenivNV"
+
+-- glGetPathCommandsNV ---------------------------------------------------------
+
+glGetPathCommandsNV
+  :: MonadIO m
+  => GLuint -- ^ @path@ of type @Path@.
+  -> Ptr GLubyte -- ^ @commands@ pointing to @COMPSIZE(path)@ elements of type @PathCommand@.
+  -> m ()
+glGetPathCommandsNV v1 v2 = liftIO $ dyn393 ptr_glGetPathCommandsNV v1 v2
+
+{-# NOINLINE ptr_glGetPathCommandsNV #-}
+ptr_glGetPathCommandsNV :: FunPtr (GLuint -> Ptr GLubyte -> IO ())
+ptr_glGetPathCommandsNV = unsafePerformIO $ getCommand "glGetPathCommandsNV"
+
+-- glGetPathCoordsNV -----------------------------------------------------------
+
+glGetPathCoordsNV
+  :: MonadIO m
+  => GLuint -- ^ @path@ of type @Path@.
+  -> Ptr GLfloat -- ^ @coords@ pointing to @COMPSIZE(path)@ elements of type @GLfloat@.
+  -> m ()
+glGetPathCoordsNV v1 v2 = liftIO $ dyn394 ptr_glGetPathCoordsNV v1 v2
+
+{-# NOINLINE ptr_glGetPathCoordsNV #-}
+ptr_glGetPathCoordsNV :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+ptr_glGetPathCoordsNV = unsafePerformIO $ getCommand "glGetPathCoordsNV"
+
+-- glGetPathDashArrayNV --------------------------------------------------------
+
+glGetPathDashArrayNV
+  :: MonadIO m
+  => GLuint -- ^ @path@ of type @Path@.
+  -> Ptr GLfloat -- ^ @dashArray@ pointing to @COMPSIZE(path)@ elements of type @GLfloat@.
+  -> m ()
+glGetPathDashArrayNV v1 v2 = liftIO $ dyn394 ptr_glGetPathDashArrayNV v1 v2
+
+{-# NOINLINE ptr_glGetPathDashArrayNV #-}
+ptr_glGetPathDashArrayNV :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+ptr_glGetPathDashArrayNV = unsafePerformIO $ getCommand "glGetPathDashArrayNV"
+
+-- glGetPathLengthNV -----------------------------------------------------------
+
+glGetPathLengthNV
+  :: MonadIO m
+  => GLuint -- ^ @path@ of type @Path@.
+  -> GLsizei -- ^ @startSegment@.
+  -> GLsizei -- ^ @numSegments@.
+  -> m GLfloat
+glGetPathLengthNV v1 v2 v3 = liftIO $ dyn395 ptr_glGetPathLengthNV v1 v2 v3
+
+{-# NOINLINE ptr_glGetPathLengthNV #-}
+ptr_glGetPathLengthNV :: FunPtr (GLuint -> GLsizei -> GLsizei -> IO GLfloat)
+ptr_glGetPathLengthNV = unsafePerformIO $ getCommand "glGetPathLengthNV"
+
+-- glGetPathMetricRangeNV ------------------------------------------------------
+
+glGetPathMetricRangeNV
+  :: MonadIO m
+  => GLbitfield -- ^ @metricQueryMask@ of type [PathMetricMask](Graphics-GL-Groups.html#PathMetricMask).
+  -> GLuint -- ^ @firstPathName@ of type @Path@.
+  -> GLsizei -- ^ @numPaths@.
+  -> GLsizei -- ^ @stride@.
+  -> Ptr GLfloat -- ^ @metrics@ pointing to @COMPSIZE(metricQueryMask,numPaths,stride)@ elements of type @GLfloat@.
+  -> m ()
+glGetPathMetricRangeNV v1 v2 v3 v4 v5 = liftIO $ dyn396 ptr_glGetPathMetricRangeNV v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glGetPathMetricRangeNV #-}
+ptr_glGetPathMetricRangeNV :: FunPtr (GLbitfield -> GLuint -> GLsizei -> GLsizei -> Ptr GLfloat -> IO ())
+ptr_glGetPathMetricRangeNV = unsafePerformIO $ getCommand "glGetPathMetricRangeNV"
+
+-- glGetPathMetricsNV ----------------------------------------------------------
+
+glGetPathMetricsNV
+  :: MonadIO m
+  => GLbitfield -- ^ @metricQueryMask@ of type [PathMetricMask](Graphics-GL-Groups.html#PathMetricMask).
+  -> GLsizei -- ^ @numPaths@.
+  -> GLenum -- ^ @pathNameType@ of type [PathElementType](Graphics-GL-Groups.html#PathElementType).
+  -> Ptr a -- ^ @paths@ pointing to @COMPSIZE(numPaths,pathNameType,paths)@ elements of type @PathElement@.
+  -> GLuint -- ^ @pathBase@ of type @Path@.
+  -> GLsizei -- ^ @stride@.
+  -> Ptr GLfloat -- ^ @metrics@ pointing to @COMPSIZE(metricQueryMask,numPaths,stride)@ elements of type @GLfloat@.
+  -> m ()
+glGetPathMetricsNV v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn397 ptr_glGetPathMetricsNV v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glGetPathMetricsNV #-}
+ptr_glGetPathMetricsNV :: FunPtr (GLbitfield -> GLsizei -> GLenum -> Ptr a -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+ptr_glGetPathMetricsNV = unsafePerformIO $ getCommand "glGetPathMetricsNV"
+
+-- glGetPathParameterfvNV ------------------------------------------------------
+
+glGetPathParameterfvNV
+  :: MonadIO m
+  => GLuint -- ^ @path@ of type @Path@.
+  -> GLenum -- ^ @pname@ of type [PathParameter](Graphics-GL-Groups.html#PathParameter).
+  -> Ptr GLfloat -- ^ @value@ pointing to @4@ elements of type @GLfloat@.
+  -> m ()
+glGetPathParameterfvNV v1 v2 v3 = liftIO $ dyn364 ptr_glGetPathParameterfvNV v1 v2 v3
+
+{-# NOINLINE ptr_glGetPathParameterfvNV #-}
+ptr_glGetPathParameterfvNV :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetPathParameterfvNV = unsafePerformIO $ getCommand "glGetPathParameterfvNV"
+
+-- glGetPathParameterivNV ------------------------------------------------------
+
+glGetPathParameterivNV
+  :: MonadIO m
+  => GLuint -- ^ @path@ of type @Path@.
+  -> GLenum -- ^ @pname@ of type [PathParameter](Graphics-GL-Groups.html#PathParameter).
+  -> Ptr GLint -- ^ @value@ pointing to @4@ elements of type @GLint@.
+  -> m ()
+glGetPathParameterivNV v1 v2 v3 = liftIO $ dyn348 ptr_glGetPathParameterivNV v1 v2 v3
+
+{-# NOINLINE ptr_glGetPathParameterivNV #-}
+ptr_glGetPathParameterivNV :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetPathParameterivNV = unsafePerformIO $ getCommand "glGetPathParameterivNV"
+
+-- glGetPathSpacingNV ----------------------------------------------------------
+
+glGetPathSpacingNV
+  :: MonadIO m
+  => GLenum -- ^ @pathListMode@ of type [PathListMode](Graphics-GL-Groups.html#PathListMode).
+  -> GLsizei -- ^ @numPaths@.
+  -> GLenum -- ^ @pathNameType@ of type [PathElementType](Graphics-GL-Groups.html#PathElementType).
+  -> Ptr a -- ^ @paths@ pointing to @COMPSIZE(numPaths,pathNameType,paths)@ elements of type @PathElement@.
+  -> GLuint -- ^ @pathBase@ of type @Path@.
+  -> GLfloat -- ^ @advanceScale@.
+  -> GLfloat -- ^ @kerningScale@.
+  -> GLenum -- ^ @transformType@ of type [PathTransformType](Graphics-GL-Groups.html#PathTransformType).
+  -> Ptr GLfloat -- ^ @returnedSpacing@ pointing to @COMPSIZE(pathListMode,numPaths)@ elements of type @GLfloat@.
+  -> m ()
+glGetPathSpacingNV v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO $ dyn398 ptr_glGetPathSpacingNV v1 v2 v3 v4 v5 v6 v7 v8 v9
+
+{-# NOINLINE ptr_glGetPathSpacingNV #-}
+ptr_glGetPathSpacingNV :: FunPtr (GLenum -> GLsizei -> GLenum -> Ptr a -> GLuint -> GLfloat -> GLfloat -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetPathSpacingNV = unsafePerformIO $ getCommand "glGetPathSpacingNV"
+
+-- glGetPathTexGenfvNV ---------------------------------------------------------
+
+glGetPathTexGenfvNV
+  :: MonadIO m
+  => GLenum -- ^ @texCoordSet@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @pname@ of type [PathGenMode](Graphics-GL-Groups.html#PathGenMode).
+  -> Ptr GLfloat -- ^ @value@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
+  -> m ()
+glGetPathTexGenfvNV v1 v2 v3 = liftIO $ dyn139 ptr_glGetPathTexGenfvNV v1 v2 v3
+
+{-# NOINLINE ptr_glGetPathTexGenfvNV #-}
+ptr_glGetPathTexGenfvNV :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetPathTexGenfvNV = unsafePerformIO $ getCommand "glGetPathTexGenfvNV"
+
+-- glGetPathTexGenivNV ---------------------------------------------------------
+
+glGetPathTexGenivNV
+  :: MonadIO m
+  => GLenum -- ^ @texCoordSet@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @pname@ of type [PathGenMode](Graphics-GL-Groups.html#PathGenMode).
+  -> Ptr GLint -- ^ @value@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetPathTexGenivNV v1 v2 v3 = liftIO $ dyn140 ptr_glGetPathTexGenivNV v1 v2 v3
+
+{-# NOINLINE ptr_glGetPathTexGenivNV #-}
+ptr_glGetPathTexGenivNV :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetPathTexGenivNV = unsafePerformIO $ getCommand "glGetPathTexGenivNV"
+
+-- glGetPerfCounterInfoINTEL ---------------------------------------------------
+
+glGetPerfCounterInfoINTEL
+  :: MonadIO m
+  => GLuint -- ^ @queryId@.
+  -> GLuint -- ^ @counterId@.
+  -> GLuint -- ^ @counterNameLength@.
+  -> Ptr GLchar -- ^ @counterName@.
+  -> GLuint -- ^ @counterDescLength@.
+  -> Ptr GLchar -- ^ @counterDesc@.
+  -> Ptr GLuint -- ^ @counterOffset@.
+  -> Ptr GLuint -- ^ @counterDataSize@.
+  -> Ptr GLuint -- ^ @counterTypeEnum@.
+  -> Ptr GLuint -- ^ @counterDataTypeEnum@.
+  -> Ptr GLuint64 -- ^ @rawCounterMaxValue@.
+  -> m ()
+glGetPerfCounterInfoINTEL v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 = liftIO $ dyn399 ptr_glGetPerfCounterInfoINTEL v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11
+
+{-# NOINLINE ptr_glGetPerfCounterInfoINTEL #-}
+ptr_glGetPerfCounterInfoINTEL :: FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLchar -> GLuint -> Ptr GLchar -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint64 -> IO ())
+ptr_glGetPerfCounterInfoINTEL = unsafePerformIO $ getCommand "glGetPerfCounterInfoINTEL"
+
+-- glGetPerfMonitorCounterDataAMD ----------------------------------------------
+
+glGetPerfMonitorCounterDataAMD
+  :: MonadIO m
+  => GLuint -- ^ @monitor@.
+  -> GLenum -- ^ @pname@.
+  -> GLsizei -- ^ @dataSize@.
+  -> Ptr GLuint -- ^ @data@ pointing to @dataSize@ elements of type @GLuint@.
+  -> Ptr GLint -- ^ @bytesWritten@ pointing to @1@ element of type @GLint@.
+  -> m ()
+glGetPerfMonitorCounterDataAMD v1 v2 v3 v4 v5 = liftIO $ dyn400 ptr_glGetPerfMonitorCounterDataAMD v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glGetPerfMonitorCounterDataAMD #-}
+ptr_glGetPerfMonitorCounterDataAMD :: FunPtr (GLuint -> GLenum -> GLsizei -> Ptr GLuint -> Ptr GLint -> IO ())
+ptr_glGetPerfMonitorCounterDataAMD = unsafePerformIO $ getCommand "glGetPerfMonitorCounterDataAMD"
+
+-- glGetPerfMonitorCounterInfoAMD ----------------------------------------------
+
+glGetPerfMonitorCounterInfoAMD
+  :: MonadIO m
+  => GLuint -- ^ @group@.
+  -> GLuint -- ^ @counter@.
+  -> GLenum -- ^ @pname@.
+  -> Ptr a -- ^ @data@ pointing to @COMPSIZE(pname)@ elements of type @a@.
+  -> m ()
+glGetPerfMonitorCounterInfoAMD v1 v2 v3 v4 = liftIO $ dyn401 ptr_glGetPerfMonitorCounterInfoAMD v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetPerfMonitorCounterInfoAMD #-}
+ptr_glGetPerfMonitorCounterInfoAMD :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr a -> IO ())
+ptr_glGetPerfMonitorCounterInfoAMD = unsafePerformIO $ getCommand "glGetPerfMonitorCounterInfoAMD"
+
+-- glGetPerfMonitorCounterStringAMD --------------------------------------------
+
+glGetPerfMonitorCounterStringAMD
+  :: MonadIO m
+  => GLuint -- ^ @group@.
+  -> GLuint -- ^ @counter@.
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
+  -> Ptr GLchar -- ^ @counterString@ pointing to @bufSize@ elements of type @GLchar@.
+  -> m ()
+glGetPerfMonitorCounterStringAMD v1 v2 v3 v4 v5 = liftIO $ dyn319 ptr_glGetPerfMonitorCounterStringAMD v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glGetPerfMonitorCounterStringAMD #-}
+ptr_glGetPerfMonitorCounterStringAMD :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+ptr_glGetPerfMonitorCounterStringAMD = unsafePerformIO $ getCommand "glGetPerfMonitorCounterStringAMD"
+
+-- glGetPerfMonitorCountersAMD -------------------------------------------------
+
+glGetPerfMonitorCountersAMD
+  :: MonadIO m
+  => GLuint -- ^ @group@.
+  -> Ptr GLint -- ^ @numCounters@ pointing to @1@ element of type @GLint@.
+  -> Ptr GLint -- ^ @maxActiveCounters@ pointing to @1@ element of type @GLint@.
+  -> GLsizei -- ^ @counterSize@.
+  -> Ptr GLuint -- ^ @counters@ pointing to @counterSize@ elements of type @GLuint@.
+  -> m ()
+glGetPerfMonitorCountersAMD v1 v2 v3 v4 v5 = liftIO $ dyn402 ptr_glGetPerfMonitorCountersAMD v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glGetPerfMonitorCountersAMD #-}
+ptr_glGetPerfMonitorCountersAMD :: FunPtr (GLuint -> Ptr GLint -> Ptr GLint -> GLsizei -> Ptr GLuint -> IO ())
+ptr_glGetPerfMonitorCountersAMD = unsafePerformIO $ getCommand "glGetPerfMonitorCountersAMD"
+
+-- glGetPerfMonitorGroupStringAMD ----------------------------------------------
+
+glGetPerfMonitorGroupStringAMD
+  :: MonadIO m
+  => GLuint -- ^ @group@.
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
+  -> Ptr GLchar -- ^ @groupString@ pointing to @bufSize@ elements of type @GLchar@.
+  -> m ()
+glGetPerfMonitorGroupStringAMD v1 v2 v3 v4 = liftIO $ dyn345 ptr_glGetPerfMonitorGroupStringAMD v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetPerfMonitorGroupStringAMD #-}
+ptr_glGetPerfMonitorGroupStringAMD :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+ptr_glGetPerfMonitorGroupStringAMD = unsafePerformIO $ getCommand "glGetPerfMonitorGroupStringAMD"
+
+-- glGetPerfMonitorGroupsAMD ---------------------------------------------------
+
+glGetPerfMonitorGroupsAMD
+  :: MonadIO m
+  => Ptr GLint -- ^ @numGroups@ pointing to @1@ element of type @GLint@.
+  -> GLsizei -- ^ @groupsSize@.
+  -> Ptr GLuint -- ^ @groups@ pointing to @groupsSize@ elements of type @GLuint@.
+  -> m ()
+glGetPerfMonitorGroupsAMD v1 v2 v3 = liftIO $ dyn346 ptr_glGetPerfMonitorGroupsAMD v1 v2 v3
+
+{-# NOINLINE ptr_glGetPerfMonitorGroupsAMD #-}
+ptr_glGetPerfMonitorGroupsAMD :: FunPtr (Ptr GLint -> GLsizei -> Ptr GLuint -> IO ())
+ptr_glGetPerfMonitorGroupsAMD = unsafePerformIO $ getCommand "glGetPerfMonitorGroupsAMD"
+
+-- glGetPerfQueryDataINTEL -----------------------------------------------------
+
+glGetPerfQueryDataINTEL
+  :: MonadIO m
+  => GLuint -- ^ @queryHandle@.
+  -> GLuint -- ^ @flags@.
+  -> GLsizei -- ^ @dataSize@.
+  -> Ptr a -- ^ @data@.
+  -> Ptr GLuint -- ^ @bytesWritten@.
+  -> m ()
+glGetPerfQueryDataINTEL v1 v2 v3 v4 v5 = liftIO $ dyn403 ptr_glGetPerfQueryDataINTEL v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glGetPerfQueryDataINTEL #-}
+ptr_glGetPerfQueryDataINTEL :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr a -> Ptr GLuint -> IO ())
+ptr_glGetPerfQueryDataINTEL = unsafePerformIO $ getCommand "glGetPerfQueryDataINTEL"
+
+-- glGetPerfQueryIdByNameINTEL -------------------------------------------------
+
+glGetPerfQueryIdByNameINTEL
+  :: MonadIO m
+  => Ptr GLchar -- ^ @queryName@.
+  -> Ptr GLuint -- ^ @queryId@.
+  -> m ()
+glGetPerfQueryIdByNameINTEL v1 v2 = liftIO $ dyn404 ptr_glGetPerfQueryIdByNameINTEL v1 v2
+
+{-# NOINLINE ptr_glGetPerfQueryIdByNameINTEL #-}
+ptr_glGetPerfQueryIdByNameINTEL :: FunPtr (Ptr GLchar -> Ptr GLuint -> IO ())
+ptr_glGetPerfQueryIdByNameINTEL = unsafePerformIO $ getCommand "glGetPerfQueryIdByNameINTEL"
+
+-- glGetPerfQueryInfoINTEL -----------------------------------------------------
+
+glGetPerfQueryInfoINTEL
+  :: MonadIO m
+  => GLuint -- ^ @queryId@.
+  -> GLuint -- ^ @queryNameLength@.
+  -> Ptr GLchar -- ^ @queryName@.
+  -> Ptr GLuint -- ^ @dataSize@.
+  -> Ptr GLuint -- ^ @noCounters@.
+  -> Ptr GLuint -- ^ @noInstances@.
+  -> Ptr GLuint -- ^ @capsMask@.
+  -> m ()
+glGetPerfQueryInfoINTEL v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn405 ptr_glGetPerfQueryInfoINTEL v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glGetPerfQueryInfoINTEL #-}
+ptr_glGetPerfQueryInfoINTEL :: FunPtr (GLuint -> GLuint -> Ptr GLchar -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> Ptr GLuint -> IO ())
+ptr_glGetPerfQueryInfoINTEL = unsafePerformIO $ getCommand "glGetPerfQueryInfoINTEL"
+
+-- glGetPixelMapfv -------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetPixelMap.xml OpenGL 2.x>.
+glGetPixelMapfv
+  :: MonadIO m
+  => GLenum -- ^ @map@ of type [PixelMap](Graphics-GL-Groups.html#PixelMap).
+  -> Ptr GLfloat -- ^ @values@ pointing to @COMPSIZE(map)@ elements of type @GLfloat@.
+  -> m ()
+glGetPixelMapfv v1 v2 = liftIO $ dyn101 ptr_glGetPixelMapfv v1 v2
+
+{-# NOINLINE ptr_glGetPixelMapfv #-}
+ptr_glGetPixelMapfv :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetPixelMapfv = unsafePerformIO $ getCommand "glGetPixelMapfv"
+
+-- glGetPixelMapuiv ------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetPixelMap.xml OpenGL 2.x>.
+glGetPixelMapuiv
+  :: MonadIO m
+  => GLenum -- ^ @map@ of type [PixelMap](Graphics-GL-Groups.html#PixelMap).
+  -> Ptr GLuint -- ^ @values@ pointing to @COMPSIZE(map)@ elements of type @GLuint@.
+  -> m ()
+glGetPixelMapuiv v1 v2 = liftIO $ dyn132 ptr_glGetPixelMapuiv v1 v2
+
+{-# NOINLINE ptr_glGetPixelMapuiv #-}
+ptr_glGetPixelMapuiv :: FunPtr (GLenum -> Ptr GLuint -> IO ())
+ptr_glGetPixelMapuiv = unsafePerformIO $ getCommand "glGetPixelMapuiv"
+
+-- glGetPixelMapusv ------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetPixelMap.xml OpenGL 2.x>.
+glGetPixelMapusv
+  :: MonadIO m
+  => GLenum -- ^ @map@ of type [PixelMap](Graphics-GL-Groups.html#PixelMap).
+  -> Ptr GLushort -- ^ @values@ pointing to @COMPSIZE(map)@ elements of type @GLushort@.
+  -> m ()
+glGetPixelMapusv v1 v2 = liftIO $ dyn406 ptr_glGetPixelMapusv v1 v2
+
+{-# NOINLINE ptr_glGetPixelMapusv #-}
+ptr_glGetPixelMapusv :: FunPtr (GLenum -> Ptr GLushort -> IO ())
+ptr_glGetPixelMapusv = unsafePerformIO $ getCommand "glGetPixelMapusv"
+
+-- glGetPixelMapxv -------------------------------------------------------------
+
+glGetPixelMapxv
+  :: MonadIO m
+  => GLenum -- ^ @map@ of type [PixelMap](Graphics-GL-Groups.html#PixelMap).
+  -> GLint -- ^ @size@.
+  -> Ptr GLfixed -- ^ @values@ pointing to @size@ elements of type @GLfixed@.
+  -> m ()
+glGetPixelMapxv v1 v2 v3 = liftIO $ dyn407 ptr_glGetPixelMapxv v1 v2 v3
+
+{-# NOINLINE ptr_glGetPixelMapxv #-}
+ptr_glGetPixelMapxv :: FunPtr (GLenum -> GLint -> Ptr GLfixed -> IO ())
+ptr_glGetPixelMapxv = unsafePerformIO $ getCommand "glGetPixelMapxv"
+
+-- glGetPixelTexGenParameterfvSGIS ---------------------------------------------
+
+glGetPixelTexGenParameterfvSGIS
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [PixelTexGenParameterNameSGIS](Graphics-GL-Groups.html#PixelTexGenParameterNameSGIS).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @CheckedFloat32@.
+  -> m ()
+glGetPixelTexGenParameterfvSGIS v1 v2 = liftIO $ dyn101 ptr_glGetPixelTexGenParameterfvSGIS v1 v2
+
+{-# NOINLINE ptr_glGetPixelTexGenParameterfvSGIS #-}
+ptr_glGetPixelTexGenParameterfvSGIS :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetPixelTexGenParameterfvSGIS = unsafePerformIO $ getCommand "glGetPixelTexGenParameterfvSGIS"
+
+-- glGetPixelTexGenParameterivSGIS ---------------------------------------------
+
+glGetPixelTexGenParameterivSGIS
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [PixelTexGenParameterNameSGIS](Graphics-GL-Groups.html#PixelTexGenParameterNameSGIS).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @CheckedInt32@.
+  -> m ()
+glGetPixelTexGenParameterivSGIS v1 v2 = liftIO $ dyn143 ptr_glGetPixelTexGenParameterivSGIS v1 v2
+
+{-# NOINLINE ptr_glGetPixelTexGenParameterivSGIS #-}
+ptr_glGetPixelTexGenParameterivSGIS :: FunPtr (GLenum -> Ptr GLint -> IO ())
+ptr_glGetPixelTexGenParameterivSGIS = unsafePerformIO $ getCommand "glGetPixelTexGenParameterivSGIS"
+
+-- glGetPixelTransformParameterfvEXT -------------------------------------------
+
+glGetPixelTransformParameterfvEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@.
+  -> GLenum -- ^ @pname@.
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
+  -> m ()
+glGetPixelTransformParameterfvEXT v1 v2 v3 = liftIO $ dyn139 ptr_glGetPixelTransformParameterfvEXT v1 v2 v3
+
+{-# NOINLINE ptr_glGetPixelTransformParameterfvEXT #-}
+ptr_glGetPixelTransformParameterfvEXT :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetPixelTransformParameterfvEXT = unsafePerformIO $ getCommand "glGetPixelTransformParameterfvEXT"
+
+-- glGetPixelTransformParameterivEXT -------------------------------------------
+
+glGetPixelTransformParameterivEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@.
+  -> GLenum -- ^ @pname@.
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetPixelTransformParameterivEXT v1 v2 v3 = liftIO $ dyn140 ptr_glGetPixelTransformParameterivEXT v1 v2 v3
+
+{-# NOINLINE ptr_glGetPixelTransformParameterivEXT #-}
+ptr_glGetPixelTransformParameterivEXT :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetPixelTransformParameterivEXT = unsafePerformIO $ getCommand "glGetPixelTransformParameterivEXT"
+
+-- glGetPointerIndexedvEXT -----------------------------------------------------
+
+glGetPointerIndexedvEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@.
+  -> GLuint -- ^ @index@.
+  -> Ptr (Ptr a) -- ^ @data@ pointing to @1@ element of type @Ptr a@.
+  -> m ()
+glGetPointerIndexedvEXT v1 v2 v3 = liftIO $ dyn408 ptr_glGetPointerIndexedvEXT v1 v2 v3
+
+{-# NOINLINE ptr_glGetPointerIndexedvEXT #-}
+ptr_glGetPointerIndexedvEXT :: FunPtr (GLenum -> GLuint -> Ptr (Ptr a) -> IO ())
+ptr_glGetPointerIndexedvEXT = unsafePerformIO $ getCommand "glGetPointerIndexedvEXT"
+
+-- glGetPointeri_vEXT ----------------------------------------------------------
+
+glGetPointeri_vEXT
+  :: MonadIO m
+  => GLenum -- ^ @pname@.
+  -> GLuint -- ^ @index@.
+  -> Ptr (Ptr a) -- ^ @params@ pointing to @1@ element of type @Ptr a@.
+  -> m ()
+glGetPointeri_vEXT v1 v2 v3 = liftIO $ dyn408 ptr_glGetPointeri_vEXT v1 v2 v3
+
+{-# NOINLINE ptr_glGetPointeri_vEXT #-}
+ptr_glGetPointeri_vEXT :: FunPtr (GLenum -> GLuint -> Ptr (Ptr a) -> IO ())
+ptr_glGetPointeri_vEXT = unsafePerformIO $ getCommand "glGetPointeri_vEXT"
+
+-- glGetPointerv ---------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetPointerv.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetPointerv.xhtml OpenGL 4.x>.
+glGetPointerv
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [GetPointervPName](Graphics-GL-Groups.html#GetPointervPName).
+  -> Ptr (Ptr a) -- ^ @params@ pointing to @1@ element of type @Ptr a@.
+  -> m ()
+glGetPointerv v1 v2 = liftIO $ dyn279 ptr_glGetPointerv v1 v2
+
+{-# NOINLINE ptr_glGetPointerv #-}
+ptr_glGetPointerv :: FunPtr (GLenum -> Ptr (Ptr a) -> IO ())
+ptr_glGetPointerv = unsafePerformIO $ getCommand "glGetPointerv"
+
+-- glGetPointervEXT ------------------------------------------------------------
+
+-- | This command is an alias for 'glGetPointerv'.
+glGetPointervEXT
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [GetPointervPName](Graphics-GL-Groups.html#GetPointervPName).
+  -> Ptr (Ptr a) -- ^ @params@ pointing to @1@ element of type @Ptr a@.
+  -> m ()
+glGetPointervEXT v1 v2 = liftIO $ dyn279 ptr_glGetPointervEXT v1 v2
+
+{-# NOINLINE ptr_glGetPointervEXT #-}
+ptr_glGetPointervEXT :: FunPtr (GLenum -> Ptr (Ptr a) -> IO ())
+ptr_glGetPointervEXT = unsafePerformIO $ getCommand "glGetPointervEXT"
+
+-- glGetPointervKHR ------------------------------------------------------------
+
+-- | This command is an alias for 'glGetPointerv'.
+glGetPointervKHR
+  :: MonadIO m
+  => GLenum -- ^ @pname@.
+  -> Ptr (Ptr a) -- ^ @params@.
+  -> m ()
+glGetPointervKHR v1 v2 = liftIO $ dyn279 ptr_glGetPointervKHR v1 v2
+
+{-# NOINLINE ptr_glGetPointervKHR #-}
+ptr_glGetPointervKHR :: FunPtr (GLenum -> Ptr (Ptr a) -> IO ())
+ptr_glGetPointervKHR = unsafePerformIO $ getCommand "glGetPointervKHR"
+
+-- glGetPolygonStipple ---------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetPolygonStipple.xml OpenGL 2.x>.
+glGetPolygonStipple
+  :: MonadIO m
+  => Ptr GLubyte -- ^ @mask@ pointing to @COMPSIZE()@ elements of type @GLubyte@.
+  -> m ()
+glGetPolygonStipple v1 = liftIO $ dyn108 ptr_glGetPolygonStipple v1
+
+{-# NOINLINE ptr_glGetPolygonStipple #-}
+ptr_glGetPolygonStipple :: FunPtr (Ptr GLubyte -> IO ())
+ptr_glGetPolygonStipple = unsafePerformIO $ getCommand "glGetPolygonStipple"
+
+-- glGetProgramBinary ----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetProgramBinary.xhtml OpenGL 4.x>.
+glGetProgramBinary
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
+  -> Ptr GLenum -- ^ @binaryFormat@ pointing to @1@ element of type @GLenum@.
+  -> Ptr a -- ^ @binary@ pointing to @bufSize@ elements of type @a@.
+  -> m ()
+glGetProgramBinary v1 v2 v3 v4 v5 = liftIO $ dyn409 ptr_glGetProgramBinary v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glGetProgramBinary #-}
+ptr_glGetProgramBinary :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr a -> IO ())
+ptr_glGetProgramBinary = unsafePerformIO $ getCommand "glGetProgramBinary"
+
+-- glGetProgramBinaryOES -------------------------------------------------------
+
+-- | This command is an alias for 'glGetProgramBinary'.
+glGetProgramBinaryOES
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
+  -> Ptr GLenum -- ^ @binaryFormat@ pointing to @1@ element of type @GLenum@.
+  -> Ptr a -- ^ @binary@ pointing to @bufSize@ elements of type @a@.
+  -> m ()
+glGetProgramBinaryOES v1 v2 v3 v4 v5 = liftIO $ dyn409 ptr_glGetProgramBinaryOES v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glGetProgramBinaryOES #-}
+ptr_glGetProgramBinaryOES :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr a -> IO ())
+ptr_glGetProgramBinaryOES = unsafePerformIO $ getCommand "glGetProgramBinaryOES"
+
diff --git a/src/Graphics/GL/Functions/F12.hs b/src/Graphics/GL/Functions/F12.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Functions/F12.hs
@@ -0,0 +1,1621 @@
+{-# OPTIONS_HADDOCK hide #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Functions.F12
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- Raw functions from the
+-- <http://www.opengl.org/registry/ OpenGL registry>.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Functions.F12 (
+  glGetProgramEnvParameterIivNV,
+  glGetProgramEnvParameterIuivNV,
+  glGetProgramEnvParameterdvARB,
+  glGetProgramEnvParameterfvARB,
+  glGetProgramInfoLog,
+  glGetProgramInterfaceiv,
+  glGetProgramLocalParameterIivNV,
+  glGetProgramLocalParameterIuivNV,
+  glGetProgramLocalParameterdvARB,
+  glGetProgramLocalParameterfvARB,
+  glGetProgramNamedParameterdvNV,
+  glGetProgramNamedParameterfvNV,
+  glGetProgramParameterdvNV,
+  glGetProgramParameterfvNV,
+  glGetProgramPipelineInfoLog,
+  glGetProgramPipelineInfoLogEXT,
+  glGetProgramPipelineiv,
+  glGetProgramPipelineivEXT,
+  glGetProgramResourceIndex,
+  glGetProgramResourceLocation,
+  glGetProgramResourceLocationIndex,
+  glGetProgramResourceLocationIndexEXT,
+  glGetProgramResourceName,
+  glGetProgramResourcefvNV,
+  glGetProgramResourceiv,
+  glGetProgramStageiv,
+  glGetProgramStringARB,
+  glGetProgramStringNV,
+  glGetProgramSubroutineParameteruivNV,
+  glGetProgramiv,
+  glGetProgramivARB,
+  glGetProgramivNV,
+  glGetQueryBufferObjecti64v,
+  glGetQueryBufferObjectiv,
+  glGetQueryBufferObjectui64v,
+  glGetQueryBufferObjectuiv,
+  glGetQueryIndexediv,
+  glGetQueryObjecti64v,
+  glGetQueryObjecti64vEXT,
+  glGetQueryObjectiv,
+  glGetQueryObjectivARB,
+  glGetQueryObjectivEXT,
+  glGetQueryObjectui64v,
+  glGetQueryObjectui64vEXT,
+  glGetQueryObjectuiv,
+  glGetQueryObjectuivARB,
+  glGetQueryObjectuivEXT,
+  glGetQueryiv,
+  glGetQueryivARB,
+  glGetQueryivEXT,
+  glGetRenderbufferParameteriv,
+  glGetRenderbufferParameterivEXT,
+  glGetRenderbufferParameterivOES,
+  glGetSamplerParameterIiv,
+  glGetSamplerParameterIivEXT,
+  glGetSamplerParameterIivOES,
+  glGetSamplerParameterIuiv,
+  glGetSamplerParameterIuivEXT,
+  glGetSamplerParameterIuivOES,
+  glGetSamplerParameterfv,
+  glGetSamplerParameteriv,
+  glGetSemaphoreParameterui64vEXT,
+  glGetSeparableFilter,
+  glGetSeparableFilterEXT,
+  glGetShaderInfoLog,
+  glGetShaderPrecisionFormat,
+  glGetShaderSource,
+  glGetShaderSourceARB,
+  glGetShaderiv,
+  glGetShadingRateImagePaletteNV,
+  glGetShadingRateSampleLocationivNV,
+  glGetSharpenTexFuncSGIS,
+  glGetStageIndexNV,
+  glGetString,
+  glGetStringi,
+  glGetSubroutineIndex,
+  glGetSubroutineUniformLocation,
+  glGetSynciv,
+  glGetSyncivAPPLE,
+  glGetTexBumpParameterfvATI,
+  glGetTexBumpParameterivATI,
+  glGetTexEnvfv,
+  glGetTexEnviv,
+  glGetTexEnvxv,
+  glGetTexEnvxvOES,
+  glGetTexFilterFuncSGIS,
+  glGetTexGendv,
+  glGetTexGenfv,
+  glGetTexGenfvOES,
+  glGetTexGeniv,
+  glGetTexGenivOES,
+  glGetTexGenxvOES,
+  glGetTexImage,
+  glGetTexLevelParameterfv,
+  glGetTexLevelParameteriv,
+  glGetTexLevelParameterxvOES,
+  glGetTexParameterIiv,
+  glGetTexParameterIivEXT,
+  glGetTexParameterIivOES,
+  glGetTexParameterIuiv
+) where
+
+import Control.Monad.IO.Class ( MonadIO(..) )
+import Foreign.Ptr
+import Graphics.GL.Foreign
+import Graphics.GL.Types
+import System.IO.Unsafe ( unsafePerformIO )
+
+-- glGetProgramEnvParameterIivNV -----------------------------------------------
+
+glGetProgramEnvParameterIivNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
+  -> GLuint -- ^ @index@.
+  -> Ptr GLint -- ^ @params@ pointing to @4@ elements of type @GLint@.
+  -> m ()
+glGetProgramEnvParameterIivNV v1 v2 v3 = liftIO $ dyn357 ptr_glGetProgramEnvParameterIivNV v1 v2 v3
+
+{-# NOINLINE ptr_glGetProgramEnvParameterIivNV #-}
+ptr_glGetProgramEnvParameterIivNV :: FunPtr (GLenum -> GLuint -> Ptr GLint -> IO ())
+ptr_glGetProgramEnvParameterIivNV = unsafePerformIO $ getCommand "glGetProgramEnvParameterIivNV"
+
+-- glGetProgramEnvParameterIuivNV ----------------------------------------------
+
+glGetProgramEnvParameterIuivNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
+  -> GLuint -- ^ @index@.
+  -> Ptr GLuint -- ^ @params@ pointing to @4@ elements of type @GLuint@.
+  -> m ()
+glGetProgramEnvParameterIuivNV v1 v2 v3 = liftIO $ dyn221 ptr_glGetProgramEnvParameterIuivNV v1 v2 v3
+
+{-# NOINLINE ptr_glGetProgramEnvParameterIuivNV #-}
+ptr_glGetProgramEnvParameterIuivNV :: FunPtr (GLenum -> GLuint -> Ptr GLuint -> IO ())
+ptr_glGetProgramEnvParameterIuivNV = unsafePerformIO $ getCommand "glGetProgramEnvParameterIuivNV"
+
+-- glGetProgramEnvParameterdvARB -----------------------------------------------
+
+glGetProgramEnvParameterdvARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
+  -> GLuint -- ^ @index@.
+  -> Ptr GLdouble -- ^ @params@ pointing to @4@ elements of type @GLdouble@.
+  -> m ()
+glGetProgramEnvParameterdvARB v1 v2 v3 = liftIO $ dyn344 ptr_glGetProgramEnvParameterdvARB v1 v2 v3
+
+{-# NOINLINE ptr_glGetProgramEnvParameterdvARB #-}
+ptr_glGetProgramEnvParameterdvARB :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())
+ptr_glGetProgramEnvParameterdvARB = unsafePerformIO $ getCommand "glGetProgramEnvParameterdvARB"
+
+-- glGetProgramEnvParameterfvARB -----------------------------------------------
+
+glGetProgramEnvParameterfvARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
+  -> GLuint -- ^ @index@.
+  -> Ptr GLfloat -- ^ @params@ pointing to @4@ elements of type @GLfloat@.
+  -> m ()
+glGetProgramEnvParameterfvARB v1 v2 v3 = liftIO $ dyn278 ptr_glGetProgramEnvParameterfvARB v1 v2 v3
+
+{-# NOINLINE ptr_glGetProgramEnvParameterfvARB #-}
+ptr_glGetProgramEnvParameterfvARB :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
+ptr_glGetProgramEnvParameterfvARB = unsafePerformIO $ getCommand "glGetProgramEnvParameterfvARB"
+
+-- glGetProgramInfoLog ---------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetProgramInfoLog.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGetProgramInfoLog.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetProgramInfoLog.xhtml OpenGL 4.x>.
+glGetProgramInfoLog
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
+  -> Ptr GLchar -- ^ @infoLog@ pointing to @bufSize@ elements of type @GLchar@.
+  -> m ()
+glGetProgramInfoLog v1 v2 v3 v4 = liftIO $ dyn345 ptr_glGetProgramInfoLog v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetProgramInfoLog #-}
+ptr_glGetProgramInfoLog :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+ptr_glGetProgramInfoLog = unsafePerformIO $ getCommand "glGetProgramInfoLog"
+
+-- glGetProgramInterfaceiv -----------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetProgramInterface.xhtml OpenGL 4.x>.
+glGetProgramInterfaceiv
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLenum -- ^ @programInterface@ of type [ProgramInterface](Graphics-GL-Groups.html#ProgramInterface).
+  -> GLenum -- ^ @pname@ of type [ProgramInterfacePName](Graphics-GL-Groups.html#ProgramInterfacePName).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetProgramInterfaceiv v1 v2 v3 v4 = liftIO $ dyn379 ptr_glGetProgramInterfaceiv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetProgramInterfaceiv #-}
+ptr_glGetProgramInterfaceiv :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetProgramInterfaceiv = unsafePerformIO $ getCommand "glGetProgramInterfaceiv"
+
+-- glGetProgramLocalParameterIivNV ---------------------------------------------
+
+glGetProgramLocalParameterIivNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
+  -> GLuint -- ^ @index@.
+  -> Ptr GLint -- ^ @params@ pointing to @4@ elements of type @GLint@.
+  -> m ()
+glGetProgramLocalParameterIivNV v1 v2 v3 = liftIO $ dyn357 ptr_glGetProgramLocalParameterIivNV v1 v2 v3
+
+{-# NOINLINE ptr_glGetProgramLocalParameterIivNV #-}
+ptr_glGetProgramLocalParameterIivNV :: FunPtr (GLenum -> GLuint -> Ptr GLint -> IO ())
+ptr_glGetProgramLocalParameterIivNV = unsafePerformIO $ getCommand "glGetProgramLocalParameterIivNV"
+
+-- glGetProgramLocalParameterIuivNV --------------------------------------------
+
+glGetProgramLocalParameterIuivNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
+  -> GLuint -- ^ @index@.
+  -> Ptr GLuint -- ^ @params@ pointing to @4@ elements of type @GLuint@.
+  -> m ()
+glGetProgramLocalParameterIuivNV v1 v2 v3 = liftIO $ dyn221 ptr_glGetProgramLocalParameterIuivNV v1 v2 v3
+
+{-# NOINLINE ptr_glGetProgramLocalParameterIuivNV #-}
+ptr_glGetProgramLocalParameterIuivNV :: FunPtr (GLenum -> GLuint -> Ptr GLuint -> IO ())
+ptr_glGetProgramLocalParameterIuivNV = unsafePerformIO $ getCommand "glGetProgramLocalParameterIuivNV"
+
+-- glGetProgramLocalParameterdvARB ---------------------------------------------
+
+glGetProgramLocalParameterdvARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
+  -> GLuint -- ^ @index@.
+  -> Ptr GLdouble -- ^ @params@ pointing to @4@ elements of type @GLdouble@.
+  -> m ()
+glGetProgramLocalParameterdvARB v1 v2 v3 = liftIO $ dyn344 ptr_glGetProgramLocalParameterdvARB v1 v2 v3
+
+{-# NOINLINE ptr_glGetProgramLocalParameterdvARB #-}
+ptr_glGetProgramLocalParameterdvARB :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())
+ptr_glGetProgramLocalParameterdvARB = unsafePerformIO $ getCommand "glGetProgramLocalParameterdvARB"
+
+-- glGetProgramLocalParameterfvARB ---------------------------------------------
+
+glGetProgramLocalParameterfvARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
+  -> GLuint -- ^ @index@.
+  -> Ptr GLfloat -- ^ @params@ pointing to @4@ elements of type @GLfloat@.
+  -> m ()
+glGetProgramLocalParameterfvARB v1 v2 v3 = liftIO $ dyn278 ptr_glGetProgramLocalParameterfvARB v1 v2 v3
+
+{-# NOINLINE ptr_glGetProgramLocalParameterfvARB #-}
+ptr_glGetProgramLocalParameterfvARB :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
+ptr_glGetProgramLocalParameterfvARB = unsafePerformIO $ getCommand "glGetProgramLocalParameterfvARB"
+
+-- glGetProgramNamedParameterdvNV ----------------------------------------------
+
+glGetProgramNamedParameterdvNV
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> GLsizei -- ^ @len@.
+  -> Ptr GLubyte -- ^ @name@ pointing to @1@ element of type @GLubyte@.
+  -> Ptr GLdouble -- ^ @params@ pointing to @4@ elements of type @GLdouble@.
+  -> m ()
+glGetProgramNamedParameterdvNV v1 v2 v3 v4 = liftIO $ dyn410 ptr_glGetProgramNamedParameterdvNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetProgramNamedParameterdvNV #-}
+ptr_glGetProgramNamedParameterdvNV :: FunPtr (GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLdouble -> IO ())
+ptr_glGetProgramNamedParameterdvNV = unsafePerformIO $ getCommand "glGetProgramNamedParameterdvNV"
+
+-- glGetProgramNamedParameterfvNV ----------------------------------------------
+
+glGetProgramNamedParameterfvNV
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> GLsizei -- ^ @len@.
+  -> Ptr GLubyte -- ^ @name@ pointing to @1@ element of type @GLubyte@.
+  -> Ptr GLfloat -- ^ @params@ pointing to @4@ elements of type @GLfloat@.
+  -> m ()
+glGetProgramNamedParameterfvNV v1 v2 v3 v4 = liftIO $ dyn411 ptr_glGetProgramNamedParameterfvNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetProgramNamedParameterfvNV #-}
+ptr_glGetProgramNamedParameterfvNV :: FunPtr (GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLfloat -> IO ())
+ptr_glGetProgramNamedParameterfvNV = unsafePerformIO $ getCommand "glGetProgramNamedParameterfvNV"
+
+-- glGetProgramParameterdvNV ---------------------------------------------------
+
+glGetProgramParameterdvNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [VertexAttribEnumNV](Graphics-GL-Groups.html#VertexAttribEnumNV).
+  -> GLuint -- ^ @index@.
+  -> GLenum -- ^ @pname@ of type [VertexAttribEnumNV](Graphics-GL-Groups.html#VertexAttribEnumNV).
+  -> Ptr GLdouble -- ^ @params@ pointing to @4@ elements of type @GLdouble@.
+  -> m ()
+glGetProgramParameterdvNV v1 v2 v3 v4 = liftIO $ dyn412 ptr_glGetProgramParameterdvNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetProgramParameterdvNV #-}
+ptr_glGetProgramParameterdvNV :: FunPtr (GLenum -> GLuint -> GLenum -> Ptr GLdouble -> IO ())
+ptr_glGetProgramParameterdvNV = unsafePerformIO $ getCommand "glGetProgramParameterdvNV"
+
+-- glGetProgramParameterfvNV ---------------------------------------------------
+
+glGetProgramParameterfvNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [VertexAttribEnumNV](Graphics-GL-Groups.html#VertexAttribEnumNV).
+  -> GLuint -- ^ @index@.
+  -> GLenum -- ^ @pname@ of type [VertexAttribEnumNV](Graphics-GL-Groups.html#VertexAttribEnumNV).
+  -> Ptr GLfloat -- ^ @params@ pointing to @4@ elements of type @GLfloat@.
+  -> m ()
+glGetProgramParameterfvNV v1 v2 v3 v4 = liftIO $ dyn365 ptr_glGetProgramParameterfvNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetProgramParameterfvNV #-}
+ptr_glGetProgramParameterfvNV :: FunPtr (GLenum -> GLuint -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetProgramParameterfvNV = unsafePerformIO $ getCommand "glGetProgramParameterfvNV"
+
+-- glGetProgramPipelineInfoLog -------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetProgramPipelineInfoLog.xhtml OpenGL 4.x>.
+glGetProgramPipelineInfoLog
+  :: MonadIO m
+  => GLuint -- ^ @pipeline@.
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
+  -> Ptr GLchar -- ^ @infoLog@ pointing to @bufSize@ elements of type @GLchar@.
+  -> m ()
+glGetProgramPipelineInfoLog v1 v2 v3 v4 = liftIO $ dyn345 ptr_glGetProgramPipelineInfoLog v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetProgramPipelineInfoLog #-}
+ptr_glGetProgramPipelineInfoLog :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+ptr_glGetProgramPipelineInfoLog = unsafePerformIO $ getCommand "glGetProgramPipelineInfoLog"
+
+-- glGetProgramPipelineInfoLogEXT ----------------------------------------------
+
+glGetProgramPipelineInfoLogEXT
+  :: MonadIO m
+  => GLuint -- ^ @pipeline@.
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
+  -> Ptr GLchar -- ^ @infoLog@ pointing to @bufSize@ elements of type @GLchar@.
+  -> m ()
+glGetProgramPipelineInfoLogEXT v1 v2 v3 v4 = liftIO $ dyn345 ptr_glGetProgramPipelineInfoLogEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetProgramPipelineInfoLogEXT #-}
+ptr_glGetProgramPipelineInfoLogEXT :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+ptr_glGetProgramPipelineInfoLogEXT = unsafePerformIO $ getCommand "glGetProgramPipelineInfoLogEXT"
+
+-- glGetProgramPipelineiv ------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetProgramPipeline.xhtml OpenGL 4.x>.
+glGetProgramPipelineiv
+  :: MonadIO m
+  => GLuint -- ^ @pipeline@.
+  -> GLenum -- ^ @pname@ of type [PipelineParameterName](Graphics-GL-Groups.html#PipelineParameterName).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetProgramPipelineiv v1 v2 v3 = liftIO $ dyn348 ptr_glGetProgramPipelineiv v1 v2 v3
+
+{-# NOINLINE ptr_glGetProgramPipelineiv #-}
+ptr_glGetProgramPipelineiv :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetProgramPipelineiv = unsafePerformIO $ getCommand "glGetProgramPipelineiv"
+
+-- glGetProgramPipelineivEXT ---------------------------------------------------
+
+glGetProgramPipelineivEXT
+  :: MonadIO m
+  => GLuint -- ^ @pipeline@.
+  -> GLenum -- ^ @pname@ of type [PipelineParameterName](Graphics-GL-Groups.html#PipelineParameterName).
+  -> Ptr GLint -- ^ @params@.
+  -> m ()
+glGetProgramPipelineivEXT v1 v2 v3 = liftIO $ dyn348 ptr_glGetProgramPipelineivEXT v1 v2 v3
+
+{-# NOINLINE ptr_glGetProgramPipelineivEXT #-}
+ptr_glGetProgramPipelineivEXT :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetProgramPipelineivEXT = unsafePerformIO $ getCommand "glGetProgramPipelineivEXT"
+
+-- glGetProgramResourceIndex ---------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetProgramResourceIndex.xhtml OpenGL 4.x>.
+glGetProgramResourceIndex
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLenum -- ^ @programInterface@ of type [ProgramInterface](Graphics-GL-Groups.html#ProgramInterface).
+  -> Ptr GLchar -- ^ @name@ pointing to @COMPSIZE(name)@ elements of type @GLchar@.
+  -> m GLuint
+glGetProgramResourceIndex v1 v2 v3 = liftIO $ dyn413 ptr_glGetProgramResourceIndex v1 v2 v3
+
+{-# NOINLINE ptr_glGetProgramResourceIndex #-}
+ptr_glGetProgramResourceIndex :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLuint)
+ptr_glGetProgramResourceIndex = unsafePerformIO $ getCommand "glGetProgramResourceIndex"
+
+-- glGetProgramResourceLocation ------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetProgramResourceLocation.xhtml OpenGL 4.x>.
+glGetProgramResourceLocation
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLenum -- ^ @programInterface@ of type [ProgramInterface](Graphics-GL-Groups.html#ProgramInterface).
+  -> Ptr GLchar -- ^ @name@ pointing to @COMPSIZE(name)@ elements of type @GLchar@.
+  -> m GLint
+glGetProgramResourceLocation v1 v2 v3 = liftIO $ dyn414 ptr_glGetProgramResourceLocation v1 v2 v3
+
+{-# NOINLINE ptr_glGetProgramResourceLocation #-}
+ptr_glGetProgramResourceLocation :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLint)
+ptr_glGetProgramResourceLocation = unsafePerformIO $ getCommand "glGetProgramResourceLocation"
+
+-- glGetProgramResourceLocationIndex -------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetProgramResourceLocationIndex.xhtml OpenGL 4.x>.
+glGetProgramResourceLocationIndex
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLenum -- ^ @programInterface@ of type [ProgramInterface](Graphics-GL-Groups.html#ProgramInterface).
+  -> Ptr GLchar -- ^ @name@ pointing to @COMPSIZE(name)@ elements of type @GLchar@.
+  -> m GLint
+glGetProgramResourceLocationIndex v1 v2 v3 = liftIO $ dyn414 ptr_glGetProgramResourceLocationIndex v1 v2 v3
+
+{-# NOINLINE ptr_glGetProgramResourceLocationIndex #-}
+ptr_glGetProgramResourceLocationIndex :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLint)
+ptr_glGetProgramResourceLocationIndex = unsafePerformIO $ getCommand "glGetProgramResourceLocationIndex"
+
+-- glGetProgramResourceLocationIndexEXT ----------------------------------------
+
+glGetProgramResourceLocationIndexEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLenum -- ^ @programInterface@ of type [ProgramInterface](Graphics-GL-Groups.html#ProgramInterface).
+  -> Ptr GLchar -- ^ @name@ pointing to @COMPSIZE(name)@ elements of type @GLchar@.
+  -> m GLint
+glGetProgramResourceLocationIndexEXT v1 v2 v3 = liftIO $ dyn414 ptr_glGetProgramResourceLocationIndexEXT v1 v2 v3
+
+{-# NOINLINE ptr_glGetProgramResourceLocationIndexEXT #-}
+ptr_glGetProgramResourceLocationIndexEXT :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLint)
+ptr_glGetProgramResourceLocationIndexEXT = unsafePerformIO $ getCommand "glGetProgramResourceLocationIndexEXT"
+
+-- glGetProgramResourceName ----------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetProgramResourceName.xhtml OpenGL 4.x>.
+glGetProgramResourceName
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLenum -- ^ @programInterface@ of type [ProgramInterface](Graphics-GL-Groups.html#ProgramInterface).
+  -> GLuint -- ^ @index@.
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
+  -> Ptr GLchar -- ^ @name@ pointing to @bufSize@ elements of type @GLchar@.
+  -> m ()
+glGetProgramResourceName v1 v2 v3 v4 v5 v6 = liftIO $ dyn317 ptr_glGetProgramResourceName v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glGetProgramResourceName #-}
+ptr_glGetProgramResourceName :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+ptr_glGetProgramResourceName = unsafePerformIO $ getCommand "glGetProgramResourceName"
+
+-- glGetProgramResourcefvNV ----------------------------------------------------
+
+glGetProgramResourcefvNV
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLenum -- ^ @programInterface@ of type [ProgramInterface](Graphics-GL-Groups.html#ProgramInterface).
+  -> GLuint -- ^ @index@.
+  -> GLsizei -- ^ @propCount@.
+  -> Ptr GLenum -- ^ @props@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
+  -> Ptr GLfloat -- ^ @params@ pointing to @count@ elements of type @GLfloat@.
+  -> m ()
+glGetProgramResourcefvNV v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn415 ptr_glGetProgramResourcefvNV v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glGetProgramResourcefvNV #-}
+ptr_glGetProgramResourcefvNV :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLfloat -> IO ())
+ptr_glGetProgramResourcefvNV = unsafePerformIO $ getCommand "glGetProgramResourcefvNV"
+
+-- glGetProgramResourceiv ------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetProgramResource.xhtml OpenGL 4.x>.
+glGetProgramResourceiv
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLenum -- ^ @programInterface@ of type [ProgramInterface](Graphics-GL-Groups.html#ProgramInterface).
+  -> GLuint -- ^ @index@.
+  -> GLsizei -- ^ @propCount@.
+  -> Ptr GLenum -- ^ @props@ pointing to @propCount@ elements of type [ProgramResourceProperty](Graphics-GL-Groups.html#ProgramResourceProperty).
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
+  -> Ptr GLint -- ^ @params@ pointing to @count@ elements of type @GLint@.
+  -> m ()
+glGetProgramResourceiv v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn416 ptr_glGetProgramResourceiv v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glGetProgramResourceiv #-}
+ptr_glGetProgramResourceiv :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> IO ())
+ptr_glGetProgramResourceiv = unsafePerformIO $ getCommand "glGetProgramResourceiv"
+
+-- glGetProgramStageiv ---------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetProgramStage.xhtml OpenGL 4.x>.
+glGetProgramStageiv
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLenum -- ^ @shadertype@ of type [ShaderType](Graphics-GL-Groups.html#ShaderType).
+  -> GLenum -- ^ @pname@ of type [ProgramStagePName](Graphics-GL-Groups.html#ProgramStagePName).
+  -> Ptr GLint -- ^ @values@ pointing to @1@ element of type @GLint@.
+  -> m ()
+glGetProgramStageiv v1 v2 v3 v4 = liftIO $ dyn379 ptr_glGetProgramStageiv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetProgramStageiv #-}
+ptr_glGetProgramStageiv :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetProgramStageiv = unsafePerformIO $ getCommand "glGetProgramStageiv"
+
+-- glGetProgramStringARB -------------------------------------------------------
+
+glGetProgramStringARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
+  -> GLenum -- ^ @pname@ of type [ProgramStringProperty](Graphics-GL-Groups.html#ProgramStringProperty).
+  -> Ptr a -- ^ @string@ pointing to @COMPSIZE(target,pname)@ elements of type @a@.
+  -> m ()
+glGetProgramStringARB v1 v2 v3 = liftIO $ dyn250 ptr_glGetProgramStringARB v1 v2 v3
+
+{-# NOINLINE ptr_glGetProgramStringARB #-}
+ptr_glGetProgramStringARB :: FunPtr (GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glGetProgramStringARB = unsafePerformIO $ getCommand "glGetProgramStringARB"
+
+-- glGetProgramStringNV --------------------------------------------------------
+
+glGetProgramStringNV
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> GLenum -- ^ @pname@ of type [VertexAttribEnumNV](Graphics-GL-Groups.html#VertexAttribEnumNV).
+  -> Ptr GLubyte -- ^ @program@ pointing to @COMPSIZE(id,pname)@ elements of type @ProgramCharacterNV@.
+  -> m ()
+glGetProgramStringNV v1 v2 v3 = liftIO $ dyn417 ptr_glGetProgramStringNV v1 v2 v3
+
+{-# NOINLINE ptr_glGetProgramStringNV #-}
+ptr_glGetProgramStringNV :: FunPtr (GLuint -> GLenum -> Ptr GLubyte -> IO ())
+ptr_glGetProgramStringNV = unsafePerformIO $ getCommand "glGetProgramStringNV"
+
+-- glGetProgramSubroutineParameteruivNV ----------------------------------------
+
+glGetProgramSubroutineParameteruivNV
+  :: MonadIO m
+  => GLenum -- ^ @target@.
+  -> GLuint -- ^ @index@.
+  -> Ptr GLuint -- ^ @param@ pointing to @COMPSIZE(target)@ elements of type @GLuint@.
+  -> m ()
+glGetProgramSubroutineParameteruivNV v1 v2 v3 = liftIO $ dyn221 ptr_glGetProgramSubroutineParameteruivNV v1 v2 v3
+
+{-# NOINLINE ptr_glGetProgramSubroutineParameteruivNV #-}
+ptr_glGetProgramSubroutineParameteruivNV :: FunPtr (GLenum -> GLuint -> Ptr GLuint -> IO ())
+ptr_glGetProgramSubroutineParameteruivNV = unsafePerformIO $ getCommand "glGetProgramSubroutineParameteruivNV"
+
+-- glGetProgramiv --------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetProgram.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGetProgram.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetProgram.xhtml OpenGL 4.x>.
+glGetProgramiv
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLenum -- ^ @pname@ of type [ProgramPropertyARB](Graphics-GL-Groups.html#ProgramPropertyARB).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetProgramiv v1 v2 v3 = liftIO $ dyn348 ptr_glGetProgramiv v1 v2 v3
+
+{-# NOINLINE ptr_glGetProgramiv #-}
+ptr_glGetProgramiv :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetProgramiv = unsafePerformIO $ getCommand "glGetProgramiv"
+
+-- glGetProgramivARB -----------------------------------------------------------
+
+glGetProgramivARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
+  -> GLenum -- ^ @pname@ of type [ProgramPropertyARB](Graphics-GL-Groups.html#ProgramPropertyARB).
+  -> Ptr GLint -- ^ @params@ pointing to @1@ element of type @GLint@.
+  -> m ()
+glGetProgramivARB v1 v2 v3 = liftIO $ dyn140 ptr_glGetProgramivARB v1 v2 v3
+
+{-# NOINLINE ptr_glGetProgramivARB #-}
+ptr_glGetProgramivARB :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetProgramivARB = unsafePerformIO $ getCommand "glGetProgramivARB"
+
+-- glGetProgramivNV ------------------------------------------------------------
+
+glGetProgramivNV
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> GLenum -- ^ @pname@ of type [VertexAttribEnumNV](Graphics-GL-Groups.html#VertexAttribEnumNV).
+  -> Ptr GLint -- ^ @params@ pointing to @4@ elements of type @GLint@.
+  -> m ()
+glGetProgramivNV v1 v2 v3 = liftIO $ dyn348 ptr_glGetProgramivNV v1 v2 v3
+
+{-# NOINLINE ptr_glGetProgramivNV #-}
+ptr_glGetProgramivNV :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetProgramivNV = unsafePerformIO $ getCommand "glGetProgramivNV"
+
+-- glGetQueryBufferObjecti64v --------------------------------------------------
+
+glGetQueryBufferObjecti64v
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> GLuint -- ^ @buffer@.
+  -> GLenum -- ^ @pname@ of type [QueryObjectParameterName](Graphics-GL-Groups.html#QueryObjectParameterName).
+  -> GLintptr -- ^ @offset@.
+  -> m ()
+glGetQueryBufferObjecti64v v1 v2 v3 v4 = liftIO $ dyn418 ptr_glGetQueryBufferObjecti64v v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetQueryBufferObjecti64v #-}
+ptr_glGetQueryBufferObjecti64v :: FunPtr (GLuint -> GLuint -> GLenum -> GLintptr -> IO ())
+ptr_glGetQueryBufferObjecti64v = unsafePerformIO $ getCommand "glGetQueryBufferObjecti64v"
+
+-- glGetQueryBufferObjectiv ----------------------------------------------------
+
+glGetQueryBufferObjectiv
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> GLuint -- ^ @buffer@.
+  -> GLenum -- ^ @pname@ of type [QueryObjectParameterName](Graphics-GL-Groups.html#QueryObjectParameterName).
+  -> GLintptr -- ^ @offset@.
+  -> m ()
+glGetQueryBufferObjectiv v1 v2 v3 v4 = liftIO $ dyn418 ptr_glGetQueryBufferObjectiv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetQueryBufferObjectiv #-}
+ptr_glGetQueryBufferObjectiv :: FunPtr (GLuint -> GLuint -> GLenum -> GLintptr -> IO ())
+ptr_glGetQueryBufferObjectiv = unsafePerformIO $ getCommand "glGetQueryBufferObjectiv"
+
+-- glGetQueryBufferObjectui64v -------------------------------------------------
+
+glGetQueryBufferObjectui64v
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> GLuint -- ^ @buffer@.
+  -> GLenum -- ^ @pname@ of type [QueryObjectParameterName](Graphics-GL-Groups.html#QueryObjectParameterName).
+  -> GLintptr -- ^ @offset@.
+  -> m ()
+glGetQueryBufferObjectui64v v1 v2 v3 v4 = liftIO $ dyn418 ptr_glGetQueryBufferObjectui64v v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetQueryBufferObjectui64v #-}
+ptr_glGetQueryBufferObjectui64v :: FunPtr (GLuint -> GLuint -> GLenum -> GLintptr -> IO ())
+ptr_glGetQueryBufferObjectui64v = unsafePerformIO $ getCommand "glGetQueryBufferObjectui64v"
+
+-- glGetQueryBufferObjectuiv ---------------------------------------------------
+
+glGetQueryBufferObjectuiv
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> GLuint -- ^ @buffer@.
+  -> GLenum -- ^ @pname@ of type [QueryObjectParameterName](Graphics-GL-Groups.html#QueryObjectParameterName).
+  -> GLintptr -- ^ @offset@.
+  -> m ()
+glGetQueryBufferObjectuiv v1 v2 v3 v4 = liftIO $ dyn418 ptr_glGetQueryBufferObjectuiv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetQueryBufferObjectuiv #-}
+ptr_glGetQueryBufferObjectuiv :: FunPtr (GLuint -> GLuint -> GLenum -> GLintptr -> IO ())
+ptr_glGetQueryBufferObjectuiv = unsafePerformIO $ getCommand "glGetQueryBufferObjectuiv"
+
+-- glGetQueryIndexediv ---------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetQueryIndexed.xhtml OpenGL 4.x>.
+glGetQueryIndexediv
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [QueryTarget](Graphics-GL-Groups.html#QueryTarget).
+  -> GLuint -- ^ @index@.
+  -> GLenum -- ^ @pname@ of type [QueryParameterName](Graphics-GL-Groups.html#QueryParameterName).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetQueryIndexediv v1 v2 v3 v4 = liftIO $ dyn366 ptr_glGetQueryIndexediv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetQueryIndexediv #-}
+ptr_glGetQueryIndexediv :: FunPtr (GLenum -> GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetQueryIndexediv = unsafePerformIO $ getCommand "glGetQueryIndexediv"
+
+-- glGetQueryObjecti64v --------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGetQueryObject.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetQueryObject.xhtml OpenGL 4.x>.
+glGetQueryObjecti64v
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> GLenum -- ^ @pname@ of type [QueryObjectParameterName](Graphics-GL-Groups.html#QueryObjectParameterName).
+  -> Ptr GLint64 -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint64@.
+  -> m ()
+glGetQueryObjecti64v v1 v2 v3 = liftIO $ dyn375 ptr_glGetQueryObjecti64v v1 v2 v3
+
+{-# NOINLINE ptr_glGetQueryObjecti64v #-}
+ptr_glGetQueryObjecti64v :: FunPtr (GLuint -> GLenum -> Ptr GLint64 -> IO ())
+ptr_glGetQueryObjecti64v = unsafePerformIO $ getCommand "glGetQueryObjecti64v"
+
+-- glGetQueryObjecti64vEXT -----------------------------------------------------
+
+-- | This command is an alias for 'glGetQueryObjecti64v'.
+glGetQueryObjecti64vEXT
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> GLenum -- ^ @pname@ of type [QueryObjectParameterName](Graphics-GL-Groups.html#QueryObjectParameterName).
+  -> Ptr GLint64 -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint64@.
+  -> m ()
+glGetQueryObjecti64vEXT v1 v2 v3 = liftIO $ dyn375 ptr_glGetQueryObjecti64vEXT v1 v2 v3
+
+{-# NOINLINE ptr_glGetQueryObjecti64vEXT #-}
+ptr_glGetQueryObjecti64vEXT :: FunPtr (GLuint -> GLenum -> Ptr GLint64 -> IO ())
+ptr_glGetQueryObjecti64vEXT = unsafePerformIO $ getCommand "glGetQueryObjecti64vEXT"
+
+-- glGetQueryObjectiv ----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetQueryObject.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGetQueryObject.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetQueryObject.xhtml OpenGL 4.x>.
+glGetQueryObjectiv
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> GLenum -- ^ @pname@ of type [QueryObjectParameterName](Graphics-GL-Groups.html#QueryObjectParameterName).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetQueryObjectiv v1 v2 v3 = liftIO $ dyn348 ptr_glGetQueryObjectiv v1 v2 v3
+
+{-# NOINLINE ptr_glGetQueryObjectiv #-}
+ptr_glGetQueryObjectiv :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetQueryObjectiv = unsafePerformIO $ getCommand "glGetQueryObjectiv"
+
+-- glGetQueryObjectivARB -------------------------------------------------------
+
+-- | This command is an alias for 'glGetQueryObjectiv'.
+glGetQueryObjectivARB
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> GLenum -- ^ @pname@ of type [QueryObjectParameterName](Graphics-GL-Groups.html#QueryObjectParameterName).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetQueryObjectivARB v1 v2 v3 = liftIO $ dyn348 ptr_glGetQueryObjectivARB v1 v2 v3
+
+{-# NOINLINE ptr_glGetQueryObjectivARB #-}
+ptr_glGetQueryObjectivARB :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetQueryObjectivARB = unsafePerformIO $ getCommand "glGetQueryObjectivARB"
+
+-- glGetQueryObjectivEXT -------------------------------------------------------
+
+-- | This command is an alias for 'glGetQueryObjectiv'.
+glGetQueryObjectivEXT
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> GLenum -- ^ @pname@ of type [QueryObjectParameterName](Graphics-GL-Groups.html#QueryObjectParameterName).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetQueryObjectivEXT v1 v2 v3 = liftIO $ dyn348 ptr_glGetQueryObjectivEXT v1 v2 v3
+
+{-# NOINLINE ptr_glGetQueryObjectivEXT #-}
+ptr_glGetQueryObjectivEXT :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetQueryObjectivEXT = unsafePerformIO $ getCommand "glGetQueryObjectivEXT"
+
+-- glGetQueryObjectui64v -------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGetQueryObject.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetQueryObject.xhtml OpenGL 4.x>.
+glGetQueryObjectui64v
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> GLenum -- ^ @pname@ of type [QueryObjectParameterName](Graphics-GL-Groups.html#QueryObjectParameterName).
+  -> Ptr GLuint64 -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLuint64@.
+  -> m ()
+glGetQueryObjectui64v v1 v2 v3 = liftIO $ dyn419 ptr_glGetQueryObjectui64v v1 v2 v3
+
+{-# NOINLINE ptr_glGetQueryObjectui64v #-}
+ptr_glGetQueryObjectui64v :: FunPtr (GLuint -> GLenum -> Ptr GLuint64 -> IO ())
+ptr_glGetQueryObjectui64v = unsafePerformIO $ getCommand "glGetQueryObjectui64v"
+
+-- glGetQueryObjectui64vEXT ----------------------------------------------------
+
+-- | This command is an alias for 'glGetQueryObjectui64v'.
+glGetQueryObjectui64vEXT
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> GLenum -- ^ @pname@ of type [QueryObjectParameterName](Graphics-GL-Groups.html#QueryObjectParameterName).
+  -> Ptr GLuint64 -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLuint64@.
+  -> m ()
+glGetQueryObjectui64vEXT v1 v2 v3 = liftIO $ dyn419 ptr_glGetQueryObjectui64vEXT v1 v2 v3
+
+{-# NOINLINE ptr_glGetQueryObjectui64vEXT #-}
+ptr_glGetQueryObjectui64vEXT :: FunPtr (GLuint -> GLenum -> Ptr GLuint64 -> IO ())
+ptr_glGetQueryObjectui64vEXT = unsafePerformIO $ getCommand "glGetQueryObjectui64vEXT"
+
+-- glGetQueryObjectuiv ---------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetQueryObject.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGetQueryObject.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetQueryObject.xhtml OpenGL 4.x>.
+glGetQueryObjectuiv
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> GLenum -- ^ @pname@ of type [QueryObjectParameterName](Graphics-GL-Groups.html#QueryObjectParameterName).
+  -> Ptr GLuint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLuint@.
+  -> m ()
+glGetQueryObjectuiv v1 v2 v3 = liftIO $ dyn392 ptr_glGetQueryObjectuiv v1 v2 v3
+
+{-# NOINLINE ptr_glGetQueryObjectuiv #-}
+ptr_glGetQueryObjectuiv :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
+ptr_glGetQueryObjectuiv = unsafePerformIO $ getCommand "glGetQueryObjectuiv"
+
+-- glGetQueryObjectuivARB ------------------------------------------------------
+
+-- | This command is an alias for 'glGetQueryObjectuiv'.
+glGetQueryObjectuivARB
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> GLenum -- ^ @pname@ of type [QueryObjectParameterName](Graphics-GL-Groups.html#QueryObjectParameterName).
+  -> Ptr GLuint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLuint@.
+  -> m ()
+glGetQueryObjectuivARB v1 v2 v3 = liftIO $ dyn392 ptr_glGetQueryObjectuivARB v1 v2 v3
+
+{-# NOINLINE ptr_glGetQueryObjectuivARB #-}
+ptr_glGetQueryObjectuivARB :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
+ptr_glGetQueryObjectuivARB = unsafePerformIO $ getCommand "glGetQueryObjectuivARB"
+
+-- glGetQueryObjectuivEXT ------------------------------------------------------
+
+glGetQueryObjectuivEXT
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> GLenum -- ^ @pname@ of type [QueryObjectParameterName](Graphics-GL-Groups.html#QueryObjectParameterName).
+  -> Ptr GLuint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLuint@.
+  -> m ()
+glGetQueryObjectuivEXT v1 v2 v3 = liftIO $ dyn392 ptr_glGetQueryObjectuivEXT v1 v2 v3
+
+{-# NOINLINE ptr_glGetQueryObjectuivEXT #-}
+ptr_glGetQueryObjectuivEXT :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
+ptr_glGetQueryObjectuivEXT = unsafePerformIO $ getCommand "glGetQueryObjectuivEXT"
+
+-- glGetQueryiv ----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetQueryiv.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGetQueryiv.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetQueryiv.xhtml OpenGL 4.x>.
+glGetQueryiv
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [QueryTarget](Graphics-GL-Groups.html#QueryTarget).
+  -> GLenum -- ^ @pname@ of type [QueryParameterName](Graphics-GL-Groups.html#QueryParameterName).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetQueryiv v1 v2 v3 = liftIO $ dyn140 ptr_glGetQueryiv v1 v2 v3
+
+{-# NOINLINE ptr_glGetQueryiv #-}
+ptr_glGetQueryiv :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetQueryiv = unsafePerformIO $ getCommand "glGetQueryiv"
+
+-- glGetQueryivARB -------------------------------------------------------------
+
+-- | This command is an alias for 'glGetQueryiv'.
+glGetQueryivARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [QueryTarget](Graphics-GL-Groups.html#QueryTarget).
+  -> GLenum -- ^ @pname@ of type [QueryParameterName](Graphics-GL-Groups.html#QueryParameterName).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetQueryivARB v1 v2 v3 = liftIO $ dyn140 ptr_glGetQueryivARB v1 v2 v3
+
+{-# NOINLINE ptr_glGetQueryivARB #-}
+ptr_glGetQueryivARB :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetQueryivARB = unsafePerformIO $ getCommand "glGetQueryivARB"
+
+-- glGetQueryivEXT -------------------------------------------------------------
+
+glGetQueryivEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [QueryTarget](Graphics-GL-Groups.html#QueryTarget).
+  -> GLenum -- ^ @pname@ of type [QueryParameterName](Graphics-GL-Groups.html#QueryParameterName).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetQueryivEXT v1 v2 v3 = liftIO $ dyn140 ptr_glGetQueryivEXT v1 v2 v3
+
+{-# NOINLINE ptr_glGetQueryivEXT #-}
+ptr_glGetQueryivEXT :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetQueryivEXT = unsafePerformIO $ getCommand "glGetQueryivEXT"
+
+-- glGetRenderbufferParameteriv ------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGetRenderbufferParameter.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetRenderbufferParameter.xhtml OpenGL 4.x>.
+glGetRenderbufferParameteriv
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [RenderbufferTarget](Graphics-GL-Groups.html#RenderbufferTarget).
+  -> GLenum -- ^ @pname@ of type [RenderbufferParameterName](Graphics-GL-Groups.html#RenderbufferParameterName).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetRenderbufferParameteriv v1 v2 v3 = liftIO $ dyn140 ptr_glGetRenderbufferParameteriv v1 v2 v3
+
+{-# NOINLINE ptr_glGetRenderbufferParameteriv #-}
+ptr_glGetRenderbufferParameteriv :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetRenderbufferParameteriv = unsafePerformIO $ getCommand "glGetRenderbufferParameteriv"
+
+-- glGetRenderbufferParameterivEXT ---------------------------------------------
+
+-- | This command is an alias for 'glGetRenderbufferParameteriv'.
+glGetRenderbufferParameterivEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [RenderbufferTarget](Graphics-GL-Groups.html#RenderbufferTarget).
+  -> GLenum -- ^ @pname@ of type [RenderbufferParameterName](Graphics-GL-Groups.html#RenderbufferParameterName).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetRenderbufferParameterivEXT v1 v2 v3 = liftIO $ dyn140 ptr_glGetRenderbufferParameterivEXT v1 v2 v3
+
+{-# NOINLINE ptr_glGetRenderbufferParameterivEXT #-}
+ptr_glGetRenderbufferParameterivEXT :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetRenderbufferParameterivEXT = unsafePerformIO $ getCommand "glGetRenderbufferParameterivEXT"
+
+-- glGetRenderbufferParameterivOES ---------------------------------------------
+
+glGetRenderbufferParameterivOES
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [RenderbufferTarget](Graphics-GL-Groups.html#RenderbufferTarget).
+  -> GLenum -- ^ @pname@ of type [RenderbufferParameterName](Graphics-GL-Groups.html#RenderbufferParameterName).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetRenderbufferParameterivOES v1 v2 v3 = liftIO $ dyn140 ptr_glGetRenderbufferParameterivOES v1 v2 v3
+
+{-# NOINLINE ptr_glGetRenderbufferParameterivOES #-}
+ptr_glGetRenderbufferParameterivOES :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetRenderbufferParameterivOES = unsafePerformIO $ getCommand "glGetRenderbufferParameterivOES"
+
+-- glGetSamplerParameterIiv ----------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGetSamplerParameter.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetSamplerParameter.xhtml OpenGL 4.x>.
+glGetSamplerParameterIiv
+  :: MonadIO m
+  => GLuint -- ^ @sampler@.
+  -> GLenum -- ^ @pname@ of type [SamplerParameterI](Graphics-GL-Groups.html#SamplerParameterI).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetSamplerParameterIiv v1 v2 v3 = liftIO $ dyn348 ptr_glGetSamplerParameterIiv v1 v2 v3
+
+{-# NOINLINE ptr_glGetSamplerParameterIiv #-}
+ptr_glGetSamplerParameterIiv :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetSamplerParameterIiv = unsafePerformIO $ getCommand "glGetSamplerParameterIiv"
+
+-- glGetSamplerParameterIivEXT -------------------------------------------------
+
+-- | This command is an alias for 'glGetSamplerParameterIiv'.
+glGetSamplerParameterIivEXT
+  :: MonadIO m
+  => GLuint -- ^ @sampler@.
+  -> GLenum -- ^ @pname@ of type [SamplerParameterI](Graphics-GL-Groups.html#SamplerParameterI).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetSamplerParameterIivEXT v1 v2 v3 = liftIO $ dyn348 ptr_glGetSamplerParameterIivEXT v1 v2 v3
+
+{-# NOINLINE ptr_glGetSamplerParameterIivEXT #-}
+ptr_glGetSamplerParameterIivEXT :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetSamplerParameterIivEXT = unsafePerformIO $ getCommand "glGetSamplerParameterIivEXT"
+
+-- glGetSamplerParameterIivOES -------------------------------------------------
+
+-- | This command is an alias for 'glGetSamplerParameterIiv'.
+glGetSamplerParameterIivOES
+  :: MonadIO m
+  => GLuint -- ^ @sampler@.
+  -> GLenum -- ^ @pname@ of type [SamplerParameterI](Graphics-GL-Groups.html#SamplerParameterI).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetSamplerParameterIivOES v1 v2 v3 = liftIO $ dyn348 ptr_glGetSamplerParameterIivOES v1 v2 v3
+
+{-# NOINLINE ptr_glGetSamplerParameterIivOES #-}
+ptr_glGetSamplerParameterIivOES :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetSamplerParameterIivOES = unsafePerformIO $ getCommand "glGetSamplerParameterIivOES"
+
+-- glGetSamplerParameterIuiv ---------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGetSamplerParameter.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetSamplerParameter.xhtml OpenGL 4.x>.
+glGetSamplerParameterIuiv
+  :: MonadIO m
+  => GLuint -- ^ @sampler@.
+  -> GLenum -- ^ @pname@ of type [SamplerParameterI](Graphics-GL-Groups.html#SamplerParameterI).
+  -> Ptr GLuint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLuint@.
+  -> m ()
+glGetSamplerParameterIuiv v1 v2 v3 = liftIO $ dyn392 ptr_glGetSamplerParameterIuiv v1 v2 v3
+
+{-# NOINLINE ptr_glGetSamplerParameterIuiv #-}
+ptr_glGetSamplerParameterIuiv :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
+ptr_glGetSamplerParameterIuiv = unsafePerformIO $ getCommand "glGetSamplerParameterIuiv"
+
+-- glGetSamplerParameterIuivEXT ------------------------------------------------
+
+-- | This command is an alias for 'glGetSamplerParameterIuiv'.
+glGetSamplerParameterIuivEXT
+  :: MonadIO m
+  => GLuint -- ^ @sampler@.
+  -> GLenum -- ^ @pname@ of type [SamplerParameterI](Graphics-GL-Groups.html#SamplerParameterI).
+  -> Ptr GLuint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLuint@.
+  -> m ()
+glGetSamplerParameterIuivEXT v1 v2 v3 = liftIO $ dyn392 ptr_glGetSamplerParameterIuivEXT v1 v2 v3
+
+{-# NOINLINE ptr_glGetSamplerParameterIuivEXT #-}
+ptr_glGetSamplerParameterIuivEXT :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
+ptr_glGetSamplerParameterIuivEXT = unsafePerformIO $ getCommand "glGetSamplerParameterIuivEXT"
+
+-- glGetSamplerParameterIuivOES ------------------------------------------------
+
+-- | This command is an alias for 'glGetSamplerParameterIuiv'.
+glGetSamplerParameterIuivOES
+  :: MonadIO m
+  => GLuint -- ^ @sampler@.
+  -> GLenum -- ^ @pname@ of type [SamplerParameterI](Graphics-GL-Groups.html#SamplerParameterI).
+  -> Ptr GLuint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLuint@.
+  -> m ()
+glGetSamplerParameterIuivOES v1 v2 v3 = liftIO $ dyn392 ptr_glGetSamplerParameterIuivOES v1 v2 v3
+
+{-# NOINLINE ptr_glGetSamplerParameterIuivOES #-}
+ptr_glGetSamplerParameterIuivOES :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
+ptr_glGetSamplerParameterIuivOES = unsafePerformIO $ getCommand "glGetSamplerParameterIuivOES"
+
+-- glGetSamplerParameterfv -----------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGetSamplerParameter.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetSamplerParameter.xhtml OpenGL 4.x>.
+glGetSamplerParameterfv
+  :: MonadIO m
+  => GLuint -- ^ @sampler@.
+  -> GLenum -- ^ @pname@ of type [SamplerParameterF](Graphics-GL-Groups.html#SamplerParameterF).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
+  -> m ()
+glGetSamplerParameterfv v1 v2 v3 = liftIO $ dyn364 ptr_glGetSamplerParameterfv v1 v2 v3
+
+{-# NOINLINE ptr_glGetSamplerParameterfv #-}
+ptr_glGetSamplerParameterfv :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetSamplerParameterfv = unsafePerformIO $ getCommand "glGetSamplerParameterfv"
+
+-- glGetSamplerParameteriv -----------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGetSamplerParameter.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetSamplerParameter.xhtml OpenGL 4.x>.
+glGetSamplerParameteriv
+  :: MonadIO m
+  => GLuint -- ^ @sampler@.
+  -> GLenum -- ^ @pname@ of type [SamplerParameterI](Graphics-GL-Groups.html#SamplerParameterI).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetSamplerParameteriv v1 v2 v3 = liftIO $ dyn348 ptr_glGetSamplerParameteriv v1 v2 v3
+
+{-# NOINLINE ptr_glGetSamplerParameteriv #-}
+ptr_glGetSamplerParameteriv :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetSamplerParameteriv = unsafePerformIO $ getCommand "glGetSamplerParameteriv"
+
+-- glGetSemaphoreParameterui64vEXT ---------------------------------------------
+
+glGetSemaphoreParameterui64vEXT
+  :: MonadIO m
+  => GLuint -- ^ @semaphore@.
+  -> GLenum -- ^ @pname@ of type [SemaphoreParameterName](Graphics-GL-Groups.html#SemaphoreParameterName).
+  -> Ptr GLuint64 -- ^ @params@.
+  -> m ()
+glGetSemaphoreParameterui64vEXT v1 v2 v3 = liftIO $ dyn419 ptr_glGetSemaphoreParameterui64vEXT v1 v2 v3
+
+{-# NOINLINE ptr_glGetSemaphoreParameterui64vEXT #-}
+ptr_glGetSemaphoreParameterui64vEXT :: FunPtr (GLuint -> GLenum -> Ptr GLuint64 -> IO ())
+ptr_glGetSemaphoreParameterui64vEXT = unsafePerformIO $ getCommand "glGetSemaphoreParameterui64vEXT"
+
+-- glGetSeparableFilter --------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetSeparableFilter.xml OpenGL 2.x>.
+glGetSeparableFilter
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [SeparableTargetEXT](Graphics-GL-Groups.html#SeparableTargetEXT).
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @row@ pointing to @COMPSIZE(target,format,type)@ elements of type @a@.
+  -> Ptr b -- ^ @column@ pointing to @COMPSIZE(target,format,type)@ elements of type @b@.
+  -> Ptr c -- ^ @span@ pointing to @COMPSIZE(target,format,type)@ elements of type @c@.
+  -> m ()
+glGetSeparableFilter v1 v2 v3 v4 v5 v6 = liftIO $ dyn420 ptr_glGetSeparableFilter v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glGetSeparableFilter #-}
+ptr_glGetSeparableFilter :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr a -> Ptr b -> Ptr c -> IO ())
+ptr_glGetSeparableFilter = unsafePerformIO $ getCommand "glGetSeparableFilter"
+
+-- glGetSeparableFilterEXT -----------------------------------------------------
+
+glGetSeparableFilterEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [SeparableTargetEXT](Graphics-GL-Groups.html#SeparableTargetEXT).
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @row@ pointing to @COMPSIZE(target,format,type)@ elements of type @a@.
+  -> Ptr b -- ^ @column@ pointing to @COMPSIZE(target,format,type)@ elements of type @b@.
+  -> Ptr c -- ^ @span@ pointing to @COMPSIZE(target,format,type)@ elements of type @c@.
+  -> m ()
+glGetSeparableFilterEXT v1 v2 v3 v4 v5 v6 = liftIO $ dyn420 ptr_glGetSeparableFilterEXT v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glGetSeparableFilterEXT #-}
+ptr_glGetSeparableFilterEXT :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr a -> Ptr b -> Ptr c -> IO ())
+ptr_glGetSeparableFilterEXT = unsafePerformIO $ getCommand "glGetSeparableFilterEXT"
+
+-- glGetShaderInfoLog ----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetShaderInfoLog.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGetShaderInfoLog.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetShaderInfoLog.xhtml OpenGL 4.x>.
+glGetShaderInfoLog
+  :: MonadIO m
+  => GLuint -- ^ @shader@.
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
+  -> Ptr GLchar -- ^ @infoLog@ pointing to @bufSize@ elements of type @GLchar@.
+  -> m ()
+glGetShaderInfoLog v1 v2 v3 v4 = liftIO $ dyn345 ptr_glGetShaderInfoLog v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetShaderInfoLog #-}
+ptr_glGetShaderInfoLog :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+ptr_glGetShaderInfoLog = unsafePerformIO $ getCommand "glGetShaderInfoLog"
+
+-- glGetShaderPrecisionFormat --------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetShaderPrecisionFormat.xhtml OpenGL 4.x>.
+glGetShaderPrecisionFormat
+  :: MonadIO m
+  => GLenum -- ^ @shadertype@ of type [ShaderType](Graphics-GL-Groups.html#ShaderType).
+  -> GLenum -- ^ @precisiontype@ of type [PrecisionType](Graphics-GL-Groups.html#PrecisionType).
+  -> Ptr GLint -- ^ @range@ pointing to @2@ elements of type @GLint@.
+  -> Ptr GLint -- ^ @precision@ pointing to @1@ element of type @GLint@.
+  -> m ()
+glGetShaderPrecisionFormat v1 v2 v3 v4 = liftIO $ dyn421 ptr_glGetShaderPrecisionFormat v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetShaderPrecisionFormat #-}
+ptr_glGetShaderPrecisionFormat :: FunPtr (GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> IO ())
+ptr_glGetShaderPrecisionFormat = unsafePerformIO $ getCommand "glGetShaderPrecisionFormat"
+
+-- glGetShaderSource -----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetShaderSource.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGetShaderSource.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetShaderSource.xhtml OpenGL 4.x>.
+glGetShaderSource
+  :: MonadIO m
+  => GLuint -- ^ @shader@.
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
+  -> Ptr GLchar -- ^ @source@ pointing to @bufSize@ elements of type @GLchar@.
+  -> m ()
+glGetShaderSource v1 v2 v3 v4 = liftIO $ dyn345 ptr_glGetShaderSource v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetShaderSource #-}
+ptr_glGetShaderSource :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+ptr_glGetShaderSource = unsafePerformIO $ getCommand "glGetShaderSource"
+
+-- glGetShaderSourceARB --------------------------------------------------------
+
+-- | This command is an alias for 'glGetShaderSource'.
+glGetShaderSourceARB
+  :: MonadIO m
+  => GLhandleARB -- ^ @obj@ of type @handleARB@.
+  -> GLsizei -- ^ @maxLength@.
+  -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
+  -> Ptr GLcharARB -- ^ @source@ pointing to @maxLength@ elements of type @GLcharARB@.
+  -> m ()
+glGetShaderSourceARB v1 v2 v3 v4 = liftIO $ dyn353 ptr_glGetShaderSourceARB v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetShaderSourceARB #-}
+ptr_glGetShaderSourceARB :: FunPtr (GLhandleARB -> GLsizei -> Ptr GLsizei -> Ptr GLcharARB -> IO ())
+ptr_glGetShaderSourceARB = unsafePerformIO $ getCommand "glGetShaderSourceARB"
+
+-- glGetShaderiv ---------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetShader.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGetShader.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetShader.xhtml OpenGL 4.x>.
+glGetShaderiv
+  :: MonadIO m
+  => GLuint -- ^ @shader@.
+  -> GLenum -- ^ @pname@ of type [ShaderParameterName](Graphics-GL-Groups.html#ShaderParameterName).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetShaderiv v1 v2 v3 = liftIO $ dyn348 ptr_glGetShaderiv v1 v2 v3
+
+{-# NOINLINE ptr_glGetShaderiv #-}
+ptr_glGetShaderiv :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetShaderiv = unsafePerformIO $ getCommand "glGetShaderiv"
+
+-- glGetShadingRateImagePaletteNV ----------------------------------------------
+
+glGetShadingRateImagePaletteNV
+  :: MonadIO m
+  => GLuint -- ^ @viewport@.
+  -> GLuint -- ^ @entry@.
+  -> Ptr GLenum -- ^ @rate@ pointing to @1@ element of type @GLenum@.
+  -> m ()
+glGetShadingRateImagePaletteNV v1 v2 v3 = liftIO $ dyn422 ptr_glGetShadingRateImagePaletteNV v1 v2 v3
+
+{-# NOINLINE ptr_glGetShadingRateImagePaletteNV #-}
+ptr_glGetShadingRateImagePaletteNV :: FunPtr (GLuint -> GLuint -> Ptr GLenum -> IO ())
+ptr_glGetShadingRateImagePaletteNV = unsafePerformIO $ getCommand "glGetShadingRateImagePaletteNV"
+
+-- glGetShadingRateSampleLocationivNV ------------------------------------------
+
+glGetShadingRateSampleLocationivNV
+  :: MonadIO m
+  => GLenum -- ^ @rate@.
+  -> GLuint -- ^ @samples@.
+  -> GLuint -- ^ @index@.
+  -> Ptr GLint -- ^ @location@ pointing to @3@ elements of type @GLint@.
+  -> m ()
+glGetShadingRateSampleLocationivNV v1 v2 v3 v4 = liftIO $ dyn423 ptr_glGetShadingRateSampleLocationivNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetShadingRateSampleLocationivNV #-}
+ptr_glGetShadingRateSampleLocationivNV :: FunPtr (GLenum -> GLuint -> GLuint -> Ptr GLint -> IO ())
+ptr_glGetShadingRateSampleLocationivNV = unsafePerformIO $ getCommand "glGetShadingRateSampleLocationivNV"
+
+-- glGetSharpenTexFuncSGIS -----------------------------------------------------
+
+glGetSharpenTexFuncSGIS
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> Ptr GLfloat -- ^ @points@ pointing to @COMPSIZE(target)@ elements of type @GLfloat@.
+  -> m ()
+glGetSharpenTexFuncSGIS v1 v2 = liftIO $ dyn101 ptr_glGetSharpenTexFuncSGIS v1 v2
+
+{-# NOINLINE ptr_glGetSharpenTexFuncSGIS #-}
+ptr_glGetSharpenTexFuncSGIS :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetSharpenTexFuncSGIS = unsafePerformIO $ getCommand "glGetSharpenTexFuncSGIS"
+
+-- glGetStageIndexNV -----------------------------------------------------------
+
+glGetStageIndexNV
+  :: MonadIO m
+  => GLenum -- ^ @shadertype@ of type [ShaderType](Graphics-GL-Groups.html#ShaderType).
+  -> m GLushort
+glGetStageIndexNV v1 = liftIO $ dyn424 ptr_glGetStageIndexNV v1
+
+{-# NOINLINE ptr_glGetStageIndexNV #-}
+ptr_glGetStageIndexNV :: FunPtr (GLenum -> IO GLushort)
+ptr_glGetStageIndexNV = unsafePerformIO $ getCommand "glGetStageIndexNV"
+
+-- glGetString -----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetString.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGetString.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetString.xhtml OpenGL 4.x>.
+glGetString
+  :: MonadIO m
+  => GLenum -- ^ @name@ of type [StringName](Graphics-GL-Groups.html#StringName).
+  -> m (Ptr GLubyte) -- ^ pointing to elements of type @String@.
+glGetString v1 = liftIO $ dyn425 ptr_glGetString v1
+
+{-# NOINLINE ptr_glGetString #-}
+ptr_glGetString :: FunPtr (GLenum -> IO (Ptr GLubyte))
+ptr_glGetString = unsafePerformIO $ getCommand "glGetString"
+
+-- glGetStringi ----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGetString.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetString.xhtml OpenGL 4.x>.
+glGetStringi
+  :: MonadIO m
+  => GLenum -- ^ @name@ of type [StringName](Graphics-GL-Groups.html#StringName).
+  -> GLuint -- ^ @index@.
+  -> m (Ptr GLubyte) -- ^ pointing to elements of type @String@.
+glGetStringi v1 v2 = liftIO $ dyn426 ptr_glGetStringi v1 v2
+
+{-# NOINLINE ptr_glGetStringi #-}
+ptr_glGetStringi :: FunPtr (GLenum -> GLuint -> IO (Ptr GLubyte))
+ptr_glGetStringi = unsafePerformIO $ getCommand "glGetStringi"
+
+-- glGetSubroutineIndex --------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetSubroutineIndex.xhtml OpenGL 4.x>.
+glGetSubroutineIndex
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLenum -- ^ @shadertype@ of type [ShaderType](Graphics-GL-Groups.html#ShaderType).
+  -> Ptr GLchar -- ^ @name@.
+  -> m GLuint
+glGetSubroutineIndex v1 v2 v3 = liftIO $ dyn413 ptr_glGetSubroutineIndex v1 v2 v3
+
+{-# NOINLINE ptr_glGetSubroutineIndex #-}
+ptr_glGetSubroutineIndex :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLuint)
+ptr_glGetSubroutineIndex = unsafePerformIO $ getCommand "glGetSubroutineIndex"
+
+-- glGetSubroutineUniformLocation ----------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetSubroutineUniformLocation.xhtml OpenGL 4.x>.
+glGetSubroutineUniformLocation
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLenum -- ^ @shadertype@ of type [ShaderType](Graphics-GL-Groups.html#ShaderType).
+  -> Ptr GLchar -- ^ @name@.
+  -> m GLint
+glGetSubroutineUniformLocation v1 v2 v3 = liftIO $ dyn414 ptr_glGetSubroutineUniformLocation v1 v2 v3
+
+{-# NOINLINE ptr_glGetSubroutineUniformLocation #-}
+ptr_glGetSubroutineUniformLocation :: FunPtr (GLuint -> GLenum -> Ptr GLchar -> IO GLint)
+ptr_glGetSubroutineUniformLocation = unsafePerformIO $ getCommand "glGetSubroutineUniformLocation"
+
+-- glGetSynciv -----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGetSync.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetSync.xhtml OpenGL 4.x>.
+glGetSynciv
+  :: MonadIO m
+  => GLsync -- ^ @sync@ of type @sync@.
+  -> GLenum -- ^ @pname@ of type [SyncParameterName](Graphics-GL-Groups.html#SyncParameterName).
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
+  -> Ptr GLint -- ^ @values@ pointing to @count@ elements of type @GLint@.
+  -> m ()
+glGetSynciv v1 v2 v3 v4 v5 = liftIO $ dyn427 ptr_glGetSynciv v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glGetSynciv #-}
+ptr_glGetSynciv :: FunPtr (GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> IO ())
+ptr_glGetSynciv = unsafePerformIO $ getCommand "glGetSynciv"
+
+-- glGetSyncivAPPLE ------------------------------------------------------------
+
+-- | This command is an alias for 'glGetSynciv'.
+glGetSyncivAPPLE
+  :: MonadIO m
+  => GLsync -- ^ @sync@.
+  -> GLenum -- ^ @pname@ of type [SyncParameterName](Graphics-GL-Groups.html#SyncParameterName).
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLsizei -- ^ @length@.
+  -> Ptr GLint -- ^ @values@ pointing to @count@ elements of type @GLint@.
+  -> m ()
+glGetSyncivAPPLE v1 v2 v3 v4 v5 = liftIO $ dyn427 ptr_glGetSyncivAPPLE v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glGetSyncivAPPLE #-}
+ptr_glGetSyncivAPPLE :: FunPtr (GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> IO ())
+ptr_glGetSyncivAPPLE = unsafePerformIO $ getCommand "glGetSyncivAPPLE"
+
+-- glGetTexBumpParameterfvATI --------------------------------------------------
+
+glGetTexBumpParameterfvATI
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [GetTexBumpParameterATI](Graphics-GL-Groups.html#GetTexBumpParameterATI).
+  -> Ptr GLfloat -- ^ @param@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
+  -> m ()
+glGetTexBumpParameterfvATI v1 v2 = liftIO $ dyn101 ptr_glGetTexBumpParameterfvATI v1 v2
+
+{-# NOINLINE ptr_glGetTexBumpParameterfvATI #-}
+ptr_glGetTexBumpParameterfvATI :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetTexBumpParameterfvATI = unsafePerformIO $ getCommand "glGetTexBumpParameterfvATI"
+
+-- glGetTexBumpParameterivATI --------------------------------------------------
+
+glGetTexBumpParameterivATI
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [GetTexBumpParameterATI](Graphics-GL-Groups.html#GetTexBumpParameterATI).
+  -> Ptr GLint -- ^ @param@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetTexBumpParameterivATI v1 v2 = liftIO $ dyn143 ptr_glGetTexBumpParameterivATI v1 v2
+
+{-# NOINLINE ptr_glGetTexBumpParameterivATI #-}
+ptr_glGetTexBumpParameterivATI :: FunPtr (GLenum -> Ptr GLint -> IO ())
+ptr_glGetTexBumpParameterivATI = unsafePerformIO $ getCommand "glGetTexBumpParameterivATI"
+
+-- glGetTexEnvfv ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexEnv.xml OpenGL 2.x>.
+glGetTexEnvfv
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureEnvTarget](Graphics-GL-Groups.html#TextureEnvTarget).
+  -> GLenum -- ^ @pname@ of type [TextureEnvParameter](Graphics-GL-Groups.html#TextureEnvParameter).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
+  -> m ()
+glGetTexEnvfv v1 v2 v3 = liftIO $ dyn139 ptr_glGetTexEnvfv v1 v2 v3
+
+{-# NOINLINE ptr_glGetTexEnvfv #-}
+ptr_glGetTexEnvfv :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetTexEnvfv = unsafePerformIO $ getCommand "glGetTexEnvfv"
+
+-- glGetTexEnviv ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexEnv.xml OpenGL 2.x>.
+glGetTexEnviv
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureEnvTarget](Graphics-GL-Groups.html#TextureEnvTarget).
+  -> GLenum -- ^ @pname@ of type [TextureEnvParameter](Graphics-GL-Groups.html#TextureEnvParameter).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetTexEnviv v1 v2 v3 = liftIO $ dyn140 ptr_glGetTexEnviv v1 v2 v3
+
+{-# NOINLINE ptr_glGetTexEnviv #-}
+ptr_glGetTexEnviv :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetTexEnviv = unsafePerformIO $ getCommand "glGetTexEnviv"
+
+-- glGetTexEnvxv ---------------------------------------------------------------
+
+glGetTexEnvxv
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureEnvTarget](Graphics-GL-Groups.html#TextureEnvTarget).
+  -> GLenum -- ^ @pname@ of type [TextureEnvParameter](Graphics-GL-Groups.html#TextureEnvParameter).
+  -> Ptr GLfixed -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfixed@.
+  -> m ()
+glGetTexEnvxv v1 v2 v3 = liftIO $ dyn170 ptr_glGetTexEnvxv v1 v2 v3
+
+{-# NOINLINE ptr_glGetTexEnvxv #-}
+ptr_glGetTexEnvxv :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+ptr_glGetTexEnvxv = unsafePerformIO $ getCommand "glGetTexEnvxv"
+
+-- glGetTexEnvxvOES ------------------------------------------------------------
+
+glGetTexEnvxvOES
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureEnvTarget](Graphics-GL-Groups.html#TextureEnvTarget).
+  -> GLenum -- ^ @pname@ of type [TextureEnvParameter](Graphics-GL-Groups.html#TextureEnvParameter).
+  -> Ptr GLfixed -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfixed@.
+  -> m ()
+glGetTexEnvxvOES v1 v2 v3 = liftIO $ dyn170 ptr_glGetTexEnvxvOES v1 v2 v3
+
+{-# NOINLINE ptr_glGetTexEnvxvOES #-}
+ptr_glGetTexEnvxvOES :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+ptr_glGetTexEnvxvOES = unsafePerformIO $ getCommand "glGetTexEnvxvOES"
+
+-- glGetTexFilterFuncSGIS ------------------------------------------------------
+
+glGetTexFilterFuncSGIS
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLenum -- ^ @filter@ of type [TextureFilterSGIS](Graphics-GL-Groups.html#TextureFilterSGIS).
+  -> Ptr GLfloat -- ^ @weights@ pointing to @COMPSIZE(target,filter)@ elements of type @GLfloat@.
+  -> m ()
+glGetTexFilterFuncSGIS v1 v2 v3 = liftIO $ dyn139 ptr_glGetTexFilterFuncSGIS v1 v2 v3
+
+{-# NOINLINE ptr_glGetTexFilterFuncSGIS #-}
+ptr_glGetTexFilterFuncSGIS :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetTexFilterFuncSGIS = unsafePerformIO $ getCommand "glGetTexFilterFuncSGIS"
+
+-- glGetTexGendv ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexGen.xml OpenGL 2.x>.
+glGetTexGendv
+  :: MonadIO m
+  => GLenum -- ^ @coord@ of type [TextureCoordName](Graphics-GL-Groups.html#TextureCoordName).
+  -> GLenum -- ^ @pname@ of type [TextureGenParameter](Graphics-GL-Groups.html#TextureGenParameter).
+  -> Ptr GLdouble -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLdouble@.
+  -> m ()
+glGetTexGendv v1 v2 v3 = liftIO $ dyn368 ptr_glGetTexGendv v1 v2 v3
+
+{-# NOINLINE ptr_glGetTexGendv #-}
+ptr_glGetTexGendv :: FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ())
+ptr_glGetTexGendv = unsafePerformIO $ getCommand "glGetTexGendv"
+
+-- glGetTexGenfv ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexGen.xml OpenGL 2.x>.
+glGetTexGenfv
+  :: MonadIO m
+  => GLenum -- ^ @coord@ of type [TextureCoordName](Graphics-GL-Groups.html#TextureCoordName).
+  -> GLenum -- ^ @pname@ of type [TextureGenParameter](Graphics-GL-Groups.html#TextureGenParameter).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
+  -> m ()
+glGetTexGenfv v1 v2 v3 = liftIO $ dyn139 ptr_glGetTexGenfv v1 v2 v3
+
+{-# NOINLINE ptr_glGetTexGenfv #-}
+ptr_glGetTexGenfv :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetTexGenfv = unsafePerformIO $ getCommand "glGetTexGenfv"
+
+-- glGetTexGenfvOES ------------------------------------------------------------
+
+glGetTexGenfvOES
+  :: MonadIO m
+  => GLenum -- ^ @coord@ of type [TextureCoordName](Graphics-GL-Groups.html#TextureCoordName).
+  -> GLenum -- ^ @pname@ of type [TextureGenParameter](Graphics-GL-Groups.html#TextureGenParameter).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
+  -> m ()
+glGetTexGenfvOES v1 v2 v3 = liftIO $ dyn139 ptr_glGetTexGenfvOES v1 v2 v3
+
+{-# NOINLINE ptr_glGetTexGenfvOES #-}
+ptr_glGetTexGenfvOES :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetTexGenfvOES = unsafePerformIO $ getCommand "glGetTexGenfvOES"
+
+-- glGetTexGeniv ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexGen.xml OpenGL 2.x>.
+glGetTexGeniv
+  :: MonadIO m
+  => GLenum -- ^ @coord@ of type [TextureCoordName](Graphics-GL-Groups.html#TextureCoordName).
+  -> GLenum -- ^ @pname@ of type [TextureGenParameter](Graphics-GL-Groups.html#TextureGenParameter).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetTexGeniv v1 v2 v3 = liftIO $ dyn140 ptr_glGetTexGeniv v1 v2 v3
+
+{-# NOINLINE ptr_glGetTexGeniv #-}
+ptr_glGetTexGeniv :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetTexGeniv = unsafePerformIO $ getCommand "glGetTexGeniv"
+
+-- glGetTexGenivOES ------------------------------------------------------------
+
+glGetTexGenivOES
+  :: MonadIO m
+  => GLenum -- ^ @coord@ of type [TextureCoordName](Graphics-GL-Groups.html#TextureCoordName).
+  -> GLenum -- ^ @pname@ of type [TextureGenParameter](Graphics-GL-Groups.html#TextureGenParameter).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetTexGenivOES v1 v2 v3 = liftIO $ dyn140 ptr_glGetTexGenivOES v1 v2 v3
+
+{-# NOINLINE ptr_glGetTexGenivOES #-}
+ptr_glGetTexGenivOES :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetTexGenivOES = unsafePerformIO $ getCommand "glGetTexGenivOES"
+
+-- glGetTexGenxvOES ------------------------------------------------------------
+
+glGetTexGenxvOES
+  :: MonadIO m
+  => GLenum -- ^ @coord@ of type [TextureCoordName](Graphics-GL-Groups.html#TextureCoordName).
+  -> GLenum -- ^ @pname@ of type [TextureGenParameter](Graphics-GL-Groups.html#TextureGenParameter).
+  -> Ptr GLfixed -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfixed@.
+  -> m ()
+glGetTexGenxvOES v1 v2 v3 = liftIO $ dyn170 ptr_glGetTexGenxvOES v1 v2 v3
+
+{-# NOINLINE ptr_glGetTexGenxvOES #-}
+ptr_glGetTexGenxvOES :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+ptr_glGetTexGenxvOES = unsafePerformIO $ getCommand "glGetTexGenxvOES"
+
+-- glGetTexImage ---------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexImage.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexImage.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetTexImage.xhtml OpenGL 4.x>.
+glGetTexImage
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @pixels@ pointing to @COMPSIZE(target,level,format,type)@ elements of type @a@.
+  -> m ()
+glGetTexImage v1 v2 v3 v4 v5 = liftIO $ dyn428 ptr_glGetTexImage v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glGetTexImage #-}
+ptr_glGetTexImage :: FunPtr (GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glGetTexImage = unsafePerformIO $ getCommand "glGetTexImage"
+
+-- glGetTexLevelParameterfv ----------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexLevelParameter.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexLevelParameter.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetTexLevelParameter.xhtml OpenGL 4.x>.
+glGetTexLevelParameterfv
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLenum -- ^ @pname@ of type [GetTextureParameter](Graphics-GL-Groups.html#GetTextureParameter).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
+  -> m ()
+glGetTexLevelParameterfv v1 v2 v3 v4 = liftIO $ dyn429 ptr_glGetTexLevelParameterfv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetTexLevelParameterfv #-}
+ptr_glGetTexLevelParameterfv :: FunPtr (GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetTexLevelParameterfv = unsafePerformIO $ getCommand "glGetTexLevelParameterfv"
+
+-- glGetTexLevelParameteriv ----------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexLevelParameter.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexLevelParameter.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetTexLevelParameter.xhtml OpenGL 4.x>.
+glGetTexLevelParameteriv
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLenum -- ^ @pname@ of type [GetTextureParameter](Graphics-GL-Groups.html#GetTextureParameter).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetTexLevelParameteriv v1 v2 v3 v4 = liftIO $ dyn430 ptr_glGetTexLevelParameteriv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetTexLevelParameteriv #-}
+ptr_glGetTexLevelParameteriv :: FunPtr (GLenum -> GLint -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetTexLevelParameteriv = unsafePerformIO $ getCommand "glGetTexLevelParameteriv"
+
+-- glGetTexLevelParameterxvOES -------------------------------------------------
+
+glGetTexLevelParameterxvOES
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@.
+  -> GLenum -- ^ @pname@ of type [GetTextureParameter](Graphics-GL-Groups.html#GetTextureParameter).
+  -> Ptr GLfixed -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfixed@.
+  -> m ()
+glGetTexLevelParameterxvOES v1 v2 v3 v4 = liftIO $ dyn431 ptr_glGetTexLevelParameterxvOES v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetTexLevelParameterxvOES #-}
+ptr_glGetTexLevelParameterxvOES :: FunPtr (GLenum -> GLint -> GLenum -> Ptr GLfixed -> IO ())
+ptr_glGetTexLevelParameterxvOES = unsafePerformIO $ getCommand "glGetTexLevelParameterxvOES"
+
+-- glGetTexParameterIiv --------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexParameter.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetTexParameter.xhtml OpenGL 4.x>.
+glGetTexParameterIiv
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLenum -- ^ @pname@ of type [GetTextureParameter](Graphics-GL-Groups.html#GetTextureParameter).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetTexParameterIiv v1 v2 v3 = liftIO $ dyn140 ptr_glGetTexParameterIiv v1 v2 v3
+
+{-# NOINLINE ptr_glGetTexParameterIiv #-}
+ptr_glGetTexParameterIiv :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetTexParameterIiv = unsafePerformIO $ getCommand "glGetTexParameterIiv"
+
+-- glGetTexParameterIivEXT -----------------------------------------------------
+
+-- | This command is an alias for 'glGetTexParameterIiv'.
+glGetTexParameterIivEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLenum -- ^ @pname@ of type [GetTextureParameter](Graphics-GL-Groups.html#GetTextureParameter).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetTexParameterIivEXT v1 v2 v3 = liftIO $ dyn140 ptr_glGetTexParameterIivEXT v1 v2 v3
+
+{-# NOINLINE ptr_glGetTexParameterIivEXT #-}
+ptr_glGetTexParameterIivEXT :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetTexParameterIivEXT = unsafePerformIO $ getCommand "glGetTexParameterIivEXT"
+
+-- glGetTexParameterIivOES -----------------------------------------------------
+
+-- | This command is an alias for 'glGetTexParameterIiv'.
+glGetTexParameterIivOES
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLenum -- ^ @pname@ of type [GetTextureParameter](Graphics-GL-Groups.html#GetTextureParameter).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetTexParameterIivOES v1 v2 v3 = liftIO $ dyn140 ptr_glGetTexParameterIivOES v1 v2 v3
+
+{-# NOINLINE ptr_glGetTexParameterIivOES #-}
+ptr_glGetTexParameterIivOES :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetTexParameterIivOES = unsafePerformIO $ getCommand "glGetTexParameterIivOES"
+
+-- glGetTexParameterIuiv -------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexParameter.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetTexParameter.xhtml OpenGL 4.x>.
+glGetTexParameterIuiv
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLenum -- ^ @pname@ of type [GetTextureParameter](Graphics-GL-Groups.html#GetTextureParameter).
+  -> Ptr GLuint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLuint@.
+  -> m ()
+glGetTexParameterIuiv v1 v2 v3 = liftIO $ dyn432 ptr_glGetTexParameterIuiv v1 v2 v3
+
+{-# NOINLINE ptr_glGetTexParameterIuiv #-}
+ptr_glGetTexParameterIuiv :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
+ptr_glGetTexParameterIuiv = unsafePerformIO $ getCommand "glGetTexParameterIuiv"
+
diff --git a/src/Graphics/GL/Functions/F13.hs b/src/Graphics/GL/Functions/F13.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Functions/F13.hs
@@ -0,0 +1,1606 @@
+{-# OPTIONS_HADDOCK hide #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Functions.F13
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- Raw functions from the
+-- <http://www.opengl.org/registry/ OpenGL registry>.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Functions.F13 (
+  glGetTexParameterIuivEXT,
+  glGetTexParameterIuivOES,
+  glGetTexParameterPointervAPPLE,
+  glGetTexParameterfv,
+  glGetTexParameteriv,
+  glGetTexParameterxv,
+  glGetTexParameterxvOES,
+  glGetTextureHandleARB,
+  glGetTextureHandleIMG,
+  glGetTextureHandleNV,
+  glGetTextureImage,
+  glGetTextureImageEXT,
+  glGetTextureLevelParameterfv,
+  glGetTextureLevelParameterfvEXT,
+  glGetTextureLevelParameteriv,
+  glGetTextureLevelParameterivEXT,
+  glGetTextureParameterIiv,
+  glGetTextureParameterIivEXT,
+  glGetTextureParameterIuiv,
+  glGetTextureParameterIuivEXT,
+  glGetTextureParameterfv,
+  glGetTextureParameterfvEXT,
+  glGetTextureParameteriv,
+  glGetTextureParameterivEXT,
+  glGetTextureSamplerHandleARB,
+  glGetTextureSamplerHandleIMG,
+  glGetTextureSamplerHandleNV,
+  glGetTextureSubImage,
+  glGetTrackMatrixivNV,
+  glGetTransformFeedbackVarying,
+  glGetTransformFeedbackVaryingEXT,
+  glGetTransformFeedbackVaryingNV,
+  glGetTransformFeedbacki64_v,
+  glGetTransformFeedbacki_v,
+  glGetTransformFeedbackiv,
+  glGetTranslatedShaderSourceANGLE,
+  glGetUniformBlockIndex,
+  glGetUniformBufferSizeEXT,
+  glGetUniformIndices,
+  glGetUniformLocation,
+  glGetUniformLocationARB,
+  glGetUniformOffsetEXT,
+  glGetUniformSubroutineuiv,
+  glGetUniformdv,
+  glGetUniformfv,
+  glGetUniformfvARB,
+  glGetUniformi64vARB,
+  glGetUniformi64vNV,
+  glGetUniformiv,
+  glGetUniformivARB,
+  glGetUniformui64vARB,
+  glGetUniformui64vNV,
+  glGetUniformuiv,
+  glGetUniformuivEXT,
+  glGetUnsignedBytei_vEXT,
+  glGetUnsignedBytevEXT,
+  glGetVariantArrayObjectfvATI,
+  glGetVariantArrayObjectivATI,
+  glGetVariantBooleanvEXT,
+  glGetVariantFloatvEXT,
+  glGetVariantIntegervEXT,
+  glGetVariantPointervEXT,
+  glGetVaryingLocationNV,
+  glGetVertexArrayIndexed64iv,
+  glGetVertexArrayIndexediv,
+  glGetVertexArrayIntegeri_vEXT,
+  glGetVertexArrayIntegervEXT,
+  glGetVertexArrayPointeri_vEXT,
+  glGetVertexArrayPointervEXT,
+  glGetVertexArrayiv,
+  glGetVertexAttribArrayObjectfvATI,
+  glGetVertexAttribArrayObjectivATI,
+  glGetVertexAttribIiv,
+  glGetVertexAttribIivEXT,
+  glGetVertexAttribIuiv,
+  glGetVertexAttribIuivEXT,
+  glGetVertexAttribLdv,
+  glGetVertexAttribLdvEXT,
+  glGetVertexAttribLi64vNV,
+  glGetVertexAttribLui64vARB,
+  glGetVertexAttribLui64vNV,
+  glGetVertexAttribPointerv,
+  glGetVertexAttribPointervARB,
+  glGetVertexAttribPointervNV,
+  glGetVertexAttribdv,
+  glGetVertexAttribdvARB,
+  glGetVertexAttribdvNV,
+  glGetVertexAttribfv,
+  glGetVertexAttribfvARB,
+  glGetVertexAttribfvNV,
+  glGetVertexAttribiv,
+  glGetVertexAttribivARB,
+  glGetVertexAttribivNV,
+  glGetVideoCaptureStreamdvNV,
+  glGetVideoCaptureStreamfvNV,
+  glGetVideoCaptureStreamivNV,
+  glGetVideoCaptureivNV,
+  glGetVideoi64vNV,
+  glGetVideoivNV,
+  glGetVideoui64vNV
+) where
+
+import Control.Monad.IO.Class ( MonadIO(..) )
+import Foreign.Ptr
+import Graphics.GL.Foreign
+import Graphics.GL.Types
+import System.IO.Unsafe ( unsafePerformIO )
+
+-- glGetTexParameterIuivEXT ----------------------------------------------------
+
+-- | This command is an alias for 'glGetTexParameterIuiv'.
+glGetTexParameterIuivEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLenum -- ^ @pname@ of type [GetTextureParameter](Graphics-GL-Groups.html#GetTextureParameter).
+  -> Ptr GLuint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLuint@.
+  -> m ()
+glGetTexParameterIuivEXT v1 v2 v3 = liftIO $ dyn432 ptr_glGetTexParameterIuivEXT v1 v2 v3
+
+{-# NOINLINE ptr_glGetTexParameterIuivEXT #-}
+ptr_glGetTexParameterIuivEXT :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
+ptr_glGetTexParameterIuivEXT = unsafePerformIO $ getCommand "glGetTexParameterIuivEXT"
+
+-- glGetTexParameterIuivOES ----------------------------------------------------
+
+-- | This command is an alias for 'glGetTexParameterIuiv'.
+glGetTexParameterIuivOES
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLenum -- ^ @pname@ of type [GetTextureParameter](Graphics-GL-Groups.html#GetTextureParameter).
+  -> Ptr GLuint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLuint@.
+  -> m ()
+glGetTexParameterIuivOES v1 v2 v3 = liftIO $ dyn432 ptr_glGetTexParameterIuivOES v1 v2 v3
+
+{-# NOINLINE ptr_glGetTexParameterIuivOES #-}
+ptr_glGetTexParameterIuivOES :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
+ptr_glGetTexParameterIuivOES = unsafePerformIO $ getCommand "glGetTexParameterIuivOES"
+
+-- glGetTexParameterPointervAPPLE ----------------------------------------------
+
+glGetTexParameterPointervAPPLE
+  :: MonadIO m
+  => GLenum -- ^ @target@.
+  -> GLenum -- ^ @pname@.
+  -> Ptr (Ptr a) -- ^ @params@ pointing to @1@ element of type @Ptr a@.
+  -> m ()
+glGetTexParameterPointervAPPLE v1 v2 v3 = liftIO $ dyn330 ptr_glGetTexParameterPointervAPPLE v1 v2 v3
+
+{-# NOINLINE ptr_glGetTexParameterPointervAPPLE #-}
+ptr_glGetTexParameterPointervAPPLE :: FunPtr (GLenum -> GLenum -> Ptr (Ptr a) -> IO ())
+ptr_glGetTexParameterPointervAPPLE = unsafePerformIO $ getCommand "glGetTexParameterPointervAPPLE"
+
+-- glGetTexParameterfv ---------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexParameter.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexParameter.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetTexParameter.xhtml OpenGL 4.x>.
+glGetTexParameterfv
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLenum -- ^ @pname@ of type [GetTextureParameter](Graphics-GL-Groups.html#GetTextureParameter).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
+  -> m ()
+glGetTexParameterfv v1 v2 v3 = liftIO $ dyn139 ptr_glGetTexParameterfv v1 v2 v3
+
+{-# NOINLINE ptr_glGetTexParameterfv #-}
+ptr_glGetTexParameterfv :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetTexParameterfv = unsafePerformIO $ getCommand "glGetTexParameterfv"
+
+-- glGetTexParameteriv ---------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexParameter.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexParameter.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetTexParameter.xhtml OpenGL 4.x>.
+glGetTexParameteriv
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLenum -- ^ @pname@ of type [GetTextureParameter](Graphics-GL-Groups.html#GetTextureParameter).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetTexParameteriv v1 v2 v3 = liftIO $ dyn140 ptr_glGetTexParameteriv v1 v2 v3
+
+{-# NOINLINE ptr_glGetTexParameteriv #-}
+ptr_glGetTexParameteriv :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetTexParameteriv = unsafePerformIO $ getCommand "glGetTexParameteriv"
+
+-- glGetTexParameterxv ---------------------------------------------------------
+
+glGetTexParameterxv
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLenum -- ^ @pname@ of type [GetTextureParameter](Graphics-GL-Groups.html#GetTextureParameter).
+  -> Ptr GLfixed -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfixed@.
+  -> m ()
+glGetTexParameterxv v1 v2 v3 = liftIO $ dyn170 ptr_glGetTexParameterxv v1 v2 v3
+
+{-# NOINLINE ptr_glGetTexParameterxv #-}
+ptr_glGetTexParameterxv :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+ptr_glGetTexParameterxv = unsafePerformIO $ getCommand "glGetTexParameterxv"
+
+-- glGetTexParameterxvOES ------------------------------------------------------
+
+glGetTexParameterxvOES
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLenum -- ^ @pname@ of type [GetTextureParameter](Graphics-GL-Groups.html#GetTextureParameter).
+  -> Ptr GLfixed -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfixed@.
+  -> m ()
+glGetTexParameterxvOES v1 v2 v3 = liftIO $ dyn170 ptr_glGetTexParameterxvOES v1 v2 v3
+
+{-# NOINLINE ptr_glGetTexParameterxvOES #-}
+ptr_glGetTexParameterxvOES :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+ptr_glGetTexParameterxvOES = unsafePerformIO $ getCommand "glGetTexParameterxvOES"
+
+-- glGetTextureHandleARB -------------------------------------------------------
+
+glGetTextureHandleARB
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> m GLuint64
+glGetTextureHandleARB v1 = liftIO $ dyn433 ptr_glGetTextureHandleARB v1
+
+{-# NOINLINE ptr_glGetTextureHandleARB #-}
+ptr_glGetTextureHandleARB :: FunPtr (GLuint -> IO GLuint64)
+ptr_glGetTextureHandleARB = unsafePerformIO $ getCommand "glGetTextureHandleARB"
+
+-- glGetTextureHandleIMG -------------------------------------------------------
+
+-- | This command is an alias for 'glGetTextureHandleARB'.
+glGetTextureHandleIMG
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> m GLuint64
+glGetTextureHandleIMG v1 = liftIO $ dyn433 ptr_glGetTextureHandleIMG v1
+
+{-# NOINLINE ptr_glGetTextureHandleIMG #-}
+ptr_glGetTextureHandleIMG :: FunPtr (GLuint -> IO GLuint64)
+ptr_glGetTextureHandleIMG = unsafePerformIO $ getCommand "glGetTextureHandleIMG"
+
+-- glGetTextureHandleNV --------------------------------------------------------
+
+glGetTextureHandleNV
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> m GLuint64
+glGetTextureHandleNV v1 = liftIO $ dyn433 ptr_glGetTextureHandleNV v1
+
+{-# NOINLINE ptr_glGetTextureHandleNV #-}
+ptr_glGetTextureHandleNV :: FunPtr (GLuint -> IO GLuint64)
+ptr_glGetTextureHandleNV = unsafePerformIO $ getCommand "glGetTextureHandleNV"
+
+-- glGetTextureImage -----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetTexImage.xhtml OpenGL 4.x>.
+glGetTextureImage
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLint -- ^ @level@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr a -- ^ @pixels@.
+  -> m ()
+glGetTextureImage v1 v2 v3 v4 v5 v6 = liftIO $ dyn434 ptr_glGetTextureImage v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glGetTextureImage #-}
+ptr_glGetTextureImage :: FunPtr (GLuint -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glGetTextureImage = unsafePerformIO $ getCommand "glGetTextureImage"
+
+-- glGetTextureImageEXT --------------------------------------------------------
+
+glGetTextureImageEXT
+  :: MonadIO m
+  => GLuint -- ^ @texture@ of type @Texture@.
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @pixels@ pointing to @COMPSIZE(target,level,format,type)@ elements of type @a@.
+  -> m ()
+glGetTextureImageEXT v1 v2 v3 v4 v5 v6 = liftIO $ dyn435 ptr_glGetTextureImageEXT v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glGetTextureImageEXT #-}
+ptr_glGetTextureImageEXT :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glGetTextureImageEXT = unsafePerformIO $ getCommand "glGetTextureImageEXT"
+
+-- glGetTextureLevelParameterfv ------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetTexLevelParameter.xhtml OpenGL 4.x>.
+glGetTextureLevelParameterfv
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLint -- ^ @level@.
+  -> GLenum -- ^ @pname@ of type [GetTextureParameter](Graphics-GL-Groups.html#GetTextureParameter).
+  -> Ptr GLfloat -- ^ @params@.
+  -> m ()
+glGetTextureLevelParameterfv v1 v2 v3 v4 = liftIO $ dyn436 ptr_glGetTextureLevelParameterfv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetTextureLevelParameterfv #-}
+ptr_glGetTextureLevelParameterfv :: FunPtr (GLuint -> GLint -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetTextureLevelParameterfv = unsafePerformIO $ getCommand "glGetTextureLevelParameterfv"
+
+-- glGetTextureLevelParameterfvEXT ---------------------------------------------
+
+glGetTextureLevelParameterfvEXT
+  :: MonadIO m
+  => GLuint -- ^ @texture@ of type @Texture@.
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLenum -- ^ @pname@ of type [GetTextureParameter](Graphics-GL-Groups.html#GetTextureParameter).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
+  -> m ()
+glGetTextureLevelParameterfvEXT v1 v2 v3 v4 v5 = liftIO $ dyn437 ptr_glGetTextureLevelParameterfvEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glGetTextureLevelParameterfvEXT #-}
+ptr_glGetTextureLevelParameterfvEXT :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetTextureLevelParameterfvEXT = unsafePerformIO $ getCommand "glGetTextureLevelParameterfvEXT"
+
+-- glGetTextureLevelParameteriv ------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetTexLevelParameter.xhtml OpenGL 4.x>.
+glGetTextureLevelParameteriv
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLint -- ^ @level@.
+  -> GLenum -- ^ @pname@ of type [GetTextureParameter](Graphics-GL-Groups.html#GetTextureParameter).
+  -> Ptr GLint -- ^ @params@.
+  -> m ()
+glGetTextureLevelParameteriv v1 v2 v3 v4 = liftIO $ dyn438 ptr_glGetTextureLevelParameteriv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetTextureLevelParameteriv #-}
+ptr_glGetTextureLevelParameteriv :: FunPtr (GLuint -> GLint -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetTextureLevelParameteriv = unsafePerformIO $ getCommand "glGetTextureLevelParameteriv"
+
+-- glGetTextureLevelParameterivEXT ---------------------------------------------
+
+glGetTextureLevelParameterivEXT
+  :: MonadIO m
+  => GLuint -- ^ @texture@ of type @Texture@.
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLenum -- ^ @pname@ of type [GetTextureParameter](Graphics-GL-Groups.html#GetTextureParameter).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetTextureLevelParameterivEXT v1 v2 v3 v4 v5 = liftIO $ dyn282 ptr_glGetTextureLevelParameterivEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glGetTextureLevelParameterivEXT #-}
+ptr_glGetTextureLevelParameterivEXT :: FunPtr (GLuint -> GLenum -> GLint -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetTextureLevelParameterivEXT = unsafePerformIO $ getCommand "glGetTextureLevelParameterivEXT"
+
+-- glGetTextureParameterIiv ----------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetTexParameter.xhtml OpenGL 4.x>.
+glGetTextureParameterIiv
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLenum -- ^ @pname@ of type [GetTextureParameter](Graphics-GL-Groups.html#GetTextureParameter).
+  -> Ptr GLint -- ^ @params@.
+  -> m ()
+glGetTextureParameterIiv v1 v2 v3 = liftIO $ dyn348 ptr_glGetTextureParameterIiv v1 v2 v3
+
+{-# NOINLINE ptr_glGetTextureParameterIiv #-}
+ptr_glGetTextureParameterIiv :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetTextureParameterIiv = unsafePerformIO $ getCommand "glGetTextureParameterIiv"
+
+-- glGetTextureParameterIivEXT -------------------------------------------------
+
+glGetTextureParameterIivEXT
+  :: MonadIO m
+  => GLuint -- ^ @texture@ of type @Texture@.
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLenum -- ^ @pname@ of type [GetTextureParameter](Graphics-GL-Groups.html#GetTextureParameter).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetTextureParameterIivEXT v1 v2 v3 v4 = liftIO $ dyn379 ptr_glGetTextureParameterIivEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetTextureParameterIivEXT #-}
+ptr_glGetTextureParameterIivEXT :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetTextureParameterIivEXT = unsafePerformIO $ getCommand "glGetTextureParameterIivEXT"
+
+-- glGetTextureParameterIuiv ---------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetTexParameter.xhtml OpenGL 4.x>.
+glGetTextureParameterIuiv
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLenum -- ^ @pname@ of type [GetTextureParameter](Graphics-GL-Groups.html#GetTextureParameter).
+  -> Ptr GLuint -- ^ @params@.
+  -> m ()
+glGetTextureParameterIuiv v1 v2 v3 = liftIO $ dyn392 ptr_glGetTextureParameterIuiv v1 v2 v3
+
+{-# NOINLINE ptr_glGetTextureParameterIuiv #-}
+ptr_glGetTextureParameterIuiv :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
+ptr_glGetTextureParameterIuiv = unsafePerformIO $ getCommand "glGetTextureParameterIuiv"
+
+-- glGetTextureParameterIuivEXT ------------------------------------------------
+
+glGetTextureParameterIuivEXT
+  :: MonadIO m
+  => GLuint -- ^ @texture@ of type @Texture@.
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLenum -- ^ @pname@ of type [GetTextureParameter](Graphics-GL-Groups.html#GetTextureParameter).
+  -> Ptr GLuint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLuint@.
+  -> m ()
+glGetTextureParameterIuivEXT v1 v2 v3 v4 = liftIO $ dyn439 ptr_glGetTextureParameterIuivEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetTextureParameterIuivEXT #-}
+ptr_glGetTextureParameterIuivEXT :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLuint -> IO ())
+ptr_glGetTextureParameterIuivEXT = unsafePerformIO $ getCommand "glGetTextureParameterIuivEXT"
+
+-- glGetTextureParameterfv -----------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetTexParameter.xhtml OpenGL 4.x>.
+glGetTextureParameterfv
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLenum -- ^ @pname@ of type [GetTextureParameter](Graphics-GL-Groups.html#GetTextureParameter).
+  -> Ptr GLfloat -- ^ @params@.
+  -> m ()
+glGetTextureParameterfv v1 v2 v3 = liftIO $ dyn364 ptr_glGetTextureParameterfv v1 v2 v3
+
+{-# NOINLINE ptr_glGetTextureParameterfv #-}
+ptr_glGetTextureParameterfv :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetTextureParameterfv = unsafePerformIO $ getCommand "glGetTextureParameterfv"
+
+-- glGetTextureParameterfvEXT --------------------------------------------------
+
+glGetTextureParameterfvEXT
+  :: MonadIO m
+  => GLuint -- ^ @texture@ of type @Texture@.
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLenum -- ^ @pname@ of type [GetTextureParameter](Graphics-GL-Groups.html#GetTextureParameter).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
+  -> m ()
+glGetTextureParameterfvEXT v1 v2 v3 v4 = liftIO $ dyn440 ptr_glGetTextureParameterfvEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetTextureParameterfvEXT #-}
+ptr_glGetTextureParameterfvEXT :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetTextureParameterfvEXT = unsafePerformIO $ getCommand "glGetTextureParameterfvEXT"
+
+-- glGetTextureParameteriv -----------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetTexParameter.xhtml OpenGL 4.x>.
+glGetTextureParameteriv
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLenum -- ^ @pname@ of type [GetTextureParameter](Graphics-GL-Groups.html#GetTextureParameter).
+  -> Ptr GLint -- ^ @params@.
+  -> m ()
+glGetTextureParameteriv v1 v2 v3 = liftIO $ dyn348 ptr_glGetTextureParameteriv v1 v2 v3
+
+{-# NOINLINE ptr_glGetTextureParameteriv #-}
+ptr_glGetTextureParameteriv :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetTextureParameteriv = unsafePerformIO $ getCommand "glGetTextureParameteriv"
+
+-- glGetTextureParameterivEXT --------------------------------------------------
+
+glGetTextureParameterivEXT
+  :: MonadIO m
+  => GLuint -- ^ @texture@ of type @Texture@.
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLenum -- ^ @pname@ of type [GetTextureParameter](Graphics-GL-Groups.html#GetTextureParameter).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetTextureParameterivEXT v1 v2 v3 v4 = liftIO $ dyn379 ptr_glGetTextureParameterivEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetTextureParameterivEXT #-}
+ptr_glGetTextureParameterivEXT :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetTextureParameterivEXT = unsafePerformIO $ getCommand "glGetTextureParameterivEXT"
+
+-- glGetTextureSamplerHandleARB ------------------------------------------------
+
+glGetTextureSamplerHandleARB
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLuint -- ^ @sampler@.
+  -> m GLuint64
+glGetTextureSamplerHandleARB v1 v2 = liftIO $ dyn441 ptr_glGetTextureSamplerHandleARB v1 v2
+
+{-# NOINLINE ptr_glGetTextureSamplerHandleARB #-}
+ptr_glGetTextureSamplerHandleARB :: FunPtr (GLuint -> GLuint -> IO GLuint64)
+ptr_glGetTextureSamplerHandleARB = unsafePerformIO $ getCommand "glGetTextureSamplerHandleARB"
+
+-- glGetTextureSamplerHandleIMG ------------------------------------------------
+
+-- | This command is an alias for 'glGetTextureSamplerHandleARB'.
+glGetTextureSamplerHandleIMG
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLuint -- ^ @sampler@.
+  -> m GLuint64
+glGetTextureSamplerHandleIMG v1 v2 = liftIO $ dyn441 ptr_glGetTextureSamplerHandleIMG v1 v2
+
+{-# NOINLINE ptr_glGetTextureSamplerHandleIMG #-}
+ptr_glGetTextureSamplerHandleIMG :: FunPtr (GLuint -> GLuint -> IO GLuint64)
+ptr_glGetTextureSamplerHandleIMG = unsafePerformIO $ getCommand "glGetTextureSamplerHandleIMG"
+
+-- glGetTextureSamplerHandleNV -------------------------------------------------
+
+glGetTextureSamplerHandleNV
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLuint -- ^ @sampler@.
+  -> m GLuint64
+glGetTextureSamplerHandleNV v1 v2 = liftIO $ dyn441 ptr_glGetTextureSamplerHandleNV v1 v2
+
+{-# NOINLINE ptr_glGetTextureSamplerHandleNV #-}
+ptr_glGetTextureSamplerHandleNV :: FunPtr (GLuint -> GLuint -> IO GLuint64)
+ptr_glGetTextureSamplerHandleNV = unsafePerformIO $ getCommand "glGetTextureSamplerHandleNV"
+
+-- glGetTextureSubImage --------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetTextureSubImage.xhtml OpenGL 4.x>.
+glGetTextureSubImage
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLint -- ^ @level@.
+  -> GLint -- ^ @xoffset@.
+  -> GLint -- ^ @yoffset@.
+  -> GLint -- ^ @zoffset@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLsizei -- ^ @depth@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr a -- ^ @pixels@.
+  -> m ()
+glGetTextureSubImage v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 = liftIO $ dyn442 ptr_glGetTextureSubImage v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12
+
+{-# NOINLINE ptr_glGetTextureSubImage #-}
+ptr_glGetTextureSubImage :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glGetTextureSubImage = unsafePerformIO $ getCommand "glGetTextureSubImage"
+
+-- glGetTrackMatrixivNV --------------------------------------------------------
+
+glGetTrackMatrixivNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [VertexAttribEnumNV](Graphics-GL-Groups.html#VertexAttribEnumNV).
+  -> GLuint -- ^ @address@.
+  -> GLenum -- ^ @pname@ of type [VertexAttribEnumNV](Graphics-GL-Groups.html#VertexAttribEnumNV).
+  -> Ptr GLint -- ^ @params@ pointing to @1@ element of type @GLint@.
+  -> m ()
+glGetTrackMatrixivNV v1 v2 v3 v4 = liftIO $ dyn366 ptr_glGetTrackMatrixivNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetTrackMatrixivNV #-}
+ptr_glGetTrackMatrixivNV :: FunPtr (GLenum -> GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetTrackMatrixivNV = unsafePerformIO $ getCommand "glGetTrackMatrixivNV"
+
+-- glGetTransformFeedbackVarying -----------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGetTransformFeedbackVarying.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetTransformFeedbackVarying.xhtml OpenGL 4.x>.
+glGetTransformFeedbackVarying
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLuint -- ^ @index@.
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
+  -> Ptr GLsizei -- ^ @size@ pointing to @1@ element of type @GLsizei@.
+  -> Ptr GLenum -- ^ @type@ pointing to @1@ element of type [GlslTypeToken](Graphics-GL-Groups.html#GlslTypeToken).
+  -> Ptr GLchar -- ^ @name@ pointing to @bufSize@ elements of type @GLchar@.
+  -> m ()
+glGetTransformFeedbackVarying v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn321 ptr_glGetTransformFeedbackVarying v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glGetTransformFeedbackVarying #-}
+ptr_glGetTransformFeedbackVarying :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> IO ())
+ptr_glGetTransformFeedbackVarying = unsafePerformIO $ getCommand "glGetTransformFeedbackVarying"
+
+-- glGetTransformFeedbackVaryingEXT --------------------------------------------
+
+-- | This command is an alias for 'glGetTransformFeedbackVarying'.
+glGetTransformFeedbackVaryingEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLuint -- ^ @index@.
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
+  -> Ptr GLsizei -- ^ @size@ pointing to @1@ element of type @GLsizei@.
+  -> Ptr GLenum -- ^ @type@ pointing to @1@ element of type [GlslTypeToken](Graphics-GL-Groups.html#GlslTypeToken).
+  -> Ptr GLchar -- ^ @name@ pointing to @bufSize@ elements of type @GLchar@.
+  -> m ()
+glGetTransformFeedbackVaryingEXT v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn321 ptr_glGetTransformFeedbackVaryingEXT v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glGetTransformFeedbackVaryingEXT #-}
+ptr_glGetTransformFeedbackVaryingEXT :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> IO ())
+ptr_glGetTransformFeedbackVaryingEXT = unsafePerformIO $ getCommand "glGetTransformFeedbackVaryingEXT"
+
+-- glGetTransformFeedbackVaryingNV ---------------------------------------------
+
+glGetTransformFeedbackVaryingNV
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLuint -- ^ @index@.
+  -> Ptr GLint -- ^ @location@ pointing to @1@ element of type @GLint@.
+  -> m ()
+glGetTransformFeedbackVaryingNV v1 v2 v3 = liftIO $ dyn443 ptr_glGetTransformFeedbackVaryingNV v1 v2 v3
+
+{-# NOINLINE ptr_glGetTransformFeedbackVaryingNV #-}
+ptr_glGetTransformFeedbackVaryingNV :: FunPtr (GLuint -> GLuint -> Ptr GLint -> IO ())
+ptr_glGetTransformFeedbackVaryingNV = unsafePerformIO $ getCommand "glGetTransformFeedbackVaryingNV"
+
+-- glGetTransformFeedbacki64_v -------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetTransformFeedback.xhtml OpenGL 4.x>.
+glGetTransformFeedbacki64_v
+  :: MonadIO m
+  => GLuint -- ^ @xfb@.
+  -> GLenum -- ^ @pname@ of type [TransformFeedbackPName](Graphics-GL-Groups.html#TransformFeedbackPName).
+  -> GLuint -- ^ @index@.
+  -> Ptr GLint64 -- ^ @param@.
+  -> m ()
+glGetTransformFeedbacki64_v v1 v2 v3 v4 = liftIO $ dyn444 ptr_glGetTransformFeedbacki64_v v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetTransformFeedbacki64_v #-}
+ptr_glGetTransformFeedbacki64_v :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLint64 -> IO ())
+ptr_glGetTransformFeedbacki64_v = unsafePerformIO $ getCommand "glGetTransformFeedbacki64_v"
+
+-- glGetTransformFeedbacki_v ---------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetTransformFeedback.xhtml OpenGL 4.x>.
+glGetTransformFeedbacki_v
+  :: MonadIO m
+  => GLuint -- ^ @xfb@.
+  -> GLenum -- ^ @pname@ of type [TransformFeedbackPName](Graphics-GL-Groups.html#TransformFeedbackPName).
+  -> GLuint -- ^ @index@.
+  -> Ptr GLint -- ^ @param@.
+  -> m ()
+glGetTransformFeedbacki_v v1 v2 v3 v4 = liftIO $ dyn381 ptr_glGetTransformFeedbacki_v v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetTransformFeedbacki_v #-}
+ptr_glGetTransformFeedbacki_v :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLint -> IO ())
+ptr_glGetTransformFeedbacki_v = unsafePerformIO $ getCommand "glGetTransformFeedbacki_v"
+
+-- glGetTransformFeedbackiv ----------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetTransformFeedback.xhtml OpenGL 4.x>.
+glGetTransformFeedbackiv
+  :: MonadIO m
+  => GLuint -- ^ @xfb@.
+  -> GLenum -- ^ @pname@ of type [TransformFeedbackPName](Graphics-GL-Groups.html#TransformFeedbackPName).
+  -> Ptr GLint -- ^ @param@.
+  -> m ()
+glGetTransformFeedbackiv v1 v2 v3 = liftIO $ dyn348 ptr_glGetTransformFeedbackiv v1 v2 v3
+
+{-# NOINLINE ptr_glGetTransformFeedbackiv #-}
+ptr_glGetTransformFeedbackiv :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetTransformFeedbackiv = unsafePerformIO $ getCommand "glGetTransformFeedbackiv"
+
+-- glGetTranslatedShaderSourceANGLE --------------------------------------------
+
+glGetTranslatedShaderSourceANGLE
+  :: MonadIO m
+  => GLuint -- ^ @shader@.
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr GLsizei -- ^ @length@ pointing to @1@ element of type @GLsizei@.
+  -> Ptr GLchar -- ^ @source@.
+  -> m ()
+glGetTranslatedShaderSourceANGLE v1 v2 v3 v4 = liftIO $ dyn345 ptr_glGetTranslatedShaderSourceANGLE v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetTranslatedShaderSourceANGLE #-}
+ptr_glGetTranslatedShaderSourceANGLE :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
+ptr_glGetTranslatedShaderSourceANGLE = unsafePerformIO $ getCommand "glGetTranslatedShaderSourceANGLE"
+
+-- glGetUniformBlockIndex ------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGetUniformBlockIndex.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetUniformBlockIndex.xhtml OpenGL 4.x>.
+glGetUniformBlockIndex
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> Ptr GLchar -- ^ @uniformBlockName@ pointing to @COMPSIZE()@ elements of type @GLchar@.
+  -> m GLuint
+glGetUniformBlockIndex v1 v2 = liftIO $ dyn445 ptr_glGetUniformBlockIndex v1 v2
+
+{-# NOINLINE ptr_glGetUniformBlockIndex #-}
+ptr_glGetUniformBlockIndex :: FunPtr (GLuint -> Ptr GLchar -> IO GLuint)
+ptr_glGetUniformBlockIndex = unsafePerformIO $ getCommand "glGetUniformBlockIndex"
+
+-- glGetUniformBufferSizeEXT ---------------------------------------------------
+
+glGetUniformBufferSizeEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> m GLint
+glGetUniformBufferSizeEXT v1 v2 = liftIO $ dyn446 ptr_glGetUniformBufferSizeEXT v1 v2
+
+{-# NOINLINE ptr_glGetUniformBufferSizeEXT #-}
+ptr_glGetUniformBufferSizeEXT :: FunPtr (GLuint -> GLint -> IO GLint)
+ptr_glGetUniformBufferSizeEXT = unsafePerformIO $ getCommand "glGetUniformBufferSizeEXT"
+
+-- glGetUniformIndices ---------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGetUniformIndices.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetUniformIndices.xhtml OpenGL 4.x>.
+glGetUniformIndices
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLsizei -- ^ @uniformCount@.
+  -> Ptr (Ptr GLchar) -- ^ @uniformNames@ pointing to @COMPSIZE(uniformCount)@ elements of type @Ptr GLchar@.
+  -> Ptr GLuint -- ^ @uniformIndices@ pointing to @COMPSIZE(uniformCount)@ elements of type @GLuint@.
+  -> m ()
+glGetUniformIndices v1 v2 v3 v4 = liftIO $ dyn447 ptr_glGetUniformIndices v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetUniformIndices #-}
+ptr_glGetUniformIndices :: FunPtr (GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLuint -> IO ())
+ptr_glGetUniformIndices = unsafePerformIO $ getCommand "glGetUniformIndices"
+
+-- glGetUniformLocation --------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetUniformLocation.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGetUniformLocation.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetUniformLocation.xhtml OpenGL 4.x>.
+glGetUniformLocation
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> Ptr GLchar -- ^ @name@.
+  -> m GLint
+glGetUniformLocation v1 v2 = liftIO $ dyn324 ptr_glGetUniformLocation v1 v2
+
+{-# NOINLINE ptr_glGetUniformLocation #-}
+ptr_glGetUniformLocation :: FunPtr (GLuint -> Ptr GLchar -> IO GLint)
+ptr_glGetUniformLocation = unsafePerformIO $ getCommand "glGetUniformLocation"
+
+-- glGetUniformLocationARB -----------------------------------------------------
+
+-- | This command is an alias for 'glGetUniformLocation'.
+glGetUniformLocationARB
+  :: MonadIO m
+  => GLhandleARB -- ^ @programObj@ of type @handleARB@.
+  -> Ptr GLcharARB -- ^ @name@.
+  -> m GLint
+glGetUniformLocationARB v1 v2 = liftIO $ dyn325 ptr_glGetUniformLocationARB v1 v2
+
+{-# NOINLINE ptr_glGetUniformLocationARB #-}
+ptr_glGetUniformLocationARB :: FunPtr (GLhandleARB -> Ptr GLcharARB -> IO GLint)
+ptr_glGetUniformLocationARB = unsafePerformIO $ getCommand "glGetUniformLocationARB"
+
+-- glGetUniformOffsetEXT -------------------------------------------------------
+
+glGetUniformOffsetEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> m GLintptr -- ^ of type @BufferOffset@.
+glGetUniformOffsetEXT v1 v2 = liftIO $ dyn448 ptr_glGetUniformOffsetEXT v1 v2
+
+{-# NOINLINE ptr_glGetUniformOffsetEXT #-}
+ptr_glGetUniformOffsetEXT :: FunPtr (GLuint -> GLint -> IO GLintptr)
+ptr_glGetUniformOffsetEXT = unsafePerformIO $ getCommand "glGetUniformOffsetEXT"
+
+-- glGetUniformSubroutineuiv ---------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetUniformSubroutine.xhtml OpenGL 4.x>.
+glGetUniformSubroutineuiv
+  :: MonadIO m
+  => GLenum -- ^ @shadertype@ of type [ShaderType](Graphics-GL-Groups.html#ShaderType).
+  -> GLint -- ^ @location@.
+  -> Ptr GLuint -- ^ @params@ pointing to @1@ element of type @GLuint@.
+  -> m ()
+glGetUniformSubroutineuiv v1 v2 v3 = liftIO $ dyn81 ptr_glGetUniformSubroutineuiv v1 v2 v3
+
+{-# NOINLINE ptr_glGetUniformSubroutineuiv #-}
+ptr_glGetUniformSubroutineuiv :: FunPtr (GLenum -> GLint -> Ptr GLuint -> IO ())
+ptr_glGetUniformSubroutineuiv = unsafePerformIO $ getCommand "glGetUniformSubroutineuiv"
+
+-- glGetUniformdv --------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetUniform.xhtml OpenGL 4.x>.
+glGetUniformdv
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> Ptr GLdouble -- ^ @params@ pointing to @COMPSIZE(program,location)@ elements of type @GLdouble@.
+  -> m ()
+glGetUniformdv v1 v2 v3 = liftIO $ dyn449 ptr_glGetUniformdv v1 v2 v3
+
+{-# NOINLINE ptr_glGetUniformdv #-}
+ptr_glGetUniformdv :: FunPtr (GLuint -> GLint -> Ptr GLdouble -> IO ())
+ptr_glGetUniformdv = unsafePerformIO $ getCommand "glGetUniformdv"
+
+-- glGetUniformfv --------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetUniform.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGetUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetUniform.xhtml OpenGL 4.x>.
+glGetUniformfv
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(program,location)@ elements of type @GLfloat@.
+  -> m ()
+glGetUniformfv v1 v2 v3 = liftIO $ dyn450 ptr_glGetUniformfv v1 v2 v3
+
+{-# NOINLINE ptr_glGetUniformfv #-}
+ptr_glGetUniformfv :: FunPtr (GLuint -> GLint -> Ptr GLfloat -> IO ())
+ptr_glGetUniformfv = unsafePerformIO $ getCommand "glGetUniformfv"
+
+-- glGetUniformfvARB -----------------------------------------------------------
+
+-- | This command is an alias for 'glGetUniformfv'.
+glGetUniformfvARB
+  :: MonadIO m
+  => GLhandleARB -- ^ @programObj@ of type @handleARB@.
+  -> GLint -- ^ @location@.
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(programObj,location)@ elements of type @GLfloat@.
+  -> m ()
+glGetUniformfvARB v1 v2 v3 = liftIO $ dyn451 ptr_glGetUniformfvARB v1 v2 v3
+
+{-# NOINLINE ptr_glGetUniformfvARB #-}
+ptr_glGetUniformfvARB :: FunPtr (GLhandleARB -> GLint -> Ptr GLfloat -> IO ())
+ptr_glGetUniformfvARB = unsafePerformIO $ getCommand "glGetUniformfvARB"
+
+-- glGetUniformi64vARB ---------------------------------------------------------
+
+glGetUniformi64vARB
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> Ptr GLint64 -- ^ @params@ pointing to @COMPSIZE(program,location)@ elements of type @GLint64@.
+  -> m ()
+glGetUniformi64vARB v1 v2 v3 = liftIO $ dyn452 ptr_glGetUniformi64vARB v1 v2 v3
+
+{-# NOINLINE ptr_glGetUniformi64vARB #-}
+ptr_glGetUniformi64vARB :: FunPtr (GLuint -> GLint -> Ptr GLint64 -> IO ())
+ptr_glGetUniformi64vARB = unsafePerformIO $ getCommand "glGetUniformi64vARB"
+
+-- glGetUniformi64vNV ----------------------------------------------------------
+
+glGetUniformi64vNV
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> Ptr GLint64EXT -- ^ @params@ pointing to @COMPSIZE(program,location)@ elements of type @GLint64EXT@.
+  -> m ()
+glGetUniformi64vNV v1 v2 v3 = liftIO $ dyn453 ptr_glGetUniformi64vNV v1 v2 v3
+
+{-# NOINLINE ptr_glGetUniformi64vNV #-}
+ptr_glGetUniformi64vNV :: FunPtr (GLuint -> GLint -> Ptr GLint64EXT -> IO ())
+ptr_glGetUniformi64vNV = unsafePerformIO $ getCommand "glGetUniformi64vNV"
+
+-- glGetUniformiv --------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetUniform.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGetUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetUniform.xhtml OpenGL 4.x>.
+glGetUniformiv
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(program,location)@ elements of type @GLint@.
+  -> m ()
+glGetUniformiv v1 v2 v3 = liftIO $ dyn454 ptr_glGetUniformiv v1 v2 v3
+
+{-# NOINLINE ptr_glGetUniformiv #-}
+ptr_glGetUniformiv :: FunPtr (GLuint -> GLint -> Ptr GLint -> IO ())
+ptr_glGetUniformiv = unsafePerformIO $ getCommand "glGetUniformiv"
+
+-- glGetUniformivARB -----------------------------------------------------------
+
+-- | This command is an alias for 'glGetUniformiv'.
+glGetUniformivARB
+  :: MonadIO m
+  => GLhandleARB -- ^ @programObj@ of type @handleARB@.
+  -> GLint -- ^ @location@.
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(programObj,location)@ elements of type @GLint@.
+  -> m ()
+glGetUniformivARB v1 v2 v3 = liftIO $ dyn455 ptr_glGetUniformivARB v1 v2 v3
+
+{-# NOINLINE ptr_glGetUniformivARB #-}
+ptr_glGetUniformivARB :: FunPtr (GLhandleARB -> GLint -> Ptr GLint -> IO ())
+ptr_glGetUniformivARB = unsafePerformIO $ getCommand "glGetUniformivARB"
+
+-- glGetUniformui64vARB --------------------------------------------------------
+
+glGetUniformui64vARB
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> Ptr GLuint64 -- ^ @params@ pointing to @COMPSIZE(program,location)@ elements of type @GLuint64@.
+  -> m ()
+glGetUniformui64vARB v1 v2 v3 = liftIO $ dyn456 ptr_glGetUniformui64vARB v1 v2 v3
+
+{-# NOINLINE ptr_glGetUniformui64vARB #-}
+ptr_glGetUniformui64vARB :: FunPtr (GLuint -> GLint -> Ptr GLuint64 -> IO ())
+ptr_glGetUniformui64vARB = unsafePerformIO $ getCommand "glGetUniformui64vARB"
+
+-- glGetUniformui64vNV ---------------------------------------------------------
+
+glGetUniformui64vNV
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> Ptr GLuint64EXT -- ^ @params@ pointing to @COMPSIZE(program,location)@ elements of type @GLuint64EXT@.
+  -> m ()
+glGetUniformui64vNV v1 v2 v3 = liftIO $ dyn457 ptr_glGetUniformui64vNV v1 v2 v3
+
+{-# NOINLINE ptr_glGetUniformui64vNV #-}
+ptr_glGetUniformui64vNV :: FunPtr (GLuint -> GLint -> Ptr GLuint64EXT -> IO ())
+ptr_glGetUniformui64vNV = unsafePerformIO $ getCommand "glGetUniformui64vNV"
+
+-- glGetUniformuiv -------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGetUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetUniform.xhtml OpenGL 4.x>.
+glGetUniformuiv
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> Ptr GLuint -- ^ @params@ pointing to @COMPSIZE(program,location)@ elements of type @GLuint@.
+  -> m ()
+glGetUniformuiv v1 v2 v3 = liftIO $ dyn458 ptr_glGetUniformuiv v1 v2 v3
+
+{-# NOINLINE ptr_glGetUniformuiv #-}
+ptr_glGetUniformuiv :: FunPtr (GLuint -> GLint -> Ptr GLuint -> IO ())
+ptr_glGetUniformuiv = unsafePerformIO $ getCommand "glGetUniformuiv"
+
+-- glGetUniformuivEXT ----------------------------------------------------------
+
+-- | This command is an alias for 'glGetUniformuiv'.
+glGetUniformuivEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> Ptr GLuint -- ^ @params@ pointing to @COMPSIZE(program,location)@ elements of type @GLuint@.
+  -> m ()
+glGetUniformuivEXT v1 v2 v3 = liftIO $ dyn458 ptr_glGetUniformuivEXT v1 v2 v3
+
+{-# NOINLINE ptr_glGetUniformuivEXT #-}
+ptr_glGetUniformuivEXT :: FunPtr (GLuint -> GLint -> Ptr GLuint -> IO ())
+ptr_glGetUniformuivEXT = unsafePerformIO $ getCommand "glGetUniformuivEXT"
+
+-- glGetUnsignedBytei_vEXT -----------------------------------------------------
+
+glGetUnsignedBytei_vEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@.
+  -> GLuint -- ^ @index@.
+  -> Ptr GLubyte -- ^ @data@ pointing to @COMPSIZE(target)@ elements of type @GLubyte@.
+  -> m ()
+glGetUnsignedBytei_vEXT v1 v2 v3 = liftIO $ dyn459 ptr_glGetUnsignedBytei_vEXT v1 v2 v3
+
+{-# NOINLINE ptr_glGetUnsignedBytei_vEXT #-}
+ptr_glGetUnsignedBytei_vEXT :: FunPtr (GLenum -> GLuint -> Ptr GLubyte -> IO ())
+ptr_glGetUnsignedBytei_vEXT = unsafePerformIO $ getCommand "glGetUnsignedBytei_vEXT"
+
+-- glGetUnsignedBytevEXT -------------------------------------------------------
+
+glGetUnsignedBytevEXT
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [GetPName](Graphics-GL-Groups.html#GetPName).
+  -> Ptr GLubyte -- ^ @data@ pointing to @COMPSIZE(pname)@ elements of type @GLubyte@.
+  -> m ()
+glGetUnsignedBytevEXT v1 v2 = liftIO $ dyn460 ptr_glGetUnsignedBytevEXT v1 v2
+
+{-# NOINLINE ptr_glGetUnsignedBytevEXT #-}
+ptr_glGetUnsignedBytevEXT :: FunPtr (GLenum -> Ptr GLubyte -> IO ())
+ptr_glGetUnsignedBytevEXT = unsafePerformIO $ getCommand "glGetUnsignedBytevEXT"
+
+-- glGetVariantArrayObjectfvATI ------------------------------------------------
+
+glGetVariantArrayObjectfvATI
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> GLenum -- ^ @pname@ of type [ArrayObjectPNameATI](Graphics-GL-Groups.html#ArrayObjectPNameATI).
+  -> Ptr GLfloat -- ^ @params@ pointing to @1@ element of type @GLfloat@.
+  -> m ()
+glGetVariantArrayObjectfvATI v1 v2 v3 = liftIO $ dyn364 ptr_glGetVariantArrayObjectfvATI v1 v2 v3
+
+{-# NOINLINE ptr_glGetVariantArrayObjectfvATI #-}
+ptr_glGetVariantArrayObjectfvATI :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetVariantArrayObjectfvATI = unsafePerformIO $ getCommand "glGetVariantArrayObjectfvATI"
+
+-- glGetVariantArrayObjectivATI ------------------------------------------------
+
+glGetVariantArrayObjectivATI
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> GLenum -- ^ @pname@ of type [ArrayObjectPNameATI](Graphics-GL-Groups.html#ArrayObjectPNameATI).
+  -> Ptr GLint -- ^ @params@ pointing to @1@ element of type @GLint@.
+  -> m ()
+glGetVariantArrayObjectivATI v1 v2 v3 = liftIO $ dyn348 ptr_glGetVariantArrayObjectivATI v1 v2 v3
+
+{-# NOINLINE ptr_glGetVariantArrayObjectivATI #-}
+ptr_glGetVariantArrayObjectivATI :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetVariantArrayObjectivATI = unsafePerformIO $ getCommand "glGetVariantArrayObjectivATI"
+
+-- glGetVariantBooleanvEXT -----------------------------------------------------
+
+glGetVariantBooleanvEXT
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> GLenum -- ^ @value@ of type [GetVariantValueEXT](Graphics-GL-Groups.html#GetVariantValueEXT).
+  -> Ptr GLboolean -- ^ @data@ pointing to @COMPSIZE(id)@ elements of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m ()
+glGetVariantBooleanvEXT v1 v2 v3 = liftIO $ dyn363 ptr_glGetVariantBooleanvEXT v1 v2 v3
+
+{-# NOINLINE ptr_glGetVariantBooleanvEXT #-}
+ptr_glGetVariantBooleanvEXT :: FunPtr (GLuint -> GLenum -> Ptr GLboolean -> IO ())
+ptr_glGetVariantBooleanvEXT = unsafePerformIO $ getCommand "glGetVariantBooleanvEXT"
+
+-- glGetVariantFloatvEXT -------------------------------------------------------
+
+glGetVariantFloatvEXT
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> GLenum -- ^ @value@ of type [GetVariantValueEXT](Graphics-GL-Groups.html#GetVariantValueEXT).
+  -> Ptr GLfloat -- ^ @data@ pointing to @COMPSIZE(id)@ elements of type @GLfloat@.
+  -> m ()
+glGetVariantFloatvEXT v1 v2 v3 = liftIO $ dyn364 ptr_glGetVariantFloatvEXT v1 v2 v3
+
+{-# NOINLINE ptr_glGetVariantFloatvEXT #-}
+ptr_glGetVariantFloatvEXT :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetVariantFloatvEXT = unsafePerformIO $ getCommand "glGetVariantFloatvEXT"
+
+-- glGetVariantIntegervEXT -----------------------------------------------------
+
+glGetVariantIntegervEXT
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> GLenum -- ^ @value@ of type [GetVariantValueEXT](Graphics-GL-Groups.html#GetVariantValueEXT).
+  -> Ptr GLint -- ^ @data@ pointing to @COMPSIZE(id)@ elements of type @GLint@.
+  -> m ()
+glGetVariantIntegervEXT v1 v2 v3 = liftIO $ dyn348 ptr_glGetVariantIntegervEXT v1 v2 v3
+
+{-# NOINLINE ptr_glGetVariantIntegervEXT #-}
+ptr_glGetVariantIntegervEXT :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetVariantIntegervEXT = unsafePerformIO $ getCommand "glGetVariantIntegervEXT"
+
+-- glGetVariantPointervEXT -----------------------------------------------------
+
+glGetVariantPointervEXT
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> GLenum -- ^ @value@ of type [GetVariantValueEXT](Graphics-GL-Groups.html#GetVariantValueEXT).
+  -> Ptr (Ptr a) -- ^ @data@ pointing to @COMPSIZE(id)@ elements of type @Ptr a@.
+  -> m ()
+glGetVariantPointervEXT v1 v2 v3 = liftIO $ dyn377 ptr_glGetVariantPointervEXT v1 v2 v3
+
+{-# NOINLINE ptr_glGetVariantPointervEXT #-}
+ptr_glGetVariantPointervEXT :: FunPtr (GLuint -> GLenum -> Ptr (Ptr a) -> IO ())
+ptr_glGetVariantPointervEXT = unsafePerformIO $ getCommand "glGetVariantPointervEXT"
+
+-- glGetVaryingLocationNV ------------------------------------------------------
+
+glGetVaryingLocationNV
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> Ptr GLchar -- ^ @name@ pointing to @COMPSIZE(name)@ elements of type @GLchar@.
+  -> m GLint
+glGetVaryingLocationNV v1 v2 = liftIO $ dyn324 ptr_glGetVaryingLocationNV v1 v2
+
+{-# NOINLINE ptr_glGetVaryingLocationNV #-}
+ptr_glGetVaryingLocationNV :: FunPtr (GLuint -> Ptr GLchar -> IO GLint)
+ptr_glGetVaryingLocationNV = unsafePerformIO $ getCommand "glGetVaryingLocationNV"
+
+-- glGetVertexArrayIndexed64iv -------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetVertexArrayIndexed.xhtml OpenGL 4.x>.
+glGetVertexArrayIndexed64iv
+  :: MonadIO m
+  => GLuint -- ^ @vaobj@.
+  -> GLuint -- ^ @index@.
+  -> GLenum -- ^ @pname@ of type [VertexArrayPName](Graphics-GL-Groups.html#VertexArrayPName).
+  -> Ptr GLint64 -- ^ @param@.
+  -> m ()
+glGetVertexArrayIndexed64iv v1 v2 v3 v4 = liftIO $ dyn461 ptr_glGetVertexArrayIndexed64iv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetVertexArrayIndexed64iv #-}
+ptr_glGetVertexArrayIndexed64iv :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint64 -> IO ())
+ptr_glGetVertexArrayIndexed64iv = unsafePerformIO $ getCommand "glGetVertexArrayIndexed64iv"
+
+-- glGetVertexArrayIndexediv ---------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetVertexArrayIndexed.xhtml OpenGL 4.x>.
+glGetVertexArrayIndexediv
+  :: MonadIO m
+  => GLuint -- ^ @vaobj@.
+  -> GLuint -- ^ @index@.
+  -> GLenum -- ^ @pname@ of type [VertexArrayPName](Graphics-GL-Groups.html#VertexArrayPName).
+  -> Ptr GLint -- ^ @param@.
+  -> m ()
+glGetVertexArrayIndexediv v1 v2 v3 v4 = liftIO $ dyn314 ptr_glGetVertexArrayIndexediv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetVertexArrayIndexediv #-}
+ptr_glGetVertexArrayIndexediv :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetVertexArrayIndexediv = unsafePerformIO $ getCommand "glGetVertexArrayIndexediv"
+
+-- glGetVertexArrayIntegeri_vEXT -----------------------------------------------
+
+glGetVertexArrayIntegeri_vEXT
+  :: MonadIO m
+  => GLuint -- ^ @vaobj@.
+  -> GLuint -- ^ @index@.
+  -> GLenum -- ^ @pname@ of type [VertexArrayPName](Graphics-GL-Groups.html#VertexArrayPName).
+  -> Ptr GLint -- ^ @param@.
+  -> m ()
+glGetVertexArrayIntegeri_vEXT v1 v2 v3 v4 = liftIO $ dyn314 ptr_glGetVertexArrayIntegeri_vEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetVertexArrayIntegeri_vEXT #-}
+ptr_glGetVertexArrayIntegeri_vEXT :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetVertexArrayIntegeri_vEXT = unsafePerformIO $ getCommand "glGetVertexArrayIntegeri_vEXT"
+
+-- glGetVertexArrayIntegervEXT -------------------------------------------------
+
+glGetVertexArrayIntegervEXT
+  :: MonadIO m
+  => GLuint -- ^ @vaobj@.
+  -> GLenum -- ^ @pname@ of type [VertexArrayPName](Graphics-GL-Groups.html#VertexArrayPName).
+  -> Ptr GLint -- ^ @param@.
+  -> m ()
+glGetVertexArrayIntegervEXT v1 v2 v3 = liftIO $ dyn348 ptr_glGetVertexArrayIntegervEXT v1 v2 v3
+
+{-# NOINLINE ptr_glGetVertexArrayIntegervEXT #-}
+ptr_glGetVertexArrayIntegervEXT :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetVertexArrayIntegervEXT = unsafePerformIO $ getCommand "glGetVertexArrayIntegervEXT"
+
+-- glGetVertexArrayPointeri_vEXT -----------------------------------------------
+
+glGetVertexArrayPointeri_vEXT
+  :: MonadIO m
+  => GLuint -- ^ @vaobj@.
+  -> GLuint -- ^ @index@.
+  -> GLenum -- ^ @pname@ of type [VertexArrayPName](Graphics-GL-Groups.html#VertexArrayPName).
+  -> Ptr (Ptr a) -- ^ @param@.
+  -> m ()
+glGetVertexArrayPointeri_vEXT v1 v2 v3 v4 = liftIO $ dyn462 ptr_glGetVertexArrayPointeri_vEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetVertexArrayPointeri_vEXT #-}
+ptr_glGetVertexArrayPointeri_vEXT :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr (Ptr a) -> IO ())
+ptr_glGetVertexArrayPointeri_vEXT = unsafePerformIO $ getCommand "glGetVertexArrayPointeri_vEXT"
+
+-- glGetVertexArrayPointervEXT -------------------------------------------------
+
+glGetVertexArrayPointervEXT
+  :: MonadIO m
+  => GLuint -- ^ @vaobj@.
+  -> GLenum -- ^ @pname@ of type [VertexArrayPName](Graphics-GL-Groups.html#VertexArrayPName).
+  -> Ptr (Ptr a) -- ^ @param@ pointing to @1@ element of type @Ptr a@.
+  -> m ()
+glGetVertexArrayPointervEXT v1 v2 v3 = liftIO $ dyn377 ptr_glGetVertexArrayPointervEXT v1 v2 v3
+
+{-# NOINLINE ptr_glGetVertexArrayPointervEXT #-}
+ptr_glGetVertexArrayPointervEXT :: FunPtr (GLuint -> GLenum -> Ptr (Ptr a) -> IO ())
+ptr_glGetVertexArrayPointervEXT = unsafePerformIO $ getCommand "glGetVertexArrayPointervEXT"
+
+-- glGetVertexArrayiv ----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetVertexArrayiv.xhtml OpenGL 4.x>.
+glGetVertexArrayiv
+  :: MonadIO m
+  => GLuint -- ^ @vaobj@.
+  -> GLenum -- ^ @pname@ of type [VertexArrayPName](Graphics-GL-Groups.html#VertexArrayPName).
+  -> Ptr GLint -- ^ @param@.
+  -> m ()
+glGetVertexArrayiv v1 v2 v3 = liftIO $ dyn348 ptr_glGetVertexArrayiv v1 v2 v3
+
+{-# NOINLINE ptr_glGetVertexArrayiv #-}
+ptr_glGetVertexArrayiv :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetVertexArrayiv = unsafePerformIO $ getCommand "glGetVertexArrayiv"
+
+-- glGetVertexAttribArrayObjectfvATI -------------------------------------------
+
+glGetVertexAttribArrayObjectfvATI
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLenum -- ^ @pname@ of type [ArrayObjectPNameATI](Graphics-GL-Groups.html#ArrayObjectPNameATI).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
+  -> m ()
+glGetVertexAttribArrayObjectfvATI v1 v2 v3 = liftIO $ dyn364 ptr_glGetVertexAttribArrayObjectfvATI v1 v2 v3
+
+{-# NOINLINE ptr_glGetVertexAttribArrayObjectfvATI #-}
+ptr_glGetVertexAttribArrayObjectfvATI :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetVertexAttribArrayObjectfvATI = unsafePerformIO $ getCommand "glGetVertexAttribArrayObjectfvATI"
+
+-- glGetVertexAttribArrayObjectivATI -------------------------------------------
+
+glGetVertexAttribArrayObjectivATI
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLenum -- ^ @pname@ of type [ArrayObjectPNameATI](Graphics-GL-Groups.html#ArrayObjectPNameATI).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetVertexAttribArrayObjectivATI v1 v2 v3 = liftIO $ dyn348 ptr_glGetVertexAttribArrayObjectivATI v1 v2 v3
+
+{-# NOINLINE ptr_glGetVertexAttribArrayObjectivATI #-}
+ptr_glGetVertexAttribArrayObjectivATI :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetVertexAttribArrayObjectivATI = unsafePerformIO $ getCommand "glGetVertexAttribArrayObjectivATI"
+
+-- glGetVertexAttribIiv --------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGetVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetVertexAttrib.xhtml OpenGL 4.x>.
+glGetVertexAttribIiv
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLenum -- ^ @pname@ of type [VertexAttribEnum](Graphics-GL-Groups.html#VertexAttribEnum).
+  -> Ptr GLint -- ^ @params@ pointing to @1@ element of type @GLint@.
+  -> m ()
+glGetVertexAttribIiv v1 v2 v3 = liftIO $ dyn348 ptr_glGetVertexAttribIiv v1 v2 v3
+
+{-# NOINLINE ptr_glGetVertexAttribIiv #-}
+ptr_glGetVertexAttribIiv :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetVertexAttribIiv = unsafePerformIO $ getCommand "glGetVertexAttribIiv"
+
+-- glGetVertexAttribIivEXT -----------------------------------------------------
+
+-- | This command is an alias for 'glGetVertexAttribIiv'.
+glGetVertexAttribIivEXT
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLenum -- ^ @pname@ of type [VertexAttribEnum](Graphics-GL-Groups.html#VertexAttribEnum).
+  -> Ptr GLint -- ^ @params@ pointing to @1@ element of type @GLint@.
+  -> m ()
+glGetVertexAttribIivEXT v1 v2 v3 = liftIO $ dyn348 ptr_glGetVertexAttribIivEXT v1 v2 v3
+
+{-# NOINLINE ptr_glGetVertexAttribIivEXT #-}
+ptr_glGetVertexAttribIivEXT :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetVertexAttribIivEXT = unsafePerformIO $ getCommand "glGetVertexAttribIivEXT"
+
+-- glGetVertexAttribIuiv -------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glGetVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetVertexAttrib.xhtml OpenGL 4.x>.
+glGetVertexAttribIuiv
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLenum -- ^ @pname@ of type [VertexAttribEnum](Graphics-GL-Groups.html#VertexAttribEnum).
+  -> Ptr GLuint -- ^ @params@ pointing to @1@ element of type @GLuint@.
+  -> m ()
+glGetVertexAttribIuiv v1 v2 v3 = liftIO $ dyn392 ptr_glGetVertexAttribIuiv v1 v2 v3
+
+{-# NOINLINE ptr_glGetVertexAttribIuiv #-}
+ptr_glGetVertexAttribIuiv :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
+ptr_glGetVertexAttribIuiv = unsafePerformIO $ getCommand "glGetVertexAttribIuiv"
+
+-- glGetVertexAttribIuivEXT ----------------------------------------------------
+
+-- | This command is an alias for 'glGetVertexAttribIuiv'.
+glGetVertexAttribIuivEXT
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLenum -- ^ @pname@ of type [VertexAttribEnum](Graphics-GL-Groups.html#VertexAttribEnum).
+  -> Ptr GLuint -- ^ @params@ pointing to @1@ element of type @GLuint@.
+  -> m ()
+glGetVertexAttribIuivEXT v1 v2 v3 = liftIO $ dyn392 ptr_glGetVertexAttribIuivEXT v1 v2 v3
+
+{-# NOINLINE ptr_glGetVertexAttribIuivEXT #-}
+ptr_glGetVertexAttribIuivEXT :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
+ptr_glGetVertexAttribIuivEXT = unsafePerformIO $ getCommand "glGetVertexAttribIuivEXT"
+
+-- glGetVertexAttribLdv --------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetVertexAttrib.xhtml OpenGL 4.x>.
+glGetVertexAttribLdv
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLenum -- ^ @pname@ of type [VertexAttribEnum](Graphics-GL-Groups.html#VertexAttribEnum).
+  -> Ptr GLdouble -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLdouble@.
+  -> m ()
+glGetVertexAttribLdv v1 v2 v3 = liftIO $ dyn463 ptr_glGetVertexAttribLdv v1 v2 v3
+
+{-# NOINLINE ptr_glGetVertexAttribLdv #-}
+ptr_glGetVertexAttribLdv :: FunPtr (GLuint -> GLenum -> Ptr GLdouble -> IO ())
+ptr_glGetVertexAttribLdv = unsafePerformIO $ getCommand "glGetVertexAttribLdv"
+
+-- glGetVertexAttribLdvEXT -----------------------------------------------------
+
+-- | This command is an alias for 'glGetVertexAttribLdv'.
+glGetVertexAttribLdvEXT
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLenum -- ^ @pname@ of type [VertexAttribEnum](Graphics-GL-Groups.html#VertexAttribEnum).
+  -> Ptr GLdouble -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLdouble@.
+  -> m ()
+glGetVertexAttribLdvEXT v1 v2 v3 = liftIO $ dyn463 ptr_glGetVertexAttribLdvEXT v1 v2 v3
+
+{-# NOINLINE ptr_glGetVertexAttribLdvEXT #-}
+ptr_glGetVertexAttribLdvEXT :: FunPtr (GLuint -> GLenum -> Ptr GLdouble -> IO ())
+ptr_glGetVertexAttribLdvEXT = unsafePerformIO $ getCommand "glGetVertexAttribLdvEXT"
+
+-- glGetVertexAttribLi64vNV ----------------------------------------------------
+
+glGetVertexAttribLi64vNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLenum -- ^ @pname@ of type [VertexAttribEnum](Graphics-GL-Groups.html#VertexAttribEnum).
+  -> Ptr GLint64EXT -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint64EXT@.
+  -> m ()
+glGetVertexAttribLi64vNV v1 v2 v3 = liftIO $ dyn464 ptr_glGetVertexAttribLi64vNV v1 v2 v3
+
+{-# NOINLINE ptr_glGetVertexAttribLi64vNV #-}
+ptr_glGetVertexAttribLi64vNV :: FunPtr (GLuint -> GLenum -> Ptr GLint64EXT -> IO ())
+ptr_glGetVertexAttribLi64vNV = unsafePerformIO $ getCommand "glGetVertexAttribLi64vNV"
+
+-- glGetVertexAttribLui64vARB --------------------------------------------------
+
+glGetVertexAttribLui64vARB
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLenum -- ^ @pname@ of type [VertexAttribEnum](Graphics-GL-Groups.html#VertexAttribEnum).
+  -> Ptr GLuint64EXT -- ^ @params@.
+  -> m ()
+glGetVertexAttribLui64vARB v1 v2 v3 = liftIO $ dyn376 ptr_glGetVertexAttribLui64vARB v1 v2 v3
+
+{-# NOINLINE ptr_glGetVertexAttribLui64vARB #-}
+ptr_glGetVertexAttribLui64vARB :: FunPtr (GLuint -> GLenum -> Ptr GLuint64EXT -> IO ())
+ptr_glGetVertexAttribLui64vARB = unsafePerformIO $ getCommand "glGetVertexAttribLui64vARB"
+
+-- glGetVertexAttribLui64vNV ---------------------------------------------------
+
+glGetVertexAttribLui64vNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLenum -- ^ @pname@ of type [VertexAttribEnum](Graphics-GL-Groups.html#VertexAttribEnum).
+  -> Ptr GLuint64EXT -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLuint64EXT@.
+  -> m ()
+glGetVertexAttribLui64vNV v1 v2 v3 = liftIO $ dyn376 ptr_glGetVertexAttribLui64vNV v1 v2 v3
+
+{-# NOINLINE ptr_glGetVertexAttribLui64vNV #-}
+ptr_glGetVertexAttribLui64vNV :: FunPtr (GLuint -> GLenum -> Ptr GLuint64EXT -> IO ())
+ptr_glGetVertexAttribLui64vNV = unsafePerformIO $ getCommand "glGetVertexAttribLui64vNV"
+
+-- glGetVertexAttribPointerv ---------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetVertexAttribPointerv.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGetVertexAttribPointerv.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetVertexAttribPointerv.xhtml OpenGL 4.x>.
+glGetVertexAttribPointerv
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLenum -- ^ @pname@ of type [VertexAttribPointerPropertyARB](Graphics-GL-Groups.html#VertexAttribPointerPropertyARB).
+  -> Ptr (Ptr a) -- ^ @pointer@ pointing to @1@ element of type @Ptr a@.
+  -> m ()
+glGetVertexAttribPointerv v1 v2 v3 = liftIO $ dyn377 ptr_glGetVertexAttribPointerv v1 v2 v3
+
+{-# NOINLINE ptr_glGetVertexAttribPointerv #-}
+ptr_glGetVertexAttribPointerv :: FunPtr (GLuint -> GLenum -> Ptr (Ptr a) -> IO ())
+ptr_glGetVertexAttribPointerv = unsafePerformIO $ getCommand "glGetVertexAttribPointerv"
+
+-- glGetVertexAttribPointervARB ------------------------------------------------
+
+-- | This command is an alias for 'glGetVertexAttribPointerv'.
+glGetVertexAttribPointervARB
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLenum -- ^ @pname@ of type [VertexAttribPointerPropertyARB](Graphics-GL-Groups.html#VertexAttribPointerPropertyARB).
+  -> Ptr (Ptr a) -- ^ @pointer@ pointing to @1@ element of type @Ptr a@.
+  -> m ()
+glGetVertexAttribPointervARB v1 v2 v3 = liftIO $ dyn377 ptr_glGetVertexAttribPointervARB v1 v2 v3
+
+{-# NOINLINE ptr_glGetVertexAttribPointervARB #-}
+ptr_glGetVertexAttribPointervARB :: FunPtr (GLuint -> GLenum -> Ptr (Ptr a) -> IO ())
+ptr_glGetVertexAttribPointervARB = unsafePerformIO $ getCommand "glGetVertexAttribPointervARB"
+
+-- glGetVertexAttribPointervNV -------------------------------------------------
+
+-- | This command is an alias for 'glGetVertexAttribPointerv'.
+glGetVertexAttribPointervNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLenum -- ^ @pname@ of type [VertexAttribEnumNV](Graphics-GL-Groups.html#VertexAttribEnumNV).
+  -> Ptr (Ptr a) -- ^ @pointer@ pointing to @1@ element of type @Ptr a@.
+  -> m ()
+glGetVertexAttribPointervNV v1 v2 v3 = liftIO $ dyn377 ptr_glGetVertexAttribPointervNV v1 v2 v3
+
+{-# NOINLINE ptr_glGetVertexAttribPointervNV #-}
+ptr_glGetVertexAttribPointervNV :: FunPtr (GLuint -> GLenum -> Ptr (Ptr a) -> IO ())
+ptr_glGetVertexAttribPointervNV = unsafePerformIO $ getCommand "glGetVertexAttribPointervNV"
+
+-- glGetVertexAttribdv ---------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetVertexAttrib.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGetVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetVertexAttrib.xhtml OpenGL 4.x>.
+glGetVertexAttribdv
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLenum -- ^ @pname@ of type [VertexAttribPropertyARB](Graphics-GL-Groups.html#VertexAttribPropertyARB).
+  -> Ptr GLdouble -- ^ @params@ pointing to @4@ elements of type @GLdouble@.
+  -> m ()
+glGetVertexAttribdv v1 v2 v3 = liftIO $ dyn463 ptr_glGetVertexAttribdv v1 v2 v3
+
+{-# NOINLINE ptr_glGetVertexAttribdv #-}
+ptr_glGetVertexAttribdv :: FunPtr (GLuint -> GLenum -> Ptr GLdouble -> IO ())
+ptr_glGetVertexAttribdv = unsafePerformIO $ getCommand "glGetVertexAttribdv"
+
+-- glGetVertexAttribdvARB ------------------------------------------------------
+
+-- | This command is an alias for 'glGetVertexAttribdv'.
+glGetVertexAttribdvARB
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLenum -- ^ @pname@ of type [VertexAttribPropertyARB](Graphics-GL-Groups.html#VertexAttribPropertyARB).
+  -> Ptr GLdouble -- ^ @params@ pointing to @4@ elements of type @GLdouble@.
+  -> m ()
+glGetVertexAttribdvARB v1 v2 v3 = liftIO $ dyn463 ptr_glGetVertexAttribdvARB v1 v2 v3
+
+{-# NOINLINE ptr_glGetVertexAttribdvARB #-}
+ptr_glGetVertexAttribdvARB :: FunPtr (GLuint -> GLenum -> Ptr GLdouble -> IO ())
+ptr_glGetVertexAttribdvARB = unsafePerformIO $ getCommand "glGetVertexAttribdvARB"
+
+-- glGetVertexAttribdvNV -------------------------------------------------------
+
+-- | This command is an alias for 'glGetVertexAttribdv'.
+glGetVertexAttribdvNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLenum -- ^ @pname@ of type [VertexAttribEnumNV](Graphics-GL-Groups.html#VertexAttribEnumNV).
+  -> Ptr GLdouble -- ^ @params@ pointing to @1@ element of type @GLdouble@.
+  -> m ()
+glGetVertexAttribdvNV v1 v2 v3 = liftIO $ dyn463 ptr_glGetVertexAttribdvNV v1 v2 v3
+
+{-# NOINLINE ptr_glGetVertexAttribdvNV #-}
+ptr_glGetVertexAttribdvNV :: FunPtr (GLuint -> GLenum -> Ptr GLdouble -> IO ())
+ptr_glGetVertexAttribdvNV = unsafePerformIO $ getCommand "glGetVertexAttribdvNV"
+
+-- glGetVertexAttribfv ---------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetVertexAttrib.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGetVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetVertexAttrib.xhtml OpenGL 4.x>.
+glGetVertexAttribfv
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLenum -- ^ @pname@ of type [VertexAttribPropertyARB](Graphics-GL-Groups.html#VertexAttribPropertyARB).
+  -> Ptr GLfloat -- ^ @params@ pointing to @4@ elements of type @GLfloat@.
+  -> m ()
+glGetVertexAttribfv v1 v2 v3 = liftIO $ dyn364 ptr_glGetVertexAttribfv v1 v2 v3
+
+{-# NOINLINE ptr_glGetVertexAttribfv #-}
+ptr_glGetVertexAttribfv :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetVertexAttribfv = unsafePerformIO $ getCommand "glGetVertexAttribfv"
+
+-- glGetVertexAttribfvARB ------------------------------------------------------
+
+-- | This command is an alias for 'glGetVertexAttribfv'.
+glGetVertexAttribfvARB
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLenum -- ^ @pname@ of type [VertexAttribPropertyARB](Graphics-GL-Groups.html#VertexAttribPropertyARB).
+  -> Ptr GLfloat -- ^ @params@ pointing to @4@ elements of type @GLfloat@.
+  -> m ()
+glGetVertexAttribfvARB v1 v2 v3 = liftIO $ dyn364 ptr_glGetVertexAttribfvARB v1 v2 v3
+
+{-# NOINLINE ptr_glGetVertexAttribfvARB #-}
+ptr_glGetVertexAttribfvARB :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetVertexAttribfvARB = unsafePerformIO $ getCommand "glGetVertexAttribfvARB"
+
+-- glGetVertexAttribfvNV -------------------------------------------------------
+
+-- | This command is an alias for 'glGetVertexAttribfv'.
+glGetVertexAttribfvNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLenum -- ^ @pname@ of type [VertexAttribEnumNV](Graphics-GL-Groups.html#VertexAttribEnumNV).
+  -> Ptr GLfloat -- ^ @params@ pointing to @1@ element of type @GLfloat@.
+  -> m ()
+glGetVertexAttribfvNV v1 v2 v3 = liftIO $ dyn364 ptr_glGetVertexAttribfvNV v1 v2 v3
+
+{-# NOINLINE ptr_glGetVertexAttribfvNV #-}
+ptr_glGetVertexAttribfvNV :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetVertexAttribfvNV = unsafePerformIO $ getCommand "glGetVertexAttribfvNV"
+
+-- glGetVertexAttribiv ---------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glGetVertexAttrib.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glGetVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glGetVertexAttrib.xhtml OpenGL 4.x>.
+glGetVertexAttribiv
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLenum -- ^ @pname@ of type [VertexAttribPropertyARB](Graphics-GL-Groups.html#VertexAttribPropertyARB).
+  -> Ptr GLint -- ^ @params@ pointing to @4@ elements of type @GLint@.
+  -> m ()
+glGetVertexAttribiv v1 v2 v3 = liftIO $ dyn348 ptr_glGetVertexAttribiv v1 v2 v3
+
+{-# NOINLINE ptr_glGetVertexAttribiv #-}
+ptr_glGetVertexAttribiv :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetVertexAttribiv = unsafePerformIO $ getCommand "glGetVertexAttribiv"
+
+-- glGetVertexAttribivARB ------------------------------------------------------
+
+-- | This command is an alias for 'glGetVertexAttribiv'.
+glGetVertexAttribivARB
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLenum -- ^ @pname@ of type [VertexAttribPropertyARB](Graphics-GL-Groups.html#VertexAttribPropertyARB).
+  -> Ptr GLint -- ^ @params@ pointing to @4@ elements of type @GLint@.
+  -> m ()
+glGetVertexAttribivARB v1 v2 v3 = liftIO $ dyn348 ptr_glGetVertexAttribivARB v1 v2 v3
+
+{-# NOINLINE ptr_glGetVertexAttribivARB #-}
+ptr_glGetVertexAttribivARB :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetVertexAttribivARB = unsafePerformIO $ getCommand "glGetVertexAttribivARB"
+
+-- glGetVertexAttribivNV -------------------------------------------------------
+
+-- | This command is an alias for 'glGetVertexAttribiv'.
+glGetVertexAttribivNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLenum -- ^ @pname@ of type [VertexAttribEnumNV](Graphics-GL-Groups.html#VertexAttribEnumNV).
+  -> Ptr GLint -- ^ @params@ pointing to @1@ element of type @GLint@.
+  -> m ()
+glGetVertexAttribivNV v1 v2 v3 = liftIO $ dyn348 ptr_glGetVertexAttribivNV v1 v2 v3
+
+{-# NOINLINE ptr_glGetVertexAttribivNV #-}
+ptr_glGetVertexAttribivNV :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetVertexAttribivNV = unsafePerformIO $ getCommand "glGetVertexAttribivNV"
+
+-- glGetVideoCaptureStreamdvNV -------------------------------------------------
+
+glGetVideoCaptureStreamdvNV
+  :: MonadIO m
+  => GLuint -- ^ @video_capture_slot@.
+  -> GLuint -- ^ @stream@.
+  -> GLenum -- ^ @pname@.
+  -> Ptr GLdouble -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLdouble@.
+  -> m ()
+glGetVideoCaptureStreamdvNV v1 v2 v3 v4 = liftIO $ dyn465 ptr_glGetVideoCaptureStreamdvNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetVideoCaptureStreamdvNV #-}
+ptr_glGetVideoCaptureStreamdvNV :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLdouble -> IO ())
+ptr_glGetVideoCaptureStreamdvNV = unsafePerformIO $ getCommand "glGetVideoCaptureStreamdvNV"
+
+-- glGetVideoCaptureStreamfvNV -------------------------------------------------
+
+glGetVideoCaptureStreamfvNV
+  :: MonadIO m
+  => GLuint -- ^ @video_capture_slot@.
+  -> GLuint -- ^ @stream@.
+  -> GLenum -- ^ @pname@.
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
+  -> m ()
+glGetVideoCaptureStreamfvNV v1 v2 v3 v4 = liftIO $ dyn466 ptr_glGetVideoCaptureStreamfvNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetVideoCaptureStreamfvNV #-}
+ptr_glGetVideoCaptureStreamfvNV :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glGetVideoCaptureStreamfvNV = unsafePerformIO $ getCommand "glGetVideoCaptureStreamfvNV"
+
+-- glGetVideoCaptureStreamivNV -------------------------------------------------
+
+glGetVideoCaptureStreamivNV
+  :: MonadIO m
+  => GLuint -- ^ @video_capture_slot@.
+  -> GLuint -- ^ @stream@.
+  -> GLenum -- ^ @pname@.
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetVideoCaptureStreamivNV v1 v2 v3 v4 = liftIO $ dyn314 ptr_glGetVideoCaptureStreamivNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetVideoCaptureStreamivNV #-}
+ptr_glGetVideoCaptureStreamivNV :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetVideoCaptureStreamivNV = unsafePerformIO $ getCommand "glGetVideoCaptureStreamivNV"
+
+-- glGetVideoCaptureivNV -------------------------------------------------------
+
+glGetVideoCaptureivNV
+  :: MonadIO m
+  => GLuint -- ^ @video_capture_slot@.
+  -> GLenum -- ^ @pname@.
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetVideoCaptureivNV v1 v2 v3 = liftIO $ dyn348 ptr_glGetVideoCaptureivNV v1 v2 v3
+
+{-# NOINLINE ptr_glGetVideoCaptureivNV #-}
+ptr_glGetVideoCaptureivNV :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetVideoCaptureivNV = unsafePerformIO $ getCommand "glGetVideoCaptureivNV"
+
+-- glGetVideoi64vNV ------------------------------------------------------------
+
+glGetVideoi64vNV
+  :: MonadIO m
+  => GLuint -- ^ @video_slot@.
+  -> GLenum -- ^ @pname@.
+  -> Ptr GLint64EXT -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint64EXT@.
+  -> m ()
+glGetVideoi64vNV v1 v2 v3 = liftIO $ dyn464 ptr_glGetVideoi64vNV v1 v2 v3
+
+{-# NOINLINE ptr_glGetVideoi64vNV #-}
+ptr_glGetVideoi64vNV :: FunPtr (GLuint -> GLenum -> Ptr GLint64EXT -> IO ())
+ptr_glGetVideoi64vNV = unsafePerformIO $ getCommand "glGetVideoi64vNV"
+
+-- glGetVideoivNV --------------------------------------------------------------
+
+glGetVideoivNV
+  :: MonadIO m
+  => GLuint -- ^ @video_slot@.
+  -> GLenum -- ^ @pname@.
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glGetVideoivNV v1 v2 v3 = liftIO $ dyn348 ptr_glGetVideoivNV v1 v2 v3
+
+{-# NOINLINE ptr_glGetVideoivNV #-}
+ptr_glGetVideoivNV :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glGetVideoivNV = unsafePerformIO $ getCommand "glGetVideoivNV"
+
+-- glGetVideoui64vNV -----------------------------------------------------------
+
+glGetVideoui64vNV
+  :: MonadIO m
+  => GLuint -- ^ @video_slot@.
+  -> GLenum -- ^ @pname@.
+  -> Ptr GLuint64EXT -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLuint64EXT@.
+  -> m ()
+glGetVideoui64vNV v1 v2 v3 = liftIO $ dyn376 ptr_glGetVideoui64vNV v1 v2 v3
+
+{-# NOINLINE ptr_glGetVideoui64vNV #-}
+ptr_glGetVideoui64vNV :: FunPtr (GLuint -> GLenum -> Ptr GLuint64EXT -> IO ())
+ptr_glGetVideoui64vNV = unsafePerformIO $ getCommand "glGetVideoui64vNV"
+
diff --git a/src/Graphics/GL/Functions/F14.hs b/src/Graphics/GL/Functions/F14.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Functions/F14.hs
@@ -0,0 +1,1575 @@
+{-# OPTIONS_HADDOCK hide #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Functions.F14
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- Raw functions from the
+-- <http://www.opengl.org/registry/ OpenGL registry>.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Functions.F14 (
+  glGetVideouivNV,
+  glGetVkProcAddrNV,
+  glGetnColorTable,
+  glGetnColorTableARB,
+  glGetnCompressedTexImage,
+  glGetnCompressedTexImageARB,
+  glGetnConvolutionFilter,
+  glGetnConvolutionFilterARB,
+  glGetnHistogram,
+  glGetnHistogramARB,
+  glGetnMapdv,
+  glGetnMapdvARB,
+  glGetnMapfv,
+  glGetnMapfvARB,
+  glGetnMapiv,
+  glGetnMapivARB,
+  glGetnMinmax,
+  glGetnMinmaxARB,
+  glGetnPixelMapfv,
+  glGetnPixelMapfvARB,
+  glGetnPixelMapuiv,
+  glGetnPixelMapuivARB,
+  glGetnPixelMapusv,
+  glGetnPixelMapusvARB,
+  glGetnPolygonStipple,
+  glGetnPolygonStippleARB,
+  glGetnSeparableFilter,
+  glGetnSeparableFilterARB,
+  glGetnTexImage,
+  glGetnTexImageARB,
+  glGetnUniformdv,
+  glGetnUniformdvARB,
+  glGetnUniformfv,
+  glGetnUniformfvARB,
+  glGetnUniformfvEXT,
+  glGetnUniformfvKHR,
+  glGetnUniformi64vARB,
+  glGetnUniformiv,
+  glGetnUniformivARB,
+  glGetnUniformivEXT,
+  glGetnUniformivKHR,
+  glGetnUniformui64vARB,
+  glGetnUniformuiv,
+  glGetnUniformuivARB,
+  glGetnUniformuivKHR,
+  glGlobalAlphaFactorbSUN,
+  glGlobalAlphaFactordSUN,
+  glGlobalAlphaFactorfSUN,
+  glGlobalAlphaFactoriSUN,
+  glGlobalAlphaFactorsSUN,
+  glGlobalAlphaFactorubSUN,
+  glGlobalAlphaFactoruiSUN,
+  glGlobalAlphaFactorusSUN,
+  glHint,
+  glHintPGI,
+  glHistogram,
+  glHistogramEXT,
+  glIglooInterfaceSGIX,
+  glImageTransformParameterfHP,
+  glImageTransformParameterfvHP,
+  glImageTransformParameteriHP,
+  glImageTransformParameterivHP,
+  glImportMemoryFdEXT,
+  glImportMemoryWin32HandleEXT,
+  glImportMemoryWin32NameEXT,
+  glImportSemaphoreFdEXT,
+  glImportSemaphoreWin32HandleEXT,
+  glImportSemaphoreWin32NameEXT,
+  glImportSyncEXT,
+  glIndexFormatNV,
+  glIndexFuncEXT,
+  glIndexMask,
+  glIndexMaterialEXT,
+  glIndexPointer,
+  glIndexPointerEXT,
+  glIndexPointerListIBM,
+  glIndexd,
+  glIndexdv,
+  glIndexf,
+  glIndexfv,
+  glIndexi,
+  glIndexiv,
+  glIndexs,
+  glIndexsv,
+  glIndexub,
+  glIndexubv,
+  glIndexxOES,
+  glIndexxvOES,
+  glInitNames,
+  glInsertComponentEXT,
+  glInsertEventMarkerEXT,
+  glInstrumentsBufferSGIX,
+  glInterleavedArrays,
+  glInterpolatePathsNV,
+  glInvalidateBufferData,
+  glInvalidateBufferSubData,
+  glInvalidateFramebuffer,
+  glInvalidateNamedFramebufferData,
+  glInvalidateNamedFramebufferSubData,
+  glInvalidateSubFramebuffer
+) where
+
+import Control.Monad.IO.Class ( MonadIO(..) )
+import Foreign.Ptr
+import Graphics.GL.Foreign
+import Graphics.GL.Types
+import System.IO.Unsafe ( unsafePerformIO )
+
+-- glGetVideouivNV -------------------------------------------------------------
+
+glGetVideouivNV
+  :: MonadIO m
+  => GLuint -- ^ @video_slot@.
+  -> GLenum -- ^ @pname@.
+  -> Ptr GLuint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLuint@.
+  -> m ()
+glGetVideouivNV v1 v2 v3 = liftIO $ dyn392 ptr_glGetVideouivNV v1 v2 v3
+
+{-# NOINLINE ptr_glGetVideouivNV #-}
+ptr_glGetVideouivNV :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
+ptr_glGetVideouivNV = unsafePerformIO $ getCommand "glGetVideouivNV"
+
+-- glGetVkProcAddrNV -----------------------------------------------------------
+
+glGetVkProcAddrNV
+  :: MonadIO m
+  => Ptr GLchar -- ^ @name@ pointing to @COMPSIZE(name)@ elements of type @GLchar@.
+  -> m GLVULKANPROCNV
+glGetVkProcAddrNV v1 = liftIO $ dyn467 ptr_glGetVkProcAddrNV v1
+
+{-# NOINLINE ptr_glGetVkProcAddrNV #-}
+ptr_glGetVkProcAddrNV :: FunPtr (Ptr GLchar -> IO GLVULKANPROCNV)
+ptr_glGetVkProcAddrNV = unsafePerformIO $ getCommand "glGetVkProcAddrNV"
+
+-- glGetnColorTable ------------------------------------------------------------
+
+glGetnColorTable
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ColorTableTarget](Graphics-GL-Groups.html#ColorTableTarget).
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr a -- ^ @table@.
+  -> m ()
+glGetnColorTable v1 v2 v3 v4 v5 = liftIO $ dyn468 ptr_glGetnColorTable v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glGetnColorTable #-}
+ptr_glGetnColorTable :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glGetnColorTable = unsafePerformIO $ getCommand "glGetnColorTable"
+
+-- glGetnColorTableARB ---------------------------------------------------------
+
+glGetnColorTableARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ColorTableTarget](Graphics-GL-Groups.html#ColorTableTarget).
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr a -- ^ @table@ pointing to @bufSize@ elements of type @a@.
+  -> m ()
+glGetnColorTableARB v1 v2 v3 v4 v5 = liftIO $ dyn468 ptr_glGetnColorTableARB v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glGetnColorTableARB #-}
+ptr_glGetnColorTableARB :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glGetnColorTableARB = unsafePerformIO $ getCommand "glGetnColorTableARB"
+
+-- glGetnCompressedTexImage ----------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetCompressedTexImage.xhtml OpenGL 4.x>.
+glGetnCompressedTexImage
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @lod@.
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr a -- ^ @pixels@.
+  -> m ()
+glGetnCompressedTexImage v1 v2 v3 v4 = liftIO $ dyn469 ptr_glGetnCompressedTexImage v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetnCompressedTexImage #-}
+ptr_glGetnCompressedTexImage :: FunPtr (GLenum -> GLint -> GLsizei -> Ptr a -> IO ())
+ptr_glGetnCompressedTexImage = unsafePerformIO $ getCommand "glGetnCompressedTexImage"
+
+-- glGetnCompressedTexImageARB -------------------------------------------------
+
+glGetnCompressedTexImageARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @lod@.
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr a -- ^ @img@ pointing to @bufSize@ elements of type @a@.
+  -> m ()
+glGetnCompressedTexImageARB v1 v2 v3 v4 = liftIO $ dyn469 ptr_glGetnCompressedTexImageARB v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetnCompressedTexImageARB #-}
+ptr_glGetnCompressedTexImageARB :: FunPtr (GLenum -> GLint -> GLsizei -> Ptr a -> IO ())
+ptr_glGetnCompressedTexImageARB = unsafePerformIO $ getCommand "glGetnCompressedTexImageARB"
+
+-- glGetnConvolutionFilter -----------------------------------------------------
+
+glGetnConvolutionFilter
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ConvolutionTarget](Graphics-GL-Groups.html#ConvolutionTarget).
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr a -- ^ @image@.
+  -> m ()
+glGetnConvolutionFilter v1 v2 v3 v4 v5 = liftIO $ dyn468 ptr_glGetnConvolutionFilter v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glGetnConvolutionFilter #-}
+ptr_glGetnConvolutionFilter :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glGetnConvolutionFilter = unsafePerformIO $ getCommand "glGetnConvolutionFilter"
+
+-- glGetnConvolutionFilterARB --------------------------------------------------
+
+glGetnConvolutionFilterARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ConvolutionTarget](Graphics-GL-Groups.html#ConvolutionTarget).
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr a -- ^ @image@ pointing to @bufSize@ elements of type @a@.
+  -> m ()
+glGetnConvolutionFilterARB v1 v2 v3 v4 v5 = liftIO $ dyn468 ptr_glGetnConvolutionFilterARB v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glGetnConvolutionFilterARB #-}
+ptr_glGetnConvolutionFilterARB :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glGetnConvolutionFilterARB = unsafePerformIO $ getCommand "glGetnConvolutionFilterARB"
+
+-- glGetnHistogram -------------------------------------------------------------
+
+glGetnHistogram
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [HistogramTargetEXT](Graphics-GL-Groups.html#HistogramTargetEXT).
+  -> GLboolean -- ^ @reset@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr a -- ^ @values@.
+  -> m ()
+glGetnHistogram v1 v2 v3 v4 v5 v6 = liftIO $ dyn470 ptr_glGetnHistogram v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glGetnHistogram #-}
+ptr_glGetnHistogram :: FunPtr (GLenum -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glGetnHistogram = unsafePerformIO $ getCommand "glGetnHistogram"
+
+-- glGetnHistogramARB ----------------------------------------------------------
+
+glGetnHistogramARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [HistogramTargetEXT](Graphics-GL-Groups.html#HistogramTargetEXT).
+  -> GLboolean -- ^ @reset@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr a -- ^ @values@ pointing to @bufSize@ elements of type @a@.
+  -> m ()
+glGetnHistogramARB v1 v2 v3 v4 v5 v6 = liftIO $ dyn470 ptr_glGetnHistogramARB v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glGetnHistogramARB #-}
+ptr_glGetnHistogramARB :: FunPtr (GLenum -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glGetnHistogramARB = unsafePerformIO $ getCommand "glGetnHistogramARB"
+
+-- glGetnMapdv -----------------------------------------------------------------
+
+glGetnMapdv
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [MapTarget](Graphics-GL-Groups.html#MapTarget).
+  -> GLenum -- ^ @query@ of type [MapQuery](Graphics-GL-Groups.html#MapQuery).
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr GLdouble -- ^ @v@.
+  -> m ()
+glGetnMapdv v1 v2 v3 v4 = liftIO $ dyn471 ptr_glGetnMapdv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetnMapdv #-}
+ptr_glGetnMapdv :: FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLdouble -> IO ())
+ptr_glGetnMapdv = unsafePerformIO $ getCommand "glGetnMapdv"
+
+-- glGetnMapdvARB --------------------------------------------------------------
+
+glGetnMapdvARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [MapTarget](Graphics-GL-Groups.html#MapTarget).
+  -> GLenum -- ^ @query@ of type [MapQuery](Graphics-GL-Groups.html#MapQuery).
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr GLdouble -- ^ @v@ pointing to @bufSize@ elements of type @GLdouble@.
+  -> m ()
+glGetnMapdvARB v1 v2 v3 v4 = liftIO $ dyn471 ptr_glGetnMapdvARB v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetnMapdvARB #-}
+ptr_glGetnMapdvARB :: FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLdouble -> IO ())
+ptr_glGetnMapdvARB = unsafePerformIO $ getCommand "glGetnMapdvARB"
+
+-- glGetnMapfv -----------------------------------------------------------------
+
+glGetnMapfv
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [MapTarget](Graphics-GL-Groups.html#MapTarget).
+  -> GLenum -- ^ @query@ of type [MapQuery](Graphics-GL-Groups.html#MapQuery).
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr GLfloat -- ^ @v@.
+  -> m ()
+glGetnMapfv v1 v2 v3 v4 = liftIO $ dyn472 ptr_glGetnMapfv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetnMapfv #-}
+ptr_glGetnMapfv :: FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLfloat -> IO ())
+ptr_glGetnMapfv = unsafePerformIO $ getCommand "glGetnMapfv"
+
+-- glGetnMapfvARB --------------------------------------------------------------
+
+glGetnMapfvARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [MapTarget](Graphics-GL-Groups.html#MapTarget).
+  -> GLenum -- ^ @query@ of type [MapQuery](Graphics-GL-Groups.html#MapQuery).
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr GLfloat -- ^ @v@ pointing to @bufSize@ elements of type @GLfloat@.
+  -> m ()
+glGetnMapfvARB v1 v2 v3 v4 = liftIO $ dyn472 ptr_glGetnMapfvARB v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetnMapfvARB #-}
+ptr_glGetnMapfvARB :: FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLfloat -> IO ())
+ptr_glGetnMapfvARB = unsafePerformIO $ getCommand "glGetnMapfvARB"
+
+-- glGetnMapiv -----------------------------------------------------------------
+
+glGetnMapiv
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [MapTarget](Graphics-GL-Groups.html#MapTarget).
+  -> GLenum -- ^ @query@ of type [MapQuery](Graphics-GL-Groups.html#MapQuery).
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr GLint -- ^ @v@.
+  -> m ()
+glGetnMapiv v1 v2 v3 v4 = liftIO $ dyn473 ptr_glGetnMapiv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetnMapiv #-}
+ptr_glGetnMapiv :: FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLint -> IO ())
+ptr_glGetnMapiv = unsafePerformIO $ getCommand "glGetnMapiv"
+
+-- glGetnMapivARB --------------------------------------------------------------
+
+glGetnMapivARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [MapTarget](Graphics-GL-Groups.html#MapTarget).
+  -> GLenum -- ^ @query@ of type [MapQuery](Graphics-GL-Groups.html#MapQuery).
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr GLint -- ^ @v@ pointing to @bufSize@ elements of type @GLint@.
+  -> m ()
+glGetnMapivARB v1 v2 v3 v4 = liftIO $ dyn473 ptr_glGetnMapivARB v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetnMapivARB #-}
+ptr_glGetnMapivARB :: FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLint -> IO ())
+ptr_glGetnMapivARB = unsafePerformIO $ getCommand "glGetnMapivARB"
+
+-- glGetnMinmax ----------------------------------------------------------------
+
+glGetnMinmax
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [MinmaxTargetEXT](Graphics-GL-Groups.html#MinmaxTargetEXT).
+  -> GLboolean -- ^ @reset@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr a -- ^ @values@.
+  -> m ()
+glGetnMinmax v1 v2 v3 v4 v5 v6 = liftIO $ dyn470 ptr_glGetnMinmax v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glGetnMinmax #-}
+ptr_glGetnMinmax :: FunPtr (GLenum -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glGetnMinmax = unsafePerformIO $ getCommand "glGetnMinmax"
+
+-- glGetnMinmaxARB -------------------------------------------------------------
+
+glGetnMinmaxARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [MinmaxTargetEXT](Graphics-GL-Groups.html#MinmaxTargetEXT).
+  -> GLboolean -- ^ @reset@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr a -- ^ @values@ pointing to @bufSize@ elements of type @a@.
+  -> m ()
+glGetnMinmaxARB v1 v2 v3 v4 v5 v6 = liftIO $ dyn470 ptr_glGetnMinmaxARB v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glGetnMinmaxARB #-}
+ptr_glGetnMinmaxARB :: FunPtr (GLenum -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glGetnMinmaxARB = unsafePerformIO $ getCommand "glGetnMinmaxARB"
+
+-- glGetnPixelMapfv ------------------------------------------------------------
+
+glGetnPixelMapfv
+  :: MonadIO m
+  => GLenum -- ^ @map@ of type [PixelMap](Graphics-GL-Groups.html#PixelMap).
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr GLfloat -- ^ @values@.
+  -> m ()
+glGetnPixelMapfv v1 v2 v3 = liftIO $ dyn233 ptr_glGetnPixelMapfv v1 v2 v3
+
+{-# NOINLINE ptr_glGetnPixelMapfv #-}
+ptr_glGetnPixelMapfv :: FunPtr (GLenum -> GLsizei -> Ptr GLfloat -> IO ())
+ptr_glGetnPixelMapfv = unsafePerformIO $ getCommand "glGetnPixelMapfv"
+
+-- glGetnPixelMapfvARB ---------------------------------------------------------
+
+glGetnPixelMapfvARB
+  :: MonadIO m
+  => GLenum -- ^ @map@ of type [PixelMap](Graphics-GL-Groups.html#PixelMap).
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr GLfloat -- ^ @values@ pointing to @bufSize@ elements of type @GLfloat@.
+  -> m ()
+glGetnPixelMapfvARB v1 v2 v3 = liftIO $ dyn233 ptr_glGetnPixelMapfvARB v1 v2 v3
+
+{-# NOINLINE ptr_glGetnPixelMapfvARB #-}
+ptr_glGetnPixelMapfvARB :: FunPtr (GLenum -> GLsizei -> Ptr GLfloat -> IO ())
+ptr_glGetnPixelMapfvARB = unsafePerformIO $ getCommand "glGetnPixelMapfvARB"
+
+-- glGetnPixelMapuiv -----------------------------------------------------------
+
+glGetnPixelMapuiv
+  :: MonadIO m
+  => GLenum -- ^ @map@ of type [PixelMap](Graphics-GL-Groups.html#PixelMap).
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr GLuint -- ^ @values@.
+  -> m ()
+glGetnPixelMapuiv v1 v2 v3 = liftIO $ dyn204 ptr_glGetnPixelMapuiv v1 v2 v3
+
+{-# NOINLINE ptr_glGetnPixelMapuiv #-}
+ptr_glGetnPixelMapuiv :: FunPtr (GLenum -> GLsizei -> Ptr GLuint -> IO ())
+ptr_glGetnPixelMapuiv = unsafePerformIO $ getCommand "glGetnPixelMapuiv"
+
+-- glGetnPixelMapuivARB --------------------------------------------------------
+
+glGetnPixelMapuivARB
+  :: MonadIO m
+  => GLenum -- ^ @map@ of type [PixelMap](Graphics-GL-Groups.html#PixelMap).
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr GLuint -- ^ @values@ pointing to @bufSize@ elements of type @GLuint@.
+  -> m ()
+glGetnPixelMapuivARB v1 v2 v3 = liftIO $ dyn204 ptr_glGetnPixelMapuivARB v1 v2 v3
+
+{-# NOINLINE ptr_glGetnPixelMapuivARB #-}
+ptr_glGetnPixelMapuivARB :: FunPtr (GLenum -> GLsizei -> Ptr GLuint -> IO ())
+ptr_glGetnPixelMapuivARB = unsafePerformIO $ getCommand "glGetnPixelMapuivARB"
+
+-- glGetnPixelMapusv -----------------------------------------------------------
+
+glGetnPixelMapusv
+  :: MonadIO m
+  => GLenum -- ^ @map@ of type [PixelMap](Graphics-GL-Groups.html#PixelMap).
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr GLushort -- ^ @values@.
+  -> m ()
+glGetnPixelMapusv v1 v2 v3 = liftIO $ dyn474 ptr_glGetnPixelMapusv v1 v2 v3
+
+{-# NOINLINE ptr_glGetnPixelMapusv #-}
+ptr_glGetnPixelMapusv :: FunPtr (GLenum -> GLsizei -> Ptr GLushort -> IO ())
+ptr_glGetnPixelMapusv = unsafePerformIO $ getCommand "glGetnPixelMapusv"
+
+-- glGetnPixelMapusvARB --------------------------------------------------------
+
+glGetnPixelMapusvARB
+  :: MonadIO m
+  => GLenum -- ^ @map@ of type [PixelMap](Graphics-GL-Groups.html#PixelMap).
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr GLushort -- ^ @values@ pointing to @bufSize@ elements of type @GLushort@.
+  -> m ()
+glGetnPixelMapusvARB v1 v2 v3 = liftIO $ dyn474 ptr_glGetnPixelMapusvARB v1 v2 v3
+
+{-# NOINLINE ptr_glGetnPixelMapusvARB #-}
+ptr_glGetnPixelMapusvARB :: FunPtr (GLenum -> GLsizei -> Ptr GLushort -> IO ())
+ptr_glGetnPixelMapusvARB = unsafePerformIO $ getCommand "glGetnPixelMapusvARB"
+
+-- glGetnPolygonStipple --------------------------------------------------------
+
+glGetnPolygonStipple
+  :: MonadIO m
+  => GLsizei -- ^ @bufSize@.
+  -> Ptr GLubyte -- ^ @pattern@.
+  -> m ()
+glGetnPolygonStipple v1 v2 = liftIO $ dyn475 ptr_glGetnPolygonStipple v1 v2
+
+{-# NOINLINE ptr_glGetnPolygonStipple #-}
+ptr_glGetnPolygonStipple :: FunPtr (GLsizei -> Ptr GLubyte -> IO ())
+ptr_glGetnPolygonStipple = unsafePerformIO $ getCommand "glGetnPolygonStipple"
+
+-- glGetnPolygonStippleARB -----------------------------------------------------
+
+glGetnPolygonStippleARB
+  :: MonadIO m
+  => GLsizei -- ^ @bufSize@.
+  -> Ptr GLubyte -- ^ @pattern@ pointing to @bufSize@ elements of type @GLubyte@.
+  -> m ()
+glGetnPolygonStippleARB v1 v2 = liftIO $ dyn475 ptr_glGetnPolygonStippleARB v1 v2
+
+{-# NOINLINE ptr_glGetnPolygonStippleARB #-}
+ptr_glGetnPolygonStippleARB :: FunPtr (GLsizei -> Ptr GLubyte -> IO ())
+ptr_glGetnPolygonStippleARB = unsafePerformIO $ getCommand "glGetnPolygonStippleARB"
+
+-- glGetnSeparableFilter -------------------------------------------------------
+
+glGetnSeparableFilter
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [SeparableTargetEXT](Graphics-GL-Groups.html#SeparableTargetEXT).
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> GLsizei -- ^ @rowBufSize@.
+  -> Ptr a -- ^ @row@.
+  -> GLsizei -- ^ @columnBufSize@.
+  -> Ptr b -- ^ @column@.
+  -> Ptr c -- ^ @span@.
+  -> m ()
+glGetnSeparableFilter v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn476 ptr_glGetnSeparableFilter v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glGetnSeparableFilter #-}
+ptr_glGetnSeparableFilter :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr a -> GLsizei -> Ptr b -> Ptr c -> IO ())
+ptr_glGetnSeparableFilter = unsafePerformIO $ getCommand "glGetnSeparableFilter"
+
+-- glGetnSeparableFilterARB ----------------------------------------------------
+
+glGetnSeparableFilterARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [SeparableTargetEXT](Graphics-GL-Groups.html#SeparableTargetEXT).
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> GLsizei -- ^ @rowBufSize@.
+  -> Ptr a -- ^ @row@ pointing to @rowBufSize@ elements of type @a@.
+  -> GLsizei -- ^ @columnBufSize@.
+  -> Ptr b -- ^ @column@ pointing to @columnBufSize@ elements of type @b@.
+  -> Ptr c -- ^ @span@ pointing to @0@ elements of type @c@.
+  -> m ()
+glGetnSeparableFilterARB v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn476 ptr_glGetnSeparableFilterARB v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glGetnSeparableFilterARB #-}
+ptr_glGetnSeparableFilterARB :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr a -> GLsizei -> Ptr b -> Ptr c -> IO ())
+ptr_glGetnSeparableFilterARB = unsafePerformIO $ getCommand "glGetnSeparableFilterARB"
+
+-- glGetnTexImage --------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetTexImage.xhtml OpenGL 4.x>.
+glGetnTexImage
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr a -- ^ @pixels@ pointing to @bufSize@ elements of type @a@.
+  -> m ()
+glGetnTexImage v1 v2 v3 v4 v5 v6 = liftIO $ dyn477 ptr_glGetnTexImage v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glGetnTexImage #-}
+ptr_glGetnTexImage :: FunPtr (GLenum -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glGetnTexImage = unsafePerformIO $ getCommand "glGetnTexImage"
+
+-- glGetnTexImageARB -----------------------------------------------------------
+
+glGetnTexImageARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr a -- ^ @img@ pointing to @bufSize@ elements of type @a@.
+  -> m ()
+glGetnTexImageARB v1 v2 v3 v4 v5 v6 = liftIO $ dyn477 ptr_glGetnTexImageARB v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glGetnTexImageARB #-}
+ptr_glGetnTexImageARB :: FunPtr (GLenum -> GLint -> GLenum -> GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glGetnTexImageARB = unsafePerformIO $ getCommand "glGetnTexImageARB"
+
+-- glGetnUniformdv -------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetUniform.xhtml OpenGL 4.x>.
+glGetnUniformdv
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr GLdouble -- ^ @params@ pointing to @bufSize@ elements of type @GLdouble@.
+  -> m ()
+glGetnUniformdv v1 v2 v3 v4 = liftIO $ dyn478 ptr_glGetnUniformdv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetnUniformdv #-}
+ptr_glGetnUniformdv :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())
+ptr_glGetnUniformdv = unsafePerformIO $ getCommand "glGetnUniformdv"
+
+-- glGetnUniformdvARB ----------------------------------------------------------
+
+glGetnUniformdvARB
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr GLdouble -- ^ @params@ pointing to @bufSize@ elements of type @GLdouble@.
+  -> m ()
+glGetnUniformdvARB v1 v2 v3 v4 = liftIO $ dyn478 ptr_glGetnUniformdvARB v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetnUniformdvARB #-}
+ptr_glGetnUniformdvARB :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())
+ptr_glGetnUniformdvARB = unsafePerformIO $ getCommand "glGetnUniformdvARB"
+
+-- glGetnUniformfv -------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetUniform.xhtml OpenGL 4.x>.
+glGetnUniformfv
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr GLfloat -- ^ @params@ pointing to @bufSize@ elements of type @GLfloat@.
+  -> m ()
+glGetnUniformfv v1 v2 v3 v4 = liftIO $ dyn479 ptr_glGetnUniformfv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetnUniformfv #-}
+ptr_glGetnUniformfv :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
+ptr_glGetnUniformfv = unsafePerformIO $ getCommand "glGetnUniformfv"
+
+-- glGetnUniformfvARB ----------------------------------------------------------
+
+glGetnUniformfvARB
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr GLfloat -- ^ @params@ pointing to @bufSize@ elements of type @GLfloat@.
+  -> m ()
+glGetnUniformfvARB v1 v2 v3 v4 = liftIO $ dyn479 ptr_glGetnUniformfvARB v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetnUniformfvARB #-}
+ptr_glGetnUniformfvARB :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
+ptr_glGetnUniformfvARB = unsafePerformIO $ getCommand "glGetnUniformfvARB"
+
+-- glGetnUniformfvEXT ----------------------------------------------------------
+
+-- | This command is an alias for 'glGetnUniformfv'.
+glGetnUniformfvEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr GLfloat -- ^ @params@ pointing to @bufSize@ elements of type @GLfloat@.
+  -> m ()
+glGetnUniformfvEXT v1 v2 v3 v4 = liftIO $ dyn479 ptr_glGetnUniformfvEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetnUniformfvEXT #-}
+ptr_glGetnUniformfvEXT :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
+ptr_glGetnUniformfvEXT = unsafePerformIO $ getCommand "glGetnUniformfvEXT"
+
+-- glGetnUniformfvKHR ----------------------------------------------------------
+
+-- | This command is an alias for 'glGetnUniformfv'.
+glGetnUniformfvKHR
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr GLfloat -- ^ @params@ pointing to @bufSize@ elements of type @GLfloat@.
+  -> m ()
+glGetnUniformfvKHR v1 v2 v3 v4 = liftIO $ dyn479 ptr_glGetnUniformfvKHR v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetnUniformfvKHR #-}
+ptr_glGetnUniformfvKHR :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
+ptr_glGetnUniformfvKHR = unsafePerformIO $ getCommand "glGetnUniformfvKHR"
+
+-- glGetnUniformi64vARB --------------------------------------------------------
+
+glGetnUniformi64vARB
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr GLint64 -- ^ @params@ pointing to @bufSize@ elements of type @GLint64@.
+  -> m ()
+glGetnUniformi64vARB v1 v2 v3 v4 = liftIO $ dyn480 ptr_glGetnUniformi64vARB v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetnUniformi64vARB #-}
+ptr_glGetnUniformi64vARB :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64 -> IO ())
+ptr_glGetnUniformi64vARB = unsafePerformIO $ getCommand "glGetnUniformi64vARB"
+
+-- glGetnUniformiv -------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetUniform.xhtml OpenGL 4.x>.
+glGetnUniformiv
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr GLint -- ^ @params@ pointing to @bufSize@ elements of type @GLint@.
+  -> m ()
+glGetnUniformiv v1 v2 v3 v4 = liftIO $ dyn481 ptr_glGetnUniformiv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetnUniformiv #-}
+ptr_glGetnUniformiv :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
+ptr_glGetnUniformiv = unsafePerformIO $ getCommand "glGetnUniformiv"
+
+-- glGetnUniformivARB ----------------------------------------------------------
+
+glGetnUniformivARB
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr GLint -- ^ @params@ pointing to @bufSize@ elements of type @GLint@.
+  -> m ()
+glGetnUniformivARB v1 v2 v3 v4 = liftIO $ dyn481 ptr_glGetnUniformivARB v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetnUniformivARB #-}
+ptr_glGetnUniformivARB :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
+ptr_glGetnUniformivARB = unsafePerformIO $ getCommand "glGetnUniformivARB"
+
+-- glGetnUniformivEXT ----------------------------------------------------------
+
+-- | This command is an alias for 'glGetnUniformiv'.
+glGetnUniformivEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr GLint -- ^ @params@ pointing to @bufSize@ elements of type @GLint@.
+  -> m ()
+glGetnUniformivEXT v1 v2 v3 v4 = liftIO $ dyn481 ptr_glGetnUniformivEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetnUniformivEXT #-}
+ptr_glGetnUniformivEXT :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
+ptr_glGetnUniformivEXT = unsafePerformIO $ getCommand "glGetnUniformivEXT"
+
+-- glGetnUniformivKHR ----------------------------------------------------------
+
+-- | This command is an alias for 'glGetnUniformiv'.
+glGetnUniformivKHR
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr GLint -- ^ @params@ pointing to @bufSize@ elements of type @GLint@.
+  -> m ()
+glGetnUniformivKHR v1 v2 v3 v4 = liftIO $ dyn481 ptr_glGetnUniformivKHR v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetnUniformivKHR #-}
+ptr_glGetnUniformivKHR :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
+ptr_glGetnUniformivKHR = unsafePerformIO $ getCommand "glGetnUniformivKHR"
+
+-- glGetnUniformui64vARB -------------------------------------------------------
+
+glGetnUniformui64vARB
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr GLuint64 -- ^ @params@ pointing to @bufSize@ elements of type @GLuint64@.
+  -> m ()
+glGetnUniformui64vARB v1 v2 v3 v4 = liftIO $ dyn482 ptr_glGetnUniformui64vARB v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetnUniformui64vARB #-}
+ptr_glGetnUniformui64vARB :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> IO ())
+ptr_glGetnUniformui64vARB = unsafePerformIO $ getCommand "glGetnUniformui64vARB"
+
+-- glGetnUniformuiv ------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glGetUniform.xhtml OpenGL 4.x>.
+glGetnUniformuiv
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr GLuint -- ^ @params@ pointing to @bufSize@ elements of type @GLuint@.
+  -> m ()
+glGetnUniformuiv v1 v2 v3 v4 = liftIO $ dyn483 ptr_glGetnUniformuiv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetnUniformuiv #-}
+ptr_glGetnUniformuiv :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
+ptr_glGetnUniformuiv = unsafePerformIO $ getCommand "glGetnUniformuiv"
+
+-- glGetnUniformuivARB ---------------------------------------------------------
+
+glGetnUniformuivARB
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr GLuint -- ^ @params@ pointing to @bufSize@ elements of type @GLuint@.
+  -> m ()
+glGetnUniformuivARB v1 v2 v3 v4 = liftIO $ dyn483 ptr_glGetnUniformuivARB v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetnUniformuivARB #-}
+ptr_glGetnUniformuivARB :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
+ptr_glGetnUniformuivARB = unsafePerformIO $ getCommand "glGetnUniformuivARB"
+
+-- glGetnUniformuivKHR ---------------------------------------------------------
+
+-- | This command is an alias for 'glGetnUniformuiv'.
+glGetnUniformuivKHR
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr GLuint -- ^ @params@ pointing to @bufSize@ elements of type @GLuint@.
+  -> m ()
+glGetnUniformuivKHR v1 v2 v3 v4 = liftIO $ dyn483 ptr_glGetnUniformuivKHR v1 v2 v3 v4
+
+{-# NOINLINE ptr_glGetnUniformuivKHR #-}
+ptr_glGetnUniformuivKHR :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
+ptr_glGetnUniformuivKHR = unsafePerformIO $ getCommand "glGetnUniformuivKHR"
+
+-- glGlobalAlphaFactorbSUN -----------------------------------------------------
+
+glGlobalAlphaFactorbSUN
+  :: MonadIO m
+  => GLbyte -- ^ @factor@.
+  -> m ()
+glGlobalAlphaFactorbSUN v1 = liftIO $ dyn484 ptr_glGlobalAlphaFactorbSUN v1
+
+{-# NOINLINE ptr_glGlobalAlphaFactorbSUN #-}
+ptr_glGlobalAlphaFactorbSUN :: FunPtr (GLbyte -> IO ())
+ptr_glGlobalAlphaFactorbSUN = unsafePerformIO $ getCommand "glGlobalAlphaFactorbSUN"
+
+-- glGlobalAlphaFactordSUN -----------------------------------------------------
+
+glGlobalAlphaFactordSUN
+  :: MonadIO m
+  => GLdouble -- ^ @factor@.
+  -> m ()
+glGlobalAlphaFactordSUN v1 = liftIO $ dyn84 ptr_glGlobalAlphaFactordSUN v1
+
+{-# NOINLINE ptr_glGlobalAlphaFactordSUN #-}
+ptr_glGlobalAlphaFactordSUN :: FunPtr (GLdouble -> IO ())
+ptr_glGlobalAlphaFactordSUN = unsafePerformIO $ getCommand "glGlobalAlphaFactordSUN"
+
+-- glGlobalAlphaFactorfSUN -----------------------------------------------------
+
+glGlobalAlphaFactorfSUN
+  :: MonadIO m
+  => GLfloat -- ^ @factor@.
+  -> m ()
+glGlobalAlphaFactorfSUN v1 = liftIO $ dyn85 ptr_glGlobalAlphaFactorfSUN v1
+
+{-# NOINLINE ptr_glGlobalAlphaFactorfSUN #-}
+ptr_glGlobalAlphaFactorfSUN :: FunPtr (GLfloat -> IO ())
+ptr_glGlobalAlphaFactorfSUN = unsafePerformIO $ getCommand "glGlobalAlphaFactorfSUN"
+
+-- glGlobalAlphaFactoriSUN -----------------------------------------------------
+
+glGlobalAlphaFactoriSUN
+  :: MonadIO m
+  => GLint -- ^ @factor@.
+  -> m ()
+glGlobalAlphaFactoriSUN v1 = liftIO $ dyn13 ptr_glGlobalAlphaFactoriSUN v1
+
+{-# NOINLINE ptr_glGlobalAlphaFactoriSUN #-}
+ptr_glGlobalAlphaFactoriSUN :: FunPtr (GLint -> IO ())
+ptr_glGlobalAlphaFactoriSUN = unsafePerformIO $ getCommand "glGlobalAlphaFactoriSUN"
+
+-- glGlobalAlphaFactorsSUN -----------------------------------------------------
+
+glGlobalAlphaFactorsSUN
+  :: MonadIO m
+  => GLshort -- ^ @factor@.
+  -> m ()
+glGlobalAlphaFactorsSUN v1 = liftIO $ dyn485 ptr_glGlobalAlphaFactorsSUN v1
+
+{-# NOINLINE ptr_glGlobalAlphaFactorsSUN #-}
+ptr_glGlobalAlphaFactorsSUN :: FunPtr (GLshort -> IO ())
+ptr_glGlobalAlphaFactorsSUN = unsafePerformIO $ getCommand "glGlobalAlphaFactorsSUN"
+
+-- glGlobalAlphaFactorubSUN ----------------------------------------------------
+
+glGlobalAlphaFactorubSUN
+  :: MonadIO m
+  => GLubyte -- ^ @factor@.
+  -> m ()
+glGlobalAlphaFactorubSUN v1 = liftIO $ dyn486 ptr_glGlobalAlphaFactorubSUN v1
+
+{-# NOINLINE ptr_glGlobalAlphaFactorubSUN #-}
+ptr_glGlobalAlphaFactorubSUN :: FunPtr (GLubyte -> IO ())
+ptr_glGlobalAlphaFactorubSUN = unsafePerformIO $ getCommand "glGlobalAlphaFactorubSUN"
+
+-- glGlobalAlphaFactoruiSUN ----------------------------------------------------
+
+glGlobalAlphaFactoruiSUN
+  :: MonadIO m
+  => GLuint -- ^ @factor@.
+  -> m ()
+glGlobalAlphaFactoruiSUN v1 = liftIO $ dyn3 ptr_glGlobalAlphaFactoruiSUN v1
+
+{-# NOINLINE ptr_glGlobalAlphaFactoruiSUN #-}
+ptr_glGlobalAlphaFactoruiSUN :: FunPtr (GLuint -> IO ())
+ptr_glGlobalAlphaFactoruiSUN = unsafePerformIO $ getCommand "glGlobalAlphaFactoruiSUN"
+
+-- glGlobalAlphaFactorusSUN ----------------------------------------------------
+
+glGlobalAlphaFactorusSUN
+  :: MonadIO m
+  => GLushort -- ^ @factor@.
+  -> m ()
+glGlobalAlphaFactorusSUN v1 = liftIO $ dyn487 ptr_glGlobalAlphaFactorusSUN v1
+
+{-# NOINLINE ptr_glGlobalAlphaFactorusSUN #-}
+ptr_glGlobalAlphaFactorusSUN :: FunPtr (GLushort -> IO ())
+ptr_glGlobalAlphaFactorusSUN = unsafePerformIO $ getCommand "glGlobalAlphaFactorusSUN"
+
+-- glHint ----------------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glHint.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glHint.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glHint.xhtml OpenGL 4.x>.
+glHint
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [HintTarget](Graphics-GL-Groups.html#HintTarget).
+  -> GLenum -- ^ @mode@ of type [HintMode](Graphics-GL-Groups.html#HintMode).
+  -> m ()
+glHint v1 v2 = liftIO $ dyn54 ptr_glHint v1 v2
+
+{-# NOINLINE ptr_glHint #-}
+ptr_glHint :: FunPtr (GLenum -> GLenum -> IO ())
+ptr_glHint = unsafePerformIO $ getCommand "glHint"
+
+-- glHintPGI -------------------------------------------------------------------
+
+glHintPGI
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [HintTargetPGI](Graphics-GL-Groups.html#HintTargetPGI).
+  -> GLint -- ^ @mode@.
+  -> m ()
+glHintPGI v1 v2 = liftIO $ dyn58 ptr_glHintPGI v1 v2
+
+{-# NOINLINE ptr_glHintPGI #-}
+ptr_glHintPGI :: FunPtr (GLenum -> GLint -> IO ())
+ptr_glHintPGI = unsafePerformIO $ getCommand "glHintPGI"
+
+-- glHistogram -----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glHistogram.xml OpenGL 2.x>.
+glHistogram
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [HistogramTargetEXT](Graphics-GL-Groups.html#HistogramTargetEXT).
+  -> GLsizei -- ^ @width@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLboolean -- ^ @sink@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m ()
+glHistogram v1 v2 v3 v4 = liftIO $ dyn488 ptr_glHistogram v1 v2 v3 v4
+
+{-# NOINLINE ptr_glHistogram #-}
+ptr_glHistogram :: FunPtr (GLenum -> GLsizei -> GLenum -> GLboolean -> IO ())
+ptr_glHistogram = unsafePerformIO $ getCommand "glHistogram"
+
+-- glHistogramEXT --------------------------------------------------------------
+
+-- | This command is an alias for 'glHistogram'.
+glHistogramEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [HistogramTargetEXT](Graphics-GL-Groups.html#HistogramTargetEXT).
+  -> GLsizei -- ^ @width@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLboolean -- ^ @sink@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m ()
+glHistogramEXT v1 v2 v3 v4 = liftIO $ dyn488 ptr_glHistogramEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glHistogramEXT #-}
+ptr_glHistogramEXT :: FunPtr (GLenum -> GLsizei -> GLenum -> GLboolean -> IO ())
+ptr_glHistogramEXT = unsafePerformIO $ getCommand "glHistogramEXT"
+
+-- glIglooInterfaceSGIX --------------------------------------------------------
+
+glIglooInterfaceSGIX
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [IglooFunctionSelectSGIX](Graphics-GL-Groups.html#IglooFunctionSelectSGIX).
+  -> Ptr a -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @IglooParameterSGIX@.
+  -> m ()
+glIglooInterfaceSGIX v1 v2 = liftIO $ dyn238 ptr_glIglooInterfaceSGIX v1 v2
+
+{-# NOINLINE ptr_glIglooInterfaceSGIX #-}
+ptr_glIglooInterfaceSGIX :: FunPtr (GLenum -> Ptr a -> IO ())
+ptr_glIglooInterfaceSGIX = unsafePerformIO $ getCommand "glIglooInterfaceSGIX"
+
+-- glImageTransformParameterfHP ------------------------------------------------
+
+glImageTransformParameterfHP
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ImageTransformTargetHP](Graphics-GL-Groups.html#ImageTransformTargetHP).
+  -> GLenum -- ^ @pname@ of type [ImageTransformPNameHP](Graphics-GL-Groups.html#ImageTransformPNameHP).
+  -> GLfloat -- ^ @param@.
+  -> m ()
+glImageTransformParameterfHP v1 v2 v3 = liftIO $ dyn168 ptr_glImageTransformParameterfHP v1 v2 v3
+
+{-# NOINLINE ptr_glImageTransformParameterfHP #-}
+ptr_glImageTransformParameterfHP :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
+ptr_glImageTransformParameterfHP = unsafePerformIO $ getCommand "glImageTransformParameterfHP"
+
+-- glImageTransformParameterfvHP -----------------------------------------------
+
+glImageTransformParameterfvHP
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ImageTransformTargetHP](Graphics-GL-Groups.html#ImageTransformTargetHP).
+  -> GLenum -- ^ @pname@ of type [ImageTransformPNameHP](Graphics-GL-Groups.html#ImageTransformPNameHP).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
+  -> m ()
+glImageTransformParameterfvHP v1 v2 v3 = liftIO $ dyn139 ptr_glImageTransformParameterfvHP v1 v2 v3
+
+{-# NOINLINE ptr_glImageTransformParameterfvHP #-}
+ptr_glImageTransformParameterfvHP :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glImageTransformParameterfvHP = unsafePerformIO $ getCommand "glImageTransformParameterfvHP"
+
+-- glImageTransformParameteriHP ------------------------------------------------
+
+glImageTransformParameteriHP
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ImageTransformTargetHP](Graphics-GL-Groups.html#ImageTransformTargetHP).
+  -> GLenum -- ^ @pname@ of type [ImageTransformPNameHP](Graphics-GL-Groups.html#ImageTransformPNameHP).
+  -> GLint -- ^ @param@.
+  -> m ()
+glImageTransformParameteriHP v1 v2 v3 = liftIO $ dyn66 ptr_glImageTransformParameteriHP v1 v2 v3
+
+{-# NOINLINE ptr_glImageTransformParameteriHP #-}
+ptr_glImageTransformParameteriHP :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
+ptr_glImageTransformParameteriHP = unsafePerformIO $ getCommand "glImageTransformParameteriHP"
+
+-- glImageTransformParameterivHP -----------------------------------------------
+
+glImageTransformParameterivHP
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ImageTransformTargetHP](Graphics-GL-Groups.html#ImageTransformTargetHP).
+  -> GLenum -- ^ @pname@ of type [ImageTransformPNameHP](Graphics-GL-Groups.html#ImageTransformPNameHP).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glImageTransformParameterivHP v1 v2 v3 = liftIO $ dyn140 ptr_glImageTransformParameterivHP v1 v2 v3
+
+{-# NOINLINE ptr_glImageTransformParameterivHP #-}
+ptr_glImageTransformParameterivHP :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glImageTransformParameterivHP = unsafePerformIO $ getCommand "glImageTransformParameterivHP"
+
+-- glImportMemoryFdEXT ---------------------------------------------------------
+
+glImportMemoryFdEXT
+  :: MonadIO m
+  => GLuint -- ^ @memory@.
+  -> GLuint64 -- ^ @size@.
+  -> GLenum -- ^ @handleType@ of type [ExternalHandleType](Graphics-GL-Groups.html#ExternalHandleType).
+  -> GLint -- ^ @fd@.
+  -> m ()
+glImportMemoryFdEXT v1 v2 v3 v4 = liftIO $ dyn489 ptr_glImportMemoryFdEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glImportMemoryFdEXT #-}
+ptr_glImportMemoryFdEXT :: FunPtr (GLuint -> GLuint64 -> GLenum -> GLint -> IO ())
+ptr_glImportMemoryFdEXT = unsafePerformIO $ getCommand "glImportMemoryFdEXT"
+
+-- glImportMemoryWin32HandleEXT ------------------------------------------------
+
+glImportMemoryWin32HandleEXT
+  :: MonadIO m
+  => GLuint -- ^ @memory@.
+  -> GLuint64 -- ^ @size@.
+  -> GLenum -- ^ @handleType@ of type [ExternalHandleType](Graphics-GL-Groups.html#ExternalHandleType).
+  -> Ptr a -- ^ @handle@.
+  -> m ()
+glImportMemoryWin32HandleEXT v1 v2 v3 v4 = liftIO $ dyn490 ptr_glImportMemoryWin32HandleEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glImportMemoryWin32HandleEXT #-}
+ptr_glImportMemoryWin32HandleEXT :: FunPtr (GLuint -> GLuint64 -> GLenum -> Ptr a -> IO ())
+ptr_glImportMemoryWin32HandleEXT = unsafePerformIO $ getCommand "glImportMemoryWin32HandleEXT"
+
+-- glImportMemoryWin32NameEXT --------------------------------------------------
+
+glImportMemoryWin32NameEXT
+  :: MonadIO m
+  => GLuint -- ^ @memory@.
+  -> GLuint64 -- ^ @size@.
+  -> GLenum -- ^ @handleType@ of type [ExternalHandleType](Graphics-GL-Groups.html#ExternalHandleType).
+  -> Ptr a -- ^ @name@.
+  -> m ()
+glImportMemoryWin32NameEXT v1 v2 v3 v4 = liftIO $ dyn490 ptr_glImportMemoryWin32NameEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glImportMemoryWin32NameEXT #-}
+ptr_glImportMemoryWin32NameEXT :: FunPtr (GLuint -> GLuint64 -> GLenum -> Ptr a -> IO ())
+ptr_glImportMemoryWin32NameEXT = unsafePerformIO $ getCommand "glImportMemoryWin32NameEXT"
+
+-- glImportSemaphoreFdEXT ------------------------------------------------------
+
+glImportSemaphoreFdEXT
+  :: MonadIO m
+  => GLuint -- ^ @semaphore@.
+  -> GLenum -- ^ @handleType@ of type [ExternalHandleType](Graphics-GL-Groups.html#ExternalHandleType).
+  -> GLint -- ^ @fd@.
+  -> m ()
+glImportSemaphoreFdEXT v1 v2 v3 = liftIO $ dyn491 ptr_glImportSemaphoreFdEXT v1 v2 v3
+
+{-# NOINLINE ptr_glImportSemaphoreFdEXT #-}
+ptr_glImportSemaphoreFdEXT :: FunPtr (GLuint -> GLenum -> GLint -> IO ())
+ptr_glImportSemaphoreFdEXT = unsafePerformIO $ getCommand "glImportSemaphoreFdEXT"
+
+-- glImportSemaphoreWin32HandleEXT ---------------------------------------------
+
+glImportSemaphoreWin32HandleEXT
+  :: MonadIO m
+  => GLuint -- ^ @semaphore@.
+  -> GLenum -- ^ @handleType@ of type [ExternalHandleType](Graphics-GL-Groups.html#ExternalHandleType).
+  -> Ptr a -- ^ @handle@.
+  -> m ()
+glImportSemaphoreWin32HandleEXT v1 v2 v3 = liftIO $ dyn492 ptr_glImportSemaphoreWin32HandleEXT v1 v2 v3
+
+{-# NOINLINE ptr_glImportSemaphoreWin32HandleEXT #-}
+ptr_glImportSemaphoreWin32HandleEXT :: FunPtr (GLuint -> GLenum -> Ptr a -> IO ())
+ptr_glImportSemaphoreWin32HandleEXT = unsafePerformIO $ getCommand "glImportSemaphoreWin32HandleEXT"
+
+-- glImportSemaphoreWin32NameEXT -----------------------------------------------
+
+glImportSemaphoreWin32NameEXT
+  :: MonadIO m
+  => GLuint -- ^ @semaphore@.
+  -> GLenum -- ^ @handleType@ of type [ExternalHandleType](Graphics-GL-Groups.html#ExternalHandleType).
+  -> Ptr a -- ^ @name@.
+  -> m ()
+glImportSemaphoreWin32NameEXT v1 v2 v3 = liftIO $ dyn492 ptr_glImportSemaphoreWin32NameEXT v1 v2 v3
+
+{-# NOINLINE ptr_glImportSemaphoreWin32NameEXT #-}
+ptr_glImportSemaphoreWin32NameEXT :: FunPtr (GLuint -> GLenum -> Ptr a -> IO ())
+ptr_glImportSemaphoreWin32NameEXT = unsafePerformIO $ getCommand "glImportSemaphoreWin32NameEXT"
+
+-- glImportSyncEXT -------------------------------------------------------------
+
+glImportSyncEXT
+  :: MonadIO m
+  => GLenum -- ^ @external_sync_type@.
+  -> GLintptr -- ^ @external_sync@.
+  -> GLbitfield -- ^ @flags@.
+  -> m GLsync -- ^ of type @sync@.
+glImportSyncEXT v1 v2 v3 = liftIO $ dyn493 ptr_glImportSyncEXT v1 v2 v3
+
+{-# NOINLINE ptr_glImportSyncEXT #-}
+ptr_glImportSyncEXT :: FunPtr (GLenum -> GLintptr -> GLbitfield -> IO GLsync)
+ptr_glImportSyncEXT = unsafePerformIO $ getCommand "glImportSyncEXT"
+
+-- glIndexFormatNV -------------------------------------------------------------
+
+glIndexFormatNV
+  :: MonadIO m
+  => GLenum -- ^ @type@.
+  -> GLsizei -- ^ @stride@.
+  -> m ()
+glIndexFormatNV v1 v2 = liftIO $ dyn247 ptr_glIndexFormatNV v1 v2
+
+{-# NOINLINE ptr_glIndexFormatNV #-}
+ptr_glIndexFormatNV :: FunPtr (GLenum -> GLsizei -> IO ())
+ptr_glIndexFormatNV = unsafePerformIO $ getCommand "glIndexFormatNV"
+
+-- glIndexFuncEXT --------------------------------------------------------------
+
+glIndexFuncEXT
+  :: MonadIO m
+  => GLenum -- ^ @func@ of type [IndexFunctionEXT](Graphics-GL-Groups.html#IndexFunctionEXT).
+  -> GLclampf -- ^ @ref@ of type @ClampedFloat32@.
+  -> m ()
+glIndexFuncEXT v1 v2 = liftIO $ dyn10 ptr_glIndexFuncEXT v1 v2
+
+{-# NOINLINE ptr_glIndexFuncEXT #-}
+ptr_glIndexFuncEXT :: FunPtr (GLenum -> GLclampf -> IO ())
+ptr_glIndexFuncEXT = unsafePerformIO $ getCommand "glIndexFuncEXT"
+
+-- glIndexMask -----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glIndexMask.xml OpenGL 2.x>.
+glIndexMask
+  :: MonadIO m
+  => GLuint -- ^ @mask@ of type @MaskedColorIndexValueI@.
+  -> m ()
+glIndexMask v1 = liftIO $ dyn3 ptr_glIndexMask v1
+
+{-# NOINLINE ptr_glIndexMask #-}
+ptr_glIndexMask :: FunPtr (GLuint -> IO ())
+ptr_glIndexMask = unsafePerformIO $ getCommand "glIndexMask"
+
+-- glIndexMaterialEXT ----------------------------------------------------------
+
+glIndexMaterialEXT
+  :: MonadIO m
+  => GLenum -- ^ @face@ of type [MaterialFace](Graphics-GL-Groups.html#MaterialFace).
+  -> GLenum -- ^ @mode@ of type [IndexMaterialParameterEXT](Graphics-GL-Groups.html#IndexMaterialParameterEXT).
+  -> m ()
+glIndexMaterialEXT v1 v2 = liftIO $ dyn54 ptr_glIndexMaterialEXT v1 v2
+
+{-# NOINLINE ptr_glIndexMaterialEXT #-}
+ptr_glIndexMaterialEXT :: FunPtr (GLenum -> GLenum -> IO ())
+ptr_glIndexMaterialEXT = unsafePerformIO $ getCommand "glIndexMaterialEXT"
+
+-- glIndexPointer --------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glIndexPointer.xml OpenGL 2.x>.
+glIndexPointer
+  :: MonadIO m
+  => GLenum -- ^ @type@ of type [IndexPointerType](Graphics-GL-Groups.html#IndexPointerType).
+  -> GLsizei -- ^ @stride@.
+  -> Ptr a -- ^ @pointer@ pointing to @COMPSIZE(type,stride)@ elements of type @a@.
+  -> m ()
+glIndexPointer v1 v2 v3 = liftIO $ dyn49 ptr_glIndexPointer v1 v2 v3
+
+{-# NOINLINE ptr_glIndexPointer #-}
+ptr_glIndexPointer :: FunPtr (GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glIndexPointer = unsafePerformIO $ getCommand "glIndexPointer"
+
+-- glIndexPointerEXT -----------------------------------------------------------
+
+glIndexPointerEXT
+  :: MonadIO m
+  => GLenum -- ^ @type@ of type [IndexPointerType](Graphics-GL-Groups.html#IndexPointerType).
+  -> GLsizei -- ^ @stride@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr a -- ^ @pointer@ pointing to @COMPSIZE(type,stride,count)@ elements of type @a@.
+  -> m ()
+glIndexPointerEXT v1 v2 v3 v4 = liftIO $ dyn494 ptr_glIndexPointerEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glIndexPointerEXT #-}
+ptr_glIndexPointerEXT :: FunPtr (GLenum -> GLsizei -> GLsizei -> Ptr a -> IO ())
+ptr_glIndexPointerEXT = unsafePerformIO $ getCommand "glIndexPointerEXT"
+
+-- glIndexPointerListIBM -------------------------------------------------------
+
+glIndexPointerListIBM
+  :: MonadIO m
+  => GLenum -- ^ @type@ of type [IndexPointerType](Graphics-GL-Groups.html#IndexPointerType).
+  -> GLint -- ^ @stride@.
+  -> Ptr (Ptr a) -- ^ @pointer@ pointing to @COMPSIZE(type,stride)@ elements of type @Ptr a@.
+  -> GLint -- ^ @ptrstride@.
+  -> m ()
+glIndexPointerListIBM v1 v2 v3 v4 = liftIO $ dyn291 ptr_glIndexPointerListIBM v1 v2 v3 v4
+
+{-# NOINLINE ptr_glIndexPointerListIBM #-}
+ptr_glIndexPointerListIBM :: FunPtr (GLenum -> GLint -> Ptr (Ptr a) -> GLint -> IO ())
+ptr_glIndexPointerListIBM = unsafePerformIO $ getCommand "glIndexPointerListIBM"
+
+-- glIndexd --------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glIndex.xml OpenGL 2.x>. The vector equivalent of this command is 'glIndexdv'.
+glIndexd
+  :: MonadIO m
+  => GLdouble -- ^ @c@ of type @ColorIndexValueD@.
+  -> m ()
+glIndexd v1 = liftIO $ dyn84 ptr_glIndexd v1
+
+{-# NOINLINE ptr_glIndexd #-}
+ptr_glIndexd :: FunPtr (GLdouble -> IO ())
+ptr_glIndexd = unsafePerformIO $ getCommand "glIndexd"
+
+-- glIndexdv -------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glIndex.xml OpenGL 2.x>.
+glIndexdv
+  :: MonadIO m
+  => Ptr GLdouble -- ^ @c@ pointing to @1@ element of type @ColorIndexValueD@.
+  -> m ()
+glIndexdv v1 = liftIO $ dyn42 ptr_glIndexdv v1
+
+{-# NOINLINE ptr_glIndexdv #-}
+ptr_glIndexdv :: FunPtr (Ptr GLdouble -> IO ())
+ptr_glIndexdv = unsafePerformIO $ getCommand "glIndexdv"
+
+-- glIndexf --------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glIndex.xml OpenGL 2.x>. The vector equivalent of this command is 'glIndexfv'.
+glIndexf
+  :: MonadIO m
+  => GLfloat -- ^ @c@ of type @ColorIndexValueF@.
+  -> m ()
+glIndexf v1 = liftIO $ dyn85 ptr_glIndexf v1
+
+{-# NOINLINE ptr_glIndexf #-}
+ptr_glIndexf :: FunPtr (GLfloat -> IO ())
+ptr_glIndexf = unsafePerformIO $ getCommand "glIndexf"
+
+-- glIndexfv -------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glIndex.xml OpenGL 2.x>.
+glIndexfv
+  :: MonadIO m
+  => Ptr GLfloat -- ^ @c@ pointing to @1@ element of type @ColorIndexValueF@.
+  -> m ()
+glIndexfv v1 = liftIO $ dyn44 ptr_glIndexfv v1
+
+{-# NOINLINE ptr_glIndexfv #-}
+ptr_glIndexfv :: FunPtr (Ptr GLfloat -> IO ())
+ptr_glIndexfv = unsafePerformIO $ getCommand "glIndexfv"
+
+-- glIndexi --------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glIndex.xml OpenGL 2.x>. The vector equivalent of this command is 'glIndexiv'.
+glIndexi
+  :: MonadIO m
+  => GLint -- ^ @c@ of type @ColorIndexValueI@.
+  -> m ()
+glIndexi v1 = liftIO $ dyn13 ptr_glIndexi v1
+
+{-# NOINLINE ptr_glIndexi #-}
+ptr_glIndexi :: FunPtr (GLint -> IO ())
+ptr_glIndexi = unsafePerformIO $ getCommand "glIndexi"
+
+-- glIndexiv -------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glIndex.xml OpenGL 2.x>.
+glIndexiv
+  :: MonadIO m
+  => Ptr GLint -- ^ @c@ pointing to @1@ element of type @ColorIndexValueI@.
+  -> m ()
+glIndexiv v1 = liftIO $ dyn46 ptr_glIndexiv v1
+
+{-# NOINLINE ptr_glIndexiv #-}
+ptr_glIndexiv :: FunPtr (Ptr GLint -> IO ())
+ptr_glIndexiv = unsafePerformIO $ getCommand "glIndexiv"
+
+-- glIndexs --------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glIndex.xml OpenGL 2.x>. The vector equivalent of this command is 'glIndexsv'.
+glIndexs
+  :: MonadIO m
+  => GLshort -- ^ @c@ of type @ColorIndexValueS@.
+  -> m ()
+glIndexs v1 = liftIO $ dyn485 ptr_glIndexs v1
+
+{-# NOINLINE ptr_glIndexs #-}
+ptr_glIndexs :: FunPtr (GLshort -> IO ())
+ptr_glIndexs = unsafePerformIO $ getCommand "glIndexs"
+
+-- glIndexsv -------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glIndex.xml OpenGL 2.x>.
+glIndexsv
+  :: MonadIO m
+  => Ptr GLshort -- ^ @c@ pointing to @1@ element of type @ColorIndexValueS@.
+  -> m ()
+glIndexsv v1 = liftIO $ dyn48 ptr_glIndexsv v1
+
+{-# NOINLINE ptr_glIndexsv #-}
+ptr_glIndexsv :: FunPtr (Ptr GLshort -> IO ())
+ptr_glIndexsv = unsafePerformIO $ getCommand "glIndexsv"
+
+-- glIndexub -------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glIndex.xml OpenGL 2.x>. The vector equivalent of this command is 'glIndexubv'.
+glIndexub
+  :: MonadIO m
+  => GLubyte -- ^ @c@ of type @ColorIndexValueUB@.
+  -> m ()
+glIndexub v1 = liftIO $ dyn486 ptr_glIndexub v1
+
+{-# NOINLINE ptr_glIndexub #-}
+ptr_glIndexub :: FunPtr (GLubyte -> IO ())
+ptr_glIndexub = unsafePerformIO $ getCommand "glIndexub"
+
+-- glIndexubv ------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glIndex.xml OpenGL 2.x>.
+glIndexubv
+  :: MonadIO m
+  => Ptr GLubyte -- ^ @c@ pointing to @1@ element of type @ColorIndexValueUB@.
+  -> m ()
+glIndexubv v1 = liftIO $ dyn108 ptr_glIndexubv v1
+
+{-# NOINLINE ptr_glIndexubv #-}
+ptr_glIndexubv :: FunPtr (Ptr GLubyte -> IO ())
+ptr_glIndexubv = unsafePerformIO $ getCommand "glIndexubv"
+
+-- glIndexxOES -----------------------------------------------------------------
+
+glIndexxOES
+  :: MonadIO m
+  => GLfixed -- ^ @component@.
+  -> m ()
+glIndexxOES v1 = liftIO $ dyn87 ptr_glIndexxOES v1
+
+{-# NOINLINE ptr_glIndexxOES #-}
+ptr_glIndexxOES :: FunPtr (GLfixed -> IO ())
+ptr_glIndexxOES = unsafePerformIO $ getCommand "glIndexxOES"
+
+-- glIndexxvOES ----------------------------------------------------------------
+
+glIndexxvOES
+  :: MonadIO m
+  => Ptr GLfixed -- ^ @component@ pointing to @1@ element of type @GLfixed@.
+  -> m ()
+glIndexxvOES v1 = liftIO $ dyn114 ptr_glIndexxvOES v1
+
+{-# NOINLINE ptr_glIndexxvOES #-}
+ptr_glIndexxvOES :: FunPtr (Ptr GLfixed -> IO ())
+ptr_glIndexxvOES = unsafePerformIO $ getCommand "glIndexxvOES"
+
+-- glInitNames -----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glInitNames.xml OpenGL 2.x>.
+glInitNames
+  :: MonadIO m
+  => m ()
+glInitNames = liftIO $ dyn11 ptr_glInitNames
+
+{-# NOINLINE ptr_glInitNames #-}
+ptr_glInitNames :: FunPtr (IO ())
+ptr_glInitNames = unsafePerformIO $ getCommand "glInitNames"
+
+-- glInsertComponentEXT --------------------------------------------------------
+
+glInsertComponentEXT
+  :: MonadIO m
+  => GLuint -- ^ @res@.
+  -> GLuint -- ^ @src@.
+  -> GLuint -- ^ @num@.
+  -> m ()
+glInsertComponentEXT v1 v2 v3 = liftIO $ dyn109 ptr_glInsertComponentEXT v1 v2 v3
+
+{-# NOINLINE ptr_glInsertComponentEXT #-}
+ptr_glInsertComponentEXT :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
+ptr_glInsertComponentEXT = unsafePerformIO $ getCommand "glInsertComponentEXT"
+
+-- glInsertEventMarkerEXT ------------------------------------------------------
+
+glInsertEventMarkerEXT
+  :: MonadIO m
+  => GLsizei -- ^ @length@.
+  -> Ptr GLchar -- ^ @marker@.
+  -> m ()
+glInsertEventMarkerEXT v1 v2 = liftIO $ dyn495 ptr_glInsertEventMarkerEXT v1 v2
+
+{-# NOINLINE ptr_glInsertEventMarkerEXT #-}
+ptr_glInsertEventMarkerEXT :: FunPtr (GLsizei -> Ptr GLchar -> IO ())
+ptr_glInsertEventMarkerEXT = unsafePerformIO $ getCommand "glInsertEventMarkerEXT"
+
+-- glInstrumentsBufferSGIX -----------------------------------------------------
+
+glInstrumentsBufferSGIX
+  :: MonadIO m
+  => GLsizei -- ^ @size@.
+  -> Ptr GLint -- ^ @buffer@ pointing to @size@ elements of type @GLint@.
+  -> m ()
+glInstrumentsBufferSGIX v1 v2 = liftIO $ dyn222 ptr_glInstrumentsBufferSGIX v1 v2
+
+{-# NOINLINE ptr_glInstrumentsBufferSGIX #-}
+ptr_glInstrumentsBufferSGIX :: FunPtr (GLsizei -> Ptr GLint -> IO ())
+ptr_glInstrumentsBufferSGIX = unsafePerformIO $ getCommand "glInstrumentsBufferSGIX"
+
+-- glInterleavedArrays ---------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glInterleavedArrays.xml OpenGL 2.x>.
+glInterleavedArrays
+  :: MonadIO m
+  => GLenum -- ^ @format@ of type [InterleavedArrayFormat](Graphics-GL-Groups.html#InterleavedArrayFormat).
+  -> GLsizei -- ^ @stride@.
+  -> Ptr a -- ^ @pointer@ pointing to @COMPSIZE(format,stride)@ elements of type @a@.
+  -> m ()
+glInterleavedArrays v1 v2 v3 = liftIO $ dyn49 ptr_glInterleavedArrays v1 v2 v3
+
+{-# NOINLINE ptr_glInterleavedArrays #-}
+ptr_glInterleavedArrays :: FunPtr (GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glInterleavedArrays = unsafePerformIO $ getCommand "glInterleavedArrays"
+
+-- glInterpolatePathsNV --------------------------------------------------------
+
+glInterpolatePathsNV
+  :: MonadIO m
+  => GLuint -- ^ @resultPath@ of type @Path@.
+  -> GLuint -- ^ @pathA@ of type @Path@.
+  -> GLuint -- ^ @pathB@ of type @Path@.
+  -> GLfloat -- ^ @weight@.
+  -> m ()
+glInterpolatePathsNV v1 v2 v3 v4 = liftIO $ dyn496 ptr_glInterpolatePathsNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glInterpolatePathsNV #-}
+ptr_glInterpolatePathsNV :: FunPtr (GLuint -> GLuint -> GLuint -> GLfloat -> IO ())
+ptr_glInterpolatePathsNV = unsafePerformIO $ getCommand "glInterpolatePathsNV"
+
+-- glInvalidateBufferData ------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glInvalidateBufferData.xhtml OpenGL 4.x>.
+glInvalidateBufferData
+  :: MonadIO m
+  => GLuint -- ^ @buffer@.
+  -> m ()
+glInvalidateBufferData v1 = liftIO $ dyn3 ptr_glInvalidateBufferData v1
+
+{-# NOINLINE ptr_glInvalidateBufferData #-}
+ptr_glInvalidateBufferData :: FunPtr (GLuint -> IO ())
+ptr_glInvalidateBufferData = unsafePerformIO $ getCommand "glInvalidateBufferData"
+
+-- glInvalidateBufferSubData ---------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glInvalidateBufferSubData.xhtml OpenGL 4.x>.
+glInvalidateBufferSubData
+  :: MonadIO m
+  => GLuint -- ^ @buffer@.
+  -> GLintptr -- ^ @offset@ of type @BufferOffset@.
+  -> GLsizeiptr -- ^ @length@ of type @BufferSize@.
+  -> m ()
+glInvalidateBufferSubData v1 v2 v3 = liftIO $ dyn290 ptr_glInvalidateBufferSubData v1 v2 v3
+
+{-# NOINLINE ptr_glInvalidateBufferSubData #-}
+ptr_glInvalidateBufferSubData :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> IO ())
+ptr_glInvalidateBufferSubData = unsafePerformIO $ getCommand "glInvalidateBufferSubData"
+
+-- glInvalidateFramebuffer -----------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glInvalidateFramebuffer.xhtml OpenGL 4.x>.
+glInvalidateFramebuffer
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [FramebufferTarget](Graphics-GL-Groups.html#FramebufferTarget).
+  -> GLsizei -- ^ @numAttachments@.
+  -> Ptr GLenum -- ^ @attachments@ pointing to @numAttachments@ elements of type [InvalidateFramebufferAttachment](Graphics-GL-Groups.html#InvalidateFramebufferAttachment).
+  -> m ()
+glInvalidateFramebuffer v1 v2 v3 = liftIO $ dyn234 ptr_glInvalidateFramebuffer v1 v2 v3
+
+{-# NOINLINE ptr_glInvalidateFramebuffer #-}
+ptr_glInvalidateFramebuffer :: FunPtr (GLenum -> GLsizei -> Ptr GLenum -> IO ())
+ptr_glInvalidateFramebuffer = unsafePerformIO $ getCommand "glInvalidateFramebuffer"
+
+-- glInvalidateNamedFramebufferData --------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glInvalidateFramebuffer.xhtml OpenGL 4.x>.
+glInvalidateNamedFramebufferData
+  :: MonadIO m
+  => GLuint -- ^ @framebuffer@.
+  -> GLsizei -- ^ @numAttachments@.
+  -> Ptr GLenum -- ^ @attachments@ pointing to elements of type [FramebufferAttachment](Graphics-GL-Groups.html#FramebufferAttachment).
+  -> m ()
+glInvalidateNamedFramebufferData v1 v2 v3 = liftIO $ dyn293 ptr_glInvalidateNamedFramebufferData v1 v2 v3
+
+{-# NOINLINE ptr_glInvalidateNamedFramebufferData #-}
+ptr_glInvalidateNamedFramebufferData :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> IO ())
+ptr_glInvalidateNamedFramebufferData = unsafePerformIO $ getCommand "glInvalidateNamedFramebufferData"
+
+-- glInvalidateNamedFramebufferSubData -----------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glInvalidateSubFramebuffer.xhtml OpenGL 4.x>.
+glInvalidateNamedFramebufferSubData
+  :: MonadIO m
+  => GLuint -- ^ @framebuffer@.
+  -> GLsizei -- ^ @numAttachments@.
+  -> Ptr GLenum -- ^ @attachments@ pointing to elements of type [FramebufferAttachment](Graphics-GL-Groups.html#FramebufferAttachment).
+  -> GLint -- ^ @x@.
+  -> GLint -- ^ @y@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> m ()
+glInvalidateNamedFramebufferSubData v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn497 ptr_glInvalidateNamedFramebufferSubData v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glInvalidateNamedFramebufferSubData #-}
+ptr_glInvalidateNamedFramebufferSubData :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+ptr_glInvalidateNamedFramebufferSubData = unsafePerformIO $ getCommand "glInvalidateNamedFramebufferSubData"
+
+-- glInvalidateSubFramebuffer --------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glInvalidateSubFramebuffer.xhtml OpenGL 4.x>.
+glInvalidateSubFramebuffer
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [FramebufferTarget](Graphics-GL-Groups.html#FramebufferTarget).
+  -> GLsizei -- ^ @numAttachments@.
+  -> Ptr GLenum -- ^ @attachments@ pointing to @numAttachments@ elements of type [InvalidateFramebufferAttachment](Graphics-GL-Groups.html#InvalidateFramebufferAttachment).
+  -> GLint -- ^ @x@.
+  -> GLint -- ^ @y@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> m ()
+glInvalidateSubFramebuffer v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn498 ptr_glInvalidateSubFramebuffer v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glInvalidateSubFramebuffer #-}
+ptr_glInvalidateSubFramebuffer :: FunPtr (GLenum -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+ptr_glInvalidateSubFramebuffer = unsafePerformIO $ getCommand "glInvalidateSubFramebuffer"
+
diff --git a/src/Graphics/GL/Functions/F15.hs b/src/Graphics/GL/Functions/F15.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Functions/F15.hs
@@ -0,0 +1,1457 @@
+{-# OPTIONS_HADDOCK hide #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Functions.F15
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- Raw functions from the
+-- <http://www.opengl.org/registry/ OpenGL registry>.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Functions.F15 (
+  glInvalidateTexImage,
+  glInvalidateTexSubImage,
+  glIsAsyncMarkerSGIX,
+  glIsBuffer,
+  glIsBufferARB,
+  glIsBufferResidentNV,
+  glIsCommandListNV,
+  glIsEnabled,
+  glIsEnabledIndexedEXT,
+  glIsEnabledi,
+  glIsEnablediEXT,
+  glIsEnablediNV,
+  glIsEnablediOES,
+  glIsFenceAPPLE,
+  glIsFenceNV,
+  glIsFramebuffer,
+  glIsFramebufferEXT,
+  glIsFramebufferOES,
+  glIsImageHandleResidentARB,
+  glIsImageHandleResidentNV,
+  glIsList,
+  glIsMemoryObjectEXT,
+  glIsNameAMD,
+  glIsNamedBufferResidentNV,
+  glIsNamedStringARB,
+  glIsObjectBufferATI,
+  glIsOcclusionQueryNV,
+  glIsPathNV,
+  glIsPointInFillPathNV,
+  glIsPointInStrokePathNV,
+  glIsProgram,
+  glIsProgramARB,
+  glIsProgramNV,
+  glIsProgramPipeline,
+  glIsProgramPipelineEXT,
+  glIsQuery,
+  glIsQueryARB,
+  glIsQueryEXT,
+  glIsRenderbuffer,
+  glIsRenderbufferEXT,
+  glIsRenderbufferOES,
+  glIsSampler,
+  glIsSemaphoreEXT,
+  glIsShader,
+  glIsStateNV,
+  glIsSync,
+  glIsSyncAPPLE,
+  glIsTexture,
+  glIsTextureEXT,
+  glIsTextureHandleResidentARB,
+  glIsTextureHandleResidentNV,
+  glIsTransformFeedback,
+  glIsTransformFeedbackNV,
+  glIsVariantEnabledEXT,
+  glIsVertexArray,
+  glIsVertexArrayAPPLE,
+  glIsVertexArrayOES,
+  glIsVertexAttribEnabledAPPLE,
+  glLGPUCopyImageSubDataNVX,
+  glLGPUInterlockNVX,
+  glLGPUNamedBufferSubDataNVX,
+  glLabelObjectEXT,
+  glLightEnviSGIX,
+  glLightModelf,
+  glLightModelfv,
+  glLightModeli,
+  glLightModeliv,
+  glLightModelx,
+  glLightModelxOES,
+  glLightModelxv,
+  glLightModelxvOES,
+  glLightf,
+  glLightfv,
+  glLighti,
+  glLightiv,
+  glLightx,
+  glLightxOES,
+  glLightxv,
+  glLightxvOES,
+  glLineStipple,
+  glLineWidth,
+  glLineWidthx,
+  glLineWidthxOES,
+  glLinkProgram,
+  glLinkProgramARB,
+  glListBase,
+  glListDrawCommandsStatesClientNV,
+  glListParameterfSGIX,
+  glListParameterfvSGIX,
+  glListParameteriSGIX,
+  glListParameterivSGIX,
+  glLoadIdentity,
+  glLoadIdentityDeformationMapSGIX,
+  glLoadMatrixd,
+  glLoadMatrixf,
+  glLoadMatrixx,
+  glLoadMatrixxOES,
+  glLoadName,
+  glLoadPaletteFromModelViewMatrixOES,
+  glLoadProgramNV
+) where
+
+import Control.Monad.IO.Class ( MonadIO(..) )
+import Foreign.Ptr
+import Graphics.GL.Foreign
+import Graphics.GL.Types
+import System.IO.Unsafe ( unsafePerformIO )
+
+-- glInvalidateTexImage --------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glInvalidateTexImage.xhtml OpenGL 4.x>.
+glInvalidateTexImage
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLint -- ^ @level@.
+  -> m ()
+glInvalidateTexImage v1 v2 = liftIO $ dyn499 ptr_glInvalidateTexImage v1 v2
+
+{-# NOINLINE ptr_glInvalidateTexImage #-}
+ptr_glInvalidateTexImage :: FunPtr (GLuint -> GLint -> IO ())
+ptr_glInvalidateTexImage = unsafePerformIO $ getCommand "glInvalidateTexImage"
+
+-- glInvalidateTexSubImage -----------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glInvalidateTexSubImage.xhtml OpenGL 4.x>.
+glInvalidateTexSubImage
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLint -- ^ @level@.
+  -> GLint -- ^ @xoffset@.
+  -> GLint -- ^ @yoffset@.
+  -> GLint -- ^ @zoffset@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLsizei -- ^ @depth@.
+  -> m ()
+glInvalidateTexSubImage v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn500 ptr_glInvalidateTexSubImage v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glInvalidateTexSubImage #-}
+ptr_glInvalidateTexSubImage :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> IO ())
+ptr_glInvalidateTexSubImage = unsafePerformIO $ getCommand "glInvalidateTexSubImage"
+
+-- glIsAsyncMarkerSGIX ---------------------------------------------------------
+
+glIsAsyncMarkerSGIX
+  :: MonadIO m
+  => GLuint -- ^ @marker@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glIsAsyncMarkerSGIX v1 = liftIO $ dyn284 ptr_glIsAsyncMarkerSGIX v1
+
+{-# NOINLINE ptr_glIsAsyncMarkerSGIX #-}
+ptr_glIsAsyncMarkerSGIX :: FunPtr (GLuint -> IO GLboolean)
+ptr_glIsAsyncMarkerSGIX = unsafePerformIO $ getCommand "glIsAsyncMarkerSGIX"
+
+-- glIsBuffer ------------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glIsBuffer.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glIsBuffer.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glIsBuffer.xhtml OpenGL 4.x>.
+glIsBuffer
+  :: MonadIO m
+  => GLuint -- ^ @buffer@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glIsBuffer v1 = liftIO $ dyn284 ptr_glIsBuffer v1
+
+{-# NOINLINE ptr_glIsBuffer #-}
+ptr_glIsBuffer :: FunPtr (GLuint -> IO GLboolean)
+ptr_glIsBuffer = unsafePerformIO $ getCommand "glIsBuffer"
+
+-- glIsBufferARB ---------------------------------------------------------------
+
+-- | This command is an alias for 'glIsBuffer'.
+glIsBufferARB
+  :: MonadIO m
+  => GLuint -- ^ @buffer@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glIsBufferARB v1 = liftIO $ dyn284 ptr_glIsBufferARB v1
+
+{-# NOINLINE ptr_glIsBufferARB #-}
+ptr_glIsBufferARB :: FunPtr (GLuint -> IO GLboolean)
+ptr_glIsBufferARB = unsafePerformIO $ getCommand "glIsBufferARB"
+
+-- glIsBufferResidentNV --------------------------------------------------------
+
+glIsBufferResidentNV
+  :: MonadIO m
+  => GLenum -- ^ @target@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glIsBufferResidentNV v1 = liftIO $ dyn501 ptr_glIsBufferResidentNV v1
+
+{-# NOINLINE ptr_glIsBufferResidentNV #-}
+ptr_glIsBufferResidentNV :: FunPtr (GLenum -> IO GLboolean)
+ptr_glIsBufferResidentNV = unsafePerformIO $ getCommand "glIsBufferResidentNV"
+
+-- glIsCommandListNV -----------------------------------------------------------
+
+glIsCommandListNV
+  :: MonadIO m
+  => GLuint -- ^ @list@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glIsCommandListNV v1 = liftIO $ dyn284 ptr_glIsCommandListNV v1
+
+{-# NOINLINE ptr_glIsCommandListNV #-}
+ptr_glIsCommandListNV :: FunPtr (GLuint -> IO GLboolean)
+ptr_glIsCommandListNV = unsafePerformIO $ getCommand "glIsCommandListNV"
+
+-- glIsEnabled -----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glIsEnabled.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glIsEnabled.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glIsEnabled.xhtml OpenGL 4.x>.
+glIsEnabled
+  :: MonadIO m
+  => GLenum -- ^ @cap@ of type [EnableCap](Graphics-GL-Groups.html#EnableCap).
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glIsEnabled v1 = liftIO $ dyn501 ptr_glIsEnabled v1
+
+{-# NOINLINE ptr_glIsEnabled #-}
+ptr_glIsEnabled :: FunPtr (GLenum -> IO GLboolean)
+ptr_glIsEnabled = unsafePerformIO $ getCommand "glIsEnabled"
+
+-- glIsEnabledIndexedEXT -------------------------------------------------------
+
+-- | This command is an alias for 'glIsEnabledi'.
+glIsEnabledIndexedEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [EnableCap](Graphics-GL-Groups.html#EnableCap).
+  -> GLuint -- ^ @index@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glIsEnabledIndexedEXT v1 v2 = liftIO $ dyn502 ptr_glIsEnabledIndexedEXT v1 v2
+
+{-# NOINLINE ptr_glIsEnabledIndexedEXT #-}
+ptr_glIsEnabledIndexedEXT :: FunPtr (GLenum -> GLuint -> IO GLboolean)
+ptr_glIsEnabledIndexedEXT = unsafePerformIO $ getCommand "glIsEnabledIndexedEXT"
+
+-- glIsEnabledi ----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glIsEnabled.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glIsEnabled.xhtml OpenGL 4.x>.
+glIsEnabledi
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [EnableCap](Graphics-GL-Groups.html#EnableCap).
+  -> GLuint -- ^ @index@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glIsEnabledi v1 v2 = liftIO $ dyn502 ptr_glIsEnabledi v1 v2
+
+{-# NOINLINE ptr_glIsEnabledi #-}
+ptr_glIsEnabledi :: FunPtr (GLenum -> GLuint -> IO GLboolean)
+ptr_glIsEnabledi = unsafePerformIO $ getCommand "glIsEnabledi"
+
+-- glIsEnablediEXT -------------------------------------------------------------
+
+-- | This command is an alias for 'glIsEnabledi'.
+glIsEnablediEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [EnableCap](Graphics-GL-Groups.html#EnableCap).
+  -> GLuint -- ^ @index@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glIsEnablediEXT v1 v2 = liftIO $ dyn502 ptr_glIsEnablediEXT v1 v2
+
+{-# NOINLINE ptr_glIsEnablediEXT #-}
+ptr_glIsEnablediEXT :: FunPtr (GLenum -> GLuint -> IO GLboolean)
+ptr_glIsEnablediEXT = unsafePerformIO $ getCommand "glIsEnablediEXT"
+
+-- glIsEnablediNV --------------------------------------------------------------
+
+-- | This command is an alias for 'glIsEnabledi'.
+glIsEnablediNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [EnableCap](Graphics-GL-Groups.html#EnableCap).
+  -> GLuint -- ^ @index@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glIsEnablediNV v1 v2 = liftIO $ dyn502 ptr_glIsEnablediNV v1 v2
+
+{-# NOINLINE ptr_glIsEnablediNV #-}
+ptr_glIsEnablediNV :: FunPtr (GLenum -> GLuint -> IO GLboolean)
+ptr_glIsEnablediNV = unsafePerformIO $ getCommand "glIsEnablediNV"
+
+-- glIsEnablediOES -------------------------------------------------------------
+
+-- | This command is an alias for 'glIsEnabledi'.
+glIsEnablediOES
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [EnableCap](Graphics-GL-Groups.html#EnableCap).
+  -> GLuint -- ^ @index@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glIsEnablediOES v1 v2 = liftIO $ dyn502 ptr_glIsEnablediOES v1 v2
+
+{-# NOINLINE ptr_glIsEnablediOES #-}
+ptr_glIsEnablediOES :: FunPtr (GLenum -> GLuint -> IO GLboolean)
+ptr_glIsEnablediOES = unsafePerformIO $ getCommand "glIsEnablediOES"
+
+-- glIsFenceAPPLE --------------------------------------------------------------
+
+glIsFenceAPPLE
+  :: MonadIO m
+  => GLuint -- ^ @fence@ of type @FenceNV@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glIsFenceAPPLE v1 = liftIO $ dyn284 ptr_glIsFenceAPPLE v1
+
+{-# NOINLINE ptr_glIsFenceAPPLE #-}
+ptr_glIsFenceAPPLE :: FunPtr (GLuint -> IO GLboolean)
+ptr_glIsFenceAPPLE = unsafePerformIO $ getCommand "glIsFenceAPPLE"
+
+-- glIsFenceNV -----------------------------------------------------------------
+
+glIsFenceNV
+  :: MonadIO m
+  => GLuint -- ^ @fence@ of type @FenceNV@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glIsFenceNV v1 = liftIO $ dyn284 ptr_glIsFenceNV v1
+
+{-# NOINLINE ptr_glIsFenceNV #-}
+ptr_glIsFenceNV :: FunPtr (GLuint -> IO GLboolean)
+ptr_glIsFenceNV = unsafePerformIO $ getCommand "glIsFenceNV"
+
+-- glIsFramebuffer -------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glIsFramebuffer.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glIsFramebuffer.xhtml OpenGL 4.x>.
+glIsFramebuffer
+  :: MonadIO m
+  => GLuint -- ^ @framebuffer@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glIsFramebuffer v1 = liftIO $ dyn284 ptr_glIsFramebuffer v1
+
+{-# NOINLINE ptr_glIsFramebuffer #-}
+ptr_glIsFramebuffer :: FunPtr (GLuint -> IO GLboolean)
+ptr_glIsFramebuffer = unsafePerformIO $ getCommand "glIsFramebuffer"
+
+-- glIsFramebufferEXT ----------------------------------------------------------
+
+-- | This command is an alias for 'glIsFramebuffer'.
+glIsFramebufferEXT
+  :: MonadIO m
+  => GLuint -- ^ @framebuffer@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glIsFramebufferEXT v1 = liftIO $ dyn284 ptr_glIsFramebufferEXT v1
+
+{-# NOINLINE ptr_glIsFramebufferEXT #-}
+ptr_glIsFramebufferEXT :: FunPtr (GLuint -> IO GLboolean)
+ptr_glIsFramebufferEXT = unsafePerformIO $ getCommand "glIsFramebufferEXT"
+
+-- glIsFramebufferOES ----------------------------------------------------------
+
+glIsFramebufferOES
+  :: MonadIO m
+  => GLuint -- ^ @framebuffer@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glIsFramebufferOES v1 = liftIO $ dyn284 ptr_glIsFramebufferOES v1
+
+{-# NOINLINE ptr_glIsFramebufferOES #-}
+ptr_glIsFramebufferOES :: FunPtr (GLuint -> IO GLboolean)
+ptr_glIsFramebufferOES = unsafePerformIO $ getCommand "glIsFramebufferOES"
+
+-- glIsImageHandleResidentARB --------------------------------------------------
+
+glIsImageHandleResidentARB
+  :: MonadIO m
+  => GLuint64 -- ^ @handle@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glIsImageHandleResidentARB v1 = liftIO $ dyn503 ptr_glIsImageHandleResidentARB v1
+
+{-# NOINLINE ptr_glIsImageHandleResidentARB #-}
+ptr_glIsImageHandleResidentARB :: FunPtr (GLuint64 -> IO GLboolean)
+ptr_glIsImageHandleResidentARB = unsafePerformIO $ getCommand "glIsImageHandleResidentARB"
+
+-- glIsImageHandleResidentNV ---------------------------------------------------
+
+glIsImageHandleResidentNV
+  :: MonadIO m
+  => GLuint64 -- ^ @handle@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glIsImageHandleResidentNV v1 = liftIO $ dyn503 ptr_glIsImageHandleResidentNV v1
+
+{-# NOINLINE ptr_glIsImageHandleResidentNV #-}
+ptr_glIsImageHandleResidentNV :: FunPtr (GLuint64 -> IO GLboolean)
+ptr_glIsImageHandleResidentNV = unsafePerformIO $ getCommand "glIsImageHandleResidentNV"
+
+-- glIsList --------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glIsList.xml OpenGL 2.x>.
+glIsList
+  :: MonadIO m
+  => GLuint -- ^ @list@ of type @List@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glIsList v1 = liftIO $ dyn284 ptr_glIsList v1
+
+{-# NOINLINE ptr_glIsList #-}
+ptr_glIsList :: FunPtr (GLuint -> IO GLboolean)
+ptr_glIsList = unsafePerformIO $ getCommand "glIsList"
+
+-- glIsMemoryObjectEXT ---------------------------------------------------------
+
+glIsMemoryObjectEXT
+  :: MonadIO m
+  => GLuint -- ^ @memoryObject@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glIsMemoryObjectEXT v1 = liftIO $ dyn284 ptr_glIsMemoryObjectEXT v1
+
+{-# NOINLINE ptr_glIsMemoryObjectEXT #-}
+ptr_glIsMemoryObjectEXT :: FunPtr (GLuint -> IO GLboolean)
+ptr_glIsMemoryObjectEXT = unsafePerformIO $ getCommand "glIsMemoryObjectEXT"
+
+-- glIsNameAMD -----------------------------------------------------------------
+
+glIsNameAMD
+  :: MonadIO m
+  => GLenum -- ^ @identifier@.
+  -> GLuint -- ^ @name@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glIsNameAMD v1 v2 = liftIO $ dyn502 ptr_glIsNameAMD v1 v2
+
+{-# NOINLINE ptr_glIsNameAMD #-}
+ptr_glIsNameAMD :: FunPtr (GLenum -> GLuint -> IO GLboolean)
+ptr_glIsNameAMD = unsafePerformIO $ getCommand "glIsNameAMD"
+
+-- glIsNamedBufferResidentNV ---------------------------------------------------
+
+glIsNamedBufferResidentNV
+  :: MonadIO m
+  => GLuint -- ^ @buffer@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glIsNamedBufferResidentNV v1 = liftIO $ dyn284 ptr_glIsNamedBufferResidentNV v1
+
+{-# NOINLINE ptr_glIsNamedBufferResidentNV #-}
+ptr_glIsNamedBufferResidentNV :: FunPtr (GLuint -> IO GLboolean)
+ptr_glIsNamedBufferResidentNV = unsafePerformIO $ getCommand "glIsNamedBufferResidentNV"
+
+-- glIsNamedStringARB ----------------------------------------------------------
+
+glIsNamedStringARB
+  :: MonadIO m
+  => GLint -- ^ @namelen@.
+  -> Ptr GLchar -- ^ @name@ pointing to @namelen@ elements of type @GLchar@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glIsNamedStringARB v1 v2 = liftIO $ dyn504 ptr_glIsNamedStringARB v1 v2
+
+{-# NOINLINE ptr_glIsNamedStringARB #-}
+ptr_glIsNamedStringARB :: FunPtr (GLint -> Ptr GLchar -> IO GLboolean)
+ptr_glIsNamedStringARB = unsafePerformIO $ getCommand "glIsNamedStringARB"
+
+-- glIsObjectBufferATI ---------------------------------------------------------
+
+glIsObjectBufferATI
+  :: MonadIO m
+  => GLuint -- ^ @buffer@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glIsObjectBufferATI v1 = liftIO $ dyn284 ptr_glIsObjectBufferATI v1
+
+{-# NOINLINE ptr_glIsObjectBufferATI #-}
+ptr_glIsObjectBufferATI :: FunPtr (GLuint -> IO GLboolean)
+ptr_glIsObjectBufferATI = unsafePerformIO $ getCommand "glIsObjectBufferATI"
+
+-- glIsOcclusionQueryNV --------------------------------------------------------
+
+glIsOcclusionQueryNV
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glIsOcclusionQueryNV v1 = liftIO $ dyn284 ptr_glIsOcclusionQueryNV v1
+
+{-# NOINLINE ptr_glIsOcclusionQueryNV #-}
+ptr_glIsOcclusionQueryNV :: FunPtr (GLuint -> IO GLboolean)
+ptr_glIsOcclusionQueryNV = unsafePerformIO $ getCommand "glIsOcclusionQueryNV"
+
+-- glIsPathNV ------------------------------------------------------------------
+
+glIsPathNV
+  :: MonadIO m
+  => GLuint -- ^ @path@ of type @Path@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glIsPathNV v1 = liftIO $ dyn284 ptr_glIsPathNV v1
+
+{-# NOINLINE ptr_glIsPathNV #-}
+ptr_glIsPathNV :: FunPtr (GLuint -> IO GLboolean)
+ptr_glIsPathNV = unsafePerformIO $ getCommand "glIsPathNV"
+
+-- glIsPointInFillPathNV -------------------------------------------------------
+
+glIsPointInFillPathNV
+  :: MonadIO m
+  => GLuint -- ^ @path@ of type @Path@.
+  -> GLuint -- ^ @mask@ of type @MaskedStencilValue@.
+  -> GLfloat -- ^ @x@.
+  -> GLfloat -- ^ @y@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glIsPointInFillPathNV v1 v2 v3 v4 = liftIO $ dyn505 ptr_glIsPointInFillPathNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glIsPointInFillPathNV #-}
+ptr_glIsPointInFillPathNV :: FunPtr (GLuint -> GLuint -> GLfloat -> GLfloat -> IO GLboolean)
+ptr_glIsPointInFillPathNV = unsafePerformIO $ getCommand "glIsPointInFillPathNV"
+
+-- glIsPointInStrokePathNV -----------------------------------------------------
+
+glIsPointInStrokePathNV
+  :: MonadIO m
+  => GLuint -- ^ @path@ of type @Path@.
+  -> GLfloat -- ^ @x@.
+  -> GLfloat -- ^ @y@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glIsPointInStrokePathNV v1 v2 v3 = liftIO $ dyn506 ptr_glIsPointInStrokePathNV v1 v2 v3
+
+{-# NOINLINE ptr_glIsPointInStrokePathNV #-}
+ptr_glIsPointInStrokePathNV :: FunPtr (GLuint -> GLfloat -> GLfloat -> IO GLboolean)
+ptr_glIsPointInStrokePathNV = unsafePerformIO $ getCommand "glIsPointInStrokePathNV"
+
+-- glIsProgram -----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glIsProgram.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glIsProgram.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glIsProgram.xhtml OpenGL 4.x>.
+glIsProgram
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glIsProgram v1 = liftIO $ dyn284 ptr_glIsProgram v1
+
+{-# NOINLINE ptr_glIsProgram #-}
+ptr_glIsProgram :: FunPtr (GLuint -> IO GLboolean)
+ptr_glIsProgram = unsafePerformIO $ getCommand "glIsProgram"
+
+-- glIsProgramARB --------------------------------------------------------------
+
+glIsProgramARB
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glIsProgramARB v1 = liftIO $ dyn284 ptr_glIsProgramARB v1
+
+{-# NOINLINE ptr_glIsProgramARB #-}
+ptr_glIsProgramARB :: FunPtr (GLuint -> IO GLboolean)
+ptr_glIsProgramARB = unsafePerformIO $ getCommand "glIsProgramARB"
+
+-- glIsProgramNV ---------------------------------------------------------------
+
+-- | This command is an alias for 'glIsProgramARB'.
+glIsProgramNV
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glIsProgramNV v1 = liftIO $ dyn284 ptr_glIsProgramNV v1
+
+{-# NOINLINE ptr_glIsProgramNV #-}
+ptr_glIsProgramNV :: FunPtr (GLuint -> IO GLboolean)
+ptr_glIsProgramNV = unsafePerformIO $ getCommand "glIsProgramNV"
+
+-- glIsProgramPipeline ---------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glIsProgramPipeline.xhtml OpenGL 4.x>.
+glIsProgramPipeline
+  :: MonadIO m
+  => GLuint -- ^ @pipeline@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glIsProgramPipeline v1 = liftIO $ dyn284 ptr_glIsProgramPipeline v1
+
+{-# NOINLINE ptr_glIsProgramPipeline #-}
+ptr_glIsProgramPipeline :: FunPtr (GLuint -> IO GLboolean)
+ptr_glIsProgramPipeline = unsafePerformIO $ getCommand "glIsProgramPipeline"
+
+-- glIsProgramPipelineEXT ------------------------------------------------------
+
+glIsProgramPipelineEXT
+  :: MonadIO m
+  => GLuint -- ^ @pipeline@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glIsProgramPipelineEXT v1 = liftIO $ dyn284 ptr_glIsProgramPipelineEXT v1
+
+{-# NOINLINE ptr_glIsProgramPipelineEXT #-}
+ptr_glIsProgramPipelineEXT :: FunPtr (GLuint -> IO GLboolean)
+ptr_glIsProgramPipelineEXT = unsafePerformIO $ getCommand "glIsProgramPipelineEXT"
+
+-- glIsQuery -------------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glIsQuery.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glIsQuery.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glIsQuery.xhtml OpenGL 4.x>.
+glIsQuery
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glIsQuery v1 = liftIO $ dyn284 ptr_glIsQuery v1
+
+{-# NOINLINE ptr_glIsQuery #-}
+ptr_glIsQuery :: FunPtr (GLuint -> IO GLboolean)
+ptr_glIsQuery = unsafePerformIO $ getCommand "glIsQuery"
+
+-- glIsQueryARB ----------------------------------------------------------------
+
+-- | This command is an alias for 'glIsQuery'.
+glIsQueryARB
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glIsQueryARB v1 = liftIO $ dyn284 ptr_glIsQueryARB v1
+
+{-# NOINLINE ptr_glIsQueryARB #-}
+ptr_glIsQueryARB :: FunPtr (GLuint -> IO GLboolean)
+ptr_glIsQueryARB = unsafePerformIO $ getCommand "glIsQueryARB"
+
+-- glIsQueryEXT ----------------------------------------------------------------
+
+glIsQueryEXT
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glIsQueryEXT v1 = liftIO $ dyn284 ptr_glIsQueryEXT v1
+
+{-# NOINLINE ptr_glIsQueryEXT #-}
+ptr_glIsQueryEXT :: FunPtr (GLuint -> IO GLboolean)
+ptr_glIsQueryEXT = unsafePerformIO $ getCommand "glIsQueryEXT"
+
+-- glIsRenderbuffer ------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glIsRenderbuffer.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glIsRenderbuffer.xhtml OpenGL 4.x>.
+glIsRenderbuffer
+  :: MonadIO m
+  => GLuint -- ^ @renderbuffer@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glIsRenderbuffer v1 = liftIO $ dyn284 ptr_glIsRenderbuffer v1
+
+{-# NOINLINE ptr_glIsRenderbuffer #-}
+ptr_glIsRenderbuffer :: FunPtr (GLuint -> IO GLboolean)
+ptr_glIsRenderbuffer = unsafePerformIO $ getCommand "glIsRenderbuffer"
+
+-- glIsRenderbufferEXT ---------------------------------------------------------
+
+-- | This command is an alias for 'glIsRenderbuffer'.
+glIsRenderbufferEXT
+  :: MonadIO m
+  => GLuint -- ^ @renderbuffer@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glIsRenderbufferEXT v1 = liftIO $ dyn284 ptr_glIsRenderbufferEXT v1
+
+{-# NOINLINE ptr_glIsRenderbufferEXT #-}
+ptr_glIsRenderbufferEXT :: FunPtr (GLuint -> IO GLboolean)
+ptr_glIsRenderbufferEXT = unsafePerformIO $ getCommand "glIsRenderbufferEXT"
+
+-- glIsRenderbufferOES ---------------------------------------------------------
+
+glIsRenderbufferOES
+  :: MonadIO m
+  => GLuint -- ^ @renderbuffer@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glIsRenderbufferOES v1 = liftIO $ dyn284 ptr_glIsRenderbufferOES v1
+
+{-# NOINLINE ptr_glIsRenderbufferOES #-}
+ptr_glIsRenderbufferOES :: FunPtr (GLuint -> IO GLboolean)
+ptr_glIsRenderbufferOES = unsafePerformIO $ getCommand "glIsRenderbufferOES"
+
+-- glIsSampler -----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glIsSampler.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glIsSampler.xhtml OpenGL 4.x>.
+glIsSampler
+  :: MonadIO m
+  => GLuint -- ^ @sampler@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glIsSampler v1 = liftIO $ dyn284 ptr_glIsSampler v1
+
+{-# NOINLINE ptr_glIsSampler #-}
+ptr_glIsSampler :: FunPtr (GLuint -> IO GLboolean)
+ptr_glIsSampler = unsafePerformIO $ getCommand "glIsSampler"
+
+-- glIsSemaphoreEXT ------------------------------------------------------------
+
+glIsSemaphoreEXT
+  :: MonadIO m
+  => GLuint -- ^ @semaphore@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glIsSemaphoreEXT v1 = liftIO $ dyn284 ptr_glIsSemaphoreEXT v1
+
+{-# NOINLINE ptr_glIsSemaphoreEXT #-}
+ptr_glIsSemaphoreEXT :: FunPtr (GLuint -> IO GLboolean)
+ptr_glIsSemaphoreEXT = unsafePerformIO $ getCommand "glIsSemaphoreEXT"
+
+-- glIsShader ------------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glIsShader.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glIsShader.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glIsShader.xhtml OpenGL 4.x>.
+glIsShader
+  :: MonadIO m
+  => GLuint -- ^ @shader@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glIsShader v1 = liftIO $ dyn284 ptr_glIsShader v1
+
+{-# NOINLINE ptr_glIsShader #-}
+ptr_glIsShader :: FunPtr (GLuint -> IO GLboolean)
+ptr_glIsShader = unsafePerformIO $ getCommand "glIsShader"
+
+-- glIsStateNV -----------------------------------------------------------------
+
+glIsStateNV
+  :: MonadIO m
+  => GLuint -- ^ @state@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glIsStateNV v1 = liftIO $ dyn284 ptr_glIsStateNV v1
+
+{-# NOINLINE ptr_glIsStateNV #-}
+ptr_glIsStateNV :: FunPtr (GLuint -> IO GLboolean)
+ptr_glIsStateNV = unsafePerformIO $ getCommand "glIsStateNV"
+
+-- glIsSync --------------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glIsSync.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glIsSync.xhtml OpenGL 4.x>.
+glIsSync
+  :: MonadIO m
+  => GLsync -- ^ @sync@ of type @sync@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glIsSync v1 = liftIO $ dyn507 ptr_glIsSync v1
+
+{-# NOINLINE ptr_glIsSync #-}
+ptr_glIsSync :: FunPtr (GLsync -> IO GLboolean)
+ptr_glIsSync = unsafePerformIO $ getCommand "glIsSync"
+
+-- glIsSyncAPPLE ---------------------------------------------------------------
+
+-- | This command is an alias for 'glIsSync'.
+glIsSyncAPPLE
+  :: MonadIO m
+  => GLsync -- ^ @sync@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glIsSyncAPPLE v1 = liftIO $ dyn507 ptr_glIsSyncAPPLE v1
+
+{-# NOINLINE ptr_glIsSyncAPPLE #-}
+ptr_glIsSyncAPPLE :: FunPtr (GLsync -> IO GLboolean)
+ptr_glIsSyncAPPLE = unsafePerformIO $ getCommand "glIsSyncAPPLE"
+
+-- glIsTexture -----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glIsTexture.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glIsTexture.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glIsTexture.xhtml OpenGL 4.x>.
+glIsTexture
+  :: MonadIO m
+  => GLuint -- ^ @texture@ of type @Texture@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glIsTexture v1 = liftIO $ dyn284 ptr_glIsTexture v1
+
+{-# NOINLINE ptr_glIsTexture #-}
+ptr_glIsTexture :: FunPtr (GLuint -> IO GLboolean)
+ptr_glIsTexture = unsafePerformIO $ getCommand "glIsTexture"
+
+-- glIsTextureEXT --------------------------------------------------------------
+
+glIsTextureEXT
+  :: MonadIO m
+  => GLuint -- ^ @texture@ of type @Texture@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glIsTextureEXT v1 = liftIO $ dyn284 ptr_glIsTextureEXT v1
+
+{-# NOINLINE ptr_glIsTextureEXT #-}
+ptr_glIsTextureEXT :: FunPtr (GLuint -> IO GLboolean)
+ptr_glIsTextureEXT = unsafePerformIO $ getCommand "glIsTextureEXT"
+
+-- glIsTextureHandleResidentARB ------------------------------------------------
+
+glIsTextureHandleResidentARB
+  :: MonadIO m
+  => GLuint64 -- ^ @handle@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glIsTextureHandleResidentARB v1 = liftIO $ dyn503 ptr_glIsTextureHandleResidentARB v1
+
+{-# NOINLINE ptr_glIsTextureHandleResidentARB #-}
+ptr_glIsTextureHandleResidentARB :: FunPtr (GLuint64 -> IO GLboolean)
+ptr_glIsTextureHandleResidentARB = unsafePerformIO $ getCommand "glIsTextureHandleResidentARB"
+
+-- glIsTextureHandleResidentNV -------------------------------------------------
+
+glIsTextureHandleResidentNV
+  :: MonadIO m
+  => GLuint64 -- ^ @handle@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glIsTextureHandleResidentNV v1 = liftIO $ dyn503 ptr_glIsTextureHandleResidentNV v1
+
+{-# NOINLINE ptr_glIsTextureHandleResidentNV #-}
+ptr_glIsTextureHandleResidentNV :: FunPtr (GLuint64 -> IO GLboolean)
+ptr_glIsTextureHandleResidentNV = unsafePerformIO $ getCommand "glIsTextureHandleResidentNV"
+
+-- glIsTransformFeedback -------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glIsTransformFeedback.xhtml OpenGL 4.x>.
+glIsTransformFeedback
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glIsTransformFeedback v1 = liftIO $ dyn284 ptr_glIsTransformFeedback v1
+
+{-# NOINLINE ptr_glIsTransformFeedback #-}
+ptr_glIsTransformFeedback :: FunPtr (GLuint -> IO GLboolean)
+ptr_glIsTransformFeedback = unsafePerformIO $ getCommand "glIsTransformFeedback"
+
+-- glIsTransformFeedbackNV -----------------------------------------------------
+
+-- | This command is an alias for 'glIsTransformFeedback'.
+glIsTransformFeedbackNV
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glIsTransformFeedbackNV v1 = liftIO $ dyn284 ptr_glIsTransformFeedbackNV v1
+
+{-# NOINLINE ptr_glIsTransformFeedbackNV #-}
+ptr_glIsTransformFeedbackNV :: FunPtr (GLuint -> IO GLboolean)
+ptr_glIsTransformFeedbackNV = unsafePerformIO $ getCommand "glIsTransformFeedbackNV"
+
+-- glIsVariantEnabledEXT -------------------------------------------------------
+
+glIsVariantEnabledEXT
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> GLenum -- ^ @cap@ of type [VariantCapEXT](Graphics-GL-Groups.html#VariantCapEXT).
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glIsVariantEnabledEXT v1 v2 = liftIO $ dyn508 ptr_glIsVariantEnabledEXT v1 v2
+
+{-# NOINLINE ptr_glIsVariantEnabledEXT #-}
+ptr_glIsVariantEnabledEXT :: FunPtr (GLuint -> GLenum -> IO GLboolean)
+ptr_glIsVariantEnabledEXT = unsafePerformIO $ getCommand "glIsVariantEnabledEXT"
+
+-- glIsVertexArray -------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glIsVertexArray.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glIsVertexArray.xhtml OpenGL 4.x>.
+glIsVertexArray
+  :: MonadIO m
+  => GLuint -- ^ @array@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glIsVertexArray v1 = liftIO $ dyn284 ptr_glIsVertexArray v1
+
+{-# NOINLINE ptr_glIsVertexArray #-}
+ptr_glIsVertexArray :: FunPtr (GLuint -> IO GLboolean)
+ptr_glIsVertexArray = unsafePerformIO $ getCommand "glIsVertexArray"
+
+-- glIsVertexArrayAPPLE --------------------------------------------------------
+
+-- | This command is an alias for 'glIsVertexArray'.
+glIsVertexArrayAPPLE
+  :: MonadIO m
+  => GLuint -- ^ @array@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glIsVertexArrayAPPLE v1 = liftIO $ dyn284 ptr_glIsVertexArrayAPPLE v1
+
+{-# NOINLINE ptr_glIsVertexArrayAPPLE #-}
+ptr_glIsVertexArrayAPPLE :: FunPtr (GLuint -> IO GLboolean)
+ptr_glIsVertexArrayAPPLE = unsafePerformIO $ getCommand "glIsVertexArrayAPPLE"
+
+-- glIsVertexArrayOES ----------------------------------------------------------
+
+-- | This command is an alias for 'glIsVertexArray'.
+glIsVertexArrayOES
+  :: MonadIO m
+  => GLuint -- ^ @array@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glIsVertexArrayOES v1 = liftIO $ dyn284 ptr_glIsVertexArrayOES v1
+
+{-# NOINLINE ptr_glIsVertexArrayOES #-}
+ptr_glIsVertexArrayOES :: FunPtr (GLuint -> IO GLboolean)
+ptr_glIsVertexArrayOES = unsafePerformIO $ getCommand "glIsVertexArrayOES"
+
+-- glIsVertexAttribEnabledAPPLE ------------------------------------------------
+
+glIsVertexAttribEnabledAPPLE
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLenum -- ^ @pname@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glIsVertexAttribEnabledAPPLE v1 v2 = liftIO $ dyn508 ptr_glIsVertexAttribEnabledAPPLE v1 v2
+
+{-# NOINLINE ptr_glIsVertexAttribEnabledAPPLE #-}
+ptr_glIsVertexAttribEnabledAPPLE :: FunPtr (GLuint -> GLenum -> IO GLboolean)
+ptr_glIsVertexAttribEnabledAPPLE = unsafePerformIO $ getCommand "glIsVertexAttribEnabledAPPLE"
+
+-- glLGPUCopyImageSubDataNVX ---------------------------------------------------
+
+glLGPUCopyImageSubDataNVX
+  :: MonadIO m
+  => GLuint -- ^ @sourceGpu@.
+  -> GLbitfield -- ^ @destinationGpuMask@.
+  -> GLuint -- ^ @srcName@.
+  -> GLenum -- ^ @srcTarget@.
+  -> GLint -- ^ @srcLevel@.
+  -> GLint -- ^ @srcX@.
+  -> GLint -- ^ @srxY@.
+  -> GLint -- ^ @srcZ@.
+  -> GLuint -- ^ @dstName@.
+  -> GLenum -- ^ @dstTarget@.
+  -> GLint -- ^ @dstLevel@.
+  -> GLint -- ^ @dstX@.
+  -> GLint -- ^ @dstY@.
+  -> GLint -- ^ @dstZ@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLsizei -- ^ @depth@.
+  -> m ()
+glLGPUCopyImageSubDataNVX v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 = liftIO $ dyn509 ptr_glLGPUCopyImageSubDataNVX v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17
+
+{-# NOINLINE ptr_glLGPUCopyImageSubDataNVX #-}
+ptr_glLGPUCopyImageSubDataNVX :: FunPtr (GLuint -> GLbitfield -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> IO ())
+ptr_glLGPUCopyImageSubDataNVX = unsafePerformIO $ getCommand "glLGPUCopyImageSubDataNVX"
+
+-- glLGPUInterlockNVX ----------------------------------------------------------
+
+glLGPUInterlockNVX
+  :: MonadIO m
+  => m ()
+glLGPUInterlockNVX = liftIO $ dyn11 ptr_glLGPUInterlockNVX
+
+{-# NOINLINE ptr_glLGPUInterlockNVX #-}
+ptr_glLGPUInterlockNVX :: FunPtr (IO ())
+ptr_glLGPUInterlockNVX = unsafePerformIO $ getCommand "glLGPUInterlockNVX"
+
+-- glLGPUNamedBufferSubDataNVX -------------------------------------------------
+
+glLGPUNamedBufferSubDataNVX
+  :: MonadIO m
+  => GLbitfield -- ^ @gpuMask@.
+  -> GLuint -- ^ @buffer@.
+  -> GLintptr -- ^ @offset@.
+  -> GLsizeiptr -- ^ @size@.
+  -> Ptr a -- ^ @data@.
+  -> m ()
+glLGPUNamedBufferSubDataNVX v1 v2 v3 v4 v5 = liftIO $ dyn510 ptr_glLGPUNamedBufferSubDataNVX v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glLGPUNamedBufferSubDataNVX #-}
+ptr_glLGPUNamedBufferSubDataNVX :: FunPtr (GLbitfield -> GLuint -> GLintptr -> GLsizeiptr -> Ptr a -> IO ())
+ptr_glLGPUNamedBufferSubDataNVX = unsafePerformIO $ getCommand "glLGPUNamedBufferSubDataNVX"
+
+-- glLabelObjectEXT ------------------------------------------------------------
+
+glLabelObjectEXT
+  :: MonadIO m
+  => GLenum -- ^ @type@.
+  -> GLuint -- ^ @object@.
+  -> GLsizei -- ^ @length@.
+  -> Ptr GLchar -- ^ @label@.
+  -> m ()
+glLabelObjectEXT v1 v2 v3 v4 = liftIO $ dyn511 ptr_glLabelObjectEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glLabelObjectEXT #-}
+ptr_glLabelObjectEXT :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLchar -> IO ())
+ptr_glLabelObjectEXT = unsafePerformIO $ getCommand "glLabelObjectEXT"
+
+-- glLightEnviSGIX -------------------------------------------------------------
+
+glLightEnviSGIX
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [LightEnvParameterSGIX](Graphics-GL-Groups.html#LightEnvParameterSGIX).
+  -> GLint -- ^ @param@ of type @CheckedInt32@.
+  -> m ()
+glLightEnviSGIX v1 v2 = liftIO $ dyn58 ptr_glLightEnviSGIX v1 v2
+
+{-# NOINLINE ptr_glLightEnviSGIX #-}
+ptr_glLightEnviSGIX :: FunPtr (GLenum -> GLint -> IO ())
+ptr_glLightEnviSGIX = unsafePerformIO $ getCommand "glLightEnviSGIX"
+
+-- glLightModelf ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glLightModel.xml OpenGL 2.x>.
+glLightModelf
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [LightModelParameter](Graphics-GL-Groups.html#LightModelParameter).
+  -> GLfloat -- ^ @param@.
+  -> m ()
+glLightModelf v1 v2 = liftIO $ dyn0 ptr_glLightModelf v1 v2
+
+{-# NOINLINE ptr_glLightModelf #-}
+ptr_glLightModelf :: FunPtr (GLenum -> GLfloat -> IO ())
+ptr_glLightModelf = unsafePerformIO $ getCommand "glLightModelf"
+
+-- glLightModelfv --------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glLightModel.xml OpenGL 2.x>.
+glLightModelfv
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [LightModelParameter](Graphics-GL-Groups.html#LightModelParameter).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
+  -> m ()
+glLightModelfv v1 v2 = liftIO $ dyn101 ptr_glLightModelfv v1 v2
+
+{-# NOINLINE ptr_glLightModelfv #-}
+ptr_glLightModelfv :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+ptr_glLightModelfv = unsafePerformIO $ getCommand "glLightModelfv"
+
+-- glLightModeli ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glLightModel.xml OpenGL 2.x>.
+glLightModeli
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [LightModelParameter](Graphics-GL-Groups.html#LightModelParameter).
+  -> GLint -- ^ @param@.
+  -> m ()
+glLightModeli v1 v2 = liftIO $ dyn58 ptr_glLightModeli v1 v2
+
+{-# NOINLINE ptr_glLightModeli #-}
+ptr_glLightModeli :: FunPtr (GLenum -> GLint -> IO ())
+ptr_glLightModeli = unsafePerformIO $ getCommand "glLightModeli"
+
+-- glLightModeliv --------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glLightModel.xml OpenGL 2.x>.
+glLightModeliv
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [LightModelParameter](Graphics-GL-Groups.html#LightModelParameter).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glLightModeliv v1 v2 = liftIO $ dyn143 ptr_glLightModeliv v1 v2
+
+{-# NOINLINE ptr_glLightModeliv #-}
+ptr_glLightModeliv :: FunPtr (GLenum -> Ptr GLint -> IO ())
+ptr_glLightModeliv = unsafePerformIO $ getCommand "glLightModeliv"
+
+-- glLightModelx ---------------------------------------------------------------
+
+glLightModelx
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [LightModelParameter](Graphics-GL-Groups.html#LightModelParameter).
+  -> GLfixed -- ^ @param@.
+  -> m ()
+glLightModelx v1 v2 = liftIO $ dyn1 ptr_glLightModelx v1 v2
+
+{-# NOINLINE ptr_glLightModelx #-}
+ptr_glLightModelx :: FunPtr (GLenum -> GLfixed -> IO ())
+ptr_glLightModelx = unsafePerformIO $ getCommand "glLightModelx"
+
+-- glLightModelxOES ------------------------------------------------------------
+
+glLightModelxOES
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [LightModelParameter](Graphics-GL-Groups.html#LightModelParameter).
+  -> GLfixed -- ^ @param@.
+  -> m ()
+glLightModelxOES v1 v2 = liftIO $ dyn1 ptr_glLightModelxOES v1 v2
+
+{-# NOINLINE ptr_glLightModelxOES #-}
+ptr_glLightModelxOES :: FunPtr (GLenum -> GLfixed -> IO ())
+ptr_glLightModelxOES = unsafePerformIO $ getCommand "glLightModelxOES"
+
+-- glLightModelxv --------------------------------------------------------------
+
+glLightModelxv
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [LightModelParameter](Graphics-GL-Groups.html#LightModelParameter).
+  -> Ptr GLfixed -- ^ @param@ pointing to @COMPSIZE(pname)@ elements of type @GLfixed@.
+  -> m ()
+glLightModelxv v1 v2 = liftIO $ dyn102 ptr_glLightModelxv v1 v2
+
+{-# NOINLINE ptr_glLightModelxv #-}
+ptr_glLightModelxv :: FunPtr (GLenum -> Ptr GLfixed -> IO ())
+ptr_glLightModelxv = unsafePerformIO $ getCommand "glLightModelxv"
+
+-- glLightModelxvOES -----------------------------------------------------------
+
+glLightModelxvOES
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [LightModelParameter](Graphics-GL-Groups.html#LightModelParameter).
+  -> Ptr GLfixed -- ^ @param@ pointing to @COMPSIZE(pname)@ elements of type @GLfixed@.
+  -> m ()
+glLightModelxvOES v1 v2 = liftIO $ dyn102 ptr_glLightModelxvOES v1 v2
+
+{-# NOINLINE ptr_glLightModelxvOES #-}
+ptr_glLightModelxvOES :: FunPtr (GLenum -> Ptr GLfixed -> IO ())
+ptr_glLightModelxvOES = unsafePerformIO $ getCommand "glLightModelxvOES"
+
+-- glLightf --------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glLight.xml OpenGL 2.x>.
+glLightf
+  :: MonadIO m
+  => GLenum -- ^ @light@ of type [LightName](Graphics-GL-Groups.html#LightName).
+  -> GLenum -- ^ @pname@ of type [LightParameter](Graphics-GL-Groups.html#LightParameter).
+  -> GLfloat -- ^ @param@ of type @CheckedFloat32@.
+  -> m ()
+glLightf v1 v2 v3 = liftIO $ dyn168 ptr_glLightf v1 v2 v3
+
+{-# NOINLINE ptr_glLightf #-}
+ptr_glLightf :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
+ptr_glLightf = unsafePerformIO $ getCommand "glLightf"
+
+-- glLightfv -------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glLight.xml OpenGL 2.x>.
+glLightfv
+  :: MonadIO m
+  => GLenum -- ^ @light@ of type [LightName](Graphics-GL-Groups.html#LightName).
+  -> GLenum -- ^ @pname@ of type [LightParameter](Graphics-GL-Groups.html#LightParameter).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @CheckedFloat32@.
+  -> m ()
+glLightfv v1 v2 v3 = liftIO $ dyn139 ptr_glLightfv v1 v2 v3
+
+{-# NOINLINE ptr_glLightfv #-}
+ptr_glLightfv :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glLightfv = unsafePerformIO $ getCommand "glLightfv"
+
+-- glLighti --------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glLight.xml OpenGL 2.x>.
+glLighti
+  :: MonadIO m
+  => GLenum -- ^ @light@ of type [LightName](Graphics-GL-Groups.html#LightName).
+  -> GLenum -- ^ @pname@ of type [LightParameter](Graphics-GL-Groups.html#LightParameter).
+  -> GLint -- ^ @param@ of type @CheckedInt32@.
+  -> m ()
+glLighti v1 v2 v3 = liftIO $ dyn66 ptr_glLighti v1 v2 v3
+
+{-# NOINLINE ptr_glLighti #-}
+ptr_glLighti :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
+ptr_glLighti = unsafePerformIO $ getCommand "glLighti"
+
+-- glLightiv -------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glLight.xml OpenGL 2.x>.
+glLightiv
+  :: MonadIO m
+  => GLenum -- ^ @light@ of type [LightName](Graphics-GL-Groups.html#LightName).
+  -> GLenum -- ^ @pname@ of type [LightParameter](Graphics-GL-Groups.html#LightParameter).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @CheckedInt32@.
+  -> m ()
+glLightiv v1 v2 v3 = liftIO $ dyn140 ptr_glLightiv v1 v2 v3
+
+{-# NOINLINE ptr_glLightiv #-}
+ptr_glLightiv :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glLightiv = unsafePerformIO $ getCommand "glLightiv"
+
+-- glLightx --------------------------------------------------------------------
+
+glLightx
+  :: MonadIO m
+  => GLenum -- ^ @light@ of type [LightName](Graphics-GL-Groups.html#LightName).
+  -> GLenum -- ^ @pname@ of type [LightParameter](Graphics-GL-Groups.html#LightParameter).
+  -> GLfixed -- ^ @param@.
+  -> m ()
+glLightx v1 v2 v3 = liftIO $ dyn169 ptr_glLightx v1 v2 v3
+
+{-# NOINLINE ptr_glLightx #-}
+ptr_glLightx :: FunPtr (GLenum -> GLenum -> GLfixed -> IO ())
+ptr_glLightx = unsafePerformIO $ getCommand "glLightx"
+
+-- glLightxOES -----------------------------------------------------------------
+
+glLightxOES
+  :: MonadIO m
+  => GLenum -- ^ @light@ of type [LightName](Graphics-GL-Groups.html#LightName).
+  -> GLenum -- ^ @pname@ of type [LightParameter](Graphics-GL-Groups.html#LightParameter).
+  -> GLfixed -- ^ @param@.
+  -> m ()
+glLightxOES v1 v2 v3 = liftIO $ dyn169 ptr_glLightxOES v1 v2 v3
+
+{-# NOINLINE ptr_glLightxOES #-}
+ptr_glLightxOES :: FunPtr (GLenum -> GLenum -> GLfixed -> IO ())
+ptr_glLightxOES = unsafePerformIO $ getCommand "glLightxOES"
+
+-- glLightxv -------------------------------------------------------------------
+
+glLightxv
+  :: MonadIO m
+  => GLenum -- ^ @light@ of type [LightName](Graphics-GL-Groups.html#LightName).
+  -> GLenum -- ^ @pname@ of type [LightParameter](Graphics-GL-Groups.html#LightParameter).
+  -> Ptr GLfixed -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfixed@.
+  -> m ()
+glLightxv v1 v2 v3 = liftIO $ dyn170 ptr_glLightxv v1 v2 v3
+
+{-# NOINLINE ptr_glLightxv #-}
+ptr_glLightxv :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+ptr_glLightxv = unsafePerformIO $ getCommand "glLightxv"
+
+-- glLightxvOES ----------------------------------------------------------------
+
+glLightxvOES
+  :: MonadIO m
+  => GLenum -- ^ @light@ of type [LightName](Graphics-GL-Groups.html#LightName).
+  -> GLenum -- ^ @pname@ of type [LightParameter](Graphics-GL-Groups.html#LightParameter).
+  -> Ptr GLfixed -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfixed@.
+  -> m ()
+glLightxvOES v1 v2 v3 = liftIO $ dyn170 ptr_glLightxvOES v1 v2 v3
+
+{-# NOINLINE ptr_glLightxvOES #-}
+ptr_glLightxvOES :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+ptr_glLightxvOES = unsafePerformIO $ getCommand "glLightxvOES"
+
+-- glLineStipple ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glLineStipple.xml OpenGL 2.x>.
+glLineStipple
+  :: MonadIO m
+  => GLint -- ^ @factor@ of type @CheckedInt32@.
+  -> GLushort -- ^ @pattern@ of type @LineStipple@.
+  -> m ()
+glLineStipple v1 v2 = liftIO $ dyn512 ptr_glLineStipple v1 v2
+
+{-# NOINLINE ptr_glLineStipple #-}
+ptr_glLineStipple :: FunPtr (GLint -> GLushort -> IO ())
+ptr_glLineStipple = unsafePerformIO $ getCommand "glLineStipple"
+
+-- glLineWidth -----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glLineWidth.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glLineWidth.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glLineWidth.xhtml OpenGL 4.x>.
+glLineWidth
+  :: MonadIO m
+  => GLfloat -- ^ @width@ of type @CheckedFloat32@.
+  -> m ()
+glLineWidth v1 = liftIO $ dyn85 ptr_glLineWidth v1
+
+{-# NOINLINE ptr_glLineWidth #-}
+ptr_glLineWidth :: FunPtr (GLfloat -> IO ())
+ptr_glLineWidth = unsafePerformIO $ getCommand "glLineWidth"
+
+-- glLineWidthx ----------------------------------------------------------------
+
+glLineWidthx
+  :: MonadIO m
+  => GLfixed -- ^ @width@.
+  -> m ()
+glLineWidthx v1 = liftIO $ dyn87 ptr_glLineWidthx v1
+
+{-# NOINLINE ptr_glLineWidthx #-}
+ptr_glLineWidthx :: FunPtr (GLfixed -> IO ())
+ptr_glLineWidthx = unsafePerformIO $ getCommand "glLineWidthx"
+
+-- glLineWidthxOES -------------------------------------------------------------
+
+glLineWidthxOES
+  :: MonadIO m
+  => GLfixed -- ^ @width@.
+  -> m ()
+glLineWidthxOES v1 = liftIO $ dyn87 ptr_glLineWidthxOES v1
+
+{-# NOINLINE ptr_glLineWidthxOES #-}
+ptr_glLineWidthxOES :: FunPtr (GLfixed -> IO ())
+ptr_glLineWidthxOES = unsafePerformIO $ getCommand "glLineWidthxOES"
+
+-- glLinkProgram ---------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glLinkProgram.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glLinkProgram.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glLinkProgram.xhtml OpenGL 4.x>.
+glLinkProgram
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> m ()
+glLinkProgram v1 = liftIO $ dyn3 ptr_glLinkProgram v1
+
+{-# NOINLINE ptr_glLinkProgram #-}
+ptr_glLinkProgram :: FunPtr (GLuint -> IO ())
+ptr_glLinkProgram = unsafePerformIO $ getCommand "glLinkProgram"
+
+-- glLinkProgramARB ------------------------------------------------------------
+
+-- | This command is an alias for 'glLinkProgram'.
+glLinkProgramARB
+  :: MonadIO m
+  => GLhandleARB -- ^ @programObj@ of type @handleARB@.
+  -> m ()
+glLinkProgramARB v1 = liftIO $ dyn144 ptr_glLinkProgramARB v1
+
+{-# NOINLINE ptr_glLinkProgramARB #-}
+ptr_glLinkProgramARB :: FunPtr (GLhandleARB -> IO ())
+ptr_glLinkProgramARB = unsafePerformIO $ getCommand "glLinkProgramARB"
+
+-- glListBase ------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glListBase.xml OpenGL 2.x>.
+glListBase
+  :: MonadIO m
+  => GLuint -- ^ @base@ of type @List@.
+  -> m ()
+glListBase v1 = liftIO $ dyn3 ptr_glListBase v1
+
+{-# NOINLINE ptr_glListBase #-}
+ptr_glListBase :: FunPtr (GLuint -> IO ())
+ptr_glListBase = unsafePerformIO $ getCommand "glListBase"
+
+-- glListDrawCommandsStatesClientNV --------------------------------------------
+
+glListDrawCommandsStatesClientNV
+  :: MonadIO m
+  => GLuint -- ^ @list@.
+  -> GLuint -- ^ @segment@.
+  -> Ptr (Ptr a) -- ^ @indirects@.
+  -> Ptr GLsizei -- ^ @sizes@.
+  -> Ptr GLuint -- ^ @states@.
+  -> Ptr GLuint -- ^ @fbos@.
+  -> GLuint -- ^ @count@.
+  -> m ()
+glListDrawCommandsStatesClientNV v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn513 ptr_glListDrawCommandsStatesClientNV v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glListDrawCommandsStatesClientNV #-}
+ptr_glListDrawCommandsStatesClientNV :: FunPtr (GLuint -> GLuint -> Ptr (Ptr a) -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> IO ())
+ptr_glListDrawCommandsStatesClientNV = unsafePerformIO $ getCommand "glListDrawCommandsStatesClientNV"
+
+-- glListParameterfSGIX --------------------------------------------------------
+
+glListParameterfSGIX
+  :: MonadIO m
+  => GLuint -- ^ @list@ of type @List@.
+  -> GLenum -- ^ @pname@ of type [ListParameterName](Graphics-GL-Groups.html#ListParameterName).
+  -> GLfloat -- ^ @param@ of type @CheckedFloat32@.
+  -> m ()
+glListParameterfSGIX v1 v2 v3 = liftIO $ dyn514 ptr_glListParameterfSGIX v1 v2 v3
+
+{-# NOINLINE ptr_glListParameterfSGIX #-}
+ptr_glListParameterfSGIX :: FunPtr (GLuint -> GLenum -> GLfloat -> IO ())
+ptr_glListParameterfSGIX = unsafePerformIO $ getCommand "glListParameterfSGIX"
+
+-- glListParameterfvSGIX -------------------------------------------------------
+
+glListParameterfvSGIX
+  :: MonadIO m
+  => GLuint -- ^ @list@ of type @List@.
+  -> GLenum -- ^ @pname@ of type [ListParameterName](Graphics-GL-Groups.html#ListParameterName).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @CheckedFloat32@.
+  -> m ()
+glListParameterfvSGIX v1 v2 v3 = liftIO $ dyn364 ptr_glListParameterfvSGIX v1 v2 v3
+
+{-# NOINLINE ptr_glListParameterfvSGIX #-}
+ptr_glListParameterfvSGIX :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glListParameterfvSGIX = unsafePerformIO $ getCommand "glListParameterfvSGIX"
+
+-- glListParameteriSGIX --------------------------------------------------------
+
+glListParameteriSGIX
+  :: MonadIO m
+  => GLuint -- ^ @list@ of type @List@.
+  -> GLenum -- ^ @pname@ of type [ListParameterName](Graphics-GL-Groups.html#ListParameterName).
+  -> GLint -- ^ @param@ of type @CheckedInt32@.
+  -> m ()
+glListParameteriSGIX v1 v2 v3 = liftIO $ dyn491 ptr_glListParameteriSGIX v1 v2 v3
+
+{-# NOINLINE ptr_glListParameteriSGIX #-}
+ptr_glListParameteriSGIX :: FunPtr (GLuint -> GLenum -> GLint -> IO ())
+ptr_glListParameteriSGIX = unsafePerformIO $ getCommand "glListParameteriSGIX"
+
+-- glListParameterivSGIX -------------------------------------------------------
+
+glListParameterivSGIX
+  :: MonadIO m
+  => GLuint -- ^ @list@ of type @List@.
+  -> GLenum -- ^ @pname@ of type [ListParameterName](Graphics-GL-Groups.html#ListParameterName).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @CheckedInt32@.
+  -> m ()
+glListParameterivSGIX v1 v2 v3 = liftIO $ dyn348 ptr_glListParameterivSGIX v1 v2 v3
+
+{-# NOINLINE ptr_glListParameterivSGIX #-}
+ptr_glListParameterivSGIX :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glListParameterivSGIX = unsafePerformIO $ getCommand "glListParameterivSGIX"
+
+-- glLoadIdentity --------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glLoadIdentity.xml OpenGL 2.x>.
+glLoadIdentity
+  :: MonadIO m
+  => m ()
+glLoadIdentity = liftIO $ dyn11 ptr_glLoadIdentity
+
+{-# NOINLINE ptr_glLoadIdentity #-}
+ptr_glLoadIdentity :: FunPtr (IO ())
+ptr_glLoadIdentity = unsafePerformIO $ getCommand "glLoadIdentity"
+
+-- glLoadIdentityDeformationMapSGIX --------------------------------------------
+
+glLoadIdentityDeformationMapSGIX
+  :: MonadIO m
+  => GLbitfield -- ^ @mask@ of type [FfdMaskSGIX](Graphics-GL-Groups.html#FfdMaskSGIX).
+  -> m ()
+glLoadIdentityDeformationMapSGIX v1 = liftIO $ dyn75 ptr_glLoadIdentityDeformationMapSGIX v1
+
+{-# NOINLINE ptr_glLoadIdentityDeformationMapSGIX #-}
+ptr_glLoadIdentityDeformationMapSGIX :: FunPtr (GLbitfield -> IO ())
+ptr_glLoadIdentityDeformationMapSGIX = unsafePerformIO $ getCommand "glLoadIdentityDeformationMapSGIX"
+
+-- glLoadMatrixd ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glLoadMatrix.xml OpenGL 2.x>.
+glLoadMatrixd
+  :: MonadIO m
+  => Ptr GLdouble -- ^ @m@ pointing to @16@ elements of type @GLdouble@.
+  -> m ()
+glLoadMatrixd v1 = liftIO $ dyn42 ptr_glLoadMatrixd v1
+
+{-# NOINLINE ptr_glLoadMatrixd #-}
+ptr_glLoadMatrixd :: FunPtr (Ptr GLdouble -> IO ())
+ptr_glLoadMatrixd = unsafePerformIO $ getCommand "glLoadMatrixd"
+
+-- glLoadMatrixf ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glLoadMatrix.xml OpenGL 2.x>.
+glLoadMatrixf
+  :: MonadIO m
+  => Ptr GLfloat -- ^ @m@ pointing to @16@ elements of type @GLfloat@.
+  -> m ()
+glLoadMatrixf v1 = liftIO $ dyn44 ptr_glLoadMatrixf v1
+
+{-# NOINLINE ptr_glLoadMatrixf #-}
+ptr_glLoadMatrixf :: FunPtr (Ptr GLfloat -> IO ())
+ptr_glLoadMatrixf = unsafePerformIO $ getCommand "glLoadMatrixf"
+
+-- glLoadMatrixx ---------------------------------------------------------------
+
+glLoadMatrixx
+  :: MonadIO m
+  => Ptr GLfixed -- ^ @m@ pointing to @16@ elements of type @GLfixed@.
+  -> m ()
+glLoadMatrixx v1 = liftIO $ dyn114 ptr_glLoadMatrixx v1
+
+{-# NOINLINE ptr_glLoadMatrixx #-}
+ptr_glLoadMatrixx :: FunPtr (Ptr GLfixed -> IO ())
+ptr_glLoadMatrixx = unsafePerformIO $ getCommand "glLoadMatrixx"
+
+-- glLoadMatrixxOES ------------------------------------------------------------
+
+glLoadMatrixxOES
+  :: MonadIO m
+  => Ptr GLfixed -- ^ @m@ pointing to @16@ elements of type @GLfixed@.
+  -> m ()
+glLoadMatrixxOES v1 = liftIO $ dyn114 ptr_glLoadMatrixxOES v1
+
+{-# NOINLINE ptr_glLoadMatrixxOES #-}
+ptr_glLoadMatrixxOES :: FunPtr (Ptr GLfixed -> IO ())
+ptr_glLoadMatrixxOES = unsafePerformIO $ getCommand "glLoadMatrixxOES"
+
+-- glLoadName ------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glLoadName.xml OpenGL 2.x>.
+glLoadName
+  :: MonadIO m
+  => GLuint -- ^ @name@ of type @SelectName@.
+  -> m ()
+glLoadName v1 = liftIO $ dyn3 ptr_glLoadName v1
+
+{-# NOINLINE ptr_glLoadName #-}
+ptr_glLoadName :: FunPtr (GLuint -> IO ())
+ptr_glLoadName = unsafePerformIO $ getCommand "glLoadName"
+
+-- glLoadPaletteFromModelViewMatrixOES -----------------------------------------
+
+glLoadPaletteFromModelViewMatrixOES
+  :: MonadIO m
+  => m ()
+glLoadPaletteFromModelViewMatrixOES = liftIO $ dyn11 ptr_glLoadPaletteFromModelViewMatrixOES
+
+{-# NOINLINE ptr_glLoadPaletteFromModelViewMatrixOES #-}
+ptr_glLoadPaletteFromModelViewMatrixOES :: FunPtr (IO ())
+ptr_glLoadPaletteFromModelViewMatrixOES = unsafePerformIO $ getCommand "glLoadPaletteFromModelViewMatrixOES"
+
+-- glLoadProgramNV -------------------------------------------------------------
+
+glLoadProgramNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [VertexAttribEnumNV](Graphics-GL-Groups.html#VertexAttribEnumNV).
+  -> GLuint -- ^ @id@.
+  -> GLsizei -- ^ @len@.
+  -> Ptr GLubyte -- ^ @program@ pointing to @len@ elements of type @GLubyte@.
+  -> m ()
+glLoadProgramNV v1 v2 v3 v4 = liftIO $ dyn515 ptr_glLoadProgramNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glLoadProgramNV #-}
+ptr_glLoadProgramNV :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLubyte -> IO ())
+ptr_glLoadProgramNV = unsafePerformIO $ getCommand "glLoadProgramNV"
+
diff --git a/src/Graphics/GL/Functions/F16.hs b/src/Graphics/GL/Functions/F16.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Functions/F16.hs
@@ -0,0 +1,1569 @@
+{-# OPTIONS_HADDOCK hide #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Functions.F16
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- Raw functions from the
+-- <http://www.opengl.org/registry/ OpenGL registry>.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Functions.F16 (
+  glLoadTransposeMatrixd,
+  glLoadTransposeMatrixdARB,
+  glLoadTransposeMatrixf,
+  glLoadTransposeMatrixfARB,
+  glLoadTransposeMatrixxOES,
+  glLockArraysEXT,
+  glLogicOp,
+  glMakeBufferNonResidentNV,
+  glMakeBufferResidentNV,
+  glMakeImageHandleNonResidentARB,
+  glMakeImageHandleNonResidentNV,
+  glMakeImageHandleResidentARB,
+  glMakeImageHandleResidentNV,
+  glMakeNamedBufferNonResidentNV,
+  glMakeNamedBufferResidentNV,
+  glMakeTextureHandleNonResidentARB,
+  glMakeTextureHandleNonResidentNV,
+  glMakeTextureHandleResidentARB,
+  glMakeTextureHandleResidentNV,
+  glMap1d,
+  glMap1f,
+  glMap1xOES,
+  glMap2d,
+  glMap2f,
+  glMap2xOES,
+  glMapBuffer,
+  glMapBufferARB,
+  glMapBufferOES,
+  glMapBufferRange,
+  glMapBufferRangeEXT,
+  glMapControlPointsNV,
+  glMapGrid1d,
+  glMapGrid1f,
+  glMapGrid1xOES,
+  glMapGrid2d,
+  glMapGrid2f,
+  glMapGrid2xOES,
+  glMapNamedBuffer,
+  glMapNamedBufferEXT,
+  glMapNamedBufferRange,
+  glMapNamedBufferRangeEXT,
+  glMapObjectBufferATI,
+  glMapParameterfvNV,
+  glMapParameterivNV,
+  glMapTexture2DINTEL,
+  glMapVertexAttrib1dAPPLE,
+  glMapVertexAttrib1fAPPLE,
+  glMapVertexAttrib2dAPPLE,
+  glMapVertexAttrib2fAPPLE,
+  glMaterialf,
+  glMaterialfv,
+  glMateriali,
+  glMaterialiv,
+  glMaterialx,
+  glMaterialxOES,
+  glMaterialxv,
+  glMaterialxvOES,
+  glMatrixFrustumEXT,
+  glMatrixIndexPointerARB,
+  glMatrixIndexPointerOES,
+  glMatrixIndexubvARB,
+  glMatrixIndexuivARB,
+  glMatrixIndexusvARB,
+  glMatrixLoad3x2fNV,
+  glMatrixLoad3x3fNV,
+  glMatrixLoadIdentityEXT,
+  glMatrixLoadTranspose3x3fNV,
+  glMatrixLoadTransposedEXT,
+  glMatrixLoadTransposefEXT,
+  glMatrixLoaddEXT,
+  glMatrixLoadfEXT,
+  glMatrixMode,
+  glMatrixMult3x2fNV,
+  glMatrixMult3x3fNV,
+  glMatrixMultTranspose3x3fNV,
+  glMatrixMultTransposedEXT,
+  glMatrixMultTransposefEXT,
+  glMatrixMultdEXT,
+  glMatrixMultfEXT,
+  glMatrixOrthoEXT,
+  glMatrixPopEXT,
+  glMatrixPushEXT,
+  glMatrixRotatedEXT,
+  glMatrixRotatefEXT,
+  glMatrixScaledEXT,
+  glMatrixScalefEXT,
+  glMatrixTranslatedEXT,
+  glMatrixTranslatefEXT,
+  glMaxShaderCompilerThreadsARB,
+  glMaxShaderCompilerThreadsKHR,
+  glMemoryBarrier,
+  glMemoryBarrierByRegion,
+  glMemoryBarrierEXT,
+  glMemoryObjectParameterivEXT,
+  glMinSampleShading,
+  glMinSampleShadingARB,
+  glMinSampleShadingOES,
+  glMinmax,
+  glMinmaxEXT,
+  glMultMatrixd
+) where
+
+import Control.Monad.IO.Class ( MonadIO(..) )
+import Foreign.Ptr
+import Graphics.GL.Foreign
+import Graphics.GL.Types
+import System.IO.Unsafe ( unsafePerformIO )
+
+-- glLoadTransposeMatrixd ------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glLoadTransposeMatrix.xml OpenGL 2.x>.
+glLoadTransposeMatrixd
+  :: MonadIO m
+  => Ptr GLdouble -- ^ @m@ pointing to @16@ elements of type @GLdouble@.
+  -> m ()
+glLoadTransposeMatrixd v1 = liftIO $ dyn42 ptr_glLoadTransposeMatrixd v1
+
+{-# NOINLINE ptr_glLoadTransposeMatrixd #-}
+ptr_glLoadTransposeMatrixd :: FunPtr (Ptr GLdouble -> IO ())
+ptr_glLoadTransposeMatrixd = unsafePerformIO $ getCommand "glLoadTransposeMatrixd"
+
+-- glLoadTransposeMatrixdARB ---------------------------------------------------
+
+-- | This command is an alias for 'glLoadTransposeMatrixd'.
+glLoadTransposeMatrixdARB
+  :: MonadIO m
+  => Ptr GLdouble -- ^ @m@ pointing to @16@ elements of type @GLdouble@.
+  -> m ()
+glLoadTransposeMatrixdARB v1 = liftIO $ dyn42 ptr_glLoadTransposeMatrixdARB v1
+
+{-# NOINLINE ptr_glLoadTransposeMatrixdARB #-}
+ptr_glLoadTransposeMatrixdARB :: FunPtr (Ptr GLdouble -> IO ())
+ptr_glLoadTransposeMatrixdARB = unsafePerformIO $ getCommand "glLoadTransposeMatrixdARB"
+
+-- glLoadTransposeMatrixf ------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glLoadTransposeMatrix.xml OpenGL 2.x>.
+glLoadTransposeMatrixf
+  :: MonadIO m
+  => Ptr GLfloat -- ^ @m@ pointing to @16@ elements of type @GLfloat@.
+  -> m ()
+glLoadTransposeMatrixf v1 = liftIO $ dyn44 ptr_glLoadTransposeMatrixf v1
+
+{-# NOINLINE ptr_glLoadTransposeMatrixf #-}
+ptr_glLoadTransposeMatrixf :: FunPtr (Ptr GLfloat -> IO ())
+ptr_glLoadTransposeMatrixf = unsafePerformIO $ getCommand "glLoadTransposeMatrixf"
+
+-- glLoadTransposeMatrixfARB ---------------------------------------------------
+
+-- | This command is an alias for 'glLoadTransposeMatrixf'.
+glLoadTransposeMatrixfARB
+  :: MonadIO m
+  => Ptr GLfloat -- ^ @m@ pointing to @16@ elements of type @GLfloat@.
+  -> m ()
+glLoadTransposeMatrixfARB v1 = liftIO $ dyn44 ptr_glLoadTransposeMatrixfARB v1
+
+{-# NOINLINE ptr_glLoadTransposeMatrixfARB #-}
+ptr_glLoadTransposeMatrixfARB :: FunPtr (Ptr GLfloat -> IO ())
+ptr_glLoadTransposeMatrixfARB = unsafePerformIO $ getCommand "glLoadTransposeMatrixfARB"
+
+-- glLoadTransposeMatrixxOES ---------------------------------------------------
+
+glLoadTransposeMatrixxOES
+  :: MonadIO m
+  => Ptr GLfixed -- ^ @m@ pointing to @16@ elements of type @GLfixed@.
+  -> m ()
+glLoadTransposeMatrixxOES v1 = liftIO $ dyn114 ptr_glLoadTransposeMatrixxOES v1
+
+{-# NOINLINE ptr_glLoadTransposeMatrixxOES #-}
+ptr_glLoadTransposeMatrixxOES :: FunPtr (Ptr GLfixed -> IO ())
+ptr_glLoadTransposeMatrixxOES = unsafePerformIO $ getCommand "glLoadTransposeMatrixxOES"
+
+-- glLockArraysEXT -------------------------------------------------------------
+
+glLockArraysEXT
+  :: MonadIO m
+  => GLint -- ^ @first@.
+  -> GLsizei -- ^ @count@.
+  -> m ()
+glLockArraysEXT v1 v2 = liftIO $ dyn516 ptr_glLockArraysEXT v1 v2
+
+{-# NOINLINE ptr_glLockArraysEXT #-}
+ptr_glLockArraysEXT :: FunPtr (GLint -> GLsizei -> IO ())
+ptr_glLockArraysEXT = unsafePerformIO $ getCommand "glLockArraysEXT"
+
+-- glLogicOp -------------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glLogicOp.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glLogicOp.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glLogicOp.xhtml OpenGL 4.x>.
+glLogicOp
+  :: MonadIO m
+  => GLenum -- ^ @opcode@ of type [LogicOp](Graphics-GL-Groups.html#LogicOp).
+  -> m ()
+glLogicOp v1 = liftIO $ dyn5 ptr_glLogicOp v1
+
+{-# NOINLINE ptr_glLogicOp #-}
+ptr_glLogicOp :: FunPtr (GLenum -> IO ())
+ptr_glLogicOp = unsafePerformIO $ getCommand "glLogicOp"
+
+-- glMakeBufferNonResidentNV ---------------------------------------------------
+
+glMakeBufferNonResidentNV
+  :: MonadIO m
+  => GLenum -- ^ @target@.
+  -> m ()
+glMakeBufferNonResidentNV v1 = liftIO $ dyn5 ptr_glMakeBufferNonResidentNV v1
+
+{-# NOINLINE ptr_glMakeBufferNonResidentNV #-}
+ptr_glMakeBufferNonResidentNV :: FunPtr (GLenum -> IO ())
+ptr_glMakeBufferNonResidentNV = unsafePerformIO $ getCommand "glMakeBufferNonResidentNV"
+
+-- glMakeBufferResidentNV ------------------------------------------------------
+
+glMakeBufferResidentNV
+  :: MonadIO m
+  => GLenum -- ^ @target@.
+  -> GLenum -- ^ @access@.
+  -> m ()
+glMakeBufferResidentNV v1 v2 = liftIO $ dyn54 ptr_glMakeBufferResidentNV v1 v2
+
+{-# NOINLINE ptr_glMakeBufferResidentNV #-}
+ptr_glMakeBufferResidentNV :: FunPtr (GLenum -> GLenum -> IO ())
+ptr_glMakeBufferResidentNV = unsafePerformIO $ getCommand "glMakeBufferResidentNV"
+
+-- glMakeImageHandleNonResidentARB ---------------------------------------------
+
+glMakeImageHandleNonResidentARB
+  :: MonadIO m
+  => GLuint64 -- ^ @handle@.
+  -> m ()
+glMakeImageHandleNonResidentARB v1 = liftIO $ dyn517 ptr_glMakeImageHandleNonResidentARB v1
+
+{-# NOINLINE ptr_glMakeImageHandleNonResidentARB #-}
+ptr_glMakeImageHandleNonResidentARB :: FunPtr (GLuint64 -> IO ())
+ptr_glMakeImageHandleNonResidentARB = unsafePerformIO $ getCommand "glMakeImageHandleNonResidentARB"
+
+-- glMakeImageHandleNonResidentNV ----------------------------------------------
+
+glMakeImageHandleNonResidentNV
+  :: MonadIO m
+  => GLuint64 -- ^ @handle@.
+  -> m ()
+glMakeImageHandleNonResidentNV v1 = liftIO $ dyn517 ptr_glMakeImageHandleNonResidentNV v1
+
+{-# NOINLINE ptr_glMakeImageHandleNonResidentNV #-}
+ptr_glMakeImageHandleNonResidentNV :: FunPtr (GLuint64 -> IO ())
+ptr_glMakeImageHandleNonResidentNV = unsafePerformIO $ getCommand "glMakeImageHandleNonResidentNV"
+
+-- glMakeImageHandleResidentARB ------------------------------------------------
+
+glMakeImageHandleResidentARB
+  :: MonadIO m
+  => GLuint64 -- ^ @handle@.
+  -> GLenum -- ^ @access@.
+  -> m ()
+glMakeImageHandleResidentARB v1 v2 = liftIO $ dyn518 ptr_glMakeImageHandleResidentARB v1 v2
+
+{-# NOINLINE ptr_glMakeImageHandleResidentARB #-}
+ptr_glMakeImageHandleResidentARB :: FunPtr (GLuint64 -> GLenum -> IO ())
+ptr_glMakeImageHandleResidentARB = unsafePerformIO $ getCommand "glMakeImageHandleResidentARB"
+
+-- glMakeImageHandleResidentNV -------------------------------------------------
+
+glMakeImageHandleResidentNV
+  :: MonadIO m
+  => GLuint64 -- ^ @handle@.
+  -> GLenum -- ^ @access@.
+  -> m ()
+glMakeImageHandleResidentNV v1 v2 = liftIO $ dyn518 ptr_glMakeImageHandleResidentNV v1 v2
+
+{-# NOINLINE ptr_glMakeImageHandleResidentNV #-}
+ptr_glMakeImageHandleResidentNV :: FunPtr (GLuint64 -> GLenum -> IO ())
+ptr_glMakeImageHandleResidentNV = unsafePerformIO $ getCommand "glMakeImageHandleResidentNV"
+
+-- glMakeNamedBufferNonResidentNV ----------------------------------------------
+
+glMakeNamedBufferNonResidentNV
+  :: MonadIO m
+  => GLuint -- ^ @buffer@.
+  -> m ()
+glMakeNamedBufferNonResidentNV v1 = liftIO $ dyn3 ptr_glMakeNamedBufferNonResidentNV v1
+
+{-# NOINLINE ptr_glMakeNamedBufferNonResidentNV #-}
+ptr_glMakeNamedBufferNonResidentNV :: FunPtr (GLuint -> IO ())
+ptr_glMakeNamedBufferNonResidentNV = unsafePerformIO $ getCommand "glMakeNamedBufferNonResidentNV"
+
+-- glMakeNamedBufferResidentNV -------------------------------------------------
+
+glMakeNamedBufferResidentNV
+  :: MonadIO m
+  => GLuint -- ^ @buffer@.
+  -> GLenum -- ^ @access@.
+  -> m ()
+glMakeNamedBufferResidentNV v1 v2 = liftIO $ dyn18 ptr_glMakeNamedBufferResidentNV v1 v2
+
+{-# NOINLINE ptr_glMakeNamedBufferResidentNV #-}
+ptr_glMakeNamedBufferResidentNV :: FunPtr (GLuint -> GLenum -> IO ())
+ptr_glMakeNamedBufferResidentNV = unsafePerformIO $ getCommand "glMakeNamedBufferResidentNV"
+
+-- glMakeTextureHandleNonResidentARB -------------------------------------------
+
+glMakeTextureHandleNonResidentARB
+  :: MonadIO m
+  => GLuint64 -- ^ @handle@.
+  -> m ()
+glMakeTextureHandleNonResidentARB v1 = liftIO $ dyn517 ptr_glMakeTextureHandleNonResidentARB v1
+
+{-# NOINLINE ptr_glMakeTextureHandleNonResidentARB #-}
+ptr_glMakeTextureHandleNonResidentARB :: FunPtr (GLuint64 -> IO ())
+ptr_glMakeTextureHandleNonResidentARB = unsafePerformIO $ getCommand "glMakeTextureHandleNonResidentARB"
+
+-- glMakeTextureHandleNonResidentNV --------------------------------------------
+
+glMakeTextureHandleNonResidentNV
+  :: MonadIO m
+  => GLuint64 -- ^ @handle@.
+  -> m ()
+glMakeTextureHandleNonResidentNV v1 = liftIO $ dyn517 ptr_glMakeTextureHandleNonResidentNV v1
+
+{-# NOINLINE ptr_glMakeTextureHandleNonResidentNV #-}
+ptr_glMakeTextureHandleNonResidentNV :: FunPtr (GLuint64 -> IO ())
+ptr_glMakeTextureHandleNonResidentNV = unsafePerformIO $ getCommand "glMakeTextureHandleNonResidentNV"
+
+-- glMakeTextureHandleResidentARB ----------------------------------------------
+
+glMakeTextureHandleResidentARB
+  :: MonadIO m
+  => GLuint64 -- ^ @handle@.
+  -> m ()
+glMakeTextureHandleResidentARB v1 = liftIO $ dyn517 ptr_glMakeTextureHandleResidentARB v1
+
+{-# NOINLINE ptr_glMakeTextureHandleResidentARB #-}
+ptr_glMakeTextureHandleResidentARB :: FunPtr (GLuint64 -> IO ())
+ptr_glMakeTextureHandleResidentARB = unsafePerformIO $ getCommand "glMakeTextureHandleResidentARB"
+
+-- glMakeTextureHandleResidentNV -----------------------------------------------
+
+glMakeTextureHandleResidentNV
+  :: MonadIO m
+  => GLuint64 -- ^ @handle@.
+  -> m ()
+glMakeTextureHandleResidentNV v1 = liftIO $ dyn517 ptr_glMakeTextureHandleResidentNV v1
+
+{-# NOINLINE ptr_glMakeTextureHandleResidentNV #-}
+ptr_glMakeTextureHandleResidentNV :: FunPtr (GLuint64 -> IO ())
+ptr_glMakeTextureHandleResidentNV = unsafePerformIO $ getCommand "glMakeTextureHandleResidentNV"
+
+-- glMap1d ---------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMap1.xml OpenGL 2.x>.
+glMap1d
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [MapTarget](Graphics-GL-Groups.html#MapTarget).
+  -> GLdouble -- ^ @u1@ of type @CoordD@.
+  -> GLdouble -- ^ @u2@ of type @CoordD@.
+  -> GLint -- ^ @stride@.
+  -> GLint -- ^ @order@ of type @CheckedInt32@.
+  -> Ptr GLdouble -- ^ @points@ pointing to @COMPSIZE(target,stride,order)@ elements of type @CoordD@.
+  -> m ()
+glMap1d v1 v2 v3 v4 v5 v6 = liftIO $ dyn519 ptr_glMap1d v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glMap1d #-}
+ptr_glMap1d :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ())
+ptr_glMap1d = unsafePerformIO $ getCommand "glMap1d"
+
+-- glMap1f ---------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMap1.xml OpenGL 2.x>.
+glMap1f
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [MapTarget](Graphics-GL-Groups.html#MapTarget).
+  -> GLfloat -- ^ @u1@ of type @CoordF@.
+  -> GLfloat -- ^ @u2@ of type @CoordF@.
+  -> GLint -- ^ @stride@.
+  -> GLint -- ^ @order@ of type @CheckedInt32@.
+  -> Ptr GLfloat -- ^ @points@ pointing to @COMPSIZE(target,stride,order)@ elements of type @CoordF@.
+  -> m ()
+glMap1f v1 v2 v3 v4 v5 v6 = liftIO $ dyn520 ptr_glMap1f v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glMap1f #-}
+ptr_glMap1f :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ())
+ptr_glMap1f = unsafePerformIO $ getCommand "glMap1f"
+
+-- glMap1xOES ------------------------------------------------------------------
+
+glMap1xOES
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [MapTarget](Graphics-GL-Groups.html#MapTarget).
+  -> GLfixed -- ^ @u1@.
+  -> GLfixed -- ^ @u2@.
+  -> GLint -- ^ @stride@.
+  -> GLint -- ^ @order@.
+  -> GLfixed -- ^ @points@.
+  -> m ()
+glMap1xOES v1 v2 v3 v4 v5 v6 = liftIO $ dyn521 ptr_glMap1xOES v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glMap1xOES #-}
+ptr_glMap1xOES :: FunPtr (GLenum -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> IO ())
+ptr_glMap1xOES = unsafePerformIO $ getCommand "glMap1xOES"
+
+-- glMap2d ---------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMap2.xml OpenGL 2.x>.
+glMap2d
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [MapTarget](Graphics-GL-Groups.html#MapTarget).
+  -> GLdouble -- ^ @u1@ of type @CoordD@.
+  -> GLdouble -- ^ @u2@ of type @CoordD@.
+  -> GLint -- ^ @ustride@.
+  -> GLint -- ^ @uorder@ of type @CheckedInt32@.
+  -> GLdouble -- ^ @v1@ of type @CoordD@.
+  -> GLdouble -- ^ @v2@ of type @CoordD@.
+  -> GLint -- ^ @vstride@.
+  -> GLint -- ^ @vorder@ of type @CheckedInt32@.
+  -> Ptr GLdouble -- ^ @points@ pointing to @COMPSIZE(target,ustride,uorder,vstride,vorder)@ elements of type @CoordD@.
+  -> m ()
+glMap2d v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 = liftIO $ dyn522 ptr_glMap2d v1 v2 v3 v4 v5 v6 v7 v8 v9 v10
+
+{-# NOINLINE ptr_glMap2d #-}
+ptr_glMap2d :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ())
+ptr_glMap2d = unsafePerformIO $ getCommand "glMap2d"
+
+-- glMap2f ---------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMap2.xml OpenGL 2.x>.
+glMap2f
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [MapTarget](Graphics-GL-Groups.html#MapTarget).
+  -> GLfloat -- ^ @u1@ of type @CoordF@.
+  -> GLfloat -- ^ @u2@ of type @CoordF@.
+  -> GLint -- ^ @ustride@.
+  -> GLint -- ^ @uorder@ of type @CheckedInt32@.
+  -> GLfloat -- ^ @v1@ of type @CoordF@.
+  -> GLfloat -- ^ @v2@ of type @CoordF@.
+  -> GLint -- ^ @vstride@.
+  -> GLint -- ^ @vorder@ of type @CheckedInt32@.
+  -> Ptr GLfloat -- ^ @points@ pointing to @COMPSIZE(target,ustride,uorder,vstride,vorder)@ elements of type @CoordF@.
+  -> m ()
+glMap2f v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 = liftIO $ dyn523 ptr_glMap2f v1 v2 v3 v4 v5 v6 v7 v8 v9 v10
+
+{-# NOINLINE ptr_glMap2f #-}
+ptr_glMap2f :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ())
+ptr_glMap2f = unsafePerformIO $ getCommand "glMap2f"
+
+-- glMap2xOES ------------------------------------------------------------------
+
+glMap2xOES
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [MapTarget](Graphics-GL-Groups.html#MapTarget).
+  -> GLfixed -- ^ @u1@.
+  -> GLfixed -- ^ @u2@.
+  -> GLint -- ^ @ustride@.
+  -> GLint -- ^ @uorder@.
+  -> GLfixed -- ^ @v1@.
+  -> GLfixed -- ^ @v2@.
+  -> GLint -- ^ @vstride@.
+  -> GLint -- ^ @vorder@.
+  -> GLfixed -- ^ @points@.
+  -> m ()
+glMap2xOES v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 = liftIO $ dyn524 ptr_glMap2xOES v1 v2 v3 v4 v5 v6 v7 v8 v9 v10
+
+{-# NOINLINE ptr_glMap2xOES #-}
+ptr_glMap2xOES :: FunPtr (GLenum -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> GLfixed -> GLint -> GLint -> GLfixed -> IO ())
+ptr_glMap2xOES = unsafePerformIO $ getCommand "glMap2xOES"
+
+-- glMapBuffer -----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glMapBuffer.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glMapBuffer.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glMapBuffer.xhtml OpenGL 4.x>.
+glMapBuffer
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
+  -> GLenum -- ^ @access@ of type [BufferAccessARB](Graphics-GL-Groups.html#BufferAccessARB).
+  -> m (Ptr a)
+glMapBuffer v1 v2 = liftIO $ dyn525 ptr_glMapBuffer v1 v2
+
+{-# NOINLINE ptr_glMapBuffer #-}
+ptr_glMapBuffer :: FunPtr (GLenum -> GLenum -> IO (Ptr a))
+ptr_glMapBuffer = unsafePerformIO $ getCommand "glMapBuffer"
+
+-- glMapBufferARB --------------------------------------------------------------
+
+-- | This command is an alias for 'glMapBuffer'.
+glMapBufferARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
+  -> GLenum -- ^ @access@ of type [BufferAccessARB](Graphics-GL-Groups.html#BufferAccessARB).
+  -> m (Ptr a)
+glMapBufferARB v1 v2 = liftIO $ dyn525 ptr_glMapBufferARB v1 v2
+
+{-# NOINLINE ptr_glMapBufferARB #-}
+ptr_glMapBufferARB :: FunPtr (GLenum -> GLenum -> IO (Ptr a))
+ptr_glMapBufferARB = unsafePerformIO $ getCommand "glMapBufferARB"
+
+-- glMapBufferOES --------------------------------------------------------------
+
+-- | This command is an alias for 'glMapBuffer'.
+glMapBufferOES
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
+  -> GLenum -- ^ @access@ of type [BufferAccessARB](Graphics-GL-Groups.html#BufferAccessARB).
+  -> m (Ptr a)
+glMapBufferOES v1 v2 = liftIO $ dyn525 ptr_glMapBufferOES v1 v2
+
+{-# NOINLINE ptr_glMapBufferOES #-}
+ptr_glMapBufferOES :: FunPtr (GLenum -> GLenum -> IO (Ptr a))
+ptr_glMapBufferOES = unsafePerformIO $ getCommand "glMapBufferOES"
+
+-- glMapBufferRange ------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glMapBufferRange.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glMapBufferRange.xhtml OpenGL 4.x>.
+glMapBufferRange
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
+  -> GLintptr -- ^ @offset@ of type @BufferOffset@.
+  -> GLsizeiptr -- ^ @length@ of type @BufferSize@.
+  -> GLbitfield -- ^ @access@ of type [MapBufferAccessMask](Graphics-GL-Groups.html#MapBufferAccessMask).
+  -> m (Ptr a)
+glMapBufferRange v1 v2 v3 v4 = liftIO $ dyn526 ptr_glMapBufferRange v1 v2 v3 v4
+
+{-# NOINLINE ptr_glMapBufferRange #-}
+ptr_glMapBufferRange :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> IO (Ptr a))
+ptr_glMapBufferRange = unsafePerformIO $ getCommand "glMapBufferRange"
+
+-- glMapBufferRangeEXT ---------------------------------------------------------
+
+-- | This command is an alias for 'glMapBufferRange'.
+glMapBufferRangeEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
+  -> GLintptr -- ^ @offset@.
+  -> GLsizeiptr -- ^ @length@.
+  -> GLbitfield -- ^ @access@ of type [MapBufferAccessMask](Graphics-GL-Groups.html#MapBufferAccessMask).
+  -> m (Ptr a)
+glMapBufferRangeEXT v1 v2 v3 v4 = liftIO $ dyn526 ptr_glMapBufferRangeEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glMapBufferRangeEXT #-}
+ptr_glMapBufferRangeEXT :: FunPtr (GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> IO (Ptr a))
+ptr_glMapBufferRangeEXT = unsafePerformIO $ getCommand "glMapBufferRangeEXT"
+
+-- glMapControlPointsNV --------------------------------------------------------
+
+glMapControlPointsNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [EvalTargetNV](Graphics-GL-Groups.html#EvalTargetNV).
+  -> GLuint -- ^ @index@.
+  -> GLenum -- ^ @type@ of type [MapTypeNV](Graphics-GL-Groups.html#MapTypeNV).
+  -> GLsizei -- ^ @ustride@.
+  -> GLsizei -- ^ @vstride@.
+  -> GLint -- ^ @uorder@ of type @CheckedInt32@.
+  -> GLint -- ^ @vorder@ of type @CheckedInt32@.
+  -> GLboolean -- ^ @packed@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr a -- ^ @points@ pointing to @COMPSIZE(target,uorder,vorder)@ elements of type @a@.
+  -> m ()
+glMapControlPointsNV v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO $ dyn527 ptr_glMapControlPointsNV v1 v2 v3 v4 v5 v6 v7 v8 v9
+
+{-# NOINLINE ptr_glMapControlPointsNV #-}
+ptr_glMapControlPointsNV :: FunPtr (GLenum -> GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLint -> GLboolean -> Ptr a -> IO ())
+ptr_glMapControlPointsNV = unsafePerformIO $ getCommand "glMapControlPointsNV"
+
+-- glMapGrid1d -----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMapGrid.xml OpenGL 2.x>.
+glMapGrid1d
+  :: MonadIO m
+  => GLint -- ^ @un@.
+  -> GLdouble -- ^ @u1@ of type @CoordD@.
+  -> GLdouble -- ^ @u2@ of type @CoordD@.
+  -> m ()
+glMapGrid1d v1 v2 v3 = liftIO $ dyn528 ptr_glMapGrid1d v1 v2 v3
+
+{-# NOINLINE ptr_glMapGrid1d #-}
+ptr_glMapGrid1d :: FunPtr (GLint -> GLdouble -> GLdouble -> IO ())
+ptr_glMapGrid1d = unsafePerformIO $ getCommand "glMapGrid1d"
+
+-- glMapGrid1f -----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMapGrid.xml OpenGL 2.x>.
+glMapGrid1f
+  :: MonadIO m
+  => GLint -- ^ @un@.
+  -> GLfloat -- ^ @u1@ of type @CoordF@.
+  -> GLfloat -- ^ @u2@ of type @CoordF@.
+  -> m ()
+glMapGrid1f v1 v2 v3 = liftIO $ dyn529 ptr_glMapGrid1f v1 v2 v3
+
+{-# NOINLINE ptr_glMapGrid1f #-}
+ptr_glMapGrid1f :: FunPtr (GLint -> GLfloat -> GLfloat -> IO ())
+ptr_glMapGrid1f = unsafePerformIO $ getCommand "glMapGrid1f"
+
+-- glMapGrid1xOES --------------------------------------------------------------
+
+glMapGrid1xOES
+  :: MonadIO m
+  => GLint -- ^ @n@.
+  -> GLfixed -- ^ @u1@.
+  -> GLfixed -- ^ @u2@.
+  -> m ()
+glMapGrid1xOES v1 v2 v3 = liftIO $ dyn530 ptr_glMapGrid1xOES v1 v2 v3
+
+{-# NOINLINE ptr_glMapGrid1xOES #-}
+ptr_glMapGrid1xOES :: FunPtr (GLint -> GLfixed -> GLfixed -> IO ())
+ptr_glMapGrid1xOES = unsafePerformIO $ getCommand "glMapGrid1xOES"
+
+-- glMapGrid2d -----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMapGrid.xml OpenGL 2.x>.
+glMapGrid2d
+  :: MonadIO m
+  => GLint -- ^ @un@.
+  -> GLdouble -- ^ @u1@ of type @CoordD@.
+  -> GLdouble -- ^ @u2@ of type @CoordD@.
+  -> GLint -- ^ @vn@.
+  -> GLdouble -- ^ @v1@ of type @CoordD@.
+  -> GLdouble -- ^ @v2@ of type @CoordD@.
+  -> m ()
+glMapGrid2d v1 v2 v3 v4 v5 v6 = liftIO $ dyn531 ptr_glMapGrid2d v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glMapGrid2d #-}
+ptr_glMapGrid2d :: FunPtr (GLint -> GLdouble -> GLdouble -> GLint -> GLdouble -> GLdouble -> IO ())
+ptr_glMapGrid2d = unsafePerformIO $ getCommand "glMapGrid2d"
+
+-- glMapGrid2f -----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMapGrid.xml OpenGL 2.x>.
+glMapGrid2f
+  :: MonadIO m
+  => GLint -- ^ @un@.
+  -> GLfloat -- ^ @u1@ of type @CoordF@.
+  -> GLfloat -- ^ @u2@ of type @CoordF@.
+  -> GLint -- ^ @vn@.
+  -> GLfloat -- ^ @v1@ of type @CoordF@.
+  -> GLfloat -- ^ @v2@ of type @CoordF@.
+  -> m ()
+glMapGrid2f v1 v2 v3 v4 v5 v6 = liftIO $ dyn532 ptr_glMapGrid2f v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glMapGrid2f #-}
+ptr_glMapGrid2f :: FunPtr (GLint -> GLfloat -> GLfloat -> GLint -> GLfloat -> GLfloat -> IO ())
+ptr_glMapGrid2f = unsafePerformIO $ getCommand "glMapGrid2f"
+
+-- glMapGrid2xOES --------------------------------------------------------------
+
+glMapGrid2xOES
+  :: MonadIO m
+  => GLint -- ^ @n@.
+  -> GLfixed -- ^ @u1@.
+  -> GLfixed -- ^ @u2@.
+  -> GLfixed -- ^ @v1@.
+  -> GLfixed -- ^ @v2@.
+  -> m ()
+glMapGrid2xOES v1 v2 v3 v4 v5 = liftIO $ dyn533 ptr_glMapGrid2xOES v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glMapGrid2xOES #-}
+ptr_glMapGrid2xOES :: FunPtr (GLint -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
+ptr_glMapGrid2xOES = unsafePerformIO $ getCommand "glMapGrid2xOES"
+
+-- glMapNamedBuffer ------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glMapBuffer.xhtml OpenGL 4.x>.
+glMapNamedBuffer
+  :: MonadIO m
+  => GLuint -- ^ @buffer@.
+  -> GLenum -- ^ @access@ of type [BufferAccessARB](Graphics-GL-Groups.html#BufferAccessARB).
+  -> m (Ptr a)
+glMapNamedBuffer v1 v2 = liftIO $ dyn534 ptr_glMapNamedBuffer v1 v2
+
+{-# NOINLINE ptr_glMapNamedBuffer #-}
+ptr_glMapNamedBuffer :: FunPtr (GLuint -> GLenum -> IO (Ptr a))
+ptr_glMapNamedBuffer = unsafePerformIO $ getCommand "glMapNamedBuffer"
+
+-- glMapNamedBufferEXT ---------------------------------------------------------
+
+glMapNamedBufferEXT
+  :: MonadIO m
+  => GLuint -- ^ @buffer@.
+  -> GLenum -- ^ @access@ of type [BufferAccessARB](Graphics-GL-Groups.html#BufferAccessARB).
+  -> m (Ptr a)
+glMapNamedBufferEXT v1 v2 = liftIO $ dyn534 ptr_glMapNamedBufferEXT v1 v2
+
+{-# NOINLINE ptr_glMapNamedBufferEXT #-}
+ptr_glMapNamedBufferEXT :: FunPtr (GLuint -> GLenum -> IO (Ptr a))
+ptr_glMapNamedBufferEXT = unsafePerformIO $ getCommand "glMapNamedBufferEXT"
+
+-- glMapNamedBufferRange -------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glMapBufferRange.xhtml OpenGL 4.x>.
+glMapNamedBufferRange
+  :: MonadIO m
+  => GLuint -- ^ @buffer@.
+  -> GLintptr -- ^ @offset@.
+  -> GLsizeiptr -- ^ @length@ of type @BufferSize@.
+  -> GLbitfield -- ^ @access@ of type [MapBufferAccessMask](Graphics-GL-Groups.html#MapBufferAccessMask).
+  -> m (Ptr a)
+glMapNamedBufferRange v1 v2 v3 v4 = liftIO $ dyn535 ptr_glMapNamedBufferRange v1 v2 v3 v4
+
+{-# NOINLINE ptr_glMapNamedBufferRange #-}
+ptr_glMapNamedBufferRange :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> GLbitfield -> IO (Ptr a))
+ptr_glMapNamedBufferRange = unsafePerformIO $ getCommand "glMapNamedBufferRange"
+
+-- glMapNamedBufferRangeEXT ----------------------------------------------------
+
+glMapNamedBufferRangeEXT
+  :: MonadIO m
+  => GLuint -- ^ @buffer@.
+  -> GLintptr -- ^ @offset@.
+  -> GLsizeiptr -- ^ @length@.
+  -> GLbitfield -- ^ @access@ of type [MapBufferAccessMask](Graphics-GL-Groups.html#MapBufferAccessMask).
+  -> m (Ptr a)
+glMapNamedBufferRangeEXT v1 v2 v3 v4 = liftIO $ dyn535 ptr_glMapNamedBufferRangeEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glMapNamedBufferRangeEXT #-}
+ptr_glMapNamedBufferRangeEXT :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> GLbitfield -> IO (Ptr a))
+ptr_glMapNamedBufferRangeEXT = unsafePerformIO $ getCommand "glMapNamedBufferRangeEXT"
+
+-- glMapObjectBufferATI --------------------------------------------------------
+
+glMapObjectBufferATI
+  :: MonadIO m
+  => GLuint -- ^ @buffer@.
+  -> m (Ptr a)
+glMapObjectBufferATI v1 = liftIO $ dyn536 ptr_glMapObjectBufferATI v1
+
+{-# NOINLINE ptr_glMapObjectBufferATI #-}
+ptr_glMapObjectBufferATI :: FunPtr (GLuint -> IO (Ptr a))
+ptr_glMapObjectBufferATI = unsafePerformIO $ getCommand "glMapObjectBufferATI"
+
+-- glMapParameterfvNV ----------------------------------------------------------
+
+glMapParameterfvNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [EvalTargetNV](Graphics-GL-Groups.html#EvalTargetNV).
+  -> GLenum -- ^ @pname@ of type [MapParameterNV](Graphics-GL-Groups.html#MapParameterNV).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(target,pname)@ elements of type @CheckedFloat32@.
+  -> m ()
+glMapParameterfvNV v1 v2 v3 = liftIO $ dyn139 ptr_glMapParameterfvNV v1 v2 v3
+
+{-# NOINLINE ptr_glMapParameterfvNV #-}
+ptr_glMapParameterfvNV :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glMapParameterfvNV = unsafePerformIO $ getCommand "glMapParameterfvNV"
+
+-- glMapParameterivNV ----------------------------------------------------------
+
+glMapParameterivNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [EvalTargetNV](Graphics-GL-Groups.html#EvalTargetNV).
+  -> GLenum -- ^ @pname@ of type [MapParameterNV](Graphics-GL-Groups.html#MapParameterNV).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(target,pname)@ elements of type @CheckedInt32@.
+  -> m ()
+glMapParameterivNV v1 v2 v3 = liftIO $ dyn140 ptr_glMapParameterivNV v1 v2 v3
+
+{-# NOINLINE ptr_glMapParameterivNV #-}
+ptr_glMapParameterivNV :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glMapParameterivNV = unsafePerformIO $ getCommand "glMapParameterivNV"
+
+-- glMapTexture2DINTEL ---------------------------------------------------------
+
+glMapTexture2DINTEL
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLint -- ^ @level@.
+  -> GLbitfield -- ^ @access@.
+  -> Ptr GLint -- ^ @stride@ pointing to @1@ element of type @GLint@.
+  -> Ptr GLenum -- ^ @layout@ pointing to @1@ element of type @GLenum@.
+  -> m (Ptr a)
+glMapTexture2DINTEL v1 v2 v3 v4 v5 = liftIO $ dyn537 ptr_glMapTexture2DINTEL v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glMapTexture2DINTEL #-}
+ptr_glMapTexture2DINTEL :: FunPtr (GLuint -> GLint -> GLbitfield -> Ptr GLint -> Ptr GLenum -> IO (Ptr a))
+ptr_glMapTexture2DINTEL = unsafePerformIO $ getCommand "glMapTexture2DINTEL"
+
+-- glMapVertexAttrib1dAPPLE ----------------------------------------------------
+
+glMapVertexAttrib1dAPPLE
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLuint -- ^ @size@.
+  -> GLdouble -- ^ @u1@ of type @CoordD@.
+  -> GLdouble -- ^ @u2@ of type @CoordD@.
+  -> GLint -- ^ @stride@.
+  -> GLint -- ^ @order@ of type @CheckedInt32@.
+  -> Ptr GLdouble -- ^ @points@ pointing to @COMPSIZE(size,stride,order)@ elements of type @CoordD@.
+  -> m ()
+glMapVertexAttrib1dAPPLE v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn538 ptr_glMapVertexAttrib1dAPPLE v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glMapVertexAttrib1dAPPLE #-}
+ptr_glMapVertexAttrib1dAPPLE :: FunPtr (GLuint -> GLuint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ())
+ptr_glMapVertexAttrib1dAPPLE = unsafePerformIO $ getCommand "glMapVertexAttrib1dAPPLE"
+
+-- glMapVertexAttrib1fAPPLE ----------------------------------------------------
+
+glMapVertexAttrib1fAPPLE
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLuint -- ^ @size@.
+  -> GLfloat -- ^ @u1@ of type @CoordF@.
+  -> GLfloat -- ^ @u2@ of type @CoordF@.
+  -> GLint -- ^ @stride@.
+  -> GLint -- ^ @order@ of type @CheckedInt32@.
+  -> Ptr GLfloat -- ^ @points@ pointing to @COMPSIZE(size,stride,order)@ elements of type @CoordF@.
+  -> m ()
+glMapVertexAttrib1fAPPLE v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn539 ptr_glMapVertexAttrib1fAPPLE v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glMapVertexAttrib1fAPPLE #-}
+ptr_glMapVertexAttrib1fAPPLE :: FunPtr (GLuint -> GLuint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ())
+ptr_glMapVertexAttrib1fAPPLE = unsafePerformIO $ getCommand "glMapVertexAttrib1fAPPLE"
+
+-- glMapVertexAttrib2dAPPLE ----------------------------------------------------
+
+glMapVertexAttrib2dAPPLE
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLuint -- ^ @size@.
+  -> GLdouble -- ^ @u1@ of type @CoordD@.
+  -> GLdouble -- ^ @u2@ of type @CoordD@.
+  -> GLint -- ^ @ustride@.
+  -> GLint -- ^ @uorder@ of type @CheckedInt32@.
+  -> GLdouble -- ^ @v1@ of type @CoordD@.
+  -> GLdouble -- ^ @v2@ of type @CoordD@.
+  -> GLint -- ^ @vstride@.
+  -> GLint -- ^ @vorder@ of type @CheckedInt32@.
+  -> Ptr GLdouble -- ^ @points@ pointing to @COMPSIZE(size,ustride,uorder,vstride,vorder)@ elements of type @CoordD@.
+  -> m ()
+glMapVertexAttrib2dAPPLE v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 = liftIO $ dyn540 ptr_glMapVertexAttrib2dAPPLE v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11
+
+{-# NOINLINE ptr_glMapVertexAttrib2dAPPLE #-}
+ptr_glMapVertexAttrib2dAPPLE :: FunPtr (GLuint -> GLuint -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ())
+ptr_glMapVertexAttrib2dAPPLE = unsafePerformIO $ getCommand "glMapVertexAttrib2dAPPLE"
+
+-- glMapVertexAttrib2fAPPLE ----------------------------------------------------
+
+glMapVertexAttrib2fAPPLE
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLuint -- ^ @size@.
+  -> GLfloat -- ^ @u1@ of type @CoordF@.
+  -> GLfloat -- ^ @u2@ of type @CoordF@.
+  -> GLint -- ^ @ustride@.
+  -> GLint -- ^ @uorder@ of type @CheckedInt32@.
+  -> GLfloat -- ^ @v1@ of type @CoordF@.
+  -> GLfloat -- ^ @v2@ of type @CoordF@.
+  -> GLint -- ^ @vstride@.
+  -> GLint -- ^ @vorder@ of type @CheckedInt32@.
+  -> Ptr GLfloat -- ^ @points@ pointing to @COMPSIZE(size,ustride,uorder,vstride,vorder)@ elements of type @CoordF@.
+  -> m ()
+glMapVertexAttrib2fAPPLE v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 = liftIO $ dyn541 ptr_glMapVertexAttrib2fAPPLE v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11
+
+{-# NOINLINE ptr_glMapVertexAttrib2fAPPLE #-}
+ptr_glMapVertexAttrib2fAPPLE :: FunPtr (GLuint -> GLuint -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ())
+ptr_glMapVertexAttrib2fAPPLE = unsafePerformIO $ getCommand "glMapVertexAttrib2fAPPLE"
+
+-- glMaterialf -----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMaterial.xml OpenGL 2.x>.
+glMaterialf
+  :: MonadIO m
+  => GLenum -- ^ @face@ of type [MaterialFace](Graphics-GL-Groups.html#MaterialFace).
+  -> GLenum -- ^ @pname@ of type [MaterialParameter](Graphics-GL-Groups.html#MaterialParameter).
+  -> GLfloat -- ^ @param@ of type @CheckedFloat32@.
+  -> m ()
+glMaterialf v1 v2 v3 = liftIO $ dyn168 ptr_glMaterialf v1 v2 v3
+
+{-# NOINLINE ptr_glMaterialf #-}
+ptr_glMaterialf :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
+ptr_glMaterialf = unsafePerformIO $ getCommand "glMaterialf"
+
+-- glMaterialfv ----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMaterial.xml OpenGL 2.x>.
+glMaterialfv
+  :: MonadIO m
+  => GLenum -- ^ @face@ of type [MaterialFace](Graphics-GL-Groups.html#MaterialFace).
+  -> GLenum -- ^ @pname@ of type [MaterialParameter](Graphics-GL-Groups.html#MaterialParameter).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @CheckedFloat32@.
+  -> m ()
+glMaterialfv v1 v2 v3 = liftIO $ dyn139 ptr_glMaterialfv v1 v2 v3
+
+{-# NOINLINE ptr_glMaterialfv #-}
+ptr_glMaterialfv :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glMaterialfv = unsafePerformIO $ getCommand "glMaterialfv"
+
+-- glMateriali -----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMaterial.xml OpenGL 2.x>.
+glMateriali
+  :: MonadIO m
+  => GLenum -- ^ @face@ of type [MaterialFace](Graphics-GL-Groups.html#MaterialFace).
+  -> GLenum -- ^ @pname@ of type [MaterialParameter](Graphics-GL-Groups.html#MaterialParameter).
+  -> GLint -- ^ @param@ of type @CheckedInt32@.
+  -> m ()
+glMateriali v1 v2 v3 = liftIO $ dyn66 ptr_glMateriali v1 v2 v3
+
+{-# NOINLINE ptr_glMateriali #-}
+ptr_glMateriali :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
+ptr_glMateriali = unsafePerformIO $ getCommand "glMateriali"
+
+-- glMaterialiv ----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMaterial.xml OpenGL 2.x>.
+glMaterialiv
+  :: MonadIO m
+  => GLenum -- ^ @face@ of type [MaterialFace](Graphics-GL-Groups.html#MaterialFace).
+  -> GLenum -- ^ @pname@ of type [MaterialParameter](Graphics-GL-Groups.html#MaterialParameter).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @CheckedInt32@.
+  -> m ()
+glMaterialiv v1 v2 v3 = liftIO $ dyn140 ptr_glMaterialiv v1 v2 v3
+
+{-# NOINLINE ptr_glMaterialiv #-}
+ptr_glMaterialiv :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glMaterialiv = unsafePerformIO $ getCommand "glMaterialiv"
+
+-- glMaterialx -----------------------------------------------------------------
+
+glMaterialx
+  :: MonadIO m
+  => GLenum -- ^ @face@ of type [MaterialFace](Graphics-GL-Groups.html#MaterialFace).
+  -> GLenum -- ^ @pname@ of type [MaterialParameter](Graphics-GL-Groups.html#MaterialParameter).
+  -> GLfixed -- ^ @param@.
+  -> m ()
+glMaterialx v1 v2 v3 = liftIO $ dyn169 ptr_glMaterialx v1 v2 v3
+
+{-# NOINLINE ptr_glMaterialx #-}
+ptr_glMaterialx :: FunPtr (GLenum -> GLenum -> GLfixed -> IO ())
+ptr_glMaterialx = unsafePerformIO $ getCommand "glMaterialx"
+
+-- glMaterialxOES --------------------------------------------------------------
+
+glMaterialxOES
+  :: MonadIO m
+  => GLenum -- ^ @face@ of type [MaterialFace](Graphics-GL-Groups.html#MaterialFace).
+  -> GLenum -- ^ @pname@ of type [MaterialParameter](Graphics-GL-Groups.html#MaterialParameter).
+  -> GLfixed -- ^ @param@.
+  -> m ()
+glMaterialxOES v1 v2 v3 = liftIO $ dyn169 ptr_glMaterialxOES v1 v2 v3
+
+{-# NOINLINE ptr_glMaterialxOES #-}
+ptr_glMaterialxOES :: FunPtr (GLenum -> GLenum -> GLfixed -> IO ())
+ptr_glMaterialxOES = unsafePerformIO $ getCommand "glMaterialxOES"
+
+-- glMaterialxv ----------------------------------------------------------------
+
+glMaterialxv
+  :: MonadIO m
+  => GLenum -- ^ @face@ of type [MaterialFace](Graphics-GL-Groups.html#MaterialFace).
+  -> GLenum -- ^ @pname@ of type [MaterialParameter](Graphics-GL-Groups.html#MaterialParameter).
+  -> Ptr GLfixed -- ^ @param@ pointing to @COMPSIZE(pname)@ elements of type @GLfixed@.
+  -> m ()
+glMaterialxv v1 v2 v3 = liftIO $ dyn170 ptr_glMaterialxv v1 v2 v3
+
+{-# NOINLINE ptr_glMaterialxv #-}
+ptr_glMaterialxv :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+ptr_glMaterialxv = unsafePerformIO $ getCommand "glMaterialxv"
+
+-- glMaterialxvOES -------------------------------------------------------------
+
+glMaterialxvOES
+  :: MonadIO m
+  => GLenum -- ^ @face@ of type [MaterialFace](Graphics-GL-Groups.html#MaterialFace).
+  -> GLenum -- ^ @pname@ of type [MaterialParameter](Graphics-GL-Groups.html#MaterialParameter).
+  -> Ptr GLfixed -- ^ @param@ pointing to @COMPSIZE(pname)@ elements of type @GLfixed@.
+  -> m ()
+glMaterialxvOES v1 v2 v3 = liftIO $ dyn170 ptr_glMaterialxvOES v1 v2 v3
+
+{-# NOINLINE ptr_glMaterialxvOES #-}
+ptr_glMaterialxvOES :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+ptr_glMaterialxvOES = unsafePerformIO $ getCommand "glMaterialxvOES"
+
+-- glMatrixFrustumEXT ----------------------------------------------------------
+
+glMatrixFrustumEXT
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [MatrixMode](Graphics-GL-Groups.html#MatrixMode).
+  -> GLdouble -- ^ @left@.
+  -> GLdouble -- ^ @right@.
+  -> GLdouble -- ^ @bottom@.
+  -> GLdouble -- ^ @top@.
+  -> GLdouble -- ^ @zNear@.
+  -> GLdouble -- ^ @zFar@.
+  -> m ()
+glMatrixFrustumEXT v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn542 ptr_glMatrixFrustumEXT v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glMatrixFrustumEXT #-}
+ptr_glMatrixFrustumEXT :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+ptr_glMatrixFrustumEXT = unsafePerformIO $ getCommand "glMatrixFrustumEXT"
+
+-- glMatrixIndexPointerARB -----------------------------------------------------
+
+glMatrixIndexPointerARB
+  :: MonadIO m
+  => GLint -- ^ @size@.
+  -> GLenum -- ^ @type@ of type [MatrixIndexPointerTypeARB](Graphics-GL-Groups.html#MatrixIndexPointerTypeARB).
+  -> GLsizei -- ^ @stride@.
+  -> Ptr a -- ^ @pointer@ pointing to @COMPSIZE(size,type,stride)@ elements of type @a@.
+  -> m ()
+glMatrixIndexPointerARB v1 v2 v3 v4 = liftIO $ dyn133 ptr_glMatrixIndexPointerARB v1 v2 v3 v4
+
+{-# NOINLINE ptr_glMatrixIndexPointerARB #-}
+ptr_glMatrixIndexPointerARB :: FunPtr (GLint -> GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glMatrixIndexPointerARB = unsafePerformIO $ getCommand "glMatrixIndexPointerARB"
+
+-- glMatrixIndexPointerOES -----------------------------------------------------
+
+glMatrixIndexPointerOES
+  :: MonadIO m
+  => GLint -- ^ @size@.
+  -> GLenum -- ^ @type@ of type [MatrixIndexPointerTypeARB](Graphics-GL-Groups.html#MatrixIndexPointerTypeARB).
+  -> GLsizei -- ^ @stride@.
+  -> Ptr a -- ^ @pointer@ pointing to @COMPSIZE(size,type,stride)@ elements of type @a@.
+  -> m ()
+glMatrixIndexPointerOES v1 v2 v3 v4 = liftIO $ dyn133 ptr_glMatrixIndexPointerOES v1 v2 v3 v4
+
+{-# NOINLINE ptr_glMatrixIndexPointerOES #-}
+ptr_glMatrixIndexPointerOES :: FunPtr (GLint -> GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glMatrixIndexPointerOES = unsafePerformIO $ getCommand "glMatrixIndexPointerOES"
+
+-- glMatrixIndexubvARB ---------------------------------------------------------
+
+glMatrixIndexubvARB
+  :: MonadIO m
+  => GLint -- ^ @size@.
+  -> Ptr GLubyte -- ^ @indices@ pointing to @size@ elements of type @GLubyte@.
+  -> m ()
+glMatrixIndexubvARB v1 v2 = liftIO $ dyn543 ptr_glMatrixIndexubvARB v1 v2
+
+{-# NOINLINE ptr_glMatrixIndexubvARB #-}
+ptr_glMatrixIndexubvARB :: FunPtr (GLint -> Ptr GLubyte -> IO ())
+ptr_glMatrixIndexubvARB = unsafePerformIO $ getCommand "glMatrixIndexubvARB"
+
+-- glMatrixIndexuivARB ---------------------------------------------------------
+
+glMatrixIndexuivARB
+  :: MonadIO m
+  => GLint -- ^ @size@.
+  -> Ptr GLuint -- ^ @indices@ pointing to @size@ elements of type @GLuint@.
+  -> m ()
+glMatrixIndexuivARB v1 v2 = liftIO $ dyn544 ptr_glMatrixIndexuivARB v1 v2
+
+{-# NOINLINE ptr_glMatrixIndexuivARB #-}
+ptr_glMatrixIndexuivARB :: FunPtr (GLint -> Ptr GLuint -> IO ())
+ptr_glMatrixIndexuivARB = unsafePerformIO $ getCommand "glMatrixIndexuivARB"
+
+-- glMatrixIndexusvARB ---------------------------------------------------------
+
+glMatrixIndexusvARB
+  :: MonadIO m
+  => GLint -- ^ @size@.
+  -> Ptr GLushort -- ^ @indices@ pointing to @size@ elements of type @GLushort@.
+  -> m ()
+glMatrixIndexusvARB v1 v2 = liftIO $ dyn545 ptr_glMatrixIndexusvARB v1 v2
+
+{-# NOINLINE ptr_glMatrixIndexusvARB #-}
+ptr_glMatrixIndexusvARB :: FunPtr (GLint -> Ptr GLushort -> IO ())
+ptr_glMatrixIndexusvARB = unsafePerformIO $ getCommand "glMatrixIndexusvARB"
+
+-- glMatrixLoad3x2fNV ----------------------------------------------------------
+
+glMatrixLoad3x2fNV
+  :: MonadIO m
+  => GLenum -- ^ @matrixMode@.
+  -> Ptr GLfloat -- ^ @m@.
+  -> m ()
+glMatrixLoad3x2fNV v1 v2 = liftIO $ dyn101 ptr_glMatrixLoad3x2fNV v1 v2
+
+{-# NOINLINE ptr_glMatrixLoad3x2fNV #-}
+ptr_glMatrixLoad3x2fNV :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+ptr_glMatrixLoad3x2fNV = unsafePerformIO $ getCommand "glMatrixLoad3x2fNV"
+
+-- glMatrixLoad3x3fNV ----------------------------------------------------------
+
+glMatrixLoad3x3fNV
+  :: MonadIO m
+  => GLenum -- ^ @matrixMode@.
+  -> Ptr GLfloat -- ^ @m@.
+  -> m ()
+glMatrixLoad3x3fNV v1 v2 = liftIO $ dyn101 ptr_glMatrixLoad3x3fNV v1 v2
+
+{-# NOINLINE ptr_glMatrixLoad3x3fNV #-}
+ptr_glMatrixLoad3x3fNV :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+ptr_glMatrixLoad3x3fNV = unsafePerformIO $ getCommand "glMatrixLoad3x3fNV"
+
+-- glMatrixLoadIdentityEXT -----------------------------------------------------
+
+glMatrixLoadIdentityEXT
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [MatrixMode](Graphics-GL-Groups.html#MatrixMode).
+  -> m ()
+glMatrixLoadIdentityEXT v1 = liftIO $ dyn5 ptr_glMatrixLoadIdentityEXT v1
+
+{-# NOINLINE ptr_glMatrixLoadIdentityEXT #-}
+ptr_glMatrixLoadIdentityEXT :: FunPtr (GLenum -> IO ())
+ptr_glMatrixLoadIdentityEXT = unsafePerformIO $ getCommand "glMatrixLoadIdentityEXT"
+
+-- glMatrixLoadTranspose3x3fNV -------------------------------------------------
+
+glMatrixLoadTranspose3x3fNV
+  :: MonadIO m
+  => GLenum -- ^ @matrixMode@.
+  -> Ptr GLfloat -- ^ @m@.
+  -> m ()
+glMatrixLoadTranspose3x3fNV v1 v2 = liftIO $ dyn101 ptr_glMatrixLoadTranspose3x3fNV v1 v2
+
+{-# NOINLINE ptr_glMatrixLoadTranspose3x3fNV #-}
+ptr_glMatrixLoadTranspose3x3fNV :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+ptr_glMatrixLoadTranspose3x3fNV = unsafePerformIO $ getCommand "glMatrixLoadTranspose3x3fNV"
+
+-- glMatrixLoadTransposedEXT ---------------------------------------------------
+
+glMatrixLoadTransposedEXT
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [MatrixMode](Graphics-GL-Groups.html#MatrixMode).
+  -> Ptr GLdouble -- ^ @m@ pointing to @16@ elements of type @GLdouble@.
+  -> m ()
+glMatrixLoadTransposedEXT v1 v2 = liftIO $ dyn100 ptr_glMatrixLoadTransposedEXT v1 v2
+
+{-# NOINLINE ptr_glMatrixLoadTransposedEXT #-}
+ptr_glMatrixLoadTransposedEXT :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+ptr_glMatrixLoadTransposedEXT = unsafePerformIO $ getCommand "glMatrixLoadTransposedEXT"
+
+-- glMatrixLoadTransposefEXT ---------------------------------------------------
+
+glMatrixLoadTransposefEXT
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [MatrixMode](Graphics-GL-Groups.html#MatrixMode).
+  -> Ptr GLfloat -- ^ @m@ pointing to @16@ elements of type @GLfloat@.
+  -> m ()
+glMatrixLoadTransposefEXT v1 v2 = liftIO $ dyn101 ptr_glMatrixLoadTransposefEXT v1 v2
+
+{-# NOINLINE ptr_glMatrixLoadTransposefEXT #-}
+ptr_glMatrixLoadTransposefEXT :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+ptr_glMatrixLoadTransposefEXT = unsafePerformIO $ getCommand "glMatrixLoadTransposefEXT"
+
+-- glMatrixLoaddEXT ------------------------------------------------------------
+
+glMatrixLoaddEXT
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [MatrixMode](Graphics-GL-Groups.html#MatrixMode).
+  -> Ptr GLdouble -- ^ @m@ pointing to @16@ elements of type @GLdouble@.
+  -> m ()
+glMatrixLoaddEXT v1 v2 = liftIO $ dyn100 ptr_glMatrixLoaddEXT v1 v2
+
+{-# NOINLINE ptr_glMatrixLoaddEXT #-}
+ptr_glMatrixLoaddEXT :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+ptr_glMatrixLoaddEXT = unsafePerformIO $ getCommand "glMatrixLoaddEXT"
+
+-- glMatrixLoadfEXT ------------------------------------------------------------
+
+glMatrixLoadfEXT
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [MatrixMode](Graphics-GL-Groups.html#MatrixMode).
+  -> Ptr GLfloat -- ^ @m@ pointing to @16@ elements of type @GLfloat@.
+  -> m ()
+glMatrixLoadfEXT v1 v2 = liftIO $ dyn101 ptr_glMatrixLoadfEXT v1 v2
+
+{-# NOINLINE ptr_glMatrixLoadfEXT #-}
+ptr_glMatrixLoadfEXT :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+ptr_glMatrixLoadfEXT = unsafePerformIO $ getCommand "glMatrixLoadfEXT"
+
+-- glMatrixMode ----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMatrixMode.xml OpenGL 2.x>.
+glMatrixMode
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [MatrixMode](Graphics-GL-Groups.html#MatrixMode).
+  -> m ()
+glMatrixMode v1 = liftIO $ dyn5 ptr_glMatrixMode v1
+
+{-# NOINLINE ptr_glMatrixMode #-}
+ptr_glMatrixMode :: FunPtr (GLenum -> IO ())
+ptr_glMatrixMode = unsafePerformIO $ getCommand "glMatrixMode"
+
+-- glMatrixMult3x2fNV ----------------------------------------------------------
+
+glMatrixMult3x2fNV
+  :: MonadIO m
+  => GLenum -- ^ @matrixMode@.
+  -> Ptr GLfloat -- ^ @m@.
+  -> m ()
+glMatrixMult3x2fNV v1 v2 = liftIO $ dyn101 ptr_glMatrixMult3x2fNV v1 v2
+
+{-# NOINLINE ptr_glMatrixMult3x2fNV #-}
+ptr_glMatrixMult3x2fNV :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+ptr_glMatrixMult3x2fNV = unsafePerformIO $ getCommand "glMatrixMult3x2fNV"
+
+-- glMatrixMult3x3fNV ----------------------------------------------------------
+
+glMatrixMult3x3fNV
+  :: MonadIO m
+  => GLenum -- ^ @matrixMode@.
+  -> Ptr GLfloat -- ^ @m@.
+  -> m ()
+glMatrixMult3x3fNV v1 v2 = liftIO $ dyn101 ptr_glMatrixMult3x3fNV v1 v2
+
+{-# NOINLINE ptr_glMatrixMult3x3fNV #-}
+ptr_glMatrixMult3x3fNV :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+ptr_glMatrixMult3x3fNV = unsafePerformIO $ getCommand "glMatrixMult3x3fNV"
+
+-- glMatrixMultTranspose3x3fNV -------------------------------------------------
+
+glMatrixMultTranspose3x3fNV
+  :: MonadIO m
+  => GLenum -- ^ @matrixMode@.
+  -> Ptr GLfloat -- ^ @m@.
+  -> m ()
+glMatrixMultTranspose3x3fNV v1 v2 = liftIO $ dyn101 ptr_glMatrixMultTranspose3x3fNV v1 v2
+
+{-# NOINLINE ptr_glMatrixMultTranspose3x3fNV #-}
+ptr_glMatrixMultTranspose3x3fNV :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+ptr_glMatrixMultTranspose3x3fNV = unsafePerformIO $ getCommand "glMatrixMultTranspose3x3fNV"
+
+-- glMatrixMultTransposedEXT ---------------------------------------------------
+
+glMatrixMultTransposedEXT
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [MatrixMode](Graphics-GL-Groups.html#MatrixMode).
+  -> Ptr GLdouble -- ^ @m@ pointing to @16@ elements of type @GLdouble@.
+  -> m ()
+glMatrixMultTransposedEXT v1 v2 = liftIO $ dyn100 ptr_glMatrixMultTransposedEXT v1 v2
+
+{-# NOINLINE ptr_glMatrixMultTransposedEXT #-}
+ptr_glMatrixMultTransposedEXT :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+ptr_glMatrixMultTransposedEXT = unsafePerformIO $ getCommand "glMatrixMultTransposedEXT"
+
+-- glMatrixMultTransposefEXT ---------------------------------------------------
+
+glMatrixMultTransposefEXT
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [MatrixMode](Graphics-GL-Groups.html#MatrixMode).
+  -> Ptr GLfloat -- ^ @m@ pointing to @16@ elements of type @GLfloat@.
+  -> m ()
+glMatrixMultTransposefEXT v1 v2 = liftIO $ dyn101 ptr_glMatrixMultTransposefEXT v1 v2
+
+{-# NOINLINE ptr_glMatrixMultTransposefEXT #-}
+ptr_glMatrixMultTransposefEXT :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+ptr_glMatrixMultTransposefEXT = unsafePerformIO $ getCommand "glMatrixMultTransposefEXT"
+
+-- glMatrixMultdEXT ------------------------------------------------------------
+
+glMatrixMultdEXT
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [MatrixMode](Graphics-GL-Groups.html#MatrixMode).
+  -> Ptr GLdouble -- ^ @m@ pointing to @16@ elements of type @GLdouble@.
+  -> m ()
+glMatrixMultdEXT v1 v2 = liftIO $ dyn100 ptr_glMatrixMultdEXT v1 v2
+
+{-# NOINLINE ptr_glMatrixMultdEXT #-}
+ptr_glMatrixMultdEXT :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+ptr_glMatrixMultdEXT = unsafePerformIO $ getCommand "glMatrixMultdEXT"
+
+-- glMatrixMultfEXT ------------------------------------------------------------
+
+glMatrixMultfEXT
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [MatrixMode](Graphics-GL-Groups.html#MatrixMode).
+  -> Ptr GLfloat -- ^ @m@ pointing to @16@ elements of type @GLfloat@.
+  -> m ()
+glMatrixMultfEXT v1 v2 = liftIO $ dyn101 ptr_glMatrixMultfEXT v1 v2
+
+{-# NOINLINE ptr_glMatrixMultfEXT #-}
+ptr_glMatrixMultfEXT :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+ptr_glMatrixMultfEXT = unsafePerformIO $ getCommand "glMatrixMultfEXT"
+
+-- glMatrixOrthoEXT ------------------------------------------------------------
+
+glMatrixOrthoEXT
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [MatrixMode](Graphics-GL-Groups.html#MatrixMode).
+  -> GLdouble -- ^ @left@.
+  -> GLdouble -- ^ @right@.
+  -> GLdouble -- ^ @bottom@.
+  -> GLdouble -- ^ @top@.
+  -> GLdouble -- ^ @zNear@.
+  -> GLdouble -- ^ @zFar@.
+  -> m ()
+glMatrixOrthoEXT v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn542 ptr_glMatrixOrthoEXT v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glMatrixOrthoEXT #-}
+ptr_glMatrixOrthoEXT :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+ptr_glMatrixOrthoEXT = unsafePerformIO $ getCommand "glMatrixOrthoEXT"
+
+-- glMatrixPopEXT --------------------------------------------------------------
+
+glMatrixPopEXT
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [MatrixMode](Graphics-GL-Groups.html#MatrixMode).
+  -> m ()
+glMatrixPopEXT v1 = liftIO $ dyn5 ptr_glMatrixPopEXT v1
+
+{-# NOINLINE ptr_glMatrixPopEXT #-}
+ptr_glMatrixPopEXT :: FunPtr (GLenum -> IO ())
+ptr_glMatrixPopEXT = unsafePerformIO $ getCommand "glMatrixPopEXT"
+
+-- glMatrixPushEXT -------------------------------------------------------------
+
+glMatrixPushEXT
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [MatrixMode](Graphics-GL-Groups.html#MatrixMode).
+  -> m ()
+glMatrixPushEXT v1 = liftIO $ dyn5 ptr_glMatrixPushEXT v1
+
+{-# NOINLINE ptr_glMatrixPushEXT #-}
+ptr_glMatrixPushEXT :: FunPtr (GLenum -> IO ())
+ptr_glMatrixPushEXT = unsafePerformIO $ getCommand "glMatrixPushEXT"
+
+-- glMatrixRotatedEXT ----------------------------------------------------------
+
+glMatrixRotatedEXT
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [MatrixMode](Graphics-GL-Groups.html#MatrixMode).
+  -> GLdouble -- ^ @angle@.
+  -> GLdouble -- ^ @x@.
+  -> GLdouble -- ^ @y@.
+  -> GLdouble -- ^ @z@.
+  -> m ()
+glMatrixRotatedEXT v1 v2 v3 v4 v5 = liftIO $ dyn546 ptr_glMatrixRotatedEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glMatrixRotatedEXT #-}
+ptr_glMatrixRotatedEXT :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+ptr_glMatrixRotatedEXT = unsafePerformIO $ getCommand "glMatrixRotatedEXT"
+
+-- glMatrixRotatefEXT ----------------------------------------------------------
+
+glMatrixRotatefEXT
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [MatrixMode](Graphics-GL-Groups.html#MatrixMode).
+  -> GLfloat -- ^ @angle@.
+  -> GLfloat -- ^ @x@.
+  -> GLfloat -- ^ @y@.
+  -> GLfloat -- ^ @z@.
+  -> m ()
+glMatrixRotatefEXT v1 v2 v3 v4 v5 = liftIO $ dyn547 ptr_glMatrixRotatefEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glMatrixRotatefEXT #-}
+ptr_glMatrixRotatefEXT :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glMatrixRotatefEXT = unsafePerformIO $ getCommand "glMatrixRotatefEXT"
+
+-- glMatrixScaledEXT -----------------------------------------------------------
+
+glMatrixScaledEXT
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [MatrixMode](Graphics-GL-Groups.html#MatrixMode).
+  -> GLdouble -- ^ @x@.
+  -> GLdouble -- ^ @y@.
+  -> GLdouble -- ^ @z@.
+  -> m ()
+glMatrixScaledEXT v1 v2 v3 v4 = liftIO $ dyn548 ptr_glMatrixScaledEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glMatrixScaledEXT #-}
+ptr_glMatrixScaledEXT :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> IO ())
+ptr_glMatrixScaledEXT = unsafePerformIO $ getCommand "glMatrixScaledEXT"
+
+-- glMatrixScalefEXT -----------------------------------------------------------
+
+glMatrixScalefEXT
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [MatrixMode](Graphics-GL-Groups.html#MatrixMode).
+  -> GLfloat -- ^ @x@.
+  -> GLfloat -- ^ @y@.
+  -> GLfloat -- ^ @z@.
+  -> m ()
+glMatrixScalefEXT v1 v2 v3 v4 = liftIO $ dyn549 ptr_glMatrixScalefEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glMatrixScalefEXT #-}
+ptr_glMatrixScalefEXT :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glMatrixScalefEXT = unsafePerformIO $ getCommand "glMatrixScalefEXT"
+
+-- glMatrixTranslatedEXT -------------------------------------------------------
+
+glMatrixTranslatedEXT
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [MatrixMode](Graphics-GL-Groups.html#MatrixMode).
+  -> GLdouble -- ^ @x@.
+  -> GLdouble -- ^ @y@.
+  -> GLdouble -- ^ @z@.
+  -> m ()
+glMatrixTranslatedEXT v1 v2 v3 v4 = liftIO $ dyn548 ptr_glMatrixTranslatedEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glMatrixTranslatedEXT #-}
+ptr_glMatrixTranslatedEXT :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> IO ())
+ptr_glMatrixTranslatedEXT = unsafePerformIO $ getCommand "glMatrixTranslatedEXT"
+
+-- glMatrixTranslatefEXT -------------------------------------------------------
+
+glMatrixTranslatefEXT
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [MatrixMode](Graphics-GL-Groups.html#MatrixMode).
+  -> GLfloat -- ^ @x@.
+  -> GLfloat -- ^ @y@.
+  -> GLfloat -- ^ @z@.
+  -> m ()
+glMatrixTranslatefEXT v1 v2 v3 v4 = liftIO $ dyn549 ptr_glMatrixTranslatefEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glMatrixTranslatefEXT #-}
+ptr_glMatrixTranslatefEXT :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glMatrixTranslatefEXT = unsafePerformIO $ getCommand "glMatrixTranslatefEXT"
+
+-- glMaxShaderCompilerThreadsARB -----------------------------------------------
+
+-- | This command is an alias for 'glMaxShaderCompilerThreadsKHR'.
+glMaxShaderCompilerThreadsARB
+  :: MonadIO m
+  => GLuint -- ^ @count@.
+  -> m ()
+glMaxShaderCompilerThreadsARB v1 = liftIO $ dyn3 ptr_glMaxShaderCompilerThreadsARB v1
+
+{-# NOINLINE ptr_glMaxShaderCompilerThreadsARB #-}
+ptr_glMaxShaderCompilerThreadsARB :: FunPtr (GLuint -> IO ())
+ptr_glMaxShaderCompilerThreadsARB = unsafePerformIO $ getCommand "glMaxShaderCompilerThreadsARB"
+
+-- glMaxShaderCompilerThreadsKHR -----------------------------------------------
+
+glMaxShaderCompilerThreadsKHR
+  :: MonadIO m
+  => GLuint -- ^ @count@.
+  -> m ()
+glMaxShaderCompilerThreadsKHR v1 = liftIO $ dyn3 ptr_glMaxShaderCompilerThreadsKHR v1
+
+{-# NOINLINE ptr_glMaxShaderCompilerThreadsKHR #-}
+ptr_glMaxShaderCompilerThreadsKHR :: FunPtr (GLuint -> IO ())
+ptr_glMaxShaderCompilerThreadsKHR = unsafePerformIO $ getCommand "glMaxShaderCompilerThreadsKHR"
+
+-- glMemoryBarrier -------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glMemoryBarrier.xhtml OpenGL 4.x>.
+glMemoryBarrier
+  :: MonadIO m
+  => GLbitfield -- ^ @barriers@ of type [MemoryBarrierMask](Graphics-GL-Groups.html#MemoryBarrierMask).
+  -> m ()
+glMemoryBarrier v1 = liftIO $ dyn75 ptr_glMemoryBarrier v1
+
+{-# NOINLINE ptr_glMemoryBarrier #-}
+ptr_glMemoryBarrier :: FunPtr (GLbitfield -> IO ())
+ptr_glMemoryBarrier = unsafePerformIO $ getCommand "glMemoryBarrier"
+
+-- glMemoryBarrierByRegion -----------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glMemoryBarrier.xhtml OpenGL 4.x>.
+glMemoryBarrierByRegion
+  :: MonadIO m
+  => GLbitfield -- ^ @barriers@ of type [MemoryBarrierMask](Graphics-GL-Groups.html#MemoryBarrierMask).
+  -> m ()
+glMemoryBarrierByRegion v1 = liftIO $ dyn75 ptr_glMemoryBarrierByRegion v1
+
+{-# NOINLINE ptr_glMemoryBarrierByRegion #-}
+ptr_glMemoryBarrierByRegion :: FunPtr (GLbitfield -> IO ())
+ptr_glMemoryBarrierByRegion = unsafePerformIO $ getCommand "glMemoryBarrierByRegion"
+
+-- glMemoryBarrierEXT ----------------------------------------------------------
+
+-- | This command is an alias for 'glMemoryBarrier'.
+glMemoryBarrierEXT
+  :: MonadIO m
+  => GLbitfield -- ^ @barriers@ of type [MemoryBarrierMask](Graphics-GL-Groups.html#MemoryBarrierMask).
+  -> m ()
+glMemoryBarrierEXT v1 = liftIO $ dyn75 ptr_glMemoryBarrierEXT v1
+
+{-# NOINLINE ptr_glMemoryBarrierEXT #-}
+ptr_glMemoryBarrierEXT :: FunPtr (GLbitfield -> IO ())
+ptr_glMemoryBarrierEXT = unsafePerformIO $ getCommand "glMemoryBarrierEXT"
+
+-- glMemoryObjectParameterivEXT ------------------------------------------------
+
+glMemoryObjectParameterivEXT
+  :: MonadIO m
+  => GLuint -- ^ @memoryObject@.
+  -> GLenum -- ^ @pname@ of type [MemoryObjectParameterName](Graphics-GL-Groups.html#MemoryObjectParameterName).
+  -> Ptr GLint -- ^ @params@.
+  -> m ()
+glMemoryObjectParameterivEXT v1 v2 v3 = liftIO $ dyn348 ptr_glMemoryObjectParameterivEXT v1 v2 v3
+
+{-# NOINLINE ptr_glMemoryObjectParameterivEXT #-}
+ptr_glMemoryObjectParameterivEXT :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glMemoryObjectParameterivEXT = unsafePerformIO $ getCommand "glMemoryObjectParameterivEXT"
+
+-- glMinSampleShading ----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glMinSampleShading.xhtml OpenGL 4.x>.
+glMinSampleShading
+  :: MonadIO m
+  => GLfloat -- ^ @value@ of type @ColorF@.
+  -> m ()
+glMinSampleShading v1 = liftIO $ dyn85 ptr_glMinSampleShading v1
+
+{-# NOINLINE ptr_glMinSampleShading #-}
+ptr_glMinSampleShading :: FunPtr (GLfloat -> IO ())
+ptr_glMinSampleShading = unsafePerformIO $ getCommand "glMinSampleShading"
+
+-- glMinSampleShadingARB -------------------------------------------------------
+
+-- | This command is an alias for 'glMinSampleShading'.
+glMinSampleShadingARB
+  :: MonadIO m
+  => GLfloat -- ^ @value@ of type @ColorF@.
+  -> m ()
+glMinSampleShadingARB v1 = liftIO $ dyn85 ptr_glMinSampleShadingARB v1
+
+{-# NOINLINE ptr_glMinSampleShadingARB #-}
+ptr_glMinSampleShadingARB :: FunPtr (GLfloat -> IO ())
+ptr_glMinSampleShadingARB = unsafePerformIO $ getCommand "glMinSampleShadingARB"
+
+-- glMinSampleShadingOES -------------------------------------------------------
+
+-- | This command is an alias for 'glMinSampleShading'.
+glMinSampleShadingOES
+  :: MonadIO m
+  => GLfloat -- ^ @value@ of type @ColorF@.
+  -> m ()
+glMinSampleShadingOES v1 = liftIO $ dyn85 ptr_glMinSampleShadingOES v1
+
+{-# NOINLINE ptr_glMinSampleShadingOES #-}
+ptr_glMinSampleShadingOES :: FunPtr (GLfloat -> IO ())
+ptr_glMinSampleShadingOES = unsafePerformIO $ getCommand "glMinSampleShadingOES"
+
+-- glMinmax --------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMinmax.xml OpenGL 2.x>.
+glMinmax
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [MinmaxTargetEXT](Graphics-GL-Groups.html#MinmaxTargetEXT).
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLboolean -- ^ @sink@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m ()
+glMinmax v1 v2 v3 = liftIO $ dyn550 ptr_glMinmax v1 v2 v3
+
+{-# NOINLINE ptr_glMinmax #-}
+ptr_glMinmax :: FunPtr (GLenum -> GLenum -> GLboolean -> IO ())
+ptr_glMinmax = unsafePerformIO $ getCommand "glMinmax"
+
+-- glMinmaxEXT -----------------------------------------------------------------
+
+-- | This command is an alias for 'glMinmax'.
+glMinmaxEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [MinmaxTargetEXT](Graphics-GL-Groups.html#MinmaxTargetEXT).
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLboolean -- ^ @sink@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m ()
+glMinmaxEXT v1 v2 v3 = liftIO $ dyn550 ptr_glMinmaxEXT v1 v2 v3
+
+{-# NOINLINE ptr_glMinmaxEXT #-}
+ptr_glMinmaxEXT :: FunPtr (GLenum -> GLenum -> GLboolean -> IO ())
+ptr_glMinmaxEXT = unsafePerformIO $ getCommand "glMinmaxEXT"
+
+-- glMultMatrixd ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultMatrix.xml OpenGL 2.x>.
+glMultMatrixd
+  :: MonadIO m
+  => Ptr GLdouble -- ^ @m@ pointing to @16@ elements of type @GLdouble@.
+  -> m ()
+glMultMatrixd v1 = liftIO $ dyn42 ptr_glMultMatrixd v1
+
+{-# NOINLINE ptr_glMultMatrixd #-}
+ptr_glMultMatrixd :: FunPtr (Ptr GLdouble -> IO ())
+ptr_glMultMatrixd = unsafePerformIO $ getCommand "glMultMatrixd"
+
diff --git a/src/Graphics/GL/Functions/F17.hs b/src/Graphics/GL/Functions/F17.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Functions/F17.hs
@@ -0,0 +1,1601 @@
+{-# OPTIONS_HADDOCK hide #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Functions.F17
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- Raw functions from the
+-- <http://www.opengl.org/registry/ OpenGL registry>.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Functions.F17 (
+  glMultMatrixf,
+  glMultMatrixx,
+  glMultMatrixxOES,
+  glMultTransposeMatrixd,
+  glMultTransposeMatrixdARB,
+  glMultTransposeMatrixf,
+  glMultTransposeMatrixfARB,
+  glMultTransposeMatrixxOES,
+  glMultiDrawArrays,
+  glMultiDrawArraysEXT,
+  glMultiDrawArraysIndirect,
+  glMultiDrawArraysIndirectAMD,
+  glMultiDrawArraysIndirectBindlessCountNV,
+  glMultiDrawArraysIndirectBindlessNV,
+  glMultiDrawArraysIndirectCount,
+  glMultiDrawArraysIndirectCountARB,
+  glMultiDrawArraysIndirectEXT,
+  glMultiDrawElementArrayAPPLE,
+  glMultiDrawElements,
+  glMultiDrawElementsBaseVertex,
+  glMultiDrawElementsBaseVertexEXT,
+  glMultiDrawElementsEXT,
+  glMultiDrawElementsIndirect,
+  glMultiDrawElementsIndirectAMD,
+  glMultiDrawElementsIndirectBindlessCountNV,
+  glMultiDrawElementsIndirectBindlessNV,
+  glMultiDrawElementsIndirectCount,
+  glMultiDrawElementsIndirectCountARB,
+  glMultiDrawElementsIndirectEXT,
+  glMultiDrawMeshTasksIndirectCountNV,
+  glMultiDrawMeshTasksIndirectNV,
+  glMultiDrawRangeElementArrayAPPLE,
+  glMultiModeDrawArraysIBM,
+  glMultiModeDrawElementsIBM,
+  glMultiTexBufferEXT,
+  glMultiTexCoord1bOES,
+  glMultiTexCoord1bvOES,
+  glMultiTexCoord1d,
+  glMultiTexCoord1dARB,
+  glMultiTexCoord1dv,
+  glMultiTexCoord1dvARB,
+  glMultiTexCoord1f,
+  glMultiTexCoord1fARB,
+  glMultiTexCoord1fv,
+  glMultiTexCoord1fvARB,
+  glMultiTexCoord1hNV,
+  glMultiTexCoord1hvNV,
+  glMultiTexCoord1i,
+  glMultiTexCoord1iARB,
+  glMultiTexCoord1iv,
+  glMultiTexCoord1ivARB,
+  glMultiTexCoord1s,
+  glMultiTexCoord1sARB,
+  glMultiTexCoord1sv,
+  glMultiTexCoord1svARB,
+  glMultiTexCoord1xOES,
+  glMultiTexCoord1xvOES,
+  glMultiTexCoord2bOES,
+  glMultiTexCoord2bvOES,
+  glMultiTexCoord2d,
+  glMultiTexCoord2dARB,
+  glMultiTexCoord2dv,
+  glMultiTexCoord2dvARB,
+  glMultiTexCoord2f,
+  glMultiTexCoord2fARB,
+  glMultiTexCoord2fv,
+  glMultiTexCoord2fvARB,
+  glMultiTexCoord2hNV,
+  glMultiTexCoord2hvNV,
+  glMultiTexCoord2i,
+  glMultiTexCoord2iARB,
+  glMultiTexCoord2iv,
+  glMultiTexCoord2ivARB,
+  glMultiTexCoord2s,
+  glMultiTexCoord2sARB,
+  glMultiTexCoord2sv,
+  glMultiTexCoord2svARB,
+  glMultiTexCoord2xOES,
+  glMultiTexCoord2xvOES,
+  glMultiTexCoord3bOES,
+  glMultiTexCoord3bvOES,
+  glMultiTexCoord3d,
+  glMultiTexCoord3dARB,
+  glMultiTexCoord3dv,
+  glMultiTexCoord3dvARB,
+  glMultiTexCoord3f,
+  glMultiTexCoord3fARB,
+  glMultiTexCoord3fv,
+  glMultiTexCoord3fvARB,
+  glMultiTexCoord3hNV,
+  glMultiTexCoord3hvNV,
+  glMultiTexCoord3i,
+  glMultiTexCoord3iARB,
+  glMultiTexCoord3iv,
+  glMultiTexCoord3ivARB,
+  glMultiTexCoord3s,
+  glMultiTexCoord3sARB,
+  glMultiTexCoord3sv,
+  glMultiTexCoord3svARB,
+  glMultiTexCoord3xOES
+) where
+
+import Control.Monad.IO.Class ( MonadIO(..) )
+import Foreign.Ptr
+import Graphics.GL.Foreign
+import Graphics.GL.Types
+import System.IO.Unsafe ( unsafePerformIO )
+
+-- glMultMatrixf ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultMatrix.xml OpenGL 2.x>.
+glMultMatrixf
+  :: MonadIO m
+  => Ptr GLfloat -- ^ @m@ pointing to @16@ elements of type @GLfloat@.
+  -> m ()
+glMultMatrixf v1 = liftIO $ dyn44 ptr_glMultMatrixf v1
+
+{-# NOINLINE ptr_glMultMatrixf #-}
+ptr_glMultMatrixf :: FunPtr (Ptr GLfloat -> IO ())
+ptr_glMultMatrixf = unsafePerformIO $ getCommand "glMultMatrixf"
+
+-- glMultMatrixx ---------------------------------------------------------------
+
+glMultMatrixx
+  :: MonadIO m
+  => Ptr GLfixed -- ^ @m@ pointing to @16@ elements of type @GLfixed@.
+  -> m ()
+glMultMatrixx v1 = liftIO $ dyn114 ptr_glMultMatrixx v1
+
+{-# NOINLINE ptr_glMultMatrixx #-}
+ptr_glMultMatrixx :: FunPtr (Ptr GLfixed -> IO ())
+ptr_glMultMatrixx = unsafePerformIO $ getCommand "glMultMatrixx"
+
+-- glMultMatrixxOES ------------------------------------------------------------
+
+glMultMatrixxOES
+  :: MonadIO m
+  => Ptr GLfixed -- ^ @m@ pointing to @16@ elements of type @GLfixed@.
+  -> m ()
+glMultMatrixxOES v1 = liftIO $ dyn114 ptr_glMultMatrixxOES v1
+
+{-# NOINLINE ptr_glMultMatrixxOES #-}
+ptr_glMultMatrixxOES :: FunPtr (Ptr GLfixed -> IO ())
+ptr_glMultMatrixxOES = unsafePerformIO $ getCommand "glMultMatrixxOES"
+
+-- glMultTransposeMatrixd ------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultTransposeMatrix.xml OpenGL 2.x>.
+glMultTransposeMatrixd
+  :: MonadIO m
+  => Ptr GLdouble -- ^ @m@ pointing to @16@ elements of type @GLdouble@.
+  -> m ()
+glMultTransposeMatrixd v1 = liftIO $ dyn42 ptr_glMultTransposeMatrixd v1
+
+{-# NOINLINE ptr_glMultTransposeMatrixd #-}
+ptr_glMultTransposeMatrixd :: FunPtr (Ptr GLdouble -> IO ())
+ptr_glMultTransposeMatrixd = unsafePerformIO $ getCommand "glMultTransposeMatrixd"
+
+-- glMultTransposeMatrixdARB ---------------------------------------------------
+
+-- | This command is an alias for 'glMultTransposeMatrixd'.
+glMultTransposeMatrixdARB
+  :: MonadIO m
+  => Ptr GLdouble -- ^ @m@ pointing to @16@ elements of type @GLdouble@.
+  -> m ()
+glMultTransposeMatrixdARB v1 = liftIO $ dyn42 ptr_glMultTransposeMatrixdARB v1
+
+{-# NOINLINE ptr_glMultTransposeMatrixdARB #-}
+ptr_glMultTransposeMatrixdARB :: FunPtr (Ptr GLdouble -> IO ())
+ptr_glMultTransposeMatrixdARB = unsafePerformIO $ getCommand "glMultTransposeMatrixdARB"
+
+-- glMultTransposeMatrixf ------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultTransposeMatrix.xml OpenGL 2.x>.
+glMultTransposeMatrixf
+  :: MonadIO m
+  => Ptr GLfloat -- ^ @m@ pointing to @16@ elements of type @GLfloat@.
+  -> m ()
+glMultTransposeMatrixf v1 = liftIO $ dyn44 ptr_glMultTransposeMatrixf v1
+
+{-# NOINLINE ptr_glMultTransposeMatrixf #-}
+ptr_glMultTransposeMatrixf :: FunPtr (Ptr GLfloat -> IO ())
+ptr_glMultTransposeMatrixf = unsafePerformIO $ getCommand "glMultTransposeMatrixf"
+
+-- glMultTransposeMatrixfARB ---------------------------------------------------
+
+-- | This command is an alias for 'glMultTransposeMatrixf'.
+glMultTransposeMatrixfARB
+  :: MonadIO m
+  => Ptr GLfloat -- ^ @m@ pointing to @16@ elements of type @GLfloat@.
+  -> m ()
+glMultTransposeMatrixfARB v1 = liftIO $ dyn44 ptr_glMultTransposeMatrixfARB v1
+
+{-# NOINLINE ptr_glMultTransposeMatrixfARB #-}
+ptr_glMultTransposeMatrixfARB :: FunPtr (Ptr GLfloat -> IO ())
+ptr_glMultTransposeMatrixfARB = unsafePerformIO $ getCommand "glMultTransposeMatrixfARB"
+
+-- glMultTransposeMatrixxOES ---------------------------------------------------
+
+glMultTransposeMatrixxOES
+  :: MonadIO m
+  => Ptr GLfixed -- ^ @m@ pointing to @16@ elements of type @GLfixed@.
+  -> m ()
+glMultTransposeMatrixxOES v1 = liftIO $ dyn114 ptr_glMultTransposeMatrixxOES v1
+
+{-# NOINLINE ptr_glMultTransposeMatrixxOES #-}
+ptr_glMultTransposeMatrixxOES :: FunPtr (Ptr GLfixed -> IO ())
+ptr_glMultTransposeMatrixxOES = unsafePerformIO $ getCommand "glMultTransposeMatrixxOES"
+
+-- glMultiDrawArrays -----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiDrawArrays.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glMultiDrawArrays.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glMultiDrawArrays.xhtml OpenGL 4.x>.
+glMultiDrawArrays
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> Ptr GLint -- ^ @first@ pointing to @COMPSIZE(drawcount)@ elements of type @GLint@.
+  -> Ptr GLsizei -- ^ @count@ pointing to @COMPSIZE(drawcount)@ elements of type @GLsizei@.
+  -> GLsizei -- ^ @drawcount@.
+  -> m ()
+glMultiDrawArrays v1 v2 v3 v4 = liftIO $ dyn551 ptr_glMultiDrawArrays v1 v2 v3 v4
+
+{-# NOINLINE ptr_glMultiDrawArrays #-}
+ptr_glMultiDrawArrays :: FunPtr (GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> IO ())
+ptr_glMultiDrawArrays = unsafePerformIO $ getCommand "glMultiDrawArrays"
+
+-- glMultiDrawArraysEXT --------------------------------------------------------
+
+-- | This command is an alias for 'glMultiDrawArrays'.
+glMultiDrawArraysEXT
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> Ptr GLint -- ^ @first@ pointing to @COMPSIZE(primcount)@ elements of type @GLint@.
+  -> Ptr GLsizei -- ^ @count@ pointing to @COMPSIZE(primcount)@ elements of type @GLsizei@.
+  -> GLsizei -- ^ @primcount@.
+  -> m ()
+glMultiDrawArraysEXT v1 v2 v3 v4 = liftIO $ dyn551 ptr_glMultiDrawArraysEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glMultiDrawArraysEXT #-}
+ptr_glMultiDrawArraysEXT :: FunPtr (GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> IO ())
+ptr_glMultiDrawArraysEXT = unsafePerformIO $ getCommand "glMultiDrawArraysEXT"
+
+-- glMultiDrawArraysIndirect ---------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glMultiDrawArraysIndirect.xhtml OpenGL 4.x>.
+glMultiDrawArraysIndirect
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> Ptr a -- ^ @indirect@ pointing to @COMPSIZE(drawcount,stride)@ elements of type @a@.
+  -> GLsizei -- ^ @drawcount@.
+  -> GLsizei -- ^ @stride@.
+  -> m ()
+glMultiDrawArraysIndirect v1 v2 v3 v4 = liftIO $ dyn552 ptr_glMultiDrawArraysIndirect v1 v2 v3 v4
+
+{-# NOINLINE ptr_glMultiDrawArraysIndirect #-}
+ptr_glMultiDrawArraysIndirect :: FunPtr (GLenum -> Ptr a -> GLsizei -> GLsizei -> IO ())
+ptr_glMultiDrawArraysIndirect = unsafePerformIO $ getCommand "glMultiDrawArraysIndirect"
+
+-- glMultiDrawArraysIndirectAMD ------------------------------------------------
+
+-- | This command is an alias for 'glMultiDrawArraysIndirect'.
+glMultiDrawArraysIndirectAMD
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> Ptr a -- ^ @indirect@.
+  -> GLsizei -- ^ @primcount@.
+  -> GLsizei -- ^ @stride@.
+  -> m ()
+glMultiDrawArraysIndirectAMD v1 v2 v3 v4 = liftIO $ dyn552 ptr_glMultiDrawArraysIndirectAMD v1 v2 v3 v4
+
+{-# NOINLINE ptr_glMultiDrawArraysIndirectAMD #-}
+ptr_glMultiDrawArraysIndirectAMD :: FunPtr (GLenum -> Ptr a -> GLsizei -> GLsizei -> IO ())
+ptr_glMultiDrawArraysIndirectAMD = unsafePerformIO $ getCommand "glMultiDrawArraysIndirectAMD"
+
+-- glMultiDrawArraysIndirectBindlessCountNV ------------------------------------
+
+glMultiDrawArraysIndirectBindlessCountNV
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> Ptr a -- ^ @indirect@.
+  -> GLsizei -- ^ @drawCount@.
+  -> GLsizei -- ^ @maxDrawCount@.
+  -> GLsizei -- ^ @stride@.
+  -> GLint -- ^ @vertexBufferCount@.
+  -> m ()
+glMultiDrawArraysIndirectBindlessCountNV v1 v2 v3 v4 v5 v6 = liftIO $ dyn553 ptr_glMultiDrawArraysIndirectBindlessCountNV v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glMultiDrawArraysIndirectBindlessCountNV #-}
+ptr_glMultiDrawArraysIndirectBindlessCountNV :: FunPtr (GLenum -> Ptr a -> GLsizei -> GLsizei -> GLsizei -> GLint -> IO ())
+ptr_glMultiDrawArraysIndirectBindlessCountNV = unsafePerformIO $ getCommand "glMultiDrawArraysIndirectBindlessCountNV"
+
+-- glMultiDrawArraysIndirectBindlessNV -----------------------------------------
+
+glMultiDrawArraysIndirectBindlessNV
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> Ptr a -- ^ @indirect@.
+  -> GLsizei -- ^ @drawCount@.
+  -> GLsizei -- ^ @stride@.
+  -> GLint -- ^ @vertexBufferCount@.
+  -> m ()
+glMultiDrawArraysIndirectBindlessNV v1 v2 v3 v4 v5 = liftIO $ dyn554 ptr_glMultiDrawArraysIndirectBindlessNV v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glMultiDrawArraysIndirectBindlessNV #-}
+ptr_glMultiDrawArraysIndirectBindlessNV :: FunPtr (GLenum -> Ptr a -> GLsizei -> GLsizei -> GLint -> IO ())
+ptr_glMultiDrawArraysIndirectBindlessNV = unsafePerformIO $ getCommand "glMultiDrawArraysIndirectBindlessNV"
+
+-- glMultiDrawArraysIndirectCount ----------------------------------------------
+
+glMultiDrawArraysIndirectCount
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> Ptr a -- ^ @indirect@.
+  -> GLintptr -- ^ @drawcount@.
+  -> GLsizei -- ^ @maxdrawcount@.
+  -> GLsizei -- ^ @stride@.
+  -> m ()
+glMultiDrawArraysIndirectCount v1 v2 v3 v4 v5 = liftIO $ dyn555 ptr_glMultiDrawArraysIndirectCount v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glMultiDrawArraysIndirectCount #-}
+ptr_glMultiDrawArraysIndirectCount :: FunPtr (GLenum -> Ptr a -> GLintptr -> GLsizei -> GLsizei -> IO ())
+ptr_glMultiDrawArraysIndirectCount = unsafePerformIO $ getCommand "glMultiDrawArraysIndirectCount"
+
+-- glMultiDrawArraysIndirectCountARB -------------------------------------------
+
+-- | This command is an alias for 'glMultiDrawArraysIndirectCount'.
+glMultiDrawArraysIndirectCountARB
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> Ptr a -- ^ @indirect@.
+  -> GLintptr -- ^ @drawcount@.
+  -> GLsizei -- ^ @maxdrawcount@.
+  -> GLsizei -- ^ @stride@.
+  -> m ()
+glMultiDrawArraysIndirectCountARB v1 v2 v3 v4 v5 = liftIO $ dyn555 ptr_glMultiDrawArraysIndirectCountARB v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glMultiDrawArraysIndirectCountARB #-}
+ptr_glMultiDrawArraysIndirectCountARB :: FunPtr (GLenum -> Ptr a -> GLintptr -> GLsizei -> GLsizei -> IO ())
+ptr_glMultiDrawArraysIndirectCountARB = unsafePerformIO $ getCommand "glMultiDrawArraysIndirectCountARB"
+
+-- glMultiDrawArraysIndirectEXT ------------------------------------------------
+
+-- | This command is an alias for 'glMultiDrawArraysIndirect'.
+glMultiDrawArraysIndirectEXT
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> Ptr a -- ^ @indirect@ pointing to @COMPSIZE(drawcount,stride)@ elements of type @a@.
+  -> GLsizei -- ^ @drawcount@.
+  -> GLsizei -- ^ @stride@.
+  -> m ()
+glMultiDrawArraysIndirectEXT v1 v2 v3 v4 = liftIO $ dyn552 ptr_glMultiDrawArraysIndirectEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glMultiDrawArraysIndirectEXT #-}
+ptr_glMultiDrawArraysIndirectEXT :: FunPtr (GLenum -> Ptr a -> GLsizei -> GLsizei -> IO ())
+ptr_glMultiDrawArraysIndirectEXT = unsafePerformIO $ getCommand "glMultiDrawArraysIndirectEXT"
+
+-- glMultiDrawElementArrayAPPLE ------------------------------------------------
+
+glMultiDrawElementArrayAPPLE
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> Ptr GLint -- ^ @first@ pointing to @primcount@ elements of type @GLint@.
+  -> Ptr GLsizei -- ^ @count@ pointing to @primcount@ elements of type @GLsizei@.
+  -> GLsizei -- ^ @primcount@.
+  -> m ()
+glMultiDrawElementArrayAPPLE v1 v2 v3 v4 = liftIO $ dyn551 ptr_glMultiDrawElementArrayAPPLE v1 v2 v3 v4
+
+{-# NOINLINE ptr_glMultiDrawElementArrayAPPLE #-}
+ptr_glMultiDrawElementArrayAPPLE :: FunPtr (GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> IO ())
+ptr_glMultiDrawElementArrayAPPLE = unsafePerformIO $ getCommand "glMultiDrawElementArrayAPPLE"
+
+-- glMultiDrawElements ---------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiDrawElements.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glMultiDrawElements.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glMultiDrawElements.xhtml OpenGL 4.x>.
+glMultiDrawElements
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> Ptr GLsizei -- ^ @count@ pointing to @COMPSIZE(drawcount)@ elements of type @GLsizei@.
+  -> GLenum -- ^ @type@ of type [DrawElementsType](Graphics-GL-Groups.html#DrawElementsType).
+  -> Ptr (Ptr a) -- ^ @indices@ pointing to @COMPSIZE(drawcount)@ elements of type @Ptr a@.
+  -> GLsizei -- ^ @drawcount@.
+  -> m ()
+glMultiDrawElements v1 v2 v3 v4 v5 = liftIO $ dyn556 ptr_glMultiDrawElements v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glMultiDrawElements #-}
+ptr_glMultiDrawElements :: FunPtr (GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> IO ())
+ptr_glMultiDrawElements = unsafePerformIO $ getCommand "glMultiDrawElements"
+
+-- glMultiDrawElementsBaseVertex -----------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glMultiDrawElementsBaseVertex.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glMultiDrawElementsBaseVertex.xhtml OpenGL 4.x>.
+glMultiDrawElementsBaseVertex
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> Ptr GLsizei -- ^ @count@ pointing to @COMPSIZE(drawcount)@ elements of type @GLsizei@.
+  -> GLenum -- ^ @type@ of type [DrawElementsType](Graphics-GL-Groups.html#DrawElementsType).
+  -> Ptr (Ptr a) -- ^ @indices@ pointing to @COMPSIZE(drawcount)@ elements of type @Ptr a@.
+  -> GLsizei -- ^ @drawcount@.
+  -> Ptr GLint -- ^ @basevertex@ pointing to @COMPSIZE(drawcount)@ elements of type @GLint@.
+  -> m ()
+glMultiDrawElementsBaseVertex v1 v2 v3 v4 v5 v6 = liftIO $ dyn557 ptr_glMultiDrawElementsBaseVertex v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glMultiDrawElementsBaseVertex #-}
+ptr_glMultiDrawElementsBaseVertex :: FunPtr (GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> Ptr GLint -> IO ())
+ptr_glMultiDrawElementsBaseVertex = unsafePerformIO $ getCommand "glMultiDrawElementsBaseVertex"
+
+-- glMultiDrawElementsBaseVertexEXT --------------------------------------------
+
+-- | This command is an alias for 'glMultiDrawElementsBaseVertex'.
+glMultiDrawElementsBaseVertexEXT
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> Ptr GLsizei -- ^ @count@ pointing to @COMPSIZE(drawcount)@ elements of type @GLsizei@.
+  -> GLenum -- ^ @type@ of type [DrawElementsType](Graphics-GL-Groups.html#DrawElementsType).
+  -> Ptr (Ptr a) -- ^ @indices@ pointing to @COMPSIZE(drawcount)@ elements of type @Ptr a@.
+  -> GLsizei -- ^ @primcount@.
+  -> Ptr GLint -- ^ @basevertex@ pointing to @COMPSIZE(drawcount)@ elements of type @GLint@.
+  -> m ()
+glMultiDrawElementsBaseVertexEXT v1 v2 v3 v4 v5 v6 = liftIO $ dyn557 ptr_glMultiDrawElementsBaseVertexEXT v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glMultiDrawElementsBaseVertexEXT #-}
+ptr_glMultiDrawElementsBaseVertexEXT :: FunPtr (GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> Ptr GLint -> IO ())
+ptr_glMultiDrawElementsBaseVertexEXT = unsafePerformIO $ getCommand "glMultiDrawElementsBaseVertexEXT"
+
+-- glMultiDrawElementsEXT ------------------------------------------------------
+
+-- | This command is an alias for 'glMultiDrawElements'.
+glMultiDrawElementsEXT
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> Ptr GLsizei -- ^ @count@ pointing to @COMPSIZE(primcount)@ elements of type @GLsizei@.
+  -> GLenum -- ^ @type@ of type [DrawElementsType](Graphics-GL-Groups.html#DrawElementsType).
+  -> Ptr (Ptr a) -- ^ @indices@ pointing to @COMPSIZE(primcount)@ elements of type @Ptr a@.
+  -> GLsizei -- ^ @primcount@.
+  -> m ()
+glMultiDrawElementsEXT v1 v2 v3 v4 v5 = liftIO $ dyn556 ptr_glMultiDrawElementsEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glMultiDrawElementsEXT #-}
+ptr_glMultiDrawElementsEXT :: FunPtr (GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> IO ())
+ptr_glMultiDrawElementsEXT = unsafePerformIO $ getCommand "glMultiDrawElementsEXT"
+
+-- glMultiDrawElementsIndirect -------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glMultiDrawElementsIndirect.xhtml OpenGL 4.x>.
+glMultiDrawElementsIndirect
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> GLenum -- ^ @type@ of type [DrawElementsType](Graphics-GL-Groups.html#DrawElementsType).
+  -> Ptr a -- ^ @indirect@ pointing to @COMPSIZE(drawcount,stride)@ elements of type @a@.
+  -> GLsizei -- ^ @drawcount@.
+  -> GLsizei -- ^ @stride@.
+  -> m ()
+glMultiDrawElementsIndirect v1 v2 v3 v4 v5 = liftIO $ dyn558 ptr_glMultiDrawElementsIndirect v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glMultiDrawElementsIndirect #-}
+ptr_glMultiDrawElementsIndirect :: FunPtr (GLenum -> GLenum -> Ptr a -> GLsizei -> GLsizei -> IO ())
+ptr_glMultiDrawElementsIndirect = unsafePerformIO $ getCommand "glMultiDrawElementsIndirect"
+
+-- glMultiDrawElementsIndirectAMD ----------------------------------------------
+
+-- | This command is an alias for 'glMultiDrawElementsIndirect'.
+glMultiDrawElementsIndirectAMD
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> GLenum -- ^ @type@ of type [DrawElementsType](Graphics-GL-Groups.html#DrawElementsType).
+  -> Ptr a -- ^ @indirect@.
+  -> GLsizei -- ^ @primcount@.
+  -> GLsizei -- ^ @stride@.
+  -> m ()
+glMultiDrawElementsIndirectAMD v1 v2 v3 v4 v5 = liftIO $ dyn558 ptr_glMultiDrawElementsIndirectAMD v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glMultiDrawElementsIndirectAMD #-}
+ptr_glMultiDrawElementsIndirectAMD :: FunPtr (GLenum -> GLenum -> Ptr a -> GLsizei -> GLsizei -> IO ())
+ptr_glMultiDrawElementsIndirectAMD = unsafePerformIO $ getCommand "glMultiDrawElementsIndirectAMD"
+
+-- glMultiDrawElementsIndirectBindlessCountNV ----------------------------------
+
+glMultiDrawElementsIndirectBindlessCountNV
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> GLenum -- ^ @type@ of type [DrawElementsType](Graphics-GL-Groups.html#DrawElementsType).
+  -> Ptr a -- ^ @indirect@.
+  -> GLsizei -- ^ @drawCount@.
+  -> GLsizei -- ^ @maxDrawCount@.
+  -> GLsizei -- ^ @stride@.
+  -> GLint -- ^ @vertexBufferCount@.
+  -> m ()
+glMultiDrawElementsIndirectBindlessCountNV v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn559 ptr_glMultiDrawElementsIndirectBindlessCountNV v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glMultiDrawElementsIndirectBindlessCountNV #-}
+ptr_glMultiDrawElementsIndirectBindlessCountNV :: FunPtr (GLenum -> GLenum -> Ptr a -> GLsizei -> GLsizei -> GLsizei -> GLint -> IO ())
+ptr_glMultiDrawElementsIndirectBindlessCountNV = unsafePerformIO $ getCommand "glMultiDrawElementsIndirectBindlessCountNV"
+
+-- glMultiDrawElementsIndirectBindlessNV ---------------------------------------
+
+glMultiDrawElementsIndirectBindlessNV
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> GLenum -- ^ @type@ of type [DrawElementsType](Graphics-GL-Groups.html#DrawElementsType).
+  -> Ptr a -- ^ @indirect@.
+  -> GLsizei -- ^ @drawCount@.
+  -> GLsizei -- ^ @stride@.
+  -> GLint -- ^ @vertexBufferCount@.
+  -> m ()
+glMultiDrawElementsIndirectBindlessNV v1 v2 v3 v4 v5 v6 = liftIO $ dyn560 ptr_glMultiDrawElementsIndirectBindlessNV v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glMultiDrawElementsIndirectBindlessNV #-}
+ptr_glMultiDrawElementsIndirectBindlessNV :: FunPtr (GLenum -> GLenum -> Ptr a -> GLsizei -> GLsizei -> GLint -> IO ())
+ptr_glMultiDrawElementsIndirectBindlessNV = unsafePerformIO $ getCommand "glMultiDrawElementsIndirectBindlessNV"
+
+-- glMultiDrawElementsIndirectCount --------------------------------------------
+
+glMultiDrawElementsIndirectCount
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> GLenum -- ^ @type@ of type [DrawElementsType](Graphics-GL-Groups.html#DrawElementsType).
+  -> Ptr a -- ^ @indirect@.
+  -> GLintptr -- ^ @drawcount@.
+  -> GLsizei -- ^ @maxdrawcount@.
+  -> GLsizei -- ^ @stride@.
+  -> m ()
+glMultiDrawElementsIndirectCount v1 v2 v3 v4 v5 v6 = liftIO $ dyn561 ptr_glMultiDrawElementsIndirectCount v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glMultiDrawElementsIndirectCount #-}
+ptr_glMultiDrawElementsIndirectCount :: FunPtr (GLenum -> GLenum -> Ptr a -> GLintptr -> GLsizei -> GLsizei -> IO ())
+ptr_glMultiDrawElementsIndirectCount = unsafePerformIO $ getCommand "glMultiDrawElementsIndirectCount"
+
+-- glMultiDrawElementsIndirectCountARB -----------------------------------------
+
+-- | This command is an alias for 'glMultiDrawElementsIndirectCount'.
+glMultiDrawElementsIndirectCountARB
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> GLenum -- ^ @type@ of type [DrawElementsType](Graphics-GL-Groups.html#DrawElementsType).
+  -> Ptr a -- ^ @indirect@.
+  -> GLintptr -- ^ @drawcount@.
+  -> GLsizei -- ^ @maxdrawcount@.
+  -> GLsizei -- ^ @stride@.
+  -> m ()
+glMultiDrawElementsIndirectCountARB v1 v2 v3 v4 v5 v6 = liftIO $ dyn561 ptr_glMultiDrawElementsIndirectCountARB v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glMultiDrawElementsIndirectCountARB #-}
+ptr_glMultiDrawElementsIndirectCountARB :: FunPtr (GLenum -> GLenum -> Ptr a -> GLintptr -> GLsizei -> GLsizei -> IO ())
+ptr_glMultiDrawElementsIndirectCountARB = unsafePerformIO $ getCommand "glMultiDrawElementsIndirectCountARB"
+
+-- glMultiDrawElementsIndirectEXT ----------------------------------------------
+
+-- | This command is an alias for 'glMultiDrawElementsIndirect'.
+glMultiDrawElementsIndirectEXT
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> GLenum -- ^ @type@ of type [DrawElementsType](Graphics-GL-Groups.html#DrawElementsType).
+  -> Ptr a -- ^ @indirect@ pointing to @COMPSIZE(drawcount,stride)@ elements of type @a@.
+  -> GLsizei -- ^ @drawcount@.
+  -> GLsizei -- ^ @stride@.
+  -> m ()
+glMultiDrawElementsIndirectEXT v1 v2 v3 v4 v5 = liftIO $ dyn558 ptr_glMultiDrawElementsIndirectEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glMultiDrawElementsIndirectEXT #-}
+ptr_glMultiDrawElementsIndirectEXT :: FunPtr (GLenum -> GLenum -> Ptr a -> GLsizei -> GLsizei -> IO ())
+ptr_glMultiDrawElementsIndirectEXT = unsafePerformIO $ getCommand "glMultiDrawElementsIndirectEXT"
+
+-- glMultiDrawMeshTasksIndirectCountNV -----------------------------------------
+
+glMultiDrawMeshTasksIndirectCountNV
+  :: MonadIO m
+  => GLintptr -- ^ @indirect@.
+  -> GLintptr -- ^ @drawcount@.
+  -> GLsizei -- ^ @maxdrawcount@.
+  -> GLsizei -- ^ @stride@.
+  -> m ()
+glMultiDrawMeshTasksIndirectCountNV v1 v2 v3 v4 = liftIO $ dyn562 ptr_glMultiDrawMeshTasksIndirectCountNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glMultiDrawMeshTasksIndirectCountNV #-}
+ptr_glMultiDrawMeshTasksIndirectCountNV :: FunPtr (GLintptr -> GLintptr -> GLsizei -> GLsizei -> IO ())
+ptr_glMultiDrawMeshTasksIndirectCountNV = unsafePerformIO $ getCommand "glMultiDrawMeshTasksIndirectCountNV"
+
+-- glMultiDrawMeshTasksIndirectNV ----------------------------------------------
+
+glMultiDrawMeshTasksIndirectNV
+  :: MonadIO m
+  => GLintptr -- ^ @indirect@.
+  -> GLsizei -- ^ @drawcount@.
+  -> GLsizei -- ^ @stride@.
+  -> m ()
+glMultiDrawMeshTasksIndirectNV v1 v2 v3 = liftIO $ dyn563 ptr_glMultiDrawMeshTasksIndirectNV v1 v2 v3
+
+{-# NOINLINE ptr_glMultiDrawMeshTasksIndirectNV #-}
+ptr_glMultiDrawMeshTasksIndirectNV :: FunPtr (GLintptr -> GLsizei -> GLsizei -> IO ())
+ptr_glMultiDrawMeshTasksIndirectNV = unsafePerformIO $ getCommand "glMultiDrawMeshTasksIndirectNV"
+
+-- glMultiDrawRangeElementArrayAPPLE -------------------------------------------
+
+glMultiDrawRangeElementArrayAPPLE
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> GLuint -- ^ @start@.
+  -> GLuint -- ^ @end@.
+  -> Ptr GLint -- ^ @first@ pointing to @primcount@ elements of type @GLint@.
+  -> Ptr GLsizei -- ^ @count@ pointing to @primcount@ elements of type @GLsizei@.
+  -> GLsizei -- ^ @primcount@.
+  -> m ()
+glMultiDrawRangeElementArrayAPPLE v1 v2 v3 v4 v5 v6 = liftIO $ dyn564 ptr_glMultiDrawRangeElementArrayAPPLE v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glMultiDrawRangeElementArrayAPPLE #-}
+ptr_glMultiDrawRangeElementArrayAPPLE :: FunPtr (GLenum -> GLuint -> GLuint -> Ptr GLint -> Ptr GLsizei -> GLsizei -> IO ())
+ptr_glMultiDrawRangeElementArrayAPPLE = unsafePerformIO $ getCommand "glMultiDrawRangeElementArrayAPPLE"
+
+-- glMultiModeDrawArraysIBM ----------------------------------------------------
+
+glMultiModeDrawArraysIBM
+  :: MonadIO m
+  => Ptr GLenum -- ^ @mode@ pointing to @COMPSIZE(primcount)@ elements of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> Ptr GLint -- ^ @first@ pointing to @COMPSIZE(primcount)@ elements of type @GLint@.
+  -> Ptr GLsizei -- ^ @count@ pointing to @COMPSIZE(primcount)@ elements of type @GLsizei@.
+  -> GLsizei -- ^ @primcount@.
+  -> GLint -- ^ @modestride@.
+  -> m ()
+glMultiModeDrawArraysIBM v1 v2 v3 v4 v5 = liftIO $ dyn565 ptr_glMultiModeDrawArraysIBM v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glMultiModeDrawArraysIBM #-}
+ptr_glMultiModeDrawArraysIBM :: FunPtr (Ptr GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> GLint -> IO ())
+ptr_glMultiModeDrawArraysIBM = unsafePerformIO $ getCommand "glMultiModeDrawArraysIBM"
+
+-- glMultiModeDrawElementsIBM --------------------------------------------------
+
+glMultiModeDrawElementsIBM
+  :: MonadIO m
+  => Ptr GLenum -- ^ @mode@ pointing to @COMPSIZE(primcount)@ elements of type [PrimitiveType](Graphics-GL-Groups.html#PrimitiveType).
+  -> Ptr GLsizei -- ^ @count@ pointing to @COMPSIZE(primcount)@ elements of type @GLsizei@.
+  -> GLenum -- ^ @type@ of type [DrawElementsType](Graphics-GL-Groups.html#DrawElementsType).
+  -> Ptr (Ptr a) -- ^ @indices@ pointing to @COMPSIZE(primcount)@ elements of type @Ptr a@.
+  -> GLsizei -- ^ @primcount@.
+  -> GLint -- ^ @modestride@.
+  -> m ()
+glMultiModeDrawElementsIBM v1 v2 v3 v4 v5 v6 = liftIO $ dyn566 ptr_glMultiModeDrawElementsIBM v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glMultiModeDrawElementsIBM #-}
+ptr_glMultiModeDrawElementsIBM :: FunPtr (Ptr GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> GLint -> IO ())
+ptr_glMultiModeDrawElementsIBM = unsafePerformIO $ getCommand "glMultiModeDrawElementsIBM"
+
+-- glMultiTexBufferEXT ---------------------------------------------------------
+
+glMultiTexBufferEXT
+  :: MonadIO m
+  => GLenum -- ^ @texunit@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLenum -- ^ @internalformat@.
+  -> GLuint -- ^ @buffer@.
+  -> m ()
+glMultiTexBufferEXT v1 v2 v3 v4 = liftIO $ dyn296 ptr_glMultiTexBufferEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glMultiTexBufferEXT #-}
+ptr_glMultiTexBufferEXT :: FunPtr (GLenum -> GLenum -> GLenum -> GLuint -> IO ())
+ptr_glMultiTexBufferEXT = unsafePerformIO $ getCommand "glMultiTexBufferEXT"
+
+-- glMultiTexCoord1bOES --------------------------------------------------------
+
+glMultiTexCoord1bOES
+  :: MonadIO m
+  => GLenum -- ^ @texture@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLbyte -- ^ @s@.
+  -> m ()
+glMultiTexCoord1bOES v1 v2 = liftIO $ dyn567 ptr_glMultiTexCoord1bOES v1 v2
+
+{-# NOINLINE ptr_glMultiTexCoord1bOES #-}
+ptr_glMultiTexCoord1bOES :: FunPtr (GLenum -> GLbyte -> IO ())
+ptr_glMultiTexCoord1bOES = unsafePerformIO $ getCommand "glMultiTexCoord1bOES"
+
+-- glMultiTexCoord1bvOES -------------------------------------------------------
+
+glMultiTexCoord1bvOES
+  :: MonadIO m
+  => GLenum -- ^ @texture@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> Ptr GLbyte -- ^ @coords@ pointing to @1@ element of type @GLbyte@.
+  -> m ()
+glMultiTexCoord1bvOES v1 v2 = liftIO $ dyn568 ptr_glMultiTexCoord1bvOES v1 v2
+
+{-# NOINLINE ptr_glMultiTexCoord1bvOES #-}
+ptr_glMultiTexCoord1bvOES :: FunPtr (GLenum -> Ptr GLbyte -> IO ())
+ptr_glMultiTexCoord1bvOES = unsafePerformIO $ getCommand "glMultiTexCoord1bvOES"
+
+-- glMultiTexCoord1d -----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>. The vector equivalent of this command is 'glMultiTexCoord1dv'.
+glMultiTexCoord1d
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLdouble -- ^ @s@ of type @CoordD@.
+  -> m ()
+glMultiTexCoord1d v1 v2 = liftIO $ dyn569 ptr_glMultiTexCoord1d v1 v2
+
+{-# NOINLINE ptr_glMultiTexCoord1d #-}
+ptr_glMultiTexCoord1d :: FunPtr (GLenum -> GLdouble -> IO ())
+ptr_glMultiTexCoord1d = unsafePerformIO $ getCommand "glMultiTexCoord1d"
+
+-- glMultiTexCoord1dARB --------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glMultiTexCoord1dv'. This command is an alias for 'glMultiTexCoord1d'.
+glMultiTexCoord1dARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLdouble -- ^ @s@ of type @CoordD@.
+  -> m ()
+glMultiTexCoord1dARB v1 v2 = liftIO $ dyn569 ptr_glMultiTexCoord1dARB v1 v2
+
+{-# NOINLINE ptr_glMultiTexCoord1dARB #-}
+ptr_glMultiTexCoord1dARB :: FunPtr (GLenum -> GLdouble -> IO ())
+ptr_glMultiTexCoord1dARB = unsafePerformIO $ getCommand "glMultiTexCoord1dARB"
+
+-- glMultiTexCoord1dv ----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>.
+glMultiTexCoord1dv
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> Ptr GLdouble -- ^ @v@ pointing to @1@ element of type @CoordD@.
+  -> m ()
+glMultiTexCoord1dv v1 v2 = liftIO $ dyn100 ptr_glMultiTexCoord1dv v1 v2
+
+{-# NOINLINE ptr_glMultiTexCoord1dv #-}
+ptr_glMultiTexCoord1dv :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+ptr_glMultiTexCoord1dv = unsafePerformIO $ getCommand "glMultiTexCoord1dv"
+
+-- glMultiTexCoord1dvARB -------------------------------------------------------
+
+-- | This command is an alias for 'glMultiTexCoord1dv'.
+glMultiTexCoord1dvARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> Ptr GLdouble -- ^ @v@ pointing to @1@ element of type @CoordD@.
+  -> m ()
+glMultiTexCoord1dvARB v1 v2 = liftIO $ dyn100 ptr_glMultiTexCoord1dvARB v1 v2
+
+{-# NOINLINE ptr_glMultiTexCoord1dvARB #-}
+ptr_glMultiTexCoord1dvARB :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+ptr_glMultiTexCoord1dvARB = unsafePerformIO $ getCommand "glMultiTexCoord1dvARB"
+
+-- glMultiTexCoord1f -----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>. The vector equivalent of this command is 'glMultiTexCoord1fv'.
+glMultiTexCoord1f
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLfloat -- ^ @s@ of type @CoordF@.
+  -> m ()
+glMultiTexCoord1f v1 v2 = liftIO $ dyn0 ptr_glMultiTexCoord1f v1 v2
+
+{-# NOINLINE ptr_glMultiTexCoord1f #-}
+ptr_glMultiTexCoord1f :: FunPtr (GLenum -> GLfloat -> IO ())
+ptr_glMultiTexCoord1f = unsafePerformIO $ getCommand "glMultiTexCoord1f"
+
+-- glMultiTexCoord1fARB --------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glMultiTexCoord1fv'. This command is an alias for 'glMultiTexCoord1f'.
+glMultiTexCoord1fARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLfloat -- ^ @s@ of type @CoordF@.
+  -> m ()
+glMultiTexCoord1fARB v1 v2 = liftIO $ dyn0 ptr_glMultiTexCoord1fARB v1 v2
+
+{-# NOINLINE ptr_glMultiTexCoord1fARB #-}
+ptr_glMultiTexCoord1fARB :: FunPtr (GLenum -> GLfloat -> IO ())
+ptr_glMultiTexCoord1fARB = unsafePerformIO $ getCommand "glMultiTexCoord1fARB"
+
+-- glMultiTexCoord1fv ----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>.
+glMultiTexCoord1fv
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> Ptr GLfloat -- ^ @v@ pointing to @1@ element of type @CoordF@.
+  -> m ()
+glMultiTexCoord1fv v1 v2 = liftIO $ dyn101 ptr_glMultiTexCoord1fv v1 v2
+
+{-# NOINLINE ptr_glMultiTexCoord1fv #-}
+ptr_glMultiTexCoord1fv :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+ptr_glMultiTexCoord1fv = unsafePerformIO $ getCommand "glMultiTexCoord1fv"
+
+-- glMultiTexCoord1fvARB -------------------------------------------------------
+
+-- | This command is an alias for 'glMultiTexCoord1fv'.
+glMultiTexCoord1fvARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> Ptr GLfloat -- ^ @v@ pointing to @1@ element of type @CoordF@.
+  -> m ()
+glMultiTexCoord1fvARB v1 v2 = liftIO $ dyn101 ptr_glMultiTexCoord1fvARB v1 v2
+
+{-# NOINLINE ptr_glMultiTexCoord1fvARB #-}
+ptr_glMultiTexCoord1fvARB :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+ptr_glMultiTexCoord1fvARB = unsafePerformIO $ getCommand "glMultiTexCoord1fvARB"
+
+-- glMultiTexCoord1hNV ---------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glMultiTexCoord1hvNV'.
+glMultiTexCoord1hNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLhalfNV -- ^ @s@ of type @Half16NV@.
+  -> m ()
+glMultiTexCoord1hNV v1 v2 = liftIO $ dyn570 ptr_glMultiTexCoord1hNV v1 v2
+
+{-# NOINLINE ptr_glMultiTexCoord1hNV #-}
+ptr_glMultiTexCoord1hNV :: FunPtr (GLenum -> GLhalfNV -> IO ())
+ptr_glMultiTexCoord1hNV = unsafePerformIO $ getCommand "glMultiTexCoord1hNV"
+
+-- glMultiTexCoord1hvNV --------------------------------------------------------
+
+glMultiTexCoord1hvNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> Ptr GLhalfNV -- ^ @v@ pointing to @1@ element of type @Half16NV@.
+  -> m ()
+glMultiTexCoord1hvNV v1 v2 = liftIO $ dyn571 ptr_glMultiTexCoord1hvNV v1 v2
+
+{-# NOINLINE ptr_glMultiTexCoord1hvNV #-}
+ptr_glMultiTexCoord1hvNV :: FunPtr (GLenum -> Ptr GLhalfNV -> IO ())
+ptr_glMultiTexCoord1hvNV = unsafePerformIO $ getCommand "glMultiTexCoord1hvNV"
+
+-- glMultiTexCoord1i -----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>. The vector equivalent of this command is 'glMultiTexCoord1iv'.
+glMultiTexCoord1i
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLint -- ^ @s@ of type @CoordI@.
+  -> m ()
+glMultiTexCoord1i v1 v2 = liftIO $ dyn58 ptr_glMultiTexCoord1i v1 v2
+
+{-# NOINLINE ptr_glMultiTexCoord1i #-}
+ptr_glMultiTexCoord1i :: FunPtr (GLenum -> GLint -> IO ())
+ptr_glMultiTexCoord1i = unsafePerformIO $ getCommand "glMultiTexCoord1i"
+
+-- glMultiTexCoord1iARB --------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glMultiTexCoord1iv'. This command is an alias for 'glMultiTexCoord1i'.
+glMultiTexCoord1iARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLint -- ^ @s@ of type @CoordI@.
+  -> m ()
+glMultiTexCoord1iARB v1 v2 = liftIO $ dyn58 ptr_glMultiTexCoord1iARB v1 v2
+
+{-# NOINLINE ptr_glMultiTexCoord1iARB #-}
+ptr_glMultiTexCoord1iARB :: FunPtr (GLenum -> GLint -> IO ())
+ptr_glMultiTexCoord1iARB = unsafePerformIO $ getCommand "glMultiTexCoord1iARB"
+
+-- glMultiTexCoord1iv ----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>.
+glMultiTexCoord1iv
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> Ptr GLint -- ^ @v@ pointing to @1@ element of type @CoordI@.
+  -> m ()
+glMultiTexCoord1iv v1 v2 = liftIO $ dyn143 ptr_glMultiTexCoord1iv v1 v2
+
+{-# NOINLINE ptr_glMultiTexCoord1iv #-}
+ptr_glMultiTexCoord1iv :: FunPtr (GLenum -> Ptr GLint -> IO ())
+ptr_glMultiTexCoord1iv = unsafePerformIO $ getCommand "glMultiTexCoord1iv"
+
+-- glMultiTexCoord1ivARB -------------------------------------------------------
+
+-- | This command is an alias for 'glMultiTexCoord1iv'.
+glMultiTexCoord1ivARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> Ptr GLint -- ^ @v@ pointing to @1@ element of type @CoordI@.
+  -> m ()
+glMultiTexCoord1ivARB v1 v2 = liftIO $ dyn143 ptr_glMultiTexCoord1ivARB v1 v2
+
+{-# NOINLINE ptr_glMultiTexCoord1ivARB #-}
+ptr_glMultiTexCoord1ivARB :: FunPtr (GLenum -> Ptr GLint -> IO ())
+ptr_glMultiTexCoord1ivARB = unsafePerformIO $ getCommand "glMultiTexCoord1ivARB"
+
+-- glMultiTexCoord1s -----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>. The vector equivalent of this command is 'glMultiTexCoord1sv'.
+glMultiTexCoord1s
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLshort -- ^ @s@ of type @CoordS@.
+  -> m ()
+glMultiTexCoord1s v1 v2 = liftIO $ dyn572 ptr_glMultiTexCoord1s v1 v2
+
+{-# NOINLINE ptr_glMultiTexCoord1s #-}
+ptr_glMultiTexCoord1s :: FunPtr (GLenum -> GLshort -> IO ())
+ptr_glMultiTexCoord1s = unsafePerformIO $ getCommand "glMultiTexCoord1s"
+
+-- glMultiTexCoord1sARB --------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glMultiTexCoord1sv'. This command is an alias for 'glMultiTexCoord1s'.
+glMultiTexCoord1sARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLshort -- ^ @s@ of type @CoordS@.
+  -> m ()
+glMultiTexCoord1sARB v1 v2 = liftIO $ dyn572 ptr_glMultiTexCoord1sARB v1 v2
+
+{-# NOINLINE ptr_glMultiTexCoord1sARB #-}
+ptr_glMultiTexCoord1sARB :: FunPtr (GLenum -> GLshort -> IO ())
+ptr_glMultiTexCoord1sARB = unsafePerformIO $ getCommand "glMultiTexCoord1sARB"
+
+-- glMultiTexCoord1sv ----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>.
+glMultiTexCoord1sv
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> Ptr GLshort -- ^ @v@ pointing to @1@ element of type @CoordS@.
+  -> m ()
+glMultiTexCoord1sv v1 v2 = liftIO $ dyn573 ptr_glMultiTexCoord1sv v1 v2
+
+{-# NOINLINE ptr_glMultiTexCoord1sv #-}
+ptr_glMultiTexCoord1sv :: FunPtr (GLenum -> Ptr GLshort -> IO ())
+ptr_glMultiTexCoord1sv = unsafePerformIO $ getCommand "glMultiTexCoord1sv"
+
+-- glMultiTexCoord1svARB -------------------------------------------------------
+
+-- | This command is an alias for 'glMultiTexCoord1sv'.
+glMultiTexCoord1svARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> Ptr GLshort -- ^ @v@ pointing to @1@ element of type @CoordS@.
+  -> m ()
+glMultiTexCoord1svARB v1 v2 = liftIO $ dyn573 ptr_glMultiTexCoord1svARB v1 v2
+
+{-# NOINLINE ptr_glMultiTexCoord1svARB #-}
+ptr_glMultiTexCoord1svARB :: FunPtr (GLenum -> Ptr GLshort -> IO ())
+ptr_glMultiTexCoord1svARB = unsafePerformIO $ getCommand "glMultiTexCoord1svARB"
+
+-- glMultiTexCoord1xOES --------------------------------------------------------
+
+glMultiTexCoord1xOES
+  :: MonadIO m
+  => GLenum -- ^ @texture@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLfixed -- ^ @s@.
+  -> m ()
+glMultiTexCoord1xOES v1 v2 = liftIO $ dyn1 ptr_glMultiTexCoord1xOES v1 v2
+
+{-# NOINLINE ptr_glMultiTexCoord1xOES #-}
+ptr_glMultiTexCoord1xOES :: FunPtr (GLenum -> GLfixed -> IO ())
+ptr_glMultiTexCoord1xOES = unsafePerformIO $ getCommand "glMultiTexCoord1xOES"
+
+-- glMultiTexCoord1xvOES -------------------------------------------------------
+
+glMultiTexCoord1xvOES
+  :: MonadIO m
+  => GLenum -- ^ @texture@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> Ptr GLfixed -- ^ @coords@ pointing to @1@ element of type @GLfixed@.
+  -> m ()
+glMultiTexCoord1xvOES v1 v2 = liftIO $ dyn102 ptr_glMultiTexCoord1xvOES v1 v2
+
+{-# NOINLINE ptr_glMultiTexCoord1xvOES #-}
+ptr_glMultiTexCoord1xvOES :: FunPtr (GLenum -> Ptr GLfixed -> IO ())
+ptr_glMultiTexCoord1xvOES = unsafePerformIO $ getCommand "glMultiTexCoord1xvOES"
+
+-- glMultiTexCoord2bOES --------------------------------------------------------
+
+glMultiTexCoord2bOES
+  :: MonadIO m
+  => GLenum -- ^ @texture@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLbyte -- ^ @s@.
+  -> GLbyte -- ^ @t@.
+  -> m ()
+glMultiTexCoord2bOES v1 v2 v3 = liftIO $ dyn574 ptr_glMultiTexCoord2bOES v1 v2 v3
+
+{-# NOINLINE ptr_glMultiTexCoord2bOES #-}
+ptr_glMultiTexCoord2bOES :: FunPtr (GLenum -> GLbyte -> GLbyte -> IO ())
+ptr_glMultiTexCoord2bOES = unsafePerformIO $ getCommand "glMultiTexCoord2bOES"
+
+-- glMultiTexCoord2bvOES -------------------------------------------------------
+
+glMultiTexCoord2bvOES
+  :: MonadIO m
+  => GLenum -- ^ @texture@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> Ptr GLbyte -- ^ @coords@ pointing to @2@ elements of type @GLbyte@.
+  -> m ()
+glMultiTexCoord2bvOES v1 v2 = liftIO $ dyn568 ptr_glMultiTexCoord2bvOES v1 v2
+
+{-# NOINLINE ptr_glMultiTexCoord2bvOES #-}
+ptr_glMultiTexCoord2bvOES :: FunPtr (GLenum -> Ptr GLbyte -> IO ())
+ptr_glMultiTexCoord2bvOES = unsafePerformIO $ getCommand "glMultiTexCoord2bvOES"
+
+-- glMultiTexCoord2d -----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>. The vector equivalent of this command is 'glMultiTexCoord2dv'.
+glMultiTexCoord2d
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLdouble -- ^ @s@ of type @CoordD@.
+  -> GLdouble -- ^ @t@ of type @CoordD@.
+  -> m ()
+glMultiTexCoord2d v1 v2 v3 = liftIO $ dyn575 ptr_glMultiTexCoord2d v1 v2 v3
+
+{-# NOINLINE ptr_glMultiTexCoord2d #-}
+ptr_glMultiTexCoord2d :: FunPtr (GLenum -> GLdouble -> GLdouble -> IO ())
+ptr_glMultiTexCoord2d = unsafePerformIO $ getCommand "glMultiTexCoord2d"
+
+-- glMultiTexCoord2dARB --------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glMultiTexCoord2dv'. This command is an alias for 'glMultiTexCoord2d'.
+glMultiTexCoord2dARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLdouble -- ^ @s@ of type @CoordD@.
+  -> GLdouble -- ^ @t@ of type @CoordD@.
+  -> m ()
+glMultiTexCoord2dARB v1 v2 v3 = liftIO $ dyn575 ptr_glMultiTexCoord2dARB v1 v2 v3
+
+{-# NOINLINE ptr_glMultiTexCoord2dARB #-}
+ptr_glMultiTexCoord2dARB :: FunPtr (GLenum -> GLdouble -> GLdouble -> IO ())
+ptr_glMultiTexCoord2dARB = unsafePerformIO $ getCommand "glMultiTexCoord2dARB"
+
+-- glMultiTexCoord2dv ----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>.
+glMultiTexCoord2dv
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> Ptr GLdouble -- ^ @v@ pointing to @2@ elements of type @CoordD@.
+  -> m ()
+glMultiTexCoord2dv v1 v2 = liftIO $ dyn100 ptr_glMultiTexCoord2dv v1 v2
+
+{-# NOINLINE ptr_glMultiTexCoord2dv #-}
+ptr_glMultiTexCoord2dv :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+ptr_glMultiTexCoord2dv = unsafePerformIO $ getCommand "glMultiTexCoord2dv"
+
+-- glMultiTexCoord2dvARB -------------------------------------------------------
+
+-- | This command is an alias for 'glMultiTexCoord2dv'.
+glMultiTexCoord2dvARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> Ptr GLdouble -- ^ @v@ pointing to @2@ elements of type @CoordD@.
+  -> m ()
+glMultiTexCoord2dvARB v1 v2 = liftIO $ dyn100 ptr_glMultiTexCoord2dvARB v1 v2
+
+{-# NOINLINE ptr_glMultiTexCoord2dvARB #-}
+ptr_glMultiTexCoord2dvARB :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+ptr_glMultiTexCoord2dvARB = unsafePerformIO $ getCommand "glMultiTexCoord2dvARB"
+
+-- glMultiTexCoord2f -----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>. The vector equivalent of this command is 'glMultiTexCoord2fv'.
+glMultiTexCoord2f
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLfloat -- ^ @s@ of type @CoordF@.
+  -> GLfloat -- ^ @t@ of type @CoordF@.
+  -> m ()
+glMultiTexCoord2f v1 v2 v3 = liftIO $ dyn576 ptr_glMultiTexCoord2f v1 v2 v3
+
+{-# NOINLINE ptr_glMultiTexCoord2f #-}
+ptr_glMultiTexCoord2f :: FunPtr (GLenum -> GLfloat -> GLfloat -> IO ())
+ptr_glMultiTexCoord2f = unsafePerformIO $ getCommand "glMultiTexCoord2f"
+
+-- glMultiTexCoord2fARB --------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glMultiTexCoord2fv'. This command is an alias for 'glMultiTexCoord2f'.
+glMultiTexCoord2fARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLfloat -- ^ @s@ of type @CoordF@.
+  -> GLfloat -- ^ @t@ of type @CoordF@.
+  -> m ()
+glMultiTexCoord2fARB v1 v2 v3 = liftIO $ dyn576 ptr_glMultiTexCoord2fARB v1 v2 v3
+
+{-# NOINLINE ptr_glMultiTexCoord2fARB #-}
+ptr_glMultiTexCoord2fARB :: FunPtr (GLenum -> GLfloat -> GLfloat -> IO ())
+ptr_glMultiTexCoord2fARB = unsafePerformIO $ getCommand "glMultiTexCoord2fARB"
+
+-- glMultiTexCoord2fv ----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>.
+glMultiTexCoord2fv
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> Ptr GLfloat -- ^ @v@ pointing to @2@ elements of type @CoordF@.
+  -> m ()
+glMultiTexCoord2fv v1 v2 = liftIO $ dyn101 ptr_glMultiTexCoord2fv v1 v2
+
+{-# NOINLINE ptr_glMultiTexCoord2fv #-}
+ptr_glMultiTexCoord2fv :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+ptr_glMultiTexCoord2fv = unsafePerformIO $ getCommand "glMultiTexCoord2fv"
+
+-- glMultiTexCoord2fvARB -------------------------------------------------------
+
+-- | This command is an alias for 'glMultiTexCoord2fv'.
+glMultiTexCoord2fvARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> Ptr GLfloat -- ^ @v@ pointing to @2@ elements of type @CoordF@.
+  -> m ()
+glMultiTexCoord2fvARB v1 v2 = liftIO $ dyn101 ptr_glMultiTexCoord2fvARB v1 v2
+
+{-# NOINLINE ptr_glMultiTexCoord2fvARB #-}
+ptr_glMultiTexCoord2fvARB :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+ptr_glMultiTexCoord2fvARB = unsafePerformIO $ getCommand "glMultiTexCoord2fvARB"
+
+-- glMultiTexCoord2hNV ---------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glMultiTexCoord2hvNV'.
+glMultiTexCoord2hNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLhalfNV -- ^ @s@ of type @Half16NV@.
+  -> GLhalfNV -- ^ @t@ of type @Half16NV@.
+  -> m ()
+glMultiTexCoord2hNV v1 v2 v3 = liftIO $ dyn577 ptr_glMultiTexCoord2hNV v1 v2 v3
+
+{-# NOINLINE ptr_glMultiTexCoord2hNV #-}
+ptr_glMultiTexCoord2hNV :: FunPtr (GLenum -> GLhalfNV -> GLhalfNV -> IO ())
+ptr_glMultiTexCoord2hNV = unsafePerformIO $ getCommand "glMultiTexCoord2hNV"
+
+-- glMultiTexCoord2hvNV --------------------------------------------------------
+
+glMultiTexCoord2hvNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> Ptr GLhalfNV -- ^ @v@ pointing to @2@ elements of type @Half16NV@.
+  -> m ()
+glMultiTexCoord2hvNV v1 v2 = liftIO $ dyn571 ptr_glMultiTexCoord2hvNV v1 v2
+
+{-# NOINLINE ptr_glMultiTexCoord2hvNV #-}
+ptr_glMultiTexCoord2hvNV :: FunPtr (GLenum -> Ptr GLhalfNV -> IO ())
+ptr_glMultiTexCoord2hvNV = unsafePerformIO $ getCommand "glMultiTexCoord2hvNV"
+
+-- glMultiTexCoord2i -----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>. The vector equivalent of this command is 'glMultiTexCoord2iv'.
+glMultiTexCoord2i
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLint -- ^ @s@ of type @CoordI@.
+  -> GLint -- ^ @t@ of type @CoordI@.
+  -> m ()
+glMultiTexCoord2i v1 v2 v3 = liftIO $ dyn275 ptr_glMultiTexCoord2i v1 v2 v3
+
+{-# NOINLINE ptr_glMultiTexCoord2i #-}
+ptr_glMultiTexCoord2i :: FunPtr (GLenum -> GLint -> GLint -> IO ())
+ptr_glMultiTexCoord2i = unsafePerformIO $ getCommand "glMultiTexCoord2i"
+
+-- glMultiTexCoord2iARB --------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glMultiTexCoord2iv'. This command is an alias for 'glMultiTexCoord2i'.
+glMultiTexCoord2iARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLint -- ^ @s@ of type @CoordI@.
+  -> GLint -- ^ @t@ of type @CoordI@.
+  -> m ()
+glMultiTexCoord2iARB v1 v2 v3 = liftIO $ dyn275 ptr_glMultiTexCoord2iARB v1 v2 v3
+
+{-# NOINLINE ptr_glMultiTexCoord2iARB #-}
+ptr_glMultiTexCoord2iARB :: FunPtr (GLenum -> GLint -> GLint -> IO ())
+ptr_glMultiTexCoord2iARB = unsafePerformIO $ getCommand "glMultiTexCoord2iARB"
+
+-- glMultiTexCoord2iv ----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>.
+glMultiTexCoord2iv
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> Ptr GLint -- ^ @v@ pointing to @2@ elements of type @CoordI@.
+  -> m ()
+glMultiTexCoord2iv v1 v2 = liftIO $ dyn143 ptr_glMultiTexCoord2iv v1 v2
+
+{-# NOINLINE ptr_glMultiTexCoord2iv #-}
+ptr_glMultiTexCoord2iv :: FunPtr (GLenum -> Ptr GLint -> IO ())
+ptr_glMultiTexCoord2iv = unsafePerformIO $ getCommand "glMultiTexCoord2iv"
+
+-- glMultiTexCoord2ivARB -------------------------------------------------------
+
+-- | This command is an alias for 'glMultiTexCoord2iv'.
+glMultiTexCoord2ivARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> Ptr GLint -- ^ @v@ pointing to @2@ elements of type @CoordI@.
+  -> m ()
+glMultiTexCoord2ivARB v1 v2 = liftIO $ dyn143 ptr_glMultiTexCoord2ivARB v1 v2
+
+{-# NOINLINE ptr_glMultiTexCoord2ivARB #-}
+ptr_glMultiTexCoord2ivARB :: FunPtr (GLenum -> Ptr GLint -> IO ())
+ptr_glMultiTexCoord2ivARB = unsafePerformIO $ getCommand "glMultiTexCoord2ivARB"
+
+-- glMultiTexCoord2s -----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>. The vector equivalent of this command is 'glMultiTexCoord2sv'.
+glMultiTexCoord2s
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLshort -- ^ @s@ of type @CoordS@.
+  -> GLshort -- ^ @t@ of type @CoordS@.
+  -> m ()
+glMultiTexCoord2s v1 v2 v3 = liftIO $ dyn578 ptr_glMultiTexCoord2s v1 v2 v3
+
+{-# NOINLINE ptr_glMultiTexCoord2s #-}
+ptr_glMultiTexCoord2s :: FunPtr (GLenum -> GLshort -> GLshort -> IO ())
+ptr_glMultiTexCoord2s = unsafePerformIO $ getCommand "glMultiTexCoord2s"
+
+-- glMultiTexCoord2sARB --------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glMultiTexCoord2sv'. This command is an alias for 'glMultiTexCoord2s'.
+glMultiTexCoord2sARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLshort -- ^ @s@ of type @CoordS@.
+  -> GLshort -- ^ @t@ of type @CoordS@.
+  -> m ()
+glMultiTexCoord2sARB v1 v2 v3 = liftIO $ dyn578 ptr_glMultiTexCoord2sARB v1 v2 v3
+
+{-# NOINLINE ptr_glMultiTexCoord2sARB #-}
+ptr_glMultiTexCoord2sARB :: FunPtr (GLenum -> GLshort -> GLshort -> IO ())
+ptr_glMultiTexCoord2sARB = unsafePerformIO $ getCommand "glMultiTexCoord2sARB"
+
+-- glMultiTexCoord2sv ----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>.
+glMultiTexCoord2sv
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> Ptr GLshort -- ^ @v@ pointing to @2@ elements of type @CoordS@.
+  -> m ()
+glMultiTexCoord2sv v1 v2 = liftIO $ dyn573 ptr_glMultiTexCoord2sv v1 v2
+
+{-# NOINLINE ptr_glMultiTexCoord2sv #-}
+ptr_glMultiTexCoord2sv :: FunPtr (GLenum -> Ptr GLshort -> IO ())
+ptr_glMultiTexCoord2sv = unsafePerformIO $ getCommand "glMultiTexCoord2sv"
+
+-- glMultiTexCoord2svARB -------------------------------------------------------
+
+-- | This command is an alias for 'glMultiTexCoord2sv'.
+glMultiTexCoord2svARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> Ptr GLshort -- ^ @v@ pointing to @2@ elements of type @CoordS@.
+  -> m ()
+glMultiTexCoord2svARB v1 v2 = liftIO $ dyn573 ptr_glMultiTexCoord2svARB v1 v2
+
+{-# NOINLINE ptr_glMultiTexCoord2svARB #-}
+ptr_glMultiTexCoord2svARB :: FunPtr (GLenum -> Ptr GLshort -> IO ())
+ptr_glMultiTexCoord2svARB = unsafePerformIO $ getCommand "glMultiTexCoord2svARB"
+
+-- glMultiTexCoord2xOES --------------------------------------------------------
+
+glMultiTexCoord2xOES
+  :: MonadIO m
+  => GLenum -- ^ @texture@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLfixed -- ^ @s@.
+  -> GLfixed -- ^ @t@.
+  -> m ()
+glMultiTexCoord2xOES v1 v2 v3 = liftIO $ dyn579 ptr_glMultiTexCoord2xOES v1 v2 v3
+
+{-# NOINLINE ptr_glMultiTexCoord2xOES #-}
+ptr_glMultiTexCoord2xOES :: FunPtr (GLenum -> GLfixed -> GLfixed -> IO ())
+ptr_glMultiTexCoord2xOES = unsafePerformIO $ getCommand "glMultiTexCoord2xOES"
+
+-- glMultiTexCoord2xvOES -------------------------------------------------------
+
+glMultiTexCoord2xvOES
+  :: MonadIO m
+  => GLenum -- ^ @texture@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> Ptr GLfixed -- ^ @coords@ pointing to @2@ elements of type @GLfixed@.
+  -> m ()
+glMultiTexCoord2xvOES v1 v2 = liftIO $ dyn102 ptr_glMultiTexCoord2xvOES v1 v2
+
+{-# NOINLINE ptr_glMultiTexCoord2xvOES #-}
+ptr_glMultiTexCoord2xvOES :: FunPtr (GLenum -> Ptr GLfixed -> IO ())
+ptr_glMultiTexCoord2xvOES = unsafePerformIO $ getCommand "glMultiTexCoord2xvOES"
+
+-- glMultiTexCoord3bOES --------------------------------------------------------
+
+glMultiTexCoord3bOES
+  :: MonadIO m
+  => GLenum -- ^ @texture@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLbyte -- ^ @s@.
+  -> GLbyte -- ^ @t@.
+  -> GLbyte -- ^ @r@.
+  -> m ()
+glMultiTexCoord3bOES v1 v2 v3 v4 = liftIO $ dyn580 ptr_glMultiTexCoord3bOES v1 v2 v3 v4
+
+{-# NOINLINE ptr_glMultiTexCoord3bOES #-}
+ptr_glMultiTexCoord3bOES :: FunPtr (GLenum -> GLbyte -> GLbyte -> GLbyte -> IO ())
+ptr_glMultiTexCoord3bOES = unsafePerformIO $ getCommand "glMultiTexCoord3bOES"
+
+-- glMultiTexCoord3bvOES -------------------------------------------------------
+
+glMultiTexCoord3bvOES
+  :: MonadIO m
+  => GLenum -- ^ @texture@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> Ptr GLbyte -- ^ @coords@ pointing to @3@ elements of type @GLbyte@.
+  -> m ()
+glMultiTexCoord3bvOES v1 v2 = liftIO $ dyn568 ptr_glMultiTexCoord3bvOES v1 v2
+
+{-# NOINLINE ptr_glMultiTexCoord3bvOES #-}
+ptr_glMultiTexCoord3bvOES :: FunPtr (GLenum -> Ptr GLbyte -> IO ())
+ptr_glMultiTexCoord3bvOES = unsafePerformIO $ getCommand "glMultiTexCoord3bvOES"
+
+-- glMultiTexCoord3d -----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>. The vector equivalent of this command is 'glMultiTexCoord3dv'.
+glMultiTexCoord3d
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLdouble -- ^ @s@ of type @CoordD@.
+  -> GLdouble -- ^ @t@ of type @CoordD@.
+  -> GLdouble -- ^ @r@ of type @CoordD@.
+  -> m ()
+glMultiTexCoord3d v1 v2 v3 v4 = liftIO $ dyn548 ptr_glMultiTexCoord3d v1 v2 v3 v4
+
+{-# NOINLINE ptr_glMultiTexCoord3d #-}
+ptr_glMultiTexCoord3d :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> IO ())
+ptr_glMultiTexCoord3d = unsafePerformIO $ getCommand "glMultiTexCoord3d"
+
+-- glMultiTexCoord3dARB --------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glMultiTexCoord3dv'. This command is an alias for 'glMultiTexCoord3d'.
+glMultiTexCoord3dARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLdouble -- ^ @s@ of type @CoordD@.
+  -> GLdouble -- ^ @t@ of type @CoordD@.
+  -> GLdouble -- ^ @r@ of type @CoordD@.
+  -> m ()
+glMultiTexCoord3dARB v1 v2 v3 v4 = liftIO $ dyn548 ptr_glMultiTexCoord3dARB v1 v2 v3 v4
+
+{-# NOINLINE ptr_glMultiTexCoord3dARB #-}
+ptr_glMultiTexCoord3dARB :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> IO ())
+ptr_glMultiTexCoord3dARB = unsafePerformIO $ getCommand "glMultiTexCoord3dARB"
+
+-- glMultiTexCoord3dv ----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>.
+glMultiTexCoord3dv
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> Ptr GLdouble -- ^ @v@ pointing to @3@ elements of type @CoordD@.
+  -> m ()
+glMultiTexCoord3dv v1 v2 = liftIO $ dyn100 ptr_glMultiTexCoord3dv v1 v2
+
+{-# NOINLINE ptr_glMultiTexCoord3dv #-}
+ptr_glMultiTexCoord3dv :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+ptr_glMultiTexCoord3dv = unsafePerformIO $ getCommand "glMultiTexCoord3dv"
+
+-- glMultiTexCoord3dvARB -------------------------------------------------------
+
+-- | This command is an alias for 'glMultiTexCoord3dv'.
+glMultiTexCoord3dvARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> Ptr GLdouble -- ^ @v@ pointing to @3@ elements of type @CoordD@.
+  -> m ()
+glMultiTexCoord3dvARB v1 v2 = liftIO $ dyn100 ptr_glMultiTexCoord3dvARB v1 v2
+
+{-# NOINLINE ptr_glMultiTexCoord3dvARB #-}
+ptr_glMultiTexCoord3dvARB :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+ptr_glMultiTexCoord3dvARB = unsafePerformIO $ getCommand "glMultiTexCoord3dvARB"
+
+-- glMultiTexCoord3f -----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>. The vector equivalent of this command is 'glMultiTexCoord3fv'.
+glMultiTexCoord3f
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLfloat -- ^ @s@ of type @CoordF@.
+  -> GLfloat -- ^ @t@ of type @CoordF@.
+  -> GLfloat -- ^ @r@ of type @CoordF@.
+  -> m ()
+glMultiTexCoord3f v1 v2 v3 v4 = liftIO $ dyn549 ptr_glMultiTexCoord3f v1 v2 v3 v4
+
+{-# NOINLINE ptr_glMultiTexCoord3f #-}
+ptr_glMultiTexCoord3f :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glMultiTexCoord3f = unsafePerformIO $ getCommand "glMultiTexCoord3f"
+
+-- glMultiTexCoord3fARB --------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glMultiTexCoord3fv'. This command is an alias for 'glMultiTexCoord3f'.
+glMultiTexCoord3fARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLfloat -- ^ @s@ of type @CoordF@.
+  -> GLfloat -- ^ @t@ of type @CoordF@.
+  -> GLfloat -- ^ @r@ of type @CoordF@.
+  -> m ()
+glMultiTexCoord3fARB v1 v2 v3 v4 = liftIO $ dyn549 ptr_glMultiTexCoord3fARB v1 v2 v3 v4
+
+{-# NOINLINE ptr_glMultiTexCoord3fARB #-}
+ptr_glMultiTexCoord3fARB :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glMultiTexCoord3fARB = unsafePerformIO $ getCommand "glMultiTexCoord3fARB"
+
+-- glMultiTexCoord3fv ----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>.
+glMultiTexCoord3fv
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> Ptr GLfloat -- ^ @v@ pointing to @3@ elements of type @CoordF@.
+  -> m ()
+glMultiTexCoord3fv v1 v2 = liftIO $ dyn101 ptr_glMultiTexCoord3fv v1 v2
+
+{-# NOINLINE ptr_glMultiTexCoord3fv #-}
+ptr_glMultiTexCoord3fv :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+ptr_glMultiTexCoord3fv = unsafePerformIO $ getCommand "glMultiTexCoord3fv"
+
+-- glMultiTexCoord3fvARB -------------------------------------------------------
+
+-- | This command is an alias for 'glMultiTexCoord3fv'.
+glMultiTexCoord3fvARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> Ptr GLfloat -- ^ @v@ pointing to @3@ elements of type @CoordF@.
+  -> m ()
+glMultiTexCoord3fvARB v1 v2 = liftIO $ dyn101 ptr_glMultiTexCoord3fvARB v1 v2
+
+{-# NOINLINE ptr_glMultiTexCoord3fvARB #-}
+ptr_glMultiTexCoord3fvARB :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+ptr_glMultiTexCoord3fvARB = unsafePerformIO $ getCommand "glMultiTexCoord3fvARB"
+
+-- glMultiTexCoord3hNV ---------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glMultiTexCoord3hvNV'.
+glMultiTexCoord3hNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLhalfNV -- ^ @s@ of type @Half16NV@.
+  -> GLhalfNV -- ^ @t@ of type @Half16NV@.
+  -> GLhalfNV -- ^ @r@ of type @Half16NV@.
+  -> m ()
+glMultiTexCoord3hNV v1 v2 v3 v4 = liftIO $ dyn581 ptr_glMultiTexCoord3hNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glMultiTexCoord3hNV #-}
+ptr_glMultiTexCoord3hNV :: FunPtr (GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
+ptr_glMultiTexCoord3hNV = unsafePerformIO $ getCommand "glMultiTexCoord3hNV"
+
+-- glMultiTexCoord3hvNV --------------------------------------------------------
+
+glMultiTexCoord3hvNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> Ptr GLhalfNV -- ^ @v@ pointing to @3@ elements of type @Half16NV@.
+  -> m ()
+glMultiTexCoord3hvNV v1 v2 = liftIO $ dyn571 ptr_glMultiTexCoord3hvNV v1 v2
+
+{-# NOINLINE ptr_glMultiTexCoord3hvNV #-}
+ptr_glMultiTexCoord3hvNV :: FunPtr (GLenum -> Ptr GLhalfNV -> IO ())
+ptr_glMultiTexCoord3hvNV = unsafePerformIO $ getCommand "glMultiTexCoord3hvNV"
+
+-- glMultiTexCoord3i -----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>. The vector equivalent of this command is 'glMultiTexCoord3iv'.
+glMultiTexCoord3i
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLint -- ^ @s@ of type @CoordI@.
+  -> GLint -- ^ @t@ of type @CoordI@.
+  -> GLint -- ^ @r@ of type @CoordI@.
+  -> m ()
+glMultiTexCoord3i v1 v2 v3 v4 = liftIO $ dyn582 ptr_glMultiTexCoord3i v1 v2 v3 v4
+
+{-# NOINLINE ptr_glMultiTexCoord3i #-}
+ptr_glMultiTexCoord3i :: FunPtr (GLenum -> GLint -> GLint -> GLint -> IO ())
+ptr_glMultiTexCoord3i = unsafePerformIO $ getCommand "glMultiTexCoord3i"
+
+-- glMultiTexCoord3iARB --------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glMultiTexCoord3iv'. This command is an alias for 'glMultiTexCoord3i'.
+glMultiTexCoord3iARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLint -- ^ @s@ of type @CoordI@.
+  -> GLint -- ^ @t@ of type @CoordI@.
+  -> GLint -- ^ @r@ of type @CoordI@.
+  -> m ()
+glMultiTexCoord3iARB v1 v2 v3 v4 = liftIO $ dyn582 ptr_glMultiTexCoord3iARB v1 v2 v3 v4
+
+{-# NOINLINE ptr_glMultiTexCoord3iARB #-}
+ptr_glMultiTexCoord3iARB :: FunPtr (GLenum -> GLint -> GLint -> GLint -> IO ())
+ptr_glMultiTexCoord3iARB = unsafePerformIO $ getCommand "glMultiTexCoord3iARB"
+
+-- glMultiTexCoord3iv ----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>.
+glMultiTexCoord3iv
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> Ptr GLint -- ^ @v@ pointing to @3@ elements of type @CoordI@.
+  -> m ()
+glMultiTexCoord3iv v1 v2 = liftIO $ dyn143 ptr_glMultiTexCoord3iv v1 v2
+
+{-# NOINLINE ptr_glMultiTexCoord3iv #-}
+ptr_glMultiTexCoord3iv :: FunPtr (GLenum -> Ptr GLint -> IO ())
+ptr_glMultiTexCoord3iv = unsafePerformIO $ getCommand "glMultiTexCoord3iv"
+
+-- glMultiTexCoord3ivARB -------------------------------------------------------
+
+-- | This command is an alias for 'glMultiTexCoord3iv'.
+glMultiTexCoord3ivARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> Ptr GLint -- ^ @v@ pointing to @3@ elements of type @CoordI@.
+  -> m ()
+glMultiTexCoord3ivARB v1 v2 = liftIO $ dyn143 ptr_glMultiTexCoord3ivARB v1 v2
+
+{-# NOINLINE ptr_glMultiTexCoord3ivARB #-}
+ptr_glMultiTexCoord3ivARB :: FunPtr (GLenum -> Ptr GLint -> IO ())
+ptr_glMultiTexCoord3ivARB = unsafePerformIO $ getCommand "glMultiTexCoord3ivARB"
+
+-- glMultiTexCoord3s -----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>. The vector equivalent of this command is 'glMultiTexCoord3sv'.
+glMultiTexCoord3s
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLshort -- ^ @s@ of type @CoordS@.
+  -> GLshort -- ^ @t@ of type @CoordS@.
+  -> GLshort -- ^ @r@ of type @CoordS@.
+  -> m ()
+glMultiTexCoord3s v1 v2 v3 v4 = liftIO $ dyn583 ptr_glMultiTexCoord3s v1 v2 v3 v4
+
+{-# NOINLINE ptr_glMultiTexCoord3s #-}
+ptr_glMultiTexCoord3s :: FunPtr (GLenum -> GLshort -> GLshort -> GLshort -> IO ())
+ptr_glMultiTexCoord3s = unsafePerformIO $ getCommand "glMultiTexCoord3s"
+
+-- glMultiTexCoord3sARB --------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glMultiTexCoord3sv'. This command is an alias for 'glMultiTexCoord3s'.
+glMultiTexCoord3sARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLshort -- ^ @s@ of type @CoordS@.
+  -> GLshort -- ^ @t@ of type @CoordS@.
+  -> GLshort -- ^ @r@ of type @CoordS@.
+  -> m ()
+glMultiTexCoord3sARB v1 v2 v3 v4 = liftIO $ dyn583 ptr_glMultiTexCoord3sARB v1 v2 v3 v4
+
+{-# NOINLINE ptr_glMultiTexCoord3sARB #-}
+ptr_glMultiTexCoord3sARB :: FunPtr (GLenum -> GLshort -> GLshort -> GLshort -> IO ())
+ptr_glMultiTexCoord3sARB = unsafePerformIO $ getCommand "glMultiTexCoord3sARB"
+
+-- glMultiTexCoord3sv ----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>.
+glMultiTexCoord3sv
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> Ptr GLshort -- ^ @v@ pointing to @3@ elements of type @CoordS@.
+  -> m ()
+glMultiTexCoord3sv v1 v2 = liftIO $ dyn573 ptr_glMultiTexCoord3sv v1 v2
+
+{-# NOINLINE ptr_glMultiTexCoord3sv #-}
+ptr_glMultiTexCoord3sv :: FunPtr (GLenum -> Ptr GLshort -> IO ())
+ptr_glMultiTexCoord3sv = unsafePerformIO $ getCommand "glMultiTexCoord3sv"
+
+-- glMultiTexCoord3svARB -------------------------------------------------------
+
+-- | This command is an alias for 'glMultiTexCoord3sv'.
+glMultiTexCoord3svARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> Ptr GLshort -- ^ @v@ pointing to @3@ elements of type @CoordS@.
+  -> m ()
+glMultiTexCoord3svARB v1 v2 = liftIO $ dyn573 ptr_glMultiTexCoord3svARB v1 v2
+
+{-# NOINLINE ptr_glMultiTexCoord3svARB #-}
+ptr_glMultiTexCoord3svARB :: FunPtr (GLenum -> Ptr GLshort -> IO ())
+ptr_glMultiTexCoord3svARB = unsafePerformIO $ getCommand "glMultiTexCoord3svARB"
+
+-- glMultiTexCoord3xOES --------------------------------------------------------
+
+glMultiTexCoord3xOES
+  :: MonadIO m
+  => GLenum -- ^ @texture@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLfixed -- ^ @s@.
+  -> GLfixed -- ^ @t@.
+  -> GLfixed -- ^ @r@.
+  -> m ()
+glMultiTexCoord3xOES v1 v2 v3 v4 = liftIO $ dyn584 ptr_glMultiTexCoord3xOES v1 v2 v3 v4
+
+{-# NOINLINE ptr_glMultiTexCoord3xOES #-}
+ptr_glMultiTexCoord3xOES :: FunPtr (GLenum -> GLfixed -> GLfixed -> GLfixed -> IO ())
+ptr_glMultiTexCoord3xOES = unsafePerformIO $ getCommand "glMultiTexCoord3xOES"
+
diff --git a/src/Graphics/GL/Functions/F18.hs b/src/Graphics/GL/Functions/F18.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Functions/F18.hs
@@ -0,0 +1,1698 @@
+{-# OPTIONS_HADDOCK hide #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Functions.F18
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- Raw functions from the
+-- <http://www.opengl.org/registry/ OpenGL registry>.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Functions.F18 (
+  glMultiTexCoord3xvOES,
+  glMultiTexCoord4bOES,
+  glMultiTexCoord4bvOES,
+  glMultiTexCoord4d,
+  glMultiTexCoord4dARB,
+  glMultiTexCoord4dv,
+  glMultiTexCoord4dvARB,
+  glMultiTexCoord4f,
+  glMultiTexCoord4fARB,
+  glMultiTexCoord4fv,
+  glMultiTexCoord4fvARB,
+  glMultiTexCoord4hNV,
+  glMultiTexCoord4hvNV,
+  glMultiTexCoord4i,
+  glMultiTexCoord4iARB,
+  glMultiTexCoord4iv,
+  glMultiTexCoord4ivARB,
+  glMultiTexCoord4s,
+  glMultiTexCoord4sARB,
+  glMultiTexCoord4sv,
+  glMultiTexCoord4svARB,
+  glMultiTexCoord4x,
+  glMultiTexCoord4xOES,
+  glMultiTexCoord4xvOES,
+  glMultiTexCoordP1ui,
+  glMultiTexCoordP1uiv,
+  glMultiTexCoordP2ui,
+  glMultiTexCoordP2uiv,
+  glMultiTexCoordP3ui,
+  glMultiTexCoordP3uiv,
+  glMultiTexCoordP4ui,
+  glMultiTexCoordP4uiv,
+  glMultiTexCoordPointerEXT,
+  glMultiTexEnvfEXT,
+  glMultiTexEnvfvEXT,
+  glMultiTexEnviEXT,
+  glMultiTexEnvivEXT,
+  glMultiTexGendEXT,
+  glMultiTexGendvEXT,
+  glMultiTexGenfEXT,
+  glMultiTexGenfvEXT,
+  glMultiTexGeniEXT,
+  glMultiTexGenivEXT,
+  glMultiTexImage1DEXT,
+  glMultiTexImage2DEXT,
+  glMultiTexImage3DEXT,
+  glMultiTexParameterIivEXT,
+  glMultiTexParameterIuivEXT,
+  glMultiTexParameterfEXT,
+  glMultiTexParameterfvEXT,
+  glMultiTexParameteriEXT,
+  glMultiTexParameterivEXT,
+  glMultiTexRenderbufferEXT,
+  glMultiTexSubImage1DEXT,
+  glMultiTexSubImage2DEXT,
+  glMultiTexSubImage3DEXT,
+  glMulticastBarrierNV,
+  glMulticastBlitFramebufferNV,
+  glMulticastBufferSubDataNV,
+  glMulticastCopyBufferSubDataNV,
+  glMulticastCopyImageSubDataNV,
+  glMulticastFramebufferSampleLocationsfvNV,
+  glMulticastGetQueryObjecti64vNV,
+  glMulticastGetQueryObjectivNV,
+  glMulticastGetQueryObjectui64vNV,
+  glMulticastGetQueryObjectuivNV,
+  glMulticastScissorArrayvNVX,
+  glMulticastViewportArrayvNVX,
+  glMulticastViewportPositionWScaleNVX,
+  glMulticastWaitSyncNV,
+  glNamedBufferAttachMemoryNV,
+  glNamedBufferData,
+  glNamedBufferDataEXT,
+  glNamedBufferPageCommitmentARB,
+  glNamedBufferPageCommitmentEXT,
+  glNamedBufferStorage,
+  glNamedBufferStorageEXT,
+  glNamedBufferStorageExternalEXT,
+  glNamedBufferStorageMemEXT,
+  glNamedBufferSubData,
+  glNamedBufferSubDataEXT,
+  glNamedCopyBufferSubDataEXT,
+  glNamedFramebufferDrawBuffer,
+  glNamedFramebufferDrawBuffers,
+  glNamedFramebufferParameteri,
+  glNamedFramebufferParameteriEXT,
+  glNamedFramebufferReadBuffer,
+  glNamedFramebufferRenderbuffer,
+  glNamedFramebufferRenderbufferEXT,
+  glNamedFramebufferSampleLocationsfvARB,
+  glNamedFramebufferSampleLocationsfvNV,
+  glNamedFramebufferSamplePositionsfvAMD,
+  glNamedFramebufferTexture,
+  glNamedFramebufferTexture1DEXT,
+  glNamedFramebufferTexture2DEXT,
+  glNamedFramebufferTexture3DEXT,
+  glNamedFramebufferTextureEXT,
+  glNamedFramebufferTextureFaceEXT,
+  glNamedFramebufferTextureLayer,
+  glNamedFramebufferTextureLayerEXT
+) where
+
+import Control.Monad.IO.Class ( MonadIO(..) )
+import Foreign.Ptr
+import Graphics.GL.Foreign
+import Graphics.GL.Types
+import System.IO.Unsafe ( unsafePerformIO )
+
+-- glMultiTexCoord3xvOES -------------------------------------------------------
+
+glMultiTexCoord3xvOES
+  :: MonadIO m
+  => GLenum -- ^ @texture@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> Ptr GLfixed -- ^ @coords@ pointing to @3@ elements of type @GLfixed@.
+  -> m ()
+glMultiTexCoord3xvOES v1 v2 = liftIO $ dyn102 ptr_glMultiTexCoord3xvOES v1 v2
+
+{-# NOINLINE ptr_glMultiTexCoord3xvOES #-}
+ptr_glMultiTexCoord3xvOES :: FunPtr (GLenum -> Ptr GLfixed -> IO ())
+ptr_glMultiTexCoord3xvOES = unsafePerformIO $ getCommand "glMultiTexCoord3xvOES"
+
+-- glMultiTexCoord4bOES --------------------------------------------------------
+
+glMultiTexCoord4bOES
+  :: MonadIO m
+  => GLenum -- ^ @texture@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLbyte -- ^ @s@.
+  -> GLbyte -- ^ @t@.
+  -> GLbyte -- ^ @r@.
+  -> GLbyte -- ^ @q@.
+  -> m ()
+glMultiTexCoord4bOES v1 v2 v3 v4 v5 = liftIO $ dyn585 ptr_glMultiTexCoord4bOES v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glMultiTexCoord4bOES #-}
+ptr_glMultiTexCoord4bOES :: FunPtr (GLenum -> GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ())
+ptr_glMultiTexCoord4bOES = unsafePerformIO $ getCommand "glMultiTexCoord4bOES"
+
+-- glMultiTexCoord4bvOES -------------------------------------------------------
+
+glMultiTexCoord4bvOES
+  :: MonadIO m
+  => GLenum -- ^ @texture@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> Ptr GLbyte -- ^ @coords@ pointing to @4@ elements of type @GLbyte@.
+  -> m ()
+glMultiTexCoord4bvOES v1 v2 = liftIO $ dyn568 ptr_glMultiTexCoord4bvOES v1 v2
+
+{-# NOINLINE ptr_glMultiTexCoord4bvOES #-}
+ptr_glMultiTexCoord4bvOES :: FunPtr (GLenum -> Ptr GLbyte -> IO ())
+ptr_glMultiTexCoord4bvOES = unsafePerformIO $ getCommand "glMultiTexCoord4bvOES"
+
+-- glMultiTexCoord4d -----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>. The vector equivalent of this command is 'glMultiTexCoord4dv'.
+glMultiTexCoord4d
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLdouble -- ^ @s@ of type @CoordD@.
+  -> GLdouble -- ^ @t@ of type @CoordD@.
+  -> GLdouble -- ^ @r@ of type @CoordD@.
+  -> GLdouble -- ^ @q@ of type @CoordD@.
+  -> m ()
+glMultiTexCoord4d v1 v2 v3 v4 v5 = liftIO $ dyn546 ptr_glMultiTexCoord4d v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glMultiTexCoord4d #-}
+ptr_glMultiTexCoord4d :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+ptr_glMultiTexCoord4d = unsafePerformIO $ getCommand "glMultiTexCoord4d"
+
+-- glMultiTexCoord4dARB --------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glMultiTexCoord4dv'. This command is an alias for 'glMultiTexCoord4d'.
+glMultiTexCoord4dARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLdouble -- ^ @s@ of type @CoordD@.
+  -> GLdouble -- ^ @t@ of type @CoordD@.
+  -> GLdouble -- ^ @r@ of type @CoordD@.
+  -> GLdouble -- ^ @q@ of type @CoordD@.
+  -> m ()
+glMultiTexCoord4dARB v1 v2 v3 v4 v5 = liftIO $ dyn546 ptr_glMultiTexCoord4dARB v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glMultiTexCoord4dARB #-}
+ptr_glMultiTexCoord4dARB :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+ptr_glMultiTexCoord4dARB = unsafePerformIO $ getCommand "glMultiTexCoord4dARB"
+
+-- glMultiTexCoord4dv ----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>.
+glMultiTexCoord4dv
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> Ptr GLdouble -- ^ @v@ pointing to @4@ elements of type @CoordD@.
+  -> m ()
+glMultiTexCoord4dv v1 v2 = liftIO $ dyn100 ptr_glMultiTexCoord4dv v1 v2
+
+{-# NOINLINE ptr_glMultiTexCoord4dv #-}
+ptr_glMultiTexCoord4dv :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+ptr_glMultiTexCoord4dv = unsafePerformIO $ getCommand "glMultiTexCoord4dv"
+
+-- glMultiTexCoord4dvARB -------------------------------------------------------
+
+-- | This command is an alias for 'glMultiTexCoord4dv'.
+glMultiTexCoord4dvARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> Ptr GLdouble -- ^ @v@ pointing to @4@ elements of type @CoordD@.
+  -> m ()
+glMultiTexCoord4dvARB v1 v2 = liftIO $ dyn100 ptr_glMultiTexCoord4dvARB v1 v2
+
+{-# NOINLINE ptr_glMultiTexCoord4dvARB #-}
+ptr_glMultiTexCoord4dvARB :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+ptr_glMultiTexCoord4dvARB = unsafePerformIO $ getCommand "glMultiTexCoord4dvARB"
+
+-- glMultiTexCoord4f -----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>. The vector equivalent of this command is 'glMultiTexCoord4fv'.
+glMultiTexCoord4f
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLfloat -- ^ @s@ of type @CoordF@.
+  -> GLfloat -- ^ @t@ of type @CoordF@.
+  -> GLfloat -- ^ @r@ of type @CoordF@.
+  -> GLfloat -- ^ @q@ of type @CoordF@.
+  -> m ()
+glMultiTexCoord4f v1 v2 v3 v4 v5 = liftIO $ dyn547 ptr_glMultiTexCoord4f v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glMultiTexCoord4f #-}
+ptr_glMultiTexCoord4f :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glMultiTexCoord4f = unsafePerformIO $ getCommand "glMultiTexCoord4f"
+
+-- glMultiTexCoord4fARB --------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glMultiTexCoord4fv'. This command is an alias for 'glMultiTexCoord4f'.
+glMultiTexCoord4fARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLfloat -- ^ @s@ of type @CoordF@.
+  -> GLfloat -- ^ @t@ of type @CoordF@.
+  -> GLfloat -- ^ @r@ of type @CoordF@.
+  -> GLfloat -- ^ @q@ of type @CoordF@.
+  -> m ()
+glMultiTexCoord4fARB v1 v2 v3 v4 v5 = liftIO $ dyn547 ptr_glMultiTexCoord4fARB v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glMultiTexCoord4fARB #-}
+ptr_glMultiTexCoord4fARB :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glMultiTexCoord4fARB = unsafePerformIO $ getCommand "glMultiTexCoord4fARB"
+
+-- glMultiTexCoord4fv ----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>.
+glMultiTexCoord4fv
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> Ptr GLfloat -- ^ @v@ pointing to @4@ elements of type @CoordF@.
+  -> m ()
+glMultiTexCoord4fv v1 v2 = liftIO $ dyn101 ptr_glMultiTexCoord4fv v1 v2
+
+{-# NOINLINE ptr_glMultiTexCoord4fv #-}
+ptr_glMultiTexCoord4fv :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+ptr_glMultiTexCoord4fv = unsafePerformIO $ getCommand "glMultiTexCoord4fv"
+
+-- glMultiTexCoord4fvARB -------------------------------------------------------
+
+-- | This command is an alias for 'glMultiTexCoord4fv'.
+glMultiTexCoord4fvARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> Ptr GLfloat -- ^ @v@ pointing to @4@ elements of type @CoordF@.
+  -> m ()
+glMultiTexCoord4fvARB v1 v2 = liftIO $ dyn101 ptr_glMultiTexCoord4fvARB v1 v2
+
+{-# NOINLINE ptr_glMultiTexCoord4fvARB #-}
+ptr_glMultiTexCoord4fvARB :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+ptr_glMultiTexCoord4fvARB = unsafePerformIO $ getCommand "glMultiTexCoord4fvARB"
+
+-- glMultiTexCoord4hNV ---------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glMultiTexCoord4hvNV'.
+glMultiTexCoord4hNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLhalfNV -- ^ @s@ of type @Half16NV@.
+  -> GLhalfNV -- ^ @t@ of type @Half16NV@.
+  -> GLhalfNV -- ^ @r@ of type @Half16NV@.
+  -> GLhalfNV -- ^ @q@ of type @Half16NV@.
+  -> m ()
+glMultiTexCoord4hNV v1 v2 v3 v4 v5 = liftIO $ dyn586 ptr_glMultiTexCoord4hNV v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glMultiTexCoord4hNV #-}
+ptr_glMultiTexCoord4hNV :: FunPtr (GLenum -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
+ptr_glMultiTexCoord4hNV = unsafePerformIO $ getCommand "glMultiTexCoord4hNV"
+
+-- glMultiTexCoord4hvNV --------------------------------------------------------
+
+glMultiTexCoord4hvNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> Ptr GLhalfNV -- ^ @v@ pointing to @4@ elements of type @Half16NV@.
+  -> m ()
+glMultiTexCoord4hvNV v1 v2 = liftIO $ dyn571 ptr_glMultiTexCoord4hvNV v1 v2
+
+{-# NOINLINE ptr_glMultiTexCoord4hvNV #-}
+ptr_glMultiTexCoord4hvNV :: FunPtr (GLenum -> Ptr GLhalfNV -> IO ())
+ptr_glMultiTexCoord4hvNV = unsafePerformIO $ getCommand "glMultiTexCoord4hvNV"
+
+-- glMultiTexCoord4i -----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>. The vector equivalent of this command is 'glMultiTexCoord4iv'.
+glMultiTexCoord4i
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLint -- ^ @s@ of type @CoordI@.
+  -> GLint -- ^ @t@ of type @CoordI@.
+  -> GLint -- ^ @r@ of type @CoordI@.
+  -> GLint -- ^ @q@ of type @CoordI@.
+  -> m ()
+glMultiTexCoord4i v1 v2 v3 v4 v5 = liftIO $ dyn276 ptr_glMultiTexCoord4i v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glMultiTexCoord4i #-}
+ptr_glMultiTexCoord4i :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> IO ())
+ptr_glMultiTexCoord4i = unsafePerformIO $ getCommand "glMultiTexCoord4i"
+
+-- glMultiTexCoord4iARB --------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glMultiTexCoord4iv'. This command is an alias for 'glMultiTexCoord4i'.
+glMultiTexCoord4iARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLint -- ^ @s@ of type @CoordI@.
+  -> GLint -- ^ @t@ of type @CoordI@.
+  -> GLint -- ^ @r@ of type @CoordI@.
+  -> GLint -- ^ @q@ of type @CoordI@.
+  -> m ()
+glMultiTexCoord4iARB v1 v2 v3 v4 v5 = liftIO $ dyn276 ptr_glMultiTexCoord4iARB v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glMultiTexCoord4iARB #-}
+ptr_glMultiTexCoord4iARB :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> IO ())
+ptr_glMultiTexCoord4iARB = unsafePerformIO $ getCommand "glMultiTexCoord4iARB"
+
+-- glMultiTexCoord4iv ----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>.
+glMultiTexCoord4iv
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> Ptr GLint -- ^ @v@ pointing to @4@ elements of type @CoordI@.
+  -> m ()
+glMultiTexCoord4iv v1 v2 = liftIO $ dyn143 ptr_glMultiTexCoord4iv v1 v2
+
+{-# NOINLINE ptr_glMultiTexCoord4iv #-}
+ptr_glMultiTexCoord4iv :: FunPtr (GLenum -> Ptr GLint -> IO ())
+ptr_glMultiTexCoord4iv = unsafePerformIO $ getCommand "glMultiTexCoord4iv"
+
+-- glMultiTexCoord4ivARB -------------------------------------------------------
+
+-- | This command is an alias for 'glMultiTexCoord4iv'.
+glMultiTexCoord4ivARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> Ptr GLint -- ^ @v@ pointing to @4@ elements of type @CoordI@.
+  -> m ()
+glMultiTexCoord4ivARB v1 v2 = liftIO $ dyn143 ptr_glMultiTexCoord4ivARB v1 v2
+
+{-# NOINLINE ptr_glMultiTexCoord4ivARB #-}
+ptr_glMultiTexCoord4ivARB :: FunPtr (GLenum -> Ptr GLint -> IO ())
+ptr_glMultiTexCoord4ivARB = unsafePerformIO $ getCommand "glMultiTexCoord4ivARB"
+
+-- glMultiTexCoord4s -----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>. The vector equivalent of this command is 'glMultiTexCoord4sv'.
+glMultiTexCoord4s
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLshort -- ^ @s@ of type @CoordS@.
+  -> GLshort -- ^ @t@ of type @CoordS@.
+  -> GLshort -- ^ @r@ of type @CoordS@.
+  -> GLshort -- ^ @q@ of type @CoordS@.
+  -> m ()
+glMultiTexCoord4s v1 v2 v3 v4 v5 = liftIO $ dyn587 ptr_glMultiTexCoord4s v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glMultiTexCoord4s #-}
+ptr_glMultiTexCoord4s :: FunPtr (GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> IO ())
+ptr_glMultiTexCoord4s = unsafePerformIO $ getCommand "glMultiTexCoord4s"
+
+-- glMultiTexCoord4sARB --------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glMultiTexCoord4sv'. This command is an alias for 'glMultiTexCoord4s'.
+glMultiTexCoord4sARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLshort -- ^ @s@ of type @CoordS@.
+  -> GLshort -- ^ @t@ of type @CoordS@.
+  -> GLshort -- ^ @r@ of type @CoordS@.
+  -> GLshort -- ^ @q@ of type @CoordS@.
+  -> m ()
+glMultiTexCoord4sARB v1 v2 v3 v4 v5 = liftIO $ dyn587 ptr_glMultiTexCoord4sARB v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glMultiTexCoord4sARB #-}
+ptr_glMultiTexCoord4sARB :: FunPtr (GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> IO ())
+ptr_glMultiTexCoord4sARB = unsafePerformIO $ getCommand "glMultiTexCoord4sARB"
+
+-- glMultiTexCoord4sv ----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord.xml OpenGL 2.x>.
+glMultiTexCoord4sv
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> Ptr GLshort -- ^ @v@ pointing to @4@ elements of type @CoordS@.
+  -> m ()
+glMultiTexCoord4sv v1 v2 = liftIO $ dyn573 ptr_glMultiTexCoord4sv v1 v2
+
+{-# NOINLINE ptr_glMultiTexCoord4sv #-}
+ptr_glMultiTexCoord4sv :: FunPtr (GLenum -> Ptr GLshort -> IO ())
+ptr_glMultiTexCoord4sv = unsafePerformIO $ getCommand "glMultiTexCoord4sv"
+
+-- glMultiTexCoord4svARB -------------------------------------------------------
+
+-- | This command is an alias for 'glMultiTexCoord4sv'.
+glMultiTexCoord4svARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> Ptr GLshort -- ^ @v@ pointing to @4@ elements of type @CoordS@.
+  -> m ()
+glMultiTexCoord4svARB v1 v2 = liftIO $ dyn573 ptr_glMultiTexCoord4svARB v1 v2
+
+{-# NOINLINE ptr_glMultiTexCoord4svARB #-}
+ptr_glMultiTexCoord4svARB :: FunPtr (GLenum -> Ptr GLshort -> IO ())
+ptr_glMultiTexCoord4svARB = unsafePerformIO $ getCommand "glMultiTexCoord4svARB"
+
+-- glMultiTexCoord4x -----------------------------------------------------------
+
+glMultiTexCoord4x
+  :: MonadIO m
+  => GLenum -- ^ @texture@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLfixed -- ^ @s@.
+  -> GLfixed -- ^ @t@.
+  -> GLfixed -- ^ @r@.
+  -> GLfixed -- ^ @q@.
+  -> m ()
+glMultiTexCoord4x v1 v2 v3 v4 v5 = liftIO $ dyn588 ptr_glMultiTexCoord4x v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glMultiTexCoord4x #-}
+ptr_glMultiTexCoord4x :: FunPtr (GLenum -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
+ptr_glMultiTexCoord4x = unsafePerformIO $ getCommand "glMultiTexCoord4x"
+
+-- glMultiTexCoord4xOES --------------------------------------------------------
+
+glMultiTexCoord4xOES
+  :: MonadIO m
+  => GLenum -- ^ @texture@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLfixed -- ^ @s@.
+  -> GLfixed -- ^ @t@.
+  -> GLfixed -- ^ @r@.
+  -> GLfixed -- ^ @q@.
+  -> m ()
+glMultiTexCoord4xOES v1 v2 v3 v4 v5 = liftIO $ dyn588 ptr_glMultiTexCoord4xOES v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glMultiTexCoord4xOES #-}
+ptr_glMultiTexCoord4xOES :: FunPtr (GLenum -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
+ptr_glMultiTexCoord4xOES = unsafePerformIO $ getCommand "glMultiTexCoord4xOES"
+
+-- glMultiTexCoord4xvOES -------------------------------------------------------
+
+glMultiTexCoord4xvOES
+  :: MonadIO m
+  => GLenum -- ^ @texture@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> Ptr GLfixed -- ^ @coords@ pointing to @4@ elements of type @GLfixed@.
+  -> m ()
+glMultiTexCoord4xvOES v1 v2 = liftIO $ dyn102 ptr_glMultiTexCoord4xvOES v1 v2
+
+{-# NOINLINE ptr_glMultiTexCoord4xvOES #-}
+ptr_glMultiTexCoord4xvOES :: FunPtr (GLenum -> Ptr GLfixed -> IO ())
+ptr_glMultiTexCoord4xvOES = unsafePerformIO $ getCommand "glMultiTexCoord4xvOES"
+
+-- glMultiTexCoordP1ui ---------------------------------------------------------
+
+glMultiTexCoordP1ui
+  :: MonadIO m
+  => GLenum -- ^ @texture@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @type@ of type [TexCoordPointerType](Graphics-GL-Groups.html#TexCoordPointerType).
+  -> GLuint -- ^ @coords@.
+  -> m ()
+glMultiTexCoordP1ui v1 v2 v3 = liftIO $ dyn32 ptr_glMultiTexCoordP1ui v1 v2 v3
+
+{-# NOINLINE ptr_glMultiTexCoordP1ui #-}
+ptr_glMultiTexCoordP1ui :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
+ptr_glMultiTexCoordP1ui = unsafePerformIO $ getCommand "glMultiTexCoordP1ui"
+
+-- glMultiTexCoordP1uiv --------------------------------------------------------
+
+glMultiTexCoordP1uiv
+  :: MonadIO m
+  => GLenum -- ^ @texture@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @type@ of type [TexCoordPointerType](Graphics-GL-Groups.html#TexCoordPointerType).
+  -> Ptr GLuint -- ^ @coords@ pointing to @1@ element of type @GLuint@.
+  -> m ()
+glMultiTexCoordP1uiv v1 v2 v3 = liftIO $ dyn432 ptr_glMultiTexCoordP1uiv v1 v2 v3
+
+{-# NOINLINE ptr_glMultiTexCoordP1uiv #-}
+ptr_glMultiTexCoordP1uiv :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
+ptr_glMultiTexCoordP1uiv = unsafePerformIO $ getCommand "glMultiTexCoordP1uiv"
+
+-- glMultiTexCoordP2ui ---------------------------------------------------------
+
+glMultiTexCoordP2ui
+  :: MonadIO m
+  => GLenum -- ^ @texture@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @type@ of type [TexCoordPointerType](Graphics-GL-Groups.html#TexCoordPointerType).
+  -> GLuint -- ^ @coords@.
+  -> m ()
+glMultiTexCoordP2ui v1 v2 v3 = liftIO $ dyn32 ptr_glMultiTexCoordP2ui v1 v2 v3
+
+{-# NOINLINE ptr_glMultiTexCoordP2ui #-}
+ptr_glMultiTexCoordP2ui :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
+ptr_glMultiTexCoordP2ui = unsafePerformIO $ getCommand "glMultiTexCoordP2ui"
+
+-- glMultiTexCoordP2uiv --------------------------------------------------------
+
+glMultiTexCoordP2uiv
+  :: MonadIO m
+  => GLenum -- ^ @texture@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @type@ of type [TexCoordPointerType](Graphics-GL-Groups.html#TexCoordPointerType).
+  -> Ptr GLuint -- ^ @coords@ pointing to @1@ element of type @GLuint@.
+  -> m ()
+glMultiTexCoordP2uiv v1 v2 v3 = liftIO $ dyn432 ptr_glMultiTexCoordP2uiv v1 v2 v3
+
+{-# NOINLINE ptr_glMultiTexCoordP2uiv #-}
+ptr_glMultiTexCoordP2uiv :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
+ptr_glMultiTexCoordP2uiv = unsafePerformIO $ getCommand "glMultiTexCoordP2uiv"
+
+-- glMultiTexCoordP3ui ---------------------------------------------------------
+
+glMultiTexCoordP3ui
+  :: MonadIO m
+  => GLenum -- ^ @texture@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @type@ of type [TexCoordPointerType](Graphics-GL-Groups.html#TexCoordPointerType).
+  -> GLuint -- ^ @coords@.
+  -> m ()
+glMultiTexCoordP3ui v1 v2 v3 = liftIO $ dyn32 ptr_glMultiTexCoordP3ui v1 v2 v3
+
+{-# NOINLINE ptr_glMultiTexCoordP3ui #-}
+ptr_glMultiTexCoordP3ui :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
+ptr_glMultiTexCoordP3ui = unsafePerformIO $ getCommand "glMultiTexCoordP3ui"
+
+-- glMultiTexCoordP3uiv --------------------------------------------------------
+
+glMultiTexCoordP3uiv
+  :: MonadIO m
+  => GLenum -- ^ @texture@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @type@ of type [TexCoordPointerType](Graphics-GL-Groups.html#TexCoordPointerType).
+  -> Ptr GLuint -- ^ @coords@ pointing to @1@ element of type @GLuint@.
+  -> m ()
+glMultiTexCoordP3uiv v1 v2 v3 = liftIO $ dyn432 ptr_glMultiTexCoordP3uiv v1 v2 v3
+
+{-# NOINLINE ptr_glMultiTexCoordP3uiv #-}
+ptr_glMultiTexCoordP3uiv :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
+ptr_glMultiTexCoordP3uiv = unsafePerformIO $ getCommand "glMultiTexCoordP3uiv"
+
+-- glMultiTexCoordP4ui ---------------------------------------------------------
+
+glMultiTexCoordP4ui
+  :: MonadIO m
+  => GLenum -- ^ @texture@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @type@ of type [TexCoordPointerType](Graphics-GL-Groups.html#TexCoordPointerType).
+  -> GLuint -- ^ @coords@.
+  -> m ()
+glMultiTexCoordP4ui v1 v2 v3 = liftIO $ dyn32 ptr_glMultiTexCoordP4ui v1 v2 v3
+
+{-# NOINLINE ptr_glMultiTexCoordP4ui #-}
+ptr_glMultiTexCoordP4ui :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
+ptr_glMultiTexCoordP4ui = unsafePerformIO $ getCommand "glMultiTexCoordP4ui"
+
+-- glMultiTexCoordP4uiv --------------------------------------------------------
+
+glMultiTexCoordP4uiv
+  :: MonadIO m
+  => GLenum -- ^ @texture@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @type@ of type [TexCoordPointerType](Graphics-GL-Groups.html#TexCoordPointerType).
+  -> Ptr GLuint -- ^ @coords@ pointing to @1@ element of type @GLuint@.
+  -> m ()
+glMultiTexCoordP4uiv v1 v2 v3 = liftIO $ dyn432 ptr_glMultiTexCoordP4uiv v1 v2 v3
+
+{-# NOINLINE ptr_glMultiTexCoordP4uiv #-}
+ptr_glMultiTexCoordP4uiv :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
+ptr_glMultiTexCoordP4uiv = unsafePerformIO $ getCommand "glMultiTexCoordP4uiv"
+
+-- glMultiTexCoordPointerEXT ---------------------------------------------------
+
+glMultiTexCoordPointerEXT
+  :: MonadIO m
+  => GLenum -- ^ @texunit@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLint -- ^ @size@.
+  -> GLenum -- ^ @type@ of type [TexCoordPointerType](Graphics-GL-Groups.html#TexCoordPointerType).
+  -> GLsizei -- ^ @stride@.
+  -> Ptr a -- ^ @pointer@ pointing to @COMPSIZE(size,type,stride)@ elements of type @a@.
+  -> m ()
+glMultiTexCoordPointerEXT v1 v2 v3 v4 v5 = liftIO $ dyn589 ptr_glMultiTexCoordPointerEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glMultiTexCoordPointerEXT #-}
+ptr_glMultiTexCoordPointerEXT :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glMultiTexCoordPointerEXT = unsafePerformIO $ getCommand "glMultiTexCoordPointerEXT"
+
+-- glMultiTexEnvfEXT -----------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glMultiTexEnvfvEXT'.
+glMultiTexEnvfEXT
+  :: MonadIO m
+  => GLenum -- ^ @texunit@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @target@ of type [TextureEnvTarget](Graphics-GL-Groups.html#TextureEnvTarget).
+  -> GLenum -- ^ @pname@ of type [TextureEnvParameter](Graphics-GL-Groups.html#TextureEnvParameter).
+  -> GLfloat -- ^ @param@ of type @CheckedFloat32@.
+  -> m ()
+glMultiTexEnvfEXT v1 v2 v3 v4 = liftIO $ dyn590 ptr_glMultiTexEnvfEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glMultiTexEnvfEXT #-}
+ptr_glMultiTexEnvfEXT :: FunPtr (GLenum -> GLenum -> GLenum -> GLfloat -> IO ())
+ptr_glMultiTexEnvfEXT = unsafePerformIO $ getCommand "glMultiTexEnvfEXT"
+
+-- glMultiTexEnvfvEXT ----------------------------------------------------------
+
+glMultiTexEnvfvEXT
+  :: MonadIO m
+  => GLenum -- ^ @texunit@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @target@ of type [TextureEnvTarget](Graphics-GL-Groups.html#TextureEnvTarget).
+  -> GLenum -- ^ @pname@ of type [TextureEnvParameter](Graphics-GL-Groups.html#TextureEnvParameter).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @CheckedFloat32@.
+  -> m ()
+glMultiTexEnvfvEXT v1 v2 v3 v4 = liftIO $ dyn334 ptr_glMultiTexEnvfvEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glMultiTexEnvfvEXT #-}
+ptr_glMultiTexEnvfvEXT :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glMultiTexEnvfvEXT = unsafePerformIO $ getCommand "glMultiTexEnvfvEXT"
+
+-- glMultiTexEnviEXT -----------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glMultiTexEnvivEXT'.
+glMultiTexEnviEXT
+  :: MonadIO m
+  => GLenum -- ^ @texunit@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @target@ of type [TextureEnvTarget](Graphics-GL-Groups.html#TextureEnvTarget).
+  -> GLenum -- ^ @pname@ of type [TextureEnvParameter](Graphics-GL-Groups.html#TextureEnvParameter).
+  -> GLint -- ^ @param@ of type @CheckedInt32@.
+  -> m ()
+glMultiTexEnviEXT v1 v2 v3 v4 = liftIO $ dyn591 ptr_glMultiTexEnviEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glMultiTexEnviEXT #-}
+ptr_glMultiTexEnviEXT :: FunPtr (GLenum -> GLenum -> GLenum -> GLint -> IO ())
+ptr_glMultiTexEnviEXT = unsafePerformIO $ getCommand "glMultiTexEnviEXT"
+
+-- glMultiTexEnvivEXT ----------------------------------------------------------
+
+glMultiTexEnvivEXT
+  :: MonadIO m
+  => GLenum -- ^ @texunit@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @target@ of type [TextureEnvTarget](Graphics-GL-Groups.html#TextureEnvTarget).
+  -> GLenum -- ^ @pname@ of type [TextureEnvParameter](Graphics-GL-Groups.html#TextureEnvParameter).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @CheckedInt32@.
+  -> m ()
+glMultiTexEnvivEXT v1 v2 v3 v4 = liftIO $ dyn335 ptr_glMultiTexEnvivEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glMultiTexEnvivEXT #-}
+ptr_glMultiTexEnvivEXT :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glMultiTexEnvivEXT = unsafePerformIO $ getCommand "glMultiTexEnvivEXT"
+
+-- glMultiTexGendEXT -----------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glMultiTexGendvEXT'.
+glMultiTexGendEXT
+  :: MonadIO m
+  => GLenum -- ^ @texunit@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @coord@ of type [TextureCoordName](Graphics-GL-Groups.html#TextureCoordName).
+  -> GLenum -- ^ @pname@ of type [TextureGenParameter](Graphics-GL-Groups.html#TextureGenParameter).
+  -> GLdouble -- ^ @param@.
+  -> m ()
+glMultiTexGendEXT v1 v2 v3 v4 = liftIO $ dyn592 ptr_glMultiTexGendEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glMultiTexGendEXT #-}
+ptr_glMultiTexGendEXT :: FunPtr (GLenum -> GLenum -> GLenum -> GLdouble -> IO ())
+ptr_glMultiTexGendEXT = unsafePerformIO $ getCommand "glMultiTexGendEXT"
+
+-- glMultiTexGendvEXT ----------------------------------------------------------
+
+glMultiTexGendvEXT
+  :: MonadIO m
+  => GLenum -- ^ @texunit@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @coord@ of type [TextureCoordName](Graphics-GL-Groups.html#TextureCoordName).
+  -> GLenum -- ^ @pname@ of type [TextureGenParameter](Graphics-GL-Groups.html#TextureGenParameter).
+  -> Ptr GLdouble -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLdouble@.
+  -> m ()
+glMultiTexGendvEXT v1 v2 v3 v4 = liftIO $ dyn370 ptr_glMultiTexGendvEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glMultiTexGendvEXT #-}
+ptr_glMultiTexGendvEXT :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLdouble -> IO ())
+ptr_glMultiTexGendvEXT = unsafePerformIO $ getCommand "glMultiTexGendvEXT"
+
+-- glMultiTexGenfEXT -----------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glMultiTexGenfvEXT'.
+glMultiTexGenfEXT
+  :: MonadIO m
+  => GLenum -- ^ @texunit@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @coord@ of type [TextureCoordName](Graphics-GL-Groups.html#TextureCoordName).
+  -> GLenum -- ^ @pname@ of type [TextureGenParameter](Graphics-GL-Groups.html#TextureGenParameter).
+  -> GLfloat -- ^ @param@ of type @CheckedFloat32@.
+  -> m ()
+glMultiTexGenfEXT v1 v2 v3 v4 = liftIO $ dyn590 ptr_glMultiTexGenfEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glMultiTexGenfEXT #-}
+ptr_glMultiTexGenfEXT :: FunPtr (GLenum -> GLenum -> GLenum -> GLfloat -> IO ())
+ptr_glMultiTexGenfEXT = unsafePerformIO $ getCommand "glMultiTexGenfEXT"
+
+-- glMultiTexGenfvEXT ----------------------------------------------------------
+
+glMultiTexGenfvEXT
+  :: MonadIO m
+  => GLenum -- ^ @texunit@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @coord@ of type [TextureCoordName](Graphics-GL-Groups.html#TextureCoordName).
+  -> GLenum -- ^ @pname@ of type [TextureGenParameter](Graphics-GL-Groups.html#TextureGenParameter).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @CheckedFloat32@.
+  -> m ()
+glMultiTexGenfvEXT v1 v2 v3 v4 = liftIO $ dyn334 ptr_glMultiTexGenfvEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glMultiTexGenfvEXT #-}
+ptr_glMultiTexGenfvEXT :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glMultiTexGenfvEXT = unsafePerformIO $ getCommand "glMultiTexGenfvEXT"
+
+-- glMultiTexGeniEXT -----------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glMultiTexGenivEXT'.
+glMultiTexGeniEXT
+  :: MonadIO m
+  => GLenum -- ^ @texunit@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @coord@ of type [TextureCoordName](Graphics-GL-Groups.html#TextureCoordName).
+  -> GLenum -- ^ @pname@ of type [TextureGenParameter](Graphics-GL-Groups.html#TextureGenParameter).
+  -> GLint -- ^ @param@ of type @CheckedInt32@.
+  -> m ()
+glMultiTexGeniEXT v1 v2 v3 v4 = liftIO $ dyn591 ptr_glMultiTexGeniEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glMultiTexGeniEXT #-}
+ptr_glMultiTexGeniEXT :: FunPtr (GLenum -> GLenum -> GLenum -> GLint -> IO ())
+ptr_glMultiTexGeniEXT = unsafePerformIO $ getCommand "glMultiTexGeniEXT"
+
+-- glMultiTexGenivEXT ----------------------------------------------------------
+
+glMultiTexGenivEXT
+  :: MonadIO m
+  => GLenum -- ^ @texunit@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @coord@ of type [TextureCoordName](Graphics-GL-Groups.html#TextureCoordName).
+  -> GLenum -- ^ @pname@ of type [TextureGenParameter](Graphics-GL-Groups.html#TextureGenParameter).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @CheckedInt32@.
+  -> m ()
+glMultiTexGenivEXT v1 v2 v3 v4 = liftIO $ dyn335 ptr_glMultiTexGenivEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glMultiTexGenivEXT #-}
+ptr_glMultiTexGenivEXT :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glMultiTexGenivEXT = unsafePerformIO $ getCommand "glMultiTexGenivEXT"
+
+-- glMultiTexImage1DEXT --------------------------------------------------------
+
+glMultiTexImage1DEXT
+  :: MonadIO m
+  => GLenum -- ^ @texunit@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLint -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLint -- ^ @border@ of type @CheckedInt32@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @pixels@ pointing to @COMPSIZE(format,type,width)@ elements of type @a@.
+  -> m ()
+glMultiTexImage1DEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO $ dyn593 ptr_glMultiTexImage1DEXT v1 v2 v3 v4 v5 v6 v7 v8 v9
+
+{-# NOINLINE ptr_glMultiTexImage1DEXT #-}
+ptr_glMultiTexImage1DEXT :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glMultiTexImage1DEXT = unsafePerformIO $ getCommand "glMultiTexImage1DEXT"
+
+-- glMultiTexImage2DEXT --------------------------------------------------------
+
+glMultiTexImage2DEXT
+  :: MonadIO m
+  => GLenum -- ^ @texunit@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLint -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLint -- ^ @border@ of type @CheckedInt32@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @pixels@ pointing to @COMPSIZE(format,type,width,height)@ elements of type @a@.
+  -> m ()
+glMultiTexImage2DEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 = liftIO $ dyn594 ptr_glMultiTexImage2DEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 v10
+
+{-# NOINLINE ptr_glMultiTexImage2DEXT #-}
+ptr_glMultiTexImage2DEXT :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glMultiTexImage2DEXT = unsafePerformIO $ getCommand "glMultiTexImage2DEXT"
+
+-- glMultiTexImage3DEXT --------------------------------------------------------
+
+glMultiTexImage3DEXT
+  :: MonadIO m
+  => GLenum -- ^ @texunit@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLint -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLsizei -- ^ @depth@.
+  -> GLint -- ^ @border@ of type @CheckedInt32@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @pixels@ pointing to @COMPSIZE(format,type,width,height,depth)@ elements of type @a@.
+  -> m ()
+glMultiTexImage3DEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 = liftIO $ dyn595 ptr_glMultiTexImage3DEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11
+
+{-# NOINLINE ptr_glMultiTexImage3DEXT #-}
+ptr_glMultiTexImage3DEXT :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glMultiTexImage3DEXT = unsafePerformIO $ getCommand "glMultiTexImage3DEXT"
+
+-- glMultiTexParameterIivEXT ---------------------------------------------------
+
+glMultiTexParameterIivEXT
+  :: MonadIO m
+  => GLenum -- ^ @texunit@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLenum -- ^ @pname@ of type [TextureParameterName](Graphics-GL-Groups.html#TextureParameterName).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @CheckedInt32@.
+  -> m ()
+glMultiTexParameterIivEXT v1 v2 v3 v4 = liftIO $ dyn335 ptr_glMultiTexParameterIivEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glMultiTexParameterIivEXT #-}
+ptr_glMultiTexParameterIivEXT :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glMultiTexParameterIivEXT = unsafePerformIO $ getCommand "glMultiTexParameterIivEXT"
+
+-- glMultiTexParameterIuivEXT --------------------------------------------------
+
+glMultiTexParameterIuivEXT
+  :: MonadIO m
+  => GLenum -- ^ @texunit@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLenum -- ^ @pname@ of type [TextureParameterName](Graphics-GL-Groups.html#TextureParameterName).
+  -> Ptr GLuint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLuint@.
+  -> m ()
+glMultiTexParameterIuivEXT v1 v2 v3 v4 = liftIO $ dyn374 ptr_glMultiTexParameterIuivEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glMultiTexParameterIuivEXT #-}
+ptr_glMultiTexParameterIuivEXT :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLuint -> IO ())
+ptr_glMultiTexParameterIuivEXT = unsafePerformIO $ getCommand "glMultiTexParameterIuivEXT"
+
+-- glMultiTexParameterfEXT -----------------------------------------------------
+
+-- | The vector equivalent of this command is 'glMultiTexParameterfvEXT'.
+glMultiTexParameterfEXT
+  :: MonadIO m
+  => GLenum -- ^ @texunit@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLenum -- ^ @pname@ of type [TextureParameterName](Graphics-GL-Groups.html#TextureParameterName).
+  -> GLfloat -- ^ @param@ of type @CheckedFloat32@.
+  -> m ()
+glMultiTexParameterfEXT v1 v2 v3 v4 = liftIO $ dyn590 ptr_glMultiTexParameterfEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glMultiTexParameterfEXT #-}
+ptr_glMultiTexParameterfEXT :: FunPtr (GLenum -> GLenum -> GLenum -> GLfloat -> IO ())
+ptr_glMultiTexParameterfEXT = unsafePerformIO $ getCommand "glMultiTexParameterfEXT"
+
+-- glMultiTexParameterfvEXT ----------------------------------------------------
+
+glMultiTexParameterfvEXT
+  :: MonadIO m
+  => GLenum -- ^ @texunit@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLenum -- ^ @pname@ of type [TextureParameterName](Graphics-GL-Groups.html#TextureParameterName).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @CheckedFloat32@.
+  -> m ()
+glMultiTexParameterfvEXT v1 v2 v3 v4 = liftIO $ dyn334 ptr_glMultiTexParameterfvEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glMultiTexParameterfvEXT #-}
+ptr_glMultiTexParameterfvEXT :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glMultiTexParameterfvEXT = unsafePerformIO $ getCommand "glMultiTexParameterfvEXT"
+
+-- glMultiTexParameteriEXT -----------------------------------------------------
+
+-- | The vector equivalent of this command is 'glMultiTexParameterivEXT'.
+glMultiTexParameteriEXT
+  :: MonadIO m
+  => GLenum -- ^ @texunit@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLenum -- ^ @pname@ of type [TextureParameterName](Graphics-GL-Groups.html#TextureParameterName).
+  -> GLint -- ^ @param@ of type @CheckedInt32@.
+  -> m ()
+glMultiTexParameteriEXT v1 v2 v3 v4 = liftIO $ dyn591 ptr_glMultiTexParameteriEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glMultiTexParameteriEXT #-}
+ptr_glMultiTexParameteriEXT :: FunPtr (GLenum -> GLenum -> GLenum -> GLint -> IO ())
+ptr_glMultiTexParameteriEXT = unsafePerformIO $ getCommand "glMultiTexParameteriEXT"
+
+-- glMultiTexParameterivEXT ----------------------------------------------------
+
+glMultiTexParameterivEXT
+  :: MonadIO m
+  => GLenum -- ^ @texunit@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLenum -- ^ @pname@ of type [TextureParameterName](Graphics-GL-Groups.html#TextureParameterName).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @CheckedInt32@.
+  -> m ()
+glMultiTexParameterivEXT v1 v2 v3 v4 = liftIO $ dyn335 ptr_glMultiTexParameterivEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glMultiTexParameterivEXT #-}
+ptr_glMultiTexParameterivEXT :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glMultiTexParameterivEXT = unsafePerformIO $ getCommand "glMultiTexParameterivEXT"
+
+-- glMultiTexRenderbufferEXT ---------------------------------------------------
+
+glMultiTexRenderbufferEXT
+  :: MonadIO m
+  => GLenum -- ^ @texunit@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLuint -- ^ @renderbuffer@.
+  -> m ()
+glMultiTexRenderbufferEXT v1 v2 v3 = liftIO $ dyn32 ptr_glMultiTexRenderbufferEXT v1 v2 v3
+
+{-# NOINLINE ptr_glMultiTexRenderbufferEXT #-}
+ptr_glMultiTexRenderbufferEXT :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
+ptr_glMultiTexRenderbufferEXT = unsafePerformIO $ getCommand "glMultiTexRenderbufferEXT"
+
+-- glMultiTexSubImage1DEXT -----------------------------------------------------
+
+glMultiTexSubImage1DEXT
+  :: MonadIO m
+  => GLenum -- ^ @texunit@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLint -- ^ @xoffset@ of type @CheckedInt32@.
+  -> GLsizei -- ^ @width@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @pixels@ pointing to @COMPSIZE(format,type,width)@ elements of type @a@.
+  -> m ()
+glMultiTexSubImage1DEXT v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn596 ptr_glMultiTexSubImage1DEXT v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glMultiTexSubImage1DEXT #-}
+ptr_glMultiTexSubImage1DEXT :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glMultiTexSubImage1DEXT = unsafePerformIO $ getCommand "glMultiTexSubImage1DEXT"
+
+-- glMultiTexSubImage2DEXT -----------------------------------------------------
+
+glMultiTexSubImage2DEXT
+  :: MonadIO m
+  => GLenum -- ^ @texunit@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLint -- ^ @xoffset@ of type @CheckedInt32@.
+  -> GLint -- ^ @yoffset@ of type @CheckedInt32@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @pixels@ pointing to @COMPSIZE(format,type,width,height)@ elements of type @a@.
+  -> m ()
+glMultiTexSubImage2DEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 = liftIO $ dyn597 ptr_glMultiTexSubImage2DEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 v10
+
+{-# NOINLINE ptr_glMultiTexSubImage2DEXT #-}
+ptr_glMultiTexSubImage2DEXT :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glMultiTexSubImage2DEXT = unsafePerformIO $ getCommand "glMultiTexSubImage2DEXT"
+
+-- glMultiTexSubImage3DEXT -----------------------------------------------------
+
+glMultiTexSubImage3DEXT
+  :: MonadIO m
+  => GLenum -- ^ @texunit@ of type [TextureUnit](Graphics-GL-Groups.html#TextureUnit).
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLint -- ^ @xoffset@ of type @CheckedInt32@.
+  -> GLint -- ^ @yoffset@ of type @CheckedInt32@.
+  -> GLint -- ^ @zoffset@ of type @CheckedInt32@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLsizei -- ^ @depth@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @pixels@ pointing to @COMPSIZE(format,type,width,height,depth)@ elements of type @a@.
+  -> m ()
+glMultiTexSubImage3DEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 = liftIO $ dyn598 ptr_glMultiTexSubImage3DEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12
+
+{-# NOINLINE ptr_glMultiTexSubImage3DEXT #-}
+ptr_glMultiTexSubImage3DEXT :: FunPtr (GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glMultiTexSubImage3DEXT = unsafePerformIO $ getCommand "glMultiTexSubImage3DEXT"
+
+-- glMulticastBarrierNV --------------------------------------------------------
+
+glMulticastBarrierNV
+  :: MonadIO m
+  => m ()
+glMulticastBarrierNV = liftIO $ dyn11 ptr_glMulticastBarrierNV
+
+{-# NOINLINE ptr_glMulticastBarrierNV #-}
+ptr_glMulticastBarrierNV :: FunPtr (IO ())
+ptr_glMulticastBarrierNV = unsafePerformIO $ getCommand "glMulticastBarrierNV"
+
+-- glMulticastBlitFramebufferNV ------------------------------------------------
+
+glMulticastBlitFramebufferNV
+  :: MonadIO m
+  => GLuint -- ^ @srcGpu@.
+  -> GLuint -- ^ @dstGpu@.
+  -> GLint -- ^ @srcX0@.
+  -> GLint -- ^ @srcY0@.
+  -> GLint -- ^ @srcX1@.
+  -> GLint -- ^ @srcY1@.
+  -> GLint -- ^ @dstX0@.
+  -> GLint -- ^ @dstY0@.
+  -> GLint -- ^ @dstX1@.
+  -> GLint -- ^ @dstY1@.
+  -> GLbitfield -- ^ @mask@ of type [ClearBufferMask](Graphics-GL-Groups.html#ClearBufferMask).
+  -> GLenum -- ^ @filter@.
+  -> m ()
+glMulticastBlitFramebufferNV v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 = liftIO $ dyn60 ptr_glMulticastBlitFramebufferNV v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12
+
+{-# NOINLINE ptr_glMulticastBlitFramebufferNV #-}
+ptr_glMulticastBlitFramebufferNV :: FunPtr (GLuint -> GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> IO ())
+ptr_glMulticastBlitFramebufferNV = unsafePerformIO $ getCommand "glMulticastBlitFramebufferNV"
+
+-- glMulticastBufferSubDataNV --------------------------------------------------
+
+glMulticastBufferSubDataNV
+  :: MonadIO m
+  => GLbitfield -- ^ @gpuMask@.
+  -> GLuint -- ^ @buffer@.
+  -> GLintptr -- ^ @offset@.
+  -> GLsizeiptr -- ^ @size@.
+  -> Ptr a -- ^ @data@.
+  -> m ()
+glMulticastBufferSubDataNV v1 v2 v3 v4 v5 = liftIO $ dyn510 ptr_glMulticastBufferSubDataNV v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glMulticastBufferSubDataNV #-}
+ptr_glMulticastBufferSubDataNV :: FunPtr (GLbitfield -> GLuint -> GLintptr -> GLsizeiptr -> Ptr a -> IO ())
+ptr_glMulticastBufferSubDataNV = unsafePerformIO $ getCommand "glMulticastBufferSubDataNV"
+
+-- glMulticastCopyBufferSubDataNV ----------------------------------------------
+
+glMulticastCopyBufferSubDataNV
+  :: MonadIO m
+  => GLuint -- ^ @readGpu@.
+  -> GLbitfield -- ^ @writeGpuMask@.
+  -> GLuint -- ^ @readBuffer@.
+  -> GLuint -- ^ @writeBuffer@.
+  -> GLintptr -- ^ @readOffset@.
+  -> GLintptr -- ^ @writeOffset@.
+  -> GLsizeiptr -- ^ @size@.
+  -> m ()
+glMulticastCopyBufferSubDataNV v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn599 ptr_glMulticastCopyBufferSubDataNV v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glMulticastCopyBufferSubDataNV #-}
+ptr_glMulticastCopyBufferSubDataNV :: FunPtr (GLuint -> GLbitfield -> GLuint -> GLuint -> GLintptr -> GLintptr -> GLsizeiptr -> IO ())
+ptr_glMulticastCopyBufferSubDataNV = unsafePerformIO $ getCommand "glMulticastCopyBufferSubDataNV"
+
+-- glMulticastCopyImageSubDataNV -----------------------------------------------
+
+glMulticastCopyImageSubDataNV
+  :: MonadIO m
+  => GLuint -- ^ @srcGpu@.
+  -> GLbitfield -- ^ @dstGpuMask@.
+  -> GLuint -- ^ @srcName@.
+  -> GLenum -- ^ @srcTarget@.
+  -> GLint -- ^ @srcLevel@.
+  -> GLint -- ^ @srcX@.
+  -> GLint -- ^ @srcY@.
+  -> GLint -- ^ @srcZ@.
+  -> GLuint -- ^ @dstName@.
+  -> GLenum -- ^ @dstTarget@.
+  -> GLint -- ^ @dstLevel@.
+  -> GLint -- ^ @dstX@.
+  -> GLint -- ^ @dstY@.
+  -> GLint -- ^ @dstZ@.
+  -> GLsizei -- ^ @srcWidth@.
+  -> GLsizei -- ^ @srcHeight@.
+  -> GLsizei -- ^ @srcDepth@.
+  -> m ()
+glMulticastCopyImageSubDataNV v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 = liftIO $ dyn509 ptr_glMulticastCopyImageSubDataNV v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17
+
+{-# NOINLINE ptr_glMulticastCopyImageSubDataNV #-}
+ptr_glMulticastCopyImageSubDataNV :: FunPtr (GLuint -> GLbitfield -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> IO ())
+ptr_glMulticastCopyImageSubDataNV = unsafePerformIO $ getCommand "glMulticastCopyImageSubDataNV"
+
+-- glMulticastFramebufferSampleLocationsfvNV -----------------------------------
+
+glMulticastFramebufferSampleLocationsfvNV
+  :: MonadIO m
+  => GLuint -- ^ @gpu@.
+  -> GLuint -- ^ @framebuffer@.
+  -> GLuint -- ^ @start@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLfloat -- ^ @v@.
+  -> m ()
+glMulticastFramebufferSampleLocationsfvNV v1 v2 v3 v4 v5 = liftIO $ dyn600 ptr_glMulticastFramebufferSampleLocationsfvNV v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glMulticastFramebufferSampleLocationsfvNV #-}
+ptr_glMulticastFramebufferSampleLocationsfvNV :: FunPtr (GLuint -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+ptr_glMulticastFramebufferSampleLocationsfvNV = unsafePerformIO $ getCommand "glMulticastFramebufferSampleLocationsfvNV"
+
+-- glMulticastGetQueryObjecti64vNV ---------------------------------------------
+
+glMulticastGetQueryObjecti64vNV
+  :: MonadIO m
+  => GLuint -- ^ @gpu@.
+  -> GLuint -- ^ @id@.
+  -> GLenum -- ^ @pname@.
+  -> Ptr GLint64 -- ^ @params@.
+  -> m ()
+glMulticastGetQueryObjecti64vNV v1 v2 v3 v4 = liftIO $ dyn461 ptr_glMulticastGetQueryObjecti64vNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glMulticastGetQueryObjecti64vNV #-}
+ptr_glMulticastGetQueryObjecti64vNV :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint64 -> IO ())
+ptr_glMulticastGetQueryObjecti64vNV = unsafePerformIO $ getCommand "glMulticastGetQueryObjecti64vNV"
+
+-- glMulticastGetQueryObjectivNV -----------------------------------------------
+
+glMulticastGetQueryObjectivNV
+  :: MonadIO m
+  => GLuint -- ^ @gpu@.
+  -> GLuint -- ^ @id@.
+  -> GLenum -- ^ @pname@.
+  -> Ptr GLint -- ^ @params@.
+  -> m ()
+glMulticastGetQueryObjectivNV v1 v2 v3 v4 = liftIO $ dyn314 ptr_glMulticastGetQueryObjectivNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glMulticastGetQueryObjectivNV #-}
+ptr_glMulticastGetQueryObjectivNV :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glMulticastGetQueryObjectivNV = unsafePerformIO $ getCommand "glMulticastGetQueryObjectivNV"
+
+-- glMulticastGetQueryObjectui64vNV --------------------------------------------
+
+glMulticastGetQueryObjectui64vNV
+  :: MonadIO m
+  => GLuint -- ^ @gpu@.
+  -> GLuint -- ^ @id@.
+  -> GLenum -- ^ @pname@.
+  -> Ptr GLuint64 -- ^ @params@.
+  -> m ()
+glMulticastGetQueryObjectui64vNV v1 v2 v3 v4 = liftIO $ dyn601 ptr_glMulticastGetQueryObjectui64vNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glMulticastGetQueryObjectui64vNV #-}
+ptr_glMulticastGetQueryObjectui64vNV :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLuint64 -> IO ())
+ptr_glMulticastGetQueryObjectui64vNV = unsafePerformIO $ getCommand "glMulticastGetQueryObjectui64vNV"
+
+-- glMulticastGetQueryObjectuivNV ----------------------------------------------
+
+glMulticastGetQueryObjectuivNV
+  :: MonadIO m
+  => GLuint -- ^ @gpu@.
+  -> GLuint -- ^ @id@.
+  -> GLenum -- ^ @pname@.
+  -> Ptr GLuint -- ^ @params@.
+  -> m ()
+glMulticastGetQueryObjectuivNV v1 v2 v3 v4 = liftIO $ dyn602 ptr_glMulticastGetQueryObjectuivNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glMulticastGetQueryObjectuivNV #-}
+ptr_glMulticastGetQueryObjectuivNV :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLuint -> IO ())
+ptr_glMulticastGetQueryObjectuivNV = unsafePerformIO $ getCommand "glMulticastGetQueryObjectuivNV"
+
+-- glMulticastScissorArrayvNVX -------------------------------------------------
+
+glMulticastScissorArrayvNVX
+  :: MonadIO m
+  => GLuint -- ^ @gpu@.
+  -> GLuint -- ^ @first@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLint -- ^ @v@ pointing to @COMPSIZE(count)@ elements of type @GLint@.
+  -> m ()
+glMulticastScissorArrayvNVX v1 v2 v3 v4 = liftIO $ dyn603 ptr_glMulticastScissorArrayvNVX v1 v2 v3 v4
+
+{-# NOINLINE ptr_glMulticastScissorArrayvNVX #-}
+ptr_glMulticastScissorArrayvNVX :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLint -> IO ())
+ptr_glMulticastScissorArrayvNVX = unsafePerformIO $ getCommand "glMulticastScissorArrayvNVX"
+
+-- glMulticastViewportArrayvNVX ------------------------------------------------
+
+glMulticastViewportArrayvNVX
+  :: MonadIO m
+  => GLuint -- ^ @gpu@.
+  -> GLuint -- ^ @first@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLfloat -- ^ @v@ pointing to @COMPSIZE(count)@ elements of type @GLfloat@.
+  -> m ()
+glMulticastViewportArrayvNVX v1 v2 v3 v4 = liftIO $ dyn604 ptr_glMulticastViewportArrayvNVX v1 v2 v3 v4
+
+{-# NOINLINE ptr_glMulticastViewportArrayvNVX #-}
+ptr_glMulticastViewportArrayvNVX :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+ptr_glMulticastViewportArrayvNVX = unsafePerformIO $ getCommand "glMulticastViewportArrayvNVX"
+
+-- glMulticastViewportPositionWScaleNVX ----------------------------------------
+
+glMulticastViewportPositionWScaleNVX
+  :: MonadIO m
+  => GLuint -- ^ @gpu@.
+  -> GLuint -- ^ @index@.
+  -> GLfloat -- ^ @xcoeff@.
+  -> GLfloat -- ^ @ycoeff@.
+  -> m ()
+glMulticastViewportPositionWScaleNVX v1 v2 v3 v4 = liftIO $ dyn605 ptr_glMulticastViewportPositionWScaleNVX v1 v2 v3 v4
+
+{-# NOINLINE ptr_glMulticastViewportPositionWScaleNVX #-}
+ptr_glMulticastViewportPositionWScaleNVX :: FunPtr (GLuint -> GLuint -> GLfloat -> GLfloat -> IO ())
+ptr_glMulticastViewportPositionWScaleNVX = unsafePerformIO $ getCommand "glMulticastViewportPositionWScaleNVX"
+
+-- glMulticastWaitSyncNV -------------------------------------------------------
+
+glMulticastWaitSyncNV
+  :: MonadIO m
+  => GLuint -- ^ @signalGpu@.
+  -> GLbitfield -- ^ @waitGpuMask@.
+  -> m ()
+glMulticastWaitSyncNV v1 v2 = liftIO $ dyn606 ptr_glMulticastWaitSyncNV v1 v2
+
+{-# NOINLINE ptr_glMulticastWaitSyncNV #-}
+ptr_glMulticastWaitSyncNV :: FunPtr (GLuint -> GLbitfield -> IO ())
+ptr_glMulticastWaitSyncNV = unsafePerformIO $ getCommand "glMulticastWaitSyncNV"
+
+-- glNamedBufferAttachMemoryNV -------------------------------------------------
+
+glNamedBufferAttachMemoryNV
+  :: MonadIO m
+  => GLuint -- ^ @buffer@.
+  -> GLuint -- ^ @memory@.
+  -> GLuint64 -- ^ @offset@.
+  -> m ()
+glNamedBufferAttachMemoryNV v1 v2 v3 = liftIO $ dyn607 ptr_glNamedBufferAttachMemoryNV v1 v2 v3
+
+{-# NOINLINE ptr_glNamedBufferAttachMemoryNV #-}
+ptr_glNamedBufferAttachMemoryNV :: FunPtr (GLuint -> GLuint -> GLuint64 -> IO ())
+ptr_glNamedBufferAttachMemoryNV = unsafePerformIO $ getCommand "glNamedBufferAttachMemoryNV"
+
+-- glNamedBufferData -----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glBufferData.xhtml OpenGL 4.x>.
+glNamedBufferData
+  :: MonadIO m
+  => GLuint -- ^ @buffer@.
+  -> GLsizeiptr -- ^ @size@ of type @BufferSize@.
+  -> Ptr a -- ^ @data@.
+  -> GLenum -- ^ @usage@ of type [VertexBufferObjectUsage](Graphics-GL-Groups.html#VertexBufferObjectUsage).
+  -> m ()
+glNamedBufferData v1 v2 v3 v4 = liftIO $ dyn608 ptr_glNamedBufferData v1 v2 v3 v4
+
+{-# NOINLINE ptr_glNamedBufferData #-}
+ptr_glNamedBufferData :: FunPtr (GLuint -> GLsizeiptr -> Ptr a -> GLenum -> IO ())
+ptr_glNamedBufferData = unsafePerformIO $ getCommand "glNamedBufferData"
+
+-- glNamedBufferDataEXT --------------------------------------------------------
+
+glNamedBufferDataEXT
+  :: MonadIO m
+  => GLuint -- ^ @buffer@.
+  -> GLsizeiptr -- ^ @size@.
+  -> Ptr a -- ^ @data@ pointing to @COMPSIZE(size)@ elements of type @a@.
+  -> GLenum -- ^ @usage@ of type [VertexBufferObjectUsage](Graphics-GL-Groups.html#VertexBufferObjectUsage).
+  -> m ()
+glNamedBufferDataEXT v1 v2 v3 v4 = liftIO $ dyn608 ptr_glNamedBufferDataEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glNamedBufferDataEXT #-}
+ptr_glNamedBufferDataEXT :: FunPtr (GLuint -> GLsizeiptr -> Ptr a -> GLenum -> IO ())
+ptr_glNamedBufferDataEXT = unsafePerformIO $ getCommand "glNamedBufferDataEXT"
+
+-- glNamedBufferPageCommitmentARB ----------------------------------------------
+
+glNamedBufferPageCommitmentARB
+  :: MonadIO m
+  => GLuint -- ^ @buffer@.
+  -> GLintptr -- ^ @offset@.
+  -> GLsizeiptr -- ^ @size@.
+  -> GLboolean -- ^ @commit@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m ()
+glNamedBufferPageCommitmentARB v1 v2 v3 v4 = liftIO $ dyn609 ptr_glNamedBufferPageCommitmentARB v1 v2 v3 v4
+
+{-# NOINLINE ptr_glNamedBufferPageCommitmentARB #-}
+ptr_glNamedBufferPageCommitmentARB :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> GLboolean -> IO ())
+ptr_glNamedBufferPageCommitmentARB = unsafePerformIO $ getCommand "glNamedBufferPageCommitmentARB"
+
+-- glNamedBufferPageCommitmentEXT ----------------------------------------------
+
+glNamedBufferPageCommitmentEXT
+  :: MonadIO m
+  => GLuint -- ^ @buffer@.
+  -> GLintptr -- ^ @offset@.
+  -> GLsizeiptr -- ^ @size@.
+  -> GLboolean -- ^ @commit@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m ()
+glNamedBufferPageCommitmentEXT v1 v2 v3 v4 = liftIO $ dyn609 ptr_glNamedBufferPageCommitmentEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glNamedBufferPageCommitmentEXT #-}
+ptr_glNamedBufferPageCommitmentEXT :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> GLboolean -> IO ())
+ptr_glNamedBufferPageCommitmentEXT = unsafePerformIO $ getCommand "glNamedBufferPageCommitmentEXT"
+
+-- glNamedBufferStorage --------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glBufferStorage.xhtml OpenGL 4.x>.
+glNamedBufferStorage
+  :: MonadIO m
+  => GLuint -- ^ @buffer@.
+  -> GLsizeiptr -- ^ @size@ of type @BufferSize@.
+  -> Ptr a -- ^ @data@ pointing to @size@ elements of type @a@.
+  -> GLbitfield -- ^ @flags@ of type [BufferStorageMask](Graphics-GL-Groups.html#BufferStorageMask).
+  -> m ()
+glNamedBufferStorage v1 v2 v3 v4 = liftIO $ dyn610 ptr_glNamedBufferStorage v1 v2 v3 v4
+
+{-# NOINLINE ptr_glNamedBufferStorage #-}
+ptr_glNamedBufferStorage :: FunPtr (GLuint -> GLsizeiptr -> Ptr a -> GLbitfield -> IO ())
+ptr_glNamedBufferStorage = unsafePerformIO $ getCommand "glNamedBufferStorage"
+
+-- glNamedBufferStorageEXT -----------------------------------------------------
+
+-- | This command is an alias for 'glNamedBufferStorage'.
+glNamedBufferStorageEXT
+  :: MonadIO m
+  => GLuint -- ^ @buffer@.
+  -> GLsizeiptr -- ^ @size@ of type @BufferSize@.
+  -> Ptr a -- ^ @data@ pointing to @size@ elements of type @a@.
+  -> GLbitfield -- ^ @flags@ of type [BufferStorageMask](Graphics-GL-Groups.html#BufferStorageMask).
+  -> m ()
+glNamedBufferStorageEXT v1 v2 v3 v4 = liftIO $ dyn610 ptr_glNamedBufferStorageEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glNamedBufferStorageEXT #-}
+ptr_glNamedBufferStorageEXT :: FunPtr (GLuint -> GLsizeiptr -> Ptr a -> GLbitfield -> IO ())
+ptr_glNamedBufferStorageEXT = unsafePerformIO $ getCommand "glNamedBufferStorageEXT"
+
+-- glNamedBufferStorageExternalEXT ---------------------------------------------
+
+glNamedBufferStorageExternalEXT
+  :: MonadIO m
+  => GLuint -- ^ @buffer@.
+  -> GLintptr -- ^ @offset@.
+  -> GLsizeiptr -- ^ @size@.
+  -> GLeglClientBufferEXT -- ^ @clientBuffer@.
+  -> GLbitfield -- ^ @flags@ of type [BufferStorageMask](Graphics-GL-Groups.html#BufferStorageMask).
+  -> m ()
+glNamedBufferStorageExternalEXT v1 v2 v3 v4 v5 = liftIO $ dyn611 ptr_glNamedBufferStorageExternalEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glNamedBufferStorageExternalEXT #-}
+ptr_glNamedBufferStorageExternalEXT :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> GLeglClientBufferEXT -> GLbitfield -> IO ())
+ptr_glNamedBufferStorageExternalEXT = unsafePerformIO $ getCommand "glNamedBufferStorageExternalEXT"
+
+-- glNamedBufferStorageMemEXT --------------------------------------------------
+
+glNamedBufferStorageMemEXT
+  :: MonadIO m
+  => GLuint -- ^ @buffer@.
+  -> GLsizeiptr -- ^ @size@ of type @BufferSize@.
+  -> GLuint -- ^ @memory@.
+  -> GLuint64 -- ^ @offset@.
+  -> m ()
+glNamedBufferStorageMemEXT v1 v2 v3 v4 = liftIO $ dyn612 ptr_glNamedBufferStorageMemEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glNamedBufferStorageMemEXT #-}
+ptr_glNamedBufferStorageMemEXT :: FunPtr (GLuint -> GLsizeiptr -> GLuint -> GLuint64 -> IO ())
+ptr_glNamedBufferStorageMemEXT = unsafePerformIO $ getCommand "glNamedBufferStorageMemEXT"
+
+-- glNamedBufferSubData --------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glBufferSubData.xhtml OpenGL 4.x>.
+glNamedBufferSubData
+  :: MonadIO m
+  => GLuint -- ^ @buffer@.
+  -> GLintptr -- ^ @offset@.
+  -> GLsizeiptr -- ^ @size@ of type @BufferSize@.
+  -> Ptr a -- ^ @data@ pointing to @COMPSIZE(size)@ elements of type @a@.
+  -> m ()
+glNamedBufferSubData v1 v2 v3 v4 = liftIO $ dyn378 ptr_glNamedBufferSubData v1 v2 v3 v4
+
+{-# NOINLINE ptr_glNamedBufferSubData #-}
+ptr_glNamedBufferSubData :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> Ptr a -> IO ())
+ptr_glNamedBufferSubData = unsafePerformIO $ getCommand "glNamedBufferSubData"
+
+-- glNamedBufferSubDataEXT -----------------------------------------------------
+
+-- | This command is an alias for 'glNamedBufferSubData'.
+glNamedBufferSubDataEXT
+  :: MonadIO m
+  => GLuint -- ^ @buffer@.
+  -> GLintptr -- ^ @offset@.
+  -> GLsizeiptr -- ^ @size@ of type @BufferSize@.
+  -> Ptr a -- ^ @data@ pointing to @COMPSIZE(size)@ elements of type @a@.
+  -> m ()
+glNamedBufferSubDataEXT v1 v2 v3 v4 = liftIO $ dyn378 ptr_glNamedBufferSubDataEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glNamedBufferSubDataEXT #-}
+ptr_glNamedBufferSubDataEXT :: FunPtr (GLuint -> GLintptr -> GLsizeiptr -> Ptr a -> IO ())
+ptr_glNamedBufferSubDataEXT = unsafePerformIO $ getCommand "glNamedBufferSubDataEXT"
+
+-- glNamedCopyBufferSubDataEXT -------------------------------------------------
+
+glNamedCopyBufferSubDataEXT
+  :: MonadIO m
+  => GLuint -- ^ @readBuffer@.
+  -> GLuint -- ^ @writeBuffer@.
+  -> GLintptr -- ^ @readOffset@.
+  -> GLintptr -- ^ @writeOffset@.
+  -> GLsizeiptr -- ^ @size@.
+  -> m ()
+glNamedCopyBufferSubDataEXT v1 v2 v3 v4 v5 = liftIO $ dyn181 ptr_glNamedCopyBufferSubDataEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glNamedCopyBufferSubDataEXT #-}
+ptr_glNamedCopyBufferSubDataEXT :: FunPtr (GLuint -> GLuint -> GLintptr -> GLintptr -> GLsizeiptr -> IO ())
+ptr_glNamedCopyBufferSubDataEXT = unsafePerformIO $ getCommand "glNamedCopyBufferSubDataEXT"
+
+-- glNamedFramebufferDrawBuffer ------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glDrawBuffer.xhtml OpenGL 4.x>.
+glNamedFramebufferDrawBuffer
+  :: MonadIO m
+  => GLuint -- ^ @framebuffer@.
+  -> GLenum -- ^ @buf@ of type [ColorBuffer](Graphics-GL-Groups.html#ColorBuffer).
+  -> m ()
+glNamedFramebufferDrawBuffer v1 v2 = liftIO $ dyn18 ptr_glNamedFramebufferDrawBuffer v1 v2
+
+{-# NOINLINE ptr_glNamedFramebufferDrawBuffer #-}
+ptr_glNamedFramebufferDrawBuffer :: FunPtr (GLuint -> GLenum -> IO ())
+ptr_glNamedFramebufferDrawBuffer = unsafePerformIO $ getCommand "glNamedFramebufferDrawBuffer"
+
+-- glNamedFramebufferDrawBuffers -----------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glDrawBuffers.xhtml OpenGL 4.x>.
+glNamedFramebufferDrawBuffers
+  :: MonadIO m
+  => GLuint -- ^ @framebuffer@.
+  -> GLsizei -- ^ @n@.
+  -> Ptr GLenum -- ^ @bufs@ pointing to elements of type [ColorBuffer](Graphics-GL-Groups.html#ColorBuffer).
+  -> m ()
+glNamedFramebufferDrawBuffers v1 v2 v3 = liftIO $ dyn293 ptr_glNamedFramebufferDrawBuffers v1 v2 v3
+
+{-# NOINLINE ptr_glNamedFramebufferDrawBuffers #-}
+ptr_glNamedFramebufferDrawBuffers :: FunPtr (GLuint -> GLsizei -> Ptr GLenum -> IO ())
+ptr_glNamedFramebufferDrawBuffers = unsafePerformIO $ getCommand "glNamedFramebufferDrawBuffers"
+
+-- glNamedFramebufferParameteri ------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glFramebufferParameteri.xhtml OpenGL 4.x>.
+glNamedFramebufferParameteri
+  :: MonadIO m
+  => GLuint -- ^ @framebuffer@.
+  -> GLenum -- ^ @pname@ of type [FramebufferParameterName](Graphics-GL-Groups.html#FramebufferParameterName).
+  -> GLint -- ^ @param@.
+  -> m ()
+glNamedFramebufferParameteri v1 v2 v3 = liftIO $ dyn491 ptr_glNamedFramebufferParameteri v1 v2 v3
+
+{-# NOINLINE ptr_glNamedFramebufferParameteri #-}
+ptr_glNamedFramebufferParameteri :: FunPtr (GLuint -> GLenum -> GLint -> IO ())
+ptr_glNamedFramebufferParameteri = unsafePerformIO $ getCommand "glNamedFramebufferParameteri"
+
+-- glNamedFramebufferParameteriEXT ---------------------------------------------
+
+glNamedFramebufferParameteriEXT
+  :: MonadIO m
+  => GLuint -- ^ @framebuffer@ of type @Framebuffer@.
+  -> GLenum -- ^ @pname@ of type [FramebufferParameterName](Graphics-GL-Groups.html#FramebufferParameterName).
+  -> GLint -- ^ @param@.
+  -> m ()
+glNamedFramebufferParameteriEXT v1 v2 v3 = liftIO $ dyn491 ptr_glNamedFramebufferParameteriEXT v1 v2 v3
+
+{-# NOINLINE ptr_glNamedFramebufferParameteriEXT #-}
+ptr_glNamedFramebufferParameteriEXT :: FunPtr (GLuint -> GLenum -> GLint -> IO ())
+ptr_glNamedFramebufferParameteriEXT = unsafePerformIO $ getCommand "glNamedFramebufferParameteriEXT"
+
+-- glNamedFramebufferReadBuffer ------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glReadBuffer.xhtml OpenGL 4.x>.
+glNamedFramebufferReadBuffer
+  :: MonadIO m
+  => GLuint -- ^ @framebuffer@.
+  -> GLenum -- ^ @src@ of type [ColorBuffer](Graphics-GL-Groups.html#ColorBuffer).
+  -> m ()
+glNamedFramebufferReadBuffer v1 v2 = liftIO $ dyn18 ptr_glNamedFramebufferReadBuffer v1 v2
+
+{-# NOINLINE ptr_glNamedFramebufferReadBuffer #-}
+ptr_glNamedFramebufferReadBuffer :: FunPtr (GLuint -> GLenum -> IO ())
+ptr_glNamedFramebufferReadBuffer = unsafePerformIO $ getCommand "glNamedFramebufferReadBuffer"
+
+-- glNamedFramebufferRenderbuffer ----------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glFramebufferRenderbuffer.xhtml OpenGL 4.x>.
+glNamedFramebufferRenderbuffer
+  :: MonadIO m
+  => GLuint -- ^ @framebuffer@.
+  -> GLenum -- ^ @attachment@ of type [FramebufferAttachment](Graphics-GL-Groups.html#FramebufferAttachment).
+  -> GLenum -- ^ @renderbuffertarget@ of type [RenderbufferTarget](Graphics-GL-Groups.html#RenderbufferTarget).
+  -> GLuint -- ^ @renderbuffer@.
+  -> m ()
+glNamedFramebufferRenderbuffer v1 v2 v3 v4 = liftIO $ dyn613 ptr_glNamedFramebufferRenderbuffer v1 v2 v3 v4
+
+{-# NOINLINE ptr_glNamedFramebufferRenderbuffer #-}
+ptr_glNamedFramebufferRenderbuffer :: FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> IO ())
+ptr_glNamedFramebufferRenderbuffer = unsafePerformIO $ getCommand "glNamedFramebufferRenderbuffer"
+
+-- glNamedFramebufferRenderbufferEXT -------------------------------------------
+
+glNamedFramebufferRenderbufferEXT
+  :: MonadIO m
+  => GLuint -- ^ @framebuffer@ of type @Framebuffer@.
+  -> GLenum -- ^ @attachment@ of type [FramebufferAttachment](Graphics-GL-Groups.html#FramebufferAttachment).
+  -> GLenum -- ^ @renderbuffertarget@ of type [RenderbufferTarget](Graphics-GL-Groups.html#RenderbufferTarget).
+  -> GLuint -- ^ @renderbuffer@ of type @Renderbuffer@.
+  -> m ()
+glNamedFramebufferRenderbufferEXT v1 v2 v3 v4 = liftIO $ dyn613 ptr_glNamedFramebufferRenderbufferEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glNamedFramebufferRenderbufferEXT #-}
+ptr_glNamedFramebufferRenderbufferEXT :: FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> IO ())
+ptr_glNamedFramebufferRenderbufferEXT = unsafePerformIO $ getCommand "glNamedFramebufferRenderbufferEXT"
+
+-- glNamedFramebufferSampleLocationsfvARB --------------------------------------
+
+glNamedFramebufferSampleLocationsfvARB
+  :: MonadIO m
+  => GLuint -- ^ @framebuffer@.
+  -> GLuint -- ^ @start@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLfloat -- ^ @v@.
+  -> m ()
+glNamedFramebufferSampleLocationsfvARB v1 v2 v3 v4 = liftIO $ dyn604 ptr_glNamedFramebufferSampleLocationsfvARB v1 v2 v3 v4
+
+{-# NOINLINE ptr_glNamedFramebufferSampleLocationsfvARB #-}
+ptr_glNamedFramebufferSampleLocationsfvARB :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+ptr_glNamedFramebufferSampleLocationsfvARB = unsafePerformIO $ getCommand "glNamedFramebufferSampleLocationsfvARB"
+
+-- glNamedFramebufferSampleLocationsfvNV ---------------------------------------
+
+glNamedFramebufferSampleLocationsfvNV
+  :: MonadIO m
+  => GLuint -- ^ @framebuffer@.
+  -> GLuint -- ^ @start@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLfloat -- ^ @v@.
+  -> m ()
+glNamedFramebufferSampleLocationsfvNV v1 v2 v3 v4 = liftIO $ dyn604 ptr_glNamedFramebufferSampleLocationsfvNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glNamedFramebufferSampleLocationsfvNV #-}
+ptr_glNamedFramebufferSampleLocationsfvNV :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+ptr_glNamedFramebufferSampleLocationsfvNV = unsafePerformIO $ getCommand "glNamedFramebufferSampleLocationsfvNV"
+
+-- glNamedFramebufferSamplePositionsfvAMD --------------------------------------
+
+glNamedFramebufferSamplePositionsfvAMD
+  :: MonadIO m
+  => GLuint -- ^ @framebuffer@.
+  -> GLuint -- ^ @numsamples@.
+  -> GLuint -- ^ @pixelindex@.
+  -> Ptr GLfloat -- ^ @values@.
+  -> m ()
+glNamedFramebufferSamplePositionsfvAMD v1 v2 v3 v4 = liftIO $ dyn614 ptr_glNamedFramebufferSamplePositionsfvAMD v1 v2 v3 v4
+
+{-# NOINLINE ptr_glNamedFramebufferSamplePositionsfvAMD #-}
+ptr_glNamedFramebufferSamplePositionsfvAMD :: FunPtr (GLuint -> GLuint -> GLuint -> Ptr GLfloat -> IO ())
+ptr_glNamedFramebufferSamplePositionsfvAMD = unsafePerformIO $ getCommand "glNamedFramebufferSamplePositionsfvAMD"
+
+-- glNamedFramebufferTexture ---------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glFramebufferTexture.xhtml OpenGL 4.x>.
+glNamedFramebufferTexture
+  :: MonadIO m
+  => GLuint -- ^ @framebuffer@.
+  -> GLenum -- ^ @attachment@ of type [FramebufferAttachment](Graphics-GL-Groups.html#FramebufferAttachment).
+  -> GLuint -- ^ @texture@.
+  -> GLint -- ^ @level@.
+  -> m ()
+glNamedFramebufferTexture v1 v2 v3 v4 = liftIO $ dyn615 ptr_glNamedFramebufferTexture v1 v2 v3 v4
+
+{-# NOINLINE ptr_glNamedFramebufferTexture #-}
+ptr_glNamedFramebufferTexture :: FunPtr (GLuint -> GLenum -> GLuint -> GLint -> IO ())
+ptr_glNamedFramebufferTexture = unsafePerformIO $ getCommand "glNamedFramebufferTexture"
+
+-- glNamedFramebufferTexture1DEXT ----------------------------------------------
+
+glNamedFramebufferTexture1DEXT
+  :: MonadIO m
+  => GLuint -- ^ @framebuffer@ of type @Framebuffer@.
+  -> GLenum -- ^ @attachment@ of type [FramebufferAttachment](Graphics-GL-Groups.html#FramebufferAttachment).
+  -> GLenum -- ^ @textarget@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLuint -- ^ @texture@ of type @Texture@.
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> m ()
+glNamedFramebufferTexture1DEXT v1 v2 v3 v4 v5 = liftIO $ dyn616 ptr_glNamedFramebufferTexture1DEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glNamedFramebufferTexture1DEXT #-}
+ptr_glNamedFramebufferTexture1DEXT :: FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> GLint -> IO ())
+ptr_glNamedFramebufferTexture1DEXT = unsafePerformIO $ getCommand "glNamedFramebufferTexture1DEXT"
+
+-- glNamedFramebufferTexture2DEXT ----------------------------------------------
+
+glNamedFramebufferTexture2DEXT
+  :: MonadIO m
+  => GLuint -- ^ @framebuffer@ of type @Framebuffer@.
+  -> GLenum -- ^ @attachment@ of type [FramebufferAttachment](Graphics-GL-Groups.html#FramebufferAttachment).
+  -> GLenum -- ^ @textarget@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLuint -- ^ @texture@ of type @Texture@.
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> m ()
+glNamedFramebufferTexture2DEXT v1 v2 v3 v4 v5 = liftIO $ dyn616 ptr_glNamedFramebufferTexture2DEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glNamedFramebufferTexture2DEXT #-}
+ptr_glNamedFramebufferTexture2DEXT :: FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> GLint -> IO ())
+ptr_glNamedFramebufferTexture2DEXT = unsafePerformIO $ getCommand "glNamedFramebufferTexture2DEXT"
+
+-- glNamedFramebufferTexture3DEXT ----------------------------------------------
+
+glNamedFramebufferTexture3DEXT
+  :: MonadIO m
+  => GLuint -- ^ @framebuffer@ of type @Framebuffer@.
+  -> GLenum -- ^ @attachment@ of type [FramebufferAttachment](Graphics-GL-Groups.html#FramebufferAttachment).
+  -> GLenum -- ^ @textarget@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLuint -- ^ @texture@ of type @Texture@.
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLint -- ^ @zoffset@ of type @CheckedInt32@.
+  -> m ()
+glNamedFramebufferTexture3DEXT v1 v2 v3 v4 v5 v6 = liftIO $ dyn617 ptr_glNamedFramebufferTexture3DEXT v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glNamedFramebufferTexture3DEXT #-}
+ptr_glNamedFramebufferTexture3DEXT :: FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ())
+ptr_glNamedFramebufferTexture3DEXT = unsafePerformIO $ getCommand "glNamedFramebufferTexture3DEXT"
+
+-- glNamedFramebufferTextureEXT ------------------------------------------------
+
+glNamedFramebufferTextureEXT
+  :: MonadIO m
+  => GLuint -- ^ @framebuffer@ of type @Framebuffer@.
+  -> GLenum -- ^ @attachment@ of type [FramebufferAttachment](Graphics-GL-Groups.html#FramebufferAttachment).
+  -> GLuint -- ^ @texture@ of type @Texture@.
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> m ()
+glNamedFramebufferTextureEXT v1 v2 v3 v4 = liftIO $ dyn615 ptr_glNamedFramebufferTextureEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glNamedFramebufferTextureEXT #-}
+ptr_glNamedFramebufferTextureEXT :: FunPtr (GLuint -> GLenum -> GLuint -> GLint -> IO ())
+ptr_glNamedFramebufferTextureEXT = unsafePerformIO $ getCommand "glNamedFramebufferTextureEXT"
+
+-- glNamedFramebufferTextureFaceEXT --------------------------------------------
+
+glNamedFramebufferTextureFaceEXT
+  :: MonadIO m
+  => GLuint -- ^ @framebuffer@ of type @Framebuffer@.
+  -> GLenum -- ^ @attachment@ of type [FramebufferAttachment](Graphics-GL-Groups.html#FramebufferAttachment).
+  -> GLuint -- ^ @texture@ of type @Texture@.
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLenum -- ^ @face@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> m ()
+glNamedFramebufferTextureFaceEXT v1 v2 v3 v4 v5 = liftIO $ dyn618 ptr_glNamedFramebufferTextureFaceEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glNamedFramebufferTextureFaceEXT #-}
+ptr_glNamedFramebufferTextureFaceEXT :: FunPtr (GLuint -> GLenum -> GLuint -> GLint -> GLenum -> IO ())
+ptr_glNamedFramebufferTextureFaceEXT = unsafePerformIO $ getCommand "glNamedFramebufferTextureFaceEXT"
+
+-- glNamedFramebufferTextureLayer ----------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glFramebufferTextureLayer.xhtml OpenGL 4.x>.
+glNamedFramebufferTextureLayer
+  :: MonadIO m
+  => GLuint -- ^ @framebuffer@.
+  -> GLenum -- ^ @attachment@ of type [FramebufferAttachment](Graphics-GL-Groups.html#FramebufferAttachment).
+  -> GLuint -- ^ @texture@.
+  -> GLint -- ^ @level@.
+  -> GLint -- ^ @layer@.
+  -> m ()
+glNamedFramebufferTextureLayer v1 v2 v3 v4 v5 = liftIO $ dyn619 ptr_glNamedFramebufferTextureLayer v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glNamedFramebufferTextureLayer #-}
+ptr_glNamedFramebufferTextureLayer :: FunPtr (GLuint -> GLenum -> GLuint -> GLint -> GLint -> IO ())
+ptr_glNamedFramebufferTextureLayer = unsafePerformIO $ getCommand "glNamedFramebufferTextureLayer"
+
+-- glNamedFramebufferTextureLayerEXT -------------------------------------------
+
+glNamedFramebufferTextureLayerEXT
+  :: MonadIO m
+  => GLuint -- ^ @framebuffer@ of type @Framebuffer@.
+  -> GLenum -- ^ @attachment@ of type [FramebufferAttachment](Graphics-GL-Groups.html#FramebufferAttachment).
+  -> GLuint -- ^ @texture@ of type @Texture@.
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLint -- ^ @layer@ of type @CheckedInt32@.
+  -> m ()
+glNamedFramebufferTextureLayerEXT v1 v2 v3 v4 v5 = liftIO $ dyn619 ptr_glNamedFramebufferTextureLayerEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glNamedFramebufferTextureLayerEXT #-}
+ptr_glNamedFramebufferTextureLayerEXT :: FunPtr (GLuint -> GLenum -> GLuint -> GLint -> GLint -> IO ())
+ptr_glNamedFramebufferTextureLayerEXT = unsafePerformIO $ getCommand "glNamedFramebufferTextureLayerEXT"
+
diff --git a/src/Graphics/GL/Functions/F19.hs b/src/Graphics/GL/Functions/F19.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Functions/F19.hs
@@ -0,0 +1,1621 @@
+{-# OPTIONS_HADDOCK hide #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Functions.F19
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- Raw functions from the
+-- <http://www.opengl.org/registry/ OpenGL registry>.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Functions.F19 (
+  glNamedProgramLocalParameter4dEXT,
+  glNamedProgramLocalParameter4dvEXT,
+  glNamedProgramLocalParameter4fEXT,
+  glNamedProgramLocalParameter4fvEXT,
+  glNamedProgramLocalParameterI4iEXT,
+  glNamedProgramLocalParameterI4ivEXT,
+  glNamedProgramLocalParameterI4uiEXT,
+  glNamedProgramLocalParameterI4uivEXT,
+  glNamedProgramLocalParameters4fvEXT,
+  glNamedProgramLocalParametersI4ivEXT,
+  glNamedProgramLocalParametersI4uivEXT,
+  glNamedProgramStringEXT,
+  glNamedRenderbufferStorage,
+  glNamedRenderbufferStorageEXT,
+  glNamedRenderbufferStorageMultisample,
+  glNamedRenderbufferStorageMultisampleAdvancedAMD,
+  glNamedRenderbufferStorageMultisampleCoverageEXT,
+  glNamedRenderbufferStorageMultisampleEXT,
+  glNamedStringARB,
+  glNewList,
+  glNewObjectBufferATI,
+  glNormal3b,
+  glNormal3bv,
+  glNormal3d,
+  glNormal3dv,
+  glNormal3f,
+  glNormal3fVertex3fSUN,
+  glNormal3fVertex3fvSUN,
+  glNormal3fv,
+  glNormal3hNV,
+  glNormal3hvNV,
+  glNormal3i,
+  glNormal3iv,
+  glNormal3s,
+  glNormal3sv,
+  glNormal3x,
+  glNormal3xOES,
+  glNormal3xvOES,
+  glNormalFormatNV,
+  glNormalP3ui,
+  glNormalP3uiv,
+  glNormalPointer,
+  glNormalPointerEXT,
+  glNormalPointerListIBM,
+  glNormalPointervINTEL,
+  glNormalStream3bATI,
+  glNormalStream3bvATI,
+  glNormalStream3dATI,
+  glNormalStream3dvATI,
+  glNormalStream3fATI,
+  glNormalStream3fvATI,
+  glNormalStream3iATI,
+  glNormalStream3ivATI,
+  glNormalStream3sATI,
+  glNormalStream3svATI,
+  glObjectLabel,
+  glObjectLabelKHR,
+  glObjectPtrLabel,
+  glObjectPtrLabelKHR,
+  glObjectPurgeableAPPLE,
+  glObjectUnpurgeableAPPLE,
+  glOrtho,
+  glOrthof,
+  glOrthofOES,
+  glOrthox,
+  glOrthoxOES,
+  glPNTrianglesfATI,
+  glPNTrianglesiATI,
+  glPassTexCoordATI,
+  glPassThrough,
+  glPassThroughxOES,
+  glPatchParameterfv,
+  glPatchParameteri,
+  glPatchParameteriEXT,
+  glPatchParameteriOES,
+  glPathColorGenNV,
+  glPathCommandsNV,
+  glPathCoordsNV,
+  glPathCoverDepthFuncNV,
+  glPathDashArrayNV,
+  glPathFogGenNV,
+  glPathGlyphIndexArrayNV,
+  glPathGlyphIndexRangeNV,
+  glPathGlyphRangeNV,
+  glPathGlyphsNV,
+  glPathMemoryGlyphIndexArrayNV,
+  glPathParameterfNV,
+  glPathParameterfvNV,
+  glPathParameteriNV,
+  glPathParameterivNV,
+  glPathStencilDepthOffsetNV,
+  glPathStencilFuncNV,
+  glPathStringNV,
+  glPathSubCommandsNV,
+  glPathSubCoordsNV,
+  glPathTexGenNV,
+  glPauseTransformFeedback,
+  glPauseTransformFeedbackNV,
+  glPixelDataRangeNV,
+  glPixelMapfv
+) where
+
+import Control.Monad.IO.Class ( MonadIO(..) )
+import Foreign.Ptr
+import Graphics.GL.Foreign
+import Graphics.GL.Types
+import System.IO.Unsafe ( unsafePerformIO )
+
+-- glNamedProgramLocalParameter4dEXT -------------------------------------------
+
+-- | The vector equivalent of this command is 'glNamedProgramLocalParameter4dvEXT'.
+glNamedProgramLocalParameter4dEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
+  -> GLuint -- ^ @index@.
+  -> GLdouble -- ^ @x@.
+  -> GLdouble -- ^ @y@.
+  -> GLdouble -- ^ @z@.
+  -> GLdouble -- ^ @w@.
+  -> m ()
+glNamedProgramLocalParameter4dEXT v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn620 ptr_glNamedProgramLocalParameter4dEXT v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glNamedProgramLocalParameter4dEXT #-}
+ptr_glNamedProgramLocalParameter4dEXT :: FunPtr (GLuint -> GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+ptr_glNamedProgramLocalParameter4dEXT = unsafePerformIO $ getCommand "glNamedProgramLocalParameter4dEXT"
+
+-- glNamedProgramLocalParameter4dvEXT ------------------------------------------
+
+glNamedProgramLocalParameter4dvEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
+  -> GLuint -- ^ @index@.
+  -> Ptr GLdouble -- ^ @params@ pointing to @4@ elements of type @GLdouble@.
+  -> m ()
+glNamedProgramLocalParameter4dvEXT v1 v2 v3 v4 = liftIO $ dyn383 ptr_glNamedProgramLocalParameter4dvEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glNamedProgramLocalParameter4dvEXT #-}
+ptr_glNamedProgramLocalParameter4dvEXT :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLdouble -> IO ())
+ptr_glNamedProgramLocalParameter4dvEXT = unsafePerformIO $ getCommand "glNamedProgramLocalParameter4dvEXT"
+
+-- glNamedProgramLocalParameter4fEXT -------------------------------------------
+
+-- | The vector equivalent of this command is 'glNamedProgramLocalParameter4fvEXT'.
+glNamedProgramLocalParameter4fEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
+  -> GLuint -- ^ @index@.
+  -> GLfloat -- ^ @x@.
+  -> GLfloat -- ^ @y@.
+  -> GLfloat -- ^ @z@.
+  -> GLfloat -- ^ @w@.
+  -> m ()
+glNamedProgramLocalParameter4fEXT v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn621 ptr_glNamedProgramLocalParameter4fEXT v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glNamedProgramLocalParameter4fEXT #-}
+ptr_glNamedProgramLocalParameter4fEXT :: FunPtr (GLuint -> GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glNamedProgramLocalParameter4fEXT = unsafePerformIO $ getCommand "glNamedProgramLocalParameter4fEXT"
+
+-- glNamedProgramLocalParameter4fvEXT ------------------------------------------
+
+glNamedProgramLocalParameter4fvEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
+  -> GLuint -- ^ @index@.
+  -> Ptr GLfloat -- ^ @params@ pointing to @4@ elements of type @GLfloat@.
+  -> m ()
+glNamedProgramLocalParameter4fvEXT v1 v2 v3 v4 = liftIO $ dyn384 ptr_glNamedProgramLocalParameter4fvEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glNamedProgramLocalParameter4fvEXT #-}
+ptr_glNamedProgramLocalParameter4fvEXT :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLfloat -> IO ())
+ptr_glNamedProgramLocalParameter4fvEXT = unsafePerformIO $ getCommand "glNamedProgramLocalParameter4fvEXT"
+
+-- glNamedProgramLocalParameterI4iEXT ------------------------------------------
+
+-- | The vector equivalent of this command is 'glNamedProgramLocalParameterI4ivEXT'.
+glNamedProgramLocalParameterI4iEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
+  -> GLuint -- ^ @index@.
+  -> GLint -- ^ @x@.
+  -> GLint -- ^ @y@.
+  -> GLint -- ^ @z@.
+  -> GLint -- ^ @w@.
+  -> m ()
+glNamedProgramLocalParameterI4iEXT v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn622 ptr_glNamedProgramLocalParameterI4iEXT v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glNamedProgramLocalParameterI4iEXT #-}
+ptr_glNamedProgramLocalParameterI4iEXT :: FunPtr (GLuint -> GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
+ptr_glNamedProgramLocalParameterI4iEXT = unsafePerformIO $ getCommand "glNamedProgramLocalParameterI4iEXT"
+
+-- glNamedProgramLocalParameterI4ivEXT -----------------------------------------
+
+glNamedProgramLocalParameterI4ivEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
+  -> GLuint -- ^ @index@.
+  -> Ptr GLint -- ^ @params@ pointing to @4@ elements of type @GLint@.
+  -> m ()
+glNamedProgramLocalParameterI4ivEXT v1 v2 v3 v4 = liftIO $ dyn381 ptr_glNamedProgramLocalParameterI4ivEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glNamedProgramLocalParameterI4ivEXT #-}
+ptr_glNamedProgramLocalParameterI4ivEXT :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLint -> IO ())
+ptr_glNamedProgramLocalParameterI4ivEXT = unsafePerformIO $ getCommand "glNamedProgramLocalParameterI4ivEXT"
+
+-- glNamedProgramLocalParameterI4uiEXT -----------------------------------------
+
+-- | The vector equivalent of this command is 'glNamedProgramLocalParameterI4uivEXT'.
+glNamedProgramLocalParameterI4uiEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
+  -> GLuint -- ^ @index@.
+  -> GLuint -- ^ @x@.
+  -> GLuint -- ^ @y@.
+  -> GLuint -- ^ @z@.
+  -> GLuint -- ^ @w@.
+  -> m ()
+glNamedProgramLocalParameterI4uiEXT v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn623 ptr_glNamedProgramLocalParameterI4uiEXT v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glNamedProgramLocalParameterI4uiEXT #-}
+ptr_glNamedProgramLocalParameterI4uiEXT :: FunPtr (GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+ptr_glNamedProgramLocalParameterI4uiEXT = unsafePerformIO $ getCommand "glNamedProgramLocalParameterI4uiEXT"
+
+-- glNamedProgramLocalParameterI4uivEXT ----------------------------------------
+
+glNamedProgramLocalParameterI4uivEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
+  -> GLuint -- ^ @index@.
+  -> Ptr GLuint -- ^ @params@ pointing to @4@ elements of type @GLuint@.
+  -> m ()
+glNamedProgramLocalParameterI4uivEXT v1 v2 v3 v4 = liftIO $ dyn382 ptr_glNamedProgramLocalParameterI4uivEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glNamedProgramLocalParameterI4uivEXT #-}
+ptr_glNamedProgramLocalParameterI4uivEXT :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr GLuint -> IO ())
+ptr_glNamedProgramLocalParameterI4uivEXT = unsafePerformIO $ getCommand "glNamedProgramLocalParameterI4uivEXT"
+
+-- glNamedProgramLocalParameters4fvEXT -----------------------------------------
+
+glNamedProgramLocalParameters4fvEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
+  -> GLuint -- ^ @index@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLfloat -- ^ @params@ pointing to @count*4@ elements of type @GLfloat@.
+  -> m ()
+glNamedProgramLocalParameters4fvEXT v1 v2 v3 v4 v5 = liftIO $ dyn624 ptr_glNamedProgramLocalParameters4fvEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glNamedProgramLocalParameters4fvEXT #-}
+ptr_glNamedProgramLocalParameters4fvEXT :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+ptr_glNamedProgramLocalParameters4fvEXT = unsafePerformIO $ getCommand "glNamedProgramLocalParameters4fvEXT"
+
+-- glNamedProgramLocalParametersI4ivEXT ----------------------------------------
+
+glNamedProgramLocalParametersI4ivEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
+  -> GLuint -- ^ @index@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLint -- ^ @params@ pointing to @count*4@ elements of type @GLint@.
+  -> m ()
+glNamedProgramLocalParametersI4ivEXT v1 v2 v3 v4 v5 = liftIO $ dyn625 ptr_glNamedProgramLocalParametersI4ivEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glNamedProgramLocalParametersI4ivEXT #-}
+ptr_glNamedProgramLocalParametersI4ivEXT :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLint -> IO ())
+ptr_glNamedProgramLocalParametersI4ivEXT = unsafePerformIO $ getCommand "glNamedProgramLocalParametersI4ivEXT"
+
+-- glNamedProgramLocalParametersI4uivEXT ---------------------------------------
+
+glNamedProgramLocalParametersI4uivEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
+  -> GLuint -- ^ @index@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLuint -- ^ @params@ pointing to @count*4@ elements of type @GLuint@.
+  -> m ()
+glNamedProgramLocalParametersI4uivEXT v1 v2 v3 v4 v5 = liftIO $ dyn626 ptr_glNamedProgramLocalParametersI4uivEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glNamedProgramLocalParametersI4uivEXT #-}
+ptr_glNamedProgramLocalParametersI4uivEXT :: FunPtr (GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLuint -> IO ())
+ptr_glNamedProgramLocalParametersI4uivEXT = unsafePerformIO $ getCommand "glNamedProgramLocalParametersI4uivEXT"
+
+-- glNamedProgramStringEXT -----------------------------------------------------
+
+glNamedProgramStringEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
+  -> GLenum -- ^ @format@ of type [ProgramFormat](Graphics-GL-Groups.html#ProgramFormat).
+  -> GLsizei -- ^ @len@.
+  -> Ptr a -- ^ @string@ pointing to @len@ elements of type @a@.
+  -> m ()
+glNamedProgramStringEXT v1 v2 v3 v4 v5 = liftIO $ dyn627 ptr_glNamedProgramStringEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glNamedProgramStringEXT #-}
+ptr_glNamedProgramStringEXT :: FunPtr (GLuint -> GLenum -> GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glNamedProgramStringEXT = unsafePerformIO $ getCommand "glNamedProgramStringEXT"
+
+-- glNamedRenderbufferStorage --------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glRenderbufferStorage.xhtml OpenGL 4.x>.
+glNamedRenderbufferStorage
+  :: MonadIO m
+  => GLuint -- ^ @renderbuffer@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> m ()
+glNamedRenderbufferStorage v1 v2 v3 v4 = liftIO $ dyn628 ptr_glNamedRenderbufferStorage v1 v2 v3 v4
+
+{-# NOINLINE ptr_glNamedRenderbufferStorage #-}
+ptr_glNamedRenderbufferStorage :: FunPtr (GLuint -> GLenum -> GLsizei -> GLsizei -> IO ())
+ptr_glNamedRenderbufferStorage = unsafePerformIO $ getCommand "glNamedRenderbufferStorage"
+
+-- glNamedRenderbufferStorageEXT -----------------------------------------------
+
+glNamedRenderbufferStorageEXT
+  :: MonadIO m
+  => GLuint -- ^ @renderbuffer@ of type @Renderbuffer@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> m ()
+glNamedRenderbufferStorageEXT v1 v2 v3 v4 = liftIO $ dyn628 ptr_glNamedRenderbufferStorageEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glNamedRenderbufferStorageEXT #-}
+ptr_glNamedRenderbufferStorageEXT :: FunPtr (GLuint -> GLenum -> GLsizei -> GLsizei -> IO ())
+ptr_glNamedRenderbufferStorageEXT = unsafePerformIO $ getCommand "glNamedRenderbufferStorageEXT"
+
+-- glNamedRenderbufferStorageMultisample ---------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glRenderbufferStorageMultisample.xhtml OpenGL 4.x>.
+glNamedRenderbufferStorageMultisample
+  :: MonadIO m
+  => GLuint -- ^ @renderbuffer@.
+  -> GLsizei -- ^ @samples@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> m ()
+glNamedRenderbufferStorageMultisample v1 v2 v3 v4 v5 = liftIO $ dyn629 ptr_glNamedRenderbufferStorageMultisample v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glNamedRenderbufferStorageMultisample #-}
+ptr_glNamedRenderbufferStorageMultisample :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
+ptr_glNamedRenderbufferStorageMultisample = unsafePerformIO $ getCommand "glNamedRenderbufferStorageMultisample"
+
+-- glNamedRenderbufferStorageMultisampleAdvancedAMD ----------------------------
+
+glNamedRenderbufferStorageMultisampleAdvancedAMD
+  :: MonadIO m
+  => GLuint -- ^ @renderbuffer@ of type @Renderbuffer@.
+  -> GLsizei -- ^ @samples@.
+  -> GLsizei -- ^ @storageSamples@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> m ()
+glNamedRenderbufferStorageMultisampleAdvancedAMD v1 v2 v3 v4 v5 v6 = liftIO $ dyn630 ptr_glNamedRenderbufferStorageMultisampleAdvancedAMD v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glNamedRenderbufferStorageMultisampleAdvancedAMD #-}
+ptr_glNamedRenderbufferStorageMultisampleAdvancedAMD :: FunPtr (GLuint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
+ptr_glNamedRenderbufferStorageMultisampleAdvancedAMD = unsafePerformIO $ getCommand "glNamedRenderbufferStorageMultisampleAdvancedAMD"
+
+-- glNamedRenderbufferStorageMultisampleCoverageEXT ----------------------------
+
+glNamedRenderbufferStorageMultisampleCoverageEXT
+  :: MonadIO m
+  => GLuint -- ^ @renderbuffer@ of type @Renderbuffer@.
+  -> GLsizei -- ^ @coverageSamples@.
+  -> GLsizei -- ^ @colorSamples@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> m ()
+glNamedRenderbufferStorageMultisampleCoverageEXT v1 v2 v3 v4 v5 v6 = liftIO $ dyn630 ptr_glNamedRenderbufferStorageMultisampleCoverageEXT v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glNamedRenderbufferStorageMultisampleCoverageEXT #-}
+ptr_glNamedRenderbufferStorageMultisampleCoverageEXT :: FunPtr (GLuint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
+ptr_glNamedRenderbufferStorageMultisampleCoverageEXT = unsafePerformIO $ getCommand "glNamedRenderbufferStorageMultisampleCoverageEXT"
+
+-- glNamedRenderbufferStorageMultisampleEXT ------------------------------------
+
+glNamedRenderbufferStorageMultisampleEXT
+  :: MonadIO m
+  => GLuint -- ^ @renderbuffer@ of type @Renderbuffer@.
+  -> GLsizei -- ^ @samples@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> m ()
+glNamedRenderbufferStorageMultisampleEXT v1 v2 v3 v4 v5 = liftIO $ dyn629 ptr_glNamedRenderbufferStorageMultisampleEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glNamedRenderbufferStorageMultisampleEXT #-}
+ptr_glNamedRenderbufferStorageMultisampleEXT :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
+ptr_glNamedRenderbufferStorageMultisampleEXT = unsafePerformIO $ getCommand "glNamedRenderbufferStorageMultisampleEXT"
+
+-- glNamedStringARB ------------------------------------------------------------
+
+glNamedStringARB
+  :: MonadIO m
+  => GLenum -- ^ @type@.
+  -> GLint -- ^ @namelen@.
+  -> Ptr GLchar -- ^ @name@ pointing to @namelen@ elements of type @GLchar@.
+  -> GLint -- ^ @stringlen@.
+  -> Ptr GLchar -- ^ @string@ pointing to @stringlen@ elements of type @GLchar@.
+  -> m ()
+glNamedStringARB v1 v2 v3 v4 v5 = liftIO $ dyn631 ptr_glNamedStringARB v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glNamedStringARB #-}
+ptr_glNamedStringARB :: FunPtr (GLenum -> GLint -> Ptr GLchar -> GLint -> Ptr GLchar -> IO ())
+ptr_glNamedStringARB = unsafePerformIO $ getCommand "glNamedStringARB"
+
+-- glNewList -------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glNewList.xml OpenGL 2.x>.
+glNewList
+  :: MonadIO m
+  => GLuint -- ^ @list@ of type @List@.
+  -> GLenum -- ^ @mode@ of type [ListMode](Graphics-GL-Groups.html#ListMode).
+  -> m ()
+glNewList v1 v2 = liftIO $ dyn18 ptr_glNewList v1 v2
+
+{-# NOINLINE ptr_glNewList #-}
+ptr_glNewList :: FunPtr (GLuint -> GLenum -> IO ())
+ptr_glNewList = unsafePerformIO $ getCommand "glNewList"
+
+-- glNewObjectBufferATI --------------------------------------------------------
+
+glNewObjectBufferATI
+  :: MonadIO m
+  => GLsizei -- ^ @size@.
+  -> Ptr a -- ^ @pointer@ pointing to @size@ elements of type @a@.
+  -> GLenum -- ^ @usage@ of type [ArrayObjectUsageATI](Graphics-GL-Groups.html#ArrayObjectUsageATI).
+  -> m GLuint
+glNewObjectBufferATI v1 v2 v3 = liftIO $ dyn632 ptr_glNewObjectBufferATI v1 v2 v3
+
+{-# NOINLINE ptr_glNewObjectBufferATI #-}
+ptr_glNewObjectBufferATI :: FunPtr (GLsizei -> Ptr a -> GLenum -> IO GLuint)
+ptr_glNewObjectBufferATI = unsafePerformIO $ getCommand "glNewObjectBufferATI"
+
+-- glNormal3b ------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glNormal.xml OpenGL 2.x>. The vector equivalent of this command is 'glNormal3bv'.
+glNormal3b
+  :: MonadIO m
+  => GLbyte -- ^ @nx@.
+  -> GLbyte -- ^ @ny@.
+  -> GLbyte -- ^ @nz@.
+  -> m ()
+glNormal3b v1 v2 v3 = liftIO $ dyn39 ptr_glNormal3b v1 v2 v3
+
+{-# NOINLINE ptr_glNormal3b #-}
+ptr_glNormal3b :: FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
+ptr_glNormal3b = unsafePerformIO $ getCommand "glNormal3b"
+
+-- glNormal3bv -----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glNormal.xml OpenGL 2.x>.
+glNormal3bv
+  :: MonadIO m
+  => Ptr GLbyte -- ^ @v@ pointing to @3@ elements of type @GLbyte@.
+  -> m ()
+glNormal3bv v1 = liftIO $ dyn40 ptr_glNormal3bv v1
+
+{-# NOINLINE ptr_glNormal3bv #-}
+ptr_glNormal3bv :: FunPtr (Ptr GLbyte -> IO ())
+ptr_glNormal3bv = unsafePerformIO $ getCommand "glNormal3bv"
+
+-- glNormal3d ------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glNormal.xml OpenGL 2.x>. The vector equivalent of this command is 'glNormal3dv'.
+glNormal3d
+  :: MonadIO m
+  => GLdouble -- ^ @nx@ of type @CoordD@.
+  -> GLdouble -- ^ @ny@ of type @CoordD@.
+  -> GLdouble -- ^ @nz@ of type @CoordD@.
+  -> m ()
+glNormal3d v1 v2 v3 = liftIO $ dyn41 ptr_glNormal3d v1 v2 v3
+
+{-# NOINLINE ptr_glNormal3d #-}
+ptr_glNormal3d :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
+ptr_glNormal3d = unsafePerformIO $ getCommand "glNormal3d"
+
+-- glNormal3dv -----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glNormal.xml OpenGL 2.x>.
+glNormal3dv
+  :: MonadIO m
+  => Ptr GLdouble -- ^ @v@ pointing to @3@ elements of type @CoordD@.
+  -> m ()
+glNormal3dv v1 = liftIO $ dyn42 ptr_glNormal3dv v1
+
+{-# NOINLINE ptr_glNormal3dv #-}
+ptr_glNormal3dv :: FunPtr (Ptr GLdouble -> IO ())
+ptr_glNormal3dv = unsafePerformIO $ getCommand "glNormal3dv"
+
+-- glNormal3f ------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glNormal.xml OpenGL 2.x>. The vector equivalent of this command is 'glNormal3fv'.
+glNormal3f
+  :: MonadIO m
+  => GLfloat -- ^ @nx@ of type @CoordF@.
+  -> GLfloat -- ^ @ny@ of type @CoordF@.
+  -> GLfloat -- ^ @nz@ of type @CoordF@.
+  -> m ()
+glNormal3f v1 v2 v3 = liftIO $ dyn43 ptr_glNormal3f v1 v2 v3
+
+{-# NOINLINE ptr_glNormal3f #-}
+ptr_glNormal3f :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glNormal3f = unsafePerformIO $ getCommand "glNormal3f"
+
+-- glNormal3fVertex3fSUN -------------------------------------------------------
+
+glNormal3fVertex3fSUN
+  :: MonadIO m
+  => GLfloat -- ^ @nx@.
+  -> GLfloat -- ^ @ny@.
+  -> GLfloat -- ^ @nz@.
+  -> GLfloat -- ^ @x@.
+  -> GLfloat -- ^ @y@.
+  -> GLfloat -- ^ @z@.
+  -> m ()
+glNormal3fVertex3fSUN v1 v2 v3 v4 v5 v6 = liftIO $ dyn103 ptr_glNormal3fVertex3fSUN v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glNormal3fVertex3fSUN #-}
+ptr_glNormal3fVertex3fSUN :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glNormal3fVertex3fSUN = unsafePerformIO $ getCommand "glNormal3fVertex3fSUN"
+
+-- glNormal3fVertex3fvSUN ------------------------------------------------------
+
+glNormal3fVertex3fvSUN
+  :: MonadIO m
+  => Ptr GLfloat -- ^ @n@ pointing to @3@ elements of type @GLfloat@.
+  -> Ptr GLfloat -- ^ @v@ pointing to @3@ elements of type @GLfloat@.
+  -> m ()
+glNormal3fVertex3fvSUN v1 v2 = liftIO $ dyn104 ptr_glNormal3fVertex3fvSUN v1 v2
+
+{-# NOINLINE ptr_glNormal3fVertex3fvSUN #-}
+ptr_glNormal3fVertex3fvSUN :: FunPtr (Ptr GLfloat -> Ptr GLfloat -> IO ())
+ptr_glNormal3fVertex3fvSUN = unsafePerformIO $ getCommand "glNormal3fVertex3fvSUN"
+
+-- glNormal3fv -----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glNormal.xml OpenGL 2.x>.
+glNormal3fv
+  :: MonadIO m
+  => Ptr GLfloat -- ^ @v@ pointing to @3@ elements of type @CoordF@.
+  -> m ()
+glNormal3fv v1 = liftIO $ dyn44 ptr_glNormal3fv v1
+
+{-# NOINLINE ptr_glNormal3fv #-}
+ptr_glNormal3fv :: FunPtr (Ptr GLfloat -> IO ())
+ptr_glNormal3fv = unsafePerformIO $ getCommand "glNormal3fv"
+
+-- glNormal3hNV ----------------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glNormal3hvNV'.
+glNormal3hNV
+  :: MonadIO m
+  => GLhalfNV -- ^ @nx@ of type @Half16NV@.
+  -> GLhalfNV -- ^ @ny@ of type @Half16NV@.
+  -> GLhalfNV -- ^ @nz@ of type @Half16NV@.
+  -> m ()
+glNormal3hNV v1 v2 v3 = liftIO $ dyn105 ptr_glNormal3hNV v1 v2 v3
+
+{-# NOINLINE ptr_glNormal3hNV #-}
+ptr_glNormal3hNV :: FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
+ptr_glNormal3hNV = unsafePerformIO $ getCommand "glNormal3hNV"
+
+-- glNormal3hvNV ---------------------------------------------------------------
+
+glNormal3hvNV
+  :: MonadIO m
+  => Ptr GLhalfNV -- ^ @v@ pointing to @3@ elements of type @Half16NV@.
+  -> m ()
+glNormal3hvNV v1 = liftIO $ dyn106 ptr_glNormal3hvNV v1
+
+{-# NOINLINE ptr_glNormal3hvNV #-}
+ptr_glNormal3hvNV :: FunPtr (Ptr GLhalfNV -> IO ())
+ptr_glNormal3hvNV = unsafePerformIO $ getCommand "glNormal3hvNV"
+
+-- glNormal3i ------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glNormal.xml OpenGL 2.x>. The vector equivalent of this command is 'glNormal3iv'.
+glNormal3i
+  :: MonadIO m
+  => GLint -- ^ @nx@.
+  -> GLint -- ^ @ny@.
+  -> GLint -- ^ @nz@.
+  -> m ()
+glNormal3i v1 v2 v3 = liftIO $ dyn45 ptr_glNormal3i v1 v2 v3
+
+{-# NOINLINE ptr_glNormal3i #-}
+ptr_glNormal3i :: FunPtr (GLint -> GLint -> GLint -> IO ())
+ptr_glNormal3i = unsafePerformIO $ getCommand "glNormal3i"
+
+-- glNormal3iv -----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glNormal.xml OpenGL 2.x>.
+glNormal3iv
+  :: MonadIO m
+  => Ptr GLint -- ^ @v@ pointing to @3@ elements of type @GLint@.
+  -> m ()
+glNormal3iv v1 = liftIO $ dyn46 ptr_glNormal3iv v1
+
+{-# NOINLINE ptr_glNormal3iv #-}
+ptr_glNormal3iv :: FunPtr (Ptr GLint -> IO ())
+ptr_glNormal3iv = unsafePerformIO $ getCommand "glNormal3iv"
+
+-- glNormal3s ------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glNormal.xml OpenGL 2.x>. The vector equivalent of this command is 'glNormal3sv'.
+glNormal3s
+  :: MonadIO m
+  => GLshort -- ^ @nx@.
+  -> GLshort -- ^ @ny@.
+  -> GLshort -- ^ @nz@.
+  -> m ()
+glNormal3s v1 v2 v3 = liftIO $ dyn47 ptr_glNormal3s v1 v2 v3
+
+{-# NOINLINE ptr_glNormal3s #-}
+ptr_glNormal3s :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
+ptr_glNormal3s = unsafePerformIO $ getCommand "glNormal3s"
+
+-- glNormal3sv -----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glNormal.xml OpenGL 2.x>.
+glNormal3sv
+  :: MonadIO m
+  => Ptr GLshort -- ^ @v@ pointing to @3@ elements of type @GLshort@.
+  -> m ()
+glNormal3sv v1 = liftIO $ dyn48 ptr_glNormal3sv v1
+
+{-# NOINLINE ptr_glNormal3sv #-}
+ptr_glNormal3sv :: FunPtr (Ptr GLshort -> IO ())
+ptr_glNormal3sv = unsafePerformIO $ getCommand "glNormal3sv"
+
+-- glNormal3x ------------------------------------------------------------------
+
+glNormal3x
+  :: MonadIO m
+  => GLfixed -- ^ @nx@.
+  -> GLfixed -- ^ @ny@.
+  -> GLfixed -- ^ @nz@.
+  -> m ()
+glNormal3x v1 v2 v3 = liftIO $ dyn113 ptr_glNormal3x v1 v2 v3
+
+{-# NOINLINE ptr_glNormal3x #-}
+ptr_glNormal3x :: FunPtr (GLfixed -> GLfixed -> GLfixed -> IO ())
+ptr_glNormal3x = unsafePerformIO $ getCommand "glNormal3x"
+
+-- glNormal3xOES ---------------------------------------------------------------
+
+glNormal3xOES
+  :: MonadIO m
+  => GLfixed -- ^ @nx@.
+  -> GLfixed -- ^ @ny@.
+  -> GLfixed -- ^ @nz@.
+  -> m ()
+glNormal3xOES v1 v2 v3 = liftIO $ dyn113 ptr_glNormal3xOES v1 v2 v3
+
+{-# NOINLINE ptr_glNormal3xOES #-}
+ptr_glNormal3xOES :: FunPtr (GLfixed -> GLfixed -> GLfixed -> IO ())
+ptr_glNormal3xOES = unsafePerformIO $ getCommand "glNormal3xOES"
+
+-- glNormal3xvOES --------------------------------------------------------------
+
+glNormal3xvOES
+  :: MonadIO m
+  => Ptr GLfixed -- ^ @coords@ pointing to @3@ elements of type @GLfixed@.
+  -> m ()
+glNormal3xvOES v1 = liftIO $ dyn114 ptr_glNormal3xvOES v1
+
+{-# NOINLINE ptr_glNormal3xvOES #-}
+ptr_glNormal3xvOES :: FunPtr (Ptr GLfixed -> IO ())
+ptr_glNormal3xvOES = unsafePerformIO $ getCommand "glNormal3xvOES"
+
+-- glNormalFormatNV ------------------------------------------------------------
+
+glNormalFormatNV
+  :: MonadIO m
+  => GLenum -- ^ @type@.
+  -> GLsizei -- ^ @stride@.
+  -> m ()
+glNormalFormatNV v1 v2 = liftIO $ dyn247 ptr_glNormalFormatNV v1 v2
+
+{-# NOINLINE ptr_glNormalFormatNV #-}
+ptr_glNormalFormatNV :: FunPtr (GLenum -> GLsizei -> IO ())
+ptr_glNormalFormatNV = unsafePerformIO $ getCommand "glNormalFormatNV"
+
+-- glNormalP3ui ----------------------------------------------------------------
+
+glNormalP3ui
+  :: MonadIO m
+  => GLenum -- ^ @type@ of type [NormalPointerType](Graphics-GL-Groups.html#NormalPointerType).
+  -> GLuint -- ^ @coords@.
+  -> m ()
+glNormalP3ui v1 v2 = liftIO $ dyn19 ptr_glNormalP3ui v1 v2
+
+{-# NOINLINE ptr_glNormalP3ui #-}
+ptr_glNormalP3ui :: FunPtr (GLenum -> GLuint -> IO ())
+ptr_glNormalP3ui = unsafePerformIO $ getCommand "glNormalP3ui"
+
+-- glNormalP3uiv ---------------------------------------------------------------
+
+glNormalP3uiv
+  :: MonadIO m
+  => GLenum -- ^ @type@ of type [NormalPointerType](Graphics-GL-Groups.html#NormalPointerType).
+  -> Ptr GLuint -- ^ @coords@ pointing to @1@ element of type @GLuint@.
+  -> m ()
+glNormalP3uiv v1 v2 = liftIO $ dyn132 ptr_glNormalP3uiv v1 v2
+
+{-# NOINLINE ptr_glNormalP3uiv #-}
+ptr_glNormalP3uiv :: FunPtr (GLenum -> Ptr GLuint -> IO ())
+ptr_glNormalP3uiv = unsafePerformIO $ getCommand "glNormalP3uiv"
+
+-- glNormalPointer -------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glNormalPointer.xml OpenGL 2.x>.
+glNormalPointer
+  :: MonadIO m
+  => GLenum -- ^ @type@ of type [NormalPointerType](Graphics-GL-Groups.html#NormalPointerType).
+  -> GLsizei -- ^ @stride@.
+  -> Ptr a -- ^ @pointer@ pointing to @COMPSIZE(type,stride)@ elements of type @a@.
+  -> m ()
+glNormalPointer v1 v2 v3 = liftIO $ dyn49 ptr_glNormalPointer v1 v2 v3
+
+{-# NOINLINE ptr_glNormalPointer #-}
+ptr_glNormalPointer :: FunPtr (GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glNormalPointer = unsafePerformIO $ getCommand "glNormalPointer"
+
+-- glNormalPointerEXT ----------------------------------------------------------
+
+glNormalPointerEXT
+  :: MonadIO m
+  => GLenum -- ^ @type@ of type [NormalPointerType](Graphics-GL-Groups.html#NormalPointerType).
+  -> GLsizei -- ^ @stride@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr a -- ^ @pointer@ pointing to @COMPSIZE(type,stride,count)@ elements of type @a@.
+  -> m ()
+glNormalPointerEXT v1 v2 v3 v4 = liftIO $ dyn494 ptr_glNormalPointerEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glNormalPointerEXT #-}
+ptr_glNormalPointerEXT :: FunPtr (GLenum -> GLsizei -> GLsizei -> Ptr a -> IO ())
+ptr_glNormalPointerEXT = unsafePerformIO $ getCommand "glNormalPointerEXT"
+
+-- glNormalPointerListIBM ------------------------------------------------------
+
+glNormalPointerListIBM
+  :: MonadIO m
+  => GLenum -- ^ @type@ of type [NormalPointerType](Graphics-GL-Groups.html#NormalPointerType).
+  -> GLint -- ^ @stride@.
+  -> Ptr (Ptr a) -- ^ @pointer@ pointing to @COMPSIZE(type,stride)@ elements of type @Ptr a@.
+  -> GLint -- ^ @ptrstride@.
+  -> m ()
+glNormalPointerListIBM v1 v2 v3 v4 = liftIO $ dyn291 ptr_glNormalPointerListIBM v1 v2 v3 v4
+
+{-# NOINLINE ptr_glNormalPointerListIBM #-}
+ptr_glNormalPointerListIBM :: FunPtr (GLenum -> GLint -> Ptr (Ptr a) -> GLint -> IO ())
+ptr_glNormalPointerListIBM = unsafePerformIO $ getCommand "glNormalPointerListIBM"
+
+-- glNormalPointervINTEL -------------------------------------------------------
+
+glNormalPointervINTEL
+  :: MonadIO m
+  => GLenum -- ^ @type@ of type [NormalPointerType](Graphics-GL-Groups.html#NormalPointerType).
+  -> Ptr (Ptr a) -- ^ @pointer@ pointing to @4@ elements of type @Ptr a@.
+  -> m ()
+glNormalPointervINTEL v1 v2 = liftIO $ dyn279 ptr_glNormalPointervINTEL v1 v2
+
+{-# NOINLINE ptr_glNormalPointervINTEL #-}
+ptr_glNormalPointervINTEL :: FunPtr (GLenum -> Ptr (Ptr a) -> IO ())
+ptr_glNormalPointervINTEL = unsafePerformIO $ getCommand "glNormalPointervINTEL"
+
+-- glNormalStream3bATI ---------------------------------------------------------
+
+glNormalStream3bATI
+  :: MonadIO m
+  => GLenum -- ^ @stream@ of type [VertexStreamATI](Graphics-GL-Groups.html#VertexStreamATI).
+  -> GLbyte -- ^ @nx@.
+  -> GLbyte -- ^ @ny@.
+  -> GLbyte -- ^ @nz@.
+  -> m ()
+glNormalStream3bATI v1 v2 v3 v4 = liftIO $ dyn580 ptr_glNormalStream3bATI v1 v2 v3 v4
+
+{-# NOINLINE ptr_glNormalStream3bATI #-}
+ptr_glNormalStream3bATI :: FunPtr (GLenum -> GLbyte -> GLbyte -> GLbyte -> IO ())
+ptr_glNormalStream3bATI = unsafePerformIO $ getCommand "glNormalStream3bATI"
+
+-- glNormalStream3bvATI --------------------------------------------------------
+
+glNormalStream3bvATI
+  :: MonadIO m
+  => GLenum -- ^ @stream@ of type [VertexStreamATI](Graphics-GL-Groups.html#VertexStreamATI).
+  -> Ptr GLbyte -- ^ @coords@ pointing to @3@ elements of type @GLbyte@.
+  -> m ()
+glNormalStream3bvATI v1 v2 = liftIO $ dyn568 ptr_glNormalStream3bvATI v1 v2
+
+{-# NOINLINE ptr_glNormalStream3bvATI #-}
+ptr_glNormalStream3bvATI :: FunPtr (GLenum -> Ptr GLbyte -> IO ())
+ptr_glNormalStream3bvATI = unsafePerformIO $ getCommand "glNormalStream3bvATI"
+
+-- glNormalStream3dATI ---------------------------------------------------------
+
+glNormalStream3dATI
+  :: MonadIO m
+  => GLenum -- ^ @stream@ of type [VertexStreamATI](Graphics-GL-Groups.html#VertexStreamATI).
+  -> GLdouble -- ^ @nx@.
+  -> GLdouble -- ^ @ny@.
+  -> GLdouble -- ^ @nz@.
+  -> m ()
+glNormalStream3dATI v1 v2 v3 v4 = liftIO $ dyn548 ptr_glNormalStream3dATI v1 v2 v3 v4
+
+{-# NOINLINE ptr_glNormalStream3dATI #-}
+ptr_glNormalStream3dATI :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> IO ())
+ptr_glNormalStream3dATI = unsafePerformIO $ getCommand "glNormalStream3dATI"
+
+-- glNormalStream3dvATI --------------------------------------------------------
+
+glNormalStream3dvATI
+  :: MonadIO m
+  => GLenum -- ^ @stream@ of type [VertexStreamATI](Graphics-GL-Groups.html#VertexStreamATI).
+  -> Ptr GLdouble -- ^ @coords@ pointing to @3@ elements of type @GLdouble@.
+  -> m ()
+glNormalStream3dvATI v1 v2 = liftIO $ dyn100 ptr_glNormalStream3dvATI v1 v2
+
+{-# NOINLINE ptr_glNormalStream3dvATI #-}
+ptr_glNormalStream3dvATI :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+ptr_glNormalStream3dvATI = unsafePerformIO $ getCommand "glNormalStream3dvATI"
+
+-- glNormalStream3fATI ---------------------------------------------------------
+
+glNormalStream3fATI
+  :: MonadIO m
+  => GLenum -- ^ @stream@ of type [VertexStreamATI](Graphics-GL-Groups.html#VertexStreamATI).
+  -> GLfloat -- ^ @nx@.
+  -> GLfloat -- ^ @ny@.
+  -> GLfloat -- ^ @nz@.
+  -> m ()
+glNormalStream3fATI v1 v2 v3 v4 = liftIO $ dyn549 ptr_glNormalStream3fATI v1 v2 v3 v4
+
+{-# NOINLINE ptr_glNormalStream3fATI #-}
+ptr_glNormalStream3fATI :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glNormalStream3fATI = unsafePerformIO $ getCommand "glNormalStream3fATI"
+
+-- glNormalStream3fvATI --------------------------------------------------------
+
+glNormalStream3fvATI
+  :: MonadIO m
+  => GLenum -- ^ @stream@ of type [VertexStreamATI](Graphics-GL-Groups.html#VertexStreamATI).
+  -> Ptr GLfloat -- ^ @coords@ pointing to @3@ elements of type @GLfloat@.
+  -> m ()
+glNormalStream3fvATI v1 v2 = liftIO $ dyn101 ptr_glNormalStream3fvATI v1 v2
+
+{-# NOINLINE ptr_glNormalStream3fvATI #-}
+ptr_glNormalStream3fvATI :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+ptr_glNormalStream3fvATI = unsafePerformIO $ getCommand "glNormalStream3fvATI"
+
+-- glNormalStream3iATI ---------------------------------------------------------
+
+glNormalStream3iATI
+  :: MonadIO m
+  => GLenum -- ^ @stream@ of type [VertexStreamATI](Graphics-GL-Groups.html#VertexStreamATI).
+  -> GLint -- ^ @nx@.
+  -> GLint -- ^ @ny@.
+  -> GLint -- ^ @nz@.
+  -> m ()
+glNormalStream3iATI v1 v2 v3 v4 = liftIO $ dyn582 ptr_glNormalStream3iATI v1 v2 v3 v4
+
+{-# NOINLINE ptr_glNormalStream3iATI #-}
+ptr_glNormalStream3iATI :: FunPtr (GLenum -> GLint -> GLint -> GLint -> IO ())
+ptr_glNormalStream3iATI = unsafePerformIO $ getCommand "glNormalStream3iATI"
+
+-- glNormalStream3ivATI --------------------------------------------------------
+
+glNormalStream3ivATI
+  :: MonadIO m
+  => GLenum -- ^ @stream@ of type [VertexStreamATI](Graphics-GL-Groups.html#VertexStreamATI).
+  -> Ptr GLint -- ^ @coords@ pointing to @3@ elements of type @GLint@.
+  -> m ()
+glNormalStream3ivATI v1 v2 = liftIO $ dyn143 ptr_glNormalStream3ivATI v1 v2
+
+{-# NOINLINE ptr_glNormalStream3ivATI #-}
+ptr_glNormalStream3ivATI :: FunPtr (GLenum -> Ptr GLint -> IO ())
+ptr_glNormalStream3ivATI = unsafePerformIO $ getCommand "glNormalStream3ivATI"
+
+-- glNormalStream3sATI ---------------------------------------------------------
+
+glNormalStream3sATI
+  :: MonadIO m
+  => GLenum -- ^ @stream@ of type [VertexStreamATI](Graphics-GL-Groups.html#VertexStreamATI).
+  -> GLshort -- ^ @nx@.
+  -> GLshort -- ^ @ny@.
+  -> GLshort -- ^ @nz@.
+  -> m ()
+glNormalStream3sATI v1 v2 v3 v4 = liftIO $ dyn583 ptr_glNormalStream3sATI v1 v2 v3 v4
+
+{-# NOINLINE ptr_glNormalStream3sATI #-}
+ptr_glNormalStream3sATI :: FunPtr (GLenum -> GLshort -> GLshort -> GLshort -> IO ())
+ptr_glNormalStream3sATI = unsafePerformIO $ getCommand "glNormalStream3sATI"
+
+-- glNormalStream3svATI --------------------------------------------------------
+
+glNormalStream3svATI
+  :: MonadIO m
+  => GLenum -- ^ @stream@ of type [VertexStreamATI](Graphics-GL-Groups.html#VertexStreamATI).
+  -> Ptr GLshort -- ^ @coords@ pointing to @3@ elements of type @GLshort@.
+  -> m ()
+glNormalStream3svATI v1 v2 = liftIO $ dyn573 ptr_glNormalStream3svATI v1 v2
+
+{-# NOINLINE ptr_glNormalStream3svATI #-}
+ptr_glNormalStream3svATI :: FunPtr (GLenum -> Ptr GLshort -> IO ())
+ptr_glNormalStream3svATI = unsafePerformIO $ getCommand "glNormalStream3svATI"
+
+-- glObjectLabel ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glObjectLabel.xhtml OpenGL 4.x>.
+glObjectLabel
+  :: MonadIO m
+  => GLenum -- ^ @identifier@ of type [ObjectIdentifier](Graphics-GL-Groups.html#ObjectIdentifier).
+  -> GLuint -- ^ @name@.
+  -> GLsizei -- ^ @length@.
+  -> Ptr GLchar -- ^ @label@ pointing to @COMPSIZE(label,length)@ elements of type @GLchar@.
+  -> m ()
+glObjectLabel v1 v2 v3 v4 = liftIO $ dyn511 ptr_glObjectLabel v1 v2 v3 v4
+
+{-# NOINLINE ptr_glObjectLabel #-}
+ptr_glObjectLabel :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLchar -> IO ())
+ptr_glObjectLabel = unsafePerformIO $ getCommand "glObjectLabel"
+
+-- glObjectLabelKHR ------------------------------------------------------------
+
+-- | This command is an alias for 'glObjectLabel'.
+glObjectLabelKHR
+  :: MonadIO m
+  => GLenum -- ^ @identifier@ of type [ObjectIdentifier](Graphics-GL-Groups.html#ObjectIdentifier).
+  -> GLuint -- ^ @name@.
+  -> GLsizei -- ^ @length@.
+  -> Ptr GLchar -- ^ @label@.
+  -> m ()
+glObjectLabelKHR v1 v2 v3 v4 = liftIO $ dyn511 ptr_glObjectLabelKHR v1 v2 v3 v4
+
+{-# NOINLINE ptr_glObjectLabelKHR #-}
+ptr_glObjectLabelKHR :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLchar -> IO ())
+ptr_glObjectLabelKHR = unsafePerformIO $ getCommand "glObjectLabelKHR"
+
+-- glObjectPtrLabel ------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glObjectPtrLabel.xhtml OpenGL 4.x>.
+glObjectPtrLabel
+  :: MonadIO m
+  => Ptr a -- ^ @ptr@.
+  -> GLsizei -- ^ @length@.
+  -> Ptr GLchar -- ^ @label@ pointing to @COMPSIZE(label,length)@ elements of type @GLchar@.
+  -> m ()
+glObjectPtrLabel v1 v2 v3 = liftIO $ dyn633 ptr_glObjectPtrLabel v1 v2 v3
+
+{-# NOINLINE ptr_glObjectPtrLabel #-}
+ptr_glObjectPtrLabel :: FunPtr (Ptr a -> GLsizei -> Ptr GLchar -> IO ())
+ptr_glObjectPtrLabel = unsafePerformIO $ getCommand "glObjectPtrLabel"
+
+-- glObjectPtrLabelKHR ---------------------------------------------------------
+
+-- | This command is an alias for 'glObjectPtrLabel'.
+glObjectPtrLabelKHR
+  :: MonadIO m
+  => Ptr a -- ^ @ptr@.
+  -> GLsizei -- ^ @length@.
+  -> Ptr GLchar -- ^ @label@.
+  -> m ()
+glObjectPtrLabelKHR v1 v2 v3 = liftIO $ dyn633 ptr_glObjectPtrLabelKHR v1 v2 v3
+
+{-# NOINLINE ptr_glObjectPtrLabelKHR #-}
+ptr_glObjectPtrLabelKHR :: FunPtr (Ptr a -> GLsizei -> Ptr GLchar -> IO ())
+ptr_glObjectPtrLabelKHR = unsafePerformIO $ getCommand "glObjectPtrLabelKHR"
+
+-- glObjectPurgeableAPPLE ------------------------------------------------------
+
+glObjectPurgeableAPPLE
+  :: MonadIO m
+  => GLenum -- ^ @objectType@.
+  -> GLuint -- ^ @name@.
+  -> GLenum -- ^ @option@.
+  -> m GLenum
+glObjectPurgeableAPPLE v1 v2 v3 = liftIO $ dyn634 ptr_glObjectPurgeableAPPLE v1 v2 v3
+
+{-# NOINLINE ptr_glObjectPurgeableAPPLE #-}
+ptr_glObjectPurgeableAPPLE :: FunPtr (GLenum -> GLuint -> GLenum -> IO GLenum)
+ptr_glObjectPurgeableAPPLE = unsafePerformIO $ getCommand "glObjectPurgeableAPPLE"
+
+-- glObjectUnpurgeableAPPLE ----------------------------------------------------
+
+glObjectUnpurgeableAPPLE
+  :: MonadIO m
+  => GLenum -- ^ @objectType@.
+  -> GLuint -- ^ @name@.
+  -> GLenum -- ^ @option@.
+  -> m GLenum
+glObjectUnpurgeableAPPLE v1 v2 v3 = liftIO $ dyn634 ptr_glObjectUnpurgeableAPPLE v1 v2 v3
+
+{-# NOINLINE ptr_glObjectUnpurgeableAPPLE #-}
+ptr_glObjectUnpurgeableAPPLE :: FunPtr (GLenum -> GLuint -> GLenum -> IO GLenum)
+ptr_glObjectUnpurgeableAPPLE = unsafePerformIO $ getCommand "glObjectUnpurgeableAPPLE"
+
+-- glOrtho ---------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glOrtho.xml OpenGL 2.x>.
+glOrtho
+  :: MonadIO m
+  => GLdouble -- ^ @left@.
+  -> GLdouble -- ^ @right@.
+  -> GLdouble -- ^ @bottom@.
+  -> GLdouble -- ^ @top@.
+  -> GLdouble -- ^ @zNear@.
+  -> GLdouble -- ^ @zFar@.
+  -> m ()
+glOrtho v1 v2 v3 v4 v5 v6 = liftIO $ dyn309 ptr_glOrtho v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glOrtho #-}
+ptr_glOrtho :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+ptr_glOrtho = unsafePerformIO $ getCommand "glOrtho"
+
+-- glOrthof --------------------------------------------------------------------
+
+glOrthof
+  :: MonadIO m
+  => GLfloat -- ^ @l@.
+  -> GLfloat -- ^ @r@.
+  -> GLfloat -- ^ @b@.
+  -> GLfloat -- ^ @t@.
+  -> GLfloat -- ^ @n@.
+  -> GLfloat -- ^ @f@.
+  -> m ()
+glOrthof v1 v2 v3 v4 v5 v6 = liftIO $ dyn103 ptr_glOrthof v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glOrthof #-}
+ptr_glOrthof :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glOrthof = unsafePerformIO $ getCommand "glOrthof"
+
+-- glOrthofOES -----------------------------------------------------------------
+
+glOrthofOES
+  :: MonadIO m
+  => GLfloat -- ^ @l@.
+  -> GLfloat -- ^ @r@.
+  -> GLfloat -- ^ @b@.
+  -> GLfloat -- ^ @t@.
+  -> GLfloat -- ^ @n@.
+  -> GLfloat -- ^ @f@.
+  -> m ()
+glOrthofOES v1 v2 v3 v4 v5 v6 = liftIO $ dyn103 ptr_glOrthofOES v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glOrthofOES #-}
+ptr_glOrthofOES :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glOrthofOES = unsafePerformIO $ getCommand "glOrthofOES"
+
+-- glOrthox --------------------------------------------------------------------
+
+glOrthox
+  :: MonadIO m
+  => GLfixed -- ^ @l@.
+  -> GLfixed -- ^ @r@.
+  -> GLfixed -- ^ @b@.
+  -> GLfixed -- ^ @t@.
+  -> GLfixed -- ^ @n@.
+  -> GLfixed -- ^ @f@.
+  -> m ()
+glOrthox v1 v2 v3 v4 v5 v6 = liftIO $ dyn310 ptr_glOrthox v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glOrthox #-}
+ptr_glOrthox :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
+ptr_glOrthox = unsafePerformIO $ getCommand "glOrthox"
+
+-- glOrthoxOES -----------------------------------------------------------------
+
+glOrthoxOES
+  :: MonadIO m
+  => GLfixed -- ^ @l@.
+  -> GLfixed -- ^ @r@.
+  -> GLfixed -- ^ @b@.
+  -> GLfixed -- ^ @t@.
+  -> GLfixed -- ^ @n@.
+  -> GLfixed -- ^ @f@.
+  -> m ()
+glOrthoxOES v1 v2 v3 v4 v5 v6 = liftIO $ dyn310 ptr_glOrthoxOES v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glOrthoxOES #-}
+ptr_glOrthoxOES :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
+ptr_glOrthoxOES = unsafePerformIO $ getCommand "glOrthoxOES"
+
+-- glPNTrianglesfATI -----------------------------------------------------------
+
+glPNTrianglesfATI
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [PNTrianglesPNameATI](Graphics-GL-Groups.html#PNTrianglesPNameATI).
+  -> GLfloat -- ^ @param@.
+  -> m ()
+glPNTrianglesfATI v1 v2 = liftIO $ dyn0 ptr_glPNTrianglesfATI v1 v2
+
+{-# NOINLINE ptr_glPNTrianglesfATI #-}
+ptr_glPNTrianglesfATI :: FunPtr (GLenum -> GLfloat -> IO ())
+ptr_glPNTrianglesfATI = unsafePerformIO $ getCommand "glPNTrianglesfATI"
+
+-- glPNTrianglesiATI -----------------------------------------------------------
+
+glPNTrianglesiATI
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [PNTrianglesPNameATI](Graphics-GL-Groups.html#PNTrianglesPNameATI).
+  -> GLint -- ^ @param@.
+  -> m ()
+glPNTrianglesiATI v1 v2 = liftIO $ dyn58 ptr_glPNTrianglesiATI v1 v2
+
+{-# NOINLINE ptr_glPNTrianglesiATI #-}
+ptr_glPNTrianglesiATI :: FunPtr (GLenum -> GLint -> IO ())
+ptr_glPNTrianglesiATI = unsafePerformIO $ getCommand "glPNTrianglesiATI"
+
+-- glPassTexCoordATI -----------------------------------------------------------
+
+glPassTexCoordATI
+  :: MonadIO m
+  => GLuint -- ^ @dst@.
+  -> GLuint -- ^ @coord@.
+  -> GLenum -- ^ @swizzle@ of type [SwizzleOpATI](Graphics-GL-Groups.html#SwizzleOpATI).
+  -> m ()
+glPassTexCoordATI v1 v2 v3 = liftIO $ dyn635 ptr_glPassTexCoordATI v1 v2 v3
+
+{-# NOINLINE ptr_glPassTexCoordATI #-}
+ptr_glPassTexCoordATI :: FunPtr (GLuint -> GLuint -> GLenum -> IO ())
+ptr_glPassTexCoordATI = unsafePerformIO $ getCommand "glPassTexCoordATI"
+
+-- glPassThrough ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glPassThrough.xml OpenGL 2.x>.
+glPassThrough
+  :: MonadIO m
+  => GLfloat -- ^ @token@ of type @FeedbackElement@.
+  -> m ()
+glPassThrough v1 = liftIO $ dyn85 ptr_glPassThrough v1
+
+{-# NOINLINE ptr_glPassThrough #-}
+ptr_glPassThrough :: FunPtr (GLfloat -> IO ())
+ptr_glPassThrough = unsafePerformIO $ getCommand "glPassThrough"
+
+-- glPassThroughxOES -----------------------------------------------------------
+
+glPassThroughxOES
+  :: MonadIO m
+  => GLfixed -- ^ @token@.
+  -> m ()
+glPassThroughxOES v1 = liftIO $ dyn87 ptr_glPassThroughxOES v1
+
+{-# NOINLINE ptr_glPassThroughxOES #-}
+ptr_glPassThroughxOES :: FunPtr (GLfixed -> IO ())
+ptr_glPassThroughxOES = unsafePerformIO $ getCommand "glPassThroughxOES"
+
+-- glPatchParameterfv ----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glPatchParameter.xhtml OpenGL 4.x>.
+glPatchParameterfv
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [PatchParameterName](Graphics-GL-Groups.html#PatchParameterName).
+  -> Ptr GLfloat -- ^ @values@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
+  -> m ()
+glPatchParameterfv v1 v2 = liftIO $ dyn101 ptr_glPatchParameterfv v1 v2
+
+{-# NOINLINE ptr_glPatchParameterfv #-}
+ptr_glPatchParameterfv :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+ptr_glPatchParameterfv = unsafePerformIO $ getCommand "glPatchParameterfv"
+
+-- glPatchParameteri -----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glPatchParameter.xhtml OpenGL 4.x>.
+glPatchParameteri
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [PatchParameterName](Graphics-GL-Groups.html#PatchParameterName).
+  -> GLint -- ^ @value@.
+  -> m ()
+glPatchParameteri v1 v2 = liftIO $ dyn58 ptr_glPatchParameteri v1 v2
+
+{-# NOINLINE ptr_glPatchParameteri #-}
+ptr_glPatchParameteri :: FunPtr (GLenum -> GLint -> IO ())
+ptr_glPatchParameteri = unsafePerformIO $ getCommand "glPatchParameteri"
+
+-- glPatchParameteriEXT --------------------------------------------------------
+
+-- | This command is an alias for 'glPatchParameteri'.
+glPatchParameteriEXT
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [PatchParameterName](Graphics-GL-Groups.html#PatchParameterName).
+  -> GLint -- ^ @value@.
+  -> m ()
+glPatchParameteriEXT v1 v2 = liftIO $ dyn58 ptr_glPatchParameteriEXT v1 v2
+
+{-# NOINLINE ptr_glPatchParameteriEXT #-}
+ptr_glPatchParameteriEXT :: FunPtr (GLenum -> GLint -> IO ())
+ptr_glPatchParameteriEXT = unsafePerformIO $ getCommand "glPatchParameteriEXT"
+
+-- glPatchParameteriOES --------------------------------------------------------
+
+-- | This command is an alias for 'glPatchParameteri'.
+glPatchParameteriOES
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [PatchParameterName](Graphics-GL-Groups.html#PatchParameterName).
+  -> GLint -- ^ @value@.
+  -> m ()
+glPatchParameteriOES v1 v2 = liftIO $ dyn58 ptr_glPatchParameteriOES v1 v2
+
+{-# NOINLINE ptr_glPatchParameteriOES #-}
+ptr_glPatchParameteriOES :: FunPtr (GLenum -> GLint -> IO ())
+ptr_glPatchParameteriOES = unsafePerformIO $ getCommand "glPatchParameteriOES"
+
+-- glPathColorGenNV ------------------------------------------------------------
+
+glPathColorGenNV
+  :: MonadIO m
+  => GLenum -- ^ @color@ of type [PathColor](Graphics-GL-Groups.html#PathColor).
+  -> GLenum -- ^ @genMode@ of type [PathGenMode](Graphics-GL-Groups.html#PathGenMode).
+  -> GLenum -- ^ @colorFormat@ of type [PathColorFormat](Graphics-GL-Groups.html#PathColorFormat).
+  -> Ptr GLfloat -- ^ @coeffs@ pointing to @COMPSIZE(genMode,colorFormat)@ elements of type @GLfloat@.
+  -> m ()
+glPathColorGenNV v1 v2 v3 v4 = liftIO $ dyn334 ptr_glPathColorGenNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glPathColorGenNV #-}
+ptr_glPathColorGenNV :: FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glPathColorGenNV = unsafePerformIO $ getCommand "glPathColorGenNV"
+
+-- glPathCommandsNV ------------------------------------------------------------
+
+glPathCommandsNV
+  :: MonadIO m
+  => GLuint -- ^ @path@ of type @Path@.
+  -> GLsizei -- ^ @numCommands@.
+  -> Ptr GLubyte -- ^ @commands@ pointing to @numCommands@ elements of type @PathCommand@.
+  -> GLsizei -- ^ @numCoords@.
+  -> GLenum -- ^ @coordType@ of type [PathCoordType](Graphics-GL-Groups.html#PathCoordType).
+  -> Ptr a -- ^ @coords@ pointing to @COMPSIZE(numCoords,coordType)@ elements of type @a@.
+  -> m ()
+glPathCommandsNV v1 v2 v3 v4 v5 v6 = liftIO $ dyn636 ptr_glPathCommandsNV v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glPathCommandsNV #-}
+ptr_glPathCommandsNV :: FunPtr (GLuint -> GLsizei -> Ptr GLubyte -> GLsizei -> GLenum -> Ptr a -> IO ())
+ptr_glPathCommandsNV = unsafePerformIO $ getCommand "glPathCommandsNV"
+
+-- glPathCoordsNV --------------------------------------------------------------
+
+glPathCoordsNV
+  :: MonadIO m
+  => GLuint -- ^ @path@ of type @Path@.
+  -> GLsizei -- ^ @numCoords@.
+  -> GLenum -- ^ @coordType@ of type [PathCoordType](Graphics-GL-Groups.html#PathCoordType).
+  -> Ptr a -- ^ @coords@ pointing to @COMPSIZE(numCoords,coordType)@ elements of type @a@.
+  -> m ()
+glPathCoordsNV v1 v2 v3 v4 = liftIO $ dyn637 ptr_glPathCoordsNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glPathCoordsNV #-}
+ptr_glPathCoordsNV :: FunPtr (GLuint -> GLsizei -> GLenum -> Ptr a -> IO ())
+ptr_glPathCoordsNV = unsafePerformIO $ getCommand "glPathCoordsNV"
+
+-- glPathCoverDepthFuncNV ------------------------------------------------------
+
+glPathCoverDepthFuncNV
+  :: MonadIO m
+  => GLenum -- ^ @func@ of type [DepthFunction](Graphics-GL-Groups.html#DepthFunction).
+  -> m ()
+glPathCoverDepthFuncNV v1 = liftIO $ dyn5 ptr_glPathCoverDepthFuncNV v1
+
+{-# NOINLINE ptr_glPathCoverDepthFuncNV #-}
+ptr_glPathCoverDepthFuncNV :: FunPtr (GLenum -> IO ())
+ptr_glPathCoverDepthFuncNV = unsafePerformIO $ getCommand "glPathCoverDepthFuncNV"
+
+-- glPathDashArrayNV -----------------------------------------------------------
+
+glPathDashArrayNV
+  :: MonadIO m
+  => GLuint -- ^ @path@ of type @Path@.
+  -> GLsizei -- ^ @dashCount@.
+  -> Ptr GLfloat -- ^ @dashArray@ pointing to @dashCount@ elements of type @GLfloat@.
+  -> m ()
+glPathDashArrayNV v1 v2 v3 = liftIO $ dyn226 ptr_glPathDashArrayNV v1 v2 v3
+
+{-# NOINLINE ptr_glPathDashArrayNV #-}
+ptr_glPathDashArrayNV :: FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+ptr_glPathDashArrayNV = unsafePerformIO $ getCommand "glPathDashArrayNV"
+
+-- glPathFogGenNV --------------------------------------------------------------
+
+glPathFogGenNV
+  :: MonadIO m
+  => GLenum -- ^ @genMode@ of type [PathGenMode](Graphics-GL-Groups.html#PathGenMode).
+  -> m ()
+glPathFogGenNV v1 = liftIO $ dyn5 ptr_glPathFogGenNV v1
+
+{-# NOINLINE ptr_glPathFogGenNV #-}
+ptr_glPathFogGenNV :: FunPtr (GLenum -> IO ())
+ptr_glPathFogGenNV = unsafePerformIO $ getCommand "glPathFogGenNV"
+
+-- glPathGlyphIndexArrayNV -----------------------------------------------------
+
+glPathGlyphIndexArrayNV
+  :: MonadIO m
+  => GLuint -- ^ @firstPathName@.
+  -> GLenum -- ^ @fontTarget@.
+  -> Ptr a -- ^ @fontName@.
+  -> GLbitfield -- ^ @fontStyle@ of type [PathFontStyle](Graphics-GL-Groups.html#PathFontStyle).
+  -> GLuint -- ^ @firstGlyphIndex@.
+  -> GLsizei -- ^ @numGlyphs@.
+  -> GLuint -- ^ @pathParameterTemplate@.
+  -> GLfloat -- ^ @emScale@.
+  -> m GLenum
+glPathGlyphIndexArrayNV v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn638 ptr_glPathGlyphIndexArrayNV v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glPathGlyphIndexArrayNV #-}
+ptr_glPathGlyphIndexArrayNV :: FunPtr (GLuint -> GLenum -> Ptr a -> GLbitfield -> GLuint -> GLsizei -> GLuint -> GLfloat -> IO GLenum)
+ptr_glPathGlyphIndexArrayNV = unsafePerformIO $ getCommand "glPathGlyphIndexArrayNV"
+
+-- glPathGlyphIndexRangeNV -----------------------------------------------------
+
+glPathGlyphIndexRangeNV
+  :: MonadIO m
+  => GLenum -- ^ @fontTarget@.
+  -> Ptr a -- ^ @fontName@.
+  -> GLbitfield -- ^ @fontStyle@ of type [PathFontStyle](Graphics-GL-Groups.html#PathFontStyle).
+  -> GLuint -- ^ @pathParameterTemplate@.
+  -> GLfloat -- ^ @emScale@.
+  -> Ptr GLuint -- ^ @baseAndCount@.
+  -> m GLenum
+glPathGlyphIndexRangeNV v1 v2 v3 v4 v5 v6 = liftIO $ dyn639 ptr_glPathGlyphIndexRangeNV v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glPathGlyphIndexRangeNV #-}
+ptr_glPathGlyphIndexRangeNV :: FunPtr (GLenum -> Ptr a -> GLbitfield -> GLuint -> GLfloat -> Ptr GLuint -> IO GLenum)
+ptr_glPathGlyphIndexRangeNV = unsafePerformIO $ getCommand "glPathGlyphIndexRangeNV"
+
+-- glPathGlyphRangeNV ----------------------------------------------------------
+
+glPathGlyphRangeNV
+  :: MonadIO m
+  => GLuint -- ^ @firstPathName@ of type @Path@.
+  -> GLenum -- ^ @fontTarget@ of type [PathFontTarget](Graphics-GL-Groups.html#PathFontTarget).
+  -> Ptr a -- ^ @fontName@ pointing to @COMPSIZE(fontTarget,fontName)@ elements of type @a@.
+  -> GLbitfield -- ^ @fontStyle@ of type [PathFontStyle](Graphics-GL-Groups.html#PathFontStyle).
+  -> GLuint -- ^ @firstGlyph@.
+  -> GLsizei -- ^ @numGlyphs@.
+  -> GLenum -- ^ @handleMissingGlyphs@ of type [PathHandleMissingGlyphs](Graphics-GL-Groups.html#PathHandleMissingGlyphs).
+  -> GLuint -- ^ @pathParameterTemplate@ of type @Path@.
+  -> GLfloat -- ^ @emScale@.
+  -> m ()
+glPathGlyphRangeNV v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO $ dyn640 ptr_glPathGlyphRangeNV v1 v2 v3 v4 v5 v6 v7 v8 v9
+
+{-# NOINLINE ptr_glPathGlyphRangeNV #-}
+ptr_glPathGlyphRangeNV :: FunPtr (GLuint -> GLenum -> Ptr a -> GLbitfield -> GLuint -> GLsizei -> GLenum -> GLuint -> GLfloat -> IO ())
+ptr_glPathGlyphRangeNV = unsafePerformIO $ getCommand "glPathGlyphRangeNV"
+
+-- glPathGlyphsNV --------------------------------------------------------------
+
+glPathGlyphsNV
+  :: MonadIO m
+  => GLuint -- ^ @firstPathName@ of type @Path@.
+  -> GLenum -- ^ @fontTarget@ of type [PathFontTarget](Graphics-GL-Groups.html#PathFontTarget).
+  -> Ptr a -- ^ @fontName@ pointing to @COMPSIZE(fontTarget,fontName)@ elements of type @a@.
+  -> GLbitfield -- ^ @fontStyle@ of type [PathFontStyle](Graphics-GL-Groups.html#PathFontStyle).
+  -> GLsizei -- ^ @numGlyphs@.
+  -> GLenum -- ^ @type@ of type [PathElementType](Graphics-GL-Groups.html#PathElementType).
+  -> Ptr b -- ^ @charcodes@ pointing to @COMPSIZE(numGlyphs,type,charcodes)@ elements of type @b@.
+  -> GLenum -- ^ @handleMissingGlyphs@ of type [PathHandleMissingGlyphs](Graphics-GL-Groups.html#PathHandleMissingGlyphs).
+  -> GLuint -- ^ @pathParameterTemplate@ of type @Path@.
+  -> GLfloat -- ^ @emScale@.
+  -> m ()
+glPathGlyphsNV v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 = liftIO $ dyn641 ptr_glPathGlyphsNV v1 v2 v3 v4 v5 v6 v7 v8 v9 v10
+
+{-# NOINLINE ptr_glPathGlyphsNV #-}
+ptr_glPathGlyphsNV :: FunPtr (GLuint -> GLenum -> Ptr a -> GLbitfield -> GLsizei -> GLenum -> Ptr b -> GLenum -> GLuint -> GLfloat -> IO ())
+ptr_glPathGlyphsNV = unsafePerformIO $ getCommand "glPathGlyphsNV"
+
+-- glPathMemoryGlyphIndexArrayNV -----------------------------------------------
+
+glPathMemoryGlyphIndexArrayNV
+  :: MonadIO m
+  => GLuint -- ^ @firstPathName@.
+  -> GLenum -- ^ @fontTarget@.
+  -> GLsizeiptr -- ^ @fontSize@.
+  -> Ptr a -- ^ @fontData@.
+  -> GLsizei -- ^ @faceIndex@.
+  -> GLuint -- ^ @firstGlyphIndex@.
+  -> GLsizei -- ^ @numGlyphs@.
+  -> GLuint -- ^ @pathParameterTemplate@.
+  -> GLfloat -- ^ @emScale@.
+  -> m GLenum
+glPathMemoryGlyphIndexArrayNV v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO $ dyn642 ptr_glPathMemoryGlyphIndexArrayNV v1 v2 v3 v4 v5 v6 v7 v8 v9
+
+{-# NOINLINE ptr_glPathMemoryGlyphIndexArrayNV #-}
+ptr_glPathMemoryGlyphIndexArrayNV :: FunPtr (GLuint -> GLenum -> GLsizeiptr -> Ptr a -> GLsizei -> GLuint -> GLsizei -> GLuint -> GLfloat -> IO GLenum)
+ptr_glPathMemoryGlyphIndexArrayNV = unsafePerformIO $ getCommand "glPathMemoryGlyphIndexArrayNV"
+
+-- glPathParameterfNV ----------------------------------------------------------
+
+glPathParameterfNV
+  :: MonadIO m
+  => GLuint -- ^ @path@ of type @Path@.
+  -> GLenum -- ^ @pname@ of type [PathParameter](Graphics-GL-Groups.html#PathParameter).
+  -> GLfloat -- ^ @value@.
+  -> m ()
+glPathParameterfNV v1 v2 v3 = liftIO $ dyn514 ptr_glPathParameterfNV v1 v2 v3
+
+{-# NOINLINE ptr_glPathParameterfNV #-}
+ptr_glPathParameterfNV :: FunPtr (GLuint -> GLenum -> GLfloat -> IO ())
+ptr_glPathParameterfNV = unsafePerformIO $ getCommand "glPathParameterfNV"
+
+-- glPathParameterfvNV ---------------------------------------------------------
+
+glPathParameterfvNV
+  :: MonadIO m
+  => GLuint -- ^ @path@ of type @Path@.
+  -> GLenum -- ^ @pname@ of type [PathParameter](Graphics-GL-Groups.html#PathParameter).
+  -> Ptr GLfloat -- ^ @value@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
+  -> m ()
+glPathParameterfvNV v1 v2 v3 = liftIO $ dyn364 ptr_glPathParameterfvNV v1 v2 v3
+
+{-# NOINLINE ptr_glPathParameterfvNV #-}
+ptr_glPathParameterfvNV :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glPathParameterfvNV = unsafePerformIO $ getCommand "glPathParameterfvNV"
+
+-- glPathParameteriNV ----------------------------------------------------------
+
+glPathParameteriNV
+  :: MonadIO m
+  => GLuint -- ^ @path@ of type @Path@.
+  -> GLenum -- ^ @pname@ of type [PathParameter](Graphics-GL-Groups.html#PathParameter).
+  -> GLint -- ^ @value@.
+  -> m ()
+glPathParameteriNV v1 v2 v3 = liftIO $ dyn491 ptr_glPathParameteriNV v1 v2 v3
+
+{-# NOINLINE ptr_glPathParameteriNV #-}
+ptr_glPathParameteriNV :: FunPtr (GLuint -> GLenum -> GLint -> IO ())
+ptr_glPathParameteriNV = unsafePerformIO $ getCommand "glPathParameteriNV"
+
+-- glPathParameterivNV ---------------------------------------------------------
+
+glPathParameterivNV
+  :: MonadIO m
+  => GLuint -- ^ @path@ of type @Path@.
+  -> GLenum -- ^ @pname@ of type [PathParameter](Graphics-GL-Groups.html#PathParameter).
+  -> Ptr GLint -- ^ @value@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glPathParameterivNV v1 v2 v3 = liftIO $ dyn348 ptr_glPathParameterivNV v1 v2 v3
+
+{-# NOINLINE ptr_glPathParameterivNV #-}
+ptr_glPathParameterivNV :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glPathParameterivNV = unsafePerformIO $ getCommand "glPathParameterivNV"
+
+-- glPathStencilDepthOffsetNV --------------------------------------------------
+
+glPathStencilDepthOffsetNV
+  :: MonadIO m
+  => GLfloat -- ^ @factor@.
+  -> GLfloat -- ^ @units@.
+  -> m ()
+glPathStencilDepthOffsetNV v1 v2 = liftIO $ dyn230 ptr_glPathStencilDepthOffsetNV v1 v2
+
+{-# NOINLINE ptr_glPathStencilDepthOffsetNV #-}
+ptr_glPathStencilDepthOffsetNV :: FunPtr (GLfloat -> GLfloat -> IO ())
+ptr_glPathStencilDepthOffsetNV = unsafePerformIO $ getCommand "glPathStencilDepthOffsetNV"
+
+-- glPathStencilFuncNV ---------------------------------------------------------
+
+glPathStencilFuncNV
+  :: MonadIO m
+  => GLenum -- ^ @func@ of type [StencilFunction](Graphics-GL-Groups.html#StencilFunction).
+  -> GLint -- ^ @ref@ of type @ClampedStencilValue@.
+  -> GLuint -- ^ @mask@ of type @MaskedStencilValue@.
+  -> m ()
+glPathStencilFuncNV v1 v2 v3 = liftIO $ dyn643 ptr_glPathStencilFuncNV v1 v2 v3
+
+{-# NOINLINE ptr_glPathStencilFuncNV #-}
+ptr_glPathStencilFuncNV :: FunPtr (GLenum -> GLint -> GLuint -> IO ())
+ptr_glPathStencilFuncNV = unsafePerformIO $ getCommand "glPathStencilFuncNV"
+
+-- glPathStringNV --------------------------------------------------------------
+
+glPathStringNV
+  :: MonadIO m
+  => GLuint -- ^ @path@ of type @Path@.
+  -> GLenum -- ^ @format@ of type [PathStringFormat](Graphics-GL-Groups.html#PathStringFormat).
+  -> GLsizei -- ^ @length@.
+  -> Ptr a -- ^ @pathString@ pointing to @length@ elements of type @a@.
+  -> m ()
+glPathStringNV v1 v2 v3 v4 = liftIO $ dyn644 ptr_glPathStringNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glPathStringNV #-}
+ptr_glPathStringNV :: FunPtr (GLuint -> GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glPathStringNV = unsafePerformIO $ getCommand "glPathStringNV"
+
+-- glPathSubCommandsNV ---------------------------------------------------------
+
+glPathSubCommandsNV
+  :: MonadIO m
+  => GLuint -- ^ @path@ of type @Path@.
+  -> GLsizei -- ^ @commandStart@.
+  -> GLsizei -- ^ @commandsToDelete@.
+  -> GLsizei -- ^ @numCommands@.
+  -> Ptr GLubyte -- ^ @commands@ pointing to @numCommands@ elements of type @PathCommand@.
+  -> GLsizei -- ^ @numCoords@.
+  -> GLenum -- ^ @coordType@ of type [PathCoordType](Graphics-GL-Groups.html#PathCoordType).
+  -> Ptr a -- ^ @coords@ pointing to @COMPSIZE(numCoords,coordType)@ elements of type @a@.
+  -> m ()
+glPathSubCommandsNV v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn645 ptr_glPathSubCommandsNV v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glPathSubCommandsNV #-}
+ptr_glPathSubCommandsNV :: FunPtr (GLuint -> GLsizei -> GLsizei -> GLsizei -> Ptr GLubyte -> GLsizei -> GLenum -> Ptr a -> IO ())
+ptr_glPathSubCommandsNV = unsafePerformIO $ getCommand "glPathSubCommandsNV"
+
+-- glPathSubCoordsNV -----------------------------------------------------------
+
+glPathSubCoordsNV
+  :: MonadIO m
+  => GLuint -- ^ @path@ of type @Path@.
+  -> GLsizei -- ^ @coordStart@.
+  -> GLsizei -- ^ @numCoords@.
+  -> GLenum -- ^ @coordType@ of type [PathCoordType](Graphics-GL-Groups.html#PathCoordType).
+  -> Ptr a -- ^ @coords@ pointing to @COMPSIZE(numCoords,coordType)@ elements of type @a@.
+  -> m ()
+glPathSubCoordsNV v1 v2 v3 v4 v5 = liftIO $ dyn646 ptr_glPathSubCoordsNV v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glPathSubCoordsNV #-}
+ptr_glPathSubCoordsNV :: FunPtr (GLuint -> GLsizei -> GLsizei -> GLenum -> Ptr a -> IO ())
+ptr_glPathSubCoordsNV = unsafePerformIO $ getCommand "glPathSubCoordsNV"
+
+-- glPathTexGenNV --------------------------------------------------------------
+
+glPathTexGenNV
+  :: MonadIO m
+  => GLenum -- ^ @texCoordSet@ of type [PathColor](Graphics-GL-Groups.html#PathColor).
+  -> GLenum -- ^ @genMode@ of type [PathGenMode](Graphics-GL-Groups.html#PathGenMode).
+  -> GLint -- ^ @components@.
+  -> Ptr GLfloat -- ^ @coeffs@ pointing to @COMPSIZE(genMode,components)@ elements of type @GLfloat@.
+  -> m ()
+glPathTexGenNV v1 v2 v3 v4 = liftIO $ dyn647 ptr_glPathTexGenNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glPathTexGenNV #-}
+ptr_glPathTexGenNV :: FunPtr (GLenum -> GLenum -> GLint -> Ptr GLfloat -> IO ())
+ptr_glPathTexGenNV = unsafePerformIO $ getCommand "glPathTexGenNV"
+
+-- glPauseTransformFeedback ----------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glPauseTransformFeedback.xhtml OpenGL 4.x>.
+glPauseTransformFeedback
+  :: MonadIO m
+  => m ()
+glPauseTransformFeedback = liftIO $ dyn11 ptr_glPauseTransformFeedback
+
+{-# NOINLINE ptr_glPauseTransformFeedback #-}
+ptr_glPauseTransformFeedback :: FunPtr (IO ())
+ptr_glPauseTransformFeedback = unsafePerformIO $ getCommand "glPauseTransformFeedback"
+
+-- glPauseTransformFeedbackNV --------------------------------------------------
+
+-- | This command is an alias for 'glPauseTransformFeedback'.
+glPauseTransformFeedbackNV
+  :: MonadIO m
+  => m ()
+glPauseTransformFeedbackNV = liftIO $ dyn11 ptr_glPauseTransformFeedbackNV
+
+{-# NOINLINE ptr_glPauseTransformFeedbackNV #-}
+ptr_glPauseTransformFeedbackNV :: FunPtr (IO ())
+ptr_glPauseTransformFeedbackNV = unsafePerformIO $ getCommand "glPauseTransformFeedbackNV"
+
+-- glPixelDataRangeNV ----------------------------------------------------------
+
+glPixelDataRangeNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [PixelDataRangeTargetNV](Graphics-GL-Groups.html#PixelDataRangeTargetNV).
+  -> GLsizei -- ^ @length@.
+  -> Ptr a -- ^ @pointer@ pointing to @length@ elements of type @a@.
+  -> m ()
+glPixelDataRangeNV v1 v2 v3 = liftIO $ dyn49 ptr_glPixelDataRangeNV v1 v2 v3
+
+{-# NOINLINE ptr_glPixelDataRangeNV #-}
+ptr_glPixelDataRangeNV :: FunPtr (GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glPixelDataRangeNV = unsafePerformIO $ getCommand "glPixelDataRangeNV"
+
+-- glPixelMapfv ----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glPixelMap.xml OpenGL 2.x>.
+glPixelMapfv
+  :: MonadIO m
+  => GLenum -- ^ @map@ of type [PixelMap](Graphics-GL-Groups.html#PixelMap).
+  -> GLsizei -- ^ @mapsize@ of type @CheckedInt32@.
+  -> Ptr GLfloat -- ^ @values@ pointing to @mapsize@ elements of type @GLfloat@.
+  -> m ()
+glPixelMapfv v1 v2 v3 = liftIO $ dyn233 ptr_glPixelMapfv v1 v2 v3
+
+{-# NOINLINE ptr_glPixelMapfv #-}
+ptr_glPixelMapfv :: FunPtr (GLenum -> GLsizei -> Ptr GLfloat -> IO ())
+ptr_glPixelMapfv = unsafePerformIO $ getCommand "glPixelMapfv"
+
diff --git a/src/Graphics/GL/Functions/F20.hs b/src/Graphics/GL/Functions/F20.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Functions/F20.hs
@@ -0,0 +1,1583 @@
+{-# OPTIONS_HADDOCK hide #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Functions.F20
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- Raw functions from the
+-- <http://www.opengl.org/registry/ OpenGL registry>.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Functions.F20 (
+  glPixelMapuiv,
+  glPixelMapusv,
+  glPixelMapx,
+  glPixelStoref,
+  glPixelStorei,
+  glPixelStorex,
+  glPixelTexGenParameterfSGIS,
+  glPixelTexGenParameterfvSGIS,
+  glPixelTexGenParameteriSGIS,
+  glPixelTexGenParameterivSGIS,
+  glPixelTexGenSGIX,
+  glPixelTransferf,
+  glPixelTransferi,
+  glPixelTransferxOES,
+  glPixelTransformParameterfEXT,
+  glPixelTransformParameterfvEXT,
+  glPixelTransformParameteriEXT,
+  glPixelTransformParameterivEXT,
+  glPixelZoom,
+  glPixelZoomxOES,
+  glPointAlongPathNV,
+  glPointParameterf,
+  glPointParameterfARB,
+  glPointParameterfEXT,
+  glPointParameterfSGIS,
+  glPointParameterfv,
+  glPointParameterfvARB,
+  glPointParameterfvEXT,
+  glPointParameterfvSGIS,
+  glPointParameteri,
+  glPointParameteriNV,
+  glPointParameteriv,
+  glPointParameterivNV,
+  glPointParameterx,
+  glPointParameterxOES,
+  glPointParameterxv,
+  glPointParameterxvOES,
+  glPointSize,
+  glPointSizePointerOES,
+  glPointSizex,
+  glPointSizexOES,
+  glPollAsyncSGIX,
+  glPollInstrumentsSGIX,
+  glPolygonMode,
+  glPolygonModeNV,
+  glPolygonOffset,
+  glPolygonOffsetClamp,
+  glPolygonOffsetClampEXT,
+  glPolygonOffsetEXT,
+  glPolygonOffsetx,
+  glPolygonOffsetxOES,
+  glPolygonStipple,
+  glPopAttrib,
+  glPopClientAttrib,
+  glPopDebugGroup,
+  glPopDebugGroupKHR,
+  glPopGroupMarkerEXT,
+  glPopMatrix,
+  glPopName,
+  glPresentFrameDualFillNV,
+  glPresentFrameKeyedNV,
+  glPrimitiveBoundingBox,
+  glPrimitiveBoundingBoxARB,
+  glPrimitiveBoundingBoxEXT,
+  glPrimitiveBoundingBoxOES,
+  glPrimitiveRestartIndex,
+  glPrimitiveRestartIndexNV,
+  glPrimitiveRestartNV,
+  glPrioritizeTextures,
+  glPrioritizeTexturesEXT,
+  glPrioritizeTexturesxOES,
+  glProgramBinary,
+  glProgramBinaryOES,
+  glProgramBufferParametersIivNV,
+  glProgramBufferParametersIuivNV,
+  glProgramBufferParametersfvNV,
+  glProgramEnvParameter4dARB,
+  glProgramEnvParameter4dvARB,
+  glProgramEnvParameter4fARB,
+  glProgramEnvParameter4fvARB,
+  glProgramEnvParameterI4iNV,
+  glProgramEnvParameterI4ivNV,
+  glProgramEnvParameterI4uiNV,
+  glProgramEnvParameterI4uivNV,
+  glProgramEnvParameters4fvEXT,
+  glProgramEnvParametersI4ivNV,
+  glProgramEnvParametersI4uivNV,
+  glProgramLocalParameter4dARB,
+  glProgramLocalParameter4dvARB,
+  glProgramLocalParameter4fARB,
+  glProgramLocalParameter4fvARB,
+  glProgramLocalParameterI4iNV,
+  glProgramLocalParameterI4ivNV,
+  glProgramLocalParameterI4uiNV,
+  glProgramLocalParameterI4uivNV,
+  glProgramLocalParameters4fvEXT,
+  glProgramLocalParametersI4ivNV,
+  glProgramLocalParametersI4uivNV,
+  glProgramNamedParameter4dNV,
+  glProgramNamedParameter4dvNV
+) where
+
+import Control.Monad.IO.Class ( MonadIO(..) )
+import Foreign.Ptr
+import Graphics.GL.Foreign
+import Graphics.GL.Types
+import System.IO.Unsafe ( unsafePerformIO )
+
+-- glPixelMapuiv ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glPixelMap.xml OpenGL 2.x>.
+glPixelMapuiv
+  :: MonadIO m
+  => GLenum -- ^ @map@ of type [PixelMap](Graphics-GL-Groups.html#PixelMap).
+  -> GLsizei -- ^ @mapsize@ of type @CheckedInt32@.
+  -> Ptr GLuint -- ^ @values@ pointing to @mapsize@ elements of type @GLuint@.
+  -> m ()
+glPixelMapuiv v1 v2 v3 = liftIO $ dyn204 ptr_glPixelMapuiv v1 v2 v3
+
+{-# NOINLINE ptr_glPixelMapuiv #-}
+ptr_glPixelMapuiv :: FunPtr (GLenum -> GLsizei -> Ptr GLuint -> IO ())
+ptr_glPixelMapuiv = unsafePerformIO $ getCommand "glPixelMapuiv"
+
+-- glPixelMapusv ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glPixelMap.xml OpenGL 2.x>.
+glPixelMapusv
+  :: MonadIO m
+  => GLenum -- ^ @map@ of type [PixelMap](Graphics-GL-Groups.html#PixelMap).
+  -> GLsizei -- ^ @mapsize@ of type @CheckedInt32@.
+  -> Ptr GLushort -- ^ @values@ pointing to @mapsize@ elements of type @GLushort@.
+  -> m ()
+glPixelMapusv v1 v2 v3 = liftIO $ dyn474 ptr_glPixelMapusv v1 v2 v3
+
+{-# NOINLINE ptr_glPixelMapusv #-}
+ptr_glPixelMapusv :: FunPtr (GLenum -> GLsizei -> Ptr GLushort -> IO ())
+ptr_glPixelMapusv = unsafePerformIO $ getCommand "glPixelMapusv"
+
+-- glPixelMapx -----------------------------------------------------------------
+
+glPixelMapx
+  :: MonadIO m
+  => GLenum -- ^ @map@ of type [PixelMap](Graphics-GL-Groups.html#PixelMap).
+  -> GLint -- ^ @size@.
+  -> Ptr GLfixed -- ^ @values@ pointing to @size@ elements of type @GLfixed@.
+  -> m ()
+glPixelMapx v1 v2 v3 = liftIO $ dyn407 ptr_glPixelMapx v1 v2 v3
+
+{-# NOINLINE ptr_glPixelMapx #-}
+ptr_glPixelMapx :: FunPtr (GLenum -> GLint -> Ptr GLfixed -> IO ())
+ptr_glPixelMapx = unsafePerformIO $ getCommand "glPixelMapx"
+
+-- glPixelStoref ---------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glPixelStore.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glPixelStore.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glPixelStore.xhtml OpenGL 4.x>.
+glPixelStoref
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [PixelStoreParameter](Graphics-GL-Groups.html#PixelStoreParameter).
+  -> GLfloat -- ^ @param@ of type @CheckedFloat32@.
+  -> m ()
+glPixelStoref v1 v2 = liftIO $ dyn0 ptr_glPixelStoref v1 v2
+
+{-# NOINLINE ptr_glPixelStoref #-}
+ptr_glPixelStoref :: FunPtr (GLenum -> GLfloat -> IO ())
+ptr_glPixelStoref = unsafePerformIO $ getCommand "glPixelStoref"
+
+-- glPixelStorei ---------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glPixelStore.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glPixelStore.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glPixelStore.xhtml OpenGL 4.x>.
+glPixelStorei
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [PixelStoreParameter](Graphics-GL-Groups.html#PixelStoreParameter).
+  -> GLint -- ^ @param@ of type @CheckedInt32@.
+  -> m ()
+glPixelStorei v1 v2 = liftIO $ dyn58 ptr_glPixelStorei v1 v2
+
+{-# NOINLINE ptr_glPixelStorei #-}
+ptr_glPixelStorei :: FunPtr (GLenum -> GLint -> IO ())
+ptr_glPixelStorei = unsafePerformIO $ getCommand "glPixelStorei"
+
+-- glPixelStorex ---------------------------------------------------------------
+
+glPixelStorex
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [PixelStoreParameter](Graphics-GL-Groups.html#PixelStoreParameter).
+  -> GLfixed -- ^ @param@.
+  -> m ()
+glPixelStorex v1 v2 = liftIO $ dyn1 ptr_glPixelStorex v1 v2
+
+{-# NOINLINE ptr_glPixelStorex #-}
+ptr_glPixelStorex :: FunPtr (GLenum -> GLfixed -> IO ())
+ptr_glPixelStorex = unsafePerformIO $ getCommand "glPixelStorex"
+
+-- glPixelTexGenParameterfSGIS -------------------------------------------------
+
+glPixelTexGenParameterfSGIS
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [PixelTexGenParameterNameSGIS](Graphics-GL-Groups.html#PixelTexGenParameterNameSGIS).
+  -> GLfloat -- ^ @param@ of type @CheckedFloat32@.
+  -> m ()
+glPixelTexGenParameterfSGIS v1 v2 = liftIO $ dyn0 ptr_glPixelTexGenParameterfSGIS v1 v2
+
+{-# NOINLINE ptr_glPixelTexGenParameterfSGIS #-}
+ptr_glPixelTexGenParameterfSGIS :: FunPtr (GLenum -> GLfloat -> IO ())
+ptr_glPixelTexGenParameterfSGIS = unsafePerformIO $ getCommand "glPixelTexGenParameterfSGIS"
+
+-- glPixelTexGenParameterfvSGIS ------------------------------------------------
+
+glPixelTexGenParameterfvSGIS
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [PixelTexGenParameterNameSGIS](Graphics-GL-Groups.html#PixelTexGenParameterNameSGIS).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @CheckedFloat32@.
+  -> m ()
+glPixelTexGenParameterfvSGIS v1 v2 = liftIO $ dyn101 ptr_glPixelTexGenParameterfvSGIS v1 v2
+
+{-# NOINLINE ptr_glPixelTexGenParameterfvSGIS #-}
+ptr_glPixelTexGenParameterfvSGIS :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+ptr_glPixelTexGenParameterfvSGIS = unsafePerformIO $ getCommand "glPixelTexGenParameterfvSGIS"
+
+-- glPixelTexGenParameteriSGIS -------------------------------------------------
+
+glPixelTexGenParameteriSGIS
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [PixelTexGenParameterNameSGIS](Graphics-GL-Groups.html#PixelTexGenParameterNameSGIS).
+  -> GLint -- ^ @param@ of type @CheckedInt32@.
+  -> m ()
+glPixelTexGenParameteriSGIS v1 v2 = liftIO $ dyn58 ptr_glPixelTexGenParameteriSGIS v1 v2
+
+{-# NOINLINE ptr_glPixelTexGenParameteriSGIS #-}
+ptr_glPixelTexGenParameteriSGIS :: FunPtr (GLenum -> GLint -> IO ())
+ptr_glPixelTexGenParameteriSGIS = unsafePerformIO $ getCommand "glPixelTexGenParameteriSGIS"
+
+-- glPixelTexGenParameterivSGIS ------------------------------------------------
+
+glPixelTexGenParameterivSGIS
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [PixelTexGenParameterNameSGIS](Graphics-GL-Groups.html#PixelTexGenParameterNameSGIS).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @CheckedInt32@.
+  -> m ()
+glPixelTexGenParameterivSGIS v1 v2 = liftIO $ dyn143 ptr_glPixelTexGenParameterivSGIS v1 v2
+
+{-# NOINLINE ptr_glPixelTexGenParameterivSGIS #-}
+ptr_glPixelTexGenParameterivSGIS :: FunPtr (GLenum -> Ptr GLint -> IO ())
+ptr_glPixelTexGenParameterivSGIS = unsafePerformIO $ getCommand "glPixelTexGenParameterivSGIS"
+
+-- glPixelTexGenSGIX -----------------------------------------------------------
+
+glPixelTexGenSGIX
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [PixelTexGenModeSGIX](Graphics-GL-Groups.html#PixelTexGenModeSGIX).
+  -> m ()
+glPixelTexGenSGIX v1 = liftIO $ dyn5 ptr_glPixelTexGenSGIX v1
+
+{-# NOINLINE ptr_glPixelTexGenSGIX #-}
+ptr_glPixelTexGenSGIX :: FunPtr (GLenum -> IO ())
+ptr_glPixelTexGenSGIX = unsafePerformIO $ getCommand "glPixelTexGenSGIX"
+
+-- glPixelTransferf ------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glPixelTransfer.xml OpenGL 2.x>.
+glPixelTransferf
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [PixelTransferParameter](Graphics-GL-Groups.html#PixelTransferParameter).
+  -> GLfloat -- ^ @param@ of type @CheckedFloat32@.
+  -> m ()
+glPixelTransferf v1 v2 = liftIO $ dyn0 ptr_glPixelTransferf v1 v2
+
+{-# NOINLINE ptr_glPixelTransferf #-}
+ptr_glPixelTransferf :: FunPtr (GLenum -> GLfloat -> IO ())
+ptr_glPixelTransferf = unsafePerformIO $ getCommand "glPixelTransferf"
+
+-- glPixelTransferi ------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glPixelTransfer.xml OpenGL 2.x>.
+glPixelTransferi
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [PixelTransferParameter](Graphics-GL-Groups.html#PixelTransferParameter).
+  -> GLint -- ^ @param@ of type @CheckedInt32@.
+  -> m ()
+glPixelTransferi v1 v2 = liftIO $ dyn58 ptr_glPixelTransferi v1 v2
+
+{-# NOINLINE ptr_glPixelTransferi #-}
+ptr_glPixelTransferi :: FunPtr (GLenum -> GLint -> IO ())
+ptr_glPixelTransferi = unsafePerformIO $ getCommand "glPixelTransferi"
+
+-- glPixelTransferxOES ---------------------------------------------------------
+
+glPixelTransferxOES
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [PixelTransferParameter](Graphics-GL-Groups.html#PixelTransferParameter).
+  -> GLfixed -- ^ @param@.
+  -> m ()
+glPixelTransferxOES v1 v2 = liftIO $ dyn1 ptr_glPixelTransferxOES v1 v2
+
+{-# NOINLINE ptr_glPixelTransferxOES #-}
+ptr_glPixelTransferxOES :: FunPtr (GLenum -> GLfixed -> IO ())
+ptr_glPixelTransferxOES = unsafePerformIO $ getCommand "glPixelTransferxOES"
+
+-- glPixelTransformParameterfEXT -----------------------------------------------
+
+glPixelTransformParameterfEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [PixelTransformTargetEXT](Graphics-GL-Groups.html#PixelTransformTargetEXT).
+  -> GLenum -- ^ @pname@ of type [PixelTransformPNameEXT](Graphics-GL-Groups.html#PixelTransformPNameEXT).
+  -> GLfloat -- ^ @param@.
+  -> m ()
+glPixelTransformParameterfEXT v1 v2 v3 = liftIO $ dyn168 ptr_glPixelTransformParameterfEXT v1 v2 v3
+
+{-# NOINLINE ptr_glPixelTransformParameterfEXT #-}
+ptr_glPixelTransformParameterfEXT :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
+ptr_glPixelTransformParameterfEXT = unsafePerformIO $ getCommand "glPixelTransformParameterfEXT"
+
+-- glPixelTransformParameterfvEXT ----------------------------------------------
+
+glPixelTransformParameterfvEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [PixelTransformTargetEXT](Graphics-GL-Groups.html#PixelTransformTargetEXT).
+  -> GLenum -- ^ @pname@ of type [PixelTransformPNameEXT](Graphics-GL-Groups.html#PixelTransformPNameEXT).
+  -> Ptr GLfloat -- ^ @params@ pointing to @1@ element of type @GLfloat@.
+  -> m ()
+glPixelTransformParameterfvEXT v1 v2 v3 = liftIO $ dyn139 ptr_glPixelTransformParameterfvEXT v1 v2 v3
+
+{-# NOINLINE ptr_glPixelTransformParameterfvEXT #-}
+ptr_glPixelTransformParameterfvEXT :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glPixelTransformParameterfvEXT = unsafePerformIO $ getCommand "glPixelTransformParameterfvEXT"
+
+-- glPixelTransformParameteriEXT -----------------------------------------------
+
+glPixelTransformParameteriEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [PixelTransformTargetEXT](Graphics-GL-Groups.html#PixelTransformTargetEXT).
+  -> GLenum -- ^ @pname@ of type [PixelTransformPNameEXT](Graphics-GL-Groups.html#PixelTransformPNameEXT).
+  -> GLint -- ^ @param@.
+  -> m ()
+glPixelTransformParameteriEXT v1 v2 v3 = liftIO $ dyn66 ptr_glPixelTransformParameteriEXT v1 v2 v3
+
+{-# NOINLINE ptr_glPixelTransformParameteriEXT #-}
+ptr_glPixelTransformParameteriEXT :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
+ptr_glPixelTransformParameteriEXT = unsafePerformIO $ getCommand "glPixelTransformParameteriEXT"
+
+-- glPixelTransformParameterivEXT ----------------------------------------------
+
+glPixelTransformParameterivEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [PixelTransformTargetEXT](Graphics-GL-Groups.html#PixelTransformTargetEXT).
+  -> GLenum -- ^ @pname@ of type [PixelTransformPNameEXT](Graphics-GL-Groups.html#PixelTransformPNameEXT).
+  -> Ptr GLint -- ^ @params@ pointing to @1@ element of type @GLint@.
+  -> m ()
+glPixelTransformParameterivEXT v1 v2 v3 = liftIO $ dyn140 ptr_glPixelTransformParameterivEXT v1 v2 v3
+
+{-# NOINLINE ptr_glPixelTransformParameterivEXT #-}
+ptr_glPixelTransformParameterivEXT :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glPixelTransformParameterivEXT = unsafePerformIO $ getCommand "glPixelTransformParameterivEXT"
+
+-- glPixelZoom -----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glPixelZoom.xml OpenGL 2.x>.
+glPixelZoom
+  :: MonadIO m
+  => GLfloat -- ^ @xfactor@.
+  -> GLfloat -- ^ @yfactor@.
+  -> m ()
+glPixelZoom v1 v2 = liftIO $ dyn230 ptr_glPixelZoom v1 v2
+
+{-# NOINLINE ptr_glPixelZoom #-}
+ptr_glPixelZoom :: FunPtr (GLfloat -> GLfloat -> IO ())
+ptr_glPixelZoom = unsafePerformIO $ getCommand "glPixelZoom"
+
+-- glPixelZoomxOES -------------------------------------------------------------
+
+glPixelZoomxOES
+  :: MonadIO m
+  => GLfixed -- ^ @xfactor@.
+  -> GLfixed -- ^ @yfactor@.
+  -> m ()
+glPixelZoomxOES v1 v2 = liftIO $ dyn232 ptr_glPixelZoomxOES v1 v2
+
+{-# NOINLINE ptr_glPixelZoomxOES #-}
+ptr_glPixelZoomxOES :: FunPtr (GLfixed -> GLfixed -> IO ())
+ptr_glPixelZoomxOES = unsafePerformIO $ getCommand "glPixelZoomxOES"
+
+-- glPointAlongPathNV ----------------------------------------------------------
+
+glPointAlongPathNV
+  :: MonadIO m
+  => GLuint -- ^ @path@ of type @Path@.
+  -> GLsizei -- ^ @startSegment@.
+  -> GLsizei -- ^ @numSegments@.
+  -> GLfloat -- ^ @distance@.
+  -> Ptr GLfloat -- ^ @x@ pointing to @1@ element of type @GLfloat@.
+  -> Ptr GLfloat -- ^ @y@ pointing to @1@ element of type @GLfloat@.
+  -> Ptr GLfloat -- ^ @tangentX@ pointing to @1@ element of type @GLfloat@.
+  -> Ptr GLfloat -- ^ @tangentY@ pointing to @1@ element of type @GLfloat@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glPointAlongPathNV v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn648 ptr_glPointAlongPathNV v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glPointAlongPathNV #-}
+ptr_glPointAlongPathNV :: FunPtr (GLuint -> GLsizei -> GLsizei -> GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO GLboolean)
+ptr_glPointAlongPathNV = unsafePerformIO $ getCommand "glPointAlongPathNV"
+
+-- glPointParameterf -----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glPointParameter.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glPointParameter.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glPointParameter.xhtml OpenGL 4.x>.
+glPointParameterf
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [PointParameterNameARB](Graphics-GL-Groups.html#PointParameterNameARB).
+  -> GLfloat -- ^ @param@ of type @CheckedFloat32@.
+  -> m ()
+glPointParameterf v1 v2 = liftIO $ dyn0 ptr_glPointParameterf v1 v2
+
+{-# NOINLINE ptr_glPointParameterf #-}
+ptr_glPointParameterf :: FunPtr (GLenum -> GLfloat -> IO ())
+ptr_glPointParameterf = unsafePerformIO $ getCommand "glPointParameterf"
+
+-- glPointParameterfARB --------------------------------------------------------
+
+-- | This command is an alias for 'glPointParameterf'.
+glPointParameterfARB
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [PointParameterNameARB](Graphics-GL-Groups.html#PointParameterNameARB).
+  -> GLfloat -- ^ @param@ of type @CheckedFloat32@.
+  -> m ()
+glPointParameterfARB v1 v2 = liftIO $ dyn0 ptr_glPointParameterfARB v1 v2
+
+{-# NOINLINE ptr_glPointParameterfARB #-}
+ptr_glPointParameterfARB :: FunPtr (GLenum -> GLfloat -> IO ())
+ptr_glPointParameterfARB = unsafePerformIO $ getCommand "glPointParameterfARB"
+
+-- glPointParameterfEXT --------------------------------------------------------
+
+-- | This command is an alias for 'glPointParameterf'.
+glPointParameterfEXT
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [PointParameterNameARB](Graphics-GL-Groups.html#PointParameterNameARB).
+  -> GLfloat -- ^ @param@ of type @CheckedFloat32@.
+  -> m ()
+glPointParameterfEXT v1 v2 = liftIO $ dyn0 ptr_glPointParameterfEXT v1 v2
+
+{-# NOINLINE ptr_glPointParameterfEXT #-}
+ptr_glPointParameterfEXT :: FunPtr (GLenum -> GLfloat -> IO ())
+ptr_glPointParameterfEXT = unsafePerformIO $ getCommand "glPointParameterfEXT"
+
+-- glPointParameterfSGIS -------------------------------------------------------
+
+-- | This command is an alias for 'glPointParameterf'.
+glPointParameterfSGIS
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [PointParameterNameARB](Graphics-GL-Groups.html#PointParameterNameARB).
+  -> GLfloat -- ^ @param@ of type @CheckedFloat32@.
+  -> m ()
+glPointParameterfSGIS v1 v2 = liftIO $ dyn0 ptr_glPointParameterfSGIS v1 v2
+
+{-# NOINLINE ptr_glPointParameterfSGIS #-}
+ptr_glPointParameterfSGIS :: FunPtr (GLenum -> GLfloat -> IO ())
+ptr_glPointParameterfSGIS = unsafePerformIO $ getCommand "glPointParameterfSGIS"
+
+-- glPointParameterfv ----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glPointParameter.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glPointParameter.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glPointParameter.xhtml OpenGL 4.x>.
+glPointParameterfv
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [PointParameterNameARB](Graphics-GL-Groups.html#PointParameterNameARB).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @CheckedFloat32@.
+  -> m ()
+glPointParameterfv v1 v2 = liftIO $ dyn101 ptr_glPointParameterfv v1 v2
+
+{-# NOINLINE ptr_glPointParameterfv #-}
+ptr_glPointParameterfv :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+ptr_glPointParameterfv = unsafePerformIO $ getCommand "glPointParameterfv"
+
+-- glPointParameterfvARB -------------------------------------------------------
+
+-- | This command is an alias for 'glPointParameterfv'.
+glPointParameterfvARB
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [PointParameterNameARB](Graphics-GL-Groups.html#PointParameterNameARB).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @CheckedFloat32@.
+  -> m ()
+glPointParameterfvARB v1 v2 = liftIO $ dyn101 ptr_glPointParameterfvARB v1 v2
+
+{-# NOINLINE ptr_glPointParameterfvARB #-}
+ptr_glPointParameterfvARB :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+ptr_glPointParameterfvARB = unsafePerformIO $ getCommand "glPointParameterfvARB"
+
+-- glPointParameterfvEXT -------------------------------------------------------
+
+-- | This command is an alias for 'glPointParameterfv'.
+glPointParameterfvEXT
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [PointParameterNameARB](Graphics-GL-Groups.html#PointParameterNameARB).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @CheckedFloat32@.
+  -> m ()
+glPointParameterfvEXT v1 v2 = liftIO $ dyn101 ptr_glPointParameterfvEXT v1 v2
+
+{-# NOINLINE ptr_glPointParameterfvEXT #-}
+ptr_glPointParameterfvEXT :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+ptr_glPointParameterfvEXT = unsafePerformIO $ getCommand "glPointParameterfvEXT"
+
+-- glPointParameterfvSGIS ------------------------------------------------------
+
+-- | This command is an alias for 'glPointParameterfv'.
+glPointParameterfvSGIS
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [PointParameterNameARB](Graphics-GL-Groups.html#PointParameterNameARB).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @CheckedFloat32@.
+  -> m ()
+glPointParameterfvSGIS v1 v2 = liftIO $ dyn101 ptr_glPointParameterfvSGIS v1 v2
+
+{-# NOINLINE ptr_glPointParameterfvSGIS #-}
+ptr_glPointParameterfvSGIS :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+ptr_glPointParameterfvSGIS = unsafePerformIO $ getCommand "glPointParameterfvSGIS"
+
+-- glPointParameteri -----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glPointParameter.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glPointParameter.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glPointParameter.xhtml OpenGL 4.x>.
+glPointParameteri
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [PointParameterNameARB](Graphics-GL-Groups.html#PointParameterNameARB).
+  -> GLint -- ^ @param@.
+  -> m ()
+glPointParameteri v1 v2 = liftIO $ dyn58 ptr_glPointParameteri v1 v2
+
+{-# NOINLINE ptr_glPointParameteri #-}
+ptr_glPointParameteri :: FunPtr (GLenum -> GLint -> IO ())
+ptr_glPointParameteri = unsafePerformIO $ getCommand "glPointParameteri"
+
+-- glPointParameteriNV ---------------------------------------------------------
+
+-- | This command is an alias for 'glPointParameteri'.
+glPointParameteriNV
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [PointParameterNameARB](Graphics-GL-Groups.html#PointParameterNameARB).
+  -> GLint -- ^ @param@.
+  -> m ()
+glPointParameteriNV v1 v2 = liftIO $ dyn58 ptr_glPointParameteriNV v1 v2
+
+{-# NOINLINE ptr_glPointParameteriNV #-}
+ptr_glPointParameteriNV :: FunPtr (GLenum -> GLint -> IO ())
+ptr_glPointParameteriNV = unsafePerformIO $ getCommand "glPointParameteriNV"
+
+-- glPointParameteriv ----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glPointParameter.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glPointParameter.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glPointParameter.xhtml OpenGL 4.x>.
+glPointParameteriv
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [PointParameterNameARB](Graphics-GL-Groups.html#PointParameterNameARB).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glPointParameteriv v1 v2 = liftIO $ dyn143 ptr_glPointParameteriv v1 v2
+
+{-# NOINLINE ptr_glPointParameteriv #-}
+ptr_glPointParameteriv :: FunPtr (GLenum -> Ptr GLint -> IO ())
+ptr_glPointParameteriv = unsafePerformIO $ getCommand "glPointParameteriv"
+
+-- glPointParameterivNV --------------------------------------------------------
+
+-- | This command is an alias for 'glPointParameteriv'.
+glPointParameterivNV
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [PointParameterNameARB](Graphics-GL-Groups.html#PointParameterNameARB).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glPointParameterivNV v1 v2 = liftIO $ dyn143 ptr_glPointParameterivNV v1 v2
+
+{-# NOINLINE ptr_glPointParameterivNV #-}
+ptr_glPointParameterivNV :: FunPtr (GLenum -> Ptr GLint -> IO ())
+ptr_glPointParameterivNV = unsafePerformIO $ getCommand "glPointParameterivNV"
+
+-- glPointParameterx -----------------------------------------------------------
+
+glPointParameterx
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [PointParameterNameARB](Graphics-GL-Groups.html#PointParameterNameARB).
+  -> GLfixed -- ^ @param@.
+  -> m ()
+glPointParameterx v1 v2 = liftIO $ dyn1 ptr_glPointParameterx v1 v2
+
+{-# NOINLINE ptr_glPointParameterx #-}
+ptr_glPointParameterx :: FunPtr (GLenum -> GLfixed -> IO ())
+ptr_glPointParameterx = unsafePerformIO $ getCommand "glPointParameterx"
+
+-- glPointParameterxOES --------------------------------------------------------
+
+glPointParameterxOES
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [PointParameterNameARB](Graphics-GL-Groups.html#PointParameterNameARB).
+  -> GLfixed -- ^ @param@.
+  -> m ()
+glPointParameterxOES v1 v2 = liftIO $ dyn1 ptr_glPointParameterxOES v1 v2
+
+{-# NOINLINE ptr_glPointParameterxOES #-}
+ptr_glPointParameterxOES :: FunPtr (GLenum -> GLfixed -> IO ())
+ptr_glPointParameterxOES = unsafePerformIO $ getCommand "glPointParameterxOES"
+
+-- glPointParameterxv ----------------------------------------------------------
+
+glPointParameterxv
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [PointParameterNameARB](Graphics-GL-Groups.html#PointParameterNameARB).
+  -> Ptr GLfixed -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfixed@.
+  -> m ()
+glPointParameterxv v1 v2 = liftIO $ dyn102 ptr_glPointParameterxv v1 v2
+
+{-# NOINLINE ptr_glPointParameterxv #-}
+ptr_glPointParameterxv :: FunPtr (GLenum -> Ptr GLfixed -> IO ())
+ptr_glPointParameterxv = unsafePerformIO $ getCommand "glPointParameterxv"
+
+-- glPointParameterxvOES -------------------------------------------------------
+
+glPointParameterxvOES
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [PointParameterNameARB](Graphics-GL-Groups.html#PointParameterNameARB).
+  -> Ptr GLfixed -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfixed@.
+  -> m ()
+glPointParameterxvOES v1 v2 = liftIO $ dyn102 ptr_glPointParameterxvOES v1 v2
+
+{-# NOINLINE ptr_glPointParameterxvOES #-}
+ptr_glPointParameterxvOES :: FunPtr (GLenum -> Ptr GLfixed -> IO ())
+ptr_glPointParameterxvOES = unsafePerformIO $ getCommand "glPointParameterxvOES"
+
+-- glPointSize -----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glPointSize.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glPointSize.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glPointSize.xhtml OpenGL 4.x>.
+glPointSize
+  :: MonadIO m
+  => GLfloat -- ^ @size@ of type @CheckedFloat32@.
+  -> m ()
+glPointSize v1 = liftIO $ dyn85 ptr_glPointSize v1
+
+{-# NOINLINE ptr_glPointSize #-}
+ptr_glPointSize :: FunPtr (GLfloat -> IO ())
+ptr_glPointSize = unsafePerformIO $ getCommand "glPointSize"
+
+-- glPointSizePointerOES -------------------------------------------------------
+
+glPointSizePointerOES
+  :: MonadIO m
+  => GLenum -- ^ @type@.
+  -> GLsizei -- ^ @stride@.
+  -> Ptr a -- ^ @pointer@ pointing to @COMPSIZE(type,stride)@ elements of type @a@.
+  -> m ()
+glPointSizePointerOES v1 v2 v3 = liftIO $ dyn49 ptr_glPointSizePointerOES v1 v2 v3
+
+{-# NOINLINE ptr_glPointSizePointerOES #-}
+ptr_glPointSizePointerOES :: FunPtr (GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glPointSizePointerOES = unsafePerformIO $ getCommand "glPointSizePointerOES"
+
+-- glPointSizex ----------------------------------------------------------------
+
+glPointSizex
+  :: MonadIO m
+  => GLfixed -- ^ @size@.
+  -> m ()
+glPointSizex v1 = liftIO $ dyn87 ptr_glPointSizex v1
+
+{-# NOINLINE ptr_glPointSizex #-}
+ptr_glPointSizex :: FunPtr (GLfixed -> IO ())
+ptr_glPointSizex = unsafePerformIO $ getCommand "glPointSizex"
+
+-- glPointSizexOES -------------------------------------------------------------
+
+glPointSizexOES
+  :: MonadIO m
+  => GLfixed -- ^ @size@.
+  -> m ()
+glPointSizexOES v1 = liftIO $ dyn87 ptr_glPointSizexOES v1
+
+{-# NOINLINE ptr_glPointSizexOES #-}
+ptr_glPointSizexOES :: FunPtr (GLfixed -> IO ())
+ptr_glPointSizexOES = unsafePerformIO $ getCommand "glPointSizexOES"
+
+-- glPollAsyncSGIX -------------------------------------------------------------
+
+glPollAsyncSGIX
+  :: MonadIO m
+  => Ptr GLuint -- ^ @markerp@ pointing to @1@ element of type @GLuint@.
+  -> m GLint
+glPollAsyncSGIX v1 = liftIO $ dyn288 ptr_glPollAsyncSGIX v1
+
+{-# NOINLINE ptr_glPollAsyncSGIX #-}
+ptr_glPollAsyncSGIX :: FunPtr (Ptr GLuint -> IO GLint)
+ptr_glPollAsyncSGIX = unsafePerformIO $ getCommand "glPollAsyncSGIX"
+
+-- glPollInstrumentsSGIX -------------------------------------------------------
+
+glPollInstrumentsSGIX
+  :: MonadIO m
+  => Ptr GLint -- ^ @marker_p@ pointing to @1@ element of type @GLint@.
+  -> m GLint
+glPollInstrumentsSGIX v1 = liftIO $ dyn649 ptr_glPollInstrumentsSGIX v1
+
+{-# NOINLINE ptr_glPollInstrumentsSGIX #-}
+ptr_glPollInstrumentsSGIX :: FunPtr (Ptr GLint -> IO GLint)
+ptr_glPollInstrumentsSGIX = unsafePerformIO $ getCommand "glPollInstrumentsSGIX"
+
+-- glPolygonMode ---------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glPolygonMode.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glPolygonMode.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glPolygonMode.xhtml OpenGL 4.x>.
+glPolygonMode
+  :: MonadIO m
+  => GLenum -- ^ @face@ of type [MaterialFace](Graphics-GL-Groups.html#MaterialFace).
+  -> GLenum -- ^ @mode@ of type [PolygonMode](Graphics-GL-Groups.html#PolygonMode).
+  -> m ()
+glPolygonMode v1 v2 = liftIO $ dyn54 ptr_glPolygonMode v1 v2
+
+{-# NOINLINE ptr_glPolygonMode #-}
+ptr_glPolygonMode :: FunPtr (GLenum -> GLenum -> IO ())
+ptr_glPolygonMode = unsafePerformIO $ getCommand "glPolygonMode"
+
+-- glPolygonModeNV -------------------------------------------------------------
+
+-- | This command is an alias for 'glPolygonMode'.
+glPolygonModeNV
+  :: MonadIO m
+  => GLenum -- ^ @face@ of type [MaterialFace](Graphics-GL-Groups.html#MaterialFace).
+  -> GLenum -- ^ @mode@ of type [PolygonMode](Graphics-GL-Groups.html#PolygonMode).
+  -> m ()
+glPolygonModeNV v1 v2 = liftIO $ dyn54 ptr_glPolygonModeNV v1 v2
+
+{-# NOINLINE ptr_glPolygonModeNV #-}
+ptr_glPolygonModeNV :: FunPtr (GLenum -> GLenum -> IO ())
+ptr_glPolygonModeNV = unsafePerformIO $ getCommand "glPolygonModeNV"
+
+-- glPolygonOffset -------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glPolygonOffset.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glPolygonOffset.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glPolygonOffset.xhtml OpenGL 4.x>.
+glPolygonOffset
+  :: MonadIO m
+  => GLfloat -- ^ @factor@.
+  -> GLfloat -- ^ @units@.
+  -> m ()
+glPolygonOffset v1 v2 = liftIO $ dyn230 ptr_glPolygonOffset v1 v2
+
+{-# NOINLINE ptr_glPolygonOffset #-}
+ptr_glPolygonOffset :: FunPtr (GLfloat -> GLfloat -> IO ())
+ptr_glPolygonOffset = unsafePerformIO $ getCommand "glPolygonOffset"
+
+-- glPolygonOffsetClamp --------------------------------------------------------
+
+glPolygonOffsetClamp
+  :: MonadIO m
+  => GLfloat -- ^ @factor@.
+  -> GLfloat -- ^ @units@.
+  -> GLfloat -- ^ @clamp@.
+  -> m ()
+glPolygonOffsetClamp v1 v2 v3 = liftIO $ dyn43 ptr_glPolygonOffsetClamp v1 v2 v3
+
+{-# NOINLINE ptr_glPolygonOffsetClamp #-}
+ptr_glPolygonOffsetClamp :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glPolygonOffsetClamp = unsafePerformIO $ getCommand "glPolygonOffsetClamp"
+
+-- glPolygonOffsetClampEXT -----------------------------------------------------
+
+-- | This command is an alias for 'glPolygonOffsetClamp'.
+glPolygonOffsetClampEXT
+  :: MonadIO m
+  => GLfloat -- ^ @factor@.
+  -> GLfloat -- ^ @units@.
+  -> GLfloat -- ^ @clamp@.
+  -> m ()
+glPolygonOffsetClampEXT v1 v2 v3 = liftIO $ dyn43 ptr_glPolygonOffsetClampEXT v1 v2 v3
+
+{-# NOINLINE ptr_glPolygonOffsetClampEXT #-}
+ptr_glPolygonOffsetClampEXT :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glPolygonOffsetClampEXT = unsafePerformIO $ getCommand "glPolygonOffsetClampEXT"
+
+-- glPolygonOffsetEXT ----------------------------------------------------------
+
+glPolygonOffsetEXT
+  :: MonadIO m
+  => GLfloat -- ^ @factor@.
+  -> GLfloat -- ^ @bias@.
+  -> m ()
+glPolygonOffsetEXT v1 v2 = liftIO $ dyn230 ptr_glPolygonOffsetEXT v1 v2
+
+{-# NOINLINE ptr_glPolygonOffsetEXT #-}
+ptr_glPolygonOffsetEXT :: FunPtr (GLfloat -> GLfloat -> IO ())
+ptr_glPolygonOffsetEXT = unsafePerformIO $ getCommand "glPolygonOffsetEXT"
+
+-- glPolygonOffsetx ------------------------------------------------------------
+
+glPolygonOffsetx
+  :: MonadIO m
+  => GLfixed -- ^ @factor@.
+  -> GLfixed -- ^ @units@.
+  -> m ()
+glPolygonOffsetx v1 v2 = liftIO $ dyn232 ptr_glPolygonOffsetx v1 v2
+
+{-# NOINLINE ptr_glPolygonOffsetx #-}
+ptr_glPolygonOffsetx :: FunPtr (GLfixed -> GLfixed -> IO ())
+ptr_glPolygonOffsetx = unsafePerformIO $ getCommand "glPolygonOffsetx"
+
+-- glPolygonOffsetxOES ---------------------------------------------------------
+
+glPolygonOffsetxOES
+  :: MonadIO m
+  => GLfixed -- ^ @factor@.
+  -> GLfixed -- ^ @units@.
+  -> m ()
+glPolygonOffsetxOES v1 v2 = liftIO $ dyn232 ptr_glPolygonOffsetxOES v1 v2
+
+{-# NOINLINE ptr_glPolygonOffsetxOES #-}
+ptr_glPolygonOffsetxOES :: FunPtr (GLfixed -> GLfixed -> IO ())
+ptr_glPolygonOffsetxOES = unsafePerformIO $ getCommand "glPolygonOffsetxOES"
+
+-- glPolygonStipple ------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glPolygonStipple.xml OpenGL 2.x>.
+glPolygonStipple
+  :: MonadIO m
+  => Ptr GLubyte -- ^ @mask@ pointing to @COMPSIZE()@ elements of type @GLubyte@.
+  -> m ()
+glPolygonStipple v1 = liftIO $ dyn108 ptr_glPolygonStipple v1
+
+{-# NOINLINE ptr_glPolygonStipple #-}
+ptr_glPolygonStipple :: FunPtr (Ptr GLubyte -> IO ())
+ptr_glPolygonStipple = unsafePerformIO $ getCommand "glPolygonStipple"
+
+-- glPopAttrib -----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glPushAttrib.xml OpenGL 2.x>.
+glPopAttrib
+  :: MonadIO m
+  => m ()
+glPopAttrib = liftIO $ dyn11 ptr_glPopAttrib
+
+{-# NOINLINE ptr_glPopAttrib #-}
+ptr_glPopAttrib :: FunPtr (IO ())
+ptr_glPopAttrib = unsafePerformIO $ getCommand "glPopAttrib"
+
+-- glPopClientAttrib -----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glPushClientAttrib.xml OpenGL 2.x>.
+glPopClientAttrib
+  :: MonadIO m
+  => m ()
+glPopClientAttrib = liftIO $ dyn11 ptr_glPopClientAttrib
+
+{-# NOINLINE ptr_glPopClientAttrib #-}
+ptr_glPopClientAttrib :: FunPtr (IO ())
+ptr_glPopClientAttrib = unsafePerformIO $ getCommand "glPopClientAttrib"
+
+-- glPopDebugGroup -------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glPopDebugGroup.xhtml OpenGL 4.x>.
+glPopDebugGroup
+  :: MonadIO m
+  => m ()
+glPopDebugGroup = liftIO $ dyn11 ptr_glPopDebugGroup
+
+{-# NOINLINE ptr_glPopDebugGroup #-}
+ptr_glPopDebugGroup :: FunPtr (IO ())
+ptr_glPopDebugGroup = unsafePerformIO $ getCommand "glPopDebugGroup"
+
+-- glPopDebugGroupKHR ----------------------------------------------------------
+
+-- | This command is an alias for 'glPopDebugGroup'.
+glPopDebugGroupKHR
+  :: MonadIO m
+  => m ()
+glPopDebugGroupKHR = liftIO $ dyn11 ptr_glPopDebugGroupKHR
+
+{-# NOINLINE ptr_glPopDebugGroupKHR #-}
+ptr_glPopDebugGroupKHR :: FunPtr (IO ())
+ptr_glPopDebugGroupKHR = unsafePerformIO $ getCommand "glPopDebugGroupKHR"
+
+-- glPopGroupMarkerEXT ---------------------------------------------------------
+
+glPopGroupMarkerEXT
+  :: MonadIO m
+  => m ()
+glPopGroupMarkerEXT = liftIO $ dyn11 ptr_glPopGroupMarkerEXT
+
+{-# NOINLINE ptr_glPopGroupMarkerEXT #-}
+ptr_glPopGroupMarkerEXT :: FunPtr (IO ())
+ptr_glPopGroupMarkerEXT = unsafePerformIO $ getCommand "glPopGroupMarkerEXT"
+
+-- glPopMatrix -----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glPushMatrix.xml OpenGL 2.x>.
+glPopMatrix
+  :: MonadIO m
+  => m ()
+glPopMatrix = liftIO $ dyn11 ptr_glPopMatrix
+
+{-# NOINLINE ptr_glPopMatrix #-}
+ptr_glPopMatrix :: FunPtr (IO ())
+ptr_glPopMatrix = unsafePerformIO $ getCommand "glPopMatrix"
+
+-- glPopName -------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glPushName.xml OpenGL 2.x>.
+glPopName
+  :: MonadIO m
+  => m ()
+glPopName = liftIO $ dyn11 ptr_glPopName
+
+{-# NOINLINE ptr_glPopName #-}
+ptr_glPopName :: FunPtr (IO ())
+ptr_glPopName = unsafePerformIO $ getCommand "glPopName"
+
+-- glPresentFrameDualFillNV ----------------------------------------------------
+
+glPresentFrameDualFillNV
+  :: MonadIO m
+  => GLuint -- ^ @video_slot@.
+  -> GLuint64EXT -- ^ @minPresentTime@.
+  -> GLuint -- ^ @beginPresentTimeId@.
+  -> GLuint -- ^ @presentDurationId@.
+  -> GLenum -- ^ @type@.
+  -> GLenum -- ^ @target0@.
+  -> GLuint -- ^ @fill0@.
+  -> GLenum -- ^ @target1@.
+  -> GLuint -- ^ @fill1@.
+  -> GLenum -- ^ @target2@.
+  -> GLuint -- ^ @fill2@.
+  -> GLenum -- ^ @target3@.
+  -> GLuint -- ^ @fill3@.
+  -> m ()
+glPresentFrameDualFillNV v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 = liftIO $ dyn650 ptr_glPresentFrameDualFillNV v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13
+
+{-# NOINLINE ptr_glPresentFrameDualFillNV #-}
+ptr_glPresentFrameDualFillNV :: FunPtr (GLuint -> GLuint64EXT -> GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> IO ())
+ptr_glPresentFrameDualFillNV = unsafePerformIO $ getCommand "glPresentFrameDualFillNV"
+
+-- glPresentFrameKeyedNV -------------------------------------------------------
+
+glPresentFrameKeyedNV
+  :: MonadIO m
+  => GLuint -- ^ @video_slot@.
+  -> GLuint64EXT -- ^ @minPresentTime@.
+  -> GLuint -- ^ @beginPresentTimeId@.
+  -> GLuint -- ^ @presentDurationId@.
+  -> GLenum -- ^ @type@.
+  -> GLenum -- ^ @target0@.
+  -> GLuint -- ^ @fill0@.
+  -> GLuint -- ^ @key0@.
+  -> GLenum -- ^ @target1@.
+  -> GLuint -- ^ @fill1@.
+  -> GLuint -- ^ @key1@.
+  -> m ()
+glPresentFrameKeyedNV v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 = liftIO $ dyn651 ptr_glPresentFrameKeyedNV v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11
+
+{-# NOINLINE ptr_glPresentFrameKeyedNV #-}
+ptr_glPresentFrameKeyedNV :: FunPtr (GLuint -> GLuint64EXT -> GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> GLuint -> GLenum -> GLuint -> GLuint -> IO ())
+ptr_glPresentFrameKeyedNV = unsafePerformIO $ getCommand "glPresentFrameKeyedNV"
+
+-- glPrimitiveBoundingBox ------------------------------------------------------
+
+glPrimitiveBoundingBox
+  :: MonadIO m
+  => GLfloat -- ^ @minX@.
+  -> GLfloat -- ^ @minY@.
+  -> GLfloat -- ^ @minZ@.
+  -> GLfloat -- ^ @minW@.
+  -> GLfloat -- ^ @maxX@.
+  -> GLfloat -- ^ @maxY@.
+  -> GLfloat -- ^ @maxZ@.
+  -> GLfloat -- ^ @maxW@.
+  -> m ()
+glPrimitiveBoundingBox v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn652 ptr_glPrimitiveBoundingBox v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glPrimitiveBoundingBox #-}
+ptr_glPrimitiveBoundingBox :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glPrimitiveBoundingBox = unsafePerformIO $ getCommand "glPrimitiveBoundingBox"
+
+-- glPrimitiveBoundingBoxARB ---------------------------------------------------
+
+-- | This command is an alias for 'glPrimitiveBoundingBox'.
+glPrimitiveBoundingBoxARB
+  :: MonadIO m
+  => GLfloat -- ^ @minX@.
+  -> GLfloat -- ^ @minY@.
+  -> GLfloat -- ^ @minZ@.
+  -> GLfloat -- ^ @minW@.
+  -> GLfloat -- ^ @maxX@.
+  -> GLfloat -- ^ @maxY@.
+  -> GLfloat -- ^ @maxZ@.
+  -> GLfloat -- ^ @maxW@.
+  -> m ()
+glPrimitiveBoundingBoxARB v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn652 ptr_glPrimitiveBoundingBoxARB v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glPrimitiveBoundingBoxARB #-}
+ptr_glPrimitiveBoundingBoxARB :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glPrimitiveBoundingBoxARB = unsafePerformIO $ getCommand "glPrimitiveBoundingBoxARB"
+
+-- glPrimitiveBoundingBoxEXT ---------------------------------------------------
+
+-- | This command is an alias for 'glPrimitiveBoundingBox'.
+glPrimitiveBoundingBoxEXT
+  :: MonadIO m
+  => GLfloat -- ^ @minX@.
+  -> GLfloat -- ^ @minY@.
+  -> GLfloat -- ^ @minZ@.
+  -> GLfloat -- ^ @minW@.
+  -> GLfloat -- ^ @maxX@.
+  -> GLfloat -- ^ @maxY@.
+  -> GLfloat -- ^ @maxZ@.
+  -> GLfloat -- ^ @maxW@.
+  -> m ()
+glPrimitiveBoundingBoxEXT v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn652 ptr_glPrimitiveBoundingBoxEXT v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glPrimitiveBoundingBoxEXT #-}
+ptr_glPrimitiveBoundingBoxEXT :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glPrimitiveBoundingBoxEXT = unsafePerformIO $ getCommand "glPrimitiveBoundingBoxEXT"
+
+-- glPrimitiveBoundingBoxOES ---------------------------------------------------
+
+-- | This command is an alias for 'glPrimitiveBoundingBox'.
+glPrimitiveBoundingBoxOES
+  :: MonadIO m
+  => GLfloat -- ^ @minX@.
+  -> GLfloat -- ^ @minY@.
+  -> GLfloat -- ^ @minZ@.
+  -> GLfloat -- ^ @minW@.
+  -> GLfloat -- ^ @maxX@.
+  -> GLfloat -- ^ @maxY@.
+  -> GLfloat -- ^ @maxZ@.
+  -> GLfloat -- ^ @maxW@.
+  -> m ()
+glPrimitiveBoundingBoxOES v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn652 ptr_glPrimitiveBoundingBoxOES v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glPrimitiveBoundingBoxOES #-}
+ptr_glPrimitiveBoundingBoxOES :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glPrimitiveBoundingBoxOES = unsafePerformIO $ getCommand "glPrimitiveBoundingBoxOES"
+
+-- glPrimitiveRestartIndex -----------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glPrimitiveRestartIndex.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glPrimitiveRestartIndex.xhtml OpenGL 4.x>.
+glPrimitiveRestartIndex
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> m ()
+glPrimitiveRestartIndex v1 = liftIO $ dyn3 ptr_glPrimitiveRestartIndex v1
+
+{-# NOINLINE ptr_glPrimitiveRestartIndex #-}
+ptr_glPrimitiveRestartIndex :: FunPtr (GLuint -> IO ())
+ptr_glPrimitiveRestartIndex = unsafePerformIO $ getCommand "glPrimitiveRestartIndex"
+
+-- glPrimitiveRestartIndexNV ---------------------------------------------------
+
+glPrimitiveRestartIndexNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> m ()
+glPrimitiveRestartIndexNV v1 = liftIO $ dyn3 ptr_glPrimitiveRestartIndexNV v1
+
+{-# NOINLINE ptr_glPrimitiveRestartIndexNV #-}
+ptr_glPrimitiveRestartIndexNV :: FunPtr (GLuint -> IO ())
+ptr_glPrimitiveRestartIndexNV = unsafePerformIO $ getCommand "glPrimitiveRestartIndexNV"
+
+-- glPrimitiveRestartNV --------------------------------------------------------
+
+glPrimitiveRestartNV
+  :: MonadIO m
+  => m ()
+glPrimitiveRestartNV = liftIO $ dyn11 ptr_glPrimitiveRestartNV
+
+{-# NOINLINE ptr_glPrimitiveRestartNV #-}
+ptr_glPrimitiveRestartNV :: FunPtr (IO ())
+ptr_glPrimitiveRestartNV = unsafePerformIO $ getCommand "glPrimitiveRestartNV"
+
+-- glPrioritizeTextures --------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glPrioritizeTextures.xml OpenGL 2.x>.
+glPrioritizeTextures
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @textures@ pointing to @n@ elements of type @Texture@.
+  -> Ptr GLfloat -- ^ @priorities@ pointing to @n@ elements of type @GLfloat@.
+  -> m ()
+glPrioritizeTextures v1 v2 v3 = liftIO $ dyn653 ptr_glPrioritizeTextures v1 v2 v3
+
+{-# NOINLINE ptr_glPrioritizeTextures #-}
+ptr_glPrioritizeTextures :: FunPtr (GLsizei -> Ptr GLuint -> Ptr GLfloat -> IO ())
+ptr_glPrioritizeTextures = unsafePerformIO $ getCommand "glPrioritizeTextures"
+
+-- glPrioritizeTexturesEXT -----------------------------------------------------
+
+-- | This command is an alias for 'glPrioritizeTextures'.
+glPrioritizeTexturesEXT
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @textures@ pointing to @n@ elements of type @Texture@.
+  -> Ptr GLclampf -- ^ @priorities@ pointing to @n@ elements of type @ClampedFloat32@.
+  -> m ()
+glPrioritizeTexturesEXT v1 v2 v3 = liftIO $ dyn654 ptr_glPrioritizeTexturesEXT v1 v2 v3
+
+{-# NOINLINE ptr_glPrioritizeTexturesEXT #-}
+ptr_glPrioritizeTexturesEXT :: FunPtr (GLsizei -> Ptr GLuint -> Ptr GLclampf -> IO ())
+ptr_glPrioritizeTexturesEXT = unsafePerformIO $ getCommand "glPrioritizeTexturesEXT"
+
+-- glPrioritizeTexturesxOES ----------------------------------------------------
+
+glPrioritizeTexturesxOES
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @textures@ pointing to @n@ elements of type @GLuint@.
+  -> Ptr GLfixed -- ^ @priorities@ pointing to @n@ elements of type @ClampedFixed@.
+  -> m ()
+glPrioritizeTexturesxOES v1 v2 v3 = liftIO $ dyn655 ptr_glPrioritizeTexturesxOES v1 v2 v3
+
+{-# NOINLINE ptr_glPrioritizeTexturesxOES #-}
+ptr_glPrioritizeTexturesxOES :: FunPtr (GLsizei -> Ptr GLuint -> Ptr GLfixed -> IO ())
+ptr_glPrioritizeTexturesxOES = unsafePerformIO $ getCommand "glPrioritizeTexturesxOES"
+
+-- glProgramBinary -------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramBinary.xhtml OpenGL 4.x>.
+glProgramBinary
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLenum -- ^ @binaryFormat@.
+  -> Ptr a -- ^ @binary@ pointing to @length@ elements of type @a@.
+  -> GLsizei -- ^ @length@.
+  -> m ()
+glProgramBinary v1 v2 v3 v4 = liftIO $ dyn656 ptr_glProgramBinary v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramBinary #-}
+ptr_glProgramBinary :: FunPtr (GLuint -> GLenum -> Ptr a -> GLsizei -> IO ())
+ptr_glProgramBinary = unsafePerformIO $ getCommand "glProgramBinary"
+
+-- glProgramBinaryOES ----------------------------------------------------------
+
+-- | This command is an alias for 'glProgramBinary'.
+glProgramBinaryOES
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLenum -- ^ @binaryFormat@.
+  -> Ptr a -- ^ @binary@ pointing to @length@ elements of type @a@.
+  -> GLint -- ^ @length@.
+  -> m ()
+glProgramBinaryOES v1 v2 v3 v4 = liftIO $ dyn657 ptr_glProgramBinaryOES v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramBinaryOES #-}
+ptr_glProgramBinaryOES :: FunPtr (GLuint -> GLenum -> Ptr a -> GLint -> IO ())
+ptr_glProgramBinaryOES = unsafePerformIO $ getCommand "glProgramBinaryOES"
+
+-- glProgramBufferParametersIivNV ----------------------------------------------
+
+glProgramBufferParametersIivNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
+  -> GLuint -- ^ @bindingIndex@.
+  -> GLuint -- ^ @wordIndex@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLint -- ^ @params@ pointing to @count@ elements of type @GLint@.
+  -> m ()
+glProgramBufferParametersIivNV v1 v2 v3 v4 v5 = liftIO $ dyn658 ptr_glProgramBufferParametersIivNV v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glProgramBufferParametersIivNV #-}
+ptr_glProgramBufferParametersIivNV :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLint -> IO ())
+ptr_glProgramBufferParametersIivNV = unsafePerformIO $ getCommand "glProgramBufferParametersIivNV"
+
+-- glProgramBufferParametersIuivNV ---------------------------------------------
+
+glProgramBufferParametersIuivNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
+  -> GLuint -- ^ @bindingIndex@.
+  -> GLuint -- ^ @wordIndex@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLuint -- ^ @params@ pointing to @count@ elements of type @GLuint@.
+  -> m ()
+glProgramBufferParametersIuivNV v1 v2 v3 v4 v5 = liftIO $ dyn659 ptr_glProgramBufferParametersIuivNV v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glProgramBufferParametersIuivNV #-}
+ptr_glProgramBufferParametersIuivNV :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLuint -> IO ())
+ptr_glProgramBufferParametersIuivNV = unsafePerformIO $ getCommand "glProgramBufferParametersIuivNV"
+
+-- glProgramBufferParametersfvNV -----------------------------------------------
+
+glProgramBufferParametersfvNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
+  -> GLuint -- ^ @bindingIndex@.
+  -> GLuint -- ^ @wordIndex@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLfloat -- ^ @params@ pointing to @count@ elements of type @GLfloat@.
+  -> m ()
+glProgramBufferParametersfvNV v1 v2 v3 v4 v5 = liftIO $ dyn660 ptr_glProgramBufferParametersfvNV v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glProgramBufferParametersfvNV #-}
+ptr_glProgramBufferParametersfvNV :: FunPtr (GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+ptr_glProgramBufferParametersfvNV = unsafePerformIO $ getCommand "glProgramBufferParametersfvNV"
+
+-- glProgramEnvParameter4dARB --------------------------------------------------
+
+-- | The vector equivalent of this command is 'glProgramEnvParameter4dvARB'.
+glProgramEnvParameter4dARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
+  -> GLuint -- ^ @index@.
+  -> GLdouble -- ^ @x@.
+  -> GLdouble -- ^ @y@.
+  -> GLdouble -- ^ @z@.
+  -> GLdouble -- ^ @w@.
+  -> m ()
+glProgramEnvParameter4dARB v1 v2 v3 v4 v5 v6 = liftIO $ dyn661 ptr_glProgramEnvParameter4dARB v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glProgramEnvParameter4dARB #-}
+ptr_glProgramEnvParameter4dARB :: FunPtr (GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+ptr_glProgramEnvParameter4dARB = unsafePerformIO $ getCommand "glProgramEnvParameter4dARB"
+
+-- glProgramEnvParameter4dvARB -------------------------------------------------
+
+glProgramEnvParameter4dvARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
+  -> GLuint -- ^ @index@.
+  -> Ptr GLdouble -- ^ @params@ pointing to @4@ elements of type @GLdouble@.
+  -> m ()
+glProgramEnvParameter4dvARB v1 v2 v3 = liftIO $ dyn344 ptr_glProgramEnvParameter4dvARB v1 v2 v3
+
+{-# NOINLINE ptr_glProgramEnvParameter4dvARB #-}
+ptr_glProgramEnvParameter4dvARB :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())
+ptr_glProgramEnvParameter4dvARB = unsafePerformIO $ getCommand "glProgramEnvParameter4dvARB"
+
+-- glProgramEnvParameter4fARB --------------------------------------------------
+
+-- | The vector equivalent of this command is 'glProgramEnvParameter4fvARB'.
+glProgramEnvParameter4fARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
+  -> GLuint -- ^ @index@.
+  -> GLfloat -- ^ @x@.
+  -> GLfloat -- ^ @y@.
+  -> GLfloat -- ^ @z@.
+  -> GLfloat -- ^ @w@.
+  -> m ()
+glProgramEnvParameter4fARB v1 v2 v3 v4 v5 v6 = liftIO $ dyn662 ptr_glProgramEnvParameter4fARB v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glProgramEnvParameter4fARB #-}
+ptr_glProgramEnvParameter4fARB :: FunPtr (GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glProgramEnvParameter4fARB = unsafePerformIO $ getCommand "glProgramEnvParameter4fARB"
+
+-- glProgramEnvParameter4fvARB -------------------------------------------------
+
+glProgramEnvParameter4fvARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
+  -> GLuint -- ^ @index@.
+  -> Ptr GLfloat -- ^ @params@ pointing to @4@ elements of type @GLfloat@.
+  -> m ()
+glProgramEnvParameter4fvARB v1 v2 v3 = liftIO $ dyn278 ptr_glProgramEnvParameter4fvARB v1 v2 v3
+
+{-# NOINLINE ptr_glProgramEnvParameter4fvARB #-}
+ptr_glProgramEnvParameter4fvARB :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
+ptr_glProgramEnvParameter4fvARB = unsafePerformIO $ getCommand "glProgramEnvParameter4fvARB"
+
+-- glProgramEnvParameterI4iNV --------------------------------------------------
+
+-- | The vector equivalent of this command is 'glProgramEnvParameterI4ivNV'.
+glProgramEnvParameterI4iNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
+  -> GLuint -- ^ @index@.
+  -> GLint -- ^ @x@.
+  -> GLint -- ^ @y@.
+  -> GLint -- ^ @z@.
+  -> GLint -- ^ @w@.
+  -> m ()
+glProgramEnvParameterI4iNV v1 v2 v3 v4 v5 v6 = liftIO $ dyn663 ptr_glProgramEnvParameterI4iNV v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glProgramEnvParameterI4iNV #-}
+ptr_glProgramEnvParameterI4iNV :: FunPtr (GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
+ptr_glProgramEnvParameterI4iNV = unsafePerformIO $ getCommand "glProgramEnvParameterI4iNV"
+
+-- glProgramEnvParameterI4ivNV -------------------------------------------------
+
+glProgramEnvParameterI4ivNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
+  -> GLuint -- ^ @index@.
+  -> Ptr GLint -- ^ @params@ pointing to @4@ elements of type @GLint@.
+  -> m ()
+glProgramEnvParameterI4ivNV v1 v2 v3 = liftIO $ dyn357 ptr_glProgramEnvParameterI4ivNV v1 v2 v3
+
+{-# NOINLINE ptr_glProgramEnvParameterI4ivNV #-}
+ptr_glProgramEnvParameterI4ivNV :: FunPtr (GLenum -> GLuint -> Ptr GLint -> IO ())
+ptr_glProgramEnvParameterI4ivNV = unsafePerformIO $ getCommand "glProgramEnvParameterI4ivNV"
+
+-- glProgramEnvParameterI4uiNV -------------------------------------------------
+
+-- | The vector equivalent of this command is 'glProgramEnvParameterI4uivNV'.
+glProgramEnvParameterI4uiNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
+  -> GLuint -- ^ @index@.
+  -> GLuint -- ^ @x@.
+  -> GLuint -- ^ @y@.
+  -> GLuint -- ^ @z@.
+  -> GLuint -- ^ @w@.
+  -> m ()
+glProgramEnvParameterI4uiNV v1 v2 v3 v4 v5 v6 = liftIO $ dyn7 ptr_glProgramEnvParameterI4uiNV v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glProgramEnvParameterI4uiNV #-}
+ptr_glProgramEnvParameterI4uiNV :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+ptr_glProgramEnvParameterI4uiNV = unsafePerformIO $ getCommand "glProgramEnvParameterI4uiNV"
+
+-- glProgramEnvParameterI4uivNV ------------------------------------------------
+
+glProgramEnvParameterI4uivNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
+  -> GLuint -- ^ @index@.
+  -> Ptr GLuint -- ^ @params@ pointing to @4@ elements of type @GLuint@.
+  -> m ()
+glProgramEnvParameterI4uivNV v1 v2 v3 = liftIO $ dyn221 ptr_glProgramEnvParameterI4uivNV v1 v2 v3
+
+{-# NOINLINE ptr_glProgramEnvParameterI4uivNV #-}
+ptr_glProgramEnvParameterI4uivNV :: FunPtr (GLenum -> GLuint -> Ptr GLuint -> IO ())
+ptr_glProgramEnvParameterI4uivNV = unsafePerformIO $ getCommand "glProgramEnvParameterI4uivNV"
+
+-- glProgramEnvParameters4fvEXT ------------------------------------------------
+
+glProgramEnvParameters4fvEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
+  -> GLuint -- ^ @index@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLfloat -- ^ @params@ pointing to @count*4@ elements of type @GLfloat@.
+  -> m ()
+glProgramEnvParameters4fvEXT v1 v2 v3 v4 = liftIO $ dyn297 ptr_glProgramEnvParameters4fvEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramEnvParameters4fvEXT #-}
+ptr_glProgramEnvParameters4fvEXT :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+ptr_glProgramEnvParameters4fvEXT = unsafePerformIO $ getCommand "glProgramEnvParameters4fvEXT"
+
+-- glProgramEnvParametersI4ivNV ------------------------------------------------
+
+glProgramEnvParametersI4ivNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
+  -> GLuint -- ^ @index@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLint -- ^ @params@ pointing to @count*4@ elements of type @GLint@.
+  -> m ()
+glProgramEnvParametersI4ivNV v1 v2 v3 v4 = liftIO $ dyn664 ptr_glProgramEnvParametersI4ivNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramEnvParametersI4ivNV #-}
+ptr_glProgramEnvParametersI4ivNV :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLint -> IO ())
+ptr_glProgramEnvParametersI4ivNV = unsafePerformIO $ getCommand "glProgramEnvParametersI4ivNV"
+
+-- glProgramEnvParametersI4uivNV -----------------------------------------------
+
+glProgramEnvParametersI4uivNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
+  -> GLuint -- ^ @index@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLuint -- ^ @params@ pointing to @count*4@ elements of type @GLuint@.
+  -> m ()
+glProgramEnvParametersI4uivNV v1 v2 v3 v4 = liftIO $ dyn25 ptr_glProgramEnvParametersI4uivNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramEnvParametersI4uivNV #-}
+ptr_glProgramEnvParametersI4uivNV :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLuint -> IO ())
+ptr_glProgramEnvParametersI4uivNV = unsafePerformIO $ getCommand "glProgramEnvParametersI4uivNV"
+
+-- glProgramLocalParameter4dARB ------------------------------------------------
+
+-- | The vector equivalent of this command is 'glProgramLocalParameter4dvARB'.
+glProgramLocalParameter4dARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
+  -> GLuint -- ^ @index@.
+  -> GLdouble -- ^ @x@.
+  -> GLdouble -- ^ @y@.
+  -> GLdouble -- ^ @z@.
+  -> GLdouble -- ^ @w@.
+  -> m ()
+glProgramLocalParameter4dARB v1 v2 v3 v4 v5 v6 = liftIO $ dyn661 ptr_glProgramLocalParameter4dARB v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glProgramLocalParameter4dARB #-}
+ptr_glProgramLocalParameter4dARB :: FunPtr (GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+ptr_glProgramLocalParameter4dARB = unsafePerformIO $ getCommand "glProgramLocalParameter4dARB"
+
+-- glProgramLocalParameter4dvARB -----------------------------------------------
+
+glProgramLocalParameter4dvARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
+  -> GLuint -- ^ @index@.
+  -> Ptr GLdouble -- ^ @params@ pointing to @4@ elements of type @GLdouble@.
+  -> m ()
+glProgramLocalParameter4dvARB v1 v2 v3 = liftIO $ dyn344 ptr_glProgramLocalParameter4dvARB v1 v2 v3
+
+{-# NOINLINE ptr_glProgramLocalParameter4dvARB #-}
+ptr_glProgramLocalParameter4dvARB :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())
+ptr_glProgramLocalParameter4dvARB = unsafePerformIO $ getCommand "glProgramLocalParameter4dvARB"
+
+-- glProgramLocalParameter4fARB ------------------------------------------------
+
+-- | The vector equivalent of this command is 'glProgramLocalParameter4fvARB'.
+glProgramLocalParameter4fARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
+  -> GLuint -- ^ @index@.
+  -> GLfloat -- ^ @x@.
+  -> GLfloat -- ^ @y@.
+  -> GLfloat -- ^ @z@.
+  -> GLfloat -- ^ @w@.
+  -> m ()
+glProgramLocalParameter4fARB v1 v2 v3 v4 v5 v6 = liftIO $ dyn662 ptr_glProgramLocalParameter4fARB v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glProgramLocalParameter4fARB #-}
+ptr_glProgramLocalParameter4fARB :: FunPtr (GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glProgramLocalParameter4fARB = unsafePerformIO $ getCommand "glProgramLocalParameter4fARB"
+
+-- glProgramLocalParameter4fvARB -----------------------------------------------
+
+glProgramLocalParameter4fvARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
+  -> GLuint -- ^ @index@.
+  -> Ptr GLfloat -- ^ @params@ pointing to @4@ elements of type @GLfloat@.
+  -> m ()
+glProgramLocalParameter4fvARB v1 v2 v3 = liftIO $ dyn278 ptr_glProgramLocalParameter4fvARB v1 v2 v3
+
+{-# NOINLINE ptr_glProgramLocalParameter4fvARB #-}
+ptr_glProgramLocalParameter4fvARB :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
+ptr_glProgramLocalParameter4fvARB = unsafePerformIO $ getCommand "glProgramLocalParameter4fvARB"
+
+-- glProgramLocalParameterI4iNV ------------------------------------------------
+
+-- | The vector equivalent of this command is 'glProgramLocalParameterI4ivNV'.
+glProgramLocalParameterI4iNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
+  -> GLuint -- ^ @index@.
+  -> GLint -- ^ @x@.
+  -> GLint -- ^ @y@.
+  -> GLint -- ^ @z@.
+  -> GLint -- ^ @w@.
+  -> m ()
+glProgramLocalParameterI4iNV v1 v2 v3 v4 v5 v6 = liftIO $ dyn663 ptr_glProgramLocalParameterI4iNV v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glProgramLocalParameterI4iNV #-}
+ptr_glProgramLocalParameterI4iNV :: FunPtr (GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
+ptr_glProgramLocalParameterI4iNV = unsafePerformIO $ getCommand "glProgramLocalParameterI4iNV"
+
+-- glProgramLocalParameterI4ivNV -----------------------------------------------
+
+glProgramLocalParameterI4ivNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
+  -> GLuint -- ^ @index@.
+  -> Ptr GLint -- ^ @params@ pointing to @4@ elements of type @GLint@.
+  -> m ()
+glProgramLocalParameterI4ivNV v1 v2 v3 = liftIO $ dyn357 ptr_glProgramLocalParameterI4ivNV v1 v2 v3
+
+{-# NOINLINE ptr_glProgramLocalParameterI4ivNV #-}
+ptr_glProgramLocalParameterI4ivNV :: FunPtr (GLenum -> GLuint -> Ptr GLint -> IO ())
+ptr_glProgramLocalParameterI4ivNV = unsafePerformIO $ getCommand "glProgramLocalParameterI4ivNV"
+
+-- glProgramLocalParameterI4uiNV -----------------------------------------------
+
+-- | The vector equivalent of this command is 'glProgramLocalParameterI4uivNV'.
+glProgramLocalParameterI4uiNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
+  -> GLuint -- ^ @index@.
+  -> GLuint -- ^ @x@.
+  -> GLuint -- ^ @y@.
+  -> GLuint -- ^ @z@.
+  -> GLuint -- ^ @w@.
+  -> m ()
+glProgramLocalParameterI4uiNV v1 v2 v3 v4 v5 v6 = liftIO $ dyn7 ptr_glProgramLocalParameterI4uiNV v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glProgramLocalParameterI4uiNV #-}
+ptr_glProgramLocalParameterI4uiNV :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+ptr_glProgramLocalParameterI4uiNV = unsafePerformIO $ getCommand "glProgramLocalParameterI4uiNV"
+
+-- glProgramLocalParameterI4uivNV ----------------------------------------------
+
+glProgramLocalParameterI4uivNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
+  -> GLuint -- ^ @index@.
+  -> Ptr GLuint -- ^ @params@ pointing to @4@ elements of type @GLuint@.
+  -> m ()
+glProgramLocalParameterI4uivNV v1 v2 v3 = liftIO $ dyn221 ptr_glProgramLocalParameterI4uivNV v1 v2 v3
+
+{-# NOINLINE ptr_glProgramLocalParameterI4uivNV #-}
+ptr_glProgramLocalParameterI4uivNV :: FunPtr (GLenum -> GLuint -> Ptr GLuint -> IO ())
+ptr_glProgramLocalParameterI4uivNV = unsafePerformIO $ getCommand "glProgramLocalParameterI4uivNV"
+
+-- glProgramLocalParameters4fvEXT ----------------------------------------------
+
+glProgramLocalParameters4fvEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
+  -> GLuint -- ^ @index@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLfloat -- ^ @params@ pointing to @count*4@ elements of type @GLfloat@.
+  -> m ()
+glProgramLocalParameters4fvEXT v1 v2 v3 v4 = liftIO $ dyn297 ptr_glProgramLocalParameters4fvEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramLocalParameters4fvEXT #-}
+ptr_glProgramLocalParameters4fvEXT :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+ptr_glProgramLocalParameters4fvEXT = unsafePerformIO $ getCommand "glProgramLocalParameters4fvEXT"
+
+-- glProgramLocalParametersI4ivNV ----------------------------------------------
+
+glProgramLocalParametersI4ivNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
+  -> GLuint -- ^ @index@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLint -- ^ @params@ pointing to @count*4@ elements of type @GLint@.
+  -> m ()
+glProgramLocalParametersI4ivNV v1 v2 v3 v4 = liftIO $ dyn664 ptr_glProgramLocalParametersI4ivNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramLocalParametersI4ivNV #-}
+ptr_glProgramLocalParametersI4ivNV :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLint -> IO ())
+ptr_glProgramLocalParametersI4ivNV = unsafePerformIO $ getCommand "glProgramLocalParametersI4ivNV"
+
+-- glProgramLocalParametersI4uivNV ---------------------------------------------
+
+glProgramLocalParametersI4uivNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
+  -> GLuint -- ^ @index@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLuint -- ^ @params@ pointing to @count*4@ elements of type @GLuint@.
+  -> m ()
+glProgramLocalParametersI4uivNV v1 v2 v3 v4 = liftIO $ dyn25 ptr_glProgramLocalParametersI4uivNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramLocalParametersI4uivNV #-}
+ptr_glProgramLocalParametersI4uivNV :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLuint -> IO ())
+ptr_glProgramLocalParametersI4uivNV = unsafePerformIO $ getCommand "glProgramLocalParametersI4uivNV"
+
+-- glProgramNamedParameter4dNV -------------------------------------------------
+
+-- | The vector equivalent of this command is 'glProgramNamedParameter4dvNV'.
+glProgramNamedParameter4dNV
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> GLsizei -- ^ @len@.
+  -> Ptr GLubyte -- ^ @name@ pointing to @1@ element of type @GLubyte@.
+  -> GLdouble -- ^ @x@.
+  -> GLdouble -- ^ @y@.
+  -> GLdouble -- ^ @z@.
+  -> GLdouble -- ^ @w@.
+  -> m ()
+glProgramNamedParameter4dNV v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn665 ptr_glProgramNamedParameter4dNV v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glProgramNamedParameter4dNV #-}
+ptr_glProgramNamedParameter4dNV :: FunPtr (GLuint -> GLsizei -> Ptr GLubyte -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+ptr_glProgramNamedParameter4dNV = unsafePerformIO $ getCommand "glProgramNamedParameter4dNV"
+
+-- glProgramNamedParameter4dvNV ------------------------------------------------
+
+glProgramNamedParameter4dvNV
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> GLsizei -- ^ @len@.
+  -> Ptr GLubyte -- ^ @name@ pointing to @1@ element of type @GLubyte@.
+  -> Ptr GLdouble -- ^ @v@ pointing to @4@ elements of type @GLdouble@.
+  -> m ()
+glProgramNamedParameter4dvNV v1 v2 v3 v4 = liftIO $ dyn410 ptr_glProgramNamedParameter4dvNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramNamedParameter4dvNV #-}
+ptr_glProgramNamedParameter4dvNV :: FunPtr (GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLdouble -> IO ())
+ptr_glProgramNamedParameter4dvNV = unsafePerformIO $ getCommand "glProgramNamedParameter4dvNV"
+
diff --git a/src/Graphics/GL/Functions/F21.hs b/src/Graphics/GL/Functions/F21.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Functions/F21.hs
@@ -0,0 +1,1691 @@
+{-# OPTIONS_HADDOCK hide #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Functions.F21
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- Raw functions from the
+-- <http://www.opengl.org/registry/ OpenGL registry>.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Functions.F21 (
+  glProgramNamedParameter4fNV,
+  glProgramNamedParameter4fvNV,
+  glProgramParameter4dNV,
+  glProgramParameter4dvNV,
+  glProgramParameter4fNV,
+  glProgramParameter4fvNV,
+  glProgramParameteri,
+  glProgramParameteriARB,
+  glProgramParameteriEXT,
+  glProgramParameters4dvNV,
+  glProgramParameters4fvNV,
+  glProgramPathFragmentInputGenNV,
+  glProgramStringARB,
+  glProgramSubroutineParametersuivNV,
+  glProgramUniform1d,
+  glProgramUniform1dEXT,
+  glProgramUniform1dv,
+  glProgramUniform1dvEXT,
+  glProgramUniform1f,
+  glProgramUniform1fEXT,
+  glProgramUniform1fv,
+  glProgramUniform1fvEXT,
+  glProgramUniform1i,
+  glProgramUniform1i64ARB,
+  glProgramUniform1i64NV,
+  glProgramUniform1i64vARB,
+  glProgramUniform1i64vNV,
+  glProgramUniform1iEXT,
+  glProgramUniform1iv,
+  glProgramUniform1ivEXT,
+  glProgramUniform1ui,
+  glProgramUniform1ui64ARB,
+  glProgramUniform1ui64NV,
+  glProgramUniform1ui64vARB,
+  glProgramUniform1ui64vNV,
+  glProgramUniform1uiEXT,
+  glProgramUniform1uiv,
+  glProgramUniform1uivEXT,
+  glProgramUniform2d,
+  glProgramUniform2dEXT,
+  glProgramUniform2dv,
+  glProgramUniform2dvEXT,
+  glProgramUniform2f,
+  glProgramUniform2fEXT,
+  glProgramUniform2fv,
+  glProgramUniform2fvEXT,
+  glProgramUniform2i,
+  glProgramUniform2i64ARB,
+  glProgramUniform2i64NV,
+  glProgramUniform2i64vARB,
+  glProgramUniform2i64vNV,
+  glProgramUniform2iEXT,
+  glProgramUniform2iv,
+  glProgramUniform2ivEXT,
+  glProgramUniform2ui,
+  glProgramUniform2ui64ARB,
+  glProgramUniform2ui64NV,
+  glProgramUniform2ui64vARB,
+  glProgramUniform2ui64vNV,
+  glProgramUniform2uiEXT,
+  glProgramUniform2uiv,
+  glProgramUniform2uivEXT,
+  glProgramUniform3d,
+  glProgramUniform3dEXT,
+  glProgramUniform3dv,
+  glProgramUniform3dvEXT,
+  glProgramUniform3f,
+  glProgramUniform3fEXT,
+  glProgramUniform3fv,
+  glProgramUniform3fvEXT,
+  glProgramUniform3i,
+  glProgramUniform3i64ARB,
+  glProgramUniform3i64NV,
+  glProgramUniform3i64vARB,
+  glProgramUniform3i64vNV,
+  glProgramUniform3iEXT,
+  glProgramUniform3iv,
+  glProgramUniform3ivEXT,
+  glProgramUniform3ui,
+  glProgramUniform3ui64ARB,
+  glProgramUniform3ui64NV,
+  glProgramUniform3ui64vARB,
+  glProgramUniform3ui64vNV,
+  glProgramUniform3uiEXT,
+  glProgramUniform3uiv,
+  glProgramUniform3uivEXT,
+  glProgramUniform4d,
+  glProgramUniform4dEXT,
+  glProgramUniform4dv,
+  glProgramUniform4dvEXT,
+  glProgramUniform4f,
+  glProgramUniform4fEXT,
+  glProgramUniform4fv,
+  glProgramUniform4fvEXT,
+  glProgramUniform4i,
+  glProgramUniform4i64ARB,
+  glProgramUniform4i64NV,
+  glProgramUniform4i64vARB,
+  glProgramUniform4i64vNV,
+  glProgramUniform4iEXT
+) where
+
+import Control.Monad.IO.Class ( MonadIO(..) )
+import Foreign.Ptr
+import Graphics.GL.Foreign
+import Graphics.GL.Types
+import System.IO.Unsafe ( unsafePerformIO )
+
+-- glProgramNamedParameter4fNV -------------------------------------------------
+
+-- | The vector equivalent of this command is 'glProgramNamedParameter4fvNV'.
+glProgramNamedParameter4fNV
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> GLsizei -- ^ @len@.
+  -> Ptr GLubyte -- ^ @name@ pointing to @1@ element of type @GLubyte@.
+  -> GLfloat -- ^ @x@.
+  -> GLfloat -- ^ @y@.
+  -> GLfloat -- ^ @z@.
+  -> GLfloat -- ^ @w@.
+  -> m ()
+glProgramNamedParameter4fNV v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn666 ptr_glProgramNamedParameter4fNV v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glProgramNamedParameter4fNV #-}
+ptr_glProgramNamedParameter4fNV :: FunPtr (GLuint -> GLsizei -> Ptr GLubyte -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glProgramNamedParameter4fNV = unsafePerformIO $ getCommand "glProgramNamedParameter4fNV"
+
+-- glProgramNamedParameter4fvNV ------------------------------------------------
+
+glProgramNamedParameter4fvNV
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> GLsizei -- ^ @len@.
+  -> Ptr GLubyte -- ^ @name@ pointing to @1@ element of type @GLubyte@.
+  -> Ptr GLfloat -- ^ @v@ pointing to @4@ elements of type @GLfloat@.
+  -> m ()
+glProgramNamedParameter4fvNV v1 v2 v3 v4 = liftIO $ dyn411 ptr_glProgramNamedParameter4fvNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramNamedParameter4fvNV #-}
+ptr_glProgramNamedParameter4fvNV :: FunPtr (GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLfloat -> IO ())
+ptr_glProgramNamedParameter4fvNV = unsafePerformIO $ getCommand "glProgramNamedParameter4fvNV"
+
+-- glProgramParameter4dNV ------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glProgramParameter4dvNV'.
+glProgramParameter4dNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [VertexAttribEnumNV](Graphics-GL-Groups.html#VertexAttribEnumNV).
+  -> GLuint -- ^ @index@.
+  -> GLdouble -- ^ @x@.
+  -> GLdouble -- ^ @y@.
+  -> GLdouble -- ^ @z@.
+  -> GLdouble -- ^ @w@.
+  -> m ()
+glProgramParameter4dNV v1 v2 v3 v4 v5 v6 = liftIO $ dyn661 ptr_glProgramParameter4dNV v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glProgramParameter4dNV #-}
+ptr_glProgramParameter4dNV :: FunPtr (GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+ptr_glProgramParameter4dNV = unsafePerformIO $ getCommand "glProgramParameter4dNV"
+
+-- glProgramParameter4dvNV -----------------------------------------------------
+
+glProgramParameter4dvNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [VertexAttribEnumNV](Graphics-GL-Groups.html#VertexAttribEnumNV).
+  -> GLuint -- ^ @index@.
+  -> Ptr GLdouble -- ^ @v@ pointing to @4@ elements of type @GLdouble@.
+  -> m ()
+glProgramParameter4dvNV v1 v2 v3 = liftIO $ dyn344 ptr_glProgramParameter4dvNV v1 v2 v3
+
+{-# NOINLINE ptr_glProgramParameter4dvNV #-}
+ptr_glProgramParameter4dvNV :: FunPtr (GLenum -> GLuint -> Ptr GLdouble -> IO ())
+ptr_glProgramParameter4dvNV = unsafePerformIO $ getCommand "glProgramParameter4dvNV"
+
+-- glProgramParameter4fNV ------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glProgramParameter4fvNV'.
+glProgramParameter4fNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [VertexAttribEnumNV](Graphics-GL-Groups.html#VertexAttribEnumNV).
+  -> GLuint -- ^ @index@.
+  -> GLfloat -- ^ @x@.
+  -> GLfloat -- ^ @y@.
+  -> GLfloat -- ^ @z@.
+  -> GLfloat -- ^ @w@.
+  -> m ()
+glProgramParameter4fNV v1 v2 v3 v4 v5 v6 = liftIO $ dyn662 ptr_glProgramParameter4fNV v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glProgramParameter4fNV #-}
+ptr_glProgramParameter4fNV :: FunPtr (GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glProgramParameter4fNV = unsafePerformIO $ getCommand "glProgramParameter4fNV"
+
+-- glProgramParameter4fvNV -----------------------------------------------------
+
+glProgramParameter4fvNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [VertexAttribEnumNV](Graphics-GL-Groups.html#VertexAttribEnumNV).
+  -> GLuint -- ^ @index@.
+  -> Ptr GLfloat -- ^ @v@ pointing to @4@ elements of type @GLfloat@.
+  -> m ()
+glProgramParameter4fvNV v1 v2 v3 = liftIO $ dyn278 ptr_glProgramParameter4fvNV v1 v2 v3
+
+{-# NOINLINE ptr_glProgramParameter4fvNV #-}
+ptr_glProgramParameter4fvNV :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
+ptr_glProgramParameter4fvNV = unsafePerformIO $ getCommand "glProgramParameter4fvNV"
+
+-- glProgramParameteri ---------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramParameter.xhtml OpenGL 4.x>.
+glProgramParameteri
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLenum -- ^ @pname@ of type [ProgramParameterPName](Graphics-GL-Groups.html#ProgramParameterPName).
+  -> GLint -- ^ @value@.
+  -> m ()
+glProgramParameteri v1 v2 v3 = liftIO $ dyn491 ptr_glProgramParameteri v1 v2 v3
+
+{-# NOINLINE ptr_glProgramParameteri #-}
+ptr_glProgramParameteri :: FunPtr (GLuint -> GLenum -> GLint -> IO ())
+ptr_glProgramParameteri = unsafePerformIO $ getCommand "glProgramParameteri"
+
+-- glProgramParameteriARB ------------------------------------------------------
+
+-- | This command is an alias for 'glProgramParameteri'.
+glProgramParameteriARB
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLenum -- ^ @pname@ of type [ProgramParameterPName](Graphics-GL-Groups.html#ProgramParameterPName).
+  -> GLint -- ^ @value@.
+  -> m ()
+glProgramParameteriARB v1 v2 v3 = liftIO $ dyn491 ptr_glProgramParameteriARB v1 v2 v3
+
+{-# NOINLINE ptr_glProgramParameteriARB #-}
+ptr_glProgramParameteriARB :: FunPtr (GLuint -> GLenum -> GLint -> IO ())
+ptr_glProgramParameteriARB = unsafePerformIO $ getCommand "glProgramParameteriARB"
+
+-- glProgramParameteriEXT ------------------------------------------------------
+
+-- | This command is an alias for 'glProgramParameteri'.
+glProgramParameteriEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLenum -- ^ @pname@ of type [ProgramParameterPName](Graphics-GL-Groups.html#ProgramParameterPName).
+  -> GLint -- ^ @value@.
+  -> m ()
+glProgramParameteriEXT v1 v2 v3 = liftIO $ dyn491 ptr_glProgramParameteriEXT v1 v2 v3
+
+{-# NOINLINE ptr_glProgramParameteriEXT #-}
+ptr_glProgramParameteriEXT :: FunPtr (GLuint -> GLenum -> GLint -> IO ())
+ptr_glProgramParameteriEXT = unsafePerformIO $ getCommand "glProgramParameteriEXT"
+
+-- glProgramParameters4dvNV ----------------------------------------------------
+
+glProgramParameters4dvNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [VertexAttribEnumNV](Graphics-GL-Groups.html#VertexAttribEnumNV).
+  -> GLuint -- ^ @index@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLdouble -- ^ @v@ pointing to @count*4@ elements of type @GLdouble@.
+  -> m ()
+glProgramParameters4dvNV v1 v2 v3 v4 = liftIO $ dyn667 ptr_glProgramParameters4dvNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramParameters4dvNV #-}
+ptr_glProgramParameters4dvNV :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLdouble -> IO ())
+ptr_glProgramParameters4dvNV = unsafePerformIO $ getCommand "glProgramParameters4dvNV"
+
+-- glProgramParameters4fvNV ----------------------------------------------------
+
+glProgramParameters4fvNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [VertexAttribEnumNV](Graphics-GL-Groups.html#VertexAttribEnumNV).
+  -> GLuint -- ^ @index@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLfloat -- ^ @v@ pointing to @count*4@ elements of type @GLfloat@.
+  -> m ()
+glProgramParameters4fvNV v1 v2 v3 v4 = liftIO $ dyn297 ptr_glProgramParameters4fvNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramParameters4fvNV #-}
+ptr_glProgramParameters4fvNV :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+ptr_glProgramParameters4fvNV = unsafePerformIO $ getCommand "glProgramParameters4fvNV"
+
+-- glProgramPathFragmentInputGenNV ---------------------------------------------
+
+glProgramPathFragmentInputGenNV
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLenum -- ^ @genMode@.
+  -> GLint -- ^ @components@.
+  -> Ptr GLfloat -- ^ @coeffs@.
+  -> m ()
+glProgramPathFragmentInputGenNV v1 v2 v3 v4 v5 = liftIO $ dyn668 ptr_glProgramPathFragmentInputGenNV v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glProgramPathFragmentInputGenNV #-}
+ptr_glProgramPathFragmentInputGenNV :: FunPtr (GLuint -> GLint -> GLenum -> GLint -> Ptr GLfloat -> IO ())
+ptr_glProgramPathFragmentInputGenNV = unsafePerformIO $ getCommand "glProgramPathFragmentInputGenNV"
+
+-- glProgramStringARB ----------------------------------------------------------
+
+glProgramStringARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
+  -> GLenum -- ^ @format@ of type [ProgramFormat](Graphics-GL-Groups.html#ProgramFormat).
+  -> GLsizei -- ^ @len@.
+  -> Ptr a -- ^ @string@ pointing to @len@ elements of type @a@.
+  -> m ()
+glProgramStringARB v1 v2 v3 v4 = liftIO $ dyn669 ptr_glProgramStringARB v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramStringARB #-}
+ptr_glProgramStringARB :: FunPtr (GLenum -> GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glProgramStringARB = unsafePerformIO $ getCommand "glProgramStringARB"
+
+-- glProgramSubroutineParametersuivNV ------------------------------------------
+
+glProgramSubroutineParametersuivNV
+  :: MonadIO m
+  => GLenum -- ^ @target@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLuint -- ^ @params@ pointing to @count@ elements of type @GLuint@.
+  -> m ()
+glProgramSubroutineParametersuivNV v1 v2 v3 = liftIO $ dyn204 ptr_glProgramSubroutineParametersuivNV v1 v2 v3
+
+{-# NOINLINE ptr_glProgramSubroutineParametersuivNV #-}
+ptr_glProgramSubroutineParametersuivNV :: FunPtr (GLenum -> GLsizei -> Ptr GLuint -> IO ())
+ptr_glProgramSubroutineParametersuivNV = unsafePerformIO $ getCommand "glProgramSubroutineParametersuivNV"
+
+-- glProgramUniform1d ----------------------------------------------------------
+
+glProgramUniform1d
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLdouble -- ^ @v0@.
+  -> m ()
+glProgramUniform1d v1 v2 v3 = liftIO $ dyn670 ptr_glProgramUniform1d v1 v2 v3
+
+{-# NOINLINE ptr_glProgramUniform1d #-}
+ptr_glProgramUniform1d :: FunPtr (GLuint -> GLint -> GLdouble -> IO ())
+ptr_glProgramUniform1d = unsafePerformIO $ getCommand "glProgramUniform1d"
+
+-- glProgramUniform1dEXT -------------------------------------------------------
+
+glProgramUniform1dEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLdouble -- ^ @x@.
+  -> m ()
+glProgramUniform1dEXT v1 v2 v3 = liftIO $ dyn670 ptr_glProgramUniform1dEXT v1 v2 v3
+
+{-# NOINLINE ptr_glProgramUniform1dEXT #-}
+ptr_glProgramUniform1dEXT :: FunPtr (GLuint -> GLint -> GLdouble -> IO ())
+ptr_glProgramUniform1dEXT = unsafePerformIO $ getCommand "glProgramUniform1dEXT"
+
+-- glProgramUniform1dv ---------------------------------------------------------
+
+glProgramUniform1dv
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLdouble -- ^ @value@ pointing to @count@ elements of type @GLdouble@.
+  -> m ()
+glProgramUniform1dv v1 v2 v3 v4 = liftIO $ dyn478 ptr_glProgramUniform1dv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniform1dv #-}
+ptr_glProgramUniform1dv :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())
+ptr_glProgramUniform1dv = unsafePerformIO $ getCommand "glProgramUniform1dv"
+
+-- glProgramUniform1dvEXT ------------------------------------------------------
+
+glProgramUniform1dvEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLdouble -- ^ @value@ pointing to @count@ elements of type @GLdouble@.
+  -> m ()
+glProgramUniform1dvEXT v1 v2 v3 v4 = liftIO $ dyn478 ptr_glProgramUniform1dvEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniform1dvEXT #-}
+ptr_glProgramUniform1dvEXT :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())
+ptr_glProgramUniform1dvEXT = unsafePerformIO $ getCommand "glProgramUniform1dvEXT"
+
+-- glProgramUniform1f ----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
+glProgramUniform1f
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLfloat -- ^ @v0@.
+  -> m ()
+glProgramUniform1f v1 v2 v3 = liftIO $ dyn671 ptr_glProgramUniform1f v1 v2 v3
+
+{-# NOINLINE ptr_glProgramUniform1f #-}
+ptr_glProgramUniform1f :: FunPtr (GLuint -> GLint -> GLfloat -> IO ())
+ptr_glProgramUniform1f = unsafePerformIO $ getCommand "glProgramUniform1f"
+
+-- glProgramUniform1fEXT -------------------------------------------------------
+
+-- | This command is an alias for 'glProgramUniform1f'.
+glProgramUniform1fEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLfloat -- ^ @v0@.
+  -> m ()
+glProgramUniform1fEXT v1 v2 v3 = liftIO $ dyn671 ptr_glProgramUniform1fEXT v1 v2 v3
+
+{-# NOINLINE ptr_glProgramUniform1fEXT #-}
+ptr_glProgramUniform1fEXT :: FunPtr (GLuint -> GLint -> GLfloat -> IO ())
+ptr_glProgramUniform1fEXT = unsafePerformIO $ getCommand "glProgramUniform1fEXT"
+
+-- glProgramUniform1fv ---------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
+glProgramUniform1fv
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLfloat -- ^ @value@ pointing to @count@ elements of type @GLfloat@.
+  -> m ()
+glProgramUniform1fv v1 v2 v3 v4 = liftIO $ dyn479 ptr_glProgramUniform1fv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniform1fv #-}
+ptr_glProgramUniform1fv :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
+ptr_glProgramUniform1fv = unsafePerformIO $ getCommand "glProgramUniform1fv"
+
+-- glProgramUniform1fvEXT ------------------------------------------------------
+
+-- | This command is an alias for 'glProgramUniform1fv'.
+glProgramUniform1fvEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLfloat -- ^ @value@ pointing to @count@ elements of type @GLfloat@.
+  -> m ()
+glProgramUniform1fvEXT v1 v2 v3 v4 = liftIO $ dyn479 ptr_glProgramUniform1fvEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniform1fvEXT #-}
+ptr_glProgramUniform1fvEXT :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
+ptr_glProgramUniform1fvEXT = unsafePerformIO $ getCommand "glProgramUniform1fvEXT"
+
+-- glProgramUniform1i ----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
+glProgramUniform1i
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLint -- ^ @v0@.
+  -> m ()
+glProgramUniform1i v1 v2 v3 = liftIO $ dyn672 ptr_glProgramUniform1i v1 v2 v3
+
+{-# NOINLINE ptr_glProgramUniform1i #-}
+ptr_glProgramUniform1i :: FunPtr (GLuint -> GLint -> GLint -> IO ())
+ptr_glProgramUniform1i = unsafePerformIO $ getCommand "glProgramUniform1i"
+
+-- glProgramUniform1i64ARB -----------------------------------------------------
+
+glProgramUniform1i64ARB
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLint64 -- ^ @x@.
+  -> m ()
+glProgramUniform1i64ARB v1 v2 v3 = liftIO $ dyn673 ptr_glProgramUniform1i64ARB v1 v2 v3
+
+{-# NOINLINE ptr_glProgramUniform1i64ARB #-}
+ptr_glProgramUniform1i64ARB :: FunPtr (GLuint -> GLint -> GLint64 -> IO ())
+ptr_glProgramUniform1i64ARB = unsafePerformIO $ getCommand "glProgramUniform1i64ARB"
+
+-- glProgramUniform1i64NV ------------------------------------------------------
+
+glProgramUniform1i64NV
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLint64EXT -- ^ @x@.
+  -> m ()
+glProgramUniform1i64NV v1 v2 v3 = liftIO $ dyn674 ptr_glProgramUniform1i64NV v1 v2 v3
+
+{-# NOINLINE ptr_glProgramUniform1i64NV #-}
+ptr_glProgramUniform1i64NV :: FunPtr (GLuint -> GLint -> GLint64EXT -> IO ())
+ptr_glProgramUniform1i64NV = unsafePerformIO $ getCommand "glProgramUniform1i64NV"
+
+-- glProgramUniform1i64vARB ----------------------------------------------------
+
+glProgramUniform1i64vARB
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLint64 -- ^ @value@ pointing to @count@ elements of type @GLint64@.
+  -> m ()
+glProgramUniform1i64vARB v1 v2 v3 v4 = liftIO $ dyn480 ptr_glProgramUniform1i64vARB v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniform1i64vARB #-}
+ptr_glProgramUniform1i64vARB :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64 -> IO ())
+ptr_glProgramUniform1i64vARB = unsafePerformIO $ getCommand "glProgramUniform1i64vARB"
+
+-- glProgramUniform1i64vNV -----------------------------------------------------
+
+glProgramUniform1i64vNV
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLint64EXT -- ^ @value@ pointing to @count@ elements of type @GLint64EXT@.
+  -> m ()
+glProgramUniform1i64vNV v1 v2 v3 v4 = liftIO $ dyn675 ptr_glProgramUniform1i64vNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniform1i64vNV #-}
+ptr_glProgramUniform1i64vNV :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
+ptr_glProgramUniform1i64vNV = unsafePerformIO $ getCommand "glProgramUniform1i64vNV"
+
+-- glProgramUniform1iEXT -------------------------------------------------------
+
+-- | This command is an alias for 'glProgramUniform1i'.
+glProgramUniform1iEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLint -- ^ @v0@.
+  -> m ()
+glProgramUniform1iEXT v1 v2 v3 = liftIO $ dyn672 ptr_glProgramUniform1iEXT v1 v2 v3
+
+{-# NOINLINE ptr_glProgramUniform1iEXT #-}
+ptr_glProgramUniform1iEXT :: FunPtr (GLuint -> GLint -> GLint -> IO ())
+ptr_glProgramUniform1iEXT = unsafePerformIO $ getCommand "glProgramUniform1iEXT"
+
+-- glProgramUniform1iv ---------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
+glProgramUniform1iv
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLint -- ^ @value@ pointing to @count@ elements of type @GLint@.
+  -> m ()
+glProgramUniform1iv v1 v2 v3 v4 = liftIO $ dyn481 ptr_glProgramUniform1iv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniform1iv #-}
+ptr_glProgramUniform1iv :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
+ptr_glProgramUniform1iv = unsafePerformIO $ getCommand "glProgramUniform1iv"
+
+-- glProgramUniform1ivEXT ------------------------------------------------------
+
+-- | This command is an alias for 'glProgramUniform1iv'.
+glProgramUniform1ivEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLint -- ^ @value@ pointing to @count@ elements of type @GLint@.
+  -> m ()
+glProgramUniform1ivEXT v1 v2 v3 v4 = liftIO $ dyn481 ptr_glProgramUniform1ivEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniform1ivEXT #-}
+ptr_glProgramUniform1ivEXT :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
+ptr_glProgramUniform1ivEXT = unsafePerformIO $ getCommand "glProgramUniform1ivEXT"
+
+-- glProgramUniform1ui ---------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
+glProgramUniform1ui
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLuint -- ^ @v0@.
+  -> m ()
+glProgramUniform1ui v1 v2 v3 = liftIO $ dyn676 ptr_glProgramUniform1ui v1 v2 v3
+
+{-# NOINLINE ptr_glProgramUniform1ui #-}
+ptr_glProgramUniform1ui :: FunPtr (GLuint -> GLint -> GLuint -> IO ())
+ptr_glProgramUniform1ui = unsafePerformIO $ getCommand "glProgramUniform1ui"
+
+-- glProgramUniform1ui64ARB ----------------------------------------------------
+
+glProgramUniform1ui64ARB
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLuint64 -- ^ @x@.
+  -> m ()
+glProgramUniform1ui64ARB v1 v2 v3 = liftIO $ dyn677 ptr_glProgramUniform1ui64ARB v1 v2 v3
+
+{-# NOINLINE ptr_glProgramUniform1ui64ARB #-}
+ptr_glProgramUniform1ui64ARB :: FunPtr (GLuint -> GLint -> GLuint64 -> IO ())
+ptr_glProgramUniform1ui64ARB = unsafePerformIO $ getCommand "glProgramUniform1ui64ARB"
+
+-- glProgramUniform1ui64NV -----------------------------------------------------
+
+glProgramUniform1ui64NV
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLuint64EXT -- ^ @x@.
+  -> m ()
+glProgramUniform1ui64NV v1 v2 v3 = liftIO $ dyn678 ptr_glProgramUniform1ui64NV v1 v2 v3
+
+{-# NOINLINE ptr_glProgramUniform1ui64NV #-}
+ptr_glProgramUniform1ui64NV :: FunPtr (GLuint -> GLint -> GLuint64EXT -> IO ())
+ptr_glProgramUniform1ui64NV = unsafePerformIO $ getCommand "glProgramUniform1ui64NV"
+
+-- glProgramUniform1ui64vARB ---------------------------------------------------
+
+glProgramUniform1ui64vARB
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLuint64 -- ^ @value@ pointing to @count@ elements of type @GLuint64@.
+  -> m ()
+glProgramUniform1ui64vARB v1 v2 v3 v4 = liftIO $ dyn482 ptr_glProgramUniform1ui64vARB v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniform1ui64vARB #-}
+ptr_glProgramUniform1ui64vARB :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> IO ())
+ptr_glProgramUniform1ui64vARB = unsafePerformIO $ getCommand "glProgramUniform1ui64vARB"
+
+-- glProgramUniform1ui64vNV ----------------------------------------------------
+
+glProgramUniform1ui64vNV
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLuint64EXT -- ^ @value@ pointing to @count@ elements of type @GLuint64EXT@.
+  -> m ()
+glProgramUniform1ui64vNV v1 v2 v3 v4 = liftIO $ dyn679 ptr_glProgramUniform1ui64vNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniform1ui64vNV #-}
+ptr_glProgramUniform1ui64vNV :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
+ptr_glProgramUniform1ui64vNV = unsafePerformIO $ getCommand "glProgramUniform1ui64vNV"
+
+-- glProgramUniform1uiEXT ------------------------------------------------------
+
+-- | This command is an alias for 'glProgramUniform1ui'.
+glProgramUniform1uiEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLuint -- ^ @v0@.
+  -> m ()
+glProgramUniform1uiEXT v1 v2 v3 = liftIO $ dyn676 ptr_glProgramUniform1uiEXT v1 v2 v3
+
+{-# NOINLINE ptr_glProgramUniform1uiEXT #-}
+ptr_glProgramUniform1uiEXT :: FunPtr (GLuint -> GLint -> GLuint -> IO ())
+ptr_glProgramUniform1uiEXT = unsafePerformIO $ getCommand "glProgramUniform1uiEXT"
+
+-- glProgramUniform1uiv --------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
+glProgramUniform1uiv
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLuint -- ^ @value@ pointing to @count@ elements of type @GLuint@.
+  -> m ()
+glProgramUniform1uiv v1 v2 v3 v4 = liftIO $ dyn483 ptr_glProgramUniform1uiv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniform1uiv #-}
+ptr_glProgramUniform1uiv :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
+ptr_glProgramUniform1uiv = unsafePerformIO $ getCommand "glProgramUniform1uiv"
+
+-- glProgramUniform1uivEXT -----------------------------------------------------
+
+-- | This command is an alias for 'glProgramUniform1uiv'.
+glProgramUniform1uivEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLuint -- ^ @value@ pointing to @count@ elements of type @GLuint@.
+  -> m ()
+glProgramUniform1uivEXT v1 v2 v3 v4 = liftIO $ dyn483 ptr_glProgramUniform1uivEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniform1uivEXT #-}
+ptr_glProgramUniform1uivEXT :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
+ptr_glProgramUniform1uivEXT = unsafePerformIO $ getCommand "glProgramUniform1uivEXT"
+
+-- glProgramUniform2d ----------------------------------------------------------
+
+glProgramUniform2d
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLdouble -- ^ @v0@.
+  -> GLdouble -- ^ @v1@.
+  -> m ()
+glProgramUniform2d v1 v2 v3 v4 = liftIO $ dyn680 ptr_glProgramUniform2d v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniform2d #-}
+ptr_glProgramUniform2d :: FunPtr (GLuint -> GLint -> GLdouble -> GLdouble -> IO ())
+ptr_glProgramUniform2d = unsafePerformIO $ getCommand "glProgramUniform2d"
+
+-- glProgramUniform2dEXT -------------------------------------------------------
+
+glProgramUniform2dEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLdouble -- ^ @x@.
+  -> GLdouble -- ^ @y@.
+  -> m ()
+glProgramUniform2dEXT v1 v2 v3 v4 = liftIO $ dyn680 ptr_glProgramUniform2dEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniform2dEXT #-}
+ptr_glProgramUniform2dEXT :: FunPtr (GLuint -> GLint -> GLdouble -> GLdouble -> IO ())
+ptr_glProgramUniform2dEXT = unsafePerformIO $ getCommand "glProgramUniform2dEXT"
+
+-- glProgramUniform2dv ---------------------------------------------------------
+
+glProgramUniform2dv
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLdouble -- ^ @value@ pointing to @count*2@ elements of type @GLdouble@.
+  -> m ()
+glProgramUniform2dv v1 v2 v3 v4 = liftIO $ dyn478 ptr_glProgramUniform2dv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniform2dv #-}
+ptr_glProgramUniform2dv :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())
+ptr_glProgramUniform2dv = unsafePerformIO $ getCommand "glProgramUniform2dv"
+
+-- glProgramUniform2dvEXT ------------------------------------------------------
+
+glProgramUniform2dvEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLdouble -- ^ @value@ pointing to @count*2@ elements of type @GLdouble@.
+  -> m ()
+glProgramUniform2dvEXT v1 v2 v3 v4 = liftIO $ dyn478 ptr_glProgramUniform2dvEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniform2dvEXT #-}
+ptr_glProgramUniform2dvEXT :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())
+ptr_glProgramUniform2dvEXT = unsafePerformIO $ getCommand "glProgramUniform2dvEXT"
+
+-- glProgramUniform2f ----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
+glProgramUniform2f
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLfloat -- ^ @v0@.
+  -> GLfloat -- ^ @v1@.
+  -> m ()
+glProgramUniform2f v1 v2 v3 v4 = liftIO $ dyn681 ptr_glProgramUniform2f v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniform2f #-}
+ptr_glProgramUniform2f :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> IO ())
+ptr_glProgramUniform2f = unsafePerformIO $ getCommand "glProgramUniform2f"
+
+-- glProgramUniform2fEXT -------------------------------------------------------
+
+-- | This command is an alias for 'glProgramUniform2f'.
+glProgramUniform2fEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLfloat -- ^ @v0@.
+  -> GLfloat -- ^ @v1@.
+  -> m ()
+glProgramUniform2fEXT v1 v2 v3 v4 = liftIO $ dyn681 ptr_glProgramUniform2fEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniform2fEXT #-}
+ptr_glProgramUniform2fEXT :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> IO ())
+ptr_glProgramUniform2fEXT = unsafePerformIO $ getCommand "glProgramUniform2fEXT"
+
+-- glProgramUniform2fv ---------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
+glProgramUniform2fv
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLfloat -- ^ @value@ pointing to @count*2@ elements of type @GLfloat@.
+  -> m ()
+glProgramUniform2fv v1 v2 v3 v4 = liftIO $ dyn479 ptr_glProgramUniform2fv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniform2fv #-}
+ptr_glProgramUniform2fv :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
+ptr_glProgramUniform2fv = unsafePerformIO $ getCommand "glProgramUniform2fv"
+
+-- glProgramUniform2fvEXT ------------------------------------------------------
+
+-- | This command is an alias for 'glProgramUniform2fv'.
+glProgramUniform2fvEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLfloat -- ^ @value@ pointing to @count*2@ elements of type @GLfloat@.
+  -> m ()
+glProgramUniform2fvEXT v1 v2 v3 v4 = liftIO $ dyn479 ptr_glProgramUniform2fvEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniform2fvEXT #-}
+ptr_glProgramUniform2fvEXT :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
+ptr_glProgramUniform2fvEXT = unsafePerformIO $ getCommand "glProgramUniform2fvEXT"
+
+-- glProgramUniform2i ----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
+glProgramUniform2i
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLint -- ^ @v0@.
+  -> GLint -- ^ @v1@.
+  -> m ()
+glProgramUniform2i v1 v2 v3 v4 = liftIO $ dyn682 ptr_glProgramUniform2i v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniform2i #-}
+ptr_glProgramUniform2i :: FunPtr (GLuint -> GLint -> GLint -> GLint -> IO ())
+ptr_glProgramUniform2i = unsafePerformIO $ getCommand "glProgramUniform2i"
+
+-- glProgramUniform2i64ARB -----------------------------------------------------
+
+glProgramUniform2i64ARB
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLint64 -- ^ @x@.
+  -> GLint64 -- ^ @y@.
+  -> m ()
+glProgramUniform2i64ARB v1 v2 v3 v4 = liftIO $ dyn683 ptr_glProgramUniform2i64ARB v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniform2i64ARB #-}
+ptr_glProgramUniform2i64ARB :: FunPtr (GLuint -> GLint -> GLint64 -> GLint64 -> IO ())
+ptr_glProgramUniform2i64ARB = unsafePerformIO $ getCommand "glProgramUniform2i64ARB"
+
+-- glProgramUniform2i64NV ------------------------------------------------------
+
+glProgramUniform2i64NV
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLint64EXT -- ^ @x@.
+  -> GLint64EXT -- ^ @y@.
+  -> m ()
+glProgramUniform2i64NV v1 v2 v3 v4 = liftIO $ dyn684 ptr_glProgramUniform2i64NV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniform2i64NV #-}
+ptr_glProgramUniform2i64NV :: FunPtr (GLuint -> GLint -> GLint64EXT -> GLint64EXT -> IO ())
+ptr_glProgramUniform2i64NV = unsafePerformIO $ getCommand "glProgramUniform2i64NV"
+
+-- glProgramUniform2i64vARB ----------------------------------------------------
+
+glProgramUniform2i64vARB
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLint64 -- ^ @value@ pointing to @count*2@ elements of type @GLint64@.
+  -> m ()
+glProgramUniform2i64vARB v1 v2 v3 v4 = liftIO $ dyn480 ptr_glProgramUniform2i64vARB v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniform2i64vARB #-}
+ptr_glProgramUniform2i64vARB :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64 -> IO ())
+ptr_glProgramUniform2i64vARB = unsafePerformIO $ getCommand "glProgramUniform2i64vARB"
+
+-- glProgramUniform2i64vNV -----------------------------------------------------
+
+glProgramUniform2i64vNV
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLint64EXT -- ^ @value@ pointing to @count*2@ elements of type @GLint64EXT@.
+  -> m ()
+glProgramUniform2i64vNV v1 v2 v3 v4 = liftIO $ dyn675 ptr_glProgramUniform2i64vNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniform2i64vNV #-}
+ptr_glProgramUniform2i64vNV :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
+ptr_glProgramUniform2i64vNV = unsafePerformIO $ getCommand "glProgramUniform2i64vNV"
+
+-- glProgramUniform2iEXT -------------------------------------------------------
+
+-- | This command is an alias for 'glProgramUniform2i'.
+glProgramUniform2iEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLint -- ^ @v0@.
+  -> GLint -- ^ @v1@.
+  -> m ()
+glProgramUniform2iEXT v1 v2 v3 v4 = liftIO $ dyn682 ptr_glProgramUniform2iEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniform2iEXT #-}
+ptr_glProgramUniform2iEXT :: FunPtr (GLuint -> GLint -> GLint -> GLint -> IO ())
+ptr_glProgramUniform2iEXT = unsafePerformIO $ getCommand "glProgramUniform2iEXT"
+
+-- glProgramUniform2iv ---------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
+glProgramUniform2iv
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLint -- ^ @value@ pointing to @count*2@ elements of type @GLint@.
+  -> m ()
+glProgramUniform2iv v1 v2 v3 v4 = liftIO $ dyn481 ptr_glProgramUniform2iv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniform2iv #-}
+ptr_glProgramUniform2iv :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
+ptr_glProgramUniform2iv = unsafePerformIO $ getCommand "glProgramUniform2iv"
+
+-- glProgramUniform2ivEXT ------------------------------------------------------
+
+-- | This command is an alias for 'glProgramUniform2iv'.
+glProgramUniform2ivEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLint -- ^ @value@ pointing to @count*2@ elements of type @GLint@.
+  -> m ()
+glProgramUniform2ivEXT v1 v2 v3 v4 = liftIO $ dyn481 ptr_glProgramUniform2ivEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniform2ivEXT #-}
+ptr_glProgramUniform2ivEXT :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
+ptr_glProgramUniform2ivEXT = unsafePerformIO $ getCommand "glProgramUniform2ivEXT"
+
+-- glProgramUniform2ui ---------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
+glProgramUniform2ui
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLuint -- ^ @v0@.
+  -> GLuint -- ^ @v1@.
+  -> m ()
+glProgramUniform2ui v1 v2 v3 v4 = liftIO $ dyn685 ptr_glProgramUniform2ui v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniform2ui #-}
+ptr_glProgramUniform2ui :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> IO ())
+ptr_glProgramUniform2ui = unsafePerformIO $ getCommand "glProgramUniform2ui"
+
+-- glProgramUniform2ui64ARB ----------------------------------------------------
+
+glProgramUniform2ui64ARB
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLuint64 -- ^ @x@.
+  -> GLuint64 -- ^ @y@.
+  -> m ()
+glProgramUniform2ui64ARB v1 v2 v3 v4 = liftIO $ dyn686 ptr_glProgramUniform2ui64ARB v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniform2ui64ARB #-}
+ptr_glProgramUniform2ui64ARB :: FunPtr (GLuint -> GLint -> GLuint64 -> GLuint64 -> IO ())
+ptr_glProgramUniform2ui64ARB = unsafePerformIO $ getCommand "glProgramUniform2ui64ARB"
+
+-- glProgramUniform2ui64NV -----------------------------------------------------
+
+glProgramUniform2ui64NV
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLuint64EXT -- ^ @x@.
+  -> GLuint64EXT -- ^ @y@.
+  -> m ()
+glProgramUniform2ui64NV v1 v2 v3 v4 = liftIO $ dyn687 ptr_glProgramUniform2ui64NV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniform2ui64NV #-}
+ptr_glProgramUniform2ui64NV :: FunPtr (GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> IO ())
+ptr_glProgramUniform2ui64NV = unsafePerformIO $ getCommand "glProgramUniform2ui64NV"
+
+-- glProgramUniform2ui64vARB ---------------------------------------------------
+
+glProgramUniform2ui64vARB
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLuint64 -- ^ @value@ pointing to @count*2@ elements of type @GLuint64@.
+  -> m ()
+glProgramUniform2ui64vARB v1 v2 v3 v4 = liftIO $ dyn482 ptr_glProgramUniform2ui64vARB v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniform2ui64vARB #-}
+ptr_glProgramUniform2ui64vARB :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> IO ())
+ptr_glProgramUniform2ui64vARB = unsafePerformIO $ getCommand "glProgramUniform2ui64vARB"
+
+-- glProgramUniform2ui64vNV ----------------------------------------------------
+
+glProgramUniform2ui64vNV
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLuint64EXT -- ^ @value@ pointing to @count*2@ elements of type @GLuint64EXT@.
+  -> m ()
+glProgramUniform2ui64vNV v1 v2 v3 v4 = liftIO $ dyn679 ptr_glProgramUniform2ui64vNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniform2ui64vNV #-}
+ptr_glProgramUniform2ui64vNV :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
+ptr_glProgramUniform2ui64vNV = unsafePerformIO $ getCommand "glProgramUniform2ui64vNV"
+
+-- glProgramUniform2uiEXT ------------------------------------------------------
+
+-- | This command is an alias for 'glProgramUniform2ui'.
+glProgramUniform2uiEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLuint -- ^ @v0@.
+  -> GLuint -- ^ @v1@.
+  -> m ()
+glProgramUniform2uiEXT v1 v2 v3 v4 = liftIO $ dyn685 ptr_glProgramUniform2uiEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniform2uiEXT #-}
+ptr_glProgramUniform2uiEXT :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> IO ())
+ptr_glProgramUniform2uiEXT = unsafePerformIO $ getCommand "glProgramUniform2uiEXT"
+
+-- glProgramUniform2uiv --------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
+glProgramUniform2uiv
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLuint -- ^ @value@ pointing to @count*2@ elements of type @GLuint@.
+  -> m ()
+glProgramUniform2uiv v1 v2 v3 v4 = liftIO $ dyn483 ptr_glProgramUniform2uiv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniform2uiv #-}
+ptr_glProgramUniform2uiv :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
+ptr_glProgramUniform2uiv = unsafePerformIO $ getCommand "glProgramUniform2uiv"
+
+-- glProgramUniform2uivEXT -----------------------------------------------------
+
+-- | This command is an alias for 'glProgramUniform2uiv'.
+glProgramUniform2uivEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLuint -- ^ @value@ pointing to @count*2@ elements of type @GLuint@.
+  -> m ()
+glProgramUniform2uivEXT v1 v2 v3 v4 = liftIO $ dyn483 ptr_glProgramUniform2uivEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniform2uivEXT #-}
+ptr_glProgramUniform2uivEXT :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
+ptr_glProgramUniform2uivEXT = unsafePerformIO $ getCommand "glProgramUniform2uivEXT"
+
+-- glProgramUniform3d ----------------------------------------------------------
+
+glProgramUniform3d
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLdouble -- ^ @v0@.
+  -> GLdouble -- ^ @v1@.
+  -> GLdouble -- ^ @v2@.
+  -> m ()
+glProgramUniform3d v1 v2 v3 v4 v5 = liftIO $ dyn688 ptr_glProgramUniform3d v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glProgramUniform3d #-}
+ptr_glProgramUniform3d :: FunPtr (GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> IO ())
+ptr_glProgramUniform3d = unsafePerformIO $ getCommand "glProgramUniform3d"
+
+-- glProgramUniform3dEXT -------------------------------------------------------
+
+glProgramUniform3dEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLdouble -- ^ @x@.
+  -> GLdouble -- ^ @y@.
+  -> GLdouble -- ^ @z@.
+  -> m ()
+glProgramUniform3dEXT v1 v2 v3 v4 v5 = liftIO $ dyn688 ptr_glProgramUniform3dEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glProgramUniform3dEXT #-}
+ptr_glProgramUniform3dEXT :: FunPtr (GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> IO ())
+ptr_glProgramUniform3dEXT = unsafePerformIO $ getCommand "glProgramUniform3dEXT"
+
+-- glProgramUniform3dv ---------------------------------------------------------
+
+glProgramUniform3dv
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLdouble -- ^ @value@ pointing to @count*3@ elements of type @GLdouble@.
+  -> m ()
+glProgramUniform3dv v1 v2 v3 v4 = liftIO $ dyn478 ptr_glProgramUniform3dv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniform3dv #-}
+ptr_glProgramUniform3dv :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())
+ptr_glProgramUniform3dv = unsafePerformIO $ getCommand "glProgramUniform3dv"
+
+-- glProgramUniform3dvEXT ------------------------------------------------------
+
+glProgramUniform3dvEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLdouble -- ^ @value@ pointing to @count*3@ elements of type @GLdouble@.
+  -> m ()
+glProgramUniform3dvEXT v1 v2 v3 v4 = liftIO $ dyn478 ptr_glProgramUniform3dvEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniform3dvEXT #-}
+ptr_glProgramUniform3dvEXT :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())
+ptr_glProgramUniform3dvEXT = unsafePerformIO $ getCommand "glProgramUniform3dvEXT"
+
+-- glProgramUniform3f ----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
+glProgramUniform3f
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLfloat -- ^ @v0@.
+  -> GLfloat -- ^ @v1@.
+  -> GLfloat -- ^ @v2@.
+  -> m ()
+glProgramUniform3f v1 v2 v3 v4 v5 = liftIO $ dyn689 ptr_glProgramUniform3f v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glProgramUniform3f #-}
+ptr_glProgramUniform3f :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glProgramUniform3f = unsafePerformIO $ getCommand "glProgramUniform3f"
+
+-- glProgramUniform3fEXT -------------------------------------------------------
+
+-- | This command is an alias for 'glProgramUniform3f'.
+glProgramUniform3fEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLfloat -- ^ @v0@.
+  -> GLfloat -- ^ @v1@.
+  -> GLfloat -- ^ @v2@.
+  -> m ()
+glProgramUniform3fEXT v1 v2 v3 v4 v5 = liftIO $ dyn689 ptr_glProgramUniform3fEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glProgramUniform3fEXT #-}
+ptr_glProgramUniform3fEXT :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glProgramUniform3fEXT = unsafePerformIO $ getCommand "glProgramUniform3fEXT"
+
+-- glProgramUniform3fv ---------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
+glProgramUniform3fv
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLfloat -- ^ @value@ pointing to @count*3@ elements of type @GLfloat@.
+  -> m ()
+glProgramUniform3fv v1 v2 v3 v4 = liftIO $ dyn479 ptr_glProgramUniform3fv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniform3fv #-}
+ptr_glProgramUniform3fv :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
+ptr_glProgramUniform3fv = unsafePerformIO $ getCommand "glProgramUniform3fv"
+
+-- glProgramUniform3fvEXT ------------------------------------------------------
+
+-- | This command is an alias for 'glProgramUniform3fv'.
+glProgramUniform3fvEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLfloat -- ^ @value@ pointing to @count*3@ elements of type @GLfloat@.
+  -> m ()
+glProgramUniform3fvEXT v1 v2 v3 v4 = liftIO $ dyn479 ptr_glProgramUniform3fvEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniform3fvEXT #-}
+ptr_glProgramUniform3fvEXT :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
+ptr_glProgramUniform3fvEXT = unsafePerformIO $ getCommand "glProgramUniform3fvEXT"
+
+-- glProgramUniform3i ----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
+glProgramUniform3i
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLint -- ^ @v0@.
+  -> GLint -- ^ @v1@.
+  -> GLint -- ^ @v2@.
+  -> m ()
+glProgramUniform3i v1 v2 v3 v4 v5 = liftIO $ dyn690 ptr_glProgramUniform3i v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glProgramUniform3i #-}
+ptr_glProgramUniform3i :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
+ptr_glProgramUniform3i = unsafePerformIO $ getCommand "glProgramUniform3i"
+
+-- glProgramUniform3i64ARB -----------------------------------------------------
+
+glProgramUniform3i64ARB
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLint64 -- ^ @x@.
+  -> GLint64 -- ^ @y@.
+  -> GLint64 -- ^ @z@.
+  -> m ()
+glProgramUniform3i64ARB v1 v2 v3 v4 v5 = liftIO $ dyn691 ptr_glProgramUniform3i64ARB v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glProgramUniform3i64ARB #-}
+ptr_glProgramUniform3i64ARB :: FunPtr (GLuint -> GLint -> GLint64 -> GLint64 -> GLint64 -> IO ())
+ptr_glProgramUniform3i64ARB = unsafePerformIO $ getCommand "glProgramUniform3i64ARB"
+
+-- glProgramUniform3i64NV ------------------------------------------------------
+
+glProgramUniform3i64NV
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLint64EXT -- ^ @x@.
+  -> GLint64EXT -- ^ @y@.
+  -> GLint64EXT -- ^ @z@.
+  -> m ()
+glProgramUniform3i64NV v1 v2 v3 v4 v5 = liftIO $ dyn692 ptr_glProgramUniform3i64NV v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glProgramUniform3i64NV #-}
+ptr_glProgramUniform3i64NV :: FunPtr (GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ())
+ptr_glProgramUniform3i64NV = unsafePerformIO $ getCommand "glProgramUniform3i64NV"
+
+-- glProgramUniform3i64vARB ----------------------------------------------------
+
+glProgramUniform3i64vARB
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLint64 -- ^ @value@ pointing to @count*3@ elements of type @GLint64@.
+  -> m ()
+glProgramUniform3i64vARB v1 v2 v3 v4 = liftIO $ dyn480 ptr_glProgramUniform3i64vARB v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniform3i64vARB #-}
+ptr_glProgramUniform3i64vARB :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64 -> IO ())
+ptr_glProgramUniform3i64vARB = unsafePerformIO $ getCommand "glProgramUniform3i64vARB"
+
+-- glProgramUniform3i64vNV -----------------------------------------------------
+
+glProgramUniform3i64vNV
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLint64EXT -- ^ @value@ pointing to @count*3@ elements of type @GLint64EXT@.
+  -> m ()
+glProgramUniform3i64vNV v1 v2 v3 v4 = liftIO $ dyn675 ptr_glProgramUniform3i64vNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniform3i64vNV #-}
+ptr_glProgramUniform3i64vNV :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
+ptr_glProgramUniform3i64vNV = unsafePerformIO $ getCommand "glProgramUniform3i64vNV"
+
+-- glProgramUniform3iEXT -------------------------------------------------------
+
+-- | This command is an alias for 'glProgramUniform3i'.
+glProgramUniform3iEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLint -- ^ @v0@.
+  -> GLint -- ^ @v1@.
+  -> GLint -- ^ @v2@.
+  -> m ()
+glProgramUniform3iEXT v1 v2 v3 v4 v5 = liftIO $ dyn690 ptr_glProgramUniform3iEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glProgramUniform3iEXT #-}
+ptr_glProgramUniform3iEXT :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
+ptr_glProgramUniform3iEXT = unsafePerformIO $ getCommand "glProgramUniform3iEXT"
+
+-- glProgramUniform3iv ---------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
+glProgramUniform3iv
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLint -- ^ @value@ pointing to @count*3@ elements of type @GLint@.
+  -> m ()
+glProgramUniform3iv v1 v2 v3 v4 = liftIO $ dyn481 ptr_glProgramUniform3iv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniform3iv #-}
+ptr_glProgramUniform3iv :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
+ptr_glProgramUniform3iv = unsafePerformIO $ getCommand "glProgramUniform3iv"
+
+-- glProgramUniform3ivEXT ------------------------------------------------------
+
+-- | This command is an alias for 'glProgramUniform3iv'.
+glProgramUniform3ivEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLint -- ^ @value@ pointing to @count*3@ elements of type @GLint@.
+  -> m ()
+glProgramUniform3ivEXT v1 v2 v3 v4 = liftIO $ dyn481 ptr_glProgramUniform3ivEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniform3ivEXT #-}
+ptr_glProgramUniform3ivEXT :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
+ptr_glProgramUniform3ivEXT = unsafePerformIO $ getCommand "glProgramUniform3ivEXT"
+
+-- glProgramUniform3ui ---------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
+glProgramUniform3ui
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLuint -- ^ @v0@.
+  -> GLuint -- ^ @v1@.
+  -> GLuint -- ^ @v2@.
+  -> m ()
+glProgramUniform3ui v1 v2 v3 v4 v5 = liftIO $ dyn693 ptr_glProgramUniform3ui v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glProgramUniform3ui #-}
+ptr_glProgramUniform3ui :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> GLuint -> IO ())
+ptr_glProgramUniform3ui = unsafePerformIO $ getCommand "glProgramUniform3ui"
+
+-- glProgramUniform3ui64ARB ----------------------------------------------------
+
+glProgramUniform3ui64ARB
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLuint64 -- ^ @x@.
+  -> GLuint64 -- ^ @y@.
+  -> GLuint64 -- ^ @z@.
+  -> m ()
+glProgramUniform3ui64ARB v1 v2 v3 v4 v5 = liftIO $ dyn694 ptr_glProgramUniform3ui64ARB v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glProgramUniform3ui64ARB #-}
+ptr_glProgramUniform3ui64ARB :: FunPtr (GLuint -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> IO ())
+ptr_glProgramUniform3ui64ARB = unsafePerformIO $ getCommand "glProgramUniform3ui64ARB"
+
+-- glProgramUniform3ui64NV -----------------------------------------------------
+
+glProgramUniform3ui64NV
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLuint64EXT -- ^ @x@.
+  -> GLuint64EXT -- ^ @y@.
+  -> GLuint64EXT -- ^ @z@.
+  -> m ()
+glProgramUniform3ui64NV v1 v2 v3 v4 v5 = liftIO $ dyn695 ptr_glProgramUniform3ui64NV v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glProgramUniform3ui64NV #-}
+ptr_glProgramUniform3ui64NV :: FunPtr (GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ())
+ptr_glProgramUniform3ui64NV = unsafePerformIO $ getCommand "glProgramUniform3ui64NV"
+
+-- glProgramUniform3ui64vARB ---------------------------------------------------
+
+glProgramUniform3ui64vARB
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLuint64 -- ^ @value@ pointing to @count*3@ elements of type @GLuint64@.
+  -> m ()
+glProgramUniform3ui64vARB v1 v2 v3 v4 = liftIO $ dyn482 ptr_glProgramUniform3ui64vARB v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniform3ui64vARB #-}
+ptr_glProgramUniform3ui64vARB :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> IO ())
+ptr_glProgramUniform3ui64vARB = unsafePerformIO $ getCommand "glProgramUniform3ui64vARB"
+
+-- glProgramUniform3ui64vNV ----------------------------------------------------
+
+glProgramUniform3ui64vNV
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLuint64EXT -- ^ @value@ pointing to @count*3@ elements of type @GLuint64EXT@.
+  -> m ()
+glProgramUniform3ui64vNV v1 v2 v3 v4 = liftIO $ dyn679 ptr_glProgramUniform3ui64vNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniform3ui64vNV #-}
+ptr_glProgramUniform3ui64vNV :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
+ptr_glProgramUniform3ui64vNV = unsafePerformIO $ getCommand "glProgramUniform3ui64vNV"
+
+-- glProgramUniform3uiEXT ------------------------------------------------------
+
+-- | This command is an alias for 'glProgramUniform3ui'.
+glProgramUniform3uiEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLuint -- ^ @v0@.
+  -> GLuint -- ^ @v1@.
+  -> GLuint -- ^ @v2@.
+  -> m ()
+glProgramUniform3uiEXT v1 v2 v3 v4 v5 = liftIO $ dyn693 ptr_glProgramUniform3uiEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glProgramUniform3uiEXT #-}
+ptr_glProgramUniform3uiEXT :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> GLuint -> IO ())
+ptr_glProgramUniform3uiEXT = unsafePerformIO $ getCommand "glProgramUniform3uiEXT"
+
+-- glProgramUniform3uiv --------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
+glProgramUniform3uiv
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLuint -- ^ @value@ pointing to @count*3@ elements of type @GLuint@.
+  -> m ()
+glProgramUniform3uiv v1 v2 v3 v4 = liftIO $ dyn483 ptr_glProgramUniform3uiv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniform3uiv #-}
+ptr_glProgramUniform3uiv :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
+ptr_glProgramUniform3uiv = unsafePerformIO $ getCommand "glProgramUniform3uiv"
+
+-- glProgramUniform3uivEXT -----------------------------------------------------
+
+-- | This command is an alias for 'glProgramUniform3uiv'.
+glProgramUniform3uivEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLuint -- ^ @value@ pointing to @count*3@ elements of type @GLuint@.
+  -> m ()
+glProgramUniform3uivEXT v1 v2 v3 v4 = liftIO $ dyn483 ptr_glProgramUniform3uivEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniform3uivEXT #-}
+ptr_glProgramUniform3uivEXT :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
+ptr_glProgramUniform3uivEXT = unsafePerformIO $ getCommand "glProgramUniform3uivEXT"
+
+-- glProgramUniform4d ----------------------------------------------------------
+
+glProgramUniform4d
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLdouble -- ^ @v0@.
+  -> GLdouble -- ^ @v1@.
+  -> GLdouble -- ^ @v2@.
+  -> GLdouble -- ^ @v3@.
+  -> m ()
+glProgramUniform4d v1 v2 v3 v4 v5 v6 = liftIO $ dyn696 ptr_glProgramUniform4d v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glProgramUniform4d #-}
+ptr_glProgramUniform4d :: FunPtr (GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+ptr_glProgramUniform4d = unsafePerformIO $ getCommand "glProgramUniform4d"
+
+-- glProgramUniform4dEXT -------------------------------------------------------
+
+glProgramUniform4dEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLdouble -- ^ @x@.
+  -> GLdouble -- ^ @y@.
+  -> GLdouble -- ^ @z@.
+  -> GLdouble -- ^ @w@.
+  -> m ()
+glProgramUniform4dEXT v1 v2 v3 v4 v5 v6 = liftIO $ dyn696 ptr_glProgramUniform4dEXT v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glProgramUniform4dEXT #-}
+ptr_glProgramUniform4dEXT :: FunPtr (GLuint -> GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+ptr_glProgramUniform4dEXT = unsafePerformIO $ getCommand "glProgramUniform4dEXT"
+
+-- glProgramUniform4dv ---------------------------------------------------------
+
+glProgramUniform4dv
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLdouble -- ^ @value@ pointing to @count*4@ elements of type @GLdouble@.
+  -> m ()
+glProgramUniform4dv v1 v2 v3 v4 = liftIO $ dyn478 ptr_glProgramUniform4dv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniform4dv #-}
+ptr_glProgramUniform4dv :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())
+ptr_glProgramUniform4dv = unsafePerformIO $ getCommand "glProgramUniform4dv"
+
+-- glProgramUniform4dvEXT ------------------------------------------------------
+
+glProgramUniform4dvEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLdouble -- ^ @value@ pointing to @count*4@ elements of type @GLdouble@.
+  -> m ()
+glProgramUniform4dvEXT v1 v2 v3 v4 = liftIO $ dyn478 ptr_glProgramUniform4dvEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniform4dvEXT #-}
+ptr_glProgramUniform4dvEXT :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLdouble -> IO ())
+ptr_glProgramUniform4dvEXT = unsafePerformIO $ getCommand "glProgramUniform4dvEXT"
+
+-- glProgramUniform4f ----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
+glProgramUniform4f
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLfloat -- ^ @v0@.
+  -> GLfloat -- ^ @v1@.
+  -> GLfloat -- ^ @v2@.
+  -> GLfloat -- ^ @v3@.
+  -> m ()
+glProgramUniform4f v1 v2 v3 v4 v5 v6 = liftIO $ dyn697 ptr_glProgramUniform4f v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glProgramUniform4f #-}
+ptr_glProgramUniform4f :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glProgramUniform4f = unsafePerformIO $ getCommand "glProgramUniform4f"
+
+-- glProgramUniform4fEXT -------------------------------------------------------
+
+-- | This command is an alias for 'glProgramUniform4f'.
+glProgramUniform4fEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLfloat -- ^ @v0@.
+  -> GLfloat -- ^ @v1@.
+  -> GLfloat -- ^ @v2@.
+  -> GLfloat -- ^ @v3@.
+  -> m ()
+glProgramUniform4fEXT v1 v2 v3 v4 v5 v6 = liftIO $ dyn697 ptr_glProgramUniform4fEXT v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glProgramUniform4fEXT #-}
+ptr_glProgramUniform4fEXT :: FunPtr (GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glProgramUniform4fEXT = unsafePerformIO $ getCommand "glProgramUniform4fEXT"
+
+-- glProgramUniform4fv ---------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
+glProgramUniform4fv
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLfloat -- ^ @value@ pointing to @count*4@ elements of type @GLfloat@.
+  -> m ()
+glProgramUniform4fv v1 v2 v3 v4 = liftIO $ dyn479 ptr_glProgramUniform4fv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniform4fv #-}
+ptr_glProgramUniform4fv :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
+ptr_glProgramUniform4fv = unsafePerformIO $ getCommand "glProgramUniform4fv"
+
+-- glProgramUniform4fvEXT ------------------------------------------------------
+
+-- | This command is an alias for 'glProgramUniform4fv'.
+glProgramUniform4fvEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLfloat -- ^ @value@ pointing to @count*4@ elements of type @GLfloat@.
+  -> m ()
+glProgramUniform4fvEXT v1 v2 v3 v4 = liftIO $ dyn479 ptr_glProgramUniform4fvEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniform4fvEXT #-}
+ptr_glProgramUniform4fvEXT :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
+ptr_glProgramUniform4fvEXT = unsafePerformIO $ getCommand "glProgramUniform4fvEXT"
+
+-- glProgramUniform4i ----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
+glProgramUniform4i
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLint -- ^ @v0@.
+  -> GLint -- ^ @v1@.
+  -> GLint -- ^ @v2@.
+  -> GLint -- ^ @v3@.
+  -> m ()
+glProgramUniform4i v1 v2 v3 v4 v5 v6 = liftIO $ dyn698 ptr_glProgramUniform4i v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glProgramUniform4i #-}
+ptr_glProgramUniform4i :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> IO ())
+ptr_glProgramUniform4i = unsafePerformIO $ getCommand "glProgramUniform4i"
+
+-- glProgramUniform4i64ARB -----------------------------------------------------
+
+glProgramUniform4i64ARB
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLint64 -- ^ @x@.
+  -> GLint64 -- ^ @y@.
+  -> GLint64 -- ^ @z@.
+  -> GLint64 -- ^ @w@.
+  -> m ()
+glProgramUniform4i64ARB v1 v2 v3 v4 v5 v6 = liftIO $ dyn699 ptr_glProgramUniform4i64ARB v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glProgramUniform4i64ARB #-}
+ptr_glProgramUniform4i64ARB :: FunPtr (GLuint -> GLint -> GLint64 -> GLint64 -> GLint64 -> GLint64 -> IO ())
+ptr_glProgramUniform4i64ARB = unsafePerformIO $ getCommand "glProgramUniform4i64ARB"
+
+-- glProgramUniform4i64NV ------------------------------------------------------
+
+glProgramUniform4i64NV
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLint64EXT -- ^ @x@.
+  -> GLint64EXT -- ^ @y@.
+  -> GLint64EXT -- ^ @z@.
+  -> GLint64EXT -- ^ @w@.
+  -> m ()
+glProgramUniform4i64NV v1 v2 v3 v4 v5 v6 = liftIO $ dyn700 ptr_glProgramUniform4i64NV v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glProgramUniform4i64NV #-}
+ptr_glProgramUniform4i64NV :: FunPtr (GLuint -> GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ())
+ptr_glProgramUniform4i64NV = unsafePerformIO $ getCommand "glProgramUniform4i64NV"
+
+-- glProgramUniform4i64vARB ----------------------------------------------------
+
+glProgramUniform4i64vARB
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLint64 -- ^ @value@ pointing to @count*4@ elements of type @GLint64@.
+  -> m ()
+glProgramUniform4i64vARB v1 v2 v3 v4 = liftIO $ dyn480 ptr_glProgramUniform4i64vARB v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniform4i64vARB #-}
+ptr_glProgramUniform4i64vARB :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64 -> IO ())
+ptr_glProgramUniform4i64vARB = unsafePerformIO $ getCommand "glProgramUniform4i64vARB"
+
+-- glProgramUniform4i64vNV -----------------------------------------------------
+
+glProgramUniform4i64vNV
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLint64EXT -- ^ @value@ pointing to @count*4@ elements of type @GLint64EXT@.
+  -> m ()
+glProgramUniform4i64vNV v1 v2 v3 v4 = liftIO $ dyn675 ptr_glProgramUniform4i64vNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniform4i64vNV #-}
+ptr_glProgramUniform4i64vNV :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
+ptr_glProgramUniform4i64vNV = unsafePerformIO $ getCommand "glProgramUniform4i64vNV"
+
+-- glProgramUniform4iEXT -------------------------------------------------------
+
+-- | This command is an alias for 'glProgramUniform4i'.
+glProgramUniform4iEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLint -- ^ @v0@.
+  -> GLint -- ^ @v1@.
+  -> GLint -- ^ @v2@.
+  -> GLint -- ^ @v3@.
+  -> m ()
+glProgramUniform4iEXT v1 v2 v3 v4 v5 v6 = liftIO $ dyn698 ptr_glProgramUniform4iEXT v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glProgramUniform4iEXT #-}
+ptr_glProgramUniform4iEXT :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> IO ())
+ptr_glProgramUniform4iEXT = unsafePerformIO $ getCommand "glProgramUniform4iEXT"
+
diff --git a/src/Graphics/GL/Functions/F22.hs b/src/Graphics/GL/Functions/F22.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Functions/F22.hs
@@ -0,0 +1,1634 @@
+{-# OPTIONS_HADDOCK hide #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Functions.F22
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- Raw functions from the
+-- <http://www.opengl.org/registry/ OpenGL registry>.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Functions.F22 (
+  glProgramUniform4iv,
+  glProgramUniform4ivEXT,
+  glProgramUniform4ui,
+  glProgramUniform4ui64ARB,
+  glProgramUniform4ui64NV,
+  glProgramUniform4ui64vARB,
+  glProgramUniform4ui64vNV,
+  glProgramUniform4uiEXT,
+  glProgramUniform4uiv,
+  glProgramUniform4uivEXT,
+  glProgramUniformHandleui64ARB,
+  glProgramUniformHandleui64IMG,
+  glProgramUniformHandleui64NV,
+  glProgramUniformHandleui64vARB,
+  glProgramUniformHandleui64vIMG,
+  glProgramUniformHandleui64vNV,
+  glProgramUniformMatrix2dv,
+  glProgramUniformMatrix2dvEXT,
+  glProgramUniformMatrix2fv,
+  glProgramUniformMatrix2fvEXT,
+  glProgramUniformMatrix2x3dv,
+  glProgramUniformMatrix2x3dvEXT,
+  glProgramUniformMatrix2x3fv,
+  glProgramUniformMatrix2x3fvEXT,
+  glProgramUniformMatrix2x4dv,
+  glProgramUniformMatrix2x4dvEXT,
+  glProgramUniformMatrix2x4fv,
+  glProgramUniformMatrix2x4fvEXT,
+  glProgramUniformMatrix3dv,
+  glProgramUniformMatrix3dvEXT,
+  glProgramUniformMatrix3fv,
+  glProgramUniformMatrix3fvEXT,
+  glProgramUniformMatrix3x2dv,
+  glProgramUniformMatrix3x2dvEXT,
+  glProgramUniformMatrix3x2fv,
+  glProgramUniformMatrix3x2fvEXT,
+  glProgramUniformMatrix3x4dv,
+  glProgramUniformMatrix3x4dvEXT,
+  glProgramUniformMatrix3x4fv,
+  glProgramUniformMatrix3x4fvEXT,
+  glProgramUniformMatrix4dv,
+  glProgramUniformMatrix4dvEXT,
+  glProgramUniformMatrix4fv,
+  glProgramUniformMatrix4fvEXT,
+  glProgramUniformMatrix4x2dv,
+  glProgramUniformMatrix4x2dvEXT,
+  glProgramUniformMatrix4x2fv,
+  glProgramUniformMatrix4x2fvEXT,
+  glProgramUniformMatrix4x3dv,
+  glProgramUniformMatrix4x3dvEXT,
+  glProgramUniformMatrix4x3fv,
+  glProgramUniformMatrix4x3fvEXT,
+  glProgramUniformui64NV,
+  glProgramUniformui64vNV,
+  glProgramVertexLimitNV,
+  glProvokingVertex,
+  glProvokingVertexEXT,
+  glPushAttrib,
+  glPushClientAttrib,
+  glPushClientAttribDefaultEXT,
+  glPushDebugGroup,
+  glPushDebugGroupKHR,
+  glPushGroupMarkerEXT,
+  glPushMatrix,
+  glPushName,
+  glQueryCounter,
+  glQueryCounterEXT,
+  glQueryMatrixxOES,
+  glQueryObjectParameteruiAMD,
+  glQueryResourceNV,
+  glQueryResourceTagNV,
+  glRasterPos2d,
+  glRasterPos2dv,
+  glRasterPos2f,
+  glRasterPos2fv,
+  glRasterPos2i,
+  glRasterPos2iv,
+  glRasterPos2s,
+  glRasterPos2sv,
+  glRasterPos2xOES,
+  glRasterPos2xvOES,
+  glRasterPos3d,
+  glRasterPos3dv,
+  glRasterPos3f,
+  glRasterPos3fv,
+  glRasterPos3i,
+  glRasterPos3iv,
+  glRasterPos3s,
+  glRasterPos3sv,
+  glRasterPos3xOES,
+  glRasterPos3xvOES,
+  glRasterPos4d,
+  glRasterPos4dv,
+  glRasterPos4f,
+  glRasterPos4fv,
+  glRasterPos4i,
+  glRasterPos4iv,
+  glRasterPos4s,
+  glRasterPos4sv,
+  glRasterPos4xOES
+) where
+
+import Control.Monad.IO.Class ( MonadIO(..) )
+import Foreign.Ptr
+import Graphics.GL.Foreign
+import Graphics.GL.Types
+import System.IO.Unsafe ( unsafePerformIO )
+
+-- glProgramUniform4iv ---------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
+glProgramUniform4iv
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLint -- ^ @value@ pointing to @count*4@ elements of type @GLint@.
+  -> m ()
+glProgramUniform4iv v1 v2 v3 v4 = liftIO $ dyn481 ptr_glProgramUniform4iv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniform4iv #-}
+ptr_glProgramUniform4iv :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
+ptr_glProgramUniform4iv = unsafePerformIO $ getCommand "glProgramUniform4iv"
+
+-- glProgramUniform4ivEXT ------------------------------------------------------
+
+-- | This command is an alias for 'glProgramUniform4iv'.
+glProgramUniform4ivEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLint -- ^ @value@ pointing to @count*4@ elements of type @GLint@.
+  -> m ()
+glProgramUniform4ivEXT v1 v2 v3 v4 = liftIO $ dyn481 ptr_glProgramUniform4ivEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniform4ivEXT #-}
+ptr_glProgramUniform4ivEXT :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
+ptr_glProgramUniform4ivEXT = unsafePerformIO $ getCommand "glProgramUniform4ivEXT"
+
+-- glProgramUniform4ui ---------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
+glProgramUniform4ui
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLuint -- ^ @v0@.
+  -> GLuint -- ^ @v1@.
+  -> GLuint -- ^ @v2@.
+  -> GLuint -- ^ @v3@.
+  -> m ()
+glProgramUniform4ui v1 v2 v3 v4 v5 v6 = liftIO $ dyn701 ptr_glProgramUniform4ui v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glProgramUniform4ui #-}
+ptr_glProgramUniform4ui :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+ptr_glProgramUniform4ui = unsafePerformIO $ getCommand "glProgramUniform4ui"
+
+-- glProgramUniform4ui64ARB ----------------------------------------------------
+
+glProgramUniform4ui64ARB
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLuint64 -- ^ @x@.
+  -> GLuint64 -- ^ @y@.
+  -> GLuint64 -- ^ @z@.
+  -> GLuint64 -- ^ @w@.
+  -> m ()
+glProgramUniform4ui64ARB v1 v2 v3 v4 v5 v6 = liftIO $ dyn702 ptr_glProgramUniform4ui64ARB v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glProgramUniform4ui64ARB #-}
+ptr_glProgramUniform4ui64ARB :: FunPtr (GLuint -> GLint -> GLuint64 -> GLuint64 -> GLuint64 -> GLuint64 -> IO ())
+ptr_glProgramUniform4ui64ARB = unsafePerformIO $ getCommand "glProgramUniform4ui64ARB"
+
+-- glProgramUniform4ui64NV -----------------------------------------------------
+
+glProgramUniform4ui64NV
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLuint64EXT -- ^ @x@.
+  -> GLuint64EXT -- ^ @y@.
+  -> GLuint64EXT -- ^ @z@.
+  -> GLuint64EXT -- ^ @w@.
+  -> m ()
+glProgramUniform4ui64NV v1 v2 v3 v4 v5 v6 = liftIO $ dyn703 ptr_glProgramUniform4ui64NV v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glProgramUniform4ui64NV #-}
+ptr_glProgramUniform4ui64NV :: FunPtr (GLuint -> GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ())
+ptr_glProgramUniform4ui64NV = unsafePerformIO $ getCommand "glProgramUniform4ui64NV"
+
+-- glProgramUniform4ui64vARB ---------------------------------------------------
+
+glProgramUniform4ui64vARB
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLuint64 -- ^ @value@ pointing to @count*4@ elements of type @GLuint64@.
+  -> m ()
+glProgramUniform4ui64vARB v1 v2 v3 v4 = liftIO $ dyn482 ptr_glProgramUniform4ui64vARB v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniform4ui64vARB #-}
+ptr_glProgramUniform4ui64vARB :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> IO ())
+ptr_glProgramUniform4ui64vARB = unsafePerformIO $ getCommand "glProgramUniform4ui64vARB"
+
+-- glProgramUniform4ui64vNV ----------------------------------------------------
+
+glProgramUniform4ui64vNV
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLuint64EXT -- ^ @value@ pointing to @count*4@ elements of type @GLuint64EXT@.
+  -> m ()
+glProgramUniform4ui64vNV v1 v2 v3 v4 = liftIO $ dyn679 ptr_glProgramUniform4ui64vNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniform4ui64vNV #-}
+ptr_glProgramUniform4ui64vNV :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
+ptr_glProgramUniform4ui64vNV = unsafePerformIO $ getCommand "glProgramUniform4ui64vNV"
+
+-- glProgramUniform4uiEXT ------------------------------------------------------
+
+-- | This command is an alias for 'glProgramUniform4ui'.
+glProgramUniform4uiEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLuint -- ^ @v0@.
+  -> GLuint -- ^ @v1@.
+  -> GLuint -- ^ @v2@.
+  -> GLuint -- ^ @v3@.
+  -> m ()
+glProgramUniform4uiEXT v1 v2 v3 v4 v5 v6 = liftIO $ dyn701 ptr_glProgramUniform4uiEXT v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glProgramUniform4uiEXT #-}
+ptr_glProgramUniform4uiEXT :: FunPtr (GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+ptr_glProgramUniform4uiEXT = unsafePerformIO $ getCommand "glProgramUniform4uiEXT"
+
+-- glProgramUniform4uiv --------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
+glProgramUniform4uiv
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLuint -- ^ @value@ pointing to @count*4@ elements of type @GLuint@.
+  -> m ()
+glProgramUniform4uiv v1 v2 v3 v4 = liftIO $ dyn483 ptr_glProgramUniform4uiv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniform4uiv #-}
+ptr_glProgramUniform4uiv :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
+ptr_glProgramUniform4uiv = unsafePerformIO $ getCommand "glProgramUniform4uiv"
+
+-- glProgramUniform4uivEXT -----------------------------------------------------
+
+-- | This command is an alias for 'glProgramUniform4uiv'.
+glProgramUniform4uivEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLuint -- ^ @value@ pointing to @count*4@ elements of type @GLuint@.
+  -> m ()
+glProgramUniform4uivEXT v1 v2 v3 v4 = liftIO $ dyn483 ptr_glProgramUniform4uivEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniform4uivEXT #-}
+ptr_glProgramUniform4uivEXT :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
+ptr_glProgramUniform4uivEXT = unsafePerformIO $ getCommand "glProgramUniform4uivEXT"
+
+-- glProgramUniformHandleui64ARB -----------------------------------------------
+
+glProgramUniformHandleui64ARB
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLuint64 -- ^ @value@.
+  -> m ()
+glProgramUniformHandleui64ARB v1 v2 v3 = liftIO $ dyn677 ptr_glProgramUniformHandleui64ARB v1 v2 v3
+
+{-# NOINLINE ptr_glProgramUniformHandleui64ARB #-}
+ptr_glProgramUniformHandleui64ARB :: FunPtr (GLuint -> GLint -> GLuint64 -> IO ())
+ptr_glProgramUniformHandleui64ARB = unsafePerformIO $ getCommand "glProgramUniformHandleui64ARB"
+
+-- glProgramUniformHandleui64IMG -----------------------------------------------
+
+-- | This command is an alias for 'glProgramUniformHandleui64ARB'.
+glProgramUniformHandleui64IMG
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLuint64 -- ^ @value@.
+  -> m ()
+glProgramUniformHandleui64IMG v1 v2 v3 = liftIO $ dyn677 ptr_glProgramUniformHandleui64IMG v1 v2 v3
+
+{-# NOINLINE ptr_glProgramUniformHandleui64IMG #-}
+ptr_glProgramUniformHandleui64IMG :: FunPtr (GLuint -> GLint -> GLuint64 -> IO ())
+ptr_glProgramUniformHandleui64IMG = unsafePerformIO $ getCommand "glProgramUniformHandleui64IMG"
+
+-- glProgramUniformHandleui64NV ------------------------------------------------
+
+glProgramUniformHandleui64NV
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLuint64 -- ^ @value@.
+  -> m ()
+glProgramUniformHandleui64NV v1 v2 v3 = liftIO $ dyn677 ptr_glProgramUniformHandleui64NV v1 v2 v3
+
+{-# NOINLINE ptr_glProgramUniformHandleui64NV #-}
+ptr_glProgramUniformHandleui64NV :: FunPtr (GLuint -> GLint -> GLuint64 -> IO ())
+ptr_glProgramUniformHandleui64NV = unsafePerformIO $ getCommand "glProgramUniformHandleui64NV"
+
+-- glProgramUniformHandleui64vARB ----------------------------------------------
+
+glProgramUniformHandleui64vARB
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLuint64 -- ^ @values@ pointing to @count@ elements of type @GLuint64@.
+  -> m ()
+glProgramUniformHandleui64vARB v1 v2 v3 v4 = liftIO $ dyn482 ptr_glProgramUniformHandleui64vARB v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniformHandleui64vARB #-}
+ptr_glProgramUniformHandleui64vARB :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> IO ())
+ptr_glProgramUniformHandleui64vARB = unsafePerformIO $ getCommand "glProgramUniformHandleui64vARB"
+
+-- glProgramUniformHandleui64vIMG ----------------------------------------------
+
+-- | This command is an alias for 'glProgramUniformHandleui64vARB'.
+glProgramUniformHandleui64vIMG
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLuint64 -- ^ @values@ pointing to @count@ elements of type @GLuint64@.
+  -> m ()
+glProgramUniformHandleui64vIMG v1 v2 v3 v4 = liftIO $ dyn482 ptr_glProgramUniformHandleui64vIMG v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniformHandleui64vIMG #-}
+ptr_glProgramUniformHandleui64vIMG :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> IO ())
+ptr_glProgramUniformHandleui64vIMG = unsafePerformIO $ getCommand "glProgramUniformHandleui64vIMG"
+
+-- glProgramUniformHandleui64vNV -----------------------------------------------
+
+glProgramUniformHandleui64vNV
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLuint64 -- ^ @values@ pointing to @count@ elements of type @GLuint64@.
+  -> m ()
+glProgramUniformHandleui64vNV v1 v2 v3 v4 = liftIO $ dyn482 ptr_glProgramUniformHandleui64vNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniformHandleui64vNV #-}
+ptr_glProgramUniformHandleui64vNV :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64 -> IO ())
+ptr_glProgramUniformHandleui64vNV = unsafePerformIO $ getCommand "glProgramUniformHandleui64vNV"
+
+-- glProgramUniformMatrix2dv ---------------------------------------------------
+
+glProgramUniformMatrix2dv
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLdouble -- ^ @value@ pointing to @count*4@ elements of type @GLdouble@.
+  -> m ()
+glProgramUniformMatrix2dv v1 v2 v3 v4 v5 = liftIO $ dyn704 ptr_glProgramUniformMatrix2dv v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glProgramUniformMatrix2dv #-}
+ptr_glProgramUniformMatrix2dv :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+ptr_glProgramUniformMatrix2dv = unsafePerformIO $ getCommand "glProgramUniformMatrix2dv"
+
+-- glProgramUniformMatrix2dvEXT ------------------------------------------------
+
+glProgramUniformMatrix2dvEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLdouble -- ^ @value@ pointing to @count*4@ elements of type @GLdouble@.
+  -> m ()
+glProgramUniformMatrix2dvEXT v1 v2 v3 v4 v5 = liftIO $ dyn704 ptr_glProgramUniformMatrix2dvEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glProgramUniformMatrix2dvEXT #-}
+ptr_glProgramUniformMatrix2dvEXT :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+ptr_glProgramUniformMatrix2dvEXT = unsafePerformIO $ getCommand "glProgramUniformMatrix2dvEXT"
+
+-- glProgramUniformMatrix2fv ---------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
+glProgramUniformMatrix2fv
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLfloat -- ^ @value@ pointing to @count*4@ elements of type @GLfloat@.
+  -> m ()
+glProgramUniformMatrix2fv v1 v2 v3 v4 v5 = liftIO $ dyn705 ptr_glProgramUniformMatrix2fv v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glProgramUniformMatrix2fv #-}
+ptr_glProgramUniformMatrix2fv :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+ptr_glProgramUniformMatrix2fv = unsafePerformIO $ getCommand "glProgramUniformMatrix2fv"
+
+-- glProgramUniformMatrix2fvEXT ------------------------------------------------
+
+-- | This command is an alias for 'glProgramUniformMatrix2fv'.
+glProgramUniformMatrix2fvEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLfloat -- ^ @value@ pointing to @count*4@ elements of type @GLfloat@.
+  -> m ()
+glProgramUniformMatrix2fvEXT v1 v2 v3 v4 v5 = liftIO $ dyn705 ptr_glProgramUniformMatrix2fvEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glProgramUniformMatrix2fvEXT #-}
+ptr_glProgramUniformMatrix2fvEXT :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+ptr_glProgramUniformMatrix2fvEXT = unsafePerformIO $ getCommand "glProgramUniformMatrix2fvEXT"
+
+-- glProgramUniformMatrix2x3dv -------------------------------------------------
+
+glProgramUniformMatrix2x3dv
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLdouble -- ^ @value@ pointing to @count*6@ elements of type @GLdouble@.
+  -> m ()
+glProgramUniformMatrix2x3dv v1 v2 v3 v4 v5 = liftIO $ dyn704 ptr_glProgramUniformMatrix2x3dv v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glProgramUniformMatrix2x3dv #-}
+ptr_glProgramUniformMatrix2x3dv :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+ptr_glProgramUniformMatrix2x3dv = unsafePerformIO $ getCommand "glProgramUniformMatrix2x3dv"
+
+-- glProgramUniformMatrix2x3dvEXT ----------------------------------------------
+
+glProgramUniformMatrix2x3dvEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLdouble -- ^ @value@ pointing to @count*6@ elements of type @GLdouble@.
+  -> m ()
+glProgramUniformMatrix2x3dvEXT v1 v2 v3 v4 v5 = liftIO $ dyn704 ptr_glProgramUniformMatrix2x3dvEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glProgramUniformMatrix2x3dvEXT #-}
+ptr_glProgramUniformMatrix2x3dvEXT :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+ptr_glProgramUniformMatrix2x3dvEXT = unsafePerformIO $ getCommand "glProgramUniformMatrix2x3dvEXT"
+
+-- glProgramUniformMatrix2x3fv -------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
+glProgramUniformMatrix2x3fv
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLfloat -- ^ @value@ pointing to @count*6@ elements of type @GLfloat@.
+  -> m ()
+glProgramUniformMatrix2x3fv v1 v2 v3 v4 v5 = liftIO $ dyn705 ptr_glProgramUniformMatrix2x3fv v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glProgramUniformMatrix2x3fv #-}
+ptr_glProgramUniformMatrix2x3fv :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+ptr_glProgramUniformMatrix2x3fv = unsafePerformIO $ getCommand "glProgramUniformMatrix2x3fv"
+
+-- glProgramUniformMatrix2x3fvEXT ----------------------------------------------
+
+-- | This command is an alias for 'glProgramUniformMatrix2x3fv'.
+glProgramUniformMatrix2x3fvEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLfloat -- ^ @value@ pointing to @count*6@ elements of type @GLfloat@.
+  -> m ()
+glProgramUniformMatrix2x3fvEXT v1 v2 v3 v4 v5 = liftIO $ dyn705 ptr_glProgramUniformMatrix2x3fvEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glProgramUniformMatrix2x3fvEXT #-}
+ptr_glProgramUniformMatrix2x3fvEXT :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+ptr_glProgramUniformMatrix2x3fvEXT = unsafePerformIO $ getCommand "glProgramUniformMatrix2x3fvEXT"
+
+-- glProgramUniformMatrix2x4dv -------------------------------------------------
+
+glProgramUniformMatrix2x4dv
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLdouble -- ^ @value@ pointing to @count*8@ elements of type @GLdouble@.
+  -> m ()
+glProgramUniformMatrix2x4dv v1 v2 v3 v4 v5 = liftIO $ dyn704 ptr_glProgramUniformMatrix2x4dv v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glProgramUniformMatrix2x4dv #-}
+ptr_glProgramUniformMatrix2x4dv :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+ptr_glProgramUniformMatrix2x4dv = unsafePerformIO $ getCommand "glProgramUniformMatrix2x4dv"
+
+-- glProgramUniformMatrix2x4dvEXT ----------------------------------------------
+
+glProgramUniformMatrix2x4dvEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLdouble -- ^ @value@ pointing to @count*8@ elements of type @GLdouble@.
+  -> m ()
+glProgramUniformMatrix2x4dvEXT v1 v2 v3 v4 v5 = liftIO $ dyn704 ptr_glProgramUniformMatrix2x4dvEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glProgramUniformMatrix2x4dvEXT #-}
+ptr_glProgramUniformMatrix2x4dvEXT :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+ptr_glProgramUniformMatrix2x4dvEXT = unsafePerformIO $ getCommand "glProgramUniformMatrix2x4dvEXT"
+
+-- glProgramUniformMatrix2x4fv -------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
+glProgramUniformMatrix2x4fv
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLfloat -- ^ @value@ pointing to @count*8@ elements of type @GLfloat@.
+  -> m ()
+glProgramUniformMatrix2x4fv v1 v2 v3 v4 v5 = liftIO $ dyn705 ptr_glProgramUniformMatrix2x4fv v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glProgramUniformMatrix2x4fv #-}
+ptr_glProgramUniformMatrix2x4fv :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+ptr_glProgramUniformMatrix2x4fv = unsafePerformIO $ getCommand "glProgramUniformMatrix2x4fv"
+
+-- glProgramUniformMatrix2x4fvEXT ----------------------------------------------
+
+-- | This command is an alias for 'glProgramUniformMatrix2x4fv'.
+glProgramUniformMatrix2x4fvEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLfloat -- ^ @value@ pointing to @count*8@ elements of type @GLfloat@.
+  -> m ()
+glProgramUniformMatrix2x4fvEXT v1 v2 v3 v4 v5 = liftIO $ dyn705 ptr_glProgramUniformMatrix2x4fvEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glProgramUniformMatrix2x4fvEXT #-}
+ptr_glProgramUniformMatrix2x4fvEXT :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+ptr_glProgramUniformMatrix2x4fvEXT = unsafePerformIO $ getCommand "glProgramUniformMatrix2x4fvEXT"
+
+-- glProgramUniformMatrix3dv ---------------------------------------------------
+
+glProgramUniformMatrix3dv
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLdouble -- ^ @value@ pointing to @count*9@ elements of type @GLdouble@.
+  -> m ()
+glProgramUniformMatrix3dv v1 v2 v3 v4 v5 = liftIO $ dyn704 ptr_glProgramUniformMatrix3dv v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glProgramUniformMatrix3dv #-}
+ptr_glProgramUniformMatrix3dv :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+ptr_glProgramUniformMatrix3dv = unsafePerformIO $ getCommand "glProgramUniformMatrix3dv"
+
+-- glProgramUniformMatrix3dvEXT ------------------------------------------------
+
+glProgramUniformMatrix3dvEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLdouble -- ^ @value@ pointing to @count*9@ elements of type @GLdouble@.
+  -> m ()
+glProgramUniformMatrix3dvEXT v1 v2 v3 v4 v5 = liftIO $ dyn704 ptr_glProgramUniformMatrix3dvEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glProgramUniformMatrix3dvEXT #-}
+ptr_glProgramUniformMatrix3dvEXT :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+ptr_glProgramUniformMatrix3dvEXT = unsafePerformIO $ getCommand "glProgramUniformMatrix3dvEXT"
+
+-- glProgramUniformMatrix3fv ---------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
+glProgramUniformMatrix3fv
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLfloat -- ^ @value@ pointing to @count*9@ elements of type @GLfloat@.
+  -> m ()
+glProgramUniformMatrix3fv v1 v2 v3 v4 v5 = liftIO $ dyn705 ptr_glProgramUniformMatrix3fv v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glProgramUniformMatrix3fv #-}
+ptr_glProgramUniformMatrix3fv :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+ptr_glProgramUniformMatrix3fv = unsafePerformIO $ getCommand "glProgramUniformMatrix3fv"
+
+-- glProgramUniformMatrix3fvEXT ------------------------------------------------
+
+-- | This command is an alias for 'glProgramUniformMatrix3fv'.
+glProgramUniformMatrix3fvEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLfloat -- ^ @value@ pointing to @count*9@ elements of type @GLfloat@.
+  -> m ()
+glProgramUniformMatrix3fvEXT v1 v2 v3 v4 v5 = liftIO $ dyn705 ptr_glProgramUniformMatrix3fvEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glProgramUniformMatrix3fvEXT #-}
+ptr_glProgramUniformMatrix3fvEXT :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+ptr_glProgramUniformMatrix3fvEXT = unsafePerformIO $ getCommand "glProgramUniformMatrix3fvEXT"
+
+-- glProgramUniformMatrix3x2dv -------------------------------------------------
+
+glProgramUniformMatrix3x2dv
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLdouble -- ^ @value@ pointing to @count*6@ elements of type @GLdouble@.
+  -> m ()
+glProgramUniformMatrix3x2dv v1 v2 v3 v4 v5 = liftIO $ dyn704 ptr_glProgramUniformMatrix3x2dv v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glProgramUniformMatrix3x2dv #-}
+ptr_glProgramUniformMatrix3x2dv :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+ptr_glProgramUniformMatrix3x2dv = unsafePerformIO $ getCommand "glProgramUniformMatrix3x2dv"
+
+-- glProgramUniformMatrix3x2dvEXT ----------------------------------------------
+
+glProgramUniformMatrix3x2dvEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLdouble -- ^ @value@ pointing to @count*6@ elements of type @GLdouble@.
+  -> m ()
+glProgramUniformMatrix3x2dvEXT v1 v2 v3 v4 v5 = liftIO $ dyn704 ptr_glProgramUniformMatrix3x2dvEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glProgramUniformMatrix3x2dvEXT #-}
+ptr_glProgramUniformMatrix3x2dvEXT :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+ptr_glProgramUniformMatrix3x2dvEXT = unsafePerformIO $ getCommand "glProgramUniformMatrix3x2dvEXT"
+
+-- glProgramUniformMatrix3x2fv -------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
+glProgramUniformMatrix3x2fv
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLfloat -- ^ @value@ pointing to @count*6@ elements of type @GLfloat@.
+  -> m ()
+glProgramUniformMatrix3x2fv v1 v2 v3 v4 v5 = liftIO $ dyn705 ptr_glProgramUniformMatrix3x2fv v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glProgramUniformMatrix3x2fv #-}
+ptr_glProgramUniformMatrix3x2fv :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+ptr_glProgramUniformMatrix3x2fv = unsafePerformIO $ getCommand "glProgramUniformMatrix3x2fv"
+
+-- glProgramUniformMatrix3x2fvEXT ----------------------------------------------
+
+-- | This command is an alias for 'glProgramUniformMatrix3x2fv'.
+glProgramUniformMatrix3x2fvEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLfloat -- ^ @value@ pointing to @count*6@ elements of type @GLfloat@.
+  -> m ()
+glProgramUniformMatrix3x2fvEXT v1 v2 v3 v4 v5 = liftIO $ dyn705 ptr_glProgramUniformMatrix3x2fvEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glProgramUniformMatrix3x2fvEXT #-}
+ptr_glProgramUniformMatrix3x2fvEXT :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+ptr_glProgramUniformMatrix3x2fvEXT = unsafePerformIO $ getCommand "glProgramUniformMatrix3x2fvEXT"
+
+-- glProgramUniformMatrix3x4dv -------------------------------------------------
+
+glProgramUniformMatrix3x4dv
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLdouble -- ^ @value@ pointing to @count*12@ elements of type @GLdouble@.
+  -> m ()
+glProgramUniformMatrix3x4dv v1 v2 v3 v4 v5 = liftIO $ dyn704 ptr_glProgramUniformMatrix3x4dv v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glProgramUniformMatrix3x4dv #-}
+ptr_glProgramUniformMatrix3x4dv :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+ptr_glProgramUniformMatrix3x4dv = unsafePerformIO $ getCommand "glProgramUniformMatrix3x4dv"
+
+-- glProgramUniformMatrix3x4dvEXT ----------------------------------------------
+
+glProgramUniformMatrix3x4dvEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLdouble -- ^ @value@ pointing to @count*12@ elements of type @GLdouble@.
+  -> m ()
+glProgramUniformMatrix3x4dvEXT v1 v2 v3 v4 v5 = liftIO $ dyn704 ptr_glProgramUniformMatrix3x4dvEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glProgramUniformMatrix3x4dvEXT #-}
+ptr_glProgramUniformMatrix3x4dvEXT :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+ptr_glProgramUniformMatrix3x4dvEXT = unsafePerformIO $ getCommand "glProgramUniformMatrix3x4dvEXT"
+
+-- glProgramUniformMatrix3x4fv -------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
+glProgramUniformMatrix3x4fv
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLfloat -- ^ @value@ pointing to @count*12@ elements of type @GLfloat@.
+  -> m ()
+glProgramUniformMatrix3x4fv v1 v2 v3 v4 v5 = liftIO $ dyn705 ptr_glProgramUniformMatrix3x4fv v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glProgramUniformMatrix3x4fv #-}
+ptr_glProgramUniformMatrix3x4fv :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+ptr_glProgramUniformMatrix3x4fv = unsafePerformIO $ getCommand "glProgramUniformMatrix3x4fv"
+
+-- glProgramUniformMatrix3x4fvEXT ----------------------------------------------
+
+-- | This command is an alias for 'glProgramUniformMatrix3x4fv'.
+glProgramUniformMatrix3x4fvEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLfloat -- ^ @value@ pointing to @count*12@ elements of type @GLfloat@.
+  -> m ()
+glProgramUniformMatrix3x4fvEXT v1 v2 v3 v4 v5 = liftIO $ dyn705 ptr_glProgramUniformMatrix3x4fvEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glProgramUniformMatrix3x4fvEXT #-}
+ptr_glProgramUniformMatrix3x4fvEXT :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+ptr_glProgramUniformMatrix3x4fvEXT = unsafePerformIO $ getCommand "glProgramUniformMatrix3x4fvEXT"
+
+-- glProgramUniformMatrix4dv ---------------------------------------------------
+
+glProgramUniformMatrix4dv
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLdouble -- ^ @value@ pointing to @count*16@ elements of type @GLdouble@.
+  -> m ()
+glProgramUniformMatrix4dv v1 v2 v3 v4 v5 = liftIO $ dyn704 ptr_glProgramUniformMatrix4dv v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glProgramUniformMatrix4dv #-}
+ptr_glProgramUniformMatrix4dv :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+ptr_glProgramUniformMatrix4dv = unsafePerformIO $ getCommand "glProgramUniformMatrix4dv"
+
+-- glProgramUniformMatrix4dvEXT ------------------------------------------------
+
+glProgramUniformMatrix4dvEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLdouble -- ^ @value@ pointing to @count*16@ elements of type @GLdouble@.
+  -> m ()
+glProgramUniformMatrix4dvEXT v1 v2 v3 v4 v5 = liftIO $ dyn704 ptr_glProgramUniformMatrix4dvEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glProgramUniformMatrix4dvEXT #-}
+ptr_glProgramUniformMatrix4dvEXT :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+ptr_glProgramUniformMatrix4dvEXT = unsafePerformIO $ getCommand "glProgramUniformMatrix4dvEXT"
+
+-- glProgramUniformMatrix4fv ---------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
+glProgramUniformMatrix4fv
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLfloat -- ^ @value@ pointing to @count*16@ elements of type @GLfloat@.
+  -> m ()
+glProgramUniformMatrix4fv v1 v2 v3 v4 v5 = liftIO $ dyn705 ptr_glProgramUniformMatrix4fv v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glProgramUniformMatrix4fv #-}
+ptr_glProgramUniformMatrix4fv :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+ptr_glProgramUniformMatrix4fv = unsafePerformIO $ getCommand "glProgramUniformMatrix4fv"
+
+-- glProgramUniformMatrix4fvEXT ------------------------------------------------
+
+-- | This command is an alias for 'glProgramUniformMatrix4fv'.
+glProgramUniformMatrix4fvEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLfloat -- ^ @value@ pointing to @count*16@ elements of type @GLfloat@.
+  -> m ()
+glProgramUniformMatrix4fvEXT v1 v2 v3 v4 v5 = liftIO $ dyn705 ptr_glProgramUniformMatrix4fvEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glProgramUniformMatrix4fvEXT #-}
+ptr_glProgramUniformMatrix4fvEXT :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+ptr_glProgramUniformMatrix4fvEXT = unsafePerformIO $ getCommand "glProgramUniformMatrix4fvEXT"
+
+-- glProgramUniformMatrix4x2dv -------------------------------------------------
+
+glProgramUniformMatrix4x2dv
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLdouble -- ^ @value@ pointing to @count*8@ elements of type @GLdouble@.
+  -> m ()
+glProgramUniformMatrix4x2dv v1 v2 v3 v4 v5 = liftIO $ dyn704 ptr_glProgramUniformMatrix4x2dv v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glProgramUniformMatrix4x2dv #-}
+ptr_glProgramUniformMatrix4x2dv :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+ptr_glProgramUniformMatrix4x2dv = unsafePerformIO $ getCommand "glProgramUniformMatrix4x2dv"
+
+-- glProgramUniformMatrix4x2dvEXT ----------------------------------------------
+
+glProgramUniformMatrix4x2dvEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLdouble -- ^ @value@ pointing to @count*8@ elements of type @GLdouble@.
+  -> m ()
+glProgramUniformMatrix4x2dvEXT v1 v2 v3 v4 v5 = liftIO $ dyn704 ptr_glProgramUniformMatrix4x2dvEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glProgramUniformMatrix4x2dvEXT #-}
+ptr_glProgramUniformMatrix4x2dvEXT :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+ptr_glProgramUniformMatrix4x2dvEXT = unsafePerformIO $ getCommand "glProgramUniformMatrix4x2dvEXT"
+
+-- glProgramUniformMatrix4x2fv -------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
+glProgramUniformMatrix4x2fv
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLfloat -- ^ @value@ pointing to @count*8@ elements of type @GLfloat@.
+  -> m ()
+glProgramUniformMatrix4x2fv v1 v2 v3 v4 v5 = liftIO $ dyn705 ptr_glProgramUniformMatrix4x2fv v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glProgramUniformMatrix4x2fv #-}
+ptr_glProgramUniformMatrix4x2fv :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+ptr_glProgramUniformMatrix4x2fv = unsafePerformIO $ getCommand "glProgramUniformMatrix4x2fv"
+
+-- glProgramUniformMatrix4x2fvEXT ----------------------------------------------
+
+-- | This command is an alias for 'glProgramUniformMatrix4x2fv'.
+glProgramUniformMatrix4x2fvEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLfloat -- ^ @value@ pointing to @count*8@ elements of type @GLfloat@.
+  -> m ()
+glProgramUniformMatrix4x2fvEXT v1 v2 v3 v4 v5 = liftIO $ dyn705 ptr_glProgramUniformMatrix4x2fvEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glProgramUniformMatrix4x2fvEXT #-}
+ptr_glProgramUniformMatrix4x2fvEXT :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+ptr_glProgramUniformMatrix4x2fvEXT = unsafePerformIO $ getCommand "glProgramUniformMatrix4x2fvEXT"
+
+-- glProgramUniformMatrix4x3dv -------------------------------------------------
+
+glProgramUniformMatrix4x3dv
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLdouble -- ^ @value@ pointing to @count*12@ elements of type @GLdouble@.
+  -> m ()
+glProgramUniformMatrix4x3dv v1 v2 v3 v4 v5 = liftIO $ dyn704 ptr_glProgramUniformMatrix4x3dv v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glProgramUniformMatrix4x3dv #-}
+ptr_glProgramUniformMatrix4x3dv :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+ptr_glProgramUniformMatrix4x3dv = unsafePerformIO $ getCommand "glProgramUniformMatrix4x3dv"
+
+-- glProgramUniformMatrix4x3dvEXT ----------------------------------------------
+
+glProgramUniformMatrix4x3dvEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLdouble -- ^ @value@ pointing to @count*12@ elements of type @GLdouble@.
+  -> m ()
+glProgramUniformMatrix4x3dvEXT v1 v2 v3 v4 v5 = liftIO $ dyn704 ptr_glProgramUniformMatrix4x3dvEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glProgramUniformMatrix4x3dvEXT #-}
+ptr_glProgramUniformMatrix4x3dvEXT :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+ptr_glProgramUniformMatrix4x3dvEXT = unsafePerformIO $ getCommand "glProgramUniformMatrix4x3dvEXT"
+
+-- glProgramUniformMatrix4x3fv -------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glProgramUniform.xhtml OpenGL 4.x>.
+glProgramUniformMatrix4x3fv
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLfloat -- ^ @value@ pointing to @count*12@ elements of type @GLfloat@.
+  -> m ()
+glProgramUniformMatrix4x3fv v1 v2 v3 v4 v5 = liftIO $ dyn705 ptr_glProgramUniformMatrix4x3fv v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glProgramUniformMatrix4x3fv #-}
+ptr_glProgramUniformMatrix4x3fv :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+ptr_glProgramUniformMatrix4x3fv = unsafePerformIO $ getCommand "glProgramUniformMatrix4x3fv"
+
+-- glProgramUniformMatrix4x3fvEXT ----------------------------------------------
+
+-- | This command is an alias for 'glProgramUniformMatrix4x3fv'.
+glProgramUniformMatrix4x3fvEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLfloat -- ^ @value@ pointing to @count*12@ elements of type @GLfloat@.
+  -> m ()
+glProgramUniformMatrix4x3fvEXT v1 v2 v3 v4 v5 = liftIO $ dyn705 ptr_glProgramUniformMatrix4x3fvEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glProgramUniformMatrix4x3fvEXT #-}
+ptr_glProgramUniformMatrix4x3fvEXT :: FunPtr (GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+ptr_glProgramUniformMatrix4x3fvEXT = unsafePerformIO $ getCommand "glProgramUniformMatrix4x3fvEXT"
+
+-- glProgramUniformui64NV ------------------------------------------------------
+
+glProgramUniformui64NV
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLuint64EXT -- ^ @value@.
+  -> m ()
+glProgramUniformui64NV v1 v2 v3 = liftIO $ dyn678 ptr_glProgramUniformui64NV v1 v2 v3
+
+{-# NOINLINE ptr_glProgramUniformui64NV #-}
+ptr_glProgramUniformui64NV :: FunPtr (GLuint -> GLint -> GLuint64EXT -> IO ())
+ptr_glProgramUniformui64NV = unsafePerformIO $ getCommand "glProgramUniformui64NV"
+
+-- glProgramUniformui64vNV -----------------------------------------------------
+
+glProgramUniformui64vNV
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLuint64EXT -- ^ @value@ pointing to @count@ elements of type @GLuint64EXT@.
+  -> m ()
+glProgramUniformui64vNV v1 v2 v3 v4 = liftIO $ dyn679 ptr_glProgramUniformui64vNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glProgramUniformui64vNV #-}
+ptr_glProgramUniformui64vNV :: FunPtr (GLuint -> GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
+ptr_glProgramUniformui64vNV = unsafePerformIO $ getCommand "glProgramUniformui64vNV"
+
+-- glProgramVertexLimitNV ------------------------------------------------------
+
+glProgramVertexLimitNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [ProgramTarget](Graphics-GL-Groups.html#ProgramTarget).
+  -> GLint -- ^ @limit@.
+  -> m ()
+glProgramVertexLimitNV v1 v2 = liftIO $ dyn58 ptr_glProgramVertexLimitNV v1 v2
+
+{-# NOINLINE ptr_glProgramVertexLimitNV #-}
+ptr_glProgramVertexLimitNV :: FunPtr (GLenum -> GLint -> IO ())
+ptr_glProgramVertexLimitNV = unsafePerformIO $ getCommand "glProgramVertexLimitNV"
+
+-- glProvokingVertex -----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glProvokingVertex.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glProvokingVertex.xhtml OpenGL 4.x>.
+glProvokingVertex
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [VertexProvokingMode](Graphics-GL-Groups.html#VertexProvokingMode).
+  -> m ()
+glProvokingVertex v1 = liftIO $ dyn5 ptr_glProvokingVertex v1
+
+{-# NOINLINE ptr_glProvokingVertex #-}
+ptr_glProvokingVertex :: FunPtr (GLenum -> IO ())
+ptr_glProvokingVertex = unsafePerformIO $ getCommand "glProvokingVertex"
+
+-- glProvokingVertexEXT --------------------------------------------------------
+
+-- | This command is an alias for 'glProvokingVertex'.
+glProvokingVertexEXT
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [VertexProvokingMode](Graphics-GL-Groups.html#VertexProvokingMode).
+  -> m ()
+glProvokingVertexEXT v1 = liftIO $ dyn5 ptr_glProvokingVertexEXT v1
+
+{-# NOINLINE ptr_glProvokingVertexEXT #-}
+ptr_glProvokingVertexEXT :: FunPtr (GLenum -> IO ())
+ptr_glProvokingVertexEXT = unsafePerformIO $ getCommand "glProvokingVertexEXT"
+
+-- glPushAttrib ----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glPushAttrib.xml OpenGL 2.x>.
+glPushAttrib
+  :: MonadIO m
+  => GLbitfield -- ^ @mask@ of type [AttribMask](Graphics-GL-Groups.html#AttribMask).
+  -> m ()
+glPushAttrib v1 = liftIO $ dyn75 ptr_glPushAttrib v1
+
+{-# NOINLINE ptr_glPushAttrib #-}
+ptr_glPushAttrib :: FunPtr (GLbitfield -> IO ())
+ptr_glPushAttrib = unsafePerformIO $ getCommand "glPushAttrib"
+
+-- glPushClientAttrib ----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glPushClientAttrib.xml OpenGL 2.x>.
+glPushClientAttrib
+  :: MonadIO m
+  => GLbitfield -- ^ @mask@ of type [ClientAttribMask](Graphics-GL-Groups.html#ClientAttribMask).
+  -> m ()
+glPushClientAttrib v1 = liftIO $ dyn75 ptr_glPushClientAttrib v1
+
+{-# NOINLINE ptr_glPushClientAttrib #-}
+ptr_glPushClientAttrib :: FunPtr (GLbitfield -> IO ())
+ptr_glPushClientAttrib = unsafePerformIO $ getCommand "glPushClientAttrib"
+
+-- glPushClientAttribDefaultEXT ------------------------------------------------
+
+glPushClientAttribDefaultEXT
+  :: MonadIO m
+  => GLbitfield -- ^ @mask@ of type [ClientAttribMask](Graphics-GL-Groups.html#ClientAttribMask).
+  -> m ()
+glPushClientAttribDefaultEXT v1 = liftIO $ dyn75 ptr_glPushClientAttribDefaultEXT v1
+
+{-# NOINLINE ptr_glPushClientAttribDefaultEXT #-}
+ptr_glPushClientAttribDefaultEXT :: FunPtr (GLbitfield -> IO ())
+ptr_glPushClientAttribDefaultEXT = unsafePerformIO $ getCommand "glPushClientAttribDefaultEXT"
+
+-- glPushDebugGroup ------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glPushDebugGroup.xhtml OpenGL 4.x>.
+glPushDebugGroup
+  :: MonadIO m
+  => GLenum -- ^ @source@ of type [DebugSource](Graphics-GL-Groups.html#DebugSource).
+  -> GLuint -- ^ @id@.
+  -> GLsizei -- ^ @length@.
+  -> Ptr GLchar -- ^ @message@ pointing to @COMPSIZE(message,length)@ elements of type @GLchar@.
+  -> m ()
+glPushDebugGroup v1 v2 v3 v4 = liftIO $ dyn511 ptr_glPushDebugGroup v1 v2 v3 v4
+
+{-# NOINLINE ptr_glPushDebugGroup #-}
+ptr_glPushDebugGroup :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLchar -> IO ())
+ptr_glPushDebugGroup = unsafePerformIO $ getCommand "glPushDebugGroup"
+
+-- glPushDebugGroupKHR ---------------------------------------------------------
+
+-- | This command is an alias for 'glPushDebugGroup'.
+glPushDebugGroupKHR
+  :: MonadIO m
+  => GLenum -- ^ @source@ of type [DebugSource](Graphics-GL-Groups.html#DebugSource).
+  -> GLuint -- ^ @id@.
+  -> GLsizei -- ^ @length@.
+  -> Ptr GLchar -- ^ @message@.
+  -> m ()
+glPushDebugGroupKHR v1 v2 v3 v4 = liftIO $ dyn511 ptr_glPushDebugGroupKHR v1 v2 v3 v4
+
+{-# NOINLINE ptr_glPushDebugGroupKHR #-}
+ptr_glPushDebugGroupKHR :: FunPtr (GLenum -> GLuint -> GLsizei -> Ptr GLchar -> IO ())
+ptr_glPushDebugGroupKHR = unsafePerformIO $ getCommand "glPushDebugGroupKHR"
+
+-- glPushGroupMarkerEXT --------------------------------------------------------
+
+glPushGroupMarkerEXT
+  :: MonadIO m
+  => GLsizei -- ^ @length@.
+  -> Ptr GLchar -- ^ @marker@.
+  -> m ()
+glPushGroupMarkerEXT v1 v2 = liftIO $ dyn495 ptr_glPushGroupMarkerEXT v1 v2
+
+{-# NOINLINE ptr_glPushGroupMarkerEXT #-}
+ptr_glPushGroupMarkerEXT :: FunPtr (GLsizei -> Ptr GLchar -> IO ())
+ptr_glPushGroupMarkerEXT = unsafePerformIO $ getCommand "glPushGroupMarkerEXT"
+
+-- glPushMatrix ----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glPushMatrix.xml OpenGL 2.x>.
+glPushMatrix
+  :: MonadIO m
+  => m ()
+glPushMatrix = liftIO $ dyn11 ptr_glPushMatrix
+
+{-# NOINLINE ptr_glPushMatrix #-}
+ptr_glPushMatrix :: FunPtr (IO ())
+ptr_glPushMatrix = unsafePerformIO $ getCommand "glPushMatrix"
+
+-- glPushName ------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glPushName.xml OpenGL 2.x>.
+glPushName
+  :: MonadIO m
+  => GLuint -- ^ @name@ of type @SelectName@.
+  -> m ()
+glPushName v1 = liftIO $ dyn3 ptr_glPushName v1
+
+{-# NOINLINE ptr_glPushName #-}
+ptr_glPushName :: FunPtr (GLuint -> IO ())
+ptr_glPushName = unsafePerformIO $ getCommand "glPushName"
+
+-- glQueryCounter --------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glQueryCounter.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glQueryCounter.xhtml OpenGL 4.x>.
+glQueryCounter
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> GLenum -- ^ @target@ of type [QueryCounterTarget](Graphics-GL-Groups.html#QueryCounterTarget).
+  -> m ()
+glQueryCounter v1 v2 = liftIO $ dyn18 ptr_glQueryCounter v1 v2
+
+{-# NOINLINE ptr_glQueryCounter #-}
+ptr_glQueryCounter :: FunPtr (GLuint -> GLenum -> IO ())
+ptr_glQueryCounter = unsafePerformIO $ getCommand "glQueryCounter"
+
+-- glQueryCounterEXT -----------------------------------------------------------
+
+-- | This command is an alias for 'glQueryCounter'.
+glQueryCounterEXT
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> GLenum -- ^ @target@ of type [QueryCounterTarget](Graphics-GL-Groups.html#QueryCounterTarget).
+  -> m ()
+glQueryCounterEXT v1 v2 = liftIO $ dyn18 ptr_glQueryCounterEXT v1 v2
+
+{-# NOINLINE ptr_glQueryCounterEXT #-}
+ptr_glQueryCounterEXT :: FunPtr (GLuint -> GLenum -> IO ())
+ptr_glQueryCounterEXT = unsafePerformIO $ getCommand "glQueryCounterEXT"
+
+-- glQueryMatrixxOES -----------------------------------------------------------
+
+glQueryMatrixxOES
+  :: MonadIO m
+  => Ptr GLfixed -- ^ @mantissa@ pointing to @16@ elements of type @GLfixed@.
+  -> Ptr GLint -- ^ @exponent@ pointing to @16@ elements of type @GLint@.
+  -> m GLbitfield
+glQueryMatrixxOES v1 v2 = liftIO $ dyn706 ptr_glQueryMatrixxOES v1 v2
+
+{-# NOINLINE ptr_glQueryMatrixxOES #-}
+ptr_glQueryMatrixxOES :: FunPtr (Ptr GLfixed -> Ptr GLint -> IO GLbitfield)
+ptr_glQueryMatrixxOES = unsafePerformIO $ getCommand "glQueryMatrixxOES"
+
+-- glQueryObjectParameteruiAMD -------------------------------------------------
+
+glQueryObjectParameteruiAMD
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [QueryTarget](Graphics-GL-Groups.html#QueryTarget).
+  -> GLuint -- ^ @id@.
+  -> GLenum -- ^ @pname@.
+  -> GLuint -- ^ @param@ of type [OcclusionQueryEventMaskAMD](Graphics-GL-Groups.html#OcclusionQueryEventMaskAMD).
+  -> m ()
+glQueryObjectParameteruiAMD v1 v2 v3 v4 = liftIO $ dyn707 ptr_glQueryObjectParameteruiAMD v1 v2 v3 v4
+
+{-# NOINLINE ptr_glQueryObjectParameteruiAMD #-}
+ptr_glQueryObjectParameteruiAMD :: FunPtr (GLenum -> GLuint -> GLenum -> GLuint -> IO ())
+ptr_glQueryObjectParameteruiAMD = unsafePerformIO $ getCommand "glQueryObjectParameteruiAMD"
+
+-- glQueryResourceNV -----------------------------------------------------------
+
+glQueryResourceNV
+  :: MonadIO m
+  => GLenum -- ^ @queryType@.
+  -> GLint -- ^ @tagId@.
+  -> GLuint -- ^ @count@.
+  -> Ptr GLint -- ^ @buffer@ pointing to @count@ elements of type @GLint@.
+  -> m GLint
+glQueryResourceNV v1 v2 v3 v4 = liftIO $ dyn708 ptr_glQueryResourceNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glQueryResourceNV #-}
+ptr_glQueryResourceNV :: FunPtr (GLenum -> GLint -> GLuint -> Ptr GLint -> IO GLint)
+ptr_glQueryResourceNV = unsafePerformIO $ getCommand "glQueryResourceNV"
+
+-- glQueryResourceTagNV --------------------------------------------------------
+
+glQueryResourceTagNV
+  :: MonadIO m
+  => GLint -- ^ @tagId@.
+  -> Ptr GLchar -- ^ @tagString@.
+  -> m ()
+glQueryResourceTagNV v1 v2 = liftIO $ dyn220 ptr_glQueryResourceTagNV v1 v2
+
+{-# NOINLINE ptr_glQueryResourceTagNV #-}
+ptr_glQueryResourceTagNV :: FunPtr (GLint -> Ptr GLchar -> IO ())
+ptr_glQueryResourceTagNV = unsafePerformIO $ getCommand "glQueryResourceTagNV"
+
+-- glRasterPos2d ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos.xml OpenGL 2.x>. The vector equivalent of this command is 'glRasterPos2dv'.
+glRasterPos2d
+  :: MonadIO m
+  => GLdouble -- ^ @x@ of type @CoordD@.
+  -> GLdouble -- ^ @y@ of type @CoordD@.
+  -> m ()
+glRasterPos2d v1 v2 = liftIO $ dyn225 ptr_glRasterPos2d v1 v2
+
+{-# NOINLINE ptr_glRasterPos2d #-}
+ptr_glRasterPos2d :: FunPtr (GLdouble -> GLdouble -> IO ())
+ptr_glRasterPos2d = unsafePerformIO $ getCommand "glRasterPos2d"
+
+-- glRasterPos2dv --------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos.xml OpenGL 2.x>.
+glRasterPos2dv
+  :: MonadIO m
+  => Ptr GLdouble -- ^ @v@ pointing to @2@ elements of type @CoordD@.
+  -> m ()
+glRasterPos2dv v1 = liftIO $ dyn42 ptr_glRasterPos2dv v1
+
+{-# NOINLINE ptr_glRasterPos2dv #-}
+ptr_glRasterPos2dv :: FunPtr (Ptr GLdouble -> IO ())
+ptr_glRasterPos2dv = unsafePerformIO $ getCommand "glRasterPos2dv"
+
+-- glRasterPos2f ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos.xml OpenGL 2.x>. The vector equivalent of this command is 'glRasterPos2fv'.
+glRasterPos2f
+  :: MonadIO m
+  => GLfloat -- ^ @x@ of type @CoordF@.
+  -> GLfloat -- ^ @y@ of type @CoordF@.
+  -> m ()
+glRasterPos2f v1 v2 = liftIO $ dyn230 ptr_glRasterPos2f v1 v2
+
+{-# NOINLINE ptr_glRasterPos2f #-}
+ptr_glRasterPos2f :: FunPtr (GLfloat -> GLfloat -> IO ())
+ptr_glRasterPos2f = unsafePerformIO $ getCommand "glRasterPos2f"
+
+-- glRasterPos2fv --------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos.xml OpenGL 2.x>.
+glRasterPos2fv
+  :: MonadIO m
+  => Ptr GLfloat -- ^ @v@ pointing to @2@ elements of type @CoordF@.
+  -> m ()
+glRasterPos2fv v1 = liftIO $ dyn44 ptr_glRasterPos2fv v1
+
+{-# NOINLINE ptr_glRasterPos2fv #-}
+ptr_glRasterPos2fv :: FunPtr (Ptr GLfloat -> IO ())
+ptr_glRasterPos2fv = unsafePerformIO $ getCommand "glRasterPos2fv"
+
+-- glRasterPos2i ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos.xml OpenGL 2.x>. The vector equivalent of this command is 'glRasterPos2iv'.
+glRasterPos2i
+  :: MonadIO m
+  => GLint -- ^ @x@ of type @CoordI@.
+  -> GLint -- ^ @y@ of type @CoordI@.
+  -> m ()
+glRasterPos2i v1 v2 = liftIO $ dyn277 ptr_glRasterPos2i v1 v2
+
+{-# NOINLINE ptr_glRasterPos2i #-}
+ptr_glRasterPos2i :: FunPtr (GLint -> GLint -> IO ())
+ptr_glRasterPos2i = unsafePerformIO $ getCommand "glRasterPos2i"
+
+-- glRasterPos2iv --------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos.xml OpenGL 2.x>.
+glRasterPos2iv
+  :: MonadIO m
+  => Ptr GLint -- ^ @v@ pointing to @2@ elements of type @CoordI@.
+  -> m ()
+glRasterPos2iv v1 = liftIO $ dyn46 ptr_glRasterPos2iv v1
+
+{-# NOINLINE ptr_glRasterPos2iv #-}
+ptr_glRasterPos2iv :: FunPtr (Ptr GLint -> IO ())
+ptr_glRasterPos2iv = unsafePerformIO $ getCommand "glRasterPos2iv"
+
+-- glRasterPos2s ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos.xml OpenGL 2.x>. The vector equivalent of this command is 'glRasterPos2sv'.
+glRasterPos2s
+  :: MonadIO m
+  => GLshort -- ^ @x@ of type @CoordS@.
+  -> GLshort -- ^ @y@ of type @CoordS@.
+  -> m ()
+glRasterPos2s v1 v2 = liftIO $ dyn709 ptr_glRasterPos2s v1 v2
+
+{-# NOINLINE ptr_glRasterPos2s #-}
+ptr_glRasterPos2s :: FunPtr (GLshort -> GLshort -> IO ())
+ptr_glRasterPos2s = unsafePerformIO $ getCommand "glRasterPos2s"
+
+-- glRasterPos2sv --------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos.xml OpenGL 2.x>.
+glRasterPos2sv
+  :: MonadIO m
+  => Ptr GLshort -- ^ @v@ pointing to @2@ elements of type @CoordS@.
+  -> m ()
+glRasterPos2sv v1 = liftIO $ dyn48 ptr_glRasterPos2sv v1
+
+{-# NOINLINE ptr_glRasterPos2sv #-}
+ptr_glRasterPos2sv :: FunPtr (Ptr GLshort -> IO ())
+ptr_glRasterPos2sv = unsafePerformIO $ getCommand "glRasterPos2sv"
+
+-- glRasterPos2xOES ------------------------------------------------------------
+
+glRasterPos2xOES
+  :: MonadIO m
+  => GLfixed -- ^ @x@.
+  -> GLfixed -- ^ @y@.
+  -> m ()
+glRasterPos2xOES v1 v2 = liftIO $ dyn232 ptr_glRasterPos2xOES v1 v2
+
+{-# NOINLINE ptr_glRasterPos2xOES #-}
+ptr_glRasterPos2xOES :: FunPtr (GLfixed -> GLfixed -> IO ())
+ptr_glRasterPos2xOES = unsafePerformIO $ getCommand "glRasterPos2xOES"
+
+-- glRasterPos2xvOES -----------------------------------------------------------
+
+glRasterPos2xvOES
+  :: MonadIO m
+  => Ptr GLfixed -- ^ @coords@ pointing to @2@ elements of type @GLfixed@.
+  -> m ()
+glRasterPos2xvOES v1 = liftIO $ dyn114 ptr_glRasterPos2xvOES v1
+
+{-# NOINLINE ptr_glRasterPos2xvOES #-}
+ptr_glRasterPos2xvOES :: FunPtr (Ptr GLfixed -> IO ())
+ptr_glRasterPos2xvOES = unsafePerformIO $ getCommand "glRasterPos2xvOES"
+
+-- glRasterPos3d ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos.xml OpenGL 2.x>. The vector equivalent of this command is 'glRasterPos3dv'.
+glRasterPos3d
+  :: MonadIO m
+  => GLdouble -- ^ @x@ of type @CoordD@.
+  -> GLdouble -- ^ @y@ of type @CoordD@.
+  -> GLdouble -- ^ @z@ of type @CoordD@.
+  -> m ()
+glRasterPos3d v1 v2 v3 = liftIO $ dyn41 ptr_glRasterPos3d v1 v2 v3
+
+{-# NOINLINE ptr_glRasterPos3d #-}
+ptr_glRasterPos3d :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
+ptr_glRasterPos3d = unsafePerformIO $ getCommand "glRasterPos3d"
+
+-- glRasterPos3dv --------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos.xml OpenGL 2.x>.
+glRasterPos3dv
+  :: MonadIO m
+  => Ptr GLdouble -- ^ @v@ pointing to @3@ elements of type @CoordD@.
+  -> m ()
+glRasterPos3dv v1 = liftIO $ dyn42 ptr_glRasterPos3dv v1
+
+{-# NOINLINE ptr_glRasterPos3dv #-}
+ptr_glRasterPos3dv :: FunPtr (Ptr GLdouble -> IO ())
+ptr_glRasterPos3dv = unsafePerformIO $ getCommand "glRasterPos3dv"
+
+-- glRasterPos3f ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos.xml OpenGL 2.x>. The vector equivalent of this command is 'glRasterPos3fv'.
+glRasterPos3f
+  :: MonadIO m
+  => GLfloat -- ^ @x@ of type @CoordF@.
+  -> GLfloat -- ^ @y@ of type @CoordF@.
+  -> GLfloat -- ^ @z@ of type @CoordF@.
+  -> m ()
+glRasterPos3f v1 v2 v3 = liftIO $ dyn43 ptr_glRasterPos3f v1 v2 v3
+
+{-# NOINLINE ptr_glRasterPos3f #-}
+ptr_glRasterPos3f :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glRasterPos3f = unsafePerformIO $ getCommand "glRasterPos3f"
+
+-- glRasterPos3fv --------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos.xml OpenGL 2.x>.
+glRasterPos3fv
+  :: MonadIO m
+  => Ptr GLfloat -- ^ @v@ pointing to @3@ elements of type @CoordF@.
+  -> m ()
+glRasterPos3fv v1 = liftIO $ dyn44 ptr_glRasterPos3fv v1
+
+{-# NOINLINE ptr_glRasterPos3fv #-}
+ptr_glRasterPos3fv :: FunPtr (Ptr GLfloat -> IO ())
+ptr_glRasterPos3fv = unsafePerformIO $ getCommand "glRasterPos3fv"
+
+-- glRasterPos3i ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos.xml OpenGL 2.x>. The vector equivalent of this command is 'glRasterPos3iv'.
+glRasterPos3i
+  :: MonadIO m
+  => GLint -- ^ @x@ of type @CoordI@.
+  -> GLint -- ^ @y@ of type @CoordI@.
+  -> GLint -- ^ @z@ of type @CoordI@.
+  -> m ()
+glRasterPos3i v1 v2 v3 = liftIO $ dyn45 ptr_glRasterPos3i v1 v2 v3
+
+{-# NOINLINE ptr_glRasterPos3i #-}
+ptr_glRasterPos3i :: FunPtr (GLint -> GLint -> GLint -> IO ())
+ptr_glRasterPos3i = unsafePerformIO $ getCommand "glRasterPos3i"
+
+-- glRasterPos3iv --------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos.xml OpenGL 2.x>.
+glRasterPos3iv
+  :: MonadIO m
+  => Ptr GLint -- ^ @v@ pointing to @3@ elements of type @CoordI@.
+  -> m ()
+glRasterPos3iv v1 = liftIO $ dyn46 ptr_glRasterPos3iv v1
+
+{-# NOINLINE ptr_glRasterPos3iv #-}
+ptr_glRasterPos3iv :: FunPtr (Ptr GLint -> IO ())
+ptr_glRasterPos3iv = unsafePerformIO $ getCommand "glRasterPos3iv"
+
+-- glRasterPos3s ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos.xml OpenGL 2.x>. The vector equivalent of this command is 'glRasterPos3sv'.
+glRasterPos3s
+  :: MonadIO m
+  => GLshort -- ^ @x@ of type @CoordS@.
+  -> GLshort -- ^ @y@ of type @CoordS@.
+  -> GLshort -- ^ @z@ of type @CoordS@.
+  -> m ()
+glRasterPos3s v1 v2 v3 = liftIO $ dyn47 ptr_glRasterPos3s v1 v2 v3
+
+{-# NOINLINE ptr_glRasterPos3s #-}
+ptr_glRasterPos3s :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
+ptr_glRasterPos3s = unsafePerformIO $ getCommand "glRasterPos3s"
+
+-- glRasterPos3sv --------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos.xml OpenGL 2.x>.
+glRasterPos3sv
+  :: MonadIO m
+  => Ptr GLshort -- ^ @v@ pointing to @3@ elements of type @CoordS@.
+  -> m ()
+glRasterPos3sv v1 = liftIO $ dyn48 ptr_glRasterPos3sv v1
+
+{-# NOINLINE ptr_glRasterPos3sv #-}
+ptr_glRasterPos3sv :: FunPtr (Ptr GLshort -> IO ())
+ptr_glRasterPos3sv = unsafePerformIO $ getCommand "glRasterPos3sv"
+
+-- glRasterPos3xOES ------------------------------------------------------------
+
+glRasterPos3xOES
+  :: MonadIO m
+  => GLfixed -- ^ @x@.
+  -> GLfixed -- ^ @y@.
+  -> GLfixed -- ^ @z@.
+  -> m ()
+glRasterPos3xOES v1 v2 v3 = liftIO $ dyn113 ptr_glRasterPos3xOES v1 v2 v3
+
+{-# NOINLINE ptr_glRasterPos3xOES #-}
+ptr_glRasterPos3xOES :: FunPtr (GLfixed -> GLfixed -> GLfixed -> IO ())
+ptr_glRasterPos3xOES = unsafePerformIO $ getCommand "glRasterPos3xOES"
+
+-- glRasterPos3xvOES -----------------------------------------------------------
+
+glRasterPos3xvOES
+  :: MonadIO m
+  => Ptr GLfixed -- ^ @coords@ pointing to @3@ elements of type @GLfixed@.
+  -> m ()
+glRasterPos3xvOES v1 = liftIO $ dyn114 ptr_glRasterPos3xvOES v1
+
+{-# NOINLINE ptr_glRasterPos3xvOES #-}
+ptr_glRasterPos3xvOES :: FunPtr (Ptr GLfixed -> IO ())
+ptr_glRasterPos3xvOES = unsafePerformIO $ getCommand "glRasterPos3xvOES"
+
+-- glRasterPos4d ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos.xml OpenGL 2.x>. The vector equivalent of this command is 'glRasterPos4dv'.
+glRasterPos4d
+  :: MonadIO m
+  => GLdouble -- ^ @x@ of type @CoordD@.
+  -> GLdouble -- ^ @y@ of type @CoordD@.
+  -> GLdouble -- ^ @z@ of type @CoordD@.
+  -> GLdouble -- ^ @w@ of type @CoordD@.
+  -> m ()
+glRasterPos4d v1 v2 v3 v4 = liftIO $ dyn116 ptr_glRasterPos4d v1 v2 v3 v4
+
+{-# NOINLINE ptr_glRasterPos4d #-}
+ptr_glRasterPos4d :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+ptr_glRasterPos4d = unsafePerformIO $ getCommand "glRasterPos4d"
+
+-- glRasterPos4dv --------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos.xml OpenGL 2.x>.
+glRasterPos4dv
+  :: MonadIO m
+  => Ptr GLdouble -- ^ @v@ pointing to @4@ elements of type @CoordD@.
+  -> m ()
+glRasterPos4dv v1 = liftIO $ dyn42 ptr_glRasterPos4dv v1
+
+{-# NOINLINE ptr_glRasterPos4dv #-}
+ptr_glRasterPos4dv :: FunPtr (Ptr GLdouble -> IO ())
+ptr_glRasterPos4dv = unsafePerformIO $ getCommand "glRasterPos4dv"
+
+-- glRasterPos4f ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos.xml OpenGL 2.x>. The vector equivalent of this command is 'glRasterPos4fv'.
+glRasterPos4f
+  :: MonadIO m
+  => GLfloat -- ^ @x@ of type @CoordF@.
+  -> GLfloat -- ^ @y@ of type @CoordF@.
+  -> GLfloat -- ^ @z@ of type @CoordF@.
+  -> GLfloat -- ^ @w@ of type @CoordF@.
+  -> m ()
+glRasterPos4f v1 v2 v3 v4 = liftIO $ dyn52 ptr_glRasterPos4f v1 v2 v3 v4
+
+{-# NOINLINE ptr_glRasterPos4f #-}
+ptr_glRasterPos4f :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glRasterPos4f = unsafePerformIO $ getCommand "glRasterPos4f"
+
+-- glRasterPos4fv --------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos.xml OpenGL 2.x>.
+glRasterPos4fv
+  :: MonadIO m
+  => Ptr GLfloat -- ^ @v@ pointing to @4@ elements of type @CoordF@.
+  -> m ()
+glRasterPos4fv v1 = liftIO $ dyn44 ptr_glRasterPos4fv v1
+
+{-# NOINLINE ptr_glRasterPos4fv #-}
+ptr_glRasterPos4fv :: FunPtr (Ptr GLfloat -> IO ())
+ptr_glRasterPos4fv = unsafePerformIO $ getCommand "glRasterPos4fv"
+
+-- glRasterPos4i ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos.xml OpenGL 2.x>. The vector equivalent of this command is 'glRasterPos4iv'.
+glRasterPos4i
+  :: MonadIO m
+  => GLint -- ^ @x@ of type @CoordI@.
+  -> GLint -- ^ @y@ of type @CoordI@.
+  -> GLint -- ^ @z@ of type @CoordI@.
+  -> GLint -- ^ @w@ of type @CoordI@.
+  -> m ()
+glRasterPos4i v1 v2 v3 v4 = liftIO $ dyn82 ptr_glRasterPos4i v1 v2 v3 v4
+
+{-# NOINLINE ptr_glRasterPos4i #-}
+ptr_glRasterPos4i :: FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())
+ptr_glRasterPos4i = unsafePerformIO $ getCommand "glRasterPos4i"
+
+-- glRasterPos4iv --------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos.xml OpenGL 2.x>.
+glRasterPos4iv
+  :: MonadIO m
+  => Ptr GLint -- ^ @v@ pointing to @4@ elements of type @CoordI@.
+  -> m ()
+glRasterPos4iv v1 = liftIO $ dyn46 ptr_glRasterPos4iv v1
+
+{-# NOINLINE ptr_glRasterPos4iv #-}
+ptr_glRasterPos4iv :: FunPtr (Ptr GLint -> IO ())
+ptr_glRasterPos4iv = unsafePerformIO $ getCommand "glRasterPos4iv"
+
+-- glRasterPos4s ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos.xml OpenGL 2.x>. The vector equivalent of this command is 'glRasterPos4sv'.
+glRasterPos4s
+  :: MonadIO m
+  => GLshort -- ^ @x@ of type @CoordS@.
+  -> GLshort -- ^ @y@ of type @CoordS@.
+  -> GLshort -- ^ @z@ of type @CoordS@.
+  -> GLshort -- ^ @w@ of type @CoordS@.
+  -> m ()
+glRasterPos4s v1 v2 v3 v4 = liftIO $ dyn120 ptr_glRasterPos4s v1 v2 v3 v4
+
+{-# NOINLINE ptr_glRasterPos4s #-}
+ptr_glRasterPos4s :: FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> IO ())
+ptr_glRasterPos4s = unsafePerformIO $ getCommand "glRasterPos4s"
+
+-- glRasterPos4sv --------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos.xml OpenGL 2.x>.
+glRasterPos4sv
+  :: MonadIO m
+  => Ptr GLshort -- ^ @v@ pointing to @4@ elements of type @CoordS@.
+  -> m ()
+glRasterPos4sv v1 = liftIO $ dyn48 ptr_glRasterPos4sv v1
+
+{-# NOINLINE ptr_glRasterPos4sv #-}
+ptr_glRasterPos4sv :: FunPtr (Ptr GLshort -> IO ())
+ptr_glRasterPos4sv = unsafePerformIO $ getCommand "glRasterPos4sv"
+
+-- glRasterPos4xOES ------------------------------------------------------------
+
+glRasterPos4xOES
+  :: MonadIO m
+  => GLfixed -- ^ @x@.
+  -> GLfixed -- ^ @y@.
+  -> GLfixed -- ^ @z@.
+  -> GLfixed -- ^ @w@.
+  -> m ()
+glRasterPos4xOES v1 v2 v3 v4 = liftIO $ dyn53 ptr_glRasterPos4xOES v1 v2 v3 v4
+
+{-# NOINLINE ptr_glRasterPos4xOES #-}
+ptr_glRasterPos4xOES :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
+ptr_glRasterPos4xOES = unsafePerformIO $ getCommand "glRasterPos4xOES"
+
diff --git a/src/Graphics/GL/Functions/F23.hs b/src/Graphics/GL/Functions/F23.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Functions/F23.hs
@@ -0,0 +1,1595 @@
+{-# OPTIONS_HADDOCK hide #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Functions.F23
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- Raw functions from the
+-- <http://www.opengl.org/registry/ OpenGL registry>.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Functions.F23 (
+  glRasterPos4xvOES,
+  glRasterSamplesEXT,
+  glReadBuffer,
+  glReadBufferIndexedEXT,
+  glReadBufferNV,
+  glReadInstrumentsSGIX,
+  glReadPixels,
+  glReadnPixels,
+  glReadnPixelsARB,
+  glReadnPixelsEXT,
+  glReadnPixelsKHR,
+  glRectd,
+  glRectdv,
+  glRectf,
+  glRectfv,
+  glRecti,
+  glRectiv,
+  glRects,
+  glRectsv,
+  glRectxOES,
+  glRectxvOES,
+  glReferencePlaneSGIX,
+  glReleaseKeyedMutexWin32EXT,
+  glReleaseShaderCompiler,
+  glRenderGpuMaskNV,
+  glRenderMode,
+  glRenderbufferStorage,
+  glRenderbufferStorageEXT,
+  glRenderbufferStorageMultisample,
+  glRenderbufferStorageMultisampleANGLE,
+  glRenderbufferStorageMultisampleAPPLE,
+  glRenderbufferStorageMultisampleAdvancedAMD,
+  glRenderbufferStorageMultisampleCoverageNV,
+  glRenderbufferStorageMultisampleEXT,
+  glRenderbufferStorageMultisampleIMG,
+  glRenderbufferStorageMultisampleNV,
+  glRenderbufferStorageOES,
+  glReplacementCodePointerSUN,
+  glReplacementCodeubSUN,
+  glReplacementCodeubvSUN,
+  glReplacementCodeuiColor3fVertex3fSUN,
+  glReplacementCodeuiColor3fVertex3fvSUN,
+  glReplacementCodeuiColor4fNormal3fVertex3fSUN,
+  glReplacementCodeuiColor4fNormal3fVertex3fvSUN,
+  glReplacementCodeuiColor4ubVertex3fSUN,
+  glReplacementCodeuiColor4ubVertex3fvSUN,
+  glReplacementCodeuiNormal3fVertex3fSUN,
+  glReplacementCodeuiNormal3fVertex3fvSUN,
+  glReplacementCodeuiSUN,
+  glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN,
+  glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN,
+  glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN,
+  glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN,
+  glReplacementCodeuiTexCoord2fVertex3fSUN,
+  glReplacementCodeuiTexCoord2fVertex3fvSUN,
+  glReplacementCodeuiVertex3fSUN,
+  glReplacementCodeuiVertex3fvSUN,
+  glReplacementCodeuivSUN,
+  glReplacementCodeusSUN,
+  glReplacementCodeusvSUN,
+  glRequestResidentProgramsNV,
+  glResetHistogram,
+  glResetHistogramEXT,
+  glResetMemoryObjectParameterNV,
+  glResetMinmax,
+  glResetMinmaxEXT,
+  glResizeBuffersMESA,
+  glResolveDepthValuesNV,
+  glResolveMultisampleFramebufferAPPLE,
+  glResumeTransformFeedback,
+  glResumeTransformFeedbackNV,
+  glRotated,
+  glRotatef,
+  glRotatex,
+  glRotatexOES,
+  glSampleCoverage,
+  glSampleCoverageARB,
+  glSampleCoveragex,
+  glSampleCoveragexOES,
+  glSampleMapATI,
+  glSampleMaskEXT,
+  glSampleMaskIndexedNV,
+  glSampleMaskSGIS,
+  glSampleMaski,
+  glSamplePatternEXT,
+  glSamplePatternSGIS,
+  glSamplerParameterIiv,
+  glSamplerParameterIivEXT,
+  glSamplerParameterIivOES,
+  glSamplerParameterIuiv,
+  glSamplerParameterIuivEXT,
+  glSamplerParameterIuivOES,
+  glSamplerParameterf,
+  glSamplerParameterfv,
+  glSamplerParameteri,
+  glSamplerParameteriv,
+  glScaled,
+  glScalef,
+  glScalex,
+  glScalexOES
+) where
+
+import Control.Monad.IO.Class ( MonadIO(..) )
+import Foreign.Ptr
+import Graphics.GL.Foreign
+import Graphics.GL.Types
+import System.IO.Unsafe ( unsafePerformIO )
+
+-- glRasterPos4xvOES -----------------------------------------------------------
+
+glRasterPos4xvOES
+  :: MonadIO m
+  => Ptr GLfixed -- ^ @coords@ pointing to @4@ elements of type @GLfixed@.
+  -> m ()
+glRasterPos4xvOES v1 = liftIO $ dyn114 ptr_glRasterPos4xvOES v1
+
+{-# NOINLINE ptr_glRasterPos4xvOES #-}
+ptr_glRasterPos4xvOES :: FunPtr (Ptr GLfixed -> IO ())
+ptr_glRasterPos4xvOES = unsafePerformIO $ getCommand "glRasterPos4xvOES"
+
+-- glRasterSamplesEXT ----------------------------------------------------------
+
+glRasterSamplesEXT
+  :: MonadIO m
+  => GLuint -- ^ @samples@.
+  -> GLboolean -- ^ @fixedsamplelocations@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m ()
+glRasterSamplesEXT v1 v2 = liftIO $ dyn710 ptr_glRasterSamplesEXT v1 v2
+
+{-# NOINLINE ptr_glRasterSamplesEXT #-}
+ptr_glRasterSamplesEXT :: FunPtr (GLuint -> GLboolean -> IO ())
+ptr_glRasterSamplesEXT = unsafePerformIO $ getCommand "glRasterSamplesEXT"
+
+-- glReadBuffer ----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glReadBuffer.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glReadBuffer.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glReadBuffer.xhtml OpenGL 4.x>.
+glReadBuffer
+  :: MonadIO m
+  => GLenum -- ^ @src@ of type [ReadBufferMode](Graphics-GL-Groups.html#ReadBufferMode).
+  -> m ()
+glReadBuffer v1 = liftIO $ dyn5 ptr_glReadBuffer v1
+
+{-# NOINLINE ptr_glReadBuffer #-}
+ptr_glReadBuffer :: FunPtr (GLenum -> IO ())
+ptr_glReadBuffer = unsafePerformIO $ getCommand "glReadBuffer"
+
+-- glReadBufferIndexedEXT ------------------------------------------------------
+
+glReadBufferIndexedEXT
+  :: MonadIO m
+  => GLenum -- ^ @src@ of type [ReadBufferMode](Graphics-GL-Groups.html#ReadBufferMode).
+  -> GLint -- ^ @index@.
+  -> m ()
+glReadBufferIndexedEXT v1 v2 = liftIO $ dyn58 ptr_glReadBufferIndexedEXT v1 v2
+
+{-# NOINLINE ptr_glReadBufferIndexedEXT #-}
+ptr_glReadBufferIndexedEXT :: FunPtr (GLenum -> GLint -> IO ())
+ptr_glReadBufferIndexedEXT = unsafePerformIO $ getCommand "glReadBufferIndexedEXT"
+
+-- glReadBufferNV --------------------------------------------------------------
+
+glReadBufferNV
+  :: MonadIO m
+  => GLenum -- ^ @mode@.
+  -> m ()
+glReadBufferNV v1 = liftIO $ dyn5 ptr_glReadBufferNV v1
+
+{-# NOINLINE ptr_glReadBufferNV #-}
+ptr_glReadBufferNV :: FunPtr (GLenum -> IO ())
+ptr_glReadBufferNV = unsafePerformIO $ getCommand "glReadBufferNV"
+
+-- glReadInstrumentsSGIX -------------------------------------------------------
+
+glReadInstrumentsSGIX
+  :: MonadIO m
+  => GLint -- ^ @marker@.
+  -> m ()
+glReadInstrumentsSGIX v1 = liftIO $ dyn13 ptr_glReadInstrumentsSGIX v1
+
+{-# NOINLINE ptr_glReadInstrumentsSGIX #-}
+ptr_glReadInstrumentsSGIX :: FunPtr (GLint -> IO ())
+ptr_glReadInstrumentsSGIX = unsafePerformIO $ getCommand "glReadInstrumentsSGIX"
+
+-- glReadPixels ----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glReadPixels.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glReadPixels.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glReadPixels.xhtml OpenGL 4.x>.
+glReadPixels
+  :: MonadIO m
+  => GLint -- ^ @x@ of type @WinCoord@.
+  -> GLint -- ^ @y@ of type @WinCoord@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @pixels@ pointing to @COMPSIZE(format,type,width,height)@ elements of type @a@.
+  -> m ()
+glReadPixels v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn711 ptr_glReadPixels v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glReadPixels #-}
+ptr_glReadPixels :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glReadPixels = unsafePerformIO $ getCommand "glReadPixels"
+
+-- glReadnPixels ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glReadPixels.xhtml OpenGL 4.x>.
+glReadnPixels
+  :: MonadIO m
+  => GLint -- ^ @x@.
+  -> GLint -- ^ @y@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr a -- ^ @data@ pointing to @bufSize@ elements of type @a@.
+  -> m ()
+glReadnPixels v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn712 ptr_glReadnPixels v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glReadnPixels #-}
+ptr_glReadnPixels :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glReadnPixels = unsafePerformIO $ getCommand "glReadnPixels"
+
+-- glReadnPixelsARB ------------------------------------------------------------
+
+-- | This command is an alias for 'glReadnPixels'.
+glReadnPixelsARB
+  :: MonadIO m
+  => GLint -- ^ @x@.
+  -> GLint -- ^ @y@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr a -- ^ @data@ pointing to @bufSize@ elements of type @a@.
+  -> m ()
+glReadnPixelsARB v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn712 ptr_glReadnPixelsARB v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glReadnPixelsARB #-}
+ptr_glReadnPixelsARB :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glReadnPixelsARB = unsafePerformIO $ getCommand "glReadnPixelsARB"
+
+-- glReadnPixelsEXT ------------------------------------------------------------
+
+-- | This command is an alias for 'glReadnPixels'.
+glReadnPixelsEXT
+  :: MonadIO m
+  => GLint -- ^ @x@.
+  -> GLint -- ^ @y@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr a -- ^ @data@ pointing to @bufSize@ elements of type @a@.
+  -> m ()
+glReadnPixelsEXT v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn712 ptr_glReadnPixelsEXT v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glReadnPixelsEXT #-}
+ptr_glReadnPixelsEXT :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glReadnPixelsEXT = unsafePerformIO $ getCommand "glReadnPixelsEXT"
+
+-- glReadnPixelsKHR ------------------------------------------------------------
+
+-- | This command is an alias for 'glReadnPixels'.
+glReadnPixelsKHR
+  :: MonadIO m
+  => GLint -- ^ @x@ of type @WinCoord@.
+  -> GLint -- ^ @y@ of type @WinCoord@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> GLsizei -- ^ @bufSize@.
+  -> Ptr a -- ^ @data@ pointing to @bufSize@ elements of type @a@.
+  -> m ()
+glReadnPixelsKHR v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn712 ptr_glReadnPixelsKHR v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glReadnPixelsKHR #-}
+ptr_glReadnPixelsKHR :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glReadnPixelsKHR = unsafePerformIO $ getCommand "glReadnPixelsKHR"
+
+-- glRectd ---------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glRect.xml OpenGL 2.x>. The vector equivalent of this command is 'glRectdv'.
+glRectd
+  :: MonadIO m
+  => GLdouble -- ^ @x1@ of type @CoordD@.
+  -> GLdouble -- ^ @y1@ of type @CoordD@.
+  -> GLdouble -- ^ @x2@ of type @CoordD@.
+  -> GLdouble -- ^ @y2@ of type @CoordD@.
+  -> m ()
+glRectd v1 v2 v3 v4 = liftIO $ dyn116 ptr_glRectd v1 v2 v3 v4
+
+{-# NOINLINE ptr_glRectd #-}
+ptr_glRectd :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+ptr_glRectd = unsafePerformIO $ getCommand "glRectd"
+
+-- glRectdv --------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glRect.xml OpenGL 2.x>.
+glRectdv
+  :: MonadIO m
+  => Ptr GLdouble -- ^ @v1@ pointing to @2@ elements of type @CoordD@.
+  -> Ptr GLdouble -- ^ @v2@ pointing to @2@ elements of type @CoordD@.
+  -> m ()
+glRectdv v1 v2 = liftIO $ dyn713 ptr_glRectdv v1 v2
+
+{-# NOINLINE ptr_glRectdv #-}
+ptr_glRectdv :: FunPtr (Ptr GLdouble -> Ptr GLdouble -> IO ())
+ptr_glRectdv = unsafePerformIO $ getCommand "glRectdv"
+
+-- glRectf ---------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glRect.xml OpenGL 2.x>. The vector equivalent of this command is 'glRectfv'.
+glRectf
+  :: MonadIO m
+  => GLfloat -- ^ @x1@ of type @CoordF@.
+  -> GLfloat -- ^ @y1@ of type @CoordF@.
+  -> GLfloat -- ^ @x2@ of type @CoordF@.
+  -> GLfloat -- ^ @y2@ of type @CoordF@.
+  -> m ()
+glRectf v1 v2 v3 v4 = liftIO $ dyn52 ptr_glRectf v1 v2 v3 v4
+
+{-# NOINLINE ptr_glRectf #-}
+ptr_glRectf :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glRectf = unsafePerformIO $ getCommand "glRectf"
+
+-- glRectfv --------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glRect.xml OpenGL 2.x>.
+glRectfv
+  :: MonadIO m
+  => Ptr GLfloat -- ^ @v1@ pointing to @2@ elements of type @CoordF@.
+  -> Ptr GLfloat -- ^ @v2@ pointing to @2@ elements of type @CoordF@.
+  -> m ()
+glRectfv v1 v2 = liftIO $ dyn104 ptr_glRectfv v1 v2
+
+{-# NOINLINE ptr_glRectfv #-}
+ptr_glRectfv :: FunPtr (Ptr GLfloat -> Ptr GLfloat -> IO ())
+ptr_glRectfv = unsafePerformIO $ getCommand "glRectfv"
+
+-- glRecti ---------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glRect.xml OpenGL 2.x>. The vector equivalent of this command is 'glRectiv'.
+glRecti
+  :: MonadIO m
+  => GLint -- ^ @x1@ of type @CoordI@.
+  -> GLint -- ^ @y1@ of type @CoordI@.
+  -> GLint -- ^ @x2@ of type @CoordI@.
+  -> GLint -- ^ @y2@ of type @CoordI@.
+  -> m ()
+glRecti v1 v2 v3 v4 = liftIO $ dyn82 ptr_glRecti v1 v2 v3 v4
+
+{-# NOINLINE ptr_glRecti #-}
+ptr_glRecti :: FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())
+ptr_glRecti = unsafePerformIO $ getCommand "glRecti"
+
+-- glRectiv --------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glRect.xml OpenGL 2.x>.
+glRectiv
+  :: MonadIO m
+  => Ptr GLint -- ^ @v1@ pointing to @2@ elements of type @CoordI@.
+  -> Ptr GLint -- ^ @v2@ pointing to @2@ elements of type @CoordI@.
+  -> m ()
+glRectiv v1 v2 = liftIO $ dyn714 ptr_glRectiv v1 v2
+
+{-# NOINLINE ptr_glRectiv #-}
+ptr_glRectiv :: FunPtr (Ptr GLint -> Ptr GLint -> IO ())
+ptr_glRectiv = unsafePerformIO $ getCommand "glRectiv"
+
+-- glRects ---------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glRect.xml OpenGL 2.x>. The vector equivalent of this command is 'glRectsv'.
+glRects
+  :: MonadIO m
+  => GLshort -- ^ @x1@ of type @CoordS@.
+  -> GLshort -- ^ @y1@ of type @CoordS@.
+  -> GLshort -- ^ @x2@ of type @CoordS@.
+  -> GLshort -- ^ @y2@ of type @CoordS@.
+  -> m ()
+glRects v1 v2 v3 v4 = liftIO $ dyn120 ptr_glRects v1 v2 v3 v4
+
+{-# NOINLINE ptr_glRects #-}
+ptr_glRects :: FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> IO ())
+ptr_glRects = unsafePerformIO $ getCommand "glRects"
+
+-- glRectsv --------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glRect.xml OpenGL 2.x>.
+glRectsv
+  :: MonadIO m
+  => Ptr GLshort -- ^ @v1@ pointing to @2@ elements of type @CoordS@.
+  -> Ptr GLshort -- ^ @v2@ pointing to @2@ elements of type @CoordS@.
+  -> m ()
+glRectsv v1 v2 = liftIO $ dyn715 ptr_glRectsv v1 v2
+
+{-# NOINLINE ptr_glRectsv #-}
+ptr_glRectsv :: FunPtr (Ptr GLshort -> Ptr GLshort -> IO ())
+ptr_glRectsv = unsafePerformIO $ getCommand "glRectsv"
+
+-- glRectxOES ------------------------------------------------------------------
+
+glRectxOES
+  :: MonadIO m
+  => GLfixed -- ^ @x1@.
+  -> GLfixed -- ^ @y1@.
+  -> GLfixed -- ^ @x2@.
+  -> GLfixed -- ^ @y2@.
+  -> m ()
+glRectxOES v1 v2 v3 v4 = liftIO $ dyn53 ptr_glRectxOES v1 v2 v3 v4
+
+{-# NOINLINE ptr_glRectxOES #-}
+ptr_glRectxOES :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
+ptr_glRectxOES = unsafePerformIO $ getCommand "glRectxOES"
+
+-- glRectxvOES -----------------------------------------------------------------
+
+glRectxvOES
+  :: MonadIO m
+  => Ptr GLfixed -- ^ @v1@ pointing to @2@ elements of type @GLfixed@.
+  -> Ptr GLfixed -- ^ @v2@ pointing to @2@ elements of type @GLfixed@.
+  -> m ()
+glRectxvOES v1 v2 = liftIO $ dyn716 ptr_glRectxvOES v1 v2
+
+{-# NOINLINE ptr_glRectxvOES #-}
+ptr_glRectxvOES :: FunPtr (Ptr GLfixed -> Ptr GLfixed -> IO ())
+ptr_glRectxvOES = unsafePerformIO $ getCommand "glRectxvOES"
+
+-- glReferencePlaneSGIX --------------------------------------------------------
+
+glReferencePlaneSGIX
+  :: MonadIO m
+  => Ptr GLdouble -- ^ @equation@ pointing to @4@ elements of type @GLdouble@.
+  -> m ()
+glReferencePlaneSGIX v1 = liftIO $ dyn42 ptr_glReferencePlaneSGIX v1
+
+{-# NOINLINE ptr_glReferencePlaneSGIX #-}
+ptr_glReferencePlaneSGIX :: FunPtr (Ptr GLdouble -> IO ())
+ptr_glReferencePlaneSGIX = unsafePerformIO $ getCommand "glReferencePlaneSGIX"
+
+-- glReleaseKeyedMutexWin32EXT -------------------------------------------------
+
+glReleaseKeyedMutexWin32EXT
+  :: MonadIO m
+  => GLuint -- ^ @memory@.
+  -> GLuint64 -- ^ @key@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glReleaseKeyedMutexWin32EXT v1 v2 = liftIO $ dyn717 ptr_glReleaseKeyedMutexWin32EXT v1 v2
+
+{-# NOINLINE ptr_glReleaseKeyedMutexWin32EXT #-}
+ptr_glReleaseKeyedMutexWin32EXT :: FunPtr (GLuint -> GLuint64 -> IO GLboolean)
+ptr_glReleaseKeyedMutexWin32EXT = unsafePerformIO $ getCommand "glReleaseKeyedMutexWin32EXT"
+
+-- glReleaseShaderCompiler -----------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glReleaseShaderCompiler.xhtml OpenGL 4.x>.
+glReleaseShaderCompiler
+  :: MonadIO m
+  => m ()
+glReleaseShaderCompiler = liftIO $ dyn11 ptr_glReleaseShaderCompiler
+
+{-# NOINLINE ptr_glReleaseShaderCompiler #-}
+ptr_glReleaseShaderCompiler :: FunPtr (IO ())
+ptr_glReleaseShaderCompiler = unsafePerformIO $ getCommand "glReleaseShaderCompiler"
+
+-- glRenderGpuMaskNV -----------------------------------------------------------
+
+glRenderGpuMaskNV
+  :: MonadIO m
+  => GLbitfield -- ^ @mask@.
+  -> m ()
+glRenderGpuMaskNV v1 = liftIO $ dyn75 ptr_glRenderGpuMaskNV v1
+
+{-# NOINLINE ptr_glRenderGpuMaskNV #-}
+ptr_glRenderGpuMaskNV :: FunPtr (GLbitfield -> IO ())
+ptr_glRenderGpuMaskNV = unsafePerformIO $ getCommand "glRenderGpuMaskNV"
+
+-- glRenderMode ----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glRenderMode.xml OpenGL 2.x>.
+glRenderMode
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [RenderingMode](Graphics-GL-Groups.html#RenderingMode).
+  -> m GLint
+glRenderMode v1 = liftIO $ dyn718 ptr_glRenderMode v1
+
+{-# NOINLINE ptr_glRenderMode #-}
+ptr_glRenderMode :: FunPtr (GLenum -> IO GLint)
+ptr_glRenderMode = unsafePerformIO $ getCommand "glRenderMode"
+
+-- glRenderbufferStorage -------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glRenderbufferStorage.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glRenderbufferStorage.xhtml OpenGL 4.x>.
+glRenderbufferStorage
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [RenderbufferTarget](Graphics-GL-Groups.html#RenderbufferTarget).
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> m ()
+glRenderbufferStorage v1 v2 v3 v4 = liftIO $ dyn719 ptr_glRenderbufferStorage v1 v2 v3 v4
+
+{-# NOINLINE ptr_glRenderbufferStorage #-}
+ptr_glRenderbufferStorage :: FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> IO ())
+ptr_glRenderbufferStorage = unsafePerformIO $ getCommand "glRenderbufferStorage"
+
+-- glRenderbufferStorageEXT ----------------------------------------------------
+
+-- | This command is an alias for 'glRenderbufferStorage'.
+glRenderbufferStorageEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [RenderbufferTarget](Graphics-GL-Groups.html#RenderbufferTarget).
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> m ()
+glRenderbufferStorageEXT v1 v2 v3 v4 = liftIO $ dyn719 ptr_glRenderbufferStorageEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glRenderbufferStorageEXT #-}
+ptr_glRenderbufferStorageEXT :: FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> IO ())
+ptr_glRenderbufferStorageEXT = unsafePerformIO $ getCommand "glRenderbufferStorageEXT"
+
+-- glRenderbufferStorageMultisample --------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glRenderbufferStorageMultisample.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glRenderbufferStorageMultisample.xhtml OpenGL 4.x>.
+glRenderbufferStorageMultisample
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [RenderbufferTarget](Graphics-GL-Groups.html#RenderbufferTarget).
+  -> GLsizei -- ^ @samples@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> m ()
+glRenderbufferStorageMultisample v1 v2 v3 v4 v5 = liftIO $ dyn720 ptr_glRenderbufferStorageMultisample v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glRenderbufferStorageMultisample #-}
+ptr_glRenderbufferStorageMultisample :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
+ptr_glRenderbufferStorageMultisample = unsafePerformIO $ getCommand "glRenderbufferStorageMultisample"
+
+-- glRenderbufferStorageMultisampleANGLE ---------------------------------------
+
+glRenderbufferStorageMultisampleANGLE
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [RenderbufferTarget](Graphics-GL-Groups.html#RenderbufferTarget).
+  -> GLsizei -- ^ @samples@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> m ()
+glRenderbufferStorageMultisampleANGLE v1 v2 v3 v4 v5 = liftIO $ dyn720 ptr_glRenderbufferStorageMultisampleANGLE v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glRenderbufferStorageMultisampleANGLE #-}
+ptr_glRenderbufferStorageMultisampleANGLE :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
+ptr_glRenderbufferStorageMultisampleANGLE = unsafePerformIO $ getCommand "glRenderbufferStorageMultisampleANGLE"
+
+-- glRenderbufferStorageMultisampleAPPLE ---------------------------------------
+
+glRenderbufferStorageMultisampleAPPLE
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [RenderbufferTarget](Graphics-GL-Groups.html#RenderbufferTarget).
+  -> GLsizei -- ^ @samples@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> m ()
+glRenderbufferStorageMultisampleAPPLE v1 v2 v3 v4 v5 = liftIO $ dyn720 ptr_glRenderbufferStorageMultisampleAPPLE v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glRenderbufferStorageMultisampleAPPLE #-}
+ptr_glRenderbufferStorageMultisampleAPPLE :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
+ptr_glRenderbufferStorageMultisampleAPPLE = unsafePerformIO $ getCommand "glRenderbufferStorageMultisampleAPPLE"
+
+-- glRenderbufferStorageMultisampleAdvancedAMD ---------------------------------
+
+glRenderbufferStorageMultisampleAdvancedAMD
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [RenderbufferTarget](Graphics-GL-Groups.html#RenderbufferTarget).
+  -> GLsizei -- ^ @samples@.
+  -> GLsizei -- ^ @storageSamples@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> m ()
+glRenderbufferStorageMultisampleAdvancedAMD v1 v2 v3 v4 v5 v6 = liftIO $ dyn721 ptr_glRenderbufferStorageMultisampleAdvancedAMD v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glRenderbufferStorageMultisampleAdvancedAMD #-}
+ptr_glRenderbufferStorageMultisampleAdvancedAMD :: FunPtr (GLenum -> GLsizei -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
+ptr_glRenderbufferStorageMultisampleAdvancedAMD = unsafePerformIO $ getCommand "glRenderbufferStorageMultisampleAdvancedAMD"
+
+-- glRenderbufferStorageMultisampleCoverageNV ----------------------------------
+
+glRenderbufferStorageMultisampleCoverageNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [RenderbufferTarget](Graphics-GL-Groups.html#RenderbufferTarget).
+  -> GLsizei -- ^ @coverageSamples@.
+  -> GLsizei -- ^ @colorSamples@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> m ()
+glRenderbufferStorageMultisampleCoverageNV v1 v2 v3 v4 v5 v6 = liftIO $ dyn721 ptr_glRenderbufferStorageMultisampleCoverageNV v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glRenderbufferStorageMultisampleCoverageNV #-}
+ptr_glRenderbufferStorageMultisampleCoverageNV :: FunPtr (GLenum -> GLsizei -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
+ptr_glRenderbufferStorageMultisampleCoverageNV = unsafePerformIO $ getCommand "glRenderbufferStorageMultisampleCoverageNV"
+
+-- glRenderbufferStorageMultisampleEXT -----------------------------------------
+
+-- | This command is an alias for 'glRenderbufferStorageMultisample'.
+glRenderbufferStorageMultisampleEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [RenderbufferTarget](Graphics-GL-Groups.html#RenderbufferTarget).
+  -> GLsizei -- ^ @samples@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> m ()
+glRenderbufferStorageMultisampleEXT v1 v2 v3 v4 v5 = liftIO $ dyn720 ptr_glRenderbufferStorageMultisampleEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glRenderbufferStorageMultisampleEXT #-}
+ptr_glRenderbufferStorageMultisampleEXT :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
+ptr_glRenderbufferStorageMultisampleEXT = unsafePerformIO $ getCommand "glRenderbufferStorageMultisampleEXT"
+
+-- glRenderbufferStorageMultisampleIMG -----------------------------------------
+
+glRenderbufferStorageMultisampleIMG
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [RenderbufferTarget](Graphics-GL-Groups.html#RenderbufferTarget).
+  -> GLsizei -- ^ @samples@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> m ()
+glRenderbufferStorageMultisampleIMG v1 v2 v3 v4 v5 = liftIO $ dyn720 ptr_glRenderbufferStorageMultisampleIMG v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glRenderbufferStorageMultisampleIMG #-}
+ptr_glRenderbufferStorageMultisampleIMG :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
+ptr_glRenderbufferStorageMultisampleIMG = unsafePerformIO $ getCommand "glRenderbufferStorageMultisampleIMG"
+
+-- glRenderbufferStorageMultisampleNV ------------------------------------------
+
+-- | This command is an alias for 'glRenderbufferStorageMultisample'.
+glRenderbufferStorageMultisampleNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [RenderbufferTarget](Graphics-GL-Groups.html#RenderbufferTarget).
+  -> GLsizei -- ^ @samples@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> m ()
+glRenderbufferStorageMultisampleNV v1 v2 v3 v4 v5 = liftIO $ dyn720 ptr_glRenderbufferStorageMultisampleNV v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glRenderbufferStorageMultisampleNV #-}
+ptr_glRenderbufferStorageMultisampleNV :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
+ptr_glRenderbufferStorageMultisampleNV = unsafePerformIO $ getCommand "glRenderbufferStorageMultisampleNV"
+
+-- glRenderbufferStorageOES ----------------------------------------------------
+
+glRenderbufferStorageOES
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [RenderbufferTarget](Graphics-GL-Groups.html#RenderbufferTarget).
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> m ()
+glRenderbufferStorageOES v1 v2 v3 v4 = liftIO $ dyn719 ptr_glRenderbufferStorageOES v1 v2 v3 v4
+
+{-# NOINLINE ptr_glRenderbufferStorageOES #-}
+ptr_glRenderbufferStorageOES :: FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> IO ())
+ptr_glRenderbufferStorageOES = unsafePerformIO $ getCommand "glRenderbufferStorageOES"
+
+-- glReplacementCodePointerSUN -------------------------------------------------
+
+glReplacementCodePointerSUN
+  :: MonadIO m
+  => GLenum -- ^ @type@ of type [ReplacementCodeTypeSUN](Graphics-GL-Groups.html#ReplacementCodeTypeSUN).
+  -> GLsizei -- ^ @stride@.
+  -> Ptr (Ptr a) -- ^ @pointer@ pointing to @COMPSIZE(type,stride)@ elements of type @Ptr a@.
+  -> m ()
+glReplacementCodePointerSUN v1 v2 v3 = liftIO $ dyn722 ptr_glReplacementCodePointerSUN v1 v2 v3
+
+{-# NOINLINE ptr_glReplacementCodePointerSUN #-}
+ptr_glReplacementCodePointerSUN :: FunPtr (GLenum -> GLsizei -> Ptr (Ptr a) -> IO ())
+ptr_glReplacementCodePointerSUN = unsafePerformIO $ getCommand "glReplacementCodePointerSUN"
+
+-- glReplacementCodeubSUN ------------------------------------------------------
+
+glReplacementCodeubSUN
+  :: MonadIO m
+  => GLubyte -- ^ @code@.
+  -> m ()
+glReplacementCodeubSUN v1 = liftIO $ dyn486 ptr_glReplacementCodeubSUN v1
+
+{-# NOINLINE ptr_glReplacementCodeubSUN #-}
+ptr_glReplacementCodeubSUN :: FunPtr (GLubyte -> IO ())
+ptr_glReplacementCodeubSUN = unsafePerformIO $ getCommand "glReplacementCodeubSUN"
+
+-- glReplacementCodeubvSUN -----------------------------------------------------
+
+glReplacementCodeubvSUN
+  :: MonadIO m
+  => Ptr GLubyte -- ^ @code@ pointing to @COMPSIZE()@ elements of type @GLubyte@.
+  -> m ()
+glReplacementCodeubvSUN v1 = liftIO $ dyn108 ptr_glReplacementCodeubvSUN v1
+
+{-# NOINLINE ptr_glReplacementCodeubvSUN #-}
+ptr_glReplacementCodeubvSUN :: FunPtr (Ptr GLubyte -> IO ())
+ptr_glReplacementCodeubvSUN = unsafePerformIO $ getCommand "glReplacementCodeubvSUN"
+
+-- glReplacementCodeuiColor3fVertex3fSUN ---------------------------------------
+
+glReplacementCodeuiColor3fVertex3fSUN
+  :: MonadIO m
+  => GLuint -- ^ @rc@ of type @ReplacementCodeSUN@.
+  -> GLfloat -- ^ @r@.
+  -> GLfloat -- ^ @g@.
+  -> GLfloat -- ^ @b@.
+  -> GLfloat -- ^ @x@.
+  -> GLfloat -- ^ @y@.
+  -> GLfloat -- ^ @z@.
+  -> m ()
+glReplacementCodeuiColor3fVertex3fSUN v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn723 ptr_glReplacementCodeuiColor3fVertex3fSUN v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glReplacementCodeuiColor3fVertex3fSUN #-}
+ptr_glReplacementCodeuiColor3fVertex3fSUN :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glReplacementCodeuiColor3fVertex3fSUN = unsafePerformIO $ getCommand "glReplacementCodeuiColor3fVertex3fSUN"
+
+-- glReplacementCodeuiColor3fVertex3fvSUN --------------------------------------
+
+glReplacementCodeuiColor3fVertex3fvSUN
+  :: MonadIO m
+  => Ptr GLuint -- ^ @rc@ pointing to @1@ element of type @ReplacementCodeSUN@.
+  -> Ptr GLfloat -- ^ @c@ pointing to @3@ elements of type @GLfloat@.
+  -> Ptr GLfloat -- ^ @v@ pointing to @3@ elements of type @GLfloat@.
+  -> m ()
+glReplacementCodeuiColor3fVertex3fvSUN v1 v2 v3 = liftIO $ dyn724 ptr_glReplacementCodeuiColor3fVertex3fvSUN v1 v2 v3
+
+{-# NOINLINE ptr_glReplacementCodeuiColor3fVertex3fvSUN #-}
+ptr_glReplacementCodeuiColor3fVertex3fvSUN :: FunPtr (Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> IO ())
+ptr_glReplacementCodeuiColor3fVertex3fvSUN = unsafePerformIO $ getCommand "glReplacementCodeuiColor3fVertex3fvSUN"
+
+-- glReplacementCodeuiColor4fNormal3fVertex3fSUN -------------------------------
+
+glReplacementCodeuiColor4fNormal3fVertex3fSUN
+  :: MonadIO m
+  => GLuint -- ^ @rc@ of type @ReplacementCodeSUN@.
+  -> GLfloat -- ^ @r@.
+  -> GLfloat -- ^ @g@.
+  -> GLfloat -- ^ @b@.
+  -> GLfloat -- ^ @a@.
+  -> GLfloat -- ^ @nx@.
+  -> GLfloat -- ^ @ny@.
+  -> GLfloat -- ^ @nz@.
+  -> GLfloat -- ^ @x@.
+  -> GLfloat -- ^ @y@.
+  -> GLfloat -- ^ @z@.
+  -> m ()
+glReplacementCodeuiColor4fNormal3fVertex3fSUN v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 = liftIO $ dyn725 ptr_glReplacementCodeuiColor4fNormal3fVertex3fSUN v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11
+
+{-# NOINLINE ptr_glReplacementCodeuiColor4fNormal3fVertex3fSUN #-}
+ptr_glReplacementCodeuiColor4fNormal3fVertex3fSUN :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glReplacementCodeuiColor4fNormal3fVertex3fSUN = unsafePerformIO $ getCommand "glReplacementCodeuiColor4fNormal3fVertex3fSUN"
+
+-- glReplacementCodeuiColor4fNormal3fVertex3fvSUN ------------------------------
+
+glReplacementCodeuiColor4fNormal3fVertex3fvSUN
+  :: MonadIO m
+  => Ptr GLuint -- ^ @rc@ pointing to @1@ element of type @ReplacementCodeSUN@.
+  -> Ptr GLfloat -- ^ @c@ pointing to @4@ elements of type @GLfloat@.
+  -> Ptr GLfloat -- ^ @n@ pointing to @3@ elements of type @GLfloat@.
+  -> Ptr GLfloat -- ^ @v@ pointing to @3@ elements of type @GLfloat@.
+  -> m ()
+glReplacementCodeuiColor4fNormal3fVertex3fvSUN v1 v2 v3 v4 = liftIO $ dyn726 ptr_glReplacementCodeuiColor4fNormal3fVertex3fvSUN v1 v2 v3 v4
+
+{-# NOINLINE ptr_glReplacementCodeuiColor4fNormal3fVertex3fvSUN #-}
+ptr_glReplacementCodeuiColor4fNormal3fVertex3fvSUN :: FunPtr (Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ())
+ptr_glReplacementCodeuiColor4fNormal3fVertex3fvSUN = unsafePerformIO $ getCommand "glReplacementCodeuiColor4fNormal3fVertex3fvSUN"
+
+-- glReplacementCodeuiColor4ubVertex3fSUN --------------------------------------
+
+glReplacementCodeuiColor4ubVertex3fSUN
+  :: MonadIO m
+  => GLuint -- ^ @rc@ of type @ReplacementCodeSUN@.
+  -> GLubyte -- ^ @r@.
+  -> GLubyte -- ^ @g@.
+  -> GLubyte -- ^ @b@.
+  -> GLubyte -- ^ @a@.
+  -> GLfloat -- ^ @x@.
+  -> GLfloat -- ^ @y@.
+  -> GLfloat -- ^ @z@.
+  -> m ()
+glReplacementCodeuiColor4ubVertex3fSUN v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn727 ptr_glReplacementCodeuiColor4ubVertex3fSUN v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glReplacementCodeuiColor4ubVertex3fSUN #-}
+ptr_glReplacementCodeuiColor4ubVertex3fSUN :: FunPtr (GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glReplacementCodeuiColor4ubVertex3fSUN = unsafePerformIO $ getCommand "glReplacementCodeuiColor4ubVertex3fSUN"
+
+-- glReplacementCodeuiColor4ubVertex3fvSUN -------------------------------------
+
+glReplacementCodeuiColor4ubVertex3fvSUN
+  :: MonadIO m
+  => Ptr GLuint -- ^ @rc@ pointing to @1@ element of type @ReplacementCodeSUN@.
+  -> Ptr GLubyte -- ^ @c@ pointing to @4@ elements of type @GLubyte@.
+  -> Ptr GLfloat -- ^ @v@ pointing to @3@ elements of type @GLfloat@.
+  -> m ()
+glReplacementCodeuiColor4ubVertex3fvSUN v1 v2 v3 = liftIO $ dyn728 ptr_glReplacementCodeuiColor4ubVertex3fvSUN v1 v2 v3
+
+{-# NOINLINE ptr_glReplacementCodeuiColor4ubVertex3fvSUN #-}
+ptr_glReplacementCodeuiColor4ubVertex3fvSUN :: FunPtr (Ptr GLuint -> Ptr GLubyte -> Ptr GLfloat -> IO ())
+ptr_glReplacementCodeuiColor4ubVertex3fvSUN = unsafePerformIO $ getCommand "glReplacementCodeuiColor4ubVertex3fvSUN"
+
+-- glReplacementCodeuiNormal3fVertex3fSUN --------------------------------------
+
+glReplacementCodeuiNormal3fVertex3fSUN
+  :: MonadIO m
+  => GLuint -- ^ @rc@ of type @ReplacementCodeSUN@.
+  -> GLfloat -- ^ @nx@.
+  -> GLfloat -- ^ @ny@.
+  -> GLfloat -- ^ @nz@.
+  -> GLfloat -- ^ @x@.
+  -> GLfloat -- ^ @y@.
+  -> GLfloat -- ^ @z@.
+  -> m ()
+glReplacementCodeuiNormal3fVertex3fSUN v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn723 ptr_glReplacementCodeuiNormal3fVertex3fSUN v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glReplacementCodeuiNormal3fVertex3fSUN #-}
+ptr_glReplacementCodeuiNormal3fVertex3fSUN :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glReplacementCodeuiNormal3fVertex3fSUN = unsafePerformIO $ getCommand "glReplacementCodeuiNormal3fVertex3fSUN"
+
+-- glReplacementCodeuiNormal3fVertex3fvSUN -------------------------------------
+
+glReplacementCodeuiNormal3fVertex3fvSUN
+  :: MonadIO m
+  => Ptr GLuint -- ^ @rc@ pointing to @1@ element of type @ReplacementCodeSUN@.
+  -> Ptr GLfloat -- ^ @n@ pointing to @3@ elements of type @GLfloat@.
+  -> Ptr GLfloat -- ^ @v@ pointing to @3@ elements of type @GLfloat@.
+  -> m ()
+glReplacementCodeuiNormal3fVertex3fvSUN v1 v2 v3 = liftIO $ dyn724 ptr_glReplacementCodeuiNormal3fVertex3fvSUN v1 v2 v3
+
+{-# NOINLINE ptr_glReplacementCodeuiNormal3fVertex3fvSUN #-}
+ptr_glReplacementCodeuiNormal3fVertex3fvSUN :: FunPtr (Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> IO ())
+ptr_glReplacementCodeuiNormal3fVertex3fvSUN = unsafePerformIO $ getCommand "glReplacementCodeuiNormal3fVertex3fvSUN"
+
+-- glReplacementCodeuiSUN ------------------------------------------------------
+
+glReplacementCodeuiSUN
+  :: MonadIO m
+  => GLuint -- ^ @code@.
+  -> m ()
+glReplacementCodeuiSUN v1 = liftIO $ dyn3 ptr_glReplacementCodeuiSUN v1
+
+{-# NOINLINE ptr_glReplacementCodeuiSUN #-}
+ptr_glReplacementCodeuiSUN :: FunPtr (GLuint -> IO ())
+ptr_glReplacementCodeuiSUN = unsafePerformIO $ getCommand "glReplacementCodeuiSUN"
+
+-- glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN ---------------------
+
+glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN
+  :: MonadIO m
+  => GLuint -- ^ @rc@ of type @ReplacementCodeSUN@.
+  -> GLfloat -- ^ @s@.
+  -> GLfloat -- ^ @t@.
+  -> GLfloat -- ^ @r@.
+  -> GLfloat -- ^ @g@.
+  -> GLfloat -- ^ @b@.
+  -> GLfloat -- ^ @a@.
+  -> GLfloat -- ^ @nx@.
+  -> GLfloat -- ^ @ny@.
+  -> GLfloat -- ^ @nz@.
+  -> GLfloat -- ^ @x@.
+  -> GLfloat -- ^ @y@.
+  -> GLfloat -- ^ @z@.
+  -> m ()
+glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 = liftIO $ dyn729 ptr_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13
+
+{-# NOINLINE ptr_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN #-}
+ptr_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN = unsafePerformIO $ getCommand "glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN"
+
+-- glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN --------------------
+
+glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN
+  :: MonadIO m
+  => Ptr GLuint -- ^ @rc@ pointing to @1@ element of type @ReplacementCodeSUN@.
+  -> Ptr GLfloat -- ^ @tc@ pointing to @2@ elements of type @GLfloat@.
+  -> Ptr GLfloat -- ^ @c@ pointing to @4@ elements of type @GLfloat@.
+  -> Ptr GLfloat -- ^ @n@ pointing to @3@ elements of type @GLfloat@.
+  -> Ptr GLfloat -- ^ @v@ pointing to @3@ elements of type @GLfloat@.
+  -> m ()
+glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN v1 v2 v3 v4 v5 = liftIO $ dyn730 ptr_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN #-}
+ptr_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN :: FunPtr (Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ())
+ptr_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN = unsafePerformIO $ getCommand "glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN"
+
+-- glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN ----------------------------
+
+glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN
+  :: MonadIO m
+  => GLuint -- ^ @rc@ of type @ReplacementCodeSUN@.
+  -> GLfloat -- ^ @s@.
+  -> GLfloat -- ^ @t@.
+  -> GLfloat -- ^ @nx@.
+  -> GLfloat -- ^ @ny@.
+  -> GLfloat -- ^ @nz@.
+  -> GLfloat -- ^ @x@.
+  -> GLfloat -- ^ @y@.
+  -> GLfloat -- ^ @z@.
+  -> m ()
+glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO $ dyn731 ptr_glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN v1 v2 v3 v4 v5 v6 v7 v8 v9
+
+{-# NOINLINE ptr_glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN #-}
+ptr_glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN = unsafePerformIO $ getCommand "glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN"
+
+-- glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN ---------------------------
+
+glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN
+  :: MonadIO m
+  => Ptr GLuint -- ^ @rc@ pointing to @1@ element of type @ReplacementCodeSUN@.
+  -> Ptr GLfloat -- ^ @tc@ pointing to @2@ elements of type @GLfloat@.
+  -> Ptr GLfloat -- ^ @n@ pointing to @3@ elements of type @GLfloat@.
+  -> Ptr GLfloat -- ^ @v@ pointing to @3@ elements of type @GLfloat@.
+  -> m ()
+glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN v1 v2 v3 v4 = liftIO $ dyn726 ptr_glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN v1 v2 v3 v4
+
+{-# NOINLINE ptr_glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN #-}
+ptr_glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN :: FunPtr (Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ())
+ptr_glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN = unsafePerformIO $ getCommand "glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN"
+
+-- glReplacementCodeuiTexCoord2fVertex3fSUN ------------------------------------
+
+glReplacementCodeuiTexCoord2fVertex3fSUN
+  :: MonadIO m
+  => GLuint -- ^ @rc@ of type @ReplacementCodeSUN@.
+  -> GLfloat -- ^ @s@.
+  -> GLfloat -- ^ @t@.
+  -> GLfloat -- ^ @x@.
+  -> GLfloat -- ^ @y@.
+  -> GLfloat -- ^ @z@.
+  -> m ()
+glReplacementCodeuiTexCoord2fVertex3fSUN v1 v2 v3 v4 v5 v6 = liftIO $ dyn732 ptr_glReplacementCodeuiTexCoord2fVertex3fSUN v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glReplacementCodeuiTexCoord2fVertex3fSUN #-}
+ptr_glReplacementCodeuiTexCoord2fVertex3fSUN :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glReplacementCodeuiTexCoord2fVertex3fSUN = unsafePerformIO $ getCommand "glReplacementCodeuiTexCoord2fVertex3fSUN"
+
+-- glReplacementCodeuiTexCoord2fVertex3fvSUN -----------------------------------
+
+glReplacementCodeuiTexCoord2fVertex3fvSUN
+  :: MonadIO m
+  => Ptr GLuint -- ^ @rc@ pointing to @1@ element of type @ReplacementCodeSUN@.
+  -> Ptr GLfloat -- ^ @tc@ pointing to @2@ elements of type @GLfloat@.
+  -> Ptr GLfloat -- ^ @v@ pointing to @3@ elements of type @GLfloat@.
+  -> m ()
+glReplacementCodeuiTexCoord2fVertex3fvSUN v1 v2 v3 = liftIO $ dyn724 ptr_glReplacementCodeuiTexCoord2fVertex3fvSUN v1 v2 v3
+
+{-# NOINLINE ptr_glReplacementCodeuiTexCoord2fVertex3fvSUN #-}
+ptr_glReplacementCodeuiTexCoord2fVertex3fvSUN :: FunPtr (Ptr GLuint -> Ptr GLfloat -> Ptr GLfloat -> IO ())
+ptr_glReplacementCodeuiTexCoord2fVertex3fvSUN = unsafePerformIO $ getCommand "glReplacementCodeuiTexCoord2fVertex3fvSUN"
+
+-- glReplacementCodeuiVertex3fSUN ----------------------------------------------
+
+glReplacementCodeuiVertex3fSUN
+  :: MonadIO m
+  => GLuint -- ^ @rc@ of type @ReplacementCodeSUN@.
+  -> GLfloat -- ^ @x@.
+  -> GLfloat -- ^ @y@.
+  -> GLfloat -- ^ @z@.
+  -> m ()
+glReplacementCodeuiVertex3fSUN v1 v2 v3 v4 = liftIO $ dyn733 ptr_glReplacementCodeuiVertex3fSUN v1 v2 v3 v4
+
+{-# NOINLINE ptr_glReplacementCodeuiVertex3fSUN #-}
+ptr_glReplacementCodeuiVertex3fSUN :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glReplacementCodeuiVertex3fSUN = unsafePerformIO $ getCommand "glReplacementCodeuiVertex3fSUN"
+
+-- glReplacementCodeuiVertex3fvSUN ---------------------------------------------
+
+glReplacementCodeuiVertex3fvSUN
+  :: MonadIO m
+  => Ptr GLuint -- ^ @rc@ pointing to @1@ element of type @ReplacementCodeSUN@.
+  -> Ptr GLfloat -- ^ @v@ pointing to @3@ elements of type @GLfloat@.
+  -> m ()
+glReplacementCodeuiVertex3fvSUN v1 v2 = liftIO $ dyn734 ptr_glReplacementCodeuiVertex3fvSUN v1 v2
+
+{-# NOINLINE ptr_glReplacementCodeuiVertex3fvSUN #-}
+ptr_glReplacementCodeuiVertex3fvSUN :: FunPtr (Ptr GLuint -> Ptr GLfloat -> IO ())
+ptr_glReplacementCodeuiVertex3fvSUN = unsafePerformIO $ getCommand "glReplacementCodeuiVertex3fvSUN"
+
+-- glReplacementCodeuivSUN -----------------------------------------------------
+
+glReplacementCodeuivSUN
+  :: MonadIO m
+  => Ptr GLuint -- ^ @code@ pointing to @COMPSIZE()@ elements of type @GLuint@.
+  -> m ()
+glReplacementCodeuivSUN v1 = liftIO $ dyn110 ptr_glReplacementCodeuivSUN v1
+
+{-# NOINLINE ptr_glReplacementCodeuivSUN #-}
+ptr_glReplacementCodeuivSUN :: FunPtr (Ptr GLuint -> IO ())
+ptr_glReplacementCodeuivSUN = unsafePerformIO $ getCommand "glReplacementCodeuivSUN"
+
+-- glReplacementCodeusSUN ------------------------------------------------------
+
+glReplacementCodeusSUN
+  :: MonadIO m
+  => GLushort -- ^ @code@.
+  -> m ()
+glReplacementCodeusSUN v1 = liftIO $ dyn487 ptr_glReplacementCodeusSUN v1
+
+{-# NOINLINE ptr_glReplacementCodeusSUN #-}
+ptr_glReplacementCodeusSUN :: FunPtr (GLushort -> IO ())
+ptr_glReplacementCodeusSUN = unsafePerformIO $ getCommand "glReplacementCodeusSUN"
+
+-- glReplacementCodeusvSUN -----------------------------------------------------
+
+glReplacementCodeusvSUN
+  :: MonadIO m
+  => Ptr GLushort -- ^ @code@ pointing to @COMPSIZE()@ elements of type @GLushort@.
+  -> m ()
+glReplacementCodeusvSUN v1 = liftIO $ dyn112 ptr_glReplacementCodeusvSUN v1
+
+{-# NOINLINE ptr_glReplacementCodeusvSUN #-}
+ptr_glReplacementCodeusvSUN :: FunPtr (Ptr GLushort -> IO ())
+ptr_glReplacementCodeusvSUN = unsafePerformIO $ getCommand "glReplacementCodeusvSUN"
+
+-- glRequestResidentProgramsNV -------------------------------------------------
+
+glRequestResidentProgramsNV
+  :: MonadIO m
+  => GLsizei -- ^ @n@.
+  -> Ptr GLuint -- ^ @programs@ pointing to @n@ elements of type @GLuint@.
+  -> m ()
+glRequestResidentProgramsNV v1 v2 = liftIO $ dyn200 ptr_glRequestResidentProgramsNV v1 v2
+
+{-# NOINLINE ptr_glRequestResidentProgramsNV #-}
+ptr_glRequestResidentProgramsNV :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glRequestResidentProgramsNV = unsafePerformIO $ getCommand "glRequestResidentProgramsNV"
+
+-- glResetHistogram ------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glResetHistogram.xml OpenGL 2.x>.
+glResetHistogram
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [HistogramTargetEXT](Graphics-GL-Groups.html#HistogramTargetEXT).
+  -> m ()
+glResetHistogram v1 = liftIO $ dyn5 ptr_glResetHistogram v1
+
+{-# NOINLINE ptr_glResetHistogram #-}
+ptr_glResetHistogram :: FunPtr (GLenum -> IO ())
+ptr_glResetHistogram = unsafePerformIO $ getCommand "glResetHistogram"
+
+-- glResetHistogramEXT ---------------------------------------------------------
+
+-- | This command is an alias for 'glResetHistogram'.
+glResetHistogramEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [HistogramTargetEXT](Graphics-GL-Groups.html#HistogramTargetEXT).
+  -> m ()
+glResetHistogramEXT v1 = liftIO $ dyn5 ptr_glResetHistogramEXT v1
+
+{-# NOINLINE ptr_glResetHistogramEXT #-}
+ptr_glResetHistogramEXT :: FunPtr (GLenum -> IO ())
+ptr_glResetHistogramEXT = unsafePerformIO $ getCommand "glResetHistogramEXT"
+
+-- glResetMemoryObjectParameterNV ----------------------------------------------
+
+glResetMemoryObjectParameterNV
+  :: MonadIO m
+  => GLuint -- ^ @memory@.
+  -> GLenum -- ^ @pname@.
+  -> m ()
+glResetMemoryObjectParameterNV v1 v2 = liftIO $ dyn18 ptr_glResetMemoryObjectParameterNV v1 v2
+
+{-# NOINLINE ptr_glResetMemoryObjectParameterNV #-}
+ptr_glResetMemoryObjectParameterNV :: FunPtr (GLuint -> GLenum -> IO ())
+ptr_glResetMemoryObjectParameterNV = unsafePerformIO $ getCommand "glResetMemoryObjectParameterNV"
+
+-- glResetMinmax ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glResetMinmax.xml OpenGL 2.x>.
+glResetMinmax
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [MinmaxTargetEXT](Graphics-GL-Groups.html#MinmaxTargetEXT).
+  -> m ()
+glResetMinmax v1 = liftIO $ dyn5 ptr_glResetMinmax v1
+
+{-# NOINLINE ptr_glResetMinmax #-}
+ptr_glResetMinmax :: FunPtr (GLenum -> IO ())
+ptr_glResetMinmax = unsafePerformIO $ getCommand "glResetMinmax"
+
+-- glResetMinmaxEXT ------------------------------------------------------------
+
+-- | This command is an alias for 'glResetMinmax'.
+glResetMinmaxEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [MinmaxTargetEXT](Graphics-GL-Groups.html#MinmaxTargetEXT).
+  -> m ()
+glResetMinmaxEXT v1 = liftIO $ dyn5 ptr_glResetMinmaxEXT v1
+
+{-# NOINLINE ptr_glResetMinmaxEXT #-}
+ptr_glResetMinmaxEXT :: FunPtr (GLenum -> IO ())
+ptr_glResetMinmaxEXT = unsafePerformIO $ getCommand "glResetMinmaxEXT"
+
+-- glResizeBuffersMESA ---------------------------------------------------------
+
+glResizeBuffersMESA
+  :: MonadIO m
+  => m ()
+glResizeBuffersMESA = liftIO $ dyn11 ptr_glResizeBuffersMESA
+
+{-# NOINLINE ptr_glResizeBuffersMESA #-}
+ptr_glResizeBuffersMESA :: FunPtr (IO ())
+ptr_glResizeBuffersMESA = unsafePerformIO $ getCommand "glResizeBuffersMESA"
+
+-- glResolveDepthValuesNV ------------------------------------------------------
+
+glResolveDepthValuesNV
+  :: MonadIO m
+  => m ()
+glResolveDepthValuesNV = liftIO $ dyn11 ptr_glResolveDepthValuesNV
+
+{-# NOINLINE ptr_glResolveDepthValuesNV #-}
+ptr_glResolveDepthValuesNV :: FunPtr (IO ())
+ptr_glResolveDepthValuesNV = unsafePerformIO $ getCommand "glResolveDepthValuesNV"
+
+-- glResolveMultisampleFramebufferAPPLE ----------------------------------------
+
+glResolveMultisampleFramebufferAPPLE
+  :: MonadIO m
+  => m ()
+glResolveMultisampleFramebufferAPPLE = liftIO $ dyn11 ptr_glResolveMultisampleFramebufferAPPLE
+
+{-# NOINLINE ptr_glResolveMultisampleFramebufferAPPLE #-}
+ptr_glResolveMultisampleFramebufferAPPLE :: FunPtr (IO ())
+ptr_glResolveMultisampleFramebufferAPPLE = unsafePerformIO $ getCommand "glResolveMultisampleFramebufferAPPLE"
+
+-- glResumeTransformFeedback ---------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glResumeTransformFeedback.xhtml OpenGL 4.x>.
+glResumeTransformFeedback
+  :: MonadIO m
+  => m ()
+glResumeTransformFeedback = liftIO $ dyn11 ptr_glResumeTransformFeedback
+
+{-# NOINLINE ptr_glResumeTransformFeedback #-}
+ptr_glResumeTransformFeedback :: FunPtr (IO ())
+ptr_glResumeTransformFeedback = unsafePerformIO $ getCommand "glResumeTransformFeedback"
+
+-- glResumeTransformFeedbackNV -------------------------------------------------
+
+-- | This command is an alias for 'glResumeTransformFeedback'.
+glResumeTransformFeedbackNV
+  :: MonadIO m
+  => m ()
+glResumeTransformFeedbackNV = liftIO $ dyn11 ptr_glResumeTransformFeedbackNV
+
+{-# NOINLINE ptr_glResumeTransformFeedbackNV #-}
+ptr_glResumeTransformFeedbackNV :: FunPtr (IO ())
+ptr_glResumeTransformFeedbackNV = unsafePerformIO $ getCommand "glResumeTransformFeedbackNV"
+
+-- glRotated -------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glRotate.xml OpenGL 2.x>.
+glRotated
+  :: MonadIO m
+  => GLdouble -- ^ @angle@.
+  -> GLdouble -- ^ @x@.
+  -> GLdouble -- ^ @y@.
+  -> GLdouble -- ^ @z@.
+  -> m ()
+glRotated v1 v2 v3 v4 = liftIO $ dyn116 ptr_glRotated v1 v2 v3 v4
+
+{-# NOINLINE ptr_glRotated #-}
+ptr_glRotated :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+ptr_glRotated = unsafePerformIO $ getCommand "glRotated"
+
+-- glRotatef -------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glRotate.xml OpenGL 2.x>.
+glRotatef
+  :: MonadIO m
+  => GLfloat -- ^ @angle@.
+  -> GLfloat -- ^ @x@.
+  -> GLfloat -- ^ @y@.
+  -> GLfloat -- ^ @z@.
+  -> m ()
+glRotatef v1 v2 v3 v4 = liftIO $ dyn52 ptr_glRotatef v1 v2 v3 v4
+
+{-# NOINLINE ptr_glRotatef #-}
+ptr_glRotatef :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glRotatef = unsafePerformIO $ getCommand "glRotatef"
+
+-- glRotatex -------------------------------------------------------------------
+
+glRotatex
+  :: MonadIO m
+  => GLfixed -- ^ @angle@.
+  -> GLfixed -- ^ @x@.
+  -> GLfixed -- ^ @y@.
+  -> GLfixed -- ^ @z@.
+  -> m ()
+glRotatex v1 v2 v3 v4 = liftIO $ dyn53 ptr_glRotatex v1 v2 v3 v4
+
+{-# NOINLINE ptr_glRotatex #-}
+ptr_glRotatex :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
+ptr_glRotatex = unsafePerformIO $ getCommand "glRotatex"
+
+-- glRotatexOES ----------------------------------------------------------------
+
+glRotatexOES
+  :: MonadIO m
+  => GLfixed -- ^ @angle@.
+  -> GLfixed -- ^ @x@.
+  -> GLfixed -- ^ @y@.
+  -> GLfixed -- ^ @z@.
+  -> m ()
+glRotatexOES v1 v2 v3 v4 = liftIO $ dyn53 ptr_glRotatexOES v1 v2 v3 v4
+
+{-# NOINLINE ptr_glRotatexOES #-}
+ptr_glRotatexOES :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
+ptr_glRotatexOES = unsafePerformIO $ getCommand "glRotatexOES"
+
+-- glSampleCoverage ------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glSampleCoverage.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glSampleCoverage.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glSampleCoverage.xhtml OpenGL 4.x>.
+glSampleCoverage
+  :: MonadIO m
+  => GLfloat -- ^ @value@.
+  -> GLboolean -- ^ @invert@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m ()
+glSampleCoverage v1 v2 = liftIO $ dyn735 ptr_glSampleCoverage v1 v2
+
+{-# NOINLINE ptr_glSampleCoverage #-}
+ptr_glSampleCoverage :: FunPtr (GLfloat -> GLboolean -> IO ())
+ptr_glSampleCoverage = unsafePerformIO $ getCommand "glSampleCoverage"
+
+-- glSampleCoverageARB ---------------------------------------------------------
+
+-- | This command is an alias for 'glSampleCoverage'.
+glSampleCoverageARB
+  :: MonadIO m
+  => GLfloat -- ^ @value@.
+  -> GLboolean -- ^ @invert@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m ()
+glSampleCoverageARB v1 v2 = liftIO $ dyn735 ptr_glSampleCoverageARB v1 v2
+
+{-# NOINLINE ptr_glSampleCoverageARB #-}
+ptr_glSampleCoverageARB :: FunPtr (GLfloat -> GLboolean -> IO ())
+ptr_glSampleCoverageARB = unsafePerformIO $ getCommand "glSampleCoverageARB"
+
+-- glSampleCoveragex -----------------------------------------------------------
+
+glSampleCoveragex
+  :: MonadIO m
+  => GLclampx -- ^ @value@.
+  -> GLboolean -- ^ @invert@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m ()
+glSampleCoveragex v1 v2 = liftIO $ dyn736 ptr_glSampleCoveragex v1 v2
+
+{-# NOINLINE ptr_glSampleCoveragex #-}
+ptr_glSampleCoveragex :: FunPtr (GLclampx -> GLboolean -> IO ())
+ptr_glSampleCoveragex = unsafePerformIO $ getCommand "glSampleCoveragex"
+
+-- glSampleCoveragexOES --------------------------------------------------------
+
+glSampleCoveragexOES
+  :: MonadIO m
+  => GLclampx -- ^ @value@.
+  -> GLboolean -- ^ @invert@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m ()
+glSampleCoveragexOES v1 v2 = liftIO $ dyn736 ptr_glSampleCoveragexOES v1 v2
+
+{-# NOINLINE ptr_glSampleCoveragexOES #-}
+ptr_glSampleCoveragexOES :: FunPtr (GLclampx -> GLboolean -> IO ())
+ptr_glSampleCoveragexOES = unsafePerformIO $ getCommand "glSampleCoveragexOES"
+
+-- glSampleMapATI --------------------------------------------------------------
+
+glSampleMapATI
+  :: MonadIO m
+  => GLuint -- ^ @dst@.
+  -> GLuint -- ^ @interp@.
+  -> GLenum -- ^ @swizzle@ of type [SwizzleOpATI](Graphics-GL-Groups.html#SwizzleOpATI).
+  -> m ()
+glSampleMapATI v1 v2 v3 = liftIO $ dyn635 ptr_glSampleMapATI v1 v2 v3
+
+{-# NOINLINE ptr_glSampleMapATI #-}
+ptr_glSampleMapATI :: FunPtr (GLuint -> GLuint -> GLenum -> IO ())
+ptr_glSampleMapATI = unsafePerformIO $ getCommand "glSampleMapATI"
+
+-- glSampleMaskEXT -------------------------------------------------------------
+
+glSampleMaskEXT
+  :: MonadIO m
+  => GLclampf -- ^ @value@ of type @ClampedFloat32@.
+  -> GLboolean -- ^ @invert@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m ()
+glSampleMaskEXT v1 v2 = liftIO $ dyn737 ptr_glSampleMaskEXT v1 v2
+
+{-# NOINLINE ptr_glSampleMaskEXT #-}
+ptr_glSampleMaskEXT :: FunPtr (GLclampf -> GLboolean -> IO ())
+ptr_glSampleMaskEXT = unsafePerformIO $ getCommand "glSampleMaskEXT"
+
+-- glSampleMaskIndexedNV -------------------------------------------------------
+
+glSampleMaskIndexedNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLbitfield -- ^ @mask@ of type @SampleMaskNV@.
+  -> m ()
+glSampleMaskIndexedNV v1 v2 = liftIO $ dyn606 ptr_glSampleMaskIndexedNV v1 v2
+
+{-# NOINLINE ptr_glSampleMaskIndexedNV #-}
+ptr_glSampleMaskIndexedNV :: FunPtr (GLuint -> GLbitfield -> IO ())
+ptr_glSampleMaskIndexedNV = unsafePerformIO $ getCommand "glSampleMaskIndexedNV"
+
+-- glSampleMaskSGIS ------------------------------------------------------------
+
+-- | This command is an alias for 'glSampleMaskEXT'.
+glSampleMaskSGIS
+  :: MonadIO m
+  => GLclampf -- ^ @value@ of type @ClampedFloat32@.
+  -> GLboolean -- ^ @invert@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m ()
+glSampleMaskSGIS v1 v2 = liftIO $ dyn737 ptr_glSampleMaskSGIS v1 v2
+
+{-# NOINLINE ptr_glSampleMaskSGIS #-}
+ptr_glSampleMaskSGIS :: FunPtr (GLclampf -> GLboolean -> IO ())
+ptr_glSampleMaskSGIS = unsafePerformIO $ getCommand "glSampleMaskSGIS"
+
+-- glSampleMaski ---------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glSampleMaski.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glSampleMaski.xhtml OpenGL 4.x>.
+glSampleMaski
+  :: MonadIO m
+  => GLuint -- ^ @maskNumber@.
+  -> GLbitfield -- ^ @mask@.
+  -> m ()
+glSampleMaski v1 v2 = liftIO $ dyn606 ptr_glSampleMaski v1 v2
+
+{-# NOINLINE ptr_glSampleMaski #-}
+ptr_glSampleMaski :: FunPtr (GLuint -> GLbitfield -> IO ())
+ptr_glSampleMaski = unsafePerformIO $ getCommand "glSampleMaski"
+
+-- glSamplePatternEXT ----------------------------------------------------------
+
+glSamplePatternEXT
+  :: MonadIO m
+  => GLenum -- ^ @pattern@ of type [SamplePatternEXT](Graphics-GL-Groups.html#SamplePatternEXT).
+  -> m ()
+glSamplePatternEXT v1 = liftIO $ dyn5 ptr_glSamplePatternEXT v1
+
+{-# NOINLINE ptr_glSamplePatternEXT #-}
+ptr_glSamplePatternEXT :: FunPtr (GLenum -> IO ())
+ptr_glSamplePatternEXT = unsafePerformIO $ getCommand "glSamplePatternEXT"
+
+-- glSamplePatternSGIS ---------------------------------------------------------
+
+-- | This command is an alias for 'glSamplePatternEXT'.
+glSamplePatternSGIS
+  :: MonadIO m
+  => GLenum -- ^ @pattern@ of type [SamplePatternSGIS](Graphics-GL-Groups.html#SamplePatternSGIS).
+  -> m ()
+glSamplePatternSGIS v1 = liftIO $ dyn5 ptr_glSamplePatternSGIS v1
+
+{-# NOINLINE ptr_glSamplePatternSGIS #-}
+ptr_glSamplePatternSGIS :: FunPtr (GLenum -> IO ())
+ptr_glSamplePatternSGIS = unsafePerformIO $ getCommand "glSamplePatternSGIS"
+
+-- glSamplerParameterIiv -------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glSamplerParameter.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glSamplerParameter.xhtml OpenGL 4.x>.
+glSamplerParameterIiv
+  :: MonadIO m
+  => GLuint -- ^ @sampler@.
+  -> GLenum -- ^ @pname@ of type [SamplerParameterI](Graphics-GL-Groups.html#SamplerParameterI).
+  -> Ptr GLint -- ^ @param@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glSamplerParameterIiv v1 v2 v3 = liftIO $ dyn348 ptr_glSamplerParameterIiv v1 v2 v3
+
+{-# NOINLINE ptr_glSamplerParameterIiv #-}
+ptr_glSamplerParameterIiv :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glSamplerParameterIiv = unsafePerformIO $ getCommand "glSamplerParameterIiv"
+
+-- glSamplerParameterIivEXT ----------------------------------------------------
+
+-- | This command is an alias for 'glSamplerParameterIiv'.
+glSamplerParameterIivEXT
+  :: MonadIO m
+  => GLuint -- ^ @sampler@.
+  -> GLenum -- ^ @pname@ of type [SamplerParameterI](Graphics-GL-Groups.html#SamplerParameterI).
+  -> Ptr GLint -- ^ @param@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glSamplerParameterIivEXT v1 v2 v3 = liftIO $ dyn348 ptr_glSamplerParameterIivEXT v1 v2 v3
+
+{-# NOINLINE ptr_glSamplerParameterIivEXT #-}
+ptr_glSamplerParameterIivEXT :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glSamplerParameterIivEXT = unsafePerformIO $ getCommand "glSamplerParameterIivEXT"
+
+-- glSamplerParameterIivOES ----------------------------------------------------
+
+-- | This command is an alias for 'glSamplerParameterIiv'.
+glSamplerParameterIivOES
+  :: MonadIO m
+  => GLuint -- ^ @sampler@.
+  -> GLenum -- ^ @pname@ of type [SamplerParameterI](Graphics-GL-Groups.html#SamplerParameterI).
+  -> Ptr GLint -- ^ @param@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glSamplerParameterIivOES v1 v2 v3 = liftIO $ dyn348 ptr_glSamplerParameterIivOES v1 v2 v3
+
+{-# NOINLINE ptr_glSamplerParameterIivOES #-}
+ptr_glSamplerParameterIivOES :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glSamplerParameterIivOES = unsafePerformIO $ getCommand "glSamplerParameterIivOES"
+
+-- glSamplerParameterIuiv ------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glSamplerParameter.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glSamplerParameter.xhtml OpenGL 4.x>.
+glSamplerParameterIuiv
+  :: MonadIO m
+  => GLuint -- ^ @sampler@.
+  -> GLenum -- ^ @pname@ of type [SamplerParameterI](Graphics-GL-Groups.html#SamplerParameterI).
+  -> Ptr GLuint -- ^ @param@ pointing to @COMPSIZE(pname)@ elements of type @GLuint@.
+  -> m ()
+glSamplerParameterIuiv v1 v2 v3 = liftIO $ dyn392 ptr_glSamplerParameterIuiv v1 v2 v3
+
+{-# NOINLINE ptr_glSamplerParameterIuiv #-}
+ptr_glSamplerParameterIuiv :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
+ptr_glSamplerParameterIuiv = unsafePerformIO $ getCommand "glSamplerParameterIuiv"
+
+-- glSamplerParameterIuivEXT ---------------------------------------------------
+
+-- | This command is an alias for 'glSamplerParameterIuiv'.
+glSamplerParameterIuivEXT
+  :: MonadIO m
+  => GLuint -- ^ @sampler@.
+  -> GLenum -- ^ @pname@ of type [SamplerParameterI](Graphics-GL-Groups.html#SamplerParameterI).
+  -> Ptr GLuint -- ^ @param@ pointing to @COMPSIZE(pname)@ elements of type @GLuint@.
+  -> m ()
+glSamplerParameterIuivEXT v1 v2 v3 = liftIO $ dyn392 ptr_glSamplerParameterIuivEXT v1 v2 v3
+
+{-# NOINLINE ptr_glSamplerParameterIuivEXT #-}
+ptr_glSamplerParameterIuivEXT :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
+ptr_glSamplerParameterIuivEXT = unsafePerformIO $ getCommand "glSamplerParameterIuivEXT"
+
+-- glSamplerParameterIuivOES ---------------------------------------------------
+
+-- | This command is an alias for 'glSamplerParameterIuiv'.
+glSamplerParameterIuivOES
+  :: MonadIO m
+  => GLuint -- ^ @sampler@.
+  -> GLenum -- ^ @pname@ of type [SamplerParameterI](Graphics-GL-Groups.html#SamplerParameterI).
+  -> Ptr GLuint -- ^ @param@ pointing to @COMPSIZE(pname)@ elements of type @GLuint@.
+  -> m ()
+glSamplerParameterIuivOES v1 v2 v3 = liftIO $ dyn392 ptr_glSamplerParameterIuivOES v1 v2 v3
+
+{-# NOINLINE ptr_glSamplerParameterIuivOES #-}
+ptr_glSamplerParameterIuivOES :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
+ptr_glSamplerParameterIuivOES = unsafePerformIO $ getCommand "glSamplerParameterIuivOES"
+
+-- glSamplerParameterf ---------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glSamplerParameter.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glSamplerParameter.xhtml OpenGL 4.x>.
+glSamplerParameterf
+  :: MonadIO m
+  => GLuint -- ^ @sampler@.
+  -> GLenum -- ^ @pname@ of type [SamplerParameterF](Graphics-GL-Groups.html#SamplerParameterF).
+  -> GLfloat -- ^ @param@.
+  -> m ()
+glSamplerParameterf v1 v2 v3 = liftIO $ dyn514 ptr_glSamplerParameterf v1 v2 v3
+
+{-# NOINLINE ptr_glSamplerParameterf #-}
+ptr_glSamplerParameterf :: FunPtr (GLuint -> GLenum -> GLfloat -> IO ())
+ptr_glSamplerParameterf = unsafePerformIO $ getCommand "glSamplerParameterf"
+
+-- glSamplerParameterfv --------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glSamplerParameter.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glSamplerParameter.xhtml OpenGL 4.x>.
+glSamplerParameterfv
+  :: MonadIO m
+  => GLuint -- ^ @sampler@.
+  -> GLenum -- ^ @pname@ of type [SamplerParameterF](Graphics-GL-Groups.html#SamplerParameterF).
+  -> Ptr GLfloat -- ^ @param@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
+  -> m ()
+glSamplerParameterfv v1 v2 v3 = liftIO $ dyn364 ptr_glSamplerParameterfv v1 v2 v3
+
+{-# NOINLINE ptr_glSamplerParameterfv #-}
+ptr_glSamplerParameterfv :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glSamplerParameterfv = unsafePerformIO $ getCommand "glSamplerParameterfv"
+
+-- glSamplerParameteri ---------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glSamplerParameter.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glSamplerParameter.xhtml OpenGL 4.x>.
+glSamplerParameteri
+  :: MonadIO m
+  => GLuint -- ^ @sampler@.
+  -> GLenum -- ^ @pname@ of type [SamplerParameterI](Graphics-GL-Groups.html#SamplerParameterI).
+  -> GLint -- ^ @param@.
+  -> m ()
+glSamplerParameteri v1 v2 v3 = liftIO $ dyn491 ptr_glSamplerParameteri v1 v2 v3
+
+{-# NOINLINE ptr_glSamplerParameteri #-}
+ptr_glSamplerParameteri :: FunPtr (GLuint -> GLenum -> GLint -> IO ())
+ptr_glSamplerParameteri = unsafePerformIO $ getCommand "glSamplerParameteri"
+
+-- glSamplerParameteriv --------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glSamplerParameter.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glSamplerParameter.xhtml OpenGL 4.x>.
+glSamplerParameteriv
+  :: MonadIO m
+  => GLuint -- ^ @sampler@.
+  -> GLenum -- ^ @pname@ of type [SamplerParameterI](Graphics-GL-Groups.html#SamplerParameterI).
+  -> Ptr GLint -- ^ @param@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glSamplerParameteriv v1 v2 v3 = liftIO $ dyn348 ptr_glSamplerParameteriv v1 v2 v3
+
+{-# NOINLINE ptr_glSamplerParameteriv #-}
+ptr_glSamplerParameteriv :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glSamplerParameteriv = unsafePerformIO $ getCommand "glSamplerParameteriv"
+
+-- glScaled --------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glScale.xml OpenGL 2.x>.
+glScaled
+  :: MonadIO m
+  => GLdouble -- ^ @x@.
+  -> GLdouble -- ^ @y@.
+  -> GLdouble -- ^ @z@.
+  -> m ()
+glScaled v1 v2 v3 = liftIO $ dyn41 ptr_glScaled v1 v2 v3
+
+{-# NOINLINE ptr_glScaled #-}
+ptr_glScaled :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
+ptr_glScaled = unsafePerformIO $ getCommand "glScaled"
+
+-- glScalef --------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glScale.xml OpenGL 2.x>.
+glScalef
+  :: MonadIO m
+  => GLfloat -- ^ @x@.
+  -> GLfloat -- ^ @y@.
+  -> GLfloat -- ^ @z@.
+  -> m ()
+glScalef v1 v2 v3 = liftIO $ dyn43 ptr_glScalef v1 v2 v3
+
+{-# NOINLINE ptr_glScalef #-}
+ptr_glScalef :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glScalef = unsafePerformIO $ getCommand "glScalef"
+
+-- glScalex --------------------------------------------------------------------
+
+glScalex
+  :: MonadIO m
+  => GLfixed -- ^ @x@.
+  -> GLfixed -- ^ @y@.
+  -> GLfixed -- ^ @z@.
+  -> m ()
+glScalex v1 v2 v3 = liftIO $ dyn113 ptr_glScalex v1 v2 v3
+
+{-# NOINLINE ptr_glScalex #-}
+ptr_glScalex :: FunPtr (GLfixed -> GLfixed -> GLfixed -> IO ())
+ptr_glScalex = unsafePerformIO $ getCommand "glScalex"
+
+-- glScalexOES -----------------------------------------------------------------
+
+glScalexOES
+  :: MonadIO m
+  => GLfixed -- ^ @x@.
+  -> GLfixed -- ^ @y@.
+  -> GLfixed -- ^ @z@.
+  -> m ()
+glScalexOES v1 v2 v3 = liftIO $ dyn113 ptr_glScalexOES v1 v2 v3
+
+{-# NOINLINE ptr_glScalexOES #-}
+ptr_glScalexOES :: FunPtr (GLfixed -> GLfixed -> GLfixed -> IO ())
+ptr_glScalexOES = unsafePerformIO $ getCommand "glScalexOES"
+
diff --git a/src/Graphics/GL/Functions/F24.hs b/src/Graphics/GL/Functions/F24.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Functions/F24.hs
@@ -0,0 +1,1571 @@
+{-# OPTIONS_HADDOCK hide #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Functions.F24
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- Raw functions from the
+-- <http://www.opengl.org/registry/ OpenGL registry>.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Functions.F24 (
+  glScissor,
+  glScissorArrayv,
+  glScissorArrayvNV,
+  glScissorArrayvOES,
+  glScissorExclusiveArrayvNV,
+  glScissorExclusiveNV,
+  glScissorIndexed,
+  glScissorIndexedNV,
+  glScissorIndexedOES,
+  glScissorIndexedv,
+  glScissorIndexedvNV,
+  glScissorIndexedvOES,
+  glSecondaryColor3b,
+  glSecondaryColor3bEXT,
+  glSecondaryColor3bv,
+  glSecondaryColor3bvEXT,
+  glSecondaryColor3d,
+  glSecondaryColor3dEXT,
+  glSecondaryColor3dv,
+  glSecondaryColor3dvEXT,
+  glSecondaryColor3f,
+  glSecondaryColor3fEXT,
+  glSecondaryColor3fv,
+  glSecondaryColor3fvEXT,
+  glSecondaryColor3hNV,
+  glSecondaryColor3hvNV,
+  glSecondaryColor3i,
+  glSecondaryColor3iEXT,
+  glSecondaryColor3iv,
+  glSecondaryColor3ivEXT,
+  glSecondaryColor3s,
+  glSecondaryColor3sEXT,
+  glSecondaryColor3sv,
+  glSecondaryColor3svEXT,
+  glSecondaryColor3ub,
+  glSecondaryColor3ubEXT,
+  glSecondaryColor3ubv,
+  glSecondaryColor3ubvEXT,
+  glSecondaryColor3ui,
+  glSecondaryColor3uiEXT,
+  glSecondaryColor3uiv,
+  glSecondaryColor3uivEXT,
+  glSecondaryColor3us,
+  glSecondaryColor3usEXT,
+  glSecondaryColor3usv,
+  glSecondaryColor3usvEXT,
+  glSecondaryColorFormatNV,
+  glSecondaryColorP3ui,
+  glSecondaryColorP3uiv,
+  glSecondaryColorPointer,
+  glSecondaryColorPointerEXT,
+  glSecondaryColorPointerListIBM,
+  glSelectBuffer,
+  glSelectPerfMonitorCountersAMD,
+  glSemaphoreParameterui64vEXT,
+  glSeparableFilter2D,
+  glSeparableFilter2DEXT,
+  glSetFenceAPPLE,
+  glSetFenceNV,
+  glSetFragmentShaderConstantATI,
+  glSetInvariantEXT,
+  glSetLocalConstantEXT,
+  glSetMultisamplefvAMD,
+  glShadeModel,
+  glShaderBinary,
+  glShaderOp1EXT,
+  glShaderOp2EXT,
+  glShaderOp3EXT,
+  glShaderSource,
+  glShaderSourceARB,
+  glShaderStorageBlockBinding,
+  glShadingRateImageBarrierNV,
+  glShadingRateImagePaletteNV,
+  glShadingRateSampleOrderCustomNV,
+  glShadingRateSampleOrderNV,
+  glSharpenTexFuncSGIS,
+  glSignalSemaphoreEXT,
+  glSignalSemaphoreui64NVX,
+  glSignalVkFenceNV,
+  glSignalVkSemaphoreNV,
+  glSpecializeShader,
+  glSpecializeShaderARB,
+  glSpriteParameterfSGIX,
+  glSpriteParameterfvSGIX,
+  glSpriteParameteriSGIX,
+  glSpriteParameterivSGIX,
+  glStartInstrumentsSGIX,
+  glStartTilingQCOM,
+  glStateCaptureNV,
+  glStencilClearTagEXT,
+  glStencilFillPathInstancedNV,
+  glStencilFillPathNV,
+  glStencilFunc,
+  glStencilFuncSeparate,
+  glStencilFuncSeparateATI,
+  glStencilMask,
+  glStencilMaskSeparate,
+  glStencilOp,
+  glStencilOpSeparate,
+  glStencilOpSeparateATI
+) where
+
+import Control.Monad.IO.Class ( MonadIO(..) )
+import Foreign.Ptr
+import Graphics.GL.Foreign
+import Graphics.GL.Types
+import System.IO.Unsafe ( unsafePerformIO )
+
+-- glScissor -------------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glScissor.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glScissor.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glScissor.xhtml OpenGL 4.x>.
+glScissor
+  :: MonadIO m
+  => GLint -- ^ @x@ of type @WinCoord@.
+  -> GLint -- ^ @y@ of type @WinCoord@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> m ()
+glScissor v1 v2 v3 v4 = liftIO $ dyn738 ptr_glScissor v1 v2 v3 v4
+
+{-# NOINLINE ptr_glScissor #-}
+ptr_glScissor :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+ptr_glScissor = unsafePerformIO $ getCommand "glScissor"
+
+-- glScissorArrayv -------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glScissorArray.xhtml OpenGL 4.x>.
+glScissorArrayv
+  :: MonadIO m
+  => GLuint -- ^ @first@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLint -- ^ @v@ pointing to @COMPSIZE(count)@ elements of type @GLint@.
+  -> m ()
+glScissorArrayv v1 v2 v3 = liftIO $ dyn739 ptr_glScissorArrayv v1 v2 v3
+
+{-# NOINLINE ptr_glScissorArrayv #-}
+ptr_glScissorArrayv :: FunPtr (GLuint -> GLsizei -> Ptr GLint -> IO ())
+ptr_glScissorArrayv = unsafePerformIO $ getCommand "glScissorArrayv"
+
+-- glScissorArrayvNV -----------------------------------------------------------
+
+-- | This command is an alias for 'glScissorArrayv'.
+glScissorArrayvNV
+  :: MonadIO m
+  => GLuint -- ^ @first@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLint -- ^ @v@ pointing to @COMPSIZE(count)@ elements of type @GLint@.
+  -> m ()
+glScissorArrayvNV v1 v2 v3 = liftIO $ dyn739 ptr_glScissorArrayvNV v1 v2 v3
+
+{-# NOINLINE ptr_glScissorArrayvNV #-}
+ptr_glScissorArrayvNV :: FunPtr (GLuint -> GLsizei -> Ptr GLint -> IO ())
+ptr_glScissorArrayvNV = unsafePerformIO $ getCommand "glScissorArrayvNV"
+
+-- glScissorArrayvOES ----------------------------------------------------------
+
+-- | This command is an alias for 'glScissorArrayv'.
+glScissorArrayvOES
+  :: MonadIO m
+  => GLuint -- ^ @first@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLint -- ^ @v@ pointing to @COMPSIZE(count)@ elements of type @GLint@.
+  -> m ()
+glScissorArrayvOES v1 v2 v3 = liftIO $ dyn739 ptr_glScissorArrayvOES v1 v2 v3
+
+{-# NOINLINE ptr_glScissorArrayvOES #-}
+ptr_glScissorArrayvOES :: FunPtr (GLuint -> GLsizei -> Ptr GLint -> IO ())
+ptr_glScissorArrayvOES = unsafePerformIO $ getCommand "glScissorArrayvOES"
+
+-- glScissorExclusiveArrayvNV --------------------------------------------------
+
+glScissorExclusiveArrayvNV
+  :: MonadIO m
+  => GLuint -- ^ @first@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLint -- ^ @v@ pointing to @COMPSIZE(count)@ elements of type @GLint@.
+  -> m ()
+glScissorExclusiveArrayvNV v1 v2 v3 = liftIO $ dyn739 ptr_glScissorExclusiveArrayvNV v1 v2 v3
+
+{-# NOINLINE ptr_glScissorExclusiveArrayvNV #-}
+ptr_glScissorExclusiveArrayvNV :: FunPtr (GLuint -> GLsizei -> Ptr GLint -> IO ())
+ptr_glScissorExclusiveArrayvNV = unsafePerformIO $ getCommand "glScissorExclusiveArrayvNV"
+
+-- glScissorExclusiveNV --------------------------------------------------------
+
+glScissorExclusiveNV
+  :: MonadIO m
+  => GLint -- ^ @x@ of type @WinCoord@.
+  -> GLint -- ^ @y@ of type @WinCoord@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> m ()
+glScissorExclusiveNV v1 v2 v3 v4 = liftIO $ dyn738 ptr_glScissorExclusiveNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glScissorExclusiveNV #-}
+ptr_glScissorExclusiveNV :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+ptr_glScissorExclusiveNV = unsafePerformIO $ getCommand "glScissorExclusiveNV"
+
+-- glScissorIndexed ------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glScissorIndexed.xhtml OpenGL 4.x>.
+glScissorIndexed
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLint -- ^ @left@.
+  -> GLint -- ^ @bottom@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> m ()
+glScissorIndexed v1 v2 v3 v4 v5 = liftIO $ dyn740 ptr_glScissorIndexed v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glScissorIndexed #-}
+ptr_glScissorIndexed :: FunPtr (GLuint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+ptr_glScissorIndexed = unsafePerformIO $ getCommand "glScissorIndexed"
+
+-- glScissorIndexedNV ----------------------------------------------------------
+
+-- | This command is an alias for 'glScissorIndexed'.
+glScissorIndexedNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLint -- ^ @left@.
+  -> GLint -- ^ @bottom@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> m ()
+glScissorIndexedNV v1 v2 v3 v4 v5 = liftIO $ dyn740 ptr_glScissorIndexedNV v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glScissorIndexedNV #-}
+ptr_glScissorIndexedNV :: FunPtr (GLuint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+ptr_glScissorIndexedNV = unsafePerformIO $ getCommand "glScissorIndexedNV"
+
+-- glScissorIndexedOES ---------------------------------------------------------
+
+-- | This command is an alias for 'glScissorIndexed'.
+glScissorIndexedOES
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLint -- ^ @left@.
+  -> GLint -- ^ @bottom@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> m ()
+glScissorIndexedOES v1 v2 v3 v4 v5 = liftIO $ dyn740 ptr_glScissorIndexedOES v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glScissorIndexedOES #-}
+ptr_glScissorIndexedOES :: FunPtr (GLuint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+ptr_glScissorIndexedOES = unsafePerformIO $ getCommand "glScissorIndexedOES"
+
+-- glScissorIndexedv -----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glScissorIndexed.xhtml OpenGL 4.x>.
+glScissorIndexedv
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLint -- ^ @v@ pointing to @4@ elements of type @GLint@.
+  -> m ()
+glScissorIndexedv v1 v2 = liftIO $ dyn741 ptr_glScissorIndexedv v1 v2
+
+{-# NOINLINE ptr_glScissorIndexedv #-}
+ptr_glScissorIndexedv :: FunPtr (GLuint -> Ptr GLint -> IO ())
+ptr_glScissorIndexedv = unsafePerformIO $ getCommand "glScissorIndexedv"
+
+-- glScissorIndexedvNV ---------------------------------------------------------
+
+-- | This command is an alias for 'glScissorIndexedv'.
+glScissorIndexedvNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLint -- ^ @v@ pointing to @4@ elements of type @GLint@.
+  -> m ()
+glScissorIndexedvNV v1 v2 = liftIO $ dyn741 ptr_glScissorIndexedvNV v1 v2
+
+{-# NOINLINE ptr_glScissorIndexedvNV #-}
+ptr_glScissorIndexedvNV :: FunPtr (GLuint -> Ptr GLint -> IO ())
+ptr_glScissorIndexedvNV = unsafePerformIO $ getCommand "glScissorIndexedvNV"
+
+-- glScissorIndexedvOES --------------------------------------------------------
+
+-- | This command is an alias for 'glScissorIndexedv'.
+glScissorIndexedvOES
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLint -- ^ @v@ pointing to @4@ elements of type @GLint@.
+  -> m ()
+glScissorIndexedvOES v1 v2 = liftIO $ dyn741 ptr_glScissorIndexedvOES v1 v2
+
+{-# NOINLINE ptr_glScissorIndexedvOES #-}
+ptr_glScissorIndexedvOES :: FunPtr (GLuint -> Ptr GLint -> IO ())
+ptr_glScissorIndexedvOES = unsafePerformIO $ getCommand "glScissorIndexedvOES"
+
+-- glSecondaryColor3b ----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor.xml OpenGL 2.x>. The vector equivalent of this command is 'glSecondaryColor3bv'.
+glSecondaryColor3b
+  :: MonadIO m
+  => GLbyte -- ^ @red@ of type @ColorB@.
+  -> GLbyte -- ^ @green@ of type @ColorB@.
+  -> GLbyte -- ^ @blue@ of type @ColorB@.
+  -> m ()
+glSecondaryColor3b v1 v2 v3 = liftIO $ dyn39 ptr_glSecondaryColor3b v1 v2 v3
+
+{-# NOINLINE ptr_glSecondaryColor3b #-}
+ptr_glSecondaryColor3b :: FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
+ptr_glSecondaryColor3b = unsafePerformIO $ getCommand "glSecondaryColor3b"
+
+-- glSecondaryColor3bEXT -------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glSecondaryColor3bvEXT'. This command is an alias for 'glSecondaryColor3b'.
+glSecondaryColor3bEXT
+  :: MonadIO m
+  => GLbyte -- ^ @red@ of type @ColorB@.
+  -> GLbyte -- ^ @green@ of type @ColorB@.
+  -> GLbyte -- ^ @blue@ of type @ColorB@.
+  -> m ()
+glSecondaryColor3bEXT v1 v2 v3 = liftIO $ dyn39 ptr_glSecondaryColor3bEXT v1 v2 v3
+
+{-# NOINLINE ptr_glSecondaryColor3bEXT #-}
+ptr_glSecondaryColor3bEXT :: FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
+ptr_glSecondaryColor3bEXT = unsafePerformIO $ getCommand "glSecondaryColor3bEXT"
+
+-- glSecondaryColor3bv ---------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor.xml OpenGL 2.x>.
+glSecondaryColor3bv
+  :: MonadIO m
+  => Ptr GLbyte -- ^ @v@ pointing to @3@ elements of type @ColorB@.
+  -> m ()
+glSecondaryColor3bv v1 = liftIO $ dyn40 ptr_glSecondaryColor3bv v1
+
+{-# NOINLINE ptr_glSecondaryColor3bv #-}
+ptr_glSecondaryColor3bv :: FunPtr (Ptr GLbyte -> IO ())
+ptr_glSecondaryColor3bv = unsafePerformIO $ getCommand "glSecondaryColor3bv"
+
+-- glSecondaryColor3bvEXT ------------------------------------------------------
+
+-- | This command is an alias for 'glSecondaryColor3bv'.
+glSecondaryColor3bvEXT
+  :: MonadIO m
+  => Ptr GLbyte -- ^ @v@ pointing to @3@ elements of type @ColorB@.
+  -> m ()
+glSecondaryColor3bvEXT v1 = liftIO $ dyn40 ptr_glSecondaryColor3bvEXT v1
+
+{-# NOINLINE ptr_glSecondaryColor3bvEXT #-}
+ptr_glSecondaryColor3bvEXT :: FunPtr (Ptr GLbyte -> IO ())
+ptr_glSecondaryColor3bvEXT = unsafePerformIO $ getCommand "glSecondaryColor3bvEXT"
+
+-- glSecondaryColor3d ----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor.xml OpenGL 2.x>. The vector equivalent of this command is 'glSecondaryColor3dv'.
+glSecondaryColor3d
+  :: MonadIO m
+  => GLdouble -- ^ @red@ of type @ColorD@.
+  -> GLdouble -- ^ @green@ of type @ColorD@.
+  -> GLdouble -- ^ @blue@ of type @ColorD@.
+  -> m ()
+glSecondaryColor3d v1 v2 v3 = liftIO $ dyn41 ptr_glSecondaryColor3d v1 v2 v3
+
+{-# NOINLINE ptr_glSecondaryColor3d #-}
+ptr_glSecondaryColor3d :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
+ptr_glSecondaryColor3d = unsafePerformIO $ getCommand "glSecondaryColor3d"
+
+-- glSecondaryColor3dEXT -------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glSecondaryColor3dvEXT'. This command is an alias for 'glSecondaryColor3d'.
+glSecondaryColor3dEXT
+  :: MonadIO m
+  => GLdouble -- ^ @red@ of type @ColorD@.
+  -> GLdouble -- ^ @green@ of type @ColorD@.
+  -> GLdouble -- ^ @blue@ of type @ColorD@.
+  -> m ()
+glSecondaryColor3dEXT v1 v2 v3 = liftIO $ dyn41 ptr_glSecondaryColor3dEXT v1 v2 v3
+
+{-# NOINLINE ptr_glSecondaryColor3dEXT #-}
+ptr_glSecondaryColor3dEXT :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
+ptr_glSecondaryColor3dEXT = unsafePerformIO $ getCommand "glSecondaryColor3dEXT"
+
+-- glSecondaryColor3dv ---------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor.xml OpenGL 2.x>.
+glSecondaryColor3dv
+  :: MonadIO m
+  => Ptr GLdouble -- ^ @v@ pointing to @3@ elements of type @ColorD@.
+  -> m ()
+glSecondaryColor3dv v1 = liftIO $ dyn42 ptr_glSecondaryColor3dv v1
+
+{-# NOINLINE ptr_glSecondaryColor3dv #-}
+ptr_glSecondaryColor3dv :: FunPtr (Ptr GLdouble -> IO ())
+ptr_glSecondaryColor3dv = unsafePerformIO $ getCommand "glSecondaryColor3dv"
+
+-- glSecondaryColor3dvEXT ------------------------------------------------------
+
+-- | This command is an alias for 'glSecondaryColor3dv'.
+glSecondaryColor3dvEXT
+  :: MonadIO m
+  => Ptr GLdouble -- ^ @v@ pointing to @3@ elements of type @ColorD@.
+  -> m ()
+glSecondaryColor3dvEXT v1 = liftIO $ dyn42 ptr_glSecondaryColor3dvEXT v1
+
+{-# NOINLINE ptr_glSecondaryColor3dvEXT #-}
+ptr_glSecondaryColor3dvEXT :: FunPtr (Ptr GLdouble -> IO ())
+ptr_glSecondaryColor3dvEXT = unsafePerformIO $ getCommand "glSecondaryColor3dvEXT"
+
+-- glSecondaryColor3f ----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor.xml OpenGL 2.x>. The vector equivalent of this command is 'glSecondaryColor3fv'.
+glSecondaryColor3f
+  :: MonadIO m
+  => GLfloat -- ^ @red@ of type @ColorF@.
+  -> GLfloat -- ^ @green@ of type @ColorF@.
+  -> GLfloat -- ^ @blue@ of type @ColorF@.
+  -> m ()
+glSecondaryColor3f v1 v2 v3 = liftIO $ dyn43 ptr_glSecondaryColor3f v1 v2 v3
+
+{-# NOINLINE ptr_glSecondaryColor3f #-}
+ptr_glSecondaryColor3f :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glSecondaryColor3f = unsafePerformIO $ getCommand "glSecondaryColor3f"
+
+-- glSecondaryColor3fEXT -------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glSecondaryColor3fvEXT'. This command is an alias for 'glSecondaryColor3f'.
+glSecondaryColor3fEXT
+  :: MonadIO m
+  => GLfloat -- ^ @red@ of type @ColorF@.
+  -> GLfloat -- ^ @green@ of type @ColorF@.
+  -> GLfloat -- ^ @blue@ of type @ColorF@.
+  -> m ()
+glSecondaryColor3fEXT v1 v2 v3 = liftIO $ dyn43 ptr_glSecondaryColor3fEXT v1 v2 v3
+
+{-# NOINLINE ptr_glSecondaryColor3fEXT #-}
+ptr_glSecondaryColor3fEXT :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glSecondaryColor3fEXT = unsafePerformIO $ getCommand "glSecondaryColor3fEXT"
+
+-- glSecondaryColor3fv ---------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor.xml OpenGL 2.x>.
+glSecondaryColor3fv
+  :: MonadIO m
+  => Ptr GLfloat -- ^ @v@ pointing to @3@ elements of type @ColorF@.
+  -> m ()
+glSecondaryColor3fv v1 = liftIO $ dyn44 ptr_glSecondaryColor3fv v1
+
+{-# NOINLINE ptr_glSecondaryColor3fv #-}
+ptr_glSecondaryColor3fv :: FunPtr (Ptr GLfloat -> IO ())
+ptr_glSecondaryColor3fv = unsafePerformIO $ getCommand "glSecondaryColor3fv"
+
+-- glSecondaryColor3fvEXT ------------------------------------------------------
+
+-- | This command is an alias for 'glSecondaryColor3fv'.
+glSecondaryColor3fvEXT
+  :: MonadIO m
+  => Ptr GLfloat -- ^ @v@ pointing to @3@ elements of type @ColorF@.
+  -> m ()
+glSecondaryColor3fvEXT v1 = liftIO $ dyn44 ptr_glSecondaryColor3fvEXT v1
+
+{-# NOINLINE ptr_glSecondaryColor3fvEXT #-}
+ptr_glSecondaryColor3fvEXT :: FunPtr (Ptr GLfloat -> IO ())
+ptr_glSecondaryColor3fvEXT = unsafePerformIO $ getCommand "glSecondaryColor3fvEXT"
+
+-- glSecondaryColor3hNV --------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glSecondaryColor3hvNV'.
+glSecondaryColor3hNV
+  :: MonadIO m
+  => GLhalfNV -- ^ @red@ of type @Half16NV@.
+  -> GLhalfNV -- ^ @green@ of type @Half16NV@.
+  -> GLhalfNV -- ^ @blue@ of type @Half16NV@.
+  -> m ()
+glSecondaryColor3hNV v1 v2 v3 = liftIO $ dyn105 ptr_glSecondaryColor3hNV v1 v2 v3
+
+{-# NOINLINE ptr_glSecondaryColor3hNV #-}
+ptr_glSecondaryColor3hNV :: FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
+ptr_glSecondaryColor3hNV = unsafePerformIO $ getCommand "glSecondaryColor3hNV"
+
+-- glSecondaryColor3hvNV -------------------------------------------------------
+
+glSecondaryColor3hvNV
+  :: MonadIO m
+  => Ptr GLhalfNV -- ^ @v@ pointing to @3@ elements of type @Half16NV@.
+  -> m ()
+glSecondaryColor3hvNV v1 = liftIO $ dyn106 ptr_glSecondaryColor3hvNV v1
+
+{-# NOINLINE ptr_glSecondaryColor3hvNV #-}
+ptr_glSecondaryColor3hvNV :: FunPtr (Ptr GLhalfNV -> IO ())
+ptr_glSecondaryColor3hvNV = unsafePerformIO $ getCommand "glSecondaryColor3hvNV"
+
+-- glSecondaryColor3i ----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor.xml OpenGL 2.x>. The vector equivalent of this command is 'glSecondaryColor3iv'.
+glSecondaryColor3i
+  :: MonadIO m
+  => GLint -- ^ @red@ of type @ColorI@.
+  -> GLint -- ^ @green@ of type @ColorI@.
+  -> GLint -- ^ @blue@ of type @ColorI@.
+  -> m ()
+glSecondaryColor3i v1 v2 v3 = liftIO $ dyn45 ptr_glSecondaryColor3i v1 v2 v3
+
+{-# NOINLINE ptr_glSecondaryColor3i #-}
+ptr_glSecondaryColor3i :: FunPtr (GLint -> GLint -> GLint -> IO ())
+ptr_glSecondaryColor3i = unsafePerformIO $ getCommand "glSecondaryColor3i"
+
+-- glSecondaryColor3iEXT -------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glSecondaryColor3ivEXT'. This command is an alias for 'glSecondaryColor3i'.
+glSecondaryColor3iEXT
+  :: MonadIO m
+  => GLint -- ^ @red@ of type @ColorI@.
+  -> GLint -- ^ @green@ of type @ColorI@.
+  -> GLint -- ^ @blue@ of type @ColorI@.
+  -> m ()
+glSecondaryColor3iEXT v1 v2 v3 = liftIO $ dyn45 ptr_glSecondaryColor3iEXT v1 v2 v3
+
+{-# NOINLINE ptr_glSecondaryColor3iEXT #-}
+ptr_glSecondaryColor3iEXT :: FunPtr (GLint -> GLint -> GLint -> IO ())
+ptr_glSecondaryColor3iEXT = unsafePerformIO $ getCommand "glSecondaryColor3iEXT"
+
+-- glSecondaryColor3iv ---------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor.xml OpenGL 2.x>.
+glSecondaryColor3iv
+  :: MonadIO m
+  => Ptr GLint -- ^ @v@ pointing to @3@ elements of type @ColorI@.
+  -> m ()
+glSecondaryColor3iv v1 = liftIO $ dyn46 ptr_glSecondaryColor3iv v1
+
+{-# NOINLINE ptr_glSecondaryColor3iv #-}
+ptr_glSecondaryColor3iv :: FunPtr (Ptr GLint -> IO ())
+ptr_glSecondaryColor3iv = unsafePerformIO $ getCommand "glSecondaryColor3iv"
+
+-- glSecondaryColor3ivEXT ------------------------------------------------------
+
+-- | This command is an alias for 'glSecondaryColor3iv'.
+glSecondaryColor3ivEXT
+  :: MonadIO m
+  => Ptr GLint -- ^ @v@ pointing to @3@ elements of type @ColorI@.
+  -> m ()
+glSecondaryColor3ivEXT v1 = liftIO $ dyn46 ptr_glSecondaryColor3ivEXT v1
+
+{-# NOINLINE ptr_glSecondaryColor3ivEXT #-}
+ptr_glSecondaryColor3ivEXT :: FunPtr (Ptr GLint -> IO ())
+ptr_glSecondaryColor3ivEXT = unsafePerformIO $ getCommand "glSecondaryColor3ivEXT"
+
+-- glSecondaryColor3s ----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor.xml OpenGL 2.x>. The vector equivalent of this command is 'glSecondaryColor3sv'.
+glSecondaryColor3s
+  :: MonadIO m
+  => GLshort -- ^ @red@ of type @ColorS@.
+  -> GLshort -- ^ @green@ of type @ColorS@.
+  -> GLshort -- ^ @blue@ of type @ColorS@.
+  -> m ()
+glSecondaryColor3s v1 v2 v3 = liftIO $ dyn47 ptr_glSecondaryColor3s v1 v2 v3
+
+{-# NOINLINE ptr_glSecondaryColor3s #-}
+ptr_glSecondaryColor3s :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
+ptr_glSecondaryColor3s = unsafePerformIO $ getCommand "glSecondaryColor3s"
+
+-- glSecondaryColor3sEXT -------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glSecondaryColor3svEXT'. This command is an alias for 'glSecondaryColor3s'.
+glSecondaryColor3sEXT
+  :: MonadIO m
+  => GLshort -- ^ @red@ of type @ColorS@.
+  -> GLshort -- ^ @green@ of type @ColorS@.
+  -> GLshort -- ^ @blue@ of type @ColorS@.
+  -> m ()
+glSecondaryColor3sEXT v1 v2 v3 = liftIO $ dyn47 ptr_glSecondaryColor3sEXT v1 v2 v3
+
+{-# NOINLINE ptr_glSecondaryColor3sEXT #-}
+ptr_glSecondaryColor3sEXT :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
+ptr_glSecondaryColor3sEXT = unsafePerformIO $ getCommand "glSecondaryColor3sEXT"
+
+-- glSecondaryColor3sv ---------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor.xml OpenGL 2.x>.
+glSecondaryColor3sv
+  :: MonadIO m
+  => Ptr GLshort -- ^ @v@ pointing to @3@ elements of type @ColorS@.
+  -> m ()
+glSecondaryColor3sv v1 = liftIO $ dyn48 ptr_glSecondaryColor3sv v1
+
+{-# NOINLINE ptr_glSecondaryColor3sv #-}
+ptr_glSecondaryColor3sv :: FunPtr (Ptr GLshort -> IO ())
+ptr_glSecondaryColor3sv = unsafePerformIO $ getCommand "glSecondaryColor3sv"
+
+-- glSecondaryColor3svEXT ------------------------------------------------------
+
+-- | This command is an alias for 'glSecondaryColor3sv'.
+glSecondaryColor3svEXT
+  :: MonadIO m
+  => Ptr GLshort -- ^ @v@ pointing to @3@ elements of type @ColorS@.
+  -> m ()
+glSecondaryColor3svEXT v1 = liftIO $ dyn48 ptr_glSecondaryColor3svEXT v1
+
+{-# NOINLINE ptr_glSecondaryColor3svEXT #-}
+ptr_glSecondaryColor3svEXT :: FunPtr (Ptr GLshort -> IO ())
+ptr_glSecondaryColor3svEXT = unsafePerformIO $ getCommand "glSecondaryColor3svEXT"
+
+-- glSecondaryColor3ub ---------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor.xml OpenGL 2.x>. The vector equivalent of this command is 'glSecondaryColor3ubv'.
+glSecondaryColor3ub
+  :: MonadIO m
+  => GLubyte -- ^ @red@ of type @ColorUB@.
+  -> GLubyte -- ^ @green@ of type @ColorUB@.
+  -> GLubyte -- ^ @blue@ of type @ColorUB@.
+  -> m ()
+glSecondaryColor3ub v1 v2 v3 = liftIO $ dyn107 ptr_glSecondaryColor3ub v1 v2 v3
+
+{-# NOINLINE ptr_glSecondaryColor3ub #-}
+ptr_glSecondaryColor3ub :: FunPtr (GLubyte -> GLubyte -> GLubyte -> IO ())
+ptr_glSecondaryColor3ub = unsafePerformIO $ getCommand "glSecondaryColor3ub"
+
+-- glSecondaryColor3ubEXT ------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glSecondaryColor3ubvEXT'. This command is an alias for 'glSecondaryColor3ub'.
+glSecondaryColor3ubEXT
+  :: MonadIO m
+  => GLubyte -- ^ @red@ of type @ColorUB@.
+  -> GLubyte -- ^ @green@ of type @ColorUB@.
+  -> GLubyte -- ^ @blue@ of type @ColorUB@.
+  -> m ()
+glSecondaryColor3ubEXT v1 v2 v3 = liftIO $ dyn107 ptr_glSecondaryColor3ubEXT v1 v2 v3
+
+{-# NOINLINE ptr_glSecondaryColor3ubEXT #-}
+ptr_glSecondaryColor3ubEXT :: FunPtr (GLubyte -> GLubyte -> GLubyte -> IO ())
+ptr_glSecondaryColor3ubEXT = unsafePerformIO $ getCommand "glSecondaryColor3ubEXT"
+
+-- glSecondaryColor3ubv --------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor.xml OpenGL 2.x>.
+glSecondaryColor3ubv
+  :: MonadIO m
+  => Ptr GLubyte -- ^ @v@ pointing to @3@ elements of type @ColorUB@.
+  -> m ()
+glSecondaryColor3ubv v1 = liftIO $ dyn108 ptr_glSecondaryColor3ubv v1
+
+{-# NOINLINE ptr_glSecondaryColor3ubv #-}
+ptr_glSecondaryColor3ubv :: FunPtr (Ptr GLubyte -> IO ())
+ptr_glSecondaryColor3ubv = unsafePerformIO $ getCommand "glSecondaryColor3ubv"
+
+-- glSecondaryColor3ubvEXT -----------------------------------------------------
+
+-- | This command is an alias for 'glSecondaryColor3ubv'.
+glSecondaryColor3ubvEXT
+  :: MonadIO m
+  => Ptr GLubyte -- ^ @v@ pointing to @3@ elements of type @ColorUB@.
+  -> m ()
+glSecondaryColor3ubvEXT v1 = liftIO $ dyn108 ptr_glSecondaryColor3ubvEXT v1
+
+{-# NOINLINE ptr_glSecondaryColor3ubvEXT #-}
+ptr_glSecondaryColor3ubvEXT :: FunPtr (Ptr GLubyte -> IO ())
+ptr_glSecondaryColor3ubvEXT = unsafePerformIO $ getCommand "glSecondaryColor3ubvEXT"
+
+-- glSecondaryColor3ui ---------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor.xml OpenGL 2.x>. The vector equivalent of this command is 'glSecondaryColor3uiv'.
+glSecondaryColor3ui
+  :: MonadIO m
+  => GLuint -- ^ @red@ of type @ColorUI@.
+  -> GLuint -- ^ @green@ of type @ColorUI@.
+  -> GLuint -- ^ @blue@ of type @ColorUI@.
+  -> m ()
+glSecondaryColor3ui v1 v2 v3 = liftIO $ dyn109 ptr_glSecondaryColor3ui v1 v2 v3
+
+{-# NOINLINE ptr_glSecondaryColor3ui #-}
+ptr_glSecondaryColor3ui :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
+ptr_glSecondaryColor3ui = unsafePerformIO $ getCommand "glSecondaryColor3ui"
+
+-- glSecondaryColor3uiEXT ------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glSecondaryColor3uivEXT'. This command is an alias for 'glSecondaryColor3ui'.
+glSecondaryColor3uiEXT
+  :: MonadIO m
+  => GLuint -- ^ @red@ of type @ColorUI@.
+  -> GLuint -- ^ @green@ of type @ColorUI@.
+  -> GLuint -- ^ @blue@ of type @ColorUI@.
+  -> m ()
+glSecondaryColor3uiEXT v1 v2 v3 = liftIO $ dyn109 ptr_glSecondaryColor3uiEXT v1 v2 v3
+
+{-# NOINLINE ptr_glSecondaryColor3uiEXT #-}
+ptr_glSecondaryColor3uiEXT :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
+ptr_glSecondaryColor3uiEXT = unsafePerformIO $ getCommand "glSecondaryColor3uiEXT"
+
+-- glSecondaryColor3uiv --------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor.xml OpenGL 2.x>.
+glSecondaryColor3uiv
+  :: MonadIO m
+  => Ptr GLuint -- ^ @v@ pointing to @3@ elements of type @ColorUI@.
+  -> m ()
+glSecondaryColor3uiv v1 = liftIO $ dyn110 ptr_glSecondaryColor3uiv v1
+
+{-# NOINLINE ptr_glSecondaryColor3uiv #-}
+ptr_glSecondaryColor3uiv :: FunPtr (Ptr GLuint -> IO ())
+ptr_glSecondaryColor3uiv = unsafePerformIO $ getCommand "glSecondaryColor3uiv"
+
+-- glSecondaryColor3uivEXT -----------------------------------------------------
+
+-- | This command is an alias for 'glSecondaryColor3uiv'.
+glSecondaryColor3uivEXT
+  :: MonadIO m
+  => Ptr GLuint -- ^ @v@ pointing to @3@ elements of type @ColorUI@.
+  -> m ()
+glSecondaryColor3uivEXT v1 = liftIO $ dyn110 ptr_glSecondaryColor3uivEXT v1
+
+{-# NOINLINE ptr_glSecondaryColor3uivEXT #-}
+ptr_glSecondaryColor3uivEXT :: FunPtr (Ptr GLuint -> IO ())
+ptr_glSecondaryColor3uivEXT = unsafePerformIO $ getCommand "glSecondaryColor3uivEXT"
+
+-- glSecondaryColor3us ---------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor.xml OpenGL 2.x>. The vector equivalent of this command is 'glSecondaryColor3usv'.
+glSecondaryColor3us
+  :: MonadIO m
+  => GLushort -- ^ @red@ of type @ColorUS@.
+  -> GLushort -- ^ @green@ of type @ColorUS@.
+  -> GLushort -- ^ @blue@ of type @ColorUS@.
+  -> m ()
+glSecondaryColor3us v1 v2 v3 = liftIO $ dyn111 ptr_glSecondaryColor3us v1 v2 v3
+
+{-# NOINLINE ptr_glSecondaryColor3us #-}
+ptr_glSecondaryColor3us :: FunPtr (GLushort -> GLushort -> GLushort -> IO ())
+ptr_glSecondaryColor3us = unsafePerformIO $ getCommand "glSecondaryColor3us"
+
+-- glSecondaryColor3usEXT ------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glSecondaryColor3usvEXT'. This command is an alias for 'glSecondaryColor3us'.
+glSecondaryColor3usEXT
+  :: MonadIO m
+  => GLushort -- ^ @red@ of type @ColorUS@.
+  -> GLushort -- ^ @green@ of type @ColorUS@.
+  -> GLushort -- ^ @blue@ of type @ColorUS@.
+  -> m ()
+glSecondaryColor3usEXT v1 v2 v3 = liftIO $ dyn111 ptr_glSecondaryColor3usEXT v1 v2 v3
+
+{-# NOINLINE ptr_glSecondaryColor3usEXT #-}
+ptr_glSecondaryColor3usEXT :: FunPtr (GLushort -> GLushort -> GLushort -> IO ())
+ptr_glSecondaryColor3usEXT = unsafePerformIO $ getCommand "glSecondaryColor3usEXT"
+
+-- glSecondaryColor3usv --------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor.xml OpenGL 2.x>.
+glSecondaryColor3usv
+  :: MonadIO m
+  => Ptr GLushort -- ^ @v@ pointing to @3@ elements of type @ColorUS@.
+  -> m ()
+glSecondaryColor3usv v1 = liftIO $ dyn112 ptr_glSecondaryColor3usv v1
+
+{-# NOINLINE ptr_glSecondaryColor3usv #-}
+ptr_glSecondaryColor3usv :: FunPtr (Ptr GLushort -> IO ())
+ptr_glSecondaryColor3usv = unsafePerformIO $ getCommand "glSecondaryColor3usv"
+
+-- glSecondaryColor3usvEXT -----------------------------------------------------
+
+-- | This command is an alias for 'glSecondaryColor3usv'.
+glSecondaryColor3usvEXT
+  :: MonadIO m
+  => Ptr GLushort -- ^ @v@ pointing to @3@ elements of type @ColorUS@.
+  -> m ()
+glSecondaryColor3usvEXT v1 = liftIO $ dyn112 ptr_glSecondaryColor3usvEXT v1
+
+{-# NOINLINE ptr_glSecondaryColor3usvEXT #-}
+ptr_glSecondaryColor3usvEXT :: FunPtr (Ptr GLushort -> IO ())
+ptr_glSecondaryColor3usvEXT = unsafePerformIO $ getCommand "glSecondaryColor3usvEXT"
+
+-- glSecondaryColorFormatNV ----------------------------------------------------
+
+glSecondaryColorFormatNV
+  :: MonadIO m
+  => GLint -- ^ @size@.
+  -> GLenum -- ^ @type@ of type [ColorPointerType](Graphics-GL-Groups.html#ColorPointerType).
+  -> GLsizei -- ^ @stride@.
+  -> m ()
+glSecondaryColorFormatNV v1 v2 v3 = liftIO $ dyn126 ptr_glSecondaryColorFormatNV v1 v2 v3
+
+{-# NOINLINE ptr_glSecondaryColorFormatNV #-}
+ptr_glSecondaryColorFormatNV :: FunPtr (GLint -> GLenum -> GLsizei -> IO ())
+ptr_glSecondaryColorFormatNV = unsafePerformIO $ getCommand "glSecondaryColorFormatNV"
+
+-- glSecondaryColorP3ui --------------------------------------------------------
+
+glSecondaryColorP3ui
+  :: MonadIO m
+  => GLenum -- ^ @type@ of type [ColorPointerType](Graphics-GL-Groups.html#ColorPointerType).
+  -> GLuint -- ^ @color@.
+  -> m ()
+glSecondaryColorP3ui v1 v2 = liftIO $ dyn19 ptr_glSecondaryColorP3ui v1 v2
+
+{-# NOINLINE ptr_glSecondaryColorP3ui #-}
+ptr_glSecondaryColorP3ui :: FunPtr (GLenum -> GLuint -> IO ())
+ptr_glSecondaryColorP3ui = unsafePerformIO $ getCommand "glSecondaryColorP3ui"
+
+-- glSecondaryColorP3uiv -------------------------------------------------------
+
+glSecondaryColorP3uiv
+  :: MonadIO m
+  => GLenum -- ^ @type@ of type [ColorPointerType](Graphics-GL-Groups.html#ColorPointerType).
+  -> Ptr GLuint -- ^ @color@ pointing to @1@ element of type @GLuint@.
+  -> m ()
+glSecondaryColorP3uiv v1 v2 = liftIO $ dyn132 ptr_glSecondaryColorP3uiv v1 v2
+
+{-# NOINLINE ptr_glSecondaryColorP3uiv #-}
+ptr_glSecondaryColorP3uiv :: FunPtr (GLenum -> Ptr GLuint -> IO ())
+ptr_glSecondaryColorP3uiv = unsafePerformIO $ getCommand "glSecondaryColorP3uiv"
+
+-- glSecondaryColorPointer -----------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColorPointer.xml OpenGL 2.x>.
+glSecondaryColorPointer
+  :: MonadIO m
+  => GLint -- ^ @size@.
+  -> GLenum -- ^ @type@ of type [ColorPointerType](Graphics-GL-Groups.html#ColorPointerType).
+  -> GLsizei -- ^ @stride@.
+  -> Ptr a -- ^ @pointer@ pointing to @COMPSIZE(size,type,stride)@ elements of type @a@.
+  -> m ()
+glSecondaryColorPointer v1 v2 v3 v4 = liftIO $ dyn133 ptr_glSecondaryColorPointer v1 v2 v3 v4
+
+{-# NOINLINE ptr_glSecondaryColorPointer #-}
+ptr_glSecondaryColorPointer :: FunPtr (GLint -> GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glSecondaryColorPointer = unsafePerformIO $ getCommand "glSecondaryColorPointer"
+
+-- glSecondaryColorPointerEXT --------------------------------------------------
+
+-- | This command is an alias for 'glSecondaryColorPointer'.
+glSecondaryColorPointerEXT
+  :: MonadIO m
+  => GLint -- ^ @size@.
+  -> GLenum -- ^ @type@ of type [ColorPointerType](Graphics-GL-Groups.html#ColorPointerType).
+  -> GLsizei -- ^ @stride@.
+  -> Ptr a -- ^ @pointer@ pointing to @COMPSIZE(size,type,stride)@ elements of type @a@.
+  -> m ()
+glSecondaryColorPointerEXT v1 v2 v3 v4 = liftIO $ dyn133 ptr_glSecondaryColorPointerEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glSecondaryColorPointerEXT #-}
+ptr_glSecondaryColorPointerEXT :: FunPtr (GLint -> GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glSecondaryColorPointerEXT = unsafePerformIO $ getCommand "glSecondaryColorPointerEXT"
+
+-- glSecondaryColorPointerListIBM ----------------------------------------------
+
+glSecondaryColorPointerListIBM
+  :: MonadIO m
+  => GLint -- ^ @size@.
+  -> GLenum -- ^ @type@ of type [SecondaryColorPointerTypeIBM](Graphics-GL-Groups.html#SecondaryColorPointerTypeIBM).
+  -> GLint -- ^ @stride@.
+  -> Ptr (Ptr a) -- ^ @pointer@ pointing to @COMPSIZE(size,type,stride)@ elements of type @Ptr a@.
+  -> GLint -- ^ @ptrstride@.
+  -> m ()
+glSecondaryColorPointerListIBM v1 v2 v3 v4 v5 = liftIO $ dyn135 ptr_glSecondaryColorPointerListIBM v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glSecondaryColorPointerListIBM #-}
+ptr_glSecondaryColorPointerListIBM :: FunPtr (GLint -> GLenum -> GLint -> Ptr (Ptr a) -> GLint -> IO ())
+ptr_glSecondaryColorPointerListIBM = unsafePerformIO $ getCommand "glSecondaryColorPointerListIBM"
+
+-- glSelectBuffer --------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glSelectBuffer.xml OpenGL 2.x>.
+glSelectBuffer
+  :: MonadIO m
+  => GLsizei -- ^ @size@.
+  -> Ptr GLuint -- ^ @buffer@ pointing to @size@ elements of type @SelectName@.
+  -> m ()
+glSelectBuffer v1 v2 = liftIO $ dyn200 ptr_glSelectBuffer v1 v2
+
+{-# NOINLINE ptr_glSelectBuffer #-}
+ptr_glSelectBuffer :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+ptr_glSelectBuffer = unsafePerformIO $ getCommand "glSelectBuffer"
+
+-- glSelectPerfMonitorCountersAMD ----------------------------------------------
+
+glSelectPerfMonitorCountersAMD
+  :: MonadIO m
+  => GLuint -- ^ @monitor@.
+  -> GLboolean -- ^ @enable@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> GLuint -- ^ @group@.
+  -> GLint -- ^ @numCounters@.
+  -> Ptr GLuint -- ^ @counterList@ pointing to @numCounters@ elements of type @GLuint@.
+  -> m ()
+glSelectPerfMonitorCountersAMD v1 v2 v3 v4 v5 = liftIO $ dyn742 ptr_glSelectPerfMonitorCountersAMD v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glSelectPerfMonitorCountersAMD #-}
+ptr_glSelectPerfMonitorCountersAMD :: FunPtr (GLuint -> GLboolean -> GLuint -> GLint -> Ptr GLuint -> IO ())
+ptr_glSelectPerfMonitorCountersAMD = unsafePerformIO $ getCommand "glSelectPerfMonitorCountersAMD"
+
+-- glSemaphoreParameterui64vEXT ------------------------------------------------
+
+glSemaphoreParameterui64vEXT
+  :: MonadIO m
+  => GLuint -- ^ @semaphore@.
+  -> GLenum -- ^ @pname@ of type [SemaphoreParameterName](Graphics-GL-Groups.html#SemaphoreParameterName).
+  -> Ptr GLuint64 -- ^ @params@.
+  -> m ()
+glSemaphoreParameterui64vEXT v1 v2 v3 = liftIO $ dyn419 ptr_glSemaphoreParameterui64vEXT v1 v2 v3
+
+{-# NOINLINE ptr_glSemaphoreParameterui64vEXT #-}
+ptr_glSemaphoreParameterui64vEXT :: FunPtr (GLuint -> GLenum -> Ptr GLuint64 -> IO ())
+ptr_glSemaphoreParameterui64vEXT = unsafePerformIO $ getCommand "glSemaphoreParameterui64vEXT"
+
+-- glSeparableFilter2D ---------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glSeparableFilter2D.xml OpenGL 2.x>.
+glSeparableFilter2D
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [SeparableTargetEXT](Graphics-GL-Groups.html#SeparableTargetEXT).
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @row@ pointing to @COMPSIZE(target,format,type,width)@ elements of type @a@.
+  -> Ptr b -- ^ @column@ pointing to @COMPSIZE(target,format,type,height)@ elements of type @b@.
+  -> m ()
+glSeparableFilter2D v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn743 ptr_glSeparableFilter2D v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glSeparableFilter2D #-}
+ptr_glSeparableFilter2D :: FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> Ptr b -> IO ())
+ptr_glSeparableFilter2D = unsafePerformIO $ getCommand "glSeparableFilter2D"
+
+-- glSeparableFilter2DEXT ------------------------------------------------------
+
+-- | This command is an alias for 'glSeparableFilter2D'.
+glSeparableFilter2DEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [SeparableTargetEXT](Graphics-GL-Groups.html#SeparableTargetEXT).
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @row@ pointing to @COMPSIZE(target,format,type,width)@ elements of type @a@.
+  -> Ptr b -- ^ @column@ pointing to @COMPSIZE(target,format,type,height)@ elements of type @b@.
+  -> m ()
+glSeparableFilter2DEXT v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn743 ptr_glSeparableFilter2DEXT v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glSeparableFilter2DEXT #-}
+ptr_glSeparableFilter2DEXT :: FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> Ptr b -> IO ())
+ptr_glSeparableFilter2DEXT = unsafePerformIO $ getCommand "glSeparableFilter2DEXT"
+
+-- glSetFenceAPPLE -------------------------------------------------------------
+
+glSetFenceAPPLE
+  :: MonadIO m
+  => GLuint -- ^ @fence@ of type @FenceNV@.
+  -> m ()
+glSetFenceAPPLE v1 = liftIO $ dyn3 ptr_glSetFenceAPPLE v1
+
+{-# NOINLINE ptr_glSetFenceAPPLE #-}
+ptr_glSetFenceAPPLE :: FunPtr (GLuint -> IO ())
+ptr_glSetFenceAPPLE = unsafePerformIO $ getCommand "glSetFenceAPPLE"
+
+-- glSetFenceNV ----------------------------------------------------------------
+
+glSetFenceNV
+  :: MonadIO m
+  => GLuint -- ^ @fence@ of type @FenceNV@.
+  -> GLenum -- ^ @condition@ of type [FenceConditionNV](Graphics-GL-Groups.html#FenceConditionNV).
+  -> m ()
+glSetFenceNV v1 v2 = liftIO $ dyn18 ptr_glSetFenceNV v1 v2
+
+{-# NOINLINE ptr_glSetFenceNV #-}
+ptr_glSetFenceNV :: FunPtr (GLuint -> GLenum -> IO ())
+ptr_glSetFenceNV = unsafePerformIO $ getCommand "glSetFenceNV"
+
+-- glSetFragmentShaderConstantATI ----------------------------------------------
+
+glSetFragmentShaderConstantATI
+  :: MonadIO m
+  => GLuint -- ^ @dst@.
+  -> Ptr GLfloat -- ^ @value@ pointing to @4@ elements of type @GLfloat@.
+  -> m ()
+glSetFragmentShaderConstantATI v1 v2 = liftIO $ dyn394 ptr_glSetFragmentShaderConstantATI v1 v2
+
+{-# NOINLINE ptr_glSetFragmentShaderConstantATI #-}
+ptr_glSetFragmentShaderConstantATI :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+ptr_glSetFragmentShaderConstantATI = unsafePerformIO $ getCommand "glSetFragmentShaderConstantATI"
+
+-- glSetInvariantEXT -----------------------------------------------------------
+
+glSetInvariantEXT
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> GLenum -- ^ @type@ of type [ScalarType](Graphics-GL-Groups.html#ScalarType).
+  -> Ptr a -- ^ @addr@ pointing to @COMPSIZE(id,type)@ elements of type @a@.
+  -> m ()
+glSetInvariantEXT v1 v2 v3 = liftIO $ dyn492 ptr_glSetInvariantEXT v1 v2 v3
+
+{-# NOINLINE ptr_glSetInvariantEXT #-}
+ptr_glSetInvariantEXT :: FunPtr (GLuint -> GLenum -> Ptr a -> IO ())
+ptr_glSetInvariantEXT = unsafePerformIO $ getCommand "glSetInvariantEXT"
+
+-- glSetLocalConstantEXT -------------------------------------------------------
+
+glSetLocalConstantEXT
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> GLenum -- ^ @type@ of type [ScalarType](Graphics-GL-Groups.html#ScalarType).
+  -> Ptr a -- ^ @addr@ pointing to @COMPSIZE(id,type)@ elements of type @a@.
+  -> m ()
+glSetLocalConstantEXT v1 v2 v3 = liftIO $ dyn492 ptr_glSetLocalConstantEXT v1 v2 v3
+
+{-# NOINLINE ptr_glSetLocalConstantEXT #-}
+ptr_glSetLocalConstantEXT :: FunPtr (GLuint -> GLenum -> Ptr a -> IO ())
+ptr_glSetLocalConstantEXT = unsafePerformIO $ getCommand "glSetLocalConstantEXT"
+
+-- glSetMultisamplefvAMD -------------------------------------------------------
+
+glSetMultisamplefvAMD
+  :: MonadIO m
+  => GLenum -- ^ @pname@.
+  -> GLuint -- ^ @index@.
+  -> Ptr GLfloat -- ^ @val@ pointing to @2@ elements of type @GLfloat@.
+  -> m ()
+glSetMultisamplefvAMD v1 v2 v3 = liftIO $ dyn278 ptr_glSetMultisamplefvAMD v1 v2 v3
+
+{-# NOINLINE ptr_glSetMultisamplefvAMD #-}
+ptr_glSetMultisamplefvAMD :: FunPtr (GLenum -> GLuint -> Ptr GLfloat -> IO ())
+ptr_glSetMultisamplefvAMD = unsafePerformIO $ getCommand "glSetMultisamplefvAMD"
+
+-- glShadeModel ----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glShadeModel.xml OpenGL 2.x>.
+glShadeModel
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [ShadingModel](Graphics-GL-Groups.html#ShadingModel).
+  -> m ()
+glShadeModel v1 = liftIO $ dyn5 ptr_glShadeModel v1
+
+{-# NOINLINE ptr_glShadeModel #-}
+ptr_glShadeModel :: FunPtr (GLenum -> IO ())
+ptr_glShadeModel = unsafePerformIO $ getCommand "glShadeModel"
+
+-- glShaderBinary --------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glShaderBinary.xhtml OpenGL 4.x>.
+glShaderBinary
+  :: MonadIO m
+  => GLsizei -- ^ @count@.
+  -> Ptr GLuint -- ^ @shaders@ pointing to @count@ elements of type @GLuint@.
+  -> GLenum -- ^ @binaryformat@.
+  -> Ptr a -- ^ @binary@ pointing to @length@ elements of type @a@.
+  -> GLsizei -- ^ @length@.
+  -> m ()
+glShaderBinary v1 v2 v3 v4 v5 = liftIO $ dyn744 ptr_glShaderBinary v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glShaderBinary #-}
+ptr_glShaderBinary :: FunPtr (GLsizei -> Ptr GLuint -> GLenum -> Ptr a -> GLsizei -> IO ())
+ptr_glShaderBinary = unsafePerformIO $ getCommand "glShaderBinary"
+
+-- glShaderOp1EXT --------------------------------------------------------------
+
+glShaderOp1EXT
+  :: MonadIO m
+  => GLenum -- ^ @op@ of type [VertexShaderOpEXT](Graphics-GL-Groups.html#VertexShaderOpEXT).
+  -> GLuint -- ^ @res@.
+  -> GLuint -- ^ @arg1@.
+  -> m ()
+glShaderOp1EXT v1 v2 v3 = liftIO $ dyn20 ptr_glShaderOp1EXT v1 v2 v3
+
+{-# NOINLINE ptr_glShaderOp1EXT #-}
+ptr_glShaderOp1EXT :: FunPtr (GLenum -> GLuint -> GLuint -> IO ())
+ptr_glShaderOp1EXT = unsafePerformIO $ getCommand "glShaderOp1EXT"
+
+-- glShaderOp2EXT --------------------------------------------------------------
+
+glShaderOp2EXT
+  :: MonadIO m
+  => GLenum -- ^ @op@ of type [VertexShaderOpEXT](Graphics-GL-Groups.html#VertexShaderOpEXT).
+  -> GLuint -- ^ @res@.
+  -> GLuint -- ^ @arg1@.
+  -> GLuint -- ^ @arg2@.
+  -> m ()
+glShaderOp2EXT v1 v2 v3 v4 = liftIO $ dyn745 ptr_glShaderOp2EXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glShaderOp2EXT #-}
+ptr_glShaderOp2EXT :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> IO ())
+ptr_glShaderOp2EXT = unsafePerformIO $ getCommand "glShaderOp2EXT"
+
+-- glShaderOp3EXT --------------------------------------------------------------
+
+glShaderOp3EXT
+  :: MonadIO m
+  => GLenum -- ^ @op@ of type [VertexShaderOpEXT](Graphics-GL-Groups.html#VertexShaderOpEXT).
+  -> GLuint -- ^ @res@.
+  -> GLuint -- ^ @arg1@.
+  -> GLuint -- ^ @arg2@.
+  -> GLuint -- ^ @arg3@.
+  -> m ()
+glShaderOp3EXT v1 v2 v3 v4 v5 = liftIO $ dyn746 ptr_glShaderOp3EXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glShaderOp3EXT #-}
+ptr_glShaderOp3EXT :: FunPtr (GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+ptr_glShaderOp3EXT = unsafePerformIO $ getCommand "glShaderOp3EXT"
+
+-- glShaderSource --------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glShaderSource.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glShaderSource.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glShaderSource.xhtml OpenGL 4.x>.
+glShaderSource
+  :: MonadIO m
+  => GLuint -- ^ @shader@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr (Ptr GLchar) -- ^ @string@ pointing to @count@ elements of type @Ptr GLchar@.
+  -> Ptr GLint -- ^ @length@ pointing to @count@ elements of type @GLint@.
+  -> m ()
+glShaderSource v1 v2 v3 v4 = liftIO $ dyn145 ptr_glShaderSource v1 v2 v3 v4
+
+{-# NOINLINE ptr_glShaderSource #-}
+ptr_glShaderSource :: FunPtr (GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> IO ())
+ptr_glShaderSource = unsafePerformIO $ getCommand "glShaderSource"
+
+-- glShaderSourceARB -----------------------------------------------------------
+
+-- | This command is an alias for 'glShaderSource'.
+glShaderSourceARB
+  :: MonadIO m
+  => GLhandleARB -- ^ @shaderObj@ of type @handleARB@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr (Ptr GLcharARB) -- ^ @string@ pointing to @count@ elements of type @Ptr GLcharARB@.
+  -> Ptr GLint -- ^ @length@ pointing to @count@ elements of type @GLint@.
+  -> m ()
+glShaderSourceARB v1 v2 v3 v4 = liftIO $ dyn747 ptr_glShaderSourceARB v1 v2 v3 v4
+
+{-# NOINLINE ptr_glShaderSourceARB #-}
+ptr_glShaderSourceARB :: FunPtr (GLhandleARB -> GLsizei -> Ptr (Ptr GLcharARB) -> Ptr GLint -> IO ())
+ptr_glShaderSourceARB = unsafePerformIO $ getCommand "glShaderSourceARB"
+
+-- glShaderStorageBlockBinding -------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glShaderStorageBlockBinding.xhtml OpenGL 4.x>.
+glShaderStorageBlockBinding
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLuint -- ^ @storageBlockIndex@.
+  -> GLuint -- ^ @storageBlockBinding@.
+  -> m ()
+glShaderStorageBlockBinding v1 v2 v3 = liftIO $ dyn109 ptr_glShaderStorageBlockBinding v1 v2 v3
+
+{-# NOINLINE ptr_glShaderStorageBlockBinding #-}
+ptr_glShaderStorageBlockBinding :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
+ptr_glShaderStorageBlockBinding = unsafePerformIO $ getCommand "glShaderStorageBlockBinding"
+
+-- glShadingRateImageBarrierNV -------------------------------------------------
+
+glShadingRateImageBarrierNV
+  :: MonadIO m
+  => GLboolean -- ^ @synchronize@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m ()
+glShadingRateImageBarrierNV v1 = liftIO $ dyn198 ptr_glShadingRateImageBarrierNV v1
+
+{-# NOINLINE ptr_glShadingRateImageBarrierNV #-}
+ptr_glShadingRateImageBarrierNV :: FunPtr (GLboolean -> IO ())
+ptr_glShadingRateImageBarrierNV = unsafePerformIO $ getCommand "glShadingRateImageBarrierNV"
+
+-- glShadingRateImagePaletteNV -------------------------------------------------
+
+glShadingRateImagePaletteNV
+  :: MonadIO m
+  => GLuint -- ^ @viewport@.
+  -> GLuint -- ^ @first@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLenum -- ^ @rates@ pointing to @count@ elements of type @GLenum@.
+  -> m ()
+glShadingRateImagePaletteNV v1 v2 v3 v4 = liftIO $ dyn748 ptr_glShadingRateImagePaletteNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glShadingRateImagePaletteNV #-}
+ptr_glShadingRateImagePaletteNV :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLenum -> IO ())
+ptr_glShadingRateImagePaletteNV = unsafePerformIO $ getCommand "glShadingRateImagePaletteNV"
+
+-- glShadingRateSampleOrderCustomNV --------------------------------------------
+
+glShadingRateSampleOrderCustomNV
+  :: MonadIO m
+  => GLenum -- ^ @rate@.
+  -> GLuint -- ^ @samples@.
+  -> Ptr GLint -- ^ @locations@ pointing to @COMPSIZE(rate,samples)@ elements of type @GLint@.
+  -> m ()
+glShadingRateSampleOrderCustomNV v1 v2 v3 = liftIO $ dyn357 ptr_glShadingRateSampleOrderCustomNV v1 v2 v3
+
+{-# NOINLINE ptr_glShadingRateSampleOrderCustomNV #-}
+ptr_glShadingRateSampleOrderCustomNV :: FunPtr (GLenum -> GLuint -> Ptr GLint -> IO ())
+ptr_glShadingRateSampleOrderCustomNV = unsafePerformIO $ getCommand "glShadingRateSampleOrderCustomNV"
+
+-- glShadingRateSampleOrderNV --------------------------------------------------
+
+glShadingRateSampleOrderNV
+  :: MonadIO m
+  => GLenum -- ^ @order@.
+  -> m ()
+glShadingRateSampleOrderNV v1 = liftIO $ dyn5 ptr_glShadingRateSampleOrderNV v1
+
+{-# NOINLINE ptr_glShadingRateSampleOrderNV #-}
+ptr_glShadingRateSampleOrderNV :: FunPtr (GLenum -> IO ())
+ptr_glShadingRateSampleOrderNV = unsafePerformIO $ getCommand "glShadingRateSampleOrderNV"
+
+-- glSharpenTexFuncSGIS --------------------------------------------------------
+
+glSharpenTexFuncSGIS
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLsizei -- ^ @n@.
+  -> Ptr GLfloat -- ^ @points@ pointing to @n*2@ elements of type @GLfloat@.
+  -> m ()
+glSharpenTexFuncSGIS v1 v2 v3 = liftIO $ dyn233 ptr_glSharpenTexFuncSGIS v1 v2 v3
+
+{-# NOINLINE ptr_glSharpenTexFuncSGIS #-}
+ptr_glSharpenTexFuncSGIS :: FunPtr (GLenum -> GLsizei -> Ptr GLfloat -> IO ())
+ptr_glSharpenTexFuncSGIS = unsafePerformIO $ getCommand "glSharpenTexFuncSGIS"
+
+-- glSignalSemaphoreEXT --------------------------------------------------------
+
+glSignalSemaphoreEXT
+  :: MonadIO m
+  => GLuint -- ^ @semaphore@.
+  -> GLuint -- ^ @numBufferBarriers@.
+  -> Ptr GLuint -- ^ @buffers@ pointing to @COMPSIZE(numBufferBarriers)@ elements of type @GLuint@.
+  -> GLuint -- ^ @numTextureBarriers@.
+  -> Ptr GLuint -- ^ @textures@ pointing to @COMPSIZE(numTextureBarriers)@ elements of type @GLuint@.
+  -> Ptr GLenum -- ^ @dstLayouts@ pointing to @COMPSIZE(numTextureBarriers)@ elements of type [TextureLayout](Graphics-GL-Groups.html#TextureLayout).
+  -> m ()
+glSignalSemaphoreEXT v1 v2 v3 v4 v5 v6 = liftIO $ dyn749 ptr_glSignalSemaphoreEXT v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glSignalSemaphoreEXT #-}
+ptr_glSignalSemaphoreEXT :: FunPtr (GLuint -> GLuint -> Ptr GLuint -> GLuint -> Ptr GLuint -> Ptr GLenum -> IO ())
+ptr_glSignalSemaphoreEXT = unsafePerformIO $ getCommand "glSignalSemaphoreEXT"
+
+-- glSignalSemaphoreui64NVX ----------------------------------------------------
+
+glSignalSemaphoreui64NVX
+  :: MonadIO m
+  => GLuint -- ^ @signalGpu@.
+  -> GLsizei -- ^ @fenceObjectCount@.
+  -> Ptr GLuint -- ^ @semaphoreArray@ pointing to @fenceObjectCount@ elements of type @GLuint@.
+  -> Ptr GLuint64 -- ^ @fenceValueArray@ pointing to @fenceObjectCount@ elements of type @GLuint64@.
+  -> m ()
+glSignalSemaphoreui64NVX v1 v2 v3 v4 = liftIO $ dyn750 ptr_glSignalSemaphoreui64NVX v1 v2 v3 v4
+
+{-# NOINLINE ptr_glSignalSemaphoreui64NVX #-}
+ptr_glSignalSemaphoreui64NVX :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> Ptr GLuint64 -> IO ())
+ptr_glSignalSemaphoreui64NVX = unsafePerformIO $ getCommand "glSignalSemaphoreui64NVX"
+
+-- glSignalVkFenceNV -----------------------------------------------------------
+
+glSignalVkFenceNV
+  :: MonadIO m
+  => GLuint64 -- ^ @vkFence@.
+  -> m ()
+glSignalVkFenceNV v1 = liftIO $ dyn517 ptr_glSignalVkFenceNV v1
+
+{-# NOINLINE ptr_glSignalVkFenceNV #-}
+ptr_glSignalVkFenceNV :: FunPtr (GLuint64 -> IO ())
+ptr_glSignalVkFenceNV = unsafePerformIO $ getCommand "glSignalVkFenceNV"
+
+-- glSignalVkSemaphoreNV -------------------------------------------------------
+
+glSignalVkSemaphoreNV
+  :: MonadIO m
+  => GLuint64 -- ^ @vkSemaphore@.
+  -> m ()
+glSignalVkSemaphoreNV v1 = liftIO $ dyn517 ptr_glSignalVkSemaphoreNV v1
+
+{-# NOINLINE ptr_glSignalVkSemaphoreNV #-}
+ptr_glSignalVkSemaphoreNV :: FunPtr (GLuint64 -> IO ())
+ptr_glSignalVkSemaphoreNV = unsafePerformIO $ getCommand "glSignalVkSemaphoreNV"
+
+-- glSpecializeShader ----------------------------------------------------------
+
+glSpecializeShader
+  :: MonadIO m
+  => GLuint -- ^ @shader@.
+  -> Ptr GLchar -- ^ @pEntryPoint@.
+  -> GLuint -- ^ @numSpecializationConstants@.
+  -> Ptr GLuint -- ^ @pConstantIndex@.
+  -> Ptr GLuint -- ^ @pConstantValue@.
+  -> m ()
+glSpecializeShader v1 v2 v3 v4 v5 = liftIO $ dyn751 ptr_glSpecializeShader v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glSpecializeShader #-}
+ptr_glSpecializeShader :: FunPtr (GLuint -> Ptr GLchar -> GLuint -> Ptr GLuint -> Ptr GLuint -> IO ())
+ptr_glSpecializeShader = unsafePerformIO $ getCommand "glSpecializeShader"
+
+-- glSpecializeShaderARB -------------------------------------------------------
+
+-- | This command is an alias for 'glSpecializeShader'.
+glSpecializeShaderARB
+  :: MonadIO m
+  => GLuint -- ^ @shader@.
+  -> Ptr GLchar -- ^ @pEntryPoint@.
+  -> GLuint -- ^ @numSpecializationConstants@.
+  -> Ptr GLuint -- ^ @pConstantIndex@.
+  -> Ptr GLuint -- ^ @pConstantValue@.
+  -> m ()
+glSpecializeShaderARB v1 v2 v3 v4 v5 = liftIO $ dyn751 ptr_glSpecializeShaderARB v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glSpecializeShaderARB #-}
+ptr_glSpecializeShaderARB :: FunPtr (GLuint -> Ptr GLchar -> GLuint -> Ptr GLuint -> Ptr GLuint -> IO ())
+ptr_glSpecializeShaderARB = unsafePerformIO $ getCommand "glSpecializeShaderARB"
+
+-- glSpriteParameterfSGIX ------------------------------------------------------
+
+glSpriteParameterfSGIX
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [SpriteParameterNameSGIX](Graphics-GL-Groups.html#SpriteParameterNameSGIX).
+  -> GLfloat -- ^ @param@ of type @CheckedFloat32@.
+  -> m ()
+glSpriteParameterfSGIX v1 v2 = liftIO $ dyn0 ptr_glSpriteParameterfSGIX v1 v2
+
+{-# NOINLINE ptr_glSpriteParameterfSGIX #-}
+ptr_glSpriteParameterfSGIX :: FunPtr (GLenum -> GLfloat -> IO ())
+ptr_glSpriteParameterfSGIX = unsafePerformIO $ getCommand "glSpriteParameterfSGIX"
+
+-- glSpriteParameterfvSGIX -----------------------------------------------------
+
+glSpriteParameterfvSGIX
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [SpriteParameterNameSGIX](Graphics-GL-Groups.html#SpriteParameterNameSGIX).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @CheckedFloat32@.
+  -> m ()
+glSpriteParameterfvSGIX v1 v2 = liftIO $ dyn101 ptr_glSpriteParameterfvSGIX v1 v2
+
+{-# NOINLINE ptr_glSpriteParameterfvSGIX #-}
+ptr_glSpriteParameterfvSGIX :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+ptr_glSpriteParameterfvSGIX = unsafePerformIO $ getCommand "glSpriteParameterfvSGIX"
+
+-- glSpriteParameteriSGIX ------------------------------------------------------
+
+glSpriteParameteriSGIX
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [SpriteParameterNameSGIX](Graphics-GL-Groups.html#SpriteParameterNameSGIX).
+  -> GLint -- ^ @param@ of type @CheckedInt32@.
+  -> m ()
+glSpriteParameteriSGIX v1 v2 = liftIO $ dyn58 ptr_glSpriteParameteriSGIX v1 v2
+
+{-# NOINLINE ptr_glSpriteParameteriSGIX #-}
+ptr_glSpriteParameteriSGIX :: FunPtr (GLenum -> GLint -> IO ())
+ptr_glSpriteParameteriSGIX = unsafePerformIO $ getCommand "glSpriteParameteriSGIX"
+
+-- glSpriteParameterivSGIX -----------------------------------------------------
+
+glSpriteParameterivSGIX
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [SpriteParameterNameSGIX](Graphics-GL-Groups.html#SpriteParameterNameSGIX).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @CheckedInt32@.
+  -> m ()
+glSpriteParameterivSGIX v1 v2 = liftIO $ dyn143 ptr_glSpriteParameterivSGIX v1 v2
+
+{-# NOINLINE ptr_glSpriteParameterivSGIX #-}
+ptr_glSpriteParameterivSGIX :: FunPtr (GLenum -> Ptr GLint -> IO ())
+ptr_glSpriteParameterivSGIX = unsafePerformIO $ getCommand "glSpriteParameterivSGIX"
+
+-- glStartInstrumentsSGIX ------------------------------------------------------
+
+glStartInstrumentsSGIX
+  :: MonadIO m
+  => m ()
+glStartInstrumentsSGIX = liftIO $ dyn11 ptr_glStartInstrumentsSGIX
+
+{-# NOINLINE ptr_glStartInstrumentsSGIX #-}
+ptr_glStartInstrumentsSGIX :: FunPtr (IO ())
+ptr_glStartInstrumentsSGIX = unsafePerformIO $ getCommand "glStartInstrumentsSGIX"
+
+-- glStartTilingQCOM -----------------------------------------------------------
+
+glStartTilingQCOM
+  :: MonadIO m
+  => GLuint -- ^ @x@.
+  -> GLuint -- ^ @y@.
+  -> GLuint -- ^ @width@.
+  -> GLuint -- ^ @height@.
+  -> GLbitfield -- ^ @preserveMask@ of type [BufferBitQCOM](Graphics-GL-Groups.html#BufferBitQCOM).
+  -> m ()
+glStartTilingQCOM v1 v2 v3 v4 v5 = liftIO $ dyn752 ptr_glStartTilingQCOM v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glStartTilingQCOM #-}
+ptr_glStartTilingQCOM :: FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> GLbitfield -> IO ())
+ptr_glStartTilingQCOM = unsafePerformIO $ getCommand "glStartTilingQCOM"
+
+-- glStateCaptureNV ------------------------------------------------------------
+
+glStateCaptureNV
+  :: MonadIO m
+  => GLuint -- ^ @state@.
+  -> GLenum -- ^ @mode@.
+  -> m ()
+glStateCaptureNV v1 v2 = liftIO $ dyn18 ptr_glStateCaptureNV v1 v2
+
+{-# NOINLINE ptr_glStateCaptureNV #-}
+ptr_glStateCaptureNV :: FunPtr (GLuint -> GLenum -> IO ())
+ptr_glStateCaptureNV = unsafePerformIO $ getCommand "glStateCaptureNV"
+
+-- glStencilClearTagEXT --------------------------------------------------------
+
+glStencilClearTagEXT
+  :: MonadIO m
+  => GLsizei -- ^ @stencilTagBits@.
+  -> GLuint -- ^ @stencilClearTag@.
+  -> m ()
+glStencilClearTagEXT v1 v2 = liftIO $ dyn753 ptr_glStencilClearTagEXT v1 v2
+
+{-# NOINLINE ptr_glStencilClearTagEXT #-}
+ptr_glStencilClearTagEXT :: FunPtr (GLsizei -> GLuint -> IO ())
+ptr_glStencilClearTagEXT = unsafePerformIO $ getCommand "glStencilClearTagEXT"
+
+-- glStencilFillPathInstancedNV ------------------------------------------------
+
+glStencilFillPathInstancedNV
+  :: MonadIO m
+  => GLsizei -- ^ @numPaths@.
+  -> GLenum -- ^ @pathNameType@ of type [PathElementType](Graphics-GL-Groups.html#PathElementType).
+  -> Ptr a -- ^ @paths@ pointing to @COMPSIZE(numPaths,pathNameType,paths)@ elements of type @PathElement@.
+  -> GLuint -- ^ @pathBase@ of type @Path@.
+  -> GLenum -- ^ @fillMode@ of type [PathFillMode](Graphics-GL-Groups.html#PathFillMode).
+  -> GLuint -- ^ @mask@ of type @MaskedStencilValue@.
+  -> GLenum -- ^ @transformType@ of type [PathTransformType](Graphics-GL-Groups.html#PathTransformType).
+  -> Ptr GLfloat -- ^ @transformValues@ pointing to @COMPSIZE(numPaths,transformType)@ elements of type @GLfloat@.
+  -> m ()
+glStencilFillPathInstancedNV v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn754 ptr_glStencilFillPathInstancedNV v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glStencilFillPathInstancedNV #-}
+ptr_glStencilFillPathInstancedNV :: FunPtr (GLsizei -> GLenum -> Ptr a -> GLuint -> GLenum -> GLuint -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glStencilFillPathInstancedNV = unsafePerformIO $ getCommand "glStencilFillPathInstancedNV"
+
+-- glStencilFillPathNV ---------------------------------------------------------
+
+glStencilFillPathNV
+  :: MonadIO m
+  => GLuint -- ^ @path@ of type @Path@.
+  -> GLenum -- ^ @fillMode@ of type [PathFillMode](Graphics-GL-Groups.html#PathFillMode).
+  -> GLuint -- ^ @mask@ of type @MaskedStencilValue@.
+  -> m ()
+glStencilFillPathNV v1 v2 v3 = liftIO $ dyn755 ptr_glStencilFillPathNV v1 v2 v3
+
+{-# NOINLINE ptr_glStencilFillPathNV #-}
+ptr_glStencilFillPathNV :: FunPtr (GLuint -> GLenum -> GLuint -> IO ())
+ptr_glStencilFillPathNV = unsafePerformIO $ getCommand "glStencilFillPathNV"
+
+-- glStencilFunc ---------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glStencilFunc.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glStencilFunc.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glStencilFunc.xhtml OpenGL 4.x>.
+glStencilFunc
+  :: MonadIO m
+  => GLenum -- ^ @func@ of type [StencilFunction](Graphics-GL-Groups.html#StencilFunction).
+  -> GLint -- ^ @ref@ of type @StencilValue@.
+  -> GLuint -- ^ @mask@ of type @MaskedStencilValue@.
+  -> m ()
+glStencilFunc v1 v2 v3 = liftIO $ dyn643 ptr_glStencilFunc v1 v2 v3
+
+{-# NOINLINE ptr_glStencilFunc #-}
+ptr_glStencilFunc :: FunPtr (GLenum -> GLint -> GLuint -> IO ())
+ptr_glStencilFunc = unsafePerformIO $ getCommand "glStencilFunc"
+
+-- glStencilFuncSeparate -------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glStencilFuncSeparate.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glStencilFuncSeparate.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glStencilFuncSeparate.xhtml OpenGL 4.x>.
+glStencilFuncSeparate
+  :: MonadIO m
+  => GLenum -- ^ @face@ of type [StencilFaceDirection](Graphics-GL-Groups.html#StencilFaceDirection).
+  -> GLenum -- ^ @func@ of type [StencilFunction](Graphics-GL-Groups.html#StencilFunction).
+  -> GLint -- ^ @ref@ of type @StencilValue@.
+  -> GLuint -- ^ @mask@ of type @MaskedStencilValue@.
+  -> m ()
+glStencilFuncSeparate v1 v2 v3 v4 = liftIO $ dyn756 ptr_glStencilFuncSeparate v1 v2 v3 v4
+
+{-# NOINLINE ptr_glStencilFuncSeparate #-}
+ptr_glStencilFuncSeparate :: FunPtr (GLenum -> GLenum -> GLint -> GLuint -> IO ())
+ptr_glStencilFuncSeparate = unsafePerformIO $ getCommand "glStencilFuncSeparate"
+
+-- glStencilFuncSeparateATI ----------------------------------------------------
+
+glStencilFuncSeparateATI
+  :: MonadIO m
+  => GLenum -- ^ @frontfunc@ of type [StencilFunction](Graphics-GL-Groups.html#StencilFunction).
+  -> GLenum -- ^ @backfunc@ of type [StencilFunction](Graphics-GL-Groups.html#StencilFunction).
+  -> GLint -- ^ @ref@ of type @ClampedStencilValue@.
+  -> GLuint -- ^ @mask@ of type @MaskedStencilValue@.
+  -> m ()
+glStencilFuncSeparateATI v1 v2 v3 v4 = liftIO $ dyn756 ptr_glStencilFuncSeparateATI v1 v2 v3 v4
+
+{-# NOINLINE ptr_glStencilFuncSeparateATI #-}
+ptr_glStencilFuncSeparateATI :: FunPtr (GLenum -> GLenum -> GLint -> GLuint -> IO ())
+ptr_glStencilFuncSeparateATI = unsafePerformIO $ getCommand "glStencilFuncSeparateATI"
+
+-- glStencilMask ---------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glStencilMask.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glStencilMask.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glStencilMask.xhtml OpenGL 4.x>.
+glStencilMask
+  :: MonadIO m
+  => GLuint -- ^ @mask@ of type @MaskedStencilValue@.
+  -> m ()
+glStencilMask v1 = liftIO $ dyn3 ptr_glStencilMask v1
+
+{-# NOINLINE ptr_glStencilMask #-}
+ptr_glStencilMask :: FunPtr (GLuint -> IO ())
+ptr_glStencilMask = unsafePerformIO $ getCommand "glStencilMask"
+
+-- glStencilMaskSeparate -------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glStencilMaskSeparate.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glStencilMaskSeparate.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glStencilMaskSeparate.xhtml OpenGL 4.x>.
+glStencilMaskSeparate
+  :: MonadIO m
+  => GLenum -- ^ @face@ of type [StencilFaceDirection](Graphics-GL-Groups.html#StencilFaceDirection).
+  -> GLuint -- ^ @mask@ of type @MaskedStencilValue@.
+  -> m ()
+glStencilMaskSeparate v1 v2 = liftIO $ dyn19 ptr_glStencilMaskSeparate v1 v2
+
+{-# NOINLINE ptr_glStencilMaskSeparate #-}
+ptr_glStencilMaskSeparate :: FunPtr (GLenum -> GLuint -> IO ())
+ptr_glStencilMaskSeparate = unsafePerformIO $ getCommand "glStencilMaskSeparate"
+
+-- glStencilOp -----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glStencilOp.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glStencilOp.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glStencilOp.xhtml OpenGL 4.x>.
+glStencilOp
+  :: MonadIO m
+  => GLenum -- ^ @fail@ of type [StencilOp](Graphics-GL-Groups.html#StencilOp).
+  -> GLenum -- ^ @zfail@ of type [StencilOp](Graphics-GL-Groups.html#StencilOp).
+  -> GLenum -- ^ @zpass@ of type [StencilOp](Graphics-GL-Groups.html#StencilOp).
+  -> m ()
+glStencilOp v1 v2 v3 = liftIO $ dyn757 ptr_glStencilOp v1 v2 v3
+
+{-# NOINLINE ptr_glStencilOp #-}
+ptr_glStencilOp :: FunPtr (GLenum -> GLenum -> GLenum -> IO ())
+ptr_glStencilOp = unsafePerformIO $ getCommand "glStencilOp"
+
+-- glStencilOpSeparate ---------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glStencilOpSeparate.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glStencilOpSeparate.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glStencilOpSeparate.xhtml OpenGL 4.x>.
+glStencilOpSeparate
+  :: MonadIO m
+  => GLenum -- ^ @face@ of type [StencilFaceDirection](Graphics-GL-Groups.html#StencilFaceDirection).
+  -> GLenum -- ^ @sfail@ of type [StencilOp](Graphics-GL-Groups.html#StencilOp).
+  -> GLenum -- ^ @dpfail@ of type [StencilOp](Graphics-GL-Groups.html#StencilOp).
+  -> GLenum -- ^ @dppass@ of type [StencilOp](Graphics-GL-Groups.html#StencilOp).
+  -> m ()
+glStencilOpSeparate v1 v2 v3 v4 = liftIO $ dyn56 ptr_glStencilOpSeparate v1 v2 v3 v4
+
+{-# NOINLINE ptr_glStencilOpSeparate #-}
+ptr_glStencilOpSeparate :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ())
+ptr_glStencilOpSeparate = unsafePerformIO $ getCommand "glStencilOpSeparate"
+
+-- glStencilOpSeparateATI ------------------------------------------------------
+
+-- | This command is an alias for 'glStencilOpSeparate'.
+glStencilOpSeparateATI
+  :: MonadIO m
+  => GLenum -- ^ @face@ of type [StencilFaceDirection](Graphics-GL-Groups.html#StencilFaceDirection).
+  -> GLenum -- ^ @sfail@ of type [StencilOp](Graphics-GL-Groups.html#StencilOp).
+  -> GLenum -- ^ @dpfail@ of type [StencilOp](Graphics-GL-Groups.html#StencilOp).
+  -> GLenum -- ^ @dppass@ of type [StencilOp](Graphics-GL-Groups.html#StencilOp).
+  -> m ()
+glStencilOpSeparateATI v1 v2 v3 v4 = liftIO $ dyn56 ptr_glStencilOpSeparateATI v1 v2 v3 v4
+
+{-# NOINLINE ptr_glStencilOpSeparateATI #-}
+ptr_glStencilOpSeparateATI :: FunPtr (GLenum -> GLenum -> GLenum -> GLenum -> IO ())
+ptr_glStencilOpSeparateATI = unsafePerformIO $ getCommand "glStencilOpSeparateATI"
+
diff --git a/src/Graphics/GL/Functions/F25.hs b/src/Graphics/GL/Functions/F25.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Functions/F25.hs
@@ -0,0 +1,1543 @@
+{-# OPTIONS_HADDOCK hide #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Functions.F25
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- Raw functions from the
+-- <http://www.opengl.org/registry/ OpenGL registry>.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Functions.F25 (
+  glStencilOpValueAMD,
+  glStencilStrokePathInstancedNV,
+  glStencilStrokePathNV,
+  glStencilThenCoverFillPathInstancedNV,
+  glStencilThenCoverFillPathNV,
+  glStencilThenCoverStrokePathInstancedNV,
+  glStencilThenCoverStrokePathNV,
+  glStopInstrumentsSGIX,
+  glStringMarkerGREMEDY,
+  glSubpixelPrecisionBiasNV,
+  glSwizzleEXT,
+  glSyncTextureINTEL,
+  glTagSampleBufferSGIX,
+  glTangent3bEXT,
+  glTangent3bvEXT,
+  glTangent3dEXT,
+  glTangent3dvEXT,
+  glTangent3fEXT,
+  glTangent3fvEXT,
+  glTangent3iEXT,
+  glTangent3ivEXT,
+  glTangent3sEXT,
+  glTangent3svEXT,
+  glTangentPointerEXT,
+  glTbufferMask3DFX,
+  glTessellationFactorAMD,
+  glTessellationModeAMD,
+  glTestFenceAPPLE,
+  glTestFenceNV,
+  glTestObjectAPPLE,
+  glTexAttachMemoryNV,
+  glTexBuffer,
+  glTexBufferARB,
+  glTexBufferEXT,
+  glTexBufferOES,
+  glTexBufferRange,
+  glTexBufferRangeEXT,
+  glTexBufferRangeOES,
+  glTexBumpParameterfvATI,
+  glTexBumpParameterivATI,
+  glTexCoord1bOES,
+  glTexCoord1bvOES,
+  glTexCoord1d,
+  glTexCoord1dv,
+  glTexCoord1f,
+  glTexCoord1fv,
+  glTexCoord1hNV,
+  glTexCoord1hvNV,
+  glTexCoord1i,
+  glTexCoord1iv,
+  glTexCoord1s,
+  glTexCoord1sv,
+  glTexCoord1xOES,
+  glTexCoord1xvOES,
+  glTexCoord2bOES,
+  glTexCoord2bvOES,
+  glTexCoord2d,
+  glTexCoord2dv,
+  glTexCoord2f,
+  glTexCoord2fColor3fVertex3fSUN,
+  glTexCoord2fColor3fVertex3fvSUN,
+  glTexCoord2fColor4fNormal3fVertex3fSUN,
+  glTexCoord2fColor4fNormal3fVertex3fvSUN,
+  glTexCoord2fColor4ubVertex3fSUN,
+  glTexCoord2fColor4ubVertex3fvSUN,
+  glTexCoord2fNormal3fVertex3fSUN,
+  glTexCoord2fNormal3fVertex3fvSUN,
+  glTexCoord2fVertex3fSUN,
+  glTexCoord2fVertex3fvSUN,
+  glTexCoord2fv,
+  glTexCoord2hNV,
+  glTexCoord2hvNV,
+  glTexCoord2i,
+  glTexCoord2iv,
+  glTexCoord2s,
+  glTexCoord2sv,
+  glTexCoord2xOES,
+  glTexCoord2xvOES,
+  glTexCoord3bOES,
+  glTexCoord3bvOES,
+  glTexCoord3d,
+  glTexCoord3dv,
+  glTexCoord3f,
+  glTexCoord3fv,
+  glTexCoord3hNV,
+  glTexCoord3hvNV,
+  glTexCoord3i,
+  glTexCoord3iv,
+  glTexCoord3s,
+  glTexCoord3sv,
+  glTexCoord3xOES,
+  glTexCoord3xvOES,
+  glTexCoord4bOES,
+  glTexCoord4bvOES,
+  glTexCoord4d,
+  glTexCoord4dv,
+  glTexCoord4f,
+  glTexCoord4fColor4fNormal3fVertex4fSUN,
+  glTexCoord4fColor4fNormal3fVertex4fvSUN,
+  glTexCoord4fVertex4fSUN
+) where
+
+import Control.Monad.IO.Class ( MonadIO(..) )
+import Foreign.Ptr
+import Graphics.GL.Foreign
+import Graphics.GL.Types
+import System.IO.Unsafe ( unsafePerformIO )
+
+-- glStencilOpValueAMD ---------------------------------------------------------
+
+glStencilOpValueAMD
+  :: MonadIO m
+  => GLenum -- ^ @face@ of type [StencilFaceDirection](Graphics-GL-Groups.html#StencilFaceDirection).
+  -> GLuint -- ^ @value@.
+  -> m ()
+glStencilOpValueAMD v1 v2 = liftIO $ dyn19 ptr_glStencilOpValueAMD v1 v2
+
+{-# NOINLINE ptr_glStencilOpValueAMD #-}
+ptr_glStencilOpValueAMD :: FunPtr (GLenum -> GLuint -> IO ())
+ptr_glStencilOpValueAMD = unsafePerformIO $ getCommand "glStencilOpValueAMD"
+
+-- glStencilStrokePathInstancedNV ----------------------------------------------
+
+glStencilStrokePathInstancedNV
+  :: MonadIO m
+  => GLsizei -- ^ @numPaths@.
+  -> GLenum -- ^ @pathNameType@ of type [PathElementType](Graphics-GL-Groups.html#PathElementType).
+  -> Ptr a -- ^ @paths@ pointing to @COMPSIZE(numPaths,pathNameType,paths)@ elements of type @PathElement@.
+  -> GLuint -- ^ @pathBase@ of type @Path@.
+  -> GLint -- ^ @reference@ of type @StencilValue@.
+  -> GLuint -- ^ @mask@ of type @MaskedStencilValue@.
+  -> GLenum -- ^ @transformType@ of type [PathTransformType](Graphics-GL-Groups.html#PathTransformType).
+  -> Ptr GLfloat -- ^ @transformValues@ pointing to @COMPSIZE(numPaths,transformType)@ elements of type @GLfloat@.
+  -> m ()
+glStencilStrokePathInstancedNV v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn758 ptr_glStencilStrokePathInstancedNV v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glStencilStrokePathInstancedNV #-}
+ptr_glStencilStrokePathInstancedNV :: FunPtr (GLsizei -> GLenum -> Ptr a -> GLuint -> GLint -> GLuint -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glStencilStrokePathInstancedNV = unsafePerformIO $ getCommand "glStencilStrokePathInstancedNV"
+
+-- glStencilStrokePathNV -------------------------------------------------------
+
+glStencilStrokePathNV
+  :: MonadIO m
+  => GLuint -- ^ @path@ of type @Path@.
+  -> GLint -- ^ @reference@ of type @StencilValue@.
+  -> GLuint -- ^ @mask@ of type @MaskedStencilValue@.
+  -> m ()
+glStencilStrokePathNV v1 v2 v3 = liftIO $ dyn676 ptr_glStencilStrokePathNV v1 v2 v3
+
+{-# NOINLINE ptr_glStencilStrokePathNV #-}
+ptr_glStencilStrokePathNV :: FunPtr (GLuint -> GLint -> GLuint -> IO ())
+ptr_glStencilStrokePathNV = unsafePerformIO $ getCommand "glStencilStrokePathNV"
+
+-- glStencilThenCoverFillPathInstancedNV ---------------------------------------
+
+glStencilThenCoverFillPathInstancedNV
+  :: MonadIO m
+  => GLsizei -- ^ @numPaths@.
+  -> GLenum -- ^ @pathNameType@.
+  -> Ptr a -- ^ @paths@.
+  -> GLuint -- ^ @pathBase@.
+  -> GLenum -- ^ @fillMode@.
+  -> GLuint -- ^ @mask@.
+  -> GLenum -- ^ @coverMode@.
+  -> GLenum -- ^ @transformType@.
+  -> Ptr GLfloat -- ^ @transformValues@.
+  -> m ()
+glStencilThenCoverFillPathInstancedNV v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO $ dyn759 ptr_glStencilThenCoverFillPathInstancedNV v1 v2 v3 v4 v5 v6 v7 v8 v9
+
+{-# NOINLINE ptr_glStencilThenCoverFillPathInstancedNV #-}
+ptr_glStencilThenCoverFillPathInstancedNV :: FunPtr (GLsizei -> GLenum -> Ptr a -> GLuint -> GLenum -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glStencilThenCoverFillPathInstancedNV = unsafePerformIO $ getCommand "glStencilThenCoverFillPathInstancedNV"
+
+-- glStencilThenCoverFillPathNV ------------------------------------------------
+
+glStencilThenCoverFillPathNV
+  :: MonadIO m
+  => GLuint -- ^ @path@.
+  -> GLenum -- ^ @fillMode@.
+  -> GLuint -- ^ @mask@.
+  -> GLenum -- ^ @coverMode@.
+  -> m ()
+glStencilThenCoverFillPathNV v1 v2 v3 v4 = liftIO $ dyn760 ptr_glStencilThenCoverFillPathNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glStencilThenCoverFillPathNV #-}
+ptr_glStencilThenCoverFillPathNV :: FunPtr (GLuint -> GLenum -> GLuint -> GLenum -> IO ())
+ptr_glStencilThenCoverFillPathNV = unsafePerformIO $ getCommand "glStencilThenCoverFillPathNV"
+
+-- glStencilThenCoverStrokePathInstancedNV -------------------------------------
+
+glStencilThenCoverStrokePathInstancedNV
+  :: MonadIO m
+  => GLsizei -- ^ @numPaths@.
+  -> GLenum -- ^ @pathNameType@.
+  -> Ptr a -- ^ @paths@.
+  -> GLuint -- ^ @pathBase@.
+  -> GLint -- ^ @reference@.
+  -> GLuint -- ^ @mask@.
+  -> GLenum -- ^ @coverMode@.
+  -> GLenum -- ^ @transformType@.
+  -> Ptr GLfloat -- ^ @transformValues@.
+  -> m ()
+glStencilThenCoverStrokePathInstancedNV v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO $ dyn761 ptr_glStencilThenCoverStrokePathInstancedNV v1 v2 v3 v4 v5 v6 v7 v8 v9
+
+{-# NOINLINE ptr_glStencilThenCoverStrokePathInstancedNV #-}
+ptr_glStencilThenCoverStrokePathInstancedNV :: FunPtr (GLsizei -> GLenum -> Ptr a -> GLuint -> GLint -> GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glStencilThenCoverStrokePathInstancedNV = unsafePerformIO $ getCommand "glStencilThenCoverStrokePathInstancedNV"
+
+-- glStencilThenCoverStrokePathNV ----------------------------------------------
+
+glStencilThenCoverStrokePathNV
+  :: MonadIO m
+  => GLuint -- ^ @path@.
+  -> GLint -- ^ @reference@.
+  -> GLuint -- ^ @mask@.
+  -> GLenum -- ^ @coverMode@.
+  -> m ()
+glStencilThenCoverStrokePathNV v1 v2 v3 v4 = liftIO $ dyn762 ptr_glStencilThenCoverStrokePathNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glStencilThenCoverStrokePathNV #-}
+ptr_glStencilThenCoverStrokePathNV :: FunPtr (GLuint -> GLint -> GLuint -> GLenum -> IO ())
+ptr_glStencilThenCoverStrokePathNV = unsafePerformIO $ getCommand "glStencilThenCoverStrokePathNV"
+
+-- glStopInstrumentsSGIX -------------------------------------------------------
+
+glStopInstrumentsSGIX
+  :: MonadIO m
+  => GLint -- ^ @marker@.
+  -> m ()
+glStopInstrumentsSGIX v1 = liftIO $ dyn13 ptr_glStopInstrumentsSGIX v1
+
+{-# NOINLINE ptr_glStopInstrumentsSGIX #-}
+ptr_glStopInstrumentsSGIX :: FunPtr (GLint -> IO ())
+ptr_glStopInstrumentsSGIX = unsafePerformIO $ getCommand "glStopInstrumentsSGIX"
+
+-- glStringMarkerGREMEDY -------------------------------------------------------
+
+glStringMarkerGREMEDY
+  :: MonadIO m
+  => GLsizei -- ^ @len@.
+  -> Ptr a -- ^ @string@ pointing to @len@ elements of type @a@.
+  -> m ()
+glStringMarkerGREMEDY v1 v2 = liftIO $ dyn271 ptr_glStringMarkerGREMEDY v1 v2
+
+{-# NOINLINE ptr_glStringMarkerGREMEDY #-}
+ptr_glStringMarkerGREMEDY :: FunPtr (GLsizei -> Ptr a -> IO ())
+ptr_glStringMarkerGREMEDY = unsafePerformIO $ getCommand "glStringMarkerGREMEDY"
+
+-- glSubpixelPrecisionBiasNV ---------------------------------------------------
+
+glSubpixelPrecisionBiasNV
+  :: MonadIO m
+  => GLuint -- ^ @xbits@.
+  -> GLuint -- ^ @ybits@.
+  -> m ()
+glSubpixelPrecisionBiasNV v1 v2 = liftIO $ dyn4 ptr_glSubpixelPrecisionBiasNV v1 v2
+
+{-# NOINLINE ptr_glSubpixelPrecisionBiasNV #-}
+ptr_glSubpixelPrecisionBiasNV :: FunPtr (GLuint -> GLuint -> IO ())
+ptr_glSubpixelPrecisionBiasNV = unsafePerformIO $ getCommand "glSubpixelPrecisionBiasNV"
+
+-- glSwizzleEXT ----------------------------------------------------------------
+
+glSwizzleEXT
+  :: MonadIO m
+  => GLuint -- ^ @res@.
+  -> GLuint -- ^ @in@.
+  -> GLenum -- ^ @outX@ of type [VertexShaderCoordOutEXT](Graphics-GL-Groups.html#VertexShaderCoordOutEXT).
+  -> GLenum -- ^ @outY@ of type [VertexShaderCoordOutEXT](Graphics-GL-Groups.html#VertexShaderCoordOutEXT).
+  -> GLenum -- ^ @outZ@ of type [VertexShaderCoordOutEXT](Graphics-GL-Groups.html#VertexShaderCoordOutEXT).
+  -> GLenum -- ^ @outW@ of type [VertexShaderCoordOutEXT](Graphics-GL-Groups.html#VertexShaderCoordOutEXT).
+  -> m ()
+glSwizzleEXT v1 v2 v3 v4 v5 v6 = liftIO $ dyn763 ptr_glSwizzleEXT v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glSwizzleEXT #-}
+ptr_glSwizzleEXT :: FunPtr (GLuint -> GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
+ptr_glSwizzleEXT = unsafePerformIO $ getCommand "glSwizzleEXT"
+
+-- glSyncTextureINTEL ----------------------------------------------------------
+
+glSyncTextureINTEL
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> m ()
+glSyncTextureINTEL v1 = liftIO $ dyn3 ptr_glSyncTextureINTEL v1
+
+{-# NOINLINE ptr_glSyncTextureINTEL #-}
+ptr_glSyncTextureINTEL :: FunPtr (GLuint -> IO ())
+ptr_glSyncTextureINTEL = unsafePerformIO $ getCommand "glSyncTextureINTEL"
+
+-- glTagSampleBufferSGIX -------------------------------------------------------
+
+glTagSampleBufferSGIX
+  :: MonadIO m
+  => m ()
+glTagSampleBufferSGIX = liftIO $ dyn11 ptr_glTagSampleBufferSGIX
+
+{-# NOINLINE ptr_glTagSampleBufferSGIX #-}
+ptr_glTagSampleBufferSGIX :: FunPtr (IO ())
+ptr_glTagSampleBufferSGIX = unsafePerformIO $ getCommand "glTagSampleBufferSGIX"
+
+-- glTangent3bEXT --------------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glTangent3bvEXT'.
+glTangent3bEXT
+  :: MonadIO m
+  => GLbyte -- ^ @tx@.
+  -> GLbyte -- ^ @ty@.
+  -> GLbyte -- ^ @tz@.
+  -> m ()
+glTangent3bEXT v1 v2 v3 = liftIO $ dyn39 ptr_glTangent3bEXT v1 v2 v3
+
+{-# NOINLINE ptr_glTangent3bEXT #-}
+ptr_glTangent3bEXT :: FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
+ptr_glTangent3bEXT = unsafePerformIO $ getCommand "glTangent3bEXT"
+
+-- glTangent3bvEXT -------------------------------------------------------------
+
+glTangent3bvEXT
+  :: MonadIO m
+  => Ptr GLbyte -- ^ @v@ pointing to @3@ elements of type @GLbyte@.
+  -> m ()
+glTangent3bvEXT v1 = liftIO $ dyn40 ptr_glTangent3bvEXT v1
+
+{-# NOINLINE ptr_glTangent3bvEXT #-}
+ptr_glTangent3bvEXT :: FunPtr (Ptr GLbyte -> IO ())
+ptr_glTangent3bvEXT = unsafePerformIO $ getCommand "glTangent3bvEXT"
+
+-- glTangent3dEXT --------------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glTangent3dvEXT'.
+glTangent3dEXT
+  :: MonadIO m
+  => GLdouble -- ^ @tx@ of type @CoordD@.
+  -> GLdouble -- ^ @ty@ of type @CoordD@.
+  -> GLdouble -- ^ @tz@ of type @CoordD@.
+  -> m ()
+glTangent3dEXT v1 v2 v3 = liftIO $ dyn41 ptr_glTangent3dEXT v1 v2 v3
+
+{-# NOINLINE ptr_glTangent3dEXT #-}
+ptr_glTangent3dEXT :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
+ptr_glTangent3dEXT = unsafePerformIO $ getCommand "glTangent3dEXT"
+
+-- glTangent3dvEXT -------------------------------------------------------------
+
+glTangent3dvEXT
+  :: MonadIO m
+  => Ptr GLdouble -- ^ @v@ pointing to @3@ elements of type @CoordD@.
+  -> m ()
+glTangent3dvEXT v1 = liftIO $ dyn42 ptr_glTangent3dvEXT v1
+
+{-# NOINLINE ptr_glTangent3dvEXT #-}
+ptr_glTangent3dvEXT :: FunPtr (Ptr GLdouble -> IO ())
+ptr_glTangent3dvEXT = unsafePerformIO $ getCommand "glTangent3dvEXT"
+
+-- glTangent3fEXT --------------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glTangent3fvEXT'.
+glTangent3fEXT
+  :: MonadIO m
+  => GLfloat -- ^ @tx@ of type @CoordF@.
+  -> GLfloat -- ^ @ty@ of type @CoordF@.
+  -> GLfloat -- ^ @tz@ of type @CoordF@.
+  -> m ()
+glTangent3fEXT v1 v2 v3 = liftIO $ dyn43 ptr_glTangent3fEXT v1 v2 v3
+
+{-# NOINLINE ptr_glTangent3fEXT #-}
+ptr_glTangent3fEXT :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glTangent3fEXT = unsafePerformIO $ getCommand "glTangent3fEXT"
+
+-- glTangent3fvEXT -------------------------------------------------------------
+
+glTangent3fvEXT
+  :: MonadIO m
+  => Ptr GLfloat -- ^ @v@ pointing to @3@ elements of type @CoordF@.
+  -> m ()
+glTangent3fvEXT v1 = liftIO $ dyn44 ptr_glTangent3fvEXT v1
+
+{-# NOINLINE ptr_glTangent3fvEXT #-}
+ptr_glTangent3fvEXT :: FunPtr (Ptr GLfloat -> IO ())
+ptr_glTangent3fvEXT = unsafePerformIO $ getCommand "glTangent3fvEXT"
+
+-- glTangent3iEXT --------------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glTangent3ivEXT'.
+glTangent3iEXT
+  :: MonadIO m
+  => GLint -- ^ @tx@.
+  -> GLint -- ^ @ty@.
+  -> GLint -- ^ @tz@.
+  -> m ()
+glTangent3iEXT v1 v2 v3 = liftIO $ dyn45 ptr_glTangent3iEXT v1 v2 v3
+
+{-# NOINLINE ptr_glTangent3iEXT #-}
+ptr_glTangent3iEXT :: FunPtr (GLint -> GLint -> GLint -> IO ())
+ptr_glTangent3iEXT = unsafePerformIO $ getCommand "glTangent3iEXT"
+
+-- glTangent3ivEXT -------------------------------------------------------------
+
+glTangent3ivEXT
+  :: MonadIO m
+  => Ptr GLint -- ^ @v@ pointing to @3@ elements of type @GLint@.
+  -> m ()
+glTangent3ivEXT v1 = liftIO $ dyn46 ptr_glTangent3ivEXT v1
+
+{-# NOINLINE ptr_glTangent3ivEXT #-}
+ptr_glTangent3ivEXT :: FunPtr (Ptr GLint -> IO ())
+ptr_glTangent3ivEXT = unsafePerformIO $ getCommand "glTangent3ivEXT"
+
+-- glTangent3sEXT --------------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glTangent3svEXT'.
+glTangent3sEXT
+  :: MonadIO m
+  => GLshort -- ^ @tx@.
+  -> GLshort -- ^ @ty@.
+  -> GLshort -- ^ @tz@.
+  -> m ()
+glTangent3sEXT v1 v2 v3 = liftIO $ dyn47 ptr_glTangent3sEXT v1 v2 v3
+
+{-# NOINLINE ptr_glTangent3sEXT #-}
+ptr_glTangent3sEXT :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
+ptr_glTangent3sEXT = unsafePerformIO $ getCommand "glTangent3sEXT"
+
+-- glTangent3svEXT -------------------------------------------------------------
+
+glTangent3svEXT
+  :: MonadIO m
+  => Ptr GLshort -- ^ @v@ pointing to @3@ elements of type @GLshort@.
+  -> m ()
+glTangent3svEXT v1 = liftIO $ dyn48 ptr_glTangent3svEXT v1
+
+{-# NOINLINE ptr_glTangent3svEXT #-}
+ptr_glTangent3svEXT :: FunPtr (Ptr GLshort -> IO ())
+ptr_glTangent3svEXT = unsafePerformIO $ getCommand "glTangent3svEXT"
+
+-- glTangentPointerEXT ---------------------------------------------------------
+
+glTangentPointerEXT
+  :: MonadIO m
+  => GLenum -- ^ @type@ of type [TangentPointerTypeEXT](Graphics-GL-Groups.html#TangentPointerTypeEXT).
+  -> GLsizei -- ^ @stride@.
+  -> Ptr a -- ^ @pointer@ pointing to @COMPSIZE(type,stride)@ elements of type @a@.
+  -> m ()
+glTangentPointerEXT v1 v2 v3 = liftIO $ dyn49 ptr_glTangentPointerEXT v1 v2 v3
+
+{-# NOINLINE ptr_glTangentPointerEXT #-}
+ptr_glTangentPointerEXT :: FunPtr (GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glTangentPointerEXT = unsafePerformIO $ getCommand "glTangentPointerEXT"
+
+-- glTbufferMask3DFX -----------------------------------------------------------
+
+glTbufferMask3DFX
+  :: MonadIO m
+  => GLuint -- ^ @mask@.
+  -> m ()
+glTbufferMask3DFX v1 = liftIO $ dyn3 ptr_glTbufferMask3DFX v1
+
+{-# NOINLINE ptr_glTbufferMask3DFX #-}
+ptr_glTbufferMask3DFX :: FunPtr (GLuint -> IO ())
+ptr_glTbufferMask3DFX = unsafePerformIO $ getCommand "glTbufferMask3DFX"
+
+-- glTessellationFactorAMD -----------------------------------------------------
+
+glTessellationFactorAMD
+  :: MonadIO m
+  => GLfloat -- ^ @factor@.
+  -> m ()
+glTessellationFactorAMD v1 = liftIO $ dyn85 ptr_glTessellationFactorAMD v1
+
+{-# NOINLINE ptr_glTessellationFactorAMD #-}
+ptr_glTessellationFactorAMD :: FunPtr (GLfloat -> IO ())
+ptr_glTessellationFactorAMD = unsafePerformIO $ getCommand "glTessellationFactorAMD"
+
+-- glTessellationModeAMD -------------------------------------------------------
+
+glTessellationModeAMD
+  :: MonadIO m
+  => GLenum -- ^ @mode@.
+  -> m ()
+glTessellationModeAMD v1 = liftIO $ dyn5 ptr_glTessellationModeAMD v1
+
+{-# NOINLINE ptr_glTessellationModeAMD #-}
+ptr_glTessellationModeAMD :: FunPtr (GLenum -> IO ())
+ptr_glTessellationModeAMD = unsafePerformIO $ getCommand "glTessellationModeAMD"
+
+-- glTestFenceAPPLE ------------------------------------------------------------
+
+glTestFenceAPPLE
+  :: MonadIO m
+  => GLuint -- ^ @fence@ of type @FenceNV@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glTestFenceAPPLE v1 = liftIO $ dyn284 ptr_glTestFenceAPPLE v1
+
+{-# NOINLINE ptr_glTestFenceAPPLE #-}
+ptr_glTestFenceAPPLE :: FunPtr (GLuint -> IO GLboolean)
+ptr_glTestFenceAPPLE = unsafePerformIO $ getCommand "glTestFenceAPPLE"
+
+-- glTestFenceNV ---------------------------------------------------------------
+
+glTestFenceNV
+  :: MonadIO m
+  => GLuint -- ^ @fence@ of type @FenceNV@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glTestFenceNV v1 = liftIO $ dyn284 ptr_glTestFenceNV v1
+
+{-# NOINLINE ptr_glTestFenceNV #-}
+ptr_glTestFenceNV :: FunPtr (GLuint -> IO GLboolean)
+ptr_glTestFenceNV = unsafePerformIO $ getCommand "glTestFenceNV"
+
+-- glTestObjectAPPLE -----------------------------------------------------------
+
+glTestObjectAPPLE
+  :: MonadIO m
+  => GLenum -- ^ @object@ of type [ObjectTypeAPPLE](Graphics-GL-Groups.html#ObjectTypeAPPLE).
+  -> GLuint -- ^ @name@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glTestObjectAPPLE v1 v2 = liftIO $ dyn502 ptr_glTestObjectAPPLE v1 v2
+
+{-# NOINLINE ptr_glTestObjectAPPLE #-}
+ptr_glTestObjectAPPLE :: FunPtr (GLenum -> GLuint -> IO GLboolean)
+ptr_glTestObjectAPPLE = unsafePerformIO $ getCommand "glTestObjectAPPLE"
+
+-- glTexAttachMemoryNV ---------------------------------------------------------
+
+glTexAttachMemoryNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLuint -- ^ @memory@.
+  -> GLuint64 -- ^ @offset@.
+  -> m ()
+glTexAttachMemoryNV v1 v2 v3 = liftIO $ dyn62 ptr_glTexAttachMemoryNV v1 v2 v3
+
+{-# NOINLINE ptr_glTexAttachMemoryNV #-}
+ptr_glTexAttachMemoryNV :: FunPtr (GLenum -> GLuint -> GLuint64 -> IO ())
+ptr_glTexAttachMemoryNV = unsafePerformIO $ getCommand "glTexAttachMemoryNV"
+
+-- glTexBuffer -----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glTexBuffer.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glTexBuffer.xhtml OpenGL 4.x>.
+glTexBuffer
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLuint -- ^ @buffer@.
+  -> m ()
+glTexBuffer v1 v2 v3 = liftIO $ dyn32 ptr_glTexBuffer v1 v2 v3
+
+{-# NOINLINE ptr_glTexBuffer #-}
+ptr_glTexBuffer :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
+ptr_glTexBuffer = unsafePerformIO $ getCommand "glTexBuffer"
+
+-- glTexBufferARB --------------------------------------------------------------
+
+-- | This command is an alias for 'glTexBuffer'.
+glTexBufferARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLuint -- ^ @buffer@.
+  -> m ()
+glTexBufferARB v1 v2 v3 = liftIO $ dyn32 ptr_glTexBufferARB v1 v2 v3
+
+{-# NOINLINE ptr_glTexBufferARB #-}
+ptr_glTexBufferARB :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
+ptr_glTexBufferARB = unsafePerformIO $ getCommand "glTexBufferARB"
+
+-- glTexBufferEXT --------------------------------------------------------------
+
+-- | This command is an alias for 'glTexBuffer'.
+glTexBufferEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLuint -- ^ @buffer@.
+  -> m ()
+glTexBufferEXT v1 v2 v3 = liftIO $ dyn32 ptr_glTexBufferEXT v1 v2 v3
+
+{-# NOINLINE ptr_glTexBufferEXT #-}
+ptr_glTexBufferEXT :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
+ptr_glTexBufferEXT = unsafePerformIO $ getCommand "glTexBufferEXT"
+
+-- glTexBufferOES --------------------------------------------------------------
+
+-- | This command is an alias for 'glTexBuffer'.
+glTexBufferOES
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLuint -- ^ @buffer@.
+  -> m ()
+glTexBufferOES v1 v2 v3 = liftIO $ dyn32 ptr_glTexBufferOES v1 v2 v3
+
+{-# NOINLINE ptr_glTexBufferOES #-}
+ptr_glTexBufferOES :: FunPtr (GLenum -> GLenum -> GLuint -> IO ())
+ptr_glTexBufferOES = unsafePerformIO $ getCommand "glTexBufferOES"
+
+-- glTexBufferRange ------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glTexBufferRange.xhtml OpenGL 4.x>.
+glTexBufferRange
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLuint -- ^ @buffer@.
+  -> GLintptr -- ^ @offset@ of type @BufferOffset@.
+  -> GLsizeiptr -- ^ @size@ of type @BufferSize@.
+  -> m ()
+glTexBufferRange v1 v2 v3 v4 v5 = liftIO $ dyn764 ptr_glTexBufferRange v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glTexBufferRange #-}
+ptr_glTexBufferRange :: FunPtr (GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> IO ())
+ptr_glTexBufferRange = unsafePerformIO $ getCommand "glTexBufferRange"
+
+-- glTexBufferRangeEXT ---------------------------------------------------------
+
+-- | This command is an alias for 'glTexBufferRange'.
+glTexBufferRangeEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLuint -- ^ @buffer@.
+  -> GLintptr -- ^ @offset@ of type @BufferOffset@.
+  -> GLsizeiptr -- ^ @size@ of type @BufferSize@.
+  -> m ()
+glTexBufferRangeEXT v1 v2 v3 v4 v5 = liftIO $ dyn764 ptr_glTexBufferRangeEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glTexBufferRangeEXT #-}
+ptr_glTexBufferRangeEXT :: FunPtr (GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> IO ())
+ptr_glTexBufferRangeEXT = unsafePerformIO $ getCommand "glTexBufferRangeEXT"
+
+-- glTexBufferRangeOES ---------------------------------------------------------
+
+-- | This command is an alias for 'glTexBufferRange'.
+glTexBufferRangeOES
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLuint -- ^ @buffer@.
+  -> GLintptr -- ^ @offset@ of type @BufferOffset@.
+  -> GLsizeiptr -- ^ @size@ of type @BufferSize@.
+  -> m ()
+glTexBufferRangeOES v1 v2 v3 v4 v5 = liftIO $ dyn764 ptr_glTexBufferRangeOES v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glTexBufferRangeOES #-}
+ptr_glTexBufferRangeOES :: FunPtr (GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> IO ())
+ptr_glTexBufferRangeOES = unsafePerformIO $ getCommand "glTexBufferRangeOES"
+
+-- glTexBumpParameterfvATI -----------------------------------------------------
+
+glTexBumpParameterfvATI
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [TexBumpParameterATI](Graphics-GL-Groups.html#TexBumpParameterATI).
+  -> Ptr GLfloat -- ^ @param@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
+  -> m ()
+glTexBumpParameterfvATI v1 v2 = liftIO $ dyn101 ptr_glTexBumpParameterfvATI v1 v2
+
+{-# NOINLINE ptr_glTexBumpParameterfvATI #-}
+ptr_glTexBumpParameterfvATI :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+ptr_glTexBumpParameterfvATI = unsafePerformIO $ getCommand "glTexBumpParameterfvATI"
+
+-- glTexBumpParameterivATI -----------------------------------------------------
+
+glTexBumpParameterivATI
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [TexBumpParameterATI](Graphics-GL-Groups.html#TexBumpParameterATI).
+  -> Ptr GLint -- ^ @param@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glTexBumpParameterivATI v1 v2 = liftIO $ dyn143 ptr_glTexBumpParameterivATI v1 v2
+
+{-# NOINLINE ptr_glTexBumpParameterivATI #-}
+ptr_glTexBumpParameterivATI :: FunPtr (GLenum -> Ptr GLint -> IO ())
+ptr_glTexBumpParameterivATI = unsafePerformIO $ getCommand "glTexBumpParameterivATI"
+
+-- glTexCoord1bOES -------------------------------------------------------------
+
+glTexCoord1bOES
+  :: MonadIO m
+  => GLbyte -- ^ @s@.
+  -> m ()
+glTexCoord1bOES v1 = liftIO $ dyn484 ptr_glTexCoord1bOES v1
+
+{-# NOINLINE ptr_glTexCoord1bOES #-}
+ptr_glTexCoord1bOES :: FunPtr (GLbyte -> IO ())
+ptr_glTexCoord1bOES = unsafePerformIO $ getCommand "glTexCoord1bOES"
+
+-- glTexCoord1bvOES ------------------------------------------------------------
+
+glTexCoord1bvOES
+  :: MonadIO m
+  => Ptr GLbyte -- ^ @coords@ pointing to @1@ element of type @GLbyte@.
+  -> m ()
+glTexCoord1bvOES v1 = liftIO $ dyn40 ptr_glTexCoord1bvOES v1
+
+{-# NOINLINE ptr_glTexCoord1bvOES #-}
+ptr_glTexCoord1bvOES :: FunPtr (Ptr GLbyte -> IO ())
+ptr_glTexCoord1bvOES = unsafePerformIO $ getCommand "glTexCoord1bvOES"
+
+-- glTexCoord1d ----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord.xml OpenGL 2.x>. The vector equivalent of this command is 'glTexCoord1dv'.
+glTexCoord1d
+  :: MonadIO m
+  => GLdouble -- ^ @s@ of type @CoordD@.
+  -> m ()
+glTexCoord1d v1 = liftIO $ dyn84 ptr_glTexCoord1d v1
+
+{-# NOINLINE ptr_glTexCoord1d #-}
+ptr_glTexCoord1d :: FunPtr (GLdouble -> IO ())
+ptr_glTexCoord1d = unsafePerformIO $ getCommand "glTexCoord1d"
+
+-- glTexCoord1dv ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord.xml OpenGL 2.x>.
+glTexCoord1dv
+  :: MonadIO m
+  => Ptr GLdouble -- ^ @v@ pointing to @1@ element of type @CoordD@.
+  -> m ()
+glTexCoord1dv v1 = liftIO $ dyn42 ptr_glTexCoord1dv v1
+
+{-# NOINLINE ptr_glTexCoord1dv #-}
+ptr_glTexCoord1dv :: FunPtr (Ptr GLdouble -> IO ())
+ptr_glTexCoord1dv = unsafePerformIO $ getCommand "glTexCoord1dv"
+
+-- glTexCoord1f ----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord.xml OpenGL 2.x>. The vector equivalent of this command is 'glTexCoord1fv'.
+glTexCoord1f
+  :: MonadIO m
+  => GLfloat -- ^ @s@ of type @CoordF@.
+  -> m ()
+glTexCoord1f v1 = liftIO $ dyn85 ptr_glTexCoord1f v1
+
+{-# NOINLINE ptr_glTexCoord1f #-}
+ptr_glTexCoord1f :: FunPtr (GLfloat -> IO ())
+ptr_glTexCoord1f = unsafePerformIO $ getCommand "glTexCoord1f"
+
+-- glTexCoord1fv ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord.xml OpenGL 2.x>.
+glTexCoord1fv
+  :: MonadIO m
+  => Ptr GLfloat -- ^ @v@ pointing to @1@ element of type @CoordF@.
+  -> m ()
+glTexCoord1fv v1 = liftIO $ dyn44 ptr_glTexCoord1fv v1
+
+{-# NOINLINE ptr_glTexCoord1fv #-}
+ptr_glTexCoord1fv :: FunPtr (Ptr GLfloat -> IO ())
+ptr_glTexCoord1fv = unsafePerformIO $ getCommand "glTexCoord1fv"
+
+-- glTexCoord1hNV --------------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glTexCoord1hvNV'.
+glTexCoord1hNV
+  :: MonadIO m
+  => GLhalfNV -- ^ @s@ of type @Half16NV@.
+  -> m ()
+glTexCoord1hNV v1 = liftIO $ dyn292 ptr_glTexCoord1hNV v1
+
+{-# NOINLINE ptr_glTexCoord1hNV #-}
+ptr_glTexCoord1hNV :: FunPtr (GLhalfNV -> IO ())
+ptr_glTexCoord1hNV = unsafePerformIO $ getCommand "glTexCoord1hNV"
+
+-- glTexCoord1hvNV -------------------------------------------------------------
+
+glTexCoord1hvNV
+  :: MonadIO m
+  => Ptr GLhalfNV -- ^ @v@ pointing to @1@ element of type @Half16NV@.
+  -> m ()
+glTexCoord1hvNV v1 = liftIO $ dyn106 ptr_glTexCoord1hvNV v1
+
+{-# NOINLINE ptr_glTexCoord1hvNV #-}
+ptr_glTexCoord1hvNV :: FunPtr (Ptr GLhalfNV -> IO ())
+ptr_glTexCoord1hvNV = unsafePerformIO $ getCommand "glTexCoord1hvNV"
+
+-- glTexCoord1i ----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord.xml OpenGL 2.x>. The vector equivalent of this command is 'glTexCoord1iv'.
+glTexCoord1i
+  :: MonadIO m
+  => GLint -- ^ @s@ of type @CoordI@.
+  -> m ()
+glTexCoord1i v1 = liftIO $ dyn13 ptr_glTexCoord1i v1
+
+{-# NOINLINE ptr_glTexCoord1i #-}
+ptr_glTexCoord1i :: FunPtr (GLint -> IO ())
+ptr_glTexCoord1i = unsafePerformIO $ getCommand "glTexCoord1i"
+
+-- glTexCoord1iv ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord.xml OpenGL 2.x>.
+glTexCoord1iv
+  :: MonadIO m
+  => Ptr GLint -- ^ @v@ pointing to @1@ element of type @CoordI@.
+  -> m ()
+glTexCoord1iv v1 = liftIO $ dyn46 ptr_glTexCoord1iv v1
+
+{-# NOINLINE ptr_glTexCoord1iv #-}
+ptr_glTexCoord1iv :: FunPtr (Ptr GLint -> IO ())
+ptr_glTexCoord1iv = unsafePerformIO $ getCommand "glTexCoord1iv"
+
+-- glTexCoord1s ----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord.xml OpenGL 2.x>. The vector equivalent of this command is 'glTexCoord1sv'.
+glTexCoord1s
+  :: MonadIO m
+  => GLshort -- ^ @s@ of type @CoordS@.
+  -> m ()
+glTexCoord1s v1 = liftIO $ dyn485 ptr_glTexCoord1s v1
+
+{-# NOINLINE ptr_glTexCoord1s #-}
+ptr_glTexCoord1s :: FunPtr (GLshort -> IO ())
+ptr_glTexCoord1s = unsafePerformIO $ getCommand "glTexCoord1s"
+
+-- glTexCoord1sv ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord.xml OpenGL 2.x>.
+glTexCoord1sv
+  :: MonadIO m
+  => Ptr GLshort -- ^ @v@ pointing to @1@ element of type @CoordS@.
+  -> m ()
+glTexCoord1sv v1 = liftIO $ dyn48 ptr_glTexCoord1sv v1
+
+{-# NOINLINE ptr_glTexCoord1sv #-}
+ptr_glTexCoord1sv :: FunPtr (Ptr GLshort -> IO ())
+ptr_glTexCoord1sv = unsafePerformIO $ getCommand "glTexCoord1sv"
+
+-- glTexCoord1xOES -------------------------------------------------------------
+
+glTexCoord1xOES
+  :: MonadIO m
+  => GLfixed -- ^ @s@.
+  -> m ()
+glTexCoord1xOES v1 = liftIO $ dyn87 ptr_glTexCoord1xOES v1
+
+{-# NOINLINE ptr_glTexCoord1xOES #-}
+ptr_glTexCoord1xOES :: FunPtr (GLfixed -> IO ())
+ptr_glTexCoord1xOES = unsafePerformIO $ getCommand "glTexCoord1xOES"
+
+-- glTexCoord1xvOES ------------------------------------------------------------
+
+glTexCoord1xvOES
+  :: MonadIO m
+  => Ptr GLfixed -- ^ @coords@ pointing to @1@ element of type @GLfixed@.
+  -> m ()
+glTexCoord1xvOES v1 = liftIO $ dyn114 ptr_glTexCoord1xvOES v1
+
+{-# NOINLINE ptr_glTexCoord1xvOES #-}
+ptr_glTexCoord1xvOES :: FunPtr (Ptr GLfixed -> IO ())
+ptr_glTexCoord1xvOES = unsafePerformIO $ getCommand "glTexCoord1xvOES"
+
+-- glTexCoord2bOES -------------------------------------------------------------
+
+glTexCoord2bOES
+  :: MonadIO m
+  => GLbyte -- ^ @s@.
+  -> GLbyte -- ^ @t@.
+  -> m ()
+glTexCoord2bOES v1 v2 = liftIO $ dyn765 ptr_glTexCoord2bOES v1 v2
+
+{-# NOINLINE ptr_glTexCoord2bOES #-}
+ptr_glTexCoord2bOES :: FunPtr (GLbyte -> GLbyte -> IO ())
+ptr_glTexCoord2bOES = unsafePerformIO $ getCommand "glTexCoord2bOES"
+
+-- glTexCoord2bvOES ------------------------------------------------------------
+
+glTexCoord2bvOES
+  :: MonadIO m
+  => Ptr GLbyte -- ^ @coords@ pointing to @2@ elements of type @GLbyte@.
+  -> m ()
+glTexCoord2bvOES v1 = liftIO $ dyn40 ptr_glTexCoord2bvOES v1
+
+{-# NOINLINE ptr_glTexCoord2bvOES #-}
+ptr_glTexCoord2bvOES :: FunPtr (Ptr GLbyte -> IO ())
+ptr_glTexCoord2bvOES = unsafePerformIO $ getCommand "glTexCoord2bvOES"
+
+-- glTexCoord2d ----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord.xml OpenGL 2.x>. The vector equivalent of this command is 'glTexCoord2dv'.
+glTexCoord2d
+  :: MonadIO m
+  => GLdouble -- ^ @s@ of type @CoordD@.
+  -> GLdouble -- ^ @t@ of type @CoordD@.
+  -> m ()
+glTexCoord2d v1 v2 = liftIO $ dyn225 ptr_glTexCoord2d v1 v2
+
+{-# NOINLINE ptr_glTexCoord2d #-}
+ptr_glTexCoord2d :: FunPtr (GLdouble -> GLdouble -> IO ())
+ptr_glTexCoord2d = unsafePerformIO $ getCommand "glTexCoord2d"
+
+-- glTexCoord2dv ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord.xml OpenGL 2.x>.
+glTexCoord2dv
+  :: MonadIO m
+  => Ptr GLdouble -- ^ @v@ pointing to @2@ elements of type @CoordD@.
+  -> m ()
+glTexCoord2dv v1 = liftIO $ dyn42 ptr_glTexCoord2dv v1
+
+{-# NOINLINE ptr_glTexCoord2dv #-}
+ptr_glTexCoord2dv :: FunPtr (Ptr GLdouble -> IO ())
+ptr_glTexCoord2dv = unsafePerformIO $ getCommand "glTexCoord2dv"
+
+-- glTexCoord2f ----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord.xml OpenGL 2.x>. The vector equivalent of this command is 'glTexCoord2fv'.
+glTexCoord2f
+  :: MonadIO m
+  => GLfloat -- ^ @s@ of type @CoordF@.
+  -> GLfloat -- ^ @t@ of type @CoordF@.
+  -> m ()
+glTexCoord2f v1 v2 = liftIO $ dyn230 ptr_glTexCoord2f v1 v2
+
+{-# NOINLINE ptr_glTexCoord2f #-}
+ptr_glTexCoord2f :: FunPtr (GLfloat -> GLfloat -> IO ())
+ptr_glTexCoord2f = unsafePerformIO $ getCommand "glTexCoord2f"
+
+-- glTexCoord2fColor3fVertex3fSUN ----------------------------------------------
+
+glTexCoord2fColor3fVertex3fSUN
+  :: MonadIO m
+  => GLfloat -- ^ @s@.
+  -> GLfloat -- ^ @t@.
+  -> GLfloat -- ^ @r@.
+  -> GLfloat -- ^ @g@.
+  -> GLfloat -- ^ @b@.
+  -> GLfloat -- ^ @x@.
+  -> GLfloat -- ^ @y@.
+  -> GLfloat -- ^ @z@.
+  -> m ()
+glTexCoord2fColor3fVertex3fSUN v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn652 ptr_glTexCoord2fColor3fVertex3fSUN v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glTexCoord2fColor3fVertex3fSUN #-}
+ptr_glTexCoord2fColor3fVertex3fSUN :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glTexCoord2fColor3fVertex3fSUN = unsafePerformIO $ getCommand "glTexCoord2fColor3fVertex3fSUN"
+
+-- glTexCoord2fColor3fVertex3fvSUN ---------------------------------------------
+
+glTexCoord2fColor3fVertex3fvSUN
+  :: MonadIO m
+  => Ptr GLfloat -- ^ @tc@ pointing to @2@ elements of type @GLfloat@.
+  -> Ptr GLfloat -- ^ @c@ pointing to @3@ elements of type @GLfloat@.
+  -> Ptr GLfloat -- ^ @v@ pointing to @3@ elements of type @GLfloat@.
+  -> m ()
+glTexCoord2fColor3fVertex3fvSUN v1 v2 v3 = liftIO $ dyn118 ptr_glTexCoord2fColor3fVertex3fvSUN v1 v2 v3
+
+{-# NOINLINE ptr_glTexCoord2fColor3fVertex3fvSUN #-}
+ptr_glTexCoord2fColor3fVertex3fvSUN :: FunPtr (Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ())
+ptr_glTexCoord2fColor3fVertex3fvSUN = unsafePerformIO $ getCommand "glTexCoord2fColor3fVertex3fvSUN"
+
+-- glTexCoord2fColor4fNormal3fVertex3fSUN --------------------------------------
+
+glTexCoord2fColor4fNormal3fVertex3fSUN
+  :: MonadIO m
+  => GLfloat -- ^ @s@.
+  -> GLfloat -- ^ @t@.
+  -> GLfloat -- ^ @r@.
+  -> GLfloat -- ^ @g@.
+  -> GLfloat -- ^ @b@.
+  -> GLfloat -- ^ @a@.
+  -> GLfloat -- ^ @nx@.
+  -> GLfloat -- ^ @ny@.
+  -> GLfloat -- ^ @nz@.
+  -> GLfloat -- ^ @x@.
+  -> GLfloat -- ^ @y@.
+  -> GLfloat -- ^ @z@.
+  -> m ()
+glTexCoord2fColor4fNormal3fVertex3fSUN v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 = liftIO $ dyn766 ptr_glTexCoord2fColor4fNormal3fVertex3fSUN v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12
+
+{-# NOINLINE ptr_glTexCoord2fColor4fNormal3fVertex3fSUN #-}
+ptr_glTexCoord2fColor4fNormal3fVertex3fSUN :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glTexCoord2fColor4fNormal3fVertex3fSUN = unsafePerformIO $ getCommand "glTexCoord2fColor4fNormal3fVertex3fSUN"
+
+-- glTexCoord2fColor4fNormal3fVertex3fvSUN -------------------------------------
+
+glTexCoord2fColor4fNormal3fVertex3fvSUN
+  :: MonadIO m
+  => Ptr GLfloat -- ^ @tc@ pointing to @2@ elements of type @GLfloat@.
+  -> Ptr GLfloat -- ^ @c@ pointing to @4@ elements of type @GLfloat@.
+  -> Ptr GLfloat -- ^ @n@ pointing to @3@ elements of type @GLfloat@.
+  -> Ptr GLfloat -- ^ @v@ pointing to @3@ elements of type @GLfloat@.
+  -> m ()
+glTexCoord2fColor4fNormal3fVertex3fvSUN v1 v2 v3 v4 = liftIO $ dyn767 ptr_glTexCoord2fColor4fNormal3fVertex3fvSUN v1 v2 v3 v4
+
+{-# NOINLINE ptr_glTexCoord2fColor4fNormal3fVertex3fvSUN #-}
+ptr_glTexCoord2fColor4fNormal3fVertex3fvSUN :: FunPtr (Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ())
+ptr_glTexCoord2fColor4fNormal3fVertex3fvSUN = unsafePerformIO $ getCommand "glTexCoord2fColor4fNormal3fVertex3fvSUN"
+
+-- glTexCoord2fColor4ubVertex3fSUN ---------------------------------------------
+
+glTexCoord2fColor4ubVertex3fSUN
+  :: MonadIO m
+  => GLfloat -- ^ @s@.
+  -> GLfloat -- ^ @t@.
+  -> GLubyte -- ^ @r@.
+  -> GLubyte -- ^ @g@.
+  -> GLubyte -- ^ @b@.
+  -> GLubyte -- ^ @a@.
+  -> GLfloat -- ^ @x@.
+  -> GLfloat -- ^ @y@.
+  -> GLfloat -- ^ @z@.
+  -> m ()
+glTexCoord2fColor4ubVertex3fSUN v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO $ dyn768 ptr_glTexCoord2fColor4ubVertex3fSUN v1 v2 v3 v4 v5 v6 v7 v8 v9
+
+{-# NOINLINE ptr_glTexCoord2fColor4ubVertex3fSUN #-}
+ptr_glTexCoord2fColor4ubVertex3fSUN :: FunPtr (GLfloat -> GLfloat -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glTexCoord2fColor4ubVertex3fSUN = unsafePerformIO $ getCommand "glTexCoord2fColor4ubVertex3fSUN"
+
+-- glTexCoord2fColor4ubVertex3fvSUN --------------------------------------------
+
+glTexCoord2fColor4ubVertex3fvSUN
+  :: MonadIO m
+  => Ptr GLfloat -- ^ @tc@ pointing to @2@ elements of type @GLfloat@.
+  -> Ptr GLubyte -- ^ @c@ pointing to @4@ elements of type @GLubyte@.
+  -> Ptr GLfloat -- ^ @v@ pointing to @3@ elements of type @GLfloat@.
+  -> m ()
+glTexCoord2fColor4ubVertex3fvSUN v1 v2 v3 = liftIO $ dyn769 ptr_glTexCoord2fColor4ubVertex3fvSUN v1 v2 v3
+
+{-# NOINLINE ptr_glTexCoord2fColor4ubVertex3fvSUN #-}
+ptr_glTexCoord2fColor4ubVertex3fvSUN :: FunPtr (Ptr GLfloat -> Ptr GLubyte -> Ptr GLfloat -> IO ())
+ptr_glTexCoord2fColor4ubVertex3fvSUN = unsafePerformIO $ getCommand "glTexCoord2fColor4ubVertex3fvSUN"
+
+-- glTexCoord2fNormal3fVertex3fSUN ---------------------------------------------
+
+glTexCoord2fNormal3fVertex3fSUN
+  :: MonadIO m
+  => GLfloat -- ^ @s@.
+  -> GLfloat -- ^ @t@.
+  -> GLfloat -- ^ @nx@.
+  -> GLfloat -- ^ @ny@.
+  -> GLfloat -- ^ @nz@.
+  -> GLfloat -- ^ @x@.
+  -> GLfloat -- ^ @y@.
+  -> GLfloat -- ^ @z@.
+  -> m ()
+glTexCoord2fNormal3fVertex3fSUN v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn652 ptr_glTexCoord2fNormal3fVertex3fSUN v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glTexCoord2fNormal3fVertex3fSUN #-}
+ptr_glTexCoord2fNormal3fVertex3fSUN :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glTexCoord2fNormal3fVertex3fSUN = unsafePerformIO $ getCommand "glTexCoord2fNormal3fVertex3fSUN"
+
+-- glTexCoord2fNormal3fVertex3fvSUN --------------------------------------------
+
+glTexCoord2fNormal3fVertex3fvSUN
+  :: MonadIO m
+  => Ptr GLfloat -- ^ @tc@ pointing to @2@ elements of type @GLfloat@.
+  -> Ptr GLfloat -- ^ @n@ pointing to @3@ elements of type @GLfloat@.
+  -> Ptr GLfloat -- ^ @v@ pointing to @3@ elements of type @GLfloat@.
+  -> m ()
+glTexCoord2fNormal3fVertex3fvSUN v1 v2 v3 = liftIO $ dyn118 ptr_glTexCoord2fNormal3fVertex3fvSUN v1 v2 v3
+
+{-# NOINLINE ptr_glTexCoord2fNormal3fVertex3fvSUN #-}
+ptr_glTexCoord2fNormal3fVertex3fvSUN :: FunPtr (Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ())
+ptr_glTexCoord2fNormal3fVertex3fvSUN = unsafePerformIO $ getCommand "glTexCoord2fNormal3fVertex3fvSUN"
+
+-- glTexCoord2fVertex3fSUN -----------------------------------------------------
+
+glTexCoord2fVertex3fSUN
+  :: MonadIO m
+  => GLfloat -- ^ @s@.
+  -> GLfloat -- ^ @t@.
+  -> GLfloat -- ^ @x@.
+  -> GLfloat -- ^ @y@.
+  -> GLfloat -- ^ @z@.
+  -> m ()
+glTexCoord2fVertex3fSUN v1 v2 v3 v4 v5 = liftIO $ dyn260 ptr_glTexCoord2fVertex3fSUN v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glTexCoord2fVertex3fSUN #-}
+ptr_glTexCoord2fVertex3fSUN :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glTexCoord2fVertex3fSUN = unsafePerformIO $ getCommand "glTexCoord2fVertex3fSUN"
+
+-- glTexCoord2fVertex3fvSUN ----------------------------------------------------
+
+glTexCoord2fVertex3fvSUN
+  :: MonadIO m
+  => Ptr GLfloat -- ^ @tc@ pointing to @2@ elements of type @GLfloat@.
+  -> Ptr GLfloat -- ^ @v@ pointing to @3@ elements of type @GLfloat@.
+  -> m ()
+glTexCoord2fVertex3fvSUN v1 v2 = liftIO $ dyn104 ptr_glTexCoord2fVertex3fvSUN v1 v2
+
+{-# NOINLINE ptr_glTexCoord2fVertex3fvSUN #-}
+ptr_glTexCoord2fVertex3fvSUN :: FunPtr (Ptr GLfloat -> Ptr GLfloat -> IO ())
+ptr_glTexCoord2fVertex3fvSUN = unsafePerformIO $ getCommand "glTexCoord2fVertex3fvSUN"
+
+-- glTexCoord2fv ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord.xml OpenGL 2.x>.
+glTexCoord2fv
+  :: MonadIO m
+  => Ptr GLfloat -- ^ @v@ pointing to @2@ elements of type @CoordF@.
+  -> m ()
+glTexCoord2fv v1 = liftIO $ dyn44 ptr_glTexCoord2fv v1
+
+{-# NOINLINE ptr_glTexCoord2fv #-}
+ptr_glTexCoord2fv :: FunPtr (Ptr GLfloat -> IO ())
+ptr_glTexCoord2fv = unsafePerformIO $ getCommand "glTexCoord2fv"
+
+-- glTexCoord2hNV --------------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glTexCoord2hvNV'.
+glTexCoord2hNV
+  :: MonadIO m
+  => GLhalfNV -- ^ @s@ of type @Half16NV@.
+  -> GLhalfNV -- ^ @t@ of type @Half16NV@.
+  -> m ()
+glTexCoord2hNV v1 v2 = liftIO $ dyn770 ptr_glTexCoord2hNV v1 v2
+
+{-# NOINLINE ptr_glTexCoord2hNV #-}
+ptr_glTexCoord2hNV :: FunPtr (GLhalfNV -> GLhalfNV -> IO ())
+ptr_glTexCoord2hNV = unsafePerformIO $ getCommand "glTexCoord2hNV"
+
+-- glTexCoord2hvNV -------------------------------------------------------------
+
+glTexCoord2hvNV
+  :: MonadIO m
+  => Ptr GLhalfNV -- ^ @v@ pointing to @2@ elements of type @Half16NV@.
+  -> m ()
+glTexCoord2hvNV v1 = liftIO $ dyn106 ptr_glTexCoord2hvNV v1
+
+{-# NOINLINE ptr_glTexCoord2hvNV #-}
+ptr_glTexCoord2hvNV :: FunPtr (Ptr GLhalfNV -> IO ())
+ptr_glTexCoord2hvNV = unsafePerformIO $ getCommand "glTexCoord2hvNV"
+
+-- glTexCoord2i ----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord.xml OpenGL 2.x>. The vector equivalent of this command is 'glTexCoord2iv'.
+glTexCoord2i
+  :: MonadIO m
+  => GLint -- ^ @s@ of type @CoordI@.
+  -> GLint -- ^ @t@ of type @CoordI@.
+  -> m ()
+glTexCoord2i v1 v2 = liftIO $ dyn277 ptr_glTexCoord2i v1 v2
+
+{-# NOINLINE ptr_glTexCoord2i #-}
+ptr_glTexCoord2i :: FunPtr (GLint -> GLint -> IO ())
+ptr_glTexCoord2i = unsafePerformIO $ getCommand "glTexCoord2i"
+
+-- glTexCoord2iv ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord.xml OpenGL 2.x>.
+glTexCoord2iv
+  :: MonadIO m
+  => Ptr GLint -- ^ @v@ pointing to @2@ elements of type @CoordI@.
+  -> m ()
+glTexCoord2iv v1 = liftIO $ dyn46 ptr_glTexCoord2iv v1
+
+{-# NOINLINE ptr_glTexCoord2iv #-}
+ptr_glTexCoord2iv :: FunPtr (Ptr GLint -> IO ())
+ptr_glTexCoord2iv = unsafePerformIO $ getCommand "glTexCoord2iv"
+
+-- glTexCoord2s ----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord.xml OpenGL 2.x>. The vector equivalent of this command is 'glTexCoord2sv'.
+glTexCoord2s
+  :: MonadIO m
+  => GLshort -- ^ @s@ of type @CoordS@.
+  -> GLshort -- ^ @t@ of type @CoordS@.
+  -> m ()
+glTexCoord2s v1 v2 = liftIO $ dyn709 ptr_glTexCoord2s v1 v2
+
+{-# NOINLINE ptr_glTexCoord2s #-}
+ptr_glTexCoord2s :: FunPtr (GLshort -> GLshort -> IO ())
+ptr_glTexCoord2s = unsafePerformIO $ getCommand "glTexCoord2s"
+
+-- glTexCoord2sv ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord.xml OpenGL 2.x>.
+glTexCoord2sv
+  :: MonadIO m
+  => Ptr GLshort -- ^ @v@ pointing to @2@ elements of type @CoordS@.
+  -> m ()
+glTexCoord2sv v1 = liftIO $ dyn48 ptr_glTexCoord2sv v1
+
+{-# NOINLINE ptr_glTexCoord2sv #-}
+ptr_glTexCoord2sv :: FunPtr (Ptr GLshort -> IO ())
+ptr_glTexCoord2sv = unsafePerformIO $ getCommand "glTexCoord2sv"
+
+-- glTexCoord2xOES -------------------------------------------------------------
+
+glTexCoord2xOES
+  :: MonadIO m
+  => GLfixed -- ^ @s@.
+  -> GLfixed -- ^ @t@.
+  -> m ()
+glTexCoord2xOES v1 v2 = liftIO $ dyn232 ptr_glTexCoord2xOES v1 v2
+
+{-# NOINLINE ptr_glTexCoord2xOES #-}
+ptr_glTexCoord2xOES :: FunPtr (GLfixed -> GLfixed -> IO ())
+ptr_glTexCoord2xOES = unsafePerformIO $ getCommand "glTexCoord2xOES"
+
+-- glTexCoord2xvOES ------------------------------------------------------------
+
+glTexCoord2xvOES
+  :: MonadIO m
+  => Ptr GLfixed -- ^ @coords@ pointing to @2@ elements of type @GLfixed@.
+  -> m ()
+glTexCoord2xvOES v1 = liftIO $ dyn114 ptr_glTexCoord2xvOES v1
+
+{-# NOINLINE ptr_glTexCoord2xvOES #-}
+ptr_glTexCoord2xvOES :: FunPtr (Ptr GLfixed -> IO ())
+ptr_glTexCoord2xvOES = unsafePerformIO $ getCommand "glTexCoord2xvOES"
+
+-- glTexCoord3bOES -------------------------------------------------------------
+
+glTexCoord3bOES
+  :: MonadIO m
+  => GLbyte -- ^ @s@.
+  -> GLbyte -- ^ @t@.
+  -> GLbyte -- ^ @r@.
+  -> m ()
+glTexCoord3bOES v1 v2 v3 = liftIO $ dyn39 ptr_glTexCoord3bOES v1 v2 v3
+
+{-# NOINLINE ptr_glTexCoord3bOES #-}
+ptr_glTexCoord3bOES :: FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
+ptr_glTexCoord3bOES = unsafePerformIO $ getCommand "glTexCoord3bOES"
+
+-- glTexCoord3bvOES ------------------------------------------------------------
+
+glTexCoord3bvOES
+  :: MonadIO m
+  => Ptr GLbyte -- ^ @coords@ pointing to @3@ elements of type @GLbyte@.
+  -> m ()
+glTexCoord3bvOES v1 = liftIO $ dyn40 ptr_glTexCoord3bvOES v1
+
+{-# NOINLINE ptr_glTexCoord3bvOES #-}
+ptr_glTexCoord3bvOES :: FunPtr (Ptr GLbyte -> IO ())
+ptr_glTexCoord3bvOES = unsafePerformIO $ getCommand "glTexCoord3bvOES"
+
+-- glTexCoord3d ----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord.xml OpenGL 2.x>. The vector equivalent of this command is 'glTexCoord3dv'.
+glTexCoord3d
+  :: MonadIO m
+  => GLdouble -- ^ @s@ of type @CoordD@.
+  -> GLdouble -- ^ @t@ of type @CoordD@.
+  -> GLdouble -- ^ @r@ of type @CoordD@.
+  -> m ()
+glTexCoord3d v1 v2 v3 = liftIO $ dyn41 ptr_glTexCoord3d v1 v2 v3
+
+{-# NOINLINE ptr_glTexCoord3d #-}
+ptr_glTexCoord3d :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
+ptr_glTexCoord3d = unsafePerformIO $ getCommand "glTexCoord3d"
+
+-- glTexCoord3dv ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord.xml OpenGL 2.x>.
+glTexCoord3dv
+  :: MonadIO m
+  => Ptr GLdouble -- ^ @v@ pointing to @3@ elements of type @CoordD@.
+  -> m ()
+glTexCoord3dv v1 = liftIO $ dyn42 ptr_glTexCoord3dv v1
+
+{-# NOINLINE ptr_glTexCoord3dv #-}
+ptr_glTexCoord3dv :: FunPtr (Ptr GLdouble -> IO ())
+ptr_glTexCoord3dv = unsafePerformIO $ getCommand "glTexCoord3dv"
+
+-- glTexCoord3f ----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord.xml OpenGL 2.x>. The vector equivalent of this command is 'glTexCoord3fv'.
+glTexCoord3f
+  :: MonadIO m
+  => GLfloat -- ^ @s@ of type @CoordF@.
+  -> GLfloat -- ^ @t@ of type @CoordF@.
+  -> GLfloat -- ^ @r@ of type @CoordF@.
+  -> m ()
+glTexCoord3f v1 v2 v3 = liftIO $ dyn43 ptr_glTexCoord3f v1 v2 v3
+
+{-# NOINLINE ptr_glTexCoord3f #-}
+ptr_glTexCoord3f :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glTexCoord3f = unsafePerformIO $ getCommand "glTexCoord3f"
+
+-- glTexCoord3fv ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord.xml OpenGL 2.x>.
+glTexCoord3fv
+  :: MonadIO m
+  => Ptr GLfloat -- ^ @v@ pointing to @3@ elements of type @CoordF@.
+  -> m ()
+glTexCoord3fv v1 = liftIO $ dyn44 ptr_glTexCoord3fv v1
+
+{-# NOINLINE ptr_glTexCoord3fv #-}
+ptr_glTexCoord3fv :: FunPtr (Ptr GLfloat -> IO ())
+ptr_glTexCoord3fv = unsafePerformIO $ getCommand "glTexCoord3fv"
+
+-- glTexCoord3hNV --------------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glTexCoord3hvNV'.
+glTexCoord3hNV
+  :: MonadIO m
+  => GLhalfNV -- ^ @s@ of type @Half16NV@.
+  -> GLhalfNV -- ^ @t@ of type @Half16NV@.
+  -> GLhalfNV -- ^ @r@ of type @Half16NV@.
+  -> m ()
+glTexCoord3hNV v1 v2 v3 = liftIO $ dyn105 ptr_glTexCoord3hNV v1 v2 v3
+
+{-# NOINLINE ptr_glTexCoord3hNV #-}
+ptr_glTexCoord3hNV :: FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
+ptr_glTexCoord3hNV = unsafePerformIO $ getCommand "glTexCoord3hNV"
+
+-- glTexCoord3hvNV -------------------------------------------------------------
+
+glTexCoord3hvNV
+  :: MonadIO m
+  => Ptr GLhalfNV -- ^ @v@ pointing to @3@ elements of type @Half16NV@.
+  -> m ()
+glTexCoord3hvNV v1 = liftIO $ dyn106 ptr_glTexCoord3hvNV v1
+
+{-# NOINLINE ptr_glTexCoord3hvNV #-}
+ptr_glTexCoord3hvNV :: FunPtr (Ptr GLhalfNV -> IO ())
+ptr_glTexCoord3hvNV = unsafePerformIO $ getCommand "glTexCoord3hvNV"
+
+-- glTexCoord3i ----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord.xml OpenGL 2.x>. The vector equivalent of this command is 'glTexCoord3iv'.
+glTexCoord3i
+  :: MonadIO m
+  => GLint -- ^ @s@ of type @CoordI@.
+  -> GLint -- ^ @t@ of type @CoordI@.
+  -> GLint -- ^ @r@ of type @CoordI@.
+  -> m ()
+glTexCoord3i v1 v2 v3 = liftIO $ dyn45 ptr_glTexCoord3i v1 v2 v3
+
+{-# NOINLINE ptr_glTexCoord3i #-}
+ptr_glTexCoord3i :: FunPtr (GLint -> GLint -> GLint -> IO ())
+ptr_glTexCoord3i = unsafePerformIO $ getCommand "glTexCoord3i"
+
+-- glTexCoord3iv ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord.xml OpenGL 2.x>.
+glTexCoord3iv
+  :: MonadIO m
+  => Ptr GLint -- ^ @v@ pointing to @3@ elements of type @CoordI@.
+  -> m ()
+glTexCoord3iv v1 = liftIO $ dyn46 ptr_glTexCoord3iv v1
+
+{-# NOINLINE ptr_glTexCoord3iv #-}
+ptr_glTexCoord3iv :: FunPtr (Ptr GLint -> IO ())
+ptr_glTexCoord3iv = unsafePerformIO $ getCommand "glTexCoord3iv"
+
+-- glTexCoord3s ----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord.xml OpenGL 2.x>. The vector equivalent of this command is 'glTexCoord3sv'.
+glTexCoord3s
+  :: MonadIO m
+  => GLshort -- ^ @s@ of type @CoordS@.
+  -> GLshort -- ^ @t@ of type @CoordS@.
+  -> GLshort -- ^ @r@ of type @CoordS@.
+  -> m ()
+glTexCoord3s v1 v2 v3 = liftIO $ dyn47 ptr_glTexCoord3s v1 v2 v3
+
+{-# NOINLINE ptr_glTexCoord3s #-}
+ptr_glTexCoord3s :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
+ptr_glTexCoord3s = unsafePerformIO $ getCommand "glTexCoord3s"
+
+-- glTexCoord3sv ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord.xml OpenGL 2.x>.
+glTexCoord3sv
+  :: MonadIO m
+  => Ptr GLshort -- ^ @v@ pointing to @3@ elements of type @CoordS@.
+  -> m ()
+glTexCoord3sv v1 = liftIO $ dyn48 ptr_glTexCoord3sv v1
+
+{-# NOINLINE ptr_glTexCoord3sv #-}
+ptr_glTexCoord3sv :: FunPtr (Ptr GLshort -> IO ())
+ptr_glTexCoord3sv = unsafePerformIO $ getCommand "glTexCoord3sv"
+
+-- glTexCoord3xOES -------------------------------------------------------------
+
+glTexCoord3xOES
+  :: MonadIO m
+  => GLfixed -- ^ @s@.
+  -> GLfixed -- ^ @t@.
+  -> GLfixed -- ^ @r@.
+  -> m ()
+glTexCoord3xOES v1 v2 v3 = liftIO $ dyn113 ptr_glTexCoord3xOES v1 v2 v3
+
+{-# NOINLINE ptr_glTexCoord3xOES #-}
+ptr_glTexCoord3xOES :: FunPtr (GLfixed -> GLfixed -> GLfixed -> IO ())
+ptr_glTexCoord3xOES = unsafePerformIO $ getCommand "glTexCoord3xOES"
+
+-- glTexCoord3xvOES ------------------------------------------------------------
+
+glTexCoord3xvOES
+  :: MonadIO m
+  => Ptr GLfixed -- ^ @coords@ pointing to @3@ elements of type @GLfixed@.
+  -> m ()
+glTexCoord3xvOES v1 = liftIO $ dyn114 ptr_glTexCoord3xvOES v1
+
+{-# NOINLINE ptr_glTexCoord3xvOES #-}
+ptr_glTexCoord3xvOES :: FunPtr (Ptr GLfixed -> IO ())
+ptr_glTexCoord3xvOES = unsafePerformIO $ getCommand "glTexCoord3xvOES"
+
+-- glTexCoord4bOES -------------------------------------------------------------
+
+glTexCoord4bOES
+  :: MonadIO m
+  => GLbyte -- ^ @s@.
+  -> GLbyte -- ^ @t@.
+  -> GLbyte -- ^ @r@.
+  -> GLbyte -- ^ @q@.
+  -> m ()
+glTexCoord4bOES v1 v2 v3 v4 = liftIO $ dyn115 ptr_glTexCoord4bOES v1 v2 v3 v4
+
+{-# NOINLINE ptr_glTexCoord4bOES #-}
+ptr_glTexCoord4bOES :: FunPtr (GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ())
+ptr_glTexCoord4bOES = unsafePerformIO $ getCommand "glTexCoord4bOES"
+
+-- glTexCoord4bvOES ------------------------------------------------------------
+
+glTexCoord4bvOES
+  :: MonadIO m
+  => Ptr GLbyte -- ^ @coords@ pointing to @4@ elements of type @GLbyte@.
+  -> m ()
+glTexCoord4bvOES v1 = liftIO $ dyn40 ptr_glTexCoord4bvOES v1
+
+{-# NOINLINE ptr_glTexCoord4bvOES #-}
+ptr_glTexCoord4bvOES :: FunPtr (Ptr GLbyte -> IO ())
+ptr_glTexCoord4bvOES = unsafePerformIO $ getCommand "glTexCoord4bvOES"
+
+-- glTexCoord4d ----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord.xml OpenGL 2.x>. The vector equivalent of this command is 'glTexCoord4dv'.
+glTexCoord4d
+  :: MonadIO m
+  => GLdouble -- ^ @s@ of type @CoordD@.
+  -> GLdouble -- ^ @t@ of type @CoordD@.
+  -> GLdouble -- ^ @r@ of type @CoordD@.
+  -> GLdouble -- ^ @q@ of type @CoordD@.
+  -> m ()
+glTexCoord4d v1 v2 v3 v4 = liftIO $ dyn116 ptr_glTexCoord4d v1 v2 v3 v4
+
+{-# NOINLINE ptr_glTexCoord4d #-}
+ptr_glTexCoord4d :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+ptr_glTexCoord4d = unsafePerformIO $ getCommand "glTexCoord4d"
+
+-- glTexCoord4dv ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord.xml OpenGL 2.x>.
+glTexCoord4dv
+  :: MonadIO m
+  => Ptr GLdouble -- ^ @v@ pointing to @4@ elements of type @CoordD@.
+  -> m ()
+glTexCoord4dv v1 = liftIO $ dyn42 ptr_glTexCoord4dv v1
+
+{-# NOINLINE ptr_glTexCoord4dv #-}
+ptr_glTexCoord4dv :: FunPtr (Ptr GLdouble -> IO ())
+ptr_glTexCoord4dv = unsafePerformIO $ getCommand "glTexCoord4dv"
+
+-- glTexCoord4f ----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord.xml OpenGL 2.x>. The vector equivalent of this command is 'glTexCoord4fv'.
+glTexCoord4f
+  :: MonadIO m
+  => GLfloat -- ^ @s@ of type @CoordF@.
+  -> GLfloat -- ^ @t@ of type @CoordF@.
+  -> GLfloat -- ^ @r@ of type @CoordF@.
+  -> GLfloat -- ^ @q@ of type @CoordF@.
+  -> m ()
+glTexCoord4f v1 v2 v3 v4 = liftIO $ dyn52 ptr_glTexCoord4f v1 v2 v3 v4
+
+{-# NOINLINE ptr_glTexCoord4f #-}
+ptr_glTexCoord4f :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glTexCoord4f = unsafePerformIO $ getCommand "glTexCoord4f"
+
+-- glTexCoord4fColor4fNormal3fVertex4fSUN --------------------------------------
+
+glTexCoord4fColor4fNormal3fVertex4fSUN
+  :: MonadIO m
+  => GLfloat -- ^ @s@.
+  -> GLfloat -- ^ @t@.
+  -> GLfloat -- ^ @p@.
+  -> GLfloat -- ^ @q@.
+  -> GLfloat -- ^ @r@.
+  -> GLfloat -- ^ @g@.
+  -> GLfloat -- ^ @b@.
+  -> GLfloat -- ^ @a@.
+  -> GLfloat -- ^ @nx@.
+  -> GLfloat -- ^ @ny@.
+  -> GLfloat -- ^ @nz@.
+  -> GLfloat -- ^ @x@.
+  -> GLfloat -- ^ @y@.
+  -> GLfloat -- ^ @z@.
+  -> GLfloat -- ^ @w@.
+  -> m ()
+glTexCoord4fColor4fNormal3fVertex4fSUN v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 = liftIO $ dyn771 ptr_glTexCoord4fColor4fNormal3fVertex4fSUN v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15
+
+{-# NOINLINE ptr_glTexCoord4fColor4fNormal3fVertex4fSUN #-}
+ptr_glTexCoord4fColor4fNormal3fVertex4fSUN :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glTexCoord4fColor4fNormal3fVertex4fSUN = unsafePerformIO $ getCommand "glTexCoord4fColor4fNormal3fVertex4fSUN"
+
+-- glTexCoord4fColor4fNormal3fVertex4fvSUN -------------------------------------
+
+glTexCoord4fColor4fNormal3fVertex4fvSUN
+  :: MonadIO m
+  => Ptr GLfloat -- ^ @tc@ pointing to @4@ elements of type @GLfloat@.
+  -> Ptr GLfloat -- ^ @c@ pointing to @4@ elements of type @GLfloat@.
+  -> Ptr GLfloat -- ^ @n@ pointing to @3@ elements of type @GLfloat@.
+  -> Ptr GLfloat -- ^ @v@ pointing to @4@ elements of type @GLfloat@.
+  -> m ()
+glTexCoord4fColor4fNormal3fVertex4fvSUN v1 v2 v3 v4 = liftIO $ dyn767 ptr_glTexCoord4fColor4fNormal3fVertex4fvSUN v1 v2 v3 v4
+
+{-# NOINLINE ptr_glTexCoord4fColor4fNormal3fVertex4fvSUN #-}
+ptr_glTexCoord4fColor4fNormal3fVertex4fvSUN :: FunPtr (Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLfloat -> IO ())
+ptr_glTexCoord4fColor4fNormal3fVertex4fvSUN = unsafePerformIO $ getCommand "glTexCoord4fColor4fNormal3fVertex4fvSUN"
+
+-- glTexCoord4fVertex4fSUN -----------------------------------------------------
+
+glTexCoord4fVertex4fSUN
+  :: MonadIO m
+  => GLfloat -- ^ @s@.
+  -> GLfloat -- ^ @t@.
+  -> GLfloat -- ^ @p@.
+  -> GLfloat -- ^ @q@.
+  -> GLfloat -- ^ @x@.
+  -> GLfloat -- ^ @y@.
+  -> GLfloat -- ^ @z@.
+  -> GLfloat -- ^ @w@.
+  -> m ()
+glTexCoord4fVertex4fSUN v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn652 ptr_glTexCoord4fVertex4fSUN v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glTexCoord4fVertex4fSUN #-}
+ptr_glTexCoord4fVertex4fSUN :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glTexCoord4fVertex4fSUN = unsafePerformIO $ getCommand "glTexCoord4fVertex4fSUN"
+
diff --git a/src/Graphics/GL/Functions/F26.hs b/src/Graphics/GL/Functions/F26.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Functions/F26.hs
@@ -0,0 +1,1736 @@
+{-# OPTIONS_HADDOCK hide #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Functions.F26
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- Raw functions from the
+-- <http://www.opengl.org/registry/ OpenGL registry>.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Functions.F26 (
+  glTexCoord4fVertex4fvSUN,
+  glTexCoord4fv,
+  glTexCoord4hNV,
+  glTexCoord4hvNV,
+  glTexCoord4i,
+  glTexCoord4iv,
+  glTexCoord4s,
+  glTexCoord4sv,
+  glTexCoord4xOES,
+  glTexCoord4xvOES,
+  glTexCoordFormatNV,
+  glTexCoordP1ui,
+  glTexCoordP1uiv,
+  glTexCoordP2ui,
+  glTexCoordP2uiv,
+  glTexCoordP3ui,
+  glTexCoordP3uiv,
+  glTexCoordP4ui,
+  glTexCoordP4uiv,
+  glTexCoordPointer,
+  glTexCoordPointerEXT,
+  glTexCoordPointerListIBM,
+  glTexCoordPointervINTEL,
+  glTexEnvf,
+  glTexEnvfv,
+  glTexEnvi,
+  glTexEnviv,
+  glTexEnvx,
+  glTexEnvxOES,
+  glTexEnvxv,
+  glTexEnvxvOES,
+  glTexFilterFuncSGIS,
+  glTexGend,
+  glTexGendv,
+  glTexGenf,
+  glTexGenfOES,
+  glTexGenfv,
+  glTexGenfvOES,
+  glTexGeni,
+  glTexGeniOES,
+  glTexGeniv,
+  glTexGenivOES,
+  glTexGenxOES,
+  glTexGenxvOES,
+  glTexImage1D,
+  glTexImage2D,
+  glTexImage2DMultisample,
+  glTexImage2DMultisampleCoverageNV,
+  glTexImage3D,
+  glTexImage3DEXT,
+  glTexImage3DMultisample,
+  glTexImage3DMultisampleCoverageNV,
+  glTexImage3DOES,
+  glTexImage4DSGIS,
+  glTexPageCommitmentARB,
+  glTexPageCommitmentEXT,
+  glTexParameterIiv,
+  glTexParameterIivEXT,
+  glTexParameterIivOES,
+  glTexParameterIuiv,
+  glTexParameterIuivEXT,
+  glTexParameterIuivOES,
+  glTexParameterf,
+  glTexParameterfv,
+  glTexParameteri,
+  glTexParameteriv,
+  glTexParameterx,
+  glTexParameterxOES,
+  glTexParameterxv,
+  glTexParameterxvOES,
+  glTexRenderbufferNV,
+  glTexStorage1D,
+  glTexStorage1DEXT,
+  glTexStorage2D,
+  glTexStorage2DEXT,
+  glTexStorage2DMultisample,
+  glTexStorage3D,
+  glTexStorage3DEXT,
+  glTexStorage3DMultisample,
+  glTexStorage3DMultisampleOES,
+  glTexStorageMem1DEXT,
+  glTexStorageMem2DEXT,
+  glTexStorageMem2DMultisampleEXT,
+  glTexStorageMem3DEXT,
+  glTexStorageMem3DMultisampleEXT,
+  glTexStorageSparseAMD,
+  glTexSubImage1D,
+  glTexSubImage1DEXT,
+  glTexSubImage2D,
+  glTexSubImage2DEXT,
+  glTexSubImage3D,
+  glTexSubImage3DEXT,
+  glTexSubImage3DOES,
+  glTexSubImage4DSGIS,
+  glTextureAttachMemoryNV,
+  glTextureBarrier,
+  glTextureBarrierNV,
+  glTextureBuffer,
+  glTextureBufferEXT,
+  glTextureBufferRange
+) where
+
+import Control.Monad.IO.Class ( MonadIO(..) )
+import Foreign.Ptr
+import Graphics.GL.Foreign
+import Graphics.GL.Types
+import System.IO.Unsafe ( unsafePerformIO )
+
+-- glTexCoord4fVertex4fvSUN ----------------------------------------------------
+
+glTexCoord4fVertex4fvSUN
+  :: MonadIO m
+  => Ptr GLfloat -- ^ @tc@ pointing to @4@ elements of type @GLfloat@.
+  -> Ptr GLfloat -- ^ @v@ pointing to @4@ elements of type @GLfloat@.
+  -> m ()
+glTexCoord4fVertex4fvSUN v1 v2 = liftIO $ dyn104 ptr_glTexCoord4fVertex4fvSUN v1 v2
+
+{-# NOINLINE ptr_glTexCoord4fVertex4fvSUN #-}
+ptr_glTexCoord4fVertex4fvSUN :: FunPtr (Ptr GLfloat -> Ptr GLfloat -> IO ())
+ptr_glTexCoord4fVertex4fvSUN = unsafePerformIO $ getCommand "glTexCoord4fVertex4fvSUN"
+
+-- glTexCoord4fv ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord.xml OpenGL 2.x>.
+glTexCoord4fv
+  :: MonadIO m
+  => Ptr GLfloat -- ^ @v@ pointing to @4@ elements of type @CoordF@.
+  -> m ()
+glTexCoord4fv v1 = liftIO $ dyn44 ptr_glTexCoord4fv v1
+
+{-# NOINLINE ptr_glTexCoord4fv #-}
+ptr_glTexCoord4fv :: FunPtr (Ptr GLfloat -> IO ())
+ptr_glTexCoord4fv = unsafePerformIO $ getCommand "glTexCoord4fv"
+
+-- glTexCoord4hNV --------------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glTexCoord4hvNV'.
+glTexCoord4hNV
+  :: MonadIO m
+  => GLhalfNV -- ^ @s@ of type @Half16NV@.
+  -> GLhalfNV -- ^ @t@ of type @Half16NV@.
+  -> GLhalfNV -- ^ @r@ of type @Half16NV@.
+  -> GLhalfNV -- ^ @q@ of type @Half16NV@.
+  -> m ()
+glTexCoord4hNV v1 v2 v3 v4 = liftIO $ dyn119 ptr_glTexCoord4hNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glTexCoord4hNV #-}
+ptr_glTexCoord4hNV :: FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
+ptr_glTexCoord4hNV = unsafePerformIO $ getCommand "glTexCoord4hNV"
+
+-- glTexCoord4hvNV -------------------------------------------------------------
+
+glTexCoord4hvNV
+  :: MonadIO m
+  => Ptr GLhalfNV -- ^ @v@ pointing to @4@ elements of type @Half16NV@.
+  -> m ()
+glTexCoord4hvNV v1 = liftIO $ dyn106 ptr_glTexCoord4hvNV v1
+
+{-# NOINLINE ptr_glTexCoord4hvNV #-}
+ptr_glTexCoord4hvNV :: FunPtr (Ptr GLhalfNV -> IO ())
+ptr_glTexCoord4hvNV = unsafePerformIO $ getCommand "glTexCoord4hvNV"
+
+-- glTexCoord4i ----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord.xml OpenGL 2.x>. The vector equivalent of this command is 'glTexCoord4iv'.
+glTexCoord4i
+  :: MonadIO m
+  => GLint -- ^ @s@ of type @CoordI@.
+  -> GLint -- ^ @t@ of type @CoordI@.
+  -> GLint -- ^ @r@ of type @CoordI@.
+  -> GLint -- ^ @q@ of type @CoordI@.
+  -> m ()
+glTexCoord4i v1 v2 v3 v4 = liftIO $ dyn82 ptr_glTexCoord4i v1 v2 v3 v4
+
+{-# NOINLINE ptr_glTexCoord4i #-}
+ptr_glTexCoord4i :: FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())
+ptr_glTexCoord4i = unsafePerformIO $ getCommand "glTexCoord4i"
+
+-- glTexCoord4iv ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord.xml OpenGL 2.x>.
+glTexCoord4iv
+  :: MonadIO m
+  => Ptr GLint -- ^ @v@ pointing to @4@ elements of type @CoordI@.
+  -> m ()
+glTexCoord4iv v1 = liftIO $ dyn46 ptr_glTexCoord4iv v1
+
+{-# NOINLINE ptr_glTexCoord4iv #-}
+ptr_glTexCoord4iv :: FunPtr (Ptr GLint -> IO ())
+ptr_glTexCoord4iv = unsafePerformIO $ getCommand "glTexCoord4iv"
+
+-- glTexCoord4s ----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord.xml OpenGL 2.x>. The vector equivalent of this command is 'glTexCoord4sv'.
+glTexCoord4s
+  :: MonadIO m
+  => GLshort -- ^ @s@ of type @CoordS@.
+  -> GLshort -- ^ @t@ of type @CoordS@.
+  -> GLshort -- ^ @r@ of type @CoordS@.
+  -> GLshort -- ^ @q@ of type @CoordS@.
+  -> m ()
+glTexCoord4s v1 v2 v3 v4 = liftIO $ dyn120 ptr_glTexCoord4s v1 v2 v3 v4
+
+{-# NOINLINE ptr_glTexCoord4s #-}
+ptr_glTexCoord4s :: FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> IO ())
+ptr_glTexCoord4s = unsafePerformIO $ getCommand "glTexCoord4s"
+
+-- glTexCoord4sv ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord.xml OpenGL 2.x>.
+glTexCoord4sv
+  :: MonadIO m
+  => Ptr GLshort -- ^ @v@ pointing to @4@ elements of type @CoordS@.
+  -> m ()
+glTexCoord4sv v1 = liftIO $ dyn48 ptr_glTexCoord4sv v1
+
+{-# NOINLINE ptr_glTexCoord4sv #-}
+ptr_glTexCoord4sv :: FunPtr (Ptr GLshort -> IO ())
+ptr_glTexCoord4sv = unsafePerformIO $ getCommand "glTexCoord4sv"
+
+-- glTexCoord4xOES -------------------------------------------------------------
+
+glTexCoord4xOES
+  :: MonadIO m
+  => GLfixed -- ^ @s@.
+  -> GLfixed -- ^ @t@.
+  -> GLfixed -- ^ @r@.
+  -> GLfixed -- ^ @q@.
+  -> m ()
+glTexCoord4xOES v1 v2 v3 v4 = liftIO $ dyn53 ptr_glTexCoord4xOES v1 v2 v3 v4
+
+{-# NOINLINE ptr_glTexCoord4xOES #-}
+ptr_glTexCoord4xOES :: FunPtr (GLfixed -> GLfixed -> GLfixed -> GLfixed -> IO ())
+ptr_glTexCoord4xOES = unsafePerformIO $ getCommand "glTexCoord4xOES"
+
+-- glTexCoord4xvOES ------------------------------------------------------------
+
+glTexCoord4xvOES
+  :: MonadIO m
+  => Ptr GLfixed -- ^ @coords@ pointing to @4@ elements of type @GLfixed@.
+  -> m ()
+glTexCoord4xvOES v1 = liftIO $ dyn114 ptr_glTexCoord4xvOES v1
+
+{-# NOINLINE ptr_glTexCoord4xvOES #-}
+ptr_glTexCoord4xvOES :: FunPtr (Ptr GLfixed -> IO ())
+ptr_glTexCoord4xvOES = unsafePerformIO $ getCommand "glTexCoord4xvOES"
+
+-- glTexCoordFormatNV ----------------------------------------------------------
+
+glTexCoordFormatNV
+  :: MonadIO m
+  => GLint -- ^ @size@.
+  -> GLenum -- ^ @type@.
+  -> GLsizei -- ^ @stride@.
+  -> m ()
+glTexCoordFormatNV v1 v2 v3 = liftIO $ dyn126 ptr_glTexCoordFormatNV v1 v2 v3
+
+{-# NOINLINE ptr_glTexCoordFormatNV #-}
+ptr_glTexCoordFormatNV :: FunPtr (GLint -> GLenum -> GLsizei -> IO ())
+ptr_glTexCoordFormatNV = unsafePerformIO $ getCommand "glTexCoordFormatNV"
+
+-- glTexCoordP1ui --------------------------------------------------------------
+
+glTexCoordP1ui
+  :: MonadIO m
+  => GLenum -- ^ @type@ of type [TexCoordPointerType](Graphics-GL-Groups.html#TexCoordPointerType).
+  -> GLuint -- ^ @coords@.
+  -> m ()
+glTexCoordP1ui v1 v2 = liftIO $ dyn19 ptr_glTexCoordP1ui v1 v2
+
+{-# NOINLINE ptr_glTexCoordP1ui #-}
+ptr_glTexCoordP1ui :: FunPtr (GLenum -> GLuint -> IO ())
+ptr_glTexCoordP1ui = unsafePerformIO $ getCommand "glTexCoordP1ui"
+
+-- glTexCoordP1uiv -------------------------------------------------------------
+
+glTexCoordP1uiv
+  :: MonadIO m
+  => GLenum -- ^ @type@ of type [TexCoordPointerType](Graphics-GL-Groups.html#TexCoordPointerType).
+  -> Ptr GLuint -- ^ @coords@ pointing to @1@ element of type @GLuint@.
+  -> m ()
+glTexCoordP1uiv v1 v2 = liftIO $ dyn132 ptr_glTexCoordP1uiv v1 v2
+
+{-# NOINLINE ptr_glTexCoordP1uiv #-}
+ptr_glTexCoordP1uiv :: FunPtr (GLenum -> Ptr GLuint -> IO ())
+ptr_glTexCoordP1uiv = unsafePerformIO $ getCommand "glTexCoordP1uiv"
+
+-- glTexCoordP2ui --------------------------------------------------------------
+
+glTexCoordP2ui
+  :: MonadIO m
+  => GLenum -- ^ @type@ of type [TexCoordPointerType](Graphics-GL-Groups.html#TexCoordPointerType).
+  -> GLuint -- ^ @coords@.
+  -> m ()
+glTexCoordP2ui v1 v2 = liftIO $ dyn19 ptr_glTexCoordP2ui v1 v2
+
+{-# NOINLINE ptr_glTexCoordP2ui #-}
+ptr_glTexCoordP2ui :: FunPtr (GLenum -> GLuint -> IO ())
+ptr_glTexCoordP2ui = unsafePerformIO $ getCommand "glTexCoordP2ui"
+
+-- glTexCoordP2uiv -------------------------------------------------------------
+
+glTexCoordP2uiv
+  :: MonadIO m
+  => GLenum -- ^ @type@ of type [TexCoordPointerType](Graphics-GL-Groups.html#TexCoordPointerType).
+  -> Ptr GLuint -- ^ @coords@ pointing to @1@ element of type @GLuint@.
+  -> m ()
+glTexCoordP2uiv v1 v2 = liftIO $ dyn132 ptr_glTexCoordP2uiv v1 v2
+
+{-# NOINLINE ptr_glTexCoordP2uiv #-}
+ptr_glTexCoordP2uiv :: FunPtr (GLenum -> Ptr GLuint -> IO ())
+ptr_glTexCoordP2uiv = unsafePerformIO $ getCommand "glTexCoordP2uiv"
+
+-- glTexCoordP3ui --------------------------------------------------------------
+
+glTexCoordP3ui
+  :: MonadIO m
+  => GLenum -- ^ @type@ of type [TexCoordPointerType](Graphics-GL-Groups.html#TexCoordPointerType).
+  -> GLuint -- ^ @coords@.
+  -> m ()
+glTexCoordP3ui v1 v2 = liftIO $ dyn19 ptr_glTexCoordP3ui v1 v2
+
+{-# NOINLINE ptr_glTexCoordP3ui #-}
+ptr_glTexCoordP3ui :: FunPtr (GLenum -> GLuint -> IO ())
+ptr_glTexCoordP3ui = unsafePerformIO $ getCommand "glTexCoordP3ui"
+
+-- glTexCoordP3uiv -------------------------------------------------------------
+
+glTexCoordP3uiv
+  :: MonadIO m
+  => GLenum -- ^ @type@ of type [TexCoordPointerType](Graphics-GL-Groups.html#TexCoordPointerType).
+  -> Ptr GLuint -- ^ @coords@ pointing to @1@ element of type @GLuint@.
+  -> m ()
+glTexCoordP3uiv v1 v2 = liftIO $ dyn132 ptr_glTexCoordP3uiv v1 v2
+
+{-# NOINLINE ptr_glTexCoordP3uiv #-}
+ptr_glTexCoordP3uiv :: FunPtr (GLenum -> Ptr GLuint -> IO ())
+ptr_glTexCoordP3uiv = unsafePerformIO $ getCommand "glTexCoordP3uiv"
+
+-- glTexCoordP4ui --------------------------------------------------------------
+
+glTexCoordP4ui
+  :: MonadIO m
+  => GLenum -- ^ @type@ of type [TexCoordPointerType](Graphics-GL-Groups.html#TexCoordPointerType).
+  -> GLuint -- ^ @coords@.
+  -> m ()
+glTexCoordP4ui v1 v2 = liftIO $ dyn19 ptr_glTexCoordP4ui v1 v2
+
+{-# NOINLINE ptr_glTexCoordP4ui #-}
+ptr_glTexCoordP4ui :: FunPtr (GLenum -> GLuint -> IO ())
+ptr_glTexCoordP4ui = unsafePerformIO $ getCommand "glTexCoordP4ui"
+
+-- glTexCoordP4uiv -------------------------------------------------------------
+
+glTexCoordP4uiv
+  :: MonadIO m
+  => GLenum -- ^ @type@ of type [TexCoordPointerType](Graphics-GL-Groups.html#TexCoordPointerType).
+  -> Ptr GLuint -- ^ @coords@ pointing to @1@ element of type @GLuint@.
+  -> m ()
+glTexCoordP4uiv v1 v2 = liftIO $ dyn132 ptr_glTexCoordP4uiv v1 v2
+
+{-# NOINLINE ptr_glTexCoordP4uiv #-}
+ptr_glTexCoordP4uiv :: FunPtr (GLenum -> Ptr GLuint -> IO ())
+ptr_glTexCoordP4uiv = unsafePerformIO $ getCommand "glTexCoordP4uiv"
+
+-- glTexCoordPointer -----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoordPointer.xml OpenGL 2.x>.
+glTexCoordPointer
+  :: MonadIO m
+  => GLint -- ^ @size@.
+  -> GLenum -- ^ @type@ of type [TexCoordPointerType](Graphics-GL-Groups.html#TexCoordPointerType).
+  -> GLsizei -- ^ @stride@.
+  -> Ptr a -- ^ @pointer@ pointing to @COMPSIZE(size,type,stride)@ elements of type @a@.
+  -> m ()
+glTexCoordPointer v1 v2 v3 v4 = liftIO $ dyn133 ptr_glTexCoordPointer v1 v2 v3 v4
+
+{-# NOINLINE ptr_glTexCoordPointer #-}
+ptr_glTexCoordPointer :: FunPtr (GLint -> GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glTexCoordPointer = unsafePerformIO $ getCommand "glTexCoordPointer"
+
+-- glTexCoordPointerEXT --------------------------------------------------------
+
+glTexCoordPointerEXT
+  :: MonadIO m
+  => GLint -- ^ @size@.
+  -> GLenum -- ^ @type@ of type [TexCoordPointerType](Graphics-GL-Groups.html#TexCoordPointerType).
+  -> GLsizei -- ^ @stride@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr a -- ^ @pointer@ pointing to @COMPSIZE(size,type,stride,count)@ elements of type @a@.
+  -> m ()
+glTexCoordPointerEXT v1 v2 v3 v4 v5 = liftIO $ dyn134 ptr_glTexCoordPointerEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glTexCoordPointerEXT #-}
+ptr_glTexCoordPointerEXT :: FunPtr (GLint -> GLenum -> GLsizei -> GLsizei -> Ptr a -> IO ())
+ptr_glTexCoordPointerEXT = unsafePerformIO $ getCommand "glTexCoordPointerEXT"
+
+-- glTexCoordPointerListIBM ----------------------------------------------------
+
+glTexCoordPointerListIBM
+  :: MonadIO m
+  => GLint -- ^ @size@.
+  -> GLenum -- ^ @type@ of type [TexCoordPointerType](Graphics-GL-Groups.html#TexCoordPointerType).
+  -> GLint -- ^ @stride@.
+  -> Ptr (Ptr a) -- ^ @pointer@ pointing to @COMPSIZE(size,type,stride)@ elements of type @Ptr a@.
+  -> GLint -- ^ @ptrstride@.
+  -> m ()
+glTexCoordPointerListIBM v1 v2 v3 v4 v5 = liftIO $ dyn135 ptr_glTexCoordPointerListIBM v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glTexCoordPointerListIBM #-}
+ptr_glTexCoordPointerListIBM :: FunPtr (GLint -> GLenum -> GLint -> Ptr (Ptr a) -> GLint -> IO ())
+ptr_glTexCoordPointerListIBM = unsafePerformIO $ getCommand "glTexCoordPointerListIBM"
+
+-- glTexCoordPointervINTEL -----------------------------------------------------
+
+glTexCoordPointervINTEL
+  :: MonadIO m
+  => GLint -- ^ @size@.
+  -> GLenum -- ^ @type@ of type [VertexPointerType](Graphics-GL-Groups.html#VertexPointerType).
+  -> Ptr (Ptr a) -- ^ @pointer@ pointing to @4@ elements of type @Ptr a@.
+  -> m ()
+glTexCoordPointervINTEL v1 v2 v3 = liftIO $ dyn136 ptr_glTexCoordPointervINTEL v1 v2 v3
+
+{-# NOINLINE ptr_glTexCoordPointervINTEL #-}
+ptr_glTexCoordPointervINTEL :: FunPtr (GLint -> GLenum -> Ptr (Ptr a) -> IO ())
+ptr_glTexCoordPointervINTEL = unsafePerformIO $ getCommand "glTexCoordPointervINTEL"
+
+-- glTexEnvf -------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glTexEnv.xml OpenGL 2.x>.
+glTexEnvf
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureEnvTarget](Graphics-GL-Groups.html#TextureEnvTarget).
+  -> GLenum -- ^ @pname@ of type [TextureEnvParameter](Graphics-GL-Groups.html#TextureEnvParameter).
+  -> GLfloat -- ^ @param@ of type @CheckedFloat32@.
+  -> m ()
+glTexEnvf v1 v2 v3 = liftIO $ dyn168 ptr_glTexEnvf v1 v2 v3
+
+{-# NOINLINE ptr_glTexEnvf #-}
+ptr_glTexEnvf :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
+ptr_glTexEnvf = unsafePerformIO $ getCommand "glTexEnvf"
+
+-- glTexEnvfv ------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glTexEnv.xml OpenGL 2.x>.
+glTexEnvfv
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureEnvTarget](Graphics-GL-Groups.html#TextureEnvTarget).
+  -> GLenum -- ^ @pname@ of type [TextureEnvParameter](Graphics-GL-Groups.html#TextureEnvParameter).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @CheckedFloat32@.
+  -> m ()
+glTexEnvfv v1 v2 v3 = liftIO $ dyn139 ptr_glTexEnvfv v1 v2 v3
+
+{-# NOINLINE ptr_glTexEnvfv #-}
+ptr_glTexEnvfv :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glTexEnvfv = unsafePerformIO $ getCommand "glTexEnvfv"
+
+-- glTexEnvi -------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glTexEnv.xml OpenGL 2.x>.
+glTexEnvi
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureEnvTarget](Graphics-GL-Groups.html#TextureEnvTarget).
+  -> GLenum -- ^ @pname@ of type [TextureEnvParameter](Graphics-GL-Groups.html#TextureEnvParameter).
+  -> GLint -- ^ @param@ of type @CheckedInt32@.
+  -> m ()
+glTexEnvi v1 v2 v3 = liftIO $ dyn66 ptr_glTexEnvi v1 v2 v3
+
+{-# NOINLINE ptr_glTexEnvi #-}
+ptr_glTexEnvi :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
+ptr_glTexEnvi = unsafePerformIO $ getCommand "glTexEnvi"
+
+-- glTexEnviv ------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glTexEnv.xml OpenGL 2.x>.
+glTexEnviv
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureEnvTarget](Graphics-GL-Groups.html#TextureEnvTarget).
+  -> GLenum -- ^ @pname@ of type [TextureEnvParameter](Graphics-GL-Groups.html#TextureEnvParameter).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @CheckedInt32@.
+  -> m ()
+glTexEnviv v1 v2 v3 = liftIO $ dyn140 ptr_glTexEnviv v1 v2 v3
+
+{-# NOINLINE ptr_glTexEnviv #-}
+ptr_glTexEnviv :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glTexEnviv = unsafePerformIO $ getCommand "glTexEnviv"
+
+-- glTexEnvx -------------------------------------------------------------------
+
+glTexEnvx
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureEnvTarget](Graphics-GL-Groups.html#TextureEnvTarget).
+  -> GLenum -- ^ @pname@ of type [TextureEnvParameter](Graphics-GL-Groups.html#TextureEnvParameter).
+  -> GLfixed -- ^ @param@.
+  -> m ()
+glTexEnvx v1 v2 v3 = liftIO $ dyn169 ptr_glTexEnvx v1 v2 v3
+
+{-# NOINLINE ptr_glTexEnvx #-}
+ptr_glTexEnvx :: FunPtr (GLenum -> GLenum -> GLfixed -> IO ())
+ptr_glTexEnvx = unsafePerformIO $ getCommand "glTexEnvx"
+
+-- glTexEnvxOES ----------------------------------------------------------------
+
+glTexEnvxOES
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureEnvTarget](Graphics-GL-Groups.html#TextureEnvTarget).
+  -> GLenum -- ^ @pname@ of type [TextureEnvParameter](Graphics-GL-Groups.html#TextureEnvParameter).
+  -> GLfixed -- ^ @param@.
+  -> m ()
+glTexEnvxOES v1 v2 v3 = liftIO $ dyn169 ptr_glTexEnvxOES v1 v2 v3
+
+{-# NOINLINE ptr_glTexEnvxOES #-}
+ptr_glTexEnvxOES :: FunPtr (GLenum -> GLenum -> GLfixed -> IO ())
+ptr_glTexEnvxOES = unsafePerformIO $ getCommand "glTexEnvxOES"
+
+-- glTexEnvxv ------------------------------------------------------------------
+
+glTexEnvxv
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureEnvTarget](Graphics-GL-Groups.html#TextureEnvTarget).
+  -> GLenum -- ^ @pname@ of type [TextureEnvParameter](Graphics-GL-Groups.html#TextureEnvParameter).
+  -> Ptr GLfixed -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfixed@.
+  -> m ()
+glTexEnvxv v1 v2 v3 = liftIO $ dyn170 ptr_glTexEnvxv v1 v2 v3
+
+{-# NOINLINE ptr_glTexEnvxv #-}
+ptr_glTexEnvxv :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+ptr_glTexEnvxv = unsafePerformIO $ getCommand "glTexEnvxv"
+
+-- glTexEnvxvOES ---------------------------------------------------------------
+
+glTexEnvxvOES
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureEnvTarget](Graphics-GL-Groups.html#TextureEnvTarget).
+  -> GLenum -- ^ @pname@ of type [TextureEnvParameter](Graphics-GL-Groups.html#TextureEnvParameter).
+  -> Ptr GLfixed -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfixed@.
+  -> m ()
+glTexEnvxvOES v1 v2 v3 = liftIO $ dyn170 ptr_glTexEnvxvOES v1 v2 v3
+
+{-# NOINLINE ptr_glTexEnvxvOES #-}
+ptr_glTexEnvxvOES :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+ptr_glTexEnvxvOES = unsafePerformIO $ getCommand "glTexEnvxvOES"
+
+-- glTexFilterFuncSGIS ---------------------------------------------------------
+
+glTexFilterFuncSGIS
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLenum -- ^ @filter@ of type [TextureFilterSGIS](Graphics-GL-Groups.html#TextureFilterSGIS).
+  -> GLsizei -- ^ @n@.
+  -> Ptr GLfloat -- ^ @weights@ pointing to @n@ elements of type @GLfloat@.
+  -> m ()
+glTexFilterFuncSGIS v1 v2 v3 v4 = liftIO $ dyn472 ptr_glTexFilterFuncSGIS v1 v2 v3 v4
+
+{-# NOINLINE ptr_glTexFilterFuncSGIS #-}
+ptr_glTexFilterFuncSGIS :: FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLfloat -> IO ())
+ptr_glTexFilterFuncSGIS = unsafePerformIO $ getCommand "glTexFilterFuncSGIS"
+
+-- glTexGend -------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glTexGen.xml OpenGL 2.x>.
+glTexGend
+  :: MonadIO m
+  => GLenum -- ^ @coord@ of type [TextureCoordName](Graphics-GL-Groups.html#TextureCoordName).
+  -> GLenum -- ^ @pname@ of type [TextureGenParameter](Graphics-GL-Groups.html#TextureGenParameter).
+  -> GLdouble -- ^ @param@.
+  -> m ()
+glTexGend v1 v2 v3 = liftIO $ dyn772 ptr_glTexGend v1 v2 v3
+
+{-# NOINLINE ptr_glTexGend #-}
+ptr_glTexGend :: FunPtr (GLenum -> GLenum -> GLdouble -> IO ())
+ptr_glTexGend = unsafePerformIO $ getCommand "glTexGend"
+
+-- glTexGendv ------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glTexGen.xml OpenGL 2.x>.
+glTexGendv
+  :: MonadIO m
+  => GLenum -- ^ @coord@ of type [TextureCoordName](Graphics-GL-Groups.html#TextureCoordName).
+  -> GLenum -- ^ @pname@ of type [TextureGenParameter](Graphics-GL-Groups.html#TextureGenParameter).
+  -> Ptr GLdouble -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLdouble@.
+  -> m ()
+glTexGendv v1 v2 v3 = liftIO $ dyn368 ptr_glTexGendv v1 v2 v3
+
+{-# NOINLINE ptr_glTexGendv #-}
+ptr_glTexGendv :: FunPtr (GLenum -> GLenum -> Ptr GLdouble -> IO ())
+ptr_glTexGendv = unsafePerformIO $ getCommand "glTexGendv"
+
+-- glTexGenf -------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glTexGen.xml OpenGL 2.x>.
+glTexGenf
+  :: MonadIO m
+  => GLenum -- ^ @coord@ of type [TextureCoordName](Graphics-GL-Groups.html#TextureCoordName).
+  -> GLenum -- ^ @pname@ of type [TextureGenParameter](Graphics-GL-Groups.html#TextureGenParameter).
+  -> GLfloat -- ^ @param@ of type @CheckedFloat32@.
+  -> m ()
+glTexGenf v1 v2 v3 = liftIO $ dyn168 ptr_glTexGenf v1 v2 v3
+
+{-# NOINLINE ptr_glTexGenf #-}
+ptr_glTexGenf :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
+ptr_glTexGenf = unsafePerformIO $ getCommand "glTexGenf"
+
+-- glTexGenfOES ----------------------------------------------------------------
+
+glTexGenfOES
+  :: MonadIO m
+  => GLenum -- ^ @coord@ of type [TextureCoordName](Graphics-GL-Groups.html#TextureCoordName).
+  -> GLenum -- ^ @pname@ of type [TextureGenParameter](Graphics-GL-Groups.html#TextureGenParameter).
+  -> GLfloat -- ^ @param@.
+  -> m ()
+glTexGenfOES v1 v2 v3 = liftIO $ dyn168 ptr_glTexGenfOES v1 v2 v3
+
+{-# NOINLINE ptr_glTexGenfOES #-}
+ptr_glTexGenfOES :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
+ptr_glTexGenfOES = unsafePerformIO $ getCommand "glTexGenfOES"
+
+-- glTexGenfv ------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glTexGen.xml OpenGL 2.x>.
+glTexGenfv
+  :: MonadIO m
+  => GLenum -- ^ @coord@ of type [TextureCoordName](Graphics-GL-Groups.html#TextureCoordName).
+  -> GLenum -- ^ @pname@ of type [TextureGenParameter](Graphics-GL-Groups.html#TextureGenParameter).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @CheckedFloat32@.
+  -> m ()
+glTexGenfv v1 v2 v3 = liftIO $ dyn139 ptr_glTexGenfv v1 v2 v3
+
+{-# NOINLINE ptr_glTexGenfv #-}
+ptr_glTexGenfv :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glTexGenfv = unsafePerformIO $ getCommand "glTexGenfv"
+
+-- glTexGenfvOES ---------------------------------------------------------------
+
+glTexGenfvOES
+  :: MonadIO m
+  => GLenum -- ^ @coord@ of type [TextureCoordName](Graphics-GL-Groups.html#TextureCoordName).
+  -> GLenum -- ^ @pname@ of type [TextureGenParameter](Graphics-GL-Groups.html#TextureGenParameter).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
+  -> m ()
+glTexGenfvOES v1 v2 v3 = liftIO $ dyn139 ptr_glTexGenfvOES v1 v2 v3
+
+{-# NOINLINE ptr_glTexGenfvOES #-}
+ptr_glTexGenfvOES :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glTexGenfvOES = unsafePerformIO $ getCommand "glTexGenfvOES"
+
+-- glTexGeni -------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glTexGen.xml OpenGL 2.x>.
+glTexGeni
+  :: MonadIO m
+  => GLenum -- ^ @coord@ of type [TextureCoordName](Graphics-GL-Groups.html#TextureCoordName).
+  -> GLenum -- ^ @pname@ of type [TextureGenParameter](Graphics-GL-Groups.html#TextureGenParameter).
+  -> GLint -- ^ @param@ of type @CheckedInt32@.
+  -> m ()
+glTexGeni v1 v2 v3 = liftIO $ dyn66 ptr_glTexGeni v1 v2 v3
+
+{-# NOINLINE ptr_glTexGeni #-}
+ptr_glTexGeni :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
+ptr_glTexGeni = unsafePerformIO $ getCommand "glTexGeni"
+
+-- glTexGeniOES ----------------------------------------------------------------
+
+glTexGeniOES
+  :: MonadIO m
+  => GLenum -- ^ @coord@ of type [TextureCoordName](Graphics-GL-Groups.html#TextureCoordName).
+  -> GLenum -- ^ @pname@ of type [TextureGenParameter](Graphics-GL-Groups.html#TextureGenParameter).
+  -> GLint -- ^ @param@.
+  -> m ()
+glTexGeniOES v1 v2 v3 = liftIO $ dyn66 ptr_glTexGeniOES v1 v2 v3
+
+{-# NOINLINE ptr_glTexGeniOES #-}
+ptr_glTexGeniOES :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
+ptr_glTexGeniOES = unsafePerformIO $ getCommand "glTexGeniOES"
+
+-- glTexGeniv ------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glTexGen.xml OpenGL 2.x>.
+glTexGeniv
+  :: MonadIO m
+  => GLenum -- ^ @coord@ of type [TextureCoordName](Graphics-GL-Groups.html#TextureCoordName).
+  -> GLenum -- ^ @pname@ of type [TextureGenParameter](Graphics-GL-Groups.html#TextureGenParameter).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @CheckedInt32@.
+  -> m ()
+glTexGeniv v1 v2 v3 = liftIO $ dyn140 ptr_glTexGeniv v1 v2 v3
+
+{-# NOINLINE ptr_glTexGeniv #-}
+ptr_glTexGeniv :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glTexGeniv = unsafePerformIO $ getCommand "glTexGeniv"
+
+-- glTexGenivOES ---------------------------------------------------------------
+
+glTexGenivOES
+  :: MonadIO m
+  => GLenum -- ^ @coord@ of type [TextureCoordName](Graphics-GL-Groups.html#TextureCoordName).
+  -> GLenum -- ^ @pname@ of type [TextureGenParameter](Graphics-GL-Groups.html#TextureGenParameter).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glTexGenivOES v1 v2 v3 = liftIO $ dyn140 ptr_glTexGenivOES v1 v2 v3
+
+{-# NOINLINE ptr_glTexGenivOES #-}
+ptr_glTexGenivOES :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glTexGenivOES = unsafePerformIO $ getCommand "glTexGenivOES"
+
+-- glTexGenxOES ----------------------------------------------------------------
+
+glTexGenxOES
+  :: MonadIO m
+  => GLenum -- ^ @coord@ of type [TextureCoordName](Graphics-GL-Groups.html#TextureCoordName).
+  -> GLenum -- ^ @pname@ of type [TextureGenParameter](Graphics-GL-Groups.html#TextureGenParameter).
+  -> GLfixed -- ^ @param@.
+  -> m ()
+glTexGenxOES v1 v2 v3 = liftIO $ dyn169 ptr_glTexGenxOES v1 v2 v3
+
+{-# NOINLINE ptr_glTexGenxOES #-}
+ptr_glTexGenxOES :: FunPtr (GLenum -> GLenum -> GLfixed -> IO ())
+ptr_glTexGenxOES = unsafePerformIO $ getCommand "glTexGenxOES"
+
+-- glTexGenxvOES ---------------------------------------------------------------
+
+glTexGenxvOES
+  :: MonadIO m
+  => GLenum -- ^ @coord@ of type [TextureCoordName](Graphics-GL-Groups.html#TextureCoordName).
+  -> GLenum -- ^ @pname@ of type [TextureGenParameter](Graphics-GL-Groups.html#TextureGenParameter).
+  -> Ptr GLfixed -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfixed@.
+  -> m ()
+glTexGenxvOES v1 v2 v3 = liftIO $ dyn170 ptr_glTexGenxvOES v1 v2 v3
+
+{-# NOINLINE ptr_glTexGenxvOES #-}
+ptr_glTexGenxvOES :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+ptr_glTexGenxvOES = unsafePerformIO $ getCommand "glTexGenxvOES"
+
+-- glTexImage1D ----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glTexImage1D.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glTexImage1D.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glTexImage1D.xhtml OpenGL 4.x>.
+glTexImage1D
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLint -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLint -- ^ @border@ of type @CheckedInt32@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @pixels@ pointing to @COMPSIZE(format,type,width)@ elements of type @a@.
+  -> m ()
+glTexImage1D v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn773 ptr_glTexImage1D v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glTexImage1D #-}
+ptr_glTexImage1D :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glTexImage1D = unsafePerformIO $ getCommand "glTexImage1D"
+
+-- glTexImage2D ----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glTexImage2D.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glTexImage2D.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glTexImage2D.xhtml OpenGL 4.x>.
+glTexImage2D
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLint -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLint -- ^ @border@ of type @CheckedInt32@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @pixels@ pointing to @COMPSIZE(format,type,width,height)@ elements of type @a@.
+  -> m ()
+glTexImage2D v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO $ dyn774 ptr_glTexImage2D v1 v2 v3 v4 v5 v6 v7 v8 v9
+
+{-# NOINLINE ptr_glTexImage2D #-}
+ptr_glTexImage2D :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glTexImage2D = unsafePerformIO $ getCommand "glTexImage2D"
+
+-- glTexImage2DMultisample -----------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glTexImage2DMultisample.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glTexImage2DMultisample.xhtml OpenGL 4.x>.
+glTexImage2DMultisample
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLsizei -- ^ @samples@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLboolean -- ^ @fixedsamplelocations@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m ()
+glTexImage2DMultisample v1 v2 v3 v4 v5 v6 = liftIO $ dyn775 ptr_glTexImage2DMultisample v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glTexImage2DMultisample #-}
+ptr_glTexImage2DMultisample :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> IO ())
+ptr_glTexImage2DMultisample = unsafePerformIO $ getCommand "glTexImage2DMultisample"
+
+-- glTexImage2DMultisampleCoverageNV -------------------------------------------
+
+glTexImage2DMultisampleCoverageNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLsizei -- ^ @coverageSamples@.
+  -> GLsizei -- ^ @colorSamples@.
+  -> GLint -- ^ @internalFormat@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLboolean -- ^ @fixedSampleLocations@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m ()
+glTexImage2DMultisampleCoverageNV v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn776 ptr_glTexImage2DMultisampleCoverageNV v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glTexImage2DMultisampleCoverageNV #-}
+ptr_glTexImage2DMultisampleCoverageNV :: FunPtr (GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> IO ())
+ptr_glTexImage2DMultisampleCoverageNV = unsafePerformIO $ getCommand "glTexImage2DMultisampleCoverageNV"
+
+-- glTexImage3D ----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glTexImage3D.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glTexImage3D.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glTexImage3D.xhtml OpenGL 4.x>.
+glTexImage3D
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLint -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLsizei -- ^ @depth@.
+  -> GLint -- ^ @border@ of type @CheckedInt32@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @pixels@ pointing to @COMPSIZE(format,type,width,height,depth)@ elements of type @a@.
+  -> m ()
+glTexImage3D v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 = liftIO $ dyn777 ptr_glTexImage3D v1 v2 v3 v4 v5 v6 v7 v8 v9 v10
+
+{-# NOINLINE ptr_glTexImage3D #-}
+ptr_glTexImage3D :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glTexImage3D = unsafePerformIO $ getCommand "glTexImage3D"
+
+-- glTexImage3DEXT -------------------------------------------------------------
+
+-- | This command is an alias for 'glTexImage3D'.
+glTexImage3DEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLsizei -- ^ @depth@.
+  -> GLint -- ^ @border@ of type @CheckedInt32@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @pixels@ pointing to @COMPSIZE(format,type,width,height,depth)@ elements of type @a@.
+  -> m ()
+glTexImage3DEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 = liftIO $ dyn778 ptr_glTexImage3DEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 v10
+
+{-# NOINLINE ptr_glTexImage3DEXT #-}
+ptr_glTexImage3DEXT :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glTexImage3DEXT = unsafePerformIO $ getCommand "glTexImage3DEXT"
+
+-- glTexImage3DMultisample -----------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glTexImage3DMultisample.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glTexImage3DMultisample.xhtml OpenGL 4.x>.
+glTexImage3DMultisample
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLsizei -- ^ @samples@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLsizei -- ^ @depth@.
+  -> GLboolean -- ^ @fixedsamplelocations@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m ()
+glTexImage3DMultisample v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn779 ptr_glTexImage3DMultisample v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glTexImage3DMultisample #-}
+ptr_glTexImage3DMultisample :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
+ptr_glTexImage3DMultisample = unsafePerformIO $ getCommand "glTexImage3DMultisample"
+
+-- glTexImage3DMultisampleCoverageNV -------------------------------------------
+
+glTexImage3DMultisampleCoverageNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLsizei -- ^ @coverageSamples@.
+  -> GLsizei -- ^ @colorSamples@.
+  -> GLint -- ^ @internalFormat@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLsizei -- ^ @depth@.
+  -> GLboolean -- ^ @fixedSampleLocations@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m ()
+glTexImage3DMultisampleCoverageNV v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn780 ptr_glTexImage3DMultisampleCoverageNV v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glTexImage3DMultisampleCoverageNV #-}
+ptr_glTexImage3DMultisampleCoverageNV :: FunPtr (GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
+ptr_glTexImage3DMultisampleCoverageNV = unsafePerformIO $ getCommand "glTexImage3DMultisampleCoverageNV"
+
+-- glTexImage3DOES -------------------------------------------------------------
+
+glTexImage3DOES
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLsizei -- ^ @depth@.
+  -> GLint -- ^ @border@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @pixels@ pointing to @COMPSIZE(format,type,width,height,depth)@ elements of type @a@.
+  -> m ()
+glTexImage3DOES v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 = liftIO $ dyn778 ptr_glTexImage3DOES v1 v2 v3 v4 v5 v6 v7 v8 v9 v10
+
+{-# NOINLINE ptr_glTexImage3DOES #-}
+ptr_glTexImage3DOES :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glTexImage3DOES = unsafePerformIO $ getCommand "glTexImage3DOES"
+
+-- glTexImage4DSGIS ------------------------------------------------------------
+
+glTexImage4DSGIS
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLsizei -- ^ @depth@.
+  -> GLsizei -- ^ @size4d@.
+  -> GLint -- ^ @border@ of type @CheckedInt32@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @pixels@ pointing to @COMPSIZE(format,type,width,height,depth,size4d)@ elements of type @a@.
+  -> m ()
+glTexImage4DSGIS v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 = liftIO $ dyn781 ptr_glTexImage4DSGIS v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11
+
+{-# NOINLINE ptr_glTexImage4DSGIS #-}
+ptr_glTexImage4DSGIS :: FunPtr (GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glTexImage4DSGIS = unsafePerformIO $ getCommand "glTexImage4DSGIS"
+
+-- glTexPageCommitmentARB ------------------------------------------------------
+
+glTexPageCommitmentARB
+  :: MonadIO m
+  => GLenum -- ^ @target@.
+  -> GLint -- ^ @level@.
+  -> GLint -- ^ @xoffset@.
+  -> GLint -- ^ @yoffset@.
+  -> GLint -- ^ @zoffset@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLsizei -- ^ @depth@.
+  -> GLboolean -- ^ @commit@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m ()
+glTexPageCommitmentARB v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO $ dyn782 ptr_glTexPageCommitmentARB v1 v2 v3 v4 v5 v6 v7 v8 v9
+
+{-# NOINLINE ptr_glTexPageCommitmentARB #-}
+ptr_glTexPageCommitmentARB :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
+ptr_glTexPageCommitmentARB = unsafePerformIO $ getCommand "glTexPageCommitmentARB"
+
+-- glTexPageCommitmentEXT ------------------------------------------------------
+
+-- | This command is an alias for 'glTexPageCommitmentARB'.
+glTexPageCommitmentEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@.
+  -> GLint -- ^ @level@.
+  -> GLint -- ^ @xoffset@.
+  -> GLint -- ^ @yoffset@.
+  -> GLint -- ^ @zoffset@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLsizei -- ^ @depth@.
+  -> GLboolean -- ^ @commit@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m ()
+glTexPageCommitmentEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO $ dyn782 ptr_glTexPageCommitmentEXT v1 v2 v3 v4 v5 v6 v7 v8 v9
+
+{-# NOINLINE ptr_glTexPageCommitmentEXT #-}
+ptr_glTexPageCommitmentEXT :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
+ptr_glTexPageCommitmentEXT = unsafePerformIO $ getCommand "glTexPageCommitmentEXT"
+
+-- glTexParameterIiv -----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glTexParameter.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glTexParameter.xhtml OpenGL 4.x>.
+glTexParameterIiv
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLenum -- ^ @pname@ of type [TextureParameterName](Graphics-GL-Groups.html#TextureParameterName).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glTexParameterIiv v1 v2 v3 = liftIO $ dyn140 ptr_glTexParameterIiv v1 v2 v3
+
+{-# NOINLINE ptr_glTexParameterIiv #-}
+ptr_glTexParameterIiv :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glTexParameterIiv = unsafePerformIO $ getCommand "glTexParameterIiv"
+
+-- glTexParameterIivEXT --------------------------------------------------------
+
+-- | This command is an alias for 'glTexParameterIiv'.
+glTexParameterIivEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLenum -- ^ @pname@ of type [TextureParameterName](Graphics-GL-Groups.html#TextureParameterName).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glTexParameterIivEXT v1 v2 v3 = liftIO $ dyn140 ptr_glTexParameterIivEXT v1 v2 v3
+
+{-# NOINLINE ptr_glTexParameterIivEXT #-}
+ptr_glTexParameterIivEXT :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glTexParameterIivEXT = unsafePerformIO $ getCommand "glTexParameterIivEXT"
+
+-- glTexParameterIivOES --------------------------------------------------------
+
+-- | This command is an alias for 'glTexParameterIiv'.
+glTexParameterIivOES
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLenum -- ^ @pname@ of type [TextureParameterName](Graphics-GL-Groups.html#TextureParameterName).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glTexParameterIivOES v1 v2 v3 = liftIO $ dyn140 ptr_glTexParameterIivOES v1 v2 v3
+
+{-# NOINLINE ptr_glTexParameterIivOES #-}
+ptr_glTexParameterIivOES :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glTexParameterIivOES = unsafePerformIO $ getCommand "glTexParameterIivOES"
+
+-- glTexParameterIuiv ----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glTexParameter.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glTexParameter.xhtml OpenGL 4.x>.
+glTexParameterIuiv
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLenum -- ^ @pname@ of type [TextureParameterName](Graphics-GL-Groups.html#TextureParameterName).
+  -> Ptr GLuint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLuint@.
+  -> m ()
+glTexParameterIuiv v1 v2 v3 = liftIO $ dyn432 ptr_glTexParameterIuiv v1 v2 v3
+
+{-# NOINLINE ptr_glTexParameterIuiv #-}
+ptr_glTexParameterIuiv :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
+ptr_glTexParameterIuiv = unsafePerformIO $ getCommand "glTexParameterIuiv"
+
+-- glTexParameterIuivEXT -------------------------------------------------------
+
+-- | This command is an alias for 'glTexParameterIuiv'.
+glTexParameterIuivEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLenum -- ^ @pname@ of type [TextureParameterName](Graphics-GL-Groups.html#TextureParameterName).
+  -> Ptr GLuint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLuint@.
+  -> m ()
+glTexParameterIuivEXT v1 v2 v3 = liftIO $ dyn432 ptr_glTexParameterIuivEXT v1 v2 v3
+
+{-# NOINLINE ptr_glTexParameterIuivEXT #-}
+ptr_glTexParameterIuivEXT :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
+ptr_glTexParameterIuivEXT = unsafePerformIO $ getCommand "glTexParameterIuivEXT"
+
+-- glTexParameterIuivOES -------------------------------------------------------
+
+-- | This command is an alias for 'glTexParameterIuiv'.
+glTexParameterIuivOES
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLenum -- ^ @pname@ of type [TextureParameterName](Graphics-GL-Groups.html#TextureParameterName).
+  -> Ptr GLuint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLuint@.
+  -> m ()
+glTexParameterIuivOES v1 v2 v3 = liftIO $ dyn432 ptr_glTexParameterIuivOES v1 v2 v3
+
+{-# NOINLINE ptr_glTexParameterIuivOES #-}
+ptr_glTexParameterIuivOES :: FunPtr (GLenum -> GLenum -> Ptr GLuint -> IO ())
+ptr_glTexParameterIuivOES = unsafePerformIO $ getCommand "glTexParameterIuivOES"
+
+-- glTexParameterf -------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glTexParameter.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glTexParameter.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glTexParameter.xhtml OpenGL 4.x>.
+glTexParameterf
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLenum -- ^ @pname@ of type [TextureParameterName](Graphics-GL-Groups.html#TextureParameterName).
+  -> GLfloat -- ^ @param@ of type @CheckedFloat32@.
+  -> m ()
+glTexParameterf v1 v2 v3 = liftIO $ dyn168 ptr_glTexParameterf v1 v2 v3
+
+{-# NOINLINE ptr_glTexParameterf #-}
+ptr_glTexParameterf :: FunPtr (GLenum -> GLenum -> GLfloat -> IO ())
+ptr_glTexParameterf = unsafePerformIO $ getCommand "glTexParameterf"
+
+-- glTexParameterfv ------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glTexParameter.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glTexParameter.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glTexParameter.xhtml OpenGL 4.x>.
+glTexParameterfv
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLenum -- ^ @pname@ of type [TextureParameterName](Graphics-GL-Groups.html#TextureParameterName).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @CheckedFloat32@.
+  -> m ()
+glTexParameterfv v1 v2 v3 = liftIO $ dyn139 ptr_glTexParameterfv v1 v2 v3
+
+{-# NOINLINE ptr_glTexParameterfv #-}
+ptr_glTexParameterfv :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glTexParameterfv = unsafePerformIO $ getCommand "glTexParameterfv"
+
+-- glTexParameteri -------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glTexParameter.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glTexParameter.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glTexParameter.xhtml OpenGL 4.x>.
+glTexParameteri
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLenum -- ^ @pname@ of type [TextureParameterName](Graphics-GL-Groups.html#TextureParameterName).
+  -> GLint -- ^ @param@ of type @CheckedInt32@.
+  -> m ()
+glTexParameteri v1 v2 v3 = liftIO $ dyn66 ptr_glTexParameteri v1 v2 v3
+
+{-# NOINLINE ptr_glTexParameteri #-}
+ptr_glTexParameteri :: FunPtr (GLenum -> GLenum -> GLint -> IO ())
+ptr_glTexParameteri = unsafePerformIO $ getCommand "glTexParameteri"
+
+-- glTexParameteriv ------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glTexParameter.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glTexParameter.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glTexParameter.xhtml OpenGL 4.x>.
+glTexParameteriv
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLenum -- ^ @pname@ of type [TextureParameterName](Graphics-GL-Groups.html#TextureParameterName).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @CheckedInt32@.
+  -> m ()
+glTexParameteriv v1 v2 v3 = liftIO $ dyn140 ptr_glTexParameteriv v1 v2 v3
+
+{-# NOINLINE ptr_glTexParameteriv #-}
+ptr_glTexParameteriv :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glTexParameteriv = unsafePerformIO $ getCommand "glTexParameteriv"
+
+-- glTexParameterx -------------------------------------------------------------
+
+glTexParameterx
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLenum -- ^ @pname@ of type [GetTextureParameter](Graphics-GL-Groups.html#GetTextureParameter).
+  -> GLfixed -- ^ @param@.
+  -> m ()
+glTexParameterx v1 v2 v3 = liftIO $ dyn169 ptr_glTexParameterx v1 v2 v3
+
+{-# NOINLINE ptr_glTexParameterx #-}
+ptr_glTexParameterx :: FunPtr (GLenum -> GLenum -> GLfixed -> IO ())
+ptr_glTexParameterx = unsafePerformIO $ getCommand "glTexParameterx"
+
+-- glTexParameterxOES ----------------------------------------------------------
+
+glTexParameterxOES
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLenum -- ^ @pname@ of type [GetTextureParameter](Graphics-GL-Groups.html#GetTextureParameter).
+  -> GLfixed -- ^ @param@.
+  -> m ()
+glTexParameterxOES v1 v2 v3 = liftIO $ dyn169 ptr_glTexParameterxOES v1 v2 v3
+
+{-# NOINLINE ptr_glTexParameterxOES #-}
+ptr_glTexParameterxOES :: FunPtr (GLenum -> GLenum -> GLfixed -> IO ())
+ptr_glTexParameterxOES = unsafePerformIO $ getCommand "glTexParameterxOES"
+
+-- glTexParameterxv ------------------------------------------------------------
+
+glTexParameterxv
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLenum -- ^ @pname@ of type [GetTextureParameter](Graphics-GL-Groups.html#GetTextureParameter).
+  -> Ptr GLfixed -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfixed@.
+  -> m ()
+glTexParameterxv v1 v2 v3 = liftIO $ dyn170 ptr_glTexParameterxv v1 v2 v3
+
+{-# NOINLINE ptr_glTexParameterxv #-}
+ptr_glTexParameterxv :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+ptr_glTexParameterxv = unsafePerformIO $ getCommand "glTexParameterxv"
+
+-- glTexParameterxvOES ---------------------------------------------------------
+
+glTexParameterxvOES
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLenum -- ^ @pname@ of type [GetTextureParameter](Graphics-GL-Groups.html#GetTextureParameter).
+  -> Ptr GLfixed -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfixed@.
+  -> m ()
+glTexParameterxvOES v1 v2 v3 = liftIO $ dyn170 ptr_glTexParameterxvOES v1 v2 v3
+
+{-# NOINLINE ptr_glTexParameterxvOES #-}
+ptr_glTexParameterxvOES :: FunPtr (GLenum -> GLenum -> Ptr GLfixed -> IO ())
+ptr_glTexParameterxvOES = unsafePerformIO $ getCommand "glTexParameterxvOES"
+
+-- glTexRenderbufferNV ---------------------------------------------------------
+
+glTexRenderbufferNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLuint -- ^ @renderbuffer@.
+  -> m ()
+glTexRenderbufferNV v1 v2 = liftIO $ dyn19 ptr_glTexRenderbufferNV v1 v2
+
+{-# NOINLINE ptr_glTexRenderbufferNV #-}
+ptr_glTexRenderbufferNV :: FunPtr (GLenum -> GLuint -> IO ())
+ptr_glTexRenderbufferNV = unsafePerformIO $ getCommand "glTexRenderbufferNV"
+
+-- glTexStorage1D --------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glTexStorage1D.xhtml OpenGL 4.x>.
+glTexStorage1D
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLsizei -- ^ @levels@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> m ()
+glTexStorage1D v1 v2 v3 v4 = liftIO $ dyn783 ptr_glTexStorage1D v1 v2 v3 v4
+
+{-# NOINLINE ptr_glTexStorage1D #-}
+ptr_glTexStorage1D :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> IO ())
+ptr_glTexStorage1D = unsafePerformIO $ getCommand "glTexStorage1D"
+
+-- glTexStorage1DEXT -----------------------------------------------------------
+
+-- | This command is an alias for 'glTexStorage1D'.
+glTexStorage1DEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLsizei -- ^ @levels@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> m ()
+glTexStorage1DEXT v1 v2 v3 v4 = liftIO $ dyn783 ptr_glTexStorage1DEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glTexStorage1DEXT #-}
+ptr_glTexStorage1DEXT :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> IO ())
+ptr_glTexStorage1DEXT = unsafePerformIO $ getCommand "glTexStorage1DEXT"
+
+-- glTexStorage2D --------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glTexStorage2D.xhtml OpenGL 4.x>.
+glTexStorage2D
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLsizei -- ^ @levels@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> m ()
+glTexStorage2D v1 v2 v3 v4 v5 = liftIO $ dyn720 ptr_glTexStorage2D v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glTexStorage2D #-}
+ptr_glTexStorage2D :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
+ptr_glTexStorage2D = unsafePerformIO $ getCommand "glTexStorage2D"
+
+-- glTexStorage2DEXT -----------------------------------------------------------
+
+-- | This command is an alias for 'glTexStorage2D'.
+glTexStorage2DEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLsizei -- ^ @levels@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> m ()
+glTexStorage2DEXT v1 v2 v3 v4 v5 = liftIO $ dyn720 ptr_glTexStorage2DEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glTexStorage2DEXT #-}
+ptr_glTexStorage2DEXT :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
+ptr_glTexStorage2DEXT = unsafePerformIO $ getCommand "glTexStorage2DEXT"
+
+-- glTexStorage2DMultisample ---------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glTexStorage2DMultisample.xhtml OpenGL 4.x>.
+glTexStorage2DMultisample
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLsizei -- ^ @samples@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLboolean -- ^ @fixedsamplelocations@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m ()
+glTexStorage2DMultisample v1 v2 v3 v4 v5 v6 = liftIO $ dyn775 ptr_glTexStorage2DMultisample v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glTexStorage2DMultisample #-}
+ptr_glTexStorage2DMultisample :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> IO ())
+ptr_glTexStorage2DMultisample = unsafePerformIO $ getCommand "glTexStorage2DMultisample"
+
+-- glTexStorage3D --------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glTexStorage3D.xhtml OpenGL 4.x>.
+glTexStorage3D
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLsizei -- ^ @levels@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLsizei -- ^ @depth@.
+  -> m ()
+glTexStorage3D v1 v2 v3 v4 v5 v6 = liftIO $ dyn784 ptr_glTexStorage3D v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glTexStorage3D #-}
+ptr_glTexStorage3D :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ())
+ptr_glTexStorage3D = unsafePerformIO $ getCommand "glTexStorage3D"
+
+-- glTexStorage3DEXT -----------------------------------------------------------
+
+-- | This command is an alias for 'glTexStorage3D'.
+glTexStorage3DEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLsizei -- ^ @levels@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLsizei -- ^ @depth@.
+  -> m ()
+glTexStorage3DEXT v1 v2 v3 v4 v5 v6 = liftIO $ dyn784 ptr_glTexStorage3DEXT v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glTexStorage3DEXT #-}
+ptr_glTexStorage3DEXT :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ())
+ptr_glTexStorage3DEXT = unsafePerformIO $ getCommand "glTexStorage3DEXT"
+
+-- glTexStorage3DMultisample ---------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glTexStorage3DMultisample.xhtml OpenGL 4.x>.
+glTexStorage3DMultisample
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLsizei -- ^ @samples@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLsizei -- ^ @depth@.
+  -> GLboolean -- ^ @fixedsamplelocations@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m ()
+glTexStorage3DMultisample v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn779 ptr_glTexStorage3DMultisample v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glTexStorage3DMultisample #-}
+ptr_glTexStorage3DMultisample :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
+ptr_glTexStorage3DMultisample = unsafePerformIO $ getCommand "glTexStorage3DMultisample"
+
+-- glTexStorage3DMultisampleOES ------------------------------------------------
+
+-- | This command is an alias for 'glTexStorage3DMultisample'.
+glTexStorage3DMultisampleOES
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLsizei -- ^ @samples@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLsizei -- ^ @depth@.
+  -> GLboolean -- ^ @fixedsamplelocations@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m ()
+glTexStorage3DMultisampleOES v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn779 ptr_glTexStorage3DMultisampleOES v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glTexStorage3DMultisampleOES #-}
+ptr_glTexStorage3DMultisampleOES :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
+ptr_glTexStorage3DMultisampleOES = unsafePerformIO $ getCommand "glTexStorage3DMultisampleOES"
+
+-- glTexStorageMem1DEXT --------------------------------------------------------
+
+glTexStorageMem1DEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLsizei -- ^ @levels@.
+  -> GLenum -- ^ @internalFormat@.
+  -> GLsizei -- ^ @width@.
+  -> GLuint -- ^ @memory@.
+  -> GLuint64 -- ^ @offset@.
+  -> m ()
+glTexStorageMem1DEXT v1 v2 v3 v4 v5 v6 = liftIO $ dyn785 ptr_glTexStorageMem1DEXT v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glTexStorageMem1DEXT #-}
+ptr_glTexStorageMem1DEXT :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLuint -> GLuint64 -> IO ())
+ptr_glTexStorageMem1DEXT = unsafePerformIO $ getCommand "glTexStorageMem1DEXT"
+
+-- glTexStorageMem2DEXT --------------------------------------------------------
+
+glTexStorageMem2DEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLsizei -- ^ @levels@.
+  -> GLenum -- ^ @internalFormat@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLuint -- ^ @memory@.
+  -> GLuint64 -- ^ @offset@.
+  -> m ()
+glTexStorageMem2DEXT v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn786 ptr_glTexStorageMem2DEXT v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glTexStorageMem2DEXT #-}
+ptr_glTexStorageMem2DEXT :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLuint -> GLuint64 -> IO ())
+ptr_glTexStorageMem2DEXT = unsafePerformIO $ getCommand "glTexStorageMem2DEXT"
+
+-- glTexStorageMem2DMultisampleEXT ---------------------------------------------
+
+glTexStorageMem2DMultisampleEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLsizei -- ^ @samples@.
+  -> GLenum -- ^ @internalFormat@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLboolean -- ^ @fixedSampleLocations@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> GLuint -- ^ @memory@.
+  -> GLuint64 -- ^ @offset@.
+  -> m ()
+glTexStorageMem2DMultisampleEXT v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn787 ptr_glTexStorageMem2DMultisampleEXT v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glTexStorageMem2DMultisampleEXT #-}
+ptr_glTexStorageMem2DMultisampleEXT :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> GLuint -> GLuint64 -> IO ())
+ptr_glTexStorageMem2DMultisampleEXT = unsafePerformIO $ getCommand "glTexStorageMem2DMultisampleEXT"
+
+-- glTexStorageMem3DEXT --------------------------------------------------------
+
+glTexStorageMem3DEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLsizei -- ^ @levels@.
+  -> GLenum -- ^ @internalFormat@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLsizei -- ^ @depth@.
+  -> GLuint -- ^ @memory@.
+  -> GLuint64 -- ^ @offset@.
+  -> m ()
+glTexStorageMem3DEXT v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn788 ptr_glTexStorageMem3DEXT v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glTexStorageMem3DEXT #-}
+ptr_glTexStorageMem3DEXT :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLuint -> GLuint64 -> IO ())
+ptr_glTexStorageMem3DEXT = unsafePerformIO $ getCommand "glTexStorageMem3DEXT"
+
+-- glTexStorageMem3DMultisampleEXT ---------------------------------------------
+
+glTexStorageMem3DMultisampleEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLsizei -- ^ @samples@.
+  -> GLenum -- ^ @internalFormat@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLsizei -- ^ @depth@.
+  -> GLboolean -- ^ @fixedSampleLocations@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> GLuint -- ^ @memory@.
+  -> GLuint64 -- ^ @offset@.
+  -> m ()
+glTexStorageMem3DMultisampleEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO $ dyn789 ptr_glTexStorageMem3DMultisampleEXT v1 v2 v3 v4 v5 v6 v7 v8 v9
+
+{-# NOINLINE ptr_glTexStorageMem3DMultisampleEXT #-}
+ptr_glTexStorageMem3DMultisampleEXT :: FunPtr (GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> GLuint -> GLuint64 -> IO ())
+ptr_glTexStorageMem3DMultisampleEXT = unsafePerformIO $ getCommand "glTexStorageMem3DMultisampleEXT"
+
+-- glTexStorageSparseAMD -------------------------------------------------------
+
+glTexStorageSparseAMD
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLenum -- ^ @internalFormat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLsizei -- ^ @depth@.
+  -> GLsizei -- ^ @layers@.
+  -> GLbitfield -- ^ @flags@ of type [TextureStorageMaskAMD](Graphics-GL-Groups.html#TextureStorageMaskAMD).
+  -> m ()
+glTexStorageSparseAMD v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn790 ptr_glTexStorageSparseAMD v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glTexStorageSparseAMD #-}
+ptr_glTexStorageSparseAMD :: FunPtr (GLenum -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLbitfield -> IO ())
+ptr_glTexStorageSparseAMD = unsafePerformIO $ getCommand "glTexStorageSparseAMD"
+
+-- glTexSubImage1D -------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glTexSubImage1D.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glTexSubImage1D.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glTexSubImage1D.xhtml OpenGL 4.x>.
+glTexSubImage1D
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLint -- ^ @xoffset@ of type @CheckedInt32@.
+  -> GLsizei -- ^ @width@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @pixels@ pointing to @COMPSIZE(format,type,width)@ elements of type @a@.
+  -> m ()
+glTexSubImage1D v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn791 ptr_glTexSubImage1D v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glTexSubImage1D #-}
+ptr_glTexSubImage1D :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glTexSubImage1D = unsafePerformIO $ getCommand "glTexSubImage1D"
+
+-- glTexSubImage1DEXT ----------------------------------------------------------
+
+-- | This command is an alias for 'glTexSubImage1D'.
+glTexSubImage1DEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLint -- ^ @xoffset@ of type @CheckedInt32@.
+  -> GLsizei -- ^ @width@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @pixels@ pointing to @COMPSIZE(format,type,width)@ elements of type @a@.
+  -> m ()
+glTexSubImage1DEXT v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn791 ptr_glTexSubImage1DEXT v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glTexSubImage1DEXT #-}
+ptr_glTexSubImage1DEXT :: FunPtr (GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glTexSubImage1DEXT = unsafePerformIO $ getCommand "glTexSubImage1DEXT"
+
+-- glTexSubImage2D -------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glTexSubImage2D.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glTexSubImage2D.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glTexSubImage2D.xhtml OpenGL 4.x>.
+glTexSubImage2D
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLint -- ^ @xoffset@ of type @CheckedInt32@.
+  -> GLint -- ^ @yoffset@ of type @CheckedInt32@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @pixels@ pointing to @COMPSIZE(format,type,width,height)@ elements of type @a@.
+  -> m ()
+glTexSubImage2D v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO $ dyn792 ptr_glTexSubImage2D v1 v2 v3 v4 v5 v6 v7 v8 v9
+
+{-# NOINLINE ptr_glTexSubImage2D #-}
+ptr_glTexSubImage2D :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glTexSubImage2D = unsafePerformIO $ getCommand "glTexSubImage2D"
+
+-- glTexSubImage2DEXT ----------------------------------------------------------
+
+-- | This command is an alias for 'glTexSubImage2D'.
+glTexSubImage2DEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLint -- ^ @xoffset@ of type @CheckedInt32@.
+  -> GLint -- ^ @yoffset@ of type @CheckedInt32@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @pixels@ pointing to @COMPSIZE(format,type,width,height)@ elements of type @a@.
+  -> m ()
+glTexSubImage2DEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO $ dyn792 ptr_glTexSubImage2DEXT v1 v2 v3 v4 v5 v6 v7 v8 v9
+
+{-# NOINLINE ptr_glTexSubImage2DEXT #-}
+ptr_glTexSubImage2DEXT :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glTexSubImage2DEXT = unsafePerformIO $ getCommand "glTexSubImage2DEXT"
+
+-- glTexSubImage3D -------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glTexSubImage3D.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glTexSubImage3D.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glTexSubImage3D.xhtml OpenGL 4.x>.
+glTexSubImage3D
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLint -- ^ @xoffset@ of type @CheckedInt32@.
+  -> GLint -- ^ @yoffset@ of type @CheckedInt32@.
+  -> GLint -- ^ @zoffset@ of type @CheckedInt32@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLsizei -- ^ @depth@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @pixels@ pointing to @COMPSIZE(format,type,width,height,depth)@ elements of type @a@.
+  -> m ()
+glTexSubImage3D v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 = liftIO $ dyn283 ptr_glTexSubImage3D v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11
+
+{-# NOINLINE ptr_glTexSubImage3D #-}
+ptr_glTexSubImage3D :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glTexSubImage3D = unsafePerformIO $ getCommand "glTexSubImage3D"
+
+-- glTexSubImage3DEXT ----------------------------------------------------------
+
+-- | This command is an alias for 'glTexSubImage3D'.
+glTexSubImage3DEXT
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLint -- ^ @xoffset@ of type @CheckedInt32@.
+  -> GLint -- ^ @yoffset@ of type @CheckedInt32@.
+  -> GLint -- ^ @zoffset@ of type @CheckedInt32@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLsizei -- ^ @depth@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @pixels@ pointing to @COMPSIZE(format,type,width,height,depth)@ elements of type @a@.
+  -> m ()
+glTexSubImage3DEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 = liftIO $ dyn283 ptr_glTexSubImage3DEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11
+
+{-# NOINLINE ptr_glTexSubImage3DEXT #-}
+ptr_glTexSubImage3DEXT :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glTexSubImage3DEXT = unsafePerformIO $ getCommand "glTexSubImage3DEXT"
+
+-- glTexSubImage3DOES ----------------------------------------------------------
+
+glTexSubImage3DOES
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@.
+  -> GLint -- ^ @xoffset@.
+  -> GLint -- ^ @yoffset@.
+  -> GLint -- ^ @zoffset@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLsizei -- ^ @depth@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @pixels@ pointing to @COMPSIZE(format,type,width,height,depth)@ elements of type @a@.
+  -> m ()
+glTexSubImage3DOES v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 = liftIO $ dyn283 ptr_glTexSubImage3DOES v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11
+
+{-# NOINLINE ptr_glTexSubImage3DOES #-}
+ptr_glTexSubImage3DOES :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glTexSubImage3DOES = unsafePerformIO $ getCommand "glTexSubImage3DOES"
+
+-- glTexSubImage4DSGIS ---------------------------------------------------------
+
+glTexSubImage4DSGIS
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLint -- ^ @xoffset@ of type @CheckedInt32@.
+  -> GLint -- ^ @yoffset@ of type @CheckedInt32@.
+  -> GLint -- ^ @zoffset@ of type @CheckedInt32@.
+  -> GLint -- ^ @woffset@ of type @CheckedInt32@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLsizei -- ^ @depth@.
+  -> GLsizei -- ^ @size4d@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @pixels@ pointing to @COMPSIZE(format,type,width,height,depth,size4d)@ elements of type @a@.
+  -> m ()
+glTexSubImage4DSGIS v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 = liftIO $ dyn793 ptr_glTexSubImage4DSGIS v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13
+
+{-# NOINLINE ptr_glTexSubImage4DSGIS #-}
+ptr_glTexSubImage4DSGIS :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glTexSubImage4DSGIS = unsafePerformIO $ getCommand "glTexSubImage4DSGIS"
+
+-- glTextureAttachMemoryNV -----------------------------------------------------
+
+glTextureAttachMemoryNV
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLuint -- ^ @memory@.
+  -> GLuint64 -- ^ @offset@.
+  -> m ()
+glTextureAttachMemoryNV v1 v2 v3 = liftIO $ dyn607 ptr_glTextureAttachMemoryNV v1 v2 v3
+
+{-# NOINLINE ptr_glTextureAttachMemoryNV #-}
+ptr_glTextureAttachMemoryNV :: FunPtr (GLuint -> GLuint -> GLuint64 -> IO ())
+ptr_glTextureAttachMemoryNV = unsafePerformIO $ getCommand "glTextureAttachMemoryNV"
+
+-- glTextureBarrier ------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glTextureBarrier.xhtml OpenGL 4.x>.
+glTextureBarrier
+  :: MonadIO m
+  => m ()
+glTextureBarrier = liftIO $ dyn11 ptr_glTextureBarrier
+
+{-# NOINLINE ptr_glTextureBarrier #-}
+ptr_glTextureBarrier :: FunPtr (IO ())
+ptr_glTextureBarrier = unsafePerformIO $ getCommand "glTextureBarrier"
+
+-- glTextureBarrierNV ----------------------------------------------------------
+
+glTextureBarrierNV
+  :: MonadIO m
+  => m ()
+glTextureBarrierNV = liftIO $ dyn11 ptr_glTextureBarrierNV
+
+{-# NOINLINE ptr_glTextureBarrierNV #-}
+ptr_glTextureBarrierNV :: FunPtr (IO ())
+ptr_glTextureBarrierNV = unsafePerformIO $ getCommand "glTextureBarrierNV"
+
+-- glTextureBuffer -------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glTexBuffer.xhtml OpenGL 4.x>.
+glTextureBuffer
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLuint -- ^ @buffer@.
+  -> m ()
+glTextureBuffer v1 v2 v3 = liftIO $ dyn755 ptr_glTextureBuffer v1 v2 v3
+
+{-# NOINLINE ptr_glTextureBuffer #-}
+ptr_glTextureBuffer :: FunPtr (GLuint -> GLenum -> GLuint -> IO ())
+ptr_glTextureBuffer = unsafePerformIO $ getCommand "glTextureBuffer"
+
+-- glTextureBufferEXT ----------------------------------------------------------
+
+glTextureBufferEXT
+  :: MonadIO m
+  => GLuint -- ^ @texture@ of type @Texture@.
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLuint -- ^ @buffer@.
+  -> m ()
+glTextureBufferEXT v1 v2 v3 v4 = liftIO $ dyn613 ptr_glTextureBufferEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glTextureBufferEXT #-}
+ptr_glTextureBufferEXT :: FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> IO ())
+ptr_glTextureBufferEXT = unsafePerformIO $ getCommand "glTextureBufferEXT"
+
+-- glTextureBufferRange --------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glTexBufferRange.xhtml OpenGL 4.x>.
+glTextureBufferRange
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLuint -- ^ @buffer@.
+  -> GLintptr -- ^ @offset@.
+  -> GLsizeiptr -- ^ @size@ of type @BufferSize@.
+  -> m ()
+glTextureBufferRange v1 v2 v3 v4 v5 = liftIO $ dyn794 ptr_glTextureBufferRange v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glTextureBufferRange #-}
+ptr_glTextureBufferRange :: FunPtr (GLuint -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> IO ())
+ptr_glTextureBufferRange = unsafePerformIO $ getCommand "glTextureBufferRange"
+
diff --git a/src/Graphics/GL/Functions/F27.hs b/src/Graphics/GL/Functions/F27.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Functions/F27.hs
@@ -0,0 +1,1736 @@
+{-# OPTIONS_HADDOCK hide #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Functions.F27
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- Raw functions from the
+-- <http://www.opengl.org/registry/ OpenGL registry>.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Functions.F27 (
+  glTextureBufferRangeEXT,
+  glTextureColorMaskSGIS,
+  glTextureFoveationParametersQCOM,
+  glTextureImage1DEXT,
+  glTextureImage2DEXT,
+  glTextureImage2DMultisampleCoverageNV,
+  glTextureImage2DMultisampleNV,
+  glTextureImage3DEXT,
+  glTextureImage3DMultisampleCoverageNV,
+  glTextureImage3DMultisampleNV,
+  glTextureLightEXT,
+  glTextureMaterialEXT,
+  glTextureNormalEXT,
+  glTexturePageCommitmentEXT,
+  glTextureParameterIiv,
+  glTextureParameterIivEXT,
+  glTextureParameterIuiv,
+  glTextureParameterIuivEXT,
+  glTextureParameterf,
+  glTextureParameterfEXT,
+  glTextureParameterfv,
+  glTextureParameterfvEXT,
+  glTextureParameteri,
+  glTextureParameteriEXT,
+  glTextureParameteriv,
+  glTextureParameterivEXT,
+  glTextureRangeAPPLE,
+  glTextureRenderbufferEXT,
+  glTextureStorage1D,
+  glTextureStorage1DEXT,
+  glTextureStorage2D,
+  glTextureStorage2DEXT,
+  glTextureStorage2DMultisample,
+  glTextureStorage2DMultisampleEXT,
+  glTextureStorage3D,
+  glTextureStorage3DEXT,
+  glTextureStorage3DMultisample,
+  glTextureStorage3DMultisampleEXT,
+  glTextureStorageMem1DEXT,
+  glTextureStorageMem2DEXT,
+  glTextureStorageMem2DMultisampleEXT,
+  glTextureStorageMem3DEXT,
+  glTextureStorageMem3DMultisampleEXT,
+  glTextureStorageSparseAMD,
+  glTextureSubImage1D,
+  glTextureSubImage1DEXT,
+  glTextureSubImage2D,
+  glTextureSubImage2DEXT,
+  glTextureSubImage3D,
+  glTextureSubImage3DEXT,
+  glTextureView,
+  glTextureViewEXT,
+  glTextureViewOES,
+  glTrackMatrixNV,
+  glTransformFeedbackAttribsNV,
+  glTransformFeedbackBufferBase,
+  glTransformFeedbackBufferRange,
+  glTransformFeedbackStreamAttribsNV,
+  glTransformFeedbackVaryings,
+  glTransformFeedbackVaryingsEXT,
+  glTransformFeedbackVaryingsNV,
+  glTransformPathNV,
+  glTranslated,
+  glTranslatef,
+  glTranslatex,
+  glTranslatexOES,
+  glUniform1d,
+  glUniform1dv,
+  glUniform1f,
+  glUniform1fARB,
+  glUniform1fv,
+  glUniform1fvARB,
+  glUniform1i,
+  glUniform1i64ARB,
+  glUniform1i64NV,
+  glUniform1i64vARB,
+  glUniform1i64vNV,
+  glUniform1iARB,
+  glUniform1iv,
+  glUniform1ivARB,
+  glUniform1ui,
+  glUniform1ui64ARB,
+  glUniform1ui64NV,
+  glUniform1ui64vARB,
+  glUniform1ui64vNV,
+  glUniform1uiEXT,
+  glUniform1uiv,
+  glUniform1uivEXT,
+  glUniform2d,
+  glUniform2dv,
+  glUniform2f,
+  glUniform2fARB,
+  glUniform2fv,
+  glUniform2fvARB,
+  glUniform2i,
+  glUniform2i64ARB,
+  glUniform2i64NV,
+  glUniform2i64vARB,
+  glUniform2i64vNV,
+  glUniform2iARB
+) where
+
+import Control.Monad.IO.Class ( MonadIO(..) )
+import Foreign.Ptr
+import Graphics.GL.Foreign
+import Graphics.GL.Types
+import System.IO.Unsafe ( unsafePerformIO )
+
+-- glTextureBufferRangeEXT -----------------------------------------------------
+
+glTextureBufferRangeEXT
+  :: MonadIO m
+  => GLuint -- ^ @texture@ of type @Texture@.
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLuint -- ^ @buffer@.
+  -> GLintptr -- ^ @offset@ of type @BufferOffset@.
+  -> GLsizeiptr -- ^ @size@ of type @BufferSize@.
+  -> m ()
+glTextureBufferRangeEXT v1 v2 v3 v4 v5 v6 = liftIO $ dyn795 ptr_glTextureBufferRangeEXT v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glTextureBufferRangeEXT #-}
+ptr_glTextureBufferRangeEXT :: FunPtr (GLuint -> GLenum -> GLenum -> GLuint -> GLintptr -> GLsizeiptr -> IO ())
+ptr_glTextureBufferRangeEXT = unsafePerformIO $ getCommand "glTextureBufferRangeEXT"
+
+-- glTextureColorMaskSGIS ------------------------------------------------------
+
+glTextureColorMaskSGIS
+  :: MonadIO m
+  => GLboolean -- ^ @red@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> GLboolean -- ^ @green@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> GLboolean -- ^ @blue@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> GLboolean -- ^ @alpha@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m ()
+glTextureColorMaskSGIS v1 v2 v3 v4 = liftIO $ dyn130 ptr_glTextureColorMaskSGIS v1 v2 v3 v4
+
+{-# NOINLINE ptr_glTextureColorMaskSGIS #-}
+ptr_glTextureColorMaskSGIS :: FunPtr (GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ())
+ptr_glTextureColorMaskSGIS = unsafePerformIO $ getCommand "glTextureColorMaskSGIS"
+
+-- glTextureFoveationParametersQCOM --------------------------------------------
+
+glTextureFoveationParametersQCOM
+  :: MonadIO m
+  => GLuint -- ^ @texture@ of type @Texture@.
+  -> GLuint -- ^ @layer@.
+  -> GLuint -- ^ @focalPoint@.
+  -> GLfloat -- ^ @focalX@ of type @CheckedFloat32@.
+  -> GLfloat -- ^ @focalY@ of type @CheckedFloat32@.
+  -> GLfloat -- ^ @gainX@ of type @CheckedFloat32@.
+  -> GLfloat -- ^ @gainY@ of type @CheckedFloat32@.
+  -> GLfloat -- ^ @foveaArea@ of type @CheckedFloat32@.
+  -> m ()
+glTextureFoveationParametersQCOM v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn295 ptr_glTextureFoveationParametersQCOM v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glTextureFoveationParametersQCOM #-}
+ptr_glTextureFoveationParametersQCOM :: FunPtr (GLuint -> GLuint -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glTextureFoveationParametersQCOM = unsafePerformIO $ getCommand "glTextureFoveationParametersQCOM"
+
+-- glTextureImage1DEXT ---------------------------------------------------------
+
+glTextureImage1DEXT
+  :: MonadIO m
+  => GLuint -- ^ @texture@ of type @Texture@.
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLint -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLint -- ^ @border@ of type @CheckedInt32@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @pixels@ pointing to @COMPSIZE(format,type,width)@ elements of type @a@.
+  -> m ()
+glTextureImage1DEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO $ dyn796 ptr_glTextureImage1DEXT v1 v2 v3 v4 v5 v6 v7 v8 v9
+
+{-# NOINLINE ptr_glTextureImage1DEXT #-}
+ptr_glTextureImage1DEXT :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glTextureImage1DEXT = unsafePerformIO $ getCommand "glTextureImage1DEXT"
+
+-- glTextureImage2DEXT ---------------------------------------------------------
+
+glTextureImage2DEXT
+  :: MonadIO m
+  => GLuint -- ^ @texture@ of type @Texture@.
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLint -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLint -- ^ @border@ of type @CheckedInt32@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @pixels@ pointing to @COMPSIZE(format,type,width,height)@ elements of type @a@.
+  -> m ()
+glTextureImage2DEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 = liftIO $ dyn797 ptr_glTextureImage2DEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 v10
+
+{-# NOINLINE ptr_glTextureImage2DEXT #-}
+ptr_glTextureImage2DEXT :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glTextureImage2DEXT = unsafePerformIO $ getCommand "glTextureImage2DEXT"
+
+-- glTextureImage2DMultisampleCoverageNV ---------------------------------------
+
+glTextureImage2DMultisampleCoverageNV
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLsizei -- ^ @coverageSamples@.
+  -> GLsizei -- ^ @colorSamples@.
+  -> GLint -- ^ @internalFormat@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLboolean -- ^ @fixedSampleLocations@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m ()
+glTextureImage2DMultisampleCoverageNV v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn798 ptr_glTextureImage2DMultisampleCoverageNV v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glTextureImage2DMultisampleCoverageNV #-}
+ptr_glTextureImage2DMultisampleCoverageNV :: FunPtr (GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> IO ())
+ptr_glTextureImage2DMultisampleCoverageNV = unsafePerformIO $ getCommand "glTextureImage2DMultisampleCoverageNV"
+
+-- glTextureImage2DMultisampleNV -----------------------------------------------
+
+glTextureImage2DMultisampleNV
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLsizei -- ^ @samples@.
+  -> GLint -- ^ @internalFormat@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLboolean -- ^ @fixedSampleLocations@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m ()
+glTextureImage2DMultisampleNV v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn799 ptr_glTextureImage2DMultisampleNV v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glTextureImage2DMultisampleNV #-}
+ptr_glTextureImage2DMultisampleNV :: FunPtr (GLuint -> GLenum -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> IO ())
+ptr_glTextureImage2DMultisampleNV = unsafePerformIO $ getCommand "glTextureImage2DMultisampleNV"
+
+-- glTextureImage3DEXT ---------------------------------------------------------
+
+glTextureImage3DEXT
+  :: MonadIO m
+  => GLuint -- ^ @texture@ of type @Texture@.
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLint -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLsizei -- ^ @depth@.
+  -> GLint -- ^ @border@ of type @CheckedInt32@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @pixels@ pointing to @COMPSIZE(format,type,width,height,depth)@ elements of type @a@.
+  -> m ()
+glTextureImage3DEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 = liftIO $ dyn800 ptr_glTextureImage3DEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11
+
+{-# NOINLINE ptr_glTextureImage3DEXT #-}
+ptr_glTextureImage3DEXT :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glTextureImage3DEXT = unsafePerformIO $ getCommand "glTextureImage3DEXT"
+
+-- glTextureImage3DMultisampleCoverageNV ---------------------------------------
+
+glTextureImage3DMultisampleCoverageNV
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLsizei -- ^ @coverageSamples@.
+  -> GLsizei -- ^ @colorSamples@.
+  -> GLint -- ^ @internalFormat@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLsizei -- ^ @depth@.
+  -> GLboolean -- ^ @fixedSampleLocations@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m ()
+glTextureImage3DMultisampleCoverageNV v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO $ dyn801 ptr_glTextureImage3DMultisampleCoverageNV v1 v2 v3 v4 v5 v6 v7 v8 v9
+
+{-# NOINLINE ptr_glTextureImage3DMultisampleCoverageNV #-}
+ptr_glTextureImage3DMultisampleCoverageNV :: FunPtr (GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
+ptr_glTextureImage3DMultisampleCoverageNV = unsafePerformIO $ getCommand "glTextureImage3DMultisampleCoverageNV"
+
+-- glTextureImage3DMultisampleNV -----------------------------------------------
+
+glTextureImage3DMultisampleNV
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLsizei -- ^ @samples@.
+  -> GLint -- ^ @internalFormat@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLsizei -- ^ @depth@.
+  -> GLboolean -- ^ @fixedSampleLocations@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m ()
+glTextureImage3DMultisampleNV v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn802 ptr_glTextureImage3DMultisampleNV v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glTextureImage3DMultisampleNV #-}
+ptr_glTextureImage3DMultisampleNV :: FunPtr (GLuint -> GLenum -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
+ptr_glTextureImage3DMultisampleNV = unsafePerformIO $ getCommand "glTextureImage3DMultisampleNV"
+
+-- glTextureLightEXT -----------------------------------------------------------
+
+glTextureLightEXT
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [LightTexturePNameEXT](Graphics-GL-Groups.html#LightTexturePNameEXT).
+  -> m ()
+glTextureLightEXT v1 = liftIO $ dyn5 ptr_glTextureLightEXT v1
+
+{-# NOINLINE ptr_glTextureLightEXT #-}
+ptr_glTextureLightEXT :: FunPtr (GLenum -> IO ())
+ptr_glTextureLightEXT = unsafePerformIO $ getCommand "glTextureLightEXT"
+
+-- glTextureMaterialEXT --------------------------------------------------------
+
+glTextureMaterialEXT
+  :: MonadIO m
+  => GLenum -- ^ @face@ of type [MaterialFace](Graphics-GL-Groups.html#MaterialFace).
+  -> GLenum -- ^ @mode@ of type [MaterialParameter](Graphics-GL-Groups.html#MaterialParameter).
+  -> m ()
+glTextureMaterialEXT v1 v2 = liftIO $ dyn54 ptr_glTextureMaterialEXT v1 v2
+
+{-# NOINLINE ptr_glTextureMaterialEXT #-}
+ptr_glTextureMaterialEXT :: FunPtr (GLenum -> GLenum -> IO ())
+ptr_glTextureMaterialEXT = unsafePerformIO $ getCommand "glTextureMaterialEXT"
+
+-- glTextureNormalEXT ----------------------------------------------------------
+
+glTextureNormalEXT
+  :: MonadIO m
+  => GLenum -- ^ @mode@ of type [TextureNormalModeEXT](Graphics-GL-Groups.html#TextureNormalModeEXT).
+  -> m ()
+glTextureNormalEXT v1 = liftIO $ dyn5 ptr_glTextureNormalEXT v1
+
+{-# NOINLINE ptr_glTextureNormalEXT #-}
+ptr_glTextureNormalEXT :: FunPtr (GLenum -> IO ())
+ptr_glTextureNormalEXT = unsafePerformIO $ getCommand "glTextureNormalEXT"
+
+-- glTexturePageCommitmentEXT --------------------------------------------------
+
+glTexturePageCommitmentEXT
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLint -- ^ @level@.
+  -> GLint -- ^ @xoffset@.
+  -> GLint -- ^ @yoffset@.
+  -> GLint -- ^ @zoffset@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLsizei -- ^ @depth@.
+  -> GLboolean -- ^ @commit@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m ()
+glTexturePageCommitmentEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO $ dyn803 ptr_glTexturePageCommitmentEXT v1 v2 v3 v4 v5 v6 v7 v8 v9
+
+{-# NOINLINE ptr_glTexturePageCommitmentEXT #-}
+ptr_glTexturePageCommitmentEXT :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
+ptr_glTexturePageCommitmentEXT = unsafePerformIO $ getCommand "glTexturePageCommitmentEXT"
+
+-- glTextureParameterIiv -------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glTexParameter.xhtml OpenGL 4.x>.
+glTextureParameterIiv
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLenum -- ^ @pname@ of type [TextureParameterName](Graphics-GL-Groups.html#TextureParameterName).
+  -> Ptr GLint -- ^ @params@.
+  -> m ()
+glTextureParameterIiv v1 v2 v3 = liftIO $ dyn348 ptr_glTextureParameterIiv v1 v2 v3
+
+{-# NOINLINE ptr_glTextureParameterIiv #-}
+ptr_glTextureParameterIiv :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glTextureParameterIiv = unsafePerformIO $ getCommand "glTextureParameterIiv"
+
+-- glTextureParameterIivEXT ----------------------------------------------------
+
+glTextureParameterIivEXT
+  :: MonadIO m
+  => GLuint -- ^ @texture@ of type @Texture@.
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLenum -- ^ @pname@ of type [TextureParameterName](Graphics-GL-Groups.html#TextureParameterName).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @CheckedInt32@.
+  -> m ()
+glTextureParameterIivEXT v1 v2 v3 v4 = liftIO $ dyn379 ptr_glTextureParameterIivEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glTextureParameterIivEXT #-}
+ptr_glTextureParameterIivEXT :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glTextureParameterIivEXT = unsafePerformIO $ getCommand "glTextureParameterIivEXT"
+
+-- glTextureParameterIuiv ------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glTexParameter.xhtml OpenGL 4.x>.
+glTextureParameterIuiv
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLenum -- ^ @pname@ of type [TextureParameterName](Graphics-GL-Groups.html#TextureParameterName).
+  -> Ptr GLuint -- ^ @params@.
+  -> m ()
+glTextureParameterIuiv v1 v2 v3 = liftIO $ dyn392 ptr_glTextureParameterIuiv v1 v2 v3
+
+{-# NOINLINE ptr_glTextureParameterIuiv #-}
+ptr_glTextureParameterIuiv :: FunPtr (GLuint -> GLenum -> Ptr GLuint -> IO ())
+ptr_glTextureParameterIuiv = unsafePerformIO $ getCommand "glTextureParameterIuiv"
+
+-- glTextureParameterIuivEXT ---------------------------------------------------
+
+glTextureParameterIuivEXT
+  :: MonadIO m
+  => GLuint -- ^ @texture@ of type @Texture@.
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLenum -- ^ @pname@ of type [TextureParameterName](Graphics-GL-Groups.html#TextureParameterName).
+  -> Ptr GLuint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLuint@.
+  -> m ()
+glTextureParameterIuivEXT v1 v2 v3 v4 = liftIO $ dyn439 ptr_glTextureParameterIuivEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glTextureParameterIuivEXT #-}
+ptr_glTextureParameterIuivEXT :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLuint -> IO ())
+ptr_glTextureParameterIuivEXT = unsafePerformIO $ getCommand "glTextureParameterIuivEXT"
+
+-- glTextureParameterf ---------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glTexParameter.xhtml OpenGL 4.x>.
+glTextureParameterf
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLenum -- ^ @pname@ of type [TextureParameterName](Graphics-GL-Groups.html#TextureParameterName).
+  -> GLfloat -- ^ @param@.
+  -> m ()
+glTextureParameterf v1 v2 v3 = liftIO $ dyn514 ptr_glTextureParameterf v1 v2 v3
+
+{-# NOINLINE ptr_glTextureParameterf #-}
+ptr_glTextureParameterf :: FunPtr (GLuint -> GLenum -> GLfloat -> IO ())
+ptr_glTextureParameterf = unsafePerformIO $ getCommand "glTextureParameterf"
+
+-- glTextureParameterfEXT ------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glTextureParameterfvEXT'.
+glTextureParameterfEXT
+  :: MonadIO m
+  => GLuint -- ^ @texture@ of type @Texture@.
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLenum -- ^ @pname@ of type [TextureParameterName](Graphics-GL-Groups.html#TextureParameterName).
+  -> GLfloat -- ^ @param@ of type @CheckedFloat32@.
+  -> m ()
+glTextureParameterfEXT v1 v2 v3 v4 = liftIO $ dyn804 ptr_glTextureParameterfEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glTextureParameterfEXT #-}
+ptr_glTextureParameterfEXT :: FunPtr (GLuint -> GLenum -> GLenum -> GLfloat -> IO ())
+ptr_glTextureParameterfEXT = unsafePerformIO $ getCommand "glTextureParameterfEXT"
+
+-- glTextureParameterfv --------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glTexParameter.xhtml OpenGL 4.x>.
+glTextureParameterfv
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLenum -- ^ @pname@ of type [TextureParameterName](Graphics-GL-Groups.html#TextureParameterName).
+  -> Ptr GLfloat -- ^ @param@.
+  -> m ()
+glTextureParameterfv v1 v2 v3 = liftIO $ dyn364 ptr_glTextureParameterfv v1 v2 v3
+
+{-# NOINLINE ptr_glTextureParameterfv #-}
+ptr_glTextureParameterfv :: FunPtr (GLuint -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glTextureParameterfv = unsafePerformIO $ getCommand "glTextureParameterfv"
+
+-- glTextureParameterfvEXT -----------------------------------------------------
+
+glTextureParameterfvEXT
+  :: MonadIO m
+  => GLuint -- ^ @texture@ of type @Texture@.
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLenum -- ^ @pname@ of type [TextureParameterName](Graphics-GL-Groups.html#TextureParameterName).
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @CheckedFloat32@.
+  -> m ()
+glTextureParameterfvEXT v1 v2 v3 v4 = liftIO $ dyn440 ptr_glTextureParameterfvEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glTextureParameterfvEXT #-}
+ptr_glTextureParameterfvEXT :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glTextureParameterfvEXT = unsafePerformIO $ getCommand "glTextureParameterfvEXT"
+
+-- glTextureParameteri ---------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glTexParameter.xhtml OpenGL 4.x>.
+glTextureParameteri
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLenum -- ^ @pname@ of type [TextureParameterName](Graphics-GL-Groups.html#TextureParameterName).
+  -> GLint -- ^ @param@.
+  -> m ()
+glTextureParameteri v1 v2 v3 = liftIO $ dyn491 ptr_glTextureParameteri v1 v2 v3
+
+{-# NOINLINE ptr_glTextureParameteri #-}
+ptr_glTextureParameteri :: FunPtr (GLuint -> GLenum -> GLint -> IO ())
+ptr_glTextureParameteri = unsafePerformIO $ getCommand "glTextureParameteri"
+
+-- glTextureParameteriEXT ------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glTextureParameterivEXT'.
+glTextureParameteriEXT
+  :: MonadIO m
+  => GLuint -- ^ @texture@ of type @Texture@.
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLenum -- ^ @pname@ of type [TextureParameterName](Graphics-GL-Groups.html#TextureParameterName).
+  -> GLint -- ^ @param@ of type @CheckedInt32@.
+  -> m ()
+glTextureParameteriEXT v1 v2 v3 v4 = liftIO $ dyn805 ptr_glTextureParameteriEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glTextureParameteriEXT #-}
+ptr_glTextureParameteriEXT :: FunPtr (GLuint -> GLenum -> GLenum -> GLint -> IO ())
+ptr_glTextureParameteriEXT = unsafePerformIO $ getCommand "glTextureParameteriEXT"
+
+-- glTextureParameteriv --------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glTexParameter.xhtml OpenGL 4.x>.
+glTextureParameteriv
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLenum -- ^ @pname@ of type [TextureParameterName](Graphics-GL-Groups.html#TextureParameterName).
+  -> Ptr GLint -- ^ @param@.
+  -> m ()
+glTextureParameteriv v1 v2 v3 = liftIO $ dyn348 ptr_glTextureParameteriv v1 v2 v3
+
+{-# NOINLINE ptr_glTextureParameteriv #-}
+ptr_glTextureParameteriv :: FunPtr (GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glTextureParameteriv = unsafePerformIO $ getCommand "glTextureParameteriv"
+
+-- glTextureParameterivEXT -----------------------------------------------------
+
+glTextureParameterivEXT
+  :: MonadIO m
+  => GLuint -- ^ @texture@ of type @Texture@.
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLenum -- ^ @pname@ of type [TextureParameterName](Graphics-GL-Groups.html#TextureParameterName).
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @CheckedInt32@.
+  -> m ()
+glTextureParameterivEXT v1 v2 v3 v4 = liftIO $ dyn379 ptr_glTextureParameterivEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glTextureParameterivEXT #-}
+ptr_glTextureParameterivEXT :: FunPtr (GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
+ptr_glTextureParameterivEXT = unsafePerformIO $ getCommand "glTextureParameterivEXT"
+
+-- glTextureRangeAPPLE ---------------------------------------------------------
+
+glTextureRangeAPPLE
+  :: MonadIO m
+  => GLenum -- ^ @target@.
+  -> GLsizei -- ^ @length@.
+  -> Ptr a -- ^ @pointer@ pointing to @length@ elements of type @a@.
+  -> m ()
+glTextureRangeAPPLE v1 v2 v3 = liftIO $ dyn49 ptr_glTextureRangeAPPLE v1 v2 v3
+
+{-# NOINLINE ptr_glTextureRangeAPPLE #-}
+ptr_glTextureRangeAPPLE :: FunPtr (GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glTextureRangeAPPLE = unsafePerformIO $ getCommand "glTextureRangeAPPLE"
+
+-- glTextureRenderbufferEXT ----------------------------------------------------
+
+glTextureRenderbufferEXT
+  :: MonadIO m
+  => GLuint -- ^ @texture@ of type @Texture@.
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLuint -- ^ @renderbuffer@.
+  -> m ()
+glTextureRenderbufferEXT v1 v2 v3 = liftIO $ dyn755 ptr_glTextureRenderbufferEXT v1 v2 v3
+
+{-# NOINLINE ptr_glTextureRenderbufferEXT #-}
+ptr_glTextureRenderbufferEXT :: FunPtr (GLuint -> GLenum -> GLuint -> IO ())
+ptr_glTextureRenderbufferEXT = unsafePerformIO $ getCommand "glTextureRenderbufferEXT"
+
+-- glTextureStorage1D ----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glTexStorage1D.xhtml OpenGL 4.x>.
+glTextureStorage1D
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLsizei -- ^ @levels@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> m ()
+glTextureStorage1D v1 v2 v3 v4 = liftIO $ dyn806 ptr_glTextureStorage1D v1 v2 v3 v4
+
+{-# NOINLINE ptr_glTextureStorage1D #-}
+ptr_glTextureStorage1D :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> IO ())
+ptr_glTextureStorage1D = unsafePerformIO $ getCommand "glTextureStorage1D"
+
+-- glTextureStorage1DEXT -------------------------------------------------------
+
+glTextureStorage1DEXT
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLenum -- ^ @target@.
+  -> GLsizei -- ^ @levels@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> m ()
+glTextureStorage1DEXT v1 v2 v3 v4 v5 = liftIO $ dyn807 ptr_glTextureStorage1DEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glTextureStorage1DEXT #-}
+ptr_glTextureStorage1DEXT :: FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> IO ())
+ptr_glTextureStorage1DEXT = unsafePerformIO $ getCommand "glTextureStorage1DEXT"
+
+-- glTextureStorage2D ----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glTexStorage2D.xhtml OpenGL 4.x>.
+glTextureStorage2D
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLsizei -- ^ @levels@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> m ()
+glTextureStorage2D v1 v2 v3 v4 v5 = liftIO $ dyn629 ptr_glTextureStorage2D v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glTextureStorage2D #-}
+ptr_glTextureStorage2D :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
+ptr_glTextureStorage2D = unsafePerformIO $ getCommand "glTextureStorage2D"
+
+-- glTextureStorage2DEXT -------------------------------------------------------
+
+glTextureStorage2DEXT
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLenum -- ^ @target@.
+  -> GLsizei -- ^ @levels@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> m ()
+glTextureStorage2DEXT v1 v2 v3 v4 v5 v6 = liftIO $ dyn808 ptr_glTextureStorage2DEXT v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glTextureStorage2DEXT #-}
+ptr_glTextureStorage2DEXT :: FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
+ptr_glTextureStorage2DEXT = unsafePerformIO $ getCommand "glTextureStorage2DEXT"
+
+-- glTextureStorage2DMultisample -----------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glTexStorage2DMultisample.xhtml OpenGL 4.x>.
+glTextureStorage2DMultisample
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLsizei -- ^ @samples@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLboolean -- ^ @fixedsamplelocations@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m ()
+glTextureStorage2DMultisample v1 v2 v3 v4 v5 v6 = liftIO $ dyn809 ptr_glTextureStorage2DMultisample v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glTextureStorage2DMultisample #-}
+ptr_glTextureStorage2DMultisample :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> IO ())
+ptr_glTextureStorage2DMultisample = unsafePerformIO $ getCommand "glTextureStorage2DMultisample"
+
+-- glTextureStorage2DMultisampleEXT --------------------------------------------
+
+glTextureStorage2DMultisampleEXT
+  :: MonadIO m
+  => GLuint -- ^ @texture@ of type @Texture@.
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLsizei -- ^ @samples@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLboolean -- ^ @fixedsamplelocations@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m ()
+glTextureStorage2DMultisampleEXT v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn810 ptr_glTextureStorage2DMultisampleEXT v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glTextureStorage2DMultisampleEXT #-}
+ptr_glTextureStorage2DMultisampleEXT :: FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> IO ())
+ptr_glTextureStorage2DMultisampleEXT = unsafePerformIO $ getCommand "glTextureStorage2DMultisampleEXT"
+
+-- glTextureStorage3D ----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glTexStorage3D.xhtml OpenGL 4.x>.
+glTextureStorage3D
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLsizei -- ^ @levels@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLsizei -- ^ @depth@.
+  -> m ()
+glTextureStorage3D v1 v2 v3 v4 v5 v6 = liftIO $ dyn811 ptr_glTextureStorage3D v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glTextureStorage3D #-}
+ptr_glTextureStorage3D :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ())
+ptr_glTextureStorage3D = unsafePerformIO $ getCommand "glTextureStorage3D"
+
+-- glTextureStorage3DEXT -------------------------------------------------------
+
+glTextureStorage3DEXT
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLenum -- ^ @target@.
+  -> GLsizei -- ^ @levels@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLsizei -- ^ @depth@.
+  -> m ()
+glTextureStorage3DEXT v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn812 ptr_glTextureStorage3DEXT v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glTextureStorage3DEXT #-}
+ptr_glTextureStorage3DEXT :: FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> IO ())
+ptr_glTextureStorage3DEXT = unsafePerformIO $ getCommand "glTextureStorage3DEXT"
+
+-- glTextureStorage3DMultisample -----------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glTexStorage3DMultisample.xhtml OpenGL 4.x>.
+glTextureStorage3DMultisample
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLsizei -- ^ @samples@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLsizei -- ^ @depth@.
+  -> GLboolean -- ^ @fixedsamplelocations@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m ()
+glTextureStorage3DMultisample v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn813 ptr_glTextureStorage3DMultisample v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glTextureStorage3DMultisample #-}
+ptr_glTextureStorage3DMultisample :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
+ptr_glTextureStorage3DMultisample = unsafePerformIO $ getCommand "glTextureStorage3DMultisample"
+
+-- glTextureStorage3DMultisampleEXT --------------------------------------------
+
+glTextureStorage3DMultisampleEXT
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLenum -- ^ @target@.
+  -> GLsizei -- ^ @samples@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLsizei -- ^ @depth@.
+  -> GLboolean -- ^ @fixedsamplelocations@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m ()
+glTextureStorage3DMultisampleEXT v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn814 ptr_glTextureStorage3DMultisampleEXT v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glTextureStorage3DMultisampleEXT #-}
+ptr_glTextureStorage3DMultisampleEXT :: FunPtr (GLuint -> GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
+ptr_glTextureStorage3DMultisampleEXT = unsafePerformIO $ getCommand "glTextureStorage3DMultisampleEXT"
+
+-- glTextureStorageMem1DEXT ----------------------------------------------------
+
+glTextureStorageMem1DEXT
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLsizei -- ^ @levels@.
+  -> GLenum -- ^ @internalFormat@.
+  -> GLsizei -- ^ @width@.
+  -> GLuint -- ^ @memory@.
+  -> GLuint64 -- ^ @offset@.
+  -> m ()
+glTextureStorageMem1DEXT v1 v2 v3 v4 v5 v6 = liftIO $ dyn815 ptr_glTextureStorageMem1DEXT v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glTextureStorageMem1DEXT #-}
+ptr_glTextureStorageMem1DEXT :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLuint -> GLuint64 -> IO ())
+ptr_glTextureStorageMem1DEXT = unsafePerformIO $ getCommand "glTextureStorageMem1DEXT"
+
+-- glTextureStorageMem2DEXT ----------------------------------------------------
+
+glTextureStorageMem2DEXT
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLsizei -- ^ @levels@.
+  -> GLenum -- ^ @internalFormat@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLuint -- ^ @memory@.
+  -> GLuint64 -- ^ @offset@.
+  -> m ()
+glTextureStorageMem2DEXT v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn816 ptr_glTextureStorageMem2DEXT v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glTextureStorageMem2DEXT #-}
+ptr_glTextureStorageMem2DEXT :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLuint -> GLuint64 -> IO ())
+ptr_glTextureStorageMem2DEXT = unsafePerformIO $ getCommand "glTextureStorageMem2DEXT"
+
+-- glTextureStorageMem2DMultisampleEXT -----------------------------------------
+
+glTextureStorageMem2DMultisampleEXT
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLsizei -- ^ @samples@.
+  -> GLenum -- ^ @internalFormat@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLboolean -- ^ @fixedSampleLocations@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> GLuint -- ^ @memory@.
+  -> GLuint64 -- ^ @offset@.
+  -> m ()
+glTextureStorageMem2DMultisampleEXT v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn817 ptr_glTextureStorageMem2DMultisampleEXT v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glTextureStorageMem2DMultisampleEXT #-}
+ptr_glTextureStorageMem2DMultisampleEXT :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> GLuint -> GLuint64 -> IO ())
+ptr_glTextureStorageMem2DMultisampleEXT = unsafePerformIO $ getCommand "glTextureStorageMem2DMultisampleEXT"
+
+-- glTextureStorageMem3DEXT ----------------------------------------------------
+
+glTextureStorageMem3DEXT
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLsizei -- ^ @levels@.
+  -> GLenum -- ^ @internalFormat@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLsizei -- ^ @depth@.
+  -> GLuint -- ^ @memory@.
+  -> GLuint64 -- ^ @offset@.
+  -> m ()
+glTextureStorageMem3DEXT v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn818 ptr_glTextureStorageMem3DEXT v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glTextureStorageMem3DEXT #-}
+ptr_glTextureStorageMem3DEXT :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLuint -> GLuint64 -> IO ())
+ptr_glTextureStorageMem3DEXT = unsafePerformIO $ getCommand "glTextureStorageMem3DEXT"
+
+-- glTextureStorageMem3DMultisampleEXT -----------------------------------------
+
+glTextureStorageMem3DMultisampleEXT
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLsizei -- ^ @samples@.
+  -> GLenum -- ^ @internalFormat@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLsizei -- ^ @depth@.
+  -> GLboolean -- ^ @fixedSampleLocations@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> GLuint -- ^ @memory@.
+  -> GLuint64 -- ^ @offset@.
+  -> m ()
+glTextureStorageMem3DMultisampleEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO $ dyn819 ptr_glTextureStorageMem3DMultisampleEXT v1 v2 v3 v4 v5 v6 v7 v8 v9
+
+{-# NOINLINE ptr_glTextureStorageMem3DMultisampleEXT #-}
+ptr_glTextureStorageMem3DMultisampleEXT :: FunPtr (GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> GLuint -> GLuint64 -> IO ())
+ptr_glTextureStorageMem3DMultisampleEXT = unsafePerformIO $ getCommand "glTextureStorageMem3DMultisampleEXT"
+
+-- glTextureStorageSparseAMD ---------------------------------------------------
+
+glTextureStorageSparseAMD
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLenum -- ^ @target@.
+  -> GLenum -- ^ @internalFormat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLsizei -- ^ @depth@.
+  -> GLsizei -- ^ @layers@.
+  -> GLbitfield -- ^ @flags@ of type [TextureStorageMaskAMD](Graphics-GL-Groups.html#TextureStorageMaskAMD).
+  -> m ()
+glTextureStorageSparseAMD v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn820 ptr_glTextureStorageSparseAMD v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glTextureStorageSparseAMD #-}
+ptr_glTextureStorageSparseAMD :: FunPtr (GLuint -> GLenum -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLsizei -> GLbitfield -> IO ())
+ptr_glTextureStorageSparseAMD = unsafePerformIO $ getCommand "glTextureStorageSparseAMD"
+
+-- glTextureSubImage1D ---------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glTexSubImage1D.xhtml OpenGL 4.x>.
+glTextureSubImage1D
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLint -- ^ @level@.
+  -> GLint -- ^ @xoffset@.
+  -> GLsizei -- ^ @width@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @pixels@.
+  -> m ()
+glTextureSubImage1D v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn821 ptr_glTextureSubImage1D v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glTextureSubImage1D #-}
+ptr_glTextureSubImage1D :: FunPtr (GLuint -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glTextureSubImage1D = unsafePerformIO $ getCommand "glTextureSubImage1D"
+
+-- glTextureSubImage1DEXT ------------------------------------------------------
+
+glTextureSubImage1DEXT
+  :: MonadIO m
+  => GLuint -- ^ @texture@ of type @Texture@.
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLint -- ^ @xoffset@ of type @CheckedInt32@.
+  -> GLsizei -- ^ @width@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @pixels@ pointing to @COMPSIZE(format,type,width)@ elements of type @a@.
+  -> m ()
+glTextureSubImage1DEXT v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn822 ptr_glTextureSubImage1DEXT v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glTextureSubImage1DEXT #-}
+ptr_glTextureSubImage1DEXT :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glTextureSubImage1DEXT = unsafePerformIO $ getCommand "glTextureSubImage1DEXT"
+
+-- glTextureSubImage2D ---------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glTexSubImage2D.xhtml OpenGL 4.x>.
+glTextureSubImage2D
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLint -- ^ @level@.
+  -> GLint -- ^ @xoffset@.
+  -> GLint -- ^ @yoffset@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @pixels@.
+  -> m ()
+glTextureSubImage2D v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO $ dyn823 ptr_glTextureSubImage2D v1 v2 v3 v4 v5 v6 v7 v8 v9
+
+{-# NOINLINE ptr_glTextureSubImage2D #-}
+ptr_glTextureSubImage2D :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glTextureSubImage2D = unsafePerformIO $ getCommand "glTextureSubImage2D"
+
+-- glTextureSubImage2DEXT ------------------------------------------------------
+
+glTextureSubImage2DEXT
+  :: MonadIO m
+  => GLuint -- ^ @texture@ of type @Texture@.
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLint -- ^ @xoffset@ of type @CheckedInt32@.
+  -> GLint -- ^ @yoffset@ of type @CheckedInt32@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @pixels@ pointing to @COMPSIZE(format,type,width,height)@ elements of type @a@.
+  -> m ()
+glTextureSubImage2DEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 = liftIO $ dyn824 ptr_glTextureSubImage2DEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 v10
+
+{-# NOINLINE ptr_glTextureSubImage2DEXT #-}
+ptr_glTextureSubImage2DEXT :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glTextureSubImage2DEXT = unsafePerformIO $ getCommand "glTextureSubImage2DEXT"
+
+-- glTextureSubImage3D ---------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glTexSubImage3D.xhtml OpenGL 4.x>.
+glTextureSubImage3D
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLint -- ^ @level@.
+  -> GLint -- ^ @xoffset@.
+  -> GLint -- ^ @yoffset@.
+  -> GLint -- ^ @zoffset@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLsizei -- ^ @depth@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @pixels@.
+  -> m ()
+glTextureSubImage3D v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 = liftIO $ dyn97 ptr_glTextureSubImage3D v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11
+
+{-# NOINLINE ptr_glTextureSubImage3D #-}
+ptr_glTextureSubImage3D :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glTextureSubImage3D = unsafePerformIO $ getCommand "glTextureSubImage3D"
+
+-- glTextureSubImage3DEXT ------------------------------------------------------
+
+glTextureSubImage3DEXT
+  :: MonadIO m
+  => GLuint -- ^ @texture@ of type @Texture@.
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLint -- ^ @level@ of type @CheckedInt32@.
+  -> GLint -- ^ @xoffset@ of type @CheckedInt32@.
+  -> GLint -- ^ @yoffset@ of type @CheckedInt32@.
+  -> GLint -- ^ @zoffset@ of type @CheckedInt32@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> GLsizei -- ^ @depth@.
+  -> GLenum -- ^ @format@ of type [PixelFormat](Graphics-GL-Groups.html#PixelFormat).
+  -> GLenum -- ^ @type@ of type [PixelType](Graphics-GL-Groups.html#PixelType).
+  -> Ptr a -- ^ @pixels@ pointing to @COMPSIZE(format,type,width,height,depth)@ elements of type @a@.
+  -> m ()
+glTextureSubImage3DEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 = liftIO $ dyn825 ptr_glTextureSubImage3DEXT v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12
+
+{-# NOINLINE ptr_glTextureSubImage3DEXT #-}
+ptr_glTextureSubImage3DEXT :: FunPtr (GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
+ptr_glTextureSubImage3DEXT = unsafePerformIO $ getCommand "glTextureSubImage3DEXT"
+
+-- glTextureView ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glTextureView.xhtml OpenGL 4.x>.
+glTextureView
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLuint -- ^ @origtexture@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLuint -- ^ @minlevel@.
+  -> GLuint -- ^ @numlevels@.
+  -> GLuint -- ^ @minlayer@.
+  -> GLuint -- ^ @numlayers@.
+  -> m ()
+glTextureView v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn826 ptr_glTextureView v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glTextureView #-}
+ptr_glTextureView :: FunPtr (GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+ptr_glTextureView = unsafePerformIO $ getCommand "glTextureView"
+
+-- glTextureViewEXT ------------------------------------------------------------
+
+-- | This command is an alias for 'glTextureView'.
+glTextureViewEXT
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLuint -- ^ @origtexture@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLuint -- ^ @minlevel@.
+  -> GLuint -- ^ @numlevels@.
+  -> GLuint -- ^ @minlayer@.
+  -> GLuint -- ^ @numlayers@.
+  -> m ()
+glTextureViewEXT v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn826 ptr_glTextureViewEXT v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glTextureViewEXT #-}
+ptr_glTextureViewEXT :: FunPtr (GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+ptr_glTextureViewEXT = unsafePerformIO $ getCommand "glTextureViewEXT"
+
+-- glTextureViewOES ------------------------------------------------------------
+
+-- | This command is an alias for 'glTextureView'.
+glTextureViewOES
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLenum -- ^ @target@ of type [TextureTarget](Graphics-GL-Groups.html#TextureTarget).
+  -> GLuint -- ^ @origtexture@.
+  -> GLenum -- ^ @internalformat@ of type [InternalFormat](Graphics-GL-Groups.html#InternalFormat).
+  -> GLuint -- ^ @minlevel@.
+  -> GLuint -- ^ @numlevels@.
+  -> GLuint -- ^ @minlayer@.
+  -> GLuint -- ^ @numlayers@.
+  -> m ()
+glTextureViewOES v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn826 ptr_glTextureViewOES v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glTextureViewOES #-}
+ptr_glTextureViewOES :: FunPtr (GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+ptr_glTextureViewOES = unsafePerformIO $ getCommand "glTextureViewOES"
+
+-- glTrackMatrixNV -------------------------------------------------------------
+
+glTrackMatrixNV
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [VertexAttribEnumNV](Graphics-GL-Groups.html#VertexAttribEnumNV).
+  -> GLuint -- ^ @address@.
+  -> GLenum -- ^ @matrix@ of type [VertexAttribEnumNV](Graphics-GL-Groups.html#VertexAttribEnumNV).
+  -> GLenum -- ^ @transform@ of type [VertexAttribEnumNV](Graphics-GL-Groups.html#VertexAttribEnumNV).
+  -> m ()
+glTrackMatrixNV v1 v2 v3 v4 = liftIO $ dyn827 ptr_glTrackMatrixNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glTrackMatrixNV #-}
+ptr_glTrackMatrixNV :: FunPtr (GLenum -> GLuint -> GLenum -> GLenum -> IO ())
+ptr_glTrackMatrixNV = unsafePerformIO $ getCommand "glTrackMatrixNV"
+
+-- glTransformFeedbackAttribsNV ------------------------------------------------
+
+glTransformFeedbackAttribsNV
+  :: MonadIO m
+  => GLsizei -- ^ @count@.
+  -> Ptr GLint -- ^ @attribs@ pointing to @COMPSIZE(count)@ elements of type @GLint@.
+  -> GLenum -- ^ @bufferMode@.
+  -> m ()
+glTransformFeedbackAttribsNV v1 v2 v3 = liftIO $ dyn828 ptr_glTransformFeedbackAttribsNV v1 v2 v3
+
+{-# NOINLINE ptr_glTransformFeedbackAttribsNV #-}
+ptr_glTransformFeedbackAttribsNV :: FunPtr (GLsizei -> Ptr GLint -> GLenum -> IO ())
+ptr_glTransformFeedbackAttribsNV = unsafePerformIO $ getCommand "glTransformFeedbackAttribsNV"
+
+-- glTransformFeedbackBufferBase -----------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glTransformFeedbackBufferBase.xhtml OpenGL 4.x>.
+glTransformFeedbackBufferBase
+  :: MonadIO m
+  => GLuint -- ^ @xfb@.
+  -> GLuint -- ^ @index@.
+  -> GLuint -- ^ @buffer@.
+  -> m ()
+glTransformFeedbackBufferBase v1 v2 v3 = liftIO $ dyn109 ptr_glTransformFeedbackBufferBase v1 v2 v3
+
+{-# NOINLINE ptr_glTransformFeedbackBufferBase #-}
+ptr_glTransformFeedbackBufferBase :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
+ptr_glTransformFeedbackBufferBase = unsafePerformIO $ getCommand "glTransformFeedbackBufferBase"
+
+-- glTransformFeedbackBufferRange ----------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glTransformFeedbackBufferRange.xhtml OpenGL 4.x>.
+glTransformFeedbackBufferRange
+  :: MonadIO m
+  => GLuint -- ^ @xfb@.
+  -> GLuint -- ^ @index@.
+  -> GLuint -- ^ @buffer@.
+  -> GLintptr -- ^ @offset@.
+  -> GLsizeiptr -- ^ @size@ of type @BufferSize@.
+  -> m ()
+glTransformFeedbackBufferRange v1 v2 v3 v4 v5 = liftIO $ dyn829 ptr_glTransformFeedbackBufferRange v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glTransformFeedbackBufferRange #-}
+ptr_glTransformFeedbackBufferRange :: FunPtr (GLuint -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> IO ())
+ptr_glTransformFeedbackBufferRange = unsafePerformIO $ getCommand "glTransformFeedbackBufferRange"
+
+-- glTransformFeedbackStreamAttribsNV ------------------------------------------
+
+glTransformFeedbackStreamAttribsNV
+  :: MonadIO m
+  => GLsizei -- ^ @count@.
+  -> Ptr GLint -- ^ @attribs@ pointing to @count@ elements of type @GLint@.
+  -> GLsizei -- ^ @nbuffers@.
+  -> Ptr GLint -- ^ @bufstreams@ pointing to @nbuffers@ elements of type @GLint@.
+  -> GLenum -- ^ @bufferMode@.
+  -> m ()
+glTransformFeedbackStreamAttribsNV v1 v2 v3 v4 v5 = liftIO $ dyn830 ptr_glTransformFeedbackStreamAttribsNV v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glTransformFeedbackStreamAttribsNV #-}
+ptr_glTransformFeedbackStreamAttribsNV :: FunPtr (GLsizei -> Ptr GLint -> GLsizei -> Ptr GLint -> GLenum -> IO ())
+ptr_glTransformFeedbackStreamAttribsNV = unsafePerformIO $ getCommand "glTransformFeedbackStreamAttribsNV"
+
+-- glTransformFeedbackVaryings -------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glTransformFeedbackVaryings.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glTransformFeedbackVaryings.xhtml OpenGL 4.x>.
+glTransformFeedbackVaryings
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr (Ptr GLchar) -- ^ @varyings@ pointing to @count@ elements of type @Ptr GLchar@.
+  -> GLenum -- ^ @bufferMode@ of type [TransformFeedbackBufferMode](Graphics-GL-Groups.html#TransformFeedbackBufferMode).
+  -> m ()
+glTransformFeedbackVaryings v1 v2 v3 v4 = liftIO $ dyn831 ptr_glTransformFeedbackVaryings v1 v2 v3 v4
+
+{-# NOINLINE ptr_glTransformFeedbackVaryings #-}
+ptr_glTransformFeedbackVaryings :: FunPtr (GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> IO ())
+ptr_glTransformFeedbackVaryings = unsafePerformIO $ getCommand "glTransformFeedbackVaryings"
+
+-- glTransformFeedbackVaryingsEXT ----------------------------------------------
+
+-- | This command is an alias for 'glTransformFeedbackVaryings'.
+glTransformFeedbackVaryingsEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr (Ptr GLchar) -- ^ @varyings@ pointing to @count@ elements of type @Ptr GLchar@.
+  -> GLenum -- ^ @bufferMode@.
+  -> m ()
+glTransformFeedbackVaryingsEXT v1 v2 v3 v4 = liftIO $ dyn831 ptr_glTransformFeedbackVaryingsEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glTransformFeedbackVaryingsEXT #-}
+ptr_glTransformFeedbackVaryingsEXT :: FunPtr (GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> IO ())
+ptr_glTransformFeedbackVaryingsEXT = unsafePerformIO $ getCommand "glTransformFeedbackVaryingsEXT"
+
+-- glTransformFeedbackVaryingsNV -----------------------------------------------
+
+glTransformFeedbackVaryingsNV
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLint -- ^ @locations@ pointing to @count@ elements of type @GLint@.
+  -> GLenum -- ^ @bufferMode@.
+  -> m ()
+glTransformFeedbackVaryingsNV v1 v2 v3 v4 = liftIO $ dyn832 ptr_glTransformFeedbackVaryingsNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glTransformFeedbackVaryingsNV #-}
+ptr_glTransformFeedbackVaryingsNV :: FunPtr (GLuint -> GLsizei -> Ptr GLint -> GLenum -> IO ())
+ptr_glTransformFeedbackVaryingsNV = unsafePerformIO $ getCommand "glTransformFeedbackVaryingsNV"
+
+-- glTransformPathNV -----------------------------------------------------------
+
+glTransformPathNV
+  :: MonadIO m
+  => GLuint -- ^ @resultPath@ of type @Path@.
+  -> GLuint -- ^ @srcPath@ of type @Path@.
+  -> GLenum -- ^ @transformType@ of type [PathTransformType](Graphics-GL-Groups.html#PathTransformType).
+  -> Ptr GLfloat -- ^ @transformValues@ pointing to @COMPSIZE(transformType)@ elements of type @GLfloat@.
+  -> m ()
+glTransformPathNV v1 v2 v3 v4 = liftIO $ dyn466 ptr_glTransformPathNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glTransformPathNV #-}
+ptr_glTransformPathNV :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glTransformPathNV = unsafePerformIO $ getCommand "glTransformPathNV"
+
+-- glTranslated ----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glTranslate.xml OpenGL 2.x>.
+glTranslated
+  :: MonadIO m
+  => GLdouble -- ^ @x@.
+  -> GLdouble -- ^ @y@.
+  -> GLdouble -- ^ @z@.
+  -> m ()
+glTranslated v1 v2 v3 = liftIO $ dyn41 ptr_glTranslated v1 v2 v3
+
+{-# NOINLINE ptr_glTranslated #-}
+ptr_glTranslated :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
+ptr_glTranslated = unsafePerformIO $ getCommand "glTranslated"
+
+-- glTranslatef ----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glTranslate.xml OpenGL 2.x>.
+glTranslatef
+  :: MonadIO m
+  => GLfloat -- ^ @x@.
+  -> GLfloat -- ^ @y@.
+  -> GLfloat -- ^ @z@.
+  -> m ()
+glTranslatef v1 v2 v3 = liftIO $ dyn43 ptr_glTranslatef v1 v2 v3
+
+{-# NOINLINE ptr_glTranslatef #-}
+ptr_glTranslatef :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glTranslatef = unsafePerformIO $ getCommand "glTranslatef"
+
+-- glTranslatex ----------------------------------------------------------------
+
+glTranslatex
+  :: MonadIO m
+  => GLfixed -- ^ @x@.
+  -> GLfixed -- ^ @y@.
+  -> GLfixed -- ^ @z@.
+  -> m ()
+glTranslatex v1 v2 v3 = liftIO $ dyn113 ptr_glTranslatex v1 v2 v3
+
+{-# NOINLINE ptr_glTranslatex #-}
+ptr_glTranslatex :: FunPtr (GLfixed -> GLfixed -> GLfixed -> IO ())
+ptr_glTranslatex = unsafePerformIO $ getCommand "glTranslatex"
+
+-- glTranslatexOES -------------------------------------------------------------
+
+glTranslatexOES
+  :: MonadIO m
+  => GLfixed -- ^ @x@.
+  -> GLfixed -- ^ @y@.
+  -> GLfixed -- ^ @z@.
+  -> m ()
+glTranslatexOES v1 v2 v3 = liftIO $ dyn113 ptr_glTranslatexOES v1 v2 v3
+
+{-# NOINLINE ptr_glTranslatexOES #-}
+ptr_glTranslatexOES :: FunPtr (GLfixed -> GLfixed -> GLfixed -> IO ())
+ptr_glTranslatexOES = unsafePerformIO $ getCommand "glTranslatexOES"
+
+-- glUniform1d -----------------------------------------------------------------
+
+glUniform1d
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLdouble -- ^ @x@.
+  -> m ()
+glUniform1d v1 v2 = liftIO $ dyn833 ptr_glUniform1d v1 v2
+
+{-# NOINLINE ptr_glUniform1d #-}
+ptr_glUniform1d :: FunPtr (GLint -> GLdouble -> IO ())
+ptr_glUniform1d = unsafePerformIO $ getCommand "glUniform1d"
+
+-- glUniform1dv ----------------------------------------------------------------
+
+glUniform1dv
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLdouble -- ^ @value@ pointing to @count*1@ elements of type @GLdouble@.
+  -> m ()
+glUniform1dv v1 v2 v3 = liftIO $ dyn834 ptr_glUniform1dv v1 v2 v3
+
+{-# NOINLINE ptr_glUniform1dv #-}
+ptr_glUniform1dv :: FunPtr (GLint -> GLsizei -> Ptr GLdouble -> IO ())
+ptr_glUniform1dv = unsafePerformIO $ getCommand "glUniform1dv"
+
+-- glUniform1f -----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glUniform.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml OpenGL 4.x>.
+glUniform1f
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLfloat -- ^ @v0@.
+  -> m ()
+glUniform1f v1 v2 = liftIO $ dyn835 ptr_glUniform1f v1 v2
+
+{-# NOINLINE ptr_glUniform1f #-}
+ptr_glUniform1f :: FunPtr (GLint -> GLfloat -> IO ())
+ptr_glUniform1f = unsafePerformIO $ getCommand "glUniform1f"
+
+-- glUniform1fARB --------------------------------------------------------------
+
+-- | This command is an alias for 'glUniform1f'.
+glUniform1fARB
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLfloat -- ^ @v0@.
+  -> m ()
+glUniform1fARB v1 v2 = liftIO $ dyn835 ptr_glUniform1fARB v1 v2
+
+{-# NOINLINE ptr_glUniform1fARB #-}
+ptr_glUniform1fARB :: FunPtr (GLint -> GLfloat -> IO ())
+ptr_glUniform1fARB = unsafePerformIO $ getCommand "glUniform1fARB"
+
+-- glUniform1fv ----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glUniform.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml OpenGL 4.x>.
+glUniform1fv
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLfloat -- ^ @value@ pointing to @count*1@ elements of type @GLfloat@.
+  -> m ()
+glUniform1fv v1 v2 v3 = liftIO $ dyn836 ptr_glUniform1fv v1 v2 v3
+
+{-# NOINLINE ptr_glUniform1fv #-}
+ptr_glUniform1fv :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ())
+ptr_glUniform1fv = unsafePerformIO $ getCommand "glUniform1fv"
+
+-- glUniform1fvARB -------------------------------------------------------------
+
+-- | This command is an alias for 'glUniform1fv'.
+glUniform1fvARB
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLfloat -- ^ @value@ pointing to @count*1@ elements of type @GLfloat@.
+  -> m ()
+glUniform1fvARB v1 v2 v3 = liftIO $ dyn836 ptr_glUniform1fvARB v1 v2 v3
+
+{-# NOINLINE ptr_glUniform1fvARB #-}
+ptr_glUniform1fvARB :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ())
+ptr_glUniform1fvARB = unsafePerformIO $ getCommand "glUniform1fvARB"
+
+-- glUniform1i -----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glUniform.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml OpenGL 4.x>.
+glUniform1i
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLint -- ^ @v0@.
+  -> m ()
+glUniform1i v1 v2 = liftIO $ dyn277 ptr_glUniform1i v1 v2
+
+{-# NOINLINE ptr_glUniform1i #-}
+ptr_glUniform1i :: FunPtr (GLint -> GLint -> IO ())
+ptr_glUniform1i = unsafePerformIO $ getCommand "glUniform1i"
+
+-- glUniform1i64ARB ------------------------------------------------------------
+
+glUniform1i64ARB
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLint64 -- ^ @x@.
+  -> m ()
+glUniform1i64ARB v1 v2 = liftIO $ dyn837 ptr_glUniform1i64ARB v1 v2
+
+{-# NOINLINE ptr_glUniform1i64ARB #-}
+ptr_glUniform1i64ARB :: FunPtr (GLint -> GLint64 -> IO ())
+ptr_glUniform1i64ARB = unsafePerformIO $ getCommand "glUniform1i64ARB"
+
+-- glUniform1i64NV -------------------------------------------------------------
+
+glUniform1i64NV
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLint64EXT -- ^ @x@.
+  -> m ()
+glUniform1i64NV v1 v2 = liftIO $ dyn838 ptr_glUniform1i64NV v1 v2
+
+{-# NOINLINE ptr_glUniform1i64NV #-}
+ptr_glUniform1i64NV :: FunPtr (GLint -> GLint64EXT -> IO ())
+ptr_glUniform1i64NV = unsafePerformIO $ getCommand "glUniform1i64NV"
+
+-- glUniform1i64vARB -----------------------------------------------------------
+
+glUniform1i64vARB
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLint64 -- ^ @value@ pointing to @count*1@ elements of type @GLint64@.
+  -> m ()
+glUniform1i64vARB v1 v2 v3 = liftIO $ dyn839 ptr_glUniform1i64vARB v1 v2 v3
+
+{-# NOINLINE ptr_glUniform1i64vARB #-}
+ptr_glUniform1i64vARB :: FunPtr (GLint -> GLsizei -> Ptr GLint64 -> IO ())
+ptr_glUniform1i64vARB = unsafePerformIO $ getCommand "glUniform1i64vARB"
+
+-- glUniform1i64vNV ------------------------------------------------------------
+
+glUniform1i64vNV
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLint64EXT -- ^ @value@ pointing to @count*1@ elements of type @GLint64EXT@.
+  -> m ()
+glUniform1i64vNV v1 v2 v3 = liftIO $ dyn840 ptr_glUniform1i64vNV v1 v2 v3
+
+{-# NOINLINE ptr_glUniform1i64vNV #-}
+ptr_glUniform1i64vNV :: FunPtr (GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
+ptr_glUniform1i64vNV = unsafePerformIO $ getCommand "glUniform1i64vNV"
+
+-- glUniform1iARB --------------------------------------------------------------
+
+-- | This command is an alias for 'glUniform1i'.
+glUniform1iARB
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLint -- ^ @v0@.
+  -> m ()
+glUniform1iARB v1 v2 = liftIO $ dyn277 ptr_glUniform1iARB v1 v2
+
+{-# NOINLINE ptr_glUniform1iARB #-}
+ptr_glUniform1iARB :: FunPtr (GLint -> GLint -> IO ())
+ptr_glUniform1iARB = unsafePerformIO $ getCommand "glUniform1iARB"
+
+-- glUniform1iv ----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glUniform.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml OpenGL 4.x>.
+glUniform1iv
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLint -- ^ @value@ pointing to @count*1@ elements of type @GLint@.
+  -> m ()
+glUniform1iv v1 v2 v3 = liftIO $ dyn841 ptr_glUniform1iv v1 v2 v3
+
+{-# NOINLINE ptr_glUniform1iv #-}
+ptr_glUniform1iv :: FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ())
+ptr_glUniform1iv = unsafePerformIO $ getCommand "glUniform1iv"
+
+-- glUniform1ivARB -------------------------------------------------------------
+
+-- | This command is an alias for 'glUniform1iv'.
+glUniform1ivARB
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLint -- ^ @value@ pointing to @count*1@ elements of type @GLint@.
+  -> m ()
+glUniform1ivARB v1 v2 v3 = liftIO $ dyn841 ptr_glUniform1ivARB v1 v2 v3
+
+{-# NOINLINE ptr_glUniform1ivARB #-}
+ptr_glUniform1ivARB :: FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ())
+ptr_glUniform1ivARB = unsafePerformIO $ getCommand "glUniform1ivARB"
+
+-- glUniform1ui ----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml OpenGL 4.x>.
+glUniform1ui
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLuint -- ^ @v0@.
+  -> m ()
+glUniform1ui v1 v2 = liftIO $ dyn842 ptr_glUniform1ui v1 v2
+
+{-# NOINLINE ptr_glUniform1ui #-}
+ptr_glUniform1ui :: FunPtr (GLint -> GLuint -> IO ())
+ptr_glUniform1ui = unsafePerformIO $ getCommand "glUniform1ui"
+
+-- glUniform1ui64ARB -----------------------------------------------------------
+
+glUniform1ui64ARB
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLuint64 -- ^ @x@.
+  -> m ()
+glUniform1ui64ARB v1 v2 = liftIO $ dyn843 ptr_glUniform1ui64ARB v1 v2
+
+{-# NOINLINE ptr_glUniform1ui64ARB #-}
+ptr_glUniform1ui64ARB :: FunPtr (GLint -> GLuint64 -> IO ())
+ptr_glUniform1ui64ARB = unsafePerformIO $ getCommand "glUniform1ui64ARB"
+
+-- glUniform1ui64NV ------------------------------------------------------------
+
+glUniform1ui64NV
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLuint64EXT -- ^ @x@.
+  -> m ()
+glUniform1ui64NV v1 v2 = liftIO $ dyn844 ptr_glUniform1ui64NV v1 v2
+
+{-# NOINLINE ptr_glUniform1ui64NV #-}
+ptr_glUniform1ui64NV :: FunPtr (GLint -> GLuint64EXT -> IO ())
+ptr_glUniform1ui64NV = unsafePerformIO $ getCommand "glUniform1ui64NV"
+
+-- glUniform1ui64vARB ----------------------------------------------------------
+
+glUniform1ui64vARB
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLuint64 -- ^ @value@ pointing to @count*1@ elements of type @GLuint64@.
+  -> m ()
+glUniform1ui64vARB v1 v2 v3 = liftIO $ dyn845 ptr_glUniform1ui64vARB v1 v2 v3
+
+{-# NOINLINE ptr_glUniform1ui64vARB #-}
+ptr_glUniform1ui64vARB :: FunPtr (GLint -> GLsizei -> Ptr GLuint64 -> IO ())
+ptr_glUniform1ui64vARB = unsafePerformIO $ getCommand "glUniform1ui64vARB"
+
+-- glUniform1ui64vNV -----------------------------------------------------------
+
+glUniform1ui64vNV
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLuint64EXT -- ^ @value@ pointing to @count*1@ elements of type @GLuint64EXT@.
+  -> m ()
+glUniform1ui64vNV v1 v2 v3 = liftIO $ dyn846 ptr_glUniform1ui64vNV v1 v2 v3
+
+{-# NOINLINE ptr_glUniform1ui64vNV #-}
+ptr_glUniform1ui64vNV :: FunPtr (GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
+ptr_glUniform1ui64vNV = unsafePerformIO $ getCommand "glUniform1ui64vNV"
+
+-- glUniform1uiEXT -------------------------------------------------------------
+
+-- | This command is an alias for 'glUniform1ui'.
+glUniform1uiEXT
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLuint -- ^ @v0@.
+  -> m ()
+glUniform1uiEXT v1 v2 = liftIO $ dyn842 ptr_glUniform1uiEXT v1 v2
+
+{-# NOINLINE ptr_glUniform1uiEXT #-}
+ptr_glUniform1uiEXT :: FunPtr (GLint -> GLuint -> IO ())
+ptr_glUniform1uiEXT = unsafePerformIO $ getCommand "glUniform1uiEXT"
+
+-- glUniform1uiv ---------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml OpenGL 4.x>.
+glUniform1uiv
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLuint -- ^ @value@ pointing to @count*1@ elements of type @GLuint@.
+  -> m ()
+glUniform1uiv v1 v2 v3 = liftIO $ dyn847 ptr_glUniform1uiv v1 v2 v3
+
+{-# NOINLINE ptr_glUniform1uiv #-}
+ptr_glUniform1uiv :: FunPtr (GLint -> GLsizei -> Ptr GLuint -> IO ())
+ptr_glUniform1uiv = unsafePerformIO $ getCommand "glUniform1uiv"
+
+-- glUniform1uivEXT ------------------------------------------------------------
+
+-- | This command is an alias for 'glUniform1uiv'.
+glUniform1uivEXT
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLuint -- ^ @value@ pointing to @count*1@ elements of type @GLuint@.
+  -> m ()
+glUniform1uivEXT v1 v2 v3 = liftIO $ dyn847 ptr_glUniform1uivEXT v1 v2 v3
+
+{-# NOINLINE ptr_glUniform1uivEXT #-}
+ptr_glUniform1uivEXT :: FunPtr (GLint -> GLsizei -> Ptr GLuint -> IO ())
+ptr_glUniform1uivEXT = unsafePerformIO $ getCommand "glUniform1uivEXT"
+
+-- glUniform2d -----------------------------------------------------------------
+
+glUniform2d
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLdouble -- ^ @x@.
+  -> GLdouble -- ^ @y@.
+  -> m ()
+glUniform2d v1 v2 v3 = liftIO $ dyn528 ptr_glUniform2d v1 v2 v3
+
+{-# NOINLINE ptr_glUniform2d #-}
+ptr_glUniform2d :: FunPtr (GLint -> GLdouble -> GLdouble -> IO ())
+ptr_glUniform2d = unsafePerformIO $ getCommand "glUniform2d"
+
+-- glUniform2dv ----------------------------------------------------------------
+
+glUniform2dv
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLdouble -- ^ @value@ pointing to @count*2@ elements of type @GLdouble@.
+  -> m ()
+glUniform2dv v1 v2 v3 = liftIO $ dyn834 ptr_glUniform2dv v1 v2 v3
+
+{-# NOINLINE ptr_glUniform2dv #-}
+ptr_glUniform2dv :: FunPtr (GLint -> GLsizei -> Ptr GLdouble -> IO ())
+ptr_glUniform2dv = unsafePerformIO $ getCommand "glUniform2dv"
+
+-- glUniform2f -----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glUniform.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml OpenGL 4.x>.
+glUniform2f
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLfloat -- ^ @v0@.
+  -> GLfloat -- ^ @v1@.
+  -> m ()
+glUniform2f v1 v2 v3 = liftIO $ dyn529 ptr_glUniform2f v1 v2 v3
+
+{-# NOINLINE ptr_glUniform2f #-}
+ptr_glUniform2f :: FunPtr (GLint -> GLfloat -> GLfloat -> IO ())
+ptr_glUniform2f = unsafePerformIO $ getCommand "glUniform2f"
+
+-- glUniform2fARB --------------------------------------------------------------
+
+-- | This command is an alias for 'glUniform2f'.
+glUniform2fARB
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLfloat -- ^ @v0@.
+  -> GLfloat -- ^ @v1@.
+  -> m ()
+glUniform2fARB v1 v2 v3 = liftIO $ dyn529 ptr_glUniform2fARB v1 v2 v3
+
+{-# NOINLINE ptr_glUniform2fARB #-}
+ptr_glUniform2fARB :: FunPtr (GLint -> GLfloat -> GLfloat -> IO ())
+ptr_glUniform2fARB = unsafePerformIO $ getCommand "glUniform2fARB"
+
+-- glUniform2fv ----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glUniform.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml OpenGL 4.x>.
+glUniform2fv
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLfloat -- ^ @value@ pointing to @count*2@ elements of type @GLfloat@.
+  -> m ()
+glUniform2fv v1 v2 v3 = liftIO $ dyn836 ptr_glUniform2fv v1 v2 v3
+
+{-# NOINLINE ptr_glUniform2fv #-}
+ptr_glUniform2fv :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ())
+ptr_glUniform2fv = unsafePerformIO $ getCommand "glUniform2fv"
+
+-- glUniform2fvARB -------------------------------------------------------------
+
+-- | This command is an alias for 'glUniform2fv'.
+glUniform2fvARB
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLfloat -- ^ @value@ pointing to @count*2@ elements of type @GLfloat@.
+  -> m ()
+glUniform2fvARB v1 v2 v3 = liftIO $ dyn836 ptr_glUniform2fvARB v1 v2 v3
+
+{-# NOINLINE ptr_glUniform2fvARB #-}
+ptr_glUniform2fvARB :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ())
+ptr_glUniform2fvARB = unsafePerformIO $ getCommand "glUniform2fvARB"
+
+-- glUniform2i -----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glUniform.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml OpenGL 4.x>.
+glUniform2i
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLint -- ^ @v0@.
+  -> GLint -- ^ @v1@.
+  -> m ()
+glUniform2i v1 v2 v3 = liftIO $ dyn45 ptr_glUniform2i v1 v2 v3
+
+{-# NOINLINE ptr_glUniform2i #-}
+ptr_glUniform2i :: FunPtr (GLint -> GLint -> GLint -> IO ())
+ptr_glUniform2i = unsafePerformIO $ getCommand "glUniform2i"
+
+-- glUniform2i64ARB ------------------------------------------------------------
+
+glUniform2i64ARB
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLint64 -- ^ @x@.
+  -> GLint64 -- ^ @y@.
+  -> m ()
+glUniform2i64ARB v1 v2 v3 = liftIO $ dyn848 ptr_glUniform2i64ARB v1 v2 v3
+
+{-# NOINLINE ptr_glUniform2i64ARB #-}
+ptr_glUniform2i64ARB :: FunPtr (GLint -> GLint64 -> GLint64 -> IO ())
+ptr_glUniform2i64ARB = unsafePerformIO $ getCommand "glUniform2i64ARB"
+
+-- glUniform2i64NV -------------------------------------------------------------
+
+glUniform2i64NV
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLint64EXT -- ^ @x@.
+  -> GLint64EXT -- ^ @y@.
+  -> m ()
+glUniform2i64NV v1 v2 v3 = liftIO $ dyn849 ptr_glUniform2i64NV v1 v2 v3
+
+{-# NOINLINE ptr_glUniform2i64NV #-}
+ptr_glUniform2i64NV :: FunPtr (GLint -> GLint64EXT -> GLint64EXT -> IO ())
+ptr_glUniform2i64NV = unsafePerformIO $ getCommand "glUniform2i64NV"
+
+-- glUniform2i64vARB -----------------------------------------------------------
+
+glUniform2i64vARB
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLint64 -- ^ @value@ pointing to @count*2@ elements of type @GLint64@.
+  -> m ()
+glUniform2i64vARB v1 v2 v3 = liftIO $ dyn839 ptr_glUniform2i64vARB v1 v2 v3
+
+{-# NOINLINE ptr_glUniform2i64vARB #-}
+ptr_glUniform2i64vARB :: FunPtr (GLint -> GLsizei -> Ptr GLint64 -> IO ())
+ptr_glUniform2i64vARB = unsafePerformIO $ getCommand "glUniform2i64vARB"
+
+-- glUniform2i64vNV ------------------------------------------------------------
+
+glUniform2i64vNV
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLint64EXT -- ^ @value@ pointing to @count*2@ elements of type @GLint64EXT@.
+  -> m ()
+glUniform2i64vNV v1 v2 v3 = liftIO $ dyn840 ptr_glUniform2i64vNV v1 v2 v3
+
+{-# NOINLINE ptr_glUniform2i64vNV #-}
+ptr_glUniform2i64vNV :: FunPtr (GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
+ptr_glUniform2i64vNV = unsafePerformIO $ getCommand "glUniform2i64vNV"
+
+-- glUniform2iARB --------------------------------------------------------------
+
+-- | This command is an alias for 'glUniform2i'.
+glUniform2iARB
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLint -- ^ @v0@.
+  -> GLint -- ^ @v1@.
+  -> m ()
+glUniform2iARB v1 v2 v3 = liftIO $ dyn45 ptr_glUniform2iARB v1 v2 v3
+
+{-# NOINLINE ptr_glUniform2iARB #-}
+ptr_glUniform2iARB :: FunPtr (GLint -> GLint -> GLint -> IO ())
+ptr_glUniform2iARB = unsafePerformIO $ getCommand "glUniform2iARB"
+
diff --git a/src/Graphics/GL/Functions/F28.hs b/src/Graphics/GL/Functions/F28.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Functions/F28.hs
@@ -0,0 +1,1621 @@
+{-# OPTIONS_HADDOCK hide #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Functions.F28
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- Raw functions from the
+-- <http://www.opengl.org/registry/ OpenGL registry>.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Functions.F28 (
+  glUniform2iv,
+  glUniform2ivARB,
+  glUniform2ui,
+  glUniform2ui64ARB,
+  glUniform2ui64NV,
+  glUniform2ui64vARB,
+  glUniform2ui64vNV,
+  glUniform2uiEXT,
+  glUniform2uiv,
+  glUniform2uivEXT,
+  glUniform3d,
+  glUniform3dv,
+  glUniform3f,
+  glUniform3fARB,
+  glUniform3fv,
+  glUniform3fvARB,
+  glUniform3i,
+  glUniform3i64ARB,
+  glUniform3i64NV,
+  glUniform3i64vARB,
+  glUniform3i64vNV,
+  glUniform3iARB,
+  glUniform3iv,
+  glUniform3ivARB,
+  glUniform3ui,
+  glUniform3ui64ARB,
+  glUniform3ui64NV,
+  glUniform3ui64vARB,
+  glUniform3ui64vNV,
+  glUniform3uiEXT,
+  glUniform3uiv,
+  glUniform3uivEXT,
+  glUniform4d,
+  glUniform4dv,
+  glUniform4f,
+  glUniform4fARB,
+  glUniform4fv,
+  glUniform4fvARB,
+  glUniform4i,
+  glUniform4i64ARB,
+  glUniform4i64NV,
+  glUniform4i64vARB,
+  glUniform4i64vNV,
+  glUniform4iARB,
+  glUniform4iv,
+  glUniform4ivARB,
+  glUniform4ui,
+  glUniform4ui64ARB,
+  glUniform4ui64NV,
+  glUniform4ui64vARB,
+  glUniform4ui64vNV,
+  glUniform4uiEXT,
+  glUniform4uiv,
+  glUniform4uivEXT,
+  glUniformBlockBinding,
+  glUniformBufferEXT,
+  glUniformHandleui64ARB,
+  glUniformHandleui64IMG,
+  glUniformHandleui64NV,
+  glUniformHandleui64vARB,
+  glUniformHandleui64vIMG,
+  glUniformHandleui64vNV,
+  glUniformMatrix2dv,
+  glUniformMatrix2fv,
+  glUniformMatrix2fvARB,
+  glUniformMatrix2x3dv,
+  glUniformMatrix2x3fv,
+  glUniformMatrix2x3fvNV,
+  glUniformMatrix2x4dv,
+  glUniformMatrix2x4fv,
+  glUniformMatrix2x4fvNV,
+  glUniformMatrix3dv,
+  glUniformMatrix3fv,
+  glUniformMatrix3fvARB,
+  glUniformMatrix3x2dv,
+  glUniformMatrix3x2fv,
+  glUniformMatrix3x2fvNV,
+  glUniformMatrix3x4dv,
+  glUniformMatrix3x4fv,
+  glUniformMatrix3x4fvNV,
+  glUniformMatrix4dv,
+  glUniformMatrix4fv,
+  glUniformMatrix4fvARB,
+  glUniformMatrix4x2dv,
+  glUniformMatrix4x2fv,
+  glUniformMatrix4x2fvNV,
+  glUniformMatrix4x3dv,
+  glUniformMatrix4x3fv,
+  glUniformMatrix4x3fvNV,
+  glUniformSubroutinesuiv,
+  glUniformui64NV,
+  glUniformui64vNV,
+  glUnlockArraysEXT,
+  glUnmapBuffer,
+  glUnmapBufferARB,
+  glUnmapBufferOES,
+  glUnmapNamedBuffer,
+  glUnmapNamedBufferEXT,
+  glUnmapObjectBufferATI,
+  glUnmapTexture2DINTEL
+) where
+
+import Control.Monad.IO.Class ( MonadIO(..) )
+import Foreign.Ptr
+import Graphics.GL.Foreign
+import Graphics.GL.Types
+import System.IO.Unsafe ( unsafePerformIO )
+
+-- glUniform2iv ----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glUniform.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml OpenGL 4.x>.
+glUniform2iv
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLint -- ^ @value@ pointing to @count*2@ elements of type @GLint@.
+  -> m ()
+glUniform2iv v1 v2 v3 = liftIO $ dyn841 ptr_glUniform2iv v1 v2 v3
+
+{-# NOINLINE ptr_glUniform2iv #-}
+ptr_glUniform2iv :: FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ())
+ptr_glUniform2iv = unsafePerformIO $ getCommand "glUniform2iv"
+
+-- glUniform2ivARB -------------------------------------------------------------
+
+-- | This command is an alias for 'glUniform2iv'.
+glUniform2ivARB
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLint -- ^ @value@ pointing to @count*2@ elements of type @GLint@.
+  -> m ()
+glUniform2ivARB v1 v2 v3 = liftIO $ dyn841 ptr_glUniform2ivARB v1 v2 v3
+
+{-# NOINLINE ptr_glUniform2ivARB #-}
+ptr_glUniform2ivARB :: FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ())
+ptr_glUniform2ivARB = unsafePerformIO $ getCommand "glUniform2ivARB"
+
+-- glUniform2ui ----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml OpenGL 4.x>.
+glUniform2ui
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLuint -- ^ @v0@.
+  -> GLuint -- ^ @v1@.
+  -> m ()
+glUniform2ui v1 v2 v3 = liftIO $ dyn850 ptr_glUniform2ui v1 v2 v3
+
+{-# NOINLINE ptr_glUniform2ui #-}
+ptr_glUniform2ui :: FunPtr (GLint -> GLuint -> GLuint -> IO ())
+ptr_glUniform2ui = unsafePerformIO $ getCommand "glUniform2ui"
+
+-- glUniform2ui64ARB -----------------------------------------------------------
+
+glUniform2ui64ARB
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLuint64 -- ^ @x@.
+  -> GLuint64 -- ^ @y@.
+  -> m ()
+glUniform2ui64ARB v1 v2 v3 = liftIO $ dyn851 ptr_glUniform2ui64ARB v1 v2 v3
+
+{-# NOINLINE ptr_glUniform2ui64ARB #-}
+ptr_glUniform2ui64ARB :: FunPtr (GLint -> GLuint64 -> GLuint64 -> IO ())
+ptr_glUniform2ui64ARB = unsafePerformIO $ getCommand "glUniform2ui64ARB"
+
+-- glUniform2ui64NV ------------------------------------------------------------
+
+glUniform2ui64NV
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLuint64EXT -- ^ @x@.
+  -> GLuint64EXT -- ^ @y@.
+  -> m ()
+glUniform2ui64NV v1 v2 v3 = liftIO $ dyn852 ptr_glUniform2ui64NV v1 v2 v3
+
+{-# NOINLINE ptr_glUniform2ui64NV #-}
+ptr_glUniform2ui64NV :: FunPtr (GLint -> GLuint64EXT -> GLuint64EXT -> IO ())
+ptr_glUniform2ui64NV = unsafePerformIO $ getCommand "glUniform2ui64NV"
+
+-- glUniform2ui64vARB ----------------------------------------------------------
+
+glUniform2ui64vARB
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLuint64 -- ^ @value@ pointing to @count*2@ elements of type @GLuint64@.
+  -> m ()
+glUniform2ui64vARB v1 v2 v3 = liftIO $ dyn845 ptr_glUniform2ui64vARB v1 v2 v3
+
+{-# NOINLINE ptr_glUniform2ui64vARB #-}
+ptr_glUniform2ui64vARB :: FunPtr (GLint -> GLsizei -> Ptr GLuint64 -> IO ())
+ptr_glUniform2ui64vARB = unsafePerformIO $ getCommand "glUniform2ui64vARB"
+
+-- glUniform2ui64vNV -----------------------------------------------------------
+
+glUniform2ui64vNV
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLuint64EXT -- ^ @value@ pointing to @count*2@ elements of type @GLuint64EXT@.
+  -> m ()
+glUniform2ui64vNV v1 v2 v3 = liftIO $ dyn846 ptr_glUniform2ui64vNV v1 v2 v3
+
+{-# NOINLINE ptr_glUniform2ui64vNV #-}
+ptr_glUniform2ui64vNV :: FunPtr (GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
+ptr_glUniform2ui64vNV = unsafePerformIO $ getCommand "glUniform2ui64vNV"
+
+-- glUniform2uiEXT -------------------------------------------------------------
+
+-- | This command is an alias for 'glUniform2ui'.
+glUniform2uiEXT
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLuint -- ^ @v0@.
+  -> GLuint -- ^ @v1@.
+  -> m ()
+glUniform2uiEXT v1 v2 v3 = liftIO $ dyn850 ptr_glUniform2uiEXT v1 v2 v3
+
+{-# NOINLINE ptr_glUniform2uiEXT #-}
+ptr_glUniform2uiEXT :: FunPtr (GLint -> GLuint -> GLuint -> IO ())
+ptr_glUniform2uiEXT = unsafePerformIO $ getCommand "glUniform2uiEXT"
+
+-- glUniform2uiv ---------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml OpenGL 4.x>.
+glUniform2uiv
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLuint -- ^ @value@ pointing to @count*2@ elements of type @GLuint@.
+  -> m ()
+glUniform2uiv v1 v2 v3 = liftIO $ dyn847 ptr_glUniform2uiv v1 v2 v3
+
+{-# NOINLINE ptr_glUniform2uiv #-}
+ptr_glUniform2uiv :: FunPtr (GLint -> GLsizei -> Ptr GLuint -> IO ())
+ptr_glUniform2uiv = unsafePerformIO $ getCommand "glUniform2uiv"
+
+-- glUniform2uivEXT ------------------------------------------------------------
+
+-- | This command is an alias for 'glUniform2uiv'.
+glUniform2uivEXT
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLuint -- ^ @value@ pointing to @count*2@ elements of type @GLuint@.
+  -> m ()
+glUniform2uivEXT v1 v2 v3 = liftIO $ dyn847 ptr_glUniform2uivEXT v1 v2 v3
+
+{-# NOINLINE ptr_glUniform2uivEXT #-}
+ptr_glUniform2uivEXT :: FunPtr (GLint -> GLsizei -> Ptr GLuint -> IO ())
+ptr_glUniform2uivEXT = unsafePerformIO $ getCommand "glUniform2uivEXT"
+
+-- glUniform3d -----------------------------------------------------------------
+
+glUniform3d
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLdouble -- ^ @x@.
+  -> GLdouble -- ^ @y@.
+  -> GLdouble -- ^ @z@.
+  -> m ()
+glUniform3d v1 v2 v3 v4 = liftIO $ dyn853 ptr_glUniform3d v1 v2 v3 v4
+
+{-# NOINLINE ptr_glUniform3d #-}
+ptr_glUniform3d :: FunPtr (GLint -> GLdouble -> GLdouble -> GLdouble -> IO ())
+ptr_glUniform3d = unsafePerformIO $ getCommand "glUniform3d"
+
+-- glUniform3dv ----------------------------------------------------------------
+
+glUniform3dv
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLdouble -- ^ @value@ pointing to @count*3@ elements of type @GLdouble@.
+  -> m ()
+glUniform3dv v1 v2 v3 = liftIO $ dyn834 ptr_glUniform3dv v1 v2 v3
+
+{-# NOINLINE ptr_glUniform3dv #-}
+ptr_glUniform3dv :: FunPtr (GLint -> GLsizei -> Ptr GLdouble -> IO ())
+ptr_glUniform3dv = unsafePerformIO $ getCommand "glUniform3dv"
+
+-- glUniform3f -----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glUniform.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml OpenGL 4.x>.
+glUniform3f
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLfloat -- ^ @v0@.
+  -> GLfloat -- ^ @v1@.
+  -> GLfloat -- ^ @v2@.
+  -> m ()
+glUniform3f v1 v2 v3 v4 = liftIO $ dyn854 ptr_glUniform3f v1 v2 v3 v4
+
+{-# NOINLINE ptr_glUniform3f #-}
+ptr_glUniform3f :: FunPtr (GLint -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glUniform3f = unsafePerformIO $ getCommand "glUniform3f"
+
+-- glUniform3fARB --------------------------------------------------------------
+
+-- | This command is an alias for 'glUniform3f'.
+glUniform3fARB
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLfloat -- ^ @v0@.
+  -> GLfloat -- ^ @v1@.
+  -> GLfloat -- ^ @v2@.
+  -> m ()
+glUniform3fARB v1 v2 v3 v4 = liftIO $ dyn854 ptr_glUniform3fARB v1 v2 v3 v4
+
+{-# NOINLINE ptr_glUniform3fARB #-}
+ptr_glUniform3fARB :: FunPtr (GLint -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glUniform3fARB = unsafePerformIO $ getCommand "glUniform3fARB"
+
+-- glUniform3fv ----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glUniform.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml OpenGL 4.x>.
+glUniform3fv
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLfloat -- ^ @value@ pointing to @count*3@ elements of type @GLfloat@.
+  -> m ()
+glUniform3fv v1 v2 v3 = liftIO $ dyn836 ptr_glUniform3fv v1 v2 v3
+
+{-# NOINLINE ptr_glUniform3fv #-}
+ptr_glUniform3fv :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ())
+ptr_glUniform3fv = unsafePerformIO $ getCommand "glUniform3fv"
+
+-- glUniform3fvARB -------------------------------------------------------------
+
+-- | This command is an alias for 'glUniform3fv'.
+glUniform3fvARB
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLfloat -- ^ @value@ pointing to @count*3@ elements of type @GLfloat@.
+  -> m ()
+glUniform3fvARB v1 v2 v3 = liftIO $ dyn836 ptr_glUniform3fvARB v1 v2 v3
+
+{-# NOINLINE ptr_glUniform3fvARB #-}
+ptr_glUniform3fvARB :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ())
+ptr_glUniform3fvARB = unsafePerformIO $ getCommand "glUniform3fvARB"
+
+-- glUniform3i -----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glUniform.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml OpenGL 4.x>.
+glUniform3i
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLint -- ^ @v0@.
+  -> GLint -- ^ @v1@.
+  -> GLint -- ^ @v2@.
+  -> m ()
+glUniform3i v1 v2 v3 v4 = liftIO $ dyn82 ptr_glUniform3i v1 v2 v3 v4
+
+{-# NOINLINE ptr_glUniform3i #-}
+ptr_glUniform3i :: FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())
+ptr_glUniform3i = unsafePerformIO $ getCommand "glUniform3i"
+
+-- glUniform3i64ARB ------------------------------------------------------------
+
+glUniform3i64ARB
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLint64 -- ^ @x@.
+  -> GLint64 -- ^ @y@.
+  -> GLint64 -- ^ @z@.
+  -> m ()
+glUniform3i64ARB v1 v2 v3 v4 = liftIO $ dyn855 ptr_glUniform3i64ARB v1 v2 v3 v4
+
+{-# NOINLINE ptr_glUniform3i64ARB #-}
+ptr_glUniform3i64ARB :: FunPtr (GLint -> GLint64 -> GLint64 -> GLint64 -> IO ())
+ptr_glUniform3i64ARB = unsafePerformIO $ getCommand "glUniform3i64ARB"
+
+-- glUniform3i64NV -------------------------------------------------------------
+
+glUniform3i64NV
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLint64EXT -- ^ @x@.
+  -> GLint64EXT -- ^ @y@.
+  -> GLint64EXT -- ^ @z@.
+  -> m ()
+glUniform3i64NV v1 v2 v3 v4 = liftIO $ dyn856 ptr_glUniform3i64NV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glUniform3i64NV #-}
+ptr_glUniform3i64NV :: FunPtr (GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ())
+ptr_glUniform3i64NV = unsafePerformIO $ getCommand "glUniform3i64NV"
+
+-- glUniform3i64vARB -----------------------------------------------------------
+
+glUniform3i64vARB
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLint64 -- ^ @value@ pointing to @count*3@ elements of type @GLint64@.
+  -> m ()
+glUniform3i64vARB v1 v2 v3 = liftIO $ dyn839 ptr_glUniform3i64vARB v1 v2 v3
+
+{-# NOINLINE ptr_glUniform3i64vARB #-}
+ptr_glUniform3i64vARB :: FunPtr (GLint -> GLsizei -> Ptr GLint64 -> IO ())
+ptr_glUniform3i64vARB = unsafePerformIO $ getCommand "glUniform3i64vARB"
+
+-- glUniform3i64vNV ------------------------------------------------------------
+
+glUniform3i64vNV
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLint64EXT -- ^ @value@ pointing to @count*3@ elements of type @GLint64EXT@.
+  -> m ()
+glUniform3i64vNV v1 v2 v3 = liftIO $ dyn840 ptr_glUniform3i64vNV v1 v2 v3
+
+{-# NOINLINE ptr_glUniform3i64vNV #-}
+ptr_glUniform3i64vNV :: FunPtr (GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
+ptr_glUniform3i64vNV = unsafePerformIO $ getCommand "glUniform3i64vNV"
+
+-- glUniform3iARB --------------------------------------------------------------
+
+-- | This command is an alias for 'glUniform3i'.
+glUniform3iARB
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLint -- ^ @v0@.
+  -> GLint -- ^ @v1@.
+  -> GLint -- ^ @v2@.
+  -> m ()
+glUniform3iARB v1 v2 v3 v4 = liftIO $ dyn82 ptr_glUniform3iARB v1 v2 v3 v4
+
+{-# NOINLINE ptr_glUniform3iARB #-}
+ptr_glUniform3iARB :: FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())
+ptr_glUniform3iARB = unsafePerformIO $ getCommand "glUniform3iARB"
+
+-- glUniform3iv ----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glUniform.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml OpenGL 4.x>.
+glUniform3iv
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLint -- ^ @value@ pointing to @count*3@ elements of type @GLint@.
+  -> m ()
+glUniform3iv v1 v2 v3 = liftIO $ dyn841 ptr_glUniform3iv v1 v2 v3
+
+{-# NOINLINE ptr_glUniform3iv #-}
+ptr_glUniform3iv :: FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ())
+ptr_glUniform3iv = unsafePerformIO $ getCommand "glUniform3iv"
+
+-- glUniform3ivARB -------------------------------------------------------------
+
+-- | This command is an alias for 'glUniform3iv'.
+glUniform3ivARB
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLint -- ^ @value@ pointing to @count*3@ elements of type @GLint@.
+  -> m ()
+glUniform3ivARB v1 v2 v3 = liftIO $ dyn841 ptr_glUniform3ivARB v1 v2 v3
+
+{-# NOINLINE ptr_glUniform3ivARB #-}
+ptr_glUniform3ivARB :: FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ())
+ptr_glUniform3ivARB = unsafePerformIO $ getCommand "glUniform3ivARB"
+
+-- glUniform3ui ----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml OpenGL 4.x>.
+glUniform3ui
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLuint -- ^ @v0@.
+  -> GLuint -- ^ @v1@.
+  -> GLuint -- ^ @v2@.
+  -> m ()
+glUniform3ui v1 v2 v3 v4 = liftIO $ dyn857 ptr_glUniform3ui v1 v2 v3 v4
+
+{-# NOINLINE ptr_glUniform3ui #-}
+ptr_glUniform3ui :: FunPtr (GLint -> GLuint -> GLuint -> GLuint -> IO ())
+ptr_glUniform3ui = unsafePerformIO $ getCommand "glUniform3ui"
+
+-- glUniform3ui64ARB -----------------------------------------------------------
+
+glUniform3ui64ARB
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLuint64 -- ^ @x@.
+  -> GLuint64 -- ^ @y@.
+  -> GLuint64 -- ^ @z@.
+  -> m ()
+glUniform3ui64ARB v1 v2 v3 v4 = liftIO $ dyn858 ptr_glUniform3ui64ARB v1 v2 v3 v4
+
+{-# NOINLINE ptr_glUniform3ui64ARB #-}
+ptr_glUniform3ui64ARB :: FunPtr (GLint -> GLuint64 -> GLuint64 -> GLuint64 -> IO ())
+ptr_glUniform3ui64ARB = unsafePerformIO $ getCommand "glUniform3ui64ARB"
+
+-- glUniform3ui64NV ------------------------------------------------------------
+
+glUniform3ui64NV
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLuint64EXT -- ^ @x@.
+  -> GLuint64EXT -- ^ @y@.
+  -> GLuint64EXT -- ^ @z@.
+  -> m ()
+glUniform3ui64NV v1 v2 v3 v4 = liftIO $ dyn859 ptr_glUniform3ui64NV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glUniform3ui64NV #-}
+ptr_glUniform3ui64NV :: FunPtr (GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ())
+ptr_glUniform3ui64NV = unsafePerformIO $ getCommand "glUniform3ui64NV"
+
+-- glUniform3ui64vARB ----------------------------------------------------------
+
+glUniform3ui64vARB
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLuint64 -- ^ @value@ pointing to @count*3@ elements of type @GLuint64@.
+  -> m ()
+glUniform3ui64vARB v1 v2 v3 = liftIO $ dyn845 ptr_glUniform3ui64vARB v1 v2 v3
+
+{-# NOINLINE ptr_glUniform3ui64vARB #-}
+ptr_glUniform3ui64vARB :: FunPtr (GLint -> GLsizei -> Ptr GLuint64 -> IO ())
+ptr_glUniform3ui64vARB = unsafePerformIO $ getCommand "glUniform3ui64vARB"
+
+-- glUniform3ui64vNV -----------------------------------------------------------
+
+glUniform3ui64vNV
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLuint64EXT -- ^ @value@ pointing to @count*3@ elements of type @GLuint64EXT@.
+  -> m ()
+glUniform3ui64vNV v1 v2 v3 = liftIO $ dyn846 ptr_glUniform3ui64vNV v1 v2 v3
+
+{-# NOINLINE ptr_glUniform3ui64vNV #-}
+ptr_glUniform3ui64vNV :: FunPtr (GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
+ptr_glUniform3ui64vNV = unsafePerformIO $ getCommand "glUniform3ui64vNV"
+
+-- glUniform3uiEXT -------------------------------------------------------------
+
+-- | This command is an alias for 'glUniform3ui'.
+glUniform3uiEXT
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLuint -- ^ @v0@.
+  -> GLuint -- ^ @v1@.
+  -> GLuint -- ^ @v2@.
+  -> m ()
+glUniform3uiEXT v1 v2 v3 v4 = liftIO $ dyn857 ptr_glUniform3uiEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glUniform3uiEXT #-}
+ptr_glUniform3uiEXT :: FunPtr (GLint -> GLuint -> GLuint -> GLuint -> IO ())
+ptr_glUniform3uiEXT = unsafePerformIO $ getCommand "glUniform3uiEXT"
+
+-- glUniform3uiv ---------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml OpenGL 4.x>.
+glUniform3uiv
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLuint -- ^ @value@ pointing to @count*3@ elements of type @GLuint@.
+  -> m ()
+glUniform3uiv v1 v2 v3 = liftIO $ dyn847 ptr_glUniform3uiv v1 v2 v3
+
+{-# NOINLINE ptr_glUniform3uiv #-}
+ptr_glUniform3uiv :: FunPtr (GLint -> GLsizei -> Ptr GLuint -> IO ())
+ptr_glUniform3uiv = unsafePerformIO $ getCommand "glUniform3uiv"
+
+-- glUniform3uivEXT ------------------------------------------------------------
+
+-- | This command is an alias for 'glUniform3uiv'.
+glUniform3uivEXT
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLuint -- ^ @value@ pointing to @count*3@ elements of type @GLuint@.
+  -> m ()
+glUniform3uivEXT v1 v2 v3 = liftIO $ dyn847 ptr_glUniform3uivEXT v1 v2 v3
+
+{-# NOINLINE ptr_glUniform3uivEXT #-}
+ptr_glUniform3uivEXT :: FunPtr (GLint -> GLsizei -> Ptr GLuint -> IO ())
+ptr_glUniform3uivEXT = unsafePerformIO $ getCommand "glUniform3uivEXT"
+
+-- glUniform4d -----------------------------------------------------------------
+
+glUniform4d
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLdouble -- ^ @x@.
+  -> GLdouble -- ^ @y@.
+  -> GLdouble -- ^ @z@.
+  -> GLdouble -- ^ @w@.
+  -> m ()
+glUniform4d v1 v2 v3 v4 v5 = liftIO $ dyn860 ptr_glUniform4d v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glUniform4d #-}
+ptr_glUniform4d :: FunPtr (GLint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+ptr_glUniform4d = unsafePerformIO $ getCommand "glUniform4d"
+
+-- glUniform4dv ----------------------------------------------------------------
+
+glUniform4dv
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLdouble -- ^ @value@ pointing to @count*4@ elements of type @GLdouble@.
+  -> m ()
+glUniform4dv v1 v2 v3 = liftIO $ dyn834 ptr_glUniform4dv v1 v2 v3
+
+{-# NOINLINE ptr_glUniform4dv #-}
+ptr_glUniform4dv :: FunPtr (GLint -> GLsizei -> Ptr GLdouble -> IO ())
+ptr_glUniform4dv = unsafePerformIO $ getCommand "glUniform4dv"
+
+-- glUniform4f -----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glUniform.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml OpenGL 4.x>.
+glUniform4f
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLfloat -- ^ @v0@.
+  -> GLfloat -- ^ @v1@.
+  -> GLfloat -- ^ @v2@.
+  -> GLfloat -- ^ @v3@.
+  -> m ()
+glUniform4f v1 v2 v3 v4 v5 = liftIO $ dyn861 ptr_glUniform4f v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glUniform4f #-}
+ptr_glUniform4f :: FunPtr (GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glUniform4f = unsafePerformIO $ getCommand "glUniform4f"
+
+-- glUniform4fARB --------------------------------------------------------------
+
+-- | This command is an alias for 'glUniform4f'.
+glUniform4fARB
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLfloat -- ^ @v0@.
+  -> GLfloat -- ^ @v1@.
+  -> GLfloat -- ^ @v2@.
+  -> GLfloat -- ^ @v3@.
+  -> m ()
+glUniform4fARB v1 v2 v3 v4 v5 = liftIO $ dyn861 ptr_glUniform4fARB v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glUniform4fARB #-}
+ptr_glUniform4fARB :: FunPtr (GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glUniform4fARB = unsafePerformIO $ getCommand "glUniform4fARB"
+
+-- glUniform4fv ----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glUniform.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml OpenGL 4.x>.
+glUniform4fv
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLfloat -- ^ @value@ pointing to @count*4@ elements of type @GLfloat@.
+  -> m ()
+glUniform4fv v1 v2 v3 = liftIO $ dyn836 ptr_glUniform4fv v1 v2 v3
+
+{-# NOINLINE ptr_glUniform4fv #-}
+ptr_glUniform4fv :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ())
+ptr_glUniform4fv = unsafePerformIO $ getCommand "glUniform4fv"
+
+-- glUniform4fvARB -------------------------------------------------------------
+
+-- | This command is an alias for 'glUniform4fv'.
+glUniform4fvARB
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLfloat -- ^ @value@ pointing to @count*4@ elements of type @GLfloat@.
+  -> m ()
+glUniform4fvARB v1 v2 v3 = liftIO $ dyn836 ptr_glUniform4fvARB v1 v2 v3
+
+{-# NOINLINE ptr_glUniform4fvARB #-}
+ptr_glUniform4fvARB :: FunPtr (GLint -> GLsizei -> Ptr GLfloat -> IO ())
+ptr_glUniform4fvARB = unsafePerformIO $ getCommand "glUniform4fvARB"
+
+-- glUniform4i -----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glUniform.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml OpenGL 4.x>.
+glUniform4i
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLint -- ^ @v0@.
+  -> GLint -- ^ @v1@.
+  -> GLint -- ^ @v2@.
+  -> GLint -- ^ @v3@.
+  -> m ()
+glUniform4i v1 v2 v3 v4 v5 = liftIO $ dyn261 ptr_glUniform4i v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glUniform4i #-}
+ptr_glUniform4i :: FunPtr (GLint -> GLint -> GLint -> GLint -> GLint -> IO ())
+ptr_glUniform4i = unsafePerformIO $ getCommand "glUniform4i"
+
+-- glUniform4i64ARB ------------------------------------------------------------
+
+glUniform4i64ARB
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLint64 -- ^ @x@.
+  -> GLint64 -- ^ @y@.
+  -> GLint64 -- ^ @z@.
+  -> GLint64 -- ^ @w@.
+  -> m ()
+glUniform4i64ARB v1 v2 v3 v4 v5 = liftIO $ dyn862 ptr_glUniform4i64ARB v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glUniform4i64ARB #-}
+ptr_glUniform4i64ARB :: FunPtr (GLint -> GLint64 -> GLint64 -> GLint64 -> GLint64 -> IO ())
+ptr_glUniform4i64ARB = unsafePerformIO $ getCommand "glUniform4i64ARB"
+
+-- glUniform4i64NV -------------------------------------------------------------
+
+glUniform4i64NV
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLint64EXT -- ^ @x@.
+  -> GLint64EXT -- ^ @y@.
+  -> GLint64EXT -- ^ @z@.
+  -> GLint64EXT -- ^ @w@.
+  -> m ()
+glUniform4i64NV v1 v2 v3 v4 v5 = liftIO $ dyn863 ptr_glUniform4i64NV v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glUniform4i64NV #-}
+ptr_glUniform4i64NV :: FunPtr (GLint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ())
+ptr_glUniform4i64NV = unsafePerformIO $ getCommand "glUniform4i64NV"
+
+-- glUniform4i64vARB -----------------------------------------------------------
+
+glUniform4i64vARB
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLint64 -- ^ @value@ pointing to @count*4@ elements of type @GLint64@.
+  -> m ()
+glUniform4i64vARB v1 v2 v3 = liftIO $ dyn839 ptr_glUniform4i64vARB v1 v2 v3
+
+{-# NOINLINE ptr_glUniform4i64vARB #-}
+ptr_glUniform4i64vARB :: FunPtr (GLint -> GLsizei -> Ptr GLint64 -> IO ())
+ptr_glUniform4i64vARB = unsafePerformIO $ getCommand "glUniform4i64vARB"
+
+-- glUniform4i64vNV ------------------------------------------------------------
+
+glUniform4i64vNV
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLint64EXT -- ^ @value@ pointing to @count*4@ elements of type @GLint64EXT@.
+  -> m ()
+glUniform4i64vNV v1 v2 v3 = liftIO $ dyn840 ptr_glUniform4i64vNV v1 v2 v3
+
+{-# NOINLINE ptr_glUniform4i64vNV #-}
+ptr_glUniform4i64vNV :: FunPtr (GLint -> GLsizei -> Ptr GLint64EXT -> IO ())
+ptr_glUniform4i64vNV = unsafePerformIO $ getCommand "glUniform4i64vNV"
+
+-- glUniform4iARB --------------------------------------------------------------
+
+-- | This command is an alias for 'glUniform4i'.
+glUniform4iARB
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLint -- ^ @v0@.
+  -> GLint -- ^ @v1@.
+  -> GLint -- ^ @v2@.
+  -> GLint -- ^ @v3@.
+  -> m ()
+glUniform4iARB v1 v2 v3 v4 v5 = liftIO $ dyn261 ptr_glUniform4iARB v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glUniform4iARB #-}
+ptr_glUniform4iARB :: FunPtr (GLint -> GLint -> GLint -> GLint -> GLint -> IO ())
+ptr_glUniform4iARB = unsafePerformIO $ getCommand "glUniform4iARB"
+
+-- glUniform4iv ----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glUniform.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml OpenGL 4.x>.
+glUniform4iv
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLint -- ^ @value@ pointing to @count*4@ elements of type @GLint@.
+  -> m ()
+glUniform4iv v1 v2 v3 = liftIO $ dyn841 ptr_glUniform4iv v1 v2 v3
+
+{-# NOINLINE ptr_glUniform4iv #-}
+ptr_glUniform4iv :: FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ())
+ptr_glUniform4iv = unsafePerformIO $ getCommand "glUniform4iv"
+
+-- glUniform4ivARB -------------------------------------------------------------
+
+-- | This command is an alias for 'glUniform4iv'.
+glUniform4ivARB
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLint -- ^ @value@ pointing to @count*4@ elements of type @GLint@.
+  -> m ()
+glUniform4ivARB v1 v2 v3 = liftIO $ dyn841 ptr_glUniform4ivARB v1 v2 v3
+
+{-# NOINLINE ptr_glUniform4ivARB #-}
+ptr_glUniform4ivARB :: FunPtr (GLint -> GLsizei -> Ptr GLint -> IO ())
+ptr_glUniform4ivARB = unsafePerformIO $ getCommand "glUniform4ivARB"
+
+-- glUniform4ui ----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml OpenGL 4.x>.
+glUniform4ui
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLuint -- ^ @v0@.
+  -> GLuint -- ^ @v1@.
+  -> GLuint -- ^ @v2@.
+  -> GLuint -- ^ @v3@.
+  -> m ()
+glUniform4ui v1 v2 v3 v4 v5 = liftIO $ dyn864 ptr_glUniform4ui v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glUniform4ui #-}
+ptr_glUniform4ui :: FunPtr (GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+ptr_glUniform4ui = unsafePerformIO $ getCommand "glUniform4ui"
+
+-- glUniform4ui64ARB -----------------------------------------------------------
+
+glUniform4ui64ARB
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLuint64 -- ^ @x@.
+  -> GLuint64 -- ^ @y@.
+  -> GLuint64 -- ^ @z@.
+  -> GLuint64 -- ^ @w@.
+  -> m ()
+glUniform4ui64ARB v1 v2 v3 v4 v5 = liftIO $ dyn865 ptr_glUniform4ui64ARB v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glUniform4ui64ARB #-}
+ptr_glUniform4ui64ARB :: FunPtr (GLint -> GLuint64 -> GLuint64 -> GLuint64 -> GLuint64 -> IO ())
+ptr_glUniform4ui64ARB = unsafePerformIO $ getCommand "glUniform4ui64ARB"
+
+-- glUniform4ui64NV ------------------------------------------------------------
+
+glUniform4ui64NV
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLuint64EXT -- ^ @x@.
+  -> GLuint64EXT -- ^ @y@.
+  -> GLuint64EXT -- ^ @z@.
+  -> GLuint64EXT -- ^ @w@.
+  -> m ()
+glUniform4ui64NV v1 v2 v3 v4 v5 = liftIO $ dyn866 ptr_glUniform4ui64NV v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glUniform4ui64NV #-}
+ptr_glUniform4ui64NV :: FunPtr (GLint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ())
+ptr_glUniform4ui64NV = unsafePerformIO $ getCommand "glUniform4ui64NV"
+
+-- glUniform4ui64vARB ----------------------------------------------------------
+
+glUniform4ui64vARB
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLuint64 -- ^ @value@ pointing to @count*4@ elements of type @GLuint64@.
+  -> m ()
+glUniform4ui64vARB v1 v2 v3 = liftIO $ dyn845 ptr_glUniform4ui64vARB v1 v2 v3
+
+{-# NOINLINE ptr_glUniform4ui64vARB #-}
+ptr_glUniform4ui64vARB :: FunPtr (GLint -> GLsizei -> Ptr GLuint64 -> IO ())
+ptr_glUniform4ui64vARB = unsafePerformIO $ getCommand "glUniform4ui64vARB"
+
+-- glUniform4ui64vNV -----------------------------------------------------------
+
+glUniform4ui64vNV
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLuint64EXT -- ^ @value@ pointing to @count*4@ elements of type @GLuint64EXT@.
+  -> m ()
+glUniform4ui64vNV v1 v2 v3 = liftIO $ dyn846 ptr_glUniform4ui64vNV v1 v2 v3
+
+{-# NOINLINE ptr_glUniform4ui64vNV #-}
+ptr_glUniform4ui64vNV :: FunPtr (GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
+ptr_glUniform4ui64vNV = unsafePerformIO $ getCommand "glUniform4ui64vNV"
+
+-- glUniform4uiEXT -------------------------------------------------------------
+
+-- | This command is an alias for 'glUniform4ui'.
+glUniform4uiEXT
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLuint -- ^ @v0@.
+  -> GLuint -- ^ @v1@.
+  -> GLuint -- ^ @v2@.
+  -> GLuint -- ^ @v3@.
+  -> m ()
+glUniform4uiEXT v1 v2 v3 v4 v5 = liftIO $ dyn864 ptr_glUniform4uiEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glUniform4uiEXT #-}
+ptr_glUniform4uiEXT :: FunPtr (GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+ptr_glUniform4uiEXT = unsafePerformIO $ getCommand "glUniform4uiEXT"
+
+-- glUniform4uiv ---------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml OpenGL 4.x>.
+glUniform4uiv
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLuint -- ^ @value@ pointing to @count*4@ elements of type @GLuint@.
+  -> m ()
+glUniform4uiv v1 v2 v3 = liftIO $ dyn847 ptr_glUniform4uiv v1 v2 v3
+
+{-# NOINLINE ptr_glUniform4uiv #-}
+ptr_glUniform4uiv :: FunPtr (GLint -> GLsizei -> Ptr GLuint -> IO ())
+ptr_glUniform4uiv = unsafePerformIO $ getCommand "glUniform4uiv"
+
+-- glUniform4uivEXT ------------------------------------------------------------
+
+-- | This command is an alias for 'glUniform4uiv'.
+glUniform4uivEXT
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLuint -- ^ @value@ pointing to @count*4@ elements of type @GLuint@.
+  -> m ()
+glUniform4uivEXT v1 v2 v3 = liftIO $ dyn847 ptr_glUniform4uivEXT v1 v2 v3
+
+{-# NOINLINE ptr_glUniform4uivEXT #-}
+ptr_glUniform4uivEXT :: FunPtr (GLint -> GLsizei -> Ptr GLuint -> IO ())
+ptr_glUniform4uivEXT = unsafePerformIO $ getCommand "glUniform4uivEXT"
+
+-- glUniformBlockBinding -------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glUniformBlockBinding.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUniformBlockBinding.xhtml OpenGL 4.x>.
+glUniformBlockBinding
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLuint -- ^ @uniformBlockIndex@.
+  -> GLuint -- ^ @uniformBlockBinding@.
+  -> m ()
+glUniformBlockBinding v1 v2 v3 = liftIO $ dyn109 ptr_glUniformBlockBinding v1 v2 v3
+
+{-# NOINLINE ptr_glUniformBlockBinding #-}
+ptr_glUniformBlockBinding :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
+ptr_glUniformBlockBinding = unsafePerformIO $ getCommand "glUniformBlockBinding"
+
+-- glUniformBufferEXT ----------------------------------------------------------
+
+glUniformBufferEXT
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> GLint -- ^ @location@.
+  -> GLuint -- ^ @buffer@.
+  -> m ()
+glUniformBufferEXT v1 v2 v3 = liftIO $ dyn676 ptr_glUniformBufferEXT v1 v2 v3
+
+{-# NOINLINE ptr_glUniformBufferEXT #-}
+ptr_glUniformBufferEXT :: FunPtr (GLuint -> GLint -> GLuint -> IO ())
+ptr_glUniformBufferEXT = unsafePerformIO $ getCommand "glUniformBufferEXT"
+
+-- glUniformHandleui64ARB ------------------------------------------------------
+
+glUniformHandleui64ARB
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLuint64 -- ^ @value@.
+  -> m ()
+glUniformHandleui64ARB v1 v2 = liftIO $ dyn843 ptr_glUniformHandleui64ARB v1 v2
+
+{-# NOINLINE ptr_glUniformHandleui64ARB #-}
+ptr_glUniformHandleui64ARB :: FunPtr (GLint -> GLuint64 -> IO ())
+ptr_glUniformHandleui64ARB = unsafePerformIO $ getCommand "glUniformHandleui64ARB"
+
+-- glUniformHandleui64IMG ------------------------------------------------------
+
+-- | This command is an alias for 'glUniformHandleui64ARB'.
+glUniformHandleui64IMG
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLuint64 -- ^ @value@.
+  -> m ()
+glUniformHandleui64IMG v1 v2 = liftIO $ dyn843 ptr_glUniformHandleui64IMG v1 v2
+
+{-# NOINLINE ptr_glUniformHandleui64IMG #-}
+ptr_glUniformHandleui64IMG :: FunPtr (GLint -> GLuint64 -> IO ())
+ptr_glUniformHandleui64IMG = unsafePerformIO $ getCommand "glUniformHandleui64IMG"
+
+-- glUniformHandleui64NV -------------------------------------------------------
+
+glUniformHandleui64NV
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLuint64 -- ^ @value@.
+  -> m ()
+glUniformHandleui64NV v1 v2 = liftIO $ dyn843 ptr_glUniformHandleui64NV v1 v2
+
+{-# NOINLINE ptr_glUniformHandleui64NV #-}
+ptr_glUniformHandleui64NV :: FunPtr (GLint -> GLuint64 -> IO ())
+ptr_glUniformHandleui64NV = unsafePerformIO $ getCommand "glUniformHandleui64NV"
+
+-- glUniformHandleui64vARB -----------------------------------------------------
+
+glUniformHandleui64vARB
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLuint64 -- ^ @value@ pointing to @count@ elements of type @GLuint64@.
+  -> m ()
+glUniformHandleui64vARB v1 v2 v3 = liftIO $ dyn845 ptr_glUniformHandleui64vARB v1 v2 v3
+
+{-# NOINLINE ptr_glUniformHandleui64vARB #-}
+ptr_glUniformHandleui64vARB :: FunPtr (GLint -> GLsizei -> Ptr GLuint64 -> IO ())
+ptr_glUniformHandleui64vARB = unsafePerformIO $ getCommand "glUniformHandleui64vARB"
+
+-- glUniformHandleui64vIMG -----------------------------------------------------
+
+-- | This command is an alias for 'glUniformHandleui64vARB'.
+glUniformHandleui64vIMG
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLuint64 -- ^ @value@ pointing to @count@ elements of type @GLuint64@.
+  -> m ()
+glUniformHandleui64vIMG v1 v2 v3 = liftIO $ dyn845 ptr_glUniformHandleui64vIMG v1 v2 v3
+
+{-# NOINLINE ptr_glUniformHandleui64vIMG #-}
+ptr_glUniformHandleui64vIMG :: FunPtr (GLint -> GLsizei -> Ptr GLuint64 -> IO ())
+ptr_glUniformHandleui64vIMG = unsafePerformIO $ getCommand "glUniformHandleui64vIMG"
+
+-- glUniformHandleui64vNV ------------------------------------------------------
+
+glUniformHandleui64vNV
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLuint64 -- ^ @value@ pointing to @count@ elements of type @GLuint64@.
+  -> m ()
+glUniformHandleui64vNV v1 v2 v3 = liftIO $ dyn845 ptr_glUniformHandleui64vNV v1 v2 v3
+
+{-# NOINLINE ptr_glUniformHandleui64vNV #-}
+ptr_glUniformHandleui64vNV :: FunPtr (GLint -> GLsizei -> Ptr GLuint64 -> IO ())
+ptr_glUniformHandleui64vNV = unsafePerformIO $ getCommand "glUniformHandleui64vNV"
+
+-- glUniformMatrix2dv ----------------------------------------------------------
+
+glUniformMatrix2dv
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLdouble -- ^ @value@ pointing to @count*4@ elements of type @GLdouble@.
+  -> m ()
+glUniformMatrix2dv v1 v2 v3 v4 = liftIO $ dyn867 ptr_glUniformMatrix2dv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glUniformMatrix2dv #-}
+ptr_glUniformMatrix2dv :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+ptr_glUniformMatrix2dv = unsafePerformIO $ getCommand "glUniformMatrix2dv"
+
+-- glUniformMatrix2fv ----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glUniform.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml OpenGL 4.x>.
+glUniformMatrix2fv
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLfloat -- ^ @value@ pointing to @count*4@ elements of type @GLfloat@.
+  -> m ()
+glUniformMatrix2fv v1 v2 v3 v4 = liftIO $ dyn868 ptr_glUniformMatrix2fv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glUniformMatrix2fv #-}
+ptr_glUniformMatrix2fv :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+ptr_glUniformMatrix2fv = unsafePerformIO $ getCommand "glUniformMatrix2fv"
+
+-- glUniformMatrix2fvARB -------------------------------------------------------
+
+-- | This command is an alias for 'glUniformMatrix2fv'.
+glUniformMatrix2fvARB
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLfloat -- ^ @value@ pointing to @count*4@ elements of type @GLfloat@.
+  -> m ()
+glUniformMatrix2fvARB v1 v2 v3 v4 = liftIO $ dyn868 ptr_glUniformMatrix2fvARB v1 v2 v3 v4
+
+{-# NOINLINE ptr_glUniformMatrix2fvARB #-}
+ptr_glUniformMatrix2fvARB :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+ptr_glUniformMatrix2fvARB = unsafePerformIO $ getCommand "glUniformMatrix2fvARB"
+
+-- glUniformMatrix2x3dv --------------------------------------------------------
+
+glUniformMatrix2x3dv
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLdouble -- ^ @value@ pointing to @count*6@ elements of type @GLdouble@.
+  -> m ()
+glUniformMatrix2x3dv v1 v2 v3 v4 = liftIO $ dyn867 ptr_glUniformMatrix2x3dv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glUniformMatrix2x3dv #-}
+ptr_glUniformMatrix2x3dv :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+ptr_glUniformMatrix2x3dv = unsafePerformIO $ getCommand "glUniformMatrix2x3dv"
+
+-- glUniformMatrix2x3fv --------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glUniform.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml OpenGL 4.x>.
+glUniformMatrix2x3fv
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLfloat -- ^ @value@ pointing to @count*6@ elements of type @GLfloat@.
+  -> m ()
+glUniformMatrix2x3fv v1 v2 v3 v4 = liftIO $ dyn868 ptr_glUniformMatrix2x3fv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glUniformMatrix2x3fv #-}
+ptr_glUniformMatrix2x3fv :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+ptr_glUniformMatrix2x3fv = unsafePerformIO $ getCommand "glUniformMatrix2x3fv"
+
+-- glUniformMatrix2x3fvNV ------------------------------------------------------
+
+-- | This command is an alias for 'glUniformMatrix2x3fv'.
+glUniformMatrix2x3fvNV
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLfloat -- ^ @value@ pointing to @count*6@ elements of type @GLfloat@.
+  -> m ()
+glUniformMatrix2x3fvNV v1 v2 v3 v4 = liftIO $ dyn868 ptr_glUniformMatrix2x3fvNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glUniformMatrix2x3fvNV #-}
+ptr_glUniformMatrix2x3fvNV :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+ptr_glUniformMatrix2x3fvNV = unsafePerformIO $ getCommand "glUniformMatrix2x3fvNV"
+
+-- glUniformMatrix2x4dv --------------------------------------------------------
+
+glUniformMatrix2x4dv
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLdouble -- ^ @value@ pointing to @count*8@ elements of type @GLdouble@.
+  -> m ()
+glUniformMatrix2x4dv v1 v2 v3 v4 = liftIO $ dyn867 ptr_glUniformMatrix2x4dv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glUniformMatrix2x4dv #-}
+ptr_glUniformMatrix2x4dv :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+ptr_glUniformMatrix2x4dv = unsafePerformIO $ getCommand "glUniformMatrix2x4dv"
+
+-- glUniformMatrix2x4fv --------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glUniform.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml OpenGL 4.x>.
+glUniformMatrix2x4fv
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLfloat -- ^ @value@ pointing to @count*8@ elements of type @GLfloat@.
+  -> m ()
+glUniformMatrix2x4fv v1 v2 v3 v4 = liftIO $ dyn868 ptr_glUniformMatrix2x4fv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glUniformMatrix2x4fv #-}
+ptr_glUniformMatrix2x4fv :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+ptr_glUniformMatrix2x4fv = unsafePerformIO $ getCommand "glUniformMatrix2x4fv"
+
+-- glUniformMatrix2x4fvNV ------------------------------------------------------
+
+-- | This command is an alias for 'glUniformMatrix2x4fv'.
+glUniformMatrix2x4fvNV
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLfloat -- ^ @value@ pointing to @count*8@ elements of type @GLfloat@.
+  -> m ()
+glUniformMatrix2x4fvNV v1 v2 v3 v4 = liftIO $ dyn868 ptr_glUniformMatrix2x4fvNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glUniformMatrix2x4fvNV #-}
+ptr_glUniformMatrix2x4fvNV :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+ptr_glUniformMatrix2x4fvNV = unsafePerformIO $ getCommand "glUniformMatrix2x4fvNV"
+
+-- glUniformMatrix3dv ----------------------------------------------------------
+
+glUniformMatrix3dv
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLdouble -- ^ @value@ pointing to @count*9@ elements of type @GLdouble@.
+  -> m ()
+glUniformMatrix3dv v1 v2 v3 v4 = liftIO $ dyn867 ptr_glUniformMatrix3dv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glUniformMatrix3dv #-}
+ptr_glUniformMatrix3dv :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+ptr_glUniformMatrix3dv = unsafePerformIO $ getCommand "glUniformMatrix3dv"
+
+-- glUniformMatrix3fv ----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glUniform.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml OpenGL 4.x>.
+glUniformMatrix3fv
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLfloat -- ^ @value@ pointing to @count*9@ elements of type @GLfloat@.
+  -> m ()
+glUniformMatrix3fv v1 v2 v3 v4 = liftIO $ dyn868 ptr_glUniformMatrix3fv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glUniformMatrix3fv #-}
+ptr_glUniformMatrix3fv :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+ptr_glUniformMatrix3fv = unsafePerformIO $ getCommand "glUniformMatrix3fv"
+
+-- glUniformMatrix3fvARB -------------------------------------------------------
+
+-- | This command is an alias for 'glUniformMatrix3fv'.
+glUniformMatrix3fvARB
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLfloat -- ^ @value@ pointing to @count*9@ elements of type @GLfloat@.
+  -> m ()
+glUniformMatrix3fvARB v1 v2 v3 v4 = liftIO $ dyn868 ptr_glUniformMatrix3fvARB v1 v2 v3 v4
+
+{-# NOINLINE ptr_glUniformMatrix3fvARB #-}
+ptr_glUniformMatrix3fvARB :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+ptr_glUniformMatrix3fvARB = unsafePerformIO $ getCommand "glUniformMatrix3fvARB"
+
+-- glUniformMatrix3x2dv --------------------------------------------------------
+
+glUniformMatrix3x2dv
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLdouble -- ^ @value@ pointing to @count*6@ elements of type @GLdouble@.
+  -> m ()
+glUniformMatrix3x2dv v1 v2 v3 v4 = liftIO $ dyn867 ptr_glUniformMatrix3x2dv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glUniformMatrix3x2dv #-}
+ptr_glUniformMatrix3x2dv :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+ptr_glUniformMatrix3x2dv = unsafePerformIO $ getCommand "glUniformMatrix3x2dv"
+
+-- glUniformMatrix3x2fv --------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glUniform.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml OpenGL 4.x>.
+glUniformMatrix3x2fv
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLfloat -- ^ @value@ pointing to @count*6@ elements of type @GLfloat@.
+  -> m ()
+glUniformMatrix3x2fv v1 v2 v3 v4 = liftIO $ dyn868 ptr_glUniformMatrix3x2fv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glUniformMatrix3x2fv #-}
+ptr_glUniformMatrix3x2fv :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+ptr_glUniformMatrix3x2fv = unsafePerformIO $ getCommand "glUniformMatrix3x2fv"
+
+-- glUniformMatrix3x2fvNV ------------------------------------------------------
+
+-- | This command is an alias for 'glUniformMatrix3x2fv'.
+glUniformMatrix3x2fvNV
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLfloat -- ^ @value@ pointing to @count*6@ elements of type @GLfloat@.
+  -> m ()
+glUniformMatrix3x2fvNV v1 v2 v3 v4 = liftIO $ dyn868 ptr_glUniformMatrix3x2fvNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glUniformMatrix3x2fvNV #-}
+ptr_glUniformMatrix3x2fvNV :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+ptr_glUniformMatrix3x2fvNV = unsafePerformIO $ getCommand "glUniformMatrix3x2fvNV"
+
+-- glUniformMatrix3x4dv --------------------------------------------------------
+
+glUniformMatrix3x4dv
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLdouble -- ^ @value@ pointing to @count*12@ elements of type @GLdouble@.
+  -> m ()
+glUniformMatrix3x4dv v1 v2 v3 v4 = liftIO $ dyn867 ptr_glUniformMatrix3x4dv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glUniformMatrix3x4dv #-}
+ptr_glUniformMatrix3x4dv :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+ptr_glUniformMatrix3x4dv = unsafePerformIO $ getCommand "glUniformMatrix3x4dv"
+
+-- glUniformMatrix3x4fv --------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glUniform.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml OpenGL 4.x>.
+glUniformMatrix3x4fv
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLfloat -- ^ @value@ pointing to @count*12@ elements of type @GLfloat@.
+  -> m ()
+glUniformMatrix3x4fv v1 v2 v3 v4 = liftIO $ dyn868 ptr_glUniformMatrix3x4fv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glUniformMatrix3x4fv #-}
+ptr_glUniformMatrix3x4fv :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+ptr_glUniformMatrix3x4fv = unsafePerformIO $ getCommand "glUniformMatrix3x4fv"
+
+-- glUniformMatrix3x4fvNV ------------------------------------------------------
+
+-- | This command is an alias for 'glUniformMatrix3x4fv'.
+glUniformMatrix3x4fvNV
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLfloat -- ^ @value@ pointing to @count*12@ elements of type @GLfloat@.
+  -> m ()
+glUniformMatrix3x4fvNV v1 v2 v3 v4 = liftIO $ dyn868 ptr_glUniformMatrix3x4fvNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glUniformMatrix3x4fvNV #-}
+ptr_glUniformMatrix3x4fvNV :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+ptr_glUniformMatrix3x4fvNV = unsafePerformIO $ getCommand "glUniformMatrix3x4fvNV"
+
+-- glUniformMatrix4dv ----------------------------------------------------------
+
+glUniformMatrix4dv
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLdouble -- ^ @value@ pointing to @count*16@ elements of type @GLdouble@.
+  -> m ()
+glUniformMatrix4dv v1 v2 v3 v4 = liftIO $ dyn867 ptr_glUniformMatrix4dv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glUniformMatrix4dv #-}
+ptr_glUniformMatrix4dv :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+ptr_glUniformMatrix4dv = unsafePerformIO $ getCommand "glUniformMatrix4dv"
+
+-- glUniformMatrix4fv ----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glUniform.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml OpenGL 4.x>.
+glUniformMatrix4fv
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLfloat -- ^ @value@ pointing to @count*16@ elements of type @GLfloat@.
+  -> m ()
+glUniformMatrix4fv v1 v2 v3 v4 = liftIO $ dyn868 ptr_glUniformMatrix4fv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glUniformMatrix4fv #-}
+ptr_glUniformMatrix4fv :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+ptr_glUniformMatrix4fv = unsafePerformIO $ getCommand "glUniformMatrix4fv"
+
+-- glUniformMatrix4fvARB -------------------------------------------------------
+
+-- | This command is an alias for 'glUniformMatrix4fv'.
+glUniformMatrix4fvARB
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLfloat -- ^ @value@ pointing to @count*16@ elements of type @GLfloat@.
+  -> m ()
+glUniformMatrix4fvARB v1 v2 v3 v4 = liftIO $ dyn868 ptr_glUniformMatrix4fvARB v1 v2 v3 v4
+
+{-# NOINLINE ptr_glUniformMatrix4fvARB #-}
+ptr_glUniformMatrix4fvARB :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+ptr_glUniformMatrix4fvARB = unsafePerformIO $ getCommand "glUniformMatrix4fvARB"
+
+-- glUniformMatrix4x2dv --------------------------------------------------------
+
+glUniformMatrix4x2dv
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLdouble -- ^ @value@ pointing to @count*8@ elements of type @GLdouble@.
+  -> m ()
+glUniformMatrix4x2dv v1 v2 v3 v4 = liftIO $ dyn867 ptr_glUniformMatrix4x2dv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glUniformMatrix4x2dv #-}
+ptr_glUniformMatrix4x2dv :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+ptr_glUniformMatrix4x2dv = unsafePerformIO $ getCommand "glUniformMatrix4x2dv"
+
+-- glUniformMatrix4x2fv --------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glUniform.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml OpenGL 4.x>.
+glUniformMatrix4x2fv
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLfloat -- ^ @value@ pointing to @count*8@ elements of type @GLfloat@.
+  -> m ()
+glUniformMatrix4x2fv v1 v2 v3 v4 = liftIO $ dyn868 ptr_glUniformMatrix4x2fv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glUniformMatrix4x2fv #-}
+ptr_glUniformMatrix4x2fv :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+ptr_glUniformMatrix4x2fv = unsafePerformIO $ getCommand "glUniformMatrix4x2fv"
+
+-- glUniformMatrix4x2fvNV ------------------------------------------------------
+
+-- | This command is an alias for 'glUniformMatrix4x2fv'.
+glUniformMatrix4x2fvNV
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLfloat -- ^ @value@ pointing to @count*8@ elements of type @GLfloat@.
+  -> m ()
+glUniformMatrix4x2fvNV v1 v2 v3 v4 = liftIO $ dyn868 ptr_glUniformMatrix4x2fvNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glUniformMatrix4x2fvNV #-}
+ptr_glUniformMatrix4x2fvNV :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+ptr_glUniformMatrix4x2fvNV = unsafePerformIO $ getCommand "glUniformMatrix4x2fvNV"
+
+-- glUniformMatrix4x3dv --------------------------------------------------------
+
+glUniformMatrix4x3dv
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLdouble -- ^ @value@ pointing to @count*12@ elements of type @GLdouble@.
+  -> m ()
+glUniformMatrix4x3dv v1 v2 v3 v4 = liftIO $ dyn867 ptr_glUniformMatrix4x3dv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glUniformMatrix4x3dv #-}
+ptr_glUniformMatrix4x3dv :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLdouble -> IO ())
+ptr_glUniformMatrix4x3dv = unsafePerformIO $ getCommand "glUniformMatrix4x3dv"
+
+-- glUniformMatrix4x3fv --------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glUniform.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glUniform.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUniform.xhtml OpenGL 4.x>.
+glUniformMatrix4x3fv
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLfloat -- ^ @value@ pointing to @count*12@ elements of type @GLfloat@.
+  -> m ()
+glUniformMatrix4x3fv v1 v2 v3 v4 = liftIO $ dyn868 ptr_glUniformMatrix4x3fv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glUniformMatrix4x3fv #-}
+ptr_glUniformMatrix4x3fv :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+ptr_glUniformMatrix4x3fv = unsafePerformIO $ getCommand "glUniformMatrix4x3fv"
+
+-- glUniformMatrix4x3fvNV ------------------------------------------------------
+
+-- | This command is an alias for 'glUniformMatrix4x3fv'.
+glUniformMatrix4x3fvNV
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> GLboolean -- ^ @transpose@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLfloat -- ^ @value@ pointing to @count*12@ elements of type @GLfloat@.
+  -> m ()
+glUniformMatrix4x3fvNV v1 v2 v3 v4 = liftIO $ dyn868 ptr_glUniformMatrix4x3fvNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glUniformMatrix4x3fvNV #-}
+ptr_glUniformMatrix4x3fvNV :: FunPtr (GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
+ptr_glUniformMatrix4x3fvNV = unsafePerformIO $ getCommand "glUniformMatrix4x3fvNV"
+
+-- glUniformSubroutinesuiv -----------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glUniformSubroutines.xhtml OpenGL 4.x>.
+glUniformSubroutinesuiv
+  :: MonadIO m
+  => GLenum -- ^ @shadertype@ of type [ShaderType](Graphics-GL-Groups.html#ShaderType).
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLuint -- ^ @indices@ pointing to @count@ elements of type @GLuint@.
+  -> m ()
+glUniformSubroutinesuiv v1 v2 v3 = liftIO $ dyn204 ptr_glUniformSubroutinesuiv v1 v2 v3
+
+{-# NOINLINE ptr_glUniformSubroutinesuiv #-}
+ptr_glUniformSubroutinesuiv :: FunPtr (GLenum -> GLsizei -> Ptr GLuint -> IO ())
+ptr_glUniformSubroutinesuiv = unsafePerformIO $ getCommand "glUniformSubroutinesuiv"
+
+-- glUniformui64NV -------------------------------------------------------------
+
+glUniformui64NV
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLuint64EXT -- ^ @value@.
+  -> m ()
+glUniformui64NV v1 v2 = liftIO $ dyn844 ptr_glUniformui64NV v1 v2
+
+{-# NOINLINE ptr_glUniformui64NV #-}
+ptr_glUniformui64NV :: FunPtr (GLint -> GLuint64EXT -> IO ())
+ptr_glUniformui64NV = unsafePerformIO $ getCommand "glUniformui64NV"
+
+-- glUniformui64vNV ------------------------------------------------------------
+
+glUniformui64vNV
+  :: MonadIO m
+  => GLint -- ^ @location@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLuint64EXT -- ^ @value@ pointing to @count*1@ elements of type @GLuint64EXT@.
+  -> m ()
+glUniformui64vNV v1 v2 v3 = liftIO $ dyn846 ptr_glUniformui64vNV v1 v2 v3
+
+{-# NOINLINE ptr_glUniformui64vNV #-}
+ptr_glUniformui64vNV :: FunPtr (GLint -> GLsizei -> Ptr GLuint64EXT -> IO ())
+ptr_glUniformui64vNV = unsafePerformIO $ getCommand "glUniformui64vNV"
+
+-- glUnlockArraysEXT -----------------------------------------------------------
+
+glUnlockArraysEXT
+  :: MonadIO m
+  => m ()
+glUnlockArraysEXT = liftIO $ dyn11 ptr_glUnlockArraysEXT
+
+{-# NOINLINE ptr_glUnlockArraysEXT #-}
+ptr_glUnlockArraysEXT :: FunPtr (IO ())
+ptr_glUnlockArraysEXT = unsafePerformIO $ getCommand "glUnlockArraysEXT"
+
+-- glUnmapBuffer ---------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glMapBuffer.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glMapBuffer.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUnmapBuffer.xhtml OpenGL 4.x>.
+glUnmapBuffer
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glUnmapBuffer v1 = liftIO $ dyn501 ptr_glUnmapBuffer v1
+
+{-# NOINLINE ptr_glUnmapBuffer #-}
+ptr_glUnmapBuffer :: FunPtr (GLenum -> IO GLboolean)
+ptr_glUnmapBuffer = unsafePerformIO $ getCommand "glUnmapBuffer"
+
+-- glUnmapBufferARB ------------------------------------------------------------
+
+-- | This command is an alias for 'glUnmapBuffer'.
+glUnmapBufferARB
+  :: MonadIO m
+  => GLenum -- ^ @target@ of type [BufferTargetARB](Graphics-GL-Groups.html#BufferTargetARB).
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glUnmapBufferARB v1 = liftIO $ dyn501 ptr_glUnmapBufferARB v1
+
+{-# NOINLINE ptr_glUnmapBufferARB #-}
+ptr_glUnmapBufferARB :: FunPtr (GLenum -> IO GLboolean)
+ptr_glUnmapBufferARB = unsafePerformIO $ getCommand "glUnmapBufferARB"
+
+-- glUnmapBufferOES ------------------------------------------------------------
+
+-- | This command is an alias for 'glUnmapBuffer'.
+glUnmapBufferOES
+  :: MonadIO m
+  => GLenum -- ^ @target@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glUnmapBufferOES v1 = liftIO $ dyn501 ptr_glUnmapBufferOES v1
+
+{-# NOINLINE ptr_glUnmapBufferOES #-}
+ptr_glUnmapBufferOES :: FunPtr (GLenum -> IO GLboolean)
+ptr_glUnmapBufferOES = unsafePerformIO $ getCommand "glUnmapBufferOES"
+
+-- glUnmapNamedBuffer ----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glUnmapBuffer.xhtml OpenGL 4.x>.
+glUnmapNamedBuffer
+  :: MonadIO m
+  => GLuint -- ^ @buffer@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glUnmapNamedBuffer v1 = liftIO $ dyn284 ptr_glUnmapNamedBuffer v1
+
+{-# NOINLINE ptr_glUnmapNamedBuffer #-}
+ptr_glUnmapNamedBuffer :: FunPtr (GLuint -> IO GLboolean)
+ptr_glUnmapNamedBuffer = unsafePerformIO $ getCommand "glUnmapNamedBuffer"
+
+-- glUnmapNamedBufferEXT -------------------------------------------------------
+
+glUnmapNamedBufferEXT
+  :: MonadIO m
+  => GLuint -- ^ @buffer@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glUnmapNamedBufferEXT v1 = liftIO $ dyn284 ptr_glUnmapNamedBufferEXT v1
+
+{-# NOINLINE ptr_glUnmapNamedBufferEXT #-}
+ptr_glUnmapNamedBufferEXT :: FunPtr (GLuint -> IO GLboolean)
+ptr_glUnmapNamedBufferEXT = unsafePerformIO $ getCommand "glUnmapNamedBufferEXT"
+
+-- glUnmapObjectBufferATI ------------------------------------------------------
+
+glUnmapObjectBufferATI
+  :: MonadIO m
+  => GLuint -- ^ @buffer@.
+  -> m ()
+glUnmapObjectBufferATI v1 = liftIO $ dyn3 ptr_glUnmapObjectBufferATI v1
+
+{-# NOINLINE ptr_glUnmapObjectBufferATI #-}
+ptr_glUnmapObjectBufferATI :: FunPtr (GLuint -> IO ())
+ptr_glUnmapObjectBufferATI = unsafePerformIO $ getCommand "glUnmapObjectBufferATI"
+
+-- glUnmapTexture2DINTEL -------------------------------------------------------
+
+glUnmapTexture2DINTEL
+  :: MonadIO m
+  => GLuint -- ^ @texture@.
+  -> GLint -- ^ @level@.
+  -> m ()
+glUnmapTexture2DINTEL v1 v2 = liftIO $ dyn499 ptr_glUnmapTexture2DINTEL v1 v2
+
+{-# NOINLINE ptr_glUnmapTexture2DINTEL #-}
+ptr_glUnmapTexture2DINTEL :: FunPtr (GLuint -> GLint -> IO ())
+ptr_glUnmapTexture2DINTEL = unsafePerformIO $ getCommand "glUnmapTexture2DINTEL"
+
diff --git a/src/Graphics/GL/Functions/F29.hs b/src/Graphics/GL/Functions/F29.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Functions/F29.hs
@@ -0,0 +1,1541 @@
+{-# OPTIONS_HADDOCK hide #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Functions.F29
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- Raw functions from the
+-- <http://www.opengl.org/registry/ OpenGL registry>.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Functions.F29 (
+  glUpdateObjectBufferATI,
+  glUploadGpuMaskNVX,
+  glUseProgram,
+  glUseProgramObjectARB,
+  glUseProgramStages,
+  glUseProgramStagesEXT,
+  glUseShaderProgramEXT,
+  glVDPAUFiniNV,
+  glVDPAUGetSurfaceivNV,
+  glVDPAUInitNV,
+  glVDPAUIsSurfaceNV,
+  glVDPAUMapSurfacesNV,
+  glVDPAURegisterOutputSurfaceNV,
+  glVDPAURegisterVideoSurfaceNV,
+  glVDPAURegisterVideoSurfaceWithPictureStructureNV,
+  glVDPAUSurfaceAccessNV,
+  glVDPAUUnmapSurfacesNV,
+  glVDPAUUnregisterSurfaceNV,
+  glValidateProgram,
+  glValidateProgramARB,
+  glValidateProgramPipeline,
+  glValidateProgramPipelineEXT,
+  glVariantArrayObjectATI,
+  glVariantPointerEXT,
+  glVariantbvEXT,
+  glVariantdvEXT,
+  glVariantfvEXT,
+  glVariantivEXT,
+  glVariantsvEXT,
+  glVariantubvEXT,
+  glVariantuivEXT,
+  glVariantusvEXT,
+  glVertex2bOES,
+  glVertex2bvOES,
+  glVertex2d,
+  glVertex2dv,
+  glVertex2f,
+  glVertex2fv,
+  glVertex2hNV,
+  glVertex2hvNV,
+  glVertex2i,
+  glVertex2iv,
+  glVertex2s,
+  glVertex2sv,
+  glVertex2xOES,
+  glVertex2xvOES,
+  glVertex3bOES,
+  glVertex3bvOES,
+  glVertex3d,
+  glVertex3dv,
+  glVertex3f,
+  glVertex3fv,
+  glVertex3hNV,
+  glVertex3hvNV,
+  glVertex3i,
+  glVertex3iv,
+  glVertex3s,
+  glVertex3sv,
+  glVertex3xOES,
+  glVertex3xvOES,
+  glVertex4bOES,
+  glVertex4bvOES,
+  glVertex4d,
+  glVertex4dv,
+  glVertex4f,
+  glVertex4fv,
+  glVertex4hNV,
+  glVertex4hvNV,
+  glVertex4i,
+  glVertex4iv,
+  glVertex4s,
+  glVertex4sv,
+  glVertex4xOES,
+  glVertex4xvOES,
+  glVertexArrayAttribBinding,
+  glVertexArrayAttribFormat,
+  glVertexArrayAttribIFormat,
+  glVertexArrayAttribLFormat,
+  glVertexArrayBindVertexBufferEXT,
+  glVertexArrayBindingDivisor,
+  glVertexArrayColorOffsetEXT,
+  glVertexArrayEdgeFlagOffsetEXT,
+  glVertexArrayElementBuffer,
+  glVertexArrayFogCoordOffsetEXT,
+  glVertexArrayIndexOffsetEXT,
+  glVertexArrayMultiTexCoordOffsetEXT,
+  glVertexArrayNormalOffsetEXT,
+  glVertexArrayParameteriAPPLE,
+  glVertexArrayRangeAPPLE,
+  glVertexArrayRangeNV,
+  glVertexArraySecondaryColorOffsetEXT,
+  glVertexArrayTexCoordOffsetEXT,
+  glVertexArrayVertexAttribBindingEXT,
+  glVertexArrayVertexAttribDivisorEXT,
+  glVertexArrayVertexAttribFormatEXT,
+  glVertexArrayVertexAttribIFormatEXT,
+  glVertexArrayVertexAttribIOffsetEXT,
+  glVertexArrayVertexAttribLFormatEXT,
+  glVertexArrayVertexAttribLOffsetEXT,
+  glVertexArrayVertexAttribOffsetEXT
+) where
+
+import Control.Monad.IO.Class ( MonadIO(..) )
+import Foreign.Ptr
+import Graphics.GL.Foreign
+import Graphics.GL.Types
+import System.IO.Unsafe ( unsafePerformIO )
+
+-- glUpdateObjectBufferATI -----------------------------------------------------
+
+glUpdateObjectBufferATI
+  :: MonadIO m
+  => GLuint -- ^ @buffer@.
+  -> GLuint -- ^ @offset@.
+  -> GLsizei -- ^ @size@.
+  -> Ptr a -- ^ @pointer@ pointing to @size@ elements of type @a@.
+  -> GLenum -- ^ @preserve@ of type [PreserveModeATI](Graphics-GL-Groups.html#PreserveModeATI).
+  -> m ()
+glUpdateObjectBufferATI v1 v2 v3 v4 v5 = liftIO $ dyn869 ptr_glUpdateObjectBufferATI v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glUpdateObjectBufferATI #-}
+ptr_glUpdateObjectBufferATI :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr a -> GLenum -> IO ())
+ptr_glUpdateObjectBufferATI = unsafePerformIO $ getCommand "glUpdateObjectBufferATI"
+
+-- glUploadGpuMaskNVX ----------------------------------------------------------
+
+glUploadGpuMaskNVX
+  :: MonadIO m
+  => GLbitfield -- ^ @mask@.
+  -> m ()
+glUploadGpuMaskNVX v1 = liftIO $ dyn75 ptr_glUploadGpuMaskNVX v1
+
+{-# NOINLINE ptr_glUploadGpuMaskNVX #-}
+ptr_glUploadGpuMaskNVX :: FunPtr (GLbitfield -> IO ())
+ptr_glUploadGpuMaskNVX = unsafePerformIO $ getCommand "glUploadGpuMaskNVX"
+
+-- glUseProgram ----------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glUseProgram.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glUseProgram.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glUseProgram.xhtml OpenGL 4.x>.
+glUseProgram
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> m ()
+glUseProgram v1 = liftIO $ dyn3 ptr_glUseProgram v1
+
+{-# NOINLINE ptr_glUseProgram #-}
+ptr_glUseProgram :: FunPtr (GLuint -> IO ())
+ptr_glUseProgram = unsafePerformIO $ getCommand "glUseProgram"
+
+-- glUseProgramObjectARB -------------------------------------------------------
+
+-- | This command is an alias for 'glUseProgram'.
+glUseProgramObjectARB
+  :: MonadIO m
+  => GLhandleARB -- ^ @programObj@ of type @handleARB@.
+  -> m ()
+glUseProgramObjectARB v1 = liftIO $ dyn144 ptr_glUseProgramObjectARB v1
+
+{-# NOINLINE ptr_glUseProgramObjectARB #-}
+ptr_glUseProgramObjectARB :: FunPtr (GLhandleARB -> IO ())
+ptr_glUseProgramObjectARB = unsafePerformIO $ getCommand "glUseProgramObjectARB"
+
+-- glUseProgramStages ----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glUseProgramStages.xhtml OpenGL 4.x>.
+glUseProgramStages
+  :: MonadIO m
+  => GLuint -- ^ @pipeline@.
+  -> GLbitfield -- ^ @stages@ of type [UseProgramStageMask](Graphics-GL-Groups.html#UseProgramStageMask).
+  -> GLuint -- ^ @program@.
+  -> m ()
+glUseProgramStages v1 v2 v3 = liftIO $ dyn870 ptr_glUseProgramStages v1 v2 v3
+
+{-# NOINLINE ptr_glUseProgramStages #-}
+ptr_glUseProgramStages :: FunPtr (GLuint -> GLbitfield -> GLuint -> IO ())
+ptr_glUseProgramStages = unsafePerformIO $ getCommand "glUseProgramStages"
+
+-- glUseProgramStagesEXT -------------------------------------------------------
+
+glUseProgramStagesEXT
+  :: MonadIO m
+  => GLuint -- ^ @pipeline@.
+  -> GLbitfield -- ^ @stages@ of type [UseProgramStageMask](Graphics-GL-Groups.html#UseProgramStageMask).
+  -> GLuint -- ^ @program@.
+  -> m ()
+glUseProgramStagesEXT v1 v2 v3 = liftIO $ dyn870 ptr_glUseProgramStagesEXT v1 v2 v3
+
+{-# NOINLINE ptr_glUseProgramStagesEXT #-}
+ptr_glUseProgramStagesEXT :: FunPtr (GLuint -> GLbitfield -> GLuint -> IO ())
+ptr_glUseProgramStagesEXT = unsafePerformIO $ getCommand "glUseProgramStagesEXT"
+
+-- glUseShaderProgramEXT -------------------------------------------------------
+
+glUseShaderProgramEXT
+  :: MonadIO m
+  => GLenum -- ^ @type@.
+  -> GLuint -- ^ @program@.
+  -> m ()
+glUseShaderProgramEXT v1 v2 = liftIO $ dyn19 ptr_glUseShaderProgramEXT v1 v2
+
+{-# NOINLINE ptr_glUseShaderProgramEXT #-}
+ptr_glUseShaderProgramEXT :: FunPtr (GLenum -> GLuint -> IO ())
+ptr_glUseShaderProgramEXT = unsafePerformIO $ getCommand "glUseShaderProgramEXT"
+
+-- glVDPAUFiniNV ---------------------------------------------------------------
+
+glVDPAUFiniNV
+  :: MonadIO m
+  => m ()
+glVDPAUFiniNV = liftIO $ dyn11 ptr_glVDPAUFiniNV
+
+{-# NOINLINE ptr_glVDPAUFiniNV #-}
+ptr_glVDPAUFiniNV :: FunPtr (IO ())
+ptr_glVDPAUFiniNV = unsafePerformIO $ getCommand "glVDPAUFiniNV"
+
+-- glVDPAUGetSurfaceivNV -------------------------------------------------------
+
+glVDPAUGetSurfaceivNV
+  :: MonadIO m
+  => GLvdpauSurfaceNV -- ^ @surface@ of type @vdpauSurfaceNV@.
+  -> GLenum -- ^ @pname@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLsizei -- ^ @length@.
+  -> Ptr GLint -- ^ @values@ pointing to @count@ elements of type @GLint@.
+  -> m ()
+glVDPAUGetSurfaceivNV v1 v2 v3 v4 v5 = liftIO $ dyn871 ptr_glVDPAUGetSurfaceivNV v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glVDPAUGetSurfaceivNV #-}
+ptr_glVDPAUGetSurfaceivNV :: FunPtr (GLvdpauSurfaceNV -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> IO ())
+ptr_glVDPAUGetSurfaceivNV = unsafePerformIO $ getCommand "glVDPAUGetSurfaceivNV"
+
+-- glVDPAUInitNV ---------------------------------------------------------------
+
+glVDPAUInitNV
+  :: MonadIO m
+  => Ptr a -- ^ @vdpDevice@.
+  -> Ptr b -- ^ @getProcAddress@.
+  -> m ()
+glVDPAUInitNV v1 v2 = liftIO $ dyn872 ptr_glVDPAUInitNV v1 v2
+
+{-# NOINLINE ptr_glVDPAUInitNV #-}
+ptr_glVDPAUInitNV :: FunPtr (Ptr a -> Ptr b -> IO ())
+ptr_glVDPAUInitNV = unsafePerformIO $ getCommand "glVDPAUInitNV"
+
+-- glVDPAUIsSurfaceNV ----------------------------------------------------------
+
+glVDPAUIsSurfaceNV
+  :: MonadIO m
+  => GLvdpauSurfaceNV -- ^ @surface@ of type @vdpauSurfaceNV@.
+  -> m GLboolean -- ^ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+glVDPAUIsSurfaceNV v1 = liftIO $ dyn873 ptr_glVDPAUIsSurfaceNV v1
+
+{-# NOINLINE ptr_glVDPAUIsSurfaceNV #-}
+ptr_glVDPAUIsSurfaceNV :: FunPtr (GLvdpauSurfaceNV -> IO GLboolean)
+ptr_glVDPAUIsSurfaceNV = unsafePerformIO $ getCommand "glVDPAUIsSurfaceNV"
+
+-- glVDPAUMapSurfacesNV --------------------------------------------------------
+
+glVDPAUMapSurfacesNV
+  :: MonadIO m
+  => GLsizei -- ^ @numSurfaces@.
+  -> Ptr GLvdpauSurfaceNV -- ^ @surfaces@ pointing to @numSurfaces@ elements of type @vdpauSurfaceNV@.
+  -> m ()
+glVDPAUMapSurfacesNV v1 v2 = liftIO $ dyn874 ptr_glVDPAUMapSurfacesNV v1 v2
+
+{-# NOINLINE ptr_glVDPAUMapSurfacesNV #-}
+ptr_glVDPAUMapSurfacesNV :: FunPtr (GLsizei -> Ptr GLvdpauSurfaceNV -> IO ())
+ptr_glVDPAUMapSurfacesNV = unsafePerformIO $ getCommand "glVDPAUMapSurfacesNV"
+
+-- glVDPAURegisterOutputSurfaceNV ----------------------------------------------
+
+glVDPAURegisterOutputSurfaceNV
+  :: MonadIO m
+  => Ptr a -- ^ @vdpSurface@.
+  -> GLenum -- ^ @target@.
+  -> GLsizei -- ^ @numTextureNames@.
+  -> Ptr GLuint -- ^ @textureNames@ pointing to @numTextureNames@ elements of type @GLuint@.
+  -> m GLvdpauSurfaceNV -- ^ of type @vdpauSurfaceNV@.
+glVDPAURegisterOutputSurfaceNV v1 v2 v3 v4 = liftIO $ dyn875 ptr_glVDPAURegisterOutputSurfaceNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glVDPAURegisterOutputSurfaceNV #-}
+ptr_glVDPAURegisterOutputSurfaceNV :: FunPtr (Ptr a -> GLenum -> GLsizei -> Ptr GLuint -> IO GLvdpauSurfaceNV)
+ptr_glVDPAURegisterOutputSurfaceNV = unsafePerformIO $ getCommand "glVDPAURegisterOutputSurfaceNV"
+
+-- glVDPAURegisterVideoSurfaceNV -----------------------------------------------
+
+glVDPAURegisterVideoSurfaceNV
+  :: MonadIO m
+  => Ptr a -- ^ @vdpSurface@.
+  -> GLenum -- ^ @target@.
+  -> GLsizei -- ^ @numTextureNames@.
+  -> Ptr GLuint -- ^ @textureNames@ pointing to @numTextureNames@ elements of type @GLuint@.
+  -> m GLvdpauSurfaceNV -- ^ of type @vdpauSurfaceNV@.
+glVDPAURegisterVideoSurfaceNV v1 v2 v3 v4 = liftIO $ dyn875 ptr_glVDPAURegisterVideoSurfaceNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glVDPAURegisterVideoSurfaceNV #-}
+ptr_glVDPAURegisterVideoSurfaceNV :: FunPtr (Ptr a -> GLenum -> GLsizei -> Ptr GLuint -> IO GLvdpauSurfaceNV)
+ptr_glVDPAURegisterVideoSurfaceNV = unsafePerformIO $ getCommand "glVDPAURegisterVideoSurfaceNV"
+
+-- glVDPAURegisterVideoSurfaceWithPictureStructureNV ---------------------------
+
+glVDPAURegisterVideoSurfaceWithPictureStructureNV
+  :: MonadIO m
+  => Ptr a -- ^ @vdpSurface@.
+  -> GLenum -- ^ @target@.
+  -> GLsizei -- ^ @numTextureNames@.
+  -> Ptr GLuint -- ^ @textureNames@ pointing to @numTextureNames@ elements of type @GLuint@.
+  -> GLboolean -- ^ @isFrameStructure@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> m GLvdpauSurfaceNV -- ^ of type @vdpauSurfaceNV@.
+glVDPAURegisterVideoSurfaceWithPictureStructureNV v1 v2 v3 v4 v5 = liftIO $ dyn876 ptr_glVDPAURegisterVideoSurfaceWithPictureStructureNV v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glVDPAURegisterVideoSurfaceWithPictureStructureNV #-}
+ptr_glVDPAURegisterVideoSurfaceWithPictureStructureNV :: FunPtr (Ptr a -> GLenum -> GLsizei -> Ptr GLuint -> GLboolean -> IO GLvdpauSurfaceNV)
+ptr_glVDPAURegisterVideoSurfaceWithPictureStructureNV = unsafePerformIO $ getCommand "glVDPAURegisterVideoSurfaceWithPictureStructureNV"
+
+-- glVDPAUSurfaceAccessNV ------------------------------------------------------
+
+glVDPAUSurfaceAccessNV
+  :: MonadIO m
+  => GLvdpauSurfaceNV -- ^ @surface@ of type @vdpauSurfaceNV@.
+  -> GLenum -- ^ @access@.
+  -> m ()
+glVDPAUSurfaceAccessNV v1 v2 = liftIO $ dyn877 ptr_glVDPAUSurfaceAccessNV v1 v2
+
+{-# NOINLINE ptr_glVDPAUSurfaceAccessNV #-}
+ptr_glVDPAUSurfaceAccessNV :: FunPtr (GLvdpauSurfaceNV -> GLenum -> IO ())
+ptr_glVDPAUSurfaceAccessNV = unsafePerformIO $ getCommand "glVDPAUSurfaceAccessNV"
+
+-- glVDPAUUnmapSurfacesNV ------------------------------------------------------
+
+glVDPAUUnmapSurfacesNV
+  :: MonadIO m
+  => GLsizei -- ^ @numSurface@.
+  -> Ptr GLvdpauSurfaceNV -- ^ @surfaces@ pointing to @numSurface@ elements of type @vdpauSurfaceNV@.
+  -> m ()
+glVDPAUUnmapSurfacesNV v1 v2 = liftIO $ dyn874 ptr_glVDPAUUnmapSurfacesNV v1 v2
+
+{-# NOINLINE ptr_glVDPAUUnmapSurfacesNV #-}
+ptr_glVDPAUUnmapSurfacesNV :: FunPtr (GLsizei -> Ptr GLvdpauSurfaceNV -> IO ())
+ptr_glVDPAUUnmapSurfacesNV = unsafePerformIO $ getCommand "glVDPAUUnmapSurfacesNV"
+
+-- glVDPAUUnregisterSurfaceNV --------------------------------------------------
+
+glVDPAUUnregisterSurfaceNV
+  :: MonadIO m
+  => GLvdpauSurfaceNV -- ^ @surface@ of type @vdpauSurfaceNV@.
+  -> m ()
+glVDPAUUnregisterSurfaceNV v1 = liftIO $ dyn878 ptr_glVDPAUUnregisterSurfaceNV v1
+
+{-# NOINLINE ptr_glVDPAUUnregisterSurfaceNV #-}
+ptr_glVDPAUUnregisterSurfaceNV :: FunPtr (GLvdpauSurfaceNV -> IO ())
+ptr_glVDPAUUnregisterSurfaceNV = unsafePerformIO $ getCommand "glVDPAUUnregisterSurfaceNV"
+
+-- glValidateProgram -----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glValidateProgram.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glValidateProgram.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glValidateProgram.xhtml OpenGL 4.x>.
+glValidateProgram
+  :: MonadIO m
+  => GLuint -- ^ @program@.
+  -> m ()
+glValidateProgram v1 = liftIO $ dyn3 ptr_glValidateProgram v1
+
+{-# NOINLINE ptr_glValidateProgram #-}
+ptr_glValidateProgram :: FunPtr (GLuint -> IO ())
+ptr_glValidateProgram = unsafePerformIO $ getCommand "glValidateProgram"
+
+-- glValidateProgramARB --------------------------------------------------------
+
+-- | This command is an alias for 'glValidateProgram'.
+glValidateProgramARB
+  :: MonadIO m
+  => GLhandleARB -- ^ @programObj@ of type @handleARB@.
+  -> m ()
+glValidateProgramARB v1 = liftIO $ dyn144 ptr_glValidateProgramARB v1
+
+{-# NOINLINE ptr_glValidateProgramARB #-}
+ptr_glValidateProgramARB :: FunPtr (GLhandleARB -> IO ())
+ptr_glValidateProgramARB = unsafePerformIO $ getCommand "glValidateProgramARB"
+
+-- glValidateProgramPipeline ---------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glValidateProgramPipeline.xhtml OpenGL 4.x>.
+glValidateProgramPipeline
+  :: MonadIO m
+  => GLuint -- ^ @pipeline@.
+  -> m ()
+glValidateProgramPipeline v1 = liftIO $ dyn3 ptr_glValidateProgramPipeline v1
+
+{-# NOINLINE ptr_glValidateProgramPipeline #-}
+ptr_glValidateProgramPipeline :: FunPtr (GLuint -> IO ())
+ptr_glValidateProgramPipeline = unsafePerformIO $ getCommand "glValidateProgramPipeline"
+
+-- glValidateProgramPipelineEXT ------------------------------------------------
+
+glValidateProgramPipelineEXT
+  :: MonadIO m
+  => GLuint -- ^ @pipeline@.
+  -> m ()
+glValidateProgramPipelineEXT v1 = liftIO $ dyn3 ptr_glValidateProgramPipelineEXT v1
+
+{-# NOINLINE ptr_glValidateProgramPipelineEXT #-}
+ptr_glValidateProgramPipelineEXT :: FunPtr (GLuint -> IO ())
+ptr_glValidateProgramPipelineEXT = unsafePerformIO $ getCommand "glValidateProgramPipelineEXT"
+
+-- glVariantArrayObjectATI -----------------------------------------------------
+
+glVariantArrayObjectATI
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> GLenum -- ^ @type@ of type [ScalarType](Graphics-GL-Groups.html#ScalarType).
+  -> GLsizei -- ^ @stride@.
+  -> GLuint -- ^ @buffer@.
+  -> GLuint -- ^ @offset@.
+  -> m ()
+glVariantArrayObjectATI v1 v2 v3 v4 v5 = liftIO $ dyn879 ptr_glVariantArrayObjectATI v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glVariantArrayObjectATI #-}
+ptr_glVariantArrayObjectATI :: FunPtr (GLuint -> GLenum -> GLsizei -> GLuint -> GLuint -> IO ())
+ptr_glVariantArrayObjectATI = unsafePerformIO $ getCommand "glVariantArrayObjectATI"
+
+-- glVariantPointerEXT ---------------------------------------------------------
+
+glVariantPointerEXT
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> GLenum -- ^ @type@ of type [ScalarType](Graphics-GL-Groups.html#ScalarType).
+  -> GLuint -- ^ @stride@.
+  -> Ptr a -- ^ @addr@ pointing to @COMPSIZE(id,type,stride)@ elements of type @a@.
+  -> m ()
+glVariantPointerEXT v1 v2 v3 v4 = liftIO $ dyn880 ptr_glVariantPointerEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glVariantPointerEXT #-}
+ptr_glVariantPointerEXT :: FunPtr (GLuint -> GLenum -> GLuint -> Ptr a -> IO ())
+ptr_glVariantPointerEXT = unsafePerformIO $ getCommand "glVariantPointerEXT"
+
+-- glVariantbvEXT --------------------------------------------------------------
+
+glVariantbvEXT
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> Ptr GLbyte -- ^ @addr@ pointing to @COMPSIZE(id)@ elements of type @GLbyte@.
+  -> m ()
+glVariantbvEXT v1 v2 = liftIO $ dyn881 ptr_glVariantbvEXT v1 v2
+
+{-# NOINLINE ptr_glVariantbvEXT #-}
+ptr_glVariantbvEXT :: FunPtr (GLuint -> Ptr GLbyte -> IO ())
+ptr_glVariantbvEXT = unsafePerformIO $ getCommand "glVariantbvEXT"
+
+-- glVariantdvEXT --------------------------------------------------------------
+
+glVariantdvEXT
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> Ptr GLdouble -- ^ @addr@ pointing to @COMPSIZE(id)@ elements of type @GLdouble@.
+  -> m ()
+glVariantdvEXT v1 v2 = liftIO $ dyn882 ptr_glVariantdvEXT v1 v2
+
+{-# NOINLINE ptr_glVariantdvEXT #-}
+ptr_glVariantdvEXT :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+ptr_glVariantdvEXT = unsafePerformIO $ getCommand "glVariantdvEXT"
+
+-- glVariantfvEXT --------------------------------------------------------------
+
+glVariantfvEXT
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> Ptr GLfloat -- ^ @addr@ pointing to @COMPSIZE(id)@ elements of type @GLfloat@.
+  -> m ()
+glVariantfvEXT v1 v2 = liftIO $ dyn394 ptr_glVariantfvEXT v1 v2
+
+{-# NOINLINE ptr_glVariantfvEXT #-}
+ptr_glVariantfvEXT :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+ptr_glVariantfvEXT = unsafePerformIO $ getCommand "glVariantfvEXT"
+
+-- glVariantivEXT --------------------------------------------------------------
+
+glVariantivEXT
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> Ptr GLint -- ^ @addr@ pointing to @COMPSIZE(id)@ elements of type @GLint@.
+  -> m ()
+glVariantivEXT v1 v2 = liftIO $ dyn741 ptr_glVariantivEXT v1 v2
+
+{-# NOINLINE ptr_glVariantivEXT #-}
+ptr_glVariantivEXT :: FunPtr (GLuint -> Ptr GLint -> IO ())
+ptr_glVariantivEXT = unsafePerformIO $ getCommand "glVariantivEXT"
+
+-- glVariantsvEXT --------------------------------------------------------------
+
+glVariantsvEXT
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> Ptr GLshort -- ^ @addr@ pointing to @COMPSIZE(id)@ elements of type @GLshort@.
+  -> m ()
+glVariantsvEXT v1 v2 = liftIO $ dyn883 ptr_glVariantsvEXT v1 v2
+
+{-# NOINLINE ptr_glVariantsvEXT #-}
+ptr_glVariantsvEXT :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+ptr_glVariantsvEXT = unsafePerformIO $ getCommand "glVariantsvEXT"
+
+-- glVariantubvEXT -------------------------------------------------------------
+
+glVariantubvEXT
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> Ptr GLubyte -- ^ @addr@ pointing to @COMPSIZE(id)@ elements of type @GLubyte@.
+  -> m ()
+glVariantubvEXT v1 v2 = liftIO $ dyn393 ptr_glVariantubvEXT v1 v2
+
+{-# NOINLINE ptr_glVariantubvEXT #-}
+ptr_glVariantubvEXT :: FunPtr (GLuint -> Ptr GLubyte -> IO ())
+ptr_glVariantubvEXT = unsafePerformIO $ getCommand "glVariantubvEXT"
+
+-- glVariantuivEXT -------------------------------------------------------------
+
+glVariantuivEXT
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> Ptr GLuint -- ^ @addr@ pointing to @COMPSIZE(id)@ elements of type @GLuint@.
+  -> m ()
+glVariantuivEXT v1 v2 = liftIO $ dyn201 ptr_glVariantuivEXT v1 v2
+
+{-# NOINLINE ptr_glVariantuivEXT #-}
+ptr_glVariantuivEXT :: FunPtr (GLuint -> Ptr GLuint -> IO ())
+ptr_glVariantuivEXT = unsafePerformIO $ getCommand "glVariantuivEXT"
+
+-- glVariantusvEXT -------------------------------------------------------------
+
+glVariantusvEXT
+  :: MonadIO m
+  => GLuint -- ^ @id@.
+  -> Ptr GLushort -- ^ @addr@ pointing to @COMPSIZE(id)@ elements of type @GLushort@.
+  -> m ()
+glVariantusvEXT v1 v2 = liftIO $ dyn884 ptr_glVariantusvEXT v1 v2
+
+{-# NOINLINE ptr_glVariantusvEXT #-}
+ptr_glVariantusvEXT :: FunPtr (GLuint -> Ptr GLushort -> IO ())
+ptr_glVariantusvEXT = unsafePerformIO $ getCommand "glVariantusvEXT"
+
+-- glVertex2bOES ---------------------------------------------------------------
+
+glVertex2bOES
+  :: MonadIO m
+  => GLbyte -- ^ @x@.
+  -> GLbyte -- ^ @y@.
+  -> m ()
+glVertex2bOES v1 v2 = liftIO $ dyn765 ptr_glVertex2bOES v1 v2
+
+{-# NOINLINE ptr_glVertex2bOES #-}
+ptr_glVertex2bOES :: FunPtr (GLbyte -> GLbyte -> IO ())
+ptr_glVertex2bOES = unsafePerformIO $ getCommand "glVertex2bOES"
+
+-- glVertex2bvOES --------------------------------------------------------------
+
+glVertex2bvOES
+  :: MonadIO m
+  => Ptr GLbyte -- ^ @coords@ pointing to @2@ elements of type @GLbyte@.
+  -> m ()
+glVertex2bvOES v1 = liftIO $ dyn40 ptr_glVertex2bvOES v1
+
+{-# NOINLINE ptr_glVertex2bvOES #-}
+ptr_glVertex2bvOES :: FunPtr (Ptr GLbyte -> IO ())
+ptr_glVertex2bvOES = unsafePerformIO $ getCommand "glVertex2bvOES"
+
+-- glVertex2d ------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertex.xml OpenGL 2.x>. The vector equivalent of this command is 'glVertex2dv'.
+glVertex2d
+  :: MonadIO m
+  => GLdouble -- ^ @x@ of type @CoordD@.
+  -> GLdouble -- ^ @y@ of type @CoordD@.
+  -> m ()
+glVertex2d v1 v2 = liftIO $ dyn225 ptr_glVertex2d v1 v2
+
+{-# NOINLINE ptr_glVertex2d #-}
+ptr_glVertex2d :: FunPtr (GLdouble -> GLdouble -> IO ())
+ptr_glVertex2d = unsafePerformIO $ getCommand "glVertex2d"
+
+-- glVertex2dv -----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertex.xml OpenGL 2.x>.
+glVertex2dv
+  :: MonadIO m
+  => Ptr GLdouble -- ^ @v@ pointing to @2@ elements of type @CoordD@.
+  -> m ()
+glVertex2dv v1 = liftIO $ dyn42 ptr_glVertex2dv v1
+
+{-# NOINLINE ptr_glVertex2dv #-}
+ptr_glVertex2dv :: FunPtr (Ptr GLdouble -> IO ())
+ptr_glVertex2dv = unsafePerformIO $ getCommand "glVertex2dv"
+
+-- glVertex2f ------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertex.xml OpenGL 2.x>. The vector equivalent of this command is 'glVertex2fv'.
+glVertex2f
+  :: MonadIO m
+  => GLfloat -- ^ @x@ of type @CoordF@.
+  -> GLfloat -- ^ @y@ of type @CoordF@.
+  -> m ()
+glVertex2f v1 v2 = liftIO $ dyn230 ptr_glVertex2f v1 v2
+
+{-# NOINLINE ptr_glVertex2f #-}
+ptr_glVertex2f :: FunPtr (GLfloat -> GLfloat -> IO ())
+ptr_glVertex2f = unsafePerformIO $ getCommand "glVertex2f"
+
+-- glVertex2fv -----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertex.xml OpenGL 2.x>.
+glVertex2fv
+  :: MonadIO m
+  => Ptr GLfloat -- ^ @v@ pointing to @2@ elements of type @CoordF@.
+  -> m ()
+glVertex2fv v1 = liftIO $ dyn44 ptr_glVertex2fv v1
+
+{-# NOINLINE ptr_glVertex2fv #-}
+ptr_glVertex2fv :: FunPtr (Ptr GLfloat -> IO ())
+ptr_glVertex2fv = unsafePerformIO $ getCommand "glVertex2fv"
+
+-- glVertex2hNV ----------------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glVertex2hvNV'.
+glVertex2hNV
+  :: MonadIO m
+  => GLhalfNV -- ^ @x@ of type @Half16NV@.
+  -> GLhalfNV -- ^ @y@ of type @Half16NV@.
+  -> m ()
+glVertex2hNV v1 v2 = liftIO $ dyn770 ptr_glVertex2hNV v1 v2
+
+{-# NOINLINE ptr_glVertex2hNV #-}
+ptr_glVertex2hNV :: FunPtr (GLhalfNV -> GLhalfNV -> IO ())
+ptr_glVertex2hNV = unsafePerformIO $ getCommand "glVertex2hNV"
+
+-- glVertex2hvNV ---------------------------------------------------------------
+
+glVertex2hvNV
+  :: MonadIO m
+  => Ptr GLhalfNV -- ^ @v@ pointing to @2@ elements of type @Half16NV@.
+  -> m ()
+glVertex2hvNV v1 = liftIO $ dyn106 ptr_glVertex2hvNV v1
+
+{-# NOINLINE ptr_glVertex2hvNV #-}
+ptr_glVertex2hvNV :: FunPtr (Ptr GLhalfNV -> IO ())
+ptr_glVertex2hvNV = unsafePerformIO $ getCommand "glVertex2hvNV"
+
+-- glVertex2i ------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertex.xml OpenGL 2.x>. The vector equivalent of this command is 'glVertex2iv'.
+glVertex2i
+  :: MonadIO m
+  => GLint -- ^ @x@ of type @CoordI@.
+  -> GLint -- ^ @y@ of type @CoordI@.
+  -> m ()
+glVertex2i v1 v2 = liftIO $ dyn277 ptr_glVertex2i v1 v2
+
+{-# NOINLINE ptr_glVertex2i #-}
+ptr_glVertex2i :: FunPtr (GLint -> GLint -> IO ())
+ptr_glVertex2i = unsafePerformIO $ getCommand "glVertex2i"
+
+-- glVertex2iv -----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertex.xml OpenGL 2.x>.
+glVertex2iv
+  :: MonadIO m
+  => Ptr GLint -- ^ @v@ pointing to @2@ elements of type @CoordI@.
+  -> m ()
+glVertex2iv v1 = liftIO $ dyn46 ptr_glVertex2iv v1
+
+{-# NOINLINE ptr_glVertex2iv #-}
+ptr_glVertex2iv :: FunPtr (Ptr GLint -> IO ())
+ptr_glVertex2iv = unsafePerformIO $ getCommand "glVertex2iv"
+
+-- glVertex2s ------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertex.xml OpenGL 2.x>. The vector equivalent of this command is 'glVertex2sv'.
+glVertex2s
+  :: MonadIO m
+  => GLshort -- ^ @x@ of type @CoordS@.
+  -> GLshort -- ^ @y@ of type @CoordS@.
+  -> m ()
+glVertex2s v1 v2 = liftIO $ dyn709 ptr_glVertex2s v1 v2
+
+{-# NOINLINE ptr_glVertex2s #-}
+ptr_glVertex2s :: FunPtr (GLshort -> GLshort -> IO ())
+ptr_glVertex2s = unsafePerformIO $ getCommand "glVertex2s"
+
+-- glVertex2sv -----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertex.xml OpenGL 2.x>.
+glVertex2sv
+  :: MonadIO m
+  => Ptr GLshort -- ^ @v@ pointing to @2@ elements of type @CoordS@.
+  -> m ()
+glVertex2sv v1 = liftIO $ dyn48 ptr_glVertex2sv v1
+
+{-# NOINLINE ptr_glVertex2sv #-}
+ptr_glVertex2sv :: FunPtr (Ptr GLshort -> IO ())
+ptr_glVertex2sv = unsafePerformIO $ getCommand "glVertex2sv"
+
+-- glVertex2xOES ---------------------------------------------------------------
+
+glVertex2xOES
+  :: MonadIO m
+  => GLfixed -- ^ @x@.
+  -> m ()
+glVertex2xOES v1 = liftIO $ dyn87 ptr_glVertex2xOES v1
+
+{-# NOINLINE ptr_glVertex2xOES #-}
+ptr_glVertex2xOES :: FunPtr (GLfixed -> IO ())
+ptr_glVertex2xOES = unsafePerformIO $ getCommand "glVertex2xOES"
+
+-- glVertex2xvOES --------------------------------------------------------------
+
+glVertex2xvOES
+  :: MonadIO m
+  => Ptr GLfixed -- ^ @coords@ pointing to @2@ elements of type @GLfixed@.
+  -> m ()
+glVertex2xvOES v1 = liftIO $ dyn114 ptr_glVertex2xvOES v1
+
+{-# NOINLINE ptr_glVertex2xvOES #-}
+ptr_glVertex2xvOES :: FunPtr (Ptr GLfixed -> IO ())
+ptr_glVertex2xvOES = unsafePerformIO $ getCommand "glVertex2xvOES"
+
+-- glVertex3bOES ---------------------------------------------------------------
+
+glVertex3bOES
+  :: MonadIO m
+  => GLbyte -- ^ @x@.
+  -> GLbyte -- ^ @y@.
+  -> GLbyte -- ^ @z@.
+  -> m ()
+glVertex3bOES v1 v2 v3 = liftIO $ dyn39 ptr_glVertex3bOES v1 v2 v3
+
+{-# NOINLINE ptr_glVertex3bOES #-}
+ptr_glVertex3bOES :: FunPtr (GLbyte -> GLbyte -> GLbyte -> IO ())
+ptr_glVertex3bOES = unsafePerformIO $ getCommand "glVertex3bOES"
+
+-- glVertex3bvOES --------------------------------------------------------------
+
+glVertex3bvOES
+  :: MonadIO m
+  => Ptr GLbyte -- ^ @coords@ pointing to @3@ elements of type @GLbyte@.
+  -> m ()
+glVertex3bvOES v1 = liftIO $ dyn40 ptr_glVertex3bvOES v1
+
+{-# NOINLINE ptr_glVertex3bvOES #-}
+ptr_glVertex3bvOES :: FunPtr (Ptr GLbyte -> IO ())
+ptr_glVertex3bvOES = unsafePerformIO $ getCommand "glVertex3bvOES"
+
+-- glVertex3d ------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertex.xml OpenGL 2.x>. The vector equivalent of this command is 'glVertex3dv'.
+glVertex3d
+  :: MonadIO m
+  => GLdouble -- ^ @x@ of type @CoordD@.
+  -> GLdouble -- ^ @y@ of type @CoordD@.
+  -> GLdouble -- ^ @z@ of type @CoordD@.
+  -> m ()
+glVertex3d v1 v2 v3 = liftIO $ dyn41 ptr_glVertex3d v1 v2 v3
+
+{-# NOINLINE ptr_glVertex3d #-}
+ptr_glVertex3d :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
+ptr_glVertex3d = unsafePerformIO $ getCommand "glVertex3d"
+
+-- glVertex3dv -----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertex.xml OpenGL 2.x>.
+glVertex3dv
+  :: MonadIO m
+  => Ptr GLdouble -- ^ @v@ pointing to @3@ elements of type @CoordD@.
+  -> m ()
+glVertex3dv v1 = liftIO $ dyn42 ptr_glVertex3dv v1
+
+{-# NOINLINE ptr_glVertex3dv #-}
+ptr_glVertex3dv :: FunPtr (Ptr GLdouble -> IO ())
+ptr_glVertex3dv = unsafePerformIO $ getCommand "glVertex3dv"
+
+-- glVertex3f ------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertex.xml OpenGL 2.x>. The vector equivalent of this command is 'glVertex3fv'.
+glVertex3f
+  :: MonadIO m
+  => GLfloat -- ^ @x@ of type @CoordF@.
+  -> GLfloat -- ^ @y@ of type @CoordF@.
+  -> GLfloat -- ^ @z@ of type @CoordF@.
+  -> m ()
+glVertex3f v1 v2 v3 = liftIO $ dyn43 ptr_glVertex3f v1 v2 v3
+
+{-# NOINLINE ptr_glVertex3f #-}
+ptr_glVertex3f :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glVertex3f = unsafePerformIO $ getCommand "glVertex3f"
+
+-- glVertex3fv -----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertex.xml OpenGL 2.x>.
+glVertex3fv
+  :: MonadIO m
+  => Ptr GLfloat -- ^ @v@ pointing to @3@ elements of type @CoordF@.
+  -> m ()
+glVertex3fv v1 = liftIO $ dyn44 ptr_glVertex3fv v1
+
+{-# NOINLINE ptr_glVertex3fv #-}
+ptr_glVertex3fv :: FunPtr (Ptr GLfloat -> IO ())
+ptr_glVertex3fv = unsafePerformIO $ getCommand "glVertex3fv"
+
+-- glVertex3hNV ----------------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glVertex3hvNV'.
+glVertex3hNV
+  :: MonadIO m
+  => GLhalfNV -- ^ @x@ of type @Half16NV@.
+  -> GLhalfNV -- ^ @y@ of type @Half16NV@.
+  -> GLhalfNV -- ^ @z@ of type @Half16NV@.
+  -> m ()
+glVertex3hNV v1 v2 v3 = liftIO $ dyn105 ptr_glVertex3hNV v1 v2 v3
+
+{-# NOINLINE ptr_glVertex3hNV #-}
+ptr_glVertex3hNV :: FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
+ptr_glVertex3hNV = unsafePerformIO $ getCommand "glVertex3hNV"
+
+-- glVertex3hvNV ---------------------------------------------------------------
+
+glVertex3hvNV
+  :: MonadIO m
+  => Ptr GLhalfNV -- ^ @v@ pointing to @3@ elements of type @Half16NV@.
+  -> m ()
+glVertex3hvNV v1 = liftIO $ dyn106 ptr_glVertex3hvNV v1
+
+{-# NOINLINE ptr_glVertex3hvNV #-}
+ptr_glVertex3hvNV :: FunPtr (Ptr GLhalfNV -> IO ())
+ptr_glVertex3hvNV = unsafePerformIO $ getCommand "glVertex3hvNV"
+
+-- glVertex3i ------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertex.xml OpenGL 2.x>. The vector equivalent of this command is 'glVertex3iv'.
+glVertex3i
+  :: MonadIO m
+  => GLint -- ^ @x@ of type @CoordI@.
+  -> GLint -- ^ @y@ of type @CoordI@.
+  -> GLint -- ^ @z@ of type @CoordI@.
+  -> m ()
+glVertex3i v1 v2 v3 = liftIO $ dyn45 ptr_glVertex3i v1 v2 v3
+
+{-# NOINLINE ptr_glVertex3i #-}
+ptr_glVertex3i :: FunPtr (GLint -> GLint -> GLint -> IO ())
+ptr_glVertex3i = unsafePerformIO $ getCommand "glVertex3i"
+
+-- glVertex3iv -----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertex.xml OpenGL 2.x>.
+glVertex3iv
+  :: MonadIO m
+  => Ptr GLint -- ^ @v@ pointing to @3@ elements of type @CoordI@.
+  -> m ()
+glVertex3iv v1 = liftIO $ dyn46 ptr_glVertex3iv v1
+
+{-# NOINLINE ptr_glVertex3iv #-}
+ptr_glVertex3iv :: FunPtr (Ptr GLint -> IO ())
+ptr_glVertex3iv = unsafePerformIO $ getCommand "glVertex3iv"
+
+-- glVertex3s ------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertex.xml OpenGL 2.x>. The vector equivalent of this command is 'glVertex3sv'.
+glVertex3s
+  :: MonadIO m
+  => GLshort -- ^ @x@ of type @CoordS@.
+  -> GLshort -- ^ @y@ of type @CoordS@.
+  -> GLshort -- ^ @z@ of type @CoordS@.
+  -> m ()
+glVertex3s v1 v2 v3 = liftIO $ dyn47 ptr_glVertex3s v1 v2 v3
+
+{-# NOINLINE ptr_glVertex3s #-}
+ptr_glVertex3s :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
+ptr_glVertex3s = unsafePerformIO $ getCommand "glVertex3s"
+
+-- glVertex3sv -----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertex.xml OpenGL 2.x>.
+glVertex3sv
+  :: MonadIO m
+  => Ptr GLshort -- ^ @v@ pointing to @3@ elements of type @CoordS@.
+  -> m ()
+glVertex3sv v1 = liftIO $ dyn48 ptr_glVertex3sv v1
+
+{-# NOINLINE ptr_glVertex3sv #-}
+ptr_glVertex3sv :: FunPtr (Ptr GLshort -> IO ())
+ptr_glVertex3sv = unsafePerformIO $ getCommand "glVertex3sv"
+
+-- glVertex3xOES ---------------------------------------------------------------
+
+glVertex3xOES
+  :: MonadIO m
+  => GLfixed -- ^ @x@.
+  -> GLfixed -- ^ @y@.
+  -> m ()
+glVertex3xOES v1 v2 = liftIO $ dyn232 ptr_glVertex3xOES v1 v2
+
+{-# NOINLINE ptr_glVertex3xOES #-}
+ptr_glVertex3xOES :: FunPtr (GLfixed -> GLfixed -> IO ())
+ptr_glVertex3xOES = unsafePerformIO $ getCommand "glVertex3xOES"
+
+-- glVertex3xvOES --------------------------------------------------------------
+
+glVertex3xvOES
+  :: MonadIO m
+  => Ptr GLfixed -- ^ @coords@ pointing to @3@ elements of type @GLfixed@.
+  -> m ()
+glVertex3xvOES v1 = liftIO $ dyn114 ptr_glVertex3xvOES v1
+
+{-# NOINLINE ptr_glVertex3xvOES #-}
+ptr_glVertex3xvOES :: FunPtr (Ptr GLfixed -> IO ())
+ptr_glVertex3xvOES = unsafePerformIO $ getCommand "glVertex3xvOES"
+
+-- glVertex4bOES ---------------------------------------------------------------
+
+glVertex4bOES
+  :: MonadIO m
+  => GLbyte -- ^ @x@.
+  -> GLbyte -- ^ @y@.
+  -> GLbyte -- ^ @z@.
+  -> GLbyte -- ^ @w@.
+  -> m ()
+glVertex4bOES v1 v2 v3 v4 = liftIO $ dyn115 ptr_glVertex4bOES v1 v2 v3 v4
+
+{-# NOINLINE ptr_glVertex4bOES #-}
+ptr_glVertex4bOES :: FunPtr (GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ())
+ptr_glVertex4bOES = unsafePerformIO $ getCommand "glVertex4bOES"
+
+-- glVertex4bvOES --------------------------------------------------------------
+
+glVertex4bvOES
+  :: MonadIO m
+  => Ptr GLbyte -- ^ @coords@ pointing to @4@ elements of type @GLbyte@.
+  -> m ()
+glVertex4bvOES v1 = liftIO $ dyn40 ptr_glVertex4bvOES v1
+
+{-# NOINLINE ptr_glVertex4bvOES #-}
+ptr_glVertex4bvOES :: FunPtr (Ptr GLbyte -> IO ())
+ptr_glVertex4bvOES = unsafePerformIO $ getCommand "glVertex4bvOES"
+
+-- glVertex4d ------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertex.xml OpenGL 2.x>. The vector equivalent of this command is 'glVertex4dv'.
+glVertex4d
+  :: MonadIO m
+  => GLdouble -- ^ @x@ of type @CoordD@.
+  -> GLdouble -- ^ @y@ of type @CoordD@.
+  -> GLdouble -- ^ @z@ of type @CoordD@.
+  -> GLdouble -- ^ @w@ of type @CoordD@.
+  -> m ()
+glVertex4d v1 v2 v3 v4 = liftIO $ dyn116 ptr_glVertex4d v1 v2 v3 v4
+
+{-# NOINLINE ptr_glVertex4d #-}
+ptr_glVertex4d :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+ptr_glVertex4d = unsafePerformIO $ getCommand "glVertex4d"
+
+-- glVertex4dv -----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertex.xml OpenGL 2.x>.
+glVertex4dv
+  :: MonadIO m
+  => Ptr GLdouble -- ^ @v@ pointing to @4@ elements of type @CoordD@.
+  -> m ()
+glVertex4dv v1 = liftIO $ dyn42 ptr_glVertex4dv v1
+
+{-# NOINLINE ptr_glVertex4dv #-}
+ptr_glVertex4dv :: FunPtr (Ptr GLdouble -> IO ())
+ptr_glVertex4dv = unsafePerformIO $ getCommand "glVertex4dv"
+
+-- glVertex4f ------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertex.xml OpenGL 2.x>. The vector equivalent of this command is 'glVertex4fv'.
+glVertex4f
+  :: MonadIO m
+  => GLfloat -- ^ @x@ of type @CoordF@.
+  -> GLfloat -- ^ @y@ of type @CoordF@.
+  -> GLfloat -- ^ @z@ of type @CoordF@.
+  -> GLfloat -- ^ @w@ of type @CoordF@.
+  -> m ()
+glVertex4f v1 v2 v3 v4 = liftIO $ dyn52 ptr_glVertex4f v1 v2 v3 v4
+
+{-# NOINLINE ptr_glVertex4f #-}
+ptr_glVertex4f :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glVertex4f = unsafePerformIO $ getCommand "glVertex4f"
+
+-- glVertex4fv -----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertex.xml OpenGL 2.x>.
+glVertex4fv
+  :: MonadIO m
+  => Ptr GLfloat -- ^ @v@ pointing to @4@ elements of type @CoordF@.
+  -> m ()
+glVertex4fv v1 = liftIO $ dyn44 ptr_glVertex4fv v1
+
+{-# NOINLINE ptr_glVertex4fv #-}
+ptr_glVertex4fv :: FunPtr (Ptr GLfloat -> IO ())
+ptr_glVertex4fv = unsafePerformIO $ getCommand "glVertex4fv"
+
+-- glVertex4hNV ----------------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glVertex4hvNV'.
+glVertex4hNV
+  :: MonadIO m
+  => GLhalfNV -- ^ @x@ of type @Half16NV@.
+  -> GLhalfNV -- ^ @y@ of type @Half16NV@.
+  -> GLhalfNV -- ^ @z@ of type @Half16NV@.
+  -> GLhalfNV -- ^ @w@ of type @Half16NV@.
+  -> m ()
+glVertex4hNV v1 v2 v3 v4 = liftIO $ dyn119 ptr_glVertex4hNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glVertex4hNV #-}
+ptr_glVertex4hNV :: FunPtr (GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
+ptr_glVertex4hNV = unsafePerformIO $ getCommand "glVertex4hNV"
+
+-- glVertex4hvNV ---------------------------------------------------------------
+
+glVertex4hvNV
+  :: MonadIO m
+  => Ptr GLhalfNV -- ^ @v@ pointing to @4@ elements of type @Half16NV@.
+  -> m ()
+glVertex4hvNV v1 = liftIO $ dyn106 ptr_glVertex4hvNV v1
+
+{-# NOINLINE ptr_glVertex4hvNV #-}
+ptr_glVertex4hvNV :: FunPtr (Ptr GLhalfNV -> IO ())
+ptr_glVertex4hvNV = unsafePerformIO $ getCommand "glVertex4hvNV"
+
+-- glVertex4i ------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertex.xml OpenGL 2.x>. The vector equivalent of this command is 'glVertex4iv'.
+glVertex4i
+  :: MonadIO m
+  => GLint -- ^ @x@ of type @CoordI@.
+  -> GLint -- ^ @y@ of type @CoordI@.
+  -> GLint -- ^ @z@ of type @CoordI@.
+  -> GLint -- ^ @w@ of type @CoordI@.
+  -> m ()
+glVertex4i v1 v2 v3 v4 = liftIO $ dyn82 ptr_glVertex4i v1 v2 v3 v4
+
+{-# NOINLINE ptr_glVertex4i #-}
+ptr_glVertex4i :: FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())
+ptr_glVertex4i = unsafePerformIO $ getCommand "glVertex4i"
+
+-- glVertex4iv -----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertex.xml OpenGL 2.x>.
+glVertex4iv
+  :: MonadIO m
+  => Ptr GLint -- ^ @v@ pointing to @4@ elements of type @CoordI@.
+  -> m ()
+glVertex4iv v1 = liftIO $ dyn46 ptr_glVertex4iv v1
+
+{-# NOINLINE ptr_glVertex4iv #-}
+ptr_glVertex4iv :: FunPtr (Ptr GLint -> IO ())
+ptr_glVertex4iv = unsafePerformIO $ getCommand "glVertex4iv"
+
+-- glVertex4s ------------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertex.xml OpenGL 2.x>. The vector equivalent of this command is 'glVertex4sv'.
+glVertex4s
+  :: MonadIO m
+  => GLshort -- ^ @x@ of type @CoordS@.
+  -> GLshort -- ^ @y@ of type @CoordS@.
+  -> GLshort -- ^ @z@ of type @CoordS@.
+  -> GLshort -- ^ @w@ of type @CoordS@.
+  -> m ()
+glVertex4s v1 v2 v3 v4 = liftIO $ dyn120 ptr_glVertex4s v1 v2 v3 v4
+
+{-# NOINLINE ptr_glVertex4s #-}
+ptr_glVertex4s :: FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> IO ())
+ptr_glVertex4s = unsafePerformIO $ getCommand "glVertex4s"
+
+-- glVertex4sv -----------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertex.xml OpenGL 2.x>.
+glVertex4sv
+  :: MonadIO m
+  => Ptr GLshort -- ^ @v@ pointing to @4@ elements of type @CoordS@.
+  -> m ()
+glVertex4sv v1 = liftIO $ dyn48 ptr_glVertex4sv v1
+
+{-# NOINLINE ptr_glVertex4sv #-}
+ptr_glVertex4sv :: FunPtr (Ptr GLshort -> IO ())
+ptr_glVertex4sv = unsafePerformIO $ getCommand "glVertex4sv"
+
+-- glVertex4xOES ---------------------------------------------------------------
+
+glVertex4xOES
+  :: MonadIO m
+  => GLfixed -- ^ @x@.
+  -> GLfixed -- ^ @y@.
+  -> GLfixed -- ^ @z@.
+  -> m ()
+glVertex4xOES v1 v2 v3 = liftIO $ dyn113 ptr_glVertex4xOES v1 v2 v3
+
+{-# NOINLINE ptr_glVertex4xOES #-}
+ptr_glVertex4xOES :: FunPtr (GLfixed -> GLfixed -> GLfixed -> IO ())
+ptr_glVertex4xOES = unsafePerformIO $ getCommand "glVertex4xOES"
+
+-- glVertex4xvOES --------------------------------------------------------------
+
+glVertex4xvOES
+  :: MonadIO m
+  => Ptr GLfixed -- ^ @coords@ pointing to @4@ elements of type @GLfixed@.
+  -> m ()
+glVertex4xvOES v1 = liftIO $ dyn114 ptr_glVertex4xvOES v1
+
+{-# NOINLINE ptr_glVertex4xvOES #-}
+ptr_glVertex4xvOES :: FunPtr (Ptr GLfixed -> IO ())
+ptr_glVertex4xvOES = unsafePerformIO $ getCommand "glVertex4xvOES"
+
+-- glVertexArrayAttribBinding --------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glVertexAttribBinding.xhtml OpenGL 4.x>.
+glVertexArrayAttribBinding
+  :: MonadIO m
+  => GLuint -- ^ @vaobj@.
+  -> GLuint -- ^ @attribindex@.
+  -> GLuint -- ^ @bindingindex@.
+  -> m ()
+glVertexArrayAttribBinding v1 v2 v3 = liftIO $ dyn109 ptr_glVertexArrayAttribBinding v1 v2 v3
+
+{-# NOINLINE ptr_glVertexArrayAttribBinding #-}
+ptr_glVertexArrayAttribBinding :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
+ptr_glVertexArrayAttribBinding = unsafePerformIO $ getCommand "glVertexArrayAttribBinding"
+
+-- glVertexArrayAttribFormat ---------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glVertexAttribFormat.xhtml OpenGL 4.x>.
+glVertexArrayAttribFormat
+  :: MonadIO m
+  => GLuint -- ^ @vaobj@.
+  -> GLuint -- ^ @attribindex@.
+  -> GLint -- ^ @size@.
+  -> GLenum -- ^ @type@ of type [VertexAttribType](Graphics-GL-Groups.html#VertexAttribType).
+  -> GLboolean -- ^ @normalized@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> GLuint -- ^ @relativeoffset@.
+  -> m ()
+glVertexArrayAttribFormat v1 v2 v3 v4 v5 v6 = liftIO $ dyn885 ptr_glVertexArrayAttribFormat v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glVertexArrayAttribFormat #-}
+ptr_glVertexArrayAttribFormat :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> IO ())
+ptr_glVertexArrayAttribFormat = unsafePerformIO $ getCommand "glVertexArrayAttribFormat"
+
+-- glVertexArrayAttribIFormat --------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glVertexAttribFormat.xhtml OpenGL 4.x>.
+glVertexArrayAttribIFormat
+  :: MonadIO m
+  => GLuint -- ^ @vaobj@.
+  -> GLuint -- ^ @attribindex@.
+  -> GLint -- ^ @size@.
+  -> GLenum -- ^ @type@ of type [VertexAttribIType](Graphics-GL-Groups.html#VertexAttribIType).
+  -> GLuint -- ^ @relativeoffset@.
+  -> m ()
+glVertexArrayAttribIFormat v1 v2 v3 v4 v5 = liftIO $ dyn886 ptr_glVertexArrayAttribIFormat v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glVertexArrayAttribIFormat #-}
+ptr_glVertexArrayAttribIFormat :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLuint -> IO ())
+ptr_glVertexArrayAttribIFormat = unsafePerformIO $ getCommand "glVertexArrayAttribIFormat"
+
+-- glVertexArrayAttribLFormat --------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glVertexAttribFormat.xhtml OpenGL 4.x>.
+glVertexArrayAttribLFormat
+  :: MonadIO m
+  => GLuint -- ^ @vaobj@.
+  -> GLuint -- ^ @attribindex@.
+  -> GLint -- ^ @size@.
+  -> GLenum -- ^ @type@ of type [VertexAttribLType](Graphics-GL-Groups.html#VertexAttribLType).
+  -> GLuint -- ^ @relativeoffset@.
+  -> m ()
+glVertexArrayAttribLFormat v1 v2 v3 v4 v5 = liftIO $ dyn886 ptr_glVertexArrayAttribLFormat v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glVertexArrayAttribLFormat #-}
+ptr_glVertexArrayAttribLFormat :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLuint -> IO ())
+ptr_glVertexArrayAttribLFormat = unsafePerformIO $ getCommand "glVertexArrayAttribLFormat"
+
+-- glVertexArrayBindVertexBufferEXT --------------------------------------------
+
+glVertexArrayBindVertexBufferEXT
+  :: MonadIO m
+  => GLuint -- ^ @vaobj@.
+  -> GLuint -- ^ @bindingindex@.
+  -> GLuint -- ^ @buffer@.
+  -> GLintptr -- ^ @offset@ of type @BufferOffset@.
+  -> GLsizei -- ^ @stride@.
+  -> m ()
+glVertexArrayBindVertexBufferEXT v1 v2 v3 v4 v5 = liftIO $ dyn887 ptr_glVertexArrayBindVertexBufferEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glVertexArrayBindVertexBufferEXT #-}
+ptr_glVertexArrayBindVertexBufferEXT :: FunPtr (GLuint -> GLuint -> GLuint -> GLintptr -> GLsizei -> IO ())
+ptr_glVertexArrayBindVertexBufferEXT = unsafePerformIO $ getCommand "glVertexArrayBindVertexBufferEXT"
+
+-- glVertexArrayBindingDivisor -------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glVertexBindingDivisor.xhtml OpenGL 4.x>.
+glVertexArrayBindingDivisor
+  :: MonadIO m
+  => GLuint -- ^ @vaobj@.
+  -> GLuint -- ^ @bindingindex@.
+  -> GLuint -- ^ @divisor@.
+  -> m ()
+glVertexArrayBindingDivisor v1 v2 v3 = liftIO $ dyn109 ptr_glVertexArrayBindingDivisor v1 v2 v3
+
+{-# NOINLINE ptr_glVertexArrayBindingDivisor #-}
+ptr_glVertexArrayBindingDivisor :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
+ptr_glVertexArrayBindingDivisor = unsafePerformIO $ getCommand "glVertexArrayBindingDivisor"
+
+-- glVertexArrayColorOffsetEXT -------------------------------------------------
+
+glVertexArrayColorOffsetEXT
+  :: MonadIO m
+  => GLuint -- ^ @vaobj@.
+  -> GLuint -- ^ @buffer@.
+  -> GLint -- ^ @size@.
+  -> GLenum -- ^ @type@ of type [ColorPointerType](Graphics-GL-Groups.html#ColorPointerType).
+  -> GLsizei -- ^ @stride@.
+  -> GLintptr -- ^ @offset@.
+  -> m ()
+glVertexArrayColorOffsetEXT v1 v2 v3 v4 v5 v6 = liftIO $ dyn888 ptr_glVertexArrayColorOffsetEXT v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glVertexArrayColorOffsetEXT #-}
+ptr_glVertexArrayColorOffsetEXT :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> IO ())
+ptr_glVertexArrayColorOffsetEXT = unsafePerformIO $ getCommand "glVertexArrayColorOffsetEXT"
+
+-- glVertexArrayEdgeFlagOffsetEXT ----------------------------------------------
+
+glVertexArrayEdgeFlagOffsetEXT
+  :: MonadIO m
+  => GLuint -- ^ @vaobj@.
+  -> GLuint -- ^ @buffer@.
+  -> GLsizei -- ^ @stride@.
+  -> GLintptr -- ^ @offset@.
+  -> m ()
+glVertexArrayEdgeFlagOffsetEXT v1 v2 v3 v4 = liftIO $ dyn889 ptr_glVertexArrayEdgeFlagOffsetEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glVertexArrayEdgeFlagOffsetEXT #-}
+ptr_glVertexArrayEdgeFlagOffsetEXT :: FunPtr (GLuint -> GLuint -> GLsizei -> GLintptr -> IO ())
+ptr_glVertexArrayEdgeFlagOffsetEXT = unsafePerformIO $ getCommand "glVertexArrayEdgeFlagOffsetEXT"
+
+-- glVertexArrayElementBuffer --------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glVertexArrayElementBuffer.xhtml OpenGL 4.x>.
+glVertexArrayElementBuffer
+  :: MonadIO m
+  => GLuint -- ^ @vaobj@.
+  -> GLuint -- ^ @buffer@.
+  -> m ()
+glVertexArrayElementBuffer v1 v2 = liftIO $ dyn4 ptr_glVertexArrayElementBuffer v1 v2
+
+{-# NOINLINE ptr_glVertexArrayElementBuffer #-}
+ptr_glVertexArrayElementBuffer :: FunPtr (GLuint -> GLuint -> IO ())
+ptr_glVertexArrayElementBuffer = unsafePerformIO $ getCommand "glVertexArrayElementBuffer"
+
+-- glVertexArrayFogCoordOffsetEXT ----------------------------------------------
+
+glVertexArrayFogCoordOffsetEXT
+  :: MonadIO m
+  => GLuint -- ^ @vaobj@.
+  -> GLuint -- ^ @buffer@.
+  -> GLenum -- ^ @type@ of type [FogCoordinatePointerType](Graphics-GL-Groups.html#FogCoordinatePointerType).
+  -> GLsizei -- ^ @stride@.
+  -> GLintptr -- ^ @offset@.
+  -> m ()
+glVertexArrayFogCoordOffsetEXT v1 v2 v3 v4 v5 = liftIO $ dyn890 ptr_glVertexArrayFogCoordOffsetEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glVertexArrayFogCoordOffsetEXT #-}
+ptr_glVertexArrayFogCoordOffsetEXT :: FunPtr (GLuint -> GLuint -> GLenum -> GLsizei -> GLintptr -> IO ())
+ptr_glVertexArrayFogCoordOffsetEXT = unsafePerformIO $ getCommand "glVertexArrayFogCoordOffsetEXT"
+
+-- glVertexArrayIndexOffsetEXT -------------------------------------------------
+
+glVertexArrayIndexOffsetEXT
+  :: MonadIO m
+  => GLuint -- ^ @vaobj@.
+  -> GLuint -- ^ @buffer@.
+  -> GLenum -- ^ @type@ of type [IndexPointerType](Graphics-GL-Groups.html#IndexPointerType).
+  -> GLsizei -- ^ @stride@.
+  -> GLintptr -- ^ @offset@.
+  -> m ()
+glVertexArrayIndexOffsetEXT v1 v2 v3 v4 v5 = liftIO $ dyn890 ptr_glVertexArrayIndexOffsetEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glVertexArrayIndexOffsetEXT #-}
+ptr_glVertexArrayIndexOffsetEXT :: FunPtr (GLuint -> GLuint -> GLenum -> GLsizei -> GLintptr -> IO ())
+ptr_glVertexArrayIndexOffsetEXT = unsafePerformIO $ getCommand "glVertexArrayIndexOffsetEXT"
+
+-- glVertexArrayMultiTexCoordOffsetEXT -----------------------------------------
+
+glVertexArrayMultiTexCoordOffsetEXT
+  :: MonadIO m
+  => GLuint -- ^ @vaobj@.
+  -> GLuint -- ^ @buffer@.
+  -> GLenum -- ^ @texunit@.
+  -> GLint -- ^ @size@.
+  -> GLenum -- ^ @type@ of type [TexCoordPointerType](Graphics-GL-Groups.html#TexCoordPointerType).
+  -> GLsizei -- ^ @stride@.
+  -> GLintptr -- ^ @offset@.
+  -> m ()
+glVertexArrayMultiTexCoordOffsetEXT v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn891 ptr_glVertexArrayMultiTexCoordOffsetEXT v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glVertexArrayMultiTexCoordOffsetEXT #-}
+ptr_glVertexArrayMultiTexCoordOffsetEXT :: FunPtr (GLuint -> GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLintptr -> IO ())
+ptr_glVertexArrayMultiTexCoordOffsetEXT = unsafePerformIO $ getCommand "glVertexArrayMultiTexCoordOffsetEXT"
+
+-- glVertexArrayNormalOffsetEXT ------------------------------------------------
+
+glVertexArrayNormalOffsetEXT
+  :: MonadIO m
+  => GLuint -- ^ @vaobj@.
+  -> GLuint -- ^ @buffer@.
+  -> GLenum -- ^ @type@ of type [NormalPointerType](Graphics-GL-Groups.html#NormalPointerType).
+  -> GLsizei -- ^ @stride@.
+  -> GLintptr -- ^ @offset@.
+  -> m ()
+glVertexArrayNormalOffsetEXT v1 v2 v3 v4 v5 = liftIO $ dyn890 ptr_glVertexArrayNormalOffsetEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glVertexArrayNormalOffsetEXT #-}
+ptr_glVertexArrayNormalOffsetEXT :: FunPtr (GLuint -> GLuint -> GLenum -> GLsizei -> GLintptr -> IO ())
+ptr_glVertexArrayNormalOffsetEXT = unsafePerformIO $ getCommand "glVertexArrayNormalOffsetEXT"
+
+-- glVertexArrayParameteriAPPLE ------------------------------------------------
+
+glVertexArrayParameteriAPPLE
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [VertexArrayPNameAPPLE](Graphics-GL-Groups.html#VertexArrayPNameAPPLE).
+  -> GLint -- ^ @param@.
+  -> m ()
+glVertexArrayParameteriAPPLE v1 v2 = liftIO $ dyn58 ptr_glVertexArrayParameteriAPPLE v1 v2
+
+{-# NOINLINE ptr_glVertexArrayParameteriAPPLE #-}
+ptr_glVertexArrayParameteriAPPLE :: FunPtr (GLenum -> GLint -> IO ())
+ptr_glVertexArrayParameteriAPPLE = unsafePerformIO $ getCommand "glVertexArrayParameteriAPPLE"
+
+-- glVertexArrayRangeAPPLE -----------------------------------------------------
+
+glVertexArrayRangeAPPLE
+  :: MonadIO m
+  => GLsizei -- ^ @length@.
+  -> Ptr a -- ^ @pointer@ pointing to @length@ elements of type @a@.
+  -> m ()
+glVertexArrayRangeAPPLE v1 v2 = liftIO $ dyn271 ptr_glVertexArrayRangeAPPLE v1 v2
+
+{-# NOINLINE ptr_glVertexArrayRangeAPPLE #-}
+ptr_glVertexArrayRangeAPPLE :: FunPtr (GLsizei -> Ptr a -> IO ())
+ptr_glVertexArrayRangeAPPLE = unsafePerformIO $ getCommand "glVertexArrayRangeAPPLE"
+
+-- glVertexArrayRangeNV --------------------------------------------------------
+
+glVertexArrayRangeNV
+  :: MonadIO m
+  => GLsizei -- ^ @length@.
+  -> Ptr a -- ^ @pointer@ pointing to @COMPSIZE(length)@ elements of type @a@.
+  -> m ()
+glVertexArrayRangeNV v1 v2 = liftIO $ dyn271 ptr_glVertexArrayRangeNV v1 v2
+
+{-# NOINLINE ptr_glVertexArrayRangeNV #-}
+ptr_glVertexArrayRangeNV :: FunPtr (GLsizei -> Ptr a -> IO ())
+ptr_glVertexArrayRangeNV = unsafePerformIO $ getCommand "glVertexArrayRangeNV"
+
+-- glVertexArraySecondaryColorOffsetEXT ----------------------------------------
+
+glVertexArraySecondaryColorOffsetEXT
+  :: MonadIO m
+  => GLuint -- ^ @vaobj@.
+  -> GLuint -- ^ @buffer@.
+  -> GLint -- ^ @size@.
+  -> GLenum -- ^ @type@ of type [ColorPointerType](Graphics-GL-Groups.html#ColorPointerType).
+  -> GLsizei -- ^ @stride@.
+  -> GLintptr -- ^ @offset@.
+  -> m ()
+glVertexArraySecondaryColorOffsetEXT v1 v2 v3 v4 v5 v6 = liftIO $ dyn888 ptr_glVertexArraySecondaryColorOffsetEXT v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glVertexArraySecondaryColorOffsetEXT #-}
+ptr_glVertexArraySecondaryColorOffsetEXT :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> IO ())
+ptr_glVertexArraySecondaryColorOffsetEXT = unsafePerformIO $ getCommand "glVertexArraySecondaryColorOffsetEXT"
+
+-- glVertexArrayTexCoordOffsetEXT ----------------------------------------------
+
+glVertexArrayTexCoordOffsetEXT
+  :: MonadIO m
+  => GLuint -- ^ @vaobj@.
+  -> GLuint -- ^ @buffer@.
+  -> GLint -- ^ @size@.
+  -> GLenum -- ^ @type@ of type [TexCoordPointerType](Graphics-GL-Groups.html#TexCoordPointerType).
+  -> GLsizei -- ^ @stride@.
+  -> GLintptr -- ^ @offset@.
+  -> m ()
+glVertexArrayTexCoordOffsetEXT v1 v2 v3 v4 v5 v6 = liftIO $ dyn888 ptr_glVertexArrayTexCoordOffsetEXT v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glVertexArrayTexCoordOffsetEXT #-}
+ptr_glVertexArrayTexCoordOffsetEXT :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> IO ())
+ptr_glVertexArrayTexCoordOffsetEXT = unsafePerformIO $ getCommand "glVertexArrayTexCoordOffsetEXT"
+
+-- glVertexArrayVertexAttribBindingEXT -----------------------------------------
+
+glVertexArrayVertexAttribBindingEXT
+  :: MonadIO m
+  => GLuint -- ^ @vaobj@.
+  -> GLuint -- ^ @attribindex@.
+  -> GLuint -- ^ @bindingindex@.
+  -> m ()
+glVertexArrayVertexAttribBindingEXT v1 v2 v3 = liftIO $ dyn109 ptr_glVertexArrayVertexAttribBindingEXT v1 v2 v3
+
+{-# NOINLINE ptr_glVertexArrayVertexAttribBindingEXT #-}
+ptr_glVertexArrayVertexAttribBindingEXT :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
+ptr_glVertexArrayVertexAttribBindingEXT = unsafePerformIO $ getCommand "glVertexArrayVertexAttribBindingEXT"
+
+-- glVertexArrayVertexAttribDivisorEXT -----------------------------------------
+
+glVertexArrayVertexAttribDivisorEXT
+  :: MonadIO m
+  => GLuint -- ^ @vaobj@.
+  -> GLuint -- ^ @index@.
+  -> GLuint -- ^ @divisor@.
+  -> m ()
+glVertexArrayVertexAttribDivisorEXT v1 v2 v3 = liftIO $ dyn109 ptr_glVertexArrayVertexAttribDivisorEXT v1 v2 v3
+
+{-# NOINLINE ptr_glVertexArrayVertexAttribDivisorEXT #-}
+ptr_glVertexArrayVertexAttribDivisorEXT :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
+ptr_glVertexArrayVertexAttribDivisorEXT = unsafePerformIO $ getCommand "glVertexArrayVertexAttribDivisorEXT"
+
+-- glVertexArrayVertexAttribFormatEXT ------------------------------------------
+
+glVertexArrayVertexAttribFormatEXT
+  :: MonadIO m
+  => GLuint -- ^ @vaobj@.
+  -> GLuint -- ^ @attribindex@.
+  -> GLint -- ^ @size@.
+  -> GLenum -- ^ @type@ of type [VertexAttribType](Graphics-GL-Groups.html#VertexAttribType).
+  -> GLboolean -- ^ @normalized@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> GLuint -- ^ @relativeoffset@.
+  -> m ()
+glVertexArrayVertexAttribFormatEXT v1 v2 v3 v4 v5 v6 = liftIO $ dyn885 ptr_glVertexArrayVertexAttribFormatEXT v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glVertexArrayVertexAttribFormatEXT #-}
+ptr_glVertexArrayVertexAttribFormatEXT :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> IO ())
+ptr_glVertexArrayVertexAttribFormatEXT = unsafePerformIO $ getCommand "glVertexArrayVertexAttribFormatEXT"
+
+-- glVertexArrayVertexAttribIFormatEXT -----------------------------------------
+
+glVertexArrayVertexAttribIFormatEXT
+  :: MonadIO m
+  => GLuint -- ^ @vaobj@.
+  -> GLuint -- ^ @attribindex@.
+  -> GLint -- ^ @size@.
+  -> GLenum -- ^ @type@ of type [VertexAttribIType](Graphics-GL-Groups.html#VertexAttribIType).
+  -> GLuint -- ^ @relativeoffset@.
+  -> m ()
+glVertexArrayVertexAttribIFormatEXT v1 v2 v3 v4 v5 = liftIO $ dyn886 ptr_glVertexArrayVertexAttribIFormatEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glVertexArrayVertexAttribIFormatEXT #-}
+ptr_glVertexArrayVertexAttribIFormatEXT :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLuint -> IO ())
+ptr_glVertexArrayVertexAttribIFormatEXT = unsafePerformIO $ getCommand "glVertexArrayVertexAttribIFormatEXT"
+
+-- glVertexArrayVertexAttribIOffsetEXT -----------------------------------------
+
+glVertexArrayVertexAttribIOffsetEXT
+  :: MonadIO m
+  => GLuint -- ^ @vaobj@.
+  -> GLuint -- ^ @buffer@.
+  -> GLuint -- ^ @index@.
+  -> GLint -- ^ @size@.
+  -> GLenum -- ^ @type@ of type [VertexAttribType](Graphics-GL-Groups.html#VertexAttribType).
+  -> GLsizei -- ^ @stride@.
+  -> GLintptr -- ^ @offset@.
+  -> m ()
+glVertexArrayVertexAttribIOffsetEXT v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn892 ptr_glVertexArrayVertexAttribIOffsetEXT v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glVertexArrayVertexAttribIOffsetEXT #-}
+ptr_glVertexArrayVertexAttribIOffsetEXT :: FunPtr (GLuint -> GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> IO ())
+ptr_glVertexArrayVertexAttribIOffsetEXT = unsafePerformIO $ getCommand "glVertexArrayVertexAttribIOffsetEXT"
+
+-- glVertexArrayVertexAttribLFormatEXT -----------------------------------------
+
+glVertexArrayVertexAttribLFormatEXT
+  :: MonadIO m
+  => GLuint -- ^ @vaobj@.
+  -> GLuint -- ^ @attribindex@.
+  -> GLint -- ^ @size@.
+  -> GLenum -- ^ @type@ of type [VertexAttribLType](Graphics-GL-Groups.html#VertexAttribLType).
+  -> GLuint -- ^ @relativeoffset@.
+  -> m ()
+glVertexArrayVertexAttribLFormatEXT v1 v2 v3 v4 v5 = liftIO $ dyn886 ptr_glVertexArrayVertexAttribLFormatEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glVertexArrayVertexAttribLFormatEXT #-}
+ptr_glVertexArrayVertexAttribLFormatEXT :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLuint -> IO ())
+ptr_glVertexArrayVertexAttribLFormatEXT = unsafePerformIO $ getCommand "glVertexArrayVertexAttribLFormatEXT"
+
+-- glVertexArrayVertexAttribLOffsetEXT -----------------------------------------
+
+glVertexArrayVertexAttribLOffsetEXT
+  :: MonadIO m
+  => GLuint -- ^ @vaobj@.
+  -> GLuint -- ^ @buffer@.
+  -> GLuint -- ^ @index@.
+  -> GLint -- ^ @size@.
+  -> GLenum -- ^ @type@ of type [VertexAttribLType](Graphics-GL-Groups.html#VertexAttribLType).
+  -> GLsizei -- ^ @stride@.
+  -> GLintptr -- ^ @offset@ of type @BufferOffset@.
+  -> m ()
+glVertexArrayVertexAttribLOffsetEXT v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn892 ptr_glVertexArrayVertexAttribLOffsetEXT v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glVertexArrayVertexAttribLOffsetEXT #-}
+ptr_glVertexArrayVertexAttribLOffsetEXT :: FunPtr (GLuint -> GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> IO ())
+ptr_glVertexArrayVertexAttribLOffsetEXT = unsafePerformIO $ getCommand "glVertexArrayVertexAttribLOffsetEXT"
+
+-- glVertexArrayVertexAttribOffsetEXT ------------------------------------------
+
+glVertexArrayVertexAttribOffsetEXT
+  :: MonadIO m
+  => GLuint -- ^ @vaobj@.
+  -> GLuint -- ^ @buffer@.
+  -> GLuint -- ^ @index@.
+  -> GLint -- ^ @size@.
+  -> GLenum -- ^ @type@ of type [VertexAttribPointerType](Graphics-GL-Groups.html#VertexAttribPointerType).
+  -> GLboolean -- ^ @normalized@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> GLsizei -- ^ @stride@.
+  -> GLintptr -- ^ @offset@.
+  -> m ()
+glVertexArrayVertexAttribOffsetEXT v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn893 ptr_glVertexArrayVertexAttribOffsetEXT v1 v2 v3 v4 v5 v6 v7 v8
+
+{-# NOINLINE ptr_glVertexArrayVertexAttribOffsetEXT #-}
+ptr_glVertexArrayVertexAttribOffsetEXT :: FunPtr (GLuint -> GLuint -> GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> GLintptr -> IO ())
+ptr_glVertexArrayVertexAttribOffsetEXT = unsafePerformIO $ getCommand "glVertexArrayVertexAttribOffsetEXT"
+
diff --git a/src/Graphics/GL/Functions/F30.hs b/src/Graphics/GL/Functions/F30.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Functions/F30.hs
@@ -0,0 +1,1597 @@
+{-# OPTIONS_HADDOCK hide #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Functions.F30
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- Raw functions from the
+-- <http://www.opengl.org/registry/ OpenGL registry>.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Functions.F30 (
+  glVertexArrayVertexBindingDivisorEXT,
+  glVertexArrayVertexBuffer,
+  glVertexArrayVertexBuffers,
+  glVertexArrayVertexOffsetEXT,
+  glVertexAttrib1d,
+  glVertexAttrib1dARB,
+  glVertexAttrib1dNV,
+  glVertexAttrib1dv,
+  glVertexAttrib1dvARB,
+  glVertexAttrib1dvNV,
+  glVertexAttrib1f,
+  glVertexAttrib1fARB,
+  glVertexAttrib1fNV,
+  glVertexAttrib1fv,
+  glVertexAttrib1fvARB,
+  glVertexAttrib1fvNV,
+  glVertexAttrib1hNV,
+  glVertexAttrib1hvNV,
+  glVertexAttrib1s,
+  glVertexAttrib1sARB,
+  glVertexAttrib1sNV,
+  glVertexAttrib1sv,
+  glVertexAttrib1svARB,
+  glVertexAttrib1svNV,
+  glVertexAttrib2d,
+  glVertexAttrib2dARB,
+  glVertexAttrib2dNV,
+  glVertexAttrib2dv,
+  glVertexAttrib2dvARB,
+  glVertexAttrib2dvNV,
+  glVertexAttrib2f,
+  glVertexAttrib2fARB,
+  glVertexAttrib2fNV,
+  glVertexAttrib2fv,
+  glVertexAttrib2fvARB,
+  glVertexAttrib2fvNV,
+  glVertexAttrib2hNV,
+  glVertexAttrib2hvNV,
+  glVertexAttrib2s,
+  glVertexAttrib2sARB,
+  glVertexAttrib2sNV,
+  glVertexAttrib2sv,
+  glVertexAttrib2svARB,
+  glVertexAttrib2svNV,
+  glVertexAttrib3d,
+  glVertexAttrib3dARB,
+  glVertexAttrib3dNV,
+  glVertexAttrib3dv,
+  glVertexAttrib3dvARB,
+  glVertexAttrib3dvNV,
+  glVertexAttrib3f,
+  glVertexAttrib3fARB,
+  glVertexAttrib3fNV,
+  glVertexAttrib3fv,
+  glVertexAttrib3fvARB,
+  glVertexAttrib3fvNV,
+  glVertexAttrib3hNV,
+  glVertexAttrib3hvNV,
+  glVertexAttrib3s,
+  glVertexAttrib3sARB,
+  glVertexAttrib3sNV,
+  glVertexAttrib3sv,
+  glVertexAttrib3svARB,
+  glVertexAttrib3svNV,
+  glVertexAttrib4Nbv,
+  glVertexAttrib4NbvARB,
+  glVertexAttrib4Niv,
+  glVertexAttrib4NivARB,
+  glVertexAttrib4Nsv,
+  glVertexAttrib4NsvARB,
+  glVertexAttrib4Nub,
+  glVertexAttrib4NubARB,
+  glVertexAttrib4Nubv,
+  glVertexAttrib4NubvARB,
+  glVertexAttrib4Nuiv,
+  glVertexAttrib4NuivARB,
+  glVertexAttrib4Nusv,
+  glVertexAttrib4NusvARB,
+  glVertexAttrib4bv,
+  glVertexAttrib4bvARB,
+  glVertexAttrib4d,
+  glVertexAttrib4dARB,
+  glVertexAttrib4dNV,
+  glVertexAttrib4dv,
+  glVertexAttrib4dvARB,
+  glVertexAttrib4dvNV,
+  glVertexAttrib4f,
+  glVertexAttrib4fARB,
+  glVertexAttrib4fNV,
+  glVertexAttrib4fv,
+  glVertexAttrib4fvARB,
+  glVertexAttrib4fvNV,
+  glVertexAttrib4hNV,
+  glVertexAttrib4hvNV,
+  glVertexAttrib4iv,
+  glVertexAttrib4ivARB,
+  glVertexAttrib4s,
+  glVertexAttrib4sARB,
+  glVertexAttrib4sNV,
+  glVertexAttrib4sv
+) where
+
+import Control.Monad.IO.Class ( MonadIO(..) )
+import Foreign.Ptr
+import Graphics.GL.Foreign
+import Graphics.GL.Types
+import System.IO.Unsafe ( unsafePerformIO )
+
+-- glVertexArrayVertexBindingDivisorEXT ----------------------------------------
+
+glVertexArrayVertexBindingDivisorEXT
+  :: MonadIO m
+  => GLuint -- ^ @vaobj@.
+  -> GLuint -- ^ @bindingindex@.
+  -> GLuint -- ^ @divisor@.
+  -> m ()
+glVertexArrayVertexBindingDivisorEXT v1 v2 v3 = liftIO $ dyn109 ptr_glVertexArrayVertexBindingDivisorEXT v1 v2 v3
+
+{-# NOINLINE ptr_glVertexArrayVertexBindingDivisorEXT #-}
+ptr_glVertexArrayVertexBindingDivisorEXT :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
+ptr_glVertexArrayVertexBindingDivisorEXT = unsafePerformIO $ getCommand "glVertexArrayVertexBindingDivisorEXT"
+
+-- glVertexArrayVertexBuffer ---------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glBindVertexBuffer.xhtml OpenGL 4.x>.
+glVertexArrayVertexBuffer
+  :: MonadIO m
+  => GLuint -- ^ @vaobj@.
+  -> GLuint -- ^ @bindingindex@.
+  -> GLuint -- ^ @buffer@.
+  -> GLintptr -- ^ @offset@.
+  -> GLsizei -- ^ @stride@.
+  -> m ()
+glVertexArrayVertexBuffer v1 v2 v3 v4 v5 = liftIO $ dyn887 ptr_glVertexArrayVertexBuffer v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glVertexArrayVertexBuffer #-}
+ptr_glVertexArrayVertexBuffer :: FunPtr (GLuint -> GLuint -> GLuint -> GLintptr -> GLsizei -> IO ())
+ptr_glVertexArrayVertexBuffer = unsafePerformIO $ getCommand "glVertexArrayVertexBuffer"
+
+-- glVertexArrayVertexBuffers --------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glBindVertexBuffers.xhtml OpenGL 4.x>.
+glVertexArrayVertexBuffers
+  :: MonadIO m
+  => GLuint -- ^ @vaobj@.
+  -> GLuint -- ^ @first@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLuint -- ^ @buffers@.
+  -> Ptr GLintptr -- ^ @offsets@.
+  -> Ptr GLsizei -- ^ @strides@.
+  -> m ()
+glVertexArrayVertexBuffers v1 v2 v3 v4 v5 v6 = liftIO $ dyn894 ptr_glVertexArrayVertexBuffers v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glVertexArrayVertexBuffers #-}
+ptr_glVertexArrayVertexBuffers :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLintptr -> Ptr GLsizei -> IO ())
+ptr_glVertexArrayVertexBuffers = unsafePerformIO $ getCommand "glVertexArrayVertexBuffers"
+
+-- glVertexArrayVertexOffsetEXT ------------------------------------------------
+
+glVertexArrayVertexOffsetEXT
+  :: MonadIO m
+  => GLuint -- ^ @vaobj@.
+  -> GLuint -- ^ @buffer@.
+  -> GLint -- ^ @size@.
+  -> GLenum -- ^ @type@ of type [VertexPointerType](Graphics-GL-Groups.html#VertexPointerType).
+  -> GLsizei -- ^ @stride@.
+  -> GLintptr -- ^ @offset@.
+  -> m ()
+glVertexArrayVertexOffsetEXT v1 v2 v3 v4 v5 v6 = liftIO $ dyn888 ptr_glVertexArrayVertexOffsetEXT v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glVertexArrayVertexOffsetEXT #-}
+ptr_glVertexArrayVertexOffsetEXT :: FunPtr (GLuint -> GLuint -> GLint -> GLenum -> GLsizei -> GLintptr -> IO ())
+ptr_glVertexArrayVertexOffsetEXT = unsafePerformIO $ getCommand "glVertexArrayVertexOffsetEXT"
+
+-- glVertexAttrib1d ------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>. The vector equivalent of this command is 'glVertexAttrib1dv'.
+glVertexAttrib1d
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLdouble -- ^ @x@.
+  -> m ()
+glVertexAttrib1d v1 v2 = liftIO $ dyn895 ptr_glVertexAttrib1d v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib1d #-}
+ptr_glVertexAttrib1d :: FunPtr (GLuint -> GLdouble -> IO ())
+ptr_glVertexAttrib1d = unsafePerformIO $ getCommand "glVertexAttrib1d"
+
+-- glVertexAttrib1dARB ---------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glVertexAttrib1dvARB'. This command is an alias for 'glVertexAttrib1d'.
+glVertexAttrib1dARB
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLdouble -- ^ @x@.
+  -> m ()
+glVertexAttrib1dARB v1 v2 = liftIO $ dyn895 ptr_glVertexAttrib1dARB v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib1dARB #-}
+ptr_glVertexAttrib1dARB :: FunPtr (GLuint -> GLdouble -> IO ())
+ptr_glVertexAttrib1dARB = unsafePerformIO $ getCommand "glVertexAttrib1dARB"
+
+-- glVertexAttrib1dNV ----------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glVertexAttrib1dvNV'. This command is an alias for 'glVertexAttrib1d'.
+glVertexAttrib1dNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLdouble -- ^ @x@.
+  -> m ()
+glVertexAttrib1dNV v1 v2 = liftIO $ dyn895 ptr_glVertexAttrib1dNV v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib1dNV #-}
+ptr_glVertexAttrib1dNV :: FunPtr (GLuint -> GLdouble -> IO ())
+ptr_glVertexAttrib1dNV = unsafePerformIO $ getCommand "glVertexAttrib1dNV"
+
+-- glVertexAttrib1dv -----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>.
+glVertexAttrib1dv
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLdouble -- ^ @v@ pointing to @1@ element of type @GLdouble@.
+  -> m ()
+glVertexAttrib1dv v1 v2 = liftIO $ dyn882 ptr_glVertexAttrib1dv v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib1dv #-}
+ptr_glVertexAttrib1dv :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+ptr_glVertexAttrib1dv = unsafePerformIO $ getCommand "glVertexAttrib1dv"
+
+-- glVertexAttrib1dvARB --------------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttrib1dv'.
+glVertexAttrib1dvARB
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLdouble -- ^ @v@ pointing to @1@ element of type @GLdouble@.
+  -> m ()
+glVertexAttrib1dvARB v1 v2 = liftIO $ dyn882 ptr_glVertexAttrib1dvARB v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib1dvARB #-}
+ptr_glVertexAttrib1dvARB :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+ptr_glVertexAttrib1dvARB = unsafePerformIO $ getCommand "glVertexAttrib1dvARB"
+
+-- glVertexAttrib1dvNV ---------------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttrib1dv'.
+glVertexAttrib1dvNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLdouble -- ^ @v@ pointing to @1@ element of type @GLdouble@.
+  -> m ()
+glVertexAttrib1dvNV v1 v2 = liftIO $ dyn882 ptr_glVertexAttrib1dvNV v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib1dvNV #-}
+ptr_glVertexAttrib1dvNV :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+ptr_glVertexAttrib1dvNV = unsafePerformIO $ getCommand "glVertexAttrib1dvNV"
+
+-- glVertexAttrib1f ------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>. The vector equivalent of this command is 'glVertexAttrib1fv'.
+glVertexAttrib1f
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLfloat -- ^ @x@.
+  -> m ()
+glVertexAttrib1f v1 v2 = liftIO $ dyn896 ptr_glVertexAttrib1f v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib1f #-}
+ptr_glVertexAttrib1f :: FunPtr (GLuint -> GLfloat -> IO ())
+ptr_glVertexAttrib1f = unsafePerformIO $ getCommand "glVertexAttrib1f"
+
+-- glVertexAttrib1fARB ---------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glVertexAttrib1fvARB'. This command is an alias for 'glVertexAttrib1f'.
+glVertexAttrib1fARB
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLfloat -- ^ @x@.
+  -> m ()
+glVertexAttrib1fARB v1 v2 = liftIO $ dyn896 ptr_glVertexAttrib1fARB v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib1fARB #-}
+ptr_glVertexAttrib1fARB :: FunPtr (GLuint -> GLfloat -> IO ())
+ptr_glVertexAttrib1fARB = unsafePerformIO $ getCommand "glVertexAttrib1fARB"
+
+-- glVertexAttrib1fNV ----------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glVertexAttrib1fvNV'. This command is an alias for 'glVertexAttrib1f'.
+glVertexAttrib1fNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLfloat -- ^ @x@.
+  -> m ()
+glVertexAttrib1fNV v1 v2 = liftIO $ dyn896 ptr_glVertexAttrib1fNV v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib1fNV #-}
+ptr_glVertexAttrib1fNV :: FunPtr (GLuint -> GLfloat -> IO ())
+ptr_glVertexAttrib1fNV = unsafePerformIO $ getCommand "glVertexAttrib1fNV"
+
+-- glVertexAttrib1fv -----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>.
+glVertexAttrib1fv
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLfloat -- ^ @v@ pointing to @1@ element of type @GLfloat@.
+  -> m ()
+glVertexAttrib1fv v1 v2 = liftIO $ dyn394 ptr_glVertexAttrib1fv v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib1fv #-}
+ptr_glVertexAttrib1fv :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+ptr_glVertexAttrib1fv = unsafePerformIO $ getCommand "glVertexAttrib1fv"
+
+-- glVertexAttrib1fvARB --------------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttrib1fv'.
+glVertexAttrib1fvARB
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLfloat -- ^ @v@ pointing to @1@ element of type @GLfloat@.
+  -> m ()
+glVertexAttrib1fvARB v1 v2 = liftIO $ dyn394 ptr_glVertexAttrib1fvARB v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib1fvARB #-}
+ptr_glVertexAttrib1fvARB :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+ptr_glVertexAttrib1fvARB = unsafePerformIO $ getCommand "glVertexAttrib1fvARB"
+
+-- glVertexAttrib1fvNV ---------------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttrib1fv'.
+glVertexAttrib1fvNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLfloat -- ^ @v@ pointing to @1@ element of type @GLfloat@.
+  -> m ()
+glVertexAttrib1fvNV v1 v2 = liftIO $ dyn394 ptr_glVertexAttrib1fvNV v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib1fvNV #-}
+ptr_glVertexAttrib1fvNV :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+ptr_glVertexAttrib1fvNV = unsafePerformIO $ getCommand "glVertexAttrib1fvNV"
+
+-- glVertexAttrib1hNV ----------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glVertexAttrib1hvNV'.
+glVertexAttrib1hNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLhalfNV -- ^ @x@ of type @Half16NV@.
+  -> m ()
+glVertexAttrib1hNV v1 v2 = liftIO $ dyn897 ptr_glVertexAttrib1hNV v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib1hNV #-}
+ptr_glVertexAttrib1hNV :: FunPtr (GLuint -> GLhalfNV -> IO ())
+ptr_glVertexAttrib1hNV = unsafePerformIO $ getCommand "glVertexAttrib1hNV"
+
+-- glVertexAttrib1hvNV ---------------------------------------------------------
+
+glVertexAttrib1hvNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLhalfNV -- ^ @v@ pointing to @1@ element of type @Half16NV@.
+  -> m ()
+glVertexAttrib1hvNV v1 v2 = liftIO $ dyn898 ptr_glVertexAttrib1hvNV v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib1hvNV #-}
+ptr_glVertexAttrib1hvNV :: FunPtr (GLuint -> Ptr GLhalfNV -> IO ())
+ptr_glVertexAttrib1hvNV = unsafePerformIO $ getCommand "glVertexAttrib1hvNV"
+
+-- glVertexAttrib1s ------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>. The vector equivalent of this command is 'glVertexAttrib1sv'.
+glVertexAttrib1s
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLshort -- ^ @x@.
+  -> m ()
+glVertexAttrib1s v1 v2 = liftIO $ dyn899 ptr_glVertexAttrib1s v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib1s #-}
+ptr_glVertexAttrib1s :: FunPtr (GLuint -> GLshort -> IO ())
+ptr_glVertexAttrib1s = unsafePerformIO $ getCommand "glVertexAttrib1s"
+
+-- glVertexAttrib1sARB ---------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glVertexAttrib1svARB'. This command is an alias for 'glVertexAttrib1s'.
+glVertexAttrib1sARB
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLshort -- ^ @x@.
+  -> m ()
+glVertexAttrib1sARB v1 v2 = liftIO $ dyn899 ptr_glVertexAttrib1sARB v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib1sARB #-}
+ptr_glVertexAttrib1sARB :: FunPtr (GLuint -> GLshort -> IO ())
+ptr_glVertexAttrib1sARB = unsafePerformIO $ getCommand "glVertexAttrib1sARB"
+
+-- glVertexAttrib1sNV ----------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glVertexAttrib1svNV'. This command is an alias for 'glVertexAttrib1s'.
+glVertexAttrib1sNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLshort -- ^ @x@.
+  -> m ()
+glVertexAttrib1sNV v1 v2 = liftIO $ dyn899 ptr_glVertexAttrib1sNV v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib1sNV #-}
+ptr_glVertexAttrib1sNV :: FunPtr (GLuint -> GLshort -> IO ())
+ptr_glVertexAttrib1sNV = unsafePerformIO $ getCommand "glVertexAttrib1sNV"
+
+-- glVertexAttrib1sv -----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>.
+glVertexAttrib1sv
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLshort -- ^ @v@ pointing to @1@ element of type @GLshort@.
+  -> m ()
+glVertexAttrib1sv v1 v2 = liftIO $ dyn883 ptr_glVertexAttrib1sv v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib1sv #-}
+ptr_glVertexAttrib1sv :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+ptr_glVertexAttrib1sv = unsafePerformIO $ getCommand "glVertexAttrib1sv"
+
+-- glVertexAttrib1svARB --------------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttrib1sv'.
+glVertexAttrib1svARB
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLshort -- ^ @v@ pointing to @1@ element of type @GLshort@.
+  -> m ()
+glVertexAttrib1svARB v1 v2 = liftIO $ dyn883 ptr_glVertexAttrib1svARB v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib1svARB #-}
+ptr_glVertexAttrib1svARB :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+ptr_glVertexAttrib1svARB = unsafePerformIO $ getCommand "glVertexAttrib1svARB"
+
+-- glVertexAttrib1svNV ---------------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttrib1sv'.
+glVertexAttrib1svNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLshort -- ^ @v@ pointing to @1@ element of type @GLshort@.
+  -> m ()
+glVertexAttrib1svNV v1 v2 = liftIO $ dyn883 ptr_glVertexAttrib1svNV v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib1svNV #-}
+ptr_glVertexAttrib1svNV :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+ptr_glVertexAttrib1svNV = unsafePerformIO $ getCommand "glVertexAttrib1svNV"
+
+-- glVertexAttrib2d ------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>. The vector equivalent of this command is 'glVertexAttrib2dv'.
+glVertexAttrib2d
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLdouble -- ^ @x@.
+  -> GLdouble -- ^ @y@.
+  -> m ()
+glVertexAttrib2d v1 v2 v3 = liftIO $ dyn228 ptr_glVertexAttrib2d v1 v2 v3
+
+{-# NOINLINE ptr_glVertexAttrib2d #-}
+ptr_glVertexAttrib2d :: FunPtr (GLuint -> GLdouble -> GLdouble -> IO ())
+ptr_glVertexAttrib2d = unsafePerformIO $ getCommand "glVertexAttrib2d"
+
+-- glVertexAttrib2dARB ---------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glVertexAttrib2dvARB'. This command is an alias for 'glVertexAttrib2d'.
+glVertexAttrib2dARB
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLdouble -- ^ @x@.
+  -> GLdouble -- ^ @y@.
+  -> m ()
+glVertexAttrib2dARB v1 v2 v3 = liftIO $ dyn228 ptr_glVertexAttrib2dARB v1 v2 v3
+
+{-# NOINLINE ptr_glVertexAttrib2dARB #-}
+ptr_glVertexAttrib2dARB :: FunPtr (GLuint -> GLdouble -> GLdouble -> IO ())
+ptr_glVertexAttrib2dARB = unsafePerformIO $ getCommand "glVertexAttrib2dARB"
+
+-- glVertexAttrib2dNV ----------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glVertexAttrib2dvNV'. This command is an alias for 'glVertexAttrib2d'.
+glVertexAttrib2dNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLdouble -- ^ @x@.
+  -> GLdouble -- ^ @y@.
+  -> m ()
+glVertexAttrib2dNV v1 v2 v3 = liftIO $ dyn228 ptr_glVertexAttrib2dNV v1 v2 v3
+
+{-# NOINLINE ptr_glVertexAttrib2dNV #-}
+ptr_glVertexAttrib2dNV :: FunPtr (GLuint -> GLdouble -> GLdouble -> IO ())
+ptr_glVertexAttrib2dNV = unsafePerformIO $ getCommand "glVertexAttrib2dNV"
+
+-- glVertexAttrib2dv -----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>.
+glVertexAttrib2dv
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLdouble -- ^ @v@ pointing to @2@ elements of type @GLdouble@.
+  -> m ()
+glVertexAttrib2dv v1 v2 = liftIO $ dyn882 ptr_glVertexAttrib2dv v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib2dv #-}
+ptr_glVertexAttrib2dv :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+ptr_glVertexAttrib2dv = unsafePerformIO $ getCommand "glVertexAttrib2dv"
+
+-- glVertexAttrib2dvARB --------------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttrib2dv'.
+glVertexAttrib2dvARB
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLdouble -- ^ @v@ pointing to @2@ elements of type @GLdouble@.
+  -> m ()
+glVertexAttrib2dvARB v1 v2 = liftIO $ dyn882 ptr_glVertexAttrib2dvARB v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib2dvARB #-}
+ptr_glVertexAttrib2dvARB :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+ptr_glVertexAttrib2dvARB = unsafePerformIO $ getCommand "glVertexAttrib2dvARB"
+
+-- glVertexAttrib2dvNV ---------------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttrib2dv'.
+glVertexAttrib2dvNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLdouble -- ^ @v@ pointing to @2@ elements of type @GLdouble@.
+  -> m ()
+glVertexAttrib2dvNV v1 v2 = liftIO $ dyn882 ptr_glVertexAttrib2dvNV v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib2dvNV #-}
+ptr_glVertexAttrib2dvNV :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+ptr_glVertexAttrib2dvNV = unsafePerformIO $ getCommand "glVertexAttrib2dvNV"
+
+-- glVertexAttrib2f ------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>. The vector equivalent of this command is 'glVertexAttrib2fv'.
+glVertexAttrib2f
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLfloat -- ^ @x@.
+  -> GLfloat -- ^ @y@.
+  -> m ()
+glVertexAttrib2f v1 v2 v3 = liftIO $ dyn229 ptr_glVertexAttrib2f v1 v2 v3
+
+{-# NOINLINE ptr_glVertexAttrib2f #-}
+ptr_glVertexAttrib2f :: FunPtr (GLuint -> GLfloat -> GLfloat -> IO ())
+ptr_glVertexAttrib2f = unsafePerformIO $ getCommand "glVertexAttrib2f"
+
+-- glVertexAttrib2fARB ---------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glVertexAttrib2fvARB'. This command is an alias for 'glVertexAttrib2f'.
+glVertexAttrib2fARB
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLfloat -- ^ @x@.
+  -> GLfloat -- ^ @y@.
+  -> m ()
+glVertexAttrib2fARB v1 v2 v3 = liftIO $ dyn229 ptr_glVertexAttrib2fARB v1 v2 v3
+
+{-# NOINLINE ptr_glVertexAttrib2fARB #-}
+ptr_glVertexAttrib2fARB :: FunPtr (GLuint -> GLfloat -> GLfloat -> IO ())
+ptr_glVertexAttrib2fARB = unsafePerformIO $ getCommand "glVertexAttrib2fARB"
+
+-- glVertexAttrib2fNV ----------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glVertexAttrib2fvNV'. This command is an alias for 'glVertexAttrib2f'.
+glVertexAttrib2fNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLfloat -- ^ @x@.
+  -> GLfloat -- ^ @y@.
+  -> m ()
+glVertexAttrib2fNV v1 v2 v3 = liftIO $ dyn229 ptr_glVertexAttrib2fNV v1 v2 v3
+
+{-# NOINLINE ptr_glVertexAttrib2fNV #-}
+ptr_glVertexAttrib2fNV :: FunPtr (GLuint -> GLfloat -> GLfloat -> IO ())
+ptr_glVertexAttrib2fNV = unsafePerformIO $ getCommand "glVertexAttrib2fNV"
+
+-- glVertexAttrib2fv -----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>.
+glVertexAttrib2fv
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLfloat -- ^ @v@ pointing to @2@ elements of type @GLfloat@.
+  -> m ()
+glVertexAttrib2fv v1 v2 = liftIO $ dyn394 ptr_glVertexAttrib2fv v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib2fv #-}
+ptr_glVertexAttrib2fv :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+ptr_glVertexAttrib2fv = unsafePerformIO $ getCommand "glVertexAttrib2fv"
+
+-- glVertexAttrib2fvARB --------------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttrib2fv'.
+glVertexAttrib2fvARB
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLfloat -- ^ @v@ pointing to @2@ elements of type @GLfloat@.
+  -> m ()
+glVertexAttrib2fvARB v1 v2 = liftIO $ dyn394 ptr_glVertexAttrib2fvARB v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib2fvARB #-}
+ptr_glVertexAttrib2fvARB :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+ptr_glVertexAttrib2fvARB = unsafePerformIO $ getCommand "glVertexAttrib2fvARB"
+
+-- glVertexAttrib2fvNV ---------------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttrib2fv'.
+glVertexAttrib2fvNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLfloat -- ^ @v@ pointing to @2@ elements of type @GLfloat@.
+  -> m ()
+glVertexAttrib2fvNV v1 v2 = liftIO $ dyn394 ptr_glVertexAttrib2fvNV v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib2fvNV #-}
+ptr_glVertexAttrib2fvNV :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+ptr_glVertexAttrib2fvNV = unsafePerformIO $ getCommand "glVertexAttrib2fvNV"
+
+-- glVertexAttrib2hNV ----------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glVertexAttrib2hvNV'.
+glVertexAttrib2hNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLhalfNV -- ^ @x@ of type @Half16NV@.
+  -> GLhalfNV -- ^ @y@ of type @Half16NV@.
+  -> m ()
+glVertexAttrib2hNV v1 v2 v3 = liftIO $ dyn900 ptr_glVertexAttrib2hNV v1 v2 v3
+
+{-# NOINLINE ptr_glVertexAttrib2hNV #-}
+ptr_glVertexAttrib2hNV :: FunPtr (GLuint -> GLhalfNV -> GLhalfNV -> IO ())
+ptr_glVertexAttrib2hNV = unsafePerformIO $ getCommand "glVertexAttrib2hNV"
+
+-- glVertexAttrib2hvNV ---------------------------------------------------------
+
+glVertexAttrib2hvNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLhalfNV -- ^ @v@ pointing to @2@ elements of type @Half16NV@.
+  -> m ()
+glVertexAttrib2hvNV v1 v2 = liftIO $ dyn898 ptr_glVertexAttrib2hvNV v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib2hvNV #-}
+ptr_glVertexAttrib2hvNV :: FunPtr (GLuint -> Ptr GLhalfNV -> IO ())
+ptr_glVertexAttrib2hvNV = unsafePerformIO $ getCommand "glVertexAttrib2hvNV"
+
+-- glVertexAttrib2s ------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>. The vector equivalent of this command is 'glVertexAttrib2sv'.
+glVertexAttrib2s
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLshort -- ^ @x@.
+  -> GLshort -- ^ @y@.
+  -> m ()
+glVertexAttrib2s v1 v2 v3 = liftIO $ dyn901 ptr_glVertexAttrib2s v1 v2 v3
+
+{-# NOINLINE ptr_glVertexAttrib2s #-}
+ptr_glVertexAttrib2s :: FunPtr (GLuint -> GLshort -> GLshort -> IO ())
+ptr_glVertexAttrib2s = unsafePerformIO $ getCommand "glVertexAttrib2s"
+
+-- glVertexAttrib2sARB ---------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glVertexAttrib2svARB'. This command is an alias for 'glVertexAttrib2s'.
+glVertexAttrib2sARB
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLshort -- ^ @x@.
+  -> GLshort -- ^ @y@.
+  -> m ()
+glVertexAttrib2sARB v1 v2 v3 = liftIO $ dyn901 ptr_glVertexAttrib2sARB v1 v2 v3
+
+{-# NOINLINE ptr_glVertexAttrib2sARB #-}
+ptr_glVertexAttrib2sARB :: FunPtr (GLuint -> GLshort -> GLshort -> IO ())
+ptr_glVertexAttrib2sARB = unsafePerformIO $ getCommand "glVertexAttrib2sARB"
+
+-- glVertexAttrib2sNV ----------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glVertexAttrib2svNV'. This command is an alias for 'glVertexAttrib2s'.
+glVertexAttrib2sNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLshort -- ^ @x@.
+  -> GLshort -- ^ @y@.
+  -> m ()
+glVertexAttrib2sNV v1 v2 v3 = liftIO $ dyn901 ptr_glVertexAttrib2sNV v1 v2 v3
+
+{-# NOINLINE ptr_glVertexAttrib2sNV #-}
+ptr_glVertexAttrib2sNV :: FunPtr (GLuint -> GLshort -> GLshort -> IO ())
+ptr_glVertexAttrib2sNV = unsafePerformIO $ getCommand "glVertexAttrib2sNV"
+
+-- glVertexAttrib2sv -----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>.
+glVertexAttrib2sv
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLshort -- ^ @v@ pointing to @2@ elements of type @GLshort@.
+  -> m ()
+glVertexAttrib2sv v1 v2 = liftIO $ dyn883 ptr_glVertexAttrib2sv v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib2sv #-}
+ptr_glVertexAttrib2sv :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+ptr_glVertexAttrib2sv = unsafePerformIO $ getCommand "glVertexAttrib2sv"
+
+-- glVertexAttrib2svARB --------------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttrib2sv'.
+glVertexAttrib2svARB
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLshort -- ^ @v@ pointing to @2@ elements of type @GLshort@.
+  -> m ()
+glVertexAttrib2svARB v1 v2 = liftIO $ dyn883 ptr_glVertexAttrib2svARB v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib2svARB #-}
+ptr_glVertexAttrib2svARB :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+ptr_glVertexAttrib2svARB = unsafePerformIO $ getCommand "glVertexAttrib2svARB"
+
+-- glVertexAttrib2svNV ---------------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttrib2sv'.
+glVertexAttrib2svNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLshort -- ^ @v@ pointing to @2@ elements of type @GLshort@.
+  -> m ()
+glVertexAttrib2svNV v1 v2 = liftIO $ dyn883 ptr_glVertexAttrib2svNV v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib2svNV #-}
+ptr_glVertexAttrib2svNV :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+ptr_glVertexAttrib2svNV = unsafePerformIO $ getCommand "glVertexAttrib2svNV"
+
+-- glVertexAttrib3d ------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>. The vector equivalent of this command is 'glVertexAttrib3dv'.
+glVertexAttrib3d
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLdouble -- ^ @x@.
+  -> GLdouble -- ^ @y@.
+  -> GLdouble -- ^ @z@.
+  -> m ()
+glVertexAttrib3d v1 v2 v3 v4 = liftIO $ dyn902 ptr_glVertexAttrib3d v1 v2 v3 v4
+
+{-# NOINLINE ptr_glVertexAttrib3d #-}
+ptr_glVertexAttrib3d :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> IO ())
+ptr_glVertexAttrib3d = unsafePerformIO $ getCommand "glVertexAttrib3d"
+
+-- glVertexAttrib3dARB ---------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glVertexAttrib3dvARB'. This command is an alias for 'glVertexAttrib3d'.
+glVertexAttrib3dARB
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLdouble -- ^ @x@.
+  -> GLdouble -- ^ @y@.
+  -> GLdouble -- ^ @z@.
+  -> m ()
+glVertexAttrib3dARB v1 v2 v3 v4 = liftIO $ dyn902 ptr_glVertexAttrib3dARB v1 v2 v3 v4
+
+{-# NOINLINE ptr_glVertexAttrib3dARB #-}
+ptr_glVertexAttrib3dARB :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> IO ())
+ptr_glVertexAttrib3dARB = unsafePerformIO $ getCommand "glVertexAttrib3dARB"
+
+-- glVertexAttrib3dNV ----------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glVertexAttrib3dvNV'. This command is an alias for 'glVertexAttrib3d'.
+glVertexAttrib3dNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLdouble -- ^ @x@.
+  -> GLdouble -- ^ @y@.
+  -> GLdouble -- ^ @z@.
+  -> m ()
+glVertexAttrib3dNV v1 v2 v3 v4 = liftIO $ dyn902 ptr_glVertexAttrib3dNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glVertexAttrib3dNV #-}
+ptr_glVertexAttrib3dNV :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> IO ())
+ptr_glVertexAttrib3dNV = unsafePerformIO $ getCommand "glVertexAttrib3dNV"
+
+-- glVertexAttrib3dv -----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>.
+glVertexAttrib3dv
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLdouble -- ^ @v@ pointing to @3@ elements of type @GLdouble@.
+  -> m ()
+glVertexAttrib3dv v1 v2 = liftIO $ dyn882 ptr_glVertexAttrib3dv v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib3dv #-}
+ptr_glVertexAttrib3dv :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+ptr_glVertexAttrib3dv = unsafePerformIO $ getCommand "glVertexAttrib3dv"
+
+-- glVertexAttrib3dvARB --------------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttrib3dv'.
+glVertexAttrib3dvARB
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLdouble -- ^ @v@ pointing to @3@ elements of type @GLdouble@.
+  -> m ()
+glVertexAttrib3dvARB v1 v2 = liftIO $ dyn882 ptr_glVertexAttrib3dvARB v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib3dvARB #-}
+ptr_glVertexAttrib3dvARB :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+ptr_glVertexAttrib3dvARB = unsafePerformIO $ getCommand "glVertexAttrib3dvARB"
+
+-- glVertexAttrib3dvNV ---------------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttrib3dv'.
+glVertexAttrib3dvNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLdouble -- ^ @v@ pointing to @3@ elements of type @GLdouble@.
+  -> m ()
+glVertexAttrib3dvNV v1 v2 = liftIO $ dyn882 ptr_glVertexAttrib3dvNV v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib3dvNV #-}
+ptr_glVertexAttrib3dvNV :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+ptr_glVertexAttrib3dvNV = unsafePerformIO $ getCommand "glVertexAttrib3dvNV"
+
+-- glVertexAttrib3f ------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>. The vector equivalent of this command is 'glVertexAttrib3fv'.
+glVertexAttrib3f
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLfloat -- ^ @x@.
+  -> GLfloat -- ^ @y@.
+  -> GLfloat -- ^ @z@.
+  -> m ()
+glVertexAttrib3f v1 v2 v3 v4 = liftIO $ dyn733 ptr_glVertexAttrib3f v1 v2 v3 v4
+
+{-# NOINLINE ptr_glVertexAttrib3f #-}
+ptr_glVertexAttrib3f :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glVertexAttrib3f = unsafePerformIO $ getCommand "glVertexAttrib3f"
+
+-- glVertexAttrib3fARB ---------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glVertexAttrib3fvARB'. This command is an alias for 'glVertexAttrib3f'.
+glVertexAttrib3fARB
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLfloat -- ^ @x@.
+  -> GLfloat -- ^ @y@.
+  -> GLfloat -- ^ @z@.
+  -> m ()
+glVertexAttrib3fARB v1 v2 v3 v4 = liftIO $ dyn733 ptr_glVertexAttrib3fARB v1 v2 v3 v4
+
+{-# NOINLINE ptr_glVertexAttrib3fARB #-}
+ptr_glVertexAttrib3fARB :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glVertexAttrib3fARB = unsafePerformIO $ getCommand "glVertexAttrib3fARB"
+
+-- glVertexAttrib3fNV ----------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glVertexAttrib3fvNV'. This command is an alias for 'glVertexAttrib3f'.
+glVertexAttrib3fNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLfloat -- ^ @x@.
+  -> GLfloat -- ^ @y@.
+  -> GLfloat -- ^ @z@.
+  -> m ()
+glVertexAttrib3fNV v1 v2 v3 v4 = liftIO $ dyn733 ptr_glVertexAttrib3fNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glVertexAttrib3fNV #-}
+ptr_glVertexAttrib3fNV :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glVertexAttrib3fNV = unsafePerformIO $ getCommand "glVertexAttrib3fNV"
+
+-- glVertexAttrib3fv -----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>.
+glVertexAttrib3fv
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLfloat -- ^ @v@ pointing to @3@ elements of type @GLfloat@.
+  -> m ()
+glVertexAttrib3fv v1 v2 = liftIO $ dyn394 ptr_glVertexAttrib3fv v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib3fv #-}
+ptr_glVertexAttrib3fv :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+ptr_glVertexAttrib3fv = unsafePerformIO $ getCommand "glVertexAttrib3fv"
+
+-- glVertexAttrib3fvARB --------------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttrib3fv'.
+glVertexAttrib3fvARB
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLfloat -- ^ @v@ pointing to @3@ elements of type @GLfloat@.
+  -> m ()
+glVertexAttrib3fvARB v1 v2 = liftIO $ dyn394 ptr_glVertexAttrib3fvARB v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib3fvARB #-}
+ptr_glVertexAttrib3fvARB :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+ptr_glVertexAttrib3fvARB = unsafePerformIO $ getCommand "glVertexAttrib3fvARB"
+
+-- glVertexAttrib3fvNV ---------------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttrib3fv'.
+glVertexAttrib3fvNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLfloat -- ^ @v@ pointing to @3@ elements of type @GLfloat@.
+  -> m ()
+glVertexAttrib3fvNV v1 v2 = liftIO $ dyn394 ptr_glVertexAttrib3fvNV v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib3fvNV #-}
+ptr_glVertexAttrib3fvNV :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+ptr_glVertexAttrib3fvNV = unsafePerformIO $ getCommand "glVertexAttrib3fvNV"
+
+-- glVertexAttrib3hNV ----------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glVertexAttrib3hvNV'.
+glVertexAttrib3hNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLhalfNV -- ^ @x@ of type @Half16NV@.
+  -> GLhalfNV -- ^ @y@ of type @Half16NV@.
+  -> GLhalfNV -- ^ @z@ of type @Half16NV@.
+  -> m ()
+glVertexAttrib3hNV v1 v2 v3 v4 = liftIO $ dyn903 ptr_glVertexAttrib3hNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glVertexAttrib3hNV #-}
+ptr_glVertexAttrib3hNV :: FunPtr (GLuint -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
+ptr_glVertexAttrib3hNV = unsafePerformIO $ getCommand "glVertexAttrib3hNV"
+
+-- glVertexAttrib3hvNV ---------------------------------------------------------
+
+glVertexAttrib3hvNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLhalfNV -- ^ @v@ pointing to @3@ elements of type @Half16NV@.
+  -> m ()
+glVertexAttrib3hvNV v1 v2 = liftIO $ dyn898 ptr_glVertexAttrib3hvNV v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib3hvNV #-}
+ptr_glVertexAttrib3hvNV :: FunPtr (GLuint -> Ptr GLhalfNV -> IO ())
+ptr_glVertexAttrib3hvNV = unsafePerformIO $ getCommand "glVertexAttrib3hvNV"
+
+-- glVertexAttrib3s ------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>. The vector equivalent of this command is 'glVertexAttrib3sv'.
+glVertexAttrib3s
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLshort -- ^ @x@.
+  -> GLshort -- ^ @y@.
+  -> GLshort -- ^ @z@.
+  -> m ()
+glVertexAttrib3s v1 v2 v3 v4 = liftIO $ dyn904 ptr_glVertexAttrib3s v1 v2 v3 v4
+
+{-# NOINLINE ptr_glVertexAttrib3s #-}
+ptr_glVertexAttrib3s :: FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> IO ())
+ptr_glVertexAttrib3s = unsafePerformIO $ getCommand "glVertexAttrib3s"
+
+-- glVertexAttrib3sARB ---------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glVertexAttrib3svARB'. This command is an alias for 'glVertexAttrib3s'.
+glVertexAttrib3sARB
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLshort -- ^ @x@.
+  -> GLshort -- ^ @y@.
+  -> GLshort -- ^ @z@.
+  -> m ()
+glVertexAttrib3sARB v1 v2 v3 v4 = liftIO $ dyn904 ptr_glVertexAttrib3sARB v1 v2 v3 v4
+
+{-# NOINLINE ptr_glVertexAttrib3sARB #-}
+ptr_glVertexAttrib3sARB :: FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> IO ())
+ptr_glVertexAttrib3sARB = unsafePerformIO $ getCommand "glVertexAttrib3sARB"
+
+-- glVertexAttrib3sNV ----------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glVertexAttrib3svNV'. This command is an alias for 'glVertexAttrib3s'.
+glVertexAttrib3sNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLshort -- ^ @x@.
+  -> GLshort -- ^ @y@.
+  -> GLshort -- ^ @z@.
+  -> m ()
+glVertexAttrib3sNV v1 v2 v3 v4 = liftIO $ dyn904 ptr_glVertexAttrib3sNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glVertexAttrib3sNV #-}
+ptr_glVertexAttrib3sNV :: FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> IO ())
+ptr_glVertexAttrib3sNV = unsafePerformIO $ getCommand "glVertexAttrib3sNV"
+
+-- glVertexAttrib3sv -----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>.
+glVertexAttrib3sv
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLshort -- ^ @v@ pointing to @3@ elements of type @GLshort@.
+  -> m ()
+glVertexAttrib3sv v1 v2 = liftIO $ dyn883 ptr_glVertexAttrib3sv v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib3sv #-}
+ptr_glVertexAttrib3sv :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+ptr_glVertexAttrib3sv = unsafePerformIO $ getCommand "glVertexAttrib3sv"
+
+-- glVertexAttrib3svARB --------------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttrib3sv'.
+glVertexAttrib3svARB
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLshort -- ^ @v@ pointing to @3@ elements of type @GLshort@.
+  -> m ()
+glVertexAttrib3svARB v1 v2 = liftIO $ dyn883 ptr_glVertexAttrib3svARB v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib3svARB #-}
+ptr_glVertexAttrib3svARB :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+ptr_glVertexAttrib3svARB = unsafePerformIO $ getCommand "glVertexAttrib3svARB"
+
+-- glVertexAttrib3svNV ---------------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttrib3sv'.
+glVertexAttrib3svNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLshort -- ^ @v@ pointing to @3@ elements of type @GLshort@.
+  -> m ()
+glVertexAttrib3svNV v1 v2 = liftIO $ dyn883 ptr_glVertexAttrib3svNV v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib3svNV #-}
+ptr_glVertexAttrib3svNV :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+ptr_glVertexAttrib3svNV = unsafePerformIO $ getCommand "glVertexAttrib3svNV"
+
+-- glVertexAttrib4Nbv ----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>.
+glVertexAttrib4Nbv
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLbyte -- ^ @v@ pointing to @4@ elements of type @GLbyte@.
+  -> m ()
+glVertexAttrib4Nbv v1 v2 = liftIO $ dyn881 ptr_glVertexAttrib4Nbv v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib4Nbv #-}
+ptr_glVertexAttrib4Nbv :: FunPtr (GLuint -> Ptr GLbyte -> IO ())
+ptr_glVertexAttrib4Nbv = unsafePerformIO $ getCommand "glVertexAttrib4Nbv"
+
+-- glVertexAttrib4NbvARB -------------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttrib4Nbv'.
+glVertexAttrib4NbvARB
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLbyte -- ^ @v@ pointing to @4@ elements of type @GLbyte@.
+  -> m ()
+glVertexAttrib4NbvARB v1 v2 = liftIO $ dyn881 ptr_glVertexAttrib4NbvARB v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib4NbvARB #-}
+ptr_glVertexAttrib4NbvARB :: FunPtr (GLuint -> Ptr GLbyte -> IO ())
+ptr_glVertexAttrib4NbvARB = unsafePerformIO $ getCommand "glVertexAttrib4NbvARB"
+
+-- glVertexAttrib4Niv ----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>.
+glVertexAttrib4Niv
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLint -- ^ @v@ pointing to @4@ elements of type @GLint@.
+  -> m ()
+glVertexAttrib4Niv v1 v2 = liftIO $ dyn741 ptr_glVertexAttrib4Niv v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib4Niv #-}
+ptr_glVertexAttrib4Niv :: FunPtr (GLuint -> Ptr GLint -> IO ())
+ptr_glVertexAttrib4Niv = unsafePerformIO $ getCommand "glVertexAttrib4Niv"
+
+-- glVertexAttrib4NivARB -------------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttrib4Niv'.
+glVertexAttrib4NivARB
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLint -- ^ @v@ pointing to @4@ elements of type @GLint@.
+  -> m ()
+glVertexAttrib4NivARB v1 v2 = liftIO $ dyn741 ptr_glVertexAttrib4NivARB v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib4NivARB #-}
+ptr_glVertexAttrib4NivARB :: FunPtr (GLuint -> Ptr GLint -> IO ())
+ptr_glVertexAttrib4NivARB = unsafePerformIO $ getCommand "glVertexAttrib4NivARB"
+
+-- glVertexAttrib4Nsv ----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>.
+glVertexAttrib4Nsv
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLshort -- ^ @v@ pointing to @4@ elements of type @GLshort@.
+  -> m ()
+glVertexAttrib4Nsv v1 v2 = liftIO $ dyn883 ptr_glVertexAttrib4Nsv v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib4Nsv #-}
+ptr_glVertexAttrib4Nsv :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+ptr_glVertexAttrib4Nsv = unsafePerformIO $ getCommand "glVertexAttrib4Nsv"
+
+-- glVertexAttrib4NsvARB -------------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttrib4Nsv'.
+glVertexAttrib4NsvARB
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLshort -- ^ @v@ pointing to @4@ elements of type @GLshort@.
+  -> m ()
+glVertexAttrib4NsvARB v1 v2 = liftIO $ dyn883 ptr_glVertexAttrib4NsvARB v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib4NsvARB #-}
+ptr_glVertexAttrib4NsvARB :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+ptr_glVertexAttrib4NsvARB = unsafePerformIO $ getCommand "glVertexAttrib4NsvARB"
+
+-- glVertexAttrib4Nub ----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>.
+glVertexAttrib4Nub
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLubyte -- ^ @x@.
+  -> GLubyte -- ^ @y@.
+  -> GLubyte -- ^ @z@.
+  -> GLubyte -- ^ @w@.
+  -> m ()
+glVertexAttrib4Nub v1 v2 v3 v4 v5 = liftIO $ dyn905 ptr_glVertexAttrib4Nub v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glVertexAttrib4Nub #-}
+ptr_glVertexAttrib4Nub :: FunPtr (GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> IO ())
+ptr_glVertexAttrib4Nub = unsafePerformIO $ getCommand "glVertexAttrib4Nub"
+
+-- glVertexAttrib4NubARB -------------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttrib4Nub'.
+glVertexAttrib4NubARB
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLubyte -- ^ @x@.
+  -> GLubyte -- ^ @y@.
+  -> GLubyte -- ^ @z@.
+  -> GLubyte -- ^ @w@.
+  -> m ()
+glVertexAttrib4NubARB v1 v2 v3 v4 v5 = liftIO $ dyn905 ptr_glVertexAttrib4NubARB v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glVertexAttrib4NubARB #-}
+ptr_glVertexAttrib4NubARB :: FunPtr (GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> IO ())
+ptr_glVertexAttrib4NubARB = unsafePerformIO $ getCommand "glVertexAttrib4NubARB"
+
+-- glVertexAttrib4Nubv ---------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>.
+glVertexAttrib4Nubv
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLubyte -- ^ @v@ pointing to @4@ elements of type @GLubyte@.
+  -> m ()
+glVertexAttrib4Nubv v1 v2 = liftIO $ dyn393 ptr_glVertexAttrib4Nubv v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib4Nubv #-}
+ptr_glVertexAttrib4Nubv :: FunPtr (GLuint -> Ptr GLubyte -> IO ())
+ptr_glVertexAttrib4Nubv = unsafePerformIO $ getCommand "glVertexAttrib4Nubv"
+
+-- glVertexAttrib4NubvARB ------------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttrib4Nubv'.
+glVertexAttrib4NubvARB
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLubyte -- ^ @v@ pointing to @4@ elements of type @GLubyte@.
+  -> m ()
+glVertexAttrib4NubvARB v1 v2 = liftIO $ dyn393 ptr_glVertexAttrib4NubvARB v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib4NubvARB #-}
+ptr_glVertexAttrib4NubvARB :: FunPtr (GLuint -> Ptr GLubyte -> IO ())
+ptr_glVertexAttrib4NubvARB = unsafePerformIO $ getCommand "glVertexAttrib4NubvARB"
+
+-- glVertexAttrib4Nuiv ---------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>.
+glVertexAttrib4Nuiv
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLuint -- ^ @v@ pointing to @4@ elements of type @GLuint@.
+  -> m ()
+glVertexAttrib4Nuiv v1 v2 = liftIO $ dyn201 ptr_glVertexAttrib4Nuiv v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib4Nuiv #-}
+ptr_glVertexAttrib4Nuiv :: FunPtr (GLuint -> Ptr GLuint -> IO ())
+ptr_glVertexAttrib4Nuiv = unsafePerformIO $ getCommand "glVertexAttrib4Nuiv"
+
+-- glVertexAttrib4NuivARB ------------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttrib4Nuiv'.
+glVertexAttrib4NuivARB
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLuint -- ^ @v@ pointing to @4@ elements of type @GLuint@.
+  -> m ()
+glVertexAttrib4NuivARB v1 v2 = liftIO $ dyn201 ptr_glVertexAttrib4NuivARB v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib4NuivARB #-}
+ptr_glVertexAttrib4NuivARB :: FunPtr (GLuint -> Ptr GLuint -> IO ())
+ptr_glVertexAttrib4NuivARB = unsafePerformIO $ getCommand "glVertexAttrib4NuivARB"
+
+-- glVertexAttrib4Nusv ---------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>.
+glVertexAttrib4Nusv
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLushort -- ^ @v@ pointing to @4@ elements of type @GLushort@.
+  -> m ()
+glVertexAttrib4Nusv v1 v2 = liftIO $ dyn884 ptr_glVertexAttrib4Nusv v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib4Nusv #-}
+ptr_glVertexAttrib4Nusv :: FunPtr (GLuint -> Ptr GLushort -> IO ())
+ptr_glVertexAttrib4Nusv = unsafePerformIO $ getCommand "glVertexAttrib4Nusv"
+
+-- glVertexAttrib4NusvARB ------------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttrib4Nusv'.
+glVertexAttrib4NusvARB
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLushort -- ^ @v@ pointing to @4@ elements of type @GLushort@.
+  -> m ()
+glVertexAttrib4NusvARB v1 v2 = liftIO $ dyn884 ptr_glVertexAttrib4NusvARB v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib4NusvARB #-}
+ptr_glVertexAttrib4NusvARB :: FunPtr (GLuint -> Ptr GLushort -> IO ())
+ptr_glVertexAttrib4NusvARB = unsafePerformIO $ getCommand "glVertexAttrib4NusvARB"
+
+-- glVertexAttrib4bv -----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>.
+glVertexAttrib4bv
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLbyte -- ^ @v@ pointing to @4@ elements of type @GLbyte@.
+  -> m ()
+glVertexAttrib4bv v1 v2 = liftIO $ dyn881 ptr_glVertexAttrib4bv v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib4bv #-}
+ptr_glVertexAttrib4bv :: FunPtr (GLuint -> Ptr GLbyte -> IO ())
+ptr_glVertexAttrib4bv = unsafePerformIO $ getCommand "glVertexAttrib4bv"
+
+-- glVertexAttrib4bvARB --------------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttrib4bv'.
+glVertexAttrib4bvARB
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLbyte -- ^ @v@ pointing to @4@ elements of type @GLbyte@.
+  -> m ()
+glVertexAttrib4bvARB v1 v2 = liftIO $ dyn881 ptr_glVertexAttrib4bvARB v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib4bvARB #-}
+ptr_glVertexAttrib4bvARB :: FunPtr (GLuint -> Ptr GLbyte -> IO ())
+ptr_glVertexAttrib4bvARB = unsafePerformIO $ getCommand "glVertexAttrib4bvARB"
+
+-- glVertexAttrib4d ------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>. The vector equivalent of this command is 'glVertexAttrib4dv'.
+glVertexAttrib4d
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLdouble -- ^ @x@.
+  -> GLdouble -- ^ @y@.
+  -> GLdouble -- ^ @z@.
+  -> GLdouble -- ^ @w@.
+  -> m ()
+glVertexAttrib4d v1 v2 v3 v4 v5 = liftIO $ dyn906 ptr_glVertexAttrib4d v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glVertexAttrib4d #-}
+ptr_glVertexAttrib4d :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+ptr_glVertexAttrib4d = unsafePerformIO $ getCommand "glVertexAttrib4d"
+
+-- glVertexAttrib4dARB ---------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glVertexAttrib4dvARB'. This command is an alias for 'glVertexAttrib4d'.
+glVertexAttrib4dARB
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLdouble -- ^ @x@.
+  -> GLdouble -- ^ @y@.
+  -> GLdouble -- ^ @z@.
+  -> GLdouble -- ^ @w@.
+  -> m ()
+glVertexAttrib4dARB v1 v2 v3 v4 v5 = liftIO $ dyn906 ptr_glVertexAttrib4dARB v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glVertexAttrib4dARB #-}
+ptr_glVertexAttrib4dARB :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+ptr_glVertexAttrib4dARB = unsafePerformIO $ getCommand "glVertexAttrib4dARB"
+
+-- glVertexAttrib4dNV ----------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glVertexAttrib4dvNV'. This command is an alias for 'glVertexAttrib4d'.
+glVertexAttrib4dNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLdouble -- ^ @x@.
+  -> GLdouble -- ^ @y@.
+  -> GLdouble -- ^ @z@.
+  -> GLdouble -- ^ @w@.
+  -> m ()
+glVertexAttrib4dNV v1 v2 v3 v4 v5 = liftIO $ dyn906 ptr_glVertexAttrib4dNV v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glVertexAttrib4dNV #-}
+ptr_glVertexAttrib4dNV :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+ptr_glVertexAttrib4dNV = unsafePerformIO $ getCommand "glVertexAttrib4dNV"
+
+-- glVertexAttrib4dv -----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>.
+glVertexAttrib4dv
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLdouble -- ^ @v@ pointing to @4@ elements of type @GLdouble@.
+  -> m ()
+glVertexAttrib4dv v1 v2 = liftIO $ dyn882 ptr_glVertexAttrib4dv v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib4dv #-}
+ptr_glVertexAttrib4dv :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+ptr_glVertexAttrib4dv = unsafePerformIO $ getCommand "glVertexAttrib4dv"
+
+-- glVertexAttrib4dvARB --------------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttrib4dv'.
+glVertexAttrib4dvARB
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLdouble -- ^ @v@ pointing to @4@ elements of type @GLdouble@.
+  -> m ()
+glVertexAttrib4dvARB v1 v2 = liftIO $ dyn882 ptr_glVertexAttrib4dvARB v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib4dvARB #-}
+ptr_glVertexAttrib4dvARB :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+ptr_glVertexAttrib4dvARB = unsafePerformIO $ getCommand "glVertexAttrib4dvARB"
+
+-- glVertexAttrib4dvNV ---------------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttrib4dv'.
+glVertexAttrib4dvNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLdouble -- ^ @v@ pointing to @4@ elements of type @GLdouble@.
+  -> m ()
+glVertexAttrib4dvNV v1 v2 = liftIO $ dyn882 ptr_glVertexAttrib4dvNV v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib4dvNV #-}
+ptr_glVertexAttrib4dvNV :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+ptr_glVertexAttrib4dvNV = unsafePerformIO $ getCommand "glVertexAttrib4dvNV"
+
+-- glVertexAttrib4f ------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>. The vector equivalent of this command is 'glVertexAttrib4fv'.
+glVertexAttrib4f
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLfloat -- ^ @x@.
+  -> GLfloat -- ^ @y@.
+  -> GLfloat -- ^ @z@.
+  -> GLfloat -- ^ @w@.
+  -> m ()
+glVertexAttrib4f v1 v2 v3 v4 v5 = liftIO $ dyn907 ptr_glVertexAttrib4f v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glVertexAttrib4f #-}
+ptr_glVertexAttrib4f :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glVertexAttrib4f = unsafePerformIO $ getCommand "glVertexAttrib4f"
+
+-- glVertexAttrib4fARB ---------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glVertexAttrib4fvARB'. This command is an alias for 'glVertexAttrib4f'.
+glVertexAttrib4fARB
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLfloat -- ^ @x@.
+  -> GLfloat -- ^ @y@.
+  -> GLfloat -- ^ @z@.
+  -> GLfloat -- ^ @w@.
+  -> m ()
+glVertexAttrib4fARB v1 v2 v3 v4 v5 = liftIO $ dyn907 ptr_glVertexAttrib4fARB v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glVertexAttrib4fARB #-}
+ptr_glVertexAttrib4fARB :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glVertexAttrib4fARB = unsafePerformIO $ getCommand "glVertexAttrib4fARB"
+
+-- glVertexAttrib4fNV ----------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glVertexAttrib4fvNV'. This command is an alias for 'glVertexAttrib4f'.
+glVertexAttrib4fNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLfloat -- ^ @x@.
+  -> GLfloat -- ^ @y@.
+  -> GLfloat -- ^ @z@.
+  -> GLfloat -- ^ @w@.
+  -> m ()
+glVertexAttrib4fNV v1 v2 v3 v4 v5 = liftIO $ dyn907 ptr_glVertexAttrib4fNV v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glVertexAttrib4fNV #-}
+ptr_glVertexAttrib4fNV :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glVertexAttrib4fNV = unsafePerformIO $ getCommand "glVertexAttrib4fNV"
+
+-- glVertexAttrib4fv -----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>.
+glVertexAttrib4fv
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLfloat -- ^ @v@ pointing to @4@ elements of type @GLfloat@.
+  -> m ()
+glVertexAttrib4fv v1 v2 = liftIO $ dyn394 ptr_glVertexAttrib4fv v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib4fv #-}
+ptr_glVertexAttrib4fv :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+ptr_glVertexAttrib4fv = unsafePerformIO $ getCommand "glVertexAttrib4fv"
+
+-- glVertexAttrib4fvARB --------------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttrib4fv'.
+glVertexAttrib4fvARB
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLfloat -- ^ @v@ pointing to @4@ elements of type @GLfloat@.
+  -> m ()
+glVertexAttrib4fvARB v1 v2 = liftIO $ dyn394 ptr_glVertexAttrib4fvARB v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib4fvARB #-}
+ptr_glVertexAttrib4fvARB :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+ptr_glVertexAttrib4fvARB = unsafePerformIO $ getCommand "glVertexAttrib4fvARB"
+
+-- glVertexAttrib4fvNV ---------------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttrib4fv'.
+glVertexAttrib4fvNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLfloat -- ^ @v@ pointing to @4@ elements of type @GLfloat@.
+  -> m ()
+glVertexAttrib4fvNV v1 v2 = liftIO $ dyn394 ptr_glVertexAttrib4fvNV v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib4fvNV #-}
+ptr_glVertexAttrib4fvNV :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+ptr_glVertexAttrib4fvNV = unsafePerformIO $ getCommand "glVertexAttrib4fvNV"
+
+-- glVertexAttrib4hNV ----------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glVertexAttrib4hvNV'.
+glVertexAttrib4hNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLhalfNV -- ^ @x@ of type @Half16NV@.
+  -> GLhalfNV -- ^ @y@ of type @Half16NV@.
+  -> GLhalfNV -- ^ @z@ of type @Half16NV@.
+  -> GLhalfNV -- ^ @w@ of type @Half16NV@.
+  -> m ()
+glVertexAttrib4hNV v1 v2 v3 v4 v5 = liftIO $ dyn908 ptr_glVertexAttrib4hNV v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glVertexAttrib4hNV #-}
+ptr_glVertexAttrib4hNV :: FunPtr (GLuint -> GLhalfNV -> GLhalfNV -> GLhalfNV -> GLhalfNV -> IO ())
+ptr_glVertexAttrib4hNV = unsafePerformIO $ getCommand "glVertexAttrib4hNV"
+
+-- glVertexAttrib4hvNV ---------------------------------------------------------
+
+glVertexAttrib4hvNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLhalfNV -- ^ @v@ pointing to @4@ elements of type @Half16NV@.
+  -> m ()
+glVertexAttrib4hvNV v1 v2 = liftIO $ dyn898 ptr_glVertexAttrib4hvNV v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib4hvNV #-}
+ptr_glVertexAttrib4hvNV :: FunPtr (GLuint -> Ptr GLhalfNV -> IO ())
+ptr_glVertexAttrib4hvNV = unsafePerformIO $ getCommand "glVertexAttrib4hvNV"
+
+-- glVertexAttrib4iv -----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>.
+glVertexAttrib4iv
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLint -- ^ @v@ pointing to @4@ elements of type @GLint@.
+  -> m ()
+glVertexAttrib4iv v1 v2 = liftIO $ dyn741 ptr_glVertexAttrib4iv v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib4iv #-}
+ptr_glVertexAttrib4iv :: FunPtr (GLuint -> Ptr GLint -> IO ())
+ptr_glVertexAttrib4iv = unsafePerformIO $ getCommand "glVertexAttrib4iv"
+
+-- glVertexAttrib4ivARB --------------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttrib4iv'.
+glVertexAttrib4ivARB
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLint -- ^ @v@ pointing to @4@ elements of type @GLint@.
+  -> m ()
+glVertexAttrib4ivARB v1 v2 = liftIO $ dyn741 ptr_glVertexAttrib4ivARB v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib4ivARB #-}
+ptr_glVertexAttrib4ivARB :: FunPtr (GLuint -> Ptr GLint -> IO ())
+ptr_glVertexAttrib4ivARB = unsafePerformIO $ getCommand "glVertexAttrib4ivARB"
+
+-- glVertexAttrib4s ------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>. The vector equivalent of this command is 'glVertexAttrib4sv'.
+glVertexAttrib4s
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLshort -- ^ @x@.
+  -> GLshort -- ^ @y@.
+  -> GLshort -- ^ @z@.
+  -> GLshort -- ^ @w@.
+  -> m ()
+glVertexAttrib4s v1 v2 v3 v4 v5 = liftIO $ dyn909 ptr_glVertexAttrib4s v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glVertexAttrib4s #-}
+ptr_glVertexAttrib4s :: FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> IO ())
+ptr_glVertexAttrib4s = unsafePerformIO $ getCommand "glVertexAttrib4s"
+
+-- glVertexAttrib4sARB ---------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glVertexAttrib4svARB'. This command is an alias for 'glVertexAttrib4s'.
+glVertexAttrib4sARB
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLshort -- ^ @x@.
+  -> GLshort -- ^ @y@.
+  -> GLshort -- ^ @z@.
+  -> GLshort -- ^ @w@.
+  -> m ()
+glVertexAttrib4sARB v1 v2 v3 v4 v5 = liftIO $ dyn909 ptr_glVertexAttrib4sARB v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glVertexAttrib4sARB #-}
+ptr_glVertexAttrib4sARB :: FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> IO ())
+ptr_glVertexAttrib4sARB = unsafePerformIO $ getCommand "glVertexAttrib4sARB"
+
+-- glVertexAttrib4sNV ----------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glVertexAttrib4svNV'. This command is an alias for 'glVertexAttrib4s'.
+glVertexAttrib4sNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLshort -- ^ @x@.
+  -> GLshort -- ^ @y@.
+  -> GLshort -- ^ @z@.
+  -> GLshort -- ^ @w@.
+  -> m ()
+glVertexAttrib4sNV v1 v2 v3 v4 v5 = liftIO $ dyn909 ptr_glVertexAttrib4sNV v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glVertexAttrib4sNV #-}
+ptr_glVertexAttrib4sNV :: FunPtr (GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> IO ())
+ptr_glVertexAttrib4sNV = unsafePerformIO $ getCommand "glVertexAttrib4sNV"
+
+-- glVertexAttrib4sv -----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>.
+glVertexAttrib4sv
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLshort -- ^ @v@ pointing to @4@ elements of type @GLshort@.
+  -> m ()
+glVertexAttrib4sv v1 v2 = liftIO $ dyn883 ptr_glVertexAttrib4sv v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib4sv #-}
+ptr_glVertexAttrib4sv :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+ptr_glVertexAttrib4sv = unsafePerformIO $ getCommand "glVertexAttrib4sv"
+
diff --git a/src/Graphics/GL/Functions/F31.hs b/src/Graphics/GL/Functions/F31.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Functions/F31.hs
@@ -0,0 +1,1582 @@
+{-# OPTIONS_HADDOCK hide #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Functions.F31
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- Raw functions from the
+-- <http://www.opengl.org/registry/ OpenGL registry>.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Functions.F31 (
+  glVertexAttrib4svARB,
+  glVertexAttrib4svNV,
+  glVertexAttrib4ubNV,
+  glVertexAttrib4ubv,
+  glVertexAttrib4ubvARB,
+  glVertexAttrib4ubvNV,
+  glVertexAttrib4uiv,
+  glVertexAttrib4uivARB,
+  glVertexAttrib4usv,
+  glVertexAttrib4usvARB,
+  glVertexAttribArrayObjectATI,
+  glVertexAttribBinding,
+  glVertexAttribDivisor,
+  glVertexAttribDivisorANGLE,
+  glVertexAttribDivisorARB,
+  glVertexAttribDivisorEXT,
+  glVertexAttribDivisorNV,
+  glVertexAttribFormat,
+  glVertexAttribFormatNV,
+  glVertexAttribI1i,
+  glVertexAttribI1iEXT,
+  glVertexAttribI1iv,
+  glVertexAttribI1ivEXT,
+  glVertexAttribI1ui,
+  glVertexAttribI1uiEXT,
+  glVertexAttribI1uiv,
+  glVertexAttribI1uivEXT,
+  glVertexAttribI2i,
+  glVertexAttribI2iEXT,
+  glVertexAttribI2iv,
+  glVertexAttribI2ivEXT,
+  glVertexAttribI2ui,
+  glVertexAttribI2uiEXT,
+  glVertexAttribI2uiv,
+  glVertexAttribI2uivEXT,
+  glVertexAttribI3i,
+  glVertexAttribI3iEXT,
+  glVertexAttribI3iv,
+  glVertexAttribI3ivEXT,
+  glVertexAttribI3ui,
+  glVertexAttribI3uiEXT,
+  glVertexAttribI3uiv,
+  glVertexAttribI3uivEXT,
+  glVertexAttribI4bv,
+  glVertexAttribI4bvEXT,
+  glVertexAttribI4i,
+  glVertexAttribI4iEXT,
+  glVertexAttribI4iv,
+  glVertexAttribI4ivEXT,
+  glVertexAttribI4sv,
+  glVertexAttribI4svEXT,
+  glVertexAttribI4ubv,
+  glVertexAttribI4ubvEXT,
+  glVertexAttribI4ui,
+  glVertexAttribI4uiEXT,
+  glVertexAttribI4uiv,
+  glVertexAttribI4uivEXT,
+  glVertexAttribI4usv,
+  glVertexAttribI4usvEXT,
+  glVertexAttribIFormat,
+  glVertexAttribIFormatNV,
+  glVertexAttribIPointer,
+  glVertexAttribIPointerEXT,
+  glVertexAttribL1d,
+  glVertexAttribL1dEXT,
+  glVertexAttribL1dv,
+  glVertexAttribL1dvEXT,
+  glVertexAttribL1i64NV,
+  glVertexAttribL1i64vNV,
+  glVertexAttribL1ui64ARB,
+  glVertexAttribL1ui64NV,
+  glVertexAttribL1ui64vARB,
+  glVertexAttribL1ui64vNV,
+  glVertexAttribL2d,
+  glVertexAttribL2dEXT,
+  glVertexAttribL2dv,
+  glVertexAttribL2dvEXT,
+  glVertexAttribL2i64NV,
+  glVertexAttribL2i64vNV,
+  glVertexAttribL2ui64NV,
+  glVertexAttribL2ui64vNV,
+  glVertexAttribL3d,
+  glVertexAttribL3dEXT,
+  glVertexAttribL3dv,
+  glVertexAttribL3dvEXT,
+  glVertexAttribL3i64NV,
+  glVertexAttribL3i64vNV,
+  glVertexAttribL3ui64NV,
+  glVertexAttribL3ui64vNV,
+  glVertexAttribL4d,
+  glVertexAttribL4dEXT,
+  glVertexAttribL4dv,
+  glVertexAttribL4dvEXT,
+  glVertexAttribL4i64NV,
+  glVertexAttribL4i64vNV,
+  glVertexAttribL4ui64NV,
+  glVertexAttribL4ui64vNV,
+  glVertexAttribLFormat,
+  glVertexAttribLFormatNV,
+  glVertexAttribLPointer
+) where
+
+import Control.Monad.IO.Class ( MonadIO(..) )
+import Foreign.Ptr
+import Graphics.GL.Foreign
+import Graphics.GL.Types
+import System.IO.Unsafe ( unsafePerformIO )
+
+-- glVertexAttrib4svARB --------------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttrib4sv'.
+glVertexAttrib4svARB
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLshort -- ^ @v@ pointing to @4@ elements of type @GLshort@.
+  -> m ()
+glVertexAttrib4svARB v1 v2 = liftIO $ dyn883 ptr_glVertexAttrib4svARB v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib4svARB #-}
+ptr_glVertexAttrib4svARB :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+ptr_glVertexAttrib4svARB = unsafePerformIO $ getCommand "glVertexAttrib4svARB"
+
+-- glVertexAttrib4svNV ---------------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttrib4sv'.
+glVertexAttrib4svNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLshort -- ^ @v@ pointing to @4@ elements of type @GLshort@.
+  -> m ()
+glVertexAttrib4svNV v1 v2 = liftIO $ dyn883 ptr_glVertexAttrib4svNV v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib4svNV #-}
+ptr_glVertexAttrib4svNV :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+ptr_glVertexAttrib4svNV = unsafePerformIO $ getCommand "glVertexAttrib4svNV"
+
+-- glVertexAttrib4ubNV ---------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glVertexAttrib4ubvNV'. This command is an alias for 'glVertexAttrib4Nub'.
+glVertexAttrib4ubNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLubyte -- ^ @x@ of type @ColorUB@.
+  -> GLubyte -- ^ @y@ of type @ColorUB@.
+  -> GLubyte -- ^ @z@ of type @ColorUB@.
+  -> GLubyte -- ^ @w@ of type @ColorUB@.
+  -> m ()
+glVertexAttrib4ubNV v1 v2 v3 v4 v5 = liftIO $ dyn905 ptr_glVertexAttrib4ubNV v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glVertexAttrib4ubNV #-}
+ptr_glVertexAttrib4ubNV :: FunPtr (GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> IO ())
+ptr_glVertexAttrib4ubNV = unsafePerformIO $ getCommand "glVertexAttrib4ubNV"
+
+-- glVertexAttrib4ubv ----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>.
+glVertexAttrib4ubv
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLubyte -- ^ @v@ pointing to @4@ elements of type @GLubyte@.
+  -> m ()
+glVertexAttrib4ubv v1 v2 = liftIO $ dyn393 ptr_glVertexAttrib4ubv v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib4ubv #-}
+ptr_glVertexAttrib4ubv :: FunPtr (GLuint -> Ptr GLubyte -> IO ())
+ptr_glVertexAttrib4ubv = unsafePerformIO $ getCommand "glVertexAttrib4ubv"
+
+-- glVertexAttrib4ubvARB -------------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttrib4ubv'.
+glVertexAttrib4ubvARB
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLubyte -- ^ @v@ pointing to @4@ elements of type @GLubyte@.
+  -> m ()
+glVertexAttrib4ubvARB v1 v2 = liftIO $ dyn393 ptr_glVertexAttrib4ubvARB v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib4ubvARB #-}
+ptr_glVertexAttrib4ubvARB :: FunPtr (GLuint -> Ptr GLubyte -> IO ())
+ptr_glVertexAttrib4ubvARB = unsafePerformIO $ getCommand "glVertexAttrib4ubvARB"
+
+-- glVertexAttrib4ubvNV --------------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttrib4Nubv'.
+glVertexAttrib4ubvNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLubyte -- ^ @v@ pointing to @4@ elements of type @ColorUB@.
+  -> m ()
+glVertexAttrib4ubvNV v1 v2 = liftIO $ dyn393 ptr_glVertexAttrib4ubvNV v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib4ubvNV #-}
+ptr_glVertexAttrib4ubvNV :: FunPtr (GLuint -> Ptr GLubyte -> IO ())
+ptr_glVertexAttrib4ubvNV = unsafePerformIO $ getCommand "glVertexAttrib4ubvNV"
+
+-- glVertexAttrib4uiv ----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>.
+glVertexAttrib4uiv
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLuint -- ^ @v@ pointing to @4@ elements of type @GLuint@.
+  -> m ()
+glVertexAttrib4uiv v1 v2 = liftIO $ dyn201 ptr_glVertexAttrib4uiv v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib4uiv #-}
+ptr_glVertexAttrib4uiv :: FunPtr (GLuint -> Ptr GLuint -> IO ())
+ptr_glVertexAttrib4uiv = unsafePerformIO $ getCommand "glVertexAttrib4uiv"
+
+-- glVertexAttrib4uivARB -------------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttrib4uiv'.
+glVertexAttrib4uivARB
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLuint -- ^ @v@ pointing to @4@ elements of type @GLuint@.
+  -> m ()
+glVertexAttrib4uivARB v1 v2 = liftIO $ dyn201 ptr_glVertexAttrib4uivARB v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib4uivARB #-}
+ptr_glVertexAttrib4uivARB :: FunPtr (GLuint -> Ptr GLuint -> IO ())
+ptr_glVertexAttrib4uivARB = unsafePerformIO $ getCommand "glVertexAttrib4uivARB"
+
+-- glVertexAttrib4usv ----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>.
+glVertexAttrib4usv
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLushort -- ^ @v@ pointing to @4@ elements of type @GLushort@.
+  -> m ()
+glVertexAttrib4usv v1 v2 = liftIO $ dyn884 ptr_glVertexAttrib4usv v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib4usv #-}
+ptr_glVertexAttrib4usv :: FunPtr (GLuint -> Ptr GLushort -> IO ())
+ptr_glVertexAttrib4usv = unsafePerformIO $ getCommand "glVertexAttrib4usv"
+
+-- glVertexAttrib4usvARB -------------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttrib4usv'.
+glVertexAttrib4usvARB
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLushort -- ^ @v@ pointing to @4@ elements of type @GLushort@.
+  -> m ()
+glVertexAttrib4usvARB v1 v2 = liftIO $ dyn884 ptr_glVertexAttrib4usvARB v1 v2
+
+{-# NOINLINE ptr_glVertexAttrib4usvARB #-}
+ptr_glVertexAttrib4usvARB :: FunPtr (GLuint -> Ptr GLushort -> IO ())
+ptr_glVertexAttrib4usvARB = unsafePerformIO $ getCommand "glVertexAttrib4usvARB"
+
+-- glVertexAttribArrayObjectATI ------------------------------------------------
+
+glVertexAttribArrayObjectATI
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLint -- ^ @size@.
+  -> GLenum -- ^ @type@ of type [VertexAttribPointerType](Graphics-GL-Groups.html#VertexAttribPointerType).
+  -> GLboolean -- ^ @normalized@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> GLsizei -- ^ @stride@.
+  -> GLuint -- ^ @buffer@.
+  -> GLuint -- ^ @offset@.
+  -> m ()
+glVertexAttribArrayObjectATI v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn910 ptr_glVertexAttribArrayObjectATI v1 v2 v3 v4 v5 v6 v7
+
+{-# NOINLINE ptr_glVertexAttribArrayObjectATI #-}
+ptr_glVertexAttribArrayObjectATI :: FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> GLuint -> GLuint -> IO ())
+ptr_glVertexAttribArrayObjectATI = unsafePerformIO $ getCommand "glVertexAttribArrayObjectATI"
+
+-- glVertexAttribBinding -------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glVertexAttribBinding.xhtml OpenGL 4.x>.
+glVertexAttribBinding
+  :: MonadIO m
+  => GLuint -- ^ @attribindex@.
+  -> GLuint -- ^ @bindingindex@.
+  -> m ()
+glVertexAttribBinding v1 v2 = liftIO $ dyn4 ptr_glVertexAttribBinding v1 v2
+
+{-# NOINLINE ptr_glVertexAttribBinding #-}
+ptr_glVertexAttribBinding :: FunPtr (GLuint -> GLuint -> IO ())
+ptr_glVertexAttribBinding = unsafePerformIO $ getCommand "glVertexAttribBinding"
+
+-- glVertexAttribDivisor -------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribDivisor.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttribDivisor.xhtml OpenGL 4.x>.
+glVertexAttribDivisor
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLuint -- ^ @divisor@.
+  -> m ()
+glVertexAttribDivisor v1 v2 = liftIO $ dyn4 ptr_glVertexAttribDivisor v1 v2
+
+{-# NOINLINE ptr_glVertexAttribDivisor #-}
+ptr_glVertexAttribDivisor :: FunPtr (GLuint -> GLuint -> IO ())
+ptr_glVertexAttribDivisor = unsafePerformIO $ getCommand "glVertexAttribDivisor"
+
+-- glVertexAttribDivisorANGLE --------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttribDivisor'.
+glVertexAttribDivisorANGLE
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLuint -- ^ @divisor@.
+  -> m ()
+glVertexAttribDivisorANGLE v1 v2 = liftIO $ dyn4 ptr_glVertexAttribDivisorANGLE v1 v2
+
+{-# NOINLINE ptr_glVertexAttribDivisorANGLE #-}
+ptr_glVertexAttribDivisorANGLE :: FunPtr (GLuint -> GLuint -> IO ())
+ptr_glVertexAttribDivisorANGLE = unsafePerformIO $ getCommand "glVertexAttribDivisorANGLE"
+
+-- glVertexAttribDivisorARB ----------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttribDivisor'.
+glVertexAttribDivisorARB
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLuint -- ^ @divisor@.
+  -> m ()
+glVertexAttribDivisorARB v1 v2 = liftIO $ dyn4 ptr_glVertexAttribDivisorARB v1 v2
+
+{-# NOINLINE ptr_glVertexAttribDivisorARB #-}
+ptr_glVertexAttribDivisorARB :: FunPtr (GLuint -> GLuint -> IO ())
+ptr_glVertexAttribDivisorARB = unsafePerformIO $ getCommand "glVertexAttribDivisorARB"
+
+-- glVertexAttribDivisorEXT ----------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttribDivisor'.
+glVertexAttribDivisorEXT
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLuint -- ^ @divisor@.
+  -> m ()
+glVertexAttribDivisorEXT v1 v2 = liftIO $ dyn4 ptr_glVertexAttribDivisorEXT v1 v2
+
+{-# NOINLINE ptr_glVertexAttribDivisorEXT #-}
+ptr_glVertexAttribDivisorEXT :: FunPtr (GLuint -> GLuint -> IO ())
+ptr_glVertexAttribDivisorEXT = unsafePerformIO $ getCommand "glVertexAttribDivisorEXT"
+
+-- glVertexAttribDivisorNV -----------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttribDivisor'.
+glVertexAttribDivisorNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLuint -- ^ @divisor@.
+  -> m ()
+glVertexAttribDivisorNV v1 v2 = liftIO $ dyn4 ptr_glVertexAttribDivisorNV v1 v2
+
+{-# NOINLINE ptr_glVertexAttribDivisorNV #-}
+ptr_glVertexAttribDivisorNV :: FunPtr (GLuint -> GLuint -> IO ())
+ptr_glVertexAttribDivisorNV = unsafePerformIO $ getCommand "glVertexAttribDivisorNV"
+
+-- glVertexAttribFormat --------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glVertexAttribFormat.xhtml OpenGL 4.x>.
+glVertexAttribFormat
+  :: MonadIO m
+  => GLuint -- ^ @attribindex@.
+  -> GLint -- ^ @size@.
+  -> GLenum -- ^ @type@ of type [VertexAttribType](Graphics-GL-Groups.html#VertexAttribType).
+  -> GLboolean -- ^ @normalized@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> GLuint -- ^ @relativeoffset@.
+  -> m ()
+glVertexAttribFormat v1 v2 v3 v4 v5 = liftIO $ dyn911 ptr_glVertexAttribFormat v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glVertexAttribFormat #-}
+ptr_glVertexAttribFormat :: FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> IO ())
+ptr_glVertexAttribFormat = unsafePerformIO $ getCommand "glVertexAttribFormat"
+
+-- glVertexAttribFormatNV ------------------------------------------------------
+
+glVertexAttribFormatNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLint -- ^ @size@.
+  -> GLenum -- ^ @type@ of type [VertexAttribType](Graphics-GL-Groups.html#VertexAttribType).
+  -> GLboolean -- ^ @normalized@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> GLsizei -- ^ @stride@.
+  -> m ()
+glVertexAttribFormatNV v1 v2 v3 v4 v5 = liftIO $ dyn912 ptr_glVertexAttribFormatNV v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glVertexAttribFormatNV #-}
+ptr_glVertexAttribFormatNV :: FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> IO ())
+ptr_glVertexAttribFormatNV = unsafePerformIO $ getCommand "glVertexAttribFormatNV"
+
+-- glVertexAttribI1i -----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>. The vector equivalent of this command is 'glVertexAttribI1iv'.
+glVertexAttribI1i
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLint -- ^ @x@.
+  -> m ()
+glVertexAttribI1i v1 v2 = liftIO $ dyn499 ptr_glVertexAttribI1i v1 v2
+
+{-# NOINLINE ptr_glVertexAttribI1i #-}
+ptr_glVertexAttribI1i :: FunPtr (GLuint -> GLint -> IO ())
+ptr_glVertexAttribI1i = unsafePerformIO $ getCommand "glVertexAttribI1i"
+
+-- glVertexAttribI1iEXT --------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glVertexAttribI1ivEXT'. This command is an alias for 'glVertexAttribI1i'.
+glVertexAttribI1iEXT
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLint -- ^ @x@.
+  -> m ()
+glVertexAttribI1iEXT v1 v2 = liftIO $ dyn499 ptr_glVertexAttribI1iEXT v1 v2
+
+{-# NOINLINE ptr_glVertexAttribI1iEXT #-}
+ptr_glVertexAttribI1iEXT :: FunPtr (GLuint -> GLint -> IO ())
+ptr_glVertexAttribI1iEXT = unsafePerformIO $ getCommand "glVertexAttribI1iEXT"
+
+-- glVertexAttribI1iv ----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>.
+glVertexAttribI1iv
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLint -- ^ @v@ pointing to @1@ element of type @GLint@.
+  -> m ()
+glVertexAttribI1iv v1 v2 = liftIO $ dyn741 ptr_glVertexAttribI1iv v1 v2
+
+{-# NOINLINE ptr_glVertexAttribI1iv #-}
+ptr_glVertexAttribI1iv :: FunPtr (GLuint -> Ptr GLint -> IO ())
+ptr_glVertexAttribI1iv = unsafePerformIO $ getCommand "glVertexAttribI1iv"
+
+-- glVertexAttribI1ivEXT -------------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttribI1iv'.
+glVertexAttribI1ivEXT
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLint -- ^ @v@ pointing to @1@ element of type @GLint@.
+  -> m ()
+glVertexAttribI1ivEXT v1 v2 = liftIO $ dyn741 ptr_glVertexAttribI1ivEXT v1 v2
+
+{-# NOINLINE ptr_glVertexAttribI1ivEXT #-}
+ptr_glVertexAttribI1ivEXT :: FunPtr (GLuint -> Ptr GLint -> IO ())
+ptr_glVertexAttribI1ivEXT = unsafePerformIO $ getCommand "glVertexAttribI1ivEXT"
+
+-- glVertexAttribI1ui ----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>. The vector equivalent of this command is 'glVertexAttribI1uiv'.
+glVertexAttribI1ui
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLuint -- ^ @x@.
+  -> m ()
+glVertexAttribI1ui v1 v2 = liftIO $ dyn4 ptr_glVertexAttribI1ui v1 v2
+
+{-# NOINLINE ptr_glVertexAttribI1ui #-}
+ptr_glVertexAttribI1ui :: FunPtr (GLuint -> GLuint -> IO ())
+ptr_glVertexAttribI1ui = unsafePerformIO $ getCommand "glVertexAttribI1ui"
+
+-- glVertexAttribI1uiEXT -------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glVertexAttribI1uivEXT'. This command is an alias for 'glVertexAttribI1ui'.
+glVertexAttribI1uiEXT
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLuint -- ^ @x@.
+  -> m ()
+glVertexAttribI1uiEXT v1 v2 = liftIO $ dyn4 ptr_glVertexAttribI1uiEXT v1 v2
+
+{-# NOINLINE ptr_glVertexAttribI1uiEXT #-}
+ptr_glVertexAttribI1uiEXT :: FunPtr (GLuint -> GLuint -> IO ())
+ptr_glVertexAttribI1uiEXT = unsafePerformIO $ getCommand "glVertexAttribI1uiEXT"
+
+-- glVertexAttribI1uiv ---------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>.
+glVertexAttribI1uiv
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLuint -- ^ @v@ pointing to @1@ element of type @GLuint@.
+  -> m ()
+glVertexAttribI1uiv v1 v2 = liftIO $ dyn201 ptr_glVertexAttribI1uiv v1 v2
+
+{-# NOINLINE ptr_glVertexAttribI1uiv #-}
+ptr_glVertexAttribI1uiv :: FunPtr (GLuint -> Ptr GLuint -> IO ())
+ptr_glVertexAttribI1uiv = unsafePerformIO $ getCommand "glVertexAttribI1uiv"
+
+-- glVertexAttribI1uivEXT ------------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttribI1uiv'.
+glVertexAttribI1uivEXT
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLuint -- ^ @v@ pointing to @1@ element of type @GLuint@.
+  -> m ()
+glVertexAttribI1uivEXT v1 v2 = liftIO $ dyn201 ptr_glVertexAttribI1uivEXT v1 v2
+
+{-# NOINLINE ptr_glVertexAttribI1uivEXT #-}
+ptr_glVertexAttribI1uivEXT :: FunPtr (GLuint -> Ptr GLuint -> IO ())
+ptr_glVertexAttribI1uivEXT = unsafePerformIO $ getCommand "glVertexAttribI1uivEXT"
+
+-- glVertexAttribI2i -----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>. The vector equivalent of this command is 'glVertexAttribI2iv'.
+glVertexAttribI2i
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLint -- ^ @x@.
+  -> GLint -- ^ @y@.
+  -> m ()
+glVertexAttribI2i v1 v2 v3 = liftIO $ dyn672 ptr_glVertexAttribI2i v1 v2 v3
+
+{-# NOINLINE ptr_glVertexAttribI2i #-}
+ptr_glVertexAttribI2i :: FunPtr (GLuint -> GLint -> GLint -> IO ())
+ptr_glVertexAttribI2i = unsafePerformIO $ getCommand "glVertexAttribI2i"
+
+-- glVertexAttribI2iEXT --------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glVertexAttribI2ivEXT'. This command is an alias for 'glVertexAttribI2i'.
+glVertexAttribI2iEXT
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLint -- ^ @x@.
+  -> GLint -- ^ @y@.
+  -> m ()
+glVertexAttribI2iEXT v1 v2 v3 = liftIO $ dyn672 ptr_glVertexAttribI2iEXT v1 v2 v3
+
+{-# NOINLINE ptr_glVertexAttribI2iEXT #-}
+ptr_glVertexAttribI2iEXT :: FunPtr (GLuint -> GLint -> GLint -> IO ())
+ptr_glVertexAttribI2iEXT = unsafePerformIO $ getCommand "glVertexAttribI2iEXT"
+
+-- glVertexAttribI2iv ----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>.
+glVertexAttribI2iv
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLint -- ^ @v@ pointing to @2@ elements of type @GLint@.
+  -> m ()
+glVertexAttribI2iv v1 v2 = liftIO $ dyn741 ptr_glVertexAttribI2iv v1 v2
+
+{-# NOINLINE ptr_glVertexAttribI2iv #-}
+ptr_glVertexAttribI2iv :: FunPtr (GLuint -> Ptr GLint -> IO ())
+ptr_glVertexAttribI2iv = unsafePerformIO $ getCommand "glVertexAttribI2iv"
+
+-- glVertexAttribI2ivEXT -------------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttribI2iv'.
+glVertexAttribI2ivEXT
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLint -- ^ @v@ pointing to @2@ elements of type @GLint@.
+  -> m ()
+glVertexAttribI2ivEXT v1 v2 = liftIO $ dyn741 ptr_glVertexAttribI2ivEXT v1 v2
+
+{-# NOINLINE ptr_glVertexAttribI2ivEXT #-}
+ptr_glVertexAttribI2ivEXT :: FunPtr (GLuint -> Ptr GLint -> IO ())
+ptr_glVertexAttribI2ivEXT = unsafePerformIO $ getCommand "glVertexAttribI2ivEXT"
+
+-- glVertexAttribI2ui ----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>. The vector equivalent of this command is 'glVertexAttribI2uiv'.
+glVertexAttribI2ui
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLuint -- ^ @x@.
+  -> GLuint -- ^ @y@.
+  -> m ()
+glVertexAttribI2ui v1 v2 v3 = liftIO $ dyn109 ptr_glVertexAttribI2ui v1 v2 v3
+
+{-# NOINLINE ptr_glVertexAttribI2ui #-}
+ptr_glVertexAttribI2ui :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
+ptr_glVertexAttribI2ui = unsafePerformIO $ getCommand "glVertexAttribI2ui"
+
+-- glVertexAttribI2uiEXT -------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glVertexAttribI2uivEXT'. This command is an alias for 'glVertexAttribI2ui'.
+glVertexAttribI2uiEXT
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLuint -- ^ @x@.
+  -> GLuint -- ^ @y@.
+  -> m ()
+glVertexAttribI2uiEXT v1 v2 v3 = liftIO $ dyn109 ptr_glVertexAttribI2uiEXT v1 v2 v3
+
+{-# NOINLINE ptr_glVertexAttribI2uiEXT #-}
+ptr_glVertexAttribI2uiEXT :: FunPtr (GLuint -> GLuint -> GLuint -> IO ())
+ptr_glVertexAttribI2uiEXT = unsafePerformIO $ getCommand "glVertexAttribI2uiEXT"
+
+-- glVertexAttribI2uiv ---------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>.
+glVertexAttribI2uiv
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLuint -- ^ @v@ pointing to @2@ elements of type @GLuint@.
+  -> m ()
+glVertexAttribI2uiv v1 v2 = liftIO $ dyn201 ptr_glVertexAttribI2uiv v1 v2
+
+{-# NOINLINE ptr_glVertexAttribI2uiv #-}
+ptr_glVertexAttribI2uiv :: FunPtr (GLuint -> Ptr GLuint -> IO ())
+ptr_glVertexAttribI2uiv = unsafePerformIO $ getCommand "glVertexAttribI2uiv"
+
+-- glVertexAttribI2uivEXT ------------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttribI2uiv'.
+glVertexAttribI2uivEXT
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLuint -- ^ @v@ pointing to @2@ elements of type @GLuint@.
+  -> m ()
+glVertexAttribI2uivEXT v1 v2 = liftIO $ dyn201 ptr_glVertexAttribI2uivEXT v1 v2
+
+{-# NOINLINE ptr_glVertexAttribI2uivEXT #-}
+ptr_glVertexAttribI2uivEXT :: FunPtr (GLuint -> Ptr GLuint -> IO ())
+ptr_glVertexAttribI2uivEXT = unsafePerformIO $ getCommand "glVertexAttribI2uivEXT"
+
+-- glVertexAttribI3i -----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>. The vector equivalent of this command is 'glVertexAttribI3iv'.
+glVertexAttribI3i
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLint -- ^ @x@.
+  -> GLint -- ^ @y@.
+  -> GLint -- ^ @z@.
+  -> m ()
+glVertexAttribI3i v1 v2 v3 v4 = liftIO $ dyn682 ptr_glVertexAttribI3i v1 v2 v3 v4
+
+{-# NOINLINE ptr_glVertexAttribI3i #-}
+ptr_glVertexAttribI3i :: FunPtr (GLuint -> GLint -> GLint -> GLint -> IO ())
+ptr_glVertexAttribI3i = unsafePerformIO $ getCommand "glVertexAttribI3i"
+
+-- glVertexAttribI3iEXT --------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glVertexAttribI3ivEXT'. This command is an alias for 'glVertexAttribI3i'.
+glVertexAttribI3iEXT
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLint -- ^ @x@.
+  -> GLint -- ^ @y@.
+  -> GLint -- ^ @z@.
+  -> m ()
+glVertexAttribI3iEXT v1 v2 v3 v4 = liftIO $ dyn682 ptr_glVertexAttribI3iEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glVertexAttribI3iEXT #-}
+ptr_glVertexAttribI3iEXT :: FunPtr (GLuint -> GLint -> GLint -> GLint -> IO ())
+ptr_glVertexAttribI3iEXT = unsafePerformIO $ getCommand "glVertexAttribI3iEXT"
+
+-- glVertexAttribI3iv ----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>.
+glVertexAttribI3iv
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLint -- ^ @v@ pointing to @3@ elements of type @GLint@.
+  -> m ()
+glVertexAttribI3iv v1 v2 = liftIO $ dyn741 ptr_glVertexAttribI3iv v1 v2
+
+{-# NOINLINE ptr_glVertexAttribI3iv #-}
+ptr_glVertexAttribI3iv :: FunPtr (GLuint -> Ptr GLint -> IO ())
+ptr_glVertexAttribI3iv = unsafePerformIO $ getCommand "glVertexAttribI3iv"
+
+-- glVertexAttribI3ivEXT -------------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttribI3iv'.
+glVertexAttribI3ivEXT
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLint -- ^ @v@ pointing to @3@ elements of type @GLint@.
+  -> m ()
+glVertexAttribI3ivEXT v1 v2 = liftIO $ dyn741 ptr_glVertexAttribI3ivEXT v1 v2
+
+{-# NOINLINE ptr_glVertexAttribI3ivEXT #-}
+ptr_glVertexAttribI3ivEXT :: FunPtr (GLuint -> Ptr GLint -> IO ())
+ptr_glVertexAttribI3ivEXT = unsafePerformIO $ getCommand "glVertexAttribI3ivEXT"
+
+-- glVertexAttribI3ui ----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>. The vector equivalent of this command is 'glVertexAttribI3uiv'.
+glVertexAttribI3ui
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLuint -- ^ @x@.
+  -> GLuint -- ^ @y@.
+  -> GLuint -- ^ @z@.
+  -> m ()
+glVertexAttribI3ui v1 v2 v3 v4 = liftIO $ dyn83 ptr_glVertexAttribI3ui v1 v2 v3 v4
+
+{-# NOINLINE ptr_glVertexAttribI3ui #-}
+ptr_glVertexAttribI3ui :: FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+ptr_glVertexAttribI3ui = unsafePerformIO $ getCommand "glVertexAttribI3ui"
+
+-- glVertexAttribI3uiEXT -------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glVertexAttribI3uivEXT'. This command is an alias for 'glVertexAttribI3ui'.
+glVertexAttribI3uiEXT
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLuint -- ^ @x@.
+  -> GLuint -- ^ @y@.
+  -> GLuint -- ^ @z@.
+  -> m ()
+glVertexAttribI3uiEXT v1 v2 v3 v4 = liftIO $ dyn83 ptr_glVertexAttribI3uiEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glVertexAttribI3uiEXT #-}
+ptr_glVertexAttribI3uiEXT :: FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+ptr_glVertexAttribI3uiEXT = unsafePerformIO $ getCommand "glVertexAttribI3uiEXT"
+
+-- glVertexAttribI3uiv ---------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>.
+glVertexAttribI3uiv
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLuint -- ^ @v@ pointing to @3@ elements of type @GLuint@.
+  -> m ()
+glVertexAttribI3uiv v1 v2 = liftIO $ dyn201 ptr_glVertexAttribI3uiv v1 v2
+
+{-# NOINLINE ptr_glVertexAttribI3uiv #-}
+ptr_glVertexAttribI3uiv :: FunPtr (GLuint -> Ptr GLuint -> IO ())
+ptr_glVertexAttribI3uiv = unsafePerformIO $ getCommand "glVertexAttribI3uiv"
+
+-- glVertexAttribI3uivEXT ------------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttribI3uiv'.
+glVertexAttribI3uivEXT
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLuint -- ^ @v@ pointing to @3@ elements of type @GLuint@.
+  -> m ()
+glVertexAttribI3uivEXT v1 v2 = liftIO $ dyn201 ptr_glVertexAttribI3uivEXT v1 v2
+
+{-# NOINLINE ptr_glVertexAttribI3uivEXT #-}
+ptr_glVertexAttribI3uivEXT :: FunPtr (GLuint -> Ptr GLuint -> IO ())
+ptr_glVertexAttribI3uivEXT = unsafePerformIO $ getCommand "glVertexAttribI3uivEXT"
+
+-- glVertexAttribI4bv ----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>.
+glVertexAttribI4bv
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLbyte -- ^ @v@ pointing to @4@ elements of type @GLbyte@.
+  -> m ()
+glVertexAttribI4bv v1 v2 = liftIO $ dyn881 ptr_glVertexAttribI4bv v1 v2
+
+{-# NOINLINE ptr_glVertexAttribI4bv #-}
+ptr_glVertexAttribI4bv :: FunPtr (GLuint -> Ptr GLbyte -> IO ())
+ptr_glVertexAttribI4bv = unsafePerformIO $ getCommand "glVertexAttribI4bv"
+
+-- glVertexAttribI4bvEXT -------------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttribI4bv'.
+glVertexAttribI4bvEXT
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLbyte -- ^ @v@ pointing to @4@ elements of type @GLbyte@.
+  -> m ()
+glVertexAttribI4bvEXT v1 v2 = liftIO $ dyn881 ptr_glVertexAttribI4bvEXT v1 v2
+
+{-# NOINLINE ptr_glVertexAttribI4bvEXT #-}
+ptr_glVertexAttribI4bvEXT :: FunPtr (GLuint -> Ptr GLbyte -> IO ())
+ptr_glVertexAttribI4bvEXT = unsafePerformIO $ getCommand "glVertexAttribI4bvEXT"
+
+-- glVertexAttribI4i -----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>. The vector equivalent of this command is 'glVertexAttribI4iv'.
+glVertexAttribI4i
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLint -- ^ @x@.
+  -> GLint -- ^ @y@.
+  -> GLint -- ^ @z@.
+  -> GLint -- ^ @w@.
+  -> m ()
+glVertexAttribI4i v1 v2 v3 v4 v5 = liftIO $ dyn690 ptr_glVertexAttribI4i v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glVertexAttribI4i #-}
+ptr_glVertexAttribI4i :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
+ptr_glVertexAttribI4i = unsafePerformIO $ getCommand "glVertexAttribI4i"
+
+-- glVertexAttribI4iEXT --------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glVertexAttribI4ivEXT'. This command is an alias for 'glVertexAttribI4i'.
+glVertexAttribI4iEXT
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLint -- ^ @x@.
+  -> GLint -- ^ @y@.
+  -> GLint -- ^ @z@.
+  -> GLint -- ^ @w@.
+  -> m ()
+glVertexAttribI4iEXT v1 v2 v3 v4 v5 = liftIO $ dyn690 ptr_glVertexAttribI4iEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glVertexAttribI4iEXT #-}
+ptr_glVertexAttribI4iEXT :: FunPtr (GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
+ptr_glVertexAttribI4iEXT = unsafePerformIO $ getCommand "glVertexAttribI4iEXT"
+
+-- glVertexAttribI4iv ----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>.
+glVertexAttribI4iv
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLint -- ^ @v@ pointing to @4@ elements of type @GLint@.
+  -> m ()
+glVertexAttribI4iv v1 v2 = liftIO $ dyn741 ptr_glVertexAttribI4iv v1 v2
+
+{-# NOINLINE ptr_glVertexAttribI4iv #-}
+ptr_glVertexAttribI4iv :: FunPtr (GLuint -> Ptr GLint -> IO ())
+ptr_glVertexAttribI4iv = unsafePerformIO $ getCommand "glVertexAttribI4iv"
+
+-- glVertexAttribI4ivEXT -------------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttribI4iv'.
+glVertexAttribI4ivEXT
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLint -- ^ @v@ pointing to @4@ elements of type @GLint@.
+  -> m ()
+glVertexAttribI4ivEXT v1 v2 = liftIO $ dyn741 ptr_glVertexAttribI4ivEXT v1 v2
+
+{-# NOINLINE ptr_glVertexAttribI4ivEXT #-}
+ptr_glVertexAttribI4ivEXT :: FunPtr (GLuint -> Ptr GLint -> IO ())
+ptr_glVertexAttribI4ivEXT = unsafePerformIO $ getCommand "glVertexAttribI4ivEXT"
+
+-- glVertexAttribI4sv ----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>.
+glVertexAttribI4sv
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLshort -- ^ @v@ pointing to @4@ elements of type @GLshort@.
+  -> m ()
+glVertexAttribI4sv v1 v2 = liftIO $ dyn883 ptr_glVertexAttribI4sv v1 v2
+
+{-# NOINLINE ptr_glVertexAttribI4sv #-}
+ptr_glVertexAttribI4sv :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+ptr_glVertexAttribI4sv = unsafePerformIO $ getCommand "glVertexAttribI4sv"
+
+-- glVertexAttribI4svEXT -------------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttribI4sv'.
+glVertexAttribI4svEXT
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLshort -- ^ @v@ pointing to @4@ elements of type @GLshort@.
+  -> m ()
+glVertexAttribI4svEXT v1 v2 = liftIO $ dyn883 ptr_glVertexAttribI4svEXT v1 v2
+
+{-# NOINLINE ptr_glVertexAttribI4svEXT #-}
+ptr_glVertexAttribI4svEXT :: FunPtr (GLuint -> Ptr GLshort -> IO ())
+ptr_glVertexAttribI4svEXT = unsafePerformIO $ getCommand "glVertexAttribI4svEXT"
+
+-- glVertexAttribI4ubv ---------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>.
+glVertexAttribI4ubv
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLubyte -- ^ @v@ pointing to @4@ elements of type @GLubyte@.
+  -> m ()
+glVertexAttribI4ubv v1 v2 = liftIO $ dyn393 ptr_glVertexAttribI4ubv v1 v2
+
+{-# NOINLINE ptr_glVertexAttribI4ubv #-}
+ptr_glVertexAttribI4ubv :: FunPtr (GLuint -> Ptr GLubyte -> IO ())
+ptr_glVertexAttribI4ubv = unsafePerformIO $ getCommand "glVertexAttribI4ubv"
+
+-- glVertexAttribI4ubvEXT ------------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttribI4ubv'.
+glVertexAttribI4ubvEXT
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLubyte -- ^ @v@ pointing to @4@ elements of type @GLubyte@.
+  -> m ()
+glVertexAttribI4ubvEXT v1 v2 = liftIO $ dyn393 ptr_glVertexAttribI4ubvEXT v1 v2
+
+{-# NOINLINE ptr_glVertexAttribI4ubvEXT #-}
+ptr_glVertexAttribI4ubvEXT :: FunPtr (GLuint -> Ptr GLubyte -> IO ())
+ptr_glVertexAttribI4ubvEXT = unsafePerformIO $ getCommand "glVertexAttribI4ubvEXT"
+
+-- glVertexAttribI4ui ----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>. The vector equivalent of this command is 'glVertexAttribI4uiv'.
+glVertexAttribI4ui
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLuint -- ^ @x@.
+  -> GLuint -- ^ @y@.
+  -> GLuint -- ^ @z@.
+  -> GLuint -- ^ @w@.
+  -> m ()
+glVertexAttribI4ui v1 v2 v3 v4 v5 = liftIO $ dyn913 ptr_glVertexAttribI4ui v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glVertexAttribI4ui #-}
+ptr_glVertexAttribI4ui :: FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+ptr_glVertexAttribI4ui = unsafePerformIO $ getCommand "glVertexAttribI4ui"
+
+-- glVertexAttribI4uiEXT -------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glVertexAttribI4uivEXT'. This command is an alias for 'glVertexAttribI4ui'.
+glVertexAttribI4uiEXT
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLuint -- ^ @x@.
+  -> GLuint -- ^ @y@.
+  -> GLuint -- ^ @z@.
+  -> GLuint -- ^ @w@.
+  -> m ()
+glVertexAttribI4uiEXT v1 v2 v3 v4 v5 = liftIO $ dyn913 ptr_glVertexAttribI4uiEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glVertexAttribI4uiEXT #-}
+ptr_glVertexAttribI4uiEXT :: FunPtr (GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
+ptr_glVertexAttribI4uiEXT = unsafePerformIO $ getCommand "glVertexAttribI4uiEXT"
+
+-- glVertexAttribI4uiv ---------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>.
+glVertexAttribI4uiv
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLuint -- ^ @v@ pointing to @4@ elements of type @GLuint@.
+  -> m ()
+glVertexAttribI4uiv v1 v2 = liftIO $ dyn201 ptr_glVertexAttribI4uiv v1 v2
+
+{-# NOINLINE ptr_glVertexAttribI4uiv #-}
+ptr_glVertexAttribI4uiv :: FunPtr (GLuint -> Ptr GLuint -> IO ())
+ptr_glVertexAttribI4uiv = unsafePerformIO $ getCommand "glVertexAttribI4uiv"
+
+-- glVertexAttribI4uivEXT ------------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttribI4uiv'.
+glVertexAttribI4uivEXT
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLuint -- ^ @v@ pointing to @4@ elements of type @GLuint@.
+  -> m ()
+glVertexAttribI4uivEXT v1 v2 = liftIO $ dyn201 ptr_glVertexAttribI4uivEXT v1 v2
+
+{-# NOINLINE ptr_glVertexAttribI4uivEXT #-}
+ptr_glVertexAttribI4uivEXT :: FunPtr (GLuint -> Ptr GLuint -> IO ())
+ptr_glVertexAttribI4uivEXT = unsafePerformIO $ getCommand "glVertexAttribI4uivEXT"
+
+-- glVertexAttribI4usv ---------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>.
+glVertexAttribI4usv
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLushort -- ^ @v@ pointing to @4@ elements of type @GLushort@.
+  -> m ()
+glVertexAttribI4usv v1 v2 = liftIO $ dyn884 ptr_glVertexAttribI4usv v1 v2
+
+{-# NOINLINE ptr_glVertexAttribI4usv #-}
+ptr_glVertexAttribI4usv :: FunPtr (GLuint -> Ptr GLushort -> IO ())
+ptr_glVertexAttribI4usv = unsafePerformIO $ getCommand "glVertexAttribI4usv"
+
+-- glVertexAttribI4usvEXT ------------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttribI4usv'.
+glVertexAttribI4usvEXT
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLushort -- ^ @v@ pointing to @4@ elements of type @GLushort@.
+  -> m ()
+glVertexAttribI4usvEXT v1 v2 = liftIO $ dyn884 ptr_glVertexAttribI4usvEXT v1 v2
+
+{-# NOINLINE ptr_glVertexAttribI4usvEXT #-}
+ptr_glVertexAttribI4usvEXT :: FunPtr (GLuint -> Ptr GLushort -> IO ())
+ptr_glVertexAttribI4usvEXT = unsafePerformIO $ getCommand "glVertexAttribI4usvEXT"
+
+-- glVertexAttribIFormat -------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glVertexAttribFormat.xhtml OpenGL 4.x>.
+glVertexAttribIFormat
+  :: MonadIO m
+  => GLuint -- ^ @attribindex@.
+  -> GLint -- ^ @size@.
+  -> GLenum -- ^ @type@ of type [VertexAttribIType](Graphics-GL-Groups.html#VertexAttribIType).
+  -> GLuint -- ^ @relativeoffset@.
+  -> m ()
+glVertexAttribIFormat v1 v2 v3 v4 = liftIO $ dyn914 ptr_glVertexAttribIFormat v1 v2 v3 v4
+
+{-# NOINLINE ptr_glVertexAttribIFormat #-}
+ptr_glVertexAttribIFormat :: FunPtr (GLuint -> GLint -> GLenum -> GLuint -> IO ())
+ptr_glVertexAttribIFormat = unsafePerformIO $ getCommand "glVertexAttribIFormat"
+
+-- glVertexAttribIFormatNV -----------------------------------------------------
+
+glVertexAttribIFormatNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLint -- ^ @size@.
+  -> GLenum -- ^ @type@ of type [VertexAttribIType](Graphics-GL-Groups.html#VertexAttribIType).
+  -> GLsizei -- ^ @stride@.
+  -> m ()
+glVertexAttribIFormatNV v1 v2 v3 v4 = liftIO $ dyn915 ptr_glVertexAttribIFormatNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glVertexAttribIFormatNV #-}
+ptr_glVertexAttribIFormatNV :: FunPtr (GLuint -> GLint -> GLenum -> GLsizei -> IO ())
+ptr_glVertexAttribIFormatNV = unsafePerformIO $ getCommand "glVertexAttribIFormatNV"
+
+-- glVertexAttribIPointer ------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribPointer.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttribPointer.xhtml OpenGL 4.x>.
+glVertexAttribIPointer
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLint -- ^ @size@.
+  -> GLenum -- ^ @type@ of type [VertexAttribPointerType](Graphics-GL-Groups.html#VertexAttribPointerType).
+  -> GLsizei -- ^ @stride@.
+  -> Ptr a -- ^ @pointer@ pointing to @COMPSIZE(size,type,stride)@ elements of type @a@.
+  -> m ()
+glVertexAttribIPointer v1 v2 v3 v4 v5 = liftIO $ dyn916 ptr_glVertexAttribIPointer v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glVertexAttribIPointer #-}
+ptr_glVertexAttribIPointer :: FunPtr (GLuint -> GLint -> GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glVertexAttribIPointer = unsafePerformIO $ getCommand "glVertexAttribIPointer"
+
+-- glVertexAttribIPointerEXT ---------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttribIPointer'.
+glVertexAttribIPointerEXT
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLint -- ^ @size@.
+  -> GLenum -- ^ @type@ of type [VertexAttribPointerType](Graphics-GL-Groups.html#VertexAttribPointerType).
+  -> GLsizei -- ^ @stride@.
+  -> Ptr a -- ^ @pointer@ pointing to @COMPSIZE(size,type,stride)@ elements of type @a@.
+  -> m ()
+glVertexAttribIPointerEXT v1 v2 v3 v4 v5 = liftIO $ dyn916 ptr_glVertexAttribIPointerEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glVertexAttribIPointerEXT #-}
+ptr_glVertexAttribIPointerEXT :: FunPtr (GLuint -> GLint -> GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glVertexAttribIPointerEXT = unsafePerformIO $ getCommand "glVertexAttribIPointerEXT"
+
+-- glVertexAttribL1d -----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>.
+glVertexAttribL1d
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLdouble -- ^ @x@.
+  -> m ()
+glVertexAttribL1d v1 v2 = liftIO $ dyn895 ptr_glVertexAttribL1d v1 v2
+
+{-# NOINLINE ptr_glVertexAttribL1d #-}
+ptr_glVertexAttribL1d :: FunPtr (GLuint -> GLdouble -> IO ())
+ptr_glVertexAttribL1d = unsafePerformIO $ getCommand "glVertexAttribL1d"
+
+-- glVertexAttribL1dEXT --------------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttribL1d'.
+glVertexAttribL1dEXT
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLdouble -- ^ @x@.
+  -> m ()
+glVertexAttribL1dEXT v1 v2 = liftIO $ dyn895 ptr_glVertexAttribL1dEXT v1 v2
+
+{-# NOINLINE ptr_glVertexAttribL1dEXT #-}
+ptr_glVertexAttribL1dEXT :: FunPtr (GLuint -> GLdouble -> IO ())
+ptr_glVertexAttribL1dEXT = unsafePerformIO $ getCommand "glVertexAttribL1dEXT"
+
+-- glVertexAttribL1dv ----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>.
+glVertexAttribL1dv
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLdouble -- ^ @v@ pointing to @1@ element of type @GLdouble@.
+  -> m ()
+glVertexAttribL1dv v1 v2 = liftIO $ dyn882 ptr_glVertexAttribL1dv v1 v2
+
+{-# NOINLINE ptr_glVertexAttribL1dv #-}
+ptr_glVertexAttribL1dv :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+ptr_glVertexAttribL1dv = unsafePerformIO $ getCommand "glVertexAttribL1dv"
+
+-- glVertexAttribL1dvEXT -------------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttribL1dv'.
+glVertexAttribL1dvEXT
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLdouble -- ^ @v@ pointing to @1@ element of type @GLdouble@.
+  -> m ()
+glVertexAttribL1dvEXT v1 v2 = liftIO $ dyn882 ptr_glVertexAttribL1dvEXT v1 v2
+
+{-# NOINLINE ptr_glVertexAttribL1dvEXT #-}
+ptr_glVertexAttribL1dvEXT :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+ptr_glVertexAttribL1dvEXT = unsafePerformIO $ getCommand "glVertexAttribL1dvEXT"
+
+-- glVertexAttribL1i64NV -------------------------------------------------------
+
+glVertexAttribL1i64NV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLint64EXT -- ^ @x@.
+  -> m ()
+glVertexAttribL1i64NV v1 v2 = liftIO $ dyn917 ptr_glVertexAttribL1i64NV v1 v2
+
+{-# NOINLINE ptr_glVertexAttribL1i64NV #-}
+ptr_glVertexAttribL1i64NV :: FunPtr (GLuint -> GLint64EXT -> IO ())
+ptr_glVertexAttribL1i64NV = unsafePerformIO $ getCommand "glVertexAttribL1i64NV"
+
+-- glVertexAttribL1i64vNV ------------------------------------------------------
+
+glVertexAttribL1i64vNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLint64EXT -- ^ @v@ pointing to @1@ element of type @GLint64EXT@.
+  -> m ()
+glVertexAttribL1i64vNV v1 v2 = liftIO $ dyn918 ptr_glVertexAttribL1i64vNV v1 v2
+
+{-# NOINLINE ptr_glVertexAttribL1i64vNV #-}
+ptr_glVertexAttribL1i64vNV :: FunPtr (GLuint -> Ptr GLint64EXT -> IO ())
+ptr_glVertexAttribL1i64vNV = unsafePerformIO $ getCommand "glVertexAttribL1i64vNV"
+
+-- glVertexAttribL1ui64ARB -----------------------------------------------------
+
+glVertexAttribL1ui64ARB
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLuint64EXT -- ^ @x@.
+  -> m ()
+glVertexAttribL1ui64ARB v1 v2 = liftIO $ dyn919 ptr_glVertexAttribL1ui64ARB v1 v2
+
+{-# NOINLINE ptr_glVertexAttribL1ui64ARB #-}
+ptr_glVertexAttribL1ui64ARB :: FunPtr (GLuint -> GLuint64EXT -> IO ())
+ptr_glVertexAttribL1ui64ARB = unsafePerformIO $ getCommand "glVertexAttribL1ui64ARB"
+
+-- glVertexAttribL1ui64NV ------------------------------------------------------
+
+glVertexAttribL1ui64NV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLuint64EXT -- ^ @x@.
+  -> m ()
+glVertexAttribL1ui64NV v1 v2 = liftIO $ dyn919 ptr_glVertexAttribL1ui64NV v1 v2
+
+{-# NOINLINE ptr_glVertexAttribL1ui64NV #-}
+ptr_glVertexAttribL1ui64NV :: FunPtr (GLuint -> GLuint64EXT -> IO ())
+ptr_glVertexAttribL1ui64NV = unsafePerformIO $ getCommand "glVertexAttribL1ui64NV"
+
+-- glVertexAttribL1ui64vARB ----------------------------------------------------
+
+glVertexAttribL1ui64vARB
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLuint64EXT -- ^ @v@.
+  -> m ()
+glVertexAttribL1ui64vARB v1 v2 = liftIO $ dyn920 ptr_glVertexAttribL1ui64vARB v1 v2
+
+{-# NOINLINE ptr_glVertexAttribL1ui64vARB #-}
+ptr_glVertexAttribL1ui64vARB :: FunPtr (GLuint -> Ptr GLuint64EXT -> IO ())
+ptr_glVertexAttribL1ui64vARB = unsafePerformIO $ getCommand "glVertexAttribL1ui64vARB"
+
+-- glVertexAttribL1ui64vNV -----------------------------------------------------
+
+glVertexAttribL1ui64vNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLuint64EXT -- ^ @v@ pointing to @1@ element of type @GLuint64EXT@.
+  -> m ()
+glVertexAttribL1ui64vNV v1 v2 = liftIO $ dyn920 ptr_glVertexAttribL1ui64vNV v1 v2
+
+{-# NOINLINE ptr_glVertexAttribL1ui64vNV #-}
+ptr_glVertexAttribL1ui64vNV :: FunPtr (GLuint -> Ptr GLuint64EXT -> IO ())
+ptr_glVertexAttribL1ui64vNV = unsafePerformIO $ getCommand "glVertexAttribL1ui64vNV"
+
+-- glVertexAttribL2d -----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>.
+glVertexAttribL2d
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLdouble -- ^ @x@.
+  -> GLdouble -- ^ @y@.
+  -> m ()
+glVertexAttribL2d v1 v2 v3 = liftIO $ dyn228 ptr_glVertexAttribL2d v1 v2 v3
+
+{-# NOINLINE ptr_glVertexAttribL2d #-}
+ptr_glVertexAttribL2d :: FunPtr (GLuint -> GLdouble -> GLdouble -> IO ())
+ptr_glVertexAttribL2d = unsafePerformIO $ getCommand "glVertexAttribL2d"
+
+-- glVertexAttribL2dEXT --------------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttribL2d'.
+glVertexAttribL2dEXT
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLdouble -- ^ @x@.
+  -> GLdouble -- ^ @y@.
+  -> m ()
+glVertexAttribL2dEXT v1 v2 v3 = liftIO $ dyn228 ptr_glVertexAttribL2dEXT v1 v2 v3
+
+{-# NOINLINE ptr_glVertexAttribL2dEXT #-}
+ptr_glVertexAttribL2dEXT :: FunPtr (GLuint -> GLdouble -> GLdouble -> IO ())
+ptr_glVertexAttribL2dEXT = unsafePerformIO $ getCommand "glVertexAttribL2dEXT"
+
+-- glVertexAttribL2dv ----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>.
+glVertexAttribL2dv
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLdouble -- ^ @v@ pointing to @2@ elements of type @GLdouble@.
+  -> m ()
+glVertexAttribL2dv v1 v2 = liftIO $ dyn882 ptr_glVertexAttribL2dv v1 v2
+
+{-# NOINLINE ptr_glVertexAttribL2dv #-}
+ptr_glVertexAttribL2dv :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+ptr_glVertexAttribL2dv = unsafePerformIO $ getCommand "glVertexAttribL2dv"
+
+-- glVertexAttribL2dvEXT -------------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttribL2dv'.
+glVertexAttribL2dvEXT
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLdouble -- ^ @v@ pointing to @2@ elements of type @GLdouble@.
+  -> m ()
+glVertexAttribL2dvEXT v1 v2 = liftIO $ dyn882 ptr_glVertexAttribL2dvEXT v1 v2
+
+{-# NOINLINE ptr_glVertexAttribL2dvEXT #-}
+ptr_glVertexAttribL2dvEXT :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+ptr_glVertexAttribL2dvEXT = unsafePerformIO $ getCommand "glVertexAttribL2dvEXT"
+
+-- glVertexAttribL2i64NV -------------------------------------------------------
+
+glVertexAttribL2i64NV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLint64EXT -- ^ @x@.
+  -> GLint64EXT -- ^ @y@.
+  -> m ()
+glVertexAttribL2i64NV v1 v2 v3 = liftIO $ dyn921 ptr_glVertexAttribL2i64NV v1 v2 v3
+
+{-# NOINLINE ptr_glVertexAttribL2i64NV #-}
+ptr_glVertexAttribL2i64NV :: FunPtr (GLuint -> GLint64EXT -> GLint64EXT -> IO ())
+ptr_glVertexAttribL2i64NV = unsafePerformIO $ getCommand "glVertexAttribL2i64NV"
+
+-- glVertexAttribL2i64vNV ------------------------------------------------------
+
+glVertexAttribL2i64vNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLint64EXT -- ^ @v@ pointing to @2@ elements of type @GLint64EXT@.
+  -> m ()
+glVertexAttribL2i64vNV v1 v2 = liftIO $ dyn918 ptr_glVertexAttribL2i64vNV v1 v2
+
+{-# NOINLINE ptr_glVertexAttribL2i64vNV #-}
+ptr_glVertexAttribL2i64vNV :: FunPtr (GLuint -> Ptr GLint64EXT -> IO ())
+ptr_glVertexAttribL2i64vNV = unsafePerformIO $ getCommand "glVertexAttribL2i64vNV"
+
+-- glVertexAttribL2ui64NV ------------------------------------------------------
+
+glVertexAttribL2ui64NV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLuint64EXT -- ^ @x@.
+  -> GLuint64EXT -- ^ @y@.
+  -> m ()
+glVertexAttribL2ui64NV v1 v2 v3 = liftIO $ dyn922 ptr_glVertexAttribL2ui64NV v1 v2 v3
+
+{-# NOINLINE ptr_glVertexAttribL2ui64NV #-}
+ptr_glVertexAttribL2ui64NV :: FunPtr (GLuint -> GLuint64EXT -> GLuint64EXT -> IO ())
+ptr_glVertexAttribL2ui64NV = unsafePerformIO $ getCommand "glVertexAttribL2ui64NV"
+
+-- glVertexAttribL2ui64vNV -----------------------------------------------------
+
+glVertexAttribL2ui64vNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLuint64EXT -- ^ @v@ pointing to @2@ elements of type @GLuint64EXT@.
+  -> m ()
+glVertexAttribL2ui64vNV v1 v2 = liftIO $ dyn920 ptr_glVertexAttribL2ui64vNV v1 v2
+
+{-# NOINLINE ptr_glVertexAttribL2ui64vNV #-}
+ptr_glVertexAttribL2ui64vNV :: FunPtr (GLuint -> Ptr GLuint64EXT -> IO ())
+ptr_glVertexAttribL2ui64vNV = unsafePerformIO $ getCommand "glVertexAttribL2ui64vNV"
+
+-- glVertexAttribL3d -----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>.
+glVertexAttribL3d
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLdouble -- ^ @x@.
+  -> GLdouble -- ^ @y@.
+  -> GLdouble -- ^ @z@.
+  -> m ()
+glVertexAttribL3d v1 v2 v3 v4 = liftIO $ dyn902 ptr_glVertexAttribL3d v1 v2 v3 v4
+
+{-# NOINLINE ptr_glVertexAttribL3d #-}
+ptr_glVertexAttribL3d :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> IO ())
+ptr_glVertexAttribL3d = unsafePerformIO $ getCommand "glVertexAttribL3d"
+
+-- glVertexAttribL3dEXT --------------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttribL3d'.
+glVertexAttribL3dEXT
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLdouble -- ^ @x@.
+  -> GLdouble -- ^ @y@.
+  -> GLdouble -- ^ @z@.
+  -> m ()
+glVertexAttribL3dEXT v1 v2 v3 v4 = liftIO $ dyn902 ptr_glVertexAttribL3dEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glVertexAttribL3dEXT #-}
+ptr_glVertexAttribL3dEXT :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> IO ())
+ptr_glVertexAttribL3dEXT = unsafePerformIO $ getCommand "glVertexAttribL3dEXT"
+
+-- glVertexAttribL3dv ----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>.
+glVertexAttribL3dv
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLdouble -- ^ @v@ pointing to @3@ elements of type @GLdouble@.
+  -> m ()
+glVertexAttribL3dv v1 v2 = liftIO $ dyn882 ptr_glVertexAttribL3dv v1 v2
+
+{-# NOINLINE ptr_glVertexAttribL3dv #-}
+ptr_glVertexAttribL3dv :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+ptr_glVertexAttribL3dv = unsafePerformIO $ getCommand "glVertexAttribL3dv"
+
+-- glVertexAttribL3dvEXT -------------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttribL3dv'.
+glVertexAttribL3dvEXT
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLdouble -- ^ @v@ pointing to @3@ elements of type @GLdouble@.
+  -> m ()
+glVertexAttribL3dvEXT v1 v2 = liftIO $ dyn882 ptr_glVertexAttribL3dvEXT v1 v2
+
+{-# NOINLINE ptr_glVertexAttribL3dvEXT #-}
+ptr_glVertexAttribL3dvEXT :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+ptr_glVertexAttribL3dvEXT = unsafePerformIO $ getCommand "glVertexAttribL3dvEXT"
+
+-- glVertexAttribL3i64NV -------------------------------------------------------
+
+glVertexAttribL3i64NV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLint64EXT -- ^ @x@.
+  -> GLint64EXT -- ^ @y@.
+  -> GLint64EXT -- ^ @z@.
+  -> m ()
+glVertexAttribL3i64NV v1 v2 v3 v4 = liftIO $ dyn923 ptr_glVertexAttribL3i64NV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glVertexAttribL3i64NV #-}
+ptr_glVertexAttribL3i64NV :: FunPtr (GLuint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ())
+ptr_glVertexAttribL3i64NV = unsafePerformIO $ getCommand "glVertexAttribL3i64NV"
+
+-- glVertexAttribL3i64vNV ------------------------------------------------------
+
+glVertexAttribL3i64vNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLint64EXT -- ^ @v@ pointing to @3@ elements of type @GLint64EXT@.
+  -> m ()
+glVertexAttribL3i64vNV v1 v2 = liftIO $ dyn918 ptr_glVertexAttribL3i64vNV v1 v2
+
+{-# NOINLINE ptr_glVertexAttribL3i64vNV #-}
+ptr_glVertexAttribL3i64vNV :: FunPtr (GLuint -> Ptr GLint64EXT -> IO ())
+ptr_glVertexAttribL3i64vNV = unsafePerformIO $ getCommand "glVertexAttribL3i64vNV"
+
+-- glVertexAttribL3ui64NV ------------------------------------------------------
+
+glVertexAttribL3ui64NV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLuint64EXT -- ^ @x@.
+  -> GLuint64EXT -- ^ @y@.
+  -> GLuint64EXT -- ^ @z@.
+  -> m ()
+glVertexAttribL3ui64NV v1 v2 v3 v4 = liftIO $ dyn924 ptr_glVertexAttribL3ui64NV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glVertexAttribL3ui64NV #-}
+ptr_glVertexAttribL3ui64NV :: FunPtr (GLuint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ())
+ptr_glVertexAttribL3ui64NV = unsafePerformIO $ getCommand "glVertexAttribL3ui64NV"
+
+-- glVertexAttribL3ui64vNV -----------------------------------------------------
+
+glVertexAttribL3ui64vNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLuint64EXT -- ^ @v@ pointing to @3@ elements of type @GLuint64EXT@.
+  -> m ()
+glVertexAttribL3ui64vNV v1 v2 = liftIO $ dyn920 ptr_glVertexAttribL3ui64vNV v1 v2
+
+{-# NOINLINE ptr_glVertexAttribL3ui64vNV #-}
+ptr_glVertexAttribL3ui64vNV :: FunPtr (GLuint -> Ptr GLuint64EXT -> IO ())
+ptr_glVertexAttribL3ui64vNV = unsafePerformIO $ getCommand "glVertexAttribL3ui64vNV"
+
+-- glVertexAttribL4d -----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>.
+glVertexAttribL4d
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLdouble -- ^ @x@.
+  -> GLdouble -- ^ @y@.
+  -> GLdouble -- ^ @z@.
+  -> GLdouble -- ^ @w@.
+  -> m ()
+glVertexAttribL4d v1 v2 v3 v4 v5 = liftIO $ dyn906 ptr_glVertexAttribL4d v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glVertexAttribL4d #-}
+ptr_glVertexAttribL4d :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+ptr_glVertexAttribL4d = unsafePerformIO $ getCommand "glVertexAttribL4d"
+
+-- glVertexAttribL4dEXT --------------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttribL4d'.
+glVertexAttribL4dEXT
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLdouble -- ^ @x@.
+  -> GLdouble -- ^ @y@.
+  -> GLdouble -- ^ @z@.
+  -> GLdouble -- ^ @w@.
+  -> m ()
+glVertexAttribL4dEXT v1 v2 v3 v4 v5 = liftIO $ dyn906 ptr_glVertexAttribL4dEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glVertexAttribL4dEXT #-}
+ptr_glVertexAttribL4dEXT :: FunPtr (GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+ptr_glVertexAttribL4dEXT = unsafePerformIO $ getCommand "glVertexAttribL4dEXT"
+
+-- glVertexAttribL4dv ----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>.
+glVertexAttribL4dv
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLdouble -- ^ @v@ pointing to @4@ elements of type @GLdouble@.
+  -> m ()
+glVertexAttribL4dv v1 v2 = liftIO $ dyn882 ptr_glVertexAttribL4dv v1 v2
+
+{-# NOINLINE ptr_glVertexAttribL4dv #-}
+ptr_glVertexAttribL4dv :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+ptr_glVertexAttribL4dv = unsafePerformIO $ getCommand "glVertexAttribL4dv"
+
+-- glVertexAttribL4dvEXT -------------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttribL4dv'.
+glVertexAttribL4dvEXT
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLdouble -- ^ @v@ pointing to @4@ elements of type @GLdouble@.
+  -> m ()
+glVertexAttribL4dvEXT v1 v2 = liftIO $ dyn882 ptr_glVertexAttribL4dvEXT v1 v2
+
+{-# NOINLINE ptr_glVertexAttribL4dvEXT #-}
+ptr_glVertexAttribL4dvEXT :: FunPtr (GLuint -> Ptr GLdouble -> IO ())
+ptr_glVertexAttribL4dvEXT = unsafePerformIO $ getCommand "glVertexAttribL4dvEXT"
+
+-- glVertexAttribL4i64NV -------------------------------------------------------
+
+glVertexAttribL4i64NV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLint64EXT -- ^ @x@.
+  -> GLint64EXT -- ^ @y@.
+  -> GLint64EXT -- ^ @z@.
+  -> GLint64EXT -- ^ @w@.
+  -> m ()
+glVertexAttribL4i64NV v1 v2 v3 v4 v5 = liftIO $ dyn925 ptr_glVertexAttribL4i64NV v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glVertexAttribL4i64NV #-}
+ptr_glVertexAttribL4i64NV :: FunPtr (GLuint -> GLint64EXT -> GLint64EXT -> GLint64EXT -> GLint64EXT -> IO ())
+ptr_glVertexAttribL4i64NV = unsafePerformIO $ getCommand "glVertexAttribL4i64NV"
+
+-- glVertexAttribL4i64vNV ------------------------------------------------------
+
+glVertexAttribL4i64vNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLint64EXT -- ^ @v@ pointing to @4@ elements of type @GLint64EXT@.
+  -> m ()
+glVertexAttribL4i64vNV v1 v2 = liftIO $ dyn918 ptr_glVertexAttribL4i64vNV v1 v2
+
+{-# NOINLINE ptr_glVertexAttribL4i64vNV #-}
+ptr_glVertexAttribL4i64vNV :: FunPtr (GLuint -> Ptr GLint64EXT -> IO ())
+ptr_glVertexAttribL4i64vNV = unsafePerformIO $ getCommand "glVertexAttribL4i64vNV"
+
+-- glVertexAttribL4ui64NV ------------------------------------------------------
+
+glVertexAttribL4ui64NV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLuint64EXT -- ^ @x@.
+  -> GLuint64EXT -- ^ @y@.
+  -> GLuint64EXT -- ^ @z@.
+  -> GLuint64EXT -- ^ @w@.
+  -> m ()
+glVertexAttribL4ui64NV v1 v2 v3 v4 v5 = liftIO $ dyn926 ptr_glVertexAttribL4ui64NV v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glVertexAttribL4ui64NV #-}
+ptr_glVertexAttribL4ui64NV :: FunPtr (GLuint -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> GLuint64EXT -> IO ())
+ptr_glVertexAttribL4ui64NV = unsafePerformIO $ getCommand "glVertexAttribL4ui64NV"
+
+-- glVertexAttribL4ui64vNV -----------------------------------------------------
+
+glVertexAttribL4ui64vNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLuint64EXT -- ^ @v@ pointing to @4@ elements of type @GLuint64EXT@.
+  -> m ()
+glVertexAttribL4ui64vNV v1 v2 = liftIO $ dyn920 ptr_glVertexAttribL4ui64vNV v1 v2
+
+{-# NOINLINE ptr_glVertexAttribL4ui64vNV #-}
+ptr_glVertexAttribL4ui64vNV :: FunPtr (GLuint -> Ptr GLuint64EXT -> IO ())
+ptr_glVertexAttribL4ui64vNV = unsafePerformIO $ getCommand "glVertexAttribL4ui64vNV"
+
+-- glVertexAttribLFormat -------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glVertexAttribFormat.xhtml OpenGL 4.x>.
+glVertexAttribLFormat
+  :: MonadIO m
+  => GLuint -- ^ @attribindex@.
+  -> GLint -- ^ @size@.
+  -> GLenum -- ^ @type@ of type [VertexAttribLType](Graphics-GL-Groups.html#VertexAttribLType).
+  -> GLuint -- ^ @relativeoffset@.
+  -> m ()
+glVertexAttribLFormat v1 v2 v3 v4 = liftIO $ dyn914 ptr_glVertexAttribLFormat v1 v2 v3 v4
+
+{-# NOINLINE ptr_glVertexAttribLFormat #-}
+ptr_glVertexAttribLFormat :: FunPtr (GLuint -> GLint -> GLenum -> GLuint -> IO ())
+ptr_glVertexAttribLFormat = unsafePerformIO $ getCommand "glVertexAttribLFormat"
+
+-- glVertexAttribLFormatNV -----------------------------------------------------
+
+glVertexAttribLFormatNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLint -- ^ @size@.
+  -> GLenum -- ^ @type@ of type [VertexAttribLType](Graphics-GL-Groups.html#VertexAttribLType).
+  -> GLsizei -- ^ @stride@.
+  -> m ()
+glVertexAttribLFormatNV v1 v2 v3 v4 = liftIO $ dyn915 ptr_glVertexAttribLFormatNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glVertexAttribLFormatNV #-}
+ptr_glVertexAttribLFormatNV :: FunPtr (GLuint -> GLint -> GLenum -> GLsizei -> IO ())
+ptr_glVertexAttribLFormatNV = unsafePerformIO $ getCommand "glVertexAttribLFormatNV"
+
+-- glVertexAttribLPointer ------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glVertexAttribPointer.xhtml OpenGL 4.x>.
+glVertexAttribLPointer
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLint -- ^ @size@.
+  -> GLenum -- ^ @type@ of type [VertexAttribPointerType](Graphics-GL-Groups.html#VertexAttribPointerType).
+  -> GLsizei -- ^ @stride@.
+  -> Ptr a -- ^ @pointer@ pointing to @size@ elements of type @a@.
+  -> m ()
+glVertexAttribLPointer v1 v2 v3 v4 v5 = liftIO $ dyn916 ptr_glVertexAttribLPointer v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glVertexAttribLPointer #-}
+ptr_glVertexAttribLPointer :: FunPtr (GLuint -> GLint -> GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glVertexAttribLPointer = unsafePerformIO $ getCommand "glVertexAttribLPointer"
+
diff --git a/src/Graphics/GL/Functions/F32.hs b/src/Graphics/GL/Functions/F32.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Functions/F32.hs
@@ -0,0 +1,1556 @@
+{-# OPTIONS_HADDOCK hide #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Functions.F32
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- Raw functions from the
+-- <http://www.opengl.org/registry/ OpenGL registry>.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Functions.F32 (
+  glVertexAttribLPointerEXT,
+  glVertexAttribP1ui,
+  glVertexAttribP1uiv,
+  glVertexAttribP2ui,
+  glVertexAttribP2uiv,
+  glVertexAttribP3ui,
+  glVertexAttribP3uiv,
+  glVertexAttribP4ui,
+  glVertexAttribP4uiv,
+  glVertexAttribParameteriAMD,
+  glVertexAttribPointer,
+  glVertexAttribPointerARB,
+  glVertexAttribPointerNV,
+  glVertexAttribs1dvNV,
+  glVertexAttribs1fvNV,
+  glVertexAttribs1hvNV,
+  glVertexAttribs1svNV,
+  glVertexAttribs2dvNV,
+  glVertexAttribs2fvNV,
+  glVertexAttribs2hvNV,
+  glVertexAttribs2svNV,
+  glVertexAttribs3dvNV,
+  glVertexAttribs3fvNV,
+  glVertexAttribs3hvNV,
+  glVertexAttribs3svNV,
+  glVertexAttribs4dvNV,
+  glVertexAttribs4fvNV,
+  glVertexAttribs4hvNV,
+  glVertexAttribs4svNV,
+  glVertexAttribs4ubvNV,
+  glVertexBindingDivisor,
+  glVertexBlendARB,
+  glVertexBlendEnvfATI,
+  glVertexBlendEnviATI,
+  glVertexFormatNV,
+  glVertexP2ui,
+  glVertexP2uiv,
+  glVertexP3ui,
+  glVertexP3uiv,
+  glVertexP4ui,
+  glVertexP4uiv,
+  glVertexPointer,
+  glVertexPointerEXT,
+  glVertexPointerListIBM,
+  glVertexPointervINTEL,
+  glVertexStream1dATI,
+  glVertexStream1dvATI,
+  glVertexStream1fATI,
+  glVertexStream1fvATI,
+  glVertexStream1iATI,
+  glVertexStream1ivATI,
+  glVertexStream1sATI,
+  glVertexStream1svATI,
+  glVertexStream2dATI,
+  glVertexStream2dvATI,
+  glVertexStream2fATI,
+  glVertexStream2fvATI,
+  glVertexStream2iATI,
+  glVertexStream2ivATI,
+  glVertexStream2sATI,
+  glVertexStream2svATI,
+  glVertexStream3dATI,
+  glVertexStream3dvATI,
+  glVertexStream3fATI,
+  glVertexStream3fvATI,
+  glVertexStream3iATI,
+  glVertexStream3ivATI,
+  glVertexStream3sATI,
+  glVertexStream3svATI,
+  glVertexStream4dATI,
+  glVertexStream4dvATI,
+  glVertexStream4fATI,
+  glVertexStream4fvATI,
+  glVertexStream4iATI,
+  glVertexStream4ivATI,
+  glVertexStream4sATI,
+  glVertexStream4svATI,
+  glVertexWeightPointerEXT,
+  glVertexWeightfEXT,
+  glVertexWeightfvEXT,
+  glVertexWeighthNV,
+  glVertexWeighthvNV,
+  glVideoCaptureNV,
+  glVideoCaptureStreamParameterdvNV,
+  glVideoCaptureStreamParameterfvNV,
+  glVideoCaptureStreamParameterivNV,
+  glViewport,
+  glViewportArrayv,
+  glViewportArrayvNV,
+  glViewportArrayvOES,
+  glViewportIndexedf,
+  glViewportIndexedfNV,
+  glViewportIndexedfOES,
+  glViewportIndexedfv,
+  glViewportIndexedfvNV,
+  glViewportIndexedfvOES,
+  glViewportPositionWScaleNV,
+  glViewportSwizzleNV,
+  glWaitSemaphoreEXT,
+  glWaitSemaphoreui64NVX
+) where
+
+import Control.Monad.IO.Class ( MonadIO(..) )
+import Foreign.Ptr
+import Graphics.GL.Foreign
+import Graphics.GL.Types
+import System.IO.Unsafe ( unsafePerformIO )
+
+-- glVertexAttribLPointerEXT ---------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttribLPointer'.
+glVertexAttribLPointerEXT
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLint -- ^ @size@.
+  -> GLenum -- ^ @type@ of type [VertexAttribPointerType](Graphics-GL-Groups.html#VertexAttribPointerType).
+  -> GLsizei -- ^ @stride@.
+  -> Ptr a -- ^ @pointer@ pointing to @size@ elements of type @a@.
+  -> m ()
+glVertexAttribLPointerEXT v1 v2 v3 v4 v5 = liftIO $ dyn916 ptr_glVertexAttribLPointerEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glVertexAttribLPointerEXT #-}
+ptr_glVertexAttribLPointerEXT :: FunPtr (GLuint -> GLint -> GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glVertexAttribLPointerEXT = unsafePerformIO $ getCommand "glVertexAttribLPointerEXT"
+
+-- glVertexAttribP1ui ----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>.
+glVertexAttribP1ui
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLenum -- ^ @type@ of type [VertexAttribPointerType](Graphics-GL-Groups.html#VertexAttribPointerType).
+  -> GLboolean -- ^ @normalized@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> GLuint -- ^ @value@.
+  -> m ()
+glVertexAttribP1ui v1 v2 v3 v4 = liftIO $ dyn927 ptr_glVertexAttribP1ui v1 v2 v3 v4
+
+{-# NOINLINE ptr_glVertexAttribP1ui #-}
+ptr_glVertexAttribP1ui :: FunPtr (GLuint -> GLenum -> GLboolean -> GLuint -> IO ())
+ptr_glVertexAttribP1ui = unsafePerformIO $ getCommand "glVertexAttribP1ui"
+
+-- glVertexAttribP1uiv ---------------------------------------------------------
+
+glVertexAttribP1uiv
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLenum -- ^ @type@ of type [VertexAttribPointerType](Graphics-GL-Groups.html#VertexAttribPointerType).
+  -> GLboolean -- ^ @normalized@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLuint -- ^ @value@ pointing to @1@ element of type @GLuint@.
+  -> m ()
+glVertexAttribP1uiv v1 v2 v3 v4 = liftIO $ dyn928 ptr_glVertexAttribP1uiv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glVertexAttribP1uiv #-}
+ptr_glVertexAttribP1uiv :: FunPtr (GLuint -> GLenum -> GLboolean -> Ptr GLuint -> IO ())
+ptr_glVertexAttribP1uiv = unsafePerformIO $ getCommand "glVertexAttribP1uiv"
+
+-- glVertexAttribP2ui ----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>.
+glVertexAttribP2ui
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLenum -- ^ @type@ of type [VertexAttribPointerType](Graphics-GL-Groups.html#VertexAttribPointerType).
+  -> GLboolean -- ^ @normalized@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> GLuint -- ^ @value@.
+  -> m ()
+glVertexAttribP2ui v1 v2 v3 v4 = liftIO $ dyn927 ptr_glVertexAttribP2ui v1 v2 v3 v4
+
+{-# NOINLINE ptr_glVertexAttribP2ui #-}
+ptr_glVertexAttribP2ui :: FunPtr (GLuint -> GLenum -> GLboolean -> GLuint -> IO ())
+ptr_glVertexAttribP2ui = unsafePerformIO $ getCommand "glVertexAttribP2ui"
+
+-- glVertexAttribP2uiv ---------------------------------------------------------
+
+glVertexAttribP2uiv
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLenum -- ^ @type@ of type [VertexAttribPointerType](Graphics-GL-Groups.html#VertexAttribPointerType).
+  -> GLboolean -- ^ @normalized@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLuint -- ^ @value@ pointing to @1@ element of type @GLuint@.
+  -> m ()
+glVertexAttribP2uiv v1 v2 v3 v4 = liftIO $ dyn928 ptr_glVertexAttribP2uiv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glVertexAttribP2uiv #-}
+ptr_glVertexAttribP2uiv :: FunPtr (GLuint -> GLenum -> GLboolean -> Ptr GLuint -> IO ())
+ptr_glVertexAttribP2uiv = unsafePerformIO $ getCommand "glVertexAttribP2uiv"
+
+-- glVertexAttribP3ui ----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>.
+glVertexAttribP3ui
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLenum -- ^ @type@ of type [VertexAttribPointerType](Graphics-GL-Groups.html#VertexAttribPointerType).
+  -> GLboolean -- ^ @normalized@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> GLuint -- ^ @value@.
+  -> m ()
+glVertexAttribP3ui v1 v2 v3 v4 = liftIO $ dyn927 ptr_glVertexAttribP3ui v1 v2 v3 v4
+
+{-# NOINLINE ptr_glVertexAttribP3ui #-}
+ptr_glVertexAttribP3ui :: FunPtr (GLuint -> GLenum -> GLboolean -> GLuint -> IO ())
+ptr_glVertexAttribP3ui = unsafePerformIO $ getCommand "glVertexAttribP3ui"
+
+-- glVertexAttribP3uiv ---------------------------------------------------------
+
+glVertexAttribP3uiv
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLenum -- ^ @type@ of type [VertexAttribPointerType](Graphics-GL-Groups.html#VertexAttribPointerType).
+  -> GLboolean -- ^ @normalized@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLuint -- ^ @value@ pointing to @1@ element of type @GLuint@.
+  -> m ()
+glVertexAttribP3uiv v1 v2 v3 v4 = liftIO $ dyn928 ptr_glVertexAttribP3uiv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glVertexAttribP3uiv #-}
+ptr_glVertexAttribP3uiv :: FunPtr (GLuint -> GLenum -> GLboolean -> Ptr GLuint -> IO ())
+ptr_glVertexAttribP3uiv = unsafePerformIO $ getCommand "glVertexAttribP3uiv"
+
+-- glVertexAttribP4ui ----------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttrib.xhtml OpenGL 4.x>.
+glVertexAttribP4ui
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLenum -- ^ @type@ of type [VertexAttribPointerType](Graphics-GL-Groups.html#VertexAttribPointerType).
+  -> GLboolean -- ^ @normalized@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> GLuint -- ^ @value@.
+  -> m ()
+glVertexAttribP4ui v1 v2 v3 v4 = liftIO $ dyn927 ptr_glVertexAttribP4ui v1 v2 v3 v4
+
+{-# NOINLINE ptr_glVertexAttribP4ui #-}
+ptr_glVertexAttribP4ui :: FunPtr (GLuint -> GLenum -> GLboolean -> GLuint -> IO ())
+ptr_glVertexAttribP4ui = unsafePerformIO $ getCommand "glVertexAttribP4ui"
+
+-- glVertexAttribP4uiv ---------------------------------------------------------
+
+glVertexAttribP4uiv
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLenum -- ^ @type@ of type [VertexAttribPointerType](Graphics-GL-Groups.html#VertexAttribPointerType).
+  -> GLboolean -- ^ @normalized@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> Ptr GLuint -- ^ @value@ pointing to @1@ element of type @GLuint@.
+  -> m ()
+glVertexAttribP4uiv v1 v2 v3 v4 = liftIO $ dyn928 ptr_glVertexAttribP4uiv v1 v2 v3 v4
+
+{-# NOINLINE ptr_glVertexAttribP4uiv #-}
+ptr_glVertexAttribP4uiv :: FunPtr (GLuint -> GLenum -> GLboolean -> Ptr GLuint -> IO ())
+ptr_glVertexAttribP4uiv = unsafePerformIO $ getCommand "glVertexAttribP4uiv"
+
+-- glVertexAttribParameteriAMD -------------------------------------------------
+
+glVertexAttribParameteriAMD
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLenum -- ^ @pname@.
+  -> GLint -- ^ @param@.
+  -> m ()
+glVertexAttribParameteriAMD v1 v2 v3 = liftIO $ dyn491 ptr_glVertexAttribParameteriAMD v1 v2 v3
+
+{-# NOINLINE ptr_glVertexAttribParameteriAMD #-}
+ptr_glVertexAttribParameteriAMD :: FunPtr (GLuint -> GLenum -> GLint -> IO ())
+ptr_glVertexAttribParameteriAMD = unsafePerformIO $ getCommand "glVertexAttribParameteriAMD"
+
+-- glVertexAttribPointer -------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttribPointer.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribPointer.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glVertexAttribPointer.xhtml OpenGL 4.x>.
+glVertexAttribPointer
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLint -- ^ @size@.
+  -> GLenum -- ^ @type@ of type [VertexAttribPointerType](Graphics-GL-Groups.html#VertexAttribPointerType).
+  -> GLboolean -- ^ @normalized@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> GLsizei -- ^ @stride@.
+  -> Ptr a -- ^ @pointer@ pointing to @COMPSIZE(size,type,stride)@ elements of type @a@.
+  -> m ()
+glVertexAttribPointer v1 v2 v3 v4 v5 v6 = liftIO $ dyn929 ptr_glVertexAttribPointer v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glVertexAttribPointer #-}
+ptr_glVertexAttribPointer :: FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr a -> IO ())
+ptr_glVertexAttribPointer = unsafePerformIO $ getCommand "glVertexAttribPointer"
+
+-- glVertexAttribPointerARB ----------------------------------------------------
+
+-- | This command is an alias for 'glVertexAttribPointer'.
+glVertexAttribPointerARB
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLint -- ^ @size@.
+  -> GLenum -- ^ @type@ of type [VertexAttribPointerType](Graphics-GL-Groups.html#VertexAttribPointerType).
+  -> GLboolean -- ^ @normalized@ of type [Boolean](Graphics-GL-Groups.html#Boolean).
+  -> GLsizei -- ^ @stride@.
+  -> Ptr a -- ^ @pointer@ pointing to @COMPSIZE(size,type,stride)@ elements of type @a@.
+  -> m ()
+glVertexAttribPointerARB v1 v2 v3 v4 v5 v6 = liftIO $ dyn929 ptr_glVertexAttribPointerARB v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glVertexAttribPointerARB #-}
+ptr_glVertexAttribPointerARB :: FunPtr (GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr a -> IO ())
+ptr_glVertexAttribPointerARB = unsafePerformIO $ getCommand "glVertexAttribPointerARB"
+
+-- glVertexAttribPointerNV -----------------------------------------------------
+
+glVertexAttribPointerNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLint -- ^ @fsize@.
+  -> GLenum -- ^ @type@ of type [VertexAttribEnumNV](Graphics-GL-Groups.html#VertexAttribEnumNV).
+  -> GLsizei -- ^ @stride@.
+  -> Ptr a -- ^ @pointer@ pointing to @COMPSIZE(fsize,type,stride)@ elements of type @a@.
+  -> m ()
+glVertexAttribPointerNV v1 v2 v3 v4 v5 = liftIO $ dyn916 ptr_glVertexAttribPointerNV v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glVertexAttribPointerNV #-}
+ptr_glVertexAttribPointerNV :: FunPtr (GLuint -> GLint -> GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glVertexAttribPointerNV = unsafePerformIO $ getCommand "glVertexAttribPointerNV"
+
+-- glVertexAttribs1dvNV --------------------------------------------------------
+
+glVertexAttribs1dvNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLdouble -- ^ @v@ pointing to @count@ elements of type @GLdouble@.
+  -> m ()
+glVertexAttribs1dvNV v1 v2 v3 = liftIO $ dyn227 ptr_glVertexAttribs1dvNV v1 v2 v3
+
+{-# NOINLINE ptr_glVertexAttribs1dvNV #-}
+ptr_glVertexAttribs1dvNV :: FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ())
+ptr_glVertexAttribs1dvNV = unsafePerformIO $ getCommand "glVertexAttribs1dvNV"
+
+-- glVertexAttribs1fvNV --------------------------------------------------------
+
+glVertexAttribs1fvNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLfloat -- ^ @v@ pointing to @count@ elements of type @GLfloat@.
+  -> m ()
+glVertexAttribs1fvNV v1 v2 v3 = liftIO $ dyn226 ptr_glVertexAttribs1fvNV v1 v2 v3
+
+{-# NOINLINE ptr_glVertexAttribs1fvNV #-}
+ptr_glVertexAttribs1fvNV :: FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+ptr_glVertexAttribs1fvNV = unsafePerformIO $ getCommand "glVertexAttribs1fvNV"
+
+-- glVertexAttribs1hvNV --------------------------------------------------------
+
+glVertexAttribs1hvNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLsizei -- ^ @n@.
+  -> Ptr GLhalfNV -- ^ @v@ pointing to @n@ elements of type @Half16NV@.
+  -> m ()
+glVertexAttribs1hvNV v1 v2 v3 = liftIO $ dyn930 ptr_glVertexAttribs1hvNV v1 v2 v3
+
+{-# NOINLINE ptr_glVertexAttribs1hvNV #-}
+ptr_glVertexAttribs1hvNV :: FunPtr (GLuint -> GLsizei -> Ptr GLhalfNV -> IO ())
+ptr_glVertexAttribs1hvNV = unsafePerformIO $ getCommand "glVertexAttribs1hvNV"
+
+-- glVertexAttribs1svNV --------------------------------------------------------
+
+glVertexAttribs1svNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLshort -- ^ @v@ pointing to @count@ elements of type @GLshort@.
+  -> m ()
+glVertexAttribs1svNV v1 v2 v3 = liftIO $ dyn931 ptr_glVertexAttribs1svNV v1 v2 v3
+
+{-# NOINLINE ptr_glVertexAttribs1svNV #-}
+ptr_glVertexAttribs1svNV :: FunPtr (GLuint -> GLsizei -> Ptr GLshort -> IO ())
+ptr_glVertexAttribs1svNV = unsafePerformIO $ getCommand "glVertexAttribs1svNV"
+
+-- glVertexAttribs2dvNV --------------------------------------------------------
+
+glVertexAttribs2dvNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLdouble -- ^ @v@ pointing to @count*2@ elements of type @GLdouble@.
+  -> m ()
+glVertexAttribs2dvNV v1 v2 v3 = liftIO $ dyn227 ptr_glVertexAttribs2dvNV v1 v2 v3
+
+{-# NOINLINE ptr_glVertexAttribs2dvNV #-}
+ptr_glVertexAttribs2dvNV :: FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ())
+ptr_glVertexAttribs2dvNV = unsafePerformIO $ getCommand "glVertexAttribs2dvNV"
+
+-- glVertexAttribs2fvNV --------------------------------------------------------
+
+glVertexAttribs2fvNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLfloat -- ^ @v@ pointing to @count*2@ elements of type @GLfloat@.
+  -> m ()
+glVertexAttribs2fvNV v1 v2 v3 = liftIO $ dyn226 ptr_glVertexAttribs2fvNV v1 v2 v3
+
+{-# NOINLINE ptr_glVertexAttribs2fvNV #-}
+ptr_glVertexAttribs2fvNV :: FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+ptr_glVertexAttribs2fvNV = unsafePerformIO $ getCommand "glVertexAttribs2fvNV"
+
+-- glVertexAttribs2hvNV --------------------------------------------------------
+
+glVertexAttribs2hvNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLsizei -- ^ @n@.
+  -> Ptr GLhalfNV -- ^ @v@ pointing to @n@ elements of type @Half16NV@.
+  -> m ()
+glVertexAttribs2hvNV v1 v2 v3 = liftIO $ dyn930 ptr_glVertexAttribs2hvNV v1 v2 v3
+
+{-# NOINLINE ptr_glVertexAttribs2hvNV #-}
+ptr_glVertexAttribs2hvNV :: FunPtr (GLuint -> GLsizei -> Ptr GLhalfNV -> IO ())
+ptr_glVertexAttribs2hvNV = unsafePerformIO $ getCommand "glVertexAttribs2hvNV"
+
+-- glVertexAttribs2svNV --------------------------------------------------------
+
+glVertexAttribs2svNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLshort -- ^ @v@ pointing to @count*2@ elements of type @GLshort@.
+  -> m ()
+glVertexAttribs2svNV v1 v2 v3 = liftIO $ dyn931 ptr_glVertexAttribs2svNV v1 v2 v3
+
+{-# NOINLINE ptr_glVertexAttribs2svNV #-}
+ptr_glVertexAttribs2svNV :: FunPtr (GLuint -> GLsizei -> Ptr GLshort -> IO ())
+ptr_glVertexAttribs2svNV = unsafePerformIO $ getCommand "glVertexAttribs2svNV"
+
+-- glVertexAttribs3dvNV --------------------------------------------------------
+
+glVertexAttribs3dvNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLdouble -- ^ @v@ pointing to @count*3@ elements of type @GLdouble@.
+  -> m ()
+glVertexAttribs3dvNV v1 v2 v3 = liftIO $ dyn227 ptr_glVertexAttribs3dvNV v1 v2 v3
+
+{-# NOINLINE ptr_glVertexAttribs3dvNV #-}
+ptr_glVertexAttribs3dvNV :: FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ())
+ptr_glVertexAttribs3dvNV = unsafePerformIO $ getCommand "glVertexAttribs3dvNV"
+
+-- glVertexAttribs3fvNV --------------------------------------------------------
+
+glVertexAttribs3fvNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLfloat -- ^ @v@ pointing to @count*3@ elements of type @GLfloat@.
+  -> m ()
+glVertexAttribs3fvNV v1 v2 v3 = liftIO $ dyn226 ptr_glVertexAttribs3fvNV v1 v2 v3
+
+{-# NOINLINE ptr_glVertexAttribs3fvNV #-}
+ptr_glVertexAttribs3fvNV :: FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+ptr_glVertexAttribs3fvNV = unsafePerformIO $ getCommand "glVertexAttribs3fvNV"
+
+-- glVertexAttribs3hvNV --------------------------------------------------------
+
+glVertexAttribs3hvNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLsizei -- ^ @n@.
+  -> Ptr GLhalfNV -- ^ @v@ pointing to @n@ elements of type @Half16NV@.
+  -> m ()
+glVertexAttribs3hvNV v1 v2 v3 = liftIO $ dyn930 ptr_glVertexAttribs3hvNV v1 v2 v3
+
+{-# NOINLINE ptr_glVertexAttribs3hvNV #-}
+ptr_glVertexAttribs3hvNV :: FunPtr (GLuint -> GLsizei -> Ptr GLhalfNV -> IO ())
+ptr_glVertexAttribs3hvNV = unsafePerformIO $ getCommand "glVertexAttribs3hvNV"
+
+-- glVertexAttribs3svNV --------------------------------------------------------
+
+glVertexAttribs3svNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLshort -- ^ @v@ pointing to @count*3@ elements of type @GLshort@.
+  -> m ()
+glVertexAttribs3svNV v1 v2 v3 = liftIO $ dyn931 ptr_glVertexAttribs3svNV v1 v2 v3
+
+{-# NOINLINE ptr_glVertexAttribs3svNV #-}
+ptr_glVertexAttribs3svNV :: FunPtr (GLuint -> GLsizei -> Ptr GLshort -> IO ())
+ptr_glVertexAttribs3svNV = unsafePerformIO $ getCommand "glVertexAttribs3svNV"
+
+-- glVertexAttribs4dvNV --------------------------------------------------------
+
+glVertexAttribs4dvNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLdouble -- ^ @v@ pointing to @count*4@ elements of type @GLdouble@.
+  -> m ()
+glVertexAttribs4dvNV v1 v2 v3 = liftIO $ dyn227 ptr_glVertexAttribs4dvNV v1 v2 v3
+
+{-# NOINLINE ptr_glVertexAttribs4dvNV #-}
+ptr_glVertexAttribs4dvNV :: FunPtr (GLuint -> GLsizei -> Ptr GLdouble -> IO ())
+ptr_glVertexAttribs4dvNV = unsafePerformIO $ getCommand "glVertexAttribs4dvNV"
+
+-- glVertexAttribs4fvNV --------------------------------------------------------
+
+glVertexAttribs4fvNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLfloat -- ^ @v@ pointing to @count*4@ elements of type @GLfloat@.
+  -> m ()
+glVertexAttribs4fvNV v1 v2 v3 = liftIO $ dyn226 ptr_glVertexAttribs4fvNV v1 v2 v3
+
+{-# NOINLINE ptr_glVertexAttribs4fvNV #-}
+ptr_glVertexAttribs4fvNV :: FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+ptr_glVertexAttribs4fvNV = unsafePerformIO $ getCommand "glVertexAttribs4fvNV"
+
+-- glVertexAttribs4hvNV --------------------------------------------------------
+
+glVertexAttribs4hvNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLsizei -- ^ @n@.
+  -> Ptr GLhalfNV -- ^ @v@ pointing to @n@ elements of type @Half16NV@.
+  -> m ()
+glVertexAttribs4hvNV v1 v2 v3 = liftIO $ dyn930 ptr_glVertexAttribs4hvNV v1 v2 v3
+
+{-# NOINLINE ptr_glVertexAttribs4hvNV #-}
+ptr_glVertexAttribs4hvNV :: FunPtr (GLuint -> GLsizei -> Ptr GLhalfNV -> IO ())
+ptr_glVertexAttribs4hvNV = unsafePerformIO $ getCommand "glVertexAttribs4hvNV"
+
+-- glVertexAttribs4svNV --------------------------------------------------------
+
+glVertexAttribs4svNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLshort -- ^ @v@ pointing to @count*4@ elements of type @GLshort@.
+  -> m ()
+glVertexAttribs4svNV v1 v2 v3 = liftIO $ dyn931 ptr_glVertexAttribs4svNV v1 v2 v3
+
+{-# NOINLINE ptr_glVertexAttribs4svNV #-}
+ptr_glVertexAttribs4svNV :: FunPtr (GLuint -> GLsizei -> Ptr GLshort -> IO ())
+ptr_glVertexAttribs4svNV = unsafePerformIO $ getCommand "glVertexAttribs4svNV"
+
+-- glVertexAttribs4ubvNV -------------------------------------------------------
+
+glVertexAttribs4ubvNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLubyte -- ^ @v@ pointing to @count*4@ elements of type @ColorUB@.
+  -> m ()
+glVertexAttribs4ubvNV v1 v2 v3 = liftIO $ dyn932 ptr_glVertexAttribs4ubvNV v1 v2 v3
+
+{-# NOINLINE ptr_glVertexAttribs4ubvNV #-}
+ptr_glVertexAttribs4ubvNV :: FunPtr (GLuint -> GLsizei -> Ptr GLubyte -> IO ())
+ptr_glVertexAttribs4ubvNV = unsafePerformIO $ getCommand "glVertexAttribs4ubvNV"
+
+-- glVertexBindingDivisor ------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glVertexBindingDivisor.xhtml OpenGL 4.x>.
+glVertexBindingDivisor
+  :: MonadIO m
+  => GLuint -- ^ @bindingindex@.
+  -> GLuint -- ^ @divisor@.
+  -> m ()
+glVertexBindingDivisor v1 v2 = liftIO $ dyn4 ptr_glVertexBindingDivisor v1 v2
+
+{-# NOINLINE ptr_glVertexBindingDivisor #-}
+ptr_glVertexBindingDivisor :: FunPtr (GLuint -> GLuint -> IO ())
+ptr_glVertexBindingDivisor = unsafePerformIO $ getCommand "glVertexBindingDivisor"
+
+-- glVertexBlendARB ------------------------------------------------------------
+
+glVertexBlendARB
+  :: MonadIO m
+  => GLint -- ^ @count@.
+  -> m ()
+glVertexBlendARB v1 = liftIO $ dyn13 ptr_glVertexBlendARB v1
+
+{-# NOINLINE ptr_glVertexBlendARB #-}
+ptr_glVertexBlendARB :: FunPtr (GLint -> IO ())
+ptr_glVertexBlendARB = unsafePerformIO $ getCommand "glVertexBlendARB"
+
+-- glVertexBlendEnvfATI --------------------------------------------------------
+
+glVertexBlendEnvfATI
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [VertexStreamATI](Graphics-GL-Groups.html#VertexStreamATI).
+  -> GLfloat -- ^ @param@.
+  -> m ()
+glVertexBlendEnvfATI v1 v2 = liftIO $ dyn0 ptr_glVertexBlendEnvfATI v1 v2
+
+{-# NOINLINE ptr_glVertexBlendEnvfATI #-}
+ptr_glVertexBlendEnvfATI :: FunPtr (GLenum -> GLfloat -> IO ())
+ptr_glVertexBlendEnvfATI = unsafePerformIO $ getCommand "glVertexBlendEnvfATI"
+
+-- glVertexBlendEnviATI --------------------------------------------------------
+
+glVertexBlendEnviATI
+  :: MonadIO m
+  => GLenum -- ^ @pname@ of type [VertexStreamATI](Graphics-GL-Groups.html#VertexStreamATI).
+  -> GLint -- ^ @param@.
+  -> m ()
+glVertexBlendEnviATI v1 v2 = liftIO $ dyn58 ptr_glVertexBlendEnviATI v1 v2
+
+{-# NOINLINE ptr_glVertexBlendEnviATI #-}
+ptr_glVertexBlendEnviATI :: FunPtr (GLenum -> GLint -> IO ())
+ptr_glVertexBlendEnviATI = unsafePerformIO $ getCommand "glVertexBlendEnviATI"
+
+-- glVertexFormatNV ------------------------------------------------------------
+
+glVertexFormatNV
+  :: MonadIO m
+  => GLint -- ^ @size@.
+  -> GLenum -- ^ @type@ of type [VertexPointerType](Graphics-GL-Groups.html#VertexPointerType).
+  -> GLsizei -- ^ @stride@.
+  -> m ()
+glVertexFormatNV v1 v2 v3 = liftIO $ dyn126 ptr_glVertexFormatNV v1 v2 v3
+
+{-# NOINLINE ptr_glVertexFormatNV #-}
+ptr_glVertexFormatNV :: FunPtr (GLint -> GLenum -> GLsizei -> IO ())
+ptr_glVertexFormatNV = unsafePerformIO $ getCommand "glVertexFormatNV"
+
+-- glVertexP2ui ----------------------------------------------------------------
+
+glVertexP2ui
+  :: MonadIO m
+  => GLenum -- ^ @type@ of type [VertexPointerType](Graphics-GL-Groups.html#VertexPointerType).
+  -> GLuint -- ^ @value@.
+  -> m ()
+glVertexP2ui v1 v2 = liftIO $ dyn19 ptr_glVertexP2ui v1 v2
+
+{-# NOINLINE ptr_glVertexP2ui #-}
+ptr_glVertexP2ui :: FunPtr (GLenum -> GLuint -> IO ())
+ptr_glVertexP2ui = unsafePerformIO $ getCommand "glVertexP2ui"
+
+-- glVertexP2uiv ---------------------------------------------------------------
+
+glVertexP2uiv
+  :: MonadIO m
+  => GLenum -- ^ @type@ of type [VertexPointerType](Graphics-GL-Groups.html#VertexPointerType).
+  -> Ptr GLuint -- ^ @value@ pointing to @1@ element of type @GLuint@.
+  -> m ()
+glVertexP2uiv v1 v2 = liftIO $ dyn132 ptr_glVertexP2uiv v1 v2
+
+{-# NOINLINE ptr_glVertexP2uiv #-}
+ptr_glVertexP2uiv :: FunPtr (GLenum -> Ptr GLuint -> IO ())
+ptr_glVertexP2uiv = unsafePerformIO $ getCommand "glVertexP2uiv"
+
+-- glVertexP3ui ----------------------------------------------------------------
+
+glVertexP3ui
+  :: MonadIO m
+  => GLenum -- ^ @type@ of type [VertexPointerType](Graphics-GL-Groups.html#VertexPointerType).
+  -> GLuint -- ^ @value@.
+  -> m ()
+glVertexP3ui v1 v2 = liftIO $ dyn19 ptr_glVertexP3ui v1 v2
+
+{-# NOINLINE ptr_glVertexP3ui #-}
+ptr_glVertexP3ui :: FunPtr (GLenum -> GLuint -> IO ())
+ptr_glVertexP3ui = unsafePerformIO $ getCommand "glVertexP3ui"
+
+-- glVertexP3uiv ---------------------------------------------------------------
+
+glVertexP3uiv
+  :: MonadIO m
+  => GLenum -- ^ @type@ of type [VertexPointerType](Graphics-GL-Groups.html#VertexPointerType).
+  -> Ptr GLuint -- ^ @value@ pointing to @1@ element of type @GLuint@.
+  -> m ()
+glVertexP3uiv v1 v2 = liftIO $ dyn132 ptr_glVertexP3uiv v1 v2
+
+{-# NOINLINE ptr_glVertexP3uiv #-}
+ptr_glVertexP3uiv :: FunPtr (GLenum -> Ptr GLuint -> IO ())
+ptr_glVertexP3uiv = unsafePerformIO $ getCommand "glVertexP3uiv"
+
+-- glVertexP4ui ----------------------------------------------------------------
+
+glVertexP4ui
+  :: MonadIO m
+  => GLenum -- ^ @type@ of type [VertexPointerType](Graphics-GL-Groups.html#VertexPointerType).
+  -> GLuint -- ^ @value@.
+  -> m ()
+glVertexP4ui v1 v2 = liftIO $ dyn19 ptr_glVertexP4ui v1 v2
+
+{-# NOINLINE ptr_glVertexP4ui #-}
+ptr_glVertexP4ui :: FunPtr (GLenum -> GLuint -> IO ())
+ptr_glVertexP4ui = unsafePerformIO $ getCommand "glVertexP4ui"
+
+-- glVertexP4uiv ---------------------------------------------------------------
+
+glVertexP4uiv
+  :: MonadIO m
+  => GLenum -- ^ @type@ of type [VertexPointerType](Graphics-GL-Groups.html#VertexPointerType).
+  -> Ptr GLuint -- ^ @value@ pointing to @1@ element of type @GLuint@.
+  -> m ()
+glVertexP4uiv v1 v2 = liftIO $ dyn132 ptr_glVertexP4uiv v1 v2
+
+{-# NOINLINE ptr_glVertexP4uiv #-}
+ptr_glVertexP4uiv :: FunPtr (GLenum -> Ptr GLuint -> IO ())
+ptr_glVertexP4uiv = unsafePerformIO $ getCommand "glVertexP4uiv"
+
+-- glVertexPointer -------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glVertexPointer.xml OpenGL 2.x>.
+glVertexPointer
+  :: MonadIO m
+  => GLint -- ^ @size@.
+  -> GLenum -- ^ @type@ of type [VertexPointerType](Graphics-GL-Groups.html#VertexPointerType).
+  -> GLsizei -- ^ @stride@.
+  -> Ptr a -- ^ @pointer@ pointing to @COMPSIZE(size,type,stride)@ elements of type @a@.
+  -> m ()
+glVertexPointer v1 v2 v3 v4 = liftIO $ dyn133 ptr_glVertexPointer v1 v2 v3 v4
+
+{-# NOINLINE ptr_glVertexPointer #-}
+ptr_glVertexPointer :: FunPtr (GLint -> GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glVertexPointer = unsafePerformIO $ getCommand "glVertexPointer"
+
+-- glVertexPointerEXT ----------------------------------------------------------
+
+glVertexPointerEXT
+  :: MonadIO m
+  => GLint -- ^ @size@.
+  -> GLenum -- ^ @type@ of type [VertexPointerType](Graphics-GL-Groups.html#VertexPointerType).
+  -> GLsizei -- ^ @stride@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr a -- ^ @pointer@ pointing to @COMPSIZE(size,type,stride,count)@ elements of type @a@.
+  -> m ()
+glVertexPointerEXT v1 v2 v3 v4 v5 = liftIO $ dyn134 ptr_glVertexPointerEXT v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glVertexPointerEXT #-}
+ptr_glVertexPointerEXT :: FunPtr (GLint -> GLenum -> GLsizei -> GLsizei -> Ptr a -> IO ())
+ptr_glVertexPointerEXT = unsafePerformIO $ getCommand "glVertexPointerEXT"
+
+-- glVertexPointerListIBM ------------------------------------------------------
+
+glVertexPointerListIBM
+  :: MonadIO m
+  => GLint -- ^ @size@.
+  -> GLenum -- ^ @type@ of type [VertexPointerType](Graphics-GL-Groups.html#VertexPointerType).
+  -> GLint -- ^ @stride@.
+  -> Ptr (Ptr a) -- ^ @pointer@ pointing to @COMPSIZE(size,type,stride)@ elements of type @Ptr a@.
+  -> GLint -- ^ @ptrstride@.
+  -> m ()
+glVertexPointerListIBM v1 v2 v3 v4 v5 = liftIO $ dyn135 ptr_glVertexPointerListIBM v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glVertexPointerListIBM #-}
+ptr_glVertexPointerListIBM :: FunPtr (GLint -> GLenum -> GLint -> Ptr (Ptr a) -> GLint -> IO ())
+ptr_glVertexPointerListIBM = unsafePerformIO $ getCommand "glVertexPointerListIBM"
+
+-- glVertexPointervINTEL -------------------------------------------------------
+
+glVertexPointervINTEL
+  :: MonadIO m
+  => GLint -- ^ @size@.
+  -> GLenum -- ^ @type@ of type [VertexPointerType](Graphics-GL-Groups.html#VertexPointerType).
+  -> Ptr (Ptr a) -- ^ @pointer@ pointing to @4@ elements of type @Ptr a@.
+  -> m ()
+glVertexPointervINTEL v1 v2 v3 = liftIO $ dyn136 ptr_glVertexPointervINTEL v1 v2 v3
+
+{-# NOINLINE ptr_glVertexPointervINTEL #-}
+ptr_glVertexPointervINTEL :: FunPtr (GLint -> GLenum -> Ptr (Ptr a) -> IO ())
+ptr_glVertexPointervINTEL = unsafePerformIO $ getCommand "glVertexPointervINTEL"
+
+-- glVertexStream1dATI ---------------------------------------------------------
+
+glVertexStream1dATI
+  :: MonadIO m
+  => GLenum -- ^ @stream@ of type [VertexStreamATI](Graphics-GL-Groups.html#VertexStreamATI).
+  -> GLdouble -- ^ @x@.
+  -> m ()
+glVertexStream1dATI v1 v2 = liftIO $ dyn569 ptr_glVertexStream1dATI v1 v2
+
+{-# NOINLINE ptr_glVertexStream1dATI #-}
+ptr_glVertexStream1dATI :: FunPtr (GLenum -> GLdouble -> IO ())
+ptr_glVertexStream1dATI = unsafePerformIO $ getCommand "glVertexStream1dATI"
+
+-- glVertexStream1dvATI --------------------------------------------------------
+
+glVertexStream1dvATI
+  :: MonadIO m
+  => GLenum -- ^ @stream@ of type [VertexStreamATI](Graphics-GL-Groups.html#VertexStreamATI).
+  -> Ptr GLdouble -- ^ @coords@ pointing to @1@ element of type @GLdouble@.
+  -> m ()
+glVertexStream1dvATI v1 v2 = liftIO $ dyn100 ptr_glVertexStream1dvATI v1 v2
+
+{-# NOINLINE ptr_glVertexStream1dvATI #-}
+ptr_glVertexStream1dvATI :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+ptr_glVertexStream1dvATI = unsafePerformIO $ getCommand "glVertexStream1dvATI"
+
+-- glVertexStream1fATI ---------------------------------------------------------
+
+glVertexStream1fATI
+  :: MonadIO m
+  => GLenum -- ^ @stream@ of type [VertexStreamATI](Graphics-GL-Groups.html#VertexStreamATI).
+  -> GLfloat -- ^ @x@.
+  -> m ()
+glVertexStream1fATI v1 v2 = liftIO $ dyn0 ptr_glVertexStream1fATI v1 v2
+
+{-# NOINLINE ptr_glVertexStream1fATI #-}
+ptr_glVertexStream1fATI :: FunPtr (GLenum -> GLfloat -> IO ())
+ptr_glVertexStream1fATI = unsafePerformIO $ getCommand "glVertexStream1fATI"
+
+-- glVertexStream1fvATI --------------------------------------------------------
+
+glVertexStream1fvATI
+  :: MonadIO m
+  => GLenum -- ^ @stream@ of type [VertexStreamATI](Graphics-GL-Groups.html#VertexStreamATI).
+  -> Ptr GLfloat -- ^ @coords@ pointing to @1@ element of type @GLfloat@.
+  -> m ()
+glVertexStream1fvATI v1 v2 = liftIO $ dyn101 ptr_glVertexStream1fvATI v1 v2
+
+{-# NOINLINE ptr_glVertexStream1fvATI #-}
+ptr_glVertexStream1fvATI :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+ptr_glVertexStream1fvATI = unsafePerformIO $ getCommand "glVertexStream1fvATI"
+
+-- glVertexStream1iATI ---------------------------------------------------------
+
+glVertexStream1iATI
+  :: MonadIO m
+  => GLenum -- ^ @stream@ of type [VertexStreamATI](Graphics-GL-Groups.html#VertexStreamATI).
+  -> GLint -- ^ @x@.
+  -> m ()
+glVertexStream1iATI v1 v2 = liftIO $ dyn58 ptr_glVertexStream1iATI v1 v2
+
+{-# NOINLINE ptr_glVertexStream1iATI #-}
+ptr_glVertexStream1iATI :: FunPtr (GLenum -> GLint -> IO ())
+ptr_glVertexStream1iATI = unsafePerformIO $ getCommand "glVertexStream1iATI"
+
+-- glVertexStream1ivATI --------------------------------------------------------
+
+glVertexStream1ivATI
+  :: MonadIO m
+  => GLenum -- ^ @stream@ of type [VertexStreamATI](Graphics-GL-Groups.html#VertexStreamATI).
+  -> Ptr GLint -- ^ @coords@ pointing to @1@ element of type @GLint@.
+  -> m ()
+glVertexStream1ivATI v1 v2 = liftIO $ dyn143 ptr_glVertexStream1ivATI v1 v2
+
+{-# NOINLINE ptr_glVertexStream1ivATI #-}
+ptr_glVertexStream1ivATI :: FunPtr (GLenum -> Ptr GLint -> IO ())
+ptr_glVertexStream1ivATI = unsafePerformIO $ getCommand "glVertexStream1ivATI"
+
+-- glVertexStream1sATI ---------------------------------------------------------
+
+glVertexStream1sATI
+  :: MonadIO m
+  => GLenum -- ^ @stream@ of type [VertexStreamATI](Graphics-GL-Groups.html#VertexStreamATI).
+  -> GLshort -- ^ @x@.
+  -> m ()
+glVertexStream1sATI v1 v2 = liftIO $ dyn572 ptr_glVertexStream1sATI v1 v2
+
+{-# NOINLINE ptr_glVertexStream1sATI #-}
+ptr_glVertexStream1sATI :: FunPtr (GLenum -> GLshort -> IO ())
+ptr_glVertexStream1sATI = unsafePerformIO $ getCommand "glVertexStream1sATI"
+
+-- glVertexStream1svATI --------------------------------------------------------
+
+glVertexStream1svATI
+  :: MonadIO m
+  => GLenum -- ^ @stream@ of type [VertexStreamATI](Graphics-GL-Groups.html#VertexStreamATI).
+  -> Ptr GLshort -- ^ @coords@ pointing to @1@ element of type @GLshort@.
+  -> m ()
+glVertexStream1svATI v1 v2 = liftIO $ dyn573 ptr_glVertexStream1svATI v1 v2
+
+{-# NOINLINE ptr_glVertexStream1svATI #-}
+ptr_glVertexStream1svATI :: FunPtr (GLenum -> Ptr GLshort -> IO ())
+ptr_glVertexStream1svATI = unsafePerformIO $ getCommand "glVertexStream1svATI"
+
+-- glVertexStream2dATI ---------------------------------------------------------
+
+glVertexStream2dATI
+  :: MonadIO m
+  => GLenum -- ^ @stream@ of type [VertexStreamATI](Graphics-GL-Groups.html#VertexStreamATI).
+  -> GLdouble -- ^ @x@.
+  -> GLdouble -- ^ @y@.
+  -> m ()
+glVertexStream2dATI v1 v2 v3 = liftIO $ dyn575 ptr_glVertexStream2dATI v1 v2 v3
+
+{-# NOINLINE ptr_glVertexStream2dATI #-}
+ptr_glVertexStream2dATI :: FunPtr (GLenum -> GLdouble -> GLdouble -> IO ())
+ptr_glVertexStream2dATI = unsafePerformIO $ getCommand "glVertexStream2dATI"
+
+-- glVertexStream2dvATI --------------------------------------------------------
+
+glVertexStream2dvATI
+  :: MonadIO m
+  => GLenum -- ^ @stream@ of type [VertexStreamATI](Graphics-GL-Groups.html#VertexStreamATI).
+  -> Ptr GLdouble -- ^ @coords@ pointing to @2@ elements of type @GLdouble@.
+  -> m ()
+glVertexStream2dvATI v1 v2 = liftIO $ dyn100 ptr_glVertexStream2dvATI v1 v2
+
+{-# NOINLINE ptr_glVertexStream2dvATI #-}
+ptr_glVertexStream2dvATI :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+ptr_glVertexStream2dvATI = unsafePerformIO $ getCommand "glVertexStream2dvATI"
+
+-- glVertexStream2fATI ---------------------------------------------------------
+
+glVertexStream2fATI
+  :: MonadIO m
+  => GLenum -- ^ @stream@ of type [VertexStreamATI](Graphics-GL-Groups.html#VertexStreamATI).
+  -> GLfloat -- ^ @x@.
+  -> GLfloat -- ^ @y@.
+  -> m ()
+glVertexStream2fATI v1 v2 v3 = liftIO $ dyn576 ptr_glVertexStream2fATI v1 v2 v3
+
+{-# NOINLINE ptr_glVertexStream2fATI #-}
+ptr_glVertexStream2fATI :: FunPtr (GLenum -> GLfloat -> GLfloat -> IO ())
+ptr_glVertexStream2fATI = unsafePerformIO $ getCommand "glVertexStream2fATI"
+
+-- glVertexStream2fvATI --------------------------------------------------------
+
+glVertexStream2fvATI
+  :: MonadIO m
+  => GLenum -- ^ @stream@ of type [VertexStreamATI](Graphics-GL-Groups.html#VertexStreamATI).
+  -> Ptr GLfloat -- ^ @coords@ pointing to @2@ elements of type @GLfloat@.
+  -> m ()
+glVertexStream2fvATI v1 v2 = liftIO $ dyn101 ptr_glVertexStream2fvATI v1 v2
+
+{-# NOINLINE ptr_glVertexStream2fvATI #-}
+ptr_glVertexStream2fvATI :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+ptr_glVertexStream2fvATI = unsafePerformIO $ getCommand "glVertexStream2fvATI"
+
+-- glVertexStream2iATI ---------------------------------------------------------
+
+glVertexStream2iATI
+  :: MonadIO m
+  => GLenum -- ^ @stream@ of type [VertexStreamATI](Graphics-GL-Groups.html#VertexStreamATI).
+  -> GLint -- ^ @x@.
+  -> GLint -- ^ @y@.
+  -> m ()
+glVertexStream2iATI v1 v2 v3 = liftIO $ dyn275 ptr_glVertexStream2iATI v1 v2 v3
+
+{-# NOINLINE ptr_glVertexStream2iATI #-}
+ptr_glVertexStream2iATI :: FunPtr (GLenum -> GLint -> GLint -> IO ())
+ptr_glVertexStream2iATI = unsafePerformIO $ getCommand "glVertexStream2iATI"
+
+-- glVertexStream2ivATI --------------------------------------------------------
+
+glVertexStream2ivATI
+  :: MonadIO m
+  => GLenum -- ^ @stream@ of type [VertexStreamATI](Graphics-GL-Groups.html#VertexStreamATI).
+  -> Ptr GLint -- ^ @coords@ pointing to @2@ elements of type @GLint@.
+  -> m ()
+glVertexStream2ivATI v1 v2 = liftIO $ dyn143 ptr_glVertexStream2ivATI v1 v2
+
+{-# NOINLINE ptr_glVertexStream2ivATI #-}
+ptr_glVertexStream2ivATI :: FunPtr (GLenum -> Ptr GLint -> IO ())
+ptr_glVertexStream2ivATI = unsafePerformIO $ getCommand "glVertexStream2ivATI"
+
+-- glVertexStream2sATI ---------------------------------------------------------
+
+glVertexStream2sATI
+  :: MonadIO m
+  => GLenum -- ^ @stream@ of type [VertexStreamATI](Graphics-GL-Groups.html#VertexStreamATI).
+  -> GLshort -- ^ @x@.
+  -> GLshort -- ^ @y@.
+  -> m ()
+glVertexStream2sATI v1 v2 v3 = liftIO $ dyn578 ptr_glVertexStream2sATI v1 v2 v3
+
+{-# NOINLINE ptr_glVertexStream2sATI #-}
+ptr_glVertexStream2sATI :: FunPtr (GLenum -> GLshort -> GLshort -> IO ())
+ptr_glVertexStream2sATI = unsafePerformIO $ getCommand "glVertexStream2sATI"
+
+-- glVertexStream2svATI --------------------------------------------------------
+
+glVertexStream2svATI
+  :: MonadIO m
+  => GLenum -- ^ @stream@ of type [VertexStreamATI](Graphics-GL-Groups.html#VertexStreamATI).
+  -> Ptr GLshort -- ^ @coords@ pointing to @2@ elements of type @GLshort@.
+  -> m ()
+glVertexStream2svATI v1 v2 = liftIO $ dyn573 ptr_glVertexStream2svATI v1 v2
+
+{-# NOINLINE ptr_glVertexStream2svATI #-}
+ptr_glVertexStream2svATI :: FunPtr (GLenum -> Ptr GLshort -> IO ())
+ptr_glVertexStream2svATI = unsafePerformIO $ getCommand "glVertexStream2svATI"
+
+-- glVertexStream3dATI ---------------------------------------------------------
+
+glVertexStream3dATI
+  :: MonadIO m
+  => GLenum -- ^ @stream@ of type [VertexStreamATI](Graphics-GL-Groups.html#VertexStreamATI).
+  -> GLdouble -- ^ @x@.
+  -> GLdouble -- ^ @y@.
+  -> GLdouble -- ^ @z@.
+  -> m ()
+glVertexStream3dATI v1 v2 v3 v4 = liftIO $ dyn548 ptr_glVertexStream3dATI v1 v2 v3 v4
+
+{-# NOINLINE ptr_glVertexStream3dATI #-}
+ptr_glVertexStream3dATI :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> IO ())
+ptr_glVertexStream3dATI = unsafePerformIO $ getCommand "glVertexStream3dATI"
+
+-- glVertexStream3dvATI --------------------------------------------------------
+
+glVertexStream3dvATI
+  :: MonadIO m
+  => GLenum -- ^ @stream@ of type [VertexStreamATI](Graphics-GL-Groups.html#VertexStreamATI).
+  -> Ptr GLdouble -- ^ @coords@ pointing to @3@ elements of type @GLdouble@.
+  -> m ()
+glVertexStream3dvATI v1 v2 = liftIO $ dyn100 ptr_glVertexStream3dvATI v1 v2
+
+{-# NOINLINE ptr_glVertexStream3dvATI #-}
+ptr_glVertexStream3dvATI :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+ptr_glVertexStream3dvATI = unsafePerformIO $ getCommand "glVertexStream3dvATI"
+
+-- glVertexStream3fATI ---------------------------------------------------------
+
+glVertexStream3fATI
+  :: MonadIO m
+  => GLenum -- ^ @stream@ of type [VertexStreamATI](Graphics-GL-Groups.html#VertexStreamATI).
+  -> GLfloat -- ^ @x@.
+  -> GLfloat -- ^ @y@.
+  -> GLfloat -- ^ @z@.
+  -> m ()
+glVertexStream3fATI v1 v2 v3 v4 = liftIO $ dyn549 ptr_glVertexStream3fATI v1 v2 v3 v4
+
+{-# NOINLINE ptr_glVertexStream3fATI #-}
+ptr_glVertexStream3fATI :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glVertexStream3fATI = unsafePerformIO $ getCommand "glVertexStream3fATI"
+
+-- glVertexStream3fvATI --------------------------------------------------------
+
+glVertexStream3fvATI
+  :: MonadIO m
+  => GLenum -- ^ @stream@ of type [VertexStreamATI](Graphics-GL-Groups.html#VertexStreamATI).
+  -> Ptr GLfloat -- ^ @coords@ pointing to @3@ elements of type @GLfloat@.
+  -> m ()
+glVertexStream3fvATI v1 v2 = liftIO $ dyn101 ptr_glVertexStream3fvATI v1 v2
+
+{-# NOINLINE ptr_glVertexStream3fvATI #-}
+ptr_glVertexStream3fvATI :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+ptr_glVertexStream3fvATI = unsafePerformIO $ getCommand "glVertexStream3fvATI"
+
+-- glVertexStream3iATI ---------------------------------------------------------
+
+glVertexStream3iATI
+  :: MonadIO m
+  => GLenum -- ^ @stream@ of type [VertexStreamATI](Graphics-GL-Groups.html#VertexStreamATI).
+  -> GLint -- ^ @x@.
+  -> GLint -- ^ @y@.
+  -> GLint -- ^ @z@.
+  -> m ()
+glVertexStream3iATI v1 v2 v3 v4 = liftIO $ dyn582 ptr_glVertexStream3iATI v1 v2 v3 v4
+
+{-# NOINLINE ptr_glVertexStream3iATI #-}
+ptr_glVertexStream3iATI :: FunPtr (GLenum -> GLint -> GLint -> GLint -> IO ())
+ptr_glVertexStream3iATI = unsafePerformIO $ getCommand "glVertexStream3iATI"
+
+-- glVertexStream3ivATI --------------------------------------------------------
+
+glVertexStream3ivATI
+  :: MonadIO m
+  => GLenum -- ^ @stream@ of type [VertexStreamATI](Graphics-GL-Groups.html#VertexStreamATI).
+  -> Ptr GLint -- ^ @coords@ pointing to @3@ elements of type @GLint@.
+  -> m ()
+glVertexStream3ivATI v1 v2 = liftIO $ dyn143 ptr_glVertexStream3ivATI v1 v2
+
+{-# NOINLINE ptr_glVertexStream3ivATI #-}
+ptr_glVertexStream3ivATI :: FunPtr (GLenum -> Ptr GLint -> IO ())
+ptr_glVertexStream3ivATI = unsafePerformIO $ getCommand "glVertexStream3ivATI"
+
+-- glVertexStream3sATI ---------------------------------------------------------
+
+glVertexStream3sATI
+  :: MonadIO m
+  => GLenum -- ^ @stream@ of type [VertexStreamATI](Graphics-GL-Groups.html#VertexStreamATI).
+  -> GLshort -- ^ @x@.
+  -> GLshort -- ^ @y@.
+  -> GLshort -- ^ @z@.
+  -> m ()
+glVertexStream3sATI v1 v2 v3 v4 = liftIO $ dyn583 ptr_glVertexStream3sATI v1 v2 v3 v4
+
+{-# NOINLINE ptr_glVertexStream3sATI #-}
+ptr_glVertexStream3sATI :: FunPtr (GLenum -> GLshort -> GLshort -> GLshort -> IO ())
+ptr_glVertexStream3sATI = unsafePerformIO $ getCommand "glVertexStream3sATI"
+
+-- glVertexStream3svATI --------------------------------------------------------
+
+glVertexStream3svATI
+  :: MonadIO m
+  => GLenum -- ^ @stream@ of type [VertexStreamATI](Graphics-GL-Groups.html#VertexStreamATI).
+  -> Ptr GLshort -- ^ @coords@ pointing to @3@ elements of type @GLshort@.
+  -> m ()
+glVertexStream3svATI v1 v2 = liftIO $ dyn573 ptr_glVertexStream3svATI v1 v2
+
+{-# NOINLINE ptr_glVertexStream3svATI #-}
+ptr_glVertexStream3svATI :: FunPtr (GLenum -> Ptr GLshort -> IO ())
+ptr_glVertexStream3svATI = unsafePerformIO $ getCommand "glVertexStream3svATI"
+
+-- glVertexStream4dATI ---------------------------------------------------------
+
+glVertexStream4dATI
+  :: MonadIO m
+  => GLenum -- ^ @stream@ of type [VertexStreamATI](Graphics-GL-Groups.html#VertexStreamATI).
+  -> GLdouble -- ^ @x@.
+  -> GLdouble -- ^ @y@.
+  -> GLdouble -- ^ @z@.
+  -> GLdouble -- ^ @w@.
+  -> m ()
+glVertexStream4dATI v1 v2 v3 v4 v5 = liftIO $ dyn546 ptr_glVertexStream4dATI v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glVertexStream4dATI #-}
+ptr_glVertexStream4dATI :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+ptr_glVertexStream4dATI = unsafePerformIO $ getCommand "glVertexStream4dATI"
+
+-- glVertexStream4dvATI --------------------------------------------------------
+
+glVertexStream4dvATI
+  :: MonadIO m
+  => GLenum -- ^ @stream@ of type [VertexStreamATI](Graphics-GL-Groups.html#VertexStreamATI).
+  -> Ptr GLdouble -- ^ @coords@ pointing to @4@ elements of type @GLdouble@.
+  -> m ()
+glVertexStream4dvATI v1 v2 = liftIO $ dyn100 ptr_glVertexStream4dvATI v1 v2
+
+{-# NOINLINE ptr_glVertexStream4dvATI #-}
+ptr_glVertexStream4dvATI :: FunPtr (GLenum -> Ptr GLdouble -> IO ())
+ptr_glVertexStream4dvATI = unsafePerformIO $ getCommand "glVertexStream4dvATI"
+
+-- glVertexStream4fATI ---------------------------------------------------------
+
+glVertexStream4fATI
+  :: MonadIO m
+  => GLenum -- ^ @stream@ of type [VertexStreamATI](Graphics-GL-Groups.html#VertexStreamATI).
+  -> GLfloat -- ^ @x@.
+  -> GLfloat -- ^ @y@.
+  -> GLfloat -- ^ @z@.
+  -> GLfloat -- ^ @w@.
+  -> m ()
+glVertexStream4fATI v1 v2 v3 v4 v5 = liftIO $ dyn547 ptr_glVertexStream4fATI v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glVertexStream4fATI #-}
+ptr_glVertexStream4fATI :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glVertexStream4fATI = unsafePerformIO $ getCommand "glVertexStream4fATI"
+
+-- glVertexStream4fvATI --------------------------------------------------------
+
+glVertexStream4fvATI
+  :: MonadIO m
+  => GLenum -- ^ @stream@ of type [VertexStreamATI](Graphics-GL-Groups.html#VertexStreamATI).
+  -> Ptr GLfloat -- ^ @coords@ pointing to @4@ elements of type @GLfloat@.
+  -> m ()
+glVertexStream4fvATI v1 v2 = liftIO $ dyn101 ptr_glVertexStream4fvATI v1 v2
+
+{-# NOINLINE ptr_glVertexStream4fvATI #-}
+ptr_glVertexStream4fvATI :: FunPtr (GLenum -> Ptr GLfloat -> IO ())
+ptr_glVertexStream4fvATI = unsafePerformIO $ getCommand "glVertexStream4fvATI"
+
+-- glVertexStream4iATI ---------------------------------------------------------
+
+glVertexStream4iATI
+  :: MonadIO m
+  => GLenum -- ^ @stream@ of type [VertexStreamATI](Graphics-GL-Groups.html#VertexStreamATI).
+  -> GLint -- ^ @x@.
+  -> GLint -- ^ @y@.
+  -> GLint -- ^ @z@.
+  -> GLint -- ^ @w@.
+  -> m ()
+glVertexStream4iATI v1 v2 v3 v4 v5 = liftIO $ dyn276 ptr_glVertexStream4iATI v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glVertexStream4iATI #-}
+ptr_glVertexStream4iATI :: FunPtr (GLenum -> GLint -> GLint -> GLint -> GLint -> IO ())
+ptr_glVertexStream4iATI = unsafePerformIO $ getCommand "glVertexStream4iATI"
+
+-- glVertexStream4ivATI --------------------------------------------------------
+
+glVertexStream4ivATI
+  :: MonadIO m
+  => GLenum -- ^ @stream@ of type [VertexStreamATI](Graphics-GL-Groups.html#VertexStreamATI).
+  -> Ptr GLint -- ^ @coords@ pointing to @4@ elements of type @GLint@.
+  -> m ()
+glVertexStream4ivATI v1 v2 = liftIO $ dyn143 ptr_glVertexStream4ivATI v1 v2
+
+{-# NOINLINE ptr_glVertexStream4ivATI #-}
+ptr_glVertexStream4ivATI :: FunPtr (GLenum -> Ptr GLint -> IO ())
+ptr_glVertexStream4ivATI = unsafePerformIO $ getCommand "glVertexStream4ivATI"
+
+-- glVertexStream4sATI ---------------------------------------------------------
+
+glVertexStream4sATI
+  :: MonadIO m
+  => GLenum -- ^ @stream@ of type [VertexStreamATI](Graphics-GL-Groups.html#VertexStreamATI).
+  -> GLshort -- ^ @x@.
+  -> GLshort -- ^ @y@.
+  -> GLshort -- ^ @z@.
+  -> GLshort -- ^ @w@.
+  -> m ()
+glVertexStream4sATI v1 v2 v3 v4 v5 = liftIO $ dyn587 ptr_glVertexStream4sATI v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glVertexStream4sATI #-}
+ptr_glVertexStream4sATI :: FunPtr (GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> IO ())
+ptr_glVertexStream4sATI = unsafePerformIO $ getCommand "glVertexStream4sATI"
+
+-- glVertexStream4svATI --------------------------------------------------------
+
+glVertexStream4svATI
+  :: MonadIO m
+  => GLenum -- ^ @stream@ of type [VertexStreamATI](Graphics-GL-Groups.html#VertexStreamATI).
+  -> Ptr GLshort -- ^ @coords@ pointing to @4@ elements of type @GLshort@.
+  -> m ()
+glVertexStream4svATI v1 v2 = liftIO $ dyn573 ptr_glVertexStream4svATI v1 v2
+
+{-# NOINLINE ptr_glVertexStream4svATI #-}
+ptr_glVertexStream4svATI :: FunPtr (GLenum -> Ptr GLshort -> IO ())
+ptr_glVertexStream4svATI = unsafePerformIO $ getCommand "glVertexStream4svATI"
+
+-- glVertexWeightPointerEXT ----------------------------------------------------
+
+glVertexWeightPointerEXT
+  :: MonadIO m
+  => GLint -- ^ @size@.
+  -> GLenum -- ^ @type@ of type [VertexWeightPointerTypeEXT](Graphics-GL-Groups.html#VertexWeightPointerTypeEXT).
+  -> GLsizei -- ^ @stride@.
+  -> Ptr a -- ^ @pointer@ pointing to @COMPSIZE(type,stride)@ elements of type @a@.
+  -> m ()
+glVertexWeightPointerEXT v1 v2 v3 v4 = liftIO $ dyn133 ptr_glVertexWeightPointerEXT v1 v2 v3 v4
+
+{-# NOINLINE ptr_glVertexWeightPointerEXT #-}
+ptr_glVertexWeightPointerEXT :: FunPtr (GLint -> GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glVertexWeightPointerEXT = unsafePerformIO $ getCommand "glVertexWeightPointerEXT"
+
+-- glVertexWeightfEXT ----------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glVertexWeightfvEXT'.
+glVertexWeightfEXT
+  :: MonadIO m
+  => GLfloat -- ^ @weight@.
+  -> m ()
+glVertexWeightfEXT v1 = liftIO $ dyn85 ptr_glVertexWeightfEXT v1
+
+{-# NOINLINE ptr_glVertexWeightfEXT #-}
+ptr_glVertexWeightfEXT :: FunPtr (GLfloat -> IO ())
+ptr_glVertexWeightfEXT = unsafePerformIO $ getCommand "glVertexWeightfEXT"
+
+-- glVertexWeightfvEXT ---------------------------------------------------------
+
+glVertexWeightfvEXT
+  :: MonadIO m
+  => Ptr GLfloat -- ^ @weight@ pointing to @1@ element of type @GLfloat@.
+  -> m ()
+glVertexWeightfvEXT v1 = liftIO $ dyn44 ptr_glVertexWeightfvEXT v1
+
+{-# NOINLINE ptr_glVertexWeightfvEXT #-}
+ptr_glVertexWeightfvEXT :: FunPtr (Ptr GLfloat -> IO ())
+ptr_glVertexWeightfvEXT = unsafePerformIO $ getCommand "glVertexWeightfvEXT"
+
+-- glVertexWeighthNV -----------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glVertexWeighthvNV'.
+glVertexWeighthNV
+  :: MonadIO m
+  => GLhalfNV -- ^ @weight@ of type @Half16NV@.
+  -> m ()
+glVertexWeighthNV v1 = liftIO $ dyn292 ptr_glVertexWeighthNV v1
+
+{-# NOINLINE ptr_glVertexWeighthNV #-}
+ptr_glVertexWeighthNV :: FunPtr (GLhalfNV -> IO ())
+ptr_glVertexWeighthNV = unsafePerformIO $ getCommand "glVertexWeighthNV"
+
+-- glVertexWeighthvNV ----------------------------------------------------------
+
+glVertexWeighthvNV
+  :: MonadIO m
+  => Ptr GLhalfNV -- ^ @weight@ pointing to @1@ element of type @Half16NV@.
+  -> m ()
+glVertexWeighthvNV v1 = liftIO $ dyn106 ptr_glVertexWeighthvNV v1
+
+{-# NOINLINE ptr_glVertexWeighthvNV #-}
+ptr_glVertexWeighthvNV :: FunPtr (Ptr GLhalfNV -> IO ())
+ptr_glVertexWeighthvNV = unsafePerformIO $ getCommand "glVertexWeighthvNV"
+
+-- glVideoCaptureNV ------------------------------------------------------------
+
+glVideoCaptureNV
+  :: MonadIO m
+  => GLuint -- ^ @video_capture_slot@.
+  -> Ptr GLuint -- ^ @sequence_num@.
+  -> Ptr GLuint64EXT -- ^ @capture_time@.
+  -> m GLenum
+glVideoCaptureNV v1 v2 v3 = liftIO $ dyn933 ptr_glVideoCaptureNV v1 v2 v3
+
+{-# NOINLINE ptr_glVideoCaptureNV #-}
+ptr_glVideoCaptureNV :: FunPtr (GLuint -> Ptr GLuint -> Ptr GLuint64EXT -> IO GLenum)
+ptr_glVideoCaptureNV = unsafePerformIO $ getCommand "glVideoCaptureNV"
+
+-- glVideoCaptureStreamParameterdvNV -------------------------------------------
+
+glVideoCaptureStreamParameterdvNV
+  :: MonadIO m
+  => GLuint -- ^ @video_capture_slot@.
+  -> GLuint -- ^ @stream@.
+  -> GLenum -- ^ @pname@.
+  -> Ptr GLdouble -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLdouble@.
+  -> m ()
+glVideoCaptureStreamParameterdvNV v1 v2 v3 v4 = liftIO $ dyn465 ptr_glVideoCaptureStreamParameterdvNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glVideoCaptureStreamParameterdvNV #-}
+ptr_glVideoCaptureStreamParameterdvNV :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLdouble -> IO ())
+ptr_glVideoCaptureStreamParameterdvNV = unsafePerformIO $ getCommand "glVideoCaptureStreamParameterdvNV"
+
+-- glVideoCaptureStreamParameterfvNV -------------------------------------------
+
+glVideoCaptureStreamParameterfvNV
+  :: MonadIO m
+  => GLuint -- ^ @video_capture_slot@.
+  -> GLuint -- ^ @stream@.
+  -> GLenum -- ^ @pname@.
+  -> Ptr GLfloat -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLfloat@.
+  -> m ()
+glVideoCaptureStreamParameterfvNV v1 v2 v3 v4 = liftIO $ dyn466 ptr_glVideoCaptureStreamParameterfvNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glVideoCaptureStreamParameterfvNV #-}
+ptr_glVideoCaptureStreamParameterfvNV :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLfloat -> IO ())
+ptr_glVideoCaptureStreamParameterfvNV = unsafePerformIO $ getCommand "glVideoCaptureStreamParameterfvNV"
+
+-- glVideoCaptureStreamParameterivNV -------------------------------------------
+
+glVideoCaptureStreamParameterivNV
+  :: MonadIO m
+  => GLuint -- ^ @video_capture_slot@.
+  -> GLuint -- ^ @stream@.
+  -> GLenum -- ^ @pname@.
+  -> Ptr GLint -- ^ @params@ pointing to @COMPSIZE(pname)@ elements of type @GLint@.
+  -> m ()
+glVideoCaptureStreamParameterivNV v1 v2 v3 v4 = liftIO $ dyn314 ptr_glVideoCaptureStreamParameterivNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glVideoCaptureStreamParameterivNV #-}
+ptr_glVideoCaptureStreamParameterivNV :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr GLint -> IO ())
+ptr_glVideoCaptureStreamParameterivNV = unsafePerformIO $ getCommand "glVideoCaptureStreamParameterivNV"
+
+-- glViewport ------------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man2/xhtml/glViewport.xml OpenGL 2.x> or <https://www.opengl.org/sdk/docs/man3/xhtml/glViewport.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glViewport.xhtml OpenGL 4.x>.
+glViewport
+  :: MonadIO m
+  => GLint -- ^ @x@ of type @WinCoord@.
+  -> GLint -- ^ @y@ of type @WinCoord@.
+  -> GLsizei -- ^ @width@.
+  -> GLsizei -- ^ @height@.
+  -> m ()
+glViewport v1 v2 v3 v4 = liftIO $ dyn738 ptr_glViewport v1 v2 v3 v4
+
+{-# NOINLINE ptr_glViewport #-}
+ptr_glViewport :: FunPtr (GLint -> GLint -> GLsizei -> GLsizei -> IO ())
+ptr_glViewport = unsafePerformIO $ getCommand "glViewport"
+
+-- glViewportArrayv ------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glViewportArray.xhtml OpenGL 4.x>.
+glViewportArrayv
+  :: MonadIO m
+  => GLuint -- ^ @first@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLfloat -- ^ @v@ pointing to @COMPSIZE(count)@ elements of type @GLfloat@.
+  -> m ()
+glViewportArrayv v1 v2 v3 = liftIO $ dyn226 ptr_glViewportArrayv v1 v2 v3
+
+{-# NOINLINE ptr_glViewportArrayv #-}
+ptr_glViewportArrayv :: FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+ptr_glViewportArrayv = unsafePerformIO $ getCommand "glViewportArrayv"
+
+-- glViewportArrayvNV ----------------------------------------------------------
+
+-- | This command is an alias for 'glViewportArrayv'.
+glViewportArrayvNV
+  :: MonadIO m
+  => GLuint -- ^ @first@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLfloat -- ^ @v@ pointing to @COMPSIZE(count)@ elements of type @GLfloat@.
+  -> m ()
+glViewportArrayvNV v1 v2 v3 = liftIO $ dyn226 ptr_glViewportArrayvNV v1 v2 v3
+
+{-# NOINLINE ptr_glViewportArrayvNV #-}
+ptr_glViewportArrayvNV :: FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+ptr_glViewportArrayvNV = unsafePerformIO $ getCommand "glViewportArrayvNV"
+
+-- glViewportArrayvOES ---------------------------------------------------------
+
+-- | This command is an alias for 'glViewportArrayv'.
+glViewportArrayvOES
+  :: MonadIO m
+  => GLuint -- ^ @first@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLfloat -- ^ @v@ pointing to @COMPSIZE(count)@ elements of type @GLfloat@.
+  -> m ()
+glViewportArrayvOES v1 v2 v3 = liftIO $ dyn226 ptr_glViewportArrayvOES v1 v2 v3
+
+{-# NOINLINE ptr_glViewportArrayvOES #-}
+ptr_glViewportArrayvOES :: FunPtr (GLuint -> GLsizei -> Ptr GLfloat -> IO ())
+ptr_glViewportArrayvOES = unsafePerformIO $ getCommand "glViewportArrayvOES"
+
+-- glViewportIndexedf ----------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glViewportIndexed.xhtml OpenGL 4.x>.
+glViewportIndexedf
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLfloat -- ^ @x@.
+  -> GLfloat -- ^ @y@.
+  -> GLfloat -- ^ @w@.
+  -> GLfloat -- ^ @h@.
+  -> m ()
+glViewportIndexedf v1 v2 v3 v4 v5 = liftIO $ dyn907 ptr_glViewportIndexedf v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glViewportIndexedf #-}
+ptr_glViewportIndexedf :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glViewportIndexedf = unsafePerformIO $ getCommand "glViewportIndexedf"
+
+-- glViewportIndexedfNV --------------------------------------------------------
+
+-- | This command is an alias for 'glViewportIndexedf'.
+glViewportIndexedfNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLfloat -- ^ @x@.
+  -> GLfloat -- ^ @y@.
+  -> GLfloat -- ^ @w@.
+  -> GLfloat -- ^ @h@.
+  -> m ()
+glViewportIndexedfNV v1 v2 v3 v4 v5 = liftIO $ dyn907 ptr_glViewportIndexedfNV v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glViewportIndexedfNV #-}
+ptr_glViewportIndexedfNV :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glViewportIndexedfNV = unsafePerformIO $ getCommand "glViewportIndexedfNV"
+
+-- glViewportIndexedfOES -------------------------------------------------------
+
+-- | This command is an alias for 'glViewportIndexedf'.
+glViewportIndexedfOES
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLfloat -- ^ @x@.
+  -> GLfloat -- ^ @y@.
+  -> GLfloat -- ^ @w@.
+  -> GLfloat -- ^ @h@.
+  -> m ()
+glViewportIndexedfOES v1 v2 v3 v4 v5 = liftIO $ dyn907 ptr_glViewportIndexedfOES v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glViewportIndexedfOES #-}
+ptr_glViewportIndexedfOES :: FunPtr (GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glViewportIndexedfOES = unsafePerformIO $ getCommand "glViewportIndexedfOES"
+
+-- glViewportIndexedfv ---------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man4/html/glViewportIndexed.xhtml OpenGL 4.x>.
+glViewportIndexedfv
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLfloat -- ^ @v@ pointing to @4@ elements of type @GLfloat@.
+  -> m ()
+glViewportIndexedfv v1 v2 = liftIO $ dyn394 ptr_glViewportIndexedfv v1 v2
+
+{-# NOINLINE ptr_glViewportIndexedfv #-}
+ptr_glViewportIndexedfv :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+ptr_glViewportIndexedfv = unsafePerformIO $ getCommand "glViewportIndexedfv"
+
+-- glViewportIndexedfvNV -------------------------------------------------------
+
+-- | This command is an alias for 'glViewportIndexedfv'.
+glViewportIndexedfvNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLfloat -- ^ @v@ pointing to @4@ elements of type @GLfloat@.
+  -> m ()
+glViewportIndexedfvNV v1 v2 = liftIO $ dyn394 ptr_glViewportIndexedfvNV v1 v2
+
+{-# NOINLINE ptr_glViewportIndexedfvNV #-}
+ptr_glViewportIndexedfvNV :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+ptr_glViewportIndexedfvNV = unsafePerformIO $ getCommand "glViewportIndexedfvNV"
+
+-- glViewportIndexedfvOES ------------------------------------------------------
+
+-- | This command is an alias for 'glViewportIndexedfv'.
+glViewportIndexedfvOES
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> Ptr GLfloat -- ^ @v@ pointing to @4@ elements of type @GLfloat@.
+  -> m ()
+glViewportIndexedfvOES v1 v2 = liftIO $ dyn394 ptr_glViewportIndexedfvOES v1 v2
+
+{-# NOINLINE ptr_glViewportIndexedfvOES #-}
+ptr_glViewportIndexedfvOES :: FunPtr (GLuint -> Ptr GLfloat -> IO ())
+ptr_glViewportIndexedfvOES = unsafePerformIO $ getCommand "glViewportIndexedfvOES"
+
+-- glViewportPositionWScaleNV --------------------------------------------------
+
+glViewportPositionWScaleNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLfloat -- ^ @xcoeff@.
+  -> GLfloat -- ^ @ycoeff@.
+  -> m ()
+glViewportPositionWScaleNV v1 v2 v3 = liftIO $ dyn229 ptr_glViewportPositionWScaleNV v1 v2 v3
+
+{-# NOINLINE ptr_glViewportPositionWScaleNV #-}
+ptr_glViewportPositionWScaleNV :: FunPtr (GLuint -> GLfloat -> GLfloat -> IO ())
+ptr_glViewportPositionWScaleNV = unsafePerformIO $ getCommand "glViewportPositionWScaleNV"
+
+-- glViewportSwizzleNV ---------------------------------------------------------
+
+glViewportSwizzleNV
+  :: MonadIO m
+  => GLuint -- ^ @index@.
+  -> GLenum -- ^ @swizzlex@.
+  -> GLenum -- ^ @swizzley@.
+  -> GLenum -- ^ @swizzlez@.
+  -> GLenum -- ^ @swizzlew@.
+  -> m ()
+glViewportSwizzleNV v1 v2 v3 v4 v5 = liftIO $ dyn57 ptr_glViewportSwizzleNV v1 v2 v3 v4 v5
+
+{-# NOINLINE ptr_glViewportSwizzleNV #-}
+ptr_glViewportSwizzleNV :: FunPtr (GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
+ptr_glViewportSwizzleNV = unsafePerformIO $ getCommand "glViewportSwizzleNV"
+
+-- glWaitSemaphoreEXT ----------------------------------------------------------
+
+glWaitSemaphoreEXT
+  :: MonadIO m
+  => GLuint -- ^ @semaphore@.
+  -> GLuint -- ^ @numBufferBarriers@.
+  -> Ptr GLuint -- ^ @buffers@ pointing to @COMPSIZE(numBufferBarriers)@ elements of type @GLuint@.
+  -> GLuint -- ^ @numTextureBarriers@.
+  -> Ptr GLuint -- ^ @textures@ pointing to @COMPSIZE(numTextureBarriers)@ elements of type @GLuint@.
+  -> Ptr GLenum -- ^ @srcLayouts@ pointing to @COMPSIZE(numTextureBarriers)@ elements of type [TextureLayout](Graphics-GL-Groups.html#TextureLayout).
+  -> m ()
+glWaitSemaphoreEXT v1 v2 v3 v4 v5 v6 = liftIO $ dyn749 ptr_glWaitSemaphoreEXT v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glWaitSemaphoreEXT #-}
+ptr_glWaitSemaphoreEXT :: FunPtr (GLuint -> GLuint -> Ptr GLuint -> GLuint -> Ptr GLuint -> Ptr GLenum -> IO ())
+ptr_glWaitSemaphoreEXT = unsafePerformIO $ getCommand "glWaitSemaphoreEXT"
+
+-- glWaitSemaphoreui64NVX ------------------------------------------------------
+
+glWaitSemaphoreui64NVX
+  :: MonadIO m
+  => GLuint -- ^ @waitGpu@.
+  -> GLsizei -- ^ @fenceObjectCount@.
+  -> Ptr GLuint -- ^ @semaphoreArray@ pointing to @fenceObjectCount@ elements of type @GLuint@.
+  -> Ptr GLuint64 -- ^ @fenceValueArray@ pointing to @fenceObjectCount@ elements of type @GLuint64@.
+  -> m ()
+glWaitSemaphoreui64NVX v1 v2 v3 v4 = liftIO $ dyn750 ptr_glWaitSemaphoreui64NVX v1 v2 v3 v4
+
+{-# NOINLINE ptr_glWaitSemaphoreui64NVX #-}
+ptr_glWaitSemaphoreui64NVX :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> Ptr GLuint64 -> IO ())
+ptr_glWaitSemaphoreui64NVX = unsafePerformIO $ getCommand "glWaitSemaphoreui64NVX"
+
diff --git a/src/Graphics/GL/Functions/F33.hs b/src/Graphics/GL/Functions/F33.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Functions/F33.hs
@@ -0,0 +1,1091 @@
+{-# OPTIONS_HADDOCK hide #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Functions.F33
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- Raw functions from the
+-- <http://www.opengl.org/registry/ OpenGL registry>.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Functions.F33 (
+  glWaitSync,
+  glWaitSyncAPPLE,
+  glWaitVkSemaphoreNV,
+  glWeightPathsNV,
+  glWeightPointerARB,
+  glWeightPointerOES,
+  glWeightbvARB,
+  glWeightdvARB,
+  glWeightfvARB,
+  glWeightivARB,
+  glWeightsvARB,
+  glWeightubvARB,
+  glWeightuivARB,
+  glWeightusvARB,
+  glWindowPos2d,
+  glWindowPos2dARB,
+  glWindowPos2dMESA,
+  glWindowPos2dv,
+  glWindowPos2dvARB,
+  glWindowPos2dvMESA,
+  glWindowPos2f,
+  glWindowPos2fARB,
+  glWindowPos2fMESA,
+  glWindowPos2fv,
+  glWindowPos2fvARB,
+  glWindowPos2fvMESA,
+  glWindowPos2i,
+  glWindowPos2iARB,
+  glWindowPos2iMESA,
+  glWindowPos2iv,
+  glWindowPos2ivARB,
+  glWindowPos2ivMESA,
+  glWindowPos2s,
+  glWindowPos2sARB,
+  glWindowPos2sMESA,
+  glWindowPos2sv,
+  glWindowPos2svARB,
+  glWindowPos2svMESA,
+  glWindowPos3d,
+  glWindowPos3dARB,
+  glWindowPos3dMESA,
+  glWindowPos3dv,
+  glWindowPos3dvARB,
+  glWindowPos3dvMESA,
+  glWindowPos3f,
+  glWindowPos3fARB,
+  glWindowPos3fMESA,
+  glWindowPos3fv,
+  glWindowPos3fvARB,
+  glWindowPos3fvMESA,
+  glWindowPos3i,
+  glWindowPos3iARB,
+  glWindowPos3iMESA,
+  glWindowPos3iv,
+  glWindowPos3ivARB,
+  glWindowPos3ivMESA,
+  glWindowPos3s,
+  glWindowPos3sARB,
+  glWindowPos3sMESA,
+  glWindowPos3sv,
+  glWindowPos3svARB,
+  glWindowPos3svMESA,
+  glWindowPos4dMESA,
+  glWindowPos4dvMESA,
+  glWindowPos4fMESA,
+  glWindowPos4fvMESA,
+  glWindowPos4iMESA,
+  glWindowPos4ivMESA,
+  glWindowPos4sMESA,
+  glWindowPos4svMESA,
+  glWindowRectanglesEXT,
+  glWriteMaskEXT
+) where
+
+import Control.Monad.IO.Class ( MonadIO(..) )
+import Foreign.Ptr
+import Graphics.GL.Foreign
+import Graphics.GL.Types
+import System.IO.Unsafe ( unsafePerformIO )
+
+-- glWaitSync ------------------------------------------------------------------
+
+-- | Manual pages for <https://www.opengl.org/sdk/docs/man3/xhtml/glWaitSync.xml OpenGL 3.x> or <https://www.opengl.org/sdk/docs/man4/html/glWaitSync.xhtml OpenGL 4.x>.
+glWaitSync
+  :: MonadIO m
+  => GLsync -- ^ @sync@ of type @sync@.
+  -> GLbitfield -- ^ @flags@.
+  -> GLuint64 -- ^ @timeout@.
+  -> m ()
+glWaitSync v1 v2 v3 = liftIO $ dyn934 ptr_glWaitSync v1 v2 v3
+
+{-# NOINLINE ptr_glWaitSync #-}
+ptr_glWaitSync :: FunPtr (GLsync -> GLbitfield -> GLuint64 -> IO ())
+ptr_glWaitSync = unsafePerformIO $ getCommand "glWaitSync"
+
+-- glWaitSyncAPPLE -------------------------------------------------------------
+
+-- | This command is an alias for 'glWaitSync'.
+glWaitSyncAPPLE
+  :: MonadIO m
+  => GLsync -- ^ @sync@.
+  -> GLbitfield -- ^ @flags@.
+  -> GLuint64 -- ^ @timeout@.
+  -> m ()
+glWaitSyncAPPLE v1 v2 v3 = liftIO $ dyn934 ptr_glWaitSyncAPPLE v1 v2 v3
+
+{-# NOINLINE ptr_glWaitSyncAPPLE #-}
+ptr_glWaitSyncAPPLE :: FunPtr (GLsync -> GLbitfield -> GLuint64 -> IO ())
+ptr_glWaitSyncAPPLE = unsafePerformIO $ getCommand "glWaitSyncAPPLE"
+
+-- glWaitVkSemaphoreNV ---------------------------------------------------------
+
+glWaitVkSemaphoreNV
+  :: MonadIO m
+  => GLuint64 -- ^ @vkSemaphore@.
+  -> m ()
+glWaitVkSemaphoreNV v1 = liftIO $ dyn517 ptr_glWaitVkSemaphoreNV v1
+
+{-# NOINLINE ptr_glWaitVkSemaphoreNV #-}
+ptr_glWaitVkSemaphoreNV :: FunPtr (GLuint64 -> IO ())
+ptr_glWaitVkSemaphoreNV = unsafePerformIO $ getCommand "glWaitVkSemaphoreNV"
+
+-- glWeightPathsNV -------------------------------------------------------------
+
+glWeightPathsNV
+  :: MonadIO m
+  => GLuint -- ^ @resultPath@ of type @Path@.
+  -> GLsizei -- ^ @numPaths@.
+  -> Ptr GLuint -- ^ @paths@ pointing to @numPaths@ elements of type @Path@.
+  -> Ptr GLfloat -- ^ @weights@ pointing to @numPaths@ elements of type @GLfloat@.
+  -> m ()
+glWeightPathsNV v1 v2 v3 v4 = liftIO $ dyn935 ptr_glWeightPathsNV v1 v2 v3 v4
+
+{-# NOINLINE ptr_glWeightPathsNV #-}
+ptr_glWeightPathsNV :: FunPtr (GLuint -> GLsizei -> Ptr GLuint -> Ptr GLfloat -> IO ())
+ptr_glWeightPathsNV = unsafePerformIO $ getCommand "glWeightPathsNV"
+
+-- glWeightPointerARB ----------------------------------------------------------
+
+glWeightPointerARB
+  :: MonadIO m
+  => GLint -- ^ @size@.
+  -> GLenum -- ^ @type@ of type [WeightPointerTypeARB](Graphics-GL-Groups.html#WeightPointerTypeARB).
+  -> GLsizei -- ^ @stride@.
+  -> Ptr a -- ^ @pointer@ pointing to @COMPSIZE(type,stride)@ elements of type @a@.
+  -> m ()
+glWeightPointerARB v1 v2 v3 v4 = liftIO $ dyn133 ptr_glWeightPointerARB v1 v2 v3 v4
+
+{-# NOINLINE ptr_glWeightPointerARB #-}
+ptr_glWeightPointerARB :: FunPtr (GLint -> GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glWeightPointerARB = unsafePerformIO $ getCommand "glWeightPointerARB"
+
+-- glWeightPointerOES ----------------------------------------------------------
+
+glWeightPointerOES
+  :: MonadIO m
+  => GLint -- ^ @size@.
+  -> GLenum -- ^ @type@.
+  -> GLsizei -- ^ @stride@.
+  -> Ptr a -- ^ @pointer@ pointing to @COMPSIZE(type,stride)@ elements of type @a@.
+  -> m ()
+glWeightPointerOES v1 v2 v3 v4 = liftIO $ dyn133 ptr_glWeightPointerOES v1 v2 v3 v4
+
+{-# NOINLINE ptr_glWeightPointerOES #-}
+ptr_glWeightPointerOES :: FunPtr (GLint -> GLenum -> GLsizei -> Ptr a -> IO ())
+ptr_glWeightPointerOES = unsafePerformIO $ getCommand "glWeightPointerOES"
+
+-- glWeightbvARB ---------------------------------------------------------------
+
+glWeightbvARB
+  :: MonadIO m
+  => GLint -- ^ @size@.
+  -> Ptr GLbyte -- ^ @weights@ pointing to @size@ elements of type @GLbyte@.
+  -> m ()
+glWeightbvARB v1 v2 = liftIO $ dyn936 ptr_glWeightbvARB v1 v2
+
+{-# NOINLINE ptr_glWeightbvARB #-}
+ptr_glWeightbvARB :: FunPtr (GLint -> Ptr GLbyte -> IO ())
+ptr_glWeightbvARB = unsafePerformIO $ getCommand "glWeightbvARB"
+
+-- glWeightdvARB ---------------------------------------------------------------
+
+glWeightdvARB
+  :: MonadIO m
+  => GLint -- ^ @size@.
+  -> Ptr GLdouble -- ^ @weights@ pointing to @size@ elements of type @GLdouble@.
+  -> m ()
+glWeightdvARB v1 v2 = liftIO $ dyn937 ptr_glWeightdvARB v1 v2
+
+{-# NOINLINE ptr_glWeightdvARB #-}
+ptr_glWeightdvARB :: FunPtr (GLint -> Ptr GLdouble -> IO ())
+ptr_glWeightdvARB = unsafePerformIO $ getCommand "glWeightdvARB"
+
+-- glWeightfvARB ---------------------------------------------------------------
+
+glWeightfvARB
+  :: MonadIO m
+  => GLint -- ^ @size@.
+  -> Ptr GLfloat -- ^ @weights@ pointing to @size@ elements of type @GLfloat@.
+  -> m ()
+glWeightfvARB v1 v2 = liftIO $ dyn938 ptr_glWeightfvARB v1 v2
+
+{-# NOINLINE ptr_glWeightfvARB #-}
+ptr_glWeightfvARB :: FunPtr (GLint -> Ptr GLfloat -> IO ())
+ptr_glWeightfvARB = unsafePerformIO $ getCommand "glWeightfvARB"
+
+-- glWeightivARB ---------------------------------------------------------------
+
+glWeightivARB
+  :: MonadIO m
+  => GLint -- ^ @size@.
+  -> Ptr GLint -- ^ @weights@ pointing to @size@ elements of type @GLint@.
+  -> m ()
+glWeightivARB v1 v2 = liftIO $ dyn939 ptr_glWeightivARB v1 v2
+
+{-# NOINLINE ptr_glWeightivARB #-}
+ptr_glWeightivARB :: FunPtr (GLint -> Ptr GLint -> IO ())
+ptr_glWeightivARB = unsafePerformIO $ getCommand "glWeightivARB"
+
+-- glWeightsvARB ---------------------------------------------------------------
+
+glWeightsvARB
+  :: MonadIO m
+  => GLint -- ^ @size@.
+  -> Ptr GLshort -- ^ @weights@ pointing to @size@ elements of type @GLshort@.
+  -> m ()
+glWeightsvARB v1 v2 = liftIO $ dyn940 ptr_glWeightsvARB v1 v2
+
+{-# NOINLINE ptr_glWeightsvARB #-}
+ptr_glWeightsvARB :: FunPtr (GLint -> Ptr GLshort -> IO ())
+ptr_glWeightsvARB = unsafePerformIO $ getCommand "glWeightsvARB"
+
+-- glWeightubvARB --------------------------------------------------------------
+
+glWeightubvARB
+  :: MonadIO m
+  => GLint -- ^ @size@.
+  -> Ptr GLubyte -- ^ @weights@ pointing to @size@ elements of type @GLubyte@.
+  -> m ()
+glWeightubvARB v1 v2 = liftIO $ dyn543 ptr_glWeightubvARB v1 v2
+
+{-# NOINLINE ptr_glWeightubvARB #-}
+ptr_glWeightubvARB :: FunPtr (GLint -> Ptr GLubyte -> IO ())
+ptr_glWeightubvARB = unsafePerformIO $ getCommand "glWeightubvARB"
+
+-- glWeightuivARB --------------------------------------------------------------
+
+glWeightuivARB
+  :: MonadIO m
+  => GLint -- ^ @size@.
+  -> Ptr GLuint -- ^ @weights@ pointing to @size@ elements of type @GLuint@.
+  -> m ()
+glWeightuivARB v1 v2 = liftIO $ dyn544 ptr_glWeightuivARB v1 v2
+
+{-# NOINLINE ptr_glWeightuivARB #-}
+ptr_glWeightuivARB :: FunPtr (GLint -> Ptr GLuint -> IO ())
+ptr_glWeightuivARB = unsafePerformIO $ getCommand "glWeightuivARB"
+
+-- glWeightusvARB --------------------------------------------------------------
+
+glWeightusvARB
+  :: MonadIO m
+  => GLint -- ^ @size@.
+  -> Ptr GLushort -- ^ @weights@ pointing to @size@ elements of type @GLushort@.
+  -> m ()
+glWeightusvARB v1 v2 = liftIO $ dyn545 ptr_glWeightusvARB v1 v2
+
+{-# NOINLINE ptr_glWeightusvARB #-}
+ptr_glWeightusvARB :: FunPtr (GLint -> Ptr GLushort -> IO ())
+ptr_glWeightusvARB = unsafePerformIO $ getCommand "glWeightusvARB"
+
+-- glWindowPos2d ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos.xml OpenGL 2.x>. The vector equivalent of this command is 'glWindowPos2dv'.
+glWindowPos2d
+  :: MonadIO m
+  => GLdouble -- ^ @x@ of type @CoordD@.
+  -> GLdouble -- ^ @y@ of type @CoordD@.
+  -> m ()
+glWindowPos2d v1 v2 = liftIO $ dyn225 ptr_glWindowPos2d v1 v2
+
+{-# NOINLINE ptr_glWindowPos2d #-}
+ptr_glWindowPos2d :: FunPtr (GLdouble -> GLdouble -> IO ())
+ptr_glWindowPos2d = unsafePerformIO $ getCommand "glWindowPos2d"
+
+-- glWindowPos2dARB ------------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glWindowPos2dvARB'. This command is an alias for 'glWindowPos2d'.
+glWindowPos2dARB
+  :: MonadIO m
+  => GLdouble -- ^ @x@ of type @CoordD@.
+  -> GLdouble -- ^ @y@ of type @CoordD@.
+  -> m ()
+glWindowPos2dARB v1 v2 = liftIO $ dyn225 ptr_glWindowPos2dARB v1 v2
+
+{-# NOINLINE ptr_glWindowPos2dARB #-}
+ptr_glWindowPos2dARB :: FunPtr (GLdouble -> GLdouble -> IO ())
+ptr_glWindowPos2dARB = unsafePerformIO $ getCommand "glWindowPos2dARB"
+
+-- glWindowPos2dMESA -----------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glWindowPos2dvMESA'. This command is an alias for 'glWindowPos2d'.
+glWindowPos2dMESA
+  :: MonadIO m
+  => GLdouble -- ^ @x@ of type @CoordD@.
+  -> GLdouble -- ^ @y@ of type @CoordD@.
+  -> m ()
+glWindowPos2dMESA v1 v2 = liftIO $ dyn225 ptr_glWindowPos2dMESA v1 v2
+
+{-# NOINLINE ptr_glWindowPos2dMESA #-}
+ptr_glWindowPos2dMESA :: FunPtr (GLdouble -> GLdouble -> IO ())
+ptr_glWindowPos2dMESA = unsafePerformIO $ getCommand "glWindowPos2dMESA"
+
+-- glWindowPos2dv --------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos.xml OpenGL 2.x>.
+glWindowPos2dv
+  :: MonadIO m
+  => Ptr GLdouble -- ^ @v@ pointing to @2@ elements of type @CoordD@.
+  -> m ()
+glWindowPos2dv v1 = liftIO $ dyn42 ptr_glWindowPos2dv v1
+
+{-# NOINLINE ptr_glWindowPos2dv #-}
+ptr_glWindowPos2dv :: FunPtr (Ptr GLdouble -> IO ())
+ptr_glWindowPos2dv = unsafePerformIO $ getCommand "glWindowPos2dv"
+
+-- glWindowPos2dvARB -----------------------------------------------------------
+
+-- | This command is an alias for 'glWindowPos2dv'.
+glWindowPos2dvARB
+  :: MonadIO m
+  => Ptr GLdouble -- ^ @v@ pointing to @2@ elements of type @CoordD@.
+  -> m ()
+glWindowPos2dvARB v1 = liftIO $ dyn42 ptr_glWindowPos2dvARB v1
+
+{-# NOINLINE ptr_glWindowPos2dvARB #-}
+ptr_glWindowPos2dvARB :: FunPtr (Ptr GLdouble -> IO ())
+ptr_glWindowPos2dvARB = unsafePerformIO $ getCommand "glWindowPos2dvARB"
+
+-- glWindowPos2dvMESA ----------------------------------------------------------
+
+-- | This command is an alias for 'glWindowPos2dv'.
+glWindowPos2dvMESA
+  :: MonadIO m
+  => Ptr GLdouble -- ^ @v@ pointing to @2@ elements of type @CoordD@.
+  -> m ()
+glWindowPos2dvMESA v1 = liftIO $ dyn42 ptr_glWindowPos2dvMESA v1
+
+{-# NOINLINE ptr_glWindowPos2dvMESA #-}
+ptr_glWindowPos2dvMESA :: FunPtr (Ptr GLdouble -> IO ())
+ptr_glWindowPos2dvMESA = unsafePerformIO $ getCommand "glWindowPos2dvMESA"
+
+-- glWindowPos2f ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos.xml OpenGL 2.x>. The vector equivalent of this command is 'glWindowPos2fv'.
+glWindowPos2f
+  :: MonadIO m
+  => GLfloat -- ^ @x@ of type @CoordF@.
+  -> GLfloat -- ^ @y@ of type @CoordF@.
+  -> m ()
+glWindowPos2f v1 v2 = liftIO $ dyn230 ptr_glWindowPos2f v1 v2
+
+{-# NOINLINE ptr_glWindowPos2f #-}
+ptr_glWindowPos2f :: FunPtr (GLfloat -> GLfloat -> IO ())
+ptr_glWindowPos2f = unsafePerformIO $ getCommand "glWindowPos2f"
+
+-- glWindowPos2fARB ------------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glWindowPos2fvARB'. This command is an alias for 'glWindowPos2f'.
+glWindowPos2fARB
+  :: MonadIO m
+  => GLfloat -- ^ @x@ of type @CoordF@.
+  -> GLfloat -- ^ @y@ of type @CoordF@.
+  -> m ()
+glWindowPos2fARB v1 v2 = liftIO $ dyn230 ptr_glWindowPos2fARB v1 v2
+
+{-# NOINLINE ptr_glWindowPos2fARB #-}
+ptr_glWindowPos2fARB :: FunPtr (GLfloat -> GLfloat -> IO ())
+ptr_glWindowPos2fARB = unsafePerformIO $ getCommand "glWindowPos2fARB"
+
+-- glWindowPos2fMESA -----------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glWindowPos2fvMESA'. This command is an alias for 'glWindowPos2f'.
+glWindowPos2fMESA
+  :: MonadIO m
+  => GLfloat -- ^ @x@ of type @CoordF@.
+  -> GLfloat -- ^ @y@ of type @CoordF@.
+  -> m ()
+glWindowPos2fMESA v1 v2 = liftIO $ dyn230 ptr_glWindowPos2fMESA v1 v2
+
+{-# NOINLINE ptr_glWindowPos2fMESA #-}
+ptr_glWindowPos2fMESA :: FunPtr (GLfloat -> GLfloat -> IO ())
+ptr_glWindowPos2fMESA = unsafePerformIO $ getCommand "glWindowPos2fMESA"
+
+-- glWindowPos2fv --------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos.xml OpenGL 2.x>.
+glWindowPos2fv
+  :: MonadIO m
+  => Ptr GLfloat -- ^ @v@ pointing to @2@ elements of type @CoordF@.
+  -> m ()
+glWindowPos2fv v1 = liftIO $ dyn44 ptr_glWindowPos2fv v1
+
+{-# NOINLINE ptr_glWindowPos2fv #-}
+ptr_glWindowPos2fv :: FunPtr (Ptr GLfloat -> IO ())
+ptr_glWindowPos2fv = unsafePerformIO $ getCommand "glWindowPos2fv"
+
+-- glWindowPos2fvARB -----------------------------------------------------------
+
+-- | This command is an alias for 'glWindowPos2fv'.
+glWindowPos2fvARB
+  :: MonadIO m
+  => Ptr GLfloat -- ^ @v@ pointing to @2@ elements of type @CoordF@.
+  -> m ()
+glWindowPos2fvARB v1 = liftIO $ dyn44 ptr_glWindowPos2fvARB v1
+
+{-# NOINLINE ptr_glWindowPos2fvARB #-}
+ptr_glWindowPos2fvARB :: FunPtr (Ptr GLfloat -> IO ())
+ptr_glWindowPos2fvARB = unsafePerformIO $ getCommand "glWindowPos2fvARB"
+
+-- glWindowPos2fvMESA ----------------------------------------------------------
+
+-- | This command is an alias for 'glWindowPos2fv'.
+glWindowPos2fvMESA
+  :: MonadIO m
+  => Ptr GLfloat -- ^ @v@ pointing to @2@ elements of type @CoordF@.
+  -> m ()
+glWindowPos2fvMESA v1 = liftIO $ dyn44 ptr_glWindowPos2fvMESA v1
+
+{-# NOINLINE ptr_glWindowPos2fvMESA #-}
+ptr_glWindowPos2fvMESA :: FunPtr (Ptr GLfloat -> IO ())
+ptr_glWindowPos2fvMESA = unsafePerformIO $ getCommand "glWindowPos2fvMESA"
+
+-- glWindowPos2i ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos.xml OpenGL 2.x>. The vector equivalent of this command is 'glWindowPos2iv'.
+glWindowPos2i
+  :: MonadIO m
+  => GLint -- ^ @x@ of type @CoordI@.
+  -> GLint -- ^ @y@ of type @CoordI@.
+  -> m ()
+glWindowPos2i v1 v2 = liftIO $ dyn277 ptr_glWindowPos2i v1 v2
+
+{-# NOINLINE ptr_glWindowPos2i #-}
+ptr_glWindowPos2i :: FunPtr (GLint -> GLint -> IO ())
+ptr_glWindowPos2i = unsafePerformIO $ getCommand "glWindowPos2i"
+
+-- glWindowPos2iARB ------------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glWindowPos2ivARB'. This command is an alias for 'glWindowPos2i'.
+glWindowPos2iARB
+  :: MonadIO m
+  => GLint -- ^ @x@ of type @CoordI@.
+  -> GLint -- ^ @y@ of type @CoordI@.
+  -> m ()
+glWindowPos2iARB v1 v2 = liftIO $ dyn277 ptr_glWindowPos2iARB v1 v2
+
+{-# NOINLINE ptr_glWindowPos2iARB #-}
+ptr_glWindowPos2iARB :: FunPtr (GLint -> GLint -> IO ())
+ptr_glWindowPos2iARB = unsafePerformIO $ getCommand "glWindowPos2iARB"
+
+-- glWindowPos2iMESA -----------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glWindowPos2ivMESA'. This command is an alias for 'glWindowPos2i'.
+glWindowPos2iMESA
+  :: MonadIO m
+  => GLint -- ^ @x@ of type @CoordI@.
+  -> GLint -- ^ @y@ of type @CoordI@.
+  -> m ()
+glWindowPos2iMESA v1 v2 = liftIO $ dyn277 ptr_glWindowPos2iMESA v1 v2
+
+{-# NOINLINE ptr_glWindowPos2iMESA #-}
+ptr_glWindowPos2iMESA :: FunPtr (GLint -> GLint -> IO ())
+ptr_glWindowPos2iMESA = unsafePerformIO $ getCommand "glWindowPos2iMESA"
+
+-- glWindowPos2iv --------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos.xml OpenGL 2.x>.
+glWindowPos2iv
+  :: MonadIO m
+  => Ptr GLint -- ^ @v@ pointing to @2@ elements of type @CoordI@.
+  -> m ()
+glWindowPos2iv v1 = liftIO $ dyn46 ptr_glWindowPos2iv v1
+
+{-# NOINLINE ptr_glWindowPos2iv #-}
+ptr_glWindowPos2iv :: FunPtr (Ptr GLint -> IO ())
+ptr_glWindowPos2iv = unsafePerformIO $ getCommand "glWindowPos2iv"
+
+-- glWindowPos2ivARB -----------------------------------------------------------
+
+-- | This command is an alias for 'glWindowPos2iv'.
+glWindowPos2ivARB
+  :: MonadIO m
+  => Ptr GLint -- ^ @v@ pointing to @2@ elements of type @CoordI@.
+  -> m ()
+glWindowPos2ivARB v1 = liftIO $ dyn46 ptr_glWindowPos2ivARB v1
+
+{-# NOINLINE ptr_glWindowPos2ivARB #-}
+ptr_glWindowPos2ivARB :: FunPtr (Ptr GLint -> IO ())
+ptr_glWindowPos2ivARB = unsafePerformIO $ getCommand "glWindowPos2ivARB"
+
+-- glWindowPos2ivMESA ----------------------------------------------------------
+
+-- | This command is an alias for 'glWindowPos2iv'.
+glWindowPos2ivMESA
+  :: MonadIO m
+  => Ptr GLint -- ^ @v@ pointing to @2@ elements of type @CoordI@.
+  -> m ()
+glWindowPos2ivMESA v1 = liftIO $ dyn46 ptr_glWindowPos2ivMESA v1
+
+{-# NOINLINE ptr_glWindowPos2ivMESA #-}
+ptr_glWindowPos2ivMESA :: FunPtr (Ptr GLint -> IO ())
+ptr_glWindowPos2ivMESA = unsafePerformIO $ getCommand "glWindowPos2ivMESA"
+
+-- glWindowPos2s ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos.xml OpenGL 2.x>. The vector equivalent of this command is 'glWindowPos2sv'.
+glWindowPos2s
+  :: MonadIO m
+  => GLshort -- ^ @x@ of type @CoordS@.
+  -> GLshort -- ^ @y@ of type @CoordS@.
+  -> m ()
+glWindowPos2s v1 v2 = liftIO $ dyn709 ptr_glWindowPos2s v1 v2
+
+{-# NOINLINE ptr_glWindowPos2s #-}
+ptr_glWindowPos2s :: FunPtr (GLshort -> GLshort -> IO ())
+ptr_glWindowPos2s = unsafePerformIO $ getCommand "glWindowPos2s"
+
+-- glWindowPos2sARB ------------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glWindowPos2svARB'. This command is an alias for 'glWindowPos2s'.
+glWindowPos2sARB
+  :: MonadIO m
+  => GLshort -- ^ @x@ of type @CoordS@.
+  -> GLshort -- ^ @y@ of type @CoordS@.
+  -> m ()
+glWindowPos2sARB v1 v2 = liftIO $ dyn709 ptr_glWindowPos2sARB v1 v2
+
+{-# NOINLINE ptr_glWindowPos2sARB #-}
+ptr_glWindowPos2sARB :: FunPtr (GLshort -> GLshort -> IO ())
+ptr_glWindowPos2sARB = unsafePerformIO $ getCommand "glWindowPos2sARB"
+
+-- glWindowPos2sMESA -----------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glWindowPos2svMESA'. This command is an alias for 'glWindowPos2s'.
+glWindowPos2sMESA
+  :: MonadIO m
+  => GLshort -- ^ @x@ of type @CoordS@.
+  -> GLshort -- ^ @y@ of type @CoordS@.
+  -> m ()
+glWindowPos2sMESA v1 v2 = liftIO $ dyn709 ptr_glWindowPos2sMESA v1 v2
+
+{-# NOINLINE ptr_glWindowPos2sMESA #-}
+ptr_glWindowPos2sMESA :: FunPtr (GLshort -> GLshort -> IO ())
+ptr_glWindowPos2sMESA = unsafePerformIO $ getCommand "glWindowPos2sMESA"
+
+-- glWindowPos2sv --------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos.xml OpenGL 2.x>.
+glWindowPos2sv
+  :: MonadIO m
+  => Ptr GLshort -- ^ @v@ pointing to @2@ elements of type @CoordS@.
+  -> m ()
+glWindowPos2sv v1 = liftIO $ dyn48 ptr_glWindowPos2sv v1
+
+{-# NOINLINE ptr_glWindowPos2sv #-}
+ptr_glWindowPos2sv :: FunPtr (Ptr GLshort -> IO ())
+ptr_glWindowPos2sv = unsafePerformIO $ getCommand "glWindowPos2sv"
+
+-- glWindowPos2svARB -----------------------------------------------------------
+
+-- | This command is an alias for 'glWindowPos2sv'.
+glWindowPos2svARB
+  :: MonadIO m
+  => Ptr GLshort -- ^ @v@ pointing to @2@ elements of type @CoordS@.
+  -> m ()
+glWindowPos2svARB v1 = liftIO $ dyn48 ptr_glWindowPos2svARB v1
+
+{-# NOINLINE ptr_glWindowPos2svARB #-}
+ptr_glWindowPos2svARB :: FunPtr (Ptr GLshort -> IO ())
+ptr_glWindowPos2svARB = unsafePerformIO $ getCommand "glWindowPos2svARB"
+
+-- glWindowPos2svMESA ----------------------------------------------------------
+
+-- | This command is an alias for 'glWindowPos2sv'.
+glWindowPos2svMESA
+  :: MonadIO m
+  => Ptr GLshort -- ^ @v@ pointing to @2@ elements of type @CoordS@.
+  -> m ()
+glWindowPos2svMESA v1 = liftIO $ dyn48 ptr_glWindowPos2svMESA v1
+
+{-# NOINLINE ptr_glWindowPos2svMESA #-}
+ptr_glWindowPos2svMESA :: FunPtr (Ptr GLshort -> IO ())
+ptr_glWindowPos2svMESA = unsafePerformIO $ getCommand "glWindowPos2svMESA"
+
+-- glWindowPos3d ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos.xml OpenGL 2.x>. The vector equivalent of this command is 'glWindowPos3dv'.
+glWindowPos3d
+  :: MonadIO m
+  => GLdouble -- ^ @x@ of type @CoordD@.
+  -> GLdouble -- ^ @y@ of type @CoordD@.
+  -> GLdouble -- ^ @z@ of type @CoordD@.
+  -> m ()
+glWindowPos3d v1 v2 v3 = liftIO $ dyn41 ptr_glWindowPos3d v1 v2 v3
+
+{-# NOINLINE ptr_glWindowPos3d #-}
+ptr_glWindowPos3d :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
+ptr_glWindowPos3d = unsafePerformIO $ getCommand "glWindowPos3d"
+
+-- glWindowPos3dARB ------------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glWindowPos3dvARB'. This command is an alias for 'glWindowPos3d'.
+glWindowPos3dARB
+  :: MonadIO m
+  => GLdouble -- ^ @x@ of type @CoordD@.
+  -> GLdouble -- ^ @y@ of type @CoordD@.
+  -> GLdouble -- ^ @z@ of type @CoordD@.
+  -> m ()
+glWindowPos3dARB v1 v2 v3 = liftIO $ dyn41 ptr_glWindowPos3dARB v1 v2 v3
+
+{-# NOINLINE ptr_glWindowPos3dARB #-}
+ptr_glWindowPos3dARB :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
+ptr_glWindowPos3dARB = unsafePerformIO $ getCommand "glWindowPos3dARB"
+
+-- glWindowPos3dMESA -----------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glWindowPos3dvMESA'. This command is an alias for 'glWindowPos3d'.
+glWindowPos3dMESA
+  :: MonadIO m
+  => GLdouble -- ^ @x@ of type @CoordD@.
+  -> GLdouble -- ^ @y@ of type @CoordD@.
+  -> GLdouble -- ^ @z@ of type @CoordD@.
+  -> m ()
+glWindowPos3dMESA v1 v2 v3 = liftIO $ dyn41 ptr_glWindowPos3dMESA v1 v2 v3
+
+{-# NOINLINE ptr_glWindowPos3dMESA #-}
+ptr_glWindowPos3dMESA :: FunPtr (GLdouble -> GLdouble -> GLdouble -> IO ())
+ptr_glWindowPos3dMESA = unsafePerformIO $ getCommand "glWindowPos3dMESA"
+
+-- glWindowPos3dv --------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos.xml OpenGL 2.x>.
+glWindowPos3dv
+  :: MonadIO m
+  => Ptr GLdouble -- ^ @v@ pointing to @3@ elements of type @CoordD@.
+  -> m ()
+glWindowPos3dv v1 = liftIO $ dyn42 ptr_glWindowPos3dv v1
+
+{-# NOINLINE ptr_glWindowPos3dv #-}
+ptr_glWindowPos3dv :: FunPtr (Ptr GLdouble -> IO ())
+ptr_glWindowPos3dv = unsafePerformIO $ getCommand "glWindowPos3dv"
+
+-- glWindowPos3dvARB -----------------------------------------------------------
+
+-- | This command is an alias for 'glWindowPos3dv'.
+glWindowPos3dvARB
+  :: MonadIO m
+  => Ptr GLdouble -- ^ @v@ pointing to @3@ elements of type @CoordD@.
+  -> m ()
+glWindowPos3dvARB v1 = liftIO $ dyn42 ptr_glWindowPos3dvARB v1
+
+{-# NOINLINE ptr_glWindowPos3dvARB #-}
+ptr_glWindowPos3dvARB :: FunPtr (Ptr GLdouble -> IO ())
+ptr_glWindowPos3dvARB = unsafePerformIO $ getCommand "glWindowPos3dvARB"
+
+-- glWindowPos3dvMESA ----------------------------------------------------------
+
+-- | This command is an alias for 'glWindowPos3dv'.
+glWindowPos3dvMESA
+  :: MonadIO m
+  => Ptr GLdouble -- ^ @v@ pointing to @3@ elements of type @CoordD@.
+  -> m ()
+glWindowPos3dvMESA v1 = liftIO $ dyn42 ptr_glWindowPos3dvMESA v1
+
+{-# NOINLINE ptr_glWindowPos3dvMESA #-}
+ptr_glWindowPos3dvMESA :: FunPtr (Ptr GLdouble -> IO ())
+ptr_glWindowPos3dvMESA = unsafePerformIO $ getCommand "glWindowPos3dvMESA"
+
+-- glWindowPos3f ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos.xml OpenGL 2.x>. The vector equivalent of this command is 'glWindowPos3fv'.
+glWindowPos3f
+  :: MonadIO m
+  => GLfloat -- ^ @x@ of type @CoordF@.
+  -> GLfloat -- ^ @y@ of type @CoordF@.
+  -> GLfloat -- ^ @z@ of type @CoordF@.
+  -> m ()
+glWindowPos3f v1 v2 v3 = liftIO $ dyn43 ptr_glWindowPos3f v1 v2 v3
+
+{-# NOINLINE ptr_glWindowPos3f #-}
+ptr_glWindowPos3f :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glWindowPos3f = unsafePerformIO $ getCommand "glWindowPos3f"
+
+-- glWindowPos3fARB ------------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glWindowPos3fvARB'. This command is an alias for 'glWindowPos3f'.
+glWindowPos3fARB
+  :: MonadIO m
+  => GLfloat -- ^ @x@ of type @CoordF@.
+  -> GLfloat -- ^ @y@ of type @CoordF@.
+  -> GLfloat -- ^ @z@ of type @CoordF@.
+  -> m ()
+glWindowPos3fARB v1 v2 v3 = liftIO $ dyn43 ptr_glWindowPos3fARB v1 v2 v3
+
+{-# NOINLINE ptr_glWindowPos3fARB #-}
+ptr_glWindowPos3fARB :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glWindowPos3fARB = unsafePerformIO $ getCommand "glWindowPos3fARB"
+
+-- glWindowPos3fMESA -----------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glWindowPos3fvMESA'. This command is an alias for 'glWindowPos3f'.
+glWindowPos3fMESA
+  :: MonadIO m
+  => GLfloat -- ^ @x@ of type @CoordF@.
+  -> GLfloat -- ^ @y@ of type @CoordF@.
+  -> GLfloat -- ^ @z@ of type @CoordF@.
+  -> m ()
+glWindowPos3fMESA v1 v2 v3 = liftIO $ dyn43 ptr_glWindowPos3fMESA v1 v2 v3
+
+{-# NOINLINE ptr_glWindowPos3fMESA #-}
+ptr_glWindowPos3fMESA :: FunPtr (GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glWindowPos3fMESA = unsafePerformIO $ getCommand "glWindowPos3fMESA"
+
+-- glWindowPos3fv --------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos.xml OpenGL 2.x>.
+glWindowPos3fv
+  :: MonadIO m
+  => Ptr GLfloat -- ^ @v@ pointing to @3@ elements of type @CoordF@.
+  -> m ()
+glWindowPos3fv v1 = liftIO $ dyn44 ptr_glWindowPos3fv v1
+
+{-# NOINLINE ptr_glWindowPos3fv #-}
+ptr_glWindowPos3fv :: FunPtr (Ptr GLfloat -> IO ())
+ptr_glWindowPos3fv = unsafePerformIO $ getCommand "glWindowPos3fv"
+
+-- glWindowPos3fvARB -----------------------------------------------------------
+
+-- | This command is an alias for 'glWindowPos3fv'.
+glWindowPos3fvARB
+  :: MonadIO m
+  => Ptr GLfloat -- ^ @v@ pointing to @3@ elements of type @CoordF@.
+  -> m ()
+glWindowPos3fvARB v1 = liftIO $ dyn44 ptr_glWindowPos3fvARB v1
+
+{-# NOINLINE ptr_glWindowPos3fvARB #-}
+ptr_glWindowPos3fvARB :: FunPtr (Ptr GLfloat -> IO ())
+ptr_glWindowPos3fvARB = unsafePerformIO $ getCommand "glWindowPos3fvARB"
+
+-- glWindowPos3fvMESA ----------------------------------------------------------
+
+-- | This command is an alias for 'glWindowPos3fv'.
+glWindowPos3fvMESA
+  :: MonadIO m
+  => Ptr GLfloat -- ^ @v@ pointing to @3@ elements of type @CoordF@.
+  -> m ()
+glWindowPos3fvMESA v1 = liftIO $ dyn44 ptr_glWindowPos3fvMESA v1
+
+{-# NOINLINE ptr_glWindowPos3fvMESA #-}
+ptr_glWindowPos3fvMESA :: FunPtr (Ptr GLfloat -> IO ())
+ptr_glWindowPos3fvMESA = unsafePerformIO $ getCommand "glWindowPos3fvMESA"
+
+-- glWindowPos3i ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos.xml OpenGL 2.x>. The vector equivalent of this command is 'glWindowPos3iv'.
+glWindowPos3i
+  :: MonadIO m
+  => GLint -- ^ @x@ of type @CoordI@.
+  -> GLint -- ^ @y@ of type @CoordI@.
+  -> GLint -- ^ @z@ of type @CoordI@.
+  -> m ()
+glWindowPos3i v1 v2 v3 = liftIO $ dyn45 ptr_glWindowPos3i v1 v2 v3
+
+{-# NOINLINE ptr_glWindowPos3i #-}
+ptr_glWindowPos3i :: FunPtr (GLint -> GLint -> GLint -> IO ())
+ptr_glWindowPos3i = unsafePerformIO $ getCommand "glWindowPos3i"
+
+-- glWindowPos3iARB ------------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glWindowPos3ivARB'. This command is an alias for 'glWindowPos3i'.
+glWindowPos3iARB
+  :: MonadIO m
+  => GLint -- ^ @x@ of type @CoordI@.
+  -> GLint -- ^ @y@ of type @CoordI@.
+  -> GLint -- ^ @z@ of type @CoordI@.
+  -> m ()
+glWindowPos3iARB v1 v2 v3 = liftIO $ dyn45 ptr_glWindowPos3iARB v1 v2 v3
+
+{-# NOINLINE ptr_glWindowPos3iARB #-}
+ptr_glWindowPos3iARB :: FunPtr (GLint -> GLint -> GLint -> IO ())
+ptr_glWindowPos3iARB = unsafePerformIO $ getCommand "glWindowPos3iARB"
+
+-- glWindowPos3iMESA -----------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glWindowPos3ivMESA'. This command is an alias for 'glWindowPos3i'.
+glWindowPos3iMESA
+  :: MonadIO m
+  => GLint -- ^ @x@ of type @CoordI@.
+  -> GLint -- ^ @y@ of type @CoordI@.
+  -> GLint -- ^ @z@ of type @CoordI@.
+  -> m ()
+glWindowPos3iMESA v1 v2 v3 = liftIO $ dyn45 ptr_glWindowPos3iMESA v1 v2 v3
+
+{-# NOINLINE ptr_glWindowPos3iMESA #-}
+ptr_glWindowPos3iMESA :: FunPtr (GLint -> GLint -> GLint -> IO ())
+ptr_glWindowPos3iMESA = unsafePerformIO $ getCommand "glWindowPos3iMESA"
+
+-- glWindowPos3iv --------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos.xml OpenGL 2.x>.
+glWindowPos3iv
+  :: MonadIO m
+  => Ptr GLint -- ^ @v@ pointing to @3@ elements of type @CoordI@.
+  -> m ()
+glWindowPos3iv v1 = liftIO $ dyn46 ptr_glWindowPos3iv v1
+
+{-# NOINLINE ptr_glWindowPos3iv #-}
+ptr_glWindowPos3iv :: FunPtr (Ptr GLint -> IO ())
+ptr_glWindowPos3iv = unsafePerformIO $ getCommand "glWindowPos3iv"
+
+-- glWindowPos3ivARB -----------------------------------------------------------
+
+-- | This command is an alias for 'glWindowPos3iv'.
+glWindowPos3ivARB
+  :: MonadIO m
+  => Ptr GLint -- ^ @v@ pointing to @3@ elements of type @CoordI@.
+  -> m ()
+glWindowPos3ivARB v1 = liftIO $ dyn46 ptr_glWindowPos3ivARB v1
+
+{-# NOINLINE ptr_glWindowPos3ivARB #-}
+ptr_glWindowPos3ivARB :: FunPtr (Ptr GLint -> IO ())
+ptr_glWindowPos3ivARB = unsafePerformIO $ getCommand "glWindowPos3ivARB"
+
+-- glWindowPos3ivMESA ----------------------------------------------------------
+
+-- | This command is an alias for 'glWindowPos3iv'.
+glWindowPos3ivMESA
+  :: MonadIO m
+  => Ptr GLint -- ^ @v@ pointing to @3@ elements of type @CoordI@.
+  -> m ()
+glWindowPos3ivMESA v1 = liftIO $ dyn46 ptr_glWindowPos3ivMESA v1
+
+{-# NOINLINE ptr_glWindowPos3ivMESA #-}
+ptr_glWindowPos3ivMESA :: FunPtr (Ptr GLint -> IO ())
+ptr_glWindowPos3ivMESA = unsafePerformIO $ getCommand "glWindowPos3ivMESA"
+
+-- glWindowPos3s ---------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos.xml OpenGL 2.x>. The vector equivalent of this command is 'glWindowPos3sv'.
+glWindowPos3s
+  :: MonadIO m
+  => GLshort -- ^ @x@ of type @CoordS@.
+  -> GLshort -- ^ @y@ of type @CoordS@.
+  -> GLshort -- ^ @z@ of type @CoordS@.
+  -> m ()
+glWindowPos3s v1 v2 v3 = liftIO $ dyn47 ptr_glWindowPos3s v1 v2 v3
+
+{-# NOINLINE ptr_glWindowPos3s #-}
+ptr_glWindowPos3s :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
+ptr_glWindowPos3s = unsafePerformIO $ getCommand "glWindowPos3s"
+
+-- glWindowPos3sARB ------------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glWindowPos3svARB'. This command is an alias for 'glWindowPos3s'.
+glWindowPos3sARB
+  :: MonadIO m
+  => GLshort -- ^ @x@ of type @CoordS@.
+  -> GLshort -- ^ @y@ of type @CoordS@.
+  -> GLshort -- ^ @z@ of type @CoordS@.
+  -> m ()
+glWindowPos3sARB v1 v2 v3 = liftIO $ dyn47 ptr_glWindowPos3sARB v1 v2 v3
+
+{-# NOINLINE ptr_glWindowPos3sARB #-}
+ptr_glWindowPos3sARB :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
+ptr_glWindowPos3sARB = unsafePerformIO $ getCommand "glWindowPos3sARB"
+
+-- glWindowPos3sMESA -----------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glWindowPos3svMESA'. This command is an alias for 'glWindowPos3s'.
+glWindowPos3sMESA
+  :: MonadIO m
+  => GLshort -- ^ @x@ of type @CoordS@.
+  -> GLshort -- ^ @y@ of type @CoordS@.
+  -> GLshort -- ^ @z@ of type @CoordS@.
+  -> m ()
+glWindowPos3sMESA v1 v2 v3 = liftIO $ dyn47 ptr_glWindowPos3sMESA v1 v2 v3
+
+{-# NOINLINE ptr_glWindowPos3sMESA #-}
+ptr_glWindowPos3sMESA :: FunPtr (GLshort -> GLshort -> GLshort -> IO ())
+ptr_glWindowPos3sMESA = unsafePerformIO $ getCommand "glWindowPos3sMESA"
+
+-- glWindowPos3sv --------------------------------------------------------------
+
+-- | Manual page for <https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos.xml OpenGL 2.x>.
+glWindowPos3sv
+  :: MonadIO m
+  => Ptr GLshort -- ^ @v@ pointing to @3@ elements of type @CoordS@.
+  -> m ()
+glWindowPos3sv v1 = liftIO $ dyn48 ptr_glWindowPos3sv v1
+
+{-# NOINLINE ptr_glWindowPos3sv #-}
+ptr_glWindowPos3sv :: FunPtr (Ptr GLshort -> IO ())
+ptr_glWindowPos3sv = unsafePerformIO $ getCommand "glWindowPos3sv"
+
+-- glWindowPos3svARB -----------------------------------------------------------
+
+-- | This command is an alias for 'glWindowPos3sv'.
+glWindowPos3svARB
+  :: MonadIO m
+  => Ptr GLshort -- ^ @v@ pointing to @3@ elements of type @CoordS@.
+  -> m ()
+glWindowPos3svARB v1 = liftIO $ dyn48 ptr_glWindowPos3svARB v1
+
+{-# NOINLINE ptr_glWindowPos3svARB #-}
+ptr_glWindowPos3svARB :: FunPtr (Ptr GLshort -> IO ())
+ptr_glWindowPos3svARB = unsafePerformIO $ getCommand "glWindowPos3svARB"
+
+-- glWindowPos3svMESA ----------------------------------------------------------
+
+-- | This command is an alias for 'glWindowPos3sv'.
+glWindowPos3svMESA
+  :: MonadIO m
+  => Ptr GLshort -- ^ @v@ pointing to @3@ elements of type @CoordS@.
+  -> m ()
+glWindowPos3svMESA v1 = liftIO $ dyn48 ptr_glWindowPos3svMESA v1
+
+{-# NOINLINE ptr_glWindowPos3svMESA #-}
+ptr_glWindowPos3svMESA :: FunPtr (Ptr GLshort -> IO ())
+ptr_glWindowPos3svMESA = unsafePerformIO $ getCommand "glWindowPos3svMESA"
+
+-- glWindowPos4dMESA -----------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glWindowPos4dvMESA'.
+glWindowPos4dMESA
+  :: MonadIO m
+  => GLdouble -- ^ @x@ of type @CoordD@.
+  -> GLdouble -- ^ @y@ of type @CoordD@.
+  -> GLdouble -- ^ @z@ of type @CoordD@.
+  -> GLdouble -- ^ @w@ of type @CoordD@.
+  -> m ()
+glWindowPos4dMESA v1 v2 v3 v4 = liftIO $ dyn116 ptr_glWindowPos4dMESA v1 v2 v3 v4
+
+{-# NOINLINE ptr_glWindowPos4dMESA #-}
+ptr_glWindowPos4dMESA :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
+ptr_glWindowPos4dMESA = unsafePerformIO $ getCommand "glWindowPos4dMESA"
+
+-- glWindowPos4dvMESA ----------------------------------------------------------
+
+glWindowPos4dvMESA
+  :: MonadIO m
+  => Ptr GLdouble -- ^ @v@ pointing to @4@ elements of type @CoordD@.
+  -> m ()
+glWindowPos4dvMESA v1 = liftIO $ dyn42 ptr_glWindowPos4dvMESA v1
+
+{-# NOINLINE ptr_glWindowPos4dvMESA #-}
+ptr_glWindowPos4dvMESA :: FunPtr (Ptr GLdouble -> IO ())
+ptr_glWindowPos4dvMESA = unsafePerformIO $ getCommand "glWindowPos4dvMESA"
+
+-- glWindowPos4fMESA -----------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glWindowPos4fvMESA'.
+glWindowPos4fMESA
+  :: MonadIO m
+  => GLfloat -- ^ @x@ of type @CoordF@.
+  -> GLfloat -- ^ @y@ of type @CoordF@.
+  -> GLfloat -- ^ @z@ of type @CoordF@.
+  -> GLfloat -- ^ @w@ of type @CoordF@.
+  -> m ()
+glWindowPos4fMESA v1 v2 v3 v4 = liftIO $ dyn52 ptr_glWindowPos4fMESA v1 v2 v3 v4
+
+{-# NOINLINE ptr_glWindowPos4fMESA #-}
+ptr_glWindowPos4fMESA :: FunPtr (GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
+ptr_glWindowPos4fMESA = unsafePerformIO $ getCommand "glWindowPos4fMESA"
+
+-- glWindowPos4fvMESA ----------------------------------------------------------
+
+glWindowPos4fvMESA
+  :: MonadIO m
+  => Ptr GLfloat -- ^ @v@ pointing to @4@ elements of type @CoordF@.
+  -> m ()
+glWindowPos4fvMESA v1 = liftIO $ dyn44 ptr_glWindowPos4fvMESA v1
+
+{-# NOINLINE ptr_glWindowPos4fvMESA #-}
+ptr_glWindowPos4fvMESA :: FunPtr (Ptr GLfloat -> IO ())
+ptr_glWindowPos4fvMESA = unsafePerformIO $ getCommand "glWindowPos4fvMESA"
+
+-- glWindowPos4iMESA -----------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glWindowPos4ivMESA'.
+glWindowPos4iMESA
+  :: MonadIO m
+  => GLint -- ^ @x@ of type @CoordI@.
+  -> GLint -- ^ @y@ of type @CoordI@.
+  -> GLint -- ^ @z@ of type @CoordI@.
+  -> GLint -- ^ @w@ of type @CoordI@.
+  -> m ()
+glWindowPos4iMESA v1 v2 v3 v4 = liftIO $ dyn82 ptr_glWindowPos4iMESA v1 v2 v3 v4
+
+{-# NOINLINE ptr_glWindowPos4iMESA #-}
+ptr_glWindowPos4iMESA :: FunPtr (GLint -> GLint -> GLint -> GLint -> IO ())
+ptr_glWindowPos4iMESA = unsafePerformIO $ getCommand "glWindowPos4iMESA"
+
+-- glWindowPos4ivMESA ----------------------------------------------------------
+
+glWindowPos4ivMESA
+  :: MonadIO m
+  => Ptr GLint -- ^ @v@ pointing to @4@ elements of type @CoordI@.
+  -> m ()
+glWindowPos4ivMESA v1 = liftIO $ dyn46 ptr_glWindowPos4ivMESA v1
+
+{-# NOINLINE ptr_glWindowPos4ivMESA #-}
+ptr_glWindowPos4ivMESA :: FunPtr (Ptr GLint -> IO ())
+ptr_glWindowPos4ivMESA = unsafePerformIO $ getCommand "glWindowPos4ivMESA"
+
+-- glWindowPos4sMESA -----------------------------------------------------------
+
+-- | The vector equivalent of this command is 'glWindowPos4svMESA'.
+glWindowPos4sMESA
+  :: MonadIO m
+  => GLshort -- ^ @x@ of type @CoordS@.
+  -> GLshort -- ^ @y@ of type @CoordS@.
+  -> GLshort -- ^ @z@ of type @CoordS@.
+  -> GLshort -- ^ @w@ of type @CoordS@.
+  -> m ()
+glWindowPos4sMESA v1 v2 v3 v4 = liftIO $ dyn120 ptr_glWindowPos4sMESA v1 v2 v3 v4
+
+{-# NOINLINE ptr_glWindowPos4sMESA #-}
+ptr_glWindowPos4sMESA :: FunPtr (GLshort -> GLshort -> GLshort -> GLshort -> IO ())
+ptr_glWindowPos4sMESA = unsafePerformIO $ getCommand "glWindowPos4sMESA"
+
+-- glWindowPos4svMESA ----------------------------------------------------------
+
+glWindowPos4svMESA
+  :: MonadIO m
+  => Ptr GLshort -- ^ @v@ pointing to @4@ elements of type @CoordS@.
+  -> m ()
+glWindowPos4svMESA v1 = liftIO $ dyn48 ptr_glWindowPos4svMESA v1
+
+{-# NOINLINE ptr_glWindowPos4svMESA #-}
+ptr_glWindowPos4svMESA :: FunPtr (Ptr GLshort -> IO ())
+ptr_glWindowPos4svMESA = unsafePerformIO $ getCommand "glWindowPos4svMESA"
+
+-- glWindowRectanglesEXT -------------------------------------------------------
+
+glWindowRectanglesEXT
+  :: MonadIO m
+  => GLenum -- ^ @mode@.
+  -> GLsizei -- ^ @count@.
+  -> Ptr GLint -- ^ @box@ pointing to @COMPSIZE(count)@ elements of type @GLint@.
+  -> m ()
+glWindowRectanglesEXT v1 v2 v3 = liftIO $ dyn941 ptr_glWindowRectanglesEXT v1 v2 v3
+
+{-# NOINLINE ptr_glWindowRectanglesEXT #-}
+ptr_glWindowRectanglesEXT :: FunPtr (GLenum -> GLsizei -> Ptr GLint -> IO ())
+ptr_glWindowRectanglesEXT = unsafePerformIO $ getCommand "glWindowRectanglesEXT"
+
+-- glWriteMaskEXT --------------------------------------------------------------
+
+glWriteMaskEXT
+  :: MonadIO m
+  => GLuint -- ^ @res@.
+  -> GLuint -- ^ @in@.
+  -> GLenum -- ^ @outX@ of type [VertexShaderWriteMaskEXT](Graphics-GL-Groups.html#VertexShaderWriteMaskEXT).
+  -> GLenum -- ^ @outY@ of type [VertexShaderWriteMaskEXT](Graphics-GL-Groups.html#VertexShaderWriteMaskEXT).
+  -> GLenum -- ^ @outZ@ of type [VertexShaderWriteMaskEXT](Graphics-GL-Groups.html#VertexShaderWriteMaskEXT).
+  -> GLenum -- ^ @outW@ of type [VertexShaderWriteMaskEXT](Graphics-GL-Groups.html#VertexShaderWriteMaskEXT).
+  -> m ()
+glWriteMaskEXT v1 v2 v3 v4 v5 v6 = liftIO $ dyn763 ptr_glWriteMaskEXT v1 v2 v3 v4 v5 v6
+
+{-# NOINLINE ptr_glWriteMaskEXT #-}
+ptr_glWriteMaskEXT :: FunPtr (GLuint -> GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
+ptr_glWriteMaskEXT = unsafePerformIO $ getCommand "glWriteMaskEXT"
+
diff --git a/src/Graphics/GL/GREMEDY.hs b/src/Graphics/GL/GREMEDY.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/GREMEDY.hs
@@ -0,0 +1,21 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.GREMEDY
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- A convenience module, combining all raw modules containing GREMEDY extensions.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.GREMEDY (
+  module Graphics.GL.GREMEDY.FrameTerminator,
+  module Graphics.GL.GREMEDY.StringMarker
+) where
+
+import Graphics.GL.GREMEDY.FrameTerminator
+import Graphics.GL.GREMEDY.StringMarker
diff --git a/src/Graphics/GL/GREMEDY/FrameTerminator.hs b/src/Graphics/GL/GREMEDY/FrameTerminator.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/GREMEDY/FrameTerminator.hs
@@ -0,0 +1,22 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.GREMEDY.FrameTerminator
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.GREMEDY.FrameTerminator (
+  -- * Extension Support
+  glGetGREMEDYFrameTerminator,
+  gl_GREMEDY_frame_terminator,
+  -- * Functions
+  glFrameTerminatorGREMEDY
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/GREMEDY/StringMarker.hs b/src/Graphics/GL/GREMEDY/StringMarker.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/GREMEDY/StringMarker.hs
@@ -0,0 +1,22 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.GREMEDY.StringMarker
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.GREMEDY.StringMarker (
+  -- * Extension Support
+  glGetGREMEDYStringMarker,
+  gl_GREMEDY_string_marker,
+  -- * Functions
+  glStringMarkerGREMEDY
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/GetProcAddress.hs b/src/Graphics/GL/GetProcAddress.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/GetProcAddress.hs
@@ -0,0 +1,239 @@
+{-# LANGUAGE CPP #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.GetProcAddress
+-- Copyright   :  (c) Sven Panne 2009-2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- This module offers a portable way to retrieve OpenGL functions and extension
+-- entries, providing a portability layer upon platform-specific mechanisms
+-- like @glXGetProcAddress@, @wglGetProcAddress@ or @NSAddressOfSymbol@.
+--
+-- Note that /finding/ an OpenGL entry point doesn't mean that it's actually
+-- /usable:/ On most platforms entry points are context-independent, so you have
+-- to check the available extensions and\/or OpenGL version, too.
+--------------------------------------------------------------------------------
+
+module Graphics.GL.GetProcAddress (
+   -- * Unchecked retrieval
+   getProcAddress,
+   getProcAddressWithSuffixes,
+   getExtension,
+   -- * Checked retrieval
+   getProcAddressChecked,
+   getProcAddressWithSuffixesChecked,
+   getExtensionChecked,
+   -- * Version info and extensions
+   getVersion, version,
+   getExtensions, extensions
+) where
+
+#if !MIN_VERSION_base(4,8,0)
+import Data.Functor( (<$>), (<$) )
+#endif
+import Control.Monad ( forM )
+import Control.Monad.IO.Class ( MonadIO(..) )
+import Data.ByteString.Unsafe ( unsafePackCString, unsafeUseAsCString )
+import Data.Char ( isDigit )
+import Data.Set ( Set, fromList )
+import Data.Text ( pack, unpack )
+import Data.Text.Encoding ( encodeUtf8, decodeUtf8 )
+import Foreign.C.String ( CString )
+import Foreign.Marshal.Alloc ( alloca )
+import Foreign.Marshal.Error ( throwIf )
+import Foreign.Ptr ( Ptr, nullPtr, castPtr, FunPtr, nullFunPtr )
+import Foreign.Storable ( peek )
+import Graphics.GL.Tokens
+import Graphics.GL.Types
+import System.IO.Unsafe ( unsafePerformIO )
+import Text.ParserCombinators.ReadP
+
+--------------------------------------------------------------------------------
+
+-- | Retrieve an OpenGL function by name. Returns 'nullFunPtr' when no function
+-- with the given name was found.
+getProcAddress :: MonadIO m => String -> m (FunPtr a)
+getProcAddress cmd = liftIO $ withUtf8String cmd hs_OpenGLRaw_getProcAddress
+
+foreign import ccall unsafe "hs_OpenGLRaw_getProcAddress"
+   hs_OpenGLRaw_getProcAddress :: CString -> IO (FunPtr a)
+
+-- | Retrieve an OpenGL function by name. Throws an 'userError' when no function
+-- with the given name was found.
+getProcAddressChecked :: MonadIO m => String -> m (FunPtr a)
+getProcAddressChecked cmd = liftIO $ check cmd $ getProcAddress cmd
+
+-- | Retrieve an OpenGL function by name, trying a list of name suffixes in the
+-- given order. Returns 'nullFunPtr' when no function with the given name plus
+-- any of the suffixes was found.
+getProcAddressWithSuffixes :: MonadIO m => String -> [String] -> m (FunPtr a)
+getProcAddressWithSuffixes _ [] = return nullFunPtr
+getProcAddressWithSuffixes cmd (x:xs) = do
+   p <- getProcAddress (cmd ++ x)
+   if p == nullFunPtr
+      then getProcAddressWithSuffixes cmd xs
+      else return p
+
+-- | Retrieve an OpenGL function by name, trying a list of name suffixes in the
+-- given order. Throws an 'userError' when no function with the given name plus
+-- any of the suffixes was found.
+getProcAddressWithSuffixesChecked :: MonadIO m
+                                  => String -> [String] -> m (FunPtr a)
+getProcAddressWithSuffixesChecked cmd suffixes =
+   liftIO $ check cmd $ getProcAddressWithSuffixes cmd suffixes
+
+-- | Retrieve an OpenGL function by name, additionally trying a list of all
+-- known vendor suffixes. Returns 'nullFunPtr' when no function with the given
+-- name plus any of the suffixes was found.
+getExtension :: MonadIO m => String -> m (FunPtr a)
+getExtension cmd = liftIO $ getProcAddressWithSuffixes cmd vendorSuffixes
+
+-- | Retrieve an OpenGL function by name, additionally trying a list of all
+-- known vendor suffixes. Throws an 'userError' when no function with the given
+-- name plus any of the suffixes was found.
+getExtensionChecked :: MonadIO m => String -> m (FunPtr a)
+getExtensionChecked cmd =
+  liftIO $ getProcAddressWithSuffixesChecked cmd vendorSuffixes
+
+check :: String -> IO (FunPtr a) -> IO (FunPtr a)
+check = throwIfNullFunPtr . ("unknown OpenGL command " ++)
+
+-- This should really live in Foreign.Marshal.Error.
+throwIfNullFunPtr :: String -> IO (FunPtr a) -> IO (FunPtr a)
+throwIfNullFunPtr = throwIf (== nullFunPtr) . const
+
+vendorSuffixes :: [String]
+vendorSuffixes = [
+   -- stuff already in the standard
+   "",
+   -- officially blessed stuff
+   "ARB", "KHR", "OES",
+   -- almost official stuff
+   "EXT",
+   -- random vendor stuff in decreasing order of number of extensions
+   "NV", "SGIX", "AMD", "APPLE", "ATI", "SGIS", "ANGLE", "QCOM", "IMG", "SUN",
+   "IBM", "ARM", "MESA", "INTEL", "HP", "SGI", "OML", "INGR", "3DFX", "WIN",
+   "PGI", "NVX", "GREMEDY", "DMP", "VIV", "SUNX", "S3", "REND", "MESAX", "FJ",
+   "ANDROID" ]
+
+--------------------------------------------------------------------------------
+
+-- | Retrieve the set of all available OpenGL extensions.
+getExtensions :: MonadIO m => m (Set String)
+getExtensions = liftIO $ Data.Set.fromList <$> do
+  -- glGetStringi is only present from OpenGL 3.0 and OpenGL ES 3.0 onwards, but
+  -- we can't simply retrieve its entry point and check that against nullFunPtr:
+  -- Apart from WGL, entry points are context-independent, so even having an
+  -- entry point which looks valid doesn't guarantee that it is actually
+  -- supported. Therefore we need to check the OpenGL version number directly.
+  getString <- makeGetString
+  v <- getVersionWith getString
+  if v >= (3, 0)
+    then do getInteger <- makeGetInteger
+            getStringi <- makeGetStringi
+            numExtensions <- getInteger GL_NUM_EXTENSIONS
+            forM [ 0 .. fromIntegral numExtensions - 1 ] $
+              getStringi GL_EXTENSIONS
+    else words <$> getString GL_EXTENSIONS
+
+--------------------------------------------------------------------------------
+
+-- | Retrieve the OpenGL version, split into major and minor version numbers.
+getVersion :: MonadIO m => m (Int, Int)
+getVersion = liftIO $ makeGetString >>= getVersionWith
+
+getVersionWith :: (GLenum -> IO String) -> IO (Int, Int)
+getVersionWith getString =
+  runParser parseVersion (-1, -1) <$> getString GL_VERSION
+
+runParser :: ReadP a -> a -> String -> a
+runParser parser failed str =
+  case readP_to_S parser str of
+    [(v, "")] -> v
+    _ -> failed
+
+-- This does quite a bit more than we need for "normal" OpenGL, but at least it
+-- documents the convoluted format of the version string in detail.
+parseVersion :: ReadP (Int, Int)
+parseVersion = do
+  _prefix <-
+    -- Too lazy to define a type for the API...
+    ("CL" <$ string "OpenGL ES-CL ") <++  -- OpenGL ES 1.x Common-Lite
+    ("CM" <$ string "OpenGL ES-CM ") <++  -- OpenGL ES 1.x Common
+    ("ES" <$ string "OpenGL ES "   ) <++  -- OpenGL ES 2.x or 3.x
+    ("GL" <$ string ""             )      -- OpenGL
+  major <- read <$> munch1 isDigit
+  minor <- char '.' >> read <$> munch1 isDigit
+  _release <- (char '.' >> munch1 (/= ' ')) <++ return ""
+  _vendorStuff <- (char ' ' >> get `manyTill` eof) <++ ("" <$ eof)
+  return (major, minor)
+
+--------------------------------------------------------------------------------
+-- Graphics.GL.Foreign uses generated names, which are not
+-- easily predictable, so we duplicate a few "foreign import"s below.
+
+makeGetString :: IO (GLenum -> IO String)
+makeGetString = do
+  glGetString_ <- dynGLenumIOPtrGLubyte <$> getProcAddress "glGetString"
+  return $ \name -> glGetString_ name >>= peekGLstring
+
+foreign import CALLCONV "dynamic" dynGLenumIOPtrGLubyte
+  :: FunPtr (GLenum -> IO (Ptr GLubyte))
+  ->         GLenum -> IO (Ptr GLubyte)
+
+makeGetStringi :: IO (GLenum -> GLuint -> IO String)
+makeGetStringi = do
+  glGetStringi_ <- dynGLenumGLuintIOPtrGLubyte <$> getProcAddress "glGetStringi"
+  return $ \name index -> glGetStringi_ name index >>= peekGLstring
+
+foreign import CALLCONV "dynamic" dynGLenumGLuintIOPtrGLubyte
+  :: FunPtr (GLenum -> GLuint -> IO (Ptr GLubyte))
+  ->         GLenum -> GLuint -> IO (Ptr GLubyte)
+
+makeGetInteger :: IO (GLenum -> IO GLint)
+makeGetInteger = do
+  glGetIntegerv_ <- dynGLenumPtrGLintIOVoid <$> getProcAddress "glGetIntegerv"
+  return $ \name -> alloca $ \p -> glGetIntegerv_ name p >> peek p
+
+foreign import CALLCONV "dynamic" dynGLenumPtrGLintIOVoid
+  :: FunPtr (GLenum -> Ptr GLint -> IO ())
+  ->         GLenum -> Ptr GLint -> IO ()
+
+--------------------------------------------------------------------------------
+
+-- Play safe, this is in line with OpenGL: Return something, but don't crash.
+peekGLstring :: Ptr GLubyte -> IO String
+peekGLstring = ptr (return "") (peekUtf8String . castPtr)
+
+-- This should really be in Foreign.Ptr.
+ptr :: b -> (Ptr a -> b) -> Ptr a -> b
+ptr n f p | p == nullPtr = n
+          | otherwise    = f p
+
+--------------------------------------------------------------------------------
+
+withUtf8String :: String -> (CString -> IO a) -> IO a
+withUtf8String = unsafeUseAsCString . encodeUtf8 . pack . (++ "\0")
+
+peekUtf8String :: CString -> IO String
+peekUtf8String p = unpack . decodeUtf8 <$> unsafePackCString p
+
+--------------------------------------------------------------------------------
+
+-- | The set of all available OpenGL extensions. Note that in the presence of
+-- multiple contexts with different capabilities, this might be wrong. Use
+-- 'getExtensions' in those cases instead.
+extensions :: Set String
+extensions = unsafePerformIO getExtensions
+{-# NOINLINE extensions #-}
+
+-- | The OpenGL version, split into major and minor version numbers. Note that
+-- in the presence of multiple contexts with different capabilities, this might
+-- be wrong. Use 'getVersion' in those cases instead.
+version :: (Int, Int)
+version = unsafePerformIO getVersion
+{-# NOINLINE version #-}
diff --git a/src/Graphics/GL/Groups.hs b/src/Graphics/GL/Groups.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Groups.hs
@@ -0,0 +1,4482 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Groups
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- All enumeration groups from the
+-- <http://www.opengl.org/registry/ OpenGL registry>.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Groups (
+  -- $EnumerantGroups
+) where
+
+-- $EnumerantGroups
+-- Note that the actual set of valid values depend on the OpenGL version, the
+-- chosen profile and the supported extensions. Therefore, the groups mentioned
+-- here should only be considered a rough guideline, for details see the OpenGL
+-- specification.
+--
+-- === #AccumOp# AccumOp
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_ACCUM'
+-- * 'Graphics.GL.Tokens.GL_LOAD'
+-- * 'Graphics.GL.Tokens.GL_RETURN'
+-- * 'Graphics.GL.Tokens.GL_MULT'
+-- * 'Graphics.GL.Tokens.GL_ADD'
+--
+-- === #AlphaFunction# AlphaFunction
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_ALWAYS'
+-- * 'Graphics.GL.Tokens.GL_EQUAL'
+-- * 'Graphics.GL.Tokens.GL_GEQUAL'
+-- * 'Graphics.GL.Tokens.GL_GREATER'
+-- * 'Graphics.GL.Tokens.GL_LEQUAL'
+-- * 'Graphics.GL.Tokens.GL_LESS'
+-- * 'Graphics.GL.Tokens.GL_NEVER'
+-- * 'Graphics.GL.Tokens.GL_NOTEQUAL'
+--
+-- === #ArrayObjectPNameATI# ArrayObjectPNameATI
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_OBJECT_BUFFER_SIZE_ATI'
+-- * 'Graphics.GL.Tokens.GL_OBJECT_BUFFER_USAGE_ATI'
+--
+-- === #ArrayObjectUsageATI# ArrayObjectUsageATI
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_STATIC_ATI'
+-- * 'Graphics.GL.Tokens.GL_DYNAMIC_ATI'
+--
+-- === #AtomicCounterBufferPName# AtomicCounterBufferPName
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_ATOMIC_COUNTER_BUFFER_BINDING'
+-- * 'Graphics.GL.Tokens.GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE'
+-- * 'Graphics.GL.Tokens.GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS'
+-- * 'Graphics.GL.Tokens.GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES'
+-- * 'Graphics.GL.Tokens.GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER'
+-- * 'Graphics.GL.Tokens.GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER'
+-- * 'Graphics.GL.Tokens.GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER'
+-- * 'Graphics.GL.Tokens.GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER'
+-- * 'Graphics.GL.Tokens.GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER'
+-- * 'Graphics.GL.Tokens.GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER'
+--
+-- === #AttribMask# AttribMask
+-- A bitwise combination of several of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_ACCUM_BUFFER_BIT'
+-- * 'Graphics.GL.Tokens.GL_ALL_ATTRIB_BITS'
+-- * 'Graphics.GL.Tokens.GL_COLOR_BUFFER_BIT'
+-- * 'Graphics.GL.Tokens.GL_CURRENT_BIT'
+-- * 'Graphics.GL.Tokens.GL_DEPTH_BUFFER_BIT'
+-- * 'Graphics.GL.Tokens.GL_ENABLE_BIT'
+-- * 'Graphics.GL.Tokens.GL_EVAL_BIT'
+-- * 'Graphics.GL.Tokens.GL_FOG_BIT'
+-- * 'Graphics.GL.Tokens.GL_HINT_BIT'
+-- * 'Graphics.GL.Tokens.GL_LIGHTING_BIT'
+-- * 'Graphics.GL.Tokens.GL_LINE_BIT'
+-- * 'Graphics.GL.Tokens.GL_LIST_BIT'
+-- * 'Graphics.GL.Tokens.GL_MULTISAMPLE_BIT' (aliases: 'Graphics.GL.Tokens.GL_MULTISAMPLE_BIT_3DFX', 'Graphics.GL.Tokens.GL_MULTISAMPLE_BIT_ARB', 'Graphics.GL.Tokens.GL_MULTISAMPLE_BIT_EXT')
+-- * 'Graphics.GL.Tokens.GL_PIXEL_MODE_BIT'
+-- * 'Graphics.GL.Tokens.GL_POINT_BIT'
+-- * 'Graphics.GL.Tokens.GL_POLYGON_BIT'
+-- * 'Graphics.GL.Tokens.GL_POLYGON_STIPPLE_BIT'
+-- * 'Graphics.GL.Tokens.GL_SCISSOR_BIT'
+-- * 'Graphics.GL.Tokens.GL_STENCIL_BUFFER_BIT'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_BIT'
+-- * 'Graphics.GL.Tokens.GL_TRANSFORM_BIT'
+-- * 'Graphics.GL.Tokens.GL_VIEWPORT_BIT'
+--
+-- === #AttributeType# AttributeType
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_FLOAT'
+-- * 'Graphics.GL.Tokens.GL_FLOAT_VEC2' (alias: 'Graphics.GL.Tokens.GL_FLOAT_VEC2_ARB')
+-- * 'Graphics.GL.Tokens.GL_FLOAT_VEC3' (alias: 'Graphics.GL.Tokens.GL_FLOAT_VEC3_ARB')
+-- * 'Graphics.GL.Tokens.GL_FLOAT_VEC4' (alias: 'Graphics.GL.Tokens.GL_FLOAT_VEC4_ARB')
+-- * 'Graphics.GL.Tokens.GL_DOUBLE'
+-- * 'Graphics.GL.Tokens.GL_DOUBLE_VEC2'
+-- * 'Graphics.GL.Tokens.GL_DOUBLE_VEC3'
+-- * 'Graphics.GL.Tokens.GL_DOUBLE_VEC4'
+-- * 'Graphics.GL.Tokens.GL_INT'
+-- * 'Graphics.GL.Tokens.GL_INT_VEC2' (alias: 'Graphics.GL.Tokens.GL_INT_VEC2_ARB')
+-- * 'Graphics.GL.Tokens.GL_INT_VEC3' (alias: 'Graphics.GL.Tokens.GL_INT_VEC3_ARB')
+-- * 'Graphics.GL.Tokens.GL_INT_VEC4' (alias: 'Graphics.GL.Tokens.GL_INT_VEC4_ARB')
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_VEC2'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_VEC3'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_VEC4'
+-- * 'Graphics.GL.Tokens.GL_BOOL' (alias: 'Graphics.GL.Tokens.GL_BOOL_ARB')
+-- * 'Graphics.GL.Tokens.GL_BOOL_VEC2' (alias: 'Graphics.GL.Tokens.GL_BOOL_VEC2_ARB')
+-- * 'Graphics.GL.Tokens.GL_BOOL_VEC3' (alias: 'Graphics.GL.Tokens.GL_BOOL_VEC3_ARB')
+-- * 'Graphics.GL.Tokens.GL_BOOL_VEC4' (alias: 'Graphics.GL.Tokens.GL_BOOL_VEC4_ARB')
+-- * 'Graphics.GL.Tokens.GL_FLOAT_MAT2' (alias: 'Graphics.GL.Tokens.GL_FLOAT_MAT2_ARB')
+-- * 'Graphics.GL.Tokens.GL_FLOAT_MAT3' (alias: 'Graphics.GL.Tokens.GL_FLOAT_MAT3_ARB')
+-- * 'Graphics.GL.Tokens.GL_FLOAT_MAT4' (alias: 'Graphics.GL.Tokens.GL_FLOAT_MAT4_ARB')
+-- * 'Graphics.GL.Tokens.GL_FLOAT_MAT2x3' (alias: 'Graphics.GL.Tokens.GL_FLOAT_MAT2x3_NV')
+-- * 'Graphics.GL.Tokens.GL_FLOAT_MAT2x4' (alias: 'Graphics.GL.Tokens.GL_FLOAT_MAT2x4_NV')
+-- * 'Graphics.GL.Tokens.GL_FLOAT_MAT3x2' (alias: 'Graphics.GL.Tokens.GL_FLOAT_MAT3x2_NV')
+-- * 'Graphics.GL.Tokens.GL_FLOAT_MAT3x4' (alias: 'Graphics.GL.Tokens.GL_FLOAT_MAT3x4_NV')
+-- * 'Graphics.GL.Tokens.GL_FLOAT_MAT4x2' (alias: 'Graphics.GL.Tokens.GL_FLOAT_MAT4x2_NV')
+-- * 'Graphics.GL.Tokens.GL_FLOAT_MAT4x3' (alias: 'Graphics.GL.Tokens.GL_FLOAT_MAT4x3_NV')
+-- * 'Graphics.GL.Tokens.GL_DOUBLE_MAT2'
+-- * 'Graphics.GL.Tokens.GL_DOUBLE_MAT3'
+-- * 'Graphics.GL.Tokens.GL_DOUBLE_MAT4'
+-- * 'Graphics.GL.Tokens.GL_DOUBLE_MAT2x3'
+-- * 'Graphics.GL.Tokens.GL_DOUBLE_MAT2x4'
+-- * 'Graphics.GL.Tokens.GL_DOUBLE_MAT3x2'
+-- * 'Graphics.GL.Tokens.GL_DOUBLE_MAT3x4'
+-- * 'Graphics.GL.Tokens.GL_DOUBLE_MAT4x2'
+-- * 'Graphics.GL.Tokens.GL_DOUBLE_MAT4x3'
+-- * 'Graphics.GL.Tokens.GL_SAMPLER_1D' (alias: 'Graphics.GL.Tokens.GL_SAMPLER_1D_ARB')
+-- * 'Graphics.GL.Tokens.GL_SAMPLER_2D' (alias: 'Graphics.GL.Tokens.GL_SAMPLER_2D_ARB')
+-- * 'Graphics.GL.Tokens.GL_SAMPLER_3D' (aliases: 'Graphics.GL.Tokens.GL_SAMPLER_3D_ARB', 'Graphics.GL.Tokens.GL_SAMPLER_3D_OES')
+-- * 'Graphics.GL.Tokens.GL_SAMPLER_CUBE' (alias: 'Graphics.GL.Tokens.GL_SAMPLER_CUBE_ARB')
+-- * 'Graphics.GL.Tokens.GL_SAMPLER_1D_SHADOW' (alias: 'Graphics.GL.Tokens.GL_SAMPLER_1D_SHADOW_ARB')
+-- * 'Graphics.GL.Tokens.GL_SAMPLER_2D_SHADOW' (aliases: 'Graphics.GL.Tokens.GL_SAMPLER_2D_SHADOW_ARB', 'Graphics.GL.Tokens.GL_SAMPLER_2D_SHADOW_EXT')
+-- * 'Graphics.GL.Tokens.GL_SAMPLER_CUBE_MAP_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_SAMPLER_1D_ARRAY_SHADOW'
+-- * 'Graphics.GL.Tokens.GL_SAMPLER_2D_ARRAY_SHADOW'
+-- * 'Graphics.GL.Tokens.GL_SAMPLER_2D_MULTISAMPLE'
+-- * 'Graphics.GL.Tokens.GL_SAMPLER_2D_MULTISAMPLE_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_SAMPLER_CUBE_SHADOW'
+-- * 'Graphics.GL.Tokens.GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW'
+-- * 'Graphics.GL.Tokens.GL_SAMPLER_BUFFER'
+-- * 'Graphics.GL.Tokens.GL_SAMPLER_2D_RECT' (alias: 'Graphics.GL.Tokens.GL_SAMPLER_2D_RECT_ARB')
+-- * 'Graphics.GL.Tokens.GL_SAMPLER_2D_RECT_SHADOW' (alias: 'Graphics.GL.Tokens.GL_SAMPLER_2D_RECT_SHADOW_ARB')
+-- * 'Graphics.GL.Tokens.GL_INT_SAMPLER_1D'
+-- * 'Graphics.GL.Tokens.GL_INT_SAMPLER_2D'
+-- * 'Graphics.GL.Tokens.GL_INT_SAMPLER_3D'
+-- * 'Graphics.GL.Tokens.GL_INT_SAMPLER_CUBE'
+-- * 'Graphics.GL.Tokens.GL_INT_SAMPLER_1D_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_INT_SAMPLER_2D_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_INT_SAMPLER_CUBE_MAP_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_INT_SAMPLER_2D_MULTISAMPLE'
+-- * 'Graphics.GL.Tokens.GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_INT_SAMPLER_BUFFER'
+-- * 'Graphics.GL.Tokens.GL_INT_SAMPLER_2D_RECT'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_SAMPLER_1D'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_SAMPLER_2D'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_SAMPLER_3D'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_SAMPLER_CUBE'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_SAMPLER_1D_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_SAMPLER_2D_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_SAMPLER_BUFFER'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_SAMPLER_2D_RECT'
+-- * 'Graphics.GL.Tokens.GL_IMAGE_1D'
+-- * 'Graphics.GL.Tokens.GL_IMAGE_2D'
+-- * 'Graphics.GL.Tokens.GL_IMAGE_3D'
+-- * 'Graphics.GL.Tokens.GL_IMAGE_2D_RECT'
+-- * 'Graphics.GL.Tokens.GL_IMAGE_CUBE'
+-- * 'Graphics.GL.Tokens.GL_IMAGE_BUFFER'
+-- * 'Graphics.GL.Tokens.GL_IMAGE_1D_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_IMAGE_2D_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_IMAGE_CUBE_MAP_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_IMAGE_2D_MULTISAMPLE'
+-- * 'Graphics.GL.Tokens.GL_IMAGE_2D_MULTISAMPLE_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_INT_IMAGE_1D'
+-- * 'Graphics.GL.Tokens.GL_INT_IMAGE_2D'
+-- * 'Graphics.GL.Tokens.GL_INT_IMAGE_3D'
+-- * 'Graphics.GL.Tokens.GL_INT_IMAGE_2D_RECT'
+-- * 'Graphics.GL.Tokens.GL_INT_IMAGE_CUBE'
+-- * 'Graphics.GL.Tokens.GL_INT_IMAGE_BUFFER'
+-- * 'Graphics.GL.Tokens.GL_INT_IMAGE_1D_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_INT_IMAGE_2D_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_INT_IMAGE_CUBE_MAP_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_INT_IMAGE_2D_MULTISAMPLE'
+-- * 'Graphics.GL.Tokens.GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_IMAGE_1D'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_IMAGE_2D'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_IMAGE_3D'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_IMAGE_2D_RECT'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_IMAGE_CUBE'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_IMAGE_BUFFER'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_IMAGE_1D_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_IMAGE_2D_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_INT64_ARB' (alias: 'Graphics.GL.Tokens.GL_INT64_NV')
+-- * 'Graphics.GL.Tokens.GL_INT64_VEC2_ARB'
+-- * 'Graphics.GL.Tokens.GL_INT64_VEC3_ARB'
+-- * 'Graphics.GL.Tokens.GL_INT64_VEC4_ARB'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT64_ARB' (alias: 'Graphics.GL.Tokens.GL_UNSIGNED_INT64_NV')
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT64_VEC2_ARB'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT64_VEC3_ARB'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT64_VEC4_ARB'
+--
+-- === #BindTransformFeedbackTarget# BindTransformFeedbackTarget
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_TRANSFORM_FEEDBACK'
+--
+-- === #BinormalPointerTypeEXT# BinormalPointerTypeEXT
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_BYTE'
+-- * 'Graphics.GL.Tokens.GL_SHORT'
+-- * 'Graphics.GL.Tokens.GL_INT'
+-- * 'Graphics.GL.Tokens.GL_FLOAT'
+-- * 'Graphics.GL.Tokens.GL_DOUBLE' (alias: 'Graphics.GL.Tokens.GL_DOUBLE_EXT')
+--
+-- === #BlendEquationModeEXT# BlendEquationModeEXT
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_ALPHA_MAX_SGIX'
+-- * 'Graphics.GL.Tokens.GL_ALPHA_MIN_SGIX'
+-- * 'Graphics.GL.Tokens.GL_FUNC_ADD' (alias: 'Graphics.GL.Tokens.GL_FUNC_ADD_EXT')
+-- * 'Graphics.GL.Tokens.GL_FUNC_REVERSE_SUBTRACT' (alias: 'Graphics.GL.Tokens.GL_FUNC_REVERSE_SUBTRACT_EXT')
+-- * 'Graphics.GL.Tokens.GL_FUNC_SUBTRACT' (alias: 'Graphics.GL.Tokens.GL_FUNC_SUBTRACT_EXT')
+-- * 'Graphics.GL.Tokens.GL_MAX' (alias: 'Graphics.GL.Tokens.GL_MAX_EXT')
+-- * 'Graphics.GL.Tokens.GL_MIN' (alias: 'Graphics.GL.Tokens.GL_MIN_EXT')
+--
+-- === #BlendingFactor# BlendingFactor
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_ZERO'
+-- * 'Graphics.GL.Tokens.GL_ONE'
+-- * 'Graphics.GL.Tokens.GL_SRC_COLOR'
+-- * 'Graphics.GL.Tokens.GL_ONE_MINUS_SRC_COLOR'
+-- * 'Graphics.GL.Tokens.GL_DST_COLOR'
+-- * 'Graphics.GL.Tokens.GL_ONE_MINUS_DST_COLOR'
+-- * 'Graphics.GL.Tokens.GL_SRC_ALPHA'
+-- * 'Graphics.GL.Tokens.GL_ONE_MINUS_SRC_ALPHA'
+-- * 'Graphics.GL.Tokens.GL_DST_ALPHA'
+-- * 'Graphics.GL.Tokens.GL_ONE_MINUS_DST_ALPHA'
+-- * 'Graphics.GL.Tokens.GL_CONSTANT_COLOR'
+-- * 'Graphics.GL.Tokens.GL_ONE_MINUS_CONSTANT_COLOR'
+-- * 'Graphics.GL.Tokens.GL_CONSTANT_ALPHA'
+-- * 'Graphics.GL.Tokens.GL_ONE_MINUS_CONSTANT_ALPHA'
+-- * 'Graphics.GL.Tokens.GL_SRC_ALPHA_SATURATE'
+-- * 'Graphics.GL.Tokens.GL_SRC1_COLOR'
+-- * 'Graphics.GL.Tokens.GL_ONE_MINUS_SRC1_COLOR'
+-- * 'Graphics.GL.Tokens.GL_SRC1_ALPHA'
+-- * 'Graphics.GL.Tokens.GL_ONE_MINUS_SRC1_ALPHA'
+--
+-- === #BlitFramebufferFilter# BlitFramebufferFilter
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_NEAREST'
+-- * 'Graphics.GL.Tokens.GL_LINEAR'
+--
+-- === #Boolean# Boolean
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_FALSE'
+-- * 'Graphics.GL.Tokens.GL_TRUE'
+--
+-- === #Buffer# Buffer
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_COLOR'
+-- * 'Graphics.GL.Tokens.GL_DEPTH'
+-- * 'Graphics.GL.Tokens.GL_STENCIL'
+--
+-- === #BufferAccessARB# BufferAccessARB
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_READ_ONLY'
+-- * 'Graphics.GL.Tokens.GL_WRITE_ONLY'
+-- * 'Graphics.GL.Tokens.GL_READ_WRITE'
+--
+-- === #BufferBitQCOM# BufferBitQCOM
+-- A bitwise combination of several of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_MULTISAMPLE_BUFFER_BIT7_QCOM'
+-- * 'Graphics.GL.Tokens.GL_MULTISAMPLE_BUFFER_BIT6_QCOM'
+-- * 'Graphics.GL.Tokens.GL_MULTISAMPLE_BUFFER_BIT5_QCOM'
+-- * 'Graphics.GL.Tokens.GL_MULTISAMPLE_BUFFER_BIT4_QCOM'
+-- * 'Graphics.GL.Tokens.GL_MULTISAMPLE_BUFFER_BIT3_QCOM'
+-- * 'Graphics.GL.Tokens.GL_MULTISAMPLE_BUFFER_BIT2_QCOM'
+-- * 'Graphics.GL.Tokens.GL_MULTISAMPLE_BUFFER_BIT1_QCOM'
+-- * 'Graphics.GL.Tokens.GL_MULTISAMPLE_BUFFER_BIT0_QCOM'
+-- * 'Graphics.GL.Tokens.GL_STENCIL_BUFFER_BIT7_QCOM'
+-- * 'Graphics.GL.Tokens.GL_STENCIL_BUFFER_BIT6_QCOM'
+-- * 'Graphics.GL.Tokens.GL_STENCIL_BUFFER_BIT5_QCOM'
+-- * 'Graphics.GL.Tokens.GL_STENCIL_BUFFER_BIT4_QCOM'
+-- * 'Graphics.GL.Tokens.GL_STENCIL_BUFFER_BIT3_QCOM'
+-- * 'Graphics.GL.Tokens.GL_STENCIL_BUFFER_BIT2_QCOM'
+-- * 'Graphics.GL.Tokens.GL_STENCIL_BUFFER_BIT1_QCOM'
+-- * 'Graphics.GL.Tokens.GL_STENCIL_BUFFER_BIT0_QCOM'
+-- * 'Graphics.GL.Tokens.GL_DEPTH_BUFFER_BIT7_QCOM'
+-- * 'Graphics.GL.Tokens.GL_DEPTH_BUFFER_BIT6_QCOM'
+-- * 'Graphics.GL.Tokens.GL_DEPTH_BUFFER_BIT5_QCOM'
+-- * 'Graphics.GL.Tokens.GL_DEPTH_BUFFER_BIT4_QCOM'
+-- * 'Graphics.GL.Tokens.GL_DEPTH_BUFFER_BIT3_QCOM'
+-- * 'Graphics.GL.Tokens.GL_DEPTH_BUFFER_BIT2_QCOM'
+-- * 'Graphics.GL.Tokens.GL_DEPTH_BUFFER_BIT1_QCOM'
+-- * 'Graphics.GL.Tokens.GL_DEPTH_BUFFER_BIT0_QCOM'
+-- * 'Graphics.GL.Tokens.GL_COLOR_BUFFER_BIT7_QCOM'
+-- * 'Graphics.GL.Tokens.GL_COLOR_BUFFER_BIT6_QCOM'
+-- * 'Graphics.GL.Tokens.GL_COLOR_BUFFER_BIT5_QCOM'
+-- * 'Graphics.GL.Tokens.GL_COLOR_BUFFER_BIT4_QCOM'
+-- * 'Graphics.GL.Tokens.GL_COLOR_BUFFER_BIT3_QCOM'
+-- * 'Graphics.GL.Tokens.GL_COLOR_BUFFER_BIT2_QCOM'
+-- * 'Graphics.GL.Tokens.GL_COLOR_BUFFER_BIT1_QCOM'
+-- * 'Graphics.GL.Tokens.GL_COLOR_BUFFER_BIT0_QCOM'
+--
+-- === #BufferPNameARB# BufferPNameARB
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_BUFFER_SIZE' (alias: 'Graphics.GL.Tokens.GL_BUFFER_SIZE_ARB')
+-- * 'Graphics.GL.Tokens.GL_BUFFER_USAGE' (alias: 'Graphics.GL.Tokens.GL_BUFFER_USAGE_ARB')
+-- * 'Graphics.GL.Tokens.GL_BUFFER_ACCESS' (alias: 'Graphics.GL.Tokens.GL_BUFFER_ACCESS_ARB')
+-- * 'Graphics.GL.Tokens.GL_BUFFER_ACCESS_FLAGS'
+-- * 'Graphics.GL.Tokens.GL_BUFFER_IMMUTABLE_STORAGE'
+-- * 'Graphics.GL.Tokens.GL_BUFFER_MAPPED' (alias: 'Graphics.GL.Tokens.GL_BUFFER_MAPPED_ARB')
+-- * 'Graphics.GL.Tokens.GL_BUFFER_MAP_OFFSET'
+-- * 'Graphics.GL.Tokens.GL_BUFFER_MAP_LENGTH'
+-- * 'Graphics.GL.Tokens.GL_BUFFER_STORAGE_FLAGS'
+--
+-- === #BufferPointerNameARB# BufferPointerNameARB
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_BUFFER_MAP_POINTER' (alias: 'Graphics.GL.Tokens.GL_BUFFER_MAP_POINTER_ARB')
+--
+-- === #BufferStorageMask# BufferStorageMask
+-- A bitwise combination of several of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_CLIENT_STORAGE_BIT' (alias: 'Graphics.GL.Tokens.GL_CLIENT_STORAGE_BIT_EXT')
+-- * 'Graphics.GL.Tokens.GL_DYNAMIC_STORAGE_BIT' (alias: 'Graphics.GL.Tokens.GL_DYNAMIC_STORAGE_BIT_EXT')
+-- * 'Graphics.GL.Tokens.GL_MAP_COHERENT_BIT' (alias: 'Graphics.GL.Tokens.GL_MAP_COHERENT_BIT_EXT')
+-- * 'Graphics.GL.Tokens.GL_MAP_PERSISTENT_BIT' (alias: 'Graphics.GL.Tokens.GL_MAP_PERSISTENT_BIT_EXT')
+-- * 'Graphics.GL.Tokens.GL_MAP_READ_BIT' (alias: 'Graphics.GL.Tokens.GL_MAP_READ_BIT_EXT')
+-- * 'Graphics.GL.Tokens.GL_MAP_WRITE_BIT' (alias: 'Graphics.GL.Tokens.GL_MAP_WRITE_BIT_EXT')
+-- * 'Graphics.GL.Tokens.GL_SPARSE_STORAGE_BIT_ARB'
+-- * 'Graphics.GL.Tokens.GL_LGPU_SEPARATE_STORAGE_BIT_NVX' (alias: 'Graphics.GL.Tokens.GL_PER_GPU_STORAGE_BIT_NV')
+-- * 'Graphics.GL.Tokens.GL_EXTERNAL_STORAGE_BIT_NVX'
+--
+-- === #BufferStorageTarget# BufferStorageTarget
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_ARRAY_BUFFER'
+-- * 'Graphics.GL.Tokens.GL_ATOMIC_COUNTER_BUFFER'
+-- * 'Graphics.GL.Tokens.GL_COPY_READ_BUFFER'
+-- * 'Graphics.GL.Tokens.GL_COPY_WRITE_BUFFER'
+-- * 'Graphics.GL.Tokens.GL_DISPATCH_INDIRECT_BUFFER'
+-- * 'Graphics.GL.Tokens.GL_DRAW_INDIRECT_BUFFER'
+-- * 'Graphics.GL.Tokens.GL_ELEMENT_ARRAY_BUFFER'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_PACK_BUFFER'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_UNPACK_BUFFER'
+-- * 'Graphics.GL.Tokens.GL_QUERY_BUFFER'
+-- * 'Graphics.GL.Tokens.GL_SHADER_STORAGE_BUFFER'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_BUFFER'
+-- * 'Graphics.GL.Tokens.GL_TRANSFORM_FEEDBACK_BUFFER'
+-- * 'Graphics.GL.Tokens.GL_UNIFORM_BUFFER'
+--
+-- === #BufferTargetARB# BufferTargetARB
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_ARRAY_BUFFER'
+-- * 'Graphics.GL.Tokens.GL_ATOMIC_COUNTER_BUFFER'
+-- * 'Graphics.GL.Tokens.GL_COPY_READ_BUFFER'
+-- * 'Graphics.GL.Tokens.GL_COPY_WRITE_BUFFER'
+-- * 'Graphics.GL.Tokens.GL_DISPATCH_INDIRECT_BUFFER'
+-- * 'Graphics.GL.Tokens.GL_DRAW_INDIRECT_BUFFER'
+-- * 'Graphics.GL.Tokens.GL_ELEMENT_ARRAY_BUFFER'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_PACK_BUFFER'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_UNPACK_BUFFER'
+-- * 'Graphics.GL.Tokens.GL_QUERY_BUFFER'
+-- * 'Graphics.GL.Tokens.GL_SHADER_STORAGE_BUFFER'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_BUFFER'
+-- * 'Graphics.GL.Tokens.GL_TRANSFORM_FEEDBACK_BUFFER'
+-- * 'Graphics.GL.Tokens.GL_UNIFORM_BUFFER'
+-- * 'Graphics.GL.Tokens.GL_PARAMETER_BUFFER'
+--
+-- === #BufferUsageARB# BufferUsageARB
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_STREAM_DRAW'
+-- * 'Graphics.GL.Tokens.GL_STREAM_READ'
+-- * 'Graphics.GL.Tokens.GL_STREAM_COPY'
+-- * 'Graphics.GL.Tokens.GL_STATIC_DRAW'
+-- * 'Graphics.GL.Tokens.GL_STATIC_READ'
+-- * 'Graphics.GL.Tokens.GL_STATIC_COPY'
+-- * 'Graphics.GL.Tokens.GL_DYNAMIC_DRAW'
+-- * 'Graphics.GL.Tokens.GL_DYNAMIC_READ'
+-- * 'Graphics.GL.Tokens.GL_DYNAMIC_COPY'
+--
+-- === #CheckFramebufferStatusTarget# CheckFramebufferStatusTarget
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_DRAW_FRAMEBUFFER'
+-- * 'Graphics.GL.Tokens.GL_READ_FRAMEBUFFER'
+-- * 'Graphics.GL.Tokens.GL_FRAMEBUFFER'
+--
+-- === #ClampColorModeARB# ClampColorModeARB
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_FALSE' (alias: 'Graphics.GL.Tokens.GL_FALSE')
+-- * 'Graphics.GL.Tokens.GL_TRUE' (alias: 'Graphics.GL.Tokens.GL_TRUE')
+-- * 'Graphics.GL.Tokens.GL_TRUE' (alias: 'Graphics.GL.Tokens.GL_TRUE')
+-- * 'Graphics.GL.Tokens.GL_FALSE' (alias: 'Graphics.GL.Tokens.GL_FALSE')
+-- * 'Graphics.GL.Tokens.GL_FIXED_ONLY' (alias: 'Graphics.GL.Tokens.GL_FIXED_ONLY_ARB')
+--
+-- === #ClampColorTargetARB# ClampColorTargetARB
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_CLAMP_VERTEX_COLOR_ARB'
+-- * 'Graphics.GL.Tokens.GL_CLAMP_FRAGMENT_COLOR_ARB'
+-- * 'Graphics.GL.Tokens.GL_CLAMP_READ_COLOR' (alias: 'Graphics.GL.Tokens.GL_CLAMP_READ_COLOR_ARB')
+--
+-- === #ClearBufferMask# ClearBufferMask
+-- A bitwise combination of several of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_ACCUM_BUFFER_BIT'
+-- * 'Graphics.GL.Tokens.GL_COLOR_BUFFER_BIT'
+-- * 'Graphics.GL.Tokens.GL_COVERAGE_BUFFER_BIT_NV'
+-- * 'Graphics.GL.Tokens.GL_DEPTH_BUFFER_BIT'
+-- * 'Graphics.GL.Tokens.GL_STENCIL_BUFFER_BIT'
+--
+-- === #ClientAttribMask# ClientAttribMask
+-- A bitwise combination of several of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_CLIENT_ALL_ATTRIB_BITS'
+-- * 'Graphics.GL.Tokens.GL_CLIENT_PIXEL_STORE_BIT'
+-- * 'Graphics.GL.Tokens.GL_CLIENT_VERTEX_ARRAY_BIT'
+--
+-- === #ClipControlDepth# ClipControlDepth
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_NEGATIVE_ONE_TO_ONE'
+-- * 'Graphics.GL.Tokens.GL_ZERO_TO_ONE'
+--
+-- === #ClipControlOrigin# ClipControlOrigin
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_LOWER_LEFT'
+-- * 'Graphics.GL.Tokens.GL_UPPER_LEFT'
+--
+-- === #ClipPlaneName# ClipPlaneName
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_CLIP_DISTANCE0' (alias: 'Graphics.GL.Tokens.GL_CLIP_PLANE0')
+-- * 'Graphics.GL.Tokens.GL_CLIP_DISTANCE1' (alias: 'Graphics.GL.Tokens.GL_CLIP_PLANE1')
+-- * 'Graphics.GL.Tokens.GL_CLIP_DISTANCE2' (alias: 'Graphics.GL.Tokens.GL_CLIP_PLANE2')
+-- * 'Graphics.GL.Tokens.GL_CLIP_DISTANCE3' (alias: 'Graphics.GL.Tokens.GL_CLIP_PLANE3')
+-- * 'Graphics.GL.Tokens.GL_CLIP_DISTANCE4' (alias: 'Graphics.GL.Tokens.GL_CLIP_PLANE4')
+-- * 'Graphics.GL.Tokens.GL_CLIP_DISTANCE5' (alias: 'Graphics.GL.Tokens.GL_CLIP_PLANE5')
+-- * 'Graphics.GL.Tokens.GL_CLIP_DISTANCE6'
+-- * 'Graphics.GL.Tokens.GL_CLIP_DISTANCE7'
+--
+-- === #ColorBuffer# ColorBuffer
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_NONE'
+-- * 'Graphics.GL.Tokens.GL_FRONT_LEFT'
+-- * 'Graphics.GL.Tokens.GL_FRONT_RIGHT'
+-- * 'Graphics.GL.Tokens.GL_BACK_LEFT'
+-- * 'Graphics.GL.Tokens.GL_BACK_RIGHT'
+-- * 'Graphics.GL.Tokens.GL_FRONT'
+-- * 'Graphics.GL.Tokens.GL_BACK'
+-- * 'Graphics.GL.Tokens.GL_LEFT'
+-- * 'Graphics.GL.Tokens.GL_RIGHT'
+-- * 'Graphics.GL.Tokens.GL_FRONT_AND_BACK'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT0'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT1'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT2'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT3'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT4'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT5'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT6'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT7'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT8'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT9'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT10'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT11'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT12'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT13'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT14'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT15'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT16'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT17'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT18'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT19'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT20'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT21'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT22'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT23'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT24'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT25'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT26'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT27'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT28'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT29'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT30'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT31'
+--
+-- === #ColorMaterialFace# ColorMaterialFace
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_BACK'
+-- * 'Graphics.GL.Tokens.GL_FRONT'
+-- * 'Graphics.GL.Tokens.GL_FRONT_AND_BACK'
+--
+-- === #ColorMaterialParameter# ColorMaterialParameter
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_AMBIENT'
+-- * 'Graphics.GL.Tokens.GL_AMBIENT_AND_DIFFUSE'
+-- * 'Graphics.GL.Tokens.GL_DIFFUSE'
+-- * 'Graphics.GL.Tokens.GL_EMISSION'
+-- * 'Graphics.GL.Tokens.GL_SPECULAR'
+--
+-- === #ColorPointerType# ColorPointerType
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_BYTE'
+-- * 'Graphics.GL.Tokens.GL_DOUBLE'
+-- * 'Graphics.GL.Tokens.GL_FLOAT'
+-- * 'Graphics.GL.Tokens.GL_INT'
+-- * 'Graphics.GL.Tokens.GL_SHORT'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_BYTE'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_SHORT'
+--
+-- === #ColorTableParameterPNameSGI# ColorTableParameterPNameSGI
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_COLOR_TABLE_BIAS' (alias: 'Graphics.GL.Tokens.GL_COLOR_TABLE_BIAS_SGI')
+-- * 'Graphics.GL.Tokens.GL_COLOR_TABLE_SCALE' (alias: 'Graphics.GL.Tokens.GL_COLOR_TABLE_SCALE_SGI')
+--
+-- === #ColorTableTarget# ColorTableTarget
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_COLOR_TABLE'
+-- * 'Graphics.GL.Tokens.GL_POST_CONVOLUTION_COLOR_TABLE'
+-- * 'Graphics.GL.Tokens.GL_POST_COLOR_MATRIX_COLOR_TABLE'
+--
+-- === #ColorTableTargetSGI# ColorTableTargetSGI
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_COLOR_TABLE' (alias: 'Graphics.GL.Tokens.GL_COLOR_TABLE_SGI')
+-- * 'Graphics.GL.Tokens.GL_POST_COLOR_MATRIX_COLOR_TABLE' (alias: 'Graphics.GL.Tokens.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI')
+-- * 'Graphics.GL.Tokens.GL_POST_CONVOLUTION_COLOR_TABLE' (alias: 'Graphics.GL.Tokens.GL_POST_CONVOLUTION_COLOR_TABLE_SGI')
+-- * 'Graphics.GL.Tokens.GL_PROXY_COLOR_TABLE' (alias: 'Graphics.GL.Tokens.GL_PROXY_COLOR_TABLE_SGI')
+-- * 'Graphics.GL.Tokens.GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE' (alias: 'Graphics.GL.Tokens.GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI')
+-- * 'Graphics.GL.Tokens.GL_PROXY_POST_CONVOLUTION_COLOR_TABLE' (alias: 'Graphics.GL.Tokens.GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI')
+-- * 'Graphics.GL.Tokens.GL_PROXY_TEXTURE_COLOR_TABLE_SGI'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_COLOR_TABLE_SGI'
+--
+-- === #CombinerBiasNV# CombinerBiasNV
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_NONE'
+-- * 'Graphics.GL.Tokens.GL_BIAS_BY_NEGATIVE_ONE_HALF_NV'
+--
+-- === #CombinerComponentUsageNV# CombinerComponentUsageNV
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_RGB'
+-- * 'Graphics.GL.Tokens.GL_ALPHA'
+-- * 'Graphics.GL.Tokens.GL_BLUE'
+--
+-- === #CombinerMappingNV# CombinerMappingNV
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_IDENTITY_NV'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INVERT_NV'
+-- * 'Graphics.GL.Tokens.GL_EXPAND_NORMAL_NV'
+-- * 'Graphics.GL.Tokens.GL_EXPAND_NEGATE_NV'
+-- * 'Graphics.GL.Tokens.GL_HALF_BIAS_NORMAL_NV'
+-- * 'Graphics.GL.Tokens.GL_HALF_BIAS_NEGATE_NV'
+-- * 'Graphics.GL.Tokens.GL_SIGNED_IDENTITY_NV'
+-- * 'Graphics.GL.Tokens.GL_SIGNED_NEGATE_NV'
+--
+-- === #CombinerParameterNV# CombinerParameterNV
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_COMBINER_INPUT_NV'
+-- * 'Graphics.GL.Tokens.GL_COMBINER_MAPPING_NV'
+-- * 'Graphics.GL.Tokens.GL_COMBINER_COMPONENT_USAGE_NV'
+--
+-- === #CombinerPortionNV# CombinerPortionNV
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_RGB'
+-- * 'Graphics.GL.Tokens.GL_ALPHA'
+--
+-- === #CombinerRegisterNV# CombinerRegisterNV
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_DISCARD_NV'
+-- * 'Graphics.GL.Tokens.GL_PRIMARY_COLOR_NV'
+-- * 'Graphics.GL.Tokens.GL_SECONDARY_COLOR_NV'
+-- * 'Graphics.GL.Tokens.GL_SPARE0_NV'
+-- * 'Graphics.GL.Tokens.GL_SPARE1_NV'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE0_ARB'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE1_ARB'
+--
+-- === #CombinerScaleNV# CombinerScaleNV
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_NONE'
+-- * 'Graphics.GL.Tokens.GL_SCALE_BY_TWO_NV'
+-- * 'Graphics.GL.Tokens.GL_SCALE_BY_FOUR_NV'
+-- * 'Graphics.GL.Tokens.GL_SCALE_BY_ONE_HALF_NV'
+--
+-- === #CombinerStageNV# CombinerStageNV
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_COMBINER0_NV'
+-- * 'Graphics.GL.Tokens.GL_COMBINER1_NV'
+-- * 'Graphics.GL.Tokens.GL_COMBINER2_NV'
+-- * 'Graphics.GL.Tokens.GL_COMBINER3_NV'
+-- * 'Graphics.GL.Tokens.GL_COMBINER4_NV'
+-- * 'Graphics.GL.Tokens.GL_COMBINER5_NV'
+-- * 'Graphics.GL.Tokens.GL_COMBINER6_NV'
+-- * 'Graphics.GL.Tokens.GL_COMBINER7_NV'
+--
+-- === #CombinerVariableNV# CombinerVariableNV
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_VARIABLE_A_NV'
+-- * 'Graphics.GL.Tokens.GL_VARIABLE_B_NV'
+-- * 'Graphics.GL.Tokens.GL_VARIABLE_C_NV'
+-- * 'Graphics.GL.Tokens.GL_VARIABLE_D_NV'
+-- * 'Graphics.GL.Tokens.GL_VARIABLE_E_NV'
+-- * 'Graphics.GL.Tokens.GL_VARIABLE_F_NV'
+-- * 'Graphics.GL.Tokens.GL_VARIABLE_G_NV'
+--
+-- === #ConditionalRenderMode# ConditionalRenderMode
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_QUERY_WAIT'
+-- * 'Graphics.GL.Tokens.GL_QUERY_NO_WAIT'
+-- * 'Graphics.GL.Tokens.GL_QUERY_BY_REGION_WAIT'
+-- * 'Graphics.GL.Tokens.GL_QUERY_BY_REGION_NO_WAIT'
+-- * 'Graphics.GL.Tokens.GL_QUERY_WAIT_INVERTED'
+-- * 'Graphics.GL.Tokens.GL_QUERY_NO_WAIT_INVERTED'
+-- * 'Graphics.GL.Tokens.GL_QUERY_BY_REGION_WAIT_INVERTED'
+-- * 'Graphics.GL.Tokens.GL_QUERY_BY_REGION_NO_WAIT_INVERTED'
+--
+-- === #ContextFlagMask# ContextFlagMask
+-- A bitwise combination of several of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_CONTEXT_FLAG_DEBUG_BIT' (alias: 'Graphics.GL.Tokens.GL_CONTEXT_FLAG_DEBUG_BIT_KHR')
+-- * 'Graphics.GL.Tokens.GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT'
+-- * 'Graphics.GL.Tokens.GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT' (alias: 'Graphics.GL.Tokens.GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB')
+-- * 'Graphics.GL.Tokens.GL_CONTEXT_FLAG_PROTECTED_CONTENT_BIT_EXT'
+-- * 'Graphics.GL.Tokens.GL_CONTEXT_FLAG_NO_ERROR_BIT' (alias: 'Graphics.GL.Tokens.GL_CONTEXT_FLAG_NO_ERROR_BIT_KHR')
+--
+-- === #ContextProfileMask# ContextProfileMask
+-- A bitwise combination of several of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_CONTEXT_COMPATIBILITY_PROFILE_BIT'
+-- * 'Graphics.GL.Tokens.GL_CONTEXT_CORE_PROFILE_BIT'
+--
+-- === #ConvolutionBorderModeEXT# ConvolutionBorderModeEXT
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_REDUCE' (alias: 'Graphics.GL.Tokens.GL_REDUCE_EXT')
+--
+-- === #ConvolutionParameterEXT# ConvolutionParameterEXT
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_CONVOLUTION_BORDER_MODE' (alias: 'Graphics.GL.Tokens.GL_CONVOLUTION_BORDER_MODE_EXT')
+-- * 'Graphics.GL.Tokens.GL_CONVOLUTION_FILTER_BIAS' (alias: 'Graphics.GL.Tokens.GL_CONVOLUTION_FILTER_BIAS_EXT')
+-- * 'Graphics.GL.Tokens.GL_CONVOLUTION_FILTER_SCALE' (alias: 'Graphics.GL.Tokens.GL_CONVOLUTION_FILTER_SCALE_EXT')
+--
+-- === #ConvolutionTarget# ConvolutionTarget
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_CONVOLUTION_1D'
+-- * 'Graphics.GL.Tokens.GL_CONVOLUTION_2D'
+--
+-- === #ConvolutionTargetEXT# ConvolutionTargetEXT
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_CONVOLUTION_1D' (alias: 'Graphics.GL.Tokens.GL_CONVOLUTION_1D_EXT')
+-- * 'Graphics.GL.Tokens.GL_CONVOLUTION_2D' (alias: 'Graphics.GL.Tokens.GL_CONVOLUTION_2D_EXT')
+--
+-- === #CopyBufferSubDataTarget# CopyBufferSubDataTarget
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_ARRAY_BUFFER'
+-- * 'Graphics.GL.Tokens.GL_ATOMIC_COUNTER_BUFFER'
+-- * 'Graphics.GL.Tokens.GL_COPY_READ_BUFFER'
+-- * 'Graphics.GL.Tokens.GL_COPY_WRITE_BUFFER'
+-- * 'Graphics.GL.Tokens.GL_DISPATCH_INDIRECT_BUFFER'
+-- * 'Graphics.GL.Tokens.GL_DRAW_INDIRECT_BUFFER'
+-- * 'Graphics.GL.Tokens.GL_ELEMENT_ARRAY_BUFFER'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_PACK_BUFFER'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_UNPACK_BUFFER'
+-- * 'Graphics.GL.Tokens.GL_QUERY_BUFFER'
+-- * 'Graphics.GL.Tokens.GL_SHADER_STORAGE_BUFFER'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_BUFFER'
+-- * 'Graphics.GL.Tokens.GL_TRANSFORM_FEEDBACK_BUFFER'
+-- * 'Graphics.GL.Tokens.GL_UNIFORM_BUFFER'
+--
+-- === #CopyImageSubDataTarget# CopyImageSubDataTarget
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_RENDERBUFFER'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_1D'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_2D'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_3D'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_RECTANGLE'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_CUBE_MAP'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_CUBE_MAP_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_1D_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_2D_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_2D_MULTISAMPLE'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_2D_MULTISAMPLE_ARRAY'
+--
+-- === #CullFaceMode# CullFaceMode
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_BACK'
+-- * 'Graphics.GL.Tokens.GL_FRONT'
+-- * 'Graphics.GL.Tokens.GL_FRONT_AND_BACK'
+--
+-- === #CullParameterEXT# CullParameterEXT
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_CULL_VERTEX_EYE_POSITION_EXT'
+-- * 'Graphics.GL.Tokens.GL_CULL_VERTEX_OBJECT_POSITION_EXT'
+--
+-- === #DataType# DataType
+-- There are no values defined for this enumeration group.
+--
+--
+-- === #DataTypeEXT# DataTypeEXT
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_SCALAR_EXT'
+-- * 'Graphics.GL.Tokens.GL_VECTOR_EXT'
+-- * 'Graphics.GL.Tokens.GL_MATRIX_EXT'
+--
+-- === #DebugSeverity# DebugSeverity
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_DEBUG_SEVERITY_LOW'
+-- * 'Graphics.GL.Tokens.GL_DEBUG_SEVERITY_MEDIUM'
+-- * 'Graphics.GL.Tokens.GL_DEBUG_SEVERITY_HIGH'
+-- * 'Graphics.GL.Tokens.GL_DEBUG_SEVERITY_NOTIFICATION'
+-- * 'Graphics.GL.Tokens.GL_DONT_CARE'
+--
+-- === #DebugSource# DebugSource
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_DEBUG_SOURCE_API'
+-- * 'Graphics.GL.Tokens.GL_DEBUG_SOURCE_WINDOW_SYSTEM'
+-- * 'Graphics.GL.Tokens.GL_DEBUG_SOURCE_SHADER_COMPILER'
+-- * 'Graphics.GL.Tokens.GL_DEBUG_SOURCE_THIRD_PARTY'
+-- * 'Graphics.GL.Tokens.GL_DEBUG_SOURCE_APPLICATION'
+-- * 'Graphics.GL.Tokens.GL_DEBUG_SOURCE_OTHER'
+-- * 'Graphics.GL.Tokens.GL_DONT_CARE'
+--
+-- === #DebugType# DebugType
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_DEBUG_TYPE_ERROR'
+-- * 'Graphics.GL.Tokens.GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR'
+-- * 'Graphics.GL.Tokens.GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR'
+-- * 'Graphics.GL.Tokens.GL_DEBUG_TYPE_PORTABILITY'
+-- * 'Graphics.GL.Tokens.GL_DEBUG_TYPE_PERFORMANCE'
+-- * 'Graphics.GL.Tokens.GL_DEBUG_TYPE_MARKER'
+-- * 'Graphics.GL.Tokens.GL_DEBUG_TYPE_PUSH_GROUP'
+-- * 'Graphics.GL.Tokens.GL_DEBUG_TYPE_POP_GROUP'
+-- * 'Graphics.GL.Tokens.GL_DEBUG_TYPE_OTHER'
+-- * 'Graphics.GL.Tokens.GL_DONT_CARE'
+--
+-- === #DepthFunction# DepthFunction
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_ALWAYS'
+-- * 'Graphics.GL.Tokens.GL_EQUAL'
+-- * 'Graphics.GL.Tokens.GL_GEQUAL'
+-- * 'Graphics.GL.Tokens.GL_GREATER'
+-- * 'Graphics.GL.Tokens.GL_LEQUAL'
+-- * 'Graphics.GL.Tokens.GL_LESS'
+-- * 'Graphics.GL.Tokens.GL_NEVER'
+-- * 'Graphics.GL.Tokens.GL_NOTEQUAL'
+--
+-- === #DrawBufferMode# DrawBufferMode
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_AUX0'
+-- * 'Graphics.GL.Tokens.GL_AUX1'
+-- * 'Graphics.GL.Tokens.GL_AUX2'
+-- * 'Graphics.GL.Tokens.GL_AUX3'
+-- * 'Graphics.GL.Tokens.GL_BACK'
+-- * 'Graphics.GL.Tokens.GL_BACK_LEFT'
+-- * 'Graphics.GL.Tokens.GL_BACK_RIGHT'
+-- * 'Graphics.GL.Tokens.GL_FRONT'
+-- * 'Graphics.GL.Tokens.GL_FRONT_AND_BACK'
+-- * 'Graphics.GL.Tokens.GL_FRONT_LEFT'
+-- * 'Graphics.GL.Tokens.GL_FRONT_RIGHT'
+-- * 'Graphics.GL.Tokens.GL_LEFT'
+-- * 'Graphics.GL.Tokens.GL_NONE' (alias: 'Graphics.GL.Tokens.GL_NONE_OES')
+-- * 'Graphics.GL.Tokens.GL_RIGHT'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT0'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT1'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT2'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT3'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT4'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT5'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT6'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT7'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT8'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT9'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT10'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT11'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT12'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT13'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT14'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT15'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT16'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT17'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT18'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT19'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT20'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT21'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT22'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT23'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT24'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT25'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT26'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT27'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT28'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT29'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT30'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT31'
+--
+-- === #DrawBufferModeATI# DrawBufferModeATI
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT0_NV'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT1_NV'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT2_NV'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT3_NV'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT4_NV'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT5_NV'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT6_NV'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT7_NV'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT8_NV'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT9_NV'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT10_NV'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT11_NV'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT12_NV'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT13_NV'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT14_NV'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT15_NV'
+--
+-- === #DrawElementsType# DrawElementsType
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_BYTE'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_SHORT'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT'
+--
+-- === #ElementPointerTypeATI# ElementPointerTypeATI
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_BYTE'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_SHORT'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT'
+--
+-- === #EnableCap# EnableCap
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_ALPHA_TEST'
+-- * 'Graphics.GL.Tokens.GL_ASYNC_DRAW_PIXELS_SGIX'
+-- * 'Graphics.GL.Tokens.GL_ASYNC_HISTOGRAM_SGIX'
+-- * 'Graphics.GL.Tokens.GL_ASYNC_READ_PIXELS_SGIX'
+-- * 'Graphics.GL.Tokens.GL_ASYNC_TEX_IMAGE_SGIX'
+-- * 'Graphics.GL.Tokens.GL_AUTO_NORMAL'
+-- * 'Graphics.GL.Tokens.GL_BLEND'
+-- * 'Graphics.GL.Tokens.GL_CALLIGRAPHIC_FRAGMENT_SGIX'
+-- * 'Graphics.GL.Tokens.GL_CLIP_DISTANCE0' (alias: 'Graphics.GL.Tokens.GL_CLIP_PLANE0')
+-- * 'Graphics.GL.Tokens.GL_CLIP_DISTANCE1' (alias: 'Graphics.GL.Tokens.GL_CLIP_PLANE1')
+-- * 'Graphics.GL.Tokens.GL_CLIP_DISTANCE2' (alias: 'Graphics.GL.Tokens.GL_CLIP_PLANE2')
+-- * 'Graphics.GL.Tokens.GL_CLIP_DISTANCE3' (alias: 'Graphics.GL.Tokens.GL_CLIP_PLANE3')
+-- * 'Graphics.GL.Tokens.GL_CLIP_DISTANCE4' (alias: 'Graphics.GL.Tokens.GL_CLIP_PLANE4')
+-- * 'Graphics.GL.Tokens.GL_CLIP_DISTANCE5' (alias: 'Graphics.GL.Tokens.GL_CLIP_PLANE5')
+-- * 'Graphics.GL.Tokens.GL_CLIP_DISTANCE6'
+-- * 'Graphics.GL.Tokens.GL_CLIP_DISTANCE7'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_COLOR_LOGIC_OP'
+-- * 'Graphics.GL.Tokens.GL_COLOR_MATERIAL'
+-- * 'Graphics.GL.Tokens.GL_COLOR_TABLE_SGI'
+-- * 'Graphics.GL.Tokens.GL_CONVOLUTION_1D_EXT'
+-- * 'Graphics.GL.Tokens.GL_CONVOLUTION_2D_EXT'
+-- * 'Graphics.GL.Tokens.GL_CULL_FACE'
+-- * 'Graphics.GL.Tokens.GL_DEBUG_OUTPUT'
+-- * 'Graphics.GL.Tokens.GL_DEBUG_OUTPUT_SYNCHRONOUS'
+-- * 'Graphics.GL.Tokens.GL_DEPTH_CLAMP'
+-- * 'Graphics.GL.Tokens.GL_DEPTH_TEST'
+-- * 'Graphics.GL.Tokens.GL_DITHER'
+-- * 'Graphics.GL.Tokens.GL_EDGE_FLAG_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_FOG'
+-- * 'Graphics.GL.Tokens.GL_FOG_OFFSET_SGIX'
+-- * 'Graphics.GL.Tokens.GL_FRAGMENT_COLOR_MATERIAL_SGIX'
+-- * 'Graphics.GL.Tokens.GL_FRAGMENT_LIGHT0_SGIX'
+-- * 'Graphics.GL.Tokens.GL_FRAGMENT_LIGHT1_SGIX'
+-- * 'Graphics.GL.Tokens.GL_FRAGMENT_LIGHT2_SGIX'
+-- * 'Graphics.GL.Tokens.GL_FRAGMENT_LIGHT3_SGIX'
+-- * 'Graphics.GL.Tokens.GL_FRAGMENT_LIGHT4_SGIX'
+-- * 'Graphics.GL.Tokens.GL_FRAGMENT_LIGHT5_SGIX'
+-- * 'Graphics.GL.Tokens.GL_FRAGMENT_LIGHT6_SGIX'
+-- * 'Graphics.GL.Tokens.GL_FRAGMENT_LIGHT7_SGIX'
+-- * 'Graphics.GL.Tokens.GL_FRAGMENT_LIGHTING_SGIX'
+-- * 'Graphics.GL.Tokens.GL_FRAMEBUFFER_SRGB'
+-- * 'Graphics.GL.Tokens.GL_FRAMEZOOM_SGIX'
+-- * 'Graphics.GL.Tokens.GL_HISTOGRAM_EXT'
+-- * 'Graphics.GL.Tokens.GL_INDEX_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_INDEX_LOGIC_OP'
+-- * 'Graphics.GL.Tokens.GL_INTERLACE_SGIX'
+-- * 'Graphics.GL.Tokens.GL_IR_INSTRUMENT1_SGIX'
+-- * 'Graphics.GL.Tokens.GL_LIGHT0'
+-- * 'Graphics.GL.Tokens.GL_LIGHT1'
+-- * 'Graphics.GL.Tokens.GL_LIGHT2'
+-- * 'Graphics.GL.Tokens.GL_LIGHT3'
+-- * 'Graphics.GL.Tokens.GL_LIGHT4'
+-- * 'Graphics.GL.Tokens.GL_LIGHT5'
+-- * 'Graphics.GL.Tokens.GL_LIGHT6'
+-- * 'Graphics.GL.Tokens.GL_LIGHT7'
+-- * 'Graphics.GL.Tokens.GL_LIGHTING'
+-- * 'Graphics.GL.Tokens.GL_LINE_SMOOTH'
+-- * 'Graphics.GL.Tokens.GL_LINE_STIPPLE'
+-- * 'Graphics.GL.Tokens.GL_MAP1_COLOR_4'
+-- * 'Graphics.GL.Tokens.GL_MAP1_INDEX'
+-- * 'Graphics.GL.Tokens.GL_MAP1_NORMAL'
+-- * 'Graphics.GL.Tokens.GL_MAP1_TEXTURE_COORD_1'
+-- * 'Graphics.GL.Tokens.GL_MAP1_TEXTURE_COORD_2'
+-- * 'Graphics.GL.Tokens.GL_MAP1_TEXTURE_COORD_3'
+-- * 'Graphics.GL.Tokens.GL_MAP1_TEXTURE_COORD_4'
+-- * 'Graphics.GL.Tokens.GL_MAP1_VERTEX_3'
+-- * 'Graphics.GL.Tokens.GL_MAP1_VERTEX_4'
+-- * 'Graphics.GL.Tokens.GL_MAP2_COLOR_4'
+-- * 'Graphics.GL.Tokens.GL_MAP2_INDEX'
+-- * 'Graphics.GL.Tokens.GL_MAP2_NORMAL'
+-- * 'Graphics.GL.Tokens.GL_MAP2_TEXTURE_COORD_1'
+-- * 'Graphics.GL.Tokens.GL_MAP2_TEXTURE_COORD_2'
+-- * 'Graphics.GL.Tokens.GL_MAP2_TEXTURE_COORD_3'
+-- * 'Graphics.GL.Tokens.GL_MAP2_TEXTURE_COORD_4'
+-- * 'Graphics.GL.Tokens.GL_MAP2_VERTEX_3'
+-- * 'Graphics.GL.Tokens.GL_MAP2_VERTEX_4'
+-- * 'Graphics.GL.Tokens.GL_MINMAX_EXT'
+-- * 'Graphics.GL.Tokens.GL_MULTISAMPLE' (alias: 'Graphics.GL.Tokens.GL_MULTISAMPLE_SGIS')
+-- * 'Graphics.GL.Tokens.GL_NORMALIZE'
+-- * 'Graphics.GL.Tokens.GL_NORMAL_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_TEXTURE_SGIS'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_TEX_GEN_SGIX'
+-- * 'Graphics.GL.Tokens.GL_POINT_SMOOTH'
+-- * 'Graphics.GL.Tokens.GL_POLYGON_OFFSET_FILL'
+-- * 'Graphics.GL.Tokens.GL_POLYGON_OFFSET_LINE'
+-- * 'Graphics.GL.Tokens.GL_POLYGON_OFFSET_POINT'
+-- * 'Graphics.GL.Tokens.GL_POLYGON_SMOOTH'
+-- * 'Graphics.GL.Tokens.GL_POLYGON_STIPPLE'
+-- * 'Graphics.GL.Tokens.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI'
+-- * 'Graphics.GL.Tokens.GL_POST_CONVOLUTION_COLOR_TABLE_SGI'
+-- * 'Graphics.GL.Tokens.GL_PRIMITIVE_RESTART'
+-- * 'Graphics.GL.Tokens.GL_PRIMITIVE_RESTART_FIXED_INDEX'
+-- * 'Graphics.GL.Tokens.GL_PROGRAM_POINT_SIZE'
+-- * 'Graphics.GL.Tokens.GL_RASTERIZER_DISCARD'
+-- * 'Graphics.GL.Tokens.GL_REFERENCE_PLANE_SGIX'
+-- * 'Graphics.GL.Tokens.GL_RESCALE_NORMAL_EXT'
+-- * 'Graphics.GL.Tokens.GL_SAMPLE_ALPHA_TO_COVERAGE' (alias: 'Graphics.GL.Tokens.GL_SAMPLE_ALPHA_TO_MASK_SGIS')
+-- * 'Graphics.GL.Tokens.GL_SAMPLE_ALPHA_TO_ONE' (alias: 'Graphics.GL.Tokens.GL_SAMPLE_ALPHA_TO_ONE_SGIS')
+-- * 'Graphics.GL.Tokens.GL_SAMPLE_COVERAGE' (alias: 'Graphics.GL.Tokens.GL_SAMPLE_MASK_SGIS')
+-- * 'Graphics.GL.Tokens.GL_SAMPLE_MASK'
+-- * 'Graphics.GL.Tokens.GL_SAMPLE_SHADING'
+-- * 'Graphics.GL.Tokens.GL_SCISSOR_TEST'
+-- * 'Graphics.GL.Tokens.GL_SEPARABLE_2D_EXT'
+-- * 'Graphics.GL.Tokens.GL_SHARED_TEXTURE_PALETTE_EXT'
+-- * 'Graphics.GL.Tokens.GL_SPRITE_SGIX'
+-- * 'Graphics.GL.Tokens.GL_STENCIL_TEST'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_1D'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_2D'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_3D_EXT'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_4D_SGIS'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_COLOR_TABLE_SGI'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_COORD_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_CUBE_MAP_SEAMLESS'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_GEN_Q'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_GEN_R'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_GEN_S'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_GEN_T'
+-- * 'Graphics.GL.Tokens.GL_VERTEX_ARRAY'
+--
+-- === #ErrorCode# ErrorCode
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_INVALID_ENUM'
+-- * 'Graphics.GL.Tokens.GL_INVALID_FRAMEBUFFER_OPERATION' (aliases: 'Graphics.GL.Tokens.GL_INVALID_FRAMEBUFFER_OPERATION_EXT', 'Graphics.GL.Tokens.GL_INVALID_FRAMEBUFFER_OPERATION_OES')
+-- * 'Graphics.GL.Tokens.GL_INVALID_OPERATION'
+-- * 'Graphics.GL.Tokens.GL_INVALID_VALUE'
+-- * 'Graphics.GL.Tokens.GL_NO_ERROR'
+-- * 'Graphics.GL.Tokens.GL_OUT_OF_MEMORY'
+-- * 'Graphics.GL.Tokens.GL_STACK_OVERFLOW'
+-- * 'Graphics.GL.Tokens.GL_STACK_UNDERFLOW'
+-- * 'Graphics.GL.Tokens.GL_TABLE_TOO_LARGE' (alias: 'Graphics.GL.Tokens.GL_TABLE_TOO_LARGE_EXT')
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_TOO_LARGE_EXT'
+--
+-- === #EvalMapsModeNV# EvalMapsModeNV
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_FILL_NV'
+--
+-- === #EvalTargetNV# EvalTargetNV
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_EVAL_2D_NV'
+-- * 'Graphics.GL.Tokens.GL_EVAL_TRIANGULAR_2D_NV'
+--
+-- === #ExternalHandleType# ExternalHandleType
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_HANDLE_TYPE_OPAQUE_FD_EXT'
+-- * 'Graphics.GL.Tokens.GL_HANDLE_TYPE_OPAQUE_WIN32_EXT'
+-- * 'Graphics.GL.Tokens.GL_HANDLE_TYPE_OPAQUE_WIN32_KMT_EXT'
+-- * 'Graphics.GL.Tokens.GL_HANDLE_TYPE_D3D12_TILEPOOL_EXT'
+-- * 'Graphics.GL.Tokens.GL_HANDLE_TYPE_D3D12_RESOURCE_EXT'
+-- * 'Graphics.GL.Tokens.GL_HANDLE_TYPE_D3D11_IMAGE_EXT'
+-- * 'Graphics.GL.Tokens.GL_HANDLE_TYPE_D3D11_IMAGE_KMT_EXT'
+-- * 'Graphics.GL.Tokens.GL_HANDLE_TYPE_D3D12_FENCE_EXT'
+--
+-- === #FeedBackToken# FeedBackToken
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_BITMAP_TOKEN'
+-- * 'Graphics.GL.Tokens.GL_COPY_PIXEL_TOKEN'
+-- * 'Graphics.GL.Tokens.GL_DRAW_PIXEL_TOKEN'
+-- * 'Graphics.GL.Tokens.GL_LINE_RESET_TOKEN'
+-- * 'Graphics.GL.Tokens.GL_LINE_TOKEN'
+-- * 'Graphics.GL.Tokens.GL_PASS_THROUGH_TOKEN'
+-- * 'Graphics.GL.Tokens.GL_POINT_TOKEN'
+-- * 'Graphics.GL.Tokens.GL_POLYGON_TOKEN'
+--
+-- === #FeedbackType# FeedbackType
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_2D'
+-- * 'Graphics.GL.Tokens.GL_3D'
+-- * 'Graphics.GL.Tokens.GL_3D_COLOR'
+-- * 'Graphics.GL.Tokens.GL_3D_COLOR_TEXTURE'
+-- * 'Graphics.GL.Tokens.GL_4D_COLOR_TEXTURE'
+--
+-- === #FenceConditionNV# FenceConditionNV
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_ALL_COMPLETED_NV'
+--
+-- === #FenceParameterNameNV# FenceParameterNameNV
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_FENCE_STATUS_NV'
+-- * 'Graphics.GL.Tokens.GL_FENCE_CONDITION_NV'
+--
+-- === #FfdMaskSGIX# FfdMaskSGIX
+-- There are no values defined for this enumeration group.
+--
+--
+-- === #FfdTargetSGIX# FfdTargetSGIX
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_GEOMETRY_DEFORMATION_SGIX'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_DEFORMATION_SGIX'
+--
+-- === #FogCoordinatePointerType# FogCoordinatePointerType
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_FLOAT'
+-- * 'Graphics.GL.Tokens.GL_DOUBLE'
+--
+-- === #FogMode# FogMode
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_EXP'
+-- * 'Graphics.GL.Tokens.GL_EXP2'
+-- * 'Graphics.GL.Tokens.GL_FOG_FUNC_SGIS'
+-- * 'Graphics.GL.Tokens.GL_LINEAR'
+--
+-- === #FogPName# FogPName
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_FOG_MODE'
+-- * 'Graphics.GL.Tokens.GL_FOG_DENSITY'
+-- * 'Graphics.GL.Tokens.GL_FOG_START'
+-- * 'Graphics.GL.Tokens.GL_FOG_END'
+-- * 'Graphics.GL.Tokens.GL_FOG_INDEX'
+-- * 'Graphics.GL.Tokens.GL_FOG_COORD_SRC'
+--
+-- === #FogParameter# FogParameter
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_FOG_COLOR'
+-- * 'Graphics.GL.Tokens.GL_FOG_DENSITY'
+-- * 'Graphics.GL.Tokens.GL_FOG_END'
+-- * 'Graphics.GL.Tokens.GL_FOG_INDEX'
+-- * 'Graphics.GL.Tokens.GL_FOG_MODE'
+-- * 'Graphics.GL.Tokens.GL_FOG_OFFSET_VALUE_SGIX'
+-- * 'Graphics.GL.Tokens.GL_FOG_START'
+--
+-- === #FogPointerTypeEXT# FogPointerTypeEXT
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_FLOAT'
+-- * 'Graphics.GL.Tokens.GL_DOUBLE'
+--
+-- === #FogPointerTypeIBM# FogPointerTypeIBM
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_FLOAT'
+-- * 'Graphics.GL.Tokens.GL_DOUBLE'
+--
+-- === #FragmentLightModelParameterSGIX# FragmentLightModelParameterSGIX
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX'
+-- * 'Graphics.GL.Tokens.GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX'
+-- * 'Graphics.GL.Tokens.GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX'
+-- * 'Graphics.GL.Tokens.GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX'
+--
+-- === #FragmentLightNameSGIX# FragmentLightNameSGIX
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_FRAGMENT_LIGHT0_SGIX'
+-- * 'Graphics.GL.Tokens.GL_FRAGMENT_LIGHT1_SGIX'
+-- * 'Graphics.GL.Tokens.GL_FRAGMENT_LIGHT2_SGIX'
+-- * 'Graphics.GL.Tokens.GL_FRAGMENT_LIGHT3_SGIX'
+-- * 'Graphics.GL.Tokens.GL_FRAGMENT_LIGHT4_SGIX'
+-- * 'Graphics.GL.Tokens.GL_FRAGMENT_LIGHT5_SGIX'
+-- * 'Graphics.GL.Tokens.GL_FRAGMENT_LIGHT6_SGIX'
+-- * 'Graphics.GL.Tokens.GL_FRAGMENT_LIGHT7_SGIX'
+--
+-- === #FragmentLightParameterSGIX# FragmentLightParameterSGIX
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_SPOT_EXPONENT'
+-- * 'Graphics.GL.Tokens.GL_SPOT_CUTOFF'
+-- * 'Graphics.GL.Tokens.GL_CONSTANT_ATTENUATION'
+-- * 'Graphics.GL.Tokens.GL_LINEAR_ATTENUATION'
+-- * 'Graphics.GL.Tokens.GL_QUADRATIC_ATTENUATION'
+-- * 'Graphics.GL.Tokens.GL_AMBIENT'
+-- * 'Graphics.GL.Tokens.GL_DIFFUSE'
+-- * 'Graphics.GL.Tokens.GL_SPECULAR'
+-- * 'Graphics.GL.Tokens.GL_POSITION'
+-- * 'Graphics.GL.Tokens.GL_SPOT_DIRECTION'
+--
+-- === #FragmentOpATI# FragmentOpATI
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_MOV_ATI'
+-- * 'Graphics.GL.Tokens.GL_ADD_ATI'
+-- * 'Graphics.GL.Tokens.GL_MUL_ATI'
+-- * 'Graphics.GL.Tokens.GL_SUB_ATI'
+-- * 'Graphics.GL.Tokens.GL_DOT3_ATI'
+-- * 'Graphics.GL.Tokens.GL_DOT4_ATI'
+-- * 'Graphics.GL.Tokens.GL_MAD_ATI'
+-- * 'Graphics.GL.Tokens.GL_LERP_ATI'
+-- * 'Graphics.GL.Tokens.GL_CND_ATI'
+-- * 'Graphics.GL.Tokens.GL_CND0_ATI'
+-- * 'Graphics.GL.Tokens.GL_DOT2_ADD_ATI'
+--
+-- === #FramebufferAttachment# FramebufferAttachment
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT0' (aliases: 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT0_EXT', 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT0_NV', 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT0_OES')
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT1' (aliases: 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT1_EXT', 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT1_NV')
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT2' (aliases: 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT2_EXT', 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT2_NV')
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT3' (aliases: 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT3_EXT', 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT3_NV')
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT4' (aliases: 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT4_EXT', 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT4_NV')
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT5' (aliases: 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT5_EXT', 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT5_NV')
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT6' (aliases: 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT6_EXT', 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT6_NV')
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT7' (aliases: 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT7_EXT', 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT7_NV')
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT8' (aliases: 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT8_EXT', 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT8_NV')
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT9' (aliases: 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT9_EXT', 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT9_NV')
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT10' (aliases: 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT10_EXT', 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT10_NV')
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT11' (aliases: 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT11_EXT', 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT11_NV')
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT12' (aliases: 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT12_EXT', 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT12_NV')
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT13' (aliases: 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT13_EXT', 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT13_NV')
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT14' (aliases: 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT14_EXT', 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT14_NV')
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT15' (aliases: 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT15_EXT', 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT15_NV')
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT16'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT17'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT18'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT19'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT20'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT21'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT22'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT23'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT24'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT25'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT26'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT27'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT28'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT29'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT30'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT31'
+-- * 'Graphics.GL.Tokens.GL_DEPTH_ATTACHMENT' (aliases: 'Graphics.GL.Tokens.GL_DEPTH_ATTACHMENT_EXT', 'Graphics.GL.Tokens.GL_DEPTH_ATTACHMENT_OES')
+-- * 'Graphics.GL.Tokens.GL_DEPTH_STENCIL_ATTACHMENT'
+-- * 'Graphics.GL.Tokens.GL_STENCIL_ATTACHMENT' (aliases: 'Graphics.GL.Tokens.GL_STENCIL_ATTACHMENT_EXT', 'Graphics.GL.Tokens.GL_STENCIL_ATTACHMENT_OES')
+--
+-- === #FramebufferAttachmentParameterName# FramebufferAttachmentParameterName
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE'
+-- * 'Graphics.GL.Tokens.GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE'
+-- * 'Graphics.GL.Tokens.GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE'
+-- * 'Graphics.GL.Tokens.GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE'
+-- * 'Graphics.GL.Tokens.GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE'
+-- * 'Graphics.GL.Tokens.GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE'
+-- * 'Graphics.GL.Tokens.GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE' (alias: 'Graphics.GL.Tokens.GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT')
+-- * 'Graphics.GL.Tokens.GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING' (alias: 'Graphics.GL.Tokens.GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT')
+-- * 'Graphics.GL.Tokens.GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME' (aliases: 'Graphics.GL.Tokens.GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT', 'Graphics.GL.Tokens.GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES')
+-- * 'Graphics.GL.Tokens.GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE' (aliases: 'Graphics.GL.Tokens.GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT', 'Graphics.GL.Tokens.GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES')
+-- * 'Graphics.GL.Tokens.GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL' (aliases: 'Graphics.GL.Tokens.GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT', 'Graphics.GL.Tokens.GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES')
+-- * 'Graphics.GL.Tokens.GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE' (aliases: 'Graphics.GL.Tokens.GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT', 'Graphics.GL.Tokens.GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES')
+-- * 'Graphics.GL.Tokens.GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT' (aliases: 'Graphics.GL.Tokens.GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES', 'Graphics.GL.Tokens.GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER', 'Graphics.GL.Tokens.GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT')
+-- * 'Graphics.GL.Tokens.GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR'
+-- * 'Graphics.GL.Tokens.GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR'
+-- * 'Graphics.GL.Tokens.GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT'
+-- * 'Graphics.GL.Tokens.GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SCALE_IMG'
+-- * 'Graphics.GL.Tokens.GL_FRAMEBUFFER_ATTACHMENT_LAYERED' (aliases: 'Graphics.GL.Tokens.GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB', 'Graphics.GL.Tokens.GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT', 'Graphics.GL.Tokens.GL_FRAMEBUFFER_ATTACHMENT_LAYERED_OES')
+--
+-- === #FramebufferFetchNoncoherent# FramebufferFetchNoncoherent
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_FRAMEBUFFER_FETCH_NONCOHERENT_QCOM'
+--
+-- === #FramebufferParameterName# FramebufferParameterName
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_FRAMEBUFFER_DEFAULT_WIDTH'
+-- * 'Graphics.GL.Tokens.GL_FRAMEBUFFER_DEFAULT_HEIGHT'
+-- * 'Graphics.GL.Tokens.GL_FRAMEBUFFER_DEFAULT_LAYERS'
+-- * 'Graphics.GL.Tokens.GL_FRAMEBUFFER_DEFAULT_SAMPLES'
+-- * 'Graphics.GL.Tokens.GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS'
+--
+-- === #FramebufferStatus# FramebufferStatus
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_FRAMEBUFFER_COMPLETE'
+-- * 'Graphics.GL.Tokens.GL_FRAMEBUFFER_UNDEFINED'
+-- * 'Graphics.GL.Tokens.GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT'
+-- * 'Graphics.GL.Tokens.GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT'
+-- * 'Graphics.GL.Tokens.GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER'
+-- * 'Graphics.GL.Tokens.GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER'
+-- * 'Graphics.GL.Tokens.GL_FRAMEBUFFER_UNSUPPORTED'
+-- * 'Graphics.GL.Tokens.GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE' (alias: 'Graphics.GL.Tokens.GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE')
+-- * 'Graphics.GL.Tokens.GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE' (alias: 'Graphics.GL.Tokens.GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE')
+-- * 'Graphics.GL.Tokens.GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS'
+--
+-- === #FramebufferTarget# FramebufferTarget
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_FRAMEBUFFER' (alias: 'Graphics.GL.Tokens.GL_FRAMEBUFFER_OES')
+-- * 'Graphics.GL.Tokens.GL_DRAW_FRAMEBUFFER'
+-- * 'Graphics.GL.Tokens.GL_READ_FRAMEBUFFER'
+--
+-- === #FrontFaceDirection# FrontFaceDirection
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_CCW'
+-- * 'Graphics.GL.Tokens.GL_CW'
+--
+-- === #GetColorTableParameterPNameSGI# GetColorTableParameterPNameSGI
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_COLOR_TABLE_BIAS' (alias: 'Graphics.GL.Tokens.GL_COLOR_TABLE_BIAS_SGI')
+-- * 'Graphics.GL.Tokens.GL_COLOR_TABLE_SCALE' (alias: 'Graphics.GL.Tokens.GL_COLOR_TABLE_SCALE_SGI')
+-- * 'Graphics.GL.Tokens.GL_COLOR_TABLE_FORMAT' (alias: 'Graphics.GL.Tokens.GL_COLOR_TABLE_FORMAT_SGI')
+-- * 'Graphics.GL.Tokens.GL_COLOR_TABLE_WIDTH' (alias: 'Graphics.GL.Tokens.GL_COLOR_TABLE_WIDTH_SGI')
+-- * 'Graphics.GL.Tokens.GL_COLOR_TABLE_RED_SIZE' (alias: 'Graphics.GL.Tokens.GL_COLOR_TABLE_RED_SIZE_SGI')
+-- * 'Graphics.GL.Tokens.GL_COLOR_TABLE_GREEN_SIZE' (alias: 'Graphics.GL.Tokens.GL_COLOR_TABLE_GREEN_SIZE_SGI')
+-- * 'Graphics.GL.Tokens.GL_COLOR_TABLE_BLUE_SIZE' (alias: 'Graphics.GL.Tokens.GL_COLOR_TABLE_BLUE_SIZE_SGI')
+-- * 'Graphics.GL.Tokens.GL_COLOR_TABLE_ALPHA_SIZE' (alias: 'Graphics.GL.Tokens.GL_COLOR_TABLE_ALPHA_SIZE_SGI')
+-- * 'Graphics.GL.Tokens.GL_COLOR_TABLE_LUMINANCE_SIZE' (alias: 'Graphics.GL.Tokens.GL_COLOR_TABLE_LUMINANCE_SIZE_SGI')
+-- * 'Graphics.GL.Tokens.GL_COLOR_TABLE_INTENSITY_SIZE' (alias: 'Graphics.GL.Tokens.GL_COLOR_TABLE_INTENSITY_SIZE_SGI')
+--
+-- === #GetConvolutionParameter# GetConvolutionParameter
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_CONVOLUTION_BORDER_MODE' (alias: 'Graphics.GL.Tokens.GL_CONVOLUTION_BORDER_MODE_EXT')
+-- * 'Graphics.GL.Tokens.GL_CONVOLUTION_BORDER_COLOR'
+-- * 'Graphics.GL.Tokens.GL_CONVOLUTION_FILTER_SCALE' (alias: 'Graphics.GL.Tokens.GL_CONVOLUTION_FILTER_SCALE_EXT')
+-- * 'Graphics.GL.Tokens.GL_CONVOLUTION_FILTER_BIAS' (alias: 'Graphics.GL.Tokens.GL_CONVOLUTION_FILTER_BIAS_EXT')
+-- * 'Graphics.GL.Tokens.GL_CONVOLUTION_FORMAT' (alias: 'Graphics.GL.Tokens.GL_CONVOLUTION_FORMAT_EXT')
+-- * 'Graphics.GL.Tokens.GL_CONVOLUTION_WIDTH' (alias: 'Graphics.GL.Tokens.GL_CONVOLUTION_WIDTH_EXT')
+-- * 'Graphics.GL.Tokens.GL_CONVOLUTION_HEIGHT' (alias: 'Graphics.GL.Tokens.GL_CONVOLUTION_HEIGHT_EXT')
+-- * 'Graphics.GL.Tokens.GL_MAX_CONVOLUTION_WIDTH' (alias: 'Graphics.GL.Tokens.GL_MAX_CONVOLUTION_WIDTH_EXT')
+-- * 'Graphics.GL.Tokens.GL_MAX_CONVOLUTION_HEIGHT' (alias: 'Graphics.GL.Tokens.GL_MAX_CONVOLUTION_HEIGHT_EXT')
+--
+-- === #GetFramebufferParameter# GetFramebufferParameter
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_FRAMEBUFFER_DEFAULT_WIDTH'
+-- * 'Graphics.GL.Tokens.GL_FRAMEBUFFER_DEFAULT_HEIGHT'
+-- * 'Graphics.GL.Tokens.GL_FRAMEBUFFER_DEFAULT_LAYERS'
+-- * 'Graphics.GL.Tokens.GL_FRAMEBUFFER_DEFAULT_SAMPLES'
+-- * 'Graphics.GL.Tokens.GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS'
+-- * 'Graphics.GL.Tokens.GL_DOUBLEBUFFER'
+-- * 'Graphics.GL.Tokens.GL_IMPLEMENTATION_COLOR_READ_FORMAT'
+-- * 'Graphics.GL.Tokens.GL_IMPLEMENTATION_COLOR_READ_TYPE'
+-- * 'Graphics.GL.Tokens.GL_SAMPLES'
+-- * 'Graphics.GL.Tokens.GL_SAMPLE_BUFFERS'
+-- * 'Graphics.GL.Tokens.GL_STEREO'
+--
+-- === #GetHistogramParameterPNameEXT# GetHistogramParameterPNameEXT
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_HISTOGRAM_WIDTH' (aliases: 'Graphics.GL.Tokens.GL_HISTOGRAM_WIDTH_EXT', 'Graphics.GL.Tokens.GL_HISTOGRAM_WIDTH_EXT')
+-- * 'Graphics.GL.Tokens.GL_HISTOGRAM_FORMAT' (aliases: 'Graphics.GL.Tokens.GL_HISTOGRAM_FORMAT_EXT', 'Graphics.GL.Tokens.GL_HISTOGRAM_FORMAT_EXT')
+-- * 'Graphics.GL.Tokens.GL_HISTOGRAM_RED_SIZE' (aliases: 'Graphics.GL.Tokens.GL_HISTOGRAM_RED_SIZE_EXT', 'Graphics.GL.Tokens.GL_HISTOGRAM_RED_SIZE_EXT')
+-- * 'Graphics.GL.Tokens.GL_HISTOGRAM_GREEN_SIZE' (aliases: 'Graphics.GL.Tokens.GL_HISTOGRAM_GREEN_SIZE_EXT', 'Graphics.GL.Tokens.GL_HISTOGRAM_GREEN_SIZE_EXT')
+-- * 'Graphics.GL.Tokens.GL_HISTOGRAM_BLUE_SIZE' (aliases: 'Graphics.GL.Tokens.GL_HISTOGRAM_BLUE_SIZE_EXT', 'Graphics.GL.Tokens.GL_HISTOGRAM_BLUE_SIZE_EXT')
+-- * 'Graphics.GL.Tokens.GL_HISTOGRAM_ALPHA_SIZE' (aliases: 'Graphics.GL.Tokens.GL_HISTOGRAM_ALPHA_SIZE_EXT', 'Graphics.GL.Tokens.GL_HISTOGRAM_ALPHA_SIZE_EXT')
+-- * 'Graphics.GL.Tokens.GL_HISTOGRAM_LUMINANCE_SIZE' (aliases: 'Graphics.GL.Tokens.GL_HISTOGRAM_LUMINANCE_SIZE_EXT', 'Graphics.GL.Tokens.GL_HISTOGRAM_LUMINANCE_SIZE_EXT')
+-- * 'Graphics.GL.Tokens.GL_HISTOGRAM_SINK' (aliases: 'Graphics.GL.Tokens.GL_HISTOGRAM_SINK_EXT', 'Graphics.GL.Tokens.GL_HISTOGRAM_SINK_EXT')
+--
+-- === #GetMapQuery# GetMapQuery
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_COEFF'
+-- * 'Graphics.GL.Tokens.GL_DOMAIN'
+-- * 'Graphics.GL.Tokens.GL_ORDER'
+--
+-- === #GetMinmaxParameterPNameEXT# GetMinmaxParameterPNameEXT
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_MINMAX_FORMAT' (aliases: 'Graphics.GL.Tokens.GL_MINMAX_FORMAT', 'Graphics.GL.Tokens.GL_MINMAX_FORMAT_EXT')
+-- * 'Graphics.GL.Tokens.GL_MINMAX_SINK' (aliases: 'Graphics.GL.Tokens.GL_MINMAX_SINK', 'Graphics.GL.Tokens.GL_MINMAX_SINK_EXT')
+-- * 'Graphics.GL.Tokens.GL_MINMAX_FORMAT' (aliases: 'Graphics.GL.Tokens.GL_MINMAX_FORMAT', 'Graphics.GL.Tokens.GL_MINMAX_FORMAT_EXT')
+-- * 'Graphics.GL.Tokens.GL_MINMAX_SINK' (aliases: 'Graphics.GL.Tokens.GL_MINMAX_SINK', 'Graphics.GL.Tokens.GL_MINMAX_SINK_EXT')
+--
+-- === #GetMultisamplePNameNV# GetMultisamplePNameNV
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_SAMPLE_LOCATION_ARB' (alias: 'Graphics.GL.Tokens.GL_SAMPLE_POSITION')
+-- * 'Graphics.GL.Tokens.GL_PROGRAMMABLE_SAMPLE_LOCATION_ARB'
+--
+-- === #GetPName# GetPName
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_ACCUM_ALPHA_BITS'
+-- * 'Graphics.GL.Tokens.GL_ACCUM_BLUE_BITS'
+-- * 'Graphics.GL.Tokens.GL_ACCUM_CLEAR_VALUE'
+-- * 'Graphics.GL.Tokens.GL_ACCUM_GREEN_BITS'
+-- * 'Graphics.GL.Tokens.GL_ACCUM_RED_BITS'
+-- * 'Graphics.GL.Tokens.GL_ACTIVE_TEXTURE'
+-- * 'Graphics.GL.Tokens.GL_ALIASED_LINE_WIDTH_RANGE'
+-- * 'Graphics.GL.Tokens.GL_ALIASED_POINT_SIZE_RANGE'
+-- * 'Graphics.GL.Tokens.GL_ALPHA_BIAS'
+-- * 'Graphics.GL.Tokens.GL_ALPHA_BITS'
+-- * 'Graphics.GL.Tokens.GL_ALPHA_SCALE'
+-- * 'Graphics.GL.Tokens.GL_ALPHA_TEST' (alias: 'Graphics.GL.Tokens.GL_ALPHA_TEST_QCOM')
+-- * 'Graphics.GL.Tokens.GL_ALPHA_TEST_FUNC' (alias: 'Graphics.GL.Tokens.GL_ALPHA_TEST_FUNC_QCOM')
+-- * 'Graphics.GL.Tokens.GL_ALPHA_TEST_REF' (alias: 'Graphics.GL.Tokens.GL_ALPHA_TEST_REF_QCOM')
+-- * 'Graphics.GL.Tokens.GL_ARRAY_BUFFER_BINDING'
+-- * 'Graphics.GL.Tokens.GL_ASYNC_DRAW_PIXELS_SGIX'
+-- * 'Graphics.GL.Tokens.GL_ASYNC_HISTOGRAM_SGIX'
+-- * 'Graphics.GL.Tokens.GL_ASYNC_MARKER_SGIX'
+-- * 'Graphics.GL.Tokens.GL_ASYNC_READ_PIXELS_SGIX'
+-- * 'Graphics.GL.Tokens.GL_ASYNC_TEX_IMAGE_SGIX'
+-- * 'Graphics.GL.Tokens.GL_ATTRIB_STACK_DEPTH'
+-- * 'Graphics.GL.Tokens.GL_AUTO_NORMAL'
+-- * 'Graphics.GL.Tokens.GL_AUX_BUFFERS'
+-- * 'Graphics.GL.Tokens.GL_BLEND'
+-- * 'Graphics.GL.Tokens.GL_BLEND_COLOR' (alias: 'Graphics.GL.Tokens.GL_BLEND_COLOR_EXT')
+-- * 'Graphics.GL.Tokens.GL_BLEND_DST'
+-- * 'Graphics.GL.Tokens.GL_BLEND_DST_ALPHA'
+-- * 'Graphics.GL.Tokens.GL_BLEND_DST_RGB'
+-- * 'Graphics.GL.Tokens.GL_BLEND_EQUATION_ALPHA'
+-- * 'Graphics.GL.Tokens.GL_BLEND_EQUATION_EXT' (alias: 'Graphics.GL.Tokens.GL_BLEND_EQUATION_RGB')
+-- * 'Graphics.GL.Tokens.GL_BLEND_SRC'
+-- * 'Graphics.GL.Tokens.GL_BLEND_SRC_ALPHA'
+-- * 'Graphics.GL.Tokens.GL_BLEND_SRC_RGB'
+-- * 'Graphics.GL.Tokens.GL_BLUE_BIAS'
+-- * 'Graphics.GL.Tokens.GL_BLUE_BITS'
+-- * 'Graphics.GL.Tokens.GL_BLUE_SCALE'
+-- * 'Graphics.GL.Tokens.GL_CALLIGRAPHIC_FRAGMENT_SGIX'
+-- * 'Graphics.GL.Tokens.GL_CLIENT_ATTRIB_STACK_DEPTH'
+-- * 'Graphics.GL.Tokens.GL_CLIP_PLANE0'
+-- * 'Graphics.GL.Tokens.GL_CLIP_PLANE1'
+-- * 'Graphics.GL.Tokens.GL_CLIP_PLANE2'
+-- * 'Graphics.GL.Tokens.GL_CLIP_PLANE3'
+-- * 'Graphics.GL.Tokens.GL_CLIP_PLANE4'
+-- * 'Graphics.GL.Tokens.GL_CLIP_PLANE5'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ARRAY_COUNT_EXT'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ARRAY_SIZE'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ARRAY_STRIDE'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ARRAY_TYPE'
+-- * 'Graphics.GL.Tokens.GL_COLOR_CLEAR_VALUE'
+-- * 'Graphics.GL.Tokens.GL_COLOR_LOGIC_OP'
+-- * 'Graphics.GL.Tokens.GL_COLOR_MATERIAL'
+-- * 'Graphics.GL.Tokens.GL_COLOR_MATERIAL_FACE'
+-- * 'Graphics.GL.Tokens.GL_COLOR_MATERIAL_PARAMETER'
+-- * 'Graphics.GL.Tokens.GL_COLOR_MATRIX_SGI'
+-- * 'Graphics.GL.Tokens.GL_COLOR_MATRIX_STACK_DEPTH_SGI'
+-- * 'Graphics.GL.Tokens.GL_COLOR_TABLE_SGI'
+-- * 'Graphics.GL.Tokens.GL_COLOR_WRITEMASK'
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_TEXTURE_FORMATS'
+-- * 'Graphics.GL.Tokens.GL_CONTEXT_FLAGS'
+-- * 'Graphics.GL.Tokens.GL_CONVOLUTION_1D_EXT'
+-- * 'Graphics.GL.Tokens.GL_CONVOLUTION_2D_EXT'
+-- * 'Graphics.GL.Tokens.GL_CONVOLUTION_HINT_SGIX'
+-- * 'Graphics.GL.Tokens.GL_CULL_FACE'
+-- * 'Graphics.GL.Tokens.GL_CULL_FACE_MODE'
+-- * 'Graphics.GL.Tokens.GL_CURRENT_COLOR'
+-- * 'Graphics.GL.Tokens.GL_CURRENT_INDEX'
+-- * 'Graphics.GL.Tokens.GL_CURRENT_NORMAL'
+-- * 'Graphics.GL.Tokens.GL_CURRENT_PROGRAM'
+-- * 'Graphics.GL.Tokens.GL_CURRENT_RASTER_COLOR'
+-- * 'Graphics.GL.Tokens.GL_CURRENT_RASTER_DISTANCE'
+-- * 'Graphics.GL.Tokens.GL_CURRENT_RASTER_INDEX'
+-- * 'Graphics.GL.Tokens.GL_CURRENT_RASTER_POSITION'
+-- * 'Graphics.GL.Tokens.GL_CURRENT_RASTER_POSITION_VALID'
+-- * 'Graphics.GL.Tokens.GL_CURRENT_RASTER_TEXTURE_COORDS'
+-- * 'Graphics.GL.Tokens.GL_CURRENT_TEXTURE_COORDS'
+-- * 'Graphics.GL.Tokens.GL_DEBUG_GROUP_STACK_DEPTH'
+-- * 'Graphics.GL.Tokens.GL_DEFORMATIONS_MASK_SGIX'
+-- * 'Graphics.GL.Tokens.GL_DEPTH_BIAS'
+-- * 'Graphics.GL.Tokens.GL_DEPTH_BITS'
+-- * 'Graphics.GL.Tokens.GL_DEPTH_CLEAR_VALUE'
+-- * 'Graphics.GL.Tokens.GL_DEPTH_FUNC'
+-- * 'Graphics.GL.Tokens.GL_DEPTH_RANGE'
+-- * 'Graphics.GL.Tokens.GL_DEPTH_SCALE'
+-- * 'Graphics.GL.Tokens.GL_DEPTH_TEST'
+-- * 'Graphics.GL.Tokens.GL_DEPTH_WRITEMASK'
+-- * 'Graphics.GL.Tokens.GL_DETAIL_TEXTURE_2D_BINDING_SGIS'
+-- * 'Graphics.GL.Tokens.GL_DEVICE_LUID_EXT'
+-- * 'Graphics.GL.Tokens.GL_DEVICE_NODE_MASK_EXT'
+-- * 'Graphics.GL.Tokens.GL_DEVICE_UUID_EXT'
+-- * 'Graphics.GL.Tokens.GL_DISPATCH_INDIRECT_BUFFER_BINDING'
+-- * 'Graphics.GL.Tokens.GL_DISTANCE_ATTENUATION_SGIS'
+-- * 'Graphics.GL.Tokens.GL_DITHER'
+-- * 'Graphics.GL.Tokens.GL_DOUBLEBUFFER'
+-- * 'Graphics.GL.Tokens.GL_DRAW_BUFFER' (alias: 'Graphics.GL.Tokens.GL_DRAW_BUFFER_EXT')
+-- * 'Graphics.GL.Tokens.GL_DRAW_FRAMEBUFFER_BINDING'
+-- * 'Graphics.GL.Tokens.GL_DRIVER_UUID_EXT'
+-- * 'Graphics.GL.Tokens.GL_EDGE_FLAG'
+-- * 'Graphics.GL.Tokens.GL_EDGE_FLAG_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_EDGE_FLAG_ARRAY_COUNT_EXT'
+-- * 'Graphics.GL.Tokens.GL_EDGE_FLAG_ARRAY_STRIDE'
+-- * 'Graphics.GL.Tokens.GL_ELEMENT_ARRAY_BUFFER_BINDING'
+-- * 'Graphics.GL.Tokens.GL_FEEDBACK_BUFFER_SIZE'
+-- * 'Graphics.GL.Tokens.GL_FEEDBACK_BUFFER_TYPE'
+-- * 'Graphics.GL.Tokens.GL_FOG'
+-- * 'Graphics.GL.Tokens.GL_FOG_COLOR'
+-- * 'Graphics.GL.Tokens.GL_FOG_DENSITY'
+-- * 'Graphics.GL.Tokens.GL_FOG_END'
+-- * 'Graphics.GL.Tokens.GL_FOG_FUNC_POINTS_SGIS'
+-- * 'Graphics.GL.Tokens.GL_FOG_HINT'
+-- * 'Graphics.GL.Tokens.GL_FOG_INDEX'
+-- * 'Graphics.GL.Tokens.GL_FOG_MODE'
+-- * 'Graphics.GL.Tokens.GL_FOG_OFFSET_SGIX'
+-- * 'Graphics.GL.Tokens.GL_FOG_OFFSET_VALUE_SGIX'
+-- * 'Graphics.GL.Tokens.GL_FOG_START'
+-- * 'Graphics.GL.Tokens.GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX'
+-- * 'Graphics.GL.Tokens.GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX'
+-- * 'Graphics.GL.Tokens.GL_FRAGMENT_COLOR_MATERIAL_SGIX'
+-- * 'Graphics.GL.Tokens.GL_FRAGMENT_LIGHT0_SGIX'
+-- * 'Graphics.GL.Tokens.GL_FRAGMENT_LIGHTING_SGIX'
+-- * 'Graphics.GL.Tokens.GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX'
+-- * 'Graphics.GL.Tokens.GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX'
+-- * 'Graphics.GL.Tokens.GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX'
+-- * 'Graphics.GL.Tokens.GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX'
+-- * 'Graphics.GL.Tokens.GL_FRAGMENT_SHADER_DERIVATIVE_HINT'
+-- * 'Graphics.GL.Tokens.GL_FRAMEZOOM_FACTOR_SGIX'
+-- * 'Graphics.GL.Tokens.GL_FRAMEZOOM_SGIX'
+-- * 'Graphics.GL.Tokens.GL_FRONT_FACE'
+-- * 'Graphics.GL.Tokens.GL_GENERATE_MIPMAP_HINT_SGIS'
+-- * 'Graphics.GL.Tokens.GL_GREEN_BIAS'
+-- * 'Graphics.GL.Tokens.GL_GREEN_BITS'
+-- * 'Graphics.GL.Tokens.GL_GREEN_SCALE'
+-- * 'Graphics.GL.Tokens.GL_HISTOGRAM_EXT'
+-- * 'Graphics.GL.Tokens.GL_IMPLEMENTATION_COLOR_READ_FORMAT'
+-- * 'Graphics.GL.Tokens.GL_IMPLEMENTATION_COLOR_READ_TYPE'
+-- * 'Graphics.GL.Tokens.GL_INDEX_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_INDEX_ARRAY_COUNT_EXT'
+-- * 'Graphics.GL.Tokens.GL_INDEX_ARRAY_STRIDE'
+-- * 'Graphics.GL.Tokens.GL_INDEX_ARRAY_TYPE'
+-- * 'Graphics.GL.Tokens.GL_INDEX_BITS'
+-- * 'Graphics.GL.Tokens.GL_INDEX_CLEAR_VALUE'
+-- * 'Graphics.GL.Tokens.GL_INDEX_LOGIC_OP' (alias: 'Graphics.GL.Tokens.GL_LOGIC_OP')
+-- * 'Graphics.GL.Tokens.GL_INDEX_MODE'
+-- * 'Graphics.GL.Tokens.GL_INDEX_OFFSET'
+-- * 'Graphics.GL.Tokens.GL_INDEX_SHIFT'
+-- * 'Graphics.GL.Tokens.GL_INDEX_WRITEMASK'
+-- * 'Graphics.GL.Tokens.GL_INSTRUMENT_MEASUREMENTS_SGIX'
+-- * 'Graphics.GL.Tokens.GL_INTERLACE_SGIX'
+-- * 'Graphics.GL.Tokens.GL_IR_INSTRUMENT1_SGIX'
+-- * 'Graphics.GL.Tokens.GL_LAYER_PROVOKING_VERTEX'
+-- * 'Graphics.GL.Tokens.GL_LIGHT0'
+-- * 'Graphics.GL.Tokens.GL_LIGHT1'
+-- * 'Graphics.GL.Tokens.GL_LIGHT2'
+-- * 'Graphics.GL.Tokens.GL_LIGHT3'
+-- * 'Graphics.GL.Tokens.GL_LIGHT4'
+-- * 'Graphics.GL.Tokens.GL_LIGHT5'
+-- * 'Graphics.GL.Tokens.GL_LIGHT6'
+-- * 'Graphics.GL.Tokens.GL_LIGHT7'
+-- * 'Graphics.GL.Tokens.GL_LIGHTING'
+-- * 'Graphics.GL.Tokens.GL_LIGHT_ENV_MODE_SGIX'
+-- * 'Graphics.GL.Tokens.GL_LIGHT_MODEL_AMBIENT'
+-- * 'Graphics.GL.Tokens.GL_LIGHT_MODEL_COLOR_CONTROL'
+-- * 'Graphics.GL.Tokens.GL_LIGHT_MODEL_LOCAL_VIEWER'
+-- * 'Graphics.GL.Tokens.GL_LIGHT_MODEL_TWO_SIDE'
+-- * 'Graphics.GL.Tokens.GL_LINE_SMOOTH'
+-- * 'Graphics.GL.Tokens.GL_LINE_SMOOTH_HINT'
+-- * 'Graphics.GL.Tokens.GL_LINE_STIPPLE'
+-- * 'Graphics.GL.Tokens.GL_LINE_STIPPLE_PATTERN'
+-- * 'Graphics.GL.Tokens.GL_LINE_STIPPLE_REPEAT'
+-- * 'Graphics.GL.Tokens.GL_LINE_WIDTH'
+-- * 'Graphics.GL.Tokens.GL_LINE_WIDTH_GRANULARITY' (alias: 'Graphics.GL.Tokens.GL_SMOOTH_LINE_WIDTH_GRANULARITY')
+-- * 'Graphics.GL.Tokens.GL_LINE_WIDTH_RANGE' (alias: 'Graphics.GL.Tokens.GL_SMOOTH_LINE_WIDTH_RANGE')
+-- * 'Graphics.GL.Tokens.GL_LIST_BASE'
+-- * 'Graphics.GL.Tokens.GL_LIST_INDEX'
+-- * 'Graphics.GL.Tokens.GL_LIST_MODE'
+-- * 'Graphics.GL.Tokens.GL_LOGIC_OP_MODE'
+-- * 'Graphics.GL.Tokens.GL_MAJOR_VERSION'
+-- * 'Graphics.GL.Tokens.GL_MAP1_COLOR_4'
+-- * 'Graphics.GL.Tokens.GL_MAP1_GRID_DOMAIN'
+-- * 'Graphics.GL.Tokens.GL_MAP1_GRID_SEGMENTS'
+-- * 'Graphics.GL.Tokens.GL_MAP1_INDEX'
+-- * 'Graphics.GL.Tokens.GL_MAP1_NORMAL'
+-- * 'Graphics.GL.Tokens.GL_MAP1_TEXTURE_COORD_1'
+-- * 'Graphics.GL.Tokens.GL_MAP1_TEXTURE_COORD_2'
+-- * 'Graphics.GL.Tokens.GL_MAP1_TEXTURE_COORD_3'
+-- * 'Graphics.GL.Tokens.GL_MAP1_TEXTURE_COORD_4'
+-- * 'Graphics.GL.Tokens.GL_MAP1_VERTEX_3'
+-- * 'Graphics.GL.Tokens.GL_MAP1_VERTEX_4'
+-- * 'Graphics.GL.Tokens.GL_MAP2_COLOR_4'
+-- * 'Graphics.GL.Tokens.GL_MAP2_GRID_DOMAIN'
+-- * 'Graphics.GL.Tokens.GL_MAP2_GRID_SEGMENTS'
+-- * 'Graphics.GL.Tokens.GL_MAP2_INDEX'
+-- * 'Graphics.GL.Tokens.GL_MAP2_NORMAL'
+-- * 'Graphics.GL.Tokens.GL_MAP2_TEXTURE_COORD_1'
+-- * 'Graphics.GL.Tokens.GL_MAP2_TEXTURE_COORD_2'
+-- * 'Graphics.GL.Tokens.GL_MAP2_TEXTURE_COORD_3'
+-- * 'Graphics.GL.Tokens.GL_MAP2_TEXTURE_COORD_4'
+-- * 'Graphics.GL.Tokens.GL_MAP2_VERTEX_3'
+-- * 'Graphics.GL.Tokens.GL_MAP2_VERTEX_4'
+-- * 'Graphics.GL.Tokens.GL_MAP_COLOR'
+-- * 'Graphics.GL.Tokens.GL_MAP_STENCIL'
+-- * 'Graphics.GL.Tokens.GL_MATRIX_MODE'
+-- * 'Graphics.GL.Tokens.GL_MAX_3D_TEXTURE_SIZE' (alias: 'Graphics.GL.Tokens.GL_MAX_3D_TEXTURE_SIZE_EXT')
+-- * 'Graphics.GL.Tokens.GL_MAX_4D_TEXTURE_SIZE_SGIS'
+-- * 'Graphics.GL.Tokens.GL_MAX_ACTIVE_LIGHTS_SGIX'
+-- * 'Graphics.GL.Tokens.GL_MAX_ARRAY_TEXTURE_LAYERS'
+-- * 'Graphics.GL.Tokens.GL_MAX_ASYNC_DRAW_PIXELS_SGIX'
+-- * 'Graphics.GL.Tokens.GL_MAX_ASYNC_HISTOGRAM_SGIX'
+-- * 'Graphics.GL.Tokens.GL_MAX_ASYNC_READ_PIXELS_SGIX'
+-- * 'Graphics.GL.Tokens.GL_MAX_ASYNC_TEX_IMAGE_SGIX'
+-- * 'Graphics.GL.Tokens.GL_MAX_ATTRIB_STACK_DEPTH'
+-- * 'Graphics.GL.Tokens.GL_MAX_CLIENT_ATTRIB_STACK_DEPTH'
+-- * 'Graphics.GL.Tokens.GL_MAX_CLIPMAP_DEPTH_SGIX'
+-- * 'Graphics.GL.Tokens.GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX'
+-- * 'Graphics.GL.Tokens.GL_MAX_CLIP_DISTANCES' (alias: 'Graphics.GL.Tokens.GL_MAX_CLIP_PLANES')
+-- * 'Graphics.GL.Tokens.GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI'
+-- * 'Graphics.GL.Tokens.GL_MAX_COLOR_TEXTURE_SAMPLES'
+-- * 'Graphics.GL.Tokens.GL_MAX_COMBINED_ATOMIC_COUNTERS'
+-- * 'Graphics.GL.Tokens.GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS'
+-- * 'Graphics.GL.Tokens.GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS'
+-- * 'Graphics.GL.Tokens.GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS'
+-- * 'Graphics.GL.Tokens.GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS'
+-- * 'Graphics.GL.Tokens.GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS'
+-- * 'Graphics.GL.Tokens.GL_MAX_COMBINED_UNIFORM_BLOCKS'
+-- * 'Graphics.GL.Tokens.GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS'
+-- * 'Graphics.GL.Tokens.GL_MAX_COMPUTE_ATOMIC_COUNTERS'
+-- * 'Graphics.GL.Tokens.GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS'
+-- * 'Graphics.GL.Tokens.GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS'
+-- * 'Graphics.GL.Tokens.GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS'
+-- * 'Graphics.GL.Tokens.GL_MAX_COMPUTE_UNIFORM_BLOCKS'
+-- * 'Graphics.GL.Tokens.GL_MAX_COMPUTE_UNIFORM_COMPONENTS'
+-- * 'Graphics.GL.Tokens.GL_MAX_COMPUTE_WORK_GROUP_COUNT'
+-- * 'Graphics.GL.Tokens.GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS'
+-- * 'Graphics.GL.Tokens.GL_MAX_COMPUTE_WORK_GROUP_SIZE'
+-- * 'Graphics.GL.Tokens.GL_MAX_CUBE_MAP_TEXTURE_SIZE'
+-- * 'Graphics.GL.Tokens.GL_MAX_DEBUG_GROUP_STACK_DEPTH'
+-- * 'Graphics.GL.Tokens.GL_MAX_DEPTH_TEXTURE_SAMPLES'
+-- * 'Graphics.GL.Tokens.GL_MAX_DRAW_BUFFERS'
+-- * 'Graphics.GL.Tokens.GL_MAX_DUAL_SOURCE_DRAW_BUFFERS'
+-- * 'Graphics.GL.Tokens.GL_MAX_ELEMENTS_INDICES'
+-- * 'Graphics.GL.Tokens.GL_MAX_ELEMENTS_VERTICES'
+-- * 'Graphics.GL.Tokens.GL_MAX_ELEMENT_INDEX'
+-- * 'Graphics.GL.Tokens.GL_MAX_EVAL_ORDER'
+-- * 'Graphics.GL.Tokens.GL_MAX_FOG_FUNC_POINTS_SGIS'
+-- * 'Graphics.GL.Tokens.GL_MAX_FRAGMENT_ATOMIC_COUNTERS'
+-- * 'Graphics.GL.Tokens.GL_MAX_FRAGMENT_INPUT_COMPONENTS'
+-- * 'Graphics.GL.Tokens.GL_MAX_FRAGMENT_LIGHTS_SGIX'
+-- * 'Graphics.GL.Tokens.GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS'
+-- * 'Graphics.GL.Tokens.GL_MAX_FRAGMENT_UNIFORM_BLOCKS'
+-- * 'Graphics.GL.Tokens.GL_MAX_FRAGMENT_UNIFORM_COMPONENTS'
+-- * 'Graphics.GL.Tokens.GL_MAX_FRAGMENT_UNIFORM_VECTORS'
+-- * 'Graphics.GL.Tokens.GL_MAX_FRAMEBUFFER_HEIGHT'
+-- * 'Graphics.GL.Tokens.GL_MAX_FRAMEBUFFER_LAYERS'
+-- * 'Graphics.GL.Tokens.GL_MAX_FRAMEBUFFER_SAMPLES'
+-- * 'Graphics.GL.Tokens.GL_MAX_FRAMEBUFFER_WIDTH'
+-- * 'Graphics.GL.Tokens.GL_MAX_FRAMEZOOM_FACTOR_SGIX'
+-- * 'Graphics.GL.Tokens.GL_MAX_GEOMETRY_ATOMIC_COUNTERS'
+-- * 'Graphics.GL.Tokens.GL_MAX_GEOMETRY_INPUT_COMPONENTS'
+-- * 'Graphics.GL.Tokens.GL_MAX_GEOMETRY_OUTPUT_COMPONENTS'
+-- * 'Graphics.GL.Tokens.GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS'
+-- * 'Graphics.GL.Tokens.GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS'
+-- * 'Graphics.GL.Tokens.GL_MAX_GEOMETRY_UNIFORM_BLOCKS'
+-- * 'Graphics.GL.Tokens.GL_MAX_GEOMETRY_UNIFORM_COMPONENTS'
+-- * 'Graphics.GL.Tokens.GL_MAX_INTEGER_SAMPLES'
+-- * 'Graphics.GL.Tokens.GL_MAX_LABEL_LENGTH'
+-- * 'Graphics.GL.Tokens.GL_MAX_LIGHTS'
+-- * 'Graphics.GL.Tokens.GL_MAX_LIST_NESTING'
+-- * 'Graphics.GL.Tokens.GL_MAX_MODELVIEW_STACK_DEPTH'
+-- * 'Graphics.GL.Tokens.GL_MAX_NAME_STACK_DEPTH'
+-- * 'Graphics.GL.Tokens.GL_MAX_PIXEL_MAP_TABLE'
+-- * 'Graphics.GL.Tokens.GL_MAX_PROGRAM_TEXEL_OFFSET'
+-- * 'Graphics.GL.Tokens.GL_MAX_PROJECTION_STACK_DEPTH'
+-- * 'Graphics.GL.Tokens.GL_MAX_RECTANGLE_TEXTURE_SIZE'
+-- * 'Graphics.GL.Tokens.GL_MAX_RENDERBUFFER_SIZE'
+-- * 'Graphics.GL.Tokens.GL_MAX_SAMPLE_MASK_WORDS'
+-- * 'Graphics.GL.Tokens.GL_MAX_SERVER_WAIT_TIMEOUT'
+-- * 'Graphics.GL.Tokens.GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS'
+-- * 'Graphics.GL.Tokens.GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS'
+-- * 'Graphics.GL.Tokens.GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS'
+-- * 'Graphics.GL.Tokens.GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS'
+-- * 'Graphics.GL.Tokens.GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS'
+-- * 'Graphics.GL.Tokens.GL_MAX_TEXTURE_BUFFER_SIZE'
+-- * 'Graphics.GL.Tokens.GL_MAX_TEXTURE_IMAGE_UNITS'
+-- * 'Graphics.GL.Tokens.GL_MAX_TEXTURE_LOD_BIAS'
+-- * 'Graphics.GL.Tokens.GL_MAX_TEXTURE_SIZE'
+-- * 'Graphics.GL.Tokens.GL_MAX_TEXTURE_STACK_DEPTH'
+-- * 'Graphics.GL.Tokens.GL_MAX_UNIFORM_BLOCK_SIZE'
+-- * 'Graphics.GL.Tokens.GL_MAX_UNIFORM_BUFFER_BINDINGS'
+-- * 'Graphics.GL.Tokens.GL_MAX_UNIFORM_LOCATIONS'
+-- * 'Graphics.GL.Tokens.GL_MAX_VARYING_COMPONENTS' (alias: 'Graphics.GL.Tokens.GL_MAX_VARYING_FLOATS')
+-- * 'Graphics.GL.Tokens.GL_MAX_VARYING_VECTORS'
+-- * 'Graphics.GL.Tokens.GL_MAX_VERTEX_ATOMIC_COUNTERS'
+-- * 'Graphics.GL.Tokens.GL_MAX_VERTEX_ATTRIBS'
+-- * 'Graphics.GL.Tokens.GL_MAX_VERTEX_ATTRIB_BINDINGS'
+-- * 'Graphics.GL.Tokens.GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET'
+-- * 'Graphics.GL.Tokens.GL_MAX_VERTEX_OUTPUT_COMPONENTS'
+-- * 'Graphics.GL.Tokens.GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS'
+-- * 'Graphics.GL.Tokens.GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS'
+-- * 'Graphics.GL.Tokens.GL_MAX_VERTEX_UNIFORM_BLOCKS'
+-- * 'Graphics.GL.Tokens.GL_MAX_VERTEX_UNIFORM_COMPONENTS'
+-- * 'Graphics.GL.Tokens.GL_MAX_VERTEX_UNIFORM_VECTORS'
+-- * 'Graphics.GL.Tokens.GL_MAX_VIEWPORTS'
+-- * 'Graphics.GL.Tokens.GL_MAX_VIEWPORT_DIMS'
+-- * 'Graphics.GL.Tokens.GL_MINMAX_EXT'
+-- * 'Graphics.GL.Tokens.GL_MINOR_VERSION'
+-- * 'Graphics.GL.Tokens.GL_MIN_MAP_BUFFER_ALIGNMENT'
+-- * 'Graphics.GL.Tokens.GL_MIN_PROGRAM_TEXEL_OFFSET'
+-- * 'Graphics.GL.Tokens.GL_MODELVIEW0_MATRIX_EXT' (alias: 'Graphics.GL.Tokens.GL_MODELVIEW_MATRIX')
+-- * 'Graphics.GL.Tokens.GL_MODELVIEW0_STACK_DEPTH_EXT' (alias: 'Graphics.GL.Tokens.GL_MODELVIEW_STACK_DEPTH')
+-- * 'Graphics.GL.Tokens.GL_MULTISAMPLE_SGIS'
+-- * 'Graphics.GL.Tokens.GL_NAME_STACK_DEPTH'
+-- * 'Graphics.GL.Tokens.GL_NORMALIZE'
+-- * 'Graphics.GL.Tokens.GL_NORMAL_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_NORMAL_ARRAY_COUNT_EXT'
+-- * 'Graphics.GL.Tokens.GL_NORMAL_ARRAY_STRIDE'
+-- * 'Graphics.GL.Tokens.GL_NORMAL_ARRAY_TYPE'
+-- * 'Graphics.GL.Tokens.GL_NUM_COMPRESSED_TEXTURE_FORMATS'
+-- * 'Graphics.GL.Tokens.GL_NUM_DEVICE_UUIDS_EXT'
+-- * 'Graphics.GL.Tokens.GL_NUM_EXTENSIONS'
+-- * 'Graphics.GL.Tokens.GL_NUM_PROGRAM_BINARY_FORMATS'
+-- * 'Graphics.GL.Tokens.GL_NUM_SHADER_BINARY_FORMATS'
+-- * 'Graphics.GL.Tokens.GL_PACK_ALIGNMENT'
+-- * 'Graphics.GL.Tokens.GL_PACK_CMYK_HINT_EXT'
+-- * 'Graphics.GL.Tokens.GL_PACK_IMAGE_DEPTH_SGIS'
+-- * 'Graphics.GL.Tokens.GL_PACK_IMAGE_HEIGHT' (alias: 'Graphics.GL.Tokens.GL_PACK_IMAGE_HEIGHT_EXT')
+-- * 'Graphics.GL.Tokens.GL_PACK_LSB_FIRST'
+-- * 'Graphics.GL.Tokens.GL_PACK_RESAMPLE_SGIX'
+-- * 'Graphics.GL.Tokens.GL_PACK_ROW_LENGTH'
+-- * 'Graphics.GL.Tokens.GL_PACK_SKIP_IMAGES' (alias: 'Graphics.GL.Tokens.GL_PACK_SKIP_IMAGES_EXT')
+-- * 'Graphics.GL.Tokens.GL_PACK_SKIP_PIXELS'
+-- * 'Graphics.GL.Tokens.GL_PACK_SKIP_ROWS'
+-- * 'Graphics.GL.Tokens.GL_PACK_SKIP_VOLUMES_SGIS'
+-- * 'Graphics.GL.Tokens.GL_PACK_SUBSAMPLE_RATE_SGIX'
+-- * 'Graphics.GL.Tokens.GL_PACK_SWAP_BYTES'
+-- * 'Graphics.GL.Tokens.GL_PERSPECTIVE_CORRECTION_HINT'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_MAP_A_TO_A_SIZE'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_MAP_B_TO_B_SIZE'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_MAP_G_TO_G_SIZE'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_MAP_I_TO_A_SIZE'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_MAP_I_TO_B_SIZE'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_MAP_I_TO_G_SIZE'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_MAP_I_TO_I_SIZE'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_MAP_I_TO_R_SIZE'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_MAP_R_TO_R_SIZE'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_MAP_S_TO_S_SIZE'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_PACK_BUFFER_BINDING'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_TEXTURE_SGIS'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_TEX_GEN_MODE_SGIX'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_TEX_GEN_SGIX'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_TILE_CACHE_INCREMENT_SGIX'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_TILE_CACHE_SIZE_SGIX'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_TILE_GRID_DEPTH_SGIX'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_TILE_GRID_HEIGHT_SGIX'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_TILE_GRID_WIDTH_SGIX'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_TILE_HEIGHT_SGIX'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_TILE_WIDTH_SGIX'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_UNPACK_BUFFER_BINDING'
+-- * 'Graphics.GL.Tokens.GL_POINT_FADE_THRESHOLD_SIZE' (alias: 'Graphics.GL.Tokens.GL_POINT_FADE_THRESHOLD_SIZE_SGIS')
+-- * 'Graphics.GL.Tokens.GL_POINT_SIZE'
+-- * 'Graphics.GL.Tokens.GL_POINT_SIZE_GRANULARITY' (alias: 'Graphics.GL.Tokens.GL_SMOOTH_POINT_SIZE_GRANULARITY')
+-- * 'Graphics.GL.Tokens.GL_POINT_SIZE_MAX_SGIS'
+-- * 'Graphics.GL.Tokens.GL_POINT_SIZE_MIN_SGIS'
+-- * 'Graphics.GL.Tokens.GL_POINT_SIZE_RANGE' (alias: 'Graphics.GL.Tokens.GL_SMOOTH_POINT_SIZE_RANGE')
+-- * 'Graphics.GL.Tokens.GL_POINT_SMOOTH'
+-- * 'Graphics.GL.Tokens.GL_POINT_SMOOTH_HINT'
+-- * 'Graphics.GL.Tokens.GL_POLYGON_MODE'
+-- * 'Graphics.GL.Tokens.GL_POLYGON_OFFSET_BIAS_EXT'
+-- * 'Graphics.GL.Tokens.GL_POLYGON_OFFSET_FACTOR'
+-- * 'Graphics.GL.Tokens.GL_POLYGON_OFFSET_FILL'
+-- * 'Graphics.GL.Tokens.GL_POLYGON_OFFSET_LINE'
+-- * 'Graphics.GL.Tokens.GL_POLYGON_OFFSET_POINT'
+-- * 'Graphics.GL.Tokens.GL_POLYGON_OFFSET_UNITS'
+-- * 'Graphics.GL.Tokens.GL_POLYGON_SMOOTH'
+-- * 'Graphics.GL.Tokens.GL_POLYGON_SMOOTH_HINT'
+-- * 'Graphics.GL.Tokens.GL_POLYGON_STIPPLE'
+-- * 'Graphics.GL.Tokens.GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI'
+-- * 'Graphics.GL.Tokens.GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI'
+-- * 'Graphics.GL.Tokens.GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI'
+-- * 'Graphics.GL.Tokens.GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI'
+-- * 'Graphics.GL.Tokens.GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI'
+-- * 'Graphics.GL.Tokens.GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI'
+-- * 'Graphics.GL.Tokens.GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI'
+-- * 'Graphics.GL.Tokens.GL_POST_COLOR_MATRIX_RED_BIAS_SGI'
+-- * 'Graphics.GL.Tokens.GL_POST_COLOR_MATRIX_RED_SCALE_SGI'
+-- * 'Graphics.GL.Tokens.GL_POST_CONVOLUTION_ALPHA_BIAS_EXT'
+-- * 'Graphics.GL.Tokens.GL_POST_CONVOLUTION_ALPHA_SCALE_EXT'
+-- * 'Graphics.GL.Tokens.GL_POST_CONVOLUTION_BLUE_BIAS_EXT'
+-- * 'Graphics.GL.Tokens.GL_POST_CONVOLUTION_BLUE_SCALE_EXT'
+-- * 'Graphics.GL.Tokens.GL_POST_CONVOLUTION_COLOR_TABLE_SGI'
+-- * 'Graphics.GL.Tokens.GL_POST_CONVOLUTION_GREEN_BIAS_EXT'
+-- * 'Graphics.GL.Tokens.GL_POST_CONVOLUTION_GREEN_SCALE_EXT'
+-- * 'Graphics.GL.Tokens.GL_POST_CONVOLUTION_RED_BIAS_EXT'
+-- * 'Graphics.GL.Tokens.GL_POST_CONVOLUTION_RED_SCALE_EXT'
+-- * 'Graphics.GL.Tokens.GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX'
+-- * 'Graphics.GL.Tokens.GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX'
+-- * 'Graphics.GL.Tokens.GL_PRIMITIVE_RESTART_INDEX'
+-- * 'Graphics.GL.Tokens.GL_PROGRAM_BINARY_FORMATS'
+-- * 'Graphics.GL.Tokens.GL_PROGRAM_PIPELINE_BINDING'
+-- * 'Graphics.GL.Tokens.GL_PROGRAM_POINT_SIZE'
+-- * 'Graphics.GL.Tokens.GL_PROJECTION_MATRIX'
+-- * 'Graphics.GL.Tokens.GL_PROJECTION_STACK_DEPTH'
+-- * 'Graphics.GL.Tokens.GL_PROVOKING_VERTEX'
+-- * 'Graphics.GL.Tokens.GL_READ_BUFFER' (aliases: 'Graphics.GL.Tokens.GL_READ_BUFFER_EXT', 'Graphics.GL.Tokens.GL_READ_BUFFER_NV')
+-- * 'Graphics.GL.Tokens.GL_READ_FRAMEBUFFER_BINDING'
+-- * 'Graphics.GL.Tokens.GL_RED_BIAS'
+-- * 'Graphics.GL.Tokens.GL_RED_BITS'
+-- * 'Graphics.GL.Tokens.GL_RED_SCALE'
+-- * 'Graphics.GL.Tokens.GL_REFERENCE_PLANE_EQUATION_SGIX'
+-- * 'Graphics.GL.Tokens.GL_REFERENCE_PLANE_SGIX'
+-- * 'Graphics.GL.Tokens.GL_RENDERBUFFER_BINDING'
+-- * 'Graphics.GL.Tokens.GL_RENDER_MODE'
+-- * 'Graphics.GL.Tokens.GL_RESCALE_NORMAL_EXT'
+-- * 'Graphics.GL.Tokens.GL_RGBA_MODE'
+-- * 'Graphics.GL.Tokens.GL_SAMPLER_BINDING'
+-- * 'Graphics.GL.Tokens.GL_SAMPLES' (alias: 'Graphics.GL.Tokens.GL_SAMPLES_SGIS')
+-- * 'Graphics.GL.Tokens.GL_SAMPLE_ALPHA_TO_MASK_SGIS'
+-- * 'Graphics.GL.Tokens.GL_SAMPLE_ALPHA_TO_ONE_SGIS'
+-- * 'Graphics.GL.Tokens.GL_SAMPLE_BUFFERS' (alias: 'Graphics.GL.Tokens.GL_SAMPLE_BUFFERS_SGIS')
+-- * 'Graphics.GL.Tokens.GL_SAMPLE_COVERAGE_INVERT' (alias: 'Graphics.GL.Tokens.GL_SAMPLE_MASK_INVERT_SGIS')
+-- * 'Graphics.GL.Tokens.GL_SAMPLE_COVERAGE_VALUE' (alias: 'Graphics.GL.Tokens.GL_SAMPLE_MASK_VALUE_SGIS')
+-- * 'Graphics.GL.Tokens.GL_SAMPLE_MASK_SGIS'
+-- * 'Graphics.GL.Tokens.GL_SAMPLE_PATTERN_SGIS'
+-- * 'Graphics.GL.Tokens.GL_SCISSOR_BOX'
+-- * 'Graphics.GL.Tokens.GL_SCISSOR_TEST'
+-- * 'Graphics.GL.Tokens.GL_SELECTION_BUFFER_SIZE'
+-- * 'Graphics.GL.Tokens.GL_SEPARABLE_2D_EXT'
+-- * 'Graphics.GL.Tokens.GL_SHADER_COMPILER'
+-- * 'Graphics.GL.Tokens.GL_SHADER_STORAGE_BUFFER_BINDING'
+-- * 'Graphics.GL.Tokens.GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT'
+-- * 'Graphics.GL.Tokens.GL_SHADER_STORAGE_BUFFER_SIZE'
+-- * 'Graphics.GL.Tokens.GL_SHADER_STORAGE_BUFFER_START'
+-- * 'Graphics.GL.Tokens.GL_SHADE_MODEL'
+-- * 'Graphics.GL.Tokens.GL_SHARED_TEXTURE_PALETTE_EXT'
+-- * 'Graphics.GL.Tokens.GL_SPRITE_AXIS_SGIX'
+-- * 'Graphics.GL.Tokens.GL_SPRITE_MODE_SGIX'
+-- * 'Graphics.GL.Tokens.GL_SPRITE_SGIX'
+-- * 'Graphics.GL.Tokens.GL_SPRITE_TRANSLATION_SGIX'
+-- * 'Graphics.GL.Tokens.GL_STENCIL_BACK_FAIL'
+-- * 'Graphics.GL.Tokens.GL_STENCIL_BACK_FUNC'
+-- * 'Graphics.GL.Tokens.GL_STENCIL_BACK_PASS_DEPTH_FAIL'
+-- * 'Graphics.GL.Tokens.GL_STENCIL_BACK_PASS_DEPTH_PASS'
+-- * 'Graphics.GL.Tokens.GL_STENCIL_BACK_REF'
+-- * 'Graphics.GL.Tokens.GL_STENCIL_BACK_VALUE_MASK'
+-- * 'Graphics.GL.Tokens.GL_STENCIL_BACK_WRITEMASK'
+-- * 'Graphics.GL.Tokens.GL_STENCIL_BITS'
+-- * 'Graphics.GL.Tokens.GL_STENCIL_CLEAR_VALUE'
+-- * 'Graphics.GL.Tokens.GL_STENCIL_FAIL'
+-- * 'Graphics.GL.Tokens.GL_STENCIL_FUNC'
+-- * 'Graphics.GL.Tokens.GL_STENCIL_PASS_DEPTH_FAIL'
+-- * 'Graphics.GL.Tokens.GL_STENCIL_PASS_DEPTH_PASS'
+-- * 'Graphics.GL.Tokens.GL_STENCIL_REF'
+-- * 'Graphics.GL.Tokens.GL_STENCIL_TEST'
+-- * 'Graphics.GL.Tokens.GL_STENCIL_VALUE_MASK'
+-- * 'Graphics.GL.Tokens.GL_STENCIL_WRITEMASK'
+-- * 'Graphics.GL.Tokens.GL_STEREO'
+-- * 'Graphics.GL.Tokens.GL_SUBPIXEL_BITS'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_1D'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_2D'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_3D_BINDING_EXT' (alias: 'Graphics.GL.Tokens.GL_TEXTURE_BINDING_3D')
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_3D_EXT'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_4D_BINDING_SGIS'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_4D_SGIS'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_BINDING_1D'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_BINDING_1D_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_BINDING_2D'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_BINDING_2D_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_BINDING_2D_MULTISAMPLE'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_BINDING_BUFFER'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_BINDING_CUBE_MAP'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_BINDING_RECTANGLE'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_COLOR_TABLE_SGI'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_COMPRESSION_HINT'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_COORD_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_COORD_ARRAY_COUNT_EXT'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_COORD_ARRAY_SIZE'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_COORD_ARRAY_STRIDE'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_COORD_ARRAY_TYPE'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_GEN_Q'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_GEN_R'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_GEN_S'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_GEN_T'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_MATRIX'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_STACK_DEPTH'
+-- * 'Graphics.GL.Tokens.GL_TIMESTAMP'
+-- * 'Graphics.GL.Tokens.GL_TRANSFORM_FEEDBACK_BUFFER_BINDING'
+-- * 'Graphics.GL.Tokens.GL_TRANSFORM_FEEDBACK_BUFFER_SIZE'
+-- * 'Graphics.GL.Tokens.GL_TRANSFORM_FEEDBACK_BUFFER_START'
+-- * 'Graphics.GL.Tokens.GL_UNIFORM_BUFFER_BINDING'
+-- * 'Graphics.GL.Tokens.GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT'
+-- * 'Graphics.GL.Tokens.GL_UNIFORM_BUFFER_SIZE'
+-- * 'Graphics.GL.Tokens.GL_UNIFORM_BUFFER_START'
+-- * 'Graphics.GL.Tokens.GL_UNPACK_ALIGNMENT'
+-- * 'Graphics.GL.Tokens.GL_UNPACK_CMYK_HINT_EXT'
+-- * 'Graphics.GL.Tokens.GL_UNPACK_IMAGE_DEPTH_SGIS'
+-- * 'Graphics.GL.Tokens.GL_UNPACK_IMAGE_HEIGHT' (alias: 'Graphics.GL.Tokens.GL_UNPACK_IMAGE_HEIGHT_EXT')
+-- * 'Graphics.GL.Tokens.GL_UNPACK_LSB_FIRST'
+-- * 'Graphics.GL.Tokens.GL_UNPACK_RESAMPLE_SGIX'
+-- * 'Graphics.GL.Tokens.GL_UNPACK_ROW_LENGTH'
+-- * 'Graphics.GL.Tokens.GL_UNPACK_SKIP_IMAGES' (alias: 'Graphics.GL.Tokens.GL_UNPACK_SKIP_IMAGES_EXT')
+-- * 'Graphics.GL.Tokens.GL_UNPACK_SKIP_PIXELS'
+-- * 'Graphics.GL.Tokens.GL_UNPACK_SKIP_ROWS'
+-- * 'Graphics.GL.Tokens.GL_UNPACK_SKIP_VOLUMES_SGIS'
+-- * 'Graphics.GL.Tokens.GL_UNPACK_SUBSAMPLE_RATE_SGIX'
+-- * 'Graphics.GL.Tokens.GL_UNPACK_SWAP_BYTES'
+-- * 'Graphics.GL.Tokens.GL_VERTEX_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_VERTEX_ARRAY_BINDING'
+-- * 'Graphics.GL.Tokens.GL_VERTEX_ARRAY_COUNT_EXT'
+-- * 'Graphics.GL.Tokens.GL_VERTEX_ARRAY_SIZE'
+-- * 'Graphics.GL.Tokens.GL_VERTEX_ARRAY_STRIDE'
+-- * 'Graphics.GL.Tokens.GL_VERTEX_ARRAY_TYPE'
+-- * 'Graphics.GL.Tokens.GL_VERTEX_BINDING_DIVISOR'
+-- * 'Graphics.GL.Tokens.GL_VERTEX_BINDING_OFFSET'
+-- * 'Graphics.GL.Tokens.GL_VERTEX_BINDING_STRIDE'
+-- * 'Graphics.GL.Tokens.GL_VERTEX_PRECLIP_HINT_SGIX'
+-- * 'Graphics.GL.Tokens.GL_VERTEX_PRECLIP_SGIX'
+-- * 'Graphics.GL.Tokens.GL_VIEWPORT'
+-- * 'Graphics.GL.Tokens.GL_VIEWPORT_BOUNDS_RANGE'
+-- * 'Graphics.GL.Tokens.GL_VIEWPORT_INDEX_PROVOKING_VERTEX'
+-- * 'Graphics.GL.Tokens.GL_VIEWPORT_SUBPIXEL_BITS'
+-- * 'Graphics.GL.Tokens.GL_ZOOM_X'
+-- * 'Graphics.GL.Tokens.GL_ZOOM_Y'
+--
+-- === #GetPixelMap# GetPixelMap
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_PIXEL_MAP_A_TO_A'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_MAP_B_TO_B'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_MAP_G_TO_G'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_MAP_I_TO_A'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_MAP_I_TO_B'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_MAP_I_TO_G'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_MAP_I_TO_I'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_MAP_I_TO_R'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_MAP_R_TO_R'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_MAP_S_TO_S'
+--
+-- === #GetPointervPName# GetPointervPName
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_COLOR_ARRAY_POINTER' (alias: 'Graphics.GL.Tokens.GL_COLOR_ARRAY_POINTER_EXT')
+-- * 'Graphics.GL.Tokens.GL_EDGE_FLAG_ARRAY_POINTER' (alias: 'Graphics.GL.Tokens.GL_EDGE_FLAG_ARRAY_POINTER_EXT')
+-- * 'Graphics.GL.Tokens.GL_FEEDBACK_BUFFER_POINTER'
+-- * 'Graphics.GL.Tokens.GL_INDEX_ARRAY_POINTER' (alias: 'Graphics.GL.Tokens.GL_INDEX_ARRAY_POINTER_EXT')
+-- * 'Graphics.GL.Tokens.GL_INSTRUMENT_BUFFER_POINTER_SGIX'
+-- * 'Graphics.GL.Tokens.GL_NORMAL_ARRAY_POINTER' (alias: 'Graphics.GL.Tokens.GL_NORMAL_ARRAY_POINTER_EXT')
+-- * 'Graphics.GL.Tokens.GL_SELECTION_BUFFER_POINTER'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_COORD_ARRAY_POINTER' (alias: 'Graphics.GL.Tokens.GL_TEXTURE_COORD_ARRAY_POINTER_EXT')
+-- * 'Graphics.GL.Tokens.GL_VERTEX_ARRAY_POINTER' (alias: 'Graphics.GL.Tokens.GL_VERTEX_ARRAY_POINTER_EXT')
+-- * 'Graphics.GL.Tokens.GL_DEBUG_CALLBACK_FUNCTION'
+-- * 'Graphics.GL.Tokens.GL_DEBUG_CALLBACK_USER_PARAM'
+--
+-- === #GetTexBumpParameterATI# GetTexBumpParameterATI
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_BUMP_ROT_MATRIX_ATI'
+-- * 'Graphics.GL.Tokens.GL_BUMP_ROT_MATRIX_SIZE_ATI'
+-- * 'Graphics.GL.Tokens.GL_BUMP_NUM_TEX_UNITS_ATI'
+-- * 'Graphics.GL.Tokens.GL_BUMP_TEX_UNITS_ATI'
+--
+-- === #GetTextureParameter# GetTextureParameter
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS'
+-- * 'Graphics.GL.Tokens.GL_DETAIL_TEXTURE_LEVEL_SGIS'
+-- * 'Graphics.GL.Tokens.GL_DETAIL_TEXTURE_MODE_SGIS'
+-- * 'Graphics.GL.Tokens.GL_DUAL_TEXTURE_SELECT_SGIS'
+-- * 'Graphics.GL.Tokens.GL_GENERATE_MIPMAP_SGIS'
+-- * 'Graphics.GL.Tokens.GL_POST_TEXTURE_FILTER_BIAS_SGIX'
+-- * 'Graphics.GL.Tokens.GL_POST_TEXTURE_FILTER_SCALE_SGIX'
+-- * 'Graphics.GL.Tokens.GL_QUAD_TEXTURE_SELECT_SGIS'
+-- * 'Graphics.GL.Tokens.GL_SHADOW_AMBIENT_SGIX'
+-- * 'Graphics.GL.Tokens.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_4DSIZE_SGIS'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_ALPHA_SIZE'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_BASE_LEVEL_SGIS'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_BLUE_SIZE'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_BORDER'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_BORDER_COLOR' (alias: 'Graphics.GL.Tokens.GL_TEXTURE_BORDER_COLOR_NV')
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_CLIPMAP_CENTER_SGIX'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_CLIPMAP_DEPTH_SGIX'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_CLIPMAP_FRAME_SGIX'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_CLIPMAP_OFFSET_SGIX'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_COMPARE_OPERATOR_SGIX'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_COMPARE_SGIX'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_COMPONENTS' (alias: 'Graphics.GL.Tokens.GL_TEXTURE_INTERNAL_FORMAT')
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_DEPTH_EXT'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_FILTER4_SIZE_SGIS'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_GEQUAL_R_SGIX'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_GREEN_SIZE'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_HEIGHT'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_INTENSITY_SIZE'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_LEQUAL_R_SGIX'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_LOD_BIAS_R_SGIX'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_LOD_BIAS_S_SGIX'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_LOD_BIAS_T_SGIX'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_LUMINANCE_SIZE'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_MAG_FILTER'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_MAX_CLAMP_R_SGIX'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_MAX_CLAMP_S_SGIX'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_MAX_CLAMP_T_SGIX'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_MAX_LEVEL_SGIS'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_MAX_LOD_SGIS'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_MIN_FILTER'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_MIN_LOD_SGIS'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_PRIORITY'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_RED_SIZE'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_RESIDENT'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_WIDTH'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_WRAP_Q_SGIS'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_WRAP_R_EXT'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_WRAP_S'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_WRAP_T'
+--
+-- === #GetVariantValueEXT# GetVariantValueEXT
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_VARIANT_VALUE_EXT'
+-- * 'Graphics.GL.Tokens.GL_VARIANT_DATATYPE_EXT'
+-- * 'Graphics.GL.Tokens.GL_VARIANT_ARRAY_STRIDE_EXT'
+-- * 'Graphics.GL.Tokens.GL_VARIANT_ARRAY_TYPE_EXT'
+--
+-- === #GlslTypeToken# GlslTypeToken
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_FLOAT'
+-- * 'Graphics.GL.Tokens.GL_FLOAT_VEC2'
+-- * 'Graphics.GL.Tokens.GL_FLOAT_VEC3'
+-- * 'Graphics.GL.Tokens.GL_FLOAT_VEC4'
+-- * 'Graphics.GL.Tokens.GL_DOUBLE'
+-- * 'Graphics.GL.Tokens.GL_DOUBLE_VEC2'
+-- * 'Graphics.GL.Tokens.GL_DOUBLE_VEC3'
+-- * 'Graphics.GL.Tokens.GL_DOUBLE_VEC4'
+-- * 'Graphics.GL.Tokens.GL_INT'
+-- * 'Graphics.GL.Tokens.GL_INT_VEC2'
+-- * 'Graphics.GL.Tokens.GL_INT_VEC3'
+-- * 'Graphics.GL.Tokens.GL_INT_VEC4'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_VEC2'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_VEC3'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_VEC4'
+-- * 'Graphics.GL.Tokens.GL_BOOL'
+-- * 'Graphics.GL.Tokens.GL_BOOL_VEC2'
+-- * 'Graphics.GL.Tokens.GL_BOOL_VEC3'
+-- * 'Graphics.GL.Tokens.GL_BOOL_VEC4'
+-- * 'Graphics.GL.Tokens.GL_FLOAT_MAT2'
+-- * 'Graphics.GL.Tokens.GL_FLOAT_MAT3'
+-- * 'Graphics.GL.Tokens.GL_FLOAT_MAT4'
+-- * 'Graphics.GL.Tokens.GL_FLOAT_MAT2x3'
+-- * 'Graphics.GL.Tokens.GL_FLOAT_MAT2x4'
+-- * 'Graphics.GL.Tokens.GL_FLOAT_MAT3x2'
+-- * 'Graphics.GL.Tokens.GL_FLOAT_MAT3x4'
+-- * 'Graphics.GL.Tokens.GL_FLOAT_MAT4x2'
+-- * 'Graphics.GL.Tokens.GL_FLOAT_MAT4x3'
+-- * 'Graphics.GL.Tokens.GL_DOUBLE_MAT2'
+-- * 'Graphics.GL.Tokens.GL_DOUBLE_MAT3'
+-- * 'Graphics.GL.Tokens.GL_DOUBLE_MAT4'
+-- * 'Graphics.GL.Tokens.GL_SAMPLER_1D'
+-- * 'Graphics.GL.Tokens.GL_SAMPLER_2D'
+-- * 'Graphics.GL.Tokens.GL_SAMPLER_3D'
+-- * 'Graphics.GL.Tokens.GL_SAMPLER_CUBE'
+-- * 'Graphics.GL.Tokens.GL_SAMPLER_1D_SHADOW'
+-- * 'Graphics.GL.Tokens.GL_SAMPLER_2D_SHADOW'
+-- * 'Graphics.GL.Tokens.GL_SAMPLER_1D_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_SAMPLER_2D_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_SAMPLER_CUBE_MAP_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_SAMPLER_1D_ARRAY_SHADOW'
+-- * 'Graphics.GL.Tokens.GL_SAMPLER_2D_ARRAY_SHADOW'
+-- * 'Graphics.GL.Tokens.GL_SAMPLER_2D_MULTISAMPLE'
+-- * 'Graphics.GL.Tokens.GL_SAMPLER_2D_MULTISAMPLE_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_SAMPLER_CUBE_SHADOW'
+-- * 'Graphics.GL.Tokens.GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW'
+-- * 'Graphics.GL.Tokens.GL_SAMPLER_BUFFER'
+-- * 'Graphics.GL.Tokens.GL_SAMPLER_2D_RECT'
+-- * 'Graphics.GL.Tokens.GL_SAMPLER_2D_RECT_SHADOW'
+-- * 'Graphics.GL.Tokens.GL_INT_SAMPLER_1D'
+-- * 'Graphics.GL.Tokens.GL_INT_SAMPLER_2D'
+-- * 'Graphics.GL.Tokens.GL_INT_SAMPLER_3D'
+-- * 'Graphics.GL.Tokens.GL_INT_SAMPLER_CUBE'
+-- * 'Graphics.GL.Tokens.GL_INT_SAMPLER_1D_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_INT_SAMPLER_2D_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_INT_SAMPLER_CUBE_MAP_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_INT_SAMPLER_2D_MULTISAMPLE'
+-- * 'Graphics.GL.Tokens.GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_INT_SAMPLER_BUFFER'
+-- * 'Graphics.GL.Tokens.GL_INT_SAMPLER_2D_RECT'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_SAMPLER_1D'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_SAMPLER_2D'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_SAMPLER_3D'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_SAMPLER_CUBE'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_SAMPLER_1D_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_SAMPLER_2D_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_SAMPLER_BUFFER'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_SAMPLER_2D_RECT'
+-- * 'Graphics.GL.Tokens.GL_IMAGE_1D'
+-- * 'Graphics.GL.Tokens.GL_IMAGE_2D'
+-- * 'Graphics.GL.Tokens.GL_IMAGE_3D'
+-- * 'Graphics.GL.Tokens.GL_IMAGE_2D_RECT'
+-- * 'Graphics.GL.Tokens.GL_IMAGE_CUBE'
+-- * 'Graphics.GL.Tokens.GL_IMAGE_BUFFER'
+-- * 'Graphics.GL.Tokens.GL_IMAGE_1D_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_IMAGE_2D_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_IMAGE_CUBE_MAP_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_IMAGE_2D_MULTISAMPLE'
+-- * 'Graphics.GL.Tokens.GL_IMAGE_2D_MULTISAMPLE_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_INT_IMAGE_1D'
+-- * 'Graphics.GL.Tokens.GL_INT_IMAGE_2D'
+-- * 'Graphics.GL.Tokens.GL_INT_IMAGE_3D'
+-- * 'Graphics.GL.Tokens.GL_INT_IMAGE_2D_RECT'
+-- * 'Graphics.GL.Tokens.GL_INT_IMAGE_CUBE'
+-- * 'Graphics.GL.Tokens.GL_INT_IMAGE_BUFFER'
+-- * 'Graphics.GL.Tokens.GL_INT_IMAGE_1D_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_INT_IMAGE_2D_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_INT_IMAGE_CUBE_MAP_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_INT_IMAGE_2D_MULTISAMPLE'
+-- * 'Graphics.GL.Tokens.GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_IMAGE_1D'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_IMAGE_2D'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_IMAGE_3D'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_IMAGE_2D_RECT'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_IMAGE_CUBE'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_IMAGE_BUFFER'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_IMAGE_1D_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_IMAGE_2D_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_ATOMIC_COUNTER'
+--
+-- === #GraphicsResetStatus# GraphicsResetStatus
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_NO_ERROR'
+-- * 'Graphics.GL.Tokens.GL_GUILTY_CONTEXT_RESET'
+-- * 'Graphics.GL.Tokens.GL_INNOCENT_CONTEXT_RESET'
+-- * 'Graphics.GL.Tokens.GL_UNKNOWN_CONTEXT_RESET'
+--
+-- === #HintMode# HintMode
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_DONT_CARE'
+-- * 'Graphics.GL.Tokens.GL_FASTEST'
+-- * 'Graphics.GL.Tokens.GL_NICEST'
+--
+-- === #HintTarget# HintTarget
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_ALLOW_DRAW_FRG_HINT_PGI'
+-- * 'Graphics.GL.Tokens.GL_ALLOW_DRAW_MEM_HINT_PGI'
+-- * 'Graphics.GL.Tokens.GL_ALLOW_DRAW_OBJ_HINT_PGI'
+-- * 'Graphics.GL.Tokens.GL_ALLOW_DRAW_WIN_HINT_PGI'
+-- * 'Graphics.GL.Tokens.GL_ALWAYS_FAST_HINT_PGI'
+-- * 'Graphics.GL.Tokens.GL_ALWAYS_SOFT_HINT_PGI'
+-- * 'Graphics.GL.Tokens.GL_BACK_NORMALS_HINT_PGI'
+-- * 'Graphics.GL.Tokens.GL_BINNING_CONTROL_HINT_QCOM'
+-- * 'Graphics.GL.Tokens.GL_CLIP_FAR_HINT_PGI'
+-- * 'Graphics.GL.Tokens.GL_CLIP_NEAR_HINT_PGI'
+-- * 'Graphics.GL.Tokens.GL_CLIP_VOLUME_CLIPPING_HINT_EXT'
+-- * 'Graphics.GL.Tokens.GL_CONSERVE_MEMORY_HINT_PGI'
+-- * 'Graphics.GL.Tokens.GL_CONVOLUTION_HINT_SGIX'
+-- * 'Graphics.GL.Tokens.GL_FOG_HINT'
+-- * 'Graphics.GL.Tokens.GL_FRAGMENT_SHADER_DERIVATIVE_HINT' (aliases: 'Graphics.GL.Tokens.GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB', 'Graphics.GL.Tokens.GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES')
+-- * 'Graphics.GL.Tokens.GL_FULL_STIPPLE_HINT_PGI'
+-- * 'Graphics.GL.Tokens.GL_GENERATE_MIPMAP_HINT' (alias: 'Graphics.GL.Tokens.GL_GENERATE_MIPMAP_HINT_SGIS')
+-- * 'Graphics.GL.Tokens.GL_LINE_QUALITY_HINT_SGIX'
+-- * 'Graphics.GL.Tokens.GL_LINE_SMOOTH_HINT'
+-- * 'Graphics.GL.Tokens.GL_MATERIAL_SIDE_HINT_PGI'
+-- * 'Graphics.GL.Tokens.GL_MAX_VERTEX_HINT_PGI'
+-- * 'Graphics.GL.Tokens.GL_MULTISAMPLE_FILTER_HINT_NV'
+-- * 'Graphics.GL.Tokens.GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI'
+-- * 'Graphics.GL.Tokens.GL_NATIVE_GRAPHICS_END_HINT_PGI'
+-- * 'Graphics.GL.Tokens.GL_PACK_CMYK_HINT_EXT'
+-- * 'Graphics.GL.Tokens.GL_PERSPECTIVE_CORRECTION_HINT'
+-- * 'Graphics.GL.Tokens.GL_PHONG_HINT_WIN'
+-- * 'Graphics.GL.Tokens.GL_POINT_SMOOTH_HINT'
+-- * 'Graphics.GL.Tokens.GL_POLYGON_SMOOTH_HINT'
+-- * 'Graphics.GL.Tokens.GL_PREFER_DOUBLEBUFFER_HINT_PGI'
+-- * 'Graphics.GL.Tokens.GL_PROGRAM_BINARY_RETRIEVABLE_HINT'
+-- * 'Graphics.GL.Tokens.GL_RECLAIM_MEMORY_HINT_PGI'
+-- * 'Graphics.GL.Tokens.GL_SCALEBIAS_HINT_SGIX'
+-- * 'Graphics.GL.Tokens.GL_STRICT_DEPTHFUNC_HINT_PGI'
+-- * 'Graphics.GL.Tokens.GL_STRICT_LIGHTING_HINT_PGI'
+-- * 'Graphics.GL.Tokens.GL_STRICT_SCISSOR_HINT_PGI'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_COMPRESSION_HINT' (alias: 'Graphics.GL.Tokens.GL_TEXTURE_COMPRESSION_HINT_ARB')
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_MULTI_BUFFER_HINT_SGIX'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_STORAGE_HINT_APPLE'
+-- * 'Graphics.GL.Tokens.GL_TRANSFORM_HINT_APPLE'
+-- * 'Graphics.GL.Tokens.GL_UNPACK_CMYK_HINT_EXT'
+-- * 'Graphics.GL.Tokens.GL_VERTEX_ARRAY_STORAGE_HINT_APPLE'
+-- * 'Graphics.GL.Tokens.GL_VERTEX_CONSISTENT_HINT_PGI'
+-- * 'Graphics.GL.Tokens.GL_VERTEX_DATA_HINT_PGI'
+-- * 'Graphics.GL.Tokens.GL_VERTEX_PRECLIP_HINT_SGIX'
+-- * 'Graphics.GL.Tokens.GL_VERTEX_PRECLIP_SGIX'
+-- * 'Graphics.GL.Tokens.GL_WIDE_LINE_HINT_PGI'
+--
+-- === #HintTargetPGI# HintTargetPGI
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_VERTEX_DATA_HINT_PGI'
+-- * 'Graphics.GL.Tokens.GL_VERTEX_CONSISTENT_HINT_PGI'
+-- * 'Graphics.GL.Tokens.GL_MATERIAL_SIDE_HINT_PGI'
+-- * 'Graphics.GL.Tokens.GL_MAX_VERTEX_HINT_PGI'
+--
+-- === #HistogramTargetEXT# HistogramTargetEXT
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_HISTOGRAM' (alias: 'Graphics.GL.Tokens.GL_HISTOGRAM_EXT')
+-- * 'Graphics.GL.Tokens.GL_PROXY_HISTOGRAM' (alias: 'Graphics.GL.Tokens.GL_PROXY_HISTOGRAM_EXT')
+--
+-- === #IglooFunctionSelectSGIX# IglooFunctionSelectSGIX
+-- There are no values defined for this enumeration group.
+--
+--
+-- === #ImageTransformPNameHP# ImageTransformPNameHP
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_IMAGE_SCALE_X_HP'
+-- * 'Graphics.GL.Tokens.GL_IMAGE_SCALE_Y_HP'
+-- * 'Graphics.GL.Tokens.GL_IMAGE_TRANSLATE_X_HP'
+-- * 'Graphics.GL.Tokens.GL_IMAGE_TRANSLATE_Y_HP'
+-- * 'Graphics.GL.Tokens.GL_IMAGE_ROTATE_ANGLE_HP'
+-- * 'Graphics.GL.Tokens.GL_IMAGE_ROTATE_ORIGIN_X_HP'
+-- * 'Graphics.GL.Tokens.GL_IMAGE_ROTATE_ORIGIN_Y_HP'
+-- * 'Graphics.GL.Tokens.GL_IMAGE_MAG_FILTER_HP'
+-- * 'Graphics.GL.Tokens.GL_IMAGE_MIN_FILTER_HP'
+-- * 'Graphics.GL.Tokens.GL_IMAGE_CUBIC_WEIGHT_HP'
+--
+-- === #ImageTransformTargetHP# ImageTransformTargetHP
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_IMAGE_TRANSFORM_2D_HP'
+--
+-- === #IndexFunctionEXT# IndexFunctionEXT
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_NEVER'
+-- * 'Graphics.GL.Tokens.GL_ALWAYS'
+-- * 'Graphics.GL.Tokens.GL_LESS'
+-- * 'Graphics.GL.Tokens.GL_LEQUAL'
+-- * 'Graphics.GL.Tokens.GL_EQUAL'
+-- * 'Graphics.GL.Tokens.GL_GEQUAL'
+-- * 'Graphics.GL.Tokens.GL_GREATER'
+-- * 'Graphics.GL.Tokens.GL_NOTEQUAL'
+--
+-- === #IndexMaterialParameterEXT# IndexMaterialParameterEXT
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_INDEX_OFFSET'
+--
+-- === #IndexPointerType# IndexPointerType
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_DOUBLE'
+-- * 'Graphics.GL.Tokens.GL_FLOAT'
+-- * 'Graphics.GL.Tokens.GL_INT'
+-- * 'Graphics.GL.Tokens.GL_SHORT'
+--
+-- === #InterleavedArrayFormat# InterleavedArrayFormat
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_C3F_V3F'
+-- * 'Graphics.GL.Tokens.GL_C4F_N3F_V3F'
+-- * 'Graphics.GL.Tokens.GL_C4UB_V2F'
+-- * 'Graphics.GL.Tokens.GL_C4UB_V3F'
+-- * 'Graphics.GL.Tokens.GL_N3F_V3F'
+-- * 'Graphics.GL.Tokens.GL_T2F_C3F_V3F'
+-- * 'Graphics.GL.Tokens.GL_T2F_C4F_N3F_V3F'
+-- * 'Graphics.GL.Tokens.GL_T2F_C4UB_V3F'
+-- * 'Graphics.GL.Tokens.GL_T2F_N3F_V3F'
+-- * 'Graphics.GL.Tokens.GL_T2F_V3F'
+-- * 'Graphics.GL.Tokens.GL_T4F_C4F_N3F_V4F'
+-- * 'Graphics.GL.Tokens.GL_T4F_V4F'
+-- * 'Graphics.GL.Tokens.GL_V2F'
+-- * 'Graphics.GL.Tokens.GL_V3F'
+--
+-- === #InternalFormat# InternalFormat
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_ALPHA12'
+-- * 'Graphics.GL.Tokens.GL_ALPHA16'
+-- * 'Graphics.GL.Tokens.GL_ALPHA4'
+-- * 'Graphics.GL.Tokens.GL_ALPHA8'
+-- * 'Graphics.GL.Tokens.GL_DUAL_ALPHA12_SGIS'
+-- * 'Graphics.GL.Tokens.GL_DUAL_ALPHA16_SGIS'
+-- * 'Graphics.GL.Tokens.GL_DUAL_ALPHA4_SGIS'
+-- * 'Graphics.GL.Tokens.GL_DUAL_ALPHA8_SGIS'
+-- * 'Graphics.GL.Tokens.GL_DUAL_INTENSITY12_SGIS'
+-- * 'Graphics.GL.Tokens.GL_DUAL_INTENSITY16_SGIS'
+-- * 'Graphics.GL.Tokens.GL_DUAL_INTENSITY4_SGIS'
+-- * 'Graphics.GL.Tokens.GL_DUAL_INTENSITY8_SGIS'
+-- * 'Graphics.GL.Tokens.GL_DUAL_LUMINANCE12_SGIS'
+-- * 'Graphics.GL.Tokens.GL_DUAL_LUMINANCE16_SGIS'
+-- * 'Graphics.GL.Tokens.GL_DUAL_LUMINANCE4_SGIS'
+-- * 'Graphics.GL.Tokens.GL_DUAL_LUMINANCE8_SGIS'
+-- * 'Graphics.GL.Tokens.GL_DUAL_LUMINANCE_ALPHA4_SGIS'
+-- * 'Graphics.GL.Tokens.GL_DUAL_LUMINANCE_ALPHA8_SGIS'
+-- * 'Graphics.GL.Tokens.GL_INTENSITY'
+-- * 'Graphics.GL.Tokens.GL_INTENSITY12'
+-- * 'Graphics.GL.Tokens.GL_INTENSITY16'
+-- * 'Graphics.GL.Tokens.GL_INTENSITY4'
+-- * 'Graphics.GL.Tokens.GL_INTENSITY8'
+-- * 'Graphics.GL.Tokens.GL_LUMINANCE12'
+-- * 'Graphics.GL.Tokens.GL_LUMINANCE12_ALPHA12'
+-- * 'Graphics.GL.Tokens.GL_LUMINANCE12_ALPHA4'
+-- * 'Graphics.GL.Tokens.GL_LUMINANCE16'
+-- * 'Graphics.GL.Tokens.GL_LUMINANCE16_ALPHA16'
+-- * 'Graphics.GL.Tokens.GL_LUMINANCE4'
+-- * 'Graphics.GL.Tokens.GL_LUMINANCE4_ALPHA4'
+-- * 'Graphics.GL.Tokens.GL_LUMINANCE6_ALPHA2'
+-- * 'Graphics.GL.Tokens.GL_LUMINANCE8'
+-- * 'Graphics.GL.Tokens.GL_LUMINANCE8_ALPHA8'
+-- * 'Graphics.GL.Tokens.GL_QUAD_ALPHA4_SGIS'
+-- * 'Graphics.GL.Tokens.GL_QUAD_ALPHA8_SGIS'
+-- * 'Graphics.GL.Tokens.GL_QUAD_INTENSITY4_SGIS'
+-- * 'Graphics.GL.Tokens.GL_QUAD_INTENSITY8_SGIS'
+-- * 'Graphics.GL.Tokens.GL_QUAD_LUMINANCE4_SGIS'
+-- * 'Graphics.GL.Tokens.GL_QUAD_LUMINANCE8_SGIS'
+-- * 'Graphics.GL.Tokens.GL_RED' (alias: 'Graphics.GL.Tokens.GL_RED_EXT')
+-- * 'Graphics.GL.Tokens.GL_R8' (alias: 'Graphics.GL.Tokens.GL_R8_EXT')
+-- * 'Graphics.GL.Tokens.GL_R8_SNORM'
+-- * 'Graphics.GL.Tokens.GL_R16' (alias: 'Graphics.GL.Tokens.GL_R16_EXT')
+-- * 'Graphics.GL.Tokens.GL_R16_SNORM' (alias: 'Graphics.GL.Tokens.GL_R16_SNORM_EXT')
+-- * 'Graphics.GL.Tokens.GL_R16F' (alias: 'Graphics.GL.Tokens.GL_R16F_EXT')
+-- * 'Graphics.GL.Tokens.GL_R32F' (alias: 'Graphics.GL.Tokens.GL_R32F_EXT')
+-- * 'Graphics.GL.Tokens.GL_R8I'
+-- * 'Graphics.GL.Tokens.GL_R16I'
+-- * 'Graphics.GL.Tokens.GL_R32I'
+-- * 'Graphics.GL.Tokens.GL_R8UI'
+-- * 'Graphics.GL.Tokens.GL_R16UI'
+-- * 'Graphics.GL.Tokens.GL_R32UI'
+-- * 'Graphics.GL.Tokens.GL_RG'
+-- * 'Graphics.GL.Tokens.GL_RG8' (alias: 'Graphics.GL.Tokens.GL_RG8_EXT')
+-- * 'Graphics.GL.Tokens.GL_RG8_SNORM'
+-- * 'Graphics.GL.Tokens.GL_RG16' (alias: 'Graphics.GL.Tokens.GL_RG16_EXT')
+-- * 'Graphics.GL.Tokens.GL_RG16_SNORM' (alias: 'Graphics.GL.Tokens.GL_RG16_SNORM_EXT')
+-- * 'Graphics.GL.Tokens.GL_RG16F' (alias: 'Graphics.GL.Tokens.GL_RG16F_EXT')
+-- * 'Graphics.GL.Tokens.GL_RG32F' (alias: 'Graphics.GL.Tokens.GL_RG32F_EXT')
+-- * 'Graphics.GL.Tokens.GL_RG8I'
+-- * 'Graphics.GL.Tokens.GL_RG16I'
+-- * 'Graphics.GL.Tokens.GL_RG32I'
+-- * 'Graphics.GL.Tokens.GL_RG8UI'
+-- * 'Graphics.GL.Tokens.GL_RG16UI'
+-- * 'Graphics.GL.Tokens.GL_RG32UI'
+-- * 'Graphics.GL.Tokens.GL_RGB'
+-- * 'Graphics.GL.Tokens.GL_RGB2_EXT'
+-- * 'Graphics.GL.Tokens.GL_RGB4' (alias: 'Graphics.GL.Tokens.GL_RGB4_EXT')
+-- * 'Graphics.GL.Tokens.GL_RGB5' (alias: 'Graphics.GL.Tokens.GL_RGB5_EXT')
+-- * 'Graphics.GL.Tokens.GL_RGB8' (aliases: 'Graphics.GL.Tokens.GL_RGB8_EXT', 'Graphics.GL.Tokens.GL_RGB8_OES')
+-- * 'Graphics.GL.Tokens.GL_RGB8_SNORM'
+-- * 'Graphics.GL.Tokens.GL_RGB10' (alias: 'Graphics.GL.Tokens.GL_RGB10_EXT')
+-- * 'Graphics.GL.Tokens.GL_RGB12' (alias: 'Graphics.GL.Tokens.GL_RGB12_EXT')
+-- * 'Graphics.GL.Tokens.GL_RGB16' (alias: 'Graphics.GL.Tokens.GL_RGB16_EXT')
+-- * 'Graphics.GL.Tokens.GL_RGB16F' (aliases: 'Graphics.GL.Tokens.GL_RGB16F_ARB', 'Graphics.GL.Tokens.GL_RGB16F_EXT')
+-- * 'Graphics.GL.Tokens.GL_RGB16_SNORM' (alias: 'Graphics.GL.Tokens.GL_RGB16_SNORM_EXT')
+-- * 'Graphics.GL.Tokens.GL_RGB32F'
+-- * 'Graphics.GL.Tokens.GL_RGB8I'
+-- * 'Graphics.GL.Tokens.GL_RGB16I'
+-- * 'Graphics.GL.Tokens.GL_RGB32I'
+-- * 'Graphics.GL.Tokens.GL_RGB8UI'
+-- * 'Graphics.GL.Tokens.GL_RGB16UI'
+-- * 'Graphics.GL.Tokens.GL_RGB32UI'
+-- * 'Graphics.GL.Tokens.GL_SRGB' (alias: 'Graphics.GL.Tokens.GL_SRGB_EXT')
+-- * 'Graphics.GL.Tokens.GL_SRGB_ALPHA' (alias: 'Graphics.GL.Tokens.GL_SRGB_ALPHA_EXT')
+-- * 'Graphics.GL.Tokens.GL_SRGB8' (aliases: 'Graphics.GL.Tokens.GL_SRGB8_EXT', 'Graphics.GL.Tokens.GL_SRGB8_NV')
+-- * 'Graphics.GL.Tokens.GL_SRGB8_ALPHA8' (alias: 'Graphics.GL.Tokens.GL_SRGB8_ALPHA8_EXT')
+-- * 'Graphics.GL.Tokens.GL_R3_G3_B2'
+-- * 'Graphics.GL.Tokens.GL_R11F_G11F_B10F' (aliases: 'Graphics.GL.Tokens.GL_R11F_G11F_B10F_APPLE', 'Graphics.GL.Tokens.GL_R11F_G11F_B10F_EXT')
+-- * 'Graphics.GL.Tokens.GL_RGB9_E5' (aliases: 'Graphics.GL.Tokens.GL_RGB9_E5_APPLE', 'Graphics.GL.Tokens.GL_RGB9_E5_EXT')
+-- * 'Graphics.GL.Tokens.GL_RGBA'
+-- * 'Graphics.GL.Tokens.GL_RGBA4' (aliases: 'Graphics.GL.Tokens.GL_RGBA4_EXT', 'Graphics.GL.Tokens.GL_RGBA4_OES')
+-- * 'Graphics.GL.Tokens.GL_RGB5_A1' (aliases: 'Graphics.GL.Tokens.GL_RGB5_A1_EXT', 'Graphics.GL.Tokens.GL_RGB5_A1_OES')
+-- * 'Graphics.GL.Tokens.GL_RGBA8' (aliases: 'Graphics.GL.Tokens.GL_RGBA8_EXT', 'Graphics.GL.Tokens.GL_RGBA8_OES')
+-- * 'Graphics.GL.Tokens.GL_RGBA8_SNORM'
+-- * 'Graphics.GL.Tokens.GL_RGB10_A2' (alias: 'Graphics.GL.Tokens.GL_RGB10_A2_EXT')
+-- * 'Graphics.GL.Tokens.GL_RGBA12' (alias: 'Graphics.GL.Tokens.GL_RGBA12_EXT')
+-- * 'Graphics.GL.Tokens.GL_RGBA16' (alias: 'Graphics.GL.Tokens.GL_RGBA16_EXT')
+-- * 'Graphics.GL.Tokens.GL_RGBA16F' (aliases: 'Graphics.GL.Tokens.GL_RGBA16F_ARB', 'Graphics.GL.Tokens.GL_RGBA16F_EXT')
+-- * 'Graphics.GL.Tokens.GL_RGBA32F' (aliases: 'Graphics.GL.Tokens.GL_RGBA32F_ARB', 'Graphics.GL.Tokens.GL_RGBA32F_EXT')
+-- * 'Graphics.GL.Tokens.GL_RGBA8I'
+-- * 'Graphics.GL.Tokens.GL_RGBA16I'
+-- * 'Graphics.GL.Tokens.GL_RGBA32I'
+-- * 'Graphics.GL.Tokens.GL_RGBA8UI'
+-- * 'Graphics.GL.Tokens.GL_RGBA16UI'
+-- * 'Graphics.GL.Tokens.GL_RGBA32UI'
+-- * 'Graphics.GL.Tokens.GL_RGB10_A2UI'
+-- * 'Graphics.GL.Tokens.GL_DEPTH_COMPONENT'
+-- * 'Graphics.GL.Tokens.GL_DEPTH_COMPONENT16' (aliases: 'Graphics.GL.Tokens.GL_DEPTH_COMPONENT16_ARB', 'Graphics.GL.Tokens.GL_DEPTH_COMPONENT16_OES', 'Graphics.GL.Tokens.GL_DEPTH_COMPONENT16_SGIX')
+-- * 'Graphics.GL.Tokens.GL_DEPTH_COMPONENT24_ARB' (aliases: 'Graphics.GL.Tokens.GL_DEPTH_COMPONENT24_OES', 'Graphics.GL.Tokens.GL_DEPTH_COMPONENT24_SGIX')
+-- * 'Graphics.GL.Tokens.GL_DEPTH_COMPONENT32_ARB' (aliases: 'Graphics.GL.Tokens.GL_DEPTH_COMPONENT32_OES', 'Graphics.GL.Tokens.GL_DEPTH_COMPONENT32_SGIX')
+-- * 'Graphics.GL.Tokens.GL_DEPTH_COMPONENT32F'
+-- * 'Graphics.GL.Tokens.GL_DEPTH_COMPONENT32F_NV'
+-- * 'Graphics.GL.Tokens.GL_DEPTH_STENCIL' (aliases: 'Graphics.GL.Tokens.GL_DEPTH_STENCIL_EXT', 'Graphics.GL.Tokens.GL_DEPTH_STENCIL_NV', 'Graphics.GL.Tokens.GL_DEPTH_STENCIL_OES')
+-- * 'Graphics.GL.Tokens.GL_DEPTH_STENCIL_MESA'
+-- * 'Graphics.GL.Tokens.GL_DEPTH24_STENCIL8' (aliases: 'Graphics.GL.Tokens.GL_DEPTH24_STENCIL8_EXT', 'Graphics.GL.Tokens.GL_DEPTH24_STENCIL8_OES')
+-- * 'Graphics.GL.Tokens.GL_DEPTH32F_STENCIL8'
+-- * 'Graphics.GL.Tokens.GL_DEPTH32F_STENCIL8_NV'
+-- * 'Graphics.GL.Tokens.GL_STENCIL_INDEX' (alias: 'Graphics.GL.Tokens.GL_STENCIL_INDEX_OES')
+-- * 'Graphics.GL.Tokens.GL_STENCIL_INDEX1' (aliases: 'Graphics.GL.Tokens.GL_STENCIL_INDEX1_EXT', 'Graphics.GL.Tokens.GL_STENCIL_INDEX1_OES')
+-- * 'Graphics.GL.Tokens.GL_STENCIL_INDEX4' (aliases: 'Graphics.GL.Tokens.GL_STENCIL_INDEX4_EXT', 'Graphics.GL.Tokens.GL_STENCIL_INDEX4_OES')
+-- * 'Graphics.GL.Tokens.GL_STENCIL_INDEX8' (aliases: 'Graphics.GL.Tokens.GL_STENCIL_INDEX8_EXT', 'Graphics.GL.Tokens.GL_STENCIL_INDEX8_OES')
+-- * 'Graphics.GL.Tokens.GL_STENCIL_INDEX16' (alias: 'Graphics.GL.Tokens.GL_STENCIL_INDEX16_EXT')
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_RED'
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_RG'
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_RGB'
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_RGBA'
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_SRGB'
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_SRGB_ALPHA'
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_RED_RGTC1' (alias: 'Graphics.GL.Tokens.GL_COMPRESSED_RED_RGTC1_EXT')
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_SIGNED_RED_RGTC1' (alias: 'Graphics.GL.Tokens.GL_COMPRESSED_SIGNED_RED_RGTC1_EXT')
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_R11_EAC'
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_SIGNED_R11_EAC'
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_RG_RGTC2'
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_SIGNED_RG_RGTC2'
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_RGBA_BPTC_UNORM'
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM'
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT'
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT'
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_RGB8_ETC2'
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_SRGB8_ETC2'
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2'
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2'
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_RGBA8_ETC2_EAC'
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC'
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_RG11_EAC'
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_SIGNED_RG11_EAC'
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_RGB_S3TC_DXT1_EXT'
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_SRGB_S3TC_DXT1_EXT'
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_RGBA_S3TC_DXT1_EXT'
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT'
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_RGBA_S3TC_DXT3_EXT'
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT'
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_RGBA_S3TC_DXT5_EXT'
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT'
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_RGBA_ASTC_3x3x3_OES'
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_RGBA_ASTC_4x3x3_OES'
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_RGBA_ASTC_4x4' (alias: 'Graphics.GL.Tokens.GL_COMPRESSED_RGBA_ASTC_4x4_KHR')
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_RGBA_ASTC_4x4x3_OES'
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_RGBA_ASTC_4x4x4_OES'
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_RGBA_ASTC_5x4' (alias: 'Graphics.GL.Tokens.GL_COMPRESSED_RGBA_ASTC_5x4_KHR')
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_RGBA_ASTC_5x4x4_OES'
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_RGBA_ASTC_5x5' (alias: 'Graphics.GL.Tokens.GL_COMPRESSED_RGBA_ASTC_5x5_KHR')
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_RGBA_ASTC_5x5x4_OES'
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_RGBA_ASTC_5x5x5_OES'
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_RGBA_ASTC_6x5' (alias: 'Graphics.GL.Tokens.GL_COMPRESSED_RGBA_ASTC_6x5_KHR')
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_RGBA_ASTC_6x5x5_OES'
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_RGBA_ASTC_6x6' (alias: 'Graphics.GL.Tokens.GL_COMPRESSED_RGBA_ASTC_6x6_KHR')
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_RGBA_ASTC_6x6x5_OES'
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_RGBA_ASTC_6x6x6_OES'
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_RGBA_ASTC_8x5' (alias: 'Graphics.GL.Tokens.GL_COMPRESSED_RGBA_ASTC_8x5_KHR')
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_RGBA_ASTC_8x6' (alias: 'Graphics.GL.Tokens.GL_COMPRESSED_RGBA_ASTC_8x6_KHR')
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_RGBA_ASTC_8x8' (alias: 'Graphics.GL.Tokens.GL_COMPRESSED_RGBA_ASTC_8x8_KHR')
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_RGBA_ASTC_10x10' (alias: 'Graphics.GL.Tokens.GL_COMPRESSED_RGBA_ASTC_10x10_KHR')
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_RGBA_ASTC_10x5' (alias: 'Graphics.GL.Tokens.GL_COMPRESSED_RGBA_ASTC_10x5_KHR')
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_RGBA_ASTC_10x6' (alias: 'Graphics.GL.Tokens.GL_COMPRESSED_RGBA_ASTC_10x6_KHR')
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_RGBA_ASTC_10x8' (alias: 'Graphics.GL.Tokens.GL_COMPRESSED_RGBA_ASTC_10x8_KHR')
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_RGBA_ASTC_12x10' (alias: 'Graphics.GL.Tokens.GL_COMPRESSED_RGBA_ASTC_12x10_KHR')
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_RGBA_ASTC_12x12' (alias: 'Graphics.GL.Tokens.GL_COMPRESSED_RGBA_ASTC_12x12_KHR')
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES'
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES'
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4' (alias: 'Graphics.GL.Tokens.GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR')
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES'
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES'
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4' (alias: 'Graphics.GL.Tokens.GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR')
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES'
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5' (alias: 'Graphics.GL.Tokens.GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR')
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES'
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES'
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5' (alias: 'Graphics.GL.Tokens.GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR')
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES'
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6' (alias: 'Graphics.GL.Tokens.GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR')
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES'
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES'
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5' (alias: 'Graphics.GL.Tokens.GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR')
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6' (alias: 'Graphics.GL.Tokens.GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR')
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8' (alias: 'Graphics.GL.Tokens.GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR')
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10' (alias: 'Graphics.GL.Tokens.GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR')
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5' (alias: 'Graphics.GL.Tokens.GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR')
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6' (alias: 'Graphics.GL.Tokens.GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR')
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8' (alias: 'Graphics.GL.Tokens.GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR')
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10' (alias: 'Graphics.GL.Tokens.GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR')
+-- * 'Graphics.GL.Tokens.GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12' (alias: 'Graphics.GL.Tokens.GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR')
+--
+-- === #InternalFormatPName# InternalFormatPName
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_NUM_SAMPLE_COUNTS'
+-- * 'Graphics.GL.Tokens.GL_SAMPLES'
+-- * 'Graphics.GL.Tokens.GL_INTERNALFORMAT_SUPPORTED'
+-- * 'Graphics.GL.Tokens.GL_INTERNALFORMAT_PREFERRED'
+-- * 'Graphics.GL.Tokens.GL_INTERNALFORMAT_RED_SIZE'
+-- * 'Graphics.GL.Tokens.GL_INTERNALFORMAT_GREEN_SIZE'
+-- * 'Graphics.GL.Tokens.GL_INTERNALFORMAT_BLUE_SIZE'
+-- * 'Graphics.GL.Tokens.GL_INTERNALFORMAT_ALPHA_SIZE'
+-- * 'Graphics.GL.Tokens.GL_INTERNALFORMAT_DEPTH_SIZE'
+-- * 'Graphics.GL.Tokens.GL_INTERNALFORMAT_STENCIL_SIZE'
+-- * 'Graphics.GL.Tokens.GL_INTERNALFORMAT_SHARED_SIZE'
+-- * 'Graphics.GL.Tokens.GL_INTERNALFORMAT_RED_TYPE'
+-- * 'Graphics.GL.Tokens.GL_INTERNALFORMAT_GREEN_TYPE'
+-- * 'Graphics.GL.Tokens.GL_INTERNALFORMAT_BLUE_TYPE'
+-- * 'Graphics.GL.Tokens.GL_INTERNALFORMAT_ALPHA_TYPE'
+-- * 'Graphics.GL.Tokens.GL_INTERNALFORMAT_DEPTH_TYPE'
+-- * 'Graphics.GL.Tokens.GL_INTERNALFORMAT_STENCIL_TYPE'
+-- * 'Graphics.GL.Tokens.GL_MAX_WIDTH'
+-- * 'Graphics.GL.Tokens.GL_MAX_HEIGHT'
+-- * 'Graphics.GL.Tokens.GL_MAX_DEPTH'
+-- * 'Graphics.GL.Tokens.GL_MAX_LAYERS'
+-- * 'Graphics.GL.Tokens.GL_COLOR_COMPONENTS'
+-- * 'Graphics.GL.Tokens.GL_COLOR_RENDERABLE'
+-- * 'Graphics.GL.Tokens.GL_DEPTH_RENDERABLE'
+-- * 'Graphics.GL.Tokens.GL_STENCIL_RENDERABLE'
+-- * 'Graphics.GL.Tokens.GL_FRAMEBUFFER_RENDERABLE'
+-- * 'Graphics.GL.Tokens.GL_FRAMEBUFFER_RENDERABLE_LAYERED'
+-- * 'Graphics.GL.Tokens.GL_FRAMEBUFFER_BLEND'
+-- * 'Graphics.GL.Tokens.GL_READ_PIXELS'
+-- * 'Graphics.GL.Tokens.GL_READ_PIXELS_FORMAT'
+-- * 'Graphics.GL.Tokens.GL_READ_PIXELS_TYPE'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_IMAGE_FORMAT'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_IMAGE_TYPE'
+-- * 'Graphics.GL.Tokens.GL_GET_TEXTURE_IMAGE_FORMAT'
+-- * 'Graphics.GL.Tokens.GL_GET_TEXTURE_IMAGE_TYPE'
+-- * 'Graphics.GL.Tokens.GL_MIPMAP'
+-- * 'Graphics.GL.Tokens.GL_GENERATE_MIPMAP'
+-- * 'Graphics.GL.Tokens.GL_AUTO_GENERATE_MIPMAP'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ENCODING'
+-- * 'Graphics.GL.Tokens.GL_SRGB_READ'
+-- * 'Graphics.GL.Tokens.GL_SRGB_WRITE'
+-- * 'Graphics.GL.Tokens.GL_FILTER'
+-- * 'Graphics.GL.Tokens.GL_VERTEX_TEXTURE'
+-- * 'Graphics.GL.Tokens.GL_TESS_CONTROL_TEXTURE'
+-- * 'Graphics.GL.Tokens.GL_TESS_EVALUATION_TEXTURE'
+-- * 'Graphics.GL.Tokens.GL_GEOMETRY_TEXTURE'
+-- * 'Graphics.GL.Tokens.GL_FRAGMENT_TEXTURE'
+-- * 'Graphics.GL.Tokens.GL_COMPUTE_TEXTURE'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_SHADOW'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_GATHER'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_GATHER_SHADOW'
+-- * 'Graphics.GL.Tokens.GL_SHADER_IMAGE_LOAD'
+-- * 'Graphics.GL.Tokens.GL_SHADER_IMAGE_STORE'
+-- * 'Graphics.GL.Tokens.GL_SHADER_IMAGE_ATOMIC'
+-- * 'Graphics.GL.Tokens.GL_IMAGE_TEXEL_SIZE'
+-- * 'Graphics.GL.Tokens.GL_IMAGE_COMPATIBILITY_CLASS'
+-- * 'Graphics.GL.Tokens.GL_IMAGE_PIXEL_FORMAT'
+-- * 'Graphics.GL.Tokens.GL_IMAGE_PIXEL_TYPE'
+-- * 'Graphics.GL.Tokens.GL_IMAGE_FORMAT_COMPATIBILITY_TYPE'
+-- * 'Graphics.GL.Tokens.GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST'
+-- * 'Graphics.GL.Tokens.GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST'
+-- * 'Graphics.GL.Tokens.GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE'
+-- * 'Graphics.GL.Tokens.GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_COMPRESSED'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_COMPRESSED_BLOCK_WIDTH'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_COMPRESSED_BLOCK_SIZE'
+-- * 'Graphics.GL.Tokens.GL_CLEAR_BUFFER'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_VIEW'
+-- * 'Graphics.GL.Tokens.GL_VIEW_COMPATIBILITY_CLASS'
+-- * 'Graphics.GL.Tokens.GL_CLEAR_TEXTURE'
+--
+-- === #InvalidateFramebufferAttachment# InvalidateFramebufferAttachment
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT0' (aliases: 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT0_EXT', 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT0_NV', 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT0_OES')
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT1' (aliases: 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT1_EXT', 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT1_NV')
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT2' (aliases: 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT2_EXT', 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT2_NV')
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT3' (aliases: 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT3_EXT', 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT3_NV')
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT4' (aliases: 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT4_EXT', 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT4_NV')
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT5' (aliases: 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT5_EXT', 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT5_NV')
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT6' (aliases: 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT6_EXT', 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT6_NV')
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT7' (aliases: 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT7_EXT', 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT7_NV')
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT8' (aliases: 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT8_EXT', 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT8_NV')
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT9' (aliases: 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT9_EXT', 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT9_NV')
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT10' (aliases: 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT10_EXT', 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT10_NV')
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT11' (aliases: 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT11_EXT', 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT11_NV')
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT12' (aliases: 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT12_EXT', 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT12_NV')
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT13' (aliases: 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT13_EXT', 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT13_NV')
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT14' (aliases: 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT14_EXT', 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT14_NV')
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT15' (aliases: 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT15_EXT', 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT15_NV')
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT16'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT17'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT18'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT19'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT20'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT21'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT22'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT23'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT24'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT25'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT26'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT27'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT28'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT29'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT30'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT31'
+-- * 'Graphics.GL.Tokens.GL_DEPTH_ATTACHMENT' (aliases: 'Graphics.GL.Tokens.GL_DEPTH_ATTACHMENT_EXT', 'Graphics.GL.Tokens.GL_DEPTH_ATTACHMENT_OES')
+-- * 'Graphics.GL.Tokens.GL_DEPTH_STENCIL_ATTACHMENT'
+-- * 'Graphics.GL.Tokens.GL_STENCIL' (alias: 'Graphics.GL.Tokens.GL_STENCIL')
+-- * 'Graphics.GL.Tokens.GL_STENCIL_ATTACHMENT_EXT' (alias: 'Graphics.GL.Tokens.GL_STENCIL_ATTACHMENT_OES')
+-- * 'Graphics.GL.Tokens.GL_COLOR'
+-- * 'Graphics.GL.Tokens.GL_DEPTH'
+-- * 'Graphics.GL.Tokens.GL_STENCIL' (alias: 'Graphics.GL.Tokens.GL_STENCIL')
+--
+-- === #LightEnvModeSGIX# LightEnvModeSGIX
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_ADD'
+-- * 'Graphics.GL.Tokens.GL_MODULATE'
+-- * 'Graphics.GL.Tokens.GL_REPLACE'
+--
+-- === #LightEnvParameterSGIX# LightEnvParameterSGIX
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_LIGHT_ENV_MODE_SGIX'
+--
+-- === #LightModelColorControl# LightModelColorControl
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_SEPARATE_SPECULAR_COLOR' (alias: 'Graphics.GL.Tokens.GL_SEPARATE_SPECULAR_COLOR_EXT')
+-- * 'Graphics.GL.Tokens.GL_SINGLE_COLOR' (alias: 'Graphics.GL.Tokens.GL_SINGLE_COLOR_EXT')
+--
+-- === #LightModelParameter# LightModelParameter
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_LIGHT_MODEL_AMBIENT'
+-- * 'Graphics.GL.Tokens.GL_LIGHT_MODEL_COLOR_CONTROL' (alias: 'Graphics.GL.Tokens.GL_LIGHT_MODEL_COLOR_CONTROL_EXT')
+-- * 'Graphics.GL.Tokens.GL_LIGHT_MODEL_LOCAL_VIEWER'
+-- * 'Graphics.GL.Tokens.GL_LIGHT_MODEL_TWO_SIDE'
+--
+-- === #LightName# LightName
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_FRAGMENT_LIGHT0_SGIX'
+-- * 'Graphics.GL.Tokens.GL_FRAGMENT_LIGHT1_SGIX'
+-- * 'Graphics.GL.Tokens.GL_FRAGMENT_LIGHT2_SGIX'
+-- * 'Graphics.GL.Tokens.GL_FRAGMENT_LIGHT3_SGIX'
+-- * 'Graphics.GL.Tokens.GL_FRAGMENT_LIGHT4_SGIX'
+-- * 'Graphics.GL.Tokens.GL_FRAGMENT_LIGHT5_SGIX'
+-- * 'Graphics.GL.Tokens.GL_FRAGMENT_LIGHT6_SGIX'
+-- * 'Graphics.GL.Tokens.GL_FRAGMENT_LIGHT7_SGIX'
+-- * 'Graphics.GL.Tokens.GL_LIGHT0'
+-- * 'Graphics.GL.Tokens.GL_LIGHT1'
+-- * 'Graphics.GL.Tokens.GL_LIGHT2'
+-- * 'Graphics.GL.Tokens.GL_LIGHT3'
+-- * 'Graphics.GL.Tokens.GL_LIGHT4'
+-- * 'Graphics.GL.Tokens.GL_LIGHT5'
+-- * 'Graphics.GL.Tokens.GL_LIGHT6'
+-- * 'Graphics.GL.Tokens.GL_LIGHT7'
+--
+-- === #LightParameter# LightParameter
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_AMBIENT'
+-- * 'Graphics.GL.Tokens.GL_CONSTANT_ATTENUATION'
+-- * 'Graphics.GL.Tokens.GL_DIFFUSE'
+-- * 'Graphics.GL.Tokens.GL_LINEAR_ATTENUATION'
+-- * 'Graphics.GL.Tokens.GL_POSITION'
+-- * 'Graphics.GL.Tokens.GL_QUADRATIC_ATTENUATION'
+-- * 'Graphics.GL.Tokens.GL_SPECULAR'
+-- * 'Graphics.GL.Tokens.GL_SPOT_CUTOFF'
+-- * 'Graphics.GL.Tokens.GL_SPOT_DIRECTION'
+-- * 'Graphics.GL.Tokens.GL_SPOT_EXPONENT'
+--
+-- === #LightTextureModeEXT# LightTextureModeEXT
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_FRAGMENT_MATERIAL_EXT'
+-- * 'Graphics.GL.Tokens.GL_FRAGMENT_NORMAL_EXT'
+-- * 'Graphics.GL.Tokens.GL_FRAGMENT_DEPTH_EXT'
+-- * 'Graphics.GL.Tokens.GL_FRAGMENT_COLOR_EXT'
+--
+-- === #LightTexturePNameEXT# LightTexturePNameEXT
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_ATTENUATION_EXT'
+-- * 'Graphics.GL.Tokens.GL_SHADOW_ATTENUATION_EXT'
+--
+-- === #ListMode# ListMode
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_COMPILE'
+-- * 'Graphics.GL.Tokens.GL_COMPILE_AND_EXECUTE'
+--
+-- === #ListNameType# ListNameType
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_2_BYTES'
+-- * 'Graphics.GL.Tokens.GL_3_BYTES'
+-- * 'Graphics.GL.Tokens.GL_4_BYTES'
+-- * 'Graphics.GL.Tokens.GL_BYTE'
+-- * 'Graphics.GL.Tokens.GL_FLOAT'
+-- * 'Graphics.GL.Tokens.GL_INT'
+-- * 'Graphics.GL.Tokens.GL_SHORT'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_BYTE'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_SHORT'
+--
+-- === #ListParameterName# ListParameterName
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_LIST_PRIORITY_SGIX'
+--
+-- === #LogicOp# LogicOp
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_AND'
+-- * 'Graphics.GL.Tokens.GL_AND_INVERTED'
+-- * 'Graphics.GL.Tokens.GL_AND_REVERSE'
+-- * 'Graphics.GL.Tokens.GL_CLEAR'
+-- * 'Graphics.GL.Tokens.GL_COPY'
+-- * 'Graphics.GL.Tokens.GL_COPY_INVERTED'
+-- * 'Graphics.GL.Tokens.GL_EQUIV'
+-- * 'Graphics.GL.Tokens.GL_INVERT'
+-- * 'Graphics.GL.Tokens.GL_NAND'
+-- * 'Graphics.GL.Tokens.GL_NOOP'
+-- * 'Graphics.GL.Tokens.GL_NOR'
+-- * 'Graphics.GL.Tokens.GL_OR'
+-- * 'Graphics.GL.Tokens.GL_OR_INVERTED'
+-- * 'Graphics.GL.Tokens.GL_OR_REVERSE'
+-- * 'Graphics.GL.Tokens.GL_SET'
+-- * 'Graphics.GL.Tokens.GL_XOR'
+--
+-- === #MapAttribParameterNV# MapAttribParameterNV
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_MAP_ATTRIB_U_ORDER_NV'
+-- * 'Graphics.GL.Tokens.GL_MAP_ATTRIB_V_ORDER_NV'
+--
+-- === #MapBufferAccessMask# MapBufferAccessMask
+-- A bitwise combination of several of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_MAP_COHERENT_BIT' (alias: 'Graphics.GL.Tokens.GL_MAP_COHERENT_BIT_EXT')
+-- * 'Graphics.GL.Tokens.GL_MAP_FLUSH_EXPLICIT_BIT' (alias: 'Graphics.GL.Tokens.GL_MAP_FLUSH_EXPLICIT_BIT_EXT')
+-- * 'Graphics.GL.Tokens.GL_MAP_INVALIDATE_BUFFER_BIT' (alias: 'Graphics.GL.Tokens.GL_MAP_INVALIDATE_BUFFER_BIT_EXT')
+-- * 'Graphics.GL.Tokens.GL_MAP_INVALIDATE_RANGE_BIT' (alias: 'Graphics.GL.Tokens.GL_MAP_INVALIDATE_RANGE_BIT_EXT')
+-- * 'Graphics.GL.Tokens.GL_MAP_PERSISTENT_BIT' (alias: 'Graphics.GL.Tokens.GL_MAP_PERSISTENT_BIT_EXT')
+-- * 'Graphics.GL.Tokens.GL_MAP_READ_BIT' (alias: 'Graphics.GL.Tokens.GL_MAP_READ_BIT_EXT')
+-- * 'Graphics.GL.Tokens.GL_MAP_UNSYNCHRONIZED_BIT' (alias: 'Graphics.GL.Tokens.GL_MAP_UNSYNCHRONIZED_BIT_EXT')
+-- * 'Graphics.GL.Tokens.GL_MAP_WRITE_BIT' (alias: 'Graphics.GL.Tokens.GL_MAP_WRITE_BIT_EXT')
+--
+-- === #MapParameterNV# MapParameterNV
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_MAP_TESSELLATION_NV'
+--
+-- === #MapQuery# MapQuery
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_COEFF'
+-- * 'Graphics.GL.Tokens.GL_ORDER'
+-- * 'Graphics.GL.Tokens.GL_DOMAIN'
+--
+-- === #MapTarget# MapTarget
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_GEOMETRY_DEFORMATION_SGIX'
+-- * 'Graphics.GL.Tokens.GL_MAP1_COLOR_4'
+-- * 'Graphics.GL.Tokens.GL_MAP1_INDEX'
+-- * 'Graphics.GL.Tokens.GL_MAP1_NORMAL'
+-- * 'Graphics.GL.Tokens.GL_MAP1_TEXTURE_COORD_1'
+-- * 'Graphics.GL.Tokens.GL_MAP1_TEXTURE_COORD_2'
+-- * 'Graphics.GL.Tokens.GL_MAP1_TEXTURE_COORD_3'
+-- * 'Graphics.GL.Tokens.GL_MAP1_TEXTURE_COORD_4'
+-- * 'Graphics.GL.Tokens.GL_MAP1_VERTEX_3'
+-- * 'Graphics.GL.Tokens.GL_MAP1_VERTEX_4'
+-- * 'Graphics.GL.Tokens.GL_MAP2_COLOR_4'
+-- * 'Graphics.GL.Tokens.GL_MAP2_INDEX'
+-- * 'Graphics.GL.Tokens.GL_MAP2_NORMAL'
+-- * 'Graphics.GL.Tokens.GL_MAP2_TEXTURE_COORD_1'
+-- * 'Graphics.GL.Tokens.GL_MAP2_TEXTURE_COORD_2'
+-- * 'Graphics.GL.Tokens.GL_MAP2_TEXTURE_COORD_3'
+-- * 'Graphics.GL.Tokens.GL_MAP2_TEXTURE_COORD_4'
+-- * 'Graphics.GL.Tokens.GL_MAP2_VERTEX_3'
+-- * 'Graphics.GL.Tokens.GL_MAP2_VERTEX_4'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_DEFORMATION_SGIX'
+--
+-- === #MapTextureFormatINTEL# MapTextureFormatINTEL
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_LAYOUT_DEFAULT_INTEL'
+-- * 'Graphics.GL.Tokens.GL_LAYOUT_LINEAR_CPU_CACHED_INTEL'
+-- * 'Graphics.GL.Tokens.GL_LAYOUT_LINEAR_INTEL'
+--
+-- === #MapTypeNV# MapTypeNV
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_FLOAT'
+-- * 'Graphics.GL.Tokens.GL_DOUBLE'
+--
+-- === #MaterialFace# MaterialFace
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_BACK'
+-- * 'Graphics.GL.Tokens.GL_FRONT'
+-- * 'Graphics.GL.Tokens.GL_FRONT_AND_BACK'
+--
+-- === #MaterialParameter# MaterialParameter
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_AMBIENT'
+-- * 'Graphics.GL.Tokens.GL_AMBIENT_AND_DIFFUSE'
+-- * 'Graphics.GL.Tokens.GL_COLOR_INDEXES'
+-- * 'Graphics.GL.Tokens.GL_DIFFUSE'
+-- * 'Graphics.GL.Tokens.GL_EMISSION'
+-- * 'Graphics.GL.Tokens.GL_SHININESS'
+-- * 'Graphics.GL.Tokens.GL_SPECULAR'
+--
+-- === #MatrixIndexPointerTypeARB# MatrixIndexPointerTypeARB
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_BYTE'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_SHORT'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT'
+--
+-- === #MatrixMode# MatrixMode
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_MODELVIEW' (alias: 'Graphics.GL.Tokens.GL_MODELVIEW0_EXT')
+-- * 'Graphics.GL.Tokens.GL_PROJECTION'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE'
+--
+-- === #MemoryBarrierMask# MemoryBarrierMask
+-- A bitwise combination of several of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_ALL_BARRIER_BITS' (alias: 'Graphics.GL.Tokens.GL_ALL_BARRIER_BITS_EXT')
+-- * 'Graphics.GL.Tokens.GL_ATOMIC_COUNTER_BARRIER_BIT' (alias: 'Graphics.GL.Tokens.GL_ATOMIC_COUNTER_BARRIER_BIT_EXT')
+-- * 'Graphics.GL.Tokens.GL_BUFFER_UPDATE_BARRIER_BIT' (alias: 'Graphics.GL.Tokens.GL_BUFFER_UPDATE_BARRIER_BIT_EXT')
+-- * 'Graphics.GL.Tokens.GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT' (alias: 'Graphics.GL.Tokens.GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT_EXT')
+-- * 'Graphics.GL.Tokens.GL_COMMAND_BARRIER_BIT' (alias: 'Graphics.GL.Tokens.GL_COMMAND_BARRIER_BIT_EXT')
+-- * 'Graphics.GL.Tokens.GL_ELEMENT_ARRAY_BARRIER_BIT' (alias: 'Graphics.GL.Tokens.GL_ELEMENT_ARRAY_BARRIER_BIT_EXT')
+-- * 'Graphics.GL.Tokens.GL_FRAMEBUFFER_BARRIER_BIT' (alias: 'Graphics.GL.Tokens.GL_FRAMEBUFFER_BARRIER_BIT_EXT')
+-- * 'Graphics.GL.Tokens.GL_PIXEL_BUFFER_BARRIER_BIT' (alias: 'Graphics.GL.Tokens.GL_PIXEL_BUFFER_BARRIER_BIT_EXT')
+-- * 'Graphics.GL.Tokens.GL_QUERY_BUFFER_BARRIER_BIT'
+-- * 'Graphics.GL.Tokens.GL_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV'
+-- * 'Graphics.GL.Tokens.GL_SHADER_IMAGE_ACCESS_BARRIER_BIT' (alias: 'Graphics.GL.Tokens.GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT')
+-- * 'Graphics.GL.Tokens.GL_SHADER_STORAGE_BARRIER_BIT'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_FETCH_BARRIER_BIT' (alias: 'Graphics.GL.Tokens.GL_TEXTURE_FETCH_BARRIER_BIT_EXT')
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_UPDATE_BARRIER_BIT' (alias: 'Graphics.GL.Tokens.GL_TEXTURE_UPDATE_BARRIER_BIT_EXT')
+-- * 'Graphics.GL.Tokens.GL_TRANSFORM_FEEDBACK_BARRIER_BIT' (alias: 'Graphics.GL.Tokens.GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT')
+-- * 'Graphics.GL.Tokens.GL_UNIFORM_BARRIER_BIT' (alias: 'Graphics.GL.Tokens.GL_UNIFORM_BARRIER_BIT_EXT')
+-- * 'Graphics.GL.Tokens.GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT' (alias: 'Graphics.GL.Tokens.GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT')
+--
+-- === #MemoryObjectParameterName# MemoryObjectParameterName
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_DEDICATED_MEMORY_OBJECT_EXT'
+-- * 'Graphics.GL.Tokens.GL_PROTECTED_MEMORY_OBJECT_EXT'
+--
+-- === #MeshMode1# MeshMode1
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_LINE'
+-- * 'Graphics.GL.Tokens.GL_POINT'
+--
+-- === #MeshMode2# MeshMode2
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_FILL'
+-- * 'Graphics.GL.Tokens.GL_LINE'
+-- * 'Graphics.GL.Tokens.GL_POINT'
+--
+-- === #MinmaxTargetEXT# MinmaxTargetEXT
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_MINMAX' (alias: 'Graphics.GL.Tokens.GL_MINMAX_EXT')
+--
+-- === #NormalPointerType# NormalPointerType
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_BYTE'
+-- * 'Graphics.GL.Tokens.GL_DOUBLE'
+-- * 'Graphics.GL.Tokens.GL_FLOAT'
+-- * 'Graphics.GL.Tokens.GL_INT'
+-- * 'Graphics.GL.Tokens.GL_SHORT'
+--
+-- === #ObjectIdentifier# ObjectIdentifier
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_BUFFER'
+-- * 'Graphics.GL.Tokens.GL_SHADER'
+-- * 'Graphics.GL.Tokens.GL_PROGRAM'
+-- * 'Graphics.GL.Tokens.GL_VERTEX_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_QUERY'
+-- * 'Graphics.GL.Tokens.GL_PROGRAM_PIPELINE'
+-- * 'Graphics.GL.Tokens.GL_TRANSFORM_FEEDBACK'
+-- * 'Graphics.GL.Tokens.GL_SAMPLER'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE'
+-- * 'Graphics.GL.Tokens.GL_RENDERBUFFER'
+-- * 'Graphics.GL.Tokens.GL_FRAMEBUFFER'
+--
+-- === #ObjectTypeAPPLE# ObjectTypeAPPLE
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_DRAW_PIXELS_APPLE'
+-- * 'Graphics.GL.Tokens.GL_FENCE_APPLE'
+--
+-- === #OcclusionQueryEventMaskAMD# OcclusionQueryEventMaskAMD
+-- A bitwise combination of several of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_QUERY_DEPTH_PASS_EVENT_BIT_AMD'
+-- * 'Graphics.GL.Tokens.GL_QUERY_DEPTH_FAIL_EVENT_BIT_AMD'
+-- * 'Graphics.GL.Tokens.GL_QUERY_STENCIL_FAIL_EVENT_BIT_AMD'
+-- * 'Graphics.GL.Tokens.GL_QUERY_DEPTH_BOUNDS_FAIL_EVENT_BIT_AMD'
+-- * 'Graphics.GL.Tokens.GL_QUERY_ALL_EVENT_BITS_AMD'
+--
+-- === #OcclusionQueryParameterNameNV# OcclusionQueryParameterNameNV
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_PIXEL_COUNT_NV'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_COUNT_AVAILABLE_NV'
+--
+-- === #PNTrianglesPNameATI# PNTrianglesPNameATI
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_PN_TRIANGLES_POINT_MODE_ATI'
+-- * 'Graphics.GL.Tokens.GL_PN_TRIANGLES_NORMAL_MODE_ATI'
+-- * 'Graphics.GL.Tokens.GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI'
+--
+-- === #ParameterRangeEXT# ParameterRangeEXT
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_NORMALIZED_RANGE_EXT'
+-- * 'Graphics.GL.Tokens.GL_FULL_RANGE_EXT'
+--
+-- === #PatchParameterName# PatchParameterName
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_PATCH_VERTICES'
+-- * 'Graphics.GL.Tokens.GL_PATCH_DEFAULT_OUTER_LEVEL'
+-- * 'Graphics.GL.Tokens.GL_PATCH_DEFAULT_INNER_LEVEL'
+--
+-- === #PathColor# PathColor
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_PRIMARY_COLOR'
+-- * 'Graphics.GL.Tokens.GL_PRIMARY_COLOR_NV'
+-- * 'Graphics.GL.Tokens.GL_SECONDARY_COLOR_NV'
+--
+-- === #PathColorFormat# PathColorFormat
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_NONE'
+-- * 'Graphics.GL.Tokens.GL_LUMINANCE'
+-- * 'Graphics.GL.Tokens.GL_ALPHA'
+-- * 'Graphics.GL.Tokens.GL_INTENSITY'
+-- * 'Graphics.GL.Tokens.GL_LUMINANCE_ALPHA'
+-- * 'Graphics.GL.Tokens.GL_RGB'
+-- * 'Graphics.GL.Tokens.GL_RGBA'
+--
+-- === #PathCoordType# PathCoordType
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_CLOSE_PATH_NV'
+-- * 'Graphics.GL.Tokens.GL_MOVE_TO_NV'
+-- * 'Graphics.GL.Tokens.GL_RELATIVE_MOVE_TO_NV'
+-- * 'Graphics.GL.Tokens.GL_LINE_TO_NV'
+-- * 'Graphics.GL.Tokens.GL_RELATIVE_LINE_TO_NV'
+-- * 'Graphics.GL.Tokens.GL_HORIZONTAL_LINE_TO_NV'
+-- * 'Graphics.GL.Tokens.GL_RELATIVE_HORIZONTAL_LINE_TO_NV'
+-- * 'Graphics.GL.Tokens.GL_VERTICAL_LINE_TO_NV'
+-- * 'Graphics.GL.Tokens.GL_RELATIVE_VERTICAL_LINE_TO_NV'
+-- * 'Graphics.GL.Tokens.GL_QUADRATIC_CURVE_TO_NV'
+-- * 'Graphics.GL.Tokens.GL_RELATIVE_QUADRATIC_CURVE_TO_NV'
+-- * 'Graphics.GL.Tokens.GL_CUBIC_CURVE_TO_NV'
+-- * 'Graphics.GL.Tokens.GL_RELATIVE_CUBIC_CURVE_TO_NV'
+-- * 'Graphics.GL.Tokens.GL_SMOOTH_QUADRATIC_CURVE_TO_NV'
+-- * 'Graphics.GL.Tokens.GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV'
+-- * 'Graphics.GL.Tokens.GL_SMOOTH_CUBIC_CURVE_TO_NV'
+-- * 'Graphics.GL.Tokens.GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV'
+-- * 'Graphics.GL.Tokens.GL_SMALL_CCW_ARC_TO_NV'
+-- * 'Graphics.GL.Tokens.GL_RELATIVE_SMALL_CCW_ARC_TO_NV'
+-- * 'Graphics.GL.Tokens.GL_SMALL_CW_ARC_TO_NV'
+-- * 'Graphics.GL.Tokens.GL_RELATIVE_SMALL_CW_ARC_TO_NV'
+-- * 'Graphics.GL.Tokens.GL_LARGE_CCW_ARC_TO_NV'
+-- * 'Graphics.GL.Tokens.GL_RELATIVE_LARGE_CCW_ARC_TO_NV'
+-- * 'Graphics.GL.Tokens.GL_LARGE_CW_ARC_TO_NV'
+-- * 'Graphics.GL.Tokens.GL_RELATIVE_LARGE_CW_ARC_TO_NV'
+-- * 'Graphics.GL.Tokens.GL_CONIC_CURVE_TO_NV'
+-- * 'Graphics.GL.Tokens.GL_RELATIVE_CONIC_CURVE_TO_NV'
+-- * 'Graphics.GL.Tokens.GL_ROUNDED_RECT_NV'
+-- * 'Graphics.GL.Tokens.GL_RELATIVE_ROUNDED_RECT_NV'
+-- * 'Graphics.GL.Tokens.GL_ROUNDED_RECT2_NV'
+-- * 'Graphics.GL.Tokens.GL_RELATIVE_ROUNDED_RECT2_NV'
+-- * 'Graphics.GL.Tokens.GL_ROUNDED_RECT4_NV'
+-- * 'Graphics.GL.Tokens.GL_RELATIVE_ROUNDED_RECT4_NV'
+-- * 'Graphics.GL.Tokens.GL_ROUNDED_RECT8_NV'
+-- * 'Graphics.GL.Tokens.GL_RELATIVE_ROUNDED_RECT8_NV'
+-- * 'Graphics.GL.Tokens.GL_RESTART_PATH_NV'
+-- * 'Graphics.GL.Tokens.GL_DUP_FIRST_CUBIC_CURVE_TO_NV'
+-- * 'Graphics.GL.Tokens.GL_DUP_LAST_CUBIC_CURVE_TO_NV'
+-- * 'Graphics.GL.Tokens.GL_RECT_NV'
+-- * 'Graphics.GL.Tokens.GL_RELATIVE_RECT_NV'
+-- * 'Graphics.GL.Tokens.GL_CIRCULAR_CCW_ARC_TO_NV'
+-- * 'Graphics.GL.Tokens.GL_CIRCULAR_CW_ARC_TO_NV'
+-- * 'Graphics.GL.Tokens.GL_CIRCULAR_TANGENT_ARC_TO_NV'
+-- * 'Graphics.GL.Tokens.GL_ARC_TO_NV'
+-- * 'Graphics.GL.Tokens.GL_RELATIVE_ARC_TO_NV'
+--
+-- === #PathCoverMode# PathCoverMode
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_CONVEX_HULL_NV'
+-- * 'Graphics.GL.Tokens.GL_BOUNDING_BOX_NV'
+-- * 'Graphics.GL.Tokens.GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV'
+-- * 'Graphics.GL.Tokens.GL_PATH_FILL_COVER_MODE_NV'
+--
+-- === #PathElementType# PathElementType
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_UTF8_NV'
+-- * 'Graphics.GL.Tokens.GL_UTF16_NV'
+--
+-- === #PathFillMode# PathFillMode
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_INVERT'
+-- * 'Graphics.GL.Tokens.GL_COUNT_UP_NV'
+-- * 'Graphics.GL.Tokens.GL_COUNT_DOWN_NV'
+-- * 'Graphics.GL.Tokens.GL_PATH_FILL_MODE_NV'
+--
+-- === #PathFontStyle# PathFontStyle
+-- A bitwise combination of several of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_NONE'
+-- * 'Graphics.GL.Tokens.GL_BOLD_BIT_NV'
+-- * 'Graphics.GL.Tokens.GL_ITALIC_BIT_NV'
+--
+-- === #PathFontTarget# PathFontTarget
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_STANDARD_FONT_NAME_NV'
+-- * 'Graphics.GL.Tokens.GL_SYSTEM_FONT_NAME_NV'
+-- * 'Graphics.GL.Tokens.GL_FILE_NAME_NV'
+--
+-- === #PathGenMode# PathGenMode
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_NONE'
+-- * 'Graphics.GL.Tokens.GL_EYE_LINEAR'
+-- * 'Graphics.GL.Tokens.GL_OBJECT_LINEAR'
+-- * 'Graphics.GL.Tokens.GL_PATH_OBJECT_BOUNDING_BOX_NV'
+-- * 'Graphics.GL.Tokens.GL_CONSTANT'
+--
+-- === #PathHandleMissingGlyphs# PathHandleMissingGlyphs
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_SKIP_MISSING_GLYPH_NV'
+-- * 'Graphics.GL.Tokens.GL_USE_MISSING_GLYPH_NV'
+--
+-- === #PathListMode# PathListMode
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_ACCUM_ADJACENT_PAIRS_NV'
+-- * 'Graphics.GL.Tokens.GL_ADJACENT_PAIRS_NV'
+-- * 'Graphics.GL.Tokens.GL_FIRST_TO_REST_NV'
+--
+-- === #PathMetricMask# PathMetricMask
+-- A bitwise combination of several of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_GLYPH_WIDTH_BIT_NV'
+-- * 'Graphics.GL.Tokens.GL_GLYPH_HEIGHT_BIT_NV'
+-- * 'Graphics.GL.Tokens.GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV'
+-- * 'Graphics.GL.Tokens.GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV'
+-- * 'Graphics.GL.Tokens.GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV'
+-- * 'Graphics.GL.Tokens.GL_GLYPH_VERTICAL_BEARING_X_BIT_NV'
+-- * 'Graphics.GL.Tokens.GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV'
+-- * 'Graphics.GL.Tokens.GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV'
+-- * 'Graphics.GL.Tokens.GL_GLYPH_HAS_KERNING_BIT_NV'
+-- * 'Graphics.GL.Tokens.GL_FONT_X_MIN_BOUNDS_BIT_NV'
+-- * 'Graphics.GL.Tokens.GL_FONT_Y_MIN_BOUNDS_BIT_NV'
+-- * 'Graphics.GL.Tokens.GL_FONT_X_MAX_BOUNDS_BIT_NV'
+-- * 'Graphics.GL.Tokens.GL_FONT_Y_MAX_BOUNDS_BIT_NV'
+-- * 'Graphics.GL.Tokens.GL_FONT_UNITS_PER_EM_BIT_NV'
+-- * 'Graphics.GL.Tokens.GL_FONT_ASCENDER_BIT_NV'
+-- * 'Graphics.GL.Tokens.GL_FONT_DESCENDER_BIT_NV'
+-- * 'Graphics.GL.Tokens.GL_FONT_HEIGHT_BIT_NV'
+-- * 'Graphics.GL.Tokens.GL_FONT_MAX_ADVANCE_WIDTH_BIT_NV'
+-- * 'Graphics.GL.Tokens.GL_FONT_MAX_ADVANCE_HEIGHT_BIT_NV'
+-- * 'Graphics.GL.Tokens.GL_FONT_UNDERLINE_POSITION_BIT_NV'
+-- * 'Graphics.GL.Tokens.GL_FONT_UNDERLINE_THICKNESS_BIT_NV'
+-- * 'Graphics.GL.Tokens.GL_FONT_HAS_KERNING_BIT_NV'
+-- * 'Graphics.GL.Tokens.GL_FONT_NUM_GLYPH_INDICES_BIT_NV'
+--
+-- === #PathParameter# PathParameter
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_PATH_STROKE_WIDTH_NV'
+-- * 'Graphics.GL.Tokens.GL_PATH_INITIAL_END_CAP_NV'
+-- * 'Graphics.GL.Tokens.GL_PATH_TERMINAL_END_CAP_NV'
+-- * 'Graphics.GL.Tokens.GL_PATH_JOIN_STYLE_NV'
+-- * 'Graphics.GL.Tokens.GL_PATH_MITER_LIMIT_NV'
+-- * 'Graphics.GL.Tokens.GL_PATH_INITIAL_DASH_CAP_NV'
+-- * 'Graphics.GL.Tokens.GL_PATH_TERMINAL_DASH_CAP_NV'
+-- * 'Graphics.GL.Tokens.GL_PATH_DASH_OFFSET_NV'
+-- * 'Graphics.GL.Tokens.GL_PATH_CLIENT_LENGTH_NV'
+-- * 'Graphics.GL.Tokens.GL_PATH_DASH_OFFSET_RESET_NV'
+-- * 'Graphics.GL.Tokens.GL_PATH_FILL_MODE_NV'
+-- * 'Graphics.GL.Tokens.GL_PATH_FILL_MASK_NV'
+-- * 'Graphics.GL.Tokens.GL_PATH_FILL_COVER_MODE_NV'
+-- * 'Graphics.GL.Tokens.GL_PATH_STROKE_COVER_MODE_NV'
+-- * 'Graphics.GL.Tokens.GL_PATH_STROKE_MASK_NV'
+-- * 'Graphics.GL.Tokens.GL_PATH_END_CAPS_NV'
+-- * 'Graphics.GL.Tokens.GL_PATH_DASH_CAPS_NV'
+-- * 'Graphics.GL.Tokens.GL_PATH_COMMAND_COUNT_NV'
+-- * 'Graphics.GL.Tokens.GL_PATH_COORD_COUNT_NV'
+-- * 'Graphics.GL.Tokens.GL_PATH_DASH_ARRAY_COUNT_NV'
+-- * 'Graphics.GL.Tokens.GL_PATH_COMPUTED_LENGTH_NV'
+-- * 'Graphics.GL.Tokens.GL_PATH_OBJECT_BOUNDING_BOX_NV'
+-- * 'Graphics.GL.Tokens.GL_PATH_FILL_BOUNDING_BOX_NV'
+-- * 'Graphics.GL.Tokens.GL_PATH_STROKE_BOUNDING_BOX_NV'
+--
+-- === #PathStringFormat# PathStringFormat
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_PATH_FORMAT_SVG_NV'
+-- * 'Graphics.GL.Tokens.GL_PATH_FORMAT_PS_NV'
+--
+-- === #PathTransformType# PathTransformType
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_NONE'
+-- * 'Graphics.GL.Tokens.GL_TRANSLATE_X_NV'
+-- * 'Graphics.GL.Tokens.GL_TRANSLATE_Y_NV'
+-- * 'Graphics.GL.Tokens.GL_TRANSLATE_2D_NV'
+-- * 'Graphics.GL.Tokens.GL_TRANSLATE_3D_NV'
+-- * 'Graphics.GL.Tokens.GL_AFFINE_2D_NV'
+-- * 'Graphics.GL.Tokens.GL_AFFINE_3D_NV'
+-- * 'Graphics.GL.Tokens.GL_TRANSPOSE_AFFINE_2D_NV'
+-- * 'Graphics.GL.Tokens.GL_TRANSPOSE_AFFINE_3D_NV'
+--
+-- === #PipelineParameterName# PipelineParameterName
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_ACTIVE_PROGRAM'
+-- * 'Graphics.GL.Tokens.GL_VERTEX_SHADER'
+-- * 'Graphics.GL.Tokens.GL_TESS_CONTROL_SHADER'
+-- * 'Graphics.GL.Tokens.GL_TESS_EVALUATION_SHADER'
+-- * 'Graphics.GL.Tokens.GL_GEOMETRY_SHADER'
+-- * 'Graphics.GL.Tokens.GL_FRAGMENT_SHADER'
+-- * 'Graphics.GL.Tokens.GL_INFO_LOG_LENGTH'
+--
+-- === #PixelCopyType# PixelCopyType
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_COLOR' (alias: 'Graphics.GL.Tokens.GL_COLOR_EXT')
+-- * 'Graphics.GL.Tokens.GL_DEPTH' (alias: 'Graphics.GL.Tokens.GL_DEPTH_EXT')
+-- * 'Graphics.GL.Tokens.GL_STENCIL' (alias: 'Graphics.GL.Tokens.GL_STENCIL_EXT')
+--
+-- === #PixelDataRangeTargetNV# PixelDataRangeTargetNV
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_WRITE_PIXEL_DATA_RANGE_NV'
+-- * 'Graphics.GL.Tokens.GL_READ_PIXEL_DATA_RANGE_NV'
+--
+-- === #PixelFormat# PixelFormat
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_ABGR_EXT'
+-- * 'Graphics.GL.Tokens.GL_ALPHA'
+-- * 'Graphics.GL.Tokens.GL_BGR'
+-- * 'Graphics.GL.Tokens.GL_BGR_INTEGER'
+-- * 'Graphics.GL.Tokens.GL_BGRA'
+-- * 'Graphics.GL.Tokens.GL_BGRA_INTEGER'
+-- * 'Graphics.GL.Tokens.GL_BLUE'
+-- * 'Graphics.GL.Tokens.GL_BLUE_INTEGER'
+-- * 'Graphics.GL.Tokens.GL_CMYKA_EXT'
+-- * 'Graphics.GL.Tokens.GL_CMYK_EXT'
+-- * 'Graphics.GL.Tokens.GL_COLOR_INDEX'
+-- * 'Graphics.GL.Tokens.GL_DEPTH_COMPONENT'
+-- * 'Graphics.GL.Tokens.GL_DEPTH_STENCIL'
+-- * 'Graphics.GL.Tokens.GL_GREEN'
+-- * 'Graphics.GL.Tokens.GL_GREEN_INTEGER'
+-- * 'Graphics.GL.Tokens.GL_LUMINANCE'
+-- * 'Graphics.GL.Tokens.GL_LUMINANCE_ALPHA'
+-- * 'Graphics.GL.Tokens.GL_RED' (alias: 'Graphics.GL.Tokens.GL_RED_EXT')
+-- * 'Graphics.GL.Tokens.GL_RED_INTEGER'
+-- * 'Graphics.GL.Tokens.GL_RG'
+-- * 'Graphics.GL.Tokens.GL_RG_INTEGER'
+-- * 'Graphics.GL.Tokens.GL_RGB'
+-- * 'Graphics.GL.Tokens.GL_RGB_INTEGER'
+-- * 'Graphics.GL.Tokens.GL_RGBA'
+-- * 'Graphics.GL.Tokens.GL_RGBA_INTEGER'
+-- * 'Graphics.GL.Tokens.GL_STENCIL_INDEX'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_SHORT'
+-- * 'Graphics.GL.Tokens.GL_YCRCB_422_SGIX'
+-- * 'Graphics.GL.Tokens.GL_YCRCB_444_SGIX'
+--
+-- === #PixelMap# PixelMap
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_PIXEL_MAP_A_TO_A'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_MAP_B_TO_B'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_MAP_G_TO_G'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_MAP_I_TO_A'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_MAP_I_TO_B'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_MAP_I_TO_G'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_MAP_I_TO_I'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_MAP_I_TO_R'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_MAP_R_TO_R'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_MAP_S_TO_S'
+--
+-- === #PixelStoreParameter# PixelStoreParameter
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_PACK_ALIGNMENT'
+-- * 'Graphics.GL.Tokens.GL_PACK_IMAGE_DEPTH_SGIS'
+-- * 'Graphics.GL.Tokens.GL_PACK_IMAGE_HEIGHT' (alias: 'Graphics.GL.Tokens.GL_PACK_IMAGE_HEIGHT_EXT')
+-- * 'Graphics.GL.Tokens.GL_PACK_LSB_FIRST'
+-- * 'Graphics.GL.Tokens.GL_PACK_RESAMPLE_OML'
+-- * 'Graphics.GL.Tokens.GL_PACK_RESAMPLE_SGIX'
+-- * 'Graphics.GL.Tokens.GL_PACK_ROW_LENGTH'
+-- * 'Graphics.GL.Tokens.GL_PACK_SKIP_IMAGES' (alias: 'Graphics.GL.Tokens.GL_PACK_SKIP_IMAGES_EXT')
+-- * 'Graphics.GL.Tokens.GL_PACK_SKIP_PIXELS'
+-- * 'Graphics.GL.Tokens.GL_PACK_SKIP_ROWS'
+-- * 'Graphics.GL.Tokens.GL_PACK_SKIP_VOLUMES_SGIS'
+-- * 'Graphics.GL.Tokens.GL_PACK_SUBSAMPLE_RATE_SGIX'
+-- * 'Graphics.GL.Tokens.GL_PACK_SWAP_BYTES'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_TILE_CACHE_SIZE_SGIX'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_TILE_GRID_DEPTH_SGIX'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_TILE_GRID_HEIGHT_SGIX'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_TILE_GRID_WIDTH_SGIX'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_TILE_HEIGHT_SGIX'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_TILE_WIDTH_SGIX'
+-- * 'Graphics.GL.Tokens.GL_UNPACK_ALIGNMENT'
+-- * 'Graphics.GL.Tokens.GL_UNPACK_IMAGE_DEPTH_SGIS'
+-- * 'Graphics.GL.Tokens.GL_UNPACK_IMAGE_HEIGHT' (alias: 'Graphics.GL.Tokens.GL_UNPACK_IMAGE_HEIGHT_EXT')
+-- * 'Graphics.GL.Tokens.GL_UNPACK_LSB_FIRST'
+-- * 'Graphics.GL.Tokens.GL_UNPACK_RESAMPLE_OML'
+-- * 'Graphics.GL.Tokens.GL_UNPACK_RESAMPLE_SGIX'
+-- * 'Graphics.GL.Tokens.GL_UNPACK_ROW_LENGTH' (alias: 'Graphics.GL.Tokens.GL_UNPACK_ROW_LENGTH_EXT')
+-- * 'Graphics.GL.Tokens.GL_UNPACK_SKIP_IMAGES' (alias: 'Graphics.GL.Tokens.GL_UNPACK_SKIP_IMAGES_EXT')
+-- * 'Graphics.GL.Tokens.GL_UNPACK_SKIP_PIXELS' (alias: 'Graphics.GL.Tokens.GL_UNPACK_SKIP_PIXELS_EXT')
+-- * 'Graphics.GL.Tokens.GL_UNPACK_SKIP_ROWS' (alias: 'Graphics.GL.Tokens.GL_UNPACK_SKIP_ROWS_EXT')
+-- * 'Graphics.GL.Tokens.GL_UNPACK_SKIP_VOLUMES_SGIS'
+-- * 'Graphics.GL.Tokens.GL_UNPACK_SUBSAMPLE_RATE_SGIX'
+-- * 'Graphics.GL.Tokens.GL_UNPACK_SWAP_BYTES'
+--
+-- === #PixelStoreResampleMode# PixelStoreResampleMode
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_RESAMPLE_DECIMATE_SGIX'
+-- * 'Graphics.GL.Tokens.GL_RESAMPLE_REPLICATE_SGIX'
+-- * 'Graphics.GL.Tokens.GL_RESAMPLE_ZERO_FILL_SGIX'
+--
+-- === #PixelStoreSubsampleRate# PixelStoreSubsampleRate
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_PIXEL_SUBSAMPLE_2424_SGIX'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_SUBSAMPLE_4242_SGIX'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_SUBSAMPLE_4444_SGIX'
+--
+-- === #PixelTexGenMode# PixelTexGenMode
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_LUMINANCE'
+-- * 'Graphics.GL.Tokens.GL_LUMINANCE_ALPHA'
+-- * 'Graphics.GL.Tokens.GL_NONE'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_TEX_GEN_ALPHA_LS_SGIX'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_TEX_GEN_ALPHA_MS_SGIX'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_TEX_GEN_ALPHA_NO_REPLACE_SGIX'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_TEX_GEN_ALPHA_REPLACE_SGIX'
+-- * 'Graphics.GL.Tokens.GL_RGB'
+-- * 'Graphics.GL.Tokens.GL_RGBA'
+--
+-- === #PixelTexGenModeSGIX# PixelTexGenModeSGIX
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_PIXEL_TEX_GEN_Q_CEILING_SGIX'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_TEX_GEN_Q_FLOOR_SGIX'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_TEX_GEN_Q_ROUND_SGIX'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_TEX_GEN_ALPHA_LS_SGIX'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_TEX_GEN_ALPHA_MS_SGIX'
+--
+-- === #PixelTexGenParameterNameSGIS# PixelTexGenParameterNameSGIS
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS'
+--
+-- === #PixelTransferParameter# PixelTransferParameter
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_ALPHA_BIAS'
+-- * 'Graphics.GL.Tokens.GL_ALPHA_SCALE'
+-- * 'Graphics.GL.Tokens.GL_BLUE_BIAS'
+-- * 'Graphics.GL.Tokens.GL_BLUE_SCALE'
+-- * 'Graphics.GL.Tokens.GL_DEPTH_BIAS'
+-- * 'Graphics.GL.Tokens.GL_DEPTH_SCALE'
+-- * 'Graphics.GL.Tokens.GL_GREEN_BIAS'
+-- * 'Graphics.GL.Tokens.GL_GREEN_SCALE'
+-- * 'Graphics.GL.Tokens.GL_INDEX_OFFSET'
+-- * 'Graphics.GL.Tokens.GL_INDEX_SHIFT'
+-- * 'Graphics.GL.Tokens.GL_MAP_COLOR'
+-- * 'Graphics.GL.Tokens.GL_MAP_STENCIL'
+-- * 'Graphics.GL.Tokens.GL_POST_COLOR_MATRIX_ALPHA_BIAS' (alias: 'Graphics.GL.Tokens.GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI')
+-- * 'Graphics.GL.Tokens.GL_POST_COLOR_MATRIX_ALPHA_SCALE' (alias: 'Graphics.GL.Tokens.GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI')
+-- * 'Graphics.GL.Tokens.GL_POST_COLOR_MATRIX_BLUE_BIAS' (alias: 'Graphics.GL.Tokens.GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI')
+-- * 'Graphics.GL.Tokens.GL_POST_COLOR_MATRIX_BLUE_SCALE' (alias: 'Graphics.GL.Tokens.GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI')
+-- * 'Graphics.GL.Tokens.GL_POST_COLOR_MATRIX_GREEN_BIAS' (alias: 'Graphics.GL.Tokens.GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI')
+-- * 'Graphics.GL.Tokens.GL_POST_COLOR_MATRIX_GREEN_SCALE' (alias: 'Graphics.GL.Tokens.GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI')
+-- * 'Graphics.GL.Tokens.GL_POST_COLOR_MATRIX_RED_BIAS' (alias: 'Graphics.GL.Tokens.GL_POST_COLOR_MATRIX_RED_BIAS_SGI')
+-- * 'Graphics.GL.Tokens.GL_POST_COLOR_MATRIX_RED_SCALE' (alias: 'Graphics.GL.Tokens.GL_POST_COLOR_MATRIX_RED_SCALE_SGI')
+-- * 'Graphics.GL.Tokens.GL_POST_CONVOLUTION_ALPHA_BIAS' (alias: 'Graphics.GL.Tokens.GL_POST_CONVOLUTION_ALPHA_BIAS_EXT')
+-- * 'Graphics.GL.Tokens.GL_POST_CONVOLUTION_ALPHA_SCALE' (alias: 'Graphics.GL.Tokens.GL_POST_CONVOLUTION_ALPHA_SCALE_EXT')
+-- * 'Graphics.GL.Tokens.GL_POST_CONVOLUTION_BLUE_BIAS' (alias: 'Graphics.GL.Tokens.GL_POST_CONVOLUTION_BLUE_BIAS_EXT')
+-- * 'Graphics.GL.Tokens.GL_POST_CONVOLUTION_BLUE_SCALE' (alias: 'Graphics.GL.Tokens.GL_POST_CONVOLUTION_BLUE_SCALE_EXT')
+-- * 'Graphics.GL.Tokens.GL_POST_CONVOLUTION_GREEN_BIAS' (alias: 'Graphics.GL.Tokens.GL_POST_CONVOLUTION_GREEN_BIAS_EXT')
+-- * 'Graphics.GL.Tokens.GL_POST_CONVOLUTION_GREEN_SCALE' (alias: 'Graphics.GL.Tokens.GL_POST_CONVOLUTION_GREEN_SCALE_EXT')
+-- * 'Graphics.GL.Tokens.GL_POST_CONVOLUTION_RED_BIAS' (alias: 'Graphics.GL.Tokens.GL_POST_CONVOLUTION_RED_BIAS_EXT')
+-- * 'Graphics.GL.Tokens.GL_POST_CONVOLUTION_RED_SCALE' (alias: 'Graphics.GL.Tokens.GL_POST_CONVOLUTION_RED_SCALE_EXT')
+-- * 'Graphics.GL.Tokens.GL_RED_BIAS'
+-- * 'Graphics.GL.Tokens.GL_RED_SCALE'
+--
+-- === #PixelTransformPNameEXT# PixelTransformPNameEXT
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_PIXEL_MAG_FILTER_EXT'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_MIN_FILTER_EXT'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_CUBIC_WEIGHT_EXT'
+--
+-- === #PixelTransformTargetEXT# PixelTransformTargetEXT
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_PIXEL_TRANSFORM_2D_EXT'
+--
+-- === #PixelType# PixelType
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_BITMAP'
+-- * 'Graphics.GL.Tokens.GL_BYTE'
+-- * 'Graphics.GL.Tokens.GL_FLOAT'
+-- * 'Graphics.GL.Tokens.GL_INT'
+-- * 'Graphics.GL.Tokens.GL_SHORT'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_BYTE'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_BYTE_3_3_2' (alias: 'Graphics.GL.Tokens.GL_UNSIGNED_BYTE_3_3_2_EXT')
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_10_10_10_2' (alias: 'Graphics.GL.Tokens.GL_UNSIGNED_INT_10_10_10_2_EXT')
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_8_8_8_8' (alias: 'Graphics.GL.Tokens.GL_UNSIGNED_INT_8_8_8_8_EXT')
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_SHORT'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_SHORT_4_4_4_4' (alias: 'Graphics.GL.Tokens.GL_UNSIGNED_SHORT_4_4_4_4_EXT')
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_SHORT_5_5_5_1' (alias: 'Graphics.GL.Tokens.GL_UNSIGNED_SHORT_5_5_5_1_EXT')
+--
+-- === #PointParameterNameARB# PointParameterNameARB
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_POINT_SIZE_MIN_EXT'
+-- * 'Graphics.GL.Tokens.GL_POINT_SIZE_MAX_EXT'
+-- * 'Graphics.GL.Tokens.GL_POINT_FADE_THRESHOLD_SIZE' (alias: 'Graphics.GL.Tokens.GL_POINT_FADE_THRESHOLD_SIZE_EXT')
+--
+-- === #PointParameterNameSGIS# PointParameterNameSGIS
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_DISTANCE_ATTENUATION_EXT' (aliases: 'Graphics.GL.Tokens.GL_DISTANCE_ATTENUATION_SGIS', 'Graphics.GL.Tokens.GL_POINT_DISTANCE_ATTENUATION', 'Graphics.GL.Tokens.GL_POINT_DISTANCE_ATTENUATION_ARB')
+-- * 'Graphics.GL.Tokens.GL_POINT_FADE_THRESHOLD_SIZE' (aliases: 'Graphics.GL.Tokens.GL_POINT_FADE_THRESHOLD_SIZE_ARB', 'Graphics.GL.Tokens.GL_POINT_FADE_THRESHOLD_SIZE_EXT', 'Graphics.GL.Tokens.GL_POINT_FADE_THRESHOLD_SIZE_SGIS')
+-- * 'Graphics.GL.Tokens.GL_POINT_SIZE_MAX' (aliases: 'Graphics.GL.Tokens.GL_POINT_SIZE_MAX_ARB', 'Graphics.GL.Tokens.GL_POINT_SIZE_MAX_EXT', 'Graphics.GL.Tokens.GL_POINT_SIZE_MAX_SGIS')
+-- * 'Graphics.GL.Tokens.GL_POINT_SIZE_MIN' (aliases: 'Graphics.GL.Tokens.GL_POINT_SIZE_MIN_ARB', 'Graphics.GL.Tokens.GL_POINT_SIZE_MIN_EXT', 'Graphics.GL.Tokens.GL_POINT_SIZE_MIN_SGIS')
+--
+-- === #PolygonMode# PolygonMode
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_FILL'
+-- * 'Graphics.GL.Tokens.GL_LINE'
+-- * 'Graphics.GL.Tokens.GL_POINT'
+--
+-- === #PrecisionType# PrecisionType
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_LOW_FLOAT'
+-- * 'Graphics.GL.Tokens.GL_MEDIUM_FLOAT'
+-- * 'Graphics.GL.Tokens.GL_HIGH_FLOAT'
+-- * 'Graphics.GL.Tokens.GL_LOW_INT'
+-- * 'Graphics.GL.Tokens.GL_MEDIUM_INT'
+-- * 'Graphics.GL.Tokens.GL_HIGH_INT'
+--
+-- === #PreserveModeATI# PreserveModeATI
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_PRESERVE_ATI'
+-- * 'Graphics.GL.Tokens.GL_DISCARD_ATI'
+--
+-- === #PrimitiveType# PrimitiveType
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_LINES'
+-- * 'Graphics.GL.Tokens.GL_LINES_ADJACENCY' (aliases: 'Graphics.GL.Tokens.GL_LINES_ADJACENCY_ARB', 'Graphics.GL.Tokens.GL_LINES_ADJACENCY_EXT')
+-- * 'Graphics.GL.Tokens.GL_LINE_LOOP'
+-- * 'Graphics.GL.Tokens.GL_LINE_STRIP'
+-- * 'Graphics.GL.Tokens.GL_LINE_STRIP_ADJACENCY' (aliases: 'Graphics.GL.Tokens.GL_LINE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Tokens.GL_LINE_STRIP_ADJACENCY_EXT')
+-- * 'Graphics.GL.Tokens.GL_PATCHES' (alias: 'Graphics.GL.Tokens.GL_PATCHES_EXT')
+-- * 'Graphics.GL.Tokens.GL_POINTS'
+-- * 'Graphics.GL.Tokens.GL_POLYGON'
+-- * 'Graphics.GL.Tokens.GL_QUADS' (alias: 'Graphics.GL.Tokens.GL_QUADS_EXT')
+-- * 'Graphics.GL.Tokens.GL_QUAD_STRIP'
+-- * 'Graphics.GL.Tokens.GL_TRIANGLES'
+-- * 'Graphics.GL.Tokens.GL_TRIANGLES_ADJACENCY' (aliases: 'Graphics.GL.Tokens.GL_TRIANGLES_ADJACENCY_ARB', 'Graphics.GL.Tokens.GL_TRIANGLES_ADJACENCY_EXT')
+-- * 'Graphics.GL.Tokens.GL_TRIANGLE_FAN'
+-- * 'Graphics.GL.Tokens.GL_TRIANGLE_STRIP'
+-- * 'Graphics.GL.Tokens.GL_TRIANGLE_STRIP_ADJACENCY' (aliases: 'Graphics.GL.Tokens.GL_TRIANGLE_STRIP_ADJACENCY_ARB', 'Graphics.GL.Tokens.GL_TRIANGLE_STRIP_ADJACENCY_EXT')
+--
+-- === #ProgramFormat# ProgramFormat
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_PROGRAM_FORMAT_ASCII_ARB'
+--
+-- === #ProgramInterface# ProgramInterface
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_UNIFORM'
+-- * 'Graphics.GL.Tokens.GL_UNIFORM_BLOCK'
+-- * 'Graphics.GL.Tokens.GL_PROGRAM_INPUT'
+-- * 'Graphics.GL.Tokens.GL_PROGRAM_OUTPUT'
+-- * 'Graphics.GL.Tokens.GL_VERTEX_SUBROUTINE'
+-- * 'Graphics.GL.Tokens.GL_TESS_CONTROL_SUBROUTINE'
+-- * 'Graphics.GL.Tokens.GL_TESS_EVALUATION_SUBROUTINE'
+-- * 'Graphics.GL.Tokens.GL_GEOMETRY_SUBROUTINE'
+-- * 'Graphics.GL.Tokens.GL_FRAGMENT_SUBROUTINE'
+-- * 'Graphics.GL.Tokens.GL_COMPUTE_SUBROUTINE'
+-- * 'Graphics.GL.Tokens.GL_VERTEX_SUBROUTINE_UNIFORM'
+-- * 'Graphics.GL.Tokens.GL_TESS_CONTROL_SUBROUTINE_UNIFORM'
+-- * 'Graphics.GL.Tokens.GL_TESS_EVALUATION_SUBROUTINE_UNIFORM'
+-- * 'Graphics.GL.Tokens.GL_GEOMETRY_SUBROUTINE_UNIFORM'
+-- * 'Graphics.GL.Tokens.GL_FRAGMENT_SUBROUTINE_UNIFORM'
+-- * 'Graphics.GL.Tokens.GL_COMPUTE_SUBROUTINE_UNIFORM'
+-- * 'Graphics.GL.Tokens.GL_TRANSFORM_FEEDBACK_VARYING'
+-- * 'Graphics.GL.Tokens.GL_TRANSFORM_FEEDBACK_BUFFER'
+-- * 'Graphics.GL.Tokens.GL_BUFFER_VARIABLE'
+-- * 'Graphics.GL.Tokens.GL_SHADER_STORAGE_BLOCK'
+--
+-- === #ProgramInterfacePName# ProgramInterfacePName
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_ACTIVE_RESOURCES'
+-- * 'Graphics.GL.Tokens.GL_MAX_NAME_LENGTH'
+-- * 'Graphics.GL.Tokens.GL_MAX_NUM_ACTIVE_VARIABLES'
+-- * 'Graphics.GL.Tokens.GL_MAX_NUM_COMPATIBLE_SUBROUTINES'
+--
+-- === #ProgramParameterPName# ProgramParameterPName
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_PROGRAM_BINARY_RETRIEVABLE_HINT'
+-- * 'Graphics.GL.Tokens.GL_PROGRAM_SEPARABLE'
+--
+-- === #ProgramPropertyARB# ProgramPropertyARB
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_DELETE_STATUS'
+-- * 'Graphics.GL.Tokens.GL_LINK_STATUS'
+-- * 'Graphics.GL.Tokens.GL_VALIDATE_STATUS'
+-- * 'Graphics.GL.Tokens.GL_INFO_LOG_LENGTH'
+-- * 'Graphics.GL.Tokens.GL_ATTACHED_SHADERS'
+-- * 'Graphics.GL.Tokens.GL_ACTIVE_ATOMIC_COUNTER_BUFFERS'
+-- * 'Graphics.GL.Tokens.GL_ACTIVE_ATTRIBUTES'
+-- * 'Graphics.GL.Tokens.GL_ACTIVE_ATTRIBUTE_MAX_LENGTH'
+-- * 'Graphics.GL.Tokens.GL_ACTIVE_UNIFORMS'
+-- * 'Graphics.GL.Tokens.GL_ACTIVE_UNIFORM_BLOCKS'
+-- * 'Graphics.GL.Tokens.GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH'
+-- * 'Graphics.GL.Tokens.GL_ACTIVE_UNIFORM_MAX_LENGTH'
+-- * 'Graphics.GL.Tokens.GL_COMPUTE_WORK_GROUP_SIZE'
+-- * 'Graphics.GL.Tokens.GL_PROGRAM_BINARY_LENGTH'
+-- * 'Graphics.GL.Tokens.GL_TRANSFORM_FEEDBACK_BUFFER_MODE'
+-- * 'Graphics.GL.Tokens.GL_TRANSFORM_FEEDBACK_VARYINGS'
+-- * 'Graphics.GL.Tokens.GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH'
+-- * 'Graphics.GL.Tokens.GL_GEOMETRY_VERTICES_OUT'
+-- * 'Graphics.GL.Tokens.GL_GEOMETRY_INPUT_TYPE'
+-- * 'Graphics.GL.Tokens.GL_GEOMETRY_OUTPUT_TYPE'
+--
+-- === #ProgramResourceProperty# ProgramResourceProperty
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_ACTIVE_VARIABLES'
+-- * 'Graphics.GL.Tokens.GL_BUFFER_BINDING'
+-- * 'Graphics.GL.Tokens.GL_NUM_ACTIVE_VARIABLES'
+-- * 'Graphics.GL.Tokens.GL_ARRAY_SIZE'
+-- * 'Graphics.GL.Tokens.GL_ARRAY_STRIDE'
+-- * 'Graphics.GL.Tokens.GL_BLOCK_INDEX'
+-- * 'Graphics.GL.Tokens.GL_IS_ROW_MAJOR'
+-- * 'Graphics.GL.Tokens.GL_MATRIX_STRIDE'
+-- * 'Graphics.GL.Tokens.GL_ATOMIC_COUNTER_BUFFER_INDEX'
+-- * 'Graphics.GL.Tokens.GL_BUFFER_DATA_SIZE'
+-- * 'Graphics.GL.Tokens.GL_NUM_COMPATIBLE_SUBROUTINES'
+-- * 'Graphics.GL.Tokens.GL_COMPATIBLE_SUBROUTINES'
+-- * 'Graphics.GL.Tokens.GL_IS_PER_PATCH'
+-- * 'Graphics.GL.Tokens.GL_LOCATION'
+-- * 'Graphics.GL.Tokens.GL_UNIFORM'
+-- * 'Graphics.GL.Tokens.GL_LOCATION_COMPONENT'
+-- * 'Graphics.GL.Tokens.GL_LOCATION_INDEX'
+-- * 'Graphics.GL.Tokens.GL_NAME_LENGTH'
+-- * 'Graphics.GL.Tokens.GL_OFFSET'
+-- * 'Graphics.GL.Tokens.GL_REFERENCED_BY_VERTEX_SHADER'
+-- * 'Graphics.GL.Tokens.GL_REFERENCED_BY_TESS_CONTROL_SHADER'
+-- * 'Graphics.GL.Tokens.GL_REFERENCED_BY_TESS_EVALUATION_SHADER'
+-- * 'Graphics.GL.Tokens.GL_REFERENCED_BY_GEOMETRY_SHADER'
+-- * 'Graphics.GL.Tokens.GL_REFERENCED_BY_FRAGMENT_SHADER'
+-- * 'Graphics.GL.Tokens.GL_REFERENCED_BY_COMPUTE_SHADER'
+-- * 'Graphics.GL.Tokens.GL_TRANSFORM_FEEDBACK_BUFFER_INDEX'
+-- * 'Graphics.GL.Tokens.GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE'
+-- * 'Graphics.GL.Tokens.GL_TOP_LEVEL_ARRAY_SIZE'
+-- * 'Graphics.GL.Tokens.GL_TOP_LEVEL_ARRAY_STRIDE'
+-- * 'Graphics.GL.Tokens.GL_TYPE'
+--
+-- === #ProgramStagePName# ProgramStagePName
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_ACTIVE_SUBROUTINE_UNIFORMS'
+-- * 'Graphics.GL.Tokens.GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS'
+-- * 'Graphics.GL.Tokens.GL_ACTIVE_SUBROUTINES'
+-- * 'Graphics.GL.Tokens.GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH'
+-- * 'Graphics.GL.Tokens.GL_ACTIVE_SUBROUTINE_MAX_LENGTH'
+--
+-- === #ProgramStringProperty# ProgramStringProperty
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_PROGRAM_STRING_ARB'
+--
+-- === #ProgramTarget# ProgramTarget
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_FRAGMENT_PROGRAM_ARB'
+-- * 'Graphics.GL.Tokens.GL_VERTEX_PROGRAM_ARB'
+-- * 'Graphics.GL.Tokens.GL_TEXT_FRAGMENT_SHADER_ATI'
+-- * 'Graphics.GL.Tokens.GL_COMPUTE_PROGRAM_NV'
+-- * 'Graphics.GL.Tokens.GL_GEOMETRY_PROGRAM_NV'
+-- * 'Graphics.GL.Tokens.GL_TESS_CONTROL_PROGRAM_NV'
+-- * 'Graphics.GL.Tokens.GL_TESS_EVALUATION_PROGRAM_NV'
+--
+-- === #QueryCounterTarget# QueryCounterTarget
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_TIMESTAMP'
+--
+-- === #QueryObjectParameterName# QueryObjectParameterName
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_QUERY_RESULT_AVAILABLE'
+-- * 'Graphics.GL.Tokens.GL_QUERY_RESULT'
+-- * 'Graphics.GL.Tokens.GL_QUERY_RESULT_NO_WAIT'
+-- * 'Graphics.GL.Tokens.GL_QUERY_TARGET'
+--
+-- === #QueryParameterName# QueryParameterName
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_CURRENT_QUERY'
+-- * 'Graphics.GL.Tokens.GL_QUERY_COUNTER_BITS'
+--
+-- === #QueryTarget# QueryTarget
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_SAMPLES_PASSED'
+-- * 'Graphics.GL.Tokens.GL_ANY_SAMPLES_PASSED'
+-- * 'Graphics.GL.Tokens.GL_ANY_SAMPLES_PASSED_CONSERVATIVE'
+-- * 'Graphics.GL.Tokens.GL_PRIMITIVES_GENERATED'
+-- * 'Graphics.GL.Tokens.GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN'
+-- * 'Graphics.GL.Tokens.GL_TIME_ELAPSED'
+-- * 'Graphics.GL.Tokens.GL_TRANSFORM_FEEDBACK_OVERFLOW'
+-- * 'Graphics.GL.Tokens.GL_VERTICES_SUBMITTED'
+-- * 'Graphics.GL.Tokens.GL_PRIMITIVES_SUBMITTED'
+-- * 'Graphics.GL.Tokens.GL_VERTEX_SHADER_INVOCATIONS'
+--
+-- === #ReadBufferMode# ReadBufferMode
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_NONE' (alias: 'Graphics.GL.Tokens.GL_NONE_OES')
+-- * 'Graphics.GL.Tokens.GL_AUX0'
+-- * 'Graphics.GL.Tokens.GL_AUX1'
+-- * 'Graphics.GL.Tokens.GL_AUX2'
+-- * 'Graphics.GL.Tokens.GL_AUX3'
+-- * 'Graphics.GL.Tokens.GL_BACK'
+-- * 'Graphics.GL.Tokens.GL_BACK_LEFT'
+-- * 'Graphics.GL.Tokens.GL_BACK_RIGHT'
+-- * 'Graphics.GL.Tokens.GL_FRONT'
+-- * 'Graphics.GL.Tokens.GL_FRONT_LEFT'
+-- * 'Graphics.GL.Tokens.GL_FRONT_RIGHT'
+-- * 'Graphics.GL.Tokens.GL_LEFT'
+-- * 'Graphics.GL.Tokens.GL_RIGHT'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT0'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT1'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT2'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT3'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT4'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT5'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT6'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT7'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT8'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT9'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT10'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT11'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT12'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT13'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT14'
+-- * 'Graphics.GL.Tokens.GL_COLOR_ATTACHMENT15'
+--
+-- === #RenderbufferParameterName# RenderbufferParameterName
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_RENDERBUFFER_WIDTH' (aliases: 'Graphics.GL.Tokens.GL_RENDERBUFFER_WIDTH_EXT', 'Graphics.GL.Tokens.GL_RENDERBUFFER_WIDTH_OES')
+-- * 'Graphics.GL.Tokens.GL_RENDERBUFFER_HEIGHT' (aliases: 'Graphics.GL.Tokens.GL_RENDERBUFFER_HEIGHT_EXT', 'Graphics.GL.Tokens.GL_RENDERBUFFER_HEIGHT_OES')
+-- * 'Graphics.GL.Tokens.GL_RENDERBUFFER_INTERNAL_FORMAT' (aliases: 'Graphics.GL.Tokens.GL_RENDERBUFFER_INTERNAL_FORMAT_EXT', 'Graphics.GL.Tokens.GL_RENDERBUFFER_INTERNAL_FORMAT_OES')
+-- * 'Graphics.GL.Tokens.GL_RENDERBUFFER_SAMPLES_IMG'
+-- * 'Graphics.GL.Tokens.GL_RENDERBUFFER_RED_SIZE' (aliases: 'Graphics.GL.Tokens.GL_RENDERBUFFER_RED_SIZE_EXT', 'Graphics.GL.Tokens.GL_RENDERBUFFER_RED_SIZE_OES')
+-- * 'Graphics.GL.Tokens.GL_RENDERBUFFER_GREEN_SIZE' (aliases: 'Graphics.GL.Tokens.GL_RENDERBUFFER_GREEN_SIZE_EXT', 'Graphics.GL.Tokens.GL_RENDERBUFFER_GREEN_SIZE_OES')
+-- * 'Graphics.GL.Tokens.GL_RENDERBUFFER_BLUE_SIZE' (aliases: 'Graphics.GL.Tokens.GL_RENDERBUFFER_BLUE_SIZE_EXT', 'Graphics.GL.Tokens.GL_RENDERBUFFER_BLUE_SIZE_OES')
+-- * 'Graphics.GL.Tokens.GL_RENDERBUFFER_ALPHA_SIZE' (aliases: 'Graphics.GL.Tokens.GL_RENDERBUFFER_ALPHA_SIZE_EXT', 'Graphics.GL.Tokens.GL_RENDERBUFFER_ALPHA_SIZE_OES')
+-- * 'Graphics.GL.Tokens.GL_RENDERBUFFER_DEPTH_SIZE' (aliases: 'Graphics.GL.Tokens.GL_RENDERBUFFER_DEPTH_SIZE_EXT', 'Graphics.GL.Tokens.GL_RENDERBUFFER_DEPTH_SIZE_OES')
+-- * 'Graphics.GL.Tokens.GL_RENDERBUFFER_STENCIL_SIZE' (aliases: 'Graphics.GL.Tokens.GL_RENDERBUFFER_STENCIL_SIZE_EXT', 'Graphics.GL.Tokens.GL_RENDERBUFFER_STENCIL_SIZE_OES')
+-- * 'Graphics.GL.Tokens.GL_RENDERBUFFER_STORAGE_SAMPLES_AMD'
+-- * 'Graphics.GL.Tokens.GL_RENDERBUFFER_COVERAGE_SAMPLES_NV' (aliases: 'Graphics.GL.Tokens.GL_RENDERBUFFER_SAMPLES', 'Graphics.GL.Tokens.GL_RENDERBUFFER_SAMPLES_ANGLE', 'Graphics.GL.Tokens.GL_RENDERBUFFER_SAMPLES_APPLE', 'Graphics.GL.Tokens.GL_RENDERBUFFER_SAMPLES_EXT', 'Graphics.GL.Tokens.GL_RENDERBUFFER_SAMPLES_NV')
+-- * 'Graphics.GL.Tokens.GL_RENDERBUFFER_COLOR_SAMPLES_NV'
+--
+-- === #RenderbufferTarget# RenderbufferTarget
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_RENDERBUFFER' (alias: 'Graphics.GL.Tokens.GL_RENDERBUFFER_OES')
+--
+-- === #RenderingMode# RenderingMode
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_FEEDBACK'
+-- * 'Graphics.GL.Tokens.GL_RENDER'
+-- * 'Graphics.GL.Tokens.GL_SELECT'
+--
+-- === #ReplacementCodeTypeSUN# ReplacementCodeTypeSUN
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_BYTE'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_SHORT'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT'
+--
+-- === #SamplePatternEXT# SamplePatternEXT
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_1PASS_EXT'
+-- * 'Graphics.GL.Tokens.GL_2PASS_0_EXT'
+-- * 'Graphics.GL.Tokens.GL_2PASS_1_EXT'
+-- * 'Graphics.GL.Tokens.GL_4PASS_0_EXT'
+-- * 'Graphics.GL.Tokens.GL_4PASS_1_EXT'
+-- * 'Graphics.GL.Tokens.GL_4PASS_2_EXT'
+-- * 'Graphics.GL.Tokens.GL_4PASS_3_EXT'
+--
+-- === #SamplePatternSGIS# SamplePatternSGIS
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_1PASS_EXT' (alias: 'Graphics.GL.Tokens.GL_1PASS_SGIS')
+-- * 'Graphics.GL.Tokens.GL_2PASS_0_EXT' (alias: 'Graphics.GL.Tokens.GL_2PASS_0_SGIS')
+-- * 'Graphics.GL.Tokens.GL_2PASS_1_EXT' (alias: 'Graphics.GL.Tokens.GL_2PASS_1_SGIS')
+-- * 'Graphics.GL.Tokens.GL_4PASS_0_EXT' (alias: 'Graphics.GL.Tokens.GL_4PASS_0_SGIS')
+-- * 'Graphics.GL.Tokens.GL_4PASS_1_EXT' (alias: 'Graphics.GL.Tokens.GL_4PASS_1_SGIS')
+-- * 'Graphics.GL.Tokens.GL_4PASS_2_EXT' (alias: 'Graphics.GL.Tokens.GL_4PASS_2_SGIS')
+-- * 'Graphics.GL.Tokens.GL_4PASS_3_EXT' (alias: 'Graphics.GL.Tokens.GL_4PASS_3_SGIS')
+--
+-- === #SamplerParameterF# SamplerParameterF
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_BORDER_COLOR'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_MIN_LOD'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_MAX_LOD'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_MAX_ANISOTROPY'
+--
+-- === #SamplerParameterI# SamplerParameterI
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_WRAP_S'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_WRAP_T'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_WRAP_R'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_MIN_FILTER'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_MAG_FILTER'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_COMPARE_MODE'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_COMPARE_FUNC'
+--
+-- === #ScalarType# ScalarType
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_BYTE'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_SHORT'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT'
+--
+-- === #SecondaryColorPointerTypeIBM# SecondaryColorPointerTypeIBM
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_SHORT'
+-- * 'Graphics.GL.Tokens.GL_INT'
+-- * 'Graphics.GL.Tokens.GL_FLOAT'
+-- * 'Graphics.GL.Tokens.GL_DOUBLE'
+--
+-- === #SemaphoreParameterName# SemaphoreParameterName
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_D3D12_FENCE_VALUE_EXT'
+--
+-- === #SeparableTargetEXT# SeparableTargetEXT
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_SEPARABLE_2D' (alias: 'Graphics.GL.Tokens.GL_SEPARABLE_2D_EXT')
+--
+-- === #ShaderParameterName# ShaderParameterName
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_SHADER_TYPE'
+-- * 'Graphics.GL.Tokens.GL_DELETE_STATUS'
+-- * 'Graphics.GL.Tokens.GL_COMPILE_STATUS'
+-- * 'Graphics.GL.Tokens.GL_INFO_LOG_LENGTH'
+-- * 'Graphics.GL.Tokens.GL_SHADER_SOURCE_LENGTH'
+--
+-- === #ShaderType# ShaderType
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_COMPUTE_SHADER'
+-- * 'Graphics.GL.Tokens.GL_VERTEX_SHADER' (alias: 'Graphics.GL.Tokens.GL_VERTEX_SHADER_ARB')
+-- * 'Graphics.GL.Tokens.GL_TESS_CONTROL_SHADER'
+-- * 'Graphics.GL.Tokens.GL_TESS_EVALUATION_SHADER'
+-- * 'Graphics.GL.Tokens.GL_GEOMETRY_SHADER'
+-- * 'Graphics.GL.Tokens.GL_FRAGMENT_SHADER' (alias: 'Graphics.GL.Tokens.GL_FRAGMENT_SHADER_ARB')
+--
+-- === #ShadingModel# ShadingModel
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_FLAT'
+-- * 'Graphics.GL.Tokens.GL_SMOOTH'
+--
+-- === #SpriteParameterNameSGIX# SpriteParameterNameSGIX
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_SPRITE_MODE_SGIX'
+--
+-- === #StencilFaceDirection# StencilFaceDirection
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_FRONT'
+-- * 'Graphics.GL.Tokens.GL_BACK'
+-- * 'Graphics.GL.Tokens.GL_FRONT_AND_BACK'
+--
+-- === #StencilFunction# StencilFunction
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_ALWAYS'
+-- * 'Graphics.GL.Tokens.GL_EQUAL'
+-- * 'Graphics.GL.Tokens.GL_GEQUAL'
+-- * 'Graphics.GL.Tokens.GL_GREATER'
+-- * 'Graphics.GL.Tokens.GL_LEQUAL'
+-- * 'Graphics.GL.Tokens.GL_LESS'
+-- * 'Graphics.GL.Tokens.GL_NEVER'
+-- * 'Graphics.GL.Tokens.GL_NOTEQUAL'
+--
+-- === #StencilOp# StencilOp
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_DECR'
+-- * 'Graphics.GL.Tokens.GL_DECR_WRAP'
+-- * 'Graphics.GL.Tokens.GL_INCR'
+-- * 'Graphics.GL.Tokens.GL_INCR_WRAP'
+-- * 'Graphics.GL.Tokens.GL_INVERT'
+-- * 'Graphics.GL.Tokens.GL_KEEP'
+-- * 'Graphics.GL.Tokens.GL_REPLACE'
+-- * 'Graphics.GL.Tokens.GL_ZERO'
+--
+-- === #StringName# StringName
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_EXTENSIONS'
+-- * 'Graphics.GL.Tokens.GL_RENDERER'
+-- * 'Graphics.GL.Tokens.GL_VENDOR'
+-- * 'Graphics.GL.Tokens.GL_VERSION'
+-- * 'Graphics.GL.Tokens.GL_SHADING_LANGUAGE_VERSION'
+--
+-- === #SubgroupSupportedFeatures# SubgroupSupportedFeatures
+-- A bitwise combination of several of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_SUBGROUP_FEATURE_BASIC_BIT_KHR'
+-- * 'Graphics.GL.Tokens.GL_SUBGROUP_FEATURE_VOTE_BIT_KHR'
+-- * 'Graphics.GL.Tokens.GL_SUBGROUP_FEATURE_ARITHMETIC_BIT_KHR'
+-- * 'Graphics.GL.Tokens.GL_SUBGROUP_FEATURE_BALLOT_BIT_KHR'
+-- * 'Graphics.GL.Tokens.GL_SUBGROUP_FEATURE_SHUFFLE_BIT_KHR'
+-- * 'Graphics.GL.Tokens.GL_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT_KHR'
+-- * 'Graphics.GL.Tokens.GL_SUBGROUP_FEATURE_CLUSTERED_BIT_KHR'
+-- * 'Graphics.GL.Tokens.GL_SUBGROUP_FEATURE_QUAD_BIT_KHR'
+-- * 'Graphics.GL.Tokens.GL_SUBGROUP_FEATURE_PARTITIONED_BIT_NV'
+--
+-- === #SubroutineParameterName# SubroutineParameterName
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_NUM_COMPATIBLE_SUBROUTINES'
+-- * 'Graphics.GL.Tokens.GL_COMPATIBLE_SUBROUTINES'
+-- * 'Graphics.GL.Tokens.GL_UNIFORM_SIZE'
+-- * 'Graphics.GL.Tokens.GL_UNIFORM_NAME_LENGTH'
+--
+-- === #SwizzleOpATI# SwizzleOpATI
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_SWIZZLE_STR_ATI'
+-- * 'Graphics.GL.Tokens.GL_SWIZZLE_STQ_ATI'
+-- * 'Graphics.GL.Tokens.GL_SWIZZLE_STR_DR_ATI'
+-- * 'Graphics.GL.Tokens.GL_SWIZZLE_STQ_DQ_ATI'
+--
+-- === #SyncCondition# SyncCondition
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_SYNC_GPU_COMMANDS_COMPLETE'
+--
+-- === #SyncObjectMask# SyncObjectMask
+-- A bitwise combination of several of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_SYNC_FLUSH_COMMANDS_BIT' (alias: 'Graphics.GL.Tokens.GL_SYNC_FLUSH_COMMANDS_BIT_APPLE')
+--
+-- === #SyncParameterName# SyncParameterName
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_OBJECT_TYPE'
+-- * 'Graphics.GL.Tokens.GL_SYNC_STATUS'
+-- * 'Graphics.GL.Tokens.GL_SYNC_CONDITION'
+-- * 'Graphics.GL.Tokens.GL_SYNC_FLAGS'
+--
+-- === #SyncStatus# SyncStatus
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_ALREADY_SIGNALED'
+-- * 'Graphics.GL.Tokens.GL_TIMEOUT_EXPIRED'
+-- * 'Graphics.GL.Tokens.GL_CONDITION_SATISFIED'
+-- * 'Graphics.GL.Tokens.GL_WAIT_FAILED'
+--
+-- === #TangentPointerTypeEXT# TangentPointerTypeEXT
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_BYTE'
+-- * 'Graphics.GL.Tokens.GL_SHORT'
+-- * 'Graphics.GL.Tokens.GL_INT'
+-- * 'Graphics.GL.Tokens.GL_FLOAT'
+-- * 'Graphics.GL.Tokens.GL_DOUBLE' (alias: 'Graphics.GL.Tokens.GL_DOUBLE_EXT')
+--
+-- === #TexBumpParameterATI# TexBumpParameterATI
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_BUMP_ROT_MATRIX_ATI'
+--
+-- === #TexCoordPointerType# TexCoordPointerType
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_DOUBLE'
+-- * 'Graphics.GL.Tokens.GL_FLOAT'
+-- * 'Graphics.GL.Tokens.GL_INT'
+-- * 'Graphics.GL.Tokens.GL_SHORT'
+--
+-- === #TextureCompareMode# TextureCompareMode
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_NONE'
+-- * 'Graphics.GL.Tokens.GL_COMPARE_REF_TO_TEXTURE' (alias: 'Graphics.GL.Tokens.GL_COMPARE_R_TO_TEXTURE')
+--
+-- === #TextureCoordName# TextureCoordName
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_S'
+-- * 'Graphics.GL.Tokens.GL_T'
+-- * 'Graphics.GL.Tokens.GL_R'
+-- * 'Graphics.GL.Tokens.GL_Q'
+--
+-- === #TextureEnvMode# TextureEnvMode
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_ADD'
+-- * 'Graphics.GL.Tokens.GL_BLEND'
+-- * 'Graphics.GL.Tokens.GL_DECAL'
+-- * 'Graphics.GL.Tokens.GL_MODULATE'
+-- * 'Graphics.GL.Tokens.GL_REPLACE_EXT'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_ENV_BIAS_SGIX'
+--
+-- === #TextureEnvParameter# TextureEnvParameter
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_ENV_COLOR'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_ENV_MODE'
+--
+-- === #TextureEnvTarget# TextureEnvTarget
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_ENV'
+--
+-- === #TextureFilterFuncSGIS# TextureFilterFuncSGIS
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_FILTER4_SGIS'
+--
+-- === #TextureFilterSGIS# TextureFilterSGIS
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_FILTER4_SGIS'
+--
+-- === #TextureGenMode# TextureGenMode
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_EYE_DISTANCE_TO_LINE_SGIS'
+-- * 'Graphics.GL.Tokens.GL_EYE_DISTANCE_TO_POINT_SGIS'
+-- * 'Graphics.GL.Tokens.GL_EYE_LINEAR'
+-- * 'Graphics.GL.Tokens.GL_OBJECT_DISTANCE_TO_LINE_SGIS'
+-- * 'Graphics.GL.Tokens.GL_OBJECT_DISTANCE_TO_POINT_SGIS'
+-- * 'Graphics.GL.Tokens.GL_OBJECT_LINEAR'
+-- * 'Graphics.GL.Tokens.GL_SPHERE_MAP'
+--
+-- === #TextureGenParameter# TextureGenParameter
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_EYE_LINE_SGIS'
+-- * 'Graphics.GL.Tokens.GL_EYE_PLANE'
+-- * 'Graphics.GL.Tokens.GL_EYE_POINT_SGIS'
+-- * 'Graphics.GL.Tokens.GL_OBJECT_LINE_SGIS'
+-- * 'Graphics.GL.Tokens.GL_OBJECT_PLANE'
+-- * 'Graphics.GL.Tokens.GL_OBJECT_POINT_SGIS'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_GEN_MODE'
+--
+-- === #TextureLayout# TextureLayout
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_LAYOUT_GENERAL_EXT'
+-- * 'Graphics.GL.Tokens.GL_LAYOUT_COLOR_ATTACHMENT_EXT'
+-- * 'Graphics.GL.Tokens.GL_LAYOUT_DEPTH_STENCIL_ATTACHMENT_EXT'
+-- * 'Graphics.GL.Tokens.GL_LAYOUT_DEPTH_STENCIL_READ_ONLY_EXT'
+-- * 'Graphics.GL.Tokens.GL_LAYOUT_SHADER_READ_ONLY_EXT'
+-- * 'Graphics.GL.Tokens.GL_LAYOUT_TRANSFER_SRC_EXT'
+-- * 'Graphics.GL.Tokens.GL_LAYOUT_TRANSFER_DST_EXT'
+-- * 'Graphics.GL.Tokens.GL_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_EXT'
+-- * 'Graphics.GL.Tokens.GL_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_EXT'
+--
+-- === #TextureMagFilter# TextureMagFilter
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_FILTER4_SGIS'
+-- * 'Graphics.GL.Tokens.GL_LINEAR'
+-- * 'Graphics.GL.Tokens.GL_LINEAR_DETAIL_ALPHA_SGIS'
+-- * 'Graphics.GL.Tokens.GL_LINEAR_DETAIL_COLOR_SGIS'
+-- * 'Graphics.GL.Tokens.GL_LINEAR_DETAIL_SGIS'
+-- * 'Graphics.GL.Tokens.GL_LINEAR_SHARPEN_ALPHA_SGIS'
+-- * 'Graphics.GL.Tokens.GL_LINEAR_SHARPEN_COLOR_SGIS'
+-- * 'Graphics.GL.Tokens.GL_LINEAR_SHARPEN_SGIS'
+-- * 'Graphics.GL.Tokens.GL_NEAREST'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_TEX_GEN_Q_CEILING_SGIX'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_TEX_GEN_Q_FLOOR_SGIX'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_TEX_GEN_Q_ROUND_SGIX'
+--
+-- === #TextureMinFilter# TextureMinFilter
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_FILTER4_SGIS'
+-- * 'Graphics.GL.Tokens.GL_LINEAR'
+-- * 'Graphics.GL.Tokens.GL_LINEAR_CLIPMAP_LINEAR_SGIX'
+-- * 'Graphics.GL.Tokens.GL_LINEAR_CLIPMAP_NEAREST_SGIX'
+-- * 'Graphics.GL.Tokens.GL_LINEAR_MIPMAP_LINEAR'
+-- * 'Graphics.GL.Tokens.GL_LINEAR_MIPMAP_NEAREST'
+-- * 'Graphics.GL.Tokens.GL_NEAREST'
+-- * 'Graphics.GL.Tokens.GL_NEAREST_CLIPMAP_LINEAR_SGIX'
+-- * 'Graphics.GL.Tokens.GL_NEAREST_CLIPMAP_NEAREST_SGIX'
+-- * 'Graphics.GL.Tokens.GL_NEAREST_MIPMAP_LINEAR'
+-- * 'Graphics.GL.Tokens.GL_NEAREST_MIPMAP_NEAREST'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_TEX_GEN_Q_CEILING_SGIX'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_TEX_GEN_Q_FLOOR_SGIX'
+-- * 'Graphics.GL.Tokens.GL_PIXEL_TEX_GEN_Q_ROUND_SGIX'
+--
+-- === #TextureNormalModeEXT# TextureNormalModeEXT
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_PERTURB_EXT'
+--
+-- === #TextureParameterName# TextureParameterName
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_DETAIL_TEXTURE_LEVEL_SGIS'
+-- * 'Graphics.GL.Tokens.GL_DETAIL_TEXTURE_MODE_SGIS'
+-- * 'Graphics.GL.Tokens.GL_DUAL_TEXTURE_SELECT_SGIS'
+-- * 'Graphics.GL.Tokens.GL_GENERATE_MIPMAP' (alias: 'Graphics.GL.Tokens.GL_GENERATE_MIPMAP_SGIS')
+-- * 'Graphics.GL.Tokens.GL_POST_TEXTURE_FILTER_BIAS_SGIX'
+-- * 'Graphics.GL.Tokens.GL_POST_TEXTURE_FILTER_SCALE_SGIX'
+-- * 'Graphics.GL.Tokens.GL_QUAD_TEXTURE_SELECT_SGIS'
+-- * 'Graphics.GL.Tokens.GL_SHADOW_AMBIENT_SGIX'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_BORDER_COLOR' (alias: 'Graphics.GL.Tokens.GL_TEXTURE_BORDER_COLOR_NV')
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_CLIPMAP_CENTER_SGIX'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_CLIPMAP_DEPTH_SGIX'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_CLIPMAP_FRAME_SGIX'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_CLIPMAP_OFFSET_SGIX'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_COMPARE_SGIX'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_LOD_BIAS_R_SGIX'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_LOD_BIAS_S_SGIX'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_LOD_BIAS_T_SGIX'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_MAG_FILTER'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_MAX_CLAMP_R_SGIX'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_MAX_CLAMP_S_SGIX'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_MAX_CLAMP_T_SGIX'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_MIN_FILTER'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_PRIORITY' (alias: 'Graphics.GL.Tokens.GL_TEXTURE_PRIORITY_EXT')
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_WRAP_Q_SGIS'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_WRAP_R' (aliases: 'Graphics.GL.Tokens.GL_TEXTURE_WRAP_R_EXT', 'Graphics.GL.Tokens.GL_TEXTURE_WRAP_R_OES')
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_WRAP_S'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_WRAP_T'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_BASE_LEVEL' (alias: 'Graphics.GL.Tokens.GL_TEXTURE_BASE_LEVEL_SGIS')
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_COMPARE_MODE'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_COMPARE_FUNC'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_LOD_BIAS'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_MIN_LOD' (alias: 'Graphics.GL.Tokens.GL_TEXTURE_MIN_LOD_SGIS')
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_MAX_LOD' (alias: 'Graphics.GL.Tokens.GL_TEXTURE_MAX_LOD_SGIS')
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_MAX_LEVEL' (alias: 'Graphics.GL.Tokens.GL_TEXTURE_MAX_LEVEL_SGIS')
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_SWIZZLE_R'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_SWIZZLE_G'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_SWIZZLE_B'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_SWIZZLE_A'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_SWIZZLE_RGBA'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_TILING_EXT'
+-- * 'Graphics.GL.Tokens.GL_DEPTH_STENCIL_TEXTURE_MODE'
+-- * 'Graphics.GL.Tokens.GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS'
+-- * 'Graphics.GL.Tokens.GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_4DSIZE_SGIS'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_ALPHA_SIZE'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_BLUE_SIZE'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_BORDER'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_COMPARE_OPERATOR_SGIX'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_COMPONENTS' (alias: 'Graphics.GL.Tokens.GL_TEXTURE_INTERNAL_FORMAT')
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_DEPTH_EXT'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_FILTER4_SIZE_SGIS'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_GEQUAL_R_SGIX'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_GREEN_SIZE'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_HEIGHT'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_INTENSITY_SIZE'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_LEQUAL_R_SGIX'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_LUMINANCE_SIZE'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_RED_SIZE'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_RESIDENT'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_WIDTH'
+--
+-- === #TextureStorageMaskAMD# TextureStorageMaskAMD
+-- A bitwise combination of several of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_STORAGE_SPARSE_BIT_AMD'
+--
+-- === #TextureSwizzle# TextureSwizzle
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_RED'
+-- * 'Graphics.GL.Tokens.GL_GREEN'
+-- * 'Graphics.GL.Tokens.GL_BLUE'
+-- * 'Graphics.GL.Tokens.GL_ALPHA'
+-- * 'Graphics.GL.Tokens.GL_ZERO'
+-- * 'Graphics.GL.Tokens.GL_ONE'
+--
+-- === #TextureTarget# TextureTarget
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_DETAIL_TEXTURE_2D_SGIS'
+-- * 'Graphics.GL.Tokens.GL_PROXY_TEXTURE_1D' (alias: 'Graphics.GL.Tokens.GL_PROXY_TEXTURE_1D_EXT')
+-- * 'Graphics.GL.Tokens.GL_PROXY_TEXTURE_1D_ARRAY' (alias: 'Graphics.GL.Tokens.GL_PROXY_TEXTURE_1D_ARRAY_EXT')
+-- * 'Graphics.GL.Tokens.GL_PROXY_TEXTURE_2D' (alias: 'Graphics.GL.Tokens.GL_PROXY_TEXTURE_2D_EXT')
+-- * 'Graphics.GL.Tokens.GL_PROXY_TEXTURE_2D_ARRAY' (alias: 'Graphics.GL.Tokens.GL_PROXY_TEXTURE_2D_ARRAY_EXT')
+-- * 'Graphics.GL.Tokens.GL_PROXY_TEXTURE_2D_MULTISAMPLE'
+-- * 'Graphics.GL.Tokens.GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_PROXY_TEXTURE_3D' (alias: 'Graphics.GL.Tokens.GL_PROXY_TEXTURE_3D_EXT')
+-- * 'Graphics.GL.Tokens.GL_PROXY_TEXTURE_4D_SGIS'
+-- * 'Graphics.GL.Tokens.GL_PROXY_TEXTURE_CUBE_MAP' (aliases: 'Graphics.GL.Tokens.GL_PROXY_TEXTURE_CUBE_MAP_ARB', 'Graphics.GL.Tokens.GL_PROXY_TEXTURE_CUBE_MAP_EXT')
+-- * 'Graphics.GL.Tokens.GL_PROXY_TEXTURE_CUBE_MAP_ARRAY' (alias: 'Graphics.GL.Tokens.GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB')
+-- * 'Graphics.GL.Tokens.GL_PROXY_TEXTURE_RECTANGLE' (aliases: 'Graphics.GL.Tokens.GL_PROXY_TEXTURE_RECTANGLE_ARB', 'Graphics.GL.Tokens.GL_PROXY_TEXTURE_RECTANGLE_NV')
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_1D'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_2D'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_3D' (aliases: 'Graphics.GL.Tokens.GL_TEXTURE_3D_EXT', 'Graphics.GL.Tokens.GL_TEXTURE_3D_OES')
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_4D_SGIS'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_RECTANGLE'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_CUBE_MAP'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_CUBE_MAP_POSITIVE_X'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_CUBE_MAP_NEGATIVE_X'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_CUBE_MAP_POSITIVE_Y'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_CUBE_MAP_NEGATIVE_Y'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_CUBE_MAP_POSITIVE_Z'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_CUBE_MAP_NEGATIVE_Z'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_CUBE_MAP_ARRAY' (aliases: 'Graphics.GL.Tokens.GL_TEXTURE_CUBE_MAP_ARRAY_ARB', 'Graphics.GL.Tokens.GL_TEXTURE_CUBE_MAP_ARRAY_EXT', 'Graphics.GL.Tokens.GL_TEXTURE_CUBE_MAP_ARRAY_OES')
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_1D_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_2D_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_2D_MULTISAMPLE'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_2D_MULTISAMPLE_ARRAY'
+--
+-- === #TextureUnit# TextureUnit
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_TEXTURE0'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE1'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE2'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE3'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE4'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE5'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE6'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE7'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE8'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE9'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE10'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE11'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE12'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE13'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE14'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE15'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE16'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE17'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE18'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE19'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE20'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE21'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE22'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE23'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE24'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE25'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE26'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE27'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE28'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE29'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE30'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE31'
+--
+-- === #TextureWrapMode# TextureWrapMode
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_CLAMP'
+-- * 'Graphics.GL.Tokens.GL_CLAMP_TO_BORDER' (aliases: 'Graphics.GL.Tokens.GL_CLAMP_TO_BORDER_ARB', 'Graphics.GL.Tokens.GL_CLAMP_TO_BORDER_NV', 'Graphics.GL.Tokens.GL_CLAMP_TO_BORDER_SGIS')
+-- * 'Graphics.GL.Tokens.GL_CLAMP_TO_EDGE' (alias: 'Graphics.GL.Tokens.GL_CLAMP_TO_EDGE_SGIS')
+-- * 'Graphics.GL.Tokens.GL_REPEAT'
+-- * 'Graphics.GL.Tokens.GL_LINEAR_MIPMAP_LINEAR'
+-- * 'Graphics.GL.Tokens.GL_MIRRORED_REPEAT'
+--
+-- === #TransformFeedbackBufferMode# TransformFeedbackBufferMode
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_INTERLEAVED_ATTRIBS'
+-- * 'Graphics.GL.Tokens.GL_SEPARATE_ATTRIBS'
+--
+-- === #TransformFeedbackPName# TransformFeedbackPName
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_TRANSFORM_FEEDBACK_BUFFER_BINDING'
+-- * 'Graphics.GL.Tokens.GL_TRANSFORM_FEEDBACK_BUFFER_START'
+-- * 'Graphics.GL.Tokens.GL_TRANSFORM_FEEDBACK_BUFFER_SIZE'
+-- * 'Graphics.GL.Tokens.GL_TRANSFORM_FEEDBACK_PAUSED'
+-- * 'Graphics.GL.Tokens.GL_TRANSFORM_FEEDBACK_ACTIVE'
+--
+-- === #UniformBlockPName# UniformBlockPName
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_UNIFORM_BLOCK_BINDING'
+-- * 'Graphics.GL.Tokens.GL_UNIFORM_BLOCK_DATA_SIZE'
+-- * 'Graphics.GL.Tokens.GL_UNIFORM_BLOCK_NAME_LENGTH'
+-- * 'Graphics.GL.Tokens.GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS'
+-- * 'Graphics.GL.Tokens.GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES'
+-- * 'Graphics.GL.Tokens.GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER'
+-- * 'Graphics.GL.Tokens.GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER'
+-- * 'Graphics.GL.Tokens.GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER'
+-- * 'Graphics.GL.Tokens.GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER'
+-- * 'Graphics.GL.Tokens.GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER'
+-- * 'Graphics.GL.Tokens.GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER'
+--
+-- === #UniformPName# UniformPName
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_UNIFORM_TYPE'
+-- * 'Graphics.GL.Tokens.GL_UNIFORM_SIZE'
+-- * 'Graphics.GL.Tokens.GL_UNIFORM_NAME_LENGTH'
+-- * 'Graphics.GL.Tokens.GL_UNIFORM_BLOCK_INDEX'
+-- * 'Graphics.GL.Tokens.GL_UNIFORM_OFFSET'
+-- * 'Graphics.GL.Tokens.GL_UNIFORM_ARRAY_STRIDE'
+-- * 'Graphics.GL.Tokens.GL_UNIFORM_MATRIX_STRIDE'
+-- * 'Graphics.GL.Tokens.GL_UNIFORM_IS_ROW_MAJOR'
+-- * 'Graphics.GL.Tokens.GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX'
+--
+-- === #UniformType# UniformType
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_INT'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT'
+-- * 'Graphics.GL.Tokens.GL_FLOAT'
+-- * 'Graphics.GL.Tokens.GL_DOUBLE'
+-- * 'Graphics.GL.Tokens.GL_FLOAT_VEC2'
+-- * 'Graphics.GL.Tokens.GL_FLOAT_VEC3'
+-- * 'Graphics.GL.Tokens.GL_FLOAT_VEC4'
+-- * 'Graphics.GL.Tokens.GL_INT_VEC2'
+-- * 'Graphics.GL.Tokens.GL_INT_VEC3'
+-- * 'Graphics.GL.Tokens.GL_INT_VEC4'
+-- * 'Graphics.GL.Tokens.GL_BOOL'
+-- * 'Graphics.GL.Tokens.GL_BOOL_VEC2'
+-- * 'Graphics.GL.Tokens.GL_BOOL_VEC3'
+-- * 'Graphics.GL.Tokens.GL_BOOL_VEC4'
+-- * 'Graphics.GL.Tokens.GL_FLOAT_MAT2'
+-- * 'Graphics.GL.Tokens.GL_FLOAT_MAT3'
+-- * 'Graphics.GL.Tokens.GL_FLOAT_MAT4'
+-- * 'Graphics.GL.Tokens.GL_SAMPLER_1D'
+-- * 'Graphics.GL.Tokens.GL_SAMPLER_2D'
+-- * 'Graphics.GL.Tokens.GL_SAMPLER_3D'
+-- * 'Graphics.GL.Tokens.GL_SAMPLER_CUBE'
+-- * 'Graphics.GL.Tokens.GL_SAMPLER_1D_SHADOW'
+-- * 'Graphics.GL.Tokens.GL_SAMPLER_2D_SHADOW'
+-- * 'Graphics.GL.Tokens.GL_SAMPLER_2D_RECT'
+-- * 'Graphics.GL.Tokens.GL_SAMPLER_2D_RECT_SHADOW'
+-- * 'Graphics.GL.Tokens.GL_FLOAT_MAT2x3'
+-- * 'Graphics.GL.Tokens.GL_FLOAT_MAT2x4'
+-- * 'Graphics.GL.Tokens.GL_FLOAT_MAT3x2'
+-- * 'Graphics.GL.Tokens.GL_FLOAT_MAT3x4'
+-- * 'Graphics.GL.Tokens.GL_FLOAT_MAT4x2'
+-- * 'Graphics.GL.Tokens.GL_FLOAT_MAT4x3'
+-- * 'Graphics.GL.Tokens.GL_SAMPLER_1D_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_SAMPLER_2D_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_SAMPLER_BUFFER'
+-- * 'Graphics.GL.Tokens.GL_SAMPLER_1D_ARRAY_SHADOW'
+-- * 'Graphics.GL.Tokens.GL_SAMPLER_2D_ARRAY_SHADOW'
+-- * 'Graphics.GL.Tokens.GL_SAMPLER_CUBE_SHADOW'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_VEC2'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_VEC3'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_VEC4'
+-- * 'Graphics.GL.Tokens.GL_INT_SAMPLER_1D'
+-- * 'Graphics.GL.Tokens.GL_INT_SAMPLER_2D'
+-- * 'Graphics.GL.Tokens.GL_INT_SAMPLER_3D'
+-- * 'Graphics.GL.Tokens.GL_INT_SAMPLER_CUBE'
+-- * 'Graphics.GL.Tokens.GL_INT_SAMPLER_2D_RECT'
+-- * 'Graphics.GL.Tokens.GL_INT_SAMPLER_1D_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_INT_SAMPLER_2D_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_INT_SAMPLER_BUFFER'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_SAMPLER_1D'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_SAMPLER_2D'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_SAMPLER_3D'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_SAMPLER_CUBE'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_SAMPLER_2D_RECT'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_SAMPLER_1D_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_SAMPLER_2D_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_SAMPLER_BUFFER'
+-- * 'Graphics.GL.Tokens.GL_DOUBLE_MAT2'
+-- * 'Graphics.GL.Tokens.GL_DOUBLE_MAT3'
+-- * 'Graphics.GL.Tokens.GL_DOUBLE_MAT4'
+-- * 'Graphics.GL.Tokens.GL_DOUBLE_MAT2x3'
+-- * 'Graphics.GL.Tokens.GL_DOUBLE_MAT2x4'
+-- * 'Graphics.GL.Tokens.GL_DOUBLE_MAT3x2'
+-- * 'Graphics.GL.Tokens.GL_DOUBLE_MAT3x4'
+-- * 'Graphics.GL.Tokens.GL_DOUBLE_MAT4x2'
+-- * 'Graphics.GL.Tokens.GL_DOUBLE_MAT4x3'
+-- * 'Graphics.GL.Tokens.GL_DOUBLE_VEC2'
+-- * 'Graphics.GL.Tokens.GL_DOUBLE_VEC3'
+-- * 'Graphics.GL.Tokens.GL_DOUBLE_VEC4'
+-- * 'Graphics.GL.Tokens.GL_SAMPLER_CUBE_MAP_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW'
+-- * 'Graphics.GL.Tokens.GL_INT_SAMPLER_CUBE_MAP_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_SAMPLER_2D_MULTISAMPLE'
+-- * 'Graphics.GL.Tokens.GL_INT_SAMPLER_2D_MULTISAMPLE'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE'
+-- * 'Graphics.GL.Tokens.GL_SAMPLER_2D_MULTISAMPLE_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY'
+--
+-- === #UseProgramStageMask# UseProgramStageMask
+-- A bitwise combination of several of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_VERTEX_SHADER_BIT' (alias: 'Graphics.GL.Tokens.GL_VERTEX_SHADER_BIT_EXT')
+-- * 'Graphics.GL.Tokens.GL_FRAGMENT_SHADER_BIT' (alias: 'Graphics.GL.Tokens.GL_FRAGMENT_SHADER_BIT_EXT')
+-- * 'Graphics.GL.Tokens.GL_GEOMETRY_SHADER_BIT' (aliases: 'Graphics.GL.Tokens.GL_GEOMETRY_SHADER_BIT_EXT', 'Graphics.GL.Tokens.GL_GEOMETRY_SHADER_BIT_OES')
+-- * 'Graphics.GL.Tokens.GL_TESS_CONTROL_SHADER_BIT' (aliases: 'Graphics.GL.Tokens.GL_TESS_CONTROL_SHADER_BIT_EXT', 'Graphics.GL.Tokens.GL_TESS_CONTROL_SHADER_BIT_OES')
+-- * 'Graphics.GL.Tokens.GL_TESS_EVALUATION_SHADER_BIT' (aliases: 'Graphics.GL.Tokens.GL_TESS_EVALUATION_SHADER_BIT_EXT', 'Graphics.GL.Tokens.GL_TESS_EVALUATION_SHADER_BIT_OES')
+-- * 'Graphics.GL.Tokens.GL_COMPUTE_SHADER_BIT'
+-- * 'Graphics.GL.Tokens.GL_MESH_SHADER_BIT_NV'
+-- * 'Graphics.GL.Tokens.GL_TASK_SHADER_BIT_NV'
+-- * 'Graphics.GL.Tokens.GL_ALL_SHADER_BITS' (alias: 'Graphics.GL.Tokens.GL_ALL_SHADER_BITS_EXT')
+--
+-- === #VariantCapEXT# VariantCapEXT
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_VARIANT_ARRAY_EXT'
+--
+-- === #VertexArrayPName# VertexArrayPName
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_VERTEX_ATTRIB_ARRAY_ENABLED'
+-- * 'Graphics.GL.Tokens.GL_VERTEX_ATTRIB_ARRAY_SIZE'
+-- * 'Graphics.GL.Tokens.GL_VERTEX_ATTRIB_ARRAY_STRIDE'
+-- * 'Graphics.GL.Tokens.GL_VERTEX_ATTRIB_ARRAY_TYPE'
+-- * 'Graphics.GL.Tokens.GL_VERTEX_ATTRIB_ARRAY_NORMALIZED'
+-- * 'Graphics.GL.Tokens.GL_VERTEX_ATTRIB_ARRAY_INTEGER'
+-- * 'Graphics.GL.Tokens.GL_VERTEX_ATTRIB_ARRAY_LONG'
+-- * 'Graphics.GL.Tokens.GL_VERTEX_ATTRIB_ARRAY_DIVISOR'
+-- * 'Graphics.GL.Tokens.GL_VERTEX_ATTRIB_RELATIVE_OFFSET'
+--
+-- === #VertexArrayPNameAPPLE# VertexArrayPNameAPPLE
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_STORAGE_CLIENT_APPLE'
+-- * 'Graphics.GL.Tokens.GL_STORAGE_CACHED_APPLE'
+-- * 'Graphics.GL.Tokens.GL_STORAGE_SHARED_APPLE'
+--
+-- === #VertexAttribEnum# VertexAttribEnum
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING'
+-- * 'Graphics.GL.Tokens.GL_VERTEX_ATTRIB_ARRAY_ENABLED'
+-- * 'Graphics.GL.Tokens.GL_VERTEX_ATTRIB_ARRAY_SIZE'
+-- * 'Graphics.GL.Tokens.GL_VERTEX_ATTRIB_ARRAY_STRIDE'
+-- * 'Graphics.GL.Tokens.GL_VERTEX_ATTRIB_ARRAY_TYPE'
+-- * 'Graphics.GL.Tokens.GL_VERTEX_ATTRIB_ARRAY_NORMALIZED'
+-- * 'Graphics.GL.Tokens.GL_VERTEX_ATTRIB_ARRAY_INTEGER'
+-- * 'Graphics.GL.Tokens.GL_VERTEX_ATTRIB_ARRAY_DIVISOR'
+-- * 'Graphics.GL.Tokens.GL_CURRENT_VERTEX_ATTRIB'
+--
+-- === #VertexAttribEnumNV# VertexAttribEnumNV
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_PROGRAM_PARAMETER_NV'
+--
+-- === #VertexAttribIType# VertexAttribIType
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_BYTE'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_BYTE'
+-- * 'Graphics.GL.Tokens.GL_SHORT'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_SHORT'
+-- * 'Graphics.GL.Tokens.GL_INT'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT'
+--
+-- === #VertexAttribLType# VertexAttribLType
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_DOUBLE'
+--
+-- === #VertexAttribPointerPropertyARB# VertexAttribPointerPropertyARB
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_VERTEX_ATTRIB_ARRAY_POINTER' (alias: 'Graphics.GL.Tokens.GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB')
+--
+-- === #VertexAttribPointerType# VertexAttribPointerType
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_BYTE'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_BYTE'
+-- * 'Graphics.GL.Tokens.GL_SHORT'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_SHORT'
+-- * 'Graphics.GL.Tokens.GL_INT'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT'
+-- * 'Graphics.GL.Tokens.GL_FLOAT'
+-- * 'Graphics.GL.Tokens.GL_DOUBLE'
+-- * 'Graphics.GL.Tokens.GL_HALF_FLOAT'
+-- * 'Graphics.GL.Tokens.GL_FIXED'
+-- * 'Graphics.GL.Tokens.GL_INT_2_10_10_10_REV'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_2_10_10_10_REV'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_10F_11F_11F_REV'
+-- * 'Graphics.GL.Tokens.GL_INT64_ARB' (alias: 'Graphics.GL.Tokens.GL_INT64_NV')
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT64_ARB' (alias: 'Graphics.GL.Tokens.GL_UNSIGNED_INT64_NV')
+--
+-- === #VertexAttribPropertyARB# VertexAttribPropertyARB
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING'
+-- * 'Graphics.GL.Tokens.GL_VERTEX_ATTRIB_ARRAY_ENABLED'
+-- * 'Graphics.GL.Tokens.GL_VERTEX_ATTRIB_ARRAY_SIZE'
+-- * 'Graphics.GL.Tokens.GL_VERTEX_ATTRIB_ARRAY_STRIDE'
+-- * 'Graphics.GL.Tokens.GL_VERTEX_ATTRIB_ARRAY_TYPE'
+-- * 'Graphics.GL.Tokens.GL_VERTEX_ATTRIB_ARRAY_NORMALIZED'
+-- * 'Graphics.GL.Tokens.GL_VERTEX_ATTRIB_ARRAY_INTEGER' (alias: 'Graphics.GL.Tokens.GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT')
+-- * 'Graphics.GL.Tokens.GL_VERTEX_ATTRIB_ARRAY_LONG'
+-- * 'Graphics.GL.Tokens.GL_VERTEX_ATTRIB_ARRAY_DIVISOR'
+-- * 'Graphics.GL.Tokens.GL_VERTEX_ATTRIB_BINDING'
+-- * 'Graphics.GL.Tokens.GL_VERTEX_ATTRIB_RELATIVE_OFFSET'
+-- * 'Graphics.GL.Tokens.GL_CURRENT_VERTEX_ATTRIB'
+--
+-- === #VertexAttribType# VertexAttribType
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_BYTE'
+-- * 'Graphics.GL.Tokens.GL_SHORT'
+-- * 'Graphics.GL.Tokens.GL_INT'
+-- * 'Graphics.GL.Tokens.GL_FIXED'
+-- * 'Graphics.GL.Tokens.GL_FLOAT'
+-- * 'Graphics.GL.Tokens.GL_HALF_FLOAT'
+-- * 'Graphics.GL.Tokens.GL_DOUBLE'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_BYTE'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_SHORT'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT'
+-- * 'Graphics.GL.Tokens.GL_INT_2_10_10_10_REV'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_2_10_10_10_REV'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT_10F_11F_11F_REV'
+--
+-- === #VertexBufferObjectParameter# VertexBufferObjectParameter
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_BUFFER_ACCESS'
+-- * 'Graphics.GL.Tokens.GL_BUFFER_ACCESS_FLAGS'
+-- * 'Graphics.GL.Tokens.GL_BUFFER_IMMUTABLE_STORAGE'
+-- * 'Graphics.GL.Tokens.GL_BUFFER_MAPPED'
+-- * 'Graphics.GL.Tokens.GL_BUFFER_MAP_LENGTH'
+-- * 'Graphics.GL.Tokens.GL_BUFFER_MAP_OFFSET'
+-- * 'Graphics.GL.Tokens.GL_BUFFER_SIZE'
+-- * 'Graphics.GL.Tokens.GL_BUFFER_STORAGE_FLAGS'
+-- * 'Graphics.GL.Tokens.GL_BUFFER_USAGE'
+--
+-- === #VertexBufferObjectUsage# VertexBufferObjectUsage
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_STREAM_DRAW'
+-- * 'Graphics.GL.Tokens.GL_STREAM_READ'
+-- * 'Graphics.GL.Tokens.GL_STREAM_COPY'
+-- * 'Graphics.GL.Tokens.GL_STATIC_DRAW'
+-- * 'Graphics.GL.Tokens.GL_STATIC_READ'
+-- * 'Graphics.GL.Tokens.GL_STATIC_COPY'
+-- * 'Graphics.GL.Tokens.GL_DYNAMIC_DRAW'
+-- * 'Graphics.GL.Tokens.GL_DYNAMIC_READ'
+-- * 'Graphics.GL.Tokens.GL_DYNAMIC_COPY'
+--
+-- === #VertexPointerType# VertexPointerType
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_DOUBLE'
+-- * 'Graphics.GL.Tokens.GL_FLOAT'
+-- * 'Graphics.GL.Tokens.GL_INT'
+-- * 'Graphics.GL.Tokens.GL_SHORT'
+--
+-- === #VertexProvokingMode# VertexProvokingMode
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_FIRST_VERTEX_CONVENTION'
+-- * 'Graphics.GL.Tokens.GL_LAST_VERTEX_CONVENTION'
+--
+-- === #VertexShaderCoordOutEXT# VertexShaderCoordOutEXT
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_X_EXT'
+-- * 'Graphics.GL.Tokens.GL_Y_EXT'
+-- * 'Graphics.GL.Tokens.GL_Z_EXT'
+-- * 'Graphics.GL.Tokens.GL_W_EXT'
+-- * 'Graphics.GL.Tokens.GL_NEGATIVE_X_EXT'
+-- * 'Graphics.GL.Tokens.GL_NEGATIVE_Y_EXT'
+-- * 'Graphics.GL.Tokens.GL_NEGATIVE_Z_EXT'
+-- * 'Graphics.GL.Tokens.GL_NEGATIVE_W_EXT'
+-- * 'Graphics.GL.Tokens.GL_ZERO_EXT'
+-- * 'Graphics.GL.Tokens.GL_ONE_EXT'
+-- * 'Graphics.GL.Tokens.GL_NEGATIVE_ONE_EXT'
+--
+-- === #VertexShaderOpEXT# VertexShaderOpEXT
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_OP_INDEX_EXT'
+-- * 'Graphics.GL.Tokens.GL_OP_NEGATE_EXT'
+-- * 'Graphics.GL.Tokens.GL_OP_DOT3_EXT'
+-- * 'Graphics.GL.Tokens.GL_OP_DOT4_EXT'
+-- * 'Graphics.GL.Tokens.GL_OP_MUL_EXT'
+-- * 'Graphics.GL.Tokens.GL_OP_ADD_EXT'
+-- * 'Graphics.GL.Tokens.GL_OP_MADD_EXT'
+-- * 'Graphics.GL.Tokens.GL_OP_FRAC_EXT'
+-- * 'Graphics.GL.Tokens.GL_OP_MAX_EXT'
+-- * 'Graphics.GL.Tokens.GL_OP_MIN_EXT'
+-- * 'Graphics.GL.Tokens.GL_OP_SET_GE_EXT'
+-- * 'Graphics.GL.Tokens.GL_OP_SET_LT_EXT'
+-- * 'Graphics.GL.Tokens.GL_OP_CLAMP_EXT'
+-- * 'Graphics.GL.Tokens.GL_OP_FLOOR_EXT'
+-- * 'Graphics.GL.Tokens.GL_OP_ROUND_EXT'
+-- * 'Graphics.GL.Tokens.GL_OP_EXP_BASE_2_EXT'
+-- * 'Graphics.GL.Tokens.GL_OP_LOG_BASE_2_EXT'
+-- * 'Graphics.GL.Tokens.GL_OP_POWER_EXT'
+-- * 'Graphics.GL.Tokens.GL_OP_RECIP_EXT'
+-- * 'Graphics.GL.Tokens.GL_OP_RECIP_SQRT_EXT'
+-- * 'Graphics.GL.Tokens.GL_OP_SUB_EXT'
+-- * 'Graphics.GL.Tokens.GL_OP_CROSS_PRODUCT_EXT'
+-- * 'Graphics.GL.Tokens.GL_OP_MULTIPLY_MATRIX_EXT'
+-- * 'Graphics.GL.Tokens.GL_OP_MOV_EXT'
+--
+-- === #VertexShaderParameterEXT# VertexShaderParameterEXT
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_CURRENT_VERTEX_EXT'
+-- * 'Graphics.GL.Tokens.GL_MVP_MATRIX_EXT'
+--
+-- === #VertexShaderStorageTypeEXT# VertexShaderStorageTypeEXT
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_VARIANT_EXT'
+-- * 'Graphics.GL.Tokens.GL_INVARIANT_EXT'
+-- * 'Graphics.GL.Tokens.GL_LOCAL_CONSTANT_EXT'
+-- * 'Graphics.GL.Tokens.GL_LOCAL_EXT'
+--
+-- === #VertexShaderTextureUnitParameter# VertexShaderTextureUnitParameter
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_CURRENT_TEXTURE_COORDS'
+-- * 'Graphics.GL.Tokens.GL_TEXTURE_MATRIX'
+--
+-- === #VertexShaderWriteMaskEXT# VertexShaderWriteMaskEXT
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_TRUE'
+-- * 'Graphics.GL.Tokens.GL_FALSE'
+--
+-- === #VertexStreamATI# VertexStreamATI
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_VERTEX_STREAM0_ATI'
+-- * 'Graphics.GL.Tokens.GL_VERTEX_STREAM1_ATI'
+-- * 'Graphics.GL.Tokens.GL_VERTEX_STREAM2_ATI'
+-- * 'Graphics.GL.Tokens.GL_VERTEX_STREAM3_ATI'
+-- * 'Graphics.GL.Tokens.GL_VERTEX_STREAM4_ATI'
+-- * 'Graphics.GL.Tokens.GL_VERTEX_STREAM5_ATI'
+-- * 'Graphics.GL.Tokens.GL_VERTEX_STREAM6_ATI'
+-- * 'Graphics.GL.Tokens.GL_VERTEX_STREAM7_ATI'
+--
+-- === #VertexWeightPointerTypeEXT# VertexWeightPointerTypeEXT
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_FLOAT'
+--
+-- === #WeightPointerTypeARB# WeightPointerTypeARB
+-- One of the following values:
+--
+-- * 'Graphics.GL.Tokens.GL_BYTE'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_BYTE'
+-- * 'Graphics.GL.Tokens.GL_SHORT'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_SHORT'
+-- * 'Graphics.GL.Tokens.GL_INT'
+-- * 'Graphics.GL.Tokens.GL_UNSIGNED_INT'
+-- * 'Graphics.GL.Tokens.GL_FLOAT'
+-- * 'Graphics.GL.Tokens.GL_DOUBLE'
diff --git a/src/Graphics/GL/HP.hs b/src/Graphics/GL/HP.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/HP.hs
@@ -0,0 +1,25 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.HP
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- A convenience module, combining all raw modules containing HP extensions.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.HP (
+  module Graphics.GL.HP.ConvolutionBorderModes,
+  module Graphics.GL.HP.ImageTransform,
+  module Graphics.GL.HP.OcclusionTest,
+  module Graphics.GL.HP.TextureLighting
+) where
+
+import Graphics.GL.HP.ConvolutionBorderModes
+import Graphics.GL.HP.ImageTransform
+import Graphics.GL.HP.OcclusionTest
+import Graphics.GL.HP.TextureLighting
diff --git a/src/Graphics/GL/HP/ConvolutionBorderModes.hs b/src/Graphics/GL/HP/ConvolutionBorderModes.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/HP/ConvolutionBorderModes.hs
@@ -0,0 +1,26 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.HP.ConvolutionBorderModes
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.HP.ConvolutionBorderModes (
+  -- * Extension Support
+  glGetHPConvolutionBorderModes,
+  gl_HP_convolution_border_modes,
+  -- * Enums
+  pattern GL_CONSTANT_BORDER_HP,
+  pattern GL_CONVOLUTION_BORDER_COLOR_HP,
+  pattern GL_IGNORE_BORDER_HP,
+  pattern GL_REPLICATE_BORDER_HP
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/HP/ImageTransform.hs b/src/Graphics/GL/HP/ImageTransform.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/HP/ImageTransform.hs
@@ -0,0 +1,45 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.HP.ImageTransform
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.HP.ImageTransform (
+  -- * Extension Support
+  glGetHPImageTransform,
+  gl_HP_image_transform,
+  -- * Enums
+  pattern GL_AVERAGE_HP,
+  pattern GL_CUBIC_HP,
+  pattern GL_IMAGE_CUBIC_WEIGHT_HP,
+  pattern GL_IMAGE_MAG_FILTER_HP,
+  pattern GL_IMAGE_MIN_FILTER_HP,
+  pattern GL_IMAGE_ROTATE_ANGLE_HP,
+  pattern GL_IMAGE_ROTATE_ORIGIN_X_HP,
+  pattern GL_IMAGE_ROTATE_ORIGIN_Y_HP,
+  pattern GL_IMAGE_SCALE_X_HP,
+  pattern GL_IMAGE_SCALE_Y_HP,
+  pattern GL_IMAGE_TRANSFORM_2D_HP,
+  pattern GL_IMAGE_TRANSLATE_X_HP,
+  pattern GL_IMAGE_TRANSLATE_Y_HP,
+  pattern GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP,
+  pattern GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP,
+  -- * Functions
+  glGetImageTransformParameterfvHP,
+  glGetImageTransformParameterivHP,
+  glImageTransformParameterfHP,
+  glImageTransformParameterfvHP,
+  glImageTransformParameteriHP,
+  glImageTransformParameterivHP
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/HP/OcclusionTest.hs b/src/Graphics/GL/HP/OcclusionTest.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/HP/OcclusionTest.hs
@@ -0,0 +1,24 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.HP.OcclusionTest
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.HP.OcclusionTest (
+  -- * Extension Support
+  glGetHPOcclusionTest,
+  gl_HP_occlusion_test,
+  -- * Enums
+  pattern GL_OCCLUSION_TEST_HP,
+  pattern GL_OCCLUSION_TEST_RESULT_HP
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/HP/TextureLighting.hs b/src/Graphics/GL/HP/TextureLighting.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/HP/TextureLighting.hs
@@ -0,0 +1,25 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.HP.TextureLighting
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.HP.TextureLighting (
+  -- * Extension Support
+  glGetHPTextureLighting,
+  gl_HP_texture_lighting,
+  -- * Enums
+  pattern GL_TEXTURE_LIGHTING_MODE_HP,
+  pattern GL_TEXTURE_POST_SPECULAR_HP,
+  pattern GL_TEXTURE_PRE_SPECULAR_HP
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/IBM.hs b/src/Graphics/GL/IBM.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/IBM.hs
@@ -0,0 +1,29 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.IBM
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- A convenience module, combining all raw modules containing IBM extensions.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.IBM (
+  module Graphics.GL.IBM.CullVertex,
+  module Graphics.GL.IBM.MultimodeDrawArrays,
+  module Graphics.GL.IBM.RasterposClip,
+  module Graphics.GL.IBM.StaticData,
+  module Graphics.GL.IBM.TextureMirroredRepeat,
+  module Graphics.GL.IBM.VertexArrayLists
+) where
+
+import Graphics.GL.IBM.CullVertex
+import Graphics.GL.IBM.MultimodeDrawArrays
+import Graphics.GL.IBM.RasterposClip
+import Graphics.GL.IBM.StaticData
+import Graphics.GL.IBM.TextureMirroredRepeat
+import Graphics.GL.IBM.VertexArrayLists
diff --git a/src/Graphics/GL/IBM/CullVertex.hs b/src/Graphics/GL/IBM/CullVertex.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/IBM/CullVertex.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.IBM.CullVertex
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.IBM.CullVertex (
+  -- * Extension Support
+  glGetIBMCullVertex,
+  gl_IBM_cull_vertex,
+  -- * Enums
+  pattern GL_CULL_VERTEX_IBM
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/IBM/MultimodeDrawArrays.hs b/src/Graphics/GL/IBM/MultimodeDrawArrays.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/IBM/MultimodeDrawArrays.hs
@@ -0,0 +1,23 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.IBM.MultimodeDrawArrays
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.IBM.MultimodeDrawArrays (
+  -- * Extension Support
+  glGetIBMMultimodeDrawArrays,
+  gl_IBM_multimode_draw_arrays,
+  -- * Functions
+  glMultiModeDrawArraysIBM,
+  glMultiModeDrawElementsIBM
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/IBM/RasterposClip.hs b/src/Graphics/GL/IBM/RasterposClip.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/IBM/RasterposClip.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.IBM.RasterposClip
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.IBM.RasterposClip (
+  -- * Extension Support
+  glGetIBMRasterposClip,
+  gl_IBM_rasterpos_clip,
+  -- * Enums
+  pattern GL_RASTER_POSITION_UNCLIPPED_IBM
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/IBM/StaticData.hs b/src/Graphics/GL/IBM/StaticData.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/IBM/StaticData.hs
@@ -0,0 +1,27 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.IBM.StaticData
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.IBM.StaticData (
+  -- * Extension Support
+  glGetIBMStaticData,
+  gl_IBM_static_data,
+  -- * Enums
+  pattern GL_ALL_STATIC_DATA_IBM,
+  pattern GL_STATIC_VERTEX_ARRAY_IBM,
+  -- * Functions
+  glFlushStaticDataIBM
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/IBM/TextureMirroredRepeat.hs b/src/Graphics/GL/IBM/TextureMirroredRepeat.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/IBM/TextureMirroredRepeat.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.IBM.TextureMirroredRepeat
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.IBM.TextureMirroredRepeat (
+  -- * Extension Support
+  glGetIBMTextureMirroredRepeat,
+  gl_IBM_texture_mirrored_repeat,
+  -- * Enums
+  pattern GL_MIRRORED_REPEAT_IBM
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/IBM/VertexArrayLists.hs b/src/Graphics/GL/IBM/VertexArrayLists.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/IBM/VertexArrayLists.hs
@@ -0,0 +1,48 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.IBM.VertexArrayLists
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.IBM.VertexArrayLists (
+  -- * Extension Support
+  glGetIBMVertexArrayLists,
+  gl_IBM_vertex_array_lists,
+  -- * Enums
+  pattern GL_COLOR_ARRAY_LIST_IBM,
+  pattern GL_COLOR_ARRAY_LIST_STRIDE_IBM,
+  pattern GL_EDGE_FLAG_ARRAY_LIST_IBM,
+  pattern GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM,
+  pattern GL_FOG_COORDINATE_ARRAY_LIST_IBM,
+  pattern GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM,
+  pattern GL_INDEX_ARRAY_LIST_IBM,
+  pattern GL_INDEX_ARRAY_LIST_STRIDE_IBM,
+  pattern GL_NORMAL_ARRAY_LIST_IBM,
+  pattern GL_NORMAL_ARRAY_LIST_STRIDE_IBM,
+  pattern GL_SECONDARY_COLOR_ARRAY_LIST_IBM,
+  pattern GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM,
+  pattern GL_TEXTURE_COORD_ARRAY_LIST_IBM,
+  pattern GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM,
+  pattern GL_VERTEX_ARRAY_LIST_IBM,
+  pattern GL_VERTEX_ARRAY_LIST_STRIDE_IBM,
+  -- * Functions
+  glColorPointerListIBM,
+  glEdgeFlagPointerListIBM,
+  glFogCoordPointerListIBM,
+  glIndexPointerListIBM,
+  glNormalPointerListIBM,
+  glSecondaryColorPointerListIBM,
+  glTexCoordPointerListIBM,
+  glVertexPointerListIBM
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/INGR.hs b/src/Graphics/GL/INGR.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/INGR.hs
@@ -0,0 +1,23 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.INGR
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- A convenience module, combining all raw modules containing INGR extensions.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.INGR (
+  module Graphics.GL.INGR.BlendFuncSeparate,
+  module Graphics.GL.INGR.ColorClamp,
+  module Graphics.GL.INGR.InterlaceRead
+) where
+
+import Graphics.GL.INGR.BlendFuncSeparate
+import Graphics.GL.INGR.ColorClamp
+import Graphics.GL.INGR.InterlaceRead
diff --git a/src/Graphics/GL/INGR/BlendFuncSeparate.hs b/src/Graphics/GL/INGR/BlendFuncSeparate.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/INGR/BlendFuncSeparate.hs
@@ -0,0 +1,22 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.INGR.BlendFuncSeparate
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.INGR.BlendFuncSeparate (
+  -- * Extension Support
+  glGetINGRBlendFuncSeparate,
+  gl_INGR_blend_func_separate,
+  -- * Functions
+  glBlendFuncSeparateINGR
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/INGR/ColorClamp.hs b/src/Graphics/GL/INGR/ColorClamp.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/INGR/ColorClamp.hs
@@ -0,0 +1,30 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.INGR.ColorClamp
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.INGR.ColorClamp (
+  -- * Extension Support
+  glGetINGRColorClamp,
+  gl_INGR_color_clamp,
+  -- * Enums
+  pattern GL_ALPHA_MAX_CLAMP_INGR,
+  pattern GL_ALPHA_MIN_CLAMP_INGR,
+  pattern GL_BLUE_MAX_CLAMP_INGR,
+  pattern GL_BLUE_MIN_CLAMP_INGR,
+  pattern GL_GREEN_MAX_CLAMP_INGR,
+  pattern GL_GREEN_MIN_CLAMP_INGR,
+  pattern GL_RED_MAX_CLAMP_INGR,
+  pattern GL_RED_MIN_CLAMP_INGR
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/INGR/InterlaceRead.hs b/src/Graphics/GL/INGR/InterlaceRead.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/INGR/InterlaceRead.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.INGR.InterlaceRead
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.INGR.InterlaceRead (
+  -- * Extension Support
+  glGetINGRInterlaceRead,
+  gl_INGR_interlace_read,
+  -- * Enums
+  pattern GL_INTERLACE_READ_INGR
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/INTEL.hs b/src/Graphics/GL/INTEL.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/INTEL.hs
@@ -0,0 +1,29 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.INTEL
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- A convenience module, combining all raw modules containing INTEL extensions.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.INTEL (
+  module Graphics.GL.INTEL.BlackholeRender,
+  module Graphics.GL.INTEL.ConservativeRasterization,
+  module Graphics.GL.INTEL.FramebufferCmaa,
+  module Graphics.GL.INTEL.MapTexture,
+  module Graphics.GL.INTEL.ParallelArrays,
+  module Graphics.GL.INTEL.PerformanceQuery
+) where
+
+import Graphics.GL.INTEL.BlackholeRender
+import Graphics.GL.INTEL.ConservativeRasterization
+import Graphics.GL.INTEL.FramebufferCmaa
+import Graphics.GL.INTEL.MapTexture
+import Graphics.GL.INTEL.ParallelArrays
+import Graphics.GL.INTEL.PerformanceQuery
diff --git a/src/Graphics/GL/INTEL/BlackholeRender.hs b/src/Graphics/GL/INTEL/BlackholeRender.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/INTEL/BlackholeRender.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.INTEL.BlackholeRender
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.INTEL.BlackholeRender (
+  -- * Extension Support
+  glGetINTELBlackholeRender,
+  gl_INTEL_blackhole_render,
+  -- * Enums
+  pattern GL_BLACKHOLE_RENDER_INTEL
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/INTEL/ConservativeRasterization.hs b/src/Graphics/GL/INTEL/ConservativeRasterization.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/INTEL/ConservativeRasterization.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.INTEL.ConservativeRasterization
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.INTEL.ConservativeRasterization (
+  -- * Extension Support
+  glGetINTELConservativeRasterization,
+  gl_INTEL_conservative_rasterization,
+  -- * Enums
+  pattern GL_CONSERVATIVE_RASTERIZATION_INTEL
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/INTEL/FramebufferCmaa.hs b/src/Graphics/GL/INTEL/FramebufferCmaa.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/INTEL/FramebufferCmaa.hs
@@ -0,0 +1,22 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.INTEL.FramebufferCmaa
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.INTEL.FramebufferCmaa (
+  -- * Extension Support
+  glGetINTELFramebufferCmaa,
+  gl_INTEL_framebuffer_CMAA,
+  -- * Functions
+  glApplyFramebufferAttachmentCMAAINTEL
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/INTEL/MapTexture.hs b/src/Graphics/GL/INTEL/MapTexture.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/INTEL/MapTexture.hs
@@ -0,0 +1,31 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.INTEL.MapTexture
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.INTEL.MapTexture (
+  -- * Extension Support
+  glGetINTELMapTexture,
+  gl_INTEL_map_texture,
+  -- * Enums
+  pattern GL_LAYOUT_DEFAULT_INTEL,
+  pattern GL_LAYOUT_LINEAR_CPU_CACHED_INTEL,
+  pattern GL_LAYOUT_LINEAR_INTEL,
+  pattern GL_TEXTURE_MEMORY_LAYOUT_INTEL,
+  -- * Functions
+  glMapTexture2DINTEL,
+  glSyncTextureINTEL,
+  glUnmapTexture2DINTEL
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/INTEL/ParallelArrays.hs b/src/Graphics/GL/INTEL/ParallelArrays.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/INTEL/ParallelArrays.hs
@@ -0,0 +1,33 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.INTEL.ParallelArrays
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.INTEL.ParallelArrays (
+  -- * Extension Support
+  glGetINTELParallelArrays,
+  gl_INTEL_parallel_arrays,
+  -- * Enums
+  pattern GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL,
+  pattern GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL,
+  pattern GL_PARALLEL_ARRAYS_INTEL,
+  pattern GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL,
+  pattern GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL,
+  -- * Functions
+  glColorPointervINTEL,
+  glNormalPointervINTEL,
+  glTexCoordPointervINTEL,
+  glVertexPointervINTEL
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/INTEL/PerformanceQuery.hs b/src/Graphics/GL/INTEL/PerformanceQuery.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/INTEL/PerformanceQuery.hs
@@ -0,0 +1,54 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.INTEL.PerformanceQuery
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.INTEL.PerformanceQuery (
+  -- * Extension Support
+  glGetINTELPerformanceQuery,
+  gl_INTEL_performance_query,
+  -- * Enums
+  pattern GL_PERFQUERY_COUNTER_DATA_BOOL32_INTEL,
+  pattern GL_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL,
+  pattern GL_PERFQUERY_COUNTER_DATA_FLOAT_INTEL,
+  pattern GL_PERFQUERY_COUNTER_DATA_UINT32_INTEL,
+  pattern GL_PERFQUERY_COUNTER_DATA_UINT64_INTEL,
+  pattern GL_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL,
+  pattern GL_PERFQUERY_COUNTER_DURATION_NORM_INTEL,
+  pattern GL_PERFQUERY_COUNTER_DURATION_RAW_INTEL,
+  pattern GL_PERFQUERY_COUNTER_EVENT_INTEL,
+  pattern GL_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL,
+  pattern GL_PERFQUERY_COUNTER_RAW_INTEL,
+  pattern GL_PERFQUERY_COUNTER_THROUGHPUT_INTEL,
+  pattern GL_PERFQUERY_COUNTER_TIMESTAMP_INTEL,
+  pattern GL_PERFQUERY_DONOT_FLUSH_INTEL,
+  pattern GL_PERFQUERY_FLUSH_INTEL,
+  pattern GL_PERFQUERY_GLOBAL_CONTEXT_INTEL,
+  pattern GL_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL,
+  pattern GL_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL,
+  pattern GL_PERFQUERY_SINGLE_CONTEXT_INTEL,
+  pattern GL_PERFQUERY_WAIT_INTEL,
+  -- * Functions
+  glBeginPerfQueryINTEL,
+  glCreatePerfQueryINTEL,
+  glDeletePerfQueryINTEL,
+  glEndPerfQueryINTEL,
+  glGetFirstPerfQueryIdINTEL,
+  glGetNextPerfQueryIdINTEL,
+  glGetPerfCounterInfoINTEL,
+  glGetPerfQueryDataINTEL,
+  glGetPerfQueryIdByNameINTEL,
+  glGetPerfQueryInfoINTEL
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/KHR.hs b/src/Graphics/GL/KHR.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/KHR.hs
@@ -0,0 +1,39 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.KHR
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- A convenience module, combining all raw modules containing KHR extensions.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.KHR (
+  module Graphics.GL.KHR.BlendEquationAdvanced,
+  module Graphics.GL.KHR.BlendEquationAdvancedCoherent,
+  module Graphics.GL.KHR.ContextFlushControl,
+  module Graphics.GL.KHR.DebugCompatibility,
+  module Graphics.GL.KHR.DebugCore,
+  module Graphics.GL.KHR.NoError,
+  module Graphics.GL.KHR.ParallelShaderCompile,
+  module Graphics.GL.KHR.Robustness,
+  module Graphics.GL.KHR.ShaderSubgroup,
+  module Graphics.GL.KHR.TextureCompressionASTCHDR,
+  module Graphics.GL.KHR.TextureCompressionASTCLDR
+) where
+
+import Graphics.GL.KHR.BlendEquationAdvanced
+import Graphics.GL.KHR.BlendEquationAdvancedCoherent
+import Graphics.GL.KHR.ContextFlushControl
+import Graphics.GL.KHR.DebugCompatibility
+import Graphics.GL.KHR.DebugCore
+import Graphics.GL.KHR.NoError
+import Graphics.GL.KHR.ParallelShaderCompile
+import Graphics.GL.KHR.Robustness
+import Graphics.GL.KHR.ShaderSubgroup
+import Graphics.GL.KHR.TextureCompressionASTCHDR
+import Graphics.GL.KHR.TextureCompressionASTCLDR
diff --git a/src/Graphics/GL/KHR/BlendEquationAdvanced.hs b/src/Graphics/GL/KHR/BlendEquationAdvanced.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/KHR/BlendEquationAdvanced.hs
@@ -0,0 +1,40 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.KHR.BlendEquationAdvanced
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.KHR.BlendEquationAdvanced (
+  -- * Extension Support
+  glGetKHRBlendEquationAdvanced,
+  gl_KHR_blend_equation_advanced,
+  -- * Enums
+  pattern GL_COLORBURN_KHR,
+  pattern GL_COLORDODGE_KHR,
+  pattern GL_DARKEN_KHR,
+  pattern GL_DIFFERENCE_KHR,
+  pattern GL_EXCLUSION_KHR,
+  pattern GL_HARDLIGHT_KHR,
+  pattern GL_HSL_COLOR_KHR,
+  pattern GL_HSL_HUE_KHR,
+  pattern GL_HSL_LUMINOSITY_KHR,
+  pattern GL_HSL_SATURATION_KHR,
+  pattern GL_LIGHTEN_KHR,
+  pattern GL_MULTIPLY_KHR,
+  pattern GL_OVERLAY_KHR,
+  pattern GL_SCREEN_KHR,
+  pattern GL_SOFTLIGHT_KHR,
+  -- * Functions
+  glBlendBarrierKHR
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/KHR/BlendEquationAdvancedCoherent.hs b/src/Graphics/GL/KHR/BlendEquationAdvancedCoherent.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/KHR/BlendEquationAdvancedCoherent.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.KHR.BlendEquationAdvancedCoherent
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.KHR.BlendEquationAdvancedCoherent (
+  -- * Extension Support
+  glGetKHRBlendEquationAdvancedCoherent,
+  gl_KHR_blend_equation_advanced_coherent,
+  -- * Enums
+  pattern GL_BLEND_ADVANCED_COHERENT_KHR
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/KHR/ContextFlushControl.hs b/src/Graphics/GL/KHR/ContextFlushControl.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/KHR/ContextFlushControl.hs
@@ -0,0 +1,25 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.KHR.ContextFlushControl
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.KHR.ContextFlushControl (
+  -- * Extension Support
+  glGetKHRContextFlushControl,
+  gl_KHR_context_flush_control,
+  -- * Enums
+  pattern GL_CONTEXT_RELEASE_BEHAVIOR,
+  pattern GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH,
+  pattern GL_NONE
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/KHR/DebugCompatibility.hs b/src/Graphics/GL/KHR/DebugCompatibility.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/KHR/DebugCompatibility.hs
@@ -0,0 +1,76 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.KHR.DebugCompatibility
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.KHR.DebugCompatibility (
+  -- * Extension Support
+  glGetKHRDebug,
+  gl_KHR_debug,
+  -- * Enums
+  pattern GL_BUFFER,
+  pattern GL_CONTEXT_FLAG_DEBUG_BIT,
+  pattern GL_DEBUG_CALLBACK_FUNCTION,
+  pattern GL_DEBUG_CALLBACK_USER_PARAM,
+  pattern GL_DEBUG_GROUP_STACK_DEPTH,
+  pattern GL_DEBUG_LOGGED_MESSAGES,
+  pattern GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH,
+  pattern GL_DEBUG_OUTPUT,
+  pattern GL_DEBUG_OUTPUT_SYNCHRONOUS,
+  pattern GL_DEBUG_SEVERITY_HIGH,
+  pattern GL_DEBUG_SEVERITY_LOW,
+  pattern GL_DEBUG_SEVERITY_MEDIUM,
+  pattern GL_DEBUG_SEVERITY_NOTIFICATION,
+  pattern GL_DEBUG_SOURCE_API,
+  pattern GL_DEBUG_SOURCE_APPLICATION,
+  pattern GL_DEBUG_SOURCE_OTHER,
+  pattern GL_DEBUG_SOURCE_SHADER_COMPILER,
+  pattern GL_DEBUG_SOURCE_THIRD_PARTY,
+  pattern GL_DEBUG_SOURCE_WINDOW_SYSTEM,
+  pattern GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR,
+  pattern GL_DEBUG_TYPE_ERROR,
+  pattern GL_DEBUG_TYPE_MARKER,
+  pattern GL_DEBUG_TYPE_OTHER,
+  pattern GL_DEBUG_TYPE_PERFORMANCE,
+  pattern GL_DEBUG_TYPE_POP_GROUP,
+  pattern GL_DEBUG_TYPE_PORTABILITY,
+  pattern GL_DEBUG_TYPE_PUSH_GROUP,
+  pattern GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR,
+  pattern GL_DISPLAY_LIST,
+  pattern GL_MAX_DEBUG_GROUP_STACK_DEPTH,
+  pattern GL_MAX_DEBUG_LOGGED_MESSAGES,
+  pattern GL_MAX_DEBUG_MESSAGE_LENGTH,
+  pattern GL_MAX_LABEL_LENGTH,
+  pattern GL_PROGRAM,
+  pattern GL_PROGRAM_PIPELINE,
+  pattern GL_QUERY,
+  pattern GL_SAMPLER,
+  pattern GL_SHADER,
+  pattern GL_STACK_OVERFLOW,
+  pattern GL_STACK_UNDERFLOW,
+  pattern GL_VERTEX_ARRAY,
+  -- * Functions
+  glDebugMessageCallback,
+  glDebugMessageControl,
+  glDebugMessageInsert,
+  glGetDebugMessageLog,
+  glGetObjectLabel,
+  glGetObjectPtrLabel,
+  glGetPointerv,
+  glObjectLabel,
+  glObjectPtrLabel,
+  glPopDebugGroup,
+  glPushDebugGroup
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/KHR/DebugCore.hs b/src/Graphics/GL/KHR/DebugCore.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/KHR/DebugCore.hs
@@ -0,0 +1,75 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.KHR.DebugCore
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.KHR.DebugCore (
+  -- * Extension Support
+  glGetKHRDebug,
+  gl_KHR_debug,
+  -- * Enums
+  pattern GL_BUFFER,
+  pattern GL_CONTEXT_FLAG_DEBUG_BIT,
+  pattern GL_DEBUG_CALLBACK_FUNCTION,
+  pattern GL_DEBUG_CALLBACK_USER_PARAM,
+  pattern GL_DEBUG_GROUP_STACK_DEPTH,
+  pattern GL_DEBUG_LOGGED_MESSAGES,
+  pattern GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH,
+  pattern GL_DEBUG_OUTPUT,
+  pattern GL_DEBUG_OUTPUT_SYNCHRONOUS,
+  pattern GL_DEBUG_SEVERITY_HIGH,
+  pattern GL_DEBUG_SEVERITY_LOW,
+  pattern GL_DEBUG_SEVERITY_MEDIUM,
+  pattern GL_DEBUG_SEVERITY_NOTIFICATION,
+  pattern GL_DEBUG_SOURCE_API,
+  pattern GL_DEBUG_SOURCE_APPLICATION,
+  pattern GL_DEBUG_SOURCE_OTHER,
+  pattern GL_DEBUG_SOURCE_SHADER_COMPILER,
+  pattern GL_DEBUG_SOURCE_THIRD_PARTY,
+  pattern GL_DEBUG_SOURCE_WINDOW_SYSTEM,
+  pattern GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR,
+  pattern GL_DEBUG_TYPE_ERROR,
+  pattern GL_DEBUG_TYPE_MARKER,
+  pattern GL_DEBUG_TYPE_OTHER,
+  pattern GL_DEBUG_TYPE_PERFORMANCE,
+  pattern GL_DEBUG_TYPE_POP_GROUP,
+  pattern GL_DEBUG_TYPE_PORTABILITY,
+  pattern GL_DEBUG_TYPE_PUSH_GROUP,
+  pattern GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR,
+  pattern GL_MAX_DEBUG_GROUP_STACK_DEPTH,
+  pattern GL_MAX_DEBUG_LOGGED_MESSAGES,
+  pattern GL_MAX_DEBUG_MESSAGE_LENGTH,
+  pattern GL_MAX_LABEL_LENGTH,
+  pattern GL_PROGRAM,
+  pattern GL_PROGRAM_PIPELINE,
+  pattern GL_QUERY,
+  pattern GL_SAMPLER,
+  pattern GL_SHADER,
+  pattern GL_STACK_OVERFLOW,
+  pattern GL_STACK_UNDERFLOW,
+  pattern GL_VERTEX_ARRAY,
+  -- * Functions
+  glDebugMessageCallback,
+  glDebugMessageControl,
+  glDebugMessageInsert,
+  glGetDebugMessageLog,
+  glGetObjectLabel,
+  glGetObjectPtrLabel,
+  glGetPointerv,
+  glObjectLabel,
+  glObjectPtrLabel,
+  glPopDebugGroup,
+  glPushDebugGroup
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/KHR/NoError.hs b/src/Graphics/GL/KHR/NoError.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/KHR/NoError.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.KHR.NoError
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.KHR.NoError (
+  -- * Extension Support
+  glGetKHRNoError,
+  gl_KHR_no_error,
+  -- * Enums
+  pattern GL_CONTEXT_FLAG_NO_ERROR_BIT_KHR
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/KHR/ParallelShaderCompile.hs b/src/Graphics/GL/KHR/ParallelShaderCompile.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/KHR/ParallelShaderCompile.hs
@@ -0,0 +1,27 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.KHR.ParallelShaderCompile
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.KHR.ParallelShaderCompile (
+  -- * Extension Support
+  glGetKHRParallelShaderCompile,
+  gl_KHR_parallel_shader_compile,
+  -- * Enums
+  pattern GL_COMPLETION_STATUS_KHR,
+  pattern GL_MAX_SHADER_COMPILER_THREADS_KHR,
+  -- * Functions
+  glMaxShaderCompilerThreadsKHR
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/KHR/Robustness.hs b/src/Graphics/GL/KHR/Robustness.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/KHR/Robustness.hs
@@ -0,0 +1,38 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.KHR.Robustness
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.KHR.Robustness (
+  -- * Extension Support
+  glGetKHRRobustness,
+  gl_KHR_robustness,
+  -- * Enums
+  pattern GL_CONTEXT_LOST,
+  pattern GL_CONTEXT_ROBUST_ACCESS,
+  pattern GL_GUILTY_CONTEXT_RESET,
+  pattern GL_INNOCENT_CONTEXT_RESET,
+  pattern GL_LOSE_CONTEXT_ON_RESET,
+  pattern GL_NO_ERROR,
+  pattern GL_NO_RESET_NOTIFICATION,
+  pattern GL_RESET_NOTIFICATION_STRATEGY,
+  pattern GL_UNKNOWN_CONTEXT_RESET,
+  -- * Functions
+  glGetGraphicsResetStatus,
+  glGetnUniformfv,
+  glGetnUniformiv,
+  glGetnUniformuiv,
+  glReadnPixels
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/KHR/ShaderSubgroup.hs b/src/Graphics/GL/KHR/ShaderSubgroup.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/KHR/ShaderSubgroup.hs
@@ -0,0 +1,34 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.KHR.ShaderSubgroup
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.KHR.ShaderSubgroup (
+  -- * Extension Support
+  glGetKHRShaderSubgroup,
+  gl_KHR_shader_subgroup,
+  -- * Enums
+  pattern GL_SUBGROUP_FEATURE_ARITHMETIC_BIT_KHR,
+  pattern GL_SUBGROUP_FEATURE_BALLOT_BIT_KHR,
+  pattern GL_SUBGROUP_FEATURE_BASIC_BIT_KHR,
+  pattern GL_SUBGROUP_FEATURE_CLUSTERED_BIT_KHR,
+  pattern GL_SUBGROUP_FEATURE_QUAD_BIT_KHR,
+  pattern GL_SUBGROUP_FEATURE_SHUFFLE_BIT_KHR,
+  pattern GL_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT_KHR,
+  pattern GL_SUBGROUP_FEATURE_VOTE_BIT_KHR,
+  pattern GL_SUBGROUP_QUAD_ALL_STAGES_KHR,
+  pattern GL_SUBGROUP_SIZE_KHR,
+  pattern GL_SUBGROUP_SUPPORTED_FEATURES_KHR,
+  pattern GL_SUBGROUP_SUPPORTED_STAGES_KHR
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/KHR/TextureCompressionASTCHDR.hs b/src/Graphics/GL/KHR/TextureCompressionASTCHDR.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/KHR/TextureCompressionASTCHDR.hs
@@ -0,0 +1,50 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.KHR.TextureCompressionASTCHDR
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.KHR.TextureCompressionASTCHDR (
+  -- * Extension Support
+  glGetKHRTextureCompressionASTCHDR,
+  gl_KHR_texture_compression_astc_hdr,
+  -- * Enums
+  pattern GL_COMPRESSED_RGBA_ASTC_10x10_KHR,
+  pattern GL_COMPRESSED_RGBA_ASTC_10x5_KHR,
+  pattern GL_COMPRESSED_RGBA_ASTC_10x6_KHR,
+  pattern GL_COMPRESSED_RGBA_ASTC_10x8_KHR,
+  pattern GL_COMPRESSED_RGBA_ASTC_12x10_KHR,
+  pattern GL_COMPRESSED_RGBA_ASTC_12x12_KHR,
+  pattern GL_COMPRESSED_RGBA_ASTC_4x4_KHR,
+  pattern GL_COMPRESSED_RGBA_ASTC_5x4_KHR,
+  pattern GL_COMPRESSED_RGBA_ASTC_5x5_KHR,
+  pattern GL_COMPRESSED_RGBA_ASTC_6x5_KHR,
+  pattern GL_COMPRESSED_RGBA_ASTC_6x6_KHR,
+  pattern GL_COMPRESSED_RGBA_ASTC_8x5_KHR,
+  pattern GL_COMPRESSED_RGBA_ASTC_8x6_KHR,
+  pattern GL_COMPRESSED_RGBA_ASTC_8x8_KHR,
+  pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,
+  pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR,
+  pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR,
+  pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR,
+  pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR,
+  pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR,
+  pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR,
+  pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR,
+  pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR,
+  pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR,
+  pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR,
+  pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR,
+  pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR,
+  pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/KHR/TextureCompressionASTCLDR.hs b/src/Graphics/GL/KHR/TextureCompressionASTCLDR.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/KHR/TextureCompressionASTCLDR.hs
@@ -0,0 +1,50 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.KHR.TextureCompressionASTCLDR
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.KHR.TextureCompressionASTCLDR (
+  -- * Extension Support
+  glGetKHRTextureCompressionASTCLDR,
+  gl_KHR_texture_compression_astc_ldr,
+  -- * Enums
+  pattern GL_COMPRESSED_RGBA_ASTC_10x10_KHR,
+  pattern GL_COMPRESSED_RGBA_ASTC_10x5_KHR,
+  pattern GL_COMPRESSED_RGBA_ASTC_10x6_KHR,
+  pattern GL_COMPRESSED_RGBA_ASTC_10x8_KHR,
+  pattern GL_COMPRESSED_RGBA_ASTC_12x10_KHR,
+  pattern GL_COMPRESSED_RGBA_ASTC_12x12_KHR,
+  pattern GL_COMPRESSED_RGBA_ASTC_4x4_KHR,
+  pattern GL_COMPRESSED_RGBA_ASTC_5x4_KHR,
+  pattern GL_COMPRESSED_RGBA_ASTC_5x5_KHR,
+  pattern GL_COMPRESSED_RGBA_ASTC_6x5_KHR,
+  pattern GL_COMPRESSED_RGBA_ASTC_6x6_KHR,
+  pattern GL_COMPRESSED_RGBA_ASTC_8x5_KHR,
+  pattern GL_COMPRESSED_RGBA_ASTC_8x6_KHR,
+  pattern GL_COMPRESSED_RGBA_ASTC_8x8_KHR,
+  pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,
+  pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR,
+  pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR,
+  pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR,
+  pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR,
+  pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR,
+  pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR,
+  pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR,
+  pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR,
+  pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR,
+  pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR,
+  pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR,
+  pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR,
+  pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/MESA.hs b/src/Graphics/GL/MESA.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/MESA.hs
@@ -0,0 +1,31 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.MESA
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- A convenience module, combining all raw modules containing MESA extensions.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.MESA (
+  module Graphics.GL.MESA.FramebufferFlipY,
+  module Graphics.GL.MESA.PackInvert,
+  module Graphics.GL.MESA.ProgramBinaryFormats,
+  module Graphics.GL.MESA.ResizeBuffers,
+  module Graphics.GL.MESA.TileRasterOrder,
+  module Graphics.GL.MESA.WindowPos,
+  module Graphics.GL.MESA.YCbCrTexture
+) where
+
+import Graphics.GL.MESA.FramebufferFlipY
+import Graphics.GL.MESA.PackInvert
+import Graphics.GL.MESA.ProgramBinaryFormats
+import Graphics.GL.MESA.ResizeBuffers
+import Graphics.GL.MESA.TileRasterOrder
+import Graphics.GL.MESA.WindowPos
+import Graphics.GL.MESA.YCbCrTexture
diff --git a/src/Graphics/GL/MESA/FramebufferFlipY.hs b/src/Graphics/GL/MESA/FramebufferFlipY.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/MESA/FramebufferFlipY.hs
@@ -0,0 +1,27 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.MESA.FramebufferFlipY
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.MESA.FramebufferFlipY (
+  -- * Extension Support
+  glGetMESAFramebufferFlipY,
+  gl_MESA_framebuffer_flip_y,
+  -- * Enums
+  pattern GL_FRAMEBUFFER_FLIP_Y_MESA,
+  -- * Functions
+  glFramebufferParameteriMESA,
+  glGetFramebufferParameterivMESA
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/MESA/PackInvert.hs b/src/Graphics/GL/MESA/PackInvert.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/MESA/PackInvert.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.MESA.PackInvert
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.MESA.PackInvert (
+  -- * Extension Support
+  glGetMESAPackInvert,
+  gl_MESA_pack_invert,
+  -- * Enums
+  pattern GL_PACK_INVERT_MESA
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/MESA/ProgramBinaryFormats.hs b/src/Graphics/GL/MESA/ProgramBinaryFormats.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/MESA/ProgramBinaryFormats.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.MESA.ProgramBinaryFormats
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.MESA.ProgramBinaryFormats (
+  -- * Extension Support
+  glGetMESAProgramBinaryFormats,
+  gl_MESA_program_binary_formats,
+  -- * Enums
+  pattern GL_PROGRAM_BINARY_FORMAT_MESA
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/MESA/ResizeBuffers.hs b/src/Graphics/GL/MESA/ResizeBuffers.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/MESA/ResizeBuffers.hs
@@ -0,0 +1,22 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.MESA.ResizeBuffers
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.MESA.ResizeBuffers (
+  -- * Extension Support
+  glGetMESAResizeBuffers,
+  gl_MESA_resize_buffers,
+  -- * Functions
+  glResizeBuffersMESA
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/MESA/TileRasterOrder.hs b/src/Graphics/GL/MESA/TileRasterOrder.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/MESA/TileRasterOrder.hs
@@ -0,0 +1,25 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.MESA.TileRasterOrder
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.MESA.TileRasterOrder (
+  -- * Extension Support
+  glGetMESATileRasterOrder,
+  gl_MESA_tile_raster_order,
+  -- * Enums
+  pattern GL_TILE_RASTER_ORDER_FIXED_MESA,
+  pattern GL_TILE_RASTER_ORDER_INCREASING_X_MESA,
+  pattern GL_TILE_RASTER_ORDER_INCREASING_Y_MESA
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/MESA/WindowPos.hs b/src/Graphics/GL/MESA/WindowPos.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/MESA/WindowPos.hs
@@ -0,0 +1,45 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.MESA.WindowPos
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.MESA.WindowPos (
+  -- * Extension Support
+  glGetMESAWindowPos,
+  gl_MESA_window_pos,
+  -- * Functions
+  glWindowPos2dMESA,
+  glWindowPos2dvMESA,
+  glWindowPos2fMESA,
+  glWindowPos2fvMESA,
+  glWindowPos2iMESA,
+  glWindowPos2ivMESA,
+  glWindowPos2sMESA,
+  glWindowPos2svMESA,
+  glWindowPos3dMESA,
+  glWindowPos3dvMESA,
+  glWindowPos3fMESA,
+  glWindowPos3fvMESA,
+  glWindowPos3iMESA,
+  glWindowPos3ivMESA,
+  glWindowPos3sMESA,
+  glWindowPos3svMESA,
+  glWindowPos4dMESA,
+  glWindowPos4dvMESA,
+  glWindowPos4fMESA,
+  glWindowPos4fvMESA,
+  glWindowPos4iMESA,
+  glWindowPos4ivMESA,
+  glWindowPos4sMESA,
+  glWindowPos4svMESA
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/MESA/YCbCrTexture.hs b/src/Graphics/GL/MESA/YCbCrTexture.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/MESA/YCbCrTexture.hs
@@ -0,0 +1,25 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.MESA.YCbCrTexture
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.MESA.YCbCrTexture (
+  -- * Extension Support
+  glGetMESAYCbCrTexture,
+  gl_MESA_ycbcr_texture,
+  -- * Enums
+  pattern GL_UNSIGNED_SHORT_8_8_MESA,
+  pattern GL_UNSIGNED_SHORT_8_8_REV_MESA,
+  pattern GL_YCBCR_MESA
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/MESAX.hs b/src/Graphics/GL/MESAX.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/MESAX.hs
@@ -0,0 +1,19 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.MESAX
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- A convenience module, combining all raw modules containing MESAX extensions.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.MESAX (
+  module Graphics.GL.MESAX.TextureStack
+) where
+
+import Graphics.GL.MESAX.TextureStack
diff --git a/src/Graphics/GL/MESAX/TextureStack.hs b/src/Graphics/GL/MESAX/TextureStack.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/MESAX/TextureStack.hs
@@ -0,0 +1,28 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.MESAX.TextureStack
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.MESAX.TextureStack (
+  -- * Extension Support
+  glGetMESAXTextureStack,
+  gl_MESAX_texture_stack,
+  -- * Enums
+  pattern GL_PROXY_TEXTURE_1D_STACK_MESAX,
+  pattern GL_PROXY_TEXTURE_2D_STACK_MESAX,
+  pattern GL_TEXTURE_1D_STACK_BINDING_MESAX,
+  pattern GL_TEXTURE_1D_STACK_MESAX,
+  pattern GL_TEXTURE_2D_STACK_BINDING_MESAX,
+  pattern GL_TEXTURE_2D_STACK_MESAX
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/NV.hs b/src/Graphics/GL/NV.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV.hs
@@ -0,0 +1,205 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- A convenience module, combining all raw modules containing NV extensions.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV (
+  module Graphics.GL.NV.AlphaToCoverageDitherControl,
+  module Graphics.GL.NV.BindlessMultiDrawIndirect,
+  module Graphics.GL.NV.BindlessMultiDrawIndirectCount,
+  module Graphics.GL.NV.BindlessTexture,
+  module Graphics.GL.NV.BlendEquationAdvanced,
+  module Graphics.GL.NV.BlendEquationAdvancedCoherent,
+  module Graphics.GL.NV.BlendMinmaxFactor,
+  module Graphics.GL.NV.ClipSpaceWScaling,
+  module Graphics.GL.NV.CommandList,
+  module Graphics.GL.NV.ComputeProgram5,
+  module Graphics.GL.NV.ConditionalRender,
+  module Graphics.GL.NV.ConservativeRaster,
+  module Graphics.GL.NV.ConservativeRasterDilate,
+  module Graphics.GL.NV.ConservativeRasterPreSnap,
+  module Graphics.GL.NV.ConservativeRasterPreSnapTriangles,
+  module Graphics.GL.NV.CopyDepthToColor,
+  module Graphics.GL.NV.CopyImage,
+  module Graphics.GL.NV.DeepTexture3D,
+  module Graphics.GL.NV.DepthBufferFloat,
+  module Graphics.GL.NV.DepthClamp,
+  module Graphics.GL.NV.DrawTexture,
+  module Graphics.GL.NV.DrawVulkanImage,
+  module Graphics.GL.NV.Evaluators,
+  module Graphics.GL.NV.ExplicitMultisample,
+  module Graphics.GL.NV.Fence,
+  module Graphics.GL.NV.FillRectangle,
+  module Graphics.GL.NV.FloatBuffer,
+  module Graphics.GL.NV.FogDistance,
+  module Graphics.GL.NV.FragmentCoverageToColor,
+  module Graphics.GL.NV.FragmentProgram,
+  module Graphics.GL.NV.FragmentProgram2,
+  module Graphics.GL.NV.FramebufferMixedSamples,
+  module Graphics.GL.NV.FramebufferMultisampleCoverage,
+  module Graphics.GL.NV.GPUMulticast,
+  module Graphics.GL.NV.GPUProgram4,
+  module Graphics.GL.NV.GPUProgram5,
+  module Graphics.GL.NV.GPUShader5,
+  module Graphics.GL.NV.GeometryProgram4,
+  module Graphics.GL.NV.HalfFloat,
+  module Graphics.GL.NV.InternalformatSampleQuery,
+  module Graphics.GL.NV.LightMaxExponent,
+  module Graphics.GL.NV.MemoryAttachment,
+  module Graphics.GL.NV.MeshShader,
+  module Graphics.GL.NV.MultisampleCoverage,
+  module Graphics.GL.NV.MultisampleFilterHint,
+  module Graphics.GL.NV.OcclusionQuery,
+  module Graphics.GL.NV.PackedDepthStencil,
+  module Graphics.GL.NV.ParameterBufferObject,
+  module Graphics.GL.NV.PathRenderingCompatibility,
+  module Graphics.GL.NV.PathRenderingCore,
+  module Graphics.GL.NV.PathRenderingSharedEdge,
+  module Graphics.GL.NV.PixelDataRange,
+  module Graphics.GL.NV.PointSprite,
+  module Graphics.GL.NV.PresentVideo,
+  module Graphics.GL.NV.PrimitiveRestart,
+  module Graphics.GL.NV.QueryResource,
+  module Graphics.GL.NV.QueryResourceTag,
+  module Graphics.GL.NV.RegisterCombiners,
+  module Graphics.GL.NV.RegisterCombiners2,
+  module Graphics.GL.NV.RepresentativeFragmentTest,
+  module Graphics.GL.NV.RobustnessVideoMemoryPurge,
+  module Graphics.GL.NV.SampleLocations,
+  module Graphics.GL.NV.ScissorExclusive,
+  module Graphics.GL.NV.ShaderBufferLoad,
+  module Graphics.GL.NV.ShaderBufferStore,
+  module Graphics.GL.NV.ShaderSubgroupPartitioned,
+  module Graphics.GL.NV.ShaderThreadGroup,
+  module Graphics.GL.NV.ShadingRateImage,
+  module Graphics.GL.NV.TessellationProgram5,
+  module Graphics.GL.NV.TexgenEmboss,
+  module Graphics.GL.NV.TexgenReflection,
+  module Graphics.GL.NV.TextureBarrier,
+  module Graphics.GL.NV.TextureEnvCombine4,
+  module Graphics.GL.NV.TextureExpandNormal,
+  module Graphics.GL.NV.TextureMultisample,
+  module Graphics.GL.NV.TextureRectangle,
+  module Graphics.GL.NV.TextureShader,
+  module Graphics.GL.NV.TextureShader2,
+  module Graphics.GL.NV.TextureShader3,
+  module Graphics.GL.NV.TransformFeedback,
+  module Graphics.GL.NV.TransformFeedback2,
+  module Graphics.GL.NV.UniformBufferUnifiedMemory,
+  module Graphics.GL.NV.VDPAUInterop,
+  module Graphics.GL.NV.VDPAUInterop2,
+  module Graphics.GL.NV.VertexArrayRange,
+  module Graphics.GL.NV.VertexArrayRange2,
+  module Graphics.GL.NV.VertexAttribInteger64Bit,
+  module Graphics.GL.NV.VertexBufferUnifiedMemory,
+  module Graphics.GL.NV.VertexProgram,
+  module Graphics.GL.NV.VertexProgram2Option,
+  module Graphics.GL.NV.VertexProgram3,
+  module Graphics.GL.NV.VertexProgram4,
+  module Graphics.GL.NV.VideoCapture,
+  module Graphics.GL.NV.ViewportSwizzle
+) where
+
+import Graphics.GL.NV.AlphaToCoverageDitherControl
+import Graphics.GL.NV.BindlessMultiDrawIndirect
+import Graphics.GL.NV.BindlessMultiDrawIndirectCount
+import Graphics.GL.NV.BindlessTexture
+import Graphics.GL.NV.BlendEquationAdvanced
+import Graphics.GL.NV.BlendEquationAdvancedCoherent
+import Graphics.GL.NV.BlendMinmaxFactor
+import Graphics.GL.NV.ClipSpaceWScaling
+import Graphics.GL.NV.CommandList
+import Graphics.GL.NV.ComputeProgram5
+import Graphics.GL.NV.ConditionalRender
+import Graphics.GL.NV.ConservativeRaster
+import Graphics.GL.NV.ConservativeRasterDilate
+import Graphics.GL.NV.ConservativeRasterPreSnap
+import Graphics.GL.NV.ConservativeRasterPreSnapTriangles
+import Graphics.GL.NV.CopyDepthToColor
+import Graphics.GL.NV.CopyImage
+import Graphics.GL.NV.DeepTexture3D
+import Graphics.GL.NV.DepthBufferFloat
+import Graphics.GL.NV.DepthClamp
+import Graphics.GL.NV.DrawTexture
+import Graphics.GL.NV.DrawVulkanImage
+import Graphics.GL.NV.Evaluators
+import Graphics.GL.NV.ExplicitMultisample
+import Graphics.GL.NV.Fence
+import Graphics.GL.NV.FillRectangle
+import Graphics.GL.NV.FloatBuffer
+import Graphics.GL.NV.FogDistance
+import Graphics.GL.NV.FragmentCoverageToColor
+import Graphics.GL.NV.FragmentProgram
+import Graphics.GL.NV.FragmentProgram2
+import Graphics.GL.NV.FramebufferMixedSamples
+import Graphics.GL.NV.FramebufferMultisampleCoverage
+import Graphics.GL.NV.GPUMulticast
+import Graphics.GL.NV.GPUProgram4
+import Graphics.GL.NV.GPUProgram5
+import Graphics.GL.NV.GPUShader5
+import Graphics.GL.NV.GeometryProgram4
+import Graphics.GL.NV.HalfFloat
+import Graphics.GL.NV.InternalformatSampleQuery
+import Graphics.GL.NV.LightMaxExponent
+import Graphics.GL.NV.MemoryAttachment
+import Graphics.GL.NV.MeshShader
+import Graphics.GL.NV.MultisampleCoverage
+import Graphics.GL.NV.MultisampleFilterHint
+import Graphics.GL.NV.OcclusionQuery
+import Graphics.GL.NV.PackedDepthStencil
+import Graphics.GL.NV.ParameterBufferObject
+import Graphics.GL.NV.PathRenderingCompatibility
+import Graphics.GL.NV.PathRenderingCore
+import Graphics.GL.NV.PathRenderingSharedEdge
+import Graphics.GL.NV.PixelDataRange
+import Graphics.GL.NV.PointSprite
+import Graphics.GL.NV.PresentVideo
+import Graphics.GL.NV.PrimitiveRestart
+import Graphics.GL.NV.QueryResource
+import Graphics.GL.NV.QueryResourceTag
+import Graphics.GL.NV.RegisterCombiners
+import Graphics.GL.NV.RegisterCombiners2
+import Graphics.GL.NV.RepresentativeFragmentTest
+import Graphics.GL.NV.RobustnessVideoMemoryPurge
+import Graphics.GL.NV.SampleLocations
+import Graphics.GL.NV.ScissorExclusive
+import Graphics.GL.NV.ShaderBufferLoad
+import Graphics.GL.NV.ShaderBufferStore
+import Graphics.GL.NV.ShaderSubgroupPartitioned
+import Graphics.GL.NV.ShaderThreadGroup
+import Graphics.GL.NV.ShadingRateImage
+import Graphics.GL.NV.TessellationProgram5
+import Graphics.GL.NV.TexgenEmboss
+import Graphics.GL.NV.TexgenReflection
+import Graphics.GL.NV.TextureBarrier
+import Graphics.GL.NV.TextureEnvCombine4
+import Graphics.GL.NV.TextureExpandNormal
+import Graphics.GL.NV.TextureMultisample
+import Graphics.GL.NV.TextureRectangle
+import Graphics.GL.NV.TextureShader
+import Graphics.GL.NV.TextureShader2
+import Graphics.GL.NV.TextureShader3
+import Graphics.GL.NV.TransformFeedback
+import Graphics.GL.NV.TransformFeedback2
+import Graphics.GL.NV.UniformBufferUnifiedMemory
+import Graphics.GL.NV.VDPAUInterop
+import Graphics.GL.NV.VDPAUInterop2
+import Graphics.GL.NV.VertexArrayRange
+import Graphics.GL.NV.VertexArrayRange2
+import Graphics.GL.NV.VertexAttribInteger64Bit
+import Graphics.GL.NV.VertexBufferUnifiedMemory
+import Graphics.GL.NV.VertexProgram
+import Graphics.GL.NV.VertexProgram2Option
+import Graphics.GL.NV.VertexProgram3
+import Graphics.GL.NV.VertexProgram4
+import Graphics.GL.NV.VideoCapture
+import Graphics.GL.NV.ViewportSwizzle
diff --git a/src/Graphics/GL/NV/AlphaToCoverageDitherControl.hs b/src/Graphics/GL/NV/AlphaToCoverageDitherControl.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/AlphaToCoverageDitherControl.hs
@@ -0,0 +1,29 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.AlphaToCoverageDitherControl
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.AlphaToCoverageDitherControl (
+  -- * Extension Support
+  glGetNVAlphaToCoverageDitherControl,
+  gl_NV_alpha_to_coverage_dither_control,
+  -- * Enums
+  pattern GL_ALPHA_TO_COVERAGE_DITHER_DEFAULT_NV,
+  pattern GL_ALPHA_TO_COVERAGE_DITHER_DISABLE_NV,
+  pattern GL_ALPHA_TO_COVERAGE_DITHER_ENABLE_NV,
+  pattern GL_ALPHA_TO_COVERAGE_DITHER_MODE_NV,
+  -- * Functions
+  glAlphaToCoverageDitherControlNV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NV/BindlessMultiDrawIndirect.hs b/src/Graphics/GL/NV/BindlessMultiDrawIndirect.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/BindlessMultiDrawIndirect.hs
@@ -0,0 +1,23 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.BindlessMultiDrawIndirect
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.BindlessMultiDrawIndirect (
+  -- * Extension Support
+  glGetNVBindlessMultiDrawIndirect,
+  gl_NV_bindless_multi_draw_indirect,
+  -- * Functions
+  glMultiDrawArraysIndirectBindlessNV,
+  glMultiDrawElementsIndirectBindlessNV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NV/BindlessMultiDrawIndirectCount.hs b/src/Graphics/GL/NV/BindlessMultiDrawIndirectCount.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/BindlessMultiDrawIndirectCount.hs
@@ -0,0 +1,23 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.BindlessMultiDrawIndirectCount
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.BindlessMultiDrawIndirectCount (
+  -- * Extension Support
+  glGetNVBindlessMultiDrawIndirectCount,
+  gl_NV_bindless_multi_draw_indirect_count,
+  -- * Functions
+  glMultiDrawArraysIndirectBindlessCountNV,
+  glMultiDrawElementsIndirectBindlessCountNV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NV/BindlessTexture.hs b/src/Graphics/GL/NV/BindlessTexture.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/BindlessTexture.hs
@@ -0,0 +1,34 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.BindlessTexture
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.BindlessTexture (
+  -- * Extension Support
+  glGetNVBindlessTexture,
+  gl_NV_bindless_texture,
+  -- * Functions
+  glGetImageHandleNV,
+  glGetTextureHandleNV,
+  glGetTextureSamplerHandleNV,
+  glIsImageHandleResidentNV,
+  glIsTextureHandleResidentNV,
+  glMakeImageHandleNonResidentNV,
+  glMakeImageHandleResidentNV,
+  glMakeTextureHandleNonResidentNV,
+  glMakeTextureHandleResidentNV,
+  glProgramUniformHandleui64NV,
+  glProgramUniformHandleui64vNV,
+  glUniformHandleui64NV,
+  glUniformHandleui64vNV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NV/BlendEquationAdvanced.hs b/src/Graphics/GL/NV/BlendEquationAdvanced.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/BlendEquationAdvanced.hs
@@ -0,0 +1,77 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.BlendEquationAdvanced
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.BlendEquationAdvanced (
+  -- * Extension Support
+  glGetNVBlendEquationAdvanced,
+  gl_NV_blend_equation_advanced,
+  -- * Enums
+  pattern GL_BLEND_OVERLAP_NV,
+  pattern GL_BLEND_PREMULTIPLIED_SRC_NV,
+  pattern GL_BLUE_NV,
+  pattern GL_COLORBURN_NV,
+  pattern GL_COLORDODGE_NV,
+  pattern GL_CONJOINT_NV,
+  pattern GL_CONTRAST_NV,
+  pattern GL_DARKEN_NV,
+  pattern GL_DIFFERENCE_NV,
+  pattern GL_DISJOINT_NV,
+  pattern GL_DST_ATOP_NV,
+  pattern GL_DST_IN_NV,
+  pattern GL_DST_NV,
+  pattern GL_DST_OUT_NV,
+  pattern GL_DST_OVER_NV,
+  pattern GL_EXCLUSION_NV,
+  pattern GL_GREEN_NV,
+  pattern GL_HARDLIGHT_NV,
+  pattern GL_HARDMIX_NV,
+  pattern GL_HSL_COLOR_NV,
+  pattern GL_HSL_HUE_NV,
+  pattern GL_HSL_LUMINOSITY_NV,
+  pattern GL_HSL_SATURATION_NV,
+  pattern GL_INVERT,
+  pattern GL_INVERT_OVG_NV,
+  pattern GL_INVERT_RGB_NV,
+  pattern GL_LIGHTEN_NV,
+  pattern GL_LINEARBURN_NV,
+  pattern GL_LINEARDODGE_NV,
+  pattern GL_LINEARLIGHT_NV,
+  pattern GL_MINUS_CLAMPED_NV,
+  pattern GL_MINUS_NV,
+  pattern GL_MULTIPLY_NV,
+  pattern GL_OVERLAY_NV,
+  pattern GL_PINLIGHT_NV,
+  pattern GL_PLUS_CLAMPED_ALPHA_NV,
+  pattern GL_PLUS_CLAMPED_NV,
+  pattern GL_PLUS_DARKER_NV,
+  pattern GL_PLUS_NV,
+  pattern GL_RED_NV,
+  pattern GL_SCREEN_NV,
+  pattern GL_SOFTLIGHT_NV,
+  pattern GL_SRC_ATOP_NV,
+  pattern GL_SRC_IN_NV,
+  pattern GL_SRC_NV,
+  pattern GL_SRC_OUT_NV,
+  pattern GL_SRC_OVER_NV,
+  pattern GL_UNCORRELATED_NV,
+  pattern GL_VIVIDLIGHT_NV,
+  pattern GL_XOR_NV,
+  pattern GL_ZERO,
+  -- * Functions
+  glBlendBarrierNV,
+  glBlendParameteriNV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NV/BlendEquationAdvancedCoherent.hs b/src/Graphics/GL/NV/BlendEquationAdvancedCoherent.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/BlendEquationAdvancedCoherent.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.BlendEquationAdvancedCoherent
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.BlendEquationAdvancedCoherent (
+  -- * Extension Support
+  glGetNVBlendEquationAdvancedCoherent,
+  gl_NV_blend_equation_advanced_coherent,
+  -- * Enums
+  pattern GL_BLEND_ADVANCED_COHERENT_NV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/NV/BlendMinmaxFactor.hs b/src/Graphics/GL/NV/BlendMinmaxFactor.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/BlendMinmaxFactor.hs
@@ -0,0 +1,24 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.BlendMinmaxFactor
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.BlendMinmaxFactor (
+  -- * Extension Support
+  glGetNVBlendMinmaxFactor,
+  gl_NV_blend_minmax_factor,
+  -- * Enums
+  pattern GL_FACTOR_MAX_AMD,
+  pattern GL_FACTOR_MIN_AMD
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/NV/ClipSpaceWScaling.hs b/src/Graphics/GL/NV/ClipSpaceWScaling.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/ClipSpaceWScaling.hs
@@ -0,0 +1,28 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.ClipSpaceWScaling
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.ClipSpaceWScaling (
+  -- * Extension Support
+  glGetNVClipSpaceWScaling,
+  gl_NV_clip_space_w_scaling,
+  -- * Enums
+  pattern GL_VIEWPORT_POSITION_W_SCALE_NV,
+  pattern GL_VIEWPORT_POSITION_W_SCALE_X_COEFF_NV,
+  pattern GL_VIEWPORT_POSITION_W_SCALE_Y_COEFF_NV,
+  -- * Functions
+  glViewportPositionWScaleNV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NV/CommandList.hs b/src/Graphics/GL/NV/CommandList.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/CommandList.hs
@@ -0,0 +1,60 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.CommandList
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.CommandList (
+  -- * Extension Support
+  glGetNVCommandList,
+  gl_NV_command_list,
+  -- * Enums
+  pattern GL_ALPHA_REF_COMMAND_NV,
+  pattern GL_ATTRIBUTE_ADDRESS_COMMAND_NV,
+  pattern GL_BLEND_COLOR_COMMAND_NV,
+  pattern GL_DRAW_ARRAYS_COMMAND_NV,
+  pattern GL_DRAW_ARRAYS_INSTANCED_COMMAND_NV,
+  pattern GL_DRAW_ARRAYS_STRIP_COMMAND_NV,
+  pattern GL_DRAW_ELEMENTS_COMMAND_NV,
+  pattern GL_DRAW_ELEMENTS_INSTANCED_COMMAND_NV,
+  pattern GL_DRAW_ELEMENTS_STRIP_COMMAND_NV,
+  pattern GL_ELEMENT_ADDRESS_COMMAND_NV,
+  pattern GL_FRONT_FACE_COMMAND_NV,
+  pattern GL_LINE_WIDTH_COMMAND_NV,
+  pattern GL_NOP_COMMAND_NV,
+  pattern GL_POLYGON_OFFSET_COMMAND_NV,
+  pattern GL_SCISSOR_COMMAND_NV,
+  pattern GL_STENCIL_REF_COMMAND_NV,
+  pattern GL_TERMINATE_SEQUENCE_COMMAND_NV,
+  pattern GL_UNIFORM_ADDRESS_COMMAND_NV,
+  pattern GL_VIEWPORT_COMMAND_NV,
+  -- * Functions
+  glCallCommandListNV,
+  glCommandListSegmentsNV,
+  glCompileCommandListNV,
+  glCreateCommandListsNV,
+  glCreateStatesNV,
+  glDeleteCommandListsNV,
+  glDeleteStatesNV,
+  glDrawCommandsAddressNV,
+  glDrawCommandsNV,
+  glDrawCommandsStatesAddressNV,
+  glDrawCommandsStatesNV,
+  glGetCommandHeaderNV,
+  glGetStageIndexNV,
+  glIsCommandListNV,
+  glIsStateNV,
+  glListDrawCommandsStatesClientNV,
+  glStateCaptureNV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NV/ComputeProgram5.hs b/src/Graphics/GL/NV/ComputeProgram5.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/ComputeProgram5.hs
@@ -0,0 +1,24 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.ComputeProgram5
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.ComputeProgram5 (
+  -- * Extension Support
+  glGetNVComputeProgram5,
+  gl_NV_compute_program5,
+  -- * Enums
+  pattern GL_COMPUTE_PROGRAM_NV,
+  pattern GL_COMPUTE_PROGRAM_PARAMETER_BUFFER_NV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/NV/ConditionalRender.hs b/src/Graphics/GL/NV/ConditionalRender.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/ConditionalRender.hs
@@ -0,0 +1,30 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.ConditionalRender
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.ConditionalRender (
+  -- * Extension Support
+  glGetNVConditionalRender,
+  gl_NV_conditional_render,
+  -- * Enums
+  pattern GL_QUERY_BY_REGION_NO_WAIT_NV,
+  pattern GL_QUERY_BY_REGION_WAIT_NV,
+  pattern GL_QUERY_NO_WAIT_NV,
+  pattern GL_QUERY_WAIT_NV,
+  -- * Functions
+  glBeginConditionalRenderNV,
+  glEndConditionalRenderNV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NV/ConservativeRaster.hs b/src/Graphics/GL/NV/ConservativeRaster.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/ConservativeRaster.hs
@@ -0,0 +1,29 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.ConservativeRaster
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.ConservativeRaster (
+  -- * Extension Support
+  glGetNVConservativeRaster,
+  gl_NV_conservative_raster,
+  -- * Enums
+  pattern GL_CONSERVATIVE_RASTERIZATION_NV,
+  pattern GL_MAX_SUBPIXEL_PRECISION_BIAS_BITS_NV,
+  pattern GL_SUBPIXEL_PRECISION_BIAS_X_BITS_NV,
+  pattern GL_SUBPIXEL_PRECISION_BIAS_Y_BITS_NV,
+  -- * Functions
+  glSubpixelPrecisionBiasNV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NV/ConservativeRasterDilate.hs b/src/Graphics/GL/NV/ConservativeRasterDilate.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/ConservativeRasterDilate.hs
@@ -0,0 +1,28 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.ConservativeRasterDilate
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.ConservativeRasterDilate (
+  -- * Extension Support
+  glGetNVConservativeRasterDilate,
+  gl_NV_conservative_raster_dilate,
+  -- * Enums
+  pattern GL_CONSERVATIVE_RASTER_DILATE_GRANULARITY_NV,
+  pattern GL_CONSERVATIVE_RASTER_DILATE_NV,
+  pattern GL_CONSERVATIVE_RASTER_DILATE_RANGE_NV,
+  -- * Functions
+  glConservativeRasterParameterfNV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NV/ConservativeRasterPreSnap.hs b/src/Graphics/GL/NV/ConservativeRasterPreSnap.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/ConservativeRasterPreSnap.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.ConservativeRasterPreSnap
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.ConservativeRasterPreSnap (
+  -- * Extension Support
+  glGetNVConservativeRasterPreSnap,
+  gl_NV_conservative_raster_pre_snap,
+  -- * Enums
+  pattern GL_CONSERVATIVE_RASTER_MODE_PRE_SNAP_NV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/NV/ConservativeRasterPreSnapTriangles.hs b/src/Graphics/GL/NV/ConservativeRasterPreSnapTriangles.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/ConservativeRasterPreSnapTriangles.hs
@@ -0,0 +1,28 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.ConservativeRasterPreSnapTriangles
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.ConservativeRasterPreSnapTriangles (
+  -- * Extension Support
+  glGetNVConservativeRasterPreSnapTriangles,
+  gl_NV_conservative_raster_pre_snap_triangles,
+  -- * Enums
+  pattern GL_CONSERVATIVE_RASTER_MODE_NV,
+  pattern GL_CONSERVATIVE_RASTER_MODE_POST_SNAP_NV,
+  pattern GL_CONSERVATIVE_RASTER_MODE_PRE_SNAP_TRIANGLES_NV,
+  -- * Functions
+  glConservativeRasterParameteriNV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NV/CopyDepthToColor.hs b/src/Graphics/GL/NV/CopyDepthToColor.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/CopyDepthToColor.hs
@@ -0,0 +1,24 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.CopyDepthToColor
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.CopyDepthToColor (
+  -- * Extension Support
+  glGetNVCopyDepthToColor,
+  gl_NV_copy_depth_to_color,
+  -- * Enums
+  pattern GL_DEPTH_STENCIL_TO_BGRA_NV,
+  pattern GL_DEPTH_STENCIL_TO_RGBA_NV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/NV/CopyImage.hs b/src/Graphics/GL/NV/CopyImage.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/CopyImage.hs
@@ -0,0 +1,22 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.CopyImage
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.CopyImage (
+  -- * Extension Support
+  glGetNVCopyImage,
+  gl_NV_copy_image,
+  -- * Functions
+  glCopyImageSubDataNV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NV/DeepTexture3D.hs b/src/Graphics/GL/NV/DeepTexture3D.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/DeepTexture3D.hs
@@ -0,0 +1,24 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.DeepTexture3D
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.DeepTexture3D (
+  -- * Extension Support
+  glGetNVDeepTexture3D,
+  gl_NV_deep_texture3D,
+  -- * Enums
+  pattern GL_MAX_DEEP_3D_TEXTURE_DEPTH_NV,
+  pattern GL_MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/NV/DepthBufferFloat.hs b/src/Graphics/GL/NV/DepthBufferFloat.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/DepthBufferFloat.hs
@@ -0,0 +1,31 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.DepthBufferFloat
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.DepthBufferFloat (
+  -- * Extension Support
+  glGetNVDepthBufferFloat,
+  gl_NV_depth_buffer_float,
+  -- * Enums
+  pattern GL_DEPTH32F_STENCIL8_NV,
+  pattern GL_DEPTH_BUFFER_FLOAT_MODE_NV,
+  pattern GL_DEPTH_COMPONENT32F_NV,
+  pattern GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV,
+  -- * Functions
+  glClearDepthdNV,
+  glDepthBoundsdNV,
+  glDepthRangedNV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NV/DepthClamp.hs b/src/Graphics/GL/NV/DepthClamp.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/DepthClamp.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.DepthClamp
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.DepthClamp (
+  -- * Extension Support
+  glGetNVDepthClamp,
+  gl_NV_depth_clamp,
+  -- * Enums
+  pattern GL_DEPTH_CLAMP_NV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/NV/DrawTexture.hs b/src/Graphics/GL/NV/DrawTexture.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/DrawTexture.hs
@@ -0,0 +1,22 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.DrawTexture
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.DrawTexture (
+  -- * Extension Support
+  glGetNVDrawTexture,
+  gl_NV_draw_texture,
+  -- * Functions
+  glDrawTextureNV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NV/DrawVulkanImage.hs b/src/Graphics/GL/NV/DrawVulkanImage.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/DrawVulkanImage.hs
@@ -0,0 +1,26 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.DrawVulkanImage
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.DrawVulkanImage (
+  -- * Extension Support
+  glGetNVDrawVulkanImage,
+  gl_NV_draw_vulkan_image,
+  -- * Functions
+  glDrawVkImageNV,
+  glGetVkProcAddrNV,
+  glSignalVkFenceNV,
+  glSignalVkSemaphoreNV,
+  glWaitVkSemaphoreNV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NV/Evaluators.hs b/src/Graphics/GL/NV/Evaluators.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/Evaluators.hs
@@ -0,0 +1,57 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.Evaluators
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.Evaluators (
+  -- * Extension Support
+  glGetNVEvaluators,
+  gl_NV_evaluators,
+  -- * Enums
+  pattern GL_EVAL_2D_NV,
+  pattern GL_EVAL_FRACTIONAL_TESSELLATION_NV,
+  pattern GL_EVAL_TRIANGULAR_2D_NV,
+  pattern GL_EVAL_VERTEX_ATTRIB0_NV,
+  pattern GL_EVAL_VERTEX_ATTRIB10_NV,
+  pattern GL_EVAL_VERTEX_ATTRIB11_NV,
+  pattern GL_EVAL_VERTEX_ATTRIB12_NV,
+  pattern GL_EVAL_VERTEX_ATTRIB13_NV,
+  pattern GL_EVAL_VERTEX_ATTRIB14_NV,
+  pattern GL_EVAL_VERTEX_ATTRIB15_NV,
+  pattern GL_EVAL_VERTEX_ATTRIB1_NV,
+  pattern GL_EVAL_VERTEX_ATTRIB2_NV,
+  pattern GL_EVAL_VERTEX_ATTRIB3_NV,
+  pattern GL_EVAL_VERTEX_ATTRIB4_NV,
+  pattern GL_EVAL_VERTEX_ATTRIB5_NV,
+  pattern GL_EVAL_VERTEX_ATTRIB6_NV,
+  pattern GL_EVAL_VERTEX_ATTRIB7_NV,
+  pattern GL_EVAL_VERTEX_ATTRIB8_NV,
+  pattern GL_EVAL_VERTEX_ATTRIB9_NV,
+  pattern GL_MAP_ATTRIB_U_ORDER_NV,
+  pattern GL_MAP_ATTRIB_V_ORDER_NV,
+  pattern GL_MAP_TESSELLATION_NV,
+  pattern GL_MAX_MAP_TESSELLATION_NV,
+  pattern GL_MAX_RATIONAL_EVAL_ORDER_NV,
+  -- * Functions
+  glEvalMapsNV,
+  glGetMapAttribParameterfvNV,
+  glGetMapAttribParameterivNV,
+  glGetMapControlPointsNV,
+  glGetMapParameterfvNV,
+  glGetMapParameterivNV,
+  glMapControlPointsNV,
+  glMapParameterfvNV,
+  glMapParameterivNV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NV/ExplicitMultisample.hs b/src/Graphics/GL/NV/ExplicitMultisample.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/ExplicitMultisample.hs
@@ -0,0 +1,37 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.ExplicitMultisample
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.ExplicitMultisample (
+  -- * Extension Support
+  glGetNVExplicitMultisample,
+  gl_NV_explicit_multisample,
+  -- * Enums
+  pattern GL_INT_SAMPLER_RENDERBUFFER_NV,
+  pattern GL_MAX_SAMPLE_MASK_WORDS_NV,
+  pattern GL_SAMPLER_RENDERBUFFER_NV,
+  pattern GL_SAMPLE_MASK_NV,
+  pattern GL_SAMPLE_MASK_VALUE_NV,
+  pattern GL_SAMPLE_POSITION_NV,
+  pattern GL_TEXTURE_BINDING_RENDERBUFFER_NV,
+  pattern GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV,
+  pattern GL_TEXTURE_RENDERBUFFER_NV,
+  pattern GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV,
+  -- * Functions
+  glGetMultisamplefvNV,
+  glSampleMaskIndexedNV,
+  glTexRenderbufferNV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NV/Fence.hs b/src/Graphics/GL/NV/Fence.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/Fence.hs
@@ -0,0 +1,34 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.Fence
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.Fence (
+  -- * Extension Support
+  glGetNVFence,
+  gl_NV_fence,
+  -- * Enums
+  pattern GL_ALL_COMPLETED_NV,
+  pattern GL_FENCE_CONDITION_NV,
+  pattern GL_FENCE_STATUS_NV,
+  -- * Functions
+  glDeleteFencesNV,
+  glFinishFenceNV,
+  glGenFencesNV,
+  glGetFenceivNV,
+  glIsFenceNV,
+  glSetFenceNV,
+  glTestFenceNV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NV/FillRectangle.hs b/src/Graphics/GL/NV/FillRectangle.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/FillRectangle.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.FillRectangle
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.FillRectangle (
+  -- * Extension Support
+  glGetNVFillRectangle,
+  gl_NV_fill_rectangle,
+  -- * Enums
+  pattern GL_FILL_RECTANGLE_NV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/NV/FloatBuffer.hs b/src/Graphics/GL/NV/FloatBuffer.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/FloatBuffer.hs
@@ -0,0 +1,37 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.FloatBuffer
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.FloatBuffer (
+  -- * Extension Support
+  glGetNVFloatBuffer,
+  gl_NV_float_buffer,
+  -- * Enums
+  pattern GL_FLOAT_CLEAR_COLOR_VALUE_NV,
+  pattern GL_FLOAT_R16_NV,
+  pattern GL_FLOAT_R32_NV,
+  pattern GL_FLOAT_RG16_NV,
+  pattern GL_FLOAT_RG32_NV,
+  pattern GL_FLOAT_RGB16_NV,
+  pattern GL_FLOAT_RGB32_NV,
+  pattern GL_FLOAT_RGBA16_NV,
+  pattern GL_FLOAT_RGBA32_NV,
+  pattern GL_FLOAT_RGBA_MODE_NV,
+  pattern GL_FLOAT_RGBA_NV,
+  pattern GL_FLOAT_RGB_NV,
+  pattern GL_FLOAT_RG_NV,
+  pattern GL_FLOAT_R_NV,
+  pattern GL_TEXTURE_FLOAT_COMPONENTS_NV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/NV/FogDistance.hs b/src/Graphics/GL/NV/FogDistance.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/FogDistance.hs
@@ -0,0 +1,26 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.FogDistance
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.FogDistance (
+  -- * Extension Support
+  glGetNVFogDistance,
+  gl_NV_fog_distance,
+  -- * Enums
+  pattern GL_EYE_PLANE,
+  pattern GL_EYE_PLANE_ABSOLUTE_NV,
+  pattern GL_EYE_RADIAL_NV,
+  pattern GL_FOG_DISTANCE_MODE_NV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/NV/FragmentCoverageToColor.hs b/src/Graphics/GL/NV/FragmentCoverageToColor.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/FragmentCoverageToColor.hs
@@ -0,0 +1,27 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.FragmentCoverageToColor
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.FragmentCoverageToColor (
+  -- * Extension Support
+  glGetNVFragmentCoverageToColor,
+  gl_NV_fragment_coverage_to_color,
+  -- * Enums
+  pattern GL_FRAGMENT_COVERAGE_COLOR_NV,
+  pattern GL_FRAGMENT_COVERAGE_TO_COLOR_NV,
+  -- * Functions
+  glFragmentCoverageColorNV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NV/FragmentProgram.hs b/src/Graphics/GL/NV/FragmentProgram.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/FragmentProgram.hs
@@ -0,0 +1,36 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.FragmentProgram
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.FragmentProgram (
+  -- * Extension Support
+  glGetNVFragmentProgram,
+  gl_NV_fragment_program,
+  -- * Enums
+  pattern GL_FRAGMENT_PROGRAM_BINDING_NV,
+  pattern GL_FRAGMENT_PROGRAM_NV,
+  pattern GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV,
+  pattern GL_MAX_TEXTURE_COORDS_NV,
+  pattern GL_MAX_TEXTURE_IMAGE_UNITS_NV,
+  pattern GL_PROGRAM_ERROR_STRING_NV,
+  -- * Functions
+  glGetProgramNamedParameterdvNV,
+  glGetProgramNamedParameterfvNV,
+  glProgramNamedParameter4dNV,
+  glProgramNamedParameter4dvNV,
+  glProgramNamedParameter4fNV,
+  glProgramNamedParameter4fvNV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NV/FragmentProgram2.hs b/src/Graphics/GL/NV/FragmentProgram2.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/FragmentProgram2.hs
@@ -0,0 +1,27 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.FragmentProgram2
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.FragmentProgram2 (
+  -- * Extension Support
+  glGetNVFragmentProgram2,
+  gl_NV_fragment_program2,
+  -- * Enums
+  pattern GL_MAX_PROGRAM_CALL_DEPTH_NV,
+  pattern GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV,
+  pattern GL_MAX_PROGRAM_IF_DEPTH_NV,
+  pattern GL_MAX_PROGRAM_LOOP_COUNT_NV,
+  pattern GL_MAX_PROGRAM_LOOP_DEPTH_NV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/NV/FramebufferMixedSamples.hs b/src/Graphics/GL/NV/FramebufferMixedSamples.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/FramebufferMixedSamples.hs
@@ -0,0 +1,42 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.FramebufferMixedSamples
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.FramebufferMixedSamples (
+  -- * Extension Support
+  glGetNVFramebufferMixedSamples,
+  gl_NV_framebuffer_mixed_samples,
+  -- * Enums
+  pattern GL_COLOR_SAMPLES_NV,
+  pattern GL_COVERAGE_MODULATION_NV,
+  pattern GL_COVERAGE_MODULATION_TABLE_NV,
+  pattern GL_COVERAGE_MODULATION_TABLE_SIZE_NV,
+  pattern GL_DEPTH_SAMPLES_NV,
+  pattern GL_EFFECTIVE_RASTER_SAMPLES_EXT,
+  pattern GL_MAX_RASTER_SAMPLES_EXT,
+  pattern GL_MIXED_DEPTH_SAMPLES_SUPPORTED_NV,
+  pattern GL_MIXED_STENCIL_SAMPLES_SUPPORTED_NV,
+  pattern GL_MULTISAMPLE_RASTERIZATION_ALLOWED_EXT,
+  pattern GL_RASTER_FIXED_SAMPLE_LOCATIONS_EXT,
+  pattern GL_RASTER_MULTISAMPLE_EXT,
+  pattern GL_RASTER_SAMPLES_EXT,
+  pattern GL_STENCIL_SAMPLES_NV,
+  -- * Functions
+  glCoverageModulationNV,
+  glCoverageModulationTableNV,
+  glGetCoverageModulationTableNV,
+  glRasterSamplesEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NV/FramebufferMultisampleCoverage.hs b/src/Graphics/GL/NV/FramebufferMultisampleCoverage.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/FramebufferMultisampleCoverage.hs
@@ -0,0 +1,29 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.FramebufferMultisampleCoverage
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.FramebufferMultisampleCoverage (
+  -- * Extension Support
+  glGetNVFramebufferMultisampleCoverage,
+  gl_NV_framebuffer_multisample_coverage,
+  -- * Enums
+  pattern GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV,
+  pattern GL_MULTISAMPLE_COVERAGE_MODES_NV,
+  pattern GL_RENDERBUFFER_COLOR_SAMPLES_NV,
+  pattern GL_RENDERBUFFER_COVERAGE_SAMPLES_NV,
+  -- * Functions
+  glRenderbufferStorageMultisampleCoverageNV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NV/GPUMulticast.hs b/src/Graphics/GL/NV/GPUMulticast.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/GPUMulticast.hs
@@ -0,0 +1,41 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.GPUMulticast
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.GPUMulticast (
+  -- * Extension Support
+  glGetNVGPUMulticast,
+  gl_NV_gpu_multicast,
+  -- * Enums
+  pattern GL_MULTICAST_GPUS_NV,
+  pattern GL_MULTICAST_PROGRAMMABLE_SAMPLE_LOCATION_NV,
+  pattern GL_PER_GPU_STORAGE_BIT_NV,
+  pattern GL_PER_GPU_STORAGE_NV,
+  pattern GL_RENDER_GPU_MASK_NV,
+  -- * Functions
+  glMulticastBarrierNV,
+  glMulticastBlitFramebufferNV,
+  glMulticastBufferSubDataNV,
+  glMulticastCopyBufferSubDataNV,
+  glMulticastCopyImageSubDataNV,
+  glMulticastFramebufferSampleLocationsfvNV,
+  glMulticastGetQueryObjecti64vNV,
+  glMulticastGetQueryObjectivNV,
+  glMulticastGetQueryObjectui64vNV,
+  glMulticastGetQueryObjectuivNV,
+  glMulticastWaitSyncNV,
+  glRenderGpuMaskNV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NV/GPUProgram4.hs b/src/Graphics/GL/NV/GPUProgram4.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/GPUProgram4.hs
@@ -0,0 +1,48 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.GPUProgram4
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.GPUProgram4 (
+  -- * Extension Support
+  glGetNVGPUProgram4,
+  gl_NV_gpu_program4,
+  -- * Enums
+  pattern GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV,
+  pattern GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV,
+  pattern GL_MAX_PROGRAM_GENERIC_RESULTS_NV,
+  pattern GL_MAX_PROGRAM_RESULT_COMPONENTS_NV,
+  pattern GL_MAX_PROGRAM_TEXEL_OFFSET_NV,
+  pattern GL_MIN_PROGRAM_TEXEL_OFFSET_NV,
+  pattern GL_PROGRAM_ATTRIB_COMPONENTS_NV,
+  pattern GL_PROGRAM_RESULT_COMPONENTS_NV,
+  -- * Functions
+  glGetProgramEnvParameterIivNV,
+  glGetProgramEnvParameterIuivNV,
+  glGetProgramLocalParameterIivNV,
+  glGetProgramLocalParameterIuivNV,
+  glProgramEnvParameterI4iNV,
+  glProgramEnvParameterI4ivNV,
+  glProgramEnvParameterI4uiNV,
+  glProgramEnvParameterI4uivNV,
+  glProgramEnvParametersI4ivNV,
+  glProgramEnvParametersI4uivNV,
+  glProgramLocalParameterI4iNV,
+  glProgramLocalParameterI4ivNV,
+  glProgramLocalParameterI4uiNV,
+  glProgramLocalParameterI4uivNV,
+  glProgramLocalParametersI4ivNV,
+  glProgramLocalParametersI4uivNV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NV/GPUProgram5.hs b/src/Graphics/GL/NV/GPUProgram5.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/GPUProgram5.hs
@@ -0,0 +1,34 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.GPUProgram5
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.GPUProgram5 (
+  -- * Extension Support
+  glGetNVGPUProgram5,
+  gl_NV_gpu_program5,
+  -- * Enums
+  pattern GL_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV,
+  pattern GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV,
+  pattern GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV,
+  pattern GL_MAX_PROGRAM_SUBROUTINE_NUM_NV,
+  pattern GL_MAX_PROGRAM_SUBROUTINE_PARAMETERS_NV,
+  pattern GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV,
+  pattern GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV,
+  pattern GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV,
+  -- * Functions
+  glGetProgramSubroutineParameteruivNV,
+  glProgramSubroutineParametersuivNV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NV/GPUShader5.hs b/src/Graphics/GL/NV/GPUShader5.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/GPUShader5.hs
@@ -0,0 +1,86 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.GPUShader5
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.GPUShader5 (
+  -- * Extension Support
+  glGetNVGPUShader5,
+  gl_NV_gpu_shader5,
+  -- * Enums
+  pattern GL_FLOAT16_NV,
+  pattern GL_FLOAT16_VEC2_NV,
+  pattern GL_FLOAT16_VEC3_NV,
+  pattern GL_FLOAT16_VEC4_NV,
+  pattern GL_INT16_NV,
+  pattern GL_INT16_VEC2_NV,
+  pattern GL_INT16_VEC3_NV,
+  pattern GL_INT16_VEC4_NV,
+  pattern GL_INT64_NV,
+  pattern GL_INT64_VEC2_NV,
+  pattern GL_INT64_VEC3_NV,
+  pattern GL_INT64_VEC4_NV,
+  pattern GL_INT8_NV,
+  pattern GL_INT8_VEC2_NV,
+  pattern GL_INT8_VEC3_NV,
+  pattern GL_INT8_VEC4_NV,
+  pattern GL_PATCHES,
+  pattern GL_UNSIGNED_INT16_NV,
+  pattern GL_UNSIGNED_INT16_VEC2_NV,
+  pattern GL_UNSIGNED_INT16_VEC3_NV,
+  pattern GL_UNSIGNED_INT16_VEC4_NV,
+  pattern GL_UNSIGNED_INT64_NV,
+  pattern GL_UNSIGNED_INT64_VEC2_NV,
+  pattern GL_UNSIGNED_INT64_VEC3_NV,
+  pattern GL_UNSIGNED_INT64_VEC4_NV,
+  pattern GL_UNSIGNED_INT8_NV,
+  pattern GL_UNSIGNED_INT8_VEC2_NV,
+  pattern GL_UNSIGNED_INT8_VEC3_NV,
+  pattern GL_UNSIGNED_INT8_VEC4_NV,
+  -- * Functions
+  glGetUniformi64vNV,
+  glProgramUniform1i64NV,
+  glProgramUniform1i64vNV,
+  glProgramUniform1ui64NV,
+  glProgramUniform1ui64vNV,
+  glProgramUniform2i64NV,
+  glProgramUniform2i64vNV,
+  glProgramUniform2ui64NV,
+  glProgramUniform2ui64vNV,
+  glProgramUniform3i64NV,
+  glProgramUniform3i64vNV,
+  glProgramUniform3ui64NV,
+  glProgramUniform3ui64vNV,
+  glProgramUniform4i64NV,
+  glProgramUniform4i64vNV,
+  glProgramUniform4ui64NV,
+  glProgramUniform4ui64vNV,
+  glUniform1i64NV,
+  glUniform1i64vNV,
+  glUniform1ui64NV,
+  glUniform1ui64vNV,
+  glUniform2i64NV,
+  glUniform2i64vNV,
+  glUniform2ui64NV,
+  glUniform2ui64vNV,
+  glUniform3i64NV,
+  glUniform3i64vNV,
+  glUniform3ui64NV,
+  glUniform3ui64vNV,
+  glUniform4i64NV,
+  glUniform4i64vNV,
+  glUniform4ui64NV,
+  glUniform4ui64vNV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NV/GeometryProgram4.hs b/src/Graphics/GL/NV/GeometryProgram4.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/GeometryProgram4.hs
@@ -0,0 +1,44 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.GeometryProgram4
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.GeometryProgram4 (
+  -- * Extension Support
+  glGetNVGeometryProgram4,
+  gl_NV_geometry_program4,
+  -- * Enums
+  pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT,
+  pattern GL_GEOMETRY_INPUT_TYPE_EXT,
+  pattern GL_GEOMETRY_OUTPUT_TYPE_EXT,
+  pattern GL_GEOMETRY_PROGRAM_NV,
+  pattern GL_GEOMETRY_VERTICES_OUT_EXT,
+  pattern GL_LINES_ADJACENCY_EXT,
+  pattern GL_LINE_STRIP_ADJACENCY_EXT,
+  pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT,
+  pattern GL_MAX_PROGRAM_OUTPUT_VERTICES_NV,
+  pattern GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV,
+  pattern GL_PROGRAM_POINT_SIZE_EXT,
+  pattern GL_TRIANGLES_ADJACENCY_EXT,
+  pattern GL_TRIANGLE_STRIP_ADJACENCY_EXT,
+  -- * Functions
+  glFramebufferTextureEXT,
+  glFramebufferTextureFaceEXT,
+  glFramebufferTextureLayerEXT,
+  glProgramVertexLimitNV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NV/HalfFloat.hs b/src/Graphics/GL/NV/HalfFloat.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/HalfFloat.hs
@@ -0,0 +1,71 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.HalfFloat
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.HalfFloat (
+  -- * Extension Support
+  glGetNVHalfFloat,
+  gl_NV_half_float,
+  -- * Enums
+  pattern GL_HALF_FLOAT_NV,
+  -- * Functions
+  glColor3hNV,
+  glColor3hvNV,
+  glColor4hNV,
+  glColor4hvNV,
+  glFogCoordhNV,
+  glFogCoordhvNV,
+  glMultiTexCoord1hNV,
+  glMultiTexCoord1hvNV,
+  glMultiTexCoord2hNV,
+  glMultiTexCoord2hvNV,
+  glMultiTexCoord3hNV,
+  glMultiTexCoord3hvNV,
+  glMultiTexCoord4hNV,
+  glMultiTexCoord4hvNV,
+  glNormal3hNV,
+  glNormal3hvNV,
+  glSecondaryColor3hNV,
+  glSecondaryColor3hvNV,
+  glTexCoord1hNV,
+  glTexCoord1hvNV,
+  glTexCoord2hNV,
+  glTexCoord2hvNV,
+  glTexCoord3hNV,
+  glTexCoord3hvNV,
+  glTexCoord4hNV,
+  glTexCoord4hvNV,
+  glVertex2hNV,
+  glVertex2hvNV,
+  glVertex3hNV,
+  glVertex3hvNV,
+  glVertex4hNV,
+  glVertex4hvNV,
+  glVertexAttrib1hNV,
+  glVertexAttrib1hvNV,
+  glVertexAttrib2hNV,
+  glVertexAttrib2hvNV,
+  glVertexAttrib3hNV,
+  glVertexAttrib3hvNV,
+  glVertexAttrib4hNV,
+  glVertexAttrib4hvNV,
+  glVertexAttribs1hvNV,
+  glVertexAttribs2hvNV,
+  glVertexAttribs3hvNV,
+  glVertexAttribs4hvNV,
+  glVertexWeighthNV,
+  glVertexWeighthvNV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NV/InternalformatSampleQuery.hs b/src/Graphics/GL/NV/InternalformatSampleQuery.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/InternalformatSampleQuery.hs
@@ -0,0 +1,32 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.InternalformatSampleQuery
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.InternalformatSampleQuery (
+  -- * Extension Support
+  glGetNVInternalformatSampleQuery,
+  gl_NV_internalformat_sample_query,
+  -- * Enums
+  pattern GL_CONFORMANT_NV,
+  pattern GL_MULTISAMPLES_NV,
+  pattern GL_RENDERBUFFER,
+  pattern GL_SUPERSAMPLE_SCALE_X_NV,
+  pattern GL_SUPERSAMPLE_SCALE_Y_NV,
+  pattern GL_TEXTURE_2D_MULTISAMPLE,
+  pattern GL_TEXTURE_2D_MULTISAMPLE_ARRAY,
+  -- * Functions
+  glGetInternalformatSampleivNV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NV/LightMaxExponent.hs b/src/Graphics/GL/NV/LightMaxExponent.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/LightMaxExponent.hs
@@ -0,0 +1,24 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.LightMaxExponent
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.LightMaxExponent (
+  -- * Extension Support
+  glGetNVLightMaxExponent,
+  gl_NV_light_max_exponent,
+  -- * Enums
+  pattern GL_MAX_SHININESS_NV,
+  pattern GL_MAX_SPOT_EXPONENT_NV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/NV/MemoryAttachment.hs b/src/Graphics/GL/NV/MemoryAttachment.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/MemoryAttachment.hs
@@ -0,0 +1,40 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.MemoryAttachment
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.MemoryAttachment (
+  -- * Extension Support
+  glGetNVMemoryAttachment,
+  gl_NV_memory_attachment,
+  -- * Enums
+  pattern GL_ATTACHED_MEMORY_OBJECT_NV,
+  pattern GL_ATTACHED_MEMORY_OFFSET_NV,
+  pattern GL_DETACHED_BUFFERS_NV,
+  pattern GL_DETACHED_MEMORY_INCARNATION_NV,
+  pattern GL_DETACHED_TEXTURES_NV,
+  pattern GL_MAX_DETACHED_BUFFERS_NV,
+  pattern GL_MAX_DETACHED_TEXTURES_NV,
+  pattern GL_MEMORY_ATTACHABLE_ALIGNMENT_NV,
+  pattern GL_MEMORY_ATTACHABLE_NV,
+  pattern GL_MEMORY_ATTACHABLE_SIZE_NV,
+  -- * Functions
+  glBufferAttachMemoryNV,
+  glGetMemoryObjectDetachedResourcesuivNV,
+  glNamedBufferAttachMemoryNV,
+  glResetMemoryObjectParameterNV,
+  glTexAttachMemoryNV,
+  glTextureAttachMemoryNV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NV/MeshShader.hs b/src/Graphics/GL/NV/MeshShader.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/MeshShader.hs
@@ -0,0 +1,76 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.MeshShader
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.MeshShader (
+  -- * Extension Support
+  glGetNVMeshShader,
+  gl_NV_mesh_shader,
+  -- * Enums
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_MESH_SHADER_NV,
+  pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TASK_SHADER_NV,
+  pattern GL_MAX_COMBINED_MESH_UNIFORM_COMPONENTS_NV,
+  pattern GL_MAX_COMBINED_TASK_UNIFORM_COMPONENTS_NV,
+  pattern GL_MAX_DRAW_MESH_TASKS_COUNT_NV,
+  pattern GL_MAX_MESH_ATOMIC_COUNTERS_NV,
+  pattern GL_MAX_MESH_ATOMIC_COUNTER_BUFFERS_NV,
+  pattern GL_MAX_MESH_IMAGE_UNIFORMS_NV,
+  pattern GL_MAX_MESH_OUTPUT_PRIMITIVES_NV,
+  pattern GL_MAX_MESH_OUTPUT_VERTICES_NV,
+  pattern GL_MAX_MESH_SHADER_STORAGE_BLOCKS_NV,
+  pattern GL_MAX_MESH_TEXTURE_IMAGE_UNITS_NV,
+  pattern GL_MAX_MESH_TOTAL_MEMORY_SIZE_NV,
+  pattern GL_MAX_MESH_UNIFORM_BLOCKS_NV,
+  pattern GL_MAX_MESH_UNIFORM_COMPONENTS_NV,
+  pattern GL_MAX_MESH_VIEWS_NV,
+  pattern GL_MAX_MESH_WORK_GROUP_INVOCATIONS_NV,
+  pattern GL_MAX_MESH_WORK_GROUP_SIZE_NV,
+  pattern GL_MAX_TASK_ATOMIC_COUNTERS_NV,
+  pattern GL_MAX_TASK_ATOMIC_COUNTER_BUFFERS_NV,
+  pattern GL_MAX_TASK_IMAGE_UNIFORMS_NV,
+  pattern GL_MAX_TASK_OUTPUT_COUNT_NV,
+  pattern GL_MAX_TASK_SHADER_STORAGE_BLOCKS_NV,
+  pattern GL_MAX_TASK_TEXTURE_IMAGE_UNITS_NV,
+  pattern GL_MAX_TASK_TOTAL_MEMORY_SIZE_NV,
+  pattern GL_MAX_TASK_UNIFORM_BLOCKS_NV,
+  pattern GL_MAX_TASK_UNIFORM_COMPONENTS_NV,
+  pattern GL_MAX_TASK_WORK_GROUP_INVOCATIONS_NV,
+  pattern GL_MAX_TASK_WORK_GROUP_SIZE_NV,
+  pattern GL_MESH_OUTPUT_PER_PRIMITIVE_GRANULARITY_NV,
+  pattern GL_MESH_OUTPUT_PER_VERTEX_GRANULARITY_NV,
+  pattern GL_MESH_OUTPUT_TYPE_NV,
+  pattern GL_MESH_PRIMITIVES_OUT_NV,
+  pattern GL_MESH_SHADER_BIT_NV,
+  pattern GL_MESH_SHADER_NV,
+  pattern GL_MESH_SUBROUTINE_NV,
+  pattern GL_MESH_SUBROUTINE_UNIFORM_NV,
+  pattern GL_MESH_VERTICES_OUT_NV,
+  pattern GL_MESH_WORK_GROUP_SIZE_NV,
+  pattern GL_REFERENCED_BY_MESH_SHADER_NV,
+  pattern GL_REFERENCED_BY_TASK_SHADER_NV,
+  pattern GL_TASK_SHADER_BIT_NV,
+  pattern GL_TASK_SHADER_NV,
+  pattern GL_TASK_SUBROUTINE_NV,
+  pattern GL_TASK_SUBROUTINE_UNIFORM_NV,
+  pattern GL_TASK_WORK_GROUP_SIZE_NV,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_MESH_SHADER_NV,
+  pattern GL_UNIFORM_BLOCK_REFERENCED_BY_TASK_SHADER_NV,
+  -- * Functions
+  glDrawMeshTasksIndirectNV,
+  glDrawMeshTasksNV,
+  glMultiDrawMeshTasksIndirectCountNV,
+  glMultiDrawMeshTasksIndirectNV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NV/MultisampleCoverage.hs b/src/Graphics/GL/NV/MultisampleCoverage.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/MultisampleCoverage.hs
@@ -0,0 +1,24 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.MultisampleCoverage
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.MultisampleCoverage (
+  -- * Extension Support
+  glGetNVMultisampleCoverage,
+  gl_NV_multisample_coverage,
+  -- * Enums
+  pattern GL_COLOR_SAMPLES_NV,
+  pattern GL_SAMPLES_ARB
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/NV/MultisampleFilterHint.hs b/src/Graphics/GL/NV/MultisampleFilterHint.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/MultisampleFilterHint.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.MultisampleFilterHint
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.MultisampleFilterHint (
+  -- * Extension Support
+  glGetNVMultisampleFilterHint,
+  gl_NV_multisample_filter_hint,
+  -- * Enums
+  pattern GL_MULTISAMPLE_FILTER_HINT_NV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/NV/OcclusionQuery.hs b/src/Graphics/GL/NV/OcclusionQuery.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/OcclusionQuery.hs
@@ -0,0 +1,35 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.OcclusionQuery
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.OcclusionQuery (
+  -- * Extension Support
+  glGetNVOcclusionQuery,
+  gl_NV_occlusion_query,
+  -- * Enums
+  pattern GL_CURRENT_OCCLUSION_QUERY_ID_NV,
+  pattern GL_PIXEL_COUNTER_BITS_NV,
+  pattern GL_PIXEL_COUNT_AVAILABLE_NV,
+  pattern GL_PIXEL_COUNT_NV,
+  -- * Functions
+  glBeginOcclusionQueryNV,
+  glDeleteOcclusionQueriesNV,
+  glEndOcclusionQueryNV,
+  glGenOcclusionQueriesNV,
+  glGetOcclusionQueryivNV,
+  glGetOcclusionQueryuivNV,
+  glIsOcclusionQueryNV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NV/PackedDepthStencil.hs b/src/Graphics/GL/NV/PackedDepthStencil.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/PackedDepthStencil.hs
@@ -0,0 +1,24 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.PackedDepthStencil
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.PackedDepthStencil (
+  -- * Extension Support
+  glGetNVPackedDepthStencil,
+  gl_NV_packed_depth_stencil,
+  -- * Enums
+  pattern GL_DEPTH_STENCIL_NV,
+  pattern GL_UNSIGNED_INT_24_8_NV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/NV/ParameterBufferObject.hs b/src/Graphics/GL/NV/ParameterBufferObject.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/ParameterBufferObject.hs
@@ -0,0 +1,32 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.ParameterBufferObject
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.ParameterBufferObject (
+  -- * Extension Support
+  glGetNVParameterBufferObject,
+  gl_NV_parameter_buffer_object,
+  -- * Enums
+  pattern GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV,
+  pattern GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV,
+  pattern GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV,
+  pattern GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV,
+  pattern GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV,
+  -- * Functions
+  glProgramBufferParametersIivNV,
+  glProgramBufferParametersIuivNV,
+  glProgramBufferParametersfvNV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NV/PathRenderingCompatibility.hs b/src/Graphics/GL/NV/PathRenderingCompatibility.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/PathRenderingCompatibility.hs
@@ -0,0 +1,271 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.PathRenderingCompatibility
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.PathRenderingCompatibility (
+  -- * Extension Support
+  glGetNVPathRendering,
+  gl_NV_path_rendering,
+  -- * Enums
+  pattern GL_2_BYTES_NV,
+  pattern GL_3_BYTES_NV,
+  pattern GL_4_BYTES_NV,
+  pattern GL_ACCUM_ADJACENT_PAIRS_NV,
+  pattern GL_ADJACENT_PAIRS_NV,
+  pattern GL_AFFINE_2D_NV,
+  pattern GL_AFFINE_3D_NV,
+  pattern GL_ARC_TO_NV,
+  pattern GL_BEVEL_NV,
+  pattern GL_BOLD_BIT_NV,
+  pattern GL_BOUNDING_BOX_NV,
+  pattern GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV,
+  pattern GL_CIRCULAR_CCW_ARC_TO_NV,
+  pattern GL_CIRCULAR_CW_ARC_TO_NV,
+  pattern GL_CIRCULAR_TANGENT_ARC_TO_NV,
+  pattern GL_CLOSE_PATH_NV,
+  pattern GL_CONIC_CURVE_TO_NV,
+  pattern GL_CONSTANT_NV,
+  pattern GL_CONVEX_HULL_NV,
+  pattern GL_COUNT_DOWN_NV,
+  pattern GL_COUNT_UP_NV,
+  pattern GL_CUBIC_CURVE_TO_NV,
+  pattern GL_DUP_FIRST_CUBIC_CURVE_TO_NV,
+  pattern GL_DUP_LAST_CUBIC_CURVE_TO_NV,
+  pattern GL_EYE_LINEAR_NV,
+  pattern GL_FILE_NAME_NV,
+  pattern GL_FIRST_TO_REST_NV,
+  pattern GL_FONT_ASCENDER_BIT_NV,
+  pattern GL_FONT_DESCENDER_BIT_NV,
+  pattern GL_FONT_GLYPHS_AVAILABLE_NV,
+  pattern GL_FONT_HAS_KERNING_BIT_NV,
+  pattern GL_FONT_HEIGHT_BIT_NV,
+  pattern GL_FONT_MAX_ADVANCE_HEIGHT_BIT_NV,
+  pattern GL_FONT_MAX_ADVANCE_WIDTH_BIT_NV,
+  pattern GL_FONT_NUM_GLYPH_INDICES_BIT_NV,
+  pattern GL_FONT_TARGET_UNAVAILABLE_NV,
+  pattern GL_FONT_UNAVAILABLE_NV,
+  pattern GL_FONT_UNDERLINE_POSITION_BIT_NV,
+  pattern GL_FONT_UNDERLINE_THICKNESS_BIT_NV,
+  pattern GL_FONT_UNINTELLIGIBLE_NV,
+  pattern GL_FONT_UNITS_PER_EM_BIT_NV,
+  pattern GL_FONT_X_MAX_BOUNDS_BIT_NV,
+  pattern GL_FONT_X_MIN_BOUNDS_BIT_NV,
+  pattern GL_FONT_Y_MAX_BOUNDS_BIT_NV,
+  pattern GL_FONT_Y_MIN_BOUNDS_BIT_NV,
+  pattern GL_FRAGMENT_INPUT_NV,
+  pattern GL_GLYPH_HAS_KERNING_BIT_NV,
+  pattern GL_GLYPH_HEIGHT_BIT_NV,
+  pattern GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV,
+  pattern GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV,
+  pattern GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV,
+  pattern GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV,
+  pattern GL_GLYPH_VERTICAL_BEARING_X_BIT_NV,
+  pattern GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV,
+  pattern GL_GLYPH_WIDTH_BIT_NV,
+  pattern GL_HORIZONTAL_LINE_TO_NV,
+  pattern GL_ITALIC_BIT_NV,
+  pattern GL_LARGE_CCW_ARC_TO_NV,
+  pattern GL_LARGE_CW_ARC_TO_NV,
+  pattern GL_LINE_TO_NV,
+  pattern GL_MITER_REVERT_NV,
+  pattern GL_MITER_TRUNCATE_NV,
+  pattern GL_MOVE_TO_CONTINUES_NV,
+  pattern GL_MOVE_TO_NV,
+  pattern GL_MOVE_TO_RESETS_NV,
+  pattern GL_OBJECT_LINEAR_NV,
+  pattern GL_PATH_CLIENT_LENGTH_NV,
+  pattern GL_PATH_COMMAND_COUNT_NV,
+  pattern GL_PATH_COMPUTED_LENGTH_NV,
+  pattern GL_PATH_COORD_COUNT_NV,
+  pattern GL_PATH_COVER_DEPTH_FUNC_NV,
+  pattern GL_PATH_DASH_ARRAY_COUNT_NV,
+  pattern GL_PATH_DASH_CAPS_NV,
+  pattern GL_PATH_DASH_OFFSET_NV,
+  pattern GL_PATH_DASH_OFFSET_RESET_NV,
+  pattern GL_PATH_END_CAPS_NV,
+  pattern GL_PATH_ERROR_POSITION_NV,
+  pattern GL_PATH_FILL_BOUNDING_BOX_NV,
+  pattern GL_PATH_FILL_COVER_MODE_NV,
+  pattern GL_PATH_FILL_MASK_NV,
+  pattern GL_PATH_FILL_MODE_NV,
+  pattern GL_PATH_FOG_GEN_MODE_NV,
+  pattern GL_PATH_FORMAT_PS_NV,
+  pattern GL_PATH_FORMAT_SVG_NV,
+  pattern GL_PATH_GEN_COEFF_NV,
+  pattern GL_PATH_GEN_COLOR_FORMAT_NV,
+  pattern GL_PATH_GEN_COMPONENTS_NV,
+  pattern GL_PATH_GEN_MODE_NV,
+  pattern GL_PATH_INITIAL_DASH_CAP_NV,
+  pattern GL_PATH_INITIAL_END_CAP_NV,
+  pattern GL_PATH_JOIN_STYLE_NV,
+  pattern GL_PATH_MAX_MODELVIEW_STACK_DEPTH_NV,
+  pattern GL_PATH_MAX_PROJECTION_STACK_DEPTH_NV,
+  pattern GL_PATH_MITER_LIMIT_NV,
+  pattern GL_PATH_MODELVIEW_MATRIX_NV,
+  pattern GL_PATH_MODELVIEW_NV,
+  pattern GL_PATH_MODELVIEW_STACK_DEPTH_NV,
+  pattern GL_PATH_OBJECT_BOUNDING_BOX_NV,
+  pattern GL_PATH_PROJECTION_MATRIX_NV,
+  pattern GL_PATH_PROJECTION_NV,
+  pattern GL_PATH_PROJECTION_STACK_DEPTH_NV,
+  pattern GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV,
+  pattern GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV,
+  pattern GL_PATH_STENCIL_FUNC_NV,
+  pattern GL_PATH_STENCIL_REF_NV,
+  pattern GL_PATH_STENCIL_VALUE_MASK_NV,
+  pattern GL_PATH_STROKE_BOUNDING_BOX_NV,
+  pattern GL_PATH_STROKE_COVER_MODE_NV,
+  pattern GL_PATH_STROKE_MASK_NV,
+  pattern GL_PATH_STROKE_WIDTH_NV,
+  pattern GL_PATH_TERMINAL_DASH_CAP_NV,
+  pattern GL_PATH_TERMINAL_END_CAP_NV,
+  pattern GL_PATH_TRANSPOSE_MODELVIEW_MATRIX_NV,
+  pattern GL_PATH_TRANSPOSE_PROJECTION_MATRIX_NV,
+  pattern GL_PRIMARY_COLOR,
+  pattern GL_PRIMARY_COLOR_NV,
+  pattern GL_QUADRATIC_CURVE_TO_NV,
+  pattern GL_RECT_NV,
+  pattern GL_RELATIVE_ARC_TO_NV,
+  pattern GL_RELATIVE_CONIC_CURVE_TO_NV,
+  pattern GL_RELATIVE_CUBIC_CURVE_TO_NV,
+  pattern GL_RELATIVE_HORIZONTAL_LINE_TO_NV,
+  pattern GL_RELATIVE_LARGE_CCW_ARC_TO_NV,
+  pattern GL_RELATIVE_LARGE_CW_ARC_TO_NV,
+  pattern GL_RELATIVE_LINE_TO_NV,
+  pattern GL_RELATIVE_MOVE_TO_NV,
+  pattern GL_RELATIVE_QUADRATIC_CURVE_TO_NV,
+  pattern GL_RELATIVE_RECT_NV,
+  pattern GL_RELATIVE_ROUNDED_RECT2_NV,
+  pattern GL_RELATIVE_ROUNDED_RECT4_NV,
+  pattern GL_RELATIVE_ROUNDED_RECT8_NV,
+  pattern GL_RELATIVE_ROUNDED_RECT_NV,
+  pattern GL_RELATIVE_SMALL_CCW_ARC_TO_NV,
+  pattern GL_RELATIVE_SMALL_CW_ARC_TO_NV,
+  pattern GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV,
+  pattern GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV,
+  pattern GL_RELATIVE_VERTICAL_LINE_TO_NV,
+  pattern GL_RESTART_PATH_NV,
+  pattern GL_ROUNDED_RECT2_NV,
+  pattern GL_ROUNDED_RECT4_NV,
+  pattern GL_ROUNDED_RECT8_NV,
+  pattern GL_ROUNDED_RECT_NV,
+  pattern GL_ROUND_NV,
+  pattern GL_SECONDARY_COLOR_NV,
+  pattern GL_SKIP_MISSING_GLYPH_NV,
+  pattern GL_SMALL_CCW_ARC_TO_NV,
+  pattern GL_SMALL_CW_ARC_TO_NV,
+  pattern GL_SMOOTH_CUBIC_CURVE_TO_NV,
+  pattern GL_SMOOTH_QUADRATIC_CURVE_TO_NV,
+  pattern GL_SQUARE_NV,
+  pattern GL_STANDARD_FONT_FORMAT_NV,
+  pattern GL_STANDARD_FONT_NAME_NV,
+  pattern GL_SYSTEM_FONT_NAME_NV,
+  pattern GL_TRANSLATE_2D_NV,
+  pattern GL_TRANSLATE_3D_NV,
+  pattern GL_TRANSLATE_X_NV,
+  pattern GL_TRANSLATE_Y_NV,
+  pattern GL_TRANSPOSE_AFFINE_2D_NV,
+  pattern GL_TRANSPOSE_AFFINE_3D_NV,
+  pattern GL_TRIANGULAR_NV,
+  pattern GL_USE_MISSING_GLYPH_NV,
+  pattern GL_UTF16_NV,
+  pattern GL_UTF8_NV,
+  pattern GL_VERTICAL_LINE_TO_NV,
+  -- * Functions
+  glCopyPathNV,
+  glCoverFillPathInstancedNV,
+  glCoverFillPathNV,
+  glCoverStrokePathInstancedNV,
+  glCoverStrokePathNV,
+  glDeletePathsNV,
+  glGenPathsNV,
+  glGetPathColorGenfvNV,
+  glGetPathColorGenivNV,
+  glGetPathCommandsNV,
+  glGetPathCoordsNV,
+  glGetPathDashArrayNV,
+  glGetPathLengthNV,
+  glGetPathMetricRangeNV,
+  glGetPathMetricsNV,
+  glGetPathParameterfvNV,
+  glGetPathParameterivNV,
+  glGetPathSpacingNV,
+  glGetPathTexGenfvNV,
+  glGetPathTexGenivNV,
+  glGetProgramResourcefvNV,
+  glInterpolatePathsNV,
+  glIsPathNV,
+  glIsPointInFillPathNV,
+  glIsPointInStrokePathNV,
+  glMatrixFrustumEXT,
+  glMatrixLoad3x2fNV,
+  glMatrixLoad3x3fNV,
+  glMatrixLoadIdentityEXT,
+  glMatrixLoadTranspose3x3fNV,
+  glMatrixLoadTransposedEXT,
+  glMatrixLoadTransposefEXT,
+  glMatrixLoaddEXT,
+  glMatrixLoadfEXT,
+  glMatrixMult3x2fNV,
+  glMatrixMult3x3fNV,
+  glMatrixMultTranspose3x3fNV,
+  glMatrixMultTransposedEXT,
+  glMatrixMultTransposefEXT,
+  glMatrixMultdEXT,
+  glMatrixMultfEXT,
+  glMatrixOrthoEXT,
+  glMatrixPopEXT,
+  glMatrixPushEXT,
+  glMatrixRotatedEXT,
+  glMatrixRotatefEXT,
+  glMatrixScaledEXT,
+  glMatrixScalefEXT,
+  glMatrixTranslatedEXT,
+  glMatrixTranslatefEXT,
+  glPathColorGenNV,
+  glPathCommandsNV,
+  glPathCoordsNV,
+  glPathCoverDepthFuncNV,
+  glPathDashArrayNV,
+  glPathFogGenNV,
+  glPathGlyphIndexArrayNV,
+  glPathGlyphIndexRangeNV,
+  glPathGlyphRangeNV,
+  glPathGlyphsNV,
+  glPathMemoryGlyphIndexArrayNV,
+  glPathParameterfNV,
+  glPathParameterfvNV,
+  glPathParameteriNV,
+  glPathParameterivNV,
+  glPathStencilDepthOffsetNV,
+  glPathStencilFuncNV,
+  glPathStringNV,
+  glPathSubCommandsNV,
+  glPathSubCoordsNV,
+  glPathTexGenNV,
+  glPointAlongPathNV,
+  glProgramPathFragmentInputGenNV,
+  glStencilFillPathInstancedNV,
+  glStencilFillPathNV,
+  glStencilStrokePathInstancedNV,
+  glStencilStrokePathNV,
+  glStencilThenCoverFillPathInstancedNV,
+  glStencilThenCoverFillPathNV,
+  glStencilThenCoverStrokePathInstancedNV,
+  glStencilThenCoverStrokePathNV,
+  glTransformPathNV,
+  glWeightPathsNV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NV/PathRenderingCore.hs b/src/Graphics/GL/NV/PathRenderingCore.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/PathRenderingCore.hs
@@ -0,0 +1,253 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.PathRenderingCore
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.PathRenderingCore (
+  -- * Extension Support
+  glGetNVPathRendering,
+  gl_NV_path_rendering,
+  -- * Enums
+  pattern GL_ACCUM_ADJACENT_PAIRS_NV,
+  pattern GL_ADJACENT_PAIRS_NV,
+  pattern GL_AFFINE_2D_NV,
+  pattern GL_AFFINE_3D_NV,
+  pattern GL_ARC_TO_NV,
+  pattern GL_BEVEL_NV,
+  pattern GL_BOLD_BIT_NV,
+  pattern GL_BOUNDING_BOX_NV,
+  pattern GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV,
+  pattern GL_CIRCULAR_CCW_ARC_TO_NV,
+  pattern GL_CIRCULAR_CW_ARC_TO_NV,
+  pattern GL_CIRCULAR_TANGENT_ARC_TO_NV,
+  pattern GL_CLOSE_PATH_NV,
+  pattern GL_CONIC_CURVE_TO_NV,
+  pattern GL_CONVEX_HULL_NV,
+  pattern GL_COUNT_DOWN_NV,
+  pattern GL_COUNT_UP_NV,
+  pattern GL_CUBIC_CURVE_TO_NV,
+  pattern GL_DUP_FIRST_CUBIC_CURVE_TO_NV,
+  pattern GL_DUP_LAST_CUBIC_CURVE_TO_NV,
+  pattern GL_FILE_NAME_NV,
+  pattern GL_FIRST_TO_REST_NV,
+  pattern GL_FONT_ASCENDER_BIT_NV,
+  pattern GL_FONT_DESCENDER_BIT_NV,
+  pattern GL_FONT_GLYPHS_AVAILABLE_NV,
+  pattern GL_FONT_HAS_KERNING_BIT_NV,
+  pattern GL_FONT_HEIGHT_BIT_NV,
+  pattern GL_FONT_MAX_ADVANCE_HEIGHT_BIT_NV,
+  pattern GL_FONT_MAX_ADVANCE_WIDTH_BIT_NV,
+  pattern GL_FONT_NUM_GLYPH_INDICES_BIT_NV,
+  pattern GL_FONT_TARGET_UNAVAILABLE_NV,
+  pattern GL_FONT_UNAVAILABLE_NV,
+  pattern GL_FONT_UNDERLINE_POSITION_BIT_NV,
+  pattern GL_FONT_UNDERLINE_THICKNESS_BIT_NV,
+  pattern GL_FONT_UNINTELLIGIBLE_NV,
+  pattern GL_FONT_UNITS_PER_EM_BIT_NV,
+  pattern GL_FONT_X_MAX_BOUNDS_BIT_NV,
+  pattern GL_FONT_X_MIN_BOUNDS_BIT_NV,
+  pattern GL_FONT_Y_MAX_BOUNDS_BIT_NV,
+  pattern GL_FONT_Y_MIN_BOUNDS_BIT_NV,
+  pattern GL_FRAGMENT_INPUT_NV,
+  pattern GL_GLYPH_HAS_KERNING_BIT_NV,
+  pattern GL_GLYPH_HEIGHT_BIT_NV,
+  pattern GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV,
+  pattern GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV,
+  pattern GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV,
+  pattern GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV,
+  pattern GL_GLYPH_VERTICAL_BEARING_X_BIT_NV,
+  pattern GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV,
+  pattern GL_GLYPH_WIDTH_BIT_NV,
+  pattern GL_HORIZONTAL_LINE_TO_NV,
+  pattern GL_ITALIC_BIT_NV,
+  pattern GL_LARGE_CCW_ARC_TO_NV,
+  pattern GL_LARGE_CW_ARC_TO_NV,
+  pattern GL_LINE_TO_NV,
+  pattern GL_MITER_REVERT_NV,
+  pattern GL_MITER_TRUNCATE_NV,
+  pattern GL_MOVE_TO_CONTINUES_NV,
+  pattern GL_MOVE_TO_NV,
+  pattern GL_MOVE_TO_RESETS_NV,
+  pattern GL_PATH_CLIENT_LENGTH_NV,
+  pattern GL_PATH_COMMAND_COUNT_NV,
+  pattern GL_PATH_COMPUTED_LENGTH_NV,
+  pattern GL_PATH_COORD_COUNT_NV,
+  pattern GL_PATH_COVER_DEPTH_FUNC_NV,
+  pattern GL_PATH_DASH_ARRAY_COUNT_NV,
+  pattern GL_PATH_DASH_CAPS_NV,
+  pattern GL_PATH_DASH_OFFSET_NV,
+  pattern GL_PATH_DASH_OFFSET_RESET_NV,
+  pattern GL_PATH_END_CAPS_NV,
+  pattern GL_PATH_ERROR_POSITION_NV,
+  pattern GL_PATH_FILL_BOUNDING_BOX_NV,
+  pattern GL_PATH_FILL_COVER_MODE_NV,
+  pattern GL_PATH_FILL_MASK_NV,
+  pattern GL_PATH_FILL_MODE_NV,
+  pattern GL_PATH_FORMAT_PS_NV,
+  pattern GL_PATH_FORMAT_SVG_NV,
+  pattern GL_PATH_GEN_COEFF_NV,
+  pattern GL_PATH_GEN_COMPONENTS_NV,
+  pattern GL_PATH_GEN_MODE_NV,
+  pattern GL_PATH_INITIAL_DASH_CAP_NV,
+  pattern GL_PATH_INITIAL_END_CAP_NV,
+  pattern GL_PATH_JOIN_STYLE_NV,
+  pattern GL_PATH_MAX_MODELVIEW_STACK_DEPTH_NV,
+  pattern GL_PATH_MAX_PROJECTION_STACK_DEPTH_NV,
+  pattern GL_PATH_MITER_LIMIT_NV,
+  pattern GL_PATH_MODELVIEW_MATRIX_NV,
+  pattern GL_PATH_MODELVIEW_NV,
+  pattern GL_PATH_MODELVIEW_STACK_DEPTH_NV,
+  pattern GL_PATH_OBJECT_BOUNDING_BOX_NV,
+  pattern GL_PATH_PROJECTION_MATRIX_NV,
+  pattern GL_PATH_PROJECTION_NV,
+  pattern GL_PATH_PROJECTION_STACK_DEPTH_NV,
+  pattern GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV,
+  pattern GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV,
+  pattern GL_PATH_STENCIL_FUNC_NV,
+  pattern GL_PATH_STENCIL_REF_NV,
+  pattern GL_PATH_STENCIL_VALUE_MASK_NV,
+  pattern GL_PATH_STROKE_BOUNDING_BOX_NV,
+  pattern GL_PATH_STROKE_COVER_MODE_NV,
+  pattern GL_PATH_STROKE_MASK_NV,
+  pattern GL_PATH_STROKE_WIDTH_NV,
+  pattern GL_PATH_TERMINAL_DASH_CAP_NV,
+  pattern GL_PATH_TERMINAL_END_CAP_NV,
+  pattern GL_PATH_TRANSPOSE_MODELVIEW_MATRIX_NV,
+  pattern GL_PATH_TRANSPOSE_PROJECTION_MATRIX_NV,
+  pattern GL_QUADRATIC_CURVE_TO_NV,
+  pattern GL_RECT_NV,
+  pattern GL_RELATIVE_ARC_TO_NV,
+  pattern GL_RELATIVE_CONIC_CURVE_TO_NV,
+  pattern GL_RELATIVE_CUBIC_CURVE_TO_NV,
+  pattern GL_RELATIVE_HORIZONTAL_LINE_TO_NV,
+  pattern GL_RELATIVE_LARGE_CCW_ARC_TO_NV,
+  pattern GL_RELATIVE_LARGE_CW_ARC_TO_NV,
+  pattern GL_RELATIVE_LINE_TO_NV,
+  pattern GL_RELATIVE_MOVE_TO_NV,
+  pattern GL_RELATIVE_QUADRATIC_CURVE_TO_NV,
+  pattern GL_RELATIVE_RECT_NV,
+  pattern GL_RELATIVE_ROUNDED_RECT2_NV,
+  pattern GL_RELATIVE_ROUNDED_RECT4_NV,
+  pattern GL_RELATIVE_ROUNDED_RECT8_NV,
+  pattern GL_RELATIVE_ROUNDED_RECT_NV,
+  pattern GL_RELATIVE_SMALL_CCW_ARC_TO_NV,
+  pattern GL_RELATIVE_SMALL_CW_ARC_TO_NV,
+  pattern GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV,
+  pattern GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV,
+  pattern GL_RELATIVE_VERTICAL_LINE_TO_NV,
+  pattern GL_RESTART_PATH_NV,
+  pattern GL_ROUNDED_RECT2_NV,
+  pattern GL_ROUNDED_RECT4_NV,
+  pattern GL_ROUNDED_RECT8_NV,
+  pattern GL_ROUNDED_RECT_NV,
+  pattern GL_ROUND_NV,
+  pattern GL_SKIP_MISSING_GLYPH_NV,
+  pattern GL_SMALL_CCW_ARC_TO_NV,
+  pattern GL_SMALL_CW_ARC_TO_NV,
+  pattern GL_SMOOTH_CUBIC_CURVE_TO_NV,
+  pattern GL_SMOOTH_QUADRATIC_CURVE_TO_NV,
+  pattern GL_SQUARE_NV,
+  pattern GL_STANDARD_FONT_FORMAT_NV,
+  pattern GL_STANDARD_FONT_NAME_NV,
+  pattern GL_SYSTEM_FONT_NAME_NV,
+  pattern GL_TRANSLATE_2D_NV,
+  pattern GL_TRANSLATE_3D_NV,
+  pattern GL_TRANSLATE_X_NV,
+  pattern GL_TRANSLATE_Y_NV,
+  pattern GL_TRANSPOSE_AFFINE_2D_NV,
+  pattern GL_TRANSPOSE_AFFINE_3D_NV,
+  pattern GL_TRIANGULAR_NV,
+  pattern GL_USE_MISSING_GLYPH_NV,
+  pattern GL_UTF16_NV,
+  pattern GL_UTF8_NV,
+  pattern GL_VERTICAL_LINE_TO_NV,
+  -- * Functions
+  glCopyPathNV,
+  glCoverFillPathInstancedNV,
+  glCoverFillPathNV,
+  glCoverStrokePathInstancedNV,
+  glCoverStrokePathNV,
+  glDeletePathsNV,
+  glGenPathsNV,
+  glGetPathCommandsNV,
+  glGetPathCoordsNV,
+  glGetPathDashArrayNV,
+  glGetPathLengthNV,
+  glGetPathMetricRangeNV,
+  glGetPathMetricsNV,
+  glGetPathParameterfvNV,
+  glGetPathParameterivNV,
+  glGetPathSpacingNV,
+  glGetProgramResourcefvNV,
+  glInterpolatePathsNV,
+  glIsPathNV,
+  glIsPointInFillPathNV,
+  glIsPointInStrokePathNV,
+  glMatrixFrustumEXT,
+  glMatrixLoad3x2fNV,
+  glMatrixLoad3x3fNV,
+  glMatrixLoadIdentityEXT,
+  glMatrixLoadTranspose3x3fNV,
+  glMatrixLoadTransposedEXT,
+  glMatrixLoadTransposefEXT,
+  glMatrixLoaddEXT,
+  glMatrixLoadfEXT,
+  glMatrixMult3x2fNV,
+  glMatrixMult3x3fNV,
+  glMatrixMultTranspose3x3fNV,
+  glMatrixMultTransposedEXT,
+  glMatrixMultTransposefEXT,
+  glMatrixMultdEXT,
+  glMatrixMultfEXT,
+  glMatrixOrthoEXT,
+  glMatrixPopEXT,
+  glMatrixPushEXT,
+  glMatrixRotatedEXT,
+  glMatrixRotatefEXT,
+  glMatrixScaledEXT,
+  glMatrixScalefEXT,
+  glMatrixTranslatedEXT,
+  glMatrixTranslatefEXT,
+  glPathCommandsNV,
+  glPathCoordsNV,
+  glPathCoverDepthFuncNV,
+  glPathDashArrayNV,
+  glPathGlyphIndexArrayNV,
+  glPathGlyphIndexRangeNV,
+  glPathGlyphRangeNV,
+  glPathGlyphsNV,
+  glPathMemoryGlyphIndexArrayNV,
+  glPathParameterfNV,
+  glPathParameterfvNV,
+  glPathParameteriNV,
+  glPathParameterivNV,
+  glPathStencilDepthOffsetNV,
+  glPathStencilFuncNV,
+  glPathStringNV,
+  glPathSubCommandsNV,
+  glPathSubCoordsNV,
+  glPointAlongPathNV,
+  glProgramPathFragmentInputGenNV,
+  glStencilFillPathInstancedNV,
+  glStencilFillPathNV,
+  glStencilStrokePathInstancedNV,
+  glStencilStrokePathNV,
+  glStencilThenCoverFillPathInstancedNV,
+  glStencilThenCoverFillPathNV,
+  glStencilThenCoverStrokePathInstancedNV,
+  glStencilThenCoverStrokePathNV,
+  glTransformPathNV,
+  glWeightPathsNV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NV/PathRenderingSharedEdge.hs b/src/Graphics/GL/NV/PathRenderingSharedEdge.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/PathRenderingSharedEdge.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.PathRenderingSharedEdge
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.PathRenderingSharedEdge (
+  -- * Extension Support
+  glGetNVPathRenderingSharedEdge,
+  gl_NV_path_rendering_shared_edge,
+  -- * Enums
+  pattern GL_SHARED_EDGE_NV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/NV/PixelDataRange.hs b/src/Graphics/GL/NV/PixelDataRange.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/PixelDataRange.hs
@@ -0,0 +1,32 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.PixelDataRange
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.PixelDataRange (
+  -- * Extension Support
+  glGetNVPixelDataRange,
+  gl_NV_pixel_data_range,
+  -- * Enums
+  pattern GL_READ_PIXEL_DATA_RANGE_LENGTH_NV,
+  pattern GL_READ_PIXEL_DATA_RANGE_NV,
+  pattern GL_READ_PIXEL_DATA_RANGE_POINTER_NV,
+  pattern GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV,
+  pattern GL_WRITE_PIXEL_DATA_RANGE_NV,
+  pattern GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV,
+  -- * Functions
+  glFlushPixelDataRangeNV,
+  glPixelDataRangeNV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NV/PointSprite.hs b/src/Graphics/GL/NV/PointSprite.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/PointSprite.hs
@@ -0,0 +1,29 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.PointSprite
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.PointSprite (
+  -- * Extension Support
+  glGetNVPointSprite,
+  gl_NV_point_sprite,
+  -- * Enums
+  pattern GL_COORD_REPLACE_NV,
+  pattern GL_POINT_SPRITE_NV,
+  pattern GL_POINT_SPRITE_R_MODE_NV,
+  -- * Functions
+  glPointParameteriNV,
+  glPointParameterivNV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NV/PresentVideo.hs b/src/Graphics/GL/NV/PresentVideo.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/PresentVideo.hs
@@ -0,0 +1,36 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.PresentVideo
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.PresentVideo (
+  -- * Extension Support
+  glGetNVPresentVideo,
+  gl_NV_present_video,
+  -- * Enums
+  pattern GL_CURRENT_TIME_NV,
+  pattern GL_FIELDS_NV,
+  pattern GL_FRAME_NV,
+  pattern GL_NUM_FILL_STREAMS_NV,
+  pattern GL_PRESENT_DURATION_NV,
+  pattern GL_PRESENT_TIME_NV,
+  -- * Functions
+  glGetVideoi64vNV,
+  glGetVideoivNV,
+  glGetVideoui64vNV,
+  glGetVideouivNV,
+  glPresentFrameDualFillNV,
+  glPresentFrameKeyedNV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NV/PrimitiveRestart.hs b/src/Graphics/GL/NV/PrimitiveRestart.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/PrimitiveRestart.hs
@@ -0,0 +1,28 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.PrimitiveRestart
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.PrimitiveRestart (
+  -- * Extension Support
+  glGetNVPrimitiveRestart,
+  gl_NV_primitive_restart,
+  -- * Enums
+  pattern GL_PRIMITIVE_RESTART_INDEX_NV,
+  pattern GL_PRIMITIVE_RESTART_NV,
+  -- * Functions
+  glPrimitiveRestartIndexNV,
+  glPrimitiveRestartNV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NV/QueryResource.hs b/src/Graphics/GL/NV/QueryResource.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/QueryResource.hs
@@ -0,0 +1,31 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.QueryResource
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.QueryResource (
+  -- * Extension Support
+  glGetNVQueryResource,
+  gl_NV_query_resource,
+  -- * Enums
+  pattern GL_QUERY_RESOURCE_BUFFEROBJECT_NV,
+  pattern GL_QUERY_RESOURCE_MEMTYPE_VIDMEM_NV,
+  pattern GL_QUERY_RESOURCE_RENDERBUFFER_NV,
+  pattern GL_QUERY_RESOURCE_SYS_RESERVED_NV,
+  pattern GL_QUERY_RESOURCE_TEXTURE_NV,
+  pattern GL_QUERY_RESOURCE_TYPE_VIDMEM_ALLOC_NV,
+  -- * Functions
+  glQueryResourceNV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NV/QueryResourceTag.hs b/src/Graphics/GL/NV/QueryResourceTag.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/QueryResourceTag.hs
@@ -0,0 +1,24 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.QueryResourceTag
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.QueryResourceTag (
+  -- * Extension Support
+  glGetNVQueryResourceTag,
+  gl_NV_query_resource_tag,
+  -- * Functions
+  glDeleteQueryResourceTagNV,
+  glGenQueryResourceTagNV,
+  glQueryResourceTagNV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NV/RegisterCombiners.hs b/src/Graphics/GL/NV/RegisterCombiners.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/RegisterCombiners.hs
@@ -0,0 +1,93 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.RegisterCombiners
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.RegisterCombiners (
+  -- * Extension Support
+  glGetNVRegisterCombiners,
+  gl_NV_register_combiners,
+  -- * Enums
+  pattern GL_BIAS_BY_NEGATIVE_ONE_HALF_NV,
+  pattern GL_COLOR_SUM_CLAMP_NV,
+  pattern GL_COMBINER0_NV,
+  pattern GL_COMBINER1_NV,
+  pattern GL_COMBINER2_NV,
+  pattern GL_COMBINER3_NV,
+  pattern GL_COMBINER4_NV,
+  pattern GL_COMBINER5_NV,
+  pattern GL_COMBINER6_NV,
+  pattern GL_COMBINER7_NV,
+  pattern GL_COMBINER_AB_DOT_PRODUCT_NV,
+  pattern GL_COMBINER_AB_OUTPUT_NV,
+  pattern GL_COMBINER_BIAS_NV,
+  pattern GL_COMBINER_CD_DOT_PRODUCT_NV,
+  pattern GL_COMBINER_CD_OUTPUT_NV,
+  pattern GL_COMBINER_COMPONENT_USAGE_NV,
+  pattern GL_COMBINER_INPUT_NV,
+  pattern GL_COMBINER_MAPPING_NV,
+  pattern GL_COMBINER_MUX_SUM_NV,
+  pattern GL_COMBINER_SCALE_NV,
+  pattern GL_COMBINER_SUM_OUTPUT_NV,
+  pattern GL_CONSTANT_COLOR0_NV,
+  pattern GL_CONSTANT_COLOR1_NV,
+  pattern GL_DISCARD_NV,
+  pattern GL_EXPAND_NEGATE_NV,
+  pattern GL_EXPAND_NORMAL_NV,
+  pattern GL_E_TIMES_F_NV,
+  pattern GL_FOG,
+  pattern GL_HALF_BIAS_NEGATE_NV,
+  pattern GL_HALF_BIAS_NORMAL_NV,
+  pattern GL_MAX_GENERAL_COMBINERS_NV,
+  pattern GL_NONE,
+  pattern GL_NUM_GENERAL_COMBINERS_NV,
+  pattern GL_PRIMARY_COLOR_NV,
+  pattern GL_REGISTER_COMBINERS_NV,
+  pattern GL_SCALE_BY_FOUR_NV,
+  pattern GL_SCALE_BY_ONE_HALF_NV,
+  pattern GL_SCALE_BY_TWO_NV,
+  pattern GL_SECONDARY_COLOR_NV,
+  pattern GL_SIGNED_IDENTITY_NV,
+  pattern GL_SIGNED_NEGATE_NV,
+  pattern GL_SPARE0_NV,
+  pattern GL_SPARE0_PLUS_SECONDARY_COLOR_NV,
+  pattern GL_SPARE1_NV,
+  pattern GL_TEXTURE0_ARB,
+  pattern GL_TEXTURE1_ARB,
+  pattern GL_UNSIGNED_IDENTITY_NV,
+  pattern GL_UNSIGNED_INVERT_NV,
+  pattern GL_VARIABLE_A_NV,
+  pattern GL_VARIABLE_B_NV,
+  pattern GL_VARIABLE_C_NV,
+  pattern GL_VARIABLE_D_NV,
+  pattern GL_VARIABLE_E_NV,
+  pattern GL_VARIABLE_F_NV,
+  pattern GL_VARIABLE_G_NV,
+  pattern GL_ZERO,
+  -- * Functions
+  glCombinerInputNV,
+  glCombinerOutputNV,
+  glCombinerParameterfNV,
+  glCombinerParameterfvNV,
+  glCombinerParameteriNV,
+  glCombinerParameterivNV,
+  glFinalCombinerInputNV,
+  glGetCombinerInputParameterfvNV,
+  glGetCombinerInputParameterivNV,
+  glGetCombinerOutputParameterfvNV,
+  glGetCombinerOutputParameterivNV,
+  glGetFinalCombinerInputParameterfvNV,
+  glGetFinalCombinerInputParameterivNV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NV/RegisterCombiners2.hs b/src/Graphics/GL/NV/RegisterCombiners2.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/RegisterCombiners2.hs
@@ -0,0 +1,27 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.RegisterCombiners2
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.RegisterCombiners2 (
+  -- * Extension Support
+  glGetNVRegisterCombiners2,
+  gl_NV_register_combiners2,
+  -- * Enums
+  pattern GL_PER_STAGE_CONSTANTS_NV,
+  -- * Functions
+  glCombinerStageParameterfvNV,
+  glGetCombinerStageParameterfvNV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NV/RepresentativeFragmentTest.hs b/src/Graphics/GL/NV/RepresentativeFragmentTest.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/RepresentativeFragmentTest.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.RepresentativeFragmentTest
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.RepresentativeFragmentTest (
+  -- * Extension Support
+  glGetNVRepresentativeFragmentTest,
+  gl_NV_representative_fragment_test,
+  -- * Enums
+  pattern GL_REPRESENTATIVE_FRAGMENT_TEST_NV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/NV/RobustnessVideoMemoryPurge.hs b/src/Graphics/GL/NV/RobustnessVideoMemoryPurge.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/RobustnessVideoMemoryPurge.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.RobustnessVideoMemoryPurge
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.RobustnessVideoMemoryPurge (
+  -- * Extension Support
+  glGetNVRobustnessVideoMemoryPurge,
+  gl_NV_robustness_video_memory_purge,
+  -- * Enums
+  pattern GL_PURGED_CONTEXT_RESET_NV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/NV/SampleLocations.hs b/src/Graphics/GL/NV/SampleLocations.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/SampleLocations.hs
@@ -0,0 +1,35 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.SampleLocations
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.SampleLocations (
+  -- * Extension Support
+  glGetNVSampleLocations,
+  gl_NV_sample_locations,
+  -- * Enums
+  pattern GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_NV,
+  pattern GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_NV,
+  pattern GL_PROGRAMMABLE_SAMPLE_LOCATION_NV,
+  pattern GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_NV,
+  pattern GL_SAMPLE_LOCATION_NV,
+  pattern GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_NV,
+  pattern GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_NV,
+  pattern GL_SAMPLE_LOCATION_SUBPIXEL_BITS_NV,
+  -- * Functions
+  glFramebufferSampleLocationsfvNV,
+  glNamedFramebufferSampleLocationsfvNV,
+  glResolveDepthValuesNV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NV/ScissorExclusive.hs b/src/Graphics/GL/NV/ScissorExclusive.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/ScissorExclusive.hs
@@ -0,0 +1,28 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.ScissorExclusive
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.ScissorExclusive (
+  -- * Extension Support
+  glGetNVScissorExclusive,
+  gl_NV_scissor_exclusive,
+  -- * Enums
+  pattern GL_SCISSOR_BOX_EXCLUSIVE_NV,
+  pattern GL_SCISSOR_TEST_EXCLUSIVE_NV,
+  -- * Functions
+  glScissorExclusiveArrayvNV,
+  glScissorExclusiveNV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NV/ShaderBufferLoad.hs b/src/Graphics/GL/NV/ShaderBufferLoad.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/ShaderBufferLoad.hs
@@ -0,0 +1,41 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.ShaderBufferLoad
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.ShaderBufferLoad (
+  -- * Extension Support
+  glGetNVShaderBufferLoad,
+  gl_NV_shader_buffer_load,
+  -- * Enums
+  pattern GL_BUFFER_GPU_ADDRESS_NV,
+  pattern GL_GPU_ADDRESS_NV,
+  pattern GL_MAX_SHADER_BUFFER_ADDRESS_NV,
+  -- * Functions
+  glGetBufferParameterui64vNV,
+  glGetIntegerui64vNV,
+  glGetNamedBufferParameterui64vNV,
+  glGetUniformui64vNV,
+  glIsBufferResidentNV,
+  glIsNamedBufferResidentNV,
+  glMakeBufferNonResidentNV,
+  glMakeBufferResidentNV,
+  glMakeNamedBufferNonResidentNV,
+  glMakeNamedBufferResidentNV,
+  glProgramUniformui64NV,
+  glProgramUniformui64vNV,
+  glUniformui64NV,
+  glUniformui64vNV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NV/ShaderBufferStore.hs b/src/Graphics/GL/NV/ShaderBufferStore.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/ShaderBufferStore.hs
@@ -0,0 +1,25 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.ShaderBufferStore
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.ShaderBufferStore (
+  -- * Extension Support
+  glGetNVShaderBufferStore,
+  gl_NV_shader_buffer_store,
+  -- * Enums
+  pattern GL_READ_WRITE,
+  pattern GL_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV,
+  pattern GL_WRITE_ONLY
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/NV/ShaderSubgroupPartitioned.hs b/src/Graphics/GL/NV/ShaderSubgroupPartitioned.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/ShaderSubgroupPartitioned.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.ShaderSubgroupPartitioned
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.ShaderSubgroupPartitioned (
+  -- * Extension Support
+  glGetNVShaderSubgroupPartitioned,
+  gl_NV_shader_subgroup_partitioned,
+  -- * Enums
+  pattern GL_SUBGROUP_FEATURE_PARTITIONED_BIT_NV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/NV/ShaderThreadGroup.hs b/src/Graphics/GL/NV/ShaderThreadGroup.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/ShaderThreadGroup.hs
@@ -0,0 +1,25 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.ShaderThreadGroup
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.ShaderThreadGroup (
+  -- * Extension Support
+  glGetNVShaderThreadGroup,
+  gl_NV_shader_thread_group,
+  -- * Enums
+  pattern GL_SM_COUNT_NV,
+  pattern GL_WARPS_PER_SM_NV,
+  pattern GL_WARP_SIZE_NV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/NV/ShadingRateImage.hs b/src/Graphics/GL/NV/ShadingRateImage.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/ShadingRateImage.hs
@@ -0,0 +1,52 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.ShadingRateImage
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.ShadingRateImage (
+  -- * Extension Support
+  glGetNVShadingRateImage,
+  gl_NV_shading_rate_image,
+  -- * Enums
+  pattern GL_MAX_COARSE_FRAGMENT_SAMPLES_NV,
+  pattern GL_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV,
+  pattern GL_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV,
+  pattern GL_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV,
+  pattern GL_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV,
+  pattern GL_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV,
+  pattern GL_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV,
+  pattern GL_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV,
+  pattern GL_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV,
+  pattern GL_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV,
+  pattern GL_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV,
+  pattern GL_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV,
+  pattern GL_SHADING_RATE_IMAGE_BINDING_NV,
+  pattern GL_SHADING_RATE_IMAGE_NV,
+  pattern GL_SHADING_RATE_IMAGE_PALETTE_SIZE_NV,
+  pattern GL_SHADING_RATE_IMAGE_TEXEL_HEIGHT_NV,
+  pattern GL_SHADING_RATE_IMAGE_TEXEL_WIDTH_NV,
+  pattern GL_SHADING_RATE_NO_INVOCATIONS_NV,
+  pattern GL_SHADING_RATE_SAMPLE_ORDER_DEFAULT_NV,
+  pattern GL_SHADING_RATE_SAMPLE_ORDER_PIXEL_MAJOR_NV,
+  pattern GL_SHADING_RATE_SAMPLE_ORDER_SAMPLE_MAJOR_NV,
+  -- * Functions
+  glBindShadingRateImageNV,
+  glGetShadingRateImagePaletteNV,
+  glGetShadingRateSampleLocationivNV,
+  glShadingRateImageBarrierNV,
+  glShadingRateImagePaletteNV,
+  glShadingRateSampleOrderCustomNV,
+  glShadingRateSampleOrderNV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NV/TessellationProgram5.hs b/src/Graphics/GL/NV/TessellationProgram5.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/TessellationProgram5.hs
@@ -0,0 +1,27 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.TessellationProgram5
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.TessellationProgram5 (
+  -- * Extension Support
+  glGetNVTessellationProgram5,
+  gl_NV_tessellation_program5,
+  -- * Enums
+  pattern GL_MAX_PROGRAM_PATCH_ATTRIBS_NV,
+  pattern GL_TESS_CONTROL_PROGRAM_NV,
+  pattern GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV,
+  pattern GL_TESS_EVALUATION_PROGRAM_NV,
+  pattern GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/NV/TexgenEmboss.hs b/src/Graphics/GL/NV/TexgenEmboss.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/TexgenEmboss.hs
@@ -0,0 +1,25 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.TexgenEmboss
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.TexgenEmboss (
+  -- * Extension Support
+  glGetNVTexgenEmboss,
+  gl_NV_texgen_emboss,
+  -- * Enums
+  pattern GL_EMBOSS_CONSTANT_NV,
+  pattern GL_EMBOSS_LIGHT_NV,
+  pattern GL_EMBOSS_MAP_NV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/NV/TexgenReflection.hs b/src/Graphics/GL/NV/TexgenReflection.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/TexgenReflection.hs
@@ -0,0 +1,24 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.TexgenReflection
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.TexgenReflection (
+  -- * Extension Support
+  glGetNVTexgenReflection,
+  gl_NV_texgen_reflection,
+  -- * Enums
+  pattern GL_NORMAL_MAP_NV,
+  pattern GL_REFLECTION_MAP_NV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/NV/TextureBarrier.hs b/src/Graphics/GL/NV/TextureBarrier.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/TextureBarrier.hs
@@ -0,0 +1,22 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.TextureBarrier
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.TextureBarrier (
+  -- * Extension Support
+  glGetNVTextureBarrier,
+  gl_NV_texture_barrier,
+  -- * Functions
+  glTextureBarrierNV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NV/TextureEnvCombine4.hs b/src/Graphics/GL/NV/TextureEnvCombine4.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/TextureEnvCombine4.hs
@@ -0,0 +1,27 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.TextureEnvCombine4
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.TextureEnvCombine4 (
+  -- * Extension Support
+  glGetNVTextureEnvCombine4,
+  gl_NV_texture_env_combine4,
+  -- * Enums
+  pattern GL_COMBINE4_NV,
+  pattern GL_OPERAND3_ALPHA_NV,
+  pattern GL_OPERAND3_RGB_NV,
+  pattern GL_SOURCE3_ALPHA_NV,
+  pattern GL_SOURCE3_RGB_NV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/NV/TextureExpandNormal.hs b/src/Graphics/GL/NV/TextureExpandNormal.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/TextureExpandNormal.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.TextureExpandNormal
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.TextureExpandNormal (
+  -- * Extension Support
+  glGetNVTextureExpandNormal,
+  gl_NV_texture_expand_normal,
+  -- * Enums
+  pattern GL_TEXTURE_UNSIGNED_REMAP_MODE_NV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/NV/TextureMultisample.hs b/src/Graphics/GL/NV/TextureMultisample.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/TextureMultisample.hs
@@ -0,0 +1,32 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.TextureMultisample
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.TextureMultisample (
+  -- * Extension Support
+  glGetNVTextureMultisample,
+  gl_NV_texture_multisample,
+  -- * Enums
+  pattern GL_TEXTURE_COLOR_SAMPLES_NV,
+  pattern GL_TEXTURE_COVERAGE_SAMPLES_NV,
+  -- * Functions
+  glTexImage2DMultisampleCoverageNV,
+  glTexImage3DMultisampleCoverageNV,
+  glTextureImage2DMultisampleCoverageNV,
+  glTextureImage2DMultisampleNV,
+  glTextureImage3DMultisampleCoverageNV,
+  glTextureImage3DMultisampleNV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NV/TextureRectangle.hs b/src/Graphics/GL/NV/TextureRectangle.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/TextureRectangle.hs
@@ -0,0 +1,26 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.TextureRectangle
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.TextureRectangle (
+  -- * Extension Support
+  glGetNVTextureRectangle,
+  gl_NV_texture_rectangle,
+  -- * Enums
+  pattern GL_MAX_RECTANGLE_TEXTURE_SIZE_NV,
+  pattern GL_PROXY_TEXTURE_RECTANGLE_NV,
+  pattern GL_TEXTURE_BINDING_RECTANGLE_NV,
+  pattern GL_TEXTURE_RECTANGLE_NV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/NV/TextureShader.hs b/src/Graphics/GL/NV/TextureShader.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/TextureShader.hs
@@ -0,0 +1,95 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.TextureShader
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.TextureShader (
+  -- * Extension Support
+  glGetNVTextureShader,
+  gl_NV_texture_shader,
+  -- * Enums
+  pattern GL_CONST_EYE_NV,
+  pattern GL_CULL_FRAGMENT_NV,
+  pattern GL_CULL_MODES_NV,
+  pattern GL_DEPENDENT_AR_TEXTURE_2D_NV,
+  pattern GL_DEPENDENT_GB_TEXTURE_2D_NV,
+  pattern GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV,
+  pattern GL_DOT_PRODUCT_DEPTH_REPLACE_NV,
+  pattern GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV,
+  pattern GL_DOT_PRODUCT_NV,
+  pattern GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV,
+  pattern GL_DOT_PRODUCT_TEXTURE_2D_NV,
+  pattern GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV,
+  pattern GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV,
+  pattern GL_DSDT8_MAG8_INTENSITY8_NV,
+  pattern GL_DSDT8_MAG8_NV,
+  pattern GL_DSDT8_NV,
+  pattern GL_DSDT_MAG_INTENSITY_NV,
+  pattern GL_DSDT_MAG_NV,
+  pattern GL_DSDT_MAG_VIB_NV,
+  pattern GL_DSDT_NV,
+  pattern GL_DS_BIAS_NV,
+  pattern GL_DS_SCALE_NV,
+  pattern GL_DT_BIAS_NV,
+  pattern GL_DT_SCALE_NV,
+  pattern GL_HILO16_NV,
+  pattern GL_HILO_NV,
+  pattern GL_HI_BIAS_NV,
+  pattern GL_HI_SCALE_NV,
+  pattern GL_LO_BIAS_NV,
+  pattern GL_LO_SCALE_NV,
+  pattern GL_MAGNITUDE_BIAS_NV,
+  pattern GL_MAGNITUDE_SCALE_NV,
+  pattern GL_OFFSET_TEXTURE_2D_BIAS_NV,
+  pattern GL_OFFSET_TEXTURE_2D_MATRIX_NV,
+  pattern GL_OFFSET_TEXTURE_2D_NV,
+  pattern GL_OFFSET_TEXTURE_2D_SCALE_NV,
+  pattern GL_OFFSET_TEXTURE_BIAS_NV,
+  pattern GL_OFFSET_TEXTURE_MATRIX_NV,
+  pattern GL_OFFSET_TEXTURE_RECTANGLE_NV,
+  pattern GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV,
+  pattern GL_OFFSET_TEXTURE_SCALE_NV,
+  pattern GL_PASS_THROUGH_NV,
+  pattern GL_PREVIOUS_TEXTURE_INPUT_NV,
+  pattern GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV,
+  pattern GL_SHADER_CONSISTENT_NV,
+  pattern GL_SHADER_OPERATION_NV,
+  pattern GL_SIGNED_ALPHA8_NV,
+  pattern GL_SIGNED_ALPHA_NV,
+  pattern GL_SIGNED_HILO16_NV,
+  pattern GL_SIGNED_HILO_NV,
+  pattern GL_SIGNED_INTENSITY8_NV,
+  pattern GL_SIGNED_INTENSITY_NV,
+  pattern GL_SIGNED_LUMINANCE8_ALPHA8_NV,
+  pattern GL_SIGNED_LUMINANCE8_NV,
+  pattern GL_SIGNED_LUMINANCE_ALPHA_NV,
+  pattern GL_SIGNED_LUMINANCE_NV,
+  pattern GL_SIGNED_RGB8_NV,
+  pattern GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV,
+  pattern GL_SIGNED_RGBA8_NV,
+  pattern GL_SIGNED_RGBA_NV,
+  pattern GL_SIGNED_RGB_NV,
+  pattern GL_SIGNED_RGB_UNSIGNED_ALPHA_NV,
+  pattern GL_TEXTURE_BORDER_VALUES_NV,
+  pattern GL_TEXTURE_DS_SIZE_NV,
+  pattern GL_TEXTURE_DT_SIZE_NV,
+  pattern GL_TEXTURE_HI_SIZE_NV,
+  pattern GL_TEXTURE_LO_SIZE_NV,
+  pattern GL_TEXTURE_MAG_SIZE_NV,
+  pattern GL_TEXTURE_SHADER_NV,
+  pattern GL_UNSIGNED_INT_8_8_S8_S8_REV_NV,
+  pattern GL_UNSIGNED_INT_S8_S8_8_8_NV,
+  pattern GL_VIBRANCE_BIAS_NV,
+  pattern GL_VIBRANCE_SCALE_NV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/NV/TextureShader2.hs b/src/Graphics/GL/NV/TextureShader2.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/TextureShader2.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.TextureShader2
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.TextureShader2 (
+  -- * Extension Support
+  glGetNVTextureShader2,
+  gl_NV_texture_shader2,
+  -- * Enums
+  pattern GL_DOT_PRODUCT_TEXTURE_3D_NV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/NV/TextureShader3.hs b/src/Graphics/GL/NV/TextureShader3.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/TextureShader3.hs
@@ -0,0 +1,39 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.TextureShader3
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.TextureShader3 (
+  -- * Extension Support
+  glGetNVTextureShader3,
+  gl_NV_texture_shader3,
+  -- * Enums
+  pattern GL_DEPENDENT_HILO_TEXTURE_2D_NV,
+  pattern GL_DEPENDENT_RGB_TEXTURE_3D_NV,
+  pattern GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV,
+  pattern GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV,
+  pattern GL_DOT_PRODUCT_PASS_THROUGH_NV,
+  pattern GL_DOT_PRODUCT_TEXTURE_1D_NV,
+  pattern GL_FORCE_BLUE_TO_ONE_NV,
+  pattern GL_HILO8_NV,
+  pattern GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV,
+  pattern GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV,
+  pattern GL_OFFSET_HILO_TEXTURE_2D_NV,
+  pattern GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV,
+  pattern GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV,
+  pattern GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV,
+  pattern GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV,
+  pattern GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV,
+  pattern GL_SIGNED_HILO8_NV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/NV/TransformFeedback.hs b/src/Graphics/GL/NV/TransformFeedback.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/TransformFeedback.hs
@@ -0,0 +1,67 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.TransformFeedback
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.TransformFeedback (
+  -- * Extension Support
+  glGetNVTransformFeedback,
+  gl_NV_transform_feedback,
+  -- * Enums
+  pattern GL_ACTIVE_VARYINGS_NV,
+  pattern GL_ACTIVE_VARYING_MAX_LENGTH_NV,
+  pattern GL_BACK_PRIMARY_COLOR_NV,
+  pattern GL_BACK_SECONDARY_COLOR_NV,
+  pattern GL_CLIP_DISTANCE_NV,
+  pattern GL_GENERIC_ATTRIB_NV,
+  pattern GL_INTERLEAVED_ATTRIBS_NV,
+  pattern GL_LAYER_NV,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV,
+  pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV,
+  pattern GL_NEXT_BUFFER_NV,
+  pattern GL_PRIMITIVES_GENERATED_NV,
+  pattern GL_PRIMITIVE_ID_NV,
+  pattern GL_RASTERIZER_DISCARD_NV,
+  pattern GL_SEPARATE_ATTRIBS_NV,
+  pattern GL_SKIP_COMPONENTS1_NV,
+  pattern GL_SKIP_COMPONENTS2_NV,
+  pattern GL_SKIP_COMPONENTS3_NV,
+  pattern GL_SKIP_COMPONENTS4_NV,
+  pattern GL_TEXTURE_COORD_NV,
+  pattern GL_TRANSFORM_FEEDBACK_ATTRIBS_NV,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_NV,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_START_NV,
+  pattern GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV,
+  pattern GL_TRANSFORM_FEEDBACK_RECORD_NV,
+  pattern GL_TRANSFORM_FEEDBACK_VARYINGS_NV,
+  pattern GL_VERTEX_ID_NV,
+  -- * Functions
+  glActiveVaryingNV,
+  glBeginTransformFeedbackNV,
+  glBindBufferBaseNV,
+  glBindBufferOffsetNV,
+  glBindBufferRangeNV,
+  glEndTransformFeedbackNV,
+  glGetActiveVaryingNV,
+  glGetTransformFeedbackVaryingNV,
+  glGetVaryingLocationNV,
+  glTransformFeedbackAttribsNV,
+  glTransformFeedbackStreamAttribsNV,
+  glTransformFeedbackVaryingsNV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NV/TransformFeedback2.hs b/src/Graphics/GL/NV/TransformFeedback2.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/TransformFeedback2.hs
@@ -0,0 +1,35 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.TransformFeedback2
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.TransformFeedback2 (
+  -- * Extension Support
+  glGetNVTransformFeedback2,
+  gl_NV_transform_feedback2,
+  -- * Enums
+  pattern GL_TRANSFORM_FEEDBACK_BINDING_NV,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV,
+  pattern GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV,
+  pattern GL_TRANSFORM_FEEDBACK_NV,
+  -- * Functions
+  glBindTransformFeedbackNV,
+  glDeleteTransformFeedbacksNV,
+  glDrawTransformFeedbackNV,
+  glGenTransformFeedbacksNV,
+  glIsTransformFeedbackNV,
+  glPauseTransformFeedbackNV,
+  glResumeTransformFeedbackNV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NV/UniformBufferUnifiedMemory.hs b/src/Graphics/GL/NV/UniformBufferUnifiedMemory.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/UniformBufferUnifiedMemory.hs
@@ -0,0 +1,25 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.UniformBufferUnifiedMemory
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.UniformBufferUnifiedMemory (
+  -- * Extension Support
+  glGetNVUniformBufferUnifiedMemory,
+  gl_NV_uniform_buffer_unified_memory,
+  -- * Enums
+  pattern GL_UNIFORM_BUFFER_ADDRESS_NV,
+  pattern GL_UNIFORM_BUFFER_LENGTH_NV,
+  pattern GL_UNIFORM_BUFFER_UNIFIED_NV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/NV/VDPAUInterop.hs b/src/Graphics/GL/NV/VDPAUInterop.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/VDPAUInterop.hs
@@ -0,0 +1,38 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.VDPAUInterop
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.VDPAUInterop (
+  -- * Extension Support
+  glGetNVVDPAUInterop,
+  gl_NV_vdpau_interop,
+  -- * Enums
+  pattern GL_SURFACE_MAPPED_NV,
+  pattern GL_SURFACE_REGISTERED_NV,
+  pattern GL_SURFACE_STATE_NV,
+  pattern GL_WRITE_DISCARD_NV,
+  -- * Functions
+  glVDPAUFiniNV,
+  glVDPAUGetSurfaceivNV,
+  glVDPAUInitNV,
+  glVDPAUIsSurfaceNV,
+  glVDPAUMapSurfacesNV,
+  glVDPAURegisterOutputSurfaceNV,
+  glVDPAURegisterVideoSurfaceNV,
+  glVDPAUSurfaceAccessNV,
+  glVDPAUUnmapSurfacesNV,
+  glVDPAUUnregisterSurfaceNV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NV/VDPAUInterop2.hs b/src/Graphics/GL/NV/VDPAUInterop2.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/VDPAUInterop2.hs
@@ -0,0 +1,22 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.VDPAUInterop2
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.VDPAUInterop2 (
+  -- * Extension Support
+  glGetNVVDPAUInterop2,
+  gl_NV_vdpau_interop2,
+  -- * Functions
+  glVDPAURegisterVideoSurfaceWithPictureStructureNV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NV/VertexArrayRange.hs b/src/Graphics/GL/NV/VertexArrayRange.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/VertexArrayRange.hs
@@ -0,0 +1,31 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.VertexArrayRange
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.VertexArrayRange (
+  -- * Extension Support
+  glGetNVVertexArrayRange,
+  gl_NV_vertex_array_range,
+  -- * Enums
+  pattern GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV,
+  pattern GL_VERTEX_ARRAY_RANGE_LENGTH_NV,
+  pattern GL_VERTEX_ARRAY_RANGE_NV,
+  pattern GL_VERTEX_ARRAY_RANGE_POINTER_NV,
+  pattern GL_VERTEX_ARRAY_RANGE_VALID_NV,
+  -- * Functions
+  glFlushVertexArrayRangeNV,
+  glVertexArrayRangeNV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NV/VertexArrayRange2.hs b/src/Graphics/GL/NV/VertexArrayRange2.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/VertexArrayRange2.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.VertexArrayRange2
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.VertexArrayRange2 (
+  -- * Extension Support
+  glGetNVVertexArrayRange2,
+  gl_NV_vertex_array_range2,
+  -- * Enums
+  pattern GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/NV/VertexAttribInteger64Bit.hs b/src/Graphics/GL/NV/VertexAttribInteger64Bit.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/VertexAttribInteger64Bit.hs
@@ -0,0 +1,45 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.VertexAttribInteger64Bit
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.VertexAttribInteger64Bit (
+  -- * Extension Support
+  glGetNVVertexAttribInteger64Bit,
+  gl_NV_vertex_attrib_integer_64bit,
+  -- * Enums
+  pattern GL_INT64_NV,
+  pattern GL_UNSIGNED_INT64_NV,
+  -- * Functions
+  glGetVertexAttribLi64vNV,
+  glGetVertexAttribLui64vNV,
+  glVertexAttribL1i64NV,
+  glVertexAttribL1i64vNV,
+  glVertexAttribL1ui64NV,
+  glVertexAttribL1ui64vNV,
+  glVertexAttribL2i64NV,
+  glVertexAttribL2i64vNV,
+  glVertexAttribL2ui64NV,
+  glVertexAttribL2ui64vNV,
+  glVertexAttribL3i64NV,
+  glVertexAttribL3i64vNV,
+  glVertexAttribL3ui64NV,
+  glVertexAttribL3ui64vNV,
+  glVertexAttribL4i64NV,
+  glVertexAttribL4i64vNV,
+  glVertexAttribL4ui64NV,
+  glVertexAttribL4ui64vNV,
+  glVertexAttribLFormatNV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NV/VertexBufferUnifiedMemory.hs b/src/Graphics/GL/NV/VertexBufferUnifiedMemory.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/VertexBufferUnifiedMemory.hs
@@ -0,0 +1,61 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.VertexBufferUnifiedMemory
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.VertexBufferUnifiedMemory (
+  -- * Extension Support
+  glGetNVVertexBufferUnifiedMemory,
+  gl_NV_vertex_buffer_unified_memory,
+  -- * Enums
+  pattern GL_COLOR_ARRAY_ADDRESS_NV,
+  pattern GL_COLOR_ARRAY_LENGTH_NV,
+  pattern GL_DRAW_INDIRECT_ADDRESS_NV,
+  pattern GL_DRAW_INDIRECT_LENGTH_NV,
+  pattern GL_DRAW_INDIRECT_UNIFIED_NV,
+  pattern GL_EDGE_FLAG_ARRAY_ADDRESS_NV,
+  pattern GL_EDGE_FLAG_ARRAY_LENGTH_NV,
+  pattern GL_ELEMENT_ARRAY_ADDRESS_NV,
+  pattern GL_ELEMENT_ARRAY_LENGTH_NV,
+  pattern GL_ELEMENT_ARRAY_UNIFIED_NV,
+  pattern GL_FOG_COORD_ARRAY_ADDRESS_NV,
+  pattern GL_FOG_COORD_ARRAY_LENGTH_NV,
+  pattern GL_INDEX_ARRAY_ADDRESS_NV,
+  pattern GL_INDEX_ARRAY_LENGTH_NV,
+  pattern GL_NORMAL_ARRAY_ADDRESS_NV,
+  pattern GL_NORMAL_ARRAY_LENGTH_NV,
+  pattern GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV,
+  pattern GL_SECONDARY_COLOR_ARRAY_LENGTH_NV,
+  pattern GL_TEXTURE_COORD_ARRAY_ADDRESS_NV,
+  pattern GL_TEXTURE_COORD_ARRAY_LENGTH_NV,
+  pattern GL_VERTEX_ARRAY_ADDRESS_NV,
+  pattern GL_VERTEX_ARRAY_LENGTH_NV,
+  pattern GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV,
+  pattern GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV,
+  pattern GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV,
+  -- * Functions
+  glBufferAddressRangeNV,
+  glColorFormatNV,
+  glEdgeFlagFormatNV,
+  glFogCoordFormatNV,
+  glGetIntegerui64i_vNV,
+  glIndexFormatNV,
+  glNormalFormatNV,
+  glSecondaryColorFormatNV,
+  glTexCoordFormatNV,
+  glVertexAttribFormatNV,
+  glVertexAttribIFormatNV,
+  glVertexFormatNV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NV/VertexProgram.hs b/src/Graphics/GL/NV/VertexProgram.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/VertexProgram.hs
@@ -0,0 +1,171 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.VertexProgram
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.VertexProgram (
+  -- * Extension Support
+  glGetNVVertexProgram,
+  gl_NV_vertex_program,
+  -- * Enums
+  pattern GL_ATTRIB_ARRAY_POINTER_NV,
+  pattern GL_ATTRIB_ARRAY_SIZE_NV,
+  pattern GL_ATTRIB_ARRAY_STRIDE_NV,
+  pattern GL_ATTRIB_ARRAY_TYPE_NV,
+  pattern GL_CURRENT_ATTRIB_NV,
+  pattern GL_CURRENT_MATRIX_NV,
+  pattern GL_CURRENT_MATRIX_STACK_DEPTH_NV,
+  pattern GL_IDENTITY_NV,
+  pattern GL_INVERSE_NV,
+  pattern GL_INVERSE_TRANSPOSE_NV,
+  pattern GL_MAP1_VERTEX_ATTRIB0_4_NV,
+  pattern GL_MAP1_VERTEX_ATTRIB10_4_NV,
+  pattern GL_MAP1_VERTEX_ATTRIB11_4_NV,
+  pattern GL_MAP1_VERTEX_ATTRIB12_4_NV,
+  pattern GL_MAP1_VERTEX_ATTRIB13_4_NV,
+  pattern GL_MAP1_VERTEX_ATTRIB14_4_NV,
+  pattern GL_MAP1_VERTEX_ATTRIB15_4_NV,
+  pattern GL_MAP1_VERTEX_ATTRIB1_4_NV,
+  pattern GL_MAP1_VERTEX_ATTRIB2_4_NV,
+  pattern GL_MAP1_VERTEX_ATTRIB3_4_NV,
+  pattern GL_MAP1_VERTEX_ATTRIB4_4_NV,
+  pattern GL_MAP1_VERTEX_ATTRIB5_4_NV,
+  pattern GL_MAP1_VERTEX_ATTRIB6_4_NV,
+  pattern GL_MAP1_VERTEX_ATTRIB7_4_NV,
+  pattern GL_MAP1_VERTEX_ATTRIB8_4_NV,
+  pattern GL_MAP1_VERTEX_ATTRIB9_4_NV,
+  pattern GL_MAP2_VERTEX_ATTRIB0_4_NV,
+  pattern GL_MAP2_VERTEX_ATTRIB10_4_NV,
+  pattern GL_MAP2_VERTEX_ATTRIB11_4_NV,
+  pattern GL_MAP2_VERTEX_ATTRIB12_4_NV,
+  pattern GL_MAP2_VERTEX_ATTRIB13_4_NV,
+  pattern GL_MAP2_VERTEX_ATTRIB14_4_NV,
+  pattern GL_MAP2_VERTEX_ATTRIB15_4_NV,
+  pattern GL_MAP2_VERTEX_ATTRIB1_4_NV,
+  pattern GL_MAP2_VERTEX_ATTRIB2_4_NV,
+  pattern GL_MAP2_VERTEX_ATTRIB3_4_NV,
+  pattern GL_MAP2_VERTEX_ATTRIB4_4_NV,
+  pattern GL_MAP2_VERTEX_ATTRIB5_4_NV,
+  pattern GL_MAP2_VERTEX_ATTRIB6_4_NV,
+  pattern GL_MAP2_VERTEX_ATTRIB7_4_NV,
+  pattern GL_MAP2_VERTEX_ATTRIB8_4_NV,
+  pattern GL_MAP2_VERTEX_ATTRIB9_4_NV,
+  pattern GL_MATRIX0_NV,
+  pattern GL_MATRIX1_NV,
+  pattern GL_MATRIX2_NV,
+  pattern GL_MATRIX3_NV,
+  pattern GL_MATRIX4_NV,
+  pattern GL_MATRIX5_NV,
+  pattern GL_MATRIX6_NV,
+  pattern GL_MATRIX7_NV,
+  pattern GL_MAX_TRACK_MATRICES_NV,
+  pattern GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV,
+  pattern GL_MODELVIEW_PROJECTION_NV,
+  pattern GL_PROGRAM_ERROR_POSITION_NV,
+  pattern GL_PROGRAM_LENGTH_NV,
+  pattern GL_PROGRAM_PARAMETER_NV,
+  pattern GL_PROGRAM_RESIDENT_NV,
+  pattern GL_PROGRAM_STRING_NV,
+  pattern GL_PROGRAM_TARGET_NV,
+  pattern GL_TRACK_MATRIX_NV,
+  pattern GL_TRACK_MATRIX_TRANSFORM_NV,
+  pattern GL_TRANSPOSE_NV,
+  pattern GL_VERTEX_ATTRIB_ARRAY0_NV,
+  pattern GL_VERTEX_ATTRIB_ARRAY10_NV,
+  pattern GL_VERTEX_ATTRIB_ARRAY11_NV,
+  pattern GL_VERTEX_ATTRIB_ARRAY12_NV,
+  pattern GL_VERTEX_ATTRIB_ARRAY13_NV,
+  pattern GL_VERTEX_ATTRIB_ARRAY14_NV,
+  pattern GL_VERTEX_ATTRIB_ARRAY15_NV,
+  pattern GL_VERTEX_ATTRIB_ARRAY1_NV,
+  pattern GL_VERTEX_ATTRIB_ARRAY2_NV,
+  pattern GL_VERTEX_ATTRIB_ARRAY3_NV,
+  pattern GL_VERTEX_ATTRIB_ARRAY4_NV,
+  pattern GL_VERTEX_ATTRIB_ARRAY5_NV,
+  pattern GL_VERTEX_ATTRIB_ARRAY6_NV,
+  pattern GL_VERTEX_ATTRIB_ARRAY7_NV,
+  pattern GL_VERTEX_ATTRIB_ARRAY8_NV,
+  pattern GL_VERTEX_ATTRIB_ARRAY9_NV,
+  pattern GL_VERTEX_PROGRAM_BINDING_NV,
+  pattern GL_VERTEX_PROGRAM_NV,
+  pattern GL_VERTEX_PROGRAM_POINT_SIZE_NV,
+  pattern GL_VERTEX_PROGRAM_TWO_SIDE_NV,
+  pattern GL_VERTEX_STATE_PROGRAM_NV,
+  -- * Functions
+  glAreProgramsResidentNV,
+  glBindProgramNV,
+  glDeleteProgramsNV,
+  glExecuteProgramNV,
+  glGenProgramsNV,
+  glGetProgramParameterdvNV,
+  glGetProgramParameterfvNV,
+  glGetProgramStringNV,
+  glGetProgramivNV,
+  glGetTrackMatrixivNV,
+  glGetVertexAttribPointervNV,
+  glGetVertexAttribdvNV,
+  glGetVertexAttribfvNV,
+  glGetVertexAttribivNV,
+  glIsProgramNV,
+  glLoadProgramNV,
+  glProgramParameter4dNV,
+  glProgramParameter4dvNV,
+  glProgramParameter4fNV,
+  glProgramParameter4fvNV,
+  glProgramParameters4dvNV,
+  glProgramParameters4fvNV,
+  glRequestResidentProgramsNV,
+  glTrackMatrixNV,
+  glVertexAttrib1dNV,
+  glVertexAttrib1dvNV,
+  glVertexAttrib1fNV,
+  glVertexAttrib1fvNV,
+  glVertexAttrib1sNV,
+  glVertexAttrib1svNV,
+  glVertexAttrib2dNV,
+  glVertexAttrib2dvNV,
+  glVertexAttrib2fNV,
+  glVertexAttrib2fvNV,
+  glVertexAttrib2sNV,
+  glVertexAttrib2svNV,
+  glVertexAttrib3dNV,
+  glVertexAttrib3dvNV,
+  glVertexAttrib3fNV,
+  glVertexAttrib3fvNV,
+  glVertexAttrib3sNV,
+  glVertexAttrib3svNV,
+  glVertexAttrib4dNV,
+  glVertexAttrib4dvNV,
+  glVertexAttrib4fNV,
+  glVertexAttrib4fvNV,
+  glVertexAttrib4sNV,
+  glVertexAttrib4svNV,
+  glVertexAttrib4ubNV,
+  glVertexAttrib4ubvNV,
+  glVertexAttribPointerNV,
+  glVertexAttribs1dvNV,
+  glVertexAttribs1fvNV,
+  glVertexAttribs1svNV,
+  glVertexAttribs2dvNV,
+  glVertexAttribs2fvNV,
+  glVertexAttribs2svNV,
+  glVertexAttribs3dvNV,
+  glVertexAttribs3fvNV,
+  glVertexAttribs3svNV,
+  glVertexAttribs4dvNV,
+  glVertexAttribs4fvNV,
+  glVertexAttribs4svNV,
+  glVertexAttribs4ubvNV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NV/VertexProgram2Option.hs b/src/Graphics/GL/NV/VertexProgram2Option.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/VertexProgram2Option.hs
@@ -0,0 +1,24 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.VertexProgram2Option
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.VertexProgram2Option (
+  -- * Extension Support
+  glGetNVVertexProgram2Option,
+  gl_NV_vertex_program2_option,
+  -- * Enums
+  pattern GL_MAX_PROGRAM_CALL_DEPTH_NV,
+  pattern GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/NV/VertexProgram3.hs b/src/Graphics/GL/NV/VertexProgram3.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/VertexProgram3.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.VertexProgram3
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.VertexProgram3 (
+  -- * Extension Support
+  glGetNVVertexProgram3,
+  gl_NV_vertex_program3,
+  -- * Enums
+  pattern GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/NV/VertexProgram4.hs b/src/Graphics/GL/NV/VertexProgram4.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/VertexProgram4.hs
@@ -0,0 +1,48 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.VertexProgram4
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.VertexProgram4 (
+  -- * Extension Support
+  glGetNVVertexProgram4,
+  gl_NV_vertex_program4,
+  -- * Enums
+  pattern GL_VERTEX_ATTRIB_ARRAY_INTEGER_NV,
+  -- * Functions
+  glGetVertexAttribIivEXT,
+  glGetVertexAttribIuivEXT,
+  glVertexAttribI1iEXT,
+  glVertexAttribI1ivEXT,
+  glVertexAttribI1uiEXT,
+  glVertexAttribI1uivEXT,
+  glVertexAttribI2iEXT,
+  glVertexAttribI2ivEXT,
+  glVertexAttribI2uiEXT,
+  glVertexAttribI2uivEXT,
+  glVertexAttribI3iEXT,
+  glVertexAttribI3ivEXT,
+  glVertexAttribI3uiEXT,
+  glVertexAttribI3uivEXT,
+  glVertexAttribI4bvEXT,
+  glVertexAttribI4iEXT,
+  glVertexAttribI4ivEXT,
+  glVertexAttribI4svEXT,
+  glVertexAttribI4ubvEXT,
+  glVertexAttribI4uiEXT,
+  glVertexAttribI4uivEXT,
+  glVertexAttribI4usvEXT,
+  glVertexAttribIPointerEXT
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NV/VideoCapture.hs b/src/Graphics/GL/NV/VideoCapture.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/VideoCapture.hs
@@ -0,0 +1,65 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.VideoCapture
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.VideoCapture (
+  -- * Extension Support
+  glGetNVVideoCapture,
+  gl_NV_video_capture,
+  -- * Enums
+  pattern GL_FAILURE_NV,
+  pattern GL_FIELD_LOWER_NV,
+  pattern GL_FIELD_UPPER_NV,
+  pattern GL_LAST_VIDEO_CAPTURE_STATUS_NV,
+  pattern GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV,
+  pattern GL_NUM_VIDEO_CAPTURE_STREAMS_NV,
+  pattern GL_PARTIAL_SUCCESS_NV,
+  pattern GL_SUCCESS_NV,
+  pattern GL_VIDEO_BUFFER_BINDING_NV,
+  pattern GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV,
+  pattern GL_VIDEO_BUFFER_NV,
+  pattern GL_VIDEO_BUFFER_PITCH_NV,
+  pattern GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV,
+  pattern GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV,
+  pattern GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV,
+  pattern GL_VIDEO_CAPTURE_FRAME_WIDTH_NV,
+  pattern GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV,
+  pattern GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV,
+  pattern GL_VIDEO_COLOR_CONVERSION_MATRIX_NV,
+  pattern GL_VIDEO_COLOR_CONVERSION_MAX_NV,
+  pattern GL_VIDEO_COLOR_CONVERSION_MIN_NV,
+  pattern GL_VIDEO_COLOR_CONVERSION_OFFSET_NV,
+  pattern GL_YCBAYCR8A_4224_NV,
+  pattern GL_YCBYCR8_422_NV,
+  pattern GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV,
+  pattern GL_Z4Y12Z4CB12Z4CR12_444_NV,
+  pattern GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV,
+  pattern GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV,
+  pattern GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV,
+  -- * Functions
+  glBeginVideoCaptureNV,
+  glBindVideoCaptureStreamBufferNV,
+  glBindVideoCaptureStreamTextureNV,
+  glEndVideoCaptureNV,
+  glGetVideoCaptureStreamdvNV,
+  glGetVideoCaptureStreamfvNV,
+  glGetVideoCaptureStreamivNV,
+  glGetVideoCaptureivNV,
+  glVideoCaptureNV,
+  glVideoCaptureStreamParameterdvNV,
+  glVideoCaptureStreamParameterfvNV,
+  glVideoCaptureStreamParameterivNV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NV/ViewportSwizzle.hs b/src/Graphics/GL/NV/ViewportSwizzle.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NV/ViewportSwizzle.hs
@@ -0,0 +1,37 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NV.ViewportSwizzle
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NV.ViewportSwizzle (
+  -- * Extension Support
+  glGetNVViewportSwizzle,
+  gl_NV_viewport_swizzle,
+  -- * Enums
+  pattern GL_VIEWPORT_SWIZZLE_NEGATIVE_W_NV,
+  pattern GL_VIEWPORT_SWIZZLE_NEGATIVE_X_NV,
+  pattern GL_VIEWPORT_SWIZZLE_NEGATIVE_Y_NV,
+  pattern GL_VIEWPORT_SWIZZLE_NEGATIVE_Z_NV,
+  pattern GL_VIEWPORT_SWIZZLE_POSITIVE_W_NV,
+  pattern GL_VIEWPORT_SWIZZLE_POSITIVE_X_NV,
+  pattern GL_VIEWPORT_SWIZZLE_POSITIVE_Y_NV,
+  pattern GL_VIEWPORT_SWIZZLE_POSITIVE_Z_NV,
+  pattern GL_VIEWPORT_SWIZZLE_W_NV,
+  pattern GL_VIEWPORT_SWIZZLE_X_NV,
+  pattern GL_VIEWPORT_SWIZZLE_Y_NV,
+  pattern GL_VIEWPORT_SWIZZLE_Z_NV,
+  -- * Functions
+  glViewportSwizzleNV
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NVX.hs b/src/Graphics/GL/NVX.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NVX.hs
@@ -0,0 +1,27 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NVX
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- A convenience module, combining all raw modules containing NVX extensions.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NVX (
+  module Graphics.GL.NVX.ConditionalRender,
+  module Graphics.GL.NVX.GPUMemoryInfo,
+  module Graphics.GL.NVX.GPUMulticast2,
+  module Graphics.GL.NVX.LinkedGPUMulticast,
+  module Graphics.GL.NVX.ProgressFence
+) where
+
+import Graphics.GL.NVX.ConditionalRender
+import Graphics.GL.NVX.GPUMemoryInfo
+import Graphics.GL.NVX.GPUMulticast2
+import Graphics.GL.NVX.LinkedGPUMulticast
+import Graphics.GL.NVX.ProgressFence
diff --git a/src/Graphics/GL/NVX/ConditionalRender.hs b/src/Graphics/GL/NVX/ConditionalRender.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NVX/ConditionalRender.hs
@@ -0,0 +1,23 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NVX.ConditionalRender
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NVX.ConditionalRender (
+  -- * Extension Support
+  glGetNVXConditionalRender,
+  gl_NVX_conditional_render,
+  -- * Functions
+  glBeginConditionalRenderNVX,
+  glEndConditionalRenderNVX
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NVX/GPUMemoryInfo.hs b/src/Graphics/GL/NVX/GPUMemoryInfo.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NVX/GPUMemoryInfo.hs
@@ -0,0 +1,27 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NVX.GPUMemoryInfo
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NVX.GPUMemoryInfo (
+  -- * Extension Support
+  glGetNVXGPUMemoryInfo,
+  gl_NVX_gpu_memory_info,
+  -- * Enums
+  pattern GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX,
+  pattern GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX,
+  pattern GL_GPU_MEMORY_INFO_EVICTED_MEMORY_NVX,
+  pattern GL_GPU_MEMORY_INFO_EVICTION_COUNT_NVX,
+  pattern GL_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/NVX/GPUMulticast2.hs b/src/Graphics/GL/NVX/GPUMulticast2.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NVX/GPUMulticast2.hs
@@ -0,0 +1,31 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NVX.GPUMulticast2
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NVX.GPUMulticast2 (
+  -- * Extension Support
+  glGetNVXGPUMulticast2,
+  gl_NVX_gpu_multicast2,
+  -- * Enums
+  pattern GL_UPLOAD_GPU_MASK_NVX,
+  -- * Functions
+  glAsyncCopyBufferSubDataNVX,
+  glAsyncCopyImageSubDataNVX,
+  glMulticastScissorArrayvNVX,
+  glMulticastViewportArrayvNVX,
+  glMulticastViewportPositionWScaleNVX,
+  glUploadGpuMaskNVX
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NVX/LinkedGPUMulticast.hs b/src/Graphics/GL/NVX/LinkedGPUMulticast.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NVX/LinkedGPUMulticast.hs
@@ -0,0 +1,29 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NVX.LinkedGPUMulticast
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NVX.LinkedGPUMulticast (
+  -- * Extension Support
+  glGetNVXLinkedGPUMulticast,
+  gl_NVX_linked_gpu_multicast,
+  -- * Enums
+  pattern GL_LGPU_SEPARATE_STORAGE_BIT_NVX,
+  pattern GL_MAX_LGPU_GPUS_NVX,
+  -- * Functions
+  glLGPUCopyImageSubDataNVX,
+  glLGPUInterlockNVX,
+  glLGPUNamedBufferSubDataNVX
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/NVX/ProgressFence.hs b/src/Graphics/GL/NVX/ProgressFence.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/NVX/ProgressFence.hs
@@ -0,0 +1,25 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.NVX.ProgressFence
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.NVX.ProgressFence (
+  -- * Extension Support
+  glGetNVXProgressFence,
+  gl_NVX_progress_fence,
+  -- * Functions
+  glClientWaitSemaphoreui64NVX,
+  glCreateProgressFenceNVX,
+  glSignalSemaphoreui64NVX,
+  glWaitSemaphoreui64NVX
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/OES.hs b/src/Graphics/GL/OES.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/OES.hs
@@ -0,0 +1,29 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.OES
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- A convenience module, combining all raw modules containing OES extensions.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.OES (
+  module Graphics.GL.OES.ByteCoordinates,
+  module Graphics.GL.OES.CompressedPalettedTexture,
+  module Graphics.GL.OES.FixedPoint,
+  module Graphics.GL.OES.QueryMatrix,
+  module Graphics.GL.OES.ReadFormat,
+  module Graphics.GL.OES.SinglePrecision
+) where
+
+import Graphics.GL.OES.ByteCoordinates
+import Graphics.GL.OES.CompressedPalettedTexture
+import Graphics.GL.OES.FixedPoint
+import Graphics.GL.OES.QueryMatrix
+import Graphics.GL.OES.ReadFormat
+import Graphics.GL.OES.SinglePrecision
diff --git a/src/Graphics/GL/OES/ByteCoordinates.hs b/src/Graphics/GL/OES/ByteCoordinates.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/OES/ByteCoordinates.hs
@@ -0,0 +1,50 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.OES.ByteCoordinates
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.OES.ByteCoordinates (
+  -- * Extension Support
+  glGetOESByteCoordinates,
+  gl_OES_byte_coordinates,
+  -- * Types
+  GLbyte,
+  -- * Enums
+  pattern GL_BYTE,
+  -- * Functions
+  glMultiTexCoord1bOES,
+  glMultiTexCoord1bvOES,
+  glMultiTexCoord2bOES,
+  glMultiTexCoord2bvOES,
+  glMultiTexCoord3bOES,
+  glMultiTexCoord3bvOES,
+  glMultiTexCoord4bOES,
+  glMultiTexCoord4bvOES,
+  glTexCoord1bOES,
+  glTexCoord1bvOES,
+  glTexCoord2bOES,
+  glTexCoord2bvOES,
+  glTexCoord3bOES,
+  glTexCoord3bvOES,
+  glTexCoord4bOES,
+  glTexCoord4bvOES,
+  glVertex2bOES,
+  glVertex2bvOES,
+  glVertex3bOES,
+  glVertex3bvOES,
+  glVertex4bOES,
+  glVertex4bvOES
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Types
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/OES/CompressedPalettedTexture.hs b/src/Graphics/GL/OES/CompressedPalettedTexture.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/OES/CompressedPalettedTexture.hs
@@ -0,0 +1,32 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.OES.CompressedPalettedTexture
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.OES.CompressedPalettedTexture (
+  -- * Extension Support
+  glGetOESCompressedPalettedTexture,
+  gl_OES_compressed_paletted_texture,
+  -- * Enums
+  pattern GL_PALETTE4_R5_G6_B5_OES,
+  pattern GL_PALETTE4_RGB5_A1_OES,
+  pattern GL_PALETTE4_RGB8_OES,
+  pattern GL_PALETTE4_RGBA4_OES,
+  pattern GL_PALETTE4_RGBA8_OES,
+  pattern GL_PALETTE8_R5_G6_B5_OES,
+  pattern GL_PALETTE8_RGB5_A1_OES,
+  pattern GL_PALETTE8_RGB8_OES,
+  pattern GL_PALETTE8_RGBA4_OES,
+  pattern GL_PALETTE8_RGBA8_OES
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/OES/FixedPoint.hs b/src/Graphics/GL/OES/FixedPoint.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/OES/FixedPoint.hs
@@ -0,0 +1,128 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.OES.FixedPoint
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.OES.FixedPoint (
+  -- * Extension Support
+  glGetOESFixedPoint,
+  gl_OES_fixed_point,
+  -- * Enums
+  pattern GL_FIXED_OES,
+  -- * Functions
+  glAccumxOES,
+  glAlphaFuncxOES,
+  glBitmapxOES,
+  glBlendColorxOES,
+  glClearAccumxOES,
+  glClearColorxOES,
+  glClearDepthxOES,
+  glClipPlanexOES,
+  glColor3xOES,
+  glColor3xvOES,
+  glColor4xOES,
+  glColor4xvOES,
+  glConvolutionParameterxOES,
+  glConvolutionParameterxvOES,
+  glDepthRangexOES,
+  glEvalCoord1xOES,
+  glEvalCoord1xvOES,
+  glEvalCoord2xOES,
+  glEvalCoord2xvOES,
+  glFeedbackBufferxOES,
+  glFogxOES,
+  glFogxvOES,
+  glFrustumxOES,
+  glGetClipPlanexOES,
+  glGetConvolutionParameterxvOES,
+  glGetFixedvOES,
+  glGetHistogramParameterxvOES,
+  glGetLightxOES,
+  glGetMapxvOES,
+  glGetMaterialxOES,
+  glGetPixelMapxv,
+  glGetTexEnvxvOES,
+  glGetTexGenxvOES,
+  glGetTexLevelParameterxvOES,
+  glGetTexParameterxvOES,
+  glIndexxOES,
+  glIndexxvOES,
+  glLightModelxOES,
+  glLightModelxvOES,
+  glLightxOES,
+  glLightxvOES,
+  glLineWidthxOES,
+  glLoadMatrixxOES,
+  glLoadTransposeMatrixxOES,
+  glMap1xOES,
+  glMap2xOES,
+  glMapGrid1xOES,
+  glMapGrid2xOES,
+  glMaterialxOES,
+  glMaterialxvOES,
+  glMultMatrixxOES,
+  glMultTransposeMatrixxOES,
+  glMultiTexCoord1xOES,
+  glMultiTexCoord1xvOES,
+  glMultiTexCoord2xOES,
+  glMultiTexCoord2xvOES,
+  glMultiTexCoord3xOES,
+  glMultiTexCoord3xvOES,
+  glMultiTexCoord4xOES,
+  glMultiTexCoord4xvOES,
+  glNormal3xOES,
+  glNormal3xvOES,
+  glOrthoxOES,
+  glPassThroughxOES,
+  glPixelMapx,
+  glPixelStorex,
+  glPixelTransferxOES,
+  glPixelZoomxOES,
+  glPointParameterxvOES,
+  glPointSizexOES,
+  glPolygonOffsetxOES,
+  glPrioritizeTexturesxOES,
+  glRasterPos2xOES,
+  glRasterPos2xvOES,
+  glRasterPos3xOES,
+  glRasterPos3xvOES,
+  glRasterPos4xOES,
+  glRasterPos4xvOES,
+  glRectxOES,
+  glRectxvOES,
+  glRotatexOES,
+  glScalexOES,
+  glTexCoord1xOES,
+  glTexCoord1xvOES,
+  glTexCoord2xOES,
+  glTexCoord2xvOES,
+  glTexCoord3xOES,
+  glTexCoord3xvOES,
+  glTexCoord4xOES,
+  glTexCoord4xvOES,
+  glTexEnvxOES,
+  glTexEnvxvOES,
+  glTexGenxOES,
+  glTexGenxvOES,
+  glTexParameterxOES,
+  glTexParameterxvOES,
+  glTranslatexOES,
+  glVertex2xOES,
+  glVertex2xvOES,
+  glVertex3xOES,
+  glVertex3xvOES,
+  glVertex4xOES,
+  glVertex4xvOES
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/OES/QueryMatrix.hs b/src/Graphics/GL/OES/QueryMatrix.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/OES/QueryMatrix.hs
@@ -0,0 +1,22 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.OES.QueryMatrix
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.OES.QueryMatrix (
+  -- * Extension Support
+  glGetOESQueryMatrix,
+  gl_OES_query_matrix,
+  -- * Functions
+  glQueryMatrixxOES
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/OES/ReadFormat.hs b/src/Graphics/GL/OES/ReadFormat.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/OES/ReadFormat.hs
@@ -0,0 +1,24 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.OES.ReadFormat
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.OES.ReadFormat (
+  -- * Extension Support
+  glGetOESReadFormat,
+  gl_OES_read_format,
+  -- * Enums
+  pattern GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES,
+  pattern GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/OES/SinglePrecision.hs b/src/Graphics/GL/OES/SinglePrecision.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/OES/SinglePrecision.hs
@@ -0,0 +1,27 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.OES.SinglePrecision
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.OES.SinglePrecision (
+  -- * Extension Support
+  glGetOESSinglePrecision,
+  gl_OES_single_precision,
+  -- * Functions
+  glClearDepthfOES,
+  glClipPlanefOES,
+  glDepthRangefOES,
+  glFrustumfOES,
+  glGetClipPlanefOES,
+  glOrthofOES
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/OML.hs b/src/Graphics/GL/OML.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/OML.hs
@@ -0,0 +1,23 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.OML
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- A convenience module, combining all raw modules containing OML extensions.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.OML (
+  module Graphics.GL.OML.Interlace,
+  module Graphics.GL.OML.Resample,
+  module Graphics.GL.OML.Subsample
+) where
+
+import Graphics.GL.OML.Interlace
+import Graphics.GL.OML.Resample
+import Graphics.GL.OML.Subsample
diff --git a/src/Graphics/GL/OML/Interlace.hs b/src/Graphics/GL/OML/Interlace.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/OML/Interlace.hs
@@ -0,0 +1,24 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.OML.Interlace
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.OML.Interlace (
+  -- * Extension Support
+  glGetOMLInterlace,
+  gl_OML_interlace,
+  -- * Enums
+  pattern GL_INTERLACE_OML,
+  pattern GL_INTERLACE_READ_OML
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/OML/Resample.hs b/src/Graphics/GL/OML/Resample.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/OML/Resample.hs
@@ -0,0 +1,28 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.OML.Resample
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.OML.Resample (
+  -- * Extension Support
+  glGetOMLResample,
+  gl_OML_resample,
+  -- * Enums
+  pattern GL_PACK_RESAMPLE_OML,
+  pattern GL_RESAMPLE_AVERAGE_OML,
+  pattern GL_RESAMPLE_DECIMATE_OML,
+  pattern GL_RESAMPLE_REPLICATE_OML,
+  pattern GL_RESAMPLE_ZERO_FILL_OML,
+  pattern GL_UNPACK_RESAMPLE_OML
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/OML/Subsample.hs b/src/Graphics/GL/OML/Subsample.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/OML/Subsample.hs
@@ -0,0 +1,24 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.OML.Subsample
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.OML.Subsample (
+  -- * Extension Support
+  glGetOMLSubsample,
+  gl_OML_subsample,
+  -- * Enums
+  pattern GL_FORMAT_SUBSAMPLE_244_244_OML,
+  pattern GL_FORMAT_SUBSAMPLE_24_24_OML
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/OVR.hs b/src/Graphics/GL/OVR.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/OVR.hs
@@ -0,0 +1,19 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.OVR
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- A convenience module, combining all raw modules containing OVR extensions.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.OVR (
+  module Graphics.GL.OVR.Multiview
+) where
+
+import Graphics.GL.OVR.Multiview
diff --git a/src/Graphics/GL/OVR/Multiview.hs b/src/Graphics/GL/OVR/Multiview.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/OVR/Multiview.hs
@@ -0,0 +1,29 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.OVR.Multiview
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.OVR.Multiview (
+  -- * Extension Support
+  glGetOVRMultiview,
+  gl_OVR_multiview,
+  -- * Enums
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR,
+  pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR,
+  pattern GL_FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR,
+  pattern GL_MAX_VIEWS_OVR,
+  -- * Functions
+  glFramebufferTextureMultiviewOVR
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/PGI.hs b/src/Graphics/GL/PGI.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/PGI.hs
@@ -0,0 +1,21 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.PGI
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- A convenience module, combining all raw modules containing PGI extensions.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.PGI (
+  module Graphics.GL.PGI.MiscHints,
+  module Graphics.GL.PGI.VertexHints
+) where
+
+import Graphics.GL.PGI.MiscHints
+import Graphics.GL.PGI.VertexHints
diff --git a/src/Graphics/GL/PGI/MiscHints.hs b/src/Graphics/GL/PGI/MiscHints.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/PGI/MiscHints.hs
@@ -0,0 +1,45 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.PGI.MiscHints
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.PGI.MiscHints (
+  -- * Extension Support
+  glGetPGIMiscHints,
+  gl_PGI_misc_hints,
+  -- * Enums
+  pattern GL_ALLOW_DRAW_FRG_HINT_PGI,
+  pattern GL_ALLOW_DRAW_MEM_HINT_PGI,
+  pattern GL_ALLOW_DRAW_OBJ_HINT_PGI,
+  pattern GL_ALLOW_DRAW_WIN_HINT_PGI,
+  pattern GL_ALWAYS_FAST_HINT_PGI,
+  pattern GL_ALWAYS_SOFT_HINT_PGI,
+  pattern GL_BACK_NORMALS_HINT_PGI,
+  pattern GL_CLIP_FAR_HINT_PGI,
+  pattern GL_CLIP_NEAR_HINT_PGI,
+  pattern GL_CONSERVE_MEMORY_HINT_PGI,
+  pattern GL_FULL_STIPPLE_HINT_PGI,
+  pattern GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI,
+  pattern GL_NATIVE_GRAPHICS_END_HINT_PGI,
+  pattern GL_NATIVE_GRAPHICS_HANDLE_PGI,
+  pattern GL_PREFER_DOUBLEBUFFER_HINT_PGI,
+  pattern GL_RECLAIM_MEMORY_HINT_PGI,
+  pattern GL_STRICT_DEPTHFUNC_HINT_PGI,
+  pattern GL_STRICT_LIGHTING_HINT_PGI,
+  pattern GL_STRICT_SCISSOR_HINT_PGI,
+  pattern GL_WIDE_LINE_HINT_PGI,
+  -- * Functions
+  glHintPGI
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/PGI/VertexHints.hs b/src/Graphics/GL/PGI/VertexHints.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/PGI/VertexHints.hs
@@ -0,0 +1,44 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.PGI.VertexHints
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.PGI.VertexHints (
+  -- * Extension Support
+  glGetPGIVertexHints,
+  gl_PGI_vertex_hints,
+  -- * Enums
+  pattern GL_COLOR3_BIT_PGI,
+  pattern GL_COLOR4_BIT_PGI,
+  pattern GL_EDGEFLAG_BIT_PGI,
+  pattern GL_INDEX_BIT_PGI,
+  pattern GL_MATERIAL_SIDE_HINT_PGI,
+  pattern GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI,
+  pattern GL_MAT_AMBIENT_BIT_PGI,
+  pattern GL_MAT_COLOR_INDEXES_BIT_PGI,
+  pattern GL_MAT_DIFFUSE_BIT_PGI,
+  pattern GL_MAT_EMISSION_BIT_PGI,
+  pattern GL_MAT_SHININESS_BIT_PGI,
+  pattern GL_MAT_SPECULAR_BIT_PGI,
+  pattern GL_MAX_VERTEX_HINT_PGI,
+  pattern GL_NORMAL_BIT_PGI,
+  pattern GL_TEXCOORD1_BIT_PGI,
+  pattern GL_TEXCOORD2_BIT_PGI,
+  pattern GL_TEXCOORD3_BIT_PGI,
+  pattern GL_TEXCOORD4_BIT_PGI,
+  pattern GL_VERTEX23_BIT_PGI,
+  pattern GL_VERTEX4_BIT_PGI,
+  pattern GL_VERTEX_CONSISTENT_HINT_PGI,
+  pattern GL_VERTEX_DATA_HINT_PGI
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/REND.hs b/src/Graphics/GL/REND.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/REND.hs
@@ -0,0 +1,19 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.REND
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- A convenience module, combining all raw modules containing REND extensions.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.REND (
+  module Graphics.GL.REND.ScreenCoordinates
+) where
+
+import Graphics.GL.REND.ScreenCoordinates
diff --git a/src/Graphics/GL/REND/ScreenCoordinates.hs b/src/Graphics/GL/REND/ScreenCoordinates.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/REND/ScreenCoordinates.hs
@@ -0,0 +1,24 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.REND.ScreenCoordinates
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.REND.ScreenCoordinates (
+  -- * Extension Support
+  glGetRENDScreenCoordinates,
+  gl_REND_screen_coordinates,
+  -- * Enums
+  pattern GL_INVERTED_SCREEN_W_REND,
+  pattern GL_SCREEN_COORDINATES_REND
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/S3.hs b/src/Graphics/GL/S3.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/S3.hs
@@ -0,0 +1,19 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.S3
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- A convenience module, combining all raw modules containing S3 extensions.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.S3 (
+  module Graphics.GL.S3.S3TC
+) where
+
+import Graphics.GL.S3.S3TC
diff --git a/src/Graphics/GL/S3/S3TC.hs b/src/Graphics/GL/S3/S3TC.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/S3/S3TC.hs
@@ -0,0 +1,28 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.S3.S3TC
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.S3.S3TC (
+  -- * Extension Support
+  glGetS3S3TC,
+  gl_S3_s3tc,
+  -- * Enums
+  pattern GL_RGB4_S3TC,
+  pattern GL_RGBA4_DXT5_S3TC,
+  pattern GL_RGBA4_S3TC,
+  pattern GL_RGBA_DXT5_S3TC,
+  pattern GL_RGBA_S3TC,
+  pattern GL_RGB_S3TC
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/SGI.hs b/src/Graphics/GL/SGI.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SGI.hs
@@ -0,0 +1,23 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SGI
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- A convenience module, combining all raw modules containing SGI extensions.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SGI (
+  module Graphics.GL.SGI.ColorMatrix,
+  module Graphics.GL.SGI.ColorTable,
+  module Graphics.GL.SGI.TextureColorTable
+) where
+
+import Graphics.GL.SGI.ColorMatrix
+import Graphics.GL.SGI.ColorTable
+import Graphics.GL.SGI.TextureColorTable
diff --git a/src/Graphics/GL/SGI/ColorMatrix.hs b/src/Graphics/GL/SGI/ColorMatrix.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SGI/ColorMatrix.hs
@@ -0,0 +1,33 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SGI.ColorMatrix
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SGI.ColorMatrix (
+  -- * Extension Support
+  glGetSGIColorMatrix,
+  gl_SGI_color_matrix,
+  -- * Enums
+  pattern GL_COLOR_MATRIX_SGI,
+  pattern GL_COLOR_MATRIX_STACK_DEPTH_SGI,
+  pattern GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI,
+  pattern GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI,
+  pattern GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI,
+  pattern GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI,
+  pattern GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI,
+  pattern GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI,
+  pattern GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI,
+  pattern GL_POST_COLOR_MATRIX_RED_BIAS_SGI,
+  pattern GL_POST_COLOR_MATRIX_RED_SCALE_SGI
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/SGI/ColorTable.hs b/src/Graphics/GL/SGI/ColorTable.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SGI/ColorTable.hs
@@ -0,0 +1,47 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SGI.ColorTable
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SGI.ColorTable (
+  -- * Extension Support
+  glGetSGIColorTable,
+  gl_SGI_color_table,
+  -- * Enums
+  pattern GL_COLOR_TABLE_ALPHA_SIZE_SGI,
+  pattern GL_COLOR_TABLE_BIAS_SGI,
+  pattern GL_COLOR_TABLE_BLUE_SIZE_SGI,
+  pattern GL_COLOR_TABLE_FORMAT_SGI,
+  pattern GL_COLOR_TABLE_GREEN_SIZE_SGI,
+  pattern GL_COLOR_TABLE_INTENSITY_SIZE_SGI,
+  pattern GL_COLOR_TABLE_LUMINANCE_SIZE_SGI,
+  pattern GL_COLOR_TABLE_RED_SIZE_SGI,
+  pattern GL_COLOR_TABLE_SCALE_SGI,
+  pattern GL_COLOR_TABLE_SGI,
+  pattern GL_COLOR_TABLE_WIDTH_SGI,
+  pattern GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI,
+  pattern GL_POST_CONVOLUTION_COLOR_TABLE_SGI,
+  pattern GL_PROXY_COLOR_TABLE_SGI,
+  pattern GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI,
+  pattern GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI,
+  -- * Functions
+  glColorTableParameterfvSGI,
+  glColorTableParameterivSGI,
+  glColorTableSGI,
+  glCopyColorTableSGI,
+  glGetColorTableParameterfvSGI,
+  glGetColorTableParameterivSGI,
+  glGetColorTableSGI
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/SGI/TextureColorTable.hs b/src/Graphics/GL/SGI/TextureColorTable.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SGI/TextureColorTable.hs
@@ -0,0 +1,24 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SGI.TextureColorTable
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SGI.TextureColorTable (
+  -- * Extension Support
+  glGetSGITextureColorTable,
+  gl_SGI_texture_color_table,
+  -- * Enums
+  pattern GL_PROXY_TEXTURE_COLOR_TABLE_SGI,
+  pattern GL_TEXTURE_COLOR_TABLE_SGI
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/SGIS.hs b/src/Graphics/GL/SGIS.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SGIS.hs
@@ -0,0 +1,47 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SGIS
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- A convenience module, combining all raw modules containing SGIS extensions.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SGIS (
+  module Graphics.GL.SGIS.DetailTexture,
+  module Graphics.GL.SGIS.FogFunction,
+  module Graphics.GL.SGIS.GenerateMipmap,
+  module Graphics.GL.SGIS.Multisample,
+  module Graphics.GL.SGIS.PixelTexture,
+  module Graphics.GL.SGIS.PointLineTexgen,
+  module Graphics.GL.SGIS.PointParameters,
+  module Graphics.GL.SGIS.SharpenTexture,
+  module Graphics.GL.SGIS.Texture4D,
+  module Graphics.GL.SGIS.TextureBorderClamp,
+  module Graphics.GL.SGIS.TextureColorMask,
+  module Graphics.GL.SGIS.TextureEdgeClamp,
+  module Graphics.GL.SGIS.TextureFilter4,
+  module Graphics.GL.SGIS.TextureLOD,
+  module Graphics.GL.SGIS.TextureSelect
+) where
+
+import Graphics.GL.SGIS.DetailTexture
+import Graphics.GL.SGIS.FogFunction
+import Graphics.GL.SGIS.GenerateMipmap
+import Graphics.GL.SGIS.Multisample
+import Graphics.GL.SGIS.PixelTexture
+import Graphics.GL.SGIS.PointLineTexgen
+import Graphics.GL.SGIS.PointParameters
+import Graphics.GL.SGIS.SharpenTexture
+import Graphics.GL.SGIS.Texture4D
+import Graphics.GL.SGIS.TextureBorderClamp
+import Graphics.GL.SGIS.TextureColorMask
+import Graphics.GL.SGIS.TextureEdgeClamp
+import Graphics.GL.SGIS.TextureFilter4
+import Graphics.GL.SGIS.TextureLOD
+import Graphics.GL.SGIS.TextureSelect
diff --git a/src/Graphics/GL/SGIS/DetailTexture.hs b/src/Graphics/GL/SGIS/DetailTexture.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SGIS/DetailTexture.hs
@@ -0,0 +1,34 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SGIS.DetailTexture
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SGIS.DetailTexture (
+  -- * Extension Support
+  glGetSGISDetailTexture,
+  gl_SGIS_detail_texture,
+  -- * Enums
+  pattern GL_DETAIL_TEXTURE_2D_BINDING_SGIS,
+  pattern GL_DETAIL_TEXTURE_2D_SGIS,
+  pattern GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS,
+  pattern GL_DETAIL_TEXTURE_LEVEL_SGIS,
+  pattern GL_DETAIL_TEXTURE_MODE_SGIS,
+  pattern GL_LINEAR_DETAIL_ALPHA_SGIS,
+  pattern GL_LINEAR_DETAIL_COLOR_SGIS,
+  pattern GL_LINEAR_DETAIL_SGIS,
+  -- * Functions
+  glDetailTexFuncSGIS,
+  glGetDetailTexFuncSGIS
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/SGIS/FogFunction.hs b/src/Graphics/GL/SGIS/FogFunction.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SGIS/FogFunction.hs
@@ -0,0 +1,29 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SGIS.FogFunction
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SGIS.FogFunction (
+  -- * Extension Support
+  glGetSGISFogFunction,
+  gl_SGIS_fog_function,
+  -- * Enums
+  pattern GL_FOG_FUNC_POINTS_SGIS,
+  pattern GL_FOG_FUNC_SGIS,
+  pattern GL_MAX_FOG_FUNC_POINTS_SGIS,
+  -- * Functions
+  glFogFuncSGIS,
+  glGetFogFuncSGIS
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/SGIS/GenerateMipmap.hs b/src/Graphics/GL/SGIS/GenerateMipmap.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SGIS/GenerateMipmap.hs
@@ -0,0 +1,24 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SGIS.GenerateMipmap
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SGIS.GenerateMipmap (
+  -- * Extension Support
+  glGetSGISGenerateMipmap,
+  gl_SGIS_generate_mipmap,
+  -- * Enums
+  pattern GL_GENERATE_MIPMAP_HINT_SGIS,
+  pattern GL_GENERATE_MIPMAP_SGIS
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/SGIS/Multisample.hs b/src/Graphics/GL/SGIS/Multisample.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SGIS/Multisample.hs
@@ -0,0 +1,42 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SGIS.Multisample
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SGIS.Multisample (
+  -- * Extension Support
+  glGetSGISMultisample,
+  gl_SGIS_multisample,
+  -- * Enums
+  pattern GL_1PASS_SGIS,
+  pattern GL_2PASS_0_SGIS,
+  pattern GL_2PASS_1_SGIS,
+  pattern GL_4PASS_0_SGIS,
+  pattern GL_4PASS_1_SGIS,
+  pattern GL_4PASS_2_SGIS,
+  pattern GL_4PASS_3_SGIS,
+  pattern GL_MULTISAMPLE_SGIS,
+  pattern GL_SAMPLES_SGIS,
+  pattern GL_SAMPLE_ALPHA_TO_MASK_SGIS,
+  pattern GL_SAMPLE_ALPHA_TO_ONE_SGIS,
+  pattern GL_SAMPLE_BUFFERS_SGIS,
+  pattern GL_SAMPLE_MASK_INVERT_SGIS,
+  pattern GL_SAMPLE_MASK_SGIS,
+  pattern GL_SAMPLE_MASK_VALUE_SGIS,
+  pattern GL_SAMPLE_PATTERN_SGIS,
+  -- * Functions
+  glSampleMaskSGIS,
+  glSamplePatternSGIS
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/SGIS/PixelTexture.hs b/src/Graphics/GL/SGIS/PixelTexture.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SGIS/PixelTexture.hs
@@ -0,0 +1,34 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SGIS.PixelTexture
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SGIS.PixelTexture (
+  -- * Extension Support
+  glGetSGISPixelTexture,
+  gl_SGIS_pixel_texture,
+  -- * Enums
+  pattern GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS,
+  pattern GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS,
+  pattern GL_PIXEL_GROUP_COLOR_SGIS,
+  pattern GL_PIXEL_TEXTURE_SGIS,
+  -- * Functions
+  glGetPixelTexGenParameterfvSGIS,
+  glGetPixelTexGenParameterivSGIS,
+  glPixelTexGenParameterfSGIS,
+  glPixelTexGenParameterfvSGIS,
+  glPixelTexGenParameteriSGIS,
+  glPixelTexGenParameterivSGIS
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/SGIS/PointLineTexgen.hs b/src/Graphics/GL/SGIS/PointLineTexgen.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SGIS/PointLineTexgen.hs
@@ -0,0 +1,30 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SGIS.PointLineTexgen
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SGIS.PointLineTexgen (
+  -- * Extension Support
+  glGetSGISPointLineTexgen,
+  gl_SGIS_point_line_texgen,
+  -- * Enums
+  pattern GL_EYE_DISTANCE_TO_LINE_SGIS,
+  pattern GL_EYE_DISTANCE_TO_POINT_SGIS,
+  pattern GL_EYE_LINE_SGIS,
+  pattern GL_EYE_POINT_SGIS,
+  pattern GL_OBJECT_DISTANCE_TO_LINE_SGIS,
+  pattern GL_OBJECT_DISTANCE_TO_POINT_SGIS,
+  pattern GL_OBJECT_LINE_SGIS,
+  pattern GL_OBJECT_POINT_SGIS
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/SGIS/PointParameters.hs b/src/Graphics/GL/SGIS/PointParameters.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SGIS/PointParameters.hs
@@ -0,0 +1,30 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SGIS.PointParameters
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SGIS.PointParameters (
+  -- * Extension Support
+  glGetSGISPointParameters,
+  gl_SGIS_point_parameters,
+  -- * Enums
+  pattern GL_DISTANCE_ATTENUATION_SGIS,
+  pattern GL_POINT_FADE_THRESHOLD_SIZE_SGIS,
+  pattern GL_POINT_SIZE_MAX_SGIS,
+  pattern GL_POINT_SIZE_MIN_SGIS,
+  -- * Functions
+  glPointParameterfSGIS,
+  glPointParameterfvSGIS
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/SGIS/SharpenTexture.hs b/src/Graphics/GL/SGIS/SharpenTexture.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SGIS/SharpenTexture.hs
@@ -0,0 +1,30 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SGIS.SharpenTexture
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SGIS.SharpenTexture (
+  -- * Extension Support
+  glGetSGISSharpenTexture,
+  gl_SGIS_sharpen_texture,
+  -- * Enums
+  pattern GL_LINEAR_SHARPEN_ALPHA_SGIS,
+  pattern GL_LINEAR_SHARPEN_COLOR_SGIS,
+  pattern GL_LINEAR_SHARPEN_SGIS,
+  pattern GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS,
+  -- * Functions
+  glGetSharpenTexFuncSGIS,
+  glSharpenTexFuncSGIS
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/SGIS/Texture4D.hs b/src/Graphics/GL/SGIS/Texture4D.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SGIS/Texture4D.hs
@@ -0,0 +1,36 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SGIS.Texture4D
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SGIS.Texture4D (
+  -- * Extension Support
+  glGetSGISTexture4D,
+  gl_SGIS_texture4D,
+  -- * Enums
+  pattern GL_MAX_4D_TEXTURE_SIZE_SGIS,
+  pattern GL_PACK_IMAGE_DEPTH_SGIS,
+  pattern GL_PACK_SKIP_VOLUMES_SGIS,
+  pattern GL_PROXY_TEXTURE_4D_SGIS,
+  pattern GL_TEXTURE_4DSIZE_SGIS,
+  pattern GL_TEXTURE_4D_BINDING_SGIS,
+  pattern GL_TEXTURE_4D_SGIS,
+  pattern GL_TEXTURE_WRAP_Q_SGIS,
+  pattern GL_UNPACK_IMAGE_DEPTH_SGIS,
+  pattern GL_UNPACK_SKIP_VOLUMES_SGIS,
+  -- * Functions
+  glTexImage4DSGIS,
+  glTexSubImage4DSGIS
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/SGIS/TextureBorderClamp.hs b/src/Graphics/GL/SGIS/TextureBorderClamp.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SGIS/TextureBorderClamp.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SGIS.TextureBorderClamp
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SGIS.TextureBorderClamp (
+  -- * Extension Support
+  glGetSGISTextureBorderClamp,
+  gl_SGIS_texture_border_clamp,
+  -- * Enums
+  pattern GL_CLAMP_TO_BORDER_SGIS
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/SGIS/TextureColorMask.hs b/src/Graphics/GL/SGIS/TextureColorMask.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SGIS/TextureColorMask.hs
@@ -0,0 +1,26 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SGIS.TextureColorMask
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SGIS.TextureColorMask (
+  -- * Extension Support
+  glGetSGISTextureColorMask,
+  gl_SGIS_texture_color_mask,
+  -- * Enums
+  pattern GL_TEXTURE_COLOR_WRITEMASK_SGIS,
+  -- * Functions
+  glTextureColorMaskSGIS
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/SGIS/TextureEdgeClamp.hs b/src/Graphics/GL/SGIS/TextureEdgeClamp.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SGIS/TextureEdgeClamp.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SGIS.TextureEdgeClamp
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SGIS.TextureEdgeClamp (
+  -- * Extension Support
+  glGetSGISTextureEdgeClamp,
+  gl_SGIS_texture_edge_clamp,
+  -- * Enums
+  pattern GL_CLAMP_TO_EDGE_SGIS
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/SGIS/TextureFilter4.hs b/src/Graphics/GL/SGIS/TextureFilter4.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SGIS/TextureFilter4.hs
@@ -0,0 +1,28 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SGIS.TextureFilter4
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SGIS.TextureFilter4 (
+  -- * Extension Support
+  glGetSGISTextureFilter4,
+  gl_SGIS_texture_filter4,
+  -- * Enums
+  pattern GL_FILTER4_SGIS,
+  pattern GL_TEXTURE_FILTER4_SIZE_SGIS,
+  -- * Functions
+  glGetTexFilterFuncSGIS,
+  glTexFilterFuncSGIS
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/SGIS/TextureLOD.hs b/src/Graphics/GL/SGIS/TextureLOD.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SGIS/TextureLOD.hs
@@ -0,0 +1,26 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SGIS.TextureLOD
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SGIS.TextureLOD (
+  -- * Extension Support
+  glGetSGISTextureLOD,
+  gl_SGIS_texture_lod,
+  -- * Enums
+  pattern GL_TEXTURE_BASE_LEVEL_SGIS,
+  pattern GL_TEXTURE_MAX_LEVEL_SGIS,
+  pattern GL_TEXTURE_MAX_LOD_SGIS,
+  pattern GL_TEXTURE_MIN_LOD_SGIS
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/SGIS/TextureSelect.hs b/src/Graphics/GL/SGIS/TextureSelect.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SGIS/TextureSelect.hs
@@ -0,0 +1,44 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SGIS.TextureSelect
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SGIS.TextureSelect (
+  -- * Extension Support
+  glGetSGISTextureSelect,
+  gl_SGIS_texture_select,
+  -- * Enums
+  pattern GL_DUAL_ALPHA12_SGIS,
+  pattern GL_DUAL_ALPHA16_SGIS,
+  pattern GL_DUAL_ALPHA4_SGIS,
+  pattern GL_DUAL_ALPHA8_SGIS,
+  pattern GL_DUAL_INTENSITY12_SGIS,
+  pattern GL_DUAL_INTENSITY16_SGIS,
+  pattern GL_DUAL_INTENSITY4_SGIS,
+  pattern GL_DUAL_INTENSITY8_SGIS,
+  pattern GL_DUAL_LUMINANCE12_SGIS,
+  pattern GL_DUAL_LUMINANCE16_SGIS,
+  pattern GL_DUAL_LUMINANCE4_SGIS,
+  pattern GL_DUAL_LUMINANCE8_SGIS,
+  pattern GL_DUAL_LUMINANCE_ALPHA4_SGIS,
+  pattern GL_DUAL_LUMINANCE_ALPHA8_SGIS,
+  pattern GL_DUAL_TEXTURE_SELECT_SGIS,
+  pattern GL_QUAD_ALPHA4_SGIS,
+  pattern GL_QUAD_ALPHA8_SGIS,
+  pattern GL_QUAD_INTENSITY4_SGIS,
+  pattern GL_QUAD_INTENSITY8_SGIS,
+  pattern GL_QUAD_LUMINANCE4_SGIS,
+  pattern GL_QUAD_LUMINANCE8_SGIS,
+  pattern GL_QUAD_TEXTURE_SELECT_SGIS
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/SGIX.hs b/src/Graphics/GL/SGIX.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SGIX.hs
@@ -0,0 +1,89 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SGIX
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- A convenience module, combining all raw modules containing SGIX extensions.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SGIX (
+  module Graphics.GL.SGIX.Async,
+  module Graphics.GL.SGIX.AsyncHistogram,
+  module Graphics.GL.SGIX.AsyncPixel,
+  module Graphics.GL.SGIX.BlendAlphaMinmax,
+  module Graphics.GL.SGIX.CalligraphicFragment,
+  module Graphics.GL.SGIX.Clipmap,
+  module Graphics.GL.SGIX.ConvolutionAccuracy,
+  module Graphics.GL.SGIX.DepthTexture,
+  module Graphics.GL.SGIX.FlushRaster,
+  module Graphics.GL.SGIX.FogOffset,
+  module Graphics.GL.SGIX.FragmentLighting,
+  module Graphics.GL.SGIX.Framezoom,
+  module Graphics.GL.SGIX.IglooInterface,
+  module Graphics.GL.SGIX.Instruments,
+  module Graphics.GL.SGIX.Interlace,
+  module Graphics.GL.SGIX.IrInstrument1,
+  module Graphics.GL.SGIX.ListPriority,
+  module Graphics.GL.SGIX.PixelTexture,
+  module Graphics.GL.SGIX.PixelTiles,
+  module Graphics.GL.SGIX.PolynomialFFD,
+  module Graphics.GL.SGIX.ReferencePlane,
+  module Graphics.GL.SGIX.Resample,
+  module Graphics.GL.SGIX.ScalebiasHint,
+  module Graphics.GL.SGIX.Shadow,
+  module Graphics.GL.SGIX.ShadowAmbient,
+  module Graphics.GL.SGIX.Sprite,
+  module Graphics.GL.SGIX.Subsample,
+  module Graphics.GL.SGIX.TagSampleBuffer,
+  module Graphics.GL.SGIX.TextureAddEnv,
+  module Graphics.GL.SGIX.TextureCoordinateClamp,
+  module Graphics.GL.SGIX.TextureLODBias,
+  module Graphics.GL.SGIX.TextureMultiBuffer,
+  module Graphics.GL.SGIX.TextureScaleBias,
+  module Graphics.GL.SGIX.VertexPreclip,
+  module Graphics.GL.SGIX.YCrCb,
+  module Graphics.GL.SGIX.YCrCbA
+) where
+
+import Graphics.GL.SGIX.Async
+import Graphics.GL.SGIX.AsyncHistogram
+import Graphics.GL.SGIX.AsyncPixel
+import Graphics.GL.SGIX.BlendAlphaMinmax
+import Graphics.GL.SGIX.CalligraphicFragment
+import Graphics.GL.SGIX.Clipmap
+import Graphics.GL.SGIX.ConvolutionAccuracy
+import Graphics.GL.SGIX.DepthTexture
+import Graphics.GL.SGIX.FlushRaster
+import Graphics.GL.SGIX.FogOffset
+import Graphics.GL.SGIX.FragmentLighting
+import Graphics.GL.SGIX.Framezoom
+import Graphics.GL.SGIX.IglooInterface
+import Graphics.GL.SGIX.Instruments
+import Graphics.GL.SGIX.Interlace
+import Graphics.GL.SGIX.IrInstrument1
+import Graphics.GL.SGIX.ListPriority
+import Graphics.GL.SGIX.PixelTexture
+import Graphics.GL.SGIX.PixelTiles
+import Graphics.GL.SGIX.PolynomialFFD
+import Graphics.GL.SGIX.ReferencePlane
+import Graphics.GL.SGIX.Resample
+import Graphics.GL.SGIX.ScalebiasHint
+import Graphics.GL.SGIX.Shadow
+import Graphics.GL.SGIX.ShadowAmbient
+import Graphics.GL.SGIX.Sprite
+import Graphics.GL.SGIX.Subsample
+import Graphics.GL.SGIX.TagSampleBuffer
+import Graphics.GL.SGIX.TextureAddEnv
+import Graphics.GL.SGIX.TextureCoordinateClamp
+import Graphics.GL.SGIX.TextureLODBias
+import Graphics.GL.SGIX.TextureMultiBuffer
+import Graphics.GL.SGIX.TextureScaleBias
+import Graphics.GL.SGIX.VertexPreclip
+import Graphics.GL.SGIX.YCrCb
+import Graphics.GL.SGIX.YCrCbA
diff --git a/src/Graphics/GL/SGIX/Async.hs b/src/Graphics/GL/SGIX/Async.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SGIX/Async.hs
@@ -0,0 +1,31 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SGIX.Async
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SGIX.Async (
+  -- * Extension Support
+  glGetSGIXAsync,
+  gl_SGIX_async,
+  -- * Enums
+  pattern GL_ASYNC_MARKER_SGIX,
+  -- * Functions
+  glAsyncMarkerSGIX,
+  glDeleteAsyncMarkersSGIX,
+  glFinishAsyncSGIX,
+  glGenAsyncMarkersSGIX,
+  glIsAsyncMarkerSGIX,
+  glPollAsyncSGIX
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/SGIX/AsyncHistogram.hs b/src/Graphics/GL/SGIX/AsyncHistogram.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SGIX/AsyncHistogram.hs
@@ -0,0 +1,24 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SGIX.AsyncHistogram
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SGIX.AsyncHistogram (
+  -- * Extension Support
+  glGetSGIXAsyncHistogram,
+  gl_SGIX_async_histogram,
+  -- * Enums
+  pattern GL_ASYNC_HISTOGRAM_SGIX,
+  pattern GL_MAX_ASYNC_HISTOGRAM_SGIX
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/SGIX/AsyncPixel.hs b/src/Graphics/GL/SGIX/AsyncPixel.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SGIX/AsyncPixel.hs
@@ -0,0 +1,28 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SGIX.AsyncPixel
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SGIX.AsyncPixel (
+  -- * Extension Support
+  glGetSGIXAsyncPixel,
+  gl_SGIX_async_pixel,
+  -- * Enums
+  pattern GL_ASYNC_DRAW_PIXELS_SGIX,
+  pattern GL_ASYNC_READ_PIXELS_SGIX,
+  pattern GL_ASYNC_TEX_IMAGE_SGIX,
+  pattern GL_MAX_ASYNC_DRAW_PIXELS_SGIX,
+  pattern GL_MAX_ASYNC_READ_PIXELS_SGIX,
+  pattern GL_MAX_ASYNC_TEX_IMAGE_SGIX
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/SGIX/BlendAlphaMinmax.hs b/src/Graphics/GL/SGIX/BlendAlphaMinmax.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SGIX/BlendAlphaMinmax.hs
@@ -0,0 +1,24 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SGIX.BlendAlphaMinmax
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SGIX.BlendAlphaMinmax (
+  -- * Extension Support
+  glGetSGIXBlendAlphaMinmax,
+  gl_SGIX_blend_alpha_minmax,
+  -- * Enums
+  pattern GL_ALPHA_MAX_SGIX,
+  pattern GL_ALPHA_MIN_SGIX
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/SGIX/CalligraphicFragment.hs b/src/Graphics/GL/SGIX/CalligraphicFragment.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SGIX/CalligraphicFragment.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SGIX.CalligraphicFragment
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SGIX.CalligraphicFragment (
+  -- * Extension Support
+  glGetSGIXCalligraphicFragment,
+  gl_SGIX_calligraphic_fragment,
+  -- * Enums
+  pattern GL_CALLIGRAPHIC_FRAGMENT_SGIX
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/SGIX/Clipmap.hs b/src/Graphics/GL/SGIX/Clipmap.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SGIX/Clipmap.hs
@@ -0,0 +1,34 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SGIX.Clipmap
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SGIX.Clipmap (
+  -- * Extension Support
+  glGetSGIXClipmap,
+  gl_SGIX_clipmap,
+  -- * Enums
+  pattern GL_LINEAR_CLIPMAP_LINEAR_SGIX,
+  pattern GL_LINEAR_CLIPMAP_NEAREST_SGIX,
+  pattern GL_MAX_CLIPMAP_DEPTH_SGIX,
+  pattern GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX,
+  pattern GL_NEAREST_CLIPMAP_LINEAR_SGIX,
+  pattern GL_NEAREST_CLIPMAP_NEAREST_SGIX,
+  pattern GL_TEXTURE_CLIPMAP_CENTER_SGIX,
+  pattern GL_TEXTURE_CLIPMAP_DEPTH_SGIX,
+  pattern GL_TEXTURE_CLIPMAP_FRAME_SGIX,
+  pattern GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX,
+  pattern GL_TEXTURE_CLIPMAP_OFFSET_SGIX,
+  pattern GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/SGIX/ConvolutionAccuracy.hs b/src/Graphics/GL/SGIX/ConvolutionAccuracy.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SGIX/ConvolutionAccuracy.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SGIX.ConvolutionAccuracy
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SGIX.ConvolutionAccuracy (
+  -- * Extension Support
+  glGetSGIXConvolutionAccuracy,
+  gl_SGIX_convolution_accuracy,
+  -- * Enums
+  pattern GL_CONVOLUTION_HINT_SGIX
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/SGIX/DepthTexture.hs b/src/Graphics/GL/SGIX/DepthTexture.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SGIX/DepthTexture.hs
@@ -0,0 +1,25 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SGIX.DepthTexture
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SGIX.DepthTexture (
+  -- * Extension Support
+  glGetSGIXDepthTexture,
+  gl_SGIX_depth_texture,
+  -- * Enums
+  pattern GL_DEPTH_COMPONENT16_SGIX,
+  pattern GL_DEPTH_COMPONENT24_SGIX,
+  pattern GL_DEPTH_COMPONENT32_SGIX
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/SGIX/FlushRaster.hs b/src/Graphics/GL/SGIX/FlushRaster.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SGIX/FlushRaster.hs
@@ -0,0 +1,22 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SGIX.FlushRaster
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SGIX.FlushRaster (
+  -- * Extension Support
+  glGetSGIXFlushRaster,
+  gl_SGIX_flush_raster,
+  -- * Functions
+  glFlushRasterSGIX
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/SGIX/FogOffset.hs b/src/Graphics/GL/SGIX/FogOffset.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SGIX/FogOffset.hs
@@ -0,0 +1,24 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SGIX.FogOffset
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SGIX.FogOffset (
+  -- * Extension Support
+  glGetSGIXFogOffset,
+  gl_SGIX_fog_offset,
+  -- * Enums
+  pattern GL_FOG_OFFSET_SGIX,
+  pattern GL_FOG_OFFSET_VALUE_SGIX
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/SGIX/FragmentLighting.hs b/src/Graphics/GL/SGIX/FragmentLighting.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SGIX/FragmentLighting.hs
@@ -0,0 +1,62 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SGIX.FragmentLighting
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SGIX.FragmentLighting (
+  -- * Extension Support
+  glGetSGIXFragmentLighting,
+  gl_SGIX_fragment_lighting,
+  -- * Enums
+  pattern GL_CURRENT_RASTER_NORMAL_SGIX,
+  pattern GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX,
+  pattern GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX,
+  pattern GL_FRAGMENT_COLOR_MATERIAL_SGIX,
+  pattern GL_FRAGMENT_LIGHT0_SGIX,
+  pattern GL_FRAGMENT_LIGHT1_SGIX,
+  pattern GL_FRAGMENT_LIGHT2_SGIX,
+  pattern GL_FRAGMENT_LIGHT3_SGIX,
+  pattern GL_FRAGMENT_LIGHT4_SGIX,
+  pattern GL_FRAGMENT_LIGHT5_SGIX,
+  pattern GL_FRAGMENT_LIGHT6_SGIX,
+  pattern GL_FRAGMENT_LIGHT7_SGIX,
+  pattern GL_FRAGMENT_LIGHTING_SGIX,
+  pattern GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX,
+  pattern GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX,
+  pattern GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX,
+  pattern GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX,
+  pattern GL_LIGHT_ENV_MODE_SGIX,
+  pattern GL_MAX_ACTIVE_LIGHTS_SGIX,
+  pattern GL_MAX_FRAGMENT_LIGHTS_SGIX,
+  -- * Functions
+  glFragmentColorMaterialSGIX,
+  glFragmentLightModelfSGIX,
+  glFragmentLightModelfvSGIX,
+  glFragmentLightModeliSGIX,
+  glFragmentLightModelivSGIX,
+  glFragmentLightfSGIX,
+  glFragmentLightfvSGIX,
+  glFragmentLightiSGIX,
+  glFragmentLightivSGIX,
+  glFragmentMaterialfSGIX,
+  glFragmentMaterialfvSGIX,
+  glFragmentMaterialiSGIX,
+  glFragmentMaterialivSGIX,
+  glGetFragmentLightfvSGIX,
+  glGetFragmentLightivSGIX,
+  glGetFragmentMaterialfvSGIX,
+  glGetFragmentMaterialivSGIX,
+  glLightEnviSGIX
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/SGIX/Framezoom.hs b/src/Graphics/GL/SGIX/Framezoom.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SGIX/Framezoom.hs
@@ -0,0 +1,28 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SGIX.Framezoom
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SGIX.Framezoom (
+  -- * Extension Support
+  glGetSGIXFramezoom,
+  gl_SGIX_framezoom,
+  -- * Enums
+  pattern GL_FRAMEZOOM_FACTOR_SGIX,
+  pattern GL_FRAMEZOOM_SGIX,
+  pattern GL_MAX_FRAMEZOOM_FACTOR_SGIX,
+  -- * Functions
+  glFrameZoomSGIX
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/SGIX/IglooInterface.hs b/src/Graphics/GL/SGIX/IglooInterface.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SGIX/IglooInterface.hs
@@ -0,0 +1,22 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SGIX.IglooInterface
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SGIX.IglooInterface (
+  -- * Extension Support
+  glGetSGIXIglooInterface,
+  gl_SGIX_igloo_interface,
+  -- * Functions
+  glIglooInterfaceSGIX
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/SGIX/Instruments.hs b/src/Graphics/GL/SGIX/Instruments.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SGIX/Instruments.hs
@@ -0,0 +1,32 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SGIX.Instruments
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SGIX.Instruments (
+  -- * Extension Support
+  glGetSGIXInstruments,
+  gl_SGIX_instruments,
+  -- * Enums
+  pattern GL_INSTRUMENT_BUFFER_POINTER_SGIX,
+  pattern GL_INSTRUMENT_MEASUREMENTS_SGIX,
+  -- * Functions
+  glGetInstrumentsSGIX,
+  glInstrumentsBufferSGIX,
+  glPollInstrumentsSGIX,
+  glReadInstrumentsSGIX,
+  glStartInstrumentsSGIX,
+  glStopInstrumentsSGIX
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/SGIX/Interlace.hs b/src/Graphics/GL/SGIX/Interlace.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SGIX/Interlace.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SGIX.Interlace
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SGIX.Interlace (
+  -- * Extension Support
+  glGetSGIXInterlace,
+  gl_SGIX_interlace,
+  -- * Enums
+  pattern GL_INTERLACE_SGIX
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/SGIX/IrInstrument1.hs b/src/Graphics/GL/SGIX/IrInstrument1.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SGIX/IrInstrument1.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SGIX.IrInstrument1
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SGIX.IrInstrument1 (
+  -- * Extension Support
+  glGetSGIXIrInstrument1,
+  gl_SGIX_ir_instrument1,
+  -- * Enums
+  pattern GL_IR_INSTRUMENT1_SGIX
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/SGIX/ListPriority.hs b/src/Graphics/GL/SGIX/ListPriority.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SGIX/ListPriority.hs
@@ -0,0 +1,31 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SGIX.ListPriority
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SGIX.ListPriority (
+  -- * Extension Support
+  glGetSGIXListPriority,
+  gl_SGIX_list_priority,
+  -- * Enums
+  pattern GL_LIST_PRIORITY_SGIX,
+  -- * Functions
+  glGetListParameterfvSGIX,
+  glGetListParameterivSGIX,
+  glListParameterfSGIX,
+  glListParameterfvSGIX,
+  glListParameteriSGIX,
+  glListParameterivSGIX
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/SGIX/PixelTexture.hs b/src/Graphics/GL/SGIX/PixelTexture.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SGIX/PixelTexture.hs
@@ -0,0 +1,27 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SGIX.PixelTexture
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SGIX.PixelTexture (
+  -- * Extension Support
+  glGetSGIXPixelTexture,
+  gl_SGIX_pixel_texture,
+  -- * Enums
+  pattern GL_PIXEL_TEX_GEN_MODE_SGIX,
+  pattern GL_PIXEL_TEX_GEN_SGIX,
+  -- * Functions
+  glPixelTexGenSGIX
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/SGIX/PixelTiles.hs b/src/Graphics/GL/SGIX/PixelTiles.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SGIX/PixelTiles.hs
@@ -0,0 +1,30 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SGIX.PixelTiles
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SGIX.PixelTiles (
+  -- * Extension Support
+  glGetSGIXPixelTiles,
+  gl_SGIX_pixel_tiles,
+  -- * Enums
+  pattern GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX,
+  pattern GL_PIXEL_TILE_CACHE_INCREMENT_SGIX,
+  pattern GL_PIXEL_TILE_CACHE_SIZE_SGIX,
+  pattern GL_PIXEL_TILE_GRID_DEPTH_SGIX,
+  pattern GL_PIXEL_TILE_GRID_HEIGHT_SGIX,
+  pattern GL_PIXEL_TILE_GRID_WIDTH_SGIX,
+  pattern GL_PIXEL_TILE_HEIGHT_SGIX,
+  pattern GL_PIXEL_TILE_WIDTH_SGIX
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/SGIX/PolynomialFFD.hs b/src/Graphics/GL/SGIX/PolynomialFFD.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SGIX/PolynomialFFD.hs
@@ -0,0 +1,34 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SGIX.PolynomialFFD
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SGIX.PolynomialFFD (
+  -- * Extension Support
+  glGetSGIXPolynomialFFD,
+  gl_SGIX_polynomial_ffd,
+  -- * Enums
+  pattern GL_DEFORMATIONS_MASK_SGIX,
+  pattern GL_GEOMETRY_DEFORMATION_BIT_SGIX,
+  pattern GL_GEOMETRY_DEFORMATION_SGIX,
+  pattern GL_MAX_DEFORMATION_ORDER_SGIX,
+  pattern GL_TEXTURE_DEFORMATION_BIT_SGIX,
+  pattern GL_TEXTURE_DEFORMATION_SGIX,
+  -- * Functions
+  glDeformSGIX,
+  glDeformationMap3dSGIX,
+  glDeformationMap3fSGIX,
+  glLoadIdentityDeformationMapSGIX
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/SGIX/ReferencePlane.hs b/src/Graphics/GL/SGIX/ReferencePlane.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SGIX/ReferencePlane.hs
@@ -0,0 +1,27 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SGIX.ReferencePlane
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SGIX.ReferencePlane (
+  -- * Extension Support
+  glGetSGIXReferencePlane,
+  gl_SGIX_reference_plane,
+  -- * Enums
+  pattern GL_REFERENCE_PLANE_EQUATION_SGIX,
+  pattern GL_REFERENCE_PLANE_SGIX,
+  -- * Functions
+  glReferencePlaneSGIX
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/SGIX/Resample.hs b/src/Graphics/GL/SGIX/Resample.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SGIX/Resample.hs
@@ -0,0 +1,27 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SGIX.Resample
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SGIX.Resample (
+  -- * Extension Support
+  glGetSGIXResample,
+  gl_SGIX_resample,
+  -- * Enums
+  pattern GL_PACK_RESAMPLE_SGIX,
+  pattern GL_RESAMPLE_DECIMATE_SGIX,
+  pattern GL_RESAMPLE_REPLICATE_SGIX,
+  pattern GL_RESAMPLE_ZERO_FILL_SGIX,
+  pattern GL_UNPACK_RESAMPLE_SGIX
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/SGIX/ScalebiasHint.hs b/src/Graphics/GL/SGIX/ScalebiasHint.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SGIX/ScalebiasHint.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SGIX.ScalebiasHint
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SGIX.ScalebiasHint (
+  -- * Extension Support
+  glGetSGIXScalebiasHint,
+  gl_SGIX_scalebias_hint,
+  -- * Enums
+  pattern GL_SCALEBIAS_HINT_SGIX
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/SGIX/Shadow.hs b/src/Graphics/GL/SGIX/Shadow.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SGIX/Shadow.hs
@@ -0,0 +1,26 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SGIX.Shadow
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SGIX.Shadow (
+  -- * Extension Support
+  glGetSGIXShadow,
+  gl_SGIX_shadow,
+  -- * Enums
+  pattern GL_TEXTURE_COMPARE_OPERATOR_SGIX,
+  pattern GL_TEXTURE_COMPARE_SGIX,
+  pattern GL_TEXTURE_GEQUAL_R_SGIX,
+  pattern GL_TEXTURE_LEQUAL_R_SGIX
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/SGIX/ShadowAmbient.hs b/src/Graphics/GL/SGIX/ShadowAmbient.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SGIX/ShadowAmbient.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SGIX.ShadowAmbient
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SGIX.ShadowAmbient (
+  -- * Extension Support
+  glGetSGIXShadowAmbient,
+  gl_SGIX_shadow_ambient,
+  -- * Enums
+  pattern GL_SHADOW_AMBIENT_SGIX
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/SGIX/Sprite.hs b/src/Graphics/GL/SGIX/Sprite.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SGIX/Sprite.hs
@@ -0,0 +1,35 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SGIX.Sprite
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SGIX.Sprite (
+  -- * Extension Support
+  glGetSGIXSprite,
+  gl_SGIX_sprite,
+  -- * Enums
+  pattern GL_SPRITE_AXIAL_SGIX,
+  pattern GL_SPRITE_AXIS_SGIX,
+  pattern GL_SPRITE_EYE_ALIGNED_SGIX,
+  pattern GL_SPRITE_MODE_SGIX,
+  pattern GL_SPRITE_OBJECT_ALIGNED_SGIX,
+  pattern GL_SPRITE_SGIX,
+  pattern GL_SPRITE_TRANSLATION_SGIX,
+  -- * Functions
+  glSpriteParameterfSGIX,
+  glSpriteParameterfvSGIX,
+  glSpriteParameteriSGIX,
+  glSpriteParameterivSGIX
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/SGIX/Subsample.hs b/src/Graphics/GL/SGIX/Subsample.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SGIX/Subsample.hs
@@ -0,0 +1,27 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SGIX.Subsample
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SGIX.Subsample (
+  -- * Extension Support
+  glGetSGIXSubsample,
+  gl_SGIX_subsample,
+  -- * Enums
+  pattern GL_PACK_SUBSAMPLE_RATE_SGIX,
+  pattern GL_PIXEL_SUBSAMPLE_2424_SGIX,
+  pattern GL_PIXEL_SUBSAMPLE_4242_SGIX,
+  pattern GL_PIXEL_SUBSAMPLE_4444_SGIX,
+  pattern GL_UNPACK_SUBSAMPLE_RATE_SGIX
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/SGIX/TagSampleBuffer.hs b/src/Graphics/GL/SGIX/TagSampleBuffer.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SGIX/TagSampleBuffer.hs
@@ -0,0 +1,22 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SGIX.TagSampleBuffer
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SGIX.TagSampleBuffer (
+  -- * Extension Support
+  glGetSGIXTagSampleBuffer,
+  gl_SGIX_tag_sample_buffer,
+  -- * Functions
+  glTagSampleBufferSGIX
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/SGIX/TextureAddEnv.hs b/src/Graphics/GL/SGIX/TextureAddEnv.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SGIX/TextureAddEnv.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SGIX.TextureAddEnv
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SGIX.TextureAddEnv (
+  -- * Extension Support
+  glGetSGIXTextureAddEnv,
+  gl_SGIX_texture_add_env,
+  -- * Enums
+  pattern GL_TEXTURE_ENV_BIAS_SGIX
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/SGIX/TextureCoordinateClamp.hs b/src/Graphics/GL/SGIX/TextureCoordinateClamp.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SGIX/TextureCoordinateClamp.hs
@@ -0,0 +1,25 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SGIX.TextureCoordinateClamp
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SGIX.TextureCoordinateClamp (
+  -- * Extension Support
+  glGetSGIXTextureCoordinateClamp,
+  gl_SGIX_texture_coordinate_clamp,
+  -- * Enums
+  pattern GL_TEXTURE_MAX_CLAMP_R_SGIX,
+  pattern GL_TEXTURE_MAX_CLAMP_S_SGIX,
+  pattern GL_TEXTURE_MAX_CLAMP_T_SGIX
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/SGIX/TextureLODBias.hs b/src/Graphics/GL/SGIX/TextureLODBias.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SGIX/TextureLODBias.hs
@@ -0,0 +1,25 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SGIX.TextureLODBias
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SGIX.TextureLODBias (
+  -- * Extension Support
+  glGetSGIXTextureLODBias,
+  gl_SGIX_texture_lod_bias,
+  -- * Enums
+  pattern GL_TEXTURE_LOD_BIAS_R_SGIX,
+  pattern GL_TEXTURE_LOD_BIAS_S_SGIX,
+  pattern GL_TEXTURE_LOD_BIAS_T_SGIX
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/SGIX/TextureMultiBuffer.hs b/src/Graphics/GL/SGIX/TextureMultiBuffer.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SGIX/TextureMultiBuffer.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SGIX.TextureMultiBuffer
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SGIX.TextureMultiBuffer (
+  -- * Extension Support
+  glGetSGIXTextureMultiBuffer,
+  gl_SGIX_texture_multi_buffer,
+  -- * Enums
+  pattern GL_TEXTURE_MULTI_BUFFER_HINT_SGIX
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/SGIX/TextureScaleBias.hs b/src/Graphics/GL/SGIX/TextureScaleBias.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SGIX/TextureScaleBias.hs
@@ -0,0 +1,26 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SGIX.TextureScaleBias
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SGIX.TextureScaleBias (
+  -- * Extension Support
+  glGetSGIXTextureScaleBias,
+  gl_SGIX_texture_scale_bias,
+  -- * Enums
+  pattern GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX,
+  pattern GL_POST_TEXTURE_FILTER_BIAS_SGIX,
+  pattern GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX,
+  pattern GL_POST_TEXTURE_FILTER_SCALE_SGIX
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/SGIX/VertexPreclip.hs b/src/Graphics/GL/SGIX/VertexPreclip.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SGIX/VertexPreclip.hs
@@ -0,0 +1,24 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SGIX.VertexPreclip
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SGIX.VertexPreclip (
+  -- * Extension Support
+  glGetSGIXVertexPreclip,
+  gl_SGIX_vertex_preclip,
+  -- * Enums
+  pattern GL_VERTEX_PRECLIP_HINT_SGIX,
+  pattern GL_VERTEX_PRECLIP_SGIX
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/SGIX/YCrCb.hs b/src/Graphics/GL/SGIX/YCrCb.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SGIX/YCrCb.hs
@@ -0,0 +1,24 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SGIX.YCrCb
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SGIX.YCrCb (
+  -- * Extension Support
+  glGetSGIXYCrCb,
+  gl_SGIX_ycrcb,
+  -- * Enums
+  pattern GL_YCRCB_422_SGIX,
+  pattern GL_YCRCB_444_SGIX
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/SGIX/YCrCbA.hs b/src/Graphics/GL/SGIX/YCrCbA.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SGIX/YCrCbA.hs
@@ -0,0 +1,24 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SGIX.YCrCbA
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SGIX.YCrCbA (
+  -- * Extension Support
+  glGetSGIXYCrCbA,
+  gl_SGIX_ycrcba,
+  -- * Enums
+  pattern GL_YCRCBA_SGIX,
+  pattern GL_YCRCB_SGIX
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/SUN.hs b/src/Graphics/GL/SUN.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SUN.hs
@@ -0,0 +1,29 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SUN
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- A convenience module, combining all raw modules containing SUN extensions.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SUN (
+  module Graphics.GL.SUN.ConvolutionBorderModes,
+  module Graphics.GL.SUN.GlobalAlpha,
+  module Graphics.GL.SUN.MeshArray,
+  module Graphics.GL.SUN.SliceAccum,
+  module Graphics.GL.SUN.TriangleList,
+  module Graphics.GL.SUN.Vertex
+) where
+
+import Graphics.GL.SUN.ConvolutionBorderModes
+import Graphics.GL.SUN.GlobalAlpha
+import Graphics.GL.SUN.MeshArray
+import Graphics.GL.SUN.SliceAccum
+import Graphics.GL.SUN.TriangleList
+import Graphics.GL.SUN.Vertex
diff --git a/src/Graphics/GL/SUN/ConvolutionBorderModes.hs b/src/Graphics/GL/SUN/ConvolutionBorderModes.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SUN/ConvolutionBorderModes.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SUN.ConvolutionBorderModes
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SUN.ConvolutionBorderModes (
+  -- * Extension Support
+  glGetSUNConvolutionBorderModes,
+  gl_SUN_convolution_border_modes,
+  -- * Enums
+  pattern GL_WRAP_BORDER_SUN
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/SUN/GlobalAlpha.hs b/src/Graphics/GL/SUN/GlobalAlpha.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SUN/GlobalAlpha.hs
@@ -0,0 +1,34 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SUN.GlobalAlpha
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SUN.GlobalAlpha (
+  -- * Extension Support
+  glGetSUNGlobalAlpha,
+  gl_SUN_global_alpha,
+  -- * Enums
+  pattern GL_GLOBAL_ALPHA_FACTOR_SUN,
+  pattern GL_GLOBAL_ALPHA_SUN,
+  -- * Functions
+  glGlobalAlphaFactorbSUN,
+  glGlobalAlphaFactordSUN,
+  glGlobalAlphaFactorfSUN,
+  glGlobalAlphaFactoriSUN,
+  glGlobalAlphaFactorsSUN,
+  glGlobalAlphaFactorubSUN,
+  glGlobalAlphaFactoruiSUN,
+  glGlobalAlphaFactorusSUN
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/SUN/MeshArray.hs b/src/Graphics/GL/SUN/MeshArray.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SUN/MeshArray.hs
@@ -0,0 +1,27 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SUN.MeshArray
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SUN.MeshArray (
+  -- * Extension Support
+  glGetSUNMeshArray,
+  gl_SUN_mesh_array,
+  -- * Enums
+  pattern GL_QUAD_MESH_SUN,
+  pattern GL_TRIANGLE_MESH_SUN,
+  -- * Functions
+  glDrawMeshArraysSUN
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/SUN/SliceAccum.hs b/src/Graphics/GL/SUN/SliceAccum.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SUN/SliceAccum.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SUN.SliceAccum
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SUN.SliceAccum (
+  -- * Extension Support
+  glGetSUNSliceAccum,
+  gl_SUN_slice_accum,
+  -- * Enums
+  pattern GL_SLICE_ACCUM_SUN
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/SUN/TriangleList.hs b/src/Graphics/GL/SUN/TriangleList.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SUN/TriangleList.hs
@@ -0,0 +1,48 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SUN.TriangleList
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SUN.TriangleList (
+  -- * Extension Support
+  glGetSUNTriangleList,
+  gl_SUN_triangle_list,
+  -- * Enums
+  pattern GL_R1UI_C3F_V3F_SUN,
+  pattern GL_R1UI_C4F_N3F_V3F_SUN,
+  pattern GL_R1UI_C4UB_V3F_SUN,
+  pattern GL_R1UI_N3F_V3F_SUN,
+  pattern GL_R1UI_T2F_C4F_N3F_V3F_SUN,
+  pattern GL_R1UI_T2F_N3F_V3F_SUN,
+  pattern GL_R1UI_T2F_V3F_SUN,
+  pattern GL_R1UI_V3F_SUN,
+  pattern GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN,
+  pattern GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN,
+  pattern GL_REPLACEMENT_CODE_ARRAY_SUN,
+  pattern GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN,
+  pattern GL_REPLACEMENT_CODE_SUN,
+  pattern GL_REPLACE_MIDDLE_SUN,
+  pattern GL_REPLACE_OLDEST_SUN,
+  pattern GL_RESTART_SUN,
+  pattern GL_TRIANGLE_LIST_SUN,
+  -- * Functions
+  glReplacementCodePointerSUN,
+  glReplacementCodeubSUN,
+  glReplacementCodeubvSUN,
+  glReplacementCodeuiSUN,
+  glReplacementCodeuivSUN,
+  glReplacementCodeusSUN,
+  glReplacementCodeusvSUN
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/SUN/Vertex.hs b/src/Graphics/GL/SUN/Vertex.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SUN/Vertex.hs
@@ -0,0 +1,61 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SUN.Vertex
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SUN.Vertex (
+  -- * Extension Support
+  glGetSUNVertex,
+  gl_SUN_vertex,
+  -- * Functions
+  glColor3fVertex3fSUN,
+  glColor3fVertex3fvSUN,
+  glColor4fNormal3fVertex3fSUN,
+  glColor4fNormal3fVertex3fvSUN,
+  glColor4ubVertex2fSUN,
+  glColor4ubVertex2fvSUN,
+  glColor4ubVertex3fSUN,
+  glColor4ubVertex3fvSUN,
+  glNormal3fVertex3fSUN,
+  glNormal3fVertex3fvSUN,
+  glReplacementCodeuiColor3fVertex3fSUN,
+  glReplacementCodeuiColor3fVertex3fvSUN,
+  glReplacementCodeuiColor4fNormal3fVertex3fSUN,
+  glReplacementCodeuiColor4fNormal3fVertex3fvSUN,
+  glReplacementCodeuiColor4ubVertex3fSUN,
+  glReplacementCodeuiColor4ubVertex3fvSUN,
+  glReplacementCodeuiNormal3fVertex3fSUN,
+  glReplacementCodeuiNormal3fVertex3fvSUN,
+  glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN,
+  glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN,
+  glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN,
+  glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN,
+  glReplacementCodeuiTexCoord2fVertex3fSUN,
+  glReplacementCodeuiTexCoord2fVertex3fvSUN,
+  glReplacementCodeuiVertex3fSUN,
+  glReplacementCodeuiVertex3fvSUN,
+  glTexCoord2fColor3fVertex3fSUN,
+  glTexCoord2fColor3fVertex3fvSUN,
+  glTexCoord2fColor4fNormal3fVertex3fSUN,
+  glTexCoord2fColor4fNormal3fVertex3fvSUN,
+  glTexCoord2fColor4ubVertex3fSUN,
+  glTexCoord2fColor4ubVertex3fvSUN,
+  glTexCoord2fNormal3fVertex3fSUN,
+  glTexCoord2fNormal3fVertex3fvSUN,
+  glTexCoord2fVertex3fSUN,
+  glTexCoord2fVertex3fvSUN,
+  glTexCoord4fColor4fNormal3fVertex4fSUN,
+  glTexCoord4fColor4fNormal3fVertex4fvSUN,
+  glTexCoord4fVertex4fSUN,
+  glTexCoord4fVertex4fvSUN
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/SUNX.hs b/src/Graphics/GL/SUNX.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SUNX.hs
@@ -0,0 +1,19 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SUNX
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- A convenience module, combining all raw modules containing SUNX extensions.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SUNX (
+  module Graphics.GL.SUNX.ConstantData
+) where
+
+import Graphics.GL.SUNX.ConstantData
diff --git a/src/Graphics/GL/SUNX/ConstantData.hs b/src/Graphics/GL/SUNX/ConstantData.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/SUNX/ConstantData.hs
@@ -0,0 +1,27 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.SUNX.ConstantData
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.SUNX.ConstantData (
+  -- * Extension Support
+  glGetSUNXConstantData,
+  gl_SUNX_constant_data,
+  -- * Enums
+  pattern GL_TEXTURE_CONSTANT_DATA_SUNX,
+  pattern GL_UNPACK_CONSTANT_DATA_SUNX,
+  -- * Functions
+  glFinishTextureSUNX
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ThreeDFX.hs b/src/Graphics/GL/ThreeDFX.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ThreeDFX.hs
@@ -0,0 +1,23 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ThreeDFX
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- A convenience module, combining all raw modules containing 3DFX extensions.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ThreeDFX (
+  module Graphics.GL.ThreeDFX.Multisample,
+  module Graphics.GL.ThreeDFX.Tbuffer,
+  module Graphics.GL.ThreeDFX.TextureCompressionFXT1
+) where
+
+import Graphics.GL.ThreeDFX.Multisample
+import Graphics.GL.ThreeDFX.Tbuffer
+import Graphics.GL.ThreeDFX.TextureCompressionFXT1
diff --git a/src/Graphics/GL/ThreeDFX/Multisample.hs b/src/Graphics/GL/ThreeDFX/Multisample.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ThreeDFX/Multisample.hs
@@ -0,0 +1,26 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ThreeDFX.Multisample
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ThreeDFX.Multisample (
+  -- * Extension Support
+  glGetThreeDFXMultisample,
+  gl_3DFX_multisample,
+  -- * Enums
+  pattern GL_MULTISAMPLE_3DFX,
+  pattern GL_MULTISAMPLE_BIT_3DFX,
+  pattern GL_SAMPLES_3DFX,
+  pattern GL_SAMPLE_BUFFERS_3DFX
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/ThreeDFX/Tbuffer.hs b/src/Graphics/GL/ThreeDFX/Tbuffer.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ThreeDFX/Tbuffer.hs
@@ -0,0 +1,22 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ThreeDFX.Tbuffer
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ThreeDFX.Tbuffer (
+  -- * Extension Support
+  glGetThreeDFXTbuffer,
+  gl_3DFX_tbuffer,
+  -- * Functions
+  glTbufferMask3DFX
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/ThreeDFX/TextureCompressionFXT1.hs b/src/Graphics/GL/ThreeDFX/TextureCompressionFXT1.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/ThreeDFX/TextureCompressionFXT1.hs
@@ -0,0 +1,24 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.ThreeDFX.TextureCompressionFXT1
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.ThreeDFX.TextureCompressionFXT1 (
+  -- * Extension Support
+  glGetThreeDFXTextureCompressionFXT1,
+  gl_3DFX_texture_compression_FXT1,
+  -- * Enums
+  pattern GL_COMPRESSED_RGBA_FXT1_3DFX,
+  pattern GL_COMPRESSED_RGB_FXT1_3DFX
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/Tokens.hs b/src/Graphics/GL/Tokens.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Tokens.hs
@@ -0,0 +1,11833 @@
+{-# LANGUAGE CPP, PatternSynonyms, ScopedTypeVariables #-}
+#if __GLASGOW_HASKELL__ >= 800
+{-# OPTIONS_GHC -Wno-missing-pattern-synonym-signatures #-}
+#endif
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Tokens
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- All enumeration tokens from the
+-- <http://www.opengl.org/registry/ OpenGL registry>.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Tokens where
+
+import Graphics.GL.Types
+
+pattern GL_1PASS_EXT = 0x80A1 :: GLenum
+
+pattern GL_1PASS_SGIS = 0x80A1 :: GLenum
+
+pattern GL_2D = 0x0600 :: GLenum
+
+pattern GL_2PASS_0_EXT = 0x80A2 :: GLenum
+
+pattern GL_2PASS_0_SGIS = 0x80A2 :: GLenum
+
+pattern GL_2PASS_1_EXT = 0x80A3 :: GLenum
+
+pattern GL_2PASS_1_SGIS = 0x80A3 :: GLenum
+
+pattern GL_2X_BIT_ATI = 0x00000001 :: GLbitfield
+
+pattern GL_2_BYTES = 0x1407 :: GLenum
+
+pattern GL_2_BYTES_NV = 0x1407 :: GLenum
+
+pattern GL_3D = 0x0601 :: GLenum
+
+pattern GL_3DC_XY_AMD = 0x87FA :: GLenum
+
+pattern GL_3DC_X_AMD = 0x87F9 :: GLenum
+
+pattern GL_3D_COLOR = 0x0602 :: GLenum
+
+pattern GL_3D_COLOR_TEXTURE = 0x0603 :: GLenum
+
+pattern GL_3_BYTES = 0x1408 :: GLenum
+
+pattern GL_3_BYTES_NV = 0x1408 :: GLenum
+
+pattern GL_422_AVERAGE_EXT = 0x80CE :: GLenum
+
+pattern GL_422_EXT = 0x80CC :: GLenum
+
+pattern GL_422_REV_AVERAGE_EXT = 0x80CF :: GLenum
+
+pattern GL_422_REV_EXT = 0x80CD :: GLenum
+
+pattern GL_4D_COLOR_TEXTURE = 0x0604 :: GLenum
+
+pattern GL_4PASS_0_EXT = 0x80A4 :: GLenum
+
+pattern GL_4PASS_0_SGIS = 0x80A4 :: GLenum
+
+pattern GL_4PASS_1_EXT = 0x80A5 :: GLenum
+
+pattern GL_4PASS_1_SGIS = 0x80A5 :: GLenum
+
+pattern GL_4PASS_2_EXT = 0x80A6 :: GLenum
+
+pattern GL_4PASS_2_SGIS = 0x80A6 :: GLenum
+
+pattern GL_4PASS_3_EXT = 0x80A7 :: GLenum
+
+pattern GL_4PASS_3_SGIS = 0x80A7 :: GLenum
+
+pattern GL_4X_BIT_ATI = 0x00000002 :: GLbitfield
+
+pattern GL_4_BYTES = 0x1409 :: GLenum
+
+pattern GL_4_BYTES_NV = 0x1409 :: GLenum
+
+pattern GL_8X_BIT_ATI = 0x00000004 :: GLbitfield
+
+pattern GL_ABGR_EXT = 0x8000 :: GLenum
+
+pattern GL_ACCUM = 0x0100 :: GLenum
+
+pattern GL_ACCUM_ADJACENT_PAIRS_NV = 0x90AD :: GLenum
+
+pattern GL_ACCUM_ALPHA_BITS = 0x0D5B :: GLenum
+
+pattern GL_ACCUM_BLUE_BITS = 0x0D5A :: GLenum
+
+pattern GL_ACCUM_BUFFER_BIT = 0x00000200 :: GLbitfield
+
+pattern GL_ACCUM_CLEAR_VALUE = 0x0B80 :: GLenum
+
+pattern GL_ACCUM_GREEN_BITS = 0x0D59 :: GLenum
+
+pattern GL_ACCUM_RED_BITS = 0x0D58 :: GLenum
+
+pattern GL_ACTIVE_ATOMIC_COUNTER_BUFFERS = 0x92D9 :: GLenum
+
+pattern GL_ACTIVE_ATTRIBUTES = 0x8B89 :: GLenum
+
+pattern GL_ACTIVE_ATTRIBUTE_MAX_LENGTH = 0x8B8A :: GLenum
+
+pattern GL_ACTIVE_PROGRAM = 0x8259 :: GLenum
+
+pattern GL_ACTIVE_PROGRAM_EXT = 0x8B8D :: GLenum
+
+pattern GL_ACTIVE_RESOURCES = 0x92F5 :: GLenum
+
+pattern GL_ACTIVE_STENCIL_FACE_EXT = 0x8911 :: GLenum
+
+pattern GL_ACTIVE_SUBROUTINES = 0x8DE5 :: GLenum
+
+pattern GL_ACTIVE_SUBROUTINE_MAX_LENGTH = 0x8E48 :: GLenum
+
+pattern GL_ACTIVE_SUBROUTINE_UNIFORMS = 0x8DE6 :: GLenum
+
+pattern GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS = 0x8E47 :: GLenum
+
+pattern GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH = 0x8E49 :: GLenum
+
+pattern GL_ACTIVE_TEXTURE = 0x84E0 :: GLenum
+
+pattern GL_ACTIVE_TEXTURE_ARB = 0x84E0 :: GLenum
+
+pattern GL_ACTIVE_UNIFORMS = 0x8B86 :: GLenum
+
+pattern GL_ACTIVE_UNIFORM_BLOCKS = 0x8A36 :: GLenum
+
+pattern GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH = 0x8A35 :: GLenum
+
+pattern GL_ACTIVE_UNIFORM_MAX_LENGTH = 0x8B87 :: GLenum
+
+pattern GL_ACTIVE_VARIABLES = 0x9305 :: GLenum
+
+pattern GL_ACTIVE_VARYINGS_NV = 0x8C81 :: GLenum
+
+pattern GL_ACTIVE_VARYING_MAX_LENGTH_NV = 0x8C82 :: GLenum
+
+pattern GL_ACTIVE_VERTEX_UNITS_ARB = 0x86A5 :: GLenum
+
+pattern GL_ADD = 0x0104 :: GLenum
+
+pattern GL_ADD_ATI = 0x8963 :: GLenum
+
+pattern GL_ADD_BLEND_IMG = 0x8C09 :: GLenum
+
+pattern GL_ADD_SIGNED = 0x8574 :: GLenum
+
+pattern GL_ADD_SIGNED_ARB = 0x8574 :: GLenum
+
+pattern GL_ADD_SIGNED_EXT = 0x8574 :: GLenum
+
+pattern GL_ADJACENT_PAIRS_NV = 0x90AE :: GLenum
+
+pattern GL_AFFINE_2D_NV = 0x9092 :: GLenum
+
+pattern GL_AFFINE_3D_NV = 0x9094 :: GLenum
+
+pattern GL_ALIASED_LINE_WIDTH_RANGE = 0x846E :: GLenum
+
+pattern GL_ALIASED_POINT_SIZE_RANGE = 0x846D :: GLenum
+
+pattern GL_ALLOW_DRAW_FRG_HINT_PGI = 0x1A210 :: GLenum
+
+pattern GL_ALLOW_DRAW_MEM_HINT_PGI = 0x1A211 :: GLenum
+
+pattern GL_ALLOW_DRAW_OBJ_HINT_PGI = 0x1A20E :: GLenum
+
+pattern GL_ALLOW_DRAW_WIN_HINT_PGI = 0x1A20F :: GLenum
+
+pattern GL_ALL_ATTRIB_BITS = 0xFFFFFFFF :: GLbitfield
+
+pattern GL_ALL_BARRIER_BITS = 0xFFFFFFFF :: GLbitfield
+
+pattern GL_ALL_BARRIER_BITS_EXT = 0xFFFFFFFF :: GLbitfield
+
+pattern GL_ALL_COMPLETED_NV = 0x84F2 :: GLenum
+
+pattern GL_ALL_PIXELS_AMD = 0xFFFFFFFF :: GLenum
+
+pattern GL_ALL_SHADER_BITS = 0xFFFFFFFF :: GLbitfield
+
+pattern GL_ALL_SHADER_BITS_EXT = 0xFFFFFFFF :: GLbitfield
+
+pattern GL_ALL_STATIC_DATA_IBM = 103060 :: GLenum
+
+pattern GL_ALPHA = 0x1906 :: GLenum
+
+pattern GL_ALPHA12 = 0x803D :: GLenum
+
+pattern GL_ALPHA12_EXT = 0x803D :: GLenum
+
+pattern GL_ALPHA16 = 0x803E :: GLenum
+
+pattern GL_ALPHA16F_ARB = 0x881C :: GLenum
+
+pattern GL_ALPHA16F_EXT = 0x881C :: GLenum
+
+pattern GL_ALPHA16I_EXT = 0x8D8A :: GLenum
+
+pattern GL_ALPHA16UI_EXT = 0x8D78 :: GLenum
+
+pattern GL_ALPHA16_EXT = 0x803E :: GLenum
+
+pattern GL_ALPHA16_SNORM = 0x9018 :: GLenum
+
+pattern GL_ALPHA32F_ARB = 0x8816 :: GLenum
+
+pattern GL_ALPHA32F_EXT = 0x8816 :: GLenum
+
+pattern GL_ALPHA32I_EXT = 0x8D84 :: GLenum
+
+pattern GL_ALPHA32UI_EXT = 0x8D72 :: GLenum
+
+pattern GL_ALPHA4 = 0x803B :: GLenum
+
+pattern GL_ALPHA4_EXT = 0x803B :: GLenum
+
+pattern GL_ALPHA8 = 0x803C :: GLenum
+
+pattern GL_ALPHA8I_EXT = 0x8D90 :: GLenum
+
+pattern GL_ALPHA8UI_EXT = 0x8D7E :: GLenum
+
+pattern GL_ALPHA8_EXT = 0x803C :: GLenum
+
+pattern GL_ALPHA8_OES = 0x803C :: GLenum
+
+pattern GL_ALPHA8_SNORM = 0x9014 :: GLenum
+
+pattern GL_ALPHA_BIAS = 0x0D1D :: GLenum
+
+pattern GL_ALPHA_BITS = 0x0D55 :: GLenum
+
+pattern GL_ALPHA_FLOAT16_APPLE = 0x881C :: GLenum
+
+pattern GL_ALPHA_FLOAT16_ATI = 0x881C :: GLenum
+
+pattern GL_ALPHA_FLOAT32_APPLE = 0x8816 :: GLenum
+
+pattern GL_ALPHA_FLOAT32_ATI = 0x8816 :: GLenum
+
+pattern GL_ALPHA_INTEGER = 0x8D97 :: GLenum
+
+pattern GL_ALPHA_INTEGER_EXT = 0x8D97 :: GLenum
+
+pattern GL_ALPHA_MAX_CLAMP_INGR = 0x8567 :: GLenum
+
+pattern GL_ALPHA_MAX_SGIX = 0x8321 :: GLenum
+
+pattern GL_ALPHA_MIN_CLAMP_INGR = 0x8563 :: GLenum
+
+pattern GL_ALPHA_MIN_SGIX = 0x8320 :: GLenum
+
+pattern GL_ALPHA_REF_COMMAND_NV = 0x000F :: GLenum
+
+pattern GL_ALPHA_SCALE = 0x0D1C :: GLenum
+
+pattern GL_ALPHA_SNORM = 0x9010 :: GLenum
+
+pattern GL_ALPHA_TEST = 0x0BC0 :: GLenum
+
+pattern GL_ALPHA_TEST_FUNC = 0x0BC1 :: GLenum
+
+pattern GL_ALPHA_TEST_FUNC_QCOM = 0x0BC1 :: GLenum
+
+pattern GL_ALPHA_TEST_QCOM = 0x0BC0 :: GLenum
+
+pattern GL_ALPHA_TEST_REF = 0x0BC2 :: GLenum
+
+pattern GL_ALPHA_TEST_REF_QCOM = 0x0BC2 :: GLenum
+
+pattern GL_ALPHA_TO_COVERAGE_DITHER_DEFAULT_NV = 0x934D :: GLenum
+
+pattern GL_ALPHA_TO_COVERAGE_DITHER_DISABLE_NV = 0x934F :: GLenum
+
+pattern GL_ALPHA_TO_COVERAGE_DITHER_ENABLE_NV = 0x934E :: GLenum
+
+pattern GL_ALPHA_TO_COVERAGE_DITHER_MODE_NV = 0x92BF :: GLenum
+
+pattern GL_ALREADY_SIGNALED = 0x911A :: GLenum
+
+pattern GL_ALREADY_SIGNALED_APPLE = 0x911A :: GLenum
+
+pattern GL_ALWAYS = 0x0207 :: GLenum
+
+pattern GL_ALWAYS_FAST_HINT_PGI = 0x1A20C :: GLenum
+
+pattern GL_ALWAYS_SOFT_HINT_PGI = 0x1A20D :: GLenum
+
+pattern GL_AMBIENT = 0x1200 :: GLenum
+
+pattern GL_AMBIENT_AND_DIFFUSE = 0x1602 :: GLenum
+
+pattern GL_AND = 0x1501 :: GLenum
+
+pattern GL_AND_INVERTED = 0x1504 :: GLenum
+
+pattern GL_AND_REVERSE = 0x1502 :: GLenum
+
+pattern GL_ANY_SAMPLES_PASSED = 0x8C2F :: GLenum
+
+pattern GL_ANY_SAMPLES_PASSED_CONSERVATIVE = 0x8D6A :: GLenum
+
+pattern GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT = 0x8D6A :: GLenum
+
+pattern GL_ANY_SAMPLES_PASSED_EXT = 0x8C2F :: GLenum
+
+pattern GL_ARC_TO_NV = 0xFE :: GLubyte
+
+pattern GL_ARRAY_BUFFER = 0x8892 :: GLenum
+
+pattern GL_ARRAY_BUFFER_ARB = 0x8892 :: GLenum
+
+pattern GL_ARRAY_BUFFER_BINDING = 0x8894 :: GLenum
+
+pattern GL_ARRAY_BUFFER_BINDING_ARB = 0x8894 :: GLenum
+
+pattern GL_ARRAY_ELEMENT_LOCK_COUNT_EXT = 0x81A9 :: GLenum
+
+pattern GL_ARRAY_ELEMENT_LOCK_FIRST_EXT = 0x81A8 :: GLenum
+
+pattern GL_ARRAY_OBJECT_BUFFER_ATI = 0x8766 :: GLenum
+
+pattern GL_ARRAY_OBJECT_OFFSET_ATI = 0x8767 :: GLenum
+
+pattern GL_ARRAY_SIZE = 0x92FB :: GLenum
+
+pattern GL_ARRAY_STRIDE = 0x92FE :: GLenum
+
+pattern GL_ASYNC_DRAW_PIXELS_SGIX = 0x835D :: GLenum
+
+pattern GL_ASYNC_HISTOGRAM_SGIX = 0x832C :: GLenum
+
+pattern GL_ASYNC_MARKER_SGIX = 0x8329 :: GLenum
+
+pattern GL_ASYNC_READ_PIXELS_SGIX = 0x835E :: GLenum
+
+pattern GL_ASYNC_TEX_IMAGE_SGIX = 0x835C :: GLenum
+
+pattern GL_ATC_RGBA_EXPLICIT_ALPHA_AMD = 0x8C93 :: GLenum
+
+pattern GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD = 0x87EE :: GLenum
+
+pattern GL_ATC_RGB_AMD = 0x8C92 :: GLenum
+
+pattern GL_ATOMIC_COUNTER_BARRIER_BIT = 0x00001000 :: GLbitfield
+
+pattern GL_ATOMIC_COUNTER_BARRIER_BIT_EXT = 0x00001000 :: GLbitfield
+
+pattern GL_ATOMIC_COUNTER_BUFFER = 0x92C0 :: GLenum
+
+pattern GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS = 0x92C5 :: GLenum
+
+pattern GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES = 0x92C6 :: GLenum
+
+pattern GL_ATOMIC_COUNTER_BUFFER_BINDING = 0x92C1 :: GLenum
+
+pattern GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE = 0x92C4 :: GLenum
+
+pattern GL_ATOMIC_COUNTER_BUFFER_INDEX = 0x9301 :: GLenum
+
+pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER = 0x90ED :: GLenum
+
+pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER = 0x92CB :: GLenum
+
+pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER = 0x92CA :: GLenum
+
+pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_MESH_SHADER_NV = 0x959E :: GLenum
+
+pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TASK_SHADER_NV = 0x959F :: GLenum
+
+pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER = 0x92C8 :: GLenum
+
+pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x92C9 :: GLenum
+
+pattern GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER = 0x92C7 :: GLenum
+
+pattern GL_ATOMIC_COUNTER_BUFFER_SIZE = 0x92C3 :: GLenum
+
+pattern GL_ATOMIC_COUNTER_BUFFER_START = 0x92C2 :: GLenum
+
+pattern GL_ATTACHED_MEMORY_OBJECT_NV = 0x95A4 :: GLenum
+
+pattern GL_ATTACHED_MEMORY_OFFSET_NV = 0x95A5 :: GLenum
+
+pattern GL_ATTACHED_SHADERS = 0x8B85 :: GLenum
+
+pattern GL_ATTENUATION_EXT = 0x834D :: GLenum
+
+pattern GL_ATTRIBUTE_ADDRESS_COMMAND_NV = 0x0009 :: GLenum
+
+pattern GL_ATTRIB_ARRAY_POINTER_NV = 0x8645 :: GLenum
+
+pattern GL_ATTRIB_ARRAY_SIZE_NV = 0x8623 :: GLenum
+
+pattern GL_ATTRIB_ARRAY_STRIDE_NV = 0x8624 :: GLenum
+
+pattern GL_ATTRIB_ARRAY_TYPE_NV = 0x8625 :: GLenum
+
+pattern GL_ATTRIB_STACK_DEPTH = 0x0BB0 :: GLenum
+
+pattern GL_AUTO_GENERATE_MIPMAP = 0x8295 :: GLenum
+
+pattern GL_AUTO_NORMAL = 0x0D80 :: GLenum
+
+pattern GL_AUX0 = 0x0409 :: GLenum
+
+pattern GL_AUX1 = 0x040A :: GLenum
+
+pattern GL_AUX2 = 0x040B :: GLenum
+
+pattern GL_AUX3 = 0x040C :: GLenum
+
+pattern GL_AUX_BUFFERS = 0x0C00 :: GLenum
+
+pattern GL_AUX_DEPTH_STENCIL_APPLE = 0x8A14 :: GLenum
+
+pattern GL_AVERAGE_EXT = 0x8335 :: GLenum
+
+pattern GL_AVERAGE_HP = 0x8160 :: GLenum
+
+pattern GL_BACK = 0x0405 :: GLenum
+
+pattern GL_BACK_LEFT = 0x0402 :: GLenum
+
+pattern GL_BACK_NORMALS_HINT_PGI = 0x1A223 :: GLenum
+
+pattern GL_BACK_PRIMARY_COLOR_NV = 0x8C77 :: GLenum
+
+pattern GL_BACK_RIGHT = 0x0403 :: GLenum
+
+pattern GL_BACK_SECONDARY_COLOR_NV = 0x8C78 :: GLenum
+
+pattern GL_BEVEL_NV = 0x90A6 :: GLenum
+
+pattern GL_BGR = 0x80E0 :: GLenum
+
+pattern GL_BGRA = 0x80E1 :: GLenum
+
+pattern GL_BGRA8_EXT = 0x93A1 :: GLenum
+
+pattern GL_BGRA_EXT = 0x80E1 :: GLenum
+
+pattern GL_BGRA_IMG = 0x80E1 :: GLenum
+
+pattern GL_BGRA_INTEGER = 0x8D9B :: GLenum
+
+pattern GL_BGRA_INTEGER_EXT = 0x8D9B :: GLenum
+
+pattern GL_BGR_EXT = 0x80E0 :: GLenum
+
+pattern GL_BGR_INTEGER = 0x8D9A :: GLenum
+
+pattern GL_BGR_INTEGER_EXT = 0x8D9A :: GLenum
+
+pattern GL_BIAS_BIT_ATI = 0x00000008 :: GLbitfield
+
+pattern GL_BIAS_BY_NEGATIVE_ONE_HALF_NV = 0x8541 :: GLenum
+
+pattern GL_BINNING_CONTROL_HINT_QCOM = 0x8FB0 :: GLenum
+
+pattern GL_BINORMAL_ARRAY_EXT = 0x843A :: GLenum
+
+pattern GL_BINORMAL_ARRAY_POINTER_EXT = 0x8443 :: GLenum
+
+pattern GL_BINORMAL_ARRAY_STRIDE_EXT = 0x8441 :: GLenum
+
+pattern GL_BINORMAL_ARRAY_TYPE_EXT = 0x8440 :: GLenum
+
+pattern GL_BITMAP = 0x1A00 :: GLenum
+
+pattern GL_BITMAP_TOKEN = 0x0704 :: GLenum
+
+pattern GL_BLACKHOLE_RENDER_INTEL = 0x83FC :: GLenum
+
+pattern GL_BLEND = 0x0BE2 :: GLenum
+
+pattern GL_BLEND_ADVANCED_COHERENT_KHR = 0x9285 :: GLenum
+
+pattern GL_BLEND_ADVANCED_COHERENT_NV = 0x9285 :: GLenum
+
+pattern GL_BLEND_COLOR = 0x8005 :: GLenum
+
+pattern GL_BLEND_COLOR_COMMAND_NV = 0x000B :: GLenum
+
+pattern GL_BLEND_COLOR_EXT = 0x8005 :: GLenum
+
+pattern GL_BLEND_DST = 0x0BE0 :: GLenum
+
+pattern GL_BLEND_DST_ALPHA = 0x80CA :: GLenum
+
+pattern GL_BLEND_DST_ALPHA_EXT = 0x80CA :: GLenum
+
+pattern GL_BLEND_DST_ALPHA_OES = 0x80CA :: GLenum
+
+pattern GL_BLEND_DST_RGB = 0x80C8 :: GLenum
+
+pattern GL_BLEND_DST_RGB_EXT = 0x80C8 :: GLenum
+
+pattern GL_BLEND_DST_RGB_OES = 0x80C8 :: GLenum
+
+pattern GL_BLEND_EQUATION = 0x8009 :: GLenum
+
+pattern GL_BLEND_EQUATION_ALPHA = 0x883D :: GLenum
+
+pattern GL_BLEND_EQUATION_ALPHA_EXT = 0x883D :: GLenum
+
+pattern GL_BLEND_EQUATION_ALPHA_OES = 0x883D :: GLenum
+
+pattern GL_BLEND_EQUATION_EXT = 0x8009 :: GLenum
+
+pattern GL_BLEND_EQUATION_OES = 0x8009 :: GLenum
+
+pattern GL_BLEND_EQUATION_RGB = 0x8009 :: GLenum
+
+pattern GL_BLEND_EQUATION_RGB_EXT = 0x8009 :: GLenum
+
+pattern GL_BLEND_EQUATION_RGB_OES = 0x8009 :: GLenum
+
+pattern GL_BLEND_OVERLAP_NV = 0x9281 :: GLenum
+
+pattern GL_BLEND_PREMULTIPLIED_SRC_NV = 0x9280 :: GLenum
+
+pattern GL_BLEND_SRC = 0x0BE1 :: GLenum
+
+pattern GL_BLEND_SRC_ALPHA = 0x80CB :: GLenum
+
+pattern GL_BLEND_SRC_ALPHA_EXT = 0x80CB :: GLenum
+
+pattern GL_BLEND_SRC_ALPHA_OES = 0x80CB :: GLenum
+
+pattern GL_BLEND_SRC_RGB = 0x80C9 :: GLenum
+
+pattern GL_BLEND_SRC_RGB_EXT = 0x80C9 :: GLenum
+
+pattern GL_BLEND_SRC_RGB_OES = 0x80C9 :: GLenum
+
+pattern GL_BLOCK_INDEX = 0x92FD :: GLenum
+
+pattern GL_BLUE = 0x1905 :: GLenum
+
+pattern GL_BLUE_BIAS = 0x0D1B :: GLenum
+
+pattern GL_BLUE_BITS = 0x0D54 :: GLenum
+
+pattern GL_BLUE_BIT_ATI = 0x00000004 :: GLbitfield
+
+pattern GL_BLUE_INTEGER = 0x8D96 :: GLenum
+
+pattern GL_BLUE_INTEGER_EXT = 0x8D96 :: GLenum
+
+pattern GL_BLUE_MAX_CLAMP_INGR = 0x8566 :: GLenum
+
+pattern GL_BLUE_MIN_CLAMP_INGR = 0x8562 :: GLenum
+
+pattern GL_BLUE_NV = 0x1905 :: GLenum
+
+pattern GL_BLUE_SCALE = 0x0D1A :: GLenum
+
+pattern GL_BOLD_BIT_NV = 0x01 :: GLbitfield
+
+pattern GL_BOOL = 0x8B56 :: GLenum
+
+pattern GL_BOOL_ARB = 0x8B56 :: GLenum
+
+pattern GL_BOOL_VEC2 = 0x8B57 :: GLenum
+
+pattern GL_BOOL_VEC2_ARB = 0x8B57 :: GLenum
+
+pattern GL_BOOL_VEC3 = 0x8B58 :: GLenum
+
+pattern GL_BOOL_VEC3_ARB = 0x8B58 :: GLenum
+
+pattern GL_BOOL_VEC4 = 0x8B59 :: GLenum
+
+pattern GL_BOOL_VEC4_ARB = 0x8B59 :: GLenum
+
+pattern GL_BOUNDING_BOX_NV = 0x908D :: GLenum
+
+pattern GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV = 0x909C :: GLenum
+
+pattern GL_BROWSER_DEFAULT_WEBGL = 0x9244 :: GLenum
+
+pattern GL_BUFFER = 0x82E0 :: GLenum
+
+pattern GL_BUFFER_ACCESS = 0x88BB :: GLenum
+
+pattern GL_BUFFER_ACCESS_ARB = 0x88BB :: GLenum
+
+pattern GL_BUFFER_ACCESS_FLAGS = 0x911F :: GLenum
+
+pattern GL_BUFFER_ACCESS_OES = 0x88BB :: GLenum
+
+pattern GL_BUFFER_BINDING = 0x9302 :: GLenum
+
+pattern GL_BUFFER_DATA_SIZE = 0x9303 :: GLenum
+
+pattern GL_BUFFER_FLUSHING_UNMAP_APPLE = 0x8A13 :: GLenum
+
+pattern GL_BUFFER_GPU_ADDRESS_NV = 0x8F1D :: GLenum
+
+pattern GL_BUFFER_IMMUTABLE_STORAGE = 0x821F :: GLenum
+
+pattern GL_BUFFER_IMMUTABLE_STORAGE_EXT = 0x821F :: GLenum
+
+pattern GL_BUFFER_KHR = 0x82E0 :: GLenum
+
+pattern GL_BUFFER_MAPPED = 0x88BC :: GLenum
+
+pattern GL_BUFFER_MAPPED_ARB = 0x88BC :: GLenum
+
+pattern GL_BUFFER_MAPPED_OES = 0x88BC :: GLenum
+
+pattern GL_BUFFER_MAP_LENGTH = 0x9120 :: GLenum
+
+pattern GL_BUFFER_MAP_OFFSET = 0x9121 :: GLenum
+
+pattern GL_BUFFER_MAP_POINTER = 0x88BD :: GLenum
+
+pattern GL_BUFFER_MAP_POINTER_ARB = 0x88BD :: GLenum
+
+pattern GL_BUFFER_MAP_POINTER_OES = 0x88BD :: GLenum
+
+pattern GL_BUFFER_OBJECT_APPLE = 0x85B3 :: GLenum
+
+pattern GL_BUFFER_OBJECT_EXT = 0x9151 :: GLenum
+
+pattern GL_BUFFER_SERIALIZED_MODIFY_APPLE = 0x8A12 :: GLenum
+
+pattern GL_BUFFER_SIZE = 0x8764 :: GLenum
+
+pattern GL_BUFFER_SIZE_ARB = 0x8764 :: GLenum
+
+pattern GL_BUFFER_STORAGE_FLAGS = 0x8220 :: GLenum
+
+pattern GL_BUFFER_STORAGE_FLAGS_EXT = 0x8220 :: GLenum
+
+pattern GL_BUFFER_UPDATE_BARRIER_BIT = 0x00000200 :: GLbitfield
+
+pattern GL_BUFFER_UPDATE_BARRIER_BIT_EXT = 0x00000200 :: GLbitfield
+
+pattern GL_BUFFER_USAGE = 0x8765 :: GLenum
+
+pattern GL_BUFFER_USAGE_ARB = 0x8765 :: GLenum
+
+pattern GL_BUFFER_VARIABLE = 0x92E5 :: GLenum
+
+pattern GL_BUMP_ENVMAP_ATI = 0x877B :: GLenum
+
+pattern GL_BUMP_NUM_TEX_UNITS_ATI = 0x8777 :: GLenum
+
+pattern GL_BUMP_ROT_MATRIX_ATI = 0x8775 :: GLenum
+
+pattern GL_BUMP_ROT_MATRIX_SIZE_ATI = 0x8776 :: GLenum
+
+pattern GL_BUMP_TARGET_ATI = 0x877C :: GLenum
+
+pattern GL_BUMP_TEX_UNITS_ATI = 0x8778 :: GLenum
+
+pattern GL_BYTE = 0x1400 :: GLenum
+
+pattern GL_C3F_V3F = 0x2A24 :: GLenum
+
+pattern GL_C4F_N3F_V3F = 0x2A26 :: GLenum
+
+pattern GL_C4UB_V2F = 0x2A22 :: GLenum
+
+pattern GL_C4UB_V3F = 0x2A23 :: GLenum
+
+pattern GL_CALLIGRAPHIC_FRAGMENT_SGIX = 0x8183 :: GLenum
+
+pattern GL_CAVEAT_SUPPORT = 0x82B8 :: GLenum
+
+pattern GL_CCW = 0x0901 :: GLenum
+
+pattern GL_CIRCULAR_CCW_ARC_TO_NV = 0xF8 :: GLubyte
+
+pattern GL_CIRCULAR_CW_ARC_TO_NV = 0xFA :: GLubyte
+
+pattern GL_CIRCULAR_TANGENT_ARC_TO_NV = 0xFC :: GLubyte
+
+pattern GL_CLAMP = 0x2900 :: GLenum
+
+pattern GL_CLAMP_FRAGMENT_COLOR = 0x891B :: GLenum
+
+pattern GL_CLAMP_FRAGMENT_COLOR_ARB = 0x891B :: GLenum
+
+pattern GL_CLAMP_READ_COLOR = 0x891C :: GLenum
+
+pattern GL_CLAMP_READ_COLOR_ARB = 0x891C :: GLenum
+
+pattern GL_CLAMP_TO_BORDER = 0x812D :: GLenum
+
+pattern GL_CLAMP_TO_BORDER_ARB = 0x812D :: GLenum
+
+pattern GL_CLAMP_TO_BORDER_EXT = 0x812D :: GLenum
+
+pattern GL_CLAMP_TO_BORDER_NV = 0x812D :: GLenum
+
+pattern GL_CLAMP_TO_BORDER_OES = 0x812D :: GLenum
+
+pattern GL_CLAMP_TO_BORDER_SGIS = 0x812D :: GLenum
+
+pattern GL_CLAMP_TO_EDGE = 0x812F :: GLenum
+
+pattern GL_CLAMP_TO_EDGE_SGIS = 0x812F :: GLenum
+
+pattern GL_CLAMP_VERTEX_COLOR = 0x891A :: GLenum
+
+pattern GL_CLAMP_VERTEX_COLOR_ARB = 0x891A :: GLenum
+
+pattern GL_CLEAR = 0x1500 :: GLenum
+
+pattern GL_CLEAR_BUFFER = 0x82B4 :: GLenum
+
+pattern GL_CLEAR_TEXTURE = 0x9365 :: GLenum
+
+pattern GL_CLIENT_ACTIVE_TEXTURE = 0x84E1 :: GLenum
+
+pattern GL_CLIENT_ACTIVE_TEXTURE_ARB = 0x84E1 :: GLenum
+
+pattern GL_CLIENT_ALL_ATTRIB_BITS = 0xFFFFFFFF :: GLbitfield
+
+pattern GL_CLIENT_ATTRIB_STACK_DEPTH = 0x0BB1 :: GLenum
+
+pattern GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT = 0x00004000 :: GLbitfield
+
+pattern GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT_EXT = 0x00004000 :: GLbitfield
+
+pattern GL_CLIENT_PIXEL_STORE_BIT = 0x00000001 :: GLbitfield
+
+pattern GL_CLIENT_STORAGE_BIT = 0x0200 :: GLbitfield
+
+pattern GL_CLIENT_STORAGE_BIT_EXT = 0x0200 :: GLbitfield
+
+pattern GL_CLIENT_VERTEX_ARRAY_BIT = 0x00000002 :: GLbitfield
+
+pattern GL_CLIPPING_INPUT_PRIMITIVES = 0x82F6 :: GLenum
+
+pattern GL_CLIPPING_INPUT_PRIMITIVES_ARB = 0x82F6 :: GLenum
+
+pattern GL_CLIPPING_OUTPUT_PRIMITIVES = 0x82F7 :: GLenum
+
+pattern GL_CLIPPING_OUTPUT_PRIMITIVES_ARB = 0x82F7 :: GLenum
+
+pattern GL_CLIP_DEPTH_MODE = 0x935D :: GLenum
+
+pattern GL_CLIP_DEPTH_MODE_EXT = 0x935D :: GLenum
+
+pattern GL_CLIP_DISTANCE0 = 0x3000 :: GLenum
+
+pattern GL_CLIP_DISTANCE0_APPLE = 0x3000 :: GLenum
+
+pattern GL_CLIP_DISTANCE0_EXT = 0x3000 :: GLenum
+
+pattern GL_CLIP_DISTANCE1 = 0x3001 :: GLenum
+
+pattern GL_CLIP_DISTANCE1_APPLE = 0x3001 :: GLenum
+
+pattern GL_CLIP_DISTANCE1_EXT = 0x3001 :: GLenum
+
+pattern GL_CLIP_DISTANCE2 = 0x3002 :: GLenum
+
+pattern GL_CLIP_DISTANCE2_APPLE = 0x3002 :: GLenum
+
+pattern GL_CLIP_DISTANCE2_EXT = 0x3002 :: GLenum
+
+pattern GL_CLIP_DISTANCE3 = 0x3003 :: GLenum
+
+pattern GL_CLIP_DISTANCE3_APPLE = 0x3003 :: GLenum
+
+pattern GL_CLIP_DISTANCE3_EXT = 0x3003 :: GLenum
+
+pattern GL_CLIP_DISTANCE4 = 0x3004 :: GLenum
+
+pattern GL_CLIP_DISTANCE4_APPLE = 0x3004 :: GLenum
+
+pattern GL_CLIP_DISTANCE4_EXT = 0x3004 :: GLenum
+
+pattern GL_CLIP_DISTANCE5 = 0x3005 :: GLenum
+
+pattern GL_CLIP_DISTANCE5_APPLE = 0x3005 :: GLenum
+
+pattern GL_CLIP_DISTANCE5_EXT = 0x3005 :: GLenum
+
+pattern GL_CLIP_DISTANCE6 = 0x3006 :: GLenum
+
+pattern GL_CLIP_DISTANCE6_APPLE = 0x3006 :: GLenum
+
+pattern GL_CLIP_DISTANCE6_EXT = 0x3006 :: GLenum
+
+pattern GL_CLIP_DISTANCE7 = 0x3007 :: GLenum
+
+pattern GL_CLIP_DISTANCE7_APPLE = 0x3007 :: GLenum
+
+pattern GL_CLIP_DISTANCE7_EXT = 0x3007 :: GLenum
+
+pattern GL_CLIP_DISTANCE_NV = 0x8C7A :: GLenum
+
+pattern GL_CLIP_FAR_HINT_PGI = 0x1A221 :: GLenum
+
+pattern GL_CLIP_NEAR_HINT_PGI = 0x1A220 :: GLenum
+
+pattern GL_CLIP_ORIGIN = 0x935C :: GLenum
+
+pattern GL_CLIP_ORIGIN_EXT = 0x935C :: GLenum
+
+pattern GL_CLIP_PLANE0 = 0x3000 :: GLenum
+
+pattern GL_CLIP_PLANE0_IMG = 0x3000 :: GLenum
+
+pattern GL_CLIP_PLANE1 = 0x3001 :: GLenum
+
+pattern GL_CLIP_PLANE1_IMG = 0x3001 :: GLenum
+
+pattern GL_CLIP_PLANE2 = 0x3002 :: GLenum
+
+pattern GL_CLIP_PLANE2_IMG = 0x3002 :: GLenum
+
+pattern GL_CLIP_PLANE3 = 0x3003 :: GLenum
+
+pattern GL_CLIP_PLANE3_IMG = 0x3003 :: GLenum
+
+pattern GL_CLIP_PLANE4 = 0x3004 :: GLenum
+
+pattern GL_CLIP_PLANE4_IMG = 0x3004 :: GLenum
+
+pattern GL_CLIP_PLANE5 = 0x3005 :: GLenum
+
+pattern GL_CLIP_PLANE5_IMG = 0x3005 :: GLenum
+
+pattern GL_CLIP_VOLUME_CLIPPING_HINT_EXT = 0x80F0 :: GLenum
+
+pattern GL_CLOSE_PATH_NV = 0x00 :: GLubyte
+
+pattern GL_CMYKA_EXT = 0x800D :: GLenum
+
+pattern GL_CMYK_EXT = 0x800C :: GLenum
+
+pattern GL_CND0_ATI = 0x896B :: GLenum
+
+pattern GL_CND_ATI = 0x896A :: GLenum
+
+pattern GL_COEFF = 0x0A00 :: GLenum
+
+pattern GL_COLOR = 0x1800 :: GLenum
+
+pattern GL_COLOR3_BIT_PGI = 0x00010000 :: GLbitfield
+
+pattern GL_COLOR4_BIT_PGI = 0x00020000 :: GLbitfield
+
+pattern GL_COLORBURN = 0x929A :: GLenum
+
+pattern GL_COLORBURN_KHR = 0x929A :: GLenum
+
+pattern GL_COLORBURN_NV = 0x929A :: GLenum
+
+pattern GL_COLORDODGE = 0x9299 :: GLenum
+
+pattern GL_COLORDODGE_KHR = 0x9299 :: GLenum
+
+pattern GL_COLORDODGE_NV = 0x9299 :: GLenum
+
+pattern GL_COLOR_ALPHA_PAIRING_ATI = 0x8975 :: GLenum
+
+pattern GL_COLOR_ARRAY = 0x8076 :: GLenum
+
+pattern GL_COLOR_ARRAY_ADDRESS_NV = 0x8F23 :: GLenum
+
+pattern GL_COLOR_ARRAY_BUFFER_BINDING = 0x8898 :: GLenum
+
+pattern GL_COLOR_ARRAY_BUFFER_BINDING_ARB = 0x8898 :: GLenum
+
+pattern GL_COLOR_ARRAY_COUNT_EXT = 0x8084 :: GLenum
+
+pattern GL_COLOR_ARRAY_EXT = 0x8076 :: GLenum
+
+pattern GL_COLOR_ARRAY_LENGTH_NV = 0x8F2D :: GLenum
+
+pattern GL_COLOR_ARRAY_LIST_IBM = 103072 :: GLenum
+
+pattern GL_COLOR_ARRAY_LIST_STRIDE_IBM = 103082 :: GLenum
+
+pattern GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F7 :: GLenum
+
+pattern GL_COLOR_ARRAY_POINTER = 0x8090 :: GLenum
+
+pattern GL_COLOR_ARRAY_POINTER_EXT = 0x8090 :: GLenum
+
+pattern GL_COLOR_ARRAY_SIZE = 0x8081 :: GLenum
+
+pattern GL_COLOR_ARRAY_SIZE_EXT = 0x8081 :: GLenum
+
+pattern GL_COLOR_ARRAY_STRIDE = 0x8083 :: GLenum
+
+pattern GL_COLOR_ARRAY_STRIDE_EXT = 0x8083 :: GLenum
+
+pattern GL_COLOR_ARRAY_TYPE = 0x8082 :: GLenum
+
+pattern GL_COLOR_ARRAY_TYPE_EXT = 0x8082 :: GLenum
+
+pattern GL_COLOR_ATTACHMENT0 = 0x8CE0 :: GLenum
+
+pattern GL_COLOR_ATTACHMENT0_EXT = 0x8CE0 :: GLenum
+
+pattern GL_COLOR_ATTACHMENT0_NV = 0x8CE0 :: GLenum
+
+pattern GL_COLOR_ATTACHMENT0_OES = 0x8CE0 :: GLenum
+
+pattern GL_COLOR_ATTACHMENT1 = 0x8CE1 :: GLenum
+
+pattern GL_COLOR_ATTACHMENT10 = 0x8CEA :: GLenum
+
+pattern GL_COLOR_ATTACHMENT10_EXT = 0x8CEA :: GLenum
+
+pattern GL_COLOR_ATTACHMENT10_NV = 0x8CEA :: GLenum
+
+pattern GL_COLOR_ATTACHMENT11 = 0x8CEB :: GLenum
+
+pattern GL_COLOR_ATTACHMENT11_EXT = 0x8CEB :: GLenum
+
+pattern GL_COLOR_ATTACHMENT11_NV = 0x8CEB :: GLenum
+
+pattern GL_COLOR_ATTACHMENT12 = 0x8CEC :: GLenum
+
+pattern GL_COLOR_ATTACHMENT12_EXT = 0x8CEC :: GLenum
+
+pattern GL_COLOR_ATTACHMENT12_NV = 0x8CEC :: GLenum
+
+pattern GL_COLOR_ATTACHMENT13 = 0x8CED :: GLenum
+
+pattern GL_COLOR_ATTACHMENT13_EXT = 0x8CED :: GLenum
+
+pattern GL_COLOR_ATTACHMENT13_NV = 0x8CED :: GLenum
+
+pattern GL_COLOR_ATTACHMENT14 = 0x8CEE :: GLenum
+
+pattern GL_COLOR_ATTACHMENT14_EXT = 0x8CEE :: GLenum
+
+pattern GL_COLOR_ATTACHMENT14_NV = 0x8CEE :: GLenum
+
+pattern GL_COLOR_ATTACHMENT15 = 0x8CEF :: GLenum
+
+pattern GL_COLOR_ATTACHMENT15_EXT = 0x8CEF :: GLenum
+
+pattern GL_COLOR_ATTACHMENT15_NV = 0x8CEF :: GLenum
+
+pattern GL_COLOR_ATTACHMENT16 = 0x8CF0 :: GLenum
+
+pattern GL_COLOR_ATTACHMENT17 = 0x8CF1 :: GLenum
+
+pattern GL_COLOR_ATTACHMENT18 = 0x8CF2 :: GLenum
+
+pattern GL_COLOR_ATTACHMENT19 = 0x8CF3 :: GLenum
+
+pattern GL_COLOR_ATTACHMENT1_EXT = 0x8CE1 :: GLenum
+
+pattern GL_COLOR_ATTACHMENT1_NV = 0x8CE1 :: GLenum
+
+pattern GL_COLOR_ATTACHMENT2 = 0x8CE2 :: GLenum
+
+pattern GL_COLOR_ATTACHMENT20 = 0x8CF4 :: GLenum
+
+pattern GL_COLOR_ATTACHMENT21 = 0x8CF5 :: GLenum
+
+pattern GL_COLOR_ATTACHMENT22 = 0x8CF6 :: GLenum
+
+pattern GL_COLOR_ATTACHMENT23 = 0x8CF7 :: GLenum
+
+pattern GL_COLOR_ATTACHMENT24 = 0x8CF8 :: GLenum
+
+pattern GL_COLOR_ATTACHMENT25 = 0x8CF9 :: GLenum
+
+pattern GL_COLOR_ATTACHMENT26 = 0x8CFA :: GLenum
+
+pattern GL_COLOR_ATTACHMENT27 = 0x8CFB :: GLenum
+
+pattern GL_COLOR_ATTACHMENT28 = 0x8CFC :: GLenum
+
+pattern GL_COLOR_ATTACHMENT29 = 0x8CFD :: GLenum
+
+pattern GL_COLOR_ATTACHMENT2_EXT = 0x8CE2 :: GLenum
+
+pattern GL_COLOR_ATTACHMENT2_NV = 0x8CE2 :: GLenum
+
+pattern GL_COLOR_ATTACHMENT3 = 0x8CE3 :: GLenum
+
+pattern GL_COLOR_ATTACHMENT30 = 0x8CFE :: GLenum
+
+pattern GL_COLOR_ATTACHMENT31 = 0x8CFF :: GLenum
+
+pattern GL_COLOR_ATTACHMENT3_EXT = 0x8CE3 :: GLenum
+
+pattern GL_COLOR_ATTACHMENT3_NV = 0x8CE3 :: GLenum
+
+pattern GL_COLOR_ATTACHMENT4 = 0x8CE4 :: GLenum
+
+pattern GL_COLOR_ATTACHMENT4_EXT = 0x8CE4 :: GLenum
+
+pattern GL_COLOR_ATTACHMENT4_NV = 0x8CE4 :: GLenum
+
+pattern GL_COLOR_ATTACHMENT5 = 0x8CE5 :: GLenum
+
+pattern GL_COLOR_ATTACHMENT5_EXT = 0x8CE5 :: GLenum
+
+pattern GL_COLOR_ATTACHMENT5_NV = 0x8CE5 :: GLenum
+
+pattern GL_COLOR_ATTACHMENT6 = 0x8CE6 :: GLenum
+
+pattern GL_COLOR_ATTACHMENT6_EXT = 0x8CE6 :: GLenum
+
+pattern GL_COLOR_ATTACHMENT6_NV = 0x8CE6 :: GLenum
+
+pattern GL_COLOR_ATTACHMENT7 = 0x8CE7 :: GLenum
+
+pattern GL_COLOR_ATTACHMENT7_EXT = 0x8CE7 :: GLenum
+
+pattern GL_COLOR_ATTACHMENT7_NV = 0x8CE7 :: GLenum
+
+pattern GL_COLOR_ATTACHMENT8 = 0x8CE8 :: GLenum
+
+pattern GL_COLOR_ATTACHMENT8_EXT = 0x8CE8 :: GLenum
+
+pattern GL_COLOR_ATTACHMENT8_NV = 0x8CE8 :: GLenum
+
+pattern GL_COLOR_ATTACHMENT9 = 0x8CE9 :: GLenum
+
+pattern GL_COLOR_ATTACHMENT9_EXT = 0x8CE9 :: GLenum
+
+pattern GL_COLOR_ATTACHMENT9_NV = 0x8CE9 :: GLenum
+
+pattern GL_COLOR_ATTACHMENT_EXT = 0x90F0 :: GLenum
+
+pattern GL_COLOR_BUFFER_BIT = 0x00004000 :: GLbitfield
+
+pattern GL_COLOR_BUFFER_BIT0_QCOM = 0x00000001 :: GLbitfield
+
+pattern GL_COLOR_BUFFER_BIT1_QCOM = 0x00000002 :: GLbitfield
+
+pattern GL_COLOR_BUFFER_BIT2_QCOM = 0x00000004 :: GLbitfield
+
+pattern GL_COLOR_BUFFER_BIT3_QCOM = 0x00000008 :: GLbitfield
+
+pattern GL_COLOR_BUFFER_BIT4_QCOM = 0x00000010 :: GLbitfield
+
+pattern GL_COLOR_BUFFER_BIT5_QCOM = 0x00000020 :: GLbitfield
+
+pattern GL_COLOR_BUFFER_BIT6_QCOM = 0x00000040 :: GLbitfield
+
+pattern GL_COLOR_BUFFER_BIT7_QCOM = 0x00000080 :: GLbitfield
+
+pattern GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI = 0x8835 :: GLenum
+
+pattern GL_COLOR_CLEAR_VALUE = 0x0C22 :: GLenum
+
+pattern GL_COLOR_COMPONENTS = 0x8283 :: GLenum
+
+pattern GL_COLOR_ENCODING = 0x8296 :: GLenum
+
+pattern GL_COLOR_EXT = 0x1800 :: GLenum
+
+pattern GL_COLOR_FLOAT_APPLE = 0x8A0F :: GLenum
+
+pattern GL_COLOR_INDEX = 0x1900 :: GLenum
+
+pattern GL_COLOR_INDEX12_EXT = 0x80E6 :: GLenum
+
+pattern GL_COLOR_INDEX16_EXT = 0x80E7 :: GLenum
+
+pattern GL_COLOR_INDEX1_EXT = 0x80E2 :: GLenum
+
+pattern GL_COLOR_INDEX2_EXT = 0x80E3 :: GLenum
+
+pattern GL_COLOR_INDEX4_EXT = 0x80E4 :: GLenum
+
+pattern GL_COLOR_INDEX8_EXT = 0x80E5 :: GLenum
+
+pattern GL_COLOR_INDEXES = 0x1603 :: GLenum
+
+pattern GL_COLOR_LOGIC_OP = 0x0BF2 :: GLenum
+
+pattern GL_COLOR_MATERIAL = 0x0B57 :: GLenum
+
+pattern GL_COLOR_MATERIAL_FACE = 0x0B55 :: GLenum
+
+pattern GL_COLOR_MATERIAL_PARAMETER = 0x0B56 :: GLenum
+
+pattern GL_COLOR_MATRIX = 0x80B1 :: GLenum
+
+pattern GL_COLOR_MATRIX_SGI = 0x80B1 :: GLenum
+
+pattern GL_COLOR_MATRIX_STACK_DEPTH = 0x80B2 :: GLenum
+
+pattern GL_COLOR_MATRIX_STACK_DEPTH_SGI = 0x80B2 :: GLenum
+
+pattern GL_COLOR_RENDERABLE = 0x8286 :: GLenum
+
+pattern GL_COLOR_SAMPLES_NV = 0x8E20 :: GLenum
+
+pattern GL_COLOR_SUM = 0x8458 :: GLenum
+
+pattern GL_COLOR_SUM_ARB = 0x8458 :: GLenum
+
+pattern GL_COLOR_SUM_CLAMP_NV = 0x854F :: GLenum
+
+pattern GL_COLOR_SUM_EXT = 0x8458 :: GLenum
+
+pattern GL_COLOR_TABLE = 0x80D0 :: GLenum
+
+pattern GL_COLOR_TABLE_ALPHA_SIZE = 0x80DD :: GLenum
+
+pattern GL_COLOR_TABLE_ALPHA_SIZE_SGI = 0x80DD :: GLenum
+
+pattern GL_COLOR_TABLE_BIAS = 0x80D7 :: GLenum
+
+pattern GL_COLOR_TABLE_BIAS_SGI = 0x80D7 :: GLenum
+
+pattern GL_COLOR_TABLE_BLUE_SIZE = 0x80DC :: GLenum
+
+pattern GL_COLOR_TABLE_BLUE_SIZE_SGI = 0x80DC :: GLenum
+
+pattern GL_COLOR_TABLE_FORMAT = 0x80D8 :: GLenum
+
+pattern GL_COLOR_TABLE_FORMAT_SGI = 0x80D8 :: GLenum
+
+pattern GL_COLOR_TABLE_GREEN_SIZE = 0x80DB :: GLenum
+
+pattern GL_COLOR_TABLE_GREEN_SIZE_SGI = 0x80DB :: GLenum
+
+pattern GL_COLOR_TABLE_INTENSITY_SIZE = 0x80DF :: GLenum
+
+pattern GL_COLOR_TABLE_INTENSITY_SIZE_SGI = 0x80DF :: GLenum
+
+pattern GL_COLOR_TABLE_LUMINANCE_SIZE = 0x80DE :: GLenum
+
+pattern GL_COLOR_TABLE_LUMINANCE_SIZE_SGI = 0x80DE :: GLenum
+
+pattern GL_COLOR_TABLE_RED_SIZE = 0x80DA :: GLenum
+
+pattern GL_COLOR_TABLE_RED_SIZE_SGI = 0x80DA :: GLenum
+
+pattern GL_COLOR_TABLE_SCALE = 0x80D6 :: GLenum
+
+pattern GL_COLOR_TABLE_SCALE_SGI = 0x80D6 :: GLenum
+
+pattern GL_COLOR_TABLE_SGI = 0x80D0 :: GLenum
+
+pattern GL_COLOR_TABLE_WIDTH = 0x80D9 :: GLenum
+
+pattern GL_COLOR_TABLE_WIDTH_SGI = 0x80D9 :: GLenum
+
+pattern GL_COLOR_WRITEMASK = 0x0C23 :: GLenum
+
+pattern GL_COMBINE = 0x8570 :: GLenum
+
+pattern GL_COMBINE4_NV = 0x8503 :: GLenum
+
+pattern GL_COMBINER0_NV = 0x8550 :: GLenum
+
+pattern GL_COMBINER1_NV = 0x8551 :: GLenum
+
+pattern GL_COMBINER2_NV = 0x8552 :: GLenum
+
+pattern GL_COMBINER3_NV = 0x8553 :: GLenum
+
+pattern GL_COMBINER4_NV = 0x8554 :: GLenum
+
+pattern GL_COMBINER5_NV = 0x8555 :: GLenum
+
+pattern GL_COMBINER6_NV = 0x8556 :: GLenum
+
+pattern GL_COMBINER7_NV = 0x8557 :: GLenum
+
+pattern GL_COMBINER_AB_DOT_PRODUCT_NV = 0x8545 :: GLenum
+
+pattern GL_COMBINER_AB_OUTPUT_NV = 0x854A :: GLenum
+
+pattern GL_COMBINER_BIAS_NV = 0x8549 :: GLenum
+
+pattern GL_COMBINER_CD_DOT_PRODUCT_NV = 0x8546 :: GLenum
+
+pattern GL_COMBINER_CD_OUTPUT_NV = 0x854B :: GLenum
+
+pattern GL_COMBINER_COMPONENT_USAGE_NV = 0x8544 :: GLenum
+
+pattern GL_COMBINER_INPUT_NV = 0x8542 :: GLenum
+
+pattern GL_COMBINER_MAPPING_NV = 0x8543 :: GLenum
+
+pattern GL_COMBINER_MUX_SUM_NV = 0x8547 :: GLenum
+
+pattern GL_COMBINER_SCALE_NV = 0x8548 :: GLenum
+
+pattern GL_COMBINER_SUM_OUTPUT_NV = 0x854C :: GLenum
+
+pattern GL_COMBINE_ALPHA = 0x8572 :: GLenum
+
+pattern GL_COMBINE_ALPHA_ARB = 0x8572 :: GLenum
+
+pattern GL_COMBINE_ALPHA_EXT = 0x8572 :: GLenum
+
+pattern GL_COMBINE_ARB = 0x8570 :: GLenum
+
+pattern GL_COMBINE_EXT = 0x8570 :: GLenum
+
+pattern GL_COMBINE_RGB = 0x8571 :: GLenum
+
+pattern GL_COMBINE_RGB_ARB = 0x8571 :: GLenum
+
+pattern GL_COMBINE_RGB_EXT = 0x8571 :: GLenum
+
+pattern GL_COMMAND_BARRIER_BIT = 0x00000040 :: GLbitfield
+
+pattern GL_COMMAND_BARRIER_BIT_EXT = 0x00000040 :: GLbitfield
+
+pattern GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT = 0x884E :: GLenum
+
+pattern GL_COMPARE_REF_TO_TEXTURE = 0x884E :: GLenum
+
+pattern GL_COMPARE_REF_TO_TEXTURE_EXT = 0x884E :: GLenum
+
+pattern GL_COMPARE_R_TO_TEXTURE = 0x884E :: GLenum
+
+pattern GL_COMPARE_R_TO_TEXTURE_ARB = 0x884E :: GLenum
+
+pattern GL_COMPATIBLE_SUBROUTINES = 0x8E4B :: GLenum
+
+pattern GL_COMPILE = 0x1300 :: GLenum
+
+pattern GL_COMPILE_AND_EXECUTE = 0x1301 :: GLenum
+
+pattern GL_COMPILE_STATUS = 0x8B81 :: GLenum
+
+pattern GL_COMPLETION_STATUS_ARB = 0x91B1 :: GLenum
+
+pattern GL_COMPLETION_STATUS_KHR = 0x91B1 :: GLenum
+
+pattern GL_COMPRESSED_ALPHA = 0x84E9 :: GLenum
+
+pattern GL_COMPRESSED_ALPHA_ARB = 0x84E9 :: GLenum
+
+pattern GL_COMPRESSED_INTENSITY = 0x84EC :: GLenum
+
+pattern GL_COMPRESSED_INTENSITY_ARB = 0x84EC :: GLenum
+
+pattern GL_COMPRESSED_LUMINANCE = 0x84EA :: GLenum
+
+pattern GL_COMPRESSED_LUMINANCE_ALPHA = 0x84EB :: GLenum
+
+pattern GL_COMPRESSED_LUMINANCE_ALPHA_3DC_ATI = 0x8837 :: GLenum
+
+pattern GL_COMPRESSED_LUMINANCE_ALPHA_ARB = 0x84EB :: GLenum
+
+pattern GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT = 0x8C72 :: GLenum
+
+pattern GL_COMPRESSED_LUMINANCE_ARB = 0x84EA :: GLenum
+
+pattern GL_COMPRESSED_LUMINANCE_LATC1_EXT = 0x8C70 :: GLenum
+
+pattern GL_COMPRESSED_R11_EAC = 0x9270 :: GLenum
+
+pattern GL_COMPRESSED_R11_EAC_OES = 0x9270 :: GLenum
+
+pattern GL_COMPRESSED_RED = 0x8225 :: GLenum
+
+pattern GL_COMPRESSED_RED_GREEN_RGTC2_EXT = 0x8DBD :: GLenum
+
+pattern GL_COMPRESSED_RED_RGTC1 = 0x8DBB :: GLenum
+
+pattern GL_COMPRESSED_RED_RGTC1_EXT = 0x8DBB :: GLenum
+
+pattern GL_COMPRESSED_RG = 0x8226 :: GLenum
+
+pattern GL_COMPRESSED_RG11_EAC = 0x9272 :: GLenum
+
+pattern GL_COMPRESSED_RG11_EAC_OES = 0x9272 :: GLenum
+
+pattern GL_COMPRESSED_RGB = 0x84ED :: GLenum
+
+pattern GL_COMPRESSED_RGB8_ETC2 = 0x9274 :: GLenum
+
+pattern GL_COMPRESSED_RGB8_ETC2_OES = 0x9274 :: GLenum
+
+pattern GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9276 :: GLenum
+
+pattern GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2_OES = 0x9276 :: GLenum
+
+pattern GL_COMPRESSED_RGBA = 0x84EE :: GLenum
+
+pattern GL_COMPRESSED_RGBA8_ETC2_EAC = 0x9278 :: GLenum
+
+pattern GL_COMPRESSED_RGBA8_ETC2_EAC_OES = 0x9278 :: GLenum
+
+pattern GL_COMPRESSED_RGBA_ARB = 0x84EE :: GLenum
+
+pattern GL_COMPRESSED_RGBA_ASTC_10x10 = 0x93BB :: GLenum
+
+pattern GL_COMPRESSED_RGBA_ASTC_10x10_KHR = 0x93BB :: GLenum
+
+pattern GL_COMPRESSED_RGBA_ASTC_10x5 = 0x93B8 :: GLenum
+
+pattern GL_COMPRESSED_RGBA_ASTC_10x5_KHR = 0x93B8 :: GLenum
+
+pattern GL_COMPRESSED_RGBA_ASTC_10x6 = 0x93B9 :: GLenum
+
+pattern GL_COMPRESSED_RGBA_ASTC_10x6_KHR = 0x93B9 :: GLenum
+
+pattern GL_COMPRESSED_RGBA_ASTC_10x8 = 0x93BA :: GLenum
+
+pattern GL_COMPRESSED_RGBA_ASTC_10x8_KHR = 0x93BA :: GLenum
+
+pattern GL_COMPRESSED_RGBA_ASTC_12x10 = 0x93BC :: GLenum
+
+pattern GL_COMPRESSED_RGBA_ASTC_12x10_KHR = 0x93BC :: GLenum
+
+pattern GL_COMPRESSED_RGBA_ASTC_12x12 = 0x93BD :: GLenum
+
+pattern GL_COMPRESSED_RGBA_ASTC_12x12_KHR = 0x93BD :: GLenum
+
+pattern GL_COMPRESSED_RGBA_ASTC_3x3x3_OES = 0x93C0 :: GLenum
+
+pattern GL_COMPRESSED_RGBA_ASTC_4x3x3_OES = 0x93C1 :: GLenum
+
+pattern GL_COMPRESSED_RGBA_ASTC_4x4 = 0x93B0 :: GLenum
+
+pattern GL_COMPRESSED_RGBA_ASTC_4x4_KHR = 0x93B0 :: GLenum
+
+pattern GL_COMPRESSED_RGBA_ASTC_4x4x3_OES = 0x93C2 :: GLenum
+
+pattern GL_COMPRESSED_RGBA_ASTC_4x4x4_OES = 0x93C3 :: GLenum
+
+pattern GL_COMPRESSED_RGBA_ASTC_5x4 = 0x93B1 :: GLenum
+
+pattern GL_COMPRESSED_RGBA_ASTC_5x4_KHR = 0x93B1 :: GLenum
+
+pattern GL_COMPRESSED_RGBA_ASTC_5x4x4_OES = 0x93C4 :: GLenum
+
+pattern GL_COMPRESSED_RGBA_ASTC_5x5 = 0x93B2 :: GLenum
+
+pattern GL_COMPRESSED_RGBA_ASTC_5x5_KHR = 0x93B2 :: GLenum
+
+pattern GL_COMPRESSED_RGBA_ASTC_5x5x4_OES = 0x93C5 :: GLenum
+
+pattern GL_COMPRESSED_RGBA_ASTC_5x5x5_OES = 0x93C6 :: GLenum
+
+pattern GL_COMPRESSED_RGBA_ASTC_6x5 = 0x93B3 :: GLenum
+
+pattern GL_COMPRESSED_RGBA_ASTC_6x5_KHR = 0x93B3 :: GLenum
+
+pattern GL_COMPRESSED_RGBA_ASTC_6x5x5_OES = 0x93C7 :: GLenum
+
+pattern GL_COMPRESSED_RGBA_ASTC_6x6 = 0x93B4 :: GLenum
+
+pattern GL_COMPRESSED_RGBA_ASTC_6x6_KHR = 0x93B4 :: GLenum
+
+pattern GL_COMPRESSED_RGBA_ASTC_6x6x5_OES = 0x93C8 :: GLenum
+
+pattern GL_COMPRESSED_RGBA_ASTC_6x6x6_OES = 0x93C9 :: GLenum
+
+pattern GL_COMPRESSED_RGBA_ASTC_8x5 = 0x93B5 :: GLenum
+
+pattern GL_COMPRESSED_RGBA_ASTC_8x5_KHR = 0x93B5 :: GLenum
+
+pattern GL_COMPRESSED_RGBA_ASTC_8x6 = 0x93B6 :: GLenum
+
+pattern GL_COMPRESSED_RGBA_ASTC_8x6_KHR = 0x93B6 :: GLenum
+
+pattern GL_COMPRESSED_RGBA_ASTC_8x8 = 0x93B7 :: GLenum
+
+pattern GL_COMPRESSED_RGBA_ASTC_8x8_KHR = 0x93B7 :: GLenum
+
+pattern GL_COMPRESSED_RGBA_BPTC_UNORM = 0x8E8C :: GLenum
+
+pattern GL_COMPRESSED_RGBA_BPTC_UNORM_ARB = 0x8E8C :: GLenum
+
+pattern GL_COMPRESSED_RGBA_BPTC_UNORM_EXT = 0x8E8C :: GLenum
+
+pattern GL_COMPRESSED_RGBA_FXT1_3DFX = 0x86B1 :: GLenum
+
+pattern GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG = 0x8C03 :: GLenum
+
+pattern GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG = 0x9137 :: GLenum
+
+pattern GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG = 0x8C02 :: GLenum
+
+pattern GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG = 0x9138 :: GLenum
+
+pattern GL_COMPRESSED_RGBA_S3TC_DXT1_EXT = 0x83F1 :: GLenum
+
+pattern GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE = 0x83F2 :: GLenum
+
+pattern GL_COMPRESSED_RGBA_S3TC_DXT3_EXT = 0x83F2 :: GLenum
+
+pattern GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE = 0x83F3 :: GLenum
+
+pattern GL_COMPRESSED_RGBA_S3TC_DXT5_EXT = 0x83F3 :: GLenum
+
+pattern GL_COMPRESSED_RGB_ARB = 0x84ED :: GLenum
+
+pattern GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT = 0x8E8E :: GLenum
+
+pattern GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB = 0x8E8E :: GLenum
+
+pattern GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT = 0x8E8E :: GLenum
+
+pattern GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT = 0x8E8F :: GLenum
+
+pattern GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB = 0x8E8F :: GLenum
+
+pattern GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT = 0x8E8F :: GLenum
+
+pattern GL_COMPRESSED_RGB_FXT1_3DFX = 0x86B0 :: GLenum
+
+pattern GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG = 0x8C01 :: GLenum
+
+pattern GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG = 0x8C00 :: GLenum
+
+pattern GL_COMPRESSED_RGB_S3TC_DXT1_EXT = 0x83F0 :: GLenum
+
+pattern GL_COMPRESSED_RG_RGTC2 = 0x8DBD :: GLenum
+
+pattern GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT = 0x8C73 :: GLenum
+
+pattern GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT = 0x8C71 :: GLenum
+
+pattern GL_COMPRESSED_SIGNED_R11_EAC = 0x9271 :: GLenum
+
+pattern GL_COMPRESSED_SIGNED_R11_EAC_OES = 0x9271 :: GLenum
+
+pattern GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT = 0x8DBE :: GLenum
+
+pattern GL_COMPRESSED_SIGNED_RED_RGTC1 = 0x8DBC :: GLenum
+
+pattern GL_COMPRESSED_SIGNED_RED_RGTC1_EXT = 0x8DBC :: GLenum
+
+pattern GL_COMPRESSED_SIGNED_RG11_EAC = 0x9273 :: GLenum
+
+pattern GL_COMPRESSED_SIGNED_RG11_EAC_OES = 0x9273 :: GLenum
+
+pattern GL_COMPRESSED_SIGNED_RG_RGTC2 = 0x8DBE :: GLenum
+
+pattern GL_COMPRESSED_SLUMINANCE = 0x8C4A :: GLenum
+
+pattern GL_COMPRESSED_SLUMINANCE_ALPHA = 0x8C4B :: GLenum
+
+pattern GL_COMPRESSED_SLUMINANCE_ALPHA_EXT = 0x8C4B :: GLenum
+
+pattern GL_COMPRESSED_SLUMINANCE_EXT = 0x8C4A :: GLenum
+
+pattern GL_COMPRESSED_SRGB = 0x8C48 :: GLenum
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10 = 0x93DB :: GLenum
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR = 0x93DB :: GLenum
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5 = 0x93D8 :: GLenum
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR = 0x93D8 :: GLenum
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6 = 0x93D9 :: GLenum
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR = 0x93D9 :: GLenum
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8 = 0x93DA :: GLenum
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR = 0x93DA :: GLenum
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10 = 0x93DC :: GLenum
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR = 0x93DC :: GLenum
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12 = 0x93DD :: GLenum
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR = 0x93DD :: GLenum
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES = 0x93E0 :: GLenum
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES = 0x93E1 :: GLenum
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4 = 0x93D0 :: GLenum
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR = 0x93D0 :: GLenum
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES = 0x93E2 :: GLenum
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES = 0x93E3 :: GLenum
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4 = 0x93D1 :: GLenum
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR = 0x93D1 :: GLenum
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES = 0x93E4 :: GLenum
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5 = 0x93D2 :: GLenum
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR = 0x93D2 :: GLenum
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES = 0x93E5 :: GLenum
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES = 0x93E6 :: GLenum
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5 = 0x93D3 :: GLenum
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR = 0x93D3 :: GLenum
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES = 0x93E7 :: GLenum
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6 = 0x93D4 :: GLenum
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR = 0x93D4 :: GLenum
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES = 0x93E8 :: GLenum
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES = 0x93E9 :: GLenum
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5 = 0x93D5 :: GLenum
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR = 0x93D5 :: GLenum
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6 = 0x93D6 :: GLenum
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR = 0x93D6 :: GLenum
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8 = 0x93D7 :: GLenum
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR = 0x93D7 :: GLenum
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC = 0x9279 :: GLenum
+
+pattern GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC_OES = 0x9279 :: GLenum
+
+pattern GL_COMPRESSED_SRGB8_ETC2 = 0x9275 :: GLenum
+
+pattern GL_COMPRESSED_SRGB8_ETC2_OES = 0x9275 :: GLenum
+
+pattern GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9277 :: GLenum
+
+pattern GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2_OES = 0x9277 :: GLenum
+
+pattern GL_COMPRESSED_SRGB_ALPHA = 0x8C49 :: GLenum
+
+pattern GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM = 0x8E8D :: GLenum
+
+pattern GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB = 0x8E8D :: GLenum
+
+pattern GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT = 0x8E8D :: GLenum
+
+pattern GL_COMPRESSED_SRGB_ALPHA_EXT = 0x8C49 :: GLenum
+
+pattern GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT = 0x8A56 :: GLenum
+
+pattern GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV2_IMG = 0x93F0 :: GLenum
+
+pattern GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT = 0x8A57 :: GLenum
+
+pattern GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV2_IMG = 0x93F1 :: GLenum
+
+pattern GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT = 0x8C4D :: GLenum
+
+pattern GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_NV = 0x8C4D :: GLenum
+
+pattern GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT = 0x8C4E :: GLenum
+
+pattern GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_NV = 0x8C4E :: GLenum
+
+pattern GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT = 0x8C4F :: GLenum
+
+pattern GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_NV = 0x8C4F :: GLenum
+
+pattern GL_COMPRESSED_SRGB_EXT = 0x8C48 :: GLenum
+
+pattern GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT = 0x8A54 :: GLenum
+
+pattern GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT = 0x8A55 :: GLenum
+
+pattern GL_COMPRESSED_SRGB_S3TC_DXT1_EXT = 0x8C4C :: GLenum
+
+pattern GL_COMPRESSED_SRGB_S3TC_DXT1_NV = 0x8C4C :: GLenum
+
+pattern GL_COMPRESSED_TEXTURE_FORMATS = 0x86A3 :: GLenum
+
+pattern GL_COMPRESSED_TEXTURE_FORMATS_ARB = 0x86A3 :: GLenum
+
+pattern GL_COMPUTE_PROGRAM_NV = 0x90FB :: GLenum
+
+pattern GL_COMPUTE_PROGRAM_PARAMETER_BUFFER_NV = 0x90FC :: GLenum
+
+pattern GL_COMPUTE_SHADER = 0x91B9 :: GLenum
+
+pattern GL_COMPUTE_SHADER_BIT = 0x00000020 :: GLbitfield
+
+pattern GL_COMPUTE_SHADER_INVOCATIONS = 0x82F5 :: GLenum
+
+pattern GL_COMPUTE_SHADER_INVOCATIONS_ARB = 0x82F5 :: GLenum
+
+pattern GL_COMPUTE_SUBROUTINE = 0x92ED :: GLenum
+
+pattern GL_COMPUTE_SUBROUTINE_UNIFORM = 0x92F3 :: GLenum
+
+pattern GL_COMPUTE_TEXTURE = 0x82A0 :: GLenum
+
+pattern GL_COMPUTE_WORK_GROUP_SIZE = 0x8267 :: GLenum
+
+pattern GL_COMP_BIT_ATI = 0x00000002 :: GLbitfield
+
+pattern GL_CONDITION_SATISFIED = 0x911C :: GLenum
+
+pattern GL_CONDITION_SATISFIED_APPLE = 0x911C :: GLenum
+
+pattern GL_CONFORMANT_NV = 0x9374 :: GLenum
+
+pattern GL_CONIC_CURVE_TO_NV = 0x1A :: GLubyte
+
+pattern GL_CONJOINT_NV = 0x9284 :: GLenum
+
+pattern GL_CONSERVATIVE_RASTERIZATION_INTEL = 0x83FE :: GLenum
+
+pattern GL_CONSERVATIVE_RASTERIZATION_NV = 0x9346 :: GLenum
+
+pattern GL_CONSERVATIVE_RASTER_DILATE_GRANULARITY_NV = 0x937B :: GLenum
+
+pattern GL_CONSERVATIVE_RASTER_DILATE_NV = 0x9379 :: GLenum
+
+pattern GL_CONSERVATIVE_RASTER_DILATE_RANGE_NV = 0x937A :: GLenum
+
+pattern GL_CONSERVATIVE_RASTER_MODE_NV = 0x954D :: GLenum
+
+pattern GL_CONSERVATIVE_RASTER_MODE_POST_SNAP_NV = 0x954E :: GLenum
+
+pattern GL_CONSERVATIVE_RASTER_MODE_PRE_SNAP_NV = 0x9550 :: GLenum
+
+pattern GL_CONSERVATIVE_RASTER_MODE_PRE_SNAP_TRIANGLES_NV = 0x954F :: GLenum
+
+pattern GL_CONSERVE_MEMORY_HINT_PGI = 0x1A1FD :: GLenum
+
+pattern GL_CONSTANT = 0x8576 :: GLenum
+
+pattern GL_CONSTANT_ALPHA = 0x8003 :: GLenum
+
+pattern GL_CONSTANT_ALPHA_EXT = 0x8003 :: GLenum
+
+pattern GL_CONSTANT_ARB = 0x8576 :: GLenum
+
+pattern GL_CONSTANT_ATTENUATION = 0x1207 :: GLenum
+
+pattern GL_CONSTANT_BORDER = 0x8151 :: GLenum
+
+pattern GL_CONSTANT_BORDER_HP = 0x8151 :: GLenum
+
+pattern GL_CONSTANT_COLOR = 0x8001 :: GLenum
+
+pattern GL_CONSTANT_COLOR0_NV = 0x852A :: GLenum
+
+pattern GL_CONSTANT_COLOR1_NV = 0x852B :: GLenum
+
+pattern GL_CONSTANT_COLOR_EXT = 0x8001 :: GLenum
+
+pattern GL_CONSTANT_EXT = 0x8576 :: GLenum
+
+pattern GL_CONSTANT_NV = 0x8576 :: GLenum
+
+pattern GL_CONST_EYE_NV = 0x86E5 :: GLenum
+
+pattern GL_CONTEXT_COMPATIBILITY_PROFILE_BIT = 0x00000002 :: GLbitfield
+
+pattern GL_CONTEXT_CORE_PROFILE_BIT = 0x00000001 :: GLbitfield
+
+pattern GL_CONTEXT_FLAGS = 0x821E :: GLenum
+
+pattern GL_CONTEXT_FLAG_DEBUG_BIT = 0x00000002 :: GLbitfield
+
+pattern GL_CONTEXT_FLAG_DEBUG_BIT_KHR = 0x00000002 :: GLbitfield
+
+pattern GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT = 0x00000001 :: GLbitfield
+
+pattern GL_CONTEXT_FLAG_NO_ERROR_BIT = 0x00000008 :: GLbitfield
+
+pattern GL_CONTEXT_FLAG_NO_ERROR_BIT_KHR = 0x00000008 :: GLbitfield
+
+pattern GL_CONTEXT_FLAG_PROTECTED_CONTENT_BIT_EXT = 0x00000010 :: GLbitfield
+
+pattern GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT = 0x00000004 :: GLbitfield
+
+pattern GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB = 0x00000004 :: GLbitfield
+
+pattern GL_CONTEXT_LOST = 0x0507 :: GLenum
+
+pattern GL_CONTEXT_LOST_KHR = 0x0507 :: GLenum
+
+pattern GL_CONTEXT_LOST_WEBGL = 0x9242 :: GLenum
+
+pattern GL_CONTEXT_PROFILE_MASK = 0x9126 :: GLenum
+
+pattern GL_CONTEXT_RELEASE_BEHAVIOR = 0x82FB :: GLenum
+
+pattern GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH = 0x82FC :: GLenum
+
+pattern GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_KHR = 0x82FC :: GLenum
+
+pattern GL_CONTEXT_RELEASE_BEHAVIOR_KHR = 0x82FB :: GLenum
+
+pattern GL_CONTEXT_ROBUST_ACCESS = 0x90F3 :: GLenum
+
+pattern GL_CONTEXT_ROBUST_ACCESS_EXT = 0x90F3 :: GLenum
+
+pattern GL_CONTEXT_ROBUST_ACCESS_KHR = 0x90F3 :: GLenum
+
+pattern GL_CONTINUOUS_AMD = 0x9007 :: GLenum
+
+pattern GL_CONTRAST_NV = 0x92A1 :: GLenum
+
+pattern GL_CONVEX_HULL_NV = 0x908B :: GLenum
+
+pattern GL_CONVOLUTION_1D = 0x8010 :: GLenum
+
+pattern GL_CONVOLUTION_1D_EXT = 0x8010 :: GLenum
+
+pattern GL_CONVOLUTION_2D = 0x8011 :: GLenum
+
+pattern GL_CONVOLUTION_2D_EXT = 0x8011 :: GLenum
+
+pattern GL_CONVOLUTION_BORDER_COLOR = 0x8154 :: GLenum
+
+pattern GL_CONVOLUTION_BORDER_COLOR_HP = 0x8154 :: GLenum
+
+pattern GL_CONVOLUTION_BORDER_MODE = 0x8013 :: GLenum
+
+pattern GL_CONVOLUTION_BORDER_MODE_EXT = 0x8013 :: GLenum
+
+pattern GL_CONVOLUTION_FILTER_BIAS = 0x8015 :: GLenum
+
+pattern GL_CONVOLUTION_FILTER_BIAS_EXT = 0x8015 :: GLenum
+
+pattern GL_CONVOLUTION_FILTER_SCALE = 0x8014 :: GLenum
+
+pattern GL_CONVOLUTION_FILTER_SCALE_EXT = 0x8014 :: GLenum
+
+pattern GL_CONVOLUTION_FORMAT = 0x8017 :: GLenum
+
+pattern GL_CONVOLUTION_FORMAT_EXT = 0x8017 :: GLenum
+
+pattern GL_CONVOLUTION_HEIGHT = 0x8019 :: GLenum
+
+pattern GL_CONVOLUTION_HEIGHT_EXT = 0x8019 :: GLenum
+
+pattern GL_CONVOLUTION_HINT_SGIX = 0x8316 :: GLenum
+
+pattern GL_CONVOLUTION_WIDTH = 0x8018 :: GLenum
+
+pattern GL_CONVOLUTION_WIDTH_EXT = 0x8018 :: GLenum
+
+pattern GL_CON_0_ATI = 0x8941 :: GLenum
+
+pattern GL_CON_10_ATI = 0x894B :: GLenum
+
+pattern GL_CON_11_ATI = 0x894C :: GLenum
+
+pattern GL_CON_12_ATI = 0x894D :: GLenum
+
+pattern GL_CON_13_ATI = 0x894E :: GLenum
+
+pattern GL_CON_14_ATI = 0x894F :: GLenum
+
+pattern GL_CON_15_ATI = 0x8950 :: GLenum
+
+pattern GL_CON_16_ATI = 0x8951 :: GLenum
+
+pattern GL_CON_17_ATI = 0x8952 :: GLenum
+
+pattern GL_CON_18_ATI = 0x8953 :: GLenum
+
+pattern GL_CON_19_ATI = 0x8954 :: GLenum
+
+pattern GL_CON_1_ATI = 0x8942 :: GLenum
+
+pattern GL_CON_20_ATI = 0x8955 :: GLenum
+
+pattern GL_CON_21_ATI = 0x8956 :: GLenum
+
+pattern GL_CON_22_ATI = 0x8957 :: GLenum
+
+pattern GL_CON_23_ATI = 0x8958 :: GLenum
+
+pattern GL_CON_24_ATI = 0x8959 :: GLenum
+
+pattern GL_CON_25_ATI = 0x895A :: GLenum
+
+pattern GL_CON_26_ATI = 0x895B :: GLenum
+
+pattern GL_CON_27_ATI = 0x895C :: GLenum
+
+pattern GL_CON_28_ATI = 0x895D :: GLenum
+
+pattern GL_CON_29_ATI = 0x895E :: GLenum
+
+pattern GL_CON_2_ATI = 0x8943 :: GLenum
+
+pattern GL_CON_30_ATI = 0x895F :: GLenum
+
+pattern GL_CON_31_ATI = 0x8960 :: GLenum
+
+pattern GL_CON_3_ATI = 0x8944 :: GLenum
+
+pattern GL_CON_4_ATI = 0x8945 :: GLenum
+
+pattern GL_CON_5_ATI = 0x8946 :: GLenum
+
+pattern GL_CON_6_ATI = 0x8947 :: GLenum
+
+pattern GL_CON_7_ATI = 0x8948 :: GLenum
+
+pattern GL_CON_8_ATI = 0x8949 :: GLenum
+
+pattern GL_CON_9_ATI = 0x894A :: GLenum
+
+pattern GL_COORD_REPLACE = 0x8862 :: GLenum
+
+pattern GL_COORD_REPLACE_ARB = 0x8862 :: GLenum
+
+pattern GL_COORD_REPLACE_NV = 0x8862 :: GLenum
+
+pattern GL_COORD_REPLACE_OES = 0x8862 :: GLenum
+
+pattern GL_COPY = 0x1503 :: GLenum
+
+pattern GL_COPY_INVERTED = 0x150C :: GLenum
+
+pattern GL_COPY_PIXEL_TOKEN = 0x0706 :: GLenum
+
+pattern GL_COPY_READ_BUFFER = 0x8F36 :: GLenum
+
+pattern GL_COPY_READ_BUFFER_BINDING = 0x8F36 :: GLenum
+
+pattern GL_COPY_READ_BUFFER_NV = 0x8F36 :: GLenum
+
+pattern GL_COPY_WRITE_BUFFER = 0x8F37 :: GLenum
+
+pattern GL_COPY_WRITE_BUFFER_BINDING = 0x8F37 :: GLenum
+
+pattern GL_COPY_WRITE_BUFFER_NV = 0x8F37 :: GLenum
+
+pattern GL_COUNTER_RANGE_AMD = 0x8BC1 :: GLenum
+
+pattern GL_COUNTER_TYPE_AMD = 0x8BC0 :: GLenum
+
+pattern GL_COUNT_DOWN_NV = 0x9089 :: GLenum
+
+pattern GL_COUNT_UP_NV = 0x9088 :: GLenum
+
+pattern GL_COVERAGE_ALL_FRAGMENTS_NV = 0x8ED5 :: GLenum
+
+pattern GL_COVERAGE_ATTACHMENT_NV = 0x8ED2 :: GLenum
+
+pattern GL_COVERAGE_AUTOMATIC_NV = 0x8ED7 :: GLenum
+
+pattern GL_COVERAGE_BUFFERS_NV = 0x8ED3 :: GLenum
+
+pattern GL_COVERAGE_BUFFER_BIT_NV = 0x00008000 :: GLbitfield
+
+pattern GL_COVERAGE_COMPONENT4_NV = 0x8ED1 :: GLenum
+
+pattern GL_COVERAGE_COMPONENT_NV = 0x8ED0 :: GLenum
+
+pattern GL_COVERAGE_EDGE_FRAGMENTS_NV = 0x8ED6 :: GLenum
+
+pattern GL_COVERAGE_MODULATION_NV = 0x9332 :: GLenum
+
+pattern GL_COVERAGE_MODULATION_TABLE_NV = 0x9331 :: GLenum
+
+pattern GL_COVERAGE_MODULATION_TABLE_SIZE_NV = 0x9333 :: GLenum
+
+pattern GL_COVERAGE_SAMPLES_NV = 0x8ED4 :: GLenum
+
+pattern GL_CPU_OPTIMIZED_QCOM = 0x8FB1 :: GLenum
+
+pattern GL_CUBIC_CURVE_TO_NV = 0x0C :: GLubyte
+
+pattern GL_CUBIC_EXT = 0x8334 :: GLenum
+
+pattern GL_CUBIC_HP = 0x815F :: GLenum
+
+pattern GL_CUBIC_IMG = 0x9139 :: GLenum
+
+pattern GL_CUBIC_MIPMAP_LINEAR_IMG = 0x913B :: GLenum
+
+pattern GL_CUBIC_MIPMAP_NEAREST_IMG = 0x913A :: GLenum
+
+pattern GL_CULL_FACE = 0x0B44 :: GLenum
+
+pattern GL_CULL_FACE_MODE = 0x0B45 :: GLenum
+
+pattern GL_CULL_FRAGMENT_NV = 0x86E7 :: GLenum
+
+pattern GL_CULL_MODES_NV = 0x86E0 :: GLenum
+
+pattern GL_CULL_VERTEX_EXT = 0x81AA :: GLenum
+
+pattern GL_CULL_VERTEX_EYE_POSITION_EXT = 0x81AB :: GLenum
+
+pattern GL_CULL_VERTEX_IBM = 103050 :: GLenum
+
+pattern GL_CULL_VERTEX_OBJECT_POSITION_EXT = 0x81AC :: GLenum
+
+pattern GL_CURRENT_ATTRIB_NV = 0x8626 :: GLenum
+
+pattern GL_CURRENT_BINORMAL_EXT = 0x843C :: GLenum
+
+pattern GL_CURRENT_BIT = 0x00000001 :: GLbitfield
+
+pattern GL_CURRENT_COLOR = 0x0B00 :: GLenum
+
+pattern GL_CURRENT_FOG_COORD = 0x8453 :: GLenum
+
+pattern GL_CURRENT_FOG_COORDINATE = 0x8453 :: GLenum
+
+pattern GL_CURRENT_FOG_COORDINATE_EXT = 0x8453 :: GLenum
+
+pattern GL_CURRENT_INDEX = 0x0B01 :: GLenum
+
+pattern GL_CURRENT_MATRIX_ARB = 0x8641 :: GLenum
+
+pattern GL_CURRENT_MATRIX_INDEX_ARB = 0x8845 :: GLenum
+
+pattern GL_CURRENT_MATRIX_NV = 0x8641 :: GLenum
+
+pattern GL_CURRENT_MATRIX_STACK_DEPTH_ARB = 0x8640 :: GLenum
+
+pattern GL_CURRENT_MATRIX_STACK_DEPTH_NV = 0x8640 :: GLenum
+
+pattern GL_CURRENT_NORMAL = 0x0B02 :: GLenum
+
+pattern GL_CURRENT_OCCLUSION_QUERY_ID_NV = 0x8865 :: GLenum
+
+pattern GL_CURRENT_PALETTE_MATRIX_ARB = 0x8843 :: GLenum
+
+pattern GL_CURRENT_PALETTE_MATRIX_OES = 0x8843 :: GLenum
+
+pattern GL_CURRENT_PROGRAM = 0x8B8D :: GLenum
+
+pattern GL_CURRENT_QUERY = 0x8865 :: GLenum
+
+pattern GL_CURRENT_QUERY_ARB = 0x8865 :: GLenum
+
+pattern GL_CURRENT_QUERY_EXT = 0x8865 :: GLenum
+
+pattern GL_CURRENT_RASTER_COLOR = 0x0B04 :: GLenum
+
+pattern GL_CURRENT_RASTER_DISTANCE = 0x0B09 :: GLenum
+
+pattern GL_CURRENT_RASTER_INDEX = 0x0B05 :: GLenum
+
+pattern GL_CURRENT_RASTER_NORMAL_SGIX = 0x8406 :: GLenum
+
+pattern GL_CURRENT_RASTER_POSITION = 0x0B07 :: GLenum
+
+pattern GL_CURRENT_RASTER_POSITION_VALID = 0x0B08 :: GLenum
+
+pattern GL_CURRENT_RASTER_SECONDARY_COLOR = 0x845F :: GLenum
+
+pattern GL_CURRENT_RASTER_TEXTURE_COORDS = 0x0B06 :: GLenum
+
+pattern GL_CURRENT_SECONDARY_COLOR = 0x8459 :: GLenum
+
+pattern GL_CURRENT_SECONDARY_COLOR_EXT = 0x8459 :: GLenum
+
+pattern GL_CURRENT_TANGENT_EXT = 0x843B :: GLenum
+
+pattern GL_CURRENT_TEXTURE_COORDS = 0x0B03 :: GLenum
+
+pattern GL_CURRENT_TIME_NV = 0x8E28 :: GLenum
+
+pattern GL_CURRENT_VERTEX_ATTRIB = 0x8626 :: GLenum
+
+pattern GL_CURRENT_VERTEX_ATTRIB_ARB = 0x8626 :: GLenum
+
+pattern GL_CURRENT_VERTEX_EXT = 0x87E2 :: GLenum
+
+pattern GL_CURRENT_VERTEX_WEIGHT_EXT = 0x850B :: GLenum
+
+pattern GL_CURRENT_WEIGHT_ARB = 0x86A8 :: GLenum
+
+pattern GL_CW = 0x0900 :: GLenum
+
+pattern GL_D3D12_FENCE_VALUE_EXT = 0x9595 :: GLenum
+
+pattern GL_DARKEN = 0x9297 :: GLenum
+
+pattern GL_DARKEN_KHR = 0x9297 :: GLenum
+
+pattern GL_DARKEN_NV = 0x9297 :: GLenum
+
+pattern GL_DATA_BUFFER_AMD = 0x9151 :: GLenum
+
+pattern GL_DEBUG_ASSERT_MESA = 0x875B :: GLenum
+
+pattern GL_DEBUG_CALLBACK_FUNCTION = 0x8244 :: GLenum
+
+pattern GL_DEBUG_CALLBACK_FUNCTION_ARB = 0x8244 :: GLenum
+
+pattern GL_DEBUG_CALLBACK_FUNCTION_KHR = 0x8244 :: GLenum
+
+pattern GL_DEBUG_CALLBACK_USER_PARAM = 0x8245 :: GLenum
+
+pattern GL_DEBUG_CALLBACK_USER_PARAM_ARB = 0x8245 :: GLenum
+
+pattern GL_DEBUG_CALLBACK_USER_PARAM_KHR = 0x8245 :: GLenum
+
+pattern GL_DEBUG_CATEGORY_API_ERROR_AMD = 0x9149 :: GLenum
+
+pattern GL_DEBUG_CATEGORY_APPLICATION_AMD = 0x914F :: GLenum
+
+pattern GL_DEBUG_CATEGORY_DEPRECATION_AMD = 0x914B :: GLenum
+
+pattern GL_DEBUG_CATEGORY_OTHER_AMD = 0x9150 :: GLenum
+
+pattern GL_DEBUG_CATEGORY_PERFORMANCE_AMD = 0x914D :: GLenum
+
+pattern GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD = 0x914E :: GLenum
+
+pattern GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD = 0x914C :: GLenum
+
+pattern GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD = 0x914A :: GLenum
+
+pattern GL_DEBUG_GROUP_STACK_DEPTH = 0x826D :: GLenum
+
+pattern GL_DEBUG_GROUP_STACK_DEPTH_KHR = 0x826D :: GLenum
+
+pattern GL_DEBUG_LOGGED_MESSAGES = 0x9145 :: GLenum
+
+pattern GL_DEBUG_LOGGED_MESSAGES_AMD = 0x9145 :: GLenum
+
+pattern GL_DEBUG_LOGGED_MESSAGES_ARB = 0x9145 :: GLenum
+
+pattern GL_DEBUG_LOGGED_MESSAGES_KHR = 0x9145 :: GLenum
+
+pattern GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH = 0x8243 :: GLenum
+
+pattern GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB = 0x8243 :: GLenum
+
+pattern GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR = 0x8243 :: GLenum
+
+pattern GL_DEBUG_OBJECT_MESA = 0x8759 :: GLenum
+
+pattern GL_DEBUG_OUTPUT = 0x92E0 :: GLenum
+
+pattern GL_DEBUG_OUTPUT_KHR = 0x92E0 :: GLenum
+
+pattern GL_DEBUG_OUTPUT_SYNCHRONOUS = 0x8242 :: GLenum
+
+pattern GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB = 0x8242 :: GLenum
+
+pattern GL_DEBUG_OUTPUT_SYNCHRONOUS_KHR = 0x8242 :: GLenum
+
+pattern GL_DEBUG_PRINT_MESA = 0x875A :: GLenum
+
+pattern GL_DEBUG_SEVERITY_HIGH = 0x9146 :: GLenum
+
+pattern GL_DEBUG_SEVERITY_HIGH_AMD = 0x9146 :: GLenum
+
+pattern GL_DEBUG_SEVERITY_HIGH_ARB = 0x9146 :: GLenum
+
+pattern GL_DEBUG_SEVERITY_HIGH_KHR = 0x9146 :: GLenum
+
+pattern GL_DEBUG_SEVERITY_LOW = 0x9148 :: GLenum
+
+pattern GL_DEBUG_SEVERITY_LOW_AMD = 0x9148 :: GLenum
+
+pattern GL_DEBUG_SEVERITY_LOW_ARB = 0x9148 :: GLenum
+
+pattern GL_DEBUG_SEVERITY_LOW_KHR = 0x9148 :: GLenum
+
+pattern GL_DEBUG_SEVERITY_MEDIUM = 0x9147 :: GLenum
+
+pattern GL_DEBUG_SEVERITY_MEDIUM_AMD = 0x9147 :: GLenum
+
+pattern GL_DEBUG_SEVERITY_MEDIUM_ARB = 0x9147 :: GLenum
+
+pattern GL_DEBUG_SEVERITY_MEDIUM_KHR = 0x9147 :: GLenum
+
+pattern GL_DEBUG_SEVERITY_NOTIFICATION = 0x826B :: GLenum
+
+pattern GL_DEBUG_SEVERITY_NOTIFICATION_KHR = 0x826B :: GLenum
+
+pattern GL_DEBUG_SOURCE_API = 0x8246 :: GLenum
+
+pattern GL_DEBUG_SOURCE_API_ARB = 0x8246 :: GLenum
+
+pattern GL_DEBUG_SOURCE_API_KHR = 0x8246 :: GLenum
+
+pattern GL_DEBUG_SOURCE_APPLICATION = 0x824A :: GLenum
+
+pattern GL_DEBUG_SOURCE_APPLICATION_ARB = 0x824A :: GLenum
+
+pattern GL_DEBUG_SOURCE_APPLICATION_KHR = 0x824A :: GLenum
+
+pattern GL_DEBUG_SOURCE_OTHER = 0x824B :: GLenum
+
+pattern GL_DEBUG_SOURCE_OTHER_ARB = 0x824B :: GLenum
+
+pattern GL_DEBUG_SOURCE_OTHER_KHR = 0x824B :: GLenum
+
+pattern GL_DEBUG_SOURCE_SHADER_COMPILER = 0x8248 :: GLenum
+
+pattern GL_DEBUG_SOURCE_SHADER_COMPILER_ARB = 0x8248 :: GLenum
+
+pattern GL_DEBUG_SOURCE_SHADER_COMPILER_KHR = 0x8248 :: GLenum
+
+pattern GL_DEBUG_SOURCE_THIRD_PARTY = 0x8249 :: GLenum
+
+pattern GL_DEBUG_SOURCE_THIRD_PARTY_ARB = 0x8249 :: GLenum
+
+pattern GL_DEBUG_SOURCE_THIRD_PARTY_KHR = 0x8249 :: GLenum
+
+pattern GL_DEBUG_SOURCE_WINDOW_SYSTEM = 0x8247 :: GLenum
+
+pattern GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB = 0x8247 :: GLenum
+
+pattern GL_DEBUG_SOURCE_WINDOW_SYSTEM_KHR = 0x8247 :: GLenum
+
+pattern GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR = 0x824D :: GLenum
+
+pattern GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB = 0x824D :: GLenum
+
+pattern GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR = 0x824D :: GLenum
+
+pattern GL_DEBUG_TYPE_ERROR = 0x824C :: GLenum
+
+pattern GL_DEBUG_TYPE_ERROR_ARB = 0x824C :: GLenum
+
+pattern GL_DEBUG_TYPE_ERROR_KHR = 0x824C :: GLenum
+
+pattern GL_DEBUG_TYPE_MARKER = 0x8268 :: GLenum
+
+pattern GL_DEBUG_TYPE_MARKER_KHR = 0x8268 :: GLenum
+
+pattern GL_DEBUG_TYPE_OTHER = 0x8251 :: GLenum
+
+pattern GL_DEBUG_TYPE_OTHER_ARB = 0x8251 :: GLenum
+
+pattern GL_DEBUG_TYPE_OTHER_KHR = 0x8251 :: GLenum
+
+pattern GL_DEBUG_TYPE_PERFORMANCE = 0x8250 :: GLenum
+
+pattern GL_DEBUG_TYPE_PERFORMANCE_ARB = 0x8250 :: GLenum
+
+pattern GL_DEBUG_TYPE_PERFORMANCE_KHR = 0x8250 :: GLenum
+
+pattern GL_DEBUG_TYPE_POP_GROUP = 0x826A :: GLenum
+
+pattern GL_DEBUG_TYPE_POP_GROUP_KHR = 0x826A :: GLenum
+
+pattern GL_DEBUG_TYPE_PORTABILITY = 0x824F :: GLenum
+
+pattern GL_DEBUG_TYPE_PORTABILITY_ARB = 0x824F :: GLenum
+
+pattern GL_DEBUG_TYPE_PORTABILITY_KHR = 0x824F :: GLenum
+
+pattern GL_DEBUG_TYPE_PUSH_GROUP = 0x8269 :: GLenum
+
+pattern GL_DEBUG_TYPE_PUSH_GROUP_KHR = 0x8269 :: GLenum
+
+pattern GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR = 0x824E :: GLenum
+
+pattern GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB = 0x824E :: GLenum
+
+pattern GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR = 0x824E :: GLenum
+
+pattern GL_DECAL = 0x2101 :: GLenum
+
+pattern GL_DECODE_EXT = 0x8A49 :: GLenum
+
+pattern GL_DECR = 0x1E03 :: GLenum
+
+pattern GL_DECR_WRAP = 0x8508 :: GLenum
+
+pattern GL_DECR_WRAP_EXT = 0x8508 :: GLenum
+
+pattern GL_DECR_WRAP_OES = 0x8508 :: GLenum
+
+pattern GL_DEDICATED_MEMORY_OBJECT_EXT = 0x9581 :: GLenum
+
+pattern GL_DEFORMATIONS_MASK_SGIX = 0x8196 :: GLenum
+
+pattern GL_DELETE_STATUS = 0x8B80 :: GLenum
+
+pattern GL_DEPENDENT_AR_TEXTURE_2D_NV = 0x86E9 :: GLenum
+
+pattern GL_DEPENDENT_GB_TEXTURE_2D_NV = 0x86EA :: GLenum
+
+pattern GL_DEPENDENT_HILO_TEXTURE_2D_NV = 0x8858 :: GLenum
+
+pattern GL_DEPENDENT_RGB_TEXTURE_3D_NV = 0x8859 :: GLenum
+
+pattern GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV = 0x885A :: GLenum
+
+pattern GL_DEPTH = 0x1801 :: GLenum
+
+pattern GL_DEPTH24_STENCIL8 = 0x88F0 :: GLenum
+
+pattern GL_DEPTH24_STENCIL8_EXT = 0x88F0 :: GLenum
+
+pattern GL_DEPTH24_STENCIL8_OES = 0x88F0 :: GLenum
+
+pattern GL_DEPTH32F_STENCIL8 = 0x8CAD :: GLenum
+
+pattern GL_DEPTH32F_STENCIL8_NV = 0x8DAC :: GLenum
+
+pattern GL_DEPTH_ATTACHMENT = 0x8D00 :: GLenum
+
+pattern GL_DEPTH_ATTACHMENT_EXT = 0x8D00 :: GLenum
+
+pattern GL_DEPTH_ATTACHMENT_OES = 0x8D00 :: GLenum
+
+pattern GL_DEPTH_BIAS = 0x0D1F :: GLenum
+
+pattern GL_DEPTH_BITS = 0x0D56 :: GLenum
+
+pattern GL_DEPTH_BOUNDS_EXT = 0x8891 :: GLenum
+
+pattern GL_DEPTH_BOUNDS_TEST_EXT = 0x8890 :: GLenum
+
+pattern GL_DEPTH_BUFFER_BIT = 0x00000100 :: GLbitfield
+
+pattern GL_DEPTH_BUFFER_BIT0_QCOM = 0x00000100 :: GLbitfield
+
+pattern GL_DEPTH_BUFFER_BIT1_QCOM = 0x00000200 :: GLbitfield
+
+pattern GL_DEPTH_BUFFER_BIT2_QCOM = 0x00000400 :: GLbitfield
+
+pattern GL_DEPTH_BUFFER_BIT3_QCOM = 0x00000800 :: GLbitfield
+
+pattern GL_DEPTH_BUFFER_BIT4_QCOM = 0x00001000 :: GLbitfield
+
+pattern GL_DEPTH_BUFFER_BIT5_QCOM = 0x00002000 :: GLbitfield
+
+pattern GL_DEPTH_BUFFER_BIT6_QCOM = 0x00004000 :: GLbitfield
+
+pattern GL_DEPTH_BUFFER_BIT7_QCOM = 0x00008000 :: GLbitfield
+
+pattern GL_DEPTH_BUFFER_FLOAT_MODE_NV = 0x8DAF :: GLenum
+
+pattern GL_DEPTH_CLAMP = 0x864F :: GLenum
+
+pattern GL_DEPTH_CLAMP_EXT = 0x864F :: GLenum
+
+pattern GL_DEPTH_CLAMP_FAR_AMD = 0x901F :: GLenum
+
+pattern GL_DEPTH_CLAMP_NEAR_AMD = 0x901E :: GLenum
+
+pattern GL_DEPTH_CLAMP_NV = 0x864F :: GLenum
+
+pattern GL_DEPTH_CLEAR_VALUE = 0x0B73 :: GLenum
+
+pattern GL_DEPTH_COMPONENT = 0x1902 :: GLenum
+
+pattern GL_DEPTH_COMPONENT16 = 0x81A5 :: GLenum
+
+pattern GL_DEPTH_COMPONENT16_ARB = 0x81A5 :: GLenum
+
+pattern GL_DEPTH_COMPONENT16_NONLINEAR_NV = 0x8E2C :: GLenum
+
+pattern GL_DEPTH_COMPONENT16_OES = 0x81A5 :: GLenum
+
+pattern GL_DEPTH_COMPONENT16_SGIX = 0x81A5 :: GLenum
+
+pattern GL_DEPTH_COMPONENT24 = 0x81A6 :: GLenum
+
+pattern GL_DEPTH_COMPONENT24_ARB = 0x81A6 :: GLenum
+
+pattern GL_DEPTH_COMPONENT24_OES = 0x81A6 :: GLenum
+
+pattern GL_DEPTH_COMPONENT24_SGIX = 0x81A6 :: GLenum
+
+pattern GL_DEPTH_COMPONENT32 = 0x81A7 :: GLenum
+
+pattern GL_DEPTH_COMPONENT32F = 0x8CAC :: GLenum
+
+pattern GL_DEPTH_COMPONENT32F_NV = 0x8DAB :: GLenum
+
+pattern GL_DEPTH_COMPONENT32_ARB = 0x81A7 :: GLenum
+
+pattern GL_DEPTH_COMPONENT32_OES = 0x81A7 :: GLenum
+
+pattern GL_DEPTH_COMPONENT32_SGIX = 0x81A7 :: GLenum
+
+pattern GL_DEPTH_COMPONENTS = 0x8284 :: GLenum
+
+pattern GL_DEPTH_EXT = 0x1801 :: GLenum
+
+pattern GL_DEPTH_FUNC = 0x0B74 :: GLenum
+
+pattern GL_DEPTH_PASS_INSTRUMENT_COUNTERS_SGIX = 0x8311 :: GLenum
+
+pattern GL_DEPTH_PASS_INSTRUMENT_MAX_SGIX = 0x8312 :: GLenum
+
+pattern GL_DEPTH_PASS_INSTRUMENT_SGIX = 0x8310 :: GLenum
+
+pattern GL_DEPTH_RANGE = 0x0B70 :: GLenum
+
+pattern GL_DEPTH_RENDERABLE = 0x8287 :: GLenum
+
+pattern GL_DEPTH_SAMPLES_NV = 0x932D :: GLenum
+
+pattern GL_DEPTH_SCALE = 0x0D1E :: GLenum
+
+pattern GL_DEPTH_STENCIL = 0x84F9 :: GLenum
+
+pattern GL_DEPTH_STENCIL_ATTACHMENT = 0x821A :: GLenum
+
+pattern GL_DEPTH_STENCIL_EXT = 0x84F9 :: GLenum
+
+pattern GL_DEPTH_STENCIL_MESA = 0x8750 :: GLenum
+
+pattern GL_DEPTH_STENCIL_NV = 0x84F9 :: GLenum
+
+pattern GL_DEPTH_STENCIL_OES = 0x84F9 :: GLenum
+
+pattern GL_DEPTH_STENCIL_TEXTURE_MODE = 0x90EA :: GLenum
+
+pattern GL_DEPTH_STENCIL_TO_BGRA_NV = 0x886F :: GLenum
+
+pattern GL_DEPTH_STENCIL_TO_RGBA_NV = 0x886E :: GLenum
+
+pattern GL_DEPTH_TEST = 0x0B71 :: GLenum
+
+pattern GL_DEPTH_TEXTURE_MODE = 0x884B :: GLenum
+
+pattern GL_DEPTH_TEXTURE_MODE_ARB = 0x884B :: GLenum
+
+pattern GL_DEPTH_WRITEMASK = 0x0B72 :: GLenum
+
+pattern GL_DETACHED_BUFFERS_NV = 0x95AB :: GLenum
+
+pattern GL_DETACHED_MEMORY_INCARNATION_NV = 0x95A9 :: GLenum
+
+pattern GL_DETACHED_TEXTURES_NV = 0x95AA :: GLenum
+
+pattern GL_DETAIL_TEXTURE_2D_BINDING_SGIS = 0x8096 :: GLenum
+
+pattern GL_DETAIL_TEXTURE_2D_SGIS = 0x8095 :: GLenum
+
+pattern GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS = 0x809C :: GLenum
+
+pattern GL_DETAIL_TEXTURE_LEVEL_SGIS = 0x809A :: GLenum
+
+pattern GL_DETAIL_TEXTURE_MODE_SGIS = 0x809B :: GLenum
+
+pattern GL_DEVICE_LUID_EXT = 0x9599 :: GLenum
+
+pattern GL_DEVICE_NODE_MASK_EXT = 0x959A :: GLenum
+
+pattern GL_DEVICE_UUID_EXT = 0x9597 :: GLenum
+
+pattern GL_DIFFERENCE = 0x929E :: GLenum
+
+pattern GL_DIFFERENCE_KHR = 0x929E :: GLenum
+
+pattern GL_DIFFERENCE_NV = 0x929E :: GLenum
+
+pattern GL_DIFFUSE = 0x1201 :: GLenum
+
+pattern GL_DISCARD_ATI = 0x8763 :: GLenum
+
+pattern GL_DISCARD_NV = 0x8530 :: GLenum
+
+pattern GL_DISCRETE_AMD = 0x9006 :: GLenum
+
+pattern GL_DISJOINT_NV = 0x9283 :: GLenum
+
+pattern GL_DISPATCH_INDIRECT_BUFFER = 0x90EE :: GLenum
+
+pattern GL_DISPATCH_INDIRECT_BUFFER_BINDING = 0x90EF :: GLenum
+
+pattern GL_DISPLAY_LIST = 0x82E7 :: GLenum
+
+pattern GL_DISTANCE_ATTENUATION_EXT = 0x8129 :: GLenum
+
+pattern GL_DISTANCE_ATTENUATION_SGIS = 0x8129 :: GLenum
+
+pattern GL_DITHER = 0x0BD0 :: GLenum
+
+pattern GL_DMP_PROGRAM_BINARY_DMP = 0x9253 :: GLenum
+
+pattern GL_DOMAIN = 0x0A02 :: GLenum
+
+pattern GL_DONT_CARE = 0x1100 :: GLenum
+
+pattern GL_DOT2_ADD_ATI = 0x896C :: GLenum
+
+pattern GL_DOT3_ATI = 0x8966 :: GLenum
+
+pattern GL_DOT3_RGB = 0x86AE :: GLenum
+
+pattern GL_DOT3_RGBA = 0x86AF :: GLenum
+
+pattern GL_DOT3_RGBA_ARB = 0x86AF :: GLenum
+
+pattern GL_DOT3_RGBA_EXT = 0x8741 :: GLenum
+
+pattern GL_DOT3_RGBA_IMG = 0x86AF :: GLenum
+
+pattern GL_DOT3_RGB_ARB = 0x86AE :: GLenum
+
+pattern GL_DOT3_RGB_EXT = 0x8740 :: GLenum
+
+pattern GL_DOT4_ATI = 0x8967 :: GLenum
+
+pattern GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV = 0x885D :: GLenum
+
+pattern GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV = 0x86F3 :: GLenum
+
+pattern GL_DOT_PRODUCT_DEPTH_REPLACE_NV = 0x86ED :: GLenum
+
+pattern GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV = 0x86F1 :: GLenum
+
+pattern GL_DOT_PRODUCT_NV = 0x86EC :: GLenum
+
+pattern GL_DOT_PRODUCT_PASS_THROUGH_NV = 0x885B :: GLenum
+
+pattern GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV = 0x86F2 :: GLenum
+
+pattern GL_DOT_PRODUCT_TEXTURE_1D_NV = 0x885C :: GLenum
+
+pattern GL_DOT_PRODUCT_TEXTURE_2D_NV = 0x86EE :: GLenum
+
+pattern GL_DOT_PRODUCT_TEXTURE_3D_NV = 0x86EF :: GLenum
+
+pattern GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV = 0x86F0 :: GLenum
+
+pattern GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV = 0x864E :: GLenum
+
+pattern GL_DOUBLE = 0x140A :: GLenum
+
+pattern GL_DOUBLEBUFFER = 0x0C32 :: GLenum
+
+pattern GL_DOUBLE_EXT = 0x140A :: GLenum
+
+pattern GL_DOUBLE_MAT2 = 0x8F46 :: GLenum
+
+pattern GL_DOUBLE_MAT2_EXT = 0x8F46 :: GLenum
+
+pattern GL_DOUBLE_MAT2x3 = 0x8F49 :: GLenum
+
+pattern GL_DOUBLE_MAT2x3_EXT = 0x8F49 :: GLenum
+
+pattern GL_DOUBLE_MAT2x4 = 0x8F4A :: GLenum
+
+pattern GL_DOUBLE_MAT2x4_EXT = 0x8F4A :: GLenum
+
+pattern GL_DOUBLE_MAT3 = 0x8F47 :: GLenum
+
+pattern GL_DOUBLE_MAT3_EXT = 0x8F47 :: GLenum
+
+pattern GL_DOUBLE_MAT3x2 = 0x8F4B :: GLenum
+
+pattern GL_DOUBLE_MAT3x2_EXT = 0x8F4B :: GLenum
+
+pattern GL_DOUBLE_MAT3x4 = 0x8F4C :: GLenum
+
+pattern GL_DOUBLE_MAT3x4_EXT = 0x8F4C :: GLenum
+
+pattern GL_DOUBLE_MAT4 = 0x8F48 :: GLenum
+
+pattern GL_DOUBLE_MAT4_EXT = 0x8F48 :: GLenum
+
+pattern GL_DOUBLE_MAT4x2 = 0x8F4D :: GLenum
+
+pattern GL_DOUBLE_MAT4x2_EXT = 0x8F4D :: GLenum
+
+pattern GL_DOUBLE_MAT4x3 = 0x8F4E :: GLenum
+
+pattern GL_DOUBLE_MAT4x3_EXT = 0x8F4E :: GLenum
+
+pattern GL_DOUBLE_VEC2 = 0x8FFC :: GLenum
+
+pattern GL_DOUBLE_VEC2_EXT = 0x8FFC :: GLenum
+
+pattern GL_DOUBLE_VEC3 = 0x8FFD :: GLenum
+
+pattern GL_DOUBLE_VEC3_EXT = 0x8FFD :: GLenum
+
+pattern GL_DOUBLE_VEC4 = 0x8FFE :: GLenum
+
+pattern GL_DOUBLE_VEC4_EXT = 0x8FFE :: GLenum
+
+pattern GL_DOWNSAMPLE_SCALES_IMG = 0x913E :: GLenum
+
+pattern GL_DRAW_ARRAYS_COMMAND_NV = 0x0003 :: GLenum
+
+pattern GL_DRAW_ARRAYS_INSTANCED_COMMAND_NV = 0x0007 :: GLenum
+
+pattern GL_DRAW_ARRAYS_STRIP_COMMAND_NV = 0x0005 :: GLenum
+
+pattern GL_DRAW_BUFFER = 0x0C01 :: GLenum
+
+pattern GL_DRAW_BUFFER0 = 0x8825 :: GLenum
+
+pattern GL_DRAW_BUFFER0_ARB = 0x8825 :: GLenum
+
+pattern GL_DRAW_BUFFER0_ATI = 0x8825 :: GLenum
+
+pattern GL_DRAW_BUFFER0_EXT = 0x8825 :: GLenum
+
+pattern GL_DRAW_BUFFER0_NV = 0x8825 :: GLenum
+
+pattern GL_DRAW_BUFFER1 = 0x8826 :: GLenum
+
+pattern GL_DRAW_BUFFER10 = 0x882F :: GLenum
+
+pattern GL_DRAW_BUFFER10_ARB = 0x882F :: GLenum
+
+pattern GL_DRAW_BUFFER10_ATI = 0x882F :: GLenum
+
+pattern GL_DRAW_BUFFER10_EXT = 0x882F :: GLenum
+
+pattern GL_DRAW_BUFFER10_NV = 0x882F :: GLenum
+
+pattern GL_DRAW_BUFFER11 = 0x8830 :: GLenum
+
+pattern GL_DRAW_BUFFER11_ARB = 0x8830 :: GLenum
+
+pattern GL_DRAW_BUFFER11_ATI = 0x8830 :: GLenum
+
+pattern GL_DRAW_BUFFER11_EXT = 0x8830 :: GLenum
+
+pattern GL_DRAW_BUFFER11_NV = 0x8830 :: GLenum
+
+pattern GL_DRAW_BUFFER12 = 0x8831 :: GLenum
+
+pattern GL_DRAW_BUFFER12_ARB = 0x8831 :: GLenum
+
+pattern GL_DRAW_BUFFER12_ATI = 0x8831 :: GLenum
+
+pattern GL_DRAW_BUFFER12_EXT = 0x8831 :: GLenum
+
+pattern GL_DRAW_BUFFER12_NV = 0x8831 :: GLenum
+
+pattern GL_DRAW_BUFFER13 = 0x8832 :: GLenum
+
+pattern GL_DRAW_BUFFER13_ARB = 0x8832 :: GLenum
+
+pattern GL_DRAW_BUFFER13_ATI = 0x8832 :: GLenum
+
+pattern GL_DRAW_BUFFER13_EXT = 0x8832 :: GLenum
+
+pattern GL_DRAW_BUFFER13_NV = 0x8832 :: GLenum
+
+pattern GL_DRAW_BUFFER14 = 0x8833 :: GLenum
+
+pattern GL_DRAW_BUFFER14_ARB = 0x8833 :: GLenum
+
+pattern GL_DRAW_BUFFER14_ATI = 0x8833 :: GLenum
+
+pattern GL_DRAW_BUFFER14_EXT = 0x8833 :: GLenum
+
+pattern GL_DRAW_BUFFER14_NV = 0x8833 :: GLenum
+
+pattern GL_DRAW_BUFFER15 = 0x8834 :: GLenum
+
+pattern GL_DRAW_BUFFER15_ARB = 0x8834 :: GLenum
+
+pattern GL_DRAW_BUFFER15_ATI = 0x8834 :: GLenum
+
+pattern GL_DRAW_BUFFER15_EXT = 0x8834 :: GLenum
+
+pattern GL_DRAW_BUFFER15_NV = 0x8834 :: GLenum
+
+pattern GL_DRAW_BUFFER1_ARB = 0x8826 :: GLenum
+
+pattern GL_DRAW_BUFFER1_ATI = 0x8826 :: GLenum
+
+pattern GL_DRAW_BUFFER1_EXT = 0x8826 :: GLenum
+
+pattern GL_DRAW_BUFFER1_NV = 0x8826 :: GLenum
+
+pattern GL_DRAW_BUFFER2 = 0x8827 :: GLenum
+
+pattern GL_DRAW_BUFFER2_ARB = 0x8827 :: GLenum
+
+pattern GL_DRAW_BUFFER2_ATI = 0x8827 :: GLenum
+
+pattern GL_DRAW_BUFFER2_EXT = 0x8827 :: GLenum
+
+pattern GL_DRAW_BUFFER2_NV = 0x8827 :: GLenum
+
+pattern GL_DRAW_BUFFER3 = 0x8828 :: GLenum
+
+pattern GL_DRAW_BUFFER3_ARB = 0x8828 :: GLenum
+
+pattern GL_DRAW_BUFFER3_ATI = 0x8828 :: GLenum
+
+pattern GL_DRAW_BUFFER3_EXT = 0x8828 :: GLenum
+
+pattern GL_DRAW_BUFFER3_NV = 0x8828 :: GLenum
+
+pattern GL_DRAW_BUFFER4 = 0x8829 :: GLenum
+
+pattern GL_DRAW_BUFFER4_ARB = 0x8829 :: GLenum
+
+pattern GL_DRAW_BUFFER4_ATI = 0x8829 :: GLenum
+
+pattern GL_DRAW_BUFFER4_EXT = 0x8829 :: GLenum
+
+pattern GL_DRAW_BUFFER4_NV = 0x8829 :: GLenum
+
+pattern GL_DRAW_BUFFER5 = 0x882A :: GLenum
+
+pattern GL_DRAW_BUFFER5_ARB = 0x882A :: GLenum
+
+pattern GL_DRAW_BUFFER5_ATI = 0x882A :: GLenum
+
+pattern GL_DRAW_BUFFER5_EXT = 0x882A :: GLenum
+
+pattern GL_DRAW_BUFFER5_NV = 0x882A :: GLenum
+
+pattern GL_DRAW_BUFFER6 = 0x882B :: GLenum
+
+pattern GL_DRAW_BUFFER6_ARB = 0x882B :: GLenum
+
+pattern GL_DRAW_BUFFER6_ATI = 0x882B :: GLenum
+
+pattern GL_DRAW_BUFFER6_EXT = 0x882B :: GLenum
+
+pattern GL_DRAW_BUFFER6_NV = 0x882B :: GLenum
+
+pattern GL_DRAW_BUFFER7 = 0x882C :: GLenum
+
+pattern GL_DRAW_BUFFER7_ARB = 0x882C :: GLenum
+
+pattern GL_DRAW_BUFFER7_ATI = 0x882C :: GLenum
+
+pattern GL_DRAW_BUFFER7_EXT = 0x882C :: GLenum
+
+pattern GL_DRAW_BUFFER7_NV = 0x882C :: GLenum
+
+pattern GL_DRAW_BUFFER8 = 0x882D :: GLenum
+
+pattern GL_DRAW_BUFFER8_ARB = 0x882D :: GLenum
+
+pattern GL_DRAW_BUFFER8_ATI = 0x882D :: GLenum
+
+pattern GL_DRAW_BUFFER8_EXT = 0x882D :: GLenum
+
+pattern GL_DRAW_BUFFER8_NV = 0x882D :: GLenum
+
+pattern GL_DRAW_BUFFER9 = 0x882E :: GLenum
+
+pattern GL_DRAW_BUFFER9_ARB = 0x882E :: GLenum
+
+pattern GL_DRAW_BUFFER9_ATI = 0x882E :: GLenum
+
+pattern GL_DRAW_BUFFER9_EXT = 0x882E :: GLenum
+
+pattern GL_DRAW_BUFFER9_NV = 0x882E :: GLenum
+
+pattern GL_DRAW_BUFFER_EXT = 0x0C01 :: GLenum
+
+pattern GL_DRAW_ELEMENTS_COMMAND_NV = 0x0002 :: GLenum
+
+pattern GL_DRAW_ELEMENTS_INSTANCED_COMMAND_NV = 0x0006 :: GLenum
+
+pattern GL_DRAW_ELEMENTS_STRIP_COMMAND_NV = 0x0004 :: GLenum
+
+pattern GL_DRAW_FRAMEBUFFER = 0x8CA9 :: GLenum
+
+pattern GL_DRAW_FRAMEBUFFER_ANGLE = 0x8CA9 :: GLenum
+
+pattern GL_DRAW_FRAMEBUFFER_APPLE = 0x8CA9 :: GLenum
+
+pattern GL_DRAW_FRAMEBUFFER_BINDING = 0x8CA6 :: GLenum
+
+pattern GL_DRAW_FRAMEBUFFER_BINDING_ANGLE = 0x8CA6 :: GLenum
+
+pattern GL_DRAW_FRAMEBUFFER_BINDING_APPLE = 0x8CA6 :: GLenum
+
+pattern GL_DRAW_FRAMEBUFFER_BINDING_EXT = 0x8CA6 :: GLenum
+
+pattern GL_DRAW_FRAMEBUFFER_BINDING_NV = 0x8CA6 :: GLenum
+
+pattern GL_DRAW_FRAMEBUFFER_EXT = 0x8CA9 :: GLenum
+
+pattern GL_DRAW_FRAMEBUFFER_NV = 0x8CA9 :: GLenum
+
+pattern GL_DRAW_INDIRECT_ADDRESS_NV = 0x8F41 :: GLenum
+
+pattern GL_DRAW_INDIRECT_BUFFER = 0x8F3F :: GLenum
+
+pattern GL_DRAW_INDIRECT_BUFFER_BINDING = 0x8F43 :: GLenum
+
+pattern GL_DRAW_INDIRECT_LENGTH_NV = 0x8F42 :: GLenum
+
+pattern GL_DRAW_INDIRECT_UNIFIED_NV = 0x8F40 :: GLenum
+
+pattern GL_DRAW_PIXELS_APPLE = 0x8A0A :: GLenum
+
+pattern GL_DRAW_PIXEL_TOKEN = 0x0705 :: GLenum
+
+pattern GL_DRIVER_UUID_EXT = 0x9598 :: GLenum
+
+pattern GL_DSDT8_MAG8_INTENSITY8_NV = 0x870B :: GLenum
+
+pattern GL_DSDT8_MAG8_NV = 0x870A :: GLenum
+
+pattern GL_DSDT8_NV = 0x8709 :: GLenum
+
+pattern GL_DSDT_MAG_INTENSITY_NV = 0x86DC :: GLenum
+
+pattern GL_DSDT_MAG_NV = 0x86F6 :: GLenum
+
+pattern GL_DSDT_MAG_VIB_NV = 0x86F7 :: GLenum
+
+pattern GL_DSDT_NV = 0x86F5 :: GLenum
+
+pattern GL_DST_ALPHA = 0x0304 :: GLenum
+
+pattern GL_DST_ATOP_NV = 0x928F :: GLenum
+
+pattern GL_DST_COLOR = 0x0306 :: GLenum
+
+pattern GL_DST_IN_NV = 0x928B :: GLenum
+
+pattern GL_DST_NV = 0x9287 :: GLenum
+
+pattern GL_DST_OUT_NV = 0x928D :: GLenum
+
+pattern GL_DST_OVER_NV = 0x9289 :: GLenum
+
+pattern GL_DS_BIAS_NV = 0x8716 :: GLenum
+
+pattern GL_DS_SCALE_NV = 0x8710 :: GLenum
+
+pattern GL_DT_BIAS_NV = 0x8717 :: GLenum
+
+pattern GL_DT_SCALE_NV = 0x8711 :: GLenum
+
+pattern GL_DU8DV8_ATI = 0x877A :: GLenum
+
+pattern GL_DUAL_ALPHA12_SGIS = 0x8112 :: GLenum
+
+pattern GL_DUAL_ALPHA16_SGIS = 0x8113 :: GLenum
+
+pattern GL_DUAL_ALPHA4_SGIS = 0x8110 :: GLenum
+
+pattern GL_DUAL_ALPHA8_SGIS = 0x8111 :: GLenum
+
+pattern GL_DUAL_INTENSITY12_SGIS = 0x811A :: GLenum
+
+pattern GL_DUAL_INTENSITY16_SGIS = 0x811B :: GLenum
+
+pattern GL_DUAL_INTENSITY4_SGIS = 0x8118 :: GLenum
+
+pattern GL_DUAL_INTENSITY8_SGIS = 0x8119 :: GLenum
+
+pattern GL_DUAL_LUMINANCE12_SGIS = 0x8116 :: GLenum
+
+pattern GL_DUAL_LUMINANCE16_SGIS = 0x8117 :: GLenum
+
+pattern GL_DUAL_LUMINANCE4_SGIS = 0x8114 :: GLenum
+
+pattern GL_DUAL_LUMINANCE8_SGIS = 0x8115 :: GLenum
+
+pattern GL_DUAL_LUMINANCE_ALPHA4_SGIS = 0x811C :: GLenum
+
+pattern GL_DUAL_LUMINANCE_ALPHA8_SGIS = 0x811D :: GLenum
+
+pattern GL_DUAL_TEXTURE_SELECT_SGIS = 0x8124 :: GLenum
+
+pattern GL_DUDV_ATI = 0x8779 :: GLenum
+
+pattern GL_DUP_FIRST_CUBIC_CURVE_TO_NV = 0xF2 :: GLubyte
+
+pattern GL_DUP_LAST_CUBIC_CURVE_TO_NV = 0xF4 :: GLubyte
+
+pattern GL_DYNAMIC_ATI = 0x8761 :: GLenum
+
+pattern GL_DYNAMIC_COPY = 0x88EA :: GLenum
+
+pattern GL_DYNAMIC_COPY_ARB = 0x88EA :: GLenum
+
+pattern GL_DYNAMIC_DRAW = 0x88E8 :: GLenum
+
+pattern GL_DYNAMIC_DRAW_ARB = 0x88E8 :: GLenum
+
+pattern GL_DYNAMIC_READ = 0x88E9 :: GLenum
+
+pattern GL_DYNAMIC_READ_ARB = 0x88E9 :: GLenum
+
+pattern GL_DYNAMIC_STORAGE_BIT = 0x0100 :: GLbitfield
+
+pattern GL_DYNAMIC_STORAGE_BIT_EXT = 0x0100 :: GLbitfield
+
+pattern GL_EDGEFLAG_BIT_PGI = 0x00040000 :: GLbitfield
+
+pattern GL_EDGE_FLAG = 0x0B43 :: GLenum
+
+pattern GL_EDGE_FLAG_ARRAY = 0x8079 :: GLenum
+
+pattern GL_EDGE_FLAG_ARRAY_ADDRESS_NV = 0x8F26 :: GLenum
+
+pattern GL_EDGE_FLAG_ARRAY_BUFFER_BINDING = 0x889B :: GLenum
+
+pattern GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB = 0x889B :: GLenum
+
+pattern GL_EDGE_FLAG_ARRAY_COUNT_EXT = 0x808D :: GLenum
+
+pattern GL_EDGE_FLAG_ARRAY_EXT = 0x8079 :: GLenum
+
+pattern GL_EDGE_FLAG_ARRAY_LENGTH_NV = 0x8F30 :: GLenum
+
+pattern GL_EDGE_FLAG_ARRAY_LIST_IBM = 103075 :: GLenum
+
+pattern GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM = 103085 :: GLenum
+
+pattern GL_EDGE_FLAG_ARRAY_POINTER = 0x8093 :: GLenum
+
+pattern GL_EDGE_FLAG_ARRAY_POINTER_EXT = 0x8093 :: GLenum
+
+pattern GL_EDGE_FLAG_ARRAY_STRIDE = 0x808C :: GLenum
+
+pattern GL_EDGE_FLAG_ARRAY_STRIDE_EXT = 0x808C :: GLenum
+
+pattern GL_EFFECTIVE_RASTER_SAMPLES_EXT = 0x932C :: GLenum
+
+pattern GL_EIGHTH_BIT_ATI = 0x00000020 :: GLbitfield
+
+pattern GL_ELEMENT_ADDRESS_COMMAND_NV = 0x0008 :: GLenum
+
+pattern GL_ELEMENT_ARRAY_ADDRESS_NV = 0x8F29 :: GLenum
+
+pattern GL_ELEMENT_ARRAY_APPLE = 0x8A0C :: GLenum
+
+pattern GL_ELEMENT_ARRAY_ATI = 0x8768 :: GLenum
+
+pattern GL_ELEMENT_ARRAY_BARRIER_BIT = 0x00000002 :: GLbitfield
+
+pattern GL_ELEMENT_ARRAY_BARRIER_BIT_EXT = 0x00000002 :: GLbitfield
+
+pattern GL_ELEMENT_ARRAY_BUFFER = 0x8893 :: GLenum
+
+pattern GL_ELEMENT_ARRAY_BUFFER_ARB = 0x8893 :: GLenum
+
+pattern GL_ELEMENT_ARRAY_BUFFER_BINDING = 0x8895 :: GLenum
+
+pattern GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB = 0x8895 :: GLenum
+
+pattern GL_ELEMENT_ARRAY_LENGTH_NV = 0x8F33 :: GLenum
+
+pattern GL_ELEMENT_ARRAY_POINTER_APPLE = 0x8A0E :: GLenum
+
+pattern GL_ELEMENT_ARRAY_POINTER_ATI = 0x876A :: GLenum
+
+pattern GL_ELEMENT_ARRAY_TYPE_APPLE = 0x8A0D :: GLenum
+
+pattern GL_ELEMENT_ARRAY_TYPE_ATI = 0x8769 :: GLenum
+
+pattern GL_ELEMENT_ARRAY_UNIFIED_NV = 0x8F1F :: GLenum
+
+pattern GL_EMBOSS_CONSTANT_NV = 0x855E :: GLenum
+
+pattern GL_EMBOSS_LIGHT_NV = 0x855D :: GLenum
+
+pattern GL_EMBOSS_MAP_NV = 0x855F :: GLenum
+
+pattern GL_EMISSION = 0x1600 :: GLenum
+
+pattern GL_ENABLE_BIT = 0x00002000 :: GLbitfield
+
+pattern GL_EQUAL = 0x0202 :: GLenum
+
+pattern GL_EQUIV = 0x1509 :: GLenum
+
+pattern GL_ETC1_RGB8_OES = 0x8D64 :: GLenum
+
+pattern GL_ETC1_SRGB8_NV = 0x88EE :: GLenum
+
+pattern GL_EVAL_2D_NV = 0x86C0 :: GLenum
+
+pattern GL_EVAL_BIT = 0x00010000 :: GLbitfield
+
+pattern GL_EVAL_FRACTIONAL_TESSELLATION_NV = 0x86C5 :: GLenum
+
+pattern GL_EVAL_TRIANGULAR_2D_NV = 0x86C1 :: GLenum
+
+pattern GL_EVAL_VERTEX_ATTRIB0_NV = 0x86C6 :: GLenum
+
+pattern GL_EVAL_VERTEX_ATTRIB10_NV = 0x86D0 :: GLenum
+
+pattern GL_EVAL_VERTEX_ATTRIB11_NV = 0x86D1 :: GLenum
+
+pattern GL_EVAL_VERTEX_ATTRIB12_NV = 0x86D2 :: GLenum
+
+pattern GL_EVAL_VERTEX_ATTRIB13_NV = 0x86D3 :: GLenum
+
+pattern GL_EVAL_VERTEX_ATTRIB14_NV = 0x86D4 :: GLenum
+
+pattern GL_EVAL_VERTEX_ATTRIB15_NV = 0x86D5 :: GLenum
+
+pattern GL_EVAL_VERTEX_ATTRIB1_NV = 0x86C7 :: GLenum
+
+pattern GL_EVAL_VERTEX_ATTRIB2_NV = 0x86C8 :: GLenum
+
+pattern GL_EVAL_VERTEX_ATTRIB3_NV = 0x86C9 :: GLenum
+
+pattern GL_EVAL_VERTEX_ATTRIB4_NV = 0x86CA :: GLenum
+
+pattern GL_EVAL_VERTEX_ATTRIB5_NV = 0x86CB :: GLenum
+
+pattern GL_EVAL_VERTEX_ATTRIB6_NV = 0x86CC :: GLenum
+
+pattern GL_EVAL_VERTEX_ATTRIB7_NV = 0x86CD :: GLenum
+
+pattern GL_EVAL_VERTEX_ATTRIB8_NV = 0x86CE :: GLenum
+
+pattern GL_EVAL_VERTEX_ATTRIB9_NV = 0x86CF :: GLenum
+
+pattern GL_EXCLUSION = 0x92A0 :: GLenum
+
+pattern GL_EXCLUSION_KHR = 0x92A0 :: GLenum
+
+pattern GL_EXCLUSION_NV = 0x92A0 :: GLenum
+
+pattern GL_EXCLUSIVE_EXT = 0x8F11 :: GLenum
+
+pattern GL_EXP = 0x0800 :: GLenum
+
+pattern GL_EXP2 = 0x0801 :: GLenum
+
+pattern GL_EXPAND_NEGATE_NV = 0x8539 :: GLenum
+
+pattern GL_EXPAND_NORMAL_NV = 0x8538 :: GLenum
+
+pattern GL_EXTENSIONS = 0x1F03 :: GLenum
+
+pattern GL_EXTERNAL_STORAGE_BIT_NVX = 0x2000 :: GLbitfield
+
+pattern GL_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD = 0x9160 :: GLenum
+
+pattern GL_EYE_DISTANCE_TO_LINE_SGIS = 0x81F2 :: GLenum
+
+pattern GL_EYE_DISTANCE_TO_POINT_SGIS = 0x81F0 :: GLenum
+
+pattern GL_EYE_LINEAR = 0x2400 :: GLenum
+
+pattern GL_EYE_LINEAR_NV = 0x2400 :: GLenum
+
+pattern GL_EYE_LINE_SGIS = 0x81F6 :: GLenum
+
+pattern GL_EYE_PLANE = 0x2502 :: GLenum
+
+pattern GL_EYE_PLANE_ABSOLUTE_NV = 0x855C :: GLenum
+
+pattern GL_EYE_POINT_SGIS = 0x81F4 :: GLenum
+
+pattern GL_EYE_RADIAL_NV = 0x855B :: GLenum
+
+pattern GL_E_TIMES_F_NV = 0x8531 :: GLenum
+
+pattern GL_FACTOR_ALPHA_MODULATE_IMG = 0x8C07 :: GLenum
+
+pattern GL_FACTOR_MAX_AMD = 0x901D :: GLenum
+
+pattern GL_FACTOR_MIN_AMD = 0x901C :: GLenum
+
+pattern GL_FAILURE_NV = 0x9030 :: GLenum
+
+pattern GL_FALSE = 0 :: GLboolean
+
+pattern GL_FASTEST = 0x1101 :: GLenum
+
+pattern GL_FEEDBACK = 0x1C01 :: GLenum
+
+pattern GL_FEEDBACK_BUFFER_POINTER = 0x0DF0 :: GLenum
+
+pattern GL_FEEDBACK_BUFFER_SIZE = 0x0DF1 :: GLenum
+
+pattern GL_FEEDBACK_BUFFER_TYPE = 0x0DF2 :: GLenum
+
+pattern GL_FENCE_APPLE = 0x8A0B :: GLenum
+
+pattern GL_FENCE_CONDITION_NV = 0x84F4 :: GLenum
+
+pattern GL_FENCE_STATUS_NV = 0x84F3 :: GLenum
+
+pattern GL_FETCH_PER_SAMPLE_ARM = 0x8F65 :: GLenum
+
+pattern GL_FIELDS_NV = 0x8E27 :: GLenum
+
+pattern GL_FIELD_LOWER_NV = 0x9023 :: GLenum
+
+pattern GL_FIELD_UPPER_NV = 0x9022 :: GLenum
+
+pattern GL_FILE_NAME_NV = 0x9074 :: GLenum
+
+pattern GL_FILL = 0x1B02 :: GLenum
+
+pattern GL_FILL_NV = 0x1B02 :: GLenum
+
+pattern GL_FILL_RECTANGLE_NV = 0x933C :: GLenum
+
+pattern GL_FILTER = 0x829A :: GLenum
+
+pattern GL_FILTER4_SGIS = 0x8146 :: GLenum
+
+pattern GL_FIRST_TO_REST_NV = 0x90AF :: GLenum
+
+pattern GL_FIRST_VERTEX_CONVENTION = 0x8E4D :: GLenum
+
+pattern GL_FIRST_VERTEX_CONVENTION_EXT = 0x8E4D :: GLenum
+
+pattern GL_FIRST_VERTEX_CONVENTION_OES = 0x8E4D :: GLenum
+
+pattern GL_FIXED = 0x140C :: GLenum
+
+pattern GL_FIXED_OES = 0x140C :: GLenum
+
+pattern GL_FIXED_ONLY = 0x891D :: GLenum
+
+pattern GL_FIXED_ONLY_ARB = 0x891D :: GLenum
+
+pattern GL_FLAT = 0x1D00 :: GLenum
+
+pattern GL_FLOAT = 0x1406 :: GLenum
+
+pattern GL_FLOAT16_MAT2_AMD = 0x91C5 :: GLenum
+
+pattern GL_FLOAT16_MAT2x3_AMD = 0x91C8 :: GLenum
+
+pattern GL_FLOAT16_MAT2x4_AMD = 0x91C9 :: GLenum
+
+pattern GL_FLOAT16_MAT3_AMD = 0x91C6 :: GLenum
+
+pattern GL_FLOAT16_MAT3x2_AMD = 0x91CA :: GLenum
+
+pattern GL_FLOAT16_MAT3x4_AMD = 0x91CB :: GLenum
+
+pattern GL_FLOAT16_MAT4_AMD = 0x91C7 :: GLenum
+
+pattern GL_FLOAT16_MAT4x2_AMD = 0x91CC :: GLenum
+
+pattern GL_FLOAT16_MAT4x3_AMD = 0x91CD :: GLenum
+
+pattern GL_FLOAT16_NV = 0x8FF8 :: GLenum
+
+pattern GL_FLOAT16_VEC2_NV = 0x8FF9 :: GLenum
+
+pattern GL_FLOAT16_VEC3_NV = 0x8FFA :: GLenum
+
+pattern GL_FLOAT16_VEC4_NV = 0x8FFB :: GLenum
+
+pattern GL_FLOAT_32_UNSIGNED_INT_24_8_REV = 0x8DAD :: GLenum
+
+pattern GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV = 0x8DAD :: GLenum
+
+pattern GL_FLOAT_CLEAR_COLOR_VALUE_NV = 0x888D :: GLenum
+
+pattern GL_FLOAT_MAT2 = 0x8B5A :: GLenum
+
+pattern GL_FLOAT_MAT2_ARB = 0x8B5A :: GLenum
+
+pattern GL_FLOAT_MAT2x3 = 0x8B65 :: GLenum
+
+pattern GL_FLOAT_MAT2x3_NV = 0x8B65 :: GLenum
+
+pattern GL_FLOAT_MAT2x4 = 0x8B66 :: GLenum
+
+pattern GL_FLOAT_MAT2x4_NV = 0x8B66 :: GLenum
+
+pattern GL_FLOAT_MAT3 = 0x8B5B :: GLenum
+
+pattern GL_FLOAT_MAT3_ARB = 0x8B5B :: GLenum
+
+pattern GL_FLOAT_MAT3x2 = 0x8B67 :: GLenum
+
+pattern GL_FLOAT_MAT3x2_NV = 0x8B67 :: GLenum
+
+pattern GL_FLOAT_MAT3x4 = 0x8B68 :: GLenum
+
+pattern GL_FLOAT_MAT3x4_NV = 0x8B68 :: GLenum
+
+pattern GL_FLOAT_MAT4 = 0x8B5C :: GLenum
+
+pattern GL_FLOAT_MAT4_ARB = 0x8B5C :: GLenum
+
+pattern GL_FLOAT_MAT4x2 = 0x8B69 :: GLenum
+
+pattern GL_FLOAT_MAT4x2_NV = 0x8B69 :: GLenum
+
+pattern GL_FLOAT_MAT4x3 = 0x8B6A :: GLenum
+
+pattern GL_FLOAT_MAT4x3_NV = 0x8B6A :: GLenum
+
+pattern GL_FLOAT_R16_NV = 0x8884 :: GLenum
+
+pattern GL_FLOAT_R32_NV = 0x8885 :: GLenum
+
+pattern GL_FLOAT_RG16_NV = 0x8886 :: GLenum
+
+pattern GL_FLOAT_RG32_NV = 0x8887 :: GLenum
+
+pattern GL_FLOAT_RGB16_NV = 0x8888 :: GLenum
+
+pattern GL_FLOAT_RGB32_NV = 0x8889 :: GLenum
+
+pattern GL_FLOAT_RGBA16_NV = 0x888A :: GLenum
+
+pattern GL_FLOAT_RGBA32_NV = 0x888B :: GLenum
+
+pattern GL_FLOAT_RGBA_MODE_NV = 0x888E :: GLenum
+
+pattern GL_FLOAT_RGBA_NV = 0x8883 :: GLenum
+
+pattern GL_FLOAT_RGB_NV = 0x8882 :: GLenum
+
+pattern GL_FLOAT_RG_NV = 0x8881 :: GLenum
+
+pattern GL_FLOAT_R_NV = 0x8880 :: GLenum
+
+pattern GL_FLOAT_VEC2 = 0x8B50 :: GLenum
+
+pattern GL_FLOAT_VEC2_ARB = 0x8B50 :: GLenum
+
+pattern GL_FLOAT_VEC3 = 0x8B51 :: GLenum
+
+pattern GL_FLOAT_VEC3_ARB = 0x8B51 :: GLenum
+
+pattern GL_FLOAT_VEC4 = 0x8B52 :: GLenum
+
+pattern GL_FLOAT_VEC4_ARB = 0x8B52 :: GLenum
+
+pattern GL_FOG = 0x0B60 :: GLenum
+
+pattern GL_FOG_BIT = 0x00000080 :: GLbitfield
+
+pattern GL_FOG_COLOR = 0x0B66 :: GLenum
+
+pattern GL_FOG_COORD = 0x8451 :: GLenum
+
+pattern GL_FOG_COORDINATE = 0x8451 :: GLenum
+
+pattern GL_FOG_COORDINATE_ARRAY = 0x8457 :: GLenum
+
+pattern GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING = 0x889D :: GLenum
+
+pattern GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB = 0x889D :: GLenum
+
+pattern GL_FOG_COORDINATE_ARRAY_EXT = 0x8457 :: GLenum
+
+pattern GL_FOG_COORDINATE_ARRAY_LIST_IBM = 103076 :: GLenum
+
+pattern GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM = 103086 :: GLenum
+
+pattern GL_FOG_COORDINATE_ARRAY_POINTER = 0x8456 :: GLenum
+
+pattern GL_FOG_COORDINATE_ARRAY_POINTER_EXT = 0x8456 :: GLenum
+
+pattern GL_FOG_COORDINATE_ARRAY_STRIDE = 0x8455 :: GLenum
+
+pattern GL_FOG_COORDINATE_ARRAY_STRIDE_EXT = 0x8455 :: GLenum
+
+pattern GL_FOG_COORDINATE_ARRAY_TYPE = 0x8454 :: GLenum
+
+pattern GL_FOG_COORDINATE_ARRAY_TYPE_EXT = 0x8454 :: GLenum
+
+pattern GL_FOG_COORDINATE_EXT = 0x8451 :: GLenum
+
+pattern GL_FOG_COORDINATE_SOURCE = 0x8450 :: GLenum
+
+pattern GL_FOG_COORDINATE_SOURCE_EXT = 0x8450 :: GLenum
+
+pattern GL_FOG_COORD_ARRAY = 0x8457 :: GLenum
+
+pattern GL_FOG_COORD_ARRAY_ADDRESS_NV = 0x8F28 :: GLenum
+
+pattern GL_FOG_COORD_ARRAY_BUFFER_BINDING = 0x889D :: GLenum
+
+pattern GL_FOG_COORD_ARRAY_LENGTH_NV = 0x8F32 :: GLenum
+
+pattern GL_FOG_COORD_ARRAY_POINTER = 0x8456 :: GLenum
+
+pattern GL_FOG_COORD_ARRAY_STRIDE = 0x8455 :: GLenum
+
+pattern GL_FOG_COORD_ARRAY_TYPE = 0x8454 :: GLenum
+
+pattern GL_FOG_COORD_SRC = 0x8450 :: GLenum
+
+pattern GL_FOG_DENSITY = 0x0B62 :: GLenum
+
+pattern GL_FOG_DISTANCE_MODE_NV = 0x855A :: GLenum
+
+pattern GL_FOG_END = 0x0B64 :: GLenum
+
+pattern GL_FOG_FUNC_POINTS_SGIS = 0x812B :: GLenum
+
+pattern GL_FOG_FUNC_SGIS = 0x812A :: GLenum
+
+pattern GL_FOG_HINT = 0x0C54 :: GLenum
+
+pattern GL_FOG_INDEX = 0x0B61 :: GLenum
+
+pattern GL_FOG_MODE = 0x0B65 :: GLenum
+
+pattern GL_FOG_OFFSET_SGIX = 0x8198 :: GLenum
+
+pattern GL_FOG_OFFSET_VALUE_SGIX = 0x8199 :: GLenum
+
+pattern GL_FOG_SPECULAR_TEXTURE_WIN = 0x80EC :: GLenum
+
+pattern GL_FOG_START = 0x0B63 :: GLenum
+
+pattern GL_FONT_ASCENDER_BIT_NV = 0x00200000 :: GLbitfield
+
+pattern GL_FONT_DESCENDER_BIT_NV = 0x00400000 :: GLbitfield
+
+pattern GL_FONT_GLYPHS_AVAILABLE_NV = 0x9368 :: GLenum
+
+pattern GL_FONT_HAS_KERNING_BIT_NV = 0x10000000 :: GLbitfield
+
+pattern GL_FONT_HEIGHT_BIT_NV = 0x00800000 :: GLbitfield
+
+pattern GL_FONT_MAX_ADVANCE_HEIGHT_BIT_NV = 0x02000000 :: GLbitfield
+
+pattern GL_FONT_MAX_ADVANCE_WIDTH_BIT_NV = 0x01000000 :: GLbitfield
+
+pattern GL_FONT_NUM_GLYPH_INDICES_BIT_NV = 0x20000000 :: GLbitfield
+
+pattern GL_FONT_TARGET_UNAVAILABLE_NV = 0x9369 :: GLenum
+
+pattern GL_FONT_UNAVAILABLE_NV = 0x936A :: GLenum
+
+pattern GL_FONT_UNDERLINE_POSITION_BIT_NV = 0x04000000 :: GLbitfield
+
+pattern GL_FONT_UNDERLINE_THICKNESS_BIT_NV = 0x08000000 :: GLbitfield
+
+pattern GL_FONT_UNINTELLIGIBLE_NV = 0x936B :: GLenum
+
+pattern GL_FONT_UNITS_PER_EM_BIT_NV = 0x00100000 :: GLbitfield
+
+pattern GL_FONT_X_MAX_BOUNDS_BIT_NV = 0x00040000 :: GLbitfield
+
+pattern GL_FONT_X_MIN_BOUNDS_BIT_NV = 0x00010000 :: GLbitfield
+
+pattern GL_FONT_Y_MAX_BOUNDS_BIT_NV = 0x00080000 :: GLbitfield
+
+pattern GL_FONT_Y_MIN_BOUNDS_BIT_NV = 0x00020000 :: GLbitfield
+
+pattern GL_FORCE_BLUE_TO_ONE_NV = 0x8860 :: GLenum
+
+pattern GL_FORMAT_SUBSAMPLE_244_244_OML = 0x8983 :: GLenum
+
+pattern GL_FORMAT_SUBSAMPLE_24_24_OML = 0x8982 :: GLenum
+
+pattern GL_FOVEATION_ENABLE_BIT_QCOM = 0x00000001 :: GLbitfield
+
+pattern GL_FOVEATION_SCALED_BIN_METHOD_BIT_QCOM = 0x00000002 :: GLbitfield
+
+pattern GL_FOVEATION_SUBSAMPLED_LAYOUT_METHOD_BIT_QCOM = 0x00000004 :: GLbitfield
+
+pattern GL_FRACTIONAL_EVEN = 0x8E7C :: GLenum
+
+pattern GL_FRACTIONAL_EVEN_EXT = 0x8E7C :: GLenum
+
+pattern GL_FRACTIONAL_EVEN_OES = 0x8E7C :: GLenum
+
+pattern GL_FRACTIONAL_ODD = 0x8E7B :: GLenum
+
+pattern GL_FRACTIONAL_ODD_EXT = 0x8E7B :: GLenum
+
+pattern GL_FRACTIONAL_ODD_OES = 0x8E7B :: GLenum
+
+pattern GL_FRAGMENTS_INSTRUMENT_COUNTERS_SGIX = 0x8314 :: GLenum
+
+pattern GL_FRAGMENTS_INSTRUMENT_MAX_SGIX = 0x8315 :: GLenum
+
+pattern GL_FRAGMENTS_INSTRUMENT_SGIX = 0x8313 :: GLenum
+
+pattern GL_FRAGMENT_ALPHA_MODULATE_IMG = 0x8C08 :: GLenum
+
+pattern GL_FRAGMENT_COLOR_EXT = 0x834C :: GLenum
+
+pattern GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX = 0x8402 :: GLenum
+
+pattern GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX = 0x8403 :: GLenum
+
+pattern GL_FRAGMENT_COLOR_MATERIAL_SGIX = 0x8401 :: GLenum
+
+pattern GL_FRAGMENT_COVERAGE_COLOR_NV = 0x92DE :: GLenum
+
+pattern GL_FRAGMENT_COVERAGE_TO_COLOR_NV = 0x92DD :: GLenum
+
+pattern GL_FRAGMENT_DEPTH = 0x8452 :: GLenum
+
+pattern GL_FRAGMENT_DEPTH_EXT = 0x8452 :: GLenum
+
+pattern GL_FRAGMENT_INPUT_NV = 0x936D :: GLenum
+
+pattern GL_FRAGMENT_INTERPOLATION_OFFSET_BITS = 0x8E5D :: GLenum
+
+pattern GL_FRAGMENT_INTERPOLATION_OFFSET_BITS_OES = 0x8E5D :: GLenum
+
+pattern GL_FRAGMENT_LIGHT0_SGIX = 0x840C :: GLenum
+
+pattern GL_FRAGMENT_LIGHT1_SGIX = 0x840D :: GLenum
+
+pattern GL_FRAGMENT_LIGHT2_SGIX = 0x840E :: GLenum
+
+pattern GL_FRAGMENT_LIGHT3_SGIX = 0x840F :: GLenum
+
+pattern GL_FRAGMENT_LIGHT4_SGIX = 0x8410 :: GLenum
+
+pattern GL_FRAGMENT_LIGHT5_SGIX = 0x8411 :: GLenum
+
+pattern GL_FRAGMENT_LIGHT6_SGIX = 0x8412 :: GLenum
+
+pattern GL_FRAGMENT_LIGHT7_SGIX = 0x8413 :: GLenum
+
+pattern GL_FRAGMENT_LIGHTING_SGIX = 0x8400 :: GLenum
+
+pattern GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX = 0x840A :: GLenum
+
+pattern GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX = 0x8408 :: GLenum
+
+pattern GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX = 0x840B :: GLenum
+
+pattern GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX = 0x8409 :: GLenum
+
+pattern GL_FRAGMENT_MATERIAL_EXT = 0x8349 :: GLenum
+
+pattern GL_FRAGMENT_NORMAL_EXT = 0x834A :: GLenum
+
+pattern GL_FRAGMENT_PROGRAM_ARB = 0x8804 :: GLenum
+
+pattern GL_FRAGMENT_PROGRAM_BINDING_NV = 0x8873 :: GLenum
+
+pattern GL_FRAGMENT_PROGRAM_CALLBACK_DATA_MESA = 0x8BB3 :: GLenum
+
+pattern GL_FRAGMENT_PROGRAM_CALLBACK_FUNC_MESA = 0x8BB2 :: GLenum
+
+pattern GL_FRAGMENT_PROGRAM_CALLBACK_MESA = 0x8BB1 :: GLenum
+
+pattern GL_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV = 0x8E5D :: GLenum
+
+pattern GL_FRAGMENT_PROGRAM_NV = 0x8870 :: GLenum
+
+pattern GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV = 0x8DA4 :: GLenum
+
+pattern GL_FRAGMENT_PROGRAM_POSITION_MESA = 0x8BB0 :: GLenum
+
+pattern GL_FRAGMENT_SHADER = 0x8B30 :: GLenum
+
+pattern GL_FRAGMENT_SHADER_ARB = 0x8B30 :: GLenum
+
+pattern GL_FRAGMENT_SHADER_ATI = 0x8920 :: GLenum
+
+pattern GL_FRAGMENT_SHADER_BIT = 0x00000002 :: GLbitfield
+
+pattern GL_FRAGMENT_SHADER_BIT_EXT = 0x00000002 :: GLbitfield
+
+pattern GL_FRAGMENT_SHADER_DERIVATIVE_HINT = 0x8B8B :: GLenum
+
+pattern GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB = 0x8B8B :: GLenum
+
+pattern GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES = 0x8B8B :: GLenum
+
+pattern GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT = 0x8A52 :: GLenum
+
+pattern GL_FRAGMENT_SHADER_FRAMEBUFFER_FETCH_MRT_ARM = 0x8F66 :: GLenum
+
+pattern GL_FRAGMENT_SHADER_INVOCATIONS = 0x82F4 :: GLenum
+
+pattern GL_FRAGMENT_SHADER_INVOCATIONS_ARB = 0x82F4 :: GLenum
+
+pattern GL_FRAGMENT_SUBROUTINE = 0x92EC :: GLenum
+
+pattern GL_FRAGMENT_SUBROUTINE_UNIFORM = 0x92F2 :: GLenum
+
+pattern GL_FRAGMENT_TEXTURE = 0x829F :: GLenum
+
+pattern GL_FRAMEBUFFER = 0x8D40 :: GLenum
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = 0x8215 :: GLenum
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_ANGLE = 0x93A3 :: GLenum
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = 0x8214 :: GLenum
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = 0x8210 :: GLenum
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT = 0x8210 :: GLenum
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = 0x8211 :: GLenum
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT = 0x8211 :: GLenum
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = 0x8216 :: GLenum
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = 0x8213 :: GLenum
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED = 0x8DA7 :: GLenum
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB = 0x8DA7 :: GLenum
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT = 0x8DA7 :: GLenum
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_LAYERED_OES = 0x8DA7 :: GLenum
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8CD1 :: GLenum
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT = 0x8CD1 :: GLenum
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES = 0x8CD1 :: GLenum
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8CD0 :: GLenum
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT = 0x8CD0 :: GLenum
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES = 0x8CD0 :: GLenum
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE = 0x8212 :: GLenum
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = 0x8217 :: GLenum
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT = 0x8CD4 :: GLenum
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES = 0x8CD4 :: GLenum
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR = 0x9632 :: GLenum
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3 :: GLenum
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT = 0x8CD3 :: GLenum
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES = 0x8CD3 :: GLenum
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = 0x8CD4 :: GLenum
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT = 0x8CD4 :: GLenum
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8CD2 :: GLenum
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT = 0x8CD2 :: GLenum
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES = 0x8CD2 :: GLenum
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR = 0x9630 :: GLenum
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT = 0x8D6C :: GLenum
+
+pattern GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SCALE_IMG = 0x913F :: GLenum
+
+pattern GL_FRAMEBUFFER_BARRIER_BIT = 0x00000400 :: GLbitfield
+
+pattern GL_FRAMEBUFFER_BARRIER_BIT_EXT = 0x00000400 :: GLbitfield
+
+pattern GL_FRAMEBUFFER_BINDING = 0x8CA6 :: GLenum
+
+pattern GL_FRAMEBUFFER_BINDING_ANGLE = 0x8CA6 :: GLenum
+
+pattern GL_FRAMEBUFFER_BINDING_EXT = 0x8CA6 :: GLenum
+
+pattern GL_FRAMEBUFFER_BINDING_OES = 0x8CA6 :: GLenum
+
+pattern GL_FRAMEBUFFER_BLEND = 0x828B :: GLenum
+
+pattern GL_FRAMEBUFFER_COMPLETE = 0x8CD5 :: GLenum
+
+pattern GL_FRAMEBUFFER_COMPLETE_EXT = 0x8CD5 :: GLenum
+
+pattern GL_FRAMEBUFFER_COMPLETE_OES = 0x8CD5 :: GLenum
+
+pattern GL_FRAMEBUFFER_DEFAULT = 0x8218 :: GLenum
+
+pattern GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS = 0x9314 :: GLenum
+
+pattern GL_FRAMEBUFFER_DEFAULT_HEIGHT = 0x9311 :: GLenum
+
+pattern GL_FRAMEBUFFER_DEFAULT_LAYERS = 0x9312 :: GLenum
+
+pattern GL_FRAMEBUFFER_DEFAULT_LAYERS_EXT = 0x9312 :: GLenum
+
+pattern GL_FRAMEBUFFER_DEFAULT_LAYERS_OES = 0x9312 :: GLenum
+
+pattern GL_FRAMEBUFFER_DEFAULT_SAMPLES = 0x9313 :: GLenum
+
+pattern GL_FRAMEBUFFER_DEFAULT_WIDTH = 0x9310 :: GLenum
+
+pattern GL_FRAMEBUFFER_EXT = 0x8D40 :: GLenum
+
+pattern GL_FRAMEBUFFER_FETCH_NONCOHERENT_QCOM = 0x96A2 :: GLenum
+
+pattern GL_FRAMEBUFFER_FLIP_Y_MESA = 0x8BBB :: GLenum
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6 :: GLenum
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT = 0x8CD6 :: GLenum
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES = 0x8CD6 :: GLenum
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS = 0x8CD9 :: GLenum
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT = 0x8CD9 :: GLenum
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES = 0x8CD9 :: GLenum
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER = 0x8CDB :: GLenum
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT = 0x8CDB :: GLenum
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_OES = 0x8CDB :: GLenum
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT = 0x8CDA :: GLenum
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES = 0x8CDA :: GLenum
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_FOVEATION_QCOM = 0x8BFF :: GLenum
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_INSUFFICIENT_SHADER_COMBINED_LOCAL_STORAGE_EXT = 0x9652 :: GLenum
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB = 0x8DA9 :: GLenum
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT = 0x8DA9 :: GLenum
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS = 0x8DA8 :: GLenum
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB = 0x8DA8 :: GLenum
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT = 0x8DA8 :: GLenum
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_OES = 0x8DA8 :: GLenum
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7 :: GLenum
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT = 0x8CD7 :: GLenum
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES = 0x8CD7 :: GLenum
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = 0x8D56 :: GLenum
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_AND_DOWNSAMPLE_IMG = 0x913C :: GLenum
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE = 0x8D56 :: GLenum
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE = 0x8D56 :: GLenum
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT = 0x8D56 :: GLenum
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG = 0x9134 :: GLenum
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_NV = 0x8D56 :: GLenum
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER = 0x8CDC :: GLenum
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT = 0x8CDC :: GLenum
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_OES = 0x8CDC :: GLenum
+
+pattern GL_FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR = 0x9633 :: GLenum
+
+pattern GL_FRAMEBUFFER_OES = 0x8D40 :: GLenum
+
+pattern GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_ARB = 0x9342 :: GLenum
+
+pattern GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_NV = 0x9342 :: GLenum
+
+pattern GL_FRAMEBUFFER_RENDERABLE = 0x8289 :: GLenum
+
+pattern GL_FRAMEBUFFER_RENDERABLE_LAYERED = 0x828A :: GLenum
+
+pattern GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_ARB = 0x9343 :: GLenum
+
+pattern GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_NV = 0x9343 :: GLenum
+
+pattern GL_FRAMEBUFFER_SRGB = 0x8DB9 :: GLenum
+
+pattern GL_FRAMEBUFFER_SRGB_CAPABLE_EXT = 0x8DBA :: GLenum
+
+pattern GL_FRAMEBUFFER_SRGB_EXT = 0x8DB9 :: GLenum
+
+pattern GL_FRAMEBUFFER_UNDEFINED = 0x8219 :: GLenum
+
+pattern GL_FRAMEBUFFER_UNDEFINED_OES = 0x8219 :: GLenum
+
+pattern GL_FRAMEBUFFER_UNSUPPORTED = 0x8CDD :: GLenum
+
+pattern GL_FRAMEBUFFER_UNSUPPORTED_EXT = 0x8CDD :: GLenum
+
+pattern GL_FRAMEBUFFER_UNSUPPORTED_OES = 0x8CDD :: GLenum
+
+pattern GL_FRAMEZOOM_FACTOR_SGIX = 0x818C :: GLenum
+
+pattern GL_FRAMEZOOM_SGIX = 0x818B :: GLenum
+
+pattern GL_FRAME_NV = 0x8E26 :: GLenum
+
+pattern GL_FRONT = 0x0404 :: GLenum
+
+pattern GL_FRONT_AND_BACK = 0x0408 :: GLenum
+
+pattern GL_FRONT_FACE = 0x0B46 :: GLenum
+
+pattern GL_FRONT_FACE_COMMAND_NV = 0x0012 :: GLenum
+
+pattern GL_FRONT_LEFT = 0x0400 :: GLenum
+
+pattern GL_FRONT_RIGHT = 0x0401 :: GLenum
+
+pattern GL_FULL_RANGE_EXT = 0x87E1 :: GLenum
+
+pattern GL_FULL_STIPPLE_HINT_PGI = 0x1A219 :: GLenum
+
+pattern GL_FULL_SUPPORT = 0x82B7 :: GLenum
+
+pattern GL_FUNC_ADD = 0x8006 :: GLenum
+
+pattern GL_FUNC_ADD_EXT = 0x8006 :: GLenum
+
+pattern GL_FUNC_ADD_OES = 0x8006 :: GLenum
+
+pattern GL_FUNC_REVERSE_SUBTRACT = 0x800B :: GLenum
+
+pattern GL_FUNC_REVERSE_SUBTRACT_EXT = 0x800B :: GLenum
+
+pattern GL_FUNC_REVERSE_SUBTRACT_OES = 0x800B :: GLenum
+
+pattern GL_FUNC_SUBTRACT = 0x800A :: GLenum
+
+pattern GL_FUNC_SUBTRACT_EXT = 0x800A :: GLenum
+
+pattern GL_FUNC_SUBTRACT_OES = 0x800A :: GLenum
+
+pattern GL_GCCSO_SHADER_BINARY_FJ = 0x9260 :: GLenum
+
+pattern GL_GENERATE_MIPMAP = 0x8191 :: GLenum
+
+pattern GL_GENERATE_MIPMAP_HINT = 0x8192 :: GLenum
+
+pattern GL_GENERATE_MIPMAP_HINT_SGIS = 0x8192 :: GLenum
+
+pattern GL_GENERATE_MIPMAP_SGIS = 0x8191 :: GLenum
+
+pattern GL_GENERIC_ATTRIB_NV = 0x8C7D :: GLenum
+
+pattern GL_GEOMETRY_DEFORMATION_BIT_SGIX = 0x00000002 :: GLbitfield
+
+pattern GL_GEOMETRY_DEFORMATION_SGIX = 0x8194 :: GLenum
+
+pattern GL_GEOMETRY_INPUT_TYPE = 0x8917 :: GLenum
+
+pattern GL_GEOMETRY_INPUT_TYPE_ARB = 0x8DDB :: GLenum
+
+pattern GL_GEOMETRY_INPUT_TYPE_EXT = 0x8DDB :: GLenum
+
+pattern GL_GEOMETRY_LINKED_INPUT_TYPE_EXT = 0x8917 :: GLenum
+
+pattern GL_GEOMETRY_LINKED_INPUT_TYPE_OES = 0x8917 :: GLenum
+
+pattern GL_GEOMETRY_LINKED_OUTPUT_TYPE_EXT = 0x8918 :: GLenum
+
+pattern GL_GEOMETRY_LINKED_OUTPUT_TYPE_OES = 0x8918 :: GLenum
+
+pattern GL_GEOMETRY_LINKED_VERTICES_OUT_EXT = 0x8916 :: GLenum
+
+pattern GL_GEOMETRY_LINKED_VERTICES_OUT_OES = 0x8916 :: GLenum
+
+pattern GL_GEOMETRY_OUTPUT_TYPE = 0x8918 :: GLenum
+
+pattern GL_GEOMETRY_OUTPUT_TYPE_ARB = 0x8DDC :: GLenum
+
+pattern GL_GEOMETRY_OUTPUT_TYPE_EXT = 0x8DDC :: GLenum
+
+pattern GL_GEOMETRY_PROGRAM_NV = 0x8C26 :: GLenum
+
+pattern GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV = 0x8DA3 :: GLenum
+
+pattern GL_GEOMETRY_SHADER = 0x8DD9 :: GLenum
+
+pattern GL_GEOMETRY_SHADER_ARB = 0x8DD9 :: GLenum
+
+pattern GL_GEOMETRY_SHADER_BIT = 0x00000004 :: GLbitfield
+
+pattern GL_GEOMETRY_SHADER_BIT_EXT = 0x00000004 :: GLbitfield
+
+pattern GL_GEOMETRY_SHADER_BIT_OES = 0x00000004 :: GLbitfield
+
+pattern GL_GEOMETRY_SHADER_EXT = 0x8DD9 :: GLenum
+
+pattern GL_GEOMETRY_SHADER_INVOCATIONS = 0x887F :: GLenum
+
+pattern GL_GEOMETRY_SHADER_INVOCATIONS_EXT = 0x887F :: GLenum
+
+pattern GL_GEOMETRY_SHADER_INVOCATIONS_OES = 0x887F :: GLenum
+
+pattern GL_GEOMETRY_SHADER_OES = 0x8DD9 :: GLenum
+
+pattern GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED = 0x82F3 :: GLenum
+
+pattern GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB = 0x82F3 :: GLenum
+
+pattern GL_GEOMETRY_SUBROUTINE = 0x92EB :: GLenum
+
+pattern GL_GEOMETRY_SUBROUTINE_UNIFORM = 0x92F1 :: GLenum
+
+pattern GL_GEOMETRY_TEXTURE = 0x829E :: GLenum
+
+pattern GL_GEOMETRY_VERTICES_OUT = 0x8916 :: GLenum
+
+pattern GL_GEOMETRY_VERTICES_OUT_ARB = 0x8DDA :: GLenum
+
+pattern GL_GEOMETRY_VERTICES_OUT_EXT = 0x8DDA :: GLenum
+
+pattern GL_GEQUAL = 0x0206 :: GLenum
+
+pattern GL_GET_TEXTURE_IMAGE_FORMAT = 0x8291 :: GLenum
+
+pattern GL_GET_TEXTURE_IMAGE_TYPE = 0x8292 :: GLenum
+
+pattern GL_GLOBAL_ALPHA_FACTOR_SUN = 0x81DA :: GLenum
+
+pattern GL_GLOBAL_ALPHA_SUN = 0x81D9 :: GLenum
+
+pattern GL_GLYPH_HAS_KERNING_BIT_NV = 0x100 :: GLbitfield
+
+pattern GL_GLYPH_HEIGHT_BIT_NV = 0x02 :: GLbitfield
+
+pattern GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV = 0x10 :: GLbitfield
+
+pattern GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV = 0x04 :: GLbitfield
+
+pattern GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV = 0x08 :: GLbitfield
+
+pattern GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV = 0x80 :: GLbitfield
+
+pattern GL_GLYPH_VERTICAL_BEARING_X_BIT_NV = 0x20 :: GLbitfield
+
+pattern GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV = 0x40 :: GLbitfield
+
+pattern GL_GLYPH_WIDTH_BIT_NV = 0x01 :: GLbitfield
+
+pattern GL_GPU_ADDRESS_NV = 0x8F34 :: GLenum
+
+pattern GL_GPU_DISJOINT_EXT = 0x8FBB :: GLenum
+
+pattern GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX = 0x9049 :: GLenum
+
+pattern GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX = 0x9047 :: GLenum
+
+pattern GL_GPU_MEMORY_INFO_EVICTED_MEMORY_NVX = 0x904B :: GLenum
+
+pattern GL_GPU_MEMORY_INFO_EVICTION_COUNT_NVX = 0x904A :: GLenum
+
+pattern GL_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX = 0x9048 :: GLenum
+
+pattern GL_GPU_OPTIMIZED_QCOM = 0x8FB2 :: GLenum
+
+pattern GL_GREATER = 0x0204 :: GLenum
+
+pattern GL_GREEN = 0x1904 :: GLenum
+
+pattern GL_GREEN_BIAS = 0x0D19 :: GLenum
+
+pattern GL_GREEN_BITS = 0x0D53 :: GLenum
+
+pattern GL_GREEN_BIT_ATI = 0x00000002 :: GLbitfield
+
+pattern GL_GREEN_INTEGER = 0x8D95 :: GLenum
+
+pattern GL_GREEN_INTEGER_EXT = 0x8D95 :: GLenum
+
+pattern GL_GREEN_MAX_CLAMP_INGR = 0x8565 :: GLenum
+
+pattern GL_GREEN_MIN_CLAMP_INGR = 0x8561 :: GLenum
+
+pattern GL_GREEN_NV = 0x1904 :: GLenum
+
+pattern GL_GREEN_SCALE = 0x0D18 :: GLenum
+
+pattern GL_GS_PROGRAM_BINARY_MTK = 0x9641 :: GLenum
+
+pattern GL_GS_SHADER_BINARY_MTK = 0x9640 :: GLenum
+
+pattern GL_GUILTY_CONTEXT_RESET = 0x8253 :: GLenum
+
+pattern GL_GUILTY_CONTEXT_RESET_ARB = 0x8253 :: GLenum
+
+pattern GL_GUILTY_CONTEXT_RESET_EXT = 0x8253 :: GLenum
+
+pattern GL_GUILTY_CONTEXT_RESET_KHR = 0x8253 :: GLenum
+
+pattern GL_HALF_APPLE = 0x140B :: GLenum
+
+pattern GL_HALF_BIAS_NEGATE_NV = 0x853B :: GLenum
+
+pattern GL_HALF_BIAS_NORMAL_NV = 0x853A :: GLenum
+
+pattern GL_HALF_BIT_ATI = 0x00000008 :: GLbitfield
+
+pattern GL_HALF_FLOAT = 0x140B :: GLenum
+
+pattern GL_HALF_FLOAT_ARB = 0x140B :: GLenum
+
+pattern GL_HALF_FLOAT_NV = 0x140B :: GLenum
+
+pattern GL_HALF_FLOAT_OES = 0x8D61 :: GLenum
+
+pattern GL_HANDLE_TYPE_D3D11_IMAGE_EXT = 0x958B :: GLenum
+
+pattern GL_HANDLE_TYPE_D3D11_IMAGE_KMT_EXT = 0x958C :: GLenum
+
+pattern GL_HANDLE_TYPE_D3D12_FENCE_EXT = 0x9594 :: GLenum
+
+pattern GL_HANDLE_TYPE_D3D12_RESOURCE_EXT = 0x958A :: GLenum
+
+pattern GL_HANDLE_TYPE_D3D12_TILEPOOL_EXT = 0x9589 :: GLenum
+
+pattern GL_HANDLE_TYPE_OPAQUE_FD_EXT = 0x9586 :: GLenum
+
+pattern GL_HANDLE_TYPE_OPAQUE_WIN32_EXT = 0x9587 :: GLenum
+
+pattern GL_HANDLE_TYPE_OPAQUE_WIN32_KMT_EXT = 0x9588 :: GLenum
+
+pattern GL_HARDLIGHT = 0x929B :: GLenum
+
+pattern GL_HARDLIGHT_KHR = 0x929B :: GLenum
+
+pattern GL_HARDLIGHT_NV = 0x929B :: GLenum
+
+pattern GL_HARDMIX_NV = 0x92A9 :: GLenum
+
+pattern GL_HIGH_FLOAT = 0x8DF2 :: GLenum
+
+pattern GL_HIGH_INT = 0x8DF5 :: GLenum
+
+pattern GL_HILO16_NV = 0x86F8 :: GLenum
+
+pattern GL_HILO8_NV = 0x885E :: GLenum
+
+pattern GL_HILO_NV = 0x86F4 :: GLenum
+
+pattern GL_HINT_BIT = 0x00008000 :: GLbitfield
+
+pattern GL_HISTOGRAM = 0x8024 :: GLenum
+
+pattern GL_HISTOGRAM_ALPHA_SIZE = 0x802B :: GLenum
+
+pattern GL_HISTOGRAM_ALPHA_SIZE_EXT = 0x802B :: GLenum
+
+pattern GL_HISTOGRAM_BLUE_SIZE = 0x802A :: GLenum
+
+pattern GL_HISTOGRAM_BLUE_SIZE_EXT = 0x802A :: GLenum
+
+pattern GL_HISTOGRAM_EXT = 0x8024 :: GLenum
+
+pattern GL_HISTOGRAM_FORMAT = 0x8027 :: GLenum
+
+pattern GL_HISTOGRAM_FORMAT_EXT = 0x8027 :: GLenum
+
+pattern GL_HISTOGRAM_GREEN_SIZE = 0x8029 :: GLenum
+
+pattern GL_HISTOGRAM_GREEN_SIZE_EXT = 0x8029 :: GLenum
+
+pattern GL_HISTOGRAM_LUMINANCE_SIZE = 0x802C :: GLenum
+
+pattern GL_HISTOGRAM_LUMINANCE_SIZE_EXT = 0x802C :: GLenum
+
+pattern GL_HISTOGRAM_RED_SIZE = 0x8028 :: GLenum
+
+pattern GL_HISTOGRAM_RED_SIZE_EXT = 0x8028 :: GLenum
+
+pattern GL_HISTOGRAM_SINK = 0x802D :: GLenum
+
+pattern GL_HISTOGRAM_SINK_EXT = 0x802D :: GLenum
+
+pattern GL_HISTOGRAM_WIDTH = 0x8026 :: GLenum
+
+pattern GL_HISTOGRAM_WIDTH_EXT = 0x8026 :: GLenum
+
+pattern GL_HI_BIAS_NV = 0x8714 :: GLenum
+
+pattern GL_HI_SCALE_NV = 0x870E :: GLenum
+
+pattern GL_HORIZONTAL_LINE_TO_NV = 0x06 :: GLubyte
+
+pattern GL_HSL_COLOR = 0x92AF :: GLenum
+
+pattern GL_HSL_COLOR_KHR = 0x92AF :: GLenum
+
+pattern GL_HSL_COLOR_NV = 0x92AF :: GLenum
+
+pattern GL_HSL_HUE = 0x92AD :: GLenum
+
+pattern GL_HSL_HUE_KHR = 0x92AD :: GLenum
+
+pattern GL_HSL_HUE_NV = 0x92AD :: GLenum
+
+pattern GL_HSL_LUMINOSITY = 0x92B0 :: GLenum
+
+pattern GL_HSL_LUMINOSITY_KHR = 0x92B0 :: GLenum
+
+pattern GL_HSL_LUMINOSITY_NV = 0x92B0 :: GLenum
+
+pattern GL_HSL_SATURATION = 0x92AE :: GLenum
+
+pattern GL_HSL_SATURATION_KHR = 0x92AE :: GLenum
+
+pattern GL_HSL_SATURATION_NV = 0x92AE :: GLenum
+
+pattern GL_IDENTITY_NV = 0x862A :: GLenum
+
+pattern GL_IGNORE_BORDER_HP = 0x8150 :: GLenum
+
+pattern GL_IMAGE_1D = 0x904C :: GLenum
+
+pattern GL_IMAGE_1D_ARRAY = 0x9052 :: GLenum
+
+pattern GL_IMAGE_1D_ARRAY_EXT = 0x9052 :: GLenum
+
+pattern GL_IMAGE_1D_EXT = 0x904C :: GLenum
+
+pattern GL_IMAGE_2D = 0x904D :: GLenum
+
+pattern GL_IMAGE_2D_ARRAY = 0x9053 :: GLenum
+
+pattern GL_IMAGE_2D_ARRAY_EXT = 0x9053 :: GLenum
+
+pattern GL_IMAGE_2D_EXT = 0x904D :: GLenum
+
+pattern GL_IMAGE_2D_MULTISAMPLE = 0x9055 :: GLenum
+
+pattern GL_IMAGE_2D_MULTISAMPLE_ARRAY = 0x9056 :: GLenum
+
+pattern GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXT = 0x9056 :: GLenum
+
+pattern GL_IMAGE_2D_MULTISAMPLE_EXT = 0x9055 :: GLenum
+
+pattern GL_IMAGE_2D_RECT = 0x904F :: GLenum
+
+pattern GL_IMAGE_2D_RECT_EXT = 0x904F :: GLenum
+
+pattern GL_IMAGE_3D = 0x904E :: GLenum
+
+pattern GL_IMAGE_3D_EXT = 0x904E :: GLenum
+
+pattern GL_IMAGE_BINDING_ACCESS = 0x8F3E :: GLenum
+
+pattern GL_IMAGE_BINDING_ACCESS_EXT = 0x8F3E :: GLenum
+
+pattern GL_IMAGE_BINDING_FORMAT = 0x906E :: GLenum
+
+pattern GL_IMAGE_BINDING_FORMAT_EXT = 0x906E :: GLenum
+
+pattern GL_IMAGE_BINDING_LAYER = 0x8F3D :: GLenum
+
+pattern GL_IMAGE_BINDING_LAYERED = 0x8F3C :: GLenum
+
+pattern GL_IMAGE_BINDING_LAYERED_EXT = 0x8F3C :: GLenum
+
+pattern GL_IMAGE_BINDING_LAYER_EXT = 0x8F3D :: GLenum
+
+pattern GL_IMAGE_BINDING_LEVEL = 0x8F3B :: GLenum
+
+pattern GL_IMAGE_BINDING_LEVEL_EXT = 0x8F3B :: GLenum
+
+pattern GL_IMAGE_BINDING_NAME = 0x8F3A :: GLenum
+
+pattern GL_IMAGE_BINDING_NAME_EXT = 0x8F3A :: GLenum
+
+pattern GL_IMAGE_BUFFER = 0x9051 :: GLenum
+
+pattern GL_IMAGE_BUFFER_EXT = 0x9051 :: GLenum
+
+pattern GL_IMAGE_BUFFER_OES = 0x9051 :: GLenum
+
+pattern GL_IMAGE_CLASS_10_10_10_2 = 0x82C3 :: GLenum
+
+pattern GL_IMAGE_CLASS_11_11_10 = 0x82C2 :: GLenum
+
+pattern GL_IMAGE_CLASS_1_X_16 = 0x82BE :: GLenum
+
+pattern GL_IMAGE_CLASS_1_X_32 = 0x82BB :: GLenum
+
+pattern GL_IMAGE_CLASS_1_X_8 = 0x82C1 :: GLenum
+
+pattern GL_IMAGE_CLASS_2_X_16 = 0x82BD :: GLenum
+
+pattern GL_IMAGE_CLASS_2_X_32 = 0x82BA :: GLenum
+
+pattern GL_IMAGE_CLASS_2_X_8 = 0x82C0 :: GLenum
+
+pattern GL_IMAGE_CLASS_4_X_16 = 0x82BC :: GLenum
+
+pattern GL_IMAGE_CLASS_4_X_32 = 0x82B9 :: GLenum
+
+pattern GL_IMAGE_CLASS_4_X_8 = 0x82BF :: GLenum
+
+pattern GL_IMAGE_COMPATIBILITY_CLASS = 0x82A8 :: GLenum
+
+pattern GL_IMAGE_CUBE = 0x9050 :: GLenum
+
+pattern GL_IMAGE_CUBE_EXT = 0x9050 :: GLenum
+
+pattern GL_IMAGE_CUBE_MAP_ARRAY = 0x9054 :: GLenum
+
+pattern GL_IMAGE_CUBE_MAP_ARRAY_EXT = 0x9054 :: GLenum
+
+pattern GL_IMAGE_CUBE_MAP_ARRAY_OES = 0x9054 :: GLenum
+
+pattern GL_IMAGE_CUBIC_WEIGHT_HP = 0x815E :: GLenum
+
+pattern GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS = 0x90C9 :: GLenum
+
+pattern GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE = 0x90C8 :: GLenum
+
+pattern GL_IMAGE_FORMAT_COMPATIBILITY_TYPE = 0x90C7 :: GLenum
+
+pattern GL_IMAGE_MAG_FILTER_HP = 0x815C :: GLenum
+
+pattern GL_IMAGE_MIN_FILTER_HP = 0x815D :: GLenum
+
+pattern GL_IMAGE_PIXEL_FORMAT = 0x82A9 :: GLenum
+
+pattern GL_IMAGE_PIXEL_TYPE = 0x82AA :: GLenum
+
+pattern GL_IMAGE_ROTATE_ANGLE_HP = 0x8159 :: GLenum
+
+pattern GL_IMAGE_ROTATE_ORIGIN_X_HP = 0x815A :: GLenum
+
+pattern GL_IMAGE_ROTATE_ORIGIN_Y_HP = 0x815B :: GLenum
+
+pattern GL_IMAGE_SCALE_X_HP = 0x8155 :: GLenum
+
+pattern GL_IMAGE_SCALE_Y_HP = 0x8156 :: GLenum
+
+pattern GL_IMAGE_TEXEL_SIZE = 0x82A7 :: GLenum
+
+pattern GL_IMAGE_TRANSFORM_2D_HP = 0x8161 :: GLenum
+
+pattern GL_IMAGE_TRANSLATE_X_HP = 0x8157 :: GLenum
+
+pattern GL_IMAGE_TRANSLATE_Y_HP = 0x8158 :: GLenum
+
+pattern GL_IMPLEMENTATION_COLOR_READ_FORMAT = 0x8B9B :: GLenum
+
+pattern GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES = 0x8B9B :: GLenum
+
+pattern GL_IMPLEMENTATION_COLOR_READ_TYPE = 0x8B9A :: GLenum
+
+pattern GL_IMPLEMENTATION_COLOR_READ_TYPE_OES = 0x8B9A :: GLenum
+
+pattern GL_INCLUSIVE_EXT = 0x8F10 :: GLenum
+
+pattern GL_INCR = 0x1E02 :: GLenum
+
+pattern GL_INCR_WRAP = 0x8507 :: GLenum
+
+pattern GL_INCR_WRAP_EXT = 0x8507 :: GLenum
+
+pattern GL_INCR_WRAP_OES = 0x8507 :: GLenum
+
+pattern GL_INDEX = 0x8222 :: GLenum
+
+pattern GL_INDEX_ARRAY = 0x8077 :: GLenum
+
+pattern GL_INDEX_ARRAY_ADDRESS_NV = 0x8F24 :: GLenum
+
+pattern GL_INDEX_ARRAY_BUFFER_BINDING = 0x8899 :: GLenum
+
+pattern GL_INDEX_ARRAY_BUFFER_BINDING_ARB = 0x8899 :: GLenum
+
+pattern GL_INDEX_ARRAY_COUNT_EXT = 0x8087 :: GLenum
+
+pattern GL_INDEX_ARRAY_EXT = 0x8077 :: GLenum
+
+pattern GL_INDEX_ARRAY_LENGTH_NV = 0x8F2E :: GLenum
+
+pattern GL_INDEX_ARRAY_LIST_IBM = 103073 :: GLenum
+
+pattern GL_INDEX_ARRAY_LIST_STRIDE_IBM = 103083 :: GLenum
+
+pattern GL_INDEX_ARRAY_POINTER = 0x8091 :: GLenum
+
+pattern GL_INDEX_ARRAY_POINTER_EXT = 0x8091 :: GLenum
+
+pattern GL_INDEX_ARRAY_STRIDE = 0x8086 :: GLenum
+
+pattern GL_INDEX_ARRAY_STRIDE_EXT = 0x8086 :: GLenum
+
+pattern GL_INDEX_ARRAY_TYPE = 0x8085 :: GLenum
+
+pattern GL_INDEX_ARRAY_TYPE_EXT = 0x8085 :: GLenum
+
+pattern GL_INDEX_BITS = 0x0D51 :: GLenum
+
+pattern GL_INDEX_BIT_PGI = 0x00080000 :: GLbitfield
+
+pattern GL_INDEX_CLEAR_VALUE = 0x0C20 :: GLenum
+
+pattern GL_INDEX_LOGIC_OP = 0x0BF1 :: GLenum
+
+pattern GL_INDEX_MATERIAL_EXT = 0x81B8 :: GLenum
+
+pattern GL_INDEX_MATERIAL_FACE_EXT = 0x81BA :: GLenum
+
+pattern GL_INDEX_MATERIAL_PARAMETER_EXT = 0x81B9 :: GLenum
+
+pattern GL_INDEX_MODE = 0x0C30 :: GLenum
+
+pattern GL_INDEX_OFFSET = 0x0D13 :: GLenum
+
+pattern GL_INDEX_SHIFT = 0x0D12 :: GLenum
+
+pattern GL_INDEX_TEST_EXT = 0x81B5 :: GLenum
+
+pattern GL_INDEX_TEST_FUNC_EXT = 0x81B6 :: GLenum
+
+pattern GL_INDEX_TEST_REF_EXT = 0x81B7 :: GLenum
+
+pattern GL_INDEX_WRITEMASK = 0x0C21 :: GLenum
+
+pattern GL_INFO_LOG_LENGTH = 0x8B84 :: GLenum
+
+pattern GL_INNOCENT_CONTEXT_RESET = 0x8254 :: GLenum
+
+pattern GL_INNOCENT_CONTEXT_RESET_ARB = 0x8254 :: GLenum
+
+pattern GL_INNOCENT_CONTEXT_RESET_EXT = 0x8254 :: GLenum
+
+pattern GL_INNOCENT_CONTEXT_RESET_KHR = 0x8254 :: GLenum
+
+pattern GL_INSTRUMENT_BUFFER_POINTER_SGIX = 0x8180 :: GLenum
+
+pattern GL_INSTRUMENT_MEASUREMENTS_SGIX = 0x8181 :: GLenum
+
+pattern GL_INT = 0x1404 :: GLenum
+
+pattern GL_INT16_NV = 0x8FE4 :: GLenum
+
+pattern GL_INT16_VEC2_NV = 0x8FE5 :: GLenum
+
+pattern GL_INT16_VEC3_NV = 0x8FE6 :: GLenum
+
+pattern GL_INT16_VEC4_NV = 0x8FE7 :: GLenum
+
+pattern GL_INT64_ARB = 0x140E :: GLenum
+
+pattern GL_INT64_NV = 0x140E :: GLenum
+
+pattern GL_INT64_VEC2_ARB = 0x8FE9 :: GLenum
+
+pattern GL_INT64_VEC2_NV = 0x8FE9 :: GLenum
+
+pattern GL_INT64_VEC3_ARB = 0x8FEA :: GLenum
+
+pattern GL_INT64_VEC3_NV = 0x8FEA :: GLenum
+
+pattern GL_INT64_VEC4_ARB = 0x8FEB :: GLenum
+
+pattern GL_INT64_VEC4_NV = 0x8FEB :: GLenum
+
+pattern GL_INT8_NV = 0x8FE0 :: GLenum
+
+pattern GL_INT8_VEC2_NV = 0x8FE1 :: GLenum
+
+pattern GL_INT8_VEC3_NV = 0x8FE2 :: GLenum
+
+pattern GL_INT8_VEC4_NV = 0x8FE3 :: GLenum
+
+pattern GL_INTENSITY = 0x8049 :: GLenum
+
+pattern GL_INTENSITY12 = 0x804C :: GLenum
+
+pattern GL_INTENSITY12_EXT = 0x804C :: GLenum
+
+pattern GL_INTENSITY16 = 0x804D :: GLenum
+
+pattern GL_INTENSITY16F_ARB = 0x881D :: GLenum
+
+pattern GL_INTENSITY16I_EXT = 0x8D8B :: GLenum
+
+pattern GL_INTENSITY16UI_EXT = 0x8D79 :: GLenum
+
+pattern GL_INTENSITY16_EXT = 0x804D :: GLenum
+
+pattern GL_INTENSITY16_SNORM = 0x901B :: GLenum
+
+pattern GL_INTENSITY32F_ARB = 0x8817 :: GLenum
+
+pattern GL_INTENSITY32I_EXT = 0x8D85 :: GLenum
+
+pattern GL_INTENSITY32UI_EXT = 0x8D73 :: GLenum
+
+pattern GL_INTENSITY4 = 0x804A :: GLenum
+
+pattern GL_INTENSITY4_EXT = 0x804A :: GLenum
+
+pattern GL_INTENSITY8 = 0x804B :: GLenum
+
+pattern GL_INTENSITY8I_EXT = 0x8D91 :: GLenum
+
+pattern GL_INTENSITY8UI_EXT = 0x8D7F :: GLenum
+
+pattern GL_INTENSITY8_EXT = 0x804B :: GLenum
+
+pattern GL_INTENSITY8_SNORM = 0x9017 :: GLenum
+
+pattern GL_INTENSITY_EXT = 0x8049 :: GLenum
+
+pattern GL_INTENSITY_FLOAT16_APPLE = 0x881D :: GLenum
+
+pattern GL_INTENSITY_FLOAT16_ATI = 0x881D :: GLenum
+
+pattern GL_INTENSITY_FLOAT32_APPLE = 0x8817 :: GLenum
+
+pattern GL_INTENSITY_FLOAT32_ATI = 0x8817 :: GLenum
+
+pattern GL_INTENSITY_SNORM = 0x9013 :: GLenum
+
+pattern GL_INTERLACE_OML = 0x8980 :: GLenum
+
+pattern GL_INTERLACE_READ_INGR = 0x8568 :: GLenum
+
+pattern GL_INTERLACE_READ_OML = 0x8981 :: GLenum
+
+pattern GL_INTERLACE_SGIX = 0x8094 :: GLenum
+
+pattern GL_INTERLEAVED_ATTRIBS = 0x8C8C :: GLenum
+
+pattern GL_INTERLEAVED_ATTRIBS_EXT = 0x8C8C :: GLenum
+
+pattern GL_INTERLEAVED_ATTRIBS_NV = 0x8C8C :: GLenum
+
+pattern GL_INTERNALFORMAT_ALPHA_SIZE = 0x8274 :: GLenum
+
+pattern GL_INTERNALFORMAT_ALPHA_TYPE = 0x827B :: GLenum
+
+pattern GL_INTERNALFORMAT_BLUE_SIZE = 0x8273 :: GLenum
+
+pattern GL_INTERNALFORMAT_BLUE_TYPE = 0x827A :: GLenum
+
+pattern GL_INTERNALFORMAT_DEPTH_SIZE = 0x8275 :: GLenum
+
+pattern GL_INTERNALFORMAT_DEPTH_TYPE = 0x827C :: GLenum
+
+pattern GL_INTERNALFORMAT_GREEN_SIZE = 0x8272 :: GLenum
+
+pattern GL_INTERNALFORMAT_GREEN_TYPE = 0x8279 :: GLenum
+
+pattern GL_INTERNALFORMAT_PREFERRED = 0x8270 :: GLenum
+
+pattern GL_INTERNALFORMAT_RED_SIZE = 0x8271 :: GLenum
+
+pattern GL_INTERNALFORMAT_RED_TYPE = 0x8278 :: GLenum
+
+pattern GL_INTERNALFORMAT_SHARED_SIZE = 0x8277 :: GLenum
+
+pattern GL_INTERNALFORMAT_STENCIL_SIZE = 0x8276 :: GLenum
+
+pattern GL_INTERNALFORMAT_STENCIL_TYPE = 0x827D :: GLenum
+
+pattern GL_INTERNALFORMAT_SUPPORTED = 0x826F :: GLenum
+
+pattern GL_INTERPOLATE = 0x8575 :: GLenum
+
+pattern GL_INTERPOLATE_ARB = 0x8575 :: GLenum
+
+pattern GL_INTERPOLATE_EXT = 0x8575 :: GLenum
+
+pattern GL_INT_10_10_10_2_OES = 0x8DF7 :: GLenum
+
+pattern GL_INT_2_10_10_10_REV = 0x8D9F :: GLenum
+
+pattern GL_INT_IMAGE_1D = 0x9057 :: GLenum
+
+pattern GL_INT_IMAGE_1D_ARRAY = 0x905D :: GLenum
+
+pattern GL_INT_IMAGE_1D_ARRAY_EXT = 0x905D :: GLenum
+
+pattern GL_INT_IMAGE_1D_EXT = 0x9057 :: GLenum
+
+pattern GL_INT_IMAGE_2D = 0x9058 :: GLenum
+
+pattern GL_INT_IMAGE_2D_ARRAY = 0x905E :: GLenum
+
+pattern GL_INT_IMAGE_2D_ARRAY_EXT = 0x905E :: GLenum
+
+pattern GL_INT_IMAGE_2D_EXT = 0x9058 :: GLenum
+
+pattern GL_INT_IMAGE_2D_MULTISAMPLE = 0x9060 :: GLenum
+
+pattern GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY = 0x9061 :: GLenum
+
+pattern GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT = 0x9061 :: GLenum
+
+pattern GL_INT_IMAGE_2D_MULTISAMPLE_EXT = 0x9060 :: GLenum
+
+pattern GL_INT_IMAGE_2D_RECT = 0x905A :: GLenum
+
+pattern GL_INT_IMAGE_2D_RECT_EXT = 0x905A :: GLenum
+
+pattern GL_INT_IMAGE_3D = 0x9059 :: GLenum
+
+pattern GL_INT_IMAGE_3D_EXT = 0x9059 :: GLenum
+
+pattern GL_INT_IMAGE_BUFFER = 0x905C :: GLenum
+
+pattern GL_INT_IMAGE_BUFFER_EXT = 0x905C :: GLenum
+
+pattern GL_INT_IMAGE_BUFFER_OES = 0x905C :: GLenum
+
+pattern GL_INT_IMAGE_CUBE = 0x905B :: GLenum
+
+pattern GL_INT_IMAGE_CUBE_EXT = 0x905B :: GLenum
+
+pattern GL_INT_IMAGE_CUBE_MAP_ARRAY = 0x905F :: GLenum
+
+pattern GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT = 0x905F :: GLenum
+
+pattern GL_INT_IMAGE_CUBE_MAP_ARRAY_OES = 0x905F :: GLenum
+
+pattern GL_INT_SAMPLER_1D = 0x8DC9 :: GLenum
+
+pattern GL_INT_SAMPLER_1D_ARRAY = 0x8DCE :: GLenum
+
+pattern GL_INT_SAMPLER_1D_ARRAY_EXT = 0x8DCE :: GLenum
+
+pattern GL_INT_SAMPLER_1D_EXT = 0x8DC9 :: GLenum
+
+pattern GL_INT_SAMPLER_2D = 0x8DCA :: GLenum
+
+pattern GL_INT_SAMPLER_2D_ARRAY = 0x8DCF :: GLenum
+
+pattern GL_INT_SAMPLER_2D_ARRAY_EXT = 0x8DCF :: GLenum
+
+pattern GL_INT_SAMPLER_2D_EXT = 0x8DCA :: GLenum
+
+pattern GL_INT_SAMPLER_2D_MULTISAMPLE = 0x9109 :: GLenum
+
+pattern GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910C :: GLenum
+
+pattern GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES = 0x910C :: GLenum
+
+pattern GL_INT_SAMPLER_2D_RECT = 0x8DCD :: GLenum
+
+pattern GL_INT_SAMPLER_2D_RECT_EXT = 0x8DCD :: GLenum
+
+pattern GL_INT_SAMPLER_3D = 0x8DCB :: GLenum
+
+pattern GL_INT_SAMPLER_3D_EXT = 0x8DCB :: GLenum
+
+pattern GL_INT_SAMPLER_BUFFER = 0x8DD0 :: GLenum
+
+pattern GL_INT_SAMPLER_BUFFER_AMD = 0x9002 :: GLenum
+
+pattern GL_INT_SAMPLER_BUFFER_EXT = 0x8DD0 :: GLenum
+
+pattern GL_INT_SAMPLER_BUFFER_OES = 0x8DD0 :: GLenum
+
+pattern GL_INT_SAMPLER_CUBE = 0x8DCC :: GLenum
+
+pattern GL_INT_SAMPLER_CUBE_EXT = 0x8DCC :: GLenum
+
+pattern GL_INT_SAMPLER_CUBE_MAP_ARRAY = 0x900E :: GLenum
+
+pattern GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB = 0x900E :: GLenum
+
+pattern GL_INT_SAMPLER_CUBE_MAP_ARRAY_EXT = 0x900E :: GLenum
+
+pattern GL_INT_SAMPLER_CUBE_MAP_ARRAY_OES = 0x900E :: GLenum
+
+pattern GL_INT_SAMPLER_RENDERBUFFER_NV = 0x8E57 :: GLenum
+
+pattern GL_INT_VEC2 = 0x8B53 :: GLenum
+
+pattern GL_INT_VEC2_ARB = 0x8B53 :: GLenum
+
+pattern GL_INT_VEC3 = 0x8B54 :: GLenum
+
+pattern GL_INT_VEC3_ARB = 0x8B54 :: GLenum
+
+pattern GL_INT_VEC4 = 0x8B55 :: GLenum
+
+pattern GL_INT_VEC4_ARB = 0x8B55 :: GLenum
+
+pattern GL_INVALID_ENUM = 0x0500 :: GLenum
+
+pattern GL_INVALID_FRAMEBUFFER_OPERATION = 0x0506 :: GLenum
+
+pattern GL_INVALID_FRAMEBUFFER_OPERATION_EXT = 0x0506 :: GLenum
+
+pattern GL_INVALID_FRAMEBUFFER_OPERATION_OES = 0x0506 :: GLenum
+
+pattern GL_INVALID_INDEX = 0xFFFFFFFF :: GLuint
+
+pattern GL_INVALID_OPERATION = 0x0502 :: GLenum
+
+pattern GL_INVALID_VALUE = 0x0501 :: GLenum
+
+pattern GL_INVARIANT_DATATYPE_EXT = 0x87EB :: GLenum
+
+pattern GL_INVARIANT_EXT = 0x87C2 :: GLenum
+
+pattern GL_INVARIANT_VALUE_EXT = 0x87EA :: GLenum
+
+pattern GL_INVERSE_NV = 0x862B :: GLenum
+
+pattern GL_INVERSE_TRANSPOSE_NV = 0x862D :: GLenum
+
+pattern GL_INVERT = 0x150A :: GLenum
+
+pattern GL_INVERTED_SCREEN_W_REND = 0x8491 :: GLenum
+
+pattern GL_INVERT_OVG_NV = 0x92B4 :: GLenum
+
+pattern GL_INVERT_RGB_NV = 0x92A3 :: GLenum
+
+pattern GL_IR_INSTRUMENT1_SGIX = 0x817F :: GLenum
+
+pattern GL_ISOLINES = 0x8E7A :: GLenum
+
+pattern GL_ISOLINES_EXT = 0x8E7A :: GLenum
+
+pattern GL_ISOLINES_OES = 0x8E7A :: GLenum
+
+pattern GL_IS_PER_PATCH = 0x92E7 :: GLenum
+
+pattern GL_IS_PER_PATCH_EXT = 0x92E7 :: GLenum
+
+pattern GL_IS_PER_PATCH_OES = 0x92E7 :: GLenum
+
+pattern GL_IS_ROW_MAJOR = 0x9300 :: GLenum
+
+pattern GL_ITALIC_BIT_NV = 0x02 :: GLbitfield
+
+pattern GL_IUI_N3F_V2F_EXT = 0x81AF :: GLenum
+
+pattern GL_IUI_N3F_V3F_EXT = 0x81B0 :: GLenum
+
+pattern GL_IUI_V2F_EXT = 0x81AD :: GLenum
+
+pattern GL_IUI_V3F_EXT = 0x81AE :: GLenum
+
+pattern GL_KEEP = 0x1E00 :: GLenum
+
+pattern GL_LARGE_CCW_ARC_TO_NV = 0x16 :: GLubyte
+
+pattern GL_LARGE_CW_ARC_TO_NV = 0x18 :: GLubyte
+
+pattern GL_LAST_VERTEX_CONVENTION = 0x8E4E :: GLenum
+
+pattern GL_LAST_VERTEX_CONVENTION_EXT = 0x8E4E :: GLenum
+
+pattern GL_LAST_VERTEX_CONVENTION_OES = 0x8E4E :: GLenum
+
+pattern GL_LAST_VIDEO_CAPTURE_STATUS_NV = 0x9027 :: GLenum
+
+pattern GL_LAYER_NV = 0x8DAA :: GLenum
+
+pattern GL_LAYER_PROVOKING_VERTEX = 0x825E :: GLenum
+
+pattern GL_LAYER_PROVOKING_VERTEX_EXT = 0x825E :: GLenum
+
+pattern GL_LAYER_PROVOKING_VERTEX_OES = 0x825E :: GLenum
+
+pattern GL_LAYOUT_COLOR_ATTACHMENT_EXT = 0x958E :: GLenum
+
+pattern GL_LAYOUT_DEFAULT_INTEL = 0 :: GLenum
+
+pattern GL_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_EXT = 0x9531 :: GLenum
+
+pattern GL_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_EXT = 0x9530 :: GLenum
+
+pattern GL_LAYOUT_DEPTH_STENCIL_ATTACHMENT_EXT = 0x958F :: GLenum
+
+pattern GL_LAYOUT_DEPTH_STENCIL_READ_ONLY_EXT = 0x9590 :: GLenum
+
+pattern GL_LAYOUT_GENERAL_EXT = 0x958D :: GLenum
+
+pattern GL_LAYOUT_LINEAR_CPU_CACHED_INTEL = 2 :: GLenum
+
+pattern GL_LAYOUT_LINEAR_INTEL = 1 :: GLenum
+
+pattern GL_LAYOUT_SHADER_READ_ONLY_EXT = 0x9591 :: GLenum
+
+pattern GL_LAYOUT_TRANSFER_DST_EXT = 0x9593 :: GLenum
+
+pattern GL_LAYOUT_TRANSFER_SRC_EXT = 0x9592 :: GLenum
+
+pattern GL_LEFT = 0x0406 :: GLenum
+
+pattern GL_LEQUAL = 0x0203 :: GLenum
+
+pattern GL_LERP_ATI = 0x8969 :: GLenum
+
+pattern GL_LESS = 0x0201 :: GLenum
+
+pattern GL_LGPU_SEPARATE_STORAGE_BIT_NVX = 0x0800 :: GLbitfield
+
+pattern GL_LIGHT0 = 0x4000 :: GLenum
+
+pattern GL_LIGHT1 = 0x4001 :: GLenum
+
+pattern GL_LIGHT2 = 0x4002 :: GLenum
+
+pattern GL_LIGHT3 = 0x4003 :: GLenum
+
+pattern GL_LIGHT4 = 0x4004 :: GLenum
+
+pattern GL_LIGHT5 = 0x4005 :: GLenum
+
+pattern GL_LIGHT6 = 0x4006 :: GLenum
+
+pattern GL_LIGHT7 = 0x4007 :: GLenum
+
+pattern GL_LIGHTEN = 0x9298 :: GLenum
+
+pattern GL_LIGHTEN_KHR = 0x9298 :: GLenum
+
+pattern GL_LIGHTEN_NV = 0x9298 :: GLenum
+
+pattern GL_LIGHTING = 0x0B50 :: GLenum
+
+pattern GL_LIGHTING_BIT = 0x00000040 :: GLbitfield
+
+pattern GL_LIGHT_ENV_MODE_SGIX = 0x8407 :: GLenum
+
+pattern GL_LIGHT_MODEL_AMBIENT = 0x0B53 :: GLenum
+
+pattern GL_LIGHT_MODEL_COLOR_CONTROL = 0x81F8 :: GLenum
+
+pattern GL_LIGHT_MODEL_COLOR_CONTROL_EXT = 0x81F8 :: GLenum
+
+pattern GL_LIGHT_MODEL_LOCAL_VIEWER = 0x0B51 :: GLenum
+
+pattern GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE = 0x85B0 :: GLenum
+
+pattern GL_LIGHT_MODEL_TWO_SIDE = 0x0B52 :: GLenum
+
+pattern GL_LINE = 0x1B01 :: GLenum
+
+pattern GL_LINEAR = 0x2601 :: GLenum
+
+pattern GL_LINEARBURN_NV = 0x92A5 :: GLenum
+
+pattern GL_LINEARDODGE_NV = 0x92A4 :: GLenum
+
+pattern GL_LINEARLIGHT_NV = 0x92A7 :: GLenum
+
+pattern GL_LINEAR_ATTENUATION = 0x1208 :: GLenum
+
+pattern GL_LINEAR_CLIPMAP_LINEAR_SGIX = 0x8170 :: GLenum
+
+pattern GL_LINEAR_CLIPMAP_NEAREST_SGIX = 0x844F :: GLenum
+
+pattern GL_LINEAR_DETAIL_ALPHA_SGIS = 0x8098 :: GLenum
+
+pattern GL_LINEAR_DETAIL_COLOR_SGIS = 0x8099 :: GLenum
+
+pattern GL_LINEAR_DETAIL_SGIS = 0x8097 :: GLenum
+
+pattern GL_LINEAR_MIPMAP_LINEAR = 0x2703 :: GLenum
+
+pattern GL_LINEAR_MIPMAP_NEAREST = 0x2701 :: GLenum
+
+pattern GL_LINEAR_SHARPEN_ALPHA_SGIS = 0x80AE :: GLenum
+
+pattern GL_LINEAR_SHARPEN_COLOR_SGIS = 0x80AF :: GLenum
+
+pattern GL_LINEAR_SHARPEN_SGIS = 0x80AD :: GLenum
+
+pattern GL_LINEAR_TILING_EXT = 0x9585 :: GLenum
+
+pattern GL_LINES = 0x0001 :: GLenum
+
+pattern GL_LINES_ADJACENCY = 0x000A :: GLenum
+
+pattern GL_LINES_ADJACENCY_ARB = 0x000A :: GLenum
+
+pattern GL_LINES_ADJACENCY_EXT = 0x000A :: GLenum
+
+pattern GL_LINES_ADJACENCY_OES = 0x000A :: GLenum
+
+pattern GL_LINE_BIT = 0x00000004 :: GLbitfield
+
+pattern GL_LINE_LOOP = 0x0002 :: GLenum
+
+pattern GL_LINE_NV = 0x1B01 :: GLenum
+
+pattern GL_LINE_QUALITY_HINT_SGIX = 0x835B :: GLenum
+
+pattern GL_LINE_RESET_TOKEN = 0x0707 :: GLenum
+
+pattern GL_LINE_SMOOTH = 0x0B20 :: GLenum
+
+pattern GL_LINE_SMOOTH_HINT = 0x0C52 :: GLenum
+
+pattern GL_LINE_STIPPLE = 0x0B24 :: GLenum
+
+pattern GL_LINE_STIPPLE_PATTERN = 0x0B25 :: GLenum
+
+pattern GL_LINE_STIPPLE_REPEAT = 0x0B26 :: GLenum
+
+pattern GL_LINE_STRIP = 0x0003 :: GLenum
+
+pattern GL_LINE_STRIP_ADJACENCY = 0x000B :: GLenum
+
+pattern GL_LINE_STRIP_ADJACENCY_ARB = 0x000B :: GLenum
+
+pattern GL_LINE_STRIP_ADJACENCY_EXT = 0x000B :: GLenum
+
+pattern GL_LINE_STRIP_ADJACENCY_OES = 0x000B :: GLenum
+
+pattern GL_LINE_TOKEN = 0x0702 :: GLenum
+
+pattern GL_LINE_TO_NV = 0x04 :: GLubyte
+
+pattern GL_LINE_WIDTH = 0x0B21 :: GLenum
+
+pattern GL_LINE_WIDTH_COMMAND_NV = 0x000D :: GLenum
+
+pattern GL_LINE_WIDTH_GRANULARITY = 0x0B23 :: GLenum
+
+pattern GL_LINE_WIDTH_RANGE = 0x0B22 :: GLenum
+
+pattern GL_LINK_STATUS = 0x8B82 :: GLenum
+
+pattern GL_LIST_BASE = 0x0B32 :: GLenum
+
+pattern GL_LIST_BIT = 0x00020000 :: GLbitfield
+
+pattern GL_LIST_INDEX = 0x0B33 :: GLenum
+
+pattern GL_LIST_MODE = 0x0B30 :: GLenum
+
+pattern GL_LIST_PRIORITY_SGIX = 0x8182 :: GLenum
+
+pattern GL_LOAD = 0x0101 :: GLenum
+
+pattern GL_LOCAL_CONSTANT_DATATYPE_EXT = 0x87ED :: GLenum
+
+pattern GL_LOCAL_CONSTANT_EXT = 0x87C3 :: GLenum
+
+pattern GL_LOCAL_CONSTANT_VALUE_EXT = 0x87EC :: GLenum
+
+pattern GL_LOCAL_EXT = 0x87C4 :: GLenum
+
+pattern GL_LOCATION = 0x930E :: GLenum
+
+pattern GL_LOCATION_COMPONENT = 0x934A :: GLenum
+
+pattern GL_LOCATION_INDEX = 0x930F :: GLenum
+
+pattern GL_LOCATION_INDEX_EXT = 0x930F :: GLenum
+
+pattern GL_LOGIC_OP = 0x0BF1 :: GLenum
+
+pattern GL_LOGIC_OP_MODE = 0x0BF0 :: GLenum
+
+pattern GL_LOSE_CONTEXT_ON_RESET = 0x8252 :: GLenum
+
+pattern GL_LOSE_CONTEXT_ON_RESET_ARB = 0x8252 :: GLenum
+
+pattern GL_LOSE_CONTEXT_ON_RESET_EXT = 0x8252 :: GLenum
+
+pattern GL_LOSE_CONTEXT_ON_RESET_KHR = 0x8252 :: GLenum
+
+pattern GL_LOWER_LEFT = 0x8CA1 :: GLenum
+
+pattern GL_LOWER_LEFT_EXT = 0x8CA1 :: GLenum
+
+pattern GL_LOW_FLOAT = 0x8DF0 :: GLenum
+
+pattern GL_LOW_INT = 0x8DF3 :: GLenum
+
+pattern GL_LO_BIAS_NV = 0x8715 :: GLenum
+
+pattern GL_LO_SCALE_NV = 0x870F :: GLenum
+
+pattern GL_LUID_SIZE_EXT = 8 :: GLenum
+
+pattern GL_LUMINANCE = 0x1909 :: GLenum
+
+pattern GL_LUMINANCE12 = 0x8041 :: GLenum
+
+pattern GL_LUMINANCE12_ALPHA12 = 0x8047 :: GLenum
+
+pattern GL_LUMINANCE12_ALPHA12_EXT = 0x8047 :: GLenum
+
+pattern GL_LUMINANCE12_ALPHA4 = 0x8046 :: GLenum
+
+pattern GL_LUMINANCE12_ALPHA4_EXT = 0x8046 :: GLenum
+
+pattern GL_LUMINANCE12_EXT = 0x8041 :: GLenum
+
+pattern GL_LUMINANCE16 = 0x8042 :: GLenum
+
+pattern GL_LUMINANCE16F_ARB = 0x881E :: GLenum
+
+pattern GL_LUMINANCE16F_EXT = 0x881E :: GLenum
+
+pattern GL_LUMINANCE16I_EXT = 0x8D8C :: GLenum
+
+pattern GL_LUMINANCE16UI_EXT = 0x8D7A :: GLenum
+
+pattern GL_LUMINANCE16_ALPHA16 = 0x8048 :: GLenum
+
+pattern GL_LUMINANCE16_ALPHA16_EXT = 0x8048 :: GLenum
+
+pattern GL_LUMINANCE16_ALPHA16_SNORM = 0x901A :: GLenum
+
+pattern GL_LUMINANCE16_EXT = 0x8042 :: GLenum
+
+pattern GL_LUMINANCE16_SNORM = 0x9019 :: GLenum
+
+pattern GL_LUMINANCE32F_ARB = 0x8818 :: GLenum
+
+pattern GL_LUMINANCE32F_EXT = 0x8818 :: GLenum
+
+pattern GL_LUMINANCE32I_EXT = 0x8D86 :: GLenum
+
+pattern GL_LUMINANCE32UI_EXT = 0x8D74 :: GLenum
+
+pattern GL_LUMINANCE4 = 0x803F :: GLenum
+
+pattern GL_LUMINANCE4_ALPHA4 = 0x8043 :: GLenum
+
+pattern GL_LUMINANCE4_ALPHA4_EXT = 0x8043 :: GLenum
+
+pattern GL_LUMINANCE4_ALPHA4_OES = 0x8043 :: GLenum
+
+pattern GL_LUMINANCE4_EXT = 0x803F :: GLenum
+
+pattern GL_LUMINANCE6_ALPHA2 = 0x8044 :: GLenum
+
+pattern GL_LUMINANCE6_ALPHA2_EXT = 0x8044 :: GLenum
+
+pattern GL_LUMINANCE8 = 0x8040 :: GLenum
+
+pattern GL_LUMINANCE8I_EXT = 0x8D92 :: GLenum
+
+pattern GL_LUMINANCE8UI_EXT = 0x8D80 :: GLenum
+
+pattern GL_LUMINANCE8_ALPHA8 = 0x8045 :: GLenum
+
+pattern GL_LUMINANCE8_ALPHA8_EXT = 0x8045 :: GLenum
+
+pattern GL_LUMINANCE8_ALPHA8_OES = 0x8045 :: GLenum
+
+pattern GL_LUMINANCE8_ALPHA8_SNORM = 0x9016 :: GLenum
+
+pattern GL_LUMINANCE8_EXT = 0x8040 :: GLenum
+
+pattern GL_LUMINANCE8_OES = 0x8040 :: GLenum
+
+pattern GL_LUMINANCE8_SNORM = 0x9015 :: GLenum
+
+pattern GL_LUMINANCE_ALPHA = 0x190A :: GLenum
+
+pattern GL_LUMINANCE_ALPHA16F_ARB = 0x881F :: GLenum
+
+pattern GL_LUMINANCE_ALPHA16F_EXT = 0x881F :: GLenum
+
+pattern GL_LUMINANCE_ALPHA16I_EXT = 0x8D8D :: GLenum
+
+pattern GL_LUMINANCE_ALPHA16UI_EXT = 0x8D7B :: GLenum
+
+pattern GL_LUMINANCE_ALPHA32F_ARB = 0x8819 :: GLenum
+
+pattern GL_LUMINANCE_ALPHA32F_EXT = 0x8819 :: GLenum
+
+pattern GL_LUMINANCE_ALPHA32I_EXT = 0x8D87 :: GLenum
+
+pattern GL_LUMINANCE_ALPHA32UI_EXT = 0x8D75 :: GLenum
+
+pattern GL_LUMINANCE_ALPHA8I_EXT = 0x8D93 :: GLenum
+
+pattern GL_LUMINANCE_ALPHA8UI_EXT = 0x8D81 :: GLenum
+
+pattern GL_LUMINANCE_ALPHA_FLOAT16_APPLE = 0x881F :: GLenum
+
+pattern GL_LUMINANCE_ALPHA_FLOAT16_ATI = 0x881F :: GLenum
+
+pattern GL_LUMINANCE_ALPHA_FLOAT32_APPLE = 0x8819 :: GLenum
+
+pattern GL_LUMINANCE_ALPHA_FLOAT32_ATI = 0x8819 :: GLenum
+
+pattern GL_LUMINANCE_ALPHA_INTEGER_EXT = 0x8D9D :: GLenum
+
+pattern GL_LUMINANCE_ALPHA_SNORM = 0x9012 :: GLenum
+
+pattern GL_LUMINANCE_FLOAT16_APPLE = 0x881E :: GLenum
+
+pattern GL_LUMINANCE_FLOAT16_ATI = 0x881E :: GLenum
+
+pattern GL_LUMINANCE_FLOAT32_APPLE = 0x8818 :: GLenum
+
+pattern GL_LUMINANCE_FLOAT32_ATI = 0x8818 :: GLenum
+
+pattern GL_LUMINANCE_INTEGER_EXT = 0x8D9C :: GLenum
+
+pattern GL_LUMINANCE_SNORM = 0x9011 :: GLenum
+
+pattern GL_MAD_ATI = 0x8968 :: GLenum
+
+pattern GL_MAGNITUDE_BIAS_NV = 0x8718 :: GLenum
+
+pattern GL_MAGNITUDE_SCALE_NV = 0x8712 :: GLenum
+
+pattern GL_MAJOR_VERSION = 0x821B :: GLenum
+
+pattern GL_MALI_PROGRAM_BINARY_ARM = 0x8F61 :: GLenum
+
+pattern GL_MALI_SHADER_BINARY_ARM = 0x8F60 :: GLenum
+
+pattern GL_MANUAL_GENERATE_MIPMAP = 0x8294 :: GLenum
+
+pattern GL_MAP1_BINORMAL_EXT = 0x8446 :: GLenum
+
+pattern GL_MAP1_COLOR_4 = 0x0D90 :: GLenum
+
+pattern GL_MAP1_GRID_DOMAIN = 0x0DD0 :: GLenum
+
+pattern GL_MAP1_GRID_SEGMENTS = 0x0DD1 :: GLenum
+
+pattern GL_MAP1_INDEX = 0x0D91 :: GLenum
+
+pattern GL_MAP1_NORMAL = 0x0D92 :: GLenum
+
+pattern GL_MAP1_TANGENT_EXT = 0x8444 :: GLenum
+
+pattern GL_MAP1_TEXTURE_COORD_1 = 0x0D93 :: GLenum
+
+pattern GL_MAP1_TEXTURE_COORD_2 = 0x0D94 :: GLenum
+
+pattern GL_MAP1_TEXTURE_COORD_3 = 0x0D95 :: GLenum
+
+pattern GL_MAP1_TEXTURE_COORD_4 = 0x0D96 :: GLenum
+
+pattern GL_MAP1_VERTEX_3 = 0x0D97 :: GLenum
+
+pattern GL_MAP1_VERTEX_4 = 0x0D98 :: GLenum
+
+pattern GL_MAP1_VERTEX_ATTRIB0_4_NV = 0x8660 :: GLenum
+
+pattern GL_MAP1_VERTEX_ATTRIB10_4_NV = 0x866A :: GLenum
+
+pattern GL_MAP1_VERTEX_ATTRIB11_4_NV = 0x866B :: GLenum
+
+pattern GL_MAP1_VERTEX_ATTRIB12_4_NV = 0x866C :: GLenum
+
+pattern GL_MAP1_VERTEX_ATTRIB13_4_NV = 0x866D :: GLenum
+
+pattern GL_MAP1_VERTEX_ATTRIB14_4_NV = 0x866E :: GLenum
+
+pattern GL_MAP1_VERTEX_ATTRIB15_4_NV = 0x866F :: GLenum
+
+pattern GL_MAP1_VERTEX_ATTRIB1_4_NV = 0x8661 :: GLenum
+
+pattern GL_MAP1_VERTEX_ATTRIB2_4_NV = 0x8662 :: GLenum
+
+pattern GL_MAP1_VERTEX_ATTRIB3_4_NV = 0x8663 :: GLenum
+
+pattern GL_MAP1_VERTEX_ATTRIB4_4_NV = 0x8664 :: GLenum
+
+pattern GL_MAP1_VERTEX_ATTRIB5_4_NV = 0x8665 :: GLenum
+
+pattern GL_MAP1_VERTEX_ATTRIB6_4_NV = 0x8666 :: GLenum
+
+pattern GL_MAP1_VERTEX_ATTRIB7_4_NV = 0x8667 :: GLenum
+
+pattern GL_MAP1_VERTEX_ATTRIB8_4_NV = 0x8668 :: GLenum
+
+pattern GL_MAP1_VERTEX_ATTRIB9_4_NV = 0x8669 :: GLenum
+
+pattern GL_MAP2_BINORMAL_EXT = 0x8447 :: GLenum
+
+pattern GL_MAP2_COLOR_4 = 0x0DB0 :: GLenum
+
+pattern GL_MAP2_GRID_DOMAIN = 0x0DD2 :: GLenum
+
+pattern GL_MAP2_GRID_SEGMENTS = 0x0DD3 :: GLenum
+
+pattern GL_MAP2_INDEX = 0x0DB1 :: GLenum
+
+pattern GL_MAP2_NORMAL = 0x0DB2 :: GLenum
+
+pattern GL_MAP2_TANGENT_EXT = 0x8445 :: GLenum
+
+pattern GL_MAP2_TEXTURE_COORD_1 = 0x0DB3 :: GLenum
+
+pattern GL_MAP2_TEXTURE_COORD_2 = 0x0DB4 :: GLenum
+
+pattern GL_MAP2_TEXTURE_COORD_3 = 0x0DB5 :: GLenum
+
+pattern GL_MAP2_TEXTURE_COORD_4 = 0x0DB6 :: GLenum
+
+pattern GL_MAP2_VERTEX_3 = 0x0DB7 :: GLenum
+
+pattern GL_MAP2_VERTEX_4 = 0x0DB8 :: GLenum
+
+pattern GL_MAP2_VERTEX_ATTRIB0_4_NV = 0x8670 :: GLenum
+
+pattern GL_MAP2_VERTEX_ATTRIB10_4_NV = 0x867A :: GLenum
+
+pattern GL_MAP2_VERTEX_ATTRIB11_4_NV = 0x867B :: GLenum
+
+pattern GL_MAP2_VERTEX_ATTRIB12_4_NV = 0x867C :: GLenum
+
+pattern GL_MAP2_VERTEX_ATTRIB13_4_NV = 0x867D :: GLenum
+
+pattern GL_MAP2_VERTEX_ATTRIB14_4_NV = 0x867E :: GLenum
+
+pattern GL_MAP2_VERTEX_ATTRIB15_4_NV = 0x867F :: GLenum
+
+pattern GL_MAP2_VERTEX_ATTRIB1_4_NV = 0x8671 :: GLenum
+
+pattern GL_MAP2_VERTEX_ATTRIB2_4_NV = 0x8672 :: GLenum
+
+pattern GL_MAP2_VERTEX_ATTRIB3_4_NV = 0x8673 :: GLenum
+
+pattern GL_MAP2_VERTEX_ATTRIB4_4_NV = 0x8674 :: GLenum
+
+pattern GL_MAP2_VERTEX_ATTRIB5_4_NV = 0x8675 :: GLenum
+
+pattern GL_MAP2_VERTEX_ATTRIB6_4_NV = 0x8676 :: GLenum
+
+pattern GL_MAP2_VERTEX_ATTRIB7_4_NV = 0x8677 :: GLenum
+
+pattern GL_MAP2_VERTEX_ATTRIB8_4_NV = 0x8678 :: GLenum
+
+pattern GL_MAP2_VERTEX_ATTRIB9_4_NV = 0x8679 :: GLenum
+
+pattern GL_MAP_ATTRIB_U_ORDER_NV = 0x86C3 :: GLenum
+
+pattern GL_MAP_ATTRIB_V_ORDER_NV = 0x86C4 :: GLenum
+
+pattern GL_MAP_COHERENT_BIT = 0x0080 :: GLbitfield
+
+pattern GL_MAP_COHERENT_BIT_EXT = 0x0080 :: GLbitfield
+
+pattern GL_MAP_COLOR = 0x0D10 :: GLenum
+
+pattern GL_MAP_FLUSH_EXPLICIT_BIT = 0x0010 :: GLbitfield
+
+pattern GL_MAP_FLUSH_EXPLICIT_BIT_EXT = 0x0010 :: GLbitfield
+
+pattern GL_MAP_INVALIDATE_BUFFER_BIT = 0x0008 :: GLbitfield
+
+pattern GL_MAP_INVALIDATE_BUFFER_BIT_EXT = 0x0008 :: GLbitfield
+
+pattern GL_MAP_INVALIDATE_RANGE_BIT = 0x0004 :: GLbitfield
+
+pattern GL_MAP_INVALIDATE_RANGE_BIT_EXT = 0x0004 :: GLbitfield
+
+pattern GL_MAP_PERSISTENT_BIT = 0x0040 :: GLbitfield
+
+pattern GL_MAP_PERSISTENT_BIT_EXT = 0x0040 :: GLbitfield
+
+pattern GL_MAP_READ_BIT = 0x0001 :: GLbitfield
+
+pattern GL_MAP_READ_BIT_EXT = 0x0001 :: GLbitfield
+
+pattern GL_MAP_STENCIL = 0x0D11 :: GLenum
+
+pattern GL_MAP_TESSELLATION_NV = 0x86C2 :: GLenum
+
+pattern GL_MAP_UNSYNCHRONIZED_BIT = 0x0020 :: GLbitfield
+
+pattern GL_MAP_UNSYNCHRONIZED_BIT_EXT = 0x0020 :: GLbitfield
+
+pattern GL_MAP_WRITE_BIT = 0x0002 :: GLbitfield
+
+pattern GL_MAP_WRITE_BIT_EXT = 0x0002 :: GLbitfield
+
+pattern GL_MATERIAL_SIDE_HINT_PGI = 0x1A22C :: GLenum
+
+pattern GL_MATRIX0_ARB = 0x88C0 :: GLenum
+
+pattern GL_MATRIX0_NV = 0x8630 :: GLenum
+
+pattern GL_MATRIX10_ARB = 0x88CA :: GLenum
+
+pattern GL_MATRIX11_ARB = 0x88CB :: GLenum
+
+pattern GL_MATRIX12_ARB = 0x88CC :: GLenum
+
+pattern GL_MATRIX13_ARB = 0x88CD :: GLenum
+
+pattern GL_MATRIX14_ARB = 0x88CE :: GLenum
+
+pattern GL_MATRIX15_ARB = 0x88CF :: GLenum
+
+pattern GL_MATRIX16_ARB = 0x88D0 :: GLenum
+
+pattern GL_MATRIX17_ARB = 0x88D1 :: GLenum
+
+pattern GL_MATRIX18_ARB = 0x88D2 :: GLenum
+
+pattern GL_MATRIX19_ARB = 0x88D3 :: GLenum
+
+pattern GL_MATRIX1_ARB = 0x88C1 :: GLenum
+
+pattern GL_MATRIX1_NV = 0x8631 :: GLenum
+
+pattern GL_MATRIX20_ARB = 0x88D4 :: GLenum
+
+pattern GL_MATRIX21_ARB = 0x88D5 :: GLenum
+
+pattern GL_MATRIX22_ARB = 0x88D6 :: GLenum
+
+pattern GL_MATRIX23_ARB = 0x88D7 :: GLenum
+
+pattern GL_MATRIX24_ARB = 0x88D8 :: GLenum
+
+pattern GL_MATRIX25_ARB = 0x88D9 :: GLenum
+
+pattern GL_MATRIX26_ARB = 0x88DA :: GLenum
+
+pattern GL_MATRIX27_ARB = 0x88DB :: GLenum
+
+pattern GL_MATRIX28_ARB = 0x88DC :: GLenum
+
+pattern GL_MATRIX29_ARB = 0x88DD :: GLenum
+
+pattern GL_MATRIX2_ARB = 0x88C2 :: GLenum
+
+pattern GL_MATRIX2_NV = 0x8632 :: GLenum
+
+pattern GL_MATRIX30_ARB = 0x88DE :: GLenum
+
+pattern GL_MATRIX31_ARB = 0x88DF :: GLenum
+
+pattern GL_MATRIX3_ARB = 0x88C3 :: GLenum
+
+pattern GL_MATRIX3_NV = 0x8633 :: GLenum
+
+pattern GL_MATRIX4_ARB = 0x88C4 :: GLenum
+
+pattern GL_MATRIX4_NV = 0x8634 :: GLenum
+
+pattern GL_MATRIX5_ARB = 0x88C5 :: GLenum
+
+pattern GL_MATRIX5_NV = 0x8635 :: GLenum
+
+pattern GL_MATRIX6_ARB = 0x88C6 :: GLenum
+
+pattern GL_MATRIX6_NV = 0x8636 :: GLenum
+
+pattern GL_MATRIX7_ARB = 0x88C7 :: GLenum
+
+pattern GL_MATRIX7_NV = 0x8637 :: GLenum
+
+pattern GL_MATRIX8_ARB = 0x88C8 :: GLenum
+
+pattern GL_MATRIX9_ARB = 0x88C9 :: GLenum
+
+pattern GL_MATRIX_EXT = 0x87C0 :: GLenum
+
+pattern GL_MATRIX_INDEX_ARRAY_ARB = 0x8844 :: GLenum
+
+pattern GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES = 0x8B9E :: GLenum
+
+pattern GL_MATRIX_INDEX_ARRAY_OES = 0x8844 :: GLenum
+
+pattern GL_MATRIX_INDEX_ARRAY_POINTER_ARB = 0x8849 :: GLenum
+
+pattern GL_MATRIX_INDEX_ARRAY_POINTER_OES = 0x8849 :: GLenum
+
+pattern GL_MATRIX_INDEX_ARRAY_SIZE_ARB = 0x8846 :: GLenum
+
+pattern GL_MATRIX_INDEX_ARRAY_SIZE_OES = 0x8846 :: GLenum
+
+pattern GL_MATRIX_INDEX_ARRAY_STRIDE_ARB = 0x8848 :: GLenum
+
+pattern GL_MATRIX_INDEX_ARRAY_STRIDE_OES = 0x8848 :: GLenum
+
+pattern GL_MATRIX_INDEX_ARRAY_TYPE_ARB = 0x8847 :: GLenum
+
+pattern GL_MATRIX_INDEX_ARRAY_TYPE_OES = 0x8847 :: GLenum
+
+pattern GL_MATRIX_MODE = 0x0BA0 :: GLenum
+
+pattern GL_MATRIX_PALETTE_ARB = 0x8840 :: GLenum
+
+pattern GL_MATRIX_PALETTE_OES = 0x8840 :: GLenum
+
+pattern GL_MATRIX_STRIDE = 0x92FF :: GLenum
+
+pattern GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI = 0x00200000 :: GLbitfield
+
+pattern GL_MAT_AMBIENT_BIT_PGI = 0x00100000 :: GLbitfield
+
+pattern GL_MAT_COLOR_INDEXES_BIT_PGI = 0x01000000 :: GLbitfield
+
+pattern GL_MAT_DIFFUSE_BIT_PGI = 0x00400000 :: GLbitfield
+
+pattern GL_MAT_EMISSION_BIT_PGI = 0x00800000 :: GLbitfield
+
+pattern GL_MAT_SHININESS_BIT_PGI = 0x02000000 :: GLbitfield
+
+pattern GL_MAT_SPECULAR_BIT_PGI = 0x04000000 :: GLbitfield
+
+pattern GL_MAX = 0x8008 :: GLenum
+
+pattern GL_MAX_3D_TEXTURE_SIZE = 0x8073 :: GLenum
+
+pattern GL_MAX_3D_TEXTURE_SIZE_EXT = 0x8073 :: GLenum
+
+pattern GL_MAX_3D_TEXTURE_SIZE_OES = 0x8073 :: GLenum
+
+pattern GL_MAX_4D_TEXTURE_SIZE_SGIS = 0x8138 :: GLenum
+
+pattern GL_MAX_ACTIVE_LIGHTS_SGIX = 0x8405 :: GLenum
+
+pattern GL_MAX_ARRAY_TEXTURE_LAYERS = 0x88FF :: GLenum
+
+pattern GL_MAX_ARRAY_TEXTURE_LAYERS_EXT = 0x88FF :: GLenum
+
+pattern GL_MAX_ASYNC_DRAW_PIXELS_SGIX = 0x8360 :: GLenum
+
+pattern GL_MAX_ASYNC_HISTOGRAM_SGIX = 0x832D :: GLenum
+
+pattern GL_MAX_ASYNC_READ_PIXELS_SGIX = 0x8361 :: GLenum
+
+pattern GL_MAX_ASYNC_TEX_IMAGE_SGIX = 0x835F :: GLenum
+
+pattern GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS = 0x92DC :: GLenum
+
+pattern GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE = 0x92D8 :: GLenum
+
+pattern GL_MAX_ATTRIB_STACK_DEPTH = 0x0D35 :: GLenum
+
+pattern GL_MAX_BINDABLE_UNIFORM_SIZE_EXT = 0x8DED :: GLenum
+
+pattern GL_MAX_CLIENT_ATTRIB_STACK_DEPTH = 0x0D3B :: GLenum
+
+pattern GL_MAX_CLIPMAP_DEPTH_SGIX = 0x8177 :: GLenum
+
+pattern GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX = 0x8178 :: GLenum
+
+pattern GL_MAX_CLIP_DISTANCES = 0x0D32 :: GLenum
+
+pattern GL_MAX_CLIP_DISTANCES_APPLE = 0x0D32 :: GLenum
+
+pattern GL_MAX_CLIP_DISTANCES_EXT = 0x0D32 :: GLenum
+
+pattern GL_MAX_CLIP_PLANES = 0x0D32 :: GLenum
+
+pattern GL_MAX_CLIP_PLANES_IMG = 0x0D32 :: GLenum
+
+pattern GL_MAX_COARSE_FRAGMENT_SAMPLES_NV = 0x955F :: GLenum
+
+pattern GL_MAX_COLOR_ATTACHMENTS = 0x8CDF :: GLenum
+
+pattern GL_MAX_COLOR_ATTACHMENTS_EXT = 0x8CDF :: GLenum
+
+pattern GL_MAX_COLOR_ATTACHMENTS_NV = 0x8CDF :: GLenum
+
+pattern GL_MAX_COLOR_FRAMEBUFFER_SAMPLES_AMD = 0x91B3 :: GLenum
+
+pattern GL_MAX_COLOR_FRAMEBUFFER_STORAGE_SAMPLES_AMD = 0x91B4 :: GLenum
+
+pattern GL_MAX_COLOR_MATRIX_STACK_DEPTH = 0x80B3 :: GLenum
+
+pattern GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI = 0x80B3 :: GLenum
+
+pattern GL_MAX_COLOR_TEXTURE_SAMPLES = 0x910E :: GLenum
+
+pattern GL_MAX_COMBINED_ATOMIC_COUNTERS = 0x92D7 :: GLenum
+
+pattern GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS = 0x92D1 :: GLenum
+
+pattern GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES = 0x82FA :: GLenum
+
+pattern GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES_EXT = 0x82FA :: GLenum
+
+pattern GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS = 0x8266 :: GLenum
+
+pattern GL_MAX_COMBINED_DIMENSIONS = 0x8282 :: GLenum
+
+pattern GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = 0x8A33 :: GLenum
+
+pattern GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS = 0x8A32 :: GLenum
+
+pattern GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_EXT = 0x8A32 :: GLenum
+
+pattern GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_OES = 0x8A32 :: GLenum
+
+pattern GL_MAX_COMBINED_IMAGE_UNIFORMS = 0x90CF :: GLenum
+
+pattern GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS = 0x8F39 :: GLenum
+
+pattern GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT = 0x8F39 :: GLenum
+
+pattern GL_MAX_COMBINED_MESH_UNIFORM_COMPONENTS_NV = 0x8E67 :: GLenum
+
+pattern GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES = 0x8F39 :: GLenum
+
+pattern GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS = 0x90DC :: GLenum
+
+pattern GL_MAX_COMBINED_TASK_UNIFORM_COMPONENTS_NV = 0x8E6F :: GLenum
+
+pattern GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS = 0x8E1E :: GLenum
+
+pattern GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_EXT = 0x8E1E :: GLenum
+
+pattern GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_OES = 0x8E1E :: GLenum
+
+pattern GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS = 0x8E1F :: GLenum
+
+pattern GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT = 0x8E1F :: GLenum
+
+pattern GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_OES = 0x8E1F :: GLenum
+
+pattern GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D :: GLenum
+
+pattern GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB = 0x8B4D :: GLenum
+
+pattern GL_MAX_COMBINED_UNIFORM_BLOCKS = 0x8A2E :: GLenum
+
+pattern GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = 0x8A31 :: GLenum
+
+pattern GL_MAX_COMPUTE_ATOMIC_COUNTERS = 0x8265 :: GLenum
+
+pattern GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS = 0x8264 :: GLenum
+
+pattern GL_MAX_COMPUTE_FIXED_GROUP_INVOCATIONS_ARB = 0x90EB :: GLenum
+
+pattern GL_MAX_COMPUTE_FIXED_GROUP_SIZE_ARB = 0x91BF :: GLenum
+
+pattern GL_MAX_COMPUTE_IMAGE_UNIFORMS = 0x91BD :: GLenum
+
+pattern GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS = 0x90DB :: GLenum
+
+pattern GL_MAX_COMPUTE_SHARED_MEMORY_SIZE = 0x8262 :: GLenum
+
+pattern GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS = 0x91BC :: GLenum
+
+pattern GL_MAX_COMPUTE_UNIFORM_BLOCKS = 0x91BB :: GLenum
+
+pattern GL_MAX_COMPUTE_UNIFORM_COMPONENTS = 0x8263 :: GLenum
+
+pattern GL_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB = 0x9344 :: GLenum
+
+pattern GL_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB = 0x9345 :: GLenum
+
+pattern GL_MAX_COMPUTE_WORK_GROUP_COUNT = 0x91BE :: GLenum
+
+pattern GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS = 0x90EB :: GLenum
+
+pattern GL_MAX_COMPUTE_WORK_GROUP_SIZE = 0x91BF :: GLenum
+
+pattern GL_MAX_CONVOLUTION_HEIGHT = 0x801B :: GLenum
+
+pattern GL_MAX_CONVOLUTION_HEIGHT_EXT = 0x801B :: GLenum
+
+pattern GL_MAX_CONVOLUTION_WIDTH = 0x801A :: GLenum
+
+pattern GL_MAX_CONVOLUTION_WIDTH_EXT = 0x801A :: GLenum
+
+pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C :: GLenum
+
+pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB = 0x851C :: GLenum
+
+pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT = 0x851C :: GLenum
+
+pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE_OES = 0x851C :: GLenum
+
+pattern GL_MAX_CULL_DISTANCES = 0x82F9 :: GLenum
+
+pattern GL_MAX_CULL_DISTANCES_EXT = 0x82F9 :: GLenum
+
+pattern GL_MAX_DEBUG_GROUP_STACK_DEPTH = 0x826C :: GLenum
+
+pattern GL_MAX_DEBUG_GROUP_STACK_DEPTH_KHR = 0x826C :: GLenum
+
+pattern GL_MAX_DEBUG_LOGGED_MESSAGES = 0x9144 :: GLenum
+
+pattern GL_MAX_DEBUG_LOGGED_MESSAGES_AMD = 0x9144 :: GLenum
+
+pattern GL_MAX_DEBUG_LOGGED_MESSAGES_ARB = 0x9144 :: GLenum
+
+pattern GL_MAX_DEBUG_LOGGED_MESSAGES_KHR = 0x9144 :: GLenum
+
+pattern GL_MAX_DEBUG_MESSAGE_LENGTH = 0x9143 :: GLenum
+
+pattern GL_MAX_DEBUG_MESSAGE_LENGTH_AMD = 0x9143 :: GLenum
+
+pattern GL_MAX_DEBUG_MESSAGE_LENGTH_ARB = 0x9143 :: GLenum
+
+pattern GL_MAX_DEBUG_MESSAGE_LENGTH_KHR = 0x9143 :: GLenum
+
+pattern GL_MAX_DEEP_3D_TEXTURE_DEPTH_NV = 0x90D1 :: GLenum
+
+pattern GL_MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV = 0x90D0 :: GLenum
+
+pattern GL_MAX_DEFORMATION_ORDER_SGIX = 0x8197 :: GLenum
+
+pattern GL_MAX_DEPTH = 0x8280 :: GLenum
+
+pattern GL_MAX_DEPTH_STENCIL_FRAMEBUFFER_SAMPLES_AMD = 0x91B5 :: GLenum
+
+pattern GL_MAX_DEPTH_TEXTURE_SAMPLES = 0x910F :: GLenum
+
+pattern GL_MAX_DETACHED_BUFFERS_NV = 0x95AD :: GLenum
+
+pattern GL_MAX_DETACHED_TEXTURES_NV = 0x95AC :: GLenum
+
+pattern GL_MAX_DRAW_BUFFERS = 0x8824 :: GLenum
+
+pattern GL_MAX_DRAW_BUFFERS_ARB = 0x8824 :: GLenum
+
+pattern GL_MAX_DRAW_BUFFERS_ATI = 0x8824 :: GLenum
+
+pattern GL_MAX_DRAW_BUFFERS_EXT = 0x8824 :: GLenum
+
+pattern GL_MAX_DRAW_BUFFERS_NV = 0x8824 :: GLenum
+
+pattern GL_MAX_DRAW_MESH_TASKS_COUNT_NV = 0x953D :: GLenum
+
+pattern GL_MAX_DUAL_SOURCE_DRAW_BUFFERS = 0x88FC :: GLenum
+
+pattern GL_MAX_DUAL_SOURCE_DRAW_BUFFERS_EXT = 0x88FC :: GLenum
+
+pattern GL_MAX_ELEMENTS_INDICES = 0x80E9 :: GLenum
+
+pattern GL_MAX_ELEMENTS_INDICES_EXT = 0x80E9 :: GLenum
+
+pattern GL_MAX_ELEMENTS_VERTICES = 0x80E8 :: GLenum
+
+pattern GL_MAX_ELEMENTS_VERTICES_EXT = 0x80E8 :: GLenum
+
+pattern GL_MAX_ELEMENT_INDEX = 0x8D6B :: GLenum
+
+pattern GL_MAX_EVAL_ORDER = 0x0D30 :: GLenum
+
+pattern GL_MAX_EXT = 0x8008 :: GLenum
+
+pattern GL_MAX_FOG_FUNC_POINTS_SGIS = 0x812C :: GLenum
+
+pattern GL_MAX_FRAGMENT_ATOMIC_COUNTERS = 0x92D6 :: GLenum
+
+pattern GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS = 0x92D0 :: GLenum
+
+pattern GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT = 0x8DE3 :: GLenum
+
+pattern GL_MAX_FRAGMENT_IMAGE_UNIFORMS = 0x90CE :: GLenum
+
+pattern GL_MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125 :: GLenum
+
+pattern GL_MAX_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5C :: GLenum
+
+pattern GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV = 0x8E5C :: GLenum
+
+pattern GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_OES = 0x8E5C :: GLenum
+
+pattern GL_MAX_FRAGMENT_LIGHTS_SGIX = 0x8404 :: GLenum
+
+pattern GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV = 0x8868 :: GLenum
+
+pattern GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS = 0x90DA :: GLenum
+
+pattern GL_MAX_FRAGMENT_UNIFORM_BLOCKS = 0x8A2D :: GLenum
+
+pattern GL_MAX_FRAGMENT_UNIFORM_COMPONENTS = 0x8B49 :: GLenum
+
+pattern GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB = 0x8B49 :: GLenum
+
+pattern GL_MAX_FRAGMENT_UNIFORM_VECTORS = 0x8DFD :: GLenum
+
+pattern GL_MAX_FRAMEBUFFER_HEIGHT = 0x9316 :: GLenum
+
+pattern GL_MAX_FRAMEBUFFER_LAYERS = 0x9317 :: GLenum
+
+pattern GL_MAX_FRAMEBUFFER_LAYERS_EXT = 0x9317 :: GLenum
+
+pattern GL_MAX_FRAMEBUFFER_LAYERS_OES = 0x9317 :: GLenum
+
+pattern GL_MAX_FRAMEBUFFER_SAMPLES = 0x9318 :: GLenum
+
+pattern GL_MAX_FRAMEBUFFER_WIDTH = 0x9315 :: GLenum
+
+pattern GL_MAX_FRAMEZOOM_FACTOR_SGIX = 0x818D :: GLenum
+
+pattern GL_MAX_GENERAL_COMBINERS_NV = 0x854D :: GLenum
+
+pattern GL_MAX_GEOMETRY_ATOMIC_COUNTERS = 0x92D5 :: GLenum
+
+pattern GL_MAX_GEOMETRY_ATOMIC_COUNTERS_EXT = 0x92D5 :: GLenum
+
+pattern GL_MAX_GEOMETRY_ATOMIC_COUNTERS_OES = 0x92D5 :: GLenum
+
+pattern GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS = 0x92CF :: GLenum
+
+pattern GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_EXT = 0x92CF :: GLenum
+
+pattern GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_OES = 0x92CF :: GLenum
+
+pattern GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT = 0x8DE4 :: GLenum
+
+pattern GL_MAX_GEOMETRY_IMAGE_UNIFORMS = 0x90CD :: GLenum
+
+pattern GL_MAX_GEOMETRY_IMAGE_UNIFORMS_EXT = 0x90CD :: GLenum
+
+pattern GL_MAX_GEOMETRY_IMAGE_UNIFORMS_OES = 0x90CD :: GLenum
+
+pattern GL_MAX_GEOMETRY_INPUT_COMPONENTS = 0x9123 :: GLenum
+
+pattern GL_MAX_GEOMETRY_INPUT_COMPONENTS_EXT = 0x9123 :: GLenum
+
+pattern GL_MAX_GEOMETRY_INPUT_COMPONENTS_OES = 0x9123 :: GLenum
+
+pattern GL_MAX_GEOMETRY_OUTPUT_COMPONENTS = 0x9124 :: GLenum
+
+pattern GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_EXT = 0x9124 :: GLenum
+
+pattern GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_OES = 0x9124 :: GLenum
+
+pattern GL_MAX_GEOMETRY_OUTPUT_VERTICES = 0x8DE0 :: GLenum
+
+pattern GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB = 0x8DE0 :: GLenum
+
+pattern GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT = 0x8DE0 :: GLenum
+
+pattern GL_MAX_GEOMETRY_OUTPUT_VERTICES_OES = 0x8DE0 :: GLenum
+
+pattern GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV = 0x8E5A :: GLenum
+
+pattern GL_MAX_GEOMETRY_SHADER_INVOCATIONS = 0x8E5A :: GLenum
+
+pattern GL_MAX_GEOMETRY_SHADER_INVOCATIONS_EXT = 0x8E5A :: GLenum
+
+pattern GL_MAX_GEOMETRY_SHADER_INVOCATIONS_OES = 0x8E5A :: GLenum
+
+pattern GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS = 0x90D7 :: GLenum
+
+pattern GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_EXT = 0x90D7 :: GLenum
+
+pattern GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_OES = 0x90D7 :: GLenum
+
+pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS = 0x8C29 :: GLenum
+
+pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB = 0x8C29 :: GLenum
+
+pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT = 0x8C29 :: GLenum
+
+pattern GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_OES = 0x8C29 :: GLenum
+
+pattern GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS = 0x8DE1 :: GLenum
+
+pattern GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB = 0x8DE1 :: GLenum
+
+pattern GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT = 0x8DE1 :: GLenum
+
+pattern GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_OES = 0x8DE1 :: GLenum
+
+pattern GL_MAX_GEOMETRY_UNIFORM_BLOCKS = 0x8A2C :: GLenum
+
+pattern GL_MAX_GEOMETRY_UNIFORM_BLOCKS_EXT = 0x8A2C :: GLenum
+
+pattern GL_MAX_GEOMETRY_UNIFORM_BLOCKS_OES = 0x8A2C :: GLenum
+
+pattern GL_MAX_GEOMETRY_UNIFORM_COMPONENTS = 0x8DDF :: GLenum
+
+pattern GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB = 0x8DDF :: GLenum
+
+pattern GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT = 0x8DDF :: GLenum
+
+pattern GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_OES = 0x8DDF :: GLenum
+
+pattern GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB = 0x8DDD :: GLenum
+
+pattern GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT = 0x8DDD :: GLenum
+
+pattern GL_MAX_HEIGHT = 0x827F :: GLenum
+
+pattern GL_MAX_IMAGE_SAMPLES = 0x906D :: GLenum
+
+pattern GL_MAX_IMAGE_SAMPLES_EXT = 0x906D :: GLenum
+
+pattern GL_MAX_IMAGE_UNITS = 0x8F38 :: GLenum
+
+pattern GL_MAX_IMAGE_UNITS_EXT = 0x8F38 :: GLenum
+
+pattern GL_MAX_INTEGER_SAMPLES = 0x9110 :: GLenum
+
+pattern GL_MAX_LABEL_LENGTH = 0x82E8 :: GLenum
+
+pattern GL_MAX_LABEL_LENGTH_KHR = 0x82E8 :: GLenum
+
+pattern GL_MAX_LAYERS = 0x8281 :: GLenum
+
+pattern GL_MAX_LGPU_GPUS_NVX = 0x92BA :: GLenum
+
+pattern GL_MAX_LIGHTS = 0x0D31 :: GLenum
+
+pattern GL_MAX_LIST_NESTING = 0x0B31 :: GLenum
+
+pattern GL_MAX_MAP_TESSELLATION_NV = 0x86D6 :: GLenum
+
+pattern GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB = 0x8841 :: GLenum
+
+pattern GL_MAX_MESH_ATOMIC_COUNTERS_NV = 0x8E65 :: GLenum
+
+pattern GL_MAX_MESH_ATOMIC_COUNTER_BUFFERS_NV = 0x8E64 :: GLenum
+
+pattern GL_MAX_MESH_IMAGE_UNIFORMS_NV = 0x8E62 :: GLenum
+
+pattern GL_MAX_MESH_OUTPUT_PRIMITIVES_NV = 0x9539 :: GLenum
+
+pattern GL_MAX_MESH_OUTPUT_VERTICES_NV = 0x9538 :: GLenum
+
+pattern GL_MAX_MESH_SHADER_STORAGE_BLOCKS_NV = 0x8E66 :: GLenum
+
+pattern GL_MAX_MESH_TEXTURE_IMAGE_UNITS_NV = 0x8E61 :: GLenum
+
+pattern GL_MAX_MESH_TOTAL_MEMORY_SIZE_NV = 0x9536 :: GLenum
+
+pattern GL_MAX_MESH_UNIFORM_BLOCKS_NV = 0x8E60 :: GLenum
+
+pattern GL_MAX_MESH_UNIFORM_COMPONENTS_NV = 0x8E63 :: GLenum
+
+pattern GL_MAX_MESH_VIEWS_NV = 0x9557 :: GLenum
+
+pattern GL_MAX_MESH_WORK_GROUP_INVOCATIONS_NV = 0x95A2 :: GLenum
+
+pattern GL_MAX_MESH_WORK_GROUP_SIZE_NV = 0x953B :: GLenum
+
+pattern GL_MAX_MODELVIEW_STACK_DEPTH = 0x0D36 :: GLenum
+
+pattern GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV = 0x8E11 :: GLenum
+
+pattern GL_MAX_MULTIVIEW_BUFFERS_EXT = 0x90F2 :: GLenum
+
+pattern GL_MAX_NAME_LENGTH = 0x92F6 :: GLenum
+
+pattern GL_MAX_NAME_STACK_DEPTH = 0x0D37 :: GLenum
+
+pattern GL_MAX_NUM_ACTIVE_VARIABLES = 0x92F7 :: GLenum
+
+pattern GL_MAX_NUM_COMPATIBLE_SUBROUTINES = 0x92F8 :: GLenum
+
+pattern GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT = 0x87CA :: GLenum
+
+pattern GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT = 0x87CD :: GLenum
+
+pattern GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT = 0x87CE :: GLenum
+
+pattern GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = 0x87CC :: GLenum
+
+pattern GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT = 0x87CB :: GLenum
+
+pattern GL_MAX_PALETTE_MATRICES_ARB = 0x8842 :: GLenum
+
+pattern GL_MAX_PALETTE_MATRICES_OES = 0x8842 :: GLenum
+
+pattern GL_MAX_PATCH_VERTICES = 0x8E7D :: GLenum
+
+pattern GL_MAX_PATCH_VERTICES_EXT = 0x8E7D :: GLenum
+
+pattern GL_MAX_PATCH_VERTICES_OES = 0x8E7D :: GLenum
+
+pattern GL_MAX_PIXEL_MAP_TABLE = 0x0D34 :: GLenum
+
+pattern GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT = 0x8337 :: GLenum
+
+pattern GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI = 0x87F1 :: GLenum
+
+pattern GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB = 0x88B1 :: GLenum
+
+pattern GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB = 0x880B :: GLenum
+
+pattern GL_MAX_PROGRAM_ATTRIBS_ARB = 0x88AD :: GLenum
+
+pattern GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV = 0x8908 :: GLenum
+
+pattern GL_MAX_PROGRAM_CALL_DEPTH_NV = 0x88F5 :: GLenum
+
+pattern GL_MAX_PROGRAM_ENV_PARAMETERS_ARB = 0x88B5 :: GLenum
+
+pattern GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV = 0x88F4 :: GLenum
+
+pattern GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV = 0x8DA5 :: GLenum
+
+pattern GL_MAX_PROGRAM_GENERIC_RESULTS_NV = 0x8DA6 :: GLenum
+
+pattern GL_MAX_PROGRAM_IF_DEPTH_NV = 0x88F6 :: GLenum
+
+pattern GL_MAX_PROGRAM_INSTRUCTIONS_ARB = 0x88A1 :: GLenum
+
+pattern GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB = 0x88B4 :: GLenum
+
+pattern GL_MAX_PROGRAM_LOOP_COUNT_NV = 0x88F8 :: GLenum
+
+pattern GL_MAX_PROGRAM_LOOP_DEPTH_NV = 0x88F7 :: GLenum
+
+pattern GL_MAX_PROGRAM_MATRICES_ARB = 0x862F :: GLenum
+
+pattern GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB = 0x862E :: GLenum
+
+pattern GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = 0x88B3 :: GLenum
+
+pattern GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB = 0x880E :: GLenum
+
+pattern GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB = 0x88AF :: GLenum
+
+pattern GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB = 0x88A3 :: GLenum
+
+pattern GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB = 0x88AB :: GLenum
+
+pattern GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB = 0x88A7 :: GLenum
+
+pattern GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB = 0x8810 :: GLenum
+
+pattern GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB = 0x880F :: GLenum
+
+pattern GL_MAX_PROGRAM_OUTPUT_VERTICES_NV = 0x8C27 :: GLenum
+
+pattern GL_MAX_PROGRAM_PARAMETERS_ARB = 0x88A9 :: GLenum
+
+pattern GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV = 0x8DA0 :: GLenum
+
+pattern GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV = 0x8DA1 :: GLenum
+
+pattern GL_MAX_PROGRAM_PATCH_ATTRIBS_NV = 0x86D8 :: GLenum
+
+pattern GL_MAX_PROGRAM_RESULT_COMPONENTS_NV = 0x8909 :: GLenum
+
+pattern GL_MAX_PROGRAM_SUBROUTINE_NUM_NV = 0x8F45 :: GLenum
+
+pattern GL_MAX_PROGRAM_SUBROUTINE_PARAMETERS_NV = 0x8F44 :: GLenum
+
+pattern GL_MAX_PROGRAM_TEMPORARIES_ARB = 0x88A5 :: GLenum
+
+pattern GL_MAX_PROGRAM_TEXEL_OFFSET = 0x8905 :: GLenum
+
+pattern GL_MAX_PROGRAM_TEXEL_OFFSET_EXT = 0x8905 :: GLenum
+
+pattern GL_MAX_PROGRAM_TEXEL_OFFSET_NV = 0x8905 :: GLenum
+
+pattern GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB = 0x8F9F :: GLenum
+
+pattern GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5F :: GLenum
+
+pattern GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB = 0x8E5F :: GLenum
+
+pattern GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV = 0x8E5F :: GLenum
+
+pattern GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB = 0x880D :: GLenum
+
+pattern GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB = 0x880C :: GLenum
+
+pattern GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV = 0x8C28 :: GLenum
+
+pattern GL_MAX_PROJECTION_STACK_DEPTH = 0x0D38 :: GLenum
+
+pattern GL_MAX_RASTER_SAMPLES_EXT = 0x9329 :: GLenum
+
+pattern GL_MAX_RATIONAL_EVAL_ORDER_NV = 0x86D7 :: GLenum
+
+pattern GL_MAX_RECTANGLE_TEXTURE_SIZE = 0x84F8 :: GLenum
+
+pattern GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB = 0x84F8 :: GLenum
+
+pattern GL_MAX_RECTANGLE_TEXTURE_SIZE_NV = 0x84F8 :: GLenum
+
+pattern GL_MAX_RENDERBUFFER_SIZE = 0x84E8 :: GLenum
+
+pattern GL_MAX_RENDERBUFFER_SIZE_EXT = 0x84E8 :: GLenum
+
+pattern GL_MAX_RENDERBUFFER_SIZE_OES = 0x84E8 :: GLenum
+
+pattern GL_MAX_SAMPLES = 0x8D57 :: GLenum
+
+pattern GL_MAX_SAMPLES_ANGLE = 0x8D57 :: GLenum
+
+pattern GL_MAX_SAMPLES_APPLE = 0x8D57 :: GLenum
+
+pattern GL_MAX_SAMPLES_EXT = 0x8D57 :: GLenum
+
+pattern GL_MAX_SAMPLES_IMG = 0x9135 :: GLenum
+
+pattern GL_MAX_SAMPLES_NV = 0x8D57 :: GLenum
+
+pattern GL_MAX_SAMPLE_MASK_WORDS = 0x8E59 :: GLenum
+
+pattern GL_MAX_SAMPLE_MASK_WORDS_NV = 0x8E59 :: GLenum
+
+pattern GL_MAX_SERVER_WAIT_TIMEOUT = 0x9111 :: GLenum
+
+pattern GL_MAX_SERVER_WAIT_TIMEOUT_APPLE = 0x9111 :: GLenum
+
+pattern GL_MAX_SHADER_BUFFER_ADDRESS_NV = 0x8F35 :: GLenum
+
+pattern GL_MAX_SHADER_COMBINED_LOCAL_STORAGE_FAST_SIZE_EXT = 0x9650 :: GLenum
+
+pattern GL_MAX_SHADER_COMBINED_LOCAL_STORAGE_SIZE_EXT = 0x9651 :: GLenum
+
+pattern GL_MAX_SHADER_COMPILER_THREADS_ARB = 0x91B0 :: GLenum
+
+pattern GL_MAX_SHADER_COMPILER_THREADS_KHR = 0x91B0 :: GLenum
+
+pattern GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_FAST_SIZE_EXT = 0x8F63 :: GLenum
+
+pattern GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_SIZE_EXT = 0x8F67 :: GLenum
+
+pattern GL_MAX_SHADER_STORAGE_BLOCK_SIZE = 0x90DE :: GLenum
+
+pattern GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS = 0x90DD :: GLenum
+
+pattern GL_MAX_SHADER_SUBSAMPLED_IMAGE_UNITS_QCOM = 0x8FA1 :: GLenum
+
+pattern GL_MAX_SHININESS_NV = 0x8504 :: GLenum
+
+pattern GL_MAX_SPARSE_3D_TEXTURE_SIZE_AMD = 0x9199 :: GLenum
+
+pattern GL_MAX_SPARSE_3D_TEXTURE_SIZE_ARB = 0x9199 :: GLenum
+
+pattern GL_MAX_SPARSE_3D_TEXTURE_SIZE_EXT = 0x9199 :: GLenum
+
+pattern GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS = 0x919A :: GLenum
+
+pattern GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB = 0x919A :: GLenum
+
+pattern GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_EXT = 0x919A :: GLenum
+
+pattern GL_MAX_SPARSE_TEXTURE_SIZE_AMD = 0x9198 :: GLenum
+
+pattern GL_MAX_SPARSE_TEXTURE_SIZE_ARB = 0x9198 :: GLenum
+
+pattern GL_MAX_SPARSE_TEXTURE_SIZE_EXT = 0x9198 :: GLenum
+
+pattern GL_MAX_SPOT_EXPONENT_NV = 0x8505 :: GLenum
+
+pattern GL_MAX_SUBPIXEL_PRECISION_BIAS_BITS_NV = 0x9349 :: GLenum
+
+pattern GL_MAX_SUBROUTINES = 0x8DE7 :: GLenum
+
+pattern GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS = 0x8DE8 :: GLenum
+
+pattern GL_MAX_TASK_ATOMIC_COUNTERS_NV = 0x8E6D :: GLenum
+
+pattern GL_MAX_TASK_ATOMIC_COUNTER_BUFFERS_NV = 0x8E6C :: GLenum
+
+pattern GL_MAX_TASK_IMAGE_UNIFORMS_NV = 0x8E6A :: GLenum
+
+pattern GL_MAX_TASK_OUTPUT_COUNT_NV = 0x953A :: GLenum
+
+pattern GL_MAX_TASK_SHADER_STORAGE_BLOCKS_NV = 0x8E6E :: GLenum
+
+pattern GL_MAX_TASK_TEXTURE_IMAGE_UNITS_NV = 0x8E69 :: GLenum
+
+pattern GL_MAX_TASK_TOTAL_MEMORY_SIZE_NV = 0x9537 :: GLenum
+
+pattern GL_MAX_TASK_UNIFORM_BLOCKS_NV = 0x8E68 :: GLenum
+
+pattern GL_MAX_TASK_UNIFORM_COMPONENTS_NV = 0x8E6B :: GLenum
+
+pattern GL_MAX_TASK_WORK_GROUP_INVOCATIONS_NV = 0x95A3 :: GLenum
+
+pattern GL_MAX_TASK_WORK_GROUP_SIZE_NV = 0x953C :: GLenum
+
+pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS = 0x92D3 :: GLenum
+
+pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_EXT = 0x92D3 :: GLenum
+
+pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_OES = 0x92D3 :: GLenum
+
+pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS = 0x92CD :: GLenum
+
+pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_EXT = 0x92CD :: GLenum
+
+pattern GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_OES = 0x92CD :: GLenum
+
+pattern GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS = 0x90CB :: GLenum
+
+pattern GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_EXT = 0x90CB :: GLenum
+
+pattern GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_OES = 0x90CB :: GLenum
+
+pattern GL_MAX_TESS_CONTROL_INPUT_COMPONENTS = 0x886C :: GLenum
+
+pattern GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_EXT = 0x886C :: GLenum
+
+pattern GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_OES = 0x886C :: GLenum
+
+pattern GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS = 0x8E83 :: GLenum
+
+pattern GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_EXT = 0x8E83 :: GLenum
+
+pattern GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_OES = 0x8E83 :: GLenum
+
+pattern GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS = 0x90D8 :: GLenum
+
+pattern GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_EXT = 0x90D8 :: GLenum
+
+pattern GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_OES = 0x90D8 :: GLenum
+
+pattern GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS = 0x8E81 :: GLenum
+
+pattern GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_EXT = 0x8E81 :: GLenum
+
+pattern GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_OES = 0x8E81 :: GLenum
+
+pattern GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS = 0x8E85 :: GLenum
+
+pattern GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_EXT = 0x8E85 :: GLenum
+
+pattern GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_OES = 0x8E85 :: GLenum
+
+pattern GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS = 0x8E89 :: GLenum
+
+pattern GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_EXT = 0x8E89 :: GLenum
+
+pattern GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_OES = 0x8E89 :: GLenum
+
+pattern GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS = 0x8E7F :: GLenum
+
+pattern GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_EXT = 0x8E7F :: GLenum
+
+pattern GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_OES = 0x8E7F :: GLenum
+
+pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS = 0x92D4 :: GLenum
+
+pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_EXT = 0x92D4 :: GLenum
+
+pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_OES = 0x92D4 :: GLenum
+
+pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS = 0x92CE :: GLenum
+
+pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_EXT = 0x92CE :: GLenum
+
+pattern GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_OES = 0x92CE :: GLenum
+
+pattern GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS = 0x90CC :: GLenum
+
+pattern GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_EXT = 0x90CC :: GLenum
+
+pattern GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_OES = 0x90CC :: GLenum
+
+pattern GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS = 0x886D :: GLenum
+
+pattern GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_EXT = 0x886D :: GLenum
+
+pattern GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_OES = 0x886D :: GLenum
+
+pattern GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS = 0x8E86 :: GLenum
+
+pattern GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_EXT = 0x8E86 :: GLenum
+
+pattern GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_OES = 0x8E86 :: GLenum
+
+pattern GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS = 0x90D9 :: GLenum
+
+pattern GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_EXT = 0x90D9 :: GLenum
+
+pattern GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_OES = 0x90D9 :: GLenum
+
+pattern GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS = 0x8E82 :: GLenum
+
+pattern GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_EXT = 0x8E82 :: GLenum
+
+pattern GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_OES = 0x8E82 :: GLenum
+
+pattern GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS = 0x8E8A :: GLenum
+
+pattern GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_EXT = 0x8E8A :: GLenum
+
+pattern GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_OES = 0x8E8A :: GLenum
+
+pattern GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS = 0x8E80 :: GLenum
+
+pattern GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT = 0x8E80 :: GLenum
+
+pattern GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_OES = 0x8E80 :: GLenum
+
+pattern GL_MAX_TESS_GEN_LEVEL = 0x8E7E :: GLenum
+
+pattern GL_MAX_TESS_GEN_LEVEL_EXT = 0x8E7E :: GLenum
+
+pattern GL_MAX_TESS_GEN_LEVEL_OES = 0x8E7E :: GLenum
+
+pattern GL_MAX_TESS_PATCH_COMPONENTS = 0x8E84 :: GLenum
+
+pattern GL_MAX_TESS_PATCH_COMPONENTS_EXT = 0x8E84 :: GLenum
+
+pattern GL_MAX_TESS_PATCH_COMPONENTS_OES = 0x8E84 :: GLenum
+
+pattern GL_MAX_TEXTURE_BUFFER_SIZE = 0x8C2B :: GLenum
+
+pattern GL_MAX_TEXTURE_BUFFER_SIZE_ARB = 0x8C2B :: GLenum
+
+pattern GL_MAX_TEXTURE_BUFFER_SIZE_EXT = 0x8C2B :: GLenum
+
+pattern GL_MAX_TEXTURE_BUFFER_SIZE_OES = 0x8C2B :: GLenum
+
+pattern GL_MAX_TEXTURE_COORDS = 0x8871 :: GLenum
+
+pattern GL_MAX_TEXTURE_COORDS_ARB = 0x8871 :: GLenum
+
+pattern GL_MAX_TEXTURE_COORDS_NV = 0x8871 :: GLenum
+
+pattern GL_MAX_TEXTURE_IMAGE_UNITS = 0x8872 :: GLenum
+
+pattern GL_MAX_TEXTURE_IMAGE_UNITS_ARB = 0x8872 :: GLenum
+
+pattern GL_MAX_TEXTURE_IMAGE_UNITS_NV = 0x8872 :: GLenum
+
+pattern GL_MAX_TEXTURE_LOD_BIAS = 0x84FD :: GLenum
+
+pattern GL_MAX_TEXTURE_LOD_BIAS_EXT = 0x84FD :: GLenum
+
+pattern GL_MAX_TEXTURE_MAX_ANISOTROPY = 0x84FF :: GLenum
+
+pattern GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT = 0x84FF :: GLenum
+
+pattern GL_MAX_TEXTURE_SIZE = 0x0D33 :: GLenum
+
+pattern GL_MAX_TEXTURE_STACK_DEPTH = 0x0D39 :: GLenum
+
+pattern GL_MAX_TEXTURE_UNITS = 0x84E2 :: GLenum
+
+pattern GL_MAX_TEXTURE_UNITS_ARB = 0x84E2 :: GLenum
+
+pattern GL_MAX_TRACK_MATRICES_NV = 0x862F :: GLenum
+
+pattern GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV = 0x862E :: GLenum
+
+pattern GL_MAX_TRANSFORM_FEEDBACK_BUFFERS = 0x8E70 :: GLenum
+
+pattern GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = 0x8C8A :: GLenum
+
+pattern GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT = 0x8C8A :: GLenum
+
+pattern GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV = 0x8C8A :: GLenum
+
+pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = 0x8C8B :: GLenum
+
+pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT = 0x8C8B :: GLenum
+
+pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV = 0x8C8B :: GLenum
+
+pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = 0x8C80 :: GLenum
+
+pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT = 0x8C80 :: GLenum
+
+pattern GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV = 0x8C80 :: GLenum
+
+pattern GL_MAX_UNIFORM_BLOCK_SIZE = 0x8A30 :: GLenum
+
+pattern GL_MAX_UNIFORM_BUFFER_BINDINGS = 0x8A2F :: GLenum
+
+pattern GL_MAX_UNIFORM_LOCATIONS = 0x826E :: GLenum
+
+pattern GL_MAX_VARYING_COMPONENTS = 0x8B4B :: GLenum
+
+pattern GL_MAX_VARYING_COMPONENTS_EXT = 0x8B4B :: GLenum
+
+pattern GL_MAX_VARYING_FLOATS = 0x8B4B :: GLenum
+
+pattern GL_MAX_VARYING_FLOATS_ARB = 0x8B4B :: GLenum
+
+pattern GL_MAX_VARYING_VECTORS = 0x8DFC :: GLenum
+
+pattern GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV = 0x8520 :: GLenum
+
+pattern GL_MAX_VERTEX_ATOMIC_COUNTERS = 0x92D2 :: GLenum
+
+pattern GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS = 0x92CC :: GLenum
+
+pattern GL_MAX_VERTEX_ATTRIBS = 0x8869 :: GLenum
+
+pattern GL_MAX_VERTEX_ATTRIBS_ARB = 0x8869 :: GLenum
+
+pattern GL_MAX_VERTEX_ATTRIB_BINDINGS = 0x82DA :: GLenum
+
+pattern GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET = 0x82D9 :: GLenum
+
+pattern GL_MAX_VERTEX_ATTRIB_STRIDE = 0x82E5 :: GLenum
+
+pattern GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT = 0x8DE2 :: GLenum
+
+pattern GL_MAX_VERTEX_HINT_PGI = 0x1A22D :: GLenum
+
+pattern GL_MAX_VERTEX_IMAGE_UNIFORMS = 0x90CA :: GLenum
+
+pattern GL_MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122 :: GLenum
+
+pattern GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT = 0x87C5 :: GLenum
+
+pattern GL_MAX_VERTEX_SHADER_INVARIANTS_EXT = 0x87C7 :: GLenum
+
+pattern GL_MAX_VERTEX_SHADER_LOCALS_EXT = 0x87C9 :: GLenum
+
+pattern GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = 0x87C8 :: GLenum
+
+pattern GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS = 0x90D6 :: GLenum
+
+pattern GL_MAX_VERTEX_SHADER_VARIANTS_EXT = 0x87C6 :: GLenum
+
+pattern GL_MAX_VERTEX_STREAMS = 0x8E71 :: GLenum
+
+pattern GL_MAX_VERTEX_STREAMS_ATI = 0x876B :: GLenum
+
+pattern GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C :: GLenum
+
+pattern GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB = 0x8B4C :: GLenum
+
+pattern GL_MAX_VERTEX_UNIFORM_BLOCKS = 0x8A2B :: GLenum
+
+pattern GL_MAX_VERTEX_UNIFORM_COMPONENTS = 0x8B4A :: GLenum
+
+pattern GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB = 0x8B4A :: GLenum
+
+pattern GL_MAX_VERTEX_UNIFORM_VECTORS = 0x8DFB :: GLenum
+
+pattern GL_MAX_VERTEX_UNITS_ARB = 0x86A4 :: GLenum
+
+pattern GL_MAX_VERTEX_UNITS_OES = 0x86A4 :: GLenum
+
+pattern GL_MAX_VERTEX_VARYING_COMPONENTS_ARB = 0x8DDE :: GLenum
+
+pattern GL_MAX_VERTEX_VARYING_COMPONENTS_EXT = 0x8DDE :: GLenum
+
+pattern GL_MAX_VIEWPORTS = 0x825B :: GLenum
+
+pattern GL_MAX_VIEWPORTS_NV = 0x825B :: GLenum
+
+pattern GL_MAX_VIEWPORTS_OES = 0x825B :: GLenum
+
+pattern GL_MAX_VIEWPORT_DIMS = 0x0D3A :: GLenum
+
+pattern GL_MAX_VIEWS_OVR = 0x9631 :: GLenum
+
+pattern GL_MAX_WIDTH = 0x827E :: GLenum
+
+pattern GL_MAX_WINDOW_RECTANGLES_EXT = 0x8F14 :: GLenum
+
+pattern GL_MEDIUM_FLOAT = 0x8DF1 :: GLenum
+
+pattern GL_MEDIUM_INT = 0x8DF4 :: GLenum
+
+pattern GL_MEMORY_ATTACHABLE_ALIGNMENT_NV = 0x95A6 :: GLenum
+
+pattern GL_MEMORY_ATTACHABLE_NV = 0x95A8 :: GLenum
+
+pattern GL_MEMORY_ATTACHABLE_SIZE_NV = 0x95A7 :: GLenum
+
+pattern GL_MESH_OUTPUT_PER_PRIMITIVE_GRANULARITY_NV = 0x9543 :: GLenum
+
+pattern GL_MESH_OUTPUT_PER_VERTEX_GRANULARITY_NV = 0x92DF :: GLenum
+
+pattern GL_MESH_OUTPUT_TYPE_NV = 0x957B :: GLenum
+
+pattern GL_MESH_PRIMITIVES_OUT_NV = 0x957A :: GLenum
+
+pattern GL_MESH_SHADER_BIT_NV = 0x00000040 :: GLbitfield
+
+pattern GL_MESH_SHADER_NV = 0x9559 :: GLenum
+
+pattern GL_MESH_SUBROUTINE_NV = 0x957C :: GLenum
+
+pattern GL_MESH_SUBROUTINE_UNIFORM_NV = 0x957E :: GLenum
+
+pattern GL_MESH_VERTICES_OUT_NV = 0x9579 :: GLenum
+
+pattern GL_MESH_WORK_GROUP_SIZE_NV = 0x953E :: GLenum
+
+pattern GL_MIN = 0x8007 :: GLenum
+
+pattern GL_MINMAX = 0x802E :: GLenum
+
+pattern GL_MINMAX_EXT = 0x802E :: GLenum
+
+pattern GL_MINMAX_FORMAT = 0x802F :: GLenum
+
+pattern GL_MINMAX_FORMAT_EXT = 0x802F :: GLenum
+
+pattern GL_MINMAX_SINK = 0x8030 :: GLenum
+
+pattern GL_MINMAX_SINK_EXT = 0x8030 :: GLenum
+
+pattern GL_MINOR_VERSION = 0x821C :: GLenum
+
+pattern GL_MINUS_CLAMPED_NV = 0x92B3 :: GLenum
+
+pattern GL_MINUS_NV = 0x929F :: GLenum
+
+pattern GL_MIN_EXT = 0x8007 :: GLenum
+
+pattern GL_MIN_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5B :: GLenum
+
+pattern GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV = 0x8E5B :: GLenum
+
+pattern GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_OES = 0x8E5B :: GLenum
+
+pattern GL_MIN_LOD_WARNING_AMD = 0x919C :: GLenum
+
+pattern GL_MIN_MAP_BUFFER_ALIGNMENT = 0x90BC :: GLenum
+
+pattern GL_MIN_PROGRAM_TEXEL_OFFSET = 0x8904 :: GLenum
+
+pattern GL_MIN_PROGRAM_TEXEL_OFFSET_EXT = 0x8904 :: GLenum
+
+pattern GL_MIN_PROGRAM_TEXEL_OFFSET_NV = 0x8904 :: GLenum
+
+pattern GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5E :: GLenum
+
+pattern GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB = 0x8E5E :: GLenum
+
+pattern GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV = 0x8E5E :: GLenum
+
+pattern GL_MIN_SAMPLE_SHADING_VALUE = 0x8C37 :: GLenum
+
+pattern GL_MIN_SAMPLE_SHADING_VALUE_ARB = 0x8C37 :: GLenum
+
+pattern GL_MIN_SAMPLE_SHADING_VALUE_OES = 0x8C37 :: GLenum
+
+pattern GL_MIN_SPARSE_LEVEL_AMD = 0x919B :: GLenum
+
+pattern GL_MIPMAP = 0x8293 :: GLenum
+
+pattern GL_MIRRORED_REPEAT = 0x8370 :: GLenum
+
+pattern GL_MIRRORED_REPEAT_ARB = 0x8370 :: GLenum
+
+pattern GL_MIRRORED_REPEAT_IBM = 0x8370 :: GLenum
+
+pattern GL_MIRRORED_REPEAT_OES = 0x8370 :: GLenum
+
+pattern GL_MIRROR_CLAMP_ATI = 0x8742 :: GLenum
+
+pattern GL_MIRROR_CLAMP_EXT = 0x8742 :: GLenum
+
+pattern GL_MIRROR_CLAMP_TO_BORDER_EXT = 0x8912 :: GLenum
+
+pattern GL_MIRROR_CLAMP_TO_EDGE = 0x8743 :: GLenum
+
+pattern GL_MIRROR_CLAMP_TO_EDGE_ATI = 0x8743 :: GLenum
+
+pattern GL_MIRROR_CLAMP_TO_EDGE_EXT = 0x8743 :: GLenum
+
+pattern GL_MITER_REVERT_NV = 0x90A7 :: GLenum
+
+pattern GL_MITER_TRUNCATE_NV = 0x90A8 :: GLenum
+
+pattern GL_MIXED_DEPTH_SAMPLES_SUPPORTED_NV = 0x932F :: GLenum
+
+pattern GL_MIXED_STENCIL_SAMPLES_SUPPORTED_NV = 0x9330 :: GLenum
+
+pattern GL_MODELVIEW = 0x1700 :: GLenum
+
+pattern GL_MODELVIEW0_ARB = 0x1700 :: GLenum
+
+pattern GL_MODELVIEW0_EXT = 0x1700 :: GLenum
+
+pattern GL_MODELVIEW0_MATRIX_EXT = 0x0BA6 :: GLenum
+
+pattern GL_MODELVIEW0_STACK_DEPTH_EXT = 0x0BA3 :: GLenum
+
+pattern GL_MODELVIEW10_ARB = 0x872A :: GLenum
+
+pattern GL_MODELVIEW11_ARB = 0x872B :: GLenum
+
+pattern GL_MODELVIEW12_ARB = 0x872C :: GLenum
+
+pattern GL_MODELVIEW13_ARB = 0x872D :: GLenum
+
+pattern GL_MODELVIEW14_ARB = 0x872E :: GLenum
+
+pattern GL_MODELVIEW15_ARB = 0x872F :: GLenum
+
+pattern GL_MODELVIEW16_ARB = 0x8730 :: GLenum
+
+pattern GL_MODELVIEW17_ARB = 0x8731 :: GLenum
+
+pattern GL_MODELVIEW18_ARB = 0x8732 :: GLenum
+
+pattern GL_MODELVIEW19_ARB = 0x8733 :: GLenum
+
+pattern GL_MODELVIEW1_ARB = 0x850A :: GLenum
+
+pattern GL_MODELVIEW1_EXT = 0x850A :: GLenum
+
+pattern GL_MODELVIEW1_MATRIX_EXT = 0x8506 :: GLenum
+
+pattern GL_MODELVIEW1_STACK_DEPTH_EXT = 0x8502 :: GLenum
+
+pattern GL_MODELVIEW20_ARB = 0x8734 :: GLenum
+
+pattern GL_MODELVIEW21_ARB = 0x8735 :: GLenum
+
+pattern GL_MODELVIEW22_ARB = 0x8736 :: GLenum
+
+pattern GL_MODELVIEW23_ARB = 0x8737 :: GLenum
+
+pattern GL_MODELVIEW24_ARB = 0x8738 :: GLenum
+
+pattern GL_MODELVIEW25_ARB = 0x8739 :: GLenum
+
+pattern GL_MODELVIEW26_ARB = 0x873A :: GLenum
+
+pattern GL_MODELVIEW27_ARB = 0x873B :: GLenum
+
+pattern GL_MODELVIEW28_ARB = 0x873C :: GLenum
+
+pattern GL_MODELVIEW29_ARB = 0x873D :: GLenum
+
+pattern GL_MODELVIEW2_ARB = 0x8722 :: GLenum
+
+pattern GL_MODELVIEW30_ARB = 0x873E :: GLenum
+
+pattern GL_MODELVIEW31_ARB = 0x873F :: GLenum
+
+pattern GL_MODELVIEW3_ARB = 0x8723 :: GLenum
+
+pattern GL_MODELVIEW4_ARB = 0x8724 :: GLenum
+
+pattern GL_MODELVIEW5_ARB = 0x8725 :: GLenum
+
+pattern GL_MODELVIEW6_ARB = 0x8726 :: GLenum
+
+pattern GL_MODELVIEW7_ARB = 0x8727 :: GLenum
+
+pattern GL_MODELVIEW8_ARB = 0x8728 :: GLenum
+
+pattern GL_MODELVIEW9_ARB = 0x8729 :: GLenum
+
+pattern GL_MODELVIEW_MATRIX = 0x0BA6 :: GLenum
+
+pattern GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES = 0x898D :: GLenum
+
+pattern GL_MODELVIEW_PROJECTION_NV = 0x8629 :: GLenum
+
+pattern GL_MODELVIEW_STACK_DEPTH = 0x0BA3 :: GLenum
+
+pattern GL_MODULATE = 0x2100 :: GLenum
+
+pattern GL_MODULATE_ADD_ATI = 0x8744 :: GLenum
+
+pattern GL_MODULATE_COLOR_IMG = 0x8C04 :: GLenum
+
+pattern GL_MODULATE_SIGNED_ADD_ATI = 0x8745 :: GLenum
+
+pattern GL_MODULATE_SUBTRACT_ATI = 0x8746 :: GLenum
+
+pattern GL_MOVE_TO_CONTINUES_NV = 0x90B6 :: GLenum
+
+pattern GL_MOVE_TO_NV = 0x02 :: GLubyte
+
+pattern GL_MOVE_TO_RESETS_NV = 0x90B5 :: GLenum
+
+pattern GL_MOV_ATI = 0x8961 :: GLenum
+
+pattern GL_MULT = 0x0103 :: GLenum
+
+pattern GL_MULTICAST_GPUS_NV = 0x92BA :: GLenum
+
+pattern GL_MULTICAST_PROGRAMMABLE_SAMPLE_LOCATION_NV = 0x9549 :: GLenum
+
+pattern GL_MULTIPLY = 0x9294 :: GLenum
+
+pattern GL_MULTIPLY_KHR = 0x9294 :: GLenum
+
+pattern GL_MULTIPLY_NV = 0x9294 :: GLenum
+
+pattern GL_MULTISAMPLE = 0x809D :: GLenum
+
+pattern GL_MULTISAMPLES_NV = 0x9371 :: GLenum
+
+pattern GL_MULTISAMPLE_3DFX = 0x86B2 :: GLenum
+
+pattern GL_MULTISAMPLE_ARB = 0x809D :: GLenum
+
+pattern GL_MULTISAMPLE_BIT = 0x20000000 :: GLbitfield
+
+pattern GL_MULTISAMPLE_BIT_3DFX = 0x20000000 :: GLbitfield
+
+pattern GL_MULTISAMPLE_BIT_ARB = 0x20000000 :: GLbitfield
+
+pattern GL_MULTISAMPLE_BIT_EXT = 0x20000000 :: GLbitfield
+
+pattern GL_MULTISAMPLE_BUFFER_BIT0_QCOM = 0x01000000 :: GLbitfield
+
+pattern GL_MULTISAMPLE_BUFFER_BIT1_QCOM = 0x02000000 :: GLbitfield
+
+pattern GL_MULTISAMPLE_BUFFER_BIT2_QCOM = 0x04000000 :: GLbitfield
+
+pattern GL_MULTISAMPLE_BUFFER_BIT3_QCOM = 0x08000000 :: GLbitfield
+
+pattern GL_MULTISAMPLE_BUFFER_BIT4_QCOM = 0x10000000 :: GLbitfield
+
+pattern GL_MULTISAMPLE_BUFFER_BIT5_QCOM = 0x20000000 :: GLbitfield
+
+pattern GL_MULTISAMPLE_BUFFER_BIT6_QCOM = 0x40000000 :: GLbitfield
+
+pattern GL_MULTISAMPLE_BUFFER_BIT7_QCOM = 0x80000000 :: GLbitfield
+
+pattern GL_MULTISAMPLE_COVERAGE_MODES_NV = 0x8E12 :: GLenum
+
+pattern GL_MULTISAMPLE_EXT = 0x809D :: GLenum
+
+pattern GL_MULTISAMPLE_FILTER_HINT_NV = 0x8534 :: GLenum
+
+pattern GL_MULTISAMPLE_LINE_WIDTH_GRANULARITY = 0x9382 :: GLenum
+
+pattern GL_MULTISAMPLE_LINE_WIDTH_GRANULARITY_ARB = 0x9382 :: GLenum
+
+pattern GL_MULTISAMPLE_LINE_WIDTH_RANGE = 0x9381 :: GLenum
+
+pattern GL_MULTISAMPLE_LINE_WIDTH_RANGE_ARB = 0x9381 :: GLenum
+
+pattern GL_MULTISAMPLE_RASTERIZATION_ALLOWED_EXT = 0x932B :: GLenum
+
+pattern GL_MULTISAMPLE_SGIS = 0x809D :: GLenum
+
+pattern GL_MULTIVIEW_EXT = 0x90F1 :: GLenum
+
+pattern GL_MUL_ATI = 0x8964 :: GLenum
+
+pattern GL_MVP_MATRIX_EXT = 0x87E3 :: GLenum
+
+pattern GL_N3F_V3F = 0x2A25 :: GLenum
+
+pattern GL_NAMED_STRING_LENGTH_ARB = 0x8DE9 :: GLenum
+
+pattern GL_NAMED_STRING_TYPE_ARB = 0x8DEA :: GLenum
+
+pattern GL_NAME_LENGTH = 0x92F9 :: GLenum
+
+pattern GL_NAME_STACK_DEPTH = 0x0D70 :: GLenum
+
+pattern GL_NAND = 0x150E :: GLenum
+
+pattern GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI = 0x1A203 :: GLenum
+
+pattern GL_NATIVE_GRAPHICS_END_HINT_PGI = 0x1A204 :: GLenum
+
+pattern GL_NATIVE_GRAPHICS_HANDLE_PGI = 0x1A202 :: GLenum
+
+pattern GL_NEAREST = 0x2600 :: GLenum
+
+pattern GL_NEAREST_CLIPMAP_LINEAR_SGIX = 0x844E :: GLenum
+
+pattern GL_NEAREST_CLIPMAP_NEAREST_SGIX = 0x844D :: GLenum
+
+pattern GL_NEAREST_MIPMAP_LINEAR = 0x2702 :: GLenum
+
+pattern GL_NEAREST_MIPMAP_NEAREST = 0x2700 :: GLenum
+
+pattern GL_NEGATE_BIT_ATI = 0x00000004 :: GLbitfield
+
+pattern GL_NEGATIVE_ONE_EXT = 0x87DF :: GLenum
+
+pattern GL_NEGATIVE_ONE_TO_ONE = 0x935E :: GLenum
+
+pattern GL_NEGATIVE_ONE_TO_ONE_EXT = 0x935E :: GLenum
+
+pattern GL_NEGATIVE_W_EXT = 0x87DC :: GLenum
+
+pattern GL_NEGATIVE_X_EXT = 0x87D9 :: GLenum
+
+pattern GL_NEGATIVE_Y_EXT = 0x87DA :: GLenum
+
+pattern GL_NEGATIVE_Z_EXT = 0x87DB :: GLenum
+
+pattern GL_NEVER = 0x0200 :: GLenum
+
+pattern GL_NEXT_BUFFER_NV = -2 :: GLenum
+
+pattern GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV = 0x9025 :: GLenum
+
+pattern GL_NICEST = 0x1102 :: GLenum
+
+pattern GL_NONE = 0 :: GLenum
+
+pattern GL_NONE_OES = 0 :: GLenum
+
+pattern GL_NOOP = 0x1505 :: GLenum
+
+pattern GL_NOP_COMMAND_NV = 0x0001 :: GLenum
+
+pattern GL_NOR = 0x1508 :: GLenum
+
+pattern GL_NORMALIZE = 0x0BA1 :: GLenum
+
+pattern GL_NORMALIZED_RANGE_EXT = 0x87E0 :: GLenum
+
+pattern GL_NORMAL_ARRAY = 0x8075 :: GLenum
+
+pattern GL_NORMAL_ARRAY_ADDRESS_NV = 0x8F22 :: GLenum
+
+pattern GL_NORMAL_ARRAY_BUFFER_BINDING = 0x8897 :: GLenum
+
+pattern GL_NORMAL_ARRAY_BUFFER_BINDING_ARB = 0x8897 :: GLenum
+
+pattern GL_NORMAL_ARRAY_COUNT_EXT = 0x8080 :: GLenum
+
+pattern GL_NORMAL_ARRAY_EXT = 0x8075 :: GLenum
+
+pattern GL_NORMAL_ARRAY_LENGTH_NV = 0x8F2C :: GLenum
+
+pattern GL_NORMAL_ARRAY_LIST_IBM = 103071 :: GLenum
+
+pattern GL_NORMAL_ARRAY_LIST_STRIDE_IBM = 103081 :: GLenum
+
+pattern GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F6 :: GLenum
+
+pattern GL_NORMAL_ARRAY_POINTER = 0x808F :: GLenum
+
+pattern GL_NORMAL_ARRAY_POINTER_EXT = 0x808F :: GLenum
+
+pattern GL_NORMAL_ARRAY_STRIDE = 0x807F :: GLenum
+
+pattern GL_NORMAL_ARRAY_STRIDE_EXT = 0x807F :: GLenum
+
+pattern GL_NORMAL_ARRAY_TYPE = 0x807E :: GLenum
+
+pattern GL_NORMAL_ARRAY_TYPE_EXT = 0x807E :: GLenum
+
+pattern GL_NORMAL_BIT_PGI = 0x08000000 :: GLbitfield
+
+pattern GL_NORMAL_MAP = 0x8511 :: GLenum
+
+pattern GL_NORMAL_MAP_ARB = 0x8511 :: GLenum
+
+pattern GL_NORMAL_MAP_EXT = 0x8511 :: GLenum
+
+pattern GL_NORMAL_MAP_NV = 0x8511 :: GLenum
+
+pattern GL_NORMAL_MAP_OES = 0x8511 :: GLenum
+
+pattern GL_NOTEQUAL = 0x0205 :: GLenum
+
+pattern GL_NO_ERROR = 0 :: GLenum
+
+pattern GL_NO_RESET_NOTIFICATION = 0x8261 :: GLenum
+
+pattern GL_NO_RESET_NOTIFICATION_ARB = 0x8261 :: GLenum
+
+pattern GL_NO_RESET_NOTIFICATION_EXT = 0x8261 :: GLenum
+
+pattern GL_NO_RESET_NOTIFICATION_KHR = 0x8261 :: GLenum
+
+pattern GL_NUM_ACTIVE_VARIABLES = 0x9304 :: GLenum
+
+pattern GL_NUM_COMPATIBLE_SUBROUTINES = 0x8E4A :: GLenum
+
+pattern GL_NUM_COMPRESSED_TEXTURE_FORMATS = 0x86A2 :: GLenum
+
+pattern GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB = 0x86A2 :: GLenum
+
+pattern GL_NUM_DEVICE_UUIDS_EXT = 0x9596 :: GLenum
+
+pattern GL_NUM_DOWNSAMPLE_SCALES_IMG = 0x913D :: GLenum
+
+pattern GL_NUM_EXTENSIONS = 0x821D :: GLenum
+
+pattern GL_NUM_FILL_STREAMS_NV = 0x8E29 :: GLenum
+
+pattern GL_NUM_FRAGMENT_CONSTANTS_ATI = 0x896F :: GLenum
+
+pattern GL_NUM_FRAGMENT_REGISTERS_ATI = 0x896E :: GLenum
+
+pattern GL_NUM_GENERAL_COMBINERS_NV = 0x854E :: GLenum
+
+pattern GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI = 0x8973 :: GLenum
+
+pattern GL_NUM_INSTRUCTIONS_PER_PASS_ATI = 0x8971 :: GLenum
+
+pattern GL_NUM_INSTRUCTIONS_TOTAL_ATI = 0x8972 :: GLenum
+
+pattern GL_NUM_LOOPBACK_COMPONENTS_ATI = 0x8974 :: GLenum
+
+pattern GL_NUM_PASSES_ATI = 0x8970 :: GLenum
+
+pattern GL_NUM_PROGRAM_BINARY_FORMATS = 0x87FE :: GLenum
+
+pattern GL_NUM_PROGRAM_BINARY_FORMATS_OES = 0x87FE :: GLenum
+
+pattern GL_NUM_SAMPLE_COUNTS = 0x9380 :: GLenum
+
+pattern GL_NUM_SHADER_BINARY_FORMATS = 0x8DF9 :: GLenum
+
+pattern GL_NUM_SHADING_LANGUAGE_VERSIONS = 0x82E9 :: GLenum
+
+pattern GL_NUM_SPARSE_LEVELS_ARB = 0x91AA :: GLenum
+
+pattern GL_NUM_SPARSE_LEVELS_EXT = 0x91AA :: GLenum
+
+pattern GL_NUM_SPIR_V_EXTENSIONS = 0x9554 :: GLenum
+
+pattern GL_NUM_SUPPORTED_MULTISAMPLE_MODES_AMD = 0x91B6 :: GLenum
+
+pattern GL_NUM_TILING_TYPES_EXT = 0x9582 :: GLenum
+
+pattern GL_NUM_VIDEO_CAPTURE_STREAMS_NV = 0x9024 :: GLenum
+
+pattern GL_NUM_VIRTUAL_PAGE_SIZES_ARB = 0x91A8 :: GLenum
+
+pattern GL_NUM_VIRTUAL_PAGE_SIZES_EXT = 0x91A8 :: GLenum
+
+pattern GL_NUM_WINDOW_RECTANGLES_EXT = 0x8F15 :: GLenum
+
+pattern GL_OBJECT_ACTIVE_ATTRIBUTES_ARB = 0x8B89 :: GLenum
+
+pattern GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB = 0x8B8A :: GLenum
+
+pattern GL_OBJECT_ACTIVE_UNIFORMS_ARB = 0x8B86 :: GLenum
+
+pattern GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB = 0x8B87 :: GLenum
+
+pattern GL_OBJECT_ATTACHED_OBJECTS_ARB = 0x8B85 :: GLenum
+
+pattern GL_OBJECT_BUFFER_SIZE_ATI = 0x8764 :: GLenum
+
+pattern GL_OBJECT_BUFFER_USAGE_ATI = 0x8765 :: GLenum
+
+pattern GL_OBJECT_COMPILE_STATUS_ARB = 0x8B81 :: GLenum
+
+pattern GL_OBJECT_DELETE_STATUS_ARB = 0x8B80 :: GLenum
+
+pattern GL_OBJECT_DISTANCE_TO_LINE_SGIS = 0x81F3 :: GLenum
+
+pattern GL_OBJECT_DISTANCE_TO_POINT_SGIS = 0x81F1 :: GLenum
+
+pattern GL_OBJECT_INFO_LOG_LENGTH_ARB = 0x8B84 :: GLenum
+
+pattern GL_OBJECT_LINEAR = 0x2401 :: GLenum
+
+pattern GL_OBJECT_LINEAR_NV = 0x2401 :: GLenum
+
+pattern GL_OBJECT_LINE_SGIS = 0x81F7 :: GLenum
+
+pattern GL_OBJECT_LINK_STATUS_ARB = 0x8B82 :: GLenum
+
+pattern GL_OBJECT_PLANE = 0x2501 :: GLenum
+
+pattern GL_OBJECT_POINT_SGIS = 0x81F5 :: GLenum
+
+pattern GL_OBJECT_SHADER_SOURCE_LENGTH_ARB = 0x8B88 :: GLenum
+
+pattern GL_OBJECT_SUBTYPE_ARB = 0x8B4F :: GLenum
+
+pattern GL_OBJECT_TYPE = 0x9112 :: GLenum
+
+pattern GL_OBJECT_TYPE_APPLE = 0x9112 :: GLenum
+
+pattern GL_OBJECT_TYPE_ARB = 0x8B4E :: GLenum
+
+pattern GL_OBJECT_VALIDATE_STATUS_ARB = 0x8B83 :: GLenum
+
+pattern GL_OCCLUSION_QUERY_EVENT_MASK_AMD = 0x874F :: GLenum
+
+pattern GL_OCCLUSION_TEST_HP = 0x8165 :: GLenum
+
+pattern GL_OCCLUSION_TEST_RESULT_HP = 0x8166 :: GLenum
+
+pattern GL_OFFSET = 0x92FC :: GLenum
+
+pattern GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV = 0x8856 :: GLenum
+
+pattern GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV = 0x8857 :: GLenum
+
+pattern GL_OFFSET_HILO_TEXTURE_2D_NV = 0x8854 :: GLenum
+
+pattern GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV = 0x8855 :: GLenum
+
+pattern GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV = 0x8850 :: GLenum
+
+pattern GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV = 0x8851 :: GLenum
+
+pattern GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV = 0x8852 :: GLenum
+
+pattern GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV = 0x8853 :: GLenum
+
+pattern GL_OFFSET_TEXTURE_2D_BIAS_NV = 0x86E3 :: GLenum
+
+pattern GL_OFFSET_TEXTURE_2D_MATRIX_NV = 0x86E1 :: GLenum
+
+pattern GL_OFFSET_TEXTURE_2D_NV = 0x86E8 :: GLenum
+
+pattern GL_OFFSET_TEXTURE_2D_SCALE_NV = 0x86E2 :: GLenum
+
+pattern GL_OFFSET_TEXTURE_BIAS_NV = 0x86E3 :: GLenum
+
+pattern GL_OFFSET_TEXTURE_MATRIX_NV = 0x86E1 :: GLenum
+
+pattern GL_OFFSET_TEXTURE_RECTANGLE_NV = 0x864C :: GLenum
+
+pattern GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV = 0x864D :: GLenum
+
+pattern GL_OFFSET_TEXTURE_SCALE_NV = 0x86E2 :: GLenum
+
+pattern GL_ONE = 1 :: GLenum
+
+pattern GL_ONE_EXT = 0x87DE :: GLenum
+
+pattern GL_ONE_MINUS_CONSTANT_ALPHA = 0x8004 :: GLenum
+
+pattern GL_ONE_MINUS_CONSTANT_ALPHA_EXT = 0x8004 :: GLenum
+
+pattern GL_ONE_MINUS_CONSTANT_COLOR = 0x8002 :: GLenum
+
+pattern GL_ONE_MINUS_CONSTANT_COLOR_EXT = 0x8002 :: GLenum
+
+pattern GL_ONE_MINUS_DST_ALPHA = 0x0305 :: GLenum
+
+pattern GL_ONE_MINUS_DST_COLOR = 0x0307 :: GLenum
+
+pattern GL_ONE_MINUS_SRC1_ALPHA = 0x88FB :: GLenum
+
+pattern GL_ONE_MINUS_SRC1_ALPHA_EXT = 0x88FB :: GLenum
+
+pattern GL_ONE_MINUS_SRC1_COLOR = 0x88FA :: GLenum
+
+pattern GL_ONE_MINUS_SRC1_COLOR_EXT = 0x88FA :: GLenum
+
+pattern GL_ONE_MINUS_SRC_ALPHA = 0x0303 :: GLenum
+
+pattern GL_ONE_MINUS_SRC_COLOR = 0x0301 :: GLenum
+
+pattern GL_OPERAND0_ALPHA = 0x8598 :: GLenum
+
+pattern GL_OPERAND0_ALPHA_ARB = 0x8598 :: GLenum
+
+pattern GL_OPERAND0_ALPHA_EXT = 0x8598 :: GLenum
+
+pattern GL_OPERAND0_RGB = 0x8590 :: GLenum
+
+pattern GL_OPERAND0_RGB_ARB = 0x8590 :: GLenum
+
+pattern GL_OPERAND0_RGB_EXT = 0x8590 :: GLenum
+
+pattern GL_OPERAND1_ALPHA = 0x8599 :: GLenum
+
+pattern GL_OPERAND1_ALPHA_ARB = 0x8599 :: GLenum
+
+pattern GL_OPERAND1_ALPHA_EXT = 0x8599 :: GLenum
+
+pattern GL_OPERAND1_RGB = 0x8591 :: GLenum
+
+pattern GL_OPERAND1_RGB_ARB = 0x8591 :: GLenum
+
+pattern GL_OPERAND1_RGB_EXT = 0x8591 :: GLenum
+
+pattern GL_OPERAND2_ALPHA = 0x859A :: GLenum
+
+pattern GL_OPERAND2_ALPHA_ARB = 0x859A :: GLenum
+
+pattern GL_OPERAND2_ALPHA_EXT = 0x859A :: GLenum
+
+pattern GL_OPERAND2_RGB = 0x8592 :: GLenum
+
+pattern GL_OPERAND2_RGB_ARB = 0x8592 :: GLenum
+
+pattern GL_OPERAND2_RGB_EXT = 0x8592 :: GLenum
+
+pattern GL_OPERAND3_ALPHA_NV = 0x859B :: GLenum
+
+pattern GL_OPERAND3_RGB_NV = 0x8593 :: GLenum
+
+pattern GL_OPTIMAL_TILING_EXT = 0x9584 :: GLenum
+
+pattern GL_OP_ADD_EXT = 0x8787 :: GLenum
+
+pattern GL_OP_CLAMP_EXT = 0x878E :: GLenum
+
+pattern GL_OP_CROSS_PRODUCT_EXT = 0x8797 :: GLenum
+
+pattern GL_OP_DOT3_EXT = 0x8784 :: GLenum
+
+pattern GL_OP_DOT4_EXT = 0x8785 :: GLenum
+
+pattern GL_OP_EXP_BASE_2_EXT = 0x8791 :: GLenum
+
+pattern GL_OP_FLOOR_EXT = 0x878F :: GLenum
+
+pattern GL_OP_FRAC_EXT = 0x8789 :: GLenum
+
+pattern GL_OP_INDEX_EXT = 0x8782 :: GLenum
+
+pattern GL_OP_LOG_BASE_2_EXT = 0x8792 :: GLenum
+
+pattern GL_OP_MADD_EXT = 0x8788 :: GLenum
+
+pattern GL_OP_MAX_EXT = 0x878A :: GLenum
+
+pattern GL_OP_MIN_EXT = 0x878B :: GLenum
+
+pattern GL_OP_MOV_EXT = 0x8799 :: GLenum
+
+pattern GL_OP_MULTIPLY_MATRIX_EXT = 0x8798 :: GLenum
+
+pattern GL_OP_MUL_EXT = 0x8786 :: GLenum
+
+pattern GL_OP_NEGATE_EXT = 0x8783 :: GLenum
+
+pattern GL_OP_POWER_EXT = 0x8793 :: GLenum
+
+pattern GL_OP_RECIP_EXT = 0x8794 :: GLenum
+
+pattern GL_OP_RECIP_SQRT_EXT = 0x8795 :: GLenum
+
+pattern GL_OP_ROUND_EXT = 0x8790 :: GLenum
+
+pattern GL_OP_SET_GE_EXT = 0x878C :: GLenum
+
+pattern GL_OP_SET_LT_EXT = 0x878D :: GLenum
+
+pattern GL_OP_SUB_EXT = 0x8796 :: GLenum
+
+pattern GL_OR = 0x1507 :: GLenum
+
+pattern GL_ORDER = 0x0A01 :: GLenum
+
+pattern GL_OR_INVERTED = 0x150D :: GLenum
+
+pattern GL_OR_REVERSE = 0x150B :: GLenum
+
+pattern GL_OUTPUT_COLOR0_EXT = 0x879B :: GLenum
+
+pattern GL_OUTPUT_COLOR1_EXT = 0x879C :: GLenum
+
+pattern GL_OUTPUT_FOG_EXT = 0x87BD :: GLenum
+
+pattern GL_OUTPUT_TEXTURE_COORD0_EXT = 0x879D :: GLenum
+
+pattern GL_OUTPUT_TEXTURE_COORD10_EXT = 0x87A7 :: GLenum
+
+pattern GL_OUTPUT_TEXTURE_COORD11_EXT = 0x87A8 :: GLenum
+
+pattern GL_OUTPUT_TEXTURE_COORD12_EXT = 0x87A9 :: GLenum
+
+pattern GL_OUTPUT_TEXTURE_COORD13_EXT = 0x87AA :: GLenum
+
+pattern GL_OUTPUT_TEXTURE_COORD14_EXT = 0x87AB :: GLenum
+
+pattern GL_OUTPUT_TEXTURE_COORD15_EXT = 0x87AC :: GLenum
+
+pattern GL_OUTPUT_TEXTURE_COORD16_EXT = 0x87AD :: GLenum
+
+pattern GL_OUTPUT_TEXTURE_COORD17_EXT = 0x87AE :: GLenum
+
+pattern GL_OUTPUT_TEXTURE_COORD18_EXT = 0x87AF :: GLenum
+
+pattern GL_OUTPUT_TEXTURE_COORD19_EXT = 0x87B0 :: GLenum
+
+pattern GL_OUTPUT_TEXTURE_COORD1_EXT = 0x879E :: GLenum
+
+pattern GL_OUTPUT_TEXTURE_COORD20_EXT = 0x87B1 :: GLenum
+
+pattern GL_OUTPUT_TEXTURE_COORD21_EXT = 0x87B2 :: GLenum
+
+pattern GL_OUTPUT_TEXTURE_COORD22_EXT = 0x87B3 :: GLenum
+
+pattern GL_OUTPUT_TEXTURE_COORD23_EXT = 0x87B4 :: GLenum
+
+pattern GL_OUTPUT_TEXTURE_COORD24_EXT = 0x87B5 :: GLenum
+
+pattern GL_OUTPUT_TEXTURE_COORD25_EXT = 0x87B6 :: GLenum
+
+pattern GL_OUTPUT_TEXTURE_COORD26_EXT = 0x87B7 :: GLenum
+
+pattern GL_OUTPUT_TEXTURE_COORD27_EXT = 0x87B8 :: GLenum
+
+pattern GL_OUTPUT_TEXTURE_COORD28_EXT = 0x87B9 :: GLenum
+
+pattern GL_OUTPUT_TEXTURE_COORD29_EXT = 0x87BA :: GLenum
+
+pattern GL_OUTPUT_TEXTURE_COORD2_EXT = 0x879F :: GLenum
+
+pattern GL_OUTPUT_TEXTURE_COORD30_EXT = 0x87BB :: GLenum
+
+pattern GL_OUTPUT_TEXTURE_COORD31_EXT = 0x87BC :: GLenum
+
+pattern GL_OUTPUT_TEXTURE_COORD3_EXT = 0x87A0 :: GLenum
+
+pattern GL_OUTPUT_TEXTURE_COORD4_EXT = 0x87A1 :: GLenum
+
+pattern GL_OUTPUT_TEXTURE_COORD5_EXT = 0x87A2 :: GLenum
+
+pattern GL_OUTPUT_TEXTURE_COORD6_EXT = 0x87A3 :: GLenum
+
+pattern GL_OUTPUT_TEXTURE_COORD7_EXT = 0x87A4 :: GLenum
+
+pattern GL_OUTPUT_TEXTURE_COORD8_EXT = 0x87A5 :: GLenum
+
+pattern GL_OUTPUT_TEXTURE_COORD9_EXT = 0x87A6 :: GLenum
+
+pattern GL_OUTPUT_VERTEX_EXT = 0x879A :: GLenum
+
+pattern GL_OUT_OF_MEMORY = 0x0505 :: GLenum
+
+pattern GL_OVERLAY = 0x9296 :: GLenum
+
+pattern GL_OVERLAY_KHR = 0x9296 :: GLenum
+
+pattern GL_OVERLAY_NV = 0x9296 :: GLenum
+
+pattern GL_PACK_ALIGNMENT = 0x0D05 :: GLenum
+
+pattern GL_PACK_CMYK_HINT_EXT = 0x800E :: GLenum
+
+pattern GL_PACK_COMPRESSED_BLOCK_DEPTH = 0x912D :: GLenum
+
+pattern GL_PACK_COMPRESSED_BLOCK_HEIGHT = 0x912C :: GLenum
+
+pattern GL_PACK_COMPRESSED_BLOCK_SIZE = 0x912E :: GLenum
+
+pattern GL_PACK_COMPRESSED_BLOCK_WIDTH = 0x912B :: GLenum
+
+pattern GL_PACK_COMPRESSED_SIZE_SGIX = 0x831C :: GLenum
+
+pattern GL_PACK_IMAGE_DEPTH_SGIS = 0x8131 :: GLenum
+
+pattern GL_PACK_IMAGE_HEIGHT = 0x806C :: GLenum
+
+pattern GL_PACK_IMAGE_HEIGHT_EXT = 0x806C :: GLenum
+
+pattern GL_PACK_INVERT_MESA = 0x8758 :: GLenum
+
+pattern GL_PACK_LSB_FIRST = 0x0D01 :: GLenum
+
+pattern GL_PACK_MAX_COMPRESSED_SIZE_SGIX = 0x831B :: GLenum
+
+pattern GL_PACK_RESAMPLE_OML = 0x8984 :: GLenum
+
+pattern GL_PACK_RESAMPLE_SGIX = 0x842E :: GLenum
+
+pattern GL_PACK_REVERSE_ROW_ORDER_ANGLE = 0x93A4 :: GLenum
+
+pattern GL_PACK_ROW_BYTES_APPLE = 0x8A15 :: GLenum
+
+pattern GL_PACK_ROW_LENGTH = 0x0D02 :: GLenum
+
+pattern GL_PACK_SKIP_IMAGES = 0x806B :: GLenum
+
+pattern GL_PACK_SKIP_IMAGES_EXT = 0x806B :: GLenum
+
+pattern GL_PACK_SKIP_PIXELS = 0x0D04 :: GLenum
+
+pattern GL_PACK_SKIP_ROWS = 0x0D03 :: GLenum
+
+pattern GL_PACK_SKIP_VOLUMES_SGIS = 0x8130 :: GLenum
+
+pattern GL_PACK_SUBSAMPLE_RATE_SGIX = 0x85A0 :: GLenum
+
+pattern GL_PACK_SWAP_BYTES = 0x0D00 :: GLenum
+
+pattern GL_PALETTE4_R5_G6_B5_OES = 0x8B92 :: GLenum
+
+pattern GL_PALETTE4_RGB5_A1_OES = 0x8B94 :: GLenum
+
+pattern GL_PALETTE4_RGB8_OES = 0x8B90 :: GLenum
+
+pattern GL_PALETTE4_RGBA4_OES = 0x8B93 :: GLenum
+
+pattern GL_PALETTE4_RGBA8_OES = 0x8B91 :: GLenum
+
+pattern GL_PALETTE8_R5_G6_B5_OES = 0x8B97 :: GLenum
+
+pattern GL_PALETTE8_RGB5_A1_OES = 0x8B99 :: GLenum
+
+pattern GL_PALETTE8_RGB8_OES = 0x8B95 :: GLenum
+
+pattern GL_PALETTE8_RGBA4_OES = 0x8B98 :: GLenum
+
+pattern GL_PALETTE8_RGBA8_OES = 0x8B96 :: GLenum
+
+pattern GL_PARALLEL_ARRAYS_INTEL = 0x83F4 :: GLenum
+
+pattern GL_PARAMETER_BUFFER = 0x80EE :: GLenum
+
+pattern GL_PARAMETER_BUFFER_ARB = 0x80EE :: GLenum
+
+pattern GL_PARAMETER_BUFFER_BINDING = 0x80EF :: GLenum
+
+pattern GL_PARAMETER_BUFFER_BINDING_ARB = 0x80EF :: GLenum
+
+pattern GL_PARTIAL_SUCCESS_NV = 0x902E :: GLenum
+
+pattern GL_PASS_THROUGH_NV = 0x86E6 :: GLenum
+
+pattern GL_PASS_THROUGH_TOKEN = 0x0700 :: GLenum
+
+pattern GL_PATCHES = 0x000E :: GLenum
+
+pattern GL_PATCHES_EXT = 0x000E :: GLenum
+
+pattern GL_PATCHES_OES = 0x000E :: GLenum
+
+pattern GL_PATCH_DEFAULT_INNER_LEVEL = 0x8E73 :: GLenum
+
+pattern GL_PATCH_DEFAULT_INNER_LEVEL_EXT = 0x8E73 :: GLenum
+
+pattern GL_PATCH_DEFAULT_OUTER_LEVEL = 0x8E74 :: GLenum
+
+pattern GL_PATCH_DEFAULT_OUTER_LEVEL_EXT = 0x8E74 :: GLenum
+
+pattern GL_PATCH_VERTICES = 0x8E72 :: GLenum
+
+pattern GL_PATCH_VERTICES_EXT = 0x8E72 :: GLenum
+
+pattern GL_PATCH_VERTICES_OES = 0x8E72 :: GLenum
+
+pattern GL_PATH_CLIENT_LENGTH_NV = 0x907F :: GLenum
+
+pattern GL_PATH_COMMAND_COUNT_NV = 0x909D :: GLenum
+
+pattern GL_PATH_COMPUTED_LENGTH_NV = 0x90A0 :: GLenum
+
+pattern GL_PATH_COORD_COUNT_NV = 0x909E :: GLenum
+
+pattern GL_PATH_COVER_DEPTH_FUNC_NV = 0x90BF :: GLenum
+
+pattern GL_PATH_DASH_ARRAY_COUNT_NV = 0x909F :: GLenum
+
+pattern GL_PATH_DASH_CAPS_NV = 0x907B :: GLenum
+
+pattern GL_PATH_DASH_OFFSET_NV = 0x907E :: GLenum
+
+pattern GL_PATH_DASH_OFFSET_RESET_NV = 0x90B4 :: GLenum
+
+pattern GL_PATH_END_CAPS_NV = 0x9076 :: GLenum
+
+pattern GL_PATH_ERROR_POSITION_NV = 0x90AB :: GLenum
+
+pattern GL_PATH_FILL_BOUNDING_BOX_NV = 0x90A1 :: GLenum
+
+pattern GL_PATH_FILL_COVER_MODE_NV = 0x9082 :: GLenum
+
+pattern GL_PATH_FILL_MASK_NV = 0x9081 :: GLenum
+
+pattern GL_PATH_FILL_MODE_NV = 0x9080 :: GLenum
+
+pattern GL_PATH_FOG_GEN_MODE_NV = 0x90AC :: GLenum
+
+pattern GL_PATH_FORMAT_PS_NV = 0x9071 :: GLenum
+
+pattern GL_PATH_FORMAT_SVG_NV = 0x9070 :: GLenum
+
+pattern GL_PATH_GEN_COEFF_NV = 0x90B1 :: GLenum
+
+pattern GL_PATH_GEN_COLOR_FORMAT_NV = 0x90B2 :: GLenum
+
+pattern GL_PATH_GEN_COMPONENTS_NV = 0x90B3 :: GLenum
+
+pattern GL_PATH_GEN_MODE_NV = 0x90B0 :: GLenum
+
+pattern GL_PATH_INITIAL_DASH_CAP_NV = 0x907C :: GLenum
+
+pattern GL_PATH_INITIAL_END_CAP_NV = 0x9077 :: GLenum
+
+pattern GL_PATH_JOIN_STYLE_NV = 0x9079 :: GLenum
+
+pattern GL_PATH_MAX_MODELVIEW_STACK_DEPTH_NV = 0x0D36 :: GLenum
+
+pattern GL_PATH_MAX_PROJECTION_STACK_DEPTH_NV = 0x0D38 :: GLenum
+
+pattern GL_PATH_MITER_LIMIT_NV = 0x907A :: GLenum
+
+pattern GL_PATH_MODELVIEW_MATRIX_NV = 0x0BA6 :: GLenum
+
+pattern GL_PATH_MODELVIEW_NV = 0x1700 :: GLenum
+
+pattern GL_PATH_MODELVIEW_STACK_DEPTH_NV = 0x0BA3 :: GLenum
+
+pattern GL_PATH_OBJECT_BOUNDING_BOX_NV = 0x908A :: GLenum
+
+pattern GL_PATH_PROJECTION_MATRIX_NV = 0x0BA7 :: GLenum
+
+pattern GL_PATH_PROJECTION_NV = 0x1701 :: GLenum
+
+pattern GL_PATH_PROJECTION_STACK_DEPTH_NV = 0x0BA4 :: GLenum
+
+pattern GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV = 0x90BD :: GLenum
+
+pattern GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV = 0x90BE :: GLenum
+
+pattern GL_PATH_STENCIL_FUNC_NV = 0x90B7 :: GLenum
+
+pattern GL_PATH_STENCIL_REF_NV = 0x90B8 :: GLenum
+
+pattern GL_PATH_STENCIL_VALUE_MASK_NV = 0x90B9 :: GLenum
+
+pattern GL_PATH_STROKE_BOUNDING_BOX_NV = 0x90A2 :: GLenum
+
+pattern GL_PATH_STROKE_COVER_MODE_NV = 0x9083 :: GLenum
+
+pattern GL_PATH_STROKE_MASK_NV = 0x9084 :: GLenum
+
+pattern GL_PATH_STROKE_WIDTH_NV = 0x9075 :: GLenum
+
+pattern GL_PATH_TERMINAL_DASH_CAP_NV = 0x907D :: GLenum
+
+pattern GL_PATH_TERMINAL_END_CAP_NV = 0x9078 :: GLenum
+
+pattern GL_PATH_TRANSPOSE_MODELVIEW_MATRIX_NV = 0x84E3 :: GLenum
+
+pattern GL_PATH_TRANSPOSE_PROJECTION_MATRIX_NV = 0x84E4 :: GLenum
+
+pattern GL_PERCENTAGE_AMD = 0x8BC3 :: GLenum
+
+pattern GL_PERFMON_GLOBAL_MODE_QCOM = 0x8FA0 :: GLenum
+
+pattern GL_PERFMON_RESULT_AMD = 0x8BC6 :: GLenum
+
+pattern GL_PERFMON_RESULT_AVAILABLE_AMD = 0x8BC4 :: GLenum
+
+pattern GL_PERFMON_RESULT_SIZE_AMD = 0x8BC5 :: GLenum
+
+pattern GL_PERFORMANCE_MONITOR_AMD = 0x9152 :: GLenum
+
+pattern GL_PERFQUERY_COUNTER_DATA_BOOL32_INTEL = 0x94FC :: GLenum
+
+pattern GL_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL = 0x94FB :: GLenum
+
+pattern GL_PERFQUERY_COUNTER_DATA_FLOAT_INTEL = 0x94FA :: GLenum
+
+pattern GL_PERFQUERY_COUNTER_DATA_UINT32_INTEL = 0x94F8 :: GLenum
+
+pattern GL_PERFQUERY_COUNTER_DATA_UINT64_INTEL = 0x94F9 :: GLenum
+
+pattern GL_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL = 0x94FF :: GLenum
+
+pattern GL_PERFQUERY_COUNTER_DURATION_NORM_INTEL = 0x94F1 :: GLenum
+
+pattern GL_PERFQUERY_COUNTER_DURATION_RAW_INTEL = 0x94F2 :: GLenum
+
+pattern GL_PERFQUERY_COUNTER_EVENT_INTEL = 0x94F0 :: GLenum
+
+pattern GL_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL = 0x94FE :: GLenum
+
+pattern GL_PERFQUERY_COUNTER_RAW_INTEL = 0x94F4 :: GLenum
+
+pattern GL_PERFQUERY_COUNTER_THROUGHPUT_INTEL = 0x94F3 :: GLenum
+
+pattern GL_PERFQUERY_COUNTER_TIMESTAMP_INTEL = 0x94F5 :: GLenum
+
+pattern GL_PERFQUERY_DONOT_FLUSH_INTEL = 0x83F9 :: GLenum
+
+pattern GL_PERFQUERY_FLUSH_INTEL = 0x83FA :: GLenum
+
+pattern GL_PERFQUERY_GLOBAL_CONTEXT_INTEL = 0x00000001 :: GLbitfield
+
+pattern GL_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL = 0x9500 :: GLenum
+
+pattern GL_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL = 0x94FD :: GLenum
+
+pattern GL_PERFQUERY_SINGLE_CONTEXT_INTEL = 0x00000000 :: GLbitfield
+
+pattern GL_PERFQUERY_WAIT_INTEL = 0x83FB :: GLenum
+
+pattern GL_PERSPECTIVE_CORRECTION_HINT = 0x0C50 :: GLenum
+
+pattern GL_PERTURB_EXT = 0x85AE :: GLenum
+
+pattern GL_PER_GPU_STORAGE_BIT_NV = 0x0800 :: GLbitfield
+
+pattern GL_PER_GPU_STORAGE_NV = 0x9548 :: GLenum
+
+pattern GL_PER_STAGE_CONSTANTS_NV = 0x8535 :: GLenum
+
+pattern GL_PHONG_HINT_WIN = 0x80EB :: GLenum
+
+pattern GL_PHONG_WIN = 0x80EA :: GLenum
+
+pattern GL_PINLIGHT_NV = 0x92A8 :: GLenum
+
+pattern GL_PIXELS_PER_SAMPLE_PATTERN_X_AMD = 0x91AE :: GLenum
+
+pattern GL_PIXELS_PER_SAMPLE_PATTERN_Y_AMD = 0x91AF :: GLenum
+
+pattern GL_PIXEL_BUFFER_BARRIER_BIT = 0x00000080 :: GLbitfield
+
+pattern GL_PIXEL_BUFFER_BARRIER_BIT_EXT = 0x00000080 :: GLbitfield
+
+pattern GL_PIXEL_COUNTER_BITS_NV = 0x8864 :: GLenum
+
+pattern GL_PIXEL_COUNT_AVAILABLE_NV = 0x8867 :: GLenum
+
+pattern GL_PIXEL_COUNT_NV = 0x8866 :: GLenum
+
+pattern GL_PIXEL_CUBIC_WEIGHT_EXT = 0x8333 :: GLenum
+
+pattern GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS = 0x8355 :: GLenum
+
+pattern GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS = 0x8354 :: GLenum
+
+pattern GL_PIXEL_GROUP_COLOR_SGIS = 0x8356 :: GLenum
+
+pattern GL_PIXEL_MAG_FILTER_EXT = 0x8331 :: GLenum
+
+pattern GL_PIXEL_MAP_A_TO_A = 0x0C79 :: GLenum
+
+pattern GL_PIXEL_MAP_A_TO_A_SIZE = 0x0CB9 :: GLenum
+
+pattern GL_PIXEL_MAP_B_TO_B = 0x0C78 :: GLenum
+
+pattern GL_PIXEL_MAP_B_TO_B_SIZE = 0x0CB8 :: GLenum
+
+pattern GL_PIXEL_MAP_G_TO_G = 0x0C77 :: GLenum
+
+pattern GL_PIXEL_MAP_G_TO_G_SIZE = 0x0CB7 :: GLenum
+
+pattern GL_PIXEL_MAP_I_TO_A = 0x0C75 :: GLenum
+
+pattern GL_PIXEL_MAP_I_TO_A_SIZE = 0x0CB5 :: GLenum
+
+pattern GL_PIXEL_MAP_I_TO_B = 0x0C74 :: GLenum
+
+pattern GL_PIXEL_MAP_I_TO_B_SIZE = 0x0CB4 :: GLenum
+
+pattern GL_PIXEL_MAP_I_TO_G = 0x0C73 :: GLenum
+
+pattern GL_PIXEL_MAP_I_TO_G_SIZE = 0x0CB3 :: GLenum
+
+pattern GL_PIXEL_MAP_I_TO_I = 0x0C70 :: GLenum
+
+pattern GL_PIXEL_MAP_I_TO_I_SIZE = 0x0CB0 :: GLenum
+
+pattern GL_PIXEL_MAP_I_TO_R = 0x0C72 :: GLenum
+
+pattern GL_PIXEL_MAP_I_TO_R_SIZE = 0x0CB2 :: GLenum
+
+pattern GL_PIXEL_MAP_R_TO_R = 0x0C76 :: GLenum
+
+pattern GL_PIXEL_MAP_R_TO_R_SIZE = 0x0CB6 :: GLenum
+
+pattern GL_PIXEL_MAP_S_TO_S = 0x0C71 :: GLenum
+
+pattern GL_PIXEL_MAP_S_TO_S_SIZE = 0x0CB1 :: GLenum
+
+pattern GL_PIXEL_MIN_FILTER_EXT = 0x8332 :: GLenum
+
+pattern GL_PIXEL_MODE_BIT = 0x00000020 :: GLbitfield
+
+pattern GL_PIXEL_PACK_BUFFER = 0x88EB :: GLenum
+
+pattern GL_PIXEL_PACK_BUFFER_ARB = 0x88EB :: GLenum
+
+pattern GL_PIXEL_PACK_BUFFER_BINDING = 0x88ED :: GLenum
+
+pattern GL_PIXEL_PACK_BUFFER_BINDING_ARB = 0x88ED :: GLenum
+
+pattern GL_PIXEL_PACK_BUFFER_BINDING_EXT = 0x88ED :: GLenum
+
+pattern GL_PIXEL_PACK_BUFFER_BINDING_NV = 0x88ED :: GLenum
+
+pattern GL_PIXEL_PACK_BUFFER_EXT = 0x88EB :: GLenum
+
+pattern GL_PIXEL_PACK_BUFFER_NV = 0x88EB :: GLenum
+
+pattern GL_PIXEL_SUBSAMPLE_2424_SGIX = 0x85A3 :: GLenum
+
+pattern GL_PIXEL_SUBSAMPLE_4242_SGIX = 0x85A4 :: GLenum
+
+pattern GL_PIXEL_SUBSAMPLE_4444_SGIX = 0x85A2 :: GLenum
+
+pattern GL_PIXEL_TEXTURE_SGIS = 0x8353 :: GLenum
+
+pattern GL_PIXEL_TEX_GEN_ALPHA_LS_SGIX = 0x8189 :: GLenum
+
+pattern GL_PIXEL_TEX_GEN_ALPHA_MS_SGIX = 0x818A :: GLenum
+
+pattern GL_PIXEL_TEX_GEN_ALPHA_NO_REPLACE_SGIX = 0x8188 :: GLenum
+
+pattern GL_PIXEL_TEX_GEN_ALPHA_REPLACE_SGIX = 0x8187 :: GLenum
+
+pattern GL_PIXEL_TEX_GEN_MODE_SGIX = 0x832B :: GLenum
+
+pattern GL_PIXEL_TEX_GEN_Q_CEILING_SGIX = 0x8184 :: GLenum
+
+pattern GL_PIXEL_TEX_GEN_Q_FLOOR_SGIX = 0x8186 :: GLenum
+
+pattern GL_PIXEL_TEX_GEN_Q_ROUND_SGIX = 0x8185 :: GLenum
+
+pattern GL_PIXEL_TEX_GEN_SGIX = 0x8139 :: GLenum
+
+pattern GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX = 0x813E :: GLenum
+
+pattern GL_PIXEL_TILE_CACHE_INCREMENT_SGIX = 0x813F :: GLenum
+
+pattern GL_PIXEL_TILE_CACHE_SIZE_SGIX = 0x8145 :: GLenum
+
+pattern GL_PIXEL_TILE_GRID_DEPTH_SGIX = 0x8144 :: GLenum
+
+pattern GL_PIXEL_TILE_GRID_HEIGHT_SGIX = 0x8143 :: GLenum
+
+pattern GL_PIXEL_TILE_GRID_WIDTH_SGIX = 0x8142 :: GLenum
+
+pattern GL_PIXEL_TILE_HEIGHT_SGIX = 0x8141 :: GLenum
+
+pattern GL_PIXEL_TILE_WIDTH_SGIX = 0x8140 :: GLenum
+
+pattern GL_PIXEL_TRANSFORM_2D_EXT = 0x8330 :: GLenum
+
+pattern GL_PIXEL_TRANSFORM_2D_MATRIX_EXT = 0x8338 :: GLenum
+
+pattern GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT = 0x8336 :: GLenum
+
+pattern GL_PIXEL_UNPACK_BUFFER = 0x88EC :: GLenum
+
+pattern GL_PIXEL_UNPACK_BUFFER_ARB = 0x88EC :: GLenum
+
+pattern GL_PIXEL_UNPACK_BUFFER_BINDING = 0x88EF :: GLenum
+
+pattern GL_PIXEL_UNPACK_BUFFER_BINDING_ARB = 0x88EF :: GLenum
+
+pattern GL_PIXEL_UNPACK_BUFFER_BINDING_EXT = 0x88EF :: GLenum
+
+pattern GL_PIXEL_UNPACK_BUFFER_BINDING_NV = 0x88EF :: GLenum
+
+pattern GL_PIXEL_UNPACK_BUFFER_EXT = 0x88EC :: GLenum
+
+pattern GL_PIXEL_UNPACK_BUFFER_NV = 0x88EC :: GLenum
+
+pattern GL_PLUS_CLAMPED_ALPHA_NV = 0x92B2 :: GLenum
+
+pattern GL_PLUS_CLAMPED_NV = 0x92B1 :: GLenum
+
+pattern GL_PLUS_DARKER_NV = 0x9292 :: GLenum
+
+pattern GL_PLUS_NV = 0x9291 :: GLenum
+
+pattern GL_PN_TRIANGLES_ATI = 0x87F0 :: GLenum
+
+pattern GL_PN_TRIANGLES_NORMAL_MODE_ATI = 0x87F3 :: GLenum
+
+pattern GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI = 0x87F7 :: GLenum
+
+pattern GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI = 0x87F8 :: GLenum
+
+pattern GL_PN_TRIANGLES_POINT_MODE_ATI = 0x87F2 :: GLenum
+
+pattern GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI = 0x87F6 :: GLenum
+
+pattern GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI = 0x87F5 :: GLenum
+
+pattern GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI = 0x87F4 :: GLenum
+
+pattern GL_POINT = 0x1B00 :: GLenum
+
+pattern GL_POINTS = 0x0000 :: GLenum
+
+pattern GL_POINT_BIT = 0x00000002 :: GLbitfield
+
+pattern GL_POINT_DISTANCE_ATTENUATION = 0x8129 :: GLenum
+
+pattern GL_POINT_DISTANCE_ATTENUATION_ARB = 0x8129 :: GLenum
+
+pattern GL_POINT_FADE_THRESHOLD_SIZE = 0x8128 :: GLenum
+
+pattern GL_POINT_FADE_THRESHOLD_SIZE_ARB = 0x8128 :: GLenum
+
+pattern GL_POINT_FADE_THRESHOLD_SIZE_EXT = 0x8128 :: GLenum
+
+pattern GL_POINT_FADE_THRESHOLD_SIZE_SGIS = 0x8128 :: GLenum
+
+pattern GL_POINT_NV = 0x1B00 :: GLenum
+
+pattern GL_POINT_SIZE = 0x0B11 :: GLenum
+
+pattern GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES = 0x8B9F :: GLenum
+
+pattern GL_POINT_SIZE_ARRAY_OES = 0x8B9C :: GLenum
+
+pattern GL_POINT_SIZE_ARRAY_POINTER_OES = 0x898C :: GLenum
+
+pattern GL_POINT_SIZE_ARRAY_STRIDE_OES = 0x898B :: GLenum
+
+pattern GL_POINT_SIZE_ARRAY_TYPE_OES = 0x898A :: GLenum
+
+pattern GL_POINT_SIZE_GRANULARITY = 0x0B13 :: GLenum
+
+pattern GL_POINT_SIZE_MAX = 0x8127 :: GLenum
+
+pattern GL_POINT_SIZE_MAX_ARB = 0x8127 :: GLenum
+
+pattern GL_POINT_SIZE_MAX_EXT = 0x8127 :: GLenum
+
+pattern GL_POINT_SIZE_MAX_SGIS = 0x8127 :: GLenum
+
+pattern GL_POINT_SIZE_MIN = 0x8126 :: GLenum
+
+pattern GL_POINT_SIZE_MIN_ARB = 0x8126 :: GLenum
+
+pattern GL_POINT_SIZE_MIN_EXT = 0x8126 :: GLenum
+
+pattern GL_POINT_SIZE_MIN_SGIS = 0x8126 :: GLenum
+
+pattern GL_POINT_SIZE_RANGE = 0x0B12 :: GLenum
+
+pattern GL_POINT_SMOOTH = 0x0B10 :: GLenum
+
+pattern GL_POINT_SMOOTH_HINT = 0x0C51 :: GLenum
+
+pattern GL_POINT_SPRITE = 0x8861 :: GLenum
+
+pattern GL_POINT_SPRITE_ARB = 0x8861 :: GLenum
+
+pattern GL_POINT_SPRITE_COORD_ORIGIN = 0x8CA0 :: GLenum
+
+pattern GL_POINT_SPRITE_NV = 0x8861 :: GLenum
+
+pattern GL_POINT_SPRITE_OES = 0x8861 :: GLenum
+
+pattern GL_POINT_SPRITE_R_MODE_NV = 0x8863 :: GLenum
+
+pattern GL_POINT_TOKEN = 0x0701 :: GLenum
+
+pattern GL_POLYGON = 0x0009 :: GLenum
+
+pattern GL_POLYGON_BIT = 0x00000008 :: GLbitfield
+
+pattern GL_POLYGON_MODE = 0x0B40 :: GLenum
+
+pattern GL_POLYGON_MODE_NV = 0x0B40 :: GLenum
+
+pattern GL_POLYGON_OFFSET_BIAS_EXT = 0x8039 :: GLenum
+
+pattern GL_POLYGON_OFFSET_CLAMP = 0x8E1B :: GLenum
+
+pattern GL_POLYGON_OFFSET_CLAMP_EXT = 0x8E1B :: GLenum
+
+pattern GL_POLYGON_OFFSET_COMMAND_NV = 0x000E :: GLenum
+
+pattern GL_POLYGON_OFFSET_EXT = 0x8037 :: GLenum
+
+pattern GL_POLYGON_OFFSET_FACTOR = 0x8038 :: GLenum
+
+pattern GL_POLYGON_OFFSET_FACTOR_EXT = 0x8038 :: GLenum
+
+pattern GL_POLYGON_OFFSET_FILL = 0x8037 :: GLenum
+
+pattern GL_POLYGON_OFFSET_LINE = 0x2A02 :: GLenum
+
+pattern GL_POLYGON_OFFSET_LINE_NV = 0x2A02 :: GLenum
+
+pattern GL_POLYGON_OFFSET_POINT = 0x2A01 :: GLenum
+
+pattern GL_POLYGON_OFFSET_POINT_NV = 0x2A01 :: GLenum
+
+pattern GL_POLYGON_OFFSET_UNITS = 0x2A00 :: GLenum
+
+pattern GL_POLYGON_SMOOTH = 0x0B41 :: GLenum
+
+pattern GL_POLYGON_SMOOTH_HINT = 0x0C53 :: GLenum
+
+pattern GL_POLYGON_STIPPLE = 0x0B42 :: GLenum
+
+pattern GL_POLYGON_STIPPLE_BIT = 0x00000010 :: GLbitfield
+
+pattern GL_POLYGON_TOKEN = 0x0703 :: GLenum
+
+pattern GL_POSITION = 0x1203 :: GLenum
+
+pattern GL_POST_COLOR_MATRIX_ALPHA_BIAS = 0x80BB :: GLenum
+
+pattern GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI = 0x80BB :: GLenum
+
+pattern GL_POST_COLOR_MATRIX_ALPHA_SCALE = 0x80B7 :: GLenum
+
+pattern GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI = 0x80B7 :: GLenum
+
+pattern GL_POST_COLOR_MATRIX_BLUE_BIAS = 0x80BA :: GLenum
+
+pattern GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI = 0x80BA :: GLenum
+
+pattern GL_POST_COLOR_MATRIX_BLUE_SCALE = 0x80B6 :: GLenum
+
+pattern GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI = 0x80B6 :: GLenum
+
+pattern GL_POST_COLOR_MATRIX_COLOR_TABLE = 0x80D2 :: GLenum
+
+pattern GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI = 0x80D2 :: GLenum
+
+pattern GL_POST_COLOR_MATRIX_GREEN_BIAS = 0x80B9 :: GLenum
+
+pattern GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI = 0x80B9 :: GLenum
+
+pattern GL_POST_COLOR_MATRIX_GREEN_SCALE = 0x80B5 :: GLenum
+
+pattern GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI = 0x80B5 :: GLenum
+
+pattern GL_POST_COLOR_MATRIX_RED_BIAS = 0x80B8 :: GLenum
+
+pattern GL_POST_COLOR_MATRIX_RED_BIAS_SGI = 0x80B8 :: GLenum
+
+pattern GL_POST_COLOR_MATRIX_RED_SCALE = 0x80B4 :: GLenum
+
+pattern GL_POST_COLOR_MATRIX_RED_SCALE_SGI = 0x80B4 :: GLenum
+
+pattern GL_POST_CONVOLUTION_ALPHA_BIAS = 0x8023 :: GLenum
+
+pattern GL_POST_CONVOLUTION_ALPHA_BIAS_EXT = 0x8023 :: GLenum
+
+pattern GL_POST_CONVOLUTION_ALPHA_SCALE = 0x801F :: GLenum
+
+pattern GL_POST_CONVOLUTION_ALPHA_SCALE_EXT = 0x801F :: GLenum
+
+pattern GL_POST_CONVOLUTION_BLUE_BIAS = 0x8022 :: GLenum
+
+pattern GL_POST_CONVOLUTION_BLUE_BIAS_EXT = 0x8022 :: GLenum
+
+pattern GL_POST_CONVOLUTION_BLUE_SCALE = 0x801E :: GLenum
+
+pattern GL_POST_CONVOLUTION_BLUE_SCALE_EXT = 0x801E :: GLenum
+
+pattern GL_POST_CONVOLUTION_COLOR_TABLE = 0x80D1 :: GLenum
+
+pattern GL_POST_CONVOLUTION_COLOR_TABLE_SGI = 0x80D1 :: GLenum
+
+pattern GL_POST_CONVOLUTION_GREEN_BIAS = 0x8021 :: GLenum
+
+pattern GL_POST_CONVOLUTION_GREEN_BIAS_EXT = 0x8021 :: GLenum
+
+pattern GL_POST_CONVOLUTION_GREEN_SCALE = 0x801D :: GLenum
+
+pattern GL_POST_CONVOLUTION_GREEN_SCALE_EXT = 0x801D :: GLenum
+
+pattern GL_POST_CONVOLUTION_RED_BIAS = 0x8020 :: GLenum
+
+pattern GL_POST_CONVOLUTION_RED_BIAS_EXT = 0x8020 :: GLenum
+
+pattern GL_POST_CONVOLUTION_RED_SCALE = 0x801C :: GLenum
+
+pattern GL_POST_CONVOLUTION_RED_SCALE_EXT = 0x801C :: GLenum
+
+pattern GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP = 0x8162 :: GLenum
+
+pattern GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX = 0x817B :: GLenum
+
+pattern GL_POST_TEXTURE_FILTER_BIAS_SGIX = 0x8179 :: GLenum
+
+pattern GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX = 0x817C :: GLenum
+
+pattern GL_POST_TEXTURE_FILTER_SCALE_SGIX = 0x817A :: GLenum
+
+pattern GL_PREFER_DOUBLEBUFFER_HINT_PGI = 0x1A1F8 :: GLenum
+
+pattern GL_PRESENT_DURATION_NV = 0x8E2B :: GLenum
+
+pattern GL_PRESENT_TIME_NV = 0x8E2A :: GLenum
+
+pattern GL_PRESERVE_ATI = 0x8762 :: GLenum
+
+pattern GL_PREVIOUS = 0x8578 :: GLenum
+
+pattern GL_PREVIOUS_ARB = 0x8578 :: GLenum
+
+pattern GL_PREVIOUS_EXT = 0x8578 :: GLenum
+
+pattern GL_PREVIOUS_TEXTURE_INPUT_NV = 0x86E4 :: GLenum
+
+pattern GL_PRIMARY_COLOR = 0x8577 :: GLenum
+
+pattern GL_PRIMARY_COLOR_ARB = 0x8577 :: GLenum
+
+pattern GL_PRIMARY_COLOR_EXT = 0x8577 :: GLenum
+
+pattern GL_PRIMARY_COLOR_NV = 0x852C :: GLenum
+
+pattern GL_PRIMITIVES_GENERATED = 0x8C87 :: GLenum
+
+pattern GL_PRIMITIVES_GENERATED_EXT = 0x8C87 :: GLenum
+
+pattern GL_PRIMITIVES_GENERATED_NV = 0x8C87 :: GLenum
+
+pattern GL_PRIMITIVES_GENERATED_OES = 0x8C87 :: GLenum
+
+pattern GL_PRIMITIVES_SUBMITTED = 0x82EF :: GLenum
+
+pattern GL_PRIMITIVES_SUBMITTED_ARB = 0x82EF :: GLenum
+
+pattern GL_PRIMITIVE_BOUNDING_BOX = 0x92BE :: GLenum
+
+pattern GL_PRIMITIVE_BOUNDING_BOX_ARB = 0x92BE :: GLenum
+
+pattern GL_PRIMITIVE_BOUNDING_BOX_EXT = 0x92BE :: GLenum
+
+pattern GL_PRIMITIVE_BOUNDING_BOX_OES = 0x92BE :: GLenum
+
+pattern GL_PRIMITIVE_ID_NV = 0x8C7C :: GLenum
+
+pattern GL_PRIMITIVE_RESTART = 0x8F9D :: GLenum
+
+pattern GL_PRIMITIVE_RESTART_FIXED_INDEX = 0x8D69 :: GLenum
+
+pattern GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED = 0x8221 :: GLenum
+
+pattern GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED_OES = 0x8221 :: GLenum
+
+pattern GL_PRIMITIVE_RESTART_INDEX = 0x8F9E :: GLenum
+
+pattern GL_PRIMITIVE_RESTART_INDEX_NV = 0x8559 :: GLenum
+
+pattern GL_PRIMITIVE_RESTART_NV = 0x8558 :: GLenum
+
+pattern GL_PROGRAM = 0x82E2 :: GLenum
+
+pattern GL_PROGRAMMABLE_SAMPLE_LOCATION_ARB = 0x9341 :: GLenum
+
+pattern GL_PROGRAMMABLE_SAMPLE_LOCATION_NV = 0x9341 :: GLenum
+
+pattern GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_ARB = 0x9340 :: GLenum
+
+pattern GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_NV = 0x9340 :: GLenum
+
+pattern GL_PROGRAM_ADDRESS_REGISTERS_ARB = 0x88B0 :: GLenum
+
+pattern GL_PROGRAM_ALU_INSTRUCTIONS_ARB = 0x8805 :: GLenum
+
+pattern GL_PROGRAM_ATTRIBS_ARB = 0x88AC :: GLenum
+
+pattern GL_PROGRAM_ATTRIB_COMPONENTS_NV = 0x8906 :: GLenum
+
+pattern GL_PROGRAM_BINARY_ANGLE = 0x93A6 :: GLenum
+
+pattern GL_PROGRAM_BINARY_FORMATS = 0x87FF :: GLenum
+
+pattern GL_PROGRAM_BINARY_FORMATS_OES = 0x87FF :: GLenum
+
+pattern GL_PROGRAM_BINARY_FORMAT_MESA = 0x875F :: GLenum
+
+pattern GL_PROGRAM_BINARY_LENGTH = 0x8741 :: GLenum
+
+pattern GL_PROGRAM_BINARY_LENGTH_OES = 0x8741 :: GLenum
+
+pattern GL_PROGRAM_BINARY_RETRIEVABLE_HINT = 0x8257 :: GLenum
+
+pattern GL_PROGRAM_BINDING_ARB = 0x8677 :: GLenum
+
+pattern GL_PROGRAM_ERROR_POSITION_ARB = 0x864B :: GLenum
+
+pattern GL_PROGRAM_ERROR_POSITION_NV = 0x864B :: GLenum
+
+pattern GL_PROGRAM_ERROR_STRING_ARB = 0x8874 :: GLenum
+
+pattern GL_PROGRAM_ERROR_STRING_NV = 0x8874 :: GLenum
+
+pattern GL_PROGRAM_FORMAT_ARB = 0x8876 :: GLenum
+
+pattern GL_PROGRAM_FORMAT_ASCII_ARB = 0x8875 :: GLenum
+
+pattern GL_PROGRAM_INPUT = 0x92E3 :: GLenum
+
+pattern GL_PROGRAM_INSTRUCTIONS_ARB = 0x88A0 :: GLenum
+
+pattern GL_PROGRAM_KHR = 0x82E2 :: GLenum
+
+pattern GL_PROGRAM_LENGTH_ARB = 0x8627 :: GLenum
+
+pattern GL_PROGRAM_LENGTH_NV = 0x8627 :: GLenum
+
+pattern GL_PROGRAM_MATRIX_EXT = 0x8E2D :: GLenum
+
+pattern GL_PROGRAM_MATRIX_STACK_DEPTH_EXT = 0x8E2F :: GLenum
+
+pattern GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = 0x88B2 :: GLenum
+
+pattern GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB = 0x8808 :: GLenum
+
+pattern GL_PROGRAM_NATIVE_ATTRIBS_ARB = 0x88AE :: GLenum
+
+pattern GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB = 0x88A2 :: GLenum
+
+pattern GL_PROGRAM_NATIVE_PARAMETERS_ARB = 0x88AA :: GLenum
+
+pattern GL_PROGRAM_NATIVE_TEMPORARIES_ARB = 0x88A6 :: GLenum
+
+pattern GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB = 0x880A :: GLenum
+
+pattern GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB = 0x8809 :: GLenum
+
+pattern GL_PROGRAM_OBJECT_ARB = 0x8B40 :: GLenum
+
+pattern GL_PROGRAM_OBJECT_EXT = 0x8B40 :: GLenum
+
+pattern GL_PROGRAM_OUTPUT = 0x92E4 :: GLenum
+
+pattern GL_PROGRAM_PARAMETERS_ARB = 0x88A8 :: GLenum
+
+pattern GL_PROGRAM_PARAMETER_NV = 0x8644 :: GLenum
+
+pattern GL_PROGRAM_PIPELINE = 0x82E4 :: GLenum
+
+pattern GL_PROGRAM_PIPELINE_BINDING = 0x825A :: GLenum
+
+pattern GL_PROGRAM_PIPELINE_BINDING_EXT = 0x825A :: GLenum
+
+pattern GL_PROGRAM_PIPELINE_KHR = 0x82E4 :: GLenum
+
+pattern GL_PROGRAM_PIPELINE_OBJECT_EXT = 0x8A4F :: GLenum
+
+pattern GL_PROGRAM_POINT_SIZE = 0x8642 :: GLenum
+
+pattern GL_PROGRAM_POINT_SIZE_ARB = 0x8642 :: GLenum
+
+pattern GL_PROGRAM_POINT_SIZE_EXT = 0x8642 :: GLenum
+
+pattern GL_PROGRAM_RESIDENT_NV = 0x8647 :: GLenum
+
+pattern GL_PROGRAM_RESULT_COMPONENTS_NV = 0x8907 :: GLenum
+
+pattern GL_PROGRAM_SEPARABLE = 0x8258 :: GLenum
+
+pattern GL_PROGRAM_SEPARABLE_EXT = 0x8258 :: GLenum
+
+pattern GL_PROGRAM_STRING_ARB = 0x8628 :: GLenum
+
+pattern GL_PROGRAM_STRING_NV = 0x8628 :: GLenum
+
+pattern GL_PROGRAM_TARGET_NV = 0x8646 :: GLenum
+
+pattern GL_PROGRAM_TEMPORARIES_ARB = 0x88A4 :: GLenum
+
+pattern GL_PROGRAM_TEX_INDIRECTIONS_ARB = 0x8807 :: GLenum
+
+pattern GL_PROGRAM_TEX_INSTRUCTIONS_ARB = 0x8806 :: GLenum
+
+pattern GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB = 0x88B6 :: GLenum
+
+pattern GL_PROJECTION = 0x1701 :: GLenum
+
+pattern GL_PROJECTION_MATRIX = 0x0BA7 :: GLenum
+
+pattern GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES = 0x898E :: GLenum
+
+pattern GL_PROJECTION_STACK_DEPTH = 0x0BA4 :: GLenum
+
+pattern GL_PROTECTED_MEMORY_OBJECT_EXT = 0x959B :: GLenum
+
+pattern GL_PROVOKING_VERTEX = 0x8E4F :: GLenum
+
+pattern GL_PROVOKING_VERTEX_EXT = 0x8E4F :: GLenum
+
+pattern GL_PROXY_COLOR_TABLE = 0x80D3 :: GLenum
+
+pattern GL_PROXY_COLOR_TABLE_SGI = 0x80D3 :: GLenum
+
+pattern GL_PROXY_HISTOGRAM = 0x8025 :: GLenum
+
+pattern GL_PROXY_HISTOGRAM_EXT = 0x8025 :: GLenum
+
+pattern GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE = 0x80D5 :: GLenum
+
+pattern GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI = 0x80D5 :: GLenum
+
+pattern GL_PROXY_POST_CONVOLUTION_COLOR_TABLE = 0x80D4 :: GLenum
+
+pattern GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI = 0x80D4 :: GLenum
+
+pattern GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP = 0x8163 :: GLenum
+
+pattern GL_PROXY_TEXTURE_1D = 0x8063 :: GLenum
+
+pattern GL_PROXY_TEXTURE_1D_ARRAY = 0x8C19 :: GLenum
+
+pattern GL_PROXY_TEXTURE_1D_ARRAY_EXT = 0x8C19 :: GLenum
+
+pattern GL_PROXY_TEXTURE_1D_EXT = 0x8063 :: GLenum
+
+pattern GL_PROXY_TEXTURE_1D_STACK_MESAX = 0x875B :: GLenum
+
+pattern GL_PROXY_TEXTURE_2D = 0x8064 :: GLenum
+
+pattern GL_PROXY_TEXTURE_2D_ARRAY = 0x8C1B :: GLenum
+
+pattern GL_PROXY_TEXTURE_2D_ARRAY_EXT = 0x8C1B :: GLenum
+
+pattern GL_PROXY_TEXTURE_2D_EXT = 0x8064 :: GLenum
+
+pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE = 0x9101 :: GLenum
+
+pattern GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9103 :: GLenum
+
+pattern GL_PROXY_TEXTURE_2D_STACK_MESAX = 0x875C :: GLenum
+
+pattern GL_PROXY_TEXTURE_3D = 0x8070 :: GLenum
+
+pattern GL_PROXY_TEXTURE_3D_EXT = 0x8070 :: GLenum
+
+pattern GL_PROXY_TEXTURE_4D_SGIS = 0x8135 :: GLenum
+
+pattern GL_PROXY_TEXTURE_COLOR_TABLE_SGI = 0x80BD :: GLenum
+
+pattern GL_PROXY_TEXTURE_CUBE_MAP = 0x851B :: GLenum
+
+pattern GL_PROXY_TEXTURE_CUBE_MAP_ARB = 0x851B :: GLenum
+
+pattern GL_PROXY_TEXTURE_CUBE_MAP_ARRAY = 0x900B :: GLenum
+
+pattern GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB = 0x900B :: GLenum
+
+pattern GL_PROXY_TEXTURE_CUBE_MAP_EXT = 0x851B :: GLenum
+
+pattern GL_PROXY_TEXTURE_RECTANGLE = 0x84F7 :: GLenum
+
+pattern GL_PROXY_TEXTURE_RECTANGLE_ARB = 0x84F7 :: GLenum
+
+pattern GL_PROXY_TEXTURE_RECTANGLE_NV = 0x84F7 :: GLenum
+
+pattern GL_PURGEABLE_APPLE = 0x8A1D :: GLenum
+
+pattern GL_PURGED_CONTEXT_RESET_NV = 0x92BB :: GLenum
+
+pattern GL_Q = 0x2003 :: GLenum
+
+pattern GL_QUADRATIC_ATTENUATION = 0x1209 :: GLenum
+
+pattern GL_QUADRATIC_CURVE_TO_NV = 0x0A :: GLubyte
+
+pattern GL_QUADS = 0x0007 :: GLenum
+
+pattern GL_QUADS_EXT = 0x0007 :: GLenum
+
+pattern GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION = 0x8E4C :: GLenum
+
+pattern GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT = 0x8E4C :: GLenum
+
+pattern GL_QUADS_OES = 0x0007 :: GLenum
+
+pattern GL_QUAD_ALPHA4_SGIS = 0x811E :: GLenum
+
+pattern GL_QUAD_ALPHA8_SGIS = 0x811F :: GLenum
+
+pattern GL_QUAD_INTENSITY4_SGIS = 0x8122 :: GLenum
+
+pattern GL_QUAD_INTENSITY8_SGIS = 0x8123 :: GLenum
+
+pattern GL_QUAD_LUMINANCE4_SGIS = 0x8120 :: GLenum
+
+pattern GL_QUAD_LUMINANCE8_SGIS = 0x8121 :: GLenum
+
+pattern GL_QUAD_MESH_SUN = 0x8614 :: GLenum
+
+pattern GL_QUAD_STRIP = 0x0008 :: GLenum
+
+pattern GL_QUAD_TEXTURE_SELECT_SGIS = 0x8125 :: GLenum
+
+pattern GL_QUARTER_BIT_ATI = 0x00000010 :: GLbitfield
+
+pattern GL_QUERY = 0x82E3 :: GLenum
+
+pattern GL_QUERY_ALL_EVENT_BITS_AMD = 0xFFFFFFFF :: GLbitfield
+
+pattern GL_QUERY_BUFFER = 0x9192 :: GLenum
+
+pattern GL_QUERY_BUFFER_AMD = 0x9192 :: GLenum
+
+pattern GL_QUERY_BUFFER_BARRIER_BIT = 0x00008000 :: GLbitfield
+
+pattern GL_QUERY_BUFFER_BINDING = 0x9193 :: GLenum
+
+pattern GL_QUERY_BUFFER_BINDING_AMD = 0x9193 :: GLenum
+
+pattern GL_QUERY_BY_REGION_NO_WAIT = 0x8E16 :: GLenum
+
+pattern GL_QUERY_BY_REGION_NO_WAIT_INVERTED = 0x8E1A :: GLenum
+
+pattern GL_QUERY_BY_REGION_NO_WAIT_NV = 0x8E16 :: GLenum
+
+pattern GL_QUERY_BY_REGION_WAIT = 0x8E15 :: GLenum
+
+pattern GL_QUERY_BY_REGION_WAIT_INVERTED = 0x8E19 :: GLenum
+
+pattern GL_QUERY_BY_REGION_WAIT_NV = 0x8E15 :: GLenum
+
+pattern GL_QUERY_COUNTER_BITS = 0x8864 :: GLenum
+
+pattern GL_QUERY_COUNTER_BITS_ARB = 0x8864 :: GLenum
+
+pattern GL_QUERY_COUNTER_BITS_EXT = 0x8864 :: GLenum
+
+pattern GL_QUERY_DEPTH_BOUNDS_FAIL_EVENT_BIT_AMD = 0x00000008 :: GLbitfield
+
+pattern GL_QUERY_DEPTH_FAIL_EVENT_BIT_AMD = 0x00000002 :: GLbitfield
+
+pattern GL_QUERY_DEPTH_PASS_EVENT_BIT_AMD = 0x00000001 :: GLbitfield
+
+pattern GL_QUERY_KHR = 0x82E3 :: GLenum
+
+pattern GL_QUERY_NO_WAIT = 0x8E14 :: GLenum
+
+pattern GL_QUERY_NO_WAIT_INVERTED = 0x8E18 :: GLenum
+
+pattern GL_QUERY_NO_WAIT_NV = 0x8E14 :: GLenum
+
+pattern GL_QUERY_OBJECT_AMD = 0x9153 :: GLenum
+
+pattern GL_QUERY_OBJECT_EXT = 0x9153 :: GLenum
+
+pattern GL_QUERY_RESOURCE_BUFFEROBJECT_NV = 0x9547 :: GLenum
+
+pattern GL_QUERY_RESOURCE_MEMTYPE_VIDMEM_NV = 0x9542 :: GLenum
+
+pattern GL_QUERY_RESOURCE_RENDERBUFFER_NV = 0x9546 :: GLenum
+
+pattern GL_QUERY_RESOURCE_SYS_RESERVED_NV = 0x9544 :: GLenum
+
+pattern GL_QUERY_RESOURCE_TEXTURE_NV = 0x9545 :: GLenum
+
+pattern GL_QUERY_RESOURCE_TYPE_VIDMEM_ALLOC_NV = 0x9540 :: GLenum
+
+pattern GL_QUERY_RESULT = 0x8866 :: GLenum
+
+pattern GL_QUERY_RESULT_ARB = 0x8866 :: GLenum
+
+pattern GL_QUERY_RESULT_AVAILABLE = 0x8867 :: GLenum
+
+pattern GL_QUERY_RESULT_AVAILABLE_ARB = 0x8867 :: GLenum
+
+pattern GL_QUERY_RESULT_AVAILABLE_EXT = 0x8867 :: GLenum
+
+pattern GL_QUERY_RESULT_EXT = 0x8866 :: GLenum
+
+pattern GL_QUERY_RESULT_NO_WAIT = 0x9194 :: GLenum
+
+pattern GL_QUERY_RESULT_NO_WAIT_AMD = 0x9194 :: GLenum
+
+pattern GL_QUERY_STENCIL_FAIL_EVENT_BIT_AMD = 0x00000004 :: GLbitfield
+
+pattern GL_QUERY_TARGET = 0x82EA :: GLenum
+
+pattern GL_QUERY_WAIT = 0x8E13 :: GLenum
+
+pattern GL_QUERY_WAIT_INVERTED = 0x8E17 :: GLenum
+
+pattern GL_QUERY_WAIT_NV = 0x8E13 :: GLenum
+
+pattern GL_R = 0x2002 :: GLenum
+
+pattern GL_R11F_G11F_B10F = 0x8C3A :: GLenum
+
+pattern GL_R11F_G11F_B10F_APPLE = 0x8C3A :: GLenum
+
+pattern GL_R11F_G11F_B10F_EXT = 0x8C3A :: GLenum
+
+pattern GL_R16 = 0x822A :: GLenum
+
+pattern GL_R16F = 0x822D :: GLenum
+
+pattern GL_R16F_EXT = 0x822D :: GLenum
+
+pattern GL_R16I = 0x8233 :: GLenum
+
+pattern GL_R16UI = 0x8234 :: GLenum
+
+pattern GL_R16_EXT = 0x822A :: GLenum
+
+pattern GL_R16_SNORM = 0x8F98 :: GLenum
+
+pattern GL_R16_SNORM_EXT = 0x8F98 :: GLenum
+
+pattern GL_R1UI_C3F_V3F_SUN = 0x85C6 :: GLenum
+
+pattern GL_R1UI_C4F_N3F_V3F_SUN = 0x85C8 :: GLenum
+
+pattern GL_R1UI_C4UB_V3F_SUN = 0x85C5 :: GLenum
+
+pattern GL_R1UI_N3F_V3F_SUN = 0x85C7 :: GLenum
+
+pattern GL_R1UI_T2F_C4F_N3F_V3F_SUN = 0x85CB :: GLenum
+
+pattern GL_R1UI_T2F_N3F_V3F_SUN = 0x85CA :: GLenum
+
+pattern GL_R1UI_T2F_V3F_SUN = 0x85C9 :: GLenum
+
+pattern GL_R1UI_V3F_SUN = 0x85C4 :: GLenum
+
+pattern GL_R32F = 0x822E :: GLenum
+
+pattern GL_R32F_EXT = 0x822E :: GLenum
+
+pattern GL_R32I = 0x8235 :: GLenum
+
+pattern GL_R32UI = 0x8236 :: GLenum
+
+pattern GL_R3_G3_B2 = 0x2A10 :: GLenum
+
+pattern GL_R8 = 0x8229 :: GLenum
+
+pattern GL_R8I = 0x8231 :: GLenum
+
+pattern GL_R8UI = 0x8232 :: GLenum
+
+pattern GL_R8_EXT = 0x8229 :: GLenum
+
+pattern GL_R8_SNORM = 0x8F94 :: GLenum
+
+pattern GL_RASTERIZER_DISCARD = 0x8C89 :: GLenum
+
+pattern GL_RASTERIZER_DISCARD_EXT = 0x8C89 :: GLenum
+
+pattern GL_RASTERIZER_DISCARD_NV = 0x8C89 :: GLenum
+
+pattern GL_RASTER_FIXED_SAMPLE_LOCATIONS_EXT = 0x932A :: GLenum
+
+pattern GL_RASTER_MULTISAMPLE_EXT = 0x9327 :: GLenum
+
+pattern GL_RASTER_POSITION_UNCLIPPED_IBM = 0x19262 :: GLenum
+
+pattern GL_RASTER_SAMPLES_EXT = 0x9328 :: GLenum
+
+pattern GL_READ_BUFFER = 0x0C02 :: GLenum
+
+pattern GL_READ_BUFFER_EXT = 0x0C02 :: GLenum
+
+pattern GL_READ_BUFFER_NV = 0x0C02 :: GLenum
+
+pattern GL_READ_FRAMEBUFFER = 0x8CA8 :: GLenum
+
+pattern GL_READ_FRAMEBUFFER_ANGLE = 0x8CA8 :: GLenum
+
+pattern GL_READ_FRAMEBUFFER_APPLE = 0x8CA8 :: GLenum
+
+pattern GL_READ_FRAMEBUFFER_BINDING = 0x8CAA :: GLenum
+
+pattern GL_READ_FRAMEBUFFER_BINDING_ANGLE = 0x8CAA :: GLenum
+
+pattern GL_READ_FRAMEBUFFER_BINDING_APPLE = 0x8CAA :: GLenum
+
+pattern GL_READ_FRAMEBUFFER_BINDING_EXT = 0x8CAA :: GLenum
+
+pattern GL_READ_FRAMEBUFFER_BINDING_NV = 0x8CAA :: GLenum
+
+pattern GL_READ_FRAMEBUFFER_EXT = 0x8CA8 :: GLenum
+
+pattern GL_READ_FRAMEBUFFER_NV = 0x8CA8 :: GLenum
+
+pattern GL_READ_ONLY = 0x88B8 :: GLenum
+
+pattern GL_READ_ONLY_ARB = 0x88B8 :: GLenum
+
+pattern GL_READ_PIXELS = 0x828C :: GLenum
+
+pattern GL_READ_PIXELS_FORMAT = 0x828D :: GLenum
+
+pattern GL_READ_PIXELS_TYPE = 0x828E :: GLenum
+
+pattern GL_READ_PIXEL_DATA_RANGE_LENGTH_NV = 0x887B :: GLenum
+
+pattern GL_READ_PIXEL_DATA_RANGE_NV = 0x8879 :: GLenum
+
+pattern GL_READ_PIXEL_DATA_RANGE_POINTER_NV = 0x887D :: GLenum
+
+pattern GL_READ_WRITE = 0x88BA :: GLenum
+
+pattern GL_READ_WRITE_ARB = 0x88BA :: GLenum
+
+pattern GL_RECIP_ADD_SIGNED_ALPHA_IMG = 0x8C05 :: GLenum
+
+pattern GL_RECLAIM_MEMORY_HINT_PGI = 0x1A1FE :: GLenum
+
+pattern GL_RECT_NV = 0xF6 :: GLubyte
+
+pattern GL_RED = 0x1903 :: GLenum
+
+pattern GL_REDUCE = 0x8016 :: GLenum
+
+pattern GL_REDUCE_EXT = 0x8016 :: GLenum
+
+pattern GL_RED_BIAS = 0x0D15 :: GLenum
+
+pattern GL_RED_BITS = 0x0D52 :: GLenum
+
+pattern GL_RED_BIT_ATI = 0x00000001 :: GLbitfield
+
+pattern GL_RED_EXT = 0x1903 :: GLenum
+
+pattern GL_RED_INTEGER = 0x8D94 :: GLenum
+
+pattern GL_RED_INTEGER_EXT = 0x8D94 :: GLenum
+
+pattern GL_RED_MAX_CLAMP_INGR = 0x8564 :: GLenum
+
+pattern GL_RED_MIN_CLAMP_INGR = 0x8560 :: GLenum
+
+pattern GL_RED_NV = 0x1903 :: GLenum
+
+pattern GL_RED_SCALE = 0x0D14 :: GLenum
+
+pattern GL_RED_SNORM = 0x8F90 :: GLenum
+
+pattern GL_REFERENCED_BY_COMPUTE_SHADER = 0x930B :: GLenum
+
+pattern GL_REFERENCED_BY_FRAGMENT_SHADER = 0x930A :: GLenum
+
+pattern GL_REFERENCED_BY_GEOMETRY_SHADER = 0x9309 :: GLenum
+
+pattern GL_REFERENCED_BY_GEOMETRY_SHADER_EXT = 0x9309 :: GLenum
+
+pattern GL_REFERENCED_BY_GEOMETRY_SHADER_OES = 0x9309 :: GLenum
+
+pattern GL_REFERENCED_BY_MESH_SHADER_NV = 0x95A0 :: GLenum
+
+pattern GL_REFERENCED_BY_TASK_SHADER_NV = 0x95A1 :: GLenum
+
+pattern GL_REFERENCED_BY_TESS_CONTROL_SHADER = 0x9307 :: GLenum
+
+pattern GL_REFERENCED_BY_TESS_CONTROL_SHADER_EXT = 0x9307 :: GLenum
+
+pattern GL_REFERENCED_BY_TESS_CONTROL_SHADER_OES = 0x9307 :: GLenum
+
+pattern GL_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x9308 :: GLenum
+
+pattern GL_REFERENCED_BY_TESS_EVALUATION_SHADER_EXT = 0x9308 :: GLenum
+
+pattern GL_REFERENCED_BY_TESS_EVALUATION_SHADER_OES = 0x9308 :: GLenum
+
+pattern GL_REFERENCED_BY_VERTEX_SHADER = 0x9306 :: GLenum
+
+pattern GL_REFERENCE_PLANE_EQUATION_SGIX = 0x817E :: GLenum
+
+pattern GL_REFERENCE_PLANE_SGIX = 0x817D :: GLenum
+
+pattern GL_REFLECTION_MAP = 0x8512 :: GLenum
+
+pattern GL_REFLECTION_MAP_ARB = 0x8512 :: GLenum
+
+pattern GL_REFLECTION_MAP_EXT = 0x8512 :: GLenum
+
+pattern GL_REFLECTION_MAP_NV = 0x8512 :: GLenum
+
+pattern GL_REFLECTION_MAP_OES = 0x8512 :: GLenum
+
+pattern GL_REGISTER_COMBINERS_NV = 0x8522 :: GLenum
+
+pattern GL_REG_0_ATI = 0x8921 :: GLenum
+
+pattern GL_REG_10_ATI = 0x892B :: GLenum
+
+pattern GL_REG_11_ATI = 0x892C :: GLenum
+
+pattern GL_REG_12_ATI = 0x892D :: GLenum
+
+pattern GL_REG_13_ATI = 0x892E :: GLenum
+
+pattern GL_REG_14_ATI = 0x892F :: GLenum
+
+pattern GL_REG_15_ATI = 0x8930 :: GLenum
+
+pattern GL_REG_16_ATI = 0x8931 :: GLenum
+
+pattern GL_REG_17_ATI = 0x8932 :: GLenum
+
+pattern GL_REG_18_ATI = 0x8933 :: GLenum
+
+pattern GL_REG_19_ATI = 0x8934 :: GLenum
+
+pattern GL_REG_1_ATI = 0x8922 :: GLenum
+
+pattern GL_REG_20_ATI = 0x8935 :: GLenum
+
+pattern GL_REG_21_ATI = 0x8936 :: GLenum
+
+pattern GL_REG_22_ATI = 0x8937 :: GLenum
+
+pattern GL_REG_23_ATI = 0x8938 :: GLenum
+
+pattern GL_REG_24_ATI = 0x8939 :: GLenum
+
+pattern GL_REG_25_ATI = 0x893A :: GLenum
+
+pattern GL_REG_26_ATI = 0x893B :: GLenum
+
+pattern GL_REG_27_ATI = 0x893C :: GLenum
+
+pattern GL_REG_28_ATI = 0x893D :: GLenum
+
+pattern GL_REG_29_ATI = 0x893E :: GLenum
+
+pattern GL_REG_2_ATI = 0x8923 :: GLenum
+
+pattern GL_REG_30_ATI = 0x893F :: GLenum
+
+pattern GL_REG_31_ATI = 0x8940 :: GLenum
+
+pattern GL_REG_3_ATI = 0x8924 :: GLenum
+
+pattern GL_REG_4_ATI = 0x8925 :: GLenum
+
+pattern GL_REG_5_ATI = 0x8926 :: GLenum
+
+pattern GL_REG_6_ATI = 0x8927 :: GLenum
+
+pattern GL_REG_7_ATI = 0x8928 :: GLenum
+
+pattern GL_REG_8_ATI = 0x8929 :: GLenum
+
+pattern GL_REG_9_ATI = 0x892A :: GLenum
+
+pattern GL_RELATIVE_ARC_TO_NV = 0xFF :: GLubyte
+
+pattern GL_RELATIVE_CONIC_CURVE_TO_NV = 0x1B :: GLubyte
+
+pattern GL_RELATIVE_CUBIC_CURVE_TO_NV = 0x0D :: GLubyte
+
+pattern GL_RELATIVE_HORIZONTAL_LINE_TO_NV = 0x07 :: GLubyte
+
+pattern GL_RELATIVE_LARGE_CCW_ARC_TO_NV = 0x17 :: GLubyte
+
+pattern GL_RELATIVE_LARGE_CW_ARC_TO_NV = 0x19 :: GLubyte
+
+pattern GL_RELATIVE_LINE_TO_NV = 0x05 :: GLubyte
+
+pattern GL_RELATIVE_MOVE_TO_NV = 0x03 :: GLubyte
+
+pattern GL_RELATIVE_QUADRATIC_CURVE_TO_NV = 0x0B :: GLubyte
+
+pattern GL_RELATIVE_RECT_NV = 0xF7 :: GLubyte
+
+pattern GL_RELATIVE_ROUNDED_RECT2_NV = 0xEB :: GLubyte
+
+pattern GL_RELATIVE_ROUNDED_RECT4_NV = 0xED :: GLubyte
+
+pattern GL_RELATIVE_ROUNDED_RECT8_NV = 0xEF :: GLubyte
+
+pattern GL_RELATIVE_ROUNDED_RECT_NV = 0xE9 :: GLubyte
+
+pattern GL_RELATIVE_SMALL_CCW_ARC_TO_NV = 0x13 :: GLubyte
+
+pattern GL_RELATIVE_SMALL_CW_ARC_TO_NV = 0x15 :: GLubyte
+
+pattern GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV = 0x11 :: GLubyte
+
+pattern GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV = 0x0F :: GLubyte
+
+pattern GL_RELATIVE_VERTICAL_LINE_TO_NV = 0x09 :: GLubyte
+
+pattern GL_RELEASED_APPLE = 0x8A19 :: GLenum
+
+pattern GL_RENDER = 0x1C00 :: GLenum
+
+pattern GL_RENDERBUFFER = 0x8D41 :: GLenum
+
+pattern GL_RENDERBUFFER_ALPHA_SIZE = 0x8D53 :: GLenum
+
+pattern GL_RENDERBUFFER_ALPHA_SIZE_EXT = 0x8D53 :: GLenum
+
+pattern GL_RENDERBUFFER_ALPHA_SIZE_OES = 0x8D53 :: GLenum
+
+pattern GL_RENDERBUFFER_BINDING = 0x8CA7 :: GLenum
+
+pattern GL_RENDERBUFFER_BINDING_ANGLE = 0x8CA7 :: GLenum
+
+pattern GL_RENDERBUFFER_BINDING_EXT = 0x8CA7 :: GLenum
+
+pattern GL_RENDERBUFFER_BINDING_OES = 0x8CA7 :: GLenum
+
+pattern GL_RENDERBUFFER_BLUE_SIZE = 0x8D52 :: GLenum
+
+pattern GL_RENDERBUFFER_BLUE_SIZE_EXT = 0x8D52 :: GLenum
+
+pattern GL_RENDERBUFFER_BLUE_SIZE_OES = 0x8D52 :: GLenum
+
+pattern GL_RENDERBUFFER_COLOR_SAMPLES_NV = 0x8E10 :: GLenum
+
+pattern GL_RENDERBUFFER_COVERAGE_SAMPLES_NV = 0x8CAB :: GLenum
+
+pattern GL_RENDERBUFFER_DEPTH_SIZE = 0x8D54 :: GLenum
+
+pattern GL_RENDERBUFFER_DEPTH_SIZE_EXT = 0x8D54 :: GLenum
+
+pattern GL_RENDERBUFFER_DEPTH_SIZE_OES = 0x8D54 :: GLenum
+
+pattern GL_RENDERBUFFER_EXT = 0x8D41 :: GLenum
+
+pattern GL_RENDERBUFFER_FREE_MEMORY_ATI = 0x87FD :: GLenum
+
+pattern GL_RENDERBUFFER_GREEN_SIZE = 0x8D51 :: GLenum
+
+pattern GL_RENDERBUFFER_GREEN_SIZE_EXT = 0x8D51 :: GLenum
+
+pattern GL_RENDERBUFFER_GREEN_SIZE_OES = 0x8D51 :: GLenum
+
+pattern GL_RENDERBUFFER_HEIGHT = 0x8D43 :: GLenum
+
+pattern GL_RENDERBUFFER_HEIGHT_EXT = 0x8D43 :: GLenum
+
+pattern GL_RENDERBUFFER_HEIGHT_OES = 0x8D43 :: GLenum
+
+pattern GL_RENDERBUFFER_INTERNAL_FORMAT = 0x8D44 :: GLenum
+
+pattern GL_RENDERBUFFER_INTERNAL_FORMAT_EXT = 0x8D44 :: GLenum
+
+pattern GL_RENDERBUFFER_INTERNAL_FORMAT_OES = 0x8D44 :: GLenum
+
+pattern GL_RENDERBUFFER_OES = 0x8D41 :: GLenum
+
+pattern GL_RENDERBUFFER_RED_SIZE = 0x8D50 :: GLenum
+
+pattern GL_RENDERBUFFER_RED_SIZE_EXT = 0x8D50 :: GLenum
+
+pattern GL_RENDERBUFFER_RED_SIZE_OES = 0x8D50 :: GLenum
+
+pattern GL_RENDERBUFFER_SAMPLES = 0x8CAB :: GLenum
+
+pattern GL_RENDERBUFFER_SAMPLES_ANGLE = 0x8CAB :: GLenum
+
+pattern GL_RENDERBUFFER_SAMPLES_APPLE = 0x8CAB :: GLenum
+
+pattern GL_RENDERBUFFER_SAMPLES_EXT = 0x8CAB :: GLenum
+
+pattern GL_RENDERBUFFER_SAMPLES_IMG = 0x9133 :: GLenum
+
+pattern GL_RENDERBUFFER_SAMPLES_NV = 0x8CAB :: GLenum
+
+pattern GL_RENDERBUFFER_STENCIL_SIZE = 0x8D55 :: GLenum
+
+pattern GL_RENDERBUFFER_STENCIL_SIZE_EXT = 0x8D55 :: GLenum
+
+pattern GL_RENDERBUFFER_STENCIL_SIZE_OES = 0x8D55 :: GLenum
+
+pattern GL_RENDERBUFFER_STORAGE_SAMPLES_AMD = 0x91B2 :: GLenum
+
+pattern GL_RENDERBUFFER_WIDTH = 0x8D42 :: GLenum
+
+pattern GL_RENDERBUFFER_WIDTH_EXT = 0x8D42 :: GLenum
+
+pattern GL_RENDERBUFFER_WIDTH_OES = 0x8D42 :: GLenum
+
+pattern GL_RENDERER = 0x1F01 :: GLenum
+
+pattern GL_RENDER_DIRECT_TO_FRAMEBUFFER_QCOM = 0x8FB3 :: GLenum
+
+pattern GL_RENDER_GPU_MASK_NV = 0x9558 :: GLenum
+
+pattern GL_RENDER_MODE = 0x0C40 :: GLenum
+
+pattern GL_REPEAT = 0x2901 :: GLenum
+
+pattern GL_REPLACE = 0x1E01 :: GLenum
+
+pattern GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN = 0x85C3 :: GLenum
+
+pattern GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN = 0x85C2 :: GLenum
+
+pattern GL_REPLACEMENT_CODE_ARRAY_SUN = 0x85C0 :: GLenum
+
+pattern GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN = 0x85C1 :: GLenum
+
+pattern GL_REPLACEMENT_CODE_SUN = 0x81D8 :: GLenum
+
+pattern GL_REPLACE_EXT = 0x8062 :: GLenum
+
+pattern GL_REPLACE_MIDDLE_SUN = 0x0002 :: GLenum
+
+pattern GL_REPLACE_OLDEST_SUN = 0x0003 :: GLenum
+
+pattern GL_REPLACE_VALUE_AMD = 0x874B :: GLenum
+
+pattern GL_REPLICATE_BORDER = 0x8153 :: GLenum
+
+pattern GL_REPLICATE_BORDER_HP = 0x8153 :: GLenum
+
+pattern GL_REPRESENTATIVE_FRAGMENT_TEST_NV = 0x937F :: GLenum
+
+pattern GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES = 0x8D68 :: GLenum
+
+pattern GL_RESAMPLE_AVERAGE_OML = 0x8988 :: GLenum
+
+pattern GL_RESAMPLE_DECIMATE_OML = 0x8989 :: GLenum
+
+pattern GL_RESAMPLE_DECIMATE_SGIX = 0x8430 :: GLenum
+
+pattern GL_RESAMPLE_REPLICATE_OML = 0x8986 :: GLenum
+
+pattern GL_RESAMPLE_REPLICATE_SGIX = 0x8433 :: GLenum
+
+pattern GL_RESAMPLE_ZERO_FILL_OML = 0x8987 :: GLenum
+
+pattern GL_RESAMPLE_ZERO_FILL_SGIX = 0x8434 :: GLenum
+
+pattern GL_RESCALE_NORMAL = 0x803A :: GLenum
+
+pattern GL_RESCALE_NORMAL_EXT = 0x803A :: GLenum
+
+pattern GL_RESET_NOTIFICATION_STRATEGY = 0x8256 :: GLenum
+
+pattern GL_RESET_NOTIFICATION_STRATEGY_ARB = 0x8256 :: GLenum
+
+pattern GL_RESET_NOTIFICATION_STRATEGY_EXT = 0x8256 :: GLenum
+
+pattern GL_RESET_NOTIFICATION_STRATEGY_KHR = 0x8256 :: GLenum
+
+pattern GL_RESTART_PATH_NV = 0xF0 :: GLubyte
+
+pattern GL_RESTART_SUN = 0x0001 :: GLenum
+
+pattern GL_RETAINED_APPLE = 0x8A1B :: GLenum
+
+pattern GL_RETURN = 0x0102 :: GLenum
+
+pattern GL_RG = 0x8227 :: GLenum
+
+pattern GL_RG16 = 0x822C :: GLenum
+
+pattern GL_RG16F = 0x822F :: GLenum
+
+pattern GL_RG16F_EXT = 0x822F :: GLenum
+
+pattern GL_RG16I = 0x8239 :: GLenum
+
+pattern GL_RG16UI = 0x823A :: GLenum
+
+pattern GL_RG16_EXT = 0x822C :: GLenum
+
+pattern GL_RG16_SNORM = 0x8F99 :: GLenum
+
+pattern GL_RG16_SNORM_EXT = 0x8F99 :: GLenum
+
+pattern GL_RG32F = 0x8230 :: GLenum
+
+pattern GL_RG32F_EXT = 0x8230 :: GLenum
+
+pattern GL_RG32I = 0x823B :: GLenum
+
+pattern GL_RG32UI = 0x823C :: GLenum
+
+pattern GL_RG8 = 0x822B :: GLenum
+
+pattern GL_RG8I = 0x8237 :: GLenum
+
+pattern GL_RG8UI = 0x8238 :: GLenum
+
+pattern GL_RG8_EXT = 0x822B :: GLenum
+
+pattern GL_RG8_SNORM = 0x8F95 :: GLenum
+
+pattern GL_RGB = 0x1907 :: GLenum
+
+pattern GL_RGB10 = 0x8052 :: GLenum
+
+pattern GL_RGB10_A2 = 0x8059 :: GLenum
+
+pattern GL_RGB10_A2UI = 0x906F :: GLenum
+
+pattern GL_RGB10_A2_EXT = 0x8059 :: GLenum
+
+pattern GL_RGB10_EXT = 0x8052 :: GLenum
+
+pattern GL_RGB12 = 0x8053 :: GLenum
+
+pattern GL_RGB12_EXT = 0x8053 :: GLenum
+
+pattern GL_RGB16 = 0x8054 :: GLenum
+
+pattern GL_RGB16F = 0x881B :: GLenum
+
+pattern GL_RGB16F_ARB = 0x881B :: GLenum
+
+pattern GL_RGB16F_EXT = 0x881B :: GLenum
+
+pattern GL_RGB16I = 0x8D89 :: GLenum
+
+pattern GL_RGB16I_EXT = 0x8D89 :: GLenum
+
+pattern GL_RGB16UI = 0x8D77 :: GLenum
+
+pattern GL_RGB16UI_EXT = 0x8D77 :: GLenum
+
+pattern GL_RGB16_EXT = 0x8054 :: GLenum
+
+pattern GL_RGB16_SNORM = 0x8F9A :: GLenum
+
+pattern GL_RGB16_SNORM_EXT = 0x8F9A :: GLenum
+
+pattern GL_RGB2_EXT = 0x804E :: GLenum
+
+pattern GL_RGB32F = 0x8815 :: GLenum
+
+pattern GL_RGB32F_ARB = 0x8815 :: GLenum
+
+pattern GL_RGB32F_EXT = 0x8815 :: GLenum
+
+pattern GL_RGB32I = 0x8D83 :: GLenum
+
+pattern GL_RGB32I_EXT = 0x8D83 :: GLenum
+
+pattern GL_RGB32UI = 0x8D71 :: GLenum
+
+pattern GL_RGB32UI_EXT = 0x8D71 :: GLenum
+
+pattern GL_RGB4 = 0x804F :: GLenum
+
+pattern GL_RGB4_EXT = 0x804F :: GLenum
+
+pattern GL_RGB4_S3TC = 0x83A1 :: GLenum
+
+pattern GL_RGB5 = 0x8050 :: GLenum
+
+pattern GL_RGB565 = 0x8D62 :: GLenum
+
+pattern GL_RGB565_OES = 0x8D62 :: GLenum
+
+pattern GL_RGB5_A1 = 0x8057 :: GLenum
+
+pattern GL_RGB5_A1_EXT = 0x8057 :: GLenum
+
+pattern GL_RGB5_A1_OES = 0x8057 :: GLenum
+
+pattern GL_RGB5_EXT = 0x8050 :: GLenum
+
+pattern GL_RGB8 = 0x8051 :: GLenum
+
+pattern GL_RGB8I = 0x8D8F :: GLenum
+
+pattern GL_RGB8I_EXT = 0x8D8F :: GLenum
+
+pattern GL_RGB8UI = 0x8D7D :: GLenum
+
+pattern GL_RGB8UI_EXT = 0x8D7D :: GLenum
+
+pattern GL_RGB8_EXT = 0x8051 :: GLenum
+
+pattern GL_RGB8_OES = 0x8051 :: GLenum
+
+pattern GL_RGB8_SNORM = 0x8F96 :: GLenum
+
+pattern GL_RGB9_E5 = 0x8C3D :: GLenum
+
+pattern GL_RGB9_E5_APPLE = 0x8C3D :: GLenum
+
+pattern GL_RGB9_E5_EXT = 0x8C3D :: GLenum
+
+pattern GL_RGBA = 0x1908 :: GLenum
+
+pattern GL_RGBA12 = 0x805A :: GLenum
+
+pattern GL_RGBA12_EXT = 0x805A :: GLenum
+
+pattern GL_RGBA16 = 0x805B :: GLenum
+
+pattern GL_RGBA16F = 0x881A :: GLenum
+
+pattern GL_RGBA16F_ARB = 0x881A :: GLenum
+
+pattern GL_RGBA16F_EXT = 0x881A :: GLenum
+
+pattern GL_RGBA16I = 0x8D88 :: GLenum
+
+pattern GL_RGBA16I_EXT = 0x8D88 :: GLenum
+
+pattern GL_RGBA16UI = 0x8D76 :: GLenum
+
+pattern GL_RGBA16UI_EXT = 0x8D76 :: GLenum
+
+pattern GL_RGBA16_EXT = 0x805B :: GLenum
+
+pattern GL_RGBA16_SNORM = 0x8F9B :: GLenum
+
+pattern GL_RGBA16_SNORM_EXT = 0x8F9B :: GLenum
+
+pattern GL_RGBA2 = 0x8055 :: GLenum
+
+pattern GL_RGBA2_EXT = 0x8055 :: GLenum
+
+pattern GL_RGBA32F = 0x8814 :: GLenum
+
+pattern GL_RGBA32F_ARB = 0x8814 :: GLenum
+
+pattern GL_RGBA32F_EXT = 0x8814 :: GLenum
+
+pattern GL_RGBA32I = 0x8D82 :: GLenum
+
+pattern GL_RGBA32I_EXT = 0x8D82 :: GLenum
+
+pattern GL_RGBA32UI = 0x8D70 :: GLenum
+
+pattern GL_RGBA32UI_EXT = 0x8D70 :: GLenum
+
+pattern GL_RGBA4 = 0x8056 :: GLenum
+
+pattern GL_RGBA4_DXT5_S3TC = 0x83A5 :: GLenum
+
+pattern GL_RGBA4_EXT = 0x8056 :: GLenum
+
+pattern GL_RGBA4_OES = 0x8056 :: GLenum
+
+pattern GL_RGBA4_S3TC = 0x83A3 :: GLenum
+
+pattern GL_RGBA8 = 0x8058 :: GLenum
+
+pattern GL_RGBA8I = 0x8D8E :: GLenum
+
+pattern GL_RGBA8I_EXT = 0x8D8E :: GLenum
+
+pattern GL_RGBA8UI = 0x8D7C :: GLenum
+
+pattern GL_RGBA8UI_EXT = 0x8D7C :: GLenum
+
+pattern GL_RGBA8_EXT = 0x8058 :: GLenum
+
+pattern GL_RGBA8_OES = 0x8058 :: GLenum
+
+pattern GL_RGBA8_SNORM = 0x8F97 :: GLenum
+
+pattern GL_RGBA_DXT5_S3TC = 0x83A4 :: GLenum
+
+pattern GL_RGBA_FLOAT16_APPLE = 0x881A :: GLenum
+
+pattern GL_RGBA_FLOAT16_ATI = 0x881A :: GLenum
+
+pattern GL_RGBA_FLOAT32_APPLE = 0x8814 :: GLenum
+
+pattern GL_RGBA_FLOAT32_ATI = 0x8814 :: GLenum
+
+pattern GL_RGBA_FLOAT_MODE_ARB = 0x8820 :: GLenum
+
+pattern GL_RGBA_FLOAT_MODE_ATI = 0x8820 :: GLenum
+
+pattern GL_RGBA_INTEGER = 0x8D99 :: GLenum
+
+pattern GL_RGBA_INTEGER_EXT = 0x8D99 :: GLenum
+
+pattern GL_RGBA_INTEGER_MODE_EXT = 0x8D9E :: GLenum
+
+pattern GL_RGBA_MODE = 0x0C31 :: GLenum
+
+pattern GL_RGBA_S3TC = 0x83A2 :: GLenum
+
+pattern GL_RGBA_SIGNED_COMPONENTS_EXT = 0x8C3C :: GLenum
+
+pattern GL_RGBA_SNORM = 0x8F93 :: GLenum
+
+pattern GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV = 0x86D9 :: GLenum
+
+pattern GL_RGB_422_APPLE = 0x8A1F :: GLenum
+
+pattern GL_RGB_FLOAT16_APPLE = 0x881B :: GLenum
+
+pattern GL_RGB_FLOAT16_ATI = 0x881B :: GLenum
+
+pattern GL_RGB_FLOAT32_APPLE = 0x8815 :: GLenum
+
+pattern GL_RGB_FLOAT32_ATI = 0x8815 :: GLenum
+
+pattern GL_RGB_INTEGER = 0x8D98 :: GLenum
+
+pattern GL_RGB_INTEGER_EXT = 0x8D98 :: GLenum
+
+pattern GL_RGB_RAW_422_APPLE = 0x8A51 :: GLenum
+
+pattern GL_RGB_S3TC = 0x83A0 :: GLenum
+
+pattern GL_RGB_SCALE = 0x8573 :: GLenum
+
+pattern GL_RGB_SCALE_ARB = 0x8573 :: GLenum
+
+pattern GL_RGB_SCALE_EXT = 0x8573 :: GLenum
+
+pattern GL_RGB_SNORM = 0x8F92 :: GLenum
+
+pattern GL_RG_EXT = 0x8227 :: GLenum
+
+pattern GL_RG_INTEGER = 0x8228 :: GLenum
+
+pattern GL_RG_SNORM = 0x8F91 :: GLenum
+
+pattern GL_RIGHT = 0x0407 :: GLenum
+
+pattern GL_ROBUST_GPU_TIMEOUT_MS_KHR = 0x82FD :: GLenum
+
+pattern GL_ROUNDED_RECT2_NV = 0xEA :: GLubyte
+
+pattern GL_ROUNDED_RECT4_NV = 0xEC :: GLubyte
+
+pattern GL_ROUNDED_RECT8_NV = 0xEE :: GLubyte
+
+pattern GL_ROUNDED_RECT_NV = 0xE8 :: GLubyte
+
+pattern GL_ROUND_NV = 0x90A4 :: GLenum
+
+pattern GL_S = 0x2000 :: GLenum
+
+pattern GL_SAMPLER = 0x82E6 :: GLenum
+
+pattern GL_SAMPLER_1D = 0x8B5D :: GLenum
+
+pattern GL_SAMPLER_1D_ARB = 0x8B5D :: GLenum
+
+pattern GL_SAMPLER_1D_ARRAY = 0x8DC0 :: GLenum
+
+pattern GL_SAMPLER_1D_ARRAY_EXT = 0x8DC0 :: GLenum
+
+pattern GL_SAMPLER_1D_ARRAY_SHADOW = 0x8DC3 :: GLenum
+
+pattern GL_SAMPLER_1D_ARRAY_SHADOW_EXT = 0x8DC3 :: GLenum
+
+pattern GL_SAMPLER_1D_SHADOW = 0x8B61 :: GLenum
+
+pattern GL_SAMPLER_1D_SHADOW_ARB = 0x8B61 :: GLenum
+
+pattern GL_SAMPLER_2D = 0x8B5E :: GLenum
+
+pattern GL_SAMPLER_2D_ARB = 0x8B5E :: GLenum
+
+pattern GL_SAMPLER_2D_ARRAY = 0x8DC1 :: GLenum
+
+pattern GL_SAMPLER_2D_ARRAY_EXT = 0x8DC1 :: GLenum
+
+pattern GL_SAMPLER_2D_ARRAY_SHADOW = 0x8DC4 :: GLenum
+
+pattern GL_SAMPLER_2D_ARRAY_SHADOW_EXT = 0x8DC4 :: GLenum
+
+pattern GL_SAMPLER_2D_ARRAY_SHADOW_NV = 0x8DC4 :: GLenum
+
+pattern GL_SAMPLER_2D_MULTISAMPLE = 0x9108 :: GLenum
+
+pattern GL_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910B :: GLenum
+
+pattern GL_SAMPLER_2D_MULTISAMPLE_ARRAY_OES = 0x910B :: GLenum
+
+pattern GL_SAMPLER_2D_RECT = 0x8B63 :: GLenum
+
+pattern GL_SAMPLER_2D_RECT_ARB = 0x8B63 :: GLenum
+
+pattern GL_SAMPLER_2D_RECT_SHADOW = 0x8B64 :: GLenum
+
+pattern GL_SAMPLER_2D_RECT_SHADOW_ARB = 0x8B64 :: GLenum
+
+pattern GL_SAMPLER_2D_SHADOW = 0x8B62 :: GLenum
+
+pattern GL_SAMPLER_2D_SHADOW_ARB = 0x8B62 :: GLenum
+
+pattern GL_SAMPLER_2D_SHADOW_EXT = 0x8B62 :: GLenum
+
+pattern GL_SAMPLER_3D = 0x8B5F :: GLenum
+
+pattern GL_SAMPLER_3D_ARB = 0x8B5F :: GLenum
+
+pattern GL_SAMPLER_3D_OES = 0x8B5F :: GLenum
+
+pattern GL_SAMPLER_BINDING = 0x8919 :: GLenum
+
+pattern GL_SAMPLER_BUFFER = 0x8DC2 :: GLenum
+
+pattern GL_SAMPLER_BUFFER_AMD = 0x9001 :: GLenum
+
+pattern GL_SAMPLER_BUFFER_EXT = 0x8DC2 :: GLenum
+
+pattern GL_SAMPLER_BUFFER_OES = 0x8DC2 :: GLenum
+
+pattern GL_SAMPLER_CUBE = 0x8B60 :: GLenum
+
+pattern GL_SAMPLER_CUBE_ARB = 0x8B60 :: GLenum
+
+pattern GL_SAMPLER_CUBE_MAP_ARRAY = 0x900C :: GLenum
+
+pattern GL_SAMPLER_CUBE_MAP_ARRAY_ARB = 0x900C :: GLenum
+
+pattern GL_SAMPLER_CUBE_MAP_ARRAY_EXT = 0x900C :: GLenum
+
+pattern GL_SAMPLER_CUBE_MAP_ARRAY_OES = 0x900C :: GLenum
+
+pattern GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW = 0x900D :: GLenum
+
+pattern GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB = 0x900D :: GLenum
+
+pattern GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_EXT = 0x900D :: GLenum
+
+pattern GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_OES = 0x900D :: GLenum
+
+pattern GL_SAMPLER_CUBE_SHADOW = 0x8DC5 :: GLenum
+
+pattern GL_SAMPLER_CUBE_SHADOW_EXT = 0x8DC5 :: GLenum
+
+pattern GL_SAMPLER_CUBE_SHADOW_NV = 0x8DC5 :: GLenum
+
+pattern GL_SAMPLER_EXTERNAL_2D_Y2Y_EXT = 0x8BE7 :: GLenum
+
+pattern GL_SAMPLER_EXTERNAL_OES = 0x8D66 :: GLenum
+
+pattern GL_SAMPLER_KHR = 0x82E6 :: GLenum
+
+pattern GL_SAMPLER_OBJECT_AMD = 0x9155 :: GLenum
+
+pattern GL_SAMPLER_RENDERBUFFER_NV = 0x8E56 :: GLenum
+
+pattern GL_SAMPLES = 0x80A9 :: GLenum
+
+pattern GL_SAMPLES_3DFX = 0x86B4 :: GLenum
+
+pattern GL_SAMPLES_ARB = 0x80A9 :: GLenum
+
+pattern GL_SAMPLES_EXT = 0x80A9 :: GLenum
+
+pattern GL_SAMPLES_PASSED = 0x8914 :: GLenum
+
+pattern GL_SAMPLES_PASSED_ARB = 0x8914 :: GLenum
+
+pattern GL_SAMPLES_SGIS = 0x80A9 :: GLenum
+
+pattern GL_SAMPLE_ALPHA_TO_COVERAGE = 0x809E :: GLenum
+
+pattern GL_SAMPLE_ALPHA_TO_COVERAGE_ARB = 0x809E :: GLenum
+
+pattern GL_SAMPLE_ALPHA_TO_MASK_EXT = 0x809E :: GLenum
+
+pattern GL_SAMPLE_ALPHA_TO_MASK_SGIS = 0x809E :: GLenum
+
+pattern GL_SAMPLE_ALPHA_TO_ONE = 0x809F :: GLenum
+
+pattern GL_SAMPLE_ALPHA_TO_ONE_ARB = 0x809F :: GLenum
+
+pattern GL_SAMPLE_ALPHA_TO_ONE_EXT = 0x809F :: GLenum
+
+pattern GL_SAMPLE_ALPHA_TO_ONE_SGIS = 0x809F :: GLenum
+
+pattern GL_SAMPLE_BUFFERS = 0x80A8 :: GLenum
+
+pattern GL_SAMPLE_BUFFERS_3DFX = 0x86B3 :: GLenum
+
+pattern GL_SAMPLE_BUFFERS_ARB = 0x80A8 :: GLenum
+
+pattern GL_SAMPLE_BUFFERS_EXT = 0x80A8 :: GLenum
+
+pattern GL_SAMPLE_BUFFERS_SGIS = 0x80A8 :: GLenum
+
+pattern GL_SAMPLE_COVERAGE = 0x80A0 :: GLenum
+
+pattern GL_SAMPLE_COVERAGE_ARB = 0x80A0 :: GLenum
+
+pattern GL_SAMPLE_COVERAGE_INVERT = 0x80AB :: GLenum
+
+pattern GL_SAMPLE_COVERAGE_INVERT_ARB = 0x80AB :: GLenum
+
+pattern GL_SAMPLE_COVERAGE_VALUE = 0x80AA :: GLenum
+
+pattern GL_SAMPLE_COVERAGE_VALUE_ARB = 0x80AA :: GLenum
+
+pattern GL_SAMPLE_LOCATION_ARB = 0x8E50 :: GLenum
+
+pattern GL_SAMPLE_LOCATION_NV = 0x8E50 :: GLenum
+
+pattern GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_ARB = 0x933F :: GLenum
+
+pattern GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_NV = 0x933F :: GLenum
+
+pattern GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_ARB = 0x933E :: GLenum
+
+pattern GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_NV = 0x933E :: GLenum
+
+pattern GL_SAMPLE_LOCATION_SUBPIXEL_BITS_ARB = 0x933D :: GLenum
+
+pattern GL_SAMPLE_LOCATION_SUBPIXEL_BITS_NV = 0x933D :: GLenum
+
+pattern GL_SAMPLE_MASK = 0x8E51 :: GLenum
+
+pattern GL_SAMPLE_MASK_EXT = 0x80A0 :: GLenum
+
+pattern GL_SAMPLE_MASK_INVERT_EXT = 0x80AB :: GLenum
+
+pattern GL_SAMPLE_MASK_INVERT_SGIS = 0x80AB :: GLenum
+
+pattern GL_SAMPLE_MASK_NV = 0x8E51 :: GLenum
+
+pattern GL_SAMPLE_MASK_SGIS = 0x80A0 :: GLenum
+
+pattern GL_SAMPLE_MASK_VALUE = 0x8E52 :: GLenum
+
+pattern GL_SAMPLE_MASK_VALUE_EXT = 0x80AA :: GLenum
+
+pattern GL_SAMPLE_MASK_VALUE_NV = 0x8E52 :: GLenum
+
+pattern GL_SAMPLE_MASK_VALUE_SGIS = 0x80AA :: GLenum
+
+pattern GL_SAMPLE_PATTERN_EXT = 0x80AC :: GLenum
+
+pattern GL_SAMPLE_PATTERN_SGIS = 0x80AC :: GLenum
+
+pattern GL_SAMPLE_POSITION = 0x8E50 :: GLenum
+
+pattern GL_SAMPLE_POSITION_NV = 0x8E50 :: GLenum
+
+pattern GL_SAMPLE_SHADING = 0x8C36 :: GLenum
+
+pattern GL_SAMPLE_SHADING_ARB = 0x8C36 :: GLenum
+
+pattern GL_SAMPLE_SHADING_OES = 0x8C36 :: GLenum
+
+pattern GL_SATURATE_BIT_ATI = 0x00000040 :: GLbitfield
+
+pattern GL_SCALAR_EXT = 0x87BE :: GLenum
+
+pattern GL_SCALEBIAS_HINT_SGIX = 0x8322 :: GLenum
+
+pattern GL_SCALED_RESOLVE_FASTEST_EXT = 0x90BA :: GLenum
+
+pattern GL_SCALED_RESOLVE_NICEST_EXT = 0x90BB :: GLenum
+
+pattern GL_SCALE_BY_FOUR_NV = 0x853F :: GLenum
+
+pattern GL_SCALE_BY_ONE_HALF_NV = 0x8540 :: GLenum
+
+pattern GL_SCALE_BY_TWO_NV = 0x853E :: GLenum
+
+pattern GL_SCISSOR_BIT = 0x00080000 :: GLbitfield
+
+pattern GL_SCISSOR_BOX = 0x0C10 :: GLenum
+
+pattern GL_SCISSOR_BOX_EXCLUSIVE_NV = 0x9556 :: GLenum
+
+pattern GL_SCISSOR_COMMAND_NV = 0x0011 :: GLenum
+
+pattern GL_SCISSOR_TEST = 0x0C11 :: GLenum
+
+pattern GL_SCISSOR_TEST_EXCLUSIVE_NV = 0x9555 :: GLenum
+
+pattern GL_SCREEN = 0x9295 :: GLenum
+
+pattern GL_SCREEN_COORDINATES_REND = 0x8490 :: GLenum
+
+pattern GL_SCREEN_KHR = 0x9295 :: GLenum
+
+pattern GL_SCREEN_NV = 0x9295 :: GLenum
+
+pattern GL_SECONDARY_COLOR_ARRAY = 0x845E :: GLenum
+
+pattern GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV = 0x8F27 :: GLenum
+
+pattern GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING = 0x889C :: GLenum
+
+pattern GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB = 0x889C :: GLenum
+
+pattern GL_SECONDARY_COLOR_ARRAY_EXT = 0x845E :: GLenum
+
+pattern GL_SECONDARY_COLOR_ARRAY_LENGTH_NV = 0x8F31 :: GLenum
+
+pattern GL_SECONDARY_COLOR_ARRAY_LIST_IBM = 103077 :: GLenum
+
+pattern GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM = 103087 :: GLenum
+
+pattern GL_SECONDARY_COLOR_ARRAY_POINTER = 0x845D :: GLenum
+
+pattern GL_SECONDARY_COLOR_ARRAY_POINTER_EXT = 0x845D :: GLenum
+
+pattern GL_SECONDARY_COLOR_ARRAY_SIZE = 0x845A :: GLenum
+
+pattern GL_SECONDARY_COLOR_ARRAY_SIZE_EXT = 0x845A :: GLenum
+
+pattern GL_SECONDARY_COLOR_ARRAY_STRIDE = 0x845C :: GLenum
+
+pattern GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT = 0x845C :: GLenum
+
+pattern GL_SECONDARY_COLOR_ARRAY_TYPE = 0x845B :: GLenum
+
+pattern GL_SECONDARY_COLOR_ARRAY_TYPE_EXT = 0x845B :: GLenum
+
+pattern GL_SECONDARY_COLOR_NV = 0x852D :: GLenum
+
+pattern GL_SECONDARY_INTERPOLATOR_ATI = 0x896D :: GLenum
+
+pattern GL_SELECT = 0x1C02 :: GLenum
+
+pattern GL_SELECTION_BUFFER_POINTER = 0x0DF3 :: GLenum
+
+pattern GL_SELECTION_BUFFER_SIZE = 0x0DF4 :: GLenum
+
+pattern GL_SEPARABLE_2D = 0x8012 :: GLenum
+
+pattern GL_SEPARABLE_2D_EXT = 0x8012 :: GLenum
+
+pattern GL_SEPARATE_ATTRIBS = 0x8C8D :: GLenum
+
+pattern GL_SEPARATE_ATTRIBS_EXT = 0x8C8D :: GLenum
+
+pattern GL_SEPARATE_ATTRIBS_NV = 0x8C8D :: GLenum
+
+pattern GL_SEPARATE_SPECULAR_COLOR = 0x81FA :: GLenum
+
+pattern GL_SEPARATE_SPECULAR_COLOR_EXT = 0x81FA :: GLenum
+
+pattern GL_SET = 0x150F :: GLenum
+
+pattern GL_SET_AMD = 0x874A :: GLenum
+
+pattern GL_SGX_BINARY_IMG = 0x8C0A :: GLenum
+
+pattern GL_SGX_PROGRAM_BINARY_IMG = 0x9130 :: GLenum
+
+pattern GL_SHADER = 0x82E1 :: GLenum
+
+pattern GL_SHADER_BINARY_DMP = 0x9250 :: GLenum
+
+pattern GL_SHADER_BINARY_FORMATS = 0x8DF8 :: GLenum
+
+pattern GL_SHADER_BINARY_FORMAT_SPIR_V = 0x9551 :: GLenum
+
+pattern GL_SHADER_BINARY_FORMAT_SPIR_V_ARB = 0x9551 :: GLenum
+
+pattern GL_SHADER_BINARY_VIV = 0x8FC4 :: GLenum
+
+pattern GL_SHADER_COMPILER = 0x8DFA :: GLenum
+
+pattern GL_SHADER_CONSISTENT_NV = 0x86DD :: GLenum
+
+pattern GL_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV = 0x00000010 :: GLbitfield
+
+pattern GL_SHADER_IMAGE_ACCESS_BARRIER_BIT = 0x00000020 :: GLbitfield
+
+pattern GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT = 0x00000020 :: GLbitfield
+
+pattern GL_SHADER_IMAGE_ATOMIC = 0x82A6 :: GLenum
+
+pattern GL_SHADER_IMAGE_LOAD = 0x82A4 :: GLenum
+
+pattern GL_SHADER_IMAGE_STORE = 0x82A5 :: GLenum
+
+pattern GL_SHADER_INCLUDE_ARB = 0x8DAE :: GLenum
+
+pattern GL_SHADER_KHR = 0x82E1 :: GLenum
+
+pattern GL_SHADER_OBJECT_ARB = 0x8B48 :: GLenum
+
+pattern GL_SHADER_OBJECT_EXT = 0x8B48 :: GLenum
+
+pattern GL_SHADER_OPERATION_NV = 0x86DF :: GLenum
+
+pattern GL_SHADER_PIXEL_LOCAL_STORAGE_EXT = 0x8F64 :: GLenum
+
+pattern GL_SHADER_SOURCE_LENGTH = 0x8B88 :: GLenum
+
+pattern GL_SHADER_STORAGE_BARRIER_BIT = 0x00002000 :: GLbitfield
+
+pattern GL_SHADER_STORAGE_BLOCK = 0x92E6 :: GLenum
+
+pattern GL_SHADER_STORAGE_BUFFER = 0x90D2 :: GLenum
+
+pattern GL_SHADER_STORAGE_BUFFER_BINDING = 0x90D3 :: GLenum
+
+pattern GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT = 0x90DF :: GLenum
+
+pattern GL_SHADER_STORAGE_BUFFER_SIZE = 0x90D5 :: GLenum
+
+pattern GL_SHADER_STORAGE_BUFFER_START = 0x90D4 :: GLenum
+
+pattern GL_SHADER_TYPE = 0x8B4F :: GLenum
+
+pattern GL_SHADE_MODEL = 0x0B54 :: GLenum
+
+pattern GL_SHADING_LANGUAGE_VERSION = 0x8B8C :: GLenum
+
+pattern GL_SHADING_LANGUAGE_VERSION_ARB = 0x8B8C :: GLenum
+
+pattern GL_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV = 0x956F :: GLenum
+
+pattern GL_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV = 0x9566 :: GLenum
+
+pattern GL_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV = 0x9567 :: GLenum
+
+pattern GL_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV = 0x9568 :: GLenum
+
+pattern GL_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV = 0x9569 :: GLenum
+
+pattern GL_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV = 0x956A :: GLenum
+
+pattern GL_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV = 0x956B :: GLenum
+
+pattern GL_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV = 0x9565 :: GLenum
+
+pattern GL_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV = 0x956C :: GLenum
+
+pattern GL_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV = 0x956D :: GLenum
+
+pattern GL_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV = 0x956E :: GLenum
+
+pattern GL_SHADING_RATE_IMAGE_BINDING_NV = 0x955B :: GLenum
+
+pattern GL_SHADING_RATE_IMAGE_NV = 0x9563 :: GLenum
+
+pattern GL_SHADING_RATE_IMAGE_PALETTE_SIZE_NV = 0x955E :: GLenum
+
+pattern GL_SHADING_RATE_IMAGE_TEXEL_HEIGHT_NV = 0x955D :: GLenum
+
+pattern GL_SHADING_RATE_IMAGE_TEXEL_WIDTH_NV = 0x955C :: GLenum
+
+pattern GL_SHADING_RATE_NO_INVOCATIONS_NV = 0x9564 :: GLenum
+
+pattern GL_SHADING_RATE_SAMPLE_ORDER_DEFAULT_NV = 0x95AE :: GLenum
+
+pattern GL_SHADING_RATE_SAMPLE_ORDER_PIXEL_MAJOR_NV = 0x95AF :: GLenum
+
+pattern GL_SHADING_RATE_SAMPLE_ORDER_SAMPLE_MAJOR_NV = 0x95B0 :: GLenum
+
+pattern GL_SHADOW_AMBIENT_SGIX = 0x80BF :: GLenum
+
+pattern GL_SHADOW_ATTENUATION_EXT = 0x834E :: GLenum
+
+pattern GL_SHARED_EDGE_NV = 0xC0 :: GLubyte
+
+pattern GL_SHARED_TEXTURE_PALETTE_EXT = 0x81FB :: GLenum
+
+pattern GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS = 0x80B0 :: GLenum
+
+pattern GL_SHININESS = 0x1601 :: GLenum
+
+pattern GL_SHORT = 0x1402 :: GLenum
+
+pattern GL_SIGNALED = 0x9119 :: GLenum
+
+pattern GL_SIGNALED_APPLE = 0x9119 :: GLenum
+
+pattern GL_SIGNED_ALPHA8_NV = 0x8706 :: GLenum
+
+pattern GL_SIGNED_ALPHA_NV = 0x8705 :: GLenum
+
+pattern GL_SIGNED_HILO16_NV = 0x86FA :: GLenum
+
+pattern GL_SIGNED_HILO8_NV = 0x885F :: GLenum
+
+pattern GL_SIGNED_HILO_NV = 0x86F9 :: GLenum
+
+pattern GL_SIGNED_IDENTITY_NV = 0x853C :: GLenum
+
+pattern GL_SIGNED_INTENSITY8_NV = 0x8708 :: GLenum
+
+pattern GL_SIGNED_INTENSITY_NV = 0x8707 :: GLenum
+
+pattern GL_SIGNED_LUMINANCE8_ALPHA8_NV = 0x8704 :: GLenum
+
+pattern GL_SIGNED_LUMINANCE8_NV = 0x8702 :: GLenum
+
+pattern GL_SIGNED_LUMINANCE_ALPHA_NV = 0x8703 :: GLenum
+
+pattern GL_SIGNED_LUMINANCE_NV = 0x8701 :: GLenum
+
+pattern GL_SIGNED_NEGATE_NV = 0x853D :: GLenum
+
+pattern GL_SIGNED_NORMALIZED = 0x8F9C :: GLenum
+
+pattern GL_SIGNED_RGB8_NV = 0x86FF :: GLenum
+
+pattern GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV = 0x870D :: GLenum
+
+pattern GL_SIGNED_RGBA8_NV = 0x86FC :: GLenum
+
+pattern GL_SIGNED_RGBA_NV = 0x86FB :: GLenum
+
+pattern GL_SIGNED_RGB_NV = 0x86FE :: GLenum
+
+pattern GL_SIGNED_RGB_UNSIGNED_ALPHA_NV = 0x870C :: GLenum
+
+pattern GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST = 0x82AC :: GLenum
+
+pattern GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE = 0x82AE :: GLenum
+
+pattern GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST = 0x82AD :: GLenum
+
+pattern GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE = 0x82AF :: GLenum
+
+pattern GL_SINGLE_COLOR = 0x81F9 :: GLenum
+
+pattern GL_SINGLE_COLOR_EXT = 0x81F9 :: GLenum
+
+pattern GL_SKIP_COMPONENTS1_NV = -6 :: GLenum
+
+pattern GL_SKIP_COMPONENTS2_NV = -5 :: GLenum
+
+pattern GL_SKIP_COMPONENTS3_NV = -4 :: GLenum
+
+pattern GL_SKIP_COMPONENTS4_NV = -3 :: GLenum
+
+pattern GL_SKIP_DECODE_EXT = 0x8A4A :: GLenum
+
+pattern GL_SKIP_MISSING_GLYPH_NV = 0x90A9 :: GLenum
+
+pattern GL_SLICE_ACCUM_SUN = 0x85CC :: GLenum
+
+pattern GL_SLIM10U_SGIX = 0x831E :: GLenum
+
+pattern GL_SLIM12S_SGIX = 0x831F :: GLenum
+
+pattern GL_SLIM8U_SGIX = 0x831D :: GLenum
+
+pattern GL_SLUMINANCE = 0x8C46 :: GLenum
+
+pattern GL_SLUMINANCE8 = 0x8C47 :: GLenum
+
+pattern GL_SLUMINANCE8_ALPHA8 = 0x8C45 :: GLenum
+
+pattern GL_SLUMINANCE8_ALPHA8_EXT = 0x8C45 :: GLenum
+
+pattern GL_SLUMINANCE8_ALPHA8_NV = 0x8C45 :: GLenum
+
+pattern GL_SLUMINANCE8_EXT = 0x8C47 :: GLenum
+
+pattern GL_SLUMINANCE8_NV = 0x8C47 :: GLenum
+
+pattern GL_SLUMINANCE_ALPHA = 0x8C44 :: GLenum
+
+pattern GL_SLUMINANCE_ALPHA_EXT = 0x8C44 :: GLenum
+
+pattern GL_SLUMINANCE_ALPHA_NV = 0x8C44 :: GLenum
+
+pattern GL_SLUMINANCE_EXT = 0x8C46 :: GLenum
+
+pattern GL_SLUMINANCE_NV = 0x8C46 :: GLenum
+
+pattern GL_SMALL_CCW_ARC_TO_NV = 0x12 :: GLubyte
+
+pattern GL_SMALL_CW_ARC_TO_NV = 0x14 :: GLubyte
+
+pattern GL_SMAPHS30_PROGRAM_BINARY_DMP = 0x9251 :: GLenum
+
+pattern GL_SMAPHS_PROGRAM_BINARY_DMP = 0x9252 :: GLenum
+
+pattern GL_SMOOTH = 0x1D01 :: GLenum
+
+pattern GL_SMOOTH_CUBIC_CURVE_TO_NV = 0x10 :: GLubyte
+
+pattern GL_SMOOTH_LINE_WIDTH_GRANULARITY = 0x0B23 :: GLenum
+
+pattern GL_SMOOTH_LINE_WIDTH_RANGE = 0x0B22 :: GLenum
+
+pattern GL_SMOOTH_POINT_SIZE_GRANULARITY = 0x0B13 :: GLenum
+
+pattern GL_SMOOTH_POINT_SIZE_RANGE = 0x0B12 :: GLenum
+
+pattern GL_SMOOTH_QUADRATIC_CURVE_TO_NV = 0x0E :: GLubyte
+
+pattern GL_SM_COUNT_NV = 0x933B :: GLenum
+
+pattern GL_SOFTLIGHT = 0x929C :: GLenum
+
+pattern GL_SOFTLIGHT_KHR = 0x929C :: GLenum
+
+pattern GL_SOFTLIGHT_NV = 0x929C :: GLenum
+
+pattern GL_SOURCE0_ALPHA = 0x8588 :: GLenum
+
+pattern GL_SOURCE0_ALPHA_ARB = 0x8588 :: GLenum
+
+pattern GL_SOURCE0_ALPHA_EXT = 0x8588 :: GLenum
+
+pattern GL_SOURCE0_RGB = 0x8580 :: GLenum
+
+pattern GL_SOURCE0_RGB_ARB = 0x8580 :: GLenum
+
+pattern GL_SOURCE0_RGB_EXT = 0x8580 :: GLenum
+
+pattern GL_SOURCE1_ALPHA = 0x8589 :: GLenum
+
+pattern GL_SOURCE1_ALPHA_ARB = 0x8589 :: GLenum
+
+pattern GL_SOURCE1_ALPHA_EXT = 0x8589 :: GLenum
+
+pattern GL_SOURCE1_RGB = 0x8581 :: GLenum
+
+pattern GL_SOURCE1_RGB_ARB = 0x8581 :: GLenum
+
+pattern GL_SOURCE1_RGB_EXT = 0x8581 :: GLenum
+
+pattern GL_SOURCE2_ALPHA = 0x858A :: GLenum
+
+pattern GL_SOURCE2_ALPHA_ARB = 0x858A :: GLenum
+
+pattern GL_SOURCE2_ALPHA_EXT = 0x858A :: GLenum
+
+pattern GL_SOURCE2_RGB = 0x8582 :: GLenum
+
+pattern GL_SOURCE2_RGB_ARB = 0x8582 :: GLenum
+
+pattern GL_SOURCE2_RGB_EXT = 0x8582 :: GLenum
+
+pattern GL_SOURCE3_ALPHA_NV = 0x858B :: GLenum
+
+pattern GL_SOURCE3_RGB_NV = 0x8583 :: GLenum
+
+pattern GL_SPARE0_NV = 0x852E :: GLenum
+
+pattern GL_SPARE0_PLUS_SECONDARY_COLOR_NV = 0x8532 :: GLenum
+
+pattern GL_SPARE1_NV = 0x852F :: GLenum
+
+pattern GL_SPARSE_BUFFER_PAGE_SIZE_ARB = 0x82F8 :: GLenum
+
+pattern GL_SPARSE_STORAGE_BIT_ARB = 0x0400 :: GLbitfield
+
+pattern GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB = 0x91A9 :: GLenum
+
+pattern GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_EXT = 0x91A9 :: GLenum
+
+pattern GL_SPECULAR = 0x1202 :: GLenum
+
+pattern GL_SPHERE_MAP = 0x2402 :: GLenum
+
+pattern GL_SPIR_V_BINARY = 0x9552 :: GLenum
+
+pattern GL_SPIR_V_BINARY_ARB = 0x9552 :: GLenum
+
+pattern GL_SPIR_V_EXTENSIONS = 0x9553 :: GLenum
+
+pattern GL_SPOT_CUTOFF = 0x1206 :: GLenum
+
+pattern GL_SPOT_DIRECTION = 0x1204 :: GLenum
+
+pattern GL_SPOT_EXPONENT = 0x1205 :: GLenum
+
+pattern GL_SPRITE_AXIAL_SGIX = 0x814C :: GLenum
+
+pattern GL_SPRITE_AXIS_SGIX = 0x814A :: GLenum
+
+pattern GL_SPRITE_EYE_ALIGNED_SGIX = 0x814E :: GLenum
+
+pattern GL_SPRITE_MODE_SGIX = 0x8149 :: GLenum
+
+pattern GL_SPRITE_OBJECT_ALIGNED_SGIX = 0x814D :: GLenum
+
+pattern GL_SPRITE_SGIX = 0x8148 :: GLenum
+
+pattern GL_SPRITE_TRANSLATION_SGIX = 0x814B :: GLenum
+
+pattern GL_SQUARE_NV = 0x90A3 :: GLenum
+
+pattern GL_SR8_EXT = 0x8FBD :: GLenum
+
+pattern GL_SRC0_ALPHA = 0x8588 :: GLenum
+
+pattern GL_SRC0_RGB = 0x8580 :: GLenum
+
+pattern GL_SRC1_ALPHA = 0x8589 :: GLenum
+
+pattern GL_SRC1_ALPHA_EXT = 0x8589 :: GLenum
+
+pattern GL_SRC1_COLOR = 0x88F9 :: GLenum
+
+pattern GL_SRC1_COLOR_EXT = 0x88F9 :: GLenum
+
+pattern GL_SRC1_RGB = 0x8581 :: GLenum
+
+pattern GL_SRC2_ALPHA = 0x858A :: GLenum
+
+pattern GL_SRC2_RGB = 0x8582 :: GLenum
+
+pattern GL_SRC_ALPHA = 0x0302 :: GLenum
+
+pattern GL_SRC_ALPHA_SATURATE = 0x0308 :: GLenum
+
+pattern GL_SRC_ALPHA_SATURATE_EXT = 0x0308 :: GLenum
+
+pattern GL_SRC_ATOP_NV = 0x928E :: GLenum
+
+pattern GL_SRC_COLOR = 0x0300 :: GLenum
+
+pattern GL_SRC_IN_NV = 0x928A :: GLenum
+
+pattern GL_SRC_NV = 0x9286 :: GLenum
+
+pattern GL_SRC_OUT_NV = 0x928C :: GLenum
+
+pattern GL_SRC_OVER_NV = 0x9288 :: GLenum
+
+pattern GL_SRG8_EXT = 0x8FBE :: GLenum
+
+pattern GL_SRGB = 0x8C40 :: GLenum
+
+pattern GL_SRGB8 = 0x8C41 :: GLenum
+
+pattern GL_SRGB8_ALPHA8 = 0x8C43 :: GLenum
+
+pattern GL_SRGB8_ALPHA8_EXT = 0x8C43 :: GLenum
+
+pattern GL_SRGB8_EXT = 0x8C41 :: GLenum
+
+pattern GL_SRGB8_NV = 0x8C41 :: GLenum
+
+pattern GL_SRGB_ALPHA = 0x8C42 :: GLenum
+
+pattern GL_SRGB_ALPHA_EXT = 0x8C42 :: GLenum
+
+pattern GL_SRGB_DECODE_ARB = 0x8299 :: GLenum
+
+pattern GL_SRGB_EXT = 0x8C40 :: GLenum
+
+pattern GL_SRGB_READ = 0x8297 :: GLenum
+
+pattern GL_SRGB_WRITE = 0x8298 :: GLenum
+
+pattern GL_STACK_OVERFLOW = 0x0503 :: GLenum
+
+pattern GL_STACK_OVERFLOW_KHR = 0x0503 :: GLenum
+
+pattern GL_STACK_UNDERFLOW = 0x0504 :: GLenum
+
+pattern GL_STACK_UNDERFLOW_KHR = 0x0504 :: GLenum
+
+pattern GL_STANDARD_FONT_FORMAT_NV = 0x936C :: GLenum
+
+pattern GL_STANDARD_FONT_NAME_NV = 0x9072 :: GLenum
+
+pattern GL_STATE_RESTORE = 0x8BDC :: GLenum
+
+pattern GL_STATIC_ATI = 0x8760 :: GLenum
+
+pattern GL_STATIC_COPY = 0x88E6 :: GLenum
+
+pattern GL_STATIC_COPY_ARB = 0x88E6 :: GLenum
+
+pattern GL_STATIC_DRAW = 0x88E4 :: GLenum
+
+pattern GL_STATIC_DRAW_ARB = 0x88E4 :: GLenum
+
+pattern GL_STATIC_READ = 0x88E5 :: GLenum
+
+pattern GL_STATIC_READ_ARB = 0x88E5 :: GLenum
+
+pattern GL_STATIC_VERTEX_ARRAY_IBM = 103061 :: GLenum
+
+pattern GL_STENCIL = 0x1802 :: GLenum
+
+pattern GL_STENCIL_ATTACHMENT = 0x8D20 :: GLenum
+
+pattern GL_STENCIL_ATTACHMENT_EXT = 0x8D20 :: GLenum
+
+pattern GL_STENCIL_ATTACHMENT_OES = 0x8D20 :: GLenum
+
+pattern GL_STENCIL_BACK_FAIL = 0x8801 :: GLenum
+
+pattern GL_STENCIL_BACK_FAIL_ATI = 0x8801 :: GLenum
+
+pattern GL_STENCIL_BACK_FUNC = 0x8800 :: GLenum
+
+pattern GL_STENCIL_BACK_FUNC_ATI = 0x8800 :: GLenum
+
+pattern GL_STENCIL_BACK_OP_VALUE_AMD = 0x874D :: GLenum
+
+pattern GL_STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802 :: GLenum
+
+pattern GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI = 0x8802 :: GLenum
+
+pattern GL_STENCIL_BACK_PASS_DEPTH_PASS = 0x8803 :: GLenum
+
+pattern GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI = 0x8803 :: GLenum
+
+pattern GL_STENCIL_BACK_REF = 0x8CA3 :: GLenum
+
+pattern GL_STENCIL_BACK_VALUE_MASK = 0x8CA4 :: GLenum
+
+pattern GL_STENCIL_BACK_WRITEMASK = 0x8CA5 :: GLenum
+
+pattern GL_STENCIL_BITS = 0x0D57 :: GLenum
+
+pattern GL_STENCIL_BUFFER_BIT = 0x00000400 :: GLbitfield
+
+pattern GL_STENCIL_BUFFER_BIT0_QCOM = 0x00010000 :: GLbitfield
+
+pattern GL_STENCIL_BUFFER_BIT1_QCOM = 0x00020000 :: GLbitfield
+
+pattern GL_STENCIL_BUFFER_BIT2_QCOM = 0x00040000 :: GLbitfield
+
+pattern GL_STENCIL_BUFFER_BIT3_QCOM = 0x00080000 :: GLbitfield
+
+pattern GL_STENCIL_BUFFER_BIT4_QCOM = 0x00100000 :: GLbitfield
+
+pattern GL_STENCIL_BUFFER_BIT5_QCOM = 0x00200000 :: GLbitfield
+
+pattern GL_STENCIL_BUFFER_BIT6_QCOM = 0x00400000 :: GLbitfield
+
+pattern GL_STENCIL_BUFFER_BIT7_QCOM = 0x00800000 :: GLbitfield
+
+pattern GL_STENCIL_CLEAR_TAG_VALUE_EXT = 0x88F3 :: GLenum
+
+pattern GL_STENCIL_CLEAR_VALUE = 0x0B91 :: GLenum
+
+pattern GL_STENCIL_COMPONENTS = 0x8285 :: GLenum
+
+pattern GL_STENCIL_EXT = 0x1802 :: GLenum
+
+pattern GL_STENCIL_FAIL = 0x0B94 :: GLenum
+
+pattern GL_STENCIL_FUNC = 0x0B92 :: GLenum
+
+pattern GL_STENCIL_INDEX = 0x1901 :: GLenum
+
+pattern GL_STENCIL_INDEX1 = 0x8D46 :: GLenum
+
+pattern GL_STENCIL_INDEX16 = 0x8D49 :: GLenum
+
+pattern GL_STENCIL_INDEX16_EXT = 0x8D49 :: GLenum
+
+pattern GL_STENCIL_INDEX1_EXT = 0x8D46 :: GLenum
+
+pattern GL_STENCIL_INDEX1_OES = 0x8D46 :: GLenum
+
+pattern GL_STENCIL_INDEX4 = 0x8D47 :: GLenum
+
+pattern GL_STENCIL_INDEX4_EXT = 0x8D47 :: GLenum
+
+pattern GL_STENCIL_INDEX4_OES = 0x8D47 :: GLenum
+
+pattern GL_STENCIL_INDEX8 = 0x8D48 :: GLenum
+
+pattern GL_STENCIL_INDEX8_EXT = 0x8D48 :: GLenum
+
+pattern GL_STENCIL_INDEX8_OES = 0x8D48 :: GLenum
+
+pattern GL_STENCIL_INDEX_OES = 0x1901 :: GLenum
+
+pattern GL_STENCIL_OP_VALUE_AMD = 0x874C :: GLenum
+
+pattern GL_STENCIL_PASS_DEPTH_FAIL = 0x0B95 :: GLenum
+
+pattern GL_STENCIL_PASS_DEPTH_PASS = 0x0B96 :: GLenum
+
+pattern GL_STENCIL_REF = 0x0B97 :: GLenum
+
+pattern GL_STENCIL_REF_COMMAND_NV = 0x000C :: GLenum
+
+pattern GL_STENCIL_RENDERABLE = 0x8288 :: GLenum
+
+pattern GL_STENCIL_SAMPLES_NV = 0x932E :: GLenum
+
+pattern GL_STENCIL_TAG_BITS_EXT = 0x88F2 :: GLenum
+
+pattern GL_STENCIL_TEST = 0x0B90 :: GLenum
+
+pattern GL_STENCIL_TEST_TWO_SIDE_EXT = 0x8910 :: GLenum
+
+pattern GL_STENCIL_VALUE_MASK = 0x0B93 :: GLenum
+
+pattern GL_STENCIL_WRITEMASK = 0x0B98 :: GLenum
+
+pattern GL_STEREO = 0x0C33 :: GLenum
+
+pattern GL_STORAGE_CACHED_APPLE = 0x85BE :: GLenum
+
+pattern GL_STORAGE_CLIENT_APPLE = 0x85B4 :: GLenum
+
+pattern GL_STORAGE_PRIVATE_APPLE = 0x85BD :: GLenum
+
+pattern GL_STORAGE_SHARED_APPLE = 0x85BF :: GLenum
+
+pattern GL_STREAM_COPY = 0x88E2 :: GLenum
+
+pattern GL_STREAM_COPY_ARB = 0x88E2 :: GLenum
+
+pattern GL_STREAM_DRAW = 0x88E0 :: GLenum
+
+pattern GL_STREAM_DRAW_ARB = 0x88E0 :: GLenum
+
+pattern GL_STREAM_RASTERIZATION_AMD = 0x91A0 :: GLenum
+
+pattern GL_STREAM_READ = 0x88E1 :: GLenum
+
+pattern GL_STREAM_READ_ARB = 0x88E1 :: GLenum
+
+pattern GL_STRICT_DEPTHFUNC_HINT_PGI = 0x1A216 :: GLenum
+
+pattern GL_STRICT_LIGHTING_HINT_PGI = 0x1A217 :: GLenum
+
+pattern GL_STRICT_SCISSOR_HINT_PGI = 0x1A218 :: GLenum
+
+pattern GL_SUBGROUP_FEATURE_ARITHMETIC_BIT_KHR = 0x00000004 :: GLbitfield
+
+pattern GL_SUBGROUP_FEATURE_BALLOT_BIT_KHR = 0x00000008 :: GLbitfield
+
+pattern GL_SUBGROUP_FEATURE_BASIC_BIT_KHR = 0x00000001 :: GLbitfield
+
+pattern GL_SUBGROUP_FEATURE_CLUSTERED_BIT_KHR = 0x00000040 :: GLbitfield
+
+pattern GL_SUBGROUP_FEATURE_PARTITIONED_BIT_NV = 0x00000100 :: GLbitfield
+
+pattern GL_SUBGROUP_FEATURE_QUAD_BIT_KHR = 0x00000080 :: GLbitfield
+
+pattern GL_SUBGROUP_FEATURE_SHUFFLE_BIT_KHR = 0x00000010 :: GLbitfield
+
+pattern GL_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT_KHR = 0x00000020 :: GLbitfield
+
+pattern GL_SUBGROUP_FEATURE_VOTE_BIT_KHR = 0x00000002 :: GLbitfield
+
+pattern GL_SUBGROUP_QUAD_ALL_STAGES_KHR = 0x9535 :: GLenum
+
+pattern GL_SUBGROUP_SIZE_KHR = 0x9532 :: GLenum
+
+pattern GL_SUBGROUP_SUPPORTED_FEATURES_KHR = 0x9534 :: GLenum
+
+pattern GL_SUBGROUP_SUPPORTED_STAGES_KHR = 0x9533 :: GLenum
+
+pattern GL_SUBPIXEL_BITS = 0x0D50 :: GLenum
+
+pattern GL_SUBPIXEL_PRECISION_BIAS_X_BITS_NV = 0x9347 :: GLenum
+
+pattern GL_SUBPIXEL_PRECISION_BIAS_Y_BITS_NV = 0x9348 :: GLenum
+
+pattern GL_SUBSAMPLE_DISTANCE_AMD = 0x883F :: GLenum
+
+pattern GL_SUBTRACT = 0x84E7 :: GLenum
+
+pattern GL_SUBTRACT_ARB = 0x84E7 :: GLenum
+
+pattern GL_SUB_ATI = 0x8965 :: GLenum
+
+pattern GL_SUCCESS_NV = 0x902F :: GLenum
+
+pattern GL_SUPERSAMPLE_SCALE_X_NV = 0x9372 :: GLenum
+
+pattern GL_SUPERSAMPLE_SCALE_Y_NV = 0x9373 :: GLenum
+
+pattern GL_SUPPORTED_MULTISAMPLE_MODES_AMD = 0x91B7 :: GLenum
+
+pattern GL_SURFACE_MAPPED_NV = 0x8700 :: GLenum
+
+pattern GL_SURFACE_REGISTERED_NV = 0x86FD :: GLenum
+
+pattern GL_SURFACE_STATE_NV = 0x86EB :: GLenum
+
+pattern GL_SWIZZLE_STQ_ATI = 0x8977 :: GLenum
+
+pattern GL_SWIZZLE_STQ_DQ_ATI = 0x8979 :: GLenum
+
+pattern GL_SWIZZLE_STRQ_ATI = 0x897A :: GLenum
+
+pattern GL_SWIZZLE_STRQ_DQ_ATI = 0x897B :: GLenum
+
+pattern GL_SWIZZLE_STR_ATI = 0x8976 :: GLenum
+
+pattern GL_SWIZZLE_STR_DR_ATI = 0x8978 :: GLenum
+
+pattern GL_SYNC_CL_EVENT_ARB = 0x8240 :: GLenum
+
+pattern GL_SYNC_CL_EVENT_COMPLETE_ARB = 0x8241 :: GLenum
+
+pattern GL_SYNC_CONDITION = 0x9113 :: GLenum
+
+pattern GL_SYNC_CONDITION_APPLE = 0x9113 :: GLenum
+
+pattern GL_SYNC_FENCE = 0x9116 :: GLenum
+
+pattern GL_SYNC_FENCE_APPLE = 0x9116 :: GLenum
+
+pattern GL_SYNC_FLAGS = 0x9115 :: GLenum
+
+pattern GL_SYNC_FLAGS_APPLE = 0x9115 :: GLenum
+
+pattern GL_SYNC_FLUSH_COMMANDS_BIT = 0x00000001 :: GLbitfield
+
+pattern GL_SYNC_FLUSH_COMMANDS_BIT_APPLE = 0x00000001 :: GLbitfield
+
+pattern GL_SYNC_GPU_COMMANDS_COMPLETE = 0x9117 :: GLenum
+
+pattern GL_SYNC_GPU_COMMANDS_COMPLETE_APPLE = 0x9117 :: GLenum
+
+pattern GL_SYNC_OBJECT_APPLE = 0x8A53 :: GLenum
+
+pattern GL_SYNC_STATUS = 0x9114 :: GLenum
+
+pattern GL_SYNC_STATUS_APPLE = 0x9114 :: GLenum
+
+pattern GL_SYNC_X11_FENCE_EXT = 0x90E1 :: GLenum
+
+pattern GL_SYSTEM_FONT_NAME_NV = 0x9073 :: GLenum
+
+pattern GL_T = 0x2001 :: GLenum
+
+pattern GL_T2F_C3F_V3F = 0x2A2A :: GLenum
+
+pattern GL_T2F_C4F_N3F_V3F = 0x2A2C :: GLenum
+
+pattern GL_T2F_C4UB_V3F = 0x2A29 :: GLenum
+
+pattern GL_T2F_IUI_N3F_V2F_EXT = 0x81B3 :: GLenum
+
+pattern GL_T2F_IUI_N3F_V3F_EXT = 0x81B4 :: GLenum
+
+pattern GL_T2F_IUI_V2F_EXT = 0x81B1 :: GLenum
+
+pattern GL_T2F_IUI_V3F_EXT = 0x81B2 :: GLenum
+
+pattern GL_T2F_N3F_V3F = 0x2A2B :: GLenum
+
+pattern GL_T2F_V3F = 0x2A27 :: GLenum
+
+pattern GL_T4F_C4F_N3F_V4F = 0x2A2D :: GLenum
+
+pattern GL_T4F_V4F = 0x2A28 :: GLenum
+
+pattern GL_TABLE_TOO_LARGE = 0x8031 :: GLenum
+
+pattern GL_TABLE_TOO_LARGE_EXT = 0x8031 :: GLenum
+
+pattern GL_TANGENT_ARRAY_EXT = 0x8439 :: GLenum
+
+pattern GL_TANGENT_ARRAY_POINTER_EXT = 0x8442 :: GLenum
+
+pattern GL_TANGENT_ARRAY_STRIDE_EXT = 0x843F :: GLenum
+
+pattern GL_TANGENT_ARRAY_TYPE_EXT = 0x843E :: GLenum
+
+pattern GL_TASK_SHADER_BIT_NV = 0x00000080 :: GLbitfield
+
+pattern GL_TASK_SHADER_NV = 0x955A :: GLenum
+
+pattern GL_TASK_SUBROUTINE_NV = 0x957D :: GLenum
+
+pattern GL_TASK_SUBROUTINE_UNIFORM_NV = 0x957F :: GLenum
+
+pattern GL_TASK_WORK_GROUP_SIZE_NV = 0x953F :: GLenum
+
+pattern GL_TERMINATE_SEQUENCE_COMMAND_NV = 0x0000 :: GLenum
+
+pattern GL_TESSELLATION_FACTOR_AMD = 0x9005 :: GLenum
+
+pattern GL_TESSELLATION_MODE_AMD = 0x9004 :: GLenum
+
+pattern GL_TESS_CONTROL_OUTPUT_VERTICES = 0x8E75 :: GLenum
+
+pattern GL_TESS_CONTROL_OUTPUT_VERTICES_EXT = 0x8E75 :: GLenum
+
+pattern GL_TESS_CONTROL_OUTPUT_VERTICES_OES = 0x8E75 :: GLenum
+
+pattern GL_TESS_CONTROL_PROGRAM_NV = 0x891E :: GLenum
+
+pattern GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV = 0x8C74 :: GLenum
+
+pattern GL_TESS_CONTROL_SHADER = 0x8E88 :: GLenum
+
+pattern GL_TESS_CONTROL_SHADER_BIT = 0x00000008 :: GLbitfield
+
+pattern GL_TESS_CONTROL_SHADER_BIT_EXT = 0x00000008 :: GLbitfield
+
+pattern GL_TESS_CONTROL_SHADER_BIT_OES = 0x00000008 :: GLbitfield
+
+pattern GL_TESS_CONTROL_SHADER_EXT = 0x8E88 :: GLenum
+
+pattern GL_TESS_CONTROL_SHADER_OES = 0x8E88 :: GLenum
+
+pattern GL_TESS_CONTROL_SHADER_PATCHES = 0x82F1 :: GLenum
+
+pattern GL_TESS_CONTROL_SHADER_PATCHES_ARB = 0x82F1 :: GLenum
+
+pattern GL_TESS_CONTROL_SUBROUTINE = 0x92E9 :: GLenum
+
+pattern GL_TESS_CONTROL_SUBROUTINE_UNIFORM = 0x92EF :: GLenum
+
+pattern GL_TESS_CONTROL_TEXTURE = 0x829C :: GLenum
+
+pattern GL_TESS_EVALUATION_PROGRAM_NV = 0x891F :: GLenum
+
+pattern GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV = 0x8C75 :: GLenum
+
+pattern GL_TESS_EVALUATION_SHADER = 0x8E87 :: GLenum
+
+pattern GL_TESS_EVALUATION_SHADER_BIT = 0x00000010 :: GLbitfield
+
+pattern GL_TESS_EVALUATION_SHADER_BIT_EXT = 0x00000010 :: GLbitfield
+
+pattern GL_TESS_EVALUATION_SHADER_BIT_OES = 0x00000010 :: GLbitfield
+
+pattern GL_TESS_EVALUATION_SHADER_EXT = 0x8E87 :: GLenum
+
+pattern GL_TESS_EVALUATION_SHADER_INVOCATIONS = 0x82F2 :: GLenum
+
+pattern GL_TESS_EVALUATION_SHADER_INVOCATIONS_ARB = 0x82F2 :: GLenum
+
+pattern GL_TESS_EVALUATION_SHADER_OES = 0x8E87 :: GLenum
+
+pattern GL_TESS_EVALUATION_SUBROUTINE = 0x92EA :: GLenum
+
+pattern GL_TESS_EVALUATION_SUBROUTINE_UNIFORM = 0x92F0 :: GLenum
+
+pattern GL_TESS_EVALUATION_TEXTURE = 0x829D :: GLenum
+
+pattern GL_TESS_GEN_MODE = 0x8E76 :: GLenum
+
+pattern GL_TESS_GEN_MODE_EXT = 0x8E76 :: GLenum
+
+pattern GL_TESS_GEN_MODE_OES = 0x8E76 :: GLenum
+
+pattern GL_TESS_GEN_POINT_MODE = 0x8E79 :: GLenum
+
+pattern GL_TESS_GEN_POINT_MODE_EXT = 0x8E79 :: GLenum
+
+pattern GL_TESS_GEN_POINT_MODE_OES = 0x8E79 :: GLenum
+
+pattern GL_TESS_GEN_SPACING = 0x8E77 :: GLenum
+
+pattern GL_TESS_GEN_SPACING_EXT = 0x8E77 :: GLenum
+
+pattern GL_TESS_GEN_SPACING_OES = 0x8E77 :: GLenum
+
+pattern GL_TESS_GEN_VERTEX_ORDER = 0x8E78 :: GLenum
+
+pattern GL_TESS_GEN_VERTEX_ORDER_EXT = 0x8E78 :: GLenum
+
+pattern GL_TESS_GEN_VERTEX_ORDER_OES = 0x8E78 :: GLenum
+
+pattern GL_TEXCOORD1_BIT_PGI = 0x10000000 :: GLbitfield
+
+pattern GL_TEXCOORD2_BIT_PGI = 0x20000000 :: GLbitfield
+
+pattern GL_TEXCOORD3_BIT_PGI = 0x40000000 :: GLbitfield
+
+pattern GL_TEXCOORD4_BIT_PGI = 0x80000000 :: GLbitfield
+
+pattern GL_TEXTURE = 0x1702 :: GLenum
+
+pattern GL_TEXTURE0 = 0x84C0 :: GLenum
+
+pattern GL_TEXTURE0_ARB = 0x84C0 :: GLenum
+
+pattern GL_TEXTURE1 = 0x84C1 :: GLenum
+
+pattern GL_TEXTURE10 = 0x84CA :: GLenum
+
+pattern GL_TEXTURE10_ARB = 0x84CA :: GLenum
+
+pattern GL_TEXTURE11 = 0x84CB :: GLenum
+
+pattern GL_TEXTURE11_ARB = 0x84CB :: GLenum
+
+pattern GL_TEXTURE12 = 0x84CC :: GLenum
+
+pattern GL_TEXTURE12_ARB = 0x84CC :: GLenum
+
+pattern GL_TEXTURE13 = 0x84CD :: GLenum
+
+pattern GL_TEXTURE13_ARB = 0x84CD :: GLenum
+
+pattern GL_TEXTURE14 = 0x84CE :: GLenum
+
+pattern GL_TEXTURE14_ARB = 0x84CE :: GLenum
+
+pattern GL_TEXTURE15 = 0x84CF :: GLenum
+
+pattern GL_TEXTURE15_ARB = 0x84CF :: GLenum
+
+pattern GL_TEXTURE16 = 0x84D0 :: GLenum
+
+pattern GL_TEXTURE16_ARB = 0x84D0 :: GLenum
+
+pattern GL_TEXTURE17 = 0x84D1 :: GLenum
+
+pattern GL_TEXTURE17_ARB = 0x84D1 :: GLenum
+
+pattern GL_TEXTURE18 = 0x84D2 :: GLenum
+
+pattern GL_TEXTURE18_ARB = 0x84D2 :: GLenum
+
+pattern GL_TEXTURE19 = 0x84D3 :: GLenum
+
+pattern GL_TEXTURE19_ARB = 0x84D3 :: GLenum
+
+pattern GL_TEXTURE1_ARB = 0x84C1 :: GLenum
+
+pattern GL_TEXTURE2 = 0x84C2 :: GLenum
+
+pattern GL_TEXTURE20 = 0x84D4 :: GLenum
+
+pattern GL_TEXTURE20_ARB = 0x84D4 :: GLenum
+
+pattern GL_TEXTURE21 = 0x84D5 :: GLenum
+
+pattern GL_TEXTURE21_ARB = 0x84D5 :: GLenum
+
+pattern GL_TEXTURE22 = 0x84D6 :: GLenum
+
+pattern GL_TEXTURE22_ARB = 0x84D6 :: GLenum
+
+pattern GL_TEXTURE23 = 0x84D7 :: GLenum
+
+pattern GL_TEXTURE23_ARB = 0x84D7 :: GLenum
+
+pattern GL_TEXTURE24 = 0x84D8 :: GLenum
+
+pattern GL_TEXTURE24_ARB = 0x84D8 :: GLenum
+
+pattern GL_TEXTURE25 = 0x84D9 :: GLenum
+
+pattern GL_TEXTURE25_ARB = 0x84D9 :: GLenum
+
+pattern GL_TEXTURE26 = 0x84DA :: GLenum
+
+pattern GL_TEXTURE26_ARB = 0x84DA :: GLenum
+
+pattern GL_TEXTURE27 = 0x84DB :: GLenum
+
+pattern GL_TEXTURE27_ARB = 0x84DB :: GLenum
+
+pattern GL_TEXTURE28 = 0x84DC :: GLenum
+
+pattern GL_TEXTURE28_ARB = 0x84DC :: GLenum
+
+pattern GL_TEXTURE29 = 0x84DD :: GLenum
+
+pattern GL_TEXTURE29_ARB = 0x84DD :: GLenum
+
+pattern GL_TEXTURE2_ARB = 0x84C2 :: GLenum
+
+pattern GL_TEXTURE3 = 0x84C3 :: GLenum
+
+pattern GL_TEXTURE30 = 0x84DE :: GLenum
+
+pattern GL_TEXTURE30_ARB = 0x84DE :: GLenum
+
+pattern GL_TEXTURE31 = 0x84DF :: GLenum
+
+pattern GL_TEXTURE31_ARB = 0x84DF :: GLenum
+
+pattern GL_TEXTURE3_ARB = 0x84C3 :: GLenum
+
+pattern GL_TEXTURE4 = 0x84C4 :: GLenum
+
+pattern GL_TEXTURE4_ARB = 0x84C4 :: GLenum
+
+pattern GL_TEXTURE5 = 0x84C5 :: GLenum
+
+pattern GL_TEXTURE5_ARB = 0x84C5 :: GLenum
+
+pattern GL_TEXTURE6 = 0x84C6 :: GLenum
+
+pattern GL_TEXTURE6_ARB = 0x84C6 :: GLenum
+
+pattern GL_TEXTURE7 = 0x84C7 :: GLenum
+
+pattern GL_TEXTURE7_ARB = 0x84C7 :: GLenum
+
+pattern GL_TEXTURE8 = 0x84C8 :: GLenum
+
+pattern GL_TEXTURE8_ARB = 0x84C8 :: GLenum
+
+pattern GL_TEXTURE9 = 0x84C9 :: GLenum
+
+pattern GL_TEXTURE9_ARB = 0x84C9 :: GLenum
+
+pattern GL_TEXTURE_1D = 0x0DE0 :: GLenum
+
+pattern GL_TEXTURE_1D_ARRAY = 0x8C18 :: GLenum
+
+pattern GL_TEXTURE_1D_ARRAY_EXT = 0x8C18 :: GLenum
+
+pattern GL_TEXTURE_1D_BINDING_EXT = 0x8068 :: GLenum
+
+pattern GL_TEXTURE_1D_STACK_BINDING_MESAX = 0x875D :: GLenum
+
+pattern GL_TEXTURE_1D_STACK_MESAX = 0x8759 :: GLenum
+
+pattern GL_TEXTURE_2D = 0x0DE1 :: GLenum
+
+pattern GL_TEXTURE_2D_ARRAY = 0x8C1A :: GLenum
+
+pattern GL_TEXTURE_2D_ARRAY_EXT = 0x8C1A :: GLenum
+
+pattern GL_TEXTURE_2D_BINDING_EXT = 0x8069 :: GLenum
+
+pattern GL_TEXTURE_2D_MULTISAMPLE = 0x9100 :: GLenum
+
+pattern GL_TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9102 :: GLenum
+
+pattern GL_TEXTURE_2D_MULTISAMPLE_ARRAY_OES = 0x9102 :: GLenum
+
+pattern GL_TEXTURE_2D_STACK_BINDING_MESAX = 0x875E :: GLenum
+
+pattern GL_TEXTURE_2D_STACK_MESAX = 0x875A :: GLenum
+
+pattern GL_TEXTURE_3D = 0x806F :: GLenum
+
+pattern GL_TEXTURE_3D_BINDING_EXT = 0x806A :: GLenum
+
+pattern GL_TEXTURE_3D_BINDING_OES = 0x806A :: GLenum
+
+pattern GL_TEXTURE_3D_EXT = 0x806F :: GLenum
+
+pattern GL_TEXTURE_3D_OES = 0x806F :: GLenum
+
+pattern GL_TEXTURE_4DSIZE_SGIS = 0x8136 :: GLenum
+
+pattern GL_TEXTURE_4D_BINDING_SGIS = 0x814F :: GLenum
+
+pattern GL_TEXTURE_4D_SGIS = 0x8134 :: GLenum
+
+pattern GL_TEXTURE_ALPHA_MODULATE_IMG = 0x8C06 :: GLenum
+
+pattern GL_TEXTURE_ALPHA_SIZE = 0x805F :: GLenum
+
+pattern GL_TEXTURE_ALPHA_SIZE_EXT = 0x805F :: GLenum
+
+pattern GL_TEXTURE_ALPHA_TYPE = 0x8C13 :: GLenum
+
+pattern GL_TEXTURE_ALPHA_TYPE_ARB = 0x8C13 :: GLenum
+
+pattern GL_TEXTURE_APPLICATION_MODE_EXT = 0x834F :: GLenum
+
+pattern GL_TEXTURE_ASTC_DECODE_PRECISION_EXT = 0x8F69 :: GLenum
+
+pattern GL_TEXTURE_BASE_LEVEL = 0x813C :: GLenum
+
+pattern GL_TEXTURE_BASE_LEVEL_SGIS = 0x813C :: GLenum
+
+pattern GL_TEXTURE_BINDING_1D = 0x8068 :: GLenum
+
+pattern GL_TEXTURE_BINDING_1D_ARRAY = 0x8C1C :: GLenum
+
+pattern GL_TEXTURE_BINDING_1D_ARRAY_EXT = 0x8C1C :: GLenum
+
+pattern GL_TEXTURE_BINDING_2D = 0x8069 :: GLenum
+
+pattern GL_TEXTURE_BINDING_2D_ARRAY = 0x8C1D :: GLenum
+
+pattern GL_TEXTURE_BINDING_2D_ARRAY_EXT = 0x8C1D :: GLenum
+
+pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE = 0x9104 :: GLenum
+
+pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY = 0x9105 :: GLenum
+
+pattern GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY_OES = 0x9105 :: GLenum
+
+pattern GL_TEXTURE_BINDING_3D = 0x806A :: GLenum
+
+pattern GL_TEXTURE_BINDING_3D_OES = 0x806A :: GLenum
+
+pattern GL_TEXTURE_BINDING_BUFFER = 0x8C2C :: GLenum
+
+pattern GL_TEXTURE_BINDING_BUFFER_ARB = 0x8C2C :: GLenum
+
+pattern GL_TEXTURE_BINDING_BUFFER_EXT = 0x8C2C :: GLenum
+
+pattern GL_TEXTURE_BINDING_BUFFER_OES = 0x8C2C :: GLenum
+
+pattern GL_TEXTURE_BINDING_CUBE_MAP = 0x8514 :: GLenum
+
+pattern GL_TEXTURE_BINDING_CUBE_MAP_ARB = 0x8514 :: GLenum
+
+pattern GL_TEXTURE_BINDING_CUBE_MAP_ARRAY = 0x900A :: GLenum
+
+pattern GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB = 0x900A :: GLenum
+
+pattern GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_EXT = 0x900A :: GLenum
+
+pattern GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_OES = 0x900A :: GLenum
+
+pattern GL_TEXTURE_BINDING_CUBE_MAP_EXT = 0x8514 :: GLenum
+
+pattern GL_TEXTURE_BINDING_CUBE_MAP_OES = 0x8514 :: GLenum
+
+pattern GL_TEXTURE_BINDING_EXTERNAL_OES = 0x8D67 :: GLenum
+
+pattern GL_TEXTURE_BINDING_RECTANGLE = 0x84F6 :: GLenum
+
+pattern GL_TEXTURE_BINDING_RECTANGLE_ARB = 0x84F6 :: GLenum
+
+pattern GL_TEXTURE_BINDING_RECTANGLE_NV = 0x84F6 :: GLenum
+
+pattern GL_TEXTURE_BINDING_RENDERBUFFER_NV = 0x8E53 :: GLenum
+
+pattern GL_TEXTURE_BIT = 0x00040000 :: GLbitfield
+
+pattern GL_TEXTURE_BLUE_SIZE = 0x805E :: GLenum
+
+pattern GL_TEXTURE_BLUE_SIZE_EXT = 0x805E :: GLenum
+
+pattern GL_TEXTURE_BLUE_TYPE = 0x8C12 :: GLenum
+
+pattern GL_TEXTURE_BLUE_TYPE_ARB = 0x8C12 :: GLenum
+
+pattern GL_TEXTURE_BORDER = 0x1005 :: GLenum
+
+pattern GL_TEXTURE_BORDER_COLOR = 0x1004 :: GLenum
+
+pattern GL_TEXTURE_BORDER_COLOR_EXT = 0x1004 :: GLenum
+
+pattern GL_TEXTURE_BORDER_COLOR_NV = 0x1004 :: GLenum
+
+pattern GL_TEXTURE_BORDER_COLOR_OES = 0x1004 :: GLenum
+
+pattern GL_TEXTURE_BORDER_VALUES_NV = 0x871A :: GLenum
+
+pattern GL_TEXTURE_BUFFER = 0x8C2A :: GLenum
+
+pattern GL_TEXTURE_BUFFER_ARB = 0x8C2A :: GLenum
+
+pattern GL_TEXTURE_BUFFER_BINDING = 0x8C2A :: GLenum
+
+pattern GL_TEXTURE_BUFFER_BINDING_EXT = 0x8C2A :: GLenum
+
+pattern GL_TEXTURE_BUFFER_BINDING_OES = 0x8C2A :: GLenum
+
+pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING = 0x8C2D :: GLenum
+
+pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB = 0x8C2D :: GLenum
+
+pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT = 0x8C2D :: GLenum
+
+pattern GL_TEXTURE_BUFFER_DATA_STORE_BINDING_OES = 0x8C2D :: GLenum
+
+pattern GL_TEXTURE_BUFFER_EXT = 0x8C2A :: GLenum
+
+pattern GL_TEXTURE_BUFFER_FORMAT_ARB = 0x8C2E :: GLenum
+
+pattern GL_TEXTURE_BUFFER_FORMAT_EXT = 0x8C2E :: GLenum
+
+pattern GL_TEXTURE_BUFFER_OES = 0x8C2A :: GLenum
+
+pattern GL_TEXTURE_BUFFER_OFFSET = 0x919D :: GLenum
+
+pattern GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT = 0x919F :: GLenum
+
+pattern GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT_EXT = 0x919F :: GLenum
+
+pattern GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT_OES = 0x919F :: GLenum
+
+pattern GL_TEXTURE_BUFFER_OFFSET_EXT = 0x919D :: GLenum
+
+pattern GL_TEXTURE_BUFFER_OFFSET_OES = 0x919D :: GLenum
+
+pattern GL_TEXTURE_BUFFER_SIZE = 0x919E :: GLenum
+
+pattern GL_TEXTURE_BUFFER_SIZE_EXT = 0x919E :: GLenum
+
+pattern GL_TEXTURE_BUFFER_SIZE_OES = 0x919E :: GLenum
+
+pattern GL_TEXTURE_CLIPMAP_CENTER_SGIX = 0x8171 :: GLenum
+
+pattern GL_TEXTURE_CLIPMAP_DEPTH_SGIX = 0x8176 :: GLenum
+
+pattern GL_TEXTURE_CLIPMAP_FRAME_SGIX = 0x8172 :: GLenum
+
+pattern GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX = 0x8175 :: GLenum
+
+pattern GL_TEXTURE_CLIPMAP_OFFSET_SGIX = 0x8173 :: GLenum
+
+pattern GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX = 0x8174 :: GLenum
+
+pattern GL_TEXTURE_COLOR_SAMPLES_NV = 0x9046 :: GLenum
+
+pattern GL_TEXTURE_COLOR_TABLE_SGI = 0x80BC :: GLenum
+
+pattern GL_TEXTURE_COLOR_WRITEMASK_SGIS = 0x81EF :: GLenum
+
+pattern GL_TEXTURE_COMPARE_FAIL_VALUE_ARB = 0x80BF :: GLenum
+
+pattern GL_TEXTURE_COMPARE_FUNC = 0x884D :: GLenum
+
+pattern GL_TEXTURE_COMPARE_FUNC_ARB = 0x884D :: GLenum
+
+pattern GL_TEXTURE_COMPARE_FUNC_EXT = 0x884D :: GLenum
+
+pattern GL_TEXTURE_COMPARE_MODE = 0x884C :: GLenum
+
+pattern GL_TEXTURE_COMPARE_MODE_ARB = 0x884C :: GLenum
+
+pattern GL_TEXTURE_COMPARE_MODE_EXT = 0x884C :: GLenum
+
+pattern GL_TEXTURE_COMPARE_OPERATOR_SGIX = 0x819B :: GLenum
+
+pattern GL_TEXTURE_COMPARE_SGIX = 0x819A :: GLenum
+
+pattern GL_TEXTURE_COMPONENTS = 0x1003 :: GLenum
+
+pattern GL_TEXTURE_COMPRESSED = 0x86A1 :: GLenum
+
+pattern GL_TEXTURE_COMPRESSED_ARB = 0x86A1 :: GLenum
+
+pattern GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT = 0x82B2 :: GLenum
+
+pattern GL_TEXTURE_COMPRESSED_BLOCK_SIZE = 0x82B3 :: GLenum
+
+pattern GL_TEXTURE_COMPRESSED_BLOCK_WIDTH = 0x82B1 :: GLenum
+
+pattern GL_TEXTURE_COMPRESSED_IMAGE_SIZE = 0x86A0 :: GLenum
+
+pattern GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB = 0x86A0 :: GLenum
+
+pattern GL_TEXTURE_COMPRESSION_HINT = 0x84EF :: GLenum
+
+pattern GL_TEXTURE_COMPRESSION_HINT_ARB = 0x84EF :: GLenum
+
+pattern GL_TEXTURE_CONSTANT_DATA_SUNX = 0x81D6 :: GLenum
+
+pattern GL_TEXTURE_COORD_ARRAY = 0x8078 :: GLenum
+
+pattern GL_TEXTURE_COORD_ARRAY_ADDRESS_NV = 0x8F25 :: GLenum
+
+pattern GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING = 0x889A :: GLenum
+
+pattern GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB = 0x889A :: GLenum
+
+pattern GL_TEXTURE_COORD_ARRAY_COUNT_EXT = 0x808B :: GLenum
+
+pattern GL_TEXTURE_COORD_ARRAY_EXT = 0x8078 :: GLenum
+
+pattern GL_TEXTURE_COORD_ARRAY_LENGTH_NV = 0x8F2F :: GLenum
+
+pattern GL_TEXTURE_COORD_ARRAY_LIST_IBM = 103074 :: GLenum
+
+pattern GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM = 103084 :: GLenum
+
+pattern GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F8 :: GLenum
+
+pattern GL_TEXTURE_COORD_ARRAY_POINTER = 0x8092 :: GLenum
+
+pattern GL_TEXTURE_COORD_ARRAY_POINTER_EXT = 0x8092 :: GLenum
+
+pattern GL_TEXTURE_COORD_ARRAY_SIZE = 0x8088 :: GLenum
+
+pattern GL_TEXTURE_COORD_ARRAY_SIZE_EXT = 0x8088 :: GLenum
+
+pattern GL_TEXTURE_COORD_ARRAY_STRIDE = 0x808A :: GLenum
+
+pattern GL_TEXTURE_COORD_ARRAY_STRIDE_EXT = 0x808A :: GLenum
+
+pattern GL_TEXTURE_COORD_ARRAY_TYPE = 0x8089 :: GLenum
+
+pattern GL_TEXTURE_COORD_ARRAY_TYPE_EXT = 0x8089 :: GLenum
+
+pattern GL_TEXTURE_COORD_NV = 0x8C79 :: GLenum
+
+pattern GL_TEXTURE_COVERAGE_SAMPLES_NV = 0x9045 :: GLenum
+
+pattern GL_TEXTURE_CROP_RECT_OES = 0x8B9D :: GLenum
+
+pattern GL_TEXTURE_CUBE_MAP = 0x8513 :: GLenum
+
+pattern GL_TEXTURE_CUBE_MAP_ARB = 0x8513 :: GLenum
+
+pattern GL_TEXTURE_CUBE_MAP_ARRAY = 0x9009 :: GLenum
+
+pattern GL_TEXTURE_CUBE_MAP_ARRAY_ARB = 0x9009 :: GLenum
+
+pattern GL_TEXTURE_CUBE_MAP_ARRAY_EXT = 0x9009 :: GLenum
+
+pattern GL_TEXTURE_CUBE_MAP_ARRAY_OES = 0x9009 :: GLenum
+
+pattern GL_TEXTURE_CUBE_MAP_EXT = 0x8513 :: GLenum
+
+pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516 :: GLenum
+
+pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB = 0x8516 :: GLenum
+
+pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT = 0x8516 :: GLenum
+
+pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES = 0x8516 :: GLenum
+
+pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518 :: GLenum
+
+pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB = 0x8518 :: GLenum
+
+pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT = 0x8518 :: GLenum
+
+pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES = 0x8518 :: GLenum
+
+pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A :: GLenum
+
+pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB = 0x851A :: GLenum
+
+pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT = 0x851A :: GLenum
+
+pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES = 0x851A :: GLenum
+
+pattern GL_TEXTURE_CUBE_MAP_OES = 0x8513 :: GLenum
+
+pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515 :: GLenum
+
+pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB = 0x8515 :: GLenum
+
+pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT = 0x8515 :: GLenum
+
+pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES = 0x8515 :: GLenum
+
+pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517 :: GLenum
+
+pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB = 0x8517 :: GLenum
+
+pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT = 0x8517 :: GLenum
+
+pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES = 0x8517 :: GLenum
+
+pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519 :: GLenum
+
+pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB = 0x8519 :: GLenum
+
+pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT = 0x8519 :: GLenum
+
+pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES = 0x8519 :: GLenum
+
+pattern GL_TEXTURE_CUBE_MAP_SEAMLESS = 0x884F :: GLenum
+
+pattern GL_TEXTURE_DEFORMATION_BIT_SGIX = 0x00000001 :: GLbitfield
+
+pattern GL_TEXTURE_DEFORMATION_SGIX = 0x8195 :: GLenum
+
+pattern GL_TEXTURE_DEPTH = 0x8071 :: GLenum
+
+pattern GL_TEXTURE_DEPTH_EXT = 0x8071 :: GLenum
+
+pattern GL_TEXTURE_DEPTH_QCOM = 0x8BD4 :: GLenum
+
+pattern GL_TEXTURE_DEPTH_SIZE = 0x884A :: GLenum
+
+pattern GL_TEXTURE_DEPTH_SIZE_ARB = 0x884A :: GLenum
+
+pattern GL_TEXTURE_DEPTH_TYPE = 0x8C16 :: GLenum
+
+pattern GL_TEXTURE_DEPTH_TYPE_ARB = 0x8C16 :: GLenum
+
+pattern GL_TEXTURE_DS_SIZE_NV = 0x871D :: GLenum
+
+pattern GL_TEXTURE_DT_SIZE_NV = 0x871E :: GLenum
+
+pattern GL_TEXTURE_ENV = 0x2300 :: GLenum
+
+pattern GL_TEXTURE_ENV_BIAS_SGIX = 0x80BE :: GLenum
+
+pattern GL_TEXTURE_ENV_COLOR = 0x2201 :: GLenum
+
+pattern GL_TEXTURE_ENV_MODE = 0x2200 :: GLenum
+
+pattern GL_TEXTURE_EXTERNAL_OES = 0x8D65 :: GLenum
+
+pattern GL_TEXTURE_FETCH_BARRIER_BIT = 0x00000008 :: GLbitfield
+
+pattern GL_TEXTURE_FETCH_BARRIER_BIT_EXT = 0x00000008 :: GLbitfield
+
+pattern GL_TEXTURE_FILTER4_SIZE_SGIS = 0x8147 :: GLenum
+
+pattern GL_TEXTURE_FILTER_CONTROL = 0x8500 :: GLenum
+
+pattern GL_TEXTURE_FILTER_CONTROL_EXT = 0x8500 :: GLenum
+
+pattern GL_TEXTURE_FIXED_SAMPLE_LOCATIONS = 0x9107 :: GLenum
+
+pattern GL_TEXTURE_FLOAT_COMPONENTS_NV = 0x888C :: GLenum
+
+pattern GL_TEXTURE_FORMAT_QCOM = 0x8BD6 :: GLenum
+
+pattern GL_TEXTURE_FORMAT_SRGB_OVERRIDE_EXT = 0x8FBF :: GLenum
+
+pattern GL_TEXTURE_FOVEATED_FEATURE_BITS_QCOM = 0x8BFB :: GLenum
+
+pattern GL_TEXTURE_FOVEATED_FEATURE_QUERY_QCOM = 0x8BFD :: GLenum
+
+pattern GL_TEXTURE_FOVEATED_MIN_PIXEL_DENSITY_QCOM = 0x8BFC :: GLenum
+
+pattern GL_TEXTURE_FOVEATED_NUM_FOCAL_POINTS_QUERY_QCOM = 0x8BFE :: GLenum
+
+pattern GL_TEXTURE_FREE_MEMORY_ATI = 0x87FC :: GLenum
+
+pattern GL_TEXTURE_GATHER = 0x82A2 :: GLenum
+
+pattern GL_TEXTURE_GATHER_SHADOW = 0x82A3 :: GLenum
+
+pattern GL_TEXTURE_GEN_MODE = 0x2500 :: GLenum
+
+pattern GL_TEXTURE_GEN_MODE_OES = 0x2500 :: GLenum
+
+pattern GL_TEXTURE_GEN_Q = 0x0C63 :: GLenum
+
+pattern GL_TEXTURE_GEN_R = 0x0C62 :: GLenum
+
+pattern GL_TEXTURE_GEN_S = 0x0C60 :: GLenum
+
+pattern GL_TEXTURE_GEN_STR_OES = 0x8D60 :: GLenum
+
+pattern GL_TEXTURE_GEN_T = 0x0C61 :: GLenum
+
+pattern GL_TEXTURE_GEQUAL_R_SGIX = 0x819D :: GLenum
+
+pattern GL_TEXTURE_GREEN_SIZE = 0x805D :: GLenum
+
+pattern GL_TEXTURE_GREEN_SIZE_EXT = 0x805D :: GLenum
+
+pattern GL_TEXTURE_GREEN_TYPE = 0x8C11 :: GLenum
+
+pattern GL_TEXTURE_GREEN_TYPE_ARB = 0x8C11 :: GLenum
+
+pattern GL_TEXTURE_HEIGHT = 0x1001 :: GLenum
+
+pattern GL_TEXTURE_HEIGHT_QCOM = 0x8BD3 :: GLenum
+
+pattern GL_TEXTURE_HI_SIZE_NV = 0x871B :: GLenum
+
+pattern GL_TEXTURE_IMAGE_FORMAT = 0x828F :: GLenum
+
+pattern GL_TEXTURE_IMAGE_TYPE = 0x8290 :: GLenum
+
+pattern GL_TEXTURE_IMAGE_VALID_QCOM = 0x8BD8 :: GLenum
+
+pattern GL_TEXTURE_IMMUTABLE_FORMAT = 0x912F :: GLenum
+
+pattern GL_TEXTURE_IMMUTABLE_FORMAT_EXT = 0x912F :: GLenum
+
+pattern GL_TEXTURE_IMMUTABLE_LEVELS = 0x82DF :: GLenum
+
+pattern GL_TEXTURE_INDEX_SIZE_EXT = 0x80ED :: GLenum
+
+pattern GL_TEXTURE_INTENSITY_SIZE = 0x8061 :: GLenum
+
+pattern GL_TEXTURE_INTENSITY_SIZE_EXT = 0x8061 :: GLenum
+
+pattern GL_TEXTURE_INTENSITY_TYPE = 0x8C15 :: GLenum
+
+pattern GL_TEXTURE_INTENSITY_TYPE_ARB = 0x8C15 :: GLenum
+
+pattern GL_TEXTURE_INTERNAL_FORMAT = 0x1003 :: GLenum
+
+pattern GL_TEXTURE_INTERNAL_FORMAT_QCOM = 0x8BD5 :: GLenum
+
+pattern GL_TEXTURE_LEQUAL_R_SGIX = 0x819C :: GLenum
+
+pattern GL_TEXTURE_LIGHTING_MODE_HP = 0x8167 :: GLenum
+
+pattern GL_TEXTURE_LIGHT_EXT = 0x8350 :: GLenum
+
+pattern GL_TEXTURE_LOD_BIAS = 0x8501 :: GLenum
+
+pattern GL_TEXTURE_LOD_BIAS_EXT = 0x8501 :: GLenum
+
+pattern GL_TEXTURE_LOD_BIAS_R_SGIX = 0x8190 :: GLenum
+
+pattern GL_TEXTURE_LOD_BIAS_S_SGIX = 0x818E :: GLenum
+
+pattern GL_TEXTURE_LOD_BIAS_T_SGIX = 0x818F :: GLenum
+
+pattern GL_TEXTURE_LO_SIZE_NV = 0x871C :: GLenum
+
+pattern GL_TEXTURE_LUMINANCE_SIZE = 0x8060 :: GLenum
+
+pattern GL_TEXTURE_LUMINANCE_SIZE_EXT = 0x8060 :: GLenum
+
+pattern GL_TEXTURE_LUMINANCE_TYPE = 0x8C14 :: GLenum
+
+pattern GL_TEXTURE_LUMINANCE_TYPE_ARB = 0x8C14 :: GLenum
+
+pattern GL_TEXTURE_MAG_FILTER = 0x2800 :: GLenum
+
+pattern GL_TEXTURE_MAG_SIZE_NV = 0x871F :: GLenum
+
+pattern GL_TEXTURE_MATERIAL_FACE_EXT = 0x8351 :: GLenum
+
+pattern GL_TEXTURE_MATERIAL_PARAMETER_EXT = 0x8352 :: GLenum
+
+pattern GL_TEXTURE_MATRIX = 0x0BA8 :: GLenum
+
+pattern GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES = 0x898F :: GLenum
+
+pattern GL_TEXTURE_MAX_ANISOTROPY = 0x84FE :: GLenum
+
+pattern GL_TEXTURE_MAX_ANISOTROPY_EXT = 0x84FE :: GLenum
+
+pattern GL_TEXTURE_MAX_CLAMP_R_SGIX = 0x836B :: GLenum
+
+pattern GL_TEXTURE_MAX_CLAMP_S_SGIX = 0x8369 :: GLenum
+
+pattern GL_TEXTURE_MAX_CLAMP_T_SGIX = 0x836A :: GLenum
+
+pattern GL_TEXTURE_MAX_LEVEL = 0x813D :: GLenum
+
+pattern GL_TEXTURE_MAX_LEVEL_APPLE = 0x813D :: GLenum
+
+pattern GL_TEXTURE_MAX_LEVEL_SGIS = 0x813D :: GLenum
+
+pattern GL_TEXTURE_MAX_LOD = 0x813B :: GLenum
+
+pattern GL_TEXTURE_MAX_LOD_SGIS = 0x813B :: GLenum
+
+pattern GL_TEXTURE_MEMORY_LAYOUT_INTEL = 0x83FF :: GLenum
+
+pattern GL_TEXTURE_MIN_FILTER = 0x2801 :: GLenum
+
+pattern GL_TEXTURE_MIN_LOD = 0x813A :: GLenum
+
+pattern GL_TEXTURE_MIN_LOD_SGIS = 0x813A :: GLenum
+
+pattern GL_TEXTURE_MULTI_BUFFER_HINT_SGIX = 0x812E :: GLenum
+
+pattern GL_TEXTURE_NORMAL_EXT = 0x85AF :: GLenum
+
+pattern GL_TEXTURE_NUM_LEVELS_QCOM = 0x8BD9 :: GLenum
+
+pattern GL_TEXTURE_OBJECT_VALID_QCOM = 0x8BDB :: GLenum
+
+pattern GL_TEXTURE_POST_SPECULAR_HP = 0x8168 :: GLenum
+
+pattern GL_TEXTURE_PRE_SPECULAR_HP = 0x8169 :: GLenum
+
+pattern GL_TEXTURE_PRIORITY = 0x8066 :: GLenum
+
+pattern GL_TEXTURE_PRIORITY_EXT = 0x8066 :: GLenum
+
+pattern GL_TEXTURE_PROTECTED_EXT = 0x8BFA :: GLenum
+
+pattern GL_TEXTURE_RANGE_LENGTH_APPLE = 0x85B7 :: GLenum
+
+pattern GL_TEXTURE_RANGE_POINTER_APPLE = 0x85B8 :: GLenum
+
+pattern GL_TEXTURE_RECTANGLE = 0x84F5 :: GLenum
+
+pattern GL_TEXTURE_RECTANGLE_ARB = 0x84F5 :: GLenum
+
+pattern GL_TEXTURE_RECTANGLE_NV = 0x84F5 :: GLenum
+
+pattern GL_TEXTURE_REDUCTION_MODE_ARB = 0x9366 :: GLenum
+
+pattern GL_TEXTURE_REDUCTION_MODE_EXT = 0x9366 :: GLenum
+
+pattern GL_TEXTURE_RED_SIZE = 0x805C :: GLenum
+
+pattern GL_TEXTURE_RED_SIZE_EXT = 0x805C :: GLenum
+
+pattern GL_TEXTURE_RED_TYPE = 0x8C10 :: GLenum
+
+pattern GL_TEXTURE_RED_TYPE_ARB = 0x8C10 :: GLenum
+
+pattern GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV = 0x8E54 :: GLenum
+
+pattern GL_TEXTURE_RENDERBUFFER_NV = 0x8E55 :: GLenum
+
+pattern GL_TEXTURE_RESIDENT = 0x8067 :: GLenum
+
+pattern GL_TEXTURE_RESIDENT_EXT = 0x8067 :: GLenum
+
+pattern GL_TEXTURE_SAMPLES = 0x9106 :: GLenum
+
+pattern GL_TEXTURE_SAMPLES_IMG = 0x9136 :: GLenum
+
+pattern GL_TEXTURE_SHADER_NV = 0x86DE :: GLenum
+
+pattern GL_TEXTURE_SHADOW = 0x82A1 :: GLenum
+
+pattern GL_TEXTURE_SHARED_SIZE = 0x8C3F :: GLenum
+
+pattern GL_TEXTURE_SHARED_SIZE_EXT = 0x8C3F :: GLenum
+
+pattern GL_TEXTURE_SPARSE_ARB = 0x91A6 :: GLenum
+
+pattern GL_TEXTURE_SPARSE_EXT = 0x91A6 :: GLenum
+
+pattern GL_TEXTURE_SRGB_DECODE_EXT = 0x8A48 :: GLenum
+
+pattern GL_TEXTURE_STACK_DEPTH = 0x0BA5 :: GLenum
+
+pattern GL_TEXTURE_STENCIL_SIZE = 0x88F1 :: GLenum
+
+pattern GL_TEXTURE_STENCIL_SIZE_EXT = 0x88F1 :: GLenum
+
+pattern GL_TEXTURE_STORAGE_HINT_APPLE = 0x85BC :: GLenum
+
+pattern GL_TEXTURE_STORAGE_SPARSE_BIT_AMD = 0x00000001 :: GLbitfield
+
+pattern GL_TEXTURE_SWIZZLE_A = 0x8E45 :: GLenum
+
+pattern GL_TEXTURE_SWIZZLE_A_EXT = 0x8E45 :: GLenum
+
+pattern GL_TEXTURE_SWIZZLE_B = 0x8E44 :: GLenum
+
+pattern GL_TEXTURE_SWIZZLE_B_EXT = 0x8E44 :: GLenum
+
+pattern GL_TEXTURE_SWIZZLE_G = 0x8E43 :: GLenum
+
+pattern GL_TEXTURE_SWIZZLE_G_EXT = 0x8E43 :: GLenum
+
+pattern GL_TEXTURE_SWIZZLE_R = 0x8E42 :: GLenum
+
+pattern GL_TEXTURE_SWIZZLE_RGBA = 0x8E46 :: GLenum
+
+pattern GL_TEXTURE_SWIZZLE_RGBA_EXT = 0x8E46 :: GLenum
+
+pattern GL_TEXTURE_SWIZZLE_R_EXT = 0x8E42 :: GLenum
+
+pattern GL_TEXTURE_TARGET = 0x1006 :: GLenum
+
+pattern GL_TEXTURE_TARGET_QCOM = 0x8BDA :: GLenum
+
+pattern GL_TEXTURE_TILING_EXT = 0x9580 :: GLenum
+
+pattern GL_TEXTURE_TOO_LARGE_EXT = 0x8065 :: GLenum
+
+pattern GL_TEXTURE_TYPE_QCOM = 0x8BD7 :: GLenum
+
+pattern GL_TEXTURE_UNSIGNED_REMAP_MODE_NV = 0x888F :: GLenum
+
+pattern GL_TEXTURE_UPDATE_BARRIER_BIT = 0x00000100 :: GLbitfield
+
+pattern GL_TEXTURE_UPDATE_BARRIER_BIT_EXT = 0x00000100 :: GLbitfield
+
+pattern GL_TEXTURE_USAGE_ANGLE = 0x93A2 :: GLenum
+
+pattern GL_TEXTURE_VIEW = 0x82B5 :: GLenum
+
+pattern GL_TEXTURE_VIEW_MIN_LAYER = 0x82DD :: GLenum
+
+pattern GL_TEXTURE_VIEW_MIN_LAYER_EXT = 0x82DD :: GLenum
+
+pattern GL_TEXTURE_VIEW_MIN_LAYER_OES = 0x82DD :: GLenum
+
+pattern GL_TEXTURE_VIEW_MIN_LEVEL = 0x82DB :: GLenum
+
+pattern GL_TEXTURE_VIEW_MIN_LEVEL_EXT = 0x82DB :: GLenum
+
+pattern GL_TEXTURE_VIEW_MIN_LEVEL_OES = 0x82DB :: GLenum
+
+pattern GL_TEXTURE_VIEW_NUM_LAYERS = 0x82DE :: GLenum
+
+pattern GL_TEXTURE_VIEW_NUM_LAYERS_EXT = 0x82DE :: GLenum
+
+pattern GL_TEXTURE_VIEW_NUM_LAYERS_OES = 0x82DE :: GLenum
+
+pattern GL_TEXTURE_VIEW_NUM_LEVELS = 0x82DC :: GLenum
+
+pattern GL_TEXTURE_VIEW_NUM_LEVELS_EXT = 0x82DC :: GLenum
+
+pattern GL_TEXTURE_VIEW_NUM_LEVELS_OES = 0x82DC :: GLenum
+
+pattern GL_TEXTURE_WIDTH = 0x1000 :: GLenum
+
+pattern GL_TEXTURE_WIDTH_QCOM = 0x8BD2 :: GLenum
+
+pattern GL_TEXTURE_WRAP_Q_SGIS = 0x8137 :: GLenum
+
+pattern GL_TEXTURE_WRAP_R = 0x8072 :: GLenum
+
+pattern GL_TEXTURE_WRAP_R_EXT = 0x8072 :: GLenum
+
+pattern GL_TEXTURE_WRAP_R_OES = 0x8072 :: GLenum
+
+pattern GL_TEXTURE_WRAP_S = 0x2802 :: GLenum
+
+pattern GL_TEXTURE_WRAP_T = 0x2803 :: GLenum
+
+pattern GL_TEXT_FRAGMENT_SHADER_ATI = 0x8200 :: GLenum
+
+pattern GL_TILE_RASTER_ORDER_FIXED_MESA = 0x8BB8 :: GLenum
+
+pattern GL_TILE_RASTER_ORDER_INCREASING_X_MESA = 0x8BB9 :: GLenum
+
+pattern GL_TILE_RASTER_ORDER_INCREASING_Y_MESA = 0x8BBA :: GLenum
+
+pattern GL_TILING_TYPES_EXT = 0x9583 :: GLenum
+
+pattern GL_TIMEOUT_EXPIRED = 0x911B :: GLenum
+
+pattern GL_TIMEOUT_EXPIRED_APPLE = 0x911B :: GLenum
+
+pattern GL_TIMEOUT_IGNORED = 0xFFFFFFFFFFFFFFFF :: GLuint64
+
+pattern GL_TIMEOUT_IGNORED_APPLE = 0xFFFFFFFFFFFFFFFF :: GLuint64
+
+pattern GL_TIMESTAMP = 0x8E28 :: GLenum
+
+pattern GL_TIMESTAMP_EXT = 0x8E28 :: GLenum
+
+pattern GL_TIME_ELAPSED = 0x88BF :: GLenum
+
+pattern GL_TIME_ELAPSED_EXT = 0x88BF :: GLenum
+
+pattern GL_TOP_LEVEL_ARRAY_SIZE = 0x930C :: GLenum
+
+pattern GL_TOP_LEVEL_ARRAY_STRIDE = 0x930D :: GLenum
+
+pattern GL_TRACE_ALL_BITS_MESA = 0xFFFF :: GLbitfield
+
+pattern GL_TRACE_ARRAYS_BIT_MESA = 0x0004 :: GLbitfield
+
+pattern GL_TRACE_ERRORS_BIT_MESA = 0x0020 :: GLbitfield
+
+pattern GL_TRACE_MASK_MESA = 0x8755 :: GLenum
+
+pattern GL_TRACE_NAME_MESA = 0x8756 :: GLenum
+
+pattern GL_TRACE_OPERATIONS_BIT_MESA = 0x0001 :: GLbitfield
+
+pattern GL_TRACE_PIXELS_BIT_MESA = 0x0010 :: GLbitfield
+
+pattern GL_TRACE_PRIMITIVES_BIT_MESA = 0x0002 :: GLbitfield
+
+pattern GL_TRACE_TEXTURES_BIT_MESA = 0x0008 :: GLbitfield
+
+pattern GL_TRACK_MATRIX_NV = 0x8648 :: GLenum
+
+pattern GL_TRACK_MATRIX_TRANSFORM_NV = 0x8649 :: GLenum
+
+pattern GL_TRANSFORM_BIT = 0x00001000 :: GLbitfield
+
+pattern GL_TRANSFORM_FEEDBACK = 0x8E22 :: GLenum
+
+pattern GL_TRANSFORM_FEEDBACK_ACTIVE = 0x8E24 :: GLenum
+
+pattern GL_TRANSFORM_FEEDBACK_ATTRIBS_NV = 0x8C7E :: GLenum
+
+pattern GL_TRANSFORM_FEEDBACK_BARRIER_BIT = 0x00000800 :: GLbitfield
+
+pattern GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT = 0x00000800 :: GLbitfield
+
+pattern GL_TRANSFORM_FEEDBACK_BINDING = 0x8E25 :: GLenum
+
+pattern GL_TRANSFORM_FEEDBACK_BINDING_NV = 0x8E25 :: GLenum
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER = 0x8C8E :: GLenum
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE = 0x8E24 :: GLenum
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV = 0x8E24 :: GLenum
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_BINDING = 0x8C8F :: GLenum
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT = 0x8C8F :: GLenum
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV = 0x8C8F :: GLenum
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_EXT = 0x8C8E :: GLenum
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_INDEX = 0x934B :: GLenum
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_MODE = 0x8C7F :: GLenum
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT = 0x8C7F :: GLenum
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV = 0x8C7F :: GLenum
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_NV = 0x8C8E :: GLenum
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED = 0x8E23 :: GLenum
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV = 0x8E23 :: GLenum
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_SIZE = 0x8C85 :: GLenum
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT = 0x8C85 :: GLenum
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV = 0x8C85 :: GLenum
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_START = 0x8C84 :: GLenum
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT = 0x8C84 :: GLenum
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_START_NV = 0x8C84 :: GLenum
+
+pattern GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE = 0x934C :: GLenum
+
+pattern GL_TRANSFORM_FEEDBACK_NV = 0x8E22 :: GLenum
+
+pattern GL_TRANSFORM_FEEDBACK_OVERFLOW = 0x82EC :: GLenum
+
+pattern GL_TRANSFORM_FEEDBACK_OVERFLOW_ARB = 0x82EC :: GLenum
+
+pattern GL_TRANSFORM_FEEDBACK_PAUSED = 0x8E23 :: GLenum
+
+pattern GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = 0x8C88 :: GLenum
+
+pattern GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT = 0x8C88 :: GLenum
+
+pattern GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV = 0x8C88 :: GLenum
+
+pattern GL_TRANSFORM_FEEDBACK_RECORD_NV = 0x8C86 :: GLenum
+
+pattern GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW = 0x82ED :: GLenum
+
+pattern GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW_ARB = 0x82ED :: GLenum
+
+pattern GL_TRANSFORM_FEEDBACK_VARYING = 0x92F4 :: GLenum
+
+pattern GL_TRANSFORM_FEEDBACK_VARYINGS = 0x8C83 :: GLenum
+
+pattern GL_TRANSFORM_FEEDBACK_VARYINGS_EXT = 0x8C83 :: GLenum
+
+pattern GL_TRANSFORM_FEEDBACK_VARYINGS_NV = 0x8C83 :: GLenum
+
+pattern GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH = 0x8C76 :: GLenum
+
+pattern GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT = 0x8C76 :: GLenum
+
+pattern GL_TRANSFORM_HINT_APPLE = 0x85B1 :: GLenum
+
+pattern GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE = 0x93A0 :: GLenum
+
+pattern GL_TRANSLATE_2D_NV = 0x9090 :: GLenum
+
+pattern GL_TRANSLATE_3D_NV = 0x9091 :: GLenum
+
+pattern GL_TRANSLATE_X_NV = 0x908E :: GLenum
+
+pattern GL_TRANSLATE_Y_NV = 0x908F :: GLenum
+
+pattern GL_TRANSPOSE_AFFINE_2D_NV = 0x9096 :: GLenum
+
+pattern GL_TRANSPOSE_AFFINE_3D_NV = 0x9098 :: GLenum
+
+pattern GL_TRANSPOSE_COLOR_MATRIX = 0x84E6 :: GLenum
+
+pattern GL_TRANSPOSE_COLOR_MATRIX_ARB = 0x84E6 :: GLenum
+
+pattern GL_TRANSPOSE_CURRENT_MATRIX_ARB = 0x88B7 :: GLenum
+
+pattern GL_TRANSPOSE_MODELVIEW_MATRIX = 0x84E3 :: GLenum
+
+pattern GL_TRANSPOSE_MODELVIEW_MATRIX_ARB = 0x84E3 :: GLenum
+
+pattern GL_TRANSPOSE_NV = 0x862C :: GLenum
+
+pattern GL_TRANSPOSE_PROGRAM_MATRIX_EXT = 0x8E2E :: GLenum
+
+pattern GL_TRANSPOSE_PROJECTION_MATRIX = 0x84E4 :: GLenum
+
+pattern GL_TRANSPOSE_PROJECTION_MATRIX_ARB = 0x84E4 :: GLenum
+
+pattern GL_TRANSPOSE_TEXTURE_MATRIX = 0x84E5 :: GLenum
+
+pattern GL_TRANSPOSE_TEXTURE_MATRIX_ARB = 0x84E5 :: GLenum
+
+pattern GL_TRIANGLES = 0x0004 :: GLenum
+
+pattern GL_TRIANGLES_ADJACENCY = 0x000C :: GLenum
+
+pattern GL_TRIANGLES_ADJACENCY_ARB = 0x000C :: GLenum
+
+pattern GL_TRIANGLES_ADJACENCY_EXT = 0x000C :: GLenum
+
+pattern GL_TRIANGLES_ADJACENCY_OES = 0x000C :: GLenum
+
+pattern GL_TRIANGLE_FAN = 0x0006 :: GLenum
+
+pattern GL_TRIANGLE_LIST_SUN = 0x81D7 :: GLenum
+
+pattern GL_TRIANGLE_MESH_SUN = 0x8615 :: GLenum
+
+pattern GL_TRIANGLE_STRIP = 0x0005 :: GLenum
+
+pattern GL_TRIANGLE_STRIP_ADJACENCY = 0x000D :: GLenum
+
+pattern GL_TRIANGLE_STRIP_ADJACENCY_ARB = 0x000D :: GLenum
+
+pattern GL_TRIANGLE_STRIP_ADJACENCY_EXT = 0x000D :: GLenum
+
+pattern GL_TRIANGLE_STRIP_ADJACENCY_OES = 0x000D :: GLenum
+
+pattern GL_TRIANGULAR_NV = 0x90A5 :: GLenum
+
+pattern GL_TRUE = 1 :: GLboolean
+
+pattern GL_TYPE = 0x92FA :: GLenum
+
+pattern GL_UNCORRELATED_NV = 0x9282 :: GLenum
+
+pattern GL_UNDEFINED_APPLE = 0x8A1C :: GLenum
+
+pattern GL_UNDEFINED_VERTEX = 0x8260 :: GLenum
+
+pattern GL_UNDEFINED_VERTEX_EXT = 0x8260 :: GLenum
+
+pattern GL_UNDEFINED_VERTEX_OES = 0x8260 :: GLenum
+
+pattern GL_UNIFORM = 0x92E1 :: GLenum
+
+pattern GL_UNIFORM_ADDRESS_COMMAND_NV = 0x000A :: GLenum
+
+pattern GL_UNIFORM_ARRAY_STRIDE = 0x8A3C :: GLenum
+
+pattern GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX = 0x92DA :: GLenum
+
+pattern GL_UNIFORM_BARRIER_BIT = 0x00000004 :: GLbitfield
+
+pattern GL_UNIFORM_BARRIER_BIT_EXT = 0x00000004 :: GLbitfield
+
+pattern GL_UNIFORM_BLOCK = 0x92E2 :: GLenum
+
+pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS = 0x8A42 :: GLenum
+
+pattern GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43 :: GLenum
+
+pattern GL_UNIFORM_BLOCK_BINDING = 0x8A3F :: GLenum
+
+pattern GL_UNIFORM_BLOCK_DATA_SIZE = 0x8A40 :: GLenum
+
+pattern GL_UNIFORM_BLOCK_INDEX = 0x8A3A :: GLenum
+
+pattern GL_UNIFORM_BLOCK_NAME_LENGTH = 0x8A41 :: GLenum
+
+pattern GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER = 0x90EC :: GLenum
+
+pattern GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46 :: GLenum
+
+pattern GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER = 0x8A45 :: GLenum
+
+pattern GL_UNIFORM_BLOCK_REFERENCED_BY_MESH_SHADER_NV = 0x959C :: GLenum
+
+pattern GL_UNIFORM_BLOCK_REFERENCED_BY_TASK_SHADER_NV = 0x959D :: GLenum
+
+pattern GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER = 0x84F0 :: GLenum
+
+pattern GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x84F1 :: GLenum
+
+pattern GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44 :: GLenum
+
+pattern GL_UNIFORM_BUFFER = 0x8A11 :: GLenum
+
+pattern GL_UNIFORM_BUFFER_ADDRESS_NV = 0x936F :: GLenum
+
+pattern GL_UNIFORM_BUFFER_BINDING = 0x8A28 :: GLenum
+
+pattern GL_UNIFORM_BUFFER_BINDING_EXT = 0x8DEF :: GLenum
+
+pattern GL_UNIFORM_BUFFER_EXT = 0x8DEE :: GLenum
+
+pattern GL_UNIFORM_BUFFER_LENGTH_NV = 0x9370 :: GLenum
+
+pattern GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT = 0x8A34 :: GLenum
+
+pattern GL_UNIFORM_BUFFER_SIZE = 0x8A2A :: GLenum
+
+pattern GL_UNIFORM_BUFFER_START = 0x8A29 :: GLenum
+
+pattern GL_UNIFORM_BUFFER_UNIFIED_NV = 0x936E :: GLenum
+
+pattern GL_UNIFORM_IS_ROW_MAJOR = 0x8A3E :: GLenum
+
+pattern GL_UNIFORM_MATRIX_STRIDE = 0x8A3D :: GLenum
+
+pattern GL_UNIFORM_NAME_LENGTH = 0x8A39 :: GLenum
+
+pattern GL_UNIFORM_OFFSET = 0x8A3B :: GLenum
+
+pattern GL_UNIFORM_SIZE = 0x8A38 :: GLenum
+
+pattern GL_UNIFORM_TYPE = 0x8A37 :: GLenum
+
+pattern GL_UNKNOWN_CONTEXT_RESET = 0x8255 :: GLenum
+
+pattern GL_UNKNOWN_CONTEXT_RESET_ARB = 0x8255 :: GLenum
+
+pattern GL_UNKNOWN_CONTEXT_RESET_EXT = 0x8255 :: GLenum
+
+pattern GL_UNKNOWN_CONTEXT_RESET_KHR = 0x8255 :: GLenum
+
+pattern GL_UNPACK_ALIGNMENT = 0x0CF5 :: GLenum
+
+pattern GL_UNPACK_CLIENT_STORAGE_APPLE = 0x85B2 :: GLenum
+
+pattern GL_UNPACK_CMYK_HINT_EXT = 0x800F :: GLenum
+
+pattern GL_UNPACK_COLORSPACE_CONVERSION_WEBGL = 0x9243 :: GLenum
+
+pattern GL_UNPACK_COMPRESSED_BLOCK_DEPTH = 0x9129 :: GLenum
+
+pattern GL_UNPACK_COMPRESSED_BLOCK_HEIGHT = 0x9128 :: GLenum
+
+pattern GL_UNPACK_COMPRESSED_BLOCK_SIZE = 0x912A :: GLenum
+
+pattern GL_UNPACK_COMPRESSED_BLOCK_WIDTH = 0x9127 :: GLenum
+
+pattern GL_UNPACK_COMPRESSED_SIZE_SGIX = 0x831A :: GLenum
+
+pattern GL_UNPACK_CONSTANT_DATA_SUNX = 0x81D5 :: GLenum
+
+pattern GL_UNPACK_FLIP_Y_WEBGL = 0x9240 :: GLenum
+
+pattern GL_UNPACK_IMAGE_DEPTH_SGIS = 0x8133 :: GLenum
+
+pattern GL_UNPACK_IMAGE_HEIGHT = 0x806E :: GLenum
+
+pattern GL_UNPACK_IMAGE_HEIGHT_EXT = 0x806E :: GLenum
+
+pattern GL_UNPACK_LSB_FIRST = 0x0CF1 :: GLenum
+
+pattern GL_UNPACK_PREMULTIPLY_ALPHA_WEBGL = 0x9241 :: GLenum
+
+pattern GL_UNPACK_RESAMPLE_OML = 0x8985 :: GLenum
+
+pattern GL_UNPACK_RESAMPLE_SGIX = 0x842F :: GLenum
+
+pattern GL_UNPACK_ROW_BYTES_APPLE = 0x8A16 :: GLenum
+
+pattern GL_UNPACK_ROW_LENGTH = 0x0CF2 :: GLenum
+
+pattern GL_UNPACK_ROW_LENGTH_EXT = 0x0CF2 :: GLenum
+
+pattern GL_UNPACK_SKIP_IMAGES = 0x806D :: GLenum
+
+pattern GL_UNPACK_SKIP_IMAGES_EXT = 0x806D :: GLenum
+
+pattern GL_UNPACK_SKIP_PIXELS = 0x0CF4 :: GLenum
+
+pattern GL_UNPACK_SKIP_PIXELS_EXT = 0x0CF4 :: GLenum
+
+pattern GL_UNPACK_SKIP_ROWS = 0x0CF3 :: GLenum
+
+pattern GL_UNPACK_SKIP_ROWS_EXT = 0x0CF3 :: GLenum
+
+pattern GL_UNPACK_SKIP_VOLUMES_SGIS = 0x8132 :: GLenum
+
+pattern GL_UNPACK_SUBSAMPLE_RATE_SGIX = 0x85A1 :: GLenum
+
+pattern GL_UNPACK_SWAP_BYTES = 0x0CF0 :: GLenum
+
+pattern GL_UNSIGNALED = 0x9118 :: GLenum
+
+pattern GL_UNSIGNALED_APPLE = 0x9118 :: GLenum
+
+pattern GL_UNSIGNED_BYTE = 0x1401 :: GLenum
+
+pattern GL_UNSIGNED_BYTE_2_3_3_REV = 0x8362 :: GLenum
+
+pattern GL_UNSIGNED_BYTE_2_3_3_REV_EXT = 0x8362 :: GLenum
+
+pattern GL_UNSIGNED_BYTE_3_3_2 = 0x8032 :: GLenum
+
+pattern GL_UNSIGNED_BYTE_3_3_2_EXT = 0x8032 :: GLenum
+
+pattern GL_UNSIGNED_IDENTITY_NV = 0x8536 :: GLenum
+
+pattern GL_UNSIGNED_INT = 0x1405 :: GLenum
+
+pattern GL_UNSIGNED_INT16_NV = 0x8FF0 :: GLenum
+
+pattern GL_UNSIGNED_INT16_VEC2_NV = 0x8FF1 :: GLenum
+
+pattern GL_UNSIGNED_INT16_VEC3_NV = 0x8FF2 :: GLenum
+
+pattern GL_UNSIGNED_INT16_VEC4_NV = 0x8FF3 :: GLenum
+
+pattern GL_UNSIGNED_INT64_AMD = 0x8BC2 :: GLenum
+
+pattern GL_UNSIGNED_INT64_ARB = 0x140F :: GLenum
+
+pattern GL_UNSIGNED_INT64_NV = 0x140F :: GLenum
+
+pattern GL_UNSIGNED_INT64_VEC2_ARB = 0x8FF5 :: GLenum
+
+pattern GL_UNSIGNED_INT64_VEC2_NV = 0x8FF5 :: GLenum
+
+pattern GL_UNSIGNED_INT64_VEC3_ARB = 0x8FF6 :: GLenum
+
+pattern GL_UNSIGNED_INT64_VEC3_NV = 0x8FF6 :: GLenum
+
+pattern GL_UNSIGNED_INT64_VEC4_ARB = 0x8FF7 :: GLenum
+
+pattern GL_UNSIGNED_INT64_VEC4_NV = 0x8FF7 :: GLenum
+
+pattern GL_UNSIGNED_INT8_NV = 0x8FEC :: GLenum
+
+pattern GL_UNSIGNED_INT8_VEC2_NV = 0x8FED :: GLenum
+
+pattern GL_UNSIGNED_INT8_VEC3_NV = 0x8FEE :: GLenum
+
+pattern GL_UNSIGNED_INT8_VEC4_NV = 0x8FEF :: GLenum
+
+pattern GL_UNSIGNED_INT_10F_11F_11F_REV = 0x8C3B :: GLenum
+
+pattern GL_UNSIGNED_INT_10F_11F_11F_REV_APPLE = 0x8C3B :: GLenum
+
+pattern GL_UNSIGNED_INT_10F_11F_11F_REV_EXT = 0x8C3B :: GLenum
+
+pattern GL_UNSIGNED_INT_10_10_10_2 = 0x8036 :: GLenum
+
+pattern GL_UNSIGNED_INT_10_10_10_2_EXT = 0x8036 :: GLenum
+
+pattern GL_UNSIGNED_INT_10_10_10_2_OES = 0x8DF6 :: GLenum
+
+pattern GL_UNSIGNED_INT_24_8 = 0x84FA :: GLenum
+
+pattern GL_UNSIGNED_INT_24_8_EXT = 0x84FA :: GLenum
+
+pattern GL_UNSIGNED_INT_24_8_MESA = 0x8751 :: GLenum
+
+pattern GL_UNSIGNED_INT_24_8_NV = 0x84FA :: GLenum
+
+pattern GL_UNSIGNED_INT_24_8_OES = 0x84FA :: GLenum
+
+pattern GL_UNSIGNED_INT_2_10_10_10_REV = 0x8368 :: GLenum
+
+pattern GL_UNSIGNED_INT_2_10_10_10_REV_EXT = 0x8368 :: GLenum
+
+pattern GL_UNSIGNED_INT_5_9_9_9_REV = 0x8C3E :: GLenum
+
+pattern GL_UNSIGNED_INT_5_9_9_9_REV_APPLE = 0x8C3E :: GLenum
+
+pattern GL_UNSIGNED_INT_5_9_9_9_REV_EXT = 0x8C3E :: GLenum
+
+pattern GL_UNSIGNED_INT_8_24_REV_MESA = 0x8752 :: GLenum
+
+pattern GL_UNSIGNED_INT_8_8_8_8 = 0x8035 :: GLenum
+
+pattern GL_UNSIGNED_INT_8_8_8_8_EXT = 0x8035 :: GLenum
+
+pattern GL_UNSIGNED_INT_8_8_8_8_REV = 0x8367 :: GLenum
+
+pattern GL_UNSIGNED_INT_8_8_8_8_REV_EXT = 0x8367 :: GLenum
+
+pattern GL_UNSIGNED_INT_8_8_S8_S8_REV_NV = 0x86DB :: GLenum
+
+pattern GL_UNSIGNED_INT_ATOMIC_COUNTER = 0x92DB :: GLenum
+
+pattern GL_UNSIGNED_INT_IMAGE_1D = 0x9062 :: GLenum
+
+pattern GL_UNSIGNED_INT_IMAGE_1D_ARRAY = 0x9068 :: GLenum
+
+pattern GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT = 0x9068 :: GLenum
+
+pattern GL_UNSIGNED_INT_IMAGE_1D_EXT = 0x9062 :: GLenum
+
+pattern GL_UNSIGNED_INT_IMAGE_2D = 0x9063 :: GLenum
+
+pattern GL_UNSIGNED_INT_IMAGE_2D_ARRAY = 0x9069 :: GLenum
+
+pattern GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT = 0x9069 :: GLenum
+
+pattern GL_UNSIGNED_INT_IMAGE_2D_EXT = 0x9063 :: GLenum
+
+pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE = 0x906B :: GLenum
+
+pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY = 0x906C :: GLenum
+
+pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT = 0x906C :: GLenum
+
+pattern GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT = 0x906B :: GLenum
+
+pattern GL_UNSIGNED_INT_IMAGE_2D_RECT = 0x9065 :: GLenum
+
+pattern GL_UNSIGNED_INT_IMAGE_2D_RECT_EXT = 0x9065 :: GLenum
+
+pattern GL_UNSIGNED_INT_IMAGE_3D = 0x9064 :: GLenum
+
+pattern GL_UNSIGNED_INT_IMAGE_3D_EXT = 0x9064 :: GLenum
+
+pattern GL_UNSIGNED_INT_IMAGE_BUFFER = 0x9067 :: GLenum
+
+pattern GL_UNSIGNED_INT_IMAGE_BUFFER_EXT = 0x9067 :: GLenum
+
+pattern GL_UNSIGNED_INT_IMAGE_BUFFER_OES = 0x9067 :: GLenum
+
+pattern GL_UNSIGNED_INT_IMAGE_CUBE = 0x9066 :: GLenum
+
+pattern GL_UNSIGNED_INT_IMAGE_CUBE_EXT = 0x9066 :: GLenum
+
+pattern GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY = 0x906A :: GLenum
+
+pattern GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT = 0x906A :: GLenum
+
+pattern GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_OES = 0x906A :: GLenum
+
+pattern GL_UNSIGNED_INT_S8_S8_8_8_NV = 0x86DA :: GLenum
+
+pattern GL_UNSIGNED_INT_SAMPLER_1D = 0x8DD1 :: GLenum
+
+pattern GL_UNSIGNED_INT_SAMPLER_1D_ARRAY = 0x8DD6 :: GLenum
+
+pattern GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT = 0x8DD6 :: GLenum
+
+pattern GL_UNSIGNED_INT_SAMPLER_1D_EXT = 0x8DD1 :: GLenum
+
+pattern GL_UNSIGNED_INT_SAMPLER_2D = 0x8DD2 :: GLenum
+
+pattern GL_UNSIGNED_INT_SAMPLER_2D_ARRAY = 0x8DD7 :: GLenum
+
+pattern GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT = 0x8DD7 :: GLenum
+
+pattern GL_UNSIGNED_INT_SAMPLER_2D_EXT = 0x8DD2 :: GLenum
+
+pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE = 0x910A :: GLenum
+
+pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910D :: GLenum
+
+pattern GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES = 0x910D :: GLenum
+
+pattern GL_UNSIGNED_INT_SAMPLER_2D_RECT = 0x8DD5 :: GLenum
+
+pattern GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT = 0x8DD5 :: GLenum
+
+pattern GL_UNSIGNED_INT_SAMPLER_3D = 0x8DD3 :: GLenum
+
+pattern GL_UNSIGNED_INT_SAMPLER_3D_EXT = 0x8DD3 :: GLenum
+
+pattern GL_UNSIGNED_INT_SAMPLER_BUFFER = 0x8DD8 :: GLenum
+
+pattern GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD = 0x9003 :: GLenum
+
+pattern GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT = 0x8DD8 :: GLenum
+
+pattern GL_UNSIGNED_INT_SAMPLER_BUFFER_OES = 0x8DD8 :: GLenum
+
+pattern GL_UNSIGNED_INT_SAMPLER_CUBE = 0x8DD4 :: GLenum
+
+pattern GL_UNSIGNED_INT_SAMPLER_CUBE_EXT = 0x8DD4 :: GLenum
+
+pattern GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY = 0x900F :: GLenum
+
+pattern GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB = 0x900F :: GLenum
+
+pattern GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_EXT = 0x900F :: GLenum
+
+pattern GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_OES = 0x900F :: GLenum
+
+pattern GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV = 0x8E58 :: GLenum
+
+pattern GL_UNSIGNED_INT_VEC2 = 0x8DC6 :: GLenum
+
+pattern GL_UNSIGNED_INT_VEC2_EXT = 0x8DC6 :: GLenum
+
+pattern GL_UNSIGNED_INT_VEC3 = 0x8DC7 :: GLenum
+
+pattern GL_UNSIGNED_INT_VEC3_EXT = 0x8DC7 :: GLenum
+
+pattern GL_UNSIGNED_INT_VEC4 = 0x8DC8 :: GLenum
+
+pattern GL_UNSIGNED_INT_VEC4_EXT = 0x8DC8 :: GLenum
+
+pattern GL_UNSIGNED_INVERT_NV = 0x8537 :: GLenum
+
+pattern GL_UNSIGNED_NORMALIZED = 0x8C17 :: GLenum
+
+pattern GL_UNSIGNED_NORMALIZED_ARB = 0x8C17 :: GLenum
+
+pattern GL_UNSIGNED_NORMALIZED_EXT = 0x8C17 :: GLenum
+
+pattern GL_UNSIGNED_SHORT = 0x1403 :: GLenum
+
+pattern GL_UNSIGNED_SHORT_15_1_MESA = 0x8753 :: GLenum
+
+pattern GL_UNSIGNED_SHORT_1_15_REV_MESA = 0x8754 :: GLenum
+
+pattern GL_UNSIGNED_SHORT_1_5_5_5_REV = 0x8366 :: GLenum
+
+pattern GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT = 0x8366 :: GLenum
+
+pattern GL_UNSIGNED_SHORT_4_4_4_4 = 0x8033 :: GLenum
+
+pattern GL_UNSIGNED_SHORT_4_4_4_4_EXT = 0x8033 :: GLenum
+
+pattern GL_UNSIGNED_SHORT_4_4_4_4_REV = 0x8365 :: GLenum
+
+pattern GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT = 0x8365 :: GLenum
+
+pattern GL_UNSIGNED_SHORT_4_4_4_4_REV_IMG = 0x8365 :: GLenum
+
+pattern GL_UNSIGNED_SHORT_5_5_5_1 = 0x8034 :: GLenum
+
+pattern GL_UNSIGNED_SHORT_5_5_5_1_EXT = 0x8034 :: GLenum
+
+pattern GL_UNSIGNED_SHORT_5_6_5 = 0x8363 :: GLenum
+
+pattern GL_UNSIGNED_SHORT_5_6_5_EXT = 0x8363 :: GLenum
+
+pattern GL_UNSIGNED_SHORT_5_6_5_REV = 0x8364 :: GLenum
+
+pattern GL_UNSIGNED_SHORT_5_6_5_REV_EXT = 0x8364 :: GLenum
+
+pattern GL_UNSIGNED_SHORT_8_8_APPLE = 0x85BA :: GLenum
+
+pattern GL_UNSIGNED_SHORT_8_8_MESA = 0x85BA :: GLenum
+
+pattern GL_UNSIGNED_SHORT_8_8_REV_APPLE = 0x85BB :: GLenum
+
+pattern GL_UNSIGNED_SHORT_8_8_REV_MESA = 0x85BB :: GLenum
+
+pattern GL_UPLOAD_GPU_MASK_NVX = 0x954A :: GLenum
+
+pattern GL_UPPER_LEFT = 0x8CA2 :: GLenum
+
+pattern GL_UPPER_LEFT_EXT = 0x8CA2 :: GLenum
+
+pattern GL_USE_MISSING_GLYPH_NV = 0x90AA :: GLenum
+
+pattern GL_UTF16_NV = 0x909B :: GLenum
+
+pattern GL_UTF8_NV = 0x909A :: GLenum
+
+pattern GL_UUID_SIZE_EXT = 16 :: GLenum
+
+pattern GL_V2F = 0x2A20 :: GLenum
+
+pattern GL_V3F = 0x2A21 :: GLenum
+
+pattern GL_VALIDATE_SHADER_BINARY_QCOM = 0x96A3 :: GLenum
+
+pattern GL_VALIDATE_STATUS = 0x8B83 :: GLenum
+
+pattern GL_VARIABLE_A_NV = 0x8523 :: GLenum
+
+pattern GL_VARIABLE_B_NV = 0x8524 :: GLenum
+
+pattern GL_VARIABLE_C_NV = 0x8525 :: GLenum
+
+pattern GL_VARIABLE_D_NV = 0x8526 :: GLenum
+
+pattern GL_VARIABLE_E_NV = 0x8527 :: GLenum
+
+pattern GL_VARIABLE_F_NV = 0x8528 :: GLenum
+
+pattern GL_VARIABLE_G_NV = 0x8529 :: GLenum
+
+pattern GL_VARIANT_ARRAY_EXT = 0x87E8 :: GLenum
+
+pattern GL_VARIANT_ARRAY_POINTER_EXT = 0x87E9 :: GLenum
+
+pattern GL_VARIANT_ARRAY_STRIDE_EXT = 0x87E6 :: GLenum
+
+pattern GL_VARIANT_ARRAY_TYPE_EXT = 0x87E7 :: GLenum
+
+pattern GL_VARIANT_DATATYPE_EXT = 0x87E5 :: GLenum
+
+pattern GL_VARIANT_EXT = 0x87C1 :: GLenum
+
+pattern GL_VARIANT_VALUE_EXT = 0x87E4 :: GLenum
+
+pattern GL_VBO_FREE_MEMORY_ATI = 0x87FB :: GLenum
+
+pattern GL_VECTOR_EXT = 0x87BF :: GLenum
+
+pattern GL_VENDOR = 0x1F00 :: GLenum
+
+pattern GL_VERSION = 0x1F02 :: GLenum
+
+pattern GL_VERSION_ES_CL_1_0 = 1 :: GLenum
+
+pattern GL_VERSION_ES_CL_1_1 = 1 :: GLenum
+
+pattern GL_VERSION_ES_CM_1_1 = 1 :: GLenum
+
+pattern GL_VERTEX23_BIT_PGI = 0x00000004 :: GLbitfield
+
+pattern GL_VERTEX4_BIT_PGI = 0x00000008 :: GLbitfield
+
+pattern GL_VERTEX_ARRAY = 0x8074 :: GLenum
+
+pattern GL_VERTEX_ARRAY_ADDRESS_NV = 0x8F21 :: GLenum
+
+pattern GL_VERTEX_ARRAY_BINDING = 0x85B5 :: GLenum
+
+pattern GL_VERTEX_ARRAY_BINDING_APPLE = 0x85B5 :: GLenum
+
+pattern GL_VERTEX_ARRAY_BINDING_OES = 0x85B5 :: GLenum
+
+pattern GL_VERTEX_ARRAY_BUFFER_BINDING = 0x8896 :: GLenum
+
+pattern GL_VERTEX_ARRAY_BUFFER_BINDING_ARB = 0x8896 :: GLenum
+
+pattern GL_VERTEX_ARRAY_COUNT_EXT = 0x807D :: GLenum
+
+pattern GL_VERTEX_ARRAY_EXT = 0x8074 :: GLenum
+
+pattern GL_VERTEX_ARRAY_KHR = 0x8074 :: GLenum
+
+pattern GL_VERTEX_ARRAY_LENGTH_NV = 0x8F2B :: GLenum
+
+pattern GL_VERTEX_ARRAY_LIST_IBM = 103070 :: GLenum
+
+pattern GL_VERTEX_ARRAY_LIST_STRIDE_IBM = 103080 :: GLenum
+
+pattern GL_VERTEX_ARRAY_OBJECT_AMD = 0x9154 :: GLenum
+
+pattern GL_VERTEX_ARRAY_OBJECT_EXT = 0x9154 :: GLenum
+
+pattern GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F5 :: GLenum
+
+pattern GL_VERTEX_ARRAY_POINTER = 0x808E :: GLenum
+
+pattern GL_VERTEX_ARRAY_POINTER_EXT = 0x808E :: GLenum
+
+pattern GL_VERTEX_ARRAY_RANGE_APPLE = 0x851D :: GLenum
+
+pattern GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE = 0x851E :: GLenum
+
+pattern GL_VERTEX_ARRAY_RANGE_LENGTH_NV = 0x851E :: GLenum
+
+pattern GL_VERTEX_ARRAY_RANGE_NV = 0x851D :: GLenum
+
+pattern GL_VERTEX_ARRAY_RANGE_POINTER_APPLE = 0x8521 :: GLenum
+
+pattern GL_VERTEX_ARRAY_RANGE_POINTER_NV = 0x8521 :: GLenum
+
+pattern GL_VERTEX_ARRAY_RANGE_VALID_NV = 0x851F :: GLenum
+
+pattern GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV = 0x8533 :: GLenum
+
+pattern GL_VERTEX_ARRAY_SIZE = 0x807A :: GLenum
+
+pattern GL_VERTEX_ARRAY_SIZE_EXT = 0x807A :: GLenum
+
+pattern GL_VERTEX_ARRAY_STORAGE_HINT_APPLE = 0x851F :: GLenum
+
+pattern GL_VERTEX_ARRAY_STRIDE = 0x807C :: GLenum
+
+pattern GL_VERTEX_ARRAY_STRIDE_EXT = 0x807C :: GLenum
+
+pattern GL_VERTEX_ARRAY_TYPE = 0x807B :: GLenum
+
+pattern GL_VERTEX_ARRAY_TYPE_EXT = 0x807B :: GLenum
+
+pattern GL_VERTEX_ATTRIB_ARRAY0_NV = 0x8650 :: GLenum
+
+pattern GL_VERTEX_ATTRIB_ARRAY10_NV = 0x865A :: GLenum
+
+pattern GL_VERTEX_ATTRIB_ARRAY11_NV = 0x865B :: GLenum
+
+pattern GL_VERTEX_ATTRIB_ARRAY12_NV = 0x865C :: GLenum
+
+pattern GL_VERTEX_ATTRIB_ARRAY13_NV = 0x865D :: GLenum
+
+pattern GL_VERTEX_ATTRIB_ARRAY14_NV = 0x865E :: GLenum
+
+pattern GL_VERTEX_ATTRIB_ARRAY15_NV = 0x865F :: GLenum
+
+pattern GL_VERTEX_ATTRIB_ARRAY1_NV = 0x8651 :: GLenum
+
+pattern GL_VERTEX_ATTRIB_ARRAY2_NV = 0x8652 :: GLenum
+
+pattern GL_VERTEX_ATTRIB_ARRAY3_NV = 0x8653 :: GLenum
+
+pattern GL_VERTEX_ATTRIB_ARRAY4_NV = 0x8654 :: GLenum
+
+pattern GL_VERTEX_ATTRIB_ARRAY5_NV = 0x8655 :: GLenum
+
+pattern GL_VERTEX_ATTRIB_ARRAY6_NV = 0x8656 :: GLenum
+
+pattern GL_VERTEX_ATTRIB_ARRAY7_NV = 0x8657 :: GLenum
+
+pattern GL_VERTEX_ATTRIB_ARRAY8_NV = 0x8658 :: GLenum
+
+pattern GL_VERTEX_ATTRIB_ARRAY9_NV = 0x8659 :: GLenum
+
+pattern GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV = 0x8F20 :: GLenum
+
+pattern GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT = 0x00000001 :: GLbitfield
+
+pattern GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT = 0x00000001 :: GLbitfield
+
+pattern GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F :: GLenum
+
+pattern GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB = 0x889F :: GLenum
+
+pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR = 0x88FE :: GLenum
+
+pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE = 0x88FE :: GLenum
+
+pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB = 0x88FE :: GLenum
+
+pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR_EXT = 0x88FE :: GLenum
+
+pattern GL_VERTEX_ATTRIB_ARRAY_DIVISOR_NV = 0x88FE :: GLenum
+
+pattern GL_VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622 :: GLenum
+
+pattern GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB = 0x8622 :: GLenum
+
+pattern GL_VERTEX_ATTRIB_ARRAY_INTEGER = 0x88FD :: GLenum
+
+pattern GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT = 0x88FD :: GLenum
+
+pattern GL_VERTEX_ATTRIB_ARRAY_INTEGER_NV = 0x88FD :: GLenum
+
+pattern GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV = 0x8F2A :: GLenum
+
+pattern GL_VERTEX_ATTRIB_ARRAY_LONG = 0x874E :: GLenum
+
+pattern GL_VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A :: GLenum
+
+pattern GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB = 0x886A :: GLenum
+
+pattern GL_VERTEX_ATTRIB_ARRAY_POINTER = 0x8645 :: GLenum
+
+pattern GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB = 0x8645 :: GLenum
+
+pattern GL_VERTEX_ATTRIB_ARRAY_SIZE = 0x8623 :: GLenum
+
+pattern GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB = 0x8623 :: GLenum
+
+pattern GL_VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624 :: GLenum
+
+pattern GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB = 0x8624 :: GLenum
+
+pattern GL_VERTEX_ATTRIB_ARRAY_TYPE = 0x8625 :: GLenum
+
+pattern GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB = 0x8625 :: GLenum
+
+pattern GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV = 0x8F1E :: GLenum
+
+pattern GL_VERTEX_ATTRIB_BINDING = 0x82D4 :: GLenum
+
+pattern GL_VERTEX_ATTRIB_MAP1_APPLE = 0x8A00 :: GLenum
+
+pattern GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE = 0x8A03 :: GLenum
+
+pattern GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE = 0x8A05 :: GLenum
+
+pattern GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE = 0x8A04 :: GLenum
+
+pattern GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE = 0x8A02 :: GLenum
+
+pattern GL_VERTEX_ATTRIB_MAP2_APPLE = 0x8A01 :: GLenum
+
+pattern GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE = 0x8A07 :: GLenum
+
+pattern GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE = 0x8A09 :: GLenum
+
+pattern GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE = 0x8A08 :: GLenum
+
+pattern GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE = 0x8A06 :: GLenum
+
+pattern GL_VERTEX_ATTRIB_RELATIVE_OFFSET = 0x82D5 :: GLenum
+
+pattern GL_VERTEX_BINDING_BUFFER = 0x8F4F :: GLenum
+
+pattern GL_VERTEX_BINDING_DIVISOR = 0x82D6 :: GLenum
+
+pattern GL_VERTEX_BINDING_OFFSET = 0x82D7 :: GLenum
+
+pattern GL_VERTEX_BINDING_STRIDE = 0x82D8 :: GLenum
+
+pattern GL_VERTEX_BLEND_ARB = 0x86A7 :: GLenum
+
+pattern GL_VERTEX_CONSISTENT_HINT_PGI = 0x1A22B :: GLenum
+
+pattern GL_VERTEX_DATA_HINT_PGI = 0x1A22A :: GLenum
+
+pattern GL_VERTEX_ELEMENT_SWIZZLE_AMD = 0x91A4 :: GLenum
+
+pattern GL_VERTEX_ID_NV = 0x8C7B :: GLenum
+
+pattern GL_VERTEX_ID_SWIZZLE_AMD = 0x91A5 :: GLenum
+
+pattern GL_VERTEX_PRECLIP_HINT_SGIX = 0x83EF :: GLenum
+
+pattern GL_VERTEX_PRECLIP_SGIX = 0x83EE :: GLenum
+
+pattern GL_VERTEX_PROGRAM_ARB = 0x8620 :: GLenum
+
+pattern GL_VERTEX_PROGRAM_BINDING_NV = 0x864A :: GLenum
+
+pattern GL_VERTEX_PROGRAM_CALLBACK_DATA_MESA = 0x8BB7 :: GLenum
+
+pattern GL_VERTEX_PROGRAM_CALLBACK_FUNC_MESA = 0x8BB6 :: GLenum
+
+pattern GL_VERTEX_PROGRAM_CALLBACK_MESA = 0x8BB5 :: GLenum
+
+pattern GL_VERTEX_PROGRAM_NV = 0x8620 :: GLenum
+
+pattern GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV = 0x8DA2 :: GLenum
+
+pattern GL_VERTEX_PROGRAM_POINT_SIZE = 0x8642 :: GLenum
+
+pattern GL_VERTEX_PROGRAM_POINT_SIZE_ARB = 0x8642 :: GLenum
+
+pattern GL_VERTEX_PROGRAM_POINT_SIZE_NV = 0x8642 :: GLenum
+
+pattern GL_VERTEX_PROGRAM_POSITION_MESA = 0x8BB4 :: GLenum
+
+pattern GL_VERTEX_PROGRAM_TWO_SIDE = 0x8643 :: GLenum
+
+pattern GL_VERTEX_PROGRAM_TWO_SIDE_ARB = 0x8643 :: GLenum
+
+pattern GL_VERTEX_PROGRAM_TWO_SIDE_NV = 0x8643 :: GLenum
+
+pattern GL_VERTEX_SHADER = 0x8B31 :: GLenum
+
+pattern GL_VERTEX_SHADER_ARB = 0x8B31 :: GLenum
+
+pattern GL_VERTEX_SHADER_BINDING_EXT = 0x8781 :: GLenum
+
+pattern GL_VERTEX_SHADER_BIT = 0x00000001 :: GLbitfield
+
+pattern GL_VERTEX_SHADER_BIT_EXT = 0x00000001 :: GLbitfield
+
+pattern GL_VERTEX_SHADER_EXT = 0x8780 :: GLenum
+
+pattern GL_VERTEX_SHADER_INSTRUCTIONS_EXT = 0x87CF :: GLenum
+
+pattern GL_VERTEX_SHADER_INVARIANTS_EXT = 0x87D1 :: GLenum
+
+pattern GL_VERTEX_SHADER_INVOCATIONS = 0x82F0 :: GLenum
+
+pattern GL_VERTEX_SHADER_INVOCATIONS_ARB = 0x82F0 :: GLenum
+
+pattern GL_VERTEX_SHADER_LOCALS_EXT = 0x87D3 :: GLenum
+
+pattern GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = 0x87D2 :: GLenum
+
+pattern GL_VERTEX_SHADER_OPTIMIZED_EXT = 0x87D4 :: GLenum
+
+pattern GL_VERTEX_SHADER_VARIANTS_EXT = 0x87D0 :: GLenum
+
+pattern GL_VERTEX_SOURCE_ATI = 0x8774 :: GLenum
+
+pattern GL_VERTEX_STATE_PROGRAM_NV = 0x8621 :: GLenum
+
+pattern GL_VERTEX_STREAM0_ATI = 0x876C :: GLenum
+
+pattern GL_VERTEX_STREAM1_ATI = 0x876D :: GLenum
+
+pattern GL_VERTEX_STREAM2_ATI = 0x876E :: GLenum
+
+pattern GL_VERTEX_STREAM3_ATI = 0x876F :: GLenum
+
+pattern GL_VERTEX_STREAM4_ATI = 0x8770 :: GLenum
+
+pattern GL_VERTEX_STREAM5_ATI = 0x8771 :: GLenum
+
+pattern GL_VERTEX_STREAM6_ATI = 0x8772 :: GLenum
+
+pattern GL_VERTEX_STREAM7_ATI = 0x8773 :: GLenum
+
+pattern GL_VERTEX_SUBROUTINE = 0x92E8 :: GLenum
+
+pattern GL_VERTEX_SUBROUTINE_UNIFORM = 0x92EE :: GLenum
+
+pattern GL_VERTEX_TEXTURE = 0x829B :: GLenum
+
+pattern GL_VERTEX_WEIGHTING_EXT = 0x8509 :: GLenum
+
+pattern GL_VERTEX_WEIGHT_ARRAY_EXT = 0x850C :: GLenum
+
+pattern GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT = 0x8510 :: GLenum
+
+pattern GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT = 0x850D :: GLenum
+
+pattern GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT = 0x850F :: GLenum
+
+pattern GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT = 0x850E :: GLenum
+
+pattern GL_VERTICAL_LINE_TO_NV = 0x08 :: GLubyte
+
+pattern GL_VERTICES_SUBMITTED = 0x82EE :: GLenum
+
+pattern GL_VERTICES_SUBMITTED_ARB = 0x82EE :: GLenum
+
+pattern GL_VIBRANCE_BIAS_NV = 0x8719 :: GLenum
+
+pattern GL_VIBRANCE_SCALE_NV = 0x8713 :: GLenum
+
+pattern GL_VIDEO_BUFFER_BINDING_NV = 0x9021 :: GLenum
+
+pattern GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV = 0x902D :: GLenum
+
+pattern GL_VIDEO_BUFFER_NV = 0x9020 :: GLenum
+
+pattern GL_VIDEO_BUFFER_PITCH_NV = 0x9028 :: GLenum
+
+pattern GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV = 0x903B :: GLenum
+
+pattern GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV = 0x903A :: GLenum
+
+pattern GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV = 0x9039 :: GLenum
+
+pattern GL_VIDEO_CAPTURE_FRAME_WIDTH_NV = 0x9038 :: GLenum
+
+pattern GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV = 0x903C :: GLenum
+
+pattern GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV = 0x9026 :: GLenum
+
+pattern GL_VIDEO_COLOR_CONVERSION_MATRIX_NV = 0x9029 :: GLenum
+
+pattern GL_VIDEO_COLOR_CONVERSION_MAX_NV = 0x902A :: GLenum
+
+pattern GL_VIDEO_COLOR_CONVERSION_MIN_NV = 0x902B :: GLenum
+
+pattern GL_VIDEO_COLOR_CONVERSION_OFFSET_NV = 0x902C :: GLenum
+
+pattern GL_VIEWPORT = 0x0BA2 :: GLenum
+
+pattern GL_VIEWPORT_BIT = 0x00000800 :: GLbitfield
+
+pattern GL_VIEWPORT_BOUNDS_RANGE = 0x825D :: GLenum
+
+pattern GL_VIEWPORT_BOUNDS_RANGE_EXT = 0x825D :: GLenum
+
+pattern GL_VIEWPORT_BOUNDS_RANGE_NV = 0x825D :: GLenum
+
+pattern GL_VIEWPORT_BOUNDS_RANGE_OES = 0x825D :: GLenum
+
+pattern GL_VIEWPORT_COMMAND_NV = 0x0010 :: GLenum
+
+pattern GL_VIEWPORT_INDEX_PROVOKING_VERTEX = 0x825F :: GLenum
+
+pattern GL_VIEWPORT_INDEX_PROVOKING_VERTEX_EXT = 0x825F :: GLenum
+
+pattern GL_VIEWPORT_INDEX_PROVOKING_VERTEX_NV = 0x825F :: GLenum
+
+pattern GL_VIEWPORT_INDEX_PROVOKING_VERTEX_OES = 0x825F :: GLenum
+
+pattern GL_VIEWPORT_POSITION_W_SCALE_NV = 0x937C :: GLenum
+
+pattern GL_VIEWPORT_POSITION_W_SCALE_X_COEFF_NV = 0x937D :: GLenum
+
+pattern GL_VIEWPORT_POSITION_W_SCALE_Y_COEFF_NV = 0x937E :: GLenum
+
+pattern GL_VIEWPORT_SUBPIXEL_BITS = 0x825C :: GLenum
+
+pattern GL_VIEWPORT_SUBPIXEL_BITS_EXT = 0x825C :: GLenum
+
+pattern GL_VIEWPORT_SUBPIXEL_BITS_NV = 0x825C :: GLenum
+
+pattern GL_VIEWPORT_SUBPIXEL_BITS_OES = 0x825C :: GLenum
+
+pattern GL_VIEWPORT_SWIZZLE_NEGATIVE_W_NV = 0x9357 :: GLenum
+
+pattern GL_VIEWPORT_SWIZZLE_NEGATIVE_X_NV = 0x9351 :: GLenum
+
+pattern GL_VIEWPORT_SWIZZLE_NEGATIVE_Y_NV = 0x9353 :: GLenum
+
+pattern GL_VIEWPORT_SWIZZLE_NEGATIVE_Z_NV = 0x9355 :: GLenum
+
+pattern GL_VIEWPORT_SWIZZLE_POSITIVE_W_NV = 0x9356 :: GLenum
+
+pattern GL_VIEWPORT_SWIZZLE_POSITIVE_X_NV = 0x9350 :: GLenum
+
+pattern GL_VIEWPORT_SWIZZLE_POSITIVE_Y_NV = 0x9352 :: GLenum
+
+pattern GL_VIEWPORT_SWIZZLE_POSITIVE_Z_NV = 0x9354 :: GLenum
+
+pattern GL_VIEWPORT_SWIZZLE_W_NV = 0x935B :: GLenum
+
+pattern GL_VIEWPORT_SWIZZLE_X_NV = 0x9358 :: GLenum
+
+pattern GL_VIEWPORT_SWIZZLE_Y_NV = 0x9359 :: GLenum
+
+pattern GL_VIEWPORT_SWIZZLE_Z_NV = 0x935A :: GLenum
+
+pattern GL_VIEW_CLASS_128_BITS = 0x82C4 :: GLenum
+
+pattern GL_VIEW_CLASS_16_BITS = 0x82CA :: GLenum
+
+pattern GL_VIEW_CLASS_24_BITS = 0x82C9 :: GLenum
+
+pattern GL_VIEW_CLASS_32_BITS = 0x82C8 :: GLenum
+
+pattern GL_VIEW_CLASS_48_BITS = 0x82C7 :: GLenum
+
+pattern GL_VIEW_CLASS_64_BITS = 0x82C6 :: GLenum
+
+pattern GL_VIEW_CLASS_8_BITS = 0x82CB :: GLenum
+
+pattern GL_VIEW_CLASS_96_BITS = 0x82C5 :: GLenum
+
+pattern GL_VIEW_CLASS_ASTC_10x10_RGBA = 0x9393 :: GLenum
+
+pattern GL_VIEW_CLASS_ASTC_10x5_RGBA = 0x9390 :: GLenum
+
+pattern GL_VIEW_CLASS_ASTC_10x6_RGBA = 0x9391 :: GLenum
+
+pattern GL_VIEW_CLASS_ASTC_10x8_RGBA = 0x9392 :: GLenum
+
+pattern GL_VIEW_CLASS_ASTC_12x10_RGBA = 0x9394 :: GLenum
+
+pattern GL_VIEW_CLASS_ASTC_12x12_RGBA = 0x9395 :: GLenum
+
+pattern GL_VIEW_CLASS_ASTC_4x4_RGBA = 0x9388 :: GLenum
+
+pattern GL_VIEW_CLASS_ASTC_5x4_RGBA = 0x9389 :: GLenum
+
+pattern GL_VIEW_CLASS_ASTC_5x5_RGBA = 0x938A :: GLenum
+
+pattern GL_VIEW_CLASS_ASTC_6x5_RGBA = 0x938B :: GLenum
+
+pattern GL_VIEW_CLASS_ASTC_6x6_RGBA = 0x938C :: GLenum
+
+pattern GL_VIEW_CLASS_ASTC_8x5_RGBA = 0x938D :: GLenum
+
+pattern GL_VIEW_CLASS_ASTC_8x6_RGBA = 0x938E :: GLenum
+
+pattern GL_VIEW_CLASS_ASTC_8x8_RGBA = 0x938F :: GLenum
+
+pattern GL_VIEW_CLASS_BPTC_FLOAT = 0x82D3 :: GLenum
+
+pattern GL_VIEW_CLASS_BPTC_UNORM = 0x82D2 :: GLenum
+
+pattern GL_VIEW_CLASS_EAC_R11 = 0x9383 :: GLenum
+
+pattern GL_VIEW_CLASS_EAC_RG11 = 0x9384 :: GLenum
+
+pattern GL_VIEW_CLASS_ETC2_EAC_RGBA = 0x9387 :: GLenum
+
+pattern GL_VIEW_CLASS_ETC2_RGB = 0x9385 :: GLenum
+
+pattern GL_VIEW_CLASS_ETC2_RGBA = 0x9386 :: GLenum
+
+pattern GL_VIEW_CLASS_RGTC1_RED = 0x82D0 :: GLenum
+
+pattern GL_VIEW_CLASS_RGTC2_RG = 0x82D1 :: GLenum
+
+pattern GL_VIEW_CLASS_S3TC_DXT1_RGB = 0x82CC :: GLenum
+
+pattern GL_VIEW_CLASS_S3TC_DXT1_RGBA = 0x82CD :: GLenum
+
+pattern GL_VIEW_CLASS_S3TC_DXT3_RGBA = 0x82CE :: GLenum
+
+pattern GL_VIEW_CLASS_S3TC_DXT5_RGBA = 0x82CF :: GLenum
+
+pattern GL_VIEW_COMPATIBILITY_CLASS = 0x82B6 :: GLenum
+
+pattern GL_VIRTUAL_PAGE_SIZE_INDEX_ARB = 0x91A7 :: GLenum
+
+pattern GL_VIRTUAL_PAGE_SIZE_INDEX_EXT = 0x91A7 :: GLenum
+
+pattern GL_VIRTUAL_PAGE_SIZE_X_AMD = 0x9195 :: GLenum
+
+pattern GL_VIRTUAL_PAGE_SIZE_X_ARB = 0x9195 :: GLenum
+
+pattern GL_VIRTUAL_PAGE_SIZE_X_EXT = 0x9195 :: GLenum
+
+pattern GL_VIRTUAL_PAGE_SIZE_Y_AMD = 0x9196 :: GLenum
+
+pattern GL_VIRTUAL_PAGE_SIZE_Y_ARB = 0x9196 :: GLenum
+
+pattern GL_VIRTUAL_PAGE_SIZE_Y_EXT = 0x9196 :: GLenum
+
+pattern GL_VIRTUAL_PAGE_SIZE_Z_AMD = 0x9197 :: GLenum
+
+pattern GL_VIRTUAL_PAGE_SIZE_Z_ARB = 0x9197 :: GLenum
+
+pattern GL_VIRTUAL_PAGE_SIZE_Z_EXT = 0x9197 :: GLenum
+
+pattern GL_VIVIDLIGHT_NV = 0x92A6 :: GLenum
+
+pattern GL_VOLATILE_APPLE = 0x8A1A :: GLenum
+
+pattern GL_WAIT_FAILED = 0x911D :: GLenum
+
+pattern GL_WAIT_FAILED_APPLE = 0x911D :: GLenum
+
+pattern GL_WARPS_PER_SM_NV = 0x933A :: GLenum
+
+pattern GL_WARP_SIZE_NV = 0x9339 :: GLenum
+
+pattern GL_WEIGHTED_AVERAGE_ARB = 0x9367 :: GLenum
+
+pattern GL_WEIGHTED_AVERAGE_EXT = 0x9367 :: GLenum
+
+pattern GL_WEIGHT_ARRAY_ARB = 0x86AD :: GLenum
+
+pattern GL_WEIGHT_ARRAY_BUFFER_BINDING = 0x889E :: GLenum
+
+pattern GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB = 0x889E :: GLenum
+
+pattern GL_WEIGHT_ARRAY_BUFFER_BINDING_OES = 0x889E :: GLenum
+
+pattern GL_WEIGHT_ARRAY_OES = 0x86AD :: GLenum
+
+pattern GL_WEIGHT_ARRAY_POINTER_ARB = 0x86AC :: GLenum
+
+pattern GL_WEIGHT_ARRAY_POINTER_OES = 0x86AC :: GLenum
+
+pattern GL_WEIGHT_ARRAY_SIZE_ARB = 0x86AB :: GLenum
+
+pattern GL_WEIGHT_ARRAY_SIZE_OES = 0x86AB :: GLenum
+
+pattern GL_WEIGHT_ARRAY_STRIDE_ARB = 0x86AA :: GLenum
+
+pattern GL_WEIGHT_ARRAY_STRIDE_OES = 0x86AA :: GLenum
+
+pattern GL_WEIGHT_ARRAY_TYPE_ARB = 0x86A9 :: GLenum
+
+pattern GL_WEIGHT_ARRAY_TYPE_OES = 0x86A9 :: GLenum
+
+pattern GL_WEIGHT_SUM_UNITY_ARB = 0x86A6 :: GLenum
+
+pattern GL_WIDE_LINE_HINT_PGI = 0x1A222 :: GLenum
+
+pattern GL_WINDOW_RECTANGLE_EXT = 0x8F12 :: GLenum
+
+pattern GL_WINDOW_RECTANGLE_MODE_EXT = 0x8F13 :: GLenum
+
+pattern GL_WRAP_BORDER_SUN = 0x81D4 :: GLenum
+
+pattern GL_WRITEONLY_RENDERING_QCOM = 0x8823 :: GLenum
+
+pattern GL_WRITE_DISCARD_NV = 0x88BE :: GLenum
+
+pattern GL_WRITE_ONLY = 0x88B9 :: GLenum
+
+pattern GL_WRITE_ONLY_ARB = 0x88B9 :: GLenum
+
+pattern GL_WRITE_ONLY_OES = 0x88B9 :: GLenum
+
+pattern GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV = 0x887A :: GLenum
+
+pattern GL_WRITE_PIXEL_DATA_RANGE_NV = 0x8878 :: GLenum
+
+pattern GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV = 0x887C :: GLenum
+
+pattern GL_W_EXT = 0x87D8 :: GLenum
+
+pattern GL_XOR = 0x1506 :: GLenum
+
+pattern GL_XOR_NV = 0x1506 :: GLenum
+
+pattern GL_X_EXT = 0x87D5 :: GLenum
+
+pattern GL_YCBAYCR8A_4224_NV = 0x9032 :: GLenum
+
+pattern GL_YCBCR_422_APPLE = 0x85B9 :: GLenum
+
+pattern GL_YCBCR_MESA = 0x8757 :: GLenum
+
+pattern GL_YCBYCR8_422_NV = 0x9031 :: GLenum
+
+pattern GL_YCRCBA_SGIX = 0x8319 :: GLenum
+
+pattern GL_YCRCB_422_SGIX = 0x81BB :: GLenum
+
+pattern GL_YCRCB_444_SGIX = 0x81BC :: GLenum
+
+pattern GL_YCRCB_SGIX = 0x8318 :: GLenum
+
+pattern GL_Y_EXT = 0x87D6 :: GLenum
+
+pattern GL_Z400_BINARY_AMD = 0x8740 :: GLenum
+
+pattern GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV = 0x9036 :: GLenum
+
+pattern GL_Z4Y12Z4CB12Z4CR12_444_NV = 0x9037 :: GLenum
+
+pattern GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV = 0x9035 :: GLenum
+
+pattern GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV = 0x9034 :: GLenum
+
+pattern GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV = 0x9033 :: GLenum
+
+pattern GL_ZERO = 0 :: GLenum
+
+pattern GL_ZERO_EXT = 0x87DD :: GLenum
+
+pattern GL_ZERO_TO_ONE = 0x935F :: GLenum
+
+pattern GL_ZERO_TO_ONE_EXT = 0x935F :: GLenum
+
+pattern GL_ZOOM_X = 0x0D16 :: GLenum
+
+pattern GL_ZOOM_Y = 0x0D17 :: GLenum
+
+pattern GL_Z_EXT = 0x87D7 :: GLenum
+
diff --git a/src/Graphics/GL/Types.hs b/src/Graphics/GL/Types.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Types.hs
@@ -0,0 +1,248 @@
+{-# LANGUAGE CPP #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Types
+-- Copyright   :  (c) Sven Panne 2009-2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- All types from the whole OpenGL registry.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Types (
+  -- * Types from OpenGL itself.
+  GLboolean,
+  GLbyte,
+  GLubyte,
+  GLchar,
+  GLshort,
+  GLushort,
+  GLint,
+  GLuint,
+  GLfixed,
+  GLint64,
+  GLuint64,
+  GLsizei,
+  GLenum,
+  GLintptr,
+  GLsizeiptr,
+  GLsync,
+  GLbitfield,
+  GLhalf,
+  GLfloat,
+  GLclampf,
+  GLdouble,
+  GLclampd,
+  GLDEBUGPROC, GLDEBUGPROCFunc, makeGLDEBUGPROC,
+  GLvoid,
+
+  -- * Pre-standard OpenGL types.
+  GLcharARB,
+  GLint64EXT,
+  GLuint64EXT,
+  GLintptrARB,
+  GLsizeiptrARB,
+  GLhalfARB,
+  GLhalfNV,
+  GLDEBUGPROCAMD, GLDEBUGPROCAMDFunc, makeGLDEBUGPROCAMD,
+  GLDEBUGPROCARB, GLDEBUGPROCARBFunc, makeGLDEBUGPROCARB,
+  GLDEBUGPROCKHR, GLDEBUGPROCKHRFunc, makeGLDEBUGPROCKHR,
+
+  -- * Types from various extensions.
+  GLclampx,
+  GLhandleARB,
+  GLvdpauSurfaceNV,
+  GLeglImageOES,
+  GLeglClientBufferEXT,
+  GLVULKANPROCNVFunc,
+  GLVULKANPROCNV,
+
+  -- * Deprecated functions for @gl@ compatibility.
+  mkGLDEBUGPROC,
+  mkGLDEBUGPROCAMD,
+  mkGLDEBUGPROCARB,
+  mkGLDEBUGPROCKHR
+
+) where
+
+import Data.Int
+import Data.Word
+import Foreign.C.Types
+import Foreign.Ptr
+import Numeric.Fixed
+import Numeric.Half
+
+--------------------------------------------------------------------------------
+
+-- | 8bit boolean.
+type GLboolean = Word8
+
+-- | 8bit signed two\'s complement binary integer.
+type GLbyte = Int8
+
+-- | 8bit unsigned binary integer.
+type GLubyte = Word8
+
+-- | 8bit characters making up strings.
+type GLchar = CChar
+
+-- | 16bit signed two\'s complement binary integer.
+type GLshort = Int16
+
+-- | 16bit unsigned binary integer.
+type GLushort = Word16
+
+-- | 32bit signed two\'s complement binary integer.
+type GLint = Int32
+
+-- | 32bit unsigned binary integer.
+type GLuint = Word32
+
+-- | 32bit signed two\'s complement 16.16 scaled integer.
+type GLfixed = Fixed
+
+-- | 64bit signed two\'s complement binary integer.
+type GLint64 = Int64
+
+-- | 64bit unsigned binary integer.
+type GLuint64 = Word64
+
+-- | 32bit non-negative binary integer size.
+type GLsizei = Int32
+
+-- | 32bit enumerated binary integer value.
+type GLenum = Word32
+
+-- | Pointer-sized signed two\'s complement binary integer.
+type GLintptr = CPtrdiff
+-- NOTE: OpenGL ES uses khronos_intptr_t for this.
+
+-- | Pointer-sized non-negative binary integer size.
+type GLsizeiptr = CPtrdiff
+-- NOTE: OpenGL ES uses khronos_ssize_t for this.
+
+-- | Pointer-sized sync object handle.
+type GLsync = Ptr ()
+
+-- | 32bit bit field.
+type GLbitfield = Word32
+
+-- | 16bit half-precision floating-point value encoded in an unsigned scalar.
+type GLhalf = Half
+
+-- | 32bit floating-point value.
+type GLfloat = Float
+
+-- | 32bit floating-point value clamped to [0, 1].
+type GLclampf = Float
+
+-- | 64bit floating-point value.
+type GLdouble = Double
+
+-- | 64bit floating-point value clamped to [0, 1].
+type GLclampd = Double
+
+-- | A pointer to a debug callback.
+type GLDEBUGPROC = FunPtr GLDEBUGPROCFunc
+
+-- | Debug callback.
+type GLDEBUGPROCFunc
+  =  GLenum -- ^ @source@.
+  -> GLenum -- ^ @type@.
+  -> GLuint -- ^ @id@.
+  -> GLenum -- ^ @severity@.
+  -> GLsizei -- ^ @length@.
+  -> Ptr GLchar -- ^ @message@.
+  -> Ptr () -- ^ @userParam@.
+  -> IO ()
+
+-- | The storage associated with the resulting 'FunPtr' has to be released with
+-- 'freeHaskellFunPtr' when it is no longer required.
+foreign import CALLCONV "wrapper"
+   makeGLDEBUGPROC :: GLDEBUGPROCFunc -> IO (FunPtr GLDEBUGPROCFunc)
+
+-- | Not an actual GL type, though used in headers in the past.
+type GLvoid = ()
+
+type GLcharARB = CChar
+
+type GLint64EXT = Int64
+
+type GLuint64EXT = Word64
+
+type GLintptrARB = CPtrdiff
+
+type GLsizeiptrARB = CPtrdiff
+
+type GLhalfARB = Half
+
+type GLhalfNV = Half
+
+type GLDEBUGPROCAMD = FunPtr GLDEBUGPROCAMDFunc
+
+-- | Debug callback.
+type GLDEBUGPROCAMDFunc
+  =  GLuint -- ^ @id@.
+  -> GLenum -- ^ @category@.
+  -> GLenum -- ^ @severity@.
+  -> GLsizei -- ^ @length@.
+  -> Ptr GLchar -- ^ @message@.
+  -> Ptr () -- ^ @userParam@.
+  -> IO ()
+
+-- | The storage associated with the resulting 'FunPtr' has to be released with
+-- 'freeHaskellFunPtr' when it is no longer required.
+foreign import CALLCONV "wrapper"
+  makeGLDEBUGPROCAMD :: GLDEBUGPROCAMDFunc -> IO (FunPtr GLDEBUGPROCAMDFunc)
+
+type GLDEBUGPROCARB = GLDEBUGPROC
+
+type GLDEBUGPROCARBFunc = GLDEBUGPROCFunc
+
+makeGLDEBUGPROCARB :: GLDEBUGPROCARBFunc -> IO (FunPtr GLDEBUGPROCARBFunc)
+makeGLDEBUGPROCARB = makeGLDEBUGPROC
+
+type GLDEBUGPROCKHR = GLDEBUGPROC
+
+type GLDEBUGPROCKHRFunc = GLDEBUGPROCFunc
+
+makeGLDEBUGPROCKHR :: GLDEBUGPROCKHRFunc -> IO (FunPtr GLDEBUGPROCKHRFunc)
+makeGLDEBUGPROCKHR = makeGLDEBUGPROC
+
+type GLclampx = Fixed
+
+#if HANDLE_IS_POINTER
+type GLhandleARB = Ptr ()
+#else
+type GLhandleARB = Word32
+#endif
+
+type GLvdpauSurfaceNV = GLintptr
+
+type GLeglImageOES = Ptr ()
+
+type GLeglClientBufferEXT = Ptr ()
+
+type GLVULKANPROCNV = FunPtr GLVULKANPROCNVFunc
+
+type GLVULKANPROCNVFunc = IO ()
+
+{-# DEPRECATED mkGLDEBUGPROC "Use 'makeGLDEBUGPROC' instead." #-}
+mkGLDEBUGPROC :: GLDEBUGPROCFunc -> IO (FunPtr GLDEBUGPROCFunc)
+mkGLDEBUGPROC = makeGLDEBUGPROC
+
+{-# DEPRECATED mkGLDEBUGPROCAMD "Use 'makeGLDEBUGPROCAMD' instead." #-}
+mkGLDEBUGPROCAMD :: GLDEBUGPROCAMDFunc -> IO (FunPtr GLDEBUGPROCAMDFunc)
+mkGLDEBUGPROCAMD = makeGLDEBUGPROCAMD
+
+{-# DEPRECATED mkGLDEBUGPROCARB "Use 'makekGLDEBUGPROCARB' instead." #-}
+mkGLDEBUGPROCARB :: GLDEBUGPROCARBFunc -> IO (FunPtr GLDEBUGPROCARBFunc)
+mkGLDEBUGPROCARB = makeGLDEBUGPROCARB
+
+{-# DEPRECATED mkGLDEBUGPROCKHR "Use 'makeGLDEBUGPROCKHR' instead." #-}
+mkGLDEBUGPROCKHR :: GLDEBUGPROCKHRFunc -> IO (FunPtr GLDEBUGPROCKHRFunc)
+mkGLDEBUGPROCKHR = makeGLDEBUGPROCKHR
diff --git a/src/Graphics/GL/Version10.hs b/src/Graphics/GL/Version10.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Version10.hs
@@ -0,0 +1,869 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Version10
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Version10 (
+  -- * Types
+  GLbitfield,
+  GLboolean,
+  GLbyte,
+  GLdouble,
+  GLenum,
+  GLfloat,
+  GLint,
+  GLshort,
+  GLsizei,
+  GLubyte,
+  GLuint,
+  GLushort,
+  GLvoid,
+  -- * Enums
+  pattern GL_2D,
+  pattern GL_2_BYTES,
+  pattern GL_3D,
+  pattern GL_3D_COLOR,
+  pattern GL_3D_COLOR_TEXTURE,
+  pattern GL_3_BYTES,
+  pattern GL_4D_COLOR_TEXTURE,
+  pattern GL_4_BYTES,
+  pattern GL_ACCUM,
+  pattern GL_ACCUM_ALPHA_BITS,
+  pattern GL_ACCUM_BLUE_BITS,
+  pattern GL_ACCUM_BUFFER_BIT,
+  pattern GL_ACCUM_CLEAR_VALUE,
+  pattern GL_ACCUM_GREEN_BITS,
+  pattern GL_ACCUM_RED_BITS,
+  pattern GL_ADD,
+  pattern GL_ALL_ATTRIB_BITS,
+  pattern GL_ALPHA,
+  pattern GL_ALPHA12,
+  pattern GL_ALPHA16,
+  pattern GL_ALPHA4,
+  pattern GL_ALPHA8,
+  pattern GL_ALPHA_BIAS,
+  pattern GL_ALPHA_BITS,
+  pattern GL_ALPHA_SCALE,
+  pattern GL_ALPHA_TEST,
+  pattern GL_ALPHA_TEST_FUNC,
+  pattern GL_ALPHA_TEST_REF,
+  pattern GL_ALWAYS,
+  pattern GL_AMBIENT,
+  pattern GL_AMBIENT_AND_DIFFUSE,
+  pattern GL_AND,
+  pattern GL_AND_INVERTED,
+  pattern GL_AND_REVERSE,
+  pattern GL_ATTRIB_STACK_DEPTH,
+  pattern GL_AUTO_NORMAL,
+  pattern GL_AUX0,
+  pattern GL_AUX1,
+  pattern GL_AUX2,
+  pattern GL_AUX3,
+  pattern GL_AUX_BUFFERS,
+  pattern GL_BACK,
+  pattern GL_BACK_LEFT,
+  pattern GL_BACK_RIGHT,
+  pattern GL_BITMAP,
+  pattern GL_BITMAP_TOKEN,
+  pattern GL_BLEND,
+  pattern GL_BLEND_DST,
+  pattern GL_BLEND_SRC,
+  pattern GL_BLUE,
+  pattern GL_BLUE_BIAS,
+  pattern GL_BLUE_BITS,
+  pattern GL_BLUE_SCALE,
+  pattern GL_BYTE,
+  pattern GL_C3F_V3F,
+  pattern GL_C4F_N3F_V3F,
+  pattern GL_C4UB_V2F,
+  pattern GL_C4UB_V3F,
+  pattern GL_CCW,
+  pattern GL_CLAMP,
+  pattern GL_CLEAR,
+  pattern GL_CLIENT_ALL_ATTRIB_BITS,
+  pattern GL_CLIENT_ATTRIB_STACK_DEPTH,
+  pattern GL_CLIENT_PIXEL_STORE_BIT,
+  pattern GL_CLIENT_VERTEX_ARRAY_BIT,
+  pattern GL_CLIP_PLANE0,
+  pattern GL_CLIP_PLANE1,
+  pattern GL_CLIP_PLANE2,
+  pattern GL_CLIP_PLANE3,
+  pattern GL_CLIP_PLANE4,
+  pattern GL_CLIP_PLANE5,
+  pattern GL_COEFF,
+  pattern GL_COLOR,
+  pattern GL_COLOR_ARRAY,
+  pattern GL_COLOR_ARRAY_POINTER,
+  pattern GL_COLOR_ARRAY_SIZE,
+  pattern GL_COLOR_ARRAY_STRIDE,
+  pattern GL_COLOR_ARRAY_TYPE,
+  pattern GL_COLOR_BUFFER_BIT,
+  pattern GL_COLOR_CLEAR_VALUE,
+  pattern GL_COLOR_INDEX,
+  pattern GL_COLOR_INDEXES,
+  pattern GL_COLOR_LOGIC_OP,
+  pattern GL_COLOR_MATERIAL,
+  pattern GL_COLOR_MATERIAL_FACE,
+  pattern GL_COLOR_MATERIAL_PARAMETER,
+  pattern GL_COLOR_WRITEMASK,
+  pattern GL_COMPILE,
+  pattern GL_COMPILE_AND_EXECUTE,
+  pattern GL_CONSTANT_ATTENUATION,
+  pattern GL_COPY,
+  pattern GL_COPY_INVERTED,
+  pattern GL_COPY_PIXEL_TOKEN,
+  pattern GL_CULL_FACE,
+  pattern GL_CULL_FACE_MODE,
+  pattern GL_CURRENT_BIT,
+  pattern GL_CURRENT_COLOR,
+  pattern GL_CURRENT_INDEX,
+  pattern GL_CURRENT_NORMAL,
+  pattern GL_CURRENT_RASTER_COLOR,
+  pattern GL_CURRENT_RASTER_DISTANCE,
+  pattern GL_CURRENT_RASTER_INDEX,
+  pattern GL_CURRENT_RASTER_POSITION,
+  pattern GL_CURRENT_RASTER_POSITION_VALID,
+  pattern GL_CURRENT_RASTER_TEXTURE_COORDS,
+  pattern GL_CURRENT_TEXTURE_COORDS,
+  pattern GL_CW,
+  pattern GL_DECAL,
+  pattern GL_DECR,
+  pattern GL_DEPTH,
+  pattern GL_DEPTH_BIAS,
+  pattern GL_DEPTH_BITS,
+  pattern GL_DEPTH_BUFFER_BIT,
+  pattern GL_DEPTH_CLEAR_VALUE,
+  pattern GL_DEPTH_COMPONENT,
+  pattern GL_DEPTH_FUNC,
+  pattern GL_DEPTH_RANGE,
+  pattern GL_DEPTH_SCALE,
+  pattern GL_DEPTH_TEST,
+  pattern GL_DEPTH_WRITEMASK,
+  pattern GL_DIFFUSE,
+  pattern GL_DITHER,
+  pattern GL_DOMAIN,
+  pattern GL_DONT_CARE,
+  pattern GL_DOUBLE,
+  pattern GL_DOUBLEBUFFER,
+  pattern GL_DRAW_BUFFER,
+  pattern GL_DRAW_PIXEL_TOKEN,
+  pattern GL_DST_ALPHA,
+  pattern GL_DST_COLOR,
+  pattern GL_EDGE_FLAG,
+  pattern GL_EDGE_FLAG_ARRAY,
+  pattern GL_EDGE_FLAG_ARRAY_POINTER,
+  pattern GL_EDGE_FLAG_ARRAY_STRIDE,
+  pattern GL_EMISSION,
+  pattern GL_ENABLE_BIT,
+  pattern GL_EQUAL,
+  pattern GL_EQUIV,
+  pattern GL_EVAL_BIT,
+  pattern GL_EXP,
+  pattern GL_EXP2,
+  pattern GL_EXTENSIONS,
+  pattern GL_EYE_LINEAR,
+  pattern GL_EYE_PLANE,
+  pattern GL_FALSE,
+  pattern GL_FASTEST,
+  pattern GL_FEEDBACK,
+  pattern GL_FEEDBACK_BUFFER_POINTER,
+  pattern GL_FEEDBACK_BUFFER_SIZE,
+  pattern GL_FEEDBACK_BUFFER_TYPE,
+  pattern GL_FILL,
+  pattern GL_FLAT,
+  pattern GL_FLOAT,
+  pattern GL_FOG,
+  pattern GL_FOG_BIT,
+  pattern GL_FOG_COLOR,
+  pattern GL_FOG_DENSITY,
+  pattern GL_FOG_END,
+  pattern GL_FOG_HINT,
+  pattern GL_FOG_INDEX,
+  pattern GL_FOG_MODE,
+  pattern GL_FOG_START,
+  pattern GL_FRONT,
+  pattern GL_FRONT_AND_BACK,
+  pattern GL_FRONT_FACE,
+  pattern GL_FRONT_LEFT,
+  pattern GL_FRONT_RIGHT,
+  pattern GL_GEQUAL,
+  pattern GL_GREATER,
+  pattern GL_GREEN,
+  pattern GL_GREEN_BIAS,
+  pattern GL_GREEN_BITS,
+  pattern GL_GREEN_SCALE,
+  pattern GL_HINT_BIT,
+  pattern GL_INCR,
+  pattern GL_INDEX_ARRAY,
+  pattern GL_INDEX_ARRAY_POINTER,
+  pattern GL_INDEX_ARRAY_STRIDE,
+  pattern GL_INDEX_ARRAY_TYPE,
+  pattern GL_INDEX_BITS,
+  pattern GL_INDEX_CLEAR_VALUE,
+  pattern GL_INDEX_LOGIC_OP,
+  pattern GL_INDEX_MODE,
+  pattern GL_INDEX_OFFSET,
+  pattern GL_INDEX_SHIFT,
+  pattern GL_INDEX_WRITEMASK,
+  pattern GL_INT,
+  pattern GL_INTENSITY,
+  pattern GL_INTENSITY12,
+  pattern GL_INTENSITY16,
+  pattern GL_INTENSITY4,
+  pattern GL_INTENSITY8,
+  pattern GL_INVALID_ENUM,
+  pattern GL_INVALID_OPERATION,
+  pattern GL_INVALID_VALUE,
+  pattern GL_INVERT,
+  pattern GL_KEEP,
+  pattern GL_LEFT,
+  pattern GL_LEQUAL,
+  pattern GL_LESS,
+  pattern GL_LIGHT0,
+  pattern GL_LIGHT1,
+  pattern GL_LIGHT2,
+  pattern GL_LIGHT3,
+  pattern GL_LIGHT4,
+  pattern GL_LIGHT5,
+  pattern GL_LIGHT6,
+  pattern GL_LIGHT7,
+  pattern GL_LIGHTING,
+  pattern GL_LIGHTING_BIT,
+  pattern GL_LIGHT_MODEL_AMBIENT,
+  pattern GL_LIGHT_MODEL_LOCAL_VIEWER,
+  pattern GL_LIGHT_MODEL_TWO_SIDE,
+  pattern GL_LINE,
+  pattern GL_LINEAR,
+  pattern GL_LINEAR_ATTENUATION,
+  pattern GL_LINEAR_MIPMAP_LINEAR,
+  pattern GL_LINEAR_MIPMAP_NEAREST,
+  pattern GL_LINES,
+  pattern GL_LINE_BIT,
+  pattern GL_LINE_LOOP,
+  pattern GL_LINE_RESET_TOKEN,
+  pattern GL_LINE_SMOOTH,
+  pattern GL_LINE_SMOOTH_HINT,
+  pattern GL_LINE_STIPPLE,
+  pattern GL_LINE_STIPPLE_PATTERN,
+  pattern GL_LINE_STIPPLE_REPEAT,
+  pattern GL_LINE_STRIP,
+  pattern GL_LINE_TOKEN,
+  pattern GL_LINE_WIDTH,
+  pattern GL_LINE_WIDTH_GRANULARITY,
+  pattern GL_LINE_WIDTH_RANGE,
+  pattern GL_LIST_BASE,
+  pattern GL_LIST_BIT,
+  pattern GL_LIST_INDEX,
+  pattern GL_LIST_MODE,
+  pattern GL_LOAD,
+  pattern GL_LOGIC_OP,
+  pattern GL_LOGIC_OP_MODE,
+  pattern GL_LUMINANCE,
+  pattern GL_LUMINANCE12,
+  pattern GL_LUMINANCE12_ALPHA12,
+  pattern GL_LUMINANCE12_ALPHA4,
+  pattern GL_LUMINANCE16,
+  pattern GL_LUMINANCE16_ALPHA16,
+  pattern GL_LUMINANCE4,
+  pattern GL_LUMINANCE4_ALPHA4,
+  pattern GL_LUMINANCE6_ALPHA2,
+  pattern GL_LUMINANCE8,
+  pattern GL_LUMINANCE8_ALPHA8,
+  pattern GL_LUMINANCE_ALPHA,
+  pattern GL_MAP1_COLOR_4,
+  pattern GL_MAP1_GRID_DOMAIN,
+  pattern GL_MAP1_GRID_SEGMENTS,
+  pattern GL_MAP1_INDEX,
+  pattern GL_MAP1_NORMAL,
+  pattern GL_MAP1_TEXTURE_COORD_1,
+  pattern GL_MAP1_TEXTURE_COORD_2,
+  pattern GL_MAP1_TEXTURE_COORD_3,
+  pattern GL_MAP1_TEXTURE_COORD_4,
+  pattern GL_MAP1_VERTEX_3,
+  pattern GL_MAP1_VERTEX_4,
+  pattern GL_MAP2_COLOR_4,
+  pattern GL_MAP2_GRID_DOMAIN,
+  pattern GL_MAP2_GRID_SEGMENTS,
+  pattern GL_MAP2_INDEX,
+  pattern GL_MAP2_NORMAL,
+  pattern GL_MAP2_TEXTURE_COORD_1,
+  pattern GL_MAP2_TEXTURE_COORD_2,
+  pattern GL_MAP2_TEXTURE_COORD_3,
+  pattern GL_MAP2_TEXTURE_COORD_4,
+  pattern GL_MAP2_VERTEX_3,
+  pattern GL_MAP2_VERTEX_4,
+  pattern GL_MAP_COLOR,
+  pattern GL_MAP_STENCIL,
+  pattern GL_MATRIX_MODE,
+  pattern GL_MAX_ATTRIB_STACK_DEPTH,
+  pattern GL_MAX_CLIENT_ATTRIB_STACK_DEPTH,
+  pattern GL_MAX_CLIP_PLANES,
+  pattern GL_MAX_EVAL_ORDER,
+  pattern GL_MAX_LIGHTS,
+  pattern GL_MAX_LIST_NESTING,
+  pattern GL_MAX_MODELVIEW_STACK_DEPTH,
+  pattern GL_MAX_NAME_STACK_DEPTH,
+  pattern GL_MAX_PIXEL_MAP_TABLE,
+  pattern GL_MAX_PROJECTION_STACK_DEPTH,
+  pattern GL_MAX_TEXTURE_SIZE,
+  pattern GL_MAX_TEXTURE_STACK_DEPTH,
+  pattern GL_MAX_VIEWPORT_DIMS,
+  pattern GL_MODELVIEW,
+  pattern GL_MODELVIEW_MATRIX,
+  pattern GL_MODELVIEW_STACK_DEPTH,
+  pattern GL_MODULATE,
+  pattern GL_MULT,
+  pattern GL_N3F_V3F,
+  pattern GL_NAME_STACK_DEPTH,
+  pattern GL_NAND,
+  pattern GL_NEAREST,
+  pattern GL_NEAREST_MIPMAP_LINEAR,
+  pattern GL_NEAREST_MIPMAP_NEAREST,
+  pattern GL_NEVER,
+  pattern GL_NICEST,
+  pattern GL_NONE,
+  pattern GL_NOOP,
+  pattern GL_NOR,
+  pattern GL_NORMALIZE,
+  pattern GL_NORMAL_ARRAY,
+  pattern GL_NORMAL_ARRAY_POINTER,
+  pattern GL_NORMAL_ARRAY_STRIDE,
+  pattern GL_NORMAL_ARRAY_TYPE,
+  pattern GL_NOTEQUAL,
+  pattern GL_NO_ERROR,
+  pattern GL_OBJECT_LINEAR,
+  pattern GL_OBJECT_PLANE,
+  pattern GL_ONE,
+  pattern GL_ONE_MINUS_DST_ALPHA,
+  pattern GL_ONE_MINUS_DST_COLOR,
+  pattern GL_ONE_MINUS_SRC_ALPHA,
+  pattern GL_ONE_MINUS_SRC_COLOR,
+  pattern GL_OR,
+  pattern GL_ORDER,
+  pattern GL_OR_INVERTED,
+  pattern GL_OR_REVERSE,
+  pattern GL_OUT_OF_MEMORY,
+  pattern GL_PACK_ALIGNMENT,
+  pattern GL_PACK_LSB_FIRST,
+  pattern GL_PACK_ROW_LENGTH,
+  pattern GL_PACK_SKIP_PIXELS,
+  pattern GL_PACK_SKIP_ROWS,
+  pattern GL_PACK_SWAP_BYTES,
+  pattern GL_PASS_THROUGH_TOKEN,
+  pattern GL_PERSPECTIVE_CORRECTION_HINT,
+  pattern GL_PIXEL_MAP_A_TO_A,
+  pattern GL_PIXEL_MAP_A_TO_A_SIZE,
+  pattern GL_PIXEL_MAP_B_TO_B,
+  pattern GL_PIXEL_MAP_B_TO_B_SIZE,
+  pattern GL_PIXEL_MAP_G_TO_G,
+  pattern GL_PIXEL_MAP_G_TO_G_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_A,
+  pattern GL_PIXEL_MAP_I_TO_A_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_B,
+  pattern GL_PIXEL_MAP_I_TO_B_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_G,
+  pattern GL_PIXEL_MAP_I_TO_G_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_I,
+  pattern GL_PIXEL_MAP_I_TO_I_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_R,
+  pattern GL_PIXEL_MAP_I_TO_R_SIZE,
+  pattern GL_PIXEL_MAP_R_TO_R,
+  pattern GL_PIXEL_MAP_R_TO_R_SIZE,
+  pattern GL_PIXEL_MAP_S_TO_S,
+  pattern GL_PIXEL_MAP_S_TO_S_SIZE,
+  pattern GL_PIXEL_MODE_BIT,
+  pattern GL_POINT,
+  pattern GL_POINTS,
+  pattern GL_POINT_BIT,
+  pattern GL_POINT_SIZE,
+  pattern GL_POINT_SIZE_GRANULARITY,
+  pattern GL_POINT_SIZE_RANGE,
+  pattern GL_POINT_SMOOTH,
+  pattern GL_POINT_SMOOTH_HINT,
+  pattern GL_POINT_TOKEN,
+  pattern GL_POLYGON,
+  pattern GL_POLYGON_BIT,
+  pattern GL_POLYGON_MODE,
+  pattern GL_POLYGON_OFFSET_FACTOR,
+  pattern GL_POLYGON_OFFSET_FILL,
+  pattern GL_POLYGON_OFFSET_LINE,
+  pattern GL_POLYGON_OFFSET_POINT,
+  pattern GL_POLYGON_OFFSET_UNITS,
+  pattern GL_POLYGON_SMOOTH,
+  pattern GL_POLYGON_SMOOTH_HINT,
+  pattern GL_POLYGON_STIPPLE,
+  pattern GL_POLYGON_STIPPLE_BIT,
+  pattern GL_POLYGON_TOKEN,
+  pattern GL_POSITION,
+  pattern GL_PROJECTION,
+  pattern GL_PROJECTION_MATRIX,
+  pattern GL_PROJECTION_STACK_DEPTH,
+  pattern GL_PROXY_TEXTURE_1D,
+  pattern GL_PROXY_TEXTURE_2D,
+  pattern GL_Q,
+  pattern GL_QUADRATIC_ATTENUATION,
+  pattern GL_QUADS,
+  pattern GL_QUAD_STRIP,
+  pattern GL_R,
+  pattern GL_R3_G3_B2,
+  pattern GL_READ_BUFFER,
+  pattern GL_RED,
+  pattern GL_RED_BIAS,
+  pattern GL_RED_BITS,
+  pattern GL_RED_SCALE,
+  pattern GL_RENDER,
+  pattern GL_RENDERER,
+  pattern GL_RENDER_MODE,
+  pattern GL_REPEAT,
+  pattern GL_REPLACE,
+  pattern GL_RETURN,
+  pattern GL_RGB,
+  pattern GL_RGB10,
+  pattern GL_RGB10_A2,
+  pattern GL_RGB12,
+  pattern GL_RGB16,
+  pattern GL_RGB4,
+  pattern GL_RGB5,
+  pattern GL_RGB5_A1,
+  pattern GL_RGB8,
+  pattern GL_RGBA,
+  pattern GL_RGBA12,
+  pattern GL_RGBA16,
+  pattern GL_RGBA2,
+  pattern GL_RGBA4,
+  pattern GL_RGBA8,
+  pattern GL_RGBA_MODE,
+  pattern GL_RIGHT,
+  pattern GL_S,
+  pattern GL_SCISSOR_BIT,
+  pattern GL_SCISSOR_BOX,
+  pattern GL_SCISSOR_TEST,
+  pattern GL_SELECT,
+  pattern GL_SELECTION_BUFFER_POINTER,
+  pattern GL_SELECTION_BUFFER_SIZE,
+  pattern GL_SET,
+  pattern GL_SHADE_MODEL,
+  pattern GL_SHININESS,
+  pattern GL_SHORT,
+  pattern GL_SMOOTH,
+  pattern GL_SPECULAR,
+  pattern GL_SPHERE_MAP,
+  pattern GL_SPOT_CUTOFF,
+  pattern GL_SPOT_DIRECTION,
+  pattern GL_SPOT_EXPONENT,
+  pattern GL_SRC_ALPHA,
+  pattern GL_SRC_ALPHA_SATURATE,
+  pattern GL_SRC_COLOR,
+  pattern GL_STACK_OVERFLOW,
+  pattern GL_STACK_UNDERFLOW,
+  pattern GL_STENCIL,
+  pattern GL_STENCIL_BITS,
+  pattern GL_STENCIL_BUFFER_BIT,
+  pattern GL_STENCIL_CLEAR_VALUE,
+  pattern GL_STENCIL_FAIL,
+  pattern GL_STENCIL_FUNC,
+  pattern GL_STENCIL_INDEX,
+  pattern GL_STENCIL_PASS_DEPTH_FAIL,
+  pattern GL_STENCIL_PASS_DEPTH_PASS,
+  pattern GL_STENCIL_REF,
+  pattern GL_STENCIL_TEST,
+  pattern GL_STENCIL_VALUE_MASK,
+  pattern GL_STENCIL_WRITEMASK,
+  pattern GL_STEREO,
+  pattern GL_SUBPIXEL_BITS,
+  pattern GL_T,
+  pattern GL_T2F_C3F_V3F,
+  pattern GL_T2F_C4F_N3F_V3F,
+  pattern GL_T2F_C4UB_V3F,
+  pattern GL_T2F_N3F_V3F,
+  pattern GL_T2F_V3F,
+  pattern GL_T4F_C4F_N3F_V4F,
+  pattern GL_T4F_V4F,
+  pattern GL_TEXTURE,
+  pattern GL_TEXTURE_1D,
+  pattern GL_TEXTURE_2D,
+  pattern GL_TEXTURE_ALPHA_SIZE,
+  pattern GL_TEXTURE_BINDING_1D,
+  pattern GL_TEXTURE_BINDING_2D,
+  pattern GL_TEXTURE_BIT,
+  pattern GL_TEXTURE_BLUE_SIZE,
+  pattern GL_TEXTURE_BORDER,
+  pattern GL_TEXTURE_BORDER_COLOR,
+  pattern GL_TEXTURE_COMPONENTS,
+  pattern GL_TEXTURE_COORD_ARRAY,
+  pattern GL_TEXTURE_COORD_ARRAY_POINTER,
+  pattern GL_TEXTURE_COORD_ARRAY_SIZE,
+  pattern GL_TEXTURE_COORD_ARRAY_STRIDE,
+  pattern GL_TEXTURE_COORD_ARRAY_TYPE,
+  pattern GL_TEXTURE_ENV,
+  pattern GL_TEXTURE_ENV_COLOR,
+  pattern GL_TEXTURE_ENV_MODE,
+  pattern GL_TEXTURE_GEN_MODE,
+  pattern GL_TEXTURE_GEN_Q,
+  pattern GL_TEXTURE_GEN_R,
+  pattern GL_TEXTURE_GEN_S,
+  pattern GL_TEXTURE_GEN_T,
+  pattern GL_TEXTURE_GREEN_SIZE,
+  pattern GL_TEXTURE_HEIGHT,
+  pattern GL_TEXTURE_INTENSITY_SIZE,
+  pattern GL_TEXTURE_INTERNAL_FORMAT,
+  pattern GL_TEXTURE_LUMINANCE_SIZE,
+  pattern GL_TEXTURE_MAG_FILTER,
+  pattern GL_TEXTURE_MATRIX,
+  pattern GL_TEXTURE_MIN_FILTER,
+  pattern GL_TEXTURE_PRIORITY,
+  pattern GL_TEXTURE_RED_SIZE,
+  pattern GL_TEXTURE_RESIDENT,
+  pattern GL_TEXTURE_STACK_DEPTH,
+  pattern GL_TEXTURE_WIDTH,
+  pattern GL_TEXTURE_WRAP_S,
+  pattern GL_TEXTURE_WRAP_T,
+  pattern GL_TRANSFORM_BIT,
+  pattern GL_TRIANGLES,
+  pattern GL_TRIANGLE_FAN,
+  pattern GL_TRIANGLE_STRIP,
+  pattern GL_TRUE,
+  pattern GL_UNPACK_ALIGNMENT,
+  pattern GL_UNPACK_LSB_FIRST,
+  pattern GL_UNPACK_ROW_LENGTH,
+  pattern GL_UNPACK_SKIP_PIXELS,
+  pattern GL_UNPACK_SKIP_ROWS,
+  pattern GL_UNPACK_SWAP_BYTES,
+  pattern GL_UNSIGNED_BYTE,
+  pattern GL_UNSIGNED_INT,
+  pattern GL_UNSIGNED_SHORT,
+  pattern GL_V2F,
+  pattern GL_V3F,
+  pattern GL_VENDOR,
+  pattern GL_VERSION,
+  pattern GL_VERTEX_ARRAY,
+  pattern GL_VERTEX_ARRAY_POINTER,
+  pattern GL_VERTEX_ARRAY_SIZE,
+  pattern GL_VERTEX_ARRAY_STRIDE,
+  pattern GL_VERTEX_ARRAY_TYPE,
+  pattern GL_VIEWPORT,
+  pattern GL_VIEWPORT_BIT,
+  pattern GL_XOR,
+  pattern GL_ZERO,
+  pattern GL_ZOOM_X,
+  pattern GL_ZOOM_Y,
+  -- * Functions
+  glAccum,
+  glAlphaFunc,
+  glBegin,
+  glBitmap,
+  glBlendFunc,
+  glCallList,
+  glCallLists,
+  glClear,
+  glClearAccum,
+  glClearColor,
+  glClearDepth,
+  glClearIndex,
+  glClearStencil,
+  glClipPlane,
+  glColor3b,
+  glColor3bv,
+  glColor3d,
+  glColor3dv,
+  glColor3f,
+  glColor3fv,
+  glColor3i,
+  glColor3iv,
+  glColor3s,
+  glColor3sv,
+  glColor3ub,
+  glColor3ubv,
+  glColor3ui,
+  glColor3uiv,
+  glColor3us,
+  glColor3usv,
+  glColor4b,
+  glColor4bv,
+  glColor4d,
+  glColor4dv,
+  glColor4f,
+  glColor4fv,
+  glColor4i,
+  glColor4iv,
+  glColor4s,
+  glColor4sv,
+  glColor4ub,
+  glColor4ubv,
+  glColor4ui,
+  glColor4uiv,
+  glColor4us,
+  glColor4usv,
+  glColorMask,
+  glColorMaterial,
+  glCopyPixels,
+  glCullFace,
+  glDeleteLists,
+  glDepthFunc,
+  glDepthMask,
+  glDepthRange,
+  glDisable,
+  glDrawBuffer,
+  glDrawPixels,
+  glEdgeFlag,
+  glEdgeFlagv,
+  glEnable,
+  glEnd,
+  glEndList,
+  glEvalCoord1d,
+  glEvalCoord1dv,
+  glEvalCoord1f,
+  glEvalCoord1fv,
+  glEvalCoord2d,
+  glEvalCoord2dv,
+  glEvalCoord2f,
+  glEvalCoord2fv,
+  glEvalMesh1,
+  glEvalMesh2,
+  glEvalPoint1,
+  glEvalPoint2,
+  glFeedbackBuffer,
+  glFinish,
+  glFlush,
+  glFogf,
+  glFogfv,
+  glFogi,
+  glFogiv,
+  glFrontFace,
+  glFrustum,
+  glGenLists,
+  glGetBooleanv,
+  glGetClipPlane,
+  glGetDoublev,
+  glGetError,
+  glGetFloatv,
+  glGetIntegerv,
+  glGetLightfv,
+  glGetLightiv,
+  glGetMapdv,
+  glGetMapfv,
+  glGetMapiv,
+  glGetMaterialfv,
+  glGetMaterialiv,
+  glGetPixelMapfv,
+  glGetPixelMapuiv,
+  glGetPixelMapusv,
+  glGetPolygonStipple,
+  glGetString,
+  glGetTexEnvfv,
+  glGetTexEnviv,
+  glGetTexGendv,
+  glGetTexGenfv,
+  glGetTexGeniv,
+  glGetTexImage,
+  glGetTexLevelParameterfv,
+  glGetTexLevelParameteriv,
+  glGetTexParameterfv,
+  glGetTexParameteriv,
+  glHint,
+  glIndexMask,
+  glIndexd,
+  glIndexdv,
+  glIndexf,
+  glIndexfv,
+  glIndexi,
+  glIndexiv,
+  glIndexs,
+  glIndexsv,
+  glInitNames,
+  glIsEnabled,
+  glIsList,
+  glLightModelf,
+  glLightModelfv,
+  glLightModeli,
+  glLightModeliv,
+  glLightf,
+  glLightfv,
+  glLighti,
+  glLightiv,
+  glLineStipple,
+  glLineWidth,
+  glListBase,
+  glLoadIdentity,
+  glLoadMatrixd,
+  glLoadMatrixf,
+  glLoadName,
+  glLogicOp,
+  glMap1d,
+  glMap1f,
+  glMap2d,
+  glMap2f,
+  glMapGrid1d,
+  glMapGrid1f,
+  glMapGrid2d,
+  glMapGrid2f,
+  glMaterialf,
+  glMaterialfv,
+  glMateriali,
+  glMaterialiv,
+  glMatrixMode,
+  glMultMatrixd,
+  glMultMatrixf,
+  glNewList,
+  glNormal3b,
+  glNormal3bv,
+  glNormal3d,
+  glNormal3dv,
+  glNormal3f,
+  glNormal3fv,
+  glNormal3i,
+  glNormal3iv,
+  glNormal3s,
+  glNormal3sv,
+  glOrtho,
+  glPassThrough,
+  glPixelMapfv,
+  glPixelMapuiv,
+  glPixelMapusv,
+  glPixelStoref,
+  glPixelStorei,
+  glPixelTransferf,
+  glPixelTransferi,
+  glPixelZoom,
+  glPointSize,
+  glPolygonMode,
+  glPolygonStipple,
+  glPopAttrib,
+  glPopMatrix,
+  glPopName,
+  glPushAttrib,
+  glPushMatrix,
+  glPushName,
+  glRasterPos2d,
+  glRasterPos2dv,
+  glRasterPos2f,
+  glRasterPos2fv,
+  glRasterPos2i,
+  glRasterPos2iv,
+  glRasterPos2s,
+  glRasterPos2sv,
+  glRasterPos3d,
+  glRasterPos3dv,
+  glRasterPos3f,
+  glRasterPos3fv,
+  glRasterPos3i,
+  glRasterPos3iv,
+  glRasterPos3s,
+  glRasterPos3sv,
+  glRasterPos4d,
+  glRasterPos4dv,
+  glRasterPos4f,
+  glRasterPos4fv,
+  glRasterPos4i,
+  glRasterPos4iv,
+  glRasterPos4s,
+  glRasterPos4sv,
+  glReadBuffer,
+  glReadPixels,
+  glRectd,
+  glRectdv,
+  glRectf,
+  glRectfv,
+  glRecti,
+  glRectiv,
+  glRects,
+  glRectsv,
+  glRenderMode,
+  glRotated,
+  glRotatef,
+  glScaled,
+  glScalef,
+  glScissor,
+  glSelectBuffer,
+  glShadeModel,
+  glStencilFunc,
+  glStencilMask,
+  glStencilOp,
+  glTexCoord1d,
+  glTexCoord1dv,
+  glTexCoord1f,
+  glTexCoord1fv,
+  glTexCoord1i,
+  glTexCoord1iv,
+  glTexCoord1s,
+  glTexCoord1sv,
+  glTexCoord2d,
+  glTexCoord2dv,
+  glTexCoord2f,
+  glTexCoord2fv,
+  glTexCoord2i,
+  glTexCoord2iv,
+  glTexCoord2s,
+  glTexCoord2sv,
+  glTexCoord3d,
+  glTexCoord3dv,
+  glTexCoord3f,
+  glTexCoord3fv,
+  glTexCoord3i,
+  glTexCoord3iv,
+  glTexCoord3s,
+  glTexCoord3sv,
+  glTexCoord4d,
+  glTexCoord4dv,
+  glTexCoord4f,
+  glTexCoord4fv,
+  glTexCoord4i,
+  glTexCoord4iv,
+  glTexCoord4s,
+  glTexCoord4sv,
+  glTexEnvf,
+  glTexEnvfv,
+  glTexEnvi,
+  glTexEnviv,
+  glTexGend,
+  glTexGendv,
+  glTexGenf,
+  glTexGenfv,
+  glTexGeni,
+  glTexGeniv,
+  glTexImage1D,
+  glTexImage2D,
+  glTexParameterf,
+  glTexParameterfv,
+  glTexParameteri,
+  glTexParameteriv,
+  glTranslated,
+  glTranslatef,
+  glVertex2d,
+  glVertex2dv,
+  glVertex2f,
+  glVertex2fv,
+  glVertex2i,
+  glVertex2iv,
+  glVertex2s,
+  glVertex2sv,
+  glVertex3d,
+  glVertex3dv,
+  glVertex3f,
+  glVertex3fv,
+  glVertex3i,
+  glVertex3iv,
+  glVertex3s,
+  glVertex3sv,
+  glVertex4d,
+  glVertex4dv,
+  glVertex4f,
+  glVertex4fv,
+  glVertex4i,
+  glVertex4iv,
+  glVertex4s,
+  glVertex4sv,
+  glViewport
+) where
+
+import Graphics.GL.Types
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/Version11.hs b/src/Graphics/GL/Version11.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Version11.hs
@@ -0,0 +1,901 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Version11
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Version11 (
+  -- * Types
+  GLbitfield,
+  GLboolean,
+  GLbyte,
+  GLclampd,
+  GLclampf,
+  GLdouble,
+  GLenum,
+  GLfloat,
+  GLint,
+  GLshort,
+  GLsizei,
+  GLubyte,
+  GLuint,
+  GLushort,
+  GLvoid,
+  -- * Enums
+  pattern GL_2D,
+  pattern GL_2_BYTES,
+  pattern GL_3D,
+  pattern GL_3D_COLOR,
+  pattern GL_3D_COLOR_TEXTURE,
+  pattern GL_3_BYTES,
+  pattern GL_4D_COLOR_TEXTURE,
+  pattern GL_4_BYTES,
+  pattern GL_ACCUM,
+  pattern GL_ACCUM_ALPHA_BITS,
+  pattern GL_ACCUM_BLUE_BITS,
+  pattern GL_ACCUM_BUFFER_BIT,
+  pattern GL_ACCUM_CLEAR_VALUE,
+  pattern GL_ACCUM_GREEN_BITS,
+  pattern GL_ACCUM_RED_BITS,
+  pattern GL_ADD,
+  pattern GL_ALL_ATTRIB_BITS,
+  pattern GL_ALPHA,
+  pattern GL_ALPHA12,
+  pattern GL_ALPHA16,
+  pattern GL_ALPHA4,
+  pattern GL_ALPHA8,
+  pattern GL_ALPHA_BIAS,
+  pattern GL_ALPHA_BITS,
+  pattern GL_ALPHA_SCALE,
+  pattern GL_ALPHA_TEST,
+  pattern GL_ALPHA_TEST_FUNC,
+  pattern GL_ALPHA_TEST_REF,
+  pattern GL_ALWAYS,
+  pattern GL_AMBIENT,
+  pattern GL_AMBIENT_AND_DIFFUSE,
+  pattern GL_AND,
+  pattern GL_AND_INVERTED,
+  pattern GL_AND_REVERSE,
+  pattern GL_ATTRIB_STACK_DEPTH,
+  pattern GL_AUTO_NORMAL,
+  pattern GL_AUX0,
+  pattern GL_AUX1,
+  pattern GL_AUX2,
+  pattern GL_AUX3,
+  pattern GL_AUX_BUFFERS,
+  pattern GL_BACK,
+  pattern GL_BACK_LEFT,
+  pattern GL_BACK_RIGHT,
+  pattern GL_BITMAP,
+  pattern GL_BITMAP_TOKEN,
+  pattern GL_BLEND,
+  pattern GL_BLEND_DST,
+  pattern GL_BLEND_SRC,
+  pattern GL_BLUE,
+  pattern GL_BLUE_BIAS,
+  pattern GL_BLUE_BITS,
+  pattern GL_BLUE_SCALE,
+  pattern GL_BYTE,
+  pattern GL_C3F_V3F,
+  pattern GL_C4F_N3F_V3F,
+  pattern GL_C4UB_V2F,
+  pattern GL_C4UB_V3F,
+  pattern GL_CCW,
+  pattern GL_CLAMP,
+  pattern GL_CLEAR,
+  pattern GL_CLIENT_ALL_ATTRIB_BITS,
+  pattern GL_CLIENT_ATTRIB_STACK_DEPTH,
+  pattern GL_CLIENT_PIXEL_STORE_BIT,
+  pattern GL_CLIENT_VERTEX_ARRAY_BIT,
+  pattern GL_CLIP_PLANE0,
+  pattern GL_CLIP_PLANE1,
+  pattern GL_CLIP_PLANE2,
+  pattern GL_CLIP_PLANE3,
+  pattern GL_CLIP_PLANE4,
+  pattern GL_CLIP_PLANE5,
+  pattern GL_COEFF,
+  pattern GL_COLOR,
+  pattern GL_COLOR_ARRAY,
+  pattern GL_COLOR_ARRAY_POINTER,
+  pattern GL_COLOR_ARRAY_SIZE,
+  pattern GL_COLOR_ARRAY_STRIDE,
+  pattern GL_COLOR_ARRAY_TYPE,
+  pattern GL_COLOR_BUFFER_BIT,
+  pattern GL_COLOR_CLEAR_VALUE,
+  pattern GL_COLOR_INDEX,
+  pattern GL_COLOR_INDEXES,
+  pattern GL_COLOR_LOGIC_OP,
+  pattern GL_COLOR_MATERIAL,
+  pattern GL_COLOR_MATERIAL_FACE,
+  pattern GL_COLOR_MATERIAL_PARAMETER,
+  pattern GL_COLOR_WRITEMASK,
+  pattern GL_COMPILE,
+  pattern GL_COMPILE_AND_EXECUTE,
+  pattern GL_CONSTANT_ATTENUATION,
+  pattern GL_COPY,
+  pattern GL_COPY_INVERTED,
+  pattern GL_COPY_PIXEL_TOKEN,
+  pattern GL_CULL_FACE,
+  pattern GL_CULL_FACE_MODE,
+  pattern GL_CURRENT_BIT,
+  pattern GL_CURRENT_COLOR,
+  pattern GL_CURRENT_INDEX,
+  pattern GL_CURRENT_NORMAL,
+  pattern GL_CURRENT_RASTER_COLOR,
+  pattern GL_CURRENT_RASTER_DISTANCE,
+  pattern GL_CURRENT_RASTER_INDEX,
+  pattern GL_CURRENT_RASTER_POSITION,
+  pattern GL_CURRENT_RASTER_POSITION_VALID,
+  pattern GL_CURRENT_RASTER_TEXTURE_COORDS,
+  pattern GL_CURRENT_TEXTURE_COORDS,
+  pattern GL_CW,
+  pattern GL_DECAL,
+  pattern GL_DECR,
+  pattern GL_DEPTH,
+  pattern GL_DEPTH_BIAS,
+  pattern GL_DEPTH_BITS,
+  pattern GL_DEPTH_BUFFER_BIT,
+  pattern GL_DEPTH_CLEAR_VALUE,
+  pattern GL_DEPTH_COMPONENT,
+  pattern GL_DEPTH_FUNC,
+  pattern GL_DEPTH_RANGE,
+  pattern GL_DEPTH_SCALE,
+  pattern GL_DEPTH_TEST,
+  pattern GL_DEPTH_WRITEMASK,
+  pattern GL_DIFFUSE,
+  pattern GL_DITHER,
+  pattern GL_DOMAIN,
+  pattern GL_DONT_CARE,
+  pattern GL_DOUBLE,
+  pattern GL_DOUBLEBUFFER,
+  pattern GL_DRAW_BUFFER,
+  pattern GL_DRAW_PIXEL_TOKEN,
+  pattern GL_DST_ALPHA,
+  pattern GL_DST_COLOR,
+  pattern GL_EDGE_FLAG,
+  pattern GL_EDGE_FLAG_ARRAY,
+  pattern GL_EDGE_FLAG_ARRAY_POINTER,
+  pattern GL_EDGE_FLAG_ARRAY_STRIDE,
+  pattern GL_EMISSION,
+  pattern GL_ENABLE_BIT,
+  pattern GL_EQUAL,
+  pattern GL_EQUIV,
+  pattern GL_EVAL_BIT,
+  pattern GL_EXP,
+  pattern GL_EXP2,
+  pattern GL_EXTENSIONS,
+  pattern GL_EYE_LINEAR,
+  pattern GL_EYE_PLANE,
+  pattern GL_FALSE,
+  pattern GL_FASTEST,
+  pattern GL_FEEDBACK,
+  pattern GL_FEEDBACK_BUFFER_POINTER,
+  pattern GL_FEEDBACK_BUFFER_SIZE,
+  pattern GL_FEEDBACK_BUFFER_TYPE,
+  pattern GL_FILL,
+  pattern GL_FLAT,
+  pattern GL_FLOAT,
+  pattern GL_FOG,
+  pattern GL_FOG_BIT,
+  pattern GL_FOG_COLOR,
+  pattern GL_FOG_DENSITY,
+  pattern GL_FOG_END,
+  pattern GL_FOG_HINT,
+  pattern GL_FOG_INDEX,
+  pattern GL_FOG_MODE,
+  pattern GL_FOG_START,
+  pattern GL_FRONT,
+  pattern GL_FRONT_AND_BACK,
+  pattern GL_FRONT_FACE,
+  pattern GL_FRONT_LEFT,
+  pattern GL_FRONT_RIGHT,
+  pattern GL_GEQUAL,
+  pattern GL_GREATER,
+  pattern GL_GREEN,
+  pattern GL_GREEN_BIAS,
+  pattern GL_GREEN_BITS,
+  pattern GL_GREEN_SCALE,
+  pattern GL_HINT_BIT,
+  pattern GL_INCR,
+  pattern GL_INDEX_ARRAY,
+  pattern GL_INDEX_ARRAY_POINTER,
+  pattern GL_INDEX_ARRAY_STRIDE,
+  pattern GL_INDEX_ARRAY_TYPE,
+  pattern GL_INDEX_BITS,
+  pattern GL_INDEX_CLEAR_VALUE,
+  pattern GL_INDEX_LOGIC_OP,
+  pattern GL_INDEX_MODE,
+  pattern GL_INDEX_OFFSET,
+  pattern GL_INDEX_SHIFT,
+  pattern GL_INDEX_WRITEMASK,
+  pattern GL_INT,
+  pattern GL_INTENSITY,
+  pattern GL_INTENSITY12,
+  pattern GL_INTENSITY16,
+  pattern GL_INTENSITY4,
+  pattern GL_INTENSITY8,
+  pattern GL_INVALID_ENUM,
+  pattern GL_INVALID_OPERATION,
+  pattern GL_INVALID_VALUE,
+  pattern GL_INVERT,
+  pattern GL_KEEP,
+  pattern GL_LEFT,
+  pattern GL_LEQUAL,
+  pattern GL_LESS,
+  pattern GL_LIGHT0,
+  pattern GL_LIGHT1,
+  pattern GL_LIGHT2,
+  pattern GL_LIGHT3,
+  pattern GL_LIGHT4,
+  pattern GL_LIGHT5,
+  pattern GL_LIGHT6,
+  pattern GL_LIGHT7,
+  pattern GL_LIGHTING,
+  pattern GL_LIGHTING_BIT,
+  pattern GL_LIGHT_MODEL_AMBIENT,
+  pattern GL_LIGHT_MODEL_LOCAL_VIEWER,
+  pattern GL_LIGHT_MODEL_TWO_SIDE,
+  pattern GL_LINE,
+  pattern GL_LINEAR,
+  pattern GL_LINEAR_ATTENUATION,
+  pattern GL_LINEAR_MIPMAP_LINEAR,
+  pattern GL_LINEAR_MIPMAP_NEAREST,
+  pattern GL_LINES,
+  pattern GL_LINE_BIT,
+  pattern GL_LINE_LOOP,
+  pattern GL_LINE_RESET_TOKEN,
+  pattern GL_LINE_SMOOTH,
+  pattern GL_LINE_SMOOTH_HINT,
+  pattern GL_LINE_STIPPLE,
+  pattern GL_LINE_STIPPLE_PATTERN,
+  pattern GL_LINE_STIPPLE_REPEAT,
+  pattern GL_LINE_STRIP,
+  pattern GL_LINE_TOKEN,
+  pattern GL_LINE_WIDTH,
+  pattern GL_LINE_WIDTH_GRANULARITY,
+  pattern GL_LINE_WIDTH_RANGE,
+  pattern GL_LIST_BASE,
+  pattern GL_LIST_BIT,
+  pattern GL_LIST_INDEX,
+  pattern GL_LIST_MODE,
+  pattern GL_LOAD,
+  pattern GL_LOGIC_OP,
+  pattern GL_LOGIC_OP_MODE,
+  pattern GL_LUMINANCE,
+  pattern GL_LUMINANCE12,
+  pattern GL_LUMINANCE12_ALPHA12,
+  pattern GL_LUMINANCE12_ALPHA4,
+  pattern GL_LUMINANCE16,
+  pattern GL_LUMINANCE16_ALPHA16,
+  pattern GL_LUMINANCE4,
+  pattern GL_LUMINANCE4_ALPHA4,
+  pattern GL_LUMINANCE6_ALPHA2,
+  pattern GL_LUMINANCE8,
+  pattern GL_LUMINANCE8_ALPHA8,
+  pattern GL_LUMINANCE_ALPHA,
+  pattern GL_MAP1_COLOR_4,
+  pattern GL_MAP1_GRID_DOMAIN,
+  pattern GL_MAP1_GRID_SEGMENTS,
+  pattern GL_MAP1_INDEX,
+  pattern GL_MAP1_NORMAL,
+  pattern GL_MAP1_TEXTURE_COORD_1,
+  pattern GL_MAP1_TEXTURE_COORD_2,
+  pattern GL_MAP1_TEXTURE_COORD_3,
+  pattern GL_MAP1_TEXTURE_COORD_4,
+  pattern GL_MAP1_VERTEX_3,
+  pattern GL_MAP1_VERTEX_4,
+  pattern GL_MAP2_COLOR_4,
+  pattern GL_MAP2_GRID_DOMAIN,
+  pattern GL_MAP2_GRID_SEGMENTS,
+  pattern GL_MAP2_INDEX,
+  pattern GL_MAP2_NORMAL,
+  pattern GL_MAP2_TEXTURE_COORD_1,
+  pattern GL_MAP2_TEXTURE_COORD_2,
+  pattern GL_MAP2_TEXTURE_COORD_3,
+  pattern GL_MAP2_TEXTURE_COORD_4,
+  pattern GL_MAP2_VERTEX_3,
+  pattern GL_MAP2_VERTEX_4,
+  pattern GL_MAP_COLOR,
+  pattern GL_MAP_STENCIL,
+  pattern GL_MATRIX_MODE,
+  pattern GL_MAX_ATTRIB_STACK_DEPTH,
+  pattern GL_MAX_CLIENT_ATTRIB_STACK_DEPTH,
+  pattern GL_MAX_CLIP_PLANES,
+  pattern GL_MAX_EVAL_ORDER,
+  pattern GL_MAX_LIGHTS,
+  pattern GL_MAX_LIST_NESTING,
+  pattern GL_MAX_MODELVIEW_STACK_DEPTH,
+  pattern GL_MAX_NAME_STACK_DEPTH,
+  pattern GL_MAX_PIXEL_MAP_TABLE,
+  pattern GL_MAX_PROJECTION_STACK_DEPTH,
+  pattern GL_MAX_TEXTURE_SIZE,
+  pattern GL_MAX_TEXTURE_STACK_DEPTH,
+  pattern GL_MAX_VIEWPORT_DIMS,
+  pattern GL_MODELVIEW,
+  pattern GL_MODELVIEW_MATRIX,
+  pattern GL_MODELVIEW_STACK_DEPTH,
+  pattern GL_MODULATE,
+  pattern GL_MULT,
+  pattern GL_N3F_V3F,
+  pattern GL_NAME_STACK_DEPTH,
+  pattern GL_NAND,
+  pattern GL_NEAREST,
+  pattern GL_NEAREST_MIPMAP_LINEAR,
+  pattern GL_NEAREST_MIPMAP_NEAREST,
+  pattern GL_NEVER,
+  pattern GL_NICEST,
+  pattern GL_NONE,
+  pattern GL_NOOP,
+  pattern GL_NOR,
+  pattern GL_NORMALIZE,
+  pattern GL_NORMAL_ARRAY,
+  pattern GL_NORMAL_ARRAY_POINTER,
+  pattern GL_NORMAL_ARRAY_STRIDE,
+  pattern GL_NORMAL_ARRAY_TYPE,
+  pattern GL_NOTEQUAL,
+  pattern GL_NO_ERROR,
+  pattern GL_OBJECT_LINEAR,
+  pattern GL_OBJECT_PLANE,
+  pattern GL_ONE,
+  pattern GL_ONE_MINUS_DST_ALPHA,
+  pattern GL_ONE_MINUS_DST_COLOR,
+  pattern GL_ONE_MINUS_SRC_ALPHA,
+  pattern GL_ONE_MINUS_SRC_COLOR,
+  pattern GL_OR,
+  pattern GL_ORDER,
+  pattern GL_OR_INVERTED,
+  pattern GL_OR_REVERSE,
+  pattern GL_OUT_OF_MEMORY,
+  pattern GL_PACK_ALIGNMENT,
+  pattern GL_PACK_LSB_FIRST,
+  pattern GL_PACK_ROW_LENGTH,
+  pattern GL_PACK_SKIP_PIXELS,
+  pattern GL_PACK_SKIP_ROWS,
+  pattern GL_PACK_SWAP_BYTES,
+  pattern GL_PASS_THROUGH_TOKEN,
+  pattern GL_PERSPECTIVE_CORRECTION_HINT,
+  pattern GL_PIXEL_MAP_A_TO_A,
+  pattern GL_PIXEL_MAP_A_TO_A_SIZE,
+  pattern GL_PIXEL_MAP_B_TO_B,
+  pattern GL_PIXEL_MAP_B_TO_B_SIZE,
+  pattern GL_PIXEL_MAP_G_TO_G,
+  pattern GL_PIXEL_MAP_G_TO_G_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_A,
+  pattern GL_PIXEL_MAP_I_TO_A_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_B,
+  pattern GL_PIXEL_MAP_I_TO_B_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_G,
+  pattern GL_PIXEL_MAP_I_TO_G_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_I,
+  pattern GL_PIXEL_MAP_I_TO_I_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_R,
+  pattern GL_PIXEL_MAP_I_TO_R_SIZE,
+  pattern GL_PIXEL_MAP_R_TO_R,
+  pattern GL_PIXEL_MAP_R_TO_R_SIZE,
+  pattern GL_PIXEL_MAP_S_TO_S,
+  pattern GL_PIXEL_MAP_S_TO_S_SIZE,
+  pattern GL_PIXEL_MODE_BIT,
+  pattern GL_POINT,
+  pattern GL_POINTS,
+  pattern GL_POINT_BIT,
+  pattern GL_POINT_SIZE,
+  pattern GL_POINT_SIZE_GRANULARITY,
+  pattern GL_POINT_SIZE_RANGE,
+  pattern GL_POINT_SMOOTH,
+  pattern GL_POINT_SMOOTH_HINT,
+  pattern GL_POINT_TOKEN,
+  pattern GL_POLYGON,
+  pattern GL_POLYGON_BIT,
+  pattern GL_POLYGON_MODE,
+  pattern GL_POLYGON_OFFSET_FACTOR,
+  pattern GL_POLYGON_OFFSET_FILL,
+  pattern GL_POLYGON_OFFSET_LINE,
+  pattern GL_POLYGON_OFFSET_POINT,
+  pattern GL_POLYGON_OFFSET_UNITS,
+  pattern GL_POLYGON_SMOOTH,
+  pattern GL_POLYGON_SMOOTH_HINT,
+  pattern GL_POLYGON_STIPPLE,
+  pattern GL_POLYGON_STIPPLE_BIT,
+  pattern GL_POLYGON_TOKEN,
+  pattern GL_POSITION,
+  pattern GL_PROJECTION,
+  pattern GL_PROJECTION_MATRIX,
+  pattern GL_PROJECTION_STACK_DEPTH,
+  pattern GL_PROXY_TEXTURE_1D,
+  pattern GL_PROXY_TEXTURE_2D,
+  pattern GL_Q,
+  pattern GL_QUADRATIC_ATTENUATION,
+  pattern GL_QUADS,
+  pattern GL_QUAD_STRIP,
+  pattern GL_R,
+  pattern GL_R3_G3_B2,
+  pattern GL_READ_BUFFER,
+  pattern GL_RED,
+  pattern GL_RED_BIAS,
+  pattern GL_RED_BITS,
+  pattern GL_RED_SCALE,
+  pattern GL_RENDER,
+  pattern GL_RENDERER,
+  pattern GL_RENDER_MODE,
+  pattern GL_REPEAT,
+  pattern GL_REPLACE,
+  pattern GL_RETURN,
+  pattern GL_RGB,
+  pattern GL_RGB10,
+  pattern GL_RGB10_A2,
+  pattern GL_RGB12,
+  pattern GL_RGB16,
+  pattern GL_RGB4,
+  pattern GL_RGB5,
+  pattern GL_RGB5_A1,
+  pattern GL_RGB8,
+  pattern GL_RGBA,
+  pattern GL_RGBA12,
+  pattern GL_RGBA16,
+  pattern GL_RGBA2,
+  pattern GL_RGBA4,
+  pattern GL_RGBA8,
+  pattern GL_RGBA_MODE,
+  pattern GL_RIGHT,
+  pattern GL_S,
+  pattern GL_SCISSOR_BIT,
+  pattern GL_SCISSOR_BOX,
+  pattern GL_SCISSOR_TEST,
+  pattern GL_SELECT,
+  pattern GL_SELECTION_BUFFER_POINTER,
+  pattern GL_SELECTION_BUFFER_SIZE,
+  pattern GL_SET,
+  pattern GL_SHADE_MODEL,
+  pattern GL_SHININESS,
+  pattern GL_SHORT,
+  pattern GL_SMOOTH,
+  pattern GL_SPECULAR,
+  pattern GL_SPHERE_MAP,
+  pattern GL_SPOT_CUTOFF,
+  pattern GL_SPOT_DIRECTION,
+  pattern GL_SPOT_EXPONENT,
+  pattern GL_SRC_ALPHA,
+  pattern GL_SRC_ALPHA_SATURATE,
+  pattern GL_SRC_COLOR,
+  pattern GL_STACK_OVERFLOW,
+  pattern GL_STACK_UNDERFLOW,
+  pattern GL_STENCIL,
+  pattern GL_STENCIL_BITS,
+  pattern GL_STENCIL_BUFFER_BIT,
+  pattern GL_STENCIL_CLEAR_VALUE,
+  pattern GL_STENCIL_FAIL,
+  pattern GL_STENCIL_FUNC,
+  pattern GL_STENCIL_INDEX,
+  pattern GL_STENCIL_PASS_DEPTH_FAIL,
+  pattern GL_STENCIL_PASS_DEPTH_PASS,
+  pattern GL_STENCIL_REF,
+  pattern GL_STENCIL_TEST,
+  pattern GL_STENCIL_VALUE_MASK,
+  pattern GL_STENCIL_WRITEMASK,
+  pattern GL_STEREO,
+  pattern GL_SUBPIXEL_BITS,
+  pattern GL_T,
+  pattern GL_T2F_C3F_V3F,
+  pattern GL_T2F_C4F_N3F_V3F,
+  pattern GL_T2F_C4UB_V3F,
+  pattern GL_T2F_N3F_V3F,
+  pattern GL_T2F_V3F,
+  pattern GL_T4F_C4F_N3F_V4F,
+  pattern GL_T4F_V4F,
+  pattern GL_TEXTURE,
+  pattern GL_TEXTURE_1D,
+  pattern GL_TEXTURE_2D,
+  pattern GL_TEXTURE_ALPHA_SIZE,
+  pattern GL_TEXTURE_BINDING_1D,
+  pattern GL_TEXTURE_BINDING_2D,
+  pattern GL_TEXTURE_BIT,
+  pattern GL_TEXTURE_BLUE_SIZE,
+  pattern GL_TEXTURE_BORDER,
+  pattern GL_TEXTURE_BORDER_COLOR,
+  pattern GL_TEXTURE_COMPONENTS,
+  pattern GL_TEXTURE_COORD_ARRAY,
+  pattern GL_TEXTURE_COORD_ARRAY_POINTER,
+  pattern GL_TEXTURE_COORD_ARRAY_SIZE,
+  pattern GL_TEXTURE_COORD_ARRAY_STRIDE,
+  pattern GL_TEXTURE_COORD_ARRAY_TYPE,
+  pattern GL_TEXTURE_ENV,
+  pattern GL_TEXTURE_ENV_COLOR,
+  pattern GL_TEXTURE_ENV_MODE,
+  pattern GL_TEXTURE_GEN_MODE,
+  pattern GL_TEXTURE_GEN_Q,
+  pattern GL_TEXTURE_GEN_R,
+  pattern GL_TEXTURE_GEN_S,
+  pattern GL_TEXTURE_GEN_T,
+  pattern GL_TEXTURE_GREEN_SIZE,
+  pattern GL_TEXTURE_HEIGHT,
+  pattern GL_TEXTURE_INTENSITY_SIZE,
+  pattern GL_TEXTURE_INTERNAL_FORMAT,
+  pattern GL_TEXTURE_LUMINANCE_SIZE,
+  pattern GL_TEXTURE_MAG_FILTER,
+  pattern GL_TEXTURE_MATRIX,
+  pattern GL_TEXTURE_MIN_FILTER,
+  pattern GL_TEXTURE_PRIORITY,
+  pattern GL_TEXTURE_RED_SIZE,
+  pattern GL_TEXTURE_RESIDENT,
+  pattern GL_TEXTURE_STACK_DEPTH,
+  pattern GL_TEXTURE_WIDTH,
+  pattern GL_TEXTURE_WRAP_S,
+  pattern GL_TEXTURE_WRAP_T,
+  pattern GL_TRANSFORM_BIT,
+  pattern GL_TRIANGLES,
+  pattern GL_TRIANGLE_FAN,
+  pattern GL_TRIANGLE_STRIP,
+  pattern GL_TRUE,
+  pattern GL_UNPACK_ALIGNMENT,
+  pattern GL_UNPACK_LSB_FIRST,
+  pattern GL_UNPACK_ROW_LENGTH,
+  pattern GL_UNPACK_SKIP_PIXELS,
+  pattern GL_UNPACK_SKIP_ROWS,
+  pattern GL_UNPACK_SWAP_BYTES,
+  pattern GL_UNSIGNED_BYTE,
+  pattern GL_UNSIGNED_INT,
+  pattern GL_UNSIGNED_SHORT,
+  pattern GL_V2F,
+  pattern GL_V3F,
+  pattern GL_VENDOR,
+  pattern GL_VERSION,
+  pattern GL_VERTEX_ARRAY,
+  pattern GL_VERTEX_ARRAY_POINTER,
+  pattern GL_VERTEX_ARRAY_SIZE,
+  pattern GL_VERTEX_ARRAY_STRIDE,
+  pattern GL_VERTEX_ARRAY_TYPE,
+  pattern GL_VIEWPORT,
+  pattern GL_VIEWPORT_BIT,
+  pattern GL_XOR,
+  pattern GL_ZERO,
+  pattern GL_ZOOM_X,
+  pattern GL_ZOOM_Y,
+  -- * Functions
+  glAccum,
+  glAlphaFunc,
+  glAreTexturesResident,
+  glArrayElement,
+  glBegin,
+  glBindTexture,
+  glBitmap,
+  glBlendFunc,
+  glCallList,
+  glCallLists,
+  glClear,
+  glClearAccum,
+  glClearColor,
+  glClearDepth,
+  glClearIndex,
+  glClearStencil,
+  glClipPlane,
+  glColor3b,
+  glColor3bv,
+  glColor3d,
+  glColor3dv,
+  glColor3f,
+  glColor3fv,
+  glColor3i,
+  glColor3iv,
+  glColor3s,
+  glColor3sv,
+  glColor3ub,
+  glColor3ubv,
+  glColor3ui,
+  glColor3uiv,
+  glColor3us,
+  glColor3usv,
+  glColor4b,
+  glColor4bv,
+  glColor4d,
+  glColor4dv,
+  glColor4f,
+  glColor4fv,
+  glColor4i,
+  glColor4iv,
+  glColor4s,
+  glColor4sv,
+  glColor4ub,
+  glColor4ubv,
+  glColor4ui,
+  glColor4uiv,
+  glColor4us,
+  glColor4usv,
+  glColorMask,
+  glColorMaterial,
+  glColorPointer,
+  glCopyPixels,
+  glCopyTexImage1D,
+  glCopyTexImage2D,
+  glCopyTexSubImage1D,
+  glCopyTexSubImage2D,
+  glCullFace,
+  glDeleteLists,
+  glDeleteTextures,
+  glDepthFunc,
+  glDepthMask,
+  glDepthRange,
+  glDisable,
+  glDisableClientState,
+  glDrawArrays,
+  glDrawBuffer,
+  glDrawElements,
+  glDrawPixels,
+  glEdgeFlag,
+  glEdgeFlagPointer,
+  glEdgeFlagv,
+  glEnable,
+  glEnableClientState,
+  glEnd,
+  glEndList,
+  glEvalCoord1d,
+  glEvalCoord1dv,
+  glEvalCoord1f,
+  glEvalCoord1fv,
+  glEvalCoord2d,
+  glEvalCoord2dv,
+  glEvalCoord2f,
+  glEvalCoord2fv,
+  glEvalMesh1,
+  glEvalMesh2,
+  glEvalPoint1,
+  glEvalPoint2,
+  glFeedbackBuffer,
+  glFinish,
+  glFlush,
+  glFogf,
+  glFogfv,
+  glFogi,
+  glFogiv,
+  glFrontFace,
+  glFrustum,
+  glGenLists,
+  glGenTextures,
+  glGetBooleanv,
+  glGetClipPlane,
+  glGetDoublev,
+  glGetError,
+  glGetFloatv,
+  glGetIntegerv,
+  glGetLightfv,
+  glGetLightiv,
+  glGetMapdv,
+  glGetMapfv,
+  glGetMapiv,
+  glGetMaterialfv,
+  glGetMaterialiv,
+  glGetPixelMapfv,
+  glGetPixelMapuiv,
+  glGetPixelMapusv,
+  glGetPointerv,
+  glGetPolygonStipple,
+  glGetString,
+  glGetTexEnvfv,
+  glGetTexEnviv,
+  glGetTexGendv,
+  glGetTexGenfv,
+  glGetTexGeniv,
+  glGetTexImage,
+  glGetTexLevelParameterfv,
+  glGetTexLevelParameteriv,
+  glGetTexParameterfv,
+  glGetTexParameteriv,
+  glHint,
+  glIndexMask,
+  glIndexPointer,
+  glIndexd,
+  glIndexdv,
+  glIndexf,
+  glIndexfv,
+  glIndexi,
+  glIndexiv,
+  glIndexs,
+  glIndexsv,
+  glIndexub,
+  glIndexubv,
+  glInitNames,
+  glInterleavedArrays,
+  glIsEnabled,
+  glIsList,
+  glIsTexture,
+  glLightModelf,
+  glLightModelfv,
+  glLightModeli,
+  glLightModeliv,
+  glLightf,
+  glLightfv,
+  glLighti,
+  glLightiv,
+  glLineStipple,
+  glLineWidth,
+  glListBase,
+  glLoadIdentity,
+  glLoadMatrixd,
+  glLoadMatrixf,
+  glLoadName,
+  glLogicOp,
+  glMap1d,
+  glMap1f,
+  glMap2d,
+  glMap2f,
+  glMapGrid1d,
+  glMapGrid1f,
+  glMapGrid2d,
+  glMapGrid2f,
+  glMaterialf,
+  glMaterialfv,
+  glMateriali,
+  glMaterialiv,
+  glMatrixMode,
+  glMultMatrixd,
+  glMultMatrixf,
+  glNewList,
+  glNormal3b,
+  glNormal3bv,
+  glNormal3d,
+  glNormal3dv,
+  glNormal3f,
+  glNormal3fv,
+  glNormal3i,
+  glNormal3iv,
+  glNormal3s,
+  glNormal3sv,
+  glNormalPointer,
+  glOrtho,
+  glPassThrough,
+  glPixelMapfv,
+  glPixelMapuiv,
+  glPixelMapusv,
+  glPixelStoref,
+  glPixelStorei,
+  glPixelTransferf,
+  glPixelTransferi,
+  glPixelZoom,
+  glPointSize,
+  glPolygonMode,
+  glPolygonOffset,
+  glPolygonStipple,
+  glPopAttrib,
+  glPopClientAttrib,
+  glPopMatrix,
+  glPopName,
+  glPrioritizeTextures,
+  glPushAttrib,
+  glPushClientAttrib,
+  glPushMatrix,
+  glPushName,
+  glRasterPos2d,
+  glRasterPos2dv,
+  glRasterPos2f,
+  glRasterPos2fv,
+  glRasterPos2i,
+  glRasterPos2iv,
+  glRasterPos2s,
+  glRasterPos2sv,
+  glRasterPos3d,
+  glRasterPos3dv,
+  glRasterPos3f,
+  glRasterPos3fv,
+  glRasterPos3i,
+  glRasterPos3iv,
+  glRasterPos3s,
+  glRasterPos3sv,
+  glRasterPos4d,
+  glRasterPos4dv,
+  glRasterPos4f,
+  glRasterPos4fv,
+  glRasterPos4i,
+  glRasterPos4iv,
+  glRasterPos4s,
+  glRasterPos4sv,
+  glReadBuffer,
+  glReadPixels,
+  glRectd,
+  glRectdv,
+  glRectf,
+  glRectfv,
+  glRecti,
+  glRectiv,
+  glRects,
+  glRectsv,
+  glRenderMode,
+  glRotated,
+  glRotatef,
+  glScaled,
+  glScalef,
+  glScissor,
+  glSelectBuffer,
+  glShadeModel,
+  glStencilFunc,
+  glStencilMask,
+  glStencilOp,
+  glTexCoord1d,
+  glTexCoord1dv,
+  glTexCoord1f,
+  glTexCoord1fv,
+  glTexCoord1i,
+  glTexCoord1iv,
+  glTexCoord1s,
+  glTexCoord1sv,
+  glTexCoord2d,
+  glTexCoord2dv,
+  glTexCoord2f,
+  glTexCoord2fv,
+  glTexCoord2i,
+  glTexCoord2iv,
+  glTexCoord2s,
+  glTexCoord2sv,
+  glTexCoord3d,
+  glTexCoord3dv,
+  glTexCoord3f,
+  glTexCoord3fv,
+  glTexCoord3i,
+  glTexCoord3iv,
+  glTexCoord3s,
+  glTexCoord3sv,
+  glTexCoord4d,
+  glTexCoord4dv,
+  glTexCoord4f,
+  glTexCoord4fv,
+  glTexCoord4i,
+  glTexCoord4iv,
+  glTexCoord4s,
+  glTexCoord4sv,
+  glTexCoordPointer,
+  glTexEnvf,
+  glTexEnvfv,
+  glTexEnvi,
+  glTexEnviv,
+  glTexGend,
+  glTexGendv,
+  glTexGenf,
+  glTexGenfv,
+  glTexGeni,
+  glTexGeniv,
+  glTexImage1D,
+  glTexImage2D,
+  glTexParameterf,
+  glTexParameterfv,
+  glTexParameteri,
+  glTexParameteriv,
+  glTexSubImage1D,
+  glTexSubImage2D,
+  glTranslated,
+  glTranslatef,
+  glVertex2d,
+  glVertex2dv,
+  glVertex2f,
+  glVertex2fv,
+  glVertex2i,
+  glVertex2iv,
+  glVertex2s,
+  glVertex2sv,
+  glVertex3d,
+  glVertex3dv,
+  glVertex3f,
+  glVertex3fv,
+  glVertex3i,
+  glVertex3iv,
+  glVertex3s,
+  glVertex3sv,
+  glVertex4d,
+  glVertex4dv,
+  glVertex4f,
+  glVertex4fv,
+  glVertex4i,
+  glVertex4iv,
+  glVertex4s,
+  glVertex4sv,
+  glVertexPointer,
+  glViewport
+) where
+
+import Graphics.GL.Types
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/Version12.hs b/src/Graphics/GL/Version12.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Version12.hs
@@ -0,0 +1,946 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Version12
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Version12 (
+  -- * Types
+  GLbitfield,
+  GLboolean,
+  GLbyte,
+  GLclampd,
+  GLclampf,
+  GLdouble,
+  GLenum,
+  GLfloat,
+  GLint,
+  GLshort,
+  GLsizei,
+  GLubyte,
+  GLuint,
+  GLushort,
+  GLvoid,
+  -- * Enums
+  pattern GL_2D,
+  pattern GL_2_BYTES,
+  pattern GL_3D,
+  pattern GL_3D_COLOR,
+  pattern GL_3D_COLOR_TEXTURE,
+  pattern GL_3_BYTES,
+  pattern GL_4D_COLOR_TEXTURE,
+  pattern GL_4_BYTES,
+  pattern GL_ACCUM,
+  pattern GL_ACCUM_ALPHA_BITS,
+  pattern GL_ACCUM_BLUE_BITS,
+  pattern GL_ACCUM_BUFFER_BIT,
+  pattern GL_ACCUM_CLEAR_VALUE,
+  pattern GL_ACCUM_GREEN_BITS,
+  pattern GL_ACCUM_RED_BITS,
+  pattern GL_ADD,
+  pattern GL_ALIASED_LINE_WIDTH_RANGE,
+  pattern GL_ALIASED_POINT_SIZE_RANGE,
+  pattern GL_ALL_ATTRIB_BITS,
+  pattern GL_ALPHA,
+  pattern GL_ALPHA12,
+  pattern GL_ALPHA16,
+  pattern GL_ALPHA4,
+  pattern GL_ALPHA8,
+  pattern GL_ALPHA_BIAS,
+  pattern GL_ALPHA_BITS,
+  pattern GL_ALPHA_SCALE,
+  pattern GL_ALPHA_TEST,
+  pattern GL_ALPHA_TEST_FUNC,
+  pattern GL_ALPHA_TEST_REF,
+  pattern GL_ALWAYS,
+  pattern GL_AMBIENT,
+  pattern GL_AMBIENT_AND_DIFFUSE,
+  pattern GL_AND,
+  pattern GL_AND_INVERTED,
+  pattern GL_AND_REVERSE,
+  pattern GL_ATTRIB_STACK_DEPTH,
+  pattern GL_AUTO_NORMAL,
+  pattern GL_AUX0,
+  pattern GL_AUX1,
+  pattern GL_AUX2,
+  pattern GL_AUX3,
+  pattern GL_AUX_BUFFERS,
+  pattern GL_BACK,
+  pattern GL_BACK_LEFT,
+  pattern GL_BACK_RIGHT,
+  pattern GL_BGR,
+  pattern GL_BGRA,
+  pattern GL_BITMAP,
+  pattern GL_BITMAP_TOKEN,
+  pattern GL_BLEND,
+  pattern GL_BLEND_DST,
+  pattern GL_BLEND_SRC,
+  pattern GL_BLUE,
+  pattern GL_BLUE_BIAS,
+  pattern GL_BLUE_BITS,
+  pattern GL_BLUE_SCALE,
+  pattern GL_BYTE,
+  pattern GL_C3F_V3F,
+  pattern GL_C4F_N3F_V3F,
+  pattern GL_C4UB_V2F,
+  pattern GL_C4UB_V3F,
+  pattern GL_CCW,
+  pattern GL_CLAMP,
+  pattern GL_CLAMP_TO_EDGE,
+  pattern GL_CLEAR,
+  pattern GL_CLIENT_ALL_ATTRIB_BITS,
+  pattern GL_CLIENT_ATTRIB_STACK_DEPTH,
+  pattern GL_CLIENT_PIXEL_STORE_BIT,
+  pattern GL_CLIENT_VERTEX_ARRAY_BIT,
+  pattern GL_CLIP_PLANE0,
+  pattern GL_CLIP_PLANE1,
+  pattern GL_CLIP_PLANE2,
+  pattern GL_CLIP_PLANE3,
+  pattern GL_CLIP_PLANE4,
+  pattern GL_CLIP_PLANE5,
+  pattern GL_COEFF,
+  pattern GL_COLOR,
+  pattern GL_COLOR_ARRAY,
+  pattern GL_COLOR_ARRAY_POINTER,
+  pattern GL_COLOR_ARRAY_SIZE,
+  pattern GL_COLOR_ARRAY_STRIDE,
+  pattern GL_COLOR_ARRAY_TYPE,
+  pattern GL_COLOR_BUFFER_BIT,
+  pattern GL_COLOR_CLEAR_VALUE,
+  pattern GL_COLOR_INDEX,
+  pattern GL_COLOR_INDEXES,
+  pattern GL_COLOR_LOGIC_OP,
+  pattern GL_COLOR_MATERIAL,
+  pattern GL_COLOR_MATERIAL_FACE,
+  pattern GL_COLOR_MATERIAL_PARAMETER,
+  pattern GL_COLOR_WRITEMASK,
+  pattern GL_COMPILE,
+  pattern GL_COMPILE_AND_EXECUTE,
+  pattern GL_CONSTANT_ATTENUATION,
+  pattern GL_COPY,
+  pattern GL_COPY_INVERTED,
+  pattern GL_COPY_PIXEL_TOKEN,
+  pattern GL_CULL_FACE,
+  pattern GL_CULL_FACE_MODE,
+  pattern GL_CURRENT_BIT,
+  pattern GL_CURRENT_COLOR,
+  pattern GL_CURRENT_INDEX,
+  pattern GL_CURRENT_NORMAL,
+  pattern GL_CURRENT_RASTER_COLOR,
+  pattern GL_CURRENT_RASTER_DISTANCE,
+  pattern GL_CURRENT_RASTER_INDEX,
+  pattern GL_CURRENT_RASTER_POSITION,
+  pattern GL_CURRENT_RASTER_POSITION_VALID,
+  pattern GL_CURRENT_RASTER_TEXTURE_COORDS,
+  pattern GL_CURRENT_TEXTURE_COORDS,
+  pattern GL_CW,
+  pattern GL_DECAL,
+  pattern GL_DECR,
+  pattern GL_DEPTH,
+  pattern GL_DEPTH_BIAS,
+  pattern GL_DEPTH_BITS,
+  pattern GL_DEPTH_BUFFER_BIT,
+  pattern GL_DEPTH_CLEAR_VALUE,
+  pattern GL_DEPTH_COMPONENT,
+  pattern GL_DEPTH_FUNC,
+  pattern GL_DEPTH_RANGE,
+  pattern GL_DEPTH_SCALE,
+  pattern GL_DEPTH_TEST,
+  pattern GL_DEPTH_WRITEMASK,
+  pattern GL_DIFFUSE,
+  pattern GL_DITHER,
+  pattern GL_DOMAIN,
+  pattern GL_DONT_CARE,
+  pattern GL_DOUBLE,
+  pattern GL_DOUBLEBUFFER,
+  pattern GL_DRAW_BUFFER,
+  pattern GL_DRAW_PIXEL_TOKEN,
+  pattern GL_DST_ALPHA,
+  pattern GL_DST_COLOR,
+  pattern GL_EDGE_FLAG,
+  pattern GL_EDGE_FLAG_ARRAY,
+  pattern GL_EDGE_FLAG_ARRAY_POINTER,
+  pattern GL_EDGE_FLAG_ARRAY_STRIDE,
+  pattern GL_EMISSION,
+  pattern GL_ENABLE_BIT,
+  pattern GL_EQUAL,
+  pattern GL_EQUIV,
+  pattern GL_EVAL_BIT,
+  pattern GL_EXP,
+  pattern GL_EXP2,
+  pattern GL_EXTENSIONS,
+  pattern GL_EYE_LINEAR,
+  pattern GL_EYE_PLANE,
+  pattern GL_FALSE,
+  pattern GL_FASTEST,
+  pattern GL_FEEDBACK,
+  pattern GL_FEEDBACK_BUFFER_POINTER,
+  pattern GL_FEEDBACK_BUFFER_SIZE,
+  pattern GL_FEEDBACK_BUFFER_TYPE,
+  pattern GL_FILL,
+  pattern GL_FLAT,
+  pattern GL_FLOAT,
+  pattern GL_FOG,
+  pattern GL_FOG_BIT,
+  pattern GL_FOG_COLOR,
+  pattern GL_FOG_DENSITY,
+  pattern GL_FOG_END,
+  pattern GL_FOG_HINT,
+  pattern GL_FOG_INDEX,
+  pattern GL_FOG_MODE,
+  pattern GL_FOG_START,
+  pattern GL_FRONT,
+  pattern GL_FRONT_AND_BACK,
+  pattern GL_FRONT_FACE,
+  pattern GL_FRONT_LEFT,
+  pattern GL_FRONT_RIGHT,
+  pattern GL_GEQUAL,
+  pattern GL_GREATER,
+  pattern GL_GREEN,
+  pattern GL_GREEN_BIAS,
+  pattern GL_GREEN_BITS,
+  pattern GL_GREEN_SCALE,
+  pattern GL_HINT_BIT,
+  pattern GL_INCR,
+  pattern GL_INDEX_ARRAY,
+  pattern GL_INDEX_ARRAY_POINTER,
+  pattern GL_INDEX_ARRAY_STRIDE,
+  pattern GL_INDEX_ARRAY_TYPE,
+  pattern GL_INDEX_BITS,
+  pattern GL_INDEX_CLEAR_VALUE,
+  pattern GL_INDEX_LOGIC_OP,
+  pattern GL_INDEX_MODE,
+  pattern GL_INDEX_OFFSET,
+  pattern GL_INDEX_SHIFT,
+  pattern GL_INDEX_WRITEMASK,
+  pattern GL_INT,
+  pattern GL_INTENSITY,
+  pattern GL_INTENSITY12,
+  pattern GL_INTENSITY16,
+  pattern GL_INTENSITY4,
+  pattern GL_INTENSITY8,
+  pattern GL_INVALID_ENUM,
+  pattern GL_INVALID_OPERATION,
+  pattern GL_INVALID_VALUE,
+  pattern GL_INVERT,
+  pattern GL_KEEP,
+  pattern GL_LEFT,
+  pattern GL_LEQUAL,
+  pattern GL_LESS,
+  pattern GL_LIGHT0,
+  pattern GL_LIGHT1,
+  pattern GL_LIGHT2,
+  pattern GL_LIGHT3,
+  pattern GL_LIGHT4,
+  pattern GL_LIGHT5,
+  pattern GL_LIGHT6,
+  pattern GL_LIGHT7,
+  pattern GL_LIGHTING,
+  pattern GL_LIGHTING_BIT,
+  pattern GL_LIGHT_MODEL_AMBIENT,
+  pattern GL_LIGHT_MODEL_COLOR_CONTROL,
+  pattern GL_LIGHT_MODEL_LOCAL_VIEWER,
+  pattern GL_LIGHT_MODEL_TWO_SIDE,
+  pattern GL_LINE,
+  pattern GL_LINEAR,
+  pattern GL_LINEAR_ATTENUATION,
+  pattern GL_LINEAR_MIPMAP_LINEAR,
+  pattern GL_LINEAR_MIPMAP_NEAREST,
+  pattern GL_LINES,
+  pattern GL_LINE_BIT,
+  pattern GL_LINE_LOOP,
+  pattern GL_LINE_RESET_TOKEN,
+  pattern GL_LINE_SMOOTH,
+  pattern GL_LINE_SMOOTH_HINT,
+  pattern GL_LINE_STIPPLE,
+  pattern GL_LINE_STIPPLE_PATTERN,
+  pattern GL_LINE_STIPPLE_REPEAT,
+  pattern GL_LINE_STRIP,
+  pattern GL_LINE_TOKEN,
+  pattern GL_LINE_WIDTH,
+  pattern GL_LINE_WIDTH_GRANULARITY,
+  pattern GL_LINE_WIDTH_RANGE,
+  pattern GL_LIST_BASE,
+  pattern GL_LIST_BIT,
+  pattern GL_LIST_INDEX,
+  pattern GL_LIST_MODE,
+  pattern GL_LOAD,
+  pattern GL_LOGIC_OP,
+  pattern GL_LOGIC_OP_MODE,
+  pattern GL_LUMINANCE,
+  pattern GL_LUMINANCE12,
+  pattern GL_LUMINANCE12_ALPHA12,
+  pattern GL_LUMINANCE12_ALPHA4,
+  pattern GL_LUMINANCE16,
+  pattern GL_LUMINANCE16_ALPHA16,
+  pattern GL_LUMINANCE4,
+  pattern GL_LUMINANCE4_ALPHA4,
+  pattern GL_LUMINANCE6_ALPHA2,
+  pattern GL_LUMINANCE8,
+  pattern GL_LUMINANCE8_ALPHA8,
+  pattern GL_LUMINANCE_ALPHA,
+  pattern GL_MAP1_COLOR_4,
+  pattern GL_MAP1_GRID_DOMAIN,
+  pattern GL_MAP1_GRID_SEGMENTS,
+  pattern GL_MAP1_INDEX,
+  pattern GL_MAP1_NORMAL,
+  pattern GL_MAP1_TEXTURE_COORD_1,
+  pattern GL_MAP1_TEXTURE_COORD_2,
+  pattern GL_MAP1_TEXTURE_COORD_3,
+  pattern GL_MAP1_TEXTURE_COORD_4,
+  pattern GL_MAP1_VERTEX_3,
+  pattern GL_MAP1_VERTEX_4,
+  pattern GL_MAP2_COLOR_4,
+  pattern GL_MAP2_GRID_DOMAIN,
+  pattern GL_MAP2_GRID_SEGMENTS,
+  pattern GL_MAP2_INDEX,
+  pattern GL_MAP2_NORMAL,
+  pattern GL_MAP2_TEXTURE_COORD_1,
+  pattern GL_MAP2_TEXTURE_COORD_2,
+  pattern GL_MAP2_TEXTURE_COORD_3,
+  pattern GL_MAP2_TEXTURE_COORD_4,
+  pattern GL_MAP2_VERTEX_3,
+  pattern GL_MAP2_VERTEX_4,
+  pattern GL_MAP_COLOR,
+  pattern GL_MAP_STENCIL,
+  pattern GL_MATRIX_MODE,
+  pattern GL_MAX_3D_TEXTURE_SIZE,
+  pattern GL_MAX_ATTRIB_STACK_DEPTH,
+  pattern GL_MAX_CLIENT_ATTRIB_STACK_DEPTH,
+  pattern GL_MAX_CLIP_PLANES,
+  pattern GL_MAX_ELEMENTS_INDICES,
+  pattern GL_MAX_ELEMENTS_VERTICES,
+  pattern GL_MAX_EVAL_ORDER,
+  pattern GL_MAX_LIGHTS,
+  pattern GL_MAX_LIST_NESTING,
+  pattern GL_MAX_MODELVIEW_STACK_DEPTH,
+  pattern GL_MAX_NAME_STACK_DEPTH,
+  pattern GL_MAX_PIXEL_MAP_TABLE,
+  pattern GL_MAX_PROJECTION_STACK_DEPTH,
+  pattern GL_MAX_TEXTURE_SIZE,
+  pattern GL_MAX_TEXTURE_STACK_DEPTH,
+  pattern GL_MAX_VIEWPORT_DIMS,
+  pattern GL_MODELVIEW,
+  pattern GL_MODELVIEW_MATRIX,
+  pattern GL_MODELVIEW_STACK_DEPTH,
+  pattern GL_MODULATE,
+  pattern GL_MULT,
+  pattern GL_N3F_V3F,
+  pattern GL_NAME_STACK_DEPTH,
+  pattern GL_NAND,
+  pattern GL_NEAREST,
+  pattern GL_NEAREST_MIPMAP_LINEAR,
+  pattern GL_NEAREST_MIPMAP_NEAREST,
+  pattern GL_NEVER,
+  pattern GL_NICEST,
+  pattern GL_NONE,
+  pattern GL_NOOP,
+  pattern GL_NOR,
+  pattern GL_NORMALIZE,
+  pattern GL_NORMAL_ARRAY,
+  pattern GL_NORMAL_ARRAY_POINTER,
+  pattern GL_NORMAL_ARRAY_STRIDE,
+  pattern GL_NORMAL_ARRAY_TYPE,
+  pattern GL_NOTEQUAL,
+  pattern GL_NO_ERROR,
+  pattern GL_OBJECT_LINEAR,
+  pattern GL_OBJECT_PLANE,
+  pattern GL_ONE,
+  pattern GL_ONE_MINUS_DST_ALPHA,
+  pattern GL_ONE_MINUS_DST_COLOR,
+  pattern GL_ONE_MINUS_SRC_ALPHA,
+  pattern GL_ONE_MINUS_SRC_COLOR,
+  pattern GL_OR,
+  pattern GL_ORDER,
+  pattern GL_OR_INVERTED,
+  pattern GL_OR_REVERSE,
+  pattern GL_OUT_OF_MEMORY,
+  pattern GL_PACK_ALIGNMENT,
+  pattern GL_PACK_IMAGE_HEIGHT,
+  pattern GL_PACK_LSB_FIRST,
+  pattern GL_PACK_ROW_LENGTH,
+  pattern GL_PACK_SKIP_IMAGES,
+  pattern GL_PACK_SKIP_PIXELS,
+  pattern GL_PACK_SKIP_ROWS,
+  pattern GL_PACK_SWAP_BYTES,
+  pattern GL_PASS_THROUGH_TOKEN,
+  pattern GL_PERSPECTIVE_CORRECTION_HINT,
+  pattern GL_PIXEL_MAP_A_TO_A,
+  pattern GL_PIXEL_MAP_A_TO_A_SIZE,
+  pattern GL_PIXEL_MAP_B_TO_B,
+  pattern GL_PIXEL_MAP_B_TO_B_SIZE,
+  pattern GL_PIXEL_MAP_G_TO_G,
+  pattern GL_PIXEL_MAP_G_TO_G_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_A,
+  pattern GL_PIXEL_MAP_I_TO_A_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_B,
+  pattern GL_PIXEL_MAP_I_TO_B_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_G,
+  pattern GL_PIXEL_MAP_I_TO_G_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_I,
+  pattern GL_PIXEL_MAP_I_TO_I_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_R,
+  pattern GL_PIXEL_MAP_I_TO_R_SIZE,
+  pattern GL_PIXEL_MAP_R_TO_R,
+  pattern GL_PIXEL_MAP_R_TO_R_SIZE,
+  pattern GL_PIXEL_MAP_S_TO_S,
+  pattern GL_PIXEL_MAP_S_TO_S_SIZE,
+  pattern GL_PIXEL_MODE_BIT,
+  pattern GL_POINT,
+  pattern GL_POINTS,
+  pattern GL_POINT_BIT,
+  pattern GL_POINT_SIZE,
+  pattern GL_POINT_SIZE_GRANULARITY,
+  pattern GL_POINT_SIZE_RANGE,
+  pattern GL_POINT_SMOOTH,
+  pattern GL_POINT_SMOOTH_HINT,
+  pattern GL_POINT_TOKEN,
+  pattern GL_POLYGON,
+  pattern GL_POLYGON_BIT,
+  pattern GL_POLYGON_MODE,
+  pattern GL_POLYGON_OFFSET_FACTOR,
+  pattern GL_POLYGON_OFFSET_FILL,
+  pattern GL_POLYGON_OFFSET_LINE,
+  pattern GL_POLYGON_OFFSET_POINT,
+  pattern GL_POLYGON_OFFSET_UNITS,
+  pattern GL_POLYGON_SMOOTH,
+  pattern GL_POLYGON_SMOOTH_HINT,
+  pattern GL_POLYGON_STIPPLE,
+  pattern GL_POLYGON_STIPPLE_BIT,
+  pattern GL_POLYGON_TOKEN,
+  pattern GL_POSITION,
+  pattern GL_PROJECTION,
+  pattern GL_PROJECTION_MATRIX,
+  pattern GL_PROJECTION_STACK_DEPTH,
+  pattern GL_PROXY_TEXTURE_1D,
+  pattern GL_PROXY_TEXTURE_2D,
+  pattern GL_PROXY_TEXTURE_3D,
+  pattern GL_Q,
+  pattern GL_QUADRATIC_ATTENUATION,
+  pattern GL_QUADS,
+  pattern GL_QUAD_STRIP,
+  pattern GL_R,
+  pattern GL_R3_G3_B2,
+  pattern GL_READ_BUFFER,
+  pattern GL_RED,
+  pattern GL_RED_BIAS,
+  pattern GL_RED_BITS,
+  pattern GL_RED_SCALE,
+  pattern GL_RENDER,
+  pattern GL_RENDERER,
+  pattern GL_RENDER_MODE,
+  pattern GL_REPEAT,
+  pattern GL_REPLACE,
+  pattern GL_RESCALE_NORMAL,
+  pattern GL_RETURN,
+  pattern GL_RGB,
+  pattern GL_RGB10,
+  pattern GL_RGB10_A2,
+  pattern GL_RGB12,
+  pattern GL_RGB16,
+  pattern GL_RGB4,
+  pattern GL_RGB5,
+  pattern GL_RGB5_A1,
+  pattern GL_RGB8,
+  pattern GL_RGBA,
+  pattern GL_RGBA12,
+  pattern GL_RGBA16,
+  pattern GL_RGBA2,
+  pattern GL_RGBA4,
+  pattern GL_RGBA8,
+  pattern GL_RGBA_MODE,
+  pattern GL_RIGHT,
+  pattern GL_S,
+  pattern GL_SCISSOR_BIT,
+  pattern GL_SCISSOR_BOX,
+  pattern GL_SCISSOR_TEST,
+  pattern GL_SELECT,
+  pattern GL_SELECTION_BUFFER_POINTER,
+  pattern GL_SELECTION_BUFFER_SIZE,
+  pattern GL_SEPARATE_SPECULAR_COLOR,
+  pattern GL_SET,
+  pattern GL_SHADE_MODEL,
+  pattern GL_SHININESS,
+  pattern GL_SHORT,
+  pattern GL_SINGLE_COLOR,
+  pattern GL_SMOOTH,
+  pattern GL_SMOOTH_LINE_WIDTH_GRANULARITY,
+  pattern GL_SMOOTH_LINE_WIDTH_RANGE,
+  pattern GL_SMOOTH_POINT_SIZE_GRANULARITY,
+  pattern GL_SMOOTH_POINT_SIZE_RANGE,
+  pattern GL_SPECULAR,
+  pattern GL_SPHERE_MAP,
+  pattern GL_SPOT_CUTOFF,
+  pattern GL_SPOT_DIRECTION,
+  pattern GL_SPOT_EXPONENT,
+  pattern GL_SRC_ALPHA,
+  pattern GL_SRC_ALPHA_SATURATE,
+  pattern GL_SRC_COLOR,
+  pattern GL_STACK_OVERFLOW,
+  pattern GL_STACK_UNDERFLOW,
+  pattern GL_STENCIL,
+  pattern GL_STENCIL_BITS,
+  pattern GL_STENCIL_BUFFER_BIT,
+  pattern GL_STENCIL_CLEAR_VALUE,
+  pattern GL_STENCIL_FAIL,
+  pattern GL_STENCIL_FUNC,
+  pattern GL_STENCIL_INDEX,
+  pattern GL_STENCIL_PASS_DEPTH_FAIL,
+  pattern GL_STENCIL_PASS_DEPTH_PASS,
+  pattern GL_STENCIL_REF,
+  pattern GL_STENCIL_TEST,
+  pattern GL_STENCIL_VALUE_MASK,
+  pattern GL_STENCIL_WRITEMASK,
+  pattern GL_STEREO,
+  pattern GL_SUBPIXEL_BITS,
+  pattern GL_T,
+  pattern GL_T2F_C3F_V3F,
+  pattern GL_T2F_C4F_N3F_V3F,
+  pattern GL_T2F_C4UB_V3F,
+  pattern GL_T2F_N3F_V3F,
+  pattern GL_T2F_V3F,
+  pattern GL_T4F_C4F_N3F_V4F,
+  pattern GL_T4F_V4F,
+  pattern GL_TEXTURE,
+  pattern GL_TEXTURE_1D,
+  pattern GL_TEXTURE_2D,
+  pattern GL_TEXTURE_3D,
+  pattern GL_TEXTURE_ALPHA_SIZE,
+  pattern GL_TEXTURE_BASE_LEVEL,
+  pattern GL_TEXTURE_BINDING_1D,
+  pattern GL_TEXTURE_BINDING_2D,
+  pattern GL_TEXTURE_BINDING_3D,
+  pattern GL_TEXTURE_BIT,
+  pattern GL_TEXTURE_BLUE_SIZE,
+  pattern GL_TEXTURE_BORDER,
+  pattern GL_TEXTURE_BORDER_COLOR,
+  pattern GL_TEXTURE_COMPONENTS,
+  pattern GL_TEXTURE_COORD_ARRAY,
+  pattern GL_TEXTURE_COORD_ARRAY_POINTER,
+  pattern GL_TEXTURE_COORD_ARRAY_SIZE,
+  pattern GL_TEXTURE_COORD_ARRAY_STRIDE,
+  pattern GL_TEXTURE_COORD_ARRAY_TYPE,
+  pattern GL_TEXTURE_DEPTH,
+  pattern GL_TEXTURE_ENV,
+  pattern GL_TEXTURE_ENV_COLOR,
+  pattern GL_TEXTURE_ENV_MODE,
+  pattern GL_TEXTURE_GEN_MODE,
+  pattern GL_TEXTURE_GEN_Q,
+  pattern GL_TEXTURE_GEN_R,
+  pattern GL_TEXTURE_GEN_S,
+  pattern GL_TEXTURE_GEN_T,
+  pattern GL_TEXTURE_GREEN_SIZE,
+  pattern GL_TEXTURE_HEIGHT,
+  pattern GL_TEXTURE_INTENSITY_SIZE,
+  pattern GL_TEXTURE_INTERNAL_FORMAT,
+  pattern GL_TEXTURE_LUMINANCE_SIZE,
+  pattern GL_TEXTURE_MAG_FILTER,
+  pattern GL_TEXTURE_MATRIX,
+  pattern GL_TEXTURE_MAX_LEVEL,
+  pattern GL_TEXTURE_MAX_LOD,
+  pattern GL_TEXTURE_MIN_FILTER,
+  pattern GL_TEXTURE_MIN_LOD,
+  pattern GL_TEXTURE_PRIORITY,
+  pattern GL_TEXTURE_RED_SIZE,
+  pattern GL_TEXTURE_RESIDENT,
+  pattern GL_TEXTURE_STACK_DEPTH,
+  pattern GL_TEXTURE_WIDTH,
+  pattern GL_TEXTURE_WRAP_R,
+  pattern GL_TEXTURE_WRAP_S,
+  pattern GL_TEXTURE_WRAP_T,
+  pattern GL_TRANSFORM_BIT,
+  pattern GL_TRIANGLES,
+  pattern GL_TRIANGLE_FAN,
+  pattern GL_TRIANGLE_STRIP,
+  pattern GL_TRUE,
+  pattern GL_UNPACK_ALIGNMENT,
+  pattern GL_UNPACK_IMAGE_HEIGHT,
+  pattern GL_UNPACK_LSB_FIRST,
+  pattern GL_UNPACK_ROW_LENGTH,
+  pattern GL_UNPACK_SKIP_IMAGES,
+  pattern GL_UNPACK_SKIP_PIXELS,
+  pattern GL_UNPACK_SKIP_ROWS,
+  pattern GL_UNPACK_SWAP_BYTES,
+  pattern GL_UNSIGNED_BYTE,
+  pattern GL_UNSIGNED_BYTE_2_3_3_REV,
+  pattern GL_UNSIGNED_BYTE_3_3_2,
+  pattern GL_UNSIGNED_INT,
+  pattern GL_UNSIGNED_INT_10_10_10_2,
+  pattern GL_UNSIGNED_INT_2_10_10_10_REV,
+  pattern GL_UNSIGNED_INT_8_8_8_8,
+  pattern GL_UNSIGNED_INT_8_8_8_8_REV,
+  pattern GL_UNSIGNED_SHORT,
+  pattern GL_UNSIGNED_SHORT_1_5_5_5_REV,
+  pattern GL_UNSIGNED_SHORT_4_4_4_4,
+  pattern GL_UNSIGNED_SHORT_4_4_4_4_REV,
+  pattern GL_UNSIGNED_SHORT_5_5_5_1,
+  pattern GL_UNSIGNED_SHORT_5_6_5,
+  pattern GL_UNSIGNED_SHORT_5_6_5_REV,
+  pattern GL_V2F,
+  pattern GL_V3F,
+  pattern GL_VENDOR,
+  pattern GL_VERSION,
+  pattern GL_VERTEX_ARRAY,
+  pattern GL_VERTEX_ARRAY_POINTER,
+  pattern GL_VERTEX_ARRAY_SIZE,
+  pattern GL_VERTEX_ARRAY_STRIDE,
+  pattern GL_VERTEX_ARRAY_TYPE,
+  pattern GL_VIEWPORT,
+  pattern GL_VIEWPORT_BIT,
+  pattern GL_XOR,
+  pattern GL_ZERO,
+  pattern GL_ZOOM_X,
+  pattern GL_ZOOM_Y,
+  -- * Functions
+  glAccum,
+  glAlphaFunc,
+  glAreTexturesResident,
+  glArrayElement,
+  glBegin,
+  glBindTexture,
+  glBitmap,
+  glBlendFunc,
+  glCallList,
+  glCallLists,
+  glClear,
+  glClearAccum,
+  glClearColor,
+  glClearDepth,
+  glClearIndex,
+  glClearStencil,
+  glClipPlane,
+  glColor3b,
+  glColor3bv,
+  glColor3d,
+  glColor3dv,
+  glColor3f,
+  glColor3fv,
+  glColor3i,
+  glColor3iv,
+  glColor3s,
+  glColor3sv,
+  glColor3ub,
+  glColor3ubv,
+  glColor3ui,
+  glColor3uiv,
+  glColor3us,
+  glColor3usv,
+  glColor4b,
+  glColor4bv,
+  glColor4d,
+  glColor4dv,
+  glColor4f,
+  glColor4fv,
+  glColor4i,
+  glColor4iv,
+  glColor4s,
+  glColor4sv,
+  glColor4ub,
+  glColor4ubv,
+  glColor4ui,
+  glColor4uiv,
+  glColor4us,
+  glColor4usv,
+  glColorMask,
+  glColorMaterial,
+  glColorPointer,
+  glCopyPixels,
+  glCopyTexImage1D,
+  glCopyTexImage2D,
+  glCopyTexSubImage1D,
+  glCopyTexSubImage2D,
+  glCopyTexSubImage3D,
+  glCullFace,
+  glDeleteLists,
+  glDeleteTextures,
+  glDepthFunc,
+  glDepthMask,
+  glDepthRange,
+  glDisable,
+  glDisableClientState,
+  glDrawArrays,
+  glDrawBuffer,
+  glDrawElements,
+  glDrawPixels,
+  glDrawRangeElements,
+  glEdgeFlag,
+  glEdgeFlagPointer,
+  glEdgeFlagv,
+  glEnable,
+  glEnableClientState,
+  glEnd,
+  glEndList,
+  glEvalCoord1d,
+  glEvalCoord1dv,
+  glEvalCoord1f,
+  glEvalCoord1fv,
+  glEvalCoord2d,
+  glEvalCoord2dv,
+  glEvalCoord2f,
+  glEvalCoord2fv,
+  glEvalMesh1,
+  glEvalMesh2,
+  glEvalPoint1,
+  glEvalPoint2,
+  glFeedbackBuffer,
+  glFinish,
+  glFlush,
+  glFogf,
+  glFogfv,
+  glFogi,
+  glFogiv,
+  glFrontFace,
+  glFrustum,
+  glGenLists,
+  glGenTextures,
+  glGetBooleanv,
+  glGetClipPlane,
+  glGetDoublev,
+  glGetError,
+  glGetFloatv,
+  glGetIntegerv,
+  glGetLightfv,
+  glGetLightiv,
+  glGetMapdv,
+  glGetMapfv,
+  glGetMapiv,
+  glGetMaterialfv,
+  glGetMaterialiv,
+  glGetPixelMapfv,
+  glGetPixelMapuiv,
+  glGetPixelMapusv,
+  glGetPointerv,
+  glGetPolygonStipple,
+  glGetString,
+  glGetTexEnvfv,
+  glGetTexEnviv,
+  glGetTexGendv,
+  glGetTexGenfv,
+  glGetTexGeniv,
+  glGetTexImage,
+  glGetTexLevelParameterfv,
+  glGetTexLevelParameteriv,
+  glGetTexParameterfv,
+  glGetTexParameteriv,
+  glHint,
+  glIndexMask,
+  glIndexPointer,
+  glIndexd,
+  glIndexdv,
+  glIndexf,
+  glIndexfv,
+  glIndexi,
+  glIndexiv,
+  glIndexs,
+  glIndexsv,
+  glIndexub,
+  glIndexubv,
+  glInitNames,
+  glInterleavedArrays,
+  glIsEnabled,
+  glIsList,
+  glIsTexture,
+  glLightModelf,
+  glLightModelfv,
+  glLightModeli,
+  glLightModeliv,
+  glLightf,
+  glLightfv,
+  glLighti,
+  glLightiv,
+  glLineStipple,
+  glLineWidth,
+  glListBase,
+  glLoadIdentity,
+  glLoadMatrixd,
+  glLoadMatrixf,
+  glLoadName,
+  glLogicOp,
+  glMap1d,
+  glMap1f,
+  glMap2d,
+  glMap2f,
+  glMapGrid1d,
+  glMapGrid1f,
+  glMapGrid2d,
+  glMapGrid2f,
+  glMaterialf,
+  glMaterialfv,
+  glMateriali,
+  glMaterialiv,
+  glMatrixMode,
+  glMultMatrixd,
+  glMultMatrixf,
+  glNewList,
+  glNormal3b,
+  glNormal3bv,
+  glNormal3d,
+  glNormal3dv,
+  glNormal3f,
+  glNormal3fv,
+  glNormal3i,
+  glNormal3iv,
+  glNormal3s,
+  glNormal3sv,
+  glNormalPointer,
+  glOrtho,
+  glPassThrough,
+  glPixelMapfv,
+  glPixelMapuiv,
+  glPixelMapusv,
+  glPixelStoref,
+  glPixelStorei,
+  glPixelTransferf,
+  glPixelTransferi,
+  glPixelZoom,
+  glPointSize,
+  glPolygonMode,
+  glPolygonOffset,
+  glPolygonStipple,
+  glPopAttrib,
+  glPopClientAttrib,
+  glPopMatrix,
+  glPopName,
+  glPrioritizeTextures,
+  glPushAttrib,
+  glPushClientAttrib,
+  glPushMatrix,
+  glPushName,
+  glRasterPos2d,
+  glRasterPos2dv,
+  glRasterPos2f,
+  glRasterPos2fv,
+  glRasterPos2i,
+  glRasterPos2iv,
+  glRasterPos2s,
+  glRasterPos2sv,
+  glRasterPos3d,
+  glRasterPos3dv,
+  glRasterPos3f,
+  glRasterPos3fv,
+  glRasterPos3i,
+  glRasterPos3iv,
+  glRasterPos3s,
+  glRasterPos3sv,
+  glRasterPos4d,
+  glRasterPos4dv,
+  glRasterPos4f,
+  glRasterPos4fv,
+  glRasterPos4i,
+  glRasterPos4iv,
+  glRasterPos4s,
+  glRasterPos4sv,
+  glReadBuffer,
+  glReadPixels,
+  glRectd,
+  glRectdv,
+  glRectf,
+  glRectfv,
+  glRecti,
+  glRectiv,
+  glRects,
+  glRectsv,
+  glRenderMode,
+  glRotated,
+  glRotatef,
+  glScaled,
+  glScalef,
+  glScissor,
+  glSelectBuffer,
+  glShadeModel,
+  glStencilFunc,
+  glStencilMask,
+  glStencilOp,
+  glTexCoord1d,
+  glTexCoord1dv,
+  glTexCoord1f,
+  glTexCoord1fv,
+  glTexCoord1i,
+  glTexCoord1iv,
+  glTexCoord1s,
+  glTexCoord1sv,
+  glTexCoord2d,
+  glTexCoord2dv,
+  glTexCoord2f,
+  glTexCoord2fv,
+  glTexCoord2i,
+  glTexCoord2iv,
+  glTexCoord2s,
+  glTexCoord2sv,
+  glTexCoord3d,
+  glTexCoord3dv,
+  glTexCoord3f,
+  glTexCoord3fv,
+  glTexCoord3i,
+  glTexCoord3iv,
+  glTexCoord3s,
+  glTexCoord3sv,
+  glTexCoord4d,
+  glTexCoord4dv,
+  glTexCoord4f,
+  glTexCoord4fv,
+  glTexCoord4i,
+  glTexCoord4iv,
+  glTexCoord4s,
+  glTexCoord4sv,
+  glTexCoordPointer,
+  glTexEnvf,
+  glTexEnvfv,
+  glTexEnvi,
+  glTexEnviv,
+  glTexGend,
+  glTexGendv,
+  glTexGenf,
+  glTexGenfv,
+  glTexGeni,
+  glTexGeniv,
+  glTexImage1D,
+  glTexImage2D,
+  glTexImage3D,
+  glTexParameterf,
+  glTexParameterfv,
+  glTexParameteri,
+  glTexParameteriv,
+  glTexSubImage1D,
+  glTexSubImage2D,
+  glTexSubImage3D,
+  glTranslated,
+  glTranslatef,
+  glVertex2d,
+  glVertex2dv,
+  glVertex2f,
+  glVertex2fv,
+  glVertex2i,
+  glVertex2iv,
+  glVertex2s,
+  glVertex2sv,
+  glVertex3d,
+  glVertex3dv,
+  glVertex3f,
+  glVertex3fv,
+  glVertex3i,
+  glVertex3iv,
+  glVertex3s,
+  glVertex3sv,
+  glVertex4d,
+  glVertex4dv,
+  glVertex4f,
+  glVertex4fv,
+  glVertex4i,
+  glVertex4iv,
+  glVertex4s,
+  glVertex4sv,
+  glVertexPointer,
+  glViewport
+) where
+
+import Graphics.GL.Types
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/Version13.hs b/src/Graphics/GL/Version13.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Version13.hs
@@ -0,0 +1,1088 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Version13
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Version13 (
+  -- * Types
+  GLbitfield,
+  GLboolean,
+  GLbyte,
+  GLclampd,
+  GLclampf,
+  GLdouble,
+  GLenum,
+  GLfloat,
+  GLint,
+  GLshort,
+  GLsizei,
+  GLubyte,
+  GLuint,
+  GLushort,
+  GLvoid,
+  -- * Enums
+  pattern GL_2D,
+  pattern GL_2_BYTES,
+  pattern GL_3D,
+  pattern GL_3D_COLOR,
+  pattern GL_3D_COLOR_TEXTURE,
+  pattern GL_3_BYTES,
+  pattern GL_4D_COLOR_TEXTURE,
+  pattern GL_4_BYTES,
+  pattern GL_ACCUM,
+  pattern GL_ACCUM_ALPHA_BITS,
+  pattern GL_ACCUM_BLUE_BITS,
+  pattern GL_ACCUM_BUFFER_BIT,
+  pattern GL_ACCUM_CLEAR_VALUE,
+  pattern GL_ACCUM_GREEN_BITS,
+  pattern GL_ACCUM_RED_BITS,
+  pattern GL_ACTIVE_TEXTURE,
+  pattern GL_ADD,
+  pattern GL_ADD_SIGNED,
+  pattern GL_ALIASED_LINE_WIDTH_RANGE,
+  pattern GL_ALIASED_POINT_SIZE_RANGE,
+  pattern GL_ALL_ATTRIB_BITS,
+  pattern GL_ALPHA,
+  pattern GL_ALPHA12,
+  pattern GL_ALPHA16,
+  pattern GL_ALPHA4,
+  pattern GL_ALPHA8,
+  pattern GL_ALPHA_BIAS,
+  pattern GL_ALPHA_BITS,
+  pattern GL_ALPHA_SCALE,
+  pattern GL_ALPHA_TEST,
+  pattern GL_ALPHA_TEST_FUNC,
+  pattern GL_ALPHA_TEST_REF,
+  pattern GL_ALWAYS,
+  pattern GL_AMBIENT,
+  pattern GL_AMBIENT_AND_DIFFUSE,
+  pattern GL_AND,
+  pattern GL_AND_INVERTED,
+  pattern GL_AND_REVERSE,
+  pattern GL_ATTRIB_STACK_DEPTH,
+  pattern GL_AUTO_NORMAL,
+  pattern GL_AUX0,
+  pattern GL_AUX1,
+  pattern GL_AUX2,
+  pattern GL_AUX3,
+  pattern GL_AUX_BUFFERS,
+  pattern GL_BACK,
+  pattern GL_BACK_LEFT,
+  pattern GL_BACK_RIGHT,
+  pattern GL_BGR,
+  pattern GL_BGRA,
+  pattern GL_BITMAP,
+  pattern GL_BITMAP_TOKEN,
+  pattern GL_BLEND,
+  pattern GL_BLEND_DST,
+  pattern GL_BLEND_SRC,
+  pattern GL_BLUE,
+  pattern GL_BLUE_BIAS,
+  pattern GL_BLUE_BITS,
+  pattern GL_BLUE_SCALE,
+  pattern GL_BYTE,
+  pattern GL_C3F_V3F,
+  pattern GL_C4F_N3F_V3F,
+  pattern GL_C4UB_V2F,
+  pattern GL_C4UB_V3F,
+  pattern GL_CCW,
+  pattern GL_CLAMP,
+  pattern GL_CLAMP_TO_BORDER,
+  pattern GL_CLAMP_TO_EDGE,
+  pattern GL_CLEAR,
+  pattern GL_CLIENT_ACTIVE_TEXTURE,
+  pattern GL_CLIENT_ALL_ATTRIB_BITS,
+  pattern GL_CLIENT_ATTRIB_STACK_DEPTH,
+  pattern GL_CLIENT_PIXEL_STORE_BIT,
+  pattern GL_CLIENT_VERTEX_ARRAY_BIT,
+  pattern GL_CLIP_PLANE0,
+  pattern GL_CLIP_PLANE1,
+  pattern GL_CLIP_PLANE2,
+  pattern GL_CLIP_PLANE3,
+  pattern GL_CLIP_PLANE4,
+  pattern GL_CLIP_PLANE5,
+  pattern GL_COEFF,
+  pattern GL_COLOR,
+  pattern GL_COLOR_ARRAY,
+  pattern GL_COLOR_ARRAY_POINTER,
+  pattern GL_COLOR_ARRAY_SIZE,
+  pattern GL_COLOR_ARRAY_STRIDE,
+  pattern GL_COLOR_ARRAY_TYPE,
+  pattern GL_COLOR_BUFFER_BIT,
+  pattern GL_COLOR_CLEAR_VALUE,
+  pattern GL_COLOR_INDEX,
+  pattern GL_COLOR_INDEXES,
+  pattern GL_COLOR_LOGIC_OP,
+  pattern GL_COLOR_MATERIAL,
+  pattern GL_COLOR_MATERIAL_FACE,
+  pattern GL_COLOR_MATERIAL_PARAMETER,
+  pattern GL_COLOR_WRITEMASK,
+  pattern GL_COMBINE,
+  pattern GL_COMBINE_ALPHA,
+  pattern GL_COMBINE_RGB,
+  pattern GL_COMPILE,
+  pattern GL_COMPILE_AND_EXECUTE,
+  pattern GL_COMPRESSED_ALPHA,
+  pattern GL_COMPRESSED_INTENSITY,
+  pattern GL_COMPRESSED_LUMINANCE,
+  pattern GL_COMPRESSED_LUMINANCE_ALPHA,
+  pattern GL_COMPRESSED_RGB,
+  pattern GL_COMPRESSED_RGBA,
+  pattern GL_COMPRESSED_TEXTURE_FORMATS,
+  pattern GL_CONSTANT,
+  pattern GL_CONSTANT_ATTENUATION,
+  pattern GL_COPY,
+  pattern GL_COPY_INVERTED,
+  pattern GL_COPY_PIXEL_TOKEN,
+  pattern GL_CULL_FACE,
+  pattern GL_CULL_FACE_MODE,
+  pattern GL_CURRENT_BIT,
+  pattern GL_CURRENT_COLOR,
+  pattern GL_CURRENT_INDEX,
+  pattern GL_CURRENT_NORMAL,
+  pattern GL_CURRENT_RASTER_COLOR,
+  pattern GL_CURRENT_RASTER_DISTANCE,
+  pattern GL_CURRENT_RASTER_INDEX,
+  pattern GL_CURRENT_RASTER_POSITION,
+  pattern GL_CURRENT_RASTER_POSITION_VALID,
+  pattern GL_CURRENT_RASTER_TEXTURE_COORDS,
+  pattern GL_CURRENT_TEXTURE_COORDS,
+  pattern GL_CW,
+  pattern GL_DECAL,
+  pattern GL_DECR,
+  pattern GL_DEPTH,
+  pattern GL_DEPTH_BIAS,
+  pattern GL_DEPTH_BITS,
+  pattern GL_DEPTH_BUFFER_BIT,
+  pattern GL_DEPTH_CLEAR_VALUE,
+  pattern GL_DEPTH_COMPONENT,
+  pattern GL_DEPTH_FUNC,
+  pattern GL_DEPTH_RANGE,
+  pattern GL_DEPTH_SCALE,
+  pattern GL_DEPTH_TEST,
+  pattern GL_DEPTH_WRITEMASK,
+  pattern GL_DIFFUSE,
+  pattern GL_DITHER,
+  pattern GL_DOMAIN,
+  pattern GL_DONT_CARE,
+  pattern GL_DOT3_RGB,
+  pattern GL_DOT3_RGBA,
+  pattern GL_DOUBLE,
+  pattern GL_DOUBLEBUFFER,
+  pattern GL_DRAW_BUFFER,
+  pattern GL_DRAW_PIXEL_TOKEN,
+  pattern GL_DST_ALPHA,
+  pattern GL_DST_COLOR,
+  pattern GL_EDGE_FLAG,
+  pattern GL_EDGE_FLAG_ARRAY,
+  pattern GL_EDGE_FLAG_ARRAY_POINTER,
+  pattern GL_EDGE_FLAG_ARRAY_STRIDE,
+  pattern GL_EMISSION,
+  pattern GL_ENABLE_BIT,
+  pattern GL_EQUAL,
+  pattern GL_EQUIV,
+  pattern GL_EVAL_BIT,
+  pattern GL_EXP,
+  pattern GL_EXP2,
+  pattern GL_EXTENSIONS,
+  pattern GL_EYE_LINEAR,
+  pattern GL_EYE_PLANE,
+  pattern GL_FALSE,
+  pattern GL_FASTEST,
+  pattern GL_FEEDBACK,
+  pattern GL_FEEDBACK_BUFFER_POINTER,
+  pattern GL_FEEDBACK_BUFFER_SIZE,
+  pattern GL_FEEDBACK_BUFFER_TYPE,
+  pattern GL_FILL,
+  pattern GL_FLAT,
+  pattern GL_FLOAT,
+  pattern GL_FOG,
+  pattern GL_FOG_BIT,
+  pattern GL_FOG_COLOR,
+  pattern GL_FOG_DENSITY,
+  pattern GL_FOG_END,
+  pattern GL_FOG_HINT,
+  pattern GL_FOG_INDEX,
+  pattern GL_FOG_MODE,
+  pattern GL_FOG_START,
+  pattern GL_FRONT,
+  pattern GL_FRONT_AND_BACK,
+  pattern GL_FRONT_FACE,
+  pattern GL_FRONT_LEFT,
+  pattern GL_FRONT_RIGHT,
+  pattern GL_GEQUAL,
+  pattern GL_GREATER,
+  pattern GL_GREEN,
+  pattern GL_GREEN_BIAS,
+  pattern GL_GREEN_BITS,
+  pattern GL_GREEN_SCALE,
+  pattern GL_HINT_BIT,
+  pattern GL_INCR,
+  pattern GL_INDEX_ARRAY,
+  pattern GL_INDEX_ARRAY_POINTER,
+  pattern GL_INDEX_ARRAY_STRIDE,
+  pattern GL_INDEX_ARRAY_TYPE,
+  pattern GL_INDEX_BITS,
+  pattern GL_INDEX_CLEAR_VALUE,
+  pattern GL_INDEX_LOGIC_OP,
+  pattern GL_INDEX_MODE,
+  pattern GL_INDEX_OFFSET,
+  pattern GL_INDEX_SHIFT,
+  pattern GL_INDEX_WRITEMASK,
+  pattern GL_INT,
+  pattern GL_INTENSITY,
+  pattern GL_INTENSITY12,
+  pattern GL_INTENSITY16,
+  pattern GL_INTENSITY4,
+  pattern GL_INTENSITY8,
+  pattern GL_INTERPOLATE,
+  pattern GL_INVALID_ENUM,
+  pattern GL_INVALID_OPERATION,
+  pattern GL_INVALID_VALUE,
+  pattern GL_INVERT,
+  pattern GL_KEEP,
+  pattern GL_LEFT,
+  pattern GL_LEQUAL,
+  pattern GL_LESS,
+  pattern GL_LIGHT0,
+  pattern GL_LIGHT1,
+  pattern GL_LIGHT2,
+  pattern GL_LIGHT3,
+  pattern GL_LIGHT4,
+  pattern GL_LIGHT5,
+  pattern GL_LIGHT6,
+  pattern GL_LIGHT7,
+  pattern GL_LIGHTING,
+  pattern GL_LIGHTING_BIT,
+  pattern GL_LIGHT_MODEL_AMBIENT,
+  pattern GL_LIGHT_MODEL_COLOR_CONTROL,
+  pattern GL_LIGHT_MODEL_LOCAL_VIEWER,
+  pattern GL_LIGHT_MODEL_TWO_SIDE,
+  pattern GL_LINE,
+  pattern GL_LINEAR,
+  pattern GL_LINEAR_ATTENUATION,
+  pattern GL_LINEAR_MIPMAP_LINEAR,
+  pattern GL_LINEAR_MIPMAP_NEAREST,
+  pattern GL_LINES,
+  pattern GL_LINE_BIT,
+  pattern GL_LINE_LOOP,
+  pattern GL_LINE_RESET_TOKEN,
+  pattern GL_LINE_SMOOTH,
+  pattern GL_LINE_SMOOTH_HINT,
+  pattern GL_LINE_STIPPLE,
+  pattern GL_LINE_STIPPLE_PATTERN,
+  pattern GL_LINE_STIPPLE_REPEAT,
+  pattern GL_LINE_STRIP,
+  pattern GL_LINE_TOKEN,
+  pattern GL_LINE_WIDTH,
+  pattern GL_LINE_WIDTH_GRANULARITY,
+  pattern GL_LINE_WIDTH_RANGE,
+  pattern GL_LIST_BASE,
+  pattern GL_LIST_BIT,
+  pattern GL_LIST_INDEX,
+  pattern GL_LIST_MODE,
+  pattern GL_LOAD,
+  pattern GL_LOGIC_OP,
+  pattern GL_LOGIC_OP_MODE,
+  pattern GL_LUMINANCE,
+  pattern GL_LUMINANCE12,
+  pattern GL_LUMINANCE12_ALPHA12,
+  pattern GL_LUMINANCE12_ALPHA4,
+  pattern GL_LUMINANCE16,
+  pattern GL_LUMINANCE16_ALPHA16,
+  pattern GL_LUMINANCE4,
+  pattern GL_LUMINANCE4_ALPHA4,
+  pattern GL_LUMINANCE6_ALPHA2,
+  pattern GL_LUMINANCE8,
+  pattern GL_LUMINANCE8_ALPHA8,
+  pattern GL_LUMINANCE_ALPHA,
+  pattern GL_MAP1_COLOR_4,
+  pattern GL_MAP1_GRID_DOMAIN,
+  pattern GL_MAP1_GRID_SEGMENTS,
+  pattern GL_MAP1_INDEX,
+  pattern GL_MAP1_NORMAL,
+  pattern GL_MAP1_TEXTURE_COORD_1,
+  pattern GL_MAP1_TEXTURE_COORD_2,
+  pattern GL_MAP1_TEXTURE_COORD_3,
+  pattern GL_MAP1_TEXTURE_COORD_4,
+  pattern GL_MAP1_VERTEX_3,
+  pattern GL_MAP1_VERTEX_4,
+  pattern GL_MAP2_COLOR_4,
+  pattern GL_MAP2_GRID_DOMAIN,
+  pattern GL_MAP2_GRID_SEGMENTS,
+  pattern GL_MAP2_INDEX,
+  pattern GL_MAP2_NORMAL,
+  pattern GL_MAP2_TEXTURE_COORD_1,
+  pattern GL_MAP2_TEXTURE_COORD_2,
+  pattern GL_MAP2_TEXTURE_COORD_3,
+  pattern GL_MAP2_TEXTURE_COORD_4,
+  pattern GL_MAP2_VERTEX_3,
+  pattern GL_MAP2_VERTEX_4,
+  pattern GL_MAP_COLOR,
+  pattern GL_MAP_STENCIL,
+  pattern GL_MATRIX_MODE,
+  pattern GL_MAX_3D_TEXTURE_SIZE,
+  pattern GL_MAX_ATTRIB_STACK_DEPTH,
+  pattern GL_MAX_CLIENT_ATTRIB_STACK_DEPTH,
+  pattern GL_MAX_CLIP_PLANES,
+  pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE,
+  pattern GL_MAX_ELEMENTS_INDICES,
+  pattern GL_MAX_ELEMENTS_VERTICES,
+  pattern GL_MAX_EVAL_ORDER,
+  pattern GL_MAX_LIGHTS,
+  pattern GL_MAX_LIST_NESTING,
+  pattern GL_MAX_MODELVIEW_STACK_DEPTH,
+  pattern GL_MAX_NAME_STACK_DEPTH,
+  pattern GL_MAX_PIXEL_MAP_TABLE,
+  pattern GL_MAX_PROJECTION_STACK_DEPTH,
+  pattern GL_MAX_TEXTURE_SIZE,
+  pattern GL_MAX_TEXTURE_STACK_DEPTH,
+  pattern GL_MAX_TEXTURE_UNITS,
+  pattern GL_MAX_VIEWPORT_DIMS,
+  pattern GL_MODELVIEW,
+  pattern GL_MODELVIEW_MATRIX,
+  pattern GL_MODELVIEW_STACK_DEPTH,
+  pattern GL_MODULATE,
+  pattern GL_MULT,
+  pattern GL_MULTISAMPLE,
+  pattern GL_MULTISAMPLE_BIT,
+  pattern GL_N3F_V3F,
+  pattern GL_NAME_STACK_DEPTH,
+  pattern GL_NAND,
+  pattern GL_NEAREST,
+  pattern GL_NEAREST_MIPMAP_LINEAR,
+  pattern GL_NEAREST_MIPMAP_NEAREST,
+  pattern GL_NEVER,
+  pattern GL_NICEST,
+  pattern GL_NONE,
+  pattern GL_NOOP,
+  pattern GL_NOR,
+  pattern GL_NORMALIZE,
+  pattern GL_NORMAL_ARRAY,
+  pattern GL_NORMAL_ARRAY_POINTER,
+  pattern GL_NORMAL_ARRAY_STRIDE,
+  pattern GL_NORMAL_ARRAY_TYPE,
+  pattern GL_NORMAL_MAP,
+  pattern GL_NOTEQUAL,
+  pattern GL_NO_ERROR,
+  pattern GL_NUM_COMPRESSED_TEXTURE_FORMATS,
+  pattern GL_OBJECT_LINEAR,
+  pattern GL_OBJECT_PLANE,
+  pattern GL_ONE,
+  pattern GL_ONE_MINUS_DST_ALPHA,
+  pattern GL_ONE_MINUS_DST_COLOR,
+  pattern GL_ONE_MINUS_SRC_ALPHA,
+  pattern GL_ONE_MINUS_SRC_COLOR,
+  pattern GL_OPERAND0_ALPHA,
+  pattern GL_OPERAND0_RGB,
+  pattern GL_OPERAND1_ALPHA,
+  pattern GL_OPERAND1_RGB,
+  pattern GL_OPERAND2_ALPHA,
+  pattern GL_OPERAND2_RGB,
+  pattern GL_OR,
+  pattern GL_ORDER,
+  pattern GL_OR_INVERTED,
+  pattern GL_OR_REVERSE,
+  pattern GL_OUT_OF_MEMORY,
+  pattern GL_PACK_ALIGNMENT,
+  pattern GL_PACK_IMAGE_HEIGHT,
+  pattern GL_PACK_LSB_FIRST,
+  pattern GL_PACK_ROW_LENGTH,
+  pattern GL_PACK_SKIP_IMAGES,
+  pattern GL_PACK_SKIP_PIXELS,
+  pattern GL_PACK_SKIP_ROWS,
+  pattern GL_PACK_SWAP_BYTES,
+  pattern GL_PASS_THROUGH_TOKEN,
+  pattern GL_PERSPECTIVE_CORRECTION_HINT,
+  pattern GL_PIXEL_MAP_A_TO_A,
+  pattern GL_PIXEL_MAP_A_TO_A_SIZE,
+  pattern GL_PIXEL_MAP_B_TO_B,
+  pattern GL_PIXEL_MAP_B_TO_B_SIZE,
+  pattern GL_PIXEL_MAP_G_TO_G,
+  pattern GL_PIXEL_MAP_G_TO_G_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_A,
+  pattern GL_PIXEL_MAP_I_TO_A_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_B,
+  pattern GL_PIXEL_MAP_I_TO_B_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_G,
+  pattern GL_PIXEL_MAP_I_TO_G_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_I,
+  pattern GL_PIXEL_MAP_I_TO_I_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_R,
+  pattern GL_PIXEL_MAP_I_TO_R_SIZE,
+  pattern GL_PIXEL_MAP_R_TO_R,
+  pattern GL_PIXEL_MAP_R_TO_R_SIZE,
+  pattern GL_PIXEL_MAP_S_TO_S,
+  pattern GL_PIXEL_MAP_S_TO_S_SIZE,
+  pattern GL_PIXEL_MODE_BIT,
+  pattern GL_POINT,
+  pattern GL_POINTS,
+  pattern GL_POINT_BIT,
+  pattern GL_POINT_SIZE,
+  pattern GL_POINT_SIZE_GRANULARITY,
+  pattern GL_POINT_SIZE_RANGE,
+  pattern GL_POINT_SMOOTH,
+  pattern GL_POINT_SMOOTH_HINT,
+  pattern GL_POINT_TOKEN,
+  pattern GL_POLYGON,
+  pattern GL_POLYGON_BIT,
+  pattern GL_POLYGON_MODE,
+  pattern GL_POLYGON_OFFSET_FACTOR,
+  pattern GL_POLYGON_OFFSET_FILL,
+  pattern GL_POLYGON_OFFSET_LINE,
+  pattern GL_POLYGON_OFFSET_POINT,
+  pattern GL_POLYGON_OFFSET_UNITS,
+  pattern GL_POLYGON_SMOOTH,
+  pattern GL_POLYGON_SMOOTH_HINT,
+  pattern GL_POLYGON_STIPPLE,
+  pattern GL_POLYGON_STIPPLE_BIT,
+  pattern GL_POLYGON_TOKEN,
+  pattern GL_POSITION,
+  pattern GL_PREVIOUS,
+  pattern GL_PRIMARY_COLOR,
+  pattern GL_PROJECTION,
+  pattern GL_PROJECTION_MATRIX,
+  pattern GL_PROJECTION_STACK_DEPTH,
+  pattern GL_PROXY_TEXTURE_1D,
+  pattern GL_PROXY_TEXTURE_2D,
+  pattern GL_PROXY_TEXTURE_3D,
+  pattern GL_PROXY_TEXTURE_CUBE_MAP,
+  pattern GL_Q,
+  pattern GL_QUADRATIC_ATTENUATION,
+  pattern GL_QUADS,
+  pattern GL_QUAD_STRIP,
+  pattern GL_R,
+  pattern GL_R3_G3_B2,
+  pattern GL_READ_BUFFER,
+  pattern GL_RED,
+  pattern GL_RED_BIAS,
+  pattern GL_RED_BITS,
+  pattern GL_RED_SCALE,
+  pattern GL_REFLECTION_MAP,
+  pattern GL_RENDER,
+  pattern GL_RENDERER,
+  pattern GL_RENDER_MODE,
+  pattern GL_REPEAT,
+  pattern GL_REPLACE,
+  pattern GL_RESCALE_NORMAL,
+  pattern GL_RETURN,
+  pattern GL_RGB,
+  pattern GL_RGB10,
+  pattern GL_RGB10_A2,
+  pattern GL_RGB12,
+  pattern GL_RGB16,
+  pattern GL_RGB4,
+  pattern GL_RGB5,
+  pattern GL_RGB5_A1,
+  pattern GL_RGB8,
+  pattern GL_RGBA,
+  pattern GL_RGBA12,
+  pattern GL_RGBA16,
+  pattern GL_RGBA2,
+  pattern GL_RGBA4,
+  pattern GL_RGBA8,
+  pattern GL_RGBA_MODE,
+  pattern GL_RGB_SCALE,
+  pattern GL_RIGHT,
+  pattern GL_S,
+  pattern GL_SAMPLES,
+  pattern GL_SAMPLE_ALPHA_TO_COVERAGE,
+  pattern GL_SAMPLE_ALPHA_TO_ONE,
+  pattern GL_SAMPLE_BUFFERS,
+  pattern GL_SAMPLE_COVERAGE,
+  pattern GL_SAMPLE_COVERAGE_INVERT,
+  pattern GL_SAMPLE_COVERAGE_VALUE,
+  pattern GL_SCISSOR_BIT,
+  pattern GL_SCISSOR_BOX,
+  pattern GL_SCISSOR_TEST,
+  pattern GL_SELECT,
+  pattern GL_SELECTION_BUFFER_POINTER,
+  pattern GL_SELECTION_BUFFER_SIZE,
+  pattern GL_SEPARATE_SPECULAR_COLOR,
+  pattern GL_SET,
+  pattern GL_SHADE_MODEL,
+  pattern GL_SHININESS,
+  pattern GL_SHORT,
+  pattern GL_SINGLE_COLOR,
+  pattern GL_SMOOTH,
+  pattern GL_SMOOTH_LINE_WIDTH_GRANULARITY,
+  pattern GL_SMOOTH_LINE_WIDTH_RANGE,
+  pattern GL_SMOOTH_POINT_SIZE_GRANULARITY,
+  pattern GL_SMOOTH_POINT_SIZE_RANGE,
+  pattern GL_SOURCE0_ALPHA,
+  pattern GL_SOURCE0_RGB,
+  pattern GL_SOURCE1_ALPHA,
+  pattern GL_SOURCE1_RGB,
+  pattern GL_SOURCE2_ALPHA,
+  pattern GL_SOURCE2_RGB,
+  pattern GL_SPECULAR,
+  pattern GL_SPHERE_MAP,
+  pattern GL_SPOT_CUTOFF,
+  pattern GL_SPOT_DIRECTION,
+  pattern GL_SPOT_EXPONENT,
+  pattern GL_SRC_ALPHA,
+  pattern GL_SRC_ALPHA_SATURATE,
+  pattern GL_SRC_COLOR,
+  pattern GL_STACK_OVERFLOW,
+  pattern GL_STACK_UNDERFLOW,
+  pattern GL_STENCIL,
+  pattern GL_STENCIL_BITS,
+  pattern GL_STENCIL_BUFFER_BIT,
+  pattern GL_STENCIL_CLEAR_VALUE,
+  pattern GL_STENCIL_FAIL,
+  pattern GL_STENCIL_FUNC,
+  pattern GL_STENCIL_INDEX,
+  pattern GL_STENCIL_PASS_DEPTH_FAIL,
+  pattern GL_STENCIL_PASS_DEPTH_PASS,
+  pattern GL_STENCIL_REF,
+  pattern GL_STENCIL_TEST,
+  pattern GL_STENCIL_VALUE_MASK,
+  pattern GL_STENCIL_WRITEMASK,
+  pattern GL_STEREO,
+  pattern GL_SUBPIXEL_BITS,
+  pattern GL_SUBTRACT,
+  pattern GL_T,
+  pattern GL_T2F_C3F_V3F,
+  pattern GL_T2F_C4F_N3F_V3F,
+  pattern GL_T2F_C4UB_V3F,
+  pattern GL_T2F_N3F_V3F,
+  pattern GL_T2F_V3F,
+  pattern GL_T4F_C4F_N3F_V4F,
+  pattern GL_T4F_V4F,
+  pattern GL_TEXTURE,
+  pattern GL_TEXTURE0,
+  pattern GL_TEXTURE1,
+  pattern GL_TEXTURE10,
+  pattern GL_TEXTURE11,
+  pattern GL_TEXTURE12,
+  pattern GL_TEXTURE13,
+  pattern GL_TEXTURE14,
+  pattern GL_TEXTURE15,
+  pattern GL_TEXTURE16,
+  pattern GL_TEXTURE17,
+  pattern GL_TEXTURE18,
+  pattern GL_TEXTURE19,
+  pattern GL_TEXTURE2,
+  pattern GL_TEXTURE20,
+  pattern GL_TEXTURE21,
+  pattern GL_TEXTURE22,
+  pattern GL_TEXTURE23,
+  pattern GL_TEXTURE24,
+  pattern GL_TEXTURE25,
+  pattern GL_TEXTURE26,
+  pattern GL_TEXTURE27,
+  pattern GL_TEXTURE28,
+  pattern GL_TEXTURE29,
+  pattern GL_TEXTURE3,
+  pattern GL_TEXTURE30,
+  pattern GL_TEXTURE31,
+  pattern GL_TEXTURE4,
+  pattern GL_TEXTURE5,
+  pattern GL_TEXTURE6,
+  pattern GL_TEXTURE7,
+  pattern GL_TEXTURE8,
+  pattern GL_TEXTURE9,
+  pattern GL_TEXTURE_1D,
+  pattern GL_TEXTURE_2D,
+  pattern GL_TEXTURE_3D,
+  pattern GL_TEXTURE_ALPHA_SIZE,
+  pattern GL_TEXTURE_BASE_LEVEL,
+  pattern GL_TEXTURE_BINDING_1D,
+  pattern GL_TEXTURE_BINDING_2D,
+  pattern GL_TEXTURE_BINDING_3D,
+  pattern GL_TEXTURE_BINDING_CUBE_MAP,
+  pattern GL_TEXTURE_BIT,
+  pattern GL_TEXTURE_BLUE_SIZE,
+  pattern GL_TEXTURE_BORDER,
+  pattern GL_TEXTURE_BORDER_COLOR,
+  pattern GL_TEXTURE_COMPONENTS,
+  pattern GL_TEXTURE_COMPRESSED,
+  pattern GL_TEXTURE_COMPRESSED_IMAGE_SIZE,
+  pattern GL_TEXTURE_COMPRESSION_HINT,
+  pattern GL_TEXTURE_COORD_ARRAY,
+  pattern GL_TEXTURE_COORD_ARRAY_POINTER,
+  pattern GL_TEXTURE_COORD_ARRAY_SIZE,
+  pattern GL_TEXTURE_COORD_ARRAY_STRIDE,
+  pattern GL_TEXTURE_COORD_ARRAY_TYPE,
+  pattern GL_TEXTURE_CUBE_MAP,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z,
+  pattern GL_TEXTURE_DEPTH,
+  pattern GL_TEXTURE_ENV,
+  pattern GL_TEXTURE_ENV_COLOR,
+  pattern GL_TEXTURE_ENV_MODE,
+  pattern GL_TEXTURE_GEN_MODE,
+  pattern GL_TEXTURE_GEN_Q,
+  pattern GL_TEXTURE_GEN_R,
+  pattern GL_TEXTURE_GEN_S,
+  pattern GL_TEXTURE_GEN_T,
+  pattern GL_TEXTURE_GREEN_SIZE,
+  pattern GL_TEXTURE_HEIGHT,
+  pattern GL_TEXTURE_INTENSITY_SIZE,
+  pattern GL_TEXTURE_INTERNAL_FORMAT,
+  pattern GL_TEXTURE_LUMINANCE_SIZE,
+  pattern GL_TEXTURE_MAG_FILTER,
+  pattern GL_TEXTURE_MATRIX,
+  pattern GL_TEXTURE_MAX_LEVEL,
+  pattern GL_TEXTURE_MAX_LOD,
+  pattern GL_TEXTURE_MIN_FILTER,
+  pattern GL_TEXTURE_MIN_LOD,
+  pattern GL_TEXTURE_PRIORITY,
+  pattern GL_TEXTURE_RED_SIZE,
+  pattern GL_TEXTURE_RESIDENT,
+  pattern GL_TEXTURE_STACK_DEPTH,
+  pattern GL_TEXTURE_WIDTH,
+  pattern GL_TEXTURE_WRAP_R,
+  pattern GL_TEXTURE_WRAP_S,
+  pattern GL_TEXTURE_WRAP_T,
+  pattern GL_TRANSFORM_BIT,
+  pattern GL_TRANSPOSE_COLOR_MATRIX,
+  pattern GL_TRANSPOSE_MODELVIEW_MATRIX,
+  pattern GL_TRANSPOSE_PROJECTION_MATRIX,
+  pattern GL_TRANSPOSE_TEXTURE_MATRIX,
+  pattern GL_TRIANGLES,
+  pattern GL_TRIANGLE_FAN,
+  pattern GL_TRIANGLE_STRIP,
+  pattern GL_TRUE,
+  pattern GL_UNPACK_ALIGNMENT,
+  pattern GL_UNPACK_IMAGE_HEIGHT,
+  pattern GL_UNPACK_LSB_FIRST,
+  pattern GL_UNPACK_ROW_LENGTH,
+  pattern GL_UNPACK_SKIP_IMAGES,
+  pattern GL_UNPACK_SKIP_PIXELS,
+  pattern GL_UNPACK_SKIP_ROWS,
+  pattern GL_UNPACK_SWAP_BYTES,
+  pattern GL_UNSIGNED_BYTE,
+  pattern GL_UNSIGNED_BYTE_2_3_3_REV,
+  pattern GL_UNSIGNED_BYTE_3_3_2,
+  pattern GL_UNSIGNED_INT,
+  pattern GL_UNSIGNED_INT_10_10_10_2,
+  pattern GL_UNSIGNED_INT_2_10_10_10_REV,
+  pattern GL_UNSIGNED_INT_8_8_8_8,
+  pattern GL_UNSIGNED_INT_8_8_8_8_REV,
+  pattern GL_UNSIGNED_SHORT,
+  pattern GL_UNSIGNED_SHORT_1_5_5_5_REV,
+  pattern GL_UNSIGNED_SHORT_4_4_4_4,
+  pattern GL_UNSIGNED_SHORT_4_4_4_4_REV,
+  pattern GL_UNSIGNED_SHORT_5_5_5_1,
+  pattern GL_UNSIGNED_SHORT_5_6_5,
+  pattern GL_UNSIGNED_SHORT_5_6_5_REV,
+  pattern GL_V2F,
+  pattern GL_V3F,
+  pattern GL_VENDOR,
+  pattern GL_VERSION,
+  pattern GL_VERTEX_ARRAY,
+  pattern GL_VERTEX_ARRAY_POINTER,
+  pattern GL_VERTEX_ARRAY_SIZE,
+  pattern GL_VERTEX_ARRAY_STRIDE,
+  pattern GL_VERTEX_ARRAY_TYPE,
+  pattern GL_VIEWPORT,
+  pattern GL_VIEWPORT_BIT,
+  pattern GL_XOR,
+  pattern GL_ZERO,
+  pattern GL_ZOOM_X,
+  pattern GL_ZOOM_Y,
+  -- * Functions
+  glAccum,
+  glActiveTexture,
+  glAlphaFunc,
+  glAreTexturesResident,
+  glArrayElement,
+  glBegin,
+  glBindTexture,
+  glBitmap,
+  glBlendFunc,
+  glCallList,
+  glCallLists,
+  glClear,
+  glClearAccum,
+  glClearColor,
+  glClearDepth,
+  glClearIndex,
+  glClearStencil,
+  glClientActiveTexture,
+  glClipPlane,
+  glColor3b,
+  glColor3bv,
+  glColor3d,
+  glColor3dv,
+  glColor3f,
+  glColor3fv,
+  glColor3i,
+  glColor3iv,
+  glColor3s,
+  glColor3sv,
+  glColor3ub,
+  glColor3ubv,
+  glColor3ui,
+  glColor3uiv,
+  glColor3us,
+  glColor3usv,
+  glColor4b,
+  glColor4bv,
+  glColor4d,
+  glColor4dv,
+  glColor4f,
+  glColor4fv,
+  glColor4i,
+  glColor4iv,
+  glColor4s,
+  glColor4sv,
+  glColor4ub,
+  glColor4ubv,
+  glColor4ui,
+  glColor4uiv,
+  glColor4us,
+  glColor4usv,
+  glColorMask,
+  glColorMaterial,
+  glColorPointer,
+  glCompressedTexImage1D,
+  glCompressedTexImage2D,
+  glCompressedTexImage3D,
+  glCompressedTexSubImage1D,
+  glCompressedTexSubImage2D,
+  glCompressedTexSubImage3D,
+  glCopyPixels,
+  glCopyTexImage1D,
+  glCopyTexImage2D,
+  glCopyTexSubImage1D,
+  glCopyTexSubImage2D,
+  glCopyTexSubImage3D,
+  glCullFace,
+  glDeleteLists,
+  glDeleteTextures,
+  glDepthFunc,
+  glDepthMask,
+  glDepthRange,
+  glDisable,
+  glDisableClientState,
+  glDrawArrays,
+  glDrawBuffer,
+  glDrawElements,
+  glDrawPixels,
+  glDrawRangeElements,
+  glEdgeFlag,
+  glEdgeFlagPointer,
+  glEdgeFlagv,
+  glEnable,
+  glEnableClientState,
+  glEnd,
+  glEndList,
+  glEvalCoord1d,
+  glEvalCoord1dv,
+  glEvalCoord1f,
+  glEvalCoord1fv,
+  glEvalCoord2d,
+  glEvalCoord2dv,
+  glEvalCoord2f,
+  glEvalCoord2fv,
+  glEvalMesh1,
+  glEvalMesh2,
+  glEvalPoint1,
+  glEvalPoint2,
+  glFeedbackBuffer,
+  glFinish,
+  glFlush,
+  glFogf,
+  glFogfv,
+  glFogi,
+  glFogiv,
+  glFrontFace,
+  glFrustum,
+  glGenLists,
+  glGenTextures,
+  glGetBooleanv,
+  glGetClipPlane,
+  glGetCompressedTexImage,
+  glGetDoublev,
+  glGetError,
+  glGetFloatv,
+  glGetIntegerv,
+  glGetLightfv,
+  glGetLightiv,
+  glGetMapdv,
+  glGetMapfv,
+  glGetMapiv,
+  glGetMaterialfv,
+  glGetMaterialiv,
+  glGetPixelMapfv,
+  glGetPixelMapuiv,
+  glGetPixelMapusv,
+  glGetPointerv,
+  glGetPolygonStipple,
+  glGetString,
+  glGetTexEnvfv,
+  glGetTexEnviv,
+  glGetTexGendv,
+  glGetTexGenfv,
+  glGetTexGeniv,
+  glGetTexImage,
+  glGetTexLevelParameterfv,
+  glGetTexLevelParameteriv,
+  glGetTexParameterfv,
+  glGetTexParameteriv,
+  glHint,
+  glIndexMask,
+  glIndexPointer,
+  glIndexd,
+  glIndexdv,
+  glIndexf,
+  glIndexfv,
+  glIndexi,
+  glIndexiv,
+  glIndexs,
+  glIndexsv,
+  glIndexub,
+  glIndexubv,
+  glInitNames,
+  glInterleavedArrays,
+  glIsEnabled,
+  glIsList,
+  glIsTexture,
+  glLightModelf,
+  glLightModelfv,
+  glLightModeli,
+  glLightModeliv,
+  glLightf,
+  glLightfv,
+  glLighti,
+  glLightiv,
+  glLineStipple,
+  glLineWidth,
+  glListBase,
+  glLoadIdentity,
+  glLoadMatrixd,
+  glLoadMatrixf,
+  glLoadName,
+  glLoadTransposeMatrixd,
+  glLoadTransposeMatrixf,
+  glLogicOp,
+  glMap1d,
+  glMap1f,
+  glMap2d,
+  glMap2f,
+  glMapGrid1d,
+  glMapGrid1f,
+  glMapGrid2d,
+  glMapGrid2f,
+  glMaterialf,
+  glMaterialfv,
+  glMateriali,
+  glMaterialiv,
+  glMatrixMode,
+  glMultMatrixd,
+  glMultMatrixf,
+  glMultTransposeMatrixd,
+  glMultTransposeMatrixf,
+  glMultiTexCoord1d,
+  glMultiTexCoord1dv,
+  glMultiTexCoord1f,
+  glMultiTexCoord1fv,
+  glMultiTexCoord1i,
+  glMultiTexCoord1iv,
+  glMultiTexCoord1s,
+  glMultiTexCoord1sv,
+  glMultiTexCoord2d,
+  glMultiTexCoord2dv,
+  glMultiTexCoord2f,
+  glMultiTexCoord2fv,
+  glMultiTexCoord2i,
+  glMultiTexCoord2iv,
+  glMultiTexCoord2s,
+  glMultiTexCoord2sv,
+  glMultiTexCoord3d,
+  glMultiTexCoord3dv,
+  glMultiTexCoord3f,
+  glMultiTexCoord3fv,
+  glMultiTexCoord3i,
+  glMultiTexCoord3iv,
+  glMultiTexCoord3s,
+  glMultiTexCoord3sv,
+  glMultiTexCoord4d,
+  glMultiTexCoord4dv,
+  glMultiTexCoord4f,
+  glMultiTexCoord4fv,
+  glMultiTexCoord4i,
+  glMultiTexCoord4iv,
+  glMultiTexCoord4s,
+  glMultiTexCoord4sv,
+  glNewList,
+  glNormal3b,
+  glNormal3bv,
+  glNormal3d,
+  glNormal3dv,
+  glNormal3f,
+  glNormal3fv,
+  glNormal3i,
+  glNormal3iv,
+  glNormal3s,
+  glNormal3sv,
+  glNormalPointer,
+  glOrtho,
+  glPassThrough,
+  glPixelMapfv,
+  glPixelMapuiv,
+  glPixelMapusv,
+  glPixelStoref,
+  glPixelStorei,
+  glPixelTransferf,
+  glPixelTransferi,
+  glPixelZoom,
+  glPointSize,
+  glPolygonMode,
+  glPolygonOffset,
+  glPolygonStipple,
+  glPopAttrib,
+  glPopClientAttrib,
+  glPopMatrix,
+  glPopName,
+  glPrioritizeTextures,
+  glPushAttrib,
+  glPushClientAttrib,
+  glPushMatrix,
+  glPushName,
+  glRasterPos2d,
+  glRasterPos2dv,
+  glRasterPos2f,
+  glRasterPos2fv,
+  glRasterPos2i,
+  glRasterPos2iv,
+  glRasterPos2s,
+  glRasterPos2sv,
+  glRasterPos3d,
+  glRasterPos3dv,
+  glRasterPos3f,
+  glRasterPos3fv,
+  glRasterPos3i,
+  glRasterPos3iv,
+  glRasterPos3s,
+  glRasterPos3sv,
+  glRasterPos4d,
+  glRasterPos4dv,
+  glRasterPos4f,
+  glRasterPos4fv,
+  glRasterPos4i,
+  glRasterPos4iv,
+  glRasterPos4s,
+  glRasterPos4sv,
+  glReadBuffer,
+  glReadPixels,
+  glRectd,
+  glRectdv,
+  glRectf,
+  glRectfv,
+  glRecti,
+  glRectiv,
+  glRects,
+  glRectsv,
+  glRenderMode,
+  glRotated,
+  glRotatef,
+  glSampleCoverage,
+  glScaled,
+  glScalef,
+  glScissor,
+  glSelectBuffer,
+  glShadeModel,
+  glStencilFunc,
+  glStencilMask,
+  glStencilOp,
+  glTexCoord1d,
+  glTexCoord1dv,
+  glTexCoord1f,
+  glTexCoord1fv,
+  glTexCoord1i,
+  glTexCoord1iv,
+  glTexCoord1s,
+  glTexCoord1sv,
+  glTexCoord2d,
+  glTexCoord2dv,
+  glTexCoord2f,
+  glTexCoord2fv,
+  glTexCoord2i,
+  glTexCoord2iv,
+  glTexCoord2s,
+  glTexCoord2sv,
+  glTexCoord3d,
+  glTexCoord3dv,
+  glTexCoord3f,
+  glTexCoord3fv,
+  glTexCoord3i,
+  glTexCoord3iv,
+  glTexCoord3s,
+  glTexCoord3sv,
+  glTexCoord4d,
+  glTexCoord4dv,
+  glTexCoord4f,
+  glTexCoord4fv,
+  glTexCoord4i,
+  glTexCoord4iv,
+  glTexCoord4s,
+  glTexCoord4sv,
+  glTexCoordPointer,
+  glTexEnvf,
+  glTexEnvfv,
+  glTexEnvi,
+  glTexEnviv,
+  glTexGend,
+  glTexGendv,
+  glTexGenf,
+  glTexGenfv,
+  glTexGeni,
+  glTexGeniv,
+  glTexImage1D,
+  glTexImage2D,
+  glTexImage3D,
+  glTexParameterf,
+  glTexParameterfv,
+  glTexParameteri,
+  glTexParameteriv,
+  glTexSubImage1D,
+  glTexSubImage2D,
+  glTexSubImage3D,
+  glTranslated,
+  glTranslatef,
+  glVertex2d,
+  glVertex2dv,
+  glVertex2f,
+  glVertex2fv,
+  glVertex2i,
+  glVertex2iv,
+  glVertex2s,
+  glVertex2sv,
+  glVertex3d,
+  glVertex3dv,
+  glVertex3f,
+  glVertex3fv,
+  glVertex3i,
+  glVertex3iv,
+  glVertex3s,
+  glVertex3sv,
+  glVertex4d,
+  glVertex4dv,
+  glVertex4f,
+  glVertex4fv,
+  glVertex4i,
+  glVertex4iv,
+  glVertex4s,
+  glVertex4sv,
+  glVertexPointer,
+  glViewport
+) where
+
+import Graphics.GL.Types
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/Version14.hs b/src/Graphics/GL/Version14.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Version14.hs
@@ -0,0 +1,1185 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Version14
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Version14 (
+  -- * Types
+  GLbitfield,
+  GLboolean,
+  GLbyte,
+  GLclampd,
+  GLclampf,
+  GLdouble,
+  GLenum,
+  GLfloat,
+  GLint,
+  GLshort,
+  GLsizei,
+  GLubyte,
+  GLuint,
+  GLushort,
+  GLvoid,
+  -- * Enums
+  pattern GL_2D,
+  pattern GL_2_BYTES,
+  pattern GL_3D,
+  pattern GL_3D_COLOR,
+  pattern GL_3D_COLOR_TEXTURE,
+  pattern GL_3_BYTES,
+  pattern GL_4D_COLOR_TEXTURE,
+  pattern GL_4_BYTES,
+  pattern GL_ACCUM,
+  pattern GL_ACCUM_ALPHA_BITS,
+  pattern GL_ACCUM_BLUE_BITS,
+  pattern GL_ACCUM_BUFFER_BIT,
+  pattern GL_ACCUM_CLEAR_VALUE,
+  pattern GL_ACCUM_GREEN_BITS,
+  pattern GL_ACCUM_RED_BITS,
+  pattern GL_ACTIVE_TEXTURE,
+  pattern GL_ADD,
+  pattern GL_ADD_SIGNED,
+  pattern GL_ALIASED_LINE_WIDTH_RANGE,
+  pattern GL_ALIASED_POINT_SIZE_RANGE,
+  pattern GL_ALL_ATTRIB_BITS,
+  pattern GL_ALPHA,
+  pattern GL_ALPHA12,
+  pattern GL_ALPHA16,
+  pattern GL_ALPHA4,
+  pattern GL_ALPHA8,
+  pattern GL_ALPHA_BIAS,
+  pattern GL_ALPHA_BITS,
+  pattern GL_ALPHA_SCALE,
+  pattern GL_ALPHA_TEST,
+  pattern GL_ALPHA_TEST_FUNC,
+  pattern GL_ALPHA_TEST_REF,
+  pattern GL_ALWAYS,
+  pattern GL_AMBIENT,
+  pattern GL_AMBIENT_AND_DIFFUSE,
+  pattern GL_AND,
+  pattern GL_AND_INVERTED,
+  pattern GL_AND_REVERSE,
+  pattern GL_ATTRIB_STACK_DEPTH,
+  pattern GL_AUTO_NORMAL,
+  pattern GL_AUX0,
+  pattern GL_AUX1,
+  pattern GL_AUX2,
+  pattern GL_AUX3,
+  pattern GL_AUX_BUFFERS,
+  pattern GL_BACK,
+  pattern GL_BACK_LEFT,
+  pattern GL_BACK_RIGHT,
+  pattern GL_BGR,
+  pattern GL_BGRA,
+  pattern GL_BITMAP,
+  pattern GL_BITMAP_TOKEN,
+  pattern GL_BLEND,
+  pattern GL_BLEND_COLOR,
+  pattern GL_BLEND_DST,
+  pattern GL_BLEND_DST_ALPHA,
+  pattern GL_BLEND_DST_RGB,
+  pattern GL_BLEND_EQUATION,
+  pattern GL_BLEND_SRC,
+  pattern GL_BLEND_SRC_ALPHA,
+  pattern GL_BLEND_SRC_RGB,
+  pattern GL_BLUE,
+  pattern GL_BLUE_BIAS,
+  pattern GL_BLUE_BITS,
+  pattern GL_BLUE_SCALE,
+  pattern GL_BYTE,
+  pattern GL_C3F_V3F,
+  pattern GL_C4F_N3F_V3F,
+  pattern GL_C4UB_V2F,
+  pattern GL_C4UB_V3F,
+  pattern GL_CCW,
+  pattern GL_CLAMP,
+  pattern GL_CLAMP_TO_BORDER,
+  pattern GL_CLAMP_TO_EDGE,
+  pattern GL_CLEAR,
+  pattern GL_CLIENT_ACTIVE_TEXTURE,
+  pattern GL_CLIENT_ALL_ATTRIB_BITS,
+  pattern GL_CLIENT_ATTRIB_STACK_DEPTH,
+  pattern GL_CLIENT_PIXEL_STORE_BIT,
+  pattern GL_CLIENT_VERTEX_ARRAY_BIT,
+  pattern GL_CLIP_PLANE0,
+  pattern GL_CLIP_PLANE1,
+  pattern GL_CLIP_PLANE2,
+  pattern GL_CLIP_PLANE3,
+  pattern GL_CLIP_PLANE4,
+  pattern GL_CLIP_PLANE5,
+  pattern GL_COEFF,
+  pattern GL_COLOR,
+  pattern GL_COLOR_ARRAY,
+  pattern GL_COLOR_ARRAY_POINTER,
+  pattern GL_COLOR_ARRAY_SIZE,
+  pattern GL_COLOR_ARRAY_STRIDE,
+  pattern GL_COLOR_ARRAY_TYPE,
+  pattern GL_COLOR_BUFFER_BIT,
+  pattern GL_COLOR_CLEAR_VALUE,
+  pattern GL_COLOR_INDEX,
+  pattern GL_COLOR_INDEXES,
+  pattern GL_COLOR_LOGIC_OP,
+  pattern GL_COLOR_MATERIAL,
+  pattern GL_COLOR_MATERIAL_FACE,
+  pattern GL_COLOR_MATERIAL_PARAMETER,
+  pattern GL_COLOR_SUM,
+  pattern GL_COLOR_WRITEMASK,
+  pattern GL_COMBINE,
+  pattern GL_COMBINE_ALPHA,
+  pattern GL_COMBINE_RGB,
+  pattern GL_COMPARE_R_TO_TEXTURE,
+  pattern GL_COMPILE,
+  pattern GL_COMPILE_AND_EXECUTE,
+  pattern GL_COMPRESSED_ALPHA,
+  pattern GL_COMPRESSED_INTENSITY,
+  pattern GL_COMPRESSED_LUMINANCE,
+  pattern GL_COMPRESSED_LUMINANCE_ALPHA,
+  pattern GL_COMPRESSED_RGB,
+  pattern GL_COMPRESSED_RGBA,
+  pattern GL_COMPRESSED_TEXTURE_FORMATS,
+  pattern GL_CONSTANT,
+  pattern GL_CONSTANT_ALPHA,
+  pattern GL_CONSTANT_ATTENUATION,
+  pattern GL_CONSTANT_COLOR,
+  pattern GL_COPY,
+  pattern GL_COPY_INVERTED,
+  pattern GL_COPY_PIXEL_TOKEN,
+  pattern GL_CULL_FACE,
+  pattern GL_CULL_FACE_MODE,
+  pattern GL_CURRENT_BIT,
+  pattern GL_CURRENT_COLOR,
+  pattern GL_CURRENT_FOG_COORDINATE,
+  pattern GL_CURRENT_INDEX,
+  pattern GL_CURRENT_NORMAL,
+  pattern GL_CURRENT_RASTER_COLOR,
+  pattern GL_CURRENT_RASTER_DISTANCE,
+  pattern GL_CURRENT_RASTER_INDEX,
+  pattern GL_CURRENT_RASTER_POSITION,
+  pattern GL_CURRENT_RASTER_POSITION_VALID,
+  pattern GL_CURRENT_RASTER_TEXTURE_COORDS,
+  pattern GL_CURRENT_SECONDARY_COLOR,
+  pattern GL_CURRENT_TEXTURE_COORDS,
+  pattern GL_CW,
+  pattern GL_DECAL,
+  pattern GL_DECR,
+  pattern GL_DECR_WRAP,
+  pattern GL_DEPTH,
+  pattern GL_DEPTH_BIAS,
+  pattern GL_DEPTH_BITS,
+  pattern GL_DEPTH_BUFFER_BIT,
+  pattern GL_DEPTH_CLEAR_VALUE,
+  pattern GL_DEPTH_COMPONENT,
+  pattern GL_DEPTH_COMPONENT16,
+  pattern GL_DEPTH_COMPONENT24,
+  pattern GL_DEPTH_COMPONENT32,
+  pattern GL_DEPTH_FUNC,
+  pattern GL_DEPTH_RANGE,
+  pattern GL_DEPTH_SCALE,
+  pattern GL_DEPTH_TEST,
+  pattern GL_DEPTH_TEXTURE_MODE,
+  pattern GL_DEPTH_WRITEMASK,
+  pattern GL_DIFFUSE,
+  pattern GL_DITHER,
+  pattern GL_DOMAIN,
+  pattern GL_DONT_CARE,
+  pattern GL_DOT3_RGB,
+  pattern GL_DOT3_RGBA,
+  pattern GL_DOUBLE,
+  pattern GL_DOUBLEBUFFER,
+  pattern GL_DRAW_BUFFER,
+  pattern GL_DRAW_PIXEL_TOKEN,
+  pattern GL_DST_ALPHA,
+  pattern GL_DST_COLOR,
+  pattern GL_EDGE_FLAG,
+  pattern GL_EDGE_FLAG_ARRAY,
+  pattern GL_EDGE_FLAG_ARRAY_POINTER,
+  pattern GL_EDGE_FLAG_ARRAY_STRIDE,
+  pattern GL_EMISSION,
+  pattern GL_ENABLE_BIT,
+  pattern GL_EQUAL,
+  pattern GL_EQUIV,
+  pattern GL_EVAL_BIT,
+  pattern GL_EXP,
+  pattern GL_EXP2,
+  pattern GL_EXTENSIONS,
+  pattern GL_EYE_LINEAR,
+  pattern GL_EYE_PLANE,
+  pattern GL_FALSE,
+  pattern GL_FASTEST,
+  pattern GL_FEEDBACK,
+  pattern GL_FEEDBACK_BUFFER_POINTER,
+  pattern GL_FEEDBACK_BUFFER_SIZE,
+  pattern GL_FEEDBACK_BUFFER_TYPE,
+  pattern GL_FILL,
+  pattern GL_FLAT,
+  pattern GL_FLOAT,
+  pattern GL_FOG,
+  pattern GL_FOG_BIT,
+  pattern GL_FOG_COLOR,
+  pattern GL_FOG_COORDINATE,
+  pattern GL_FOG_COORDINATE_ARRAY,
+  pattern GL_FOG_COORDINATE_ARRAY_POINTER,
+  pattern GL_FOG_COORDINATE_ARRAY_STRIDE,
+  pattern GL_FOG_COORDINATE_ARRAY_TYPE,
+  pattern GL_FOG_COORDINATE_SOURCE,
+  pattern GL_FOG_DENSITY,
+  pattern GL_FOG_END,
+  pattern GL_FOG_HINT,
+  pattern GL_FOG_INDEX,
+  pattern GL_FOG_MODE,
+  pattern GL_FOG_START,
+  pattern GL_FRAGMENT_DEPTH,
+  pattern GL_FRONT,
+  pattern GL_FRONT_AND_BACK,
+  pattern GL_FRONT_FACE,
+  pattern GL_FRONT_LEFT,
+  pattern GL_FRONT_RIGHT,
+  pattern GL_FUNC_ADD,
+  pattern GL_FUNC_REVERSE_SUBTRACT,
+  pattern GL_FUNC_SUBTRACT,
+  pattern GL_GENERATE_MIPMAP,
+  pattern GL_GENERATE_MIPMAP_HINT,
+  pattern GL_GEQUAL,
+  pattern GL_GREATER,
+  pattern GL_GREEN,
+  pattern GL_GREEN_BIAS,
+  pattern GL_GREEN_BITS,
+  pattern GL_GREEN_SCALE,
+  pattern GL_HINT_BIT,
+  pattern GL_INCR,
+  pattern GL_INCR_WRAP,
+  pattern GL_INDEX_ARRAY,
+  pattern GL_INDEX_ARRAY_POINTER,
+  pattern GL_INDEX_ARRAY_STRIDE,
+  pattern GL_INDEX_ARRAY_TYPE,
+  pattern GL_INDEX_BITS,
+  pattern GL_INDEX_CLEAR_VALUE,
+  pattern GL_INDEX_LOGIC_OP,
+  pattern GL_INDEX_MODE,
+  pattern GL_INDEX_OFFSET,
+  pattern GL_INDEX_SHIFT,
+  pattern GL_INDEX_WRITEMASK,
+  pattern GL_INT,
+  pattern GL_INTENSITY,
+  pattern GL_INTENSITY12,
+  pattern GL_INTENSITY16,
+  pattern GL_INTENSITY4,
+  pattern GL_INTENSITY8,
+  pattern GL_INTERPOLATE,
+  pattern GL_INVALID_ENUM,
+  pattern GL_INVALID_OPERATION,
+  pattern GL_INVALID_VALUE,
+  pattern GL_INVERT,
+  pattern GL_KEEP,
+  pattern GL_LEFT,
+  pattern GL_LEQUAL,
+  pattern GL_LESS,
+  pattern GL_LIGHT0,
+  pattern GL_LIGHT1,
+  pattern GL_LIGHT2,
+  pattern GL_LIGHT3,
+  pattern GL_LIGHT4,
+  pattern GL_LIGHT5,
+  pattern GL_LIGHT6,
+  pattern GL_LIGHT7,
+  pattern GL_LIGHTING,
+  pattern GL_LIGHTING_BIT,
+  pattern GL_LIGHT_MODEL_AMBIENT,
+  pattern GL_LIGHT_MODEL_COLOR_CONTROL,
+  pattern GL_LIGHT_MODEL_LOCAL_VIEWER,
+  pattern GL_LIGHT_MODEL_TWO_SIDE,
+  pattern GL_LINE,
+  pattern GL_LINEAR,
+  pattern GL_LINEAR_ATTENUATION,
+  pattern GL_LINEAR_MIPMAP_LINEAR,
+  pattern GL_LINEAR_MIPMAP_NEAREST,
+  pattern GL_LINES,
+  pattern GL_LINE_BIT,
+  pattern GL_LINE_LOOP,
+  pattern GL_LINE_RESET_TOKEN,
+  pattern GL_LINE_SMOOTH,
+  pattern GL_LINE_SMOOTH_HINT,
+  pattern GL_LINE_STIPPLE,
+  pattern GL_LINE_STIPPLE_PATTERN,
+  pattern GL_LINE_STIPPLE_REPEAT,
+  pattern GL_LINE_STRIP,
+  pattern GL_LINE_TOKEN,
+  pattern GL_LINE_WIDTH,
+  pattern GL_LINE_WIDTH_GRANULARITY,
+  pattern GL_LINE_WIDTH_RANGE,
+  pattern GL_LIST_BASE,
+  pattern GL_LIST_BIT,
+  pattern GL_LIST_INDEX,
+  pattern GL_LIST_MODE,
+  pattern GL_LOAD,
+  pattern GL_LOGIC_OP,
+  pattern GL_LOGIC_OP_MODE,
+  pattern GL_LUMINANCE,
+  pattern GL_LUMINANCE12,
+  pattern GL_LUMINANCE12_ALPHA12,
+  pattern GL_LUMINANCE12_ALPHA4,
+  pattern GL_LUMINANCE16,
+  pattern GL_LUMINANCE16_ALPHA16,
+  pattern GL_LUMINANCE4,
+  pattern GL_LUMINANCE4_ALPHA4,
+  pattern GL_LUMINANCE6_ALPHA2,
+  pattern GL_LUMINANCE8,
+  pattern GL_LUMINANCE8_ALPHA8,
+  pattern GL_LUMINANCE_ALPHA,
+  pattern GL_MAP1_COLOR_4,
+  pattern GL_MAP1_GRID_DOMAIN,
+  pattern GL_MAP1_GRID_SEGMENTS,
+  pattern GL_MAP1_INDEX,
+  pattern GL_MAP1_NORMAL,
+  pattern GL_MAP1_TEXTURE_COORD_1,
+  pattern GL_MAP1_TEXTURE_COORD_2,
+  pattern GL_MAP1_TEXTURE_COORD_3,
+  pattern GL_MAP1_TEXTURE_COORD_4,
+  pattern GL_MAP1_VERTEX_3,
+  pattern GL_MAP1_VERTEX_4,
+  pattern GL_MAP2_COLOR_4,
+  pattern GL_MAP2_GRID_DOMAIN,
+  pattern GL_MAP2_GRID_SEGMENTS,
+  pattern GL_MAP2_INDEX,
+  pattern GL_MAP2_NORMAL,
+  pattern GL_MAP2_TEXTURE_COORD_1,
+  pattern GL_MAP2_TEXTURE_COORD_2,
+  pattern GL_MAP2_TEXTURE_COORD_3,
+  pattern GL_MAP2_TEXTURE_COORD_4,
+  pattern GL_MAP2_VERTEX_3,
+  pattern GL_MAP2_VERTEX_4,
+  pattern GL_MAP_COLOR,
+  pattern GL_MAP_STENCIL,
+  pattern GL_MATRIX_MODE,
+  pattern GL_MAX,
+  pattern GL_MAX_3D_TEXTURE_SIZE,
+  pattern GL_MAX_ATTRIB_STACK_DEPTH,
+  pattern GL_MAX_CLIENT_ATTRIB_STACK_DEPTH,
+  pattern GL_MAX_CLIP_PLANES,
+  pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE,
+  pattern GL_MAX_ELEMENTS_INDICES,
+  pattern GL_MAX_ELEMENTS_VERTICES,
+  pattern GL_MAX_EVAL_ORDER,
+  pattern GL_MAX_LIGHTS,
+  pattern GL_MAX_LIST_NESTING,
+  pattern GL_MAX_MODELVIEW_STACK_DEPTH,
+  pattern GL_MAX_NAME_STACK_DEPTH,
+  pattern GL_MAX_PIXEL_MAP_TABLE,
+  pattern GL_MAX_PROJECTION_STACK_DEPTH,
+  pattern GL_MAX_TEXTURE_LOD_BIAS,
+  pattern GL_MAX_TEXTURE_SIZE,
+  pattern GL_MAX_TEXTURE_STACK_DEPTH,
+  pattern GL_MAX_TEXTURE_UNITS,
+  pattern GL_MAX_VIEWPORT_DIMS,
+  pattern GL_MIN,
+  pattern GL_MIRRORED_REPEAT,
+  pattern GL_MODELVIEW,
+  pattern GL_MODELVIEW_MATRIX,
+  pattern GL_MODELVIEW_STACK_DEPTH,
+  pattern GL_MODULATE,
+  pattern GL_MULT,
+  pattern GL_MULTISAMPLE,
+  pattern GL_MULTISAMPLE_BIT,
+  pattern GL_N3F_V3F,
+  pattern GL_NAME_STACK_DEPTH,
+  pattern GL_NAND,
+  pattern GL_NEAREST,
+  pattern GL_NEAREST_MIPMAP_LINEAR,
+  pattern GL_NEAREST_MIPMAP_NEAREST,
+  pattern GL_NEVER,
+  pattern GL_NICEST,
+  pattern GL_NONE,
+  pattern GL_NOOP,
+  pattern GL_NOR,
+  pattern GL_NORMALIZE,
+  pattern GL_NORMAL_ARRAY,
+  pattern GL_NORMAL_ARRAY_POINTER,
+  pattern GL_NORMAL_ARRAY_STRIDE,
+  pattern GL_NORMAL_ARRAY_TYPE,
+  pattern GL_NORMAL_MAP,
+  pattern GL_NOTEQUAL,
+  pattern GL_NO_ERROR,
+  pattern GL_NUM_COMPRESSED_TEXTURE_FORMATS,
+  pattern GL_OBJECT_LINEAR,
+  pattern GL_OBJECT_PLANE,
+  pattern GL_ONE,
+  pattern GL_ONE_MINUS_CONSTANT_ALPHA,
+  pattern GL_ONE_MINUS_CONSTANT_COLOR,
+  pattern GL_ONE_MINUS_DST_ALPHA,
+  pattern GL_ONE_MINUS_DST_COLOR,
+  pattern GL_ONE_MINUS_SRC_ALPHA,
+  pattern GL_ONE_MINUS_SRC_COLOR,
+  pattern GL_OPERAND0_ALPHA,
+  pattern GL_OPERAND0_RGB,
+  pattern GL_OPERAND1_ALPHA,
+  pattern GL_OPERAND1_RGB,
+  pattern GL_OPERAND2_ALPHA,
+  pattern GL_OPERAND2_RGB,
+  pattern GL_OR,
+  pattern GL_ORDER,
+  pattern GL_OR_INVERTED,
+  pattern GL_OR_REVERSE,
+  pattern GL_OUT_OF_MEMORY,
+  pattern GL_PACK_ALIGNMENT,
+  pattern GL_PACK_IMAGE_HEIGHT,
+  pattern GL_PACK_LSB_FIRST,
+  pattern GL_PACK_ROW_LENGTH,
+  pattern GL_PACK_SKIP_IMAGES,
+  pattern GL_PACK_SKIP_PIXELS,
+  pattern GL_PACK_SKIP_ROWS,
+  pattern GL_PACK_SWAP_BYTES,
+  pattern GL_PASS_THROUGH_TOKEN,
+  pattern GL_PERSPECTIVE_CORRECTION_HINT,
+  pattern GL_PIXEL_MAP_A_TO_A,
+  pattern GL_PIXEL_MAP_A_TO_A_SIZE,
+  pattern GL_PIXEL_MAP_B_TO_B,
+  pattern GL_PIXEL_MAP_B_TO_B_SIZE,
+  pattern GL_PIXEL_MAP_G_TO_G,
+  pattern GL_PIXEL_MAP_G_TO_G_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_A,
+  pattern GL_PIXEL_MAP_I_TO_A_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_B,
+  pattern GL_PIXEL_MAP_I_TO_B_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_G,
+  pattern GL_PIXEL_MAP_I_TO_G_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_I,
+  pattern GL_PIXEL_MAP_I_TO_I_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_R,
+  pattern GL_PIXEL_MAP_I_TO_R_SIZE,
+  pattern GL_PIXEL_MAP_R_TO_R,
+  pattern GL_PIXEL_MAP_R_TO_R_SIZE,
+  pattern GL_PIXEL_MAP_S_TO_S,
+  pattern GL_PIXEL_MAP_S_TO_S_SIZE,
+  pattern GL_PIXEL_MODE_BIT,
+  pattern GL_POINT,
+  pattern GL_POINTS,
+  pattern GL_POINT_BIT,
+  pattern GL_POINT_DISTANCE_ATTENUATION,
+  pattern GL_POINT_FADE_THRESHOLD_SIZE,
+  pattern GL_POINT_SIZE,
+  pattern GL_POINT_SIZE_GRANULARITY,
+  pattern GL_POINT_SIZE_MAX,
+  pattern GL_POINT_SIZE_MIN,
+  pattern GL_POINT_SIZE_RANGE,
+  pattern GL_POINT_SMOOTH,
+  pattern GL_POINT_SMOOTH_HINT,
+  pattern GL_POINT_TOKEN,
+  pattern GL_POLYGON,
+  pattern GL_POLYGON_BIT,
+  pattern GL_POLYGON_MODE,
+  pattern GL_POLYGON_OFFSET_FACTOR,
+  pattern GL_POLYGON_OFFSET_FILL,
+  pattern GL_POLYGON_OFFSET_LINE,
+  pattern GL_POLYGON_OFFSET_POINT,
+  pattern GL_POLYGON_OFFSET_UNITS,
+  pattern GL_POLYGON_SMOOTH,
+  pattern GL_POLYGON_SMOOTH_HINT,
+  pattern GL_POLYGON_STIPPLE,
+  pattern GL_POLYGON_STIPPLE_BIT,
+  pattern GL_POLYGON_TOKEN,
+  pattern GL_POSITION,
+  pattern GL_PREVIOUS,
+  pattern GL_PRIMARY_COLOR,
+  pattern GL_PROJECTION,
+  pattern GL_PROJECTION_MATRIX,
+  pattern GL_PROJECTION_STACK_DEPTH,
+  pattern GL_PROXY_TEXTURE_1D,
+  pattern GL_PROXY_TEXTURE_2D,
+  pattern GL_PROXY_TEXTURE_3D,
+  pattern GL_PROXY_TEXTURE_CUBE_MAP,
+  pattern GL_Q,
+  pattern GL_QUADRATIC_ATTENUATION,
+  pattern GL_QUADS,
+  pattern GL_QUAD_STRIP,
+  pattern GL_R,
+  pattern GL_R3_G3_B2,
+  pattern GL_READ_BUFFER,
+  pattern GL_RED,
+  pattern GL_RED_BIAS,
+  pattern GL_RED_BITS,
+  pattern GL_RED_SCALE,
+  pattern GL_REFLECTION_MAP,
+  pattern GL_RENDER,
+  pattern GL_RENDERER,
+  pattern GL_RENDER_MODE,
+  pattern GL_REPEAT,
+  pattern GL_REPLACE,
+  pattern GL_RESCALE_NORMAL,
+  pattern GL_RETURN,
+  pattern GL_RGB,
+  pattern GL_RGB10,
+  pattern GL_RGB10_A2,
+  pattern GL_RGB12,
+  pattern GL_RGB16,
+  pattern GL_RGB4,
+  pattern GL_RGB5,
+  pattern GL_RGB5_A1,
+  pattern GL_RGB8,
+  pattern GL_RGBA,
+  pattern GL_RGBA12,
+  pattern GL_RGBA16,
+  pattern GL_RGBA2,
+  pattern GL_RGBA4,
+  pattern GL_RGBA8,
+  pattern GL_RGBA_MODE,
+  pattern GL_RGB_SCALE,
+  pattern GL_RIGHT,
+  pattern GL_S,
+  pattern GL_SAMPLES,
+  pattern GL_SAMPLE_ALPHA_TO_COVERAGE,
+  pattern GL_SAMPLE_ALPHA_TO_ONE,
+  pattern GL_SAMPLE_BUFFERS,
+  pattern GL_SAMPLE_COVERAGE,
+  pattern GL_SAMPLE_COVERAGE_INVERT,
+  pattern GL_SAMPLE_COVERAGE_VALUE,
+  pattern GL_SCISSOR_BIT,
+  pattern GL_SCISSOR_BOX,
+  pattern GL_SCISSOR_TEST,
+  pattern GL_SECONDARY_COLOR_ARRAY,
+  pattern GL_SECONDARY_COLOR_ARRAY_POINTER,
+  pattern GL_SECONDARY_COLOR_ARRAY_SIZE,
+  pattern GL_SECONDARY_COLOR_ARRAY_STRIDE,
+  pattern GL_SECONDARY_COLOR_ARRAY_TYPE,
+  pattern GL_SELECT,
+  pattern GL_SELECTION_BUFFER_POINTER,
+  pattern GL_SELECTION_BUFFER_SIZE,
+  pattern GL_SEPARATE_SPECULAR_COLOR,
+  pattern GL_SET,
+  pattern GL_SHADE_MODEL,
+  pattern GL_SHININESS,
+  pattern GL_SHORT,
+  pattern GL_SINGLE_COLOR,
+  pattern GL_SMOOTH,
+  pattern GL_SMOOTH_LINE_WIDTH_GRANULARITY,
+  pattern GL_SMOOTH_LINE_WIDTH_RANGE,
+  pattern GL_SMOOTH_POINT_SIZE_GRANULARITY,
+  pattern GL_SMOOTH_POINT_SIZE_RANGE,
+  pattern GL_SOURCE0_ALPHA,
+  pattern GL_SOURCE0_RGB,
+  pattern GL_SOURCE1_ALPHA,
+  pattern GL_SOURCE1_RGB,
+  pattern GL_SOURCE2_ALPHA,
+  pattern GL_SOURCE2_RGB,
+  pattern GL_SPECULAR,
+  pattern GL_SPHERE_MAP,
+  pattern GL_SPOT_CUTOFF,
+  pattern GL_SPOT_DIRECTION,
+  pattern GL_SPOT_EXPONENT,
+  pattern GL_SRC_ALPHA,
+  pattern GL_SRC_ALPHA_SATURATE,
+  pattern GL_SRC_COLOR,
+  pattern GL_STACK_OVERFLOW,
+  pattern GL_STACK_UNDERFLOW,
+  pattern GL_STENCIL,
+  pattern GL_STENCIL_BITS,
+  pattern GL_STENCIL_BUFFER_BIT,
+  pattern GL_STENCIL_CLEAR_VALUE,
+  pattern GL_STENCIL_FAIL,
+  pattern GL_STENCIL_FUNC,
+  pattern GL_STENCIL_INDEX,
+  pattern GL_STENCIL_PASS_DEPTH_FAIL,
+  pattern GL_STENCIL_PASS_DEPTH_PASS,
+  pattern GL_STENCIL_REF,
+  pattern GL_STENCIL_TEST,
+  pattern GL_STENCIL_VALUE_MASK,
+  pattern GL_STENCIL_WRITEMASK,
+  pattern GL_STEREO,
+  pattern GL_SUBPIXEL_BITS,
+  pattern GL_SUBTRACT,
+  pattern GL_T,
+  pattern GL_T2F_C3F_V3F,
+  pattern GL_T2F_C4F_N3F_V3F,
+  pattern GL_T2F_C4UB_V3F,
+  pattern GL_T2F_N3F_V3F,
+  pattern GL_T2F_V3F,
+  pattern GL_T4F_C4F_N3F_V4F,
+  pattern GL_T4F_V4F,
+  pattern GL_TEXTURE,
+  pattern GL_TEXTURE0,
+  pattern GL_TEXTURE1,
+  pattern GL_TEXTURE10,
+  pattern GL_TEXTURE11,
+  pattern GL_TEXTURE12,
+  pattern GL_TEXTURE13,
+  pattern GL_TEXTURE14,
+  pattern GL_TEXTURE15,
+  pattern GL_TEXTURE16,
+  pattern GL_TEXTURE17,
+  pattern GL_TEXTURE18,
+  pattern GL_TEXTURE19,
+  pattern GL_TEXTURE2,
+  pattern GL_TEXTURE20,
+  pattern GL_TEXTURE21,
+  pattern GL_TEXTURE22,
+  pattern GL_TEXTURE23,
+  pattern GL_TEXTURE24,
+  pattern GL_TEXTURE25,
+  pattern GL_TEXTURE26,
+  pattern GL_TEXTURE27,
+  pattern GL_TEXTURE28,
+  pattern GL_TEXTURE29,
+  pattern GL_TEXTURE3,
+  pattern GL_TEXTURE30,
+  pattern GL_TEXTURE31,
+  pattern GL_TEXTURE4,
+  pattern GL_TEXTURE5,
+  pattern GL_TEXTURE6,
+  pattern GL_TEXTURE7,
+  pattern GL_TEXTURE8,
+  pattern GL_TEXTURE9,
+  pattern GL_TEXTURE_1D,
+  pattern GL_TEXTURE_2D,
+  pattern GL_TEXTURE_3D,
+  pattern GL_TEXTURE_ALPHA_SIZE,
+  pattern GL_TEXTURE_BASE_LEVEL,
+  pattern GL_TEXTURE_BINDING_1D,
+  pattern GL_TEXTURE_BINDING_2D,
+  pattern GL_TEXTURE_BINDING_3D,
+  pattern GL_TEXTURE_BINDING_CUBE_MAP,
+  pattern GL_TEXTURE_BIT,
+  pattern GL_TEXTURE_BLUE_SIZE,
+  pattern GL_TEXTURE_BORDER,
+  pattern GL_TEXTURE_BORDER_COLOR,
+  pattern GL_TEXTURE_COMPARE_FUNC,
+  pattern GL_TEXTURE_COMPARE_MODE,
+  pattern GL_TEXTURE_COMPONENTS,
+  pattern GL_TEXTURE_COMPRESSED,
+  pattern GL_TEXTURE_COMPRESSED_IMAGE_SIZE,
+  pattern GL_TEXTURE_COMPRESSION_HINT,
+  pattern GL_TEXTURE_COORD_ARRAY,
+  pattern GL_TEXTURE_COORD_ARRAY_POINTER,
+  pattern GL_TEXTURE_COORD_ARRAY_SIZE,
+  pattern GL_TEXTURE_COORD_ARRAY_STRIDE,
+  pattern GL_TEXTURE_COORD_ARRAY_TYPE,
+  pattern GL_TEXTURE_CUBE_MAP,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z,
+  pattern GL_TEXTURE_DEPTH,
+  pattern GL_TEXTURE_DEPTH_SIZE,
+  pattern GL_TEXTURE_ENV,
+  pattern GL_TEXTURE_ENV_COLOR,
+  pattern GL_TEXTURE_ENV_MODE,
+  pattern GL_TEXTURE_FILTER_CONTROL,
+  pattern GL_TEXTURE_GEN_MODE,
+  pattern GL_TEXTURE_GEN_Q,
+  pattern GL_TEXTURE_GEN_R,
+  pattern GL_TEXTURE_GEN_S,
+  pattern GL_TEXTURE_GEN_T,
+  pattern GL_TEXTURE_GREEN_SIZE,
+  pattern GL_TEXTURE_HEIGHT,
+  pattern GL_TEXTURE_INTENSITY_SIZE,
+  pattern GL_TEXTURE_INTERNAL_FORMAT,
+  pattern GL_TEXTURE_LOD_BIAS,
+  pattern GL_TEXTURE_LUMINANCE_SIZE,
+  pattern GL_TEXTURE_MAG_FILTER,
+  pattern GL_TEXTURE_MATRIX,
+  pattern GL_TEXTURE_MAX_LEVEL,
+  pattern GL_TEXTURE_MAX_LOD,
+  pattern GL_TEXTURE_MIN_FILTER,
+  pattern GL_TEXTURE_MIN_LOD,
+  pattern GL_TEXTURE_PRIORITY,
+  pattern GL_TEXTURE_RED_SIZE,
+  pattern GL_TEXTURE_RESIDENT,
+  pattern GL_TEXTURE_STACK_DEPTH,
+  pattern GL_TEXTURE_WIDTH,
+  pattern GL_TEXTURE_WRAP_R,
+  pattern GL_TEXTURE_WRAP_S,
+  pattern GL_TEXTURE_WRAP_T,
+  pattern GL_TRANSFORM_BIT,
+  pattern GL_TRANSPOSE_COLOR_MATRIX,
+  pattern GL_TRANSPOSE_MODELVIEW_MATRIX,
+  pattern GL_TRANSPOSE_PROJECTION_MATRIX,
+  pattern GL_TRANSPOSE_TEXTURE_MATRIX,
+  pattern GL_TRIANGLES,
+  pattern GL_TRIANGLE_FAN,
+  pattern GL_TRIANGLE_STRIP,
+  pattern GL_TRUE,
+  pattern GL_UNPACK_ALIGNMENT,
+  pattern GL_UNPACK_IMAGE_HEIGHT,
+  pattern GL_UNPACK_LSB_FIRST,
+  pattern GL_UNPACK_ROW_LENGTH,
+  pattern GL_UNPACK_SKIP_IMAGES,
+  pattern GL_UNPACK_SKIP_PIXELS,
+  pattern GL_UNPACK_SKIP_ROWS,
+  pattern GL_UNPACK_SWAP_BYTES,
+  pattern GL_UNSIGNED_BYTE,
+  pattern GL_UNSIGNED_BYTE_2_3_3_REV,
+  pattern GL_UNSIGNED_BYTE_3_3_2,
+  pattern GL_UNSIGNED_INT,
+  pattern GL_UNSIGNED_INT_10_10_10_2,
+  pattern GL_UNSIGNED_INT_2_10_10_10_REV,
+  pattern GL_UNSIGNED_INT_8_8_8_8,
+  pattern GL_UNSIGNED_INT_8_8_8_8_REV,
+  pattern GL_UNSIGNED_SHORT,
+  pattern GL_UNSIGNED_SHORT_1_5_5_5_REV,
+  pattern GL_UNSIGNED_SHORT_4_4_4_4,
+  pattern GL_UNSIGNED_SHORT_4_4_4_4_REV,
+  pattern GL_UNSIGNED_SHORT_5_5_5_1,
+  pattern GL_UNSIGNED_SHORT_5_6_5,
+  pattern GL_UNSIGNED_SHORT_5_6_5_REV,
+  pattern GL_V2F,
+  pattern GL_V3F,
+  pattern GL_VENDOR,
+  pattern GL_VERSION,
+  pattern GL_VERTEX_ARRAY,
+  pattern GL_VERTEX_ARRAY_POINTER,
+  pattern GL_VERTEX_ARRAY_SIZE,
+  pattern GL_VERTEX_ARRAY_STRIDE,
+  pattern GL_VERTEX_ARRAY_TYPE,
+  pattern GL_VIEWPORT,
+  pattern GL_VIEWPORT_BIT,
+  pattern GL_XOR,
+  pattern GL_ZERO,
+  pattern GL_ZOOM_X,
+  pattern GL_ZOOM_Y,
+  -- * Functions
+  glAccum,
+  glActiveTexture,
+  glAlphaFunc,
+  glAreTexturesResident,
+  glArrayElement,
+  glBegin,
+  glBindTexture,
+  glBitmap,
+  glBlendColor,
+  glBlendEquation,
+  glBlendFunc,
+  glBlendFuncSeparate,
+  glCallList,
+  glCallLists,
+  glClear,
+  glClearAccum,
+  glClearColor,
+  glClearDepth,
+  glClearIndex,
+  glClearStencil,
+  glClientActiveTexture,
+  glClipPlane,
+  glColor3b,
+  glColor3bv,
+  glColor3d,
+  glColor3dv,
+  glColor3f,
+  glColor3fv,
+  glColor3i,
+  glColor3iv,
+  glColor3s,
+  glColor3sv,
+  glColor3ub,
+  glColor3ubv,
+  glColor3ui,
+  glColor3uiv,
+  glColor3us,
+  glColor3usv,
+  glColor4b,
+  glColor4bv,
+  glColor4d,
+  glColor4dv,
+  glColor4f,
+  glColor4fv,
+  glColor4i,
+  glColor4iv,
+  glColor4s,
+  glColor4sv,
+  glColor4ub,
+  glColor4ubv,
+  glColor4ui,
+  glColor4uiv,
+  glColor4us,
+  glColor4usv,
+  glColorMask,
+  glColorMaterial,
+  glColorPointer,
+  glCompressedTexImage1D,
+  glCompressedTexImage2D,
+  glCompressedTexImage3D,
+  glCompressedTexSubImage1D,
+  glCompressedTexSubImage2D,
+  glCompressedTexSubImage3D,
+  glCopyPixels,
+  glCopyTexImage1D,
+  glCopyTexImage2D,
+  glCopyTexSubImage1D,
+  glCopyTexSubImage2D,
+  glCopyTexSubImage3D,
+  glCullFace,
+  glDeleteLists,
+  glDeleteTextures,
+  glDepthFunc,
+  glDepthMask,
+  glDepthRange,
+  glDisable,
+  glDisableClientState,
+  glDrawArrays,
+  glDrawBuffer,
+  glDrawElements,
+  glDrawPixels,
+  glDrawRangeElements,
+  glEdgeFlag,
+  glEdgeFlagPointer,
+  glEdgeFlagv,
+  glEnable,
+  glEnableClientState,
+  glEnd,
+  glEndList,
+  glEvalCoord1d,
+  glEvalCoord1dv,
+  glEvalCoord1f,
+  glEvalCoord1fv,
+  glEvalCoord2d,
+  glEvalCoord2dv,
+  glEvalCoord2f,
+  glEvalCoord2fv,
+  glEvalMesh1,
+  glEvalMesh2,
+  glEvalPoint1,
+  glEvalPoint2,
+  glFeedbackBuffer,
+  glFinish,
+  glFlush,
+  glFogCoordPointer,
+  glFogCoordd,
+  glFogCoorddv,
+  glFogCoordf,
+  glFogCoordfv,
+  glFogf,
+  glFogfv,
+  glFogi,
+  glFogiv,
+  glFrontFace,
+  glFrustum,
+  glGenLists,
+  glGenTextures,
+  glGetBooleanv,
+  glGetClipPlane,
+  glGetCompressedTexImage,
+  glGetDoublev,
+  glGetError,
+  glGetFloatv,
+  glGetIntegerv,
+  glGetLightfv,
+  glGetLightiv,
+  glGetMapdv,
+  glGetMapfv,
+  glGetMapiv,
+  glGetMaterialfv,
+  glGetMaterialiv,
+  glGetPixelMapfv,
+  glGetPixelMapuiv,
+  glGetPixelMapusv,
+  glGetPointerv,
+  glGetPolygonStipple,
+  glGetString,
+  glGetTexEnvfv,
+  glGetTexEnviv,
+  glGetTexGendv,
+  glGetTexGenfv,
+  glGetTexGeniv,
+  glGetTexImage,
+  glGetTexLevelParameterfv,
+  glGetTexLevelParameteriv,
+  glGetTexParameterfv,
+  glGetTexParameteriv,
+  glHint,
+  glIndexMask,
+  glIndexPointer,
+  glIndexd,
+  glIndexdv,
+  glIndexf,
+  glIndexfv,
+  glIndexi,
+  glIndexiv,
+  glIndexs,
+  glIndexsv,
+  glIndexub,
+  glIndexubv,
+  glInitNames,
+  glInterleavedArrays,
+  glIsEnabled,
+  glIsList,
+  glIsTexture,
+  glLightModelf,
+  glLightModelfv,
+  glLightModeli,
+  glLightModeliv,
+  glLightf,
+  glLightfv,
+  glLighti,
+  glLightiv,
+  glLineStipple,
+  glLineWidth,
+  glListBase,
+  glLoadIdentity,
+  glLoadMatrixd,
+  glLoadMatrixf,
+  glLoadName,
+  glLoadTransposeMatrixd,
+  glLoadTransposeMatrixf,
+  glLogicOp,
+  glMap1d,
+  glMap1f,
+  glMap2d,
+  glMap2f,
+  glMapGrid1d,
+  glMapGrid1f,
+  glMapGrid2d,
+  glMapGrid2f,
+  glMaterialf,
+  glMaterialfv,
+  glMateriali,
+  glMaterialiv,
+  glMatrixMode,
+  glMultMatrixd,
+  glMultMatrixf,
+  glMultTransposeMatrixd,
+  glMultTransposeMatrixf,
+  glMultiDrawArrays,
+  glMultiDrawElements,
+  glMultiTexCoord1d,
+  glMultiTexCoord1dv,
+  glMultiTexCoord1f,
+  glMultiTexCoord1fv,
+  glMultiTexCoord1i,
+  glMultiTexCoord1iv,
+  glMultiTexCoord1s,
+  glMultiTexCoord1sv,
+  glMultiTexCoord2d,
+  glMultiTexCoord2dv,
+  glMultiTexCoord2f,
+  glMultiTexCoord2fv,
+  glMultiTexCoord2i,
+  glMultiTexCoord2iv,
+  glMultiTexCoord2s,
+  glMultiTexCoord2sv,
+  glMultiTexCoord3d,
+  glMultiTexCoord3dv,
+  glMultiTexCoord3f,
+  glMultiTexCoord3fv,
+  glMultiTexCoord3i,
+  glMultiTexCoord3iv,
+  glMultiTexCoord3s,
+  glMultiTexCoord3sv,
+  glMultiTexCoord4d,
+  glMultiTexCoord4dv,
+  glMultiTexCoord4f,
+  glMultiTexCoord4fv,
+  glMultiTexCoord4i,
+  glMultiTexCoord4iv,
+  glMultiTexCoord4s,
+  glMultiTexCoord4sv,
+  glNewList,
+  glNormal3b,
+  glNormal3bv,
+  glNormal3d,
+  glNormal3dv,
+  glNormal3f,
+  glNormal3fv,
+  glNormal3i,
+  glNormal3iv,
+  glNormal3s,
+  glNormal3sv,
+  glNormalPointer,
+  glOrtho,
+  glPassThrough,
+  glPixelMapfv,
+  glPixelMapuiv,
+  glPixelMapusv,
+  glPixelStoref,
+  glPixelStorei,
+  glPixelTransferf,
+  glPixelTransferi,
+  glPixelZoom,
+  glPointParameterf,
+  glPointParameterfv,
+  glPointParameteri,
+  glPointParameteriv,
+  glPointSize,
+  glPolygonMode,
+  glPolygonOffset,
+  glPolygonStipple,
+  glPopAttrib,
+  glPopClientAttrib,
+  glPopMatrix,
+  glPopName,
+  glPrioritizeTextures,
+  glPushAttrib,
+  glPushClientAttrib,
+  glPushMatrix,
+  glPushName,
+  glRasterPos2d,
+  glRasterPos2dv,
+  glRasterPos2f,
+  glRasterPos2fv,
+  glRasterPos2i,
+  glRasterPos2iv,
+  glRasterPos2s,
+  glRasterPos2sv,
+  glRasterPos3d,
+  glRasterPos3dv,
+  glRasterPos3f,
+  glRasterPos3fv,
+  glRasterPos3i,
+  glRasterPos3iv,
+  glRasterPos3s,
+  glRasterPos3sv,
+  glRasterPos4d,
+  glRasterPos4dv,
+  glRasterPos4f,
+  glRasterPos4fv,
+  glRasterPos4i,
+  glRasterPos4iv,
+  glRasterPos4s,
+  glRasterPos4sv,
+  glReadBuffer,
+  glReadPixels,
+  glRectd,
+  glRectdv,
+  glRectf,
+  glRectfv,
+  glRecti,
+  glRectiv,
+  glRects,
+  glRectsv,
+  glRenderMode,
+  glRotated,
+  glRotatef,
+  glSampleCoverage,
+  glScaled,
+  glScalef,
+  glScissor,
+  glSecondaryColor3b,
+  glSecondaryColor3bv,
+  glSecondaryColor3d,
+  glSecondaryColor3dv,
+  glSecondaryColor3f,
+  glSecondaryColor3fv,
+  glSecondaryColor3i,
+  glSecondaryColor3iv,
+  glSecondaryColor3s,
+  glSecondaryColor3sv,
+  glSecondaryColor3ub,
+  glSecondaryColor3ubv,
+  glSecondaryColor3ui,
+  glSecondaryColor3uiv,
+  glSecondaryColor3us,
+  glSecondaryColor3usv,
+  glSecondaryColorPointer,
+  glSelectBuffer,
+  glShadeModel,
+  glStencilFunc,
+  glStencilMask,
+  glStencilOp,
+  glTexCoord1d,
+  glTexCoord1dv,
+  glTexCoord1f,
+  glTexCoord1fv,
+  glTexCoord1i,
+  glTexCoord1iv,
+  glTexCoord1s,
+  glTexCoord1sv,
+  glTexCoord2d,
+  glTexCoord2dv,
+  glTexCoord2f,
+  glTexCoord2fv,
+  glTexCoord2i,
+  glTexCoord2iv,
+  glTexCoord2s,
+  glTexCoord2sv,
+  glTexCoord3d,
+  glTexCoord3dv,
+  glTexCoord3f,
+  glTexCoord3fv,
+  glTexCoord3i,
+  glTexCoord3iv,
+  glTexCoord3s,
+  glTexCoord3sv,
+  glTexCoord4d,
+  glTexCoord4dv,
+  glTexCoord4f,
+  glTexCoord4fv,
+  glTexCoord4i,
+  glTexCoord4iv,
+  glTexCoord4s,
+  glTexCoord4sv,
+  glTexCoordPointer,
+  glTexEnvf,
+  glTexEnvfv,
+  glTexEnvi,
+  glTexEnviv,
+  glTexGend,
+  glTexGendv,
+  glTexGenf,
+  glTexGenfv,
+  glTexGeni,
+  glTexGeniv,
+  glTexImage1D,
+  glTexImage2D,
+  glTexImage3D,
+  glTexParameterf,
+  glTexParameterfv,
+  glTexParameteri,
+  glTexParameteriv,
+  glTexSubImage1D,
+  glTexSubImage2D,
+  glTexSubImage3D,
+  glTranslated,
+  glTranslatef,
+  glVertex2d,
+  glVertex2dv,
+  glVertex2f,
+  glVertex2fv,
+  glVertex2i,
+  glVertex2iv,
+  glVertex2s,
+  glVertex2sv,
+  glVertex3d,
+  glVertex3dv,
+  glVertex3f,
+  glVertex3fv,
+  glVertex3i,
+  glVertex3iv,
+  glVertex3s,
+  glVertex3sv,
+  glVertex4d,
+  glVertex4dv,
+  glVertex4f,
+  glVertex4fv,
+  glVertex4i,
+  glVertex4iv,
+  glVertex4s,
+  glVertex4sv,
+  glVertexPointer,
+  glViewport,
+  glWindowPos2d,
+  glWindowPos2dv,
+  glWindowPos2f,
+  glWindowPos2fv,
+  glWindowPos2i,
+  glWindowPos2iv,
+  glWindowPos2s,
+  glWindowPos2sv,
+  glWindowPos3d,
+  glWindowPos3dv,
+  glWindowPos3f,
+  glWindowPos3fv,
+  glWindowPos3i,
+  glWindowPos3iv,
+  glWindowPos3s,
+  glWindowPos3sv
+) where
+
+import Graphics.GL.Types
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/Version15.hs b/src/Graphics/GL/Version15.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Version15.hs
@@ -0,0 +1,1256 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Version15
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Version15 (
+  -- * Types
+  GLbitfield,
+  GLboolean,
+  GLbyte,
+  GLclampd,
+  GLclampf,
+  GLdouble,
+  GLenum,
+  GLfloat,
+  GLint,
+  GLintptr,
+  GLshort,
+  GLsizei,
+  GLsizeiptr,
+  GLubyte,
+  GLuint,
+  GLushort,
+  GLvoid,
+  -- * Enums
+  pattern GL_2D,
+  pattern GL_2_BYTES,
+  pattern GL_3D,
+  pattern GL_3D_COLOR,
+  pattern GL_3D_COLOR_TEXTURE,
+  pattern GL_3_BYTES,
+  pattern GL_4D_COLOR_TEXTURE,
+  pattern GL_4_BYTES,
+  pattern GL_ACCUM,
+  pattern GL_ACCUM_ALPHA_BITS,
+  pattern GL_ACCUM_BLUE_BITS,
+  pattern GL_ACCUM_BUFFER_BIT,
+  pattern GL_ACCUM_CLEAR_VALUE,
+  pattern GL_ACCUM_GREEN_BITS,
+  pattern GL_ACCUM_RED_BITS,
+  pattern GL_ACTIVE_TEXTURE,
+  pattern GL_ADD,
+  pattern GL_ADD_SIGNED,
+  pattern GL_ALIASED_LINE_WIDTH_RANGE,
+  pattern GL_ALIASED_POINT_SIZE_RANGE,
+  pattern GL_ALL_ATTRIB_BITS,
+  pattern GL_ALPHA,
+  pattern GL_ALPHA12,
+  pattern GL_ALPHA16,
+  pattern GL_ALPHA4,
+  pattern GL_ALPHA8,
+  pattern GL_ALPHA_BIAS,
+  pattern GL_ALPHA_BITS,
+  pattern GL_ALPHA_SCALE,
+  pattern GL_ALPHA_TEST,
+  pattern GL_ALPHA_TEST_FUNC,
+  pattern GL_ALPHA_TEST_REF,
+  pattern GL_ALWAYS,
+  pattern GL_AMBIENT,
+  pattern GL_AMBIENT_AND_DIFFUSE,
+  pattern GL_AND,
+  pattern GL_AND_INVERTED,
+  pattern GL_AND_REVERSE,
+  pattern GL_ARRAY_BUFFER,
+  pattern GL_ARRAY_BUFFER_BINDING,
+  pattern GL_ATTRIB_STACK_DEPTH,
+  pattern GL_AUTO_NORMAL,
+  pattern GL_AUX0,
+  pattern GL_AUX1,
+  pattern GL_AUX2,
+  pattern GL_AUX3,
+  pattern GL_AUX_BUFFERS,
+  pattern GL_BACK,
+  pattern GL_BACK_LEFT,
+  pattern GL_BACK_RIGHT,
+  pattern GL_BGR,
+  pattern GL_BGRA,
+  pattern GL_BITMAP,
+  pattern GL_BITMAP_TOKEN,
+  pattern GL_BLEND,
+  pattern GL_BLEND_COLOR,
+  pattern GL_BLEND_DST,
+  pattern GL_BLEND_DST_ALPHA,
+  pattern GL_BLEND_DST_RGB,
+  pattern GL_BLEND_EQUATION,
+  pattern GL_BLEND_SRC,
+  pattern GL_BLEND_SRC_ALPHA,
+  pattern GL_BLEND_SRC_RGB,
+  pattern GL_BLUE,
+  pattern GL_BLUE_BIAS,
+  pattern GL_BLUE_BITS,
+  pattern GL_BLUE_SCALE,
+  pattern GL_BUFFER_ACCESS,
+  pattern GL_BUFFER_MAPPED,
+  pattern GL_BUFFER_MAP_POINTER,
+  pattern GL_BUFFER_SIZE,
+  pattern GL_BUFFER_USAGE,
+  pattern GL_BYTE,
+  pattern GL_C3F_V3F,
+  pattern GL_C4F_N3F_V3F,
+  pattern GL_C4UB_V2F,
+  pattern GL_C4UB_V3F,
+  pattern GL_CCW,
+  pattern GL_CLAMP,
+  pattern GL_CLAMP_TO_BORDER,
+  pattern GL_CLAMP_TO_EDGE,
+  pattern GL_CLEAR,
+  pattern GL_CLIENT_ACTIVE_TEXTURE,
+  pattern GL_CLIENT_ALL_ATTRIB_BITS,
+  pattern GL_CLIENT_ATTRIB_STACK_DEPTH,
+  pattern GL_CLIENT_PIXEL_STORE_BIT,
+  pattern GL_CLIENT_VERTEX_ARRAY_BIT,
+  pattern GL_CLIP_PLANE0,
+  pattern GL_CLIP_PLANE1,
+  pattern GL_CLIP_PLANE2,
+  pattern GL_CLIP_PLANE3,
+  pattern GL_CLIP_PLANE4,
+  pattern GL_CLIP_PLANE5,
+  pattern GL_COEFF,
+  pattern GL_COLOR,
+  pattern GL_COLOR_ARRAY,
+  pattern GL_COLOR_ARRAY_BUFFER_BINDING,
+  pattern GL_COLOR_ARRAY_POINTER,
+  pattern GL_COLOR_ARRAY_SIZE,
+  pattern GL_COLOR_ARRAY_STRIDE,
+  pattern GL_COLOR_ARRAY_TYPE,
+  pattern GL_COLOR_BUFFER_BIT,
+  pattern GL_COLOR_CLEAR_VALUE,
+  pattern GL_COLOR_INDEX,
+  pattern GL_COLOR_INDEXES,
+  pattern GL_COLOR_LOGIC_OP,
+  pattern GL_COLOR_MATERIAL,
+  pattern GL_COLOR_MATERIAL_FACE,
+  pattern GL_COLOR_MATERIAL_PARAMETER,
+  pattern GL_COLOR_SUM,
+  pattern GL_COLOR_WRITEMASK,
+  pattern GL_COMBINE,
+  pattern GL_COMBINE_ALPHA,
+  pattern GL_COMBINE_RGB,
+  pattern GL_COMPARE_R_TO_TEXTURE,
+  pattern GL_COMPILE,
+  pattern GL_COMPILE_AND_EXECUTE,
+  pattern GL_COMPRESSED_ALPHA,
+  pattern GL_COMPRESSED_INTENSITY,
+  pattern GL_COMPRESSED_LUMINANCE,
+  pattern GL_COMPRESSED_LUMINANCE_ALPHA,
+  pattern GL_COMPRESSED_RGB,
+  pattern GL_COMPRESSED_RGBA,
+  pattern GL_COMPRESSED_TEXTURE_FORMATS,
+  pattern GL_CONSTANT,
+  pattern GL_CONSTANT_ALPHA,
+  pattern GL_CONSTANT_ATTENUATION,
+  pattern GL_CONSTANT_COLOR,
+  pattern GL_COPY,
+  pattern GL_COPY_INVERTED,
+  pattern GL_COPY_PIXEL_TOKEN,
+  pattern GL_CULL_FACE,
+  pattern GL_CULL_FACE_MODE,
+  pattern GL_CURRENT_BIT,
+  pattern GL_CURRENT_COLOR,
+  pattern GL_CURRENT_FOG_COORD,
+  pattern GL_CURRENT_FOG_COORDINATE,
+  pattern GL_CURRENT_INDEX,
+  pattern GL_CURRENT_NORMAL,
+  pattern GL_CURRENT_QUERY,
+  pattern GL_CURRENT_RASTER_COLOR,
+  pattern GL_CURRENT_RASTER_DISTANCE,
+  pattern GL_CURRENT_RASTER_INDEX,
+  pattern GL_CURRENT_RASTER_POSITION,
+  pattern GL_CURRENT_RASTER_POSITION_VALID,
+  pattern GL_CURRENT_RASTER_TEXTURE_COORDS,
+  pattern GL_CURRENT_SECONDARY_COLOR,
+  pattern GL_CURRENT_TEXTURE_COORDS,
+  pattern GL_CW,
+  pattern GL_DECAL,
+  pattern GL_DECR,
+  pattern GL_DECR_WRAP,
+  pattern GL_DEPTH,
+  pattern GL_DEPTH_BIAS,
+  pattern GL_DEPTH_BITS,
+  pattern GL_DEPTH_BUFFER_BIT,
+  pattern GL_DEPTH_CLEAR_VALUE,
+  pattern GL_DEPTH_COMPONENT,
+  pattern GL_DEPTH_COMPONENT16,
+  pattern GL_DEPTH_COMPONENT24,
+  pattern GL_DEPTH_COMPONENT32,
+  pattern GL_DEPTH_FUNC,
+  pattern GL_DEPTH_RANGE,
+  pattern GL_DEPTH_SCALE,
+  pattern GL_DEPTH_TEST,
+  pattern GL_DEPTH_TEXTURE_MODE,
+  pattern GL_DEPTH_WRITEMASK,
+  pattern GL_DIFFUSE,
+  pattern GL_DITHER,
+  pattern GL_DOMAIN,
+  pattern GL_DONT_CARE,
+  pattern GL_DOT3_RGB,
+  pattern GL_DOT3_RGBA,
+  pattern GL_DOUBLE,
+  pattern GL_DOUBLEBUFFER,
+  pattern GL_DRAW_BUFFER,
+  pattern GL_DRAW_PIXEL_TOKEN,
+  pattern GL_DST_ALPHA,
+  pattern GL_DST_COLOR,
+  pattern GL_DYNAMIC_COPY,
+  pattern GL_DYNAMIC_DRAW,
+  pattern GL_DYNAMIC_READ,
+  pattern GL_EDGE_FLAG,
+  pattern GL_EDGE_FLAG_ARRAY,
+  pattern GL_EDGE_FLAG_ARRAY_BUFFER_BINDING,
+  pattern GL_EDGE_FLAG_ARRAY_POINTER,
+  pattern GL_EDGE_FLAG_ARRAY_STRIDE,
+  pattern GL_ELEMENT_ARRAY_BUFFER,
+  pattern GL_ELEMENT_ARRAY_BUFFER_BINDING,
+  pattern GL_EMISSION,
+  pattern GL_ENABLE_BIT,
+  pattern GL_EQUAL,
+  pattern GL_EQUIV,
+  pattern GL_EVAL_BIT,
+  pattern GL_EXP,
+  pattern GL_EXP2,
+  pattern GL_EXTENSIONS,
+  pattern GL_EYE_LINEAR,
+  pattern GL_EYE_PLANE,
+  pattern GL_FALSE,
+  pattern GL_FASTEST,
+  pattern GL_FEEDBACK,
+  pattern GL_FEEDBACK_BUFFER_POINTER,
+  pattern GL_FEEDBACK_BUFFER_SIZE,
+  pattern GL_FEEDBACK_BUFFER_TYPE,
+  pattern GL_FILL,
+  pattern GL_FLAT,
+  pattern GL_FLOAT,
+  pattern GL_FOG,
+  pattern GL_FOG_BIT,
+  pattern GL_FOG_COLOR,
+  pattern GL_FOG_COORD,
+  pattern GL_FOG_COORDINATE,
+  pattern GL_FOG_COORDINATE_ARRAY,
+  pattern GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING,
+  pattern GL_FOG_COORDINATE_ARRAY_POINTER,
+  pattern GL_FOG_COORDINATE_ARRAY_STRIDE,
+  pattern GL_FOG_COORDINATE_ARRAY_TYPE,
+  pattern GL_FOG_COORDINATE_SOURCE,
+  pattern GL_FOG_COORD_ARRAY,
+  pattern GL_FOG_COORD_ARRAY_BUFFER_BINDING,
+  pattern GL_FOG_COORD_ARRAY_POINTER,
+  pattern GL_FOG_COORD_ARRAY_STRIDE,
+  pattern GL_FOG_COORD_ARRAY_TYPE,
+  pattern GL_FOG_COORD_SRC,
+  pattern GL_FOG_DENSITY,
+  pattern GL_FOG_END,
+  pattern GL_FOG_HINT,
+  pattern GL_FOG_INDEX,
+  pattern GL_FOG_MODE,
+  pattern GL_FOG_START,
+  pattern GL_FRAGMENT_DEPTH,
+  pattern GL_FRONT,
+  pattern GL_FRONT_AND_BACK,
+  pattern GL_FRONT_FACE,
+  pattern GL_FRONT_LEFT,
+  pattern GL_FRONT_RIGHT,
+  pattern GL_FUNC_ADD,
+  pattern GL_FUNC_REVERSE_SUBTRACT,
+  pattern GL_FUNC_SUBTRACT,
+  pattern GL_GENERATE_MIPMAP,
+  pattern GL_GENERATE_MIPMAP_HINT,
+  pattern GL_GEQUAL,
+  pattern GL_GREATER,
+  pattern GL_GREEN,
+  pattern GL_GREEN_BIAS,
+  pattern GL_GREEN_BITS,
+  pattern GL_GREEN_SCALE,
+  pattern GL_HINT_BIT,
+  pattern GL_INCR,
+  pattern GL_INCR_WRAP,
+  pattern GL_INDEX_ARRAY,
+  pattern GL_INDEX_ARRAY_BUFFER_BINDING,
+  pattern GL_INDEX_ARRAY_POINTER,
+  pattern GL_INDEX_ARRAY_STRIDE,
+  pattern GL_INDEX_ARRAY_TYPE,
+  pattern GL_INDEX_BITS,
+  pattern GL_INDEX_CLEAR_VALUE,
+  pattern GL_INDEX_LOGIC_OP,
+  pattern GL_INDEX_MODE,
+  pattern GL_INDEX_OFFSET,
+  pattern GL_INDEX_SHIFT,
+  pattern GL_INDEX_WRITEMASK,
+  pattern GL_INT,
+  pattern GL_INTENSITY,
+  pattern GL_INTENSITY12,
+  pattern GL_INTENSITY16,
+  pattern GL_INTENSITY4,
+  pattern GL_INTENSITY8,
+  pattern GL_INTERPOLATE,
+  pattern GL_INVALID_ENUM,
+  pattern GL_INVALID_OPERATION,
+  pattern GL_INVALID_VALUE,
+  pattern GL_INVERT,
+  pattern GL_KEEP,
+  pattern GL_LEFT,
+  pattern GL_LEQUAL,
+  pattern GL_LESS,
+  pattern GL_LIGHT0,
+  pattern GL_LIGHT1,
+  pattern GL_LIGHT2,
+  pattern GL_LIGHT3,
+  pattern GL_LIGHT4,
+  pattern GL_LIGHT5,
+  pattern GL_LIGHT6,
+  pattern GL_LIGHT7,
+  pattern GL_LIGHTING,
+  pattern GL_LIGHTING_BIT,
+  pattern GL_LIGHT_MODEL_AMBIENT,
+  pattern GL_LIGHT_MODEL_COLOR_CONTROL,
+  pattern GL_LIGHT_MODEL_LOCAL_VIEWER,
+  pattern GL_LIGHT_MODEL_TWO_SIDE,
+  pattern GL_LINE,
+  pattern GL_LINEAR,
+  pattern GL_LINEAR_ATTENUATION,
+  pattern GL_LINEAR_MIPMAP_LINEAR,
+  pattern GL_LINEAR_MIPMAP_NEAREST,
+  pattern GL_LINES,
+  pattern GL_LINE_BIT,
+  pattern GL_LINE_LOOP,
+  pattern GL_LINE_RESET_TOKEN,
+  pattern GL_LINE_SMOOTH,
+  pattern GL_LINE_SMOOTH_HINT,
+  pattern GL_LINE_STIPPLE,
+  pattern GL_LINE_STIPPLE_PATTERN,
+  pattern GL_LINE_STIPPLE_REPEAT,
+  pattern GL_LINE_STRIP,
+  pattern GL_LINE_TOKEN,
+  pattern GL_LINE_WIDTH,
+  pattern GL_LINE_WIDTH_GRANULARITY,
+  pattern GL_LINE_WIDTH_RANGE,
+  pattern GL_LIST_BASE,
+  pattern GL_LIST_BIT,
+  pattern GL_LIST_INDEX,
+  pattern GL_LIST_MODE,
+  pattern GL_LOAD,
+  pattern GL_LOGIC_OP,
+  pattern GL_LOGIC_OP_MODE,
+  pattern GL_LUMINANCE,
+  pattern GL_LUMINANCE12,
+  pattern GL_LUMINANCE12_ALPHA12,
+  pattern GL_LUMINANCE12_ALPHA4,
+  pattern GL_LUMINANCE16,
+  pattern GL_LUMINANCE16_ALPHA16,
+  pattern GL_LUMINANCE4,
+  pattern GL_LUMINANCE4_ALPHA4,
+  pattern GL_LUMINANCE6_ALPHA2,
+  pattern GL_LUMINANCE8,
+  pattern GL_LUMINANCE8_ALPHA8,
+  pattern GL_LUMINANCE_ALPHA,
+  pattern GL_MAP1_COLOR_4,
+  pattern GL_MAP1_GRID_DOMAIN,
+  pattern GL_MAP1_GRID_SEGMENTS,
+  pattern GL_MAP1_INDEX,
+  pattern GL_MAP1_NORMAL,
+  pattern GL_MAP1_TEXTURE_COORD_1,
+  pattern GL_MAP1_TEXTURE_COORD_2,
+  pattern GL_MAP1_TEXTURE_COORD_3,
+  pattern GL_MAP1_TEXTURE_COORD_4,
+  pattern GL_MAP1_VERTEX_3,
+  pattern GL_MAP1_VERTEX_4,
+  pattern GL_MAP2_COLOR_4,
+  pattern GL_MAP2_GRID_DOMAIN,
+  pattern GL_MAP2_GRID_SEGMENTS,
+  pattern GL_MAP2_INDEX,
+  pattern GL_MAP2_NORMAL,
+  pattern GL_MAP2_TEXTURE_COORD_1,
+  pattern GL_MAP2_TEXTURE_COORD_2,
+  pattern GL_MAP2_TEXTURE_COORD_3,
+  pattern GL_MAP2_TEXTURE_COORD_4,
+  pattern GL_MAP2_VERTEX_3,
+  pattern GL_MAP2_VERTEX_4,
+  pattern GL_MAP_COLOR,
+  pattern GL_MAP_STENCIL,
+  pattern GL_MATRIX_MODE,
+  pattern GL_MAX,
+  pattern GL_MAX_3D_TEXTURE_SIZE,
+  pattern GL_MAX_ATTRIB_STACK_DEPTH,
+  pattern GL_MAX_CLIENT_ATTRIB_STACK_DEPTH,
+  pattern GL_MAX_CLIP_PLANES,
+  pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE,
+  pattern GL_MAX_ELEMENTS_INDICES,
+  pattern GL_MAX_ELEMENTS_VERTICES,
+  pattern GL_MAX_EVAL_ORDER,
+  pattern GL_MAX_LIGHTS,
+  pattern GL_MAX_LIST_NESTING,
+  pattern GL_MAX_MODELVIEW_STACK_DEPTH,
+  pattern GL_MAX_NAME_STACK_DEPTH,
+  pattern GL_MAX_PIXEL_MAP_TABLE,
+  pattern GL_MAX_PROJECTION_STACK_DEPTH,
+  pattern GL_MAX_TEXTURE_LOD_BIAS,
+  pattern GL_MAX_TEXTURE_SIZE,
+  pattern GL_MAX_TEXTURE_STACK_DEPTH,
+  pattern GL_MAX_TEXTURE_UNITS,
+  pattern GL_MAX_VIEWPORT_DIMS,
+  pattern GL_MIN,
+  pattern GL_MIRRORED_REPEAT,
+  pattern GL_MODELVIEW,
+  pattern GL_MODELVIEW_MATRIX,
+  pattern GL_MODELVIEW_STACK_DEPTH,
+  pattern GL_MODULATE,
+  pattern GL_MULT,
+  pattern GL_MULTISAMPLE,
+  pattern GL_MULTISAMPLE_BIT,
+  pattern GL_N3F_V3F,
+  pattern GL_NAME_STACK_DEPTH,
+  pattern GL_NAND,
+  pattern GL_NEAREST,
+  pattern GL_NEAREST_MIPMAP_LINEAR,
+  pattern GL_NEAREST_MIPMAP_NEAREST,
+  pattern GL_NEVER,
+  pattern GL_NICEST,
+  pattern GL_NONE,
+  pattern GL_NOOP,
+  pattern GL_NOR,
+  pattern GL_NORMALIZE,
+  pattern GL_NORMAL_ARRAY,
+  pattern GL_NORMAL_ARRAY_BUFFER_BINDING,
+  pattern GL_NORMAL_ARRAY_POINTER,
+  pattern GL_NORMAL_ARRAY_STRIDE,
+  pattern GL_NORMAL_ARRAY_TYPE,
+  pattern GL_NORMAL_MAP,
+  pattern GL_NOTEQUAL,
+  pattern GL_NO_ERROR,
+  pattern GL_NUM_COMPRESSED_TEXTURE_FORMATS,
+  pattern GL_OBJECT_LINEAR,
+  pattern GL_OBJECT_PLANE,
+  pattern GL_ONE,
+  pattern GL_ONE_MINUS_CONSTANT_ALPHA,
+  pattern GL_ONE_MINUS_CONSTANT_COLOR,
+  pattern GL_ONE_MINUS_DST_ALPHA,
+  pattern GL_ONE_MINUS_DST_COLOR,
+  pattern GL_ONE_MINUS_SRC_ALPHA,
+  pattern GL_ONE_MINUS_SRC_COLOR,
+  pattern GL_OPERAND0_ALPHA,
+  pattern GL_OPERAND0_RGB,
+  pattern GL_OPERAND1_ALPHA,
+  pattern GL_OPERAND1_RGB,
+  pattern GL_OPERAND2_ALPHA,
+  pattern GL_OPERAND2_RGB,
+  pattern GL_OR,
+  pattern GL_ORDER,
+  pattern GL_OR_INVERTED,
+  pattern GL_OR_REVERSE,
+  pattern GL_OUT_OF_MEMORY,
+  pattern GL_PACK_ALIGNMENT,
+  pattern GL_PACK_IMAGE_HEIGHT,
+  pattern GL_PACK_LSB_FIRST,
+  pattern GL_PACK_ROW_LENGTH,
+  pattern GL_PACK_SKIP_IMAGES,
+  pattern GL_PACK_SKIP_PIXELS,
+  pattern GL_PACK_SKIP_ROWS,
+  pattern GL_PACK_SWAP_BYTES,
+  pattern GL_PASS_THROUGH_TOKEN,
+  pattern GL_PERSPECTIVE_CORRECTION_HINT,
+  pattern GL_PIXEL_MAP_A_TO_A,
+  pattern GL_PIXEL_MAP_A_TO_A_SIZE,
+  pattern GL_PIXEL_MAP_B_TO_B,
+  pattern GL_PIXEL_MAP_B_TO_B_SIZE,
+  pattern GL_PIXEL_MAP_G_TO_G,
+  pattern GL_PIXEL_MAP_G_TO_G_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_A,
+  pattern GL_PIXEL_MAP_I_TO_A_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_B,
+  pattern GL_PIXEL_MAP_I_TO_B_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_G,
+  pattern GL_PIXEL_MAP_I_TO_G_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_I,
+  pattern GL_PIXEL_MAP_I_TO_I_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_R,
+  pattern GL_PIXEL_MAP_I_TO_R_SIZE,
+  pattern GL_PIXEL_MAP_R_TO_R,
+  pattern GL_PIXEL_MAP_R_TO_R_SIZE,
+  pattern GL_PIXEL_MAP_S_TO_S,
+  pattern GL_PIXEL_MAP_S_TO_S_SIZE,
+  pattern GL_PIXEL_MODE_BIT,
+  pattern GL_POINT,
+  pattern GL_POINTS,
+  pattern GL_POINT_BIT,
+  pattern GL_POINT_DISTANCE_ATTENUATION,
+  pattern GL_POINT_FADE_THRESHOLD_SIZE,
+  pattern GL_POINT_SIZE,
+  pattern GL_POINT_SIZE_GRANULARITY,
+  pattern GL_POINT_SIZE_MAX,
+  pattern GL_POINT_SIZE_MIN,
+  pattern GL_POINT_SIZE_RANGE,
+  pattern GL_POINT_SMOOTH,
+  pattern GL_POINT_SMOOTH_HINT,
+  pattern GL_POINT_TOKEN,
+  pattern GL_POLYGON,
+  pattern GL_POLYGON_BIT,
+  pattern GL_POLYGON_MODE,
+  pattern GL_POLYGON_OFFSET_FACTOR,
+  pattern GL_POLYGON_OFFSET_FILL,
+  pattern GL_POLYGON_OFFSET_LINE,
+  pattern GL_POLYGON_OFFSET_POINT,
+  pattern GL_POLYGON_OFFSET_UNITS,
+  pattern GL_POLYGON_SMOOTH,
+  pattern GL_POLYGON_SMOOTH_HINT,
+  pattern GL_POLYGON_STIPPLE,
+  pattern GL_POLYGON_STIPPLE_BIT,
+  pattern GL_POLYGON_TOKEN,
+  pattern GL_POSITION,
+  pattern GL_PREVIOUS,
+  pattern GL_PRIMARY_COLOR,
+  pattern GL_PROJECTION,
+  pattern GL_PROJECTION_MATRIX,
+  pattern GL_PROJECTION_STACK_DEPTH,
+  pattern GL_PROXY_TEXTURE_1D,
+  pattern GL_PROXY_TEXTURE_2D,
+  pattern GL_PROXY_TEXTURE_3D,
+  pattern GL_PROXY_TEXTURE_CUBE_MAP,
+  pattern GL_Q,
+  pattern GL_QUADRATIC_ATTENUATION,
+  pattern GL_QUADS,
+  pattern GL_QUAD_STRIP,
+  pattern GL_QUERY_COUNTER_BITS,
+  pattern GL_QUERY_RESULT,
+  pattern GL_QUERY_RESULT_AVAILABLE,
+  pattern GL_R,
+  pattern GL_R3_G3_B2,
+  pattern GL_READ_BUFFER,
+  pattern GL_READ_ONLY,
+  pattern GL_READ_WRITE,
+  pattern GL_RED,
+  pattern GL_RED_BIAS,
+  pattern GL_RED_BITS,
+  pattern GL_RED_SCALE,
+  pattern GL_REFLECTION_MAP,
+  pattern GL_RENDER,
+  pattern GL_RENDERER,
+  pattern GL_RENDER_MODE,
+  pattern GL_REPEAT,
+  pattern GL_REPLACE,
+  pattern GL_RESCALE_NORMAL,
+  pattern GL_RETURN,
+  pattern GL_RGB,
+  pattern GL_RGB10,
+  pattern GL_RGB10_A2,
+  pattern GL_RGB12,
+  pattern GL_RGB16,
+  pattern GL_RGB4,
+  pattern GL_RGB5,
+  pattern GL_RGB5_A1,
+  pattern GL_RGB8,
+  pattern GL_RGBA,
+  pattern GL_RGBA12,
+  pattern GL_RGBA16,
+  pattern GL_RGBA2,
+  pattern GL_RGBA4,
+  pattern GL_RGBA8,
+  pattern GL_RGBA_MODE,
+  pattern GL_RGB_SCALE,
+  pattern GL_RIGHT,
+  pattern GL_S,
+  pattern GL_SAMPLES,
+  pattern GL_SAMPLES_PASSED,
+  pattern GL_SAMPLE_ALPHA_TO_COVERAGE,
+  pattern GL_SAMPLE_ALPHA_TO_ONE,
+  pattern GL_SAMPLE_BUFFERS,
+  pattern GL_SAMPLE_COVERAGE,
+  pattern GL_SAMPLE_COVERAGE_INVERT,
+  pattern GL_SAMPLE_COVERAGE_VALUE,
+  pattern GL_SCISSOR_BIT,
+  pattern GL_SCISSOR_BOX,
+  pattern GL_SCISSOR_TEST,
+  pattern GL_SECONDARY_COLOR_ARRAY,
+  pattern GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING,
+  pattern GL_SECONDARY_COLOR_ARRAY_POINTER,
+  pattern GL_SECONDARY_COLOR_ARRAY_SIZE,
+  pattern GL_SECONDARY_COLOR_ARRAY_STRIDE,
+  pattern GL_SECONDARY_COLOR_ARRAY_TYPE,
+  pattern GL_SELECT,
+  pattern GL_SELECTION_BUFFER_POINTER,
+  pattern GL_SELECTION_BUFFER_SIZE,
+  pattern GL_SEPARATE_SPECULAR_COLOR,
+  pattern GL_SET,
+  pattern GL_SHADE_MODEL,
+  pattern GL_SHININESS,
+  pattern GL_SHORT,
+  pattern GL_SINGLE_COLOR,
+  pattern GL_SMOOTH,
+  pattern GL_SMOOTH_LINE_WIDTH_GRANULARITY,
+  pattern GL_SMOOTH_LINE_WIDTH_RANGE,
+  pattern GL_SMOOTH_POINT_SIZE_GRANULARITY,
+  pattern GL_SMOOTH_POINT_SIZE_RANGE,
+  pattern GL_SOURCE0_ALPHA,
+  pattern GL_SOURCE0_RGB,
+  pattern GL_SOURCE1_ALPHA,
+  pattern GL_SOURCE1_RGB,
+  pattern GL_SOURCE2_ALPHA,
+  pattern GL_SOURCE2_RGB,
+  pattern GL_SPECULAR,
+  pattern GL_SPHERE_MAP,
+  pattern GL_SPOT_CUTOFF,
+  pattern GL_SPOT_DIRECTION,
+  pattern GL_SPOT_EXPONENT,
+  pattern GL_SRC0_ALPHA,
+  pattern GL_SRC0_RGB,
+  pattern GL_SRC1_ALPHA,
+  pattern GL_SRC1_RGB,
+  pattern GL_SRC2_ALPHA,
+  pattern GL_SRC2_RGB,
+  pattern GL_SRC_ALPHA,
+  pattern GL_SRC_ALPHA_SATURATE,
+  pattern GL_SRC_COLOR,
+  pattern GL_STACK_OVERFLOW,
+  pattern GL_STACK_UNDERFLOW,
+  pattern GL_STATIC_COPY,
+  pattern GL_STATIC_DRAW,
+  pattern GL_STATIC_READ,
+  pattern GL_STENCIL,
+  pattern GL_STENCIL_BITS,
+  pattern GL_STENCIL_BUFFER_BIT,
+  pattern GL_STENCIL_CLEAR_VALUE,
+  pattern GL_STENCIL_FAIL,
+  pattern GL_STENCIL_FUNC,
+  pattern GL_STENCIL_INDEX,
+  pattern GL_STENCIL_PASS_DEPTH_FAIL,
+  pattern GL_STENCIL_PASS_DEPTH_PASS,
+  pattern GL_STENCIL_REF,
+  pattern GL_STENCIL_TEST,
+  pattern GL_STENCIL_VALUE_MASK,
+  pattern GL_STENCIL_WRITEMASK,
+  pattern GL_STEREO,
+  pattern GL_STREAM_COPY,
+  pattern GL_STREAM_DRAW,
+  pattern GL_STREAM_READ,
+  pattern GL_SUBPIXEL_BITS,
+  pattern GL_SUBTRACT,
+  pattern GL_T,
+  pattern GL_T2F_C3F_V3F,
+  pattern GL_T2F_C4F_N3F_V3F,
+  pattern GL_T2F_C4UB_V3F,
+  pattern GL_T2F_N3F_V3F,
+  pattern GL_T2F_V3F,
+  pattern GL_T4F_C4F_N3F_V4F,
+  pattern GL_T4F_V4F,
+  pattern GL_TEXTURE,
+  pattern GL_TEXTURE0,
+  pattern GL_TEXTURE1,
+  pattern GL_TEXTURE10,
+  pattern GL_TEXTURE11,
+  pattern GL_TEXTURE12,
+  pattern GL_TEXTURE13,
+  pattern GL_TEXTURE14,
+  pattern GL_TEXTURE15,
+  pattern GL_TEXTURE16,
+  pattern GL_TEXTURE17,
+  pattern GL_TEXTURE18,
+  pattern GL_TEXTURE19,
+  pattern GL_TEXTURE2,
+  pattern GL_TEXTURE20,
+  pattern GL_TEXTURE21,
+  pattern GL_TEXTURE22,
+  pattern GL_TEXTURE23,
+  pattern GL_TEXTURE24,
+  pattern GL_TEXTURE25,
+  pattern GL_TEXTURE26,
+  pattern GL_TEXTURE27,
+  pattern GL_TEXTURE28,
+  pattern GL_TEXTURE29,
+  pattern GL_TEXTURE3,
+  pattern GL_TEXTURE30,
+  pattern GL_TEXTURE31,
+  pattern GL_TEXTURE4,
+  pattern GL_TEXTURE5,
+  pattern GL_TEXTURE6,
+  pattern GL_TEXTURE7,
+  pattern GL_TEXTURE8,
+  pattern GL_TEXTURE9,
+  pattern GL_TEXTURE_1D,
+  pattern GL_TEXTURE_2D,
+  pattern GL_TEXTURE_3D,
+  pattern GL_TEXTURE_ALPHA_SIZE,
+  pattern GL_TEXTURE_BASE_LEVEL,
+  pattern GL_TEXTURE_BINDING_1D,
+  pattern GL_TEXTURE_BINDING_2D,
+  pattern GL_TEXTURE_BINDING_3D,
+  pattern GL_TEXTURE_BINDING_CUBE_MAP,
+  pattern GL_TEXTURE_BIT,
+  pattern GL_TEXTURE_BLUE_SIZE,
+  pattern GL_TEXTURE_BORDER,
+  pattern GL_TEXTURE_BORDER_COLOR,
+  pattern GL_TEXTURE_COMPARE_FUNC,
+  pattern GL_TEXTURE_COMPARE_MODE,
+  pattern GL_TEXTURE_COMPONENTS,
+  pattern GL_TEXTURE_COMPRESSED,
+  pattern GL_TEXTURE_COMPRESSED_IMAGE_SIZE,
+  pattern GL_TEXTURE_COMPRESSION_HINT,
+  pattern GL_TEXTURE_COORD_ARRAY,
+  pattern GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING,
+  pattern GL_TEXTURE_COORD_ARRAY_POINTER,
+  pattern GL_TEXTURE_COORD_ARRAY_SIZE,
+  pattern GL_TEXTURE_COORD_ARRAY_STRIDE,
+  pattern GL_TEXTURE_COORD_ARRAY_TYPE,
+  pattern GL_TEXTURE_CUBE_MAP,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z,
+  pattern GL_TEXTURE_DEPTH,
+  pattern GL_TEXTURE_DEPTH_SIZE,
+  pattern GL_TEXTURE_ENV,
+  pattern GL_TEXTURE_ENV_COLOR,
+  pattern GL_TEXTURE_ENV_MODE,
+  pattern GL_TEXTURE_FILTER_CONTROL,
+  pattern GL_TEXTURE_GEN_MODE,
+  pattern GL_TEXTURE_GEN_Q,
+  pattern GL_TEXTURE_GEN_R,
+  pattern GL_TEXTURE_GEN_S,
+  pattern GL_TEXTURE_GEN_T,
+  pattern GL_TEXTURE_GREEN_SIZE,
+  pattern GL_TEXTURE_HEIGHT,
+  pattern GL_TEXTURE_INTENSITY_SIZE,
+  pattern GL_TEXTURE_INTERNAL_FORMAT,
+  pattern GL_TEXTURE_LOD_BIAS,
+  pattern GL_TEXTURE_LUMINANCE_SIZE,
+  pattern GL_TEXTURE_MAG_FILTER,
+  pattern GL_TEXTURE_MATRIX,
+  pattern GL_TEXTURE_MAX_LEVEL,
+  pattern GL_TEXTURE_MAX_LOD,
+  pattern GL_TEXTURE_MIN_FILTER,
+  pattern GL_TEXTURE_MIN_LOD,
+  pattern GL_TEXTURE_PRIORITY,
+  pattern GL_TEXTURE_RED_SIZE,
+  pattern GL_TEXTURE_RESIDENT,
+  pattern GL_TEXTURE_STACK_DEPTH,
+  pattern GL_TEXTURE_WIDTH,
+  pattern GL_TEXTURE_WRAP_R,
+  pattern GL_TEXTURE_WRAP_S,
+  pattern GL_TEXTURE_WRAP_T,
+  pattern GL_TRANSFORM_BIT,
+  pattern GL_TRANSPOSE_COLOR_MATRIX,
+  pattern GL_TRANSPOSE_MODELVIEW_MATRIX,
+  pattern GL_TRANSPOSE_PROJECTION_MATRIX,
+  pattern GL_TRANSPOSE_TEXTURE_MATRIX,
+  pattern GL_TRIANGLES,
+  pattern GL_TRIANGLE_FAN,
+  pattern GL_TRIANGLE_STRIP,
+  pattern GL_TRUE,
+  pattern GL_UNPACK_ALIGNMENT,
+  pattern GL_UNPACK_IMAGE_HEIGHT,
+  pattern GL_UNPACK_LSB_FIRST,
+  pattern GL_UNPACK_ROW_LENGTH,
+  pattern GL_UNPACK_SKIP_IMAGES,
+  pattern GL_UNPACK_SKIP_PIXELS,
+  pattern GL_UNPACK_SKIP_ROWS,
+  pattern GL_UNPACK_SWAP_BYTES,
+  pattern GL_UNSIGNED_BYTE,
+  pattern GL_UNSIGNED_BYTE_2_3_3_REV,
+  pattern GL_UNSIGNED_BYTE_3_3_2,
+  pattern GL_UNSIGNED_INT,
+  pattern GL_UNSIGNED_INT_10_10_10_2,
+  pattern GL_UNSIGNED_INT_2_10_10_10_REV,
+  pattern GL_UNSIGNED_INT_8_8_8_8,
+  pattern GL_UNSIGNED_INT_8_8_8_8_REV,
+  pattern GL_UNSIGNED_SHORT,
+  pattern GL_UNSIGNED_SHORT_1_5_5_5_REV,
+  pattern GL_UNSIGNED_SHORT_4_4_4_4,
+  pattern GL_UNSIGNED_SHORT_4_4_4_4_REV,
+  pattern GL_UNSIGNED_SHORT_5_5_5_1,
+  pattern GL_UNSIGNED_SHORT_5_6_5,
+  pattern GL_UNSIGNED_SHORT_5_6_5_REV,
+  pattern GL_V2F,
+  pattern GL_V3F,
+  pattern GL_VENDOR,
+  pattern GL_VERSION,
+  pattern GL_VERTEX_ARRAY,
+  pattern GL_VERTEX_ARRAY_BUFFER_BINDING,
+  pattern GL_VERTEX_ARRAY_POINTER,
+  pattern GL_VERTEX_ARRAY_SIZE,
+  pattern GL_VERTEX_ARRAY_STRIDE,
+  pattern GL_VERTEX_ARRAY_TYPE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING,
+  pattern GL_VIEWPORT,
+  pattern GL_VIEWPORT_BIT,
+  pattern GL_WEIGHT_ARRAY_BUFFER_BINDING,
+  pattern GL_WRITE_ONLY,
+  pattern GL_XOR,
+  pattern GL_ZERO,
+  pattern GL_ZOOM_X,
+  pattern GL_ZOOM_Y,
+  -- * Functions
+  glAccum,
+  glActiveTexture,
+  glAlphaFunc,
+  glAreTexturesResident,
+  glArrayElement,
+  glBegin,
+  glBeginQuery,
+  glBindBuffer,
+  glBindTexture,
+  glBitmap,
+  glBlendColor,
+  glBlendEquation,
+  glBlendFunc,
+  glBlendFuncSeparate,
+  glBufferData,
+  glBufferSubData,
+  glCallList,
+  glCallLists,
+  glClear,
+  glClearAccum,
+  glClearColor,
+  glClearDepth,
+  glClearIndex,
+  glClearStencil,
+  glClientActiveTexture,
+  glClipPlane,
+  glColor3b,
+  glColor3bv,
+  glColor3d,
+  glColor3dv,
+  glColor3f,
+  glColor3fv,
+  glColor3i,
+  glColor3iv,
+  glColor3s,
+  glColor3sv,
+  glColor3ub,
+  glColor3ubv,
+  glColor3ui,
+  glColor3uiv,
+  glColor3us,
+  glColor3usv,
+  glColor4b,
+  glColor4bv,
+  glColor4d,
+  glColor4dv,
+  glColor4f,
+  glColor4fv,
+  glColor4i,
+  glColor4iv,
+  glColor4s,
+  glColor4sv,
+  glColor4ub,
+  glColor4ubv,
+  glColor4ui,
+  glColor4uiv,
+  glColor4us,
+  glColor4usv,
+  glColorMask,
+  glColorMaterial,
+  glColorPointer,
+  glCompressedTexImage1D,
+  glCompressedTexImage2D,
+  glCompressedTexImage3D,
+  glCompressedTexSubImage1D,
+  glCompressedTexSubImage2D,
+  glCompressedTexSubImage3D,
+  glCopyPixels,
+  glCopyTexImage1D,
+  glCopyTexImage2D,
+  glCopyTexSubImage1D,
+  glCopyTexSubImage2D,
+  glCopyTexSubImage3D,
+  glCullFace,
+  glDeleteBuffers,
+  glDeleteLists,
+  glDeleteQueries,
+  glDeleteTextures,
+  glDepthFunc,
+  glDepthMask,
+  glDepthRange,
+  glDisable,
+  glDisableClientState,
+  glDrawArrays,
+  glDrawBuffer,
+  glDrawElements,
+  glDrawPixels,
+  glDrawRangeElements,
+  glEdgeFlag,
+  glEdgeFlagPointer,
+  glEdgeFlagv,
+  glEnable,
+  glEnableClientState,
+  glEnd,
+  glEndList,
+  glEndQuery,
+  glEvalCoord1d,
+  glEvalCoord1dv,
+  glEvalCoord1f,
+  glEvalCoord1fv,
+  glEvalCoord2d,
+  glEvalCoord2dv,
+  glEvalCoord2f,
+  glEvalCoord2fv,
+  glEvalMesh1,
+  glEvalMesh2,
+  glEvalPoint1,
+  glEvalPoint2,
+  glFeedbackBuffer,
+  glFinish,
+  glFlush,
+  glFogCoordPointer,
+  glFogCoordd,
+  glFogCoorddv,
+  glFogCoordf,
+  glFogCoordfv,
+  glFogf,
+  glFogfv,
+  glFogi,
+  glFogiv,
+  glFrontFace,
+  glFrustum,
+  glGenBuffers,
+  glGenLists,
+  glGenQueries,
+  glGenTextures,
+  glGetBooleanv,
+  glGetBufferParameteriv,
+  glGetBufferPointerv,
+  glGetBufferSubData,
+  glGetClipPlane,
+  glGetCompressedTexImage,
+  glGetDoublev,
+  glGetError,
+  glGetFloatv,
+  glGetIntegerv,
+  glGetLightfv,
+  glGetLightiv,
+  glGetMapdv,
+  glGetMapfv,
+  glGetMapiv,
+  glGetMaterialfv,
+  glGetMaterialiv,
+  glGetPixelMapfv,
+  glGetPixelMapuiv,
+  glGetPixelMapusv,
+  glGetPointerv,
+  glGetPolygonStipple,
+  glGetQueryObjectiv,
+  glGetQueryObjectuiv,
+  glGetQueryiv,
+  glGetString,
+  glGetTexEnvfv,
+  glGetTexEnviv,
+  glGetTexGendv,
+  glGetTexGenfv,
+  glGetTexGeniv,
+  glGetTexImage,
+  glGetTexLevelParameterfv,
+  glGetTexLevelParameteriv,
+  glGetTexParameterfv,
+  glGetTexParameteriv,
+  glHint,
+  glIndexMask,
+  glIndexPointer,
+  glIndexd,
+  glIndexdv,
+  glIndexf,
+  glIndexfv,
+  glIndexi,
+  glIndexiv,
+  glIndexs,
+  glIndexsv,
+  glIndexub,
+  glIndexubv,
+  glInitNames,
+  glInterleavedArrays,
+  glIsBuffer,
+  glIsEnabled,
+  glIsList,
+  glIsQuery,
+  glIsTexture,
+  glLightModelf,
+  glLightModelfv,
+  glLightModeli,
+  glLightModeliv,
+  glLightf,
+  glLightfv,
+  glLighti,
+  glLightiv,
+  glLineStipple,
+  glLineWidth,
+  glListBase,
+  glLoadIdentity,
+  glLoadMatrixd,
+  glLoadMatrixf,
+  glLoadName,
+  glLoadTransposeMatrixd,
+  glLoadTransposeMatrixf,
+  glLogicOp,
+  glMap1d,
+  glMap1f,
+  glMap2d,
+  glMap2f,
+  glMapBuffer,
+  glMapGrid1d,
+  glMapGrid1f,
+  glMapGrid2d,
+  glMapGrid2f,
+  glMaterialf,
+  glMaterialfv,
+  glMateriali,
+  glMaterialiv,
+  glMatrixMode,
+  glMultMatrixd,
+  glMultMatrixf,
+  glMultTransposeMatrixd,
+  glMultTransposeMatrixf,
+  glMultiDrawArrays,
+  glMultiDrawElements,
+  glMultiTexCoord1d,
+  glMultiTexCoord1dv,
+  glMultiTexCoord1f,
+  glMultiTexCoord1fv,
+  glMultiTexCoord1i,
+  glMultiTexCoord1iv,
+  glMultiTexCoord1s,
+  glMultiTexCoord1sv,
+  glMultiTexCoord2d,
+  glMultiTexCoord2dv,
+  glMultiTexCoord2f,
+  glMultiTexCoord2fv,
+  glMultiTexCoord2i,
+  glMultiTexCoord2iv,
+  glMultiTexCoord2s,
+  glMultiTexCoord2sv,
+  glMultiTexCoord3d,
+  glMultiTexCoord3dv,
+  glMultiTexCoord3f,
+  glMultiTexCoord3fv,
+  glMultiTexCoord3i,
+  glMultiTexCoord3iv,
+  glMultiTexCoord3s,
+  glMultiTexCoord3sv,
+  glMultiTexCoord4d,
+  glMultiTexCoord4dv,
+  glMultiTexCoord4f,
+  glMultiTexCoord4fv,
+  glMultiTexCoord4i,
+  glMultiTexCoord4iv,
+  glMultiTexCoord4s,
+  glMultiTexCoord4sv,
+  glNewList,
+  glNormal3b,
+  glNormal3bv,
+  glNormal3d,
+  glNormal3dv,
+  glNormal3f,
+  glNormal3fv,
+  glNormal3i,
+  glNormal3iv,
+  glNormal3s,
+  glNormal3sv,
+  glNormalPointer,
+  glOrtho,
+  glPassThrough,
+  glPixelMapfv,
+  glPixelMapuiv,
+  glPixelMapusv,
+  glPixelStoref,
+  glPixelStorei,
+  glPixelTransferf,
+  glPixelTransferi,
+  glPixelZoom,
+  glPointParameterf,
+  glPointParameterfv,
+  glPointParameteri,
+  glPointParameteriv,
+  glPointSize,
+  glPolygonMode,
+  glPolygonOffset,
+  glPolygonStipple,
+  glPopAttrib,
+  glPopClientAttrib,
+  glPopMatrix,
+  glPopName,
+  glPrioritizeTextures,
+  glPushAttrib,
+  glPushClientAttrib,
+  glPushMatrix,
+  glPushName,
+  glRasterPos2d,
+  glRasterPos2dv,
+  glRasterPos2f,
+  glRasterPos2fv,
+  glRasterPos2i,
+  glRasterPos2iv,
+  glRasterPos2s,
+  glRasterPos2sv,
+  glRasterPos3d,
+  glRasterPos3dv,
+  glRasterPos3f,
+  glRasterPos3fv,
+  glRasterPos3i,
+  glRasterPos3iv,
+  glRasterPos3s,
+  glRasterPos3sv,
+  glRasterPos4d,
+  glRasterPos4dv,
+  glRasterPos4f,
+  glRasterPos4fv,
+  glRasterPos4i,
+  glRasterPos4iv,
+  glRasterPos4s,
+  glRasterPos4sv,
+  glReadBuffer,
+  glReadPixels,
+  glRectd,
+  glRectdv,
+  glRectf,
+  glRectfv,
+  glRecti,
+  glRectiv,
+  glRects,
+  glRectsv,
+  glRenderMode,
+  glRotated,
+  glRotatef,
+  glSampleCoverage,
+  glScaled,
+  glScalef,
+  glScissor,
+  glSecondaryColor3b,
+  glSecondaryColor3bv,
+  glSecondaryColor3d,
+  glSecondaryColor3dv,
+  glSecondaryColor3f,
+  glSecondaryColor3fv,
+  glSecondaryColor3i,
+  glSecondaryColor3iv,
+  glSecondaryColor3s,
+  glSecondaryColor3sv,
+  glSecondaryColor3ub,
+  glSecondaryColor3ubv,
+  glSecondaryColor3ui,
+  glSecondaryColor3uiv,
+  glSecondaryColor3us,
+  glSecondaryColor3usv,
+  glSecondaryColorPointer,
+  glSelectBuffer,
+  glShadeModel,
+  glStencilFunc,
+  glStencilMask,
+  glStencilOp,
+  glTexCoord1d,
+  glTexCoord1dv,
+  glTexCoord1f,
+  glTexCoord1fv,
+  glTexCoord1i,
+  glTexCoord1iv,
+  glTexCoord1s,
+  glTexCoord1sv,
+  glTexCoord2d,
+  glTexCoord2dv,
+  glTexCoord2f,
+  glTexCoord2fv,
+  glTexCoord2i,
+  glTexCoord2iv,
+  glTexCoord2s,
+  glTexCoord2sv,
+  glTexCoord3d,
+  glTexCoord3dv,
+  glTexCoord3f,
+  glTexCoord3fv,
+  glTexCoord3i,
+  glTexCoord3iv,
+  glTexCoord3s,
+  glTexCoord3sv,
+  glTexCoord4d,
+  glTexCoord4dv,
+  glTexCoord4f,
+  glTexCoord4fv,
+  glTexCoord4i,
+  glTexCoord4iv,
+  glTexCoord4s,
+  glTexCoord4sv,
+  glTexCoordPointer,
+  glTexEnvf,
+  glTexEnvfv,
+  glTexEnvi,
+  glTexEnviv,
+  glTexGend,
+  glTexGendv,
+  glTexGenf,
+  glTexGenfv,
+  glTexGeni,
+  glTexGeniv,
+  glTexImage1D,
+  glTexImage2D,
+  glTexImage3D,
+  glTexParameterf,
+  glTexParameterfv,
+  glTexParameteri,
+  glTexParameteriv,
+  glTexSubImage1D,
+  glTexSubImage2D,
+  glTexSubImage3D,
+  glTranslated,
+  glTranslatef,
+  glUnmapBuffer,
+  glVertex2d,
+  glVertex2dv,
+  glVertex2f,
+  glVertex2fv,
+  glVertex2i,
+  glVertex2iv,
+  glVertex2s,
+  glVertex2sv,
+  glVertex3d,
+  glVertex3dv,
+  glVertex3f,
+  glVertex3fv,
+  glVertex3i,
+  glVertex3iv,
+  glVertex3s,
+  glVertex3sv,
+  glVertex4d,
+  glVertex4dv,
+  glVertex4f,
+  glVertex4fv,
+  glVertex4i,
+  glVertex4iv,
+  glVertex4s,
+  glVertex4sv,
+  glVertexPointer,
+  glViewport,
+  glWindowPos2d,
+  glWindowPos2dv,
+  glWindowPos2f,
+  glWindowPos2fv,
+  glWindowPos2i,
+  glWindowPos2iv,
+  glWindowPos2s,
+  glWindowPos2sv,
+  glWindowPos3d,
+  glWindowPos3dv,
+  glWindowPos3f,
+  glWindowPos3fv,
+  glWindowPos3i,
+  glWindowPos3iv,
+  glWindowPos3s,
+  glWindowPos3sv
+) where
+
+import Graphics.GL.Types
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/Version20.hs b/src/Graphics/GL/Version20.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Version20.hs
@@ -0,0 +1,1434 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Version20
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Version20 (
+  -- * Types
+  GLbitfield,
+  GLboolean,
+  GLbyte,
+  GLchar,
+  GLclampd,
+  GLclampf,
+  GLdouble,
+  GLenum,
+  GLfloat,
+  GLint,
+  GLintptr,
+  GLshort,
+  GLsizei,
+  GLsizeiptr,
+  GLubyte,
+  GLuint,
+  GLushort,
+  GLvoid,
+  -- * Enums
+  pattern GL_2D,
+  pattern GL_2_BYTES,
+  pattern GL_3D,
+  pattern GL_3D_COLOR,
+  pattern GL_3D_COLOR_TEXTURE,
+  pattern GL_3_BYTES,
+  pattern GL_4D_COLOR_TEXTURE,
+  pattern GL_4_BYTES,
+  pattern GL_ACCUM,
+  pattern GL_ACCUM_ALPHA_BITS,
+  pattern GL_ACCUM_BLUE_BITS,
+  pattern GL_ACCUM_BUFFER_BIT,
+  pattern GL_ACCUM_CLEAR_VALUE,
+  pattern GL_ACCUM_GREEN_BITS,
+  pattern GL_ACCUM_RED_BITS,
+  pattern GL_ACTIVE_ATTRIBUTES,
+  pattern GL_ACTIVE_ATTRIBUTE_MAX_LENGTH,
+  pattern GL_ACTIVE_TEXTURE,
+  pattern GL_ACTIVE_UNIFORMS,
+  pattern GL_ACTIVE_UNIFORM_MAX_LENGTH,
+  pattern GL_ADD,
+  pattern GL_ADD_SIGNED,
+  pattern GL_ALIASED_LINE_WIDTH_RANGE,
+  pattern GL_ALIASED_POINT_SIZE_RANGE,
+  pattern GL_ALL_ATTRIB_BITS,
+  pattern GL_ALPHA,
+  pattern GL_ALPHA12,
+  pattern GL_ALPHA16,
+  pattern GL_ALPHA4,
+  pattern GL_ALPHA8,
+  pattern GL_ALPHA_BIAS,
+  pattern GL_ALPHA_BITS,
+  pattern GL_ALPHA_SCALE,
+  pattern GL_ALPHA_TEST,
+  pattern GL_ALPHA_TEST_FUNC,
+  pattern GL_ALPHA_TEST_REF,
+  pattern GL_ALWAYS,
+  pattern GL_AMBIENT,
+  pattern GL_AMBIENT_AND_DIFFUSE,
+  pattern GL_AND,
+  pattern GL_AND_INVERTED,
+  pattern GL_AND_REVERSE,
+  pattern GL_ARRAY_BUFFER,
+  pattern GL_ARRAY_BUFFER_BINDING,
+  pattern GL_ATTACHED_SHADERS,
+  pattern GL_ATTRIB_STACK_DEPTH,
+  pattern GL_AUTO_NORMAL,
+  pattern GL_AUX0,
+  pattern GL_AUX1,
+  pattern GL_AUX2,
+  pattern GL_AUX3,
+  pattern GL_AUX_BUFFERS,
+  pattern GL_BACK,
+  pattern GL_BACK_LEFT,
+  pattern GL_BACK_RIGHT,
+  pattern GL_BGR,
+  pattern GL_BGRA,
+  pattern GL_BITMAP,
+  pattern GL_BITMAP_TOKEN,
+  pattern GL_BLEND,
+  pattern GL_BLEND_COLOR,
+  pattern GL_BLEND_DST,
+  pattern GL_BLEND_DST_ALPHA,
+  pattern GL_BLEND_DST_RGB,
+  pattern GL_BLEND_EQUATION,
+  pattern GL_BLEND_EQUATION_ALPHA,
+  pattern GL_BLEND_EQUATION_RGB,
+  pattern GL_BLEND_SRC,
+  pattern GL_BLEND_SRC_ALPHA,
+  pattern GL_BLEND_SRC_RGB,
+  pattern GL_BLUE,
+  pattern GL_BLUE_BIAS,
+  pattern GL_BLUE_BITS,
+  pattern GL_BLUE_SCALE,
+  pattern GL_BOOL,
+  pattern GL_BOOL_VEC2,
+  pattern GL_BOOL_VEC3,
+  pattern GL_BOOL_VEC4,
+  pattern GL_BUFFER_ACCESS,
+  pattern GL_BUFFER_MAPPED,
+  pattern GL_BUFFER_MAP_POINTER,
+  pattern GL_BUFFER_SIZE,
+  pattern GL_BUFFER_USAGE,
+  pattern GL_BYTE,
+  pattern GL_C3F_V3F,
+  pattern GL_C4F_N3F_V3F,
+  pattern GL_C4UB_V2F,
+  pattern GL_C4UB_V3F,
+  pattern GL_CCW,
+  pattern GL_CLAMP,
+  pattern GL_CLAMP_TO_BORDER,
+  pattern GL_CLAMP_TO_EDGE,
+  pattern GL_CLEAR,
+  pattern GL_CLIENT_ACTIVE_TEXTURE,
+  pattern GL_CLIENT_ALL_ATTRIB_BITS,
+  pattern GL_CLIENT_ATTRIB_STACK_DEPTH,
+  pattern GL_CLIENT_PIXEL_STORE_BIT,
+  pattern GL_CLIENT_VERTEX_ARRAY_BIT,
+  pattern GL_CLIP_PLANE0,
+  pattern GL_CLIP_PLANE1,
+  pattern GL_CLIP_PLANE2,
+  pattern GL_CLIP_PLANE3,
+  pattern GL_CLIP_PLANE4,
+  pattern GL_CLIP_PLANE5,
+  pattern GL_COEFF,
+  pattern GL_COLOR,
+  pattern GL_COLOR_ARRAY,
+  pattern GL_COLOR_ARRAY_BUFFER_BINDING,
+  pattern GL_COLOR_ARRAY_POINTER,
+  pattern GL_COLOR_ARRAY_SIZE,
+  pattern GL_COLOR_ARRAY_STRIDE,
+  pattern GL_COLOR_ARRAY_TYPE,
+  pattern GL_COLOR_BUFFER_BIT,
+  pattern GL_COLOR_CLEAR_VALUE,
+  pattern GL_COLOR_INDEX,
+  pattern GL_COLOR_INDEXES,
+  pattern GL_COLOR_LOGIC_OP,
+  pattern GL_COLOR_MATERIAL,
+  pattern GL_COLOR_MATERIAL_FACE,
+  pattern GL_COLOR_MATERIAL_PARAMETER,
+  pattern GL_COLOR_SUM,
+  pattern GL_COLOR_WRITEMASK,
+  pattern GL_COMBINE,
+  pattern GL_COMBINE_ALPHA,
+  pattern GL_COMBINE_RGB,
+  pattern GL_COMPARE_R_TO_TEXTURE,
+  pattern GL_COMPILE,
+  pattern GL_COMPILE_AND_EXECUTE,
+  pattern GL_COMPILE_STATUS,
+  pattern GL_COMPRESSED_ALPHA,
+  pattern GL_COMPRESSED_INTENSITY,
+  pattern GL_COMPRESSED_LUMINANCE,
+  pattern GL_COMPRESSED_LUMINANCE_ALPHA,
+  pattern GL_COMPRESSED_RGB,
+  pattern GL_COMPRESSED_RGBA,
+  pattern GL_COMPRESSED_TEXTURE_FORMATS,
+  pattern GL_CONSTANT,
+  pattern GL_CONSTANT_ALPHA,
+  pattern GL_CONSTANT_ATTENUATION,
+  pattern GL_CONSTANT_COLOR,
+  pattern GL_COORD_REPLACE,
+  pattern GL_COPY,
+  pattern GL_COPY_INVERTED,
+  pattern GL_COPY_PIXEL_TOKEN,
+  pattern GL_CULL_FACE,
+  pattern GL_CULL_FACE_MODE,
+  pattern GL_CURRENT_BIT,
+  pattern GL_CURRENT_COLOR,
+  pattern GL_CURRENT_FOG_COORD,
+  pattern GL_CURRENT_FOG_COORDINATE,
+  pattern GL_CURRENT_INDEX,
+  pattern GL_CURRENT_NORMAL,
+  pattern GL_CURRENT_PROGRAM,
+  pattern GL_CURRENT_QUERY,
+  pattern GL_CURRENT_RASTER_COLOR,
+  pattern GL_CURRENT_RASTER_DISTANCE,
+  pattern GL_CURRENT_RASTER_INDEX,
+  pattern GL_CURRENT_RASTER_POSITION,
+  pattern GL_CURRENT_RASTER_POSITION_VALID,
+  pattern GL_CURRENT_RASTER_TEXTURE_COORDS,
+  pattern GL_CURRENT_SECONDARY_COLOR,
+  pattern GL_CURRENT_TEXTURE_COORDS,
+  pattern GL_CURRENT_VERTEX_ATTRIB,
+  pattern GL_CW,
+  pattern GL_DECAL,
+  pattern GL_DECR,
+  pattern GL_DECR_WRAP,
+  pattern GL_DELETE_STATUS,
+  pattern GL_DEPTH,
+  pattern GL_DEPTH_BIAS,
+  pattern GL_DEPTH_BITS,
+  pattern GL_DEPTH_BUFFER_BIT,
+  pattern GL_DEPTH_CLEAR_VALUE,
+  pattern GL_DEPTH_COMPONENT,
+  pattern GL_DEPTH_COMPONENT16,
+  pattern GL_DEPTH_COMPONENT24,
+  pattern GL_DEPTH_COMPONENT32,
+  pattern GL_DEPTH_FUNC,
+  pattern GL_DEPTH_RANGE,
+  pattern GL_DEPTH_SCALE,
+  pattern GL_DEPTH_TEST,
+  pattern GL_DEPTH_TEXTURE_MODE,
+  pattern GL_DEPTH_WRITEMASK,
+  pattern GL_DIFFUSE,
+  pattern GL_DITHER,
+  pattern GL_DOMAIN,
+  pattern GL_DONT_CARE,
+  pattern GL_DOT3_RGB,
+  pattern GL_DOT3_RGBA,
+  pattern GL_DOUBLE,
+  pattern GL_DOUBLEBUFFER,
+  pattern GL_DRAW_BUFFER,
+  pattern GL_DRAW_BUFFER0,
+  pattern GL_DRAW_BUFFER1,
+  pattern GL_DRAW_BUFFER10,
+  pattern GL_DRAW_BUFFER11,
+  pattern GL_DRAW_BUFFER12,
+  pattern GL_DRAW_BUFFER13,
+  pattern GL_DRAW_BUFFER14,
+  pattern GL_DRAW_BUFFER15,
+  pattern GL_DRAW_BUFFER2,
+  pattern GL_DRAW_BUFFER3,
+  pattern GL_DRAW_BUFFER4,
+  pattern GL_DRAW_BUFFER5,
+  pattern GL_DRAW_BUFFER6,
+  pattern GL_DRAW_BUFFER7,
+  pattern GL_DRAW_BUFFER8,
+  pattern GL_DRAW_BUFFER9,
+  pattern GL_DRAW_PIXEL_TOKEN,
+  pattern GL_DST_ALPHA,
+  pattern GL_DST_COLOR,
+  pattern GL_DYNAMIC_COPY,
+  pattern GL_DYNAMIC_DRAW,
+  pattern GL_DYNAMIC_READ,
+  pattern GL_EDGE_FLAG,
+  pattern GL_EDGE_FLAG_ARRAY,
+  pattern GL_EDGE_FLAG_ARRAY_BUFFER_BINDING,
+  pattern GL_EDGE_FLAG_ARRAY_POINTER,
+  pattern GL_EDGE_FLAG_ARRAY_STRIDE,
+  pattern GL_ELEMENT_ARRAY_BUFFER,
+  pattern GL_ELEMENT_ARRAY_BUFFER_BINDING,
+  pattern GL_EMISSION,
+  pattern GL_ENABLE_BIT,
+  pattern GL_EQUAL,
+  pattern GL_EQUIV,
+  pattern GL_EVAL_BIT,
+  pattern GL_EXP,
+  pattern GL_EXP2,
+  pattern GL_EXTENSIONS,
+  pattern GL_EYE_LINEAR,
+  pattern GL_EYE_PLANE,
+  pattern GL_FALSE,
+  pattern GL_FASTEST,
+  pattern GL_FEEDBACK,
+  pattern GL_FEEDBACK_BUFFER_POINTER,
+  pattern GL_FEEDBACK_BUFFER_SIZE,
+  pattern GL_FEEDBACK_BUFFER_TYPE,
+  pattern GL_FILL,
+  pattern GL_FLAT,
+  pattern GL_FLOAT,
+  pattern GL_FLOAT_MAT2,
+  pattern GL_FLOAT_MAT3,
+  pattern GL_FLOAT_MAT4,
+  pattern GL_FLOAT_VEC2,
+  pattern GL_FLOAT_VEC3,
+  pattern GL_FLOAT_VEC4,
+  pattern GL_FOG,
+  pattern GL_FOG_BIT,
+  pattern GL_FOG_COLOR,
+  pattern GL_FOG_COORD,
+  pattern GL_FOG_COORDINATE,
+  pattern GL_FOG_COORDINATE_ARRAY,
+  pattern GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING,
+  pattern GL_FOG_COORDINATE_ARRAY_POINTER,
+  pattern GL_FOG_COORDINATE_ARRAY_STRIDE,
+  pattern GL_FOG_COORDINATE_ARRAY_TYPE,
+  pattern GL_FOG_COORDINATE_SOURCE,
+  pattern GL_FOG_COORD_ARRAY,
+  pattern GL_FOG_COORD_ARRAY_BUFFER_BINDING,
+  pattern GL_FOG_COORD_ARRAY_POINTER,
+  pattern GL_FOG_COORD_ARRAY_STRIDE,
+  pattern GL_FOG_COORD_ARRAY_TYPE,
+  pattern GL_FOG_COORD_SRC,
+  pattern GL_FOG_DENSITY,
+  pattern GL_FOG_END,
+  pattern GL_FOG_HINT,
+  pattern GL_FOG_INDEX,
+  pattern GL_FOG_MODE,
+  pattern GL_FOG_START,
+  pattern GL_FRAGMENT_DEPTH,
+  pattern GL_FRAGMENT_SHADER,
+  pattern GL_FRAGMENT_SHADER_DERIVATIVE_HINT,
+  pattern GL_FRONT,
+  pattern GL_FRONT_AND_BACK,
+  pattern GL_FRONT_FACE,
+  pattern GL_FRONT_LEFT,
+  pattern GL_FRONT_RIGHT,
+  pattern GL_FUNC_ADD,
+  pattern GL_FUNC_REVERSE_SUBTRACT,
+  pattern GL_FUNC_SUBTRACT,
+  pattern GL_GENERATE_MIPMAP,
+  pattern GL_GENERATE_MIPMAP_HINT,
+  pattern GL_GEQUAL,
+  pattern GL_GREATER,
+  pattern GL_GREEN,
+  pattern GL_GREEN_BIAS,
+  pattern GL_GREEN_BITS,
+  pattern GL_GREEN_SCALE,
+  pattern GL_HINT_BIT,
+  pattern GL_INCR,
+  pattern GL_INCR_WRAP,
+  pattern GL_INDEX_ARRAY,
+  pattern GL_INDEX_ARRAY_BUFFER_BINDING,
+  pattern GL_INDEX_ARRAY_POINTER,
+  pattern GL_INDEX_ARRAY_STRIDE,
+  pattern GL_INDEX_ARRAY_TYPE,
+  pattern GL_INDEX_BITS,
+  pattern GL_INDEX_CLEAR_VALUE,
+  pattern GL_INDEX_LOGIC_OP,
+  pattern GL_INDEX_MODE,
+  pattern GL_INDEX_OFFSET,
+  pattern GL_INDEX_SHIFT,
+  pattern GL_INDEX_WRITEMASK,
+  pattern GL_INFO_LOG_LENGTH,
+  pattern GL_INT,
+  pattern GL_INTENSITY,
+  pattern GL_INTENSITY12,
+  pattern GL_INTENSITY16,
+  pattern GL_INTENSITY4,
+  pattern GL_INTENSITY8,
+  pattern GL_INTERPOLATE,
+  pattern GL_INT_VEC2,
+  pattern GL_INT_VEC3,
+  pattern GL_INT_VEC4,
+  pattern GL_INVALID_ENUM,
+  pattern GL_INVALID_OPERATION,
+  pattern GL_INVALID_VALUE,
+  pattern GL_INVERT,
+  pattern GL_KEEP,
+  pattern GL_LEFT,
+  pattern GL_LEQUAL,
+  pattern GL_LESS,
+  pattern GL_LIGHT0,
+  pattern GL_LIGHT1,
+  pattern GL_LIGHT2,
+  pattern GL_LIGHT3,
+  pattern GL_LIGHT4,
+  pattern GL_LIGHT5,
+  pattern GL_LIGHT6,
+  pattern GL_LIGHT7,
+  pattern GL_LIGHTING,
+  pattern GL_LIGHTING_BIT,
+  pattern GL_LIGHT_MODEL_AMBIENT,
+  pattern GL_LIGHT_MODEL_COLOR_CONTROL,
+  pattern GL_LIGHT_MODEL_LOCAL_VIEWER,
+  pattern GL_LIGHT_MODEL_TWO_SIDE,
+  pattern GL_LINE,
+  pattern GL_LINEAR,
+  pattern GL_LINEAR_ATTENUATION,
+  pattern GL_LINEAR_MIPMAP_LINEAR,
+  pattern GL_LINEAR_MIPMAP_NEAREST,
+  pattern GL_LINES,
+  pattern GL_LINE_BIT,
+  pattern GL_LINE_LOOP,
+  pattern GL_LINE_RESET_TOKEN,
+  pattern GL_LINE_SMOOTH,
+  pattern GL_LINE_SMOOTH_HINT,
+  pattern GL_LINE_STIPPLE,
+  pattern GL_LINE_STIPPLE_PATTERN,
+  pattern GL_LINE_STIPPLE_REPEAT,
+  pattern GL_LINE_STRIP,
+  pattern GL_LINE_TOKEN,
+  pattern GL_LINE_WIDTH,
+  pattern GL_LINE_WIDTH_GRANULARITY,
+  pattern GL_LINE_WIDTH_RANGE,
+  pattern GL_LINK_STATUS,
+  pattern GL_LIST_BASE,
+  pattern GL_LIST_BIT,
+  pattern GL_LIST_INDEX,
+  pattern GL_LIST_MODE,
+  pattern GL_LOAD,
+  pattern GL_LOGIC_OP,
+  pattern GL_LOGIC_OP_MODE,
+  pattern GL_LOWER_LEFT,
+  pattern GL_LUMINANCE,
+  pattern GL_LUMINANCE12,
+  pattern GL_LUMINANCE12_ALPHA12,
+  pattern GL_LUMINANCE12_ALPHA4,
+  pattern GL_LUMINANCE16,
+  pattern GL_LUMINANCE16_ALPHA16,
+  pattern GL_LUMINANCE4,
+  pattern GL_LUMINANCE4_ALPHA4,
+  pattern GL_LUMINANCE6_ALPHA2,
+  pattern GL_LUMINANCE8,
+  pattern GL_LUMINANCE8_ALPHA8,
+  pattern GL_LUMINANCE_ALPHA,
+  pattern GL_MAP1_COLOR_4,
+  pattern GL_MAP1_GRID_DOMAIN,
+  pattern GL_MAP1_GRID_SEGMENTS,
+  pattern GL_MAP1_INDEX,
+  pattern GL_MAP1_NORMAL,
+  pattern GL_MAP1_TEXTURE_COORD_1,
+  pattern GL_MAP1_TEXTURE_COORD_2,
+  pattern GL_MAP1_TEXTURE_COORD_3,
+  pattern GL_MAP1_TEXTURE_COORD_4,
+  pattern GL_MAP1_VERTEX_3,
+  pattern GL_MAP1_VERTEX_4,
+  pattern GL_MAP2_COLOR_4,
+  pattern GL_MAP2_GRID_DOMAIN,
+  pattern GL_MAP2_GRID_SEGMENTS,
+  pattern GL_MAP2_INDEX,
+  pattern GL_MAP2_NORMAL,
+  pattern GL_MAP2_TEXTURE_COORD_1,
+  pattern GL_MAP2_TEXTURE_COORD_2,
+  pattern GL_MAP2_TEXTURE_COORD_3,
+  pattern GL_MAP2_TEXTURE_COORD_4,
+  pattern GL_MAP2_VERTEX_3,
+  pattern GL_MAP2_VERTEX_4,
+  pattern GL_MAP_COLOR,
+  pattern GL_MAP_STENCIL,
+  pattern GL_MATRIX_MODE,
+  pattern GL_MAX,
+  pattern GL_MAX_3D_TEXTURE_SIZE,
+  pattern GL_MAX_ATTRIB_STACK_DEPTH,
+  pattern GL_MAX_CLIENT_ATTRIB_STACK_DEPTH,
+  pattern GL_MAX_CLIP_PLANES,
+  pattern GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE,
+  pattern GL_MAX_DRAW_BUFFERS,
+  pattern GL_MAX_ELEMENTS_INDICES,
+  pattern GL_MAX_ELEMENTS_VERTICES,
+  pattern GL_MAX_EVAL_ORDER,
+  pattern GL_MAX_FRAGMENT_UNIFORM_COMPONENTS,
+  pattern GL_MAX_LIGHTS,
+  pattern GL_MAX_LIST_NESTING,
+  pattern GL_MAX_MODELVIEW_STACK_DEPTH,
+  pattern GL_MAX_NAME_STACK_DEPTH,
+  pattern GL_MAX_PIXEL_MAP_TABLE,
+  pattern GL_MAX_PROJECTION_STACK_DEPTH,
+  pattern GL_MAX_TEXTURE_COORDS,
+  pattern GL_MAX_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_TEXTURE_LOD_BIAS,
+  pattern GL_MAX_TEXTURE_SIZE,
+  pattern GL_MAX_TEXTURE_STACK_DEPTH,
+  pattern GL_MAX_TEXTURE_UNITS,
+  pattern GL_MAX_VARYING_FLOATS,
+  pattern GL_MAX_VERTEX_ATTRIBS,
+  pattern GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_VERTEX_UNIFORM_COMPONENTS,
+  pattern GL_MAX_VIEWPORT_DIMS,
+  pattern GL_MIN,
+  pattern GL_MIRRORED_REPEAT,
+  pattern GL_MODELVIEW,
+  pattern GL_MODELVIEW_MATRIX,
+  pattern GL_MODELVIEW_STACK_DEPTH,
+  pattern GL_MODULATE,
+  pattern GL_MULT,
+  pattern GL_MULTISAMPLE,
+  pattern GL_MULTISAMPLE_BIT,
+  pattern GL_N3F_V3F,
+  pattern GL_NAME_STACK_DEPTH,
+  pattern GL_NAND,
+  pattern GL_NEAREST,
+  pattern GL_NEAREST_MIPMAP_LINEAR,
+  pattern GL_NEAREST_MIPMAP_NEAREST,
+  pattern GL_NEVER,
+  pattern GL_NICEST,
+  pattern GL_NONE,
+  pattern GL_NOOP,
+  pattern GL_NOR,
+  pattern GL_NORMALIZE,
+  pattern GL_NORMAL_ARRAY,
+  pattern GL_NORMAL_ARRAY_BUFFER_BINDING,
+  pattern GL_NORMAL_ARRAY_POINTER,
+  pattern GL_NORMAL_ARRAY_STRIDE,
+  pattern GL_NORMAL_ARRAY_TYPE,
+  pattern GL_NORMAL_MAP,
+  pattern GL_NOTEQUAL,
+  pattern GL_NO_ERROR,
+  pattern GL_NUM_COMPRESSED_TEXTURE_FORMATS,
+  pattern GL_OBJECT_LINEAR,
+  pattern GL_OBJECT_PLANE,
+  pattern GL_ONE,
+  pattern GL_ONE_MINUS_CONSTANT_ALPHA,
+  pattern GL_ONE_MINUS_CONSTANT_COLOR,
+  pattern GL_ONE_MINUS_DST_ALPHA,
+  pattern GL_ONE_MINUS_DST_COLOR,
+  pattern GL_ONE_MINUS_SRC_ALPHA,
+  pattern GL_ONE_MINUS_SRC_COLOR,
+  pattern GL_OPERAND0_ALPHA,
+  pattern GL_OPERAND0_RGB,
+  pattern GL_OPERAND1_ALPHA,
+  pattern GL_OPERAND1_RGB,
+  pattern GL_OPERAND2_ALPHA,
+  pattern GL_OPERAND2_RGB,
+  pattern GL_OR,
+  pattern GL_ORDER,
+  pattern GL_OR_INVERTED,
+  pattern GL_OR_REVERSE,
+  pattern GL_OUT_OF_MEMORY,
+  pattern GL_PACK_ALIGNMENT,
+  pattern GL_PACK_IMAGE_HEIGHT,
+  pattern GL_PACK_LSB_FIRST,
+  pattern GL_PACK_ROW_LENGTH,
+  pattern GL_PACK_SKIP_IMAGES,
+  pattern GL_PACK_SKIP_PIXELS,
+  pattern GL_PACK_SKIP_ROWS,
+  pattern GL_PACK_SWAP_BYTES,
+  pattern GL_PASS_THROUGH_TOKEN,
+  pattern GL_PERSPECTIVE_CORRECTION_HINT,
+  pattern GL_PIXEL_MAP_A_TO_A,
+  pattern GL_PIXEL_MAP_A_TO_A_SIZE,
+  pattern GL_PIXEL_MAP_B_TO_B,
+  pattern GL_PIXEL_MAP_B_TO_B_SIZE,
+  pattern GL_PIXEL_MAP_G_TO_G,
+  pattern GL_PIXEL_MAP_G_TO_G_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_A,
+  pattern GL_PIXEL_MAP_I_TO_A_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_B,
+  pattern GL_PIXEL_MAP_I_TO_B_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_G,
+  pattern GL_PIXEL_MAP_I_TO_G_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_I,
+  pattern GL_PIXEL_MAP_I_TO_I_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_R,
+  pattern GL_PIXEL_MAP_I_TO_R_SIZE,
+  pattern GL_PIXEL_MAP_R_TO_R,
+  pattern GL_PIXEL_MAP_R_TO_R_SIZE,
+  pattern GL_PIXEL_MAP_S_TO_S,
+  pattern GL_PIXEL_MAP_S_TO_S_SIZE,
+  pattern GL_PIXEL_MODE_BIT,
+  pattern GL_POINT,
+  pattern GL_POINTS,
+  pattern GL_POINT_BIT,
+  pattern GL_POINT_DISTANCE_ATTENUATION,
+  pattern GL_POINT_FADE_THRESHOLD_SIZE,
+  pattern GL_POINT_SIZE,
+  pattern GL_POINT_SIZE_GRANULARITY,
+  pattern GL_POINT_SIZE_MAX,
+  pattern GL_POINT_SIZE_MIN,
+  pattern GL_POINT_SIZE_RANGE,
+  pattern GL_POINT_SMOOTH,
+  pattern GL_POINT_SMOOTH_HINT,
+  pattern GL_POINT_SPRITE,
+  pattern GL_POINT_SPRITE_COORD_ORIGIN,
+  pattern GL_POINT_TOKEN,
+  pattern GL_POLYGON,
+  pattern GL_POLYGON_BIT,
+  pattern GL_POLYGON_MODE,
+  pattern GL_POLYGON_OFFSET_FACTOR,
+  pattern GL_POLYGON_OFFSET_FILL,
+  pattern GL_POLYGON_OFFSET_LINE,
+  pattern GL_POLYGON_OFFSET_POINT,
+  pattern GL_POLYGON_OFFSET_UNITS,
+  pattern GL_POLYGON_SMOOTH,
+  pattern GL_POLYGON_SMOOTH_HINT,
+  pattern GL_POLYGON_STIPPLE,
+  pattern GL_POLYGON_STIPPLE_BIT,
+  pattern GL_POLYGON_TOKEN,
+  pattern GL_POSITION,
+  pattern GL_PREVIOUS,
+  pattern GL_PRIMARY_COLOR,
+  pattern GL_PROJECTION,
+  pattern GL_PROJECTION_MATRIX,
+  pattern GL_PROJECTION_STACK_DEPTH,
+  pattern GL_PROXY_TEXTURE_1D,
+  pattern GL_PROXY_TEXTURE_2D,
+  pattern GL_PROXY_TEXTURE_3D,
+  pattern GL_PROXY_TEXTURE_CUBE_MAP,
+  pattern GL_Q,
+  pattern GL_QUADRATIC_ATTENUATION,
+  pattern GL_QUADS,
+  pattern GL_QUAD_STRIP,
+  pattern GL_QUERY_COUNTER_BITS,
+  pattern GL_QUERY_RESULT,
+  pattern GL_QUERY_RESULT_AVAILABLE,
+  pattern GL_R,
+  pattern GL_R3_G3_B2,
+  pattern GL_READ_BUFFER,
+  pattern GL_READ_ONLY,
+  pattern GL_READ_WRITE,
+  pattern GL_RED,
+  pattern GL_RED_BIAS,
+  pattern GL_RED_BITS,
+  pattern GL_RED_SCALE,
+  pattern GL_REFLECTION_MAP,
+  pattern GL_RENDER,
+  pattern GL_RENDERER,
+  pattern GL_RENDER_MODE,
+  pattern GL_REPEAT,
+  pattern GL_REPLACE,
+  pattern GL_RESCALE_NORMAL,
+  pattern GL_RETURN,
+  pattern GL_RGB,
+  pattern GL_RGB10,
+  pattern GL_RGB10_A2,
+  pattern GL_RGB12,
+  pattern GL_RGB16,
+  pattern GL_RGB4,
+  pattern GL_RGB5,
+  pattern GL_RGB5_A1,
+  pattern GL_RGB8,
+  pattern GL_RGBA,
+  pattern GL_RGBA12,
+  pattern GL_RGBA16,
+  pattern GL_RGBA2,
+  pattern GL_RGBA4,
+  pattern GL_RGBA8,
+  pattern GL_RGBA_MODE,
+  pattern GL_RGB_SCALE,
+  pattern GL_RIGHT,
+  pattern GL_S,
+  pattern GL_SAMPLER_1D,
+  pattern GL_SAMPLER_1D_SHADOW,
+  pattern GL_SAMPLER_2D,
+  pattern GL_SAMPLER_2D_SHADOW,
+  pattern GL_SAMPLER_3D,
+  pattern GL_SAMPLER_CUBE,
+  pattern GL_SAMPLES,
+  pattern GL_SAMPLES_PASSED,
+  pattern GL_SAMPLE_ALPHA_TO_COVERAGE,
+  pattern GL_SAMPLE_ALPHA_TO_ONE,
+  pattern GL_SAMPLE_BUFFERS,
+  pattern GL_SAMPLE_COVERAGE,
+  pattern GL_SAMPLE_COVERAGE_INVERT,
+  pattern GL_SAMPLE_COVERAGE_VALUE,
+  pattern GL_SCISSOR_BIT,
+  pattern GL_SCISSOR_BOX,
+  pattern GL_SCISSOR_TEST,
+  pattern GL_SECONDARY_COLOR_ARRAY,
+  pattern GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING,
+  pattern GL_SECONDARY_COLOR_ARRAY_POINTER,
+  pattern GL_SECONDARY_COLOR_ARRAY_SIZE,
+  pattern GL_SECONDARY_COLOR_ARRAY_STRIDE,
+  pattern GL_SECONDARY_COLOR_ARRAY_TYPE,
+  pattern GL_SELECT,
+  pattern GL_SELECTION_BUFFER_POINTER,
+  pattern GL_SELECTION_BUFFER_SIZE,
+  pattern GL_SEPARATE_SPECULAR_COLOR,
+  pattern GL_SET,
+  pattern GL_SHADER_SOURCE_LENGTH,
+  pattern GL_SHADER_TYPE,
+  pattern GL_SHADE_MODEL,
+  pattern GL_SHADING_LANGUAGE_VERSION,
+  pattern GL_SHININESS,
+  pattern GL_SHORT,
+  pattern GL_SINGLE_COLOR,
+  pattern GL_SMOOTH,
+  pattern GL_SMOOTH_LINE_WIDTH_GRANULARITY,
+  pattern GL_SMOOTH_LINE_WIDTH_RANGE,
+  pattern GL_SMOOTH_POINT_SIZE_GRANULARITY,
+  pattern GL_SMOOTH_POINT_SIZE_RANGE,
+  pattern GL_SOURCE0_ALPHA,
+  pattern GL_SOURCE0_RGB,
+  pattern GL_SOURCE1_ALPHA,
+  pattern GL_SOURCE1_RGB,
+  pattern GL_SOURCE2_ALPHA,
+  pattern GL_SOURCE2_RGB,
+  pattern GL_SPECULAR,
+  pattern GL_SPHERE_MAP,
+  pattern GL_SPOT_CUTOFF,
+  pattern GL_SPOT_DIRECTION,
+  pattern GL_SPOT_EXPONENT,
+  pattern GL_SRC0_ALPHA,
+  pattern GL_SRC0_RGB,
+  pattern GL_SRC1_ALPHA,
+  pattern GL_SRC1_RGB,
+  pattern GL_SRC2_ALPHA,
+  pattern GL_SRC2_RGB,
+  pattern GL_SRC_ALPHA,
+  pattern GL_SRC_ALPHA_SATURATE,
+  pattern GL_SRC_COLOR,
+  pattern GL_STACK_OVERFLOW,
+  pattern GL_STACK_UNDERFLOW,
+  pattern GL_STATIC_COPY,
+  pattern GL_STATIC_DRAW,
+  pattern GL_STATIC_READ,
+  pattern GL_STENCIL,
+  pattern GL_STENCIL_BACK_FAIL,
+  pattern GL_STENCIL_BACK_FUNC,
+  pattern GL_STENCIL_BACK_PASS_DEPTH_FAIL,
+  pattern GL_STENCIL_BACK_PASS_DEPTH_PASS,
+  pattern GL_STENCIL_BACK_REF,
+  pattern GL_STENCIL_BACK_VALUE_MASK,
+  pattern GL_STENCIL_BACK_WRITEMASK,
+  pattern GL_STENCIL_BITS,
+  pattern GL_STENCIL_BUFFER_BIT,
+  pattern GL_STENCIL_CLEAR_VALUE,
+  pattern GL_STENCIL_FAIL,
+  pattern GL_STENCIL_FUNC,
+  pattern GL_STENCIL_INDEX,
+  pattern GL_STENCIL_PASS_DEPTH_FAIL,
+  pattern GL_STENCIL_PASS_DEPTH_PASS,
+  pattern GL_STENCIL_REF,
+  pattern GL_STENCIL_TEST,
+  pattern GL_STENCIL_VALUE_MASK,
+  pattern GL_STENCIL_WRITEMASK,
+  pattern GL_STEREO,
+  pattern GL_STREAM_COPY,
+  pattern GL_STREAM_DRAW,
+  pattern GL_STREAM_READ,
+  pattern GL_SUBPIXEL_BITS,
+  pattern GL_SUBTRACT,
+  pattern GL_T,
+  pattern GL_T2F_C3F_V3F,
+  pattern GL_T2F_C4F_N3F_V3F,
+  pattern GL_T2F_C4UB_V3F,
+  pattern GL_T2F_N3F_V3F,
+  pattern GL_T2F_V3F,
+  pattern GL_T4F_C4F_N3F_V4F,
+  pattern GL_T4F_V4F,
+  pattern GL_TEXTURE,
+  pattern GL_TEXTURE0,
+  pattern GL_TEXTURE1,
+  pattern GL_TEXTURE10,
+  pattern GL_TEXTURE11,
+  pattern GL_TEXTURE12,
+  pattern GL_TEXTURE13,
+  pattern GL_TEXTURE14,
+  pattern GL_TEXTURE15,
+  pattern GL_TEXTURE16,
+  pattern GL_TEXTURE17,
+  pattern GL_TEXTURE18,
+  pattern GL_TEXTURE19,
+  pattern GL_TEXTURE2,
+  pattern GL_TEXTURE20,
+  pattern GL_TEXTURE21,
+  pattern GL_TEXTURE22,
+  pattern GL_TEXTURE23,
+  pattern GL_TEXTURE24,
+  pattern GL_TEXTURE25,
+  pattern GL_TEXTURE26,
+  pattern GL_TEXTURE27,
+  pattern GL_TEXTURE28,
+  pattern GL_TEXTURE29,
+  pattern GL_TEXTURE3,
+  pattern GL_TEXTURE30,
+  pattern GL_TEXTURE31,
+  pattern GL_TEXTURE4,
+  pattern GL_TEXTURE5,
+  pattern GL_TEXTURE6,
+  pattern GL_TEXTURE7,
+  pattern GL_TEXTURE8,
+  pattern GL_TEXTURE9,
+  pattern GL_TEXTURE_1D,
+  pattern GL_TEXTURE_2D,
+  pattern GL_TEXTURE_3D,
+  pattern GL_TEXTURE_ALPHA_SIZE,
+  pattern GL_TEXTURE_BASE_LEVEL,
+  pattern GL_TEXTURE_BINDING_1D,
+  pattern GL_TEXTURE_BINDING_2D,
+  pattern GL_TEXTURE_BINDING_3D,
+  pattern GL_TEXTURE_BINDING_CUBE_MAP,
+  pattern GL_TEXTURE_BIT,
+  pattern GL_TEXTURE_BLUE_SIZE,
+  pattern GL_TEXTURE_BORDER,
+  pattern GL_TEXTURE_BORDER_COLOR,
+  pattern GL_TEXTURE_COMPARE_FUNC,
+  pattern GL_TEXTURE_COMPARE_MODE,
+  pattern GL_TEXTURE_COMPONENTS,
+  pattern GL_TEXTURE_COMPRESSED,
+  pattern GL_TEXTURE_COMPRESSED_IMAGE_SIZE,
+  pattern GL_TEXTURE_COMPRESSION_HINT,
+  pattern GL_TEXTURE_COORD_ARRAY,
+  pattern GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING,
+  pattern GL_TEXTURE_COORD_ARRAY_POINTER,
+  pattern GL_TEXTURE_COORD_ARRAY_SIZE,
+  pattern GL_TEXTURE_COORD_ARRAY_STRIDE,
+  pattern GL_TEXTURE_COORD_ARRAY_TYPE,
+  pattern GL_TEXTURE_CUBE_MAP,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z,
+  pattern GL_TEXTURE_DEPTH,
+  pattern GL_TEXTURE_DEPTH_SIZE,
+  pattern GL_TEXTURE_ENV,
+  pattern GL_TEXTURE_ENV_COLOR,
+  pattern GL_TEXTURE_ENV_MODE,
+  pattern GL_TEXTURE_FILTER_CONTROL,
+  pattern GL_TEXTURE_GEN_MODE,
+  pattern GL_TEXTURE_GEN_Q,
+  pattern GL_TEXTURE_GEN_R,
+  pattern GL_TEXTURE_GEN_S,
+  pattern GL_TEXTURE_GEN_T,
+  pattern GL_TEXTURE_GREEN_SIZE,
+  pattern GL_TEXTURE_HEIGHT,
+  pattern GL_TEXTURE_INTENSITY_SIZE,
+  pattern GL_TEXTURE_INTERNAL_FORMAT,
+  pattern GL_TEXTURE_LOD_BIAS,
+  pattern GL_TEXTURE_LUMINANCE_SIZE,
+  pattern GL_TEXTURE_MAG_FILTER,
+  pattern GL_TEXTURE_MATRIX,
+  pattern GL_TEXTURE_MAX_LEVEL,
+  pattern GL_TEXTURE_MAX_LOD,
+  pattern GL_TEXTURE_MIN_FILTER,
+  pattern GL_TEXTURE_MIN_LOD,
+  pattern GL_TEXTURE_PRIORITY,
+  pattern GL_TEXTURE_RED_SIZE,
+  pattern GL_TEXTURE_RESIDENT,
+  pattern GL_TEXTURE_STACK_DEPTH,
+  pattern GL_TEXTURE_WIDTH,
+  pattern GL_TEXTURE_WRAP_R,
+  pattern GL_TEXTURE_WRAP_S,
+  pattern GL_TEXTURE_WRAP_T,
+  pattern GL_TRANSFORM_BIT,
+  pattern GL_TRANSPOSE_COLOR_MATRIX,
+  pattern GL_TRANSPOSE_MODELVIEW_MATRIX,
+  pattern GL_TRANSPOSE_PROJECTION_MATRIX,
+  pattern GL_TRANSPOSE_TEXTURE_MATRIX,
+  pattern GL_TRIANGLES,
+  pattern GL_TRIANGLE_FAN,
+  pattern GL_TRIANGLE_STRIP,
+  pattern GL_TRUE,
+  pattern GL_UNPACK_ALIGNMENT,
+  pattern GL_UNPACK_IMAGE_HEIGHT,
+  pattern GL_UNPACK_LSB_FIRST,
+  pattern GL_UNPACK_ROW_LENGTH,
+  pattern GL_UNPACK_SKIP_IMAGES,
+  pattern GL_UNPACK_SKIP_PIXELS,
+  pattern GL_UNPACK_SKIP_ROWS,
+  pattern GL_UNPACK_SWAP_BYTES,
+  pattern GL_UNSIGNED_BYTE,
+  pattern GL_UNSIGNED_BYTE_2_3_3_REV,
+  pattern GL_UNSIGNED_BYTE_3_3_2,
+  pattern GL_UNSIGNED_INT,
+  pattern GL_UNSIGNED_INT_10_10_10_2,
+  pattern GL_UNSIGNED_INT_2_10_10_10_REV,
+  pattern GL_UNSIGNED_INT_8_8_8_8,
+  pattern GL_UNSIGNED_INT_8_8_8_8_REV,
+  pattern GL_UNSIGNED_SHORT,
+  pattern GL_UNSIGNED_SHORT_1_5_5_5_REV,
+  pattern GL_UNSIGNED_SHORT_4_4_4_4,
+  pattern GL_UNSIGNED_SHORT_4_4_4_4_REV,
+  pattern GL_UNSIGNED_SHORT_5_5_5_1,
+  pattern GL_UNSIGNED_SHORT_5_6_5,
+  pattern GL_UNSIGNED_SHORT_5_6_5_REV,
+  pattern GL_UPPER_LEFT,
+  pattern GL_V2F,
+  pattern GL_V3F,
+  pattern GL_VALIDATE_STATUS,
+  pattern GL_VENDOR,
+  pattern GL_VERSION,
+  pattern GL_VERTEX_ARRAY,
+  pattern GL_VERTEX_ARRAY_BUFFER_BINDING,
+  pattern GL_VERTEX_ARRAY_POINTER,
+  pattern GL_VERTEX_ARRAY_SIZE,
+  pattern GL_VERTEX_ARRAY_STRIDE,
+  pattern GL_VERTEX_ARRAY_TYPE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING,
+  pattern GL_VERTEX_ATTRIB_ARRAY_ENABLED,
+  pattern GL_VERTEX_ATTRIB_ARRAY_NORMALIZED,
+  pattern GL_VERTEX_ATTRIB_ARRAY_POINTER,
+  pattern GL_VERTEX_ATTRIB_ARRAY_SIZE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_STRIDE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_TYPE,
+  pattern GL_VERTEX_PROGRAM_POINT_SIZE,
+  pattern GL_VERTEX_PROGRAM_TWO_SIDE,
+  pattern GL_VERTEX_SHADER,
+  pattern GL_VIEWPORT,
+  pattern GL_VIEWPORT_BIT,
+  pattern GL_WEIGHT_ARRAY_BUFFER_BINDING,
+  pattern GL_WRITE_ONLY,
+  pattern GL_XOR,
+  pattern GL_ZERO,
+  pattern GL_ZOOM_X,
+  pattern GL_ZOOM_Y,
+  -- * Functions
+  glAccum,
+  glActiveTexture,
+  glAlphaFunc,
+  glAreTexturesResident,
+  glArrayElement,
+  glAttachShader,
+  glBegin,
+  glBeginQuery,
+  glBindAttribLocation,
+  glBindBuffer,
+  glBindTexture,
+  glBitmap,
+  glBlendColor,
+  glBlendEquation,
+  glBlendEquationSeparate,
+  glBlendFunc,
+  glBlendFuncSeparate,
+  glBufferData,
+  glBufferSubData,
+  glCallList,
+  glCallLists,
+  glClear,
+  glClearAccum,
+  glClearColor,
+  glClearDepth,
+  glClearIndex,
+  glClearStencil,
+  glClientActiveTexture,
+  glClipPlane,
+  glColor3b,
+  glColor3bv,
+  glColor3d,
+  glColor3dv,
+  glColor3f,
+  glColor3fv,
+  glColor3i,
+  glColor3iv,
+  glColor3s,
+  glColor3sv,
+  glColor3ub,
+  glColor3ubv,
+  glColor3ui,
+  glColor3uiv,
+  glColor3us,
+  glColor3usv,
+  glColor4b,
+  glColor4bv,
+  glColor4d,
+  glColor4dv,
+  glColor4f,
+  glColor4fv,
+  glColor4i,
+  glColor4iv,
+  glColor4s,
+  glColor4sv,
+  glColor4ub,
+  glColor4ubv,
+  glColor4ui,
+  glColor4uiv,
+  glColor4us,
+  glColor4usv,
+  glColorMask,
+  glColorMaterial,
+  glColorPointer,
+  glCompileShader,
+  glCompressedTexImage1D,
+  glCompressedTexImage2D,
+  glCompressedTexImage3D,
+  glCompressedTexSubImage1D,
+  glCompressedTexSubImage2D,
+  glCompressedTexSubImage3D,
+  glCopyPixels,
+  glCopyTexImage1D,
+  glCopyTexImage2D,
+  glCopyTexSubImage1D,
+  glCopyTexSubImage2D,
+  glCopyTexSubImage3D,
+  glCreateProgram,
+  glCreateShader,
+  glCullFace,
+  glDeleteBuffers,
+  glDeleteLists,
+  glDeleteProgram,
+  glDeleteQueries,
+  glDeleteShader,
+  glDeleteTextures,
+  glDepthFunc,
+  glDepthMask,
+  glDepthRange,
+  glDetachShader,
+  glDisable,
+  glDisableClientState,
+  glDisableVertexAttribArray,
+  glDrawArrays,
+  glDrawBuffer,
+  glDrawBuffers,
+  glDrawElements,
+  glDrawPixels,
+  glDrawRangeElements,
+  glEdgeFlag,
+  glEdgeFlagPointer,
+  glEdgeFlagv,
+  glEnable,
+  glEnableClientState,
+  glEnableVertexAttribArray,
+  glEnd,
+  glEndList,
+  glEndQuery,
+  glEvalCoord1d,
+  glEvalCoord1dv,
+  glEvalCoord1f,
+  glEvalCoord1fv,
+  glEvalCoord2d,
+  glEvalCoord2dv,
+  glEvalCoord2f,
+  glEvalCoord2fv,
+  glEvalMesh1,
+  glEvalMesh2,
+  glEvalPoint1,
+  glEvalPoint2,
+  glFeedbackBuffer,
+  glFinish,
+  glFlush,
+  glFogCoordPointer,
+  glFogCoordd,
+  glFogCoorddv,
+  glFogCoordf,
+  glFogCoordfv,
+  glFogf,
+  glFogfv,
+  glFogi,
+  glFogiv,
+  glFrontFace,
+  glFrustum,
+  glGenBuffers,
+  glGenLists,
+  glGenQueries,
+  glGenTextures,
+  glGetActiveAttrib,
+  glGetActiveUniform,
+  glGetAttachedShaders,
+  glGetAttribLocation,
+  glGetBooleanv,
+  glGetBufferParameteriv,
+  glGetBufferPointerv,
+  glGetBufferSubData,
+  glGetClipPlane,
+  glGetCompressedTexImage,
+  glGetDoublev,
+  glGetError,
+  glGetFloatv,
+  glGetIntegerv,
+  glGetLightfv,
+  glGetLightiv,
+  glGetMapdv,
+  glGetMapfv,
+  glGetMapiv,
+  glGetMaterialfv,
+  glGetMaterialiv,
+  glGetPixelMapfv,
+  glGetPixelMapuiv,
+  glGetPixelMapusv,
+  glGetPointerv,
+  glGetPolygonStipple,
+  glGetProgramInfoLog,
+  glGetProgramiv,
+  glGetQueryObjectiv,
+  glGetQueryObjectuiv,
+  glGetQueryiv,
+  glGetShaderInfoLog,
+  glGetShaderSource,
+  glGetShaderiv,
+  glGetString,
+  glGetTexEnvfv,
+  glGetTexEnviv,
+  glGetTexGendv,
+  glGetTexGenfv,
+  glGetTexGeniv,
+  glGetTexImage,
+  glGetTexLevelParameterfv,
+  glGetTexLevelParameteriv,
+  glGetTexParameterfv,
+  glGetTexParameteriv,
+  glGetUniformLocation,
+  glGetUniformfv,
+  glGetUniformiv,
+  glGetVertexAttribPointerv,
+  glGetVertexAttribdv,
+  glGetVertexAttribfv,
+  glGetVertexAttribiv,
+  glHint,
+  glIndexMask,
+  glIndexPointer,
+  glIndexd,
+  glIndexdv,
+  glIndexf,
+  glIndexfv,
+  glIndexi,
+  glIndexiv,
+  glIndexs,
+  glIndexsv,
+  glIndexub,
+  glIndexubv,
+  glInitNames,
+  glInterleavedArrays,
+  glIsBuffer,
+  glIsEnabled,
+  glIsList,
+  glIsProgram,
+  glIsQuery,
+  glIsShader,
+  glIsTexture,
+  glLightModelf,
+  glLightModelfv,
+  glLightModeli,
+  glLightModeliv,
+  glLightf,
+  glLightfv,
+  glLighti,
+  glLightiv,
+  glLineStipple,
+  glLineWidth,
+  glLinkProgram,
+  glListBase,
+  glLoadIdentity,
+  glLoadMatrixd,
+  glLoadMatrixf,
+  glLoadName,
+  glLoadTransposeMatrixd,
+  glLoadTransposeMatrixf,
+  glLogicOp,
+  glMap1d,
+  glMap1f,
+  glMap2d,
+  glMap2f,
+  glMapBuffer,
+  glMapGrid1d,
+  glMapGrid1f,
+  glMapGrid2d,
+  glMapGrid2f,
+  glMaterialf,
+  glMaterialfv,
+  glMateriali,
+  glMaterialiv,
+  glMatrixMode,
+  glMultMatrixd,
+  glMultMatrixf,
+  glMultTransposeMatrixd,
+  glMultTransposeMatrixf,
+  glMultiDrawArrays,
+  glMultiDrawElements,
+  glMultiTexCoord1d,
+  glMultiTexCoord1dv,
+  glMultiTexCoord1f,
+  glMultiTexCoord1fv,
+  glMultiTexCoord1i,
+  glMultiTexCoord1iv,
+  glMultiTexCoord1s,
+  glMultiTexCoord1sv,
+  glMultiTexCoord2d,
+  glMultiTexCoord2dv,
+  glMultiTexCoord2f,
+  glMultiTexCoord2fv,
+  glMultiTexCoord2i,
+  glMultiTexCoord2iv,
+  glMultiTexCoord2s,
+  glMultiTexCoord2sv,
+  glMultiTexCoord3d,
+  glMultiTexCoord3dv,
+  glMultiTexCoord3f,
+  glMultiTexCoord3fv,
+  glMultiTexCoord3i,
+  glMultiTexCoord3iv,
+  glMultiTexCoord3s,
+  glMultiTexCoord3sv,
+  glMultiTexCoord4d,
+  glMultiTexCoord4dv,
+  glMultiTexCoord4f,
+  glMultiTexCoord4fv,
+  glMultiTexCoord4i,
+  glMultiTexCoord4iv,
+  glMultiTexCoord4s,
+  glMultiTexCoord4sv,
+  glNewList,
+  glNormal3b,
+  glNormal3bv,
+  glNormal3d,
+  glNormal3dv,
+  glNormal3f,
+  glNormal3fv,
+  glNormal3i,
+  glNormal3iv,
+  glNormal3s,
+  glNormal3sv,
+  glNormalPointer,
+  glOrtho,
+  glPassThrough,
+  glPixelMapfv,
+  glPixelMapuiv,
+  glPixelMapusv,
+  glPixelStoref,
+  glPixelStorei,
+  glPixelTransferf,
+  glPixelTransferi,
+  glPixelZoom,
+  glPointParameterf,
+  glPointParameterfv,
+  glPointParameteri,
+  glPointParameteriv,
+  glPointSize,
+  glPolygonMode,
+  glPolygonOffset,
+  glPolygonStipple,
+  glPopAttrib,
+  glPopClientAttrib,
+  glPopMatrix,
+  glPopName,
+  glPrioritizeTextures,
+  glPushAttrib,
+  glPushClientAttrib,
+  glPushMatrix,
+  glPushName,
+  glRasterPos2d,
+  glRasterPos2dv,
+  glRasterPos2f,
+  glRasterPos2fv,
+  glRasterPos2i,
+  glRasterPos2iv,
+  glRasterPos2s,
+  glRasterPos2sv,
+  glRasterPos3d,
+  glRasterPos3dv,
+  glRasterPos3f,
+  glRasterPos3fv,
+  glRasterPos3i,
+  glRasterPos3iv,
+  glRasterPos3s,
+  glRasterPos3sv,
+  glRasterPos4d,
+  glRasterPos4dv,
+  glRasterPos4f,
+  glRasterPos4fv,
+  glRasterPos4i,
+  glRasterPos4iv,
+  glRasterPos4s,
+  glRasterPos4sv,
+  glReadBuffer,
+  glReadPixels,
+  glRectd,
+  glRectdv,
+  glRectf,
+  glRectfv,
+  glRecti,
+  glRectiv,
+  glRects,
+  glRectsv,
+  glRenderMode,
+  glRotated,
+  glRotatef,
+  glSampleCoverage,
+  glScaled,
+  glScalef,
+  glScissor,
+  glSecondaryColor3b,
+  glSecondaryColor3bv,
+  glSecondaryColor3d,
+  glSecondaryColor3dv,
+  glSecondaryColor3f,
+  glSecondaryColor3fv,
+  glSecondaryColor3i,
+  glSecondaryColor3iv,
+  glSecondaryColor3s,
+  glSecondaryColor3sv,
+  glSecondaryColor3ub,
+  glSecondaryColor3ubv,
+  glSecondaryColor3ui,
+  glSecondaryColor3uiv,
+  glSecondaryColor3us,
+  glSecondaryColor3usv,
+  glSecondaryColorPointer,
+  glSelectBuffer,
+  glShadeModel,
+  glShaderSource,
+  glStencilFunc,
+  glStencilFuncSeparate,
+  glStencilMask,
+  glStencilMaskSeparate,
+  glStencilOp,
+  glStencilOpSeparate,
+  glTexCoord1d,
+  glTexCoord1dv,
+  glTexCoord1f,
+  glTexCoord1fv,
+  glTexCoord1i,
+  glTexCoord1iv,
+  glTexCoord1s,
+  glTexCoord1sv,
+  glTexCoord2d,
+  glTexCoord2dv,
+  glTexCoord2f,
+  glTexCoord2fv,
+  glTexCoord2i,
+  glTexCoord2iv,
+  glTexCoord2s,
+  glTexCoord2sv,
+  glTexCoord3d,
+  glTexCoord3dv,
+  glTexCoord3f,
+  glTexCoord3fv,
+  glTexCoord3i,
+  glTexCoord3iv,
+  glTexCoord3s,
+  glTexCoord3sv,
+  glTexCoord4d,
+  glTexCoord4dv,
+  glTexCoord4f,
+  glTexCoord4fv,
+  glTexCoord4i,
+  glTexCoord4iv,
+  glTexCoord4s,
+  glTexCoord4sv,
+  glTexCoordPointer,
+  glTexEnvf,
+  glTexEnvfv,
+  glTexEnvi,
+  glTexEnviv,
+  glTexGend,
+  glTexGendv,
+  glTexGenf,
+  glTexGenfv,
+  glTexGeni,
+  glTexGeniv,
+  glTexImage1D,
+  glTexImage2D,
+  glTexImage3D,
+  glTexParameterf,
+  glTexParameterfv,
+  glTexParameteri,
+  glTexParameteriv,
+  glTexSubImage1D,
+  glTexSubImage2D,
+  glTexSubImage3D,
+  glTranslated,
+  glTranslatef,
+  glUniform1f,
+  glUniform1fv,
+  glUniform1i,
+  glUniform1iv,
+  glUniform2f,
+  glUniform2fv,
+  glUniform2i,
+  glUniform2iv,
+  glUniform3f,
+  glUniform3fv,
+  glUniform3i,
+  glUniform3iv,
+  glUniform4f,
+  glUniform4fv,
+  glUniform4i,
+  glUniform4iv,
+  glUniformMatrix2fv,
+  glUniformMatrix3fv,
+  glUniformMatrix4fv,
+  glUnmapBuffer,
+  glUseProgram,
+  glValidateProgram,
+  glVertex2d,
+  glVertex2dv,
+  glVertex2f,
+  glVertex2fv,
+  glVertex2i,
+  glVertex2iv,
+  glVertex2s,
+  glVertex2sv,
+  glVertex3d,
+  glVertex3dv,
+  glVertex3f,
+  glVertex3fv,
+  glVertex3i,
+  glVertex3iv,
+  glVertex3s,
+  glVertex3sv,
+  glVertex4d,
+  glVertex4dv,
+  glVertex4f,
+  glVertex4fv,
+  glVertex4i,
+  glVertex4iv,
+  glVertex4s,
+  glVertex4sv,
+  glVertexAttrib1d,
+  glVertexAttrib1dv,
+  glVertexAttrib1f,
+  glVertexAttrib1fv,
+  glVertexAttrib1s,
+  glVertexAttrib1sv,
+  glVertexAttrib2d,
+  glVertexAttrib2dv,
+  glVertexAttrib2f,
+  glVertexAttrib2fv,
+  glVertexAttrib2s,
+  glVertexAttrib2sv,
+  glVertexAttrib3d,
+  glVertexAttrib3dv,
+  glVertexAttrib3f,
+  glVertexAttrib3fv,
+  glVertexAttrib3s,
+  glVertexAttrib3sv,
+  glVertexAttrib4Nbv,
+  glVertexAttrib4Niv,
+  glVertexAttrib4Nsv,
+  glVertexAttrib4Nub,
+  glVertexAttrib4Nubv,
+  glVertexAttrib4Nuiv,
+  glVertexAttrib4Nusv,
+  glVertexAttrib4bv,
+  glVertexAttrib4d,
+  glVertexAttrib4dv,
+  glVertexAttrib4f,
+  glVertexAttrib4fv,
+  glVertexAttrib4iv,
+  glVertexAttrib4s,
+  glVertexAttrib4sv,
+  glVertexAttrib4ubv,
+  glVertexAttrib4uiv,
+  glVertexAttrib4usv,
+  glVertexAttribPointer,
+  glVertexPointer,
+  glViewport,
+  glWindowPos2d,
+  glWindowPos2dv,
+  glWindowPos2f,
+  glWindowPos2fv,
+  glWindowPos2i,
+  glWindowPos2iv,
+  glWindowPos2s,
+  glWindowPos2sv,
+  glWindowPos3d,
+  glWindowPos3dv,
+  glWindowPos3f,
+  glWindowPos3fv,
+  glWindowPos3i,
+  glWindowPos3iv,
+  glWindowPos3s,
+  glWindowPos3sv
+) where
+
+import Graphics.GL.Types
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/Version21.hs b/src/Graphics/GL/Version21.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/Version21.hs
@@ -0,0 +1,1463 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.Version21
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.Version21 (
+  -- * Types
+  GLbitfield,
+  GLboolean,
+  GLbyte,
+  GLchar,
+  GLclampd,
+  GLclampf,
+  GLdouble,
+  GLenum,
+  GLfloat,
+  GLint,
+  GLintptr,
+  GLshort,
+  GLsizei,
+  GLsizeiptr,
+  GLubyte,
+  GLuint,
+  GLushort,
+  GLvoid,
+  -- * Enums
+  pattern GL_2D,
+  pattern GL_2_BYTES,
+  pattern GL_3D,
+  pattern GL_3D_COLOR,
+  pattern GL_3D_COLOR_TEXTURE,
+  pattern GL_3_BYTES,
+  pattern GL_4D_COLOR_TEXTURE,
+  pattern GL_4_BYTES,
+  pattern GL_ACCUM,
+  pattern GL_ACCUM_ALPHA_BITS,
+  pattern GL_ACCUM_BLUE_BITS,
+  pattern GL_ACCUM_BUFFER_BIT,
+  pattern GL_ACCUM_CLEAR_VALUE,
+  pattern GL_ACCUM_GREEN_BITS,
+  pattern GL_ACCUM_RED_BITS,
+  pattern GL_ACTIVE_ATTRIBUTES,
+  pattern GL_ACTIVE_ATTRIBUTE_MAX_LENGTH,
+  pattern GL_ACTIVE_TEXTURE,
+  pattern GL_ACTIVE_UNIFORMS,
+  pattern GL_ACTIVE_UNIFORM_MAX_LENGTH,
+  pattern GL_ADD,
+  pattern GL_ADD_SIGNED,
+  pattern GL_ALIASED_LINE_WIDTH_RANGE,
+  pattern GL_ALIASED_POINT_SIZE_RANGE,
+  pattern GL_ALL_ATTRIB_BITS,
+  pattern GL_ALPHA,
+  pattern GL_ALPHA12,
+  pattern GL_ALPHA16,
+  pattern GL_ALPHA4,
+  pattern GL_ALPHA8,
+  pattern GL_ALPHA_BIAS,
+  pattern GL_ALPHA_BITS,
+  pattern GL_ALPHA_SCALE,
+  pattern GL_ALPHA_TEST,
+  pattern GL_ALPHA_TEST_FUNC,
+  pattern GL_ALPHA_TEST_REF,
+  pattern GL_ALWAYS,
+  pattern GL_AMBIENT,
+  pattern GL_AMBIENT_AND_DIFFUSE,
+  pattern GL_AND,
+  pattern GL_AND_INVERTED,
+  pattern GL_AND_REVERSE,
+  pattern GL_ARRAY_BUFFER,
+  pattern GL_ARRAY_BUFFER_BINDING,
+  pattern GL_ATTACHED_SHADERS,
+  pattern GL_ATTRIB_STACK_DEPTH,
+  pattern GL_AUTO_NORMAL,
+  pattern GL_AUX0,
+  pattern GL_AUX1,
+  pattern GL_AUX2,
+  pattern GL_AUX3,
+  pattern GL_AUX_BUFFERS,
+  pattern GL_BACK,
+  pattern GL_BACK_LEFT,
+  pattern GL_BACK_RIGHT,
+  pattern GL_BGR,
+  pattern GL_BGRA,
+  pattern GL_BITMAP,
+  pattern GL_BITMAP_TOKEN,
+  pattern GL_BLEND,
+  pattern GL_BLEND_COLOR,
+  pattern GL_BLEND_DST,
+  pattern GL_BLEND_DST_ALPHA,
+  pattern GL_BLEND_DST_RGB,
+  pattern GL_BLEND_EQUATION,
+  pattern GL_BLEND_EQUATION_ALPHA,
+  pattern GL_BLEND_EQUATION_RGB,
+  pattern GL_BLEND_SRC,
+  pattern GL_BLEND_SRC_ALPHA,
+  pattern GL_BLEND_SRC_RGB,
+  pattern GL_BLUE,
+  pattern GL_BLUE_BIAS,
+  pattern GL_BLUE_BITS,
+  pattern GL_BLUE_SCALE,
+  pattern GL_BOOL,
+  pattern GL_BOOL_VEC2,
+  pattern GL_BOOL_VEC3,
+  pattern GL_BOOL_VEC4,
+  pattern GL_BUFFER_ACCESS,
+  pattern GL_BUFFER_MAPPED,
+  pattern GL_BUFFER_MAP_POINTER,
+  pattern GL_BUFFER_SIZE,
+  pattern GL_BUFFER_USAGE,
+  pattern GL_BYTE,
+  pattern GL_C3F_V3F,
+  pattern GL_C4F_N3F_V3F,
+  pattern GL_C4UB_V2F,
+  pattern GL_C4UB_V3F,
+  pattern GL_CCW,
+  pattern GL_CLAMP,
+  pattern GL_CLAMP_TO_BORDER,
+  pattern GL_CLAMP_TO_EDGE,
+  pattern GL_CLEAR,
+  pattern GL_CLIENT_ACTIVE_TEXTURE,
+  pattern GL_CLIENT_ALL_ATTRIB_BITS,
+  pattern GL_CLIENT_ATTRIB_STACK_DEPTH,
+  pattern GL_CLIENT_PIXEL_STORE_BIT,
+  pattern GL_CLIENT_VERTEX_ARRAY_BIT,
+  pattern GL_CLIP_PLANE0,
+  pattern GL_CLIP_PLANE1,
+  pattern GL_CLIP_PLANE2,
+  pattern GL_CLIP_PLANE3,
+  pattern GL_CLIP_PLANE4,
+  pattern GL_CLIP_PLANE5,
+  pattern GL_COEFF,
+  pattern GL_COLOR,
+  pattern GL_COLOR_ARRAY,
+  pattern GL_COLOR_ARRAY_BUFFER_BINDING,
+  pattern GL_COLOR_ARRAY_POINTER,
+  pattern GL_COLOR_ARRAY_SIZE,
+  pattern GL_COLOR_ARRAY_STRIDE,
+  pattern GL_COLOR_ARRAY_TYPE,
+  pattern GL_COLOR_BUFFER_BIT,
+  pattern GL_COLOR_CLEAR_VALUE,
+  pattern GL_COLOR_INDEX,
+  pattern GL_COLOR_INDEXES,
+  pattern GL_COLOR_LOGIC_OP,
+  pattern GL_COLOR_MATERIAL,
+  pattern GL_COLOR_MATERIAL_FACE,
+  pattern GL_COLOR_MATERIAL_PARAMETER,
+  pattern GL_COLOR_SUM,
+  pattern GL_COLOR_WRITEMASK,
+  pattern GL_COMBINE,
+  pattern GL_COMBINE_ALPHA,
+  pattern GL_COMBINE_RGB,
+  pattern GL_COMPARE_R_TO_TEXTURE,
+  pattern GL_COMPILE,
+  pattern GL_COMPILE_AND_EXECUTE,
+  pattern GL_COMPILE_STATUS,
+  pattern GL_COMPRESSED_ALPHA,
+  pattern GL_COMPRESSED_INTENSITY,
+  pattern GL_COMPRESSED_LUMINANCE,
+  pattern GL_COMPRESSED_LUMINANCE_ALPHA,
+  pattern GL_COMPRESSED_RGB,
+  pattern GL_COMPRESSED_RGBA,
+  pattern GL_COMPRESSED_SLUMINANCE,
+  pattern GL_COMPRESSED_SLUMINANCE_ALPHA,
+  pattern GL_COMPRESSED_SRGB,
+  pattern GL_COMPRESSED_SRGB_ALPHA,
+  pattern GL_COMPRESSED_TEXTURE_FORMATS,
+  pattern GL_CONSTANT,
+  pattern GL_CONSTANT_ALPHA,
+  pattern GL_CONSTANT_ATTENUATION,
+  pattern GL_CONSTANT_COLOR,
+  pattern GL_COORD_REPLACE,
+  pattern GL_COPY,
+  pattern GL_COPY_INVERTED,
+  pattern GL_COPY_PIXEL_TOKEN,
+  pattern GL_CULL_FACE,
+  pattern GL_CULL_FACE_MODE,
+  pattern GL_CURRENT_BIT,
+  pattern GL_CURRENT_COLOR,
+  pattern GL_CURRENT_FOG_COORD,
+  pattern GL_CURRENT_FOG_COORDINATE,
+  pattern GL_CURRENT_INDEX,
+  pattern GL_CURRENT_NORMAL,
+  pattern GL_CURRENT_PROGRAM,
+  pattern GL_CURRENT_QUERY,
+  pattern GL_CURRENT_RASTER_COLOR,
+  pattern GL_CURRENT_RASTER_DISTANCE,
+  pattern GL_CURRENT_RASTER_INDEX,
+  pattern GL_CURRENT_RASTER_POSITION,
+  pattern GL_CURRENT_RASTER_POSITION_VALID,
+  pattern GL_CURRENT_RASTER_SECONDARY_COLOR,
+  pattern GL_CURRENT_RASTER_TEXTURE_COORDS,
+  pattern GL_CURRENT_SECONDARY_COLOR,
+  pattern GL_CURRENT_TEXTURE_COORDS,
+  pattern GL_CURRENT_VERTEX_ATTRIB,
+  pattern GL_CW,
+  pattern GL_DECAL,
+  pattern GL_DECR,
+  pattern GL_DECR_WRAP,
+  pattern GL_DELETE_STATUS,
+  pattern GL_DEPTH,
+  pattern GL_DEPTH_BIAS,
+  pattern GL_DEPTH_BITS,
+  pattern GL_DEPTH_BUFFER_BIT,
+  pattern GL_DEPTH_CLEAR_VALUE,
+  pattern GL_DEPTH_COMPONENT,
+  pattern GL_DEPTH_COMPONENT16,
+  pattern GL_DEPTH_COMPONENT24,
+  pattern GL_DEPTH_COMPONENT32,
+  pattern GL_DEPTH_FUNC,
+  pattern GL_DEPTH_RANGE,
+  pattern GL_DEPTH_SCALE,
+  pattern GL_DEPTH_TEST,
+  pattern GL_DEPTH_TEXTURE_MODE,
+  pattern GL_DEPTH_WRITEMASK,
+  pattern GL_DIFFUSE,
+  pattern GL_DITHER,
+  pattern GL_DOMAIN,
+  pattern GL_DONT_CARE,
+  pattern GL_DOT3_RGB,
+  pattern GL_DOT3_RGBA,
+  pattern GL_DOUBLE,
+  pattern GL_DOUBLEBUFFER,
+  pattern GL_DRAW_BUFFER,
+  pattern GL_DRAW_BUFFER0,
+  pattern GL_DRAW_BUFFER1,
+  pattern GL_DRAW_BUFFER10,
+  pattern GL_DRAW_BUFFER11,
+  pattern GL_DRAW_BUFFER12,
+  pattern GL_DRAW_BUFFER13,
+  pattern GL_DRAW_BUFFER14,
+  pattern GL_DRAW_BUFFER15,
+  pattern GL_DRAW_BUFFER2,
+  pattern GL_DRAW_BUFFER3,
+  pattern GL_DRAW_BUFFER4,
+  pattern GL_DRAW_BUFFER5,
+  pattern GL_DRAW_BUFFER6,
+  pattern GL_DRAW_BUFFER7,
+  pattern GL_DRAW_BUFFER8,
+  pattern GL_DRAW_BUFFER9,
+  pattern GL_DRAW_PIXEL_TOKEN,
+  pattern GL_DST_ALPHA,
+  pattern GL_DST_COLOR,
+  pattern GL_DYNAMIC_COPY,
+  pattern GL_DYNAMIC_DRAW,
+  pattern GL_DYNAMIC_READ,
+  pattern GL_EDGE_FLAG,
+  pattern GL_EDGE_FLAG_ARRAY,
+  pattern GL_EDGE_FLAG_ARRAY_BUFFER_BINDING,
+  pattern GL_EDGE_FLAG_ARRAY_POINTER,
+  pattern GL_EDGE_FLAG_ARRAY_STRIDE,
+  pattern GL_ELEMENT_ARRAY_BUFFER,
+  pattern GL_ELEMENT_ARRAY_BUFFER_BINDING,
+  pattern GL_EMISSION,
+  pattern GL_ENABLE_BIT,
+  pattern GL_EQUAL,
+  pattern GL_EQUIV,
+  pattern GL_EVAL_BIT,
+  pattern GL_EXP,
+  pattern GL_EXP2,
+  pattern GL_EXTENSIONS,
+  pattern GL_EYE_LINEAR,
+  pattern GL_EYE_PLANE,
+  pattern GL_FALSE,
+  pattern GL_FASTEST,
+  pattern GL_FEEDBACK,
+  pattern GL_FEEDBACK_BUFFER_POINTER,
+  pattern GL_FEEDBACK_BUFFER_SIZE,
+  pattern GL_FEEDBACK_BUFFER_TYPE,
+  pattern GL_FILL,
+  pattern GL_FLAT,
+  pattern GL_FLOAT,
+  pattern GL_FLOAT_MAT2,
+  pattern GL_FLOAT_MAT2x3,
+  pattern GL_FLOAT_MAT2x4,
+  pattern GL_FLOAT_MAT3,
+  pattern GL_FLOAT_MAT3x2,
+  pattern GL_FLOAT_MAT3x4,
+  pattern GL_FLOAT_MAT4,
+  pattern GL_FLOAT_MAT4x2,
+  pattern GL_FLOAT_MAT4x3,
+  pattern GL_FLOAT_VEC2,
+  pattern GL_FLOAT_VEC3,
+  pattern GL_FLOAT_VEC4,
+  pattern GL_FOG,
+  pattern GL_FOG_BIT,
+  pattern GL_FOG_COLOR,
+  pattern GL_FOG_COORD,
+  pattern GL_FOG_COORDINATE,
+  pattern GL_FOG_COORDINATE_ARRAY,
+  pattern GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING,
+  pattern GL_FOG_COORDINATE_ARRAY_POINTER,
+  pattern GL_FOG_COORDINATE_ARRAY_STRIDE,
+  pattern GL_FOG_COORDINATE_ARRAY_TYPE,
+  pattern GL_FOG_COORDINATE_SOURCE,
+  pattern GL_FOG_COORD_ARRAY,
+  pattern GL_FOG_COORD_ARRAY_BUFFER_BINDING,
+  pattern GL_FOG_COORD_ARRAY_POINTER,
+  pattern GL_FOG_COORD_ARRAY_STRIDE,
+  pattern GL_FOG_COORD_ARRAY_TYPE,
+  pattern GL_FOG_COORD_SRC,
+  pattern GL_FOG_DENSITY,
+  pattern GL_FOG_END,
+  pattern GL_FOG_HINT,
+  pattern GL_FOG_INDEX,
+  pattern GL_FOG_MODE,
+  pattern GL_FOG_START,
+  pattern GL_FRAGMENT_DEPTH,
+  pattern GL_FRAGMENT_SHADER,
+  pattern GL_FRAGMENT_SHADER_DERIVATIVE_HINT,
+  pattern GL_FRONT,
+  pattern GL_FRONT_AND_BACK,
+  pattern GL_FRONT_FACE,
+  pattern GL_FRONT_LEFT,
+  pattern GL_FRONT_RIGHT,
+  pattern GL_FUNC_ADD,
+  pattern GL_FUNC_REVERSE_SUBTRACT,
+  pattern GL_FUNC_SUBTRACT,
+  pattern GL_GENERATE_MIPMAP,
+  pattern GL_GENERATE_MIPMAP_HINT,
+  pattern GL_GEQUAL,
+  pattern GL_GREATER,
+  pattern GL_GREEN,
+  pattern GL_GREEN_BIAS,
+  pattern GL_GREEN_BITS,
+  pattern GL_GREEN_SCALE,
+  pattern GL_HINT_BIT,
+  pattern GL_INCR,
+  pattern GL_INCR_WRAP,
+  pattern GL_INDEX_ARRAY,
+  pattern GL_INDEX_ARRAY_BUFFER_BINDING,
+  pattern GL_INDEX_ARRAY_POINTER,
+  pattern GL_INDEX_ARRAY_STRIDE,
+  pattern GL_INDEX_ARRAY_TYPE,
+  pattern GL_INDEX_BITS,
+  pattern GL_INDEX_CLEAR_VALUE,
+  pattern GL_INDEX_LOGIC_OP,
+  pattern GL_INDEX_MODE,
+  pattern GL_INDEX_OFFSET,
+  pattern GL_INDEX_SHIFT,
+  pattern GL_INDEX_WRITEMASK,
+  pattern GL_INFO_LOG_LENGTH,
+  pattern GL_INT,
+  pattern GL_INTENSITY,
+  pattern GL_INTENSITY12,
+  pattern GL_INTENSITY16,
+  pattern GL_INTENSITY4,
+  pattern GL_INTENSITY8,
+  pattern GL_INTERPOLATE,
+  pattern GL_INT_VEC2,
+  pattern GL_INT_VEC3,
+  pattern GL_INT_VEC4,
+  pattern GL_INVALID_ENUM,
+  pattern GL_INVALID_OPERATION,
+  pattern GL_INVALID_VALUE,
+  pattern GL_INVERT,
+  pattern GL_KEEP,
+  pattern GL_LEFT,
+  pattern GL_LEQUAL,
+  pattern GL_LESS,
+  pattern GL_LIGHT0,
+  pattern GL_LIGHT1,
+  pattern GL_LIGHT2,
+  pattern GL_LIGHT3,
+  pattern GL_LIGHT4,
+  pattern GL_LIGHT5,
+  pattern GL_LIGHT6,
+  pattern GL_LIGHT7,
+  pattern GL_LIGHTING,
+  pattern GL_LIGHTING_BIT,
+  pattern GL_LIGHT_MODEL_AMBIENT,
+  pattern GL_LIGHT_MODEL_COLOR_CONTROL,
+  pattern GL_LIGHT_MODEL_LOCAL_VIEWER,
+  pattern GL_LIGHT_MODEL_TWO_SIDE,
+  pattern GL_LINE,
+  pattern GL_LINEAR,
+  pattern GL_LINEAR_ATTENUATION,
+  pattern GL_LINEAR_MIPMAP_LINEAR,
+  pattern GL_LINEAR_MIPMAP_NEAREST,
+  pattern GL_LINES,
+  pattern GL_LINE_BIT,
+  pattern GL_LINE_LOOP,
+  pattern GL_LINE_RESET_TOKEN,
+  pattern GL_LINE_SMOOTH,
+  pattern GL_LINE_SMOOTH_HINT,
+  pattern GL_LINE_STIPPLE,
+  pattern GL_LINE_STIPPLE_PATTERN,
+  pattern GL_LINE_STIPPLE_REPEAT,
+  pattern GL_LINE_STRIP,
+  pattern GL_LINE_TOKEN,
+  pattern GL_LINE_WIDTH,
+  pattern GL_LINE_WIDTH_GRANULARITY,
+  pattern GL_LINE_WIDTH_RANGE,
+  pattern GL_LINK_STATUS,
+  pattern GL_LIST_BASE,
+  pattern GL_LIST_BIT,
+  pattern GL_LIST_INDEX,
+  pattern GL_LIST_MODE,
+  pattern GL_LOAD,
+  pattern GL_LOGIC_OP,
+  pattern GL_LOGIC_OP_MODE,
+  pattern GL_LOWER_LEFT,
+  pattern GL_LUMINANCE,
+  pattern GL_LUMINANCE12,
+  pattern GL_LUMINANCE12_ALPHA12,
+  pattern GL_LUMINANCE12_ALPHA4,
+  pattern GL_LUMINANCE16,
+  pattern GL_LUMINANCE16_ALPHA16,
+  pattern GL_LUMINANCE4,
+  pattern GL_LUMINANCE4_ALPHA4,
+  pattern GL_LUMINANCE6_ALPHA2,
+  pattern GL_LUMINANCE8,
+  pattern GL_LUMINANCE8_ALPHA8,
+  pattern GL_LUMINANCE_ALPHA,
+  pattern GL_MAP1_COLOR_4,
+  pattern GL_MAP1_GRID_DOMAIN,
+  pattern GL_MAP1_GRID_SEGMENTS,
+  pattern GL_MAP1_INDEX,
+  pattern GL_MAP1_NORMAL,
+  pattern GL_MAP1_TEXTURE_COORD_1,
+  pattern GL_MAP1_TEXTURE_COORD_2,
+  pattern GL_MAP1_TEXTURE_COORD_3,
+  pattern GL_MAP1_TEXTURE_COORD_4,
+  pattern GL_MAP1_VERTEX_3,
+  pattern GL_MAP1_VERTEX_4,
+  pattern GL_MAP2_COLOR_4,
+  pattern GL_MAP2_GRID_DOMAIN,
+  pattern GL_MAP2_GRID_SEGMENTS,
+  pattern GL_MAP2_INDEX,
+  pattern GL_MAP2_NORMAL,
+  pattern GL_MAP2_TEXTURE_COORD_1,
+  pattern GL_MAP2_TEXTURE_COORD_2,
+  pattern GL_MAP2_TEXTURE_COORD_3,
+  pattern GL_MAP2_TEXTURE_COORD_4,
+  pattern GL_MAP2_VERTEX_3,
+  pattern GL_MAP2_VERTEX_4,
+  pattern GL_MAP_COLOR,
+  pattern GL_MAP_STENCIL,
+  pattern GL_MATRIX_MODE,
+  pattern GL_MAX,
+  pattern GL_MAX_3D_TEXTURE_SIZE,
+  pattern GL_MAX_ATTRIB_STACK_DEPTH,
+  pattern GL_MAX_CLIENT_ATTRIB_STACK_DEPTH,
+  pattern GL_MAX_CLIP_PLANES,
+  pattern GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_CUBE_MAP_TEXTURE_SIZE,
+  pattern GL_MAX_DRAW_BUFFERS,
+  pattern GL_MAX_ELEMENTS_INDICES,
+  pattern GL_MAX_ELEMENTS_VERTICES,
+  pattern GL_MAX_EVAL_ORDER,
+  pattern GL_MAX_FRAGMENT_UNIFORM_COMPONENTS,
+  pattern GL_MAX_LIGHTS,
+  pattern GL_MAX_LIST_NESTING,
+  pattern GL_MAX_MODELVIEW_STACK_DEPTH,
+  pattern GL_MAX_NAME_STACK_DEPTH,
+  pattern GL_MAX_PIXEL_MAP_TABLE,
+  pattern GL_MAX_PROJECTION_STACK_DEPTH,
+  pattern GL_MAX_TEXTURE_COORDS,
+  pattern GL_MAX_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_TEXTURE_LOD_BIAS,
+  pattern GL_MAX_TEXTURE_SIZE,
+  pattern GL_MAX_TEXTURE_STACK_DEPTH,
+  pattern GL_MAX_TEXTURE_UNITS,
+  pattern GL_MAX_VARYING_FLOATS,
+  pattern GL_MAX_VERTEX_ATTRIBS,
+  pattern GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS,
+  pattern GL_MAX_VERTEX_UNIFORM_COMPONENTS,
+  pattern GL_MAX_VIEWPORT_DIMS,
+  pattern GL_MIN,
+  pattern GL_MIRRORED_REPEAT,
+  pattern GL_MODELVIEW,
+  pattern GL_MODELVIEW_MATRIX,
+  pattern GL_MODELVIEW_STACK_DEPTH,
+  pattern GL_MODULATE,
+  pattern GL_MULT,
+  pattern GL_MULTISAMPLE,
+  pattern GL_MULTISAMPLE_BIT,
+  pattern GL_N3F_V3F,
+  pattern GL_NAME_STACK_DEPTH,
+  pattern GL_NAND,
+  pattern GL_NEAREST,
+  pattern GL_NEAREST_MIPMAP_LINEAR,
+  pattern GL_NEAREST_MIPMAP_NEAREST,
+  pattern GL_NEVER,
+  pattern GL_NICEST,
+  pattern GL_NONE,
+  pattern GL_NOOP,
+  pattern GL_NOR,
+  pattern GL_NORMALIZE,
+  pattern GL_NORMAL_ARRAY,
+  pattern GL_NORMAL_ARRAY_BUFFER_BINDING,
+  pattern GL_NORMAL_ARRAY_POINTER,
+  pattern GL_NORMAL_ARRAY_STRIDE,
+  pattern GL_NORMAL_ARRAY_TYPE,
+  pattern GL_NORMAL_MAP,
+  pattern GL_NOTEQUAL,
+  pattern GL_NO_ERROR,
+  pattern GL_NUM_COMPRESSED_TEXTURE_FORMATS,
+  pattern GL_OBJECT_LINEAR,
+  pattern GL_OBJECT_PLANE,
+  pattern GL_ONE,
+  pattern GL_ONE_MINUS_CONSTANT_ALPHA,
+  pattern GL_ONE_MINUS_CONSTANT_COLOR,
+  pattern GL_ONE_MINUS_DST_ALPHA,
+  pattern GL_ONE_MINUS_DST_COLOR,
+  pattern GL_ONE_MINUS_SRC_ALPHA,
+  pattern GL_ONE_MINUS_SRC_COLOR,
+  pattern GL_OPERAND0_ALPHA,
+  pattern GL_OPERAND0_RGB,
+  pattern GL_OPERAND1_ALPHA,
+  pattern GL_OPERAND1_RGB,
+  pattern GL_OPERAND2_ALPHA,
+  pattern GL_OPERAND2_RGB,
+  pattern GL_OR,
+  pattern GL_ORDER,
+  pattern GL_OR_INVERTED,
+  pattern GL_OR_REVERSE,
+  pattern GL_OUT_OF_MEMORY,
+  pattern GL_PACK_ALIGNMENT,
+  pattern GL_PACK_IMAGE_HEIGHT,
+  pattern GL_PACK_LSB_FIRST,
+  pattern GL_PACK_ROW_LENGTH,
+  pattern GL_PACK_SKIP_IMAGES,
+  pattern GL_PACK_SKIP_PIXELS,
+  pattern GL_PACK_SKIP_ROWS,
+  pattern GL_PACK_SWAP_BYTES,
+  pattern GL_PASS_THROUGH_TOKEN,
+  pattern GL_PERSPECTIVE_CORRECTION_HINT,
+  pattern GL_PIXEL_MAP_A_TO_A,
+  pattern GL_PIXEL_MAP_A_TO_A_SIZE,
+  pattern GL_PIXEL_MAP_B_TO_B,
+  pattern GL_PIXEL_MAP_B_TO_B_SIZE,
+  pattern GL_PIXEL_MAP_G_TO_G,
+  pattern GL_PIXEL_MAP_G_TO_G_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_A,
+  pattern GL_PIXEL_MAP_I_TO_A_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_B,
+  pattern GL_PIXEL_MAP_I_TO_B_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_G,
+  pattern GL_PIXEL_MAP_I_TO_G_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_I,
+  pattern GL_PIXEL_MAP_I_TO_I_SIZE,
+  pattern GL_PIXEL_MAP_I_TO_R,
+  pattern GL_PIXEL_MAP_I_TO_R_SIZE,
+  pattern GL_PIXEL_MAP_R_TO_R,
+  pattern GL_PIXEL_MAP_R_TO_R_SIZE,
+  pattern GL_PIXEL_MAP_S_TO_S,
+  pattern GL_PIXEL_MAP_S_TO_S_SIZE,
+  pattern GL_PIXEL_MODE_BIT,
+  pattern GL_PIXEL_PACK_BUFFER,
+  pattern GL_PIXEL_PACK_BUFFER_BINDING,
+  pattern GL_PIXEL_UNPACK_BUFFER,
+  pattern GL_PIXEL_UNPACK_BUFFER_BINDING,
+  pattern GL_POINT,
+  pattern GL_POINTS,
+  pattern GL_POINT_BIT,
+  pattern GL_POINT_DISTANCE_ATTENUATION,
+  pattern GL_POINT_FADE_THRESHOLD_SIZE,
+  pattern GL_POINT_SIZE,
+  pattern GL_POINT_SIZE_GRANULARITY,
+  pattern GL_POINT_SIZE_MAX,
+  pattern GL_POINT_SIZE_MIN,
+  pattern GL_POINT_SIZE_RANGE,
+  pattern GL_POINT_SMOOTH,
+  pattern GL_POINT_SMOOTH_HINT,
+  pattern GL_POINT_SPRITE,
+  pattern GL_POINT_SPRITE_COORD_ORIGIN,
+  pattern GL_POINT_TOKEN,
+  pattern GL_POLYGON,
+  pattern GL_POLYGON_BIT,
+  pattern GL_POLYGON_MODE,
+  pattern GL_POLYGON_OFFSET_FACTOR,
+  pattern GL_POLYGON_OFFSET_FILL,
+  pattern GL_POLYGON_OFFSET_LINE,
+  pattern GL_POLYGON_OFFSET_POINT,
+  pattern GL_POLYGON_OFFSET_UNITS,
+  pattern GL_POLYGON_SMOOTH,
+  pattern GL_POLYGON_SMOOTH_HINT,
+  pattern GL_POLYGON_STIPPLE,
+  pattern GL_POLYGON_STIPPLE_BIT,
+  pattern GL_POLYGON_TOKEN,
+  pattern GL_POSITION,
+  pattern GL_PREVIOUS,
+  pattern GL_PRIMARY_COLOR,
+  pattern GL_PROJECTION,
+  pattern GL_PROJECTION_MATRIX,
+  pattern GL_PROJECTION_STACK_DEPTH,
+  pattern GL_PROXY_TEXTURE_1D,
+  pattern GL_PROXY_TEXTURE_2D,
+  pattern GL_PROXY_TEXTURE_3D,
+  pattern GL_PROXY_TEXTURE_CUBE_MAP,
+  pattern GL_Q,
+  pattern GL_QUADRATIC_ATTENUATION,
+  pattern GL_QUADS,
+  pattern GL_QUAD_STRIP,
+  pattern GL_QUERY_COUNTER_BITS,
+  pattern GL_QUERY_RESULT,
+  pattern GL_QUERY_RESULT_AVAILABLE,
+  pattern GL_R,
+  pattern GL_R3_G3_B2,
+  pattern GL_READ_BUFFER,
+  pattern GL_READ_ONLY,
+  pattern GL_READ_WRITE,
+  pattern GL_RED,
+  pattern GL_RED_BIAS,
+  pattern GL_RED_BITS,
+  pattern GL_RED_SCALE,
+  pattern GL_REFLECTION_MAP,
+  pattern GL_RENDER,
+  pattern GL_RENDERER,
+  pattern GL_RENDER_MODE,
+  pattern GL_REPEAT,
+  pattern GL_REPLACE,
+  pattern GL_RESCALE_NORMAL,
+  pattern GL_RETURN,
+  pattern GL_RGB,
+  pattern GL_RGB10,
+  pattern GL_RGB10_A2,
+  pattern GL_RGB12,
+  pattern GL_RGB16,
+  pattern GL_RGB4,
+  pattern GL_RGB5,
+  pattern GL_RGB5_A1,
+  pattern GL_RGB8,
+  pattern GL_RGBA,
+  pattern GL_RGBA12,
+  pattern GL_RGBA16,
+  pattern GL_RGBA2,
+  pattern GL_RGBA4,
+  pattern GL_RGBA8,
+  pattern GL_RGBA_MODE,
+  pattern GL_RGB_SCALE,
+  pattern GL_RIGHT,
+  pattern GL_S,
+  pattern GL_SAMPLER_1D,
+  pattern GL_SAMPLER_1D_SHADOW,
+  pattern GL_SAMPLER_2D,
+  pattern GL_SAMPLER_2D_SHADOW,
+  pattern GL_SAMPLER_3D,
+  pattern GL_SAMPLER_CUBE,
+  pattern GL_SAMPLES,
+  pattern GL_SAMPLES_PASSED,
+  pattern GL_SAMPLE_ALPHA_TO_COVERAGE,
+  pattern GL_SAMPLE_ALPHA_TO_ONE,
+  pattern GL_SAMPLE_BUFFERS,
+  pattern GL_SAMPLE_COVERAGE,
+  pattern GL_SAMPLE_COVERAGE_INVERT,
+  pattern GL_SAMPLE_COVERAGE_VALUE,
+  pattern GL_SCISSOR_BIT,
+  pattern GL_SCISSOR_BOX,
+  pattern GL_SCISSOR_TEST,
+  pattern GL_SECONDARY_COLOR_ARRAY,
+  pattern GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING,
+  pattern GL_SECONDARY_COLOR_ARRAY_POINTER,
+  pattern GL_SECONDARY_COLOR_ARRAY_SIZE,
+  pattern GL_SECONDARY_COLOR_ARRAY_STRIDE,
+  pattern GL_SECONDARY_COLOR_ARRAY_TYPE,
+  pattern GL_SELECT,
+  pattern GL_SELECTION_BUFFER_POINTER,
+  pattern GL_SELECTION_BUFFER_SIZE,
+  pattern GL_SEPARATE_SPECULAR_COLOR,
+  pattern GL_SET,
+  pattern GL_SHADER_SOURCE_LENGTH,
+  pattern GL_SHADER_TYPE,
+  pattern GL_SHADE_MODEL,
+  pattern GL_SHADING_LANGUAGE_VERSION,
+  pattern GL_SHININESS,
+  pattern GL_SHORT,
+  pattern GL_SINGLE_COLOR,
+  pattern GL_SLUMINANCE,
+  pattern GL_SLUMINANCE8,
+  pattern GL_SLUMINANCE8_ALPHA8,
+  pattern GL_SLUMINANCE_ALPHA,
+  pattern GL_SMOOTH,
+  pattern GL_SMOOTH_LINE_WIDTH_GRANULARITY,
+  pattern GL_SMOOTH_LINE_WIDTH_RANGE,
+  pattern GL_SMOOTH_POINT_SIZE_GRANULARITY,
+  pattern GL_SMOOTH_POINT_SIZE_RANGE,
+  pattern GL_SOURCE0_ALPHA,
+  pattern GL_SOURCE0_RGB,
+  pattern GL_SOURCE1_ALPHA,
+  pattern GL_SOURCE1_RGB,
+  pattern GL_SOURCE2_ALPHA,
+  pattern GL_SOURCE2_RGB,
+  pattern GL_SPECULAR,
+  pattern GL_SPHERE_MAP,
+  pattern GL_SPOT_CUTOFF,
+  pattern GL_SPOT_DIRECTION,
+  pattern GL_SPOT_EXPONENT,
+  pattern GL_SRC0_ALPHA,
+  pattern GL_SRC0_RGB,
+  pattern GL_SRC1_ALPHA,
+  pattern GL_SRC1_RGB,
+  pattern GL_SRC2_ALPHA,
+  pattern GL_SRC2_RGB,
+  pattern GL_SRC_ALPHA,
+  pattern GL_SRC_ALPHA_SATURATE,
+  pattern GL_SRC_COLOR,
+  pattern GL_SRGB,
+  pattern GL_SRGB8,
+  pattern GL_SRGB8_ALPHA8,
+  pattern GL_SRGB_ALPHA,
+  pattern GL_STACK_OVERFLOW,
+  pattern GL_STACK_UNDERFLOW,
+  pattern GL_STATIC_COPY,
+  pattern GL_STATIC_DRAW,
+  pattern GL_STATIC_READ,
+  pattern GL_STENCIL,
+  pattern GL_STENCIL_BACK_FAIL,
+  pattern GL_STENCIL_BACK_FUNC,
+  pattern GL_STENCIL_BACK_PASS_DEPTH_FAIL,
+  pattern GL_STENCIL_BACK_PASS_DEPTH_PASS,
+  pattern GL_STENCIL_BACK_REF,
+  pattern GL_STENCIL_BACK_VALUE_MASK,
+  pattern GL_STENCIL_BACK_WRITEMASK,
+  pattern GL_STENCIL_BITS,
+  pattern GL_STENCIL_BUFFER_BIT,
+  pattern GL_STENCIL_CLEAR_VALUE,
+  pattern GL_STENCIL_FAIL,
+  pattern GL_STENCIL_FUNC,
+  pattern GL_STENCIL_INDEX,
+  pattern GL_STENCIL_PASS_DEPTH_FAIL,
+  pattern GL_STENCIL_PASS_DEPTH_PASS,
+  pattern GL_STENCIL_REF,
+  pattern GL_STENCIL_TEST,
+  pattern GL_STENCIL_VALUE_MASK,
+  pattern GL_STENCIL_WRITEMASK,
+  pattern GL_STEREO,
+  pattern GL_STREAM_COPY,
+  pattern GL_STREAM_DRAW,
+  pattern GL_STREAM_READ,
+  pattern GL_SUBPIXEL_BITS,
+  pattern GL_SUBTRACT,
+  pattern GL_T,
+  pattern GL_T2F_C3F_V3F,
+  pattern GL_T2F_C4F_N3F_V3F,
+  pattern GL_T2F_C4UB_V3F,
+  pattern GL_T2F_N3F_V3F,
+  pattern GL_T2F_V3F,
+  pattern GL_T4F_C4F_N3F_V4F,
+  pattern GL_T4F_V4F,
+  pattern GL_TEXTURE,
+  pattern GL_TEXTURE0,
+  pattern GL_TEXTURE1,
+  pattern GL_TEXTURE10,
+  pattern GL_TEXTURE11,
+  pattern GL_TEXTURE12,
+  pattern GL_TEXTURE13,
+  pattern GL_TEXTURE14,
+  pattern GL_TEXTURE15,
+  pattern GL_TEXTURE16,
+  pattern GL_TEXTURE17,
+  pattern GL_TEXTURE18,
+  pattern GL_TEXTURE19,
+  pattern GL_TEXTURE2,
+  pattern GL_TEXTURE20,
+  pattern GL_TEXTURE21,
+  pattern GL_TEXTURE22,
+  pattern GL_TEXTURE23,
+  pattern GL_TEXTURE24,
+  pattern GL_TEXTURE25,
+  pattern GL_TEXTURE26,
+  pattern GL_TEXTURE27,
+  pattern GL_TEXTURE28,
+  pattern GL_TEXTURE29,
+  pattern GL_TEXTURE3,
+  pattern GL_TEXTURE30,
+  pattern GL_TEXTURE31,
+  pattern GL_TEXTURE4,
+  pattern GL_TEXTURE5,
+  pattern GL_TEXTURE6,
+  pattern GL_TEXTURE7,
+  pattern GL_TEXTURE8,
+  pattern GL_TEXTURE9,
+  pattern GL_TEXTURE_1D,
+  pattern GL_TEXTURE_2D,
+  pattern GL_TEXTURE_3D,
+  pattern GL_TEXTURE_ALPHA_SIZE,
+  pattern GL_TEXTURE_BASE_LEVEL,
+  pattern GL_TEXTURE_BINDING_1D,
+  pattern GL_TEXTURE_BINDING_2D,
+  pattern GL_TEXTURE_BINDING_3D,
+  pattern GL_TEXTURE_BINDING_CUBE_MAP,
+  pattern GL_TEXTURE_BIT,
+  pattern GL_TEXTURE_BLUE_SIZE,
+  pattern GL_TEXTURE_BORDER,
+  pattern GL_TEXTURE_BORDER_COLOR,
+  pattern GL_TEXTURE_COMPARE_FUNC,
+  pattern GL_TEXTURE_COMPARE_MODE,
+  pattern GL_TEXTURE_COMPONENTS,
+  pattern GL_TEXTURE_COMPRESSED,
+  pattern GL_TEXTURE_COMPRESSED_IMAGE_SIZE,
+  pattern GL_TEXTURE_COMPRESSION_HINT,
+  pattern GL_TEXTURE_COORD_ARRAY,
+  pattern GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING,
+  pattern GL_TEXTURE_COORD_ARRAY_POINTER,
+  pattern GL_TEXTURE_COORD_ARRAY_SIZE,
+  pattern GL_TEXTURE_COORD_ARRAY_STRIDE,
+  pattern GL_TEXTURE_COORD_ARRAY_TYPE,
+  pattern GL_TEXTURE_CUBE_MAP,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_X,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Y,
+  pattern GL_TEXTURE_CUBE_MAP_NEGATIVE_Z,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_X,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Y,
+  pattern GL_TEXTURE_CUBE_MAP_POSITIVE_Z,
+  pattern GL_TEXTURE_DEPTH,
+  pattern GL_TEXTURE_DEPTH_SIZE,
+  pattern GL_TEXTURE_ENV,
+  pattern GL_TEXTURE_ENV_COLOR,
+  pattern GL_TEXTURE_ENV_MODE,
+  pattern GL_TEXTURE_FILTER_CONTROL,
+  pattern GL_TEXTURE_GEN_MODE,
+  pattern GL_TEXTURE_GEN_Q,
+  pattern GL_TEXTURE_GEN_R,
+  pattern GL_TEXTURE_GEN_S,
+  pattern GL_TEXTURE_GEN_T,
+  pattern GL_TEXTURE_GREEN_SIZE,
+  pattern GL_TEXTURE_HEIGHT,
+  pattern GL_TEXTURE_INTENSITY_SIZE,
+  pattern GL_TEXTURE_INTERNAL_FORMAT,
+  pattern GL_TEXTURE_LOD_BIAS,
+  pattern GL_TEXTURE_LUMINANCE_SIZE,
+  pattern GL_TEXTURE_MAG_FILTER,
+  pattern GL_TEXTURE_MATRIX,
+  pattern GL_TEXTURE_MAX_LEVEL,
+  pattern GL_TEXTURE_MAX_LOD,
+  pattern GL_TEXTURE_MIN_FILTER,
+  pattern GL_TEXTURE_MIN_LOD,
+  pattern GL_TEXTURE_PRIORITY,
+  pattern GL_TEXTURE_RED_SIZE,
+  pattern GL_TEXTURE_RESIDENT,
+  pattern GL_TEXTURE_STACK_DEPTH,
+  pattern GL_TEXTURE_WIDTH,
+  pattern GL_TEXTURE_WRAP_R,
+  pattern GL_TEXTURE_WRAP_S,
+  pattern GL_TEXTURE_WRAP_T,
+  pattern GL_TRANSFORM_BIT,
+  pattern GL_TRANSPOSE_COLOR_MATRIX,
+  pattern GL_TRANSPOSE_MODELVIEW_MATRIX,
+  pattern GL_TRANSPOSE_PROJECTION_MATRIX,
+  pattern GL_TRANSPOSE_TEXTURE_MATRIX,
+  pattern GL_TRIANGLES,
+  pattern GL_TRIANGLE_FAN,
+  pattern GL_TRIANGLE_STRIP,
+  pattern GL_TRUE,
+  pattern GL_UNPACK_ALIGNMENT,
+  pattern GL_UNPACK_IMAGE_HEIGHT,
+  pattern GL_UNPACK_LSB_FIRST,
+  pattern GL_UNPACK_ROW_LENGTH,
+  pattern GL_UNPACK_SKIP_IMAGES,
+  pattern GL_UNPACK_SKIP_PIXELS,
+  pattern GL_UNPACK_SKIP_ROWS,
+  pattern GL_UNPACK_SWAP_BYTES,
+  pattern GL_UNSIGNED_BYTE,
+  pattern GL_UNSIGNED_BYTE_2_3_3_REV,
+  pattern GL_UNSIGNED_BYTE_3_3_2,
+  pattern GL_UNSIGNED_INT,
+  pattern GL_UNSIGNED_INT_10_10_10_2,
+  pattern GL_UNSIGNED_INT_2_10_10_10_REV,
+  pattern GL_UNSIGNED_INT_8_8_8_8,
+  pattern GL_UNSIGNED_INT_8_8_8_8_REV,
+  pattern GL_UNSIGNED_SHORT,
+  pattern GL_UNSIGNED_SHORT_1_5_5_5_REV,
+  pattern GL_UNSIGNED_SHORT_4_4_4_4,
+  pattern GL_UNSIGNED_SHORT_4_4_4_4_REV,
+  pattern GL_UNSIGNED_SHORT_5_5_5_1,
+  pattern GL_UNSIGNED_SHORT_5_6_5,
+  pattern GL_UNSIGNED_SHORT_5_6_5_REV,
+  pattern GL_UPPER_LEFT,
+  pattern GL_V2F,
+  pattern GL_V3F,
+  pattern GL_VALIDATE_STATUS,
+  pattern GL_VENDOR,
+  pattern GL_VERSION,
+  pattern GL_VERTEX_ARRAY,
+  pattern GL_VERTEX_ARRAY_BUFFER_BINDING,
+  pattern GL_VERTEX_ARRAY_POINTER,
+  pattern GL_VERTEX_ARRAY_SIZE,
+  pattern GL_VERTEX_ARRAY_STRIDE,
+  pattern GL_VERTEX_ARRAY_TYPE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING,
+  pattern GL_VERTEX_ATTRIB_ARRAY_ENABLED,
+  pattern GL_VERTEX_ATTRIB_ARRAY_NORMALIZED,
+  pattern GL_VERTEX_ATTRIB_ARRAY_POINTER,
+  pattern GL_VERTEX_ATTRIB_ARRAY_SIZE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_STRIDE,
+  pattern GL_VERTEX_ATTRIB_ARRAY_TYPE,
+  pattern GL_VERTEX_PROGRAM_POINT_SIZE,
+  pattern GL_VERTEX_PROGRAM_TWO_SIDE,
+  pattern GL_VERTEX_SHADER,
+  pattern GL_VIEWPORT,
+  pattern GL_VIEWPORT_BIT,
+  pattern GL_WEIGHT_ARRAY_BUFFER_BINDING,
+  pattern GL_WRITE_ONLY,
+  pattern GL_XOR,
+  pattern GL_ZERO,
+  pattern GL_ZOOM_X,
+  pattern GL_ZOOM_Y,
+  -- * Functions
+  glAccum,
+  glActiveTexture,
+  glAlphaFunc,
+  glAreTexturesResident,
+  glArrayElement,
+  glAttachShader,
+  glBegin,
+  glBeginQuery,
+  glBindAttribLocation,
+  glBindBuffer,
+  glBindTexture,
+  glBitmap,
+  glBlendColor,
+  glBlendEquation,
+  glBlendEquationSeparate,
+  glBlendFunc,
+  glBlendFuncSeparate,
+  glBufferData,
+  glBufferSubData,
+  glCallList,
+  glCallLists,
+  glClear,
+  glClearAccum,
+  glClearColor,
+  glClearDepth,
+  glClearIndex,
+  glClearStencil,
+  glClientActiveTexture,
+  glClipPlane,
+  glColor3b,
+  glColor3bv,
+  glColor3d,
+  glColor3dv,
+  glColor3f,
+  glColor3fv,
+  glColor3i,
+  glColor3iv,
+  glColor3s,
+  glColor3sv,
+  glColor3ub,
+  glColor3ubv,
+  glColor3ui,
+  glColor3uiv,
+  glColor3us,
+  glColor3usv,
+  glColor4b,
+  glColor4bv,
+  glColor4d,
+  glColor4dv,
+  glColor4f,
+  glColor4fv,
+  glColor4i,
+  glColor4iv,
+  glColor4s,
+  glColor4sv,
+  glColor4ub,
+  glColor4ubv,
+  glColor4ui,
+  glColor4uiv,
+  glColor4us,
+  glColor4usv,
+  glColorMask,
+  glColorMaterial,
+  glColorPointer,
+  glCompileShader,
+  glCompressedTexImage1D,
+  glCompressedTexImage2D,
+  glCompressedTexImage3D,
+  glCompressedTexSubImage1D,
+  glCompressedTexSubImage2D,
+  glCompressedTexSubImage3D,
+  glCopyPixels,
+  glCopyTexImage1D,
+  glCopyTexImage2D,
+  glCopyTexSubImage1D,
+  glCopyTexSubImage2D,
+  glCopyTexSubImage3D,
+  glCreateProgram,
+  glCreateShader,
+  glCullFace,
+  glDeleteBuffers,
+  glDeleteLists,
+  glDeleteProgram,
+  glDeleteQueries,
+  glDeleteShader,
+  glDeleteTextures,
+  glDepthFunc,
+  glDepthMask,
+  glDepthRange,
+  glDetachShader,
+  glDisable,
+  glDisableClientState,
+  glDisableVertexAttribArray,
+  glDrawArrays,
+  glDrawBuffer,
+  glDrawBuffers,
+  glDrawElements,
+  glDrawPixels,
+  glDrawRangeElements,
+  glEdgeFlag,
+  glEdgeFlagPointer,
+  glEdgeFlagv,
+  glEnable,
+  glEnableClientState,
+  glEnableVertexAttribArray,
+  glEnd,
+  glEndList,
+  glEndQuery,
+  glEvalCoord1d,
+  glEvalCoord1dv,
+  glEvalCoord1f,
+  glEvalCoord1fv,
+  glEvalCoord2d,
+  glEvalCoord2dv,
+  glEvalCoord2f,
+  glEvalCoord2fv,
+  glEvalMesh1,
+  glEvalMesh2,
+  glEvalPoint1,
+  glEvalPoint2,
+  glFeedbackBuffer,
+  glFinish,
+  glFlush,
+  glFogCoordPointer,
+  glFogCoordd,
+  glFogCoorddv,
+  glFogCoordf,
+  glFogCoordfv,
+  glFogf,
+  glFogfv,
+  glFogi,
+  glFogiv,
+  glFrontFace,
+  glFrustum,
+  glGenBuffers,
+  glGenLists,
+  glGenQueries,
+  glGenTextures,
+  glGetActiveAttrib,
+  glGetActiveUniform,
+  glGetAttachedShaders,
+  glGetAttribLocation,
+  glGetBooleanv,
+  glGetBufferParameteriv,
+  glGetBufferPointerv,
+  glGetBufferSubData,
+  glGetClipPlane,
+  glGetCompressedTexImage,
+  glGetDoublev,
+  glGetError,
+  glGetFloatv,
+  glGetIntegerv,
+  glGetLightfv,
+  glGetLightiv,
+  glGetMapdv,
+  glGetMapfv,
+  glGetMapiv,
+  glGetMaterialfv,
+  glGetMaterialiv,
+  glGetPixelMapfv,
+  glGetPixelMapuiv,
+  glGetPixelMapusv,
+  glGetPointerv,
+  glGetPolygonStipple,
+  glGetProgramInfoLog,
+  glGetProgramiv,
+  glGetQueryObjectiv,
+  glGetQueryObjectuiv,
+  glGetQueryiv,
+  glGetShaderInfoLog,
+  glGetShaderSource,
+  glGetShaderiv,
+  glGetString,
+  glGetTexEnvfv,
+  glGetTexEnviv,
+  glGetTexGendv,
+  glGetTexGenfv,
+  glGetTexGeniv,
+  glGetTexImage,
+  glGetTexLevelParameterfv,
+  glGetTexLevelParameteriv,
+  glGetTexParameterfv,
+  glGetTexParameteriv,
+  glGetUniformLocation,
+  glGetUniformfv,
+  glGetUniformiv,
+  glGetVertexAttribPointerv,
+  glGetVertexAttribdv,
+  glGetVertexAttribfv,
+  glGetVertexAttribiv,
+  glHint,
+  glIndexMask,
+  glIndexPointer,
+  glIndexd,
+  glIndexdv,
+  glIndexf,
+  glIndexfv,
+  glIndexi,
+  glIndexiv,
+  glIndexs,
+  glIndexsv,
+  glIndexub,
+  glIndexubv,
+  glInitNames,
+  glInterleavedArrays,
+  glIsBuffer,
+  glIsEnabled,
+  glIsList,
+  glIsProgram,
+  glIsQuery,
+  glIsShader,
+  glIsTexture,
+  glLightModelf,
+  glLightModelfv,
+  glLightModeli,
+  glLightModeliv,
+  glLightf,
+  glLightfv,
+  glLighti,
+  glLightiv,
+  glLineStipple,
+  glLineWidth,
+  glLinkProgram,
+  glListBase,
+  glLoadIdentity,
+  glLoadMatrixd,
+  glLoadMatrixf,
+  glLoadName,
+  glLoadTransposeMatrixd,
+  glLoadTransposeMatrixf,
+  glLogicOp,
+  glMap1d,
+  glMap1f,
+  glMap2d,
+  glMap2f,
+  glMapBuffer,
+  glMapGrid1d,
+  glMapGrid1f,
+  glMapGrid2d,
+  glMapGrid2f,
+  glMaterialf,
+  glMaterialfv,
+  glMateriali,
+  glMaterialiv,
+  glMatrixMode,
+  glMultMatrixd,
+  glMultMatrixf,
+  glMultTransposeMatrixd,
+  glMultTransposeMatrixf,
+  glMultiDrawArrays,
+  glMultiDrawElements,
+  glMultiTexCoord1d,
+  glMultiTexCoord1dv,
+  glMultiTexCoord1f,
+  glMultiTexCoord1fv,
+  glMultiTexCoord1i,
+  glMultiTexCoord1iv,
+  glMultiTexCoord1s,
+  glMultiTexCoord1sv,
+  glMultiTexCoord2d,
+  glMultiTexCoord2dv,
+  glMultiTexCoord2f,
+  glMultiTexCoord2fv,
+  glMultiTexCoord2i,
+  glMultiTexCoord2iv,
+  glMultiTexCoord2s,
+  glMultiTexCoord2sv,
+  glMultiTexCoord3d,
+  glMultiTexCoord3dv,
+  glMultiTexCoord3f,
+  glMultiTexCoord3fv,
+  glMultiTexCoord3i,
+  glMultiTexCoord3iv,
+  glMultiTexCoord3s,
+  glMultiTexCoord3sv,
+  glMultiTexCoord4d,
+  glMultiTexCoord4dv,
+  glMultiTexCoord4f,
+  glMultiTexCoord4fv,
+  glMultiTexCoord4i,
+  glMultiTexCoord4iv,
+  glMultiTexCoord4s,
+  glMultiTexCoord4sv,
+  glNewList,
+  glNormal3b,
+  glNormal3bv,
+  glNormal3d,
+  glNormal3dv,
+  glNormal3f,
+  glNormal3fv,
+  glNormal3i,
+  glNormal3iv,
+  glNormal3s,
+  glNormal3sv,
+  glNormalPointer,
+  glOrtho,
+  glPassThrough,
+  glPixelMapfv,
+  glPixelMapuiv,
+  glPixelMapusv,
+  glPixelStoref,
+  glPixelStorei,
+  glPixelTransferf,
+  glPixelTransferi,
+  glPixelZoom,
+  glPointParameterf,
+  glPointParameterfv,
+  glPointParameteri,
+  glPointParameteriv,
+  glPointSize,
+  glPolygonMode,
+  glPolygonOffset,
+  glPolygonStipple,
+  glPopAttrib,
+  glPopClientAttrib,
+  glPopMatrix,
+  glPopName,
+  glPrioritizeTextures,
+  glPushAttrib,
+  glPushClientAttrib,
+  glPushMatrix,
+  glPushName,
+  glRasterPos2d,
+  glRasterPos2dv,
+  glRasterPos2f,
+  glRasterPos2fv,
+  glRasterPos2i,
+  glRasterPos2iv,
+  glRasterPos2s,
+  glRasterPos2sv,
+  glRasterPos3d,
+  glRasterPos3dv,
+  glRasterPos3f,
+  glRasterPos3fv,
+  glRasterPos3i,
+  glRasterPos3iv,
+  glRasterPos3s,
+  glRasterPos3sv,
+  glRasterPos4d,
+  glRasterPos4dv,
+  glRasterPos4f,
+  glRasterPos4fv,
+  glRasterPos4i,
+  glRasterPos4iv,
+  glRasterPos4s,
+  glRasterPos4sv,
+  glReadBuffer,
+  glReadPixels,
+  glRectd,
+  glRectdv,
+  glRectf,
+  glRectfv,
+  glRecti,
+  glRectiv,
+  glRects,
+  glRectsv,
+  glRenderMode,
+  glRotated,
+  glRotatef,
+  glSampleCoverage,
+  glScaled,
+  glScalef,
+  glScissor,
+  glSecondaryColor3b,
+  glSecondaryColor3bv,
+  glSecondaryColor3d,
+  glSecondaryColor3dv,
+  glSecondaryColor3f,
+  glSecondaryColor3fv,
+  glSecondaryColor3i,
+  glSecondaryColor3iv,
+  glSecondaryColor3s,
+  glSecondaryColor3sv,
+  glSecondaryColor3ub,
+  glSecondaryColor3ubv,
+  glSecondaryColor3ui,
+  glSecondaryColor3uiv,
+  glSecondaryColor3us,
+  glSecondaryColor3usv,
+  glSecondaryColorPointer,
+  glSelectBuffer,
+  glShadeModel,
+  glShaderSource,
+  glStencilFunc,
+  glStencilFuncSeparate,
+  glStencilMask,
+  glStencilMaskSeparate,
+  glStencilOp,
+  glStencilOpSeparate,
+  glTexCoord1d,
+  glTexCoord1dv,
+  glTexCoord1f,
+  glTexCoord1fv,
+  glTexCoord1i,
+  glTexCoord1iv,
+  glTexCoord1s,
+  glTexCoord1sv,
+  glTexCoord2d,
+  glTexCoord2dv,
+  glTexCoord2f,
+  glTexCoord2fv,
+  glTexCoord2i,
+  glTexCoord2iv,
+  glTexCoord2s,
+  glTexCoord2sv,
+  glTexCoord3d,
+  glTexCoord3dv,
+  glTexCoord3f,
+  glTexCoord3fv,
+  glTexCoord3i,
+  glTexCoord3iv,
+  glTexCoord3s,
+  glTexCoord3sv,
+  glTexCoord4d,
+  glTexCoord4dv,
+  glTexCoord4f,
+  glTexCoord4fv,
+  glTexCoord4i,
+  glTexCoord4iv,
+  glTexCoord4s,
+  glTexCoord4sv,
+  glTexCoordPointer,
+  glTexEnvf,
+  glTexEnvfv,
+  glTexEnvi,
+  glTexEnviv,
+  glTexGend,
+  glTexGendv,
+  glTexGenf,
+  glTexGenfv,
+  glTexGeni,
+  glTexGeniv,
+  glTexImage1D,
+  glTexImage2D,
+  glTexImage3D,
+  glTexParameterf,
+  glTexParameterfv,
+  glTexParameteri,
+  glTexParameteriv,
+  glTexSubImage1D,
+  glTexSubImage2D,
+  glTexSubImage3D,
+  glTranslated,
+  glTranslatef,
+  glUniform1f,
+  glUniform1fv,
+  glUniform1i,
+  glUniform1iv,
+  glUniform2f,
+  glUniform2fv,
+  glUniform2i,
+  glUniform2iv,
+  glUniform3f,
+  glUniform3fv,
+  glUniform3i,
+  glUniform3iv,
+  glUniform4f,
+  glUniform4fv,
+  glUniform4i,
+  glUniform4iv,
+  glUniformMatrix2fv,
+  glUniformMatrix2x3fv,
+  glUniformMatrix2x4fv,
+  glUniformMatrix3fv,
+  glUniformMatrix3x2fv,
+  glUniformMatrix3x4fv,
+  glUniformMatrix4fv,
+  glUniformMatrix4x2fv,
+  glUniformMatrix4x3fv,
+  glUnmapBuffer,
+  glUseProgram,
+  glValidateProgram,
+  glVertex2d,
+  glVertex2dv,
+  glVertex2f,
+  glVertex2fv,
+  glVertex2i,
+  glVertex2iv,
+  glVertex2s,
+  glVertex2sv,
+  glVertex3d,
+  glVertex3dv,
+  glVertex3f,
+  glVertex3fv,
+  glVertex3i,
+  glVertex3iv,
+  glVertex3s,
+  glVertex3sv,
+  glVertex4d,
+  glVertex4dv,
+  glVertex4f,
+  glVertex4fv,
+  glVertex4i,
+  glVertex4iv,
+  glVertex4s,
+  glVertex4sv,
+  glVertexAttrib1d,
+  glVertexAttrib1dv,
+  glVertexAttrib1f,
+  glVertexAttrib1fv,
+  glVertexAttrib1s,
+  glVertexAttrib1sv,
+  glVertexAttrib2d,
+  glVertexAttrib2dv,
+  glVertexAttrib2f,
+  glVertexAttrib2fv,
+  glVertexAttrib2s,
+  glVertexAttrib2sv,
+  glVertexAttrib3d,
+  glVertexAttrib3dv,
+  glVertexAttrib3f,
+  glVertexAttrib3fv,
+  glVertexAttrib3s,
+  glVertexAttrib3sv,
+  glVertexAttrib4Nbv,
+  glVertexAttrib4Niv,
+  glVertexAttrib4Nsv,
+  glVertexAttrib4Nub,
+  glVertexAttrib4Nubv,
+  glVertexAttrib4Nuiv,
+  glVertexAttrib4Nusv,
+  glVertexAttrib4bv,
+  glVertexAttrib4d,
+  glVertexAttrib4dv,
+  glVertexAttrib4f,
+  glVertexAttrib4fv,
+  glVertexAttrib4iv,
+  glVertexAttrib4s,
+  glVertexAttrib4sv,
+  glVertexAttrib4ubv,
+  glVertexAttrib4uiv,
+  glVertexAttrib4usv,
+  glVertexAttribPointer,
+  glVertexPointer,
+  glViewport,
+  glWindowPos2d,
+  glWindowPos2dv,
+  glWindowPos2f,
+  glWindowPos2fv,
+  glWindowPos2i,
+  glWindowPos2iv,
+  glWindowPos2s,
+  glWindowPos2sv,
+  glWindowPos3d,
+  glWindowPos3dv,
+  glWindowPos3f,
+  glWindowPos3fv,
+  glWindowPos3i,
+  glWindowPos3iv,
+  glWindowPos3s,
+  glWindowPos3sv
+) where
+
+import Graphics.GL.Types
+import Graphics.GL.Tokens
+import Graphics.GL.Functions
diff --git a/src/Graphics/GL/WIN.hs b/src/Graphics/GL/WIN.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/WIN.hs
@@ -0,0 +1,21 @@
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.WIN
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+-- A convenience module, combining all raw modules containing WIN extensions.
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.WIN (
+  module Graphics.GL.WIN.PhongShading,
+  module Graphics.GL.WIN.SpecularFog
+) where
+
+import Graphics.GL.WIN.PhongShading
+import Graphics.GL.WIN.SpecularFog
diff --git a/src/Graphics/GL/WIN/PhongShading.hs b/src/Graphics/GL/WIN/PhongShading.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/WIN/PhongShading.hs
@@ -0,0 +1,24 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.WIN.PhongShading
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.WIN.PhongShading (
+  -- * Extension Support
+  glGetWINPhongShading,
+  gl_WIN_phong_shading,
+  -- * Enums
+  pattern GL_PHONG_HINT_WIN,
+  pattern GL_PHONG_WIN
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/GL/WIN/SpecularFog.hs b/src/Graphics/GL/WIN/SpecularFog.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/GL/WIN/SpecularFog.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE PatternSynonyms #-}
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.GL.WIN.SpecularFog
+-- Copyright   :  (c) Sven Panne 2019
+-- License     :  BSD3
+--
+-- Maintainer  :  Sven Panne <svenpanne@gmail.com>
+-- Stability   :  stable
+-- Portability :  portable
+--
+--------------------------------------------------------------------------------
+
+module Graphics.GL.WIN.SpecularFog (
+  -- * Extension Support
+  glGetWINSpecularFog,
+  gl_WIN_specular_fog,
+  -- * Enums
+  pattern GL_FOG_SPECULAR_TEXTURE_WIN
+) where
+
+import Graphics.GL.ExtensionPredicates
+import Graphics.GL.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw.hs b/src/Graphics/Rendering/OpenGL/Raw.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw.hs
+++ /dev/null
@@ -1,27 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- A convenience module, combining all raw OpenGL modules.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw (
-   module Graphics.Rendering.OpenGL.Raw.ARB,
-   module Graphics.Rendering.OpenGL.Raw.Core32,
-   module Graphics.Rendering.OpenGL.Raw.EXT,
-   module Graphics.Rendering.OpenGL.Raw.NV,
-   module Graphics.Rendering.OpenGL.Raw.GetProcAddress
-) where
-
-import Graphics.Rendering.OpenGL.Raw.ARB
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Graphics.Rendering.OpenGL.Raw.EXT
-import Graphics.Rendering.OpenGL.Raw.NV
-import Graphics.Rendering.OpenGL.Raw.GetProcAddress
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB.hs
+++ /dev/null
@@ -1,147 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- A convenience module, combining all raw modules containing ARB extensions.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB (
-   module Graphics.Rendering.OpenGL.Raw.ARB.Multitexture,
-   module Graphics.Rendering.OpenGL.Raw.ARB.TransposeMatrix,
-   module Graphics.Rendering.OpenGL.Raw.ARB.Multisample,
-   module Graphics.Rendering.OpenGL.Raw.ARB.TextureEnvAdd,
-   module Graphics.Rendering.OpenGL.Raw.ARB.TextureCubeMap,
-   module Graphics.Rendering.OpenGL.Raw.ARB.TextureCompression,
-   module Graphics.Rendering.OpenGL.Raw.ARB.TextureBorderClamp,
-   module Graphics.Rendering.OpenGL.Raw.ARB.PointParameters,
-   module Graphics.Rendering.OpenGL.Raw.ARB.VertexBlend,
-   module Graphics.Rendering.OpenGL.Raw.ARB.MatrixPalette,
-   module Graphics.Rendering.OpenGL.Raw.ARB.TextureEnvCombine,
-   module Graphics.Rendering.OpenGL.Raw.ARB.TextureEnvCrossbar,
-   module Graphics.Rendering.OpenGL.Raw.ARB.TextureEnvDot3,
-   module Graphics.Rendering.OpenGL.Raw.ARB.TextureMirroredRepeat,
-   module Graphics.Rendering.OpenGL.Raw.ARB.DepthTexture,
-   module Graphics.Rendering.OpenGL.Raw.ARB.Shadow,
-   module Graphics.Rendering.OpenGL.Raw.ARB.ShadowAmbient,
-   module Graphics.Rendering.OpenGL.Raw.ARB.WindowPos,
-   module Graphics.Rendering.OpenGL.Raw.ARB.VertexProgram,
-   module Graphics.Rendering.OpenGL.Raw.ARB.FragmentProgram,
-   module Graphics.Rendering.OpenGL.Raw.ARB.VertexBufferObject,
-   module Graphics.Rendering.OpenGL.Raw.ARB.OcclusionQuery,
-   module Graphics.Rendering.OpenGL.Raw.ARB.ShaderObjects,
-   module Graphics.Rendering.OpenGL.Raw.ARB.VertexShader,
-   module Graphics.Rendering.OpenGL.Raw.ARB.FragmentShader,
-   module Graphics.Rendering.OpenGL.Raw.ARB.ShadingLanguage100,
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.TextureNonPowerOfTwo,
-   module Graphics.Rendering.OpenGL.Raw.ARB.PointSprite,
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.FragmentProgramShadow,
-   module Graphics.Rendering.OpenGL.Raw.ARB.DrawBuffers,
-   module Graphics.Rendering.OpenGL.Raw.ARB.TextureRectangle,
-   module Graphics.Rendering.OpenGL.Raw.ARB.ColorBufferFloat,
-   module Graphics.Rendering.OpenGL.Raw.ARB.HalfFloatPixel,
-   module Graphics.Rendering.OpenGL.Raw.ARB.TextureFloat,
-   module Graphics.Rendering.OpenGL.Raw.ARB.PixelBufferObject,
-   module Graphics.Rendering.OpenGL.Raw.ARB.DepthBufferFloat,
-   module Graphics.Rendering.OpenGL.Raw.ARB.DrawInstanced,
-   module Graphics.Rendering.OpenGL.Raw.ARB.FramebufferObject,
-   module Graphics.Rendering.OpenGL.Raw.ARB.FramebufferSRGB,
-   module Graphics.Rendering.OpenGL.Raw.ARB.GeometryShader4,
-   module Graphics.Rendering.OpenGL.Raw.ARB.HalfFloatVertex,
-   module Graphics.Rendering.OpenGL.Raw.ARB.InstancedArrays,
-   module Graphics.Rendering.OpenGL.Raw.ARB.MapBufferRange,
-   module Graphics.Rendering.OpenGL.Raw.ARB.TextureBufferObject,
-   module Graphics.Rendering.OpenGL.Raw.ARB.TextureCompressionRGTC,
-   module Graphics.Rendering.OpenGL.Raw.ARB.TextureRG,
-   module Graphics.Rendering.OpenGL.Raw.ARB.VertexArrayObject,
-   module Graphics.Rendering.OpenGL.Raw.ARB.UniformBufferObject,
-   module Graphics.Rendering.OpenGL.Raw.ARB.Compatibility,
-   module Graphics.Rendering.OpenGL.Raw.ARB.CopyBuffer,
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.ShaderTextureLod,
-   module Graphics.Rendering.OpenGL.Raw.ARB.DepthClamp,
-   module Graphics.Rendering.OpenGL.Raw.ARB.DrawElementsBaseVertex,
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.FragmentCoordConventions,
-   module Graphics.Rendering.OpenGL.Raw.ARB.ProvokingVertex,
-   module Graphics.Rendering.OpenGL.Raw.ARB.SeamlessCubeMap,
-   module Graphics.Rendering.OpenGL.Raw.ARB.Sync,
-   module Graphics.Rendering.OpenGL.Raw.ARB.TextureMultisample,
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.VertexArrayBgra,
-   module Graphics.Rendering.OpenGL.Raw.ARB.DrawBuffersBlend,
-   module Graphics.Rendering.OpenGL.Raw.ARB.SampleShading,
-   module Graphics.Rendering.OpenGL.Raw.ARB.TextureCubeMapArray,
-   module Graphics.Rendering.OpenGL.Raw.ARB.TextureGather,
-   -- module Graphics.Rendering.OpenGL.Raw.ARB.TextureQueryLod,
-   module Graphics.Rendering.OpenGL.Raw.ARB.CreateContextProfile
-) where
-
-import Graphics.Rendering.OpenGL.Raw.ARB.Multitexture
-import Graphics.Rendering.OpenGL.Raw.ARB.TransposeMatrix
-import Graphics.Rendering.OpenGL.Raw.ARB.Multisample
-import Graphics.Rendering.OpenGL.Raw.ARB.TextureEnvAdd
-import Graphics.Rendering.OpenGL.Raw.ARB.TextureCubeMap
-import Graphics.Rendering.OpenGL.Raw.ARB.TextureCompression
-import Graphics.Rendering.OpenGL.Raw.ARB.TextureBorderClamp
-import Graphics.Rendering.OpenGL.Raw.ARB.PointParameters
-import Graphics.Rendering.OpenGL.Raw.ARB.VertexBlend
-import Graphics.Rendering.OpenGL.Raw.ARB.MatrixPalette
-import Graphics.Rendering.OpenGL.Raw.ARB.TextureEnvCombine
-import Graphics.Rendering.OpenGL.Raw.ARB.TextureEnvCrossbar
-import Graphics.Rendering.OpenGL.Raw.ARB.TextureEnvDot3
-import Graphics.Rendering.OpenGL.Raw.ARB.TextureMirroredRepeat
-import Graphics.Rendering.OpenGL.Raw.ARB.DepthTexture
-import Graphics.Rendering.OpenGL.Raw.ARB.Shadow
-import Graphics.Rendering.OpenGL.Raw.ARB.ShadowAmbient
-import Graphics.Rendering.OpenGL.Raw.ARB.WindowPos
-import Graphics.Rendering.OpenGL.Raw.ARB.VertexProgram
-import Graphics.Rendering.OpenGL.Raw.ARB.FragmentProgram
-import Graphics.Rendering.OpenGL.Raw.ARB.VertexBufferObject
-import Graphics.Rendering.OpenGL.Raw.ARB.OcclusionQuery
-import Graphics.Rendering.OpenGL.Raw.ARB.ShaderObjects
-import Graphics.Rendering.OpenGL.Raw.ARB.VertexShader
-import Graphics.Rendering.OpenGL.Raw.ARB.FragmentShader
-import Graphics.Rendering.OpenGL.Raw.ARB.ShadingLanguage100
--- import Graphics.Rendering.OpenGL.Raw.ARB.TextureNonPowerOfTwo
-import Graphics.Rendering.OpenGL.Raw.ARB.PointSprite
--- import Graphics.Rendering.OpenGL.Raw.ARB.FragmentProgramShadow
-import Graphics.Rendering.OpenGL.Raw.ARB.DrawBuffers
-import Graphics.Rendering.OpenGL.Raw.ARB.TextureRectangle
-import Graphics.Rendering.OpenGL.Raw.ARB.ColorBufferFloat
-import Graphics.Rendering.OpenGL.Raw.ARB.HalfFloatPixel
-import Graphics.Rendering.OpenGL.Raw.ARB.TextureFloat
-import Graphics.Rendering.OpenGL.Raw.ARB.PixelBufferObject
-import Graphics.Rendering.OpenGL.Raw.ARB.DepthBufferFloat
-import Graphics.Rendering.OpenGL.Raw.ARB.DrawInstanced
-import Graphics.Rendering.OpenGL.Raw.ARB.FramebufferObject
-import Graphics.Rendering.OpenGL.Raw.ARB.FramebufferSRGB
-import Graphics.Rendering.OpenGL.Raw.ARB.GeometryShader4
-import Graphics.Rendering.OpenGL.Raw.ARB.HalfFloatVertex
-import Graphics.Rendering.OpenGL.Raw.ARB.InstancedArrays
-import Graphics.Rendering.OpenGL.Raw.ARB.MapBufferRange
-import Graphics.Rendering.OpenGL.Raw.ARB.TextureBufferObject
-import Graphics.Rendering.OpenGL.Raw.ARB.TextureCompressionRGTC
-import Graphics.Rendering.OpenGL.Raw.ARB.TextureRG
-import Graphics.Rendering.OpenGL.Raw.ARB.VertexArrayObject
-import Graphics.Rendering.OpenGL.Raw.ARB.UniformBufferObject
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
-import Graphics.Rendering.OpenGL.Raw.ARB.CopyBuffer
--- import Graphics.Rendering.OpenGL.Raw.ARB.ShaderTextureLod
-import Graphics.Rendering.OpenGL.Raw.ARB.DepthClamp
-import Graphics.Rendering.OpenGL.Raw.ARB.DrawElementsBaseVertex
--- import Graphics.Rendering.OpenGL.Raw.ARB.FragmentCoordConventions
-import Graphics.Rendering.OpenGL.Raw.ARB.ProvokingVertex
-import Graphics.Rendering.OpenGL.Raw.ARB.SeamlessCubeMap
-import Graphics.Rendering.OpenGL.Raw.ARB.Sync
-import Graphics.Rendering.OpenGL.Raw.ARB.TextureMultisample
--- import Graphics.Rendering.OpenGL.Raw.ARB.VertexArrayBgra
-import Graphics.Rendering.OpenGL.Raw.ARB.DrawBuffersBlend
-import Graphics.Rendering.OpenGL.Raw.ARB.SampleShading
-import Graphics.Rendering.OpenGL.Raw.ARB.TextureCubeMapArray
-import Graphics.Rendering.OpenGL.Raw.ARB.TextureGather
--- import Graphics.Rendering.OpenGL.Raw.ARB.TextureQueryLod
-import Graphics.Rendering.OpenGL.Raw.ARB.CreateContextProfile
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/ColorBufferFloat.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/ColorBufferFloat.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/ColorBufferFloat.hs
+++ /dev/null
@@ -1,29 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.ColorBufferFloat
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All tokens from the ARB_color_buffer_float extension, see
--- <http://www.opengl.org/registry/specs/ARB/color_buffer_float.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.ColorBufferFloat (
-   -- * Tokens
-   gl_RGBA_FLOAT_MODE,
-   gl_CLAMP_VERTEX_COLOR,
-   gl_CLAMP_FRAGMENT_COLOR,
-   gl_CLAMP_READ_COLOR,
-   gl_FIXED_ONLY
-) where
-
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_RGBA_FLOAT_MODE :: GLenum
-gl_RGBA_FLOAT_MODE = 0x8820
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/Compatibility.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/Compatibility.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/Compatibility.hs
+++ /dev/null
@@ -1,24 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the ARB_compatibility extension, see
--- <http://www.opengl.org/registry/specs/ARB/compatibility.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.Compatibility (
-   -- * Functions
-   module Graphics.Rendering.OpenGL.Raw.ARB.Compatibility.Functions,
-   -- * Tokens
-   module Graphics.Rendering.OpenGL.Raw.ARB.Compatibility.Tokens
-) where
-
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility.Functions
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/Compatibility/Functions.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/Compatibility/Functions.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/Compatibility/Functions.hs
+++ /dev/null
@@ -1,793 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
--- #hide
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.Compatibility.Functions
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions from the ARB_compatibility extension, see
--- <http://www.opengl.org/registry/specs/ARB/compatibility.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.Compatibility.Functions (
-   glAccum,
-   glAlphaFunc,
-   glAreTexturesResident,
-   glArrayElement,
-   glBegin,
-   glBitmap,
-   glCallList,
-   glCallLists,
-   glClearAccum,
-   glClearIndex,
-   glClientActiveTexture,
-   glClipPlane,
-   glColor3b,
-   glColor3bv,
-   glColor3d,
-   glColor3dv,
-   glColor3f,
-   glColor3fv,
-   glColor3i,
-   glColor3iv,
-   glColor3s,
-   glColor3sv,
-   glColor3ub,
-   glColor3ubv,
-   glColor3ui,
-   glColor3uiv,
-   glColor3us,
-   glColor3usv,
-   glColor4b,
-   glColor4bv,
-   glColor4d,
-   glColor4dv,
-   glColor4f,
-   glColor4fv,
-   glColor4i,
-   glColor4iv,
-   glColor4s,
-   glColor4sv,
-   glColor4ub,
-   glColor4ubv,
-   glColor4ui,
-   glColor4uiv,
-   glColor4us,
-   glColor4usv,
-   glColorMaterial,
-   glColorPointer,
-   glColorSubTable,
-   glColorTable,
-   glColorTableParameterfv,
-   glColorTableParameteriv,
-   glConvolutionFilter1D,
-   glConvolutionFilter2D,
-   glConvolutionParameterf,
-   glConvolutionParameterfv,
-   glConvolutionParameteri,
-   glConvolutionParameteriv,
-   glCopyColorSubTable,
-   glCopyColorTable,
-   glCopyConvolutionFilter1D,
-   glCopyConvolutionFilter2D,
-   glCopyPixels,
-   glDeleteLists,
-   glDisableClientState,
-   glDrawPixels,
-   glEdgeFlag,
-   glEdgeFlagPointer,
-   glEdgeFlagv,
-   glEnableClientState,
-   glEnd,
-   glEndList,
-   glEvalCoord1d,
-   glEvalCoord1dv,
-   glEvalCoord1f,
-   glEvalCoord1fv,
-   glEvalCoord2d,
-   glEvalCoord2dv,
-   glEvalCoord2f,
-   glEvalCoord2fv,
-   glEvalMesh1,
-   glEvalMesh2,
-   glEvalPoint1,
-   glEvalPoint2,
-   glFeedbackBuffer,
-   glFogCoordPointer,
-   glFogCoordd,
-   glFogCoorddv,
-   glFogCoordf,
-   glFogCoordfv,
-   glFogf,
-   glFogfv,
-   glFogi,
-   glFogiv,
-   glFrustum,
-   glGenLists,
-   glGetClipPlane,
-   glGetColorTable,
-   glGetColorTableParameterfv,
-   glGetColorTableParameteriv,
-   glGetConvolutionFilter,
-   glGetConvolutionParameterfv,
-   glGetConvolutionParameteriv,
-   glGetHistogram,
-   glGetHistogramParameterfv,
-   glGetHistogramParameteriv,
-   glGetLightfv,
-   glGetLightiv,
-   glGetMapdv,
-   glGetMapfv,
-   glGetMapiv,
-   glGetMaterialfv,
-   glGetMaterialiv,
-   glGetMinmax,
-   glGetMinmaxParameterfv,
-   glGetMinmaxParameteriv,
-   glGetPixelMapfv,
-   glGetPixelMapuiv,
-   glGetPixelMapusv,
-   glGetPolygonStipple,
-   glGetSeparableFilter,
-   glGetTexEnvfv,
-   glGetTexEnviv,
-   glGetTexGendv,
-   glGetTexGenfv,
-   glGetTexGeniv,
-   glHistogram,
-   glIndexMask,
-   glIndexPointer,
-   glIndexd,
-   glIndexdv,
-   glIndexf,
-   glIndexfv,
-   glIndexi,
-   glIndexiv,
-   glIndexs,
-   glIndexsv,
-   glIndexub,
-   glIndexubv,
-   glInitNames,
-   glInterleavedArrays,
-   glIsList,
-   glLightModelf,
-   glLightModelfv,
-   glLightModeli,
-   glLightModeliv,
-   glLightf,
-   glLightfv,
-   glLighti,
-   glLightiv,
-   glLineStipple,
-   glListBase,
-   glLoadIdentity,
-   glLoadMatrixd,
-   glLoadMatrixf,
-   glLoadName,
-   glLoadTransposeMatrixd,
-   glLoadTransposeMatrixf,
-   glMap1d,
-   glMap1f,
-   glMap2d,
-   glMap2f,
-   glMapGrid1d,
-   glMapGrid1f,
-   glMapGrid2d,
-   glMapGrid2f,
-   glMaterialf,
-   glMaterialfv,
-   glMateriali,
-   glMaterialiv,
-   glMatrixMode,
-   glMinmax,
-   glMultMatrixd,
-   glMultMatrixf,
-   glMultTransposeMatrixd,
-   glMultTransposeMatrixf,
-   glMultiTexCoord1d,
-   glMultiTexCoord1dv,
-   glMultiTexCoord1f,
-   glMultiTexCoord1fv,
-   glMultiTexCoord1i,
-   glMultiTexCoord1iv,
-   glMultiTexCoord1s,
-   glMultiTexCoord1sv,
-   glMultiTexCoord2d,
-   glMultiTexCoord2dv,
-   glMultiTexCoord2f,
-   glMultiTexCoord2fv,
-   glMultiTexCoord2i,
-   glMultiTexCoord2iv,
-   glMultiTexCoord2s,
-   glMultiTexCoord2sv,
-   glMultiTexCoord3d,
-   glMultiTexCoord3dv,
-   glMultiTexCoord3f,
-   glMultiTexCoord3fv,
-   glMultiTexCoord3i,
-   glMultiTexCoord3iv,
-   glMultiTexCoord3s,
-   glMultiTexCoord3sv,
-   glMultiTexCoord4d,
-   glMultiTexCoord4dv,
-   glMultiTexCoord4f,
-   glMultiTexCoord4fv,
-   glMultiTexCoord4i,
-   glMultiTexCoord4iv,
-   glMultiTexCoord4s,
-   glMultiTexCoord4sv,
-   glNewList,
-   glNormal3b,
-   glNormal3bv,
-   glNormal3d,
-   glNormal3dv,
-   glNormal3f,
-   glNormal3fv,
-   glNormal3i,
-   glNormal3iv,
-   glNormal3s,
-   glNormal3sv,
-   glNormalPointer,
-   glOrtho,
-   glPassThrough,
-   glPixelMapfv,
-   glPixelMapuiv,
-   glPixelMapusv,
-   glPixelTransferf,
-   glPixelTransferi,
-   glPixelZoom,
-   glPolygonStipple,
-   glPopAttrib,
-   glPopClientAttrib,
-   glPopMatrix,
-   glPopName,
-   glPrioritizeTextures,
-   glPushAttrib,
-   glPushClientAttrib,
-   glPushMatrix,
-   glPushName,
-   glRasterPos2d,
-   glRasterPos2dv,
-   glRasterPos2f,
-   glRasterPos2fv,
-   glRasterPos2i,
-   glRasterPos2iv,
-   glRasterPos2s,
-   glRasterPos2sv,
-   glRasterPos3d,
-   glRasterPos3dv,
-   glRasterPos3f,
-   glRasterPos3fv,
-   glRasterPos3i,
-   glRasterPos3iv,
-   glRasterPos3s,
-   glRasterPos3sv,
-   glRasterPos4d,
-   glRasterPos4dv,
-   glRasterPos4f,
-   glRasterPos4fv,
-   glRasterPos4i,
-   glRasterPos4iv,
-   glRasterPos4s,
-   glRasterPos4sv,
-   glRectd,
-   glRectdv,
-   glRectf,
-   glRectfv,
-   glRecti,
-   glRectiv,
-   glRects,
-   glRectsv,
-   glRenderMode,
-   glResetHistogram,
-   glResetMinmax,
-   glRotated,
-   glRotatef,
-   glSamplePass,
-   glScaled,
-   glScalef,
-   glSecondaryColor3b,
-   glSecondaryColor3bv,
-   glSecondaryColor3d,
-   glSecondaryColor3dv,
-   glSecondaryColor3f,
-   glSecondaryColor3fv,
-   glSecondaryColor3i,
-   glSecondaryColor3iv,
-   glSecondaryColor3s,
-   glSecondaryColor3sv,
-   glSecondaryColor3ub,
-   glSecondaryColor3ubv,
-   glSecondaryColor3ui,
-   glSecondaryColor3uiv,
-   glSecondaryColor3us,
-   glSecondaryColor3usv,
-   glSecondaryColorPointer,
-   glSelectBuffer,
-   glSeparableFilter2D,
-   glShadeModel,
-   glTexCoord1d,
-   glTexCoord1dv,
-   glTexCoord1f,
-   glTexCoord1fv,
-   glTexCoord1i,
-   glTexCoord1iv,
-   glTexCoord1s,
-   glTexCoord1sv,
-   glTexCoord2d,
-   glTexCoord2dv,
-   glTexCoord2f,
-   glTexCoord2fv,
-   glTexCoord2i,
-   glTexCoord2iv,
-   glTexCoord2s,
-   glTexCoord2sv,
-   glTexCoord3d,
-   glTexCoord3dv,
-   glTexCoord3f,
-   glTexCoord3fv,
-   glTexCoord3i,
-   glTexCoord3iv,
-   glTexCoord3s,
-   glTexCoord3sv,
-   glTexCoord4d,
-   glTexCoord4dv,
-   glTexCoord4f,
-   glTexCoord4fv,
-   glTexCoord4i,
-   glTexCoord4iv,
-   glTexCoord4s,
-   glTexCoord4sv,
-   glTexCoordPointer,
-   glTexEnvf,
-   glTexEnvfv,
-   glTexEnvi,
-   glTexEnviv,
-   glTexGend,
-   glTexGendv,
-   glTexGenf,
-   glTexGenfv,
-   glTexGeni,
-   glTexGeniv,
-   glTranslated,
-   glTranslatef,
-   glVertex2d,
-   glVertex2dv,
-   glVertex2f,
-   glVertex2fv,
-   glVertex2i,
-   glVertex2iv,
-   glVertex2s,
-   glVertex2sv,
-   glVertex3d,
-   glVertex3dv,
-   glVertex3f,
-   glVertex3fv,
-   glVertex3i,
-   glVertex3iv,
-   glVertex3s,
-   glVertex3sv,
-   glVertex4d,
-   glVertex4dv,
-   glVertex4f,
-   glVertex4fv,
-   glVertex4i,
-   glVertex4iv,
-   glVertex4s,
-   glVertex4sv,
-   glVertexPointer,
-   glWindowPos2d,
-   glWindowPos2dv,
-   glWindowPos2f,
-   glWindowPos2fv,
-   glWindowPos2i,
-   glWindowPos2iv,
-   glWindowPos2s,
-   glWindowPos2sv,
-   glWindowPos3d,
-   glWindowPos3dv,
-   glWindowPos3f,
-   glWindowPos3fv,
-   glWindowPos3i,
-   glWindowPos3iv,
-   glWindowPos3s,
-   glWindowPos3sv
-) where
-
-import Foreign.Ptr
-import Graphics.Rendering.OpenGL.Raw.Core31
-import Graphics.Rendering.OpenGL.Raw.Extensions
-
-#include "HsOpenGLRaw.h"
-
-extensionNameString :: String
-extensionNameString = "GL_ARB_compatibility"
-
-EXTENSION_ENTRY(glAccum,GLenum -> GLfloat -> IO ())
-EXTENSION_ENTRY(glAlphaFunc,GLenum -> GLclampf -> IO ())
-EXTENSION_ENTRY(glAreTexturesResident,GLsizei -> Ptr GLuint -> Ptr GLboolean -> IO GLboolean)
-EXTENSION_ENTRY(glArrayElement,GLint -> IO ())
-EXTENSION_ENTRY(glBegin,GLenum -> IO ())
-EXTENSION_ENTRY(glBitmap,GLsizei -> GLsizei -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> Ptr GLubyte -> IO ())
-EXTENSION_ENTRY(glCallList,GLuint -> IO ())
-EXTENSION_ENTRY(glCallLists,GLsizei -> GLenum -> Ptr a -> IO ())
-EXTENSION_ENTRY(glClearAccum,GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-EXTENSION_ENTRY(glClearIndex,GLfloat -> IO ())
-EXTENSION_ENTRY(glClientActiveTexture,GLenum -> IO ())
-EXTENSION_ENTRY(glClipPlane,GLenum -> Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glColor3b,GLbyte -> GLbyte -> GLbyte -> IO ())
-EXTENSION_ENTRY(glColor3bv,Ptr GLbyte -> IO ())
-EXTENSION_ENTRY(glColor3d,GLdouble -> GLdouble -> GLdouble -> IO ())
-EXTENSION_ENTRY(glColor3dv,Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glColor3f,GLfloat -> GLfloat -> GLfloat -> IO ())
-EXTENSION_ENTRY(glColor3fv,Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glColor3i,GLint -> GLint -> GLint -> IO ())
-EXTENSION_ENTRY(glColor3iv,Ptr GLint -> IO ())
-EXTENSION_ENTRY(glColor3s,GLshort -> GLshort -> GLshort -> IO ())
-EXTENSION_ENTRY(glColor3sv,Ptr GLshort -> IO ())
-EXTENSION_ENTRY(glColor3ub,GLubyte -> GLubyte -> GLubyte -> IO ())
-EXTENSION_ENTRY(glColor3ubv,Ptr GLubyte -> IO ())
-EXTENSION_ENTRY(glColor3ui,GLuint -> GLuint -> GLuint -> IO ())
-EXTENSION_ENTRY(glColor3uiv,Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glColor3us,GLushort -> GLushort -> GLushort -> IO ())
-EXTENSION_ENTRY(glColor3usv,Ptr GLushort -> IO ())
-EXTENSION_ENTRY(glColor4b,GLbyte -> GLbyte -> GLbyte -> GLbyte -> IO ())
-EXTENSION_ENTRY(glColor4bv,Ptr GLbyte -> IO ())
-EXTENSION_ENTRY(glColor4d,GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-EXTENSION_ENTRY(glColor4dv,Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glColor4f,GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-EXTENSION_ENTRY(glColor4fv,Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glColor4i,GLint -> GLint -> GLint -> GLint -> IO ())
-EXTENSION_ENTRY(glColor4iv,Ptr GLint -> IO ())
-EXTENSION_ENTRY(glColor4s,GLshort -> GLshort -> GLshort -> GLshort -> IO ())
-EXTENSION_ENTRY(glColor4sv,Ptr GLshort -> IO ())
-EXTENSION_ENTRY(glColor4ub,GLubyte -> GLubyte -> GLubyte -> GLubyte -> IO ())
-EXTENSION_ENTRY(glColor4ubv,Ptr GLubyte -> IO ())
-EXTENSION_ENTRY(glColor4ui,GLuint -> GLuint -> GLuint -> GLuint -> IO ())
-EXTENSION_ENTRY(glColor4uiv,Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glColor4us,GLushort -> GLushort -> GLushort -> GLushort -> IO ())
-EXTENSION_ENTRY(glColor4usv,Ptr GLushort -> IO ())
-EXTENSION_ENTRY(glColorMaterial,GLenum -> GLenum -> IO ())
-EXTENSION_ENTRY(glColorPointer,GLint -> GLenum -> GLsizei -> Ptr a -> IO ())
-EXTENSION_ENTRY(glColorSubTable,GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
-EXTENSION_ENTRY(glColorTable,GLenum -> GLenum -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
-EXTENSION_ENTRY(glColorTableParameterfv,GLenum -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glColorTableParameteriv,GLenum -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glConvolutionFilter1D,GLenum -> GLenum -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
-EXTENSION_ENTRY(glConvolutionFilter2D,GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
-EXTENSION_ENTRY(glConvolutionParameterf,GLenum -> GLenum -> GLfloat -> IO ())
-EXTENSION_ENTRY(glConvolutionParameterfv,GLenum -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glConvolutionParameteri,GLenum -> GLenum -> GLint -> IO ())
-EXTENSION_ENTRY(glConvolutionParameteriv,GLenum -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glCopyColorSubTable,GLenum -> GLsizei -> GLint -> GLint -> GLsizei -> IO ())
-EXTENSION_ENTRY(glCopyColorTable,GLenum -> GLenum -> GLint -> GLint -> GLsizei -> IO ())
-EXTENSION_ENTRY(glCopyConvolutionFilter1D,GLenum -> GLenum -> GLint -> GLint -> GLsizei -> IO ())
-EXTENSION_ENTRY(glCopyConvolutionFilter2D,GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
-EXTENSION_ENTRY(glCopyPixels,GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> IO ())
-EXTENSION_ENTRY(glDeleteLists,GLuint -> GLsizei -> IO ())
-EXTENSION_ENTRY(glDisableClientState,GLenum -> IO ())
-EXTENSION_ENTRY(glDrawPixels,GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
-EXTENSION_ENTRY(glEdgeFlag,GLboolean -> IO ())
-EXTENSION_ENTRY(glEdgeFlagPointer,GLsizei -> Ptr a -> IO ())
-EXTENSION_ENTRY(glEdgeFlagv,Ptr GLboolean -> IO ())
-EXTENSION_ENTRY(glEnableClientState,GLenum -> IO ())
-EXTENSION_ENTRY(glEnd,IO ())
-EXTENSION_ENTRY(glEndList,IO ())
-EXTENSION_ENTRY(glEvalCoord1d,GLdouble -> IO ())
-EXTENSION_ENTRY(glEvalCoord1dv,Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glEvalCoord1f,GLfloat -> IO ())
-EXTENSION_ENTRY(glEvalCoord1fv,Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glEvalCoord2d,GLdouble -> GLdouble -> IO ())
-EXTENSION_ENTRY(glEvalCoord2dv,Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glEvalCoord2f,GLfloat -> GLfloat -> IO ())
-EXTENSION_ENTRY(glEvalCoord2fv,Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glEvalMesh1,GLenum -> GLint -> GLint -> IO ())
-EXTENSION_ENTRY(glEvalMesh2,GLenum -> GLint -> GLint -> GLint -> GLint -> IO ())
-EXTENSION_ENTRY(glEvalPoint1,GLint -> IO ())
-EXTENSION_ENTRY(glEvalPoint2,GLint -> GLint -> IO ())
-EXTENSION_ENTRY(glFeedbackBuffer,GLsizei -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glFogCoordPointer,GLenum -> GLsizei -> Ptr a -> IO ())
-EXTENSION_ENTRY(glFogCoordd,GLdouble -> IO ())
-EXTENSION_ENTRY(glFogCoorddv,Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glFogCoordf,GLfloat -> IO ())
-EXTENSION_ENTRY(glFogCoordfv,Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glFogf,GLenum -> GLfloat -> IO ())
-EXTENSION_ENTRY(glFogfv,GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glFogi,GLenum -> GLint -> IO ())
-EXTENSION_ENTRY(glFogiv,GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glFrustum,GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-EXTENSION_ENTRY(glGenLists,GLsizei -> IO GLuint)
-EXTENSION_ENTRY(glGetClipPlane,GLenum -> Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glGetColorTable,GLenum -> GLenum -> GLenum -> Ptr a -> IO ())
-EXTENSION_ENTRY(glGetColorTableParameterfv,GLenum -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glGetColorTableParameteriv,GLenum -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glGetConvolutionFilter,GLenum -> GLenum -> GLenum -> Ptr a -> IO ())
-EXTENSION_ENTRY(glGetConvolutionParameterfv,GLenum -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glGetConvolutionParameteriv,GLenum -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glGetHistogram,GLenum -> GLboolean -> GLenum -> GLenum -> Ptr a -> IO ())
-EXTENSION_ENTRY(glGetHistogramParameterfv,GLenum -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glGetHistogramParameteriv,GLenum -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glGetLightfv,GLenum -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glGetLightiv,GLenum -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glGetMapdv,GLenum -> GLenum -> Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glGetMapfv,GLenum -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glGetMapiv,GLenum -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glGetMaterialfv,GLenum -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glGetMaterialiv,GLenum -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glGetMinmax,GLenum -> GLboolean -> GLenum -> GLenum -> Ptr a -> IO ())
-EXTENSION_ENTRY(glGetMinmaxParameterfv,GLenum -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glGetMinmaxParameteriv,GLenum -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glGetPixelMapfv,GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glGetPixelMapuiv,GLenum -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glGetPixelMapusv,GLenum -> Ptr GLushort -> IO ())
-EXTENSION_ENTRY(glGetPolygonStipple,Ptr GLubyte -> IO ())
-EXTENSION_ENTRY(glGetSeparableFilter,GLenum -> GLenum -> GLenum -> Ptr a -> Ptr a -> Ptr a -> IO ())
-EXTENSION_ENTRY(glGetTexEnvfv,GLenum -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glGetTexEnviv,GLenum -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glGetTexGendv,GLenum -> GLenum -> Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glGetTexGenfv,GLenum -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glGetTexGeniv,GLenum -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glHistogram,GLenum -> GLsizei -> GLenum -> GLboolean -> IO ())
-EXTENSION_ENTRY(glIndexMask,GLuint -> IO ())
-EXTENSION_ENTRY(glIndexPointer,GLenum -> GLsizei -> Ptr a -> IO ())
-EXTENSION_ENTRY(glIndexd,GLdouble -> IO ())
-EXTENSION_ENTRY(glIndexdv,Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glIndexf,GLfloat -> IO ())
-EXTENSION_ENTRY(glIndexfv,Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glIndexi,GLint -> IO ())
-EXTENSION_ENTRY(glIndexiv,Ptr GLint -> IO ())
-EXTENSION_ENTRY(glIndexs,GLshort -> IO ())
-EXTENSION_ENTRY(glIndexsv,Ptr GLshort -> IO ())
-EXTENSION_ENTRY(glIndexub,GLubyte -> IO ())
-EXTENSION_ENTRY(glIndexubv,Ptr GLubyte -> IO ())
-EXTENSION_ENTRY(glInitNames,IO ())
-EXTENSION_ENTRY(glInterleavedArrays,GLenum -> GLsizei -> Ptr a -> IO ())
-EXTENSION_ENTRY(glIsList,GLuint -> IO GLboolean)
-EXTENSION_ENTRY(glLightModelf,GLenum -> GLfloat -> IO ())
-EXTENSION_ENTRY(glLightModelfv,GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glLightModeli,GLenum -> GLint -> IO ())
-EXTENSION_ENTRY(glLightModeliv,GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glLightf,GLenum -> GLenum -> GLfloat -> IO ())
-EXTENSION_ENTRY(glLightfv,GLenum -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glLighti,GLenum -> GLenum -> GLint -> IO ())
-EXTENSION_ENTRY(glLightiv,GLenum -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glLineStipple,GLint -> GLushort -> IO ())
-EXTENSION_ENTRY(glListBase,GLuint -> IO ())
-EXTENSION_ENTRY(glLoadIdentity,IO ())
-EXTENSION_ENTRY(glLoadMatrixd,Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glLoadMatrixf,Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glLoadName,GLuint -> IO ())
-EXTENSION_ENTRY(glLoadTransposeMatrixd,Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glLoadTransposeMatrixf,Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glMap1d,GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glMap1f,GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glMap2d,GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glMap2f,GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glMapGrid1d,GLint -> GLdouble -> GLdouble -> IO ())
-EXTENSION_ENTRY(glMapGrid1f,GLint -> GLfloat -> GLfloat -> IO ())
-EXTENSION_ENTRY(glMapGrid2d,GLint -> GLdouble -> GLdouble -> GLint -> GLdouble -> GLdouble -> IO ())
-EXTENSION_ENTRY(glMapGrid2f,GLint -> GLfloat -> GLfloat -> GLint -> GLfloat -> GLfloat -> IO ())
-EXTENSION_ENTRY(glMaterialf,GLenum -> GLenum -> GLfloat -> IO ())
-EXTENSION_ENTRY(glMaterialfv,GLenum -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glMateriali,GLenum -> GLenum -> GLint -> IO ())
-EXTENSION_ENTRY(glMaterialiv,GLenum -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glMatrixMode,GLenum -> IO ())
-EXTENSION_ENTRY(glMinmax,GLenum -> GLenum -> GLboolean -> IO ())
-EXTENSION_ENTRY(glMultMatrixd,Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glMultMatrixf,Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glMultTransposeMatrixd,Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glMultTransposeMatrixf,Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glMultiTexCoord1d,GLenum -> GLdouble -> IO ())
-EXTENSION_ENTRY(glMultiTexCoord1dv,GLenum -> Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glMultiTexCoord1f,GLenum -> GLfloat -> IO ())
-EXTENSION_ENTRY(glMultiTexCoord1fv,GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glMultiTexCoord1i,GLenum -> GLint -> IO ())
-EXTENSION_ENTRY(glMultiTexCoord1iv,GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glMultiTexCoord1s,GLenum -> GLshort -> IO ())
-EXTENSION_ENTRY(glMultiTexCoord1sv,GLenum -> Ptr GLshort -> IO ())
-EXTENSION_ENTRY(glMultiTexCoord2d,GLenum -> GLdouble -> GLdouble -> IO ())
-EXTENSION_ENTRY(glMultiTexCoord2dv,GLenum -> Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glMultiTexCoord2f,GLenum -> GLfloat -> GLfloat -> IO ())
-EXTENSION_ENTRY(glMultiTexCoord2fv,GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glMultiTexCoord2i,GLenum -> GLint -> GLint -> IO ())
-EXTENSION_ENTRY(glMultiTexCoord2iv,GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glMultiTexCoord2s,GLenum -> GLshort -> GLshort -> IO ())
-EXTENSION_ENTRY(glMultiTexCoord2sv,GLenum -> Ptr GLshort -> IO ())
-EXTENSION_ENTRY(glMultiTexCoord3d,GLenum -> GLdouble -> GLdouble -> GLdouble -> IO ())
-EXTENSION_ENTRY(glMultiTexCoord3dv,GLenum -> Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glMultiTexCoord3f,GLenum -> GLfloat -> GLfloat -> GLfloat -> IO ())
-EXTENSION_ENTRY(glMultiTexCoord3fv,GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glMultiTexCoord3i,GLenum -> GLint -> GLint -> GLint -> IO ())
-EXTENSION_ENTRY(glMultiTexCoord3iv,GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glMultiTexCoord3s,GLenum -> GLshort -> GLshort -> GLshort -> IO ())
-EXTENSION_ENTRY(glMultiTexCoord3sv,GLenum -> Ptr GLshort -> IO ())
-EXTENSION_ENTRY(glMultiTexCoord4d,GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-EXTENSION_ENTRY(glMultiTexCoord4dv,GLenum -> Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glMultiTexCoord4f,GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-EXTENSION_ENTRY(glMultiTexCoord4fv,GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glMultiTexCoord4i,GLenum -> GLint -> GLint -> GLint -> GLint -> IO ())
-EXTENSION_ENTRY(glMultiTexCoord4iv,GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glMultiTexCoord4s,GLenum -> GLshort -> GLshort -> GLshort -> GLshort -> IO ())
-EXTENSION_ENTRY(glMultiTexCoord4sv,GLenum -> Ptr GLshort -> IO ())
-EXTENSION_ENTRY(glNewList,GLuint -> GLenum -> IO ())
-EXTENSION_ENTRY(glNormal3b,GLbyte -> GLbyte -> GLbyte -> IO ())
-EXTENSION_ENTRY(glNormal3bv,Ptr GLbyte -> IO ())
-EXTENSION_ENTRY(glNormal3d,GLdouble -> GLdouble -> GLdouble -> IO ())
-EXTENSION_ENTRY(glNormal3dv,Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glNormal3f,GLfloat -> GLfloat -> GLfloat -> IO ())
-EXTENSION_ENTRY(glNormal3fv,Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glNormal3i,GLint -> GLint -> GLint -> IO ())
-EXTENSION_ENTRY(glNormal3iv,Ptr GLint -> IO ())
-EXTENSION_ENTRY(glNormal3s,GLshort -> GLshort -> GLshort -> IO ())
-EXTENSION_ENTRY(glNormal3sv,Ptr GLshort -> IO ())
-EXTENSION_ENTRY(glNormalPointer,GLenum -> GLsizei -> Ptr a -> IO ())
-EXTENSION_ENTRY(glOrtho,GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-EXTENSION_ENTRY(glPassThrough,GLfloat -> IO ())
-EXTENSION_ENTRY(glPixelMapfv,GLenum -> GLsizei -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glPixelMapuiv,GLenum -> GLsizei -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glPixelMapusv,GLenum -> GLsizei -> Ptr GLushort -> IO ())
-EXTENSION_ENTRY(glPixelTransferf,GLenum -> GLfloat -> IO ())
-EXTENSION_ENTRY(glPixelTransferi,GLenum -> GLint -> IO ())
-EXTENSION_ENTRY(glPixelZoom,GLfloat -> GLfloat -> IO ())
-EXTENSION_ENTRY(glPolygonStipple,Ptr GLubyte -> IO ())
-EXTENSION_ENTRY(glPopAttrib,IO ())
-EXTENSION_ENTRY(glPopClientAttrib,IO ())
-EXTENSION_ENTRY(glPopMatrix,IO ())
-EXTENSION_ENTRY(glPopName,IO ())
-EXTENSION_ENTRY(glPrioritizeTextures,GLsizei -> Ptr GLuint -> Ptr GLclampf -> IO ())
-EXTENSION_ENTRY(glPushAttrib,GLbitfield -> IO ())
-EXTENSION_ENTRY(glPushClientAttrib,GLbitfield -> IO ())
-EXTENSION_ENTRY(glPushMatrix,IO ())
-EXTENSION_ENTRY(glPushName,GLuint -> IO ())
-EXTENSION_ENTRY(glRasterPos2d,GLdouble -> GLdouble -> IO ())
-EXTENSION_ENTRY(glRasterPos2dv,Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glRasterPos2f,GLfloat -> GLfloat -> IO ())
-EXTENSION_ENTRY(glRasterPos2fv,Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glRasterPos2i,GLint -> GLint -> IO ())
-EXTENSION_ENTRY(glRasterPos2iv,Ptr GLint -> IO ())
-EXTENSION_ENTRY(glRasterPos2s,GLshort -> GLshort -> IO ())
-EXTENSION_ENTRY(glRasterPos2sv,Ptr GLshort -> IO ())
-EXTENSION_ENTRY(glRasterPos3d,GLdouble -> GLdouble -> GLdouble -> IO ())
-EXTENSION_ENTRY(glRasterPos3dv,Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glRasterPos3f,GLfloat -> GLfloat -> GLfloat -> IO ())
-EXTENSION_ENTRY(glRasterPos3fv,Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glRasterPos3i,GLint -> GLint -> GLint -> IO ())
-EXTENSION_ENTRY(glRasterPos3iv,Ptr GLint -> IO ())
-EXTENSION_ENTRY(glRasterPos3s,GLshort -> GLshort -> GLshort -> IO ())
-EXTENSION_ENTRY(glRasterPos3sv,Ptr GLshort -> IO ())
-EXTENSION_ENTRY(glRasterPos4d,GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-EXTENSION_ENTRY(glRasterPos4dv,Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glRasterPos4f,GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-EXTENSION_ENTRY(glRasterPos4fv,Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glRasterPos4i,GLint -> GLint -> GLint -> GLint -> IO ())
-EXTENSION_ENTRY(glRasterPos4iv,Ptr GLint -> IO ())
-EXTENSION_ENTRY(glRasterPos4s,GLshort -> GLshort -> GLshort -> GLshort -> IO ())
-EXTENSION_ENTRY(glRasterPos4sv,Ptr GLshort -> IO ())
-EXTENSION_ENTRY(glRectd,GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-EXTENSION_ENTRY(glRectdv,Ptr GLdouble -> Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glRectf,GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-EXTENSION_ENTRY(glRectfv,Ptr GLfloat -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glRecti,GLint -> GLint -> GLint -> GLint -> IO ())
-EXTENSION_ENTRY(glRectiv,Ptr GLint -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glRects,GLshort -> GLshort -> GLshort -> GLshort -> IO ())
-EXTENSION_ENTRY(glRectsv,Ptr GLshort -> Ptr GLshort -> IO ())
-EXTENSION_ENTRY(glRenderMode,GLenum -> IO GLint)
-EXTENSION_ENTRY(glResetHistogram,GLenum -> IO ())
-EXTENSION_ENTRY(glResetMinmax,GLenum -> IO ())
-EXTENSION_ENTRY(glRotated,GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-EXTENSION_ENTRY(glRotatef,GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-EXTENSION_ENTRY(glSamplePass,GLenum -> IO ())
-EXTENSION_ENTRY(glScaled,GLdouble -> GLdouble -> GLdouble -> IO ())
-EXTENSION_ENTRY(glScalef,GLfloat -> GLfloat -> GLfloat -> IO ())
-EXTENSION_ENTRY(glSecondaryColor3b,GLbyte -> GLbyte -> GLbyte -> IO ())
-EXTENSION_ENTRY(glSecondaryColor3bv,Ptr GLbyte -> IO ())
-EXTENSION_ENTRY(glSecondaryColor3d,GLdouble -> GLdouble -> GLdouble -> IO ())
-EXTENSION_ENTRY(glSecondaryColor3dv,Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glSecondaryColor3f,GLfloat -> GLfloat -> GLfloat -> IO ())
-EXTENSION_ENTRY(glSecondaryColor3fv,Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glSecondaryColor3i,GLint -> GLint -> GLint -> IO ())
-EXTENSION_ENTRY(glSecondaryColor3iv,Ptr GLint -> IO ())
-EXTENSION_ENTRY(glSecondaryColor3s,GLshort -> GLshort -> GLshort -> IO ())
-EXTENSION_ENTRY(glSecondaryColor3sv,Ptr GLshort -> IO ())
-EXTENSION_ENTRY(glSecondaryColor3ub,GLubyte -> GLubyte -> GLubyte -> IO ())
-EXTENSION_ENTRY(glSecondaryColor3ubv,Ptr GLubyte -> IO ())
-EXTENSION_ENTRY(glSecondaryColor3ui,GLuint -> GLuint -> GLuint -> IO ())
-EXTENSION_ENTRY(glSecondaryColor3uiv,Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glSecondaryColor3us,GLushort -> GLushort -> GLushort -> IO ())
-EXTENSION_ENTRY(glSecondaryColor3usv,Ptr GLushort -> IO ())
-EXTENSION_ENTRY(glSecondaryColorPointer,GLint -> GLenum -> GLsizei -> Ptr a -> IO ())
-EXTENSION_ENTRY(glSelectBuffer,GLsizei -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glSeparableFilter2D,GLenum -> GLenum -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> Ptr a -> IO ())
-EXTENSION_ENTRY(glShadeModel,GLenum -> IO ())
-EXTENSION_ENTRY(glTexCoord1d,GLdouble -> IO ())
-EXTENSION_ENTRY(glTexCoord1dv,Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glTexCoord1f,GLfloat -> IO ())
-EXTENSION_ENTRY(glTexCoord1fv,Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glTexCoord1i,GLint -> IO ())
-EXTENSION_ENTRY(glTexCoord1iv,Ptr GLint -> IO ())
-EXTENSION_ENTRY(glTexCoord1s,GLshort -> IO ())
-EXTENSION_ENTRY(glTexCoord1sv,Ptr GLshort -> IO ())
-EXTENSION_ENTRY(glTexCoord2d,GLdouble -> GLdouble -> IO ())
-EXTENSION_ENTRY(glTexCoord2dv,Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glTexCoord2f,GLfloat -> GLfloat -> IO ())
-EXTENSION_ENTRY(glTexCoord2fv,Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glTexCoord2i,GLint -> GLint -> IO ())
-EXTENSION_ENTRY(glTexCoord2iv,Ptr GLint -> IO ())
-EXTENSION_ENTRY(glTexCoord2s,GLshort -> GLshort -> IO ())
-EXTENSION_ENTRY(glTexCoord2sv,Ptr GLshort -> IO ())
-EXTENSION_ENTRY(glTexCoord3d,GLdouble -> GLdouble -> GLdouble -> IO ())
-EXTENSION_ENTRY(glTexCoord3dv,Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glTexCoord3f,GLfloat -> GLfloat -> GLfloat -> IO ())
-EXTENSION_ENTRY(glTexCoord3fv,Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glTexCoord3i,GLint -> GLint -> GLint -> IO ())
-EXTENSION_ENTRY(glTexCoord3iv,Ptr GLint -> IO ())
-EXTENSION_ENTRY(glTexCoord3s,GLshort -> GLshort -> GLshort -> IO ())
-EXTENSION_ENTRY(glTexCoord3sv,Ptr GLshort -> IO ())
-EXTENSION_ENTRY(glTexCoord4d,GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-EXTENSION_ENTRY(glTexCoord4dv,Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glTexCoord4f,GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-EXTENSION_ENTRY(glTexCoord4fv,Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glTexCoord4i,GLint -> GLint -> GLint -> GLint -> IO ())
-EXTENSION_ENTRY(glTexCoord4iv,Ptr GLint -> IO ())
-EXTENSION_ENTRY(glTexCoord4s,GLshort -> GLshort -> GLshort -> GLshort -> IO ())
-EXTENSION_ENTRY(glTexCoord4sv,Ptr GLshort -> IO ())
-EXTENSION_ENTRY(glTexCoordPointer,GLint -> GLenum -> GLsizei -> Ptr a -> IO ())
-EXTENSION_ENTRY(glTexEnvf,GLenum -> GLenum -> GLfloat -> IO ())
-EXTENSION_ENTRY(glTexEnvfv,GLenum -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glTexEnvi,GLenum -> GLenum -> GLint -> IO ())
-EXTENSION_ENTRY(glTexEnviv,GLenum -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glTexGend,GLenum -> GLenum -> GLdouble -> IO ())
-EXTENSION_ENTRY(glTexGendv,GLenum -> GLenum -> Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glTexGenf,GLenum -> GLenum -> GLfloat -> IO ())
-EXTENSION_ENTRY(glTexGenfv,GLenum -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glTexGeni,GLenum -> GLenum -> GLint -> IO ())
-EXTENSION_ENTRY(glTexGeniv,GLenum -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glTranslated,GLdouble -> GLdouble -> GLdouble -> IO ())
-EXTENSION_ENTRY(glTranslatef,GLfloat -> GLfloat -> GLfloat -> IO ())
-EXTENSION_ENTRY(glVertex2d,GLdouble -> GLdouble -> IO ())
-EXTENSION_ENTRY(glVertex2dv,Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glVertex2f,GLfloat -> GLfloat -> IO ())
-EXTENSION_ENTRY(glVertex2fv,Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glVertex2i,GLint -> GLint -> IO ())
-EXTENSION_ENTRY(glVertex2iv,Ptr GLint -> IO ())
-EXTENSION_ENTRY(glVertex2s,GLshort -> GLshort -> IO ())
-EXTENSION_ENTRY(glVertex2sv,Ptr GLshort -> IO ())
-EXTENSION_ENTRY(glVertex3d,GLdouble -> GLdouble -> GLdouble -> IO ())
-EXTENSION_ENTRY(glVertex3dv,Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glVertex3f,GLfloat -> GLfloat -> GLfloat -> IO ())
-EXTENSION_ENTRY(glVertex3fv,Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glVertex3i,GLint -> GLint -> GLint -> IO ())
-EXTENSION_ENTRY(glVertex3iv,Ptr GLint -> IO ())
-EXTENSION_ENTRY(glVertex3s,GLshort -> GLshort -> GLshort -> IO ())
-EXTENSION_ENTRY(glVertex3sv,Ptr GLshort -> IO ())
-EXTENSION_ENTRY(glVertex4d,GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-EXTENSION_ENTRY(glVertex4dv,Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glVertex4f,GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-EXTENSION_ENTRY(glVertex4fv,Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glVertex4i,GLint -> GLint -> GLint -> GLint -> IO ())
-EXTENSION_ENTRY(glVertex4iv,Ptr GLint -> IO ())
-EXTENSION_ENTRY(glVertex4s,GLshort -> GLshort -> GLshort -> GLshort -> IO ())
-EXTENSION_ENTRY(glVertex4sv,Ptr GLshort -> IO ())
-EXTENSION_ENTRY(glVertexPointer,GLint -> GLenum -> GLsizei -> Ptr a -> IO ())
-EXTENSION_ENTRY(glWindowPos2d,GLdouble -> GLdouble -> IO ())
-EXTENSION_ENTRY(glWindowPos2dv,Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glWindowPos2f,GLfloat -> GLfloat -> IO ())
-EXTENSION_ENTRY(glWindowPos2fv,Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glWindowPos2i,GLint -> GLint -> IO ())
-EXTENSION_ENTRY(glWindowPos2iv,Ptr GLint -> IO ())
-EXTENSION_ENTRY(glWindowPos2s,GLshort -> GLshort -> IO ())
-EXTENSION_ENTRY(glWindowPos2sv,Ptr GLshort -> IO ())
-EXTENSION_ENTRY(glWindowPos3d,GLdouble -> GLdouble -> GLdouble -> IO ())
-EXTENSION_ENTRY(glWindowPos3dv,Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glWindowPos3f,GLfloat -> GLfloat -> GLfloat -> IO ())
-EXTENSION_ENTRY(glWindowPos3fv,Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glWindowPos3i,GLint -> GLint -> GLint -> IO ())
-EXTENSION_ENTRY(glWindowPos3iv,Ptr GLint -> IO ())
-EXTENSION_ENTRY(glWindowPos3s,GLshort -> GLshort -> GLshort -> IO ())
-EXTENSION_ENTRY(glWindowPos3sv,Ptr GLshort -> IO ())
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/Compatibility/Tokens.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/Compatibility/Tokens.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/Compatibility/Tokens.hs
+++ /dev/null
@@ -1,1528 +0,0 @@
--- #hide
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.Compatibility.Tokens
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All tokens from the ARB_compatibility extension, see
--- <http://www.opengl.org/registry/specs/ARB/compatibility.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.Compatibility.Tokens where
-
-import Graphics.Rendering.OpenGL.Raw.Core31
-
-gl_2D :: GLenum
-gl_2D = 0x0600
-
-gl_2_BYTES :: GLenum
-gl_2_BYTES = 0x1407
-
-gl_3D :: GLenum
-gl_3D = 0x0601
-
-gl_3D_COLOR :: GLenum
-gl_3D_COLOR = 0x0602
-
-gl_3D_COLOR_TEXTURE :: GLenum
-gl_3D_COLOR_TEXTURE = 0x0603
-
-gl_3_BYTES :: GLenum
-gl_3_BYTES = 0x1408
-
-gl_4D_COLOR_TEXTURE :: GLenum
-gl_4D_COLOR_TEXTURE = 0x0604
-
-gl_4_BYTES :: GLenum
-gl_4_BYTES = 0x1409
-
-gl_ACCUM :: GLenum
-gl_ACCUM = 0x0100
-
-gl_ACCUM_ALPHA_BITS :: GLenum
-gl_ACCUM_ALPHA_BITS = 0x0D5B
-
-gl_ACCUM_BLUE_BITS :: GLenum
-gl_ACCUM_BLUE_BITS = 0x0D5A
-
-gl_ACCUM_BUFFER_BIT :: GLenum
-gl_ACCUM_BUFFER_BIT = 0x00000200
-
-gl_ACCUM_CLEAR_VALUE :: GLenum
-gl_ACCUM_CLEAR_VALUE = 0x0B80
-
-gl_ACCUM_GREEN_BITS :: GLenum
-gl_ACCUM_GREEN_BITS = 0x0D59
-
-gl_ACCUM_RED_BITS :: GLenum
-gl_ACCUM_RED_BITS = 0x0D58
-
-gl_ADD :: GLenum
-gl_ADD = 0x0104
-
-gl_ADD_SIGNED :: GLenum
-gl_ADD_SIGNED = 0x8574
-
-gl_ALIASED_POINT_SIZE_RANGE :: GLenum
-gl_ALIASED_POINT_SIZE_RANGE = 0x846D
-
-gl_ALL_ATTRIB_BITS :: GLenum
-gl_ALL_ATTRIB_BITS = 0xFFFFFFFF
-
-gl_ALPHA12 :: GLenum
-gl_ALPHA12 = 0x803D
-
-gl_ALPHA16 :: GLenum
-gl_ALPHA16 = 0x803E
-
-gl_ALPHA4 :: GLenum
-gl_ALPHA4 = 0x803B
-
-gl_ALPHA8 :: GLenum
-gl_ALPHA8 = 0x803C
-
-gl_ALPHA_BIAS :: GLenum
-gl_ALPHA_BIAS = 0x0D1D
-
-gl_ALPHA_BITS :: GLenum
-gl_ALPHA_BITS = 0x0D55
-
-gl_ALPHA_INTEGER :: GLenum
-gl_ALPHA_INTEGER = 0x8D97
-
-gl_ALPHA_SCALE :: GLenum
-gl_ALPHA_SCALE = 0x0D1C
-
-gl_ALPHA_TEST :: GLenum
-gl_ALPHA_TEST = 0x0BC0
-
-gl_ALPHA_TEST_FUNC :: GLenum
-gl_ALPHA_TEST_FUNC = 0x0BC1
-
-gl_ALPHA_TEST_REF :: GLenum
-gl_ALPHA_TEST_REF = 0x0BC2
-
-gl_AMBIENT :: GLenum
-gl_AMBIENT = 0x1200
-
-gl_AMBIENT_AND_DIFFUSE :: GLenum
-gl_AMBIENT_AND_DIFFUSE = 0x1602
-
-gl_ATTRIB_STACK_DEPTH :: GLenum
-gl_ATTRIB_STACK_DEPTH = 0x0BB0
-
-gl_AUTO_NORMAL :: GLenum
-gl_AUTO_NORMAL = 0x0D80
-
-gl_AUX0 :: GLenum
-gl_AUX0 = 0x0409
-
-gl_AUX1 :: GLenum
-gl_AUX1 = 0x040A
-
-gl_AUX2 :: GLenum
-gl_AUX2 = 0x040B
-
-gl_AUX3 :: GLenum
-gl_AUX3 = 0x040C
-
-gl_AUX_BUFFERS :: GLenum
-gl_AUX_BUFFERS = 0x0C00
-
-gl_BITMAP :: GLenum
-gl_BITMAP = 0x1A00
-
-gl_BITMAP_TOKEN :: GLenum
-gl_BITMAP_TOKEN = 0x0704
-
-gl_BLUE_BIAS :: GLenum
-gl_BLUE_BIAS = 0x0D1B
-
-gl_BLUE_BITS :: GLenum
-gl_BLUE_BITS = 0x0D54
-
-gl_BLUE_SCALE :: GLenum
-gl_BLUE_SCALE = 0x0D1A
-
-gl_C3F_V3F :: GLenum
-gl_C3F_V3F = 0x2A24
-
-gl_C4F_N3F_V3F :: GLenum
-gl_C4F_N3F_V3F = 0x2A26
-
-gl_C4UB_V2F :: GLenum
-gl_C4UB_V2F = 0x2A22
-
-gl_C4UB_V3F :: GLenum
-gl_C4UB_V3F = 0x2A23
-
-gl_CLAMP :: GLenum
-gl_CLAMP = 0x2900
-
-gl_CLAMP_FRAGMENT_COLOR :: GLenum
-gl_CLAMP_FRAGMENT_COLOR = 0x891B
-
-gl_CLAMP_VERTEX_COLOR :: GLenum
-gl_CLAMP_VERTEX_COLOR = 0x891A
-
-gl_CLIENT_ACTIVE_TEXTURE :: GLenum
-gl_CLIENT_ACTIVE_TEXTURE = 0x84E1
-
-gl_CLIENT_ALL_ATTRIB_BITS :: GLenum
-gl_CLIENT_ALL_ATTRIB_BITS = 0xFFFFFFFF
-
-gl_CLIENT_ATTRIB_STACK_DEPTH :: GLenum
-gl_CLIENT_ATTRIB_STACK_DEPTH = 0x0BB1
-
-gl_CLIENT_PIXEL_STORE_BIT :: GLenum
-gl_CLIENT_PIXEL_STORE_BIT = 0x00000001
-
-gl_CLIENT_VERTEX_ARRAY_BIT :: GLenum
-gl_CLIENT_VERTEX_ARRAY_BIT = 0x00000002
-
-gl_CLIP_PLANE0 :: GLenum
-gl_CLIP_PLANE0 = 0x3000
-
-gl_CLIP_PLANE1 :: GLenum
-gl_CLIP_PLANE1 = 0x3001
-
-gl_CLIP_PLANE2 :: GLenum
-gl_CLIP_PLANE2 = 0x3002
-
-gl_CLIP_PLANE3 :: GLenum
-gl_CLIP_PLANE3 = 0x3003
-
-gl_CLIP_PLANE4 :: GLenum
-gl_CLIP_PLANE4 = 0x3004
-
-gl_CLIP_PLANE5 :: GLenum
-gl_CLIP_PLANE5 = 0x3005
-
-gl_COEFF :: GLenum
-gl_COEFF = 0x0A00
-
-gl_COLOR_ARRAY :: GLenum
-gl_COLOR_ARRAY = 0x8076
-
-gl_COLOR_ARRAY_BUFFER_BINDING :: GLenum
-gl_COLOR_ARRAY_BUFFER_BINDING = 0x8898
-
-gl_COLOR_ARRAY_COUNT :: GLenum
-gl_COLOR_ARRAY_COUNT = 0x8084
-
-gl_COLOR_ARRAY_POINTER :: GLenum
-gl_COLOR_ARRAY_POINTER = 0x8090
-
-gl_COLOR_ARRAY_SIZE :: GLenum
-gl_COLOR_ARRAY_SIZE = 0x8081
-
-gl_COLOR_ARRAY_STRIDE :: GLenum
-gl_COLOR_ARRAY_STRIDE = 0x8083
-
-gl_COLOR_ARRAY_TYPE :: GLenum
-gl_COLOR_ARRAY_TYPE = 0x8082
-
-gl_COLOR_INDEX :: GLenum
-gl_COLOR_INDEX = 0x1900
-
-gl_COLOR_INDEXES :: GLenum
-gl_COLOR_INDEXES = 0x1603
-
-gl_COLOR_MATERIAL :: GLenum
-gl_COLOR_MATERIAL = 0x0B57
-
-gl_COLOR_MATERIAL_FACE :: GLenum
-gl_COLOR_MATERIAL_FACE = 0x0B55
-
-gl_COLOR_MATERIAL_PARAMETER :: GLenum
-gl_COLOR_MATERIAL_PARAMETER = 0x0B56
-
-gl_COLOR_MATRIX :: GLenum
-gl_COLOR_MATRIX = 0x80B1
-
-gl_COLOR_MATRIX_STACK_DEPTH :: GLenum
-gl_COLOR_MATRIX_STACK_DEPTH = 0x80B2
-
-gl_COLOR_SUM :: GLenum
-gl_COLOR_SUM = 0x8458
-
-gl_COLOR_TABLE :: GLenum
-gl_COLOR_TABLE = 0x80D0
-
-gl_COLOR_TABLE_ALPHA_SIZE :: GLenum
-gl_COLOR_TABLE_ALPHA_SIZE = 0x80DD
-
-gl_COLOR_TABLE_BIAS :: GLenum
-gl_COLOR_TABLE_BIAS = 0x80D7
-
-gl_COLOR_TABLE_BLUE_SIZE :: GLenum
-gl_COLOR_TABLE_BLUE_SIZE = 0x80DC
-
-gl_COLOR_TABLE_FORMAT :: GLenum
-gl_COLOR_TABLE_FORMAT = 0x80D8
-
-gl_COLOR_TABLE_GREEN_SIZE :: GLenum
-gl_COLOR_TABLE_GREEN_SIZE = 0x80DB
-
-gl_COLOR_TABLE_INTENSITY_SIZE :: GLenum
-gl_COLOR_TABLE_INTENSITY_SIZE = 0x80DF
-
-gl_COLOR_TABLE_LUMINANCE_SIZE :: GLenum
-gl_COLOR_TABLE_LUMINANCE_SIZE = 0x80DE
-
-gl_COLOR_TABLE_RED_SIZE :: GLenum
-gl_COLOR_TABLE_RED_SIZE = 0x80DA
-
-gl_COLOR_TABLE_SCALE :: GLenum
-gl_COLOR_TABLE_SCALE = 0x80D6
-
-gl_COLOR_TABLE_WIDTH :: GLenum
-gl_COLOR_TABLE_WIDTH = 0x80D9
-
-gl_COMBINE :: GLenum
-gl_COMBINE = 0x8570
-
-gl_COMBINE_ALPHA :: GLenum
-gl_COMBINE_ALPHA = 0x8572
-
-gl_COMBINE_RGB :: GLenum
-gl_COMBINE_RGB = 0x8571
-
-gl_COMPARE_R_TO_TEXTURE :: GLenum
-gl_COMPARE_R_TO_TEXTURE = 0x884E
-
-gl_COMPILE :: GLenum
-gl_COMPILE = 0x1300
-
-gl_COMPILE_AND_EXECUTE :: GLenum
-gl_COMPILE_AND_EXECUTE = 0x1301
-
-gl_COMPRESSED_ALPHA :: GLenum
-gl_COMPRESSED_ALPHA = 0x84E9
-
-gl_COMPRESSED_INTENSITY :: GLenum
-gl_COMPRESSED_INTENSITY = 0x84EC
-
-gl_COMPRESSED_LUMINANCE :: GLenum
-gl_COMPRESSED_LUMINANCE = 0x84EA
-
-gl_COMPRESSED_LUMINANCE_ALPHA :: GLenum
-gl_COMPRESSED_LUMINANCE_ALPHA = 0x84EB
-
-gl_COMPRESSED_SLUMINANCE :: GLenum
-gl_COMPRESSED_SLUMINANCE = 0x8C4A
-
-gl_COMPRESSED_SLUMINANCE_ALPHA :: GLenum
-gl_COMPRESSED_SLUMINANCE_ALPHA = 0x8C4B
-
-gl_CONSTANT :: GLenum
-gl_CONSTANT = 0x8576
-
-gl_CONSTANT_ATTENUATION :: GLenum
-gl_CONSTANT_ATTENUATION = 0x1207
-
-gl_CONSTANT_BORDER :: GLenum
-gl_CONSTANT_BORDER = 0x8151
-
-gl_CONVOLUTION_1D :: GLenum
-gl_CONVOLUTION_1D = 0x8010
-
-gl_CONVOLUTION_2D :: GLenum
-gl_CONVOLUTION_2D = 0x8011
-
-gl_CONVOLUTION_BORDER_COLOR :: GLenum
-gl_CONVOLUTION_BORDER_COLOR = 0x8154
-
-gl_CONVOLUTION_BORDER_MODE :: GLenum
-gl_CONVOLUTION_BORDER_MODE = 0x8013
-
-gl_CONVOLUTION_FILTER_BIAS :: GLenum
-gl_CONVOLUTION_FILTER_BIAS = 0x8015
-
-gl_CONVOLUTION_FILTER_SCALE :: GLenum
-gl_CONVOLUTION_FILTER_SCALE = 0x8014
-
-gl_CONVOLUTION_FORMAT :: GLenum
-gl_CONVOLUTION_FORMAT = 0x8017
-
-gl_CONVOLUTION_HEIGHT :: GLenum
-gl_CONVOLUTION_HEIGHT = 0x8019
-
-gl_CONVOLUTION_WIDTH :: GLenum
-gl_CONVOLUTION_WIDTH = 0x8018
-
-gl_COORD_REPLACE :: GLenum
-gl_COORD_REPLACE = 0x8862
-
-gl_COPY_PIXEL_TOKEN :: GLenum
-gl_COPY_PIXEL_TOKEN = 0x0706
-
-gl_CURRENT_BIT :: GLenum
-gl_CURRENT_BIT = 0x00000001
-
-gl_CURRENT_COLOR :: GLenum
-gl_CURRENT_COLOR = 0x0B00
-
-gl_CURRENT_FOG_COORD :: GLenum
-gl_CURRENT_FOG_COORD = 0x8453
-
-gl_CURRENT_FOG_COORDINATE :: GLenum
-gl_CURRENT_FOG_COORDINATE = 0x8453
-
-gl_CURRENT_INDEX :: GLenum
-gl_CURRENT_INDEX = 0x0B01
-
-gl_CURRENT_NORMAL :: GLenum
-gl_CURRENT_NORMAL = 0x0B02
-
-gl_CURRENT_RASTER_COLOR :: GLenum
-gl_CURRENT_RASTER_COLOR = 0x0B04
-
-gl_CURRENT_RASTER_DISTANCE :: GLenum
-gl_CURRENT_RASTER_DISTANCE = 0x0B09
-
-gl_CURRENT_RASTER_INDEX :: GLenum
-gl_CURRENT_RASTER_INDEX = 0x0B05
-
-gl_CURRENT_RASTER_POSITION :: GLenum
-gl_CURRENT_RASTER_POSITION = 0x0B07
-
-gl_CURRENT_RASTER_POSITION_VALID :: GLenum
-gl_CURRENT_RASTER_POSITION_VALID = 0x0B08
-
-gl_CURRENT_RASTER_SECONDARY_COLOR :: GLenum
-gl_CURRENT_RASTER_SECONDARY_COLOR = 0x845F
-
-gl_CURRENT_RASTER_TEXTURE_COORDS :: GLenum
-gl_CURRENT_RASTER_TEXTURE_COORDS = 0x0B06
-
-gl_CURRENT_SECONDARY_COLOR :: GLenum
-gl_CURRENT_SECONDARY_COLOR = 0x8459
-
-gl_CURRENT_TEXTURE_COORDS :: GLenum
-gl_CURRENT_TEXTURE_COORDS = 0x0B03
-
-gl_DECAL :: GLenum
-gl_DECAL = 0x2101
-
-gl_DEPTH_BIAS :: GLenum
-gl_DEPTH_BIAS = 0x0D1F
-
-gl_DEPTH_BITS :: GLenum
-gl_DEPTH_BITS = 0x0D56
-
-gl_DEPTH_SCALE :: GLenum
-gl_DEPTH_SCALE = 0x0D1E
-
-gl_DEPTH_TEXTURE_MODE :: GLenum
-gl_DEPTH_TEXTURE_MODE = 0x884B
-
-gl_DIFFUSE :: GLenum
-gl_DIFFUSE = 0x1201
-
-gl_DOMAIN :: GLenum
-gl_DOMAIN = 0x0A02
-
-gl_DOT3_RGB :: GLenum
-gl_DOT3_RGB = 0x86AE
-
-gl_DOT3_RGBA :: GLenum
-gl_DOT3_RGBA = 0x86AF
-
-gl_DRAW_PIXEL_TOKEN :: GLenum
-gl_DRAW_PIXEL_TOKEN = 0x0705
-
-gl_EDGE_FLAG :: GLenum
-gl_EDGE_FLAG = 0x0B43
-
-gl_EDGE_FLAG_ARRAY :: GLenum
-gl_EDGE_FLAG_ARRAY = 0x8079
-
-gl_EDGE_FLAG_ARRAY_BUFFER_BINDING :: GLenum
-gl_EDGE_FLAG_ARRAY_BUFFER_BINDING = 0x889B
-
-gl_EDGE_FLAG_ARRAY_COUNT :: GLenum
-gl_EDGE_FLAG_ARRAY_COUNT = 0x808D
-
-gl_EDGE_FLAG_ARRAY_POINTER :: GLenum
-gl_EDGE_FLAG_ARRAY_POINTER = 0x8093
-
-gl_EDGE_FLAG_ARRAY_STRIDE :: GLenum
-gl_EDGE_FLAG_ARRAY_STRIDE = 0x808C
-
-gl_EMISSION :: GLenum
-gl_EMISSION = 0x1600
-
-gl_ENABLE_BIT :: GLenum
-gl_ENABLE_BIT = 0x00002000
-
-gl_EVAL_BIT :: GLenum
-gl_EVAL_BIT = 0x00010000
-
-gl_EXP :: GLenum
-gl_EXP = 0x0800
-
-gl_EXP2 :: GLenum
-gl_EXP2 = 0x0801
-
-gl_EYE_LINEAR :: GLenum
-gl_EYE_LINEAR = 0x2400
-
-gl_EYE_PLANE :: GLenum
-gl_EYE_PLANE = 0x2502
-
-gl_FEEDBACK :: GLenum
-gl_FEEDBACK = 0x1C01
-
-gl_FEEDBACK_BUFFER_POINTER :: GLenum
-gl_FEEDBACK_BUFFER_POINTER = 0x0DF0
-
-gl_FEEDBACK_BUFFER_SIZE :: GLenum
-gl_FEEDBACK_BUFFER_SIZE = 0x0DF1
-
-gl_FEEDBACK_BUFFER_TYPE :: GLenum
-gl_FEEDBACK_BUFFER_TYPE = 0x0DF2
-
-gl_FLAT :: GLenum
-gl_FLAT = 0x1D00
-
-gl_FOG :: GLenum
-gl_FOG = 0x0B60
-
-gl_FOG_BIT :: GLenum
-gl_FOG_BIT = 0x00000080
-
-gl_FOG_COLOR :: GLenum
-gl_FOG_COLOR = 0x0B66
-
-gl_FOG_COORD :: GLenum
-gl_FOG_COORD = 0x8451
-
-gl_FOG_COORDINATE :: GLenum
-gl_FOG_COORDINATE = 0x8451
-
-gl_FOG_COORDINATE_ARRAY :: GLenum
-gl_FOG_COORDINATE_ARRAY = 0x8457
-
-gl_FOG_COORDINATE_ARRAY_BUFFER_BINDING :: GLenum
-gl_FOG_COORDINATE_ARRAY_BUFFER_BINDING = 0x889D
-
-gl_FOG_COORDINATE_ARRAY_POINTER :: GLenum
-gl_FOG_COORDINATE_ARRAY_POINTER = 0x8456
-
-gl_FOG_COORDINATE_ARRAY_STRIDE :: GLenum
-gl_FOG_COORDINATE_ARRAY_STRIDE = 0x8455
-
-gl_FOG_COORDINATE_ARRAY_TYPE :: GLenum
-gl_FOG_COORDINATE_ARRAY_TYPE = 0x8454
-
-gl_FOG_COORDINATE_SOURCE :: GLenum
-gl_FOG_COORDINATE_SOURCE = 0x8450
-
-gl_FOG_COORD_ARRAY :: GLenum
-gl_FOG_COORD_ARRAY = 0x8457
-
-gl_FOG_COORD_ARRAY_BUFFER_BINDING :: GLenum
-gl_FOG_COORD_ARRAY_BUFFER_BINDING = 0x889D
-
-gl_FOG_COORD_ARRAY_POINTER :: GLenum
-gl_FOG_COORD_ARRAY_POINTER = 0x8456
-
-gl_FOG_COORD_ARRAY_STRIDE :: GLenum
-gl_FOG_COORD_ARRAY_STRIDE = 0x8455
-
-gl_FOG_COORD_ARRAY_TYPE :: GLenum
-gl_FOG_COORD_ARRAY_TYPE = 0x8454
-
-gl_FOG_COORD_SRC :: GLenum
-gl_FOG_COORD_SRC = 0x8450
-
-gl_FOG_DENSITY :: GLenum
-gl_FOG_DENSITY = 0x0B62
-
-gl_FOG_END :: GLenum
-gl_FOG_END = 0x0B64
-
-gl_FOG_HINT :: GLenum
-gl_FOG_HINT = 0x0C54
-
-gl_FOG_INDEX :: GLenum
-gl_FOG_INDEX = 0x0B61
-
-gl_FOG_MODE :: GLenum
-gl_FOG_MODE = 0x0B65
-
-gl_FOG_START :: GLenum
-gl_FOG_START = 0x0B63
-
-gl_FRAGMENT_DEPTH :: GLenum
-gl_FRAGMENT_DEPTH = 0x8452
-
-gl_GENERATE_MIPMAP :: GLenum
-gl_GENERATE_MIPMAP = 0x8191
-
-gl_GENERATE_MIPMAP_HINT :: GLenum
-gl_GENERATE_MIPMAP_HINT = 0x8192
-
-gl_GREEN_BIAS :: GLenum
-gl_GREEN_BIAS = 0x0D19
-
-gl_GREEN_BITS :: GLenum
-gl_GREEN_BITS = 0x0D53
-
-gl_GREEN_SCALE :: GLenum
-gl_GREEN_SCALE = 0x0D18
-
-gl_HINT_BIT :: GLenum
-gl_HINT_BIT = 0x00008000
-
-gl_HISTOGRAM :: GLenum
-gl_HISTOGRAM = 0x8024
-
-gl_HISTOGRAM_ALPHA_SIZE :: GLenum
-gl_HISTOGRAM_ALPHA_SIZE = 0x802B
-
-gl_HISTOGRAM_BLUE_SIZE :: GLenum
-gl_HISTOGRAM_BLUE_SIZE = 0x802A
-
-gl_HISTOGRAM_FORMAT :: GLenum
-gl_HISTOGRAM_FORMAT = 0x8027
-
-gl_HISTOGRAM_GREEN_SIZE :: GLenum
-gl_HISTOGRAM_GREEN_SIZE = 0x8029
-
-gl_HISTOGRAM_LUMINANCE_SIZE :: GLenum
-gl_HISTOGRAM_LUMINANCE_SIZE = 0x802C
-
-gl_HISTOGRAM_RED_SIZE :: GLenum
-gl_HISTOGRAM_RED_SIZE = 0x8028
-
-gl_HISTOGRAM_SINK :: GLenum
-gl_HISTOGRAM_SINK = 0x802D
-
-gl_HISTOGRAM_WIDTH :: GLenum
-gl_HISTOGRAM_WIDTH = 0x8026
-
-gl_INDEX :: GLenum
-gl_INDEX = 0x8222
-
-gl_INDEX_ARRAY :: GLenum
-gl_INDEX_ARRAY = 0x8077
-
-gl_INDEX_ARRAY_BUFFER_BINDING :: GLenum
-gl_INDEX_ARRAY_BUFFER_BINDING = 0x8899
-
-gl_INDEX_ARRAY_COUNT :: GLenum
-gl_INDEX_ARRAY_COUNT = 0x8087
-
-gl_INDEX_ARRAY_POINTER :: GLenum
-gl_INDEX_ARRAY_POINTER = 0x8091
-
-gl_INDEX_ARRAY_STRIDE :: GLenum
-gl_INDEX_ARRAY_STRIDE = 0x8086
-
-gl_INDEX_ARRAY_TYPE :: GLenum
-gl_INDEX_ARRAY_TYPE = 0x8085
-
-gl_INDEX_BITS :: GLenum
-gl_INDEX_BITS = 0x0D51
-
-gl_INDEX_CLEAR_VALUE :: GLenum
-gl_INDEX_CLEAR_VALUE = 0x0C20
-
-gl_INDEX_LOGIC_OP :: GLenum
-gl_INDEX_LOGIC_OP = 0x0BF1
-
-gl_INDEX_MODE :: GLenum
-gl_INDEX_MODE = 0x0C30
-
-gl_INDEX_OFFSET :: GLenum
-gl_INDEX_OFFSET = 0x0D13
-
-gl_INDEX_SHIFT :: GLenum
-gl_INDEX_SHIFT = 0x0D12
-
-gl_INDEX_WRITEMASK :: GLenum
-gl_INDEX_WRITEMASK = 0x0C21
-
-gl_INTENSITY :: GLenum
-gl_INTENSITY = 0x8049
-
-gl_INTENSITY12 :: GLenum
-gl_INTENSITY12 = 0x804C
-
-gl_INTENSITY16 :: GLenum
-gl_INTENSITY16 = 0x804D
-
-gl_INTENSITY4 :: GLenum
-gl_INTENSITY4 = 0x804A
-
-gl_INTENSITY8 :: GLenum
-gl_INTENSITY8 = 0x804B
-
-gl_INTERPOLATE :: GLenum
-gl_INTERPOLATE = 0x8575
-
-gl_LIGHT0 :: GLenum
-gl_LIGHT0 = 0x4000
-
-gl_LIGHT1 :: GLenum
-gl_LIGHT1 = 0x4001
-
-gl_LIGHT2 :: GLenum
-gl_LIGHT2 = 0x4002
-
-gl_LIGHT3 :: GLenum
-gl_LIGHT3 = 0x4003
-
-gl_LIGHT4 :: GLenum
-gl_LIGHT4 = 0x4004
-
-gl_LIGHT5 :: GLenum
-gl_LIGHT5 = 0x4005
-
-gl_LIGHT6 :: GLenum
-gl_LIGHT6 = 0x4006
-
-gl_LIGHT7 :: GLenum
-gl_LIGHT7 = 0x4007
-
-gl_LIGHTING :: GLenum
-gl_LIGHTING = 0x0B50
-
-gl_LIGHTING_BIT :: GLenum
-gl_LIGHTING_BIT = 0x00000040
-
-gl_LIGHT_MODEL_AMBIENT :: GLenum
-gl_LIGHT_MODEL_AMBIENT = 0x0B53
-
-gl_LIGHT_MODEL_COLOR_CONTROL :: GLenum
-gl_LIGHT_MODEL_COLOR_CONTROL = 0x81F8
-
-gl_LIGHT_MODEL_LOCAL_VIEWER :: GLenum
-gl_LIGHT_MODEL_LOCAL_VIEWER = 0x0B51
-
-gl_LIGHT_MODEL_TWO_SIDE :: GLenum
-gl_LIGHT_MODEL_TWO_SIDE = 0x0B52
-
-gl_LINEAR_ATTENUATION :: GLenum
-gl_LINEAR_ATTENUATION = 0x1208
-
-gl_LINE_BIT :: GLenum
-gl_LINE_BIT = 0x00000004
-
-gl_LINE_RESET_TOKEN :: GLenum
-gl_LINE_RESET_TOKEN = 0x0707
-
-gl_LINE_STIPPLE :: GLenum
-gl_LINE_STIPPLE = 0x0B24
-
-gl_LINE_STIPPLE_PATTERN :: GLenum
-gl_LINE_STIPPLE_PATTERN = 0x0B25
-
-gl_LINE_STIPPLE_REPEAT :: GLenum
-gl_LINE_STIPPLE_REPEAT = 0x0B26
-
-gl_LINE_TOKEN :: GLenum
-gl_LINE_TOKEN = 0x0702
-
-gl_LIST_BASE :: GLenum
-gl_LIST_BASE = 0x0B32
-
-gl_LIST_BIT :: GLenum
-gl_LIST_BIT = 0x00020000
-
-gl_LIST_INDEX :: GLenum
-gl_LIST_INDEX = 0x0B33
-
-gl_LIST_MODE :: GLenum
-gl_LIST_MODE = 0x0B30
-
-gl_LOAD :: GLenum
-gl_LOAD = 0x0101
-
-gl_LOGIC_OP :: GLenum
-gl_LOGIC_OP = 0x0BF1
-
-gl_LUMINANCE :: GLenum
-gl_LUMINANCE = 0x1909
-
-gl_LUMINANCE12 :: GLenum
-gl_LUMINANCE12 = 0x8041
-
-gl_LUMINANCE12_ALPHA12 :: GLenum
-gl_LUMINANCE12_ALPHA12 = 0x8047
-
-gl_LUMINANCE12_ALPHA4 :: GLenum
-gl_LUMINANCE12_ALPHA4 = 0x8046
-
-gl_LUMINANCE16 :: GLenum
-gl_LUMINANCE16 = 0x8042
-
-gl_LUMINANCE16_ALPHA16 :: GLenum
-gl_LUMINANCE16_ALPHA16 = 0x8048
-
-gl_LUMINANCE4 :: GLenum
-gl_LUMINANCE4 = 0x803F
-
-gl_LUMINANCE4_ALPHA4 :: GLenum
-gl_LUMINANCE4_ALPHA4 = 0x8043
-
-gl_LUMINANCE6_ALPHA2 :: GLenum
-gl_LUMINANCE6_ALPHA2 = 0x8044
-
-gl_LUMINANCE8 :: GLenum
-gl_LUMINANCE8 = 0x8040
-
-gl_LUMINANCE8_ALPHA8 :: GLenum
-gl_LUMINANCE8_ALPHA8 = 0x8045
-
-gl_LUMINANCE_ALPHA :: GLenum
-gl_LUMINANCE_ALPHA = 0x190A
-
-gl_MAP1_COLOR_4 :: GLenum
-gl_MAP1_COLOR_4 = 0x0D90
-
-gl_MAP1_GRID_DOMAIN :: GLenum
-gl_MAP1_GRID_DOMAIN = 0x0DD0
-
-gl_MAP1_GRID_SEGMENTS :: GLenum
-gl_MAP1_GRID_SEGMENTS = 0x0DD1
-
-gl_MAP1_INDEX :: GLenum
-gl_MAP1_INDEX = 0x0D91
-
-gl_MAP1_NORMAL :: GLenum
-gl_MAP1_NORMAL = 0x0D92
-
-gl_MAP1_TEXTURE_COORD_1 :: GLenum
-gl_MAP1_TEXTURE_COORD_1 = 0x0D93
-
-gl_MAP1_TEXTURE_COORD_2 :: GLenum
-gl_MAP1_TEXTURE_COORD_2 = 0x0D94
-
-gl_MAP1_TEXTURE_COORD_3 :: GLenum
-gl_MAP1_TEXTURE_COORD_3 = 0x0D95
-
-gl_MAP1_TEXTURE_COORD_4 :: GLenum
-gl_MAP1_TEXTURE_COORD_4 = 0x0D96
-
-gl_MAP1_VERTEX_3 :: GLenum
-gl_MAP1_VERTEX_3 = 0x0D97
-
-gl_MAP1_VERTEX_4 :: GLenum
-gl_MAP1_VERTEX_4 = 0x0D98
-
-gl_MAP2_COLOR_4 :: GLenum
-gl_MAP2_COLOR_4 = 0x0DB0
-
-gl_MAP2_GRID_DOMAIN :: GLenum
-gl_MAP2_GRID_DOMAIN = 0x0DD2
-
-gl_MAP2_GRID_SEGMENTS :: GLenum
-gl_MAP2_GRID_SEGMENTS = 0x0DD3
-
-gl_MAP2_INDEX :: GLenum
-gl_MAP2_INDEX = 0x0DB1
-
-gl_MAP2_NORMAL :: GLenum
-gl_MAP2_NORMAL = 0x0DB2
-
-gl_MAP2_TEXTURE_COORD_1 :: GLenum
-gl_MAP2_TEXTURE_COORD_1 = 0x0DB3
-
-gl_MAP2_TEXTURE_COORD_2 :: GLenum
-gl_MAP2_TEXTURE_COORD_2 = 0x0DB4
-
-gl_MAP2_TEXTURE_COORD_3 :: GLenum
-gl_MAP2_TEXTURE_COORD_3 = 0x0DB5
-
-gl_MAP2_TEXTURE_COORD_4 :: GLenum
-gl_MAP2_TEXTURE_COORD_4 = 0x0DB6
-
-gl_MAP2_VERTEX_3 :: GLenum
-gl_MAP2_VERTEX_3 = 0x0DB7
-
-gl_MAP2_VERTEX_4 :: GLenum
-gl_MAP2_VERTEX_4 = 0x0DB8
-
-gl_MAP_COLOR :: GLenum
-gl_MAP_COLOR = 0x0D10
-
-gl_MAP_STENCIL :: GLenum
-gl_MAP_STENCIL = 0x0D11
-
-gl_MATRIX_MODE :: GLenum
-gl_MATRIX_MODE = 0x0BA0
-
-gl_MAX_ATTRIB_STACK_DEPTH :: GLenum
-gl_MAX_ATTRIB_STACK_DEPTH = 0x0D35
-
-gl_MAX_CLIENT_ATTRIB_STACK_DEPTH :: GLenum
-gl_MAX_CLIENT_ATTRIB_STACK_DEPTH = 0x0D3B
-
-gl_MAX_CLIP_PLANES :: GLenum
-gl_MAX_CLIP_PLANES = 0x0D32
-
-gl_MAX_COLOR_MATRIX_STACK_DEPTH :: GLenum
-gl_MAX_COLOR_MATRIX_STACK_DEPTH = 0x80B3
-
-gl_MAX_CONVOLUTION_HEIGHT :: GLenum
-gl_MAX_CONVOLUTION_HEIGHT = 0x801B
-
-gl_MAX_CONVOLUTION_WIDTH :: GLenum
-gl_MAX_CONVOLUTION_WIDTH = 0x801A
-
-gl_MAX_EVAL_ORDER :: GLenum
-gl_MAX_EVAL_ORDER = 0x0D30
-
-gl_MAX_LIGHTS :: GLenum
-gl_MAX_LIGHTS = 0x0D31
-
-gl_MAX_LIST_NESTING :: GLenum
-gl_MAX_LIST_NESTING = 0x0B31
-
-gl_MAX_MODELVIEW_STACK_DEPTH :: GLenum
-gl_MAX_MODELVIEW_STACK_DEPTH = 0x0D36
-
-gl_MAX_NAME_STACK_DEPTH :: GLenum
-gl_MAX_NAME_STACK_DEPTH = 0x0D37
-
-gl_MAX_PIXEL_MAP_TABLE :: GLenum
-gl_MAX_PIXEL_MAP_TABLE = 0x0D34
-
-gl_MAX_PROJECTION_STACK_DEPTH :: GLenum
-gl_MAX_PROJECTION_STACK_DEPTH = 0x0D38
-
-gl_MAX_TEXTURE_COORDS :: GLenum
-gl_MAX_TEXTURE_COORDS = 0x8871
-
-gl_MAX_TEXTURE_STACK_DEPTH :: GLenum
-gl_MAX_TEXTURE_STACK_DEPTH = 0x0D39
-
-gl_MAX_TEXTURE_UNITS :: GLenum
-gl_MAX_TEXTURE_UNITS = 0x84E2
-
-gl_MINMAX :: GLenum
-gl_MINMAX = 0x802E
-
-gl_MINMAX_FORMAT :: GLenum
-gl_MINMAX_FORMAT = 0x802F
-
-gl_MINMAX_SINK :: GLenum
-gl_MINMAX_SINK = 0x8030
-
-gl_MODELVIEW :: GLenum
-gl_MODELVIEW = 0x1700
-
-gl_MODELVIEW_MATRIX :: GLenum
-gl_MODELVIEW_MATRIX = 0x0BA6
-
-gl_MODELVIEW_STACK_DEPTH :: GLenum
-gl_MODELVIEW_STACK_DEPTH = 0x0BA3
-
-gl_MODULATE :: GLenum
-gl_MODULATE = 0x2100
-
-gl_MULT :: GLenum
-gl_MULT = 0x0103
-
-gl_MULTISAMPLE_BIT :: GLenum
-gl_MULTISAMPLE_BIT = 0x20000000
-
-gl_N3F_V3F :: GLenum
-gl_N3F_V3F = 0x2A25
-
-gl_NAME_STACK_DEPTH :: GLenum
-gl_NAME_STACK_DEPTH = 0x0D70
-
-gl_NORMALIZE :: GLenum
-gl_NORMALIZE = 0x0BA1
-
-gl_NORMAL_ARRAY :: GLenum
-gl_NORMAL_ARRAY = 0x8075
-
-gl_NORMAL_ARRAY_BUFFER_BINDING :: GLenum
-gl_NORMAL_ARRAY_BUFFER_BINDING = 0x8897
-
-gl_NORMAL_ARRAY_COUNT :: GLenum
-gl_NORMAL_ARRAY_COUNT = 0x8080
-
-gl_NORMAL_ARRAY_POINTER :: GLenum
-gl_NORMAL_ARRAY_POINTER = 0x808F
-
-gl_NORMAL_ARRAY_STRIDE :: GLenum
-gl_NORMAL_ARRAY_STRIDE = 0x807F
-
-gl_NORMAL_ARRAY_TYPE :: GLenum
-gl_NORMAL_ARRAY_TYPE = 0x807E
-
-gl_NORMAL_MAP :: GLenum
-gl_NORMAL_MAP = 0x8511
-
-gl_OBJECT_LINEAR :: GLenum
-gl_OBJECT_LINEAR = 0x2401
-
-gl_OBJECT_PLANE :: GLenum
-gl_OBJECT_PLANE = 0x2501
-
-gl_OPERAND0_ALPHA :: GLenum
-gl_OPERAND0_ALPHA = 0x8598
-
-gl_OPERAND0_RGB :: GLenum
-gl_OPERAND0_RGB = 0x8590
-
-gl_OPERAND1_ALPHA :: GLenum
-gl_OPERAND1_ALPHA = 0x8599
-
-gl_OPERAND1_RGB :: GLenum
-gl_OPERAND1_RGB = 0x8591
-
-gl_OPERAND2_ALPHA :: GLenum
-gl_OPERAND2_ALPHA = 0x859A
-
-gl_OPERAND2_RGB :: GLenum
-gl_OPERAND2_RGB = 0x8592
-
-gl_ORDER :: GLenum
-gl_ORDER = 0x0A01
-
-gl_PASS_THROUGH_TOKEN :: GLenum
-gl_PASS_THROUGH_TOKEN = 0x0700
-
-gl_PERSPECTIVE_CORRECTION_HINT :: GLenum
-gl_PERSPECTIVE_CORRECTION_HINT = 0x0C50
-
-gl_PIXEL_MAP_A_TO_A :: GLenum
-gl_PIXEL_MAP_A_TO_A = 0x0C79
-
-gl_PIXEL_MAP_A_TO_A_SIZE :: GLenum
-gl_PIXEL_MAP_A_TO_A_SIZE = 0x0CB9
-
-gl_PIXEL_MAP_B_TO_B :: GLenum
-gl_PIXEL_MAP_B_TO_B = 0x0C78
-
-gl_PIXEL_MAP_B_TO_B_SIZE :: GLenum
-gl_PIXEL_MAP_B_TO_B_SIZE = 0x0CB8
-
-gl_PIXEL_MAP_G_TO_G :: GLenum
-gl_PIXEL_MAP_G_TO_G = 0x0C77
-
-gl_PIXEL_MAP_G_TO_G_SIZE :: GLenum
-gl_PIXEL_MAP_G_TO_G_SIZE = 0x0CB7
-
-gl_PIXEL_MAP_I_TO_A :: GLenum
-gl_PIXEL_MAP_I_TO_A = 0x0C75
-
-gl_PIXEL_MAP_I_TO_A_SIZE :: GLenum
-gl_PIXEL_MAP_I_TO_A_SIZE = 0x0CB5
-
-gl_PIXEL_MAP_I_TO_B :: GLenum
-gl_PIXEL_MAP_I_TO_B = 0x0C74
-
-gl_PIXEL_MAP_I_TO_B_SIZE :: GLenum
-gl_PIXEL_MAP_I_TO_B_SIZE = 0x0CB4
-
-gl_PIXEL_MAP_I_TO_G :: GLenum
-gl_PIXEL_MAP_I_TO_G = 0x0C73
-
-gl_PIXEL_MAP_I_TO_G_SIZE :: GLenum
-gl_PIXEL_MAP_I_TO_G_SIZE = 0x0CB3
-
-gl_PIXEL_MAP_I_TO_I :: GLenum
-gl_PIXEL_MAP_I_TO_I = 0x0C70
-
-gl_PIXEL_MAP_I_TO_I_SIZE :: GLenum
-gl_PIXEL_MAP_I_TO_I_SIZE = 0x0CB0
-
-gl_PIXEL_MAP_I_TO_R :: GLenum
-gl_PIXEL_MAP_I_TO_R = 0x0C72
-
-gl_PIXEL_MAP_I_TO_R_SIZE :: GLenum
-gl_PIXEL_MAP_I_TO_R_SIZE = 0x0CB2
-
-gl_PIXEL_MAP_R_TO_R :: GLenum
-gl_PIXEL_MAP_R_TO_R = 0x0C76
-
-gl_PIXEL_MAP_R_TO_R_SIZE :: GLenum
-gl_PIXEL_MAP_R_TO_R_SIZE = 0x0CB6
-
-gl_PIXEL_MAP_S_TO_S :: GLenum
-gl_PIXEL_MAP_S_TO_S = 0x0C71
-
-gl_PIXEL_MAP_S_TO_S_SIZE :: GLenum
-gl_PIXEL_MAP_S_TO_S_SIZE = 0x0CB1
-
-gl_PIXEL_MODE_BIT :: GLenum
-gl_PIXEL_MODE_BIT = 0x00000020
-
-gl_POINT_BIT :: GLenum
-gl_POINT_BIT = 0x00000002
-
-gl_POINT_DISTANCE_ATTENUATION :: GLenum
-gl_POINT_DISTANCE_ATTENUATION = 0x8129
-
-gl_POINT_SIZE_MAX :: GLenum
-gl_POINT_SIZE_MAX = 0x8127
-
-gl_POINT_SIZE_MIN :: GLenum
-gl_POINT_SIZE_MIN = 0x8126
-
-gl_POINT_SMOOTH :: GLenum
-gl_POINT_SMOOTH = 0x0B10
-
-gl_POINT_SMOOTH_HINT :: GLenum
-gl_POINT_SMOOTH_HINT = 0x0C51
-
-gl_POINT_SPRITE :: GLenum
-gl_POINT_SPRITE = 0x8861
-
-gl_POINT_TOKEN :: GLenum
-gl_POINT_TOKEN = 0x0701
-
-gl_POLYGON :: GLenum
-gl_POLYGON = 0x0009
-
-gl_POLYGON_BIT :: GLenum
-gl_POLYGON_BIT = 0x00000008
-
-gl_POLYGON_MODE :: GLenum
-gl_POLYGON_MODE = 0x0B40
-
-gl_POLYGON_STIPPLE :: GLenum
-gl_POLYGON_STIPPLE = 0x0B42
-
-gl_POLYGON_STIPPLE_BIT :: GLenum
-gl_POLYGON_STIPPLE_BIT = 0x00000010
-
-gl_POLYGON_TOKEN :: GLenum
-gl_POLYGON_TOKEN = 0x0703
-
-gl_POSITION :: GLenum
-gl_POSITION = 0x1203
-
-gl_POST_COLOR_MATRIX_ALPHA_BIAS :: GLenum
-gl_POST_COLOR_MATRIX_ALPHA_BIAS = 0x80BB
-
-gl_POST_COLOR_MATRIX_ALPHA_SCALE :: GLenum
-gl_POST_COLOR_MATRIX_ALPHA_SCALE = 0x80B7
-
-gl_POST_COLOR_MATRIX_BLUE_BIAS :: GLenum
-gl_POST_COLOR_MATRIX_BLUE_BIAS = 0x80BA
-
-gl_POST_COLOR_MATRIX_BLUE_SCALE :: GLenum
-gl_POST_COLOR_MATRIX_BLUE_SCALE = 0x80B6
-
-gl_POST_COLOR_MATRIX_COLOR_TABLE :: GLenum
-gl_POST_COLOR_MATRIX_COLOR_TABLE = 0x80D2
-
-gl_POST_COLOR_MATRIX_GREEN_BIAS :: GLenum
-gl_POST_COLOR_MATRIX_GREEN_BIAS = 0x80B9
-
-gl_POST_COLOR_MATRIX_GREEN_SCALE :: GLenum
-gl_POST_COLOR_MATRIX_GREEN_SCALE = 0x80B5
-
-gl_POST_COLOR_MATRIX_RED_BIAS :: GLenum
-gl_POST_COLOR_MATRIX_RED_BIAS = 0x80B8
-
-gl_POST_COLOR_MATRIX_RED_SCALE :: GLenum
-gl_POST_COLOR_MATRIX_RED_SCALE = 0x80B4
-
-gl_POST_CONVOLUTION_ALPHA_BIAS :: GLenum
-gl_POST_CONVOLUTION_ALPHA_BIAS = 0x8023
-
-gl_POST_CONVOLUTION_ALPHA_SCALE :: GLenum
-gl_POST_CONVOLUTION_ALPHA_SCALE = 0x801F
-
-gl_POST_CONVOLUTION_BLUE_BIAS :: GLenum
-gl_POST_CONVOLUTION_BLUE_BIAS = 0x8022
-
-gl_POST_CONVOLUTION_BLUE_SCALE :: GLenum
-gl_POST_CONVOLUTION_BLUE_SCALE = 0x801E
-
-gl_POST_CONVOLUTION_COLOR_TABLE :: GLenum
-gl_POST_CONVOLUTION_COLOR_TABLE = 0x80D1
-
-gl_POST_CONVOLUTION_GREEN_BIAS :: GLenum
-gl_POST_CONVOLUTION_GREEN_BIAS = 0x8021
-
-gl_POST_CONVOLUTION_GREEN_SCALE :: GLenum
-gl_POST_CONVOLUTION_GREEN_SCALE = 0x801D
-
-gl_POST_CONVOLUTION_RED_BIAS :: GLenum
-gl_POST_CONVOLUTION_RED_BIAS = 0x8020
-
-gl_POST_CONVOLUTION_RED_SCALE :: GLenum
-gl_POST_CONVOLUTION_RED_SCALE = 0x801C
-
-gl_PREVIOUS :: GLenum
-gl_PREVIOUS = 0x8578
-
-gl_PRIMARY_COLOR :: GLenum
-gl_PRIMARY_COLOR = 0x8577
-
-gl_PROJECTION :: GLenum
-gl_PROJECTION = 0x1701
-
-gl_PROJECTION_MATRIX :: GLenum
-gl_PROJECTION_MATRIX = 0x0BA7
-
-gl_PROJECTION_STACK_DEPTH :: GLenum
-gl_PROJECTION_STACK_DEPTH = 0x0BA4
-
-gl_PROXY_COLOR_TABLE :: GLenum
-gl_PROXY_COLOR_TABLE = 0x80D3
-
-gl_PROXY_HISTOGRAM :: GLenum
-gl_PROXY_HISTOGRAM = 0x8025
-
-gl_PROXY_POST_COLOR_MATRIX_COLOR_TABLE :: GLenum
-gl_PROXY_POST_COLOR_MATRIX_COLOR_TABLE = 0x80D5
-
-gl_PROXY_POST_CONVOLUTION_COLOR_TABLE :: GLenum
-gl_PROXY_POST_CONVOLUTION_COLOR_TABLE = 0x80D4
-
-gl_Q :: GLenum
-gl_Q = 0x2003
-
-gl_QUADRATIC_ATTENUATION :: GLenum
-gl_QUADRATIC_ATTENUATION = 0x1209
-
-gl_QUADS :: GLenum
-gl_QUADS = 0x0007
-
-gl_QUAD_STRIP :: GLenum
-gl_QUAD_STRIP = 0x0008
-
-gl_R :: GLenum
-gl_R = 0x2002
-
-gl_REDUCE :: GLenum
-gl_REDUCE = 0x8016
-
-gl_RED_BIAS :: GLenum
-gl_RED_BIAS = 0x0D15
-
-gl_RED_BITS :: GLenum
-gl_RED_BITS = 0x0D52
-
-gl_RED_SCALE :: GLenum
-gl_RED_SCALE = 0x0D14
-
-gl_REFLECTION_MAP :: GLenum
-gl_REFLECTION_MAP = 0x8512
-
-gl_RENDER :: GLenum
-gl_RENDER = 0x1C00
-
-gl_RENDER_MODE :: GLenum
-gl_RENDER_MODE = 0x0C40
-
-gl_REPLICATE_BORDER :: GLenum
-gl_REPLICATE_BORDER = 0x8153
-
-gl_RESCALE_NORMAL :: GLenum
-gl_RESCALE_NORMAL = 0x803A
-
-gl_RETURN :: GLenum
-gl_RETURN = 0x0102
-
-gl_RGBA_MODE :: GLenum
-gl_RGBA_MODE = 0x0C31
-
-gl_RGB_SCALE :: GLenum
-gl_RGB_SCALE = 0x8573
-
-gl_S :: GLenum
-gl_S = 0x2000
-
-gl_SCISSOR_BIT :: GLenum
-gl_SCISSOR_BIT = 0x00080000
-
-gl_SECONDARY_COLOR_ARRAY :: GLenum
-gl_SECONDARY_COLOR_ARRAY = 0x845E
-
-gl_SECONDARY_COLOR_ARRAY_BUFFER_BINDING :: GLenum
-gl_SECONDARY_COLOR_ARRAY_BUFFER_BINDING = 0x889C
-
-gl_SECONDARY_COLOR_ARRAY_POINTER :: GLenum
-gl_SECONDARY_COLOR_ARRAY_POINTER = 0x845D
-
-gl_SECONDARY_COLOR_ARRAY_SIZE :: GLenum
-gl_SECONDARY_COLOR_ARRAY_SIZE = 0x845A
-
-gl_SECONDARY_COLOR_ARRAY_STRIDE :: GLenum
-gl_SECONDARY_COLOR_ARRAY_STRIDE = 0x845C
-
-gl_SECONDARY_COLOR_ARRAY_TYPE :: GLenum
-gl_SECONDARY_COLOR_ARRAY_TYPE = 0x845B
-
-gl_SELECT :: GLenum
-gl_SELECT = 0x1C02
-
-gl_SELECTION_BUFFER_POINTER :: GLenum
-gl_SELECTION_BUFFER_POINTER = 0x0DF3
-
-gl_SELECTION_BUFFER_SIZE :: GLenum
-gl_SELECTION_BUFFER_SIZE = 0x0DF4
-
-gl_SEPARABLE_2D :: GLenum
-gl_SEPARABLE_2D = 0x8012
-
-gl_SEPARATE_SPECULAR_COLOR :: GLenum
-gl_SEPARATE_SPECULAR_COLOR = 0x81FA
-
-gl_SHADE_MODEL :: GLenum
-gl_SHADE_MODEL = 0x0B54
-
-gl_SHININESS :: GLenum
-gl_SHININESS = 0x1601
-
-gl_SINGLE_COLOR :: GLenum
-gl_SINGLE_COLOR = 0x81F9
-
-gl_SLUMINANCE :: GLenum
-gl_SLUMINANCE = 0x8C46
-
-gl_SLUMINANCE8 :: GLenum
-gl_SLUMINANCE8 = 0x8C47
-
-gl_SLUMINANCE8_ALPHA8 :: GLenum
-gl_SLUMINANCE8_ALPHA8 = 0x8C45
-
-gl_SLUMINANCE_ALPHA :: GLenum
-gl_SLUMINANCE_ALPHA = 0x8C44
-
-gl_SMOOTH :: GLenum
-gl_SMOOTH = 0x1D01
-
-gl_SOURCE0_ALPHA :: GLenum
-gl_SOURCE0_ALPHA = 0x8588
-
-gl_SOURCE0_RGB :: GLenum
-gl_SOURCE0_RGB = 0x8580
-
-gl_SOURCE1_ALPHA :: GLenum
-gl_SOURCE1_ALPHA = 0x8589
-
-gl_SOURCE1_RGB :: GLenum
-gl_SOURCE1_RGB = 0x8581
-
-gl_SOURCE2_ALPHA :: GLenum
-gl_SOURCE2_ALPHA = 0x858A
-
-gl_SOURCE2_RGB :: GLenum
-gl_SOURCE2_RGB = 0x8582
-
-gl_SPECULAR :: GLenum
-gl_SPECULAR = 0x1202
-
-gl_SPHERE_MAP :: GLenum
-gl_SPHERE_MAP = 0x2402
-
-gl_SPOT_CUTOFF :: GLenum
-gl_SPOT_CUTOFF = 0x1206
-
-gl_SPOT_DIRECTION :: GLenum
-gl_SPOT_DIRECTION = 0x1204
-
-gl_SPOT_EXPONENT :: GLenum
-gl_SPOT_EXPONENT = 0x1205
-
-gl_SRC0_ALPHA :: GLenum
-gl_SRC0_ALPHA = 0x8588
-
-gl_SRC0_RGB :: GLenum
-gl_SRC0_RGB = 0x8580
-
-gl_SRC1_ALPHA :: GLenum
-gl_SRC1_ALPHA = 0x8589
-
-gl_SRC1_RGB :: GLenum
-gl_SRC1_RGB = 0x8581
-
-gl_SRC2_ALPHA :: GLenum
-gl_SRC2_ALPHA = 0x858A
-
-gl_SRC2_RGB :: GLenum
-gl_SRC2_RGB = 0x8582
-
-gl_STACK_OVERFLOW :: GLenum
-gl_STACK_OVERFLOW = 0x0503
-
-gl_STACK_UNDERFLOW :: GLenum
-gl_STACK_UNDERFLOW = 0x0504
-
-gl_STENCIL_BITS :: GLenum
-gl_STENCIL_BITS = 0x0D57
-
-gl_SUBTRACT :: GLenum
-gl_SUBTRACT = 0x84E7
-
-gl_T :: GLenum
-gl_T = 0x2001
-
-gl_T2F_C3F_V3F :: GLenum
-gl_T2F_C3F_V3F = 0x2A2A
-
-gl_T2F_C4F_N3F_V3F :: GLenum
-gl_T2F_C4F_N3F_V3F = 0x2A2C
-
-gl_T2F_C4UB_V3F :: GLenum
-gl_T2F_C4UB_V3F = 0x2A29
-
-gl_T2F_N3F_V3F :: GLenum
-gl_T2F_N3F_V3F = 0x2A2B
-
-gl_T2F_V3F :: GLenum
-gl_T2F_V3F = 0x2A27
-
-gl_T4F_C4F_N3F_V4F :: GLenum
-gl_T4F_C4F_N3F_V4F = 0x2A2D
-
-gl_T4F_V4F :: GLenum
-gl_T4F_V4F = 0x2A28
-
-gl_TABLE_TOO_LARGE :: GLenum
-gl_TABLE_TOO_LARGE = 0x8031
-
-gl_TEXTURE_BIT :: GLenum
-gl_TEXTURE_BIT = 0x00040000
-
-gl_TEXTURE_COMPONENTS :: GLenum
-gl_TEXTURE_COMPONENTS = 0x1003
-
-gl_TEXTURE_COORD_ARRAY :: GLenum
-gl_TEXTURE_COORD_ARRAY = 0x8078
-
-gl_TEXTURE_COORD_ARRAY_BUFFER_BINDING :: GLenum
-gl_TEXTURE_COORD_ARRAY_BUFFER_BINDING = 0x889A
-
-gl_TEXTURE_COORD_ARRAY_COUNT :: GLenum
-gl_TEXTURE_COORD_ARRAY_COUNT = 0x808B
-
-gl_TEXTURE_COORD_ARRAY_POINTER :: GLenum
-gl_TEXTURE_COORD_ARRAY_POINTER = 0x8092
-
-gl_TEXTURE_COORD_ARRAY_SIZE :: GLenum
-gl_TEXTURE_COORD_ARRAY_SIZE = 0x8088
-
-gl_TEXTURE_COORD_ARRAY_STRIDE :: GLenum
-gl_TEXTURE_COORD_ARRAY_STRIDE = 0x808A
-
-gl_TEXTURE_COORD_ARRAY_TYPE :: GLenum
-gl_TEXTURE_COORD_ARRAY_TYPE = 0x8089
-
-gl_TEXTURE_ENV :: GLenum
-gl_TEXTURE_ENV = 0x2300
-
-gl_TEXTURE_ENV_COLOR :: GLenum
-gl_TEXTURE_ENV_COLOR = 0x2201
-
-gl_TEXTURE_ENV_MODE :: GLenum
-gl_TEXTURE_ENV_MODE = 0x2200
-
-gl_TEXTURE_FILTER_CONTROL :: GLenum
-gl_TEXTURE_FILTER_CONTROL = 0x8500
-
-gl_TEXTURE_GEN_MODE :: GLenum
-gl_TEXTURE_GEN_MODE = 0x2500
-
-gl_TEXTURE_GEN_Q :: GLenum
-gl_TEXTURE_GEN_Q = 0x0C63
-
-gl_TEXTURE_GEN_R :: GLenum
-gl_TEXTURE_GEN_R = 0x0C62
-
-gl_TEXTURE_GEN_S :: GLenum
-gl_TEXTURE_GEN_S = 0x0C60
-
-gl_TEXTURE_GEN_T :: GLenum
-gl_TEXTURE_GEN_T = 0x0C61
-
-gl_TEXTURE_INTENSITY_SIZE :: GLenum
-gl_TEXTURE_INTENSITY_SIZE = 0x8061
-
-gl_TEXTURE_INTENSITY_TYPE :: GLenum
-gl_TEXTURE_INTENSITY_TYPE = 0x8C15
-
-gl_TEXTURE_LUMINANCE_SIZE :: GLenum
-gl_TEXTURE_LUMINANCE_SIZE = 0x8060
-
-gl_TEXTURE_LUMINANCE_TYPE :: GLenum
-gl_TEXTURE_LUMINANCE_TYPE = 0x8C14
-
-gl_TEXTURE_MATRIX :: GLenum
-gl_TEXTURE_MATRIX = 0x0BA8
-
-gl_TEXTURE_PRIORITY :: GLenum
-gl_TEXTURE_PRIORITY = 0x8066
-
-gl_TEXTURE_RESIDENT :: GLenum
-gl_TEXTURE_RESIDENT = 0x8067
-
-gl_TEXTURE_STACK_DEPTH :: GLenum
-gl_TEXTURE_STACK_DEPTH = 0x0BA5
-
-gl_TRANSFORM_BIT :: GLenum
-gl_TRANSFORM_BIT = 0x00001000
-
-gl_TRANSPOSE_COLOR_MATRIX :: GLenum
-gl_TRANSPOSE_COLOR_MATRIX = 0x84E6
-
-gl_TRANSPOSE_MODELVIEW_MATRIX :: GLenum
-gl_TRANSPOSE_MODELVIEW_MATRIX = 0x84E3
-
-gl_TRANSPOSE_PROJECTION_MATRIX :: GLenum
-gl_TRANSPOSE_PROJECTION_MATRIX = 0x84E4
-
-gl_TRANSPOSE_TEXTURE_MATRIX :: GLenum
-gl_TRANSPOSE_TEXTURE_MATRIX = 0x84E5
-
-gl_V2F :: GLenum
-gl_V2F = 0x2A20
-
-gl_V3F :: GLenum
-gl_V3F = 0x2A21
-
-gl_VERTEX_ARRAY :: GLenum
-gl_VERTEX_ARRAY = 0x8074
-
-gl_VERTEX_ARRAY_BUFFER_BINDING :: GLenum
-gl_VERTEX_ARRAY_BUFFER_BINDING = 0x8896
-
-gl_VERTEX_ARRAY_COUNT :: GLenum
-gl_VERTEX_ARRAY_COUNT = 0x807D
-
-gl_VERTEX_ARRAY_POINTER :: GLenum
-gl_VERTEX_ARRAY_POINTER = 0x808E
-
-gl_VERTEX_ARRAY_SIZE :: GLenum
-gl_VERTEX_ARRAY_SIZE = 0x807A
-
-gl_VERTEX_ARRAY_STRIDE :: GLenum
-gl_VERTEX_ARRAY_STRIDE = 0x807C
-
-gl_VERTEX_ARRAY_TYPE :: GLenum
-gl_VERTEX_ARRAY_TYPE = 0x807B
-
-gl_VERTEX_PROGRAM_TWO_SIDE :: GLenum
-gl_VERTEX_PROGRAM_TWO_SIDE = 0x8643
-
-gl_VIEWPORT_BIT :: GLenum
-gl_VIEWPORT_BIT = 0x00000800
-
-gl_WEIGHT_ARRAY_BUFFER_BINDING :: GLenum
-gl_WEIGHT_ARRAY_BUFFER_BINDING = 0x889E
-
-gl_ZOOM_X :: GLenum
-gl_ZOOM_X = 0x0D16
-
-gl_ZOOM_Y :: GLenum
-gl_ZOOM_Y = 0x0D17
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/CopyBuffer.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/CopyBuffer.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/CopyBuffer.hs
+++ /dev/null
@@ -1,40 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.CopyBuffer
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the ARB_copy_buffer extension, see
--- <http://www.opengl.org/registry/specs/ARB/copy_buffer.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.CopyBuffer (
-   -- * Functions
-    glCopyBufferSubData,
-   -- * Tokens
-   gl_COPY_READ_BUFFER,
-   gl_COPY_WRITE_BUFFER
-
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core31.Types
-import Graphics.Rendering.OpenGL.Raw.Extensions
-
-#include "HsOpenGLRaw.h"
-
-extensionNameString :: String
-extensionNameString = "GL_ARB_copy_buffer"
-
-EXTENSION_ENTRY(glCopyBufferSubData,GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> IO ())
-
-gl_COPY_READ_BUFFER :: GLenum
-gl_COPY_READ_BUFFER = 0x8F36
-
-gl_COPY_WRITE_BUFFER :: GLenum
-gl_COPY_WRITE_BUFFER = 0x8F37
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/CreateContextProfile.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/CreateContextProfile.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/CreateContextProfile.hs
+++ /dev/null
@@ -1,32 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.CreateContextProfile
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All tokens from the ARB_create_context_profile extension, see
--- <http://www.opengl.org/registry/specs/ARB/create_context_profile.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.CreateContextProfile (
-   -- * Tokens
-   gl_CONTEXT_CORE_PROFILE_BIT,
-   gl_CONTEXT_COMPATIBILITY_PROFILE_BIT,
-   gl_CONTEXT_PROFILE_MASK
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core31.Types
-
-gl_CONTEXT_CORE_PROFILE_BIT :: GLenum
-gl_CONTEXT_CORE_PROFILE_BIT = 0x00000001
-
-gl_CONTEXT_COMPATIBILITY_PROFILE_BIT :: GLenum
-gl_CONTEXT_COMPATIBILITY_PROFILE_BIT = 0x00000002
-
-gl_CONTEXT_PROFILE_MASK :: GLenum
-gl_CONTEXT_PROFILE_MASK = 0x9126
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/DepthBufferFloat.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/DepthBufferFloat.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/DepthBufferFloat.hs
+++ /dev/null
@@ -1,23 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.DepthBufferFloat
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All tokens from the ARB_depth_buffer_float extension, see
--- <http://www.opengl.org/registry/specs/ARB/depth_buffer_float.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.DepthBufferFloat (
-   -- * Tokens
-   gl_DEPTH_COMPONENT32F,
-   gl_DEPTH32F_STENCIL8,
-   gl_FLOAT_32_UNSIGNED_INT_24_8_REV
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/DepthClamp.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/DepthClamp.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/DepthClamp.hs
+++ /dev/null
@@ -1,24 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.DepthClamp
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All tokens from the ARB_depth_clamp extension, see
--- <http://www.opengl.org/registry/specs/ARB/depth_clamp.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.DepthClamp (
-   -- * Tokens
-   gl_DEPTH_CLAMP
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core31.Types
-
-gl_DEPTH_CLAMP :: GLenum
-gl_DEPTH_CLAMP = 0x864F
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/DepthTexture.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/DepthTexture.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/DepthTexture.hs
+++ /dev/null
@@ -1,27 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.DepthTexture
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All tokens from the ARB_depth_texture extension extension, see
--- <http://www.opengl.org/registry/specs/ARB/depth_texture.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.DepthTexture (
-   -- * Tokens
-   gl_DEPTH_COMPONENT,
-   gl_DEPTH_COMPONENT16,
-   gl_DEPTH_COMPONENT24,
-   gl_DEPTH_COMPONENT32,
-   gl_TEXTURE_DEPTH_SIZE,
-   gl_DEPTH_TEXTURE_MODE
-) where
-
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
-import Graphics.Rendering.OpenGL.Raw.Core32
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/DrawBuffers.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/DrawBuffers.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/DrawBuffers.hs
+++ /dev/null
@@ -1,39 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.DrawBuffers
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the ARB_point_sprite extension, see
--- <http://www.opengl.org/registry/specs/ARB/point_sprite.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.DrawBuffers (
-   -- * Functions
-   glDrawBuffers,
-   -- * Tokens
-   gl_MAX_DRAW_BUFFERS,
-   gl_DRAW_BUFFER0,
-   gl_DRAW_BUFFER1,
-   gl_DRAW_BUFFER2,
-   gl_DRAW_BUFFER3,
-   gl_DRAW_BUFFER4,
-   gl_DRAW_BUFFER5,
-   gl_DRAW_BUFFER6,
-   gl_DRAW_BUFFER7,
-   gl_DRAW_BUFFER8,
-   gl_DRAW_BUFFER9,
-   gl_DRAW_BUFFER10,
-   gl_DRAW_BUFFER11,
-   gl_DRAW_BUFFER12,
-   gl_DRAW_BUFFER13,
-   gl_DRAW_BUFFER14,
-   gl_DRAW_BUFFER15
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/DrawBuffersBlend.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/DrawBuffersBlend.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/DrawBuffersBlend.hs
+++ /dev/null
@@ -1,37 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.DrawBuffersBlend
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions from the ARB_draw_buffers_blend extension, see
--- <http://www.opengl.org/registry/specs/ARB/draw_buffers_blend.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.DrawBuffersBlend (
-   -- * Functions
-   glBlendEquationi,
-   glBlendEquationSeparatei,
-   glBlendFunci,
-   glBlendFuncSeparatei
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Graphics.Rendering.OpenGL.Raw.Extensions
-
-#include "HsOpenGLRaw.h"
-
-extensionNameString :: String
-extensionNameString = "GL_ARB_draw_buffers_blend"
-
-EXTENSION_ENTRY(glBlendEquationi,GLuint -> GLenum -> IO ())
-EXTENSION_ENTRY(glBlendEquationSeparatei,GLuint -> GLenum -> GLenum -> IO ())
-EXTENSION_ENTRY(glBlendFunci,GLuint -> GLenum -> GLenum -> IO ())
-EXTENSION_ENTRY(glBlendFuncSeparatei,GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
-
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/DrawElementsBaseVertex.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/DrawElementsBaseVertex.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/DrawElementsBaseVertex.hs
+++ /dev/null
@@ -1,37 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.DrawElementsBaseVertex
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions from the ARB_draw_elements_base_vertex extension, see
--- <http://www.opengl.org/registry/specs/ARB/draw_elements_base_vertex.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.DrawElementsBaseVertex (
-   -- * Functions
-   glDrawElementsBaseVertex,
-   glDrawRangeElementsBaseVertex,
-   glDrawElementsInstancedBaseVertex,
-   glMultiDrawElementsBaseVertex
-) where
-
-import Foreign.Ptr
-import Graphics.Rendering.OpenGL.Raw.Core31.Types
-import Graphics.Rendering.OpenGL.Raw.Extensions
-
-#include "HsOpenGLRaw.h"
-
-extensionNameString :: String
-extensionNameString = "GL_ARB_draw_elements_base_vertex"
-
-EXTENSION_ENTRY(glDrawElementsBaseVertex,GLenum -> GLsizei -> GLenum -> Ptr a -> GLint -> IO ())
-EXTENSION_ENTRY(glDrawRangeElementsBaseVertex,GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> GLint -> IO ())
-EXTENSION_ENTRY(glDrawElementsInstancedBaseVertex,GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLint -> IO ())
-EXTENSION_ENTRY(glMultiDrawElementsBaseVertex,GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> Ptr GLint -> IO ())
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/DrawInstanced.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/DrawInstanced.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/DrawInstanced.hs
+++ /dev/null
@@ -1,33 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.DrawInstanced
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions from the ARB_draw_instanced extension, see
--- <http://www.opengl.org/registry/specs/ARB/draw_instanced.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.DrawInstanced (
-   -- * Functions
-   glDrawArraysInstanced,
-   glDrawElementsInstanced
-) where
-
-import Foreign.Ptr
-import Graphics.Rendering.OpenGL.Raw.Core31.Types
-import Graphics.Rendering.OpenGL.Raw.Extensions
-
-#include "HsOpenGLRaw.h"
-
-extensionNameString :: String
-extensionNameString = "GL_ARB_draw_instanced"
-
-EXTENSION_ENTRY(glDrawArraysInstanced,GLenum -> GLint -> GLsizei -> GLsizei -> IO ())
-EXTENSION_ENTRY(glDrawElementsInstanced,GLenum -> GLsizei -> GLenum -> Ptr a -> GLsizei -> IO ())
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/FragmentProgram.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/FragmentProgram.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/FragmentProgram.hs
+++ /dev/null
@@ -1,159 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.FragmentProgram
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the ARB_fragment_program extension, see
--- <http://www.opengl.org/registry/specs/ARB/fragment_program.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.FragmentProgram (
-   -- * Functions
-   glProgramString,
-   glBindProgram,
-   glDeletePrograms,
-   glGenPrograms,
-   glProgramEnvParameter4d,
-   glProgramEnvParameter4dv,
-   glProgramEnvParameter4f,
-   glProgramEnvParameter4fv,
-   glProgramLocalParameter4d,
-   glProgramLocalParameter4dv,
-   glProgramLocalParameter4f,
-   glProgramLocalParameter4fv,
-   glGetProgramEnvParameterdv,
-   glGetProgramEnvParameterfv,
-   glGetProgramLocalParameterdv,
-   glGetProgramLocalParameterfv,
-   glGetProgramiv,
-   glGetProgramString,
-   glIsProgram,
-   -- * Tokens
-   gl_FRAGMENT_PROGRAM,
-   gl_PROGRAM_FORMAT_ASCII,
-   gl_PROGRAM_LENGTH,
-   gl_PROGRAM_FORMAT,
-   gl_PROGRAM_BINDING,
-   gl_PROGRAM_INSTRUCTIONS,
-   gl_MAX_PROGRAM_INSTRUCTIONS,
-   gl_PROGRAM_NATIVE_INSTRUCTIONS,
-   gl_MAX_PROGRAM_NATIVE_INSTRUCTIONS,
-   gl_PROGRAM_TEMPORARIES,
-   gl_MAX_PROGRAM_TEMPORARIES,
-   gl_PROGRAM_NATIVE_TEMPORARIES,
-   gl_MAX_PROGRAM_NATIVE_TEMPORARIES,
-   gl_PROGRAM_PARAMETERS,
-   gl_MAX_PROGRAM_PARAMETERS,
-   gl_PROGRAM_NATIVE_PARAMETERS,
-   gl_MAX_PROGRAM_NATIVE_PARAMETERS,
-   gl_PROGRAM_ATTRIBS,
-   gl_MAX_PROGRAM_ATTRIBS,
-   gl_PROGRAM_NATIVE_ATTRIBS,
-   gl_MAX_PROGRAM_NATIVE_ATTRIBS,
-   gl_MAX_PROGRAM_LOCAL_PARAMETERS,
-   gl_MAX_PROGRAM_ENV_PARAMETERS,
-   gl_PROGRAM_UNDER_NATIVE_LIMITS,
-   gl_PROGRAM_ALU_INSTRUCTIONS,
-   gl_PROGRAM_TEX_INSTRUCTIONS,
-   gl_PROGRAM_TEX_INDIRECTIONS,
-   gl_PROGRAM_NATIVE_ALU_INSTRUCTIONS,
-   gl_PROGRAM_NATIVE_TEX_INSTRUCTIONS,
-   gl_PROGRAM_NATIVE_TEX_INDIRECTIONS,
-   gl_MAX_PROGRAM_ALU_INSTRUCTIONS,
-   gl_MAX_PROGRAM_TEX_INSTRUCTIONS,
-   gl_MAX_PROGRAM_TEX_INDIRECTIONS,
-   gl_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS,
-   gl_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS,
-   gl_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS,
-   gl_PROGRAM_STRING,
-   gl_PROGRAM_ERROR_POSITION,
-   gl_CURRENT_MATRIX,
-   gl_TRANSPOSE_CURRENT_MATRIX,
-   gl_CURRENT_MATRIX_STACK_DEPTH,
-   gl_MAX_PROGRAM_MATRICES,
-   gl_MAX_PROGRAM_MATRIX_STACK_DEPTH,
-   gl_MAX_TEXTURE_COORDS,
-   gl_MAX_TEXTURE_IMAGE_UNITS,
-   gl_PROGRAM_ERROR_STRING,
-   gl_MATRIX0,
-   gl_MATRIX1,
-   gl_MATRIX2,
-   gl_MATRIX3,
-   gl_MATRIX4,
-   gl_MATRIX5,
-   gl_MATRIX6,
-   gl_MATRIX7,
-   gl_MATRIX8,
-   gl_MATRIX9,
-   gl_MATRIX10,
-   gl_MATRIX11,
-   gl_MATRIX12,
-   gl_MATRIX13,
-   gl_MATRIX14,
-   gl_MATRIX15,
-   gl_MATRIX16,
-   gl_MATRIX17,
-   gl_MATRIX18,
-   gl_MATRIX19,
-   gl_MATRIX20,
-   gl_MATRIX21,
-   gl_MATRIX22,
-   gl_MATRIX23,
-   gl_MATRIX24,
-   gl_MATRIX25,
-   gl_MATRIX26,
-   gl_MATRIX27,
-   gl_MATRIX28,
-   gl_MATRIX29,
-   gl_MATRIX30,
-   gl_MATRIX31
-) where
-
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
-import Graphics.Rendering.OpenGL.Raw.ARB.VertexProgram
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_FRAGMENT_PROGRAM :: GLenum
-gl_FRAGMENT_PROGRAM = 0x8804
-
-gl_PROGRAM_ALU_INSTRUCTIONS :: GLenum
-gl_PROGRAM_ALU_INSTRUCTIONS = 0x8805
-
-gl_PROGRAM_TEX_INSTRUCTIONS :: GLenum
-gl_PROGRAM_TEX_INSTRUCTIONS = 0x8806
-
-gl_PROGRAM_TEX_INDIRECTIONS :: GLenum
-gl_PROGRAM_TEX_INDIRECTIONS = 0x8807
-
-gl_PROGRAM_NATIVE_ALU_INSTRUCTIONS :: GLenum
-gl_PROGRAM_NATIVE_ALU_INSTRUCTIONS = 0x8808
-
-gl_PROGRAM_NATIVE_TEX_INSTRUCTIONS :: GLenum
-gl_PROGRAM_NATIVE_TEX_INSTRUCTIONS = 0x8809
-
-gl_PROGRAM_NATIVE_TEX_INDIRECTIONS :: GLenum
-gl_PROGRAM_NATIVE_TEX_INDIRECTIONS = 0x880A
-
-gl_MAX_PROGRAM_ALU_INSTRUCTIONS :: GLenum
-gl_MAX_PROGRAM_ALU_INSTRUCTIONS = 0x880B
-
-gl_MAX_PROGRAM_TEX_INSTRUCTIONS :: GLenum
-gl_MAX_PROGRAM_TEX_INSTRUCTIONS = 0x880C
-
-gl_MAX_PROGRAM_TEX_INDIRECTIONS :: GLenum
-gl_MAX_PROGRAM_TEX_INDIRECTIONS = 0x880D
-
-gl_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS :: GLenum
-gl_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS = 0x880E
-
-gl_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS :: GLenum
-gl_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS = 0x880F
-
-gl_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS :: GLenum
-gl_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS = 0x8810
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/FragmentShader.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/FragmentShader.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/FragmentShader.hs
+++ /dev/null
@@ -1,26 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.FragmentShader
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All tokens from the ARB_fragment_shader extension, see
--- <http://www.opengl.org/registry/specs/ARB/fragment_shader.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.FragmentShader (
-   -- * Tokens
-   gl_FRAGMENT_SHADER,
-   gl_MAX_FRAGMENT_UNIFORM_COMPONENTS,
-   gl_MAX_TEXTURE_COORDS,
-   gl_MAX_TEXTURE_IMAGE_UNITS,
-   gl_FRAGMENT_SHADER_DERIVATIVE_HINT
-) where
-
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
-import Graphics.Rendering.OpenGL.Raw.Core32
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/FramebufferObject.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/FramebufferObject.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/FramebufferObject.hs
+++ /dev/null
@@ -1,117 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.FramebufferObject
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the ARB_framebuffer_object extension, see
--- <http://www.opengl.org/registry/specs/ARB/framebuffer_object.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.FramebufferObject (
-   -- * Functions
-   glIsRenderbuffer,
-   glBindRenderbuffer,
-   glDeleteRenderbuffers,
-   glGenRenderbuffers,
-   glRenderbufferStorage,
-   glRenderbufferStorageMultisample,
-   glGetRenderbufferParameteriv,
-   glIsFramebuffer,
-   glBindFramebuffer,
-   glDeleteFramebuffers,
-   glGenFramebuffers,
-   glCheckFramebufferStatus,
-   glFramebufferTexture1D,
-   glFramebufferTexture2D,
-   glFramebufferTexture3D,
-   glFramebufferTextureLayer,
-   glFramebufferRenderbuffer,
-   glGetFramebufferAttachmentParameteriv,
-   glBlitFramebuffer,
-   glGenerateMipmap,
-   -- * Tokens
-   gl_FRAMEBUFFER,
-   gl_READ_FRAMEBUFFER,
-   gl_DRAW_FRAMEBUFFER,
-   gl_RENDERBUFFER,
-   gl_STENCIL_INDEX1,
-   gl_STENCIL_INDEX4,
-   gl_STENCIL_INDEX8,
-   gl_STENCIL_INDEX16,
-   gl_RENDERBUFFER_WIDTH,
-   gl_RENDERBUFFER_HEIGHT,
-   gl_RENDERBUFFER_INTERNAL_FORMAT,
-   gl_RENDERBUFFER_RED_SIZE,
-   gl_RENDERBUFFER_GREEN_SIZE,
-   gl_RENDERBUFFER_BLUE_SIZE,
-   gl_RENDERBUFFER_ALPHA_SIZE,
-   gl_RENDERBUFFER_DEPTH_SIZE,
-   gl_RENDERBUFFER_STENCIL_SIZE,
-   gl_RENDERBUFFER_SAMPLES,
-   gl_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
-   gl_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME,
-   gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL,
-   gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE,
-   gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER,
-   gl_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING,
-   gl_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE,
-   gl_FRAMEBUFFER_ATTACHMENT_RED_SIZE,
-   gl_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE,
-   gl_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE,
-   gl_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE,
-   gl_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE,
-   gl_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE,
-   gl_SRGB,
-   gl_UNSIGNED_NORMALIZED,
-   gl_FRAMEBUFFER_DEFAULT,
-   gl_INDEX,
-   gl_COLOR_ATTACHMENT0,
-   gl_COLOR_ATTACHMENT1,
-   gl_COLOR_ATTACHMENT2,
-   gl_COLOR_ATTACHMENT3,
-   gl_COLOR_ATTACHMENT4,
-   gl_COLOR_ATTACHMENT5,
-   gl_COLOR_ATTACHMENT6,
-   gl_COLOR_ATTACHMENT7,
-   gl_COLOR_ATTACHMENT8,
-   gl_COLOR_ATTACHMENT9,
-   gl_COLOR_ATTACHMENT10,
-   gl_COLOR_ATTACHMENT11,
-   gl_COLOR_ATTACHMENT12,
-   gl_COLOR_ATTACHMENT13,
-   gl_COLOR_ATTACHMENT14,
-   gl_COLOR_ATTACHMENT15,
-   gl_DEPTH_ATTACHMENT,
-   gl_STENCIL_ATTACHMENT,
-   gl_DEPTH_STENCIL_ATTACHMENT,
-   gl_MAX_SAMPLES,
-   gl_FRAMEBUFFER_COMPLETE,
-   gl_FRAMEBUFFER_INCOMPLETE_ATTACHMENT,
-   gl_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT,
-   gl_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER,
-   gl_FRAMEBUFFER_INCOMPLETE_READ_BUFFER,
-   gl_FRAMEBUFFER_UNSUPPORTED,
-   gl_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE,
-   gl_FRAMEBUFFER_UNDEFINED,
-   gl_FRAMEBUFFER_BINDING,
-   gl_DRAW_FRAMEBUFFER_BINDING,
-   gl_READ_FRAMEBUFFER_BINDING,
-   gl_RENDERBUFFER_BINDING,
-   gl_MAX_COLOR_ATTACHMENTS,
-   gl_MAX_RENDERBUFFER_SIZE,
-   gl_INVALID_FRAMEBUFFER_OPERATION,
-   gl_DEPTH_STENCIL,
-   gl_UNSIGNED_INT_24_8,
-   gl_DEPTH24_STENCIL8,
-   gl_TEXTURE_STENCIL_SIZE
-) where
-
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
-import Graphics.Rendering.OpenGL.Raw.Core31.Functions
-import Graphics.Rendering.OpenGL.Raw.Core31.Tokens
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/FramebufferSRGB.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/FramebufferSRGB.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/FramebufferSRGB.hs
+++ /dev/null
@@ -1,22 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.FramebufferSRGB
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All tokens from the ARB_framebuffer_sRGB extension, see
--- <http://www.opengl.org/registry/specs/ARB/framebuffer_sRGB.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.FramebufferSRGB (
-   -- * Tokens
-   gl_FRAMEBUFFER_SRGB
-
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/GeometryShader4.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/GeometryShader4.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/GeometryShader4.hs
+++ /dev/null
@@ -1,112 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.GeometryShader4
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the ARB_geometry_shader4 extension, see
--- <http://www.opengl.org/registry/specs/ARB/geometry_shader4.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.GeometryShader4 (
-   -- * Functions
-   glProgramParameteri,
-   glFramebufferTexture,
-   glFramebufferTextureLayer,
-   glFramebufferTextureFace,
-   -- * Tokens
-   gl_GEOMETRY_SHADER,
-   gl_GEOMETRY_VERTICES_OUT,
-   gl_GEOMETRY_INPUT_TYPE,
-   gl_GEOMETRY_OUTPUT_TYPE,
-   gl_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS,
-   gl_MAX_GEOMETRY_VARYING_COMPONENTS,
-   gl_MAX_VERTEX_VARYING_COMPONENTS,
-   gl_MAX_VARYING_COMPONENTS,
-   gl_MAX_GEOMETRY_UNIFORM_COMPONENTS,
-   gl_MAX_GEOMETRY_OUTPUT_VERTICES,
-   gl_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS,
-   gl_LINES_ADJACENCY,
-   gl_LINE_STRIP_ADJACENCY,
-   gl_TRIANGLES_ADJACENCY,
-   gl_TRIANGLE_STRIP_ADJACENCY,
-   gl_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS,
-   gl_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT,
-   gl_FRAMEBUFFER_ATTACHMENT_LAYERED,
-   gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER,
-   gl_PROGRAM_POINT_SIZE
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core31.Functions ( glFramebufferTextureLayer )
-import Graphics.Rendering.OpenGL.Raw.Core31.Tokens ( gl_MAX_VARYING_COMPONENTS, gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER )
-import Graphics.Rendering.OpenGL.Raw.Core31.Types
-import Graphics.Rendering.OpenGL.Raw.Extensions
-
-#include "HsOpenGLRaw.h"
-
-extensionNameString :: String
-extensionNameString = "GL_ARB_geometry_shader4"
-
-EXTENSION_ENTRY(glProgramParameteri,GLuint -> GLenum -> GLint -> IO ())
-EXTENSION_ENTRY(glFramebufferTexture,GLenum -> GLenum -> GLuint -> GLint -> IO ())
-EXTENSION_ENTRY(glFramebufferTextureFace,GLenum -> GLenum -> GLuint -> GLint -> GLenum -> IO ())
-
-gl_GEOMETRY_SHADER :: GLenum
-gl_GEOMETRY_SHADER = 0x8DD9
-
-gl_GEOMETRY_VERTICES_OUT :: GLenum
-gl_GEOMETRY_VERTICES_OUT = 0x8DDA
-
-gl_GEOMETRY_INPUT_TYPE :: GLenum
-gl_GEOMETRY_INPUT_TYPE = 0x8DDB
-
-gl_GEOMETRY_OUTPUT_TYPE :: GLenum
-gl_GEOMETRY_OUTPUT_TYPE = 0x8DDC
-
-gl_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS :: GLenum
-gl_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS = 0x8C29
-
-gl_MAX_GEOMETRY_VARYING_COMPONENTS :: GLenum
-gl_MAX_GEOMETRY_VARYING_COMPONENTS = 0x8DDD
-
-gl_MAX_VERTEX_VARYING_COMPONENTS :: GLenum
-gl_MAX_VERTEX_VARYING_COMPONENTS = 0x8DDE
-
-gl_MAX_GEOMETRY_UNIFORM_COMPONENTS :: GLenum
-gl_MAX_GEOMETRY_UNIFORM_COMPONENTS = 0x8DDF
-
-gl_MAX_GEOMETRY_OUTPUT_VERTICES :: GLenum
-gl_MAX_GEOMETRY_OUTPUT_VERTICES = 0x8DE0
-
-gl_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS :: GLenum
-gl_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS = 0x8DE1
-
-gl_LINES_ADJACENCY :: GLenum
-gl_LINES_ADJACENCY = 0xA
-
-gl_LINE_STRIP_ADJACENCY :: GLenum
-gl_LINE_STRIP_ADJACENCY = 0xB
-
-gl_TRIANGLES_ADJACENCY :: GLenum
-gl_TRIANGLES_ADJACENCY = 0xC
-
-gl_TRIANGLE_STRIP_ADJACENCY :: GLenum
-gl_TRIANGLE_STRIP_ADJACENCY = 0xD
-
-gl_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS :: GLenum
-gl_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS = 0x8DA8
-
-gl_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT :: GLenum
-gl_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT = 0x8DA9
-
-gl_FRAMEBUFFER_ATTACHMENT_LAYERED :: GLenum
-gl_FRAMEBUFFER_ATTACHMENT_LAYERED = 0x8DA7
-
-gl_PROGRAM_POINT_SIZE :: GLenum
-gl_PROGRAM_POINT_SIZE = 0x8642
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/HalfFloatPixel.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/HalfFloatPixel.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/HalfFloatPixel.hs
+++ /dev/null
@@ -1,21 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.HalfFloatPixel
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All tokens from the ARB_half_float_pixel extension, see
--- <http://www.opengl.org/registry/specs/ARB/half_float_pixel.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.HalfFloatPixel (
-   -- * Tokens
-   gl_HALF_FLOAT
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/HalfFloatVertex.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/HalfFloatVertex.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/HalfFloatVertex.hs
+++ /dev/null
@@ -1,21 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.HalfFloatVertex
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All tokens from the ARB_half_float_vertex extension, see
--- <http://www.opengl.org/registry/specs/ARB/half_float_vertex.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.HalfFloatVertex (
-   -- * Tokens
-   gl_HALF_FLOAT
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/InstancedArrays.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/InstancedArrays.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/InstancedArrays.hs
+++ /dev/null
@@ -1,35 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.InstancedArrays
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the ARB_instanced_arrays extension, see
--- <http://www.opengl.org/registry/specs/ARB/instanced_arrays.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.InstancedArrays (
-   -- * Functions
-   glVertexAttribDivisor,
-   -- * Tokens
-   gl_VERTEX_ATTRIB_ARRAY_DIVISOR
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Graphics.Rendering.OpenGL.Raw.Extensions
-
-#include "HsOpenGLRaw.h"
-
-extensionNameString :: String
-extensionNameString = "GL_ARB_instanced_arrays"
-
-EXTENSION_ENTRY(glVertexAttribDivisor,GLuint -> GLuint -> IO ())
-
-gl_VERTEX_ATTRIB_ARRAY_DIVISOR :: GLenum
-gl_VERTEX_ATTRIB_ARRAY_DIVISOR = 0x88FE
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/MapBufferRange.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/MapBufferRange.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/MapBufferRange.hs
+++ /dev/null
@@ -1,29 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.MapBufferRange
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the ARB_map_buffer_range extension, see
--- <http://www.opengl.org/registry/specs/ARB/map_buffer_range.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.MapBufferRange (
-   -- * Functions
-   glMapBufferRange,
-   glFlushMappedBufferRange,
-   -- * Tokens
-   gl_MAP_READ_BIT,
-   gl_MAP_WRITE_BIT,
-   gl_MAP_INVALIDATE_RANGE_BIT,
-   gl_MAP_INVALIDATE_BUFFER_BIT,
-   gl_MAP_FLUSH_EXPLICIT_BIT,
-   gl_MAP_UNSYNCHRONIZED_BIT
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/MatrixPalette.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/MatrixPalette.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/MatrixPalette.hs
+++ /dev/null
@@ -1,80 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.MatrixPalette
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the ARB_matrix_palette extension, see
--- <http://www.opengl.org/registry/specs/ARB/matrix_palette.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.MatrixPalette (
-   -- * Functions
-   glCurrentPaletteMatrix,
-   glMatrixIndexubv,
-   glMatrixIndexusv,
-   glMatrixIndexuiv,
-   glMatrixIndexPointer,
-   -- * Tokens
-   gl_MATRIX_PALETTE,
-   gl_MAX_MATRIX_PALETTE_STACK_DEPTH,
-   gl_MAX_PALETTE_MATRICES,
-   gl_CURRENT_PALETTE_MATRIX,
-   gl_MATRIX_INDEX_ARRAY,
-   gl_CURRENT_MATRIX_INDEX,
-   gl_MATRIX_INDEX_ARRAY_SIZE,
-   gl_MATRIX_INDEX_ARRAY_TYPE,
-   gl_MATRIX_INDEX_ARRAY_STRIDE,
-   gl_MATRIX_INDEX_ARRAY_POINTER
-) where
-
-import Foreign.Ptr
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Graphics.Rendering.OpenGL.Raw.Extensions
-
-#include "HsOpenGLRaw.h"
-
-extensionNameString :: String
-extensionNameString = "GL_ARB_matrix_palette"
-
-EXTENSION_ENTRY(glCurrentPaletteMatrix,GLint -> IO ())
-EXTENSION_ENTRY(glMatrixIndexubv,GLint -> Ptr GLubyte -> IO ())
-EXTENSION_ENTRY(glMatrixIndexusv,GLint -> Ptr GLushort -> IO ())
-EXTENSION_ENTRY(glMatrixIndexuiv,GLint -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glMatrixIndexPointer,GLint -> GLenum -> GLsizei -> Ptr a -> IO ())
-
-gl_MATRIX_PALETTE :: GLenum
-gl_MATRIX_PALETTE = 0x8840
-
-gl_MAX_MATRIX_PALETTE_STACK_DEPTH :: GLenum
-gl_MAX_MATRIX_PALETTE_STACK_DEPTH = 0x8841
-
-gl_MAX_PALETTE_MATRICES :: GLenum
-gl_MAX_PALETTE_MATRICES = 0x8842
-
-gl_CURRENT_PALETTE_MATRIX :: GLenum
-gl_CURRENT_PALETTE_MATRIX = 0x8843
-
-gl_MATRIX_INDEX_ARRAY :: GLenum
-gl_MATRIX_INDEX_ARRAY = 0x8844
-
-gl_CURRENT_MATRIX_INDEX :: GLenum
-gl_CURRENT_MATRIX_INDEX = 0x8845
-
-gl_MATRIX_INDEX_ARRAY_SIZE :: GLenum
-gl_MATRIX_INDEX_ARRAY_SIZE = 0x8846
-
-gl_MATRIX_INDEX_ARRAY_TYPE :: GLenum
-gl_MATRIX_INDEX_ARRAY_TYPE = 0x8847
-
-gl_MATRIX_INDEX_ARRAY_STRIDE :: GLenum
-gl_MATRIX_INDEX_ARRAY_STRIDE = 0x8848
-
-gl_MATRIX_INDEX_ARRAY_POINTER :: GLenum
-gl_MATRIX_INDEX_ARRAY_POINTER = 0x8849
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/Multisample.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/Multisample.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/Multisample.hs
+++ /dev/null
@@ -1,32 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.Multisample
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the ARB_multisample extension, see
--- <http://www.opengl.org/registry/specs/ARB/multisample.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.Multisample (
-   -- * Functions
-   glSampleCoverage,
-   -- * Tokens
-   gl_MULTISAMPLE,
-   gl_SAMPLE_ALPHA_TO_COVERAGE,
-   gl_SAMPLE_ALPHA_TO_ONE,
-   gl_SAMPLE_COVERAGE,
-   gl_MULTISAMPLE_BIT,
-   gl_SAMPLE_BUFFERS,
-   gl_SAMPLES,
-   gl_SAMPLE_COVERAGE_VALUE,
-   gl_SAMPLE_COVERAGE_INVERT
-) where
-
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
-import Graphics.Rendering.OpenGL.Raw.Core32
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/Multitexture.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/Multitexture.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/Multitexture.hs
+++ /dev/null
@@ -1,91 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.Multitexture
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the ARB_multitexture extension, see
--- <http://www.opengl.org/registry/specs/ARB/multitexture.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.Multitexture (
-   -- * Functions
-   glActiveTexture,
-   glClientActiveTexture,
-   glMultiTexCoord1d,
-   glMultiTexCoord1dv,
-   glMultiTexCoord1f,
-   glMultiTexCoord1fv,
-   glMultiTexCoord1i,
-   glMultiTexCoord1iv,
-   glMultiTexCoord1s,
-   glMultiTexCoord1sv,
-   glMultiTexCoord2d,
-   glMultiTexCoord2dv,
-   glMultiTexCoord2f,
-   glMultiTexCoord2fv,
-   glMultiTexCoord2i,
-   glMultiTexCoord2iv,
-   glMultiTexCoord2s,
-   glMultiTexCoord2sv,
-   glMultiTexCoord3d,
-   glMultiTexCoord3dv,
-   glMultiTexCoord3f,
-   glMultiTexCoord3fv,
-   glMultiTexCoord3i,
-   glMultiTexCoord3iv,
-   glMultiTexCoord3s,
-   glMultiTexCoord3sv,
-   glMultiTexCoord4d,
-   glMultiTexCoord4dv,
-   glMultiTexCoord4f,
-   glMultiTexCoord4fv,
-   glMultiTexCoord4i,
-   glMultiTexCoord4iv,
-   glMultiTexCoord4s,
-   glMultiTexCoord4sv,
-   -- * Tokens
-   gl_ACTIVE_TEXTURE,
-   gl_CLIENT_ACTIVE_TEXTURE,
-   gl_MAX_TEXTURE_UNITS,
-   gl_TEXTURE0,
-   gl_TEXTURE1,
-   gl_TEXTURE10,
-   gl_TEXTURE11,
-   gl_TEXTURE12,
-   gl_TEXTURE13,
-   gl_TEXTURE14,
-   gl_TEXTURE15,
-   gl_TEXTURE16,
-   gl_TEXTURE17,
-   gl_TEXTURE18,
-   gl_TEXTURE19,
-   gl_TEXTURE2,
-   gl_TEXTURE20,
-   gl_TEXTURE21,
-   gl_TEXTURE22,
-   gl_TEXTURE23,
-   gl_TEXTURE24,
-   gl_TEXTURE25,
-   gl_TEXTURE26,
-   gl_TEXTURE27,
-   gl_TEXTURE28,
-   gl_TEXTURE29,
-   gl_TEXTURE3,
-   gl_TEXTURE30,
-   gl_TEXTURE31,
-   gl_TEXTURE4,
-   gl_TEXTURE5,
-   gl_TEXTURE6,
-   gl_TEXTURE7,
-   gl_TEXTURE8,
-   gl_TEXTURE9
-) where
-
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
-import Graphics.Rendering.OpenGL.Raw.Core32
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/OcclusionQuery.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/OcclusionQuery.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/OcclusionQuery.hs
+++ /dev/null
@@ -1,34 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.OcclusionQuery
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the ARB_occlusion_query extension, see
--- <http://www.opengl.org/registry/specs/ARB/occlusion_query.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.OcclusionQuery (
-   -- * Functions
-   glGenQueries,
-   glDeleteQueries,
-   glIsQuery,
-   glBeginQuery,
-   glEndQuery,
-   glGetQueryiv,
-   glGetQueryObjectiv,
-   glGetQueryObjectuiv,
-   -- * Tokens
-   gl_SAMPLES_PASSED,
-   gl_QUERY_COUNTER_BITS,
-   gl_CURRENT_QUERY,
-   gl_QUERY_RESULT,
-   gl_QUERY_RESULT_AVAILABLE
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/PixelBufferObject.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/PixelBufferObject.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/PixelBufferObject.hs
+++ /dev/null
@@ -1,24 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.PixelBufferObject
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All tokens from the ARB_pixel_buffer_object extension, see
--- <http://www.opengl.org/registry/specs/ARB/pixel_buffer_object.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.PixelBufferObject (
-   -- * Tokens
-   gl_PIXEL_PACK_BUFFER,
-   gl_PIXEL_UNPACK_BUFFER,
-   gl_PIXEL_PACK_BUFFER_BINDING,
-   gl_PIXEL_UNPACK_BUFFER_BINDING
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/PointParameters.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/PointParameters.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/PointParameters.hs
+++ /dev/null
@@ -1,28 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.PointParameters
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the ARB_point_parameters extension, see
--- <http://www.opengl.org/registry/specs/ARB/point_parameters.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.PointParameters (
-   -- * Functions
-   glPointParameterf,
-   glPointParameterfv,
-   -- * Tokens
-   gl_POINT_SIZE_MIN,
-   gl_POINT_SIZE_MAX,
-   gl_POINT_FADE_THRESHOLD_SIZE,
-   gl_POINT_DISTANCE_ATTENUATION,
-) where
-
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
-import Graphics.Rendering.OpenGL.Raw.Core32
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/PointSprite.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/PointSprite.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/PointSprite.hs
+++ /dev/null
@@ -1,22 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.PointSprite
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All tokens from the ARB_point_sprite extension, see
--- <http://www.opengl.org/registry/specs/ARB/point_sprite.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.PointSprite (
-   -- * Tokens
-   gl_POINT_SPRITE,
-   gl_COORD_REPLACE
-) where
-
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/ProvokingVertex.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/ProvokingVertex.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/ProvokingVertex.hs
+++ /dev/null
@@ -1,47 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.ProvokingVertex
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the ARB_provoking_vertex extension, see
--- <http://www.opengl.org/registry/specs/ARB/provoking_vertex.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.ProvokingVertex (
-   -- * Functions
-   glProvokingVertex,
-   -- * Tokens
-   gl_FIRST_VERTEX_CONVENTION,
-   gl_LAST_VERTEX_CONVENTION,
-   gl_PROVOKING_VERTEX,
-   gl_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core31.Types
-import Graphics.Rendering.OpenGL.Raw.Extensions
-
-#include "HsOpenGLRaw.h"
-
-extensionNameString :: String
-extensionNameString = "GL_ARB_provoking_vertex"
-
-EXTENSION_ENTRY(glProvokingVertex,GLenum -> IO ())
-
-gl_FIRST_VERTEX_CONVENTION :: GLenum
-gl_FIRST_VERTEX_CONVENTION = 0x8E4D
-
-gl_LAST_VERTEX_CONVENTION :: GLenum
-gl_LAST_VERTEX_CONVENTION = 0x8E4E
-
-gl_PROVOKING_VERTEX :: GLenum
-gl_PROVOKING_VERTEX = 0x8E4F
-
-gl_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION :: GLenum
-gl_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION = 0x8E4C
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/SampleShading.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/SampleShading.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/SampleShading.hs
+++ /dev/null
@@ -1,39 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.SampleShading
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the ARB_sample_shading extension, see
--- <http://www.opengl.org/registry/specs/ARB/sample_shading.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.SampleShading (
-   -- * Functions
-   glMinSampleShading,
-   -- * Tokens
-   gl_SAMPLE_SHADING,
-   gl_MIN_SAMPLE_SHADING_VALUE
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Graphics.Rendering.OpenGL.Raw.Extensions
-
-#include "HsOpenGLRaw.h"
-
-extensionNameString :: String
-extensionNameString = "GL_ARB_sample_shading"
-
-EXTENSION_ENTRY(glMinSampleShading,GLclampf -> IO ())
-
-gl_SAMPLE_SHADING :: GLenum
-gl_SAMPLE_SHADING = 0x8C36
-
-gl_MIN_SAMPLE_SHADING_VALUE :: GLenum
-gl_MIN_SAMPLE_SHADING_VALUE = 0x8C37
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/SeamlessCubeMap.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/SeamlessCubeMap.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/SeamlessCubeMap.hs
+++ /dev/null
@@ -1,24 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.SeamlessCubeMap
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All tokens from the ARB_seamless_cube_map extension, see
--- <http://www.opengl.org/registry/specs/ARB/seamless_cube_map.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.SeamlessCubeMap (
-   -- * Tokens
-   gl_TEXTURE_CUBE_MAP_SEAMLESS
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core31.Types
-
-gl_TEXTURE_CUBE_MAP_SEAMLESS :: GLenum
-gl_TEXTURE_CUBE_MAP_SEAMLESS = 0x884F
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/ShaderObjects.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/ShaderObjects.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/ShaderObjects.hs
+++ /dev/null
@@ -1,159 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.ShaderObjects
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the ARB_shader_objects extension, see
--- <http://www.opengl.org/registry/specs/ARB/shader_objects.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.ShaderObjects (
-   -- * Functions
-   glDeleteObject,
-   glGetHandle,
-   glDetachObject,
-   glCreateShaderObject,
-   glShaderSource,
-   glCompileShader,
-   glCreateProgramObject,
-   glAttachObject,
-   glLinkProgram,
-   glUseProgramObject,
-   glValidateProgram,
-   glUniform1f,
-   glUniform2f,
-   glUniform3f,
-   glUniform4f,
-   glUniform1i,
-   glUniform2i,
-   glUniform3i,
-   glUniform4i,
-   glUniform1fv,
-   glUniform2fv,
-   glUniform3fv,
-   glUniform4fv,
-   glUniform1iv,
-   glUniform2iv,
-   glUniform3iv,
-   glUniform4iv,
-   glUniformMatrix2fv,
-   glUniformMatrix3fv,
-   glUniformMatrix4fv,
-   glGetObjectParameterfv,
-   glGetObjectParameteriv,
-   glGetInfoLog,
-   glGetAttachedObjects,
-   glGetUniformLocation,
-   glGetActiveUniform,
-   glGetUniformfv,
-   glGetUniformiv,
-   glGetShaderSource,
-   -- * Tokens
-   gl_PROGRAM_OBJECT,
-   gl_OBJECT_TYPE_ARB,
-   gl_OBJECT_SUBTYPE,
-   gl_OBJECT_DELETE_STATUS,
-   gl_OBJECT_COMPILE_STATUS,
-   gl_OBJECT_LINK_STATUS,
-   gl_OBJECT_VALIDATE_STATUS,
-   gl_OBJECT_INFO_LOG_LENGTH,
-   gl_OBJECT_ATTACHED_OBJECTS,
-   gl_OBJECT_ACTIVE_UNIFORMS,
-   gl_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH,
-   gl_OBJECT_SHADER_SOURCE_LENGTH,
-   gl_SHADER_OBJECT,
-   gl_FLOAT,
-   gl_FLOAT_VEC2,
-   gl_FLOAT_VEC3,
-   gl_FLOAT_VEC4,
-   gl_INT,
-   gl_INT_VEC2,
-   gl_INT_VEC3,
-   gl_INT_VEC4,
-   gl_BOOL,
-   gl_BOOL_VEC2,
-   gl_BOOL_VEC3,
-   gl_BOOL_VEC4,
-   gl_FLOAT_MAT2,
-   gl_FLOAT_MAT3,
-   gl_FLOAT_MAT4,
-   gl_SAMPLER_1D,
-   gl_SAMPLER_2D,
-   gl_SAMPLER_3D,
-   gl_SAMPLER_CUBE,
-   gl_SAMPLER_1D_SHADOW,
-   gl_SAMPLER_2D_SHADOW,
-   gl_SAMPLER_2D_RECT,
-   gl_SAMPLER_2D_RECT_SHADOW,
-   -- * Types
-   GLhandle
-) where
-
-import Foreign.Ptr
-import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Graphics.Rendering.OpenGL.Raw.Extensions
-
-#include "HsOpenGLRaw.h"
-
-extensionNameString :: String
-extensionNameString = "GL_ARB_shader_objects"
-
-EXTENSION_ENTRY(glDeleteObject,GLhandle -> IO ())
-EXTENSION_ENTRY(glGetHandle,GLenum -> IO GLhandle)
-EXTENSION_ENTRY(glDetachObject,GLhandle -> GLhandle -> IO ())
-EXTENSION_ENTRY(glCreateShaderObject,GLenum -> IO GLhandle)
-EXTENSION_ENTRY(glCreateProgramObject,IO GLhandle)
-EXTENSION_ENTRY(glAttachObject,GLhandle -> GLhandle -> IO ())
-EXTENSION_ENTRY(glUseProgramObject,GLhandle -> IO ())
-EXTENSION_ENTRY(glGetObjectParameterfv,GLhandle -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glGetObjectParameteriv,GLhandle -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glGetInfoLog,GLhandle -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
-EXTENSION_ENTRY(glGetAttachedObjects,GLhandle -> GLsizei -> Ptr GLsizei -> Ptr GLhandle -> IO ())
-
-gl_PROGRAM_OBJECT :: GLenum
-gl_PROGRAM_OBJECT = 0x8B40
-
--- | Note: We use the ARB suffix here, because the name clashes with the ARB_sync extension.
-gl_OBJECT_TYPE_ARB :: GLenum
-gl_OBJECT_TYPE_ARB = 0x8B4E
-
-gl_OBJECT_SUBTYPE :: GLenum
-gl_OBJECT_SUBTYPE = 0x8B4F
-
-gl_OBJECT_DELETE_STATUS :: GLenum
-gl_OBJECT_DELETE_STATUS = 0x8B80
-
-gl_OBJECT_COMPILE_STATUS :: GLenum
-gl_OBJECT_COMPILE_STATUS = 0x8B81
-
-gl_OBJECT_LINK_STATUS :: GLenum
-gl_OBJECT_LINK_STATUS = 0x8B82
-
-gl_OBJECT_VALIDATE_STATUS :: GLenum
-gl_OBJECT_VALIDATE_STATUS = 0x8B83
-
-gl_OBJECT_INFO_LOG_LENGTH :: GLenum
-gl_OBJECT_INFO_LOG_LENGTH = 0x8B84
-
-gl_OBJECT_ATTACHED_OBJECTS :: GLenum
-gl_OBJECT_ATTACHED_OBJECTS = 0x8B85
-
-gl_OBJECT_ACTIVE_UNIFORMS :: GLenum
-gl_OBJECT_ACTIVE_UNIFORMS = 0x8B86
-
-gl_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH :: GLenum
-gl_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH = 0x8B87
-
-gl_OBJECT_SHADER_SOURCE_LENGTH :: GLenum
-gl_OBJECT_SHADER_SOURCE_LENGTH = 0x8B88
-
-gl_SHADER_OBJECT :: GLenum
-gl_SHADER_OBJECT = 0x8B48
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/ShadingLanguage100.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/ShadingLanguage100.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/ShadingLanguage100.hs
+++ /dev/null
@@ -1,21 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.ShadingLanguage100
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All tokens from the ARB_shading_language_100 extension, see
--- <http://www.opengl.org/registry/specs/ARB/shading_language_100.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.ShadingLanguage100 (
-   -- * Tokens
-   gl_SHADING_LANGUAGE_VERSION
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/Shadow.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/Shadow.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/Shadow.hs
+++ /dev/null
@@ -1,24 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.Shadow
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All tokens from the ARB_shadow extension, see
--- <http://www.opengl.org/registry/specs/ARB/shadow.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.Shadow (
-   -- * Tokens
-   gl_TEXTURE_COMPARE_MODE,
-   gl_TEXTURE_COMPARE_FUNC,
-   gl_COMPARE_R_TO_TEXTURE
-) where
-
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
-import Graphics.Rendering.OpenGL.Raw.Core32
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/ShadowAmbient.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/ShadowAmbient.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/ShadowAmbient.hs
+++ /dev/null
@@ -1,24 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.ShadowAmbient
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All tokens from the ARB_shadow_ambient extension, see
--- <http://www.opengl.org/registry/specs/ARB/shadow_ambient.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.ShadowAmbient (
-   -- * Tokens
-   gl_TEXTURE_COMPARE_FAIL_VALUE
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_TEXTURE_COMPARE_FAIL_VALUE :: GLenum
-gl_TEXTURE_COMPARE_FAIL_VALUE = 0x80BF
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/Sync.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/Sync.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/Sync.hs
+++ /dev/null
@@ -1,108 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.Sync
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions, tokens and types from the ARB_sync extension, see
--- <http://www.opengl.org/registry/specs/ARB/sync.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.Sync (
-   -- * Functions
-   glFenceSync,
-   glIsSync,
-   glDeleteSync,
-   glClientWaitSync,
-   glWaitSync,
-   glGetInteger64v,
-   glGetSynciv,
-   -- * Tokens
-   gl_MAX_SERVER_WAIT_TIMEOUT,
-   gl_OBJECT_TYPE,
-   gl_SYNC_CONDITION,
-   gl_SYNC_STATUS,
-   gl_SYNC_FLAGS,
-   gl_SYNC_FENCE,
-   gl_SYNC_GPU_COMMANDS_COMPLETE,
-   gl_UNSIGNALED,
-   gl_SIGNALED,
-   gl_SYNC_FLUSH_COMMANDS_BIT,
-   gl_TIMEOUT_IGNORED,
-   gl_ALREADY_SIGNALED,
-   gl_TIMEOUT_EXPIRED,
-   gl_CONDITION_SATISFIED,
-   gl_WAIT_FAILED,
-   -- * Types
-   GLint64,
-   GLuint64,
-   GLsync
-) where
-
-import Foreign.Ptr
-import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
-import Graphics.Rendering.OpenGL.Raw.Extensions
-
-#include "HsOpenGLRaw.h"
-
-extensionNameString :: String
-extensionNameString = "GL_ARB_sync"
-
-EXTENSION_ENTRY(glFenceSync,GLenum -> GLbitfield -> IO GLsync)
-EXTENSION_ENTRY(glIsSync,GLsync -> IO GLboolean)
-EXTENSION_ENTRY(glDeleteSync,GLsync -> IO ())
-EXTENSION_ENTRY(glClientWaitSync,GLsync -> GLbitfield -> GLuint64 -> IO GLenum)
-EXTENSION_ENTRY(glWaitSync,GLsync -> GLbitfield -> GLuint64 -> IO ())
-EXTENSION_ENTRY(glGetInteger64v,GLenum -> Ptr GLint64 -> IO ())
-EXTENSION_ENTRY(glGetSynciv,GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> IO ())
-
-gl_MAX_SERVER_WAIT_TIMEOUT :: GLenum
-gl_MAX_SERVER_WAIT_TIMEOUT = 0x9111
-
-gl_OBJECT_TYPE :: GLenum
-gl_OBJECT_TYPE = 0x9112
-
-gl_SYNC_CONDITION :: GLenum
-gl_SYNC_CONDITION = 0x9113
-
-gl_SYNC_STATUS :: GLenum
-gl_SYNC_STATUS = 0x9114
-
-gl_SYNC_FLAGS :: GLenum
-gl_SYNC_FLAGS = 0x9115
-
-gl_SYNC_FENCE :: GLenum
-gl_SYNC_FENCE = 0x9116
-
-gl_SYNC_GPU_COMMANDS_COMPLETE :: GLenum
-gl_SYNC_GPU_COMMANDS_COMPLETE = 0x9117
-
-gl_UNSIGNALED :: GLenum
-gl_UNSIGNALED = 0x9118
-
-gl_SIGNALED :: GLenum
-gl_SIGNALED = 0x9119
-
-gl_SYNC_FLUSH_COMMANDS_BIT :: GLenum
-gl_SYNC_FLUSH_COMMANDS_BIT = 0x00000001
-
-gl_TIMEOUT_IGNORED :: GLuint64
-gl_TIMEOUT_IGNORED = 0xFFFFFFFFFFFFFFFF
-
-gl_ALREADY_SIGNALED :: GLenum
-gl_ALREADY_SIGNALED = 0x911A
-
-gl_TIMEOUT_EXPIRED :: GLenum
-gl_TIMEOUT_EXPIRED = 0x911B
-
-gl_CONDITION_SATISFIED :: GLenum
-gl_CONDITION_SATISFIED = 0x911C
-
-gl_WAIT_FAILED :: GLenum
-gl_WAIT_FAILED = 0x911D
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureBorderClamp.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureBorderClamp.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureBorderClamp.hs
+++ /dev/null
@@ -1,21 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.TextureBorderClamp
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the ARB_texture_border_clamp extension, see
--- <http://www.opengl.org/registry/specs/ARB/texture_border_clamp.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.TextureBorderClamp (
-   -- * Tokens
- gl_CLAMP_TO_BORDER
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureBufferObject.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureBufferObject.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureBufferObject.hs
+++ /dev/null
@@ -1,51 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.TextureBufferObject
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the ARB_texture_buffer_object, see
--- <http://www.opengl.org/registry/specs/ARB/texture_buffer_object.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.TextureBufferObject (
-   -- * Functions
-   glTexBuffer,
-   -- * Tokens
-   gl_TEXTURE_BUFFER,
-   gl_MAX_TEXTURE_BUFFER_SIZE,
-   gl_TEXTURE_BINDING_BUFFER,
-   gl_TEXTURE_BUFFER_DATA_STORE_BINDING,
-   gl_TEXTURE_BUFFER_FORMAT
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core31.Types
-import Graphics.Rendering.OpenGL.Raw.Extensions
-
-#include "HsOpenGLRaw.h"
-
-extensionNameString :: String
-extensionNameString = "GL_ARB_texture_buffer_object"
-
-EXTENSION_ENTRY(glTexBuffer,GLenum -> GLenum -> GLuint -> IO ())
-
-gl_TEXTURE_BUFFER :: GLenum
-gl_TEXTURE_BUFFER = 0x8C2A
-
-gl_MAX_TEXTURE_BUFFER_SIZE :: GLenum
-gl_MAX_TEXTURE_BUFFER_SIZE = 0x8C2B
-
-gl_TEXTURE_BINDING_BUFFER :: GLenum
-gl_TEXTURE_BINDING_BUFFER = 0x8C2C
-
-gl_TEXTURE_BUFFER_DATA_STORE_BINDING :: GLenum
-gl_TEXTURE_BUFFER_DATA_STORE_BINDING = 0x8C2D
-
-gl_TEXTURE_BUFFER_FORMAT :: GLenum
-gl_TEXTURE_BUFFER_FORMAT = 0x8C2E
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureCompression.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureCompression.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureCompression.hs
+++ /dev/null
@@ -1,40 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.TextureCompression
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the ARB_texture_compression extension, see
--- <http://www.opengl.org/registry/specs/ARB/texture_compression.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.TextureCompression (
-   -- * Functions
-   glCompressedTexImage3D,
-   glCompressedTexImage2D,
-   glCompressedTexImage1D,
-   glCompressedTexSubImage3D,
-   glCompressedTexSubImage2D,
-   glCompressedTexSubImage1D,
-   glGetCompressedTexImage,
-   -- * Tokens
-   gl_COMPRESSED_ALPHA,
-   gl_COMPRESSED_LUMINANCE,
-   gl_COMPRESSED_LUMINANCE_ALPHA,
-   gl_COMPRESSED_INTENSITY,
-   gl_COMPRESSED_RGB,
-   gl_COMPRESSED_RGBA,
-   gl_TEXTURE_COMPRESSION_HINT,
-   gl_TEXTURE_COMPRESSED_IMAGE_SIZE,
-   gl_TEXTURE_COMPRESSED,
-   gl_NUM_COMPRESSED_TEXTURE_FORMATS,
-   gl_COMPRESSED_TEXTURE_FORMATS
-) where
-
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
-import Graphics.Rendering.OpenGL.Raw.Core32
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureCompressionRGTC.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureCompressionRGTC.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureCompressionRGTC.hs
+++ /dev/null
@@ -1,24 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.TextureCompressionRGTC
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All tokens from the ARB_texture_compression_rgtc extension, see
--- <http://www.opengl.org/registry/specs/ARB/texture_compression_rgtc.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.TextureCompressionRGTC (
-   -- * Tokens
-   gl_COMPRESSED_RED_RGTC1,
-   gl_COMPRESSED_SIGNED_RED_RGTC1,
-   gl_COMPRESSED_RG_RGTC2,
-   gl_COMPRESSED_SIGNED_RG_RGTC2
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureCubeMap.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureCubeMap.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureCubeMap.hs
+++ /dev/null
@@ -1,33 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.TextureCubeMap
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the ARB_texture_cube_map extension, see
--- <http://www.opengl.org/registry/specs/ARB/texture_cube_map.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.TextureCubeMap (
-   -- * Tokens
-   gl_NORMAL_MAP,
-   gl_REFLECTION_MAP,
-   gl_TEXTURE_CUBE_MAP,
-   gl_TEXTURE_BINDING_CUBE_MAP,
-   gl_TEXTURE_CUBE_MAP_POSITIVE_X,
-   gl_TEXTURE_CUBE_MAP_NEGATIVE_X,
-   gl_TEXTURE_CUBE_MAP_POSITIVE_Y,
-   gl_TEXTURE_CUBE_MAP_NEGATIVE_Y,
-   gl_TEXTURE_CUBE_MAP_POSITIVE_Z,
-   gl_TEXTURE_CUBE_MAP_NEGATIVE_Z,
-   gl_PROXY_TEXTURE_CUBE_MAP,
-   gl_MAX_CUBE_MAP_TEXTURE_SIZE
-) where
-
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
-import Graphics.Rendering.OpenGL.Raw.Core32
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureCubeMapArray.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureCubeMapArray.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureCubeMapArray.hs
+++ /dev/null
@@ -1,49 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.TextureCubeMapArray
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All tokens from the ARB_texture_cube_map_array extension, see
--- <http://www.opengl.org/registry/specs/ARB/texture_cube_map_array.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.TextureCubeMapArray (
-   -- * Tokens
-   gl_TEXTURE_CUBE_MAP_ARRAY,
-   gl_TEXTURE_BINDING_CUBE_MAP_ARRAY,
-   gl_PROXY_TEXTURE_CUBE_MAP_ARRAY,
-   gl_SAMPLER_CUBE_MAP_ARRAY,
-   gl_SAMPLER_CUBE_MAP_ARRAY_SHADOW,
-   gl_INT_SAMPLER_CUBE_MAP_ARRAY,
-   gl_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_TEXTURE_CUBE_MAP_ARRAY :: GLenum
-gl_TEXTURE_CUBE_MAP_ARRAY = 0x9009
-
-gl_TEXTURE_BINDING_CUBE_MAP_ARRAY :: GLenum
-gl_TEXTURE_BINDING_CUBE_MAP_ARRAY = 0x900A
-
-gl_PROXY_TEXTURE_CUBE_MAP_ARRAY :: GLenum
-gl_PROXY_TEXTURE_CUBE_MAP_ARRAY = 0x900B
-
-gl_SAMPLER_CUBE_MAP_ARRAY :: GLenum
-gl_SAMPLER_CUBE_MAP_ARRAY = 0x900C
-
-gl_SAMPLER_CUBE_MAP_ARRAY_SHADOW :: GLenum
-gl_SAMPLER_CUBE_MAP_ARRAY_SHADOW = 0x900D
-
-gl_INT_SAMPLER_CUBE_MAP_ARRAY :: GLenum
-gl_INT_SAMPLER_CUBE_MAP_ARRAY = 0x900E
-
-gl_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY :: GLenum
-gl_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY = 0x900F
-
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureEnvAdd.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureEnvAdd.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureEnvAdd.hs
+++ /dev/null
@@ -1,21 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.TextureEnvAdd
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All tokens from the ARB_texture_env_add extension, see
--- <http://www.opengl.org/registry/specs/ARB/texture_env_add.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.TextureEnvAdd (
-   -- * Tokens
-   gl_ADD
-) where
-
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureEnvCombine.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureEnvCombine.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureEnvCombine.hs
+++ /dev/null
@@ -1,54 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.TextureEnvCombine
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All tokens from the ARB_texture_env_combine extension, see
--- <http://www.opengl.org/registry/specs/ARB/texture_env_combine.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.TextureEnvCombine (
-   -- * Tokens
-   gl_COMBINE,
-   gl_COMBINE_RGB,
-   gl_COMBINE_ALPHA,
-   gl_SOURCE0_RGB,
-   gl_SOURCE1_RGB,
-   gl_SOURCE2_RGB,
-   gl_SOURCE0_ALPHA,
-   gl_SOURCE1_ALPHA,
-   gl_SOURCE2_ALPHA,
-   gl_OPERAND0_RGB,
-   gl_OPERAND1_RGB,
-   gl_OPERAND2_RGB,
-   gl_OPERAND0_ALPHA,
-   gl_OPERAND1_ALPHA,
-   gl_OPERAND2_ALPHA,
-   gl_RGB_SCALE,
-   gl_ALPHA_SCALE,
-   gl_REPLACE,
-   gl_MODULATE,
-   gl_ADD,
-   gl_ADD_SIGNED,
-   gl_INTERPOLATE,
-   gl_SUBTRACT,
-   gl_TEXTURE,
-   gl_CONSTANT,
-   gl_PRIMARY_COLOR,
-   gl_PREVIOUS,
-   gl_SRC_COLOR,
-   gl_ONE_MINUS_SRC_COLOR,
-   gl_SRC_ALPHA,
-   gl_ONE_MINUS_SRC_ALPHA,
-   gl_SRC_ALPHA,
-   gl_ONE_MINUS_SRC_ALPHA
-) where
-
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
-import Graphics.Rendering.OpenGL.Raw.Core32
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureEnvCrossbar.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureEnvCrossbar.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureEnvCrossbar.hs
+++ /dev/null
@@ -1,52 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.TextureEnvCrossbar
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All tokens from the ARB_texture_env_crossbar extension, see
--- <http://www.opengl.org/registry/specs/ARB/texture_env_crossbar.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.TextureEnvCrossbar (
-   -- * Tokens
-   gl_TEXTURE0,
-   gl_TEXTURE1,
-   gl_TEXTURE10,
-   gl_TEXTURE11,
-   gl_TEXTURE12,
-   gl_TEXTURE13,
-   gl_TEXTURE14,
-   gl_TEXTURE15,
-   gl_TEXTURE16,
-   gl_TEXTURE17,
-   gl_TEXTURE18,
-   gl_TEXTURE19,
-   gl_TEXTURE2,
-   gl_TEXTURE20,
-   gl_TEXTURE21,
-   gl_TEXTURE22,
-   gl_TEXTURE23,
-   gl_TEXTURE24,
-   gl_TEXTURE25,
-   gl_TEXTURE26,
-   gl_TEXTURE27,
-   gl_TEXTURE28,
-   gl_TEXTURE29,
-   gl_TEXTURE3,
-   gl_TEXTURE30,
-   gl_TEXTURE31,
-   gl_TEXTURE4,
-   gl_TEXTURE5,
-   gl_TEXTURE6,
-   gl_TEXTURE7,
-   gl_TEXTURE8,
-   gl_TEXTURE9
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureEnvDot3.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureEnvDot3.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureEnvDot3.hs
+++ /dev/null
@@ -1,22 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.TextureEnvDot3
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All tokens from the ARB_texture_env_dot3 extension, see
--- <http://www.opengl.org/registry/specs/ARB/texture_env_dot3.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.TextureEnvDot3 (
-   -- * Tokens
-   gl_DOT3_RGB,
-   gl_DOT3_RGBA
-) where
-
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureFloat.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureFloat.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureFloat.hs
+++ /dev/null
@@ -1,65 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.TextureFloat
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All tokens from the ARB_texture_float extension, see
--- <http://www.opengl.org/registry/specs/ARB/texture_float.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.TextureFloat (
-   -- * Tokens
-   gl_TEXTURE_RED_TYPE,
-   gl_TEXTURE_GREEN_TYPE,
-   gl_TEXTURE_BLUE_TYPE,
-   gl_TEXTURE_ALPHA_TYPE,
-   gl_TEXTURE_LUMINANCE_TYPE,
-   gl_TEXTURE_INTENSITY_TYPE,
-   gl_TEXTURE_DEPTH_TYPE,
-   gl_UNSIGNED_NORMALIZED,
-   gl_RGBA32F,
-   gl_RGB32F,
-   gl_ALPHA32F,
-   gl_INTENSITY32F,
-   gl_LUMINANCE32F,
-   gl_LUMINANCE_ALPHA32F,
-   gl_RGBA16F,
-   gl_RGB16F,
-   gl_ALPHA16F,
-   gl_INTENSITY16F,
-   gl_LUMINANCE16F,
-   gl_LUMINANCE_ALPHA16F
-) where
-
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_ALPHA32F :: GLenum
-gl_ALPHA32F = 0x8816
-
-gl_INTENSITY32F :: GLenum
-gl_INTENSITY32F = 0x8817
-
-gl_LUMINANCE32F :: GLenum
-gl_LUMINANCE32F = 0x8818
-
-gl_LUMINANCE_ALPHA32F :: GLenum
-gl_LUMINANCE_ALPHA32F = 0x8819
-
-gl_ALPHA16F :: GLenum
-gl_ALPHA16F = 0x881C
-
-gl_INTENSITY16F :: GLenum
-gl_INTENSITY16F = 0x881D
-
-gl_LUMINANCE16F :: GLenum
-gl_LUMINANCE16F = 0x881E
-
-gl_LUMINANCE_ALPHA16F :: GLenum
-gl_LUMINANCE_ALPHA16F = 0x881F
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureGather.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureGather.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureGather.hs
+++ /dev/null
@@ -1,32 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.TextureGather
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All tokens from the ARB_texture_gather extension, see
--- <http://www.opengl.org/registry/specs/ARB/.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.TextureGather (
-   -- * Tokens
-   gl_MIN_PROGRAM_TEXTURE_GATHER_OFFSET,
-   gl_MAX_PROGRAM_TEXTURE_GATHER_OFFSET,
-   gl_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_MIN_PROGRAM_TEXTURE_GATHER_OFFSET :: GLenum
-gl_MIN_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5E
-
-gl_MAX_PROGRAM_TEXTURE_GATHER_OFFSET :: GLenum
-gl_MAX_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5F
-
-gl_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS :: GLenum
-gl_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS = 0x8F9F
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureMirroredRepeat.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureMirroredRepeat.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureMirroredRepeat.hs
+++ /dev/null
@@ -1,21 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.TextureMirroredRepeat
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All tokens from the ARB_texture_mirrored_repeat extension, see
--- <http://www.opengl.org/registry/specs/ARB/texture_mirrored_repeat.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.TextureMirroredRepeat (
-   -- * Tokens
-   gl_MIRRORED_REPEAT
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureMultisample.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureMultisample.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureMultisample.hs
+++ /dev/null
@@ -1,123 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.TextureMultisample
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the ARB_texture_multisample extension, see
--- <http://www.opengl.org/registry/specs/ARB/texture_multisample.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.TextureMultisample (
-   -- * Functions
-   glTexImage2DMultisample,
-   glTexImage3DMultisample,
-   glGetMultisamplefv,
-   glSampleMaski,
-   -- * Tokens
-   gl_SAMPLE_POSITION,
-   gl_SAMPLE_MASK,
-   gl_SAMPLE_MASK_VALUE,
-   gl_TEXTURE_2D_MULTISAMPLE,
-   gl_PROXY_TEXTURE_2D_MULTISAMPLE,
-   gl_TEXTURE_2D_MULTISAMPLE_ARRAY,
-   gl_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY,
-   gl_MAX_SAMPLE_MASK_WORDS,
-   gl_MAX_COLOR_TEXTURE_SAMPLES,
-   gl_MAX_DEPTH_TEXTURE_SAMPLES,
-   gl_MAX_INTEGER_SAMPLES,
-   gl_TEXTURE_BINDING_2D_MULTISAMPLE,
-   gl_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY,
-   gl_TEXTURE_SAMPLES,
-   gl_TEXTURE_FIXED_SAMPLE_LOCATIONS,
-   gl_SAMPLER_2D_MULTISAMPLE,
-   gl_INT_SAMPLER_2D_MULTISAMPLE,
-   gl_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE,
-   gl_SAMPLER_2D_MULTISAMPLE_ARRAY,
-   gl_INT_SAMPLER_2D_MULTISAMPLE_ARRAY,
-   gl_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY
-) where
-
-import Foreign.Ptr
-import Graphics.Rendering.OpenGL.Raw.Core31.Types
-import Graphics.Rendering.OpenGL.Raw.Extensions
-
-#include "HsOpenGLRaw.h"
-
-extensionNameString :: String
-extensionNameString = "GL_ARB_texture_multisample"
-
-EXTENSION_ENTRY(glTexImage2DMultisample,GLenum -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLboolean -> IO ())
-EXTENSION_ENTRY(glTexImage3DMultisample,GLenum -> GLsizei -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLboolean -> IO ())
-EXTENSION_ENTRY(glGetMultisamplefv,GLenum -> GLuint -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glSampleMaski,GLuint -> GLbitfield -> IO ())
-
-
-gl_SAMPLE_POSITION :: GLenum
-gl_SAMPLE_POSITION = 0x8E50
-
-gl_SAMPLE_MASK :: GLenum
-gl_SAMPLE_MASK = 0x8E51
-
-gl_SAMPLE_MASK_VALUE :: GLenum
-gl_SAMPLE_MASK_VALUE = 0x8E52
-
-gl_TEXTURE_2D_MULTISAMPLE :: GLenum
-gl_TEXTURE_2D_MULTISAMPLE = 0x9100
-
-gl_PROXY_TEXTURE_2D_MULTISAMPLE :: GLenum
-gl_PROXY_TEXTURE_2D_MULTISAMPLE = 0x9101
-
-gl_TEXTURE_2D_MULTISAMPLE_ARRAY :: GLenum
-gl_TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9102
-
-gl_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY :: GLenum
-gl_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9103
-
-gl_MAX_SAMPLE_MASK_WORDS :: GLenum
-gl_MAX_SAMPLE_MASK_WORDS = 0x8E59
-
-gl_MAX_COLOR_TEXTURE_SAMPLES :: GLenum
-gl_MAX_COLOR_TEXTURE_SAMPLES = 0x910E
-
-gl_MAX_DEPTH_TEXTURE_SAMPLES :: GLenum
-gl_MAX_DEPTH_TEXTURE_SAMPLES = 0x910F
-
-gl_MAX_INTEGER_SAMPLES :: GLenum
-gl_MAX_INTEGER_SAMPLES = 0x9110
-
-gl_TEXTURE_BINDING_2D_MULTISAMPLE :: GLenum
-gl_TEXTURE_BINDING_2D_MULTISAMPLE = 0x9104
-
-gl_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY :: GLenum
-gl_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY = 0x9105
-
-gl_TEXTURE_SAMPLES :: GLenum
-gl_TEXTURE_SAMPLES = 0x9106
-
-gl_TEXTURE_FIXED_SAMPLE_LOCATIONS :: GLenum
-gl_TEXTURE_FIXED_SAMPLE_LOCATIONS = 0x9107
-
-gl_SAMPLER_2D_MULTISAMPLE :: GLenum
-gl_SAMPLER_2D_MULTISAMPLE = 0x9108
-
-gl_INT_SAMPLER_2D_MULTISAMPLE :: GLenum
-gl_INT_SAMPLER_2D_MULTISAMPLE = 0x9109
-
-gl_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE :: GLenum
-gl_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE = 0x910A
-
-gl_SAMPLER_2D_MULTISAMPLE_ARRAY :: GLenum
-gl_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910B
-
-gl_INT_SAMPLER_2D_MULTISAMPLE_ARRAY :: GLenum
-gl_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910C
-
-gl_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY :: GLenum
-gl_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910D
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureRG.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureRG.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureRG.hs
+++ /dev/null
@@ -1,50 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.TextureRG
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All tokens from the ARB_texture_rg extension, see
--- <http://www.opengl.org/registry/specs/ARB/texture_rg.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.TextureRG (
-   -- * Tokens
-   gl_R8,
-   gl_R16,
-   gl_RG8,
-   gl_RG16,
-   gl_R16F,
-   gl_R32F,
-   gl_RG16F,
-   gl_RG32F,
-   gl_R8I,
-   gl_R8UI,
-   gl_R16I,
-   gl_R16UI,
-   gl_R32I,
-   gl_R32UI,
-   gl_RG8I,
-   gl_RG8UI,
-   gl_RG16I,
-   gl_RG16UI,
-   gl_RG32I,
-   gl_RG32UI,
-   gl_RED,
-   gl_RG,
-   gl_COMPRESSED_RED,
-   gl_COMPRESSED_RG,
-   gl_RG,
-   gl_RG_INTEGER,
-   gl_RG,
-   gl_RED,
-   gl_RG,
-   gl_RG_INTEGER
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureRectangle.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureRectangle.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/TextureRectangle.hs
+++ /dev/null
@@ -1,44 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.TextureRectangle
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All tokens from the ARB_texture_rectangle extension, see
--- <http://www.opengl.org/registry/specs/ARB/texture_rectangle.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.TextureRectangle (
-   -- * Tokens
-   gl_TEXTURE_RECTANGLE,
-   gl_TEXTURE_BINDING_RECTANGLE,
-   gl_PROXY_TEXTURE_RECTANGLE,
-   gl_MAX_RECTANGLE_TEXTURE_SIZE,
-   gl_SAMPLER_2D_RECT,
-   gl_SAMPLER_2D_RECT_SHADOW
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core31.Types
-
-gl_TEXTURE_RECTANGLE :: GLenum
-gl_TEXTURE_RECTANGLE = 0x84F5
-
-gl_TEXTURE_BINDING_RECTANGLE :: GLenum
-gl_TEXTURE_BINDING_RECTANGLE = 0x84F6
-
-gl_PROXY_TEXTURE_RECTANGLE :: GLenum
-gl_PROXY_TEXTURE_RECTANGLE = 0x84F7
-
-gl_MAX_RECTANGLE_TEXTURE_SIZE :: GLenum
-gl_MAX_RECTANGLE_TEXTURE_SIZE = 0x84F8
-
-gl_SAMPLER_2D_RECT :: GLenum
-gl_SAMPLER_2D_RECT = 0x8B63
-
-gl_SAMPLER_2D_RECT_SHADOW :: GLenum
-gl_SAMPLER_2D_RECT_SHADOW = 0x8B64
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/TransposeMatrix.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/TransposeMatrix.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/TransposeMatrix.hs
+++ /dev/null
@@ -1,29 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.TransposeMatrix
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the ARB_transpose_matrix extension, see
--- <http://www.opengl.org/registry/specs/ARB/transpose_matrix.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.TransposeMatrix (
-   -- * Functions
-   glLoadTransposeMatrixf,
-   glLoadTransposeMatrixd,
-   glMultTransposeMatrixf,
-   glMultTransposeMatrixd,
-   -- * Tokens
-   gl_TRANSPOSE_MODELVIEW_MATRIX,
-   gl_TRANSPOSE_PROJECTION_MATRIX,
-   gl_TRANSPOSE_TEXTURE_MATRIX,
-   gl_TRANSPOSE_COLOR_MATRIX
-) where
-
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/UniformBufferObject.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/UniformBufferObject.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/UniformBufferObject.hs
+++ /dev/null
@@ -1,182 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.UniformBufferObject
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the ARB_uniform_buffer_object extension, see
--- <http://www.opengl.org/registry/specs/ARB/uniform_buffer_object.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.UniformBufferObject (
-   -- * Functions
-   glGetUniformIndices,
-   glGetActiveUniformsiv,
-   glGetActiveUniformName,
-   glGetUniformBlockIndex,
-   glGetActiveUniformBlockiv,
-   glGetActiveUniformBlockName,
-   glBindBufferRange,
-   glBindBufferBase,
-   glGetIntegeri_v,
-   glUniformBlockBinding,
-   -- * Tokens
-   gl_UNIFORM_BUFFER,
-   gl_UNIFORM_BUFFER_BINDING,
-   gl_UNIFORM_BUFFER_START,
-   gl_UNIFORM_BUFFER_SIZE,
-   gl_MAX_VERTEX_UNIFORM_BLOCKS,
-   gl_MAX_GEOMETRY_UNIFORM_BLOCKS,
-   gl_MAX_FRAGMENT_UNIFORM_BLOCKS,
-   gl_MAX_COMBINED_UNIFORM_BLOCKS,
-   gl_MAX_UNIFORM_BUFFER_BINDINGS,
-   gl_MAX_UNIFORM_BLOCK_SIZE,
-   gl_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS,
-   gl_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS,
-   gl_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS,
-   gl_UNIFORM_BUFFER_OFFSET_ALIGNMENT,
-   gl_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH,
-   gl_ACTIVE_UNIFORM_BLOCKS,
-   gl_UNIFORM_TYPE,
-   gl_UNIFORM_SIZE,
-   gl_UNIFORM_NAME_LENGTH,
-   gl_UNIFORM_BLOCK_INDEX,
-   gl_UNIFORM_OFFSET,
-   gl_UNIFORM_ARRAY_STRIDE,
-   gl_UNIFORM_MATRIX_STRIDE,
-   gl_UNIFORM_IS_ROW_MAJOR,
-   gl_UNIFORM_BLOCK_BINDING,
-   gl_UNIFORM_BLOCK_DATA_SIZE,
-   gl_UNIFORM_BLOCK_NAME_LENGTH,
-   gl_UNIFORM_BLOCK_ACTIVE_UNIFORMS,
-   gl_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES,
-   gl_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER,
-   gl_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER,
-   gl_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER,
-   gl_INVALID_INDEX
-) where
-
-import Foreign.Ptr
-import Graphics.Rendering.OpenGL.Raw.Core31.Types
-import Graphics.Rendering.OpenGL.Raw.Extensions
-
-#include "HsOpenGLRaw.h"
-
-extensionNameString :: String
-extensionNameString = "GL_ARB_uniform_buffer_object"
-
-EXTENSION_ENTRY(glGetUniformIndices,GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glGetActiveUniformsiv,GLuint -> GLsizei -> Ptr GLuint -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glGetActiveUniformName,GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
-EXTENSION_ENTRY(glGetUniformBlockIndex,GLuint -> Ptr GLchar -> IO GLuint)
-EXTENSION_ENTRY(glGetActiveUniformBlockiv,GLuint -> GLuint -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glGetActiveUniformBlockName,GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
-EXTENSION_ENTRY(glBindBufferRange,GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> IO ())
-EXTENSION_ENTRY(glBindBufferBase,GLenum -> GLuint -> GLuint -> IO ())
-EXTENSION_ENTRY(glGetIntegeri_v,GLenum -> GLuint -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glUniformBlockBinding,GLuint -> GLuint -> GLuint -> IO ())
-
-gl_UNIFORM_BUFFER :: GLenum
-gl_UNIFORM_BUFFER = 0x8A11
-
-gl_UNIFORM_BUFFER_BINDING :: GLenum
-gl_UNIFORM_BUFFER_BINDING = 0x8A28
-
-gl_UNIFORM_BUFFER_START :: GLenum
-gl_UNIFORM_BUFFER_START = 0x8A29
-
-gl_UNIFORM_BUFFER_SIZE :: GLenum
-gl_UNIFORM_BUFFER_SIZE = 0x8A2A
-
-gl_MAX_VERTEX_UNIFORM_BLOCKS :: GLenum
-gl_MAX_VERTEX_UNIFORM_BLOCKS = 0x8A2B
-
-gl_MAX_GEOMETRY_UNIFORM_BLOCKS :: GLenum
-gl_MAX_GEOMETRY_UNIFORM_BLOCKS = 0x8A2C
-
-gl_MAX_FRAGMENT_UNIFORM_BLOCKS :: GLenum
-gl_MAX_FRAGMENT_UNIFORM_BLOCKS = 0x8A2D
-
-gl_MAX_COMBINED_UNIFORM_BLOCKS :: GLenum
-gl_MAX_COMBINED_UNIFORM_BLOCKS = 0x8A2E
-
-gl_MAX_UNIFORM_BUFFER_BINDINGS :: GLenum
-gl_MAX_UNIFORM_BUFFER_BINDINGS = 0x8A2F
-
-gl_MAX_UNIFORM_BLOCK_SIZE :: GLenum
-gl_MAX_UNIFORM_BLOCK_SIZE = 0x8A30
-
-gl_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS :: GLenum
-gl_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = 0x8A31
-
-gl_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS :: GLenum
-gl_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS = 0x8A32
-
-gl_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS :: GLenum
-gl_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = 0x8A33
-
-gl_UNIFORM_BUFFER_OFFSET_ALIGNMENT :: GLenum
-gl_UNIFORM_BUFFER_OFFSET_ALIGNMENT = 0x8A34
-
-gl_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH :: GLenum
-gl_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH = 0x8A35
-
-gl_ACTIVE_UNIFORM_BLOCKS :: GLenum
-gl_ACTIVE_UNIFORM_BLOCKS = 0x8A36
-
-gl_UNIFORM_TYPE :: GLenum
-gl_UNIFORM_TYPE = 0x8A37
-
-gl_UNIFORM_SIZE :: GLenum
-gl_UNIFORM_SIZE = 0x8A38
-
-gl_UNIFORM_NAME_LENGTH :: GLenum
-gl_UNIFORM_NAME_LENGTH = 0x8A39
-
-gl_UNIFORM_BLOCK_INDEX :: GLenum
-gl_UNIFORM_BLOCK_INDEX = 0x8A3A
-
-gl_UNIFORM_OFFSET :: GLenum
-gl_UNIFORM_OFFSET = 0x8A3B
-
-gl_UNIFORM_ARRAY_STRIDE :: GLenum
-gl_UNIFORM_ARRAY_STRIDE = 0x8A3C
-
-gl_UNIFORM_MATRIX_STRIDE :: GLenum
-gl_UNIFORM_MATRIX_STRIDE = 0x8A3D
-
-gl_UNIFORM_IS_ROW_MAJOR :: GLenum
-gl_UNIFORM_IS_ROW_MAJOR = 0x8A3E
-
-gl_UNIFORM_BLOCK_BINDING :: GLenum
-gl_UNIFORM_BLOCK_BINDING = 0x8A3F
-
-gl_UNIFORM_BLOCK_DATA_SIZE :: GLenum
-gl_UNIFORM_BLOCK_DATA_SIZE = 0x8A40
-
-gl_UNIFORM_BLOCK_NAME_LENGTH :: GLenum
-gl_UNIFORM_BLOCK_NAME_LENGTH = 0x8A41
-
-gl_UNIFORM_BLOCK_ACTIVE_UNIFORMS :: GLenum
-gl_UNIFORM_BLOCK_ACTIVE_UNIFORMS = 0x8A42
-
-gl_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES :: GLenum
-gl_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43
-
-gl_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER :: GLenum
-gl_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44
-
-gl_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER :: GLenum
-gl_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER = 0x8A45
-
-gl_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER :: GLenum
-gl_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46
-
-gl_INVALID_INDEX :: GLenum
-gl_INVALID_INDEX = 0xFFFFFFFF
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexArrayObject.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexArrayObject.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexArrayObject.hs
+++ /dev/null
@@ -1,26 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.VertexArrayObject
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the ARB_vertex_array_object extension, see
--- <http://www.opengl.org/registry/specs/ARB/vertex_array_object.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.VertexArrayObject (
-   -- * Functions
-   glBindVertexArray,
-   glDeleteVertexArrays,
-   glGenVertexArrays,
-   glIsVertexArray,
-   -- * Tokens
-   gl_VERTEX_ARRAY_BINDING
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexBlend.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexBlend.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexBlend.hs
+++ /dev/null
@@ -1,218 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.VertexBlend
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the ARB_vertex_blend extension, see
--- <http://www.opengl.org/registry/specs/ARB/vertex_blend.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.VertexBlend (
-   -- * Functions
-   glWeightbv,
-   glWeightsv,
-   glWeightiv,
-   glWeightfv,
-   glWeightdv,
-   glWeightubv,
-   glWeightusv,
-   glWeightuiv,
-   glWeightPointer,
-   glVertexBlend,
-   -- * Tokens
-   gl_MAX_VERTEX_UNITS,
-   gl_ACTIVE_VERTEX_UNITS,
-   gl_WEIGHT_SUM_UNITY,
-   gl_VERTEX_BLEND,
-   gl_MODELVIEW0,
-   gl_MODELVIEW1,
-   gl_MODELVIEW2,
-   gl_MODELVIEW3,
-   gl_MODELVIEW4,
-   gl_MODELVIEW5,
-   gl_MODELVIEW6,
-   gl_MODELVIEW7,
-   gl_MODELVIEW8,
-   gl_MODELVIEW9,
-   gl_MODELVIEW10,
-   gl_MODELVIEW11,
-   gl_MODELVIEW12,
-   gl_MODELVIEW13,
-   gl_MODELVIEW14,
-   gl_MODELVIEW15,
-   gl_MODELVIEW16,
-   gl_MODELVIEW17,
-   gl_MODELVIEW18,
-   gl_MODELVIEW19,
-   gl_MODELVIEW20,
-   gl_MODELVIEW21,
-   gl_MODELVIEW22,
-   gl_MODELVIEW23,
-   gl_MODELVIEW24,
-   gl_MODELVIEW25,
-   gl_MODELVIEW26,
-   gl_MODELVIEW27,
-   gl_MODELVIEW28,
-   gl_MODELVIEW29,
-   gl_MODELVIEW30,
-   gl_MODELVIEW31,
-   gl_CURRENT_WEIGHT,
-   gl_WEIGHT_ARRAY_TYPE,
-   gl_WEIGHT_ARRAY_STRIDE,
-   gl_WEIGHT_ARRAY_SIZE,
-   gl_WEIGHT_ARRAY_POINTER,
-   gl_WEIGHT_ARRAY
-) where
-
-import Foreign.Ptr
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Graphics.Rendering.OpenGL.Raw.Extensions
-
-#include "HsOpenGLRaw.h"
-
-extensionNameString :: String
-extensionNameString = "GL_ARB_vertex_blend"
-
-EXTENSION_ENTRY(glWeightbv,GLint -> Ptr GLbyte -> IO ())
-EXTENSION_ENTRY(glWeightsv,GLint -> Ptr GLshort -> IO ())
-EXTENSION_ENTRY(glWeightiv,GLint -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glWeightfv,GLint -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glWeightdv,GLint -> Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glWeightubv,GLint -> Ptr GLubyte -> IO ())
-EXTENSION_ENTRY(glWeightusv,GLint -> Ptr GLushort -> IO ())
-EXTENSION_ENTRY(glWeightuiv,GLint -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glWeightPointer,GLint -> GLenum -> GLsizei -> Ptr a -> IO ())
-EXTENSION_ENTRY(glVertexBlend,GLint -> IO ())
-
-gl_MAX_VERTEX_UNITS :: GLenum
-gl_MAX_VERTEX_UNITS = 0x86A4
-
-gl_ACTIVE_VERTEX_UNITS :: GLenum
-gl_ACTIVE_VERTEX_UNITS = 0x86A5
-
-gl_WEIGHT_SUM_UNITY :: GLenum
-gl_WEIGHT_SUM_UNITY = 0x86A6
-
-gl_VERTEX_BLEND :: GLenum
-gl_VERTEX_BLEND = 0x86A7
-
-gl_MODELVIEW0 :: GLenum
-gl_MODELVIEW0 = 0x1700
-
-gl_MODELVIEW1 :: GLenum
-gl_MODELVIEW1 = 0x850a
-
-gl_MODELVIEW2 :: GLenum
-gl_MODELVIEW2 = 0x8722
-
-gl_MODELVIEW3 :: GLenum
-gl_MODELVIEW3 = 0x8723
-
-gl_MODELVIEW4 :: GLenum
-gl_MODELVIEW4 = 0x8724
-
-gl_MODELVIEW5 :: GLenum
-gl_MODELVIEW5 = 0x8725
-
-gl_MODELVIEW6 :: GLenum
-gl_MODELVIEW6 = 0x8726
-
-gl_MODELVIEW7 :: GLenum
-gl_MODELVIEW7 = 0x8727
-
-gl_MODELVIEW8 :: GLenum
-gl_MODELVIEW8 = 0x8728
-
-gl_MODELVIEW9 :: GLenum
-gl_MODELVIEW9 = 0x8729
-
-gl_MODELVIEW10 :: GLenum
-gl_MODELVIEW10 = 0x872A
-
-gl_MODELVIEW11 :: GLenum
-gl_MODELVIEW11 = 0x872B
-
-gl_MODELVIEW12 :: GLenum
-gl_MODELVIEW12 = 0x872C
-
-gl_MODELVIEW13 :: GLenum
-gl_MODELVIEW13 = 0x872D
-
-gl_MODELVIEW14 :: GLenum
-gl_MODELVIEW14 = 0x872E
-
-gl_MODELVIEW15 :: GLenum
-gl_MODELVIEW15 = 0x872F
-
-gl_MODELVIEW16 :: GLenum
-gl_MODELVIEW16 = 0x8730
-
-gl_MODELVIEW17 :: GLenum
-gl_MODELVIEW17 = 0x8731
-
-gl_MODELVIEW18 :: GLenum
-gl_MODELVIEW18 = 0x8732
-
-gl_MODELVIEW19 :: GLenum
-gl_MODELVIEW19 = 0x8733
-
-gl_MODELVIEW20 :: GLenum
-gl_MODELVIEW20 = 0x8734
-
-gl_MODELVIEW21 :: GLenum
-gl_MODELVIEW21 = 0x8735
-
-gl_MODELVIEW22 :: GLenum
-gl_MODELVIEW22 = 0x8736
-
-gl_MODELVIEW23 :: GLenum
-gl_MODELVIEW23 = 0x8737
-
-gl_MODELVIEW24 :: GLenum
-gl_MODELVIEW24 = 0x8738
-
-gl_MODELVIEW25 :: GLenum
-gl_MODELVIEW25 = 0x8739
-
-gl_MODELVIEW26 :: GLenum
-gl_MODELVIEW26 = 0x873A
-
-gl_MODELVIEW27 :: GLenum
-gl_MODELVIEW27 = 0x873B
-
-gl_MODELVIEW28 :: GLenum
-gl_MODELVIEW28 = 0x873C
-
-gl_MODELVIEW29 :: GLenum
-gl_MODELVIEW29 = 0x873D
-
-gl_MODELVIEW30 :: GLenum
-gl_MODELVIEW30 = 0x873E
-
-gl_MODELVIEW31 :: GLenum
-gl_MODELVIEW31 = 0x873F
-
-gl_CURRENT_WEIGHT :: GLenum
-gl_CURRENT_WEIGHT = 0x86A8
-
-gl_WEIGHT_ARRAY_TYPE :: GLenum
-gl_WEIGHT_ARRAY_TYPE = 0x86A9
-
-gl_WEIGHT_ARRAY_STRIDE :: GLenum
-gl_WEIGHT_ARRAY_STRIDE = 0x86AA
-
-gl_WEIGHT_ARRAY_SIZE :: GLenum
-gl_WEIGHT_ARRAY_SIZE = 0x86AB
-
-gl_WEIGHT_ARRAY_POINTER :: GLenum
-gl_WEIGHT_ARRAY_POINTER = 0x86AC
-
-gl_WEIGHT_ARRAY :: GLenum
-gl_WEIGHT_ARRAY = 0x86AD
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexBufferObject.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexBufferObject.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexBufferObject.hs
+++ /dev/null
@@ -1,64 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.VertexBufferObject
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the ARB_vertex_buffer_object extension, see
--- <http://www.opengl.org/registry/specs/ARB/vertex_buffer_object.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.VertexBufferObject (
-   -- * Functions
-   glBindBuffer,
-   glDeleteBuffers,
-   glGenBuffers,
-   glIsBuffer,
-   glBufferData,
-   glBufferSubData,
-   glGetBufferSubData,
-   glMapBuffer,
-   glUnmapBuffer,
-   glGetBufferParameteriv,
-   glGetBufferPointerv,
-   -- * Tokens
-   gl_ARRAY_BUFFER,
-   gl_ELEMENT_ARRAY_BUFFER,
-   gl_ARRAY_BUFFER_BINDING,
-   gl_ELEMENT_ARRAY_BUFFER_BINDING,
-   gl_VERTEX_ARRAY_BUFFER_BINDING,
-   gl_NORMAL_ARRAY_BUFFER_BINDING,
-   gl_COLOR_ARRAY_BUFFER_BINDING,
-   gl_INDEX_ARRAY_BUFFER_BINDING,
-   gl_TEXTURE_COORD_ARRAY_BUFFER_BINDING,
-   gl_EDGE_FLAG_ARRAY_BUFFER_BINDING,
-   gl_SECONDARY_COLOR_ARRAY_BUFFER_BINDING,
-   gl_FOG_COORDINATE_ARRAY_BUFFER_BINDING,
-   gl_WEIGHT_ARRAY_BUFFER_BINDING,
-   gl_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING,
-   gl_STREAM_DRAW,
-   gl_STREAM_READ,
-   gl_STREAM_COPY,
-   gl_STATIC_DRAW,
-   gl_STATIC_READ,
-   gl_STATIC_COPY,
-   gl_DYNAMIC_DRAW,
-   gl_DYNAMIC_READ,
-   gl_DYNAMIC_COPY,
-   gl_READ_ONLY,
-   gl_WRITE_ONLY,
-   gl_READ_WRITE,
-   gl_BUFFER_SIZE,
-   gl_BUFFER_USAGE,
-   gl_BUFFER_ACCESS,
-   gl_BUFFER_MAPPED,
-   gl_BUFFER_MAP_POINTER
-) where
-
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
-import Graphics.Rendering.OpenGL.Raw.Core32
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexProgram.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexProgram.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexProgram.hs
+++ /dev/null
@@ -1,393 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.VertexProgram
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the ARB_vertex_program extension, see
--- <http://www.opengl.org/registry/specs/ARB/vertex_program.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.VertexProgram (
-   -- * Functions
-   glVertexAttrib1s,
-   glVertexAttrib1f,
-   glVertexAttrib1d,
-   glVertexAttrib2s,
-   glVertexAttrib2f,
-   glVertexAttrib2d,
-   glVertexAttrib3s,
-   glVertexAttrib3f,
-   glVertexAttrib3d,
-   glVertexAttrib4s,
-   glVertexAttrib4f,
-   glVertexAttrib4d,
-   glVertexAttrib4Nub,
-   glVertexAttrib1sv,
-   glVertexAttrib1fv,
-   glVertexAttrib1dv,
-   glVertexAttrib2sv,
-   glVertexAttrib2fv,
-   glVertexAttrib2dv,
-   glVertexAttrib3sv,
-   glVertexAttrib3fv,
-   glVertexAttrib3dv,
-   glVertexAttrib4bv,
-   glVertexAttrib4sv,
-   glVertexAttrib4iv,
-   glVertexAttrib4ubv,
-   glVertexAttrib4usv,
-   glVertexAttrib4uiv,
-   glVertexAttrib4fv,
-   glVertexAttrib4dv,
-   glVertexAttrib4Nbv,
-   glVertexAttrib4Nsv,
-   glVertexAttrib4Niv,
-   glVertexAttrib4Nubv,
-   glVertexAttrib4Nusv,
-   glVertexAttrib4Nuiv,
-   glVertexAttribPointer,
-   glEnableVertexAttribArray,
-   glDisableVertexAttribArray,
-   glProgramString,
-   glBindProgram,
-   glDeletePrograms,
-   glGenPrograms,
-   glProgramEnvParameter4d,
-   glProgramEnvParameter4dv,
-   glProgramEnvParameter4f,
-   glProgramEnvParameter4fv,
-   glProgramLocalParameter4d,
-   glProgramLocalParameter4dv,
-   glProgramLocalParameter4f,
-   glProgramLocalParameter4fv,
-   glGetProgramEnvParameterdv,
-   glGetProgramEnvParameterfv,
-   glGetProgramLocalParameterdv,
-   glGetProgramLocalParameterfv,
-   glGetProgramiv,
-   glGetProgramString,
-   glGetVertexAttribdv,
-   glGetVertexAttribfv,
-   glGetVertexAttribiv,
-   glGetVertexAttribPointerv,
-   glIsProgram,
-   -- * Tokens
-   gl_VERTEX_PROGRAM,
-   gl_VERTEX_PROGRAM_POINT_SIZE,
-   gl_VERTEX_PROGRAM_TWO_SIDE,
-   gl_COLOR_SUM,
-   gl_PROGRAM_FORMAT_ASCII,
-   gl_VERTEX_ATTRIB_ARRAY_ENABLED,
-   gl_VERTEX_ATTRIB_ARRAY_SIZE,
-   gl_VERTEX_ATTRIB_ARRAY_STRIDE,
-   gl_VERTEX_ATTRIB_ARRAY_TYPE,
-   gl_VERTEX_ATTRIB_ARRAY_NORMALIZED,
-   gl_CURRENT_VERTEX_ATTRIB,
-   gl_VERTEX_ATTRIB_ARRAY_POINTER,
-   gl_PROGRAM_LENGTH,
-   gl_PROGRAM_FORMAT,
-   gl_PROGRAM_BINDING,
-   gl_PROGRAM_INSTRUCTIONS,
-   gl_MAX_PROGRAM_INSTRUCTIONS,
-   gl_PROGRAM_NATIVE_INSTRUCTIONS,
-   gl_MAX_PROGRAM_NATIVE_INSTRUCTIONS,
-   gl_PROGRAM_TEMPORARIES,
-   gl_MAX_PROGRAM_TEMPORARIES,
-   gl_PROGRAM_NATIVE_TEMPORARIES,
-   gl_MAX_PROGRAM_NATIVE_TEMPORARIES,
-   gl_PROGRAM_PARAMETERS,
-   gl_MAX_PROGRAM_PARAMETERS,
-   gl_PROGRAM_NATIVE_PARAMETERS,
-   gl_MAX_PROGRAM_NATIVE_PARAMETERS,
-   gl_PROGRAM_ATTRIBS,
-   gl_MAX_PROGRAM_ATTRIBS,
-   gl_PROGRAM_NATIVE_ATTRIBS,
-   gl_MAX_PROGRAM_NATIVE_ATTRIBS,
-   gl_PROGRAM_ADDRESS_REGISTERS,
-   gl_MAX_PROGRAM_ADDRESS_REGISTERS,
-   gl_PROGRAM_NATIVE_ADDRESS_REGISTERS,
-   gl_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS,
-   gl_MAX_PROGRAM_LOCAL_PARAMETERS,
-   gl_MAX_PROGRAM_ENV_PARAMETERS,
-   gl_PROGRAM_UNDER_NATIVE_LIMITS,
-   gl_PROGRAM_STRING,
-   gl_PROGRAM_ERROR_POSITION,
-   gl_CURRENT_MATRIX,
-   gl_TRANSPOSE_CURRENT_MATRIX,
-   gl_CURRENT_MATRIX_STACK_DEPTH,
-   gl_MAX_VERTEX_ATTRIBS,
-   gl_MAX_PROGRAM_MATRICES,
-   gl_MAX_PROGRAM_MATRIX_STACK_DEPTH,
-   gl_PROGRAM_ERROR_STRING,
-   gl_MATRIX0,
-   gl_MATRIX1,
-   gl_MATRIX2,
-   gl_MATRIX3,
-   gl_MATRIX4,
-   gl_MATRIX5,
-   gl_MATRIX6,
-   gl_MATRIX7,
-   gl_MATRIX8,
-   gl_MATRIX9,
-   gl_MATRIX10,
-   gl_MATRIX11,
-   gl_MATRIX12,
-   gl_MATRIX13,
-   gl_MATRIX14,
-   gl_MATRIX15,
-   gl_MATRIX16,
-   gl_MATRIX17,
-   gl_MATRIX18,
-   gl_MATRIX19,
-   gl_MATRIX20,
-   gl_MATRIX21,
-   gl_MATRIX22,
-   gl_MATRIX23,
-   gl_MATRIX24,
-   gl_MATRIX25,
-   gl_MATRIX26,
-   gl_MATRIX27,
-   gl_MATRIX28,
-   gl_MATRIX29,
-   gl_MATRIX30,
-   gl_MATRIX31
-) where
-
-import Foreign.Ptr
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Graphics.Rendering.OpenGL.Raw.Extensions
-
-#include "HsOpenGLRaw.h"
-
-extensionNameString :: String
-extensionNameString = "GL_ARB_vertex_program"
-
-EXTENSION_ENTRY(glProgramString,GLenum -> GLenum -> GLsizei -> Ptr a -> IO ())
-EXTENSION_ENTRY(glBindProgram,GLenum -> GLuint -> IO ())
-EXTENSION_ENTRY(glDeletePrograms,GLsizei -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glGenPrograms,GLsizei -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glProgramEnvParameter4d,GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble  -> IO ())
-EXTENSION_ENTRY(glProgramEnvParameter4dv,GLenum -> GLuint -> Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glProgramEnvParameter4f,GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat  -> IO ())
-EXTENSION_ENTRY(glProgramEnvParameter4fv,GLenum -> GLuint -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glProgramLocalParameter4d,GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble  -> IO ())
-EXTENSION_ENTRY(glProgramLocalParameter4dv,GLenum -> GLuint -> Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glProgramLocalParameter4f,GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat  -> IO ())
-EXTENSION_ENTRY(glProgramLocalParameter4fv,GLenum -> GLuint -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glGetProgramEnvParameterdv,GLenum -> GLuint -> Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glGetProgramEnvParameterfv,GLenum -> GLuint -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glGetProgramLocalParameterdv,GLenum -> GLuint -> Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glGetProgramLocalParameterfv,GLenum -> GLuint -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glGetProgramString,GLenum -> GLenum -> Ptr a -> IO ())
-
-gl_VERTEX_PROGRAM :: GLenum
-gl_VERTEX_PROGRAM = 0x8620
-
-gl_PROGRAM_FORMAT_ASCII :: GLenum
-gl_PROGRAM_FORMAT_ASCII = 0x8875
-
-gl_PROGRAM_LENGTH :: GLenum
-gl_PROGRAM_LENGTH = 0x8627
-
-gl_PROGRAM_FORMAT :: GLenum
-gl_PROGRAM_FORMAT = 0x8876
-
-gl_PROGRAM_BINDING :: GLenum
-gl_PROGRAM_BINDING = 0x8677
-
-gl_PROGRAM_INSTRUCTIONS :: GLenum
-gl_PROGRAM_INSTRUCTIONS = 0x88A0
-
-gl_MAX_PROGRAM_INSTRUCTIONS :: GLenum
-gl_MAX_PROGRAM_INSTRUCTIONS = 0x88A1
-
-gl_PROGRAM_NATIVE_INSTRUCTIONS :: GLenum
-gl_PROGRAM_NATIVE_INSTRUCTIONS = 0x88A2
-
-gl_MAX_PROGRAM_NATIVE_INSTRUCTIONS :: GLenum
-gl_MAX_PROGRAM_NATIVE_INSTRUCTIONS = 0x88A3
-
-gl_PROGRAM_TEMPORARIES :: GLenum
-gl_PROGRAM_TEMPORARIES = 0x88A4
-
-gl_MAX_PROGRAM_TEMPORARIES :: GLenum
-gl_MAX_PROGRAM_TEMPORARIES = 0x88A5
-
-gl_PROGRAM_NATIVE_TEMPORARIES :: GLenum
-gl_PROGRAM_NATIVE_TEMPORARIES = 0x88A6
-
-gl_MAX_PROGRAM_NATIVE_TEMPORARIES :: GLenum
-gl_MAX_PROGRAM_NATIVE_TEMPORARIES = 0x88A7
-
-gl_PROGRAM_PARAMETERS :: GLenum
-gl_PROGRAM_PARAMETERS = 0x88A8
-
-gl_MAX_PROGRAM_PARAMETERS :: GLenum
-gl_MAX_PROGRAM_PARAMETERS = 0x88A9
-
-gl_PROGRAM_NATIVE_PARAMETERS :: GLenum
-gl_PROGRAM_NATIVE_PARAMETERS = 0x88AA
-
-gl_MAX_PROGRAM_NATIVE_PARAMETERS :: GLenum
-gl_MAX_PROGRAM_NATIVE_PARAMETERS = 0x88AB
-
-gl_PROGRAM_ATTRIBS :: GLenum
-gl_PROGRAM_ATTRIBS = 0x88AC
-
-gl_MAX_PROGRAM_ATTRIBS :: GLenum
-gl_MAX_PROGRAM_ATTRIBS = 0x88AD
-
-gl_PROGRAM_NATIVE_ATTRIBS :: GLenum
-gl_PROGRAM_NATIVE_ATTRIBS = 0x88AE
-
-gl_MAX_PROGRAM_NATIVE_ATTRIBS :: GLenum
-gl_MAX_PROGRAM_NATIVE_ATTRIBS = 0x88AF
-
-gl_PROGRAM_ADDRESS_REGISTERS :: GLenum
-gl_PROGRAM_ADDRESS_REGISTERS = 0x88B0
-
-gl_MAX_PROGRAM_ADDRESS_REGISTERS :: GLenum
-gl_MAX_PROGRAM_ADDRESS_REGISTERS = 0x88B1
-
-gl_PROGRAM_NATIVE_ADDRESS_REGISTERS :: GLenum
-gl_PROGRAM_NATIVE_ADDRESS_REGISTERS = 0x88B2
-
-gl_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS :: GLenum
-gl_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS = 0x88B3
-
-gl_MAX_PROGRAM_LOCAL_PARAMETERS :: GLenum
-gl_MAX_PROGRAM_LOCAL_PARAMETERS = 0x88B4
-
-gl_MAX_PROGRAM_ENV_PARAMETERS :: GLenum
-gl_MAX_PROGRAM_ENV_PARAMETERS = 0x88B5
-
-gl_PROGRAM_UNDER_NATIVE_LIMITS :: GLenum
-gl_PROGRAM_UNDER_NATIVE_LIMITS = 0x88B6
-
-gl_PROGRAM_STRING :: GLenum
-gl_PROGRAM_STRING = 0x8628
-
-gl_PROGRAM_ERROR_POSITION :: GLenum
-gl_PROGRAM_ERROR_POSITION = 0x864B
-
-gl_CURRENT_MATRIX :: GLenum
-gl_CURRENT_MATRIX = 0x8641
-
-gl_TRANSPOSE_CURRENT_MATRIX :: GLenum
-gl_TRANSPOSE_CURRENT_MATRIX = 0x88B7
-
-gl_CURRENT_MATRIX_STACK_DEPTH :: GLenum
-gl_CURRENT_MATRIX_STACK_DEPTH = 0x8640
-
-gl_MAX_PROGRAM_MATRICES :: GLenum
-gl_MAX_PROGRAM_MATRICES = 0x862F
-
-gl_MAX_PROGRAM_MATRIX_STACK_DEPTH :: GLenum
-gl_MAX_PROGRAM_MATRIX_STACK_DEPTH = 0x862E
-
-gl_PROGRAM_ERROR_STRING :: GLenum
-gl_PROGRAM_ERROR_STRING = 0x8874
-
-gl_MATRIX0 :: GLenum
-gl_MATRIX0 = 0x88C0
-
-gl_MATRIX1 :: GLenum
-gl_MATRIX1 = 0x88C1
-
-gl_MATRIX2 :: GLenum
-gl_MATRIX2 = 0x88C2
-
-gl_MATRIX3 :: GLenum
-gl_MATRIX3 = 0x88C3
-
-gl_MATRIX4 :: GLenum
-gl_MATRIX4 = 0x88C4
-
-gl_MATRIX5 :: GLenum
-gl_MATRIX5 = 0x88C5
-
-gl_MATRIX6 :: GLenum
-gl_MATRIX6 = 0x88C6
-
-gl_MATRIX7 :: GLenum
-gl_MATRIX7 = 0x88C7
-
-gl_MATRIX8 :: GLenum
-gl_MATRIX8 = 0x88C8
-
-gl_MATRIX9 :: GLenum
-gl_MATRIX9 = 0x88C9
-
-gl_MATRIX10 :: GLenum
-gl_MATRIX10 = 0x88CA
-
-gl_MATRIX11 :: GLenum
-gl_MATRIX11 = 0x88CB
-
-gl_MATRIX12 :: GLenum
-gl_MATRIX12 = 0x88CC
-
-gl_MATRIX13 :: GLenum
-gl_MATRIX13 = 0x88CD
-
-gl_MATRIX14 :: GLenum
-gl_MATRIX14 = 0x88CE
-
-gl_MATRIX15 :: GLenum
-gl_MATRIX15 = 0x88CF
-
-gl_MATRIX16 :: GLenum
-gl_MATRIX16 = 0x88D0
-
-gl_MATRIX17 :: GLenum
-gl_MATRIX17 = 0x88D1
-
-gl_MATRIX18 :: GLenum
-gl_MATRIX18 = 0x88D2
-
-gl_MATRIX19 :: GLenum
-gl_MATRIX19 = 0x88D3
-
-gl_MATRIX20 :: GLenum
-gl_MATRIX20 = 0x88D4
-
-gl_MATRIX21 :: GLenum
-gl_MATRIX21 = 0x88D5
-
-gl_MATRIX22 :: GLenum
-gl_MATRIX22 = 0x88D6
-
-gl_MATRIX23 :: GLenum
-gl_MATRIX23 = 0x88D7
-
-gl_MATRIX24 :: GLenum
-gl_MATRIX24 = 0x88D8
-
-gl_MATRIX25 :: GLenum
-gl_MATRIX25 = 0x88D9
-
-gl_MATRIX26 :: GLenum
-gl_MATRIX26 = 0x88DA
-
-gl_MATRIX27 :: GLenum
-gl_MATRIX27 = 0x88DB
-
-gl_MATRIX28 :: GLenum
-gl_MATRIX28 = 0x88DC
-
-gl_MATRIX29 :: GLenum
-gl_MATRIX29 = 0x88DD
-
-gl_MATRIX30 :: GLenum
-gl_MATRIX30 = 0x88DE
-
-gl_MATRIX31 :: GLenum
-gl_MATRIX31 = 0x88DF
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexShader.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexShader.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/VertexShader.hs
+++ /dev/null
@@ -1,101 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.VertexShader
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the ARB_vertex_shader extension, see
--- <http://www.opengl.org/registry/specs/ARB/vertex_shader.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.VertexShader (
-   -- * Functions
-   glVertexAttrib1f,
-   glVertexAttrib1s,
-   glVertexAttrib1d,
-   glVertexAttrib2f,
-   glVertexAttrib2s,
-   glVertexAttrib2d,
-   glVertexAttrib3f,
-   glVertexAttrib3s,
-   glVertexAttrib3d,
-   glVertexAttrib4f,
-   glVertexAttrib4s,
-   glVertexAttrib4d,
-   glVertexAttrib4Nub,
-   glVertexAttrib1fv,
-   glVertexAttrib1sv,
-   glVertexAttrib1dv,
-   glVertexAttrib2fv,
-   glVertexAttrib2sv,
-   glVertexAttrib2dv,
-   glVertexAttrib3fv,
-   glVertexAttrib3sv,
-   glVertexAttrib3dv,
-   glVertexAttrib4fv,
-   glVertexAttrib4sv,
-   glVertexAttrib4dv,
-   glVertexAttrib4iv,
-   glVertexAttrib4bv,
-   glVertexAttrib4ubv,
-   glVertexAttrib4usv,
-   glVertexAttrib4uiv,
-   glVertexAttrib4Nbv,
-   glVertexAttrib4Nsv,
-   glVertexAttrib4Niv,
-   glVertexAttrib4Nubv,
-   glVertexAttrib4Nusv,
-   glVertexAttrib4Nuiv,
-   glVertexAttribPointer,
-   glEnableVertexAttribArray,
-   glDisableVertexAttribArray,
-   glBindAttribLocation,
-   glGetActiveAttrib,
-   glGetAttribLocation,
-   glGetVertexAttribdv,
-   glGetVertexAttribfv,
-   glGetVertexAttribiv,
-   glGetVertexAttribPointerv,
-   -- * Tokens
-   gl_VERTEX_SHADER,
-   gl_MAX_VERTEX_UNIFORM_COMPONENTS,
-   gl_MAX_VARYING_FLOATS,
-   gl_MAX_VERTEX_ATTRIBS,
-   gl_MAX_TEXTURE_IMAGE_UNITS,
-   gl_MAX_VERTEX_TEXTURE_IMAGE_UNITS,
-   gl_MAX_COMBINED_TEXTURE_IMAGE_UNITS,
-   gl_MAX_TEXTURE_COORDS,
-   gl_VERTEX_PROGRAM_POINT_SIZE,
-   gl_VERTEX_PROGRAM_TWO_SIDE,
-   gl_OBJECT_ACTIVE_ATTRIBUTES,
-   gl_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH,
-   gl_VERTEX_ATTRIB_ARRAY_ENABLED,
-   gl_VERTEX_ATTRIB_ARRAY_SIZE,
-   gl_VERTEX_ATTRIB_ARRAY_STRIDE,
-   gl_VERTEX_ATTRIB_ARRAY_TYPE,
-   gl_VERTEX_ATTRIB_ARRAY_NORMALIZED,
-   gl_CURRENT_VERTEX_ATTRIB,
-   gl_VERTEX_ATTRIB_ARRAY_POINTER,
-   gl_FLOAT,
-   gl_FLOAT_VEC2,
-   gl_FLOAT_VEC3,
-   gl_FLOAT_VEC4,
-   gl_FLOAT_MAT2,
-   gl_FLOAT_MAT3,
-   gl_FLOAT_MAT4
-) where
-
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_OBJECT_ACTIVE_ATTRIBUTES :: GLenum
-gl_OBJECT_ACTIVE_ATTRIBUTES = 0x8B89
-
-gl_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH :: GLenum
-gl_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH = 0x8B8A
-
diff --git a/src/Graphics/Rendering/OpenGL/Raw/ARB/WindowPos.hs b/src/Graphics/Rendering/OpenGL/Raw/ARB/WindowPos.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/ARB/WindowPos.hs
+++ /dev/null
@@ -1,36 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.ARB.WindowPos
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions from the ARB_shadow extension, see
--- <http://www.opengl.org/registry/specs/ARB/shadow.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.ARB.WindowPos (
-   -- * Functions
-   glWindowPos2d,
-   glWindowPos2f,
-   glWindowPos2i,
-   glWindowPos2s,
-   glWindowPos2dv,
-   glWindowPos2fv,
-   glWindowPos2iv,
-   glWindowPos2sv,
-   glWindowPos3d,
-   glWindowPos3f,
-   glWindowPos3i,
-   glWindowPos3s,
-   glWindowPos3dv,
-   glWindowPos3fv,
-   glWindowPos3iv,
-   glWindowPos3sv
-) where
-
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
diff --git a/src/Graphics/Rendering/OpenGL/Raw/Core31.hs b/src/Graphics/Rendering/OpenGL/Raw/Core31.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/Core31.hs
+++ /dev/null
@@ -1,42 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.Core31
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions, tokens and types from the OpenGL 3.1 core, see
--- <http://www.opengl.org/registry/>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.Core31 (
-   -- * Functions
-   module Graphics.Rendering.OpenGL.Raw.Core31.Functions,
-   -- * Tokens
-   module Graphics.Rendering.OpenGL.Raw.Core31.Tokens,
-   -- * Types
-   module Graphics.Rendering.OpenGL.Raw.Core31.Types,
-   -- * Extensions promoted to OpenGL 3.1 core
-   module Graphics.Rendering.OpenGL.Raw.ARB.DrawInstanced,
-   module Graphics.Rendering.OpenGL.Raw.ARB.CopyBuffer,
-   module Graphics.Rendering.OpenGL.Raw.ARB.TextureBufferObject,
-   module Graphics.Rendering.OpenGL.Raw.ARB.TextureRectangle,
-   module Graphics.Rendering.OpenGL.Raw.ARB.UniformBufferObject
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core31.Functions
-import Graphics.Rendering.OpenGL.Raw.Core31.Tokens
-import Graphics.Rendering.OpenGL.Raw.Core31.Types
-
-import Graphics.Rendering.OpenGL.Raw.ARB.DrawInstanced
-import Graphics.Rendering.OpenGL.Raw.ARB.CopyBuffer
-import Graphics.Rendering.OpenGL.Raw.ARB.TextureBufferObject
-import Graphics.Rendering.OpenGL.Raw.ARB.TextureRectangle
-import Graphics.Rendering.OpenGL.Raw.ARB.UniformBufferObject hiding (
-   gl_MAX_GEOMETRY_UNIFORM_BLOCKS,
-   gl_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS,
-   gl_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER )
diff --git a/src/Graphics/Rendering/OpenGL/Raw/Core31/Functions.hs b/src/Graphics/Rendering/OpenGL/Raw/Core31/Functions.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/Core31/Functions.hs
+++ /dev/null
@@ -1,597 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
--- #hide
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.Core31.Functions
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions from the OpenGL 3.1 core, see
--- <http://www.opengl.org/registry/>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.Core31.Functions (
-   glActiveTexture,
-   glAttachShader,
-   glBeginConditionalRender,
-   glBeginQuery,
-   glBeginTransformFeedback,
-   glBindAttribLocation,
-   glBindBuffer,
-   glBindFragDataLocation,
-   glBindFramebuffer,
-   glBindRenderbuffer,
-   glBindTexture,
-   glBindVertexArray,
-   glBlendColor,
-   glBlendEquation,
-   glBlendEquationSeparate,
-   glBlendFunc,
-   glBlendFuncSeparate,
-   glBlitFramebuffer,
-   glBufferData,
-   glBufferSubData,
-   glCheckFramebufferStatus,
-   glClampColor,
-   glClear,
-   glClearBufferfi,
-   glClearBufferfv,
-   glClearBufferiv,
-   glClearBufferuiv,
-   glClearColor,
-   glClearDepth,
-   glClearStencil,
-   glColorMask,
-   glColorMaski,
-   glCompileShader,
-   glCompressedTexImage1D,
-   glCompressedTexImage2D,
-   glCompressedTexImage3D,
-   glCompressedTexSubImage1D,
-   glCompressedTexSubImage2D,
-   glCompressedTexSubImage3D,
-   glCopyTexImage1D,
-   glCopyTexImage2D,
-   glCopyTexSubImage1D,
-   glCopyTexSubImage2D,
-   glCopyTexSubImage3D,
-   glCreateProgram,
-   glCreateShader,
-   glCullFace,
-   glDeleteBuffers,
-   glDeleteFramebuffers,
-   glDeleteProgram,
-   glDeleteQueries,
-   glDeleteRenderbuffers,
-   glDeleteShader,
-   glDeleteTextures,
-   glDeleteVertexArrays,
-   glDepthFunc,
-   glDepthMask,
-   glDepthRange,
-   glDetachShader,
-   glDisable,
-   glDisableVertexAttribArray,
-   glDisablei,
-   glDrawArrays,
-   glDrawBuffer,
-   glDrawBuffers,
-   glDrawElements,
-   glDrawRangeElements,
-   glEnable,
-   glEnableVertexAttribArray,
-   glEnablei,
-   glEndConditionalRender,
-   glEndQuery,
-   glEndTransformFeedback,
-   glFinish,
-   glFlush,
-   glFlushMappedBufferRange,
-   glFramebufferRenderbuffer,
-   glFramebufferTexture1D,
-   glFramebufferTexture2D,
-   glFramebufferTexture3D,
-   glFramebufferTextureLayer,
-   glFrontFace,
-   glGenBuffers,
-   glGenFramebuffers,
-   glGenQueries,
-   glGenRenderbuffers,
-   glGenTextures,
-   glGenVertexArrays,
-   glGenerateMipmap,
-   glGetActiveAttrib,
-   glGetActiveUniform,
-   glGetAttachedShaders,
-   glGetAttribLocation,
-   glGetBooleani_v,
-   glGetBooleanv,
-   glGetBufferParameteriv,
-   glGetBufferPointerv,
-   glGetBufferSubData,
-   glGetCompressedTexImage,
-   glGetDoublev,
-   glGetError,
-   glGetFloatv,
-   glGetFragDataLocation,
-   glGetFramebufferAttachmentParameteriv,
-   glGetIntegerv,
-   glGetPointerv,
-   glGetProgramInfoLog,
-   glGetProgramiv,
-   glGetQueryObjectiv,
-   glGetQueryObjectuiv,
-   glGetQueryiv,
-   glGetRenderbufferParameteriv,
-   glGetShaderInfoLog,
-   glGetShaderSource,
-   glGetShaderiv,
-   glGetString,
-   glGetStringi,
-   glGetTexImage,
-   glGetTexLevelParameterfv,
-   glGetTexLevelParameteriv,
-   glGetTexParameterIiv,
-   glGetTexParameterIuiv,
-   glGetTexParameterfv,
-   glGetTexParameteriv,
-   glGetTransformFeedbackVarying,
-   glGetUniformLocation,
-   glGetUniformfv,
-   glGetUniformiv,
-   glGetUniformuiv,
-   glGetVertexAttribIiv,
-   glGetVertexAttribIuiv,
-   glGetVertexAttribPointerv,
-   glGetVertexAttribdv,
-   glGetVertexAttribfv,
-   glGetVertexAttribiv,
-   glHint,
-   glIsBuffer,
-   glIsEnabled,
-   glIsEnabledi,
-   glIsFramebuffer,
-   glIsProgram,
-   glIsQuery,
-   glIsRenderbuffer,
-   glIsShader,
-   glIsTexture,
-   glIsVertexArray,
-   glLineWidth,
-   glLinkProgram,
-   glLogicOp,
-   glMapBuffer,
-   glMapBufferRange,
-   glMultiDrawArrays,
-   glMultiDrawElements,
-   glPixelStoref,
-   glPixelStorei,
-   glPointParameterf,
-   glPointParameterfv,
-   glPointParameteri,
-   glPointParameteriv,
-   glPointSize,
-   glPolygonMode,
-   glPolygonOffset,
-   glPrimitiveRestartIndex,
-   glReadBuffer,
-   glReadPixels,
-   glRenderbufferStorage,
-   glRenderbufferStorageMultisample,
-   glSampleCoverage,
-   glScissor,
-   glShaderSource,
-   glStencilFunc,
-   glStencilFuncSeparate,
-   glStencilMask,
-   glStencilMaskSeparate,
-   glStencilOp,
-   glStencilOpSeparate,
-   glTexImage1D,
-   glTexImage2D,
-   glTexImage3D,
-   glTexParameterIiv,
-   glTexParameterIuiv,
-   glTexParameterf,
-   glTexParameterfv,
-   glTexParameteri,
-   glTexParameteriv,
-   glTexSubImage1D,
-   glTexSubImage2D,
-   glTexSubImage3D,
-   glTransformFeedbackVaryings,
-   glUniform1f,
-   glUniform1fv,
-   glUniform1i,
-   glUniform1iv,
-   glUniform1ui,
-   glUniform1uiv,
-   glUniform2f,
-   glUniform2fv,
-   glUniform2i,
-   glUniform2iv,
-   glUniform2ui,
-   glUniform2uiv,
-   glUniform3f,
-   glUniform3fv,
-   glUniform3i,
-   glUniform3iv,
-   glUniform3ui,
-   glUniform3uiv,
-   glUniform4f,
-   glUniform4fv,
-   glUniform4i,
-   glUniform4iv,
-   glUniform4ui,
-   glUniform4uiv,
-   glUniformMatrix2fv,
-   glUniformMatrix2x3fv,
-   glUniformMatrix2x4fv,
-   glUniformMatrix3fv,
-   glUniformMatrix3x2fv,
-   glUniformMatrix3x4fv,
-   glUniformMatrix4fv,
-   glUniformMatrix4x2fv,
-   glUniformMatrix4x3fv,
-   glUnmapBuffer,
-   glUseProgram,
-   glValidateProgram,
-   glVertexAttrib1d,
-   glVertexAttrib1dv,
-   glVertexAttrib1f,
-   glVertexAttrib1fv,
-   glVertexAttrib1s,
-   glVertexAttrib1sv,
-   glVertexAttrib2d,
-   glVertexAttrib2dv,
-   glVertexAttrib2f,
-   glVertexAttrib2fv,
-   glVertexAttrib2s,
-   glVertexAttrib2sv,
-   glVertexAttrib3d,
-   glVertexAttrib3dv,
-   glVertexAttrib3f,
-   glVertexAttrib3fv,
-   glVertexAttrib3s,
-   glVertexAttrib3sv,
-   glVertexAttrib4Nbv,
-   glVertexAttrib4Niv,
-   glVertexAttrib4Nsv,
-   glVertexAttrib4Nub,
-   glVertexAttrib4Nubv,
-   glVertexAttrib4Nuiv,
-   glVertexAttrib4Nusv,
-   glVertexAttrib4bv,
-   glVertexAttrib4d,
-   glVertexAttrib4dv,
-   glVertexAttrib4f,
-   glVertexAttrib4fv,
-   glVertexAttrib4iv,
-   glVertexAttrib4s,
-   glVertexAttrib4sv,
-   glVertexAttrib4ubv,
-   glVertexAttrib4uiv,
-   glVertexAttrib4usv,
-   glVertexAttribI1i,
-   glVertexAttribI1iv,
-   glVertexAttribI1ui,
-   glVertexAttribI1uiv,
-   glVertexAttribI2i,
-   glVertexAttribI2iv,
-   glVertexAttribI2ui,
-   glVertexAttribI2uiv,
-   glVertexAttribI3i,
-   glVertexAttribI3iv,
-   glVertexAttribI3ui,
-   glVertexAttribI3uiv,
-   glVertexAttribI4bv,
-   glVertexAttribI4i,
-   glVertexAttribI4iv,
-   glVertexAttribI4sv,
-   glVertexAttribI4ubv,
-   glVertexAttribI4ui,
-   glVertexAttribI4uiv,
-   glVertexAttribI4usv,
-   glVertexAttribIPointer,
-   glVertexAttribPointer,
-   glViewport
-) where
-
-import Foreign.Ptr
-import Graphics.Rendering.OpenGL.Raw.Core31.Types
-import Graphics.Rendering.OpenGL.Raw.Extensions
-
-#include "HsOpenGLRaw.h"
-
-extensionNameString :: String
-extensionNameString = "OpenGL 3.1"
-
-EXTENSION_ENTRY(glActiveTexture,GLenum -> IO ())
-EXTENSION_ENTRY(glAttachShader,GLuint -> GLuint -> IO ())
-EXTENSION_ENTRY(glBeginConditionalRender,GLuint -> GLenum -> IO ())
-EXTENSION_ENTRY(glBeginQuery,GLenum -> GLuint -> IO ())
-EXTENSION_ENTRY(glBeginTransformFeedback,GLenum -> IO ())
-EXTENSION_ENTRY(glBindAttribLocation,GLuint -> GLuint -> Ptr GLchar -> IO ())
-EXTENSION_ENTRY(glBindBuffer,GLenum -> GLuint -> IO ())
-EXTENSION_ENTRY(glBindFragDataLocation,GLuint -> GLuint -> Ptr GLchar -> IO ())
-EXTENSION_ENTRY(glBindFramebuffer,GLenum -> GLuint -> IO ())
-EXTENSION_ENTRY(glBindRenderbuffer,GLenum -> GLuint -> IO ())
-EXTENSION_ENTRY(glBindTexture,GLenum -> GLuint -> IO ())
-EXTENSION_ENTRY(glBindVertexArray,GLuint -> IO ())
-EXTENSION_ENTRY(glBlendColor,GLclampf -> GLclampf -> GLclampf -> GLclampf -> IO ())
-EXTENSION_ENTRY(glBlendEquation,GLenum -> IO ())
-EXTENSION_ENTRY(glBlendEquationSeparate,GLenum -> GLenum -> IO ())
-EXTENSION_ENTRY(glBlendFunc,GLenum -> GLenum -> IO ())
-EXTENSION_ENTRY(glBlendFuncSeparate,GLenum -> GLenum -> GLenum -> GLenum -> IO ())
-EXTENSION_ENTRY(glBlitFramebuffer,GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> IO ())
-EXTENSION_ENTRY(glBufferData,GLenum -> GLsizeiptr -> Ptr a -> GLenum -> IO ())
-EXTENSION_ENTRY(glBufferSubData,GLenum -> GLintptr -> GLsizeiptr -> Ptr a -> IO ())
-EXTENSION_ENTRY(glCheckFramebufferStatus,GLenum -> IO GLenum)
-EXTENSION_ENTRY(glClampColor,GLenum -> GLenum -> IO ())
-EXTENSION_ENTRY(glClear,GLbitfield -> IO ())
-EXTENSION_ENTRY(glClearBufferfi,GLenum -> GLint -> GLfloat -> GLint -> IO ())
-EXTENSION_ENTRY(glClearBufferfv,GLenum -> GLint -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glClearBufferiv,GLenum -> GLint -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glClearBufferuiv,GLenum -> GLint -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glClearColor,GLclampf -> GLclampf -> GLclampf -> GLclampf -> IO ())
-EXTENSION_ENTRY(glClearDepth,GLclampd -> IO ())
-EXTENSION_ENTRY(glClearStencil,GLint -> IO ())
-EXTENSION_ENTRY(glColorMask,GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ())
-EXTENSION_ENTRY(glColorMaski,GLuint -> GLboolean -> GLboolean -> GLboolean -> GLboolean -> IO ())
-EXTENSION_ENTRY(glCompileShader,GLuint -> IO ())
-EXTENSION_ENTRY(glCompressedTexImage1D,GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr a -> IO ())
-EXTENSION_ENTRY(glCompressedTexImage2D,GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> IO ())
-EXTENSION_ENTRY(glCompressedTexImage3D,GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> IO ())
-EXTENSION_ENTRY(glCompressedTexSubImage1D,GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr a -> IO ())
-EXTENSION_ENTRY(glCompressedTexSubImage2D,GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> IO ())
-EXTENSION_ENTRY(glCompressedTexSubImage3D,GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> IO ())
-EXTENSION_ENTRY(glCopyTexImage1D,GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> IO ())
-EXTENSION_ENTRY(glCopyTexImage2D,GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> IO ())
-EXTENSION_ENTRY(glCopyTexSubImage1D,GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ())
-EXTENSION_ENTRY(glCopyTexSubImage2D,GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
-EXTENSION_ENTRY(glCopyTexSubImage3D,GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
-EXTENSION_ENTRY(glCreateProgram,IO GLuint)
-EXTENSION_ENTRY(glCreateShader,GLenum -> IO GLuint)
-EXTENSION_ENTRY(glCullFace,GLenum -> IO ())
-EXTENSION_ENTRY(glDeleteBuffers,GLsizei -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glDeleteFramebuffers,GLsizei -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glDeleteProgram,GLuint -> IO ())
-EXTENSION_ENTRY(glDeleteQueries,GLsizei -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glDeleteRenderbuffers,GLsizei -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glDeleteShader,GLuint -> IO ())
-EXTENSION_ENTRY(glDeleteTextures,GLsizei -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glDeleteVertexArrays,GLsizei -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glDepthFunc,GLenum -> IO ())
-EXTENSION_ENTRY(glDepthMask,GLboolean -> IO ())
-EXTENSION_ENTRY(glDepthRange,GLclampd -> GLclampd -> IO ())
-EXTENSION_ENTRY(glDetachShader,GLuint -> GLuint -> IO ())
-EXTENSION_ENTRY(glDisable,GLenum -> IO ())
-EXTENSION_ENTRY(glDisableVertexAttribArray,GLuint -> IO ())
-EXTENSION_ENTRY(glDisablei,GLenum -> GLuint -> IO ())
-EXTENSION_ENTRY(glDrawArrays,GLenum -> GLint -> GLsizei -> IO ())
-EXTENSION_ENTRY(glDrawBuffer,GLenum -> IO ())
-EXTENSION_ENTRY(glDrawBuffers,GLsizei -> Ptr GLenum -> IO ())
-EXTENSION_ENTRY(glDrawElements,GLenum -> GLsizei -> GLenum -> Ptr a -> IO ())
-EXTENSION_ENTRY(glDrawRangeElements,GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr a -> IO ())
-EXTENSION_ENTRY(glEnable,GLenum -> IO ())
-EXTENSION_ENTRY(glEnableVertexAttribArray,GLuint -> IO ())
-EXTENSION_ENTRY(glEnablei,GLenum -> GLuint -> IO ())
-EXTENSION_ENTRY(glEndConditionalRender,IO ())
-EXTENSION_ENTRY(glEndQuery,GLenum -> IO ())
-EXTENSION_ENTRY(glEndTransformFeedback,IO ())
-EXTENSION_ENTRY(glFinish,IO ())
-EXTENSION_ENTRY(glFlush,IO ())
-EXTENSION_ENTRY(glFlushMappedBufferRange,GLenum -> GLintptr -> GLsizeiptr -> IO ())
-EXTENSION_ENTRY(glFramebufferRenderbuffer,GLenum -> GLenum -> GLenum -> GLuint -> IO ())
-EXTENSION_ENTRY(glFramebufferTexture1D,GLenum -> GLenum -> GLenum -> GLuint -> GLint -> IO ())
-EXTENSION_ENTRY(glFramebufferTexture2D,GLenum -> GLenum -> GLenum -> GLuint -> GLint -> IO ())
-EXTENSION_ENTRY(glFramebufferTexture3D,GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ())
-EXTENSION_ENTRY(glFramebufferTextureLayer,GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ())
-EXTENSION_ENTRY(glFrontFace,GLenum -> IO ())
-EXTENSION_ENTRY(glGenBuffers,GLsizei -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glGenFramebuffers,GLsizei -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glGenQueries,GLsizei -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glGenRenderbuffers,GLsizei -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glGenTextures,GLsizei -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glGenVertexArrays,GLsizei -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glGenerateMipmap,GLenum -> IO ())
-EXTENSION_ENTRY(glGetActiveAttrib,GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> IO ())
-EXTENSION_ENTRY(glGetActiveUniform,GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> Ptr GLchar -> IO ())
-EXTENSION_ENTRY(glGetAttachedShaders,GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glGetAttribLocation,GLuint -> Ptr GLchar -> IO GLint)
-EXTENSION_ENTRY(glGetBooleani_v,GLenum -> GLuint -> Ptr GLboolean -> IO ())
-EXTENSION_ENTRY(glGetBooleanv,GLenum -> Ptr GLboolean -> IO ())
-EXTENSION_ENTRY(glGetBufferParameteriv,GLenum -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glGetBufferPointerv,GLenum -> GLenum -> Ptr (Ptr a) -> IO ())
-EXTENSION_ENTRY(glGetBufferSubData,GLenum -> GLintptr -> GLsizeiptr -> Ptr a -> IO ())
-EXTENSION_ENTRY(glGetCompressedTexImage,GLenum -> GLint -> Ptr a -> IO ())
-EXTENSION_ENTRY(glGetDoublev,GLenum -> Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glGetError,IO GLenum)
-EXTENSION_ENTRY(glGetFloatv,GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glGetFragDataLocation,GLuint -> Ptr GLchar -> IO GLint)
-EXTENSION_ENTRY(glGetFramebufferAttachmentParameteriv,GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glGetIntegerv,GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glGetPointerv,GLenum -> Ptr (Ptr a) -> IO ())
-EXTENSION_ENTRY(glGetProgramInfoLog,GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
-EXTENSION_ENTRY(glGetProgramiv,GLuint -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glGetQueryObjectiv,GLuint -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glGetQueryObjectuiv,GLuint -> GLenum -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glGetQueryiv,GLenum -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glGetRenderbufferParameteriv,GLenum -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glGetShaderInfoLog,GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
-EXTENSION_ENTRY(glGetShaderSource,GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
-EXTENSION_ENTRY(glGetShaderiv,GLuint -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glGetString,GLenum -> IO (Ptr GLubyte))
-EXTENSION_ENTRY(glGetStringi,GLenum -> GLuint -> IO (Ptr GLubyte))
-EXTENSION_ENTRY(glGetTexImage,GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> IO ())
-EXTENSION_ENTRY(glGetTexLevelParameterfv,GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glGetTexLevelParameteriv,GLenum -> GLint -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glGetTexParameterIiv,GLenum -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glGetTexParameterIuiv,GLenum -> GLenum -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glGetTexParameterfv,GLenum -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glGetTexParameteriv,GLenum -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glGetTransformFeedbackVarying,GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> IO ())
-EXTENSION_ENTRY(glGetUniformLocation,GLuint -> Ptr GLchar -> IO GLint)
-EXTENSION_ENTRY(glGetUniformfv,GLuint -> GLint -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glGetUniformiv,GLuint -> GLint -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glGetUniformuiv,GLuint -> GLint -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glGetVertexAttribIiv,GLuint -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glGetVertexAttribIuiv,GLuint -> GLenum -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glGetVertexAttribPointerv,GLuint -> GLenum -> Ptr (Ptr a) -> IO ())
-EXTENSION_ENTRY(glGetVertexAttribdv,GLuint -> GLenum -> Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glGetVertexAttribfv,GLuint -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glGetVertexAttribiv,GLuint -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glHint,GLenum -> GLenum -> IO ())
-EXTENSION_ENTRY(glIsBuffer,GLuint -> IO GLboolean)
-EXTENSION_ENTRY(glIsEnabled,GLenum -> IO GLboolean)
-EXTENSION_ENTRY(glIsEnabledi,GLenum -> GLuint -> IO GLboolean)
-EXTENSION_ENTRY(glIsFramebuffer,GLuint -> IO GLboolean)
-EXTENSION_ENTRY(glIsProgram,GLuint -> IO GLboolean)
-EXTENSION_ENTRY(glIsQuery,GLuint -> IO GLboolean)
-EXTENSION_ENTRY(glIsRenderbuffer,GLuint -> IO GLboolean)
-EXTENSION_ENTRY(glIsShader,GLuint -> IO GLboolean)
-EXTENSION_ENTRY(glIsTexture,GLuint -> IO GLboolean)
-EXTENSION_ENTRY(glIsVertexArray,GLuint -> IO GLboolean)
-EXTENSION_ENTRY(glLineWidth,GLfloat -> IO ())
-EXTENSION_ENTRY(glLinkProgram,GLuint -> IO ())
-EXTENSION_ENTRY(glLogicOp,GLenum -> IO ())
-EXTENSION_ENTRY(glMapBuffer,GLenum -> GLenum -> IO (Ptr a))
-EXTENSION_ENTRY(glMapBufferRange,GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> IO (Ptr a))
-EXTENSION_ENTRY(glMultiDrawArrays,GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> IO ())
-EXTENSION_ENTRY(glMultiDrawElements,GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr a) -> GLsizei -> IO ())
-EXTENSION_ENTRY(glPixelStoref,GLenum -> GLfloat -> IO ())
-EXTENSION_ENTRY(glPixelStorei,GLenum -> GLint -> IO ())
-EXTENSION_ENTRY(glPointParameterf,GLenum -> GLfloat -> IO ())
-EXTENSION_ENTRY(glPointParameterfv,GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glPointParameteri,GLenum -> GLint -> IO ())
-EXTENSION_ENTRY(glPointParameteriv,GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glPointSize,GLfloat -> IO ())
-EXTENSION_ENTRY(glPolygonMode,GLenum -> GLenum -> IO ())
-EXTENSION_ENTRY(glPolygonOffset,GLfloat -> GLfloat -> IO ())
-EXTENSION_ENTRY(glPrimitiveRestartIndex,GLuint -> IO ())
-EXTENSION_ENTRY(glReadBuffer,GLenum -> IO ())
-EXTENSION_ENTRY(glReadPixels,GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
-EXTENSION_ENTRY(glRenderbufferStorage,GLenum -> GLenum -> GLsizei -> GLsizei -> IO ())
-EXTENSION_ENTRY(glRenderbufferStorageMultisample,GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
-EXTENSION_ENTRY(glSampleCoverage,GLclampf -> GLboolean -> IO ())
-EXTENSION_ENTRY(glScissor,GLint -> GLint -> GLsizei -> GLsizei -> IO ())
-EXTENSION_ENTRY(glShaderSource,GLuint -> GLsizei -> Ptr (Ptr GLchar) -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glStencilFunc,GLenum -> GLint -> GLuint -> IO ())
-EXTENSION_ENTRY(glStencilFuncSeparate,GLenum -> GLenum -> GLint -> GLuint -> IO ())
-EXTENSION_ENTRY(glStencilMask,GLuint -> IO ())
-EXTENSION_ENTRY(glStencilMaskSeparate,GLenum -> GLuint -> IO ())
-EXTENSION_ENTRY(glStencilOp,GLenum -> GLenum -> GLenum -> IO ())
-EXTENSION_ENTRY(glStencilOpSeparate,GLenum -> GLenum -> GLenum -> GLenum -> IO ())
-EXTENSION_ENTRY(glTexImage1D,GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> IO ())
-EXTENSION_ENTRY(glTexImage2D,GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> IO ())
-EXTENSION_ENTRY(glTexImage3D,GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> IO ())
-EXTENSION_ENTRY(glTexParameterIiv,GLenum -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glTexParameterIuiv,GLenum -> GLenum -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glTexParameterf,GLenum -> GLenum -> GLfloat -> IO ())
-EXTENSION_ENTRY(glTexParameterfv,GLenum -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glTexParameteri,GLenum -> GLenum -> GLint -> IO ())
-EXTENSION_ENTRY(glTexParameteriv,GLenum -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glTexSubImage1D,GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
-EXTENSION_ENTRY(glTexSubImage2D,GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
-EXTENSION_ENTRY(glTexSubImage3D,GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
-EXTENSION_ENTRY(glTransformFeedbackVaryings,GLuint -> GLsizei -> Ptr (Ptr GLchar) -> GLenum -> IO ())
-EXTENSION_ENTRY(glUniform1f,GLint -> GLfloat -> IO ())
-EXTENSION_ENTRY(glUniform1fv,GLint -> GLsizei -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glUniform1i,GLint -> GLint -> IO ())
-EXTENSION_ENTRY(glUniform1iv,GLint -> GLsizei -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glUniform1ui,GLint -> GLuint -> IO ())
-EXTENSION_ENTRY(glUniform1uiv,GLint -> GLsizei -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glUniform2f,GLint -> GLfloat -> GLfloat -> IO ())
-EXTENSION_ENTRY(glUniform2fv,GLint -> GLsizei -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glUniform2i,GLint -> GLint -> GLint -> IO ())
-EXTENSION_ENTRY(glUniform2iv,GLint -> GLsizei -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glUniform2ui,GLint -> GLuint -> GLuint -> IO ())
-EXTENSION_ENTRY(glUniform2uiv,GLint -> GLsizei -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glUniform3f,GLint -> GLfloat -> GLfloat -> GLfloat -> IO ())
-EXTENSION_ENTRY(glUniform3fv,GLint -> GLsizei -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glUniform3i,GLint -> GLint -> GLint -> GLint -> IO ())
-EXTENSION_ENTRY(glUniform3iv,GLint -> GLsizei -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glUniform3ui,GLint -> GLuint -> GLuint -> GLuint -> IO ())
-EXTENSION_ENTRY(glUniform3uiv,GLint -> GLsizei -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glUniform4f,GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-EXTENSION_ENTRY(glUniform4fv,GLint -> GLsizei -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glUniform4i,GLint -> GLint -> GLint -> GLint -> GLint -> IO ())
-EXTENSION_ENTRY(glUniform4iv,GLint -> GLsizei -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glUniform4ui,GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
-EXTENSION_ENTRY(glUniform4uiv,GLint -> GLsizei -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glUniformMatrix2fv,GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glUniformMatrix2x3fv,GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glUniformMatrix2x4fv,GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glUniformMatrix3fv,GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glUniformMatrix3x2fv,GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glUniformMatrix3x4fv,GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glUniformMatrix4fv,GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glUniformMatrix4x2fv,GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glUniformMatrix4x3fv,GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glUnmapBuffer,GLenum -> IO GLboolean)
-EXTENSION_ENTRY(glUseProgram,GLuint -> IO ())
-EXTENSION_ENTRY(glValidateProgram,GLuint -> IO ())
-EXTENSION_ENTRY(glVertexAttrib1d,GLuint -> GLdouble -> IO ())
-EXTENSION_ENTRY(glVertexAttrib1dv,GLuint -> Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glVertexAttrib1f,GLuint -> GLfloat -> IO ())
-EXTENSION_ENTRY(glVertexAttrib1fv,GLuint -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glVertexAttrib1s,GLuint -> GLshort -> IO ())
-EXTENSION_ENTRY(glVertexAttrib1sv,GLuint -> Ptr GLshort -> IO ())
-EXTENSION_ENTRY(glVertexAttrib2d,GLuint -> GLdouble -> GLdouble -> IO ())
-EXTENSION_ENTRY(glVertexAttrib2dv,GLuint -> Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glVertexAttrib2f,GLuint -> GLfloat -> GLfloat -> IO ())
-EXTENSION_ENTRY(glVertexAttrib2fv,GLuint -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glVertexAttrib2s,GLuint -> GLshort -> GLshort -> IO ())
-EXTENSION_ENTRY(glVertexAttrib2sv,GLuint -> Ptr GLshort -> IO ())
-EXTENSION_ENTRY(glVertexAttrib3d,GLuint -> GLdouble -> GLdouble -> GLdouble -> IO ())
-EXTENSION_ENTRY(glVertexAttrib3dv,GLuint -> Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glVertexAttrib3f,GLuint -> GLfloat -> GLfloat -> GLfloat -> IO ())
-EXTENSION_ENTRY(glVertexAttrib3fv,GLuint -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glVertexAttrib3s,GLuint -> GLshort -> GLshort -> GLshort -> IO ())
-EXTENSION_ENTRY(glVertexAttrib3sv,GLuint -> Ptr GLshort -> IO ())
-EXTENSION_ENTRY(glVertexAttrib4Nbv,GLuint -> Ptr GLbyte -> IO ())
-EXTENSION_ENTRY(glVertexAttrib4Niv,GLuint -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glVertexAttrib4Nsv,GLuint -> Ptr GLshort -> IO ())
-EXTENSION_ENTRY(glVertexAttrib4Nub,GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> IO ())
-EXTENSION_ENTRY(glVertexAttrib4Nubv,GLuint -> Ptr GLubyte -> IO ())
-EXTENSION_ENTRY(glVertexAttrib4Nuiv,GLuint -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glVertexAttrib4Nusv,GLuint -> Ptr GLushort -> IO ())
-EXTENSION_ENTRY(glVertexAttrib4bv,GLuint -> Ptr GLbyte -> IO ())
-EXTENSION_ENTRY(glVertexAttrib4d,GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-EXTENSION_ENTRY(glVertexAttrib4dv,GLuint -> Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glVertexAttrib4f,GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-EXTENSION_ENTRY(glVertexAttrib4fv,GLuint -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glVertexAttrib4iv,GLuint -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glVertexAttrib4s,GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> IO ())
-EXTENSION_ENTRY(glVertexAttrib4sv,GLuint -> Ptr GLshort -> IO ())
-EXTENSION_ENTRY(glVertexAttrib4ubv,GLuint -> Ptr GLubyte -> IO ())
-EXTENSION_ENTRY(glVertexAttrib4uiv,GLuint -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glVertexAttrib4usv,GLuint -> Ptr GLushort -> IO ())
-EXTENSION_ENTRY(glVertexAttribI1i,GLuint -> GLint -> IO ())
-EXTENSION_ENTRY(glVertexAttribI1iv,GLuint -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glVertexAttribI1ui,GLuint -> GLuint -> IO ())
-EXTENSION_ENTRY(glVertexAttribI1uiv,GLuint -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glVertexAttribI2i,GLuint -> GLint -> GLint -> IO ())
-EXTENSION_ENTRY(glVertexAttribI2iv,GLuint -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glVertexAttribI2ui,GLuint -> GLuint -> GLuint -> IO ())
-EXTENSION_ENTRY(glVertexAttribI2uiv,GLuint -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glVertexAttribI3i,GLuint -> GLint -> GLint -> GLint -> IO ())
-EXTENSION_ENTRY(glVertexAttribI3iv,GLuint -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glVertexAttribI3ui,GLuint -> GLuint -> GLuint -> GLuint -> IO ())
-EXTENSION_ENTRY(glVertexAttribI3uiv,GLuint -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glVertexAttribI4bv,GLuint -> Ptr GLbyte -> IO ())
-EXTENSION_ENTRY(glVertexAttribI4i,GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
-EXTENSION_ENTRY(glVertexAttribI4iv,GLuint -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glVertexAttribI4sv,GLuint -> Ptr GLshort -> IO ())
-EXTENSION_ENTRY(glVertexAttribI4ubv,GLuint -> Ptr GLubyte -> IO ())
-EXTENSION_ENTRY(glVertexAttribI4ui,GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
-EXTENSION_ENTRY(glVertexAttribI4uiv,GLuint -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glVertexAttribI4usv,GLuint -> Ptr GLushort -> IO ())
-EXTENSION_ENTRY(glVertexAttribIPointer,GLuint -> GLint -> GLenum -> GLsizei -> Ptr a -> IO ())
-EXTENSION_ENTRY(glVertexAttribPointer,GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr a -> IO ())
-EXTENSION_ENTRY(glViewport,GLint -> GLint -> GLsizei -> GLsizei -> IO ())
diff --git a/src/Graphics/Rendering/OpenGL/Raw/Core31/Tokens.hs b/src/Graphics/Rendering/OpenGL/Raw/Core31/Tokens.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/Core31/Tokens.hs
+++ /dev/null
@@ -1,2064 +0,0 @@
--- #hide
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.Core31.Tokens
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All tokens from the OpenGL 3.1 core, see <http://www.opengl.org/registry/>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.Core31.Tokens where
-
-import Graphics.Rendering.OpenGL.Raw.Core31.Types
-
-gl_ACTIVE_ATTRIBUTES :: GLenum
-gl_ACTIVE_ATTRIBUTES = 0x8B89
-
-gl_ACTIVE_ATTRIBUTE_MAX_LENGTH :: GLenum
-gl_ACTIVE_ATTRIBUTE_MAX_LENGTH = 0x8B8A
-
-gl_ACTIVE_TEXTURE :: GLenum
-gl_ACTIVE_TEXTURE = 0x84E0
-
-gl_ACTIVE_UNIFORMS :: GLenum
-gl_ACTIVE_UNIFORMS = 0x8B86
-
-gl_ACTIVE_UNIFORM_MAX_LENGTH :: GLenum
-gl_ACTIVE_UNIFORM_MAX_LENGTH = 0x8B87
-
-gl_ALIASED_LINE_WIDTH_RANGE :: GLenum
-gl_ALIASED_LINE_WIDTH_RANGE = 0x846E
-
-gl_ALPHA :: GLenum
-gl_ALPHA = 0x1906
-
-gl_ALWAYS :: GLenum
-gl_ALWAYS = 0x0207
-
-gl_AND :: GLenum
-gl_AND = 0x1501
-
-gl_AND_INVERTED :: GLenum
-gl_AND_INVERTED = 0x1504
-
-gl_AND_REVERSE :: GLenum
-gl_AND_REVERSE = 0x1502
-
-gl_ARRAY_BUFFER :: GLenum
-gl_ARRAY_BUFFER = 0x8892
-
-gl_ARRAY_BUFFER_BINDING :: GLenum
-gl_ARRAY_BUFFER_BINDING = 0x8894
-
-gl_ATTACHED_SHADERS :: GLenum
-gl_ATTACHED_SHADERS = 0x8B85
-
-gl_BACK :: GLenum
-gl_BACK = 0x0405
-
-gl_BACK_LEFT :: GLenum
-gl_BACK_LEFT = 0x0402
-
-gl_BACK_RIGHT :: GLenum
-gl_BACK_RIGHT = 0x0403
-
-gl_BGR :: GLenum
-gl_BGR = 0x80E0
-
-gl_BGRA :: GLenum
-gl_BGRA = 0x80E1
-
-gl_BGRA_INTEGER :: GLenum
-gl_BGRA_INTEGER = 0x8D9B
-
-gl_BGR_INTEGER :: GLenum
-gl_BGR_INTEGER = 0x8D9A
-
-gl_BLEND :: GLenum
-gl_BLEND = 0x0BE2
-
-gl_BLEND_COLOR :: GLenum
-gl_BLEND_COLOR = 0x8005
-
-gl_BLEND_DST :: GLenum
-gl_BLEND_DST = 0x0BE0
-
-gl_BLEND_DST_ALPHA :: GLenum
-gl_BLEND_DST_ALPHA = 0x80CA
-
-gl_BLEND_DST_RGB :: GLenum
-gl_BLEND_DST_RGB = 0x80C8
-
-gl_BLEND_EQUATION :: GLenum
-gl_BLEND_EQUATION = 0x8009
-
-gl_BLEND_EQUATION_ALPHA :: GLenum
-gl_BLEND_EQUATION_ALPHA = 0x883D
-
-gl_BLEND_EQUATION_RGB :: GLenum
-gl_BLEND_EQUATION_RGB = 0x8009
-
-gl_BLEND_SRC :: GLenum
-gl_BLEND_SRC = 0x0BE1
-
-gl_BLEND_SRC_ALPHA :: GLenum
-gl_BLEND_SRC_ALPHA = 0x80CB
-
-gl_BLEND_SRC_RGB :: GLenum
-gl_BLEND_SRC_RGB = 0x80C9
-
-gl_BLUE :: GLenum
-gl_BLUE = 0x1905
-
-gl_BLUE_INTEGER :: GLenum
-gl_BLUE_INTEGER = 0x8D96
-
-gl_BOOL :: GLenum
-gl_BOOL = 0x8B56
-
-gl_BOOL_VEC2 :: GLenum
-gl_BOOL_VEC2 = 0x8B57
-
-gl_BOOL_VEC3 :: GLenum
-gl_BOOL_VEC3 = 0x8B58
-
-gl_BOOL_VEC4 :: GLenum
-gl_BOOL_VEC4 = 0x8B59
-
-gl_BUFFER_ACCESS :: GLenum
-gl_BUFFER_ACCESS = 0x88BB
-
-gl_BUFFER_ACCESS_FLAGS :: GLenum
-gl_BUFFER_ACCESS_FLAGS = 0x911F
-
-gl_BUFFER_MAPPED :: GLenum
-gl_BUFFER_MAPPED = 0x88BC
-
-gl_BUFFER_MAP_LENGTH :: GLenum
-gl_BUFFER_MAP_LENGTH = 0x9120
-
-gl_BUFFER_MAP_OFFSET :: GLenum
-gl_BUFFER_MAP_OFFSET = 0x9121
-
-gl_BUFFER_MAP_POINTER :: GLenum
-gl_BUFFER_MAP_POINTER = 0x88BD
-
-gl_BUFFER_SIZE :: GLenum
-gl_BUFFER_SIZE = 0x8764
-
-gl_BUFFER_USAGE :: GLenum
-gl_BUFFER_USAGE = 0x8765
-
-gl_BYTE :: GLenum
-gl_BYTE = 0x1400
-
-gl_CCW :: GLenum
-gl_CCW = 0x0901
-
-gl_CLAMP_READ_COLOR :: GLenum
-gl_CLAMP_READ_COLOR = 0x891C
-
-gl_CLAMP_TO_BORDER :: GLenum
-gl_CLAMP_TO_BORDER = 0x812D
-
-gl_CLAMP_TO_EDGE :: GLenum
-gl_CLAMP_TO_EDGE = 0x812F
-
-gl_CLEAR :: GLenum
-gl_CLEAR = 0x1500
-
-gl_CLIP_DISTANCE0 :: GLenum
-gl_CLIP_DISTANCE0 = 0x3000
-
-gl_CLIP_DISTANCE1 :: GLenum
-gl_CLIP_DISTANCE1 = 0x3001
-
-gl_CLIP_DISTANCE2 :: GLenum
-gl_CLIP_DISTANCE2 = 0x3002
-
-gl_CLIP_DISTANCE3 :: GLenum
-gl_CLIP_DISTANCE3 = 0x3003
-
-gl_CLIP_DISTANCE4 :: GLenum
-gl_CLIP_DISTANCE4 = 0x3004
-
-gl_CLIP_DISTANCE5 :: GLenum
-gl_CLIP_DISTANCE5 = 0x3005
-
-gl_CLIP_DISTANCE6 :: GLenum
-gl_CLIP_DISTANCE6 = 0x3006
-
-gl_CLIP_DISTANCE7 :: GLenum
-gl_CLIP_DISTANCE7 = 0x3007
-
-gl_COLOR :: GLenum
-gl_COLOR = 0x1800
-
-gl_COLOR_ATTACHMENT0 :: GLenum
-gl_COLOR_ATTACHMENT0 = 0x8CE0
-
-gl_COLOR_ATTACHMENT1 :: GLenum
-gl_COLOR_ATTACHMENT1 = 0x8CE1
-
-gl_COLOR_ATTACHMENT10 :: GLenum
-gl_COLOR_ATTACHMENT10 = 0x8CEA
-
-gl_COLOR_ATTACHMENT11 :: GLenum
-gl_COLOR_ATTACHMENT11 = 0x8CEB
-
-gl_COLOR_ATTACHMENT12 :: GLenum
-gl_COLOR_ATTACHMENT12 = 0x8CEC
-
-gl_COLOR_ATTACHMENT13 :: GLenum
-gl_COLOR_ATTACHMENT13 = 0x8CED
-
-gl_COLOR_ATTACHMENT14 :: GLenum
-gl_COLOR_ATTACHMENT14 = 0x8CEE
-
-gl_COLOR_ATTACHMENT15 :: GLenum
-gl_COLOR_ATTACHMENT15 = 0x8CEF
-
-gl_COLOR_ATTACHMENT2 :: GLenum
-gl_COLOR_ATTACHMENT2 = 0x8CE2
-
-gl_COLOR_ATTACHMENT3 :: GLenum
-gl_COLOR_ATTACHMENT3 = 0x8CE3
-
-gl_COLOR_ATTACHMENT4 :: GLenum
-gl_COLOR_ATTACHMENT4 = 0x8CE4
-
-gl_COLOR_ATTACHMENT5 :: GLenum
-gl_COLOR_ATTACHMENT5 = 0x8CE5
-
-gl_COLOR_ATTACHMENT6 :: GLenum
-gl_COLOR_ATTACHMENT6 = 0x8CE6
-
-gl_COLOR_ATTACHMENT7 :: GLenum
-gl_COLOR_ATTACHMENT7 = 0x8CE7
-
-gl_COLOR_ATTACHMENT8 :: GLenum
-gl_COLOR_ATTACHMENT8 = 0x8CE8
-
-gl_COLOR_ATTACHMENT9 :: GLenum
-gl_COLOR_ATTACHMENT9 = 0x8CE9
-
-gl_COLOR_BUFFER_BIT :: GLenum
-gl_COLOR_BUFFER_BIT = 0x00004000
-
-gl_COLOR_CLEAR_VALUE :: GLenum
-gl_COLOR_CLEAR_VALUE = 0x0C22
-
-gl_COLOR_LOGIC_OP :: GLenum
-gl_COLOR_LOGIC_OP = 0x0BF2
-
-gl_COLOR_WRITEMASK :: GLenum
-gl_COLOR_WRITEMASK = 0x0C23
-
-gl_COMPARE_REF_TO_TEXTURE :: GLenum
-gl_COMPARE_REF_TO_TEXTURE = 0x884E
-
-gl_COMPILE_STATUS :: GLenum
-gl_COMPILE_STATUS = 0x8B81
-
-gl_COMPRESSED_RED :: GLenum
-gl_COMPRESSED_RED = 0x8225
-
-gl_COMPRESSED_RED_RGTC1 :: GLenum
-gl_COMPRESSED_RED_RGTC1 = 0x8DBB
-
-gl_COMPRESSED_RG :: GLenum
-gl_COMPRESSED_RG = 0x8226
-
-gl_COMPRESSED_RGB :: GLenum
-gl_COMPRESSED_RGB = 0x84ED
-
-gl_COMPRESSED_RGBA :: GLenum
-gl_COMPRESSED_RGBA = 0x84EE
-
-gl_COMPRESSED_RG_RGTC2 :: GLenum
-gl_COMPRESSED_RG_RGTC2 = 0x8DBD
-
-gl_COMPRESSED_SIGNED_RED_RGTC1 :: GLenum
-gl_COMPRESSED_SIGNED_RED_RGTC1 = 0x8DBC
-
-gl_COMPRESSED_SIGNED_RG_RGTC2 :: GLenum
-gl_COMPRESSED_SIGNED_RG_RGTC2 = 0x8DBE
-
-gl_COMPRESSED_SRGB :: GLenum
-gl_COMPRESSED_SRGB = 0x8C48
-
-gl_COMPRESSED_SRGB_ALPHA :: GLenum
-gl_COMPRESSED_SRGB_ALPHA = 0x8C49
-
-gl_COMPRESSED_TEXTURE_FORMATS :: GLenum
-gl_COMPRESSED_TEXTURE_FORMATS = 0x86A3
-
-gl_CONSTANT_ALPHA :: GLenum
-gl_CONSTANT_ALPHA = 0x8003
-
-gl_CONSTANT_COLOR :: GLenum
-gl_CONSTANT_COLOR = 0x8001
-
-gl_CONTEXT_FLAGS :: GLenum
-gl_CONTEXT_FLAGS = 0x821E
-
-gl_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT :: GLenum
-gl_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT = 0x0001
-
-gl_COPY :: GLenum
-gl_COPY = 0x1503
-
-gl_COPY_INVERTED :: GLenum
-gl_COPY_INVERTED = 0x150C
-
-gl_CULL_FACE :: GLenum
-gl_CULL_FACE = 0x0B44
-
-gl_CULL_FACE_MODE :: GLenum
-gl_CULL_FACE_MODE = 0x0B45
-
-gl_CURRENT_PROGRAM :: GLenum
-gl_CURRENT_PROGRAM = 0x8B8D
-
-gl_CURRENT_QUERY :: GLenum
-gl_CURRENT_QUERY = 0x8865
-
-gl_CURRENT_VERTEX_ATTRIB :: GLenum
-gl_CURRENT_VERTEX_ATTRIB = 0x8626
-
-gl_CW :: GLenum
-gl_CW = 0x0900
-
-gl_DECR :: GLenum
-gl_DECR = 0x1E03
-
-gl_DECR_WRAP :: GLenum
-gl_DECR_WRAP = 0x8508
-
-gl_DELETE_STATUS :: GLenum
-gl_DELETE_STATUS = 0x8B80
-
-gl_DEPTH :: GLenum
-gl_DEPTH = 0x1801
-
-gl_DEPTH24_STENCIL8 :: GLenum
-gl_DEPTH24_STENCIL8 = 0x88F0
-
-gl_DEPTH32F_STENCIL8 :: GLenum
-gl_DEPTH32F_STENCIL8 = 0x8CAD
-
-gl_DEPTH_ATTACHMENT :: GLenum
-gl_DEPTH_ATTACHMENT = 0x8D00
-
-gl_DEPTH_BUFFER :: GLenum
-gl_DEPTH_BUFFER = 0x8223
-
-gl_DEPTH_BUFFER_BIT :: GLenum
-gl_DEPTH_BUFFER_BIT = 0x00000100
-
-gl_DEPTH_CLEAR_VALUE :: GLenum
-gl_DEPTH_CLEAR_VALUE = 0x0B73
-
-gl_DEPTH_COMPONENT :: GLenum
-gl_DEPTH_COMPONENT = 0x1902
-
-gl_DEPTH_COMPONENT16 :: GLenum
-gl_DEPTH_COMPONENT16 = 0x81A5
-
-gl_DEPTH_COMPONENT24 :: GLenum
-gl_DEPTH_COMPONENT24 = 0x81A6
-
-gl_DEPTH_COMPONENT32 :: GLenum
-gl_DEPTH_COMPONENT32 = 0x81A7
-
-gl_DEPTH_COMPONENT32F :: GLenum
-gl_DEPTH_COMPONENT32F = 0x8CAC
-
-gl_DEPTH_FUNC :: GLenum
-gl_DEPTH_FUNC = 0x0B74
-
-gl_DEPTH_RANGE :: GLenum
-gl_DEPTH_RANGE = 0x0B70
-
-gl_DEPTH_STENCIL :: GLenum
-gl_DEPTH_STENCIL = 0x84F9
-
-gl_DEPTH_STENCIL_ATTACHMENT :: GLenum
-gl_DEPTH_STENCIL_ATTACHMENT = 0x821A
-
-gl_DEPTH_TEST :: GLenum
-gl_DEPTH_TEST = 0x0B71
-
-gl_DEPTH_WRITEMASK :: GLenum
-gl_DEPTH_WRITEMASK = 0x0B72
-
-gl_DITHER :: GLenum
-gl_DITHER = 0x0BD0
-
-gl_DONT_CARE :: GLenum
-gl_DONT_CARE = 0x1100
-
-gl_DOUBLE :: GLenum
-gl_DOUBLE = 0x140A
-
-gl_DOUBLEBUFFER :: GLenum
-gl_DOUBLEBUFFER = 0x0C32
-
-gl_DRAW_BUFFER :: GLenum
-gl_DRAW_BUFFER = 0x0C01
-
-gl_DRAW_BUFFER0 :: GLenum
-gl_DRAW_BUFFER0 = 0x8825
-
-gl_DRAW_BUFFER1 :: GLenum
-gl_DRAW_BUFFER1 = 0x8826
-
-gl_DRAW_BUFFER10 :: GLenum
-gl_DRAW_BUFFER10 = 0x882F
-
-gl_DRAW_BUFFER11 :: GLenum
-gl_DRAW_BUFFER11 = 0x8830
-
-gl_DRAW_BUFFER12 :: GLenum
-gl_DRAW_BUFFER12 = 0x8831
-
-gl_DRAW_BUFFER13 :: GLenum
-gl_DRAW_BUFFER13 = 0x8832
-
-gl_DRAW_BUFFER14 :: GLenum
-gl_DRAW_BUFFER14 = 0x8833
-
-gl_DRAW_BUFFER15 :: GLenum
-gl_DRAW_BUFFER15 = 0x8834
-
-gl_DRAW_BUFFER2 :: GLenum
-gl_DRAW_BUFFER2 = 0x8827
-
-gl_DRAW_BUFFER3 :: GLenum
-gl_DRAW_BUFFER3 = 0x8828
-
-gl_DRAW_BUFFER4 :: GLenum
-gl_DRAW_BUFFER4 = 0x8829
-
-gl_DRAW_BUFFER5 :: GLenum
-gl_DRAW_BUFFER5 = 0x882A
-
-gl_DRAW_BUFFER6 :: GLenum
-gl_DRAW_BUFFER6 = 0x882B
-
-gl_DRAW_BUFFER7 :: GLenum
-gl_DRAW_BUFFER7 = 0x882C
-
-gl_DRAW_BUFFER8 :: GLenum
-gl_DRAW_BUFFER8 = 0x882D
-
-gl_DRAW_BUFFER9 :: GLenum
-gl_DRAW_BUFFER9 = 0x882E
-
-gl_DRAW_FRAMEBUFFER :: GLenum
-gl_DRAW_FRAMEBUFFER = 0x8CA9
-
-gl_DRAW_FRAMEBUFFER_BINDING :: GLenum
-gl_DRAW_FRAMEBUFFER_BINDING = gl_FRAMEBUFFER_BINDING
-
-gl_DST_ALPHA :: GLenum
-gl_DST_ALPHA = 0x0304
-
-gl_DST_COLOR :: GLenum
-gl_DST_COLOR = 0x0306
-
-gl_DYNAMIC_COPY :: GLenum
-gl_DYNAMIC_COPY = 0x88EA
-
-gl_DYNAMIC_DRAW :: GLenum
-gl_DYNAMIC_DRAW = 0x88E8
-
-gl_DYNAMIC_READ :: GLenum
-gl_DYNAMIC_READ = 0x88E9
-
-gl_ELEMENT_ARRAY_BUFFER :: GLenum
-gl_ELEMENT_ARRAY_BUFFER = 0x8893
-
-gl_ELEMENT_ARRAY_BUFFER_BINDING :: GLenum
-gl_ELEMENT_ARRAY_BUFFER_BINDING = 0x8895
-
-gl_EQUAL :: GLenum
-gl_EQUAL = 0x0202
-
-gl_EQUIV :: GLenum
-gl_EQUIV = 0x1509
-
-gl_EXTENSIONS :: GLenum
-gl_EXTENSIONS = 0x1F03
-
-gl_FALSE :: GLenum
-gl_FALSE = 0
-
-gl_FASTEST :: GLenum
-gl_FASTEST = 0x1101
-
-gl_FILL :: GLenum
-gl_FILL = 0x1B02
-
-gl_FIXED_ONLY :: GLenum
-gl_FIXED_ONLY = 0x891D
-
-gl_FLOAT :: GLenum
-gl_FLOAT = 0x1406
-
-gl_FLOAT_32_UNSIGNED_INT_24_8_REV :: GLenum
-gl_FLOAT_32_UNSIGNED_INT_24_8_REV = 0x8DAD
-
-gl_FLOAT_MAT2 :: GLenum
-gl_FLOAT_MAT2 = 0x8B5A
-
-gl_FLOAT_MAT2x3 :: GLenum
-gl_FLOAT_MAT2x3 = 0x8B65
-
-gl_FLOAT_MAT2x4 :: GLenum
-gl_FLOAT_MAT2x4 = 0x8B66
-
-gl_FLOAT_MAT3 :: GLenum
-gl_FLOAT_MAT3 = 0x8B5B
-
-gl_FLOAT_MAT3x2 :: GLenum
-gl_FLOAT_MAT3x2 = 0x8B67
-
-gl_FLOAT_MAT3x4 :: GLenum
-gl_FLOAT_MAT3x4 = 0x8B68
-
-gl_FLOAT_MAT4 :: GLenum
-gl_FLOAT_MAT4 = 0x8B5C
-
-gl_FLOAT_MAT4x2 :: GLenum
-gl_FLOAT_MAT4x2 = 0x8B69
-
-gl_FLOAT_MAT4x3 :: GLenum
-gl_FLOAT_MAT4x3 = 0x8B6A
-
-gl_FLOAT_VEC2 :: GLenum
-gl_FLOAT_VEC2 = 0x8B50
-
-gl_FLOAT_VEC3 :: GLenum
-gl_FLOAT_VEC3 = 0x8B51
-
-gl_FLOAT_VEC4 :: GLenum
-gl_FLOAT_VEC4 = 0x8B52
-
-gl_FRAGMENT_SHADER :: GLenum
-gl_FRAGMENT_SHADER = 0x8B30
-
-gl_FRAGMENT_SHADER_DERIVATIVE_HINT :: GLenum
-gl_FRAGMENT_SHADER_DERIVATIVE_HINT = 0x8B8B
-
-gl_FRAMEBUFFER :: GLenum
-gl_FRAMEBUFFER = 0x8D40
-
-gl_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE :: GLenum
-gl_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = 0x8215
-
-gl_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE :: GLenum
-gl_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = 0x8214
-
-gl_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING :: GLenum
-gl_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = 0x8210
-
-gl_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE :: GLenum
-gl_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = 0x8211
-
-gl_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE :: GLenum
-gl_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = 0x8216
-
-gl_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE :: GLenum
-gl_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = 0x8213
-
-gl_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME :: GLenum
-gl_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8CD1
-
-gl_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE :: GLenum
-gl_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8CD0
-
-gl_FRAMEBUFFER_ATTACHMENT_RED_SIZE :: GLenum
-gl_FRAMEBUFFER_ATTACHMENT_RED_SIZE = 0x8212
-
-gl_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE :: GLenum
-gl_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = 0x8217
-
-gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE :: GLenum
-gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3
-
-gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER :: GLenum
-gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = 0x8CD4
-
-gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL :: GLenum
-gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8CD2
-
-gl_FRAMEBUFFER_BINDING :: GLenum
-gl_FRAMEBUFFER_BINDING = 0x8CA6
-
-gl_FRAMEBUFFER_COMPLETE :: GLenum
-gl_FRAMEBUFFER_COMPLETE = 0x8CD5
-
-gl_FRAMEBUFFER_DEFAULT :: GLenum
-gl_FRAMEBUFFER_DEFAULT = 0x8218
-
-gl_FRAMEBUFFER_INCOMPLETE_ATTACHMENT :: GLenum
-gl_FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6
-
-gl_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER :: GLenum
-gl_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER = 0x8CDB
-
-gl_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT :: GLenum
-gl_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7
-
-gl_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE :: GLenum
-gl_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = 0x8D56
-
-gl_FRAMEBUFFER_INCOMPLETE_READ_BUFFER :: GLenum
-gl_FRAMEBUFFER_INCOMPLETE_READ_BUFFER = 0x8CDC
-
-gl_FRAMEBUFFER_SRGB :: GLenum
-gl_FRAMEBUFFER_SRGB = 0x8DB9
-
-gl_FRAMEBUFFER_UNDEFINED :: GLenum
-gl_FRAMEBUFFER_UNDEFINED = 0x8219
-
-gl_FRAMEBUFFER_UNSUPPORTED :: GLenum
-gl_FRAMEBUFFER_UNSUPPORTED = 0x8CDD
-
-gl_FRONT :: GLenum
-gl_FRONT = 0x0404
-
-gl_FRONT_AND_BACK :: GLenum
-gl_FRONT_AND_BACK = 0x0408
-
-gl_FRONT_FACE :: GLenum
-gl_FRONT_FACE = 0x0B46
-
-gl_FRONT_LEFT :: GLenum
-gl_FRONT_LEFT = 0x0400
-
-gl_FRONT_RIGHT :: GLenum
-gl_FRONT_RIGHT = 0x0401
-
-gl_FUNC_ADD :: GLenum
-gl_FUNC_ADD = 0x8006
-
-gl_FUNC_REVERSE_SUBTRACT :: GLenum
-gl_FUNC_REVERSE_SUBTRACT = 0x800B
-
-gl_FUNC_SUBTRACT :: GLenum
-gl_FUNC_SUBTRACT = 0x800A
-
-gl_GEQUAL :: GLenum
-gl_GEQUAL = 0x0206
-
-gl_GREATER :: GLenum
-gl_GREATER = 0x0204
-
-gl_GREEN :: GLenum
-gl_GREEN = 0x1904
-
-gl_GREEN_INTEGER :: GLenum
-gl_GREEN_INTEGER = 0x8D95
-
-gl_HALF_FLOAT :: GLenum
-gl_HALF_FLOAT = 0x140B
-
-gl_INCR :: GLenum
-gl_INCR = 0x1E02
-
-gl_INCR_WRAP :: GLenum
-gl_INCR_WRAP = 0x8507
-
-gl_INFO_LOG_LENGTH :: GLenum
-gl_INFO_LOG_LENGTH = 0x8B84
-
-gl_INT :: GLenum
-gl_INT = 0x1404
-
-gl_INTERLEAVED_ATTRIBS :: GLenum
-gl_INTERLEAVED_ATTRIBS = 0x8C8C
-
-gl_INT_SAMPLER_1D :: GLenum
-gl_INT_SAMPLER_1D = 0x8DC9
-
-gl_INT_SAMPLER_1D_ARRAY :: GLenum
-gl_INT_SAMPLER_1D_ARRAY = 0x8DCE
-
-gl_INT_SAMPLER_2D :: GLenum
-gl_INT_SAMPLER_2D = 0x8DCA
-
-gl_INT_SAMPLER_2D_ARRAY :: GLenum
-gl_INT_SAMPLER_2D_ARRAY = 0x8DCF
-
-gl_INT_SAMPLER_2D_RECT :: GLenum
-gl_INT_SAMPLER_2D_RECT = 0x8DCD
-
-gl_INT_SAMPLER_3D :: GLenum
-gl_INT_SAMPLER_3D = 0x8DCB
-
-gl_INT_SAMPLER_BUFFER :: GLenum
-gl_INT_SAMPLER_BUFFER = 0x8DD0
-
-gl_INT_SAMPLER_CUBE :: GLenum
-gl_INT_SAMPLER_CUBE = 0x8DCC
-
-gl_INT_VEC2 :: GLenum
-gl_INT_VEC2 = 0x8B53
-
-gl_INT_VEC3 :: GLenum
-gl_INT_VEC3 = 0x8B54
-
-gl_INT_VEC4 :: GLenum
-gl_INT_VEC4 = 0x8B55
-
-gl_INVALID_ENUM :: GLenum
-gl_INVALID_ENUM = 0x0500
-
-gl_INVALID_FRAMEBUFFER_OPERATION :: GLenum
-gl_INVALID_FRAMEBUFFER_OPERATION = 0x0506
-
-gl_INVALID_OPERATION :: GLenum
-gl_INVALID_OPERATION = 0x0502
-
-gl_INVALID_VALUE :: GLenum
-gl_INVALID_VALUE = 0x0501
-
-gl_INVERT :: GLenum
-gl_INVERT = 0x150A
-
-gl_KEEP :: GLenum
-gl_KEEP = 0x1E00
-
-gl_LEFT :: GLenum
-gl_LEFT = 0x0406
-
-gl_LEQUAL :: GLenum
-gl_LEQUAL = 0x0203
-
-gl_LESS :: GLenum
-gl_LESS = 0x0201
-
-gl_LINE :: GLenum
-gl_LINE = 0x1B01
-
-gl_LINEAR :: GLenum
-gl_LINEAR = 0x2601
-
-gl_LINEAR_MIPMAP_LINEAR :: GLenum
-gl_LINEAR_MIPMAP_LINEAR = 0x2703
-
-gl_LINEAR_MIPMAP_NEAREST :: GLenum
-gl_LINEAR_MIPMAP_NEAREST = 0x2701
-
-gl_LINES :: GLenum
-gl_LINES = 0x0001
-
-gl_LINE_LOOP :: GLenum
-gl_LINE_LOOP = 0x0002
-
-gl_LINE_SMOOTH :: GLenum
-gl_LINE_SMOOTH = 0x0B20
-
-gl_LINE_SMOOTH_HINT :: GLenum
-gl_LINE_SMOOTH_HINT = 0x0C52
-
-gl_LINE_STRIP :: GLenum
-gl_LINE_STRIP = 0x0003
-
-gl_LINE_WIDTH :: GLenum
-gl_LINE_WIDTH = 0x0B21
-
-gl_LINE_WIDTH_GRANULARITY :: GLenum
-gl_LINE_WIDTH_GRANULARITY = 0x0B23
-
-gl_LINE_WIDTH_RANGE :: GLenum
-gl_LINE_WIDTH_RANGE = 0x0B22
-
-gl_LINK_STATUS :: GLenum
-gl_LINK_STATUS = 0x8B82
-
-gl_LOGIC_OP_MODE :: GLenum
-gl_LOGIC_OP_MODE = 0x0BF0
-
-gl_LOWER_LEFT :: GLenum
-gl_LOWER_LEFT = 0x8CA1
-
-gl_MAJOR_VERSION :: GLenum
-gl_MAJOR_VERSION = 0x821B
-
-gl_MAP_FLUSH_EXPLICIT_BIT :: GLenum
-gl_MAP_FLUSH_EXPLICIT_BIT = 0x0010
-
-gl_MAP_INVALIDATE_BUFFER_BIT :: GLenum
-gl_MAP_INVALIDATE_BUFFER_BIT = 0x0008
-
-gl_MAP_INVALIDATE_RANGE_BIT :: GLenum
-gl_MAP_INVALIDATE_RANGE_BIT = 0x0004
-
-gl_MAP_READ_BIT :: GLenum
-gl_MAP_READ_BIT = 0x0001
-
-gl_MAP_UNSYNCHRONIZED_BIT :: GLenum
-gl_MAP_UNSYNCHRONIZED_BIT = 0x0020
-
-gl_MAP_WRITE_BIT :: GLenum
-gl_MAP_WRITE_BIT = 0x0002
-
-gl_MAX :: GLenum
-gl_MAX = 0x8008
-
-gl_MAX_3D_TEXTURE_SIZE :: GLenum
-gl_MAX_3D_TEXTURE_SIZE = 0x8073
-
-gl_MAX_ARRAY_TEXTURE_LAYERS :: GLenum
-gl_MAX_ARRAY_TEXTURE_LAYERS = 0x88FF
-
-gl_MAX_CLIP_DISTANCES :: GLenum
-gl_MAX_CLIP_DISTANCES = 0x0D32
-
-gl_MAX_COLOR_ATTACHMENTS :: GLenum
-gl_MAX_COLOR_ATTACHMENTS = 0x8CDF
-
-gl_MAX_COMBINED_TEXTURE_IMAGE_UNITS :: GLenum
-gl_MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D
-
-gl_MAX_CUBE_MAP_TEXTURE_SIZE :: GLenum
-gl_MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C
-
-gl_MAX_DRAW_BUFFERS :: GLenum
-gl_MAX_DRAW_BUFFERS = 0x8824
-
-gl_MAX_ELEMENTS_INDICES :: GLenum
-gl_MAX_ELEMENTS_INDICES = 0x80E9
-
-gl_MAX_ELEMENTS_VERTICES :: GLenum
-gl_MAX_ELEMENTS_VERTICES = 0x80E8
-
-gl_MAX_FRAGMENT_UNIFORM_COMPONENTS :: GLenum
-gl_MAX_FRAGMENT_UNIFORM_COMPONENTS = 0x8B49
-
-gl_MAX_PROGRAM_TEXEL_OFFSET :: GLenum
-gl_MAX_PROGRAM_TEXEL_OFFSET = 0x8905
-
-gl_MAX_RENDERBUFFER_SIZE :: GLenum
-gl_MAX_RENDERBUFFER_SIZE = 0x84E8
-
-gl_MAX_SAMPLES :: GLenum
-gl_MAX_SAMPLES = 0x8D57
-
-gl_MAX_TEXTURE_IMAGE_UNITS :: GLenum
-gl_MAX_TEXTURE_IMAGE_UNITS = 0x8872
-
-gl_MAX_TEXTURE_LOD_BIAS :: GLenum
-gl_MAX_TEXTURE_LOD_BIAS = 0x84FD
-
-gl_MAX_TEXTURE_SIZE :: GLenum
-gl_MAX_TEXTURE_SIZE = 0x0D33
-
-gl_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS :: GLenum
-gl_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = 0x8C8A
-
-gl_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS :: GLenum
-gl_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = 0x8C8B
-
-gl_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS :: GLenum
-gl_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = 0x8C80
-
-gl_MAX_VARYING_COMPONENTS :: GLenum
-gl_MAX_VARYING_COMPONENTS = 0x8B4B
-
-gl_MAX_VARYING_FLOATS :: GLenum
-gl_MAX_VARYING_FLOATS = 0x8B4B
-
-gl_MAX_VERTEX_ATTRIBS :: GLenum
-gl_MAX_VERTEX_ATTRIBS = 0x8869
-
-gl_MAX_VERTEX_TEXTURE_IMAGE_UNITS :: GLenum
-gl_MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C
-
-gl_MAX_VERTEX_UNIFORM_COMPONENTS :: GLenum
-gl_MAX_VERTEX_UNIFORM_COMPONENTS = 0x8B4A
-
-gl_MAX_VIEWPORT_DIMS :: GLenum
-gl_MAX_VIEWPORT_DIMS = 0x0D3A
-
-gl_MIN :: GLenum
-gl_MIN = 0x8007
-
-gl_MINOR_VERSION :: GLenum
-gl_MINOR_VERSION = 0x821C
-
-gl_MIN_PROGRAM_TEXEL_OFFSET :: GLenum
-gl_MIN_PROGRAM_TEXEL_OFFSET = 0x8904
-
-gl_MIRRORED_REPEAT :: GLenum
-gl_MIRRORED_REPEAT = 0x8370
-
-gl_MULTISAMPLE :: GLenum
-gl_MULTISAMPLE = 0x809D
-
-gl_NAND :: GLenum
-gl_NAND = 0x150E
-
-gl_NEAREST :: GLenum
-gl_NEAREST = 0x2600
-
-gl_NEAREST_MIPMAP_LINEAR :: GLenum
-gl_NEAREST_MIPMAP_LINEAR = 0x2702
-
-gl_NEAREST_MIPMAP_NEAREST :: GLenum
-gl_NEAREST_MIPMAP_NEAREST = 0x2700
-
-gl_NEVER :: GLenum
-gl_NEVER = 0x0200
-
-gl_NICEST :: GLenum
-gl_NICEST = 0x1102
-
-gl_NONE :: GLenum
-gl_NONE = 0
-
-gl_NOOP :: GLenum
-gl_NOOP = 0x1505
-
-gl_NOR :: GLenum
-gl_NOR = 0x1508
-
-gl_NOTEQUAL :: GLenum
-gl_NOTEQUAL = 0x0205
-
-gl_NO_ERROR :: GLenum
-gl_NO_ERROR = 0
-
-gl_NUM_COMPRESSED_TEXTURE_FORMATS :: GLenum
-gl_NUM_COMPRESSED_TEXTURE_FORMATS = 0x86A2
-
-gl_NUM_EXTENSIONS :: GLenum
-gl_NUM_EXTENSIONS = 0x821D
-
-gl_ONE :: GLenum
-gl_ONE = 1
-
-gl_ONE_MINUS_CONSTANT_ALPHA :: GLenum
-gl_ONE_MINUS_CONSTANT_ALPHA = 0x8004
-
-gl_ONE_MINUS_CONSTANT_COLOR :: GLenum
-gl_ONE_MINUS_CONSTANT_COLOR = 0x8002
-
-gl_ONE_MINUS_DST_ALPHA :: GLenum
-gl_ONE_MINUS_DST_ALPHA = 0x0305
-
-gl_ONE_MINUS_DST_COLOR :: GLenum
-gl_ONE_MINUS_DST_COLOR = 0x0307
-
-gl_ONE_MINUS_SRC_ALPHA :: GLenum
-gl_ONE_MINUS_SRC_ALPHA = 0x0303
-
-gl_ONE_MINUS_SRC_COLOR :: GLenum
-gl_ONE_MINUS_SRC_COLOR = 0x0301
-
-gl_OR :: GLenum
-gl_OR = 0x1507
-
-gl_OR_INVERTED :: GLenum
-gl_OR_INVERTED = 0x150D
-
-gl_OR_REVERSE :: GLenum
-gl_OR_REVERSE = 0x150B
-
-gl_OUT_OF_MEMORY :: GLenum
-gl_OUT_OF_MEMORY = 0x0505
-
-gl_PACK_ALIGNMENT :: GLenum
-gl_PACK_ALIGNMENT = 0x0D05
-
-gl_PACK_IMAGE_HEIGHT :: GLenum
-gl_PACK_IMAGE_HEIGHT = 0x806C
-
-gl_PACK_LSB_FIRST :: GLenum
-gl_PACK_LSB_FIRST = 0x0D01
-
-gl_PACK_ROW_LENGTH :: GLenum
-gl_PACK_ROW_LENGTH = 0x0D02
-
-gl_PACK_SKIP_IMAGES :: GLenum
-gl_PACK_SKIP_IMAGES = 0x806B
-
-gl_PACK_SKIP_PIXELS :: GLenum
-gl_PACK_SKIP_PIXELS = 0x0D04
-
-gl_PACK_SKIP_ROWS :: GLenum
-gl_PACK_SKIP_ROWS = 0x0D03
-
-gl_PACK_SWAP_BYTES :: GLenum
-gl_PACK_SWAP_BYTES = 0x0D00
-
-gl_PIXEL_PACK_BUFFER :: GLenum
-gl_PIXEL_PACK_BUFFER = 0x88EB
-
-gl_PIXEL_PACK_BUFFER_BINDING :: GLenum
-gl_PIXEL_PACK_BUFFER_BINDING = 0x88ED
-
-gl_PIXEL_UNPACK_BUFFER :: GLenum
-gl_PIXEL_UNPACK_BUFFER = 0x88EC
-
-gl_PIXEL_UNPACK_BUFFER_BINDING :: GLenum
-gl_PIXEL_UNPACK_BUFFER_BINDING = 0x88EF
-
-gl_POINT :: GLenum
-gl_POINT = 0x1B00
-
-gl_POINTS :: GLenum
-gl_POINTS = 0x0000
-
-gl_POINT_FADE_THRESHOLD_SIZE :: GLenum
-gl_POINT_FADE_THRESHOLD_SIZE = 0x8128
-
-gl_POINT_SIZE :: GLenum
-gl_POINT_SIZE = 0x0B11
-
-gl_POINT_SIZE_GRANULARITY :: GLenum
-gl_POINT_SIZE_GRANULARITY = 0x0B13
-
-gl_POINT_SIZE_RANGE :: GLenum
-gl_POINT_SIZE_RANGE = 0x0B12
-
-gl_POINT_SPRITE_COORD_ORIGIN :: GLenum
-gl_POINT_SPRITE_COORD_ORIGIN = 0x8CA0
-
-gl_POLYGON_OFFSET_FACTOR :: GLenum
-gl_POLYGON_OFFSET_FACTOR = 0x8038
-
-gl_POLYGON_OFFSET_FILL :: GLenum
-gl_POLYGON_OFFSET_FILL = 0x8037
-
-gl_POLYGON_OFFSET_LINE :: GLenum
-gl_POLYGON_OFFSET_LINE = 0x2A02
-
-gl_POLYGON_OFFSET_POINT :: GLenum
-gl_POLYGON_OFFSET_POINT = 0x2A01
-
-gl_POLYGON_OFFSET_UNITS :: GLenum
-gl_POLYGON_OFFSET_UNITS = 0x2A00
-
-gl_POLYGON_SMOOTH :: GLenum
-gl_POLYGON_SMOOTH = 0x0B41
-
-gl_POLYGON_SMOOTH_HINT :: GLenum
-gl_POLYGON_SMOOTH_HINT = 0x0C53
-
-gl_PRIMITIVES_GENERATED :: GLenum
-gl_PRIMITIVES_GENERATED = 0x8C87
-
-gl_PRIMITIVE_RESTART :: GLenum
-gl_PRIMITIVE_RESTART = 0x8F9D
-
-gl_PRIMITIVE_RESTART_INDEX :: GLenum
-gl_PRIMITIVE_RESTART_INDEX = 0x8F9E
-
-gl_PROXY_TEXTURE_1D :: GLenum
-gl_PROXY_TEXTURE_1D = 0x8063
-
-gl_PROXY_TEXTURE_1D_ARRAY :: GLenum
-gl_PROXY_TEXTURE_1D_ARRAY = 0x8C19
-
-gl_PROXY_TEXTURE_2D :: GLenum
-gl_PROXY_TEXTURE_2D = 0x8064
-
-gl_PROXY_TEXTURE_2D_ARRAY :: GLenum
-gl_PROXY_TEXTURE_2D_ARRAY = 0x8C1B
-
-gl_PROXY_TEXTURE_3D :: GLenum
-gl_PROXY_TEXTURE_3D = 0x8070
-
-gl_PROXY_TEXTURE_CUBE_MAP :: GLenum
-gl_PROXY_TEXTURE_CUBE_MAP = 0x851B
-
-gl_QUERY_BY_REGION_NO_WAIT :: GLenum
-gl_QUERY_BY_REGION_NO_WAIT = 0x8E16
-
-gl_QUERY_BY_REGION_WAIT :: GLenum
-gl_QUERY_BY_REGION_WAIT = 0x8E15
-
-gl_QUERY_COUNTER_BITS :: GLenum
-gl_QUERY_COUNTER_BITS = 0x8864
-
-gl_QUERY_NO_WAIT :: GLenum
-gl_QUERY_NO_WAIT = 0x8E14
-
-gl_QUERY_RESULT :: GLenum
-gl_QUERY_RESULT = 0x8866
-
-gl_QUERY_RESULT_AVAILABLE :: GLenum
-gl_QUERY_RESULT_AVAILABLE = 0x8867
-
-gl_QUERY_WAIT :: GLenum
-gl_QUERY_WAIT = 0x8E13
-
-gl_R11F_G11F_B10F :: GLenum
-gl_R11F_G11F_B10F = 0x8C3A
-
-gl_R16 :: GLenum
-gl_R16 = 0x822A
-
-gl_R16F :: GLenum
-gl_R16F = 0x822D
-
-gl_R16I :: GLenum
-gl_R16I = 0x8233
-
-gl_R16UI :: GLenum
-gl_R16UI = 0x8234
-
-gl_R16_SNORM :: GLenum
-gl_R16_SNORM = 0x8F98
-
-gl_R32F :: GLenum
-gl_R32F = 0x822E
-
-gl_R32I :: GLenum
-gl_R32I = 0x8235
-
-gl_R32UI :: GLenum
-gl_R32UI = 0x8236
-
-gl_R3_G3_B2 :: GLenum
-gl_R3_G3_B2 = 0x2A10
-
-gl_R8 :: GLenum
-gl_R8 = 0x8229
-
-gl_R8I :: GLenum
-gl_R8I = 0x8231
-
-gl_R8UI :: GLenum
-gl_R8UI = 0x8232
-
-gl_R8_SNORM :: GLenum
-gl_R8_SNORM = 0x8F94
-
-gl_RASTERIZER_DISCARD :: GLenum
-gl_RASTERIZER_DISCARD = 0x8C89
-
-gl_READ_BUFFER :: GLenum
-gl_READ_BUFFER = 0x0C02
-
-gl_READ_FRAMEBUFFER :: GLenum
-gl_READ_FRAMEBUFFER = 0x8CA8
-
-gl_READ_FRAMEBUFFER_BINDING :: GLenum
-gl_READ_FRAMEBUFFER_BINDING = 0x8CAA
-
-gl_READ_ONLY :: GLenum
-gl_READ_ONLY = 0x88B8
-
-gl_READ_WRITE :: GLenum
-gl_READ_WRITE = 0x88BA
-
-gl_RED :: GLenum
-gl_RED = 0x1903
-
-gl_RED_INTEGER :: GLenum
-gl_RED_INTEGER = 0x8D94
-
-gl_RED_SNORM :: GLenum
-gl_RED_SNORM = 0x8F90
-
-gl_RENDERBUFFER :: GLenum
-gl_RENDERBUFFER = 0x8D41
-
-gl_RENDERBUFFER_ALPHA_SIZE :: GLenum
-gl_RENDERBUFFER_ALPHA_SIZE = 0x8D53
-
-gl_RENDERBUFFER_BINDING :: GLenum
-gl_RENDERBUFFER_BINDING = 0x8CA7
-
-gl_RENDERBUFFER_BLUE_SIZE :: GLenum
-gl_RENDERBUFFER_BLUE_SIZE = 0x8D52
-
-gl_RENDERBUFFER_DEPTH_SIZE :: GLenum
-gl_RENDERBUFFER_DEPTH_SIZE = 0x8D54
-
-gl_RENDERBUFFER_GREEN_SIZE :: GLenum
-gl_RENDERBUFFER_GREEN_SIZE = 0x8D51
-
-gl_RENDERBUFFER_HEIGHT :: GLenum
-gl_RENDERBUFFER_HEIGHT = 0x8D43
-
-gl_RENDERBUFFER_INTERNAL_FORMAT :: GLenum
-gl_RENDERBUFFER_INTERNAL_FORMAT = 0x8D44
-
-gl_RENDERBUFFER_RED_SIZE :: GLenum
-gl_RENDERBUFFER_RED_SIZE = 0x8D50
-
-gl_RENDERBUFFER_SAMPLES :: GLenum
-gl_RENDERBUFFER_SAMPLES = 0x8CAB
-
-gl_RENDERBUFFER_STENCIL_SIZE :: GLenum
-gl_RENDERBUFFER_STENCIL_SIZE = 0x8D55
-
-gl_RENDERBUFFER_WIDTH :: GLenum
-gl_RENDERBUFFER_WIDTH = 0x8D42
-
-gl_RENDERER :: GLenum
-gl_RENDERER = 0x1F01
-
-gl_REPEAT :: GLenum
-gl_REPEAT = 0x2901
-
-gl_REPLACE :: GLenum
-gl_REPLACE = 0x1E01
-
-gl_RG :: GLenum
-gl_RG = 0x8227
-
-gl_RG16 :: GLenum
-gl_RG16 = 0x822C
-
-gl_RG16F :: GLenum
-gl_RG16F = 0x822F
-
-gl_RG16I :: GLenum
-gl_RG16I = 0x8239
-
-gl_RG16UI :: GLenum
-gl_RG16UI = 0x823A
-
-gl_RG16_SNORM :: GLenum
-gl_RG16_SNORM = 0x8F99
-
-gl_RG32F :: GLenum
-gl_RG32F = 0x8230
-
-gl_RG32I :: GLenum
-gl_RG32I = 0x823B
-
-gl_RG32UI :: GLenum
-gl_RG32UI = 0x823C
-
-gl_RG8 :: GLenum
-gl_RG8 = 0x822B
-
-gl_RG8I :: GLenum
-gl_RG8I = 0x8237
-
-gl_RG8UI :: GLenum
-gl_RG8UI = 0x8238
-
-gl_RG8_SNORM :: GLenum
-gl_RG8_SNORM = 0x8F95
-
-gl_RGB :: GLenum
-gl_RGB = 0x1907
-
-gl_RGB10 :: GLenum
-gl_RGB10 = 0x8052
-
-gl_RGB10_A2 :: GLenum
-gl_RGB10_A2 = 0x8059
-
-gl_RGB12 :: GLenum
-gl_RGB12 = 0x8053
-
-gl_RGB16 :: GLenum
-gl_RGB16 = 0x8054
-
-gl_RGB16F :: GLenum
-gl_RGB16F = 0x881B
-
-gl_RGB16I :: GLenum
-gl_RGB16I = 0x8D89
-
-gl_RGB16UI :: GLenum
-gl_RGB16UI = 0x8D77
-
-gl_RGB16_SNORM :: GLenum
-gl_RGB16_SNORM = 0x8F9A
-
-gl_RGB32F :: GLenum
-gl_RGB32F = 0x8815
-
-gl_RGB32I :: GLenum
-gl_RGB32I = 0x8D83
-
-gl_RGB32UI :: GLenum
-gl_RGB32UI = 0x8D71
-
-gl_RGB4 :: GLenum
-gl_RGB4 = 0x804F
-
-gl_RGB5 :: GLenum
-gl_RGB5 = 0x8050
-
-gl_RGB5_A1 :: GLenum
-gl_RGB5_A1 = 0x8057
-
-gl_RGB8 :: GLenum
-gl_RGB8 = 0x8051
-
-gl_RGB8I :: GLenum
-gl_RGB8I = 0x8D8F
-
-gl_RGB8UI :: GLenum
-gl_RGB8UI = 0x8D7D
-
-gl_RGB8_SNORM :: GLenum
-gl_RGB8_SNORM = 0x8F96
-
-gl_RGB9_E5 :: GLenum
-gl_RGB9_E5 = 0x8C3D
-
-gl_RGBA :: GLenum
-gl_RGBA = 0x1908
-
-gl_RGBA12 :: GLenum
-gl_RGBA12 = 0x805A
-
-gl_RGBA16 :: GLenum
-gl_RGBA16 = 0x805B
-
-gl_RGBA16F :: GLenum
-gl_RGBA16F = 0x881A
-
-gl_RGBA16I :: GLenum
-gl_RGBA16I = 0x8D88
-
-gl_RGBA16UI :: GLenum
-gl_RGBA16UI = 0x8D76
-
-gl_RGBA16_SNORM :: GLenum
-gl_RGBA16_SNORM = 0x8F9B
-
-gl_RGBA2 :: GLenum
-gl_RGBA2 = 0x8055
-
-gl_RGBA32F :: GLenum
-gl_RGBA32F = 0x8814
-
-gl_RGBA32I :: GLenum
-gl_RGBA32I = 0x8D82
-
-gl_RGBA32UI :: GLenum
-gl_RGBA32UI = 0x8D70
-
-gl_RGBA4 :: GLenum
-gl_RGBA4 = 0x8056
-
-gl_RGBA8 :: GLenum
-gl_RGBA8 = 0x8058
-
-gl_RGBA8I :: GLenum
-gl_RGBA8I = 0x8D8E
-
-gl_RGBA8UI :: GLenum
-gl_RGBA8UI = 0x8D7C
-
-gl_RGBA8_SNORM :: GLenum
-gl_RGBA8_SNORM = 0x8F97
-
-gl_RGBA_INTEGER :: GLenum
-gl_RGBA_INTEGER = 0x8D99
-
-gl_RGBA_SNORM :: GLenum
-gl_RGBA_SNORM = 0x8F93
-
-gl_RGB_INTEGER :: GLenum
-gl_RGB_INTEGER = 0x8D98
-
-gl_RGB_SNORM :: GLenum
-gl_RGB_SNORM = 0x8F92
-
-gl_RG_INTEGER :: GLenum
-gl_RG_INTEGER = 0x8228
-
-gl_RG_SNORM :: GLenum
-gl_RG_SNORM = 0x8F91
-
-gl_RIGHT :: GLenum
-gl_RIGHT = 0x0407
-
-gl_SAMPLER_1D :: GLenum
-gl_SAMPLER_1D = 0x8B5D
-
-gl_SAMPLER_1D_ARRAY :: GLenum
-gl_SAMPLER_1D_ARRAY = 0x8DC0
-
-gl_SAMPLER_1D_ARRAY_SHADOW :: GLenum
-gl_SAMPLER_1D_ARRAY_SHADOW = 0x8DC3
-
-gl_SAMPLER_1D_SHADOW :: GLenum
-gl_SAMPLER_1D_SHADOW = 0x8B61
-
-gl_SAMPLER_2D :: GLenum
-gl_SAMPLER_2D = 0x8B5E
-
-gl_SAMPLER_2D_ARRAY :: GLenum
-gl_SAMPLER_2D_ARRAY = 0x8DC1
-
-gl_SAMPLER_2D_ARRAY_SHADOW :: GLenum
-gl_SAMPLER_2D_ARRAY_SHADOW = 0x8DC4
-
-gl_SAMPLER_2D_SHADOW :: GLenum
-gl_SAMPLER_2D_SHADOW = 0x8B62
-
-gl_SAMPLER_3D :: GLenum
-gl_SAMPLER_3D = 0x8B5F
-
-gl_SAMPLER_BUFFER :: GLenum
-gl_SAMPLER_BUFFER = 0x8DC2
-
-gl_SAMPLER_CUBE :: GLenum
-gl_SAMPLER_CUBE = 0x8B60
-
-gl_SAMPLER_CUBE_SHADOW :: GLenum
-gl_SAMPLER_CUBE_SHADOW = 0x8DC5
-
-gl_SAMPLES :: GLenum
-gl_SAMPLES = 0x80A9
-
-gl_SAMPLES_PASSED :: GLenum
-gl_SAMPLES_PASSED = 0x8914
-
-gl_SAMPLE_ALPHA_TO_COVERAGE :: GLenum
-gl_SAMPLE_ALPHA_TO_COVERAGE = 0x809E
-
-gl_SAMPLE_ALPHA_TO_ONE :: GLenum
-gl_SAMPLE_ALPHA_TO_ONE = 0x809F
-
-gl_SAMPLE_BUFFERS :: GLenum
-gl_SAMPLE_BUFFERS = 0x80A8
-
-gl_SAMPLE_COVERAGE :: GLenum
-gl_SAMPLE_COVERAGE = 0x80A0
-
-gl_SAMPLE_COVERAGE_INVERT :: GLenum
-gl_SAMPLE_COVERAGE_INVERT = 0x80AB
-
-gl_SAMPLE_COVERAGE_VALUE :: GLenum
-gl_SAMPLE_COVERAGE_VALUE = 0x80AA
-
-gl_SCISSOR_BOX :: GLenum
-gl_SCISSOR_BOX = 0x0C10
-
-gl_SCISSOR_TEST :: GLenum
-gl_SCISSOR_TEST = 0x0C11
-
-gl_SEPARATE_ATTRIBS :: GLenum
-gl_SEPARATE_ATTRIBS = 0x8C8D
-
-gl_SET :: GLenum
-gl_SET = 0x150F
-
-gl_SHADER_SOURCE_LENGTH :: GLenum
-gl_SHADER_SOURCE_LENGTH = 0x8B88
-
-gl_SHADER_TYPE :: GLenum
-gl_SHADER_TYPE = 0x8B4F
-
-gl_SHADING_LANGUAGE_VERSION :: GLenum
-gl_SHADING_LANGUAGE_VERSION = 0x8B8C
-
-gl_SHORT :: GLenum
-gl_SHORT = 0x1402
-
-gl_SIGNED_NORMALIZED :: GLenum
-gl_SIGNED_NORMALIZED = 0x8F9C
-
-gl_SMOOTH_LINE_WIDTH_GRANULARITY :: GLenum
-gl_SMOOTH_LINE_WIDTH_GRANULARITY = 0x0B23
-
-gl_SMOOTH_LINE_WIDTH_RANGE :: GLenum
-gl_SMOOTH_LINE_WIDTH_RANGE = 0x0B22
-
-gl_SMOOTH_POINT_SIZE_GRANULARITY :: GLenum
-gl_SMOOTH_POINT_SIZE_GRANULARITY = 0x0B13
-
-gl_SMOOTH_POINT_SIZE_RANGE :: GLenum
-gl_SMOOTH_POINT_SIZE_RANGE = 0x0B12
-
-gl_SRC_ALPHA :: GLenum
-gl_SRC_ALPHA = 0x0302
-
-gl_SRC_ALPHA_SATURATE :: GLenum
-gl_SRC_ALPHA_SATURATE = 0x0308
-
-gl_SRC_COLOR :: GLenum
-gl_SRC_COLOR = 0x0300
-
-gl_SRGB :: GLenum
-gl_SRGB = 0x8C40
-
-gl_SRGB8 :: GLenum
-gl_SRGB8 = 0x8C41
-
-gl_SRGB8_ALPHA8 :: GLenum
-gl_SRGB8_ALPHA8 = 0x8C43
-
-gl_SRGB_ALPHA :: GLenum
-gl_SRGB_ALPHA = 0x8C42
-
-gl_STATIC_COPY :: GLenum
-gl_STATIC_COPY = 0x88E6
-
-gl_STATIC_DRAW :: GLenum
-gl_STATIC_DRAW = 0x88E4
-
-gl_STATIC_READ :: GLenum
-gl_STATIC_READ = 0x88E5
-
-gl_STENCIL :: GLenum
-gl_STENCIL = 0x1802
-
-gl_STENCIL_ATTACHMENT :: GLenum
-gl_STENCIL_ATTACHMENT = 0x8D20
-
-gl_STENCIL_BACK_FAIL :: GLenum
-gl_STENCIL_BACK_FAIL = 0x8801
-
-gl_STENCIL_BACK_FUNC :: GLenum
-gl_STENCIL_BACK_FUNC = 0x8800
-
-gl_STENCIL_BACK_PASS_DEPTH_FAIL :: GLenum
-gl_STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802
-
-gl_STENCIL_BACK_PASS_DEPTH_PASS :: GLenum
-gl_STENCIL_BACK_PASS_DEPTH_PASS = 0x8803
-
-gl_STENCIL_BACK_REF :: GLenum
-gl_STENCIL_BACK_REF = 0x8CA3
-
-gl_STENCIL_BACK_VALUE_MASK :: GLenum
-gl_STENCIL_BACK_VALUE_MASK = 0x8CA4
-
-gl_STENCIL_BACK_WRITEMASK :: GLenum
-gl_STENCIL_BACK_WRITEMASK = 0x8CA5
-
-gl_STENCIL_BUFFER :: GLenum
-gl_STENCIL_BUFFER = 0x8224
-
-gl_STENCIL_BUFFER_BIT :: GLenum
-gl_STENCIL_BUFFER_BIT = 0x00000400
-
-gl_STENCIL_CLEAR_VALUE :: GLenum
-gl_STENCIL_CLEAR_VALUE = 0x0B91
-
-gl_STENCIL_FAIL :: GLenum
-gl_STENCIL_FAIL = 0x0B94
-
-gl_STENCIL_FUNC :: GLenum
-gl_STENCIL_FUNC = 0x0B92
-
-gl_STENCIL_INDEX :: GLenum
-gl_STENCIL_INDEX = 0x1901
-
-gl_STENCIL_INDEX1 :: GLenum
-gl_STENCIL_INDEX1 = 0x8D46
-
-gl_STENCIL_INDEX16 :: GLenum
-gl_STENCIL_INDEX16 = 0x8D49
-
-gl_STENCIL_INDEX4 :: GLenum
-gl_STENCIL_INDEX4 = 0x8D47
-
-gl_STENCIL_INDEX8 :: GLenum
-gl_STENCIL_INDEX8 = 0x8D48
-
-gl_STENCIL_PASS_DEPTH_FAIL :: GLenum
-gl_STENCIL_PASS_DEPTH_FAIL = 0x0B95
-
-gl_STENCIL_PASS_DEPTH_PASS :: GLenum
-gl_STENCIL_PASS_DEPTH_PASS = 0x0B96
-
-gl_STENCIL_REF :: GLenum
-gl_STENCIL_REF = 0x0B97
-
-gl_STENCIL_TEST :: GLenum
-gl_STENCIL_TEST = 0x0B90
-
-gl_STENCIL_VALUE_MASK :: GLenum
-gl_STENCIL_VALUE_MASK = 0x0B93
-
-gl_STENCIL_WRITEMASK :: GLenum
-gl_STENCIL_WRITEMASK = 0x0B98
-
-gl_STEREO :: GLenum
-gl_STEREO = 0x0C33
-
-gl_STREAM_COPY :: GLenum
-gl_STREAM_COPY = 0x88E2
-
-gl_STREAM_DRAW :: GLenum
-gl_STREAM_DRAW = 0x88E0
-
-gl_STREAM_READ :: GLenum
-gl_STREAM_READ = 0x88E1
-
-gl_SUBPIXEL_BITS :: GLenum
-gl_SUBPIXEL_BITS = 0x0D50
-
-gl_TEXTURE :: GLenum
-gl_TEXTURE = 0x1702
-
-gl_TEXTURE0 :: GLenum
-gl_TEXTURE0 = 0x84C0
-
-gl_TEXTURE1 :: GLenum
-gl_TEXTURE1 = 0x84C1
-
-gl_TEXTURE10 :: GLenum
-gl_TEXTURE10 = 0x84CA
-
-gl_TEXTURE11 :: GLenum
-gl_TEXTURE11 = 0x84CB
-
-gl_TEXTURE12 :: GLenum
-gl_TEXTURE12 = 0x84CC
-
-gl_TEXTURE13 :: GLenum
-gl_TEXTURE13 = 0x84CD
-
-gl_TEXTURE14 :: GLenum
-gl_TEXTURE14 = 0x84CE
-
-gl_TEXTURE15 :: GLenum
-gl_TEXTURE15 = 0x84CF
-
-gl_TEXTURE16 :: GLenum
-gl_TEXTURE16 = 0x84D0
-
-gl_TEXTURE17 :: GLenum
-gl_TEXTURE17 = 0x84D1
-
-gl_TEXTURE18 :: GLenum
-gl_TEXTURE18 = 0x84D2
-
-gl_TEXTURE19 :: GLenum
-gl_TEXTURE19 = 0x84D3
-
-gl_TEXTURE2 :: GLenum
-gl_TEXTURE2 = 0x84C2
-
-gl_TEXTURE20 :: GLenum
-gl_TEXTURE20 = 0x84D4
-
-gl_TEXTURE21 :: GLenum
-gl_TEXTURE21 = 0x84D5
-
-gl_TEXTURE22 :: GLenum
-gl_TEXTURE22 = 0x84D6
-
-gl_TEXTURE23 :: GLenum
-gl_TEXTURE23 = 0x84D7
-
-gl_TEXTURE24 :: GLenum
-gl_TEXTURE24 = 0x84D8
-
-gl_TEXTURE25 :: GLenum
-gl_TEXTURE25 = 0x84D9
-
-gl_TEXTURE26 :: GLenum
-gl_TEXTURE26 = 0x84DA
-
-gl_TEXTURE27 :: GLenum
-gl_TEXTURE27 = 0x84DB
-
-gl_TEXTURE28 :: GLenum
-gl_TEXTURE28 = 0x84DC
-
-gl_TEXTURE29 :: GLenum
-gl_TEXTURE29 = 0x84DD
-
-gl_TEXTURE3 :: GLenum
-gl_TEXTURE3 = 0x84C3
-
-gl_TEXTURE30 :: GLenum
-gl_TEXTURE30 = 0x84DE
-
-gl_TEXTURE31 :: GLenum
-gl_TEXTURE31 = 0x84DF
-
-gl_TEXTURE4 :: GLenum
-gl_TEXTURE4 = 0x84C4
-
-gl_TEXTURE5 :: GLenum
-gl_TEXTURE5 = 0x84C5
-
-gl_TEXTURE6 :: GLenum
-gl_TEXTURE6 = 0x84C6
-
-gl_TEXTURE7 :: GLenum
-gl_TEXTURE7 = 0x84C7
-
-gl_TEXTURE8 :: GLenum
-gl_TEXTURE8 = 0x84C8
-
-gl_TEXTURE9 :: GLenum
-gl_TEXTURE9 = 0x84C9
-
-gl_TEXTURE_1D :: GLenum
-gl_TEXTURE_1D = 0x0DE0
-
-gl_TEXTURE_1D_ARRAY :: GLenum
-gl_TEXTURE_1D_ARRAY = 0x8C18
-
-gl_TEXTURE_2D :: GLenum
-gl_TEXTURE_2D = 0x0DE1
-
-gl_TEXTURE_2D_ARRAY :: GLenum
-gl_TEXTURE_2D_ARRAY = 0x8C1A
-
-gl_TEXTURE_3D :: GLenum
-gl_TEXTURE_3D = 0x806F
-
-gl_TEXTURE_ALPHA_SIZE :: GLenum
-gl_TEXTURE_ALPHA_SIZE = 0x805F
-
-gl_TEXTURE_ALPHA_TYPE :: GLenum
-gl_TEXTURE_ALPHA_TYPE = 0x8C13
-
-gl_TEXTURE_BASE_LEVEL :: GLenum
-gl_TEXTURE_BASE_LEVEL = 0x813C
-
-gl_TEXTURE_BINDING_1D :: GLenum
-gl_TEXTURE_BINDING_1D = 0x8068
-
-gl_TEXTURE_BINDING_1D_ARRAY :: GLenum
-gl_TEXTURE_BINDING_1D_ARRAY = 0x8C1C
-
-gl_TEXTURE_BINDING_2D :: GLenum
-gl_TEXTURE_BINDING_2D = 0x8069
-
-gl_TEXTURE_BINDING_2D_ARRAY :: GLenum
-gl_TEXTURE_BINDING_2D_ARRAY = 0x8C1D
-
-gl_TEXTURE_BINDING_3D :: GLenum
-gl_TEXTURE_BINDING_3D = 0x806A
-
-gl_TEXTURE_BINDING_CUBE_MAP :: GLenum
-gl_TEXTURE_BINDING_CUBE_MAP = 0x8514
-
-gl_TEXTURE_BLUE_SIZE :: GLenum
-gl_TEXTURE_BLUE_SIZE = 0x805E
-
-gl_TEXTURE_BLUE_TYPE :: GLenum
-gl_TEXTURE_BLUE_TYPE = 0x8C12
-
-gl_TEXTURE_BORDER :: GLenum
-gl_TEXTURE_BORDER = 0x1005
-
-gl_TEXTURE_BORDER_COLOR :: GLenum
-gl_TEXTURE_BORDER_COLOR = 0x1004
-
-gl_TEXTURE_COMPARE_FUNC :: GLenum
-gl_TEXTURE_COMPARE_FUNC = 0x884D
-
-gl_TEXTURE_COMPARE_MODE :: GLenum
-gl_TEXTURE_COMPARE_MODE = 0x884C
-
-gl_TEXTURE_COMPRESSED :: GLenum
-gl_TEXTURE_COMPRESSED = 0x86A1
-
-gl_TEXTURE_COMPRESSED_IMAGE_SIZE :: GLenum
-gl_TEXTURE_COMPRESSED_IMAGE_SIZE = 0x86A0
-
-gl_TEXTURE_COMPRESSION_HINT :: GLenum
-gl_TEXTURE_COMPRESSION_HINT = 0x84EF
-
-gl_TEXTURE_CUBE_MAP :: GLenum
-gl_TEXTURE_CUBE_MAP = 0x8513
-
-gl_TEXTURE_CUBE_MAP_NEGATIVE_X :: GLenum
-gl_TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516
-
-gl_TEXTURE_CUBE_MAP_NEGATIVE_Y :: GLenum
-gl_TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518
-
-gl_TEXTURE_CUBE_MAP_NEGATIVE_Z :: GLenum
-gl_TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A
-
-gl_TEXTURE_CUBE_MAP_POSITIVE_X :: GLenum
-gl_TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515
-
-gl_TEXTURE_CUBE_MAP_POSITIVE_Y :: GLenum
-gl_TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517
-
-gl_TEXTURE_CUBE_MAP_POSITIVE_Z :: GLenum
-gl_TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519
-
-gl_TEXTURE_DEPTH :: GLenum
-gl_TEXTURE_DEPTH = 0x8071
-
-gl_TEXTURE_DEPTH_SIZE :: GLenum
-gl_TEXTURE_DEPTH_SIZE = 0x884A
-
-gl_TEXTURE_DEPTH_TYPE :: GLenum
-gl_TEXTURE_DEPTH_TYPE = 0x8C16
-
-gl_TEXTURE_GREEN_SIZE :: GLenum
-gl_TEXTURE_GREEN_SIZE = 0x805D
-
-gl_TEXTURE_GREEN_TYPE :: GLenum
-gl_TEXTURE_GREEN_TYPE = 0x8C11
-
-gl_TEXTURE_HEIGHT :: GLenum
-gl_TEXTURE_HEIGHT = 0x1001
-
-gl_TEXTURE_INTERNAL_FORMAT :: GLenum
-gl_TEXTURE_INTERNAL_FORMAT = 0x1003
-
-gl_TEXTURE_LOD_BIAS :: GLenum
-gl_TEXTURE_LOD_BIAS = 0x8501
-
-gl_TEXTURE_MAG_FILTER :: GLenum
-gl_TEXTURE_MAG_FILTER = 0x2800
-
-gl_TEXTURE_MAX_LEVEL :: GLenum
-gl_TEXTURE_MAX_LEVEL = 0x813D
-
-gl_TEXTURE_MAX_LOD :: GLenum
-gl_TEXTURE_MAX_LOD = 0x813B
-
-gl_TEXTURE_MIN_FILTER :: GLenum
-gl_TEXTURE_MIN_FILTER = 0x2801
-
-gl_TEXTURE_MIN_LOD :: GLenum
-gl_TEXTURE_MIN_LOD = 0x813A
-
-gl_TEXTURE_RED_SIZE :: GLenum
-gl_TEXTURE_RED_SIZE = 0x805C
-
-gl_TEXTURE_RED_TYPE :: GLenum
-gl_TEXTURE_RED_TYPE = 0x8C10
-
-gl_TEXTURE_SHARED_SIZE :: GLenum
-gl_TEXTURE_SHARED_SIZE = 0x8C3F
-
-gl_TEXTURE_STENCIL_SIZE :: GLenum
-gl_TEXTURE_STENCIL_SIZE = 0x88F1
-
-gl_TEXTURE_WIDTH :: GLenum
-gl_TEXTURE_WIDTH = 0x1000
-
-gl_TEXTURE_WRAP_R :: GLenum
-gl_TEXTURE_WRAP_R = 0x8072
-
-gl_TEXTURE_WRAP_S :: GLenum
-gl_TEXTURE_WRAP_S = 0x2802
-
-gl_TEXTURE_WRAP_T :: GLenum
-gl_TEXTURE_WRAP_T = 0x2803
-
-gl_TRANSFORM_FEEDBACK_BUFFER :: GLenum
-gl_TRANSFORM_FEEDBACK_BUFFER = 0x8C8E
-
-gl_TRANSFORM_FEEDBACK_BUFFER_BINDING :: GLenum
-gl_TRANSFORM_FEEDBACK_BUFFER_BINDING = 0x8C8F
-
-gl_TRANSFORM_FEEDBACK_BUFFER_MODE :: GLenum
-gl_TRANSFORM_FEEDBACK_BUFFER_MODE = 0x8C7F
-
-gl_TRANSFORM_FEEDBACK_BUFFER_SIZE :: GLenum
-gl_TRANSFORM_FEEDBACK_BUFFER_SIZE = 0x8C85
-
-gl_TRANSFORM_FEEDBACK_BUFFER_START :: GLenum
-gl_TRANSFORM_FEEDBACK_BUFFER_START = 0x8C84
-
-gl_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN :: GLenum
-gl_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = 0x8C88
-
-gl_TRANSFORM_FEEDBACK_VARYINGS :: GLenum
-gl_TRANSFORM_FEEDBACK_VARYINGS = 0x8C83
-
-gl_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH :: GLenum
-gl_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH = 0x8C76
-
-gl_TRIANGLES :: GLenum
-gl_TRIANGLES = 0x0004
-
-gl_TRIANGLE_FAN :: GLenum
-gl_TRIANGLE_FAN = 0x0006
-
-gl_TRIANGLE_STRIP :: GLenum
-gl_TRIANGLE_STRIP = 0x0005
-
-gl_TRUE :: GLenum
-gl_TRUE = 1
-
-gl_UNPACK_ALIGNMENT :: GLenum
-gl_UNPACK_ALIGNMENT = 0x0CF5
-
-gl_UNPACK_IMAGE_HEIGHT :: GLenum
-gl_UNPACK_IMAGE_HEIGHT = 0x806E
-
-gl_UNPACK_LSB_FIRST :: GLenum
-gl_UNPACK_LSB_FIRST = 0x0CF1
-
-gl_UNPACK_ROW_LENGTH :: GLenum
-gl_UNPACK_ROW_LENGTH = 0x0CF2
-
-gl_UNPACK_SKIP_IMAGES :: GLenum
-gl_UNPACK_SKIP_IMAGES = 0x806D
-
-gl_UNPACK_SKIP_PIXELS :: GLenum
-gl_UNPACK_SKIP_PIXELS = 0x0CF4
-
-gl_UNPACK_SKIP_ROWS :: GLenum
-gl_UNPACK_SKIP_ROWS = 0x0CF3
-
-gl_UNPACK_SWAP_BYTES :: GLenum
-gl_UNPACK_SWAP_BYTES = 0x0CF0
-
-gl_UNSIGNED_BYTE :: GLenum
-gl_UNSIGNED_BYTE = 0x1401
-
-gl_UNSIGNED_BYTE_2_3_3_REV :: GLenum
-gl_UNSIGNED_BYTE_2_3_3_REV = 0x8362
-
-gl_UNSIGNED_BYTE_3_3_2 :: GLenum
-gl_UNSIGNED_BYTE_3_3_2 = 0x8032
-
-gl_UNSIGNED_INT :: GLenum
-gl_UNSIGNED_INT = 0x1405
-
-gl_UNSIGNED_INT_10F_11F_11F_REV :: GLenum
-gl_UNSIGNED_INT_10F_11F_11F_REV = 0x8C3B
-
-gl_UNSIGNED_INT_10_10_10_2 :: GLenum
-gl_UNSIGNED_INT_10_10_10_2 = 0x8036
-
-gl_UNSIGNED_INT_24_8 :: GLenum
-gl_UNSIGNED_INT_24_8 = 0x84FA
-
-gl_UNSIGNED_INT_2_10_10_10_REV :: GLenum
-gl_UNSIGNED_INT_2_10_10_10_REV = 0x8368
-
-gl_UNSIGNED_INT_5_9_9_9_REV :: GLenum
-gl_UNSIGNED_INT_5_9_9_9_REV = 0x8C3E
-
-gl_UNSIGNED_INT_8_8_8_8 :: GLenum
-gl_UNSIGNED_INT_8_8_8_8 = 0x8035
-
-gl_UNSIGNED_INT_8_8_8_8_REV :: GLenum
-gl_UNSIGNED_INT_8_8_8_8_REV = 0x8367
-
-gl_UNSIGNED_INT_SAMPLER_1D :: GLenum
-gl_UNSIGNED_INT_SAMPLER_1D = 0x8DD1
-
-gl_UNSIGNED_INT_SAMPLER_1D_ARRAY :: GLenum
-gl_UNSIGNED_INT_SAMPLER_1D_ARRAY = 0x8DD6
-
-gl_UNSIGNED_INT_SAMPLER_2D :: GLenum
-gl_UNSIGNED_INT_SAMPLER_2D = 0x8DD2
-
-gl_UNSIGNED_INT_SAMPLER_2D_ARRAY :: GLenum
-gl_UNSIGNED_INT_SAMPLER_2D_ARRAY = 0x8DD7
-
-gl_UNSIGNED_INT_SAMPLER_2D_RECT :: GLenum
-gl_UNSIGNED_INT_SAMPLER_2D_RECT = 0x8DD5
-
-gl_UNSIGNED_INT_SAMPLER_3D :: GLenum
-gl_UNSIGNED_INT_SAMPLER_3D = 0x8DD3
-
-gl_UNSIGNED_INT_SAMPLER_BUFFER :: GLenum
-gl_UNSIGNED_INT_SAMPLER_BUFFER = 0x8DD8
-
-gl_UNSIGNED_INT_SAMPLER_CUBE :: GLenum
-gl_UNSIGNED_INT_SAMPLER_CUBE = 0x8DD4
-
-gl_UNSIGNED_INT_VEC2 :: GLenum
-gl_UNSIGNED_INT_VEC2 = 0x8DC6
-
-gl_UNSIGNED_INT_VEC3 :: GLenum
-gl_UNSIGNED_INT_VEC3 = 0x8DC7
-
-gl_UNSIGNED_INT_VEC4 :: GLenum
-gl_UNSIGNED_INT_VEC4 = 0x8DC8
-
-gl_UNSIGNED_NORMALIZED :: GLenum
-gl_UNSIGNED_NORMALIZED = 0x8C17
-
-gl_UNSIGNED_SHORT :: GLenum
-gl_UNSIGNED_SHORT = 0x1403
-
-gl_UNSIGNED_SHORT_1_5_5_5_REV :: GLenum
-gl_UNSIGNED_SHORT_1_5_5_5_REV = 0x8366
-
-gl_UNSIGNED_SHORT_4_4_4_4 :: GLenum
-gl_UNSIGNED_SHORT_4_4_4_4 = 0x8033
-
-gl_UNSIGNED_SHORT_4_4_4_4_REV :: GLenum
-gl_UNSIGNED_SHORT_4_4_4_4_REV = 0x8365
-
-gl_UNSIGNED_SHORT_5_5_5_1 :: GLenum
-gl_UNSIGNED_SHORT_5_5_5_1 = 0x8034
-
-gl_UNSIGNED_SHORT_5_6_5 :: GLenum
-gl_UNSIGNED_SHORT_5_6_5 = 0x8363
-
-gl_UNSIGNED_SHORT_5_6_5_REV :: GLenum
-gl_UNSIGNED_SHORT_5_6_5_REV = 0x8364
-
-gl_UPPER_LEFT :: GLenum
-gl_UPPER_LEFT = 0x8CA2
-
-gl_VALIDATE_STATUS :: GLenum
-gl_VALIDATE_STATUS = 0x8B83
-
-gl_VENDOR :: GLenum
-gl_VENDOR = 0x1F00
-
-gl_VERSION :: GLenum
-gl_VERSION = 0x1F02
-
-gl_VERTEX_ARRAY_BINDING :: GLenum
-gl_VERTEX_ARRAY_BINDING = 0x85B5
-
-gl_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING :: GLenum
-gl_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F
-
-gl_VERTEX_ATTRIB_ARRAY_ENABLED :: GLenum
-gl_VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622
-
-gl_VERTEX_ATTRIB_ARRAY_INTEGER :: GLenum
-gl_VERTEX_ATTRIB_ARRAY_INTEGER = 0x88FD
-
-gl_VERTEX_ATTRIB_ARRAY_NORMALIZED :: GLenum
-gl_VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A
-
-gl_VERTEX_ATTRIB_ARRAY_POINTER :: GLenum
-gl_VERTEX_ATTRIB_ARRAY_POINTER = 0x8645
-
-gl_VERTEX_ATTRIB_ARRAY_SIZE :: GLenum
-gl_VERTEX_ATTRIB_ARRAY_SIZE = 0x8623
-
-gl_VERTEX_ATTRIB_ARRAY_STRIDE :: GLenum
-gl_VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624
-
-gl_VERTEX_ATTRIB_ARRAY_TYPE :: GLenum
-gl_VERTEX_ATTRIB_ARRAY_TYPE = 0x8625
-
-gl_VERTEX_PROGRAM_POINT_SIZE :: GLenum
-gl_VERTEX_PROGRAM_POINT_SIZE = 0x8642
-
-gl_VERTEX_SHADER :: GLenum
-gl_VERTEX_SHADER = 0x8B31
-
-gl_VIEWPORT :: GLenum
-gl_VIEWPORT = 0x0BA2
-
-gl_WRITE_ONLY :: GLenum
-gl_WRITE_ONLY = 0x88B9
-
-gl_XOR :: GLenum
-gl_XOR = 0x1506
-
-gl_ZERO :: GLenum
-gl_ZERO = 0
diff --git a/src/Graphics/Rendering/OpenGL/Raw/Core31/Types.hs b/src/Graphics/Rendering/OpenGL/Raw/Core31/Types.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/Core31/Types.hs
+++ /dev/null
@@ -1,39 +0,0 @@
--- #hide
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.Core31.Types
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All types from the OpenGL 3.1 core, see <http://www.opengl.org/registry/>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.Core31.Types (
-   GLbitfield,
-   GLboolean,
-   GLbyte,
-   GLchar,
-   GLclampd,
-   GLclampf,
-   GLdouble,
-   GLenum,
-   GLfloat,
-   GLhalf,
-   GLint,
-   GLintptr,
-   GLshort,
-   GLsizei,
-   GLsizeiptr,
-   GLubyte,
-   GLuint,
-   GLushort
-) where
-
--- Just re-export the types in an opaque way, without introducing any warnings
--- about unused constructors.
-import Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
diff --git a/src/Graphics/Rendering/OpenGL/Raw/Core31/TypesInternal.hs b/src/Graphics/Rendering/OpenGL/Raw/Core31/TypesInternal.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/Core31/TypesInternal.hs
+++ /dev/null
@@ -1,61 +0,0 @@
-{-# LANGUAGE CPP #-}
-{-# OPTIONS_GHC -XMagicHash -XGeneralizedNewtypeDeriving #-}
--- #hide
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All types from the OpenGL 3.1 core, see <http://www.opengl.org/registry/>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal where
-
-import Data.Bits
-import Data.Int
-import Data.Word
-import Data.Typeable
-import Foreign.C.Types
-import Foreign.Ptr
-import Foreign.Storable
-
-#ifdef __GLASGOW_HASKELL__
-import GHC.Prim
-#else
-import Control.Monad
-import Foreign.Ptr
-#endif
-
-#include "CTypes.h"
-
-INTEGRAL_TYPE(GLbitfield,tyConGLbitfield,"GLbitfield",CUInt)
-INTEGRAL_TYPE(GLboolean,tyConGLboolean,"GLboolean",CUChar)
-INTEGRAL_TYPE(GLbyte,tyConGLbyte,"GLbyte",CSChar)
-INTEGRAL_TYPE(GLchar,tyConGLchar,"GLchar",CChar)
-FLOATING_TYPE(GLclampd,tyConGLclampd,"GLclampd",CDouble)
-FLOATING_TYPE(GLclampf,tyConGLclampf,"GLclampf",CFloat)
-FLOATING_TYPE(GLdouble,tyConGLdouble,"GLdouble",CDouble)
-INTEGRAL_TYPE(GLenum,tyConGLenum,"GLenum",CUInt)
-FLOATING_TYPE(GLfloat,tyConGLfloat,"GLfloat",CFloat)
-INTEGRAL_TYPE(GLhalf,tyConGLhalf,"GLhalf",CUShort)
-INTEGRAL_TYPE(GLint,tyConGLint,"GLint",CInt)
-INTEGRAL_TYPE(GLintptr,tyConGLintptr,"GLintptr",CPtrdiff)
-INTEGRAL_TYPE(GLshort,tyConGLshort,"GLshort",CShort)
-INTEGRAL_TYPE(GLsizei,tyConGLsizei,"GLsizei",CInt)
-INTEGRAL_TYPE(GLsizeiptr,tyConGLsizeiptr,"GLsizeiptr",CPtrdiff)
-INTEGRAL_TYPE(GLubyte,tyConGLubyte,"GLubyte",CUChar)
-INTEGRAL_TYPE(GLuint,tyConGLuint,"GLuint",CUInt)
-INTEGRAL_TYPE(GLushort,tyConGLushort,"GLushort",CUShort)
-INTEGRAL_TYPE(GLint64,tyConGLint64,"GLint64",Int64)
-INTEGRAL_TYPE(GLuint64,tyConGLuint64,"GLuint64",Word64)
-
-newtype GLsync = GLSync (Ptr GLsync)
-
--- Not part of the core, but it is very handy to define this here
-INTEGRAL_TYPE(GLhandle,tyConGLhandle,"GLhandle",CUInt)
diff --git a/src/Graphics/Rendering/OpenGL/Raw/Core32.hs b/src/Graphics/Rendering/OpenGL/Raw/Core32.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/Core32.hs
+++ /dev/null
@@ -1,43 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.Core32
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions, tokens and types from the OpenGL 3.2 core, see
--- <http://www.opengl.org/registry/>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.Core32 (
-   -- * OpenGL 3.1 core
-   module Graphics.Rendering.OpenGL.Raw.Core31,
-   -- * Extensions which had some hidden entitites in OpenGL 3.1 core
-   module Graphics.Rendering.OpenGL.Raw.ARB.UniformBufferObject,
-   -- * Extensions promoted to OpenGL 3.2 core
-   module Graphics.Rendering.OpenGL.Raw.ARB.CreateContextProfile,
-   module Graphics.Rendering.OpenGL.Raw.ARB.DrawElementsBaseVertex,
-   module Graphics.Rendering.OpenGL.Raw.ARB.ProvokingVertex,
-   module Graphics.Rendering.OpenGL.Raw.ARB.SeamlessCubeMap,
-   module Graphics.Rendering.OpenGL.Raw.ARB.TextureMultisample,
-   module Graphics.Rendering.OpenGL.Raw.ARB.DepthClamp,
-   module Graphics.Rendering.OpenGL.Raw.ARB.GeometryShader4,
-   module Graphics.Rendering.OpenGL.Raw.ARB.Sync
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core31
-
-import Graphics.Rendering.OpenGL.Raw.ARB.UniformBufferObject
-
-import Graphics.Rendering.OpenGL.Raw.ARB.CreateContextProfile
-import Graphics.Rendering.OpenGL.Raw.ARB.DrawElementsBaseVertex
-import Graphics.Rendering.OpenGL.Raw.ARB.ProvokingVertex
-import Graphics.Rendering.OpenGL.Raw.ARB.SeamlessCubeMap
-import Graphics.Rendering.OpenGL.Raw.ARB.TextureMultisample
-import Graphics.Rendering.OpenGL.Raw.ARB.DepthClamp
-import Graphics.Rendering.OpenGL.Raw.ARB.GeometryShader4
-import Graphics.Rendering.OpenGL.Raw.ARB.Sync
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT.hs
+++ /dev/null
@@ -1,195 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- A convenience module, combining all raw modules containing EXT extensions.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT (
-   module Graphics.Rendering.OpenGL.Raw.EXT.Abgr,
-   module Graphics.Rendering.OpenGL.Raw.EXT.BlendColor,
-   module Graphics.Rendering.OpenGL.Raw.EXT.PolygonOffset,
-   module Graphics.Rendering.OpenGL.Raw.EXT.Texture,
-   module Graphics.Rendering.OpenGL.Raw.EXT.Texture3D,
-   module Graphics.Rendering.OpenGL.Raw.EXT.Subtexture,
-   module Graphics.Rendering.OpenGL.Raw.EXT.CopyTexture,
-   module Graphics.Rendering.OpenGL.Raw.EXT.Histogram,
-   module Graphics.Rendering.OpenGL.Raw.EXT.Convolution,
-   module Graphics.Rendering.OpenGL.Raw.EXT.Cmyka,
-   module Graphics.Rendering.OpenGL.Raw.EXT.TextureObject,
-   module Graphics.Rendering.OpenGL.Raw.EXT.PackedPixels,
-   module Graphics.Rendering.OpenGL.Raw.EXT.RescaleNormal,
-   module Graphics.Rendering.OpenGL.Raw.EXT.VertexArray,
-   -- module Graphics.Rendering.OpenGL.Raw.EXT.MiscAttribute,
-   module Graphics.Rendering.OpenGL.Raw.EXT.BlendMinmax,
-   module Graphics.Rendering.OpenGL.Raw.EXT.BlendSubtract,
-   -- module Graphics.Rendering.OpenGL.Raw.EXT.BlendLogicOp,
-   module Graphics.Rendering.OpenGL.Raw.EXT.PointParameters,
-   module Graphics.Rendering.OpenGL.Raw.EXT.ColorSubtable,
-   module Graphics.Rendering.OpenGL.Raw.EXT.PalettedTexture,
-   module Graphics.Rendering.OpenGL.Raw.EXT.ClipVolumeHint,
-   -- module Graphics.Rendering.OpenGL.Raw.EXT.IndexTexture,
-   module Graphics.Rendering.OpenGL.Raw.EXT.IndexMaterial,
-   module Graphics.Rendering.OpenGL.Raw.EXT.IndexFunc,
-   module Graphics.Rendering.OpenGL.Raw.EXT.IndexArrayFormats,
-   module Graphics.Rendering.OpenGL.Raw.EXT.CompiledVertexArray,
-   module Graphics.Rendering.OpenGL.Raw.EXT.CullVertex,
-   module Graphics.Rendering.OpenGL.Raw.EXT.FragmentLighting,
-   module Graphics.Rendering.OpenGL.Raw.EXT.DrawRangeElements,
-   module Graphics.Rendering.OpenGL.Raw.EXT.LightTexture,
-   module Graphics.Rendering.OpenGL.Raw.EXT.SceneMarker,
-   module Graphics.Rendering.OpenGL.Raw.EXT.Bgra,
-   module Graphics.Rendering.OpenGL.Raw.EXT.PixelTransform,
-   -- module Graphics.Rendering.OpenGL.Raw.EXT.PixelTransformColorTable,
-   module Graphics.Rendering.OpenGL.Raw.EXT.SharedTexturePalette,
-   module Graphics.Rendering.OpenGL.Raw.EXT.SeparateSpecularColor,
-   module Graphics.Rendering.OpenGL.Raw.EXT.SecondaryColor,
-   -- module Graphics.Rendering.OpenGL.Raw.EXT.TextureEnv,
-   module Graphics.Rendering.OpenGL.Raw.EXT.TexturePerturbNormal,
-   module Graphics.Rendering.OpenGL.Raw.EXT.MultiDrawArrays,
-   module Graphics.Rendering.OpenGL.Raw.EXT.FogCoord,
-   module Graphics.Rendering.OpenGL.Raw.EXT.CoordinateFrame,
-   module Graphics.Rendering.OpenGL.Raw.EXT.TextureEnvCombine,
-   module Graphics.Rendering.OpenGL.Raw.EXT.BlendFuncSeparate,
-   module Graphics.Rendering.OpenGL.Raw.EXT.StencilWrap,
-   module Graphics.Rendering.OpenGL.Raw.EXT.FourTwoTwoPixels,
-   module Graphics.Rendering.OpenGL.Raw.EXT.TextureEnvAdd,
-   module Graphics.Rendering.OpenGL.Raw.EXT.TextureLodBias,
-   module Graphics.Rendering.OpenGL.Raw.EXT.TextureFilterAnisotropic,
-   module Graphics.Rendering.OpenGL.Raw.EXT.VertexWeighting,
-   module Graphics.Rendering.OpenGL.Raw.EXT.TextureCompressionS3tc,
-   module Graphics.Rendering.OpenGL.Raw.EXT.Multisample,
-   module Graphics.Rendering.OpenGL.Raw.EXT.TextureEnvDot3,
-   module Graphics.Rendering.OpenGL.Raw.EXT.VertexShader,
-   -- module Graphics.Rendering.OpenGL.Raw.EXT.ShadowFuncs,
-   module Graphics.Rendering.OpenGL.Raw.EXT.StencilTwoSide,
-   module Graphics.Rendering.OpenGL.Raw.EXT.DepthBoundsTest,
-   module Graphics.Rendering.OpenGL.Raw.EXT.TextureMirrorClamp,
-   module Graphics.Rendering.OpenGL.Raw.EXT.BlendEquationSeparate,
-   -- module Graphics.Rendering.OpenGL.Raw.EXT.PixelBufferObject,
-   module Graphics.Rendering.OpenGL.Raw.EXT.TextureCompressionDxt1,
-   module Graphics.Rendering.OpenGL.Raw.EXT.FramebufferObject,
-   -- module Graphics.Rendering.OpenGL.Raw.EXT.PackedDepthStencil,
-   module Graphics.Rendering.OpenGL.Raw.EXT.StencilClearTag,
-   module Graphics.Rendering.OpenGL.Raw.EXT.TextureSRGB,
-   -- module Graphics.Rendering.OpenGL.Raw.EXT.FramebufferBlit,
-   -- module Graphics.Rendering.OpenGL.Raw.EXT.FramebufferMultisample,
-   module Graphics.Rendering.OpenGL.Raw.EXT.TimerQuery,
-   module Graphics.Rendering.OpenGL.Raw.EXT.GpuProgramParameters,
-   module Graphics.Rendering.OpenGL.Raw.EXT.GeometryShader4,
-   -- module Graphics.Rendering.OpenGL.Raw.EXT.GpuShader4,
-   -- module Graphics.Rendering.OpenGL.Raw.EXT.DrawInstanced,
-   module Graphics.Rendering.OpenGL.Raw.EXT.PackedFloat,
-   -- module Graphics.Rendering.OpenGL.Raw.EXT.TextureArray,
-   -- module Graphics.Rendering.OpenGL.Raw.EXT.TextureBufferObject,
-   module Graphics.Rendering.OpenGL.Raw.EXT.TextureCompressionLatc,
-   -- module Graphics.Rendering.OpenGL.Raw.EXT.TextureCompressionRgtc,
-   -- module Graphics.Rendering.OpenGL.Raw.EXT.TextureSharedExponent,
-   module Graphics.Rendering.OpenGL.Raw.EXT.FramebufferSRGB,
-   -- module Graphics.Rendering.OpenGL.Raw.EXT.DrawBuffers2,
-   module Graphics.Rendering.OpenGL.Raw.EXT.BindableUniform,
-   module Graphics.Rendering.OpenGL.Raw.EXT.TextureInteger,
-   -- module Graphics.Rendering.OpenGL.Raw.EXT.TransformFeedback,
-   module Graphics.Rendering.OpenGL.Raw.EXT.DirectStateAccess,
-   -- module Graphics.Rendering.OpenGL.Raw.EXT.VertexArrayBgra,
-   module Graphics.Rendering.OpenGL.Raw.EXT.TextureSwizzle,
-   module Graphics.Rendering.OpenGL.Raw.EXT.ProvokingVertex
-   -- module Graphics.Rendering.OpenGL.Raw.EXT.TextureSnorm
-) where
-
-import Graphics.Rendering.OpenGL.Raw.EXT.Abgr
-import Graphics.Rendering.OpenGL.Raw.EXT.BlendColor
-import Graphics.Rendering.OpenGL.Raw.EXT.PolygonOffset
-import Graphics.Rendering.OpenGL.Raw.EXT.Texture
-import Graphics.Rendering.OpenGL.Raw.EXT.Texture3D
-import Graphics.Rendering.OpenGL.Raw.EXT.Subtexture
-import Graphics.Rendering.OpenGL.Raw.EXT.CopyTexture
-import Graphics.Rendering.OpenGL.Raw.EXT.Histogram
-import Graphics.Rendering.OpenGL.Raw.EXT.Convolution
-import Graphics.Rendering.OpenGL.Raw.EXT.Cmyka
-import Graphics.Rendering.OpenGL.Raw.EXT.TextureObject
-import Graphics.Rendering.OpenGL.Raw.EXT.PackedPixels
-import Graphics.Rendering.OpenGL.Raw.EXT.RescaleNormal
-import Graphics.Rendering.OpenGL.Raw.EXT.VertexArray
--- import Graphics.Rendering.OpenGL.Raw.EXT.MiscAttribute
-import Graphics.Rendering.OpenGL.Raw.EXT.BlendMinmax
-import Graphics.Rendering.OpenGL.Raw.EXT.BlendSubtract
--- import Graphics.Rendering.OpenGL.Raw.EXT.BlendLogicOp
-import Graphics.Rendering.OpenGL.Raw.EXT.PointParameters
-import Graphics.Rendering.OpenGL.Raw.EXT.ColorSubtable
-import Graphics.Rendering.OpenGL.Raw.EXT.PalettedTexture
-import Graphics.Rendering.OpenGL.Raw.EXT.ClipVolumeHint
--- import Graphics.Rendering.OpenGL.Raw.EXT.IndexTexture
-import Graphics.Rendering.OpenGL.Raw.EXT.IndexMaterial
-import Graphics.Rendering.OpenGL.Raw.EXT.IndexFunc
-import Graphics.Rendering.OpenGL.Raw.EXT.IndexArrayFormats
-import Graphics.Rendering.OpenGL.Raw.EXT.CompiledVertexArray
-import Graphics.Rendering.OpenGL.Raw.EXT.CullVertex
-import Graphics.Rendering.OpenGL.Raw.EXT.FragmentLighting
-import Graphics.Rendering.OpenGL.Raw.EXT.DrawRangeElements
-import Graphics.Rendering.OpenGL.Raw.EXT.LightTexture
-import Graphics.Rendering.OpenGL.Raw.EXT.SceneMarker
-import Graphics.Rendering.OpenGL.Raw.EXT.Bgra
-import Graphics.Rendering.OpenGL.Raw.EXT.PixelTransform
--- import Graphics.Rendering.OpenGL.Raw.EXT.PixelTransformColorTable
-import Graphics.Rendering.OpenGL.Raw.EXT.SharedTexturePalette
-import Graphics.Rendering.OpenGL.Raw.EXT.SeparateSpecularColor
-import Graphics.Rendering.OpenGL.Raw.EXT.SecondaryColor
--- import Graphics.Rendering.OpenGL.Raw.EXT.TextureEnv
-import Graphics.Rendering.OpenGL.Raw.EXT.TexturePerturbNormal
-import Graphics.Rendering.OpenGL.Raw.EXT.MultiDrawArrays
-import Graphics.Rendering.OpenGL.Raw.EXT.FogCoord
-import Graphics.Rendering.OpenGL.Raw.EXT.CoordinateFrame
-import Graphics.Rendering.OpenGL.Raw.EXT.TextureEnvCombine
-import Graphics.Rendering.OpenGL.Raw.EXT.BlendFuncSeparate
-import Graphics.Rendering.OpenGL.Raw.EXT.StencilWrap
-import Graphics.Rendering.OpenGL.Raw.EXT.FourTwoTwoPixels
-import Graphics.Rendering.OpenGL.Raw.EXT.TextureEnvAdd
-import Graphics.Rendering.OpenGL.Raw.EXT.TextureLodBias
-import Graphics.Rendering.OpenGL.Raw.EXT.TextureFilterAnisotropic
-import Graphics.Rendering.OpenGL.Raw.EXT.VertexWeighting
-import Graphics.Rendering.OpenGL.Raw.EXT.TextureCompressionS3tc
-import Graphics.Rendering.OpenGL.Raw.EXT.Multisample
-import Graphics.Rendering.OpenGL.Raw.EXT.TextureEnvDot3
-import Graphics.Rendering.OpenGL.Raw.EXT.VertexShader
--- import Graphics.Rendering.OpenGL.Raw.EXT.ShadowFuncs
-import Graphics.Rendering.OpenGL.Raw.EXT.StencilTwoSide
-import Graphics.Rendering.OpenGL.Raw.EXT.DepthBoundsTest
-import Graphics.Rendering.OpenGL.Raw.EXT.TextureMirrorClamp
-import Graphics.Rendering.OpenGL.Raw.EXT.BlendEquationSeparate
--- import Graphics.Rendering.OpenGL.Raw.EXT.PixelBufferObject
-import Graphics.Rendering.OpenGL.Raw.EXT.TextureCompressionDxt1
-import Graphics.Rendering.OpenGL.Raw.EXT.FramebufferObject
--- import Graphics.Rendering.OpenGL.Raw.EXT.PackedDepthStencil
-import Graphics.Rendering.OpenGL.Raw.EXT.StencilClearTag
-import Graphics.Rendering.OpenGL.Raw.EXT.TextureSRGB
--- import Graphics.Rendering.OpenGL.Raw.EXT.FramebufferBlit
--- import Graphics.Rendering.OpenGL.Raw.EXT.FramebufferMultisample
-import Graphics.Rendering.OpenGL.Raw.EXT.TimerQuery
-import Graphics.Rendering.OpenGL.Raw.EXT.GpuProgramParameters
-import Graphics.Rendering.OpenGL.Raw.EXT.GeometryShader4
--- import Graphics.Rendering.OpenGL.Raw.EXT.GpuShader4
--- import Graphics.Rendering.OpenGL.Raw.EXT.DrawInstanced
-import Graphics.Rendering.OpenGL.Raw.EXT.PackedFloat
--- import Graphics.Rendering.OpenGL.Raw.EXT.TextureArray
--- import Graphics.Rendering.OpenGL.Raw.EXT.TextureBufferObject
-import Graphics.Rendering.OpenGL.Raw.EXT.TextureCompressionLatc
--- import Graphics.Rendering.OpenGL.Raw.EXT.TextureCompressionRgtc
--- import Graphics.Rendering.OpenGL.Raw.EXT.TextureSharedExponent
-import Graphics.Rendering.OpenGL.Raw.EXT.FramebufferSRGB
--- import Graphics.Rendering.OpenGL.Raw.EXT.DrawBuffers2
-import Graphics.Rendering.OpenGL.Raw.EXT.BindableUniform
-import Graphics.Rendering.OpenGL.Raw.EXT.TextureInteger
--- import Graphics.Rendering.OpenGL.Raw.EXT.TransformFeedback
-import Graphics.Rendering.OpenGL.Raw.EXT.DirectStateAccess
--- import Graphics.Rendering.OpenGL.Raw.EXT.VertexArrayBgra
-import Graphics.Rendering.OpenGL.Raw.EXT.TextureSwizzle
-import Graphics.Rendering.OpenGL.Raw.EXT.ProvokingVertex
--- import Graphics.Rendering.OpenGL.Raw.EXT.TextureSnorm
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/Abgr.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/Abgr.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/Abgr.hs
+++ /dev/null
@@ -1,24 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.Abgr
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All tokens from the EXT_abgr extension, see
--- <http://www.opengl.org/registry/specs/EXT/abgr.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.Abgr (
-   -- * Tokens
-   gl_ABGR
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_ABGR :: GLenum
-gl_ABGR = 0x8000
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/Bgra.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/Bgra.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/Bgra.hs
+++ /dev/null
@@ -1,22 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.Bgra
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All tokens from the EXT_bgra extension, see
--- <http://www.opengl.org/registry/specs/EXT/bgra.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.Bgra (
-   -- * Tokens
-   gl_BGR,
-   gl_BGRA
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/BindableUniform.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/BindableUniform.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/BindableUniform.hs
+++ /dev/null
@@ -1,64 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.BindableUniform
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the EXT_bindable_uniform extension not
--- already in the OpenGL 3.1 core, see
--- <http://www.opengl.org/registry/specs/EXT/bindable_uniform.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.BindableUniform (
-   -- * Functions
-   glUniformBuffer,
-   glGetUniformBufferSize,
-   glGetUniformOffset,
-   -- * Tokens
-   gl_MAX_VERTEX_BINDABLE_UNIFORMS,
-   gl_MAX_FRAGMENT_BINDABLE_UNIFORMS,
-   gl_MAX_GEOMETRY_BINDABLE_UNIFORMS,
-   gl_MAX_BINDABLE_UNIFORM_SIZE,
-   gl_UNIFORM_BUFFER_BINDING_EXT,
-   gl_UNIFORM_BUFFER_EXT
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Graphics.Rendering.OpenGL.Raw.Extensions
-
-#include "HsOpenGLRaw.h"
-
-extensionNameString :: String
-extensionNameString = "GL_EXT_bindable_uniform"
-
-EXTENSION_ENTRY(glUniformBuffer,GLuint -> GLint -> GLuint -> IO ())
-EXTENSION_ENTRY(glGetUniformBufferSize,GLuint -> GLint -> IO GLint)
-EXTENSION_ENTRY(glGetUniformOffset,GLuint -> GLint -> IO GLintptr)
-
-gl_MAX_VERTEX_BINDABLE_UNIFORMS :: GLenum
-gl_MAX_VERTEX_BINDABLE_UNIFORMS = 0x8DE2
-
-gl_MAX_FRAGMENT_BINDABLE_UNIFORMS :: GLenum
-gl_MAX_FRAGMENT_BINDABLE_UNIFORMS = 0x8DE3
-
-gl_MAX_GEOMETRY_BINDABLE_UNIFORMS :: GLenum
-gl_MAX_GEOMETRY_BINDABLE_UNIFORMS = 0x8DE4
-
-gl_MAX_BINDABLE_UNIFORM_SIZE :: GLenum
-gl_MAX_BINDABLE_UNIFORM_SIZE = 0x8DED
-
--- | NOTE: The OpenGL 3.1 core has the same token with a different value, so we
--- use a suffix here.
-gl_UNIFORM_BUFFER_BINDING_EXT :: GLenum
-gl_UNIFORM_BUFFER_BINDING_EXT = 0x8DEF
-
--- | NOTE: The OpenGL 3.1 core has the same token with a different value, so we
--- use a suffix here.
-gl_UNIFORM_BUFFER_EXT :: GLenum
-gl_UNIFORM_BUFFER_EXT = 0x8DEE
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/BlendColor.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/BlendColor.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/BlendColor.hs
+++ /dev/null
@@ -1,27 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.BlendColor
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the EXT_blend_color extension, see
--- <http://www.opengl.org/registry/specs/EXT/blend_color.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.BlendColor (
-   -- * Functions
-   glBlendColor,
-   -- * Tokens
-   gl_CONSTANT_COLOR,
-   gl_ONE_MINUS_CONSTANT_COLOR,
-   gl_CONSTANT_ALPHA,
-   gl_ONE_MINUS_CONSTANT_ALPHA,
-   gl_BLEND_COLOR
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/BlendEquationSeparate.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/BlendEquationSeparate.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/BlendEquationSeparate.hs
+++ /dev/null
@@ -1,24 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.BlendEquationSeparate
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the EXT_blend_equation_separate extension, see
--- <http://www.opengl.org/registry/specs/EXT/blend_equation_separate.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.BlendEquationSeparate (
-   -- * Functions
-   glBlendEquationSeparate,
-   -- * Tokens
-   gl_BLEND_EQUATION_RGB,
-   gl_BLEND_EQUATION_ALPHA
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/BlendFuncSeparate.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/BlendFuncSeparate.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/BlendFuncSeparate.hs
+++ /dev/null
@@ -1,26 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.BlendFuncSeparate
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the EXT_blend_func_separate extension, see
--- <http://www.opengl.org/registry/specs/EXT/blend_func_separate.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.BlendFuncSeparate (
-   -- * Functions
-   glBlendFuncSeparate,
-   -- * Tokens
-   gl_BLEND_DST_RGB,
-   gl_BLEND_SRC_RGB,
-   gl_BLEND_DST_ALPHA,
-   gl_BLEND_SRC_ALPHA
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/BlendMinmax.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/BlendMinmax.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/BlendMinmax.hs
+++ /dev/null
@@ -1,26 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.BlendMinmax
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the EXT_blend_minmax extension, see
--- <http://www.opengl.org/registry/specs/EXT/blend_minmax.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.BlendMinmax (
-   -- * Functions
-   glBlendEquation,
-   -- * Tokens
-   gl_FUNC_ADD,
-   gl_MIN,
-   gl_MAX,
-   gl_BLEND_EQUATION
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/BlendSubtract.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/BlendSubtract.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/BlendSubtract.hs
+++ /dev/null
@@ -1,22 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.BlendSubtract
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All tokens from the EXT_blend_subtract extension, see
--- <http://www.opengl.org/registry/specs/EXT/blend_subtract.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.BlendSubtract (
-   -- * Tokens
-   gl_FUNC_SUBTRACT,
-   gl_FUNC_REVERSE_SUBTRACT
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/ClipVolumeHint.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/ClipVolumeHint.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/ClipVolumeHint.hs
+++ /dev/null
@@ -1,24 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.ClipVolumeHint
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the EXT_clip_volume_hint extension, see
--- <http://www.opengl.org/registry/specs/EXT/clip_volume_hint.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.ClipVolumeHint (
-   -- * Tokens
-   gl_CLIP_VOLUME_CLIPPING_HINT
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_CLIP_VOLUME_CLIPPING_HINT :: GLenum
-gl_CLIP_VOLUME_CLIPPING_HINT = 0x80F0
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/Cmyka.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/Cmyka.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/Cmyka.hs
+++ /dev/null
@@ -1,36 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.Cmyka
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All tokens from the EXT_cmyka extension, see
--- <http://www.opengl.org/registry/specs/EXT/cmyka.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.Cmyka (
-   -- * Tokens
-   gl_CMYK,
-   gl_CMYKA,
-   gl_PACK_CMYK_HINT,
-   gl_UNPACK_CMYK_HINT
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_CMYK :: GLenum
-gl_CMYK = 0x800C
-
-gl_CMYKA :: GLenum
-gl_CMYKA = 0x800D
-
-gl_PACK_CMYK_HINT :: GLenum
-gl_PACK_CMYK_HINT = 0x800E
-
-gl_UNPACK_CMYK_HINT :: GLenum
-gl_UNPACK_CMYK_HINT = 0x800F
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/ColorSubtable.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/ColorSubtable.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/ColorSubtable.hs
+++ /dev/null
@@ -1,22 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.ColorSubtable
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the EXT_color_subtable extension, see
--- <http://www.opengl.org/registry/specs/EXT/color_subtable.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.ColorSubtable (
-   -- * Functions
-   glColorSubTable,
-   glCopyColorSubTable
-) where
-
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/CompiledVertexArray.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/CompiledVertexArray.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/CompiledVertexArray.hs
+++ /dev/null
@@ -1,42 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.CompiledVertexArray
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the EXT_compiled_vertex_array extension,
--- see
--- <http://www.opengl.org/registry/specs/EXT/compiled_vertex_array.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.CompiledVertexArray (
-   -- * Functions
-   glLockArrays,
-   glUnlockArrays,
-   -- * Tokens
-   gl_ARRAY_ELEMENT_LOCK_FIRST,
-   gl_ARRAY_ELEMENT_LOCK_COUNT
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Graphics.Rendering.OpenGL.Raw.Extensions
-
-#include "HsOpenGLRaw.h"
-
-extensionNameString :: String
-extensionNameString = "GL_EXT_compiled_vertex_array"
-
-EXTENSION_ENTRY(glLockArrays,GLint -> GLsizei -> IO ())
-EXTENSION_ENTRY(glUnlockArrays,IO ())
-
-gl_ARRAY_ELEMENT_LOCK_FIRST :: GLenum
-gl_ARRAY_ELEMENT_LOCK_FIRST = 0x81A8
-
-gl_ARRAY_ELEMENT_LOCK_COUNT :: GLenum
-gl_ARRAY_ELEMENT_LOCK_COUNT = 0x81A9
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/Convolution.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/Convolution.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/Convolution.hs
+++ /dev/null
@@ -1,54 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.Convolution
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the EXT_convolution extension, see
--- <http://www.opengl.org/registry/specs/EXT/convolution.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.Convolution (
-   -- * Functions
-   glConvolutionFilter1D,
-   glConvolutionFilter2D,
-   glCopyConvolutionFilter1D,
-   glCopyConvolutionFilter2D,
-   glGetConvolutionFilter,
-   glSeparableFilter2D,
-   glGetSeparableFilter,
-   glConvolutionParameteri,
-   glConvolutionParameteriv,
-   glConvolutionParameterf,
-   glConvolutionParameterfv,
-   glGetConvolutionParameteriv,
-   glGetConvolutionParameterfv,
-   -- * Tokens
-   gl_CONVOLUTION_1D,
-   gl_CONVOLUTION_2D,
-   gl_SEPARABLE_2D,
-   gl_CONVOLUTION_BORDER_MODE,
-   gl_CONVOLUTION_FILTER_SCALE,
-   gl_CONVOLUTION_FILTER_BIAS,
-   gl_REDUCE,
-   gl_CONVOLUTION_FORMAT,
-   gl_CONVOLUTION_WIDTH,
-   gl_CONVOLUTION_HEIGHT,
-   gl_MAX_CONVOLUTION_WIDTH,
-   gl_MAX_CONVOLUTION_HEIGHT,
-   gl_POST_CONVOLUTION_RED_SCALE,
-   gl_POST_CONVOLUTION_GREEN_SCALE,
-   gl_POST_CONVOLUTION_BLUE_SCALE,
-   gl_POST_CONVOLUTION_ALPHA_SCALE,
-   gl_POST_CONVOLUTION_RED_BIAS,
-   gl_POST_CONVOLUTION_GREEN_BIAS,
-   gl_POST_CONVOLUTION_BLUE_BIAS,
-   gl_POST_CONVOLUTION_ALPHA_BIAS
-) where
-
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/CoordinateFrame.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/CoordinateFrame.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/CoordinateFrame.hs
+++ /dev/null
@@ -1,130 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.CoordinateFrame
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the EXT_coordinate_frame extension, see
--- <http://www.opengl.org/registry/specs/EXT/coordinate_frame.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.CoordinateFrame (
-   -- * Functions
-   glTangent3b,
-   glTangent3d,
-   glTangent3f,
-   glTangent3i,
-   glTangent3s,
-   glTangent3bv,
-   glTangent3dv,
-   glTangent3fv,
-   glTangent3iv,
-   glTangent3sv,
-   glBinormal3b,
-   glBinormal3d,
-   glBinormal3f,
-   glBinormal3i,
-   glBinormal3s,
-   glBinormal3bv,
-   glBinormal3dv,
-   glBinormal3fv,
-   glBinormal3iv,
-   glBinormal3sv,
-   glTangentPointer,
-   glBinormalPointer,
-   -- * Tokens
-   gl_TANGENT_ARRAY,
-   gl_BINORMAL_ARRAY,
-   gl_CURRENT_TANGENT,
-   gl_CURRENT_BINORMAL,
-   gl_TANGENT_ARRAY_TYPE,
-   gl_TANGENT_ARRAY_STRIDE,
-   gl_BINORMAL_ARRAY_TYPE,
-   gl_BINORMAL_ARRAY_STRIDE,
-   gl_TANGENT_ARRAY_POINTER,
-   gl_BINORMAL_ARRAY_POINTER,
-   gl_MAP1_TANGENT,
-   gl_MAP2_TANGENT,
-   gl_MAP1_BINORMAL,
-   gl_MAP2_BINORMAL
-) where
-
-import Foreign.Ptr
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Graphics.Rendering.OpenGL.Raw.Extensions
-
-#include "HsOpenGLRaw.h"
-
-extensionNameString :: String
-extensionNameString = "GL_EXT_coordinate_frame"
-
-EXTENSION_ENTRY(glTangent3b,GLbyte -> IO ())
-EXTENSION_ENTRY(glTangent3d,GLdouble -> IO ())
-EXTENSION_ENTRY(glTangent3f,GLfloat -> IO ())
-EXTENSION_ENTRY(glTangent3i,GLint -> IO ())
-EXTENSION_ENTRY(glTangent3s,GLshort -> IO ())
-EXTENSION_ENTRY(glTangent3bv,Ptr GLbyte -> IO ())
-EXTENSION_ENTRY(glTangent3dv,Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glTangent3fv,Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glTangent3iv,Ptr GLint -> IO ())
-EXTENSION_ENTRY(glTangent3sv,Ptr GLshort -> IO ())
-EXTENSION_ENTRY(glBinormal3b,GLbyte -> IO ())
-EXTENSION_ENTRY(glBinormal3d,GLdouble -> IO ())
-EXTENSION_ENTRY(glBinormal3f,GLfloat -> IO ())
-EXTENSION_ENTRY(glBinormal3i,GLint -> IO ())
-EXTENSION_ENTRY(glBinormal3s,GLshort -> IO ())
-EXTENSION_ENTRY(glBinormal3bv,Ptr GLbyte -> IO ())
-EXTENSION_ENTRY(glBinormal3dv,Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glBinormal3fv,Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glBinormal3iv,Ptr GLint -> IO ())
-EXTENSION_ENTRY(glBinormal3sv,Ptr GLshort -> IO ())
-EXTENSION_ENTRY(glTangentPointer,GLenum -> GLsizei -> Ptr a -> IO ())
-EXTENSION_ENTRY(glBinormalPointer,GLenum -> GLsizei -> Ptr a -> IO ())
-
-gl_TANGENT_ARRAY :: GLenum
-gl_TANGENT_ARRAY = 0x8439
-
-gl_BINORMAL_ARRAY :: GLenum
-gl_BINORMAL_ARRAY = 0x843A
-
-gl_CURRENT_TANGENT :: GLenum
-gl_CURRENT_TANGENT = 0x843B
-
-gl_CURRENT_BINORMAL :: GLenum
-gl_CURRENT_BINORMAL = 0x843C
-
-gl_TANGENT_ARRAY_TYPE :: GLenum
-gl_TANGENT_ARRAY_TYPE = 0x843E
-
-gl_TANGENT_ARRAY_STRIDE :: GLenum
-gl_TANGENT_ARRAY_STRIDE = 0x843F
-
-gl_BINORMAL_ARRAY_TYPE :: GLenum
-gl_BINORMAL_ARRAY_TYPE = 0x8440
-
-gl_BINORMAL_ARRAY_STRIDE :: GLenum
-gl_BINORMAL_ARRAY_STRIDE = 0x8441
-
-gl_TANGENT_ARRAY_POINTER :: GLenum
-gl_TANGENT_ARRAY_POINTER = 0x8442
-
-gl_BINORMAL_ARRAY_POINTER :: GLenum
-gl_BINORMAL_ARRAY_POINTER = 0x8443
-
-gl_MAP1_TANGENT :: GLenum
-gl_MAP1_TANGENT = 0x8444
-
-gl_MAP2_TANGENT :: GLenum
-gl_MAP2_TANGENT = 0x8445
-
-gl_MAP1_BINORMAL :: GLenum
-gl_MAP1_BINORMAL = 0x8446
-
-gl_MAP2_BINORMAL :: GLenum
-gl_MAP2_BINORMAL = 0x8447
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/CopyTexture.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/CopyTexture.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/CopyTexture.hs
+++ /dev/null
@@ -1,25 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.CopyTexture
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions from the EXT_copy_texture extension, see
--- <http://www.opengl.org/registry/specs/EXT/copy_texture.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.CopyTexture (
-   -- * Functions
-   glCopyTexImage1D,
-   glCopyTexImage2D,
-   glCopyTexSubImage1D,
-   glCopyTexSubImage2D,
-   glCopyTexSubImage3D,
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/CullVertex.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/CullVertex.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/CullVertex.hs
+++ /dev/null
@@ -1,47 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.CullVertex
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the EXT_cull_vertex extension, see
--- <http://www.opengl.org/registry/specs/EXT/cull_vertex.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.CullVertex (
-   -- * Functions
-   glCullParameterfv,
-   glCullParameterdv,
-   -- * Tokens
-   gl_CULL_VERTEX,
-   gl_CULL_VERTEX_EYE_POSITION,
-   gl_CULL_VERTEX_OBJECT_POSITION
-) where
-
-import Foreign.Ptr
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Graphics.Rendering.OpenGL.Raw.Extensions
-
-#include "HsOpenGLRaw.h"
-
-extensionNameString :: String
-extensionNameString = "GL_EXT_cull_vertex"
-
-EXTENSION_ENTRY(glCullParameterfv,GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glCullParameterdv,GLenum -> Ptr GLdouble -> IO ())
-
-
-gl_CULL_VERTEX :: GLenum
-gl_CULL_VERTEX = 0x81AA
-
-gl_CULL_VERTEX_EYE_POSITION :: GLenum
-gl_CULL_VERTEX_EYE_POSITION = 0x81AB
-
-gl_CULL_VERTEX_OBJECT_POSITION :: GLenum
-gl_CULL_VERTEX_OBJECT_POSITION = 0x81AC
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/DepthBoundsTest.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/DepthBoundsTest.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/DepthBoundsTest.hs
+++ /dev/null
@@ -1,39 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.DepthBoundsTest
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the EXT_depth_bounds_test extension, see
--- <http://www.opengl.org/registry/specs/EXT/depth_bounds_test.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.DepthBoundsTest (
-   -- * Functions
-   glDepthBounds,
-   -- * Tokens
-   gl_DEPTH_BOUNDS_TEST,
-   gl_DEPTH_BOUNDS
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Graphics.Rendering.OpenGL.Raw.Extensions
-
-#include "HsOpenGLRaw.h"
-
-extensionNameString :: String
-extensionNameString = "GL_EXT_depth_bounds_test"
-
-EXTENSION_ENTRY(glDepthBounds,GLclampd -> GLclampd -> IO())
-
-gl_DEPTH_BOUNDS_TEST :: GLenum
-gl_DEPTH_BOUNDS_TEST = 0x8890
-
-gl_DEPTH_BOUNDS :: GLenum
-gl_DEPTH_BOUNDS = 0x8891
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/DirectStateAccess.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/DirectStateAccess.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/DirectStateAccess.hs
+++ /dev/null
@@ -1,425 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.DirectStateAccess
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the EXT_direct_state_access extension not
--- already in the OpenGL 3.1 core, see
--- <http://www.opengl.org/registry/specs/EXT/direct_state_access.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.DirectStateAccess (
-   -- * Functions
-   glClientAttribDefault,
-   glPushClientAttribDefault,
-   glMatrixLoadf,
-   glMatrixLoadd,
-   glMatrixMultf,
-   glMatrixMultd,
-   glMatrixLoadIdentity,
-   glMatrixRotatef,
-   glMatrixRotated,
-   glMatrixScalef,
-   glMatrixScaled,
-   glMatrixTranslatef,
-   glMatrixTranslated,
-   glMatrixOrtho,
-   glMatrixFrustum,
-   glMatrixPush,
-   glMatrixPop,
-   glTextureParameteri,
-   glTextureParameteriv,
-   glTextureParameterf,
-   glTextureParameterfv,
-   glTextureImage1D,
-   glTextureImage2D,
-   glTextureSubImage1D,
-   glTextureSubImage2D,
-   glCopyTextureImage1D,
-   glCopyTextureImage2D,
-   glCopyTextureSubImage1D,
-   glCopyTextureSubImage2D,
-   glGetTextureImage,
-   glGetTextureParameterfv,
-   glGetTextureParameteriv,
-   glGetTextureLevelParameterfv,
-   glGetTextureLevelParameteriv,
-   glTextureImage3D,
-   glTextureSubImage3D,
-   glCopyTextureSubImage3D,
-   glBindMultiTexture,
-   glMultiTexCoordPointer,
-   glMultiTexEnvf,
-   glMultiTexEnvfv,
-   glMultiTexEnvi,
-   glMultiTexEnviv,
-   glMultiTexGend,
-   glMultiTexGendv,
-   glMultiTexGenf,
-   glMultiTexGenfv,
-   glMultiTexGeni,
-   glMultiTexGeniv,
-   glGetMultiTexEnvfv,
-   glGetMultiTexEnviv,
-   glGetMultiTexGendv,
-   glGetMultiTexGenfv,
-   glGetMultiTexGeniv,
-   glMultiTexParameteri,
-   glMultiTexParameteriv,
-   glMultiTexParameterf,
-   glMultiTexParameterfv,
-   glMultiTexImage1D,
-   glMultiTexImage2D,
-   glMultiTexSubImage1D,
-   glMultiTexSubImage2D,
-   glCopyMultiTexImage1D,
-   glCopyMultiTexImage2D,
-   glCopyMultiTexSubImage1D,
-   glCopyMultiTexSubImage2D,
-   glGetMultiTexImage,
-   glGetMultiTexParameterfv,
-   glGetMultiTexParameteriv,
-   glGetMultiTexLevelParameterfv,
-   glGetMultiTexLevelParameteriv,
-   glMultiTexImage3D,
-   glMultiTexSubImage3D,
-   glCopyMultiTexSubImage3D,
-   glEnableClientStateIndexed,
-   glDisableClientStateIndexed,
-   glGetFloatIndexedv,
-   glGetDoubleIndexedv,
-   glGetPointerIndexedv,
-   glEnableIndexed,
-   glDisableIndexed,
-   glIsEnabledIndexed,
-   glGetIntegerIndexedv,
-   glGetBooleanIndexedv,
-   glNamedProgramString,
-   glNamedProgramLocalParameter4d,
-   glNamedProgramLocalParameter4dv,
-   glNamedProgramLocalParameter4f,
-   glNamedProgramLocalParameter4fv,
-   glGetNamedProgramLocalParameterdv,
-   glGetNamedProgramLocalParameterfv,
-   glGetNamedProgramiv,
-   glGetNamedProgramString,
-   glCompressedTextureImage3D,
-   glCompressedTextureImage2D,
-   glCompressedTextureImage1D,
-   glCompressedTextureSubImage3D,
-   glCompressedTextureSubImage2D,
-   glCompressedTextureSubImage1D,
-   glGetCompressedTextureImage,
-   glCompressedMultiTexImage3D,
-   glCompressedMultiTexImage2D,
-   glCompressedMultiTexImage1D,
-   glCompressedMultiTexSubImage3D,
-   glCompressedMultiTexSubImage2D,
-   glCompressedMultiTexSubImage1D,
-   glGetCompressedMultiTexImage,
-   glMatrixLoadTransposef,
-   glMatrixLoadTransposed,
-   glMatrixMultTransposef,
-   glMatrixMultTransposed,
-   glNamedBufferData,
-   glNamedBufferSubData,
-   glMapNamedBuffer,
-   glUnmapNamedBuffer,
-   glGetNamedBufferParameteriv,
-   glGetNamedBufferPointerv,
-   glGetNamedBufferSubData,
-   glProgramUniform1f,
-   glProgramUniform2f,
-   glProgramUniform3f,
-   glProgramUniform4f,
-   glProgramUniform1i,
-   glProgramUniform2i,
-   glProgramUniform3i,
-   glProgramUniform4i,
-   glProgramUniform1fv,
-   glProgramUniform2fv,
-   glProgramUniform3fv,
-   glProgramUniform4fv,
-   glProgramUniform1iv,
-   glProgramUniform2iv,
-   glProgramUniform3iv,
-   glProgramUniform4iv,
-   glProgramUniformMatrix2fv,
-   glProgramUniformMatrix3fv,
-   glProgramUniformMatrix4fv,
-   glProgramUniformMatrix2x3fv,
-   glProgramUniformMatrix3x2fv,
-   glProgramUniformMatrix2x4fv,
-   glProgramUniformMatrix4x2fv,
-   glProgramUniformMatrix3x4fv,
-   glProgramUniformMatrix4x3fv,
-   glTextureBuffer,
-   glMultiTexBuffer,
-   glTextureParameterIiv,
-   glTextureParameterIuiv,
-   glGetTextureParameterIiv,
-   glGetTextureParameterIuiv,
-   glMultiTexParameterIiv,
-   glMultiTexParameterIuiv,
-   glGetMultiTexParameterIiv,
-   glGetMultiTexParameterIuiv,
-   glProgramUniform1ui,
-   glProgramUniform2ui,
-   glProgramUniform3ui,
-   glProgramUniform4ui,
-   glProgramUniform1uiv,
-   glProgramUniform2uiv,
-   glProgramUniform3uiv,
-   glProgramUniform4uiv,
-   glNamedProgramLocalParameters4fv,
-   glNamedProgramLocalParameterI4i,
-   glNamedProgramLocalParameterI4iv,
-   glNamedProgramLocalParametersI4iv,
-   glNamedProgramLocalParameterI4ui,
-   glNamedProgramLocalParameterI4uiv,
-   glNamedProgramLocalParametersI4uiv,
-   glGetNamedProgramLocalParameterIiv,
-   glGetNamedProgramLocalParameterIuiv,
-   glNamedRenderbufferStorage,
-   glGetNamedRenderbufferParameteriv,
-   glNamedRenderbufferStorageMultisample,
-   glNamedRenderbufferStorageMultisampleCoverage,
-   glCheckNamedFramebufferStatus,
-   glNamedFramebufferTexture1D,
-   glNamedFramebufferTexture2D,
-   glNamedFramebufferTexture3D,
-   glNamedFramebufferRenderbuffer,
-   glGetNamedFramebufferAttachmentParameteriv,
-   glGenerateTextureMipmap,
-   glGenerateMultiTexMipmap,
-   glFramebufferDrawBuffer,
-   glFramebufferDrawBuffers,
-   glFramebufferReadBuffer,
-   glGetFramebufferParameteriv,
-   glNamedFramebufferTexture,
-   glNamedFramebufferTextureLayer,
-   glNamedFramebufferTextureFace,
-   glTextureRenderbuffer,
-   glMultiTexRenderbuffer,
-   -- * Tokens
-   gl_PROGRAM_MATRIX,
-   gl_TRANSPOSE_PROGRAM_MATRIX,
-   gl_PROGRAM_MATRIX_STACK_DEPTH
-) where
-
-import Foreign.Ptr
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Graphics.Rendering.OpenGL.Raw.Extensions
-
-#include "HsOpenGLRaw.h"
-
-extensionNameString :: String
-extensionNameString = "GL_EXT_direct_state_access"
-
-EXTENSION_ENTRY(glClientAttribDefault,GLbitfield -> IO ())
-EXTENSION_ENTRY(glPushClientAttribDefault,GLbitfield -> IO ())
-EXTENSION_ENTRY(glMatrixLoadf,GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glMatrixLoadd,GLenum -> Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glMatrixMultf,GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glMatrixMultd,GLenum -> Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glMatrixLoadIdentity,GLenum -> IO ())
-EXTENSION_ENTRY(glMatrixRotatef,GLenum -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-EXTENSION_ENTRY(glMatrixRotated,GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-EXTENSION_ENTRY(glMatrixScalef,GLenum -> GLfloat -> GLfloat -> GLfloat -> IO ())
-EXTENSION_ENTRY(glMatrixScaled,GLenum -> GLdouble -> GLdouble -> GLdouble -> IO ())
-EXTENSION_ENTRY(glMatrixTranslatef,GLenum -> GLfloat -> GLfloat -> GLfloat -> IO ())
-EXTENSION_ENTRY(glMatrixTranslated,GLenum -> GLdouble -> GLdouble -> GLdouble -> IO ())
-EXTENSION_ENTRY(glMatrixOrtho,GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-EXTENSION_ENTRY(glMatrixFrustum,GLenum -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-EXTENSION_ENTRY(glMatrixPush,GLenum -> IO ())
-EXTENSION_ENTRY(glMatrixPop,GLenum -> IO ())
-EXTENSION_ENTRY(glTextureParameteri,GLuint -> GLenum -> GLenum -> GLint -> IO ())
-EXTENSION_ENTRY(glTextureParameteriv,GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glTextureParameterf,GLuint -> GLenum -> GLenum -> GLfloat -> IO ())
-EXTENSION_ENTRY(glTextureParameterfv,GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glTextureImage1D,GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> IO ())
-EXTENSION_ENTRY(glTextureImage2D,GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> IO ())
-EXTENSION_ENTRY(glTextureSubImage1D,GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
-EXTENSION_ENTRY(glTextureSubImage2D,GLuint -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
-EXTENSION_ENTRY(glCopyTextureImage1D,GLuint -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> IO ())
-EXTENSION_ENTRY(glCopyTextureImage2D,GLuint -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> IO ())
-EXTENSION_ENTRY(glCopyTextureSubImage1D,GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ())
-EXTENSION_ENTRY(glCopyTextureSubImage2D,GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
-EXTENSION_ENTRY(glGetTextureImage,GLuint -> GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> IO ())
-EXTENSION_ENTRY(glGetTextureParameterfv,GLuint -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glGetTextureParameteriv,GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glGetTextureLevelParameterfv,GLuint -> GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glGetTextureLevelParameteriv,GLuint -> GLenum -> GLint -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glTextureImage3D,GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> IO ())
-EXTENSION_ENTRY(glTextureSubImage3D,GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
-EXTENSION_ENTRY(glCopyTextureSubImage3D,GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
-EXTENSION_ENTRY(glBindMultiTexture,GLenum -> GLenum -> GLuint -> IO ())
-EXTENSION_ENTRY(glMultiTexCoordPointer,GLenum -> GLint -> GLenum -> GLsizei -> Ptr a -> IO ())
-EXTENSION_ENTRY(glMultiTexEnvf,GLenum -> GLenum -> GLenum -> GLfloat -> IO ())
-EXTENSION_ENTRY(glMultiTexEnvfv,GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glMultiTexEnvi,GLenum -> GLenum -> GLenum -> GLint -> IO ())
-EXTENSION_ENTRY(glMultiTexEnviv,GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glMultiTexGend,GLenum -> GLenum -> GLenum -> GLdouble -> IO ())
-EXTENSION_ENTRY(glMultiTexGendv,GLenum -> GLenum -> GLenum -> Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glMultiTexGenf,GLenum -> GLenum -> GLenum -> GLfloat -> IO ())
-EXTENSION_ENTRY(glMultiTexGenfv,GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glMultiTexGeni,GLenum -> GLenum -> GLenum -> GLint -> IO ())
-EXTENSION_ENTRY(glMultiTexGeniv,GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glGetMultiTexEnvfv,GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glGetMultiTexEnviv,GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glGetMultiTexGendv,GLenum -> GLenum -> GLenum -> Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glGetMultiTexGenfv,GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glGetMultiTexGeniv,GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glMultiTexParameteri,GLenum -> GLenum -> GLenum -> GLint -> IO ())
-EXTENSION_ENTRY(glMultiTexParameteriv,GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glMultiTexParameterf,GLenum -> GLenum -> GLenum -> GLfloat -> IO ())
-EXTENSION_ENTRY(glMultiTexParameterfv,GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glMultiTexImage1D,GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> IO ())
-EXTENSION_ENTRY(glMultiTexImage2D,GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> IO ())
-EXTENSION_ENTRY(glMultiTexSubImage1D,GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
-EXTENSION_ENTRY(glMultiTexSubImage2D,GLenum -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
-EXTENSION_ENTRY(glCopyMultiTexImage1D,GLenum -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLint -> IO ())
-EXTENSION_ENTRY(glCopyMultiTexImage2D,GLenum -> GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> IO ())
-EXTENSION_ENTRY(glCopyMultiTexSubImage1D,GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> IO ())
-EXTENSION_ENTRY(glCopyMultiTexSubImage2D,GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
-EXTENSION_ENTRY(glGetMultiTexImage,GLenum -> GLenum -> GLint -> GLenum -> GLenum -> Ptr a -> IO ())
-EXTENSION_ENTRY(glGetMultiTexParameterfv,GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glGetMultiTexParameteriv,GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glGetMultiTexLevelParameterfv,GLenum -> GLenum -> GLint -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glGetMultiTexLevelParameteriv,GLenum -> GLenum -> GLint -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glMultiTexImage3D,GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLenum -> GLenum -> Ptr a -> IO ())
-EXTENSION_ENTRY(glMultiTexSubImage3D,GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO ())
-EXTENSION_ENTRY(glCopyMultiTexSubImage3D,GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> IO ())
-EXTENSION_ENTRY(glEnableClientStateIndexed,GLenum -> GLuint -> IO ())
-EXTENSION_ENTRY(glDisableClientStateIndexed,GLenum -> GLuint -> IO ())
-EXTENSION_ENTRY(glGetFloatIndexedv,GLenum -> GLuint -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glGetDoubleIndexedv,GLenum -> GLuint -> Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glGetPointerIndexedv,GLenum -> GLuint -> Ptr (Ptr a) -> IO ())
-EXTENSION_ENTRY(glEnableIndexed,GLenum -> GLuint -> IO ())
-EXTENSION_ENTRY(glDisableIndexed,GLenum -> GLuint -> IO ())
-EXTENSION_ENTRY(glIsEnabledIndexed,GLenum -> GLuint -> IO GLboolean)
-EXTENSION_ENTRY(glGetIntegerIndexedv,GLenum -> GLuint -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glGetBooleanIndexedv,GLenum -> GLuint -> Ptr GLboolean -> IO ())
-EXTENSION_ENTRY(glNamedProgramString,GLuint -> GLenum -> GLenum -> GLsizei -> Ptr a -> IO ())
-EXTENSION_ENTRY(glNamedProgramLocalParameter4d,GLuint -> GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-EXTENSION_ENTRY(glNamedProgramLocalParameter4dv,GLuint -> GLenum -> GLuint -> Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glNamedProgramLocalParameter4f,GLuint -> GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-EXTENSION_ENTRY(glNamedProgramLocalParameter4fv,GLuint -> GLenum -> GLuint -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glGetNamedProgramLocalParameterdv,GLuint -> GLenum -> GLuint -> Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glGetNamedProgramLocalParameterfv,GLuint -> GLenum -> GLuint -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glGetNamedProgramiv,GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glGetNamedProgramString,GLuint -> GLenum -> GLenum -> Ptr a -> IO ())
-EXTENSION_ENTRY(glCompressedTextureImage3D,GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> IO ())
-EXTENSION_ENTRY(glCompressedTextureImage2D,GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> IO ())
-EXTENSION_ENTRY(glCompressedTextureImage1D,GLuint -> GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr a -> IO ())
-EXTENSION_ENTRY(glCompressedTextureSubImage3D,GLuint -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> IO ())
-EXTENSION_ENTRY(glCompressedTextureSubImage2D,GLuint -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> IO ())
-EXTENSION_ENTRY(glCompressedTextureSubImage1D,GLuint -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr a -> IO ())
-EXTENSION_ENTRY(glGetCompressedTextureImage,GLuint -> GLenum -> GLint -> Ptr a -> IO ())
-EXTENSION_ENTRY(glCompressedMultiTexImage3D,GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> IO ())
-EXTENSION_ENTRY(glCompressedMultiTexImage2D,GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLsizei -> Ptr a -> IO ())
-EXTENSION_ENTRY(glCompressedMultiTexImage1D,GLenum -> GLenum -> GLint -> GLenum -> GLsizei -> GLint -> GLsizei -> Ptr a -> IO ())
-EXTENSION_ENTRY(glCompressedMultiTexSubImage3D,GLenum -> GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> IO ())
-EXTENSION_ENTRY(glCompressedMultiTexSubImage2D,GLenum -> GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr a -> IO ())
-EXTENSION_ENTRY(glCompressedMultiTexSubImage1D,GLenum -> GLenum -> GLint -> GLint -> GLsizei -> GLenum -> GLsizei -> Ptr a -> IO ())
-EXTENSION_ENTRY(glGetCompressedMultiTexImage,GLenum -> GLenum -> GLint -> Ptr a -> IO ())
-EXTENSION_ENTRY(glMatrixLoadTransposef,GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glMatrixLoadTransposed,GLenum -> Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glMatrixMultTransposef,GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glMatrixMultTransposed,GLenum -> Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glNamedBufferData,GLuint -> GLsizeiptr -> Ptr a -> GLenum -> IO ())
-EXTENSION_ENTRY(glNamedBufferSubData,GLuint -> GLintptr -> GLsizeiptr -> Ptr a -> IO ())
-EXTENSION_ENTRY(glMapNamedBuffer,GLuint -> GLenum -> IO ())
-EXTENSION_ENTRY(glUnmapNamedBuffer,GLuint -> IO GLboolean)
-EXTENSION_ENTRY(glGetNamedBufferParameteriv,GLuint -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glGetNamedBufferPointerv,GLuint -> GLenum -> Ptr (Ptr a) -> IO ())
-EXTENSION_ENTRY(glGetNamedBufferSubData,GLuint -> GLintptr -> GLsizeiptr -> Ptr a -> IO ())
-EXTENSION_ENTRY(glProgramUniform1f,GLuint -> GLint -> GLfloat -> IO ())
-EXTENSION_ENTRY(glProgramUniform2f,GLuint -> GLint -> GLfloat -> GLfloat -> IO ())
-EXTENSION_ENTRY(glProgramUniform3f,GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> IO ())
-EXTENSION_ENTRY(glProgramUniform4f,GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-EXTENSION_ENTRY(glProgramUniform1i,GLuint -> GLint -> GLint -> IO ())
-EXTENSION_ENTRY(glProgramUniform2i,GLuint -> GLint -> GLint -> GLint -> IO ())
-EXTENSION_ENTRY(glProgramUniform3i,GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
-EXTENSION_ENTRY(glProgramUniform4i,GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> IO ())
-EXTENSION_ENTRY(glProgramUniform1fv,GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glProgramUniform2fv,GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glProgramUniform3fv,GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glProgramUniform4fv,GLuint -> GLint -> GLsizei -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glProgramUniform1iv,GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glProgramUniform2iv,GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glProgramUniform3iv,GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glProgramUniform4iv,GLuint -> GLint -> GLsizei -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glProgramUniformMatrix2fv,GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glProgramUniformMatrix3fv,GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glProgramUniformMatrix4fv,GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glProgramUniformMatrix2x3fv,GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glProgramUniformMatrix3x2fv,GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glProgramUniformMatrix2x4fv,GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glProgramUniformMatrix4x2fv,GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glProgramUniformMatrix3x4fv,GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glProgramUniformMatrix4x3fv,GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glTextureBuffer,GLuint -> GLenum -> GLenum -> GLuint -> IO ())
-EXTENSION_ENTRY(glMultiTexBuffer,GLenum -> GLenum -> GLenum -> GLuint -> IO ())
-EXTENSION_ENTRY(glTextureParameterIiv,GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glTextureParameterIuiv,GLuint -> GLenum -> GLenum -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glGetTextureParameterIiv,GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glGetTextureParameterIuiv,GLuint -> GLenum -> GLenum -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glMultiTexParameterIiv,GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glMultiTexParameterIuiv,GLenum -> GLenum -> GLenum -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glGetMultiTexParameterIiv,GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glGetMultiTexParameterIuiv,GLenum -> GLenum -> GLenum -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glProgramUniform1ui,GLuint -> GLint -> GLuint -> IO ())
-EXTENSION_ENTRY(glProgramUniform2ui,GLuint -> GLint -> GLuint -> GLuint -> IO ())
-EXTENSION_ENTRY(glProgramUniform3ui,GLuint -> GLint -> GLuint -> GLuint -> GLuint -> IO ())
-EXTENSION_ENTRY(glProgramUniform4ui,GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
-EXTENSION_ENTRY(glProgramUniform1uiv,GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glProgramUniform2uiv,GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glProgramUniform3uiv,GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glProgramUniform4uiv,GLuint -> GLint -> GLsizei -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glNamedProgramLocalParameters4fv,GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glNamedProgramLocalParameterI4i,GLuint -> GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
-EXTENSION_ENTRY(glNamedProgramLocalParameterI4iv,GLuint -> GLenum -> GLuint -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glNamedProgramLocalParametersI4iv,GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glNamedProgramLocalParameterI4ui,GLuint -> GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
-EXTENSION_ENTRY(glNamedProgramLocalParameterI4uiv,GLuint -> GLenum -> GLuint -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glNamedProgramLocalParametersI4uiv,GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glGetNamedProgramLocalParameterIiv,GLuint -> GLenum -> GLuint -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glGetNamedProgramLocalParameterIuiv,GLuint -> GLenum -> GLuint -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glNamedRenderbufferStorage,GLuint -> GLenum -> GLsizei -> GLsizei -> IO ())
-EXTENSION_ENTRY(glGetNamedRenderbufferParameteriv,GLuint -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glNamedRenderbufferStorageMultisample,GLuint -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
-EXTENSION_ENTRY(glNamedRenderbufferStorageMultisampleCoverage,GLuint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
-EXTENSION_ENTRY(glCheckNamedFramebufferStatus,GLuint -> GLenum -> IO GLenum)
-EXTENSION_ENTRY(glNamedFramebufferTexture1D,GLuint -> GLenum -> GLenum -> GLuint -> GLint -> IO ())
-EXTENSION_ENTRY(glNamedFramebufferTexture2D,GLuint -> GLenum -> GLenum -> GLuint -> GLint -> IO ())
-EXTENSION_ENTRY(glNamedFramebufferTexture3D,GLuint -> GLenum -> GLenum -> GLuint -> GLint -> GLint -> IO ())
-EXTENSION_ENTRY(glNamedFramebufferRenderbuffer,GLuint -> GLenum -> GLenum -> GLuint -> IO ())
-EXTENSION_ENTRY(glGetNamedFramebufferAttachmentParameteriv,GLuint -> GLenum -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glGenerateTextureMipmap,GLuint -> GLenum -> IO ())
-EXTENSION_ENTRY(glGenerateMultiTexMipmap,GLenum -> GLenum -> IO ())
-EXTENSION_ENTRY(glFramebufferDrawBuffer,GLuint -> GLenum -> IO ())
-EXTENSION_ENTRY(glFramebufferDrawBuffers,GLuint -> GLsizei -> Ptr GLenum -> IO ())
-EXTENSION_ENTRY(glFramebufferReadBuffer,GLuint -> GLenum -> IO ())
-EXTENSION_ENTRY(glGetFramebufferParameteriv,GLuint -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glNamedFramebufferTexture,GLuint -> GLenum -> GLuint -> GLint -> IO ())
-EXTENSION_ENTRY(glNamedFramebufferTextureLayer,GLuint -> GLenum -> GLuint -> GLint -> GLint -> IO ())
-EXTENSION_ENTRY(glNamedFramebufferTextureFace,GLuint -> GLenum -> GLuint -> GLint -> GLenum -> IO ())
-EXTENSION_ENTRY(glTextureRenderbuffer,GLuint -> GLenum -> GLuint -> IO ())
-EXTENSION_ENTRY(glMultiTexRenderbuffer,GLenum -> GLenum -> GLuint -> IO ())
-
-gl_PROGRAM_MATRIX :: GLenum
-gl_PROGRAM_MATRIX = 0x8E2D
-
-gl_TRANSPOSE_PROGRAM_MATRIX :: GLenum
-gl_TRANSPOSE_PROGRAM_MATRIX = 0x8E2E
-
-gl_PROGRAM_MATRIX_STACK_DEPTH :: GLenum
-gl_PROGRAM_MATRIX_STACK_DEPTH = 0x8E2F
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/DrawRangeElements.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/DrawRangeElements.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/DrawRangeElements.hs
+++ /dev/null
@@ -1,24 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.DrawRangeElements
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the EXT_draw_range_elements extension, see
--- <http://www.opengl.org/registry/specs/EXT/draw_range_elements.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.DrawRangeElements (
-   -- * Functions
-   glDrawRangeElements,
-   -- * Tokens
-   gl_MAX_ELEMENTS_VERTICES,
-   gl_MAX_ELEMENTS_INDICES
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/FogCoord.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/FogCoord.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/FogCoord.hs
+++ /dev/null
@@ -1,34 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.FogCoord
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the EXT_fog_coord extension, see
--- <http://www.opengl.org/registry/specs/EXT/fog_coord.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.FogCoord (
-   -- * Functions
-   glFogCoordf,
-   glFogCoordd,
-   glFogCoordfv,
-   glFogCoorddv,
-   glFogCoordPointer,
-   -- * Tokens
-   gl_FOG_COORDINATE_SOURCE,
-   gl_FOG_COORDINATE,
-   gl_FRAGMENT_DEPTH,
-   gl_CURRENT_FOG_COORDINATE,
-   gl_FOG_COORDINATE_ARRAY_TYPE,
-   gl_FOG_COORDINATE_ARRAY_STRIDE,
-   gl_FOG_COORDINATE_ARRAY_POINTER,
-   gl_FOG_COORDINATE_ARRAY
-) where
-
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/FourTwoTwoPixels.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/FourTwoTwoPixels.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/FourTwoTwoPixels.hs
+++ /dev/null
@@ -1,36 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.FourTwoTwoPixels
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All tokens from the EXT_422_pixels extension, see
--- <http://www.opengl.org/registry/specs/EXT/422_pixels.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.FourTwoTwoPixels (
-   -- * Tokens
-   gl_422,
-   gl_422_REV,
-   gl_422_AVERAGE,
-   gl_422_REV_AVERAGE
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_422 :: GLenum
-gl_422 = 0x80CC
-
-gl_422_REV :: GLenum
-gl_422_REV = 0x80CD
-
-gl_422_AVERAGE :: GLenum
-gl_422_AVERAGE = 0x80CE
-
-gl_422_REV_AVERAGE :: GLenum
-gl_422_REV_AVERAGE = 0x80CF
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/FragmentLighting.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/FragmentLighting.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/FragmentLighting.hs
+++ /dev/null
@@ -1,147 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.FragmentLighting
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the EXT_fragment_lighting extension, see
--- <http://www.opengl.org/registry/specs/EXT/fragment_lighting.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.FragmentLighting (
-   -- * Functions
-   glFragmentLightModeli,
-   glFragmentLightModelf,
-   glFragmentLightModeliv,
-   glFragmentLightModelfv,
-   glFragmentLighti,
-   glFragmentLightf,
-   glFragmentLightiv,
-   glFragmentLightfv,
-   glGetFragmentLightiv,
-   glGetFragmentLightfv,
-   glFragmentMaterialf,
-   glFragmentMateriali,
-   glFragmentMaterialfv,
-   glFragmentMaterialiv,
-   glFragmentColorMaterial,
-   glGetFragmentMaterialfv,
-   glGetFragmentMaterialiv,
-   glLightEnvi,
-   -- * Tokens
-   gl_FRAGMENT_LIGHTING,
-   gl_FRAGMENT_COLOR_MATERIAL,
-   gl_FRAGMENT_COLOR_MATERIAL_FACE,
-   gl_FRAGMENT_COLOR_MATERIAL_PARAMETER,
-   gl_MAX_FRAGMENT_LIGHTS,
-   gl_MAX_ACTIVE_LIGHTS,
-   gl_CURRENT_RASTER_NORMAL,
-   gl_LIGHT_ENV_MODE,
-   gl_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER,
-   gl_FRAGMENT_LIGHT_MODEL_TWO_SIDE,
-   gl_FRAGMENT_LIGHT_MODEL_AMBIENT,
-   gl_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION,
-   gl_FRAGMENT_LIGHT0,
-   gl_FRAGMENT_LIGHT1,
-   gl_FRAGMENT_LIGHT2,
-   gl_FRAGMENT_LIGHT3,
-   gl_FRAGMENT_LIGHT4,
-   gl_FRAGMENT_LIGHT5,
-   gl_FRAGMENT_LIGHT6,
-   gl_FRAGMENT_LIGHT7
-) where
-
-import Foreign.Ptr
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Graphics.Rendering.OpenGL.Raw.Extensions
-
-#include "HsOpenGLRaw.h"
-
-extensionNameString :: String
-extensionNameString = "GL_EXT_fragment_lighting"
-
-EXTENSION_ENTRY(glFragmentLightModeli,GLenum -> GLint -> IO ())
-EXTENSION_ENTRY(glFragmentLightModelf,GLenum -> GLfloat -> IO ())
-EXTENSION_ENTRY(glFragmentLightModeliv,GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glFragmentLightModelfv,GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glFragmentLighti,GLenum -> GLenum -> GLint -> IO ())
-EXTENSION_ENTRY(glFragmentLightf,GLenum -> GLenum -> GLfloat -> IO ())
-EXTENSION_ENTRY(glFragmentLightiv,GLenum -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glFragmentLightfv,GLenum -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glGetFragmentLightiv,GLenum -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glGetFragmentLightfv,GLenum -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glFragmentMaterialf,GLenum -> GLenum -> GLfloat -> IO ())
-EXTENSION_ENTRY(glFragmentMateriali,GLenum -> GLenum -> GLint -> IO ())
-EXTENSION_ENTRY(glFragmentMaterialfv,GLenum -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glFragmentMaterialiv,GLenum -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glFragmentColorMaterial,GLenum -> GLenum -> IO ())
-EXTENSION_ENTRY(glGetFragmentMaterialfv,GLenum -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glGetFragmentMaterialiv,GLenum -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glLightEnvi,GLenum -> GLint -> IO ())
-
-gl_FRAGMENT_LIGHTING :: GLenum
-gl_FRAGMENT_LIGHTING = 0x8400
-
-gl_FRAGMENT_COLOR_MATERIAL :: GLenum
-gl_FRAGMENT_COLOR_MATERIAL = 0x8401
-
-gl_FRAGMENT_COLOR_MATERIAL_FACE :: GLenum
-gl_FRAGMENT_COLOR_MATERIAL_FACE = 0x8402
-
-gl_FRAGMENT_COLOR_MATERIAL_PARAMETER :: GLenum
-gl_FRAGMENT_COLOR_MATERIAL_PARAMETER = 0x8403
-
-gl_MAX_FRAGMENT_LIGHTS :: GLenum
-gl_MAX_FRAGMENT_LIGHTS = 0x8404
-
-gl_MAX_ACTIVE_LIGHTS :: GLenum
-gl_MAX_ACTIVE_LIGHTS = 0x8405
-
-gl_CURRENT_RASTER_NORMAL :: GLenum
-gl_CURRENT_RASTER_NORMAL = 0x8406
-
-gl_LIGHT_ENV_MODE :: GLenum
-gl_LIGHT_ENV_MODE = 0x8407
-
-gl_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER :: GLenum
-gl_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER = 0x8408
-
-gl_FRAGMENT_LIGHT_MODEL_TWO_SIDE :: GLenum
-gl_FRAGMENT_LIGHT_MODEL_TWO_SIDE = 0x8409
-
-gl_FRAGMENT_LIGHT_MODEL_AMBIENT :: GLenum
-gl_FRAGMENT_LIGHT_MODEL_AMBIENT = 0x840A
-
-gl_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION :: GLenum
-gl_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION = 0x840B
-
-gl_FRAGMENT_LIGHT0 :: GLenum
-gl_FRAGMENT_LIGHT0 = 0x840C
-
-gl_FRAGMENT_LIGHT1 :: GLenum
-gl_FRAGMENT_LIGHT1 = 0x840D
-
-gl_FRAGMENT_LIGHT2 :: GLenum
-gl_FRAGMENT_LIGHT2 = 0x840E
-
-gl_FRAGMENT_LIGHT3 :: GLenum
-gl_FRAGMENT_LIGHT3 = 0x840F
-
-gl_FRAGMENT_LIGHT4 :: GLenum
-gl_FRAGMENT_LIGHT4 = 0x8410
-
-gl_FRAGMENT_LIGHT5 :: GLenum
-gl_FRAGMENT_LIGHT5 = 0x8411
-
-gl_FRAGMENT_LIGHT6 :: GLenum
-gl_FRAGMENT_LIGHT6 = 0x8412
-
-gl_FRAGMENT_LIGHT7 :: GLenum
-gl_FRAGMENT_LIGHT7 = 0x8413
-
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/FramebufferObject.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/FramebufferObject.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/FramebufferObject.hs
+++ /dev/null
@@ -1,29 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.FramebufferObject
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the EXT_framebuffer_object extension not
--- already in the OpenGL 3.1 core, see
--- <http://www.opengl.org/registry/specs/EXT/framebuffer_object.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.FramebufferObject (
-   -- * Tokens
-   gl_FRAMEBUFFER_INCOMPLETE_DIMENSIONS,
-   gl_FRAMEBUFFER_INCOMPLETE_FORMATS
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_FRAMEBUFFER_INCOMPLETE_DIMENSIONS :: GLenum
-gl_FRAMEBUFFER_INCOMPLETE_DIMENSIONS = 0x8CD9
-
-gl_FRAMEBUFFER_INCOMPLETE_FORMATS :: GLenum
-gl_FRAMEBUFFER_INCOMPLETE_FORMATS = 0x8CDA
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/FramebufferSRGB.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/FramebufferSRGB.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/FramebufferSRGB.hs
+++ /dev/null
@@ -1,25 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.FramebufferSRGB
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the EXT_framebuffer_sRGB extension not
--- already in the OpenGL 3.1 core, see
--- <http://www.opengl.org/registry/specs/EXT/framebuffer_sRGB.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.FramebufferSRGB (
-   -- * Tokens
-   gl_FRAMEBUFFER_SRGB_CAPABLE
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_FRAMEBUFFER_SRGB_CAPABLE :: GLenum
-gl_FRAMEBUFFER_SRGB_CAPABLE = 0x8DBA
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/GeometryShader4.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/GeometryShader4.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/GeometryShader4.hs
+++ /dev/null
@@ -1,42 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.GeometryShader4
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the EXT_geometry_shader4 extension, see
--- <http://www.opengl.org/registry/specs/EXT/geometry_shader4.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.GeometryShader4 (
-   -- * Functions
-   glProgramParameteri,
-   glFramebufferTexture,
-   glFramebufferTextureFace,
-   -- * Tokens
-   gl_GEOMETRY_SHADER,
-   gl_GEOMETRY_VERTICES_OUT,
-   gl_GEOMETRY_INPUT_TYPE,
-   gl_GEOMETRY_OUTPUT_TYPE,
-   gl_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS,
-   gl_MAX_GEOMETRY_VARYING_COMPONENTS,
-   gl_MAX_VERTEX_VARYING_COMPONENTS,
-   gl_MAX_GEOMETRY_UNIFORM_COMPONENTS,
-   gl_MAX_GEOMETRY_OUTPUT_VERTICES,
-   gl_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS,
-   gl_LINES_ADJACENCY,
-   gl_LINE_STRIP_ADJACENCY,
-   gl_TRIANGLES_ADJACENCY,
-   gl_TRIANGLE_STRIP_ADJACENCY,
-   gl_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS,
-   gl_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT,
-   gl_FRAMEBUFFER_ATTACHMENT_LAYERED,
-   gl_PROGRAM_POINT_SIZE
-) where
-
-import Graphics.Rendering.OpenGL.Raw.ARB.GeometryShader4
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/GpuProgramParameters.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/GpuProgramParameters.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/GpuProgramParameters.hs
+++ /dev/null
@@ -1,34 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.GpuProgramParameters
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the EXT_gpu_program_parameters extension
--- not already in the OpenGL 3.1 core, see
--- <http://www.opengl.org/registry/specs/EXT/gpu_program_parameters.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.GpuProgramParameters (
-   -- * Functions
-   glProgramEnvParameters4fv,
-   glProgramLocalParameters4fv
-) where
-
-import Foreign.Ptr
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Graphics.Rendering.OpenGL.Raw.Extensions
-
-#include "HsOpenGLRaw.h"
-
-extensionNameString :: String
-extensionNameString = "GL_EXT_program_parameters"
-
-EXTENSION_ENTRY(glProgramEnvParameters4fv,GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glProgramLocalParameters4fv,GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/Histogram.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/Histogram.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/Histogram.hs
+++ /dev/null
@@ -1,44 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.Histogram
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the EXT_histogram extension, see
--- <http://www.opengl.org/registry/specs/EXT/histogram.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.Histogram (
-   -- * Functions
-   glHistogram,
-   glResetHistogram,
-   glGetHistogram,
-   glGetHistogramParameteriv,
-   glGetHistogramParameterfv,
-   glMinmax,
-   glResetMinmax,
-   glGetMinmax,
-   glGetMinmaxParameteriv,
-   glGetMinmaxParameterfv,
-   -- * Tokens
-   gl_HISTOGRAM,
-   gl_PROXY_HISTOGRAM,
-   gl_HISTOGRAM_WIDTH,
-   gl_HISTOGRAM_FORMAT,
-   gl_HISTOGRAM_RED_SIZE,
-   gl_HISTOGRAM_GREEN_SIZE,
-   gl_HISTOGRAM_BLUE_SIZE,
-   gl_HISTOGRAM_ALPHA_SIZE,
-   gl_HISTOGRAM_LUMINANCE_SIZE,
-   gl_HISTOGRAM_SINK,
-   gl_MINMAX,
-   gl_MINMAX_FORMAT,
-   gl_MINMAX_SINK
-) where
-
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/IndexArrayFormats.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/IndexArrayFormats.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/IndexArrayFormats.hs
+++ /dev/null
@@ -1,52 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.IndexArrayFormats
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All tokens from the EXT_index_array_formats extension, see
--- <http://www.opengl.org/registry/specs/EXT/index_array_formats.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.IndexArrayFormats (
-   -- * Tokens
-   gl_IUI_V2F,
-   gl_IUI_V3F,
-   gl_IUI_N3F_V2F,
-   gl_IUI_N3F_V3F,
-   gl_T2F_IUI_V2F,
-   gl_T2F_IUI_V3F,
-   gl_T2F_IUI_N3F_V2F,
-   gl_T2F_IUI_N3F_V3F
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_IUI_V2F :: GLenum
-gl_IUI_V2F = 0x81AD
-
-gl_IUI_V3F :: GLenum
-gl_IUI_V3F = 0x81AE
-
-gl_IUI_N3F_V2F :: GLenum
-gl_IUI_N3F_V2F = 0x81AF
-
-gl_IUI_N3F_V3F :: GLenum
-gl_IUI_N3F_V3F = 0x81B0
-
-gl_T2F_IUI_V2F :: GLenum
-gl_T2F_IUI_V2F = 0x81B1
-
-gl_T2F_IUI_V3F :: GLenum
-gl_T2F_IUI_V3F = 0x81B2
-
-gl_T2F_IUI_N3F_V2F :: GLenum
-gl_T2F_IUI_N3F_V2F = 0x81B3
-
-gl_T2F_IUI_N3F_V3F :: GLenum
-gl_T2F_IUI_N3F_V3F = 0x81B4
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/IndexFunc.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/IndexFunc.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/IndexFunc.hs
+++ /dev/null
@@ -1,43 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.IndexFunc
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the EXT_index_func extension, see
--- <http://www.opengl.org/registry/specs/EXT/index_func.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.IndexFunc (
-   -- * Functions
-   glIndexFunc,
-   -- * Tokens
-   gl_INDEX_TEST,
-   gl_INDEX_TEST_FUNC,
-   gl_INDEX_TEST_REF
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Graphics.Rendering.OpenGL.Raw.Extensions
-
-#include "HsOpenGLRaw.h"
-
-extensionNameString :: String
-extensionNameString = "GL_EXT_index_func"
-
-EXTENSION_ENTRY(glIndexFunc,GLenum -> GLfloat -> IO ())
-
-gl_INDEX_TEST :: GLenum
-gl_INDEX_TEST = 0x81B5
-
-gl_INDEX_TEST_FUNC :: GLenum
-gl_INDEX_TEST_FUNC = 0x81B6
-
-gl_INDEX_TEST_REF :: GLenum
-gl_INDEX_TEST_REF = 0x81B7
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/IndexMaterial.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/IndexMaterial.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/IndexMaterial.hs
+++ /dev/null
@@ -1,43 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.IndexMaterial
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the EXT_index_material extension, see
--- <http://www.opengl.org/registry/specs/EXT/index_material.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.IndexMaterial (
-   -- * Functions
-   glIndexMaterial,
-   -- * Tokens
-   gl_INDEX_MATERIAL,
-   gl_INDEX_MATERIAL_PARAMETER,
-   gl_INDEX_MATERIAL_FACE
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Graphics.Rendering.OpenGL.Raw.Extensions
-
-#include "HsOpenGLRaw.h"
-
-extensionNameString :: String
-extensionNameString = "GL_EXT_index_material"
-
-EXTENSION_ENTRY(glIndexMaterial,GLenum -> GLenum -> IO ())
-
-gl_INDEX_MATERIAL :: GLenum
-gl_INDEX_MATERIAL = 0x81B8
-
-gl_INDEX_MATERIAL_PARAMETER :: GLenum
-gl_INDEX_MATERIAL_PARAMETER = 0x81B9
-
-gl_INDEX_MATERIAL_FACE :: GLenum
-gl_INDEX_MATERIAL_FACE = 0x81BA
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/LightTexture.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/LightTexture.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/LightTexture.hs
+++ /dev/null
@@ -1,73 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.LightTexture
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the EXT_light_texture extension, see
--- <http://www.opengl.org/registry/specs/EXT/light_texture.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.LightTexture (
-   -- * Functions
-   glApplyTexture,
-   glTextureLight,
-   glTextureMaterial,
-   -- * Tokens
-   gl_FRAGMENT_MATERIAL,
-   gl_FRAGMENT_NORMAL,
-   gl_FRAGMENT_DEPTH,
-   gl_FRAGMENT_COLOR,
-   gl_ATTENUATION,
-   gl_SHADOW_ATTENUATION,
-   gl_TEXTURE_APPLICATION_MODE,
-   gl_TEXTURE_LIGHT,
-   gl_TEXTURE_MATERIAL_FACE,
-   gl_TEXTURE_MATERIAL_PARAMETER
-) where
-
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Graphics.Rendering.OpenGL.Raw.Extensions
-
-#include "HsOpenGLRaw.h"
-
-extensionNameString :: String
-extensionNameString = "GL_EXT_light_texture"
-
-EXTENSION_ENTRY(glApplyTexture,GLenum -> IO ())
-EXTENSION_ENTRY(glTextureLight,GLenum -> IO ())
-EXTENSION_ENTRY(glTextureMaterial,GLenum -> GLenum -> IO ())
-
-gl_FRAGMENT_MATERIAL :: GLenum
-gl_FRAGMENT_MATERIAL = 0x8349
-
-gl_FRAGMENT_NORMAL :: GLenum
-gl_FRAGMENT_NORMAL = 0x834A
-
-gl_FRAGMENT_COLOR :: GLenum
-gl_FRAGMENT_COLOR = 0x834C
-
-gl_ATTENUATION :: GLenum
-gl_ATTENUATION = 0x834D
-
-gl_SHADOW_ATTENUATION :: GLenum
-gl_SHADOW_ATTENUATION = 0x834E
-
-gl_TEXTURE_APPLICATION_MODE :: GLenum
-gl_TEXTURE_APPLICATION_MODE = 0x834F
-
-gl_TEXTURE_LIGHT :: GLenum
-gl_TEXTURE_LIGHT = 0x8350
-
-gl_TEXTURE_MATERIAL_FACE :: GLenum
-gl_TEXTURE_MATERIAL_FACE = 0x8351
-
-gl_TEXTURE_MATERIAL_PARAMETER :: GLenum
-gl_TEXTURE_MATERIAL_PARAMETER = 0x8352
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/MultiDrawArrays.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/MultiDrawArrays.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/MultiDrawArrays.hs
+++ /dev/null
@@ -1,22 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.MultiDrawArrays
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the EXT_multi_draw_arrays extension, see
--- <http://www.opengl.org/registry/specs/EXT/multi_draw_arrays.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.MultiDrawArrays (
-   -- * Functions
-   glMultiDrawArrays,
-   glMultiDrawElements
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/Multisample.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/Multisample.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/Multisample.hs
+++ /dev/null
@@ -1,89 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.Multisample
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the EXT_multisample extension, see
--- <http://www.opengl.org/registry/specs/EXT/multisample.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.Multisample (
-   -- * Functions
-   glSampleMask,
-   glSamplePattern,
-   -- * Tokens
-   gl_MULTISAMPLE,
-   gl_SAMPLE_ALPHA_TO_MASK,
-   gl_SAMPLE_ALPHA_TO_ONE,
-   gl_SAMPLE_MASK_EXT,
-   gl_MULTISAMPLE_BIT,
-   gl_1PASS,
-   gl_2PASS_0,
-   gl_2PASS_1,
-   gl_4PASS_0,
-   gl_4PASS_1,
-   gl_4PASS_2,
-   gl_4PASS_3,
-   gl_SAMPLE_BUFFERS,
-   gl_SAMPLES,
-   gl_SAMPLE_MASK_VALUE_EXT,
-   gl_SAMPLE_MASK_INVERT,
-   gl_SAMPLE_PATTERN
-) where
-
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Graphics.Rendering.OpenGL.Raw.Extensions
-
-#include "HsOpenGLRaw.h"
-
-extensionNameString :: String
-extensionNameString = "GL_EXT_multisample"
-
-EXTENSION_ENTRY(glSampleMask,GLclampf -> GLboolean -> IO ())
-EXTENSION_ENTRY(glSamplePattern,GLenum -> IO ())
-
-gl_SAMPLE_ALPHA_TO_MASK :: GLenum
-gl_SAMPLE_ALPHA_TO_MASK = 0x809E
-
--- | Note: We use the EXT suffix here, because the name clashes with the ARB_texture_multisample extension.
-gl_SAMPLE_MASK_EXT :: GLenum
-gl_SAMPLE_MASK_EXT = 0x80A0
-
-gl_1PASS :: GLenum
-gl_1PASS = 0x80A1
-
-gl_2PASS_0 :: GLenum
-gl_2PASS_0 = 0x80A2
-
-gl_2PASS_1 :: GLenum
-gl_2PASS_1 = 0x80A3
-
-gl_4PASS_0 :: GLenum
-gl_4PASS_0 = 0x80A4
-
-gl_4PASS_1 :: GLenum
-gl_4PASS_1 = 0x80A5
-
-gl_4PASS_2 :: GLenum
-gl_4PASS_2 = 0x80A6
-
-gl_4PASS_3 :: GLenum
-gl_4PASS_3 = 0x80A7
-
--- | Note: We use the EXT suffix here, because the name clashes with the ARB_texture_multisample extension.
-gl_SAMPLE_MASK_VALUE_EXT :: GLenum
-gl_SAMPLE_MASK_VALUE_EXT = 0x80AA
-
-gl_SAMPLE_MASK_INVERT :: GLenum
-gl_SAMPLE_MASK_INVERT = 0x80AB
-
-gl_SAMPLE_PATTERN :: GLenum
-gl_SAMPLE_PATTERN = 0x80AC
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/PackedFloat.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/PackedFloat.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/PackedFloat.hs
+++ /dev/null
@@ -1,25 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.PackedFloat
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the EXT_packed_float extension not already
--- in the OpenGL 3.1 core, see
--- <http://www.opengl.org/registry/specs/EXT/packed_float.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.PackedFloat (
-   -- * Tokens
-   gl_RGBA_SIGNED_COMPONENTS
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_RGBA_SIGNED_COMPONENTS :: GLenum
-gl_RGBA_SIGNED_COMPONENTS = 0x8C3C
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/PackedPixels.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/PackedPixels.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/PackedPixels.hs
+++ /dev/null
@@ -1,25 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.PackedPixels
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All tokens from the EXT_packed_pixel extension, see
--- <http://www.opengl.org/registry/specs/EXT/packed_pixel.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.PackedPixels (
-   -- * Tokens
-   gl_UNSIGNED_BYTE_3_3_2,
-   gl_UNSIGNED_SHORT_4_4_4_4,
-   gl_UNSIGNED_SHORT_5_5_5_1,
-   gl_UNSIGNED_INT_8_8_8_8,
-   gl_UNSIGNED_INT_10_10_10_2
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/PalettedTexture.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/PalettedTexture.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/PalettedTexture.hs
+++ /dev/null
@@ -1,71 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.PalettedTexture
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the EXT_paletted_texture extension, see
--- <http://www.opengl.org/registry/specs/EXT/paletted_texture.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.PalettedTexture (
-   -- * Functions
-   glColorTable,
-   glColorSubTable,
-   glGetColorTable,
-   glGetColorTableParameteriv,
-   glGetColorTableParameterfv,
-   -- * Tokens
-   gl_COLOR_INDEX1,
-   gl_COLOR_INDEX2,
-   gl_COLOR_INDEX4,
-   gl_COLOR_INDEX8,
-   gl_COLOR_INDEX12,
-   gl_COLOR_INDEX16,
-   gl_COLOR_TABLE_FORMAT,
-   gl_COLOR_TABLE_WIDTH,
-   gl_COLOR_TABLE_RED_SIZE,
-   gl_COLOR_TABLE_GREEN_SIZE,
-   gl_COLOR_TABLE_BLUE_SIZE,
-   gl_COLOR_TABLE_ALPHA_SIZE,
-   gl_COLOR_TABLE_LUMINANCE_SIZE,
-   gl_COLOR_TABLE_INTENSITY_SIZE,
-   gl_TEXTURE_INDEX_SIZE,
-   gl_TEXTURE_1D,
-   gl_TEXTURE_2D,
-   gl_TEXTURE_3D,
-   gl_TEXTURE_CUBE_MAP,
-   gl_PROXY_TEXTURE_1D,
-   gl_PROXY_TEXTURE_2D,
-   gl_PROXY_TEXTURE_3D,
-   gl_PROXY_TEXTURE_CUBE_MAP
-) where
-
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_COLOR_INDEX1 :: GLenum
-gl_COLOR_INDEX1 = 0x80E2
-
-gl_COLOR_INDEX2 :: GLenum
-gl_COLOR_INDEX2 = 0x80E3
-
-gl_COLOR_INDEX4 :: GLenum
-gl_COLOR_INDEX4 = 0x80E4
-
-gl_COLOR_INDEX8 :: GLenum
-gl_COLOR_INDEX8 = 0x80E5
-
-gl_COLOR_INDEX12 :: GLenum
-gl_COLOR_INDEX12 = 0x80E6
-
-gl_COLOR_INDEX16 :: GLenum
-gl_COLOR_INDEX16 = 0x80E7
-
-gl_TEXTURE_INDEX_SIZE :: GLenum
-gl_TEXTURE_INDEX_SIZE = 0x80ED
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/PixelTransform.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/PixelTransform.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/PixelTransform.hs
+++ /dev/null
@@ -1,78 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.PixelTransform
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the EXT_pixel_transform extension, see
--- <http://www.opengl.org/registry/specs/EXT/pixel_transform.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.PixelTransform (
-   -- * Functions
-   glPixelTransformParameteri,
-   glPixelTransformParameterf,
-   glPixelTransformParameteriv,
-   glPixelTransformParameterfv,
-   glGetPixelTransformParameteriv,
-   glGetPixelTransformParameterfv,
-   -- * Tokens
-   gl_PIXEL_MAG_FILTER,
-   gl_PIXEL_MIN_FILTER,
-   gl_PIXEL_CUBIC_WEIGHT,
-   gl_CUBIC,
-   gl_AVERAGE,
-   gl_PIXEL_TRANSFORM_2D,
-   gl_PIXEL_TRANSFORM_2D_STACK_DEPTH,
-   gl_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH,
-   gl_PIXEL_TRANSFORM_2D_MATRIX
-) where
-
-import Foreign.Ptr
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Graphics.Rendering.OpenGL.Raw.Extensions
-
-#include "HsOpenGLRaw.h"
-
-extensionNameString :: String
-extensionNameString = "GL_EXT_pixel_transform"
-
-EXTENSION_ENTRY(glPixelTransformParameteri,GLenum -> GLenum -> GLint -> IO ())
-EXTENSION_ENTRY(glPixelTransformParameterf,GLenum -> GLenum -> GLfloat -> IO ())
-EXTENSION_ENTRY(glPixelTransformParameteriv,GLenum -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glPixelTransformParameterfv,GLenum -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glGetPixelTransformParameteriv,GLenum -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glGetPixelTransformParameterfv,GLenum -> GLenum -> Ptr GLfloat -> IO ())
-
-gl_PIXEL_MAG_FILTER :: GLenum
-gl_PIXEL_MAG_FILTER = 0x8331
-
-gl_PIXEL_MIN_FILTER :: GLenum
-gl_PIXEL_MIN_FILTER = 0x8332
-
-gl_PIXEL_CUBIC_WEIGHT :: GLenum
-gl_PIXEL_CUBIC_WEIGHT = 0x8333
-
-gl_CUBIC :: GLenum
-gl_CUBIC = 0x8334
-
-gl_AVERAGE :: GLenum
-gl_AVERAGE = 0x8335
-
-gl_PIXEL_TRANSFORM_2D :: GLenum
-gl_PIXEL_TRANSFORM_2D = 0x8330
-
-gl_PIXEL_TRANSFORM_2D_STACK_DEPTH :: GLenum
-gl_PIXEL_TRANSFORM_2D_STACK_DEPTH = 0x8336
-
-gl_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH :: GLenum
-gl_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH = 0x8337
-
-gl_PIXEL_TRANSFORM_2D_MATRIX :: GLenum
-gl_PIXEL_TRANSFORM_2D_MATRIX = 0x8338
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/PointParameters.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/PointParameters.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/PointParameters.hs
+++ /dev/null
@@ -1,31 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.PointParameters
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the EXT_point_parameters extension, see
--- <http://www.opengl.org/registry/specs/EXT/point_parameters.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.PointParameters (
-   -- * Functions
-   glPointParameterf,
-   glPointParameterfv,
-   -- * Tokens
-   gl_POINT_SIZE_MIN,
-   gl_POINT_SIZE_MAX,
-   gl_POINT_FADE_THRESHOLD_SIZE,
-   gl_DISTANCE_ATTENUATION
-) where
-
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_DISTANCE_ATTENUATION :: GLenum
-gl_DISTANCE_ATTENUATION = gl_POINT_DISTANCE_ATTENUATION
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/PolygonOffset.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/PolygonOffset.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/PolygonOffset.hs
+++ /dev/null
@@ -1,26 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.PolygonOffset
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the EXT_polygon_offset extension, see
---  <http://www.opengl.org/registry/specs/EXT/polygon_offset.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.PolygonOffset (
-   -- * Functions
-   glPolygonOffset,
-   -- * Tokens
-   gl_POLYGON_OFFSET_BIAS
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_POLYGON_OFFSET_BIAS :: GLenum
-gl_POLYGON_OFFSET_BIAS = 0x8039
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/ProvokingVertex.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/ProvokingVertex.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/ProvokingVertex.hs
+++ /dev/null
@@ -1,26 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.ProvokingVertex
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the EXT_provoking_vertex, see
--- <http://www.opengl.org/registry/specs/EXT/EXT_provoking_vertex.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.ProvokingVertex (
-   -- * Functions
-   glProvokingVertex,
-   -- * Tokens
-   gl_FIRST_VERTEX_CONVENTION,
-   gl_LAST_VERTEX_CONVENTION,
-   gl_PROVOKING_VERTEX,
-   gl_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION
-) where
-
-import Graphics.Rendering.OpenGL.Raw.ARB.ProvokingVertex
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/RescaleNormal.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/RescaleNormal.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/RescaleNormal.hs
+++ /dev/null
@@ -1,21 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.RescaleNormal
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All tokens from the EXT_rescale_normal extension, see
--- <http://www.opengl.org/registry/specs/EXT/rescale_normal.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.RescaleNormal (
-   -- * Tokens
-   gl_RESCALE_NORMAL
-) where
-
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/SceneMarker.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/SceneMarker.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/SceneMarker.hs
+++ /dev/null
@@ -1,31 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.SceneMarker
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions from the EXT_scene_marker extension, see
--- <http://www.opengl.org/registry/specs/EXT/scene_marker.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.SceneMarker (
-   -- * Functions
-   glBeginScene,
-   glEndScene
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Extensions
-
-#include "HsOpenGLRaw.h"
-
-extensionNameString :: String
-extensionNameString = "GL_EXT_scene_marker"
-
-EXTENSION_ENTRY(glBeginScene,IO ())
-EXTENSION_ENTRY(glEndScene,IO ())
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/SecondaryColor.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/SecondaryColor.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/SecondaryColor.hs
+++ /dev/null
@@ -1,45 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.SecondaryColor
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the EXT_secondary_color extension, see
--- <http://www.opengl.org/registry/specs/EXT/secondary_color.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.SecondaryColor (
-   -- * Functions
-   glSecondaryColor3b,
-   glSecondaryColor3s,
-   glSecondaryColor3i,
-   glSecondaryColor3f,
-   glSecondaryColor3d,
-   glSecondaryColor3ub,
-   glSecondaryColor3us,
-   glSecondaryColor3ui,
-   glSecondaryColor3bv,
-   glSecondaryColor3sv,
-   glSecondaryColor3iv,
-   glSecondaryColor3fv,
-   glSecondaryColor3dv,
-   glSecondaryColor3ubv,
-   glSecondaryColor3usv,
-   glSecondaryColor3uiv,
-   glSecondaryColorPointer,
-   -- * Tokens
-   gl_COLOR_SUM,
-   gl_CURRENT_SECONDARY_COLOR,
-   gl_SECONDARY_COLOR_ARRAY_SIZE,
-   gl_SECONDARY_COLOR_ARRAY_TYPE,
-   gl_SECONDARY_COLOR_ARRAY_STRIDE,
-   gl_SECONDARY_COLOR_ARRAY_POINTER,
-   gl_SECONDARY_COLOR_ARRAY
-) where
-
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/SeparateSpecularColor.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/SeparateSpecularColor.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/SeparateSpecularColor.hs
+++ /dev/null
@@ -1,23 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.SeparateSpecularColor
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All tokens from the EXT_separate_specular_color extension, see
--- <http://www.opengl.org/registry/specs/EXT/separate_specular_color.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.SeparateSpecularColor (
-   -- * Tokens
-   gl_LIGHT_MODEL_COLOR_CONTROL,
-   gl_SINGLE_COLOR,
-   gl_SEPARATE_SPECULAR_COLOR
-) where
-
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/SharedTexturePalette.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/SharedTexturePalette.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/SharedTexturePalette.hs
+++ /dev/null
@@ -1,24 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.SharedTexturePalette
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All tokens from the EXT_shared_texture_palette extension, see
--- <http://www.opengl.org/registry/specs/EXT/shared_texture_palette.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.SharedTexturePalette (
-   -- * Tokens
-   gl_SHARED_TEXTURE_PALETTE
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_SHARED_TEXTURE_PALETTE :: GLenum
-gl_SHARED_TEXTURE_PALETTE = 0x81FB
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/StencilClearTag.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/StencilClearTag.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/StencilClearTag.hs
+++ /dev/null
@@ -1,40 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.StencilClearTag
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the EXT_stencil_clear_tag extension not
--- already in the OpenGL 3.1 core, see
--- <http://www.opengl.org/registry/specs/EXT/stencil_clear_tag.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.StencilClearTag (
-   -- * Functions
-   glStencilClearTag,
-   -- * Tokens
-   gl_STENCIL_TAG_BITS,
-   gl_STENCIL_CLEAR_TAG_VALUE
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Graphics.Rendering.OpenGL.Raw.Extensions
-
-#include "HsOpenGLRaw.h"
-
-extensionNameString :: String
-extensionNameString = "GL_EXT_stencil_clear_tag"
-
-EXTENSION_ENTRY(glStencilClearTag,GLsizei -> GLuint -> IO ())
-
-gl_STENCIL_TAG_BITS :: GLenum
-gl_STENCIL_TAG_BITS = 0x88F2
-
-gl_STENCIL_CLEAR_TAG_VALUE :: GLenum
-gl_STENCIL_CLEAR_TAG_VALUE = 0x88F3
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/StencilTwoSide.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/StencilTwoSide.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/StencilTwoSide.hs
+++ /dev/null
@@ -1,39 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.StencilTwoSide
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the EXT_stencil_two_side extension, see
--- <http://www.opengl.org/registry/specs/EXT/stencil_two_side.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.StencilTwoSide (
-   -- * Functions
-   glActiveStencilFace,
-   -- * Tokens
-   gl_STENCIL_TEST_TWO_SIDE,
-   gl_ACTIVE_STENCIL_FACE
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Graphics.Rendering.OpenGL.Raw.Extensions
-
-#include "HsOpenGLRaw.h"
-
-extensionNameString :: String
-extensionNameString = "GL_EXT_stencil_two_side"
-
-EXTENSION_ENTRY(glActiveStencilFace,GLenum -> IO ())
-
-gl_STENCIL_TEST_TWO_SIDE :: GLenum
-gl_STENCIL_TEST_TWO_SIDE = 0x8910
-
-gl_ACTIVE_STENCIL_FACE :: GLenum
-gl_ACTIVE_STENCIL_FACE = 0x8911
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/StencilWrap.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/StencilWrap.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/StencilWrap.hs
+++ /dev/null
@@ -1,23 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.StencilWrap
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All tokens from the EXT_stencil_wrap extension, see
--- <http://www.opengl.org/registry/specs/EXT/stencil_wrap.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.StencilWrap (
-   -- * Tokens
-   gl_INCR_WRAP,
-   gl_DECR_WRAP
-
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/Subtexture.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/Subtexture.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/Subtexture.hs
+++ /dev/null
@@ -1,23 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.Subtexture
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions from the EXT_subtexture extension, see
--- <http://www.opengl.org/registry/specs/EXT/subtexture.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.Subtexture (
-   -- * Functions
-   glTexSubImage1D,
-   glTexSubImage2D,
-   glTexSubImage3D
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/Texture.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/Texture.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/Texture.hs
+++ /dev/null
@@ -1,70 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.Texture
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the EXT_texture extension, see
--- <http://www.opengl.org/registry/specs/EXT/texture.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.Texture (
-   -- * Tokens
-   gl_ALPHA4,
-   gl_ALPHA8,
-   gl_ALPHA12,
-   gl_ALPHA16,
-   gl_LUMINANCE4,
-   gl_LUMINANCE8,
-   gl_LUMINANCE12,
-   gl_LUMINANCE16,
-   gl_LUMINANCE4_ALPHA4,
-   gl_LUMINANCE6_ALPHA2,
-   gl_LUMINANCE8_ALPHA8,
-   gl_LUMINANCE12_ALPHA4,
-   gl_LUMINANCE12_ALPHA12,
-   gl_LUMINANCE16_ALPHA16,
-   gl_INTENSITY,
-   gl_INTENSITY4,
-   gl_INTENSITY8,
-   gl_INTENSITY12,
-   gl_INTENSITY16,
-   gl_RGB2,
-   gl_RGB4,
-   gl_RGB5,
-   gl_RGB8,
-   gl_RGB10,
-   gl_RGB12,
-   gl_RGB16,
-   gl_RGBA2,
-   gl_RGBA4,
-   gl_RGB5_A1,
-   gl_RGBA8,
-   gl_RGB10_A2,
-   gl_RGBA12,
-   gl_RGBA16,
-   gl_TEXTURE_RED_SIZE,
-   gl_TEXTURE_GREEN_SIZE,
-   gl_TEXTURE_BLUE_SIZE,
-   gl_TEXTURE_ALPHA_SIZE,
-   gl_TEXTURE_LUMINANCE_SIZE,
-   gl_TEXTURE_INTENSITY_SIZE,
-   gl_REPLACE,
-   gl_PROXY_TEXTURE_1D,
-   gl_PROXY_TEXTURE_2D,
-   gl_TEXTURE_TOO_LARGE
-) where
-
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_RGB2 :: GLenum
-gl_RGB2 = 0x804E
-
-gl_TEXTURE_TOO_LARGE :: GLenum
-gl_TEXTURE_TOO_LARGE = 0x8065
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/Texture3D.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/Texture3D.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/Texture3D.hs
+++ /dev/null
@@ -1,31 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.Texture3D
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the EXT_texture3d extension, see
--- <http://www.opengl.org/registry/specs/EXT/texture3d.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.Texture3D (
-   -- * Functions
-   glTexImage3D,
-   -- * Tokens
-   gl_PACK_SKIP_IMAGES,
-   gl_PACK_IMAGE_HEIGHT,
-   gl_UNPACK_SKIP_IMAGES,
-   gl_UNPACK_IMAGE_HEIGHT,
-   gl_TEXTURE_3D,
-   gl_PROXY_TEXTURE_3D,
-   gl_TEXTURE_DEPTH,
-   gl_TEXTURE_WRAP_R,
-   gl_MAX_3D_TEXTURE_SIZE
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureCompressionDxt1.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureCompressionDxt1.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureCompressionDxt1.hs
+++ /dev/null
@@ -1,23 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.TextureCompressionDxt1
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the EXT_texture_compression_dxt1 extension
--- not already in the OpenGL 3.1 core, see
--- <http://www.opengl.org/registry/specs/EXT/texture_compression_dxt1.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.TextureCompressionDxt1 (
-   -- * Tokens
-   gl_COMPRESSED_RGB_S3TC_DXT1,
-   gl_COMPRESSED_RGBA_S3TC_DXT1
-) where
-
-import Graphics.Rendering.OpenGL.Raw.EXT.TextureCompressionS3tc
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureCompressionLatc.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureCompressionLatc.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureCompressionLatc.hs
+++ /dev/null
@@ -1,37 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.TextureCompressionLatc
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the EXT_texture_compression_latc extension
--- not already in the OpenGL 3.1 core, see
--- <http://www.opengl.org/registry/specs/EXT/texture_compression_latc.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.TextureCompressionLatc (
-   -- * Tokens
-   gl_COMPRESSED_LUMINANCE_LATC1,
-   gl_COMPRESSED_SIGNED_LUMINANCE_LATC1,
-   gl_COMPRESSED_LUMINANCE_ALPHA_LATC2,
-   gl_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_COMPRESSED_LUMINANCE_LATC1 :: GLenum
-gl_COMPRESSED_LUMINANCE_LATC1 = 0x8C70
-
-gl_COMPRESSED_SIGNED_LUMINANCE_LATC1 :: GLenum
-gl_COMPRESSED_SIGNED_LUMINANCE_LATC1 = 0x8C71
-
-gl_COMPRESSED_LUMINANCE_ALPHA_LATC2 :: GLenum
-gl_COMPRESSED_LUMINANCE_ALPHA_LATC2 = 0x8C72
-
-gl_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2 :: GLenum
-gl_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2 = 0x8C73
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureCompressionS3tc.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureCompressionS3tc.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureCompressionS3tc.hs
+++ /dev/null
@@ -1,36 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.TextureCompressionS3tc
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All tokens from the EXT_texture_compression_s3tc extension, see
--- <http://www.opengl.org/registry/specs/EXT/texture_compression_s3tc.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.TextureCompressionS3tc (
-   -- * Tokens
-   gl_COMPRESSED_RGB_S3TC_DXT1,
-   gl_COMPRESSED_RGBA_S3TC_DXT1,
-   gl_COMPRESSED_RGBA_S3TC_DXT3,
-   gl_COMPRESSED_RGBA_S3TC_DXT5
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_COMPRESSED_RGB_S3TC_DXT1 :: GLenum
-gl_COMPRESSED_RGB_S3TC_DXT1 = 0x83F0
-
-gl_COMPRESSED_RGBA_S3TC_DXT1 :: GLenum
-gl_COMPRESSED_RGBA_S3TC_DXT1 = 0x83F1
-
-gl_COMPRESSED_RGBA_S3TC_DXT3 :: GLenum
-gl_COMPRESSED_RGBA_S3TC_DXT3 = 0x83F2
-
-gl_COMPRESSED_RGBA_S3TC_DXT5 :: GLenum
-gl_COMPRESSED_RGBA_S3TC_DXT5 = 0x83F3
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureEnvAdd.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureEnvAdd.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureEnvAdd.hs
+++ /dev/null
@@ -1,21 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.TextureEnvAdd
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All tokens from the EXT_texture_env_add extension, see
--- <http://www.opengl.org/registry/specs/EXT/texture_env_add.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.TextureEnvAdd (
-   -- * Tokens
-   gl_ADD
-) where
-
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureEnvCombine.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureEnvCombine.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureEnvCombine.hs
+++ /dev/null
@@ -1,42 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.TextureEnvCombine
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the EXT_texture_env_combine extension not
--- already in the OpenGL 3.1 core, see
--- <http://www.opengl.org/registry/specs/EXT/texture_env_combine.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.TextureEnvCombine (
-   -- * Tokens
-   gl_COMBINE,
-   gl_COMBINE_RGB,
-   gl_COMBINE_ALPHA,
-   gl_SOURCE0_RGB,
-   gl_SOURCE1_RGB,
-   gl_SOURCE2_RGB,
-   gl_SOURCE0_ALPHA,
-   gl_SOURCE1_ALPHA,
-   gl_SOURCE2_ALPHA,
-   gl_OPERAND0_RGB,
-   gl_OPERAND1_RGB,
-   gl_OPERAND2_RGB,
-   gl_OPERAND0_ALPHA,
-   gl_OPERAND1_ALPHA,
-   gl_OPERAND2_ALPHA,
-   gl_RGB_SCALE,
-   gl_ADD_SIGNED,
-   gl_INTERPOLATE,
-   gl_CONSTANT,
-   gl_PRIMARY_COLOR,
-   gl_PREVIOUS
-) where
-
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureEnvDot3.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureEnvDot3.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureEnvDot3.hs
+++ /dev/null
@@ -1,23 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.TextureEnvDot3
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the EXT_texture_env_dot3 extension not
--- already in the OpenGL 3.1 core, see
--- <http://www.opengl.org/registry/specs/EXT/texture_env_dot3.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.TextureEnvDot3 (
-   -- * Tokens
-   gl_DOT3_RGB,
-   gl_DOT3_RGBA
-) where
-
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureFilterAnisotropic.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureFilterAnisotropic.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureFilterAnisotropic.hs
+++ /dev/null
@@ -1,28 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.TextureFilterAnisotropic
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All tokens from the EXT_texture_filter_anisotropic, see
--- <http://www.opengl.org/registry/specs/EXT/texture_filter_anisotropic.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.TextureFilterAnisotropic (
-   -- * Tokens
-   gl_TEXTURE_MAX_ANISOTROPY,
-   gl_MAX_TEXTURE_MAX_ANISOTROPY
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_TEXTURE_MAX_ANISOTROPY :: GLenum
-gl_TEXTURE_MAX_ANISOTROPY = 0x84FE
-
-gl_MAX_TEXTURE_MAX_ANISOTROPY :: GLenum
-gl_MAX_TEXTURE_MAX_ANISOTROPY = 0x84FF
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureInteger.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureInteger.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureInteger.hs
+++ /dev/null
@@ -1,140 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.TextureInteger
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the EXT_texture_integer extension not
--- already in the OpenGL 3.1 core, see
--- <http://www.opengl.org/registry/specs/EXT/texture_integer.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.TextureInteger (
-   -- * Functions
-   glClearColorIi,
-   glClearColorIui,
-   -- * Tokens
-   gl_ALPHA32UI,
-   gl_INTENSITY32UI,
-   gl_LUMINANCE32UI,
-   gl_LUMINANCE_ALPHA32UI,
-   gl_ALPHA16UI,
-   gl_INTENSITY16UI,
-   gl_LUMINANCE16UI,
-   gl_LUMINANCE_ALPHA16UI,
-   gl_ALPHA8UI,
-   gl_INTENSITY8UI,
-   gl_LUMINANCE8UI,
-   gl_LUMINANCE_ALPHA8UI,
-   gl_ALPHA32I,
-   gl_INTENSITY32I,
-   gl_LUMINANCE32I,
-   gl_LUMINANCE_ALPHA32I,
-   gl_ALPHA16I,
-   gl_INTENSITY16I,
-   gl_LUMINANCE16I,
-   gl_LUMINANCE_ALPHA16I,
-   gl_ALPHA8I,
-   gl_INTENSITY8I,
-   gl_LUMINANCE8I,
-   gl_LUMINANCE_ALPHA8I,
-   gl_ALPHA_INTEGER,
-   gl_LUMINANCE_INTEGER,
-   gl_LUMINANCE_ALPHA_INTEGER
-) where
-
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Graphics.Rendering.OpenGL.Raw.Extensions
-
-#include "HsOpenGLRaw.h"
-
-extensionNameString :: String
-extensionNameString = "GL_EXT_texture_integer"
-
-EXTENSION_ENTRY(glClearColorIi,GLint -> GLint -> GLint -> GLint -> IO ())
-EXTENSION_ENTRY(glClearColorIui,GLuint -> GLuint -> GLuint -> GLuint -> IO ())
-
-gl_ALPHA32UI :: GLenum
-gl_ALPHA32UI = 0x8D72
-
-gl_INTENSITY32UI :: GLenum
-gl_INTENSITY32UI = 0x8D73
-
-gl_LUMINANCE32UI :: GLenum
-gl_LUMINANCE32UI = 0x8D74
-
-gl_LUMINANCE_ALPHA32UI :: GLenum
-gl_LUMINANCE_ALPHA32UI = 0x8D75
-
-gl_ALPHA16UI :: GLenum
-gl_ALPHA16UI = 0x8D78
-
-gl_INTENSITY16UI :: GLenum
-gl_INTENSITY16UI = 0x8D79
-
-gl_LUMINANCE16UI :: GLenum
-gl_LUMINANCE16UI = 0x8D7A
-
-gl_LUMINANCE_ALPHA16UI :: GLenum
-gl_LUMINANCE_ALPHA16UI = 0x8D7B
-
-gl_ALPHA8UI :: GLenum
-gl_ALPHA8UI = 0x8D7E
-
-gl_INTENSITY8UI :: GLenum
-gl_INTENSITY8UI = 0x8D7F
-
-gl_LUMINANCE8UI :: GLenum
-gl_LUMINANCE8UI = 0x8D80
-
-gl_LUMINANCE_ALPHA8UI :: GLenum
-gl_LUMINANCE_ALPHA8UI = 0x8D81
-
-gl_ALPHA32I :: GLenum
-gl_ALPHA32I = 0x8D84
-
-gl_INTENSITY32I :: GLenum
-gl_INTENSITY32I = 0x8D85
-
-gl_LUMINANCE32I :: GLenum
-gl_LUMINANCE32I = 0x8D86
-
-gl_LUMINANCE_ALPHA32I :: GLenum
-gl_LUMINANCE_ALPHA32I = 0x8D87
-
-gl_ALPHA16I :: GLenum
-gl_ALPHA16I = 0x8D8A
-
-gl_INTENSITY16I :: GLenum
-gl_INTENSITY16I = 0x8D8B
-
-gl_LUMINANCE16I :: GLenum
-gl_LUMINANCE16I = 0x8D8C
-
-gl_LUMINANCE_ALPHA16I :: GLenum
-gl_LUMINANCE_ALPHA16I = 0x8D8D
-
-gl_ALPHA8I :: GLenum
-gl_ALPHA8I = 0x8D90
-
-gl_INTENSITY8I :: GLenum
-gl_INTENSITY8I = 0x8D91
-
-gl_LUMINANCE8I :: GLenum
-gl_LUMINANCE8I = 0x8D92
-
-gl_LUMINANCE_ALPHA8I :: GLenum
-gl_LUMINANCE_ALPHA8I = 0x8D93
-
-gl_LUMINANCE_INTEGER :: GLenum
-gl_LUMINANCE_INTEGER = 0x8D9C
-
-gl_LUMINANCE_ALPHA_INTEGER :: GLenum
-gl_LUMINANCE_ALPHA_INTEGER = 0x8D9D
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureLodBias.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureLodBias.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureLodBias.hs
+++ /dev/null
@@ -1,24 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.TextureLodBias
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All tokens from the EXT_texture_lod_bias extension, see
--- <http://www.opengl.org/registry/specs/EXT/texture_lod_bias.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.TextureLodBias (
-   -- * Tokens
-   gl_TEXTURE_FILTER_CONTROL,
-   gl_TEXTURE_LOD_BIAS,
-   gl_MAX_TEXTURE_LOD_BIAS
-) where
-
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
-import Graphics.Rendering.OpenGL.Raw.Core32
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureMirrorClamp.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureMirrorClamp.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureMirrorClamp.hs
+++ /dev/null
@@ -1,32 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.TextureMirrorClamp
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the EXT_texture_mirror_clamp extension, see
--- <http://www.opengl.org/registry/specs/EXT/texture_mirror_clamp.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.TextureMirrorClamp (
-   -- * Tokens
-  gl_MIRROR_CLAMP,
-  gl_MIRROR_CLAMP_TO_EDGE,
-  gl_MIRROR_CLAMP_TO_BORDER
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_MIRROR_CLAMP :: GLenum
-gl_MIRROR_CLAMP = 0x8742
-
-gl_MIRROR_CLAMP_TO_EDGE :: GLenum
-gl_MIRROR_CLAMP_TO_EDGE = 0x8743
-
-gl_MIRROR_CLAMP_TO_BORDER :: GLenum
-gl_MIRROR_CLAMP_TO_BORDER = 0x8912
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureObject.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureObject.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureObject.hs
+++ /dev/null
@@ -1,42 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.TextureObject
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the EXT_texture_object extension, see
--- <http://www.opengl.org/registry/specs/EXT/texture_object.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.TextureObject (
-   -- * Functions
-   glGenTextures,
-   glDeleteTextures,
-   glBindTexture,
-   glPrioritizeTextures,
-   glAreTexturesResident,
-   glIsTexture,
-   -- * Tokens
-   gl_TEXTURE_PRIORITY,
-   gl_TEXTURE_RESIDENT,
-   gl_TEXTURE_1D_BINDING,
-   gl_TEXTURE_2D_BINDING,
-   gl_TEXTURE_3D_BINDING
-) where
-
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_TEXTURE_1D_BINDING :: GLenum
-gl_TEXTURE_1D_BINDING = gl_TEXTURE_BINDING_1D
-
-gl_TEXTURE_2D_BINDING :: GLenum
-gl_TEXTURE_2D_BINDING = gl_TEXTURE_BINDING_2D
-
-gl_TEXTURE_3D_BINDING :: GLenum
-gl_TEXTURE_3D_BINDING = gl_TEXTURE_BINDING_3D
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/TexturePerturbNormal.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/TexturePerturbNormal.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/TexturePerturbNormal.hs
+++ /dev/null
@@ -1,39 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.TexturePerturbNormal
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the EXT_texture_perturb_normal, see
--- <http://www.opengl.org/registry/specs/EXT/perturb_normal.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.TexturePerturbNormal (
-   -- * Functions
-   glTextureNormal,
-   -- * Tokens
-   gl_PERTURB,
-   gl_TEXTURE_NORMAL
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Graphics.Rendering.OpenGL.Raw.Extensions
-
-#include "HsOpenGLRaw.h"
-
-extensionNameString :: String
-extensionNameString = "GL_EXT_texture_perturb_normal"
-
-EXTENSION_ENTRY(glTextureNormal,GLenum -> IO ())
-
-gl_PERTURB :: GLenum
-gl_PERTURB = 0x85AE
-
-gl_TEXTURE_NORMAL :: GLenum
-gl_TEXTURE_NORMAL = 0x85AF
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureSRGB.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureSRGB.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureSRGB.hs
+++ /dev/null
@@ -1,44 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.TextureSRGB
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the EXT_texture_sRGB extension not already
--- in the OpenGL 3.1 core, see
--- <http://www.opengl.org/registry/specs/EXT/texture_sRGB.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.TextureSRGB (
-   -- * Tokens
-   gl_SLUMINANCE_ALPHA,
-   gl_SLUMINANCE8_ALPHA8,
-   gl_SLUMINANCE,
-   gl_SLUMINANCE8,
-   gl_COMPRESSED_SLUMINANCE,
-   gl_COMPRESSED_SLUMINANCE_ALPHA,
-   gl_COMPRESSED_SRGB_S3TC_DXT1,
-   gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT1,
-   gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT3,
-   gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT5
-) where
-
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_COMPRESSED_SRGB_S3TC_DXT1 :: GLenum
-gl_COMPRESSED_SRGB_S3TC_DXT1 = 0x8C4C
-
-gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT1 :: GLenum
-gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT1 = 0x8C4D
-
-gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT3 :: GLenum
-gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT3 = 0x8C4E
-
-gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT5 :: GLenum
-gl_COMPRESSED_SRGB_ALPHA_S3TC_DXT5 = 0x8C4F
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureSwizzle.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureSwizzle.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/TextureSwizzle.hs
+++ /dev/null
@@ -1,37 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.TextureSwizzle
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the EXT_texture_swizzle extension not
--- already in the OpenGL 3.1 core, see
--- <http://www.opengl.org/registry/specs/EXT/texture_swizzle.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.TextureSwizzle (
-   -- * Tokens
-   gl_TEXTURE_SWIZZLE_R,
-   gl_TEXTURE_SWIZZLE_G,
-   gl_TEXTURE_SWIZZLE_B,
-   gl_TEXTURE_SWIZZLE_A
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_TEXTURE_SWIZZLE_R :: GLenum
-gl_TEXTURE_SWIZZLE_R = 0x8E42
-
-gl_TEXTURE_SWIZZLE_G :: GLenum
-gl_TEXTURE_SWIZZLE_G = 0x8E43
-
-gl_TEXTURE_SWIZZLE_B :: GLenum
-gl_TEXTURE_SWIZZLE_B = 0x8E44
-
-gl_TEXTURE_SWIZZLE_A :: GLenum
-gl_TEXTURE_SWIZZLE_A = 0x8E45
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/TimerQuery.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/TimerQuery.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/TimerQuery.hs
+++ /dev/null
@@ -1,42 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.TimerQuery
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions, tokens and type from the EXT_timer_query extension, see
--- <http://www.opengl.org/registry/specs/EXT/timer_query.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.TimerQuery (
-   -- * Functions
-   glGetQueryObjecti64v,
-   glGetQueryObjectui64v,
-   -- * Tokens
-   gl_TIME_ELAPSED,
-   -- * Types
-   GLint64,
-   GLuint64
-) where
-
-import Foreign.Ptr
-import Graphics.Rendering.OpenGL.Raw.ARB.Sync
-import Graphics.Rendering.OpenGL.Raw.Core31.Types
-import Graphics.Rendering.OpenGL.Raw.Extensions
-
-#include "HsOpenGLRaw.h"
-
-extensionNameString :: String
-extensionNameString = "GL_EXT_timer_query"
-
-EXTENSION_ENTRY(glGetQueryObjecti64v,GLuint -> GLenum -> Ptr GLint64 -> IO ())
-EXTENSION_ENTRY(glGetQueryObjectui64v,GLuint -> GLenum -> Ptr GLuint64 -> IO ())
-
-gl_TIME_ELAPSED :: GLenum
-gl_TIME_ELAPSED = 0x88BF
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/VertexArray.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/VertexArray.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/VertexArray.hs
+++ /dev/null
@@ -1,63 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.VertexArray
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the EXT_vertex_array extension, see
--- <http://www.opengl.org/registry/specs/EXT/vertex_array.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.VertexArray (
-   -- * Functions
-   glDrawArrays,
-   glVertexPointer,
-   glNormalPointer,
-   glColorPointer,
-   glIndexPointer,
-   glTexCoordPointer,
-   glEdgeFlagPointer,
-   glGetPointerv,
-   -- * Tokens
-   gl_VERTEX_ARRAY,
-   gl_NORMAL_ARRAY,
-   gl_COLOR_ARRAY,
-   gl_INDEX_ARRAY,
-   gl_TEXTURE_COORD_ARRAY,
-   gl_EDGE_FLAG_ARRAY,
-   gl_DOUBLE,
-   gl_VERTEX_ARRAY_SIZE,
-   gl_VERTEX_ARRAY_TYPE,
-   gl_VERTEX_ARRAY_STRIDE,
-   gl_VERTEX_ARRAY_COUNT,
-   gl_NORMAL_ARRAY_TYPE,
-   gl_NORMAL_ARRAY_STRIDE,
-   gl_NORMAL_ARRAY_COUNT,
-   gl_COLOR_ARRAY_SIZE,
-   gl_COLOR_ARRAY_TYPE,
-   gl_COLOR_ARRAY_STRIDE,
-   gl_COLOR_ARRAY_COUNT,
-   gl_INDEX_ARRAY_TYPE,
-   gl_INDEX_ARRAY_STRIDE,
-   gl_INDEX_ARRAY_COUNT,
-   gl_TEXTURE_COORD_ARRAY_SIZE,
-   gl_TEXTURE_COORD_ARRAY_TYPE,
-   gl_TEXTURE_COORD_ARRAY_STRIDE,
-   gl_TEXTURE_COORD_ARRAY_COUNT,
-   gl_EDGE_FLAG_ARRAY_STRIDE,
-   gl_EDGE_FLAG_ARRAY_COUNT,
-   gl_VERTEX_ARRAY_POINTER,
-   gl_NORMAL_ARRAY_POINTER,
-   gl_COLOR_ARRAY_POINTER,
-   gl_INDEX_ARRAY_POINTER,
-   gl_TEXTURE_COORD_ARRAY_POINTER,
-   gl_EDGE_FLAG_ARRAY_POINTER
-) where
-
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
-import Graphics.Rendering.OpenGL.Raw.Core32
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/VertexShader.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/VertexShader.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/VertexShader.hs
+++ /dev/null
@@ -1,545 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.VertexShader
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the EXT_vertex_shader extension, see
--- <http://www.opengl.org/registry/specs/EXT/vertex_shader.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.VertexShader (
-   -- * Functions
-   glBeginVertexShader,
-   glEndVertexShader,
-   glBindVertexShader,
-   glGenVertexShaders,
-   glDeleteVertexShader,
-   glShaderOp1,
-   glShaderOp2,
-   glShaderOp3,
-   glSwizzle,
-   glWriteMask,
-   glInsertComponent,
-   glExtractComponent,
-   glGenSymbols,
-   glSetInvariant,
-   glSetLocalConstant,
-   glVariantbv,
-   glVariantsv,
-   glVariantiv,
-   glVariantfv,
-   glVariantdv,
-   glVariantubv,
-   glVariantusv,
-   glVariantuiv,
-   glVariantPointer,
-   glEnableVariantClientState,
-   glDisableVariantClientState,
-   glBindLightParameter,
-   glBindMaterialParameter,
-   glBindTexGenParameter,
-   glBindTextureUnitParameter,
-   glBindParameter,
-   glIsVariantEnabled,
-   glGetVariantBooleanv,
-   glGetVariantIntegerv,
-   glGetVariantFloatv,
-   glGetVariantPointerv,
-   glGetInvariantBooleanv,
-   glGetInvariantIntegerv,
-   glGetInvariantFloatv,
-   glGetLocalConstantBooleanv,
-   glGetLocalConstantIntegerv,
-   glGetLocalConstantFloatv,
-   -- * Tokens
-   gl_VERTEX_SHADER,
-   gl_VARIANT_VALUE,
-   gl_VARIANT_DATATYPE,
-   gl_VARIANT_ARRAY_STRIDE,
-   gl_VARIANT_ARRAY_TYPE,
-   gl_VARIANT_ARRAY,
-   gl_VARIANT_ARRAY_POINTER,
-   gl_INVARIANT_VALUE,
-   gl_INVARIANT_DATATYPE,
-   gl_LOCAL_CONSTANT_VALUE,
-   gl_LOCAL_CONSTANT_DATATYPE,
-   gl_OP_INDEX,
-   gl_OP_NEGATE,
-   gl_OP_DOT3,
-   gl_OP_DOT4,
-   gl_OP_MUL,
-   gl_OP_ADD,
-   gl_OP_MADD,
-   gl_OP_FRAC,
-   gl_OP_MAX,
-   gl_OP_MIN,
-   gl_OP_SET_GE,
-   gl_OP_SET_LT,
-   gl_OP_CLAMP,
-   gl_OP_FLOOR,
-   gl_OP_ROUND,
-   gl_OP_EXP_BASE_2,
-   gl_OP_LOG_BASE_2,
-   gl_OP_POWER,
-   gl_OP_RECIP,
-   gl_OP_RECIP_SQRT,
-   gl_OP_SUB,
-   gl_OP_CROSS_PRODUCT,
-   gl_OP_MULTIPLY_MATRIX,
-   gl_OP_MOV,
-   gl_OUTPUT_VERTEX,
-   gl_OUTPUT_COLOR0,
-   gl_OUTPUT_COLOR1,
-   gl_OUTPUT_TEXTURE_COORD0,
-   gl_OUTPUT_TEXTURE_COORD1,
-   gl_OUTPUT_TEXTURE_COORD2,
-   gl_OUTPUT_TEXTURE_COORD3,
-   gl_OUTPUT_TEXTURE_COORD4,
-   gl_OUTPUT_TEXTURE_COORD5,
-   gl_OUTPUT_TEXTURE_COORD6,
-   gl_OUTPUT_TEXTURE_COORD7,
-   gl_OUTPUT_TEXTURE_COORD8,
-   gl_OUTPUT_TEXTURE_COORD9,
-   gl_OUTPUT_TEXTURE_COORD10,
-   gl_OUTPUT_TEXTURE_COORD11,
-   gl_OUTPUT_TEXTURE_COORD12,
-   gl_OUTPUT_TEXTURE_COORD13,
-   gl_OUTPUT_TEXTURE_COORD14,
-   gl_OUTPUT_TEXTURE_COORD15,
-   gl_OUTPUT_TEXTURE_COORD16,
-   gl_OUTPUT_TEXTURE_COORD17,
-   gl_OUTPUT_TEXTURE_COORD18,
-   gl_OUTPUT_TEXTURE_COORD19,
-   gl_OUTPUT_TEXTURE_COORD20,
-   gl_OUTPUT_TEXTURE_COORD21,
-   gl_OUTPUT_TEXTURE_COORD22,
-   gl_OUTPUT_TEXTURE_COORD23,
-   gl_OUTPUT_TEXTURE_COORD24,
-   gl_OUTPUT_TEXTURE_COORD25,
-   gl_OUTPUT_TEXTURE_COORD26,
-   gl_OUTPUT_TEXTURE_COORD27,
-   gl_OUTPUT_TEXTURE_COORD28,
-   gl_OUTPUT_TEXTURE_COORD29,
-   gl_OUTPUT_TEXTURE_COORD30,
-   gl_OUTPUT_TEXTURE_COORD31,
-   gl_OUTPUT_FOG,
-   gl_SCALAR,
-   gl_VECTOR,
-   gl_MATRIX,
-   gl_VARIANT,
-   gl_INVARIANT,
-   gl_LOCAL_CONSTANT,
-   gl_LOCAL,
-   gl_MAX_VERTEX_SHADER_INSTRUCTIONS,
-   gl_MAX_VERTEX_SHADER_VARIANTS,
-   gl_MAX_VERTEX_SHADER_INVARIANTS,
-   gl_MAX_VERTEX_SHADER_LOCAL_CONSTANTS,
-   gl_MAX_VERTEX_SHADER_LOCALS,
-   gl_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS,
-   gl_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS,
-   gl_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS,
-   gl_MAX_OPTIMIZED_VERTEX_SHADER_INARIANTS,
-   gl_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS,
-   gl_VERTEX_SHADER_INSTRUCTIONS,
-   gl_VERTEX_SHADER_VARIANTS,
-   gl_VERTEX_SHADER_INVARIANTS,
-   gl_VERTEX_SHADER_LOCAL_CONSTANTS,
-   gl_VERTEX_SHADER_LOCALS,
-   gl_VERTEX_SHADER_BINDING,
-   gl_VERTEX_SHADER_OPTIMIZED,
-   gl_X,
-   gl_Y,
-   gl_Z,
-   gl_W,
-   gl_NEGATIVE_X,
-   gl_NEGATIVE_Y,
-   gl_NEGATIVE_Z,
-   gl_NEGATIVE_W,
-   gl_ZERO,
-   gl_ONE,
-   gl_NEGATIVE_ONE,
-   gl_NORMALIZED_RANGE,
-   gl_FULL_RANGE,
-   gl_CURRENT_VERTEX,
-   gl_MVP_MATRIX
-) where
-
-import Foreign.Ptr
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Graphics.Rendering.OpenGL.Raw.Extensions
-
-#include "HsOpenGLRaw.h"
-
-extensionNameString :: String
-extensionNameString = "GL_EXT_vertex_shader"
-
-EXTENSION_ENTRY(glBeginVertexShader,IO ())
-EXTENSION_ENTRY(glEndVertexShader,IO ())
-EXTENSION_ENTRY(glBindVertexShader,GLuint -> IO ())
-EXTENSION_ENTRY(glGenVertexShaders,GLuint -> IO GLuint)
-EXTENSION_ENTRY(glDeleteVertexShader,GLuint -> IO ())
-EXTENSION_ENTRY(glShaderOp1,GLenum -> GLuint -> GLuint -> IO ())
-EXTENSION_ENTRY(glShaderOp2,GLenum -> GLuint -> GLuint -> GLuint -> IO ())
-EXTENSION_ENTRY(glShaderOp3,GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
-EXTENSION_ENTRY(glSwizzle,GLuint -> GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
-EXTENSION_ENTRY(glWriteMask,GLuint -> GLuint -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
-EXTENSION_ENTRY(glInsertComponent,GLuint -> GLuint -> GLuint -> IO ())
-EXTENSION_ENTRY(glExtractComponent,GLuint -> GLuint -> GLuint -> IO ())
-EXTENSION_ENTRY(glGenSymbols,GLenum -> GLenum -> GLenum -> GLuint -> IO GLuint)
-EXTENSION_ENTRY(glSetInvariant,GLuint -> GLenum -> Ptr () -> IO ())
-EXTENSION_ENTRY(glSetLocalConstant,GLuint -> GLenum -> Ptr () -> IO ())
-EXTENSION_ENTRY(glVariantbv,GLuint -> Ptr GLbyte -> IO ())
-EXTENSION_ENTRY(glVariantsv,GLuint -> Ptr GLshort -> IO ())
-EXTENSION_ENTRY(glVariantiv,GLuint -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glVariantfv,GLuint -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glVariantdv,GLuint -> Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glVariantubv,GLuint -> Ptr GLubyte -> IO ())
-EXTENSION_ENTRY(glVariantusv,GLuint -> Ptr GLushort -> IO ())
-EXTENSION_ENTRY(glVariantuiv,GLuint -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glVariantPointer,GLuint -> GLenum -> GLuint -> Ptr () -> IO ())
-EXTENSION_ENTRY(glEnableVariantClientState,GLuint-> IO ())
-EXTENSION_ENTRY(glDisableVariantClientState,GLuint-> IO ())
-EXTENSION_ENTRY(glBindLightParameter,GLenum -> GLenum-> IO GLuint)
-EXTENSION_ENTRY(glBindMaterialParameter,GLenum -> GLenum-> IO GLuint)
-EXTENSION_ENTRY(glBindTexGenParameter,GLenum -> GLenum -> GLenum-> IO GLuint)
-EXTENSION_ENTRY(glBindTextureUnitParameter,GLenum -> GLenum-> IO GLuint)
-EXTENSION_ENTRY(glBindParameter,GLenum -> IO GLuint)
-EXTENSION_ENTRY(glIsVariantEnabled,GLuint -> GLenum -> IO GLboolean)
-EXTENSION_ENTRY(glGetVariantBooleanv,GLuint -> GLenum -> Ptr GLboolean -> IO ())
-EXTENSION_ENTRY(glGetVariantIntegerv,GLuint -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glGetVariantFloatv,GLuint -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glGetVariantPointerv,GLuint -> GLenum -> Ptr (Ptr a) -> IO ())
-EXTENSION_ENTRY(glGetInvariantBooleanv,GLuint -> GLenum -> Ptr GLboolean -> IO ())
-EXTENSION_ENTRY(glGetInvariantIntegerv,GLuint -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glGetInvariantFloatv,GLuint -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glGetLocalConstantBooleanv,GLuint -> GLenum -> Ptr GLboolean -> IO ())
-EXTENSION_ENTRY(glGetLocalConstantIntegerv,GLuint -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glGetLocalConstantFloatv,GLuint -> GLenum -> Ptr GLfloat -> IO ())
-
-gl_VARIANT_VALUE :: GLenum
-gl_VARIANT_VALUE = 0x87E4
-
-gl_VARIANT_DATATYPE :: GLenum
-gl_VARIANT_DATATYPE = 0x87E5
-
-gl_VARIANT_ARRAY_STRIDE :: GLenum
-gl_VARIANT_ARRAY_STRIDE = 0x87E6
-
-gl_VARIANT_ARRAY_TYPE :: GLenum
-gl_VARIANT_ARRAY_TYPE = 0x87E7
-
-gl_VARIANT_ARRAY :: GLenum
-gl_VARIANT_ARRAY = 0x87E8
-
-gl_VARIANT_ARRAY_POINTER :: GLenum
-gl_VARIANT_ARRAY_POINTER = 0x87E9
-
-gl_INVARIANT_VALUE :: GLenum
-gl_INVARIANT_VALUE = 0x87EA
-
-gl_INVARIANT_DATATYPE :: GLenum
-gl_INVARIANT_DATATYPE = 0x87EB
-
-gl_LOCAL_CONSTANT_VALUE :: GLenum
-gl_LOCAL_CONSTANT_VALUE = 0x87EC
-
-gl_LOCAL_CONSTANT_DATATYPE :: GLenum
-gl_LOCAL_CONSTANT_DATATYPE = 0x87ED
-
-gl_OP_INDEX :: GLenum
-gl_OP_INDEX = 0x8782
-
-gl_OP_NEGATE :: GLenum
-gl_OP_NEGATE = 0x8783
-
-gl_OP_DOT3 :: GLenum
-gl_OP_DOT3 = 0x8784
-
-gl_OP_DOT4 :: GLenum
-gl_OP_DOT4 = 0x8785
-
-gl_OP_MUL :: GLenum
-gl_OP_MUL = 0x8786
-
-gl_OP_ADD :: GLenum
-gl_OP_ADD = 0x8787
-
-gl_OP_MADD :: GLenum
-gl_OP_MADD = 0x8788
-
-gl_OP_FRAC :: GLenum
-gl_OP_FRAC = 0x8789
-
-gl_OP_MAX :: GLenum
-gl_OP_MAX = 0x878A
-
-gl_OP_MIN :: GLenum
-gl_OP_MIN = 0x878B
-
-gl_OP_SET_GE :: GLenum
-gl_OP_SET_GE = 0x878C
-
-gl_OP_SET_LT :: GLenum
-gl_OP_SET_LT = 0x878D
-
-gl_OP_CLAMP :: GLenum
-gl_OP_CLAMP = 0x878E
-
-gl_OP_FLOOR :: GLenum
-gl_OP_FLOOR = 0x878F
-
-gl_OP_ROUND :: GLenum
-gl_OP_ROUND = 0x8790
-
-gl_OP_EXP_BASE_2 :: GLenum
-gl_OP_EXP_BASE_2 = 0x8791
-
-gl_OP_LOG_BASE_2 :: GLenum
-gl_OP_LOG_BASE_2 = 0x8792
-
-gl_OP_POWER :: GLenum
-gl_OP_POWER = 0x8793
-
-gl_OP_RECIP :: GLenum
-gl_OP_RECIP = 0x8794
-
-gl_OP_RECIP_SQRT :: GLenum
-gl_OP_RECIP_SQRT = 0x8795
-
-gl_OP_SUB :: GLenum
-gl_OP_SUB = 0x8796
-
-gl_OP_CROSS_PRODUCT :: GLenum
-gl_OP_CROSS_PRODUCT = 0x8797
-
-gl_OP_MULTIPLY_MATRIX :: GLenum
-gl_OP_MULTIPLY_MATRIX = 0x8798
-
-gl_OP_MOV :: GLenum
-gl_OP_MOV = 0x8799
-
-gl_OUTPUT_VERTEX :: GLenum
-gl_OUTPUT_VERTEX = 0x879A
-
-gl_OUTPUT_COLOR0 :: GLenum
-gl_OUTPUT_COLOR0 = 0x879B
-
-gl_OUTPUT_COLOR1 :: GLenum
-gl_OUTPUT_COLOR1 = 0x879C
-
-gl_OUTPUT_TEXTURE_COORD0 :: GLenum
-gl_OUTPUT_TEXTURE_COORD0 = 0x879D
-
-gl_OUTPUT_TEXTURE_COORD1 :: GLenum
-gl_OUTPUT_TEXTURE_COORD1 = 0x879E
-
-gl_OUTPUT_TEXTURE_COORD2 :: GLenum
-gl_OUTPUT_TEXTURE_COORD2 = 0x879F
-
-gl_OUTPUT_TEXTURE_COORD3 :: GLenum
-gl_OUTPUT_TEXTURE_COORD3 = 0x87A0
-
-gl_OUTPUT_TEXTURE_COORD4 :: GLenum
-gl_OUTPUT_TEXTURE_COORD4 = 0x87A1
-
-gl_OUTPUT_TEXTURE_COORD5 :: GLenum
-gl_OUTPUT_TEXTURE_COORD5 = 0x87A2
-
-gl_OUTPUT_TEXTURE_COORD6 :: GLenum
-gl_OUTPUT_TEXTURE_COORD6 = 0x87A3
-
-gl_OUTPUT_TEXTURE_COORD7 :: GLenum
-gl_OUTPUT_TEXTURE_COORD7 = 0x87A4
-
-gl_OUTPUT_TEXTURE_COORD8 :: GLenum
-gl_OUTPUT_TEXTURE_COORD8 = 0x87A5
-
-gl_OUTPUT_TEXTURE_COORD9 :: GLenum
-gl_OUTPUT_TEXTURE_COORD9 = 0x87A6
-
-gl_OUTPUT_TEXTURE_COORD10 :: GLenum
-gl_OUTPUT_TEXTURE_COORD10 = 0x87A7
-
-gl_OUTPUT_TEXTURE_COORD11 :: GLenum
-gl_OUTPUT_TEXTURE_COORD11 = 0x87A8
-
-gl_OUTPUT_TEXTURE_COORD12 :: GLenum
-gl_OUTPUT_TEXTURE_COORD12 = 0x87A9
-
-gl_OUTPUT_TEXTURE_COORD13 :: GLenum
-gl_OUTPUT_TEXTURE_COORD13 = 0x87AA
-
-gl_OUTPUT_TEXTURE_COORD14 :: GLenum
-gl_OUTPUT_TEXTURE_COORD14 = 0x87AB
-
-gl_OUTPUT_TEXTURE_COORD15 :: GLenum
-gl_OUTPUT_TEXTURE_COORD15 = 0x87AC
-
-gl_OUTPUT_TEXTURE_COORD16 :: GLenum
-gl_OUTPUT_TEXTURE_COORD16 = 0x87AD
-
-gl_OUTPUT_TEXTURE_COORD17 :: GLenum
-gl_OUTPUT_TEXTURE_COORD17 = 0x87AE
-
-gl_OUTPUT_TEXTURE_COORD18 :: GLenum
-gl_OUTPUT_TEXTURE_COORD18 = 0x87AF
-
-gl_OUTPUT_TEXTURE_COORD19 :: GLenum
-gl_OUTPUT_TEXTURE_COORD19 = 0x87B0
-
-gl_OUTPUT_TEXTURE_COORD20 :: GLenum
-gl_OUTPUT_TEXTURE_COORD20 = 0x87B1
-
-gl_OUTPUT_TEXTURE_COORD21 :: GLenum
-gl_OUTPUT_TEXTURE_COORD21 = 0x87B2
-
-gl_OUTPUT_TEXTURE_COORD22 :: GLenum
-gl_OUTPUT_TEXTURE_COORD22 = 0x87B3
-
-gl_OUTPUT_TEXTURE_COORD23 :: GLenum
-gl_OUTPUT_TEXTURE_COORD23 = 0x87B4
-
-gl_OUTPUT_TEXTURE_COORD24 :: GLenum
-gl_OUTPUT_TEXTURE_COORD24 = 0x87B5
-
-gl_OUTPUT_TEXTURE_COORD25 :: GLenum
-gl_OUTPUT_TEXTURE_COORD25 = 0x87B6
-
-gl_OUTPUT_TEXTURE_COORD26 :: GLenum
-gl_OUTPUT_TEXTURE_COORD26 = 0x87B7
-
-gl_OUTPUT_TEXTURE_COORD27 :: GLenum
-gl_OUTPUT_TEXTURE_COORD27 = 0x87B8
-
-gl_OUTPUT_TEXTURE_COORD28 :: GLenum
-gl_OUTPUT_TEXTURE_COORD28 = 0x87B9
-
-gl_OUTPUT_TEXTURE_COORD29 :: GLenum
-gl_OUTPUT_TEXTURE_COORD29 = 0x87BA
-
-gl_OUTPUT_TEXTURE_COORD30 :: GLenum
-gl_OUTPUT_TEXTURE_COORD30 = 0x87BB
-
-gl_OUTPUT_TEXTURE_COORD31 :: GLenum
-gl_OUTPUT_TEXTURE_COORD31 = 0x87BC
-
-gl_OUTPUT_FOG :: GLenum
-gl_OUTPUT_FOG = 0x87BD
-
-gl_SCALAR :: GLenum
-gl_SCALAR = 0x87BE
-
-gl_VECTOR :: GLenum
-gl_VECTOR = 0x87BF
-
-gl_MATRIX :: GLenum
-gl_MATRIX = 0x87C0
-
-gl_VARIANT :: GLenum
-gl_VARIANT = 0x87C1
-
-gl_INVARIANT :: GLenum
-gl_INVARIANT = 0x87C2
-
-gl_LOCAL_CONSTANT :: GLenum
-gl_LOCAL_CONSTANT = 0x87C3
-
-gl_LOCAL :: GLenum
-gl_LOCAL = 0x87C4
-
-gl_MAX_VERTEX_SHADER_INSTRUCTIONS :: GLenum
-gl_MAX_VERTEX_SHADER_INSTRUCTIONS = 0x87C5
-
-gl_MAX_VERTEX_SHADER_VARIANTS :: GLenum
-gl_MAX_VERTEX_SHADER_VARIANTS = 0x87C6
-
-gl_MAX_VERTEX_SHADER_INVARIANTS :: GLenum
-gl_MAX_VERTEX_SHADER_INVARIANTS = 0x87C7
-
-gl_MAX_VERTEX_SHADER_LOCAL_CONSTANTS :: GLenum
-gl_MAX_VERTEX_SHADER_LOCAL_CONSTANTS = 0x87C8
-
-gl_MAX_VERTEX_SHADER_LOCALS :: GLenum
-gl_MAX_VERTEX_SHADER_LOCALS = 0x87C9
-
-gl_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS :: GLenum
-gl_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS = 0x87CA
-
-gl_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS :: GLenum
-gl_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS = 0x87CB
-
-gl_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS :: GLenum
-gl_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS = 0x87CC
-
-gl_MAX_OPTIMIZED_VERTEX_SHADER_INARIANTS :: GLenum
-gl_MAX_OPTIMIZED_VERTEX_SHADER_INARIANTS = 0x87CD
-
-gl_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS :: GLenum
-gl_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS = 0x87CE
-
-gl_VERTEX_SHADER_INSTRUCTIONS :: GLenum
-gl_VERTEX_SHADER_INSTRUCTIONS = 0x87CF
-
-gl_VERTEX_SHADER_VARIANTS :: GLenum
-gl_VERTEX_SHADER_VARIANTS = 0x87D0
-
-gl_VERTEX_SHADER_INVARIANTS :: GLenum
-gl_VERTEX_SHADER_INVARIANTS = 0x87D1
-
-gl_VERTEX_SHADER_LOCAL_CONSTANTS :: GLenum
-gl_VERTEX_SHADER_LOCAL_CONSTANTS = 0x87D2
-
-gl_VERTEX_SHADER_LOCALS :: GLenum
-gl_VERTEX_SHADER_LOCALS = 0x87D3
-
-gl_VERTEX_SHADER_BINDING :: GLenum
-gl_VERTEX_SHADER_BINDING = 0x8781
-
-gl_VERTEX_SHADER_OPTIMIZED :: GLenum
-gl_VERTEX_SHADER_OPTIMIZED = 0x87D4
-
-gl_X :: GLenum
-gl_X = 0x87D5
-
-gl_Y :: GLenum
-gl_Y = 0x87D6
-
-gl_Z :: GLenum
-gl_Z = 0x87D7
-
-gl_W :: GLenum
-gl_W = 0x87D8
-
-gl_NEGATIVE_X :: GLenum
-gl_NEGATIVE_X = 0x87D9
-
-gl_NEGATIVE_Y :: GLenum
-gl_NEGATIVE_Y = 0x87DA
-
-gl_NEGATIVE_Z :: GLenum
-gl_NEGATIVE_Z = 0x87DB
-
-gl_NEGATIVE_W :: GLenum
-gl_NEGATIVE_W = 0x87DC
-
-gl_NEGATIVE_ONE :: GLenum
-gl_NEGATIVE_ONE = 0x87DF
-
-gl_NORMALIZED_RANGE :: GLenum
-gl_NORMALIZED_RANGE = 0x87E0
-
-gl_FULL_RANGE :: GLenum
-gl_FULL_RANGE = 0x87E1
-
-gl_CURRENT_VERTEX :: GLenum
-gl_CURRENT_VERTEX = 0x87E2
-
-gl_MVP_MATRIX :: GLenum
-gl_MVP_MATRIX = 0x87E3
diff --git a/src/Graphics/Rendering/OpenGL/Raw/EXT/VertexWeighting.hs b/src/Graphics/Rendering/OpenGL/Raw/EXT/VertexWeighting.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/EXT/VertexWeighting.hs
+++ /dev/null
@@ -1,83 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.EXT.VertexWeighting
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the EXT_vertex_weighting extension, see
--- <http://www.opengl.org/registry/specs/EXT/vertex_weighting.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.EXT.VertexWeighting (
-   -- * Functions
-   glVertexWeightf,
-   glVertexWeightfv,
-   glVertexWeightPointer,
-   -- * Tokens
-   gl_VERTEX_WEIGHTING,
-   gl_MODELVIEW0,
-   gl_MODELVIEW1,
-   gl_MODELVIEW0_MATRIX,
-   gl_MODELVIEW1_MATRIX,
-   gl_CURRENT_VERTEX_WEIGHT,
-   gl_VERTEX_WEIGHT_ARRAY,
-   gl_VERTEX_WEIGHT_ARRAY_SIZE,
-   gl_VERTEX_WEIGHT_ARRAY_TYPE,
-   gl_VERTEX_WEIGHT_ARRAY_STRIDE,
-   gl_MODELVIEW0_STACK_DEPTH,
-   gl_MODELVIEW1_STACK_DEPTH,
-   gl_VERTEX_WEIGHT_ARRAY_POINTER
-) where
-
-import Foreign.Ptr
-import Graphics.Rendering.OpenGL.Raw.ARB.VertexBlend
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Graphics.Rendering.OpenGL.Raw.Extensions
-
-#include "HsOpenGLRaw.h"
-
-extensionNameString :: String
-extensionNameString = "GL_EXT_vertex_weighting"
-
-EXTENSION_ENTRY(glVertexWeightf,GLfloat -> IO ())
-EXTENSION_ENTRY(glVertexWeightfv,Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glVertexWeightPointer,GLint -> GLenum -> GLsizei -> Ptr a -> IO ())
-
-gl_VERTEX_WEIGHTING :: GLenum
-gl_VERTEX_WEIGHTING = 0x8509
-
-gl_MODELVIEW0_MATRIX :: GLenum
-gl_MODELVIEW0_MATRIX = 0x0BA6
-
-gl_MODELVIEW1_MATRIX :: GLenum
-gl_MODELVIEW1_MATRIX = 0x8506
-
-gl_CURRENT_VERTEX_WEIGHT :: GLenum
-gl_CURRENT_VERTEX_WEIGHT = 0x850B
-
-gl_VERTEX_WEIGHT_ARRAY :: GLenum
-gl_VERTEX_WEIGHT_ARRAY = 0x850C
-
-gl_VERTEX_WEIGHT_ARRAY_SIZE :: GLenum
-gl_VERTEX_WEIGHT_ARRAY_SIZE = 0x850D
-
-gl_VERTEX_WEIGHT_ARRAY_TYPE :: GLenum
-gl_VERTEX_WEIGHT_ARRAY_TYPE = 0x850E
-
-gl_VERTEX_WEIGHT_ARRAY_STRIDE :: GLenum
-gl_VERTEX_WEIGHT_ARRAY_STRIDE = 0x850F
-
-gl_MODELVIEW0_STACK_DEPTH :: GLenum
-gl_MODELVIEW0_STACK_DEPTH = 0x0BA3
-
-gl_MODELVIEW1_STACK_DEPTH :: GLenum
-gl_MODELVIEW1_STACK_DEPTH = 0x8502
-
-gl_VERTEX_WEIGHT_ARRAY_POINTER :: GLenum
-gl_VERTEX_WEIGHT_ARRAY_POINTER = 0x8510
diff --git a/src/Graphics/Rendering/OpenGL/Raw/Extensions.hs b/src/Graphics/Rendering/OpenGL/Raw/Extensions.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/Extensions.hs
+++ /dev/null
@@ -1,45 +0,0 @@
--- #hide
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.Extensions
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- This internal module offers convenience functions and re-exports for OpenGL
--- extension loading.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.Extensions (
-   Invoker, getExtensionEntry,
-   FunPtr, unsafePerformIO
-) where
-
-import Foreign.Marshal.Error
-import Foreign.Ptr
-import Graphics.Rendering.OpenGL.Raw.GetProcAddress
-import System.IO.Unsafe
-
---------------------------------------------------------------------------------
-
-type Invoker a = FunPtr a -> a
-
-getExtensionEntry :: String -> String -> IO (FunPtr a)
-getExtensionEntry extensionNameString extensionEntry =
-   throwIfNullFunPtr ("unknown OpenGL extension entry " ++ extensionEntry ++
-                      ", check for " ++ extensionNameString) $
-      getProcAddressWithSuffixes extensionEntry extensionSuffixes
-
-throwIfNullFunPtr :: String -> IO (FunPtr a) -> IO (FunPtr a)
-throwIfNullFunPtr = throwIf (== nullFunPtr) . const
-
--- non-ARB extension suffixes are in descending order of number of extensions
-extensionSuffixes :: [String]
-extensionSuffixes = [
-   "", "ARB", "EXT", "NV", "SGIX", "SGIS", "ATI", "APPLE", "SUN", "OES", "IBM",
-   "MESA", "HP", "SGI", "OML", "AMD", "3DFX", "WIN", "PGI", "INTEL", "INGR",
-   "GREMEDY", "SUNX", "S3", "REND", "MESAX" ]
diff --git a/src/Graphics/Rendering/OpenGL/Raw/GetProcAddress.hs b/src/Graphics/Rendering/OpenGL/Raw/GetProcAddress.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/GetProcAddress.hs
+++ /dev/null
@@ -1,47 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.GetProcAddress
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- This module offers a portable way to retrieve OpenGL extension entries,
--- providing a portability layer upon platform-specific mechanisms like
--- @glXGetProcAddress@, @wglGetProcAddress@ or @NSAddressOfSymbol@.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.GetProcAddress (
-   getProcAddress, getProcAddressWithSuffixes
-) where
-
-import Control.Monad
-import Foreign.C.String
-import Foreign.Ptr
-
-#ifdef __HUGS__
-{-# CFILES cbits/HsOpenGLRaw.c #-}
-#endif
-
---------------------------------------------------------------------------------
-
--- | Retrieve an OpenGL extension entry by name. Returns 'nullFunPtr' when no
--- extension entry with the given name was found.
-getProcAddress :: String -> IO (FunPtr a)
-getProcAddress extensionEntry =
-   withCString extensionEntry hs_OpenGLRaw_getProcAddress
-
-foreign import ccall unsafe "hs_OpenGLRaw_getProcAddress"
-   hs_OpenGLRaw_getProcAddress :: CString -> IO (FunPtr a)
-
--- | Retrieve an OpenGL extension entry by name, trying a list of name suffixes
--- in the given order. Returns 'nullFunPtr' when no extension entry with the
--- given name plus any of the suffixes was found.
-getProcAddressWithSuffixes :: String -> [String] -> IO (FunPtr a)
-getProcAddressWithSuffixes extensionEntry = foldM gpa nullFunPtr
-   where gpa p s | p == nullFunPtr = getProcAddress (extensionEntry ++ s)
-                 | otherwise       = return p
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV.hs b/src/Graphics/Rendering/OpenGL/Raw/NV.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/NV.hs
+++ /dev/null
@@ -1,115 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.NV
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- A convenience module, combining all raw modules containing NV extensions.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.NV (
-   module Graphics.Rendering.OpenGL.Raw.NV.TexgenReflection,
-   module Graphics.Rendering.OpenGL.Raw.NV.LightMaxExponent,
-   module Graphics.Rendering.OpenGL.Raw.NV.VertexArrayRange,
-   module Graphics.Rendering.OpenGL.Raw.NV.RegisterCombiners,
-   module Graphics.Rendering.OpenGL.Raw.NV.FogDistance,
-   module Graphics.Rendering.OpenGL.Raw.NV.TexgenEmboss,
-   -- module Graphics.Rendering.OpenGL.Raw.NV.BlendSquare,
-   module Graphics.Rendering.OpenGL.Raw.NV.TextureEnvCombine4,
-   module Graphics.Rendering.OpenGL.Raw.NV.Fence,
-   -- module Graphics.Rendering.OpenGL.Raw.NV.Evaluators,
-   module Graphics.Rendering.OpenGL.Raw.NV.PackedDepthStencil,
-   module Graphics.Rendering.OpenGL.Raw.NV.RegisterCombiners2,
-   module Graphics.Rendering.OpenGL.Raw.NV.TextureCompressionVtc,
-   module Graphics.Rendering.OpenGL.Raw.NV.TextureRectangle,
-   module Graphics.Rendering.OpenGL.Raw.NV.TextureShader,
-   module Graphics.Rendering.OpenGL.Raw.NV.TextureShader2,
-   module Graphics.Rendering.OpenGL.Raw.NV.VertexArrayRange2,
-   module Graphics.Rendering.OpenGL.Raw.NV.VertexProgram,
-   module Graphics.Rendering.OpenGL.Raw.NV.CopyDepthToColor,
-   module Graphics.Rendering.OpenGL.Raw.NV.MultisampleFilterHint,
-   module Graphics.Rendering.OpenGL.Raw.NV.DepthClamp,
-   module Graphics.Rendering.OpenGL.Raw.NV.OcclusionQuery,
-   module Graphics.Rendering.OpenGL.Raw.NV.PointSprite,
-   module Graphics.Rendering.OpenGL.Raw.NV.TextureShader3,
-   -- module Graphics.Rendering.OpenGL.Raw.NV.VertexProgram11,
-   module Graphics.Rendering.OpenGL.Raw.NV.FloatBuffer,
-   module Graphics.Rendering.OpenGL.Raw.NV.FragmentProgram,
-   module Graphics.Rendering.OpenGL.Raw.NV.HalfFloat,
-   module Graphics.Rendering.OpenGL.Raw.NV.PixelDataRange,
-   module Graphics.Rendering.OpenGL.Raw.NV.PrimitiveRestart,
-   module Graphics.Rendering.OpenGL.Raw.NV.TextureExpandNormal,
-   -- module Graphics.Rendering.OpenGL.Raw.NV.VertexProgram2,
-   -- module Graphics.Rendering.OpenGL.Raw.NV.FragmentProgramOption,
-   module Graphics.Rendering.OpenGL.Raw.NV.FragmentProgram2,
-   module Graphics.Rendering.OpenGL.Raw.NV.VertexProgram2Option,
-   module Graphics.Rendering.OpenGL.Raw.NV.VertexProgram3,
-   module Graphics.Rendering.OpenGL.Raw.NV.GpuProgram4,
-   module Graphics.Rendering.OpenGL.Raw.NV.GeometryProgram4,
-   module Graphics.Rendering.OpenGL.Raw.NV.VertexProgram4,
-   module Graphics.Rendering.OpenGL.Raw.NV.DepthBufferFloat,
-   -- module Graphics.Rendering.OpenGL.Raw.NV.FragmentProgram4,
-   module Graphics.Rendering.OpenGL.Raw.NV.FramebufferMultisampleCoverage,
-   -- module Graphics.Rendering.OpenGL.Raw.NV.GeometryShader4,
-   module Graphics.Rendering.OpenGL.Raw.NV.ParameterBufferObject,
-   module Graphics.Rendering.OpenGL.Raw.NV.TransformFeedback,
-   module Graphics.Rendering.OpenGL.Raw.NV.ConditionalRender,
-   module Graphics.Rendering.OpenGL.Raw.NV.PresentVideo,
-   module Graphics.Rendering.OpenGL.Raw.NV.ExplicitMultisample,
-   module Graphics.Rendering.OpenGL.Raw.NV.TransformFeedback2
-) where
-
-import Graphics.Rendering.OpenGL.Raw.NV.TexgenReflection
-import Graphics.Rendering.OpenGL.Raw.NV.LightMaxExponent
-import Graphics.Rendering.OpenGL.Raw.NV.VertexArrayRange
-import Graphics.Rendering.OpenGL.Raw.NV.RegisterCombiners
-import Graphics.Rendering.OpenGL.Raw.NV.FogDistance
-import Graphics.Rendering.OpenGL.Raw.NV.TexgenEmboss
--- import Graphics.Rendering.OpenGL.Raw.NV.BlendSquare
-import Graphics.Rendering.OpenGL.Raw.NV.TextureEnvCombine4
-import Graphics.Rendering.OpenGL.Raw.NV.Fence
--- import Graphics.Rendering.OpenGL.Raw.NV.Evaluators
-import Graphics.Rendering.OpenGL.Raw.NV.PackedDepthStencil
-import Graphics.Rendering.OpenGL.Raw.NV.RegisterCombiners2
-import Graphics.Rendering.OpenGL.Raw.NV.TextureCompressionVtc
-import Graphics.Rendering.OpenGL.Raw.NV.TextureRectangle
-import Graphics.Rendering.OpenGL.Raw.NV.TextureShader
-import Graphics.Rendering.OpenGL.Raw.NV.TextureShader2
-import Graphics.Rendering.OpenGL.Raw.NV.VertexArrayRange2
-import Graphics.Rendering.OpenGL.Raw.NV.VertexProgram
-import Graphics.Rendering.OpenGL.Raw.NV.CopyDepthToColor
-import Graphics.Rendering.OpenGL.Raw.NV.MultisampleFilterHint
-import Graphics.Rendering.OpenGL.Raw.NV.DepthClamp
-import Graphics.Rendering.OpenGL.Raw.NV.OcclusionQuery
-import Graphics.Rendering.OpenGL.Raw.NV.PointSprite
-import Graphics.Rendering.OpenGL.Raw.NV.TextureShader3
--- import Graphics.Rendering.OpenGL.Raw.NV.VertexProgram11
-import Graphics.Rendering.OpenGL.Raw.NV.FloatBuffer
-import Graphics.Rendering.OpenGL.Raw.NV.FragmentProgram
-import Graphics.Rendering.OpenGL.Raw.NV.HalfFloat
-import Graphics.Rendering.OpenGL.Raw.NV.PixelDataRange
-import Graphics.Rendering.OpenGL.Raw.NV.PrimitiveRestart
-import Graphics.Rendering.OpenGL.Raw.NV.TextureExpandNormal
--- import Graphics.Rendering.OpenGL.Raw.NV.VertexProgram2
--- import Graphics.Rendering.OpenGL.Raw.NV.FragmentProgramOption
-import Graphics.Rendering.OpenGL.Raw.NV.FragmentProgram2
-import Graphics.Rendering.OpenGL.Raw.NV.VertexProgram2Option
-import Graphics.Rendering.OpenGL.Raw.NV.VertexProgram3
-import Graphics.Rendering.OpenGL.Raw.NV.GpuProgram4
-import Graphics.Rendering.OpenGL.Raw.NV.GeometryProgram4
-import Graphics.Rendering.OpenGL.Raw.NV.VertexProgram4
-import Graphics.Rendering.OpenGL.Raw.NV.DepthBufferFloat
--- import Graphics.Rendering.OpenGL.Raw.NV.FragmentProgram4
-import Graphics.Rendering.OpenGL.Raw.NV.FramebufferMultisampleCoverage
--- import Graphics.Rendering.OpenGL.Raw.NV.GeometryShader4
-import Graphics.Rendering.OpenGL.Raw.NV.ParameterBufferObject
-import Graphics.Rendering.OpenGL.Raw.NV.TransformFeedback
-import Graphics.Rendering.OpenGL.Raw.NV.ConditionalRender
-import Graphics.Rendering.OpenGL.Raw.NV.PresentVideo
-import Graphics.Rendering.OpenGL.Raw.NV.ExplicitMultisample
-import Graphics.Rendering.OpenGL.Raw.NV.TransformFeedback2
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/ConditionalRender.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/ConditionalRender.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/ConditionalRender.hs
+++ /dev/null
@@ -1,27 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.NV.ConditionalRender
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the NV_conditional_render extension, see
--- <http://www.opengl.org/registry/specs/NV/conditional_render.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.NV.ConditionalRender (
-   -- * Functions
-   glBeginConditionalRender,
-   glEndConditionalRender,
-   -- * Tokens
-   gl_QUERY_WAIT,
-   gl_QUERY_NO_WAIT,
-   gl_QUERY_BY_REGION_WAIT,
-   gl_QUERY_BY_REGION_NO_WAIT
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/CopyDepthToColor.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/CopyDepthToColor.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/CopyDepthToColor.hs
+++ /dev/null
@@ -1,29 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.NV.CopyDepthToColor
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the NV_copy_depth_to_color extension not
--- already in the OpenGL 3.1 core, see
--- <http://www.opengl.org/registry/specs/NV/copy_depth_to_color.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.NV.CopyDepthToColor (
-   -- * Tokens
-   gl_DEPTH_STENCIL_TO_RGBA,
-   gl_DEPTH_STENCIL_TO_BGRA
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_DEPTH_STENCIL_TO_RGBA :: GLenum
-gl_DEPTH_STENCIL_TO_RGBA = 0x886E
-
-gl_DEPTH_STENCIL_TO_BGRA :: GLenum
-gl_DEPTH_STENCIL_TO_BGRA = 0x886F
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/DepthBufferFloat.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/DepthBufferFloat.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/DepthBufferFloat.hs
+++ /dev/null
@@ -1,42 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.NV.DepthBufferFloat
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the NV_depth_buffer_float extension, see
--- <http://www.opengl.org/registry/specs/NV/NV_depth_buffer_float.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.NV.DepthBufferFloat (
-   -- * Functions
-   glDepthRanged,
-   glClearDepthd,
-   glDepthBoundsd,
-   -- * Tokens
-   gl_DEPTH_COMPONENT32F,
-   gl_DEPTH32F_STENCIL8,
-   gl_FLOAT_32_UNSIGNED_INT_24_8_REV,
-   gl_DEPTH_BUFFER_FLOAT_MODE
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Graphics.Rendering.OpenGL.Raw.Extensions
-
-#include "HsOpenGLRaw.h"
-
-extensionNameString :: String
-extensionNameString = "GL_NV_depth_buffer_float"
-
-EXTENSION_ENTRY(glDepthRanged,GLdouble -> GLdouble -> IO ())
-EXTENSION_ENTRY(glClearDepthd,GLdouble -> IO ())
-EXTENSION_ENTRY(glDepthBoundsd,GLdouble -> GLdouble -> IO ())
-
-gl_DEPTH_BUFFER_FLOAT_MODE :: GLenum
-gl_DEPTH_BUFFER_FLOAT_MODE = 0x8DAF
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/DepthClamp.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/DepthClamp.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/DepthClamp.hs
+++ /dev/null
@@ -1,21 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.NV.DepthClamp
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All tokens from the NV_depth_clamp extension, see
--- <http://www.opengl.org/registry/specs/NV/depth_clamp.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.NV.DepthClamp (
-   -- * Tokens
-   gl_DEPTH_CLAMP
-) where
-
-import Graphics.Rendering.OpenGL.Raw.ARB.DepthClamp
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/ExplicitMultisample.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/ExplicitMultisample.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/ExplicitMultisample.hs
+++ /dev/null
@@ -1,65 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.NV.ExplicitMultisample
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the NV_explicit_multisample extension, see
--- <http://www.opengl.org/registry/specs/NV/explicit_multisample.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.NV.ExplicitMultisample (
-   -- * Functions
-   glGetBooleanIndexedv,
-   glGetIntegerIndexedv,
-   glGetMultisamplefv,
-   glSampleMaskIndexed,
-   glTexRenderbuffer,
-   -- * Tokens
-   gl_SAMPLE_POSITION,
-   gl_SAMPLE_MASK,
-   gl_SAMPLE_MASK_VALUE,
-   gl_TEXTURE_BINDING_RENDERBUFFER,
-   gl_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING,
-   gl_MAX_SAMPLE_MASK_WORDS,
-   gl_TEXTURE_RENDERBUFFER,
-   gl_SAMPLER_RENDERBUFFER,
-   gl_INT_SAMPLER_RENDERBUFFER,
-   gl_UNSIGNED_INT_SAMPLER_RENDERBUFFER
-) where
-
-import Graphics.Rendering.OpenGL.Raw.EXT.DirectStateAccess
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Graphics.Rendering.OpenGL.Raw.Extensions
-
-#include "HsOpenGLRaw.h"
-
-extensionNameString :: String
-extensionNameString = "GL_NV_explicit_multisample"
-
-EXTENSION_ENTRY(glSampleMaskIndexed,GLuint -> GLbitfield -> IO ())
-EXTENSION_ENTRY(glTexRenderbuffer,GLenum -> GLuint -> IO ())
-
-gl_TEXTURE_BINDING_RENDERBUFFER :: GLenum
-gl_TEXTURE_BINDING_RENDERBUFFER = 0x8E53
-
-gl_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING :: GLenum
-gl_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING = 0x8E54
-
-gl_TEXTURE_RENDERBUFFER :: GLenum
-gl_TEXTURE_RENDERBUFFER = 0x8E55
-
-gl_SAMPLER_RENDERBUFFER :: GLenum
-gl_SAMPLER_RENDERBUFFER = 0x8E56
-
-gl_INT_SAMPLER_RENDERBUFFER :: GLenum
-gl_INT_SAMPLER_RENDERBUFFER = 0x8E57
-
-gl_UNSIGNED_INT_SAMPLER_RENDERBUFFER :: GLenum
-gl_UNSIGNED_INT_SAMPLER_RENDERBUFFER = 0x8E58
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/Fence.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/Fence.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/Fence.hs
+++ /dev/null
@@ -1,56 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.NV.Fence
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the NV_fence not already in the OpenGL 3.1
--- core, see <http://www.opengl.org/registry/specs/NV/fence.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.NV.Fence (
-   -- * Functions
-   glGenFences,
-   glDeleteFences,
-   glSetFence,
-   glTestFence,
-   glFinishFence,
-   glIsFence,
-   glGetFenceiv,
-   -- * Tokens
-   gl_ALL_COMPLETED,
-   gl_FENCE_STATUS,
-   gl_FENCE_CONDITION
-) where
-
-import Foreign.Ptr
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Graphics.Rendering.OpenGL.Raw.Extensions
-
-#include "HsOpenGLRaw.h"
-
-extensionNameString :: String
-extensionNameString = "GL_NV_fence"
-
-EXTENSION_ENTRY(glGenFences,GLsizei -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glDeleteFences,GLsizei -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glSetFence,GLuint -> GLenum -> IO ())
-EXTENSION_ENTRY(glTestFence,GLuint -> IO GLboolean)
-EXTENSION_ENTRY(glFinishFence,GLuint -> IO ())
-EXTENSION_ENTRY(glIsFence,GLuint -> IO GLboolean)
-EXTENSION_ENTRY(glGetFenceiv,GLuint -> GLenum -> Ptr GLint -> IO ())
-
-gl_ALL_COMPLETED :: GLenum
-gl_ALL_COMPLETED = 0x84F2
-
-gl_FENCE_STATUS :: GLenum
-gl_FENCE_STATUS = 0x84F3
-
-gl_FENCE_CONDITION :: GLenum
-gl_FENCE_CONDITION = 0x84F4
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/FloatBuffer.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/FloatBuffer.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/FloatBuffer.hs
+++ /dev/null
@@ -1,80 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.NV.FloatBuffer
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All tokens from the NV_float_buffer extension, see
--- <http://www.opengl.org/registry/specs/NV/float_buffer.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.NV.FloatBuffer (
-   -- * Tokens
-   gl_FLOAT_R,
-   gl_FLOAT_RG,
-   gl_FLOAT_RGB,
-   gl_FLOAT_RGBA,
-   gl_FLOAT_R16,
-   gl_FLOAT_R32,
-   gl_FLOAT_RG16,
-   gl_FLOAT_RG32,
-   gl_FLOAT_RGB16,
-   gl_FLOAT_RGB32,
-   gl_FLOAT_RGBA16,
-   gl_FLOAT_RGBA32,
-   gl_TEXTURE_FLOAT_COMPONENTS,
-   gl_FLOAT_CLEAR_COLOR_VALUE,
-   gl_FLOAT_RGBA_MODE
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_FLOAT_R :: GLenum
-gl_FLOAT_R = 0x8880
-
-gl_FLOAT_RG :: GLenum
-gl_FLOAT_RG = 0x8881
-
-gl_FLOAT_RGB :: GLenum
-gl_FLOAT_RGB = 0x8882
-
-gl_FLOAT_RGBA :: GLenum
-gl_FLOAT_RGBA = 0x8883
-
-gl_FLOAT_R16 :: GLenum
-gl_FLOAT_R16 = 0x8884
-
-gl_FLOAT_R32 :: GLenum
-gl_FLOAT_R32 = 0x8885
-
-gl_FLOAT_RG16 :: GLenum
-gl_FLOAT_RG16 = 0x8886
-
-gl_FLOAT_RG32 :: GLenum
-gl_FLOAT_RG32 = 0x8887
-
-gl_FLOAT_RGB16 :: GLenum
-gl_FLOAT_RGB16 = 0x8888
-
-gl_FLOAT_RGB32 :: GLenum
-gl_FLOAT_RGB32 = 0x8889
-
-gl_FLOAT_RGBA16 :: GLenum
-gl_FLOAT_RGBA16 = 0x888A
-
-gl_FLOAT_RGBA32 :: GLenum
-gl_FLOAT_RGBA32 = 0x888B
-
-gl_TEXTURE_FLOAT_COMPONENTS :: GLenum
-gl_TEXTURE_FLOAT_COMPONENTS = 0x888C
-
-gl_FLOAT_CLEAR_COLOR_VALUE :: GLenum
-gl_FLOAT_CLEAR_COLOR_VALUE = 0x888D
-
-gl_FLOAT_RGBA_MODE :: GLenum
-gl_FLOAT_RGBA_MODE = 0x888E
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/FogDistance.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/FogDistance.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/FogDistance.hs
+++ /dev/null
@@ -1,35 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.NV.FogDistance
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the NV_fog_distance extension not already
--- in the OpenGL 3.1 core, see
--- <http://www.opengl.org/registry/specs/NV/fog_distance.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.NV.FogDistance (
-   -- * Tokens
-   gl_FOG_DISTANCE_MODE,
-   gl_EYE_RADIAL,
-   gl_EYE_PLANE,
-   gl_EYE_PLANE_ABSOLUTE
-) where
-
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_FOG_DISTANCE_MODE :: GLenum
-gl_FOG_DISTANCE_MODE = 0x855A
-
-gl_EYE_RADIAL :: GLenum
-gl_EYE_RADIAL = 0x855B
-
-gl_EYE_PLANE_ABSOLUTE :: GLenum
-gl_EYE_PLANE_ABSOLUTE = 0x855C
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/FragmentProgram.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/FragmentProgram.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/FragmentProgram.hs
+++ /dev/null
@@ -1,64 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.NV.FragmentProgram
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the NV_fragment_program extension, see
--- <http://www.opengl.org/registry/specs/NV/fragment_program.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.NV.FragmentProgram (
-   -- * Functions
-   glProgramNamedParameter4f,
-   glProgramNamedParameter4d,
-   glProgramNamedParameter4fv,
-   glProgramNamedParameter4dv,
-   glGetProgramNamedParameterfv,
-   glGetProgramNamedParameterdv,
-   glProgramLocalParameter4d,
-   glProgramLocalParameter4dv,
-   glProgramLocalParameter4f,
-   glProgramLocalParameter4fv,
-   glGetProgramLocalParameterdv,
-   glGetProgramLocalParameterfv,
-   -- * Tokens
-   gl_FRAGMENT_PROGRAM_NV,
-   gl_MAX_TEXTURE_COORDS,
-   gl_MAX_TEXTURE_IMAGE_UNITS,
-   gl_FRAGMENT_PROGRAM_BINDING,
-   gl_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS,
-   gl_PROGRAM_ERROR_STRING
-) where
-
-import Foreign.Ptr
-import Graphics.Rendering.OpenGL.Raw.ARB.FragmentProgram
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Graphics.Rendering.OpenGL.Raw.Extensions
-
-#include "HsOpenGLRaw.h"
-
-extensionNameString :: String
-extensionNameString = "GL_NV_fragment_program"
-
-EXTENSION_ENTRY(glProgramNamedParameter4f,GLuint -> GLsizei -> Ptr GLubyte -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-EXTENSION_ENTRY(glProgramNamedParameter4d,GLuint -> GLsizei -> Ptr GLubyte -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-EXTENSION_ENTRY(glProgramNamedParameter4fv,GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glProgramNamedParameter4dv,GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glGetProgramNamedParameterfv,GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glGetProgramNamedParameterdv,GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLdouble -> IO ())
-
-gl_FRAGMENT_PROGRAM_NV :: GLenum
-gl_FRAGMENT_PROGRAM_NV = 0x8870
-
-gl_FRAGMENT_PROGRAM_BINDING :: GLenum
-gl_FRAGMENT_PROGRAM_BINDING = 0x8873
-
-gl_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS :: GLenum
-gl_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS = 0x8868
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/FragmentProgram2.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/FragmentProgram2.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/FragmentProgram2.hs
+++ /dev/null
@@ -1,40 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.NV.FragmentProgram2
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All tokens from the NV_fragment_program, see
--- <http://www.opengl.org/registry/specs/NV/fragment_program.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.NV.FragmentProgram2 (
-   -- * Tokens
-   gl_MAX_PROGRAM_EXEC_INSTRUCTIONS,
-   gl_MAX_PROGRAM_CALL_DEPTH,
-   gl_MAX_PROGRAM_IF_DEPTH,
-   gl_MAX_PROGRAM_LOOP_DEPTH,
-   gl_MAX_PROGRAM_LOOP_COUNT
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_MAX_PROGRAM_EXEC_INSTRUCTIONS :: GLenum
-gl_MAX_PROGRAM_EXEC_INSTRUCTIONS = 0x88F4
-
-gl_MAX_PROGRAM_CALL_DEPTH :: GLenum
-gl_MAX_PROGRAM_CALL_DEPTH = 0x88F5
-
-gl_MAX_PROGRAM_IF_DEPTH :: GLenum
-gl_MAX_PROGRAM_IF_DEPTH = 0x88F6
-
-gl_MAX_PROGRAM_LOOP_DEPTH :: GLenum
-gl_MAX_PROGRAM_LOOP_DEPTH = 0x88F7
-
-gl_MAX_PROGRAM_LOOP_COUNT :: GLenum
-gl_MAX_PROGRAM_LOOP_COUNT = 0x88F8
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/FramebufferMultisampleCoverage.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/FramebufferMultisampleCoverage.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/FramebufferMultisampleCoverage.hs
+++ /dev/null
@@ -1,48 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.NV.FramebufferMultisampleCoverage
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the NV_framebuffer_multisample_coverage
--- extension, see
--- <http://www.opengl.org/registry/specs/NV/framebuffer_multisample_coverage.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.NV.FramebufferMultisampleCoverage (
-   -- * Functions
-   glRenderbufferStorageMultisampleCoverage,
-   -- * Tokens
-   gl_RENDERBUFFER_COVERAGE_SAMPLES,
-   gl_RENDERBUFFER_COLOR_SAMPLES,
-   gl_MAX_MULTISAMPLE_COVERAGE_MODES,
-   gl_MULTISAMPLE_COVERAGE_MODES
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Graphics.Rendering.OpenGL.Raw.Extensions
-
-#include "HsOpenGLRaw.h"
-
-extensionNameString :: String
-extensionNameString = "GL_NV_framebuffer_multisample_coverage"
-
-EXTENSION_ENTRY(glRenderbufferStorageMultisampleCoverage,GLenum -> GLsizei -> GLsizei -> GLenum -> GLsizei -> GLsizei -> IO ())
-
-gl_RENDERBUFFER_COVERAGE_SAMPLES :: GLenum
-gl_RENDERBUFFER_COVERAGE_SAMPLES = 0x8CAB
-
-gl_RENDERBUFFER_COLOR_SAMPLES :: GLenum
-gl_RENDERBUFFER_COLOR_SAMPLES = 0x8E10
-
-gl_MAX_MULTISAMPLE_COVERAGE_MODES :: GLenum
-gl_MAX_MULTISAMPLE_COVERAGE_MODES = 0x8E11
-
-gl_MULTISAMPLE_COVERAGE_MODES :: GLenum
-gl_MULTISAMPLE_COVERAGE_MODES = 0x8E12
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/GeometryProgram4.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/GeometryProgram4.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/GeometryProgram4.hs
+++ /dev/null
@@ -1,56 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.NV.GeometryProgram4
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the NV_geometry_program4 extension, see
--- <http://www.opengl.org/registry/specs/NV/geometry_program4.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.NV.GeometryProgram4 (
-   -- * Functions
-   glProgramVertexLimit,
-   -- * Tokens
-   gl_GEOMETRY_PROGRAM,
-   gl_MAX_PROGRAM_OUTPUT_VERTICES,
-   gl_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS,
-   gl_GEOMETRY_VERTICES_OUT,
-   gl_GEOMETRY_INPUT_TYPE,
-   gl_GEOMETRY_OUTPUT_TYPE,
-   gl_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS,
-   gl_LINES_ADJACENCY,
-   gl_LINE_STRIP_ADJACENCY,
-   gl_TRIANGLES_ADJACENCY,
-   gl_TRIANGLE_STRIP_ADJACENCY,
-   gl_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS,
-   gl_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT,
-   gl_FRAMEBUFFER_ATTACHMENT_LAYERED,
-   gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER,
-   gl_PROGRAM_POINT_SIZE
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Graphics.Rendering.OpenGL.Raw.Extensions
-
-#include "HsOpenGLRaw.h"
-
-extensionNameString :: String
-extensionNameString = "GL_NV_geometry_program4"
-
-EXTENSION_ENTRY(glProgramVertexLimit,GLenum -> GLint -> IO ())
-
-gl_GEOMETRY_PROGRAM :: GLenum
-gl_GEOMETRY_PROGRAM = 0x8C26
-
-gl_MAX_PROGRAM_OUTPUT_VERTICES :: GLenum
-gl_MAX_PROGRAM_OUTPUT_VERTICES = 0x8C27
-
-gl_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS :: GLenum
-gl_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS = 0x8C28
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/GpuProgram4.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/GpuProgram4.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/GpuProgram4.hs
+++ /dev/null
@@ -1,89 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.NV.GpuProgram4
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the NV_gpu_program4 extension, see
--- <http://www.opengl.org/registry/specs/NV/gpu_program4.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.NV.GpuProgram4 (
-   -- * Functions
-   glProgramLocalParameterI4i,
-   glProgramLocalParameterI4iv,
-   glProgramLocalParametersI4iv,
-   glProgramLocalParameterI4ui,
-   glProgramLocalParameterI4uiv,
-   glProgramLocalParametersI4uiv,
-   glProgramEnvParameterI4i,
-   glProgramEnvParameterI4iv,
-   glProgramEnvParametersI4iv,
-   glProgramEnvParameterI4ui,
-   glProgramEnvParameterI4uiv,
-   glProgramEnvParametersI4uiv,
-   glGetProgramLocalParameterIiv,
-   glGetProgramLocalParameterIuiv,
-   glGetProgramEnvParameterIiv,
-   glGetProgramEnvParameterIuiv,
-   -- * Tokens
-   gl_MIN_PROGRAM_TEXEL_OFFSET,
-   gl_MAX_PROGRAM_TEXEL_OFFSET,
-   gl_PROGRAM_ATTRIB_COMPONENTS,
-   gl_PROGRAM_RESULT_COMPONENTS,
-   gl_MAX_PROGRAM_ATTRIB_COMPONENTS,
-   gl_MAX_PROGRAM_RESULT_COMPONENTS,
-   gl_MAX_PROGRAM_GENERIC_ATTRIBS,
-   gl_MAX_PROGRAM_GENERIC_RESULTS
-) where
-
-import Foreign.Ptr
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Graphics.Rendering.OpenGL.Raw.Extensions
-
-#include "HsOpenGLRaw.h"
-
-extensionNameString :: String
-extensionNameString = "GL_NV_gpu_program4"
-
-EXTENSION_ENTRY(glProgramLocalParameterI4i,GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
-EXTENSION_ENTRY(glProgramLocalParameterI4iv,GLenum -> GLuint -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glProgramLocalParametersI4iv,GLenum -> GLuint -> GLsizei -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glProgramLocalParameterI4ui,GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
-EXTENSION_ENTRY(glProgramLocalParameterI4uiv,GLenum -> GLuint -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glProgramLocalParametersI4uiv,GLenum -> GLuint -> GLsizei -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glProgramEnvParameterI4i,GLenum -> GLuint -> GLint -> GLint -> GLint -> GLint -> IO ())
-EXTENSION_ENTRY(glProgramEnvParameterI4iv,GLenum -> GLuint -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glProgramEnvParametersI4iv,GLenum -> GLuint -> GLsizei -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glProgramEnvParameterI4ui,GLenum -> GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
-EXTENSION_ENTRY(glProgramEnvParameterI4uiv,GLenum -> GLuint -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glProgramEnvParametersI4uiv,GLenum -> GLuint -> GLsizei -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glGetProgramLocalParameterIiv,GLenum -> GLuint -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glGetProgramLocalParameterIuiv,GLenum -> GLuint -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glGetProgramEnvParameterIiv,GLenum -> GLuint -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glGetProgramEnvParameterIuiv,GLenum -> GLuint -> Ptr GLuint -> IO ())
-
-gl_PROGRAM_ATTRIB_COMPONENTS :: GLenum
-gl_PROGRAM_ATTRIB_COMPONENTS = 0x8906
-
-gl_PROGRAM_RESULT_COMPONENTS :: GLenum
-gl_PROGRAM_RESULT_COMPONENTS = 0x8907
-
-gl_MAX_PROGRAM_ATTRIB_COMPONENTS :: GLenum
-gl_MAX_PROGRAM_ATTRIB_COMPONENTS = 0x8908
-
-gl_MAX_PROGRAM_RESULT_COMPONENTS :: GLenum
-gl_MAX_PROGRAM_RESULT_COMPONENTS = 0x8909
-
-gl_MAX_PROGRAM_GENERIC_ATTRIBS :: GLenum
-gl_MAX_PROGRAM_GENERIC_ATTRIBS = 0x8DA5
-
-gl_MAX_PROGRAM_GENERIC_RESULTS :: GLenum
-gl_MAX_PROGRAM_GENERIC_RESULTS = 0x8DA6
-      
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/HalfFloat.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/HalfFloat.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/HalfFloat.hs
+++ /dev/null
@@ -1,125 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.NV.HalfFloat
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions, tokens and types from the NV_fragment_program extension,
--- see <http://www.opengl.org/registry/specs/NV/fragment_program.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.NV.HalfFloat (
-   -- * Functions
-   glVertex2h,
-   glVertex2hv,
-   glVertex3h,
-   glVertex3hv,
-   glVertex4h,
-   glVertex4hv,
-   glNormal3h,
-   glNormal3hv,
-   glColor3h,
-   glColor3hv,
-   glColor4h,
-   glColor4hv,
-   glTexCoord1h,
-   glTexCoord1hv,
-   glTexCoord2h,
-   glTexCoord2hv,
-   glTexCoord3h,
-   glTexCoord3hv,
-   glTexCoord4h,
-   glTexCoord4hv,
-   glMultiTexCoord1h,
-   glMultiTexCoord1hv,
-   glMultiTexCoord2h,
-   glMultiTexCoord2hv,
-   glMultiTexCoord3h,
-   glMultiTexCoord3hv,
-   glMultiTexCoord4h,
-   glMultiTexCoord4hv,
-   glFogCoordh,
-   glFogCoordhv,
-   glSecondaryColor3h,
-   glSecondaryColor3hv,
-   glVertexWeighth,
-   glVertexWeighthv,
-   glVertexAttrib1h,
-   glVertexAttrib1hv,
-   glVertexAttrib2h,
-   glVertexAttrib2hv,
-   glVertexAttrib3h,
-   glVertexAttrib3hv,
-   glVertexAttrib4h,
-   glVertexAttrib4hv,
-   glVertexAttribs1hv,
-   glVertexAttribs2hv,
-   glVertexAttribs3hv,
-   glVertexAttribs4hv,
-   -- * Tokens
-   gl_HALF_FLOAT,
-   -- * Types
-   GLhalf
-) where
-
-import Foreign.Ptr
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Graphics.Rendering.OpenGL.Raw.Extensions
-
-#include "HsOpenGLRaw.h"
-
-extensionNameString :: String
-extensionNameString = "GL_NV_half_float"
-
-EXTENSION_ENTRY(glVertex2h,GLhalf -> GLhalf -> IO ())
-EXTENSION_ENTRY(glVertex2hv,Ptr GLhalf -> IO ())
-EXTENSION_ENTRY(glVertex3h,GLhalf -> GLhalf -> GLhalf -> IO ())
-EXTENSION_ENTRY(glVertex3hv,Ptr GLhalf -> IO ())
-EXTENSION_ENTRY(glVertex4h,GLhalf -> GLhalf -> GLhalf -> GLhalf -> IO ())
-EXTENSION_ENTRY(glVertex4hv,Ptr GLhalf -> IO ())
-EXTENSION_ENTRY(glNormal3h,GLhalf -> GLhalf -> GLhalf -> IO ())
-EXTENSION_ENTRY(glNormal3hv,Ptr GLhalf -> IO ())
-EXTENSION_ENTRY(glColor3h,GLhalf -> GLhalf -> GLhalf -> IO ())
-EXTENSION_ENTRY(glColor3hv,Ptr GLhalf -> IO ())
-EXTENSION_ENTRY(glColor4h,GLhalf -> GLhalf -> GLhalf -> GLhalf -> IO ())
-EXTENSION_ENTRY(glColor4hv,Ptr GLhalf -> IO ())
-EXTENSION_ENTRY(glTexCoord1h,GLhalf -> IO ())
-EXTENSION_ENTRY(glTexCoord1hv,Ptr GLhalf -> IO ())
-EXTENSION_ENTRY(glTexCoord2h,GLhalf -> GLhalf -> IO ())
-EXTENSION_ENTRY(glTexCoord2hv,Ptr GLhalf -> IO ())
-EXTENSION_ENTRY(glTexCoord3h,GLhalf -> GLhalf -> GLhalf -> IO ())
-EXTENSION_ENTRY(glTexCoord3hv,Ptr GLhalf -> IO ())
-EXTENSION_ENTRY(glTexCoord4h,GLhalf -> GLhalf -> GLhalf -> GLhalf -> IO ())
-EXTENSION_ENTRY(glTexCoord4hv,Ptr GLhalf -> IO ())
-EXTENSION_ENTRY(glMultiTexCoord1h,GLenum -> GLhalf -> IO ())
-EXTENSION_ENTRY(glMultiTexCoord1hv,GLenum -> Ptr GLhalf -> IO ())
-EXTENSION_ENTRY(glMultiTexCoord2h,GLenum -> GLhalf -> GLhalf -> IO ())
-EXTENSION_ENTRY(glMultiTexCoord2hv,GLenum -> Ptr GLhalf -> IO ())
-EXTENSION_ENTRY(glMultiTexCoord3h,GLenum -> GLhalf -> GLhalf -> GLhalf -> IO ())
-EXTENSION_ENTRY(glMultiTexCoord3hv,GLenum -> Ptr GLhalf -> IO ())
-EXTENSION_ENTRY(glMultiTexCoord4h,GLenum -> GLhalf -> GLhalf -> GLhalf -> GLhalf -> IO ())
-EXTENSION_ENTRY(glMultiTexCoord4hv,GLenum -> Ptr GLhalf -> IO ())
-EXTENSION_ENTRY(glFogCoordh,GLhalf -> IO ())
-EXTENSION_ENTRY(glFogCoordhv,Ptr GLhalf -> IO ())
-EXTENSION_ENTRY(glSecondaryColor3h,GLhalf -> GLhalf -> GLhalf -> IO ())
-EXTENSION_ENTRY(glSecondaryColor3hv,Ptr GLhalf -> IO ())
-EXTENSION_ENTRY(glVertexWeighth,GLhalf -> IO ())
-EXTENSION_ENTRY(glVertexWeighthv,Ptr GLhalf -> IO ())
-EXTENSION_ENTRY(glVertexAttrib1h,GLuint -> GLhalf -> IO ())
-EXTENSION_ENTRY(glVertexAttrib1hv,GLuint -> Ptr GLhalf -> IO ())
-EXTENSION_ENTRY(glVertexAttrib2h,GLuint -> GLhalf -> GLhalf -> IO ())
-EXTENSION_ENTRY(glVertexAttrib2hv,GLuint -> Ptr GLhalf -> IO ())
-EXTENSION_ENTRY(glVertexAttrib3h,GLuint -> GLhalf -> GLhalf -> GLhalf -> IO ())
-EXTENSION_ENTRY(glVertexAttrib3hv,GLuint -> Ptr GLhalf -> IO ())
-EXTENSION_ENTRY(glVertexAttrib4h,GLuint -> GLhalf -> GLhalf -> GLhalf -> GLhalf -> IO ())
-EXTENSION_ENTRY(glVertexAttrib4hv,GLuint -> Ptr GLhalf -> IO ())
-EXTENSION_ENTRY(glVertexAttribs1hv,GLuint -> GLsizei -> Ptr GLhalf -> IO ())
-EXTENSION_ENTRY(glVertexAttribs2hv,GLuint -> GLsizei -> Ptr GLhalf -> IO ())
-EXTENSION_ENTRY(glVertexAttribs3hv,GLuint -> GLsizei -> Ptr GLhalf -> IO ())
-EXTENSION_ENTRY(glVertexAttribs4hv,GLuint -> GLsizei -> Ptr GLhalf -> IO ())
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/LightMaxExponent.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/LightMaxExponent.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/LightMaxExponent.hs
+++ /dev/null
@@ -1,29 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.NV.LightMaxExponent
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the NV_light_max_exponent extension not
--- already in the OpenGL 3.1 core, see
--- <http://www.opengl.org/registry/specs/NV/light_max_exponent.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.NV.LightMaxExponent (
-   -- * Tokens
-   gl_MAX_SHININESS,
-   gl_MAX_SPOT_EXPONENT
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_MAX_SHININESS :: GLenum
-gl_MAX_SHININESS = 0x8504
-
-gl_MAX_SPOT_EXPONENT :: GLenum
-gl_MAX_SPOT_EXPONENT = 0x8505
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/MultisampleFilterHint.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/MultisampleFilterHint.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/MultisampleFilterHint.hs
+++ /dev/null
@@ -1,25 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.NV.MultisampleFilterHint
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the NV_multisample_filter_hint extension not
--- already in the OpenGL 3.1 core, see
--- <http://www.opengl.org/registry/specs/NV/multisample_filter_hint.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.NV.MultisampleFilterHint (
-   -- * Tokens
-   gl_MULTISAMPLE_FILTER_HINT
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_MULTISAMPLE_FILTER_HINT :: GLenum
-gl_MULTISAMPLE_FILTER_HINT = 0x8534
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/OcclusionQuery.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/OcclusionQuery.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/OcclusionQuery.hs
+++ /dev/null
@@ -1,69 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.NV.OcclusionQuery
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the NV_occlusion_query not already in the
--- OpenGL 3.1 core, see
--- <http://www.opengl.org/registry/specs/NV/occlusion_query.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.NV.OcclusionQuery (
-   -- * Functions
-   glGenOcclusionQueries,
-   glDeleteOcclusionQueries,
-   glIsOcclusionQuery,
-   glBeginOcclusionQuery,
-   glEndOcclusionQuery,
-   glGetOcclusionQueryiv,
-   glGetOcclusionQueryuiv,
-   -- * Tokens
-   gl_OCCLUSION_TEST,
-   gl_OCCLUSION_TEST_RESULT,
-   gl_PIXEL_COUNTER_BITS,
-   gl_CURRENT_OCCLUSION_QUERY_ID,
-   gl_PIXEL_COUNT,
-   gl_PIXEL_COUNT_AVAILABLE
-) where
-
-import Foreign.Ptr
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Graphics.Rendering.OpenGL.Raw.Extensions
-
-#include "HsOpenGLRaw.h"
-
-extensionNameString :: String
-extensionNameString = "GL_NV_occlusion_query"
-
-EXTENSION_ENTRY(glGenOcclusionQueries,GLsizei -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glDeleteOcclusionQueries,GLsizei -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glIsOcclusionQuery,GLuint -> IO ())
-EXTENSION_ENTRY(glBeginOcclusionQuery,GLuint -> IO ())
-EXTENSION_ENTRY(glEndOcclusionQuery,IO ())
-EXTENSION_ENTRY(glGetOcclusionQueryiv,GLuint -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glGetOcclusionQueryuiv,GLuint -> GLenum -> Ptr GLuint -> IO ())
-
-gl_OCCLUSION_TEST :: GLenum
-gl_OCCLUSION_TEST = 0x8165
-
-gl_OCCLUSION_TEST_RESULT :: GLenum
-gl_OCCLUSION_TEST_RESULT = 0x8166
-
-gl_PIXEL_COUNTER_BITS :: GLenum
-gl_PIXEL_COUNTER_BITS = 0x8864
-
-gl_CURRENT_OCCLUSION_QUERY_ID :: GLenum
-gl_CURRENT_OCCLUSION_QUERY_ID = 0x8865
-
-gl_PIXEL_COUNT :: GLenum
-gl_PIXEL_COUNT = 0x8866
-
-gl_PIXEL_COUNT_AVAILABLE :: GLenum
-gl_PIXEL_COUNT_AVAILABLE = 0x8867
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/PackedDepthStencil.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/PackedDepthStencil.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/PackedDepthStencil.hs
+++ /dev/null
@@ -1,22 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.NV.PackedDepthStencil
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All tokens from the NV_packed_depth_stencil extension, see
--- <http://www.opengl.org/registry/specs/NV/packed_depth_stencil.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.NV.PackedDepthStencil (
-   -- * Tokens
-   gl_DEPTH_STENCIL,
-   gl_UNSIGNED_INT_24_8
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/ParameterBufferObject.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/ParameterBufferObject.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/ParameterBufferObject.hs
+++ /dev/null
@@ -1,63 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.NV.ParameterBufferObject
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All functions and tokens from the NV_parameter_buffer_object extension, see
--- <http://www.opengl.org/registry/specs/NV/parameter_buffer_object.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.NV.ParameterBufferObject (
-   -- * Functions
-   glBindBufferRange,
-   glBindBufferOffset,
-   glBindBufferBase,
-   glProgramBufferParametersfv,
-   glProgramBufferParametersIiv,
-   glProgramBufferParametersIuiv,
-   glGetIntegerIndexedv,
-   -- * Tokens
-   gl_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS,
-   gl_MAX_PROGRAM_PARAMETER_BUFFER_SIZE,
-   gl_VERTEX_PROGRAM_PARAMETER_BUFFER,
-   gl_GEOMETRY_PROGRAM_PARAMETER_BUFFER,
-   gl_FRAGMENT_PROGRAM_PARAMETER_BUFFER
-) where
-
-import Foreign.Ptr
-import Graphics.Rendering.OpenGL.Raw.EXT.DirectStateAccess
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Graphics.Rendering.OpenGL.Raw.Extensions
-
-#include "HsOpenGLRaw.h"
-
-extensionNameString :: String
-extensionNameString = "GL_NV_parameter_buffer_object"
-
-EXTENSION_ENTRY(glBindBufferOffset,GLenum -> GLuint -> GLuint -> GLintptr -> IO ())
-EXTENSION_ENTRY(glProgramBufferParametersfv,GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glProgramBufferParametersIiv,GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glProgramBufferParametersIuiv,GLenum -> GLuint -> GLuint -> GLsizei -> Ptr GLuint -> IO ())
-
-gl_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS :: GLenum
-gl_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS = 0x8DA0
-
-gl_MAX_PROGRAM_PARAMETER_BUFFER_SIZE :: GLenum
-gl_MAX_PROGRAM_PARAMETER_BUFFER_SIZE = 0x8DA1
-
-gl_VERTEX_PROGRAM_PARAMETER_BUFFER :: GLenum
-gl_VERTEX_PROGRAM_PARAMETER_BUFFER = 0x8DA2
-
-gl_GEOMETRY_PROGRAM_PARAMETER_BUFFER :: GLenum
-gl_GEOMETRY_PROGRAM_PARAMETER_BUFFER = 0x8DA3
-
-gl_FRAGMENT_PROGRAM_PARAMETER_BUFFER :: GLenum
-gl_FRAGMENT_PROGRAM_PARAMETER_BUFFER = 0x8DA4
-
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/PixelDataRange.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/PixelDataRange.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/PixelDataRange.hs
+++ /dev/null
@@ -1,44 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.NV.PixelDataRange
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All tokens from the NV_pixel_data_range extension, see
--- <http://www.opengl.org/registry/specs/NV/pixel_data_range.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.NV.PixelDataRange (
-   -- * Tokens
-   gl_WRITE_PIXEL_DATA_RANGE,
-   gl_READ_PIXEL_DATA_RANGE,
-   gl_WRITE_PIXEL_DATA_RANGE_LENGTH,
-   gl_READ_PIXEL_DATA_RANGE_LENGTH,
-   gl_WRITE_PIXEL_DATA_RANGE_POINTER,
-   gl_READ_PIXEL_DATA_RANGE_POINTER
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_WRITE_PIXEL_DATA_RANGE :: GLenum
-gl_WRITE_PIXEL_DATA_RANGE = 0x8878
-
-gl_READ_PIXEL_DATA_RANGE :: GLenum
-gl_READ_PIXEL_DATA_RANGE = 0x8879
-
-gl_WRITE_PIXEL_DATA_RANGE_LENGTH :: GLenum
-gl_WRITE_PIXEL_DATA_RANGE_LENGTH = 0x887A
-
-gl_READ_PIXEL_DATA_RANGE_LENGTH :: GLenum
-gl_READ_PIXEL_DATA_RANGE_LENGTH = 0x887B
-
-gl_WRITE_PIXEL_DATA_RANGE_POINTER :: GLenum
-gl_WRITE_PIXEL_DATA_RANGE_POINTER = 0x887C
-
-gl_READ_PIXEL_DATA_RANGE_POINTER :: GLenum
-gl_READ_PIXEL_DATA_RANGE_POINTER = 0x887D
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/PointSprite.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/PointSprite.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/PointSprite.hs
+++ /dev/null
@@ -1,28 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.NV.PointSprite
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All tokens from the NV_point_sprite, see
--- <http://www.opengl.org/registry/specs/NV/point_sprite.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.NV.PointSprite (
-   -- * Tokens
-   gl_POINT_SPRITE,
-   gl_COORD_REPLACE,
-   gl_POINT_SPRITE_R_MODE
-
-) where
-
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_POINT_SPRITE_R_MODE :: GLenum
-gl_POINT_SPRITE_R_MODE = 0x8863
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/PresentVideo.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/PresentVideo.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/PresentVideo.hs
+++ /dev/null
@@ -1,66 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.NV.PresentVideo
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the NV_present_video extension, see
--- <http://www.opengl.org/registry/specs/NV/present_video.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.NV.PresentVideo (
-   -- * Functions
-   glPresentFrameKeyed,
-   glPresentFrameDualFill,
-   glGetVideoiv,
-   glGetVideouiv,
-   glGetVideoi64v,
-   glGetVideoui64v,
-   -- * Tokens
-   gl_FRAME,
-   gl_FIELDS,
-   gl_CURRENT_TIME,
-   gl_NUM_FILL_STREAMS,
-   gl_PRESENT_TIME,
-   gl_PRESENT_DURATION
-) where
-
-import Foreign.Ptr
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Graphics.Rendering.OpenGL.Raw.Extensions
-
-#include "HsOpenGLRaw.h"
-
-extensionNameString :: String
-extensionNameString = "GL_NV_present_video"
-
-EXTENSION_ENTRY(glPresentFrameKeyed,GLuint -> GLuint64 -> GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> GLuint -> GLenum -> GLuint -> GLuint -> IO ())
-EXTENSION_ENTRY(glPresentFrameDualFill,GLuint -> GLuint64 -> GLuint -> GLuint -> GLenum -> GLenum -> GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> GLenum -> GLuint -> IO ())
-EXTENSION_ENTRY(glGetVideoiv,GLuint -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glGetVideouiv,GLuint -> GLenum -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glGetVideoi64v,GLuint -> GLenum -> Ptr GLint64 -> IO ())
-EXTENSION_ENTRY(glGetVideoui64v,GLuint -> GLenum -> Ptr GLuint64 -> IO ())
-
-gl_FRAME :: GLenum
-gl_FRAME = 0x8E26
-
-gl_FIELDS :: GLenum
-gl_FIELDS = 0x8E27
-
-gl_CURRENT_TIME :: GLenum
-gl_CURRENT_TIME = 0x8E28
-
-gl_NUM_FILL_STREAMS :: GLenum
-gl_NUM_FILL_STREAMS = 0x8E29
-
-gl_PRESENT_TIME :: GLenum
-gl_PRESENT_TIME = 0x8E2A
-
-gl_PRESENT_DURATION :: GLenum
-gl_PRESENT_DURATION = 0x8E2B
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/PrimitiveRestart.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/PrimitiveRestart.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/PrimitiveRestart.hs
+++ /dev/null
@@ -1,44 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.NV.PrimitiveRestart
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the NV_primitive_restart extension not
--- already in the OpenGL 3.1 core, see
--- <http://www.opengl.org/registry/specs/NV/primitive_restart.txt>.
--- NOTE: The OpenGL 3.1 core has some functions and tokens with the same names,
--- but with different semantics and values, so we use a suffix in those cases.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.NV.PrimitiveRestart (
-   -- * Functions
-   glPrimitiveRestart,
-   glPrimitiveRestartIndexNV,
-   -- * Tokens
-   gl_PRIMITIVE_RESTART_NV,
-   gl_PRIMITIVE_RESTART_INDEX_NV
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Graphics.Rendering.OpenGL.Raw.Extensions
-
-#include "HsOpenGLRaw.h"
-
-extensionNameString :: String
-extensionNameString = "GL_NV_primitive_restart"
-
-EXTENSION_ENTRY(glPrimitiveRestart, IO ())
-EXTENSION_ENTRY(glPrimitiveRestartIndexNV,GLuint -> IO ())
-
-gl_PRIMITIVE_RESTART_NV :: GLenum
-gl_PRIMITIVE_RESTART_NV = 0x8558
-
-gl_PRIMITIVE_RESTART_INDEX_NV :: GLenum
-gl_PRIMITIVE_RESTART_INDEX_NV = 0x8559
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/RegisterCombiners.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/RegisterCombiners.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/RegisterCombiners.hs
+++ /dev/null
@@ -1,265 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.NV.RegisterCombiners
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the NV_register_combiners extension not
--- already in the OpenGL 3.1 core, see
--- <http://www.opengl.org/registry/specs/NV/register_combiners.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.NV.RegisterCombiners (
-   -- * Functions
-   glCombinerParameterfv,
-   glCombinerParameteriv,
-   glCombinerParameterf,
-   glCombinerParameteri,
-   glCombinerInput,
-   glCombinerOutput,
-   glFinalCombinerInput,
-   glGetCombinerInputParameterfv,
-   glGetCombinerInputParameteriv,
-   glGetCombinerOutputParameterfv,
-   glGetCombinerOutputParameteriv,
-   glGetFinalCombinerInputParameterfv,
-   glGetFinalCombinerInputParameteriv,
-   -- * Tokens
-   gl_REGISTER_COMBINERS,
-   gl_COMBINER0,
-   gl_COMBINER1,
-   gl_COMBINER2,
-   gl_COMBINER3,
-   gl_COMBINER4,
-   gl_COMBINER5,
-   gl_COMBINER6,
-   gl_COMBINER7,
-   gl_VARIABLE_A,
-   gl_VARIABLE_B,
-   gl_VARIABLE_C,
-   gl_VARIABLE_D,
-   gl_VARIABLE_E,
-   gl_VARIABLE_F,
-   gl_VARIABLE_G,
-   gl_CONSTANT_COLOR0,
-   gl_CONSTANT_COLOR1,
-   gl_FOG,
-   gl_PRIMARY_COLOR_NV,
-   gl_SECONDARY_COLOR,
-   gl_SPARE0,
-   gl_SPARE1,
-   gl_UNSIGNED_IDENTITY,
-   gl_UNSIGNED_INVERT,
-   gl_EXPAND_NORMAL,
-   gl_EXPAND_NEGATE,
-   gl_HALF_BIAS_NORMAL,
-   gl_HALF_BIAS_NEGATE,
-   gl_SIGNED_IDENTITY,
-   gl_SIGNED_NEGATE,
-   gl_E_TIMES_F,
-   gl_SPARE0_PLUS_SECONDARY_COLOR,
-   gl_SCALE_BY_TWO,
-   gl_SCALE_BY_FOUR,
-   gl_SCALE_BY_ONE_HALF,
-   gl_BIAS_BY_NEGATIVE_ONE_HALF,
-   gl_DISCARD,
-   gl_COMBINER_INPUT,
-   gl_COMBINER_MAPPING,
-   gl_COMBINER_COMPONENT_USAGE,
-   gl_COMBINER_AB_DOT_PRODUCT,
-   gl_COMBINER_CD_DOT_PRODUCT,
-   gl_COMBINER_MUX_SUM,
-   gl_COMBINER_SCALE,
-   gl_COMBINER_BIAS,
-   gl_COMBINER_AB_OUTPUT,
-   gl_COMBINER_CD_OUTPUT,
-   gl_COMBINER_SUM_OUTPUT,
-   gl_NUM_GENERAL_COMBINERS,
-   gl_COLOR_SUM_CLAMP,
-   gl_MAX_GENERAL_COMBINERS
-) where
-
-import Foreign.Ptr
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Graphics.Rendering.OpenGL.Raw.Extensions
-
-#include "HsOpenGLRaw.h"
-
-extensionNameString :: String
-extensionNameString = "GL_NV_register_combiners"
-
-EXTENSION_ENTRY(glCombinerParameterfv,GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glCombinerParameteriv,GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glCombinerParameterf,GLenum -> GLfloat -> IO ())
-EXTENSION_ENTRY(glCombinerParameteri,GLenum -> GLint -> IO ())
-EXTENSION_ENTRY(glCombinerInput,GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> IO ())
-EXTENSION_ENTRY(glCombinerOutput,GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLenum -> GLboolean -> GLboolean -> GLboolean -> IO ())
-EXTENSION_ENTRY(glFinalCombinerInput,GLenum -> GLenum -> GLenum -> GLenum -> IO ())
-EXTENSION_ENTRY(glGetCombinerInputParameterfv,GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glGetCombinerInputParameteriv,GLenum -> GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glGetCombinerOutputParameterfv,GLenum -> GLenum -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glGetCombinerOutputParameteriv,GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glGetFinalCombinerInputParameterfv,GLenum -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glGetFinalCombinerInputParameteriv,GLenum -> GLenum -> Ptr GLint -> IO ())
-
-gl_REGISTER_COMBINERS :: GLenum
-gl_REGISTER_COMBINERS = 0x8522
-
-gl_COMBINER0 :: GLenum
-gl_COMBINER0 = 0x8550
-
-gl_COMBINER1 :: GLenum
-gl_COMBINER1 = 0x8551
-
-gl_COMBINER2 :: GLenum
-gl_COMBINER2 = 0x8552
-
-gl_COMBINER3 :: GLenum
-gl_COMBINER3 = 0x8553
-
-gl_COMBINER4 :: GLenum
-gl_COMBINER4 = 0x8554
-
-gl_COMBINER5 :: GLenum
-gl_COMBINER5 = 0x8555
-
-gl_COMBINER6 :: GLenum
-gl_COMBINER6 = 0x8556
-
-gl_COMBINER7 :: GLenum
-gl_COMBINER7 = 0x8557
-
-gl_VARIABLE_A :: GLenum
-gl_VARIABLE_A = 0x8523
-
-gl_VARIABLE_B :: GLenum
-gl_VARIABLE_B = 0x8524
-
-gl_VARIABLE_C :: GLenum
-gl_VARIABLE_C = 0x8525
-
-gl_VARIABLE_D :: GLenum
-gl_VARIABLE_D = 0x8526
-
-gl_VARIABLE_E :: GLenum
-gl_VARIABLE_E = 0x8527
-
-gl_VARIABLE_F :: GLenum
-gl_VARIABLE_F = 0x8528
-
-gl_VARIABLE_G :: GLenum
-gl_VARIABLE_G = 0x8529
-
-gl_CONSTANT_COLOR0 :: GLenum
-gl_CONSTANT_COLOR0 = 0x852A
-
-gl_CONSTANT_COLOR1 :: GLenum
-gl_CONSTANT_COLOR1 = 0x852B
-
--- | NOTE: ARB_compatibility has the same token with a different value, so we
--- use a suffix here.
-gl_PRIMARY_COLOR_NV :: GLenum
-gl_PRIMARY_COLOR_NV = 0x852C
-
-gl_SECONDARY_COLOR :: GLenum
-gl_SECONDARY_COLOR = 0x852D
-
-gl_SPARE0 :: GLenum
-gl_SPARE0 = 0x852E
-
-gl_SPARE1 :: GLenum
-gl_SPARE1 = 0x852F
-
-gl_UNSIGNED_IDENTITY :: GLenum
-gl_UNSIGNED_IDENTITY = 0x8536
-
-gl_UNSIGNED_INVERT :: GLenum
-gl_UNSIGNED_INVERT = 0x8537
-
-gl_EXPAND_NORMAL :: GLenum
-gl_EXPAND_NORMAL = 0x8538
-
-gl_EXPAND_NEGATE :: GLenum
-gl_EXPAND_NEGATE = 0x8539
-
-gl_HALF_BIAS_NORMAL :: GLenum
-gl_HALF_BIAS_NORMAL = 0x853A
-
-gl_HALF_BIAS_NEGATE :: GLenum
-gl_HALF_BIAS_NEGATE = 0x853B
-
-gl_SIGNED_IDENTITY :: GLenum
-gl_SIGNED_IDENTITY = 0x853C
-
-gl_SIGNED_NEGATE :: GLenum
-gl_SIGNED_NEGATE = 0x853D
-
-gl_E_TIMES_F :: GLenum
-gl_E_TIMES_F = 0x8531
-
-gl_SPARE0_PLUS_SECONDARY_COLOR :: GLenum
-gl_SPARE0_PLUS_SECONDARY_COLOR = 0x8532
-
-gl_SCALE_BY_TWO :: GLenum
-gl_SCALE_BY_TWO = 0x853E
-
-gl_SCALE_BY_FOUR :: GLenum
-gl_SCALE_BY_FOUR = 0x853F
-
-gl_SCALE_BY_ONE_HALF :: GLenum
-gl_SCALE_BY_ONE_HALF = 0x8540
-
-gl_BIAS_BY_NEGATIVE_ONE_HALF :: GLenum
-gl_BIAS_BY_NEGATIVE_ONE_HALF = 0x8541
-
-gl_DISCARD :: GLenum
-gl_DISCARD = 0x8530
-
-gl_COMBINER_INPUT :: GLenum
-gl_COMBINER_INPUT = 0x8542
-
-gl_COMBINER_MAPPING :: GLenum
-gl_COMBINER_MAPPING = 0x8543
-
-gl_COMBINER_COMPONENT_USAGE :: GLenum
-gl_COMBINER_COMPONENT_USAGE = 0x8544
-
-gl_COMBINER_AB_DOT_PRODUCT :: GLenum
-gl_COMBINER_AB_DOT_PRODUCT = 0x8545
-
-gl_COMBINER_CD_DOT_PRODUCT :: GLenum
-gl_COMBINER_CD_DOT_PRODUCT = 0x8546
-
-gl_COMBINER_MUX_SUM :: GLenum
-gl_COMBINER_MUX_SUM = 0x8547
-
-gl_COMBINER_SCALE :: GLenum
-gl_COMBINER_SCALE = 0x8548
-
-gl_COMBINER_BIAS :: GLenum
-gl_COMBINER_BIAS = 0x8549
-
-gl_COMBINER_AB_OUTPUT :: GLenum
-gl_COMBINER_AB_OUTPUT = 0x854A
-
-gl_COMBINER_CD_OUTPUT :: GLenum
-gl_COMBINER_CD_OUTPUT = 0x854B
-
-gl_COMBINER_SUM_OUTPUT :: GLenum
-gl_COMBINER_SUM_OUTPUT = 0x854C
-
-gl_NUM_GENERAL_COMBINERS :: GLenum
-gl_NUM_GENERAL_COMBINERS = 0x854E
-
-gl_COLOR_SUM_CLAMP :: GLenum
-gl_COLOR_SUM_CLAMP = 0x854F
-
-gl_MAX_GENERAL_COMBINERS :: GLenum
-gl_MAX_GENERAL_COMBINERS = 0x854D
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/RegisterCombiners2.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/RegisterCombiners2.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/RegisterCombiners2.hs
+++ /dev/null
@@ -1,50 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.NV.RegisterCombiners2
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the NV_register_combiners2 extension not
--- already in the OpenGL 3.1 core, see
--- <http://www.opengl.org/registry/specs/NV/register_combiners2.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.NV.RegisterCombiners2 (
-   -- * Functions
-   glCombinerStageParameterfv,
-   glGetCombinerStageParameterfv,
-   -- * Tokens
-   gl_PER_STAGE_CONSTANTS,
-   gl_CONSTANT_COLOR0,
-   gl_CONSTANT_COLOR1,
-   gl_COMBINER0,
-   gl_COMBINER1,
-   gl_COMBINER2,
-   gl_COMBINER3,
-   gl_COMBINER4,
-   gl_COMBINER5,
-   gl_COMBINER6,
-   gl_COMBINER7
-) where
-
-import Foreign.Ptr
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Graphics.Rendering.OpenGL.Raw.Extensions
-import Graphics.Rendering.OpenGL.Raw.NV.RegisterCombiners
-
-#include "HsOpenGLRaw.h"
-
-extensionNameString :: String
-extensionNameString = "GL_NV_register_combiners2"
-
-EXTENSION_ENTRY(glCombinerStageParameterfv,GLenum -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glGetCombinerStageParameterfv,GLenum -> GLenum -> Ptr GLfloat -> IO ())
-
-gl_PER_STAGE_CONSTANTS :: GLenum
-gl_PER_STAGE_CONSTANTS = 0x8535
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/TexgenEmboss.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/TexgenEmboss.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/TexgenEmboss.hs
+++ /dev/null
@@ -1,33 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.NV.TexgenEmboss
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the NV_texgen_emboss not already in the
--- OpenGL 3.1 core, see
--- <http://www.opengl.org/registry/specs/NV/texgen_emboss.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.NV.TexgenEmboss (
-   -- * Tokens
-   gl_EMBOSS_MAP,
-   gl_EMBOSS_LIGHT,
-   gl_EMBOSS_CONSTANT
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_EMBOSS_MAP :: GLenum
-gl_EMBOSS_MAP = 0x855F
-
-gl_EMBOSS_LIGHT :: GLenum
-gl_EMBOSS_LIGHT = 0x855D
-
-gl_EMBOSS_CONSTANT :: GLenum
-gl_EMBOSS_CONSTANT = 0x855E
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/TexgenReflection.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/TexgenReflection.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/TexgenReflection.hs
+++ /dev/null
@@ -1,22 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.NV.TexgenReflection
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All tokens from the NV_texgen_reflection, see
--- <http://www.opengl.org/registry/specs/NV/texgen_reflection.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.NV.TexgenReflection (
-   -- * Tokens
-   gl_NORMAL_MAP,
-   gl_REFLECTION_MAP
-) where
-
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/TextureCompressionVtc.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/TextureCompressionVtc.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/TextureCompressionVtc.hs
+++ /dev/null
@@ -1,25 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.NV.TextureCompressionVtc
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the NV_light_max_exponent extension not
--- already in the OpenGL 3.1 core, see
--- <http://www.opengl.org/registry/specs/NV/light_max_exponent.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.NV.TextureCompressionVtc (
-   -- * Tokens
-   gl_COMPRESSED_RGB_S3TC_DXT1,
-   gl_COMPRESSED_RGBA_S3TC_DXT1,
-   gl_COMPRESSED_RGBA_S3TC_DXT3,
-   gl_COMPRESSED_RGBA_S3TC_DXT5
-) where
-
-import Graphics.Rendering.OpenGL.Raw.EXT.TextureCompressionS3tc
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/TextureEnvCombine4.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/TextureEnvCombine4.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/TextureEnvCombine4.hs
+++ /dev/null
@@ -1,41 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.NV.TextureEnvCombine4
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the NV_texture_env_combine4 extension not
--- already in the OpenGL 3.1 core, see
--- <http://www.opengl.org/registry/specs/NV/texture_env_combine4.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.NV.TextureEnvCombine4 (
-   -- * Tokens
-   gl_COMBINE4,
-   gl_SOURCE3_RGB,
-   gl_SOURCE3_ALPHA,
-   gl_OPERAND3_RGB,
-   gl_OPERAND3_ALPHA
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_COMBINE4 :: GLenum
-gl_COMBINE4 = 0x8503
-
-gl_SOURCE3_RGB :: GLenum
-gl_SOURCE3_RGB = 0x8583
-
-gl_SOURCE3_ALPHA :: GLenum
-gl_SOURCE3_ALPHA = 0x858B
-
-gl_OPERAND3_RGB :: GLenum
-gl_OPERAND3_RGB = 0x8593
-
-gl_OPERAND3_ALPHA :: GLenum
-gl_OPERAND3_ALPHA = 0x859B
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/TextureExpandNormal.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/TextureExpandNormal.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/TextureExpandNormal.hs
+++ /dev/null
@@ -1,24 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.NV.TextureExpandNormal
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All tokens from the NV_texture_expand_normal, see
--- <http://www.opengl.org/registry/specs/NV/texture_expand_normal.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.NV.TextureExpandNormal (
-   -- * Tokens
-   gl_TEXTURE_UNSIGNED_REMAP_MODE
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_TEXTURE_UNSIGNED_REMAP_MODE :: GLenum
-gl_TEXTURE_UNSIGNED_REMAP_MODE = 0x888F
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/TextureRectangle.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/TextureRectangle.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/TextureRectangle.hs
+++ /dev/null
@@ -1,24 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.NV.TextureRectangle
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All tokens from the NV_texture_rectangle extension, see
--- <http://www.opengl.org/registry/specs/NV/texture_rectangle.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.NV.TextureRectangle (
-   -- * Tokens
-   gl_TEXTURE_RECTANGLE,
-   gl_TEXTURE_BINDING_RECTANGLE,
-   gl_PROXY_TEXTURE_RECTANGLE, 
-   gl_MAX_RECTANGLE_TEXTURE_SIZE
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/TextureShader.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/TextureShader.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/TextureShader.hs
+++ /dev/null
@@ -1,320 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.NV.TextureShader
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the NV_texture_shader extension not
--- already in the OpenGL 3.1 core, see
--- <http://www.opengl.org/registry/specs/NV/texture_shader.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.NV.TextureShader (
-   -- * Tokens
-   gl_TEXTURE_SHADER,
-   gl_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING,
-   gl_SHADER_OPERATION,
-   gl_OFFSET_TEXTURE_SCALE,
-   gl_OFFSET_TEXTURE_BIAS,
-   gl_OFFSET_TEXTURE_2D_SCALE,
-   gl_OFFSET_TEXTURE_2D_BIAS,
-   gl_PREVIOUS_TEXTURE_INPUT,
-   gl_CULL_MODES,
-   gl_OFFSET_TEXTURE_MATRIX,
-   gl_OFFSET_TEXTURE_2D_MATRIX,
-   gl_CONST_EYE,
-   gl_SHADER_CONSISTENT,
-   gl_PASS_THROUGH,
-   gl_CULL_FRAGMENT,
-   gl_OFFSET_TEXTURE_2D,
-   gl_OFFSET_TEXTURE_2D_SCALE,
-   gl_OFFSET_TEXTURE_RECTANGLE,
-   gl_OFFSET_TEXTURE_RECTANGLE_SCALE,
-   gl_DEPENDENT_AR_TEXTURE_2D,
-   gl_DEPENDENT_GB_TEXTURE_2D,
-   gl_DOT_PRODUCT,
-   gl_DOT_PRODUCT_DEPTH_REPLACE,
-   gl_DOT_PRODUCT_TEXTURE_2D,
-   gl_DOT_PRODUCT_TEXTURE_RECTANGLE,
-   gl_DOT_PRODUCT_TEXTURE_CUBE_MAP,
-   gl_DOT_PRODUCT_DIFFUSE_CUBE_MAP,
-   gl_DOT_PRODUCT_REFLECT_CUBE_MAP,
-   gl_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP,
-   gl_UNSIGNED_IDENTITY,
-   gl_EXPAND_NORMAL,
-   gl_HILO,
-   gl_DSDT,
-   gl_DSDT_MAG,
-   gl_DSDT_MAG_VIB,
-   gl_UNSIGNED_INT_S8_S8_8_8,
-   gl_UNSIGNED_INT_8_8_S8_S8_REV,
-   gl_SIGNED_RGBA,
-   gl_SIGNED_RGBA8,
-   gl_SIGNED_RGB,
-   gl_SIGNED_RGB8,
-   gl_SIGNED_LUMINANCE,
-   gl_SIGNED_LUMINANCE8,
-   gl_SIGNED_LUMINANCE_ALPHA,
-   gl_SIGNED_LUMINANCE8_ALPHA8,
-   gl_SIGNED_ALPHA,
-   gl_SIGNED_ALPHA8,
-   gl_SIGNED_INTENSITY,
-   gl_SIGNED_INTENSITY8,
-   gl_SIGNED_RGB_UNSIGNED_ALPHA,
-   gl_SIGNED_RGB8_UNSIGNED_ALPHA8,
-   gl_HILO,
-   gl_HILO16,
-   gl_SIGNED_HILO,
-   gl_SIGNED_HILO16,
-   gl_DSDT,
-   gl_DSDT8,
-   gl_DSDT_MAG,
-   gl_DSDT8_MAG8,
-   gl_DSDT_MAG_INTENSITY,
-   gl_DSDT8_MAG8_INTENSITY8,
-   gl_HI_SCALE,
-   gl_LO_SCALE,
-   gl_DS_SCALE,
-   gl_DT_SCALE,
-   gl_MAGNITUDE_SCALE,
-   gl_VIBRANCE_SCALE,
-   gl_HI_BIAS,
-   gl_LO_BIAS,
-   gl_DS_BIAS,
-   gl_DT_BIAS,
-   gl_MAGNITUDE_BIAS,
-   gl_VIBRANCE_BIAS,
-   gl_TEXTURE_BORDER_VALUES,
-   gl_TEXTURE_HI_SIZE,
-   gl_TEXTURE_LO_SIZE,
-   gl_TEXTURE_DS_SIZE,
-   gl_TEXTURE_DT_SIZE,
-   gl_TEXTURE_MAG_SIZE
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Graphics.Rendering.OpenGL.Raw.NV.RegisterCombiners
-
-gl_TEXTURE_SHADER :: GLenum
-gl_TEXTURE_SHADER = 0x86DE
-
-gl_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING :: GLenum
-gl_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING = 0x86D9
-
-gl_SHADER_OPERATION :: GLenum
-gl_SHADER_OPERATION = 0x86DF
-
-gl_OFFSET_TEXTURE_SCALE :: GLenum
-gl_OFFSET_TEXTURE_SCALE = 0x86E2
-
-gl_OFFSET_TEXTURE_BIAS :: GLenum
-gl_OFFSET_TEXTURE_BIAS = 0x86E3
-
-gl_OFFSET_TEXTURE_2D_SCALE :: GLenum
-gl_OFFSET_TEXTURE_2D_SCALE = gl_OFFSET_TEXTURE_SCALE
-
-gl_OFFSET_TEXTURE_2D_BIAS :: GLenum
-gl_OFFSET_TEXTURE_2D_BIAS = gl_OFFSET_TEXTURE_BIAS
-
-gl_PREVIOUS_TEXTURE_INPUT :: GLenum
-gl_PREVIOUS_TEXTURE_INPUT = 0x86E4
-
-gl_CULL_MODES :: GLenum
-gl_CULL_MODES = 0x86E0
-
-gl_OFFSET_TEXTURE_MATRIX :: GLenum
-gl_OFFSET_TEXTURE_MATRIX = 0x86E1
-
-gl_OFFSET_TEXTURE_2D_MATRIX :: GLenum
-gl_OFFSET_TEXTURE_2D_MATRIX = gl_OFFSET_TEXTURE_MATRIX
-
-gl_CONST_EYE :: GLenum
-gl_CONST_EYE = 0x86E5
-
-gl_SHADER_CONSISTENT :: GLenum
-gl_SHADER_CONSISTENT = 0x86DD
-
-gl_PASS_THROUGH :: GLenum
-gl_PASS_THROUGH = 0x86E6
-
-gl_CULL_FRAGMENT :: GLenum
-gl_CULL_FRAGMENT = 0x86E7
-
-gl_OFFSET_TEXTURE_2D :: GLenum
-gl_OFFSET_TEXTURE_2D = 0x86E8
-
-gl_OFFSET_TEXTURE_RECTANGLE :: GLenum
-gl_OFFSET_TEXTURE_RECTANGLE = 0x864C
-
-gl_OFFSET_TEXTURE_RECTANGLE_SCALE :: GLenum
-gl_OFFSET_TEXTURE_RECTANGLE_SCALE = 0x864D
-
-gl_DEPENDENT_AR_TEXTURE_2D :: GLenum
-gl_DEPENDENT_AR_TEXTURE_2D = 0x86E9
-
-gl_DEPENDENT_GB_TEXTURE_2D :: GLenum
-gl_DEPENDENT_GB_TEXTURE_2D = 0x86EA
-
-gl_DOT_PRODUCT :: GLenum
-gl_DOT_PRODUCT = 0x86EC
-
-gl_DOT_PRODUCT_DEPTH_REPLACE :: GLenum
-gl_DOT_PRODUCT_DEPTH_REPLACE = 0x86ED
-
-gl_DOT_PRODUCT_TEXTURE_2D :: GLenum
-gl_DOT_PRODUCT_TEXTURE_2D = 0x86EE
-
-gl_DOT_PRODUCT_TEXTURE_RECTANGLE :: GLenum
-gl_DOT_PRODUCT_TEXTURE_RECTANGLE = 0x864E
-
-gl_DOT_PRODUCT_TEXTURE_CUBE_MAP :: GLenum
-gl_DOT_PRODUCT_TEXTURE_CUBE_MAP = 0x86F0
-
-gl_DOT_PRODUCT_DIFFUSE_CUBE_MAP :: GLenum
-gl_DOT_PRODUCT_DIFFUSE_CUBE_MAP = 0x86F1
-
-gl_DOT_PRODUCT_REFLECT_CUBE_MAP :: GLenum
-gl_DOT_PRODUCT_REFLECT_CUBE_MAP = 0x86F2
-
-gl_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP :: GLenum
-gl_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP = 0x86F3
-
-gl_HILO :: GLenum
-gl_HILO = 0x86F4
-
-gl_DSDT :: GLenum
-gl_DSDT = 0x86F5
-
-gl_DSDT_MAG :: GLenum
-gl_DSDT_MAG = 0x86F6
-
-gl_DSDT_MAG_VIB :: GLenum
-gl_DSDT_MAG_VIB = 0x86F7
-
-gl_UNSIGNED_INT_S8_S8_8_8 :: GLenum
-gl_UNSIGNED_INT_S8_S8_8_8 = 0x86DA 
-
-gl_UNSIGNED_INT_8_8_S8_S8_REV :: GLenum
-gl_UNSIGNED_INT_8_8_S8_S8_REV = 0x86DB 
-
-gl_SIGNED_RGBA :: GLenum
-gl_SIGNED_RGBA = 0x86FB
-
-gl_SIGNED_RGBA8 :: GLenum
-gl_SIGNED_RGBA8 = 0x86FC
-
-gl_SIGNED_RGB :: GLenum
-gl_SIGNED_RGB = 0x86FE
-
-gl_SIGNED_RGB8 :: GLenum
-gl_SIGNED_RGB8 = 0x86FF
-
-gl_SIGNED_LUMINANCE :: GLenum
-gl_SIGNED_LUMINANCE = 0x8701
-
-gl_SIGNED_LUMINANCE8 :: GLenum
-gl_SIGNED_LUMINANCE8 = 0x8702
-
-gl_SIGNED_LUMINANCE_ALPHA :: GLenum
-gl_SIGNED_LUMINANCE_ALPHA = 0x8703
-
-gl_SIGNED_LUMINANCE8_ALPHA8 :: GLenum
-gl_SIGNED_LUMINANCE8_ALPHA8 = 0x8704
-
-gl_SIGNED_ALPHA :: GLenum
-gl_SIGNED_ALPHA = 0x8705
-
-gl_SIGNED_ALPHA8 :: GLenum
-gl_SIGNED_ALPHA8 = 0x8706
-
-gl_SIGNED_INTENSITY :: GLenum
-gl_SIGNED_INTENSITY = 0x8707
-
-gl_SIGNED_INTENSITY8 :: GLenum
-gl_SIGNED_INTENSITY8 = 0x8708
-
-gl_SIGNED_RGB_UNSIGNED_ALPHA :: GLenum
-gl_SIGNED_RGB_UNSIGNED_ALPHA = 0x870C
-
-gl_SIGNED_RGB8_UNSIGNED_ALPHA8 :: GLenum
-gl_SIGNED_RGB8_UNSIGNED_ALPHA8 = 0x870D
-
-gl_HILO16 :: GLenum
-gl_HILO16 = 0x86F8
-
-gl_SIGNED_HILO :: GLenum
-gl_SIGNED_HILO = 0x86F9
-
-gl_SIGNED_HILO16 :: GLenum
-gl_SIGNED_HILO16 = 0x86FA
-
-gl_DSDT8 :: GLenum
-gl_DSDT8 = 0x8709
-
-gl_DSDT8_MAG8 :: GLenum
-gl_DSDT8_MAG8 = 0x870A
-
-gl_DSDT_MAG_INTENSITY :: GLenum
-gl_DSDT_MAG_INTENSITY = 0x86DC
-
-gl_DSDT8_MAG8_INTENSITY8 :: GLenum
-gl_DSDT8_MAG8_INTENSITY8 = 0x870B
-
-gl_HI_SCALE :: GLenum
-gl_HI_SCALE = 0x870E
-
-gl_LO_SCALE :: GLenum
-gl_LO_SCALE = 0x870F
-
-gl_DS_SCALE :: GLenum
-gl_DS_SCALE = 0x8710
-
-gl_DT_SCALE :: GLenum
-gl_DT_SCALE = 0x8711
-
-gl_MAGNITUDE_SCALE :: GLenum
-gl_MAGNITUDE_SCALE = 0x8712
-
-gl_VIBRANCE_SCALE :: GLenum
-gl_VIBRANCE_SCALE = 0x8713
-
-gl_HI_BIAS :: GLenum
-gl_HI_BIAS = 0x8714
-
-gl_LO_BIAS :: GLenum
-gl_LO_BIAS = 0x8715
-
-gl_DS_BIAS :: GLenum
-gl_DS_BIAS = 0x8716
-
-gl_DT_BIAS :: GLenum
-gl_DT_BIAS = 0x8717
-
-gl_MAGNITUDE_BIAS :: GLenum
-gl_MAGNITUDE_BIAS = 0x8718
-
-gl_VIBRANCE_BIAS :: GLenum
-gl_VIBRANCE_BIAS = 0x8719
-
-gl_TEXTURE_BORDER_VALUES :: GLenum
-gl_TEXTURE_BORDER_VALUES = 0x871A
-
-gl_TEXTURE_HI_SIZE :: GLenum
-gl_TEXTURE_HI_SIZE = 0x871B
-
-gl_TEXTURE_LO_SIZE :: GLenum
-gl_TEXTURE_LO_SIZE = 0x871C
-
-gl_TEXTURE_DS_SIZE :: GLenum
-gl_TEXTURE_DS_SIZE = 0x871D
-
-gl_TEXTURE_DT_SIZE :: GLenum
-gl_TEXTURE_DT_SIZE = 0x871E
-
-gl_TEXTURE_MAG_SIZE :: GLenum
-gl_TEXTURE_MAG_SIZE = 0x871F
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/TextureShader2.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/TextureShader2.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/TextureShader2.hs
+++ /dev/null
@@ -1,53 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.NV.TextureShader2
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the NV_texture_shader2 extension not
--- already in the OpenGL 3.1 core, see
--- <http://www.opengl.org/registry/specs/NV/texture_shader2.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.NV.TextureShader2 (
-   -- * Tokens
-   gl_DOT_PRODUCT_TEXTURE_3D,
-   gl_HILO,
-   gl_DSDT,
-   gl_DSDT_MAG,
-   gl_DSDT_MAG_VIB,
-   gl_UNSIGNED_INT_S8_S8_8_8,
-   gl_UNSIGNED_INT_8_8_S8_S8_REV,
-   gl_SIGNED_RGBA,
-   gl_SIGNED_RGBA8,
-   gl_SIGNED_RGB,
-   gl_SIGNED_RGB8,
-   gl_SIGNED_LUMINANCE,
-   gl_SIGNED_LUMINANCE8,
-   gl_SIGNED_LUMINANCE_ALPHA,
-   gl_SIGNED_LUMINANCE8_ALPHA8,
-   gl_SIGNED_ALPHA,
-   gl_SIGNED_ALPHA8,
-   gl_SIGNED_INTENSITY,
-   gl_SIGNED_INTENSITY8,
-   gl_SIGNED_RGB_UNSIGNED_ALPHA,
-   gl_SIGNED_RGB8_UNSIGNED_ALPHA8,
-   gl_HILO16,
-   gl_SIGNED_HILO,
-   gl_SIGNED_HILO16,
-   gl_DSDT8,
-   gl_DSDT8_MAG8,
-   gl_DSDT_MAG_INTENSITY,
-   gl_DSDT8_MAG8_INTENSITY8
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Graphics.Rendering.OpenGL.Raw.NV.TextureShader
-
-gl_DOT_PRODUCT_TEXTURE_3D :: GLenum
-gl_DOT_PRODUCT_TEXTURE_3D = 0x86EF
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/TextureShader3.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/TextureShader3.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/TextureShader3.hs
+++ /dev/null
@@ -1,88 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.NV.TextureShader3
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the NV_texture_shader3 extension, see
--- <http://www.opengl.org/registry/specs/NV/texture_shader3.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.NV.TextureShader3 (
-   -- * Tokens
-   gl_OFFSET_PROJECTIVE_TEXTURE_2D,
-   gl_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE,
-   gl_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE,
-   gl_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE,
-   gl_OFFSET_HILO_TEXTURE_2D,
-   gl_OFFSET_HILO_TEXTURE_RECTANGLE,
-   gl_OFFSET_HILO_PROJECTIVE_TEXTURE_2D,
-   gl_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE,
-   gl_DEPENDENT_HILO_TEXTURE_2D,
-   gl_DEPENDENT_RGB_TEXTURE_3D,
-   gl_DEPENDENT_RGB_TEXTURE_CUBE_MAP,
-   gl_DOT_PRODUCT_PASS_THROUGH,
-   gl_DOT_PRODUCT_TEXTURE_1D,
-   gl_DOT_PRODUCT_AFFINE_DEPTH_REPLACE,
-   gl_HILO8,
-   gl_SIGNED_HILO8,
-   gl_FORCE_BLUE_TO_ONE
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_OFFSET_PROJECTIVE_TEXTURE_2D :: GLenum
-gl_OFFSET_PROJECTIVE_TEXTURE_2D = 0x8850
-
-gl_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE :: GLenum
-gl_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE = 0x8851
-
-gl_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE :: GLenum
-gl_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE = 0x8852
-
-gl_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE :: GLenum
-gl_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE = 0x8853
-
-gl_OFFSET_HILO_TEXTURE_2D :: GLenum
-gl_OFFSET_HILO_TEXTURE_2D = 0x8854
-
-gl_OFFSET_HILO_TEXTURE_RECTANGLE :: GLenum
-gl_OFFSET_HILO_TEXTURE_RECTANGLE = 0x8855
-
-gl_OFFSET_HILO_PROJECTIVE_TEXTURE_2D :: GLenum
-gl_OFFSET_HILO_PROJECTIVE_TEXTURE_2D = 0x8856
-
-gl_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE :: GLenum
-gl_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE = 0x8857
-
-gl_DEPENDENT_HILO_TEXTURE_2D :: GLenum
-gl_DEPENDENT_HILO_TEXTURE_2D = 0x8858
-
-gl_DEPENDENT_RGB_TEXTURE_3D :: GLenum
-gl_DEPENDENT_RGB_TEXTURE_3D = 0x8859
-
-gl_DEPENDENT_RGB_TEXTURE_CUBE_MAP :: GLenum
-gl_DEPENDENT_RGB_TEXTURE_CUBE_MAP = 0x885A
-
-gl_DOT_PRODUCT_PASS_THROUGH :: GLenum
-gl_DOT_PRODUCT_PASS_THROUGH = 0x885B
-
-gl_DOT_PRODUCT_TEXTURE_1D :: GLenum
-gl_DOT_PRODUCT_TEXTURE_1D = 0x885C
-
-gl_DOT_PRODUCT_AFFINE_DEPTH_REPLACE :: GLenum
-gl_DOT_PRODUCT_AFFINE_DEPTH_REPLACE = 0x885D
-
-gl_HILO8 :: GLenum
-gl_HILO8 = 0x885E
-
-gl_SIGNED_HILO8 :: GLenum
-gl_SIGNED_HILO8 = 0x885F
-
-gl_FORCE_BLUE_TO_ONE :: GLenum
-gl_FORCE_BLUE_TO_ONE = 0x8860
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/TransformFeedback.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/TransformFeedback.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/TransformFeedback.hs
+++ /dev/null
@@ -1,123 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.NV.TransformFeedback
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the NV_transform_feedback extension, see
--- <http://www.opengl.org/registry/specs/NV/transform_feedback.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.NV.TransformFeedback (
-   -- * Functions
-   glBindBufferRange,
-   glBindBufferOffset,
-   glBindBufferBase,
-   glTransformFeedbackAttribs,
-   glTransformFeedbackVaryingsNV,
-   glBeginTransformFeedback,
-   glEndTransformFeedback,
-   glGetVaryingLocation,
-   glGetActiveVarying,
-   glActiveVarying,
-   glGetTransformFeedbackVaryingNV,
-   glGetIntegerIndexedv,
-   glGetBooleanIndexedv,
-   -- * Tokens
-   gl_TRANSFORM_FEEDBACK_BUFFER,
-   gl_TRANSFORM_FEEDBACK_BUFFER_START,
-   gl_TRANSFORM_FEEDBACK_BUFFER_SIZE,
-   gl_TRANSFORM_FEEDBACK_RECORD,
-   gl_TRANSFORM_FEEDBACK_BUFFER_BINDING,
-   gl_INTERLEAVED_ATTRIBS,
-   gl_SEPARATE_ATTRIBS,
-   gl_PRIMITIVES_GENERATED,
-   gl_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN,
-   gl_RASTERIZER_DISCARD,
-   gl_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS,
-   gl_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS,
-   gl_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS,
-   gl_TRANSFORM_FEEDBACK_ATTRIBS,
-   gl_ACTIVE_VARYINGS,
-   gl_ACTIVE_VARYING_MAX_LENGTH,
-   gl_TRANSFORM_FEEDBACK_VARYINGS,
-   gl_TRANSFORM_FEEDBACK_BUFFER_MODE,
-   gl_BACK_PRIMARY_COLOR,
-   gl_BACK_SECONDARY_COLOR,
-   gl_TEXTURE_COORD,
-   gl_CLIP_DISTANCE,
-   gl_VERTEX_ID,
-   gl_PRIMITIVE_ID,
-   gl_GENERIC_ATTRIB,
-   gl_POINT_SIZE,
-   gl_FOG_COORDINATE,
-   gl_SECONDARY_COLOR,
-   gl_PRIMARY_COLOR,
-   gl_POSITION,
-   gl_LAYER,
-   gl_UNSIGNED_INT_VEC2,
-   gl_UNSIGNED_INT_VEC3,
-   gl_UNSIGNED_INT_VEC4
-) where
-
-import Foreign.Ptr
-import Graphics.Rendering.OpenGL.Raw.ARB.Compatibility
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Graphics.Rendering.OpenGL.Raw.EXT.DirectStateAccess
-import Graphics.Rendering.OpenGL.Raw.Extensions
-import Graphics.Rendering.OpenGL.Raw.NV.ParameterBufferObject
-import Graphics.Rendering.OpenGL.Raw.NV.RegisterCombiners
-
-#include "HsOpenGLRaw.h"
-
-extensionNameString :: String
-extensionNameString = "GL_NV_transform_feedback"
-
-EXTENSION_ENTRY(glTransformFeedbackAttribs,GLsizei -> Ptr GLint -> GLenum -> IO ())
-EXTENSION_ENTRY(glTransformFeedbackVaryingsNV,GLuint -> GLsizei -> Ptr GLint -> GLenum -> IO ())
-EXTENSION_ENTRY(glGetVaryingLocation,GLuint -> Ptr GLchar -> IO GLint)
-EXTENSION_ENTRY(glGetActiveVarying,GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr GLchar -> IO ())
-EXTENSION_ENTRY(glActiveVarying,GLuint -> Ptr GLchar -> IO ())
-EXTENSION_ENTRY(glGetTransformFeedbackVaryingNV,GLuint -> GLuint -> Ptr GLint -> IO ())
-
-gl_TRANSFORM_FEEDBACK_RECORD :: GLenum
-gl_TRANSFORM_FEEDBACK_RECORD = 0x8C86
-
-gl_TRANSFORM_FEEDBACK_ATTRIBS :: GLenum
-gl_TRANSFORM_FEEDBACK_ATTRIBS = 0x8C7E
-
-gl_ACTIVE_VARYINGS :: GLenum
-gl_ACTIVE_VARYINGS = 0x8C81
-
-gl_ACTIVE_VARYING_MAX_LENGTH :: GLenum
-gl_ACTIVE_VARYING_MAX_LENGTH = 0x8C82
-
-gl_BACK_PRIMARY_COLOR :: GLenum
-gl_BACK_PRIMARY_COLOR = 0x8C77
-
-gl_BACK_SECONDARY_COLOR :: GLenum
-gl_BACK_SECONDARY_COLOR = 0x8C78
-
-gl_TEXTURE_COORD :: GLenum
-gl_TEXTURE_COORD = 0x8C79
-
-gl_CLIP_DISTANCE :: GLenum
-gl_CLIP_DISTANCE = 0x8C7A
-
-gl_VERTEX_ID :: GLenum
-gl_VERTEX_ID = 0x8C7B
-
-gl_PRIMITIVE_ID :: GLenum
-gl_PRIMITIVE_ID = 0x8C7C
-
-gl_GENERIC_ATTRIB :: GLenum
-gl_GENERIC_ATTRIB = 0x8C7D
-
-gl_LAYER :: GLenum
-gl_LAYER = 0x8DAA
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/TransformFeedback2.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/TransformFeedback2.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/TransformFeedback2.hs
+++ /dev/null
@@ -1,61 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.NV.TransformFeedback2
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the NV_transform_feedback2 extension, see
--- <http://www.opengl.org/registry/specs/NV/transform_feedback2.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.NV.TransformFeedback2 (
-   -- * Functions
-   glBindTransformFeedback,
-   glDeleteTransformFeedbacks,
-   glGenTransformFeedbacks,
-   glIsTransformFeedback,
-   glPauseTransformFeedback,
-   glResumeTransformFeedback,
-   glDrawTransformFeedback,
-   -- * Tokens
-   gl_TRANSFORM_FEEDBACK,
-   gl_TRANSFORM_FEEDBACK_BUFFER_PAUSED,
-   gl_TRANSFORM_FEEDBACK_BUFFER_ACTIVE,
-   gl_TRANSFORM_FEEDBACK_BINDING
-) where
-
-import Foreign.Ptr
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Graphics.Rendering.OpenGL.Raw.Extensions
-
-#include "HsOpenGLRaw.h"
-
-extensionNameString :: String
-extensionNameString = "GL_NV_transform_feedback2"
-
-EXTENSION_ENTRY(glBindTransformFeedback,GLenum -> GLuint -> IO ())
-EXTENSION_ENTRY(glDeleteTransformFeedbacks,GLsizei -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glGenTransformFeedbacks,GLsizei -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glIsTransformFeedback,GLuint -> IO GLboolean)
-EXTENSION_ENTRY(glPauseTransformFeedback,IO ())
-EXTENSION_ENTRY(glResumeTransformFeedback,IO ())
-EXTENSION_ENTRY(glDrawTransformFeedback,GLenum -> GLuint -> IO ())
-
-gl_TRANSFORM_FEEDBACK :: GLenum
-gl_TRANSFORM_FEEDBACK = 0x8E22
-
-gl_TRANSFORM_FEEDBACK_BUFFER_PAUSED :: GLenum
-gl_TRANSFORM_FEEDBACK_BUFFER_PAUSED = 0x8E23
-
-gl_TRANSFORM_FEEDBACK_BUFFER_ACTIVE :: GLenum
-gl_TRANSFORM_FEEDBACK_BUFFER_ACTIVE = 0x8E24
-
-gl_TRANSFORM_FEEDBACK_BINDING :: GLenum
-gl_TRANSFORM_FEEDBACK_BINDING = 0x8E25
-
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/VertexArrayRange.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/VertexArrayRange.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/VertexArrayRange.hs
+++ /dev/null
@@ -1,55 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.NV.VertexArrayRange
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the NV_vertex_array_range extension not
--- already in the OpenGL 3.1 core, see
--- <http://www.opengl.org/registry/specs/NV/vertex_array_range.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.NV.VertexArrayRange (
-   -- * Functions
-   glVertexArrayRange,
-   glFlushVertexArrayRange,
-   -- * Tokens
-   gl_VERTEX_ARRAY_RANGE,
-   gl_VERTEX_ARRAY_RANGE_LENGTH,
-   gl_VERTEX_ARRAY_RANGE_VALID,
-   gl_MAX_VERTEX_ARRAY_RANGE_ELEMENT,
-   gl_VERTEX_ARRAY_RANGE_POINTER
-) where
-
-import Foreign.Ptr
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Graphics.Rendering.OpenGL.Raw.Extensions
-
-#include "HsOpenGLRaw.h"
-
-extensionNameString :: String
-extensionNameString = "GL_NV_vertex_array_range"
-
-EXTENSION_ENTRY(glVertexArrayRange,GLsizei -> Ptr a -> IO ())
-EXTENSION_ENTRY(glFlushVertexArrayRange,IO ())
-
-gl_VERTEX_ARRAY_RANGE :: GLenum
-gl_VERTEX_ARRAY_RANGE = 0x851D
-
-gl_VERTEX_ARRAY_RANGE_LENGTH :: GLenum
-gl_VERTEX_ARRAY_RANGE_LENGTH = 0x851E
-
-gl_VERTEX_ARRAY_RANGE_VALID :: GLenum
-gl_VERTEX_ARRAY_RANGE_VALID = 0x851F
-
-gl_MAX_VERTEX_ARRAY_RANGE_ELEMENT :: GLenum
-gl_MAX_VERTEX_ARRAY_RANGE_ELEMENT = 0x8520
-
-gl_VERTEX_ARRAY_RANGE_POINTER :: GLenum
-gl_VERTEX_ARRAY_RANGE_POINTER = 0x8521
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/VertexArrayRange2.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/VertexArrayRange2.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/VertexArrayRange2.hs
+++ /dev/null
@@ -1,25 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.NV.VertexArrayRange2
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the NV_vertex_array_range2 extension not
--- already in the OpenGL 3.1 core, see
--- <http://www.opengl.org/registry/specs/NV/vertex_array_range2.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.NV.VertexArrayRange2 (
-   -- * Tokens
-   gl_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
-
-gl_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH :: GLenum
-gl_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH = 0x8533
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/VertexProgram.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/VertexProgram.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/VertexProgram.hs
+++ /dev/null
@@ -1,475 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, CPP #-}
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.NV.VertexProgram
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All raw functions and tokens from the NV_vertex_program extension, see
--- <http://www.opengl.org/registry/specs/NV/vertex_program.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.NV.VertexProgram (
-   -- * Functions
-   glBindProgramNV,
-   glDeleteProgramsNV,
-   glExecuteProgram,
-   glGenProgramsNV,
-   glAreProgramsResident,
-   glRequestResidentPrograms,
-   glGetProgramParameterfv,
-   glGetProgramParameterdv,
-   glGetProgramivNV,
-   glGetProgramStringNV,
-   glGetTrackMatrixiv,
-   glGetVertexAttribdvNV,
-   glGetVertexAttribfvNV,
-   glGetVertexAttribivNV,
-   glGetVertexAttribPointervNV,
-   glIsProgramNV,
-   glLoadProgram,
-   glProgramParameter4f,
-   glProgramParameter4d,
-   glProgramParameter4dv,
-   glProgramParameter4fv,
-   glProgramParameters4dv,
-   glProgramParameters4fv,
-   glTrackMatrix,
-   glVertexAttribPointerNV,
-   glVertexAttrib1sNV,
-   glVertexAttrib1fNV,
-   glVertexAttrib1dNV,
-   glVertexAttrib2sNV,
-   glVertexAttrib2fNV,
-   glVertexAttrib2dNV,
-   glVertexAttrib3sNV,
-   glVertexAttrib3fNV,
-   glVertexAttrib3dNV,
-   glVertexAttrib4sNV,
-   glVertexAttrib4fNV,
-   glVertexAttrib4dNV,
-   glVertexAttrib4ub,
-   glVertexAttrib1svNV,
-   glVertexAttrib1fvNV,
-   glVertexAttrib1dvNV,
-   glVertexAttrib2svNV,
-   glVertexAttrib2fvNV,
-   glVertexAttrib2dvNV,
-   glVertexAttrib3svNV,
-   glVertexAttrib3fvNV,
-   glVertexAttrib3dvNV,
-   glVertexAttrib4svNV,
-   glVertexAttrib4fvNV,
-   glVertexAttrib4dvNV,
-   glVertexAttrib4ubvNV,
-   glVertexAttribs1sv,
-   glVertexAttribs1fv,
-   glVertexAttribs1dv,
-   glVertexAttribs2sv,
-   glVertexAttribs2fv,
-   glVertexAttribs2dv,
-   glVertexAttribs3sv,
-   glVertexAttribs3fv,
-   glVertexAttribs3dv,
-   glVertexAttribs4sv,
-   glVertexAttribs4fv,
-   glVertexAttribs4dv,
-   glVertexAttribs4ubv,
-   -- * Tokens
-   gl_VERTEX_PROGRAM,
-   gl_VERTEX_PROGRAM_POINT_SIZE,
-   gl_VERTEX_PROGRAM_TWO_SIDE,
-   gl_VERTEX_STATE_PROGRAM,
-   gl_ATTRIB_ARRAY_SIZE,
-   gl_ATTRIB_ARRAY_STRIDE,
-   gl_ATTRIB_ARRAY_TYPE,
-   gl_CURRENT_ATTRIB,
-   gl_PROGRAM_PARAMETER,
-   gl_ATTRIB_ARRAY_POINTER,
-   gl_PROGRAM_TARGET,
-   gl_PROGRAM_LENGTH,
-   gl_PROGRAM_RESIDENT,
-   gl_PROGRAM_STRING,
-   gl_TRACK_MATRIX,
-   gl_TRACK_MATRIX_TRANSFORM,
-   gl_MAX_TRACK_MATRIX_STACK_DEPTH,
-   gl_MAX_TRACK_MATRICES,
-   gl_CURRENT_MATRIX_STACK_DEPTH,
-   gl_CURRENT_MATRIX,
-   gl_VERTEX_PROGRAM_BINDING,
-   gl_PROGRAM_ERROR_POSITION,
-   gl_MODELVIEW_PROJECTION,
-   gl_MATRIX0_NV,
-   gl_MATRIX1_NV,
-   gl_MATRIX2_NV,
-   gl_MATRIX3_NV,
-   gl_MATRIX4_NV,
-   gl_MATRIX5_NV,
-   gl_MATRIX6_NV,
-   gl_MATRIX7_NV,
-   gl_IDENTITY,
-   gl_INVERSE,
-   gl_TRANSPOSE,
-   gl_INVERSE_TRANSPOSE,
-   gl_VERTEX_ATTRIB_ARRAY0,
-   gl_VERTEX_ATTRIB_ARRAY1,
-   gl_VERTEX_ATTRIB_ARRAY2,
-   gl_VERTEX_ATTRIB_ARRAY3,
-   gl_VERTEX_ATTRIB_ARRAY4,
-   gl_VERTEX_ATTRIB_ARRAY5,
-   gl_VERTEX_ATTRIB_ARRAY6,
-   gl_VERTEX_ATTRIB_ARRAY7,
-   gl_VERTEX_ATTRIB_ARRAY8,
-   gl_VERTEX_ATTRIB_ARRAY9,
-   gl_VERTEX_ATTRIB_ARRAY10,
-   gl_VERTEX_ATTRIB_ARRAY11,
-   gl_VERTEX_ATTRIB_ARRAY12,
-   gl_VERTEX_ATTRIB_ARRAY13,
-   gl_VERTEX_ATTRIB_ARRAY14,
-   gl_VERTEX_ATTRIB_ARRAY15,
-   gl_MAP1_VERTEX_ATTRIB0_4,
-   gl_MAP1_VERTEX_ATTRIB1_4,
-   gl_MAP1_VERTEX_ATTRIB2_4,
-   gl_MAP1_VERTEX_ATTRIB3_4,
-   gl_MAP1_VERTEX_ATTRIB4_4,
-   gl_MAP1_VERTEX_ATTRIB5_4,
-   gl_MAP1_VERTEX_ATTRIB6_4,
-   gl_MAP1_VERTEX_ATTRIB7_4,
-   gl_MAP1_VERTEX_ATTRIB8_4,
-   gl_MAP1_VERTEX_ATTRIB9_4,
-   gl_MAP1_VERTEX_ATTRIB10_4,
-   gl_MAP1_VERTEX_ATTRIB11_4,
-   gl_MAP1_VERTEX_ATTRIB12_4,
-   gl_MAP1_VERTEX_ATTRIB13_4,
-   gl_MAP1_VERTEX_ATTRIB14_4,
-   gl_MAP1_VERTEX_ATTRIB15_4,
-   gl_MAP2_VERTEX_ATTRIB0_4,
-   gl_MAP2_VERTEX_ATTRIB1_4,
-   gl_MAP2_VERTEX_ATTRIB2_4,
-   gl_MAP2_VERTEX_ATTRIB3_4,
-   gl_MAP2_VERTEX_ATTRIB4_4,
-   gl_MAP2_VERTEX_ATTRIB5_4,
-   gl_MAP2_VERTEX_ATTRIB6_4,
-   gl_MAP2_VERTEX_ATTRIB7_4,
-   gl_MAP2_VERTEX_ATTRIB8_4,
-   gl_MAP2_VERTEX_ATTRIB9_4,
-   gl_MAP2_VERTEX_ATTRIB10_4,
-   gl_MAP2_VERTEX_ATTRIB11_4,
-   gl_MAP2_VERTEX_ATTRIB12_4,
-   gl_MAP2_VERTEX_ATTRIB13_4,
-   gl_MAP2_VERTEX_ATTRIB14_4,
-   gl_MAP2_VERTEX_ATTRIB15_4
-) where
-
-import Foreign.Ptr
-import Graphics.Rendering.OpenGL.Raw.ARB.VertexProgram
-import Graphics.Rendering.OpenGL.Raw.Core32
-import Graphics.Rendering.OpenGL.Raw.Extensions
-
-#include "HsOpenGLRaw.h"
-
-extensionNameString :: String
-extensionNameString = "GL_NV_vertex_program"
-
-EXTENSION_ENTRY(glBindProgramNV,GLenum -> GLuint -> IO ())
-EXTENSION_ENTRY(glDeleteProgramsNV,GLsizei -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glExecuteProgram,GLenum -> GLuint -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glGenProgramsNV,GLsizei -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glAreProgramsResident,GLsizei -> Ptr GLuint -> Ptr GLboolean -> IO GLboolean)
-EXTENSION_ENTRY(glRequestResidentPrograms,GLsizei -> Ptr GLuint -> IO ())
-EXTENSION_ENTRY(glGetProgramParameterfv,GLenum -> GLuint -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glGetProgramParameterdv,GLenum -> GLuint -> GLenum -> Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glGetProgramivNV,GLuint -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glGetProgramStringNV,GLuint -> GLenum -> Ptr GLubyte -> IO ())
-EXTENSION_ENTRY(glGetTrackMatrixiv,GLenum -> GLuint -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glGetVertexAttribdvNV,GLuint -> GLenum -> Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glGetVertexAttribfvNV,GLuint -> GLenum -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glGetVertexAttribivNV,GLuint -> GLenum -> Ptr GLint -> IO ())
-EXTENSION_ENTRY(glGetVertexAttribPointervNV,GLuint -> GLenum -> Ptr (Ptr a) -> IO ())
-EXTENSION_ENTRY(glIsProgramNV,GLuint -> IO GLboolean)
-EXTENSION_ENTRY(glLoadProgram,GLenum -> GLuint -> GLsizei -> Ptr GLubyte -> IO ())
-EXTENSION_ENTRY(glProgramParameter4f,GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat  -> IO ())
-EXTENSION_ENTRY(glProgramParameter4d,GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble  -> IO ())
-EXTENSION_ENTRY(glProgramParameter4dv,GLenum -> GLuint -> Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glProgramParameter4fv,GLenum -> GLuint -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glProgramParameters4dv,GLenum -> GLuint -> GLuint -> Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glProgramParameters4fv,GLenum -> GLuint -> GLuint -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glTrackMatrix,GLenum -> GLuint -> GLenum -> GLenum -> IO ())
-EXTENSION_ENTRY(glVertexAttribPointerNV,GLuint -> GLint -> GLenum -> GLsizei -> Ptr a -> IO ())
-EXTENSION_ENTRY(glVertexAttrib1sNV,GLuint -> GLshort -> IO ())
-EXTENSION_ENTRY(glVertexAttrib1fNV,GLuint -> GLfloat -> IO ())
-EXTENSION_ENTRY(glVertexAttrib1dNV,GLuint -> GLdouble -> IO ())
-EXTENSION_ENTRY(glVertexAttrib2sNV,GLuint -> GLshort -> GLshort -> IO ())
-EXTENSION_ENTRY(glVertexAttrib2fNV,GLuint -> GLfloat -> GLfloat -> IO ())
-EXTENSION_ENTRY(glVertexAttrib2dNV,GLuint -> GLdouble -> GLdouble -> IO ())
-EXTENSION_ENTRY(glVertexAttrib3sNV,GLuint -> GLshort -> GLshort -> GLshort -> IO ())
-EXTENSION_ENTRY(glVertexAttrib3fNV,GLuint -> GLfloat -> GLfloat -> GLfloat -> IO ())
-EXTENSION_ENTRY(glVertexAttrib3dNV,GLuint -> GLdouble -> GLdouble -> GLdouble -> IO ())
-EXTENSION_ENTRY(glVertexAttrib4sNV,GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> IO ())
-EXTENSION_ENTRY(glVertexAttrib4fNV,GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
-EXTENSION_ENTRY(glVertexAttrib4dNV,GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
-EXTENSION_ENTRY(glVertexAttrib4ub,GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> IO ())
-EXTENSION_ENTRY(glVertexAttrib1svNV,GLuint -> Ptr GLshort -> IO ())
-EXTENSION_ENTRY(glVertexAttrib1fvNV,GLuint -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glVertexAttrib1dvNV,GLuint -> Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glVertexAttrib2svNV,GLuint -> Ptr GLshort -> IO ())
-EXTENSION_ENTRY(glVertexAttrib2fvNV,GLuint -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glVertexAttrib2dvNV,GLuint -> Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glVertexAttrib3svNV,GLuint -> Ptr GLshort -> IO ())
-EXTENSION_ENTRY(glVertexAttrib3fvNV,GLuint -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glVertexAttrib3dvNV,GLuint -> Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glVertexAttrib4svNV,GLuint -> Ptr GLshort -> IO ())
-EXTENSION_ENTRY(glVertexAttrib4fvNV,GLuint -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glVertexAttrib4dvNV,GLuint -> Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glVertexAttrib4ubvNV,GLuint -> Ptr GLubyte -> IO ())
-EXTENSION_ENTRY(glVertexAttribs1sv,GLuint -> GLsizei -> Ptr GLshort -> IO ())
-EXTENSION_ENTRY(glVertexAttribs1fv,GLuint -> GLsizei -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glVertexAttribs1dv,GLuint -> GLsizei -> Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glVertexAttribs2sv,GLuint -> GLsizei -> Ptr GLshort -> IO ())
-EXTENSION_ENTRY(glVertexAttribs2fv,GLuint -> GLsizei -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glVertexAttribs2dv,GLuint -> GLsizei -> Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glVertexAttribs3sv,GLuint -> GLsizei -> Ptr GLshort -> IO ())
-EXTENSION_ENTRY(glVertexAttribs3fv,GLuint -> GLsizei -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glVertexAttribs3dv,GLuint -> GLsizei -> Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glVertexAttribs4sv,GLuint -> GLsizei -> Ptr GLshort -> IO ())
-EXTENSION_ENTRY(glVertexAttribs4fv,GLuint -> GLsizei -> Ptr GLfloat -> IO ())
-EXTENSION_ENTRY(glVertexAttribs4dv,GLuint -> GLsizei -> Ptr GLdouble -> IO ())
-EXTENSION_ENTRY(glVertexAttribs4ubv,GLuint -> GLsizei -> Ptr GLubyte -> IO ())
-
-gl_VERTEX_STATE_PROGRAM :: GLenum
-gl_VERTEX_STATE_PROGRAM = 0x8621
-
-gl_ATTRIB_ARRAY_SIZE :: GLenum
-gl_ATTRIB_ARRAY_SIZE = 0x8623
-
-gl_ATTRIB_ARRAY_STRIDE :: GLenum
-gl_ATTRIB_ARRAY_STRIDE = 0x8624
-
-gl_ATTRIB_ARRAY_TYPE :: GLenum
-gl_ATTRIB_ARRAY_TYPE = 0x8625
-
-gl_CURRENT_ATTRIB :: GLenum
-gl_CURRENT_ATTRIB = 0x8626
-
-gl_PROGRAM_PARAMETER :: GLenum
-gl_PROGRAM_PARAMETER = 0x8644
-
-gl_ATTRIB_ARRAY_POINTER :: GLenum
-gl_ATTRIB_ARRAY_POINTER = 0x8645
-
-gl_PROGRAM_TARGET :: GLenum
-gl_PROGRAM_TARGET = 0x8646
-
-gl_PROGRAM_RESIDENT :: GLenum
-gl_PROGRAM_RESIDENT = 0x8647
-
-gl_TRACK_MATRIX :: GLenum
-gl_TRACK_MATRIX = 0x8648
-
-gl_TRACK_MATRIX_TRANSFORM :: GLenum
-gl_TRACK_MATRIX_TRANSFORM = 0x8649
-
-gl_MAX_TRACK_MATRIX_STACK_DEPTH :: GLenum
-gl_MAX_TRACK_MATRIX_STACK_DEPTH = 0x862E
-
-gl_MAX_TRACK_MATRICES :: GLenum
-gl_MAX_TRACK_MATRICES = 0x862F
-
-gl_VERTEX_PROGRAM_BINDING :: GLenum
-gl_VERTEX_PROGRAM_BINDING = 0x864A
-
-gl_MODELVIEW_PROJECTION :: GLenum
-gl_MODELVIEW_PROJECTION = 0x8629
-
--- | Note: We use the NV suffix here, because the name clashes with the ARB_vertex_program.
-gl_MATRIX0_NV :: GLenum
-gl_MATRIX0_NV = 0x8630
-
--- | Note: We use the NV suffix here, because the name clashes with the ARB_vertex_program.
-gl_MATRIX1_NV :: GLenum
-gl_MATRIX1_NV = 0x8631
-
--- | Note: We use the NV suffix here, because the name clashes with the ARB_vertex_program.
-gl_MATRIX2_NV :: GLenum
-gl_MATRIX2_NV = 0x8632
-
--- | Note: We use the NV suffix here, because the name clashes with the ARB_vertex_program.
-gl_MATRIX3_NV :: GLenum
-gl_MATRIX3_NV = 0x8633
-
--- | Note: We use the NV suffix here, because the name clashes with the ARB_vertex_program.
-gl_MATRIX4_NV :: GLenum
-gl_MATRIX4_NV = 0x8634
-
--- | Note: We use the NV suffix here, because the name clashes with the ARB_vertex_program.
-gl_MATRIX5_NV :: GLenum
-gl_MATRIX5_NV = 0x8635
-
--- | Note: We use the NV suffix here, because the name clashes with the ARB_vertex_program.
-gl_MATRIX6_NV :: GLenum
-gl_MATRIX6_NV = 0x8636
-
--- | Note: We use the NV suffix here, because the name clashes with the ARB_vertex_program.
-gl_MATRIX7_NV :: GLenum
-gl_MATRIX7_NV = 0x8637
-
-gl_IDENTITY :: GLenum
-gl_IDENTITY = 0x862A
-
-gl_INVERSE :: GLenum
-gl_INVERSE = 0x862B
-
-gl_TRANSPOSE :: GLenum
-gl_TRANSPOSE = 0x862C
-
-gl_INVERSE_TRANSPOSE :: GLenum
-gl_INVERSE_TRANSPOSE = 0x862D
-
-gl_VERTEX_ATTRIB_ARRAY0 :: GLenum
-gl_VERTEX_ATTRIB_ARRAY0 = 0x8650
-
-gl_VERTEX_ATTRIB_ARRAY1 :: GLenum
-gl_VERTEX_ATTRIB_ARRAY1 = 0x8651
-
-gl_VERTEX_ATTRIB_ARRAY2 :: GLenum
-gl_VERTEX_ATTRIB_ARRAY2 = 0x8652
-
-gl_VERTEX_ATTRIB_ARRAY3 :: GLenum
-gl_VERTEX_ATTRIB_ARRAY3 = 0x8653
-
-gl_VERTEX_ATTRIB_ARRAY4 :: GLenum
-gl_VERTEX_ATTRIB_ARRAY4 = 0x8654
-
-gl_VERTEX_ATTRIB_ARRAY5 :: GLenum
-gl_VERTEX_ATTRIB_ARRAY5 = 0x8655
-
-gl_VERTEX_ATTRIB_ARRAY6 :: GLenum
-gl_VERTEX_ATTRIB_ARRAY6 = 0x8656
-
-gl_VERTEX_ATTRIB_ARRAY7 :: GLenum
-gl_VERTEX_ATTRIB_ARRAY7 = 0x8657
-
-gl_VERTEX_ATTRIB_ARRAY8 :: GLenum
-gl_VERTEX_ATTRIB_ARRAY8 = 0x8658
-
-gl_VERTEX_ATTRIB_ARRAY9 :: GLenum
-gl_VERTEX_ATTRIB_ARRAY9 = 0x8659
-
-gl_VERTEX_ATTRIB_ARRAY10 :: GLenum
-gl_VERTEX_ATTRIB_ARRAY10 = 0x865A
-
-gl_VERTEX_ATTRIB_ARRAY11 :: GLenum
-gl_VERTEX_ATTRIB_ARRAY11 = 0x865B
-
-gl_VERTEX_ATTRIB_ARRAY12 :: GLenum
-gl_VERTEX_ATTRIB_ARRAY12 = 0x865C
-
-gl_VERTEX_ATTRIB_ARRAY13 :: GLenum
-gl_VERTEX_ATTRIB_ARRAY13 = 0x865D
-
-gl_VERTEX_ATTRIB_ARRAY14 :: GLenum
-gl_VERTEX_ATTRIB_ARRAY14 = 0x865E
-
-gl_VERTEX_ATTRIB_ARRAY15 :: GLenum
-gl_VERTEX_ATTRIB_ARRAY15 = 0x865F
-
-gl_MAP1_VERTEX_ATTRIB0_4 :: GLenum
-gl_MAP1_VERTEX_ATTRIB0_4 = 0x8660
-
-gl_MAP1_VERTEX_ATTRIB1_4 :: GLenum
-gl_MAP1_VERTEX_ATTRIB1_4 = 0x8661
-
-gl_MAP1_VERTEX_ATTRIB2_4 :: GLenum
-gl_MAP1_VERTEX_ATTRIB2_4 = 0x8662
-
-gl_MAP1_VERTEX_ATTRIB3_4 :: GLenum
-gl_MAP1_VERTEX_ATTRIB3_4 = 0x8663
-
-gl_MAP1_VERTEX_ATTRIB4_4 :: GLenum
-gl_MAP1_VERTEX_ATTRIB4_4 = 0x8664
-
-gl_MAP1_VERTEX_ATTRIB5_4 :: GLenum
-gl_MAP1_VERTEX_ATTRIB5_4 = 0x8665
-
-gl_MAP1_VERTEX_ATTRIB6_4 :: GLenum
-gl_MAP1_VERTEX_ATTRIB6_4 = 0x8666
-
-gl_MAP1_VERTEX_ATTRIB7_4 :: GLenum
-gl_MAP1_VERTEX_ATTRIB7_4 = 0x8667
-
-gl_MAP1_VERTEX_ATTRIB8_4 :: GLenum
-gl_MAP1_VERTEX_ATTRIB8_4 = 0x8668
-
-gl_MAP1_VERTEX_ATTRIB9_4 :: GLenum
-gl_MAP1_VERTEX_ATTRIB9_4 = 0x8669
-
-gl_MAP1_VERTEX_ATTRIB10_4 :: GLenum
-gl_MAP1_VERTEX_ATTRIB10_4 = 0x866A
-
-gl_MAP1_VERTEX_ATTRIB11_4 :: GLenum
-gl_MAP1_VERTEX_ATTRIB11_4 = 0x866B
-
-gl_MAP1_VERTEX_ATTRIB12_4 :: GLenum
-gl_MAP1_VERTEX_ATTRIB12_4 = 0x866C
-
-gl_MAP1_VERTEX_ATTRIB13_4 :: GLenum
-gl_MAP1_VERTEX_ATTRIB13_4 = 0x866D
-
-gl_MAP1_VERTEX_ATTRIB14_4 :: GLenum
-gl_MAP1_VERTEX_ATTRIB14_4 = 0x866E
-
-gl_MAP1_VERTEX_ATTRIB15_4 :: GLenum
-gl_MAP1_VERTEX_ATTRIB15_4 = 0x866F
-
-gl_MAP2_VERTEX_ATTRIB0_4 :: GLenum
-gl_MAP2_VERTEX_ATTRIB0_4 = 0x8670
-
-gl_MAP2_VERTEX_ATTRIB1_4 :: GLenum
-gl_MAP2_VERTEX_ATTRIB1_4 = 0x8671
-
-gl_MAP2_VERTEX_ATTRIB2_4 :: GLenum
-gl_MAP2_VERTEX_ATTRIB2_4 = 0x8672
-
-gl_MAP2_VERTEX_ATTRIB3_4 :: GLenum
-gl_MAP2_VERTEX_ATTRIB3_4 = 0x8673
-
-gl_MAP2_VERTEX_ATTRIB4_4 :: GLenum
-gl_MAP2_VERTEX_ATTRIB4_4 = 0x8674
-
-gl_MAP2_VERTEX_ATTRIB5_4 :: GLenum
-gl_MAP2_VERTEX_ATTRIB5_4 = 0x8675
-
-gl_MAP2_VERTEX_ATTRIB6_4 :: GLenum
-gl_MAP2_VERTEX_ATTRIB6_4 = 0x8676
-
-gl_MAP2_VERTEX_ATTRIB7_4 :: GLenum
-gl_MAP2_VERTEX_ATTRIB7_4 = 0x8677
-
-gl_MAP2_VERTEX_ATTRIB8_4 :: GLenum
-gl_MAP2_VERTEX_ATTRIB8_4 = 0x8678
-
-gl_MAP2_VERTEX_ATTRIB9_4 :: GLenum
-gl_MAP2_VERTEX_ATTRIB9_4 = 0x8679
-
-gl_MAP2_VERTEX_ATTRIB10_4 :: GLenum
-gl_MAP2_VERTEX_ATTRIB10_4 = 0x867A
-
-gl_MAP2_VERTEX_ATTRIB11_4 :: GLenum
-gl_MAP2_VERTEX_ATTRIB11_4 = 0x867B
-
-gl_MAP2_VERTEX_ATTRIB12_4 :: GLenum
-gl_MAP2_VERTEX_ATTRIB12_4 = 0x867C
-
-gl_MAP2_VERTEX_ATTRIB13_4 :: GLenum
-gl_MAP2_VERTEX_ATTRIB13_4 = 0x867D
-
-gl_MAP2_VERTEX_ATTRIB14_4 :: GLenum
-gl_MAP2_VERTEX_ATTRIB14_4 = 0x867E
-
-gl_MAP2_VERTEX_ATTRIB15_4 :: GLenum
-gl_MAP2_VERTEX_ATTRIB15_4 = 0x867F
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/VertexProgram2Option.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/VertexProgram2Option.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/VertexProgram2Option.hs
+++ /dev/null
@@ -1,22 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.NV.VertexProgram2Option
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All tokens from the NV_vertex_program2_option extension, see
--- <http://www.opengl.org/registry/specs/NV/vertex_program2_option.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.NV.VertexProgram2Option (
-   -- * Tokens
-   gl_MAX_PROGRAM_EXEC_INSTRUCTIONS,
-   gl_MAX_PROGRAM_CALL_DEPTH
-) where
-
-import Graphics.Rendering.OpenGL.Raw.NV.FragmentProgram2
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/VertexProgram3.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/VertexProgram3.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/VertexProgram3.hs
+++ /dev/null
@@ -1,21 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.NV.VertexProgram3
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All tokens from the NV_vertex_program3 extension, see
--- <http://www.opengl.org/registry/specs/NV/vertex_program3.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.NV.VertexProgram3 (
-   -- * Tokens
-   gl_MAX_VERTEX_TEXTURE_IMAGE_UNITS
-) where
-
-import Graphics.Rendering.OpenGL.Raw.ARB.VertexShader
diff --git a/src/Graphics/Rendering/OpenGL/Raw/NV/VertexProgram4.hs b/src/Graphics/Rendering/OpenGL/Raw/NV/VertexProgram4.hs
deleted file mode 100644
--- a/src/Graphics/Rendering/OpenGL/Raw/NV/VertexProgram4.hs
+++ /dev/null
@@ -1,45 +0,0 @@
---------------------------------------------------------------------------------
--- |
--- Module      :  Graphics.Rendering.OpenGL.Raw.NV.VertexProgram4
--- Copyright   :  (c) Sven Panne 2009
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  sven.panne@aedion.de
--- Stability   :  stable
--- Portability :  portable
---
--- All tokens from the NV_vertex_program4 extension, see
--- <http://www.opengl.org/registry/specs/NV/vertex_program4.txt>.
---
---------------------------------------------------------------------------------
-
-module Graphics.Rendering.OpenGL.Raw.NV.VertexProgram4 (
-   -- * Functions
-   glVertexAttribI1i,
-   glVertexAttribI2i,
-   glVertexAttribI3i,
-   glVertexAttribI4i,
-   glVertexAttribI1ui,
-   glVertexAttribI2ui,
-   glVertexAttribI3ui,
-   glVertexAttribI4ui,
-   glVertexAttribI1iv,
-   glVertexAttribI2iv,
-   glVertexAttribI3iv,
-   glVertexAttribI4iv,
-   glVertexAttribI1uiv,
-   glVertexAttribI2uiv,
-   glVertexAttribI3uiv,
-   glVertexAttribI4uiv,
-   glVertexAttribI4bv,
-   glVertexAttribI4sv,
-   glVertexAttribI4ubv,
-   glVertexAttribI4usv,
-   glVertexAttribIPointer,
-   glGetVertexAttribIiv,
-   glGetVertexAttribIuiv,
-   -- * Tokens
-   gl_VERTEX_ATTRIB_ARRAY_INTEGER
-) where
-
-import Graphics.Rendering.OpenGL.Raw.Core32
